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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x534
mov eax, dword [0x4a3300]
xor eax, esp
mov dword [esp + 0x530], eax
push ebx
push esi
push edi
push 0x1ff
lea eax, [esp + 0x23d]
mov byte [esp + 0x23c], 0
push 0
push eax
mov esi, ecx
call fcn.00453200
mov ebx, dword [sym.imp.WS2_32.dll_recv]
add esp, 0xc
push 2
push 4
push dword [esi + 0x198]
push dword [esi]
call ebx
test eax, eax
je 0x404134
mov edi, dword [sym.imp.WS2_32.dll_WSAGetLastError]
cmp eax, 0xffffffff
jne 0x403c22
call edi
cmp eax, 0x2733
jne 0x404134
push 0xff
lea eax, [esp + 0x43d]
mov byte [esp + 0x43c], 0
push 0
push eax
call fcn.00453200
movzx eax, word [esi + 0x62]
add esp, 0xc
push eax
call dword [sym.imp.WS2_32.dll_htons]
movzx eax, ax
push eax
movzx eax, byte [esi + 0x67]
push eax
movzx eax, byte [esi + 0x66]
push eax
movzx eax, byte [esi + 0x65]
push eax
movzx eax, byte [esi + 0x64]
push eax
push dword [esi]
lea eax, [esp + 0x450]
push 0x4819c4
push eax
call fcn.004582cf
add esp, 0x20
lea eax, [esp + 0x438]
push eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
movdqu xmm0, xmmword [esi + 0x186]
xor eax, eax
mov dword [esp + 0x23e], 0x2711
mov word [esi + 0x5c], ax
lea ecx, [esi + 0x186]
mov eax, 0x8a
mov edx, 1
mov word [esp + 0x238], ax
mov eax, dword [0x7275f8]
mov dword [esp + 0x28e], eax
mov eax, dword [0x7275fc]
mov dword [esp + 0x292], eax
movzx eax, word [esi + 0x60]
mov word [esp + 0x296], ax
movzx eax, word [esi + 0x62]
mov word [esp + 0x298], ax
mov eax, dword [esi + 0x64]
movdqu xmmword [esp + 0x27c], xmm0
mov dword [esp + 0x29a], eax
movdqu xmm0, xmmword [0x7276ec]
mov eax, dword [esi + 0x68]
mov dword [esp + 0x29e], eax
mov eax, dword [0x727600]
movdqu xmmword [esp + 0x2a2], xmm0
mov dword [esp + 0x242], eax
movdqu xmm0, xmmword [0x7276fc]
mov eax, dword [0x727604]
mov dword [esp + 0x246], eax
mov eax, dword [0x727608]
movdqu xmmword [esp + 0x2b2], xmm0
mov dword [esp + 0x24c], eax
movdqu xmm0, xmmword [0x727688]
mov eax, dword [0x72760c]
mov dword [esp + 0x250], eax
mov eax, dword [0x727610]
movdqu xmmword [esp + 0x25c], xmm0
mov word [esp + 0x28c], dx
movdqu xmm0, xmmword [0x727698]
mov word [esp + 0x24a], dx
mov edx, 0x36
mov dword [esp + 0x254], eax
mov eax, dword [0x727614]
push ecx
lea ecx, [esp + 0x290]
mov dword [esp + 0x25c], eax
movdqu xmmword [esp + 0x270], xmm0
call fcn.0040a210
add esp, 4
mov dword [esp + 0x23a], 0
mov edx, 0x8a
lea ecx, [esp + 0x238]
call fcn.00409ee0
push 0
mov dword [esp + 0x23e], eax
lea eax, [esp + 0x23c]
push 0x8a
push eax
push dword [esi + 8]
call dword [sym.imp.WS2_32.dll_send]
call fcn.00409e10
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], edx
call fcn.00409e10
sub eax, dword [esp + 0x10]
sbb edx, dword [esp + 0x14]
test edx, edx
jg 0x404134
jl 0x403e22
cmp eax, 0x1f4
ja 0x404134
push 0x100
lea eax, [esp + 0x30]
push 0
push eax
call fcn.00453200
add esp, 0xc
lea eax, [esp + 0x134]
push 0x100
push 0
push eax
call fcn.00453200
mov eax, dword [esi + 8]
add esp, 0xc
mov dword [esp + 0x2c], eax
mov dword [esp + 0x134], eax
lea eax, [esp + 0x20]
mov dword [esp + 0x24], 0
push eax
lea eax, [esp + 0x134]
mov dword [esp + 0x24], 0
push eax
push 0
lea eax, [esp + 0x34]
mov dword [esp + 0x30], 0x64
push eax
push 0
mov dword [esp + 0x3c], 1
mov dword [esp + 0x144], 1
call dword [sym.imp.WS2_32.dll_select]
push 0
push 0x200
lea eax, [esp + 0x240]
push eax
push dword [esi + 8]
call ebx
test eax, eax
je 0x404134
cmp eax, 0xffffffff
jne 0x403ed2
call edi
cmp eax, 0x2733
jne 0x404134
jmp 0x403ed7
cmp eax, 0x60
je 0x403f14
call fcn.00409e10
sub eax, dword [esp + 0x10]
sbb edx, dword [esp + 0x14]
mov dword [esp + 0x1c], edx
js 0x403e22
jg 0x404134
cmp eax, 0x1f4
jbe 0x403e22
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x530]
xor ecx, esp
call fcn.004524fc
mov esp, ebp
pop ebp
ret
lea eax, [esi + 0x186]
mov ebx, 0x60
push eax
mov edx, ebx
lea ecx, [esp + 0x23c]
call fcn.0040a210
add esp, 4
test eax, eax
je 0x404134
mov edi, dword [esp + 0x23a]
lea ecx, [esp + 0x238]
mov edx, ebx
mov dword [esp + 0x23a], 0
mov word [esp + 0x238], bx
call fcn.00409ee0
cmp edi, eax
jne 0x404134
mov di, word [esp + 0x24a]
mov eax, 0xc8
mov word [esi + 0x5c], di
cmp di, ax
jne 0x404062
push dword [esp + 0x254]
mov edi, dword [sym.imp.WS2_32.dll_htons]
call edi
push dword [esp + 0x256]
mov word [esi + 0x100], ax
call edi
movdqu xmm0, xmmword [esp + 0x258]
mov word [esi + 0x102], ax
movdqu xmmword [esi + 0xc0], xmm0
movdqu xmm0, xmmword [esp + 0x268]
movdqu xmmword [esi + 0xd0], xmm0
movdqu xmm0, xmmword [esp + 0x278]
movdqu xmmword [esi + 0xe0], xmm0
movdqu xmm0, xmmword [esp + 0x288]
movdqu xmmword [esi + 0xf0], xmm0
call fcn.00409e10
push 0xff
mov dword [esi + 0x1d0], eax
lea eax, [esp + 0x2d]
push 0
push eax
mov dword [esi + 0x1d4], edx
mov byte [esp + 0x34], 0
call fcn.00453200
movzx eax, word [esi + 0x62]
add esp, 0xc
push eax
call edi
movzx eax, ax
push eax
movzx eax, byte [esi + 0x67]
push eax
movzx eax, byte [esi + 0x66]
push eax
movzx eax, byte [esi + 0x65]
push eax
movzx eax, byte [esi + 0x64]
push eax
call fcn.00409e10
sub eax, dword [esp + 0x24]
sbb edx, dword [esp + 0x28]
push edx
push eax
push dword [esi]
lea eax, [esp + 0x48]
push 0x4819f0
push eax
call fcn.004582cf
add esp, 0x28
lea eax, [esp + 0x28]
jmp 0x40412c
push 0xff
lea eax, [esp + 0x2d]
push 0
push eax
call fcn.00453200
movdqu xmm0, xmmword [esp + 0x264]
add esp, 0xc
mov byte [esp + 0x130], 0
lea eax, [esp + 0x131]
movdqu xmmword [esp + 0x28], xmm0
movdqu xmm0, xmmword [esp + 0x268]
push 0xff
push 0
movdqu xmmword [esp + 0x40], xmm0
push eax
movdqu xmm0, xmmword [esp + 0x284]
movdqu xmmword [esp + 0x54], xmm0
movdqu xmm0, xmmword [esp + 0x294]
movdqu xmmword [esp + 0x64], xmm0
call fcn.00453200
add esp, 0xc
lea eax, [esp + 0x28]
push eax
movzx eax, di
mov edi, dword [sym.imp.WS2_32.dll_htons]
push eax
movzx eax, word [esi + 0x62]
push eax
call edi
movzx eax, ax
push eax
movzx eax, byte [esi + 0x67]
push eax
movzx eax, byte [esi + 0x66]
push eax
movzx eax, byte [esi + 0x65]
push eax
movzx eax, byte [esi + 0x64]
push eax
call fcn.00409e10
sub eax, dword [esp + 0x2c]
sbb edx, dword [esp + 0x30]
push edx
push eax
push dword [esi]
lea eax, [esp + 0x158]
push str._DEBUG___u___lld__l
push eax
call fcn.004582cf
add esp, 0x30
lea eax, [esp + 0x130]
push eax
mov eax, dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
call eax
mov ecx, dword [esp + 0x53c]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.004524fc
mov esp, ebp
pop ebp
ret