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

Disassembly:
test rcx, rcx
je 0x14011e4a4
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 [0x1401f5698]
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 0x14011e443
call fcn.140116890
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 0x14011deca
xor edx, edx
lea rcx, [rbp - 0x50]
call fcn.140115770
test al, al
jne 0x14011ded9
mov rax, qword [rbp + rsi*8 - 0x78]
inc rsi
test rax, rax
je 0x14011def1
jmp 0x14011de9f
lea rdx, [rbp - 0x50]
mov rcx, rbx
call fcn.1400047d8
lea rdx, [rbp - 0x50]
mov rcx, rdi
call fcn.1400047d8
cmp word [rbx], r14w
je 0x14011df01
cmp word [rdi], r14w
jne 0x14011e14e
mov esi, r14d
test esi, esi
je 0x14011df11
test r15d, r15d
je 0x14011e107
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 0x14011e107
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 0x14011e0f7
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 0x14011e0e4
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.14012d4b0
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 0x14011e0cc
cmp word [rbp - 0x50], r14w
je 0x14011e0cc
mov dl, 1
lea rcx, [rbp - 0x50]
call fcn.140118f34
mov edx, 0x5c
mov rcx, rax
mov r14, rax
call fcn.14012dd3c
mov r13, rax
test rax, rax
je 0x14011e0c4
lea rdx, str._tcmd.exe
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
jne 0x14011e0c4
xor edx, edx
mov rcx, r14
call fcn.140115770
test al, al
je 0x14011e0c4
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.140115770
test al, al
je 0x14011e0c4
mov r13b, 1
mov rdx, r14
mov byte [rsp + 0x40], r13b
test esi, esi
jne 0x14011e0bf
mov rcx, rbx
call fcn.1400047d8
jmp 0x14011e0c9
mov rcx, rdi
jmp 0x14011e0b8
mov r13b, byte [rsp + 0x40]
xor r14d, r14d
inc r15
cmp r15, 2
jb 0x14011dfe7
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 0x14011df6c
mov rcx, qword [rsp + 0x50]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov r15d, dword [rsp + 0x48]
inc esi
cmp esi, 1
jle 0x14011df04
mov r13, qword [rsp + 0x68]
movzx ecx, word [r13 + 0x21c]
movzx eax, word [r13 + 0x424]
test cx, cx
je 0x14011e139
test ax, ax
jne 0x14011e13e
mov rdx, rbx
mov rcx, rdi
jmp 0x14011e149
test ax, ax
je 0x14011e14e
test cx, cx
jne 0x14011e14e
mov rdx, rdi
mov rcx, rbx
call fcn.1400047d8
cmp word [rbx], r14w
je 0x14011e15e
cmp word [rdi], r14w
jne 0x14011e3c7
xor r13d, r13d
test r14d, r14d
je 0x14011e174
test r15d, r15d
je 0x14011e3ad
movzx eax, word [rdi]
jmp 0x14011e177
movzx eax, word [rbx]
test ax, ax
jne 0x14011e3ad
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 0x14011e3ad
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 0x14011e3a2
cmp word [rbp + 0x1c0], 0x7b
jne 0x14011e396
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 0x14011e396
xor edx, edx
lea rcx, [rbp - 0x50]
mov r8d, 0x20a
call fcn.14012d4b0
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 0x14011e38b
lea rdx, str.JP_Software
lea rcx, [rbp - 0x50]
call qword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
jne 0x14011e38b
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 0x14011e38b
movzx eax, word [rbp - 0x50]
test ax, ax
je 0x14011e38b
mov ecx, 0x22
cmp ax, cx
jne 0x14011e321
mov edx, ecx
lea rsi, [rbp - 0x4e]
lea rcx, [rbp - 0x4e]
call fcn.14012cc40
test rax, rax
je 0x14011e325
mov word [rax], r13w
jmp 0x14011e325
lea rsi, [rbp - 0x50]
cmp word [rsi], r13w
je 0x14011e386
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 0x14011e34d
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.140115770
test al, al
je 0x14011e386
mov byte [rsp + 0x40], 1
mov rdx, rsi
mov rcx, rbx
test r14d, r14d
je 0x14011e381
mov rcx, rdi
call fcn.1400047d8
mov sil, byte [rsp + 0x40]
mov rcx, qword [rsp + 0x58]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
inc r12d
test sil, sil
je 0x14011e1da
mov rcx, qword [rsp + 0x50]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov r15d, dword [rsp + 0x48]
inc r14d
cmp r14d, 1
jle 0x14011e161
mov r13, qword [rsp + 0x68]
xor r14d, r14d
cmp word [rbx], r14w
jne 0x14011e415
cmp word [rdi], r14w
jne 0x14011e40f
xor edx, edx
lea rcx, str.C:Program_FilesJPSoftTCMD13_tcc.exe
call fcn.140115770
test al, al
je 0x14011e3ee
lea rdx, str.C:Program_FilesJPSoftTCMD13_tcc.exe
jmp 0x14011e407
xor edx, edx
lea rcx, str.C:Program_FilesJPSoftTCCLE13_tcc.exe
call fcn.140115770
test al, al
je 0x14011e40f
lea rdx, str.C:Program_FilesJPSoftTCCLE13_tcc.exe
mov rcx, rbx
call fcn.1400047d8
cmp word [rbx], r14w
je 0x14011e425
movzx eax, word [rdi]
test ax, ax
jne 0x14011e432
mov rdx, rbx
mov rcx, rdi
jmp 0x14011e43e
movzx eax, word [r13 + 0x424]
test ax, ax
je 0x14011e443
cmp word [rbx], r14w
jne 0x14011e45c
mov rdx, rdi
mov rcx, rbx
call fcn.1400047d8
cmp word [rbx], r14w
jne 0x14011e45c
mov edx, 0x104
mov r8d, 2
mov rcx, rbx
call fcn.140115c84
cmp word [rdi], r14w
jne 0x14011e475
mov edx, 0x104
mov r8d, 3
mov rcx, rdi
call fcn.140115c84
mov rcx, qword [rbp + 0x3d0]
xor rcx, rsp
call fcn.14012bda0
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