Function at 0x45f63c
Capabilities:
Link many functions at runtime

Disassembly:
push ebp
mov ebp, esp
sub esp, 8
call dword [sym.imp.KERNEL32.dll_GetVersion]
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0x80000000
jae 0x45f677
mov dword [0x4867c8], 0
mov dword [0x4867cc], 0
mov dword [0x4867c4], 1
jmp 0x45f70d
mov eax, dword [ebp - 4]
and eax, 0xff
cmp eax, 4
jge 0x45f6ef
mov ecx, dword [ebp - 4]
and ecx, 0xff
cmp ecx, 3
jne 0x45f6cf
mov edx, dword [ebp - 4]
and edx, 0xffff
sar edx, 8
and edx, 0xff
and edx, 0xff
cmp edx, 0x5e
jg 0x45f6cf
mov dword [0x4867c8], 0
mov dword [0x4867c4], 0
mov dword [0x4867cc], 1
jmp 0x45f6ed
mov dword [0x4867c8], 1
mov dword [0x4867c4], 0
mov dword [0x4867cc], 0
jmp 0x45f70d
mov dword [0x4867c8], 1
mov dword [0x4867c4], 0
mov dword [0x4867cc], 0
cmp dword [0x4867c8], 0
je 0x45f7ac
cmp dword [0x4867a0], 0
je 0x45f72c
cmp dword [0x4867a0], 0xffffffff
jne 0x45f74b
push 0
push 0x4000000
push 4
push 0
push 0
push 0
push str..VSAUTHD.VXD
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov dword [0x4867a0], eax
cmp dword [0x4867a0], 0xffffffff
jne 0x45f75b
xor al, al
jmp 0x45f9c7
call dword [sym.imp.KERNEL32.dll_GetCurrentThread]
mov dword [0x4867a4], eax
cmp dword [0x4867a8], 0
jne 0x45f7a5
push 0x47677c
push 0
push 0x100002
call dword [sym.imp.KERNEL32.dll_OpenSemaphoreA]
mov dword [0x4867a8], eax
cmp dword [0x4867a8], 0
jne 0x45f7a5
push str.SAuth95PassThruSem
push 1
push 1
push 0
call dword [sym.imp.KERNEL32.dll_CreateSemaphoreA]
mov dword [0x4867a8], eax
mov al, 1
jmp 0x45f9c7
cmp dword [0x4867cc], 0
je 0x45f9a3
cmp dword [0x4867d0], 0
jne 0x45f986
push str.swa32ut.dll
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov dword [0x486858], eax
cmp dword [0x486858], 0
je 0x45f982
push str.setup
mov eax, dword [0x486858]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x486814], eax
push str.first
mov ecx, dword [0x486858]
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x486854], eax
push str.next
mov edx, dword [0x486858]
push edx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x486838], eax
push str.access
mov eax, dword [0x486858]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x48685c], eax
push str.databyte
mov ecx, dword [0x486858]
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x486834], eax
push str.gndtest
mov edx, dword [0x486858]
push edx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x486860], eax
push str.romdata
mov eax, dword [0x486858]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x486818], eax
push str.dowcheck
mov ecx, dword [0x486858]
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x486820], eax
push str.keyopen
mov edx, dword [0x486858]
push edx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x486828], eax
push str.keyclose
mov eax, dword [0x486858]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x48680c], eax
push str.OverdriveOn
mov ecx, dword [0x486858]
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x48681c], eax
push str.OverdriveOff
mov edx, dword [0x486858]
push edx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x48682c], eax
cmp dword [0x486814], 0
je 0x45f966
cmp dword [0x486854], 0
je 0x45f966
cmp dword [0x486838], 0
je 0x45f966
cmp dword [0x48685c], 0
je 0x45f966
cmp dword [0x486834], 0
je 0x45f966
cmp dword [0x486860], 0
je 0x45f966
cmp dword [0x486818], 0
je 0x45f966
cmp dword [0x486820], 0
je 0x45f966
cmp dword [0x48680c], 0
je 0x45f966
cmp dword [0x486828], 0
je 0x45f966
mov dword [0x4867d0], 1
push 0x460b5b
call fcn.00402f3e
add esp, 4
jmp 0x45f980
mov eax, dword [0x486858]
push eax
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
mov dword [0x4867d0], 0
xor al, al
jmp 0x45f9c7
jmp 0x45f986
xor al, al
jmp 0x45f9c7
cmp dword [0x486820], 0
je 0x45f99a
call dword [0x486820]
mov byte [ebp - 8], al
jmp 0x45f99e
mov byte [ebp - 8], 0
mov al, byte [ebp - 8]
jmp 0x45f9c7
cmp dword [0x4867c4], 0
je 0x45f9c5
call fcn.0045f9cb
and eax, 0xff
test eax, eax
jne 0x45f9c1
call fcn.0045f56c
jmp 0x45f9c7
mov al, 1
jmp 0x45f9c7
xor al, al
mov esp, ebp
pop ebp
ret