Function at 0x1400e86c0
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, 0x168
mov rbx, rdx
mov r14, rcx
mov rax, qword [0x1402b3040]
xor rax, rsp
mov qword [rsp + 0x160], rax
mov rsi, qword [rcx]
mov rdi, qword [rcx + 0xa00]
movabs rax, 0xaaaaaaaaaaaaaaaa
lea r13, [rsp + 0x60]
mov qword [r13], rax
mov rcx, r13
call fcn.14019bca8
mov rcx, qword [r13]
mov rax, qword [rdi + 0x38]
cmp rax, rcx
jl 0x1400e875e
movsxd rdx, dword [rdi + 0x24]
add rdx, qword [rdi + 0x40]
cmp rcx, rdx
jle 0x1400e87b2
lea rcx, [rdi + 0x40]
call fcn.14019bca8
mov eax, dword [rdi + 0x38]
sub eax, dword [rsp + 0x60]
mov byte [rbx], 0
test eax, eax
jle 0x1400e876e
mov rcx, rdi
mov edx, 7
call fcn.1400e9010
test eax, eax
je 0x1400e882d
mov ebp, eax
jmp 0x1400e8782
mov dword [rdi + 8], 0xffffff9d
mov dword [rdi], 3
mov byte [rbx], 0
lea rdx, str.TFTP_response_timeout
mov rcx, rsi
call fcn.1400b6d70
mov ebp, 0x1c
mov rcx, qword [rsp + 0x160]
xor rcx, rsp
cmp rcx, qword [0x1402b3040]
je 0x1400e879c
call fcn.14019d280
int3
mov eax, ebp
add rsp, 0x168
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
sub eax, ecx
mov byte [rbx], 0
test eax, eax
jle 0x1400e876e
mov rcx, qword [rdi + 0x18]
mov rdx, 0xffffffffffffffff
mov r8, 0xffffffffffffffff
xor r9d, r9d
call fcn.1400d6a80
mov ebp, eax
test eax, eax
je 0x1400e8782
cmp ebp, 0xffffffff
jne 0x1400e885b
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
mov ebx, eax
lea r14, [rsp + 0x60]
mov r8d, 0x100
mov rcx, r14
mov dl, 0xaa
call fcn.1401d6710
mov r8d, 0x100
mov ecx, ebx
mov rdx, r14
call fcn.1400d0910
lea rdx, [0x140277c2a]
mov rcx, rsi
mov r8, rax
call fcn.1400b6d70
mov dword [rdi + 0xc], 5
xor ebp, ebp
jmp 0x1400e8782
cmp dword [rdi], 3
sete byte [rbx]
jne 0x1400e8826
mov dword [rsp + 0x20], 0xffffffff
xor ebp, ebp
mov rcx, rsi
mov edx, 0xffffffff
mov r8, 0xffffffffffffffff
xor r9d, r9d
call fcn.1400d60e0
jmp 0x1400e8782
movaps xmm0, xmmword [0x140272a70]
movaps xmmword [rsp + 0xd0], xmm0
movaps xmmword [rsp + 0xc0], xmm0
movaps xmmword [rsp + 0xb0], xmm0
movaps xmmword [rsp + 0xa0], xmm0
movaps xmmword [rsp + 0x90], xmm0
movaps xmmword [rsp + 0x80], xmm0
movaps xmmword [rsp + 0x70], xmm0
movaps xmmword [rsp + 0x60], xmm0
mov r12, qword [r14]
mov r15, qword [r14 + 0xa00]
lea rax, [rsp + 0x5c]
mov dword [rax], Ordinal_133
mov r8d, dword [r15 + 0x15c]
add r8d, 4
mov rdx, qword [r15 + 0x168]
mov rcx, qword [r15 + 0x18]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], r13
xor r9d, r9d
call qword [sym.imp.WS2_32.dll_recvfrom]
mov ebp, eax
mov dword [r15 + 0x154], eax
cmp dword [r15 + 0x150], 0
jne 0x1400e891a
lea rcx, [r15 + 0xd0]
mov r13, r15
movsxd r15, dword [rsp + 0x5c]
lea rdx, [rsp + 0x60]
mov r8, r15
call fcn.1401d6070
mov dword [r13 + 0x150], r15d
mov r15, r13
mov ebp, dword [r13 + 0x154]
cmp ebp, 3
jg 0x1400e897a
lea rdx, str.Received_too_short_packet
mov rcx, r12
call fcn.1400b6d70
mov dword [r15 + 0xc], 7
mov edx, dword [rdi + 0xc]
mov rcx, rdi
jmp 0x1400e874d
lea rdx, [0x140277c2a]
lea r8, str.Internal_error:_Unexpected_packet
mov rcx, r12
call fcn.1400b6d70
mov rcx, r14
call fcn.1400c1780
test eax, eax
je 0x1400e8936
mov rcx, r15
mov edx, 5
call fcn.1400e9010
mov ebp, Ordinal_46
jmp 0x1400e8782
mov r13, qword [r15 + 0x168]
movzx eax, word [r13]
rol ax, 8
movzx eax, ax
mov dword [r15 + 0xc], eax
add eax, 0xfffffffd
cmp eax, 3
ja case.default.0x1400e89a7
lea rcx, [0x140299afc]
movsxd rax, dword [rcx + rax*4]
add rax, rcx
jmp rax
cmp ebp, 4
je case.0x1400e89a7.4
mov eax, dword [r15 + 0x48]
inc eax
movzx ecx, word [r13 + 2]
rol cx, 8
cmp ax, cx
jne case.0x1400e89a7.4
jmp 0x1400e8c64
mov rax, qword [r15 + 0x10]
mov rax, qword [rax]
mov qword [rsp + 0x38], rax
mov dword [r15 + 0x15c], 0x200
mov eax, ebp
lea rbp, [rax + r13]
add rbp, 2
add r13, 2
add rbp, 0xfffffffffffffffe
cmp r13, rbp
jae case.0x1400e89a7.4
mov qword [rsp + 0x48], r15
mov qword [rsp + 0x50], rbp
jmp 0x1400e8ad8
movzx eax, word [r13 + 2]
rol ax, 8
movzx eax, ax
add r13, 4
add ebp, 0xfffffffc
mov dword [r15 + 8], eax
mov rcx, r13
xor edx, edx
mov r8, rbp
call fcn.1401d5f90
test rax, rax
je case.0x1400e89a7.4
sub rax, r13
cmp rax, rbp
jae case.0x1400e89a7.4
lea rdx, str.TFTP_error:__s_n
mov rcx, r12
mov r8, r13
call fcn.1400b6a70
jmp case.0x1400e89a7.4
mov rcx, rbp
xor edx, edx
mov r8d, 0xa
call fcn.1401b6b30
test eax, eax
mov r15, qword [rsp + 0x48]
je 0x1400e8cc1
cmp eax, 0xffb9
jge 0x1400e8ce5
cmp eax, 7
jle 0x1400e8cca
mov ecx, dword [r15 + 0x160]
cmp eax, ecx
jg 0x1400e8d08
mov dword [r15 + 0x15c], eax
mov dword [rsp + 0x28], ecx
lea rcx, str.requested
mov qword [rsp + 0x20], rcx
mov rcx, qword [rsp + 0x38]
lea rdx, str._s___d___s___d__n
lea r8, str.blksize_parsed_from_OACK
mov r9d, eax
call fcn.1400b6a70
mov rbp, qword [rsp + 0x50]
cmp r13, rbp
jae case.0x1400e89a7.4
sub rbp, r13
mov rcx, r13
xor edx, edx
mov r8, rbp
call fcn.1401d5f90
mov r12, rax
mov qword [rsp + 0x40], r13
sub r12, r13
test rax, rax
cmove r12, rbp
lea r15, [r12 + 1]
mov r13, rbp
sub r13, r15
jbe 0x1400e8c49
add r15, qword [rsp + 0x40]
mov rcx, r15
xor edx, edx
mov r8, r13
call fcn.1401d5f90
mov rcx, rax
sub rcx, r15
test rax, rax
cmove rcx, r13
lea r13, [r12 + rcx]
add r13, 2
cmp r13, rbp
ja 0x1400e8c49
mov r15, qword [rsp + 0x40]
mov rcx, r15
call fcn.1401bebc0
add r13, r15
je 0x1400e8c49
mov r15, qword [rsp + 0x40]
lea rbp, [r15 + rax]
inc rbp
mov rcx, qword [rsp + 0x38]
lea rdx, str.got_option__s__value__s__n
mov r8, r15
mov r9, rbp
call fcn.1400b6a70
mov rcx, r15
call fcn.1401bebc0
mov rcx, r15
lea rdx, str.blksize
mov r8, rax
call fcn.1400af670
test eax, eax
jne 0x1400e8a58
mov r15, qword [rsp + 0x40]
mov rcx, r15
call fcn.1401bebc0
mov rcx, r15
lea rdx, str.tsize
mov r8, rax
call fcn.1400af670
test eax, eax
mov r15, qword [rsp + 0x48]
je 0x1400e8aca
mov rcx, rbp
xor edx, edx
mov r8d, 0xa
call fcn.1401b6b30
mov r12, qword [rsp + 0x38]
mov rcx, r12
lea rdx, str._s___ld__n
lea r8, str.tsize_parsed_from_OACK
mov qword [rsp + 0x40], rax
mov r9d, eax
call fcn.1400b6a70
cmp byte [r12 + 0xf1d], 0
jne 0x1400e8aca
mov r9, qword [rsp + 0x40]
test r9d, r9d
je 0x1400e8d20
mov rdx, qword [rsp + 0x38]
mov eax, dword [rdx + 0xfa4]
and eax, 0xffffffbf
xor ecx, ecx
test r9d, r9d
setns cl
mov r8d, 0
cmovs r9d, r8d
shl ecx, 6
or ecx, eax
mov qword [rdx + 0xf78], r9
mov dword [rdx + 0xfa4], ecx
jmp 0x1400e8aca
lea rdx, str.Malformed_ACK_packet__rejecting
mov rcx, qword [rsp + 0x38]
call fcn.1400b6d70
mov ebp, Ordinal_73
jmp 0x1400e8782
add ebp, 0xfffffffc
add r13, 4
mov rcx, r14
mov edx, 1
mov r8, r13
mov r9, rbp
call fcn.1400b74d0
test eax, eax
je 0x1400e8c96
mov ebp, eax
mov rcx, r15
mov edx, 5
call fcn.1400e9010
jmp 0x1400e8782
movsxd rax, dword [r15 + 0x154]
mov rcx, qword [r12 + 0xf8]
add rax, rcx
add rax, 0xfffffffffffffffc
mov qword [r12 + 0xf8], rax
mov qword [r12 + 0xf88], rax
jmp case.0x1400e89a7.4
lea rdx, str.invalid_blocksize_value_in_OACK_packet
jmp 0x1400e8c50
lea rdx, str._s___d_
lea r8, str.blksize_is_smaller_than_min_supported
mov rcx, qword [rsp + 0x38]
mov r9d, 8
jmp 0x1400e8cfe
lea rdx, str._s___d_
lea r8, str.blksize_is_larger_than_max_supported
mov rcx, qword [rsp + 0x38]
mov r9d, 0xffb8
call fcn.1400b6d70
jmp 0x1400e8c5a
lea rdx, str._s___ld_
lea r8, str.server_requested_blksize_larger_than_allocated
mov rcx, qword [rsp + 0x38]
mov r9d, eax
jmp 0x1400e8cfe
lea rdx, str.invalid_tsize__:_s:__value_in_OACK_packet
mov rcx, qword [rsp + 0x38]
mov r8, rbp
call fcn.1400b6d70
jmp 0x1400e8c5a