Function at 0x180017220
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
mov qword [rsp + 0x20], rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x150
mov rax, qword [0x18006c040]
xor rax, rsp
mov qword [rsp + 0x140], rax
lea r11, [rsp]
mov r10d, reloc.WS2_32.dll_recv
sub r11, rcx
lea rax, [rcx + 0xa]
mov r9d, r10d
mov rbx, rcx
nop dword [rax + rax]
movzx r8d, byte [rax - 2]
movzx ecx, byte [rax - 1]
movzx edx, byte [rax + 1]
lea rax, [rax + 4]
shl ecx, 0x10
shl r8d, 0x18
or r8d, ecx
movzx ecx, byte [rax - 4]
shl ecx, 8
or edx, ecx
or edx, r8d
mov dword [r11 + rax - 0xe], edx
sub r9, 1
jne 0x180017270
lea r11, [rsp + 0x40]
nop word [rax + rax]
movsx r8d, r10w
lea r11, [r11 + 4]
inc r10w
lea eax, [r8 - 0x10]
movsxd rdx, eax
lea eax, [r8 - 0xe]
movsxd rcx, eax
lea eax, [r8 - 8]
mov r9d, dword [rsp + rdx*4]
xor r9d, dword [rsp + rcx*4]
movsxd rcx, eax
lea eax, [r8 - 3]
xor r9d, dword [rsp + rcx*4]
movsxd rcx, eax
xor r9d, dword [rsp + rcx*4]
lea eax, [r9 + r9]
shr r9d, 0x1f
or eax, r9d
mov dword [r11 - 4], eax
cmp r10w, 0x50
jl 0x1800172b0
mov r12d, dword [rbx + 0x4c]
lea rbp, [rsp]
mov r13d, dword [rbx + 0x50]
mov r14d, shutdown
mov r8d, dword [rbx + 0x54]
mov r15d, r14d
mov r11d, dword [rbx + 0x58]
mov edi, r12d
mov esi, dword [rbx + 0x5c]
mov r9d, r13d
nop dword [rax]
nop dword [rax + rax]
mov eax, r8d
lea r10d, [rsi + 0x5a827999]
and eax, r9d
lea rbp, [rbp + 4]
mov edx, r9d
mov ecx, edi
not edx
shl ecx, 5
and edx, r11d
mov esi, r11d
or edx, eax
mov r11d, r8d
mov r8d, r9d
mov eax, edi
shr r9d, 2
shr eax, 0x1b
or ecx, eax
shl r8d, 0x1e
add edx, ecx
or r8d, r9d
add edx, dword [rbp - 4]
mov r9d, edi
add r10d, edx
mov edi, r10d
sub r15, 1
jne 0x180017330
lea rdx, [rsp + 0x50]
mov rbp, r14
nop word [rax + rax]
mov ecx, r10d
lea rdx, [rdx + 4]
shl ecx, 5
mov eax, r11d
xor eax, r8d
shr r10d, 0x1b
or ecx, r10d
xor eax, r9d
lea r10d, [rsi + 0x6ed9eba1]
add ecx, eax
add ecx, dword [rdx - 4]
mov esi, r11d
mov r11d, r8d
add r10d, ecx
mov r8d, r9d
shr r9d, 2
shl r8d, 0x1e
or r8d, r9d
mov r9d, edi
mov edi, r10d
sub rbp, 1
jne 0x180017390
lea rdx, [rsp + 0xa0]
mov rbp, r14
nop dword [rax]
nop dword [rax + rax]
mov ecx, r8d
lea rdx, [rdx + 4]
or ecx, r9d
mov eax, r8d
and eax, r9d
and ecx, r11d
or ecx, eax
mov eax, r10d
shr r10d, 0x1b
shl eax, 5
or eax, r10d
lea r10d, [rsi - 0x70e44324]
add ecx, eax
mov esi, r11d
add ecx, dword [rdx - 4]
mov r11d, r8d
mov r8d, r9d
add r10d, ecx
shr r9d, 2
shl r8d, 0x1e
or r8d, r9d
mov r9d, edi
mov edi, r10d
sub rbp, 1
jne 0x1800173f0
lea rdx, [rsp + 0xf0]
nop dword [rax]
mov ecx, r10d
lea rdx, [rdx + 4]
shl ecx, 5
mov eax, r11d
xor eax, r8d
shr r10d, 0x1b
or ecx, r10d
xor eax, r9d
lea r10d, [rsi - 0x359d3e2a]
add ecx, eax
add ecx, dword [rdx - 4]
mov esi, r11d
mov r11d, r8d
add r10d, ecx
mov r8d, r9d
shr r9d, 2
shl r8d, 0x1e
or r8d, r9d
mov r9d, edi
mov edi, r10d
sub r14, 1
jne 0x180017450
add dword [rbx + 0x54], r8d
lea eax, [r12 + r10]
add dword [rbx + 0x58], r11d
add dword [rbx + 0x5c], esi
mov dword [rbx + 0x4c], eax
lea eax, [r9 + r13]
mov dword [rbx + 0x50], eax
mov rcx, qword [rsp + 0x140]
xor rcx, rsp
call fcn.18001a230
lea r11, [rsp + 0x150]
mov rbx, qword [r11 + 0x38]
mov rbp, qword [r11 + 0x40]
mov rsi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret