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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x110
push esi
push edi
lea edi, [ebp - 0x110]
mov ecx, 0x44
mov eax, 0xcccccccc
rep stosd dword es:[edi], eax
mov eax, dword [0x7a3104]
xor eax, ebp
mov dword [ebp - 4], eax
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x44], 0
mov eax, 8
imul ecx, eax, 0
lea edx, [ebp + ecx - 0x98]
mov dword [ebp - 0xa0], edx
mov byte [ebp - 0xa1], 0
cmp dword [ebp + 8], 0
je 0x57cca2
mov eax, dword [ebp + 8]
cmp dword [eax], 0xbab1e
je 0x57ccac
mov eax, 1
jmp 0x57d28b
mov ecx, dword [ebp + 8]
movzx edx, byte [ecx + 0xe6]
test edx, edx
je 0x57ccc4
mov eax, 8
jmp 0x57d28b
cmp dword [ebp + 0x14], 0
jge 0x57ccd4
mov eax, 0xa
jmp 0x57d28b
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 4]
mov dword [ebp - 8], ecx
cmp dword [ebp - 8], 0
je 0x57cd84
lea edx, [ebp - 0x20]
push edx
mov eax, dword [ebp - 8]
push eax
call fcn.0057cb00
add esp, 8
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x2c], 0
jmp 0x57cd0c
mov ecx, dword [ebp - 0x2c]
add ecx, 1
mov dword [ebp - 0x2c], ecx
cmp dword [ebp - 0x2c], 5
jae 0x57cd76
mov dword [ebp - 0xa8], 0xffffffff
mov edx, 1
mov ecx, dword [ebp - 0x2c]
shl edx, cl
and edx, dword [ebp - 0x28]
je 0x57cd41
mov eax, dword [ebp - 0x30]
add eax, 1
mov dword [ebp - 0x30], eax
mov ecx, dword [ebp - 0x2c]
mov edx, dword [ebp + ecx*4 - 0x20]
mov dword [ebp - 0xa8], edx
mov ecx, dword [ebp - 0x2c]
add ecx, 0x10
mov eax, 1
shl eax, cl
and eax, dword [ebp - 0x28]
je 0x57cd69
mov ecx, dword [ebp - 0x30]
add ecx, 1
mov dword [ebp - 0x30], ecx
mov edx, dword [ebp - 0x2c]
mov eax, dword [ebp + edx*4 - 0x20]
mov dword [ebp - 0xa8], eax
cmp dword [ebp - 0xa8], 0xffffffff
jne 0x57cd74
jmp 0x57cd76
jmp 0x57cd03
mov ecx, dword [ebp - 8]
mov edx, dword [ecx + 4]
mov dword [ebp - 8], edx
jmp 0x57ccdd
lea eax, [ebp - 0x3c]
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.0057bd20
add esp, 8
cmp dword [ebp - 0x3c], 0
jl 0x57cda8
mov edx, dword [ebp - 0x3c]
cmp edx, dword [ebp + 0x14]
jge 0x57cda8
mov eax, dword [ebp - 0x3c]
mov dword [ebp + 0x14], eax
mov ecx, dword [ebp - 0x30]
mov dword [ebp - 0x34], ecx
mov edx, dword [ebp - 0x30]
add edx, dword [ebp + 0x10]
mov dword [ebp - 0x30], edx
movzx eax, byte [ebp + 0x20]
test eax, eax
je 0x57cddd
mov ecx, 4
imul edx, ecx, 0
mov eax, dword [ebp + 8]
cmp dword [eax + edx + 0xdc], 0xffffffff
je 0x57cddd
mov ecx, dword [ebp - 0x30]
add ecx, 1
mov dword [ebp - 0x30], ecx
cmp dword [ebp - 0x30], 0xa
jbe 0x57ce1c
mov edx, dword [ebp - 0x30]
shl edx, 3
mov esi, esp
push edx
call dword [0x79402c]
add esp, 4
cmp esi, esp
call fcn.00516fe7
mov dword [ebp - 0xa0], eax
cmp dword [ebp - 0xa0], 0
jne 0x57ce15
mov eax, 3
jmp 0x57d28b
mov byte [ebp - 0xa1], 1
mov dword [ebp - 0x30], 0
cmp dword [ebp - 0x34], 0
je 0x57cf30
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 4]
mov dword [ebp - 8], ecx
cmp dword [ebp - 8], 0
je 0x57cf30
lea edx, [ebp - 0x20]
push edx
mov eax, dword [ebp - 8]
push eax
call fcn.0057cb00
add esp, 8
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x2c], 0
jmp 0x57ce65
mov ecx, dword [ebp - 0x2c]
add ecx, 1
mov dword [ebp - 0x2c], ecx
cmp dword [ebp - 0x2c], 5
jae 0x57cf22
mov dword [ebp - 0xac], 0xffffffff
mov edx, 1
mov ecx, dword [ebp - 0x2c]
shl edx, cl
and edx, dword [ebp - 0x28]
je 0x57cec4
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0xa0]
mov edx, dword [ebp - 0x2c]
mov edx, dword [ebp + edx*4 - 0x20]
mov dword [ecx + eax*8], edx
mov eax, 0x300
mov ecx, dword [ebp - 0x30]
mov edx, dword [ebp - 0xa0]
mov word [edx + ecx*8 + 4], ax
mov eax, dword [ebp - 0x30]
add eax, 1
mov dword [ebp - 0x30], eax
mov ecx, dword [ebp - 0x2c]
mov edx, dword [ebp + ecx*4 - 0x20]
mov dword [ebp - 0xac], edx
mov ecx, dword [ebp - 0x2c]
add ecx, 0x10
mov eax, 1
shl eax, cl
and eax, dword [ebp - 0x28]
je 0x57cf12
mov ecx, dword [ebp - 0x30]
mov edx, dword [ebp - 0xa0]
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp + eax*4 - 0x20]
mov dword [edx + ecx*8], eax
mov ecx, 0x10
mov edx, dword [ebp - 0x30]
mov eax, dword [ebp - 0xa0]
mov word [eax + edx*8 + 4], cx
mov ecx, dword [ebp - 0x30]
add ecx, 1
mov dword [ebp - 0x30], ecx
mov edx, dword [ebp - 0x2c]
mov eax, dword [ebp + edx*4 - 0x20]
mov dword [ebp - 0xac], eax
cmp dword [ebp - 0xac], 0xffffffff
jne 0x57cf1d
jmp 0x57cf22
jmp 0x57ce5c
mov ecx, dword [ebp - 8]
mov edx, dword [ecx + 4]
mov dword [ebp - 8], edx
jmp 0x57ce36
mov dword [ebp - 0x2c], 0
jmp 0x57cf42
mov eax, dword [ebp - 0x2c]
add eax, 1
mov dword [ebp - 0x2c], eax
mov ecx, dword [ebp - 0x2c]
cmp ecx, dword [ebp + 0x10]
jae 0x57d013
mov edx, dword [ebp - 0x30]
mov eax, dword [ebp - 0xa0]
mov ecx, dword [ebp - 0x2c]
mov esi, dword [ebp + 0xc]
mov ecx, dword [esi + ecx*8]
mov dword [eax + edx*8], ecx
xor edx, edx
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0xa0]
mov word [ecx + eax*8 + 4], dx
mov edx, dword [ebp - 0x2c]
mov eax, dword [ebp + 0xc]
movsx ecx, word [eax + edx*8 + 4]
and ecx, 1
je 0x57cfa5
mov edx, dword [ebp - 0x30]
mov eax, dword [ebp - 0xa0]
movsx ecx, word [eax + edx*8 + 4]
or ecx, 0x300
mov edx, dword [ebp - 0x30]
mov eax, dword [ebp - 0xa0]
mov word [eax + edx*8 + 4], cx
mov ecx, dword [ebp - 0x2c]
mov edx, dword [ebp + 0xc]
movsx eax, word [edx + ecx*8 + 4]
and eax, 2
je 0x57cfd6
mov ecx, dword [ebp - 0x30]
mov edx, dword [ebp - 0xa0]
movsx eax, word [edx + ecx*8 + 4]
or eax, 0x400
mov ecx, dword [ebp - 0x30]
mov edx, dword [ebp - 0xa0]
mov word [edx + ecx*8 + 4], ax
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp + 0xc]
movsx edx, word [ecx + eax*8 + 4]
and edx, 4
je 0x57d005
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0xa0]
movsx edx, word [ecx + eax*8 + 4]
or edx, 0x10
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0xa0]
mov word [ecx + eax*8 + 4], dx
mov edx, dword [ebp - 0x30]
add edx, 1
mov dword [ebp - 0x30], edx
jmp 0x57cf39
movzx eax, byte [ebp + 0x20]
test eax, eax
je 0x57d06a
mov ecx, 4
imul edx, ecx, 0
mov eax, dword [ebp + 8]
cmp dword [eax + edx + 0xdc], 0xffffffff
je 0x57d06a
mov ecx, 4
imul edx, ecx, 0
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0xa0]
mov esi, dword [ebp + 8]
mov edx, dword [esi + edx + 0xdc]
mov dword [ecx + eax*8], edx
mov eax, 0x300
mov ecx, dword [ebp - 0x30]
mov edx, dword [ebp - 0xa0]
mov word [edx + ecx*8 + 4], ax
mov eax, dword [ebp - 0x30]
add eax, 1
mov dword [ebp - 0x30], eax
cmp dword [ebp - 0x30], 0
je 0x57d1e4
mov eax, dword [ebp + 0x14]
cdq
push edx
push eax
mov ecx, dword [ebp - 0x30]
push ecx
mov edx, dword [ebp - 0xa0]
push edx
call fcn.0051435f
add esp, 0x10
mov dword [ebp - 0xb0], eax
cmp dword [ebp - 0xb0], 0
jle 0x57d1e4
mov eax, dword [ebp - 0xb0]
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x2c], 0
jmp 0x57d0bb
mov ecx, dword [ebp - 0x2c]
add ecx, 1
mov dword [ebp - 0x2c], ecx
mov edx, dword [ebp - 0x2c]
cmp edx, dword [ebp + 0x10]
jae 0x57d158
xor eax, eax
mov word [ebp - 0xb4], ax
mov ecx, dword [ebp - 0x34]
add ecx, dword [ebp - 0x2c]
mov edx, dword [ebp - 0xa0]
movsx eax, word [edx + ecx*8 + 6]
mov dword [ebp - 0xb8], eax
mov ecx, dword [ebp - 0xb8]
and ecx, 0x300
je 0x57d106
movzx edx, word [ebp - 0xb4]
or edx, 1
mov word [ebp - 0xb4], dx
mov eax, dword [ebp - 0xb8]
and eax, 0x10
je 0x57d122
movzx ecx, word [ebp - 0xb4]
or ecx, 4
mov word [ebp - 0xb4], cx
mov edx, dword [ebp - 0xb8]
and edx, 0x400
je 0x57d141
movzx eax, word [ebp - 0xb4]
or eax, 2
mov word [ebp - 0xb4], ax
mov ecx, dword [ebp - 0x2c]
mov edx, dword [ebp + 0xc]
mov ax, word [ebp - 0xb4]
mov word [edx + ecx*8 + 6], ax
jmp 0x57d0b2
movzx ecx, byte [ebp + 0x20]
test ecx, ecx
je 0x57d1e4
mov edx, 4
imul eax, edx, 0
mov ecx, dword [ebp + 8]
cmp dword [ecx + eax + 0xdc], 0xffffffff
je 0x57d1e4
mov edx, dword [ebp - 0x34]
add edx, dword [ebp + 0x10]
mov eax, dword [ebp - 0xa0]
movsx ecx, word [eax + edx*8 + 6]
and ecx, 0x300
je 0x57d1e4
mov edx, 1
test edx, edx
je 0x57d1db
mov esi, esp
push 0
push 0x40
lea eax, [ebp - 0xfc]
push eax
mov ecx, 4
imul edx, ecx, 0
mov eax, dword [ebp + 8]
mov ecx, dword [eax + edx + 0xdc]
push ecx
call dword [sym.imp.WS2_32.dll_recv]
cmp esi, esp
call fcn.00516fe7
mov dword [ebp - 0x104], eax
cmp dword [ebp - 0x104], 0
jg 0x57d1d9
jmp 0x57d1db
jmp 0x57d192
mov edx, dword [ebp - 0x44]
sub edx, 1
mov dword [ebp - 0x44], edx
movzx eax, byte [ebp - 0xa1]
test eax, eax
je 0x57d208
mov esi, esp
mov ecx, dword [ebp - 0xa0]
push ecx
call dword [0x794030]
add esp, 4
cmp esi, esp
call fcn.00516fe7
cmp dword [ebp + 0x18], 0
je 0x57d216
mov edx, dword [ebp + 0x18]
mov eax, dword [ebp - 0x44]
mov dword [edx], eax
movzx ecx, byte [ebp + 0x1c]
test ecx, ecx
je 0x57d224
cmp dword [ebp - 0x30], 0
je 0x57d226
jmp 0x57d289
mov dword [ebp - 0x10c], 0
lea edx, [ebp - 0x10c]
push edx
mov eax, dword [ebp + 8]
push eax
call fcn.005195ee
add esp, 8
test eax, eax
jne 0x57d289
cmp dword [ebp - 0x10c], 0
je 0x57d289
mov ecx, dword [ebp - 0x10c]
cmp ecx, dword [ebp + 0x14]
jle 0x57d266
mov edx, dword [ebp + 0x14]
mov dword [ebp - 0x10c], edx
jmp 0x57d278
cmp dword [ebp - 0x10c], 0
jge 0x57d278
mov eax, dword [ebp + 0x14]
mov dword [ebp - 0x10c], eax
mov eax, dword [ebp - 0x10c]
cdq
push edx
push eax
call fcn.005149d6
add esp, 8
xor eax, eax
push edx
mov ecx, ebp
push eax
lea edx, [0x57d2bc]
call fcn.005163b2
pop eax
pop edx
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.005150f7
add esp, 0x110
cmp ebp, esp
call fcn.00516fe7
mov esp, ebp
pop ebp
ret