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

Disassembly:
push 0xffffffffffffffff
push 0x4d9776
mov eax, dword fs:[0]
push eax
sub esp, 0x98
push ebx
push ebp
push esi
push edi
mov eax, dword [0x51d260]
xor eax, esp
push eax
lea eax, [esp + 0xac]
mov dword fs:[0], eax
mov edi, ecx
push 0x4dd6d7
xor ebp, ebp
xor esi, esi
call fcn.00435450
push 0x4dd6d7
mov ecx, edi
call fcn.00435450
push 0x4dd6d7
mov ecx, edi
call fcn.004354e0
push 0x4dd6d7
mov ecx, edi
call fcn.00435450
push 0x4dd6d7
mov ecx, edi
call fcn.00435450
mov eax, dword [edi + 0x134]
sub eax, dword [edi + 0x130]
sar eax, 2
test eax, eax
ja 0x447405
call fcn.004a067d
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 0x447426
call fcn.004a067d
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 0x44744b
call fcn.004a067d
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 + 0x30], edx
cmp eax, 2
ja 0x447470
call fcn.004a067d
mov ecx, dword [edi + 0x130]
mov eax, dword [edi + 0x134]
mov edx, dword [ecx + 8]
sub eax, ecx
sar eax, 2
mov dword [esp + 0x1c], edx
cmp eax, 3
ja 0x447492
call fcn.004a067d
mov ecx, dword [edi + 0x130]
mov eax, dword [edi + 0x86e70]
mov edx, dword [ecx + 0xc]
lea ebx, [edi + 0x86e64]
mov dword [esp + 0x9c], edx
mov dword [esp + 0x18], ebx
mov dword [esp + 0x14], eax
cmp eax, dword [ebx + 0x10]
jbe 0x4474c0
call fcn.004a067d
mov eax, dword [esp + 0x14]
mov ebx, dword [ebx]
mov dword [esp + 0x24], eax
lea ebx, [ebx]
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + 0x10]
mov dword [esp + 0x14], ecx
cmp dword [eax + 0xc], ecx
jbe 0x4474e9
call fcn.004a067d
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
cmp ebx, ebp
je 0x4474f3
cmp ebx, eax
je 0x4474f8
call fcn.004a067d
mov ecx, dword [esp + 0x14]
cmp dword [esp + 0x24], ecx
je 0x447560
cmp ebx, ebp
jne 0x447558
call fcn.004a067d
xor eax, eax
mov edx, dword [esp + 0x24]
cmp edx, dword [eax + 0x10]
jb 0x44751b
call fcn.004a067d
mov eax, dword [esp + 0x24]
mov esi, dword [eax]
mov ecx, dword [esp + 0x28]
cmp dword [esi + 4], ecx
jne 0x447533
mov edx, dword [esp + 0x2c]
cmp dword [esi + 8], edx
je 0x447560
xor esi, esi
cmp ebx, ebp
jne 0x44755c
call fcn.004a067d
xor eax, eax
mov ecx, dword [esp + 0x24]
cmp ecx, dword [eax + 0x10]
jb 0x44754e
call fcn.004a067d
add dword [esp + 0x24], 4
jmp 0x4474d0
mov eax, dword [ebx]
jmp 0x44750d
mov eax, dword [ebx]
jmp 0x447540
mov eax, dword [esp + 0x30]
cmp eax, 0xffffffff
je 0x44758f
push eax
mov ecx, edi
call fcn.0043b960
mov dword [esp + 0x14], eax
fild dword [esp + 0x14]
fst qword [esp + 0xa0]
fldz
fucompp
fnstsw ax
test ah, 0x44
jp 0x447622
cmp esi, ebp
je 0x447a26
push ebp
lea ebx, [esi + 0x14]
push ebx
mov ecx, edi
call fcn.00443d40
mov edx, dword [esi]
mov eax, dword [edx + 0xc8]
push eax
lea ecx, [edi + 0x1444]
call fcn.0040f8e0
mov dword [ebx + 0x10], ebp
mov eax, dword [ebx + 0x24]
cmp eax, ebp
je 0x4475ca
push eax
call fcn.004a2159
add esp, 4
push esi
mov dword [ebx + 0x28], 0x40
mov dword [ebx + 0x2c], ebp
call fcn.0048f8b2
mov edi, dword [esp + 0x28]
mov esi, dword [esp + 0x1c]
mov eax, dword [esi + 0x10]
lea ecx, [edi + 4]
sub eax, ecx
sar eax, 2
add esp, 4
cmp eax, ebp
jle 0x447604
add eax, eax
add eax, eax
push eax
push ecx
push eax
push edi
call fcn.004a02ed
add esp, 0x10
add dword [esi + 0x10], 0xfffffffc
mov eax, dword [esi + 0x10]
cmp dword [esi + 0xc], edi
ja 0x447618
cmp edi, eax
jbe 0x447a26
call fcn.004a067d
jmp 0x447a26
cmp esi, ebp
jne 0x447655
push 0x60
call fcn.0048f878
add esp, 4
cmp eax, ebp
je 0x44763d
mov ecx, eax
call fcn.0041a160
jmp 0x44763f
xor eax, eax
lea ecx, [esp + 0x14]
mov esi, eax
push ecx
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x18], esi
call fcn.00423950
jmp 0x447670
mov edx, dword [esi + 0x14]
mov eax, dword [esi + 0x18]
push ebp
push edx
push eax
lea ecx, [edi + 0x1444]
push ecx
lea ecx, [edi + 0x5820]
call fcn.004217d0
mov edx, dword [esp + 0x1c]
push ebp
push ebp
lea ebx, [edi + 0x1444]
push edx
mov ecx, ebx
call fcn.0040eae0
mov eax, dword [esp + 0x1c]
push 1
push eax
mov ecx, ebx
call fcn.0040fac0
fld qword [0x4de418]
mov ecx, dword [esp + 0x30]
fld qword [esp + 0xa0]
mov edx, dword [esp + 0x28]
fcom st(1)
mov ebx, dword [esp + 0x1c]
mov dword [esi + 0xc], ecx
mov ecx, dword [esp + 0x2c]
mov dword [esi + 4], edx
mov dword [esi + 8], ecx
mov dword [esi + 0x10], ebx
mov dword [esi], eax
mov dword [eax + 0xd0], ecx
mov eax, dword [esi]
mov dword [eax + 0xcc], edx
fnstsw ax
test ah, 1
jne 0x4476dc
fstp st(1)
fstp st(0)
fld1
jmp 0x4476de
fdivrp st(1)
mov ebx, dword [esi]
fimul dword [ebx + 0x10]
call fcn.004a0ad0
mov ecx, dword [ebx + 0xcc]
mov dword [ebx + 0x4c], ecx
mov ecx, dword [esi]
mov edx, dword [ecx + 0xcc]
add edx, eax
mov dword [ecx + 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 ebx, 1
mov dword [eax + 0x58], edx
mov eax, dword [esi]
mov dword [eax + 0xe8], ebx
mov ecx, dword [esi]
mov dword [ecx + 0xec], ebx
mov edx, dword [esi]
mov dword [esi + 0x24], edx
mov eax, dword [esi]
mov ecx, dword [eax + 0xd0]
mov eax, dword [eax + 0xcc]
mov dword [esi + 0x20], ecx
mov ecx, dword [esp + 0x28]
mov dword [esi + 0x1c], eax
mov eax, dword [edi + 0x5924]
sub eax, ebx
mov dword [esi + 0x28], eax
mov eax, dword [esp + 0x2c]
add ecx, 0x32
imul eax, eax, 0x320
imul ecx, ecx, 0x258
add ecx, eax
cmp dword [esp + 0x9c], 0x270f
mov dword [esi + 0x18], ecx
mov dword [esp + 0x5c], ebp
mov dword [esp + 0x60], ebp
mov dword [esp + 0x64], ebp
jne 0x4478f9
mov dword [esi + 0x34], ebp
mov dword [edi + 0x6398], ebx
mov edx, dword [esi + 0x20]
mov eax, dword [esi + 0x28]
mov ecx, dword [esi + 0x1c]
mov dword [esp + 0x44], edx
mov edx, dword [esi + 0x24]
mov dword [esp + 0x48], edx
mov edx, dword [esi + 0x18]
mov dword [esp + 0x3c], edx
mov edx, dword [esi + 0x14]
mov dword [esp + 0x38], edx
mov edx, eax
mov dword [esp + 0x4c], edx
mov edx, dword [esi + 0x2c]
mov dword [esp + 0x50], edx
mov edx, dword [esi + 0x30]
mov dword [esp + 0x54], edx
mov edx, dword [esi + 0x34]
mov dword [esp + 0x34], eax
mov dword [esp + 0x40], ecx
mov dword [esp + 0x58], edx
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 0x74], ecx
mov ecx, dword [esp + 0x48]
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x7c], ecx
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x6c], ecx
mov ecx, dword [esp + 0x50]
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0x54]
mov dword [esp + 0xb4], ebp
mov dword [esp + 0x90], ebp
mov dword [esp + 0x94], ebp
mov dword [esp + 0x98], ebp
mov dword [esp + 0x84], ecx
mov dword [esp + 0x88], eax
mov dword [esp + 0x8c], edx
lea ecx, [esp + 0x68]
push ecx
lea edx, [esp + 0xa4]
push edx
lea ecx, [edi + 0x58dc]
mov byte [esp + 0xbc], bl
call fcn.00421fa0
mov eax, dword [esp + 0x90]
cmp eax, ebp
je 0x447876
push eax
call fcn.004a2159
add esp, 4
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
lea edi, [esi + 0x44]
push edi
call dword [sym.imp.user32.dll_SetRect]
mov eax, dword [esi + 0x24]
mov ecx, dword [eax + 0x5c]
mov dword [edi + 0x10], ecx
mov edx, dword [eax + 0x60]
add eax, 0x4c
mov dword [edi + 0x14], edx
mov ecx, dword [eax + 0x18]
mov dword [edi + 0x18], ecx
mov edx, dword [eax + 4]
mov dword [edi + 4], edx
mov ecx, dword [eax]
mov dword [edi], ecx
mov edx, dword [eax + 8]
mov dword [edi + 8], edx
mov eax, dword [eax + 0xc]
mov dword [edi + 0xc], eax
mov eax, dword [esi + 0x24]
mov ecx, dword [esi + 0x24]
mov edx, dword [eax + 0x4c]
add eax, 0x4c
mov dword [ecx + 0x6c], edx
mov edx, dword [eax + 4]
add ecx, 0x6c
mov dword [ecx + 4], edx
mov edx, dword [eax + 8]
mov dword [ecx + 8], edx
mov eax, dword [eax + 0xc]
mov dword [ecx + 0xc], eax
mov ecx, dword [esi + 0x24]
mov dword [ecx + 0x68], ebx
jmp 0x447a26
mov dword [esi + 0x2c], ebx
mov ebx, dword [esi + 0x24]
mov eax, dword [esi + 0x28]
mov ecx, dword [esi + 0x1c]
mov edx, dword [esi + 0x20]
mov dword [esp + 0x48], ebx
mov ebx, dword [esi + 0x18]
mov dword [esp + 0x3c], ebx
mov ebx, dword [esi + 0x14]
mov dword [esp + 0x38], ebx
mov ebx, eax
mov dword [esp + 0x4c], ebx
mov ebx, dword [esi + 0x2c]
mov dword [esp + 0x50], ebx
mov ebx, dword [esi + 0x30]
mov dword [esp + 0x54], ebx
mov ebx, dword [esi + 0x34]
mov dword [esp + 0x34], eax
mov dword [esp + 0x40], ecx
mov dword [esp + 0x44], edx
mov dword [esp + 0x58], ebx
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x74], ecx
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x78], edx
mov edx, dword [esp + 0x48]
mov dword [esp + 0x7c], edx
mov edx, dword [esp + 0x4c]
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x50]
mov dword [esp + 0x6c], ecx
mov ecx, dword [esp + 0x54]
mov dword [esp + 0xb4], 2
mov dword [esp + 0x90], ebp
mov dword [esp + 0x94], ebp
mov dword [esp + 0x98], ebp
mov dword [esp + 0x80], edx
mov dword [esp + 0x84], eax
mov dword [esp + 0x88], ecx
mov dword [esp + 0x8c], ebx
lea edx, [esp + 0x68]
push edx
lea eax, [esp + 0xa4]
push eax
lea ecx, [edi + 0x58dc]
mov byte [esp + 0xbc], 3
call fcn.00421fa0
mov eax, dword [esp + 0x90]
cmp eax, ebp
je 0x4479e1
push eax
call fcn.004a2159
add esp, 4
mov eax, dword [esi]
mov ecx, dword [eax + 0xd0]
mov ebx, dword [eax + 0xc]
mov edx, dword [eax + 0xcc]
mov eax, dword [eax + 0x10]
add ebx, ecx
push ebx
add eax, edx
push eax
push ecx
push edx
add esi, 0x44
push esi
mov dword [esp + 0xc8], 0xffffffff
call dword [sym.imp.user32.dll_SetRect]
push esi
lea ecx, [edi + 0x5820]
call fcn.0041f760
push esi
mov ecx, edi
call fcn.0043b7b0
mov ecx, dword [esp + 0xac]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xa4
ret