Function at 0x46d666
Capabilities:
Get socket status
Send data
Send data on socket

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x148
mov eax, dword [0x500144]
xor eax, ebp
mov dword [ebp - 8], eax
mov eax, dword [ebp + 8]
push ebx
push esi
mov ebx, ecx
mov dword [ebp - 0x138], eax
or dword [eax], 0xffffffff
xor ecx, ecx
push edi
xor edi, edi
mov dword [ebp - 0x128], ecx
inc edi
cmp dword [ebx + 0xcc], ecx
jbe 0x46d8f9
mov eax, dword [ebx + 0xc4]
mov esi, dword [eax + ecx*4]
mov dword [ebp - 0x130], esi
cmp esi, 0xffffffff
je 0x46d83a
and dword [ebp - 0x140], 0
lea eax, [ebp - 0x140]
and dword [ebp - 0x13c], 0
push eax
push 0
lea eax, [ebp - 0x124]
mov dword [ebp - 0x120], esi
push eax
push 0
push 0
mov dword [ebp - 0x124], edi
call dword [sym.imp.WS2_32.dll_select]
cmp eax, edi
je 0x46d852
lea eax, [ebp - 0x148]
mov dword [ebp - 0x120], esi
push eax
xor ecx, ecx
mov dword [ebp - 0x124], edi
lea eax, [ebp - 0x124]
mov dword [ebp - 0x148], ecx
push eax
push ecx
push ecx
push ecx
mov dword [ebp - 0x144], ecx
call dword [sym.imp.WS2_32.dll_select]
cmp eax, edi
jne 0x46d834
lea eax, [ebp - 0x134]
mov dword [ebp - 0x134], 4
push eax
lea eax, [ebp - 0x12c]
push eax
push 0x1007
push 0xffff
push esi
call dword [sym.imp.WS2_32.dll_getsockopt]
cmp eax, 0xffffffff
je 0x46d7af
mov eax, dword [section..data]
cmp eax, section..data
je 0x46d7a7
test byte [eax + 0x1c], 1
je 0x46d7a7
cmp byte [eax + 0x19], 2
jb 0x46d7a7
mov esi, dword [ebp - 0x12c]
call fcn.0042386b
push esi
push dword [ebp - 0x128]
mov edx, 0x40fe88
push eax
mov eax, dword [section..data]
push dword [eax + 0x14]
push dword [eax + 0x10]
push 0xd
pop ecx
call fcn.00429397
mov esi, dword [ebp - 0x130]
mov eax, dword [ebp - 0x12c]
jmp 0x46d7fa
mov eax, dword [section..data]
cmp eax, section..data
je 0x46d7f4
test byte [eax + 0x1c], 1
je 0x46d7f4
cmp byte [eax + 0x19], 2
jb 0x46d7f4
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov esi, eax
call fcn.0042386b
push esi
push eax
mov eax, dword [section..data]
mov edx, 0x40fe88
push dword [eax + 0x14]
push dword [eax + 0x10]
push 0xe
pop ecx
call fcn.00421fda
mov esi, dword [ebp - 0x130]
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
test eax, eax
jle 0x46d806
movzx eax, ax
or eax, 0x80070000
push 0
mov dword [ebx + 0xd4], eax
push dword [ebx + 0xbc]
push esi
call dword [sym.imp.WS2_32.dll_WSAEventSelect]
push esi
call dword [sym.imp.WS2_32.dll_closesocket]
mov eax, dword [ebx + 0xc4]
mov ecx, dword [ebp - 0x128]
or dword [eax + ecx*4], 0xffffffff
jmp 0x46d83a
mov ecx, dword [ebp - 0x128]
inc ecx
mov dword [ebp - 0x128], ecx
cmp ecx, dword [ebx + 0xcc]
jb 0x46d6a3
jmp 0x46d8f9
mov eax, dword [section..data]
cmp eax, section..data
je 0x46d88e
test byte [eax + 0x1c], 1
je 0x46d88e
cmp byte [eax + 0x19], 2
jb 0x46d88e
call fcn.0042386b
push dword [ebp - 0x128]
mov edx, 0x40fe88
push eax
mov eax, dword [section..data]
push dword [eax + 0x14]
push dword [eax + 0x10]
push 0xc
pop ecx
call fcn.00421fda
mov eax, dword [ebx + 0x94]
test eax, eax
je 0x46d8c4
and dword [ebp - 0x14], 0
push 0x10
pop ecx
push 0
mov dword [ebp - 0xc], eax
lea eax, [ebp - 0x18]
push ecx
push eax
push esi
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0x10], edi
call dword [sym.imp.WS2_32.dll_send]
cmp eax, 0xffffffff
jne 0x46d8c4
call fcn.0048b320
mov edi, eax
jmp 0x46d8f9
push 0
push dword [ebx + 0xbc]
push esi
call dword [sym.imp.WS2_32.dll_WSAEventSelect]
cmp eax, 0xffffffff
je 0x46d8bb
mov eax, dword [ebp - 0x138]
mov ecx, dword [ebp - 0x128]
mov dword [eax], esi
mov eax, dword [ebx + 0xc4]
or dword [eax + ecx*4], 0xffffffff
and dword [ebx + 0xd4], 0
xor edi, edi
mov ecx, dword [ebp - 8]
mov eax, edi
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.004fb5e0
leave
ret 4