Function at 0x14015ab30
Capabilities:
Get common file path

Disassembly:
push rbx
push rsi
push rdi
sub rsp, 0x350
mov rax, qword [0x14045cbf0]
xor rax, rsp
mov qword [rsp + 0x340], rax
mov r9, qword [0x14048ab10]
mov rsi, rcx
test r9, r9
je 0x14015ab77
lea r8, [0x14037e984]
lea rdx, [rsp + 0x20]
mov ecx, 0xe6
call fcn.1401541c0
jmp 0x14015ac2e
call fcn.140135bf0
mov ecx, 0xe6
test eax, eax
je 0x14015abca
lea rdx, [rsp + 0x130]
call qword [sym.imp.KERNEL32.dll_GetTempPathW]
lea rcx, [rsp + 0x130]
call fcn.140135a90
mov rbx, rax
test rax, rax
je 0x14015aeb5
lea r8, [0x14037e984]
lea rdx, [rsp + 0x20]
mov r9, rax
mov ecx, 0xe6
call fcn.1401541c0
mov rcx, rbx
jmp 0x14015ac29
lea rdx, [rsp + 0x130]
call qword [sym.imp.KERNEL32.dll_GetTempPathA]
lea rcx, [rsp + 0x130]
call fcn.1401359e0
mov rbx, rax
test rax, rax
je 0x14015aeb5
mov rcx, rax
call fcn.140135a90
mov rcx, rbx
mov rdi, rax
call fcn.1400be914
test rdi, rdi
je 0x14015aeb5
lea r8, [0x14037e984]
lea rdx, [rsp + 0x20]
mov r9, rdi
mov ecx, 0xe6
call fcn.1401541c0
mov rcx, rdi
call fcn.1400be914
movzx edx, byte [rsp + 0x20]
lea rcx, [rsp + 0x20]
lea rax, [rsp + 0x20]
test dl, dl
je 0x14015ac49
inc rax
cmp byte [rax], 0
jne 0x14015ac41
sub eax, ecx
lea r8, str.etilqs_
mov rcx, r8
and eax, 0x3fffffff
nop word [rax + rax]
inc rcx
cmp byte [rcx], 0
jne 0x14015ac60
sub ecx, r8d
and ecx, 0x3fffffff
lea eax, [rcx + rax + 0x11]
cmp eax, 0x105
jl 0x14015ac86
mov eax, 1
jmp 0x14015aeba
mov qword [rsp + 0x378], rbp
mov qword [rsp + 0x380], r12
lea rcx, [rsp + 0x20]
mov qword [rsp + 0x388], r13
lea rax, [rsp + 0x20]
test dl, dl
je 0x14015acb8
nop dword [rax]
inc rax
cmp byte [rax], 0
jne 0x14015acb0
sub eax, ecx
and eax, 0x3fffffff
movsxd rcx, eax
je 0x14015acdc
lea rax, [rsp + 0x20]
nop dword [rax]
cmp byte [rax + rcx - 1], 0x5c
jne 0x14015acdc
dec rcx
jne 0x14015acd0
mov byte [rsp + rcx + 0x20], 0
lea r9, [rsp + 0x20]
lea r8, str._setilqs_
mov rdx, rsi
mov ecx, 0xf4
call fcn.1401541c0
xor ebp, ebp
mov r11, rsi
test rsi, rsi
jne 0x14015ad09
mov r11d, ebp
jmp 0x14015ad22
cmp byte [rsi], bpl
je 0x14015ad18
nop
inc r11
cmp byte [r11], bpl
jne 0x14015ad10
sub r11d, esi
and r11d, 0x3fffffff
cmp dword [0x140470e74], ebp
movsxd r12, r11d
mov ebx, 0xf
lea rdi, [rsi + r12]
je 0x14015ad50
lea ecx, [rbx - 0xa]
call qword [0x140470ee0]
mov rbp, rax
test rax, rax
je 0x14015ad50
mov rcx, rax
call qword [0x140470ef0]
call fcn.14013ce90
inc rdi
dec ebx
mov byte [rdi - 1], al
jne 0x14015ad50
test rbp, rbp
je 0x14015ad6d
mov rcx, rbp
call qword [0x140470f00]
lea rax, [rsi + 1]
mov r8, rsi
mov r9, rsi
mov r10, rsi
mov r11, rsi
sub r8, rax
sub r9, rax
sub r10, rax
lea rbx, [rax + r12]
mov edi, 3
movabs rbp, 0x842108421084211
lea r13, str.abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
sub r11, rax
nop word [rax + rax]
movzx ecx, byte [r8 + rbx]
mov rax, rbp
add rbx, 5
mul rcx
mov eax, ecx
sub rax, rdx
shr rax, 1
add rax, rdx
shr rax, 5
imul rax, rax, 0x3e
sub rcx, rax
movzx eax, byte [rcx + r13]
movzx ecx, byte [rbx - 5]
mov byte [r8 + rbx - 5], al
mov rax, rbp
mul rcx
mov eax, ecx
sub rax, rdx
shr rax, 1
add rax, rdx
shr rax, 5
imul rax, rax, 0x3e
sub rcx, rax
movzx eax, byte [rcx + r13]
movzx ecx, byte [r9 + rbx - 3]
mov byte [rbx - 5], al
mov rax, rbp
mul rcx
mov eax, ecx
sub rax, rdx
shr rax, 1
add rax, rdx
shr rax, 5
imul rax, rax, 0x3e
sub rcx, rax
movzx eax, byte [rcx + r13]
movzx ecx, byte [r10 + rbx - 2]
mov byte [r9 + rbx - 3], al
mov rax, rbp
mul rcx
mov eax, ecx
sub rax, rdx
shr rax, 1
add rax, rdx
shr rax, 5
imul rax, rax, 0x3e
sub rcx, rax
movzx eax, byte [rcx + r13]
movzx ecx, byte [r11 + rbx - 1]
mov byte [r10 + rbx - 2], al
mov rax, rbp
mul rcx
mov eax, ecx
sub rax, rdx
shr rax, 1
add rax, rdx
shr rax, 5
imul rax, rax, 0x3e
sub rcx, rax
dec rdi
movzx eax, byte [rcx + r13]
mov byte [r11 + rbx - 1], al
jne 0x14015adb0
mov r13, qword [rsp + 0x388]
mov rbp, qword [rsp + 0x378]
mov byte [rsi + r12 + 0xf], dil
mov r12, qword [rsp + 0x380]
xor eax, eax
jmp 0x14015aeba
mov eax, 7
mov rcx, qword [rsp + 0x340]
xor rcx, rsp
call fcn.1400be110
add rsp, 0x350
pop rdi
pop rsi
pop rbx
ret