Function at 0x140087a90
Capabilities:
Check if file exists

Disassembly:
push r15
push r14
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xb0
mov edi, r8d
mov rbx, rdx
mov rsi, rcx
mov rax, qword [0x14033f038]
xor rax, rsp
mov qword [rsp + 0xa8], rax
movabs rax, 0xaaaaaaaaaaaaaaaa
lea r15, [rsp + 0x50]
mov qword [r15 + 0x50], rax
movaps xmm0, xmmword [0x140301d60]
movaps xmmword [r15 + 0x40], xmm0
movaps xmmword [r15 + 0x30], xmm0
movaps xmmword [r15 + 0x20], xmm0
movaps xmmword [r15 + 0x10], xmm0
movaps xmmword [r15], xmm0
lea rdx, str.MapFileRegionToMemory
lea r8, str....._base_filesmemory_mapped_file_win.cc
lea r12, [rsp + 0x30]
mov rcx, r12
mov r9d, 0x3a
call fcn.14004f270
xor r14d, r14d
mov rcx, r15
mov rdx, r12
xor r8d, r8d
call fcn.1400cd290
mov rcx, qword [rsi]
lea rax, [rcx + 1]
cmp rax, 2
jb 0x140087c68
test edi, edi
jne 0x140087c97
mov edi, 2
xor r9d, r9d
mov dword [rsp + 0x20], r14d
mov qword [rsp + 0x28], 0
xor edx, edx
mov r8d, edi
call qword [sym.imp.KERNEL32.dll_CreateFileMappingW]
mov r14, rax
cmp qword [rsi + 0x40], rax
je 0x140087b9d
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebp, eax
mov rax, qword [rsi + 0x40]
inc rax
cmp rax, 2
jae 0x140087d41
mov rax, r14
inc rax
cmp rax, 2
jb 0x140087b91
mov qword [rsi + 0x40], r14
call fcn.1400412c0
mov ecx, ebp
call qword [sym.imp.KERNEL32.dll_SetLastError]
mov r14, qword [rsi + 0x40]
inc r14
cmp r14, 2
jb 0x140087ca9
mov r12, qword [rbx]
mov rax, qword [rbx + 8]
or rax, r12
jne 0x140087cc8
mov rcx, rsi
call fcn.140143310
xor r14d, r14d
test rax, rax
jle 0x140087c68
xor r15d, r15d
xor r8d, r8d
xor edx, edx
mov qword [rsi + 0x38], rax
and edi, 2
add edi, 2
mov rcx, qword [rsi + 0x40]
mov qword [rsp + 0x20], rdx
mov edx, edi
mov r9d, r14d
call qword [sym.imp.KERNEL32.dll_MapViewOfFile]
mov rdi, rax
mov rcx, qword [rsi + 0x30]
mov rax, qword [0x1403428e0]
and rax, rcx
cmp rax, qword [0x1403428c8]
je 0x140087d72
mov rax, qword [0x1403428e0]
and rax, rdi
cmp rax, qword [0x1403428c8]
je 0x140087d7c
mov qword [rsi + 0x30], rdi
test rdi, rdi
je 0x140087ca9
mov rax, qword [0x1403428e0]
mov rdx, rax
and rdx, rdi
mov rbx, rdi
add rbx, r15
mov rcx, qword [0x1403428c8]
cmp rdx, rcx
je 0x140087d89
and rax, rbx
cmp rax, rcx
je 0x140087d9f
mov qword [rsi + 0x30], rbx
mov r14b, 1
lea rcx, [rsp + 0x50]
call fcn.1400cd300
mov rcx, qword [rsp + 0xa8]
xor rcx, rsp
call fcn.140171860
mov eax, r14d
add rsp, 0xb0
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r14
pop r15
ret
cmp edi, 3
jne 0x140087cae
mov rcx, rsi
call fcn.1400e3410
mov r14d, eax
jmp 0x140087c68
xor r14d, r14d
jmp 0x140087c68
cmp edi, 2
jne 0x140087d32
mov r14, qword [rbx + 8]
mov r9, r14
shr r9, 0x20
mov edi, 4
jmp 0x140087b41
call fcn.140087dd0
lea r15, [rax - 1]
test r15, 0xffffffff80000000
jne 0x140087da2
mov rcx, rax
and r15, r12
neg rcx
mov rax, qword [rbx + 8]
xor r9d, r9d
mov rdx, rax
add rdx, r15
setb r9b
mov r8, r9
neg r8
xor r9, r8
setne r9b
xor r14d, r14d
and rcx, r12
js 0x140087c68
test r9b, r9b
jne 0x140087c68
test r8, r8
js 0x140087c68
mov r8, rcx
shr r8, 0x20
mov r14d, ecx
jmp 0x140087bd6
cmp edi, 1
jne 0x140087da5
mov edi, 4
jmp 0x140087b3e
call fcn.1400412c0
mov r15, qword [rsi + 0x40]
mov rcx, qword [0x14035abe0]
test rcx, rcx
je 0x140087dac
mov rax, qword [rcx]
mov rax, qword [rax]
mov rdx, r15
call qword [case.0x140211850.0]
mov qword [rsi + 0x40], 0
jmp 0x140087b7c
call fcn.1401571d0
jmp 0x140087c12
mov rcx, rdi
call fcn.140156f20
jmp 0x140087c29
mov rcx, rdi
mov rdx, r15
call fcn.140052eb0
test al, al
jne 0x140087c61
int3
int3
int3
xor edi, edi
jmp 0x140087b3e
call fcn.1400bf420
mov rcx, qword [0x14035abe0]
jmp 0x140087d56