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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x74
push ebx
push esi
xor ebx, ebx
mov esi, ecx
push edi
mov dword [ebp - 0x10], ebx
mov dword [ebp - 0xc], ebx
cmp byte [esi + 0x1d83], bl
je 0x1003c629
cmp dword [esi + 0x1d98], ebx
jle 0x1003c629
call fcn.1001b545
mov dword [ebp - 0x10], eax
mov dword [ebp - 0xc], edx
mov dword [esi + 0x14fc], ebx
cmp dword [esi + 0x1a4], 0xffffffff
jne 0x1003c642
cmp dword [ebp + 8], 4
jne 0x1003c8ab
cmp byte [esi + 0x1d82], bl
jne 0x1003c659
mov ecx, esi
call fcn.10013588
test eax, eax
je 0x1003c8ab
cmp byte [esi + 0x213], bl
jne 0x1003c8ab
mov dword [ebp - 8], ebx
lea edi, [esi + 0x1dcc]
jmp 0x1003c6a2
push 1
push dword [ebp - 4]
mov ecx, esi
push dword [ebp - 8]
call fcn.1003be3f
cmp byte [esi + 0x1d82], bl
jne 0x1003c696
mov ecx, esi
call fcn.10013588
test eax, eax
je 0x1003c8ab
cmp byte [esi + 0x213], bl
jne 0x1003c8ab
lea eax, [ebp - 4]
push eax
lea eax, [ebp - 8]
push eax
mov ecx, edi
mov dword [ebp - 4], ebx
call fcn.100219f0
test eax, eax
jne 0x1003c670
cmp dword [ebp + 8], 4
je 0x1003c8ab
lea eax, [ebp - 4]
push eax
lea eax, [ebp - 8]
push eax
mov ecx, edi
mov dword [ebp - 4], ebx
call fcn.1001b041
test eax, eax
jne 0x1003c72d
lea eax, [ebp - 4]
push eax
lea eax, [ebp - 8]
push eax
mov ecx, edi
mov dword [ebp - 4], ebx
call fcn.1001b19e
cmp dword [ebp - 4], ebx
je 0x1003c705
push ebx
push dword [ebp - 4]
mov ecx, esi
push dword [ebp - 8]
call fcn.1003be3f
cmp eax, ebx
jne 0x1003c8ad
cmp byte [esi + 0x1d82], bl
jne 0x1003c71c
mov ecx, esi
call fcn.10013588
test eax, eax
je 0x1003c8ab
cmp byte [esi + 0x213], bl
jne 0x1003c8ab
jmp 0x1003c84d
cmp byte [esi + 0x1d9c], bl
je 0x1003c73e
cmp dword [ebp + 8], ebx
je 0x1003c8b4
push ebx
push dword [ebp - 4]
push dword [ebp - 8]
push dword [esi + 0x1a4]
call dword [sym.imp.WS2_32.dll_recv]
mov edi, eax
cmp edi, ebx
jle 0x1003c795
cmp byte [esi + 0x211], bl
je 0x1003c76a
mov ecx, esi
call fcn.10013588
test eax, eax
je 0x1003c779
push ebx
push ebx
push edi
push dword [ebp - 8]
mov ecx, esi
push 1
call fcn.1002d8fc
mov ecx, esi
call fcn.10013588
test eax, eax
je 0x1003c793
mov ecx, esi
call fcn.1001359c
test eax, eax
jne 0x1003c8c9
cmp edi, ebx
je 0x1003c7c6
cmp edi, ebx
jle 0x1003c7a0
cmp dword [ebp + 8], ebx
jne 0x1003c7ba
cmp edi, 0xffffffff
je 0x1003c8e4
push edi
lea ecx, [esi + 0x1dcc]
call fcn.1001b0bf
jmp 0x1003c84d
push edi
lea ecx, [esi + 0x1dcc]
call fcn.1001b0bf
mov dword [ebp - 8], ebx
jmp 0x1003c7ed
cmp byte [esi + 0x1d82], bl
jne 0x1003c7de
mov ecx, esi
call fcn.10013588
test eax, eax
je 0x1003c7ed
push 1
push dword [ebp - 4]
mov ecx, esi
push dword [ebp - 8]
call fcn.1003be3f
lea eax, [ebp - 4]
push eax
lea eax, [ebp - 8]
push eax
lea ecx, [esi + 0x1dcc]
mov dword [ebp - 4], ebx
call fcn.100219f0
test eax, eax
jne 0x1003c7cb
lea eax, [ebp - 4]
push eax
lea eax, [ebp - 8]
push eax
lea ecx, [esi + 0x1dcc]
call fcn.1001b19e
test eax, eax
je 0x1003c83f
cmp byte [esi + 0x1d82], bl
jne 0x1003c831
mov ecx, esi
call fcn.10013588
test eax, eax
je 0x1003c83f
push ebx
push dword [ebp - 4]
mov ecx, esi
push dword [ebp - 8]
call fcn.1003be3f
cmp dword [ebp + 8], 1
je 0x1003c8ab
cmp edi, ebx
je 0x1003c93a
cmp dword [ebp - 0xc], ebx
jl 0x1003c62f
jg 0x1003c861
cmp dword [ebp - 0x10], ebx
jbe 0x1003c62f
mov ecx, esi
call fcn.1001b545
mov edi, eax
sub edi, dword [ebp - 0x10]
mov eax, dword [esi + 0x1d98]
mov ecx, edx
sbb ecx, dword [ebp - 0xc]
cdq
cmp ecx, edx
jg 0x1003c88b
jl 0x1003c62f
cmp edi, eax
jbe 0x1003c62f
push 1
push dword [esi + 0x1a4]
mov byte [esi + 0x21b], 1
push 0x465
push dword [esi + 0x128]
call dword [sym.imp.USER32.dll_PostMessageA]
xor eax, eax
pop edi
pop esi
pop ebx
leave
ret 4
mov byte [esi + 0x1d83], bl
push dword [esi + 0x1978]
mov ecx, esi
call fcn.1002a0e4
jmp 0x1003c8ad
push ebx
push edi
push dword [ebp - 8]
mov ecx, esi
call fcn.1003be3f
cmp byte [esi + 0x1d9c], bl
je 0x1003c8ad
cmp dword [ebp + 8], ebx
jne 0x1003c8ad
jmp 0x1003c8b4
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov edi, eax
mov eax, 0x2733
mov dword [esi + 0x14fc], edi
cmp edi, eax
je 0x1003c8ad
add eax, 3
cmp edi, eax
je 0x1003c8ad
mov eax, 0x2745
cmp edi, eax
je 0x1003c8ad
inc eax
cmp edi, eax
je 0x1003c8ad
push edi
lea eax, [ebp - 0x74]
push str.socket_error_in_recv:__d
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
mov ecx, dword [esi + 0x1980]
mov eax, dword [ecx]
add esp, 0xc
lea edx, [ebp - 0x74]
push edx
push edi
call dword [eax + 0x4c]
mov eax, edi
jmp 0x1003c8ad
mov byte [esi + 0x1d83], bl
cmp dword [ebp + 8], ebx
jne 0x1003c8ab
jmp 0x1003c8ba