Function at 0x14015d460
Capabilities:
Encode data using xor

Disassembly:
push rbx
push rsi
push rdi
push r12
push r14
mov eax, 0x50
call fcn.1400b2870
sub rsp, rax
mov rax, qword [rcx + 0x178]
mov rbx, rcx
mov r12, qword [rcx + 0x160]
mov r14, r9
mov qword [rsp + 0x28], rax
mov rdi, r8
mov rax, qword [rcx + 0x180]
mov rsi, rdx
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
cmp rcx, rax
ja 0x14015d71d
cmp rcx, r9
jb 0x14015d71d
cmp dword [rbx + 0x174], 0
mov qword [rsp + 0x88], rbp
mov qword [rsp + 0x40], r15
mov qword [rbx + 0x38], rcx
je 0x14015d4fe
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]
mov dword [rsp + 0x80], ebp
bswap r15d
test ebp, ebp
je 0x14015d556
test r14, r14
je 0x14015d543
mov ecx, ebp
dec r14
movzx eax, byte [rcx + rbx + 0x10]
xor al, byte [rsi]
inc rsi
mov byte [rdi], al
inc rdi
xor byte [rcx + rbx + 0x40], al
inc ebp
and ebp, 0xf
mov dword [rsp + 0x80], ebp
jne 0x14015d516
jmp 0x14015d54b
test ebp, ebp
jne 0x14015d6fc
lea rdx, [rbx + 0x60]
lea rcx, [rbx + 0x40]
call r12
mov qword [rsp + 0x48], r13
cmp r14, 0xc00
jb 0x14015d61b
mov rbp, qword [rsp + 0x28]
movabs rax, 0xaaaaaaaaaaaaaaab
mul r14
mov rcx, rdx
shr rcx, 0xb
imul rax, rcx, 0xfffffffffffff400
mov qword [rsp + 0x30], rcx
add r14, rax
mov qword [rsp + 0x98], r14
mov r14, qword [rsp + 0x20]
nop dword [rax]
mov r12d, 0xc0
nop word [rax + rax]
mov r8, r14
lea rdx, [rbx + 0x10]
mov rcx, rbx
call rbp
inc r15d
mov eax, r15d
bswap eax
mov dword [rbx + 0xc], eax
mov rax, qword [rsi]
xor rax, qword [rbx + 0x10]
mov qword [rdi], rax
mov rax, qword [rsi + 8]
add rsi, 0x10
xor rax, qword [rbx + 0x18]
mov qword [rdi + 8], rax
add rdi, 0x10
sub r12, 1
jne 0x14015d5b0
lea r8, [rdi - 0xc00]
mov r9d, 0xc00
lea rdx, [rbx + 0x60]
lea rcx, [rbx + 0x40]
call qword [rsp + gethostname]
sub qword [rsp + 0x30], 1
jne 0x14015d5a0
mov r14, qword [rsp + 0x98]
mov ebp, dword [rsp + 0x80]
mov rax, r14
and rax, 0xfffffffffffffff0
mov qword [rsp + 0x30], rax
je 0x14015d6b7
cmp r14, 0x10
jb 0x14015d6a2
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]
mov r8, r14
lea rdx, [rbx + 0x10]
mov rcx, rbx
call rbp
inc r15d
mov eax, r15d
bswap eax
mov dword [rbx + 0xc], eax
mov rax, qword [rsi]
xor rax, qword [rbx + 0x10]
mov qword [rdi], rax
mov rax, qword [rsi + 8]
add rsi, 0x10
xor rax, qword [rbx + 0x18]
mov qword [rdi + 8], rax
add rdi, 0x10
sub r12, 1
jne 0x14015d653
mov r14, qword [rsp + 0x98]
mov ebp, dword [rsp + 0x80]
mov rax, qword [rsp + 0x30]
mov r8, rdi
lea rdx, [rbx + 0x60]
sub r8, rax
lea rcx, [rbx + 0x40]
mov r9, rax
call qword [rsp + gethostname]
mov r13, qword [rsp + 0x48]
test r14, r14
je 0x14015d6fc
mov r8, qword [rsp + 0x20]
lea rdx, [rbx + 0x10]
mov rcx, rbx
call qword [rsp + Ordinal_41]
inc r15d
bswap r15d
mov dword [rbx + 0xc], r15d
nop dword [rax + rax]
mov ecx, ebp
inc ebp
movzx eax, byte [rcx + rsi]
movzx edx, byte [rbx + rcx + 0x10]
xor edx, eax
mov byte [rcx + rdi], dl
xor byte [rcx + rbx + 0x40], dl
sub r14, 1
jne 0x14015d6e0
mov r15, qword [rsp + 0x40]
xor eax, eax
mov dword [rbx + 0x170], ebp
mov rbp, qword [rsp + 0x88]
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