Function at 0x18000c770
Capabilities:
Check if file exists

Disassembly:
mov rax, rsp
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x1c0
mov qword [rsp + 0x70], 0xfffffffffffffffe
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rsi
mov rax, qword [0x1801485f0]
xor rax, rsp
mov qword [rsp + 0x1b8], rax
mov r14, rcx
mov qword [rsp + 0x40], rcx
mov qword [rsp + 0x58], rcx
xor edi, edi
mov dword [rsp + 0x20], edi
lea rcx, [rsp + 0x78]
call fcn.1800036e0
mov rbx, rax
call fcn.1800146f0
mov rcx, rax
lea rdx, [rsp + 0x138]
call fcn.18002b560
nop
mov r8, rbx
mov rdx, rax
lea rcx, [rsp + 0x118]
call fcn.180018ea0
nop
cmp qword [rsp + 0x150], 8
jb 0x18000c808
mov rcx, qword [rsp + 0x138]
call fcn.1800b5700
mov qword [rsp + 0x150], 7
mov qword [rsp + 0x148], rdi
mov word [rsp + 0x138], di
cmp qword [rsp + 0x90], 8
jb 0x18000c839
mov rcx, qword [rsp + 0x78]
call fcn.1800b5700
mov qword [rsp + 0x90], 7
mov qword [rsp + 0x88], rdi
mov word [rsp + 0x78], di
lea rcx, [rsp + 0x138]
call fcn.180005010
nop
mov r8, rax
lea rdx, [rsp + 0x118]
lea rcx, [rsp + 0xd8]
call fcn.1800193e0
nop
cmp qword [rsp + 0x150], 8
jb 0x18000c891
mov rcx, qword [rsp + 0x138]
call fcn.1800b5700
mov qword [rsp + 0x150], 7
mov qword [rsp + 0x148], rdi
mov word [rsp + 0x138], di
cmp qword [rsp + 0xe8], 0
je 0x18000d2ea
lea rcx, [rsp + 0xd8]
cmp qword [rsp + 0xf0], 8
cmovae rcx, qword [rsp + 0xd8]
call qword [sym.imp.SHLWAPI.dll_PathFileExistsW]
cmp eax, 1
sete al
test al, al
je 0x18000d2ea
mov qword [rsp + 0xc8], rdi
mov qword [rsp + 0xd0], rdi
mov qword [rsp + 0xd0], 0xf
mov qword [rsp + 0xc8], rdi
mov byte [rsp + 0xb8], 0
mov dword [rsp + 0x24], edi
lea r9, [rsp + 0x24]
xor r8d, r8d
xor edx, edx
lea rcx, [rsp + 0xd8]
call fcn.180025870
mov esi, dword [rsp + 0x24]
test esi, esi
jne 0x18000ca13
mov qword [r14 + 0x10], rdi
mov qword [r14 + 0x18], rdi
mov qword [r14 + 0x18], 7
mov qword [r14 + 0x10], rdi
mov word [r14], di
xor r8d, r8d
lea rdx, [0x180100a4c]
mov rcx, r14
call fcn.1800166f0
mov dword [rsp + 0x20], 1
cmp qword [rsp + 0xd0], 0x10
jb 0x18000c987
mov rcx, qword [rsp + 0xb8]
call fcn.1800b5700
mov qword [rsp + 0xd0], 0xf
mov qword [rsp + 0xc8], rdi
mov byte [rsp + 0xb8], 0
cmp qword [rsp + 0xf0], 8
jb 0x18000c9bb
mov rcx, qword [rsp + 0xd8]
call fcn.1800b5700
mov qword [rsp + 0xf0], 7
mov qword [rsp + 0xe8], rdi
mov word [rsp + 0xd8], di
cmp qword [rsp + 0x130], 8
jb 0x18000c9ef
mov rcx, qword [rsp + 0x118]
call fcn.1800b5700
mov qword [rsp + 0x130], 7
mov qword [rsp + 0x128], rdi
mov word [rsp + 0x118], di
mov rax, r14
jmp 0x18000d37f
mov rcx, rsi
call fcn.1800b1b34
mov rbx, rax
lea r9, [rsp + 0x24]
mov r8d, esi
mov rdx, rax
lea rcx, [rsp + 0xd8]
call fcn.180025870
mov qword [rsp + 0x28], rdi
mov qword [rsp + 0x30], rdi
mov qword [rsp + 0x38], rdi
mov qword [rsp + 0xa8], rdi
mov qword [rsp + 0xb0], rdi
mov qword [rsp + 0xb0], 0xf
mov qword [rsp + 0xa8], rdi
mov byte [rsp + 0x98], 0
mov r8d, 1
lea rdx, [0x180100910]
lea rcx, [rsp + 0x98]
call fcn.180015d00
nop
mov r8d, dword [rsp + 0x24]
mov qword [rsp + 0x188], rdi
mov qword [rsp + 0x190], rdi
mov qword [rsp + 0x190], 0xf
mov qword [rsp + 0x188], rdi
mov byte [rsp + 0x178], 0
mov rdx, rbx
lea rcx, [rsp + 0x178]
call fcn.180015d00
nop
mov r9b, 1
lea r8, [rsp + 0x28]
lea rdx, [rsp + 0x98]
lea rcx, [rsp + 0x178]
call fcn.18001bd50
nop
cmp qword [rsp + 0x190], 0x10
jb 0x18000cb04
mov rcx, qword [rsp + 0x178]
call fcn.1800b5700
mov qword [rsp + 0x190], 0xf
mov qword [rsp + 0x188], rdi
mov byte [rsp + 0x178], 0
cmp qword [rsp + 0xb0], 0x10
jb 0x18000cb38
mov rcx, qword [rsp + 0x98]
call fcn.1800b5700
mov qword [rsp + 0xb0], 0xf
mov qword [rsp + 0xa8], rdi
mov byte [rsp + 0x98], 0
lea rcx, [rsp + 0x138]
call fcn.180009010
nop
mov rbx, qword [rsp + 0x28]
mov qword [rsp + 0x60], rbx
mov rsi, qword [rsp + 0x30]
cmp rbx, rsi
je 0x18000ce6f
mov qword [rsp + 0x108], rdi
mov qword [rsp + 0x110], rdi
mov qword [rsp + 0x110], 0xf
mov qword [rsp + 0x108], rdi
mov byte [rsp + 0xf8], 0
or r9, 0xffffffffffffffff
xor r8d, r8d
mov rdx, rbx
lea rcx, [rsp + 0xf8]
call fcn.180015bd0
nop
mov r13, qword [rsp + 0x148]
lea r12, [rsp + 0x138]
cmp qword [rsp + 0x150], 0x10
cmovae r12, qword [rsp + 0x138]
test r13, r13
jne 0x18000cbf2
mov rsi, rdi
mov qword [rsp + 0x48], rdi
jmp 0x18000cca1
mov r14, qword [rsp + 0x108]
test r14, r14
je 0x18000ce1f
mov qword [rsp + 0x50], r14
cmp r13, r14
ja 0x18000ce1f
sub r14, r13
inc r14
mov qword [rsp + 0x50], r14
lea r15, [rsp + 0xf8]
cmp qword [rsp + 0x110], 0x10
cmovae r15, qword [rsp + 0xf8]
test r14, r14
je 0x18000ce1f
movsx edx, byte [r12]
mov r8, r14
mov rcx, r15
call fcn.1800b766c
mov rsi, rax
test rax, rax
je 0x18000ce1f
mov r8, r13
mov rdx, r12
mov rcx, rax
call fcn.1800b8b30
test eax, eax
jne 0x18000ce08
lea rcx, [rsp + 0xf8]
cmp qword [rsp + 0x110], 0x10
cmovae rcx, qword [rsp + 0xf8]
sub rsi, rcx
mov qword [rsp + 0x48], rsi
cmp esi, 0xffffffff
je 0x18000ce28
mov r14, qword [rsp + 0x40]
mov ebx, dword [rsp + 0x148]
add ebx, esi
mov qword [rsp + 0x88], rdi
mov qword [rsp + 0x90], rdi
mov qword [rsp + 0x90], 0xf
mov qword [rsp + 0x88], rdi
mov byte [rsp + 0x78], 0
mov r8d, 1
lea rdx, [0x180100948]
lea rcx, [rsp + 0x78]
call fcn.180015d00
nop
movsxd r8, ebx
mov r9, qword [rsp + 0x108]
sub r9, qword [rsp + 0x88]
sub r9, r8
lea rdx, [rsp + 0x198]
lea rcx, [rsp + 0xf8]
call fcn.180012d80
mov rbx, rax
lea rax, [rsp + 0xb8]
cmp rax, rbx
je 0x18000cd6b
cmp qword [rsp + 0xd0], 0x10
jb 0x18000cd3e
mov rcx, qword [rsp + 0xb8]
call fcn.1800b5700
mov qword [rsp + 0xd0], 0xf
mov qword [rsp + 0xc8], rdi
mov byte [rsp + 0xb8], 0
mov rdx, rbx
lea rcx, [rsp + 0xb8]
call fcn.180015910
nop
cmp qword [rsp + 0x1b0], 0x10
jb 0x18000cd83
mov rcx, qword [rsp + 0x198]
call fcn.1800b5700
mov qword [rsp + 0x1b0], 0xf
mov qword [rsp + 0x1a8], rdi
mov byte [rsp + 0x198], 0
cmp qword [rsp + 0x90], 0x10
jb 0x18000cdb4
mov rcx, qword [rsp + 0x78]
call fcn.1800b5700
mov qword [rsp + 0x90], 0xf
mov qword [rsp + 0x88], rdi
mov byte [rsp + 0x78], 0
cmp qword [rsp + 0x110], 0x10
jb 0x18000cde5
mov rcx, qword [rsp + 0xf8]
call fcn.1800b5700
mov qword [rsp + 0x110], 0xf
mov qword [rsp + 0x108], rdi
mov byte [rsp + 0xf8], 0
mov rsi, qword [rsp + 0x30]
jmp 0x18000ce6f
sub r15, rsi
dec r15
add r14, r15
mov qword [rsp + 0x50], r14
lea r15, [rsi + 1]
jmp 0x18000cc36
mov qword [rsp + 0x48], 0xffffffffffffffff
cmp qword [rsp + 0x110], 0x10
jb 0x18000ce40
mov rcx, qword [rsp + 0xf8]
call fcn.1800b5700
mov qword [rsp + 0x110], 0xf
mov qword [rsp + 0x108], rdi
mov byte [rsp + 0xf8], 0
add rbx, 0x20
mov qword [rsp + 0x60], rbx
mov r14, qword [rsp + 0x40]
jmp 0x18000cb6c
cmp qword [rsp + 0x150], 0x10
jb 0x18000ce87
mov rcx, qword [rsp + 0x138]
call fcn.1800b5700
mov qword [rsp + 0x150], 0xf
mov qword [rsp + 0x148], rdi
mov byte [rsp + 0x138], 0
mov r15, qword [rsp + 0x28]
test r15, r15
je 0x18000cf04
mov rbx, r15
mov qword [rsp + 0x68], rbx
cmp rbx, rsi
je 0x18000ceed
cmp qword [rbx + 0x18], 0x10
jb 0x18000cec9
mov rcx, qword [rbx]
call fcn.1800b5700
mov qword [rbx + 0x18], 0xf
mov qword [rbx + 0x10], rdi
cmp qword [rbx + 0x18], 0x10
jb 0x18000cee1
mov rax, qword [rbx]
jmp 0x18000cee4
mov rax, rbx
mov byte [rax], 0
add rbx, 0x20
jmp 0x18000ceb0
mov rcx, r15
call fcn.1800b5700
mov qword [rsp + 0x28], rdi
mov qword [rsp + 0x30], rdi
mov qword [rsp + 0x38], rdi
jmp 0x18000cf0d
cmp qword [rsp + 0xc8], 0
jne 0x18000cf78
mov qword [r14 + 0x18], 7
mov qword [r14 + 0x10], rdi
mov word [r14], di
xor r8d, r8d
lea rdx, [0x180100a4c]
mov rcx, r14
call fcn.1800166f0
or dword [rsp + 0x20], 1
cmp qword [rsp + 0xd0], 0x10
jb 0x18000cf57
mov rcx, qword [rsp + 0xb8]
call fcn.1800b5700
mov qword [rsp + 0xd0], 0xf
mov qword [rsp + 0xc8], rdi
mov byte [rsp + 0xb8], 0
jmp 0x18000d314
lea rdx, [rsp + 0xb8]
lea rcx, [rsp + 0x158]
call fcn.18001b8b0
nop
mov qword [rsp + 0xa8], rdi
mov qword [rsp + 0xb0], rdi
mov qword [rsp + 0xb0], 7
mov qword [rsp + 0xa8], rdi
mov word [rsp + 0x98], di
mov r8d, 1
lea rdx, [0x180100a48]
lea rcx, [rsp + 0x98]
call fcn.1800166f0
nop
mov qword [rsp + 0x88], rdi
mov qword [rsp + 0x90], rdi
mov qword [rsp + 0x90], 7
mov qword [rsp + 0x88], rdi
mov word [rsp + 0x78], di
mov r8d, 1
lea rdx, [0x18010094c]
lea rcx, [rsp + 0x78]
call fcn.1800166f0
nop
lea r8, [rsp + 0x98]
lea rdx, [rsp + 0x78]
lea rcx, [rsp + 0x158]
call fcn.18001ce30
nop
cmp qword [rsp + 0x90], 8
jb 0x18000d046
mov rcx, qword [rsp + 0x78]
call fcn.1800b5700
mov qword [rsp + 0x90], 7
mov qword [rsp + 0x88], rdi
mov word [rsp + 0x78], di
cmp qword [rsp + 0xb0], 8
jb 0x18000d077
mov rcx, qword [rsp + 0x98]
call fcn.1800b5700
mov qword [rsp + 0xb0], 7
mov qword [rsp + 0xa8], rdi
mov word [rsp + 0x98], di
lea r8, [rsp + 0x158]
lea rdx, [rsp + 0x118]
lea rcx, [rsp + 0x198]
call fcn.1800193e0
mov rbx, rax
lea rax, [rsp + 0x158]
cmp rax, rbx
je 0x18000d105
cmp qword [rsp + 0x170], 8
jb 0x18000d0d8
mov rcx, qword [rsp + 0x158]
call fcn.1800b5700
mov qword [rsp + 0x170], 7
mov qword [rsp + 0x168], rdi
mov word [rsp + 0x158], di
mov rdx, rbx
lea rcx, [rsp + 0x158]
call fcn.180016260
nop
cmp qword [rsp + 0x1b0], 8
jb 0x18000d11d
mov rcx, qword [rsp + 0x198]
call fcn.1800b5700
mov qword [rsp + 0x1b0], 7
mov qword [rsp + 0x1a8], rdi
mov word [rsp + 0x198], di
cmp qword [rsp + 0x168], 0
je 0x18000d1cb
lea rcx, [rsp + 0x158]
cmp qword [rsp + 0x170], 8
cmovae rcx, qword [rsp + 0x158]
call qword [sym.imp.SHLWAPI.dll_PathFileExistsW]
cmp eax, 1
sete al
test al, al
je 0x18000d1cb
mov qword [rsp + 0xa8], rdi
mov qword [rsp + 0xb0], rdi
mov qword [rsp + 0xb0], 7
mov qword [rsp + 0xa8], rdi
mov word [rsp + 0x98], di
or r9, 0xffffffffffffffff
xor r8d, r8d
lea rdx, [rsp + 0x158]
lea rcx, [rsp + 0x98]
call fcn.1800165a0
lea rdx, [rsp + 0x98]
mov ebx, dword [rsp + 0x20]
or ebx, 2
jmp 0x18000d214
mov qword [rsp + 0x88], rdi
mov qword [rsp + 0x90], rdi
mov qword [rsp + 0x90], 7
mov qword [rsp + 0x88], rdi
mov word [rsp + 0x78], di
xor r8d, r8d
lea rdx, [0x180100a4c]
lea rcx, [rsp + 0x78]
call fcn.1800166f0
lea rdx, [rsp + 0x78]
mov ebx, dword [rsp + 0x20]
or ebx, 4
mov dword [rsp + 0x20], ebx
mov qword [r14 + 0x18], 7
mov qword [r14 + 0x10], rdi
mov word [r14], di
mov rcx, r14
call fcn.180016260
or ebx, 1
mov dword [rsp + 0x20], ebx
test bl, 4
je 0x18000d271
and ebx, 0xfffffffb
mov dword [rsp + 0x20], ebx
cmp qword [rsp + 0x90], 8
jb 0x18000d258
mov rcx, qword [rsp + 0x78]
call fcn.1800b5700
mov qword [rsp + 0x90], 7
mov qword [rsp + 0x88], rdi
mov word [rsp + 0x78], di
test bl, 2
je 0x18000d2b1
and ebx, 0xfffffffd
mov dword [rsp + 0x20], ebx
cmp qword [rsp + 0xb0], 8
jb 0x18000d295
mov rcx, qword [rsp + 0x98]
call fcn.1800b5700
mov qword [rsp + 0xb0], 7
mov qword [rsp + 0xa8], rdi
mov word [rsp + 0x98], di
cmp qword [rsp + 0x170], 8
jb 0x18000d2c9
mov rcx, qword [rsp + 0x158]
call fcn.1800b5700
mov qword [rsp + 0x170], 7
mov qword [rsp + 0x168], rdi
mov word [rsp + 0x158], di
jmp 0x18000cf3f
mov qword [r14 + 0x18], 7
mov qword [r14 + 0x10], rdi
mov word [r14], di
xor r8d, r8d
lea rdx, [0x180100a4c]
mov rcx, r14
call fcn.1800166f0
mov dword [rsp + 0x20], 1
cmp qword [rsp + 0xf0], 8
jb 0x18000d32c
mov rcx, qword [rsp + 0xd8]
call fcn.1800b5700
mov qword [rsp + 0xf0], 7
mov qword [rsp + 0xe8], rdi
mov word [rsp + 0xd8], di
cmp qword [rsp + 0x130], 8
jb 0x18000d360
mov rcx, qword [rsp + 0x118]
call fcn.1800b5700
mov qword [rsp + 0x130], 7
mov qword [rsp + 0x128], rdi
mov word [rsp + 0x118], di
mov rax, r14
mov rcx, qword [rsp + 0x1b8]
xor rcx, rsp
call fcn.1800b6c40
lea r11, [rsp + 0x1c0]
mov rbx, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret