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

Disassembly:
push 0x74
mov eax, 0x434ccf
call fcn.0041f156
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.0040e424
test eax, eax
je 0x40e3f0
push dword [ebp + 8]
push ebx
call fcn.0040e444
test eax, eax
je 0x40e3f0
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 0x40e206
mov eax, dword [ebp - 0x4c]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40e1e5
sub eax, edx
cmp eax, 0x20
jne 0x40e206
push dword [ebp - 0x4c]
lea eax, [ebp - 0x34]
push 0x21
push eax
call fcn.0041e761
add esp, 0xc
jmp 0x40e211
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.0040e4d6
test eax, eax
jle 0x40e3f0
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 0x40e3f0
cmp dword [ebp - 0x78], 1
jne 0x40e3f0
cmp dword [ebp - 0x74], esi
jne 0x40e3f0
cmp dword [ebp - 0x6c], 1
jne 0x40e3f0
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.0040251a
push 0x4435c0
lea eax, [ebp - 0x50]
push eax
call fcn.00402592
mov edi, dword [ebp - 0x50]
push edi
call fcn.0040f4cf
pop ecx
push edi
push 2
pop ecx
mov edx, 0x40000000
call fcn.0040f10b
pop ecx
mov dword [ebp - 0x48], eax
test eax, eax
je 0x40e3e8
cmp eax, 0xffffffff
je 0x40e3e8
push 0x7d014
call fcn.0041d973
mov ebx, eax
pop ecx
test ebx, ebx
je 0x40e365
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.0041e9c0
mov esi, dword [ebp - 0x60]
add esp, 0xc
push ebx
call fcn.0040e05a
xor esi, esi
cmp eax, esi
je 0x40e33b
mov eax, dword [ebx + 0x10]
cmp eax, edi
ja 0x40e32c
cmp eax, esi
jbe 0x40e32c
mov eax, dword [ebx + 0xc]
push eax
push dword [ebp - 0x48]
mov dword [ebp - 0x7c], esi
call fcn.0040f1f0
lea eax, [ebp - 0x64]
push eax
push dword [ebx + 0x10]
lea eax, [ebx + 0x14]
push eax
push dword [ebp - 0x48]
call fcn.0040f278
cmp dword [ebx + 0x10], esi
je 0x40e33b
push 1
call dword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x40e2ce
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.0041e9c0
add esp, 0xc
push ebx
call fcn.0041cb10
mov edi, dword [ebp - 0x50]
pop ecx
push dword [ebp - 0x48]
call fcn.0040f412
cmp dword [ebp - 0x4c], 0
je 0x40e3d3
mov eax, dword [ebp - 0x4c]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40e379
sub eax, edx
cmp eax, 0x20
jne 0x40e3d3
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.00402aa7
push eax
push edi
call fcn.0040f749
pop ecx
pop ecx
call fcn.00409194
push dword [ebp - 0x4c]
mov eax, esi
push eax
call fcn.0040458e
test eax, eax
jne 0x40e3fb
mov byte [ebp - 4], al
mov eax, dword [ebp - 0x48]
add eax, 0xfffffff0
call fcn.00401603
push dword [ebp - 0x54]
call fcn.0040f4cf
pop ecx
push dword [ebp - 0x54]
push edi
call fcn.0040f64c
mov dword [ebp - 0x58], eax
lea eax, [edi - 0x10]
call fcn.00401603
mov eax, dword [ebp - 0x58]
call fcn.0041f1d9
ret 0x10
push edi
call fcn.0040f4cf
mov eax, dword [ebp - 0x48]
pop ecx
add eax, 0xfffffff0
call fcn.00401603
jmp 0x40e3e8