Function at 0x417150
Capabilities:
Read .ini file

Disassembly:
push 0xffffffffffffffff
push 0x51ee1f
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x134
mov eax, dword [0x565e78]
push ebx
push ebp
push esi
mov esi, dword [esp + 0x150]
push edi
push esi
mov dword [esp + 0x144], eax
call fcn.00414490
xor ebx, ebx
mov dword [esp + 0x14c], ebx
lea edi, [esi + 0xc8]
mov dword [esi], 0x53eff8
mov dword [edi + 4], ebx
mov dword [edi], vtable.CFont.0
mov dword [esi + 0xd4], ebx
mov dword [esi + 0xd0], vtable.CFont.0
mov dword [esi + 0xdc], ebx
mov dword [esi + 0xd8], vtable.CFont.0
lea ecx, [esi + 0xe4]
mov byte [esp + 0x14c], 3
call fcn.004ff3c6
mov dword [esi + 0x11c], ebx
mov dword [esi + 0x120], ebx
mov dword [esi + 0x124], ebx
mov dword [esi + 0x12c], ebx
mov dword [esi + 0x130], ebx
mov dword [esi + 0x134], ebx
push 0x53d360
push 0x20
push 2
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push 0x190
push ebx
push ebx
push ebx
push 0xc
mov byte [esp + 0x184], 6
call dword [sym.imp.GDI32.dll_CreateFontA]
push eax
mov ecx, edi
call fcn.004ffb1f
push 0x56b5e8
lea ecx, [esp + 0x3c]
call fcn.00402030
push str.img_treecolor.ini
push eax
lea eax, [esp + 0x38]
push eax
mov byte [esp + 0x158], 7
call fcn.00401450
add esp, 0xc
mov byte [esp + 0x14c], 9
mov eax, dword [esp + 0x38]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41727b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
call fcn.004fa853
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0xc]
add eax, 0x10
mov dword [esp + 0x20], eax
mov byte [esp + 0x14c], 0xa
call fcn.004fa853
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0xc]
add eax, 0x10
mov dword [esp + 0x24], eax
push 0x53f2a8
lea ecx, [esp + 0x14]
mov byte [esp + 0x150], 0xb
call fcn.00402030
mov byte [esp + 0x14c], 0xc
mov edi, dword [esp + 0x30]
mov eax, dword [esp + 0x10]
mov ebp, dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
push edi
push 0xff
push 0x53f2a4
push eax
call ebp
mov ecx, dword [esp + 0x10]
push edi
push ebx
push 0x53f2a0
push ecx
mov dword [esp + 0x28], eax
call ebp
mov edx, dword [esp + 0x10]
push edi
push ebx
push 0x53f29c
push edx
mov dword [esp + 0x24], eax
call ebp
mov ecx, dword [esp + 0x10]
mov ebx, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
push edi
push 0x104
mov dword [esp + 0x24], eax
lea eax, [esp + 0x44]
push eax
push 0x53d360
push str.font
push ecx
call ebx
mov edx, dword [esp + 0x10]
push edi
push 0x320
push str.blod
push edx
call ebp
mov dword [esp + 0x2c], eax
lea eax, [esp + 0x3c]
lea ecx, [eax + 1]
lea ebx, [ebx]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x417350
sub eax, ecx
push eax
lea eax, [esp + 0x40]
push eax
lea ecx, [esp + 0x2c]
call fcn.00401f00
movzx edx, byte [esp + 0x18]
xor ecx, ecx
mov ch, byte [esp + 0x1c]
push 3
push 0x53f288
mov cl, byte [esp + 0x1c]
shl ecx, 8
or ecx, edx
mov dword [esi + 0x9c], ecx
lea ecx, [esp + 0x18]
call fcn.00401f00
mov eax, dword [esp + 0x10]
push edi
push 0xff
push 0x53f2a4
push eax
call ebp
mov ecx, dword [esp + 0x10]
push edi
push 0xff
push 0x53f2a0
push ecx
mov dword [esp + 0x28], eax
call ebp
mov edx, dword [esp + 0x10]
push edi
push 0
push 0x53f29c
push edx
mov dword [esp + 0x24], eax
call ebp
mov ecx, dword [esp + 0x10]
push edi
push 0x104
mov dword [esp + 0x24], eax
lea eax, [esp + 0x44]
push eax
push 0x53d360
push str.font
push ecx
call ebx
mov edx, dword [esp + 0x10]
push edi
push 0x320
push str.blod
push edx
call ebp
lea eax, [esp + 0x3c]
lea ecx, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x417406
sub eax, ecx
push eax
lea eax, [esp + 0x40]
push eax
lea ecx, [esp + 0x28]
call fcn.00401f00
movzx edx, byte [esp + 0x18]
xor ecx, ecx
mov ch, byte [esp + 0x1c]
push 4
push str.POKE
mov cl, byte [esp + 0x1c]
shl ecx, 8
or ecx, edx
mov dword [esi + 0xa0], ecx
lea ecx, [esp + 0x18]
call fcn.00401f00
mov eax, dword [esp + 0x10]
push edi
push 0xff
push 0x53f2a4
push eax
call ebp
mov ecx, dword [esp + 0x10]
push edi
push 0
push 0x53f2a0
push ecx
mov dword [esp + 0x28], eax
call ebp
mov edx, dword [esp + 0x10]
push edi
push 0
push 0x53f29c
push edx
mov dword [esp + 0x24], eax
call ebp
mov ecx, dword [esp + 0x10]
push edi
push 0x104
mov dword [esp + 0x24], eax
lea eax, [esp + 0x44]
push eax
push 0x53d360
push str.font
push ecx
call ebx
mov edx, dword [esp + 0x10]
push edi
push 0x320
push str.blod
push edx
call ebp
lea eax, [esp + 0x3c]
lea ecx, [eax + 1]
lea esp, [esp]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x4174c0
sub eax, ecx
push eax
lea eax, [esp + 0x40]
push eax
lea ecx, [esp + 0x28]
call fcn.00401f00
movzx edx, byte [esp + 0x18]
xor ecx, ecx
mov ch, byte [esp + 0x1c]
push 3
push 0x53f27c
mov cl, byte [esp + 0x1c]
shl ecx, 8
or ecx, edx
mov dword [esi + 0xa4], ecx
lea ecx, [esp + 0x18]
call fcn.00401f00
mov eax, dword [esp + 0x10]
push edi
push 0
push 0x53f2a4
push eax
call ebp
mov ecx, dword [esp + 0x10]
push edi
push 0
push 0x53f2a0
push ecx
mov dword [esp + 0x28], eax
call ebp
mov edx, dword [esp + 0x10]
push edi
push 0xff
push 0x53f29c
push edx
mov dword [esp + 0x24], eax
call ebp
mov ecx, dword [esp + 0x10]
push edi
push 0x104
mov dword [esp + 0x24], eax
lea eax, [esp + 0x44]
push eax
push 0x53d360
push str.font
push ecx
call ebx
mov edx, dword [esp + 0x10]
push edi
push 0x320
push str.blod
push edx
call ebp
lea eax, [esp + 0x3c]
lea ecx, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x417573
sub eax, ecx
push eax
lea eax, [esp + 0x40]
push eax
lea ecx, [esp + 0x28]
call fcn.00401f00
movzx edx, byte [esp + 0x18]
xor ecx, ecx
mov ch, byte [esp + 0x1c]
push 3
push 0x53f278
mov cl, byte [esp + 0x1c]
shl ecx, 8
or ecx, edx
mov dword [esi + 0xa8], ecx
lea ecx, [esp + 0x18]
call fcn.00401f00
mov eax, dword [esp + 0x10]
push edi
push 0xff
push 0x53f2a4
push eax
call ebp
mov ecx, dword [esp + 0x10]
push edi
push 0x80
push 0x53f2a0
push ecx
mov dword [esp + 0x28], eax
call ebp
mov edx, dword [esp + 0x10]
push edi
push 0
push 0x53f29c
push edx
mov dword [esp + 0x24], eax
call ebp
mov ecx, dword [esp + 0x10]
push edi
push 0x104
mov dword [esp + 0x24], eax
lea eax, [esp + 0x44]
push eax
push 0x53d360
push str.font
push ecx
call ebx
mov edx, dword [esp + 0x10]
push edi
push 0x320
push str.blod
push edx
call ebp
lea eax, [esp + 0x3c]
lea ecx, [eax + 1]
lea esp, [esp]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x417630
sub eax, ecx
push eax
lea eax, [esp + 0x40]
push eax
lea ecx, [esp + 0x28]
call fcn.00401f00
movzx edx, byte [esp + 0x18]
xor ecx, ecx
mov ch, byte [esp + 0x1c]
push 3
push 0x53f274
mov cl, byte [esp + 0x1c]
shl ecx, 8
or ecx, edx
mov dword [esi + 0xac], ecx
lea ecx, [esp + 0x18]
call fcn.00401f00
mov eax, dword [esp + 0x10]
push edi
push 0
push 0x53f2a4
push eax
call ebp
mov ecx, dword [esp + 0x10]
push edi
push 0xff
push 0x53f2a0
push ecx
mov dword [esp + 0x28], eax
call ebp
mov edx, dword [esp + 0x10]
push edi
push 0
push 0x53f29c
push edx
mov dword [esp + 0x24], eax
call ebp
mov ecx, dword [esp + 0x10]
push edi
push 0x104
mov dword [esp + 0x24], eax
lea eax, [esp + 0x44]
push eax
push 0x53d360
push str.font
push ecx
call ebx
mov edx, dword [esp + 0x10]
push edi
push 0x320
push str.blod
push edx
call ebp
mov dword [esp + 0x34], eax
lea eax, [esp + 0x3c]
lea ecx, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x4176e7
sub eax, ecx
push eax
lea eax, [esp + 0x40]
push eax
lea ecx, [esp + 0x28]
call fcn.00401f00
movzx edx, byte [esp + 0x18]
xor ecx, ecx
mov ch, byte [esp + 0x1c]
push 0x12
push str.ItemSelectColorIng
mov cl, byte [esp + 0x1c]
shl ecx, 8
or ecx, edx
mov dword [esi + 0xb0], ecx
lea ecx, [esp + 0x18]
call fcn.00401f00
mov eax, dword [esp + 0x10]
push edi
push 0
push 0x53f2a4
push eax
call ebp
mov ecx, dword [esp + 0x10]
push edi
push 0
push 0x53f2a0
push ecx
mov ebx, eax
call ebp
mov edx, dword [esp + 0x10]
push edi
push 0x80
push 0x53f29c
push edx
mov dword [esp + 0x24], eax
call ebp
xor ecx, ecx
mov ch, al
movzx edx, bl
mov ebx, dword [sym.imp.USER32.dll_GetSysColor]
push 0xd
mov cl, byte [esp + 0x18]
shl ecx, 8
or ecx, edx
mov dword [esi + 0xb4], ecx
call ebx
push 0x11
push str.ItemSelectColorEd
lea ecx, [esp + 0x18]
mov dword [esi + 0xb4], eax
call fcn.00401f00
mov eax, dword [esp + 0x10]
push edi
push 0xc1
push 0x53f2a4
push eax
call ebp
mov ecx, dword [esp + 0x10]
push edi
push 0xc1
push 0x53f2a0
push ecx
mov dword [esp + 0x28], eax
call ebp
mov edx, dword [esp + 0x10]
push edi
push 0xc1
push 0x53f29c
push edx
mov dword [esp + 0x24], eax
call ebp
movzx edx, byte [esp + 0x18]
xor ecx, ecx
mov ch, al
push 0xf
mov cl, byte [esp + 0x18]
shl ecx, 8
or ecx, edx
mov dword [esi + 0xb8], ecx
call ebx
push 2
push 0x53f248
lea ecx, [esp + 0x18]
mov dword [esi + 0xb8], eax
call fcn.00401f00
mov eax, dword [esp + 0x10]
push edi
push 0xff
push 0x53f2a4
push eax
call ebp
mov ecx, dword [esp + 0x10]
push edi
push 0xff
push 0x53f2a0
push ecx
mov ebx, eax
call ebp
mov edx, dword [esp + 0x10]
push edi
push 0xff
push 0x53f29c
push edx
mov dword [esp + 0x24], eax
call ebp
xor ecx, ecx
mov ch, al
movzx edx, bl
push 4
push str.Text
mov cl, byte [esp + 0x1c]
shl ecx, 8
or ecx, edx
mov dword [esi + 0xbc], ecx
lea ecx, [esp + 0x18]
call fcn.00401f00
mov eax, dword [esp + 0x10]
push edi
push 0
push 0x53f2a4
push eax
call ebp
mov ecx, dword [esp + 0x10]
push edi
push 0
push 0x53f2a0
push ecx
mov ebx, eax
call ebp
mov edx, dword [esp + 0x10]
push edi
push 0
push 0x53f29c
push edx
mov dword [esp + 0x24], eax
call ebp
xor ecx, ecx
mov ch, al
movzx edx, bl
push 0xc
push str.TextSelected
mov cl, byte [esp + 0x1c]
shl ecx, 8
or ecx, edx
mov dword [esi + 0xc0], ecx
lea ecx, [esp + 0x18]
call fcn.00401f00
mov eax, dword [esp + 0x10]
push edi
push 0xff
push 0x53f2a4
push eax
call ebp
mov ecx, dword [esp + 0x10]
push edi
push 0xff
push 0x53f2a0
push ecx
mov ebx, eax
call ebp
mov dword [esp + 0x14], eax
mov edx, dword [esp + 0x10]
push edi
push 0xff
push 0x53f29c
push edx
call ebp
xor ecx, ecx
mov ch, al
movzx edx, bl
push 0x56b5e8
mov cl, byte [esp + 0x18]
shl ecx, 8
or ecx, edx
mov dword [esi + 0xc4], ecx
lea ecx, [esp + 0x1c]
call fcn.00402030
push str.img_tree_new.bmp
push eax
lea eax, [esp + 0x24]
push eax
mov byte [esp + 0x158], 0xd
call fcn.00401450
add esp, 0xc
mov byte [esp + 0x14c], 0xf
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x417961
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
push 0x56b5e8
lea ecx, [esp + 0x18]
call fcn.00402030
push str.img_treehot.bmp
push eax
lea eax, [esp + 0x30]
push eax
mov byte [esp + 0x158], 0x10
call fcn.00401450
add esp, 0xc
mov byte [esp + 0x14c], 0x12
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4179b0
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
call fcn.0050ac7d
mov ecx, dword [esp + 0x1c]
mov eax, dword [eax + 8]
mov ebx, dword [sym.imp.USER32.dll_LoadImageA]
push 0x10
push 0
push 0
push 0
push ecx
push eax
call ebx
mov dword [esi + 0xf8], eax
call fcn.0050ac7d
mov ebp, dword [esp + 0x28]
mov eax, dword [eax + 8]
push 0x10
push 0
push 0
push 0
push ebp
push eax
call ebx
lea edx, [esi + 0xfc]
push edx
mov dword [esi + 0xf4], eax
mov eax, dword [esi + 0xf8]
push 0x18
push eax
call dword [sym.imp.GDI32.dll_GetObjectA]
call fcn.00418180
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x2c]
push ecx
push 0x20
push 2
mov ebx, dword [sym.imp.GDI32.dll_CreateFontA]
push 0
push 0
push 0
push 0
push 0
push 0
push edx
push 0
push 0
push 0
push 0xc
mov dword [esi + 0x114], 0
call ebx
push eax
lea ecx, [esi + 0xd8]
call fcn.004ffb1f
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x34]
push eax
push 0x20
push 2
push 0
push 0
push 0
push 0
push 0
push 0
push ecx
push 0
push 0
push 0
push 0xc
call ebx
push eax
lea ecx, [esi + 0xd0]
call fcn.004ffb1f
lea eax, [ebp - 0x10]
mov byte [esp + 0x14c], 0xf
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x417a9f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov byte [esp + 0x14c], 0xc
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x417ac5
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov byte [esp + 0x14c], 0xb
mov eax, dword [esp + 0x10]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x417aeb
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov byte [esp + 0x14c], 0xa
mov eax, dword [esp + 0x24]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x417b11
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov byte [esp + 0x14c], 9
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x417b37
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
add edi, 0xfffffff0
mov byte [esp + 0x14c], 6
lea eax, [edi + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x417b59
mov ecx, dword [edi]
mov edx, dword [ecx]
push edi
call dword [edx + 4]
mov ecx, dword [esp + 0x144]
pop edi
mov eax, esi
pop esi
pop ebp
mov dword fs:[0], ecx
mov ecx, dword [esp + 0x134]
pop ebx
call fcn.004b6cac
add esp, 0x140
ret 4