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

Disassembly:
push ebp
mov ebp, esp
push ecx
push ebx
push esi
push edi
mov edi, ecx
add edx, 0xfffffffd
mov eax, dword [edi + 0x10]
mov ebx, dword [eax]
cmp edx, 4
ja case.0x4c882a.4
jmp dword [edx*4 + 0x4c8a6c]
lea ecx, [edi + 0x15c]
call fcn.004c8140
movzx esi, word [edi + 0x40]
movzx edx, ax
mov word [ebp - 2], ax
lea ecx, [esi + 1]
movzx ecx, cx
cmp ecx, edx
jne 0x4c885a
mov dword [edi + 0x18], 0
jmp 0x4c8875
cmp esi, edx
jne 0x4c88f3
push edx
push str.Received_last_DATA_packet_block__d_again._n
push ebx
call fcn.004ac3b0
mov ax, word [ebp - 2]
add esp, 0xc
mov edx, 4
mov word [edi + 0x40], ax
lea ecx, [edi + 0x160]
call fcn.004c80e0
mov dx, word [edi + 0x40]
lea ecx, [edi + 0x160]
call fcn.004c8100
push dword [edi + 0x148]
lea eax, [edi + 0xc8]
push eax
push 0
push 4
push dword [edi + 0x160]
push dword [edi + 0x14]
call dword [sym.imp.WS2_32.dll_sendto]
test eax, eax
js 0x4c89d1
mov eax, dword [edi + 0x154]
xor ecx, ecx
add eax, 4
cmp dword [edi + 0x14c], eax
lea eax, [edi + 0x38]
push eax
setl cl
lea ecx, [ecx*2 + 1]
mov dword [edi], ecx
call dword [sym.imp.api_ms_win_crt_time_l1_1_0.dll__time64]
add esp, 4
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push ecx
push edx
push str.Received_unexpected_DATA_packet_block__d__expecting_block__d_n
push ebx
call fcn.004ac3b0
add esp, 0x10
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
xor eax, eax
lea ecx, [edi + 0x160]
mov word [edi + 0x40], ax
mov dword [edi + 0x18], eax
lea edx, [eax + 4]
call fcn.004c80e0
mov dx, word [edi + 0x40]
lea ecx, [edi + 0x160]
call fcn.004c8100
push dword [edi + 0x148]
lea eax, [edi + 0xc8]
push eax
push 0
push 4
push dword [edi + 0x160]
push dword [edi + 0x14]
call dword [sym.imp.WS2_32.dll_sendto]
test eax, eax
js 0x4c89d1
lea eax, [edi + 0x38]
mov dword [edi], 1
push eax
call dword [sym.imp.api_ms_win_crt_time_l1_1_0.dll__time64]
add esp, 4
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
movzx eax, word [edi + 0x40]
inc dword [edi + 0x18]
inc eax
push dword [edi + 0x18]
movzx eax, ax
push eax
push str.Timeout_waiting_for_block__d_ACK.__Retries___d_n
push ebx
call fcn.004ac3b0
mov eax, dword [edi + 0x18]
add esp, 0x10
cmp eax, dword [edi + 0x20]
jle 0x4c89ad
mov dword [edi + 8], 0xffffff9d
xor eax, eax
mov dword [edi], 3
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push dword [edi + 0x148]
lea eax, [edi + 0xc8]
push eax
push 0
push 4
push dword [edi + 0x160]
push dword [edi + 0x14]
call dword [sym.imp.WS2_32.dll_sendto]
test eax, eax
jns 0x4c8a41
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov ecx, dword [edi + 0x10]
mov edx, eax
call fcn.004c21a0
push eax
push 0x6f0620
push ebx
call fcn.004ac430
mov eax, 0x37
add esp, 0xc
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov edx, 5
lea ecx, [edi + 0x160]
call fcn.004c80e0
mov dx, word [edi + 0x40]
lea ecx, [edi + 0x160]
call fcn.004c8100
push dword [edi + 0x148]
lea eax, [edi + 0xc8]
push eax
push 0
push 4
push dword [edi + 0x160]
push dword [edi + 0x14]
call dword [sym.imp.WS2_32.dll_sendto]
mov dword [edi], 3
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push str.tftp_rx:_internal_error
push 0x6f0620
push ebx
call fcn.004ac430
add esp, 0xc
mov eax, 0x47
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret