Function at 0x40ef00
Capabilities:
Get file version info
Read .ini file

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x41f0ca
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x464
mov dword [ebp - 0x470], ecx
push 0x429004
push 0x429010
lea eax, [ebp - 0x42c]
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
lea ecx, [ebp - 0x21c]
push ecx
lea edx, [ebp - 0x42c]
push edx
call fcn.004179ff
add esp, 8
test eax, eax
je 0x40f0bd
mov dword [ebp - 0x43c], 0
mov dword [ebp - 0x430], 0
mov dword [ebp - 0x434], 0
mov dword [ebp - 0x444], 0
lea eax, [ebp - 0x43c]
push eax
lea ecx, [ebp - 0x21c]
push ecx
call sub.VERSION.dll_GetFileVersionInfoSizeA
mov dword [ebp - 0x430], eax
cmp dword [ebp - 0x430], 0
je 0x40f0b6
mov edx, dword [ebp - 0x430]
push edx
call sub.MFC42.DLL_operatornew
add esp, 4
mov dword [ebp - 0x45c], eax
mov eax, dword [ebp - 0x45c]
mov dword [ebp - 0x458], eax
mov ecx, dword [ebp - 0x458]
push ecx
mov edx, dword [ebp - 0x430]
push edx
mov eax, dword [ebp - 0x43c]
push eax
lea ecx, [ebp - 0x21c]
push ecx
call sub.VERSION.dll_GetFileVersionInfoA
test eax, eax
je 0x40f077
lea edx, [ebp - 0x440]
push edx
lea eax, [ebp - 0x438]
push eax
push 0x429014
mov ecx, dword [ebp - 0x458]
push ecx
call sub.VERSION.dll_VerQueryValueA
test eax, eax
je 0x40f077
mov edx, dword [ebp - 0x438]
mov eax, dword [edx + 0x14]
mov dword [ebp - 0x454], eax
mov ecx, dword [ebp - 0x438]
mov edx, dword [ecx + 0x10]
mov dword [ebp - 0x450], edx
mov eax, dword [ebp - 0x450]
shr eax, 0x10
mov dword [ebp - 0x434], eax
mov eax, dword [ebp - 0x450]
xor edx, edx
mov ecx, 0x10000
div ecx
mov dword [ebp - 0x444], edx
mov edx, dword [ebp - 0x438]
mov eax, dword [edx + 0x2c]
mov dword [ebp - 0x448], eax
mov ecx, dword [ebp - 0x438]
mov edx, dword [ecx + 0x30]
mov dword [ebp - 0x44c], edx
mov eax, dword [ebp - 0x458]
mov dword [ebp - 0x460], eax
mov ecx, dword [ebp - 0x460]
push ecx
call sub.MFC42.DLL_operatordelete
add esp, 4
cmp dword [ebp - 0x434], 2
jl 0x40f0ad
cmp dword [ebp - 0x434], 2
jne 0x40f0b4
cmp dword [ebp - 0x444], 6
jge 0x40f0b4
xor eax, eax
jmp 0x40f23d
jmp 0x40f0bd
xor eax, eax
jmp 0x40f23d
mov ecx, dword [ebp - 0x470]
add ecx, 0x2f0
call fcn.00413440
mov dword [ebp - 0x220], eax
lea edx, [ebp - 0x328]
push edx
mov eax, dword [ebp - 0x220]
push eax
mov ecx, dword [ebp - 0x470]
add ecx, 0x2f0
call fcn.004134a0
mov ecx, 0x42a98c
call fcn.00401ec0
push eax
push 0x104
lea ecx, [ebp - 0x114]
push ecx
push 0x429018
push 0x429020
lea edx, [ebp - 0x328]
push edx
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
lea ecx, [ebp - 0x118]
call sub.MFC42.DLL_CString::CString_3
mov dword [ebp - 4], 0
lea eax, [ebp - 0x114]
push eax
push 0x429030
lea ecx, [ebp - 0x118]
push ecx
call sub.MFC42.DLL_CString::Format
add esp, 0xc
push 0x429034
lea edx, [ebp - 0x118]
push edx
call fcn.00412eb0
and eax, 0xff
test eax, eax
je 0x40f18f
mov dword [ebp - 0x464], 0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x118]
call sub.MFC42.DLL_CString::CString
mov eax, dword [ebp - 0x464]
jmp 0x40f23d
mov ecx, 0x42a98c
call fcn.00401ec0
push eax
push 0
push 0x42903c
lea eax, [ebp - 0x328]
push eax
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov dword [ebp - 0x224], eax
mov ecx, 0x42a98c
call fcn.00401ec0
push eax
push 0
push 0x429048
lea ecx, [ebp - 0x328]
push ecx
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x224], 2
jne 0x40f1e5
cmp dword [ebp - 0x10], 0x3c
jge 0x40f1f7
cmp dword [ebp - 0x224], 3
jl 0x40f21b
cmp dword [ebp - 0x224], 5
je 0x40f21b
mov dword [ebp - 0x468], 1
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x118]
call sub.MFC42.DLL_CString::CString
mov eax, dword [ebp - 0x468]
jmp 0x40f23d
mov dword [ebp - 0x46c], 0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x118]
call sub.MFC42.DLL_CString::CString
mov eax, dword [ebp - 0x46c]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret