Function at 0x46d520
Capabilities:
Check os version

Disassembly:
push 0xffffffffffffffff
push 0x525e73
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x5b4
push edi
mov ecx, 0x24
xor eax, eax
lea edi, [esp + 0x21c]
rep stosd dword es:[edi], eax
lea eax, [esp + 0x218]
mov dword [esp + 0x218], 0x94
push eax
call dword [sym.imp.KERNEL32.dll_GetVersionExA]
test eax, eax
jne 0x46d57f
pop edi
mov ecx, dword [esp + 0x5b4]
mov dword fs:[0], ecx
add esp, 0x5c0
ret
mov eax, dword [esp + 0x21c]
cmp eax, 5
jne 0x46d5ad
cmp dword [esp + 0x220], 1
jae 0x46d5ca
xor eax, eax
pop edi
mov ecx, dword [esp + 0x5b4]
mov dword fs:[0], ecx
add esp, 0x5c0
ret
cmp eax, 6
jae 0x46d5ca
xor eax, eax
pop edi
mov ecx, dword [esp + 0x5b4]
mov dword fs:[0], ecx
add esp, 0x5c0
ret
mov eax, dword [esp + 0x5cc]
test eax, eax
je 0x46d5e1
push 0
push 0
call fcn.0046d520
add esp, 8
mov ecx, 0x40
xor eax, eax
lea edi, [esp + 0x11]
mov byte [esp + 0x10], 0
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov al, byte [esp + 0x10]
test al, al
jne 0x46d62b
call sub.MFC42.DLL_AfxGetModuleState
mov eax, dword [eax + 8]
lea ecx, [esp + 0x10]
push 0x104
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
lea edx, [esp + 0x10]
push 0x5c
push edx
call dword [sym.imp.MSVCRT.dll_strrchr]
add esp, 8
inc eax
mov byte [eax], 0
mov ecx, 0x40
xor eax, eax
lea edi, [esp + 0x115]
mov byte [esp + 0x114], 0
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov ecx, 0x40
xor eax, eax
lea edi, [esp + 0x3b1]
mov byte [esp + 0x3b0], 0
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov ecx, 0x40
xor eax, eax
lea edi, [esp + 0x4b5]
mov byte [esp + 0x4b4], 0
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov ecx, 0x40
xor eax, eax
lea edi, [esp + 0x2ad]
mov byte [esp + 0x2ac], 0
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
lea eax, [esp + 0x10]
lea ecx, [esp + 0x114]
push eax
push 0x565c5c
push 0x104
push ecx
call fcn.00431100
add esp, 0x10
lea edx, [esp + 0x10]
lea eax, [esp + 0x3b0]
push edx
push 0x565ce0
push 0x104
push eax
call fcn.00431100
add esp, 0x10
lea ecx, [esp + 0x10]
lea edx, [esp + 0x4b4]
push ecx
push 0x565c78
push 0x104
push edx
call fcn.00431100
add esp, 0x10
lea eax, [esp + 0x10]
lea ecx, [esp + 0x2ac]
push eax
push 0x565cd0
push 0x104
push ecx
call fcn.00431100
mov eax, dword [esp + 0x5d8]
add esp, 0x10
test eax, eax
je 0x46d8b3
call fcn.0046d310
test eax, eax
jne 0x46d873
push 1
call fcn.0046d100
add esp, 4
test eax, eax
je 0x46d778
lea edx, [esp + 0x2ac]
lea ecx, [esp + 4]
push edx
call sub.MFC42.DLL_CString::CString_2
push 1
push eax
mov dword [esp + 0x5c8], 0
call fcn.0046d4a0
add esp, 8
lea ecx, [esp + 4]
mov dword [esp + 0x5c0], 0xffffffff
call sub.MFC42.DLL_CString::CString
lea eax, [esp + 0x114]
push eax
call fcn.0046d0a0
add esp, 4
test eax, eax
jne 0x46d7d6
lea ecx, [esp + 0x3b0]
push eax
push ecx
lea edx, [esp + 0x11c]
push 0x56f01c
push edx
push 0x56f01c
lea eax, [esp + 0x4c8]
push 0x565c48
push eax
call fcn.0046c7e0
add esp, 0x1c
test eax, eax
jne 0x46d7d6
pop edi
mov ecx, dword [esp + 0x5b4]
mov dword fs:[0], ecx
add esp, 0x5c0
ret
lea ecx, [esp + 0x114]
push 1
push ecx
call fcn.0046c910
add esp, 8
test eax, eax
je 0x46d9fc
lea edx, [esp + 0x2ac]
lea ecx, [esp + 4]
push edx
call sub.MFC42.DLL_CString::CString_2
push 1
push eax
mov dword [esp + 0x5c8], 1
call fcn.0046d4a0
add esp, 8
lea ecx, [esp + 4]
mov dword [esp + 0x5c0], 0xffffffff
call sub.MFC42.DLL_CString::CString
lea eax, [esp + 0x114]
lea ecx, [esp + 4]
push eax
call sub.MFC42.DLL_CString::CString_2
push eax
mov dword [esp + 0x5c4], 2
call fcn.0046d420
add esp, 4
lea ecx, [esp + 4]
mov dword [esp + 0x5c0], 0xffffffff
call sub.MFC42.DLL_CString::CString
push 1
call fcn.0046d370
add esp, 4
jmp 0x46d9fc
lea ecx, [esp + 0x2ac]
push ecx
lea ecx, [esp + 8]
call sub.MFC42.DLL_CString::CString_2
push 1
push eax
mov dword [esp + 0x5c8], 3
call fcn.0046d4a0
add esp, 8
lea ecx, [esp + 4]
mov dword [esp + 0x5c0], 0xffffffff
call sub.MFC42.DLL_CString::CString
jmp 0x46d9fc
push ebx
lea ecx, [esp + 0xc]
call sub.MFC42.DLL_CString::CString_3
lea edx, [esp + 8]
mov ebx, 4
push edx
mov dword [esp + 0x5c8], ebx
call fcn.0046d3a0
add esp, 4
push eax
lea ecx, [esp + 0x10]
mov byte [esp + 0x5c8], 5
call sub.MFC42.DLL_CString::operator_2
lea ecx, [esp + 8]
mov byte [esp + 0x5c4], bl
call sub.MFC42.DLL_CString::CString
lea eax, [esp + 0xc]
push eax
call fcn.0046d0d0
add esp, 4
test eax, eax
je 0x46d918
mov ecx, dword [esp + 0xc]
push 0
push ecx
call fcn.0046c910
add esp, 8
push 0
call fcn.0046d100
add esp, 4
test eax, eax
je 0x46d95a
lea edx, [esp + 0x2b0]
lea ecx, [esp + 8]
push edx
call sub.MFC42.DLL_CString::CString_2
push 0
push eax
mov byte [esp + 0x5cc], 6
call fcn.0046d4a0
add esp, 8
lea ecx, [esp + 8]
mov byte [esp + 0x5c4], bl
call sub.MFC42.DLL_CString::CString
lea eax, [esp + 0x118]
push 0
push eax
call fcn.0046c910
add esp, 8
lea ecx, [esp + 0x118]
push ecx
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
push 0x56f01c
lea ecx, [esp + 0xc]
call sub.MFC42.DLL_CString::CString_2
push eax
mov byte [esp + 0x5c8], 7
call fcn.0046d420
add esp, 4
lea ecx, [esp + 8]
mov byte [esp + 0x5c4], bl
call sub.MFC42.DLL_CString::CString
lea edx, [esp + 0x2b0]
lea ecx, [esp + 0x10]
push edx
call sub.MFC42.DLL_CString::CString_2
push 0
push eax
mov byte [esp + 0x5cc], 8
call fcn.0046d4a0
add esp, 8
lea ecx, [esp + 0x10]
mov byte [esp + 0x5c4], bl
call sub.MFC42.DLL_CString::CString
push 0
call fcn.0046d370
add esp, 4
lea ecx, [esp + 0xc]
mov dword [esp + 0x5c4], 0xffffffff
call sub.MFC42.DLL_CString::CString
pop ebx
mov ecx, dword [esp + 0x5b8]
mov eax, 1
pop edi
mov dword fs:[0], ecx
add esp, 0x5c0
ret