Function at 0x40b4b0
Capabilities:
Receive data
Receive data on socket
Send data
Send data on socket

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x108
mov eax, dword [0x5f9e74]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
mov esi, ecx
mov word [ebp - 0x108], 0x105
push edi
mov byte [ebp - 0x106], 0
mov eax, dword [esi + 0x9c]
cmp eax, 0xffffffff
je 0x40b6f0
push 0
push 3
lea ecx, [ebp - 0x108]
push ecx
push eax
call dword [sym.imp.WS2_32.dll_send]
test eax, eax
js 0x40b6f0
mov eax, dword [esi + 0x9c]
cmp eax, 0xffffffff
je 0x40b6d7
push 0
push 0x100
lea ecx, [ebp - 0x104]
push ecx
push eax
call dword [sym.imp.WS2_32.dll_recv]
cmp eax, 2
jne 0x40b6d7
cmp byte [ebp - 0x104], 5
je 0x40b54f
pop edi
mov dword [esi + 0x74], 0x500
xor al, al
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00568e6a
mov esp, ebp
pop ebp
ret
mov al, byte [ebp - 0x103]
cmp al, 0xff
jne 0x40b572
pop edi
mov dword [esi + 0x74], 0x600
xor al, al
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00568e6a
mov esp, ebp
pop ebp
ret
test al, al
je 0x40b6c5
cmp al, 1
je 0x40b6ac
cmp al, 2
je 0x40b59f
pop edi
mov dword [esi + 0x74], 0x700
xor al, al
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00568e6a
mov esp, ebp
pop ebp
ret
cmp dword [esi + 0x58], 0x10
mov al, byte [esi + 0x54]
mov byte [ebp - 0x103], al
lea eax, [esi + 0x44]
push ebx
mov ebx, dword [esi + 0x54]
mov byte [ebp - 0x104], 1
jb 0x40b5be
mov eax, dword [eax]
push ebx
push eax
lea eax, [ebp - 0x102]
push eax
call fcn.0056f220
mov al, byte [esi + 0x6c]
add esp, 0xc
mov ecx, dword [esi + 0x6c]
mov byte [ebp + ebx - 0x102], al
lea eax, [esi + 0x5c]
add ebx, 3
cmp dword [eax + 0x14], 0x10
jb 0x40b5ea
mov eax, dword [eax]
push ecx
push eax
lea eax, [ebp - 0x104]
add eax, ebx
push eax
call fcn.0056f220
mov eax, dword [esi + 0x6c]
lea ecx, [esi + 0x94]
add esp, 0xc
add eax, ebx
push eax
lea eax, [ebp - 0x104]
push eax
call fcn.00405110
pop ebx
test eax, eax
jns 0x40b633
add dword [esi + 0x74], 0x900
xor al, al
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00568e6a
mov esp, ebp
pop ebp
ret
push 0x100
lea eax, [ebp - 0x104]
push eax
lea ecx, [esi + 0x94]
call fcn.00405140
cmp eax, 2
je 0x40b668
pop edi
mov dword [esi + 0x74], 0xa00
xor al, al
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00568e6a
mov esp, ebp
pop ebp
ret
cmp byte [ebp - 0x104], 1
je 0x40b68a
pop edi
mov dword [esi + 0x74], 0xb00
xor al, al
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00568e6a
mov esp, ebp
pop ebp
ret
cmp byte [ebp - 0x103], 0
je 0x40b6c5
pop edi
mov dword [esi + 0x74], 0xc00
xor al, al
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00568e6a
mov esp, ebp
pop ebp
ret
pop edi
mov dword [esi + 0x74], 0x800
xor al, al
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00568e6a
mov esp, ebp
pop ebp
ret
pop edi
mov al, 1
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00568e6a
mov esp, ebp
pop ebp
ret
pop edi
mov dword [esi + 0x74], 0x400
xor al, al
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00568e6a
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp - 4]
xor al, al
pop edi
mov dword [esi + 0x74], 0x300
xor ecx, ebp
pop esi
call fcn.00568e6a
mov esp, ebp
pop ebp
ret