Function at 0x14004d2b0
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 rdi, rdx
mov rsi, rcx
mov rax, qword [0x140105c88]
xor rax, rsp
mov qword [rsp + 0xc0], rax
movabs r13, 0xaaaaaaaaaaaaaaaa
mov qword [rsp + 0xb0], r13
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, 0x173
call fcn.1400322c0
lea rcx, [rsp + 0x70]
mov rdx, r14
xor r8d, r8d
call fcn.1400429f0
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 r15d, 5
cmove r15d, edx
test r15d, r15d
je 0x14004d459
mov ecx, ebx
and ecx, 0x40
shl ecx, 0x18
test bl, bl
cmovns eax, ecx
mov r12d, ebx
rol r12d, 0x1a
and r12d, 0x80000100
or r12d, eax
test ebx, 0x40000
je 0x14004d3e6
mov qword [rsp + 0x50], r13
mov ebp, ebx
and ebp, 0x200000
jne 0x14004d59f
xor eax, eax
mov qword [rsp + 0x50], rax
test rax, rax
je 0x14004d3df
mov rax, qword [rsp + 0x50]
mov qword [rsp + 0x40], rax
lea rcx, [rsp + 0x40]
call fcn.140038640
or r12d, 0x20000000
mov edx, ebx
shr edx, 4
and edx, 0x10000
or edx, r12d
mov eax, ebx
shr eax, 8
and eax, 3
mov r8d, ebx
shr r8d, 0xd
and r8d, 4
or r8d, eax
xor r8d, 3
mov r12d, ebx
and r12d, 0x400
mov eax, r12d
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 eax, ebx
shl eax, 8
and eax, 0xa000000
or eax, ecx
test byte [rdi], 1
je 0x14004d4a9
mov rcx, qword [rdi + 0x10]
jmp 0x14004d4ad
mov ecx, 0x57
call qword [sym.imp.KERNEL32.dll_SetLastError]
mov dword [rsi + 0x24], 0xffffffff
lea rdx, str.DoInitialize
lea r8, str....._base_files_file_win.cc
lea rsi, [rsp + 0x50]
mov rcx, rsi
mov r9d, 0x194
call fcn.1400322c0
lea rdi, [rsp + 0x48]
mov rcx, rdi
mov rdx, rsi
call fcn.140038670
mov rcx, rdi
call fcn.140038640
jmp 0x14004d570
lea rcx, [rdi + 2]
mov dword [rsp + 0x20], r15d
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 0x14004d517
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebp, eax
mov rax, qword [rsi]
inc rax
cmp rax, 2
jb 0x14004d4f8
call fcn.1400322e0
mov rcx, qword [rsi]
call fcn.140041f60
mov qword [rsi], 0
mov rax, r14
inc rax
cmp rax, 2
jb 0x14004d50c
mov qword [rsi], r14
call fcn.1400322e0
mov ecx, ebp
call qword [sym.imp.KERNEL32.dll_SetLastError]
mov r14, qword [rsi]
inc r14
cmp r14, 2
jae 0x14004d532
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, eax
call fcn.14004d1e0
mov dword [rsi + 0x24], eax
jmp 0x14004d570
shr r12d, 0xa
mov dword [rsi + 0x24], 0
mov byte [rsi + 0x29], r12b
test bl, 4
jne 0x14004d551
test bl, 0xa
je 0x14004d560
mov byte [rsi + 0x28], 1
jmp 0x14004d560
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
setne byte [rsi + 0x28]
test ebx, 0x200000
je 0x14004d570
mov rcx, rdi
call fcn.14002bc70
lea rcx, [rsp + 0x70]
call fcn.140042a50
mov rcx, qword [rsp + 0xc0]
xor rcx, rsp
call fcn.1400a5060
nop
add rsp, 0xc8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
xor ecx, ecx
call fcn.140042fa0
mov r14, rax
mov ecx, ebp
call fcn.140042fa0
mov qword [rsp + 0x28], r14
mov qword [rsp + 0x20], rax
lea rdx, str....._base_files_file_win.cc
lea r9, str.flags__FLAG_WIN_NO_EXECUTE__0U
xor ecx, ecx
mov r8d, 0x1a6
call fcn.1400386e0
jmp 0x14004d3c1