Function at 0x1402052e0
Capabilities:
Encode data using xor

Disassembly:
push rbx
push rsi
push rdi
push r12
push r13
push r14
mov eax, 0x48
call fcn.1402807a0
sub rsp, rax
mov rax, qword [rcx + 0x178]
mov r12, qword [rcx + 0x160]
mov r13, qword [rcx + 0x168]
mov qword [rsp + 0x28], rax
mov rax, qword [rcx + 0x180]
mov rbx, rcx
mov rcx, qword [rcx + 0x38]
mov qword [rsp + 0x20], rax
movabs rax, 0xfffffffe0
add rcx, r9
mov r14, r9
mov rsi, r8
mov rdi, rdx
cmp rcx, rax
ja 0x14020558e
cmp rcx, r9
jb 0x14020558e
cmp dword [rbx + 0x174], 0
mov qword [rsp + 0x88], rbp
mov qword [rbx + 0x38], rcx
mov qword [rsp + 0x40], r15
je 0x14020537b
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 0x1402053d7
test r14, r14
je 0x1402053c4
movzx edx, byte [rdi]
mov ecx, ebp
inc rsi
movzx eax, byte [rcx + rbx + 0x10]
inc rdi
dec r14
xor al, dl
mov byte [rsi - 1], al
xor byte [rcx + rbx + 0x40], dl
inc ebp
and ebp, 0xf
mov dword [rsp + 0x80], ebp
jne 0x140205393
jmp 0x1402053cc
test ebp, ebp
jne 0x14020556b
lea rdx, [rbx + 0x60]
lea rcx, [rbx + 0x40]
call r12
cmp r14, 0xc00
jb 0x14020549a
movabs rax, 0xaaaaaaaaaaaaaaab
lea rcx, [rbx + 0x60]
lea r10, [rbx + 0x40]
mul r14
mov rbp, rdx
shr rbp, 0xb
mov qword [rsp + 0x30], rbp
imul rax, rbp, 0xfffffffffffff400
add r14, rax
mov qword [rsp + 0x98], r14
mov r14, qword [rsp + 0x20]
nop dword [rax]
mov rdx, rcx
mov r9d, 0xc00
mov r8, rdi
mov rcx, r10
call r13
mov rbp, qword [rsp + 0x28]
mov r12d, 0xc0
nop dword [rax]
lea rdx, [rbx + 0x10]
mov r8, r14
mov rcx, rbx
call rbp
inc r15d
add rsi, 0x10
mov eax, r15d
add rdi, 0x10
bswap eax
mov dword [rbx + 0xc], eax
mov rax, qword [rdi - 0x10]
xor rax, qword [rbx + 0x10]
mov qword [rsi - 0x10], rax
mov rax, qword [rdi - 8]
xor rax, qword [rbx + 0x18]
mov qword [rsi - 8], rax
dec r12
jne 0x140205440
dec qword [rsp + 0x30]
lea rcx, [rbx + 0x60]
lea r10, [rbx + 0x40]
jne 0x140205420
mov r14, qword [rsp + 0x98]
mov ebp, dword [rsp + 0x80]
mov r9, r14
and r9, 0xfffffffffffffff0
je 0x14020552b
lea rdx, [rbx + 0x60]
lea rcx, [rbx + 0x40]
mov r8, rdi
call r13
cmp r14, 0x10
jb 0x14020552b
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]
nop dword [rax + rax]
lea rdx, [rbx + 0x10]
mov r8, r14
mov rcx, rbx
call rbp
inc r15d
add rsi, 0x10
mov eax, r15d
add rdi, 0x10
bswap eax
mov dword [rbx + 0xc], eax
mov rax, qword [rdi - 0x10]
xor rax, qword [rbx + 0x10]
mov qword [rsi - 0x10], rax
mov rax, qword [rdi - 8]
xor rax, qword [rbx + 0x18]
mov qword [rsi - 8], rax
dec r12
jne 0x1402054e0
mov r14, qword [rsp + 0x98]
mov ebp, dword [rsp + 0x80]
test r14, r14
je 0x14020556b
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 word [rax + rax]
mov edx, ebp
inc ebp
movzx ecx, byte [rdx + rdi]
movzx eax, byte [rdx + rbx + 0x10]
xor byte [rdx + rbx + 0x40], cl
xor al, cl
mov byte [rdx + rsi], al
dec r14
jne 0x140205550
mov r15, qword [rsp + 0x40]
mov dword [rbx + 0x170], ebp
mov rbp, qword [rsp + 0x88]
xor eax, eax
add rsp, 0x48
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
ret
or eax, 0xffffffff
add rsp, 0x48
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
ret