Function at 0x140012cf0
Capabilities:
Check if file exists

Disassembly:
mov qword [rsp + 0x20], rbx
push rdi
sub rsp, 0x20
mov rax, qword [rcx + 0xef8]
lea rdi, [rcx + 0xf08]
mov rbx, rcx
movups xmm0, xmmword [rax + 0x90]
movups xmmword [rdi], xmm0
movsd xmm1, qword [rax + 0xa0]
mov rax, qword [rcx + 0xb58]
movsd qword [rdi + 0x10], xmm1
cmp dword [rax + 0x2b4], 2
jne 0x140012f25
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 0x140012e67
cmp ecx, 0x800000
jae 0x140012e67
cmp esi, ecx
je 0x140012e96
sub ecx, esi
and ecx, 0x7fffff
cmp ecx, 4
jae 0x140012dc9
cmp dword [0x1400cfe94], 1
jb 0x140012e8f
mov ecx, 1
call fcn.14000e3d0
test al, al
je 0x140012e8f
lea rdx, str.Wintun:_incomplete_packet_header_in_send_ring
jmp 0x140012e85
movsxd rdx, dword [rsi + r15 + 0xc]
cmp edx, 0xffff
jbe 0x140012e01
cmp dword [0x1400cfe94], 1
jb 0x140012e8f
mov ecx, 1
call fcn.14000e3d0
test al, al
je 0x140012e8f
lea rdx, str.Wintun:_packet_too_big_in_send_ring
jmp 0x140012e85
lea r14d, [rdx + 7]
and r14d, 0xfffffffc
cmp r14d, ecx
jbe 0x140012e2e
cmp dword [0x1400cfe94], 1
jb 0x140012e8f
mov ecx, 1
call fcn.14000e3d0
test al, al
je 0x140012e8f
lea rdx, str.Wintun:_incomplete_packet_in_send_ring
jmp 0x140012e85
mov r8, qword [rdi + 0x10]
test r8, r8
je 0x140012e59
movsxd rcx, dword [rdi + 4]
lea eax, [rcx + rdx]
cmp eax, dword [rdi]
jg 0x140012e59
mov dword [rdi + 8], edx
add rcx, r8
je 0x140012e59
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 0x140012e96
cmp dword [0x1400cfe94], 1
jb 0x140012e8f
mov ecx, 1
call fcn.14000e3d0
test al, al
je 0x140012e8f
lea rdx, str.Wintun:_ring_capacity_exceeded
mov ecx, 1
call fcn.14000e000
mov dword [rdi + 8], 0xffffffff
mov eax, dword [rbx + 0xf10]
mov r15, qword [rsp + 0x40]
mov r14, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x30]
cmp eax, 0xffffffff
jne 0x140012f41
mov rax, qword [rbx + 0x968]
mov ecx, dword [rax]
cmp ecx, 0xf
je 0x140012ecf
mov rax, qword [rbx + 0x968]
mov dword [rax], 1
cmp dword [0x1400cfe94], 1
lea rdx, str.tun_abort
mov rax, qword [rbx + 0x968]
mov qword [rax + 8], rdx
mov dword [rbx + 0x97c], 1
jb 0x140013067
mov ecx, 1
call fcn.14000e3d0
test al, al
je 0x140013067
lea rdx, str.Wintun_read_error__restarting
mov ecx, 1
mov rbx, qword [rsp + 0x48]
add rsp, 0x20
pop rdi
jmp fcn.14000e000
mov rcx, qword [rax + 0x178]
lea rdx, [rax + 0x180]
mov r8, rdi
call fcn.14007c3e0
mov eax, dword [rbx + 0xf10]
test eax, eax
jns 0x140012fb7
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 2
jne 0x140012fb7
mov rax, qword [rbx + 0x968]
mov ecx, dword [rax]
cmp ecx, 0xf
je 0x140012f6b
mov rax, qword [rbx + 0x968]
mov dword [rax], reloc.WS2_32.dll_ntohs
cmp dword [0x1400cfe94], 1
lea rcx, str.tun_stop
mov rax, qword [rbx + 0x968]
mov qword [rax + 8], rcx
jb 0x140013067
mov ecx, 1
call fcn.14000e3d0
test al, al
je 0x140013067
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.14000e000
cmp dword [rbx + 0xf10], 0
jge 0x140013036
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x3e3
jne 0x140013036
mov rax, qword [rbx + 0x968]
mov ecx, dword [rax]
cmp ecx, 0xf
je 0x140012fe8
mov rax, qword [rbx + 0x968]
mov dword [rax], 1
cmp dword [0x1400cfe94], 1
lea rdx, str.tun_abort
mov rax, qword [rbx + 0x968]
mov qword [rax + 8], rdx
mov dword [rbx + 0x97c], 0xa
jb 0x140013067
mov ecx, 1
call fcn.14000e3d0
test al, al
je 0x140013067
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.14000e000
mov ecx, dword [rbx + 0xf10]
test ecx, ecx
js 0x140013051
mov eax, dword [0x1400cfe78]
and eax, 0xf
cmp eax, dword [0x1400cfe94]
ja 0x140013067
mov r9, qword [rbx + 0xb58]
lea rdx, str.read_from_TUN_TAP
xor r8d, r8d
call fcn.14000e880
mov rbx, qword [rsp + 0x48]
add rsp, 0x20
pop rdi
ret