Function at 0x46a6e0
Capabilities:
Get socket status
Print debug messages
Send data
Send data on socket

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x158
push ebx
push esi
push edi
cmp dword [0x4b08c6], 0
jne 0x46a6fc
xor eax, eax
jmp 0x46a94a
mov eax, dword [ebp + 8]
push eax
push 0
call fcn.0046bd20
add esp, 8
test eax, eax
jne 0x46a718
mov eax, 0xfffffff7
jmp 0x46a94a
call fcn.0046bc10
mov dword [ebp - 0xc], 0
jmp 0x46a72f
mov ecx, dword [ebp - 0xc]
add ecx, 1
mov dword [ebp - 0xc], ecx
mov edx, dword [ebp - 0xc]
cmp edx, dword [0x4b08ce]
jge 0x46a75a
mov eax, dword [ebp + 8]
xor ecx, ecx
mov cl, byte [eax + 1]
mov edx, dword [ebp - 0xc]
xor eax, eax
mov al, byte [edx + 0x4b08d2]
cmp ecx, eax
jne 0x46a758
xor eax, eax
jmp 0x46a94a
jmp 0x46a726
mov ecx, dword [0x4b0916]
mov dword [ebp - 4], ecx
cmp dword [ebp - 4], 0
jne 0x46a770
xor eax, eax
jmp 0x46a94a
push 0x4b0ee0
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov edx, dword [0x4b08c6]
add edx, 0x20
mov dword [ebp - 8], edx
mov eax, dword [ebp - 8]
mov ecx, dword [ebp + 8]
mov dl, byte [ecx]
mov byte [eax], dl
mov eax, dword [ebp - 8]
mov ecx, dword [ebp + 8]
mov dl, byte [ecx + 1]
mov byte [eax + 1], dl
mov eax, dword [ebp - 8]
mov ecx, dword [ebp + 8]
mov dl, byte [ecx + 2]
mov byte [eax + 2], dl
mov eax, dword [ebp - 8]
mov ecx, dword [ebp + 8]
mov dx, word [ecx + 3]
mov word [eax + 3], dx
mov eax, dword [ebp - 8]
mov ecx, dword [ebp + 8]
mov dx, word [ecx + 5]
mov word [eax + 5], dx
mov eax, dword [ebp - 8]
mov ecx, dword [ebp + 0xc]
mov dword [eax + 0xf], ecx
mov edx, dword [ebp - 8]
mov eax, dword [ebp + 8]
mov cx, word [eax + 7]
mov word [edx + 7], cx
mov edx, dword [ebp - 8]
mov eax, dword [ebp + 8]
mov cx, word [eax + 9]
mov word [edx + 9], cx
mov edx, dword [ebp - 8]
mov eax, dword [ebp + 8]
mov cx, word [eax + 0xb]
mov word [edx + 0xb], cx
push 0x20
push 0
mov edx, dword [0x4b08c6]
push edx
call sub.MSVCRT.dll_memset
add esp, 0xc
mov eax, dword [0x4b08c6]
mov ecx, dword [0x4b08b4]
mov dword [eax], ecx
mov edx, dword [0x4b08c6]
mov dword [edx + 4], 0x7d04
mov eax, dword [0x4b08c6]
mov word [eax + 8], 1
mov ecx, dword [0x4b08c6]
mov dx, word [ebp + 0x10]
mov word [ecx + 0xa], dx
mov eax, dword [0x4b08c6]
mov word [eax + 0xc], 0x33
mov dword [ebp - 0x118], 0
mov dword [ebp - 0x114], 0x7a120
mov dword [ebp - 0x110], 0
cmp dword [ebp - 0x110], 0x40
jae 0x46a892
mov ecx, dword [ebp - 0x110]
mov edx, dword [ebp - 4]
mov eax, dword [edx + 4]
mov dword [ebp + ecx*4 - 0x10c], eax
mov ecx, dword [ebp - 0x110]
add ecx, 1
mov dword [ebp - 0x110], ecx
xor edx, edx
test edx, edx
jne 0x46a867
lea eax, [ebp - 0x118]
push eax
push 0
lea ecx, [ebp - 0x110]
push ecx
push 0
push 0
call sub.WSOCK32.dll_select
push 0
mov edx, dword [0x4b08c6]
xor eax, eax
mov ax, word [edx + 0xc]
push eax
mov ecx, dword [0x4b08c6]
push ecx
mov edx, dword [ebp - 4]
mov eax, dword [edx + 4]
push eax
call sub.WSOCK32.dll_send
cmp eax, 0xffffffff
jne 0x46a912
call sub.WSOCK32.dll_WSAGetLastError
push eax
mov ecx, dword [ebp - 4]
mov edx, dword [ecx + 4]
push edx
push str.WMC____4.4X___wmc_SendWertX:_Send_FAILED_with__d___n
push 0x4b1180
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x10
push 0x4b1180
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
push 0x4b0ee0
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
xor eax, eax
jmp 0x46a94a
cmp dword [0x4b0efc], 0
je 0x46a93a
call fcn.0046be40
cmp dword [0x4b0920], 0
je 0x46a93a
push 0
push 0
mov eax, dword [ebp - 8]
push eax
call dword [0x4b0920]
add esp, 0xc
push 0x4b0ee0
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret