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

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x158
mov rbx, rdx
mov rsi, rcx
mov rax, qword [0x1400cb080]
xor rax, rsp
mov qword [rsp + 0x150], rax
mov rax, qword [rcx + 0x20]
mov rdi, qword [rax + 0x590]
cmp dword [rdi], 0
sete r8b
mov rcx, qword [rdi + 0x10]
xor edx, edx
call fcn.140034630
test rax, rax
js 0x1400609ef
lea rcx, [rsp + 0x50]
call fcn.14008f95c
movsxd rax, dword [rdi + 0x24]
add rax, qword [rdi + 0x30]
cmp qword [rsp + 0x50], rax
jle 0x1400609fc
lea rcx, [rdi + 0x30]
call fcn.14008f95c
mov byte [rbx], 0
mov rcx, rdi
mov edx, 7
jmp 0x140060c3b
mov dword [rdi + 8], 0xffffff9d
mov dword [rdi], 3
mov byte [rbx], 0
mov rcx, qword [rdi + 0x18]
mov rdx, 0xffffffffffffffff
mov r8, 0xffffffffffffffff
xor r9d, r9d
call fcn.14006fd90
mov ebp, eax
test eax, eax
je 0x140060c71
cmp ebp, 0xffffffff
jne 0x140060a60
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
lea rdx, [rsp + 0x50]
mov r8d, 0x100
mov ecx, eax
call fcn.140050c90
lea rdx, [0x1400ba975]
mov rcx, rsi
mov r8, rax
call fcn.14001cc90
mov dword [rdi + 0xc], 5
xor ebp, ebp
jmp 0x140060c71
mov rax, qword [rsi + 0x20]
mov r14, qword [rax + 0x590]
mov dword [rsp + 0x4c], Ordinal_133
mov r8d, dword [r14 + 0x144]
add r8d, 4
mov rdx, qword [r14 + 0x150]
mov rcx, qword [r14 + 0x18]
lea rax, [rsp + 0x4c]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x50]
mov qword [rsp + 0x20], rax
xor r9d, r9d
call qword [sym.imp.WS2_32.dll_recvfrom]
mov r13d, eax
mov dword [r14 + 0x13c], eax
cmp dword [r14 + 0x138], 0
je 0x140060adc
cmp r13d, 3
jg 0x140060b09
lea rdx, str.Received_too_short_packet
mov rcx, rsi
call fcn.14001cc90
mov dword [r14 + 0xc], 7
jmp 0x140060c35
lea rcx, [r14 + 0xb8]
movsxd r15, dword [rsp + 0x4c]
lea rdx, [rsp + 0x50]
mov r8, r15
call fcn.1400a6690
mov dword [r14 + 0x138], r15d
mov r13d, dword [r14 + 0x13c]
cmp r13d, 3
jle 0x140060ac0
mov qword [rsp + 0x40], rbx
mov r15, qword [r14 + 0x150]
movzx eax, word [r15]
rol ax, 8
movzx eax, ax
mov dword [r14 + 0xc], eax
add eax, 0xfffffffd
cmp eax, 3
mov qword [rsp + 0x30], rsi
ja case.default.0x140060b3f
lea rcx, [0x140060f10]
movsxd rax, dword [rcx + rax*4]
add rax, rcx
jmp rax
cmp r13d, 5
jb case.0x140060b3f.4
mov eax, dword [r14 + 0x14c]
inc eax
movzx ecx, word [r15 + 2]
rol cx, 8
cmp ax, cx
jne case.0x140060b3f.4
add r13d, 0xfffffffc
add r15, 4
mov rcx, qword [rsp + 0x30]
mov edx, 1
mov r8, r15
mov r9, r13
call fcn.140033b30
test eax, eax
je case.0x140060b3f.4
mov ebp, eax
mov rcx, r14
mov edx, 5
call fcn.140061310
jmp 0x140060c71
lea rdx, [0x1400ba975]
lea r8, str.Internal_error:_Unexpected_packet
mov rcx, rsi
call fcn.14001cc90
jmp case.0x140060b3f.4
movzx eax, word [r15 + 2]
rol ax, 8
movzx eax, ax
add r15, 4
add r13d, 0xfffffffc
mov dword [r14 + 8], eax
mov rcx, r15
xor edx, edx
mov r8, r13
call fcn.1400a64f0
test rax, rax
je case.0x140060b3f.4
sub rax, r15
cmp rax, r13
jae case.0x140060b3f.4
mov rax, qword [rsp + 0x30]
cmp byte [rax + 0xa87], 0
je case.0x140060b3f.4
lea rdx, str.TFTP_error:__s
mov rcx, qword [rsp + 0x30]
mov r8, r15
call fcn.14001cd60
mov rsi, qword [rsp + 0x30]
mov rcx, rsi
call fcn.14004fa90
test eax, eax
mov rbx, qword [rsp + 0x40]
je 0x140060c35
mov rcx, r14
mov edx, 5
call fcn.140061310
mov ebp, Ordinal_46
jmp 0x140060c71
mov edx, dword [rdi + 0xc]
mov rcx, rdi
call fcn.140061310
mov ebp, eax
test eax, eax
jne 0x140060c71
xor ebp, ebp
cmp dword [rdi], 3
sete byte [rbx]
jne 0x140060c71
mov dword [rsp + 0x20], 0xffffffff
xor ebp, ebp
mov rcx, rsi
mov edx, 0xffffffff
mov r8, 0xffffffffffffffff
xor r9d, r9d
call fcn.140059a30
mov rcx, qword [rsp + 0x150]
xor rcx, rsp
call fcn.140080da0
mov eax, ebp
add rsp, 0x158
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
add r13d, 0xfffffffe
mov rsi, qword [r14 + 0x10]
mov dword [r14 + 0x144], 0x200
lea rbp, [r15 + r13]
add rbp, 2
add r15, 2
mov qword [rsp + 0x38], rbp
jmp 0x140060cce
add r15, r12
mov rbp, qword [rsp + 0x38]
cmp r15, rbp
jae case.0x140060b3f.4
sub rbp, r15
mov rcx, r15
xor edx, edx
mov r8, rbp
call fcn.1400a64f0
mov rbx, rax
sub rbx, r15
test rax, rax
cmove rbx, rbp
lea r12, [rbx + 1]
mov r13, rbp
sub r13, r12
jbe 0x140060e7b
add r12, r15
mov rcx, r12
xor edx, edx
mov r8, r13
call fcn.1400a64f0
mov rcx, rax
sub rcx, r12
test rax, rax
cmove rcx, r13
lea r12, [rbx + rcx]
add r12, 2
cmp r12, rbp
ja 0x140060e7b
mov rcx, r15
call fcn.140094370
lea rbp, [rax + r15]
inc rbp
test rsi, rsi
je 0x140060d5b
cmp byte [rsi + 0xa87], 0
je 0x140060d5b
mov rcx, rsi
lea rdx, str.got_option__s__value__s_
mov r8, r15
mov r9, rbp
call fcn.14001cd60
mov r8d, 7
mov rcx, r15
lea rdx, str.blksize
call fcn.1400375a0
test eax, eax
je 0x140060dfe
mov rcx, rbp
xor edx, edx
mov r8d, 0xa
call fcn.140094ddc
test eax, eax
je 0x140060e84
cmp eax, 0xffb9
jge 0x140060e9d
cmp eax, 7
jle 0x140060eb6
mov ecx, dword [r14 + 0x148]
cmp eax, ecx
jg 0x140060ecf
mov dword [r14 + 0x144], eax
test rsi, rsi
je 0x140060cbd
cmp byte [rsi + 0xa87], 0
je 0x140060cbd
mov dword [rsp + 0x28], ecx
lea rcx, str.requested
mov qword [rsp + 0x20], rcx
mov rcx, rsi
lea rdx, str._s___d___s___d_
lea r8, str.blksize_parsed_from_OACK
mov r9d, eax
call fcn.14001cd60
jmp 0x140060cbd
mov r8d, 5
mov rcx, r15
lea rdx, str.tsize
call fcn.1400375a0
test eax, eax
je 0x140060cbd
mov rcx, rbp
xor edx, edx
mov r8d, 0xa
call fcn.140094ddc
mov r13d, eax
test rsi, rsi
je 0x140060e55
cmp byte [rsi + 0xa87], 0
je 0x140060e55
mov rcx, rsi
lea rdx, str._s___ld_
lea r8, str.tsize_parsed_from_OACK
mov r9d, r13d
call fcn.14001cd60
cmp byte [rsi + 0x1368], 0
jne 0x140060cbd
test r13d, r13d
je 0x140060ef2
movsxd rdx, r13d
mov rcx, rsi
call fcn.1400505c0
jmp 0x140060cbd
lea rdx, str.Malformed_ACK_packet__rejecting
jmp 0x140060e8b
lea rdx, str.invalid_blocksize_value_in_OACK_packet
mov rcx, rsi
call fcn.14001cc90
mov ebp, Ordinal_73
jmp 0x140060c71
lea rdx, [0x1400c2104]
lea r8, str.blksize_is_larger_than_max_supported
mov rcx, rsi
mov r9d, 0xffb8
jmp 0x140060ee3
lea rdx, [0x1400c2104]
lea r8, str.blksize_is_smaller_than_min_supported
mov rcx, rsi
mov r9d, 8
jmp 0x140060ee3
lea rdx, str._s___ld_
lea r8, str.server_requested_blksize_larger_than_allocated
mov rcx, rsi
mov r9d, eax
call fcn.14001cc90
mov ebp, Ordinal_73
jmp 0x140060c71
lea rdx, str.invalid_tsize__:_s:__value_in_OACK_packet
mov rcx, rsi
mov r8, rbp
call fcn.14001cc90
mov ebp, Ordinal_73
jmp 0x140060c71