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

Disassembly:
push 0xffffffffffffffff
push 0x1001a672
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x150
mov edx, dword [esp + 0x160]
push ebx
mov ebx, ecx
push ebp
xor ecx, ecx
push esi
cmp edx, ecx
push edi
mov dword [esp + 0x18], ebx
je 0x10004342
mov edi, dword [edx + 0x40]
cmp edi, ecx
mov dword [esp + 0x14], edi
je 0x10004342
cmp dword [ebx + 0x1fc], 0xffffffff
je 0x10004342
mov esi, dword [edx + 0x44]
xor eax, eax
mov dword [edx + 0x30], esi
lea esi, [edx + 0x2c]
mov dword [esp + 0x10], ecx
mov dword [edx + 0x40], ecx
mov dword [esi], edi
cmp eax, 0xffffffff
je 0x1000412d
mov eax, dword [esi]
mov ebp, dword [esi + 4]
sub eax, ecx
push 0
mov dword [esi], eax
add ebp, ecx
push 0
lea eax, [esp + 0x18]
push 0
mov dword [esi + 4], ebp
sub edi, ecx
mov ecx, dword [ebx + 0x1fc]
push eax
push 1
push esi
push ecx
mov dword [esp + 0x30], edi
call dword [sym.imp.WS2_32.dll_WSASend]
cmp eax, 0xffffffff
je 0x1000412d
mov ecx, dword [esp + 0x10]
cmp ecx, edi
jae 0x10004342
jmp 0x100040e6
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov ebp, eax
cmp ebp, 0x2745
je 0x100042d7
cmp ebp, 0x2746
je 0x100042d7
cmp ebp, 0x2775
je 0x100042d7
cmp ebp, 0x3e5
je 0x10004169
cmp ebp, 0x2733
jne 0x100041cf
mov edx, dword [ebx + 0x1fc]
mov ecx, 0x41
xor eax, eax
lea edi, [esp + 0x5c]
rep stosd dword es:[edi], eax
mov dword [esp + 0x5c], 1
mov dword [esp + 0x60], edx
push 0x10021410
lea eax, [esp + 0x60]
push 0
push eax
push 0
push 1
call dword [sym.imp.WS2_32.dll_select]
cmp eax, 0xffffffff
je 0x1000423c
test eax, eax
jg 0x100041c2
push 0
lea ecx, [ebx + 0x234]
call fcn.1000a340
test al, al
jne 0x10004342
jmp 0x10004188
mov ecx, dword [esp + 0x10]
mov edi, dword [esp + 0x14]
jmp 0x100040e6
lea ecx, [esp + 0x1c]
push ebp
push ecx
call fcn.10006280
lea edx, [esp + 0x24]
lea eax, [esp + 0x34]
push edx
push str.CSocketClient::Write_____WSASend:
push eax
mov dword [esp + 0x17c], 2
call fcn.100025a0
push eax
mov byte [esp + 0x180], 3
call fcn.10006260
mov eax, dword [esp + 0x48]
add esp, 0x18
test eax, eax
je 0x10004236
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x1000422d
cmp al, 0xff
je 0x1000422d
dec al
mov byte [ecx], al
mov ecx, dword [esp + 0x20]
jmp 0x100042b1
push ecx
call fcn.1000bdaa
add esp, 4
mov ecx, dword [esp + 0x20]
jmp 0x100042b1
lea ecx, [esp + 0x2c]
push ebp
push ecx
call fcn.10006280
lea edx, [esp + 0x34]
lea eax, [esp + 0x44]
push edx
mov ebx, 4
push str.CSocketClient::Write_____WSASend:
push eax
mov dword [esp + 0x17c], ebx
call fcn.100025a0
push eax
mov byte [esp + 0x180], 5
call fcn.10006260
mov eax, dword [esp + 0x58]
add esp, 0x18
test eax, eax
mov byte [esp + 0x168], bl
je 0x100042a4
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x1000429b
cmp al, 0xff
je 0x1000429b
dec al
mov byte [ecx], al
jmp 0x100042a4
push ecx
call fcn.1000bdaa
add esp, 4
mov ecx, dword [esp + 0x18]
call fcn.100033c0
mov ecx, dword [esp + 0x30]
test ecx, ecx
je 0x10004342
mov al, byte [ecx - 1]
test al, al
je 0x100042cb
cmp al, 0xff
je 0x100042cb
dec al
mov byte [ecx - 1], al
jmp 0x10004342
dec ecx
push ecx
call fcn.1000bdaa
add esp, 4
jmp 0x10004342
lea ecx, [esp + 0x1c]
push ebp
push ecx
call fcn.10006280
lea edx, [esp + 0x24]
lea eax, [esp + 0x54]
push edx
push str.CSocketClient::Write_____WSASend:
push eax
mov dword [esp + 0x17c], 0
call fcn.100025a0
push eax
mov byte [esp + 0x180], 1
call fcn.10006260
add esp, 0x18
lea ecx, [esp + 0x4c]
mov byte [esp + 0x168], 0
push 1
call fcn.10002300
mov ecx, ebx
call fcn.100033c0
push 1
lea ecx, [esp + 0x20]
mov dword [esp + 0x16c], 0xffffffff
call fcn.10002300
mov ecx, dword [esp + 0x160]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x15c
ret 4