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
invalid
push ebx
stosd dword es:[edi], eax
stosw word es:[edi], ax
stosd dword es:[edi], eax
mov dword [ebp - 0x14], ebx
pop ebp
in al, dx
mov dword [ebp - 0x18], ebx
stosb byte es:[edi], al
call 0xfc9da8d9
mov dword [ebp - 4], ebx
cld
jnp 0x401f4d
jp 0x401f4d
loope 0x401f1e
loope 0x401f20
loope 0x401f22
loope 0x401f24
loope 0x401f26
loope 0x401f28
loope 0x401f2a
loope 0x401f2c
loope 0x401f2e
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
loop 0x402063
invalid
inc dword [eax]
add byte [edi + 0x3b], al
clc
lea ebx, [ebx + edx + 4]
jne 0x402038
mov eax, dword [ebp - 0x10]
jnp 0x402083
jp 0x402083
loope 0x402062
loope 0x402064
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
add byte [ebx + 0x38], dh
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
inc dword [eax]
add byte [eax], al
add byte [ebx], al
add ebx, esi
fiadd word [eax + 0x3b]
inc eax
cmp eax, ecx
ror dword [ecx - 0x7af00bbb], 0xdb
mov dword [ebp - 0xc], eax
inc ebp
hlt
jne 0x4020a6
test ebx, ebx
invalid
invalid
invalid
dec dword [edi]
mov ebx, dword [ecx]
add byte [eax], al
add byte [edi], cl
mov dl, byte [ebx]
add byte [eax], al
add cl, ah
loope 0x4021bb
jnp 0x4021ea
jp 0x4021ea
loope 0x4021ba
loope 0x4021bc
loope 0x4021bd
loope 0x4021be
loope 0x4021bf
loope 0x4021c0
loope 0x4021c1
loope 0x4021c2
loope 0x4021c3
loope 0x4021c4
loope 0x4021c5
loope 0x4021c6
loope 0x4021c7
loope 0x4021c8
loope 0x4021c9
loope 0x4021ca
loope 0x4021cb
loope 0x402176
mov ecx, dword [ebp + 0x24]
test ecx, ecx
dec ebp
and al, 0x85
leave
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