Function at 0x49a94c
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 [0x5ed01c]
mov edi, dword [0x5ed078]
imul edi, ecx
mov eax, dword [0x5ed090]
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.00460db0
movsd xmm0, qword [0x5ed0b8]
pxor xmm1, xmm1
ucomisd xmm0, xmm1
jp 0x49a9ad
je 0x49a9e5
add esp, 0xfffffff0
mov eax, esi
mov edi, dword [ebp + 0x18]
mov edx, ebx
mov ecx, 0x5ed078
mov dword [esp + 0xc], edi
call fcn.0049973c
mov eax, dword [0x5ed078]
lea edx, [esp + 8]
imul eax, dword [0x5ed01c]
mov dword [esp + 8], eax
push edx
push 0x5ed0b8
push ebx
call fcn.00474650
push 0x5c3ddc
push dword [ebp + 0x18]
push 0x5ed078
push ebx
push esi
call fcn.00491a10
mov edi, dword [0x5ed078]
mov edx, edi
test edi, edi
jle 0x49aaea
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 0x49aac4
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 0x5ed01c
push dword [esp + 0x30]
push edi
mov dword [esp + 0x40], ecx
call fcn.00473d60
mov ecx, dword [esp + 0x34]
mov eax, dword [esp + 0x28]
inc esi
mov edx, dword [esp + 0x3c]
fst qword [ecx + eax*8 + 0x5e1c68]
add ecx, 0x30
fstp qword [ebx + 0x5e1c68]
add ebx, 8
cmp esi, dword [esp + 0x38]
lea edi, [edi + edx*8]
jle 0x49aa75
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 0x49aaea
mov edi, dword [0x5ed078]
mov dword [esp + 0x38], edi
jmp 0x49aa35
mov edx, dword [0x5ed08c]
test edx, edx
jle 0x49afe1
mov esi, dword [esp + 0x6c]
mov ecx, edx
mov ebx, dword [0x5ed078]
mov eax, ebx
neg eax
lea edi, [esi*8]
imul ecx, edi
movsd xmm3, qword [0x5c3e38]
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 0x49b006
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 0x49ad68
mov ecx, dword [esp + 0x5c]
test ecx, ecx
je 0x49abeb
cmp dword [esp + 0x58], 0
jne 0x49aff0
mov ecx, 1
lea edx, [ecx + 8]
cmp ebx, edx
jl 0x49aff0
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 0x49ac43
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 0x49ac2c
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 0x49acdf
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 0x49ac80
jmp 0x49ad31
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 0x49acf0
addpd xmm2, xmm0
movaps xmm0, xmm2
unpckhpd xmm0, xmm2
addsd xmm2, xmm0
cmp esi, ebx
jae 0x49ad6c
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 0x49ad53
jmp 0x49ad6c
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 + 0x5e1ca0]
lea esi, [eax + 1]
mulsd xmm0, xmm2
cmp ebx, esi
mulsd xmm0, xmm2
addsd xmm4, xmm0
jle 0x49afb0
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 0x49af77
mov ecx, dword [esp + 0x5c]
test ecx, ecx
je 0x49ade9
cmp dword [esp + 0x58], 0
jne 0x49affb
mov ecx, 1
lea eax, [ecx + 8]
cmp ebx, eax
jl 0x49affb
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 0x49ae41
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 0x49ae26
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 0x49aeef
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 0x49ae90
jmp 0x49af41
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 0x49af00
mov ebx, dword [esp + 0x54]
addpd xmm1, xmm0
movaps xmm0, xmm1
unpckhpd xmm0, xmm1
addsd xmm1, xmm0
cmp esi, ebx
jae 0x49af7b
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 0x49af62
jmp 0x49af7b
pxor xmm1, xmm1
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x6c]
movsd xmm0, qword [eax + edx*8 + 0x5e1ca8]
inc edx
mulsd xmm0, xmm2
lea edi, [edi + ecx*8]
mulsd xmm0, xmm1
cmp edx, dword [esp + 0x78]
addsd xmm4, xmm0
jb 0x49adc6
lea esi, [esi]
mov esi, dword [esp + 0x40]
mov eax, esi
cmp esi, ebx
jb 0x49abc8
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 0x49ab87
add esp, 0x84
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret 0x14
xor esi, esi
pxor xmm2, xmm2
jmp 0x49ad40
xor esi, esi
pxor xmm1, xmm1
jmp 0x49af54
pxor xmm4, xmm4
jmp 0x49afc2