Function at 0x231945ae2
Capabilities:
Get common file path

Disassembly:
push rbp
push rbx
sub rsp, 0x318
lea rbp, [rsp + 0x80]
mov dword [rbp + 0x2b0], ecx
mov dword [rbp + 0x2b8], edx
mov dword [rbp + 0x2c0], r8d
mov dword [rbp + 0x2c8], r9d
lea rax, [rbp - 0x50]
mov edx, 0x104
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
call rax
lea rax, [rbp - 0x50]
mov rcx, rax
mov rax, qword [sym.imp.SHLWAPI.dll_PathAddBackslashA]
call rax
lea rax, [rbp + 0xbf]
mov rcx, rax
call sym.f_exsh_int__int__int__int_::lambda__1::operator_____const
mov rcx, rax
call method.ay::obfuscated_data_8ull__16079974220019609075ull__char_.operator_char__
mov edx, 0
mov rcx, rax
mov rax, qword [sym.imp.USER32.dll_FindWindowA]
call rax
mov qword [rbp + 0x288], rax
cmp dword [rbp + 0x2b0], 0
je 0x231945bb0
cmp qword [rbp + 0x288], 0
je 0x231945b9d
mov rax, qword [rbp + 0x288]
mov r9d, 0
mov r8d, 0
mov edx, 0x12
mov rcx, rax
mov rax, qword [sym.imp.USER32.dll_PostMessageA]
call rax
jmp 0x231945fba
mov ecx, 0xa
mov rax, qword [sym.imp.KERNEL32.dll_SetLastError]
call rax
jmp 0x231945fba
cmp dword [rbp + 0x2b8], 0
je 0x231945d72
cmp qword [rbp + 0x288], 0
jne 0x231945d5f
lea rax, [rbp + 0x10e]
mov qword [rbp + 0x280], rax
nop
nop
lea rax, [rbp + 0x10f]
mov rcx, rax
call sym.f_exsh_int__int__int__int_::lambda__3::operator_____const
mov rcx, rax
call method.ay::obfuscated_data_13ull__6564553977755818945ull__char_.operator_char__
mov rdx, rax
lea rcx, [rbp + 0x10e]
lea rax, [rbp + 0xe0]
mov r8, rcx
mov rcx, rax
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string_std.allocator_char____char_const__std::allocator_char__const_
lea rax, [rbp + 0x15f]
mov qword [rbp + 0x278], rax
nop
nop
lea rcx, [rbp + 0x15f]
lea rdx, [rbp - 0x50]
lea rax, [rbp + 0x130]
mov r8, rcx
mov rcx, rax
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string_std.allocator_char____char_const__std::allocator_char__const_
lea rax, [rbp + 0x18e]
mov qword [rbp + 0x270], rax
nop
nop
lea rax, [rbp + 0x18f]
mov rcx, rax
call sym.f_exsh_int__int__int__int_::lambda__2::operator_____const
mov rcx, rax
call method.ay::obfuscated_data_10ull__6564553977755818945ull__char_.operator_char__
mov rdx, rax
lea rcx, [rbp + 0x18e]
lea rax, [rbp + 0x160]
mov r8, rcx
mov rcx, rax
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string_std.allocator_char____char_const__std::allocator_char__const_
lea rax, [rbp + 0x110]
lea rcx, [rbp + 0x130]
lea rdx, [rbp + 0x160]
mov r8, rcx
mov rcx, rax
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____std::operator_char__std::char_traits_char___std.allocator_char____std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char_____std::__cxx11::basi
lea rax, [rbp + 0xc0]
lea rcx, [rbp + 0xe0]
lea rdx, [rbp + 0x110]
mov r8, rcx
mov rcx, rax
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____std::operator_char__std::char_traits_char___std.allocator_char____std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char_____std::__cxx11::basi
lea rax, [rbp + 0xc0]
mov rcx, rax
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___.c_str___const
mov r8d, 0
mov edx, 0
mov rcx, rax
call sym.f_cp_char__unsigned_long__int_
lea rax, [rbp + 0xc0]
mov rcx, rax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string__
lea rax, [rbp + 0x110]
mov rcx, rax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string__
lea rax, [rbp + 0x160]
mov rcx, rax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string__
lea rax, [rbp + 0x18e]
mov rcx, rax
call method.std::__new_allocator_char_.__new_allocator__
nop
lea rax, [rbp + 0x130]
mov rcx, rax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string__
lea rax, [rbp + 0x15f]
mov rcx, rax
call method.std::__new_allocator_char_.__new_allocator__
nop
lea rax, [rbp + 0xe0]
mov rcx, rax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string__
lea rax, [rbp + 0x10e]
mov rcx, rax
call method.std::__new_allocator_char_.__new_allocator__
jmp 0x231945fba
mov ecx, 0x1392
mov rax, qword [sym.imp.KERNEL32.dll_SetLastError]
call rax
jmp 0x231945fba
cmp dword [rbp + 0x2c0], 0
je 0x231945f63
mov rax, qword [rbp + 0x288]
mov r9d, 0
mov r8d, 0
mov edx, 0x12
mov rcx, rax
mov rax, qword [sym.imp.USER32.dll_PostMessageA]
call rax
lea rdx, [rbp - 0x54]
mov rax, qword [rbp + 0x288]
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_GetExitCodeProcess]
call rax
mov ecx, 0x3e8
mov rax, qword [sym.imp.KERNEL32.dll_Sleep]
call rax
mov eax, dword [rbp - 0x54]
cmp eax, 0x103
je 0x231945da3
lea rax, [rbp + 0x1de]
mov qword [rbp + 0x268], rax
nop
nop
lea rax, [rbp + 0x1df]
mov rcx, rax
call sym.f_exsh_int__int__int__int_::lambda__5::operator_____const
mov rcx, rax
call method.ay::obfuscated_data_13ull__16694073857827895705ull__char_.operator_char__
mov rdx, rax
lea rcx, [rbp + 0x1de]
lea rax, [rbp + 0x1b0]
mov r8, rcx
mov rcx, rax
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string_std.allocator_char____char_const__std::allocator_char__const_
lea rax, [rbp + 0x22f]
mov qword [rbp + 0x260], rax
nop
nop
lea rcx, [rbp + 0x22f]
lea rdx, [rbp - 0x50]
lea rax, [rbp + 0x200]
mov r8, rcx
mov rcx, rax
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string_std.allocator_char____char_const__std::allocator_char__const_
lea rax, [rbp + 0x256]
mov qword [rbp + 0x258], rax
nop
nop
lea rax, [rbp + 0x257]
mov rcx, rax
call sym.f_exsh_int__int__int__int_::lambda__4::operator_____const
mov rcx, rax
call method.ay::obfuscated_data_10ull__16694073857827895705ull__char_.operator_char__
mov rdx, rax
lea rcx, [rbp + 0x256]
lea rax, [rbp + 0x230]
mov r8, rcx
mov rcx, rax
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string_std.allocator_char____char_const__std::allocator_char__const_
lea rax, [rbp + 0x1e0]
lea rcx, [rbp + 0x200]
lea rdx, [rbp + 0x230]
mov r8, rcx
mov rcx, rax
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____std::operator_char__std::char_traits_char___std.allocator_char____std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char_____std::__cxx11::basi
lea rax, [rbp + 0x190]
lea rcx, [rbp + 0x1b0]
lea rdx, [rbp + 0x1e0]
mov r8, rcx
mov rcx, rax
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____std::operator_char__std::char_traits_char___std.allocator_char____std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char_____std::__cxx11::basi
lea rax, [rbp + 0x190]
mov rcx, rax
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___.c_str___const
mov r8d, 0
mov edx, 0
mov rcx, rax
call sym.f_cp_char__unsigned_long__int_
lea rax, [rbp + 0x190]
mov rcx, rax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string__
lea rax, [rbp + 0x1e0]
mov rcx, rax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string__
lea rax, [rbp + 0x230]
mov rcx, rax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string__
lea rax, [rbp + 0x256]
mov rcx, rax
call method.std::__new_allocator_char_.__new_allocator__
nop
lea rax, [rbp + 0x200]
mov rcx, rax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string__
lea rax, [rbp + 0x22f]
mov rcx, rax
call method.std::__new_allocator_char_.__new_allocator__
nop
lea rax, [rbp + 0x1b0]
mov rcx, rax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string__
lea rax, [rbp + 0x1de]
mov rcx, rax
call method.std::__new_allocator_char_.__new_allocator__
jmp 0x231945fba
cmp dword [rbp + 0x2c8], 0
je 0x231945fac
cmp qword [rbp + 0x288], 0
je 0x231945f9c
mov rax, qword [rbp + 0x288]
mov r9d, 0
mov r8d, 0
mov edx, 0x10
mov rcx, rax
mov rax, qword [sym.imp.USER32.dll_PostMessageA]
call rax
jmp 0x231945fba
mov ecx, 0xa
mov rax, qword [sym.imp.KERNEL32.dll_SetLastError]
call rax
jmp 0x231945fba
mov ecx, 1
mov rax, qword [sym.imp.KERNEL32.dll_SetLastError]
call rax
mov rax, qword [sym.imp.KERNEL32.dll_GetLastError]
call rax
jmp 0x23194610c
add rsp, 0x318
pop rbx
pop rbp
ret