Function at 0x41d37c
Capabilities:
Get socket status
Receive data
Receive data on socket
Send data
Send data on socket

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4215e8
push 0x420104
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x24c
push ebx
push esi
push edi
mov dword [ebp - 0x18], esp
mov esi, dword [ebp + 8]
mov eax, dword [esi + 0x18]
mov dword [ebp - 0x20], eax
and dword [ebp - 0x124], 0
and dword [ebp - 0x230], 0
mov edi, dword [ebp + 0xc]
xor ecx, ecx
cmp ecx, dword [ebp - 0x124]
jae 0x41d3ea
mov eax, dword [esi + 4]
mov edx, dword [eax]
lea eax, [ebp - 0x120]
cmp dword [eax], edx
je 0x41d3e4
inc ecx
add eax, 4
cmp ecx, dword [ebp - 0x124]
jb 0x41d3d4
cmp ecx, dword [ebp - 0x124]
jne 0x41d407
cmp dword [ebp - 0x124], 0x40
jae 0x41d407
mov eax, dword [esi + 4]
mov eax, dword [eax]
mov dword [ebp + ecx*4 - 0x120], eax
inc dword [ebp - 0x124]
xor ecx, ecx
cmp ecx, dword [ebp - 0x124]
jae 0x41d432
mov eax, dword [edi + 4]
mov edx, dword [eax]
lea eax, [ebp - 0x120]
cmp dword [eax], edx
je 0x41d42c
inc ecx
add eax, 4
cmp ecx, dword [ebp - 0x124]
jb 0x41d41c
cmp ecx, dword [ebp - 0x124]
jne 0x41d44f
cmp dword [ebp - 0x124], 0x40
jae 0x41d44f
mov eax, dword [edi + 4]
mov eax, dword [eax]
mov dword [ebp + ecx*4 - 0x120], eax
inc dword [ebp - 0x124]
xor ecx, ecx
cmp ecx, dword [ebp - 0x230]
jae 0x41d47a
mov eax, dword [esi + 4]
mov edx, dword [eax]
lea eax, [ebp - 0x22c]
cmp dword [eax], edx
je 0x41d474
inc ecx
add eax, 4
cmp ecx, dword [ebp - 0x230]
jb 0x41d464
cmp ecx, dword [ebp - 0x230]
jne 0x41d497
cmp dword [ebp - 0x230], 0x40
jae 0x41d497
mov eax, dword [esi + 4]
mov eax, dword [eax]
mov dword [ebp + ecx*4 - 0x22c], eax
inc dword [ebp - 0x230]
xor ecx, ecx
cmp ecx, dword [ebp - 0x230]
jae 0x41d4c2
mov eax, dword [edi + 4]
mov edx, dword [eax]
lea eax, [ebp - 0x22c]
cmp dword [eax], edx
je 0x41d4bc
inc ecx
add eax, 4
cmp ecx, dword [ebp - 0x230]
jb 0x41d4ac
cmp ecx, dword [ebp - 0x230]
jne 0x41d4df
cmp dword [ebp - 0x230], 0x40
jae 0x41d4df
mov eax, dword [edi + 4]
mov eax, dword [eax]
mov dword [ebp + ecx*4 - 0x22c], eax
inc dword [ebp - 0x230]
xor eax, eax
mov dword [ebp - 4], eax
mov dword [ebp - 0x238], eax
push eax
lea ecx, [ebp - 0x230]
push ecx
push eax
lea eax, [ebp - 0x124]
push eax
push 2
call dword [sym.imp.WS2_32.dll_select]
or dword [ebp - 0x238], 0xffffffff
or dword [ebp - 4], 0xffffffff
jmp 0x41d53f
lea eax, [ebp - 0x230]
push eax
mov eax, dword [esi + 4]
push dword [eax]
call sub.WS2_32.dll___WSAFDIsSet
test eax, eax
jne 0x41d6e2
lea eax, [ebp - 0x230]
push eax
mov eax, dword [edi + 4]
push dword [eax]
call sub.WS2_32.dll___WSAFDIsSet
test eax, eax
jne 0x41d6e2
lea eax, [ebp - 0x124]
push eax
mov eax, dword [esi + 4]
push dword [eax]
call sub.WS2_32.dll___WSAFDIsSet
test eax, eax
je 0x41d629
push 1
pop ebx
mov dword [ebp - 4], ebx
mov dword [ebp - 0x238], ebx
push 0
push 0x1000
push dword [ebp - 0x20]
mov eax, dword [esi + 4]
push dword [eax]
call dword [sym.imp.WS2_32.dll_recv]
mov dword [ebp - 0x12c], eax
test eax, eax
jg 0x41d5c7
mov eax, ebx
or dword [ebp - 0x238], 0xffffffff
or dword [ebp - 4], 0xffffffff
jmp 0x41d6e4
push 0
push eax
push dword [ebp - 0x20]
mov eax, dword [edi + 4]
push dword [eax]
call dword [sym.imp.WS2_32.dll_send]
mov dword [ebp - 0x24c], eax
or dword [ebp - 0x238], 0xffffffff
test eax, eax
jle 0x41d697
or dword [ebp - 4], 0xffffffff
jmp 0x41d629
lea eax, [ebp - 0x124]
push eax
mov eax, dword [edi + 4]
push dword [eax]
call sub.WS2_32.dll___WSAFDIsSet
test eax, eax
je 0x41d3bf
push 2
pop eax
mov dword [ebp - 4], eax
mov dword [ebp - 0x238], eax
push 0
push 0x1000
push dword [ebp - 0x20]
mov eax, dword [edi + 4]
push dword [eax]
call dword [sym.imp.WS2_32.dll_recv]
mov dword [ebp - 0x12c], eax
test eax, eax
jg 0x41d675
push 1
pop eax
jmp 0x41d5b7
push 0
push eax
push dword [ebp - 0x20]
mov eax, dword [esi + 4]
push dword [eax]
call dword [sym.imp.WS2_32.dll_send]
mov dword [ebp - 0x250], eax
or dword [ebp - 0x238], 0xffffffff
test eax, eax
jg 0x41d69e
xor eax, eax
jmp 0x41d5be
or dword [ebp - 4], 0xffffffff
jmp 0x41d3bf
xor eax, eax
mov ecx, dword [ebp - 0x10]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
leave
ret