Function at 0x14006a440
Capabilities:
Check if file exists

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xb8
mov r15d, r8d
mov rdi, rdx
mov rsi, rcx
mov rax, qword [0x140155cc0]
xor rax, rsp
mov qword [rsp + 0xb0], rax
movaps xmm0, xmmword [section..rdata]
movaps xmmword [rsp + 0xa0], xmm0
movaps xmmword [rsp + 0x90], xmm0
movaps xmmword [rsp + 0x80], xmm0
movaps xmmword [rsp + 0x70], xmm0
lea rdx, str.DoInitialize
lea r8, str....._base_files_file_win.cc
lea r14, [rsp + 0x50]
mov rcx, r14
mov r9d, 0x175
call fcn.140054de0
lea rcx, [rsp + 0x70]
mov rdx, r14
xor r8d, r8d
call fcn.140069250
mov eax, r15d
and eax, 1
neg eax
and eax, 3
test r15b, 2
mov ecx, 1
cmove ecx, eax
test r15b, 4
mov ebp, 4
cmovne ecx, ebp
test r15b, 8
mov eax, 2
cmove eax, ecx
test r15b, 0x10
mov r13d, 5
cmove r13d, eax
test r13d, r13d
je 0x14006a6e4
mov eax, r15d
and eax, 0x40
shl eax, 0x18
test r15b, r15b
cmovns ebp, eax
mov ebx, r15d
rol ebx, 0x1a
and ebx, 0x80000100
or ebx, ebp
test r15d, 0x40000
je 0x14006a544
mov ebp, r15d
and ebp, 0x200000
jne 0x14006a72f
or ebx, 0x20000000
mov edx, r15d
shr edx, 4
and edx, 0x10000
or edx, ebx
mov eax, r15d
shr eax, 8
and eax, 3
mov r8d, r15d
shr r8d, 0xd
and r8d, 4
or r8d, eax
xor r8d, 3
mov ebx, r15d
and ebx, 0x400
mov eax, ebx
shl eax, 0x14
mov ecx, r15d
shr ecx, 3
and ecx, 0x100
or ecx, eax
mov eax, r15d
shr eax, 0xb
and eax, 2
or eax, ecx
mov ecx, r15d
shl ecx, 0xd
and ecx, 0x4000000
or ecx, eax
mov eax, r15d
shl eax, 8
and eax, 0xa000000
or eax, ecx
cmp byte [rdi + 0x17], 0
mov rcx, rdi
jns 0x14006a5bb
mov rcx, qword [rdi]
mov dword [rsp + 0x20], r13d
mov dword [rsp + 0x28], eax
mov qword [rsp + 0x30], 0
xor r9d, r9d
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov r14, rax
cmp qword [rsi], rax
je 0x14006a611
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebp, eax
mov rax, qword [rsi]
inc rax
cmp rax, 2
jae 0x14006a68a
mov rax, r14
inc rax
cmp rax, 2
jae 0x14006a6ae
mov ecx, ebp
call qword [sym.imp.KERNEL32.dll_SetLastError]
mov r14, qword [rsi]
inc r14
cmp r14, 2
jae 0x14006a662
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, eax
call fcn.14006a390
mov dword [rsi + 0x24], eax
lea rcx, [rsp + 0x70]
call fcn.1400692f0
mov rcx, qword [rsp + 0xb0]
xor rcx, rsp
cmp rcx, qword [0x140155cc0]
jne 0x14006a65c
add rsp, 0xb8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
call fcn.1400e0180
int3
shr ebx, 0xa
mov dword [rsi + 0x24], 0
mov byte [rsi + 0x29], bl
test r15b, 4
jne 0x14006a6bb
test r15b, 0xa
je 0x14006a67f
mov byte [rsi + 0x28], 1
test r15d, 0x200000
je 0x14006a62a
jmp 0x14006a6d7
call fcn.140054e00
mov rcx, qword [rsi]
call fcn.140066da0
mov qword [rsi], 0
mov rax, r14
inc rax
cmp rax, 2
jb 0x14006a606
mov qword [rsi], r14
call fcn.140054e00
jmp 0x14006a606
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
setne byte [rsi + 0x28]
test r15d, 0x200000
je 0x14006a62a
mov rcx, rdi
call fcn.140048850
jmp 0x14006a62a
lea rdx, str.DoInitialize
lea r8, str....._base_files_file_win.cc
lea r14, [rsp + 0x50]
mov rcx, r14
mov r9d, 0x193
call fcn.140054de0
lea rdx, str.disposition
lea rbx, [rsp + 0x48]
mov rcx, rbx
mov r8d, 0xffffffff
mov r9, r14
call fcn.14005b640
mov rcx, rbx
call fcn.14005b960
jmp 0x14006a509
xor ecx, ecx
call fcn.14005afd0
mov r14, rax
mov ecx, ebp
call fcn.14005afd0
lea rcx, str.flags__FLAG_WIN_NO_EXECUTE__0U
mov rdx, rax
mov r8, r14
call fcn.14005b340
test rax, rax
je 0x14006a53e
mov r14, rax
lea rdx, str.DoInitialize
lea r8, str....._base_files_file_win.cc
lea rbp, [rsp + 0x50]
mov rcx, rbp
mov r9d, 0x1a3
call fcn.140054de0
lea r12, [rsp + 0x40]
mov rcx, r12
mov rdx, r14
mov r8d, 0xffffffff
mov r9, rbp
call fcn.14005b6f0
mov rcx, r12
call fcn.14005b960
jmp 0x14006a53e