Function at 0x140002d90
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.14002fef0
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 0x140003129
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 0x140002e16
lea rdx, [rbp + 0xc0]
lea rcx, [rsp + 0x70]
call fcn.1400092a0
nop
mov r8d, 0xd
lea rdx, str.IconCache.db
lea rcx, [rsp + 0x70]
call fcn.140007ac0
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.14000aea4
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.14000afe0
mov r8d, eax
test eax, eax
jne 0x140002f00
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 0x140002ef5
mov eax, dword [rbp - 0x5c]
cmp eax, 0xa000000c
jne 0x140002ee7
mov edx, 4
jmp 0x140002f23
cmp eax, 0xa0000003
jne 0x140002ef5
mov edx, 0xa
jmp 0x140002f23
shr edx, 4
and edx, 1
or edx, 2
jmp 0x140002f23
mov dword [rsp + 0x54], 0xffff
sub eax, 2
je 0x140002f1e
sub eax, 1
je 0x140002f1e
sub eax, 0x32
je 0x140002f1e
cmp eax, 0x46
mov edx, edi
jne 0x140002f23
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 0x14000311d
cmp edx, 1
setne bl
mov rdx, qword [rsp + 0x48]
cmp rdx, 7
jbe 0x140002f8f
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x30]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140002f8a
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140003172
call fcn.14000c5e0
movdqa xmm0, xmmword [0x14003d9e0]
movdqu xmmword [rsp + 0x40], xmm0
mov word [rsp + 0x30], di
test bl, bl
je 0x140003061
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.14002fef0
mov rdx, rbx
lea rcx, [rbp - 0x50]
call fcn.140005e60
nop
lea rdx, [rsp + 0x50]
lea rcx, [rbp - 0x50]
call fcn.140006220
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.140005af0
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.14000bc84
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.__OK__
lea rcx, [0x140045580]
call fcn.140008b90
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.14000ab10
mov rcx, rax
call fcn.140008e40
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.140012a2c
nop
mov rdx, qword [rbp - 0x78]
cmp rdx, 0xf
jbe 0x140003138
inc rdx
mov rcx, qword [rsp + 0x70]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140003116
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14000315c
call fcn.14000c5e0
jmp 0x140003138
xor bl, bl
test r8d, r8d
jne 0x140003162
jmp 0x140002f4d
mov edx, eax
call fcn.140004c10
mov rcx, rax
call fcn.140008e40
mov rcx, qword [rbp + 0x1d0]
xor rcx, rsp
call fcn.14000c5c0
lea r11, [rsp + 0x2e0]
mov rbx, qword [r11 + 0x10]
mov rdi, qword [r11 + 0x18]
mov rsp, r11
pop rbp
ret
call fcn.140017038
nop
lea r8, [rsp + 0x30]
lea rdx, [rsp + 0x50]
call fcn.140002c90
nop
call fcn.140017038
int3