Function at 0x413060
Capabilities:
Read .ini file

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x4881fe
mov eax, dword fs:[0]
push eax
sub esp, 0x80
push ebx
push esi
push edi
mov eax, dword [0x4a5584]
xor eax, esp
push eax
lea eax, [esp + 0x90]
mov dword fs:[0], eax
mov esi, ecx
mov dword [esp + 0x10], esi
mov ebx, dword [ebp + 8]
mov eax, dword [ebx]
xor edi, edi
cmp eax, edi
je 0x4130ac
push 1
push eax
call dword [sym.imp.GDI32.dll_SetBkMode]
mov ecx, dword [esi + 4]
lea eax, [esp + 0x5c]
push eax
push ecx
call dword [sym.imp.USER32.dll_GetClientRect]
push 0xf5f5f5
mov dword [esp + 0x9c], edi
call dword [sym.imp.GDI32.dll_CreateSolidBrush]
push eax
lea edx, [esp + 0x60]
mov dword [esp + 0x24], eax
mov eax, dword [ebx]
push edx
push eax
call dword [sym.imp.USER32.dll_FillRect]
mov edx, dword [esi + 4]
lea ecx, [esp + 0x4c]
push ecx
push edx
call dword [sym.imp.USER32.dll_GetClientRect]
mov eax, dword [esp + 0x50]
mov edx, dword [esp + 0x4c]
mov ecx, dword [esp + 0x54]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x58]
mov dword [esp + 0x38], eax
mov eax, dword [ebx]
mov dword [esp + 0x2c], edx
mov esi, ecx
cmp eax, edi
je 0x413124
push edi
sub ecx, edx
push ecx
push edi
push edi
push eax
mov ecx, 0x4b005c
call fcn.00401800
mov ecx, 0x4b0084
call fcn.00401a80
mov ecx, dword [0x4b0098]
mov dword [esp + 0x18], ecx
mov ecx, 0x4b0084
call fcn.00401a80
mov eax, dword [esp + 0x30]
mov edx, dword [0x4b009c]
add eax, 5
sub esi, 0xa
add edx, eax
mov dword [esp + 0x30], eax
mov eax, dword [ebx + 4]
mov dword [esp + 0x34], esi
sub esi, dword [esp + 0x18]
mov dword [esp + 0x6c], ebx
mov ecx, dword [eax + 0x10]
mov eax, dword [eax + 0xc]
mov dword [esp + 0x2c], esi
mov dword [esp + 0x7c], ecx
push 0x4b0084
lea esi, [esp + 0x30]
lea ecx, [esp + 0x70]
mov dword [esp + 0x3c], edx
mov dword [esp + 0x74], edi
mov dword [esp + 0x78], edi
mov dword [esp + 0x7c], eax
mov dword [esp + 0x84], edi
mov dword [esp + 0x88], edi
mov dword [esp + 0x8c], 1
call fcn.00410b70
add esp, 4
test eax, eax
je 0x413229
mov esi, dword [esp + 0x10]
push edi
push edi
lea eax, [esp + 0x1c]
push eax
lea ecx, [esp + 0x24]
push ecx
push edi
mov dword [esp + 0x2c], edi
mov dword [esp + 0x28], edi
call fcn.00412c70
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
lea esi, [edx + eax]
cmp esi, edi
jle 0x413200
mov ebx, dword [esp + 0x10]
mov ecx, dword [ebx + 4]
push edi
push ecx
call dword [sym.imp.USER32.dll_ShowWindow]
push esi
call fcn.00415090
mov ebx, dword [ebp + 8]
xor edi, edi
jmp 0x413229
push ecx
mov edx, esp
mov dword [esp + 0x20], esp
push edx
mov ecx, str.user_close
call fcn.004030f0
call fcn.00415be0
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 4]
push edi
push edi
push 0x10
push ecx
call dword [sym.imp.USER32.dll_PostMessageW]
push 0xf
push 0x38
push edi
push edi
lea edx, [esp + 0x4c]
push edx
call dword [sym.imp.USER32.dll_SetRect]
mov ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0x30]
add ecx, 0xffffffb0
mov edx, ecx
sub edx, dword [esp + 0x3c]
add eax, 2
add dword [esp + 0x44], edx
mov dword [esp + 0x3c], ecx
mov ecx, eax
sub ecx, dword [esp + 0x40]
mov dword [esp + 0x40], eax
mov eax, dword [ebx + 4]
add dword [esp + 0x48], ecx
mov dword [esp + 0x6c], ebx
mov ecx, dword [eax + 0x10]
mov eax, dword [eax + 0xc]
mov dword [esp + 0x70], edi
mov dword [esp + 0x74], edi
mov dword [esp + 0x78], eax
mov dword [esp + 0x7c], ecx
mov dword [esp + 0x80], edi
mov dword [esp + 0x84], edi
mov dword [esp + 0x88], 1
call fcn.004169b0
mov eax, dword [eax]
mov esi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
push eax
push edi
push str.no_show
push str.IosMobile
call esi
push 0x4b02f4
push eax
lea edx, [esp + 0x44]
lea ecx, [esp + 0x74]
call fcn.00410c40
add esp, 8
test eax, eax
je 0x413340
call fcn.004169b0
mov eax, dword [eax]
push eax
push edi
push str.no_show
push str.IosMobile
call esi
mov esi, eax
neg esi
sbb esi, esi
inc esi
cmp esi, edi
je 0x413306
push ecx
mov edx, esp
mov dword [esp + 0x20], esp
push edx
mov ecx, str.no_show
call fcn.004030f0
call fcn.00415be0
call fcn.004169b0
mov ecx, 0x49818c
cmp esi, edi
jne 0x413319
mov ecx, 0x49811c
mov eax, dword [eax]
push eax
push ecx
push str.no_show
push str.IosMobile
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
mov esi, dword [esp + 0x10]
mov eax, dword [esi + 4]
push 1
push edi
push eax
call dword [sym.imp.USER32.dll_InvalidateRect]
jmp 0x413344
mov esi, dword [esp + 0x10]
mov edx, dword [0x4a8404]
mov eax, dword [edx + 0xc]
mov ecx, 0x4a8404
call eax
add eax, 0x10
mov dword [esp + 0x14], eax
mov byte [esp + 0x98], 1
mov ecx, dword [esi + 0x5ac]
sub ecx, dword [esi + 0x5a8]
mov eax, 0x2aaaaaab
imul ecx
sar edx, 3
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
push ecx
push 0x498b44
lea edi, [esp + 0x1c]
call fcn.00405530
mov edi, dword [esp + 0x18]
mov edx, dword [edi + 0x144]
mov esi, dword [esp + 0x1c]
add esp, 8
push esi
mov dword [esp + 0x1c], edx
call dword [sym.imp.KERNEL32.dll_lstrlenW]
test eax, eax
je 0x4133f1
mov eax, dword [esp + 0x18]
mov ecx, dword [0x4aff8c]
push eax
push ecx
call dword [sym.imp.GDI32.dll_SelectObject]
push esi
mov dword [esp + 0x14], eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
lea edx, [esp + 0x24]
push edx
push eax
mov eax, dword [0x4aff8c]
push esi
push eax
call dword [sym.imp.GDI32.dll_GetTextExtentPoint32W]
mov ecx, dword [esp + 0x10]
mov edx, dword [0x4aff8c]
push ecx
push edx
call dword [sym.imp.GDI32.dll_SelectObject]
mov edx, dword [ebx + 4]
mov ecx, 0x64
sub ecx, dword [esp + 0x28]
mov eax, 0x41
sub eax, dword [esp + 0x24]
push ecx
push eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x74], ebx
mov esi, dword [edx + 0x10]
mov edx, dword [edx + 0xc]
mov dword [esp + 0x18], esi
xor esi, esi
push 0x25e4fd
push ecx
mov dword [esp + 0x88], edx
mov edx, dword [esp + 0x20]
add eax, 0xfffffff0
mov dword [esp + 0x2c], esp
mov dword [esp + 0x80], esi
mov dword [esp + 0x84], esi
mov dword [esp + 0x8c], edx
mov dword [esp + 0x90], esi
mov dword [esp + 0x94], esi
mov dword [esp + 0x98], 1
mov dword [esp + 0x20], esp
mov dword [esp + 0x2c], eax
call fcn.00404890
mov ecx, esp
add eax, 0x10
lea edx, [esp + 0x7c]
mov dword [ecx], eax
mov ecx, dword [esp + 0x28]
push edx
call fcn.004105d0
add esp, 0x14
mov ecx, 0x4b00fc
mov dword [esp + 0x2c], 0xfe
call fcn.00401a80
mov eax, dword [0x4b0110]
add eax, 0xfe
mov ecx, 0x4b00fc
mov dword [esp + 0x34], eax
mov dword [esp + 0x30], 0x3c
call fcn.00401a80
mov ecx, dword [0x4b0114]
mov dword [esp + 0x6c], ebx
mov ebx, dword [ebx + 4]
mov eax, dword [ebx + 0x10]
mov ebx, dword [ebx + 0xc]
add ecx, 0x3c
sub esp, 0x10
xor edx, edx
mov dword [esp + 0x48], ecx
xor ecx, ecx
mov dword [esp + 0x8c], eax
mov eax, esp
mov dword [eax], ecx
mov dword [eax + 4], edx
mov edx, dword [edi + 0x5b4]
neg edx
sbb edx, edx
and edx, 3
push edx
push ecx
mov dword [eax + 8], esi
mov dword [eax + 0xc], ecx
mov eax, esp
mov dword [esp + 0x30], esp
push eax
mov ecx, 0x4944b4
mov dword [esp + 0x8c], esi
mov dword [esp + 0x90], esi
mov dword [esp + 0x94], ebx
mov dword [esp + 0x9c], esi
mov dword [esp + 0xa0], esi
mov dword [esp + 0xa4], 1
call fcn.004030f0
mov byte [esp + 0xb0], 2
push ecx
mov ecx, esp
mov dword [esp + 0x2c], esp
push ecx
mov ecx, 0x4944b4
call fcn.004030f0
push 0x4b0124
lea edx, [esp + 0x8c]
push 0x4b00fc
push edx
lea ecx, [esp + 0x54]
mov byte [esp + 0xc0], 1
call fcn.00410900
add esp, 0x28
cmp eax, esi
je 0x4135ed
push ecx
mov eax, esp
mov dword [esp + 0x1c], esp
push eax
mov ecx, str.inst_all
call fcn.004030f0
call fcn.00415be0
mov ecx, dword [edi + 0x5ac]
sub ecx, dword [edi + 0x5a8]
mov eax, 0x2aaaaaab
imul ecx
sar edx, 3
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
test ecx, ecx
jle 0x4135ed
jmp 0x4135c0
mov eax, esi
mov ebx, edi
call fcn.00413c80
mov ecx, dword [edi + 0x5ac]
sub ecx, dword [edi + 0x5a8]
mov eax, 0x2aaaaaab
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
inc esi
add eax, edx
cmp esi, eax
jl 0x4135c0
xor esi, esi
mov eax, dword [esp + 0x1c]
mov byte [esp + 0x98], 0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x413612
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x20]
cmp eax, esi
je 0x413621
push eax
call dword [sym.imp.GDI32.dll_DeleteObject]
mov ecx, dword [esp + 0x90]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4