Function at 0x18001ed60
Capabilities:
Get socket status
Receive data
Receive data on socket
Send data
Send data on socket
Set socket configuration

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x170]
sub rsp, 0x270
mov rax, qword [0x18005d0e0]
xor rax, rsp
mov qword [rbp + 0x160], rax
mov r15, qword [rcx]
mov dword [rsp + 0x3c], edx
mov r12, rcx
mov qword [rsp + 0x40], 0x15180
mov r14d, edx
nop word [rax + rax]
xor ecx, ecx
mov qword [rsp + 0x58], r15
mov dword [rsp + 0x50], 1
xor eax, eax
cmp qword [rsp + rax*8 + 0x58], r14
je 0x18001edd2
inc ecx
inc rax
cmp ecx, 1
jb 0x18001edc1
cmp ecx, 1
jne 0x18001ede0
mov qword [rsp + rax*8 + 0x58], r14
inc dword [rsp + 0x50]
lea rax, [rsp + 0x40]
lea rdx, [rsp + 0x50]
xor r9d, r9d
xor r8d, r8d
or ecx, 0xffffffff
mov qword [rsp + 0x20], rax
call qword [sym.imp.WS2_32.dll_select]
test eax, eax
jle 0x18001f0cb
lea rdx, [rsp + 0x50]
mov rcx, r15
call qword [sym.imp.WS2_32.dll___WSAFDIsSet]
test eax, eax
je 0x18001ef7a
cmp dword [r12 + 8], 0
je 0x18001ee5a
xor ebx, ebx
mov edi, 4
nop dword [rax + rax]
mov rcx, qword [r12]
lea rdx, [rsp + rbx + 0x38]
xor r9d, r9d
mov r8d, edi
call qword [sym.imp.WS2_32.dll_recv]
test eax, eax
jle 0x18001f0cb
add ebx, eax
cmp ebx, 4
jae 0x18001ee76
sub edi, eax
jne 0x18001ee30
jmp 0x18001ee76
mov rcx, qword [r12]
lea rdx, [rsp + 0x38]
mov r8d, 4
call fcn.18002ce00
test eax, eax
je 0x18001f0cb
mov esi, dword [rsp + 0x38]
cmp esi, 0x3200000
ja 0x18001f0cb
mov ecx, esi
call fcn.18002f604
mov r13, rax
test esi, esi
je 0x18001f0a9
cmp dword [r12 + 8], 0
je 0x18001eed9
xor ebx, ebx
mov edi, esi
test esi, esi
je 0x18001eef0
nop dword [rax + rax]
mov rcx, qword [r12]
mov edx, ebx
xor r9d, r9d
add rdx, r13
mov r8d, edi
call qword [sym.imp.WS2_32.dll_recv]
test eax, eax
jle 0x18001f0a9
add ebx, eax
cmp ebx, esi
jae 0x18001eef0
sub edi, eax
jne 0x18001eeb0
jmp 0x18001eef0
mov rcx, qword [r12]
mov r8d, esi
mov rdx, rax
call fcn.18002ce00
test eax, eax
je 0x18001f0a9
lea eax, [rsi + 0x400]
lea ecx, [rsi + 1]
mov dword [rsp + 0x30], eax
call fcn.18002f604
lea r8, [0x18004e2c8]
mov rbx, rax
lea rax, [rsp + 0x30]
mov edx, esi
mov r9, rbx
mov rcx, r13
mov qword [rsp + 0x20], rax
call fcn.180024250
test eax, eax
jne 0x18001ef35
mov rcx, rbx
xor edi, edi
call fcn.18002f934
xor ebx, ebx
jmp 0x18001ef3e
movsxd rdi, dword [rsp + 0x30]
mov byte [rdi + rbx], 0
mov rcx, r13
call fcn.18002f934
test rbx, rbx
je 0x18001f0cb
test edi, edi
je 0x18001ef6d
xor r9d, r9d
mov r8d, edi
mov rdx, rbx
mov rcx, r14
call qword [sym.imp.WS2_32.dll_send]
cmp eax, edi
jne 0x18001f09f
mov rcx, rbx
call fcn.18002f934
jmp 0x18001edb0
lea rdx, [rsp + 0x50]
mov rcx, r14
call qword [sym.imp.WS2_32.dll___WSAFDIsSet]
test eax, eax
je 0x18001f0cb
lea rdx, [rsp + 0x50]
mov rcx, r14
call qword [sym.imp.WS2_32.dll___WSAFDIsSet]
test eax, eax
je 0x18001f0cb
lea r8, [rsp + 0x30]
mov edx, 0x4004667f
mov rcx, r14
mov dword [rsp + 0x30], 1
call qword [sym.imp.WS2_32.dll_ioctlsocket]
test eax, eax
js 0x18001f0cb
mov ebx, dword [rsp + 0x30]
test ebx, ebx
je 0x18001f0bd
cmp ebx, 0x3200000
jae 0x18001f0bd
lea ecx, [rbx + 1]
call fcn.18002f604
mov ecx, dword [rsp + 0x30]
xor r9d, r9d
mov byte [rcx + rax], 0
mov r8d, dword [rsp + 0x30]
mov rdx, rax
mov rcx, r14
mov rsi, rax
call qword [sym.imp.WS2_32.dll_recv]
cmp eax, dword [rsp + 0x30]
jne 0x18001f0b3
test rsi, rsi
je 0x18001f0cb
lea eax, [rbx*4 + 0x400]
mov dword [rsp + 0x34], eax
inc eax
movsxd rcx, eax
call fcn.18002f604
lea r8, [0x18004e2c8]
mov edx, ebx
lea r9, [rax + 4]
mov rdi, rax
lea rax, [rsp + 0x34]
mov rcx, rsi
mov qword [rsp + 0x20], rax
call fcn.180023f20
mov r11d, dword [rsp + 0x34]
mov rcx, rsi
lea ebx, [r11 + 4]
mov dword [rdi], r11d
call fcn.18002f934
cmp dword [r12 + 8], 0
mov r11, qword [r12]
mov r8d, ebx
mov rdx, rdi
je 0x18001f086
xor r9d, r9d
mov rcx, r11
call qword [sym.imp.WS2_32.dll_send]
jmp 0x18001f08e
mov ecx, r11d
call fcn.180004ae0
mov rcx, rdi
cmp eax, ebx
jne 0x18001f0a2
call fcn.18002f934
jmp 0x18001edb0
mov rcx, rbx
call fcn.18002f934
jmp 0x18001f0cb
mov rcx, r13
call fcn.18002f934
jmp 0x18001f0cb
mov rcx, rsi
call fcn.18002f934
jmp 0x18001f0cb
lea rcx, str.ioctlsocket_get_len_u_r_n
mov edx, ebx
call fcn.180031e08
cmp dword [rsp + 0x3c], 0
je 0x18001f0e9
mov edx, 2
mov rcx, r14
call qword [sym.imp.WS2_32.dll_shutdown]
mov rcx, r14
call qword [sym.imp.WS2_32.dll_closesocket]
mov rcx, qword [r12]
test rcx, rcx
je 0x18001f120
cmp dword [r12 + 8], 0
je 0x18001f111
mov edx, 2
call qword [sym.imp.WS2_32.dll_shutdown]
mov rcx, qword [r12]
call qword [sym.imp.WS2_32.dll_closesocket]
jmp 0x18001f118
mov ecx, ecx
call fcn.180004100
mov qword [r12], 0
mov rcx, qword [rbp + 0x160]
xor rcx, rsp
call fcn.18002f950
mov rbx, qword [rsp + 0x2c0]
add rsp, 0x270
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret