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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc4
push ebx
mov ebx, dword [ebp + 8]
lea eax, [ebp - 0xc4]
xor ecx, ecx
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0x1c], ecx
mov byte [ebp - 5], cl
push esi
push edi
test ebx, ebx
je 0x4088e2
cmp dword [ebx], 0xbab1e
jne 0x4088e2
cmp byte [ebx + 0xe6], cl
je 0x40859d
push 8
pop eax
jmp 0x4088e5
mov edi, dword [ebp + 0x14]
test edi, edi
jns 0x4085a8
push 0xa
jmp 0x408597
mov esi, dword [ebx + 4]
test esi, esi
je 0x40860e
mov edi, ecx
lea eax, [ebp - 0x34]
push eax
push esi
call fcn.004074ef
pop ecx
pop ecx
mov dword [ebp - 4], eax
xor edx, edx
mov ebx, eax
or eax, 0xffffffff
mov ecx, edx
mov dword [ebp - 0xc], eax
xor eax, eax
inc eax
shl eax, cl
test ebx, eax
je 0x4085dd
mov eax, dword [ebp + edx*4 - 0x34]
inc edi
mov dword [ebp - 0xc], eax
xor eax, eax
lea ecx, [edx + 0x10]
inc eax
shl eax, cl
test ebx, eax
je 0x4085f0
mov eax, dword [ebp + edx*4 - 0x34]
inc edi
jmp 0x4085f3
mov eax, dword [ebp - 0xc]
cmp eax, 0xffffffff
je 0x4085fe
inc edx
cmp edx, 5
jb 0x4085c4
mov esi, dword [esi + 4]
mov dword [ebp - 0x18], edi
test esi, esi
jne 0x4085b1
mov ebx, dword [ebp + 8]
mov edi, dword [ebp + 0x14]
lea eax, [ebp - 4]
push eax
push ebx
call fcn.0040848b
mov eax, dword [ebp - 4]
pop ecx
pop ecx
test eax, eax
js 0x408629
cmp eax, edi
cmovl edi, eax
mov dword [ebp + 0x14], edi
mov eax, dword [ebp + 0x10]
mov esi, dword [ebp - 0x18]
add eax, esi
cmp byte [ebp + 0x20], 0
mov dword [ebp - 0x20], eax
je 0x408644
cmp dword [ebx + 0xdc], 0xffffffff
je 0x408644
inc eax
cmp eax, 0xa
jbe 0x408666
shl eax, 3
push eax
call dword [section..data]
mov dword [ebp - 0x14], eax
pop ecx
test eax, eax
jne 0x408662
push 3
jmp 0x408597
mov byte [ebp - 5], 1
xor edi, edi
mov dword [ebp - 0x10], edi
test esi, esi
je 0x408701
mov eax, dword [ebx + 4]
mov dword [ebp - 4], eax
test eax, eax
je 0x408701
mov ebx, dword [ebp - 0x14]
lea ecx, [ebp - 0x34]
push ecx
push eax
call fcn.004074ef
pop ecx
pop ecx
mov dword [ebp - 0xc], eax
xor esi, esi
or dword [ebp - 0x10], 0xffffffff
xor edx, edx
inc edx
mov ecx, esi
shl edx, cl
test eax, edx
je 0x4086bc
mov eax, dword [ebp + esi*4 - 0x34]
mov dword [ebx + edi*8], eax
mov eax, 0x300
mov word [ebx + edi*8 + 4], ax
inc edi
mov edx, dword [ebp + esi*4 - 0x34]
jmp 0x4086bf
mov edx, dword [ebp - 0x10]
xor eax, eax
lea ecx, [esi + 0x10]
inc eax
shl eax, cl
test dword [ebp - 0xc], eax
je 0x4086e0
mov eax, dword [ebp + esi*4 - 0x34]
mov dword [ebx + edi*8], eax
push 0x10
pop eax
mov word [ebx + edi*8 + 4], ax
inc edi
mov edx, dword [ebp + esi*4 - 0x34]
cmp edx, 0xffffffff
je 0x4086ee
mov eax, dword [ebp - 0xc]
inc esi
cmp esi, 5
jb 0x408695
mov eax, dword [ebp - 4]
mov dword [ebp - 0x10], edi
mov eax, dword [eax + 4]
mov dword [ebp - 4], eax
test eax, eax
jne 0x408684
mov ebx, dword [ebp + 8]
mov eax, dword [ebp + 0x10]
test eax, eax
je 0x40878d
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp + 0xc]
add ecx, 4
add edx, 4
lea ecx, [ecx + edi*8]
add edi, eax
mov dword [ebp - 0x10], edi
mov edi, eax
mov eax, dword [edx - 4]
xor ebx, ebx
mov dword [ecx - 4], eax
xor eax, eax
mov word [ecx], ax
movzx eax, word [edx]
mov dword [ebp - 0xc], ebx
mov esi, eax
test al, 1
je 0x40874b
mov eax, 0x300
mov word [ecx], ax
mov ebx, eax
movzx esi, word [edx]
mov dword [ebp - 0xc], eax
movzx eax, si
movzx ebx, bx
mov esi, eax
mov dword [ebp - 4], esi
test al, 2
je 0x40876d
mov eax, dword [ebp - 0xc]
or eax, 0x400
mov word [ecx], ax
movzx ebx, ax
movzx eax, word [edx]
jmp 0x408770
mov eax, dword [ebp - 4]
test al, 4
je 0x40877c
push 0x10
pop eax
or ebx, eax
mov word [ecx], bx
add ecx, 8
add edx, 8
sub edi, 1
jne 0x408722
mov edi, dword [ebp - 0x10]
mov ebx, dword [ebp + 8]
cmp byte [ebp + 0x20], 0
mov esi, dword [ebp - 0x14]
je 0x4087b2
mov eax, dword [ebx + 0xdc]
cmp eax, 0xffffffff
je 0x4087b2
mov dword [esi + edi*8], eax
mov eax, 0x300
mov word [esi + edi*8 + 4], ax
inc edi
mov dword [ebp - 0x10], edi
test edi, edi
je 0x408889
mov eax, dword [ebp + 0x14]
cdq
push edx
push eax
push edi
push esi
call fcn.0041e25d
add esp, 0x10
mov dword [ebp - 0xc], eax
test eax, eax
jle 0x408889
cmp dword [ebp + 0x10], 0
mov dword [ebp - 0x1c], eax
je 0x40884c
mov eax, dword [ebp - 0x18]
mov edi, dword [ebp + 0xc]
add edi, 6
lea eax, [eax*8 + 6]
add eax, esi
mov dword [ebp - 4], eax
movsx esi, word [eax]
mov eax, esi
mov ebx, esi
and eax, 0x300
neg eax
sbb eax, eax
neg eax
movzx edx, ax
mov eax, edx
or eax, 4
and bl, 0x10
movzx ecx, ax
mov eax, edx
cmove ecx, eax
movzx edx, cx
mov eax, edx
or eax, 2
and esi, 0x400
movzx ecx, ax
mov eax, edx
cmove ecx, eax
mov eax, dword [ebp - 4]
add eax, 8
mov word [edi], cx
sub dword [ebp + 0x10], 1
lea edi, [edi + 8]
mov dword [ebp - 4], eax
jne 0x4087f3
mov edi, dword [ebp - 0x10]
mov ebx, dword [ebp + 8]
mov esi, dword [ebp - 0x14]
cmp byte [ebp + 0x20], 0
je 0x408889
cmp dword [ebx + 0xdc], 0xffffffff
je 0x408889
mov eax, dword [ebp - 0x20]
mov ecx, 0x300
test word [esi + eax*8 + 6], cx
je 0x408889
push 0
push 0x40
lea eax, [ebp - 0x74]
push eax
push dword [ebx + 0xdc]
call dword [sym.imp.WS2_32.dll_recv]
test eax, eax
jg 0x40886a
mov eax, dword [ebp - 0xc]
dec eax
mov dword [ebp - 0x1c], eax
cmp byte [ebp - 5], 0
je 0x408897
push esi
call dword [0x46c004]
pop ecx
mov eax, dword [ebp + 0x18]
test eax, eax
je 0x4088a3
mov ecx, dword [ebp - 0x1c]
mov dword [eax], ecx
cmp byte [ebp + 0x1c], 0
je 0x4088de
test edi, edi
jne 0x4088de
and dword [ebp + 8], edi
lea eax, [ebp + 8]
push eax
push ebx
call sym.knocker.exe_curl_multi_timeout
pop ecx
pop ecx
test eax, eax
jne 0x4088de
mov eax, dword [ebp + 8]
test eax, eax
je 0x4088de
mov ecx, dword [ebp + 0x14]
cmp eax, ecx
jg 0x4088d2
test eax, eax
jns 0x4088d4
mov eax, ecx
cdq
push edx
push eax
call fcn.0041e5e3
pop ecx
pop ecx
xor eax, eax
jmp 0x4088e5
xor eax, eax
inc eax
pop edi
pop esi
pop ebx
leave
ret