Function at 0x404ff0
Capabilities:
Read .ini file

Disassembly:
push 0xffffffffffffffff
push 0x43a8db
mov eax, dword fs:[0]
push eax
sub esp, 0x874
mov eax, dword [0x44b7a0]
xor eax, esp
mov dword [esp + 0x870], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x44b7a0]
xor eax, esp
push eax
lea eax, [esp + 0x888]
mov dword fs:[0], eax
mov ebp, dword [esp + 0x898]
mov ebx, ecx
xor edi, edi
mov esi, vtable.CFont.0
mov dword [esp + 0x20], ebx
mov dword [esp + 0x1c], edi
mov dword [esp + 0x18], esi
mov dword [esp + 0x890], edi
mov ecx, 0x441858
mov eax, ebx
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x40507b
cmp dx, di
je 0x405077
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x40507b
add eax, 4
add ecx, 4
cmp dx, di
jne 0x405055
xor eax, eax
jmp 0x405080
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, edi
jne 0x405098
mov dword [esp + 0x890], 0xffffffff
mov dword [esp + 0x18], esi
jmp 0x405853
mov ecx, str.MAIN
mov eax, ebx
nop
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x4050c6
cmp dx, di
je 0x4050c2
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x4050c6
add eax, 4
add ecx, 4
cmp dx, di
jne 0x4050a0
xor eax, eax
jmp 0x4050cb
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, edi
mov eax, dword [esp + 0x89c]
jne 0x4050db
cmp eax, 0xffffffff
je 0x405137
cmp eax, edi
jne 0x4050f3
mov eax, dword [ebp + 0x4c60]
mov ecx, dword [eax + 0x404]
mov dword [ebp + 0x4c60], ecx
jmp 0x405137
cmp eax, 1
jne 0x405137
push 0x408
call fcn.004075ea
add esp, 4
push 0x408
mov esi, eax
push edi
push esi
call fcn.00425cd0
add esp, 0xc
push ebx
push 0x200
push esi
call fcn.00424fb9
mov edx, dword [ebp + 0x4c60]
mov dword [esi + 0x404], edx
add esp, 0xc
mov dword [ebp + 0x4c60], esi
mov eax, dword [ebp + 0x4c60]
push eax
lea ecx, [ebp + 0x1404]
push ecx
lea edx, [ebp + 0x1804]
push str._s._s
call fcn.00407250
mov eax, dword [ebp + 0x4c60]
add esp, 0xc
push eax
lea edx, [esp + 0x288]
push 0x100
push edx
call fcn.00424fb9
mov ebx, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
add esp, 0xc
lea eax, [ebp + 4]
push eax
push 0x100
lea eax, [esp + 0x8c]
push eax
push str.main.bmp
push str.BcakgroundImage
lea ecx, [esp + 0x298]
push ecx
call ebx
lea edx, [ebp + 0x1004]
push edx
lea edi, [ebp + 0x404]
push 0x200
push edi
call fcn.00424fb9
lea eax, [esp + 0x90]
add esp, 0xc
mov ecx, eax
mov dx, word [eax]
add eax, 2
test dx, dx
jne 0x4051c3
sub eax, ecx
mov esi, ecx
add edi, 0xfffffffe
mov cx, word [edi + 2]
add edi, 2
test cx, cx
jne 0x4051d5
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
cmp dword [ebp + 0x3404], 0
je 0x40522c
xor esi, esi
cmp dword [ebp + 0x4810], esi
jle 0x40521d
mov eax, dword [ebp + 0x3404]
mov eax, dword [eax + esi*4]
push eax
call fcn.00407619
inc esi
add esp, 4
cmp esi, dword [ebp + 0x4810]
jl 0x405202
mov eax, dword [ebp + 0x3404]
push eax
call fcn.00407619
add esp, 4
mov edi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
lea eax, [ebp + 4]
push eax
push 0
push str.LineCount
lea ecx, [esp + 0x290]
push ecx
call edi
xor ecx, ecx
mov dword [ebp + 0x4810], eax
mov edx, 4
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.00407624
xor esi, esi
add esp, 4
cmp dword [ebp + 0x4810], esi
mov dword [ebp + 0x3404], eax
jle 0x4052ae
push 0x200
call fcn.00407624
mov ecx, dword [ebp + 0x3404]
add esp, 4
mov dword [ecx + esi*4], eax
mov edx, dword [ebp + 0x3404]
mov eax, dword [edx + esi*4]
push 0x100
push 0
push eax
call fcn.00425cd0
inc esi
add esp, 0xc
cmp esi, dword [ebp + 0x4810]
jl 0x405276
lea esi, [ebp + 4]
push esi
push 0x100
lea ecx, [esp + 0x8c]
push ecx
push str.Font1
push str.LineFont
lea edx, [esp + 0x298]
push edx
call ebx
push esi
push 0x100
lea eax, [esp + 0x48c]
push eax
push 0x441858
lea ecx, [esp + 0x94]
push ecx
push str.SETTING
call ebx
mov ecx, 0x441858
lea eax, [esp + 0x484]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x405327
test dx, dx
je 0x405323
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x405327
add eax, 4
add ecx, 4
test dx, dx
jne 0x405301
xor eax, eax
jmp 0x40532c
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x405370
mov eax, dword [ebp + 0x4834]
lea edx, [esp + 0x24]
push edx
push 0x5c
push eax
call dword [sym.imp.GDI32.dll_GetObjectW]
lea esi, [ebp + 0x4818]
test esi, esi
je 0x40535b
cmp dword [esi + 4], 0
je 0x40535b
mov ecx, esi
call fcn.004126e6
lea ecx, [esp + 0x24]
push ecx
call dword [sym.imp.GDI32.dll_CreateFontIndirectW]
push eax
mov ecx, esi
call fcn.0041268e
jmp 0x405383
lea edx, [ebp + 0x4818]
push edx
lea ecx, [esp + 0x488]
call fcn.00405890
mov eax, dword [ebp + 0x4c60]
mov eax, dword [eax + 0x400]
test eax, eax
je 0x40539c
push eax
call fcn.00407619
add esp, 4
lea eax, [ebp + 4]
push eax
push 0
push str.ItemCount
lea ecx, [esp + 0x290]
push ecx
call edi
cmp eax, 0xf
mov dword [ebp + 0x4814], eax
jle 0x4053c6
mov dword [ebp + 0x4814], 0xf
mov eax, dword [ebp + 0x4814]
xor ecx, ecx
mov edx, 0x804
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.00407624
mov ecx, dword [ebp + 0x4c60]
mov dword [ecx + 0x400], eax
mov edx, dword [ebp + 0x4814]
mov eax, dword [ebp + 0x4c60]
imul edx, edx, 0x804
mov ecx, dword [eax + 0x400]
add esp, 4
push edx
push 0
push ecx
call fcn.00425cd0
xor eax, eax
add esp, 0xc
cmp dword [ebp + 0x4814], eax
jle 0x40548f
xor ebx, ebx
lea esi, [eax + 1]
push esi
push str.Item_d
lea edx, [esp + 0x48c]
call fcn.004025c0
add esp, 8
lea eax, [ebp + 4]
push eax
push 0x100
lea edx, [esp + 0x8c]
push edx
push 0x441858
lea eax, [esp + 0x494]
push eax
lea ecx, [esp + 0x298]
push ecx
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
mov edx, dword [ebp + 0x4c60]
mov edi, dword [edx + 0x400]
add edi, ebx
lea ecx, [esp + 0x84]
call fcn.004070b0
mov eax, esi
add ebx, 0x804
cmp eax, dword [ebp + 0x4814]
jl 0x405421
mov ebx, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea esi, [ebp + 4]
push esi
push 0x100
lea eax, [esp + 0x8c]
push eax
push str.Font1
push str.ItemFont
lea ecx, [esp + 0x298]
push ecx
call ebx
push esi
push 0x100
lea edx, [esp + 0x48c]
push edx
push 0x441858
lea eax, [esp + 0x94]
push eax
push str.SETTING
call ebx
mov ecx, 0x441858
lea eax, [esp + 0x484]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x40550e
test dx, dx
je 0x40550a
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x40550e
add eax, 4
add ecx, 4
test dx, dx
jne 0x4054e8
xor eax, eax
jmp 0x405513
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x405557
mov edx, dword [ebp + 0x4834]
lea ecx, [esp + 0x24]
push ecx
push 0x5c
push edx
call dword [sym.imp.GDI32.dll_GetObjectW]
lea esi, [ebp + 0x4820]
test esi, esi
je 0x405542
cmp dword [esi + 4], 0
je 0x405542
mov ecx, esi
call fcn.004126e6
lea eax, [esp + 0x24]
push eax
call dword [sym.imp.GDI32.dll_CreateFontIndirectW]
push eax
mov ecx, esi
call fcn.0041268e
jmp 0x40556a
lea ecx, [ebp + 0x4820]
push ecx
lea ecx, [esp + 0x488]
call fcn.00405890
lea esi, [ebp + 4]
push esi
push 0x100
lea edx, [esp + 0x8c]
push edx
push str.Font1
push str.ButtonFont
lea eax, [esp + 0x298]
push eax
call ebx
push esi
push 0x100
lea ecx, [esp + 0x48c]
push ecx
push 0x441858
lea edx, [esp + 0x94]
push edx
push str.SETTING
call ebx
mov ecx, 0x441858
lea eax, [esp + 0x484]
lea ecx, [ecx]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x4055e6
test dx, dx
je 0x4055e2
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x4055e6
add eax, 4
add ecx, 4
test dx, dx
jne 0x4055c0
xor eax, eax
jmp 0x4055eb
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x40562f
mov ecx, dword [ebp + 0x4834]
lea eax, [esp + 0x24]
push eax
push 0x5c
push ecx
call dword [sym.imp.GDI32.dll_GetObjectW]
lea esi, [ebp + 0x4828]
test esi, esi
je 0x40561a
cmp dword [esi + 4], 0
je 0x40561a
mov ecx, esi
call fcn.004126e6
lea edx, [esp + 0x24]
push edx
call dword [sym.imp.GDI32.dll_CreateFontIndirectW]
push eax
mov ecx, esi
call fcn.0041268e
jmp 0x405642
lea eax, [ebp + 0x4828]
push eax
lea ecx, [esp + 0x488]
call fcn.00405890
lea eax, [ebp + 0x1804]
push eax
lea ecx, [esp + 0x288]
push 0x100
push ecx
call fcn.00424fb9
add esp, 0xc
lea eax, [ebp + 4]
push eax
push 0x100
lea edx, [esp + 0x8c]
push edx
push 0x441858
push str.Caption
lea eax, [esp + 0x298]
push eax
call ebx
lea ecx, [esp + 0x84]
push ecx
lea edx, [ebp + 0xc04]
push 0x200
push edx
call fcn.00424fb9
xor esi, esi
add esp, 0xc
cmp dword [ebp + 0x4810], esi
jle 0x40571b
lea esp, [esp]
lea edi, [esi + 1]
push edi
push str.Line_d
lea edx, [esp + 0x48c]
call fcn.004025c0
add esp, 8
lea eax, [ebp + 4]
push eax
push 0x100
lea eax, [esp + 0x8c]
push eax
push 0x441858
lea ecx, [esp + 0x494]
push ecx
lea edx, [esp + 0x298]
push edx
call ebx
mov eax, dword [ebp + 0x3404]
mov esi, dword [eax + esi*4]
lea ecx, [esp + 0x84]
movzx eax, word [ecx]
mov word [esi], ax
add ecx, 2
add esi, 2
test ax, ax
jne 0x405700
mov esi, edi
cmp esi, dword [ebp + 0x4810]
jl 0x4056b0
xor eax, eax
cmp dword [ebp + 0x4814], eax
jle 0x4057a1
xor edi, edi
lea esi, [eax + 1]
push esi
push str.Item_d
lea edx, [esp + 0x68c]
call fcn.004025c0
add esp, 8
lea eax, [ebp + 4]
push eax
push 0x100
lea ecx, [esp + 0x8c]
push ecx
push 0x441858
lea edx, [esp + 0x694]
push edx
lea eax, [esp + 0x298]
push eax
call ebx
mov edx, dword [ebp + 0x4c60]
mov eax, dword [edx + 0x400]
lea ecx, [esp + 0x84]
add eax, edi
lea esp, [esp]
movzx edx, word [ecx]
mov word [eax], dx
add ecx, 2
add eax, 2
test dx, dx
jne 0x405780
mov eax, esi
add edi, 0x804
cmp eax, dword [ebp + 0x4814]
jl 0x405727
lea eax, [ebp + 4]
push eax
push 0x100
lea eax, [esp + 0x8c]
push eax
push 0x441858
push 0x441ef0
lea ecx, [esp + 0x298]
push ecx
call ebx
lea eax, [esp + 0x84]
lea edx, [ebp + 0x1c04]
mov ecx, eax
sub edx, ecx
jmp 0x4057e0
movzx ecx, word [eax]
mov word [edx + eax], cx
add eax, 2
test cx, cx
jne 0x4057e0
lea eax, [ebp + 4]
push eax
push 0x100
lea edx, [esp + 0x8c]
push edx
push 0x441858
push 0x441efc
lea eax, [esp + 0x298]
push eax
call ebx
lea eax, [esp + 0x84]
lea edx, [ebp + 0x2004]
mov ecx, eax
sub edx, ecx
movzx ecx, word [eax]
mov word [edx + eax], cx
add eax, 2
test cx, cx
jne 0x405825
mov edx, dword [esp + 0x20]
push edx
mov ecx, ebp
call fcn.00406cc0
mov dword [esp + 0x890], 0xffffffff
mov dword [esp + 0x18], vtable.CFont.0
lea ecx, [esp + 0x18]
call fcn.004029c0
mov ecx, dword [esp + 0x888]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x870]
xor ecx, esp
call fcn.0042461c
add esp, 0x880
ret 8