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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x47a0a6
mov eax, dword fs:[0]
push eax
sub esp, 0x118
mov eax, dword [0x4947a0]
xor eax, esp
mov dword [esp + 0x110], eax
push ebx
push esi
push edi
mov eax, dword [0x4947a0]
xor eax, esp
push eax
lea eax, [esp + 0x128]
mov dword fs:[0], eax
mov eax, dword [ebp + 8]
mov dword [esp + 0x4c], eax
xor eax, eax
mov dword [esp + 0x94], ecx
mov dword [esp + 0x78], edx
mov dword [esp + 0x18], eax
mov dword [esp + 0x44], eax
mov dword [esp + 0x88], eax
mov dword [esp + 0x84], eax
lea ebx, [ebx]
xor ebx, ebx
mov dword [esp + 0x14], ebx
mov dword [esp + 0x130], ebx
mov dword [esp + 0x10], ebx
push 4
mov byte [esp + 0x134], 1
call fcn.0043968c
add esp, 4
cmp eax, ebx
je 0x40435f
lea ecx, [esp + 0x1c]
mov dword [eax], ecx
jmp 0x404361
xor eax, eax
mov dword [esp + 0x1c], eax
mov dword [esp + 0x28], ebx
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x30], ebx
mov edi, dword [esp + 0x4c]
lea edx, [esp + 0x1c]
push edx
lea eax, [esp + 0xb8]
push eax
mov ecx, edi
mov byte [esp + 0x138], 3
call fcn.00402b10
mov eax, dword [esp + 0xb4]
mov edx, dword [esp + 0xbc]
mov ecx, dword [esp + 0xb8]
lea esi, [edx + eax]
mov edx, dword [esp + 0xc0]
add edx, ecx
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], ecx
mov dword [esp + 0x58], esi
mov dword [esp + 0x5c], edx
cmp eax, ebx
jne 0x404443
cmp ecx, ebx
jne 0x404443
cmp edx, ebx
jne 0x404443
cmp esi, ebx
jne 0x404443
cmp dword [esp + 0x18], 3
jge 0x404443
mov eax, dword [esp + 0x28]
inc dword [esp + 0x18]
cmp eax, ebx
je 0x4043ee
push eax
call fcn.004396bc
add esp, 4
mov eax, dword [esp + 0x1c]
push eax
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x30], ebx
mov dword [esp + 0x34], ebx
call fcn.004396bc
mov byte [esp + 0x134], 0
mov eax, dword [esp + 0x14]
add esp, 4
cmp eax, ebx
je 0x40441f
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov dword [esp + 0x130], 0xffffffff
mov eax, dword [esp + 0x14]
cmp eax, ebx
je 0x404330
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
jmp 0x404330
mov eax, dword [edi + 0x20]
mov ecx, dword [eax]
lea edx, [esp + 0x14]
push edx
push eax
mov eax, dword [ecx + 0x9c]
call eax
cmp eax, ebx
jl 0x4044d7
mov eax, dword [esp + 0x14]
cmp eax, ebx
je 0x4044d7
mov ecx, dword [eax]
lea edx, [esp + 0x10]
push edx
push 0x48234c
push eax
mov eax, dword [ecx]
call eax
cmp eax, ebx
jl 0x4044d7
mov ecx, dword [esp + 0x10]
cmp ecx, ebx
je 0x4044d7
push ecx
mov eax, esp
mov dword [eax], ecx
mov eax, dword [esp + 0x14]
mov dword [esp + 0x4c], esp
cmp eax, ebx
je 0x404498
mov ecx, dword [eax]
mov edx, dword [ecx + 4]
push eax
call edx
mov eax, dword [edi + 0x20]
push ecx
mov ecx, esp
mov dword [esp + 0x50], esp
mov dword [ecx], eax
cmp eax, ebx
je 0x4044b0
mov ecx, dword [eax]
mov edx, dword [ecx + 4]
push eax
call edx
lea esi, [esp + 0xfc]
call fcn.00402920
mov ecx, dword [eax]
mov dword [esp + 0x60], ecx
mov edx, dword [eax + 4]
mov dword [esp + 0x64], edx
mov ecx, dword [eax + 8]
mov dword [esp + 0x68], ecx
mov edx, dword [eax + 0xc]
mov dword [esp + 0x6c], edx
mov eax, dword [esp + 0x50]
cmp eax, dword [esp + 0x58]
je 0x404513
mov ecx, dword [esp + 0x54]
cmp ecx, dword [esp + 0x5c]
je 0x404513
mov edx, dword [esp + 0x68]
cmp dword [esp + 0x60], edx
je 0x4044ff
mov eax, dword [esp + 0x6c]
cmp dword [esp + 0x64], eax
jne 0x404527
mov esi, dword [sym.imp.USER32.dll_CopyRect]
lea ecx, [esp + 0x50]
push ecx
lea edx, [esp + 0x64]
push edx
call esi
jmp 0x40452d
mov esi, dword [sym.imp.USER32.dll_CopyRect]
lea eax, [esp + 0x60]
push eax
lea ecx, [esp + 0x54]
push ecx
call esi
jmp 0x40452d
mov esi, dword [sym.imp.USER32.dll_CopyRect]
lea edx, [esp + 0x60]
push edx
lea eax, [esp + 0x54]
push eax
lea ecx, [esp + 0x3c]
push ecx
call dword [sym.imp.USER32.dll_IntersectRect]
lea edx, [esp + 0x60]
mov edi, eax
push edx
lea eax, [esp + 0x54]
push eax
call dword [sym.imp.USER32.dll_EqualRect]
test eax, eax
je 0x40457c
mov eax, dword [esp + 0x78]
lea ecx, [esp + 0x50]
push ecx
lea edx, [esp + 0x38]
push edx
mov dword [eax], 0xffffffff
mov dword [eax + 4], 0xffffffff
call esi
xor edi, edi
jmp 0x4048e9
cmp edi, ebx
je 0x4045a0
lea eax, [esp + 0x34]
push eax
call dword [sym.imp.USER32.dll_IsRectEmpty]
test eax, eax
jne 0x4045a0
lea ecx, [esp + 0x34]
push ecx
mov edx, ecx
push edx
call esi
xor edi, edi
jmp 0x4048e9
xor eax, eax
mov dword [esp + 0x80], eax
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x4c]
push eax
lea ecx, [esp + 0x108]
mov byte [esp + 0x134], 5
call fcn.00404280
mov byte [esp + 0x130], 6
mov ecx, dword [esp + 0x50]
mov eax, dword [esp + 0x58]
mov esi, dword [esp + 0x54]
mov edi, dword [esp + 0x5c]
mov dword [esp + 0xe4], ecx
mov dword [esp + 0xec], eax
call fcn.0040fad0
mov ebx, eax
mov eax, edi
mov ecx, esi
call fcn.0040fad0
mov ecx, dword [esp + 0x60]
mov esi, dword [esp + 0x64]
mov edi, dword [esp + 0x6c]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x68]
mov dword [esp + 0xe4], ecx
mov dword [esp + 0xec], eax
call fcn.0040fad0
mov dword [esp + 0x8c], eax
mov eax, edi
mov ecx, esi
call fcn.0040fad0
push 0x483234
lea ecx, [esp + 0x78]
mov esi, eax
call fcn.00406710
push 0x483234
lea ecx, [esp + 0x80]
mov byte [esp + 0x134], 7
call fcn.00406710
lea edx, [esp + 0x80]
push edx
mov edx, dword [esp + 0x4c]
mov byte [esp + 0x134], 8
mov eax, dword [esp + 0x14]
mov ecx, dword [eax]
push edx
push ebx
push eax
mov eax, dword [ecx + 0x1ac]
call eax
test eax, eax
jl 0x404702
mov eax, dword [esp + 0x80]
test eax, eax
je 0x404702
mov ecx, dword [eax]
lea edx, [esp + 0x98]
push edx
push eax
mov eax, dword [ecx + 0xf8]
call eax
mov ecx, dword [esp + 0x98]
push ecx
lea ecx, [esp + 0xa4]
call fcn.00406030
push eax
lea ecx, [esp + 0x78]
mov byte [esp + 0x134], 9
call fcn.00406140
mov byte [esp + 0x130], 8
mov eax, dword [esp + 0xa0]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x4046f4
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x98]
push ecx
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov eax, dword [esp + 0x10]
mov edx, dword [eax]
mov edx, dword [edx + 0x1ac]
lea ecx, [esp + 0x70]
push ecx
mov ecx, dword [esp + 0x90]
push esi
push ecx
push eax
call edx
test eax, eax
jl 0x4047a0
mov eax, dword [esp + 0x70]
test eax, eax
je 0x4047a0
mov ecx, dword [eax]
lea edx, [esp + 0x90]
push edx
push eax
mov eax, dword [ecx + 0xf8]
call eax
mov ecx, dword [esp + 0x90]
push ecx
lea ecx, [esp + 0xa0]
call fcn.00406030
push eax
lea ecx, [esp + 0x80]
mov byte [esp + 0x134], 0xa
call fcn.00406140
mov byte [esp + 0x130], 8
mov eax, dword [esp + 0x9c]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x404792
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x90]
push ecx
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov edx, dword [esp + 0x7c]
mov eax, edx
lea edi, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4047b0
sub eax, edi
push eax
push edx
lea edx, [esp + 0x10c]
push edx
xor eax, eax
call fcn.004057e0
cmp eax, 0xffffffff
je 0x4047eb
mov eax, dword [esp + 0x78]
mov ecx, dword [esp + 0x8c]
lea edx, [esp + 0x60]
mov dword [eax], ecx
mov dword [eax + 4], esi
push edx
lea eax, [esp + 0x38]
push eax
jmp 0x40482a
mov edx, dword [esp + 0x74]
mov eax, edx
lea esi, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4047f4
sub eax, esi
push eax
push edx
lea ecx, [esp + 0x10c]
push ecx
xor eax, eax
call fcn.004057e0
cmp eax, 0xffffffff
je 0x404830
mov eax, dword [esp + 0x78]
mov edx, dword [esp + 0x48]
mov dword [eax], ebx
mov dword [eax + 4], edx
lea eax, [esp + 0x50]
push eax
lea ecx, [esp + 0x38]
push ecx
call dword [sym.imp.USER32.dll_CopyRect]
mov byte [esp + 0x130], 7
mov eax, dword [esp + 0x7c]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x404858
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x130], 6
mov eax, dword [esp + 0x74]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x404880
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp dword [esp + 0x11c], 0x10
jb 0x40489a
mov ecx, dword [esp + 0x108]
push ecx
call fcn.004396bc
add esp, 4
xor edi, edi
mov byte [esp + 0x130], 4
mov eax, dword [esp + 0x70]
mov dword [esp + 0x11c], 0xf
mov dword [esp + 0x118], edi
mov byte [esp + 0x108], 0
cmp eax, edi
je 0x4048ce
mov edx, dword [eax]
push eax
mov eax, dword [edx + 8]
call eax
mov byte [esp + 0x130], 3
mov eax, dword [esp + 0x80]
cmp eax, edi
je 0x4048e9
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
cmp dword [ebp + 0x10], 1
je 0x404cf4
mov ecx, dword [ebp + 0xc]
mov ebx, dword [esp + 0x44]
cmp ecx, edi
je 0x404907
cmp ebx, 0xa
jle 0x40499b
cmp dword [esp + 0x88], 0xa
jge 0x40499b
mov esi, dword [esp + 0x4c]
mov eax, dword [esi + 0x2c]
push eax
call fcn.0043e4b5
mov edx, dword [eax + 0x20]
lea ecx, [esp + 0xd4]
push ecx
push edx
call dword [sym.imp.USER32.dll_GetClientRect]
mov eax, dword [esp + 0xe0]
sub eax, dword [esp + 0xd8]
mov ecx, dword [esp + 0x38]
inc dword [esp + 0x88]
cmp ecx, eax
mov ebx, dword [esp + 0x34]
jg 0x40498b
mov edx, dword [esp + 0x40]
cmp edx, eax
jg 0x40498b
cmp ecx, edi
jl 0x40498b
cmp edx, edi
jl 0x40498b
cmp ebx, edi
jl 0x40498b
mov edi, dword [esp + 0x3c]
test edi, edi
jl 0x40498b
mov eax, dword [esp + 0xdc]
sub eax, dword [esp + 0xd4]
cmp ebx, eax
jg 0x40498b
cmp edi, eax
jle 0x404bf5
push ecx
push ebx
mov ecx, esi
call fcn.00404e00
xor esi, esi
jmp 0x404c8e
mov esi, dword [esp + 0x4c]
mov eax, dword [esi + 0x2c]
cmp eax, edi
je 0x404b20
cmp ecx, 1
jne 0x404b0e
cmp ebx, 0xa
jge 0x404b0e
push eax
call fcn.0043e4b5
mov esi, eax
mov ecx, dword [esi + 0x20]
lea eax, [esp + 0xc4]
push eax
push ecx
call dword [sym.imp.USER32.dll_GetClientRect]
mov eax, dword [esp + 0xd0]
sub eax, dword [esp + 0xc8]
mov ecx, dword [esp + 0x38]
cmp ecx, eax
jg 0x4049f4
mov edx, dword [esp + 0x40]
cmp edx, eax
jle 0x404a69
mov edx, dword [esi + 0x20]
xor edi, edi
push edi
push 1
push 0x115
push edx
call dword [sym.imp.USER32.dll_SendMessageA]
mov eax, dword [esp + 0x28]
inc ebx
mov dword [esp + 0x44], ebx
cmp eax, edi
je 0x404a1e
push eax
call fcn.004396bc
add esp, 4
mov eax, dword [esp + 0x1c]
push eax
mov dword [esp + 0x2c], edi
mov dword [esp + 0x30], edi
mov dword [esp + 0x34], edi
call fcn.004396bc
mov byte [esp + 0x134], 0
mov eax, dword [esp + 0x14]
add esp, 4
cmp eax, edi
je 0x404bc9
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov dword [esp + 0x130], 0xffffffff
mov eax, dword [esp + 0x14]
cmp eax, edi
jmp 0x404ce1
xor edi, edi
cmp ecx, edi
jl 0x404a73
cmp edx, edi
jge 0x404a8f
mov eax, dword [esi + 0x20]
push edi
push 2
push 0x115
push eax
call dword [sym.imp.USER32.dll_SendMessageA]
inc ebx
mov dword [esp + 0x44], ebx
jmp 0x404b87
cmp dword [esp + 0x34], edi
jl 0x404a9d
mov edi, dword [esp + 0x3c]
test edi, edi
jge 0x404aa3
push 0
push 0
jmp 0x404ac3
mov eax, dword [esp + 0xcc]
sub eax, dword [esp + 0xc4]
cmp dword [esp + 0x34], eax
jg 0x404abf
cmp edi, eax
jle 0x404bed
push 0
push 1
mov eax, dword [esi + 0x20]
push 0x114
push eax
call dword [sym.imp.USER32.dll_SendMessageA]
inc ebx
lea esi, [esp + 0x1c]
mov dword [esp + 0x44], ebx
call fcn.00436360
mov byte [esp + 0x130], 0
mov eax, dword [esp + 0x10]
test eax, eax
je 0x404af8
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov dword [esp + 0x130], 0xffffffff
mov eax, dword [esp + 0x14]
test eax, eax
jmp 0x404ce1
cmp eax, edi
je 0x404b20
cmp ecx, 2
jne 0x404b20
cmp ebx, 0xa
jl 0x404bdf
cmp dword [esp + 0x84], 0xa
jge 0x404bdf
or ecx, 0xffffffff
mov eax, 0xb
mov word [esp + 0xa4], ax
mov word [esp + 0xac], cx
mov ecx, dword [esi + 0x20]
mov esi, dword [esp + 0xa4]
mov edx, dword [ecx]
sub esp, 0x10
mov eax, esp
mov dword [eax], esi
mov esi, dword [esp + 0xb8]
mov dword [eax + 4], esi
mov esi, dword [esp + 0xbc]
mov dword [eax + 8], esi
mov esi, dword [esp + 0xc0]
mov dword [eax + 0xc], esi
mov eax, dword [edx + 0xb8]
push ecx
call eax
inc dword [esp + 0x84]
mov eax, dword [esp + 0x28]
cmp eax, edi
je 0x404b98
push eax
call fcn.004396bc
add esp, 4
mov ecx, dword [esp + 0x1c]
push ecx
mov dword [esp + 0x2c], edi
mov dword [esp + 0x30], edi
mov dword [esp + 0x34], edi
call fcn.004396bc
mov byte [esp + 0x134], 0
mov eax, dword [esp + 0x14]
add esp, 4
cmp eax, edi
je 0x404bc9
mov edx, dword [eax]
push eax
mov eax, dword [edx + 8]
call eax
mov dword [esp + 0x130], 0xffffffff
mov eax, dword [esp + 0x14]
cmp eax, edi
jmp 0x404ce1
mov edx, dword [esp + 0x40]
mov edi, dword [esp + 0x3c]
mov ecx, dword [esp + 0x38]
jmp 0x404bf1
mov esi, dword [esp + 0x4c]
mov ebx, dword [esp + 0x34]
test ebx, ebx
jg 0x404c1c
test ecx, ecx
jg 0x404c1c
test edi, edi
jg 0x404c1c
test edx, edx
jg 0x404c1c
lea eax, [esp + 0x34]
push eax
call dword [sym.imp.USER32.dll_SetRectEmpty]
mov edi, dword [esp + 0x3c]
mov ecx, dword [esp + 0x38]
mov ebx, dword [esp + 0x34]
xor edx, edx
cmp ebx, ecx
sete dl
xor eax, eax
cmp edx, edi
sete al
mov edx, eax
mov eax, dword [esp + 0x40]
cmp edx, eax
jne 0x404c52
cmp dword [esp + 0x18], 0xa
jge 0x404c52
mov ecx, 0x32
push ecx
mov eax, 0xa
push eax
mov ecx, esi
call fcn.00404e00
xor esi, esi
jmp 0x404c8a
xor esi, esi
cmp ebx, esi
jne 0x404d5a
cmp ecx, esi
jne 0x404d5a
cmp edi, esi
jne 0x404d5a
cmp eax, esi
jne 0x404d5a
cmp dword [esp + 0x18], 0xf
jge 0x404d5a
push 0xc8
call dword [sym.imp.KERNEL32.dll_Sleep]
inc dword [esp + 0x18]
mov eax, dword [esp + 0x28]
cmp eax, esi
je 0x404c9f
push eax
call fcn.004396bc
add esp, 4
mov eax, dword [esp + 0x1c]
push eax
mov dword [esp + 0x2c], esi
mov dword [esp + 0x30], esi
mov dword [esp + 0x34], esi
call fcn.004396bc
mov byte [esp + 0x134], 0
mov eax, dword [esp + 0x14]
add esp, 4
cmp eax, esi
je 0x404cd0
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov dword [esp + 0x130], 0xffffffff
mov eax, dword [esp + 0x14]
cmp eax, esi
je 0x404330
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
jmp 0x404330
mov esi, dword [esp + 0x94]
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x3c]
mov dword [esi], eax
mov eax, dword [esp + 0x40]
mov dword [esi + 4], ecx
mov dword [esi + 8], edx
mov dword [esi + 0xc], eax
mov eax, dword [esp + 0x28]
cmp eax, edi
je 0x404d27
push eax
call fcn.004396bc
add esp, 4
mov ecx, dword [esp + 0x1c]
push ecx
mov dword [esp + 0x2c], edi
mov dword [esp + 0x30], edi
mov dword [esp + 0x34], edi
call fcn.004396bc
mov byte [esp + 0x134], 0
mov eax, dword [esp + 0x14]
add esp, 4
cmp eax, edi
je 0x404db0
mov edx, dword [eax]
push eax
mov eax, dword [edx + 8]
call eax
jmp 0x404db0
mov esi, dword [esp + 0x94]
mov dword [esi], ebx
mov dword [esi + 4], ecx
mov dword [esi + 8], edi
mov dword [esi + 0xc], eax
mov eax, dword [esp + 0x28]
xor edi, edi
cmp eax, edi
je 0x404d7f
push eax
call fcn.004396bc
add esp, 4
mov eax, dword [esp + 0x1c]
push eax
mov dword [esp + 0x2c], edi
mov dword [esp + 0x30], edi
mov dword [esp + 0x34], edi
call fcn.004396bc
mov byte [esp + 0x134], 0
mov eax, dword [esp + 0x14]
add esp, 4
cmp eax, edi
je 0x404db0
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov dword [esp + 0x130], 0xffffffff
mov eax, dword [esp + 0x14]
cmp eax, edi
je 0x404dcb
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, esi
mov ecx, dword [esp + 0x128]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x110]
xor ecx, esp
call fcn.0045e1a6
mov esp, ebp
pop ebp
ret 0xc