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

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x18], rsi
push rdi
sub rsp, 0x30
mov rax, qword [rcx + 0x10]
xor esi, esi
sub edx, 4
mov rdi, qword [rax]
mov rbx, rcx
je 0x14010498c
dec edx
je 0x140104974
dec edx
je 0x140104a64
dec edx
je 0x1401048c0
lea r8, str.tftp_tx:_internal_error
lea rdx, [0x1403551f8]
mov rcx, rdi
call fcn.1400fe410
xor eax, eax
mov rbx, qword [rsp + 0x40]
mov rsi, qword [rsp + 0x50]
add rsp, 0x30
pop rdi
ret
inc dword [rcx + 0x20]
mov r8d, dword [rcx + 0x20]
lea rdx, str.Timeout_waiting_for_block__d_ACK.__Retries___d_n
mov rcx, rdi
call fcn.1400fe360
movsxd r11, dword [rbx + 0x20]
cmp r11, qword [rbx + 0x30]
jle 0x1401048ff
mov dword [rbx + 8], 0xffffff9d
mov dword [rbx], 3
xor eax, eax
mov rbx, qword [rsp + 0x40]
mov rsi, qword [rsp + 0x50]
add rsp, 0x30
pop rdi
ret
mov eax, dword [rbx + 0x150]
mov r8d, dword [rbx + 0x160]
mov rdx, qword [rbx + 0x180]
lea rcx, [rbx + 0xd0]
mov dword [rsp + 0x28], eax
add r8d, 4
mov qword [rsp + 0x20], rcx
mov rcx, qword [rbx + 0x18]
xor r9d, r9d
call qword [sym.imp.WSOCK32.dll_sendto]
test eax, eax
jns 0x140104b13
call qword [sym.imp.WSOCK32.dll_WSAGetLastError]
mov rcx, qword [rbx + 0x10]
mov edx, eax
call fcn.1400f2cd0
lea rdx, [0x1403551f8]
mov rcx, rdi
mov r8, rax
call fcn.1400fe410
mov eax, gethostname
mov rbx, qword [rsp + 0x40]
mov rsi, qword [rsp + 0x50]
add rsp, 0x30
pop rdi
ret
mov dword [rcx], 3
xor eax, eax
mov rbx, qword [rsp + 0x40]
mov rsi, qword [rsp + 0x50]
add rsp, 0x30
pop rdi
ret
add rcx, 0x178
call fcn.140104240
movzx r9d, word [rbx + 0x48]
movzx r8d, ax
cmp r8d, r9d
je 0x140104a64
lea rdx, str.Received_ACK_for_block__d__expecting__d_n
mov rcx, rdi
call fcn.1400fe360
inc dword [rbx + 0x20]
movsxd rax, dword [rbx + 0x20]
cmp rax, qword [rbx + 0x30]
jle 0x1401049f1
movzx r8d, word [rbx + 0x48]
lea rdx, str.tftp_tx:_giving_up_waiting_for_block__d_ack
mov rcx, rdi
call fcn.1400fe410
mov esi, gethostname
mov eax, esi
mov rbx, qword [rsp + 0x40]
mov rsi, qword [rsp + 0x50]
add rsp, 0x30
pop rdi
ret
mov eax, dword [rbx + 0x150]
mov r8d, dword [rbx + 0x160]
lea rcx, [rbx + 0xd0]
mov dword [rsp + 0x28], eax
mov qword [rsp + 0x20], rcx
mov rcx, qword [rbx + 0x18]
lea rdx, [rbx + 0x180]
add r8d, 4
xor r9d, r9d
call qword [sym.imp.WSOCK32.dll_sendto]
test eax, eax
jns 0x140104a52
call qword [sym.imp.WSOCK32.dll_WSAGetLastError]
mov rcx, qword [rbx + 0x10]
mov edx, eax
call fcn.1400f2cd0
lea rdx, [0x1403551f8]
mov rcx, rdi
mov r8, rax
call fcn.1400fe410
mov esi, gethostname
mov eax, esi
mov rbx, qword [rsp + 0x40]
mov rsi, qword [rsp + 0x50]
add rsp, 0x30
pop rdi
ret
inc word [rbx + 0x48]
lea rcx, [rbx + 0x180]
mov edx, 3
mov dword [rbx + 0x20], esi
call fcn.1401041f0
movzx edx, word [rbx + 0x48]
lea rcx, [rbx + 0x180]
call fcn.140104210
cmp word [rbx + 0x48], 1
jbe 0x140104aa7
mov rax, qword [rbx + 0x168]
cmp qword [rbx + 0x160], rax
jb 0x1401048e7
mov edx, dword [rbx + 0x168]
mov rcx, qword [rbx + 0x10]
lea r8, [rsp + 0x48]
call fcn.1400f9d00
movsxd rcx, dword [rsp + 0x48]
mov qword [rbx + 0x160], rcx
test eax, eax
jne 0x140104b21
mov eax, dword [rbx + 0x150]
mov r8d, dword [rbx + 0x160]
mov rdx, qword [rbx + 0x180]
lea rcx, [rbx + 0xd0]
mov dword [rsp + 0x28], eax
add r8d, 4
mov qword [rsp + 0x20], rcx
mov rcx, qword [rbx + 0x18]
xor r9d, r9d
call qword [sym.imp.WSOCK32.dll_sendto]
test eax, eax
js 0x14010493c
mov rax, qword [rbx + 0x160]
add qword [rdi + 0x50], rax
mov rdx, qword [rdi + 0x50]
mov rcx, rdi
call fcn.140102c90
xor eax, eax
mov rbx, qword [rsp + 0x40]
mov rsi, qword [rsp + 0x50]
add rsp, 0x30
pop rdi
ret