Function at 0x140013500
Capabilities:
Check if file exists

Disassembly:
mov qword [rsp + 0x20], rbx
push rdi
sub rsp, 0x20
mov rax, qword [rcx + 0x1008]
lea rdi, [rcx + 0x1018]
mov rbx, rcx
movups xmm0, xmmword [rax + 0x90]
movups xmmword [rdi], xmm0
movsd xmm1, qword [rax + 0xa0]
mov rax, qword [rcx + 0xc68]
movsd qword [rdi + 0x10], xmm1
cmp dword [rax + 0x2b4], 2
jne 0x140013738
mov qword [rsp + 0x30], rsi
mov qword [rsp + 0x38], r14
mov qword [rsp + 0x40], r15
mov r15, qword [rax + 0x2d0]
mov esi, dword [r15]
mov ecx, dword [r15 + 4]
movups xmm0, xmmword [rax + 0x1d8]
movups xmmword [rdi], xmm0
movsd xmm1, qword [rax + 0x1e8]
movsd qword [rdi + 0x10], xmm1
mov dword [rdi + 8], 0
cmp esi, 0x800000
jae 0x14001367a
cmp ecx, 0x800000
jae 0x14001367a
cmp esi, ecx
je 0x1400136a9
sub ecx, esi
and ecx, 0x7fffff
cmp ecx, 4
jae 0x1400135d9
cmp dword [0x1400d3ed4], 1
jb 0x1400136a2
mov ecx, 1
call fcn.14000ec70
test al, al
je 0x1400136a2
lea rdx, str.Wintun:_incomplete_packet_header_in_send_ring
jmp 0x140013698
movsxd rdx, dword [rsi + r15 + 0xc]
cmp edx, 0xffff
jbe 0x140013611
cmp dword [0x1400d3ed4], 1
jb 0x1400136a2
mov ecx, 1
call fcn.14000ec70
test al, al
je 0x1400136a2
lea rdx, str.Wintun:_packet_too_big_in_send_ring
jmp 0x140013698
lea r14d, [rdx + 7]
and r14d, 0xfffffffc
cmp r14d, ecx
jbe 0x14001363e
cmp dword [0x1400d3ed4], 1
jb 0x1400136a2
mov ecx, 1
call fcn.14000ec70
test al, al
je 0x1400136a2
lea rdx, str.Wintun:_incomplete_packet_in_send_ring
jmp 0x140013698
mov r8, qword [rdi + 0x10]
test r8, r8
je 0x14001366c
movsxd rcx, dword [rdi + 4]
lea eax, [rcx + rdx]
cmp eax, dword [rdi]
jg 0x14001366c
mov dword [rdi + 8], edx
add rcx, r8
je 0x14001366c
lfence
mov r8, rdx
lea rdx, [r15 + 0x10]
add rdx, rsi
call sub.VCRUNTIME140.dll_memcpy
lea eax, [r14 + rsi]
and eax, 0x7fffff
mov dword [r15], eax
jmp 0x1400136a9
cmp dword [0x1400d3ed4], 1
jb 0x1400136a2
mov ecx, 1
call fcn.14000ec70
test al, al
je 0x1400136a2
lea rdx, str.Wintun:_ring_capacity_exceeded
mov ecx, 1
call fcn.14000e820
mov dword [rdi + 8], 0xffffffff
mov eax, dword [rbx + 0x1020]
mov r15, qword [rsp + 0x40]
mov r14, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x30]
cmp eax, 0xffffffff
jne 0x140013754
mov rax, qword [rbx + 0xa78]
mov ecx, dword [rax]
cmp ecx, 0xf
je 0x1400136e2
mov rax, qword [rbx + 0xa78]
mov dword [rax], 1
cmp dword [0x1400d3ed4], 1
lea rdx, str.tun_abort
mov rax, qword [rbx + 0xa78]
mov qword [rax + 8], rdx
mov dword [rbx + 0xa8c], 1
jb 0x14001387a
mov ecx, 1
call fcn.14000ec70
test al, al
je 0x14001387a
lea rdx, str.Wintun_read_error__restarting
mov ecx, 1
mov rbx, qword [rsp + 0x48]
add rsp, 0x20
pop rdi
jmp fcn.14000e820
mov rcx, qword [rax + 0x178]
lea rdx, [rax + 0x180]
mov r8, rdi
call fcn.14007dd70
mov eax, dword [rbx + 0x1020]
test eax, eax
jns 0x1400137ca
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 2
jne 0x1400137ca
mov rax, qword [rbx + 0xa78]
mov ecx, dword [rax]
cmp ecx, 0xf
je 0x14001377e
mov rax, qword [rbx + 0xa78]
mov dword [rax], reloc.WS2_32.dll_ntohs
cmp dword [0x1400d3ed4], 1
lea rcx, str.tun_stop
mov rax, qword [rbx + 0xa78]
mov qword [rax + 8], rcx
jb 0x14001387a
mov ecx, 1
call fcn.14000ec70
test al, al
je 0x14001387a
lea rdx, str.TUN_TAP_interface_has_been_stopped__exiting
mov ecx, 1
mov rbx, qword [rsp + 0x48]
add rsp, 0x20
pop rdi
jmp fcn.14000e820
cmp dword [rbx + 0x1020], 0
jge 0x140013849
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x3e3
jne 0x140013849
mov rax, qword [rbx + 0xa78]
mov ecx, dword [rax]
cmp ecx, 0xf
je 0x1400137fb
mov rax, qword [rbx + 0xa78]
mov dword [rax], 1
cmp dword [0x1400d3ed4], 1
lea rdx, str.tun_abort
mov rax, qword [rbx + 0xa78]
mov qword [rax + 8], rdx
mov dword [rbx + 0xa8c], 0xa
jb 0x14001387a
mov ecx, 1
call fcn.14000ec70
test al, al
je 0x14001387a
lea rdx, str.TUN_TAP_I_O_operation_aborted__restarting
mov ecx, 1
mov rbx, qword [rsp + 0x48]
add rsp, 0x20
pop rdi
jmp fcn.14000e820
mov ecx, dword [rbx + 0x1020]
test ecx, ecx
js 0x140013864
mov eax, dword [0x1400d3eb8]
and eax, 0xf
cmp eax, dword [0x1400d3ed4]
ja 0x14001387a
mov r9, qword [rbx + 0xc68]
lea rdx, str.read_from_TUN_TAP
xor r8d, r8d
call fcn.14000f150
mov rbx, qword [rsp + 0x48]
add rsp, 0x20
pop rdi
ret