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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
mov eax, 0x2030
call fcn.005925e0
push ebx
push ebp
mov ebp, dword [0x5f659c]
push esi
xor esi, esi
cmp ebp, esi
push edi
je 0x52ed9b
cmp dword [ebp + 0x200], ecx
je 0x52e9ce
mov ebp, dword [ebp + 0x208]
cmp ebp, esi
jne 0x52e9b4
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
cmp dword [ebp + 0x1b0], 2
jne 0x52ed9b
mov eax, edx
shr eax, 0x10
cmp ax, si
je 0x52ea4d
mov edi, dword [ebp + 0x1ac]
movzx eax, ax
mov dword [ebp + 0x1e8], eax
cmp dword [0x5f35d0], esi
je 0x52ea46
cmp dword [ebp + 0x1f4], esi
push 3
je 0x52ea1b
push 0x3b
mov ecx, str.SOCKCLOSE
mov edx, ebp
call fcn.0052cef0
mov edx, edi
jmp 0x52ed89
cmp dword [ebp + 0x1bc], esi
je 0x52ea38
push 0x45
mov ecx, str.UDPREAD
mov edx, ebp
call fcn.0052cef0
mov edx, edi
jmp 0x52ed89
push 0x3e
mov ecx, str.SOCKREAD
mov edx, ebp
call fcn.0052cef0
mov edx, edi
jmp 0x52ed89
push esi
call fcn.00591e16
mov edx, dword [ebp + 0x200]
add esp, 4
push 1
push 1
mov ecx, 0x8038
mov dword [ebp + 0x1e4], eax
call fcn.0056ab30
test eax, eax
jne 0x52ed9b
cmp dword [ebp + 0x1fc], esi
jne 0x52ed9b
mov ecx, dword [ebp + 0x1ec]
inc ecx
mov eax, ecx
cmp eax, 0x14
mov dword [ebp + 0x1ec], ecx
jl 0x52eab9
mov edx, dword [ebp + 0x200]
push esi
push 1
mov ecx, 0x8038
mov dword [ebp + 0x1ec], esi
call fcn.0056ab30
test eax, eax
jne 0x52ed9b
mov edx, dword [ebp + 0x19c]
mov eax, 0x1001
sub eax, edx
cmp eax, 1
jle 0x52ec40
mov ecx, dword [ebp + 0x1bc]
dec eax
cmp ecx, esi
je 0x52eb30
lea ecx, [esp + 0x14]
push ecx
mov ecx, dword [ebp + 0x200]
lea edx, [esp + 0x1c]
push edx
push esi
push eax
lea eax, [esp + 0x1048]
push eax
push ecx
mov dword [esp + 0x2c], 0x10
call dword [sym.imp.WSOCK32.dll_recvfrom]
mov ebx, eax
cmp dword [esp + 0x14], esi
jle 0x52eb83
mov edx, dword [esp + 0x1c]
push edx
call dword [sym.imp.WSOCK32.dll_htonl]
mov dword [ebp + 0x1cc], eax
mov eax, dword [esp + 0x1a]
push eax
call dword [sym.imp.WSOCK32.dll_ntohs]
mov word [ebp + 0x1d0], ax
jmp 0x52eb83
cmp dword [ebp + 0x1f4], esi
je 0x52eb6a
mov ecx, dword [ebp + 0x200]
push eax
lea edx, [esp + 0x103c]
call fcn.00534030
mov ebx, eax
cmp ebx, esi
je 0x52ed2a
jg 0x52eb83
cmp ebx, 0xfffffffd
jne 0x52ed31
push 0x2747
jmp 0x52ed36
mov edx, dword [ebp + 0x200]
push esi
push eax
lea ecx, [esp + 0x1040]
push ecx
push edx
call dword [sym.imp.WSOCK32.dll_recv]
mov ebx, eax
cmp ebx, 0xffffffff
je 0x52ed3c
cmp ebx, esi
jg 0x52eba4
cmp dword [ebp + 0x1bc], esi
je 0x52ed56
cmp ebx, esi
jl 0x52ed56
cmp dword [0x5f35d0], esi
mov eax, dword [ebp + 0x198]
je 0x52ecfd
cmp eax, esi
je 0x52ebde
mov ecx, dword [ebp + 0x19c]
lea edx, [ecx + ebx + 0xa]
push edx
push eax
call fcn.00593194
add esp, 8
cmp eax, esi
je 0x52ed16
mov dword [ebp + 0x198], eax
jmp 0x52ebf8
lea eax, [ebx + 0xa]
push eax
call fcn.00591118
add esp, 4
cmp eax, esi
mov dword [ebp + 0x198], eax
je 0x52ed16
mov edi, dword [ebp + 0x19c]
add edi, dword [ebp + 0x198]
mov ecx, ebx
mov edx, ecx
shr ecx, 2
lea esi, [esp + 0x1038]
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [ebp + 0x19c]
mov ecx, dword [ebp + 0x198]
add eax, ebx
mov dword [ebp + 0x19c], eax
mov byte [eax + ecx], 0
xor esi, esi
jmp 0x52ec40
cmp dword [ebp + 0x1bc], esi
mov ebx, dword [ebp + 0x1ac]
mov dword [ebp + 0x1b4], esi
mov ecx, 0x202
mov dword [ebp + 0x1b8], esi
je 0x52ec7f
lea edx, [esp + 0x28]
push edx
push esi
push esi
xor eax, eax
lea edi, [esp + 0x34]
rep stosd dword es:[edi], eax
push 0x45
mov dword [esp + 0x44], ebp
mov dword [esp + 0x48], ebx
push str.UDPREAD
jmp 0x52eca9
xor eax, eax
lea edi, [esp + 0x830]
rep stosd dword es:[edi], eax
lea eax, [esp + 0x830]
push eax
push esi
push esi
push 0x3e
mov dword [esp + 0x84c], ebp
mov dword [esp + 0x850], ebx
push str.SOCKREAD
mov ecx, dword [ebp + 0x204]
xor edx, edx
push esi
call fcn.0051fbb0
mov eax, dword [0x5f659c]
cmp eax, esi
je 0x52ed9b
cmp ebp, eax
jne 0x52ecd0
cmp ebx, dword [eax + 0x1ac]
je 0x52ece2
mov eax, dword [eax + 0x208]
cmp eax, esi
jne 0x52ecc4
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp + 0x1b4]
cmp eax, esi
je 0x52ecf7
cmp eax, 2
je 0x52ec40
jmp 0x52ed16
mov eax, dword [ebp + 0x198]
cmp eax, esi
je 0x52ed0a
push eax
call fcn.0059112a
add esp, 4
mov dword [ebp + 0x198], esi
mov dword [ebp + 0x19c], esi
cmp dword [ebp + 0x1fc], esi
je 0x52ea84
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
push 0x2733
jmp 0x52ed36
push 0x2745
call dword [sym.imp.WSOCK32.dll_WSASetLastError]
call dword [sym.imp.WSOCK32.dll_WSAGetLastError]
cmp eax, 0x2733
je 0x52ed9b
mov dword [ebp + 0x1e8], eax
mov eax, 3
jmp 0x52ed58
xor eax, eax
cmp dword [ebp + 0x1f0], esi
jne 0x52ed94
mov dword [ebp + 0x1f0], 1
cmp dword [0x5f35d0], esi
je 0x52ed94
mov esi, dword [ebp + 0x1ac]
push eax
push 0x3b
mov edx, ebp
mov ecx, str.SOCKCLOSE
call fcn.0052cef0
mov edx, esi
mov ecx, ebp
call fcn.0052cdb0
test eax, eax
je 0x52ed9b
mov ecx, ebp
call fcn.0052ccd0
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret