Function at 0x1400a1230
Capabilities:
Check if file exists

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xc8
mov ebx, r8d
mov qword [rsp + 0x40], rdx
mov rsi, rcx
mov rax, qword [0x140190028]
xor rax, rsp
mov qword [rsp + 0xc0], rax
movabs rax, 0xaaaaaaaaaaaaaaaa
lea r14, [rsp + 0x70]
mov qword [r14 + 0x40], rax
movaps xmm0, xmmword [0x140163e40]
movaps xmmword [r14 + 0x30], xmm0
movaps xmmword [r14 + 0x20], xmm0
movaps xmmword [r14 + 0x10], xmm0
movaps xmmword [r14], xmm0
lea rdx, str.DoInitialize
lea r8, str....._base_files_file_win.cc
lea r15, [rsp + 0x50]
mov rcx, r15
mov r9d, 0x177
call fcn.14003af60
mov rcx, r14
mov rdx, r15
xor r8d, r8d
call fcn.1400406c0
mov eax, ebx
and eax, 1
neg eax
and eax, 3
test bl, 2
mov ecx, 1
cmove ecx, eax
test bl, 4
mov eax, 4
cmovne ecx, eax
test bl, 8
mov edx, 2
cmove edx, ecx
test bl, 0x10
mov r12d, 5
cmove r12d, edx
test r12d, r12d
je 0x1400a1471
mov ecx, ebx
and ecx, 0x40
shl ecx, 0x18
test bl, bl
cmovns eax, ecx
mov ecx, ebx
rol ecx, 0x1a
and ecx, 0x80000100
or ecx, eax
bt ebx, 0x12
jae 0x1400a132d
bt ebx, 0x15
jb 0x1400a156f
or ecx, 0x20000000
mov ebp, ebx
shr ebp, 4
and ebp, 0x10000
or ebp, ecx
mov eax, ebx
shr eax, 8
and eax, 3
mov r14d, ebx
shr r14d, 0xd
and r14d, 4
or r14d, eax
xor r14d, 3
mov r13d, ebx
and r13d, 0x400
mov eax, r13d
shl eax, 0x14
mov ecx, ebx
shr ecx, 3
and ecx, 0x100
or ecx, eax
mov eax, ebx
shr eax, 0xb
and eax, 2
or eax, ecx
mov ecx, ebx
shl ecx, 0xd
and ecx, 0x4000000
or ecx, eax
mov edi, ebx
shl edi, 8
and edi, 0xa000000
or edi, ecx
mov rcx, qword [rsp + 0x40]
cmp byte [rcx + 0x17], 0
jns 0x1400a13a8
mov rax, qword [rsp + 0x40]
mov rcx, qword [rax]
mov dword [rsp + 0x20], r12d
mov dword [rsp + 0x28], edi
mov qword [rsp + 0x30], 0
mov edx, ebp
mov r8d, r14d
xor r9d, r9d
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov r15, rax
cmp qword [rsi], rax
jne 0x1400a14c9
inc r15
cmp r15, 1
ja 0x1400a1421
call fcn.140073680
test al, al
je 0x1400a1421
mov rcx, qword [rsp + 0x40]
cmp byte [rcx + 0x17], 0
jns 0x1400a13f9
mov rax, qword [rsp + 0x40]
mov rcx, qword [rax]
mov dword [rsp + 0x28], edi
mov dword [rsp + 0x20], r12d
mov qword [rsp + 0x30], 0
mov edx, ebp
mov r8d, r14d
xor r9d, r9d
call fcn.140119c90
cmp qword [rsi], rax
jne 0x1400a1505
mov rax, qword [rsi]
inc rax
cmp rax, 2
jb 0x1400a14b7
shr r13d, 0xa
mov dword [rsi + 0x24], 0
mov byte [rsi + 0x29], r13b
test bl, 4
jne 0x1400a1450
test bl, 0xa
je 0x1400a145f
mov byte [rsi + 0x28], 1
jmp 0x1400a145f
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
setne byte [rsi + 0x28]
bt ebx, 0x15
jae 0x1400a1488
mov rcx, qword [rsp + 0x40]
call fcn.1400dd590
jmp 0x1400a1488
mov ecx, 0x57
call qword [sym.imp.KERNEL32.dll_SetLastError]
mov dword [rsi + 0x24], 0xffffffff
call fcn.140118350
lea rcx, [rsp + 0x70]
call fcn.140040900
mov rcx, qword [rsp + 0xc0]
xor rcx, rsp
call fcn.1400a5d70
nop
add rsp, 0xc8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, eax
call fcn.140065b70
mov dword [rsi + 0x24], eax
jmp 0x1400a1488
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, eax
mov rax, qword [rsi]
inc rax
cmp rax, 2
jae 0x1400a153b
mov rax, r15
inc rax
cmp rax, 2
jb 0x1400a14f7
mov qword [rsi], r15
mov r15d, ecx
call fcn.14003af80
mov ecx, r15d
call qword [sym.imp.KERNEL32.dll_SetLastError]
mov r15, qword [rsi]
jmp 0x1400a13d4
mov r14, rax
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebp, eax
mov rax, qword [rsi]
inc rax
cmp rax, 2
jae 0x1400a1559
lea rax, [r14 + 1]
cmp rax, 2
jb 0x1400a152e
mov qword [rsi], r14
call fcn.14003af80
mov ecx, ebp
call qword [sym.imp.KERNEL32.dll_SetLastError]
jmp 0x1400a1421
mov dword [rsp + 0x4c], ecx
call fcn.14003af80
mov rcx, qword [rsi]
call fcn.140036b30
mov ecx, dword [rsp + 0x4c]
mov qword [rsi], 0
jmp 0x1400a14dd
call fcn.14003af80
mov rcx, qword [rsi]
call fcn.140036b30
mov qword [rsi], 0
jmp 0x1400a151c
int3