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

Disassembly:
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x400]
sub rsp, 0x500
mov qword [rbp - 0x20], 0xfffffffffffffffe
mov qword [rsp + 0x558], rbx
mov rax, qword [0x1403b8c08]
xor rax, rsp
mov qword [rbp + 0x3f0], rax
mov rsi, r8
mov qword [rsp + 0x70], r8
mov dword [rsp + 0x40], edx
mov r15, rcx
mov qword [rsp + 0x50], rcx
lea rax, [rcx + 0x30]
mov qword [rbp - 0x80], rax
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov byte [rbp - 0x78], 1
cmp byte [r15 + 0x198], 0
jne 0x14005eb55
lea r14, [r15 + 0x148]
mov rax, qword [r14]
xor edi, edi
mov dword [rax], edi
mov qword [r14 + 0x10], 0xffffffffffffffff
mov rax, qword [r15 + 0x160]
mov dword [rax], edi
mov qword [r15 + 0x170], 0xffffffffffffffff
mov rax, qword [r15 + 0x178]
mov dword [rax], edi
mov qword [r15 + 0x188], 0xffffffffffffffff
lea rbx, [r15 + 0x58]
mov qword [rsp + 0x68], rbx
mov rbx, qword [rbx]
mov ecx, edi
mov r8, qword [r14]
mov edx, dword [r8]
test edx, edx
je 0x14005e4cf
nop dword [rax]
mov eax, ecx
cmp qword [r8 + rax*8 + 8], rbx
je 0x14005e4e8
inc ecx
cmp ecx, edx
jb 0x14005e4c0
inc edx
mov rcx, r14
call fcn.14005d400
mov rcx, qword [r14]
mov eax, dword [rcx]
mov qword [rcx + rax*8 + 8], rbx
mov rax, qword [r14]
inc dword [rax]
mov rbx, qword [r15 + 0x190]
test rbx, rbx
je 0x14005e50e
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
test al, al
je 0x14005e62b
mov rbx, qword [rbx + 8]
test rbx, rbx
jne 0x14005e4f4
xor sil, sil
lea r13, [r15 + 0x70]
mov qword [rsp + 0x58], 3
nop
mov rcx, rdi
mov qword [rsp + 0x60], rcx
test sil, sil
jne 0x14005e534
cmp qword [r13 + 8], 0
je 0x14005e537
mov sil, 1
mov rax, qword [r13]
mov rbx, qword [rax]
cmp rbx, rax
je 0x14005e5ee
nop word [rax + rax]
lea rdi, [rbx]
mov rbx, qword [rbx]
mov r15, qword [r14]
mov eax, dword [r15]
lea edx, [rax + 1]
mov ecx, dword [r14 + 8]
cmp edx, ecx
jbe 0x14005e5cf
mov eax, ecx
shr eax, 1
add ecx, eax
cmp ecx, edx
cmovae edx, ecx
mov r12d, edx
lea rcx, [rdx*8 + 8]
call fcn.140171ab4
mov r15, rax
mov rcx, qword [r14]
mov edx, dword [rcx]
mov dword [rax], edx
xor r8d, r8d
mov rcx, qword [r14]
cmp dword [rcx], r8d
jbe 0x14005e5c0
nop word [rax + rax]
lea rdx, [r8*8]
mov rax, qword [r14]
mov rcx, qword [rdx + rax + 8]
mov qword [rdx + r15 + 8], rcx
inc r8d
mov rcx, qword [r14]
cmp r8d, dword [rcx]
jb 0x14005e5a0
call fcn.14016a3b0
mov qword [r14], r15
mov dword [r14 + 8], r12d
mov eax, dword [r15]
mov ecx, eax
mov rax, qword [rdi + 0x10]
mov qword [r15 + rcx*8 + 8], rax
mov rax, qword [r14]
inc dword [rax]
cmp rbx, qword [r13]
jne 0x14005e550
mov rcx, qword [rsp + 0x60]
mov rdi, qword [r14 + 0x10]
cmp rdi, rcx
cmovbe rdi, rcx
add r13, 0x38
add r14, 0x18
sub qword [rsp + 0x58], 1
jne 0x14005e520
test sil, sil
mov rsi, qword [rsp + 0x70]
mov r15, qword [rsp + 0x50]
jne 0x14005e633
cmp qword [r15 + 0x120], 0
jne 0x14005e633
xor r14b, r14b
jmp 0x14005e636
mov sil, 1
jmp 0x14005e511
mov r14b, 1
lea r12, [r15 + 0x110]
lea r13, [r15 + 0x160]
mov r8, rsi
mov rdx, r12
mov rcx, r13
call fcn.140060700
mov rbx, qword [r15 + 0x170]
cmp rbx, rdi
cmovbe rbx, rdi
lea rdi, [r15 + 0x178]
mov qword [rsp + 0x60], rdi
mov r8, rsi
mov rdx, r12
mov rcx, rdi
call fcn.140060700
mov r15, qword [r15 + 0x188]
cmp r15, rbx
cmovbe r15, rbx
mov eax, dword [rsp + 0x40]
test eax, eax
jne 0x14005e699
test r14b, r14b
je 0x14005eb55
xor ecx, ecx
mov qword [rsp + 0x48], rcx
mov r14, qword [rsp + 0x50]
test eax, eax
je 0x14005e6f7
mov ecx, 0x11e1a300
cmp eax, ecx
cmovbe ecx, eax
mov rbx, qword [r14 + 0x190]
test rbx, rbx
je 0x14005e6d6
nop
mov rax, qword [rbx]
mov edx, ecx
mov rcx, rbx
call qword [rax + SafeArrayCopy]
mov ecx, eax
mov rbx, qword [rbx + 8]
test rbx, rbx
jne 0x14005e6c0
mov eax, 0x431bde83
imul ecx
sar edx, 0x12
mov eax, edx
shr eax, 0x1f
add edx, eax
mov dword [rsp + 0x48], edx
imul eax, edx, 0xf4240
sub ecx, eax
mov dword [rsp + 0x4c], ecx
lea rcx, [r14 + 0x30]
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov byte [rbp - 0x78], 0
lea r8, [0x1403d4c88]
lea rdx, [0x14001aea0]
lea rcx, [0x1403d4c80]
call fcn.1400ddbc4
test eax, eax
je 0x14005eb95
mov rbx, qword [rdi]
mov rdi, qword [r13]
mov r14, qword [r14 + 0x148]
xor ecx, ecx
call qword [sym.imp.WS2_32.dll_WSASetLastError]
test r14, r14
jne 0x14005e7a0
test rdi, rdi
jne 0x14005e7a0
test rbx, rbx
jne 0x14005e7a0
mov eax, 0x10624dd3
imul dword [rsp + 0x4c]
sar edx, 6
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
imul eax, dword [rsp + 0x48], 0x3e8
add ecx, eax
mov r15d, 1
cmove ecx, r15d
call qword [sym.imp.KERNEL32.dll_Sleep]
lea r8, [0x1403d4c88]
lea rdx, [0x14001aea0]
lea rcx, [0x1403d4c80]
call fcn.1400ddbc4
test eax, eax
je 0x14005eb8f
jmp 0x14005e9ea
cmp dword [rsp + 0x48], 0
jne 0x14005e7bf
mov ecx, dword [rsp + 0x4c]
lea eax, [rcx - 1]
mov edx, 0x3e8
cmp eax, 0x3e6
cmovbe ecx, edx
mov dword [rsp + 0x4c], ecx
lea ecx, [r15 + 1]
lea rax, [rsp + 0x48]
mov qword [rsp + 0x20], rax
mov r9, rbx
mov r8, rdi
mov rdx, r14
call qword [sym.imp.WS2_32.dll_select]
mov edi, eax
call fcn.140046d00
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
test edi, edi
js 0x14005e811
lea r8, [0x1403d4c88]
lea rdx, [0x14001aea0]
lea rcx, [0x1403d4c80]
call fcn.1400ddbc4
test eax, eax
je 0x14005eb9b
test edi, edi
jle 0x14005e9ea
mov rdx, qword [rsp + 0x50]
mov rdx, qword [rdx + 0x148]
mov rbx, qword [rsp + 0x68]
mov rcx, qword [rbx]
call sub.WS2_32.dll___WSAFDIsSet
test eax, eax
je 0x14005e9ea
lea rax, [rbp - 0x10]
mov qword [rbp - 0x68], rax
mov dword [rbp - 0x70], 0x400
lea r8, [0x1403d4c88]
lea rdx, [0x14001aea0]
lea rcx, [0x1403d4c80]
call fcn.1400ddbc4
test eax, eax
je 0x14005eba1
mov r15d, 1
nop
mov rbx, qword [rbx]
xor ecx, ecx
call qword [sym.imp.WS2_32.dll_WSASetLastError]
xor eax, eax
mov dword [rsp + 0x40], eax
mov dword [rsp + 0x58], eax
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x58]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x40]
mov r8d, r15d
lea rdx, [rbp - 0x70]
mov rcx, rbx
call qword [sym.imp.WS2_32.dll_WSARecv]
mov r14d, eax
call fcn.140046d00
mov rbx, rax
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
mov dword [rbp - 0x60], eax
mov qword [rbp - 0x58], rbx
movaps xmm0, xmmword [rbp - 0x60]
movdqa xmmword [rsp + 0x70], xmm0
cmp eax, 0x40
jne 0x14005e8f1
call fcn.140046d00
mov dword [rbp - 0x50], 0x2746
mov qword [rbp - 0x48], rax
movaps xmm0, xmmword [rbp - 0x50]
movdqa xmmword [rsp + 0x70], xmm0
jmp 0x14005e922
cmp eax, 0x4d2
jne 0x14005e914
call fcn.140046d00
mov dword [rbp - 0x40], 0x274d
mov qword [rbp - 0x38], rax
movaps xmm0, xmmword [rbp - 0x40]
movdqa xmmword [rsp + 0x70], xmm0
jmp 0x14005e922
cmp eax, 0x2738
je 0x14005e927
cmp eax, 0xea
je 0x14005e927
test r14d, r14d
jne 0x14005e97b
mov dword [rbp - 0x30], 0
lea rbx, [0x1403d4c88]
mov r8, rbx
lea rdx, [0x14001aea0]
lea rcx, [0x1403d4c80]
call fcn.1400ddbc4
test eax, eax
je 0x14005eb89
mov qword [rbp - 0x28], rbx
movaps xmm0, xmmword [rbp - 0x30]
movdqa xmmword [rsp + 0x70], xmm0
mov eax, dword [rsp + 0x40]
cmp eax, 0x400
mov rbx, qword [rsp + 0x68]
je 0x14005e870
test eax, eax
jg 0x14005e9e8
je 0x14005e9b2
call fcn.140046d00
mov r14, qword [rsp + 0x78]
mov rax, qword [rax + 8]
mov ebx, dword [rsp + 0x70]
cmp qword [r14 + 8], rax
jne 0x14005e99b
cmp ebx, 0x2733
je 0x14005e9e8
call fcn.140046d00
mov rcx, qword [rax + 8]
cmp qword [r14 + 8], rcx
jne 0x14005e9b2
cmp ebx, 0x4d5
je 0x14005e9e8
mov rcx, qword [rbp - 0x80]
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov byte [rbp - 0x78], r15b
mov rbx, qword [rsp + 0x68]
mov rcx, rbx
call fcn.140039b00
mov qword [rbx + 8], 0xffffffffffffffff
mov qword [rbx], 0xffffffffffffffff
mov rcx, rbx
call fcn.1400546e0
dec edi
jmp 0x14005e9f8
dec edi
mov rcx, qword [rbp - 0x80]
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov byte [rbp - 0x78], 1
test edi, edi
jle 0x14005eb29
mov r8, rsi
mov rdx, r12
mov rcx, qword [rsp + 0x60]
call fcn.1400551e0
mov r8, rsi
mov rdx, r12
mov rcx, r13
call fcn.1400551e0
mov r13d, 2
mov r14, qword [rsp + 0x50]
add r14, 0xe0
mov r12, qword [rsp + 0x60]
nop word [rax + rax]
xor r15d, r15d
mov rcx, qword [r12]
cmp dword [rcx], r15d
jbe 0x14005eb17
mov r8, qword [rcx + r15*8 + 8]
mov rcx, qword [r14 + 0x28]
test rcx, rcx
je 0x14005ea94
xor edx, edx
mov rax, r8
div rcx
add rdx, rdx
mov rax, qword [r14 + 0x20]
mov rbx, qword [rax + rdx*8]
mov rcx, qword [r14]
cmp rbx, rcx
je 0x14005ea97
mov rax, qword [rax + rdx*8 + 8]
mov rax, qword [rax]
cmp rbx, rax
je 0x14005ea94
cmp qword [rbx + 0x10], r8
je 0x14005ea9a
mov rbx, qword [rbx]
cmp rbx, rax
jne 0x14005ea86
mov rcx, qword [r14]
mov rbx, rcx
cmp rbx, rcx
je 0x14005eb07
mov rdi, qword [rbx + 0x18]
test rdi, rdi
je 0x14005eafb
mov rcx, rdi
call qword [rdi + 0x50]
test eax, eax
je 0x14005eb07
mov rcx, qword [rbx + 0x18]
test rcx, rcx
je 0x14005ead4
mov rax, qword [rcx + 0x20]
mov qword [rbx + 0x18], rax
test rax, rax
jne 0x14005eacc
mov qword [rbx + 0x20], rax
mov qword [rcx + 0x20], 0
mov qword [rdi + 0x20], 0
mov rax, qword [rsi + 8]
test rax, rax
je 0x14005eaeb
mov qword [rax + 0x20], rdi
jmp 0x14005eaee
mov qword [rsi], rdi
mov qword [rsi + 8], rdi
mov rdi, qword [rbx + 0x18]
test rdi, rdi
jne 0x14005eaa8
lea rcx, [r14 - 8]
mov rdx, rbx
call fcn.1400442e0
inc r15d
mov rcx, qword [r12]
cmp r15d, dword [rcx]
jb 0x14005ea50
sub r14, 0x38
sub r12, 0x18
sub r13, 1
jns 0x14005ea40
mov rax, qword [rsp + 0x50]
mov rbx, qword [rax + 0x190]
test rbx, rbx
je 0x14005eb55
nop word [rax + rax]
mov rax, qword [rbx]
mov rdx, rsi
mov rcx, rbx
call qword [rax + 0x20]
mov rbx, qword [rbx + 8]
test rbx, rbx
jne 0x14005eb40
mov rcx, qword [rbp - 0x80]
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov rcx, qword [rbp + 0x3f0]
xor rcx, rsp
call fcn.140172190
mov rbx, qword [rsp + 0x558]
add rsp, 0x500
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
call fcn.14028ff34
nop
call fcn.14028ff34
int3
call fcn.14028ff34
int3
call fcn.14028ff34
int3
call fcn.14028ff34
int3