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

Disassembly:
push rbx
push rbp
push rdi
push r14
sub rsp, 0xa78
mov rax, qword [0x140116008]
xor rax, rsp
mov qword [rsp + 0xa50], rax
mov rbx, r8
xor r14d, r14d
mov r8, rdx
mov dword [rsp + 0x40], r14d
mov eax, 0x10624dd3
mov rdi, r9
imul edx
mov rbp, rcx
mov r9d, r14d
sar edx, 6
mov eax, edx
shr eax, 0x1f
add edx, eax
movabs rax, 0x624dd2f1a9fbe77
mov dword [rsp + 0x38], edx
mul r8
mov rax, r8
sub rax, rdx
shr rax, 1
add rax, rdx
shr rax, 9
imul eax, eax, 0x3e8
sub r8d, eax
imul eax, r8d, 0x3e8
mov r8d, r14d
mov dword [rsp + 0x3c], eax
test rbx, rbx
je 0x14001f217
mov r9, qword [rbx]
mov r8d, 1
mov qword [rsp + 0x48], r9
mov dword [rsp + 0x40], r8d
mov rdx, qword [rcx + 0x50]
mov qword [rsp + 0xa70], rsi
cmp rdx, 0xffffffffffffffff
jne 0x14001f26a
test rdi, rdi
je 0x14001f260
lea rsi, str.ytcp
mov dword [rsp + 0x28], 0xbbc
lea r9, str.Invalid_argument
mov qword [rsp + 0x20], rsi
lea r8, str._s___s:_d_
mov edx, 0x100
mov rcx, rdi
call fcn.1400217a0
nop dword [rax]
mov eax, 0xfffffffe
jmp 0x14001f4fa
mov ecx, r14d
test r8d, r8d
je 0x14001f282
mov eax, ecx
cmp qword [rsp + rax*8 + 0x48], rdx
je 0x14001f282
inc ecx
cmp ecx, r8d
jb 0x14001f272
cmp ecx, r8d
jne 0x14001f298
cmp r8d, 0x40
jae 0x14001f298
mov eax, ecx
mov qword [rsp + rax*8 + 0x48], rdx
inc dword [rsp + 0x40]
cmp rdx, r9
mov qword [rsp + 0xa68], r15
cmovbe rdx, r9
test rdx, rdx
je 0x14001f4f0
lea ecx, [rdx + 1]
xor r9d, r9d
lea rax, [rsp + 0x38]
xor r8d, r8d
lea rdx, [rsp + 0x40]
mov qword [rsp + 0x20], rax
call qword [sym.imp.WS2_32.dll_select]
test eax, eax
jns 0x14001f30a
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
test rdi, rdi
jne 0x14001f2eb
mov r15d, 0xfffffff8
mov eax, r15d
jmp 0x14001f4f2
mov r9, rdi
lea rcx, str.ytcp
mov r8d, eax
mov edx, 0xbcd
call fcn.140019fe0
mov r15d, eax
jmp 0x14001f4f2
lea rsi, str.ytcp
mov r15d, 0xfffffff8
test rbx, rbx
je 0x14001f37e
mov rcx, qword [rbx]
lea rdx, [rsp + 0x40]
call qword [sym.imp.WS2_32.dll___WSAFDIsSet]
test eax, eax
je 0x14001f37e
mov rcx, qword [rbx]
lea r8d, [r15 + 9]
xor r9d, r9d
mov byte [rsp + 0x30], r14b
lea rdx, [rsp + 0x30]
call qword [sym.imp.WS2_32.dll_recv]
test eax, eax
jns 0x14001f371
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
test rdi, rdi
jne 0x14001f35c
mov eax, r15d
jmp 0x14001f376
mov r9, rdi
mov r8d, eax
mov edx, 0x11d
mov rcx, rsi
call fcn.140019fe0
jmp 0x14001f376
movzx eax, byte [rsp + 0x30]
test eax, eax
js 0x14001f4f2
mov rcx, qword [rbp + 0x50]
lea rdx, [rsp + 0x40]
call qword [sym.imp.WS2_32.dll___WSAFDIsSet]
test eax, eax
je 0x14001f4f0
mov rcx, qword [rbp + 0x78]
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
movzx ebx, word [rbp + 0x58]
mov rcx, qword [rbp + 0x78]
sub bx, word [rbp + 0x5a]
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
movzx r8d, bx
test r8d, r8d
je 0x14001f4eb
mov rcx, qword [rbp + 0x50]
lea rdx, [rsp + 0x250]
mov eax, 0x800
cmp r8d, eax
cmova r8d, eax
xor r9d, r9d
call qword [sym.imp.WS2_32.dll_recv]
test eax, eax
jne 0x14001f41e
test rdi, rdi
je 0x14001f410
mov dword [rsp + 0x28], 0x2d0
lea r9, str.No_more_data
lea r8, str._s___s:_d_
mov qword [rsp + 0x20], rsi
mov edx, 0x100
mov rcx, rdi
call fcn.1400217a0
mov r14d, 0xfffffff7
mov eax, r14d
jmp 0x14001f4f2
jns 0x14001f457
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
cmp eax, 0x2733
je 0x14001f4eb
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
test rdi, rdi
je 0x14001f452
mov r9, rdi
mov r8d, eax
mov edx, 0x2db
mov rcx, rsi
call fcn.140019fe0
mov r15d, eax
mov r14d, r15d
jmp 0x14001f45a
mov r14d, eax
test r14d, r14d
jle 0x14001f4eb
mov rcx, qword [rbp + 0x78]
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
movzx eax, word [rbp + 0x58]
mov r15, qword [rbp + 0x60]
mov rcx, qword [rbp + 0x70]
lea rbx, [r15 + rax]
sub ax, word [rbp + 0x5a]
cmp r14w, ax
ja 0x14001f4e1
movzx r8d, r14w
lea rdx, [rsp + 0x250]
lea rdi, [r8 + rcx]
cmp rdi, rbx
ja 0x14001f4aa
call fcn.140050fe0
cmp rdi, rbx
cmovne r15, rdi
jmp 0x14001f4d8
sub bx, cx
movzx esi, bx
mov r8d, esi
call fcn.140050fe0
movzx ebx, r14w
lea rdx, [rsp + 0x250]
sub rbx, rsi
add rdx, rsi
mov r8, rbx
mov rcx, r15
call fcn.140050fe0
add r15, rbx
add word [rbp + 0x5a], r14w
mov qword [rbp + 0x70], r15
mov rcx, qword [rbp + 0x78]
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, r14d
jmp 0x14001f4f2
xor eax, eax
mov r15, qword [rsp + 0xa68]
mov rsi, qword [rsp + 0xa70]
mov rcx, qword [rsp + 0xa50]
xor rcx, rsp
call fcn.14004ee60
add rsp, 0xa78
pop r14
pop rdi
pop rbp
pop rbx
ret