Function at 0x18006ca60
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x20], r9
mov qword [rsp + 8], rcx
push rbx
push rsi
push r12
push r13
push r15
mov eax, reloc.WS2_32.dll_WSASetLastError
call fcn.1801c83e0
sub rsp, rax
mov rcx, r9
mov r13, r9
mov r15, r8
mov rbx, rdx
xor r12d, r12d
call fcn.18000df20
mov rcx, r13
call fcn.18000e010
mov rsi, rax
mov qword [rsp + 0x50], rax
test rax, rax
je 0x18006cea5
mov rcx, r13
call fcn.18000e010
mov qword [rsp + 0x28], rax
test rax, rax
je 0x18006cea5
mov rcx, r13
mov qword [rsp + 0x60], r14
call fcn.18000e010
mov r14, rax
mov qword [rsp + 0x48], rax
test rax, rax
je 0x18006cea0
mov rcx, r13
mov qword [rsp + 0x68], rdi
call fcn.18000e010
mov rdi, rax
mov qword [rsp + 0x30], rax
test rax, rax
je 0x18006ce9b
mov r8, r15
mov rdx, rbx
mov rcx, r14
call fcn.18006c5e0
test eax, eax
je 0x18006ce9b
cmp dword [r14 + 8], r12d
je 0x18006ce9b
mov rdx, r15
mov rcx, rdi
call fcn.18000cd20
test rax, rax
je 0x18006ce9b
mov rcx, r14
mov qword [rsp + 0xa8], rbp
call fcn.18000c9d0
mov rcx, rdi
mov ebp, eax
call fcn.18000c9d0
movsxd rbx, dword [r15 + 8]
mov dword [rsp + 0x20], eax
mov dword [rsp + 0x24], ebx
cmp ebx, dword [r14 + 0xc]
jg 0x18006cb63
mov rax, r14
jmp 0x18006cb6d
mov edx, ebx
mov rcx, r14
call fcn.18000ccb0
test rax, rax
je 0x18006ce93
movsxd rax, dword [r14 + 8]
mov rdi, qword [r14]
cmp rax, rbx
jge 0x18006cb97
mov r8, rbx
lea rcx, [rdi + rax*8]
xor edx, edx
sub r8, rax
shl r8, 3
call fcn.1801c9e80
mov dword [r14 + 8], ebx
cmp ebx, dword [rsi + 0xc]
jg 0x18006cba5
mov rax, rsi
jmp 0x18006cbaf
mov edx, ebx
mov rcx, rsi
call fcn.18000ccb0
test rax, rax
je 0x18006ce93
mov r13, qword [rsi]
mov eax, 1
mov r8, rbx
mov qword [r13], rax
cmp rbx, rax
jle 0x18006cbde
dec r8
lea rcx, [r13 + 8]
xor edx, edx
shl r8, 3
call fcn.1801c9e80
mov rcx, qword [rsp + 0x28]
mov dword [rsi + 8], ebx
cmp ebx, dword [rcx + 0xc]
jg 0x18006cbf0
mov rax, rcx
jmp 0x18006cbfc
mov edx, ebx
call fcn.18000ccb0
mov rcx, qword [rsp + 0x28]
test rax, rax
je 0x18006ce8b
mov r9, qword [rcx]
mov qword [rsp + 0x40], r9
test ebx, ebx
jle 0x18006cc27
mov r8, rbx
xor edx, edx
mov rcx, r9
shl r8, 3
call fcn.1801c9e80
mov rcx, qword [rsp + 0x28]
mov rdx, qword [rsp + 0x30]
mov dword [rcx + 8], ebx
mov r9, qword [rdx]
mov qword [rsp + 0x38], r9
test ebp, ebp
je 0x18006cd13
nop
mov r10, qword [rdi]
test r10b, 1
jne 0x18006ccfa
mov r8, qword [r13]
mov rax, qword [r15]
mov rcx, qword [rax]
mov r9, r8
lea eax, [rbx - 1]
and r9d, 1
neg r9
and rcx, r9
xor r8, rcx
test eax, eax
jle 0x18006ccdd
mov r11, rdi
mov rsi, 0xfffffffffffffff8
lea rbx, [r13 + 8]
sub r11, r13
mov r14d, eax
mov r12d, eax
sub rsi, r13
nop dword [rax + rax]
mov rcx, qword [r11 + rbx]
shr r10, 1
shr r8, 1
mov rax, rcx
shl rax, 0x3f
or rax, r10
mov r10, rcx
lea rcx, [rsi + rbx]
mov qword [r11 + rbx - 8], rax
mov rax, qword [r15]
add rbx, 8
mov rdx, qword [rcx + rax + 8]
and rdx, r9
xor rdx, qword [rbx - 8]
mov rax, rdx
shl rax, 0x3f
or rax, r8
dec r14
mov r8, rdx
mov qword [rbx - 0x10], rax
jne 0x18006cc90
mov ebx, dword [rsp + 0x24]
shr r10, 1
shr r8, 1
dec ebp
mov qword [rdi + r12*8], r10
mov qword [r13 + r12*8], r8
mov r12d, 0
jne 0x18006cc40
mov rsi, qword [rsp + 0x50]
mov r14, qword [rsp + 0x48]
mov rcx, qword [rsp + 0x28]
mov rdx, qword [rsp + 0x30]
mov r9, qword [rsp + 0x38]
cmp ebp, 0x40
jg 0x18006cd2e
mov rax, qword [rdi]
test rax, rax
je 0x18006ce8b
cmp rax, 1
je 0x18006ce37
mov r11d, dword [rsp + 0x20]
cmp ebp, r11d
jge 0x18006cd84
mov r13, qword [rsp + 0x40]
mov eax, ebp
mov ebp, r11d
mov r11d, eax
mov dword [rsp + 0x20], eax
mov rax, r14
mov qword [rsp + 0x48], rdx
mov r14, rdx
mov rdx, rax
mov qword [rsp + 0x30], rax
mov rax, rsi
mov rdi, r9
mov r8, qword [rax]
mov r9, qword [rdx]
mov rsi, rcx
mov qword [rsp + 0x50], rcx
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x40], r8
mov rcx, rax
mov qword [rsp + 0x38], r9
jmp 0x18006cd89
mov r8, qword [rsp + 0x40]
movsxd rax, ebx
test ebx, ebx
jle 0x18006cdda
mov r10, r8
mov rdx, r13
sub r9, rdi
sub r10, rdi
mov rcx, rdi
mov r8, rax
sub rdx, rdi
nop word [rax + rax]
mov rax, qword [r9 + rcx]
add rcx, 8
xor qword [rcx - 8], rax
mov rax, qword [r10 + rcx - 8]
xor qword [rdx + rcx - 8], rax
dec r8
jne 0x18006cdb0
mov rcx, qword [rsp + 0x28]
mov rdx, qword [rsp + 0x30]
mov r9, qword [rsp + 0x38]
cmp ebp, r11d
jne 0x18006cc37
lea eax, [rbp - 1]
cdq
and edx, 0x3f
add eax, edx
sar eax, 6
movsxd rbx, eax
mov rax, rbx
mov rcx, qword [rdi + rbx*8]
test rcx, rcx
jne 0x18006ce14
nop
test rax, rax
je 0x18006ce14
mov rcx, qword [rdi + rax*8 - 8]
dec rax
dec ebx
test rcx, rcx
je 0x18006ce00
call fcn.18000c8c0
mov rcx, qword [rsp + 0x28]
mov rdx, qword [rsp + 0x30]
mov r9, qword [rsp + 0x38]
shl ebx, 6
lea ebp, [rbx + rax]
mov ebx, dword [rsp + 0x24]
jmp 0x18006cc37
mov edx, dword [rsi + 8]
test edx, edx
jle 0x18006ce65
lea eax, [rdx - 1]
movsxd rcx, eax
mov rax, qword [rsi]
lea r8, [rax + rcx*8]
nop dword [rax + rax]
mov rax, qword [r8]
sub r8, 8
test rax, rax
jne 0x18006ce62
dec edx
test edx, edx
jg 0x18006ce50
mov dword [rsi + 8], edx
cmp dword [rsi + 8], 0
jne 0x18006ce6f
mov dword [rsi + 0x10], r12d
mov rcx, qword [rsp + 0xa0]
mov rdx, rsi
call fcn.18000cd20
test rax, rax
mov eax, 1
cmovne r12d, eax
mov r13, qword [rsp + 0xb8]
mov rbp, qword [rsp + 0xa8]
mov rdi, qword [rsp + 0x68]
mov r14, qword [rsp + 0x60]
mov rcx, r13
call fcn.18000df90
mov eax, r12d
add rsp, 0x70
pop r15
pop r13
pop r12
pop rsi
pop rbx
ret