Function at 0x1400067d0
Capabilities:
Get common file path
Get program files directory

Disassembly:
mov rax, rsp
push rdi
sub rsp, 0x4c0
mov qword [rsp + 0x38], 0xfffffffffffffffe
mov qword [rax + 0x18], rbx
mov qword [rax + 0x20], rsi
mov rax, qword [0x14002e0b0]
xor rax, rsp
mov qword [rsp + 0x4b0], rax
mov rsi, rdx
mov rdi, rcx
mov qword [rsp + 0x60], 7
xor ebx, ebx
mov qword [rsp + 0x58], rbx
mov word [rsp + 0x48], bx
xor r8d, r8d
lea edx, [rbx + 0xe]
lea rcx, [rsp + 0x40]
call fcn.1400053f0
lea rcx, [rsp + 0x48]
mov rdx, qword [rsp + 0x60]
cmp rdx, 8
cmovae rcx, qword [rsp + 0x48]
add rdx, rdx
lea r9d, [rbx + 0x1c]
lea r8, str.ExtractAppPath
call fcn.1400100b0
mov qword [rsp + 0x58], 0xe
lea rax, [rsp + 0x48]
cmp qword [rsp + 0x60], 8
cmovae rax, qword [rsp + 0x48]
mov word [rax + 0x1c], bx
lea r9, [rsp + 0x48]
cmp qword [rsp + 0x60], 8
cmovae r9, qword [rsp + 0x48]
lea r8, str._s__entering
lea edx, [rbx + 0x65]
lea rcx, [0x14002f750]
call fcn.14000bba0
nop
mov word [rsp + 0x68], bx
xor eax, eax
mov qword [rsp + 0x6a], rax
mov qword [rsp + 0x72], rax
mov qword [rsp + 0x7a], rax
mov dword [rsp + 0x82], eax
mov word [rsp + 0x86], ax
mov word [rsp + 0x90], ax
xor edx, edx
mov r8d, 0x206
lea rcx, [rsp + 0x92]
call fcn.140011570
mov word [rsp + 0x2a0], bx
xor edx, edx
mov r8d, 0x206
lea rcx, [rsp + 0x2a2]
call fcn.140011570
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_lstrlenW]
test eax, eax
jne 0x140006943
lea r9, [rsp + 0x48]
cmp qword [rsp + 0x60], 8
cmovae r9, qword [rsp + 0x48]
lea r8, str._s__leaving
lea edx, [rbx + 0x65]
lea rcx, [0x14002f750]
call fcn.14000bba0
nop
cmp qword [rsp + 0x60], 8
jb 0x14000693c
mov rcx, qword [rsp + 0x48]
call fcn.14000eef0
xor al, al
jmp 0x140006c57
movzx eax, word [rdi]
mov rcx, rbx
test ax, ax
je 0x1400069c6
nop
cmp ax, 0x2c
je 0x140006968
add ebx, 1
add rcx, 1
mov ax, word [rdi + rcx*2]
test ax, ax
jne 0x140006950
jmp 0x1400069c6
add ebx, 1
mov r8d, ebx
mov rdx, rdi
lea rcx, [rsp + 0x68]
call qword [sym.imp.KERNEL32.dll_lstrcpynW]
mov r11d, 0x104
lea rcx, [rsp + 0x2a0]
movsxd rax, ebx
add rax, rax
lea rdx, [rsp + 0x2a0]
sub rax, rdx
lea rdx, [rax + rdi]
nop
movzx eax, word [rcx + rdx]
test ax, ax
je 0x1400069b8
mov word [rcx], ax
add rcx, 2
sub r11, 1
jne 0x1400069a0
jmp 0x1400069bd
test r11, r11
jne 0x1400069c1
sub rcx, 2
mov word [rcx], 0
lea rdx, str.WIN_DIR
lea rcx, [rsp + 0x68]
call qword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
je 0x140006b3e
lea rdx, [0x140026ee0]
lea rcx, [rsp + 0x68]
call qword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
je 0x140006b3e
lea rdx, str.PROGx86_DIR
lea rcx, [rsp + 0x68]
call qword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
je 0x140006aa6
lea rdx, [0x140026f10]
lea rcx, [rsp + 0x68]
call qword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
je 0x140006aa6
lea rdx, str.PROG_DIR
lea rcx, [rsp + 0x68]
call qword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
jne 0x140006b8e
lea rax, [rsp + 0x90]
mov qword [rsp + 0x20], rax
xor r9d, r9d
xor r8d, r8d
lea edx, [r9 + 0x26]
xor ecx, ecx
call qword [sym.imp.SHELL32.dll_SHGetFolderPathW]
test eax, eax
js 0x140006a95
lea rax, [rsp + 0x2a0]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x90]
lea r8, str._s_s
mov edx, 0x208
mov rcx, rsi
call fcn.140009360
jmp 0x140006b8e
lea rcx, [rsp + 0x40]
call fcn.140005110
xor al, al
jmp 0x140006c57
lea r9, str.ProgramFiles_x86_
mov r8d, 0x104
lea rdx, [rsp + 0x90]
lea rcx, [rsp + 0x30]
call fcn.140010410
cmp qword [rsp + 0x30], 0
jbe 0x140006afb
lea rax, [rsp + 0x2a0]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x90]
lea r8, str._s_s
mov edx, 0x208
mov rcx, rsi
call fcn.140009360
jmp 0x140006b8e
lea r9, [rsp + 0x48]
cmp qword [rsp + 0x60], 8
cmovae r9, qword [rsp + 0x48]
lea r8, str._s__leaving
mov edx, 0x65
lea rcx, [0x14002f750]
call fcn.14000bba0
nop
cmp qword [rsp + 0x60], 8
jb 0x140006b37
mov rcx, qword [rsp + 0x48]
call fcn.14000eef0
xor al, al
jmp 0x140006c57
lea rax, [rsp + 0x90]
mov qword [rsp + 0x20], rax
xor r9d, r9d
xor r8d, r8d
lea edx, [r9 + 0x24]
xor ecx, ecx
call qword [sym.imp.SHELL32.dll_SHGetFolderPathW]
test eax, eax
js 0x140006c19
lea rax, [rsp + 0x2a0]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x90]
lea r8, str._s_s
mov edx, 0x208
mov rcx, rsi
call fcn.140009360
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_lstrlenW]
test eax, eax
jne 0x140006bd9
lea r9, [rsp + 0x48]
cmp qword [rsp + 0x60], 8
cmovae r9, qword [rsp + 0x48]
lea r8, str._s__leaving
lea edx, [rax + 0x65]
lea rcx, [0x14002f750]
call fcn.14000bba0
nop
cmp qword [rsp + 0x60], 8
jb 0x140006bd5
mov rcx, qword [rsp + 0x48]
call fcn.14000eef0
xor al, al
jmp 0x140006c57
lea r9, [rsp + 0x48]
cmp qword [rsp + 0x60], 8
cmovae r9, qword [rsp + 0x48]
lea r8, str._s__leaving
mov edx, 0x65
lea rcx, [0x14002f750]
call fcn.14000bba0
nop
cmp qword [rsp + 0x60], 8
jb 0x140006c15
mov rcx, qword [rsp + 0x48]
call fcn.14000eef0
mov al, 1
jmp 0x140006c57
lea r9, [rsp + 0x48]
cmp qword [rsp + 0x60], 8
cmovae r9, qword [rsp + 0x48]
lea r8, str._s__leaving
mov edx, 0x65
lea rcx, [0x14002f750]
call fcn.14000bba0
nop
cmp qword [rsp + 0x60], 8
jb 0x140006c55
mov rcx, qword [rsp + 0x48]
call fcn.14000eef0
xor al, al
mov rcx, qword [rsp + 0x4b0]
xor rcx, rsp
call fcn.14000f470
lea r11, [rsp + 0x4c0]
mov rbx, qword [r11 + 0x20]
mov rsi, qword [r11 + 0x28]
mov rsp, r11
pop rdi
ret