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

Disassembly:
push r12
push rsi
push rbx
sub rsp, 0x130
mov r12, qword [rcx + 0x10]
mov rbx, rcx
cmp edx, 6
je 0x140077400
jg 0x140077380
cmp edx, 3
je 0x1400774d0
cmp edx, 5
jne 0x1400774a0
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 ecx, eax
shr cx, 8
mov byte [rdx + 2], cl
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]
mov dword [rbx], 3
xor eax, eax
add rsp, 0x130
pop rbx
pop rsi
pop r12
ret
cmp edx, 7
jne 0x1400774a0
mov eax, dword [rcx + 0x20]
lea r9d, [rax + 1]
mov dword [rcx + 0x20], r9d
test r12, r12
je 0x1400773db
test byte [r12 + 0xa47], 0x10
je 0x1400773db
mov rax, qword [r12 + 0x1270]
test rax, rax
je 0x1400773b8
mov eax, dword [rax + 8]
test eax, eax
jle 0x1400773db
movzx r8d, word [rbx + 0x14c]
lea rdx, str.Timeout_waiting_for_block__d_ACK._Retries___d
mov rcx, r12
add r8d, 1
movzx r8d, r8w
call sym.Curl_infof
mov r9d, dword [rbx + 0x20]
cmp dword [rbx + 0x28], r9d
jge 0x140077600
xor eax, eax
mov dword [rbx + 8], 0xffffff9d
mov dword [rbx], 3
add rsp, 0x130
pop rbx
pop rsi
pop r12
ret
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 ecx, eax
shr cx, 8
mov byte [rdx + 2], cl
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 0x140077640
mov dword [rbx], 1
xor ecx, ecx
call qword [sym.imp.msvcrt.dll__time64]
mov qword [rbx + 0x30], rax
xor eax, eax
add rsp, 0x130
pop rbx
pop rsi
pop r12
ret
lea r8, str.tftp_rx:_internal_error
lea rdx, [0x140168b05]
mov rcx, r12
call sym.Curl_failf
mov eax, 0x47
add rsp, 0x130
pop rbx
pop rsi
pop r12
ret
mov rax, qword [rcx + 0x150]
movzx esi, word [rax + 2]
movzx eax, word [rcx + 0x14c]
rol si, 8
lea r9d, [rax + 1]
movzx r8d, si
movzx r9d, r9w
cmp r9d, r8d
je 0x140077548
cmp ax, si
je 0x140077678
test r12, r12
je 0x140077533
test byte [r12 + 0xa47], 0x10
je 0x140077533
mov rax, qword [r12 + 0x1270]
test rax, rax
je 0x140077524
mov ecx, dword [rax + 8]
test ecx, ecx
jle 0x140077533
lea rdx, str.Received_unexpected_DATA_packet_block__d__expecting_block__d
mov rcx, r12
call sym.Curl_infof
xor eax, eax
add rsp, 0x130
pop rbx
pop rsi
pop r12
ret
mov dword [rcx + 0x20], 0
mov rax, qword [rbx + 0x158]
mov word [rbx + 0x14c], si
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 ecx, eax
shr cx, 8
mov byte [rdx + 2], cl
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 0x140077640
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
add rsp, 0x130
pop rbx
pop rsi
pop r12
ret
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 0x140077533
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, [0x140168b05]
mov rcx, r12
mov r8, rax
call sym.Curl_failf
mov eax, 0x37
jmp 0x140077371
test r12, r12
je 0x14007754f
test byte [r12 + 0xa47], 0x10
je 0x14007754f
mov rax, qword [r12 + 0x1270]
test rax, rax
je 0x1400776aa
mov r9d, dword [rax + 8]
test r9d, r9d
jle 0x14007754f
lea rdx, str.Received_last_DATA_packet_block__d_again.
mov rcx, r12
call sym.Curl_infof
jmp 0x14007754f