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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
push esi
push edi
push ebx
sub esp, 0x84
mov esi, eax
mov dword [esp + 0x30], ecx
mov ebx, edx
mov ecx, dword [0x58b99c]
mov edi, dword [0x58b764]
imul edi, ecx
mov eax, dword [0x58b77c]
lea edx, [ecx*8]
mov dword [esp + 0x6c], eax
lea eax, [esp + 0x1c]
mov dword [esp + 0x3c], ecx
mov dword [esp + 4], edx
mov dword [esp + 0x1c], edi
push eax
push ebx
call fcn.0041a1b0
movsd xmm0, qword [0x58b7a0]
pxor xmm1, xmm1
ucomisd xmm0, xmm1
jp 0x45196d
je 0x4519a5
add esp, 0xfffffff0
mov eax, esi
mov edi, dword [ebp + 0x18]
mov edx, ebx
mov ecx, 0x58b764
mov dword [esp + 0xc], edi
call fcn.004506fc
mov eax, dword [0x58b764]
lea edx, [esp + 8]
imul eax, dword [0x58b99c]
mov dword [esp + 8], eax
push edx
push 0x58b7a0
push ebx
call fcn.00431470
push 0x55f7ec
push dword [ebp + 0x18]
push 0x58b764
push ebx
push esi
call fcn.0042b6d0
mov edi, dword [0x58b764]
mov edx, edi
test edi, edi
jle 0x451aaa
mov esi, ebx
mov ecx, 0x30
sub esi, dword [esp + 4]
mov eax, 8
mov dword [esp + 0x28], 1
mov dword [esp + 0x38], edx
mov dword [esp + 0xc], esi
mov dword [esp + 0x18], edi
mov edx, dword [esp + 0x28]
mov esi, dword [esp + 4]
mov dword [esp + 0x24], ebx
mov dword [esp + 0x34], ecx
mov dword [esp + 0x20], edx
cmp edx, dword [esp + 0x38]
jg 0x451a84
mov edi, dword [esp + 0xc]
mov dword [esp + 0x10], ecx
mov dword [esp + 4], esi
mov dword [esp], ebx
add edi, esi
mov dword [esp + 0x2c], edi
lea edi, [eax + ecx]
mov dword [esp + 0x14], eax
mov dword [esp + 0x28], edx
mov ebx, edi
mov esi, dword [esp + 0x20]
mov ecx, dword [esp + 0x34]
mov edi, dword [esp + 0x24]
push 0x58b99c
push dword [esp + 0x30]
push edi
mov dword [esp + 0x40], ecx
call fcn.00430b80
mov ecx, dword [esp + 0x34]
mov eax, dword [esp + 0x28]
inc esi
mov edx, dword [esp + 0x3c]
fst qword [ecx + eax*8 + 0x57c688]
add ecx, 0x30
fstp qword [ebx + 0x57c688]
add ebx, 8
cmp esi, dword [esp + 0x38]
lea edi, [edi + edx*8]
jle 0x451a35
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x28]
mov esi, dword [esp + 4]
mov ebx, dword [esp]
mov edi, dword [esp + 0x3c]
inc edx
add ecx, 0x30
add eax, 8
cmp edx, dword [esp + 0x18]
lea ebx, [ebx + edi*8]
lea esi, [esi + edi*8]
jg 0x451aaa
mov edi, dword [0x58b764]
mov dword [esp + 0x38], edi
jmp 0x4519f5
mov edx, dword [0x58b778]
test edx, edx
jle 0x451fa1
mov esi, dword [esp + 0x6c]
mov ecx, edx
mov ebx, dword [0x58b764]
mov eax, ebx
neg eax
lea edi, [esi*8]
imul ecx, edi
movsd xmm3, qword [0x55f848]
mov dword [esp + 0xc], ecx
mov ecx, dword [ebp + 0x14]
mov dword [esp + 0x7c], eax
mov eax, ecx
mov dword [esp + 0x4c], edi
sub eax, edi
mov edi, edx
sub edi, ebx
mov dword [esp + 0x10], edi
mov dword [esp + 0x18], eax
mov dword [esp + 0x24], 0
mov dword [esp + 0x34], edx
lea edi, [ecx + edi*8]
mov dword [esp + 0x28], edi
mov edi, esi
shl edi, 4
lea esi, [ebx*8]
mov dword [esp + 0x14], edi
add eax, edi
lea edi, [eax + edx*8]
mov eax, dword [esp + 0xc]
add edi, eax
sub edi, esi
mov dword [esp + 0x38], edi
lea edi, [eax + edx*8]
add edi, ecx
lea ecx, [ecx + edx*8]
sub ecx, esi
sub edi, esi
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x24]
mov edx, ecx
mov dword [esp + 0x50], edi
test ebx, ebx
jle 0x451fc6
mov eax, dword [esp + 0x28]
mov esi, dword [esp + 0x2c]
pxor xmm4, xmm4
mov dword [esp + 0x3c], 0
mov dword [esp + 0x20], ecx
add eax, ecx
and eax, 0xf
lea edi, [esi + ecx]
mov esi, eax
and esi, 7
mov dword [esp + 0x5c], eax
mov dword [esp + 0x58], esi
mov dword [esp + 0x64], edi
mov dword [esp + 0x24], edx
mov eax, dword [esp + 0x3c]
cmp dword [esp + 0x7c], 0
jns 0x451d28
mov ecx, dword [esp + 0x5c]
test ecx, ecx
je 0x451bab
cmp dword [esp + 0x58], 0
jne 0x451fb0
mov ecx, 1
lea edx, [ecx + 8]
cmp ebx, edx
jl 0x451fb0
mov edi, dword [esp + 0x4c]
mov esi, ebx
imul edi, eax
sub esi, ecx
pxor xmm0, xmm0
mov edx, dword [esp + 0x50]
and esi, 7
neg esi
add esi, ebx
mov dword [esp + 0x44], edi
add edx, edi
mov dword [esp + 0x48], edx
test ecx, ecx
jbe 0x451c03
mov dword [esp + 0x54], ebx
xor edx, edx
mov ebx, dword [esp + 0x48]
mov edi, dword [esp + 0x64]
movsd xmm1, qword [ebx + edx*8]
mulsd xmm1, qword [edi + edx*8]
inc edx
cmp edx, ecx
addsd xmm0, xmm1
jb 0x451bec
mov ebx, dword [esp + 0x54]
mov edx, dword [ebp + 0x14]
mov edi, dword [esp + 0xc]
pxor xmm2, xmm2
movsd xmm2, xmm0
add edx, edi
mov edi, dword [esp + 0x10]
lea edx, [edx + edi*8]
add edx, dword [esp + 0x44]
lea edi, [edx + ecx*8]
test edi, 0xf
je 0x451c9f
mov edx, dword [esp + 0x48]
mov edi, dword [esp + 0x64]
pxor xmm0, xmm0
lea esi, [esi]
lea edi, [edi]
movsd xmm1, qword [edx + ecx*8]
movsd xmm5, qword [edx + ecx*8 + 0x10]
movhpd xmm1, qword [edx + ecx*8 + 8]
movhpd xmm5, qword [edx + ecx*8 + 0x18]
mulpd xmm1, xmmword [edi + ecx*8]
mulpd xmm5, xmmword [edi + ecx*8 + 0x10]
addpd xmm2, xmm1
addpd xmm0, xmm5
movsd xmm6, qword [edx + ecx*8 + 0x20]
movsd xmm7, qword [edx + ecx*8 + 0x30]
movhpd xmm6, qword [edx + ecx*8 + 0x28]
movhpd xmm7, qword [edx + ecx*8 + 0x38]
mulpd xmm6, xmmword [edi + ecx*8 + 0x20]
mulpd xmm7, xmmword [edi + ecx*8 + 0x30]
addpd xmm2, xmm6
addpd xmm0, xmm7
add ecx, 8
cmp ecx, esi
jb 0x451c40
jmp 0x451cf1
mov edx, dword [esp + 0x48]
mov edi, dword [esp + 0x64]
pxor xmm0, xmm0
nop
lea esi, [esi]
movaps xmm1, xmmword [edx + ecx*8]
movaps xmm5, xmmword [edx + ecx*8 + 0x10]
mulpd xmm1, xmmword [edi + ecx*8]
mulpd xmm5, xmmword [edi + ecx*8 + 0x10]
addpd xmm2, xmm1
addpd xmm0, xmm5
movaps xmm6, xmmword [edx + ecx*8 + 0x20]
movaps xmm7, xmmword [edx + ecx*8 + 0x30]
mulpd xmm6, xmmword [edi + ecx*8 + 0x20]
mulpd xmm7, xmmword [edi + ecx*8 + 0x30]
addpd xmm2, xmm6
addpd xmm0, xmm7
add ecx, 8
cmp ecx, esi
jb 0x451cb0
addpd xmm2, xmm0
movaps xmm0, xmm2
unpckhpd xmm0, xmm2
addsd xmm2, xmm0
cmp esi, ebx
jae 0x451d2c
mov edx, dword [esp + 0x4c]
imul edx, eax
add edx, dword [esp + 0x50]
mov ecx, dword [esp + 0x64]
movsd xmm0, qword [edx + esi*8]
mulsd xmm0, qword [ecx + esi*8]
inc esi
cmp esi, ebx
addsd xmm2, xmm0
jb 0x451d13
jmp 0x451d2c
pxor xmm2, xmm2
mov edx, eax
lea ecx, [eax*8]
sub ecx, eax
neg edx
shl ecx, 3
lea esi, [edx + ebx - 1]
mov dword [esp + 0x78], esi
movsd xmm0, qword [ecx + 0x57c6c0]
lea esi, [eax + 1]
mulsd xmm0, xmm2
cmp ebx, esi
mulsd xmm0, xmm2
addsd xmm4, xmm0
jle 0x451f70
imul eax, dword [esp + 0x4c]
xor edx, edx
mulsd xmm2, xmm3
mov edi, dword [esp + 0x38]
mov dword [esp + 0x3c], eax
mov dword [esp + 0x40], esi
add edi, eax
mov dword [esp + 0x74], edi
mov dword [esp + 0x70], ecx
mov edi, edx
cmp dword [esp + 0x7c], 0
jns 0x451f37
mov ecx, dword [esp + 0x5c]
test ecx, ecx
je 0x451da9
cmp dword [esp + 0x58], 0
jne 0x451fbb
mov ecx, 1
lea eax, [ecx + 8]
cmp ebx, eax
jl 0x451fbb
mov esi, ebx
sub esi, ecx
pxor xmm0, xmm0
mov eax, dword [esp + 0x74]
and esi, 7
neg esi
add esi, ebx
test ecx, ecx
lea eax, [eax + edi]
jbe 0x451e01
mov dword [esp + 0x68], 0
mov dword [esp + 0x60], edx
mov dword [esp + 0x54], ebx
mov edx, dword [esp + 0x68]
mov ebx, dword [esp + 0x64]
movsd xmm1, qword [eax + edx*8]
mulsd xmm1, qword [ebx + edx*8]
inc edx
cmp edx, ecx
addsd xmm0, xmm1
jb 0x451de6
mov edx, dword [esp + 0x60]
mov ebx, dword [esp + 0x54]
mov dword [esp], eax
mov dword [esp + 4], esi
pxor xmm1, xmm1
mov esi, dword [esp + 0x14]
movsd xmm1, xmm0
mov eax, dword [esp + 0x18]
add eax, esi
mov esi, dword [esp + 0x10]
add eax, dword [esp + 0xc]
lea eax, [eax + esi*8]
add eax, dword [esp + 0x3c]
add eax, edi
lea esi, [eax + ecx*8]
mov eax, dword [esp]
test esi, 0xf
mov esi, dword [esp + 4]
je 0x451eaf
mov dword [esp + 0x54], ebx
mov ebx, dword [esp + 0x64]
pxor xmm0, xmm0
lea esi, [esi]
movsd xmm5, qword [eax + ecx*8]
movhpd xmm5, qword [eax + ecx*8 + 8]
mulpd xmm5, xmmword [ebx + ecx*8]
movsd xmm6, qword [eax + ecx*8 + 0x10]
movhpd xmm6, qword [eax + ecx*8 + 0x18]
mulpd xmm6, xmmword [ebx + ecx*8 + 0x10]
addpd xmm1, xmm5
addpd xmm0, xmm6
movsd xmm7, qword [eax + ecx*8 + 0x20]
movsd xmm5, qword [eax + ecx*8 + 0x30]
movhpd xmm7, qword [eax + ecx*8 + 0x28]
movhpd xmm5, qword [eax + ecx*8 + 0x38]
mulpd xmm7, xmmword [ebx + ecx*8 + 0x20]
mulpd xmm5, xmmword [ebx + ecx*8 + 0x30]
addpd xmm1, xmm7
addpd xmm0, xmm5
add ecx, 8
cmp ecx, esi
jb 0x451e50
jmp 0x451f01
mov dword [esp + 0x54], ebx
mov ebx, dword [esp + 0x64]
pxor xmm0, xmm0
nop
lea esi, [esi]
movaps xmm5, xmmword [eax + ecx*8]
mulpd xmm5, xmmword [ebx + ecx*8]
movaps xmm6, xmmword [eax + ecx*8 + 0x10]
mulpd xmm6, xmmword [ebx + ecx*8 + 0x10]
addpd xmm1, xmm5
addpd xmm0, xmm6
movaps xmm7, xmmword [eax + ecx*8 + 0x20]
movaps xmm5, xmmword [eax + ecx*8 + 0x30]
mulpd xmm7, xmmword [ebx + ecx*8 + 0x20]
mulpd xmm5, xmmword [ebx + ecx*8 + 0x30]
addpd xmm1, xmm7
addpd xmm0, xmm5
add ecx, 8
cmp ecx, esi
jb 0x451ec0
mov ebx, dword [esp + 0x54]
addpd xmm1, xmm0
movaps xmm0, xmm1
unpckhpd xmm0, xmm1
addsd xmm1, xmm0
cmp esi, ebx
jae 0x451f3b
mov eax, dword [esp + 0x74]
mov ecx, dword [esp + 0x64]
add eax, edi
movsd xmm0, qword [eax + esi*8]
mulsd xmm0, qword [ecx + esi*8]
inc esi
cmp esi, ebx
addsd xmm1, xmm0
jb 0x451f22
jmp 0x451f3b
pxor xmm1, xmm1
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x6c]
movsd xmm0, qword [eax + edx*8 + 0x57c6c8]
inc edx
mulsd xmm0, xmm2
lea edi, [edi + ecx*8]
mulsd xmm0, xmm1
cmp edx, dword [esp + 0x78]
addsd xmm4, xmm0
jb 0x451d86
lea esi, [esi]
mov esi, dword [esp + 0x40]
mov eax, esi
cmp esi, ebx
jb 0x451b88
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x24]
sqrtsd xmm4, xmm4
mov eax, dword [esp + 0x30]
mov esi, dword [esp + 0x6c]
movsd qword [eax + edx*8], xmm4
inc edx
cmp edx, dword [esp + 0x34]
lea ecx, [ecx + esi*8]
jb 0x451b47
add esp, 0x84
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret 0x14
xor esi, esi
pxor xmm2, xmm2
jmp 0x451d00
xor esi, esi
pxor xmm1, xmm1
jmp 0x451f14
pxor xmm4, xmm4
jmp 0x451f82