Function at 0x14015c230
Capabilities:
Encode data using xor

Disassembly:
push rbx
push rsi
push rdi
push r12
push r14
mov eax, 0x50
call fcn.1400b17d0
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 0x14015c4ed
cmp rcx, r9
jb 0x14015c4ed
cmp dword [rbx + 0x174], 0
mov qword [rsp + 0x88], rbp
mov qword [rsp + 0x40], r15
mov qword [rbx + 0x38], rcx
je 0x14015c2ce
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 0x14015c326
test r14, r14
je 0x14015c313
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 0x14015c2e6
jmp 0x14015c31b
test ebp, ebp
jne 0x14015c4cc
lea rdx, [rbx + 0x60]
lea rcx, [rbx + 0x40]
call r12
mov qword [rsp + 0x48], r13
cmp r14, 0xc00
jb 0x14015c3eb
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 0x14015c380
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 0x14015c370
mov r14, qword [rsp + 0x98]
mov ebp, dword [rsp + 0x80]
mov rax, r14
and rax, 0xfffffffffffffff0
mov qword [rsp + 0x30], rax
je 0x14015c487
cmp r14, 0x10
jb 0x14015c472
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 0x14015c423
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 0x14015c4cc
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 0x14015c4b0
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