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

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
push ecx
push ebx
push esi
mov esi, ecx
push edi
mov ecx, dword [esi]
mov edi, dword [esi + 0x34]
call fcn.00473658
test eax, eax
je 0x470190
mov eax, dword [esi + 0x38]
push 4
pop ebx
cmp eax, ebx
jae 0x46fe25
mov edi, ebx
sub edi, eax
add eax, 0x3c
push 0
push edi
add eax, esi
push eax
push dword [esi]
call dword [sym.imp.WS2_32.dll_recv]
mov dword [ebp - 4], eax
test eax, eax
jne 0x46fcb9
mov eax, dword [section..data]
cmp eax, section..data
je 0x46fcaf
test byte [eax + 0x1c], 1
je 0x46fcaf
cmp byte [eax + 0x19], 2
jb 0x46fcaf
call fcn.0042386b
push eax
mov eax, dword [section..data]
push dword [eax + 0x14]
push dword [eax + 0x10]
push 0xa
mov edx, 0x4103a0
pop ecx
call fcn.004238e7
mov ebx, 0x80004004
jmp 0x470193
cmp eax, 0xffffffff
jne 0x46fd5d
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
cmp eax, 0x2733
jne 0x46fd1b
mov eax, dword [section..data]
xor ebx, ebx
inc ebx
cmp eax, section..data
je 0x470193
test byte [eax + 0x1c], bl
je 0x470193
cmp byte [eax + 0x19], 4
jb 0x470193
call fcn.0042386b
push edi
push 0xffffffffffffffff
push eax
mov eax, dword [section..data]
push dword [eax + 0x14]
push dword [eax + 0x10]
push 0xb
mov edx, 0x4103a0
pop ecx
call fcn.00429397
jmp 0x470193
mov eax, dword [section..data]
cmp eax, section..data
je 0x46fd51
test byte [eax + 0x1c], 1
je 0x46fd51
cmp byte [eax + 0x19], 2
jb 0x46fd51
call fcn.0042386b
push eax
mov eax, dword [section..data]
push dword [eax + 0x14]
push dword [eax + 0x10]
push 0xc
mov edx, 0x4103a0
pop ecx
call fcn.004238e7
call fcn.0048b320
mov ebx, eax
jmp 0x470193
cmp edi, eax
jne 0x46fec1
add dword [esi + 0x38], eax
mov eax, dword [esi + 0x3c]
mov dword [esi + 0x2c], eax
cmp eax, 0x1000
ja 0x46fe72
test eax, eax
je 0x46fe72
cmp eax, ebx
ja 0x46fdc9
mov esi, 0x80070057
mov ebx, esi
mov eax, dword [section..data]
cmp eax, section..data
je 0x470193
test byte [eax + 0x1c], 1
je 0x470193
cmp byte [eax + 0x19], 2
jb 0x470193
call fcn.0042386b
push esi
push eax
mov eax, dword [section..data]
push dword [eax + 0x14]
push dword [eax + 0x10]
push 0xe
jmp 0x46feb1
push eax
call fcn.004fb25b
mov edi, eax
mov dword [esi + 0x34], edi
pop ecx
test edi, edi
jne 0x46fe1d
mov eax, dword [section..data]
cmp eax, section..data
je 0x46fe13
test byte [eax + 0x1c], 1
je 0x46fe13
cmp byte [eax + 0x19], 2
jb 0x46fe13
mov esi, dword [esi + 0x2c]
call fcn.0042386b
push esi
push eax
mov eax, dword [section..data]
mov edx, 0x4103a0
push dword [eax + 0x14]
push dword [eax + 0x10]
push 0xf
pop ecx
call fcn.00421fda
mov ebx, 0x8007000e
jmp 0x470193
mov eax, dword [esi + 0x2c]
mov dword [edi], eax
mov dword [esi + 0x28], ebx
mov ebx, dword [esi + 0x2c]
cmp ebx, dword [esi + 0x28]
ja 0x46ff03
mov esi, 0x80070057
mov ebx, esi
mov eax, dword [section..data]
cmp eax, section..data
je 0x470193
test byte [eax + 0x1c], 1
je 0x470193
cmp byte [eax + 0x19], 2
jb 0x470193
call fcn.0042386b
push esi
push eax
mov eax, dword [section..data]
push dword [eax + 0x14]
push dword [eax + 0x10]
push 0x11
jmp 0x46feb1
mov esi, 0x80070057
mov ebx, esi
mov eax, dword [section..data]
cmp eax, section..data
je 0x470193
test byte [eax + 0x1c], 1
je 0x470193
cmp byte [eax + 0x19], 2
jb 0x470193
call fcn.0042386b
push esi
push eax
mov eax, dword [section..data]
push dword [eax + 0x14]
push dword [eax + 0x10]
push 0xd
mov edx, 0x4103a0
pop ecx
call fcn.00421fda
jmp 0x470193
mov eax, dword [section..data]
xor ebx, ebx
inc ebx
cmp eax, section..data
je 0x470193
test byte [eax + 0x1c], bl
je 0x470193
cmp byte [eax + 0x19], 4
jb 0x470193
call fcn.0042386b
push edi
push dword [ebp - 4]
push eax
mov eax, dword [section..data]
push dword [eax + 0x14]
push dword [eax + 0x10]
push 0x10
jmp 0x46fd0b
sub ebx, dword [esi + 0x28]
mov eax, dword [esi + 0x34]
add eax, dword [esi + 0x28]
push 0
push ebx
push eax
push dword [esi]
mov dword [ebp - 4], ebx
call dword [sym.imp.WS2_32.dll_recv]
test eax, eax
jne 0x46ff5b
mov eax, dword [section..data]
cmp eax, section..data
je 0x46fcaf
test byte [eax + 0x1c], 1
je 0x46fcaf
cmp byte [eax + 0x19], 2
jb 0x46fcaf
call fcn.0042386b
push eax
mov eax, dword [section..data]
push dword [eax + 0x14]
push dword [eax + 0x10]
push 0x12
jmp 0x46fca4
cmp eax, 0xffffffff
jne 0x46fff0
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
cmp eax, 0x2733
jne 0x46ffb4
mov eax, dword [section..data]
xor ebx, ebx
inc ebx
cmp eax, section..data
je 0x470193
test byte [eax + 0x1c], bl
je 0x470193
cmp byte [eax + 0x19], 4
jb 0x470193
call fcn.0042386b
push dword [ebp - 4]
push 0xffffffffffffffff
push eax
mov eax, dword [section..data]
push dword [eax + 0x14]
push dword [eax + 0x10]
push 0x13
jmp 0x46fd0b
mov eax, dword [section..data]
cmp eax, section..data
je 0x46fd51
test byte [eax + 0x1c], 1
je 0x46fd51
cmp byte [eax + 0x19], 2
jb 0x46fd51
call fcn.0042386b
push eax
mov eax, dword [section..data]
push dword [eax + 0x14]
push dword [eax + 0x10]
push 0x14
jmp 0x46fd46
add dword [esi + 0x28], eax
cmp ebx, eax
jne 0x470190
mov eax, dword [section..data]
xor ebx, ebx
mov edx, section..data
inc ebx
cmp eax, edx
je 0x47003f
test byte [eax + 0x1c], bl
je 0x47003f
cmp byte [eax + 0x19], 4
jb 0x47003f
call fcn.0042386b
push eax
mov eax, dword [section..data]
mov edx, 0x4103a0
push dword [eax + 0x14]
push dword [eax + 0x10]
push 0x15
pop ecx
call fcn.004238e7
mov eax, dword [section..data]
mov edx, section..data
mov ecx, dword [esi + 0x2c]
mov dword [ebp - 4], ecx
cmp ecx, 0x10
jae 0x470084
cmp eax, edx
je 0x47007a
test byte [eax + 0x1c], bl
je 0x47007a
cmp byte [eax + 0x19], 2
jb 0x47007a
call fcn.0042386b
push dword [ebp - 4]
mov edx, 0x4103a0
push eax
mov eax, dword [section..data]
push dword [eax + 0x14]
push dword [eax + 0x10]
push 0x16
pop ecx
call fcn.00421fda
mov ebx, 0x8000ffff
jmp 0x470193
mov eax, dword [edi + 0xc]
mov dword [esi + 0x44], eax
jne 0x4700c5
mov eax, dword [section..data]
cmp eax, edx
je 0x4700be
test byte [eax + 0x1c], bl
je 0x4700be
cmp byte [eax + 0x19], 4
jb 0x4700be
call fcn.0042386b
push eax
mov eax, dword [section..data]
push dword [eax + 0x14]
push dword [eax + 0x10]
push 0x17
mov edx, 0x4103a0
pop ecx
call fcn.004238e7
xor ebx, ebx
jmp 0x470193
cmp ecx, 0x12
jae 0x470101
mov eax, dword [section..data]
cmp eax, edx
je 0x47007a
test byte [eax + 0x1c], bl
je 0x47007a
cmp byte [eax + 0x19], 2
jb 0x47007a
call fcn.0042386b
push eax
mov eax, dword [section..data]
push dword [eax + 0x14]
push dword [eax + 0x10]
push 0x18
mov edx, 0x4103a0
pop ecx
call fcn.004238e7
jmp 0x47007a
movzx eax, word [edi + 0x10]
test ax, ax
jne 0x470133
mov eax, dword [section..data]
cmp eax, edx
je 0x4700be
test byte [eax + 0x1c], bl
je 0x4700be
cmp byte [eax + 0x19], 4
jb 0x4700be
call fcn.0042386b
push eax
mov eax, dword [section..data]
push dword [eax + 0x14]
push dword [eax + 0x10]
push 0x19
jmp 0x4700b3
lea edx, [eax*2 + 0x12]
cmp edx, 0x12
jb 0x470155
cmp edx, ecx
jg 0x470155
xor ecx, ecx
mov word [edi + eax*2 + 0x10], cx
lea eax, [edi + 0x12]
mov dword [esi + 0x40], eax
jmp 0x4700be
mov eax, dword [section..data]
cmp eax, section..data
je 0x47007a
test byte [eax + 0x1c], bl
je 0x47007a
cmp byte [eax + 0x19], 2
jb 0x47007a
call fcn.0042386b
push eax
mov eax, dword [section..data]
push dword [eax + 0x14]
push dword [eax + 0x10]
push 0x1a
jmp 0x4700f1
xor ebx, ebx
inc ebx
pop edi
pop esi
mov eax, ebx
pop ebx
leave
ret