Function at 0x140022f7c
Capabilities:
Print debug messages

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rdx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x40
mov esi, r9d
mov r12, r8
mov rdi, rcx
test r8, r8
je 0x1400231c2
mov r13, qword [rsp + 0xa0]
test r13, r13
je 0x1400231c2
mov r15, qword [rsp + 0xb8]
test r15, r15
je 0x1400231c2
mov rax, qword [rcx]
test rax, rax
je 0x140023071
xor ebp, ebp
cmp dword [rax + 8], ebp
jle 0x140023071
xor r14d, r14d
test r14, r14
js 0x1400231df
cmp ebp, dword [rax + 8]
jge 0x1400231df
mov rbx, qword [rax]
add rbx, r14
cmp rdx, qword [rbx]
jne 0x14002305f
or rcx, 0xffffffffffffffff
inc rcx
cmp byte [r12 + rcx], 0
jne 0x140023004
mov rdx, qword [rbx + 0x20]
or rax, 0xffffffffffffffff
inc rax
cmp byte [rdx + rax], 0
jne 0x140023016
cmp rcx, rax
jb 0x140023057
mov r9d, dword [rdx - 0x10]
mov dword [rsp + 0x28], r9d
mov qword [rsp + 0x20], rdx
mov r8, r12
mov edx, 1
lea ecx, [rdx + 0x7e]
call qword [sym.imp.KERNEL32.dll_CompareStringA]
cmp eax, 2
jne 0x140023057
mov rax, qword [rbx + 0x18]
test rax, rax
je 0x14002307b
call rax
test al, al
jne 0x14002307b
mov rdx, qword [rsp + 0x88]
inc ebp
add r14, 0x48
mov rax, qword [rdi]
cmp ebp, dword [rax + 8]
jl 0x140022fe3
mov eax, 1
jmp 0x1400231c7
cmp byte [rdi + 9], 0
jne 0x140023091
cmp byte [rdi + 8], 0
jne 0x140023091
cmp byte [rbx + 0x40], 0
je 0x14002317e
lea rcx, [rsp + 0xb0]
call fcn.14000dba8
nop
mov rdx, r12
lea rcx, [rsp + 0x30]
call fcn.140022c28
nop
mov r9, qword [rsp + 0x30]
lea r8, str.ANSI
lea rdx, str.VsDetour:_matched___s_:__s_r_n
lea rcx, [rsp + 0xb0]
call fcn.14001d034
cmp byte [rdi + 8], 0
jne 0x1400230d9
cmp byte [rbx + 0x40], 0
je 0x14002313c
lea rcx, [rsp + 0x90]
call fcn.14000dba8
nop
mov r9, qword [rsp + 0xb0]
lea r8, str.VisualStudio
lea rdx, str.Error:__s:__s_n
lea rcx, [rsp + 0x90]
call fcn.14001d034
mov rcx, qword [rsp + 0x90]
call qword [sym.imp.KERNEL32.dll_OutputDebugStringW]
nop
mov rdx, qword [rsp + 0x90]
add rdx, 0xffffffffffffffe8
or eax, 0xffffffff
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x14002313c
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x30]
add rdx, 0xffffffffffffffe8
or eax, 0xffffffff
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x14002315c
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0xb0]
add rdx, 0xffffffffffffffe8
or eax, 0xffffffff
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x14002317e
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov r8, qword [rsp + 0xa8]
mov rdx, r12
mov rcx, rbx
call fcn.140023a70
test eax, eax
js 0x1400231c7
mov rax, qword [rbx + 8]
mov qword [r13], rax
mov dword [r15], esi
cmp byte [rbx + 0x10], 0
je 0x1400231ac
or esi, 1
mov dword [r15], esi
mov rcx, qword [rsp + 0xc0]
test rcx, rcx
je 0x1400231be
mov al, byte [rbx + 0x11]
mov byte [rcx], al
xor eax, eax
jmp 0x1400231c7
mov eax, 0x80070057
mov rbx, qword [rsp + 0x80]
add rsp, 0x40
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
mov edx, 1
mov ecx, 0xc000008c
call fcn.140009b88
int3