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

Disassembly:
push 0xffffffffffffffff
push 0x47d82b
mov eax, dword fs:[0]
push eax
sub esp, 0x110
mov eax, dword [0x4a15f0]
xor eax, esp
mov dword [esp + 0x10c], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x4a15f0]
xor eax, esp
push eax
lea eax, [esp + 0x124]
mov dword fs:[0], eax
mov ebp, dword [esp + 0x138]
mov eax, dword [esp + 0x134]
mov edi, dword [sym.imp.USER32.dll_SendMessageA]
mov esi, ecx
mov edx, dword [esi + 0x20]
lea ecx, [esp + 0x10c]
push ecx
push ebp
push 0x417
push edx
mov dword [esp + 0x24], eax
call edi
mov ecx, dword [esi + 0x20]
lea eax, [esp + 0x24]
push eax
push ebp
push 0x41d
push ecx
call edi
test eax, eax
je 0x451a43
mov edi, dword [esp + 0x2c]
sub edi, dword [esp + 0x24]
mov ecx, esi
call fcn.00437a10
mov edx, dword [eax + 0x140]
mov ebx, dword [esp + 0x30]
sub ebx, dword [esp + 0x28]
add edx, edx
mov ecx, esi
sub edi, edx
call fcn.00437a10
mov eax, dword [eax + 0x144]
push 0x6c
lea ecx, [esp + 0xa4]
add eax, eax
push 0
push ecx
sub ebx, eax
call fcn.00421480
add esp, 0xc
cmp dword [esp + 0x14], 0
jne 0x4512ec
mov dword [esp + 0xb0], 0
jmp 0x4512fa
mov edx, dword [esp + 0x14]
mov eax, dword [edx + 4]
mov dword [esp + 0xb0], eax
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x2c]
push ebx
push edi
mov dword [esp + 0xbc], ecx
mov ecx, dword [esp + 0x38]
push 0
mov dword [esp + 0xcc], ecx
mov dword [esp + 0xc4], edx
mov edx, dword [esp + 0x11c]
mov dword [esp + 0xc8], eax
mov eax, dword [esp + 0x124]
push 0
lea ecx, [esp + 0x104]
push ecx
mov dword [esp + 0xd8], edx
mov dword [esp + 0xe0], eax
call dword [sym.imp.USER32.dll_SetRect]
mov edx, dword [esi + 0x20]
push 0
push 0
push 0x447
push edx
call dword [sym.imp.USER32.dll_SendMessageA]
movzx ecx, byte [esp + 0x114]
xor edx, edx
cmp eax, ebp
setne dl
mov eax, ecx
shr eax, 1
and eax, 1
sub edx, 1
and edx, 0x40
or edx, eax
mov eax, ecx
and eax, 1
add eax, eax
add eax, eax
not ecx
add eax, eax
and ecx, 4
or edx, eax
or edx, ecx
lea ecx, [esp + 0xa0]
push ecx
push 0x10001
mov ecx, esi
mov dword [esp + 0xd0], edx
call fcn.00450ab0
mov edx, eax
mov eax, dword [esp + 0xc8]
mov ecx, eax
and ecx, 1
mov ebx, eax
mov dword [esp + 0x20], ecx
mov ecx, eax
shr eax, 2
not eax
and ecx, 8
and eax, 1
and ebx, 0x40
test dl, 4
mov dword [esp + 0x48], edx
mov dword [esp + 0x34], ecx
mov dword [esp + 0x4c], eax
jne 0x451a28
mov edi, dword [esp + 0x2c]
sub edi, dword [esp + 0x24]
mov ecx, esi
call fcn.00437a10
mov edx, dword [eax + 0x140]
mov ebp, dword [esp + 0xfc]
mov eax, dword [esp + 0x100]
sub ebp, dword [esp + 0xf4]
sub eax, dword [esp + 0xf8]
add edx, edx
mov ecx, esi
sub edi, edx
mov dword [esp + 0x38], ebp
mov dword [esp + 0x68], eax
call fcn.00437a10
mov eax, dword [eax + 0x140]
add eax, dword [esp + 0x24]
mov ecx, esi
mov dword [esp + 0x1c], eax
call fcn.00437a10
mov eax, dword [eax + 0x144]
add eax, dword [esp + 0x28]
mov ecx, esi
mov dword [esp + 0x18], eax
lea eax, [esp + 0x10c]
push eax
call fcn.00450cf0
test eax, eax
mov dword [esp + 0x50], eax
je 0x45147b
push 0x48
call dword [sym.imp.USER32.dll_GetSystemMetrics]
mov dword [esp + 0x54], eax
jmp 0x451483
mov dword [esp + 0x54], 0
lea ecx, [esp + 0x10c]
push ecx
mov ecx, esi
call fcn.00450d30
test eax, eax
je 0x4514af
mov eax, dword [esp + 0x54]
sub edi, 5
cmp dword [esp + 0x50], 0
jne 0x4514a9
mov eax, 5
sub ebp, eax
mov dword [esp + 0x38], ebp
mov edx, dword [esi + 0x20]
push 0
push 0
push 0x456
push edx
call dword [sym.imp.USER32.dll_SendMessageA]
mov ebp, eax
movzx eax, ax
shr ebp, 0x10
mov ecx, esi
mov dword [esp + 0x58], ebp
mov dword [esp + 0x44], eax
call fcn.00437a10
mov ecx, dword [eax + 0x144]
add ecx, ecx
mov eax, ebp
sub eax, ecx
cdq
sub eax, edx
sar eax, 1
mov dword [esp + 0x40], eax
jns 0x4514f8
mov dword [esp + 0x40], 0
push 0
push 0
mov ecx, esi
call fcn.00450ca0
test eax, eax
mov ecx, 0x10
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x5c], ecx
je 0x451525
lea edx, [esp + 0x5c]
push edx
lea ecx, [esp + 0x40]
push ecx
push eax
call dword [sym.imp.COMCTL32.dll_ImageList_GetIconSize]
mov eax, edi
sub eax, dword [esp + 0x3c]
mov ecx, esi
cdq
sub eax, edx
mov ebp, eax
sar ebp, 1
call fcn.0040dd98
test eax, 0x1000
je 0x451546
mov eax, dword [esp + 0x44]
jmp 0x451566
cmp dword [esp + 0x50], 0
je 0x45156d
mov ecx, esi
call fcn.00437a10
mov eax, dword [eax + 0x140]
add eax, eax
sub eax, dword [esp + 0x3c]
sub eax, dword [esp + 0x54]
add eax, edi
cdq
sub eax, edx
mov ebp, eax
sar ebp, 1
cmp dword [esp + 0x20], 0
jne 0x45157b
cmp dword [esp + 0x34], 0
je 0x45158d
test dword [esp + 0x48], 0x40000
jne 0x45158d
add ebp, 1
add dword [esp + 0x40], 1
mov ecx, esi
call fcn.00438870
test dword [esp + 0x48], 0x10000
mov dword [esp + 0x60], eax
jne 0x4516fe
cmp dword [esp + 0x50], 0
je 0x4516b4
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x28]
mov edi, dword [esp + 0x30]
mov dword [esp + 0x78], eax
mov dword [esp + 0x88], eax
sub eax, dword [esp + 0x54]
cmp dword [esp + 0x4c], 0
mov dword [esp + 0x80], ecx
mov dword [esp + 0x70], ecx
mov dword [esp + 0x74], edx
mov dword [esp + 0x7c], edi
mov dword [esp + 0x84], edx
mov dword [esp + 0x8c], edi
mov dword [esp + 0x78], eax
mov dword [esp + 0x80], eax
jne 0x45160a
mov eax, 4
jmp 0x451630
cmp dword [esp + 0x20], 0
je 0x451618
mov eax, 3
jmp 0x451630
cmp dword [esp + 0x34], 0
je 0x451626
mov eax, 5
jmp 0x451630
xor eax, eax
test ebx, ebx
setne al
add eax, 1
mov edi, dword [esp + 0x60]
lea edx, [esp + 0x70]
push edx
push eax
mov eax, dword [esp + 0x1c]
push 3
push eax
mov ecx, edi
call fcn.00433500
cmp dword [esp + 0x4c], 0
jne 0x451665
lea ecx, [esp + 0x80]
push ecx
mov eax, 4
push eax
push eax
mov ecx, edi
jmp 0x4516f4
cmp dword [esp + 0x20], 0
je 0x451680
lea ecx, [esp + 0x80]
push ecx
mov eax, 3
push eax
push 4
mov ecx, edi
jmp 0x4516f4
cmp dword [esp + 0x34], 0
je 0x45169b
lea ecx, [esp + 0x80]
push ecx
mov eax, 5
push eax
push 4
mov ecx, edi
jmp 0x4516f4
xor eax, eax
test ebx, ebx
setne al
lea ecx, [esp + 0x80]
push ecx
mov ecx, edi
add eax, 1
push eax
push 4
jmp 0x4516f4
cmp dword [esp + 0x4c], 0
jne 0x4516c2
mov eax, 4
jmp 0x4516e8
cmp dword [esp + 0x20], 0
je 0x4516d0
mov eax, 3
jmp 0x4516e8
cmp dword [esp + 0x34], 0
je 0x4516de
mov eax, 5
jmp 0x4516e8
xor eax, eax
test ebx, ebx
setne al
add eax, 1
lea ecx, [esp + 0x24]
push ecx
mov ecx, dword [esp + 0x64]
push eax
push 1
mov edx, dword [esp + 0x20]
push edx
call fcn.00433500
lea eax, [esp + 0x10c]
push eax
mov ecx, esi
call fcn.004509f0
test eax, eax
mov dword [esp + 0x60], eax
je 0x45178f
mov ebx, dword [esp + 0x18]
mov edi, dword [esp + 0x1c]
mov ecx, esi
call fcn.0040dd98
test eax, 0x1000
je 0x451771
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x5c]
mov eax, dword [esp + 0x58]
sub ecx, dword [esp + 0x28]
add edx, eax
cmp edx, ecx
jl 0x45174e
mov ecx, esi
call fcn.00437a10
sub ebx, dword [eax + 0x144]
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x3c]
mov eax, dword [esp + 0x44]
sub ecx, dword [esp + 0x24]
add edx, eax
cmp edx, ecx
jl 0x451771
mov ecx, esi
call fcn.00437a10
sub edi, dword [eax + 0x140]
mov ecx, dword [esp + 0x138]
mov edx, dword [esp + 0x40]
mov eax, dword [esp + 0x14]
push ecx
add ebx, edx
push ebx
add edi, ebp
push edi
push eax
mov ecx, esi
call fcn.00450d70
call fcn.0040d836
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x4517a9
push 0x80004005
call fcn.00401ad0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
lea ebx, [eax + 0x10]
mov dword [esp + 0x44], ebx
mov eax, dword [ebx - 8]
mov ecx, 1
sub ecx, dword [ebx - 4]
sub eax, 0x100
or eax, ecx
mov dword [esp + 0x12c], 0
jge 0x4517ea
push 0x100
lea ecx, [esp + 0x48]
call fcn.00402c85
mov ebx, dword [esp + 0x44]
mov ecx, dword [esp + 0x110]
mov edx, dword [esi + 0x20]
push ebx
push ecx
push 0x42d
push edx
call dword [sym.imp.USER32.dll_SendMessageA]
test ebx, ebx
jne 0x45180a
xor eax, eax
jmp 0x451821
mov eax, ebx
lea edx, [eax + 1]
nop
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x451810
sub eax, edx
js 0x451a6d
cmp eax, dword [ebx - 8]
jg 0x451a6d
mov dword [ebx - 0xc], eax
mov byte [eax + ebx], 0
mov eax, dword [ebx - 0xc]
test eax, eax
je 0x451982
cmp dword [esp + 0x20], 0
jne 0x45184a
cmp dword [esp + 0x34], 0
je 0x45186f
test dword [esp + 0x48], 0x40000
jne 0x45186f
mov edi, 1
add dword [esp + 0x1c], edi
mov ecx, esi
call fcn.0040dd98
test eax, 0x1000
je 0x45186f
add dword [esp + 0x18], edi
mov ecx, esi
call fcn.0040dd98
test eax, 0x1000
je 0x4518a6
mov ecx, esi
call fcn.00437a10
mov eax, dword [eax + 0x140]
add eax, eax
cmp dword [esp + 0x60], 0
je 0x4518bb
mov ecx, dword [esp + 0x3c]
lea edx, [eax + ecx]
add dword [esp + 0x1c], edx
add eax, ecx
sub dword [esp + 0x38], eax
jmp 0x4518bb
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x40]
lea edx, [eax + ecx]
add dword [esp + 0x18], edx
add eax, ecx
sub dword [esp + 0x68], eax
mov eax, dword [esi + 0x20]
push 0
push 0
push 0x43d
push eax
call dword [sym.imp.USER32.dll_SendMessageA]
xor ecx, ecx
cmp eax, 1
setle cl
sub ecx, 1
and ecx, 0x1ff0
add ecx, 0x8020
mov edi, ecx
mov ecx, esi
call fcn.0040dd98
test eax, 0x1000
je 0x4518fa
or edi, 0x24
jmp 0x4518fd
or edi, 1
mov ebp, dword [esp + 0x14]
push 1
mov ecx, ebp
call fcn.0040c44a
cmp dword [esp + 0x4c], 0
mov ecx, esi
je 0x451917
push 0x12
jmp 0x451919
push 0x10
call fcn.00437a20
mov edx, dword [ebp]
push eax
mov eax, dword [edx + 0x30]
mov ecx, ebp
call eax
cmp dword [esp + 0x38], 0
jle 0x451982
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
lea edx, [ecx + 1]
mov dword [esp + 0x90], edx
lea edx, [eax + 1]
mov dword [esp + 0x94], edx
mov edx, dword [esp + 0x38]
lea ecx, [ecx + edx + 1]
mov edx, dword [esp + 0x68]
lea eax, [eax + edx + 1]
mov edx, dword [ebp]
mov edx, dword [edx + 0x68]
mov dword [esp + 0x98], ecx
push edi
lea ecx, [esp + 0x94]
push ecx
mov dword [esp + 0xa4], eax
mov eax, dword [ebx - 0xc]
push eax
push ebx
mov ecx, ebp
call edx
cmp dword [esp + 0x50], 0
jne 0x451a01
lea eax, [esp + 0x10c]
push eax
mov ecx, esi
call fcn.00450d30
test eax, eax
je 0x451a01
mov edx, dword [esp + 0x30]
mov ecx, dword [esp + 0x28]
mov edi, dword [esp + 0x2c]
lea eax, [edx + ecx]
cdq
sub eax, edx
sar eax, 1
add edi, 0xfffffffa
cmp dword [esp + 0x20], 0
je 0x4519c0
add edi, 1
add eax, 1
lea ecx, [eax + 1]
lea ebp, [eax - 1]
mov dword [esp + 0x58], ecx
lea edx, [edi + 2]
lea eax, [edi - 2]
push 0x12
mov ecx, esi
mov dword [esp + 0x64], edx
mov dword [esp + 0x6c], eax
call fcn.00437a20
mov ecx, dword [esp + 0x58]
mov edx, dword [esp + 0x60]
push eax
mov eax, dword [esp + 0x6c]
push ecx
mov ecx, dword [esp + 0x1c]
push edi
push ebp
push edx
push ebp
push eax
push ecx
call fcn.0045d640
add esp, 0x20
lea eax, [ebx - 0x10]
mov dword [esp + 0x12c], 0xffffffff
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x451a28
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
test byte [esp + 0x48], 0x10
je 0x451a43
lea ecx, [esp + 0xa0]
push ecx
push 0x10002
mov ecx, esi
call fcn.00450ab0
mov ecx, dword [esp + 0x124]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x10c]
xor ecx, esp
call fcn.0041f73c
add esp, 0x11c
ret 8
push 0x80070057
call fcn.00401ad0
int3