Function at 0x140004da0
Capabilities:
Get common file path

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
mov qword [rsp + 0x18], rdi
mov qword [rsp + 0x20], r14
push rbp
lea rbp, [rsp - 0x57]
sub rsp, 0xf0
mov rax, qword [section..data]
xor rax, rsp
mov qword [rbp + 0x47], rax
xor r14d, r14d
mov dword [rbp - 0x69], r14d
lea r9, [rbp - 0x21]
xor r8d, r8d
xor edx, edx
lea rcx, [0x140014640]
call qword [sym.imp.SHELL32.dll_SHGetKnownFolderPath]
xorps xmm0, xmm0
movups xmmword [rbp + 7], xmm0
xorps xmm1, xmm1
movdqu xmmword [rbp + 0x17], xmm1
mov rdx, qword [rbp - 0x21]
mov r8, 0xffffffffffffffff
inc r8
cmp word [rdx + r8*2], r14w
jne 0x140004e06
lea rcx, [rbp + 7]
call fcn.1400085a0
nop
lea rdx, [rbp + 7]
cmp qword [rbp + 0x1f], 7
cmova rdx, qword [rbp + 7]
mov rax, qword [rbp + 0x17]
lea rsi, [rdx + rax*2]
lea rdi, [rbp + 7]
cmova rdi, qword [rbp + 7]
xorps xmm0, xmm0
movups xmmword [rbp - 0x19], xmm0
cmp rdi, rsi
jne 0x140004e5a
mov qword [rbp - 9], r14
mov qword [rbp - 1], 0xf
mov byte [rbp - 0x19], 0
jmp 0x140004f5f
mov rax, rsi
sub rax, rdi
sar rax, 1
mov rdx, r14
mov qword [rbp - 9], rdx
mov ebx, 0xf
mov qword [rbp - 1], rbx
movabs rcx, 0x7fffffffffffffff
cmp rax, rcx
ja 0x14000556c
cmp rax, rbx
jbe 0x140004f20
mov rbx, rax
or rbx, 0xf
cmp rbx, rcx
jbe 0x140004ed2
mov rbx, rcx
movabs rax, 0x8000000000000000
add rax, 0x27
mov rcx, rax
call fcn.140011b10
mov rcx, rax
test rax, rax
je 0x1400054e2
add rax, 0x27
and rax, 0xffffffffffffffe0
mov qword [rax - 8], rcx
mov rdx, qword [rbp - 9]
jmp 0x140004f0d
mov eax, 0x16
cmp rbx, rax
cmovb rbx, rax
lea rcx, [rbx + 1]
cmp rcx, 0x1000
jb 0x140004efa
lea rax, [rcx + 0x27]
cmp rax, rcx
jbe 0x140005572
jmp 0x140004eac
test rcx, rcx
je 0x140004f0a
call fcn.140011b10
mov rdx, qword [rbp - 9]
jmp 0x140004f0d
mov rax, r14
mov qword [rbp - 0x19], rax
mov qword [rbp - 1], rbx
nop word [rax + rax]
lea rcx, [rbp - 0x19]
cmp rbx, 0xf
cmova rcx, qword [rbp - 0x19]
movzx eax, byte [rdi]
mov byte [rdx + rcx], al
mov rdx, qword [rbp - 9]
inc rdx
mov qword [rbp - 9], rdx
add rdi, 2
cmp rdi, rsi
je 0x140004f4d
mov rbx, qword [rbp - 1]
jmp 0x140004f20
lea rax, [rbp - 0x19]
cmp qword [rbp - 1], 0xf
cmova rax, qword [rbp - 0x19]
mov byte [rax + rdx], 0
mov rcx, qword [rbp - 0x21]
call qword [sym.imp.ole32.dll_CoTaskMemFree]
mov rdi, qword [rbp - 9]
lea rbx, [rbp - 0x19]
cmp qword [rbp - 1], 0xf
cmova rbx, qword [rbp - 0x19]
call fcn.1400111c4
mov qword [rbp - 0x79], rbx
mov qword [rbp - 0x71], rdi
lea r8, [rbp - 0x79]
mov edx, eax
lea rcx, [rbp - 0x61]
call fcn.140001af0
nop
mov esi, 0x31
mov dword [rbp - 0x69], esi
lea rcx, [rbp - 0x61]
call fcn.140003240
test al, al
je 0x140004ff5
mov rdi, qword [rbp - 9]
lea rbx, [rbp - 0x19]
cmp qword [rbp - 1], 0xf
cmova rbx, qword [rbp - 0x19]
call fcn.1400111c4
mov qword [rbp - 0x79], rbx
mov qword [rbp - 0x71], rdi
lea r8, [rbp - 0x79]
mov edx, eax
lea rcx, [rbp - 0x41]
call fcn.140001af0
nop
mov esi, 0xf3
mov dword [rbp - 0x69], esi
lea rcx, [rbp - 0x41]
call fcn.140003340
test al, al
je 0x140004ff5
mov bl, 1
jmp 0x140004ff7
xor bl, bl
test sil, 2
je 0x140005055
and esi, 0xfffffffd
mov rdx, qword [rbp - 0x29]
cmp rdx, 7
jbe 0x140005043
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x41]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14000503e
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x14000503e
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.140011b4c
movdqa xmm0, xmmword [0x140015110]
movdqu xmmword [rbp - 0x31], xmm0
mov word [rbp - 0x41], r14w
test sil, 1
je 0x1400050a1
and esi, 0xfffffffe
mov rdx, qword [rbp - 0x49]
cmp rdx, 7
jbe 0x1400050a1
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x61]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14000509c
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x14000509c
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.140011b4c
test bl, bl
je 0x140005488
lea rdx, str.Searching_in_directory:
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
call fcn.140007670
lea rdx, [rbp - 0x19]
cmp qword [rbp - 1], 0xf
cmova rdx, qword [rbp - 0x19]
mov r8, qword [rbp - 9]
mov rcx, rax
call fcn.1400096f0
lea rdx, [0x140007840]
mov rcx, rax
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64____cdecl___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64_____ptr64]
mov rdi, qword [rbp - 9]
lea rbx, [rbp - 0x19]
cmp qword [rbp - 1], 0xf
cmova rbx, qword [rbp - 0x19]
call fcn.1400111c4
mov qword [rbp - 0x79], rbx
mov qword [rbp - 0x71], rdi
lea r8, [rbp - 0x79]
mov edx, eax
lea rcx, [rbp - 0x61]
call fcn.140001af0
or esi, 0x300
lea rcx, [rbp - 0x61]
call fcn.140004190
nop
mov rdx, qword [rbp - 0x49]
cmp rdx, 7
jbe 0x140005167
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x61]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140005162
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x140005162
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.140011b4c
lea rdx, str.scan_complete.
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
call fcn.140007670
lea rdx, [0x140007840]
mov rcx, rax
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64____cdecl___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64_____ptr64]
xorps xmm0, xmm0
movups xmmword [rbp + 0x27], xmm0
movdqa xmm1, xmmword [0x140015120]
movdqu xmmword [rbp + 0x37], xmm1
mov byte [rbp + 0x27], 0
lea rdx, str.whats_the_key_bozo__
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
call fcn.140007670
lea rdx, [rbp + 0x27]
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_istream_char__struct_std::char_traits_char___std::cin]
call fcn.140007a00
mov rdi, qword [rbp - 9]
lea rbx, [rbp - 0x19]
cmp qword [rbp - 1], 0xf
cmova rbx, qword [rbp - 0x19]
call fcn.1400111c4
mov qword [rbp - 0x79], rbx
mov qword [rbp - 0x71], rdi
lea r8, [rbp - 0x79]
mov edx, eax
lea rcx, [rbp - 0x61]
call fcn.140001af0
or esi, 0xc00
or esi, 4
mov dword [rbp - 0x69], esi
lea rcx, [rbp - 0x61]
call fcn.140003240
test al, al
je 0x140005257
mov rdi, qword [rbp - 9]
lea rbx, [rbp - 0x19]
cmp qword [rbp - 1], 0xf
cmova rbx, qword [rbp - 0x19]
call fcn.1400111c4
mov qword [rbp - 0x79], rbx
mov qword [rbp - 0x71], rdi
lea r8, [rbp - 0x79]
mov edx, eax
lea rcx, [rbp - 0x41]
call fcn.140001af0
or esi, 0x3000
or esi, 8
mov dword [rbp - 0x69], esi
lea rcx, [rbp - 0x41]
call fcn.140003340
test al, al
je 0x140005257
mov bl, 1
jmp 0x140005259
xor bl, bl
test sil, 8
je 0x1400052b7
and esi, 0xfffffff7
mov rdx, qword [rbp - 0x29]
cmp rdx, 7
jbe 0x1400052a5
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x41]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400052a0
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x1400052a0
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.140011b4c
movdqa xmm0, xmmword [0x140015110]
movdqu xmmword [rbp - 0x31], xmm0
mov word [rbp - 0x41], r14w
test sil, 4
je 0x140005300
mov rdx, qword [rbp - 0x49]
cmp rdx, 7
jbe 0x140005300
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x61]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400052fb
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x1400052fb
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.140011b4c
test bl, bl
je 0x14000540f
lea rdx, str.Searching_in_directory:
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
call fcn.140007670
lea rdx, [rbp - 0x19]
cmp qword [rbp - 1], 0xf
cmova rdx, qword [rbp - 0x19]
mov r8, qword [rbp - 9]
mov rcx, rax
call fcn.1400096f0
lea rdx, [0x140007840]
mov rcx, rax
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64____cdecl___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64_____ptr64]
mov rdi, qword [rbp - 9]
lea rbx, [rbp - 0x19]
cmp qword [rbp - 1], 0xf
cmova rbx, qword [rbp - 0x19]
call fcn.1400111c4
mov qword [rbp - 0x79], rbx
mov qword [rbp - 0x71], rdi
lea r8, [rbp - 0x79]
mov edx, eax
lea rcx, [rbp - 0x61]
call fcn.140001af0
nop
lea rdx, [rbp + 0x27]
lea rcx, [rbp - 0x61]
call fcn.1400047b0
nop
mov rdx, qword [rbp - 0x49]
cmp rdx, 7
jbe 0x1400053c5
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x61]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400053c0
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x1400053c0
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.140011b4c
lea rdx, str.scan_complete.
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
call fcn.140007670
lea rdx, [0x140007840]
mov rcx, rax
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64____cdecl___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64_____ptr64]
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_wchar_t__struct_std::char_traits_wchar_t___std::wcout]
call fcn.140007be0
lea rdx, [0x140007e50]
mov rcx, rax
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_wchar_t__struct_std::char_traits_wchar_t______ptr64___cdecl_std::basic_ostream_wchar_t__struct_std::char_traits_wchar_t__::operator___class_std::basic_ostream_wchar_t__struct_std::char_traits_wchar_t______ptr64____cdecl___class_std::basic_ostream_wchar_t__struct_std::char_traits_wchar_t______ptr64_____ptr64]
call qword [sym.imp.api_ms_win_crt_conio_l1_1_0.dll__getch]
mov ebx, r14d
jmp 0x140005437
lea rdx, str.Invalid_directory.
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cerr]
call fcn.140007670
lea rdx, [0x140007840]
mov rcx, rax
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64____cdecl___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64_____ptr64]
mov ebx, 1
mov rdx, qword [rbp + 0x3f]
cmp rdx, 0xf
jbe 0x140005475
inc rdx
mov rcx, qword [rbp + 0x27]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140005470
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x140005470
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.140011b4c
movdqa xmm0, xmmword [0x140015120]
movdqu xmmword [rbp + 0x37], xmm0
mov byte [rbp + 0x27], 0
jmp 0x1400054b0
lea rdx, str.Invalid_directory.
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cerr]
call fcn.140007670
lea rdx, [0x140007840]
mov rcx, rax
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64____cdecl___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64_____ptr64]
mov ebx, 1
mov rdx, qword [rbp - 1]
cmp rdx, 0xf
jbe 0x1400054ee
inc rdx
mov rcx, qword [rbp - 0x19]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400054e9
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x1400054e9
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.140011b4c
mov qword [rbp - 9], r14
mov qword [rbp - 1], 0xf
mov byte [rbp - 0x19], 0
mov rdx, qword [rbp + 0x1f]
cmp rdx, 7
jbe 0x140005541
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp + 7]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14000553c
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x14000553c
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.140011b4c
mov eax, ebx
mov rcx, qword [rbp + 0x47]
xor rcx, rsp
call fcn.140011af0
lea r11, [rsp + 0xf0]
mov rbx, qword [r11 + 0x10]
mov rsi, qword [r11 + 0x18]
mov rdi, qword [r11 + 0x20]
mov r14, qword [r11 + 0x28]
mov rsp, r11
pop rbp
ret
call fcn.1400011b0
nop
call fcn.140001110
int3