Function at 0x45e880
Capabilities:
Get socket status
Receive data
Receive data on socket
Send data
Send data on socket

Disassembly:
mov eax, dword [0x461b3f8]
sub esp, 0x214
push ebx
push ebp
xor ebp, ebp
cmp eax, ebp
je 0x45ebc3
mov eax, dword [0x461b420]
cmp eax, ebp
je 0x45e8b7
cmp dword [0x461b424], ebp
jne 0x45e8b7
push 0xb
call fcn.00479bc0
mov eax, dword [0x461b420]
add esp, 4
cmp eax, ebp
mov dword [0x461b424], eax
jne 0x45ebc3
cmp dword [0x461b3fc], ebp
je 0x45ebc3
mov eax, dword [0x461b404]
push esi
mov dword [esp + 0x1c], eax
mov dword [esp + 0x120], eax
lea eax, [esp + 0x10]
push edi
push eax
lea ecx, [esp + 0x124]
push ebp
lea edx, [esp + 0x24]
push ecx
mov ebx, 1
push edx
push 2
mov dword [esp + 0x28], ebp
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x30], ebx
mov dword [esp + 0x134], ebx
call sub.WSOCK32.dll_select
mov ecx, dword [0x461b41c]
mov edi, dword [sym.imp.KERNEL32.dll_VirtualProtect]
lea eax, [esp + 0x10]
push eax
push 4
push 0x4000
push ecx
call edi
mov eax, dword [0x461b404]
lea edx, [esp + 0x1c]
push edx
push eax
call sub.WSOCK32.dll___WSAFDIsSet
test eax, eax
je 0x45ea05
mov ecx, dword [0x461b404]
push ebp
push 0x1fff
push 0x45f1bf8
push ecx
call sub.WSOCK32.dll_recv
mov esi, eax
mov eax, dword [0x461b414]
cmp eax, ebp
je 0x45e9d9
cmp esi, 0xc8
jle 0x45e9d3
cmp esi, 0x1126
jg 0x45e9d3
push 0x7d0
call dword [sym.imp.KERNEL32.dll_Sleep]
mov edx, dword [0x461b404]
lea eax, [esp + 0x14]
push eax
push ebp
lea ecx, [esp + 0x24]
push ebp
push ecx
push ebx
mov dword [esp + 0x34], edx
mov dword [esp + 0x30], ebx
call sub.WSOCK32.dll_select
mov eax, dword [0x461b404]
lea edx, [esp + 0x1c]
push edx
push eax
call sub.WSOCK32.dll___WSAFDIsSet
test eax, eax
je 0x45e9d3
mov edx, dword [0x461b404]
push ebp
lea ecx, [esi + 0x45f1bf8]
push 0x1fff
push ecx
push edx
call sub.WSOCK32.dll_recv
add esi, eax
mov dword [0x461b414], ebp
cmp esi, 0xffffffff
jne 0x45eaca
call sub.WSOCK32.dll_WSAGetLastError
cmp eax, 0x2733
je 0x45ea05
mov eax, dword [0x461b404]
push eax
call sub.WSOCK32.dll_closesocket
mov dword [0x4ebffd8], ebp
mov dword [0x461b420], ebx
mov edx, dword [0x461b41c]
lea ecx, [esp + 0x10]
push ecx
push ebx
push 0x4000
push edx
call edi
mov al, byte [0x461b40c]
test bl, al
jne 0x45ea33
or al, bl
mov byte [0x461b40c], al
call sub.WINMM.dll_timeGetTime
mov dword [0x461b410], eax
mov ecx, dword [0x461b404]
lea eax, [esp + 0x120]
push eax
push ecx
call sub.WSOCK32.dll___WSAFDIsSet
test eax, eax
je 0x45eb65
mov eax, dword [0x461b418]
lea edx, [esp + 0x10]
push edx
push 4
push 0x4000
push eax
call edi
mov eax, dword [0x461b400]
cmp eax, ebp
je 0x45eb51
mov ecx, dword [0x461b418]
mov edx, dword [0x461b404]
push ebp
push eax
push ecx
push edx
call sub.WSOCK32.dll_send
mov esi, eax
cmp esi, ebp
jle 0x45ea95
call sub.WINMM.dll_timeGetTime
mov dword [0x461b410], eax
cmp esi, 0xffffffff
jne 0x45eb44
call sub.WSOCK32.dll_WSAGetLastError
cmp eax, 0x2733
je 0x45eb51
mov eax, dword [0x461b404]
push eax
call sub.WSOCK32.dll_closesocket
mov dword [0x4ebffd8], ebp
mov dword [0x461b420], ebx
jmp 0x45eb51
push esi
push 0x45f1bf8
call fcn.0045ec80
mov eax, dword [0x461b408]
add esp, 8
cmp eax, ebp
jle 0x45ea05
cmp dword [0x4ebffd8], 3
jne 0x45eb32
push 0x4000
push 0x45f1bf8
call fcn.0045ee40
add esp, 8
test eax, eax
jne 0x45ea05
mov eax, dword [0x461b658]
push 0x45f1bf8
cmp eax, ebp
je 0x45eb24
mov ecx, dword [0x461b404]
push ecx
call fcn.0048d3e0
jmp 0x45ead5
mov edx, dword [0x461b404]
push edx
call fcn.0043bf90
jmp 0x45ead5
mov eax, dword [0x461b41c]
push 0x461b408
push eax
call fcn.0048a6f0
jmp 0x45ead5
cmp esi, ebp
je 0x45eb51
push esi
call fcn.0045ede0
add esp, 4
mov edx, dword [0x461b418]
lea ecx, [esp + 0x10]
push ecx
push ebx
push 0x4000
push edx
call edi
mov eax, dword [0x4ebffd8]
pop edi
cmp eax, 3
pop esi
jne 0x45ebc3
call sub.WINMM.dll_timeGetTime
mov ecx, dword [0x461b410]
add ecx, 0x7530
cmp ecx, eax
jae 0x45ebc3
cmp dword [0x461b3f8], ebx
jne 0x45ebc3
mov eax, dword [0x461b658]
push str.hoge
cmp eax, ebp
je 0x45ebaa
mov edx, dword [0x461b404]
push edx
call fcn.004901f0
jmp 0x45ebb5
mov eax, dword [0x461b404]
push eax
call fcn.0043bea0
mov eax, dword [0x5ab714]
add esp, 8
inc eax
mov dword [0x5ab714], eax
pop ebp
pop ebx
add esp, 0x214
ret