Function at 0x1800356b0
Capabilities:
Check if file exists

Disassembly:
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x1780]
mov eax, 0x1880
call fcn.1800b8ad0
sub rsp, rax
mov qword [rsp + 0x28], 0xfffffffffffffffe
mov qword [rsp + 0x18b0], rbx
mov qword [rsp + 0x18c0], rsi
mov qword [rsp + 0x18c8], rdi
mov rax, qword [0x1801485f0]
xor rax, rsp
mov qword [rbp + 0x1770], rax
mov r13, rdx
xor r15d, r15d
or r14, 0xffffffffffffffff
cmp byte [rcx], r15b
jne 0x18003586d
mov qword [rsp + 0x40], r15
mov qword [rsp + 0x48], r15
mov qword [rsp + 0x48], 0xf
mov qword [rsp + 0x40], r15
mov byte [rsp + 0x30], r15b
lea rdx, [rsp + 0x30]
call fcn.180035690
lea rcx, [rsp + 0x50]
call fcn.180034180
mov r15, rax
mov r12, qword [rax + 0x10]
cmp qword [rax + 0x18], 0x10
jb 0x180035756
mov r15, qword [rax]
test r12, r12
jne 0x180035766
xor r15d, r15d
mov ebx, r15d
jmp 0x1800357e9
mov rdi, qword [rsp + 0x40]
test rdi, rdi
je 0x1800357e3
cmp r12, rdi
ja 0x1800357e3
sub rdi, r12
inc rdi
lea rsi, [rsp + 0x30]
cmp qword [rsp + 0x48], 0x10
cmovae rsi, qword [rsp + 0x30]
nop dword [rax]
test rdi, rdi
je 0x1800357e3
movsx edx, byte [r15]
mov r8, rdi
mov rcx, rsi
call fcn.1800b766c
mov rbx, rax
test rax, rax
je 0x1800357e3
mov r8, r12
mov rdx, r15
mov rcx, rax
call fcn.1800b8b30
test eax, eax
je 0x1800357cd
sub rsi, rbx
dec rsi
add rdi, rsi
lea rsi, [rbx + 1]
jmp 0x180035790
lea rax, [rsp + 0x30]
cmp qword [rsp + 0x48], 0x10
cmovae rax, qword [rsp + 0x30]
sub rbx, rax
jmp 0x1800357e6
mov rbx, r14
xor r15d, r15d
cmp rbx, 0xffffffffffffffff
sete bl
cmp qword [rsp + 0x68], 0x10
jb 0x180035802
mov rcx, qword [rsp + 0x50]
call fcn.1800b5700
mov qword [rsp + 0x68], 0xf
mov qword [rsp + 0x60], r15
mov byte [rsp + 0x50], 0
test bl, bl
je 0x180035848
cmp qword [rsp + 0x48], 0x10
jb 0x18003582b
mov rcx, qword [rsp + 0x30]
call fcn.1800b5700
mov qword [rsp + 0x48], 0xf
mov qword [rsp + 0x40], r15
mov byte [rsp + 0x30], 0
mov eax, 1
jmp 0x180035c62
cmp qword [rsp + 0x48], 0x10
jb 0x18003585a
mov rcx, qword [rsp + 0x30]
call fcn.1800b5700
mov qword [rsp + 0x48], 0xf
mov qword [rsp + 0x40], r15
mov byte [rsp + 0x30], 0
mov word [rbp + 0x560], r15w
xor edx, edx
mov r8d, 0x206
lea rcx, [rbp + 0x562]
call fcn.1800b6c70
lea rdx, [rbp + 0x560]
call fcn.180034fc0
test al, al
jne 0x1800358a3
mov eax, 2
jmp 0x180035c62
mov byte [rbp + 0x50], 0
xor edx, edx
mov r8d, 0xff
lea rcx, [rbp + 0x51]
call fcn.1800b6c70
lea rcx, [rsp + 0x50]
call fcn.180033990
nop
cmp qword [r13 + 0x18], 0x10
jb 0x1800358ce
mov r13, qword [r13]
cmp qword [rax + 0x18], 0x10
jb 0x1800358d8
mov rax, qword [rax]
mov r8, r13
mov rdx, rax
lea rcx, [rbp + 0x50]
call fcn.1800b9180
nop
cmp qword [rsp + 0x68], 0x10
jb 0x1800358fa
mov rcx, qword [rsp + 0x50]
call fcn.1800b5700
mov qword [rsp + 0x68], 0xf
mov qword [rsp + 0x60], r15
mov byte [rsp + 0x50], 0
xor eax, eax
mov qword [rbp + 1], rax
mov dword [rbp + 9], eax
mov word [rbp + 0xd], ax
mov byte [rbp + 0xf], al
lea rax, [rbp + 0x50]
mov dword [rbp], eax
lea rax, [rbp + 0x50]
nop dword [rax + rax]
inc r14
cmp byte [rax + r14], 0
jne 0x180035930
mov dword [rbp + 4], r14d
mov byte [rbp + 0x460], 0
xor edx, edx
mov r8d, 0xff
lea rcx, [rbp + 0x461]
call fcn.1800b6c70
xor eax, eax
mov qword [rbp + 0x31], rax
mov qword [rbp + 0x39], rax
mov qword [rbp + 0x41], rax
mov dword [rbp + 0x49], eax
mov word [rbp + 0x4d], ax
mov byte [rbp + 0x4f], al
lea rax, [rbp + 0x460]
mov dword [rbp + 0x30], eax
mov dword [rbp + 0x34], r15d
mov dword [rbp + 0x44], 0xf
mov byte [rbp + 0x770], 0
xor edx, edx
mov r8d, 0xfff
lea rcx, [rbp + 0x771]
call fcn.1800b6c70
mov dword [rsp + 0x20], r15d
lea r8, [rsp + 0x20]
lea rdx, [rbp + 0x770]
call fcn.1800342f0
test al, al
je 0x18003583e
xor eax, eax
mov qword [rbp - 0xf], rax
mov dword [rbp - 7], eax
mov word [rbp - 3], ax
mov byte [rbp - 1], al
lea rax, [rbp + 0x770]
mov dword [rbp - 0x10], eax
mov eax, dword [rsp + 0x20]
mov dword [rbp - 0xc], eax
mov byte [rbp + 0x150], 0
xor edx, edx
mov r8d, 0x103
lea rcx, [rbp + 0x151]
call fcn.1800b6c70
lea rcx, [rsp + 0x50]
call fcn.180033830
nop
cmp qword [rax + 0x18], 0x10
jb 0x180035a10
mov rax, qword [rax]
mov r8, rax
lea rdx, [0x180100c50]
lea rcx, [rbp + 0x150]
call fcn.1800b9180
nop
cmp qword [rsp + 0x68], 0x10
jb 0x180035a39
mov rcx, qword [rsp + 0x50]
call fcn.1800b5700
mov qword [rsp + 0x68], 0xf
mov qword [rsp + 0x60], r15
mov byte [rsp + 0x50], 0
lea r9, [rbp + 0x30]
lea r8, [rbp - 0x10]
xor edx, edx
lea rcx, [rbp + 0x150]
call fcn.180034df0
mov byte [rbp + 0x260], 0
xor edx, edx
mov r8d, 0xff
lea rcx, [rbp + 0x261]
call fcn.1800b6c70
movsxd rax, dword [rbp + 0x30]
movups xmm0, xmmword [rax]
movaps xmmword [rbp + 0x260], xmm0
mov byte [rbp + 0x360], 0
xor edx, edx
mov r8d, 0xff
lea rcx, [rbp + 0x361]
call fcn.1800b6c70
xor eax, eax
mov qword [rbp + 0x11], rax
mov qword [rbp + 0x19], rax
mov qword [rbp + 0x21], rax
mov dword [rbp + 0x29], eax
mov word [rbp + 0x2d], ax
mov byte [rbp + 0x2f], al
lea rax, [rbp + 0x360]
mov dword [rbp + 0x10], eax
mov dword [rbp + 0x14], r15d
mov dword [rbp + 0x24], 0xf
lea r9, [rbp + 0x10]
lea r8, [rbp]
mov dl, 1
lea rcx, [rbp + 0x260]
call fcn.180034df0
movsxd rdx, dword [rbp + 0x20]
movsxd rcx, dword [rbp + 0x10]
call fcn.1800351b0
test al, al
je 0x18003583e
lea rcx, [rbp - 0x30]
call fcn.180033710
mov rdi, rax
lea rcx, [rbp - 0x70]
call fcn.180033590
mov rbx, rax
mov esi, 1
mov edx, esi
lea rcx, [rsp + 0x30]
call fcn.1800096d0
nop
mov r8, rbx
mov rdx, rax
lea rcx, [rsp + 0x50]
call fcn.180018ea0
nop
mov r8, rdi
mov rdx, rax
lea rcx, [rsp + 0x70]
call fcn.180018ea0
nop
cmp qword [rsp + 0x68], 8
jb 0x180035b5c
mov rcx, qword [rsp + 0x50]
call fcn.1800b5700
mov qword [rsp + 0x68], 7
mov qword [rsp + 0x60], r15
mov word [rsp + 0x50], r15w
cmp qword [rsp + 0x48], 8
jb 0x180035b82
mov rcx, qword [rsp + 0x30]
call fcn.1800b5700
mov qword [rsp + 0x48], 7
mov qword [rsp + 0x40], r15
mov word [rsp + 0x30], r15w
cmp qword [rbp - 0x58], 8
jb 0x180035ba6
mov rcx, qword [rbp - 0x70]
call fcn.1800b5700
mov qword [rbp - 0x58], 7
mov qword [rbp - 0x60], r15
mov word [rbp - 0x70], r15w
cmp qword [rbp - 0x18], 8
jb 0x180035bc7
mov rcx, qword [rbp - 0x30]
call fcn.1800b5700
mov qword [rbp - 0x18], 7
mov qword [rbp - 0x20], r15
mov word [rbp - 0x30], r15w
lea rdx, [rsp + 0x70]
lea rcx, [rbp - 0x50]
call fcn.18001b690
nop
lea rcx, [rsp + 0x70]
cmp qword [rbp - 0x78], 8
cmovae rcx, qword [rsp + 0x70]
call qword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x180035c1a
lea rcx, [rsp + 0x70]
cmp qword [rbp - 0x78], 8
cmovae rcx, qword [rsp + 0x70]
call fcn.1800353d0
test al, al
je 0x180035c1d
mov esi, r15d
cmp qword [rbp - 0x38], 0x10
jb 0x180035c2d
mov rcx, qword [rbp - 0x50]
call fcn.1800b5700
mov qword [rbp - 0x38], 0xf
mov qword [rbp - 0x40], r15
mov byte [rbp - 0x50], 0
cmp qword [rbp - 0x78], 8
jb 0x180035c4e
mov rcx, qword [rsp + 0x70]
call fcn.1800b5700
mov qword [rbp - 0x78], 7
mov qword [rbp - 0x80], r15
mov word [rsp + 0x70], r15w
mov eax, esi
mov rcx, qword [rbp + 0x1770]
xor rcx, rsp
call fcn.1800b6c40
lea r11, [rsp + 0x1880]
mov rbx, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x40]
mov rdi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret