Function at 0x14012b748
Capabilities:
Get installed programs
Query environment variable
Query or enumerate registry key
Query or enumerate registry value

Disassembly:
test rcx, rcx
je 0x14012bdf8
mov rax, rsp
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x408]
sub rsp, 0x4e0
mov rax, qword [0x1401e7e78]
xor rax, rsp
mov qword [rbp + 0x3d0], rax
xor r14d, r14d
mov qword [rsp + 0x68], rcx
lea rbx, [rcx + 0x21c]
mov r13, rcx
lea rdi, [rcx + 0x424]
mov word [rbx], r14w
mov word [rdi], r14w
cmp dword [rcx], r14d
jne 0x14012bd97
call fcn.140123504
lea rcx, str._ConEmuDir__tcc.exe
movzx r15d, al
mov qword [rbp - 0x78], rcx
lea rax, str._ConEmuBaseDir__tcc.exe
lea rcx, str._ConEmuDir_.._tcc_tcc.exe
mov dword [rsp + 0x48], r15d
mov qword [rbp - 0x70], rcx
mov esi, r14d
lea rcx, str._ConEmuDir_...._tcc_tcc.exe
mov qword [rbp - 0x80], rax
mov qword [rbp - 0x68], rcx
mov qword [rbp - 0x60], r14
mov r8d, 0x105
lea rdx, [rbp - 0x50]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_ExpandEnvironmentStringsW]
dec eax
cmp eax, 0x103
ja 0x14012b81e
xor edx, edx
lea rcx, [rbp - 0x50]
call fcn.140122088
test al, al
jne 0x14012b82d
mov rax, qword [rbp + rsi*8 - 0x78]
inc rsi
test rax, rax
je 0x14012b845
jmp 0x14012b7f3
lea rdx, [rbp - 0x50]
mov rcx, rbx
call fcn.140004ad0
lea rdx, [rbp - 0x50]
mov rcx, rdi
call fcn.140004ad0
cmp word [rbx], r14w
je 0x14012b855
cmp word [rdi], r14w
jne 0x14012baa2
mov esi, r14d
test esi, esi
je 0x14012b865
test r15d, r15d
je 0x14012ba5b
mov eax, esi
mov byte [rsp + 0x40], r14b
neg eax
lea rdx, str.SOFTWAREJP_Software
lea rax, [rsp + 0x50]
mov rcx, 0xffffffff80000002
sbb r12d, r12d
mov qword [rsp + 0x20], rax
and r12d, 0xffffff00
xor r8d, r8d
add r12d, 0x200
mov r13b, r14b
imul r12d, r15d
or r12d, 0x20019
mov r9d, r12d
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x14012ba5b
mov eax, r14d
mov dword [rsp + 0x44], eax
mov rcx, qword [rsp + 0x50]
lea r9, [rsp + 0x58]
mov qword [rsp + 0x38], r14
lea r8, [rbp + 0x1c0]
mov qword [rsp + 0x30], r14
mov edx, eax
mov qword [rsp + 0x28], r14
mov qword [rsp + 0x20], r14
mov dword [rsp + 0x58], 0x104
call qword [sym.imp.ADVAPI32.dll_RegEnumKeyExW]
test eax, eax
jne 0x14012ba4b
mov rcx, qword [rsp + 0x50]
lea rax, [rsp + 0x60]
mov r9d, r12d
mov qword [rsp + 0x20], rax
xor r8d, r8d
lea rdx, [rbp + 0x1c0]
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x14012ba38
lea rax, str.Path
mov qword [rsp + 0x70], r14
mov qword [rsp + 0x78], rax
mov r15, r14
xor edx, edx
lea rcx, [rbp - 0x50]
mov r8d, 0x20a
call fcn.14013b230
mov rdx, qword [rsp + r15*8 + 0x70]
lea rax, [rsp + 0x4c]
mov rcx, qword [rsp + 0x60]
xor r9d, r9d
mov qword [rsp + 0x28], rax
xor r8d, r8d
lea rax, [rbp - 0x50]
mov dword [rsp + 0x4c], 0x208
mov qword [rsp + 0x20], rax
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x14012ba20
cmp word [rbp - 0x50], r14w
je 0x14012ba20
mov dl, 1
lea rcx, [rbp - 0x50]
call fcn.140125ca0
mov edx, 0x5c
mov rcx, rax
mov r14, rax
call fcn.14013bd50
mov r13, rax
test rax, rax
je 0x14012ba18
lea rdx, str._tcmd.exe
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
jne 0x14012ba18
xor edx, edx
mov rcx, r14
call fcn.140122088
test al, al
je 0x14012ba18
lea rcx, [r13 + 2]
mov r8d, 8
lea rdx, str.tcc.exe
call qword [sym.imp.KERNEL32.dll_lstrcpynW]
xor edx, edx
mov rcx, r14
call fcn.140122088
test al, al
je 0x14012ba18
mov r13b, 1
mov rdx, r14
mov byte [rsp + 0x40], r13b
test esi, esi
jne 0x14012ba13
mov rcx, rbx
call fcn.140004ad0
jmp 0x14012ba1d
mov rcx, rdi
jmp 0x14012ba0c
mov r13b, byte [rsp + 0x40]
xor r14d, r14d
inc r15
cmp r15, 2
jb 0x14012b93b
mov rcx, qword [rsp + 0x60]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, dword [rsp + 0x44]
inc eax
mov dword [rsp + 0x44], eax
test r13b, r13b
je 0x14012b8c0
mov rcx, qword [rsp + 0x50]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov r15d, dword [rsp + 0x48]
inc esi
cmp esi, 1
jle 0x14012b858
mov r13, qword [rsp + 0x68]
movzx ecx, word [r13 + 0x21c]
movzx eax, word [r13 + 0x424]
test cx, cx
je 0x14012ba8d
test ax, ax
jne 0x14012ba92
mov rdx, rbx
mov rcx, rdi
jmp 0x14012ba9d
test ax, ax
je 0x14012baa2
test cx, cx
jne 0x14012baa2
mov rdx, rdi
mov rcx, rbx
call fcn.140004ad0
cmp word [rbx], r14w
je 0x14012bab2
cmp word [rdi], r14w
jne 0x14012bd1b
xor r13d, r13d
test r14d, r14d
je 0x14012bac8
test r15d, r15d
je 0x14012bd01
movzx eax, word [rdi]
jmp 0x14012bacb
movzx eax, word [rbx]
test ax, ax
jne 0x14012bd01
mov eax, r14d
mov byte [rsp + 0x40], r13b
neg eax
lea rdx, str.SOFTWAREMicrosoftWindowsCurrentVersionUninstall
lea rax, [rsp + 0x50]
mov rcx, 0xffffffff80000002
sbb r15d, r15d
mov qword [rsp + 0x20], rax
and r15d, 0xffffff00
xor r8d, r8d
add r15d, 0x200
mov sil, r13b
imul r15d, dword [rsp + 0x48]
or r15d, 0x20019
mov r9d, r15d
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x14012bd01
mov r12d, r13d
mov rcx, qword [rsp + 0x50]
lea r9, [rsp + 0x4c]
mov qword [rsp + 0x38], r13
lea r8, [rbp + 0x1c0]
mov qword [rsp + 0x30], r13
mov edx, r12d
mov qword [rsp + 0x28], r13
mov qword [rsp + 0x20], r13
mov dword [rsp + 0x4c], 0x104
call qword [sym.imp.ADVAPI32.dll_RegEnumKeyExW]
test eax, eax
jne 0x14012bcf6
cmp word [rbp + 0x1c0], 0x7b
jne 0x14012bcea
mov rcx, qword [rsp + 0x50]
lea rax, [rsp + 0x58]
mov r9d, r15d
mov qword [rsp + 0x20], rax
xor r8d, r8d
lea rdx, [rbp + 0x1c0]
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x14012bcea
xor edx, edx
lea rcx, [rbp - 0x50]
mov r8d, 0x20a
call fcn.14013b230
mov rcx, qword [rsp + 0x58]
lea rax, [rsp + 0x44]
mov qword [rsp + 0x28], rax
lea rdx, str.Publisher
lea rax, [rbp - 0x50]
mov dword [rsp + 0x44], 0x208
xor r9d, r9d
mov qword [rsp + 0x20], rax
xor r8d, r8d
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x14012bcdf
lea rdx, str.JP_Software
lea rcx, [rbp - 0x50]
call qword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
jne 0x14012bcdf
mov rcx, qword [rsp + 0x58]
lea rax, [rsp + 0x44]
mov qword [rsp + 0x28], rax
lea rdx, str.InstallLocation
lea rax, [rbp - 0x50]
mov dword [rsp + 0x44], 0x1f2
xor r9d, r9d
mov qword [rsp + 0x20], rax
xor r8d, r8d
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x14012bcdf
movzx eax, word [rbp - 0x50]
test ax, ax
je 0x14012bcdf
mov ecx, 0x22
cmp ax, cx
jne 0x14012bc75
mov edx, ecx
lea rsi, [rbp - 0x4e]
lea rcx, [rbp - 0x4e]
call fcn.14013a9b0
test rax, rax
je 0x14012bc79
mov word [rax], r13w
jmp 0x14012bc79
lea rsi, [rbp - 0x50]
cmp word [rsi], r13w
je 0x14012bcda
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_lstrlenW]
movsxd rcx, eax
mov eax, 0x5c
lea rcx, [rsi + rcx*2]
cmp word [rcx - 2], ax
je 0x14012bca1
mov word [rcx], ax
add rcx, 2
mov r8d, 8
lea rdx, str.tcc.exe
call qword [sym.imp.KERNEL32.dll_lstrcpynW]
xor edx, edx
mov rcx, rsi
call fcn.140122088
test al, al
je 0x14012bcda
mov byte [rsp + 0x40], 1
mov rdx, rsi
mov rcx, rbx
test r14d, r14d
je 0x14012bcd5
mov rcx, rdi
call fcn.140004ad0
mov sil, byte [rsp + 0x40]
mov rcx, qword [rsp + 0x58]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
inc r12d
test sil, sil
je 0x14012bb2e
mov rcx, qword [rsp + 0x50]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov r15d, dword [rsp + 0x48]
inc r14d
cmp r14d, 1
jle 0x14012bab5
mov r13, qword [rsp + 0x68]
xor r14d, r14d
cmp word [rbx], r14w
jne 0x14012bd69
cmp word [rdi], r14w
jne 0x14012bd63
xor edx, edx
lea rcx, str.C:Program_FilesJPSoftTCMD13_tcc.exe
call fcn.140122088
test al, al
je 0x14012bd42
lea rdx, str.C:Program_FilesJPSoftTCMD13_tcc.exe
jmp 0x14012bd5b
xor edx, edx
lea rcx, str.C:Program_FilesJPSoftTCCLE13_tcc.exe
call fcn.140122088
test al, al
je 0x14012bd63
lea rdx, str.C:Program_FilesJPSoftTCCLE13_tcc.exe
mov rcx, rbx
call fcn.140004ad0
cmp word [rbx], r14w
je 0x14012bd79
movzx eax, word [rdi]
test ax, ax
jne 0x14012bd86
mov rdx, rbx
mov rcx, rdi
jmp 0x14012bd92
movzx eax, word [r13 + 0x424]
test ax, ax
je 0x14012bd97
cmp word [rbx], r14w
jne 0x14012bdb0
mov rdx, rdi
mov rcx, rbx
call fcn.140004ad0
cmp word [rbx], r14w
jne 0x14012bdb0
mov edx, 0x104
mov r8d, 2
mov rcx, rbx
call fcn.1401226dc
cmp word [rdi], r14w
jne 0x14012bdc9
mov edx, 0x104
mov r8d, 3
mov rcx, rdi
call fcn.1401226dc
mov rcx, qword [rbp + 0x3d0]
xor rcx, rsp
call fcn.140139b10
lea r11, [rsp + 0x4e0]
mov rbx, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rdi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret