Function at 0x1400cacc0
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x58
mov rax, qword [rcx + 0x168]
mov rbp, qword [rcx + 0x178]
mov r12, qword [rcx + 0x180]
mov qword [rsp + 0x28], rax
mov rsi, rcx
mov r10, rdx
mov rbx, r8
xor edx, edx
mov r8, qword [rcx + 0x160]
mov rax, r9
add rax, qword [rcx + 0x38]
movabs rcx, 0xfffffffe0
mov qword [rsp + 0xb8], r9
setb dl
cmp rcx, rax
jb 0x1400cb302
test rdx, rdx
jne 0x1400cb302
mov qword [rsi + 0x38], rax
mov eax, dword [rsi + 0x174]
mov r9d, dword [rsi + 0x170]
test eax, eax
je 0x1400cb223
cmp qword [rsp + 0xb8], 0
je 0x1400cb2da
movdqu xmm1, xmmword [rsi + 0x40]
mov r14d, dword [rsi + 0xc]
pxor xmm0, xmm0
mov dword [rsi + 0x174], 0
bswap r14d
mov dword [rsp + 0x48], r14d
mov eax, 1
mov edi, 0x10
movups xmmword [rsi + 0x188], xmm1
movups xmmword [rsi + 0x40], xmm0
cmp qword [rsp + 0xb8], 0xf
jbe 0x1400cadc3
test al, al
je 0x1400cadc3
lea r11, [rsi + 0x40]
mov r9d, edi
mov rax, qword [rsp + 0x28]
lea rdx, [rsi + 0x60]
mov qword [rsp + 0xa8], r10
lea r8, [rsi + 0x188]
mov rcx, r11
xor edi, edi
call rax
mov r10, qword [rsp + 0xa8]
cmp qword [rsp + 0xb8], 0xbff
jbe 0x1400caec0
lea rdx, [rsi + 0x60]
lea r11, [rsi + 0x40]
mov dword [rsp + 0x4c], edi
mov rdi, rsi
mov qword [rsp + 0x38], r11
lea r14, [rbx + 0xc00]
lea r13, [rsi + 0x10]
mov qword [rsp + 0xa8], r10
mov qword [rsp + 0x40], rdx
lea r8, [r14 - 0xc00]
mov r15d, dword [rsp + 0x48]
mov rsi, qword [rsp + 0xa8]
mov qword [rsp + 0x30], r8
mov rbx, r8
nop dword [rax]
add r15d, 1
mov r8, r12
mov rdx, r13
mov rcx, rdi
call rbp
mov eax, r15d
add rbx, 0x10
add rsi, 0x10
bswap eax
mov dword [rdi + 0xc], eax
mov rax, qword [rsi - 0x10]
xor rax, qword [rdi + 0x10]
mov qword [rbx - 0x10], rax
mov rax, qword [rsi - 8]
xor rax, qword [rdi + 0x18]
mov qword [rbx - 8], rax
cmp rbx, r14
jne 0x1400cae20
mov r8, qword [rsp + 0x30]
mov rdx, qword [rsp + 0x40]
mov r9d, 0xc00
lea r14, [rbx + 0xc00]
add dword [rsp + 0x48], 0xc0
mov rcx, qword [rsp + 0x38]
add qword [rsp + 0xa8], 0xc00
mov rax, qword [rsp + 0x28]
call rax
sub qword [rsp + 0xb8], 0xc00
cmp qword [rsp + 0xb8], 0xbff
ja 0x1400cae01
mov rsi, rdi
mov r10, qword [rsp + 0xa8]
mov edi, dword [rsp + 0x4c]
mov rcx, qword [rsp + 0xb8]
and rcx, 0xfffffffffffffff0
je 0x1400cafba
mov r11d, dword [rsp + 0x48]
lea r13, [rsi + 0x10]
mov r15, rbx
mov r14, r10
mov rax, qword [rsp + 0xb8]
mov qword [rsp + 0xb0], rbx
add r11d, 1
lea rdx, [rax - 0x10]
mov ebx, r11d
shr rdx, 4
lea eax, [r11 + rdx]
mov qword [rsp + 0x30], rdx
mov rdx, r13
mov r13, rcx
mov dword [rsp + 0x48], eax
jmp 0x1400caf1d
mov rdx, qword [rsp + 0x38]
add ebx, 1
mov qword [rsp + 0x38], rdx
mov r8, r12
mov rcx, rsi
add r15, 0x10
mov qword [rsp + 0xa8], r10
add r14, 0x10
call rbp
mov eax, ebx
mov r10, qword [rsp + 0xa8]
bswap eax
mov dword [rsi + 0xc], eax
mov rax, qword [r14 - 0x10]
xor rax, qword [rsi + 0x10]
mov qword [r15 - 0x10], rax
mov rax, qword [r14 - 8]
xor rax, qword [rsi + 0x18]
mov qword [r15 - 8], rax
cmp dword [rsp + 0x48], ebx
jne 0x1400caf15
mov rdx, qword [rsp + 0x30]
mov dword [rsp + 0x48], ebx
mov r9, r13
mov rbx, qword [rsp + 0xb0]
and qword [rsp + 0xb8], 0xf
lea rax, [rdx + 1]
lea rdx, [rsi + 0x60]
shl rax, 4
add rbx, rax
add r10, rax
lea rax, [rsi + 0x40]
mov r8, rbx
mov qword [rsp + 0xa8], r10
mov rcx, rax
mov rax, qword [rsp + 0x28]
sub r8, r13
call rax
mov r10, qword [rsp + 0xa8]
cmp qword [rsp + 0xb8], 0
mov qword [rsp + 0xa8], r10
je 0x1400cb20a
lea rdx, [rsi + 0x10]
mov rcx, rsi
mov r8, r12
call rbp
mov eax, dword [rsp + 0x48]
mov r10, qword [rsp + 0xa8]
mov edx, edi
lea ecx, [rdi + 1]
add eax, 1
bswap eax
mov dword [rsi + 0xc], eax
movzx eax, byte [rsi + 0x10]
xor al, byte [r10]
mov byte [rbx], al
mov byte [rsi + rdx + 0x188], al
mov rdx, qword [rsp + 0xb8]
sub rdx, 1
je 0x1400cb207
movzx eax, byte [r10 + 1]
mov r9d, ecx
xor al, byte [rsi + 0x11]
lea r8d, [rdi + 2]
mov byte [rbx + 1], al
mov byte [rsi + r9 + 0x188], al
cmp rdx, 1
je 0x1400cb207
movzx eax, byte [r10 + 2]
xor al, byte [rsi + 0x12]
lea r9d, [rdi + 3]
cmp qword [rsp + 0xb8], 3
mov byte [rbx + 2], al
mov byte [rsi + r8 + 0x188], al
je 0x1400cb207
movzx eax, byte [r10 + 3]
xor al, byte [rsi + 0x13]
lea r8d, [rdi + 4]
cmp qword [rsp + 0xb8], 4
mov byte [rbx + 3], al
mov byte [rsi + r9 + 0x188], al
je 0x1400cb207
movzx eax, byte [r10 + 4]
xor al, byte [rsi + 0x14]
lea r9d, [rdi + 5]
cmp qword [rsp + 0xb8], 5
mov byte [rbx + 4], al
mov byte [rsi + r8 + 0x188], al
je 0x1400cb207
movzx eax, byte [r10 + 5]
xor al, byte [rsi + 0x15]
lea r8d, [rdi + 6]
cmp qword [rsp + 0xb8], 6
mov byte [rbx + 5], al
mov byte [rsi + r9 + 0x188], al
je 0x1400cb207
movzx eax, byte [r10 + 6]
xor al, byte [rsi + 0x16]
lea r9d, [rdi + 7]
cmp qword [rsp + 0xb8], 7
mov byte [rbx + 6], al
mov byte [rsi + r8 + 0x188], al
je 0x1400cb207
movzx eax, byte [r10 + 7]
xor al, byte [rsi + 0x17]
lea r8d, [rdi + 8]
cmp qword [rsp + 0xb8], 8
mov byte [rbx + 7], al
mov byte [rsi + r9 + 0x188], al
je 0x1400cb207
movzx eax, byte [r10 + 8]
xor al, byte [rsi + 0x18]
lea r9d, [rdi + 9]
cmp qword [rsp + 0xb8], 9
mov byte [rbx + 8], al
mov byte [rsi + r8 + 0x188], al
je 0x1400cb207
movzx eax, byte [r10 + 9]
xor al, byte [rsi + 0x19]
lea r8d, [rdi + 0xa]
cmp qword [rsp + 0xb8], 0xa
mov byte [rbx + 9], al
mov byte [rsi + r9 + 0x188], al
je 0x1400cb207
movzx eax, byte [r10 + 0xa]
xor al, byte [rsi + 0x1a]
lea r9d, [rdi + 0xb]
cmp qword [rsp + 0xb8], 0xb
mov byte [rbx + 0xa], al
mov byte [rsi + r8 + 0x188], al
je 0x1400cb207
movzx eax, byte [r10 + 0xb]
xor al, byte [rsi + 0x1b]
lea r8d, [rdi + 0xc]
cmp qword [rsp + 0xb8], 0xc
mov byte [rbx + 0xb], al
mov byte [rsi + r9 + 0x188], al
je 0x1400cb207
movzx eax, byte [r10 + 0xc]
xor al, byte [rsi + 0x1c]
lea r9d, [rdi + 0xd]
cmp qword [rsp + 0xb8], 0xd
mov byte [rbx + 0xc], al
mov byte [rsi + r8 + 0x188], al
je 0x1400cb207
movzx eax, byte [r10 + 0xd]
xor al, byte [rsi + 0x1d]
lea r8d, [rdi + 0xe]
cmp qword [rsp + 0xb8], 0xe
mov byte [rbx + 0xd], al
mov byte [rsi + r9 + 0x188], al
je 0x1400cb207
movzx eax, byte [r10 + 0xe]
xor al, byte [rsi + 0x1e]
mov byte [rbx + 0xe], al
mov byte [rsi + r8 + 0x188], al
lea edi, [rcx + rdx]
mov dword [rsi + 0x170], edi
xor eax, eax
add rsp, 0x58
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov edi, r9d
mov r14d, dword [rsi + 0xc]
bswap r14d
mov dword [rsp + 0x48], r14d
and edi, 0xf
je 0x1400cb2f4
cmp qword [rsp + 0xb8], 0
je 0x1400cb2ce
mov rcx, qword [rsp + 0xb8]
jmp 0x1400cb25d
test rcx, rcx
je 0x1400cb2c2
mov edx, edi
movzx eax, byte [r10]
add rbx, 1
add edi, 1
xor al, byte [rsi + rdx + 0x10]
mov edx, r9d
add r10, 1
add r9d, 1
mov byte [rbx - 1], al
sub rcx, 1
mov byte [rsi + rdx + 0x188], al
and edi, 0xf
jne 0x1400cb258
mov qword [rsp + 0xb8], rcx
lea r11, [rsi + 0x40]
mov qword [rsp + 0xa8], r10
mov rax, qword [rsp + 0x28]
lea rdx, [rsi + 0x60]
lea r8, [rsi + 0x188]
mov rcx, r11
call rax
mov r10, qword [rsp + 0xa8]
jmp 0x1400cadc3
mov qword [rsp + 0xb8], rcx
test edi, edi
je 0x1400cb294
mov dword [rsi + 0x170], r9d
jmp 0x1400cb210
lea rdx, [rsi + 0x60]
lea rcx, [rsi + 0x40]
call r8
mov dword [rsi + 0x174], 0
jmp 0x1400cb210
test r9d, r9d
mov edi, r9d
setne al
jmp 0x1400cad86
mov eax, 0xffffffff
jmp 0x1400cb212