Function at 0x140043410
Capabilities:
Check if file exists

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xe8
movaps xmmword [rsp + 0xd0], xmm6
mov r13d, r8d
mov r14, rdx
mov r12, rcx
mov rax, qword [0x14016e028]
xor rax, rsp
mov qword [rsp + 0xc8], rax
movaps xmm6, xmmword [0x140147b90]
lea rbp, [rsp + 0x60]
movaps xmmword [rbp + 0x40], xmm6
movaps xmmword [rbp + 0x30], xmm6
movaps xmmword [rbp + 0x20], xmm6
movaps xmmword [rbp + 0x10], xmm6
movaps xmmword [rbp], xmm6
lea rdx, str.DoInitialize
lea r8, str..._.._base_files_file_win.cc
lea rbx, [rsp + 0x40]
mov rcx, rbx
mov r9d, 0x15a
call fcn.140038cd0
mov rcx, rbp
mov rdx, rbx
xor r8d, r8d
call fcn.140043760
mov eax, r13d
and eax, 1
neg eax
and eax, 3
test r13b, 2
mov edx, 1
cmove edx, eax
test r13b, 4
mov ecx, 4
cmovne edx, ecx
test r13b, 8
mov ebp, 2
cmove ebp, edx
test r13b, 0x10
mov eax, 5
cmove eax, ebp
test eax, eax
je 0x14004373a
mov edx, r13d
and edx, 0x40
shl edx, 0x18
test r13b, r13b
cmovns ecx, edx
mov edx, r13d
rol edx, 0x1a
mov edi, r13d
shl edi, 0xb
and edi, 0x20000000
mov esi, r13d
shr esi, 4
and esi, 0x10000
and edx, 0x80000100
or edx, edi
or edx, esi
or edx, ecx
mov ecx, r13d
shr ecx, 8
and ecx, 3
mov r8d, r13d
shr r8d, 0xd
and r8d, 4
or r8d, ecx
xor r8d, 3
mov ebp, r13d
and ebp, 0x400
mov ecx, ebp
shl ecx, 0x14
mov ebx, r13d
shr ebx, 3
and ebx, 0x100
or ebx, ecx
mov ecx, r13d
shr ecx, 0xb
and ecx, 2
or ecx, ebx
mov ebx, r13d
shl ebx, 0xd
and ebx, 0x4000000
or ebx, ecx
mov ecx, r13d
shl ecx, 8
mov edi, ecx
and edi, 0x2000000
or edi, ebx
and ecx, 0x8000000
or ecx, edi
cmp byte [r14 + 0x17], 0
jns 0x140043583
mov r14, qword [r14]
mov dword [rsp + 0x20], eax
mov dword [rsp + 0x28], ecx
mov qword [rsp + 0x30], 0
mov rcx, r14
xor r9d, r9d
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov rbx, rax
cmp qword [r12], rax
je 0x1400435e5
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov r15d, eax
mov rax, qword [r12]
inc rax
cmp rax, 2
jae 0x140043702
mov rax, rbx
inc rax
cmp rax, 2
jb 0x1400435d8
mov qword [r12], rbx
call fcn.14003af20
mov ecx, r15d
call qword [sym.imp.KERNEL32.dll_SetLastError]
mov rbx, qword [r12]
inc rbx
cmp rbx, 2
jb 0x1400436eb
shr ebp, 0xa
mov dword [r12 + 0x24], 0
mov byte [r12 + 0x29], bpl
test r13b, 4
jne 0x1400436d5
test r13b, 0xa
je 0x140043619
mov byte [r12 + 0x28], 1
test byte [0x140170030], 0x19
jne 0x140043658
lea rcx, [rsp + 0x60]
call fcn.14003ce50
mov rcx, qword [rsp + 0xc8]
xor rcx, rsp
call fcn.14007d5a0
movaps xmm6, xmmword [rsp + 0xd0]
add rsp, 0xe8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
movabs rax, 0xaaaaaaaaaaaaaaaa
lea rsi, [rsp + 0x40]
mov qword [rsi + 0x10], rax
movaps xmmword [rsi], xmm6
xorps xmm0, xmm0
movups xmmword [rsp + 0x20], xmm0
mov byte [rsp + 0x30], 0
lea r8, [0x140170030]
lea r9, [0x140152245]
mov rcx, rsi
mov dl, 0x45
call fcn.14003ce30
mov rax, qword [rsi]
test rax, rax
je 0x1400436bc
mov rdx, qword [rsp + 0x48]
lea rcx, [rsp + 0xb0]
mov qword [rcx], 0
mov qword [rcx + 8], rax
mov qword [rcx + 0x10], rdx
call fcn.14003d09e
mov rcx, qword [rsp + 0x50]
test rcx, rcx
je 0x140043622
mov rax, qword [rcx]
call qword [rax + 8]
jmp 0x140043622
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
setne byte [r12 + 0x28]
jmp 0x140043619
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, eax
call fcn.1400aab30
mov dword [r12 + 0x24], eax
jmp 0x140043619
call fcn.14003af20
mov r14, qword [r12]
mov rcx, qword [0x140175fe0]
test rcx, rcx
je 0x14004372c
mov rax, qword [rcx]
mov rdx, r14
call qword [rax]
mov qword [r12], 0
jmp 0x1400435c3
call fcn.1400b2190
mov rcx, qword [0x140175fe0]
jmp 0x140043717
mov ecx, 0x57
call qword [sym.imp.KERNEL32.dll_SetLastError]
mov dword [r12 + 0x24], 0xffffffff
jmp 0x140043619