Function at 0x40a8a0
Capabilities:
Print debug messages
Receive data
Receive data on socket

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1ec
mov eax, dword [0x4a2300]
xor eax, ebp
mov dword [ebp - 4], eax
mov dword [ebp - 0x1d4], edx
push ebx
push esi
push edi
mov edi, ecx
mov dword [ebp - 0x1dc], edi
test edx, edx
jne 0x40a8db
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0045094b
mov esp, ebp
pop ebp
ret
push 0xec
lea eax, [ebp - 0x1c4]
mov dword [ebp - 0x1c8], 0
push 0
push eax
call fcn.00451650
lea ebx, [ebp - 0x1c8]
add esp, 0xc
mov esi, edi
sub ebx, edi
mov edi, 0x3c
lea ebx, [ebx]
mov ecx, dword [esi]
test ecx, ecx
je 0x40a91e
call fcn.0040a700
mov dword [ebx + esi], eax
add esi, 4
dec edi
jne 0x40a910
xor eax, eax
lea ecx, [ebp - 0x1c0]
lea edx, [edi + 0xa]
nop
cmp dword [ecx - 8], 0
jbe 0x40a937
inc eax
cmp dword [ecx - 4], 0
jbe 0x40a93e
inc eax
cmp dword [ecx], 0
jbe 0x40a944
inc eax
cmp dword [ecx + 4], 0
jbe 0x40a94b
inc eax
cmp dword [ecx + 8], 0
jbe 0x40a952
inc eax
cmp dword [ecx + 0xc], 0
jbe 0x40a959
inc eax
add ecx, 0x18
dec edx
jne 0x40a930
test eax, eax
je 0x40a8c8
push 0x63
push edx
lea eax, [ebp - 0x6f]
mov byte [ebp - 0x70], dl
push eax
call fcn.00451650
add esp, 0xc
call fcn.0040ee00
mov ebx, eax
mov esi, edx
mov dword [ebp - 0x1e8], ebx
mov dword [ebp - 0x1e4], esi
call fcn.0040ee00
sub eax, ebx
mov ebx, dword [sym.imp.WS2_32.dll_closesocket]
sbb edx, esi
test edx, edx
jg 0x40ac37
jl 0x40a9b2
cmp eax, 0xbb8
ja 0x40ac37
mov edx, dword [ebp - 0x1dc]
add edx, 2
mov dword [ebp - 0x1ec], edx
xor ecx, ecx
mov edi, edx
mov dword [ebp - 0x1cc], ecx
mov eax, ecx
mov dword [ebp - 0x1d8], edi
jmp 0x40a9e0
mov esi, dword [ebp + eax*4 - 0x1c8]
test esi, esi
je 0x40ab9b
push 0
push 0x64
lea eax, [ebp - 0x70]
inc ecx
push eax
push esi
mov dword [ebp - 0x1d0], ecx
call dword [sym.imp.WS2_32.dll_recv]
test eax, eax
jne 0x40aa1f
push esi
call ebx
mov eax, dword [ebp - 0x1cc]
mov dword [ebp + eax*4 - 0x1c8], 0
jmp 0x40aa6a
cmp eax, 0xffffffff
jne 0x40aa5f
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
cmp eax, 0x2733
je 0x40ab8f
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
cmp eax, 0x2749
je 0x40ab8f
push esi
call ebx
mov eax, dword [ebp - 0x1cc]
mov dword [ebp + eax*4 - 0x1c8], 0
jmp 0x40ab95
cmp eax, 0x58
je 0x40aa89
mov eax, dword [ebp - 0x1cc]
push dword [ebp + eax*4 - 0x1c8]
call ebx
mov eax, dword [ebp - 0x1cc]
mov dword [ebp + eax*4 - 0x1c8], 0
jmp 0x40ab95
mov eax, dword [ebp - 0x6c]
mov dword [ebp - 0x1e0], eax
xor eax, eax
mov dword [ebp - 0x6c], 0
xor edi, edi
lea ecx, [ecx]
movzx edx, byte [ebp + edi - 0x70]
mov ecx, eax
shl ecx, 5
sub ecx, eax
movzx eax, byte [ebp + edi - 0x6f]
add edx, ecx
mov ecx, edx
shl ecx, 5
sub ecx, edx
add ecx, eax
movzx eax, byte [ebp + edi - 0x6e]
mov edx, ecx
shl edx, 5
sub edx, ecx
movzx ecx, byte [ebp + edi - 0x6d]
add edx, eax
add edi, 4
mov eax, edx
shl eax, 5
sub eax, edx
add eax, ecx
cmp edi, 0x58
jb 0x40aaa0
cmp dword [ebp - 0x1e0], eax
je 0x40ab07
push esi
call ebx
mov edi, dword [ebp - 0x1cc]
mov dword [ebp + edi*4 - 0x1c8], 0
mov edi, dword [ebp - 0x1d8]
jmp 0x40ab8f
cmp dword [ebp - 0x64], 0xc8
je 0x40abed
push esi
call ebx
mov eax, dword [ebp - 0x1cc]
push 0x63
push 0
mov byte [ebp - 0xd8], 0
mov dword [ebp + eax*4 - 0x1c8], 0
lea eax, [ebp - 0xd7]
push eax
call fcn.00451650
mov edi, dword [ebp - 0x1d8]
lea eax, [ebp - 0x60]
add esp, 0xc
push eax
movzx eax, byte [edi + 1]
push eax
movzx eax, byte [edi]
push eax
movzx eax, byte [edi - 1]
push eax
movzx eax, byte [edi - 2]
push eax
lea eax, [ebp - 0xd8]
push 0x481294
push eax
call fcn.0045671f
add esp, 0x1c
lea eax, [ebp - 0xd8]
push eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
lea eax, [ebp - 0xd8]
push eax
call fcn.0045738c
add esp, 4
mov eax, dword [ebp - 0x1cc]
mov ecx, dword [ebp - 0x1d0]
inc eax
add edi, 4
mov dword [ebp - 0x1cc], eax
mov dword [ebp - 0x1d8], edi
cmp eax, 0x3c
jb 0x40a9e0
test ecx, ecx
je 0x40ac81
push 1
call dword [sym.imp.KERNEL32.dll_Sleep]
call fcn.0040ee00
sub eax, dword [ebp - 0x1e8]
sbb edx, dword [ebp - 0x1e4]
test edx, edx
jg 0x40ac37
jl 0x40abe2
cmp eax, 0xbb8
ja 0x40ac37
mov edx, dword [ebp - 0x1ec]
jmp 0x40a9c1
mov eax, dword [0x6afdc4]
test eax, eax
mov edi, dword [ebp - 0x1d4]
cmove eax, dword [ebp - 0x68]
mov ecx, dword [ebp - 0x1cc]
mov dword [0x6afdc4], eax
mov eax, dword [ebp - 0x20]
mov dword [edi + 8], eax
mov eax, dword [ebp - 0x1c]
mov dword [edi + 0xc], eax
mov eax, dword [ebp - 0x1dc]
mov eax, dword [eax + ecx*4]
mov dword [edi + 4], eax
mov eax, dword [ebp + ecx*4 - 0x1c8]
mov dword [edi], eax
mov dword [ebp + ecx*4 - 0x1c8], 0
jmp 0x40ac87
push 0x63
lea eax, [ebp - 0xd7]
mov byte [ebp - 0xd8], 0
push 0
push eax
call fcn.00451650
add esp, 0xc
lea eax, [ebp - 0xd8]
push 0x481274
push eax
call fcn.0045671f
add esp, 8
lea eax, [ebp - 0xd8]
push eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
lea eax, [ebp - 0xd8]
push eax
call fcn.0045738c
add esp, 4
mov edi, dword [ebp - 0x1d4]
xor esi, esi
lea esp, [esp]
mov eax, dword [ebp + esi*4 - 0x1c8]
test eax, eax
je 0x40aca9
push eax
call ebx
mov dword [ebp + esi*4 - 0x1c8], 0
inc esi
cmp esi, 0x3c
jb 0x40ac90
mov ecx, dword [ebp - 4]
xor eax, eax
cmp dword [edi], eax
pop edi
setne al
xor ecx, ebp
pop esi
pop ebx
call fcn.0045094b
mov esp, ebp
pop ebp
ret