Function at 0x46d460
Capabilities:
Get common file path

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
mov qword [rsp + 0x18], rdi
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x30]
sub rsp, 0x130
mov rax, qword [0x004fb010]
xor rax, rsp
mov qword [rbp + 0x20], rax
xor r12d, r12d
mov qword [rsp + 0x70], r12
mov qword [rsp + 0x78], r12
lea r9, [rsp + 0x70]
xor r8d, r8d
xor edx, edx
lea rcx, [0x004b32e0]
call qword [sym.imp.ext_ms_win_shell32_shellfolders_l1_1_0.dll_SHGetKnownFolderPath]
test eax, eax
js 0x46d4d1
mov r8, qword [rsp + 0x70]
mov edx, 0x104
lea rcx, [0x00503620]
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_wcscpy_s]
lea r9, [rsp + 0x78]
xor r8d, r8d
xor edx, edx
lea rcx, [0x004b3300]
call qword [sym.imp.ext_ms_win_shell32_shellfolders_l1_1_0.dll_SHGetKnownFolderPath]
lea rsi, [0x00503830]
test eax, eax
js 0x46d506
mov r8, qword [rsp + 0x78]
mov edx, 0x104
mov rcx, rsi
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_wcscpy_s]
mov rcx, qword [rsp + 0x70]
test rcx, rcx
je 0x46d51b
call qword [sym.imp.api_ms_win_core_com_l1_1_0.dll_CoTaskMemFree]
mov qword [rsp + 0x70], r12
mov rcx, qword [rsp + 0x78]
test rcx, rcx
je 0x46d530
call qword [sym.imp.api_ms_win_core_com_l1_1_0.dll_CoTaskMemFree]
mov qword [rsp + 0x78], r12
mov edx, 0x7b
lea rcx, str.C:Usersjk_kanDesktopGerritSWMgrAsusSoftwareManagerAsusSoftwareManagerGiftBoxServiceGiftBoxServiceRPCRpcServer.cpp
call fcn.004036d0
lea rbx, [0x00400000]
lea rdx, [rbx + 0xcfcd0]
lea rdx, [rdx + rax*2]
mov eax, dword [0x00503140]
mov dword [rsp + 0x20], eax
lea r9, str.g_nosec_mode___d
mov ecx, 1
mov r8d, 0xe5
call fcn.0044a600
mov edx, 0x7b
lea rcx, str.C:Usersjk_kanDesktopGerritSWMgrAsusSoftwareManagerAsusSoftwareManagerGiftBoxServiceGiftBoxServiceRPCRpcServer.cpp
call fcn.004036d0
lea rdx, [rbx + 0xcfcd0]
lea rdx, [rdx + rax*2]
mov dword [rsp + 0x20], 4
lea r9, str.g_chk_list_size___d
mov ecx, 1
mov r8d, 0xe6
call fcn.0044a600
mov edx, 0x7b
lea rcx, str.C:Usersjk_kanDesktopGerritSWMgrAsusSoftwareManagerAsusSoftwareManagerGiftBoxServiceGiftBoxServiceRPCRpcServer.cpp
call fcn.004036d0
lea rdx, [rbx + 0xcfcd0]
lea rdx, [rdx + rax*2]
lea r9, str.Call_pre_process_check_list___and_dump_check_list:
mov ecx, 1
mov r8d, 0xe7
call fcn.0044a600
mov r15d, r12d
mov r13, 0xffffffffffffffff
nop dword [rax]
mov qword [rbp - 0x40], r12
mov qword [rbp - 0x30], r12
mov qword [rbp - 0x28], 7
mov word [rbp - 0x40], r12w
mov r8d, 0xa
lea rdx, str.C:Windows
lea rcx, [rbp - 0x40]
call sym.AsusSoftwareManager.exe_public:_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t______ptr64___cdecl_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::assign_wchar_t_const__const___ptr64__unsigned_long_long_unsigned___int64_____ptr64
nop
mov qword [rbp - 0x60], r12
mov qword [rbp - 0x50], r12
mov qword [rbp - 0x48], 7
mov word [rbp - 0x60], r12w
mov r8d, reloc.OLEAUT32.dll_SafeArrayGetDim
lea rdx, str.C:Program_Files
lea rcx, [rbp - 0x60]
call sym.AsusSoftwareManager.exe_public:_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t______ptr64___cdecl_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::assign_wchar_t_const__const___ptr64__unsigned_long_long_unsigned___int64_____ptr64
nop
movsxd rax, r15d
imul rcx, rax, 0x208
lea r14, [rbx + 0xfc4b0]
add r14, rcx
mov qword [rbp - 0x80], r12
mov qword [rbp - 0x70], r12
mov qword [rbp - 0x68], 7
mov word [rbp - 0x80], r12w
mov r8, r13
inc r8
cmp word [r14 + r8*2], 0
jne 0x46d674
mov rdx, r14
lea rcx, [rbp - 0x80]
call sym.AsusSoftwareManager.exe_public:_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t______ptr64___cdecl_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::assign_wchar_t_const__const___ptr64__unsigned_long_long_unsigned___int64_____ptr64
nop
lea rax, [rbp - 0x40]
cmp qword [rbp - 0x28], 8
cmovae rax, qword [rbp - 0x40]
mov r10, qword [rbp - 0x30]
mov r11, r10
mov rsi, qword [rbp - 0x70]
cmp rsi, r10
cmovb r11, rsi
lea r9, [rbp - 0x80]
mov rbx, qword [rbp - 0x80]
mov rdi, qword [rbp - 0x68]
cmp rdi, 8
cmovae r9, rbx
mov r8, r11
cmp r10, r11
cmovb r8, r10
test r8, r8
je 0x46d6e6
sub r9, rax
movzx ecx, word [r9 + rax]
cmp cx, word [rax]
jne 0x46d6f0
add rax, 2
sub r8, 1
jne 0x46d6d2
cmp r11, r10
jae 0x46d6fb
mov eax, r13d
jmp 0x46d701
mov eax, 1
cmovb eax, r13d
jmp 0x46d701
mov eax, r12d
seta al
test eax, eax
jne 0x46d85c
mov qword [rsp + 0x50], r12
mov qword [rsp + 0x60], r12
mov qword [rsp + 0x68], 7
mov word [rsp + 0x50], r12w
cmp rsi, r10
jb 0x46db99
lfence
mov rax, qword [rbp - 0x70]
mov rcx, qword [rbp - 0x30]
sub rax, rcx
mov r8, r13
cmp rax, r13
cmovb r8, rax
lea rax, [rbp - 0x80]
cmp qword [rbp - 0x68], 8
cmovae rax, qword [rbp - 0x80]
lea rdx, [rax + rcx*2]
lea rcx, [rsp + 0x50]
call sym.AsusSoftwareManager.exe_public:_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t______ptr64___cdecl_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::assign_wchar_t_const__const___ptr64__unsigned_long_long_unsigned___int64_____ptr64
nop
mov r9, r13
lea rax, [0x00503620]
nop word [rax + rax]
inc r9
cmp word [rax + r9*2], 0
jne 0x46d770
mov r8, rax
xor edx, edx
lea rcx, [rsp + 0x50]
call sym.AsusSoftwareManager.exe_public:_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t______ptr64___cdecl_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::insert_unsigned_long_long_unsigned___int64___wchar_t_const__const___ptr64__unsigned_long_long_unsigned___int64_____ptr64
mov qword [rbp], r12
mov qword [rbp + 0x10], r12
mov qword [rbp + 0x18], r12
movups xmm0, xmmword [rax]
movups xmmword [rbp], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rbp + 0x10], xmm1
mov qword [rax + 0x10], r12
mov qword [rax + 0x18], 7
mov word [rax], r12w
mov rdx, qword [rsp + 0x68]
cmp rdx, 8
jb 0x46d7f7
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x50]
mov rax, rcx
cmp rdx, 0x1000
jb 0x46d7f2
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x46db35
call fcn.00479330
lea r8, [rbp]
cmp qword [rbp + 0x18], 8
cmovae r8, qword [rbp]
mov edx, 0x104
mov rcx, r14
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_wcscpy_s]
mov rdx, qword [rbp + 0x18]
cmp rdx, 8
jb 0x46da1e
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp]
mov rax, rcx
cmp rdx, 0x1000
jb 0x46d852
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x46db3c
call fcn.00479330
jmp 0x46da1e
lea rax, [rbp - 0x60]
cmp qword [rbp - 0x48], 8
cmovae rax, qword [rbp - 0x60]
mov r10, qword [rbp - 0x50]
mov r11, r10
cmp rsi, r10
cmovb r11, rsi
lea r9, [rbp - 0x80]
cmp rdi, 8
cmovae r9, rbx
mov rcx, r11
cmp r10, r11
cmovb rcx, r10
test rcx, rcx
je 0x46d8aa
sub r9, rax
movzx edx, word [rax + r9]
cmp dx, word [rax]
jne 0x46d8b4
add rax, 2
sub rcx, 1
jne 0x46d896
cmp r11, r10
jae 0x46d8bf
mov eax, r13d
jmp 0x46d8c5
mov eax, 1
cmovb eax, r13d
jmp 0x46d8c5
mov eax, r12d
seta al
test eax, eax
jne 0x46da26
mov qword [rsp + 0x30], r12
mov qword [rsp + 0x40], r12
mov qword [rsp + 0x48], 7
mov word [rsp + 0x30], r12w
cmp rsi, r10
jb 0x46db93
lfence
mov rax, qword [rbp - 0x70]
mov rcx, qword [rbp - 0x50]
sub rax, rcx
mov r8, r13
cmp rax, r13
cmovb r8, rax
lea rax, [rbp - 0x80]
cmp qword [rbp - 0x68], 8
cmovae rax, qword [rbp - 0x80]
lea rdx, [rax + rcx*2]
lea rcx, [rsp + 0x30]
call sym.AsusSoftwareManager.exe_public:_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t______ptr64___cdecl_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::assign_wchar_t_const__const___ptr64__unsigned_long_long_unsigned___int64_____ptr64
nop
mov r9, r13
lea rsi, [0x00503830]
nop
inc r9
cmp word [rsi + r9*2], 0
jne 0x46d930
mov r8, rsi
xor edx, edx
lea rcx, [rsp + 0x30]
call sym.AsusSoftwareManager.exe_public:_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t______ptr64___cdecl_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::insert_unsigned_long_long_unsigned___int64___wchar_t_const__const___ptr64__unsigned_long_long_unsigned___int64_____ptr64
mov qword [rbp - 0x20], r12
mov qword [rbp - 0x10], r12
mov qword [rbp - 8], r12
movups xmm0, xmmword [rax]
movups xmmword [rbp - 0x20], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rbp - 0x10], xmm1
mov qword [rax + 0x10], r12
mov qword [rax + 0x18], 7
mov word [rax], r12w
mov rdx, qword [rsp + 0x48]
cmp rdx, 8
jb 0x46d9b7
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x30]
mov rax, rcx
cmp rdx, 0x1000
jb 0x46d9b2
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x46db43
call fcn.00479330
mov word [rsp + 0x30], r12w
lea r8, [rbp - 0x20]
cmp qword [rbp - 8], 8
cmovae r8, qword [rbp - 0x20]
mov edx, 0x104
mov rcx, r14
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_wcscpy_s]
mov rdx, qword [rbp - 8]
cmp rdx, 8
jb 0x46da19
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x20]
mov rax, rcx
cmp rdx, 0x1000
jb 0x46da14
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x46db4a
call fcn.00479330
mov word [rbp - 0x20], r12w
mov rdi, qword [rbp - 0x68]
mov rbx, qword [rbp - 0x80]
mov edx, 0x7b
lea rcx, str.C:Usersjk_kanDesktopGerritSWMgrAsusSoftwareManagerAsusSoftwareManagerGiftBoxServiceGiftBoxServiceRPCRpcServer.cpp
call fcn.004036d0
lea rcx, [0x00400000]
lea rdx, [rcx + 0xcfcd0]
lea rdx, [rdx + rax*2]
mov qword [rsp + 0x28], r14
mov dword [rsp + 0x20], r15d
lea r9, str.g_chk_list__d____s
mov ecx, 1
mov r8d, 0xf9
call fcn.0044a600
nop
cmp rdi, 8
jb 0x46daa7
lea rdx, [rdi*2 + 2]
mov rax, rbx
cmp rdx, 0x1000
jb 0x46da9e
add rdx, 0x27
mov rbx, qword [rbx - 8]
sub rax, rbx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x46db51
mov rcx, rbx
call fcn.00479330
nop
mov rdx, qword [rbp - 0x48]
cmp rdx, 8
jb 0x46dae4
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x60]
mov rax, rcx
cmp rdx, 0x1000
jb 0x46dade
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x46db58
call fcn.00479330
nop
mov rdx, qword [rbp - 0x28]
cmp rdx, 8
jb 0x46db20
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x40]
mov rax, rcx
cmp rdx, 0x1000
jb 0x46db1b
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x46db5f
call fcn.00479330
inc r15d
cmp r15d, 4
jge 0x46db66
lea rbx, [0x00400000]
jmp 0x46d5f0
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
nop
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
nop
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
nop
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
mov rcx, qword [rbp + 0x20]
xor rcx, rsp
call fcn.00479310
lea r11, [rsp + 0x130]
mov rbx, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x38]
mov rdi, qword [r11 + 0x40]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret
call fcn.00407de0
nop
call fcn.00407de0
int3