18:09 < ruik> 000113B0 newunlock this routine is in your email 18:09 < ruik> unlock superIO 18:10 < ruik> select device 8 18:10 < ruik> read CRF1 18:10 < ruik> AND F7 18:12 < ruik> (ARG0 & 2)<<2 | that result 18:12 < ruik> writeback to F1 18:12 < ruik> select logical device 9 18:12 < ruik> read F1 18:13 < ruik> and FD 18:13 < ruik> (ARG0 & 1)<<1 | that result 18:13 < ruik> writeback to F1 18:13 < ruik> locksuperio 18:14 < ruik> return 18:19 < ruik> plz check i I did not make mistake 18:19 < ruik> and save this :) tnx ; ; ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» ; º This file is generated by The Interactive Disassembler (IDA) FW º ; º Copyright (c) 1997 by DataRescue sprl, º ; º Professional version of IDA is at http://www.idapro.com º ; ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ 000113B0 newunlock proc near ; CODE XREF: sub_11340+25p 000113B0 push ebp 000113B1 mov ebp, esp 000113B3 sub esp, 8 000113B6 call unlockwind 000113BB push 8 000113BD push 7 000113BF call writesuperio 000113C4 push 0F1h ; 'ñ' 000113C9 call readsuperio 000113CE mov [ebp-4], al 000113D1 mov eax, [ebp-4] 000113D4 and eax, 0FFh 000113D9 and eax, 0F7h 000113DE mov [ebp-4], al 000113E1 mov ecx, [ebp+8] 000113E4 and ecx, 2 000113E7 shl ecx, 2 000113EA mov edx, [ebp-4] 000113ED and edx, 0FFh 000113F3 or ecx, edx 000113F5 mov [ebp-8], cl 000113F8 mov al, [ebp-8] 000113FB push eax 000113FC push 0F1h ; 'ñ' 00011401 call writesuperio 00011406 push 9 00011408 push 7 0001140A call writesuperio 0001140F push 0F1h ; 'ñ' 00011414 call readsuperio 00011419 mov [ebp-4], al 0001141C mov ecx, [ebp-4] 0001141F and ecx, 0FFh 00011425 and ecx, 0FDh 0001142B mov [ebp-4], cl 0001142E mov edx, [ebp+8] 00011431 and edx, 1 00011434 shl edx, 1 00011436 mov eax, [ebp-4] 00011439 and eax, 0FFh 0001143E or edx, eax 00011440 mov [ebp-8], dl 00011443 mov cl, [ebp-8] 00011446 push ecx 00011447 push 0F1h ; 'ñ' 0001144C call writesuperio 00011451 call lockwind 00011456 mov esp, ebp 00011458 pop ebp 00011459 retn 4 00011459 newunlock endp 00011459 000117C0 unlock proc near ; CODE XREF: sub_11340+5Dp 000117C0 push ebp 000117C1 mov ebp, esp 000117C3 push ecx 000117C4 call unlockwind 000117C9 push 2Bh ; '+' 000117CB call readsuperio 000117D0 mov [ebp-4], al 000117D3 mov eax, [ebp-4] 000117D6 and eax, 0FFh 000117DB or al, 30h 000117DD push eax 000117DE push 2Bh ; '+' 000117E0 call writesuperio 000117E5 push 8 000117E7 push 7 000117E9 call writesuperio 000117EE push 0F2h ; 'ò' 000117F3 call readsuperio 000117F8 mov [ebp-4], al 000117FB mov ecx, [ebp-4] 000117FE and ecx, 0FFh 00011804 and ecx, 0E7h 0001180A push ecx 0001180B push 0F2h ; 'ò' 00011810 call writesuperio 00011815 push 0F0h ; 'ð' 0001181A call readsuperio 0001181F mov [ebp-4], al 00011822 mov edx, [ebp-4] 00011825 and edx, 0FFh 0001182B and edx, 0E7h 00011831 push edx 00011832 push 0F0h ; 'ð' 00011837 call writesuperio 0001183C push 0F1h ; 'ñ' 00011841 call readsuperio 00011846 mov [ebp-4], al 00011849 mov al, [ebp-4] 0001184C and al, 0E7h 0001184E mov [ebp-4], al 00011851 cmp dword ptr [ebp+8], 2 00011855 jnz short loc_11862 00011857 mov cl, [ebp-4] 0001185A or cl, 8 0001185D mov [ebp-4], cl 00011860 jmp short loc_11883 00011862 ;ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ 00011862 00011862 loc_11862: ; CODE XREF: unlock+95j 00011862 cmp dword ptr [ebp+8], 1 00011866 jnz short loc_11873 00011868 mov dl, [ebp-4] 0001186B or dl, 10h 0001186E mov [ebp-4], dl 00011871 jmp short loc_11883 00011873 ;ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ 00011873 00011873 loc_11873: ; CODE XREF: unlock+A6j 00011873 cmp dword ptr [ebp+8], 0 00011877 jnz short loc_1187B 00011879 jmp short loc_11883 0001187B ;ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ 0001187B 0001187B loc_1187B: ; CODE XREF: unlock+B7j 0001187B mov al, [ebp-4] 0001187E or al, 18h 00011880 mov [ebp-4], al 00011883 00011883 loc_11883: ; CODE XREF: unlock+A0j 00011883 ; unlock+B1j ... 00011883 mov cl, [ebp-4] 00011886 push ecx 00011887 push 0F1h ; 'ñ' 0001188C call writesuperio 00011891 call lockwind 00011896 mov esp, ebp 00011898 pop ebp 00011899 retn 4 00011899 unlock endp 00011899 00011899 ;ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ 0001189C db 0CCh ; Ì 0001189D db 0CCh ; Ì 0001189E db 0CCh ; Ì 0001189F db 0CCh ; Ì 000118A0 000118A0 ;ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ 000118A0 000118A0 ; S u b r o u t i n e 000118A0 000118A0 readsuperio proc near ; CODE XREF: start+639p 000118A0 ; start+657p ... 000118A0 push ebp 000118A1 mov ebp, esp 000118A3 push ecx 000118A4 mov dword ptr [ebp-4], 18B20h 000118AB mov al, [ebp+8] 000118AE push eax 000118AF mov ecx, [ebp-4] 000118B2 mov edx, [ecx+0Ch] 000118B5 push edx 000118B6 call ds:WRITE_PORT_UCHAR 000118BC mov eax, [ebp-4] 000118BF mov ecx, [eax+0Ch] 000118C2 add ecx, 1 000118C5 push ecx 000118C6 call ds:READ_PORT_UCHAR 000118CC mov esp, ebp 000118CE pop ebp 000118CF retn 4 000118CF readsuperio endp 000118CF 000118E0 ;ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ 000118E0 000118E0 ; S u b r o u t i n e 000118E0 000118E0 writesuperio proc near ; CODE XREF: start+632p 000118E0 ; start+673p ... 000118E0 push ebp 000118E1 mov ebp, esp 000118E3 push ecx 000118E4 mov dword ptr [ebp-4], 18B20h 000118EB mov al, [ebp+8] 000118EE push eax 000118EF mov ecx, [ebp-4] 000118F2 mov edx, [ecx+0Ch] 000118F5 push edx 000118F6 call ds:WRITE_PORT_UCHAR 000118FC mov al, [ebp+0Ch] 000118FF push eax 00011900 mov ecx, [ebp-4] 00011903 mov edx, [ecx+0Ch] 00011906 add edx, 1 00011909 push edx 0001190A call ds:WRITE_PORT_UCHAR 00011910 mov esp, ebp 00011912 pop ebp 00011913 retn 8 00011913 writesuperio endp 00011913 00011920 ;ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ 00011920 00011920 ; S u b r o u t i n e 00011920 00011920 unlockwind proc near ; CODE XREF: newunlock+6p 00011920 ; unlock+4p 00011920 push ebp 00011921 mov ebp, esp 00011923 push ecx 00011924 mov dword ptr [ebp-4], 18B20h 0001192B push 87h ; '‡' 00011930 mov eax, [ebp-4] 00011933 mov ecx, [eax+0Ch] 00011936 push ecx 00011937 call ds:WRITE_PORT_UCHAR 0001193D push 87h ; '‡' 00011942 mov edx, [ebp-4] 00011945 mov eax, [edx+0Ch] 00011948 push eax 00011949 call ds:WRITE_PORT_UCHAR 0001194F mov esp, ebp 00011951 pop ebp 00011952 retn 00011952 unlockwind endp 00011952 00011960 ;ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ 00011960 00011960 ; S u b r o u t i n e 00011960 00011960 lockwind proc near ; CODE XREF: newunlock+A1p 00011960 ; unlock+D1p 00011960 push ebp 00011961 mov ebp, esp 00011963 push ecx 00011964 mov dword ptr [ebp-4], 18B20h 0001196B push 0AAh ; 'ª' 00011970 mov eax, [ebp-4] 00011973 mov ecx, [eax+0Ch] 00011976 push ecx 00011977 call ds:WRITE_PORT_UCHAR 0001197D mov esp, ebp 0001197F pop ebp 00011980 retn 00011980 lockwind endp 00011980 00011980 ;ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ