Function at 0x417480
Capabilities:
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x250
push ebx
push ebp
push esi
push edi
push 1
push str.skin.ini
lea eax, [esp + 0x80]
call fcn.0040b130
mov eax, dword [esp + 0x78]
mov ecx, dword [eax + 4]
mov eax, dword [esp + ecx + 0x80]
test al, 6
je 0x4174d6
lea eax, [esp + 0x78]
call fcn.0040a3d0
mov esi, dword [esp + 0x26c]
test esi, esi
je 0x417bbe
lea edx, [esi + 8]
or eax, 0xffffffff
lock xadd dword [edx], eax
jmp 0x417b9f
push 9
xor ebx, ebx
mov esi, 0xf
push str._GENERAL_
lea ecx, [esp + 0x110]
mov dword [esp + 0x128], esi
mov dword [esp + 0x124], ebx
mov byte [esp + 0x114], bl
call fcn.00401a30
push 5
push str._TOP_
lea ecx, [esp + 0x12c]
mov dword [esp + 0x144], esi
mov dword [esp + 0x140], ebx
mov byte [esp + 0x130], bl
call fcn.00401a30
push 6
push str._LEFT_
lea ecx, [esp + 0x148]
mov dword [esp + 0x160], esi
mov dword [esp + 0x15c], ebx
mov byte [esp + 0x14c], bl
call fcn.00401a30
push 7
push str._RIGHT_
lea ecx, [esp + 0x164]
mov dword [esp + 0x17c], esi
mov dword [esp + 0x178], ebx
mov byte [esp + 0x168], bl
call fcn.00401a30
push 8
push str._BOTTOM_
lea ecx, [esp + 0x180]
mov dword [esp + 0x198], esi
mov dword [esp + 0x194], ebx
mov byte [esp + 0x184], bl
call fcn.00401a30
push 6
push str._ICON_
lea ecx, [esp + 0x19c]
mov dword [esp + 0x1b4], esi
mov dword [esp + 0x1b0], ebx
mov byte [esp + 0x1a0], bl
call fcn.00401a30
push 9
push str._CAPTION_
lea ecx, [esp + 0x1b8]
mov dword [esp + 0x1d0], esi
mov dword [esp + 0x1cc], ebx
mov byte [esp + 0x1bc], bl
call fcn.00401a30
push 0xc
push str._MIN_BUTTON_
lea ecx, [esp + 0x1d4]
mov dword [esp + 0x1ec], esi
mov dword [esp + 0x1e8], ebx
mov byte [esp + 0x1d8], bl
call fcn.00401a30
push 0xc
push str._MAX_BUTTON_
lea ecx, [esp + 0x1f0]
mov dword [esp + 0x208], esi
mov dword [esp + 0x204], ebx
mov byte [esp + 0x1f4], bl
call fcn.00401a30
push 0xe
push str._CLOSE_BUTTON_
lea ecx, [esp + 0x20c]
mov dword [esp + 0x224], esi
mov dword [esp + 0x220], ebx
mov byte [esp + 0x210], bl
call fcn.00401a30
push esi
push str._CLOSE2_BUTTON_
lea ecx, [esp + 0x228]
mov dword [esp + 0x240], esi
mov dword [esp + 0x23c], ebx
mov byte [esp + 0x22c], bl
call fcn.00401a30
mov dword [esp + 0x254], esi
mov dword [esp + 0x250], ebx
push 0xd
push str._HELP_BUTTON_
lea ecx, [esp + 0x244]
mov byte [esp + 0x248], bl
call fcn.00401a30
mov eax, dword [esp + 0x78]
mov dword [esp + 0x28], esi
mov dword [esp + 0x24], ebx
mov byte [esp + 0x14], bl
mov eax, dword [eax + 4]
push 0xa
lea eax, [esp + eax + 0x7c]
mov dword [esp + 0x30], ebx
call fcn.0040c720
movzx ecx, al
push ecx
lea edx, [esp + 0x7c]
push edx
lea ebx, [esp + 0x18]
call fcn.0040caf0
mov ecx, dword [eax]
mov ecx, dword [ecx + 4]
mov edx, dword [ecx + eax + 8]
add ecx, eax
and dl, 6
movsx eax, dl
add esp, 8
neg eax
sbb eax, eax
not eax
test ecx, eax
je 0x417a9a
mov ebp, dword [esp + 0x24]
xor ebx, ebx
lea edi, [esp + 0x10c]
nop
cmp dword [edi + 0x14], 0x10
mov esi, dword [edi + 0x10]
jb 0x41772d
mov ecx, dword [edi]
jmp 0x41772f
mov ecx, edi
mov eax, ebp
cmp ebp, esi
jb 0x417737
mov eax, esi
cmp dword [esp + 0x28], 0x10
mov edx, dword [esp + 0x14]
jae 0x417746
lea edx, [esp + 0x14]
call fcn.004025f0
test eax, eax
jne 0x41775c
cmp ebp, esi
jb 0x41775c
cmp ebp, esi
setne al
test eax, eax
je 0x417767
inc ebx
add edi, 0x1c
cmp ebx, 0xc
jb 0x417720
jmp 0x41776b
mov dword [esp + 0x2c], ebx
cmp ebx, 0xc
jne 0x417a4f
push 1
push 0x43bc2c
lea ecx, [esp + 0x18]
push ecx
call fcn.0040f820
mov ebp, eax
cmp ebp, 0xffffffff
je 0x417a4f
mov eax, dword [esp + 0x28]
mov esi, dword [esp + 0x14]
mov edi, esi
cmp eax, 0x10
jae 0x4177a3
lea edi, [esp + 0x14]
mov edx, 0xfffffffc
mov ecx, esi
cmp eax, 0x10
jae 0x4177b3
lea ecx, [esp + 0x14]
mov ebx, dword [esp + 0x24]
add ebx, ecx
cmp eax, 0x10
jae 0x4177c2
lea esi, [esp + 0x14]
mov eax, edx
mov dword [esp + 0x68], edx
mov dword [esp + 0x68], eax
lea esp, [esp]
cmp esi, ebx
je 0x4177e6
movsx edx, byte [esi]
push edx
call fcn.00423669
add esp, 4
mov byte [edi], al
inc esi
inc edi
jmp 0x4177d0
push ebp
xor esi, esi
push esi
lea eax, [esp + 0x18]
mov edi, 0xf
push eax
lea ecx, [esp + 0x58]
mov dword [esp + 0x70], edi
mov dword [esp + 0x6c], esi
mov byte [esp + 0x5c], 0
call fcn.00401870
push 0xffffffffffffffff
inc ebp
push ebp
lea ecx, [esp + 0x18]
push ecx
lea ecx, [esp + 0x3c]
mov dword [esp + 0x54], edi
mov dword [esp + 0x50], esi
mov byte [esp + 0x40], 0
call fcn.00401870
mov eax, dword [esp + 0x2c]
cmp eax, esi
jne 0x4178c5
sub esp, 8
mov esi, esp
mov dword [esi], 0
mov dword [esi + 4], 0
mov eax, dword [esp + 0x274]
mov edx, dword [esp + 0x270]
lea ebx, [esp + 0x38]
lea ebp, [esp + 0x54]
mov dword [esp + 0x78], eax
mov dword [esp + 0x70], edx
test eax, eax
je 0x417875
add eax, 8
mov ecx, 1
lock xadd dword [eax], ecx
mov edi, dword [esi + 4]
test edi, edi
je 0x4178a5
lea edx, [edi + 8]
or eax, 0xffffffff
lock xadd dword [edx], eax
jne 0x4178a5
mov edx, dword [edi]
mov eax, dword [edx]
mov ecx, edi
call eax
lea ecx, [edi + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
jne 0x4178a5
mov eax, dword [edi]
mov edx, dword [eax + 4]
mov ecx, edi
call edx
mov eax, dword [esp + 0x78]
mov ecx, dword [esp + 0x70]
mov dword [esi + 4], eax
mov dword [esi], ecx
mov eax, ebx
mov ecx, ebp
call fcn.00416920
mov edi, 0xf
jmp 0x417a13
cmp eax, 1
jne 0x4178f1
mov edx, dword [esp + 0x264]
mov ebx, dword [esp + 0x268]
push edx
add ebx, 0x148
lea eax, [esp + 0x34]
lea ecx, [esp + 0x50]
call fcn.00416a70
jmp 0x417a13
cmp eax, 2
jne 0x417915
mov ebx, dword [esp + 0x268]
add ebx, 0x14c
lea esi, [esp + 0x30]
lea eax, [esp + 0x4c]
call fcn.00416b90
jmp 0x417a13
cmp eax, 3
jne 0x417939
mov ebx, dword [esp + 0x268]
add ebx, 0x150
lea esi, [esp + 0x30]
lea eax, [esp + 0x4c]
call fcn.00416b90
jmp 0x417a13
cmp eax, 4
jne 0x417962
mov ebx, dword [esp + 0x268]
lea eax, [esp + 0x74]
push eax
add ebx, 0x154
lea eax, [esp + 0x34]
lea ecx, [esp + 0x50]
call fcn.00416a70
jmp 0x417a13
cmp eax, 5
jne 0x417983
mov ecx, dword [esp + 0x268]
add ecx, 0x40
lea ebx, [esp + 0x30]
lea eax, [esp + 0x4c]
call fcn.00416c00
jmp 0x417a13
cmp eax, 6
jne 0x4179a5
mov ecx, dword [esp + 0x268]
add ecx, 0x158
push ecx
lea eax, [esp + 0x34]
lea ecx, [esp + 0x50]
call fcn.00416d10
jmp 0x417a13
cmp eax, 7
jne 0x4179b7
mov edx, dword [esp + 0x268]
add edx, 0x64
push edx
jmp 0x417a06
cmp eax, 8
jne 0x4179ca
mov eax, dword [esp + 0x268]
add eax, 0x88
jmp 0x417a05
cmp eax, 9
jne 0x4179df
mov ecx, dword [esp + 0x268]
add ecx, 0xac
push ecx
jmp 0x417a06
cmp eax, 0xa
jne 0x4179f4
mov edx, dword [esp + 0x268]
add edx, 0xd0
push edx
jmp 0x417a06
cmp eax, 0xb
jne 0x417a13
mov eax, dword [esp + 0x268]
add eax, 0xf4
push eax
lea eax, [esp + 0x34]
lea ecx, [esp + 0x50]
call fcn.00417270
mov esi, 0x10
cmp dword [esp + 0x48], esi
jb 0x417a2b
mov ecx, dword [esp + 0x34]
push ecx
call fcn.00423279
add esp, 4
mov dword [esp + 0x48], edi
mov dword [esp + 0x44], 0
mov byte [esp + 0x34], 0
cmp dword [esp + 0x64], esi
jb 0x417a4f
mov edx, dword [esp + 0x50]
push edx
call fcn.00423279
add esp, 4
mov eax, dword [esp + 0x78]
mov eax, dword [eax + 4]
push 0xa
lea eax, [esp + eax + 0x7c]
call fcn.0040c720
movzx ecx, al
push ecx
lea edx, [esp + 0x7c]
push edx
lea ebx, [esp + 0x18]
call fcn.0040caf0
mov ecx, dword [eax]
mov ecx, dword [ecx + 4]
mov edx, dword [ecx + eax + 8]
add ecx, eax
and dl, 6
movsx eax, dl
add esp, 8
neg eax
sbb eax, eax
not eax
test ecx, eax
jne 0x417712
mov esi, 0xf
lea eax, [esp + 0x80]
call fcn.0040bda0
xor ebx, ebx
test eax, eax
jne 0x417acf
mov ecx, dword [esp + 0x78]
mov ecx, dword [ecx + 4]
mov eax, dword [esp + ecx + 0x80]
lea ecx, [esp + ecx + 0x78]
or eax, 2
cmp dword [ecx + 0x28], ebx
jne 0x417ac9
or eax, 4
and eax, 0x17
mov dword [ecx + 8], eax
cmp dword [esp + 0x28], 0x10
jb 0x417ae3
mov edx, dword [esp + 0x14]
push edx
call fcn.00423279
add esp, 4
mov dword [esp + 0x28], esi
mov dword [esp + 0x24], ebx
mov byte [esp + 0x14], bl
mov edi, 0xb
lea esi, [esp + 0x270]
jmp 0x417b00
sub esi, 0x1c
cmp dword [esi], 0x10
jb 0x417b14
mov eax, dword [esi - 0x14]
push eax
call fcn.00423279
add esp, 4
sub edi, 1
mov dword [esi], 0xf
mov dword [esi - 4], ebx
mov byte [esi - 0x14], bl
jns 0x417b00
mov ecx, dword [esp + 0x78]
mov edx, dword [ecx + 4]
mov dword [esp + edx + 0x78], 0x43bb64
mov dword [esp + 0x80], 0x43bb2c
cmp byte [esp + 0xc8], bl
je 0x417b54
lea eax, [esp + 0x80]
call fcn.0040bda0
lea ecx, [esp + 0x80]
call fcn.0040ad50
mov eax, dword [esp + 0x78]
mov ecx, dword [eax + 4]
lea edx, [esp + 0xd0]
mov dword [esp + ecx + 0x78], 0x43bb28
push edx
mov dword [esp + 0xd4], 0x43baec
call fcn.00422379
mov esi, dword [esp + 0x270]
add esp, 4
cmp esi, ebx
je 0x417bbe
lea eax, [esi + 8]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
jne 0x417bbe
mov edx, dword [esi]
mov eax, dword [edx]
mov ecx, esi
call eax
or edx, 0xffffffff
lea ecx, [esi + 0xc]
lock xadd dword [ecx], edx
jne 0x417bbe
mov eax, dword [esi]
mov edx, dword [eax + 4]
mov ecx, esi
call edx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x250
ret 0xc