Function at 0x14000dc40
Capabilities:
Check if file exists
Query or enumerate registry value
Set registry value

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x20], rsi
push rbp
push rdi
push r12
push r14
push r15
lea rbp, [rsp - 0x5d0]
sub rsp, 0x6d0
mov rax, qword [0x1400922d0]
xor rax, rsp
mov qword [rbp + 0x5c8], rax
mov r14d, edx
mov rsi, rcx
xor r12d, r12d
mov dword [rbp - 0x30], r12d
or dword [rbp - 0x7c], 0xffffffff
mov edi, r12d
mov dword [rbp - 0x74], r12d
mov dword [rbp - 0x80], r12d
call fcn.140002950
mov rcx, rax
test rax, rax
je 0x14000fed3
mov rax, qword [rax]
call qword [rax + 0x18]
lea rbx, [rax + 0x18]
mov qword [rbp - 0x68], rbx
mov byte [rbp - 0x78], r12b
call fcn.140002950
mov rcx, rax
test rax, rax
je 0x14000fee1
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rbp - 0x18], rax
call fcn.140002950
mov rcx, rax
test rax, rax
je 0x14000fef1
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rbp - 0x28], rax
mov qword [rbp - 0x58], r12
mov qword [rbp + 0x108], r12
call fcn.140002950
mov rcx, rax
test rax, rax
je 0x14000feff
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rbp + 0x18], rax
lea rdx, str.VisualStudio.17.0
lea rcx, [rbp - 0x60]
call fcn.140002f00
lea rdx, str._Client_
lea rcx, [rbp + 0xa0]
call fcn.140002f00
mov eax, r12d
xchg qword [0x140092ff0], rax
lea r9, str.SoftwareMicrosoftVSCommon17.0SQM
mov r8d, r14d
mov rdx, rsi
lea rcx, [0x140092c80]
call fcn.1400114a8
mov esi, eax
mov r14d, 0x104
test eax, eax
jns 0x14000ddf5
call fcn.140002950
mov rcx, rax
test rax, rax
je 0x14000ff50
lfence
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rbp + 0x20], rax
lea r8, str.util_InitMainParam
lea rdx, str.Failure_calling__s.
lea rcx, [rbp + 0x20]
call fcn.14001d9e0
mov r9d, esi
mov rbx, qword [rbp + 0x20]
mov r8, rbx
lea rdx, str.VisualStudio
lea r15d, [r12 + 1]
mov ecx, r15d
call fcn.1400078a0
mov edi, esi
or r14, 0xffffffffffffffff
lea rdx, [rbx - 0x18]
mov eax, r14d
lock xadd dword [rdx + 0x10], eax
add eax, r14d
xor esi, esi
test eax, eax
jg 0x14000dded
lfence
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov r12d, esi
jmp 0x14000faf7
mov r15d, 1
mov ecx, r15d
sub ecx, dword [rbx - 8]
mov eax, dword [rbx - 0xc]
sub eax, r14d
or eax, ecx
jge 0x14000de17
mov edx, r14d
lea rcx, [rbp - 0x68]
call fcn.140002d40
mov r8d, r14d
mov rbx, qword [rbp - 0x68]
mov rdx, rbx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
mov esi, eax
movsxd rdx, dword [rbx - 0xc]
mov rcx, rbx
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_wcsnlen]
mov r14d, 0x80070057
test eax, eax
js 0x14000fec7
cmp eax, dword [rbx - 0xc]
jg 0x14000fec7
mov dword [rbx - 0x10], eax
cdqe
mov word [rbx + rax*2], r12w
lea r12, str.VisualStudio
test esi, esi
je 0x14000df7f
mov edx, 0x5c
mov rcx, rbx
call qword [sym.imp.VCRUNTIME140.dll_wcsrchr]
mov rsi, rax
test rax, rax
je 0x14000df7f
sub rsi, rbx
sar rsi, 1
cmp esi, 0xffffffff
je 0x14000df7f
test esi, esi
js 0x14000fec7
mov ecx, r15d
sub ecx, dword [rbx - 8]
mov eax, dword [rbx - 0xc]
sub eax, esi
or eax, ecx
jge 0x14000deb6
lfence
mov edx, esi
lea rcx, [rbp - 0x68]
call fcn.140002d40
mov rbx, qword [rbp - 0x68]
cmp esi, dword [rbx - 0xc]
jg 0x14000fec7
mov dword [rbx - 0x10], esi
movsxd rax, esi
xor esi, esi
mov word [rbx + rax*2], si
lea rdx, str.VsWerHandler.dll
or rax, 0xffffffffffffffff
inc rax
cmp word [rdx + rax*2], si
jne 0x14000deda
mov r8d, eax
lea rcx, [rbp - 0x68]
call fcn.140008ba0
xor edx, edx
mov rcx, qword [rbp - 0x68]
call qword [sym.imp.KERNEL32.dll_WerRegisterRuntimeExceptionModule]
mov ebx, eax
test eax, eax
jne 0x14000df07
mov byte [rbp - 0x78], r15b
jmp 0x14000df81
call fcn.140002950
mov rcx, rax
test rax, rax
je 0x14000ff50
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rbp + 0x28], rax
mov r9, qword [rbp - 0x68]
mov r8d, ebx
lea rdx, str.HRESULT__d_returned_when_registering_WER_handler_path___s_.
lea rcx, [rbp + 0x28]
call fcn.140006970
mov rbx, qword [rbp + 0x28]
mov r8, rbx
mov rdx, r12
mov ecx, 2
call fcn.140003ef0
nop
nop dword [rax]
nop word [rax + rax]
lea rdx, [rbx - 0x18]
or eax, 0xffffffff
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x14000df81
lfence
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
jmp 0x14000df81
xor esi, esi
lea rax, [0x140093750]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rsi
lea r9, [0x140092cc8]
lea r8, [0x1400924e0]
mov rdx, qword [0x140092cc0]
lea rcx, str.SoftwareMicrosoftVisualStudio17.0
call fcn.1400207a8
mov dword [rbp - 0xc], eax
test eax, eax
jns 0x14000dfc1
cmp eax, r14d
je 0x14000dfe1
jmp 0x14000dfd3
lea rcx, [0x140092c80]
call fcn.140011574
mov edi, eax
test eax, eax
jns 0x14000dfe1
mov dword [0x140092d08], r15d
mov dword [0x14009508c], r15d
cmp dword [0x140092d0c], esi
je 0x14000dfef
call qword [sym.imp.KERNEL32.dll_DebugBreak]
mov ecx, 0xfffffff5
call qword [sym.imp.KERNEL32.dll_GetStdHandle]
mov rbx, rax
mov rcx, rax
call fcn.1400115d4
test eax, eax
je 0x14000e056
call qword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov dword [rsp + 0x30], 2
mov dword [rsp + 0x28], esi
mov dword [rsp + 0x20], esi
lea r9, [rbp + 0x30]
mov r8, rax
mov rdx, rbx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_DuplicateHandle]
test eax, eax
je 0x14000e056
mov rdx, qword [rbp + 0x30]
mov ecx, 0xfffffff5
call qword [sym.imp.KERNEL32.dll_SetStdHandle]
test eax, eax
mov rcx, qword [rbp + 0x30]
je 0x14000e050
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CloseHandle]
cmp qword [0x140092d38], rsi
jne 0x14000e0a5
cmp qword [0x140092eb0], rsi
jne 0x14000e0a5
lea rcx, [rbp + 0x3b0]
call fcn.140027db8
cmp word [rbp + 0x3b0], si
je 0x14000e0a5
mov r9d, 0x103
lea r8, [rbp + 0x3b0]
lea edx, [r9 + 1]
lea rbx, [0x1400950e0]
mov rcx, rbx
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_wcsncpy_s]
mov qword [0x140092eb0], rbx
lea rcx, [0x140092ec0]
call fcn.140027f3c
mov rdx, r12
mov ecx, 3
test eax, eax
jns 0x14000e0c6
lea r8, str.Running_in_traditional_mode.
jmp 0x14000e0ea
lea r8, str.Running_in_isolation_mode.
call fcn.140003ef0
call fcn.1400196f4
test eax, eax
jns 0x14000e0f5
lea r8, str.Failed_to_read_installation_config_info.
mov rdx, r12
mov ecx, 2
lfence
mov r9d, eax
call fcn.1400078a0
cmp byte [0x140092ec0], sil
je 0x14000e191
mov rax, qword [rbp - 0x60]
mov edx, r15d
sub edx, dword [rax - 8]
mov ecx, dword [rax - 0xc]
or ecx, edx
jge 0x14000e122
xor edx, edx
lea rcx, [rbp - 0x60]
call fcn.140002d40
mov rax, qword [rbp - 0x60]
cmp dword [rax - 0xc], esi
jl 0x14000fec7
mov dword [rax - 0x10], esi
mov rax, qword [rbp - 0x60]
mov word [rax], si
lea rcx, [rbp + 0xa8]
call fcn.1400082a8
nop
lea r8, [0x1400933f0]
cmp qword [0x140093408], 8
cmovae r8, qword [0x1400933f0]
mov rbx, qword [rbp + 0xa8]
mov r9, rbx
lea rdx, [0x14006d1f8]
lea rcx, [rbp - 0x60]
call fcn.14001d9e0
nop
lea rdx, [rbx - 0x18]
or eax, 0xffffffff
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x14000e191
lfence
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rbx, qword [rbp - 0x60]
cmp byte [0x140093a80], sil
jne 0x14000e1d9
lea rcx, str.shell32.dll
call qword [sym.imp.KERNEL32.dll_LoadLibraryW]
test rax, rax
je 0x14000e1c9
lea rdx, str.SetCurrentProcessExplicitAppUserModelID
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x140093a78], rax
jmp 0x14000e1d0
mov rax, qword [0x140093a78]
mov byte [0x140093a80], r15b
jmp 0x14000e1e0
mov rax, qword [0x140093a78]
test rax, rax
je 0x14000e1ea
mov rcx, rbx
call rax
mov ecx, dword [0x140092e88]
mov eax, ecx
neg eax
sbb esi, esi
and esi, 0x100
add esi, r15d
xor ebx, ebx
test ecx, ecx
je 0x14000e209
bts esi, 9
or esi, 0x11800
cmp dword [0x140092e90], ebx
je 0x14000e21b
bts esi, 0x11
mov r14d, r15d
call fcn.1400183a8
test eax, eax
js 0x14000faf2
call fcn.140026f18
mov edi, eax
mov rcx, qword [0x140092f78]
test rcx, rcx
jne 0x14000e252
mov edi, 0x8007000e
mov r12d, ebx
xor esi, esi
mov ebx, 0xbee
jmp 0x14000fb23
add rcx, 8
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
cmp byte [0x140092ec0], bl
je 0x14000e280
bts esi, 0xd
mov al, byte [0x14009306a]
neg al
sbb r14d, r14d
and r14d, 2
add r14d, 3
call fcn.1400267e0
mov rdx, qword [0x140092d38]
test rdx, rdx
je 0x14000e29b
or rax, 0xffffffffffffffff
inc rax
cmp word [rdx + rax*2], bx
jne 0x14000e290
jmp 0x14000e2a7
lea rdx, str.SoftwareMicrosoftVisualStudio17.0
mov eax, SafeArrayAllocDescriptorEx
lea rcx, [rbp - 0x28]
mov r8d, eax
call fcn.140002c00
mov rdx, qword [0x140092eb0]
lea rax, [0x140067c00]
test rdx, rdx
cmove rdx, rax
test rdx, rdx
je 0x14000ff50
mov rcx, qword [rbp + 0xa0]
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__wcsicmp]
test eax, eax
jne 0x14000e358
call fcn.140002950
mov rcx, rax
xor esi, esi
test rax, rax
je 0x14000ff50
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rbp + 0x38], rax
mov r8, qword [0x140092eb0]
lea rdx, str.Cannot_create_app_id_object_with_suffix_:_s.
lea rcx, [rbp + 0x38]
call fcn.14001d9e0
mov r9d, r15d
mov rbx, qword [rbp + 0x38]
mov r8, rbx
mov rdx, r12
mov ecx, r15d
call fcn.1400078a0
mov edi, r15d
lea rdx, [rbx - 0x18]
or eax, 0xffffffff
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x14000e34f
lfence
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov r12d, dword [rbp - 0x80]
jmp 0x14000faf7
lea rcx, [rbp + 0xb0]
call fcn.1400082a8
nop
lea r9, [rbp - 0x58]
mov r8, qword [0x140092eb0]
mov rdx, qword [rax]
mov rcx, qword [rbp - 0x28]
call fcn.14002b9f8
nop
mov rdx, qword [rbp + 0xb0]
add rdx, 0xffffffffffffffe8
or eax, 0xffffffff
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x14000e3a1
lfence
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov qword [rbp - 0x20], rbx
mov rdx, qword [rbp - 0x58]
lea rcx, [rbp + 0xb8]
call fcn.14000a3c0
nop
mov rdx, qword [rax]
lea rcx, [rbp - 0x20]
call fcn.140002f00
nop
mov rdx, qword [rbp + 0xb8]
add rdx, 0xffffffffffffffe8
or eax, 0xffffffff
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x14000e3e7
lfence
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
lea rdx, str.LegacyExtensions.enabled
lea rcx, [rbp - 0x20]
call fcn.14000a324
mov rcx, qword [rbp - 0x20]
call qword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
setne r12b
mov rdx, qword [rbp - 0x20]
add rdx, 0xffffffffffffffe8
or eax, 0xffffffff
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x14000e428
lfence
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rdx, qword [rbp - 0x58]
lea rcx, [rbp + 0xc0]
call fcn.140009f2c
nop
mov rdx, rax
lea rcx, [rbp + 0x18]
call fcn.1400068a0
nop
mov rdx, qword [rbp + 0xc0]
add rdx, 0xffffffffffffffe8
or eax, 0xffffffff
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x14000e46a
lfence
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
lea rdx, [rbp + 0xd0]
call fcn.140011ff0
mov rbx, rax
lea rcx, [rbp + 0xc8]
call fcn.1400082a8
mov r8, qword [rax]
mov rdx, qword [rbx]
mov dword [rsp + 0x70], SafeArrayGetDim
lea rax, str.CommonExtensionsPlatform
mov qword [rsp + 0x68], rax
mov dword [rsp + 0x60], 0x15b
lea rax, [0x14006b1c0]
mov qword [rsp + 0x58], rax
mov rcx, qword [0x140092f78]
mov qword [rsp + 0x50], rcx
mov rcx, qword [rbp + 0x18]
mov qword [rsp + 0x48], rcx
mov qword [rsp + 0x40], rdx
mov byte [rsp + 0x38], r12b
mov dword [rsp + 0x30], r14d
mov rax, qword [rbp - 0x28]
mov qword [rsp + 0x28], rax
xor ebx, ebx
mov qword [rsp + 0x20], rbx
mov r9d, esi
mov rdx, qword [0x140092eb0]
lea r12, [0x140093040]
mov rcx, r12
call fcn.14001c580
mov esi, eax
mov rdx, qword [rbp + 0xc8]
add rdx, 0xffffffffffffffe8
or r14, 0xffffffffffffffff
mov ecx, r14d
lock xadd dword [rdx + 0x10], ecx
add ecx, r14d
test ecx, ecx
jg 0x14000e52e
lfence
mov rcx, qword [rdx]
mov r8, qword [rcx]
call qword [rreloc.OLEAUT32.dll_VariantClear + 8]
nop
mov rdx, qword [rbp + 0xd0]
add rdx, 0xffffffffffffffe8
mov eax, r14d
lock xadd dword [rdx + 0x10], eax
add eax, r14d
test eax, eax
jg 0x14000e554
lfence
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
test esi, esi
jns 0x14000e5b1
call fcn.140002950
mov rcx, rax
test rax, rax
je 0x14000ff50
lfence
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rbp + 0x40], rax
lea r8, str.InitializeAppID
lea rdx, str.Failure_calling__s.
lea rcx, [rbp + 0x40]
call fcn.14001d9e0
mov r9d, esi
mov rbx, qword [rbp + 0x40]
mov r8, rbx
lea rdx, str.VisualStudio
mov ecx, r15d
call fcn.1400078a0
mov edi, esi
jmp 0x14000ddcc
xor r8d, r8d
lea rdx, [rbp - 0x18]
mov rcx, r12
call fcn.140009e90
mov r8, qword [rbp - 0x18]
mov edx, 0x400
lea rbx, [0x140093ab0]
mov rcx, rbx
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_wcscpy_s]
mov qword [0x140092d38], rbx
mov eax, dword [0x140092e64]
xor esi, esi
test eax, eax
jne 0x14000e670
cmp dword [0x140092d40], esi
jne 0x14000e63c
cmp dword [0x140092d20], esi
jne 0x14000e63c
cmp dword [0x140092e70], esi
jne 0x14000e63c
cmp dword [0x140092e6c], esi
jne 0x14000e63c
mov rcx, qword [0x140092f78]
mov rax, qword [rcx]
call qword [rax + 0x68]
test al, al
je 0x14000e636
mov eax, 0xc22
mov edi, 0x80004005
mov dword [rbp - 0x74], eax
mov dword [rbp - 0x7c], esi
jmp 0x14000dded
mov eax, dword [0x140092e64]
test eax, eax
jne 0x14000e670
cmp dword [0x140092d40], esi
jne 0x14000e670
cmp dword [0x140092d20], esi
jne 0x14000e670
cmp dword [0x140092e6c], esi
jne 0x14000e670
mov rcx, qword [0x140092f78]
mov rax, qword [rcx]
call qword [rax + 0x70]
test al, al
je 0x14000e670
mov eax, 0xc25
jmp 0x14000e626
mov rax, qword [0x140092f78]
lea r14, [rax + 0x694]
lea rbx, [rax + 0x690]
test rbx, rbx
je 0x14000e711
lea rdx, str.Community
mov rsi, qword [0x140092f50]
mov rcx, rsi
call sub.api_ms_win_crt_string_l1_1_0.dll_wcscmp
test eax, eax
jne 0x14000e6b0
mov dword [rbx], 0x708
jmp 0x14000e6c9
lea rdx, str.Professional
mov rcx, rsi
call sub.api_ms_win_crt_string_l1_1_0.dll_wcscmp
test eax, eax
jne 0x14000e6cd
mov dword [rbx], 0x7d0
xor esi, esi
jmp 0x14000e711
lea rdx, str.Enterprise
mov rcx, rsi
call sub.api_ms_win_crt_string_l1_1_0.dll_wcscmp
test eax, eax
jne 0x14000e6f6
mov dword [rbx], 0xbb8
xor esi, esi
test r14, r14
je 0x14000e711
mov dword [r14], 0x188
jmp 0x14000e711
lea rdx, str.V3UNKNOWN
mov rcx, rsi
call sub.api_ms_win_crt_string_l1_1_0.dll_wcscmp
xor esi, esi
test eax, eax
jne 0x14000e711
mov dword [rbx], 0x578
call fcn.14001223c
mov rax, qword [rbp - 0x58]
test rax, rax
jne 0x14000e724
mov rcx, rsi
jmp 0x14000e740
mov rcx, rax
call qword [sym.imp.OLEAUT32.dll_SysAllocStringByteLen]
mov edx, eax
mov rcx, qword [rbp - 0x58]
call qword [sym.imp.OLEAUT32.dll_DllRegisterServer]
mov rcx, rax
mov rax, qword [rbp - 0x58]
mov qword [rbp + 0x48], rcx
test rax, rax
je 0x14000e752
test rcx, rcx
je 0x14000ff0d
mov rax, qword [0x140093050]
mov rdx, qword [rax + 0xe8]
mov rcx, qword [0x1400924d8]
test rdx, rdx
cmovne rcx, rdx
lea rdx, [rbp + 0x48]
call fcn.14001baf0
mov rcx, qword [0x140092d38]
call fcn.140011638
mov esi, eax
test eax, eax
jns 0x14000e7f3
call fcn.140002950
test rax, rax
je 0x14000ff50
lfence
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx + 0x18]
add rax, 0x18
mov qword [rbp + 0x50], rax
lea r8, str.util_OleInitialize
lea rdx, str.Failure_calling__s.
lea rcx, [rbp + 0x50]
call fcn.14001d9e0
mov r9d, esi
mov rbx, qword [rbp + 0x50]
mov r8, rbx
lea rdx, str.VisualStudio
mov ecx, r15d
call fcn.1400078a0
mov edi, esi
lea rdx, [rbx - 0x18]
or eax, 0xffffffff
lock xadd dword [rdx + 0x10], eax
xor esi, esi
sub eax, 1
jmp 0x14000dddf
mov r12d, r15d
xor esi, esi
cmp dword [0x140092e68], esi
je 0x14000e8b8
call fcn.140002950
mov rcx, rax
test rax, rax
je 0x14000ff50
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rbp + 0x58], rax
lea rdx, [0x1400930e0]
lea rcx, [rbp + 0x58]
call fcn.1400068a0
mov rax, qword [0x140093050]
mov rdx, qword [rax + 0xe8]
mov rcx, qword [0x1400924d8]
test rdx, rdx
cmovne rcx, rdx
mov rbx, qword [rbp + 0x58]
mov r8, rbx
mov rdx, qword [0x140092d38]
call fcn.140035650
cmp dword [0x140092d20], esi
jne 0x14000e893
mov dword [rbp - 0x7c], esi
lea rdx, [rbx - 0x18]
or eax, 0xffffffff
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x14000faf7
lfence
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
jmp 0x14000faf7
lea rdx, [rbx - 0x18]
or r14, 0xffffffffffffffff
mov eax, r14d
lock xadd dword [rdx + 0x10], eax
add eax, r14d
test eax, eax
jg 0x14000e8bc
lfence
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
jmp 0x14000e8bc
or r14, 0xffffffffffffffff
cmp dword [0x140092d30], esi
jne 0x14000e9b9
cmp dword [0x140092d40], esi
jne 0x14000e9b9
cmp dword [0x140092d20], esi
jne 0x14000e9e5
cmp dword [0x140092cd0], esi
jne 0x14000e9c1
cmp dword [0x140092ce0], esi
jne 0x14000e9c1
cmp dword [0x140092d08], esi
jne 0x14000e9c1
cmp dword [0x140092cd4], esi
jne 0x14000e9c1
cmp dword [0x140092d28], esi
jne 0x14000e9c1
cmp dword [0x140092cdc], esi
jne 0x14000e9c1
cmp dword [0x140092cd8], esi
jne 0x14000e9c1
cmp dword [0x140092cf8], esi
jne 0x14000e9c1
cmp dword [0x140092cfc], esi
jne 0x14000e9c1
cmp dword [0x140092e98], esi
jne 0x14000e9c1
cmp dword [0x140092ea0], esi
jne 0x14000e9c1
cmp dword [0x140092dfc], esi
jne 0x14000e9c1
cmp dword [0x140092e28], esi
jne 0x14000e9c1
cmp dword [0x140092df8], esi
jne 0x14000e9c1
cmp dword [0x140092c98], esi
je 0x14000e9c1
cmp dword [0x140092e88], esi
jne 0x14000e9c1
cmp dword [0x140092e70], esi
jne 0x14000e9e5
cmp dword [0x140092e6c], esi
jne 0x14000e9e5
cmp dword [0x140092e00], esi
jne 0x14000eb41
cmp dword [0x140092e50], esi
jne 0x14000eb41
cmp dword [0x140092e10], esi
jne 0x14000eb41
call fcn.14002dd58
cmp dword [0x140092d20], esi
jne 0x14000e9e5
cmp dword [0x140092e70], esi
jne 0x14000e9e5
cmp dword [0x140092e6c], esi
jne 0x14000e9e5
cmp dword [0x140092df8], esi
jne 0x14000e9e5
cmp dword [0x140092e88], esi
je 0x14000eb41
call fcn.140002950
mov rcx, rax
test rax, rax
je 0x14000ff50
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rbp + 0x60], rax
lea rdx, [0x1400930e0]
lea rcx, [rbp + 0x60]
call fcn.1400068a0
mov rax, qword [0x140093050]
mov rcx, qword [rax + 0xe8]
mov rsi, qword [0x1400924d8]
test rcx, rcx
cmovne rsi, rcx
mov rbx, qword [rbp + 0x60]
test rbx, rbx
je 0x14000ea68
mov rcx, rbx
call fcn.140036b50
test eax, eax
jns 0x14000ea81
xor r9d, r9d
lea r8, str.ConfigurationChanged
lea rdx, [0x140093ab0]
mov rcx, rsi
call fcn.140036d8c
mov rcx, rsi
call fcn.140036c8c
jmp 0x14000ea91
mov r9b, r15b
lea r8, str.ConfigurationChanged
lea rdx, [0x140093ab0]
mov rcx, rsi
call fcn.140036d8c
mov rcx, rsi
call fcn.140036c8c
mov rcx, rsi
call fcn.140036a74
xor esi, esi
cmp dword [0x140092df8], esi
jne 0x14000faea
cmp dword [0x140092e6c], esi
jne 0x14000faea
lea rdx, [rbx - 0x18]
or r14, 0xffffffffffffffff
mov eax, r14d
lock xadd dword [rdx + 0x10], eax
add eax, r14d
test eax, eax
jg 0x14000eace
lfence
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
cmp dword [0x140092d20], esi
je 0x14000eb41
mov qword [rbp - 8], rsi
mov rbx, qword [0x140092f78]
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 0x40]
shr eax, 4
test r15b, al
je 0x14000eb32
lea rdx, [rbp - 8]
mov rcx, rbx
call fcn.14003c070
test eax, eax
js 0x14000eb32
mov rcx, qword [rbp - 8]
mov rax, qword [rcx]
lea rdx, [rbp + 0xd8]
call qword [rax + 0x18]
test eax, eax
js 0x14000eb32
mov rdx, qword [rbp + 0xd8]
mov r8d, dword [rdx + 8]
mov rdx, qword [rdx]
mov rcx, qword [0x140092d38]
call fcn.1400410c4
nop
mov rcx, qword [rbp - 8]
test rcx, rcx
je 0x14000eb41
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetDim]
mov rax, qword [0x140092f78]
test rax, rax
lea rdx, [rax + 0x18]
jne 0x14000eb54
mov rdx, rsi
lea rcx, [0x140093040]
call fcn.14001ab20
mov edi, eax
test eax, eax
jns 0x14000eb9a
lfence
mov r9d, eax
lea r8, str.Failure_calling_FinishInitialize.
lea rdx, str.VisualStudio
mov ecx, r15d
call fcn.1400078a0
mov eax, esi
cmp edi, 0x80070005
setne al
add eax, 0xc23
mov dword [rbp - 0x74], eax
jmp 0x14000faf7
mov eax, dword [0x140092e64]
test eax, eax
jne 0x14000eff6
cmp dword [0x140092d40], esi
jne 0x14000ef13
cmp dword [0x140092d20], esi
jne 0x14000ef13
cmp dword [0x140092e70], esi
jne 0x14000ef13
cmp dword [0x140092e6c], esi
jne 0x14000ef13
call fcn.1400210d0
mov edi, eax
test eax, eax
jns 0x14000ef0d
lfence
mov rcx, qword [0x140092f78]
test rcx, rcx
je 0x14000ec02
add rcx, 0x5f8
call fcn.140007b90
mov r9d, edi
lea r8, str.Failure_calling_IsCompatibleNDPVersionInstalled.
lea rdx, str.VisualStudio
mov ecx, r15d
call fcn.1400078a0
mov rcx, qword [0x140092f78]
mov rax, qword [rcx]
xor r8d, r8d
xor edx, edx
call qword [rax + 0x30]
mov rsi, qword [0x140092ff0]
test rsi, rsi
jne 0x14000ec47
mov edi, 0x80070057
or r14, 0xffffffffffffffff
jmp 0x14000ede3
call fcn.140002950
mov rcx, rax
test rax, rax
je 0x14000ff5b
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rbp - 0x50], rax
lea rdx, [rbp - 0x50]
call fcn.140012388
mov ebx, eax
test eax, eax
jns 0x14000eca5
mov rdx, qword [rbp - 0x50]
add rdx, 0xffffffffffffffe8
or r14, 0xffffffffffffffff
mov ecx, r14d
lock xadd dword [rdx + 0x10], ecx
add ecx, r14d
xor esi, esi
test ecx, ecx
jg 0x14000ec9e
lfence
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov edi, ebx
jmp 0x14000ede3
call fcn.140002950
mov rcx, rax
test rax, rax
je 0x14000ff1b
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rbp - 0x40], rax
call fcn.140002950
mov rcx, rax
test rax, rax
je 0x14000ff29
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rbp - 0x48], rax
call fcn.140002950
mov rcx, rax
test rax, rax
je 0x14000ff37
mov rax, qword [rax]
call qword [rax + 0x18]
lea rbx, [rax + 0x18]
mov qword [rbp + 0x70], rbx
lea rcx, [rbp - 0x40]
call fcn.140002fb0
mov r8d, 0xbb8
mov rdx, rsi
lea rcx, [rbp - 0x40]
call fcn.14000c97c
test eax, eax
jne 0x14000ed2a
mov edi, 0x80070490
xor esi, esi
jmp 0x14000ed54
lea rcx, [rbp - 0x48]
call fcn.140002fb0
mov r8d, 0x7010
mov rdx, rsi
lea rcx, [rbp - 0x48]
call fcn.14000c97c
xor esi, esi
test eax, eax
jne 0x14000ee4c
mov edi, 0x80070490
or r14, 0xffffffffffffffff
lea rdx, [rbx - 0x18]
mov eax, r14d
lock xadd dword [rdx + 0x10], eax
add eax, r14d
test eax, eax
jg 0x14000ed78
lfence
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rbp - 0x48]
add rdx, 0xffffffffffffffe8
mov eax, r14d
lock xadd dword [rdx + 0x10], eax
add eax, r14d
test eax, eax
jg 0x14000ed9c
lfence
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rbp - 0x40]
add rdx, 0xffffffffffffffe8
mov eax, r14d
lock xadd dword [rdx + 0x10], eax
add eax, r14d
test eax, eax
jg 0x14000edc0
lfence
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rbp - 0x50]
add rdx, 0xffffffffffffffe8
mov eax, r14d
lock xadd dword [rdx + 0x10], eax
add eax, r14d
test eax, eax
jg 0x14000ede3
lfence
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
call fcn.140002950
mov rcx, rax
test rax, rax
je 0x14000ff5b
lfence
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rbp + 0x68], rax
lea r8, str.ShowNDPVersionError
lea rdx, str.Failure_calling__s.
lea rcx, [rbp + 0x68]
call fcn.14001d9e0
mov r9d, edi
mov rbx, qword [rbp + 0x68]
mov r8, rbx
lea rdx, str.VisualStudio
mov ecx, r15d
call fcn.1400078a0
nop
lea rdx, [rbx - 0x18]
mov eax, r14d
lock xadd dword [rdx + 0x10], eax
add eax, r14d
test eax, eax
jmp 0x14000e87c
mov r8, qword [rbp - 0x50]
mov rdx, qword [rbp - 0x48]
lea rcx, [rbp + 0x70]
call fcn.140006970
mov r9d, reloc.OLEAUT32.dll_SafeArrayGetDim
mov r8, qword [rbp - 0x40]
mov rbx, qword [rbp + 0x70]
mov rdx, rbx
xor ecx, ecx
call qword [sym.imp.USER32.dll_MessageBoxW]
lea rdx, [rbx - 0x18]
or r14, 0xffffffffffffffff
mov eax, r14d
lock xadd dword [rdx + 0x10], eax
add eax, r14d
test eax, eax
jg 0x14000ee9a
lfence
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rbp - 0x48]
add rdx, 0xffffffffffffffe8
mov eax, r14d
lock xadd dword [rdx + 0x10], eax
add eax, r14d
test eax, eax
jg 0x14000eebe
lfence
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rbp - 0x40]
add rdx, 0xffffffffffffffe8
mov eax, r14d
lock xadd dword [rdx + 0x10], eax
add eax, r14d
test eax, eax
jg 0x14000eee2
lfence
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rbp - 0x50]
add rdx, 0xffffffffffffffe8
mov eax, r14d
lock xadd dword [rdx + 0x10], eax
add eax, r14d
test eax, eax
jg 0x14000ef05
lfence
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov dword [rbp - 0x7c], esi
jmp 0x14000faf7
mov eax, dword [0x140092e64]
test eax, eax
jne 0x14000eff6
cmp dword [0x140092d40], esi
jne 0x14000eff6
cmp dword [0x140092d20], esi
jne 0x14000eff6
cmp dword [0x140092e70], esi
jne 0x14000eff6
cmp dword [0x140092e6c], esi
jne 0x14000eff6
mov rcx, qword [0x140092f78]
test rcx, rcx
je 0x14000ef70
cmp dword [rcx + 0x690], 0x3e8
jne 0x14000ef70
cmp dword [rcx + 0x694], 0x10
je 0x14000effd
lea rcx, [rbp + 0xe0]
call fcn.1400120e4
nop
mov dword [rbp - 0x30], r15d
mov cl, byte [0x140092ec0]
neg cl
sbb r8b, r8b
and r8b, byte [0x140092ed0]
mov rdx, qword [rax]
test rdx, rdx
je 0x14000efea
test r8b, r8b
je 0x14000efea
mov qword [rbp + 0x78], rsi
lea rcx, [rbp + 0x78]
call fcn.140002f00
nop
mov rax, qword [rbp + 0x78]
cmp word [rax], 0x31
jne 0x14000efc2
cmp word [rax + 2], si
jne 0x14000efc2
mov ebx, esi
jmp 0x14000efc7
sbb ebx, ebx
or ebx, r15d
lea rdx, [rax - 0x18]
mov eax, r14d
lock xadd dword [rdx + 0x10], eax
add eax, r14d
test eax, eax
jg 0x14000efe6
lfence
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
test ebx, ebx
je 0x14000eff6
mov bl, r15b
mov rcx, qword [0x140092f78]
jmp 0x14000f000
mov rcx, qword [0x140092f78]
mov bl, sil
test byte [rbp - 0x30], r15b
je 0x14000f033
mov rdx, qword [rbp + 0xe0]
add rdx, 0xffffffffffffffe8
mov eax, r14d
lock xadd dword [rdx + 0x10], eax
add eax, r14d
test eax, eax
jg 0x14000f02c
lfence
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rcx, qword [0x140092f78]
test bl, bl
je 0x14000f1c6
test rcx, rcx
je 0x14000f053
add rcx, 0x5f8
call fcn.140007b90
mov rcx, qword [0x140092f78]
mov rax, qword [rcx]
xor r8d, r8d
xor edx, edx
call qword [rax + 0x30]
lea rdx, [rbp + 0x190]
lea rcx, [0x140093040]
call fcn.140007e90
mov esi, eax
test eax, eax
jns 0x14000f0ea
call fcn.140002950
test rax, rax
je 0x14000ff45
lfence
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx + 0x18]
add rax, 0x18
mov qword [rbp + 0x80], rax
lea r8, str.GetConfigurationTimestamp
lea rdx, str.Failure_calling__s.
lea rcx, [rbp + 0x80]
call fcn.14001d9e0
mov r9d, esi
mov rbx, qword [rbp + 0x80]
mov r8, rbx
lea rdx, str.VisualStudio
mov ecx, r15d
call fcn.1400078a0
mov edi, esi
lea rdx, [rbx - 0x18]
mov eax, r14d
lock xadd dword [rdx + 0x10], eax
add eax, r14d
xor esi, esi
jmp 0x14000ee45
lea rcx, [rbp + 0xe8]
call fcn.1400120e4
nop
mov cl, byte [0x140092ec0]
neg cl
sbb cl, cl
and cl, byte [0x140092ed0]
lea rdx, [rbp - 0x70]
mov qword [rsp + 0x28], rdx
mov rdx, qword [0x140092ff0]
mov qword [rsp + 0x20], rdx
lea r9, [rbp + 0x190]
mov rdx, qword [rax]
call fcn.140041a00
mov esi, eax
mov rdx, qword [rbp + 0xe8]
add rdx, 0xffffffffffffffe8
mov ecx, r14d
lock xadd dword [rdx + 0x10], ecx
add ecx, r14d
test ecx, ecx
jg 0x14000f154
lfence
mov rcx, qword [rdx]
mov r8, qword [rcx]
call qword [rreloc.OLEAUT32.dll_VariantClear + 8]
test esi, esi
jns 0x14000f1ba
call fcn.140002950
mov rcx, rax
test rax, rax
je 0x14000ff45
lfence
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rbp + 0x88], rax
lea r8, str.ShowSetupError
lea rdx, str.Failure_calling__s.
lea rcx, [rbp + 0x88]
call fcn.14001d9e0
mov r9d, esi
mov rbx, qword [rbp + 0x88]
mov r8, rbx
lea rdx, str.VisualStudio
mov ecx, r15d
call fcn.1400078a0
mov edi, esi
jmp 0x14000f0d4
xor esi, esi
cmp byte [rbp - 0x70], sil
je 0x14000ef05
cmp dword [rbp - 0xc], 0x80070057
jne 0x14000f2d4
mov rbx, qword [0x140092cc8]
test rbx, rbx
je 0x14000f1fa
mov rcx, rbx
mov rbx, qword [rbx + 0x28]
call sub.api_ms_win_crt_heap_l1_1_0.dll_free
mov rcx, rbx
test rbx, rbx
jne 0x14000f1e2
mov qword [0x140092cc8], rsi
mov rax, qword [0x140092cc0]
test rax, rax
je 0x14000f22c
mov r8, qword [0x140092c90]
mov rdx, r14
inc rdx
cmp word [r8 + rdx*2], si
jne 0x14000f210
add rdx, r15
mov rcx, rax
call sub.api_ms_win_crt_string_l1_1_0.dll_wcscpy_s
mov rax, qword [0x140092cc0]
mov qword [0x140093750], rsi
mov rbx, qword [0x140092eb8]
mov rcx, rbx
test rbx, rbx
je 0x14000f25a
mov rbx, qword [rbx + 0x10]
call sub.api_ms_win_crt_heap_l1_1_0.dll_free
mov rcx, rbx
test rbx, rbx
jne 0x14000f242
mov rax, qword [0x140092cc0]
mov qword [0x140092eb8], rsi
lea rcx, [0x140093750]
mov qword [rsp + 0x28], rcx
lea rcx, [0x140092eb8]
mov qword [rsp + 0x20], rcx
lea r9, [0x140092cc8]
lea r8, [0x1400924e0]
mov rdx, rax
mov rcx, qword [0x140092d38]
call fcn.1400207a8
test eax, eax
jns 0x14000f2a8
mov dword [0x14009508c], r15d
mov dword [0x140092d08], r15d
lea rax, [0x140093ab0]
mov qword [0x140092d38], rax
lea rcx, [0x140092c80]
call fcn.140011574
test eax, eax
jns 0x14000f2d4
mov dword [0x14009508c], r15d
mov dword [0x140092d08], r15d
lea r14, str.VisualStudio
cmp dword [0x140092e58], esi
je 0x14000f2ff
cmp dword [0x140092de4], esi
je 0x14000f2ff
lea r8, str.Ignoring_RANU_command_line_argument__deprecated_
mov rdx, r14
mov ecx, 2
call fcn.140003ef0
cmp dword [0x140092e80], esi
jne 0x14000f313
mov rcx, qword [0x140092d38]
call fcn.1400124c0
mov rax, qword [0x140093050]
mov rdx, qword [rax + 0xe8]
mov rcx, qword [0x1400924d8]
test rdx, rdx
cmovne rcx, rdx
mov rdx, qword [rbp - 0x18]
call fcn.140012574
mov edx, eax
mov rcx, qword [0x140092d38]
call fcn.1400173d8
mov edi, eax
test eax, eax
jns 0x14000f3a9
call fcn.140002950
mov rcx, rax
test rax, rax
je 0x14000ff5b
lfence
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rbp + 0x90], rax
lea r8, str.VsHookCLRLoading
lea rdx, str.Failure_calling__s.
lea rcx, [rbp + 0x90]
call fcn.14001d9e0
mov r9d, edi
mov rbx, qword [rbp + 0x90]
mov r8, rbx
mov rdx, r14
mov ecx, r15d
call fcn.1400078a0
nop
jmp 0x14000e86d
lea rax, [rbp]
mov qword [rsp + 0x20], rax
mov r9d, 0x20019
xor r8d, r8d
mov rdx, qword [0x140092d38]
mov rcx, 0xffffffff80000002
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x14000f49a
mov ebx, 0x208
mov dword [rbp - 0x80], ebx
lea rax, [rbp - 0x80]
mov qword [rsp + 0x28], rax
lea rax, [rbp + 0x1a0]
mov qword [rsp + 0x20], rax
lea r9, [rbp - 0x10]
xor r8d, r8d
lea rdx, str.ThisVersionDTECLSID
mov rcx, qword [rbp]
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x14000f426
lea rdx, [0x140092d78]
lea rcx, [rbp + 0x1a0]
call qword [sym.imp.ole32.dll_IIDFromString]
jmp 0x14000f435
movups xmm0, xmmword [0x140067c30]
movdqu xmmword [0x140092d78], xmm0
mov dword [rbp - 0x80], ebx
lea rax, [rbp - 0x80]
mov qword [rsp + 0x28], rax
lea rax, [rbp + 0x1a0]
mov qword [rsp + 0x20], rax
lea r9, [rbp - 0x10]
xor r8d, r8d
lea rdx, str.ThisVersionSolutionCLSID
mov rcx, qword [rbp]
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x14000f47f
lea rdx, [0x140092d88]
lea rcx, [rbp + 0x1a0]
call qword [sym.imp.ole32.dll_IIDFromString]
jmp 0x14000f48e
movups xmm0, xmmword [0x140067c30]
movdqu xmmword [0x140092d88], xmm0
mov rcx, qword [rbp]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
jmp 0x14000f4b1
movups xmm0, xmmword [0x140067c30]
movdqu xmmword [0x140092d78], xmm0
movdqu xmmword [0x140092d88], xmm0
cmp dword [0x140092dfc], esi
je 0x14000f50f
mov rax, qword [0x140092d78]
mov rcx, qword [0x140067c30]
cmp rax, rcx
jne 0x14000f4df
mov rdx, qword [0x140092d80]
mov r8, qword [0x140067c38]
cmp rdx, r8
je 0x14000f52b
lea r9, [0x140092cc8]
lea rcx, [0x140092d78]
call fcn.140036f34
mov edi, eax
mov ecx, 0x80000000
add eax, ecx
test ecx, eax
jne 0x14000faf7
cmp edi, 0x80070002
je 0x14000faf7
mov rdx, qword [0x140092d80]
mov rax, qword [0x140092d78]
mov r8, qword [0x140067c38]
mov rcx, qword [0x140067c30]
cmp dword [0x140092e28], esi
je 0x14000f55a
cmp rax, rcx
jne 0x14000f53d
cmp rdx, r8
je 0x14000f55a
mov r9, qword [0x140092e20]
lea rcx, [0x140092d78]
call fcn.140037284
mov edi, eax
test eax, eax
jns 0x14000faf7
mov dword [rbp - 0x2c], esi
lea rax, [rbp - 0x2c]
mov qword [rsp + 0x20], rax
mov rcx, qword [0x140092d38]
call fcn.140011990
mov edi, eax
test eax, eax
js 0x14000fa7a
cmp dword [rbp - 0x2c], esi
jne 0x14000fa7a
mov rbx, qword [0x140092f78]
lea rcx, [0x140093040]
mov rax, qword [0x140093040]
call qword [rax + 0x60]
test al, al
je 0x14000f5af
lea rax, [0x140093040]
mov qword [rbx + 0x5c0], rax
mov rax, qword [0x140092f78]
lea rcx, [0x14006ae00]
mov qword [rax + 0x180], rcx
mov dword [rax + 0x188], 5
cmp dword [0x140092e70], esi
jne 0x14000f5f9
call fcn.140027630
mov edi, eax
test eax, eax
jns 0x14000f5f9
lfence
mov r9d, eax
lea r8, str.Failure_calling_InitJITHelper.
mov rdx, r14
mov ecx, r15d
call fcn.1400078a0
mov eax, dword [0x140092d20]
cmp dword [0x140092e88], esi
cmovne eax, r15d
mov dword [0x140092d20], eax
cmp dword [0x140092d24], esi
jne 0x14000ef05
test eax, eax
jne 0x14000f677
cmp dword [0x140092df8], esi
jne 0x14000f677
cmp dword [0x140092e9c], esi
je 0x14000f70c
mov qword [rbp + 8], rsi
lea r8, [0x1400779ec]
lea rdx, str.devenv.ver
lea rcx, [rbp + 8]
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fopen_s]
mov rcx, qword [rbp + 8]
test rcx, rcx
je 0x14000faf7
lea rdx, str.SoftwareMicrosoftVisualStudio17.0_n
call fcn.140035ed0
mov rcx, qword [rbp + 8]
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fclose]
jmp 0x14000faf7
call fcn.140001460
mov byte [rax + 0xa], r15b
mov qword [rbp + 0xf0], rsi
mov dword [rbp + 0xf8], esi
mov qword [rbp + 0x100], rsi
mov r9d, 0x20006
mov r8, qword [0x140092d38]
mov rdx, 0xffffffff80000002
lea rcx, [rbp + 0xf0]
call fcn.140011100
mov rbx, qword [rbp + 0xf0]
test eax, eax
jne 0x14000f6fe
mov rdx, qword [0x140092c90]
test rdx, rdx
je 0x14000f6fe
or rax, 0xffffffffffffffff
inc rax
cmp word [rdx + rax*2], si
jne 0x14000f6cf
lea eax, [rax*2 + 2]
mov dword [rsp + 0x28], eax
mov qword [rsp + 0x20], rdx
mov r9d, r15d
xor r8d, r8d
lea rdx, str.SetupCommandLine
mov rcx, rbx
call qword [sym.imp.ADVAPI32.dll_RegSetValueExW]
test rbx, rbx
je 0x14000f70c
mov rcx, rbx
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
lea rcx, [0x140093040]
call fcn.140013270
test al, al
jne 0x14000f728
cmp byte [0x140092ec0], sil
mov dl, sil
je 0x14000f72b
mov dl, r15b
call fcn.14001db88
test al, al
jne 0x14000f758
mov edi, 0x80004005
mov r9d, edi
lea r8, str.Returning_E_FAIL_due_to_InitProfilePaths_failing.
mov rdx, r14
mov ecx, r15d
call fcn.1400078a0
mov eax, 0xbef
jmp 0x14000eb92
mov rcx, qword [0x140092f78]
lea rax, [rcx + 0x1ac]
mov qword [0x140092d70], rax
test rcx, rcx
je 0x14000f77f
lea rax, [rcx + 8]
mov qword [0x140092d98], rax
jmp 0x14000f786
mov qword [0x140092d98], rsi
call fcn.140019248
mov esi, eax
test eax, eax
jns 0x14000f7fd
call fcn.140002950
test rax, rax
je 0x14000ff5b
lfence
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx + 0x18]
add rax, 0x18
mov qword [rbp + 0x98], rax
lea r8, str.SetCmdUICtxts
lea rdx, str.Failure_calling__s.
lea rcx, [rbp + 0x98]
call fcn.14001d9e0
mov r9d, esi
mov rbx, qword [rbp + 0x98]
mov r8, rbx
mov rdx, r14
mov ecx, r15d
call fcn.1400078a0
mov edi, esi
lea rdx, [rbx - 0x18]
or eax, 0xffffffff
lock xadd dword [rdx + 0x10], eax
xor esi, esi
jmp 0x14000e879
mov dword [rbp + 0x120], 0x19f0
mov dword [rbp + 0x124], 0x1a10
mov dword [rbp + 0x128], 0x1a11
lea rax, str.RDRERRRRRRI2RRRRQEQPPKEHRRRERRRRRIRRRIRRP0E2HPZZZKC9KHQTM9P3KICHHKZCPHARPQE9C3K0E3Q3ARK9ERHCPMKZICK9ZQRHHREZETREZQP8Q1ZDIKDREHR2C3K9RDP9MZQ9JQHCKEIMARRZC8RZE0E2EMMTZHC8
mov qword [rbp + 0x130], rax
mov dword [rbp + 0x138], 0x8003
mov eax, 0x19fa
lea rcx, [rbp + 0x13c]
mov edx, reloc.OLEAUT32.dll_SafeArrayGetLBound
mov dword [rcx], eax
add eax, r15d
lea rcx, [rcx + 4]
sub rdx, r15
jne 0x14000f844
xor esi, esi
mov dword [rbp + 0x188], esi
mov dword [rbp + 0x18c], 0x1a0f
mov rax, qword [0x140092f78]
mov ecx, dword [rax + 0x698]
mov dword [rsp + 0x28], ecx
lea rax, [rbp + 0x120]
mov qword [rsp + 0x20], rax
mov rdx, qword [0x140092d38]
call fcn.140028600
mov rax, qword [0x140092f78]
lea rcx, str.SoftwareMicrosoftVisualStudio7.0
mov qword [rax + 0x1a0], rcx
mov dword [rax + 0x1a8], 9
cmp dword [0x140092e94], esi
jne 0x14000f8c6
cmp dword [0x140092d20], esi
jne 0x14000f8c6
mov eax, dword [0x140092e70]
test eax, eax
je 0x14000f8d1
call fcn.140039990
mov eax, dword [0x140092e70]
cmp dword [0x140092e88], esi
je 0x14000f95d
call fcn.140037f90
call fcn.140038104
cmp byte [0x140092ec0], sil
je 0x14000f91e
mov rax, qword [0x140093050]
mov rdx, qword [rax + 0xe8]
mov rcx, qword [0x1400924d8]
test rdx, rdx
cmovne rcx, rdx
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
lea rcx, [0x140093040]
call fcn.14002ff80
mov rbx, qword [0x140092f78]
lea rdx, [rbx + 0x1ac]
call fcn.140039c4c
mov dil, al
lea rdx, [rbx + 0x3b4]
call fcn.140039c4c
test dil, dil
je 0x14000f94b
test al, al
mov edi, esi
jne 0x14000f950
mov edi, 0x80004005
mov dword [rbp - 0x7c], esi
mov eax, 0xc26
jmp 0x14000eb92
cmp dword [0x140092e50], esi
je 0x14000f9ee
lea rcx, [0x140092c80]
call fcn.140027944
mov rbx, rax
test rax, rax
je 0x14000f9a6
lea rdx, str.VStudioValidateCmds
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
test rax, rax
je 0x14000f9a6
mov qword [0x140092c88], rbx
lea rcx, [0x140092c80]
call rax
mov ecx, eax
jmp 0x14000f9ba
call qword [sym.imp.KERNEL32.dll_GetLastError]
movzx ecx, ax
or ecx, 0x80070000
test eax, eax
cmovle ecx, eax
test ecx, ecx
jns 0x14000faf7
lfence
mov r9d, edi
lea r8, str.Returning_3002_error_due_to_util_CallVSValidateCommands_failing.
mov rdx, r14
mov ecx, r15d
call fcn.1400078a0
mov dword [rbp - 0x7c], 0xbba
mov ebx, 0xbee
mov dword [rbp - 0x74], ebx
jmp 0x14000fafc
test eax, eax
je 0x14000fa3e
call fcn.1400210d0
test eax, eax
js 0x14000fa34
lea rcx, [0x140092c80]
call fcn.14003640c
mov edi, eax
test eax, eax
jns 0x14000fa34
lfence
mov r9d, eax
lea r8, str.Returning_3001_error_due_to_util_CallVSComposeMEFAndCommands_failing.
mov rdx, r14
mov ecx, r15d
call fcn.1400078a0
mov eax, 0xbeb
mov dword [rbp - 0x74], eax
mov eax, 0xbb9
jmp 0x14000fa36
mov eax, esi
mov dword [rbp - 0x7c], eax
jmp 0x14000faf7
lea rdx, [rbp - 0x7c]
lea rcx, [0x140092c80]
call fcn.14000ff68
test eax, eax
jne 0x14000faf7
mov edi, 0x80004005
mov r9d, edi
lea r8, str.Returning_E_FAIL_due_to_util_CallVsMain_failing.
mov rdx, r14
mov ecx, r15d
call fcn.1400078a0
mov eax, 0xbeb
jmp 0x14000eb92
call fcn.140002950
mov rcx, rax
test rax, rax
je 0x14000ff5b
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rbp + 0x10], rax
or rax, 0xffffffffffffffff
test edi, edi
jns 0x14000fab3
lea rdx, str.Failure_calling_util_CheckMigrationRequired.
inc rax
cmp word [rdx + rax*2], si
jne 0x14000faa8
jmp 0x14000fac3
lea rdx, str.fMigrationRequired_is_true.
inc rax
cmp word [rdx + rax*2], si
jne 0x14000faba
mov r8d, eax
lea rcx, [rbp + 0x10]
call fcn.140002c00
mov r9d, edi
mov rbx, qword [rbp + 0x10]
mov r8, rbx
mov rdx, r14
mov ecx, r15d
call fcn.1400078a0
nop
jmp 0x14000e86d
mov dword [rbp - 0x7c], esi
jmp 0x14000e86d
mov r12d, ebx
xor esi, esi
mov ebx, 0xbee
mov rcx, qword [0x140092f78]
test rcx, rcx
je 0x14000fb1b
add rcx, 0x5f8
call fcn.140007b90
mov rcx, qword [0x140092f78]
test edi, edi
jns 0x14000fcc4
cmp dword [0x140092e70], esi
jne 0x14000fcc4
cmp dword [0x140092e6c], esi
jne 0x14000fcc4
mov rax, qword [0x140092d38]
test rax, rax
lea rdx, str.SoftwareMicrosoftVisualStudio17.0
cmovne rdx, rax
mov qword [0x140092d38], rdx
test rcx, rcx
je 0x14000fb67
mov rax, qword [rcx]
xor r8d, r8d
xor edx, edx
call qword [rax + 0x30]
cmp qword [0x140092ff0], rsi
je 0x14000fcaf
mov esi, dword [rbp - 0x74]
xor r14d, r14d
test esi, esi
jne 0x14000fbaa
cmp edi, 0x80070002
je 0x14000fba5
cmp edi, 0x8007000e
je 0x14000fb9e
mov esi, 0xbeb
cmp edi, 0x80070057
cmovne esi, ebx
jmp 0x14000fbaa
mov esi, 0xbed
jmp 0x14000fbaa
mov esi, 0xbea
call fcn.140002950
mov rcx, rax
test rax, rax
je 0x14000ff5b
mov rax, qword [rax]
call qword [rax + 0x18]
lea rbx, [rax + 0x18]
mov qword [rbp - 0x38], rbx
mov ecx, esi
sub ecx, 0xbea
je 0x14000fc73
sub ecx, 4
je 0x14000fbea
sub ecx, 0x35
je 0x14000fbea
cmp ecx, 1
jne 0x14000fc73
mov ecx, r15d
sub ecx, dword [rbx - 8]
mov eax, dword [rbx - 0xc]
mov edi, 0x104
sub eax, edi
or eax, ecx
jge 0x14000fc0d
mov edx, edi
lea rcx, [rbp - 0x38]
call fcn.140002d40
mov rbx, qword [rbp - 0x38]
mov edx, edi
mov rcx, rbx
call fcn.14005b110
movsxd rdx, dword [rbx - 0xc]
mov rcx, rbx
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_wcsnlen]
test eax, eax
js 0x14000feb9
cmp eax, dword [rbx - 0xc]
jg 0x14000feb9
lfence
mov rbx, qword [rbp - 0x38]
mov dword [rbx - 0x10], eax
cdqe
mov word [rbx + rax*2], r14w
mov rdi, qword [0x140092ff0]
cmp dword [rbx - 8], r15d
jle 0x14000fc63
mov edx, dword [rbx - 0x10]
lea rcx, [rbp - 0x38]
call fcn.140002da0
mov rbx, qword [rbp - 0x38]
mov r9, rbx
mov r8d, esi
mov rcx, rdi
call fcn.14003693c
jmp 0x14000fc8e
lfence
mov r8d, esi
mov edx, 0xbb8
mov rcx, qword [0x140092ff0]
call fcn.140036490
mov rbx, qword [rbp - 0x38]
lea rdx, [rbx - 0x18]
or eax, 0xffffffff
lock xadd dword [rdx + 0x10], eax
xor esi, esi
sub eax, 1
jg 0x14000fcc4
lfence
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
jmp 0x14000fcc4
mov edx, 0x19e6
lea r8d, [rdx + 1]
mov rcx, qword [0x140092fe8]
call fcn.140036490
mov rbx, qword [0x140092eb8]
jmp 0x14000fcd6
mov rbx, qword [rbx + 0x10]
call sub.api_ms_win_crt_heap_l1_1_0.dll_free
test rbx, rbx
mov rcx, rbx
jne 0x14000fccd
mov qword [0x140092eb8], rsi
mov rbx, qword [0x140092c88]
lea rcx, [0x140092c80]
call fcn.14000ffec
mov rcx, qword [0x140092f78]
test rcx, rcx
je 0x14000fd0e
add rcx, 8
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetDim]
test r12d, r12d
je 0x14000fd3c
cmp qword [0x140092fd0], rsi
je 0x14000fd37
mov ecx, 0x1ba6
call fcn.140007c18
nop
call fcn.14001012c
mov ecx, 0x1ba7
call fcn.140007c18
nop
call fcn.14002f30c
test rbx, rbx
je 0x14000fd62
lea rdx, str.VStudioTerm
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
test rax, rax
jne 0x14000fd5e
call qword [sym.imp.KERNEL32.dll_GetLastError]
jmp 0x14000fd62
xor ecx, ecx
call rax
mov rbx, qword [0x140092fd0]
test rbx, rbx
je 0x14000fd83
mov rcx, rbx
call fcn.14002f320
mov edx, reloc.OLEAUT32.dll_SafeArrayAllocDescriptorEx
mov rcx, rbx
call fcn.140002ef0
mov qword [0x140092fd0], rsi
lea rcx, [0x140093040]
call fcn.14002ff80
cmp byte [rbp - 0x78], sil
je 0x14000fda9
xor edx, edx
mov rcx, qword [rbp - 0x68]
call qword [sym.imp.KERNEL32.dll_WerUnregisterRuntimeExceptionModule]
nop
mov rdx, qword [rbp + 0xa0]
add rdx, 0xffffffffffffffe8
or eax, 0xffffffff
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x14000fdd0
lfence
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
nop
mov rdx, qword [rbp - 0x60]
add rdx, 0xffffffffffffffe8
or eax, 0xffffffff
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x14000fdf2
lfence
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rbp + 0x18]
add rdx, 0xffffffffffffffe8
or eax, 0xffffffff
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x14000fe14
lfence
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
xor ecx, ecx
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
mov rcx, qword [rbp - 0x58]
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
mov rdx, qword [rbp - 0x28]
add rdx, 0xffffffffffffffe8
or eax, 0xffffffff
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x14000fe48
lfence
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rbp - 0x18]
add rdx, 0xffffffffffffffe8
or eax, 0xffffffff
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x14000fe6a
lfence
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rbp - 0x68]
add rdx, 0xffffffffffffffe8
or eax, 0xffffffff
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x14000fe8b
lfence
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov eax, dword [rbp - 0x7c]
mov rcx, qword [rbp + 0x5c8]
xor rcx, rsp
call fcn.140001020
lea r11, [rsp + 0x6d0]
mov rbx, qword [r11 + 0x40]
mov rsi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r12
pop rdi
pop rbp
ret
mov ecx, 0x80070057
call fcn.1400327c0
nop
jmp 0x14000fec6
nop
mov ecx, r14d
call fcn.1400327c0
nop
jmp 0x14000fed2
nop
mov ecx, 0x80004005
call fcn.1400327c0
nop
jmp 0x14000fee0
nop
mov ecx, 0x80004005
call fcn.1400327c0
nop
jmp 0x14000fef0
nop
mov ecx, 0x80004005
call fcn.1400327c0
nop
jmp 0x14000fefe
nop
mov ecx, 0x80004005
call fcn.1400327c0
nop
jmp 0x14000ff0c
nop
mov ecx, 0x8007000e
call fcn.1400327c0
nop
jmp 0x14000ff1a
nop
mov ecx, 0x80004005
call fcn.1400327c0
nop
jmp 0x14000ff28
nop
mov ecx, 0x80004005
call fcn.1400327c0
nop
jmp 0x14000ff36
nop
mov ecx, 0x80004005
call fcn.1400327c0
nop
jmp 0x14000ff44
nop
mov ecx, 0x80004005
call fcn.1400327c0
int3
mov ecx, 0x80004005
call fcn.1400327c0
int3
mov ecx, 0x80004005
call fcn.1400327c0
int3