Function at 0x18003cd90
Capabilities:
Receive data
Receive data on socket
Send data
Send data on socket
Set socket configuration

Disassembly:
mov qword [rsp + 0x20], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x490
mov rax, qword [0x1801eab50]
xor rax, rsp
mov qword [rsp + 0x480], rax
mov qword [rsp + 0x60], r8
mov r15, rdx
mov qword [rsp + 0x40], rdx
mov rbp, rcx
mov dword [rsp + 0x58], 0
movsxd rsi, dword [rdx + 0x220]
mov edi, dword [rcx + 0xa8]
mov rcx, rdx
call fcn.18003cce0
movzx r12d, al
xor ecx, ecx
call fcn.18016ddc0
mov r14, rax
xor r13d, r13d
test edi, edi
jg 0x18003ce08
mov rcx, r15
call fcn.1800406c0
jmp 0x18003d160
cmp qword [rbp + 0xc8], 0
jne 0x18003cea9
movzx edx, word [r15 + 0xc]
xor ecx, ecx
call fcn.180043b30
mov rbx, rax
mov qword [rsp + 0x68], rax
mov ecx, 0x18
call fcn.18015fda0
mov qword [rsp + 0x70], rax
test rax, rax
je 0x18003ce60
xorps xmm0, xmm0
movups xmmword [rax], xmm0
mov dword [rax + 8], 1
mov dword [rax + 0xc], 1
lea rcx, vtable.std::_Ref_count_class_HttpParser_.0
mov qword [rax], rcx
mov qword [rax + 0x10], rbx
mov qword [rbp + 0xc8], rbx
mov rbx, qword [rbp + 0xd0]
mov qword [rbp + 0xd0], rax
test rbx, rbx
je 0x18003cea9
mov eax, 0xffffffff
lock xadd dword [rbx + 8], eax
cmp eax, 1
jne 0x18003cea9
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax]
mov eax, 0xffffffff
lock xadd dword [rbx + 0xc], eax
cmp eax, 1
jne 0x18003cea9
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + reloc.WS2_32.dll_htonl]
mov rcx, qword [rbp + 0xc8]
mov rax, qword [rcx]
mov rdx, r15
call qword [rax + 0x38]
xor edx, edx
mov r8d, 0x400
lea rcx, [rsp + 0x80]
call fcn.180162c50
mov qword [rsp + 0x38], 0
mov qword [rsp + 0x30], 0
mov rcx, qword [rbp + 0xc8]
mov r15d, edi
mov rax, qword [rcx]
lea r8, [rsp + 0x30]
lea rdx, [rsp + 0x38]
call qword [rax + reloc.WS2_32.dll_htonl]
test eax, eax
je 0x18003cfd6
xor ebx, ebx
mov rcx, qword [rsp + 0x30]
nop dword [rax]
test esi, esi
jle 0x18003cf64
xor ecx, ecx
call fcn.18016ddc0
mov rdx, rax
mov rcx, rax
sub rcx, r14
cmp rcx, rsi
jge 0x18003d199
mov eax, r14d
sub eax, edx
add eax, esi
imul eax, eax, 0x3e8
mov dword [rsp + 0x48], eax
mov dword [rsp + 0x20], 4
lea r9, [rsp + 0x48]
mov edx, 0xffff
mov r8d, 0x1005
mov rcx, r15
call qword [sym.imp.WS2_32.dll_setsockopt]
mov rcx, qword [rsp + 0x30]
movsxd rdx, ebx
sub ecx, ebx
add rdx, qword [rsp + 0x38]
mov r8d, ecx
test r12b, r12b
je 0x18003cf87
lea rdi, [rbp + 0xb0]
mov rcx, qword [rdi]
call fcn.180042750
jmp 0x18003cf9a
xor r9d, r9d
mov rcx, r15
call qword [sym.imp.WS2_32.dll_send]
lea rdi, [rbp + 0xb0]
test eax, eax
jle 0x18003d11c
add ebx, eax
movsxd rax, ebx
mov rcx, qword [rsp + 0x30]
cmp rax, rcx
jne 0x18003cf10
mov rcx, qword [rbp + 0xc8]
mov rax, qword [rcx]
lea r8, [rsp + 0x30]
lea rdx, [rsp + 0x38]
call qword [rax + reloc.WS2_32.dll_htonl]
test eax, eax
jne 0x18003cf02
jmp 0x18003cfdd
lea rdi, [rbp + 0xb0]
mov rcx, qword [rbp + 0xc8]
mov rax, qword [rcx]
mov rdx, qword [rsp + 0x60]
call qword [rax + 0x40]
nop
test esi, esi
jle 0x18003d03f
xor ecx, ecx
call fcn.18016ddc0
mov rdx, rax
mov rcx, rax
sub rcx, r14
cmp rcx, rsi
jge 0x18003d199
mov eax, r14d
sub eax, edx
add eax, esi
imul eax, eax, 0x3e8
mov dword [rsp + 0x50], eax
mov dword [rsp + 0x20], 4
lea r9, [rsp + 0x50]
mov edx, 0xffff
mov r8d, 0x1006
mov rcx, r15
call qword [sym.imp.WS2_32.dll_setsockopt]
mov r8d, 0x400
lea rdx, [rsp + 0x80]
test r12b, r12b
je 0x18003d05c
mov rcx, qword [rdi]
call fcn.180042740
jmp 0x18003d068
xor r9d, r9d
mov rcx, r15
call qword [sym.imp.WS2_32.dll_recv]
mov ebx, eax
test eax, eax
jle 0x18003d0fc
mov rcx, qword [rbp + 0xc8]
mov rax, qword [rcx]
movsxd r8, ebx
lea rdx, [rsp + 0x80]
call qword [rax + reloc.WS2_32.dll_recv]
cmp eax, ebx
jne 0x18003d1a0
mov rcx, qword [rbp + 0xc8]
mov rax, qword [rcx]
call qword [rax + 0x30]
test al, al
je 0x18003cff0
mov rcx, qword [rsp + 0x40]
call fcn.1800404f0
test al, al
je 0x18003d0c3
mov rcx, qword [rsp + 0x60]
call fcn.1800404f0
test al, al
jne 0x18003d0f5
mov rcx, qword [rdi]
test rcx, rcx
je 0x18003d0d7
call fcn.1800426f0
mov qword [rdi], 0
movsxd rax, dword [rbp + 0xa8]
test eax, eax
js 0x18003d0f5
mov rcx, rax
call qword [sym.imp.WS2_32.dll_closesocket]
mov dword [rbp + 0xa8], 0xffffffff
xor eax, eax
jmp 0x18003d1e9
mov rbx, qword [rsp + 0x60]
cmp dword [rbx + 0x120], 0
jne 0x18003d11c
cmp word [rbx + 0xc], 1
jne 0x18003d11c
cmp word [rbx + 0xe], 0
je 0x18003d1a7
inc r13d
cmp r13d, 1
jne 0x18003d1ad
mov rcx, qword [rdi]
test rcx, rcx
je 0x18003d13d
call fcn.1800426f0
mov qword [rdi], 0
movsxd rax, dword [rbp + 0xa8]
test eax, eax
js 0x18003d15b
mov rcx, rax
call qword [sym.imp.WS2_32.dll_closesocket]
mov dword [rbp + 0xa8], 0xffffffff
mov r15, qword [rsp + 0x40]
lea rdx, [r15 + 0x1a0]
cmp qword [rdx + 0x18], 0x10
jb 0x18003d171
mov rdx, qword [rdx]
mov r9d, r12d
mov eax, dword [r15 + 0x220]
mov dword [rsp + 0x20], eax
mov r8d, dword [r15 + 0x1c0]
mov rcx, rbp
call fcn.18003d220
mov edi, eax
test eax, eax
js 0x18003d1e9
jmp 0x18003ce08
mov eax, 0x44c
jmp 0x18003d1e9
mov eax, 0x400
jmp 0x18003d1e9
mov ebx, dword [rsp + 0x58]
jmp 0x18003d1b5
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
mov ebx, eax
mov rcx, qword [rdi]
test rcx, rcx
je 0x18003d1c9
call fcn.1800426f0
mov qword [rdi], 0
movsxd rax, dword [rbp + 0xa8]
test eax, eax
js 0x18003d1e7
mov rcx, rax
call qword [sym.imp.WS2_32.dll_closesocket]
mov dword [rbp + 0xa8], 0xffffffff
mov eax, ebx
mov rcx, qword [rsp + 0x480]
xor rcx, rsp
call fcn.18015fd80
mov rbx, qword [rsp + 0x4e8]
add rsp, 0x490
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret