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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x124
mov eax, dword [0x61900c]
xor eax, esp
mov dword [esp + 0x120], eax
push ebx
push esi
mov ebx, ecx
mov eax, edx
push edi
xor edi, edi
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], eax
cmp dword [ebx], edi
jge 0x46fbe2
push str.connection_not_open_n
push 0xfffffffffffffffe
push 0x4f
push str.net_recv
push str.D:_a_avrdude_avrdude_src_ser_win32.c
push 0x1ad
push 2
call fcn.0048c22c
add esp, 4
push eax
call fcn.00401300
add esp, 0x1c
or eax, 0xffffffff
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x120]
xor ecx, esp
call fcn.0048485e
mov esp, ebp
pop ebp
ret
mov esi, dword [0x61a0ec]
mov eax, 0x10624dd3
imul esi
sar edx, 6
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
imul eax, ecx, 0x3e8
mov dword [esp + 0x18], ecx
sub esi, eax
imul eax, esi, 0x3e8
mov dword [esp + 0x1c], eax
cmp dword [ebp + 8], edi
jbe 0x46fccc
mov esi, dword [sym.imp.WS2_32.dll_WSAGetLastError]
nop
mov eax, dword [ebx]
lea ecx, [esp + 0x18]
push ecx
push 0
push 0
lea ecx, [esp + 0x2c]
mov dword [esp + 0x30], eax
push ecx
inc eax
mov dword [esp + 0x30], 1
push eax
call dword [sym.imp.WS2_32.dll_select]
test eax, eax
je 0x46fda9
cmp eax, 0xffffffff
jne 0x46fc94
call esi
cmp eax, 0x2714
je 0x46fc67
call esi
cmp eax, 0x2734
jne 0x46fcfe
push str.net_recv__:_programmer_is_not_responding__reselecting_n
push 1
push 0x41
push str.net_recv
push str.D:_a_avrdude_avrdude_src_ser_win32.c
push 0x1c2
push 2
call fcn.0048c22c
add esp, 4
push eax
call fcn.00401300
add esp, 0x1c
jmp 0x46fc20
mov eax, dword [ebp + 8]
mov ecx, 0x400
sub eax, edi
cmp eax, 0x400
push 0
cmova eax, ecx
push eax
push dword [esp + 0x18]
push dword [ebx]
call dword [sym.imp.WS2_32.dll_recv]
test eax, eax
js 0x46fd6d
add dword [esp + 0x10], eax
add edi, eax
cmp edi, dword [ebp + 8]
jb 0x46fc20
cmp dword [0x634734], 3
jle 0x46fce7
mov edx, dword [esp + 0x14]
mov ecx, str.net_recv
push edi
call fcn.00415f90
add esp, 4
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x120]
xor ecx, esp
call fcn.0048485e
mov esp, ebp
pop ebp
ret
push 0
push 0
lea eax, [esp + 0x14]
push eax
push 0x400
call esi
push eax
push 0
push 0x1300
call dword [sym.imp.KERNEL32.dll_FormatMessageA]
push dword [esp + 0xc]
push str.select__:__s_n
push 0xfffffffffffffffe
push 0x4f
push str.net_recv
push str.D:_a_avrdude_avrdude_src_ser_win32.c
push 0x1cf
push 2
call fcn.0048c22c
add esp, 4
push eax
call fcn.00401300
add esp, 0x20
push dword [esp + 0xc]
call dword [sym.imp.KERNEL32.dll_LocalFree]
mov ecx, dword [esp + 0x12c]
or eax, 0xffffffff
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.0048485e
mov esp, ebp
pop ebp
ret
push 0
push 0
lea eax, [esp + 0x14]
push eax
push 0x400
call esi
push eax
push 0
push 0x1300
call dword [sym.imp.KERNEL32.dll_FormatMessageA]
push dword [esp + 0xc]
push str.unable_to_read:__s_n
push 0xfffffffffffffffe
push 0x4f
push str.net_recv
push str.D:_a_avrdude_avrdude_src_ser_win32.c
push 0x1e1
jmp 0x46fd38
cmp dword [0x634734], 1
jle 0x46fbca
push str.net_recv__:_programmer_is_not_responding_n
push 1
push 0x41
push str.net_recv
push str.D:_a_avrdude_avrdude_src_ser_win32.c
push 0x1bd
jmp 0x46fbb7