Function at 0x1401508a0
Capabilities:
Encode data using xor

Disassembly:
push rbx
push rsi
push rdi
push r12
push r14
sub rsp, 0x50
mov rax, qword [rcx + 0x178]
mov r12, qword [rcx + 0x160]
mov rbx, rcx
mov qword [rsp + 0x28], rax
mov rax, qword [rcx + 0x180]
mov r14, r9
mov qword [rsp + 0x20], rax
mov rax, qword [rcx + 0x168]
mov rcx, qword [rcx + 0x38]
mov qword [rsp + 0x38], rax
add rcx, r9
movabs rax, 0xfffffffe0
mov rdi, r8
mov rsi, rdx
cmp rcx, rax
ja 0x140150b5c
cmp rcx, r9
jb 0x140150b5c
cmp dword [rbx + 0x174], 0
mov qword [rsp + 0x88], rbp
mov qword [rbx + 0x38], rcx
mov qword [rsp + 0x40], r15
je 0x140150935
lea rdx, [rbx + 0x60]
lea rcx, [rbx + 0x40]
call r12
mov dword [rbx + 0x174], 0
mov ebp, dword [rbx + 0x170]
mov r15d, dword [rbx + 0xc]
bswap r15d
mov dword [rsp + 0x80], ebp
test ebp, ebp
je 0x140150992
nop dword [rax]
test r14, r14
je 0x14015097f
mov ecx, ebp
inc rdi
inc rsi
movzx eax, byte [rcx + rbx + 0x10]
dec r14
xor al, byte [rsi - 1]
mov byte [rdi - 1], al
xor byte [rcx + rbx + 0x40], al
inc ebp
and ebp, 0xf
mov dword [rsp + 0x80], ebp
jne 0x140150950
jmp 0x140150987
test ebp, ebp
jne 0x140150b3b
lea rdx, [rbx + 0x60]
lea rcx, [rbx + 0x40]
call r12
mov qword [rsp + 0x48], r13
cmp r14, 0xc00
jb 0x140150a5b
mov rbp, qword [rsp + 0x28]
movabs rax, 0xaaaaaaaaaaaaaaab
mul r14
mov rcx, rdx
shr rcx, 0xb
mov qword [rsp + 0x30], rcx
imul rax, rcx, 0xfffffffffffff400
add r14, rax
mov qword [rsp + 0x98], r14
mov r14, qword [rsp + 0x20]
nop dword [rax]
mov r12d, 0xc0
nop word [rax + rax]
lea rdx, [rbx + 0x10]
mov r8, r14
mov rcx, rbx
call rbp
inc r15d
add rdi, 0x10
mov eax, r15d
add rsi, 0x10
bswap eax
mov dword [rbx + 0xc], eax
mov rax, qword [rsi - 0x10]
xor rax, qword [rbx + 0x10]
mov qword [rdi - 0x10], rax
mov rax, qword [rsi - 8]
xor rax, qword [rbx + 0x18]
mov qword [rdi - 8], rax
dec r12
jne 0x1401509f0
lea r8, [rdi - 0xc00]
lea rdx, [rbx + 0x60]
lea rcx, [rbx + 0x40]
mov r9d, 0xc00
call qword [rsp + 0x38]
dec qword [rsp + 0x30]
jne 0x1401509e0
mov r14, qword [rsp + 0x98]
mov ebp, dword [rsp + 0x80]
mov rax, r14
and rax, 0xfffffffffffffff0
mov qword [rsp + 0x30], rax
je 0x140150af8
cmp r14, 0x10
jb 0x140150ae3
mov rbp, qword [rsp + 0x28]
mov r12, r14
shr r12, 4
imul rax, r12, 0xfffffffffffffff0
add r14, rax
mov qword [rsp + 0x98], r14
mov r14, qword [rsp + 0x20]
lea rdx, [rbx + 0x10]
mov r8, r14
mov rcx, rbx
call rbp
inc r15d
add rdi, 0x10
mov eax, r15d
add rsi, 0x10
bswap eax
mov dword [rbx + 0xc], eax
mov rax, qword [rsi - 0x10]
xor rax, qword [rbx + 0x10]
mov qword [rdi - 0x10], rax
mov rax, qword [rsi - 8]
xor rax, qword [rbx + 0x18]
mov qword [rdi - 8], rax
dec r12
jne 0x140150a93
mov r14, qword [rsp + 0x98]
mov ebp, dword [rsp + 0x80]
mov rax, qword [rsp + 0x30]
mov r8, rdi
lea rdx, [rbx + 0x60]
lea rcx, [rbx + 0x40]
sub r8, rax
mov r9, rax
call qword [rsp + 0x38]
mov r13, qword [rsp + 0x48]
test r14, r14
je 0x140150b3b
mov r8, qword [rsp + 0x20]
lea rdx, [rbx + 0x10]
mov rcx, rbx
call qword [rsp + 0x28]
inc r15d
bswap r15d
mov dword [rbx + 0xc], r15d
nop dword [rax]
mov ecx, ebp
inc ebp
movzx edx, byte [rcx + rsi]
movzx eax, byte [rcx + rbx + 0x10]
xor edx, eax
mov byte [rcx + rdi], dl
xor byte [rcx + rbx + 0x40], dl
dec r14
jne 0x140150b20
mov r15, qword [rsp + 0x40]
mov dword [rbx + 0x170], ebp
mov rbp, qword [rsp + 0x88]
xor eax, eax
add rsp, 0x50
pop r14
pop r12
pop rdi
pop rsi
pop rbx
ret
or eax, 0xffffffff
add rsp, 0x50
pop r14
pop r12
pop rdi
pop rsi
pop rbx
ret