Function at 0x14008e250
Capabilities:
Create process on windows
Query or enumerate registry value

Disassembly:
mov qword [rsp + 8], rcx
push rbp
push rbx
push rsi
push rdi
push r12
push r14
push r15
lea rbp, [rsp - 0x27]
sub rsp, 0xd0
movzx ebx, dl
xor r12d, r12d
mov dword [rbp - 0x69], r12d
lea rdx, str.Properties
lea rcx, [rbp - 0x29]
call fcn.140053420
nop
mov rcx, qword [rbp - 0x29]
test rcx, rcx
je 0x14008e9b7
mov rax, qword [rcx]
mov dword [rsp + 0x20], r12d
xor r9d, r9d
xor r8d, r8d
lea rdx, str.On_Screen_Keyboard
call qword [rax + 0x10]
test eax, eax
je 0x14008e9b7
test bl, bl
je 0x14008e977
mov qword [rbp - 0x41], r12
mov dword [rbp - 0x39], r12d
cmp dword [0x1401eb6c0], 0xb23a8c33
je 0x14008e2fb
mov ecx, 0x6c0
call fcn.1400f2ce0
mov qword [rbp + 0x67], rax
test rax, rax
je 0x14008e2ef
mov rcx, rax
call fcn.1400302c0
mov rcx, rax
jmp 0x14008e2f2
mov rcx, r12
mov qword [0x1401f7b90], rcx
jmp 0x14008e302
mov rcx, qword [0x1401f7b90]
mov rax, qword [rcx]
call qword [rax + 0x30]
mov qword [rbp - 0x61], rax
mov qword [rbp - 0x19], r12
lea rax, [rbp - 0x19]
mov qword [rsp + 0x20], rax
mov r9d, 0x20019
xor r8d, r8d
lea rdx, str.SOFTWAREMicrosoftWindowsCurrentVersion
mov rcx, 0xffffffff80000002
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
mov r14d, 0xffffffff
test eax, eax
jne 0x14008e6bf
mov eax, r12d
mov rcx, qword [rbp - 0x41]
test rcx, rcx
je 0x14008e356
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov rcx, qword [rbp - 0x19]
mov qword [rbp - 0x41], rcx
mov dword [rbp - 0x39], r12d
test eax, eax
jne 0x14008e6bf
lea rdx, [0x14018ac20]
lea rcx, [rbp - 0x51]
call fcn.140002450
mov dword [rbp - 0x69], 1
mov rcx, qword [rbp - 0x41]
test rcx, rcx
je 0x14008e537
mov dword [rbp + 0x7f], 1
mov dword [rbp + 0x77], r12d
lea rax, [rbp + 0x77]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], r12
lea r9, [rbp + 0x7f]
xor r8d, r8d
lea rdx, str.CommonFilesDir
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x14008e537
mov ecx, dword [rbp + 0x7f]
lea eax, [rcx - 1]
cmp eax, 1
jbe 0x14008e4b1
cmp ecx, 4
jne 0x14008e537
mov dword [rbp + 0x67], r12d
mov rcx, qword [rbp - 0x41]
test rcx, rcx
je 0x14008e496
mov dword [rbp - 0x31], 4
mov dword [rbp - 0x59], 0xffffffff
lea rax, [rbp - 0x31]
mov qword [rsp + 0x28], rax
lea rax, [rbp + 0x67]
mov qword [rsp + 0x20], rax
lea r9, [rbp - 0x59]
xor r8d, r8d
lea rdx, str.CommonFilesDir
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
je 0x14008e42a
mov dword [rbp + 0x67], r12d
jmp 0x14008e496
mov eax, dword [rbp - 0x59]
cmp eax, 4
je 0x14008e496
mov dword [rbp + 0x67], r12d
cmp eax, 1
jne 0x14008e496
lea r8, str.CommonFilesDir
lea rdx, [rbp - 0x11]
lea rcx, [rbp - 0x41]
call fcn.14003f140
nop
mov rax, qword [rbp - 0x11]
cmp dword [rax - 0x10], 0
jle 0x14008e469
mov rcx, rax
call fcn.140014050
mov dword [rbp + 0x67], eax
mov rax, qword [rbp - 0x11]
lea rdx, [rax - 0x18]
mov eax, dword [rdx + 0x10]
cmp eax, 0x7ffffc17
je 0x14008e496
mov eax, dword [rdx + 0x10]
cmp eax, 0xffffffff
je 0x14008e48c
mov eax, r14d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x14008e496
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
movsxd rdx, dword [rbp + 0x67]
mov r9d, 0xa
xor r8d, r8d
lea rcx, [rbp - 0x51]
call fcn.140033f40
jmp 0x14008e537
mov edi, dword [rbp + 0x77]
inc rdi
shr rdi, 1
lea edx, [rdi + 1]
mov r9b, 1
xor r8d, r8d
lea rcx, [rbp - 0x51]
call fcn.140030f50
mov rbx, rax
lea rax, [rbp + 0x77]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rbx
lea r9, [rbp + 0x7f]
xor r8d, r8d
lea rdx, str.CommonFilesDir
mov rcx, qword [rbp - 0x41]
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
movsxd rcx, edi
mov word [rbx + rcx*2], r12w
mov rax, qword [rbp - 0x51]
test rax, rax
jne 0x14008e50b
mov edx, r12d
jmp 0x14008e524
mov rdx, rax
nop
movzx ecx, word [rdx]
add rdx, 2
test cx, cx
jne 0x14008e510
sub rdx, rax
sar rdx, 1
dec edx
mov dword [rax - 0x10], edx
mov ecx, dword [rax - 8]
cmp ecx, 0xffffffff
jne 0x14008e537
mov ecx, 1
xchg dword [rax - 8], ecx
lea rdx, [rbp - 0x51]
lea rcx, [rbp - 0x61]
call fcn.140030d70
mov dword [rbp - 0x69], r12d
mov rdx, qword [rbp - 0x51]
add rdx, 0xffffffffffffffe8
mov eax, dword [rdx + 0x10]
cmp eax, 0x7ffffc17
je 0x14008e579
mov eax, dword [rdx + 0x10]
cmp eax, 0xffffffff
je 0x14008e56f
mov eax, r14d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x14008e579
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
cmp dword [0x1401eb6c0], 0xb23a8c33
je 0x14008e5b1
mov ecx, 0x6c0
call fcn.1400f2ce0
mov qword [rbp - 1], rax
test rax, rax
je 0x14008e5a5
mov rcx, rax
call fcn.1400302c0
mov rcx, rax
jmp 0x14008e5a8
mov rcx, r12
mov qword [0x1401f7b90], rcx
jmp 0x14008e5b8
mov rcx, qword [0x1401f7b90]
mov rax, qword [rcx]
mov byte [rsp + 0x30], 1
mov byte [rsp + 0x28], 0
mov byte [rsp + 0x20], 0
mov r9d, r14d
mov r8d, r14d
lea rdx, str.microsoft_shared
call qword [rax + 0x28]
mov rbx, rax
mov qword [rbp - 1], rax
lea rdx, [rbp - 1]
lea rcx, [rbp - 0x61]
call fcn.140037340
nop
lea rdx, [rbx - 0x18]
mov eax, dword [rdx + 0x10]
cmp eax, 0x7ffffc17
je 0x14008e61c
mov eax, dword [rdx + 0x10]
cmp eax, 0xffffffff
je 0x14008e612
mov eax, r14d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x14008e61c
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
cmp dword [0x1401eb6c0], 0xb23a8c33
je 0x14008e654
mov ecx, 0x6c0
call fcn.1400f2ce0
mov qword [rbp + 7], rax
test rax, rax
je 0x14008e648
mov rcx, rax
call fcn.1400302c0
mov rcx, rax
jmp 0x14008e64b
mov rcx, r12
mov qword [0x1401f7b90], rcx
jmp 0x14008e65b
mov rcx, qword [0x1401f7b90]
mov rax, qword [rcx]
mov byte [rsp + 0x30], 1
mov byte [rsp + 0x28], 0
mov byte [rsp + 0x20], 0
mov r9d, r14d
mov r8d, r14d
lea rdx, [0x14019cec0]
call qword [rax + 0x28]
mov rbx, rax
mov qword [rbp + 7], rax
lea rdx, [rbp + 7]
lea rcx, [rbp - 0x61]
call fcn.140037340
nop
lea rdx, [rbx - 0x18]
mov eax, dword [rdx + 0x10]
cmp eax, 0x7ffffc17
je 0x14008e6bf
mov eax, dword [rdx + 0x10]
cmp eax, 0xffffffff
je 0x14008e6b5
mov eax, r14d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x14008e6bf
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov qword [rbp - 9], r12
lea rcx, [rbp - 9]
call qword [sym.imp.KERNEL32.dll_Wow64DisableWow64FsRedirection]
lea r8, [0x14019cf18]
lea rdx, [rbp - 0x61]
lea rcx, [rbp + 0x17]
call fcn.140038200
nop
mov dl, 1
mov rcx, qword [rax]
call fcn.140040780
movzx ebx, al
mov rdx, qword [rbp + 0x17]
add rdx, 0xffffffffffffffe8
mov ecx, dword [rdx + 0x10]
cmp ecx, 0x7ffffc17
je 0x14008e721
mov eax, dword [rdx + 0x10]
cmp eax, 0xffffffff
je 0x14008e717
mov eax, r14d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x14008e721
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
xor edx, edx
test bl, bl
je 0x14008e8dc
lea rcx, str.IPTip_Main_Window
call qword [sym.imp.USER32.dll_FindWindowW]
test rax, rax
je 0x14008e754
xor r9d, r9d
mov edx, 0x112
mov r8d, 0xf060
mov rcx, rax
call qword [sym.imp.USER32.dll_SendMessageW]
cmp dword [0x1401eb6c0], 0xb23a8c33
je 0x14008e78c
mov ecx, 0x6c0
call fcn.1400f2ce0
mov qword [rbp + 0xf], rax
test rax, rax
je 0x14008e780
mov rcx, rax
call fcn.1400302c0
mov rcx, rax
jmp 0x14008e783
mov rcx, r12
mov qword [0x1401f7b90], rcx
jmp 0x14008e793
mov rcx, qword [0x1401f7b90]
mov rax, qword [rcx]
lea rdx, str.tabtip.exe
call qword [rax + 0x20]
mov rdi, rax
mov qword [rbp + 0xf], rax
lea rcx, [rbp - 0x49]
call fcn.140002570
mov dword [rbp - 0x69], 2
mov rbx, qword [rbp - 0x61]
mov r15d, dword [rbx - 0x10]
add r15d, dword [rdi - 0x10]
mov r9b, 1
xor r8d, r8d
mov edx, r15d
lea rcx, [rbp - 0x49]
call fcn.140030f50
mov rsi, rax
movsxd r8, dword [rbx - 0x10]
add r8, r8
mov rdx, rbx
mov rcx, rax
call fcn.140136430
movsxd r8, dword [rdi - 0x10]
add r8, r8
movsxd rcx, dword [rbx - 0x10]
lea rcx, [rsi + rcx*2]
mov rdx, rdi
call fcn.140136430
mov rax, qword [rbp - 0x49]
cmp r15d, 0xffffffff
jne 0x14008e836
test rax, rax
jne 0x14008e815
mov edx, r12d
jmp 0x14008e841
mov rdx, rax
nop dword [rax + rax]
movzx ecx, word [rdx]
add rdx, 2
test cx, cx
jne 0x14008e820
sub rdx, rax
sar rdx, 1
dec edx
jmp 0x14008e841
movsxd rcx, r15d
mov word [rax + rcx*2], r12w
mov edx, r15d
mov dword [rax - 0x10], edx
mov ecx, dword [rax - 8]
cmp ecx, 0xffffffff
jne 0x14008e854
mov ecx, 1
xchg dword [rax - 8], ecx
mov dword [rsp + 0x28], 1
mov qword [rsp + 0x20], r12
xor r9d, r9d
mov r8, qword [rbp - 0x49]
lea rdx, str.open
xor ecx, ecx
call qword [sym.imp.SHELL32.dll_ShellExecuteW]
nop
mov rdx, qword [rbp - 0x49]
add rdx, 0xffffffffffffffe8
mov eax, dword [rdx + 0x10]
cmp eax, 0x7ffffc17
je 0x14008e8a9
mov eax, dword [rdx + 0x10]
cmp eax, 0xffffffff
je 0x14008e89f
mov eax, r14d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x14008e8a9
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rbp + 0xf]
add rdx, 0xffffffffffffffe8
mov eax, dword [rdx + 0x10]
cmp eax, 0x7ffffc17
je 0x14008e8da
mov eax, dword [rdx + 0x10]
cmp eax, 0xffffffff
je 0x14008e8d0
mov eax, r14d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x14008e8da
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
jmp 0x14008e92b
lea rcx, str.OSKMainClass
call qword [sym.imp.USER32.dll_FindWindowW]
test rax, rax
je 0x14008e905
xor r9d, r9d
mov edx, 0x112
mov r8d, 0xf060
mov rcx, rax
call qword [sym.imp.USER32.dll_SendMessageW]
mov dword [rsp + 0x28], 1
mov qword [rsp + 0x20], r12
xor r9d, r9d
lea r8, str.osk.exe
lea rdx, str.open
xor ecx, ecx
call qword [sym.imp.SHELL32.dll_ShellExecuteW]
mov rcx, qword [rbp - 9]
call qword [sym.imp.KERNEL32.dll_Wow64RevertWow64FsRedirection]
nop
mov rdx, qword [rbp - 0x61]
add rdx, 0xffffffffffffffe8
mov eax, dword [rdx + 0x10]
cmp eax, 0x7ffffc17
je 0x14008e966
mov eax, dword [rdx + 0x10]
cmp eax, 0xffffffff
je 0x14008e95c
lock xadd dword [rdx + 0x10], r14d
sub r14d, 1
jg 0x14008e966
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rcx, qword [rbp - 0x41]
test rcx, rcx
je 0x14008e9b7
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
jmp 0x14008e9b7
xor edx, edx
lea rcx, str.IPTip_Main_Window
call qword [sym.imp.USER32.dll_FindWindowW]
test rax, rax
jne 0x14008e99f
xor edx, edx
lea rcx, str.OSKMainClass
call qword [sym.imp.USER32.dll_FindWindowW]
test rax, rax
je 0x14008e9b7
xor r9d, r9d
mov r8d, 0xf060
mov edx, 0x112
mov rcx, rax
call qword [sym.imp.USER32.dll_PostMessageW]
nop
mov rcx, qword [rbp - 0x29]
test rcx, rcx
je 0x14008ea00
mov qword [rbp - 0x29], r12
mov rax, qword [rbp - 0x21]
test al, 1
je 0x14008ea00
and eax, 2
test rcx, rcx
je 0x14008ea00
test eax, eax
je 0x14008e9f6
cmp qword [rcx - 8], 0
je 0x14008e9e6
mov edx, 3
jmp 0x14008e9fb
mov edx, 8
add rcx, 0xfffffffffffffff8
call fcn.140133ecc
jmp 0x14008ea00
mov edx, 1
mov rax, qword [rcx]
call qword [rax]
mov rcx, qword [rbp - 0x29]
test rcx, rcx
je 0x14008ea49
mov qword [rbp - 0x29], r12
mov rax, qword [rbp - 0x21]
test al, 1
je 0x14008ea49
and eax, 2
test rcx, rcx
je 0x14008ea49
test eax, eax
je 0x14008ea3f
cmp qword [rcx - 8], 0
je 0x14008ea2f
mov edx, 3
jmp 0x14008ea44
mov edx, 8
add rcx, 0xfffffffffffffff8
call fcn.140133ecc
jmp 0x14008ea49
mov edx, 1
mov rax, qword [rcx]
call qword [rax]
add rsp, 0xd0
pop r15
pop r14
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret