Function at 0x140194500
Capabilities:
Get common file path

Disassembly:
mov rax, rsp
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0xc00
mov qword [rsp + 0x40], 0xfffffffffffffffe
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rbp
mov qword [rax + 0x20], rsi
movaps xmmword [rax - 0x38], xmm6
movaps xmmword [rax - 0x48], xmm7
movaps xmmword [rax - 0x58], xmm8
mov rax, qword [0x14042d950]
xor rax, rsp
mov qword [rsp + Ordinal_3013], rax
mov r13, rcx
mov qword [rsp + 0x38], rcx
mov byte [0x140442ef7], 0
mov edx, 0x4b7
call sub.MFC80U.DLL_Ordinal_2682
mov r14, rax
xor r9d, r9d
xor r8d, r8d
mov edx, Ordinal_332
mov rcx, qword [rax + 0x40]
call qword [sym.imp.USER32.dll_SendMessageW]
mov rbx, qword [0x140c46070]
mov rdi, rbx
mov rsi, qword [0x140c46068]
cmp rsi, rbx
jbe 0x1401945a2
call qword [sym.imp.MSVCR80.dll__invalid_parameter_noinfo]
mov rbx, qword [0x140c46070]
mov rsi, qword [0x140c46068]
cmp rsi, rbx
jbe 0x1401945b4
call qword [sym.imp.MSVCR80.dll__invalid_parameter_noinfo]
mov rbx, qword [0x140c46070]
movabs r12, 0x7878787878787879
cmp rsi, rdi
je 0x140194617
mov rcx, rbx
sub rcx, rdi
mov rax, r12
imul rcx
mov rbp, rdx
sar rbp, 7
mov rax, rbp
shr rax, 0x3f
add rbp, rax
imul rbp, rbp, 0x110
add rbp, rsi
cmp rdi, rbx
je 0x140194610
sub rsi, rdi
lea rcx, [rsi + rdi]
mov rdx, rdi
mov r8d, Ordinal_277
call sub.ntdll.dll_memcpy
add rdi, 0x110
cmp rdi, rbx
jne 0x1401945f2
mov qword [0x140c46070], rbp
mov rbx, qword [0x140c46090]
mov rdi, rbx
mov rsi, qword [0x140c46088]
cmp rsi, rbx
jbe 0x140194641
call qword [sym.imp.MSVCR80.dll__invalid_parameter_noinfo]
mov rbx, qword [0x140c46090]
mov rsi, qword [0x140c46088]
cmp rsi, rbx
jbe 0x140194653
call qword [sym.imp.MSVCR80.dll__invalid_parameter_noinfo]
mov rbx, qword [0x140c46090]
cmp rsi, rdi
je 0x1401946b5
mov rcx, rbx
sub rcx, rdi
mov rax, r12
imul rcx
mov rbp, rdx
sar rbp, 7
mov rax, rbp
shr rax, 0x3f
add rbp, rax
imul rbp, rbp, 0x110
add rbp, rsi
cmp rdi, rbx
je 0x1401946ae
sub rsi, rdi
nop
nop
nop
lea rcx, [rsi + rdi]
mov rdx, rdi
mov r8d, Ordinal_277
call sub.ntdll.dll_memcpy
add rdi, 0x110
cmp rdi, rbx
jne 0x140194690
mov qword [0x140c46090], rbp
lea rcx, [rsp + 0x160]
call qword [sym.imp.MSVCP80.dll_public:_void___cdecl_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::constructor_void____ptr64]
nop
mov word [rsp + Ordinal_1986], 0
xor edx, edx
mov r8d, reloc.MFC80U.DLL_Ordinal_1022
lea rcx, [rsp + reloc.MFC80U.DLL_Ordinal_1986]
call sub.ntdll.dll_memset
mov edx, reloc.MFC80U.DLL_Ordinal_512
lea rcx, [rsp + 0x7c0]
call qword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
lea rdx, [rsp + 0x7c0]
lea rcx, [rsp + 0x160]
call qword [reloc.MSVCP80.dll___4__basic_string__WU__char_traits__W_std__V__allocator__W_2__std__QEAAAEAV01_PEB_W_Z]
mov r9d, 2
xor r8d, r8d
lea rdx, [rsp + 0x190]
lea rcx, [rsp + 0x160]
call qword [sym.imp.MSVCP80.dll_public:_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t_____cdecl_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::substr_unsigned_long_long_unsigned___int64___unsigned_long_long_unsigned___int64_____ptr64]
nop
mov rdx, rax
lea rcx, [rsp + 0x160]
call qword [reloc.MSVCP80.dll___4__basic_string__WU__char_traits__W_std__V__allocator__W_2__std__QEAAAEAV01_AEBV01__Z]
nop
lea rcx, [rsp + 0x190]
call qword [sym.imp.MSVCP80.dll_public:_void___cdecl_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::destructor_void____ptr64]
mov edx, dword [0x140c47dd0]
test dl, 1
jne 0x140194771
or edx, 1
mov dword [0x140c47dd0], edx
call fcn.140055490
mov rcx, rax
mov qword [0x140c47dc8], rax
jmp 0x140194778
mov rcx, qword [0x140c47dc8]
mov rax, qword [rcx]
call qword [rax + 0x18]
mov r15, rax
mov qword [rsp + 0x30], rax
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx + 0x18]
mov rbx, rax
movsd xmm7, qword [0x1403b85b0]
movsd xmm8, qword [0x1403b93e8]
test rax, rax
je 0x140194e78
nop
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 0x58]
test eax, eax
jne 0x140194e5e
mov word [rsp + 0x190], ax
xor eax, eax
mov qword [rsp + 0x192], rax
mov qword [rsp + 0x19a], rax
mov qword [rsp + reloc.MFC80U.DLL_Ordinal_418], rax
mov dword [rsp + 0x1aa], eax
mov word [rsp + 0x1ae], ax
mov rax, qword [rbx]
mov r8d, 0x20
lea rdx, [rsp + 0x190]
mov rcx, rbx
call qword [rax + 0x48]
test eax, eax
je 0x140194e5e
lea rsi, [rsp + 0x190]
lea rdi, [0x140368a68]
mov ecx, 4
repe cmpsw word [rsi], word [rdi]
jne 0x140194e5e
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 0x60]
test eax, eax
setne r13b
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 0x78]
mov r12, rax
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx + 0x30]
mov rbx, rax
test rax, rax
je 0x140194b5f
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx + 0x18]
mov rbp, rax
lea rax, [rsp + 0x188]
mov ecx, dword [0x140368a70]
mov dword [rax], ecx
movzx ecx, word [0x140368a74]
mov word [rax + 4], cx
xor eax, eax
mov word [rsp + 0x18e], ax
movzx ecx, word [rbp + 0x1c]
mov word [rsp + 0x188], cx
lea rdx, [rsp + 0x188]
lea rcx, [rsp + 0x160]
call qword [sym.imp.MSVCP80.dll_public:_int___cdecl_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::compare_wchar_t_const____ptr64_const___ptr64]
test eax, eax
je 0x140194b5f
mov rsi, qword [rbp + 8]
shl rsi, 9
movzx eax, word [rbp + 0x1c]
test ax, ax
je 0x140194aac
cmp ax, 0x2a
je 0x1401949f1
mov word [rsp + 0x1c0], 0
xor edx, edx
lea r8d, [rdx + 0x7e]
lea rcx, [rsp + 0x1c2]
call sub.ntdll.dll_memset
mov word [rsp + 0x2c0], 0
xor edx, edx
lea r8d, [rdx + 0x7e]
lea rcx, [rsp + 0x2c2]
call sub.ntdll.dll_memset
cvtsi2sd xmm6, rsi
test rsi, rsi
jns 0x140194920
addsd xmm6, xmm7
mulsd xmm6, xmm8
mulsd xmm6, xmm8
mulsd xmm6, xmm8
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 0x30]
mov rdi, qword [rax]
mov r8d, 0x80
lea rdx, [rsp + 0x2c0]
mov rcx, rax
call qword [rdi + 0x40]
movsd qword [rsp + 0x28], xmm6
lea rax, [rsp + 0x2c0]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x188]
lea r8, [0x140368a78]
mov edx, 0x80
lea rcx, [rsp + 0x1c0]
call fcn.140013b00
lea r9, [rsp + 0x1c0]
xor r8d, r8d
mov edx, 0x143
mov rcx, qword [r14 + 0x40]
call qword [sym.imp.USER32.dll_SendMessageW]
mov qword [rsp + 0x50], rsi
cmp dword [rbp + 0x10], 0
setne byte [rsp + 0x58]
mov byte [rsp + 0x59], r13b
cmp dword [rbp + 0xca], 0
setne byte [rsp + 0x5a]
xor dil, dil
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 0x48]
movzx ecx, dil
cmp eax, 0xb
mov eax, 1
cmove ecx, eax
mov byte [rsp + 0x5b], cl
lea rdx, [rsp + 0x50]
lea rcx, [0x140c46060]
call fcn.140013f10
jmp 0x140194b5f
mov word [rsp + 0x1c0], 0
xor edx, edx
mov r8d, 0xfe
lea rcx, [rsp + 0x1c2]
call sub.ntdll.dll_memset
mov rdx, qword [rbx]
mov rcx, rbx
call qword [rdx + 0x30]
mov rdi, qword [rax]
mov r8d, 0x100
lea rdx, [rsp + 0x1c0]
mov rcx, rax
call qword [rdi + 0x40]
xor edx, edx
mov r8d, 0x100
lea rcx, [rsp + 0x5c]
call sub.ntdll.dll_memset
lea rcx, [rsp + 0x5c]
lea rdx, [rsp + 0x1c0]
mov r8d, 0x100
call sub.ntdll.dll_memcpy
mov qword [rsp + 0x50], rsi
cmp dword [rbp + 0x10], 0
setne byte [rsp + 0x58]
mov byte [rsp + 0x59], r13b
cmp dword [rbp + 0xca], 0
setne byte [rsp + 0x5a]
mov byte [rsp + 0x5b], 0
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 0x48]
cmp eax, 0xb
jne 0x140194a96
mov byte [rsp + 0x5b], 1
jmp 0x140194b5f
lea rdx, [rsp + 0x50]
lea rcx, [0x140c46080]
call fcn.140013f10
jmp 0x140194b5f
mov word [rsp + 0x1c0], 0
xor edx, edx
mov r8d, 0xfe
lea rcx, [rsp + 0x1c2]
call sub.ntdll.dll_memset
mov rdx, qword [rbx]
mov rcx, rbx
call qword [rdx + 0x30]
mov rdi, qword [rax]
mov r8d, 0x100
lea rdx, [rsp + 0x1c0]
mov rcx, rax
call qword [rdi + 0x40]
xor edx, edx
mov r8d, 0x100
lea rcx, [rsp + 0x5c]
call sub.ntdll.dll_memset
lea rcx, [rsp + 0x5c]
lea rdx, [rsp + 0x1c0]
mov r8d, 0x100
call sub.ntdll.dll_memcpy
mov qword [rsp + 0x50], rsi
cmp dword [rbp + 0x10], 0
setne byte [rsp + 0x58]
mov byte [rsp + 0x59], r13b
cmp dword [rbp + 0xca], 0
setne byte [rsp + 0x5a]
mov byte [rsp + 0x5b], 0
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 0x48]
cmp eax, 0xb
jne 0x140194b4e
mov byte [rsp + 0x5b], 1
jmp 0x140194b5f
lea rdx, [rsp + 0x50]
lea rcx, [0x140c46080]
call fcn.140013f10
mov r15d, 1
mov rax, qword [r12]
mov rcx, r12
call qword [rax + 0x38]
mov rsi, rax
test rax, rax
je 0x140194e59
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx + 0x18]
mov rbp, rax
movzx ecx, word [rax + 0x1c]
mov word [rsp + 0x188], cx
lea rdx, [rsp + 0x188]
lea rcx, [rsp + 0x160]
call qword [sym.imp.MSVCP80.dll_public:_int___cdecl_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::compare_wchar_t_const____ptr64_const___ptr64]
test eax, eax
je 0x140194b65
mov rbx, qword [rbp + 8]
shl rbx, 9
movzx eax, word [rbp + 0x1c]
test ax, ax
je 0x140194d9e
cmp ax, 0x2a
je 0x140194ce3
mov word [rsp + 0x1c0], 0
xor edx, edx
lea r8d, [rdx + 0x7e]
lea rcx, [rsp + 0x1c2]
call sub.ntdll.dll_memset
mov word [rsp + 0x2c0], 0
xor edx, edx
mov r8d, 0xfe
lea rcx, [rsp + 0x2c2]
call sub.ntdll.dll_memset
cvtsi2sd xmm6, rbx
test rbx, rbx
jns 0x140194c16
addsd xmm6, xmm7
mulsd xmm6, xmm8
mulsd xmm6, xmm8
mulsd xmm6, xmm8
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax + 0x30]
mov rdi, qword [rax]
mov r8d, 0x100
lea rdx, [rsp + 0x2c0]
mov rcx, rax
call qword [rdi + 0x40]
movsd qword [rsp + 0x28], xmm6
lea rax, [rsp + 0x2c0]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x188]
lea r8, str._s___s___0.2fGB_
mov edx, 0x80
lea rcx, [rsp + 0x1c0]
call fcn.140013b00
lea r9, [rsp + 0x1c0]
xor r8d, r8d
mov edx, 0x143
mov rcx, qword [r14 + 0x40]
call qword [sym.imp.USER32.dll_SendMessageW]
mov qword [rsp + 0x50], rbx
cmp dword [rbp + 0x10], 0
setne byte [rsp + 0x58]
mov byte [rsp + 0x59], r13b
cmp dword [rbp + 0xca], 0
setne byte [rsp + 0x5a]
xor dil, dil
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax + 0x48]
movzx ecx, dil
cmp eax, 0xb
cmove ecx, r15d
mov byte [rsp + 0x5b], cl
lea rdx, [rsp + 0x50]
lea rcx, [0x140c46060]
call fcn.140013f10
jmp 0x140194b65
mov word [rsp + 0x1c0], 0
xor edx, edx
mov r8d, 0xfe
lea rcx, [rsp + 0x1c2]
call sub.ntdll.dll_memset
mov rdx, qword [rsi]
mov rcx, rsi
call qword [rdx + 0x30]
mov rdi, qword [rax]
mov r8d, 0x100
lea rdx, [rsp + 0x1c0]
mov rcx, rax
call qword [rdi + 0x40]
xor edx, edx
mov r8d, 0x100
lea rcx, [rsp + 0x5c]
call sub.ntdll.dll_memset
lea rcx, [rsp + 0x5c]
lea rdx, [rsp + 0x1c0]
mov r8d, 0x100
call sub.ntdll.dll_memcpy
mov qword [rsp + 0x50], rbx
cmp dword [rbp + 0x10], 0
setne byte [rsp + 0x58]
mov byte [rsp + 0x59], r13b
cmp dword [rbp + 0xca], 0
setne byte [rsp + 0x5a]
mov byte [rsp + 0x5b], 0
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax + 0x48]
cmp eax, 0xb
jne 0x140194d88
mov byte [rsp + 0x5b], r15b
jmp 0x140194b65
lea rdx, [rsp + 0x50]
lea rcx, [0x140c46080]
call fcn.140013f10
jmp 0x140194b65
mov word [rsp + 0x1c0], 0
xor edx, edx
mov r8d, 0xfe
lea rcx, [rsp + 0x1c2]
call sub.ntdll.dll_memset
mov rdx, qword [rsi]
mov rcx, rsi
call qword [rdx + 0x30]
mov rdi, qword [rax]
mov r8d, 0x100
lea rdx, [rsp + 0x1c0]
mov rcx, rax
call qword [rdi + 0x40]
xor edx, edx
mov r8d, 0x100
lea rcx, [rsp + 0x5c]
call sub.ntdll.dll_memset
lea rcx, [rsp + 0x5c]
lea rdx, [rsp + 0x1c0]
mov r8d, 0x100
call sub.ntdll.dll_memcpy
mov qword [rsp + 0x50], rbx
cmp dword [rbp + 0x10], 0
setne byte [rsp + 0x58]
mov byte [rsp + 0x59], r13b
cmp dword [rbp + 0xca], 0
setne byte [rsp + 0x5a]
mov byte [rsp + 0x5b], 0
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax + 0x48]
cmp eax, 0xb
jne 0x140194e43
mov byte [rsp + 0x5b], r15b
jmp 0x140194b65
lea rdx, [rsp + 0x50]
lea rcx, [0x140c46080]
call fcn.140013f10
jmp 0x140194b65
mov r15, qword [rsp + 0x30]
mov rax, qword [r15]
mov rcx, r15
call qword [rax + 0x20]
mov rbx, rax
test rax, rax
jne 0x1401947b0
mov r13, qword [rsp + 0x38]
xor ebp, ebp
mov r12, rbp
movabs r15, 0x7878787878787879
nop
nop
nop
mov rdi, qword [0x140c46088]
test rdi, rdi
je 0x140194f9c
mov rbx, qword [0x140c46090]
mov rcx, rbx
sub rcx, rdi
mov rax, r15
imul rcx
mov rsi, rdx
sar rsi, 7
mov rax, rsi
shr rax, 0x3f
add rsi, rax
cmp rbp, rsi
jae 0x140194f9c
mov word [rsp + 0x3c0], 0
xor edx, edx
mov r8d, reloc.MFC80U.DLL_Ordinal_1022
lea rcx, [rsp + 0x3c2]
call sub.ntdll.dll_memset
cmp rbp, rsi
jb 0x140194f05
call qword [sym.imp.MSVCR80.dll__invalid_parameter_noinfo]
mov rbx, qword [0x140c46090]
mov rdi, qword [0x140c46088]
mov rax, qword [r12 + rdi]
shr rax, 0x14
cvtsi2sd xmm6, rax
jns 0x140194f18
addsd xmm6, xmm7
mulsd xmm6, xmm8
test rdi, rdi
je 0x140194f3e
sub rbx, rdi
mov rax, r15
imul rbx
sar rdx, 7
mov rax, rdx
shr rax, 0x3f
add rdx, rax
cmp rbp, rdx
jb 0x140194f4b
call qword [sym.imp.MSVCR80.dll__invalid_parameter_noinfo]
mov rdi, qword [0x140c46088]
lea r9, [r12 + rdi + 0xc]
movsd qword [rsp + 0x20], xmm6
lea r8, str.__s__0.2lfGB_
lea rdx, [rsp + 0x3c0]
lea rcx, [rsp + 0x3c0]
call fcn.140013b00
lea r9, [rsp + 0x3c0]
xor r8d, r8d
mov edx, 0x143
mov rcx, qword [r14 + 0x40]
call qword [sym.imp.USER32.dll_SendMessageW]
add rbp, 1
add r12, 0x110
jmp 0x140194e90
xor r9d, r9d
xor r8d, r8d
mov edx, 0x146
mov rcx, qword [r14 + 0x40]
call qword [sym.imp.USER32.dll_SendMessageW]
test eax, eax
jne 0x140195009
call fcn.140049500
mov rdi, qword [rax]
lea rdx, [0x140368ae8]
mov rcx, rax
call qword [rdi]
mov rdx, rax
lea rcx, [0x140c46058]
call qword [sym.imp.MFC80U.DLL_Ordinal_788]
mov r9, qword [0x140c46058]
xor r8d, r8d
mov edx, 0x143
mov rcx, qword [r14 + 0x40]
call qword [sym.imp.USER32.dll_SendMessageW]
xor r9d, r9d
xor r8d, r8d
mov edx, reloc.MFC80U.DLL_Ordinal_334
mov rcx, qword [r14 + 0x40]
call qword [sym.imp.USER32.dll_SendMessageW]
jmp 0x14019501e
xor r9d, r9d
xor r8d, r8d
mov edx, reloc.MFC80U.DLL_Ordinal_334
mov rcx, qword [r14 + 0x40]
call qword [sym.imp.USER32.dll_SendMessageW]
cmp byte [0x140442ef7], 0
je 0x140195068
call fcn.140049500
mov rdi, qword [rax]
lea rdx, [0x140368af8]
mov rcx, rax
call qword [rdi]
mov rdx, rax
lea rcx, [0x140c46058]
call qword [sym.imp.MFC80U.DLL_Ordinal_788]
mov edx, reloc.MFC80U.DLL_Ordinal_6022
mov rcx, r13
call sub.MFC80U.DLL_Ordinal_2682
mov rcx, rax
mov rdx, qword [0x140c46058]
call sub.MFC80U.DLL_Ordinal_6104
nop
lea rcx, [rsp + 0x160]
call qword [sym.imp.MSVCP80.dll_public:_void___cdecl_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::destructor_void____ptr64]
mov rcx, qword [rsp + 0xbc0]
xor rcx, rsp
call fcn.140161080
lea r11, [rsp + 0xc00]
mov rbx, qword [r11 + 0x38]
mov rbp, qword [r11 + 0x40]
mov rsi, qword [r11 + 0x48]
movaps xmm6, xmmword [r11 - 0x10]
movaps xmm7, xmmword [r11 - 0x20]
movaps xmm8, xmmword [r11 - 0x30]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret