Function at 0x1400c2160
Capabilities:
Encode data using xor

Disassembly:
push rbx
push rsi
push rdi
push r12
push r14
mov eax, 0x50
call fcn.1401127d0
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 rsi, r8
mov rax, qword [rcx + 0x180]
mov rdi, 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 0x1400c2415
cmp rcx, r9
jb 0x1400c2415
cmp dword [rbx + 0x174], 0
lea r8, [rbx + 0x60]
mov qword [rsp + 0x88], rbp
mov qword [rsp + 0x48], r13
mov qword [rsp + 0x40], r15
mov qword [rbx + 0x38], rcx
je 0x1400c220a
lea rcx, [rbx + 0x40]
mov rdx, r8
call r12
lea r8, [rbx + 0x60]
mov dword [rbx + 0x174], 0
mov r15d, dword [rbx + 0x170]
mov ebp, dword [rbx + 0xc]
mov dword [rsp + 0x80], r15d
bswap ebp
test r15d, r15d
je 0x1400c2263
test r14, r14
je 0x1400c23ee
movzx edx, byte [rdi]
dec r14
mov ecx, r15d
inc rdi
movzx eax, byte [rcx + rbx + 0x10]
xor al, dl
mov byte [rsi], al
inc rsi
xor byte [rcx + rbx + 0x40], dl
inc r15d
and r15d, 0xf
jne 0x1400c2223
lea rcx, [rbx + 0x40]
mov rdx, r8
call r12
mov dword [rsp + 0x80], r15d
cmp r14, 0xc00
jb 0x1400c2312
movabs rax, 0xaaaaaaaaaaaaaaab
mul r14
mov r15, rdx
shr r15, 0xb
imul rax, r15, 0xfffffffffffff400
mov qword [rsp + 0x30], r15
add r14, rax
mov qword [rsp + 0x98], r14
mov r14, qword [rsp + 0x20]
mov r9d, 0xc00
lea rdx, [rbx + 0x60]
mov r8, rdi
lea rcx, [rbx + 0x40]
call qword [rsp + gethostname]
mov r15, qword [rsp + 0x28]
mov r12d, 0xc0
mov r8, r14
lea rdx, [rbx + 0x10]
mov rcx, rbx
call r15
inc ebp
mov eax, ebp
bswap eax
mov dword [rbx + 0xc], eax
mov rax, qword [rbx + 0x10]
xor rax, qword [rdi]
mov qword [rsi], rax
mov rax, qword [rdi + 8]
add rdi, 0x10
xor rax, qword [rbx + 0x18]
mov qword [rsi + 8], rax
add rsi, 0x10
sub r12, 1
jne 0x1400c22c0
sub qword [rsp + 0x30], 1
jne 0x1400c22a0
mov r14, qword [rsp + 0x98]
mov r15d, dword [rsp + 0x80]
mov r9, r14
and r9, 0xfffffffffffffff0
je 0x1400c23aa
mov r8, rdi
lea rdx, [rbx + 0x60]
lea rcx, [rbx + 0x40]
call qword [rsp + gethostname]
cmp r14, 0x10
jb 0x1400c23aa
mov r15, 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]
nop dword [rax + rax]
mov r8, r14
lea rdx, [rbx + 0x10]
mov rcx, rbx
call r15
inc ebp
mov eax, ebp
bswap eax
mov dword [rbx + 0xc], eax
mov rax, qword [rbx + 0x10]
xor rax, qword [rdi]
mov qword [rsi], rax
mov rax, qword [rdi + 8]
add rdi, 0x10
xor rax, qword [rbx + 0x18]
mov qword [rsi + 8], rax
add rsi, 0x10
sub r12, 1
jne 0x1400c2360
mov r14, qword [rsp + 0x98]
mov r15d, dword [rsp + 0x80]
test r14, r14
je 0x1400c23ee
mov r8, qword [rsp + 0x20]
lea rdx, [rbx + 0x10]
mov rcx, rbx
call qword [rsp + Ordinal_41]
inc ebp
bswap ebp
mov dword [rbx + 0xc], ebp
nop word [rax + rax]
mov edx, r15d
inc r15d
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
sub r14, 1
jne 0x1400c23d0
mov r13, qword [rsp + 0x48]
xor eax, eax
mov rbp, qword [rsp + 0x88]
mov dword [rbx + 0x170], r15d
mov r15, qword [rsp + 0x40]
add rsp, 0x50
pop r14
pop r12
pop rdi
pop rsi
pop rbx
ret
mov eax, 0xffffffff
add rsp, 0x50
pop r14
pop r12
pop rdi
pop rsi
pop rbx
ret