Function at 0x180195ae0
Capabilities:
Encode data using xor

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r14
push r15
mov eax, 0x48
call fcn.18014c9d0
sub rsp, rax
mov rax, qword [rcx + 0x178]
mov r15, qword [rcx + 0x168]
mov r14, qword [rcx + 0x160]
mov qword [rsp + 0x28], rax
mov rax, qword [rcx + 0x180]
mov rbx, rcx
mov qword [rsp + 0x20], rax
mov rax, qword [rcx + 0x38]
mov rdi, r9
lea rcx, [r9 + rax]
movabs rax, 0xfffffffe0
mov rbp, r8
mov rsi, rdx
mov qword [rsp + 0x38], r15
cmp rcx, rax
ja 0x180195dbd
cmp rcx, r9
jb 0x180195dbd
cmp dword [rbx + 0x174], 0
mov qword [rsp + 0x88], r12
mov qword [rbx + 0x38], rcx
mov qword [rsp + 0x40], r13
je 0x180195b80
lea rdx, [rbx + 0x60]
lea rcx, [rbx + 0x40]
call r14
mov dword [rbx + 0x174], 0
mov r12d, dword [rbx + 0x170]
mov r13d, dword [rbx + 0xc]
bswap r13d
mov dword [rsp + 0x80], r12d
test r12d, r12d
je 0x180195be9
nop dword [rax + rax]
test rdi, rdi
je 0x180195bd5
movzx edx, byte [rsi]
mov ecx, r12d
inc rbp
movzx eax, byte [rcx + rbx + 0x10]
inc rsi
dec rdi
xor al, dl
mov byte [rbp - 1], al
xor byte [rcx + rbx + 0x40], dl
inc r12d
and r12d, 0xf
mov dword [rsp + 0x80], r12d
jne 0x180195ba0
jmp 0x180195bde
test r12d, r12d
jne 0x180195d9a
lea rdx, [rbx + 0x60]
lea rcx, [rbx + 0x40]
call r14
cmp rdi, 0xc00
jb 0x180195cb9
movabs rax, 0xaaaaaaaaaaaaaaab
lea rcx, [rbx + 0x60]
lea r10, [rbx + 0x40]
mul rdi
mov r15, rdx
shr r15, 0xb
mov rax, r15
mov qword [rsp + 0x30], r15
imul rax, rax, 0xfffffffffffff400
add rdi, rax
mov qword [rsp + 0x98], rdi
mov rdi, qword [rsp + 0x20]
mov rdx, rcx
mov r9d, 0xc00
mov r8, rsi
mov rcx, r10
call qword [rsp + gethostname]
mov r15, qword [rsp + 0x28]
mov r14d, 0xc0
nop
lea rdx, [rbx + 0x10]
mov r8, rdi
mov rcx, rbx
call r15
inc r13d
add rbp, 0x10
mov eax, r13d
add rsi, 0x10
bswap eax
mov dword [rbx + 0xc], eax
mov rax, qword [rbx + 0x10]
xor rax, qword [rsi - 0x10]
mov qword [rbp - 0x10], rax
mov rax, qword [rsi - 8]
xor rax, qword [rbx + 0x18]
dec r14
mov qword [rbp - 8], rax
jne 0x180195c50
mov r15, qword [rsp + 0x30]
lea rcx, [rbx + 0x60]
lea r10, [rbx + 0x40]
dec r15
mov qword [rsp + 0x30], r15
jne 0x180195c31
mov rdi, qword [rsp + 0x98]
mov r12d, dword [rsp + 0x80]
mov r15, qword [rsp + 0x38]
mov r9, rdi
and r9, 0xfffffffffffffff0
je 0x180195d4d
lea rdx, [rbx + 0x60]
lea rcx, [rbx + 0x40]
mov r8, rsi
call r15
cmp rdi, 0x10
jb 0x180195d4d
mov r12, qword [rsp + 0x28]
mov r14, rdi
shr r14, 4
mov rax, r14
imul rax, rax, 0xfffffffffffffff0
add rdi, rax
mov qword [rsp + 0x98], rdi
mov rdi, qword [rsp + 0x20]
nop dword [rax]
lea rdx, [rbx + 0x10]
mov r8, rdi
mov rcx, rbx
call r12
inc r13d
add rbp, 0x10
mov eax, r13d
add rsi, 0x10
bswap eax
mov dword [rbx + 0xc], eax
mov rax, qword [rbx + 0x10]
xor rax, qword [rsi - 0x10]
mov qword [rbp - 0x10], rax
mov rax, qword [rsi - 8]
xor rax, qword [rbx + 0x18]
dec r14
mov qword [rbp - 8], rax
jne 0x180195d00
mov rdi, qword [rsp + 0x98]
mov r12d, dword [rsp + 0x80]
test rdi, rdi
je 0x180195d9a
mov r8, qword [rsp + 0x20]
lea rdx, [rbx + 0x10]
mov rcx, rbx
call qword [rsp + 0x28]
inc r13d
movsxd rax, r12d
bswap r13d
sub rsi, rbx
sub rbp, rbx
mov dword [rbx + 0xc], r13d
lea rdx, [rax + rbx + 0x40]
add r12d, edi
nop dword [rax]
movzx ecx, byte [rsi + rdx - 0x40]
movzx eax, byte [rdx - 0x30]
inc rdx
xor byte [rdx - 1], cl
xor al, cl
dec rdi
mov byte [rdx + rbp - 0x41], al
jne 0x180195d80
mov r13, qword [rsp + 0x40]
mov dword [rbx + 0x170], r12d
mov r12, qword [rsp + 0x88]
xor eax, eax
add rsp, 0x48
pop r15
pop r14
pop rdi
pop rsi
pop rbp
pop rbx
ret
or eax, 0xffffffff
add rsp, 0x48
pop r15
pop r14
pop rdi
pop rsi
pop rbp
pop rbx
ret