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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xa8
push esi
push edi
mov edi, ecx
mov ecx, dword [ebp + 8]
push ecx
mov dword [esp + 0x1c], edi
mov ecx, dword [edi + 8]
call fcn.004bd910
mov ecx, eax
call fcn.00489750
push dword [ebp + 8]
mov ecx, dword [edi + 8]
mov esi, eax
call fcn.004bd910
mov ecx, eax
call fcn.00489680
mov ecx, esi
mov dword [esp + 0x30], eax
call fcn.0046c770
mov ecx, esi
movsd qword [esp + 0x50], xmm0
call fcn.0046c8e0
mov ecx, esi
movsd qword [esp + 0x88], xmm0
call fcn.0046c7f0
mulsd xmm0, qword [0x5bab20]
movsd qword [esp + 8], xmm0
call fcn.0046c810
mulsd xmm0, qword [0x5bab20]
movsd qword [esp + 0x98], xmm0
call fcn.0046c7a0
mov ecx, esi
movsd qword [esp + 0x90], xmm0
call fcn.0046c7b0
mov eax, dword [ebp + 0x18]
movsd qword [esp + 0xa0], xmm0
addsd xmm0, qword [esp + 0x90]
mulsd xmm0, qword [0x5ba138]
movsd qword [esp + 0x78], xmm0
movsd xmm0, qword [eax + 0x58]
movsd qword [esp + 0x38], xmm0
xorps xmm0, xmm0
comisd xmm0, xmmword [esp + 0x88]
jae 0x421155
comisd xmm0, xmmword [esp + 0x50]
jae 0x421155
mov ecx, esi
call fcn.0046c930
mov ecx, dword [edi + 8]
push eax
call fcn.004bd6a0
mov edi, eax
movsd qword [esp + 0x70], xmm0
movsd qword [esp + 0x60], xmm0
xorps xmm1, xmm1
movsd qword [esp + 0x40], xmm0
movsd qword [esp + 0x48], xmm0
movsd xmm0, qword [0x5b9c48]
movsd qword [esp + 0xa8], xmm1
movsd qword [esp + 0x58], xmm1
movsd qword [esp + 0x68], xmm0
test edi, edi
je 0x420b40
mov ecx, edi
call fcn.00488520
mov ecx, esi
movsd xmm0, qword [eax + 0x28]
movsd xmm1, qword [eax + 0xc8]
movsd qword [esp + 0x60], xmm0
movsd xmm0, qword [eax + 0xb8]
movsd qword [esp + 0x70], xmm0
movsd qword [esp + 0xa8], xmm1
call fcn.0046e0e0
divsd xmm0, qword [0x5baa20]
mov ecx, esi
movsd qword [esp + 0x58], xmm0
call fcn.0046c7c0
mulsd xmm0, qword [edi + 0x10]
mulsd xmm0, qword [0x5bab48]
movsd qword [esp + 0x68], xmm0
call fcn.0046c7e0
movsd qword [esp + 0x40], xmm0
call fcn.0046c7d0
movaps xmm1, xmm0
addsd xmm1, xmm1
call fcn.0046c7c0
divsd xmm1, xmm0
movsd qword [esp + 0x48], xmm1
push 0x10
call fcn.0051fae4
add esp, 4
mov edi, eax
mov dword [esp + 0x20], edi
push 0x10
call fcn.0051fae4
add esp, 4
mov dword [esp + 0x24], eax
push 8
call fcn.0051fae4
add esp, 4
mov esi, eax
mov dword [esp + 0x28], esi
push 8
call fcn.0051fae4
mov dword [esp + 0x30], eax
add esp, 4
sub eax, esi
mov dword [esp + 0x14], 2
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0x24]
sub eax, edi
mov dword [esp + 0x84], eax
nop word [eax + eax]
push 0x10
call fcn.0051fae4
add esp, 4
mov dword [esi], eax
push 0x10
call fcn.0051fae4
mov ecx, dword [esp + 0x84]
lea edi, [edi + 8]
xorps xmm7, xmm7
lea esi, [esi + 4]
add esp, 4
sub dword [esp + 0x14], 1
mov dword [ecx + esi - 4], eax
mov ecx, dword [esp + 0x84]
movsd qword [ecx + edi - 8], xmm7
mov ecx, dword [esi - 4]
movsd qword [edi - 8], xmm7
movsd qword [eax], xmm7
movsd qword [ecx], xmm7
movsd qword [eax + 8], xmm7
movsd qword [ecx + 8], xmm7
jne 0x420ba0
mov edi, dword [esp + 0x18]
lea ecx, [esp + 0x18]
mov eax, dword [ebp + 8]
mov esi, dword [edi + 0x4c]
movsd xmm0, qword [esi + eax*8]
divsd xmm0, qword [esp + 0x88]
movsd qword [esp + 0x18], xmm0
call fcn.0040b780
mov edx, dword [edi + 0x54]
lea ecx, [esp + 0x18]
movaps xmm6, xmm0
movsd xmm1, qword [edx + eax*8]
divsd xmm1, qword [esp + 0x68]
movsd qword [esp + 0x18], xmm1
call fcn.0040b780
mov eax, dword [edi + 0x3c]
movaps xmm5, xmm0
mov ecx, dword [ebp + 8]
movsd xmm2, qword [esp + 0x38]
movsd xmm0, qword [esp + 0xa8]
movaps xmm4, xmm2
addsd xmm0, qword [esp + 0x70]
mov eax, dword [eax + ecx*4]
mov ecx, dword [esp + 0x30]
movsd xmm1, qword [eax + ecx*8 - 8]
mov eax, dword [ebp + 0xc]
addsd xmm1, qword [eax + ecx*8 - 8]
mov ecx, dword [esp + 0x20]
mov eax, dword [edi + 0x60]
mov edi, dword [ebp + 8]
mulsd xmm1, qword [0x5ba138]
mulsd xmm1, xmm2
movsd qword [ecx], xmm1
mulsd xmm4, qword [eax + edi*8]
addsd xmm4, xmm1
movsd xmm1, qword [esp + 0x78]
mulsd xmm0, xmm1
mulsd xmm0, xmm2
addsd xmm4, xmm0
movsd xmm0, qword [esp + 0x58]
mulsd xmm0, qword [0x5baa20]
mulsd xmm0, qword [0x5ba470]
mulsd xmm0, xmm1
mulsd xmm0, xmm2
subsd xmm4, xmm0
movsd xmm0, qword [esp + 0x40]
mulsd xmm0, qword [esp + 0x60]
mulsd xmm0, xmm1
mulsd xmm0, xmm2
addsd xmm4, xmm0
movaps xmm0, xmm2
mulsd xmm0, qword [0x5ba138]
movsd qword [ecx], xmm4
movsd qword [esp + 0x38], xmm0
mulsd xmm0, qword [esp + 0x40]
movsd qword [esp + 0x60], xmm0
movsd xmm0, qword [esp + 0x38]
mulsd xmm0, qword [esp + 0x48]
mulsd xmm0, xmm1
movsd xmm1, qword [0x5ba2b0]
movaps xmm3, xmm0
movsd qword [esp + 0x58], xmm0
movaps xmm2, xmm0
mulsd xmm3, xmm6
movsd xmm0, qword [esp + 0x38]
divsd xmm0, qword [esp + 0x88]
mulsd xmm2, xmm5
mulsd xmm0, qword [esp + 0x98]
subsd xmm1, xmm0
movsd xmm0, qword [esp + 0x60]
mulsd xmm0, qword [esp + 0xa0]
mulsd xmm1, qword [esi + edi*8]
mulsd xmm0, xmm6
movsd qword [ecx + 8], xmm3
addsd xmm1, xmm4
subsd xmm1, xmm0
subsd xmm1, xmm3
addsd xmm1, xmm2
movsd qword [ecx], xmm1
movsd xmm0, qword [edx + edi*8]
subsd xmm0, xmm2
movsd xmm1, qword [esp + 0x50]
addsd xmm0, xmm3
movsd xmm3, qword [esp + 0x38]
movsd xmm2, qword [esp + 0x40]
mulsd xmm2, qword [esp + 0x90]
mov eax, dword [esp + 0x28]
movsd qword [ecx + 8], xmm0
movaps xmm0, xmm3
mulsd xmm0, qword [esp + 8]
movsd xmm5, qword [esi + edi*8]
movsd xmm6, qword [edx + edi*8]
mov edi, dword [eax]
divsd xmm0, xmm1
mov esi, dword [eax + 4]
mov eax, dword [esp + 0x2c]
mov edx, dword [eax]
mov dword [esp + 0x14], edx
movsd qword [esp + 0x30], xmm5
addsd xmm0, qword [0x5ba2b0]
movsd qword [esp + 0x18], xmm6
movsd qword [esp + 0xa0], xmm0
movsd xmm0, qword [esp + 0x48]
mulsd xmm0, qword [esp + 0x78]
addsd xmm2, xmm0
mulsd xmm0, xmm3
mulsd xmm2, xmm3
movsd qword [esp + 0x48], xmm0
movsd qword [esp + 0x40], xmm2
jmp 0x420e2c
movsd xmm5, qword [esp + 0x30]
movsd xmm6, qword [esp + 0x18]
movaps xmm0, xmm5
lea ecx, [esp + 8]
divsd xmm0, xmm1
movsd qword [esp + 0x78], xmm0
movsd qword [esp + 8], xmm0
call fcn.0040b780
movsd qword [esp + 0x98], xmm0
lea ecx, [esp + 8]
movaps xmm0, xmm6
divsd xmm0, qword [esp + 0x68]
movsd qword [esp + 0x70], xmm0
movsd qword [esp + 8], xmm0
call fcn.0040b780
movsd xmm3, qword [esp + 0x58]
movaps xmm4, xmm0
movsd xmm0, qword [esp + 0xa0]
xorps xmm1, xmm1
ucomisd xmm5, xmm7
movsd qword [edi], xmm0
movsd xmm0, qword [0x5ba2b0]
movsd qword [esi + 8], xmm0
lahf
movsd qword [esi], xmm7
movsd qword [edi + 8], xmm7
test ah, 0x44
jnp 0x420ef1
movsd xmm0, qword [esp + 0x60]
movaps xmm1, xmm3
mulsd xmm0, qword [esp + 0x90]
mulsd xmm1, qword [esp + 0x98]
mulsd xmm0, qword [esp + 0x98]
divsd xmm1, xmm5
divsd xmm0, xmm5
addsd xmm0, qword [edi]
addsd xmm0, xmm1
movsd qword [edi], xmm0
movsd xmm0, qword [esi]
subsd xmm0, xmm1
movsd qword [esi], xmm0
movsd xmm1, qword [edi + 8]
ucomisd xmm6, xmm7
lahf
test ah, 0x44
jnp 0x420f19
movaps xmm0, xmm3
mulsd xmm0, xmm4
divsd xmm0, xmm6
subsd xmm1, xmm0
movsd qword [edi + 8], xmm1
addsd xmm0, qword [esi + 8]
movsd qword [esi + 8], xmm0
movsd xmm2, qword [esp + 0x78]
lea ecx, [esp + 8]
movsd qword [esp + 8], xmm2
call fcn.0040b870
divsd xmm0, qword [esp + 0x50]
lea ecx, [esp + 8]
movsd xmm3, qword [esp + 0x70]
mulsd xmm0, qword [esp + 0x40]
movsd qword [esp + 8], xmm3
addsd xmm0, qword [edi]
movsd qword [edx], xmm0
call fcn.0040b870
divsd xmm0, qword [esp + 0x68]
lea ecx, [esp + 8]
movsd xmm7, qword [esp + 0x48]
movsd xmm1, qword [edi + 8]
mulsd xmm0, xmm7
movsd qword [esp + 8], xmm2
subsd xmm1, xmm0
movsd qword [edx + 8], xmm1
call fcn.0040b870
divsd xmm0, qword [esp + 0x50]
lea ecx, [esp + 8]
mov edx, dword [esp + 0x2c]
mov eax, dword [edx + 4]
movsd xmm1, qword [esi]
mulsd xmm0, xmm7
movsd qword [esp + 8], xmm3
subsd xmm1, xmm0
movsd qword [eax], xmm1
call fcn.0040b870
divsd xmm0, qword [esp + 0x68]
mov edx, dword [esp + 0x24]
mov ecx, eax
mov eax, dword [esp + 0x20]
mulsd xmm0, xmm7
addsd xmm0, qword [esi + 8]
movsd qword [ecx + 8], xmm0
movaps xmm0, xmm6
mulsd xmm0, qword [edi + 8]
movsd xmm1, qword [edi]
xorps xmm1, xmmword [0x5bae70]
mulsd xmm1, xmm5
subsd xmm1, xmm0
movaps xmm0, xmm6
addsd xmm1, qword [eax]
movsd qword [edx], xmm1
movaps xmm2, xmm1
mulsd xmm0, qword [esi + 8]
movsd xmm7, qword [esi]
xorps xmm7, xmmword [0x5bae70]
mulsd xmm7, xmm5
movsd qword [esp + 8], xmm1
subsd xmm7, xmm0
addsd xmm7, qword [eax + 8]
mov eax, edx
mov edx, dword [esp + 0x14]
movsd qword [eax + 8], xmm7
movaps xmm6, xmm7
movsd xmm0, qword [edx]
mulsd xmm0, qword [ecx + 8]
movsd xmm4, qword [ecx]
mulsd xmm4, qword [edx + 8]
mulsd xmm6, qword [edx + 8]
mulsd xmm7, qword [edx]
subsd xmm4, xmm0
movaps xmm0, xmm2
mulsd xmm0, qword [ecx + 8]
mulsd xmm2, qword [ecx]
subsd xmm6, xmm0
subsd xmm2, xmm7
divsd xmm6, xmm4
divsd xmm2, xmm4
movaps xmm0, xmm6
addsd xmm0, qword [esp + 0x30]
movaps xmm1, xmm2
mulsd xmm2, xmm2
movsd qword [esp + 0x30], xmm0
movsd xmm0, qword [esp + 0x18]
addsd xmm0, xmm1
movsd qword [esp + 0x18], xmm0
mulsd xmm6, xmm6
xorps xmm1, xmm1
addsd xmm2, xmm6
movaps xmm0, xmm2
ucomisd xmm1, xmm0
ja 0x4210a3
sqrtsd xmm0, xmm0
jmp 0x4210a8
call fcn.00578320
movsd xmm1, qword [esp + 0x50]
xorps xmm7, xmm7
divsd xmm0, xmm1
mov edx, dword [esp + 0x14]
divsd xmm0, qword [0x5ba530]
comisd xmm0, xmmword [0x5b9d78]
ja 0x420e20
mov eax, dword [ebp + 0x10]
movsd xmm1, qword [esp + 0x30]
movsd xmm0, qword [esp + 0x18]
push dword [esp + 0x20]
movsd qword [eax], xmm1
mov eax, dword [ebp + 0x14]
movsd qword [eax], xmm0
call fcn.0051fadf
add esp, 4
push dword [esp + 0x24]
call fcn.0051fadf
mov eax, dword [esp + 0x2c]
add esp, 4
mov esi, dword [esp + 0x2c]
mov edi, 2
sub eax, esi
mov dword [esp + 0x30], eax
push dword [eax + esi]
call fcn.0051fadf
add esp, 4
push dword [esi]
call fcn.0051fadf
mov eax, dword [esp + 0x34]
lea esi, [esi + 4]
add esp, 4
sub edi, 1
jne 0x421114
push dword [esp + 0x28]
call fcn.0051fadf
add esp, 4
push dword [esp + 0x2c]
call fcn.0051fadf
add esp, 4
pop edi
pop esi
mov esp, ebp
pop ebp
ret 0x18
mov eax, dword [ebp + 0x14]
pop edi
pop esi
movsd qword [eax], xmm0
mov eax, dword [ebp + 0x10]
movsd qword [eax], xmm0
mov esp, ebp
pop ebp
ret 0x18