Function at 0x14004297c
Capabilities:
Get common file path
Query environment variable

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x5020]
mov eax, 0x5120
call fcn.140100e60
sub rsp, rax
mov rax, qword [0x140191630]
xor rax, rsp
mov qword [rbp + 0x5010], rax
xor r15d, r15d
mov dil, r8b
cmp byte [0x14019a720], r15b
mov rsi, rdx
mov r14, rcx
jne 0x1400429f5
cmp word [rdx], 0x2e
jne 0x1400429f5
movzx ecx, word [rsi + 2]
call fcn.140080a6c
test al, al
je 0x1400429e4
add rsi, 4
cmp word [rsi], 0x2e
je 0x1400429cd
cmp word [rsi], 0x2e
jne 0x1400429f5
cmp word [rsi + 2], r15w
je 0x140042ede
mov r8d, 0x800
lea rdx, [rbp + 0x2f40]
mov rcx, rsi
call fcn.140080470
movzx ecx, word [rsi]
movzx eax, word [0x1401412fc]
sub ecx, eax
jne 0x140042a25
movzx ecx, word [rsi + 2]
movzx eax, word [0x1401412fe]
sub ecx, eax
test ecx, ecx
mov rcx, rsi
sete r13b
mov byte [rsp + 0x30], r13b
call fcn.140080ffc
mov rbx, rax
movzx ecx, word [rax]
call fcn.140080a6c
test al, al
je 0x140042a75
test r13b, r13b
jne 0x140042a75
lea r8, [rbp + 0x2f40]
mov rcx, rsi
sub r8, rsi
movzx eax, word [rcx]
movzx edx, word [rcx + r8]
sub eax, edx
jne 0x140042a6d
add rcx, 2
test edx, edx
jne 0x140042a59
test eax, eax
je 0x140042a75
mov word [rbx], r15w
mov r12d, r15d
mov rbx, rsi
cmp word [rsi], r15w
je 0x140042abf
cmp word [rbx], 0x2e
jne 0x140042abf
cmp word [rbx + 2], 0x2e
jne 0x140042abf
movzx ecx, word [rbx + 4]
call fcn.140080a6c
test al, al
jne 0x140042aa2
cmp word [rbx + 4], r15w
jne 0x140042abf
movzx eax, word [rbx + 4]
neg ax
sbb rcx, rcx
inc r12d
and ecx, 2
add rcx, 4
add rbx, rcx
cmp word [rbx], r15w
jne 0x140042a81
cmp byte [0x14019a720], r15b
je 0x140042ae1
test dil, dil
je 0x140042ae1
mov rcx, rsi
call fcn.14008096c
test al, al
je 0x140042ae1
mov rcx, r14
call fcn.140042f5c
cmp byte [r14 + 0x107e], r15b
je 0x140042b16
mov eax, dword [r14 + 0x2280]
cmp r12d, eax
mov edx, eax
cmovl edx, r12d
test r13b, r13b
cmovne edx, eax
test edx, edx
je 0x140042b16
xor r8d, r8d
mov rcx, r14
call fcn.1400441ac
xor edx, edx
jmp 0x140042ed6
mov byte [r14 + 0x107e], r15b
cmp byte [0x14019a720], r15b
je 0x140042bff
xor r8d, r8d
lea rdx, str.FlatView
lea rcx, str.FileList
call fcn.1400a84dc
test eax, eax
je 0x140042b4d
test r12d, r12d
je 0x140042ede
mov edi, 0x800
lea rbx, [0x1401c30e0]
mov r8d, edi
lea rdx, [rbp + 0x1f40]
mov rcx, rbx
call fcn.140006af8
movzx eax, word [rsi]
cmp ax, word [0x1401412fc]
jne 0x140042b84
movzx eax, word [rsi + 2]
cmp ax, word [0x1401412fe]
je 0x140042bae
mov rdx, rsi
mov rcx, rbx
call fcn.14000861c
test al, al
je 0x140042bae
test r12d, r12d
lea rdx, [rbp + 0x1f40]
mov rcx, r14
cmovle rdx, r15
call fcn.14004737c
jmp 0x140042ede
mov r8, rdi
lea rdx, [rsp + 0x40]
mov rcx, rbx
call fcn.14000655c
lea rbx, [r14 + 0x1080]
mov r8, rdi
mov rcx, rbx
lea rdx, [rsp + 0x40]
call fcn.140096d80
mov rcx, rbx
call fcn.140081074
mov rcx, r14
call fcn.140042f5c
test al, al
je 0x140042ede
lea rcx, [rsp + 0x40]
call fcn.140081020
mov rdx, rax
jmp 0x140042ed6
lea r15, [r14 + 0x1080]
mov r8d, 0x800
mov rdx, r15
lea rcx, [rbp + 0x1f40]
call fcn.140096d80
xor edi, edi
mov rcx, r15
mov word [rsp + 0x40], di
call fcn.140080ffc
movzx ecx, word [r15]
mov rbx, rax
call fcn.140080a6c
test al, al
je 0x140042c42
cmp rbx, r15
jbe 0x140042c42
mov word [rbx], di
test r12d, r12d
jle 0x140042d42
xor r13d, r13d
cmp byte [r14 + 0x107e], r13b
jne 0x140042d3b
mov rcx, r15
call fcn.140080938
test al, al
je 0x140042cf0
movzx ecx, word [r14 + 0x1084]
call fcn.140080a6c
test al, al
je 0x140042cf0
cmp word [r14 + 0x1086], r13w
jne 0x140042cf0
cmp dword [r14 + 0x2280], r13d
jle 0x140042c99
mov byte [r14 + 0x107e], 1
jmp 0x140042d13
mov rcx, qword [r14 + 0x60]
lea rax, [rsp + 0x38]
xor r9d, r9d
mov qword [rsp + 0x38], r13
xor r8d, r8d
mov qword [rsp + 0x20], rax
lea edx, [r9 + 0x11]
call qword [sym.imp.SHELL32.dll_SHGetFolderLocation]
mov rdx, qword [rsp + 0x38]
lea rcx, [0x1401c5f50]
call fcn.14004995c
mov rdi, qword [0x140201fe8]
mov rax, qword [rdi]
mov rbx, qword [rax + 0x28]
mov rcx, rbx
call qword [fcn.140123b50]
mov rdx, qword [rsp + 0x38]
mov rcx, rdi
call rbx
jmp 0x140042d13
mov rcx, r15
call fcn.140081020
mov rdx, rax
lea rcx, [rsp + 0x40]
mov r8d, 0x800
call fcn.140096d80
mov rcx, r15
call fcn.140081074
dec r12d
jmp 0x140042d1c
add rsi, 2
cmp word [rsi], 0x2e
je 0x140042d18
movzx ecx, word [rsi]
call fcn.140080a6c
test al, al
je 0x140042d32
add rsi, 2
test r12d, r12d
jg 0x140042c4e
mov r13b, byte [rsp + 0x30]
xor edi, edi
test r13b, r13b
je 0x140042d68
mov r12d, 0x800
lea rdx, [rbp + 0xf40]
mov r8d, r12d
mov rcx, r15
call fcn.140080470
lea rdx, [rbp + 0xf40]
jmp 0x140042d7d
mov rcx, rsi
call fcn.14008096c
mov r12d, 0x800
test al, al
je 0x140042d8a
mov rdx, rsi
mov r8, r12
mov rcx, r15
call fcn.140096d80
jmp 0x140042da8
cmp word [rsi], di
je 0x140042da8
mov rdx, r12
mov rcx, r15
call fcn.14007f660
mov r8, r12
mov rdx, rsi
mov rcx, r15
call fcn.140096d58
mov rcx, r15
call fcn.140080444
mov ebx, eax
cmp eax, 0xffffffff
je 0x140042dd8
call fcn.1400cfafc
bt eax, ebx
jb 0x140042dd8
mov r8, r12
lea rdx, [rbp + 0x1f40]
mov rcx, r15
call fcn.140096d80
jmp 0x140042ede
cmp byte [r14 + 0x107e], dil
jne 0x140042ec3
mov rcx, r15
call fcn.140070398
test al, al
jne 0x140042ec3
mov r8d, r12d
lea rdx, [rbp + 0xf40]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_ExpandEnvironmentStringsW]
dec eax
cmp eax, 0x7fe
ja 0x140042e2d
lea rcx, [rbp + 0xf40]
call fcn.140070398
test al, al
je 0x140042e2d
lea rdx, [rbp + 0xf40]
jmp 0x140042eb8
cmp word [r15], 0x5c
jne 0x140042e6a
cmp word [r14 + 0x1082], 0x5c
jne 0x140042e6a
lea rcx, [r14 + 0x1084]
lea rdx, [0x140148118]
call fcn.14012b4fc
test rax, rax
jne 0x140042e6a
cmp dword [r14 + 0x2280], edi
jle 0x140042e6a
mov byte [r14 + 0x107e], 1
jmp 0x140042ec3
mov ecx, 0x6c
call fcn.140090bf0
mov r8, rax
lea rcx, [rbp + 0x3f40]
mov r9, r15
mov edx, 0x864
call fcn.140002910
mov ecx, 0x66
call fcn.140090bf0
mov rcx, qword [0x14019a6f0]
lea rdx, [rbp + 0x3f40]
mov r8, rax
mov r9d, 0x10
call fcn.1400d1204
lea rdx, [rbp + 0x1f40]
mov r8, r12
mov rcx, r15
call fcn.140096d80
movzx eax, word [rsp + 0x40]
neg ax
lea rax, [rsp + 0x40]
sbb rdx, rdx
and rdx, rax
mov rcx, r14
call fcn.140048180
mov rcx, qword [rbp + 0x5010]
xor rcx, rsp
call fcn.140100ed0
mov rbx, qword [rsp + 0x5170]
add rsp, 0x5120
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret