Function at 0x140002fc0
Capabilities:
Get common file path

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rdi
push rbp
lea rbp, [rsp - 0x1e0]
sub rsp, 0x2e0
mov rax, qword [0x140044080]
xor rax, rsp
mov qword [rbp + 0x1d0], rax
xor edi, edi
xor edx, edx
mov r8d, 0x104
lea rcx, [rbp + 0xc0]
call fcn.1400304a0
lea rax, [rbp + 0xc0]
mov qword [rsp + 0x20], rax
xor r9d, r9d
xor r8d, r8d
mov edx, 0x1c
xor ecx, ecx
call qword [sym.imp.SHELL32.dll_SHGetFolderPathA]
test eax, eax
js 0x140003359
xorps xmm0, xmm0
movups xmmword [rsp + 0x70], xmm0
mov qword [rbp - 0x80], rdi
mov qword [rbp - 0x78], rdi
lea rax, [rbp + 0xc0]
mov r8, 0xffffffffffffffff
inc r8
cmp byte [rax + r8], dil
jne 0x140003046
lea rdx, [rbp + 0xc0]
lea rcx, [rsp + 0x70]
call fcn.140009850
nop
mov r8d, 0xd
lea rdx, str.IconCache.db
lea rcx, [rsp + 0x70]
call fcn.140008070
lea rax, [rsp + 0x70]
cmp qword [rbp - 0x78], 0xf
cmova rax, qword [rsp + 0x70]
mov qword [rsp + 0x50], rax
mov rax, qword [rbp - 0x80]
mov qword [rsp + 0x58], rax
call fcn.14000b454
movaps xmm0, xmmword [rsp + 0x50]
movdqa xmmword [rsp + 0x50], xmm0
lea r8, [rsp + 0x50]
mov edx, eax
lea rcx, [rsp + 0x30]
call fcn.1400021d0
nop
lea rcx, [rsp + 0x30]
cmp qword [rsp + 0x48], 7
cmova rcx, qword [rsp + 0x30]
mov r9d, 0xffffffff
mov r8d, 3
lea rdx, [rbp - 0x70]
call fcn.14000b590
mov r8d, eax
test eax, eax
jne 0x140003130
mov edx, dword [rbp - 0x60]
test dl, 1
mov ecx, 0x1ff
mov eax, 0x16d
cmovne ecx, eax
mov dword [rsp + 0x54], ecx
mov ecx, edx
shr ecx, 0xa
test cl, 1
je 0x140003125
mov eax, dword [rbp - 0x5c]
cmp eax, 0xa000000c
jne 0x140003117
mov edx, 4
jmp 0x140003153
cmp eax, 0xa0000003
jne 0x140003125
mov edx, 0xa
jmp 0x140003153
shr edx, 4
and edx, 1
or edx, 2
jmp 0x140003153
mov dword [rsp + 0x54], 0xffff
sub eax, 2
je 0x14000314e
sub eax, 1
je 0x14000314e
sub eax, 0x32
je 0x14000314e
cmp eax, 0x46
mov edx, edi
jne 0x140003153
mov edx, 1
mov dword [rsp + 0x50], r8d
lea rax, [0x140044cf0]
mov qword [rsp + 0x58], rax
movaps xmm0, xmmword [rsp + 0x50]
movdqa xmmword [rsp + 0x50], xmm0
test edx, edx
je 0x14000334d
cmp edx, 1
setne bl
mov rdx, qword [rsp + 0x48]
cmp rdx, 7
jbe 0x1400031bf
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x30]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400031ba
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400033a2
call fcn.14000cb90
movdqa xmm0, xmmword [0x14003da80]
movdqu xmmword [rsp + 0x40], xmm0
mov word [rsp + 0x30], di
test bl, bl
je 0x140003291
lea rbx, [rsp + 0x70]
cmp qword [rbp - 0x78], 0xf
cmova rbx, qword [rsp + 0x70]
xor edx, edx
mov r8d, 0x110
lea rcx, [rbp - 0x50]
call fcn.1400304a0
mov rdx, rbx
lea rcx, [rbp - 0x50]
call fcn.140006410
nop
lea rdx, [rsp + 0x50]
lea rcx, [rbp - 0x50]
call fcn.1400067d0
nop
mov rax, qword [rbp - 0x50]
movsxd rcx, dword [rax + 4]
lea rax, vtable.std::basic_ifstream_char__struct_std::char_traits_char__.0
mov qword [rbp + rcx - 0x50], rax
mov rax, qword [rbp - 0x50]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0xb0]
mov dword [rbp + rcx - 0x54], edx
lea rcx, [rbp - 0x40]
call fcn.1400060a0
mov rax, qword [rbp - 0x50]
movsxd rcx, dword [rax + 4]
lea rax, vtable.std::basic_istream_char__struct_std::char_traits_char__.0
mov qword [rbp + rcx - 0x50], rax
mov rax, qword [rbp - 0x50]
movsxd rcx, dword [rax + 4]
lea r8d, [rcx - 0x18]
mov dword [rbp + rcx - 0x54], r8d
lea rax, vtable.std::ios_base.0
mov qword [rbp + 0x60], rax
lea rcx, [rbp + 0x60]
call fcn.14000c234
nop
mov rcx, qword [rsp + 0x58]
add rcx, qword [rsp + 0x50]
add qword [0x140046bd0], rcx
mov edx, 0xa
mov rcx, qword [0x140046bc0]
call qword [sym.imp.KERNEL32.dll_SetConsoleTextAttribute]
lea rdx, str.______
lea rcx, [0x140045580]
call fcn.140009140
mov edx, 6
mov rcx, qword [0x140046bc0]
call qword [sym.imp.KERNEL32.dll_SetConsoleTextAttribute]
lea rdx, [rsp + 0x70]
cmp qword [rbp - 0x78], 0xf
cmova rdx, qword [rsp + 0x70]
mov r8, qword [rbp - 0x80]
call fcn.14000b0c0
mov rcx, rax
call fcn.1400093f0
movzx edx, word [0x140046bc8]
mov rcx, qword [0x140046bc0]
call qword [sym.imp.KERNEL32.dll_SetConsoleTextAttribute]
lea rcx, [rsp + 0x70]
cmp qword [rbp - 0x78], 0xf
cmova rcx, qword [rsp + 0x70]
call fcn.140012fdc
nop
mov rdx, qword [rbp - 0x78]
cmp rdx, 0xf
jbe 0x140003368
inc rdx
mov rcx, qword [rsp + 0x70]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140003346
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14000338c
call fcn.14000cb90
jmp 0x140003368
xor bl, bl
test r8d, r8d
jne 0x140003392
jmp 0x14000317d
mov edx, eax
call fcn.1400051c0
mov rcx, rax
call fcn.1400093f0
mov rcx, qword [rbp + 0x1d0]
xor rcx, rsp
call fcn.14000cb70
lea r11, [rsp + 0x2e0]
mov rbx, qword [r11 + 0x10]
mov rdi, qword [r11 + 0x18]
mov rsp, r11
pop rbp
ret
call fcn.1400175e8
nop
lea r8, [rsp + 0x30]
lea rdx, [rsp + 0x50]
call fcn.140002c90
nop
call fcn.1400175e8
int3