Function at 0x1400231f0
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 r12d, r9d
mov r15, r8
mov r14, rcx
xor r8d, r8d
test r15, r15
je 0x1400234f2
cmp qword [rsp + 0xa0], r8
je 0x1400234f2
mov r13, qword [rsp + 0xb8]
test r13, r13
je 0x1400234f2
mov rax, qword [rcx]
test rax, rax
je 0x1400234b1
mov ebp, r8d
cmp dword [rax + 8], r8d
jle 0x1400234b1
mov ebx, r8d
or rsi, 0xffffffffffffffff
test rbx, rbx
js 0x14002350f
cmp ebp, dword [rax + 8]
jge 0x14002350f
mov rdi, qword [rax]
cmp rdx, qword [rbx + rdi]
jne 0x14002349f
mov rcx, rsi
inc rcx
cmp word [r15 + rcx*2], r8w
jne 0x14002327f
mov rdx, qword [rbx + rdi + 0x30]
mov rax, rsi
inc rax
cmp word [rdx + rax*2], r8w
jne 0x140023291
cmp rcx, rax
jb 0x140023497
mov r9d, dword [rdx - 0x10]
mov dword [rsp + 0x28], r9d
mov qword [rsp + 0x20], rdx
mov r8, r15
mov edx, 1
lea ecx, [rdx + 0x7e]
call qword [sym.imp.KERNEL32.dll_CompareStringW]
cmp eax, 2
jne 0x140023494
mov rax, qword [rbx + rdi + 0x18]
test rax, rax
je 0x1400232e3
call rax
xor r8d, r8d
test al, al
je 0x140023497
xor ebp, ebp
cmp byte [r14 + 9], bpl
jne 0x1400232fc
cmp byte [r14 + 8], bpl
jne 0x1400232fc
cmp byte [rbx + rdi + 0x40], bpl
je 0x1400233ea
lea rcx, [rsp + 0xb0]
call fcn.14000dba8
nop
mov rdx, r15
lea rcx, [rsp + 0x30]
call fcn.1400044f4
nop
mov r9, qword [rsp + 0x30]
lea r8, str.UNICODE
lea rdx, str.VsDetour:_matched___s_:__s_r_n
lea rcx, [rsp + 0xb0]
call fcn.14001d034
cmp byte [r14 + 8], bpl
jne 0x140023345
cmp byte [rbx + rdi + 0x40], bpl
je 0x1400233a8
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
mov eax, esi
lock xadd dword [rdx + 0x10], eax
add eax, esi
test eax, eax
jg 0x1400233a8
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x30]
add rdx, 0xffffffffffffffe8
mov eax, esi
lock xadd dword [rdx + 0x10], eax
add eax, esi
test eax, eax
jg 0x1400233c8
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0xb0]
add rdx, 0xffffffffffffffe8
mov eax, esi
lock xadd dword [rdx + 0x10], eax
add eax, esi
test eax, eax
jg 0x1400233ea
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rdx, qword [rbx + rdi + 0x38]
mov r11d, 0x208
mov r8d, r11d
mov r10, qword [rsp + 0xa8]
mov rcx, r10
mov r9, rbp
sub rdx, r10
lea rax, [r8 + 0x7ffffdf6]
test rax, rax
je 0x14002342e
movzx eax, word [rdx + rcx]
test ax, ax
je 0x14002342e
mov word [rcx], ax
add rcx, 2
inc r9
sub r8, 1
jne 0x140023409
lea rax, [rcx - 2]
test r8, r8
cmovne rax, rcx
mov word [rax], bp
lea rcx, [r9 - 1]
cmovne rcx, r9
mov rax, r8
neg rax
sbb edx, edx
not edx
and edx, 0x8007007a
lea r9, [r10 + rcx*2]
sub r11, rcx
test r8, r8
je 0x140023490
inc rsi
cmp word [r15 + rsi*2], bp
jne 0x140023460
mov rax, qword [rbx + rdi + 0x30]
movsxd r8, dword [rax - 0x10]
movsxd rax, esi
cmp rax, r8
jbe 0x14002348c
lea r8, [r15 + r8*2]
mov rdx, r11
mov rcx, r9
call fcn.14001feec
mov edx, eax
test edx, edx
jns 0x1400234b8
mov eax, edx
jmp 0x1400234f7
xor r8d, r8d
mov rdx, qword [rsp + 0x88]
inc ebp
add rbx, 0x48
mov rax, qword [r14]
cmp ebp, dword [rax + 8]
jl 0x14002325d
mov eax, 1
jmp 0x1400234f7
mov rax, qword [rbx + rdi + 8]
mov rcx, qword [rsp + 0xa0]
mov qword [rcx], rax
mov dword [r13], r12d
cmp byte [rbx + rdi + 0x10], bpl
je 0x1400234db
or r12d, 1
mov dword [r13], r12d
mov rcx, qword [rsp + 0xc0]
test rcx, rcx
je 0x1400234ee
mov al, byte [rbx + rdi + 0x11]
mov byte [rcx], al
xor eax, eax
jmp 0x1400234f7
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