Function at 0x14000bf91
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x198
movaps xmmword [rsp + 0x180], xmm8
movaps xmmword [rsp + 0x170], xmm7
movaps xmmword [rsp + 0x160], xmm6
mov rbx, rcx
mov r10b, byte [rcx + 0x2c]
movzx ecx, r10b
mov eax, 0x10
sub rax, rcx
cmp rax, r8
jbe 0x14000c01e
test r10b, r10b
je 0x14000c099
mov rax, rcx
add rax, r8
jb 0x14000c52a
cmp rax, 0x10
ja 0x14000c53b
test r8, r8
je 0x14000c016
lea r10, [rbx + 0x10]
add r10, rcx
xor ecx, ecx
mov r9b, byte [r10 + rcx]
xor byte [rdx + rcx], r9b
lea r9, [rcx + 1]
mov rcx, r9
cmp r8, r9
jne 0x14000c002
mov byte [rbx + 0x2c], al
jmp 0x14000c4d2
mov r11, r8
sub r11, rax
movabs r9, 0xfffffffef
cmp r11, r9
ja 0x14000c4ff
mov r9, r11
shr r9, 4
inc r9d
mov r13d, dword [rbx + 0x28]
add r9d, r13d
jb 0x14000c4ff
test r10b, r10b
je 0x14000c09d
cmp r10b, 0x11
jae 0x14000c551
add rcx, rbx
add rcx, 0x10
mov r8, rbx
sub r8, rcx
add r8, 0x20
cmp rax, r8
cmovb r8, rax
test r8, r8
je 0x14000c091
xor r9d, r9d
mov r8b, byte [rcx + r9]
xor byte [rdx + r9], r8b
lea r8, [r9 + 1]
mov r9, r8
cmp rax, r8
jne 0x14000c07d
add rdx, rax
inc r13d
jmp 0x14000c0a0
mov r13d, dword [rbx + 0x28]
mov r11, r8
mov qword [rsp + 0xc0], 0
xor eax, eax
xorps xmm0, xmm0
movups xmmword [rsp + rax + 0x40], xmm0
inc qword [rsp + 0xc0]
add rax, 0x10
cmp rax, 0x80
jne 0x14000c0b1
mov qword [rsp + 0x38], rdx
mov qword [rsp + 0x30], r11
lea rdi, [rsp + 0xd0]
lea rsi, [rsp + 0x40]
mov ecx, 0x10
rep movsq qword [rdi], qword [rsi]
and r11, 0xffffffffffffff80
mov qword [rsp + 0x158], r11
je 0x14000c2eb
mov rsi, qword [rbx + 0x20]
xorps xmm6, xmm6
mov rbp, r11
mov r14, qword [rsp + 0x38]
mov eax, dword [rbx + 0xc]
lea rdx, [rsp + 0xd0]
xor ecx, ecx
movaps xmmword [rsp + 0x40], xmm6
lea r8d, [rax + r13]
bswap r8d
xor r9d, r9d
cmp r9, 3
je 0x14000c13a
mov r10d, dword [rbx + r9*4]
mov dword [rsp + r9*4 + 0x40], r10d
inc r9
jmp 0x14000c126
mov dword [rsp + 0x4c], r8d
inc rcx
mov r8, qword [rsp + 0x40]
mov qword [rdx], r8
mov r8d, dword [rsp + 0x48]
mov dword [rdx + 8], r8d
mov r8d, dword [rsp + 0x4c]
mov dword [rdx + 0xc], r8d
inc r13d
mov rdx, rcx
shl rdx, 4
add rdx, rsp
add rdx, 0xd0
cmp rcx, 8
jne 0x14000c117
mov al, byte [0x1402f8980]
cmp al, 1
jne 0x14000c27f
movaps xmm0, xmmword [rsp + 0xd0]
movaps xmm1, xmmword [rsp + 0xe0]
movaps xmm2, xmmword [rsp + 0xf0]
movaps xmm3, xmmword [rsp + 0x100]
movaps xmm4, xmmword [rsp + 0x110]
movaps xmm5, xmmword [rsp + 0x120]
movaps xmm7, xmmword [rsp + 0x130]
movaps xmm8, xmmword [rsp + 0x140]
movaps xmmword [rsp + 0x40], xmm0
movaps xmmword [rsp + 0x50], xmm1
movaps xmmword [rsp + 0x60], xmm2
movaps xmmword [rsp + 0x70], xmm3
movaps xmmword [rsp + 0x80], xmm4
movaps xmmword [rsp + 0x90], xmm5
movaps xmmword [rsp + 0xa0], xmm7
movaps xmmword [rsp + 0xb0], xmm8
mov rcx, rsi
lea rdx, [rsp + 0x40]
call fcn.140004f89
movaps xmm0, xmmword [rsp + 0x40]
movaps xmm1, xmmword [rsp + 0x50]
movaps xmm2, xmmword [rsp + 0x60]
movaps xmm3, xmmword [rsp + 0x70]
movaps xmm4, xmmword [rsp + 0x80]
movaps xmm5, xmmword [rsp + 0x90]
movaps xmm7, xmmword [rsp + 0xa0]
movaps xmm8, xmmword [rsp + 0xb0]
movaps xmmword [rsp + 0xd0], xmm0
movaps xmmword [rsp + 0xe0], xmm1
movaps xmmword [rsp + 0xf0], xmm2
movaps xmmword [rsp + 0x100], xmm3
movaps xmmword [rsp + 0x110], xmm4
movaps xmmword [rsp + 0x120], xmm5
movaps xmmword [rsp + 0x130], xmm7
movaps xmmword [rsp + 0x140], xmm8
jmp 0x14000c2b7
mov edi, 8
lea rdx, [rsp + 0xd0]
cmp rdi, 4
mov r15d, 4
cmovb r15, rdi
mov r12, r15
shl r12, 4
add r12, rdx
mov rcx, rsi
mov r8, r15
call fcn.14003d0b3
mov rdx, r12
sub rdi, r15
jne 0x14000c28c
lea rax, [r14 + 0x80]
add rbp, 0xffffffffffffff80
xor ecx, ecx
mov dl, byte [rsp + rcx + 0xd0]
xor byte [r14 + rcx], dl
lea rdx, [rcx + 1]
mov rcx, rdx
cmp rdx, 0x80
jne 0x14000c2c4
mov r14, rax
test rbp, rbp
jne 0x14000c10a
mov rbp, qword [rsp + 0x38]
add rbp, qword [rsp + 0x158]
mov rax, qword [rsp + 0x30]
mov r15d, eax
and r15d, 0xf
and eax, 0x70
mov qword [rsp + 0x30], rax
je 0x14000c402
xorps xmm6, xmm6
lea rsi, [rsp + 0xd0]
lea rdi, [rsp + 0x40]
mov r12, rbp
mov r14, rax
movaps xmmword [rsp + 0xd0], xmm6
mov eax, dword [rbx + 0xc]
add eax, r13d
bswap eax
xor ecx, ecx
cmp rcx, 3
je 0x14000c34f
mov edx, dword [rbx + rcx*4]
mov dword [rsp + rcx*4 + 0xd0], edx
inc rcx
jmp 0x14000c33a
mov dword [rsp + 0xdc], eax
mov rdx, qword [rbx + 0x20]
mov al, byte [0x1402f8980]
cmp al, 1
jne 0x14000c394
mov rax, qword [rsp + 0xd0]
mov qword [rsp + 0x40], rax
mov eax, dword [rsp + 0xd8]
mov dword [rsp + 0x48], eax
mov eax, dword [rsp + 0xdc]
mov dword [rsp + 0x4c], eax
mov rcx, rsi
mov r8, rdi
call fcn.140004f0d
jmp 0x14000c3d0
xor eax, eax
movups xmmword [rsp + rax + 0x40], xmm6
add rax, 0x10
cmp rax, 0x40
jne 0x14000c396
movaps xmm0, xmmword [rsp + 0xd0]
movaps xmmword [rsp + 0x40], xmm0
mov r8d, 4
mov rcx, rdx
mov rdx, rdi
call fcn.14003d0b3
movaps xmm0, xmmword [rsp + 0x40]
movaps xmmword [rsp + 0xd0], xmm0
lea rax, [r12 + 0x10]
add r14, 0xfffffffffffffff0
inc r13d
xor ecx, ecx
mov dl, byte [rsp + rcx + 0xd0]
xor byte [r12 + rcx], dl
lea rdx, [rcx + 1]
mov rcx, rdx
cmp rdx, 0x10
jne 0x14000c3de
mov r12, rax
test r14, r14
jne 0x14000c328
test r15, r15
je 0x14000c4ca
add rbp, qword [rsp + 0x30]
xorps xmm0, xmm0
movaps xmmword [rsp + 0x40], xmm0
mov eax, dword [rbx + 0xc]
add eax, r13d
bswap eax
xor ecx, ecx
cmp rcx, 3
je 0x14000c434
mov edx, dword [rbx + rcx*4]
mov dword [rsp + rcx*4 + 0x40], edx
inc rcx
jmp 0x14000c422
mov dword [rsp + 0x4c], eax
lea rdi, [rbx + 0x10]
mov rax, qword [rsp + 0x40]
mov qword [rbx + 0x10], rax
mov eax, dword [rsp + 0x48]
mov dword [rbx + 0x18], eax
mov eax, dword [rsp + 0x4c]
mov dword [rbx + 0x1c], eax
mov rdx, qword [rbx + 0x20]
mov al, byte [0x1402f8980]
cmp al, 1
jne 0x14000c47f
movups xmm0, xmmword [rdi]
lea r8, [rsp + 0x40]
movaps xmmword [r8], xmm0
lea rsi, [rsp + 0xd0]
mov rcx, rsi
call fcn.140004f0d
jmp 0x14000c4af
xor eax, eax
xorps xmm0, xmm0
movups xmmword [rsp + rax + 0x40], xmm0
add rax, 0x10
cmp rax, 0x40
jne 0x14000c484
movups xmm0, xmmword [rdi]
lea rsi, [rsp + 0x40]
movaps xmmword [rsi], xmm0
mov r8d, 4
mov rcx, rdx
mov rdx, rsi
call fcn.14003d0b3
movaps xmm0, xmmword [rsi]
movups xmmword [rdi], xmm0
xor eax, eax
mov cl, byte [rdi + rax]
xor byte [rbp + rax], cl
lea rcx, [rax + 1]
mov rax, rcx
cmp r15, rcx
jne 0x14000c4b7
mov byte [rbx + 0x2c], r15b
mov dword [rbx + 0x28], r13d
movaps xmm6, xmmword [rsp + 0x160]
movaps xmm7, xmmword [rsp + 0x170]
movaps xmm8, xmmword [rsp + 0x180]
add rsp, 0x198
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
lea rax, str.C:Userskylef.cargo_registry_srcindex.crates.io_6f17d22bba15001fcipher_0.3.0_src_stream.rs
mov qword [rsp + 0x20], rax
lea rcx, [0x1402d200b]
lea r9, [0x14023e508]
lea r8, [rsp + 0x40]
mov edx, 0x2b
call fcn.140237ca0
ud2
lea r8, str.C:Userskylef.cargo_registry_srcindex.crates.io_6f17d22bba15001fctr_0.8.0_srclib.rs
mov rdx, rax
call fcn.140237c90
ud2
lea r8, str.C:Userskylef.cargo_registry_srcindex.crates.io_6f17d22bba15001fctr_0.8.0_srclib.rs
mov edx, 0x10
mov rcx, rax
call fcn.140237a00
ud2
lea r8, str.C:Userskylef.cargo_registry_srcindex.crates.io_6f17d22bba15001fctr_0.8.0_srclib.rs
mov edx, 0x10
call fcn.1402379f0
ud2