Function at 0x422ea0
Capabilities:
Receive data
Receive data on socket

Disassembly:
sub esp, 0x24
push ebx
push ebp
push esi
mov esi, ecx
mov ebp, 1
push edi
mov dword [esp + 0x1c], esi
test dword [esi + 0xe4], 0x2000
je 0x422bba
call fcn.00421a90
dec eax
neg eax
sbb eax, eax
and ebp, eax
mov eax, dword [esi + 8]
xor edi, edi
mov dword [esp + 0x14], edi
test eax, eax
je 0x422bd2
mov eax, dword [eax]
inc edi
test eax, eax
jne 0x422bc7
mov dword [esp + 0x14], edi
lea eax, [edi + 2]
push 8
push eax
call fcn.0044a9b2
mov ebx, eax
add esp, 8
mov dword [esp + 0x24], ebx
test ebx, ebx
jne 0x422c12
call fcn.0044c2cd
push dword [eax]
call fcn.0044f2f7
add esp, 4
push eax
push str.Error_allocating_memory:__s_n
push esi
call fcn.00428de0
add esp, 0xc
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x24
ret
mov ecx, dword [esi + 0xb4]
xor eax, eax
mov dword [esp + 0x10], eax
mov dword [esp + 0x20], 0xffffffff
cmp ecx, 0xffffffff
je 0x422c68
cmp byte [esi + 0xc5], al
jne 0x422c68
mov eax, dword [esi + 0xcc]
cmp eax, dword [esi + 0xd0]
jae 0x422c66
cmp byte [esi + 0xc6], 0
jne 0x422c66
mov eax, 1
mov dword [ebx], ecx
mov dword [ebx + 4], 0x300
mov dword [esp + 0x20], 0
mov dword [esp + 0x10], eax
jmp 0x422c68
xor eax, eax
mov ecx, dword [esi + 0xbc]
mov dword [esp + 0x18], 0xffffffff
cmp ecx, 0xffffffff
je 0x422c8f
mov dword [ebx + eax*8], ecx
mov dword [ebx + eax*8 + 4], 0x300
mov dword [esp + 0x18], eax
inc eax
mov dword [esp + 0x10], eax
test ebp, ebp
je 0x422ccc
test dword [esi + 0xe4], 4
jne 0x422cc9
lea edx, [esp + 0x2c]
mov ecx, esi
call fcn.00422210
cmp eax, 1
jne 0x422cc9
cmp dword [esp + 0x30], 0
ja 0x422cc2
mov ebp, dword [esp + 0x2c]
cmp ebp, 0x7fffffff
jbe 0x422ccc
mov ebp, accept
jmp 0x422ccc
or ebp, 0xffffffff
mov ecx, dword [esi + 0xc]
test ecx, ecx
je 0x422d32
mov edx, dword [esp + 0x10]
mov esi, 0x210
mov edi, 0x300
lea edx, [edx*8 + 4]
add edx, ebx
lea ebx, [esi - 0x10]
nop dword [eax]
mov eax, dword [ecx + 0xa0]
mov dword [edx - 4], eax
mov eax, dword [ecx + 0xb0]
cmp eax, 3
ja case.default.0x422d04
jmp dword [eax*4 + 0x422e8c]
or word [edx], di
jmp case.default.0x422d04
or word [edx], si
jmp case.default.0x422d04
or word [edx], bx
jmp case.default.0x422d04
xor ebp, ebp
mov ecx, dword [ecx + 4]
add edx, 8
test ecx, ecx
jne 0x422cf0
mov esi, dword [esp + 0x1c]
mov edi, dword [esp + 0x14]
mov ebx, dword [esp + 0x24]
mov eax, dword [esp + 0x10]
add eax, edi
je 0x422e73
push ebp
push eax
push ebx
call dword [sym.imp.WS2_32.dll_WSAPoll]
test eax, eax
jns 0x422d85
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
cmp eax, 0x2714
je 0x422e73
mov ecx, eax
call fcn.00428610
push eax
push 0x4a468c
push esi
call fcn.00428de0
add esp, 0xc
push ebx
call fcn.00446c84
add esp, 4
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x24
ret
mov eax, dword [esp + 0x18]
mov byte [esi + 0xc8], 0
cmp eax, 0xffffffff
je 0x422dc5
mov ax, word [ebx + eax*8 + 6]
mov ecx, 0x300
and ax, cx
xor ecx, ecx
cmp cx, ax
je 0x422dc5
mov ebp, dword [sym.imp.WS2_32.dll_recv]
nop
push 0
push 4
lea eax, [esp + 0x30]
push eax
push dword [esi + 0xbc]
call ebp
test eax, eax
jg 0x422db0
cmp byte [esi + 0xc4], 0
jne 0x422d72
mov ecx, dword [esi + 0xc]
xor eax, eax
mov dword [esp + 0x14], eax
test ecx, ecx
je 0x422e4f
mov edx, dword [esp + 0x10]
lea esi, [ebx + edx*8]
mov ebp, dword [ecx + 4]
cmp eax, edi
jae 0x422e4b
mov eax, dword [esi]
cmp eax, dword [ecx + 0xa0]
jne 0x422e41
movzx edx, word [esi + 6]
mov eax, edx
mov dword [esp + 0x24], 0
and eax, 0x607
cmp word [esp + 0x24], ax
setne al
movzx eax, al
push eax
mov eax, edx
and edx, 0x300
shr eax, 4
and al, 1
movzx eax, al
push eax
xor eax, eax
cmp ax, dx
setne dl
call fcn.004206b0
mov eax, dword [esp + 0x1c]
add esp, 8
inc eax
add esi, 8
mov dword [esp + 0x14], eax
jmp 0x422e45
mov eax, dword [esp + 0x14]
mov ecx, ebp
test ebp, ebp
jne 0x422de2
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x20]
cmp eax, 0xffffffff
je 0x422e73
mov ax, word [ebx + eax*8 + 6]
mov ecx, 0x300
and ax, cx
xor ecx, ecx
cmp cx, ax
je 0x422e73
mov ecx, esi
call fcn.00421e00
push ebx
call fcn.00446c84
add esp, 4
mov eax, 1
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x24
ret
sub esp, 0x1c
push ebx
push ebp
push esi
mov esi, ecx
push edi
cmp byte [esi + 0xc4], 0
jne 0x422f6d
test dword [esi + 0xe4], 4
jne 0x422ece
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1c
jmp 0x422b90
mov eax, dword [esi + 0xb4]
or ebp, 0xffffffff
xorps xmm0, xmm0
xor edi, edi
or ebx, ebp
movups xmmword [esp + 0x18], xmm0
cmp eax, ebp
je 0x422f01
cmp byte [esi + 0xc5], 0
jne 0x422f01
xor ebp, ebp
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], 0x300
lea edi, [ebp + 1]
mov eax, dword [esi + 0xbc]
cmp eax, 0xffffffff
je 0x422f1b
mov dword [esp + edi*8 + 0x18], eax
mov ebx, edi
mov dword [esp + edi*8 + 0x1c], 0x300
inc edi
test dword [esi + 0xe4], 0x2000
je 0x422f2c
call fcn.00421a90
test edi, edi
je 0x422fd6
push 0xffffffffffffffff
push edi
lea eax, [esp + 0x20]
push eax
call dword [sym.imp.WS2_32.dll_WSAPoll]
test eax, eax
jns 0x422f77
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
cmp eax, 0x2714
je 0x422fd6
mov ecx, eax
call fcn.00428610
push eax
push str.poll_failed:__s_n
push esi
call fcn.00428de0
add esp, 0xc
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1c
ret
cmp ebx, 0xffffffff
je 0x422fad
mov ax, word [esp + ebx*8 + 0x1e]
xor ecx, ecx
mov ebx, 0x300
and ax, bx
cmp cx, ax
je 0x422fb2
mov edi, dword [sym.imp.WS2_32.dll_recv]
push 0
push 4
lea eax, [esp + 0x1c]
push eax
push dword [esi + 0xbc]
call edi
test eax, eax
jg 0x422f96
jmp 0x422fb2
mov ebx, 0x300
cmp byte [esi + 0xc4], 0
jne 0x422f6d
cmp ebp, 0xffffffff
je 0x422fd6
mov ax, word [esp + ebp*8 + 0x1e]
xor ecx, ecx
and ax, bx
cmp cx, ax
je 0x422fd6
mov ecx, esi
call fcn.00421e00
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x1c
ret