Function at 0x140011750
Capabilities:
Get common file path
Query or enumerate registry value

Disassembly:
mov rax, rsp
push rbp
push r12
push r13
lea rbp, [rax - 0x318]
sub rsp, 0x400
mov qword [rbp - 0x40], 0xfffffffffffffffe
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
mov rax, qword [0x14007e020]
xor rax, rsp
mov qword [rbp + 0x2f0], rax
mov rbx, rcx
call fcn.1400124e0
xor r13d, r13d
mov esi, r13d
cmp dword [0x14007e7c0], r13d
je 0x1400117c5
lea rdi, [0x14007e7c0]
nop dword [rax]
mov edx, esi
mov rcx, rbx
call fcn.140012740
inc esi
add rdi, 0xc
cmp dword [rdi], r13d
jne 0x1400117b0
lea rcx, [rsp + 0x48]
call fcn.140003410
nop
mov edx, 0x104
lea rcx, [rsp + 0x48]
call qword [sym.imp.mfc100u.dll_CTaskDialog::FreeStruct]
mov rcx, rax
lea rdx, str.Settings
call qword [sym.imp.SHLWAPI.dll_PathAppendW]
mov rcx, qword [rsp + 0x48]
call fcn.140019600
mov rdi, rax
test rax, rax
je 0x14001184a
mov dword [rsp + 0x44], 4
lea rax, [rsp + 0x44]
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x40]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x50]
mov qword [rsp + 0x20], rax
mov r9d, 0xffff
lea r8, str.ShowToolbarText
xor edx, edx
mov rcx, rdi
call qword [sym.imp.SHLWAPI.dll_SHRegGetValueW]
test eax, eax
jne 0x14001184a
mov eax, dword [rsp + 0x40]
jmp 0x140011858
mov rcx, rdi
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, 1
mov dword [rbx + 8], eax
mov rcx, qword [rsp + 0x48]
call fcn.140019600
mov rdi, rax
test rax, rax
je 0x1400118b5
mov dword [rsp + 0x40], 4
lea rax, [rsp + 0x40]
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x44]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x50]
mov qword [rsp + 0x20], rax
mov r9d, 0xffff
lea r8, str.IncludeNested
xor edx, edx
mov rcx, rdi
call qword [sym.imp.SHLWAPI.dll_SHRegGetValueW]
test eax, eax
jne 0x1400118b5
mov eax, dword [rsp + 0x44]
jmp 0x1400118c1
mov rcx, rdi
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, r13d
mov dword [rbx + 0x10], eax
mov rcx, qword [rsp + 0x48]
call fcn.140019600
mov rdi, rax
test rax, rax
je 0x14001191e
mov dword [rsp + 0x40], 4
lea rax, [rsp + 0x40]
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x44]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x50]
mov qword [rsp + 0x20], rax
mov r9d, 0xffff
lea r8, str.WriteLog
xor edx, edx
mov rcx, rdi
call qword [sym.imp.SHLWAPI.dll_SHRegGetValueW]
test eax, eax
jne 0x14001191e
mov eax, dword [rsp + 0x44]
jmp 0x14001192c
mov rcx, rdi
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, 1
mov dword [rbx + 0xc], eax
lea r8, str.LogFileName
mov rdx, qword [rsp + 0x48]
lea rcx, [rsp + 0x50]
call fcn.140019810
nop
mov rdx, rax
lea rcx, [rbx + 0x30]
call qword [sym.imp.mfc100u.dll_CView::CView]
nop
lea rcx, [rsp + 0x50]
call qword [sym.imp.mfc100u.dll_CWinApp::CWinApp]
mov r11, qword [rbx + 0x30]
cmp dword [r11 - 0x10], 0
jne 0x1400119be
lea rax, [rbp + 0xe0]
mov qword [rsp + 0x20], rax
xor r9d, r9d
xor r8d, r8d
mov edx, 0x8005
xor ecx, ecx
call qword [sym.imp.SHFOLDER.dll_SHGetFolderPathW]
lea rcx, [rbx + 0x30]
test eax, eax
js 0x1400119b1
lea rdx, [rbp + 0xe0]
call qword [sym.imp.mfc100u.dll_CVSListBoxBase::CVSListBoxBase]
lea rdx, [0x140055f30]
lea rcx, [rbx + 0x30]
call qword [sym.imp.mfc100u.dll_COleCurrency::operator_]
jmp 0x1400119be
lea rdx, str.log.txt
call qword [sym.imp.mfc100u.dll_CVSListBoxBase::CVSListBoxBase]
lea r8, str.ExportFolderName
mov rdx, qword [rsp + 0x48]
lea rcx, [rsp + 0x50]
call fcn.140019810
nop
lea rcx, [rbx + 0x28]
mov rdx, rax
call qword [sym.imp.mfc100u.dll_CView::CView]
nop
lea rcx, [rsp + 0x50]
call qword [sym.imp.mfc100u.dll_CWinApp::CWinApp]
lea r8, str.AddFolderName
mov rdx, qword [rsp + 0x48]
lea rcx, [rsp + 0x50]
call fcn.140019810
nop
lea rcx, [rbx + 0x20]
mov rdx, rax
call qword [sym.imp.mfc100u.dll_CView::CView]
nop
lea rcx, [rsp + 0x50]
call qword [sym.imp.mfc100u.dll_CWinApp::CWinApp]
lea r8, str.ProfileName
mov rdx, qword [rsp + 0x48]
lea rcx, [rsp + 0x50]
call fcn.140019810
nop
lea rcx, [rbx + 0x38]
mov rdx, rax
call qword [sym.imp.mfc100u.dll_CView::CView]
nop
lea rcx, [rsp + 0x50]
call qword [sym.imp.mfc100u.dll_CWinApp::CWinApp]
mov rcx, qword [rsp + 0x48]
call fcn.140019600
mov rdi, rax
test rax, rax
je 0x140011aa8
mov dword [rsp + 0x40], 4
lea rax, [rsp + 0x40]
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x44]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x50]
mov qword [rsp + 0x20], rax
mov r9d, 0xffff
lea r8, str.ShowFullPath
xor edx, edx
mov rcx, rdi
call qword [sym.imp.SHLWAPI.dll_SHRegGetValueW]
test eax, eax
jne 0x140011aa8
mov eax, dword [rsp + 0x44]
jmp 0x140011ab6
mov rcx, rdi
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, 1
mov dword [rbx + 0x14], eax
mov rcx, qword [rsp + 0x48]
call fcn.140019600
mov rdi, rax
test rax, rax
je 0x140011b13
mov dword [rsp + 0x40], 4
lea rax, [rsp + 0x40]
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x44]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x50]
mov qword [rsp + 0x20], rax
mov r9d, 0xffff
lea r8, str.ViewByDWG
xor edx, edx
mov rcx, rdi
call qword [sym.imp.SHLWAPI.dll_SHRegGetValueW]
test eax, eax
jne 0x140011b13
mov eax, dword [rsp + 0x44]
jmp 0x140011b21
mov rcx, rdi
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, 1
mov dword [rbx + 0x18], eax
mov rcx, qword [rsp + 0x48]
call fcn.140019600
mov rdi, rax
test rax, rax
je 0x140011b7e
mov dword [rsp + 0x40], 4
lea rax, [rsp + 0x40]
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x44]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x50]
mov qword [rsp + 0x20], rax
mov r9d, 0xffff
lea r8, str.UpdateDwgFormat
xor edx, edx
mov rcx, rdi
call qword [sym.imp.SHLWAPI.dll_SHRegGetValueW]
test eax, eax
jne 0x140011b7e
mov eax, dword [rsp + 0x44]
jmp 0x140011b8a
mov rcx, rdi
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, r13d
mov dword [rbx + 0x1c], eax
mov rcx, qword [rsp + 0x48]
call fcn.140019600
mov rdi, rax
test rax, rax
je 0x140011be7
mov dword [rsp + 0x40], 4
lea rax, [rsp + 0x40]
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x44]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x50]
mov qword [rsp + 0x20], rax
mov r9d, 0xffff
lea r8, str.AlertDialogs
xor edx, edx
mov rcx, rdi
call qword [sym.imp.SHLWAPI.dll_SHRegGetValueW]
test eax, eax
jne 0x140011be7
mov eax, dword [rsp + 0x44]
jmp 0x140011bf3
mov rcx, rdi
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
or eax, 0xffffffff
mov dword [rbx + 0x40], eax
mov rcx, qword [rsp + 0x48]
call fcn.140019600
mov rdi, rax
test rax, rax
je 0x140011c50
mov dword [rsp + 0x40], 4
lea rax, [rsp + 0x40]
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x44]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x50]
mov qword [rsp + 0x20], rax
mov r9d, 0xffff
lea r8, str.SortBy
xor edx, edx
mov rcx, rdi
call qword [sym.imp.SHLWAPI.dll_SHRegGetValueW]
test eax, eax
jne 0x140011c50
mov eax, dword [rsp + 0x44]
jmp 0x140011c5e
mov rcx, rdi
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, 0x64
mov dword [rbx + 0x70], eax
mov rcx, qword [rsp + 0x48]
call fcn.140019600
mov rdi, rax
test rax, rax
je 0x140011cbb
mov dword [rsp + 0x40], 4
lea rax, [rsp + 0x40]
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x44]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x50]
mov qword [rsp + 0x20], rax
mov r9d, 0xffff
lea r8, str.SortOrder
xor edx, edx
mov rcx, rdi
call qword [sym.imp.SHLWAPI.dll_SHRegGetValueW]
test eax, eax
jne 0x140011cbb
mov eax, dword [rsp + 0x44]
jmp 0x140011cc9
mov rcx, rdi
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, 1
mov dword [rbx + 0x74], eax
lea r8, str.ColumnWidth
mov rdx, qword [rsp + 0x48]
lea rcx, [rbp - 0x70]
call fcn.140019810
nop
lea rcx, [rsp + 0x58]
call qword [sym.imp.mfc100u.dll_CSmartDockingManager::CSmartDockingManager]
nop
lea rdx, [0x1400548e4]
lea rcx, [rbp + 0x80]
call qword [sym.imp.acdb19.dll_public:_void___cdecl_AdXREFString::constructor_wchar_t_const____ptr64____ptr64]
nop
mov rdx, qword [rbp - 0x70]
lea rcx, [rbp + 0x20]
call qword [sym.imp.acdb19.dll_public:_void___cdecl_AdXREFString::constructor_wchar_t_const____ptr64____ptr64]
nop
lea r8, [rsp + 0x58]
lea rdx, [rbp + 0x80]
lea rcx, [rbp + 0x20]
call fcn.140018b30
nop
lea rcx, [rbp + 0x20]
call qword [sym.imp.acdb19.dll_public_virtual:_void___cdecl_AdXREFString::destructor_void____ptr64]
nop
lea rcx, [rbp + 0x80]
call qword [sym.imp.acdb19.dll_public_virtual:_void___cdecl_AdXREFString::destructor_void____ptr64]
lea rcx, [rbp - 0x10]
call qword [0x1400527a0]
nop
mov esi, r13d
mov rdi, r13
mov rcx, qword [rsp + 0x68]
test rcx, rcx
jle 0x140011e1e
nop
test rdi, rdi
js 0x140011e17
cmp rdi, rcx
jge 0x140011e17
mov rax, qword [rsp + 0x60]
lea rcx, [rax + rdi*8]
inc esi
inc rdi
mov rcx, qword [rcx]
call qword [sym.imp.MSVCR100.dll__wtoi]
mov r12d, eax
movsxd rcx, esi
mov rdx, qword [rsp + 0x68]
cmp rcx, rdx
jge 0x140011e1e
test rdi, rdi
js 0x140011e10
cmp rdi, rdx
jge 0x140011e10
mov rcx, qword [rsp + 0x60]
mov rcx, qword [rcx + rdi*8]
call qword [sym.imp.MSVCR100.dll__wtoi]
mov r11d, eax
mov edx, r13d
mov rcx, r13
cmp qword [rbx + 0x58], rcx
jle 0x140011df2
test rcx, rcx
js 0x140011e09
cmp rcx, qword [rbx + 0x58]
jge 0x140011e09
mov rax, qword [rbx + 0x50]
mov r8, qword [rax + rcx*8]
cmp dword [r8 + 8], r12d
je 0x140011dee
inc edx
inc rcx
movsxd rax, edx
cmp rax, qword [rbx + 0x58]
jl 0x140011dc5
jmp 0x140011df2
mov dword [r8 + 0x10], r11d
inc esi
inc rdi
movsxd rax, esi
mov rcx, qword [rsp + 0x68]
cmp rax, rcx
jge 0x140011e1e
jmp 0x140011d60
call qword [sym.imp.mfc100u.dll_AfxPropSheetCallback]
int3
call qword [sym.imp.mfc100u.dll_AfxPropSheetCallback]
int3
call qword [sym.imp.mfc100u.dll_AfxPropSheetCallback]
int3
or r8, 0xffffffffffffffff
xor edx, edx
lea rcx, [rsp + 0x58]
call qword [sym.imp.mfc100u.dll_CMFCPropertyGridCtrl::SetGroupNameFullWidth]
lea r8, str.ColumnOrder
mov rdx, qword [rsp + 0x48]
lea rcx, [rbp - 0x78]
call fcn.140019810
nop
lea rdx, [0x1400548e4]
lea rcx, [rbp + 0x20]
call qword [sym.imp.acdb19.dll_public:_void___cdecl_AdXREFString::constructor_wchar_t_const____ptr64____ptr64]
nop
mov rdx, qword [rbp - 0x78]
lea rcx, [rbp + 0x80]
call qword [sym.imp.acdb19.dll_public:_void___cdecl_AdXREFString::constructor_wchar_t_const____ptr64____ptr64]
nop
lea r8, [rsp + 0x58]
lea rdx, [rbp + 0x20]
lea rcx, [rbp + 0x80]
call fcn.140018b30
nop
lea rcx, [rbp + 0x80]
call qword [sym.imp.acdb19.dll_public_virtual:_void___cdecl_AdXREFString::destructor_void____ptr64]
nop
lea rcx, [rbp + 0x20]
call qword [sym.imp.acdb19.dll_public_virtual:_void___cdecl_AdXREFString::destructor_void____ptr64]
lea rcx, [rbp - 0x38]
call qword [0x1400527a0]
nop
mov esi, r13d
mov rdi, r13
mov rcx, qword [rsp + 0x68]
test rcx, rcx
jle 0x140011ef8
test rdi, rdi
js 0x140011ef1
cmp rdi, rcx
jge 0x140011ef1
mov rcx, qword [rsp + 0x60]
mov rcx, qword [rcx + rdi*8]
call qword [sym.imp.MSVCR100.dll__wtoi]
movzx r8d, ax
mov rdx, qword [rbp - 0x28]
lea rcx, [rbp - 0x38]
call qword [sym.imp.mfc100u.dll_RFX_Text]
inc esi
inc rdi
movsxd rax, esi
mov rcx, qword [rsp + 0x68]
cmp rax, rcx
jl 0x140011eb2
jmp 0x140011ef8
call qword [sym.imp.mfc100u.dll_AfxPropSheetCallback]
int3
or r8, 0xffffffffffffffff
xor edx, edx
lea rcx, [rsp + 0x58]
call qword [sym.imp.mfc100u.dll_CMFCPropertyGridCtrl::SetGroupNameFullWidth]
lea rdx, [rbp - 0x38]
mov rcx, rbx
call fcn.140012570
lea r8, str.HiddenColumns
mov rdx, qword [rsp + 0x48]
lea rcx, [rbp - 0x80]
call fcn.140019810
nop
lea rdx, [0x1400548e4]
lea rcx, [rbp + 0x20]
call qword [sym.imp.acdb19.dll_public:_void___cdecl_AdXREFString::constructor_wchar_t_const____ptr64____ptr64]
nop
mov rdx, qword [rbp - 0x80]
lea rcx, [rbp + 0x80]
call qword [sym.imp.acdb19.dll_public:_void___cdecl_AdXREFString::constructor_wchar_t_const____ptr64____ptr64]
nop
lea r8, [rsp + 0x58]
lea rdx, [rbp + 0x20]
lea rcx, [rbp + 0x80]
call fcn.140018b30
nop
lea rcx, [rbp + 0x80]
call qword [sym.imp.acdb19.dll_public_virtual:_void___cdecl_AdXREFString::destructor_void____ptr64]
nop
lea rcx, [rbp + 0x20]
call qword [sym.imp.acdb19.dll_public_virtual:_void___cdecl_AdXREFString::destructor_void____ptr64]
lea rcx, [rbp - 0x68]
call qword [0x1400527a0]
nop
mov esi, r13d
mov rdi, r13
mov rcx, qword [rsp + 0x68]
test rcx, rcx
jle 0x140011fde
test rdi, rdi
js 0x140011fd7
cmp rdi, rcx
jge 0x140011fd7
mov rcx, qword [rsp + 0x60]
mov rcx, qword [rcx + rdi*8]
call qword [sym.imp.MSVCR100.dll__wtoi]
movzx r8d, ax
mov rdx, qword [rbp - 0x58]
lea rcx, [rbp - 0x68]
call qword [sym.imp.mfc100u.dll_RFX_Text]
inc esi
inc rdi
movsxd rax, esi
mov rcx, qword [rsp + 0x68]
cmp rax, rcx
jl 0x140011f98
jmp 0x140011fde
call qword [sym.imp.mfc100u.dll_AfxPropSheetCallback]
int3
or r8, 0xffffffffffffffff
xor edx, edx
lea rcx, [rsp + 0x58]
call qword [sym.imp.mfc100u.dll_CMFCPropertyGridCtrl::SetGroupNameFullWidth]
mov edi, r13d
mov r9, r13
mov r11, qword [rbp - 0x58]
test r11, r11
jle 0x140012073
test r9, r9
js 0x14001206c
cmp r9, r11
jge 0x14001206c
mov rax, qword [rbp - 0x60]
movzx r10d, word [rax + r9*2]
mov edx, r13d
mov rcx, r13
cmp qword [rbx + 0x58], rcx
jle 0x140012056
test rcx, rcx
js 0x140012065
cmp rcx, qword [rbx + 0x58]
jge 0x140012065
mov rax, qword [rbx + 0x50]
mov r8, qword [rax + rcx*8]
movzx eax, r10w
cmp dword [r8 + 8], eax
je 0x14001204e
inc edx
inc rcx
movsxd rax, edx
cmp rax, qword [rbx + 0x58]
jl 0x140012021
jmp 0x140012056
mov dword [r8 + 0xc], r13d
mov r11, qword [rbp - 0x58]
inc edi
inc r9
movsxd rax, edi
cmp rax, r11
jge 0x140012073
jmp 0x140012002
call qword [sym.imp.mfc100u.dll_AfxPropSheetCallback]
int3
call qword [sym.imp.mfc100u.dll_AfxPropSheetCallback]
nop
lea rcx, [rbp - 0x68]
call qword [sym.imp.mfc100u.dll_CTabView::CTabView]
nop
lea rcx, [rbp - 0x80]
call qword [sym.imp.mfc100u.dll_CWinApp::CWinApp]
nop
lea rcx, [rbp - 0x38]
call qword [sym.imp.mfc100u.dll_CTabView::CTabView]
nop
lea rcx, [rbp - 0x78]
call qword [sym.imp.mfc100u.dll_CWinApp::CWinApp]
nop
lea rcx, [rbp - 0x10]
call qword [sym.imp.mfc100u.dll_CTabView::CTabView]
nop
lea rcx, [rsp + 0x58]
call qword [sym.imp.mfc100u.dll_CSemaphore::CSemaphore]
nop
lea rcx, [rbp - 0x70]
call qword [sym.imp.mfc100u.dll_CWinApp::CWinApp]
nop
lea rcx, [rsp + 0x48]
call qword [sym.imp.mfc100u.dll_CWinApp::CWinApp]
mov eax, 1
mov rcx, qword [rbp + 0x2f0]
xor rcx, rsp
call fcn.140049a80
lea r11, [rsp + 0x400]
mov rbx, qword [r11 + 0x28]
mov rsi, qword [r11 + 0x30]
mov rdi, qword [r11 + 0x38]
mov rsp, r11
pop r13
pop r12
pop rbp
ret