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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x4d4
push ebx
push esi
push edi
call fcn.00401cd0
mov dword [ebp - 0x1c], eax
xor ebx, ebx
mov ecx, 0xff
xor eax, eax
lea edi, [ebp - 0x4d3]
mov byte [ebp - 0x4d4], bl
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov ecx, 0x1f
xor eax, eax
lea edi, [ebp - 0xd3]
mov byte [ebp - 0xd4], bl
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0x18], ebx
stosb byte es:[edi], al
mov dword [ebp - 4], ebx
jb 0x401f4d
jae 0x401f4d
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
mov edi, dword [sym.imp.WS2_32.dll_WSAWaitForMultipleEvents]
push ebx
push 0x64
push ebx
push 0x4062f8
push 1
call edi
cmp eax, 0x102
je 0x402006
mov ecx, dword [0x4062f8]
mov edx, dword [0x4062fc]
lea eax, [ebp - 0x54]
push eax
push ecx
push edx
call dword [sym.imp.WS2_32.dll_WSAEnumNetworkEvents]
test byte [ebp - 0x54], 1
je 0x402006
call fcn.00401cd0
mov dword [ebp - 0x20], eax
lea eax, [ebp - 8]
lea ecx, [ebp + 8]
push eax
mov eax, dword [0x4062fc]
push ecx
push ebx
lea edx, [ebp - 0x4d4]
push 0x400
push edx
push eax
mov dword [ebp - 8], 0x10
call dword [sym.imp.WS2_32.dll_recvfrom]
cmp eax, 0xffffffff
je 0x402006
mov cx, word [ebp - 0x4d4]
cmp cx, word [0x4062f4]
jne 0x402006
mov edx, dword [ebp - 0x4d2]
mov esi, dword [sym.imp.WS2_32.dll_ntohs]
push edx
call esi
and eax, 0xfb7f
cmp eax, 0x8100
jne 0x402006
mov eax, dword [ebp - 0x4d0]
push eax
call esi
mov ecx, dword [ebp - 0x4ce]
mov dword [ebp - 0xc], eax
push ecx
call esi
cmp ax, bx
mov dword [ebp - 0x10], eax
ja 0x402022
call fcn.00401cd0
mov esi, dword [ebp - 0x1c]
mov edx, eax
mov eax, dword [ebp + 0x18]
sub edx, esi
cmp edx, eax
ja 0x402207
jmp 0x401f53
mov ecx, dword [ebp - 0xc]
xor edi, edi
and ecx, 0xffff
lea ebx, [ebp - 0x4c8]
mov dword [ebp + 0x18], ecx
je 0x402073
push 0
lea eax, [ebp - 0xd4]
push 0x80
lea ecx, [ebp - 4]
push eax
push ecx
push ebx
call fcn.00401b80
add esp, 0x14
test eax, eax
je 0x40220d
mov edx, dword [ebp - 4]
mov eax, dword [ebp + 0x18]
and edx, 0xffff
inc edi
cmp edi, eax
lea ebx, [ebx + edx + 4]
jne 0x402038
mov eax, dword [ebp - 0x10]
jb 0x402083
jae 0x402083
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
and eax, 0xffff
mov dword [ebp - 0xc], 0
mov dword [ebp - 0x24], eax
je 0x4021cb
mov eax, dword [ebp + 0x20]
mov ecx, dword [ebp + 0x1c]
mov dword [ebp - 0x10], eax
mov dword [ebp + 0x18], ecx
jmp 0x4020ac
mov esi, dword [sym.imp.WS2_32.dll_ntohs]
lea edx, [ebp - 0x4d4]
lea eax, [ebp - 0xd4]
push edx
push 0x80
lea ecx, [ebp - 4]
push eax
push ecx
push ebx
call fcn.00401b80
add esp, 0x14
test eax, eax
je 0x40220d
mov edx, dword [ebp - 4]
and edx, 0xffff
add ebx, edx
mov ax, word [ebx]
push eax
call esi
mov cx, word [ebx + 2]
mov edi, eax
push ecx
call esi
mov edx, dword [ebx + 4]
push edx
call dword [sym.imp.WS2_32.dll_ntohl]
mov ax, word [ebx + 8]
push eax
call esi
mov esi, eax
add ebx, 0xa
cmp di, 1
mov dword [ebp - 0x28], esi
jne 0x40213b
mov eax, dword [ebp + 0x1c]
test eax, eax
je 0x4021b1
cmp dword [ebp - 0x14], 0x80
jae 0x4021b1
mov eax, dword [ebp + 0x18]
mov ecx, dword [ebx]
mov edx, dword [ebp - 0x14]
mov dword [eax], ecx
inc edx
add eax, 4
mov dword [ebp - 0x14], edx
mov dword [ebp + 0x18], eax
jmp 0x4021b1
cmp di, 5
jne 0x4021b1
mov eax, dword [ebp + 0x20]
test eax, eax
je 0x4021b1
lea edx, [ebp - 0x4d4]
lea eax, [ebp - 0xd4]
push edx
push 0x80
lea ecx, [ebp - 4]
push eax
push ecx
push ebx
call fcn.00401b80
add esp, 0x14
test eax, eax
je 0x40220d
cmp dword [ebp - 0x18], 0x80
jae 0x4021b1
lea edi, [ebp - 0xd4]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
mov eax, dword [ebp - 0x10]
not ecx
sub edi, ecx
mov edx, ecx
mov esi, edi
mov edi, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
mov edx, dword [ebp - 0x18]
and ecx, 3
inc edx
rep movsb byte es:[edi], byte [esi]
mov esi, dword [ebp - 0x28]
add eax, 0x80
mov dword [ebp - 0x18], edx
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x24]
and esi, 0xffff
add ebx, esi
inc eax
cmp eax, ecx
mov dword [ebp - 0xc], eax
jne 0x4020a6
jb 0x4021ea
jae 0x4021ea
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
mov ecx, dword [ebp + 0x24]
test ecx, ecx
je 0x4021fb
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x1c]
sub eax, edx
mov dword [ecx], eax
pop edi
pop esi
mov eax, 1
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp + 0x24]
inc eax
mov dword [ecx], eax
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret