Function at 0x18006d150
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x10], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 7]
sub rsp, 0xc0
mov rax, qword [0x1800c33b0]
xor rax, rsp
mov qword [rbp - 9], rax
mov rax, qword [rbp + 0x6f]
mov r13, rcx
mov qword [rbp - 0x71], rcx
mov r12, r8
mov rcx, qword [rbp + 0x7f]
mov qword [rbp - 0x61], rax
mov rax, qword [rbp + 0x87]
mov qword [rbp - 0x49], rcx
mov rcx, qword [rbp + 0x97]
mov qword [rbp - 0x69], rax
mov rax, qword [rbp + 0x8f]
mov dword [rbp - 0x79], edx
mov rdx, qword [rbp + 0x67]
mov qword [rbp - 0x41], rax
mov qword [rbp - 0x51], r9
mov qword [rbp - 0x59], rdx
cmp rcx, 2
je 0x18006d5a6
mov esi, reloc.WS2_32.dll_recv
cmp rcx, rsi
ja 0x18006d5a6
test cl, 1
jne 0x18006d5a6
lea rax, [rdx - 7]
cmp rax, 6
ja 0x18006d5a6
mov r14, qword [rbp + 0x77]
cmp r14, 0xff00
ja 0x18006d5a6
add cl, 0xfe
lea ebx, [rsi - 1]
shl cl, 2
mov r15d, ebx
and cl, 0xf8
sub r15b, dl
xor edi, edi
cmp rdi, r14
sbb al, al
lea r8d, [r15 - 1]
and al, 0x40
mov byte [rsp + 0x30], r8b
or cl, al
or cl, r8b
mov r8, rdx
mov byte [rbp - 0x29], cl
mov rdx, r9
lea rcx, [rbp - 0x28]
call sub.VCRUNTIME140.dll_memcpy
mov r8b, dil
mov rdx, r12
test r15b, r15b
je 0x18006d261
movzx eax, r8b
mov ecx, ebx
sub ecx, eax
inc r8b
movsxd rax, ecx
mov byte [rbp + rax - 0x29], dl
shr rdx, 8
cmp r8b, r15b
jb 0x18006d246
test rdx, rdx
jne 0x18006d5a6
mov r8, rsi
lea rcx, [rbp - 0x39]
call sub.VCRUNTIME140.dll_memset
mov rcx, rdi
mov rdx, rsi
mov al, byte [rbp + rcx - 0x29]
xor byte [rbp + rcx - 0x39], al
inc rcx
sub rdx, 1
jne 0x18006d27c
lea rax, [rsp + 0x38]
mov r8, rsi
lea r9, [rbp - 0x39]
mov qword [rsp + 0x20], rax
lea rdx, [rbp - 0x39]
mov rcx, r13
call fcn.1800684ac
test eax, eax
jne 0x18006d5ab
test r14, r14
je 0x18006d3ae
mov r8, rsi
lea rcx, [rbp - 0x29]
xor edx, edx
call sub.VCRUNTIME140.dll_memset
mov r13, qword [rbp - 0x61]
lea rcx, [rbp - 0x27]
mov ebx, recv
mov byte [rbp - 0x28], r14b
mov rax, r14
mov rdx, r13
shr rax, 8
cmp r14, rbx
mov byte [rbp - 0x29], al
cmovb rbx, r14
mov r8, rbx
call sub.VCRUNTIME140.dll_memcpy
sub r14, rbx
mov rcx, rdi
add r13, rbx
mov rdx, rsi
mov al, byte [rbp + rcx - 0x29]
xor byte [rbp + rcx - 0x39], al
inc rcx
sub rdx, 1
jne 0x18006d302
mov rcx, qword [rbp - 0x71]
lea rax, [rsp + 0x38]
lea r9, [rbp - 0x39]
mov qword [rsp + 0x20], rax
mov r8, rsi
lea rdx, [rbp - 0x39]
call fcn.1800684ac
test eax, eax
jne 0x18006d5ab
test r14, r14
je 0x18006d3aa
cmp r14, rsi
lea rcx, [rbp - 0x29]
mov rbx, r14
mov r8, rsi
cmova rbx, rsi
xor edx, edx
call sub.VCRUNTIME140.dll_memset
mov r8, rbx
lea rcx, [rbp - 0x29]
mov rdx, r13
call sub.VCRUNTIME140.dll_memcpy
mov rcx, rdi
mov rdx, rsi
mov al, byte [rbp + rcx - 0x29]
xor byte [rbp + rcx - 0x39], al
inc rcx
sub rdx, 1
jne 0x18006d36b
mov rcx, qword [rbp - 0x71]
lea rax, [rsp + 0x38]
lea r9, [rbp - 0x39]
mov qword [rsp + 0x20], rax
mov r8, rsi
lea rdx, [rbp - 0x39]
call fcn.1800684ac
test eax, eax
jne 0x18006d5ab
add r13, rbx
sub r14, rbx
jne 0x18006d33e
mov r13, qword [rbp - 0x71]
mov al, byte [rsp + 0x30]
lea rcx, [rbp - 0x18]
mov r8, qword [rbp - 0x59]
mov rdx, qword [rbp - 0x51]
mov byte [rbp - 0x19], al
call sub.VCRUNTIME140.dll_memcpy
lea rcx, [rbp - 0x18]
movzx r8d, r15b
add rcx, qword [rbp - 0x59]
xor edx, edx
call sub.VCRUNTIME140.dll_memset
mov byte [rbp - 0xa], 1
test r12, r12
je 0x18006d532
mov r14, qword [rbp - 0x49]
cmp r12, rsi
mov rbx, r12
cmova rbx, rsi
cmp dword [rbp - 0x79], edi
jne 0x18006d452
mov r8, rsi
lea rcx, [rbp - 0x29]
xor edx, edx
call sub.VCRUNTIME140.dll_memset
mov r8, rbx
lea rcx, [rbp - 0x29]
mov rdx, r14
call sub.VCRUNTIME140.dll_memcpy
mov rcx, rdi
mov rdx, rsi
mov al, byte [rbp + rcx - 0x29]
xor byte [rbp + rcx - 0x39], al
inc rcx
sub rdx, 1
jne 0x18006d41c
lea rax, [rsp + 0x38]
mov r8, rsi
lea r9, [rbp - 0x39]
mov qword [rsp + 0x20], rax
lea rdx, [rbp - 0x39]
mov rcx, r13
call fcn.1800684ac
test eax, eax
jne 0x18006d5ab
lea rax, [rsp + 0x38]
mov r8, rsi
lea r9, [rbp - 0x29]
mov qword [rsp + 0x20], rax
lea rdx, [rbp - 0x19]
mov rcx, r13
call fcn.1800684ac
test eax, eax
jne 0x18006d5ab
mov dl, dil
test rbx, rbx
je 0x18006d49c
mov r8, qword [rbp - 0x69]
mov rcx, rdi
mov al, byte [rcx + r14]
inc dl
xor al, byte [rbp + rcx - 0x29]
mov byte [rcx + r8], al
movzx ecx, dl
cmp rcx, rbx
jb 0x18006d486
cmp dword [rbp - 0x79], 1
jne 0x18006d4fc
mov r8, rsi
lea rcx, [rbp - 0x29]
xor edx, edx
call sub.VCRUNTIME140.dll_memset
mov rdx, qword [rbp - 0x69]
lea rcx, [rbp - 0x29]
mov r8, rbx
call sub.VCRUNTIME140.dll_memcpy
mov rcx, rdi
mov rdx, rsi
mov al, byte [rbp + rcx - 0x29]
xor byte [rbp + rcx - 0x39], al
inc rcx
sub rdx, 1
jne 0x18006d4c6
lea rax, [rsp + 0x38]
mov r8, rsi
lea r9, [rbp - 0x39]
mov qword [rsp + 0x20], rax
lea rdx, [rbp - 0x39]
mov rcx, r13
call fcn.1800684ac
test eax, eax
jne 0x18006d5ab
add qword [rbp - 0x69], rbx
add r14, rbx
sub r12, rbx
mov dl, dil
test r15b, r15b
je 0x18006d529
movzx eax, dl
mov ecx, recv
sub ecx, eax
movsxd rax, ecx
add byte [rbp + rax - 0x19], 1
jne 0x18006d529
inc dl
cmp dl, r15b
jb 0x18006d50e
test r12, r12
jne 0x18006d3ea
mov dl, dil
test r15b, r15b
je 0x18006d55c
movzx eax, dl
mov ecx, recv
sub ecx, eax
movsxd rax, ecx
cmp rax, rsi
jae 0x18006d5d2
inc dl
mov byte [rbp + rax - 0x19], dil
cmp dl, r15b
jb 0x18006d53a
lea rax, [rsp + 0x38]
mov r8, rsi
lea r9, [rbp - 0x29]
mov qword [rsp + 0x20], rax
lea rdx, [rbp - 0x19]
mov rcx, r13
call fcn.1800684ac
test eax, eax
jne 0x18006d5ab
mov al, byte [rbp + rdi - 0x29]
xor byte [rbp + rdi - 0x39], al
inc rdi
sub rsi, 1
jne 0x18006d57d
mov r8, qword [rbp + 0x97]
lea rdx, [rbp - 0x39]
mov rcx, qword [rbp - 0x41]
call sub.VCRUNTIME140.dll_memcpy
xor eax, eax
jmp 0x18006d5ab
mov eax, 0xfffffff3
mov rcx, qword [rbp - 9]
xor rcx, rsp
call fcn.180084a40
mov rbx, qword [rsp + 0x108]
add rsp, 0xc0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
call fcn.180084bb0
int3