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

Disassembly:
push 0xffffffffffffffff
push 0x4d7ad0
mov eax, dword fs:[0]
push eax
sub esp, 0x94
push ebx
push ebp
push esi
push edi
mov eax, dword [0x51b260]
xor eax, esp
push eax
lea eax, [esp + 0xa8]
mov dword fs:[0], eax
mov edi, ecx
push 0x4db6d7
xor ebx, ebx
xor esi, esi
call fcn.00434400
push 0x4db6d7
mov ecx, edi
call fcn.00434400
push 0x4db6d7
mov ecx, edi
call fcn.00434490
push 0x4db6d7
mov ecx, edi
call fcn.00434400
mov eax, dword [edi + 0x134]
sub eax, dword [edi + 0x130]
sar eax, 2
test eax, eax
ja 0x4458f9
call fcn.0049eacd
mov ecx, dword [edi + 0x130]
mov eax, dword [edi + 0x134]
mov edx, dword [ecx]
sub eax, ecx
sar eax, 2
mov dword [esp + 0x28], edx
cmp eax, 1
ja 0x44591a
call fcn.0049eacd
mov eax, dword [edi + 0x15c]
sub eax, dword [edi + 0x158]
mov ecx, dword [edi + 0x130]
mov edx, dword [ecx + 4]
sar eax, 2
mov dword [esp + 0x2c], edx
test eax, eax
ja 0x44593f
call fcn.0049eacd
mov eax, dword [edi + 0x134]
sub eax, dword [edi + 0x130]
mov ecx, dword [edi + 0x158]
mov edx, dword [ecx]
sar eax, 2
mov dword [esp + 0x18], edx
cmp eax, 2
ja 0x445964
call fcn.0049eacd
mov ecx, dword [edi + 0x130]
mov eax, dword [edi + 0x86e70]
mov edx, dword [ecx + 8]
lea ebp, [edi + 0x86e64]
mov dword [esp + 0x30], edx
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
cmp eax, dword [ebp + 0x10]
jbe 0x44598f
call fcn.0049eacd
mov eax, dword [esp + 0x14]
mov ebp, dword [ebp]
mov dword [esp + 0x24], eax
lea ebx, [ebx]
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax + 0x10]
mov dword [esp + 0x14], ecx
cmp dword [eax + 0xc], ecx
jbe 0x4459b9
call fcn.0049eacd
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
cmp ebp, ebx
je 0x4459c3
cmp ebp, eax
je 0x4459c8
call fcn.0049eacd
mov ecx, dword [esp + 0x14]
cmp dword [esp + 0x24], ecx
je 0x445a32
cmp ebp, ebx
jne 0x445a28
call fcn.0049eacd
xor eax, eax
mov edx, dword [esp + 0x24]
cmp edx, dword [eax + 0x10]
jb 0x4459eb
call fcn.0049eacd
mov eax, dword [esp + 0x24]
mov esi, dword [eax]
mov ecx, dword [esp + 0x28]
cmp dword [esi + 4], ecx
jne 0x445a03
mov edx, dword [esp + 0x2c]
cmp dword [esi + 8], edx
je 0x445a32
xor esi, esi
cmp ebp, ebx
jne 0x445a2d
call fcn.0049eacd
xor eax, eax
mov ecx, dword [esp + 0x24]
cmp ecx, dword [eax + 0x10]
jb 0x445a1e
call fcn.0049eacd
add dword [esp + 0x24], 4
jmp 0x4459a0
mov eax, dword [ebp]
jmp 0x4459dd
mov eax, dword [ebp]
jmp 0x445a10
mov eax, dword [esp + 0x18]
cmp eax, 0xffffffff
je 0x445a61
push eax
mov ecx, edi
call fcn.0043a760
mov dword [esp + 0x14], eax
fild dword [esp + 0x14]
fst qword [esp + 0x9c]
fldz
fucompp
fnstsw ax
test ah, 0x44
jp 0x445af4
cmp esi, ebx
je 0x445d83
push ebx
lea ebp, [esi + 0x10]
push ebp
mov ecx, edi
call fcn.00442a70
mov edx, dword [esi]
mov eax, dword [edx + 0xc8]
push eax
lea ecx, [edi + 0x1444]
call fcn.0040fc90
mov dword [ebp + 0x10], ebx
mov eax, dword [ebp + 0x24]
cmp eax, ebx
je 0x445a9c
push eax
call fcn.004a05a9
add esp, 4
push esi
mov dword [ebp + 0x28], 0x40
mov dword [ebp + 0x2c], ebx
call fcn.0048dd02
mov edi, dword [esp + 0x28]
mov esi, dword [esp + 0x20]
mov eax, dword [esi + 0x10]
lea ecx, [edi + 4]
sub eax, ecx
sar eax, 2
add esp, 4
cmp eax, ebx
jle 0x445ad6
add eax, eax
add eax, eax
push eax
push ecx
push eax
push edi
call fcn.0049e73d
add esp, 0x10
add dword [esi + 0x10], 0xfffffffc
mov eax, dword [esi + 0x10]
cmp dword [esi + 0xc], edi
ja 0x445aea
cmp edi, eax
jbe 0x445d83
call fcn.0049eacd
jmp 0x445d83
cmp esi, ebx
jne 0x445b27
push 0x5c
call fcn.0048dcc8
add esp, 4
cmp eax, ebx
je 0x445b0f
mov ecx, eax
call fcn.00434190
jmp 0x445b11
xor eax, eax
lea ecx, [esp + 0x14]
mov esi, eax
push ecx
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x18], esi
call fcn.004027d0
jmp 0x445b42
mov edx, dword [esi + 0x10]
mov eax, dword [esi + 0x14]
push ebx
push edx
push eax
lea ecx, [edi + 0x1444]
push ecx
lea ecx, [edi + 0x5820]
call fcn.00421980
mov edx, dword [esp + 0x30]
push ebx
push ebx
lea ebp, [edi + 0x1444]
push edx
mov ecx, ebp
call fcn.0040ee90
mov eax, dword [esp + 0x30]
push 1
push eax
mov ecx, ebp
call fcn.0040fe70
fld qword [0x4dc3f8]
mov ecx, dword [esp + 0x18]
fld qword [esp + 0x9c]
mov edx, dword [esp + 0x28]
fcom st(1)
mov dword [esi + 0xc], ecx
mov ecx, dword [esp + 0x2c]
mov dword [esi + 4], edx
mov dword [esi + 8], ecx
mov dword [esi], eax
mov dword [eax + 0xd0], ecx
mov eax, dword [esi]
sub edx, dword [eax + 0x10]
mov dword [eax + 0xcc], edx
fnstsw ax
test ah, 1
jne 0x445baa
fstp st(1)
fstp st(0)
fld1
jmp 0x445bac
fdivrp st(1)
mov ebp, dword [esi]
mov edx, dword [ebp + 0x10]
mov dword [esp + 0x18], edx
fimul dword [esp + 0x18]
call fcn.0049ef20
mov ecx, dword [ebp + 0xcc]
sub ecx, eax
add ecx, dword [esp + 0x18]
mov dword [esp + 0x5c], ebx
mov dword [ebp + 0x4c], ecx
mov eax, dword [esi]
mov edx, dword [eax + 0xcc]
add edx, dword [eax + 0x10]
mov dword [esp + 0x60], ebx
mov dword [eax + 0x54], edx
mov eax, dword [esi]
mov ecx, dword [eax + 0xd0]
mov dword [eax + 0x50], ecx
mov eax, dword [esi]
mov edx, dword [eax + 0xd0]
add edx, dword [eax + 0xc]
mov dword [esp + 0x64], ebx
mov dword [eax + 0x58], edx
mov eax, dword [esi]
mov edx, 1
mov dword [eax + 0xe8], edx
mov ecx, dword [esi]
mov dword [esi + 0x20], ecx
mov eax, dword [esi]
mov ecx, dword [eax + 0xd0]
mov eax, dword [eax + 0xcc]
mov dword [esi + 0x1c], ecx
mov ecx, dword [esp + 0x2c]
mov dword [esi + 0x18], eax
mov eax, dword [edi + 0x5924]
sub eax, edx
mov dword [esi + 0x24], eax
mov eax, dword [esp + 0x28]
add ecx, 0x19
imul eax, eax, 0x258
imul ecx, ecx, 0x320
mov dword [esi + 0x28], edx
add ecx, eax
mov dword [esi + 0x14], ecx
mov ebp, dword [esi + 0x20]
mov eax, dword [esi + 0x24]
mov ecx, dword [esi + 0x18]
mov edx, dword [esi + 0x1c]
mov dword [esp + 0x48], ebp
mov ebp, dword [esi + 0x14]
mov dword [esp + 0x3c], ebp
mov ebp, dword [esi + 0x10]
mov dword [esp + 0x38], ebp
mov ebp, eax
mov dword [esp + 0x4c], ebp
mov ebp, dword [esi + 0x28]
mov dword [esp + 0x50], ebp
mov ebp, dword [esi + 0x2c]
mov dword [esp + 0x54], ebp
mov ebp, dword [esi + 0x30]
mov dword [esp + 0x34], eax
mov dword [esp + 0x40], ecx
mov dword [esp + 0x44], edx
mov dword [esp + 0x58], ebp
mov dword [esp + 0x78], edx
mov edx, dword [esp + 0x48]
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x74], ecx
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x7c], edx
mov edx, dword [esp + 0x4c]
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x50]
mov dword [esp + 0xb0], ebx
mov dword [esp + 0x90], ebx
mov dword [esp + 0x94], ebx
mov dword [esp + 0x98], ebx
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x80], edx
mov ecx, dword [esp + 0x54]
mov dword [esp + 0x84], eax
mov dword [esp + 0x88], ecx
mov dword [esp + 0x8c], ebp
lea edx, [esp + 0x68]
push edx
lea eax, [esp + 0xa0]
push eax
lea ecx, [edi + 0x58dc]
mov byte [esp + 0xb8], 1
call fcn.00422150
mov eax, dword [esp + 0x90]
cmp eax, ebx
je 0x445d31
push eax
call fcn.004a05a9
add esp, 4
mov ecx, dword [esi + 0x20]
lea ebx, [edi + 0x5820]
push ecx
mov ecx, ebx
mov dword [esp + 0xb4], 0xffffffff
call fcn.0041f990
mov eax, dword [esi]
mov ecx, dword [eax + 0xd0]
mov ebp, dword [eax + 0xc]
mov edx, dword [eax + 0xcc]
mov eax, dword [eax + 0x10]
add ebp, ecx
push ebp
add eax, edx
push eax
push ecx
push edx
add esi, 0x40
push esi
call dword [sym.imp.user32.dll_SetRect]
push esi
mov ecx, ebx
call fcn.0041fba0
push esi
mov ecx, edi
call fcn.0043a5b0
mov ecx, dword [esp + 0xa8]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xa0
ret