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

Disassembly:
sub esp, 0x64
mov eax, dword [esp + 0x68]
push ebx
push ebp
mov ebx, ecx
push esi
push edi
test eax, eax
mov dword [esp + 0x10], ebx
jne 0x414fa1
mov ecx, dword [ebx + 0x74]
mov eax, dword [ebx + 0x14]
push eax
lea eax, [esp + 0x68]
mov edx, dword [ecx + 4]
push edx
push 0
push 0
push eax
call dword [sym.imp.USER32.dll_SetRect]
mov ebp, dword [esp + 0x70]
mov esi, dword [esp + 0x6c]
mov edx, dword [esp + 0x68]
mov ecx, dword [esp + 0x64]
jmp 0x414fcd
lea ecx, [esp + 0x54]
push eax
push ecx
call dword [sym.imp.USER32.dll_CopyRect]
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x58]
mov esi, dword [esp + 0x5c]
mov ebp, dword [esp + 0x60]
mov dword [esp + 0x64], ecx
mov dword [esp + 0x68], edx
mov dword [esp + 0x6c], esi
mov dword [esp + 0x70], ebp
mov eax, esi
mov edi, ebp
sub eax, ecx
sub edi, edx
test eax, eax
mov dword [esp + 0x78], eax
jle 0x4152fc
test edi, edi
jle 0x4152fc
cmp edi, 1
jne 0x415013
mov eax, dword [esp + 0x80]
dec esi
push eax
mov eax, dword [esp + 0x80]
push eax
push edx
push esi
push ecx
mov ecx, ebx
call fcn.00415bb0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x64
ret 0xc
cmp eax, 1
jne 0x41503d
mov eax, dword [esp + 0x80]
dec ebp
push eax
mov eax, dword [esp + 0x80]
push eax
push ebp
push edx
push ecx
mov ecx, ebx
call fcn.004160d0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x64
ret 0xc
cdq
mov ecx, eax
mov eax, edi
mov esi, edx
cdq
push esi
push ecx
mov ebx, eax
mov ebp, edx
push esi
push ecx
mov dword [esp + 0x54], ebx
mov dword [esp + 0x58], ebp
call fcn.0042d080
push ebp
push ebx
mov esi, eax
mov edi, edx
push ebp
push ebx
mov dword [esp + 0x64], esi
mov dword [esp + 0x68], edi
call fcn.0042d080
push 0
push 2
push edi
push esi
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], edx
call fcn.0042d080
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x28], edx
mov dword [esp + 0x50], edx
mov edx, dword [esp + 0x34]
push 0
push 2
push ecx
push edx
mov dword [esp + 0x34], eax
mov dword [esp + 0x5c], eax
call fcn.0042d080
push ebp
push ebx
push edi
push esi
mov dword [esp + 0x3c], eax
mov dword [esp + 0x40], edx
mov dword [esp + 0x4c], eax
mov dword [esp + 0x50], edx
call fcn.0042d080
push 0
push 2
mov ecx, eax
push edi
push esi
mov dword [esp + 0x24], ecx
mov dword [esp + 0x2c], edx
call fcn.0042cfd0
mov ecx, dword [esp + 0x1c]
mov edi, eax
mov eax, dword [esp + 0x14]
mov esi, edx
mov edx, dword [esp + 0x2c]
sub edi, eax
sbb esi, ecx
mov ecx, dword [esp + 0x30]
add edi, edx
mov edx, dword [esp + 0x50]
adc esi, ecx
xor eax, eax
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x4c]
push ebp
push ebx
push edx
push eax
call fcn.0042d080
mov dword [esp + 0x14], eax
mov ebx, edx
xor ebp, ebp
test ebx, ebx
jl 0x4151e1
jg 0x415124
test eax, eax
jbe 0x4151e1
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x3c]
push 0
push 2
push ecx
push edx
call fcn.0042d080
mov dword [esp + 0x4c], eax
mov dword [esp + 0x50], edx
test esi, esi
jl 0x415190
jg 0x415149
test edi, edi
jbe 0x415190
mov eax, dword [esp + 0x80]
mov ecx, dword [esp + 0x7c]
mov edx, dword [esp + 0x78]
push eax
push ecx
mov ecx, dword [esp + 0x18]
push ebp
lea eax, [esp + 0x70]
push edx
push eax
call fcn.00415310
mov eax, dword [esp + 0x28]
push 0xffffffffffffffff
push 0xfffffffffffffffe
push eax
mov eax, dword [esp + 0x30]
add ebp, 2
push eax
call fcn.0042d080
mov ecx, dword [esp + 0x14]
add ecx, eax
adc ebx, edx
sub edi, ecx
mov dword [esp + 0x14], ecx
sbb esi, ebx
mov ecx, dword [esp + 0x78]
mov eax, dword [esp + 0x4c]
mov edx, dword [esp + 0x50]
sub ecx, 2
mov dword [esp + 0x78], ecx
mov ecx, dword [esp + 0x1c]
add ecx, eax
mov eax, dword [esp + 0x20]
adc eax, edx
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x1c], ecx
add edx, ecx
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x20], eax
adc ecx, eax
add edi, edx
adc esi, ecx
cmp eax, ebx
jl 0x41513f
jg 0x4151e1
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
cmp eax, edx
jb 0x41513f
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x38]
sub eax, ecx
mov ecx, dword [esp + 0x58]
push 0
sbb ecx, edx
push 3
push ecx
push eax
call fcn.0042d080
mov ecx, dword [esp + 0x14]
push 0
sub eax, ecx
mov ecx, dword [esp + 0x20]
sbb edx, ebx
sub eax, ecx
mov ecx, dword [esp + 0x24]
push 2
sbb edx, ecx
push edx
push eax
call fcn.0042cfd0
mov ecx, dword [esp + 0x48]
add edi, eax
mov eax, ebp
adc esi, edx
cdq
cmp edx, ecx
jg 0x4152fc
jl 0x41523e
cmp eax, dword [esp + 0x44]
ja 0x4152fc
mov eax, dword [esp + 0x28]
push 0
push 2
push eax
mov eax, dword [esp + 0x30]
push eax
call fcn.0042d080
mov dword [esp + 0x54], eax
mov dword [esp + 0x58], edx
mov eax, dword [esp + 0x80]
mov ecx, dword [esp + 0x7c]
mov edx, dword [esp + 0x78]
push eax
push ecx
mov ecx, dword [esp + 0x18]
push ebp
lea eax, [esp + 0x70]
push edx
push eax
call fcn.00415310
test esi, esi
jg 0x4152ba
jl 0x415284
test edi, edi
jae 0x4152ba
mov edx, dword [esp + 0x78]
mov ecx, dword [esp + 0x40]
sub edx, 2
push 0
mov dword [esp + 0x7c], edx
mov edx, dword [esp + 0x40]
push 2
push ecx
push edx
call fcn.0042d080
mov ecx, dword [esp + 0x1c]
add ecx, eax
mov eax, dword [esp + 0x20]
adc eax, edx
add edi, ecx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x20], eax
adc esi, eax
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x54]
mov ecx, dword [esp + 0x58]
add ebp, 2
sub eax, edx
mov edx, dword [esp + 0x28]
sbb ebx, ecx
mov ecx, dword [esp + 0x24]
sub ecx, eax
mov dword [esp + 0x14], eax
sbb edx, ebx
add edi, ecx
mov ecx, dword [esp + 0x48]
mov eax, ebp
adc esi, edx
cdq
cmp edx, ecx
jl 0x415259
jg 0x4152fc
cmp eax, dword [esp + 0x44]
jbe 0x415259
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x64
ret 0xc