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

Disassembly:
push 0xffffffffffffffff
push 0x73de39
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x1bc
mov edx, dword [ecx + 0x178]
push ebx
push ebp
push esi
test edx, edx
push edi
mov dword [esp + 0x18], ecx
jne 0x450805
xor ebx, ebx
mov dword [esp + 0x10], ebx
jmp 0x450816
mov eax, dword [ecx + 0x17c]
sub eax, edx
sar eax, 2
mov dword [esp + 0x10], eax
mov ebx, eax
xor edi, edi
xor ebp, ebp
xor edx, edx
test ebx, ebx
jle 0x450f4f
mov esi, dword [ecx + 0x178]
mov eax, dword [esi + edx*4]
mov ecx, dword [esi + edx*4]
add ecx, 0xf8
mov eax, dword [eax + 0x120]
test eax, eax
je 0x45084e
test ecx, ecx
je 0x45084e
mov ecx, dword [eax + 0x48]
mov eax, dword [eax + 0x4c]
add edi, ecx
add ebp, eax
inc edx
cmp edx, ebx
jl 0x45082a
xor esi, esi
cmp edi, esi
jle 0x450f4f
cmp ebp, esi
jle 0x450f4f
push 0x58
call fcn.00726f70
add esp, 4
mov dword [esp + 0x24], eax
cmp eax, esi
mov dword [esp + 0x1d4], esi
je 0x45088d
mov ecx, eax
call fcn.00452d70
mov ebx, eax
mov dword [esp + 0x28], ebx
jmp 0x450893
mov dword [esp + 0x28], esi
mov ebx, esi
push edi
mov ecx, ebx
mov dword [esp + 0x1d8], 0xffffffff
call fcn.00452ff0
push ebp
mov ecx, ebx
call fcn.004530b0
mov eax, dword [esp + 0x18]
mov ecx, dword [ebx + 0x2c]
mov edx, dword [ebx + 0x34]
add eax, 0x54
mov dword [esp + 0x80], ecx
mov ecx, 0x10
mov esi, eax
lea edi, [esp + 0x40]
rep movsd dword es:[edi], dword [esi]
xor ebp, ebp
push eax
lea ecx, [esp + 0x44]
push ebp
push ecx
mov dword [esp + 0x30], edx
mov dword [esp + 0x20], ebp
mov dword [esp + 0x2c], ebp
call fcn.0070054e
mov edx, dword [esp + 0x18]
mov eax, dword [edx + 0x178]
mov ecx, dword [eax + ebp*4]
mov esi, ecx
mov edi, dword [ecx + 0x120]
add esi, 0xf8
test edi, edi
je 0x450d8a
test esi, esi
je 0x450d8a
mov eax, dword [edi + 0x48]
mov edx, dword [edi + 0x4c]
push eax
mov ecx, esi
mov dword [esp + 0x20], eax
mov dword [esp + 0x88], edx
call fcn.0044c800
mov ebx, dword [edi + 0x3c]
mov esi, dword [esi + 0x18]
test ebx, ebx
mov dword [esp + 0x88], esi
je 0x450d86
test esi, esi
je 0x450d86
mov esi, dword [esp + 0x18]
push 0x3f800000
mov eax, dword [esi + 0x178]
lea ecx, [esi + 0x2c]
push ecx
lea ecx, [esi + 0x54]
push ecx
mov ecx, dword [eax + ebp*4]
call fcn.0044d730
mov eax, dword [esi + 0x178]
mov ecx, 0x10
lea edi, [esp + 0x8c]
mov esi, dword [eax + ebp*4]
mov al, byte [0x93f9ac]
add esi, 0x38
test al, 1
rep movsd dword es:[edi], dword [esi]
jne 0x4509a4
mov dl, al
push fcn.0040de30
or dl, 1
mov byte [0x93f9ac], dl
call fcn.00726f2f
add esp, 4
fld dword [esp + 0x94]
fmul dword [esp + 0x60]
fld dword [esp + 0x90]
fmul dword [esp + 0x50]
mov ecx, 0x10
lea esi, [esp + 0x8c]
mov edi, 0x93f9c0
faddp st(1)
fld dword [esp + 0x8c]
fmul dword [esp + 0x40]
rep movsd dword es:[edi], dword [esi]
faddp st(1)
fld dword [esp + 0x98]
fmul dword [esp + 0x70]
faddp st(1)
fstp dword [esp + 0x8c]
fld dword [esp + 0x74]
fmul dword [0x93f9cc]
fld dword [esp + 0x64]
fmul dword [0x93f9c8]
faddp st(1)
fld dword [esp + 0x54]
fmul dword [0x93f9c4]
faddp st(1)
fld dword [esp + 0x44]
fmul dword [0x93f9c0]
faddp st(1)
fstp dword [esp + 0x90]
fld dword [esp + 0x78]
fmul dword [0x93f9cc]
fld dword [esp + 0x68]
fmul dword [0x93f9c8]
faddp st(1)
fld dword [esp + 0x58]
fmul dword [0x93f9c4]
faddp st(1)
fld dword [esp + 0x48]
fmul dword [0x93f9c0]
faddp st(1)
fstp dword [esp + 0x94]
fld dword [esp + 0x70]
fmul dword [0x93f9dc]
fld dword [esp + 0x60]
fmul dword [0x93f9d8]
faddp st(1)
fld dword [esp + 0x50]
fmul dword [0x93f9d4]
faddp st(1)
fld dword [esp + 0x40]
fmul dword [0x93f9d0]
faddp st(1)
fstp dword [esp + 0x9c]
fld dword [esp + 0x74]
fmul dword [0x93f9dc]
fld dword [esp + 0x64]
fmul dword [0x93f9d8]
faddp st(1)
fld dword [esp + 0x54]
fmul dword [0x93f9d4]
faddp st(1)
fld dword [esp + 0x44]
fmul dword [0x93f9d0]
faddp st(1)
fstp dword [esp + 0xa0]
fld dword [esp + 0x78]
fmul dword [0x93f9dc]
fld dword [esp + 0x68]
fmul dword [0x93f9d8]
faddp st(1)
fld dword [esp + 0x58]
fmul dword [0x93f9d4]
faddp st(1)
fld dword [esp + 0x48]
fmul dword [0x93f9d0]
faddp st(1)
fstp dword [esp + 0xa4]
fld dword [esp + 0x70]
fmul dword [0x93f9ec]
fld dword [esp + 0x60]
fmul dword [0x93f9e8]
faddp st(1)
fld dword [esp + 0x50]
fmul dword [0x93f9e4]
mov ecx, dword [esp + 0x1c]
test ecx, ecx
faddp st(1)
fld dword [esp + 0x40]
fmul dword [0x93f9e0]
faddp st(1)
fstp dword [esp + 0xac]
fld dword [esp + 0x74]
fmul dword [0x93f9ec]
fld dword [esp + 0x64]
fmul dword [0x93f9e8]
faddp st(1)
fld dword [esp + 0x54]
fmul dword [0x93f9e4]
faddp st(1)
fld dword [esp + 0x44]
fmul dword [0x93f9e0]
faddp st(1)
fstp dword [esp + 0xb0]
fld dword [esp + 0x78]
fmul dword [0x93f9ec]
fld dword [esp + 0x68]
fmul dword [0x93f9e8]
faddp st(1)
fld dword [esp + 0x58]
fmul dword [0x93f9e4]
faddp st(1)
fld dword [esp + 0x48]
fmul dword [0x93f9e0]
faddp st(1)
fstp dword [esp + 0xb4]
fld dword [esp + 0x70]
fmul dword [0x93f9fc]
fld dword [0x93f9f8]
fmul dword [esp + 0x60]
faddp st(1)
fld dword [0x93f9f4]
fmul dword [esp + 0x50]
faddp st(1)
fld dword [esp + 0x40]
fmul dword [0x93f9f0]
faddp st(1)
fstp dword [esp + 0xbc]
fld dword [esp + 0x74]
fmul dword [0x93f9fc]
fld dword [esp + 0x64]
fmul dword [0x93f9f8]
faddp st(1)
fld dword [esp + 0x54]
fmul dword [0x93f9f4]
faddp st(1)
fld dword [esp + 0x44]
fmul dword [0x93f9f0]
faddp st(1)
fstp dword [esp + 0xc0]
fld dword [esp + 0x78]
fmul dword [0x93f9fc]
fld dword [esp + 0x68]
fmul dword [0x93f9f8]
faddp st(1)
fld dword [esp + 0x58]
fmul dword [0x93f9f4]
faddp st(1)
fld dword [esp + 0x48]
fmul dword [0x93f9f0]
faddp st(1)
fstp dword [esp + 0xc4]
jle 0x450d3a
mov eax, dword [esp + 0x14]
lea esi, [ebx + 4]
mov ebx, ecx
lea edx, [eax + eax*2]
mov eax, dword [esp + 0x80]
lea edi, [eax + edx*4 + 8]
mov al, byte [0x93f97c]
test al, 1
jne 0x450c7b
mov dl, al
push fcn.0040de30
or dl, 1
mov byte [0x93f97c], dl
call fcn.00726f2f
add esp, 4
fld dword [esp + 0xac]
fmul dword [esi + 4]
fld dword [esp + 0x9c]
fmul dword [esi]
add edi, 0xc
add esi, 0x20
dec ebx
faddp st(1)
fld dword [esp + 0x8c]
fmul dword [esi - 0x24]
faddp st(1)
fadd dword [esp + 0xbc]
fstp dword [0x93f980]
fld dword [esp + 0xb0]
fmul dword [esi - 0x1c]
fld dword [esp + 0xa0]
fmul dword [esi - 0x20]
mov ecx, dword [0x93f980]
mov dword [esp + 0x30], ecx
faddp st(1)
fld dword [esp + 0x90]
fmul dword [esi - 0x24]
faddp st(1)
fadd dword [esp + 0xc0]
fstp dword [0x93f984]
fld dword [esp + 0xb4]
fmul dword [esi - 0x1c]
fld dword [esp + 0xa4]
fmul dword [esi - 0x20]
mov edx, dword [0x93f984]
mov dword [esp + 0x34], edx
faddp st(1)
fld dword [esp + 0x94]
fmul dword [esi - 0x24]
faddp st(1)
fadd dword [esp + 0xc4]
fstp dword [0x93f988]
mov eax, dword [0x93f988]
mov dword [edi - 0x14], ecx
mov dword [edi - 0x10], edx
mov dword [edi - 0xc], eax
mov dword [esp + 0x38], eax
jne 0x450c5a
mov esi, dword [esp + 0x84]
test esi, esi
jle 0x450d6e
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x88]
lea ecx, [ecx + edx*2]
mov edx, esi
mov di, word [esp + 0x14]
add ecx, 2
add di, word [eax]
add eax, 2
dec edx
mov word [ecx - 2], di
jne 0x450d59
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
add ecx, eax
mov eax, dword [esp + 0x20]
add eax, esi
mov dword [esp + 0x14], ecx
mov dword [esp + 0x20], eax
mov ebx, dword [esp + 0x28]
mov eax, dword [esp + 0x10]
inc ebp
cmp ebp, eax
jl 0x4508e9
mov eax, dword [esp + 0x14]
test eax, eax
jle 0x450f42
mov eax, dword [esp + 0x20]
test eax, eax
jle 0x450f42
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx + 0x1c]
test eax, eax
jne 0x450dbf
mov eax, 0x765608
mov edx, dword [0x8b589c]
push edx
push eax
lea eax, [esp + 0xd4]
push 0x7a4470
push eax
call fcn.00727335
mov ecx, dword [0x8b589c]
add esp, 0x10
inc ecx
mov dword [0x8b589c], ecx
mov cl, byte [esp + 0x2f]
mov byte [esp + 0x30], cl
push 0
lea ecx, [esp + 0x34]
call fcn.00404760
lea edi, [esp + 0xcc]
or ecx, 0xffffffff
xor eax, eax
push 1
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov ebp, ecx
lea ecx, [esp + 0x34]
push ebp
call fcn.00401450
test al, al
je 0x450e44
mov edi, dword [esp + 0x34]
mov ecx, ebp
mov edx, ecx
lea esi, [esp + 0xcc]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
push ebp
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x34]
call fcn.00404970
lea eax, [esp + 0x30]
mov ecx, ebx
push eax
mov dword [esp + 0x1d8], 1
call fcn.00444970
push 1
lea ecx, [esp + 0x34]
mov dword [esp + 0x1d8], 0xffffffff
call fcn.00404760
mov edi, dword [esp + 0x18]
lea esi, [edi + 0x134]
test esi, esi
je 0x450f18
mov eax, dword [esi]
test eax, eax
je 0x450f18
add eax, 0x18
lea ecx, [esp + 0x1c]
push eax
push ecx
mov ecx, 0x805690
call fcn.004299e0
mov edx, dword [esp + 0x1c]
mov eax, dword [0x805694]
cmp edx, eax
je 0x450f18
lea eax, [esp + 0x10]
push esi
push eax
mov ecx, 0x8056a0
call fcn.00429ee0
mov eax, dword [esp + 0x10]
mov ecx, dword [0x8056a4]
cmp eax, ecx
je 0x450f12
mov ecx, dword [eax + 0x10]
dec ecx
mov dword [eax + 0x10], ecx
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 0x10]
test eax, eax
jne 0x450f12
mov ecx, dword [esi]
test ecx, ecx
je 0x450eea
mov edx, dword [ecx]
push 1
call dword [edx + 4]
mov eax, dword [esp + 0x1c]
lea ecx, [esp + 0x24]
push eax
push ecx
mov ecx, 0x805690
call fcn.00427820
mov edx, dword [esp + 0x10]
lea eax, [esp + 0x24]
push edx
push eax
mov ecx, 0x8056a0
call fcn.00427840
mov dword [esi], 0
push ebx
mov ecx, 0x805690
call fcn.00427690
push 0
add ebx, 0x18
push 1
push ebx
mov ecx, 0x805690
call fcn.00448500
mov edx, dword [edi]
mov ecx, edi
mov dword [esi], eax
call dword [edx + 0x40]
mov al, 1
jmp 0x450f51
test ebx, ebx
je 0x450f4f
mov eax, dword [ebx]
push 1
mov ecx, ebx
call dword [eax + 4]
xor al, al
mov ecx, dword [esp + 0x1cc]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x1c8
ret