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

Disassembly:
sub esp, 0x49c
push ebx
push ebp
push esi
push edi
mov ebp, 0x10
lea eax, [esp + 0x20]
lea ecx, [esp + 0x10]
push eax
mov eax, dword [0x40d89c]
push ecx
push 0
lea edx, [esp + 0x2b4]
push 0x204
push edx
push eax
mov dword [esp + 0x38], ebp
call sub.WSOCK32.dll_recvfrom
cmp eax, 0xffffffff
je 0x401c79
mov ecx, dword [esp + 0x2a9]
mov al, byte [0x40d8a8]
xor ebx, ebx
and ecx, 0xff
mov bh, byte [esp + 0x2a8]
and ebx, 0xffff
or ebx, ecx
test al, al
je 0x4019bb
mov edi, 0x40d8a8
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x1a8]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
push 0x2e
mov eax, ecx
mov esi, edi
mov edi, edx
lea edx, [esp + 0x1ac]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edi, [esp + 0x2ae]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edi, edx
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
lea eax, [esp + 0x1ac]
and ecx, 3
push eax
rep movsb byte es:[edi], byte [esi]
call fcn.00402650
add esp, 8
test eax, eax
je 0x4019e6
mov cl, byte [eax + 1]
inc eax
cmp cl, 0x2e
jne 0x4019e6
mov byte [eax], 0x21
jmp 0x4019e6
lea edi, [esp + 0x2aa]
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x1a8]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
cmp ebx, 1
jne 0x401b30
mov ecx, dword [str.RRQ_received_from]
mov edx, dword [0x40a388]
mov eax, dword [0x40a38c]
mov dword [esp + 0x28], ecx
mov ecx, dword [0x40a390]
mov dword [esp + 0x2c], edx
mov dx, word [0x40a394]
mov dword [esp + 0x34], ecx
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x30], eax
mov al, byte [0x40a396]
push ecx
mov word [esp + 0x3c], dx
mov byte [esp + 0x3e], al
call sub.WSOCK32.dll_inet_ntoa
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x28]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edi, edx
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
lea edx, [esp + 0x28]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, str._for
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edi, edx
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
lea edx, [esp + 0x28]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edi, [esp + 0x1a8]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edi, edx
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
lea eax, [esp + 0x28]
and ecx, 3
push eax
rep movsb byte es:[edi], byte [esi]
call fcn.00401020
add esp, 4
push 0x110
call fcn.00402570
mov edx, eax
mov eax, dword [esp + 0x14]
mov ecx, edx
add esp, 4
mov dword [ecx], eax
mov eax, dword [esp + 0x14]
lea edi, [esp + 0x1a8]
mov dword [ecx + 4], eax
mov eax, dword [esp + 0x18]
lea esi, [edx + 0x10]
push edx
mov dword [ecx + 8], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x28], esi
push 0
mov dword [ecx + 0xc], eax
or ecx, 0xffffffff
xor eax, eax
push 0x4011f0
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, dword [esp + 0x30]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
call fcn.00401ef0
add esp, 0xc
cmp ebx, 2
jne 0x4018df
mov ecx, dword [str.WRQ_received_from]
mov edx, dword [0x40a36c]
mov eax, dword [0x40a370]
mov dword [esp + 0x28], ecx
mov ecx, dword [0x40a374]
mov dword [esp + 0x2c], edx
mov dx, word [0x40a378]
mov dword [esp + 0x34], ecx
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x30], eax
mov al, byte [0x40a37a]
push ecx
mov word [esp + 0x3c], dx
mov byte [esp + 0x3e], al
call sub.WSOCK32.dll_inet_ntoa
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x28]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov ebx, ecx
mov esi, edi
or ecx, 0xffffffff
mov edi, edx
repne scasb al, byte es:[edi]
mov ecx, ebx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
lea edx, [esp + 0x28]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, str._for
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov ebx, ecx
mov edi, edx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, ebx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
lea edx, [esp + 0x28]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edi, [esp + 0x1a8]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov ebx, ecx
mov edi, edx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, ebx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
lea eax, [esp + 0x28]
and ecx, 3
push eax
rep movsb byte es:[edi], byte [esi]
call fcn.00401020
add esp, 4
push 0x110
call fcn.00402570
mov edx, eax
mov eax, dword [esp + 0x14]
mov ecx, edx
add esp, 4
mov dword [ecx], eax
mov eax, dword [esp + 0x14]
lea edi, [esp + 0x1a8]
mov dword [ecx + 4], eax
mov eax, dword [esp + 0x18]
lea ebx, [edx + 0x10]
push edx
mov dword [ecx + 8], eax
mov eax, dword [esp + 0x20]
push 0
push 0x401530
mov dword [ecx + 0xc], eax
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, ebx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
call fcn.00401ef0
add esp, 0xc
jmp 0x4018df
push 0x1f4
call dword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x4018df