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

Disassembly:
push ebp
mov ebp, esp
mov eax, dword [esi + 0xc]
push ebx
push edi
mov edi, dword [eax]
mov eax, dword [ebp + 8]
xor ebx, ebx
sub eax, 4
je 0x4b0f45
dec eax
je 0x4b0ecb
dec eax
je 0x4b0ea7
push str.tftp_tx:_internal_error
push 0x690c2c
push edi
call fcn.004ab1b0
add esp, 0xc
pop edi
xor eax, eax
pop ebx
pop ebp
ret
inc dword [esi + 0x14]
mov eax, dword [esi + 0x14]
push eax
push str.Timeout_waiting_for_block__d_ACK.__Retries___d_n
push edi
call fcn.004ab130
mov ecx, dword [esi + 0x14]
add esp, 0xc
cmp ecx, dword [esi + 0x1c]
jle 0x4b0ed7
mov dword [esi + 8], 0xffffff9d
pop edi
mov dword [esi], 3
xor eax, eax
pop ebx
pop ebp
ret
mov edx, dword [esi + 0x138]
mov ecx, dword [esi + 0x140]
push edx
lea eax, [esi + 0xb8]
push eax
mov eax, dword [esi + 0x10]
push 0
add ecx, 4
push ecx
lea edx, [esi + 0x348]
push edx
push eax
call dword [sym.imp.WS2_32.dll_sendto]
test eax, eax
jns 0x4b0f2e
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov ecx, dword [esi + 0xc]
push eax
push ecx
call fcn.004c1590
push eax
push 0x690c2c
push edi
call fcn.004ab1b0
add esp, 0x14
pop edi
mov eax, 0x37
pop ebx
pop ebp
ret
mov edx, dword [edi + 0x44]
mov eax, dword [edi + 0x40]
push edx
push eax
push edi
call fcn.004ae4f0
add esp, 0xc
pop edi
xor eax, eax
pop ebx
pop ebp
ret
lea ecx, [esi + 0x144]
call fcn.004b0cc0
movzx ecx, ax
movzx eax, word [esi + 0x30]
mov edx, eax
cmp ecx, edx
je 0x4b0ff3
push edx
push ecx
push str.Received_ACK_for_block__d__expecting__d_n
push edi
call fcn.004ab130
inc dword [esi + 0x14]
mov eax, dword [esi + 0x14]
add esp, 0x10
cmp eax, dword [esi + 0x1c]
jle 0x4b0f9a
movzx ecx, word [esi + 0x30]
push ecx
push str.tftp_tx:_giving_up_waiting_for_block__d_ack
push edi
call fcn.004ab1b0
add esp, 0xc
mov ebx, 0x37
pop edi
mov eax, ebx
pop ebx
pop ebp
ret
mov edx, dword [esi + 0x138]
mov ecx, dword [esi + 0x140]
push edx
lea eax, [esi + 0xb8]
push eax
mov eax, dword [esi + 0x10]
push 0
add ecx, 4
push ecx
lea edx, [esi + 0x348]
push edx
push eax
call dword [sym.imp.WS2_32.dll_sendto]
test eax, eax
jns 0x4b0fed
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov ecx, dword [esi + 0xc]
push eax
push ecx
call fcn.004c1590
push eax
push 0x690c2c
push edi
call fcn.004ab1b0
add esp, 0x14
mov ebx, 0x37
pop edi
mov eax, ebx
pop ebx
pop ebp
ret
inc eax
mov dword [esi + 0x14], ebx
mov word [esi + 0x30], ax
lea ebx, [esi + 0x348]
mov eax, 3
mov ecx, ebx
call fcn.004b0c90
mov ax, word [esi + 0x30]
call fcn.004b0ca0
cmp word [esi + 0x30], 1
jbe 0x4b102d
cmp dword [esi + 0x140], 0x200
jl 0x4b0ecb
mov edx, dword [esi + 0xc]
lea eax, [esi + 0x140]
push eax
push 0x200
push edx
mov dword [ebp + 8], eax
call fcn.004a6ef0
add esp, 0xc
test eax, eax
jne 0x4b10bb
mov eax, dword [esi + 0x138]
mov edx, dword [ebp + 8]
push eax
mov eax, dword [edx]
lea ecx, [esi + 0xb8]
push ecx
mov ecx, dword [esi + 0x10]
push 0
add eax, 4
push eax
push ebx
push ecx
call dword [sym.imp.WS2_32.dll_sendto]
test eax, eax
jns 0x4b109c
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov edx, dword [esi + 0xc]
push eax
push edx
call fcn.004c1590
push eax
push 0x690c2c
push edi
call fcn.004ab1b0
add esp, 0x14
pop edi
mov eax, 0x37
pop ebx
pop ebp
ret
mov eax, dword [ebp + 8]
mov eax, dword [eax]
cdq
add dword [edi + 0x40], eax
adc dword [edi + 0x44], edx
mov ecx, dword [edi + 0x44]
mov edx, dword [edi + 0x40]
push ecx
push edx
push edi
call fcn.004ae4f0
add esp, 0xc
xor eax, eax
pop edi
pop ebx
pop ebp
ret