Function at 0x52c816
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.0x52c5bf.1
mov edx, dword [ebp - 0x10]
jmp dword [edx*4 + 0x52c990]
mov eax, dword [ebp + 8]
add eax, 0x15c
push eax
call fcn.0052db70
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 0x52c5fd
mov ecx, dword [ebp + 8]
mov dword [ecx + 0x18], 0
jmp 0x52c64b
mov edx, dword [ebp + 8]
movzx eax, word [edx + 0x40]
cmp eax, dword [ebp - 8]
jne 0x52c620
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.00470e79
add esp, 0xc
jmp 0x52c64b
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.00470e79
add esp, 0x10
jmp 0x52c97e
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.0052dac0
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.0052db00
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.00471e55
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
jge 0x52c6fd
mov esi, esp
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
cmp esi, esp
call fcn.00471e55
push eax
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x10]
push eax
call fcn.00471194
add esp, 8
push eax
push 0x57152c
mov ecx, dword [ebp - 0xc]
push ecx
call fcn.00472a1c
add esp, 0xc
mov eax, 0x37
jmp 0x52c980
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x154]
add eax, 4
mov ecx, dword [ebp + 8]
cmp dword [ecx + 0x14c], eax
jge 0x52c71f
mov edx, dword [ebp + 8]
mov dword [edx], 3
jmp 0x52c728
mov eax, dword [ebp + 8]
mov dword [eax], 1
mov ecx, dword [ebp + 8]
add ecx, 0x38
push ecx
call fcn.0052c560
add esp, 4
jmp 0x52c97e
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.0052dac0
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.0052db00
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.00471e55
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
jge 0x52c7f9
mov esi, esp
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
cmp esi, esp
call fcn.00471e55
push eax
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x10]
push edx
call fcn.00471194
add esp, 8
push eax
push 0x571530
mov eax, dword [ebp - 0xc]
push eax
call fcn.00472a1c
add esp, 0xc
mov eax, 0x37
jmp 0x52c980
mov ecx, dword [ebp + 8]
mov dword [ecx], 1
mov edx, dword [ebp + 8]
add edx, 0x38
push edx
call fcn.0052c560
add esp, 4
jmp 0x52c97e
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 0x571534
mov ecx, dword [ebp - 0xc]
push ecx
call fcn.00470e79
add esp, 0x10
mov edx, dword [ebp + 8]
mov eax, dword [ebp + 8]
mov ecx, dword [edx + 0x18]
cmp ecx, dword [eax + 0x20]
jle 0x52c870
mov edx, dword [ebp + 8]
mov dword [edx + 8], 0xffffff9d
mov eax, dword [ebp + 8]
mov dword [eax], 3
jmp 0x52c8eb
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.00471e55
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
jge 0x52c8eb
mov esi, esp
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
cmp esi, esp
call fcn.00471e55
push eax
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x10]
push eax
call fcn.00471194
add esp, 8
push eax
push 0x571568
mov ecx, dword [ebp - 0xc]
push ecx
call fcn.00472a1c
add esp, 0xc
mov eax, 0x37
jmp 0x52c980
jmp 0x52c97e
push 5
mov edx, dword [ebp + 8]
add edx, 0x160
push edx
call fcn.0052dac0
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.0052db00
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.00471e55
mov ecx, dword [ebp + 8]
mov dword [ecx], 3
jmp 0x52c97e
push str.tftp_rx:_internal_error
push 0x571584
mov edx, dword [ebp - 0xc]
push edx
call fcn.00472a1c
add esp, 0xc
mov eax, 0x47
jmp 0x52c980
xor eax, eax
pop esi
add esp, 0x10
cmp ebp, esp
call fcn.00471e55
mov esp, ebp
pop ebp
ret