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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
movsd xmm2, qword [0x1017c1d8]
sub esp, 0x78
movsd xmm1, qword [ebp + 0x14]
comisd xmm1, xmm2
push esi
push edi
jbe 0x100651dc
movsd xmm0, qword [0x1017d118]
subsd xmm0, xmm1
jmp 0x100651df
movaps xmm0, xmm1
divsd xmm0, xmm2
mov ecx, dword [ebp + 0xc]
xor edx, edx
mov esi, 0x20
mov dword [esp + 0x34], 0
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], esi
mov eax, dword [ecx]
movsd qword [esp + 0x48], xmm0
xorps xmm0, xmm0
movsd qword [esp + 0x68], xmm0
movsd qword [esp + 0x50], xmm0
movsd qword [esp + 0x38], xmm0
movsd qword [esp + 0x28], xmm0
movsd qword [esp + 0x20], xmm0
movsd qword [esp + 0x58], xmm0
cmp eax, 1
jle 0x1006523e
shr eax, 1
add esi, esi
cmp eax, 1
ja 0x10065231
mov dword [esp + 0x14], esi
movd xmm0, esi
add esi, 2
pshufd xmm0, xmm0, 0
push 8
push esi
movaps xmmword [esp + 0x78], xmm0
call fcn.100a52d3
shr esi, 1
mov edi, eax
shl esi, 3
push esi
mov dword [esp + 0x50], edi
call fcn.100a843f
mov dword [esp + 0x24], eax
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax]
mov eax, dword [ebp + 8]
shl ecx, 3
push ecx
push dword [eax]
push edi
call fcn.100a1aa0
mov esi, dword [esp + 0x2c]
push esi
call fcn.100661a0
push dword [0x1025d5b4]
push dword [0x1025d5b0]
push edi
push 1
push esi
call fcn.10077f40
movsd xmm0, qword [edi + 8]
xor eax, eax
movsd qword [edi + esi*8], xmm0
add esp, 0x30
mov dword [esp + 0x1c], eax
xorps xmm0, xmm0
movsd qword [edi + 8], xmm0
movsd qword [edi + esi*8 + 8], xmm0
test esi, esi
js 0x10065417
nop dword [eax + eax]
fld qword [edi + eax*8 + 8]
fld qword [edi + eax*8]
call fcn.100b1130
movsd xmm2, qword [0x1017d450]
xor ecx, ecx
fstp qword [esp + 0x60]
movsd xmm1, qword [esp + 0x60]
movaps xmm0, xmm1
mov edx, dword [esp + 0x18]
subsd xmm0, qword [esp + 0x38]
movsd qword [esp + 0x38], xmm1
comisd xmm2, xmm0
seta cl
xor eax, eax
comisd xmm0, xmmword [0x1017d400]
seta al
sub ecx, eax
movd xmm0, ecx
xor ecx, ecx
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x1017d408]
addsd xmm0, qword [esp + 0x28]
addsd xmm1, xmm0
movsd qword [esp + 0x28], xmm0
movaps xmm0, xmm1
subsd xmm0, qword [esp + 0x20]
movsd qword [esp + 0x20], xmm1
movsd xmm1, qword [0x1017d448]
comisd xmm1, xmm0
seta cl
xor eax, eax
comisd xmm0, xmmword [0x1017d3e8]
seta al
sub ecx, eax
movd xmm0, ecx
mov ecx, dword [esp + 0x1c]
mov eax, ecx
cvtdq2pd xmm0, xmm0
sar eax, 1
mulsd xmm0, qword [0x1017d3f8]
andps xmm0, xmmword [0x10174100]
addsd xmm0, qword [esp + 0x58]
movsd qword [edx + eax*8], xmm0
movsd xmm1, qword [edi + ecx*8 + 8]
movsd qword [esp + 0x58], xmm0
movsd xmm0, qword [edi + ecx*8]
mulsd xmm1, xmm1
mulsd xmm0, xmm0
addsd xmm0, xmm1
xorps xmm1, xmm1
ucomisd xmm1, xmm0
ja 0x100653be
sqrtsd xmm0, xmm0
jmp 0x100653c3
call fcn.100b1f90
ucomisd xmm0, qword [0x101740f0]
lahf
test ah, 0x44
jnp 0x100653d8
call fcn.100b1b30
jmp 0x100653f6
cmp dword [0x102c0568], 0
jle 0x100653ee
push str.log_0_
call fcn.1005f8e0
add esp, 4
movsd xmm0, qword [0x1017d458]
mov eax, dword [esp + 0x1c]
movsd qword [edi + eax*8], xmm0
xorps xmm0, xmm0
movsd qword [edi + eax*8 + 8], xmm0
add eax, 2
mov dword [esp + 0x1c], eax
cmp eax, esi
jle 0x100652d0
movsd xmm0, qword [edi + esi*8]
push esi
movsd qword [edi + 8], xmm0
call fcn.100661a0
push dword [0x1025d5b4]
push dword [0x1025d5b0]
push edi
push 0xffffffffffffffff
push esi
call fcn.10077f40
movsd xmm3, qword [0x10178b48]
add esp, 0x18
xor ecx, ecx
test esi, esi
jle 0x10065545
cmp esi, 8
jb 0x100654c7
mov eax, esi
and eax, 0x80000007
jns 0x10065464
dec eax
or eax, 0xfffffff8
inc eax
cvtdq2pd xmm0, qword [esp + 0x70]
mov edx, esi
sub edx, eax
lea eax, [edi + 0x20]
movaps xmm2, xmmword [0x1017d460]
divpd xmm2, xmm0
nop dword [eax]
movups xmm0, xmmword [eax - 0x20]
lea eax, [eax + 0x40]
add ecx, 8
movaps xmm1, xmm2
mulpd xmm1, xmm0
movups xmmword [eax - 0x60], xmm1
movaps xmm1, xmm2
movups xmm0, xmmword [eax - 0x50]
mulpd xmm0, xmm2
movups xmmword [eax - 0x50], xmm0
movups xmm0, xmmword [eax - 0x40]
mulpd xmm1, xmm0
movups xmmword [eax - 0x40], xmm1
movaps xmm1, xmm2
movups xmm0, xmmword [eax - 0x30]
mulpd xmm1, xmm0
movups xmmword [eax - 0x30], xmm1
cmp ecx, edx
jl 0x10065480
cmp ecx, esi
jge 0x10065545
mov eax, esi
sub eax, ecx
cmp eax, 4
jl 0x10065520
movd xmm0, esi
lea eax, [ecx + 2]
cvtdq2pd xmm0, xmm0
lea eax, [edi + eax*8]
mov edx, esi
sub edx, ecx
sub edx, 4
shr edx, 2
inc edx
movaps xmm1, xmm3
divsd xmm1, xmm0
lea ecx, [ecx + edx*4]
unpcklpd xmm1, xmm1
nop word [eax + eax]
lea eax, [eax + 0x20]
movups xmm0, xmmword [eax - 0x30]
mulpd xmm0, xmm1
movups xmmword [eax - 0x30], xmm0
movups xmm0, xmmword [eax - 0x20]
mulpd xmm0, xmm1
movups xmmword [eax - 0x20], xmm0
sub edx, 1
jne 0x10065500
cmp ecx, esi
jge 0x10065545
movd xmm0, esi
movaps xmm1, xmm3
cvtdq2pd xmm0, xmm0
divsd xmm1, xmm0
movaps xmm0, xmm1
mulsd xmm0, qword [edi + ecx*8]
movsd qword [edi + ecx*8], xmm0
inc ecx
cmp ecx, esi
jl 0x10065533
mov eax, esi
mov ecx, 1
cdq
sub eax, edx
mov edx, eax
sar edx, 1
mov dword [esp + 0x28], edx
cmp edx, ecx
jle 0x1006563c
xorps xmm1, xmm1
cmp edx, 4
jle 0x10065612
lea ecx, [edx + 3]
lea ecx, [edi + ecx*8]
mov dword [esp + 0x1c], ecx
lea esi, [edx + 1]
lea ecx, [edx - 5]
shr ecx, 2
lea eax, [edi + 0x18]
inc ecx
lea esi, [edi + esi*8]
mov dword [esp + 0x20], ecx
lea ecx, [ecx*4 + 1]
mov dword [esp + 0x38], ecx
lea ecx, [edx + 4]
lea ecx, [edi + ecx*8]
nop word [eax + eax]
movsd xmm0, qword [eax - 0x10]
mov edx, dword [esp + 0x1c]
addsd xmm0, xmm0
movsd qword [eax - 0x10], xmm0
movsd qword [esi], xmm1
movsd xmm0, qword [eax - 8]
addsd xmm0, xmm0
movsd qword [eax - 8], xmm0
movsd qword [esi + 8], xmm1
add esi, 0x20
movsd xmm0, qword [eax]
addsd xmm0, xmm0
movsd qword [eax], xmm0
movsd qword [edx], xmm1
add edx, 0x20
movsd xmm0, qword [eax + 8]
addsd xmm0, xmm0
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x28]
movsd qword [eax + 8], xmm0
add eax, 0x20
movsd qword [ecx], xmm1
add ecx, 0x20
sub dword [esp + 0x20], 1
jne 0x100655a0
mov ecx, dword [esp + 0x38]
mov esi, dword [esp + 0x14]
cmp ecx, edx
jge 0x1006563c
mov eax, esi
cdq
sub eax, edx
sar eax, 1
add eax, ecx
lea edx, [edi + eax*8]
mov eax, dword [esp + 0x28]
movsd xmm0, qword [edi + ecx*8]
addsd xmm0, xmm0
movsd qword [edi + ecx*8], xmm0
inc ecx
movsd qword [edx], xmm1
add edx, 8
cmp ecx, eax
jl 0x10065622
push esi
call fcn.100661a0
push dword [0x1025d5b4]
push dword [0x1025d5b0]
push edi
push 1
push esi
call fcn.10077f40
mov ecx, 2
add esp, 0x18
cmp esi, ecx
jle 0x100656e3
movsd xmm3, qword [0x101735a0]
lea edx, [edi + 0x18]
movsd xmm0, qword [esp + 0x48]
mov eax, esi
sar eax, 1
subsd xmm3, xmm0
movd xmm4, esi
mov edi, eax
cvtdq2pd xmm4, xmm4
mov dword [esp + 0x38], eax
nop
movd xmm1, ecx
mov eax, ecx
cvtdq2pd xmm1, xmm1
mov esi, dword [esp + 0x18]
add ecx, 2
sar eax, 1
movsd xmm2, qword [esi + eax*8]
mov eax, esi
mulsd xmm1, xmm0
movaps xmm0, xmm2
mov esi, dword [esp + 0x14]
addsd xmm0, qword [edx]
divsd xmm1, xmm4
mulsd xmm0, xmm3
mulsd xmm1, qword [eax + edi*8]
addsd xmm1, xmm0
movsd xmm0, qword [esp + 0x48]
subsd xmm1, xmm2
movsd qword [edx], xmm1
add edx, 0x10
cmp ecx, esi
jl 0x10065690
mov edi, dword [esp + 0x44]
movsd xmm0, qword [edi]
call fcn.100b1850
movsd qword [edi], xmm0
movsd xmm0, qword [edi + 8]
call fcn.100b1850
mov eax, 2
movsd qword [edi + 8], xmm0
mov dword [esp + 0x1c], eax
cmp esi, eax
jle 0x10065786
movsd xmm0, qword [edi + eax*8]
call fcn.100b1850
mov eax, dword [esp + 0x1c]
movsd qword [esp + 0x58], xmm0
movsd xmm0, qword [edi + eax*8 + 8]
call fcn.100b1690
mulsd xmm0, qword [esp + 0x58]
mov eax, dword [esp + 0x1c]
movsd qword [edi + eax*8], xmm0
movsd xmm0, qword [edi + eax*8 + 8]
call fcn.100b1dc0
mov eax, dword [esp + 0x1c]
mulsd xmm0, qword [esp + 0x58]
movsd qword [edi + eax*8 + 8], xmm0
add eax, 2
mov dword [esp + 0x1c], eax
cmp eax, esi
jl 0x10065710
push esi
call fcn.100661a0
push dword [0x1025d5b4]
push dword [0x1025d5b0]
push edi
push 0xffffffffffffffff
push esi
call fcn.10077f40
add esp, 0x18
xor ecx, ecx
jmp 0x100657ae
push esi
call fcn.100661a0
push dword [0x1025d5b4]
push dword [0x1025d5b0]
push edi
push 0xffffffffffffffff
push esi
call fcn.10077f40
add esp, 0x18
xor ecx, ecx
test esi, esi
jle 0x100658b4
cmp esi, 8
jb 0x1006582b
mov eax, esi
xor ecx, ecx
and eax, 0x80000007
jns 0x100657c7
dec eax
or eax, 0xfffffff8
inc eax
cvtdq2pd xmm0, qword [esp + 0x70]
mov edx, esi
sub edx, eax
lea eax, [edi + 0x20]
movaps xmm2, xmmword [0x1017d460]
divpd xmm2, xmm0
nop
movups xmm0, xmmword [eax - 0x20]
lea eax, [eax + 0x40]
add ecx, 8
movaps xmm1, xmm2
mulpd xmm1, xmm0
movups xmmword [eax - 0x60], xmm1
movaps xmm1, xmm2
movups xmm0, xmmword [eax - 0x50]
mulpd xmm1, xmm0
movups xmmword [eax - 0x50], xmm1
movaps xmm1, xmm2
movups xmm0, xmmword [eax - 0x40]
mulpd xmm1, xmm0
movups xmmword [eax - 0x40], xmm1
movups xmm0, xmmword [eax - 0x30]
mulpd xmm0, xmm2
movups xmmword [eax - 0x30], xmm0
cmp ecx, edx
jl 0x100657e0
cmp ecx, esi
jge 0x100658b4
movsd xmm6, qword [0x10178b48]
mov eax, esi
sub eax, ecx
cmp eax, 4
jl 0x10065887
movd xmm0, esi
lea eax, [ecx + 2]
cvtdq2pd xmm0, xmm0
lea eax, [edi + eax*8]
mov edx, esi
sub edx, ecx
sub edx, 4
shr edx, 2
inc edx
movaps xmm1, xmm6
divsd xmm1, xmm0
lea ecx, [ecx + edx*4]
unpcklpd xmm1, xmm1
lea eax, [eax + 0x20]
movups xmm0, xmmword [eax - 0x30]
mulpd xmm0, xmm1
movups xmmword [eax - 0x30], xmm0
movups xmm0, xmmword [eax - 0x20]
mulpd xmm0, xmm1
movups xmmword [eax - 0x20], xmm0
sub edx, 1
jne 0x10065863
cmp ecx, esi
jge 0x100658bc
movd xmm0, esi
movaps xmm1, xmm6
cvtdq2pd xmm0, xmm0
divsd xmm1, xmm0
nop word [eax + eax]
movaps xmm0, xmm1
mulsd xmm0, qword [edi + ecx*8]
movsd qword [edi + ecx*8], xmm0
inc ecx
cmp ecx, esi
jl 0x100658a0
jmp 0x100658bc
movsd xmm6, qword [0x10178b48]
mov ecx, dword [esp + 0x18]
mov eax, esi
sar eax, 1
movsd xmm7, qword [0x102511a0]
movsd xmm0, qword [ecx + eax*8]
xor eax, eax
divsd xmm0, qword [0x1017d3f8]
addsd xmm0, xmm7
cvttsd2si ecx, xmm0
mov dword [esp + 0x44], ecx
test ecx, ecx
js 0x100659a6
movsd xmm4, qword [0x10174100]
xor edx, edx
movsd xmm3, qword [esp + 0x68]
xor ecx, ecx
movsd xmm7, qword [esp + 0x50]
xor esi, esi
nop dword [eax]
movsd xmm2, qword [edi + ecx]
movaps xmm0, xmm2
addsd xmm3, xmm0
movaps xmm0, xmm7
andps xmm0, xmm4
movaps xmm1, xmm3
andps xmm1, xmm4
comisd xmm1, xmm0
jbe 0x10065933
movaps xmm7, xmm3
mov esi, eax
comisd xmm2, xmmword [edx + edi]
jbe 0x10065940
mov dword [esp + 0x34], eax
mov edx, ecx
inc eax
add ecx, 8
cmp eax, dword [esp + 0x44]
jle 0x10065910
mov dword [esp + 0x10], esi
test esi, esi
mov esi, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
movsd qword [esp + 0x50], xmm7
movsd xmm7, qword [0x102511a0]
je 0x100659a8
nop dword [eax + eax]
movsd xmm3, qword [edi + ecx*8 - 8]
movsd xmm2, qword [edi + ecx*8]
movaps xmm1, xmm3
movaps xmm0, xmm2
andps xmm1, xmm4
andps xmm0, xmm4
comisd xmm1, xmm0
jbe 0x100659a0
mulsd xmm2, xmm3
comisd xmm2, xmmword [0x101740f0]
jbe 0x100659a0
sub ecx, 1
jne 0x10065970
mov dword [esp + 0x10], ecx
jmp 0x100659a8
xor ecx, ecx
movsd xmm5, qword [esp + 0x48]
xorps xmm4, xmm4
ucomisd xmm5, xmm4
lahf
test ah, 0x44
jp 0x100659c6
xor edx, edx
mov dword [esp + 0x14], edx
jmp 0x10065a6a
ucomisd xmm5, qword [0x101735a0]
mov eax, dword [ebp + 0xc]
mov edx, dword [eax]
lahf
test ah, 0x44
jp 0x100659ed
mov eax, edx
cdq
sub eax, edx
mov edx, ecx
sar eax, 1
sub edx, eax
mov dword [esp + 0x14], edx
jmp 0x10065a6a
movsd xmm0, qword [0x1017d3d8]
subsd xmm6, xmm5
movd xmm3, edx
subsd xmm4, xmm5
cvtdq2pd xmm3, xmm3
mov edx, ecx
mulsd xmm6, qword [0x1017d390]
mulsd xmm4, qword [0x1017d390]
subsd xmm0, xmm6
addsd xmm4, qword [0x1017d3d8]
mulsd xmm0, xmm3
mulsd xmm4, xmm3
addsd xmm0, xmm7
addsd xmm4, xmm7
cvttsd2si eax, xmm0
and eax, 0xfffffffc
sub edx, eax
cvttsd2si eax, xmm4
mov dword [esp + 0x14], edx
add eax, 3
and eax, 0xfffffffc
sub eax, edx
inc eax
add eax, ecx
mov ecx, dword [ebp + 0xc]
mov dword [ecx], eax
shl eax, 3
push eax
mov eax, dword [ebp + 8]
push dword [eax]
call fcn.100a94df
mov ecx, dword [ebp + 8]
add esp, 8
mov dword [ecx], eax
mov eax, dword [ebp + 0xc]
xor ecx, ecx
movsd xmm1, qword [ebp + 0x14]
movsd xmm2, qword [0x1017c1d8]
mov eax, dword [eax]
test eax, eax
jle 0x10065ac9
lea edx, [esi - 1]
mov dword [esp + 0x44], edx
mov edx, dword [ebp + 8]
mov edx, dword [edx]
mov dword [esp + 0x28], edx
mov edx, dword [esp + 0x14]
comisd xmm1, xmm2
jbe 0x10065aa1
sub eax, ecx
dec eax
jmp 0x10065aa3
mov eax, ecx
add eax, edx
inc ecx
add eax, esi
and eax, dword [esp + 0x44]
movsd xmm0, qword [edi + eax*8]
mov eax, dword [esp + 0x28]
movsd qword [eax], xmm0
add eax, 8
mov dword [esp + 0x28], eax
mov eax, dword [ebp + 0xc]
mov eax, dword [eax]
cmp ecx, eax
jl 0x10065a96
comisd xmm1, xmm2
mov edx, dword [esp + 0x10]
jbe 0x10065adb
mov eax, edx
sub eax, dword [esp + 0x14]
jmp 0x10065ae4
mov ecx, dword [esp + 0x14]
sub eax, edx
dec ecx
add eax, ecx
mov dword [esp + 0x1c], eax
mov eax, dword [ebp + 0x10]
mov ecx, dword [esp + 0x1c]
mov dword [eax], ecx
cmp dword [0x102c0568], 0
jle 0x10065b82
mov eax, dword [ebp + 0xc]
sub esp, 8
movd xmm1, dword [esp + 0x24]
movsd xmm2, qword [0x1017d118]
cvtdq2pd xmm1, xmm1
mov ecx, dword [eax]
sar esi, 1
lea eax, [ecx - 1]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mov eax, dword [esp + 0x3c]
mulsd xmm1, xmm2
divsd xmm1, xmm0
movsd xmm0, qword [edi + eax*8]
subsd xmm2, xmm1
movsd qword [esp], xmm2
push dword [esp + 0x24]
push ecx
sub esp, 8
movsd qword [esp], xmm0
movsd xmm0, qword [esp + 0x68]
push eax
mov eax, dword [esp + 0x34]
sub esp, 8
movsd qword [esp], xmm0
movsd xmm0, qword [eax + esi*8]
divsd xmm0, qword [0x1017d3f8]
push edx
sub esp, 8
movsd qword [esp], xmm0
push str.nPI_g_peak_sum__i_g__val__i_g___len_i_post_i___g___
call fcn.1005f8e0
add esp, 0x34
push dword [esp + 0x18]
call fcn.100a80a4
push edi
call fcn.100a80a4
add esp, 8
pop edi
pop esi
mov esp, ebp
pop ebp
ret