Function at 0x1400c9190
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x38
mov rbx, qword [rsp + 0xa0]
mov rax, rcx
test r8, r8
je 0x1400c93b6
mov ecx, dword [rsp + 0xb0]
xor r12d, r12d
test ecx, ecx
jne 0x1400c93c7
mov qword [rsp + 0x80], rax
mov r14, rdx
mov qword [rsp + 0x90], r8
mov qword [rsp + 0x98], r9
nop dword [rax]
mov r11d, r12d
mov r13, r12
mov rdi, qword [rbx]
mov rsi, qword [rbx + 8]
mov rax, qword [rsp + 0x80]
not r11d
shr r13, 3
mov r8, qword [rsp + 0x98]
mov r15d, r11d
mov rdx, rbx
movzx ebp, byte [rax + r13]
and r15d, 7
mov ecx, r15d
sar ebp, cl
mov rcx, rbx
call qword [rsp + 0xb8]
mov rax, rdi
movzx edx, byte [rbx]
shl ebp, 7
movzx eax, ah
lea r10, [r14 + r13]
mov r8, rax
mov eax, edi
xor edx, ebp
movzx ebp, bpl
movzx ecx, ah
lea eax, [rdi + rdi]
add r8d, r8d
sar ecx, 7
or eax, ecx
mov byte [rbx], al
mov rax, rdi
shr rax, 0x10
mov ecx, eax
add eax, eax
shr cl, 7
or ecx, r8d
mov r8d, edi
shr r8d, 0x1f
mov byte [rbx + 1], cl
mov rcx, rdi
or eax, r8d
shr rcx, 0x18
mov byte [rbx + 2], al
mov rax, rdi
add ecx, ecx
shr rax, 0x20
mov r8d, eax
add eax, eax
shr r8b, 7
or r8d, ecx
mov rcx, rdi
shr rcx, 0x28
mov byte [rbx + 3], r8b
mov r8d, ecx
add ecx, ecx
shr r8b, 7
or r8d, eax
mov rax, rdi
shr rax, 0x30
mov byte [rbx + 4], r8b
mov r8d, eax
add eax, eax
shr r8b, 7
or r8d, ecx
mov rcx, rdi
shr rdi, 0x3f
or edi, eax
shr rcx, 0x38
mov eax, esi
mov byte [rbx + 5], r8b
shr al, 7
add ecx, ecx
sar ebp, 7
mov byte [rbx + 6], dil
or ecx, eax
mov rax, rsi
movzx eax, ah
mov byte [rbx + 7], cl
mov r8, rax
mov eax, esi
movzx ecx, ah
lea eax, [rsi + rsi]
add r8d, r8d
sar ecx, 7
or eax, ecx
mov byte [rbx + 8], al
mov rax, rsi
shr rax, 0x10
mov ecx, eax
add eax, eax
shr cl, 7
or ecx, r8d
mov r8d, esi
shr r8d, 0x1f
mov byte [rbx + 9], cl
mov rcx, rsi
or eax, r8d
mov r8, rsi
shr rcx, 0x18
shr r8, 0x20
mov byte [rbx + 0xa], al
add ecx, ecx
mov eax, r8d
add r8d, r8d
shr al, 7
or ecx, eax
mov rax, rsi
shr rax, 0x28
mov byte [rbx + 0xb], cl
mov ecx, eax
add eax, eax
shr cl, 7
or ecx, r8d
mov byte [rbx + 0xc], cl
mov rcx, rsi
shr rcx, 0x30
mov r8d, ecx
add ecx, ecx
shr r8b, 7
or r8d, eax
mov rax, rsi
shr rsi, 0x3f
shr rax, 0x38
or esi, ecx
mov ecx, r15d
mov byte [rbx + 0xd], r8b
add eax, eax
mov byte [rbx + 0xe], sil
or eax, ebp
mov byte [rbx + 0xf], al
mov eax, 1
shl eax, cl
mov ecx, r12d
and edx, 0x80
add r12, 1
and ecx, 7
not eax
and al, byte [r10]
sar edx, cl
or eax, edx
mov byte [r10], al
cmp qword [rsp + 0x90], r12
jne 0x1400c91e8
add rsp, 0x38
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov qword [rsp + 0x80], rax
mov r15d, 1
mov r13, rdx
mov qword [rsp + 0x90], r8
mov qword [rsp + 0x98], r9
nop dword [rax + rax]
mov r11d, r12d
mov rbp, r12
mov rsi, qword [rbx + 8]
mov rdx, rbx
mov rax, qword [rsp + 0x80]
not r11d
shr rbp, 3
mov r8, qword [rsp + 0x98]
mov r14d, r11d
movzx edi, byte [rax + rbp]
and r14d, 7
mov rax, qword [rbx]
mov ecx, r14d
sar edi, cl
mov qword [rsp + 0x28], rax
mov rcx, rbx
call qword [rsp + 0xb8]
mov rax, qword [rsp + 0x28]
shl edi, 7
xor dil, byte [rbx]
lea r10, [r13 + rbp]
movzx edx, ah
movzx ecx, ah
sar ecx, 7
mov r8, rdx
lea edx, [rax + rax]
or edx, ecx
add r8d, r8d
mov byte [rbx], dl
mov rdx, rax
shr rdx, 0x10
mov ecx, edx
add edx, edx
shr cl, 7
or ecx, r8d
mov r8d, eax
shr r8d, 0x1f
mov byte [rbx + 1], cl
mov rcx, rax
or edx, r8d
shr rcx, 0x18
mov byte [rbx + 2], dl
mov rdx, rax
add ecx, ecx
shr rdx, 0x20
mov r8d, edx
add edx, edx
shr r8b, 7
or r8d, ecx
mov rcx, rax
shr rcx, 0x28
mov byte [rbx + 3], r8b
mov r8d, ecx
add ecx, ecx
shr r8b, 7
or r8d, edx
mov rdx, rax
shr rdx, 0x30
mov byte [rbx + 4], r8b
mov r8d, edx
add edx, edx
shr r8b, 7
or r8d, ecx
mov rcx, rax
shr rax, 0x3f
or eax, edx
shr rcx, 0x38
mov edx, esi
mov byte [rbx + 5], r8b
mov byte [rbx + 6], al
lea eax, [rcx + rcx]
mov ecx, esi
movzx edx, dh
shr cl, 7
sar edx, 7
or ecx, eax
mov rax, rsi
mov byte [rbx + 7], cl
movzx ecx, ah
lea eax, [rsi + rsi]
or eax, edx
add ecx, ecx
mov byte [rbx + 8], al
mov rax, rsi
shr rax, 0x10
mov edx, eax
add eax, eax
shr dl, 7
or edx, ecx
mov ecx, esi
shr ecx, 0x1f
mov byte [rbx + 9], dl
mov rdx, rsi
or eax, ecx
mov rcx, rsi
shr rdx, 0x18
shr rcx, 0x20
mov byte [rbx + 0xa], al
lea eax, [rdx + rdx]
mov edx, ecx
add ecx, ecx
shr dl, 7
or edx, eax
mov rax, rsi
shr rax, 0x28
mov byte [rbx + 0xb], dl
mov edx, eax
add eax, eax
shr dl, 7
or edx, ecx
mov byte [rbx + 0xc], dl
mov rdx, rsi
shr rdx, 0x30
mov ecx, edx
add edx, edx
shr cl, 7
or eax, ecx
mov ecx, r14d
mov byte [rbx + 0xd], al
mov rax, rsi
shr rsi, 0x3f
shr rax, 0x38
or esi, edx
lea edx, [rax + rax]
mov eax, edi
mov byte [rbx + 0xe], sil
and edi, 0x80
shr al, 7
or eax, edx
mov byte [rbx + 0xf], al
mov eax, r15d
shl eax, cl
mov ecx, r12d
not eax
and al, byte [r10]
and ecx, 7
add r12, 1
sar edi, cl
or eax, edi
mov byte [r10], al
cmp qword [rsp + 0x90], r12
jne 0x1400c93f0
jmp 0x1400c93b6