Function at 0x402c4d
Capabilities:
Read .ini file

Disassembly:
mov ecx, 0x438900
jmp 0x402c30
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x42dbfc
push eax
mov dword fs:[0], esp
sub esp, 0x5e4
push ebx
push ebp
push esi
mov esi, ecx
push edi
xor ebp, ebp
lea edi, [esi + 4]
push 0x104
push edi
push ebp
mov dword [esi], 0x431860
mov dword [esi + 0x364], ebp
mov dword [esi + 0x368], ebp
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
lea eax, [esp + 0x3f4]
lea ecx, [esp + 0x4f4]
push eax
lea edx, [esp + 0x2f8]
push ecx
lea eax, [esp + 0x20]
push edx
push eax
push edi
call dword [sym.imp.MSVCRT.dll__splitpath]
push 0x438dcc
lea ecx, [esp + 0x30c]
push 0x438dcc
lea edx, [esp + 0x34]
push ecx
push edx
push edi
mov edi, dword [sym.imp.MSVCRT.dll__makepath]
call edi
push 0x438dcc
lea eax, [esp + 0x320]
push str.Skin_
lea ecx, [esp + 0x48]
lea ebx, [esi + 0x108]
push eax
push ecx
push ebx
call edi
push str.Skin.ini
lea edi, [esi + 0x20c]
push ebx
push str._s_s
push edi
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x4c
lea edx, [esp + 0x1f4]
push edi
push pe_nt_image_headers32
push edx
push 0x438dcc
push str.active
push str.Setting
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov al, byte [esp + 0x1f4]
test al, al
je 0x402d5c
lea eax, [esp + 0x1f4]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_lstrcatA]
push 0x438134
push ebx
call dword [sym.imp.KERNEL32.dll_lstrcatA]
lea ecx, [esp + 0x1f4]
push str..nsz
push ecx
push ebx
push str._s_s_s
push edi
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x14
jmp 0x402d7d
push str.default_
push ebx
call dword [sym.imp.KERNEL32.dll_lstrcatA]
push str.default.nsz
push ebx
push str._s_s
push edi
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x10
mov ecx, esi
call fcn.00404630
mov edx, dword [str.NScroller]
mov eax, dword [0x438104]
mov cx, word [0x438108]
push 0x7f00
push ebp
mov dword [esp + 0x24], edx
mov dword [esp + 0x28], eax
mov word [esp + 0x2c], cx
mov dword [esp + 0x30], 0xb
mov dword [esp + 0x4c], 6
call dword [sym.imp.USER32.dll_LoadCursorA]
push ebp
mov dword [esp + 0x44], eax
mov dword [esp + 0x40], ebp
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov dword [esp + 0x38], eax
lea eax, [esp + 0x28]
lea edx, [esp + 0x1c]
push eax
mov dword [esp + 0x30], 0x41b510
mov dword [esp + 0x50], edx
mov dword [esp + 0x4c], ebp
mov dword [esp + 0x34], ebp
mov dword [esp + 0x38], 0x10
call dword [sym.imp.USER32.dll_RegisterClassA]
push 8
call sub.MSVCRT.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [esp + 0x10], eax
cmp eax, ebp
mov dword [esp + 0x5fc], ebp
je 0x402e20
push ebp
mov ecx, eax
call fcn.004016c0
jmp 0x402e22
xor eax, eax
cmp eax, ebp
mov dword [esp + 0x5fc], 0xffffffff
mov dword [esi + 0x310], eax
je 0x402e8a
push str.wnd_bk.bmp
push ebx
lea ecx, [esp + 0xf8]
push str._s_s
push ecx
call dword [sym.imp.USER32.dll_wsprintfA]
mov ecx, dword [esi + 0x310]
add esp, 0x10
lea edx, [esp + 0xf0]
push edx
call fcn.00401700
test eax, eax
jne 0x402e8a
mov edi, dword [esi + 0x310]
cmp edi, ebp
je 0x402e84
mov ecx, edi
call fcn.004016f0
push edi
call sub.MSVCRT.dll_void___cdecl_operator_delete_void__
add esp, 4
mov dword [esi + 0x310], ebp
push 8
call sub.MSVCRT.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [esp + 0x10], eax
cmp eax, ebp
mov dword [esp + 0x5fc], 1
je 0x402eb1
push ebp
mov ecx, eax
call fcn.004016c0
jmp 0x402eb3
xor eax, eax
cmp eax, ebp
mov dword [esp + 0x5fc], 0xffffffff
mov dword [esi + 0x314], eax
je 0x402f1b
push str.dlg_bk.bmp
push ebx
lea eax, [esp + 0xf8]
push str._s_s
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x10
lea ecx, [esp + 0xf0]
push ecx
mov ecx, dword [esi + 0x314]
call fcn.00401700
test eax, eax
jne 0x402f1b
mov edi, dword [esi + 0x314]
cmp edi, ebp
je 0x402f15
mov ecx, edi
call fcn.004016f0
push edi
call sub.MSVCRT.dll_void___cdecl_operator_delete_void__
add esp, 4
mov dword [esi + 0x314], ebp
push 8
call sub.MSVCRT.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [esp + 0x10], eax
cmp eax, ebp
mov dword [esp + 0x5fc], 2
je 0x402f42
push ebp
mov ecx, eax
call fcn.004016c0
jmp 0x402f44
xor eax, eax
cmp eax, ebp
mov dword [esp + 0x5fc], 0xffffffff
mov dword [esi + 0x318], eax
je 0x402fac
push str.button.bmp
push ebx
lea edx, [esp + 0xf8]
push str._s_s
push edx
call dword [sym.imp.USER32.dll_wsprintfA]
mov ecx, dword [esi + 0x318]
add esp, 0x10
lea eax, [esp + 0xf0]
push eax
call fcn.00401700
test eax, eax
jne 0x402fac
mov ebx, dword [esi + 0x318]
cmp ebx, ebp
je 0x402fa6
mov ecx, ebx
call fcn.004016f0
push ebx
call sub.MSVCRT.dll_void___cdecl_operator_delete_void__
add esp, 4
mov dword [esi + 0x318], ebp
mov ebx, 1
lea ebp, [esi + 0x32c]
lea eax, [esi + 0x108]
push ebx
push eax
lea ecx, [esp + 0xf8]
push str._sHScroll_d.bmp
push ecx
call dword [sym.imp.USER32.dll_wsprintfA]
push 8
call sub.MSVCRT.dll_void____cdecl_operator_new_unsigned_int_
add esp, 0x14
mov dword [esp + 0x10], eax
test eax, eax
mov dword [esp + 0x5fc], 3
je 0x402ffa
push 0
mov ecx, eax
call fcn.004016c0
jmp 0x402ffc
xor eax, eax
test eax, eax
mov dword [esp + 0x5fc], 0xffffffff
mov dword [ebp - 0x10], eax
je 0x40303f
lea edx, [esp + 0xf0]
mov ecx, eax
push edx
call fcn.00401700
test eax, eax
jne 0x40303f
mov edi, dword [ebp - 0x10]
test edi, edi
je 0x403038
mov ecx, edi
call fcn.004016f0
push edi
call sub.MSVCRT.dll_void___cdecl_operator_delete_void__
add esp, 4
mov dword [ebp - 0x10], 0
lea eax, [esi + 0x108]
push ebx
push eax
lea eax, [esp + 0xf8]
push str._sVScroll_d.bmp
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
push 8
call sub.MSVCRT.dll_void____cdecl_operator_new_unsigned_int_
add esp, 0x14
mov dword [esp + 0x10], eax
test eax, eax
mov dword [esp + 0x5fc], 4
je 0x403082
push 0
mov ecx, eax
call fcn.004016c0
jmp 0x403084
xor eax, eax
test eax, eax
mov dword [esp + 0x5fc], 0xffffffff
mov dword [ebp], eax
je 0x4030c7
lea ecx, [esp + 0xf0]
push ecx
mov ecx, eax
call fcn.00401700
test eax, eax
jne 0x4030c7
mov edi, dword [ebp]
test edi, edi
je 0x4030c0
mov ecx, edi
call fcn.004016f0
push edi
call sub.MSVCRT.dll_void___cdecl_operator_delete_void__
add esp, 4
mov dword [ebp], 0
add ebp, 4
inc ebx
lea edx, [ebx - 1]
cmp edx, 4
jl 0x402fb7
mov eax, dword [str.left.bmp]
mov ecx, dword [0x4380b4]
mov dword [esp + 0x50], eax
xor eax, eax
mov dword [esp + 0x59], eax
mov dword [esp + 0x54], ecx
mov ecx, dword [str.right.bmp]
mov dword [esp + 0x5d], eax
mov dl, byte [0x4380b8]
mov dword [esp + 0x61], eax
mov dword [esp + 0x70], ecx
mov dword [esp + 0x65], eax
xor ecx, ecx
mov dword [esp + 0x69], eax
mov dword [esp + 0x7a], ecx
mov word [esp + 0x6d], ax
mov dword [esp + 0x7e], ecx
mov byte [esp + 0x6f], al
mov ax, word [0x4380ac]
mov dword [esp + 0x82], ecx
mov byte [esp + 0x58], dl
mov edx, dword [0x4380a8]
mov dword [esp + 0x86], ecx
mov word [esp + 0x78], ax
mov eax, dword [0x4380a0]
mov dword [esp + 0x8a], ecx
mov dword [esp + 0x74], edx
mov edx, dword [str.top.bmp]
mov word [esp + 0x8e], cx
mov dword [esp + 0x94], eax
mov ecx, 6
xor eax, eax
lea edi, [esp + 0x98]
mov dword [esp + 0x90], edx
mov edx, dword [0x438094]
lea ebx, [esp + 0x50]
rep stosd dword es:[edi], eax
mov ax, word [0x438098]
mov ecx, dword [str.bottom.bmp]
mov word [esp + 0xb8], ax
mov eax, dword [str.top1.bmp]
mov dword [esp + 0xb4], edx
xor edx, edx
mov dword [esp + 0xd0], eax
xor eax, eax
mov dword [esp + 0xbb], edx
mov dword [esp + 0xd9], eax
mov dword [esp + 0xbf], edx
mov dword [esp + 0xdd], eax
mov dword [esp + 0xc3], edx
mov dword [esp + 0xe1], eax
mov dword [esp + 0xc7], edx
mov dword [esp + 0xb0], ecx
mov cl, byte [0x43809a]
mov dword [esp + 0xe5], eax
mov dword [esp + 0xcb], edx
mov dword [esp + 0xe9], eax
mov byte [esp + 0xba], cl
mov ecx, dword [0x438088]
mov byte [esp + 0xcf], dl
mov dl, byte [0x43808c]
mov word [esp + 0xed], ax
mov dword [esp + 0xd4], ecx
mov byte [esp + 0xd8], dl
mov byte [esp + 0xef], al
lea edi, [esi + 0x33c]
mov dword [esp + 0x10], 5
push 8
call sub.MSVCRT.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [esp + 0x14], eax
test eax, eax
mov dword [esp + 0x5fc], 5
je 0x403277
push 0
mov ecx, eax
call fcn.004016c0
jmp 0x403279
xor eax, eax
test eax, eax
mov dword [esp + 0x5fc], 0xffffffff
mov dword [edi], eax
je 0x4032e2
lea eax, [esi + 0x108]
push ebx
push eax
lea ecx, [esp + 0xf8]
push str._s_s
push ecx
call dword [sym.imp.USER32.dll_wsprintfA]
mov ecx, dword [edi]
add esp, 0x10
lea edx, [esp + 0xf0]
push edx
call fcn.00401700
test eax, eax
jne 0x4032d9
mov ebp, dword [edi]
test ebp, ebp
je 0x4032d1
mov ecx, ebp
call fcn.004016f0
push ebp
call sub.MSVCRT.dll_void___cdecl_operator_delete_void__
add esp, 4
mov dword [edi], 0
jmp 0x4032e2
mov eax, dword [edi]
mov dword [eax + 4], 3
mov eax, dword [esp + 0x10]
add edi, 4
add ebx, 0x20
dec eax
mov dword [esp + 0x10], eax
jne 0x40324f
push 8
call sub.MSVCRT.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [esp + 0x14], eax
test eax, eax
mov dword [esp + 0x5fc], 6
je 0x40331f
push 0
mov ecx, eax
call fcn.004016c0
jmp 0x403321
xor eax, eax
or ebp, 0xffffffff
mov dword [esi + 0x350], eax
test eax, eax
mov dword [esp + 0x5fc], ebp
je 0x403396
mov ebx, dword [sym.imp.USER32.dll_wsprintfA]
lea eax, [esi + 0x108]
push str.close.bmp
push eax
lea eax, [esp + 0xf8]
push str._s_s
push eax
call ebx
add esp, 0x10
lea ecx, [esp + 0xf0]
push ecx
mov ecx, dword [esi + 0x350]
call fcn.00401700
test eax, eax
jne 0x40339c
mov edi, dword [esi + 0x350]
test edi, edi
je 0x40338a
mov ecx, edi
call fcn.004016f0
push edi
call sub.MSVCRT.dll_void___cdecl_operator_delete_void__
add esp, 4
mov dword [esi + 0x350], 0
jmp 0x40339c
mov ebx, dword [sym.imp.USER32.dll_wsprintfA]
push 8
call sub.MSVCRT.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [esp + 0x14], eax
test eax, eax
mov dword [esp + 0x5fc], 7
je 0x4033c4
push 0
mov ecx, eax
call fcn.004016c0
jmp 0x4033c6
xor eax, eax
test eax, eax
mov dword [esp + 0x5fc], ebp
mov dword [esi + 0x354], eax
je 0x403430
lea eax, [esi + 0x108]
push str.treev_bk.bmp
push eax
lea edx, [esp + 0xf8]
push str._s_s
push edx
call ebx
mov ecx, dword [esi + 0x354]
add esp, 0x10
lea eax, [esp + 0xf0]
push eax
call fcn.00401700
test eax, eax
jne 0x403430
mov edi, dword [esi + 0x354]
test edi, edi
je 0x403426
mov ecx, edi
call fcn.004016f0
push edi
call sub.MSVCRT.dll_void___cdecl_operator_delete_void__
add esp, 4
mov dword [esi + 0x354], 0
push 8
call sub.MSVCRT.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [esp + 0x14], eax
test eax, eax
mov dword [esp + 0x5fc], 8
je 0x403458
push 0
mov ecx, eax
call fcn.004016c0
jmp 0x40345a
xor eax, eax
test eax, eax
mov dword [esp + 0x5fc], ebp
mov dword [esi + 0x358], eax
je 0x4034c4
lea eax, [esi + 0x108]
push str.listv_bk.bmp
push eax
lea ecx, [esp + 0xf8]
push str._s_s
push ecx
call ebx
mov ecx, dword [esi + 0x358]
add esp, 0x10
lea edx, [esp + 0xf0]
push edx
call fcn.00401700
test eax, eax
jne 0x4034c4
mov edi, dword [esi + 0x358]
test edi, edi
je 0x4034ba
mov ecx, edi
call fcn.004016f0
push edi
call sub.MSVCRT.dll_void___cdecl_operator_delete_void__
add esp, 4
mov dword [esi + 0x358], 0
push 8
call sub.MSVCRT.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [esp + 0x14], eax
test eax, eax
mov dword [esp + 0x5fc], 9
je 0x4034ec
push 0
mov ecx, eax
call fcn.004016c0
jmp 0x4034ee
xor eax, eax
test eax, eax
mov dword [esp + 0x5fc], ebp
mov dword [esi + 0x35c], eax
je 0x403558
lea eax, [esi + 0x108]
push str.header.bmp
push eax
lea eax, [esp + 0xf8]
push str._s_s
push eax
call ebx
add esp, 0x10
lea ecx, [esp + 0xf0]
push ecx
mov ecx, dword [esi + 0x35c]
call fcn.00401700
test eax, eax
jne 0x403558
mov edi, dword [esi + 0x35c]
test edi, edi
je 0x40354e
mov ecx, edi
call fcn.004016f0
push edi
call sub.MSVCRT.dll_void___cdecl_operator_delete_void__
add esp, 4
mov dword [esi + 0x35c], 0
mov ecx, dword [esp + 0x5f4]
mov eax, esi
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x5f0
ret