Function at 0x18001b5d0
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
sub rsp, 0x20
mov rdx, qword [rcx + 8]
mov rbx, rcx
lea rdi, [rcx + 0x58]
mov ecx, dword [rcx]
lea rax, [rcx + rdx]
mov qword [rbx + 8], rax
cmp rax, rdx
jae 0x18001b602
inc qword [rbx + 0x10]
mov byte [rcx + rdi], pe_nt_image_headers64
inc dword [rbx]
mov ecx, dword [rbx]
movabs rsi, 0xff00ff00ff00ff
movabs rbp, 0xffff0000ffff
cmp ecx, 0x70
jbe 0x18001b6ac
mov r8d, pe_nt_image_headers64
xor edx, edx
sub r8d, ecx
add rcx, rdi
call fcn.180030f50
mov dword [rbx], pe_nt_image_headers64
mov r8, rdi
mov r9d, reloc.WS2_32.dll_recv
nop dword [rax]
mov rcx, qword [r8]
add r8, 8
mov rdx, rcx
mov rax, rcx
shl rcx, 8
shr rdx, 8
shl rax, 8
xor rdx, rax
and rdx, rsi
xor rdx, rcx
mov rcx, rdx
mov rax, rdx
shl rdx, 0x10
shr rcx, 0x10
shl rax, 0x10
xor rcx, rax
and rcx, rbp
xor rcx, rdx
rol rcx, 0x20
dec r9
mov qword [r8 - 8], rcx
jne 0x18001b650
mov rcx, rbx
call fcn.18001a650
test eax, eax
jne 0x18001b972
mov dword [rbx], eax
mov ecx, dword [rbx]
mov r8d, reloc.WS2_32.dll_WSASetLastError
xor edx, edx
sub r8d, ecx
add rcx, rdi
call fcn.180030f50
mov r11, qword [rbx + 8]
mov rax, qword [rbx + 0x10]
mov rcx, r11
mov r8d, recv
shr rcx, 0x3d
lea rcx, [rcx + rax*8]
lea rax, [r11*8]
mov qword [rbx + 8], rax
mov qword [rbx + 0x10], rcx
nop word [rax + rax]
mov rcx, qword [rdi]
add rdi, 8
mov rdx, rcx
mov rax, rcx
shl rcx, 8
shr rdx, 8
shl rax, 8
xor rdx, rax
and rdx, rsi
xor rdx, rcx
mov rcx, rdx
mov rax, rdx
shl rdx, 0x10
shr rcx, 0x10
shl rax, 0x10
xor rcx, rax
and rcx, rbp
xor rcx, rdx
rol rcx, 0x20
dec r8
mov qword [rdi - 8], rcx
jne 0x18001b6f0
mov rax, qword [rbx + 0x10]
mov rcx, rbx
mov qword [rbx + 0xc8], rax
mov rax, qword [rbx + 8]
mov qword [rbx + 0xd0], rax
call fcn.18001a650
test eax, eax
jne 0x18001b972
mov rcx, qword [rbx + 0x18]
mov rdx, rcx
mov rax, rcx
shl rcx, 8
shr rdx, 8
shl rax, 8
xor rdx, rax
and rdx, rsi
xor rdx, rcx
mov rcx, rdx
mov rax, rdx
shl rdx, 0x10
shr rcx, 0x10
shl rax, 0x10
xor rcx, rax
and rcx, rbp
xor rcx, rdx
rol rcx, 0x20
mov qword [rbx + 0x18], rcx
mov rcx, qword [rbx + 0x20]
mov rdx, rcx
mov rax, rcx
shl rcx, 8
shr rdx, 8
shl rax, 8
xor rdx, rax
and rdx, rsi
xor rdx, rcx
mov rcx, rdx
mov rax, rdx
shl rdx, 0x10
shr rcx, 0x10
shl rax, 0x10
xor rcx, rax
and rcx, rbp
xor rcx, rdx
rol rcx, 0x20
mov qword [rbx + 0x20], rcx
mov rcx, qword [rbx + 0x28]
mov rdx, rcx
mov rax, rcx
shl rcx, 8
shr rdx, 8
shl rax, 8
xor rdx, rax
and rdx, rsi
xor rdx, rcx
mov rcx, rdx
mov rax, rdx
shl rdx, 0x10
shr rcx, 0x10
shl rax, 0x10
xor rcx, rax
and rcx, rbp
xor rcx, rdx
rol rcx, 0x20
mov qword [rbx + 0x28], rcx
mov rcx, qword [rbx + 0x30]
mov rdx, rcx
mov rax, rcx
shl rcx, 8
shr rdx, 8
shl rax, 8
xor rdx, rax
and rdx, rsi
xor rdx, rcx
mov rcx, rdx
mov rax, rdx
shl rdx, 0x10
shr rcx, 0x10
shl rax, 0x10
xor rcx, rax
and rcx, rbp
xor rcx, rdx
rol rcx, 0x20
mov qword [rbx + 0x30], rcx
mov rcx, qword [rbx + 0x38]
mov rdx, rcx
mov rax, rcx
shr rdx, 8
shl rax, 8
xor rdx, rax
shl rcx, 8
and rdx, rsi
xor rdx, rcx
mov rcx, rdx
mov rax, rdx
shl rdx, 0x10
shr rcx, 0x10
shl rax, 0x10
xor rcx, rax
and rcx, rbp
xor rcx, rdx
rol rcx, 0x20
mov qword [rbx + 0x38], rcx
mov rcx, qword [rbx + 0x40]
mov rdx, rcx
mov rax, rcx
shl rcx, 8
shr rdx, 8
shl rax, 8
xor rdx, rax
and rdx, rsi
xor rdx, rcx
mov rcx, rdx
mov rax, rdx
shl rdx, 0x10
shr rcx, 0x10
shl rax, 0x10
xor rcx, rax
and rcx, rbp
xor rcx, rdx
rol rcx, 0x20
mov qword [rbx + 0x40], rcx
mov rcx, qword [rbx + 0x48]
mov rdx, rcx
mov rax, rcx
shl rcx, 8
shr rdx, 8
shl rax, 8
xor rdx, rax
and rdx, rsi
xor rdx, rcx
mov rcx, rdx
mov rax, rdx
shl rdx, 0x10
shr rcx, 0x10
shl rax, 0x10
xor rcx, rax
and rcx, rbp
xor rcx, rdx
rol rcx, 0x20
mov qword [rbx + 0x48], rcx
mov rcx, qword [rbx + 0x50]
mov rdx, rcx
mov rax, rcx
shl rcx, 8
shr rdx, 8
shl rax, 8
xor rdx, rax
and rdx, rsi
xor rdx, rcx
mov rcx, rdx
mov rax, rdx
shl rdx, 0x10
shr rcx, 0x10
shl rax, 0x10
xor rcx, rax
and rcx, rbp
xor rcx, rdx
rol rcx, 0x20
xor eax, eax
mov qword [rbx + 0x50], rcx
mov rbx, qword [rsp + 0x30]
mov rbp, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x40]
add rsp, 0x20
pop rdi
ret