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

Disassembly:
push rdi
push rsi
push rbx
sub rsp, 0x130
mov rsi, qword [rcx + 0x10]
mov rbx, rcx
cmp edx, 6
je 0x140070fc0
jg 0x140070e98
cmp edx, 3
je 0x140070f40
cmp edx, 5
jne 0x140070f10
mov rax, qword [rcx + 0x158]
xor r9d, r9d
mov r8d, 4
mov byte [rax], 0
mov rax, qword [rcx + 0x158]
mov byte [rax + 1], 5
movzx eax, word [rcx + 0x14c]
mov rdx, qword [rcx + 0x158]
mov byte [rdx + 2], ah
mov rdx, qword [rcx + 0x158]
mov byte [rdx + 3], al
mov eax, dword [rbx + 0x138]
mov rdx, qword [rcx + 0x158]
mov rcx, qword [rcx + 0x18]
mov dword [rsp + 0x28], eax
lea rax, [rbx + 0xb8]
mov qword [rsp + 0x20], rax
call qword [sym.imp.WS2_32.dll_sendto]
mov dword [rbx], 3
xor eax, eax
add rsp, 0x130
pop rbx
pop rsi
pop rdi
ret
cmp edx, 7
jne 0x140070f10
mov eax, dword [rcx + 0x20]
lea r9d, [rax + 1]
mov dword [rcx + 0x20], r9d
test rsi, rsi
je 0x140070eec
test byte [rsi + 0xa37], 0x10
je 0x140070eec
mov rax, qword [rsi + 0x11e8]
test rax, rax
je 0x140070ec9
mov eax, dword [rax + 8]
test eax, eax
jle 0x140070eec
movzx r8d, word [rbx + 0x14c]
lea rdx, str.Timeout_waiting_for_block__d_ACK._Retries___d
mov rcx, rsi
add r8d, 1
movzx r8d, r8w
call sym.Curl_infof
mov r9d, dword [rbx + 0x20]
cmp dword [rbx + 0x28], r9d
jge 0x140071100
mov dword [rbx + 8], 0xffffff9d
xor eax, eax
mov dword [rbx], 3
jmp 0x140070e8a
lea r8, str.tftp_rx:_internal_error
lea rdx, [0x140101305]
mov rcx, rsi
call sym.Curl_failf
mov eax, 0x47
add rsp, 0x130
pop rbx
pop rsi
pop rdi
ret
mov rax, qword [rcx + 0x150]
movzx edi, word [rax + 2]
movzx eax, word [rcx + 0x14c]
rol di, 8
lea r9d, [rax + 1]
movzx r8d, di
movzx r9d, r9w
cmp r9d, r8d
je 0x140071058
cmp ax, di
je 0x140071178
test rsi, rsi
je 0x140070e88
test byte [rsi + 0xa37], 0x10
je 0x140070e88
mov rax, qword [rsi + 0x11e8]
test rax, rax
je 0x140070fa1
mov ecx, dword [rax + 8]
test ecx, ecx
jle 0x140070e88
lea rdx, str.Received_unexpected_DATA_packet_block__d__expecting_block__d
mov rcx, rsi
call sym.Curl_infof
xor eax, eax
jmp 0x140070e8a
mov rax, qword [rcx + 0x158]
xor edx, edx
mov dword [rcx + 0x20], 0
xor r9d, r9d
mov word [rcx + 0x14c], dx
mov r8d, 4
mov byte [rax], 0
mov rax, qword [rcx + 0x158]
mov byte [rax + 1], 4
movzx eax, word [rcx + 0x14c]
mov rdx, qword [rcx + 0x158]
mov byte [rdx + 2], ah
mov rdx, qword [rcx + 0x158]
mov byte [rdx + 3], al
mov eax, dword [rbx + 0x138]
mov rdx, qword [rcx + 0x158]
mov rcx, qword [rcx + 0x18]
mov dword [rsp + 0x28], eax
lea rax, [rbx + 0xb8]
mov qword [rsp + 0x20], rax
call qword [sym.imp.WS2_32.dll_sendto]
test eax, eax
js 0x140071140
mov dword [rbx], 1
xor ecx, ecx
call qword [sym.imp.msvcrt.dll__time64]
mov qword [rbx + 0x30], rax
xor eax, eax
jmp 0x140070e8a
mov dword [rcx + 0x20], 0
mov rax, qword [rbx + 0x158]
mov word [rbx + 0x14c], di
xor r9d, r9d
mov r8d, 4
mov byte [rax], 0
mov rax, qword [rbx + 0x158]
mov byte [rax + 1], 4
movzx eax, word [rbx + 0x14c]
mov rdx, qword [rbx + 0x158]
mov byte [rdx + 2], ah
mov rdx, qword [rbx + 0x158]
mov byte [rdx + 3], al
mov eax, dword [rbx + 0x138]
mov rdx, qword [rbx + 0x158]
mov rcx, qword [rbx + 0x18]
mov dword [rsp + 0x28], eax
lea rax, [rbx + 0xb8]
mov qword [rsp + 0x20], rax
call qword [sym.imp.WS2_32.dll_sendto]
test eax, eax
js 0x140071140
movsxd rax, dword [rbx + 0x144]
movsxd rdx, dword [rbx + 0x13c]
add rax, 3
cmp rax, rdx
setge al
xor ecx, ecx
movzx eax, al
lea eax, [rax + rax + 1]
mov dword [rbx], eax
call qword [sym.imp.msvcrt.dll__time64]
mov qword [rbx + 0x30], rax
xor eax, eax
jmp 0x140070e8a
mov eax, dword [rbx + 0x138]
mov rcx, qword [rbx + 0x18]
xor r9d, r9d
add rbx, 0xb8
mov rdx, qword [rbx + 0xa0]
mov r8d, 4
mov qword [rsp + 0x20], rbx
mov dword [rsp + 0x28], eax
call qword [sym.imp.WS2_32.dll_sendto]
test eax, eax
jns 0x140070e88
nop dword [rax + rax]
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
lea rdx, [rsp + 0x30]
mov r8d, 0x100
mov ecx, eax
call sym.Curl_strerror
lea rdx, [0x140101305]
mov rcx, rsi
mov r8, rax
call sym.Curl_failf
mov eax, 0x37
jmp 0x140070f2b
test rsi, rsi
je 0x14007105f
test byte [rsi + 0xa37], 0x10
je 0x14007105f
mov rax, qword [rsi + 0x11e8]
test rax, rax
je 0x1400711a7
mov r9d, dword [rax + 8]
test r9d, r9d
jle 0x14007105f
lea rdx, str.Received_last_DATA_packet_block__d_again.
mov rcx, rsi
call sym.Curl_infof
jmp 0x14007105f