Function at 0x403f85
Capabilities:
Read .ini file

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1c
push esi
push edi
call dword [sym.imp.KERNEL32.dll_GetVersion]
mov cx, ax
cmp eax, 0x80000000
mov ch, cl
mov cl, ah
mov word [0x40cdbc], cx
jae 0x403fb3
mov word [0x40aa30], 4
jmp 0x403fd0
cmp word [0x40cdbc], 0x400
mov word [0x40aa30], 2
jb 0x403fd0
mov word [0x40aa30], 3
push 0
push str.AtoaClass
call dword [sym.imp.USER32.dll_FindWindowA]
mov edi, eax
test edi, edi
je 0x40401b
push edi
call dword [sym.imp.USER32.dll_GetLastActivePopup]
mov esi, eax
push edi
call dword [sym.imp.USER32.dll_BringWindowToTop]
push edi
call dword [sym.imp.USER32.dll_IsIconic]
test eax, eax
je 0x404007
push 9
push edi
call dword [sym.imp.USER32.dll_ShowWindow]
cmp esi, edi
je 0x404273
push esi
call dword [sym.imp.USER32.dll_BringWindowToTop]
jmp 0x404273
mov eax, dword [ebp + 8]
push 0x40
push 0x409040
mov dword [0x40aa2c], eax
push 0x135
push eax
call dword [sym.imp.USER32.dll_LoadStringA]
call fcn.00403f1b
test eax, eax
je 0x404273
push 0xf
call dword [sym.imp.USER32.dll_GetSysColor]
push eax
call dword [sym.imp.GDI32.dll_CreateSolidBrush]
mov dword [0x40aa1c], eax
test eax, eax
jne 0x404068
push 1
call dword [sym.imp.GDI32.dll_GetStockObject]
mov dword [0x40aa1c], eax
xor esi, esi
mov edi, dword [sym.imp.USER32.dll_GetSystemMetrics]
push esi
call edi
push 1
mov dword [0x40aa40], eax
call edi
push 0xf
mov dword [0x40b16c], eax
call edi
push esi
mov edi, dword [0x40b16c]
mov dword [0x40aa44], eax
mov eax, dword [0x40aa2c]
push eax
push esi
push esi
mov eax, edi
imul eax, eax, 3
cdq
and edx, 3
mov ecx, dword [0x40aa40]
add eax, edx
sar eax, 2
push eax
mov eax, ecx
imul eax, eax, 3
cdq
and edx, 3
add eax, edx
sar eax, 2
push eax
mov eax, edi
cdq
and edx, 7
add eax, edx
sar eax, 3
push eax
mov eax, ecx
cdq
and edx, 7
add eax, edx
sar eax, 3
push eax
push 0xcf0000
push 0x409040
push str.AtoaClass
push esi
call dword [sym.imp.USER32.dll_CreateWindowExA]
mov dword [0x40aa18], eax
cmp eax, esi
jne 0x404109
push 0x20
push esi
call fcn.0040154a
add esp, 8
mov eax, 0xffffffff
jmp 0x404275
push 1
mov eax, dword [0x40aa18]
push eax
call dword [sym.imp.USER32.dll_ShowWindow]
mov eax, dword [0x40aa18]
push eax
call dword [sym.imp.USER32.dll_UpdateWindow]
mov eax, dword [0x40aa40]
imul eax, eax, 3
cdq
and edx, 7
add eax, edx
sar eax, 3
mov dword [0x40bd70], eax
mov eax, dword [0x40b16c]
imul eax, eax, 3
cdq
and edx, 7
add eax, edx
sar eax, 3
sub eax, dword [0x40aa44]
mov dword [0x40aa20], eax
call fcn.00401af1
test eax, eax
je 0x404172
push eax
push dword [0x40aa18]
call fcn.00401685
add esp, 8
jmp 0x404210
push str.gfact.ini
push 0x64
push str.grmf
push str.setup
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov dword [0x40aa24], eax
cmp eax, 0x64
jne 0x4041a9
mov dword [0x40aa24], 0x23
mov dword [0x40aa38], 0
jmp 0x4041b3
mov dword [0x40aa38], 1
push 0
push 0x403ce5
push 0x190
call fcn.00401307
add esp, 0xc
cmp eax, 0x65
je 0x4041d3
cmp eax, 0x66
je 0x4041da
jmp 0x404210
call fcn.0040385e
jmp 0x404210
push 0
push 0x403bdf
push 0x193
call fcn.00401307
add esp, 0xc
cmp eax, 1
jne 0x404210
push str.gfact.ini
mov eax, dword [0x40aa24]
push eax
push str.grmf
push str.setup
call fcn.004011c1
add esp, 0x10
push 0x40bd64
xor esi, esi
call fcn.00401445
add esp, 4
mov eax, dword [0x40aa18]
push eax
call dword [sym.imp.USER32.dll_DestroyWindow]
push esi
lea eax, [ebp - 0x1c]
push esi
push esi
push eax
call dword [sym.imp.USER32.dll_GetMessageA]
test eax, eax
je 0x404257
lea eax, [ebp - 0x1c]
push eax
call dword [sym.imp.USER32.dll_DispatchMessageA]
push esi
lea eax, [ebp - 0x1c]
push esi
push esi
push eax
call dword [sym.imp.USER32.dll_GetMessageA]
test eax, eax
jne 0x40423c
push 1
call dword [sym.imp.GDI32.dll_GetStockObject]
cmp eax, dword [0x40aa1c]
je 0x404273
mov eax, dword [0x40aa1c]
push eax
call dword [sym.imp.GDI32.dll_DeleteObject]
xor eax, eax
pop edi
pop esi
mov esp, ebp
pop ebp
ret 0x10