Function at 0x140002790
Capabilities:
Get common file path

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x20], rbp
push rsi
push rdi
push r13
push r14
push r15
sub rsp, 0x260
mov rax, qword [section..data]
xor rax, rsp
mov qword [rsp + 0x250], rax
mov rdi, rcx
mov qword [rsp + 0x30], rcx
xor r13d, r13d
call fcn.140002740
movsx r14d, al
call fcn.140002730
movsx r15d, al
mov ebx, r15d
imul ebx, r14d
call fcn.140002770
movsx esi, al
xor edx, edx
movsx eax, byte [0x14001b099]
movsx ecx, byte [0x14001b098]
lea ebp, [rbx + rsi]
add eax, ebp
div ecx
mov r8d, eax
movsx eax, byte [0x14001b09b]
cmp r8d, eax
je 0x140003232
lea rax, [rsp + 0x40]
mov qword [rsp + 0x298], r12
xor r9d, r9d
mov qword [rsp + 0x20], rax
xor r8d, r8d
mov edx, 0x1c
xor ecx, ecx
call qword [sym.imp.SHELL32.dll_SHGetFolderPathW]
xorps xmm2, xmm2
lea r12d, [rsi + rbx*8]
not eax
add r12d, ebx
shr eax, 0x1f
xor edx, edx
mov r10d, 3
cvtsi2sd xmm2, rax
movsx eax, byte [0x14001b09a]
movd xmm1, eax
movsx eax, byte [0x14001b09c]
cvtdq2pd xmm1, xmm1
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm2
movsd qword [rsp + 0x30], xmm1
movsx eax, byte [0x14001b099]
movsx ecx, byte [0x14001b098]
add eax, r12d
div ecx
mov r8d, eax
movsx eax, byte [0x14001b09b]
cmp r8d, eax
je 0x1400028dd
call fcn.140002750
movsx edx, al
movsx eax, byte [0x14001b93c]
imul edx, eax
shl edx, 2
call fcn.140002780
movsx ecx, al
sub edx, ecx
call fcn.140002760
movsx ecx, al
add edx, ecx
movsx ecx, byte [0x14001b09c]
add ecx, edx
je 0x1400028dd
mov r9d, r10d
jmp 0x140002946
movsx eax, byte [0x14001b099]
xor edx, edx
movsx ecx, byte [0x14001b098]
add eax, ebp
div ecx
mov r8d, eax
movsx eax, byte [0x14001b09b]
cmp r8d, eax
je 0x140002941
movsx r8d, byte [0x14001b099]
lea ecx, [rbx + rsi]
lea eax, [rcx + rbx*4]
xor edx, edx
movsx ecx, byte [0x14001b098]
add eax, r8d
div ecx
xorps xmm0, xmm0
mov r8d, eax
movsx eax, byte [0x14001b09b]
sub r8d, eax
mov eax, r8d
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x30]
cvttsd2si r9d, xmm0
jmp 0x140002946
mov r9d, dword [rsp + 0x30]
movsx eax, byte [0x14001b099]
xor edx, edx
movsx ecx, byte [0x14001b098]
add eax, esi
lea eax, [rax + rbx*2]
div ecx
xor edx, edx
mov r8d, eax
movsx eax, byte [0x14001b09b]
sub r8d, eax
imul r8d, r9d
test r8d, r8d
je 0x140002ae0
movsx r8d, byte [0x14001b099]
lea ecx, [rbx + rsi]
lea eax, [rcx + rbx*2]
xorps xmm2, xmm2
movsx ecx, byte [0x14001b098]
add eax, r8d
div ecx
xor edx, edx
mov r8d, eax
movsx eax, byte [0x14001b09b]
sub r8d, eax
mov eax, r8d
cvtsi2sd xmm2, rax
movsx eax, byte [0x14001b09a]
movd xmm1, eax
movsx eax, byte [0x14001b09c]
cvtdq2pd xmm1, xmm1
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm2
movsd qword [rsp + 0x30], xmm1
movsx eax, byte [0x14001b099]
movsx ecx, byte [0x14001b098]
add eax, r12d
div ecx
mov r8d, eax
movsx eax, byte [0x14001b09b]
cmp r8d, eax
je 0x140002a37
call fcn.140002750
movsx edx, al
movsx eax, byte [0x14001b93c]
imul edx, eax
shl edx, 2
call fcn.140002780
movsx ecx, al
sub edx, ecx
call fcn.140002760
movsx ecx, al
add edx, ecx
movsx ecx, byte [0x14001b09c]
add ecx, edx
jne 0x140002ad6
call fcn.140002770
movsx r8d, al
xor edx, edx
movsx eax, byte [0x14001b099]
mov ecx, r14d
imul ecx, r15d
add r8d, ecx
movsx ecx, byte [0x14001b098]
add eax, r8d
div ecx
mov r8d, eax
movsx eax, byte [0x14001b09b]
cmp r8d, eax
je 0x140002ac9
call fcn.140002740
movsx edx, al
call fcn.140002730
movsx ecx, al
imul edx, ecx
lea r8d, [rdx + rdx*4]
call fcn.140002770
movsx ecx, al
xor edx, edx
movsx eax, byte [0x14001b099]
add r8d, ecx
movsx ecx, byte [0x14001b098]
add eax, r8d
div ecx
xorps xmm0, xmm0
mov r8d, eax
movsx eax, byte [0x14001b09b]
sub r8d, eax
mov eax, r8d
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x30]
cvttsd2si eax, xmm0
jmp 0x140002acd
mov eax, dword [rsp + 0x30]
cmp r13d, eax
jge 0x14000322a
lea rdx, [rsp + 0x40]
jmp 0x14000321f
movsx eax, byte [0x14001b099]
movsx ecx, byte [0x14001b098]
add eax, ebp
div ecx
movsx ecx, byte [0x14001b09b]
sub eax, ecx
je 0x14000322a
call fcn.140002750
movsx r11d, al
call fcn.140002780
movsx ebx, al
call fcn.140002760
movsx ecx, byte [0x14001b93c]
xorps xmm2, xmm2
movsx esi, al
movsx eax, byte [0x14001b09c]
imul ecx, r11d
lea edx, [rcx + rcx*4]
add edx, edx
sub edx, ebx
add edx, esi
add eax, edx
xor edx, edx
cvtsi2sd xmm2, rax
movsx eax, byte [0x14001b09a]
movd xmm1, eax
movsx eax, byte [0x14001b09c]
cvtdq2pd xmm1, xmm1
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm2
movsd qword [rsp + 0x30], xmm1
movsx eax, byte [0x14001b099]
movsx ecx, byte [0x14001b098]
add eax, r12d
div ecx
movsx ecx, byte [0x14001b09b]
cmp eax, ecx
je 0x140002bb4
movsx edx, byte [0x14001b93c]
movsx ecx, byte [0x14001b09c]
imul edx, r11d
shl edx, 2
sub edx, ebx
add edx, esi
add ecx, edx
je 0x140002bb4
mov r9d, r10d
jmp 0x140002c4c
call fcn.140002740
movsx r9d, al
call fcn.140002730
movsx ecx, al
imul r9d, ecx
call fcn.140002770
movsx ecx, byte [0x14001b099]
xor edx, edx
movsx eax, al
add eax, r9d
add eax, ecx
movsx ecx, byte [0x14001b098]
div ecx
movsx ecx, byte [0x14001b09b]
cmp eax, ecx
je 0x140002c47
call fcn.140002740
movsx edx, al
call fcn.140002730
movsx ecx, al
imul edx, ecx
lea r9d, [rdx + rdx*4]
call fcn.140002770
movsx ecx, byte [0x14001b099]
xor edx, edx
movsx eax, al
xorps xmm0, xmm0
add eax, r9d
add eax, ecx
movsx ecx, byte [0x14001b098]
div ecx
movsx ecx, byte [0x14001b09b]
sub eax, ecx
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x30]
cvttsd2si r9d, xmm0
jmp 0x140002c4c
mov r9d, dword [rsp + 0x30]
call fcn.140002740
movsx edx, al
call fcn.140002730
movsx ecx, al
imul edx, ecx
lea edx, [rdx + rdx*2]
call fcn.140002770
movsx ecx, al
lea eax, [rcx + rdx*2]
movsx ecx, byte [0x14001b099]
add eax, ecx
xor edx, edx
movsx ecx, byte [0x14001b098]
div ecx
mov r8d, eax
call fcn.140002740
movsx ebp, al
call fcn.140002730
movsx r14d, al
call fcn.140002770
movsx ecx, byte [0x14001b09b]
xor edx, edx
sub r8d, ecx
movsx r15d, al
imul r8d, r9d
test r8d, r8d
je 0x1400030b0
movsx ecx, byte [0x14001b09a]
movd xmm1, ecx
movsx ecx, byte [0x14001b09c]
cvtdq2pd xmm1, xmm1
movd xmm0, ecx
mov ecx, r14d
imul ecx, ebp
cvtdq2pd xmm0, xmm0
lea eax, [rcx + rcx*8]
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, qword [0x1400179e0]
movsd qword [rsp + 0x30], xmm1
movsx ecx, byte [0x14001b099]
add eax, ecx
movsx ecx, byte [0x14001b098]
add eax, r15d
div ecx
movsx ecx, byte [0x14001b09b]
cmp eax, ecx
je 0x140002d31
movsx edx, byte [0x14001b93c]
movsx ecx, byte [0x14001b09c]
imul edx, r11d
shl edx, 2
sub edx, ebx
add edx, esi
add ecx, edx
jne 0x140002d8b
call fcn.140002740
movsx r9d, al
call fcn.140002730
movsx ecx, al
imul r9d, ecx
call fcn.140002770
movsx ecx, byte [0x14001b099]
xor edx, edx
movsx eax, al
add eax, r9d
add eax, ecx
movsx ecx, byte [0x14001b098]
div ecx
movsx ecx, byte [0x14001b09b]
cmp eax, ecx
je 0x140002d8b
movzx eax, byte [0x14001b099]
movzx eax, byte [0x14001b098]
movzx eax, byte [0x14001b09b]
movsd xmm0, qword [rsp + 0x30]
call fcn.140002740
movsx edx, al
call fcn.140002730
movsx ecx, al
imul edx, ecx
lea r9d, [rdx + rdx*8]
call fcn.140002770
movsx ecx, byte [0x14001b099]
xor edx, edx
movsx eax, al
add eax, r9d
add eax, ecx
movsx ecx, byte [0x14001b098]
div ecx
movsx ecx, byte [0x14001b09b]
sub eax, ecx
je 0x14000322a
call fcn.140002740
movsx edx, al
call fcn.140002730
movsx ecx, al
imul edx, ecx
call fcn.140002770
movsx ecx, al
xorps xmm2, xmm2
lea eax, [rcx + rdx*4]
movsx ecx, byte [0x14001b099]
add eax, ecx
xor edx, edx
movsx ecx, byte [0x14001b098]
div ecx
movsx ecx, byte [0x14001b09b]
sub eax, ecx
cvtsi2sd xmm2, rax
movsx eax, byte [0x14001b09a]
movd xmm1, eax
movsx eax, byte [0x14001b09c]
cvtdq2pd xmm1, xmm1
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm2
movsd qword [rsp + 0x30], xmm1
call fcn.140002740
movsx edx, al
call fcn.140002730
movsx ecx, al
imul edx, ecx
lea r9d, [rdx + rdx*8]
call fcn.140002770
movsx ecx, byte [0x14001b099]
xor edx, edx
movsx eax, al
add eax, r9d
add eax, ecx
movsx ecx, byte [0x14001b098]
div ecx
movsx ecx, byte [0x14001b09b]
cmp eax, ecx
je 0x140002ebc
call fcn.140002750
movsx edx, al
movsx eax, byte [0x14001b93c]
imul edx, eax
shl edx, 2
call fcn.140002780
movsx ecx, al
sub edx, ecx
call fcn.140002760
movsx ecx, al
add edx, ecx
movsx ecx, byte [0x14001b09c]
add ecx, edx
jne 0x140002f54
call fcn.140002740
movsx r9d, al
call fcn.140002730
movsx ecx, al
imul r9d, ecx
call fcn.140002770
movsx ecx, byte [0x14001b099]
xor edx, edx
movsx eax, al
add eax, r9d
add eax, ecx
movsx ecx, byte [0x14001b098]
div ecx
movsx ecx, byte [0x14001b09b]
cmp eax, ecx
je 0x140002f4f
call fcn.140002740
movsx edx, al
call fcn.140002730
movsx ecx, al
imul edx, ecx
lea r9d, [rdx + rdx*4]
call fcn.140002770
movsx ecx, byte [0x14001b099]
xor edx, edx
movsx eax, al
xorps xmm0, xmm0
add eax, r9d
add eax, ecx
movsx ecx, byte [0x14001b098]
div ecx
movsx ecx, byte [0x14001b09b]
sub eax, ecx
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x30]
cvttsd2si r10d, xmm0
jmp 0x140002f54
mov r10d, dword [rsp + 0x30]
call fcn.140002740
movsx edx, al
call fcn.140002730
movsx ecx, al
imul edx, ecx
lea edx, [rdx + rdx*4]
call fcn.140002770
movsx ecx, al
lea eax, [rcx + rdx*2]
movsx ecx, byte [0x14001b099]
add eax, ecx
xor edx, edx
movsx ecx, byte [0x14001b098]
div ecx
movsx ecx, byte [0x14001b09b]
sub eax, ecx
imul eax, r10d
test eax, eax
je 0x14000322a
movsx eax, byte [0x14001b09a]
movd xmm1, eax
movsx eax, byte [0x14001b09c]
cvtdq2pd xmm1, xmm1
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, qword [0x1400179c8]
movsd qword [rsp + 0x30], xmm1
call fcn.140002740
movsx edx, al
call fcn.140002730
movsx ecx, al
imul edx, ecx
lea r9d, [rdx + rdx*8]
call fcn.140002770
movsx ecx, byte [0x14001b099]
xor edx, edx
movsx eax, al
add eax, r9d
add eax, ecx
movsx ecx, byte [0x14001b098]
div ecx
movsx ecx, byte [0x14001b09b]
cmp eax, ecx
je 0x14000304d
call fcn.140002750
movsx edx, al
movsx eax, byte [0x14001b93c]
imul edx, eax
shl edx, 2
call fcn.140002780
movsx ecx, al
sub edx, ecx
call fcn.140002760
movsx ecx, al
movsx eax, byte [0x14001b09c]
add edx, ecx
mov ecx, eax
add ecx, edx
jne 0x14000322a
call fcn.140002740
movsx r9d, al
call fcn.140002730
movsx ecx, al
imul r9d, ecx
call fcn.140002770
movsx ecx, byte [0x14001b099]
xor edx, edx
movsx eax, al
add eax, r9d
add eax, ecx
movsx ecx, byte [0x14001b098]
div ecx
movsx ecx, byte [0x14001b09b]
sub eax, ecx
je 0x14000322a
movzx eax, byte [0x14001b099]
movzx eax, byte [0x14001b098]
movzx eax, byte [0x14001b09b]
movsd xmm0, qword [rsp + 0x30]
jmp 0x14000322a
mov ecx, r14d
xorps xmm2, xmm2
imul ecx, ebp
imul eax, ecx, 7
movsx ecx, byte [0x14001b099]
add eax, ecx
movsx ecx, byte [0x14001b098]
add eax, r15d
div ecx
movsx ecx, byte [0x14001b09b]
sub eax, ecx
cvtsi2sd xmm2, rax
movsx eax, byte [0x14001b09a]
movd xmm1, eax
movsx eax, byte [0x14001b09c]
cvtdq2pd xmm1, xmm1
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm2
movsd qword [rsp + 0x30], xmm1
call fcn.140002740
movsx edx, al
call fcn.140002730
movsx ecx, al
imul edx, ecx
lea r9d, [rdx + rdx*8]
call fcn.140002770
movsx ecx, byte [0x14001b099]
xor edx, edx
movsx eax, al
add eax, r9d
add eax, ecx
movsx ecx, byte [0x14001b098]
div ecx
movsx ecx, byte [0x14001b09b]
cmp eax, ecx
je 0x140003171
movsx edx, byte [0x14001b93c]
movsx ecx, byte [0x14001b09c]
imul edx, r11d
shl edx, 2
sub edx, ebx
add edx, esi
add ecx, edx
jne 0x14000320c
call fcn.140002740
movsx r9d, al
call fcn.140002730
movsx ecx, al
imul r9d, ecx
call fcn.140002770
movsx ecx, byte [0x14001b099]
xor edx, edx
movsx eax, al
add eax, r9d
add eax, ecx
movsx ecx, byte [0x14001b098]
div ecx
movsx ecx, byte [0x14001b09b]
cmp eax, ecx
je 0x140003203
call fcn.140002740
movsx edx, al
call fcn.140002730
movsx ecx, al
imul edx, ecx
lea r9d, [rdx + rdx*4]
call fcn.140002770
movsx ecx, byte [0x14001b099]
xor edx, edx
movsx eax, al
xorps xmm0, xmm0
add eax, r9d
add eax, ecx
movsx ecx, byte [0x14001b098]
div ecx
movsx ecx, byte [0x14001b09b]
sub eax, ecx
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x30]
cvttsd2si eax, xmm0
jmp 0x140003207
mov eax, dword [rsp + 0x30]
cmp r13d, eax
jge 0x14000322a
lea rdx, [rsp + 0x30]
call fcn.140003260
mov word [rax + 2], r13w
lea rdx, [rax + 2]
mov rcx, rdi
call fcn.140005690
mov rax, rdi
mov r12, qword [rsp + 0x298]
mov rcx, qword [rsp + 0x250]
xor rcx, rsp
call fcn.140015410
lea r11, [rsp + 0x260]
mov rbx, qword [r11 + 0x40]
mov rbp, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop rdi
pop rsi
ret