Function at 0x488600
Capabilities:
Receive data
Receive data on socket

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x2c
mov edi, dword [edx + 4]
mov esi, edx
mov dword [ebp - 0x14], ecx
mov dword [ebp - 0x28], edx
jmp 0x488623
mov esi, dword [ebp - 0x28]
lea ecx, [ebp - 0x34]
mov edx, esi
push 0
push dword [ebp + 8]
call sym.tokio::io::driver::registration::Registration::poll_ready::hc5f8996c21b4e78b
add esp, 8
mov eax, dword [ebp - 0x34]
cmp eax, 2
je 0x4887d1
movzx ecx, byte [ebp - 0x2c]
mov ebx, dword [ebp - 0x30]
test eax, eax
mov dword [ebp - 0x10], ecx
jne 0x4887dd
mov eax, dword [ebp + 0xc]
mov edx, dword [eax + 4]
mov ecx, dword [eax + 8]
mov eax, edx
sub eax, ecx
jb 0x48887b
mov edx, dword [esi + 8]
cmp edx, 0xffffffff
je 0x48888a
mov esi, dword [ebp + 0xc]
add ecx, dword [esi]
cmp eax, 0x7fffffff
mov esi, 0x7fffffff
cmovae eax, esi
push 0
push eax
push ecx
push edx
call sub.WS2_32.dll_recv
cmp eax, 0xffffffff
jne 0x4886a8
call sub.WS2_32.dll_WSAGetLastError
mov esi, eax
xor eax, eax
cmp esi, 0x274a
jne 0x488759
mov dword [ebp - 0x20], eax
mov byte [ebp - 0x24], 4
mov ecx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x20]
cmp cl, 4
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x1c], ecx
je 0x4887f6
mov esi, ecx
lea ecx, [ebp - 0x1c]
call sym.std::io::error::Error::kind::h8dbd07e130ee3a1c
cmp al, 0xd
jne 0x48880d
movzx ecx, byte [ebp - 0x10]
mov eax, dword [edi + 0x20]
and ebx, 3
xor ebx, 0x7f00000f
shl ecx, 0x10
nop dword [eax]
mov edx, eax
shr edx, 0x10
cmp byte [ebp - 0x10], dl
jne 0x488707
mov edx, ebx
and edx, eax
or edx, ecx
lock cmpxchg dword [edi + 0x20], edx
jne 0x4886f0
mov eax, esi
cmp al, 2
jbe 0x488620
mov eax, dword [ebp - 0x18]
mov esi, dword [eax + 4]
mov ebx, dword [eax]
mov dword [ebp - 0x10], eax
mov eax, dword [esi]
push ebx
call eax
add esp, 4
cmp dword [esi + 4], 0
je 0x488741
cmp dword [esi + 8], 9
jb 0x488733
mov ebx, dword [ebx - 4]
push ebx
push 0
push dword [0x5c6108]
call sub.KERNEL32.dll_HeapFree
push dword [ebp - 0x10]
push 0
push dword [0x5c6108]
call sub.KERNEL32.dll_HeapFree
mov esi, dword [ebp - 0x28]
jmp 0x488623
mov byte [ebp - 0x24], 0
mov dword [ebp - 0x20], esi
lea ecx, [ebp - 0x24]
call sym.std::io::error::Error::kind::h8dbd07e130ee3a1c
cmp al, 0xd
jne 0x4886af
mov eax, dword [ebp - 0x28]
mov eax, dword [eax + 0xc]
test eax, eax
je 0x4886af
mov ecx, dword [eax + 4]
mov edx, dword [eax]
mov dword [ebp - 0x38], ecx
lock inc dword [ecx]
jle 0x4888a3
add edx, 8
lea ecx, [ebp - 0x34]
push dword [eax + 0xc]
push dword [eax + 8]
push dword [ebp - 0x38]
call sym.mio::sys::windows::selector::SelectorInner::reregister::h982bb201985beea5
add esp, 0xc
movzx ecx, byte [ebp - 0x34]
cmp cl, 4
je 0x4886af
lea eax, [ebp - 0x33]
mov esi, ecx
lea edx, [ebp - 0x1b]
mov ecx, eax
mov eax, dword [eax]
mov ecx, dword [ecx + 3]
mov dword [edx + 3], ecx
mov ecx, esi
mov dword [edx], eax
mov byte [ebp - 0x1c], cl
jmp 0x4886c4
mov dword [ebp - 0x10], eax
mov bl, 5
cmp bl, 5
je 0x488805
jmp 0x488825
movzx eax, byte [ebp - 0x29]
movzx ecx, word [ebp - 0x2b]
shl eax, 0x10
or ecx, eax
mov eax, ebx
shr eax, 8
cmp bl, 5
je 0x488805
jmp 0x488825
mov ecx, eax
mov dword [ebp - 0x10], eax
mov bl, 4
shr ecx, 8
cmp bl, 5
jne 0x488825
mov eax, dword [ebp - 0x14]
mov byte [eax], 5
jmp 0x488873
mov ebx, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x18]
mov eax, ebx
mov edx, ecx
mov dword [ebp - 0x10], ecx
shr ecx, 8
shr eax, 8
cmp bl, 5
je 0x488805
movzx edx, byte [ebp - 0x10]
shl ecx, 8
or edx, ecx
cmp bl, 4
jne 0x488861
mov ecx, dword [ebp + 0xc]
mov eax, dword [ecx + 8]
mov ecx, dword [ecx + 0xc]
lea esi, [eax + edx]
cmp esi, ecx
jbe 0x48884b
mov ecx, dword [ebp + 0xc]
mov dword [ecx + 0xc], esi
mov ecx, esi
add eax, edx
jb 0x4888a7
cmp eax, ecx
ja 0x4888c0
mov ecx, dword [ebp + 0xc]
mov dword [ecx + 8], eax
mov ecx, dword [ebp - 0x14]
mov byte [ecx], 4
jmp 0x488873
mov ecx, dword [ebp - 0x14]
mov word [ecx + 1], ax
shr eax, 0x10
mov byte [ecx + 3], al
mov byte [ecx], bl
mov dword [ecx + 4], edx
add esp, 0x2c
pop esi
pop edi
pop ebx
pop ebp
ret
push 0x5a3734
call dbg.slice_start_index_len_fail
add esp, 4
ud2
mov ecx, str.called__Option::unwrap____on_a__None__value_rustc_82e1608dfa6e0b5569232559e3d385fea5a93112library_std_src_threadmod.rs
mov edx, 0x2b
push 0x5a3744
call dbg.panic
add esp, 4
ud2
ud2
mov ecx, str.filled_overflow_home_user_.cargo_registry_src_index.crates.io_6f17d22bba15001f_tokio_1.15.0_src_io_read_buf.rs
mov edx, 0xf
push 0x5a3b3c
call dbg.expect_failed
add esp, 4
ud2
mov ecx, 0x5a3b4c
mov edx, 0x2e
push 0x5a3b7c
call sym.std::panicking::begin_panic::hb017f3a55f95e16b
add esp, 4
ud2