Function at 0x102253d0
Capabilities:
Get socket status
Receive data
Receive data on socket

Disassembly:
mov eax, 0x291c
call fcn.1022fe20
push ebx
push ebp
push esi
mov esi, dword [esp + 0x2934]
xor ebp, ebp
xor ebx, ebx
cmp esi, ebp
push edi
mov dword [esp + 0x14], ebp
je 0x1022541b
mov edi, dword [esp + 0x293c]
cmp edi, ebp
je 0x1022541b
push edi
mov ebp, edi
call fcn.1022ef86
mov ecx, edi
mov ebx, eax
mov eax, ecx
mov edi, ebx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
add esp, 4
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov dword [esp + 0x10], ebx
mov esi, dword [esp + 0x2934]
mov ecx, 1
mov dword [esp + 0x28], ecx
mov dword [esp + 0x20], ecx
mov eax, dword [esi]
lea ecx, [esp + 0x20]
push ecx
mov dword [esp + 0x30], eax
push 0
lea edx, [esp + 0x30]
push 0
inc eax
push edx
push eax
mov dword [esp + 0x38], 0
call sub.WS2_32.dll_select
test eax, eax
jl 0x1022556e
jne 0x10225472
mov eax, dword [esp + 0x14]
inc eax
cmp eax, 0x14
mov dword [esp + 0x14], eax
jg 0x10225589
mov ecx, dword [esi]
lea eax, [esp + 0x28]
push eax
push ecx
call sub.WS2_32.dll___WSAFDIsSet
test eax, eax
je 0x1022541f
mov eax, dword [esi]
push 0
lea edx, [esp + 0x130]
push 0x2800
push edx
push eax
call sub.WS2_32.dll_recv
mov esi, eax
test esi, esi
mov dword [esp + 0x18], esi
je 0x1022556e
jge 0x102254bf
call fcn.1023ccf4
cmp eax, 0x2733
jne 0x1022556e
jmp 0x1022541f
lea eax, [esi + ebp]
mov dword [esp + 0x14], 0
push eax
mov dword [esp + 0x20], eax
call fcn.1022ef86
mov ebx, eax
mov eax, dword [esp + 0x14]
add esp, 4
test eax, eax
je 0x10225502
mov ecx, ebp
mov esi, eax
mov edx, ecx
mov edi, ebx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
push eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
call fcn.1022ee9d
mov esi, dword [esp + 0x1c]
add esp, 4
mov ecx, esi
lea esi, [esp + 0x12c]
mov edx, ecx
lea edi, [ebx + ebp]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ebp, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
mov ecx, edx
add eax, ebp
and ecx, 3
cmp eax, 0x14
rep movsb byte es:[edi], byte [esi]
mov dword [esp + 0x10], ebx
jl 0x1022541f
mov esi, dword [esp + 0x294c]
mov ecx, dword [esp + 0x2944]
mov edx, dword [esp + 0x2950]
mov eax, dword [esp + 0x2940]
push esi
push ecx
push edx
push eax
push ebx
call fcn.10225aa0
add esp, 0x14
test eax, eax
je 0x10225589
mov ecx, dword [esi]
add ecx, 0x14
cmp ebp, ecx
jge 0x102255a3
jmp 0x1022541f
test ebx, ebx
je 0x1022557b
push ebx
call fcn.1022ee9d
add esp, 4
pop edi
pop esi
pop ebp
or eax, 0xffffffff
pop ebx
add esp, 0x291c
ret
test ebx, ebx
je 0x10225596
push ebx
call fcn.1022ee9d
add esp, 4
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x291c
ret
mov edx, dword [esi]
push edx
call fcn.1022ef86
mov ecx, dword [esp + 0x294c]
mov edi, eax
add esp, 4
mov dword [ecx], eax
mov ecx, dword [esi]
mov edx, ecx
lea esi, [ebx + 0x14]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, dword [esp + 0x294c]
mov esi, dword [esp + 0x2958]
sub ebp, dword [edi]
add ebp, 0xffffffec
test ebp, ebp
mov dword [esi], ebp
jle 0x1022560f
push ebp
call fcn.1022ef86
mov ecx, dword [esp + 0x2958]
add esp, 4
mov dword [ecx], eax
mov ecx, dword [esi]
mov edx, dword [edi]
mov edi, eax
mov eax, ecx
lea esi, [edx + ebx + 0x14]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
test ebx, ebx
je 0x1022561c
push ebx
call fcn.1022ee9d
add esp, 4
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x291c
ret