Function at 0x18001a560
Capabilities:
Get common file path

Disassembly:
push rbx
sub rsp, 0x660
mov rax, qword [0x1800fca30]
xor rax, rsp
mov qword [rsp + 0x650], rax
cmp qword [0x1800ff930], 0
mov rbx, rcx
je 0x18001a5a2
lea rdx, [0x1800ff918]
or r9, 0xffffffffffffffff
xor r8d, r8d
call fcn.1800030a0
mov al, 1
jmp 0x18001a895
lea rcx, [rsp + 0x22]
xor edx, edx
mov r8d, 0x20a
mov word [rsp + 0x20], 0
call fcn.1800a3870
lea rdx, [rsp + 0x20]
mov ecx, 0x105
call qword [sym.imp.KERNEL32.dll_GetTempPathW]
add eax, 0xffffffff
cmp eax, 0x103
ja 0x18001a893
mov qword [rsp + 0x678], rbp
lea rcx, [rsp + 0x232]
xor edx, edx
mov r8d, 0x410
mov qword [rsp + 0x680], rsi
mov word [rsp + 0x22a], 0
mov qword [rsp + 0x688], rdi
mov word [rsp + 0x230], 0
call fcn.1800a3870
lea rdx, [rsp + 0x230]
lea rcx, [rsp + 0x20]
mov r8d, 0x208
call qword [sym.imp.KERNEL32.dll_GetLongPathNameW]
cmp eax, 0x208
ja 0x18001a772
test eax, eax
je 0x18001a772
mov rdx, qword [rbx + 0x20]
or rcx, 0xffffffffffffffff
mov eax, eax
mov word [rsp + rax*2 + 0x230], 0
xor eax, eax
lea rdi, [rsp + 0x230]
repne scasw ax, word [rdi]
cmp rdx, 8
not rcx
lea rsi, [rcx - 1]
jb 0x18001a67e
mov rax, qword [rbx + 8]
lea rdi, [rbx + 8]
jmp 0x18001a685
lea rdi, [rbx + 8]
mov rax, rdi
lea rcx, [rsp + 0x230]
cmp rcx, rax
jb 0x18001a6df
cmp rdx, 8
jb 0x18001a69d
mov rcx, qword [rdi]
jmp 0x18001a6a0
mov rcx, rdi
mov rax, qword [rbx + 0x18]
lea rcx, [rcx + rax*2]
lea rax, [rsp + 0x230]
cmp rcx, rax
jbe 0x18001a6df
cmp rdx, 8
jb 0x18001a6be
mov rdi, qword [rdi]
lea r8, [rsp + 0x230]
mov r9, rsi
mov rdx, rbx
sub r8, rdi
mov rcx, rbx
sar r8, 1
call fcn.1800030a0
jmp 0x18001a877
movabs rax, 0x7ffffffffffffffe
cmp rsi, rax
jbe 0x18001a6f3
call fcn.1800a09f0
mov rax, qword [rbx + 0x20]
cmp rax, rsi
jae 0x18001a723
mov r8, qword [rbx + 0x18]
mov rdx, rsi
mov rcx, rbx
call fcn.180003710
test rsi, rsi
je 0x18001a877
mov rdx, qword [rbx + 0x20]
cmp rdx, 8
jb 0x18001a73f
mov rcx, qword [rdi]
jmp 0x18001a742
test rsi, rsi
jne 0x18001a70b
cmp rax, 8
mov qword [rbx + 0x18], rsi
jb 0x18001a735
mov rdi, qword [rdi]
mov word [rdi], 0
jmp 0x18001a877
mov rcx, rdi
lea rbp, [rsi + rsi]
lea r8, [rsp + 0x230]
add rdx, rdx
mov r9, rbp
call fcn.1800a1c40
cmp qword [rbx + 0x20], 8
mov qword [rbx + 0x18], rsi
jb 0x18001a767
mov rdi, qword [rdi]
mov word [rdi + rbp], 0
jmp 0x18001a877
mov rdx, qword [rbx + 0x20]
or rcx, 0xffffffffffffffff
xor eax, eax
lea rdi, [rsp + 0x20]
repne scasw ax, word [rdi]
cmp rdx, 8
not rcx
lea rsi, [rcx - 1]
jb 0x18001a79b
mov rax, qword [rbx + 8]
lea rdi, [rbx + 8]
jmp 0x18001a7a2
lea rdi, [rbx + 8]
mov rax, rdi
lea rcx, [rsp + 0x20]
cmp rcx, rax
jb 0x18001a7f3
cmp rdx, 8
jb 0x18001a7b7
mov rcx, qword [rdi]
jmp 0x18001a7ba
mov rcx, rdi
mov rax, qword [rbx + 0x18]
lea rcx, [rcx + rax*2]
lea rax, [rsp + 0x20]
cmp rcx, rax
jbe 0x18001a7f3
cmp rdx, 8
jb 0x18001a7d5
mov rdi, qword [rdi]
lea r8, [rsp + 0x20]
mov r9, rsi
mov rdx, rbx
sub r8, rdi
mov rcx, rbx
sar r8, 1
call fcn.1800030a0
jmp 0x18001a877
movabs rax, 0x7ffffffffffffffe
cmp rsi, rax
jbe 0x18001a807
call fcn.1800a09f0
mov rax, qword [rbx + 0x20]
cmp rax, rsi
jae 0x18001a833
mov r8, qword [rbx + 0x18]
mov rdx, rsi
mov rcx, rbx
call fcn.180003710
test rsi, rsi
je 0x18001a877
mov rdx, qword [rbx + 0x20]
cmp rdx, 8
jb 0x18001a84c
mov rcx, qword [rdi]
jmp 0x18001a84f
test rsi, rsi
jne 0x18001a81f
cmp rax, 8
mov qword [rbx + 0x18], rsi
jb 0x18001a845
mov rdi, qword [rdi]
mov word [rdi], 0
jmp 0x18001a877
mov rcx, rdi
lea rbp, [rsi + rsi]
lea r8, [rsp + 0x20]
add rdx, rdx
mov r9, rbp
call fcn.1800a1c40
cmp qword [rbx + 0x20], 8
mov qword [rbx + 0x18], rsi
jb 0x18001a871
mov rdi, qword [rdi]
mov word [rdi + rbp], 0
mov rdi, qword [rsp + 0x688]
mov rsi, qword [rsp + 0x680]
mov rbp, qword [rsp + 0x678]
mov al, 1
jmp 0x18001a895
xor al, al
mov rcx, qword [rsp + 0x650]
xor rcx, rsp
call fcn.1800a3210
add rsp, 0x660
pop rbx
ret