Function at 0x1800c20a4
Capabilities:
Encode data using xor

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x4128]
mov eax, 0x4228
call fcn.1800df0f0
sub rsp, rax
movaps xmmword [rsp + 0x4210], xmm6
movaps xmmword [rsp + 0x4200], xmm7
movaps xmmword [rsp + 0x41f0], xmm8
movaps xmmword [rsp + 0x41e0], xmm9
movaps xmmword [rsp + 0x41d0], xmm10
movaps xmmword [rsp + 0x41c0], xmm11
movaps xmmword [rsp + 0x41b0], xmm12
movaps xmmword [rsp + 0x41a0], xmm13
movaps xmmword [rsp + 0x4190], xmm14
movaps xmmword [rsp + 0x4180], xmm15
mov rax, qword [0x180123180]
xor rax, rsp
mov qword [rbp + 0x4070], rax
xor eax, eax
mov qword [rsp + 0x70], rdx
and dword [rsp + 0x50], eax
lea r13, [rcx + 0x1c24]
and dword [rsp + 0x5c], eax
lea rdi, [rbp + 0x35f0]
and dword [rsp + 0x44], eax
mov rsi, rdx
mov qword [rbp + 0x35b0], rax
xor edx, edx
mov qword [rbp + 0x35b8], rax
mov rbx, rcx
mov byte [rsp + 0x30], al
mov r14, r8
mov al, byte [rcx + 0x120c]
mov r15d, r9d
and al, 3
mov dword [rsp + 0x68], edx
mov byte [rcx + 0x12b2], al
lea r12d, [rdx + 1]
movsxd rax, dword [rcx + 0x11f0]
lea rdx, [rcx + 0x13fa]
add dword [rcx + 0x120c], r12d
add rcx, 0x10
mov qword [rsp + 0x78], r8
mov r8d, dword [rbx + 0x11e8]
lea r13, [r13 + rax*4]
mov dword [rsp + 0x60], r9d
mov qword [rbp - 0x80], r13
lea rdi, [rdi + rax*4]
call fcn.1800ca180
mov eax, dword [rbx + 0x11e0]
lea eax, [rax + rax*4]
cdqe
lea r8, [rax*4]
mov eax, dword [rbx + 0x11e8]
add r8, r13
sub eax, r12d
movsxd rcx, eax
js 0x1800c220a
lea rdx, [rbx + 0x13fa]
lea rdx, [rdx + rcx*2]
movsx eax, word [rdx]
lea rdx, [rdx - 2]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [r8 + rcx*4], xmm0
sub rcx, r12
jns 0x1800c21f1
xor r9d, r9d
mov eax, dword [rbx + 0x11e0]
mov edx, dword [rbx + 0x11e8]
sar edx, 3
imul edx, r9d
lea ecx, [rax + rax*4]
mov eax, r12d
add edx, ecx
mov ecx, r9d
and ecx, 2
movsxd r8, edx
sub eax, ecx
add r9d, r12d
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x1800eca1c]
addss xmm0, dword [r13 + r8*4]
movss dword [r13 + r8*4], xmm0
cmp r9d, 8
jl 0x1800c220d
cmp dword [rbx + 0x1248], 0
jne 0x1800c2b49
mov eax, dword [rbx + 0x13f4]
lea r8, [rbp + 0x35f0]
mov r9, r13
mov dword [rsp + 0x20], eax
lea rdx, [rbp + 0x21c0]
mov rcx, rbx
call fcn.1800cad14
mov r9, r13
lea rdx, [rbp + 0x21c0]
mov r8, rdi
mov rcx, rbx
call fcn.1800ca230
mov r9, r13
mov dword [rsp + 0x20], r15d
mov r8, rdi
lea rdx, [rbp + 0x21c0]
mov rcx, rbx
call fcn.1800cb050
mov r8d, r15d
lea rdx, [rbp + 0x21c0]
mov rcx, rbx
call fcn.1800cb380
cmp dword [rbx + 0x17e0], 0
movsxd rcx, dword [rbx + 0x1684]
movss xmm11, dword [0x1800f0ce8]
lea rax, [rcx + 0xaa]
lea rax, [rax + rax*8]
lea rdi, [rbx + rax*4]
je 0x1800c2455
cmp dword [rbx + 0x11b4], 0x4d
jle 0x1800c2455
mov dword [rbx + rcx*4 + 0x1284], r12d
lea rdx, [rbx + 0x94]
lea rcx, [rbp + 0x24b0]
mov r8d, 0x1100
call sub.VCRUNTIME140.dll_memcpy
movups xmm0, xmmword [rbx + 0x1290]
lea rdx, [rbp + 0x21c0]
lea rcx, [rbp + 0x35d0]
movups xmmword [rdi], xmm0
movups xmm1, xmmword [rbx + 0x12a0]
movups xmmword [rdi + 0x10], xmm1
mov eax, dword [rbx + 0x12b0]
mov dword [rdi + 0x20], eax
movsxd rsi, dword [rbx + 0x11e4]
mov r8, rsi
shl r8, 2
call sub.VCRUNTIME140.dll_memcpy
movsxd rax, dword [rbx + 0x1684]
test eax, eax
je 0x1800c2381
cmp dword [rbx + rax*4 + 0x1280], 0
je 0x1800c2381
lea r8, [rbx + 0x11bc]
jmp 0x1800c23ae
mov al, byte [rbx + 0x1c18]
lea r8, [rbx + 0x11bc]
mov byte [r8], al
mov al, byte [rbx + 0x17e4]
add al, byte [rdi]
movzx ecx, al
mov eax, 0x3f
cmp cl, al
cmovl eax, ecx
mov byte [rdi], al
mov esi, dword [rbx + 0x11e4]
xor r9d, r9d
mov dword [rsp + 0x20], esi
cmp r15d, 2
lea rcx, [rbp + 0x35c0]
mov rdx, rdi
sete r9b
call fcn.1800c9dac
mov ecx, dword [rbx + 0x11e4]
test ecx, ecx
jle 0x1800c23fb
xor eax, eax
movd xmm0, dword [rbp + rax + 0x35c0]
lea rax, [rax + 4]
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm11
movss dword [rbp + rax + 0x21bc], xmm0
sub rcx, r12
jne 0x1800c23d8
movsxd rax, dword [rbx + 0x1684]
lea r9, [rbp + 0x24b0]
mov qword [rsp + 0x28], r13
lea rdx, [rbp + 0x21c0]
mov r8, rdi
lea rcx, [rax + rax*4]
shl rcx, 6
lea rax, [rbx + 0x1854]
add rax, rcx
mov rcx, rbx
mov qword [rsp + 0x20], rax
call fcn.1800cb77c
movsxd r8, dword [rbx + 0x11e4]
lea rdx, [rbp + 0x35d0]
shl r8, 2
lea rcx, [rbp + 0x21c0]
call sub.VCRUNTIME140.dll_memcpy
mov edx, dword [rbx + 0x11e4]
lea rcx, [rbx + 0x1290]
and dword [rsp + 0x40], 0
mov r12d, 0x100
and dword [rsp + 0x58], 0
mov dword [rsp + 0x34], r12d
call fcn.1800c9d84
movups xmm12, xmmword [r14]
or ecx, 0xffffffff
lea rdx, [rbx + 0x94]
movups xmm13, xmmword [r14 + 0x10]
mov dword [rsp + 0x4c], ecx
mov r8d, 0x1100
movups xmm14, xmmword [r14 + 0x20]
mov r15d, eax
mov dword [rsp + 0x54], ecx
movsd xmm15, qword [r14 + 0x30]
lea rcx, [rbp - 0x40]
call sub.VCRUNTIME140.dll_memcpy
mov al, byte [rbx + 0x12b2]
xor edi, edi
movss xmm10, dword [0x1800f0e18]
movsd xmm7, qword [rbp - 0x48]
movups xmm8, xmmword [rbp - 0x58]
mov esi, dword [rbp + 0x4190]
movups xmm6, xmmword [rbp - 0x68]
mov byte [rsp + 0x38], al
movzx eax, word [rbx + 0x169c]
movups xmm9, xmmword [rbp - 0x78]
mov word [rsp + 0x48], ax
mov eax, dword [rbx + 0x1698]
mov dword [rsp + 0x64], eax
mov edx, dword [rsp + 0x4c]
mov dword [rsp + 0x3c], edi
cmp r15d, edx
jne 0x1800c250e
mov edi, dword [rsp + 0x44]
jmp 0x1800c271f
cmp r15d, dword [rsp + 0x54]
jne 0x1800c251e
mov edi, dword [rsp + 0x5c]
jmp 0x1800c271f
test edi, edi
jle 0x1800c256c
movups xmmword [r14], xmm12
mov r8d, 0x1100
lea rdx, [rbp - 0x40]
movups xmmword [r14 + 0x10], xmm13
lea rcx, [rbx + 0x94]
movups xmmword [r14 + 0x20], xmm14
movsd qword [r14 + 0x30], xmm15
call sub.VCRUNTIME140.dll_memcpy
mov al, byte [rsp + 0x38]
mov byte [rbx + 0x12b2], al
movzx eax, word [rsp + 0x48]
mov word [rbx + 0x169c], ax
mov eax, dword [rsp + 0x64]
mov dword [rbx + 0x1698], eax
lea rsi, [rbx + 0x12b4]
mov qword [rsp + 0x28], r13
lea r9, [rbx + 0x94]
mov qword [rsp + 0x20], rsi
lea r8, [rbx + 0x1290]
mov rcx, rbx
lea rdx, [rbp + 0x21c0]
call fcn.1800cb77c
cmp edi, 6
jne 0x1800c25ba
cmp dword [rsp + 0x40], 0
jne 0x1800c25ba
movups xmm9, xmmword [r14]
movups xmm6, xmmword [r14 + 0x10]
movups xmm8, xmmword [r14 + 0x20]
movsd xmm7, qword [r14 + 0x30]
mov eax, dword [rsp + 0x60]
xor r9d, r9d
mov r8d, dword [rbx + 0x1684]
mov rdx, r14
mov rcx, rbx
mov dword [rsp + 0x20], eax
call fcn.1800c1a9c
mov eax, dword [rbx + 0x11e8]
mov r9, rsi
movsx r8d, byte [rbx + 0x12ae]
mov rcx, r14
movsx edx, byte [rbx + 0x12ad]
mov dword [rsp + 0x20], eax
call fcn.1800c1588
bsr eax, dword [r14 + 0x20]
mov edi, dword [r14 + 0x18]
sub edi, eax
mov eax, dword [rsp + 0x3c]
dec edi
cmp eax, 6
jne 0x1800c2700
cmp dword [rsp + 0x40], 0
jne 0x1800c2700
cmp edi, dword [rbp + 0x4190]
jle 0x1800c2700
mov dl, byte [rbp + 0x24a8]
lea r9, [rbx + 0x1290]
movups xmmword [r14], xmm9
xor ecx, ecx
movups xmmword [r14 + 0x10], xmm6
movups xmmword [r14 + 0x20], xmm8
movsd qword [r14 + 0x30], xmm7
mov byte [rbx + 0x1c18], dl
cmp dword [rbx + 0x11e4], ecx
jle 0x1800c2670
mov rax, r9
mov byte [rax], 4
inc ecx
inc rax
cmp ecx, dword [rbx + 0x11e4]
jl 0x1800c2660
mov r8d, dword [rsp + 0x60]
cmp r8d, 2
je 0x1800c267e
mov byte [r9], dl
movzx eax, word [rsp + 0x48]
xor ecx, ecx
mov word [rbx + 0x169c], ax
mov eax, dword [rsp + 0x64]
mov dword [rbx + 0x1698], eax
cmp dword [rbx + 0x11e8], ecx
jle 0x1800c26b1
mov rax, rsi
mov byte [rax], 0
inc ecx
inc rax
cmp ecx, dword [rbx + 0x11e8]
jl 0x1800c26a1
mov dword [rsp + 0x20], r8d
xor r9d, r9d
mov r8d, dword [rbx + 0x1684]
mov rdx, r14
mov rcx, rbx
call fcn.1800c1a9c
mov eax, dword [rbx + 0x11e8]
mov r9, rsi
movsx r8d, byte [rbx + 0x12ae]
mov rcx, r14
movsx edx, byte [rbx + 0x12ad]
mov dword [rsp + 0x20], eax
call fcn.1800c1588
bsr eax, dword [r14 + 0x20]
mov edi, dword [r14 + 0x18]
sub edi, eax
mov eax, dword [rsp + 0x3c]
dec edi
cmp dword [rbp + 0x4198], 0
mov esi, dword [rbp + 0x4190]
jne 0x1800c271b
test eax, eax
jne 0x1800c271b
cmp edi, esi
jle 0x1800c2b44
mov edx, dword [rsp + 0x4c]
mov eax, dword [rsp + 0x3c]
cmp eax, 6
je 0x1800c2ac1
cmp edi, esi
jle 0x1800c2798
mov ecx, dword [rsp + 0x40]
test ecx, ecx
jne 0x1800c277a
cmp eax, 2
jl 0x1800c277a
movss xmm0, dword [rbp + 0x2474]
mulss xmm0, xmm10
comiss xmm0, xmm10
jbe 0x1800c275a
movss dword [rbp + 0x2474], xmm0
jmp 0x1800c2764
mov dword [rbp + 0x2474], 0x3fc00000
and dword [rsp + 0x58], 0
or dword [rsp + 0x54], 0xffffffff
mov byte [rbx + 0x12ae], 0
jmp 0x1800c284b
movsx edx, r12w
mov dword [rsp + 0x68], edx
mov dword [rsp + 0x58], 1
mov dword [rsp + 0x5c], edi
mov dword [rsp + 0x54], r15d
jmp 0x1800c2843
lea eax, [rsi - 5]
cmp edi, eax
jge 0x1800c2b44
movsx r10d, r12w
mov ecx, 1
mov dword [rsp + 0x40], ecx
mov r11d, edi
mov dword [rsp + 0x50], r10d
mov dword [rsp + 0x44], edi
cmp r15d, edx
je 0x1800c291d
mov eax, dword [r14 + 0x1c]
movsd xmm7, qword [r14 + 0x30]
mov dword [rsp + 0x4c], r15d
movups xmm9, xmmword [r14]
movups xmm6, xmmword [r14 + 0x10]
movups xmm8, xmmword [r14 + 0x20]
cmp eax, 0x4fb
jbe 0x1800c2806
mov r8d, 0x119
lea rdx, str..._.._.._third_party_opus_src_silk_float_encode_frame_FLP.c
lea rcx, str.assertion_failed:_psRangeEnc__offs___1275
call fcn.1800ab7c4
mov eax, dword [r14 + 0x1c]
mov rdx, qword [r14]
lea rcx, [rbp + 0x24b0]
mov r8d, eax
call sub.VCRUNTIME140.dll_memcpy
mov r8d, 0x1100
lea rdx, [rbx + 0x94]
lea rcx, [rbp + 0x10c0]
call sub.VCRUNTIME140.dll_memcpy
mov al, byte [rbx + 0x1c18]
mov ecx, dword [rsp + 0x40]
mov byte [rsp + 0x30], al
mov eax, dword [rsp + 0x3c]
test ecx, ecx
jne 0x1800c2913
cmp edi, esi
jle 0x1800c2913
mov r12d, dword [rbx + 0x11e4]
xor esi, esi
test r12d, r12d
jle 0x1800c2908
mov r13d, dword [rbx + 0x11ec]
lea r15, [rbp + 0x35c0]
mov r14d, dword [rsp + 0x34]
xor r8d, r8d
xor r10d, r10d
mov edx, r13d
imul edx, esi
mov ecx, r13d
inc esi
imul ecx, esi
cmp edx, ecx
jge 0x1800c28bb
movsxd rax, edx
lea r9, [rbx + 0x12b4]
add r9, rax
sub ecx, edx
mov r11d, ecx
movsx eax, byte [r9]
inc r9
cdq
xor eax, edx
sub eax, edx
add r10d, eax
sub r11, 1
jne 0x1800c28a2
mov eax, dword [rsp + 0x3c]
test eax, eax
je 0x1800c28e2
cmp r10d, dword [rbp + r8 + 0x35d0]
jge 0x1800c28d4
cmp dword [rbp + r8 + 0x35b0], 0
je 0x1800c28e2
mov dword [rbp + r8 + 0x35b0], 1
jmp 0x1800c28ee
mov dword [rbp + r8 + 0x35d0], r10d
mov word [r15], r14w
add r8, 4
add r15, 2
cmp esi, r12d
jl 0x1800c287b
mov r14, qword [rsp + 0x78]
mov r13, qword [rbp - 0x80]
mov ecx, dword [rsp + 0x40]
mov esi, dword [rbp + 0x4190]
mov r12d, dword [rsp + 0x34]
mov r11d, dword [rsp + 0x44]
mov r10d, dword [rsp + 0x50]
test dword [rsp + 0x58], ecx
jne 0x1800c296f
cmp edi, esi
jle 0x1800c2943
mov eax, 0x4000
cmp r12w, ax
jge 0x1800c293b
add r12w, r12w
jmp 0x1800c29c2
mov r12d, 0x7fff
jmp 0x1800c29c2
mov ecx, esi
shl edi, 7
shl ecx, 7
sub edi, ecx
mov eax, edi
cdq
idiv dword [rbx + 0x11e8]
lea ecx, [rax + 0x800]
call fcn.1800b9758
movsx rcx, r12w
imul rax, rcx
sar rax, 0x10
jmp 0x1800c29be
mov r9d, dword [rsp + 0x68]
mov eax, esi
mov ecx, dword [rsp + 0x5c]
sub eax, r11d
sub ecx, r11d
mov r8d, r9d
sub r8d, r10d
imul eax, r8d
sar r8d, 2
cdq
idiv ecx
lea r12d, [r10 + rax]
movsx ecx, r12w
lea eax, [r8 + r10]
mov dword [rsp + 0x34], r12d
cmp ecx, eax
jle 0x1800c29ac
lea eax, [r8 + r10]
jmp 0x1800c29be
mov eax, r9d
sub eax, r8d
cmp ecx, eax
jge 0x1800c29c7
movzx eax, r9w
sub ax, r8w
movzx r12d, ax
mov dword [rsp + 0x34], r12d
mov r10d, dword [rbx + 0x11e4]
test r10d, r10d
jle 0x1800c2a3e
lea r8, [rbp + 0x35c0]
xor edx, edx
mov r9d, r10d
mov r14d, 0xff800000
cmp dword [rbp + rdx + 0x35b0], 0
je 0x1800c29f5
movzx eax, word [r8]
jmp 0x1800c29f9
movzx eax, r12w
movsxd rcx, dword [rbp + rdx + 0x2498]
movsx rax, ax
imul rcx, rax
mov eax, 0x7fffff
sar rcx, 0x10
cmp ecx, eax
jle 0x1800c2a1a
mov ecx, eax
jmp 0x1800c2a21
cmp ecx, r14d
cmovl ecx, r14d
shl ecx, 8
add r8, 2
mov dword [rbp + rdx + 0x35e0], ecx
add rdx, 4
sub r9, 1
jne 0x1800c29e5
mov r14, qword [rsp + 0x78]
mov al, byte [rbp + 0x24a8]
lea r8, [rbx + 0x1c18]
xor r9d, r9d
mov byte [r8], al
cmp dword [rsp + 0x60], 2
lea rdi, [rbx + 0x1290]
lea rdx, [rbp + 0x35e0]
mov dword [rsp + 0x20], r10d
sete r9b
mov rcx, rdi
call fcn.1800c9e98
mov edx, dword [rbx + 0x11e4]
mov rcx, rdi
call fcn.1800c9d84
mov ecx, dword [rbx + 0x11e4]
mov r15d, eax
test ecx, ecx
jle 0x1800c2ab6
xor eax, eax
movd xmm0, dword [rbp + rax + 0x35e0]
lea rax, [rax + 4]
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm11
movss dword [rbp + rax + 0x21bc], xmm0
sub rcx, 1
jne 0x1800c2a92
mov edi, dword [rsp + 0x3c]
inc edi
jmp 0x1800c24f8
cmp dword [rsp + 0x40], 0
je 0x1800c2b44
cmp r15d, edx
je 0x1800c2ad1
cmp edi, esi
jle 0x1800c2b44
movups xmmword [r14], xmm9
movups xmmword [r14 + 0x10], xmm6
psrldq xmm6, 0xc
movd edi, xmm6
movups xmmword [r14 + 0x20], xmm8
movsd qword [r14 + 0x30], xmm7
cmp edi, 0x4fb
jbe 0x1800c2b0f
mov r8d, 0xfb
lea rdx, str..._.._.._third_party_opus_src_silk_float_encode_frame_FLP.c
lea rcx, str.assertion_failed:_sRangeEnc_copy2.offs___1275
call fcn.1800ab7c4
mov rcx, qword [r14]
lea rdx, [rbp + 0x24b0]
mov r8d, edi
call sub.VCRUNTIME140.dll_memcpy
mov r8d, 0x1100
lea rdx, [rbp + 0x10c0]
lea rcx, [rbx + 0x94]
call sub.VCRUNTIME140.dll_memcpy
mov al, byte [rsp + 0x30]
mov byte [rbx + 0x1c18], al
mov rsi, qword [rsp + 0x70]
mov eax, dword [rbx + 0x11e0]
lea ecx, [rax + rax*4]
movsxd rax, dword [rbx + 0x11e8]
add ecx, dword [rbx + 0x11f0]
add rax, 0x709
movsxd r8, ecx
lea rcx, [rbx + 0x1c24]
shl r8, 2
lea rdx, [rbx + rax*4]
call sub.VCRUNTIME140.dll_memmove
cmp dword [rbx + 0x1248], 0
je 0x1800c2b8a
and dword [rsi], 0
jmp 0x1800c2bc4
movsxd rax, dword [rbx + 0x11e4]
and dword [rbx + 0x1238], 0
mov ecx, dword [rbp + rax*4 + 0x22a0]
mov al, byte [rbx + 0x12ad]
mov dword [rbx + 0x11c0], ecx
mov byte [rbx + 0x11bd], al
bsr eax, dword [r14 + 0x20]
mov ecx, dword [r14 + 0x18]
sub ecx, eax
add ecx, 6
sar ecx, 3
mov dword [rsi], ecx
xor eax, eax
mov rcx, qword [rbp + 0x4070]
xor rcx, rsp
call fcn.1800de930
lea r11, [rsp + 0x4228]
movaps xmm6, xmmword [r11 - 0x18]
movaps xmm7, xmmword [r11 - 0x28]
movaps xmm8, xmmword [r11 - 0x38]
movaps xmm9, xmmword [r11 - 0x48]
movaps xmm10, xmmword [r11 - 0x58]
movaps xmm11, xmmword [r11 - 0x68]
movaps xmm12, xmmword [r11 - 0x78]
movaps xmm13, xmmword [r11 - 0x88]
movaps xmm14, xmmword [r11 - 0x98]
movaps xmm15, xmmword [r11 - 0xa8]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret