Function at 0x180016690
Capabilities:
Get common file path

Disassembly:
push rbx
sub rsp, 0x660
mov rax, qword [0x1800f0938]
xor rax, rsp
mov qword [rsp + 0x650], rax
cmp qword [0x1800f37b8], 0
mov rbx, rcx
je 0x1800166d2
lea rdx, [0x1800f37a0]
or r9, 0xffffffffffffffff
xor r8d, r8d
call fcn.1800030f0
mov al, 1
jmp 0x1800169c5
lea rcx, [rsp + 0x22]
xor edx, edx
mov r8d, 0x20a
mov word [rsp + 0x20], 0
call fcn.180099ff0
lea rdx, [rsp + 0x20]
mov ecx, 0x105
call qword [sym.imp.KERNEL32.dll_GetTempPathW]
add eax, 0xffffffff
cmp eax, 0x103
ja 0x1800169c3
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.180099ff0
lea rdx, [rsp + 0x230]
lea rcx, [rsp + 0x20]
mov r8d, 0x208
call qword [sym.imp.KERNEL32.dll_GetLongPathNameW]
cmp eax, 0x208
ja 0x1800168a2
test eax, eax
je 0x1800168a2
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 0x1800167ae
mov rax, qword [rbx + 8]
lea rdi, [rbx + 8]
jmp 0x1800167b5
lea rdi, [rbx + 8]
mov rax, rdi
lea rcx, [rsp + 0x230]
cmp rcx, rax
jb 0x18001680f
cmp rdx, 8
jb 0x1800167cd
mov rcx, qword [rdi]
jmp 0x1800167d0
mov rcx, rdi
mov rax, qword [rbx + 0x18]
lea rcx, [rcx + rax*2]
lea rax, [rsp + 0x230]
cmp rcx, rax
jbe 0x18001680f
cmp rdx, 8
jb 0x1800167ee
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.1800030f0
jmp 0x1800169a7
movabs rax, 0x7ffffffffffffffe
cmp rsi, rax
jbe 0x180016823
call fcn.180097730
mov rax, qword [rbx + 0x20]
cmp rax, rsi
jae 0x180016853
mov r8, qword [rbx + 0x18]
mov rdx, rsi
mov rcx, rbx
call fcn.180003d30
test rsi, rsi
je 0x1800169a7
mov rdx, qword [rbx + 0x20]
cmp rdx, 8
jb 0x18001686f
mov rcx, qword [rdi]
jmp 0x180016872
test rsi, rsi
jne 0x18001683b
cmp rax, 8
mov qword [rbx + 0x18], rsi
jb 0x180016865
mov rdi, qword [rdi]
mov word [rdi], 0
jmp 0x1800169a7
mov rcx, rdi
lea rbp, [rsi + rsi]
lea r8, [rsp + 0x230]
add rdx, rdx
mov r9, rbp
call fcn.180098b20
cmp qword [rbx + 0x20], 8
mov qword [rbx + 0x18], rsi
jb 0x180016897
mov rdi, qword [rdi]
mov word [rdi + rbp], 0
jmp 0x1800169a7
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 0x1800168cb
mov rax, qword [rbx + 8]
lea rdi, [rbx + 8]
jmp 0x1800168d2
lea rdi, [rbx + 8]
mov rax, rdi
lea rcx, [rsp + 0x20]
cmp rcx, rax
jb 0x180016923
cmp rdx, 8
jb 0x1800168e7
mov rcx, qword [rdi]
jmp 0x1800168ea
mov rcx, rdi
mov rax, qword [rbx + 0x18]
lea rcx, [rcx + rax*2]
lea rax, [rsp + 0x20]
cmp rcx, rax
jbe 0x180016923
cmp rdx, 8
jb 0x180016905
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.1800030f0
jmp 0x1800169a7
movabs rax, 0x7ffffffffffffffe
cmp rsi, rax
jbe 0x180016937
call fcn.180097730
mov rax, qword [rbx + 0x20]
cmp rax, rsi
jae 0x180016963
mov r8, qword [rbx + 0x18]
mov rdx, rsi
mov rcx, rbx
call fcn.180003d30
test rsi, rsi
je 0x1800169a7
mov rdx, qword [rbx + 0x20]
cmp rdx, 8
jb 0x18001697c
mov rcx, qword [rdi]
jmp 0x18001697f
test rsi, rsi
jne 0x18001694f
cmp rax, 8
mov qword [rbx + 0x18], rsi
jb 0x180016975
mov rdi, qword [rdi]
mov word [rdi], 0
jmp 0x1800169a7
mov rcx, rdi
lea rbp, [rsi + rsi]
lea r8, [rsp + 0x20]
add rdx, rdx
mov r9, rbp
call fcn.180098b20
cmp qword [rbx + 0x20], 8
mov qword [rbx + 0x18], rsi
jb 0x1800169a1
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 0x1800169c5
xor al, al
mov rcx, qword [rsp + 0x650]
xor rcx, rsp
call fcn.180099050
add rsp, 0x660
pop rbx
ret