Function at 0x101e8580
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x420
mov eax, dword [0x102e5cc0]
xor eax, esp
mov dword [esp + 0x41c], eax
mov eax, dword [ebp + 8]
push esi
mov dword [esp + 0x24], eax
mov eax, dword [ebp + 0x14]
mov esi, eax
imul esi, dword [ebp + 0x18]
push edi
mov edi, dword [ebp + 0xc]
mov dword [esp + 0x2c], edi
mov dword [esp + 0x18], eax
cmp esi, 0x180
jle 0x101e85d3
push 0x37
push str.C:_vcpkg_2024.03.25_buildtreesopus_src_v1.4_cac4cc030e.clean_silk_float_burg_modified_FLP.c
push str.assertion_failed:_subfr_length__nb_subfr___MAX_FRAME_SIZE
call fcn.101ace10
add esp, 0xc
push esi
push edi
call fcn.101ddf30
push 0xc0
lea eax, [esp + 0x2ac]
push 0
fst qword [esp + 0x48]
push eax
fstp qword [esp + 0x54]
call fcn.1010f560
mov eax, dword [ebp + 0x18]
add esp, 0x14
test eax, eax
jle 0x101e868e
mov edx, dword [ebp + 0x1c]
mov ecx, edi
mov eax, dword [esp + 0x18]
inc edx
shl eax, 2
mov dword [esp + 0x1c], eax
mov eax, dword [ebp + 0x18]
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x24], edx
mov dword [esp + 0xc], ecx
mov dword [esp + 0x20], eax
cmp edx, 1
jle 0x101e867c
mov eax, dword [esp + 0x18]
lea edi, [ecx + 4]
mov edx, dword [ebp + 0x1c]
lea esi, [esp + 0x2a0]
dec eax
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], eax
push eax
push edi
push ecx
call fcn.101e7ed0
fadd qword [esi]
mov eax, dword [esp + 0x20]
add esp, 0xc
mov ecx, dword [esp + 0xc]
dec eax
add edi, 4
mov dword [esp + 0x14], eax
fstp qword [esi]
add esi, 8
sub dword [esp + 0x10], 1
jne 0x101e8647
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x24]
mov esi, dword [esp + 0x1c]
add ecx, esi
sub eax, 1
mov dword [esp + 0xc], ecx
mov dword [esp + 0x20], eax
jne 0x101e8628
mov eax, dword [ebp + 0x18]
movsd xmm0, qword [esp + 0x40]
lea esi, [esp + 0x2a0]
mulsd xmm0, qword [0x102d0698]
lea edi, [esp + 0x360]
mov ecx, 0x30
mov dword [esp + 0x1c], 0
movsd xmm6, qword [0x101f33a8]
rep movsd dword es:[edi], dword [esi]
mov edi, dword [ebp + 0x1c]
movaps xmm7, xmm6
movaps xmm2, xmm0
movsd qword [esp + 0x48], xmm0
addsd xmm2, qword [esp + 0x40]
xor esi, esi
movsd qword [esp + 0x30], xmm7
addsd xmm2, qword [0x102cfb50]
movsd qword [esp + 0x110], xmm2
movsd qword [esp + 0x1d8], xmm2
test edi, edi
jle 0x101e8baf
mov edx, dword [esp + 0x18]
mov ecx, 0xfffffffc
shl edx, 2
mov dword [esp + 0xc], 0xfffffff8
mov dword [esp + 0x14], ecx
mov dword [esp + 0x10], edx
nop dword [eax]
test eax, eax
jle 0x101e887e
mov edi, dword [esp + 0x2c]
mov eax, edx
mov edx, dword [ebp + 0x18]
sub eax, ecx
sub eax, 4
mov dword [esp + 0x20], edx
mov dword [esp + 0x24], eax
nop
movss xmm6, dword [ecx + edi + 4]
lea edx, [ecx + edi]
movss xmm5, dword [edx + eax]
xor eax, eax
cvtps2pd xmm4, xmm6
cvtps2pd xmm5, xmm5
cmp ecx, 0xfffffffc
jle 0x101e87e5
mov ecx, dword [esp + 0x10]
add ecx, edi
movss xmm7, dword [ecx - 4]
nop word [eax + eax]
movss xmm3, dword [edx]
movaps xmm0, xmm6
movsd xmm1, qword [esp + eax*8 + 0x2a0]
sub edx, 4
movss xmm2, dword [ecx]
add ecx, 4
mulss xmm0, xmm3
cvtss2sd xmm0, xmm0
subsd xmm1, xmm0
movaps xmm0, xmm7
mulss xmm0, xmm2
cvtss2sd xmm0, xmm0
movsd qword [esp + eax*8 + 0x2a0], xmm1
movsd xmm1, qword [esp + eax*8 + 0x360]
subsd xmm1, xmm0
cvtps2pd xmm0, xmm3
movsd qword [esp + eax*8 + 0x360], xmm1
movsd xmm1, qword [esp + eax*8 + 0x50]
inc eax
mulsd xmm0, xmm1
addsd xmm4, xmm0
cvtps2pd xmm0, xmm2
mulsd xmm0, xmm1
addsd xmm5, xmm0
cmp eax, esi
jl 0x101e8770
xor eax, eax
jmp 0x101e87ec
xor eax, eax
cmp ecx, 0xfffffffc
jl 0x101e8851
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
add ecx, 0xfffffffc
add edx, 4
add ecx, edi
add edx, edi
nop
movss xmm1, dword [edx]
sub edx, 4
movsd xmm0, qword [esp + eax*8 + 0x110]
cvtps2pd xmm1, xmm1
mulsd xmm1, xmm4
subsd xmm0, xmm1
movss xmm1, dword [ecx]
cvtps2pd xmm1, xmm1
add ecx, 4
movsd qword [esp + eax*8 + 0x110], xmm0
movsd xmm0, qword [esp + eax*8 + 0x1d8]
mulsd xmm1, xmm5
subsd xmm0, xmm1
movsd qword [esp + eax*8 + 0x1d8], xmm0
inc eax
cmp eax, esi
jle 0x101e8800
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
lea eax, [edx*4]
add edi, eax
sub dword [esp + 0x20], 1
mov eax, dword [esp + 0x24]
jne 0x101e8740
movsd xmm6, qword [0x101f33a8]
movsd xmm7, qword [esp + 0x30]
mov edi, dword [ebp + 0x1c]
movsd xmm3, qword [esp + esi*8 + 0x2a0]
xor ecx, ecx
movsd xmm2, qword [esp + esi*8 + 0x360]
test esi, esi
jle 0x101e8938
mov eax, dword [esp + 0xc]
nop
movsd xmm1, qword [esp + ecx*8 + 0x50]
inc ecx
movaps xmm0, xmm1
mulsd xmm1, qword [esp + eax + 0x2a0]
mulsd xmm0, qword [esp + eax + 0x360]
sub eax, 8
addsd xmm2, xmm1
addsd xmm3, xmm0
cmp ecx, esi
jl 0x101e88a0
lea ecx, [esp + 0x1d8]
movsd qword [esp + esi*8 + 0x118], xmm3
movsd xmm4, qword [esp + 0x110]
lea ecx, [ecx + esi*8]
movsd qword [esp + esi*8 + 0x1e0], xmm2
xor eax, eax
movsd xmm5, qword [esp + 0x1d8]
nop dword [eax + eax]
movsd xmm1, qword [esp + eax*8 + 0x50]
movaps xmm0, xmm1
mulsd xmm0, qword [ecx]
sub ecx, 8
addsd xmm2, xmm0
movaps xmm0, xmm1
mulsd xmm0, qword [esp + eax*8 + 0x1e0]
mulsd xmm1, qword [esp + eax*8 + 0x118]
inc eax
addsd xmm5, xmm0
addsd xmm4, xmm1
cmp eax, esi
jl 0x101e8900
jmp 0x101e895c
movsd qword [esp + esi*8 + 0x118], xmm3
movsd xmm4, qword [esp + 0x110]
movsd qword [esp + esi*8 + 0x1e0], xmm2
movsd xmm5, qword [esp + 0x1d8]
movaps xmm3, xmm2
movsd qword [esp + 0x30], xmm2
mulsd xmm3, qword [0x102a3a08]
addsd xmm4, xmm5
movss xmm5, dword [ebp + 0x10]
movaps xmm1, xmm6
cvtps2pd xmm5, xmm5
divsd xmm3, xmm4
movaps xmm0, xmm3
mulsd xmm0, xmm3
subsd xmm1, xmm0
mulsd xmm1, xmm7
comisd xmm5, xmm1
jb 0x101e89f3
movaps xmm0, xmm5
movaps xmm2, xmm6
divsd xmm0, xmm7
xorps xmm1, xmm1
subsd xmm2, xmm0
movaps xmm0, xmm2
ucomisd xmm1, xmm0
ja 0x101e89b5
sqrtsd xmm0, xmm0
jmp 0x101e89ba
call fcn.101165b0
movaps xmm3, xmm0
xorps xmm1, xmm1
movsd xmm0, qword [esp + 0x30]
comisd xmm0, xmm1
jbe 0x101e89d3
xorps xmm3, xmmword [0x101f4c00]
movss xmm0, dword [ebp + 0x10]
movsd xmm6, qword [0x101f33a8]
cvtps2pd xmm7, xmm0
mov dword [esp + 0x1c], 1
movsd qword [esp + 0x30], xmm7
jmp 0x101e89fc
movaps xmm7, xmm1
movsd qword [esp + 0x30], xmm1
lea edx, [esi + 1]
movaps xmm4, xmm3
sar edx, 1
xor eax, eax
unpcklpd xmm4, xmm4
test edx, edx
jle 0x101e8a52
mov ecx, dword [esp + 0xc]
lea ecx, [esp + ecx + 0x50]
nop word [eax + eax]
movsd xmm1, qword [ecx]
movaps xmm0, xmm3
movsd xmm2, qword [esp + eax*8 + 0x50]
mulsd xmm0, xmm1
addsd xmm0, xmm2
movsd qword [esp + eax*8 + 0x50], xmm0
movaps xmm0, xmm3
mulsd xmm0, xmm2
inc eax
addsd xmm0, xmm1
movsd qword [ecx], xmm0
sub ecx, 8
cmp eax, edx
jl 0x101e8a20
cmp dword [esp + 0x1c], 0
lea edx, [esi + 1]
movsd qword [esp + esi*8 + 0x50], xmm3
jne 0x101e8bdd
lea eax, [esi + 1]
xor ecx, ecx
test eax, eax
js 0x101e8b35
lea eax, [esi + 2]
cmp eax, 2
jb 0x101e8ae9
lea edx, [esi + 1]
and eax, 0x80000001
jns 0x101e8a8a
dec eax
or eax, 0xfffffffe
inc eax
sub edx, eax
lea eax, [esp + 0x1d8]
lea eax, [eax + esi*8]
nop word [eax + eax]
movsd xmm1, qword [eax + 8]
movaps xmm0, xmm4
movhpd xmm1, qword [eax]
movups xmm2, xmmword [esp + ecx*8 + 0x110]
mulpd xmm0, xmm1
addpd xmm0, xmm2
movups xmmword [esp + ecx*8 + 0x110], xmm0
add ecx, 2
movaps xmm0, xmm4
mulpd xmm0, xmm2
addpd xmm0, xmm1
movlpd qword [eax + 8], xmm0
movhpd qword [eax], xmm0
sub eax, 0x10
cmp ecx, edx
jle 0x101e8aa0
lea eax, [esi + 1]
cmp ecx, eax
jg 0x101e8b35
mov eax, esi
lea edx, [esp + 0x1e0]
sub eax, ecx
lea eax, [edx + eax*8]
lea edx, [esi + 1]
nop word [eax + eax]
movsd xmm0, qword [eax]
movsd xmm2, qword [esp + ecx*8 + 0x110]
mulsd xmm0, xmm3
addsd xmm0, xmm2
movsd qword [esp + ecx*8 + 0x110], xmm0
movaps xmm0, xmm3
mulsd xmm0, xmm2
inc ecx
addsd xmm0, qword [eax]
movsd qword [eax], xmm0
sub eax, 8
cmp ecx, edx
jle 0x101e8b00
mov edx, dword [esp + 0x10]
inc esi
mov ecx, dword [esp + 0x14]
sub edx, 4
add dword [esp + 0xc], 8
add ecx, 4
mov eax, dword [ebp + 0x18]
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], ecx
cmp esi, edi
jl 0x101e8720
movsd xmm2, qword [esp + 0x110]
xor eax, eax
mov edx, dword [esp + 0x28]
nop dword [eax + eax]
movsd xmm1, qword [esp + eax*8 + 0x50]
movaps xmm0, xmm1
mulsd xmm0, qword [esp + eax*8 + 0x118]
addsd xmm2, xmm0
movaps xmm0, xmm1
mulsd xmm0, xmm1
xorps xmm1, xmmword [0x101f4c00]
addsd xmm6, xmm0
xorps xmm0, xmm0
cvtsd2ss xmm0, xmm1
movss dword [edx + eax*4], xmm0
inc eax
cmp eax, edi
jl 0x101e8b70
movsd xmm0, qword [esp + 0x48]
mulsd xmm0, xmm6
subsd xmm2, xmm0
movsd qword [esp + 0x38], xmm2
fld qword [esp + 0x38]
mov ecx, dword [esp + 0x424]
pop edi
pop esi
fstp dword [esp + 0x1c]
fld dword [esp + 0x1c]
xor ecx, esp
call fcn.1010d06f
mov esp, ebp
pop ebp
ret
cmp edx, edi
jge 0x101e8bf9
mov ecx, edi
lea edi, [esp + 0x50]
sub ecx, edx
lea edi, [edi + edx*8]
shl ecx, 3
shr ecx, 2
xor eax, eax
rep stosd dword es:[edi], eax
mov edi, dword [ebp + 0x1c]
xor ecx, ecx
cmp edi, 8
jb 0x101e8ca3
mov esi, dword [esp + 0x28]
lea eax, [esp + edi*8 + 0x48]
lea edx, [esi - 4]
lea edx, [edx + edi*4]
cmp esi, eax
ja 0x101e8c22
lea eax, [esp + 0x50]
cmp edx, eax
jae 0x101e8ca3
movaps xmm1, xmmword [0x101f4c00]
lea eax, [esi + 0x10]
mov edx, edi
lea esi, [esp + 0x50]
and edx, 0xfffffff8
lea edi, [esp + 0x70]
nop dword [eax]
movups xmm0, xmmword [esi + ecx*8]
lea esi, [esp + 0x80]
lea eax, [eax + 0x20]
xorps xmm0, xmm1
cvtpd2ps xmm0, xmm0
movsd qword [eax - 0x30], xmm0
movups xmm0, xmmword [esp + ecx*8 + 0x60]
xorps xmm0, xmm1
cvtpd2ps xmm0, xmm0
movsd qword [eax - 0x28], xmm0
movups xmm0, xmmword [edi + ecx*8]
xorps xmm0, xmm1
cvtpd2ps xmm0, xmm0
movsd qword [eax - 0x20], xmm0
movups xmm0, xmmword [esi + ecx*8]
add ecx, 8
lea esi, [esp + 0x50]
xorps xmm0, xmm1
cvtpd2ps xmm0, xmm0
movsd qword [eax - 0x18], xmm0
cmp ecx, edx
jl 0x101e8c40
mov edi, dword [ebp + 0x1c]
cmp ecx, edi
jge 0x101e8d37
jmp 0x101e8caa
movaps xmm1, xmmword [0x101f4c00]
mov eax, edi
sub eax, ecx
cmp eax, 4
jl 0x101e8d18
mov eax, dword [esp + 0x28]
lea esi, [edi - 3]
add eax, 8
lea eax, [eax + ecx*4]
movsd xmm0, qword [esp + ecx*8 + 0x50]
lea eax, [eax + 0x10]
xorps xmm0, xmm1
cvtsd2ss xmm0, xmm0
movss dword [eax - 0x18], xmm0
movsd xmm0, qword [esp + ecx*8 + 0x58]
xorps xmm0, xmm1
cvtsd2ss xmm0, xmm0
movss dword [eax - 0x14], xmm0
movsd xmm0, qword [esp + ecx*8 + 0x60]
xorps xmm0, xmm1
cvtsd2ss xmm0, xmm0
movss dword [eax - 0x10], xmm0
movsd xmm0, qword [esp + ecx*8 + 0x68]
add ecx, 4
xorps xmm0, xmm1
mov edx, ecx
cvtsd2ss xmm0, xmm0
movss dword [eax - 0xc], xmm0
cmp ecx, esi
jl 0x101e8cc0
cmp edx, edi
jge 0x101e8d37
mov eax, dword [esp + 0x28]
nop dword [eax]
movsd xmm0, qword [esp + ecx*8 + 0x50]
xorps xmm0, xmm1
cvtsd2ss xmm0, xmm0
movss dword [eax + ecx*4], xmm0
inc ecx
cmp ecx, edi
jl 0x101e8d20
cmp dword [ebp + 0x18], 0
jle 0x101e8d76
mov eax, dword [esp + 0x18]
lea esi, [eax*4]
mov eax, dword [esp + 0x2c]
nop dword [eax]
push edi
push eax
call fcn.101ddf30
fsubr qword [esp + 0x40]
mov eax, dword [esp + 0x34]
add esp, 8
add eax, esi
sub dword [ebp + 0x18], 1
mov dword [esp + 0x2c], eax
fst qword [esp + 0x38]
fstp qword [esp + 0x40]
jne 0x101e8d50
movsd xmm0, qword [esp + 0x30]
mulsd xmm0, qword [esp + 0x40]
movsd qword [esp + 0x38], xmm0
jmp 0x101e8bbd