Function at 0x406010
Capabilities:
Read .ini file

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x457d06
mov eax, dword fs:[0]
push eax
sub esp, 0xc8
mov eax, dword [0x473204]
xor eax, esp
mov dword [esp + 0xc0], eax
push ebx
push esi
push edi
mov eax, dword [0x473204]
xor eax, esp
push eax
lea eax, [esp + 0xd8]
mov dword fs:[0], eax
mov esi, ecx
mov eax, dword [esi + 0x64c]
mov edi, dword [eax]
call fcn.004184b1
mov eax, dword [eax + 0xc]
movzx ecx, di
mov edi, dword [sym.imp.USER32.dll_LoadBitmapA]
push ecx
push eax
lea ebx, [esi + 0x504]
call edi
push eax
mov ecx, ebx
call fcn.00418ea5
mov eax, dword [esi + 0x508]
lea edx, [esp + 0x34]
push edx
push 0x18
push eax
call dword [sym.imp.GDI32.dll_GetObjectA]
call fcn.004184b1
mov eax, dword [eax + 0xc]
push 0xce
push eax
call edi
push eax
lea ecx, [esi + 0x50c]
call fcn.00418ea5
call fcn.004184b1
mov eax, dword [eax + 0xc]
push 0xcf
push eax
call edi
push eax
lea ecx, [esi + 0x514]
call fcn.00418ea5
call fcn.004184b1
mov eax, dword [eax + 0xc]
push pe_nt_image_headers32
push eax
call edi
push eax
lea ecx, [esi + 0x51c]
call fcn.00418ea5
xor ebx, ebx
lea eax, [esi + 0x504]
cmp eax, ebx
jne 0x4060f5
xor eax, eax
jmp 0x4060f8
mov eax, dword [eax + 4]
push ebx
push ebx
push 0xff
push eax
call fcn.00402410
mov ecx, dword [esi + 0x20]
add esp, 0x10
push 1
push eax
push ecx
call dword [sym.imp.USER32.dll_SetWindowRgn]
mov edx, dword [esp + 0x3c]
mov eax, dword [esp + 0x38]
push 4
push edx
push eax
push ebx
push ebx
push ebx
mov ecx, esi
call fcn.004202fd
push ebx
mov ecx, esi
call fcn.0041bc00
mov eax, dword [esi + 0x64c]
mov ecx, dword [eax + 0x18]
mov edx, dword [eax + 0x10]
push ecx
push ecx
mov ecx, dword [eax + 0x14]
push ecx
push edx
push 4
push 0x2d8
lea ecx, [esi + 0x3ec]
call fcn.004013f0
mov eax, dword [esi + 0x64c]
mov ecx, dword [eax + 0x24]
mov edx, dword [eax + 0x1c]
push ecx
push ecx
mov ecx, dword [eax + 0x20]
push ecx
push edx
push 0x1f3
push 0x230
lea ecx, [esi + 0x74]
call fcn.004013f0
mov eax, dword [esi + 0x64c]
mov ecx, dword [eax + 0x30]
mov edx, dword [eax + 0x28]
push ecx
push ecx
mov ecx, dword [eax + 0x2c]
push ecx
push edx
push 0x1b
nop
nop
nop
lea edi, [esi + 0x2d8]
push 0x230
mov ecx, edi
call fcn.004013f0
push ebx
mov ecx, edi
call fcn.004200b4
call fcn.00420a37
xor ecx, ecx
cmp eax, ebx
setne cl
cmp ecx, ebx
jne 0x4061c9
push 0x80004005
call fcn.00401020
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x14], eax
push str.Test
lea ecx, [esp + 0x18]
mov dword [esp + 0xe4], ebx
mov dword [esp + 0x14], ebx
call fcn.00404680
lea ecx, [esp + 0x10]
lea edi, [esi + 0xf00]
push ecx
mov ecx, edi
call fcn.00405fa0
push 0x45cbdc
lea ecx, [esp + 0x18]
mov dword [esp + 0x14], 1
call fcn.00404680
lea edx, [esp + 0x10]
push edx
mov ecx, edi
call fcn.00405fa0
push str.China
lea ecx, [esp + 0x18]
mov dword [esp + 0x14], 2
call fcn.00404680
lea eax, [esp + 0x10]
push eax
mov ecx, edi
call fcn.00405fa0
push str.Taiwan
lea ecx, [esp + 0x18]
mov dword [esp + 0x14], 5
call fcn.00404680
lea ecx, [esp + 0x10]
push ecx
mov ecx, edi
call fcn.00405fa0
push 0x45cbb8
lea ecx, [esp + 0x18]
mov dword [esp + 0x14], 6
call fcn.00404680
lea edx, [esp + 0x10]
push edx
mov ecx, edi
call fcn.00405fa0
push str.English
lea ecx, [esp + 0x18]
mov dword [esp + 0x14], 7
call fcn.00404680
lea eax, [esp + 0x10]
push eax
mov ecx, edi
call fcn.00405fa0
push str.Fran
lea ecx, [esp + 0x18]
mov dword [esp + 0x14], 0xa
call fcn.00404680
lea ecx, [esp + 0x10]
push ecx
mov ecx, edi
call fcn.00405fa0
push 0x45cb84
lea ecx, [esp + 0x18]
mov dword [esp + 0x14], 0xc
call fcn.00404680
lea edx, [esp + 0x10]
push edx
mov ecx, edi
call fcn.00405fa0
push str.Brazil
lea ecx, [esp + 0x18]
mov dword [esp + 0x14], 0xd
call fcn.00404680
lea eax, [esp + 0x10]
push eax
mov ecx, edi
call fcn.00405fa0
push str.Spanish
lea ecx, [esp + 0x18]
mov dword [esp + 0x14], 0xe
call fcn.00404680
lea ecx, [esp + 0x10]
push ecx
mov ecx, edi
call fcn.00405fa0
push str.Polski
lea ecx, [esp + 0x18]
mov dword [esp + 0x14], 0xf
call fcn.00404680
lea edx, [esp + 0x10]
push edx
mov ecx, edi
call fcn.00405fa0
push 0x45cb40
lea ecx, [esp + 0x18]
mov dword [esp + 0x14], 0x10
call fcn.00404680
lea eax, [esp + 0x10]
push eax
mov ecx, edi
call fcn.00405fa0
mov dword [esp + 0x28], ebx
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x30], ebx
lea ecx, [esp + 0x18]
push ecx
lea ecx, [esp + 0x28]
mov byte [esp + 0xe4], 1
mov dword [esp + 0x1c], 7
call fcn.004059f0
lea edx, [esp + 0x18]
push edx
lea ecx, [esp + 0x28]
mov dword [esp + 0x1c], 0xa
call fcn.004059f0
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x28]
mov dword [esp + 0x1c], 0xc
call fcn.004059f0
lea ecx, [esp + 0x18]
push ecx
lea ecx, [esp + 0x28]
mov dword [esp + 0x1c], 0xf
call fcn.004059f0
lea edx, [esp + 0x18]
push edx
lea ecx, [esp + 0x28]
mov dword [esp + 0x1c], 0x10
call fcn.004059f0
mov eax, dword [esp + 0x28]
mov ecx, dword [esi + 0xf08]
mov ebx, dword [sym.imp.USER32.dll_SendMessageA]
mov dword [esp + 0x18], eax
mov dword [esp + 0x20], ecx
cmp eax, dword [esp + 0x2c]
je 0x406466
lea ebx, [ebx]
mov edi, dword [esi + 0xf04]
cmp edi, ecx
je 0x406459
lea ebx, [ebx]
mov edx, dword [edi]
cmp edx, dword [eax]
jne 0x406452
mov eax, dword [edi + 4]
push eax
mov eax, dword [esi + 0xf30]
push 0
push 0x143
push eax
call ebx
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x18]
add edi, 8
cmp edi, ecx
jne 0x406430
add eax, 4
mov dword [esp + 0x18], eax
cmp eax, dword [esp + 0x2c]
jne 0x406420
push 0x7f
lea ecx, [esp + 0x51]
push 0
push ecx
mov byte [esp + 0x58], 0
call fcn.0043edd0
add esp, 0xc
push str..CONFIG.ini
push 0x104
lea edx, [esp + 0x54]
push edx
push 0x45bd84
push str.LANGUAGE
push str.LOGIN
mov byte [esp + 0x37], 0
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
test eax, eax
je 0x406502
lea eax, [esp + 0x4c]
push eax
call fcn.0043ea61
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x30]
sub eax, dword [esp + 0x2c]
add esp, 4
sar eax, 2
xor edi, edi
mov dword [esp + 0x18], eax
test eax, eax
jbe 0x406502
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x20]
cmp edx, dword [ecx + edi*4]
jne 0x4064f6
mov eax, dword [esi + 0xf30]
push 0
push edi
push 0x14e
push eax
mov byte [esp + 0x2f], 1
call ebx
mov eax, dword [esp + 0x18]
inc edi
cmp edi, eax
jb 0x4064cf
cmp byte [esp + 0x1f], 0
jne 0x406514
mov ecx, dword [esi + 0xf30]
push 0
push 0
push 0x14e
push ecx
call ebx
mov eax, dword [esi + 0x64c]
mov edx, dword [eax + 8]
mov eax, dword [eax + 4]
push edx
push eax
push 0x1e
nop
nop
nop
push 0x16
lea ecx, [esi + 0x5c8]
call fcn.00401ce0
mov eax, dword [esi + 0x64c]
mov ecx, dword [eax + 0xc]
mov edx, dword [eax + 4]
push ecx
push edx
push 0x30
nop
nop
nop
push 0x16
lea ecx, [esi + 0x558]
call fcn.00401ce0
lea eax, [esi + 0x504]
test eax, eax
je 0x406561
mov eax, dword [eax + 4]
push eax
call dword [sym.imp.GDI32.dll_CreatePatternBrush]
push eax
lea ecx, [esi + 0x524]
call fcn.00418ea5
push 1
push 0xd
push 0xfa
push 0x5e
nop
nop
nop
push 0x16
push 0x3f4
mov ecx, esi
call fcn.0041fe67
mov ecx, eax
call fcn.00420032
push 1
push 0xd
push 0xbf
push 0x205
push 0xd2
push 0x3ee
mov ecx, esi
call fcn.0041fe67
mov ecx, eax
call fcn.00420032
push 1
push 0xd
push 0x49
push 0x205
push 0x192
push 0x3ef
mov ecx, esi
call fcn.0041fe67
mov ecx, eax
call fcn.00420032
push 1
push 0xd
push 0xc8
push 0xfffffffffffffff8
push 0x14
push 0x3fa
mov ecx, esi
call fcn.0041fe67
mov ecx, eax
call fcn.00420032
push 0x45c700
push 0
push 0
push 0
push 0
push 1
push 0
push 0
push 0
push 0x190
push 0
push 0
push 0
push 0xc
lea edi, [esi + 0xed8]
call dword [sym.imp.GDI32.dll_CreateFontA]
push eax
mov ecx, edi
call fcn.00418ea5
test edi, edi
jne 0x40663e
xor eax, eax
jmp 0x406641
mov eax, dword [edi + 4]
push 1
push eax
mov eax, dword [esi + 0x2a4]
push 0x30
push eax
call ebx
test edi, edi
jne 0x406657
xor eax, eax
jmp 0x40665a
mov eax, dword [edi + 4]
mov ecx, dword [esi + 0x250]
push 1
push eax
push 0x30
push ecx
call ebx
test edi, edi
jne 0x406670
xor eax, eax
jmp 0x406673
mov eax, dword [edi + 4]
mov edx, dword [esi + 0x1fc]
push 1
push eax
push 0x30
push edx
call ebx
test edi, edi
je 0x406688
mov edi, dword [edi + 4]
mov eax, dword [esi + 0x1a8]
push 1
push edi
push 0x30
push eax
call ebx
push 0x40
push 0x64
push 0xe9
push 0x174
push 0x1eb
lea edi, [esi + 0xf10]
push 0x479dc8
mov ecx, edi
call fcn.004202fd
push 1
push 0xc8
push 0xe9
push 0x173
push 0x1ee
mov ecx, edi
call fcn.00420032
mov eax, dword [esi + 0x550]
test eax, eax
je 0x4066e5
mov eax, dword [eax + 0x20]
mov ecx, dword [esi + 0xf30]
push eax
push ecx
call dword [sym.imp.USER32.dll_SetParent]
push eax
call fcn.0041c237
mov eax, dword [esp + 0x28]
test eax, eax
je 0x40670a
push eax
call fcn.0041724b
add esp, 4
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
mov dword [esp + 0xe0], 0xffffffff
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x406735
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0xd8]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0xc0]
xor ecx, esp
call fcn.0043e7e7
mov esp, ebp
pop ebp
ret