Function at 0x1400187c0
Capabilities:
Get socket status
Receive data
Receive data on socket

Disassembly:
push rbp
push rdi
push r13
lea rbp, [rsp - 0x5a0]
sub rsp, 0x6a0
mov rax, qword [0x1400690b8]
xor rax, rsp
mov qword [rbp + 0x570], rax
mov qword [rsp + 0x38], r8
mov r13d, r9d
mov qword [rsp + 0x40], rdx
mov rdi, rcx
cmp rcx, 0xffffffffffffffff
jne 0x14001880b
lea ecx, [rdi + 0xb]
call int.140019020
mov rax, rdi
jmp 0x140018a52
mov qword [rsp + 0x6d8], rbx
xor eax, eax
mov qword [rsp + 0x698], rsi
xor sil, sil
mov qword [rsp + 0x690], r12
xor r11d, r11d
mov qword [rsp + 0x688], r14
mov r12d, r11d
mov qword [rsp + 0x680], r15
lea r14, [rax - 1]
mov r15d, dword [rbp + 0x5e0]
mov word [rsp + 0x54], ax
mov byte [rsp + 0x56], al
nop dword [rax]
nop word [rax + rax]
movzx r10d, byte [rsp + 0x54]
mov r8d, 0xffffffff
mov edx, dword [rsp + 0x58]
test r10b, r10b
mov eax, dword [rbp + 0x160]
cmovne edx, r11d
mov dword [rsp + 0x50], r8d
cmp byte [rsp + 0x55], 0
mov dword [rsp + 0x58], edx
cmovne eax, r11d
cmp byte [rsp + 0x56], 0
mov dword [rbp + 0x160], eax
mov eax, dword [rbp + 0x368]
cmovne eax, r11d
mov dword [rbp + 0x368], eax
test r10b, r10b
jne 0x1400188be
mov r10b, 1
mov edx, r11d
mov byte [rsp + 0x54], r10b
mov dword [rsp + 0x58], edx
mov eax, r11d
test edx, edx
je 0x1400188df
lea rcx, [rsp + 0x60]
nop word [rax + rax]
cmp qword [rcx], rdi
je 0x1400188df
inc eax
add rcx, 8
cmp eax, edx
jb 0x1400188d0
cmp eax, edx
jne 0x1400188fe
cmp edx, 0x40
jae 0x1400188fe
mov ecx, eax
mov qword [rsp + rcx*8 + 0x60], rdi
inc dword [rsp + 0x58]
movzx r10d, byte [rsp + 0x54]
mov r8d, dword [rsp + 0x50]
cmp edi, r8d
mov ebx, r15d
mov eax, r15d
cmovg r8d, edi
mov dword [rsp + 0x50], r8d
test r15d, r15d
jle 0x14001893c
call qword [sym.imp.KERNEL32.dll_GetTickCount]
test sil, sil
je 0x140018931
lea ebx, [r12 + r15]
sub ebx, eax
js 0x140018a1d
xor r11d, r11d
jmp 0x140018943
mov r12d, eax
mov sil, 1
xor r11d, r11d
jmp 0x140018943
mov rcx, r11
test eax, eax
js 0x140018987
movzx eax, byte [0x14006b6d8]
lea rcx, [rsp + 0x30]
test al, al
nop
movzx r10d, byte [rsp + 0x54]
mov eax, 0x64
cmovne ebx, eax
mov eax, 0x10624dd3
imul ebx
sar edx, 6
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0x3e8
mov dword [rsp + 0x30], edx
sub ebx, eax
imul eax, ebx, 0x3e8
mov dword [rsp + 0x34], eax
cmp byte [rsp + 0x56], 0
lea r9, [rbp + 0x368]
mov qword [rsp + 0x20], rcx
lea r8, [rbp + 0x160]
cmove r9, r11
lea rdx, [rsp + 0x58]
cmp byte [rsp + 0x55], 0
cmove r8, r11
test r10b, r10b
cmove rdx, r11
xor ecx, ecx
call qword [sym.imp.WS2_32.dll_select]
cmp eax, 0xffffffff
je 0x140018a27
test eax, eax
je 0x140018a1d
jle 0x140018a27
mov r8d, dword [rsp + 0x38]
mov ecx, r13d
mov rdx, qword [rsp + 0x40]
and ecx, 1
mov r9d, ecx
mov eax, r13d
or r9d, 2
and al, 2
cmove r9d, ecx
mov rcx, rdi
call qword [sym.imp.WS2_32.dll_recv]
cmp eax, 0xffffffff
jne 0x140018a02
mov r14, 0xffffffffffffffff
jmp 0x140018a0b
movsxd r14, eax
cmp r14, 0xffffffffffffffff
jne 0x140018a27
call fcn.140018d50
cmp eax, 0x10
jne 0x140018a27
xor r11d, r11d
jmp 0x140018860
mov ecx, reloc.WS2_32.dll_ntohs
call int.140019020
mov r15, qword [rsp + 0x680]
mov rax, r14
mov r14, qword [rsp + 0x688]
mov r12, qword [rsp + 0x690]
mov rsi, qword [rsp + 0x698]
mov rbx, qword [rsp + 0x6d8]
mov rcx, qword [rbp + 0x570]
xor rcx, rsp
call fcn.140028cd0
add rsp, 0x6a0
pop r13
pop rdi
pop rbp
ret