Function at 0x1400721a0
Capabilities:
Receive data
Receive data on socket

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x158
mov rax, qword [rcx + 0x20]
mov rbx, qword [rax + 0x660]
mov r10d, dword [rbx]
mov rdi, rcx
mov rcx, qword [rbx + 0x10]
mov rsi, rdx
test r10d, r10d
sete r8b
xor edx, edx
movzx r8d, r8b
call sym.Curl_timeleft
test rax, rax
js 0x140072240
mov rbp, qword [sym.imp.msvcrt.dll__time64]
xor ecx, ecx
call rbp
mov rdx, rax
movsxd rax, dword [rbx + 0x24]
add rax, qword [rbx + 0x30]
cmp rdx, rax
jle 0x14007224d
xor ecx, ecx
call rbp
mov edx, 7
mov qword [rbx + 0x30], rax
mov byte [rsi], 0
mov rcx, rbx
call sym.tftp_state_machine
mov ebp, eax
test eax, eax
jne 0x140072229
cmp dword [rbx], 3
sete byte [rsi]
je 0x140072330
xor ebp, ebp
mov eax, ebp
add rsp, 0x158
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov dword [rbx + 8], 0xffffff9d
mov dword [rbx], 3
mov byte [rsi], 0
mov rcx, qword [rbx + 0x18]
xor r9d, r9d
mov r8, 0xffffffffffffffff
mov rdx, 0xffffffffffffffff
call sym.Curl_socket_check
cmp eax, 0xffffffff
je 0x140072340
test eax, eax
je 0x140072227
mov rax, qword [rdi + 0x20]
lea r8, [rsp + 0x4c]
lea rbp, [rsp + 0x50]
xor r9d, r9d
mov dword [rsp + 0x4c], pe_nt_image_headers64
mov r15, qword [rax + 0x660]
mov eax, dword [r15 + 0x144]
mov rdx, qword [r15 + 0x150]
mov rcx, qword [r15 + 0x18]
mov qword [rsp + 0x28], r8
mov qword [rsp + 0x20], rbp
lea r8d, [rax + 4]
call qword [sym.imp.WS2_32.dll_recvfrom]
mov r9d, dword [r15 + 0x138]
mov dword [r15 + 0x13c], eax
test r9d, r9d
je 0x140072420
cmp eax, 3
jle 0x140072400
mov rbp, qword [r15 + 0x150]
movzx edx, word [rbp]
rol dx, 8
movzx ecx, dx
mov dword [r15 + 0xc], ecx
cmp dx, 5
je 0x140072380
jg 0x140072450
cmp dx, 3
je 0x1400726a0
cmp dx, 4
jne 0x140072700
mov rcx, rdi
call sym.Curl_pgrsUpdate
test eax, eax
jne 0x14007271b
mov edx, dword [rbx + 0xc]
jmp 0x14007220d
mov rcx, rdi
xor ebp, ebp
call sym.Curl_xfer_setup_nop
jmp 0x140072229
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
lea rdx, [rsp + 0x50]
mov r8d, 0x100
xor ebp, ebp
mov ecx, eax
call sym.Curl_strerror
lea rdx, [0x140101305]
mov rcx, rdi
mov r8, rax
call sym.Curl_failf
mov dword [rbx + 0xc], 5
jmp 0x140072229
sub eax, 4
lea r13, [rbp + 4]
xor edx, edx
movsxd r12, eax
movzx eax, word [rbp + 2]
mov rcx, r13
mov r8, r12
rol ax, 8
movzx eax, ax
mov dword [r15 + 8], eax
call sym.memchr
test rax, rax
je 0x140072317
sub rax, r13
cmp rax, r12
jae 0x140072317
test byte [rdi + 0xa37], 0x10
je 0x140072317
mov rax, qword [rdi + 0x11e8]
test rax, rax
je 0x1400723e1
mov r8d, dword [rax + 8]
test r8d, r8d
jle 0x140072317
mov r8, r13
lea rdx, str.TFTP_error:__s
mov rcx, rdi
call sym.Curl_infof
jmp 0x140072317
lea rdx, str.Received_too_short_packet
mov rcx, rdi
call sym.Curl_failf
mov dword [r15 + 0xc], 7
jmp 0x140072327
movsxd r8, dword [rsp + 0x4c]
lea rcx, [r15 + 0xb8]
mov rdx, rbp
mov r12, r8
call sym.memcpy
mov dword [r15 + 0x138], r12d
mov eax, dword [r15 + 0x13c]
jmp 0x1400722d4
cmp dx, 6
jne 0x140072700
sub eax, 2
mov rdx, qword [r15 + 0x10]
add rbp, 2
mov dword [r15 + 0x144], 0x200
cdqe
lea r12, [rbp + rax]
mov qword [rsp + 0x30], rdx
cmp rbp, r12
jae 0x140072317
test rdx, rdx
je 0x140072732
mov qword [rsp + 0x38], rbx
mov r14, rdx
mov qword [rsp + 0x1a0], rdi
mov qword [rsp + 0x1a8], rsi
jmp 0x14007254c
mov r8d, 0xa
xor edx, edx
mov rcx, r13
call sym.strtol
mov r9d, eax
test eax, eax
je 0x1400728d5
cmp eax, 0xffb8
jg 0x1400728b5
cmp eax, 7
jle 0x140072905
mov eax, dword [r15 + 0x148]
cmp r9d, eax
jg 0x1400728eb
mov dword [r15 + 0x144], r9d
test byte [r14 + 0xa37], 0x10
je 0x140072540
mov rdx, qword [r14 + 0x11e8]
test rdx, rdx
je 0x140072513
mov edx, dword [rdx + 8]
test edx, edx
jle 0x140072540
mov dword [rsp + 0x28], eax
lea rax, str.requested
lea r8, str.blksize_parsed_from_OACK
mov rcx, r14
mov qword [rsp + 0x20], rax
lea rdx, str._s___d___s___d_
call sym.Curl_infof
nop dword [rax]
cmp rbx, r12
jae 0x14007289b
mov rbp, rbx
mov r13, r12
xor edx, edx
mov rcx, rbp
sub r13, rbp
mov r8, r13
call sym.memchr
test rax, rax
je 0x140072880
sub rax, rbp
lea rbx, [rax + 1]
mov rdi, rax
cmp rbx, r13
jae 0x140072880
mov rsi, r13
xor edx, edx
sub rsi, rbx
add rbx, rbp
mov r8, rsi
mov rcx, rbx
call sym.memchr
mov rdx, rax
sub rdx, rbx
test rax, rax
cmovne rsi, rdx
lea rbx, [rdi + rsi + 2]
cmp r13, rbx
jb 0x140072880
mov rcx, rbp
add rbx, rbp
call sym.strlen
lea r13, [rbp + rax + 1]
test byte [r14 + 0xa37], 0x10
je 0x1400725ee
mov rax, qword [r14 + 0x11e8]
test rax, rax
je 0x1400725d9
mov ecx, dword [rax + 8]
test ecx, ecx
jle 0x1400725ee
mov r9, r13
mov r8, rbp
lea rdx, str.got_option__s__value__s_
mov rcx, r14
call sym.Curl_infof
mov r8d, 7
lea rdx, str.blksize
mov rcx, rbp
call sym.curl_strnequal
test eax, eax
jne 0x1400724b0
mov r8d, 5
lea rdx, str.tsize
mov rcx, rbp
call sym.curl_strnequal
test eax, eax
je 0x140072540
mov r8d, 0xa
xor edx, edx
mov rcx, r13
call sym.strtol
mov ebp, eax
test byte [r14 + 0xa37], 0x10
je 0x140072670
mov rax, qword [r14 + 0x11e8]
test rax, rax
je 0x140072657
mov eax, dword [rax + 8]
test eax, eax
jle 0x140072670
mov r9d, ebp
lea r8, str.tsize_parsed_from_OACK
lea rdx, str._s___ld_
mov rcx, r14
call sym.Curl_infof
test byte [r14 + 0x1266], 2
jne 0x140072540
test ebp, ebp
je 0x14007293a
movsxd rdx, ebp
mov rcx, r14
call sym.Curl_pgrsSetDownloadSize
jmp 0x140072540
cmp eax, 4
je 0x140072317
movzx edx, word [r15 + 0x14c]
movzx ecx, word [rbp + 2]
add edx, 1
rol cx, 8
cmp cx, dx
jne 0x140072317
sub eax, 4
lea r8, [rbp + 4]
mov edx, 1
mov rcx, rdi
movsxd r9, eax
call sym.Curl_client_write
mov ebp, eax
test eax, eax
je 0x140072317
mov edx, 5
mov rcx, r15
call sym.tftp_state_machine
jmp 0x140072229
lea r8, str.Internal_error:_Unexpected_packet
lea rdx, [0x140101305]
mov rcx, rdi
call sym.Curl_failf
jmp 0x140072317
mov edx, 5
mov rcx, r15
mov ebp, 0x2a
call sym.tftp_state_machine
jmp 0x140072229
mov qword [rsp + 0x38], rbx
mov qword [rsp + 0x1a8], rsi
jmp 0x140072771
mov r8d, 5
lea rdx, str.tsize
mov rcx, rbp
call sym.curl_strnequal
test eax, eax
jne 0x140072845
cmp r14, r12
jae 0x140072928
mov rbp, r14
mov r13, r12
xor edx, edx
mov rcx, rbp
sub r13, rbp
mov r8, r13
call sym.memchr
test rax, rax
je 0x140072880
sub rax, rbp
mov r14, rax
lea rax, [rax + 1]
cmp rax, r13
jae 0x140072880
mov rbx, r13
lea rsi, [rbp + rax]
xor edx, edx
sub rbx, rax
mov rcx, rsi
mov r8, rbx
call sym.memchr
mov rdx, rax
sub rdx, rsi
test rax, rax
cmovne rbx, rdx
lea r14, [r14 + rbx + 2]
cmp r13, r14
jb 0x140072880
mov rcx, rbp
add r14, rbp
call sym.strlen
mov r8d, 7
lea rdx, str.blksize
mov rcx, rbp
lea r13, [rbp + rax + 1]
call sym.curl_strnequal
test eax, eax
je 0x140072748
xor edx, edx
mov r8d, 0xa
mov rcx, r13
call sym.strtol
test eax, eax
je 0x1400728d5
cmp eax, 0xffb8
jg 0x1400728b5
cmp eax, 7
jle 0x140072905
cmp dword [r15 + 0x148], eax
jl 0x1400728e8
mov dword [r15 + 0x144], eax
jmp 0x140072765
xor edx, edx
mov r8d, 0xa
mov rcx, r13
call sym.strtol
test byte [0x1266], 2
jne 0x140072765
test eax, eax
je 0x14007293a
movsxd rdx, eax
xor ecx, ecx
call sym.Curl_pgrsSetDownloadSize
jmp 0x140072765
mov rcx, qword [rsp + 0x30]
lea rdx, str.Malformed_ACK_packet__rejecting
call sym.Curl_failf
mov ebp, 0x47
jmp 0x140072229
mov rbx, qword [rsp + 0x38]
mov rdi, qword [rsp + 0x1a0]
mov rsi, qword [rsp + 0x1a8]
jmp 0x140072317
mov rcx, qword [rsp + 0x30]
mov r9d, 0xffb8
lea r8, str.blksize_is_larger_than_max_supported
lea rdx, str._s___d_
call sym.Curl_failf
jmp 0x140072891
mov rcx, qword [rsp + 0x30]
lea rdx, str.invalid_blocksize_value_in_OACK_packet
call sym.Curl_failf
jmp 0x140072891
mov r9d, eax
mov rcx, qword [rsp + 0x30]
lea r8, str.server_requested_blksize_larger_than_allocated
lea rdx, str._s___ld_
call sym.Curl_failf
jmp 0x140072891
mov rcx, qword [rsp + 0x30]
mov r9d, 8
lea r8, str.blksize_is_smaller_than_min_supported
lea rdx, str._s___d_
call sym.Curl_failf
jmp 0x140072891
mov rbx, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x1a8]
jmp 0x140072317
mov rcx, qword [rsp + 0x30]
mov r8, r13
lea rdx, str.invalid_tsize__:_s:__value_in_OACK_packet
call sym.Curl_failf
jmp 0x140072891