Function at 0x1402057f0
Capabilities:
Encode data using xor

Disassembly:
push rbx
push rsi
push rdi
push r12
push r14
mov eax, 0x50
call fcn.1402807a0
sub rsp, rax
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 0x140205aac
cmp rcx, r9
jb 0x140205aac
cmp dword [rbx + 0x174], 0
mov qword [rsp + 0x88], rbp
mov qword [rbx + 0x38], rcx
mov qword [rsp + 0x40], r15
je 0x14020588e
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 0x1402058e8
test r14, r14
je 0x1402058d5
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 0x1402058a6
jmp 0x1402058dd
test ebp, ebp
jne 0x140205a8b
lea rdx, [rbx + 0x60]
lea rcx, [rbx + 0x40]
call r12
mov qword [rsp + 0x48], r13
cmp r14, 0xc00
jb 0x1402059ab
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
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 0x140205940
lea r8, [rdi - 0xc00]
lea rdx, [rbx + 0x60]
lea rcx, [rbx + 0x40]
mov r9d, 0xc00
call qword [rsp + 0x38]
dec qword [rsp + 0x30]
jne 0x140205930
mov r14, qword [rsp + 0x98]
mov ebp, dword [rsp + 0x80]
mov rax, r14
and rax, 0xfffffffffffffff0
mov qword [rsp + 0x30], rax
je 0x140205a48
cmp r14, 0x10
jb 0x140205a33
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 0x1402059e3
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 0x140205a8b
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 0x140205a70
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