Function at 0x52ce50
Capabilities:
Send data
Send data on socket

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10
push esi
mov eax, 0xcccccccc
mov dword [ebp - 0x10], eax
mov dword [ebp - 0xc], eax
mov dword [ebp - 8], eax
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x10]
mov edx, dword [ecx]
mov dword [ebp - 0xc], edx
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x10], eax
mov ecx, dword [ebp - 0x10]
sub ecx, 3
mov dword [ebp - 0x10], ecx
cmp dword [ebp - 0x10], 4
ja case.0x52cb1f.1
mov edx, dword [ebp - 0x10]
jmp dword [edx*4 + 0x52cef0]
mov eax, dword [ebp + 8]
add eax, 0x15c
push eax
call fcn.0052e0d0
add esp, 4
movzx ecx, ax
mov dword [ebp - 8], ecx
mov edx, dword [ebp + 8]
movzx eax, word [edx + 0x40]
add eax, 1
and eax, 0xffff
cmp eax, dword [ebp - 8]
jne 0x52cb5d
mov ecx, dword [ebp + 8]
mov dword [ecx + 0x18], 0
jmp 0x52cbab
mov edx, dword [ebp + 8]
movzx eax, word [edx + 0x40]
cmp eax, dword [ebp - 8]
jne 0x52cb80
mov ecx, dword [ebp - 8]
push ecx
push str.Received_last_DATA_packet_block__d_again._n
mov edx, dword [ebp - 0xc]
push edx
call fcn.00470e9c
add esp, 0xc
jmp 0x52cbab
mov eax, dword [ebp + 8]
movzx ecx, word [eax + 0x40]
add ecx, 1
and ecx, 0xffff
push ecx
mov edx, dword [ebp - 8]
push edx
push str.Received_unexpected_DATA_packet_block__d__expecting_block__d_n
mov eax, dword [ebp - 0xc]
push eax
call fcn.00470e9c
add esp, 0x10
jmp 0x52cede
mov ecx, dword [ebp + 8]
mov dx, word [ebp - 8]
mov word [ecx + 0x40], dx
push 4
mov eax, dword [ebp + 8]
add eax, 0x160
push eax
call fcn.0052e020
add esp, 8
mov ecx, dword [ebp + 8]
movzx edx, word [ecx + 0x40]
push edx
mov eax, dword [ebp + 8]
add eax, 0x160
push eax
call fcn.0052e060
add esp, 8
mov esi, esp
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x148]
push edx
mov eax, dword [ebp + 8]
add eax, 0xc8
push eax
push 0
push 4
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x160]
push edx
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x14]
push ecx
call dword [sym.imp.WS2_32.dll_sendto]
cmp esi, esp
call fcn.00471e7d
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
jge 0x52cc5d
mov esi, esp
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
cmp esi, esp
call fcn.00471e7d
push eax
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x10]
push eax
call fcn.004711a8
add esp, 8
push eax
push 0x57252c
mov ecx, dword [ebp - 0xc]
push ecx
call fcn.00472a30
add esp, 0xc
mov eax, 0x37
jmp 0x52cee0
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x154]
add eax, 4
mov ecx, dword [ebp + 8]
cmp dword [ecx + 0x14c], eax
jge 0x52cc7f
mov edx, dword [ebp + 8]
mov dword [edx], 3
jmp 0x52cc88
mov eax, dword [ebp + 8]
mov dword [eax], 1
mov ecx, dword [ebp + 8]
add ecx, 0x38
push ecx
call fcn.0052cac0
add esp, 4
jmp 0x52cede
xor edx, edx
mov eax, dword [ebp + 8]
mov word [eax + 0x40], dx
mov ecx, dword [ebp + 8]
mov dword [ecx + 0x18], 0
push 4
mov edx, dword [ebp + 8]
add edx, 0x160
push edx
call fcn.0052e020
add esp, 8
mov eax, dword [ebp + 8]
movzx ecx, word [eax + 0x40]
push ecx
mov edx, dword [ebp + 8]
add edx, 0x160
push edx
call fcn.0052e060
add esp, 8
mov esi, esp
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x148]
push ecx
mov edx, dword [ebp + 8]
add edx, 0xc8
push edx
push 0
push 4
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x160]
push ecx
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x14]
push eax
call dword [sym.imp.WS2_32.dll_sendto]
cmp esi, esp
call fcn.00471e7d
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
jge 0x52cd59
mov esi, esp
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
cmp esi, esp
call fcn.00471e7d
push eax
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x10]
push edx
call fcn.004711a8
add esp, 8
push eax
push 0x572530
mov eax, dword [ebp - 0xc]
push eax
call fcn.00472a30
add esp, 0xc
mov eax, 0x37
jmp 0x52cee0
mov ecx, dword [ebp + 8]
mov dword [ecx], 1
mov edx, dword [ebp + 8]
add edx, 0x38
push edx
call fcn.0052cac0
add esp, 4
jmp 0x52cede
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x18]
add ecx, 1
mov edx, dword [ebp + 8]
mov dword [edx + 0x18], ecx
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x18]
push ecx
mov edx, dword [ebp + 8]
movzx eax, word [edx + 0x40]
add eax, 1
and eax, 0xffff
push eax
push 0x572534
mov ecx, dword [ebp - 0xc]
push ecx
call fcn.00470e9c
add esp, 0x10
mov edx, dword [ebp + 8]
mov eax, dword [ebp + 8]
mov ecx, dword [edx + 0x18]
cmp ecx, dword [eax + 0x20]
jle 0x52cdd0
mov edx, dword [ebp + 8]
mov dword [edx + 8], 0xffffff9d
mov eax, dword [ebp + 8]
mov dword [eax], 3
jmp 0x52ce4b
mov esi, esp
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x148]
push edx
mov eax, dword [ebp + 8]
add eax, 0xc8
push eax
push 0
push 4
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x160]
push edx
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x14]
push ecx
call dword [sym.imp.WS2_32.dll_sendto]
cmp esi, esp
call fcn.00471e7d
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
jge 0x52ce4b
mov esi, esp
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
cmp esi, esp
call fcn.00471e7d
push eax
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x10]
push eax
call fcn.004711a8
add esp, 8
push eax
push 0x572568
mov ecx, dword [ebp - 0xc]
push ecx
call fcn.00472a30
add esp, 0xc
mov eax, 0x37
jmp 0x52cee0
jmp 0x52cede
push 5
mov edx, dword [ebp + 8]
add edx, 0x160
push edx
call fcn.0052e020
add esp, 8
mov eax, dword [ebp + 8]
movzx ecx, word [eax + 0x40]
push ecx
mov edx, dword [ebp + 8]
add edx, 0x160
push edx
call fcn.0052e060
add esp, 8
mov esi, esp
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x148]
push ecx
mov edx, dword [ebp + 8]
add edx, 0xc8
push edx
push 0
push 4
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x160]
push ecx
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x14]
push eax
call dword [sym.imp.WS2_32.dll_sendto]
cmp esi, esp
call fcn.00471e7d
mov ecx, dword [ebp + 8]
mov dword [ecx], 3
jmp 0x52cede
push str.tftp_rx:_internal_error
push 0x572584
mov edx, dword [ebp - 0xc]
push edx
call fcn.00472a30
add esp, 0xc
mov eax, 0x47
jmp 0x52cee0
xor eax, eax
pop esi
add esp, 0x10
cmp ebp, esp
call fcn.00471e7d
mov esp, ebp
pop ebp
ret