Function at 0x40e225
Capabilities:
Receive data
Receive data on socket
Set socket configuration

Disassembly:
push 0x74
mov eax, 0x434daf
call fcn.0041f1c6
mov eax, dword [ebp + 0x10]
and dword [ebp - 0x58], 0
mov ebx, ecx
mov dword [ebp - 0x4c], eax
mov eax, dword [ebp + 0x14]
push ebx
mov dword [ebp - 0x60], ebx
mov edi, edx
mov dword [ebp - 0x54], eax
call fcn.0040e504
test eax, eax
je 0x40e4d0
push dword [ebp + 8]
push ebx
call fcn.0040e524
test eax, eax
je 0x40e4d0
mov edi, dword [sym.imp.WS2_32.dll_setsockopt]
push 4
lea eax, [ebp - 0x5c]
push eax
push 0x1006
mov esi, 0xffff
push esi
push dword [ebx]
mov dword [ebp - 0x5c], 0x1388
call edi
push 4
lea eax, [ebp - 0x5c]
push eax
push 0x1005
push esi
push dword [ebx]
call edi
push 8
xor eax, eax
cmp dword [ebp - 0x4c], 0
pop ecx
lea edi, [ebp - 0x34]
rep stosd dword es:[edi], eax
stosb byte es:[edi], al
mov eax, dword [ebp + 0xc]
mov esi, 0x3e8
mov dword [ebp - 0x44], 1
mov dword [ebp - 0x40], esi
mov dword [ebp - 0x38], eax
je 0x40e2e6
mov eax, dword [ebp - 0x4c]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40e2c5
sub eax, edx
cmp eax, 0x20
jne 0x40e2e6
push dword [ebp - 0x4c]
lea eax, [ebp - 0x34]
push 0x21
push eax
call fcn.0041e7d1
add esp, 0xc
jmp 0x40e2f1
push 8
pop ecx
xor eax, eax
lea edi, [ebp - 0x34]
rep stosd dword es:[edi], eax
stosb byte es:[edi], al
lea eax, [ebp - 0x44]
push eax
push ebx
push 0x34
pop edi
call fcn.0040e5b6
test eax, eax
jle 0x40e4d0
push 0
push 0x14
lea eax, [ebp - 0x78]
push eax
push dword [ebx]
call dword [sym.imp.WS2_32.dll_recv]
test eax, eax
jle 0x40e4d0
cmp dword [ebp - 0x78], 1
jne 0x40e4d0
cmp dword [ebp - 0x74], esi
jne 0x40e4d0
cmp dword [ebp - 0x6c], 1
jne 0x40e4d0
mov eax, dword [0x44f98c]
mov ecx, 0x44f98c
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x50], eax
push dword [ebp - 0x54]
and dword [ebp - 4], 0
lea eax, [ebp - 0x50]
push eax
call fcn.00402737
push 0x4434d0
lea eax, [ebp - 0x50]
push eax
call fcn.004027af
mov edi, dword [ebp - 0x50]
push edi
call fcn.0040f5af
pop ecx
push edi
push 2
pop ecx
mov edx, 0x40000000
call fcn.0040f1eb
pop ecx
mov dword [ebp - 0x48], eax
test eax, eax
je 0x40e4c8
cmp eax, 0xffffffff
je 0x40e4c8
push 0x7d014
call fcn.0041d9e6
mov ebx, eax
pop ecx
test ebx, ebx
je 0x40e445
xor eax, eax
mov edi, ebx
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
xor eax, eax
lea edi, [ebx + 0xc]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
mov edi, 0x7d000
push edi
lea eax, [ebx + 0x14]
push 0
push eax
call fcn.0041ea30
mov esi, dword [ebp - 0x60]
add esp, 0xc
push ebx
call fcn.0040e13a
xor esi, esi
cmp eax, esi
je 0x40e41b
mov eax, dword [ebx + 0x10]
cmp eax, edi
ja 0x40e40c
cmp eax, esi
jbe 0x40e40c
mov eax, dword [ebx + 0xc]
push eax
push dword [ebp - 0x48]
mov dword [ebp - 0x7c], esi
call fcn.0040f2d0
lea eax, [ebp - 0x64]
push eax
push dword [ebx + 0x10]
lea eax, [ebx + 0x14]
push eax
push dword [ebp - 0x48]
call fcn.0040f358
cmp dword [ebx + 0x10], esi
je 0x40e41b
push 1
call dword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x40e3ae
xor eax, eax
mov edi, ebx
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
xor eax, eax
lea edi, [ebx + 0xc]
stosd dword es:[edi], eax
push 0x7d000
stosd dword es:[edi], eax
lea eax, [ebx + 0x14]
push esi
push eax
call fcn.0041ea30
add esp, 0xc
push ebx
call fcn.0041cb83
mov edi, dword [ebp - 0x50]
pop ecx
push dword [ebp - 0x48]
call fcn.0040f4f2
cmp dword [ebp - 0x4c], 0
je 0x40e4b3
mov eax, dword [ebp - 0x4c]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40e459
sub eax, edx
cmp eax, 0x20
jne 0x40e4b3
mov eax, dword [0x44f98c]
mov ecx, 0x44f98c
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x48], eax
push 0x32
lea esi, [ebp - 0x48]
mov byte [ebp - 4], 1
call fcn.00402aca
push eax
push edi
call fcn.0040f829
pop ecx
pop ecx
call fcn.00409285
push dword [ebp - 0x4c]
mov eax, esi
push eax
call fcn.00404711
test eax, eax
jne 0x40e4db
mov byte [ebp - 4], al
mov eax, dword [ebp - 0x48]
add eax, 0xfffffff0
call fcn.00401629
push dword [ebp - 0x54]
call fcn.0040f5af
pop ecx
push dword [ebp - 0x54]
push edi
call fcn.0040f72c
mov dword [ebp - 0x58], eax
lea eax, [edi - 0x10]
call fcn.00401629
mov eax, dword [ebp - 0x58]
call fcn.0041f249
ret 0x10
push edi
call fcn.0040f5af
mov eax, dword [ebp - 0x48]
pop ecx
add eax, 0xfffffff0
call fcn.00401629
jmp 0x40e4c8