Function at 0x1400018d0
Capabilities:
Create process on windows
Delete registry key
Print debug messages
Query or enumerate registry key

Disassembly:
mov rax, rsp
push rbp
push r12
push r13
lea rbp, [rax - 0xb8]
sub rsp, 0x1a0
mov qword [rsp + 0x70], 0xfffffffffffffffe
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
mov rax, qword [0x1400170a8]
xor rax, rsp
mov qword [rbp + 0x90], rax
mov rdi, rcx
mov byte [rcx + 0x60], 0
cmp qword [rcx + 0x40], 8
jb 0x140001920
mov rdx, qword [rcx + 0x28]
jmp 0x140001924
lea rdx, [rcx + 0x28]
lea r13, [rcx + 0x58]
mov qword [rsp + 0x20], r13
mov r9d, 0x20019
xor r8d, r8d
mov rcx, 0xffffffff80000002
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
mov r12d, eax
xor ebx, ebx
test eax, eax
je 0x140001a2a
mov qword [rbp - 0x70], 7
mov qword [rbp - 0x78], rbx
mov word [rsp + 0x78], bx
lea r8d, [rbx + 0x16]
lea rdx, str.fail_in_RegOpenKeyEx__
lea rcx, [rsp + 0x78]
call fcn.140004510
nop
cmp byte [rdi + 0x52], 1
jne 0x14000198b
mov edx, r12d
lea rcx, [rsp + 0x78]
call fcn.140001210
nop
cmp qword [rbp - 0x70], 8
jb 0x14000199c
mov rcx, qword [rsp + 0x78]
call fcn.140007f50
lea r8, [rdi + 0x28]
lea rdx, str.regHive_:
lea rcx, [rbp - 0x38]
call fcn.1400049c0
nop
cmp byte [rdi + 0x52], 1
jne 0x140001a13
mov qword [rbp - 0x70], 7
mov qword [rbp - 0x78], rbx
mov word [rsp + 0x78], bx
or r9, 0xffffffffffffffff
xor r8d, r8d
mov rdx, rax
lea rcx, [rsp + 0x78]
call fcn.140003d40
nop
lea rcx, [rsp + 0x78]
cmp qword [rbp - 0x70], 8
cmovae rcx, qword [rsp + 0x78]
call qword [sym.imp.KERNEL32.dll_OutputDebugStringW]
lea rcx, [0x14001264c]
call qword [sym.imp.KERNEL32.dll_OutputDebugStringW]
nop
cmp qword [rbp - 0x70], 8
jb 0x140001a13
mov rcx, qword [rsp + 0x78]
call fcn.140007f50
nop
cmp qword [rbp - 0x20], 8
jb 0x140001a23
mov rcx, qword [rbp - 0x38]
call fcn.140007f50
xor al, al
jmp 0x1400023f8
mov qword [rsp + 0x58], rbx
mov qword [rsp + 0x50], rbx
mov qword [rsp + 0x48], rbx
mov qword [rsp + 0x40], rbx
mov qword [rsp + 0x38], rbx
mov qword [rsp + 0x30], rbx
lea rax, [rsp + 0x68]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x64]
mov qword [rsp + 0x20], rax
xor r9d, r9d
xor r8d, r8d
xor edx, edx
mov rcx, qword [r13]
call qword [sym.imp.ADVAPI32.dll_RegQueryInfoKeyW]
mov esi, eax
test eax, eax
je 0x140001ac8
mov qword [rbp - 0x70], 7
mov qword [rbp - 0x78], rbx
mov word [rsp + 0x78], bx
mov r8d, 0x19
lea rdx, str.fail_in_RegQueryInfoKey__
lea rcx, [rsp + 0x78]
call fcn.140004510
nop
cmp byte [rdi + 0x52], 1
jne 0x140001ab0
mov edx, esi
lea rcx, [rsp + 0x78]
call fcn.140001210
nop
cmp qword [rbp - 0x70], 8
jb 0x140001ac1
mov rcx, qword [rsp + 0x78]
call fcn.140007f50
xor al, al
jmp 0x1400023f8
mov dword [rsp + 0x60], 0x100
mov qword [rbp - 0x48], 7
mov qword [rbp - 0x50], rbx
mov word [rbp - 0x60], bx
mov edx, 0x100
lea rcx, [rbp - 0x60]
call fcn.1400043d0
mov qword [rbp + 8], 7
mov qword [rbp], rbx
mov word [rbp - 0x10], bx
mov qword [rbp + 0x80], 7
mov qword [rbp + 0x78], rbx
mov word [rbp + 0x68], bx
mov r12d, ebx
cmp dword [rsp + 0x64], ebx
jbe 0x14000239c
nop
mov qword [rbp - 0x50], rbx
lea rax, [rbp - 0x60]
cmp qword [rbp - 0x48], 8
cmovae rax, qword [rbp - 0x60]
mov word [rax], bx
mov dword [rsp + 0x60], 0x100
mov r8, qword [rbp - 0x50]
cmp r8, 0x100
jb 0x140001bd0
or rsi, 0xffffffffffffffff
cmp r8, 0x100
jb 0x140001f13
lea rax, [r8 - 0x100]
cmp rax, rsi
jae 0x140001b73
mov rsi, rax
test rax, rax
je 0x140001be5
lea rdx, [rbp - 0x60]
mov rcx, qword [rbp - 0x60]
mov rax, qword [rbp - 0x48]
cmp rax, 8
cmovae rdx, rcx
lea r9, [rbp - 0x60]
cmovae r9, rcx
sub r8, rsi
sub r8, 0x100
add r8, r8
lea rdx, [rdx + rsi*2 + 0x200]
lea rcx, [r9 + 0x200]
call fcn.140007980
mov r11, qword [rbp - 0x50]
sub r11, rsi
mov qword [rbp - 0x50], r11
lea rax, [rbp - 0x60]
cmp qword [rbp - 0x48], 8
cmovae rax, qword [rbp - 0x60]
mov word [rax + r11*2], bx
jmp 0x140001be1
mov edx, 0x100
sub rdx, r8
lea rcx, [rbp - 0x60]
call fcn.1400043d0
mov r8, qword [rbp - 0x50]
test r8, r8
je 0x14000238f
lea r8, [rbp - 0x60]
cmp qword [rbp - 0x48], 8
cmovae r8, qword [rbp - 0x60]
mov qword [rsp + 0x38], rbx
mov qword [rsp + 0x30], rbx
mov qword [rsp + 0x28], rbx
mov qword [rsp + 0x20], rbx
lea r9, [rsp + 0x60]
mov edx, r12d
mov rcx, qword [r13]
call qword [sym.imp.ADVAPI32.dll_RegEnumKeyExW]
mov r11d, dword [rsp + 0x60]
mov r8, qword [rbp - 0x50]
cmp r11, r8
ja 0x140001ca6
or rsi, 0xffffffffffffffff
cmp r8, r11
jb 0x140001f20
mov rax, r8
sub rax, r11
cmp rax, rsi
jae 0x140001c50
mov rsi, rax
test rax, rax
je 0x140001cb5
lea rdx, [rbp - 0x60]
mov rcx, qword [rbp - 0x60]
mov rax, qword [rbp - 0x48]
cmp rax, 8
cmovae rdx, rcx
lea r9, [rbp - 0x60]
cmovae r9, rcx
sub r8, rsi
sub r8, r11
add r8, r8
lea rax, [rsi + r11]
lea rdx, [rdx + rax*2]
lea rcx, [r9 + r11*2]
call fcn.140007980
mov r11, qword [rbp - 0x50]
sub r11, rsi
mov qword [rbp - 0x50], r11
lea rax, [rbp - 0x60]
cmp qword [rbp - 0x48], 8
cmovae rax, qword [rbp - 0x60]
mov word [rax + r11*2], bx
jmp 0x140001cb5
sub r11, r8
mov rdx, r11
lea rcx, [rbp - 0x60]
call fcn.1400043d0
mov qword [rbp - 0x70], 7
mov qword [rbp - 0x78], rbx
mov word [rsp + 0x78], bx
mov r8d, 0xb
lea rdx, str.DisplayName
lea rcx, [rsp + 0x78]
call fcn.140004510
nop
lea r9, [rbp - 0x10]
lea r8, [rsp + 0x78]
lea rdx, [rbp - 0x60]
mov rcx, qword [r13]
call fcn.140001410
mov esi, eax
cmp qword [rbp - 0x70], 8
jb 0x140001d07
mov rcx, qword [rsp + 0x78]
call fcn.140007f50
test esi, esi
jne 0x140001f00
mov qword [rbp - 0x70], 7
mov qword [rbp - 0x78], rbx
mov word [rsp + 0x78], bx
lea r8d, [rsi + 0xf]
lea rdx, str.UninstallString
lea rcx, [rsp + 0x78]
call fcn.140004510
nop
lea r9, [rbp + 0x68]
lea r8, [rsp + 0x78]
lea rdx, [rbp - 0x60]
mov rcx, qword [r13]
call fcn.140001410
nop
cmp qword [rbp - 0x70], 8
jb 0x140001d5e
mov rcx, qword [rsp + 0x78]
call fcn.140007f50
mov qword [rbp + 0x58], 7
mov qword [rbp + 0x50], rbx
mov word [rbp + 0x40], bx
mov r8d, 0x37
lea rdx, str._______________________________________________________
lea rcx, [rbp + 0x40]
call fcn.140004510
nop
cmp byte [rdi + 0x52], 1
jne 0x140001de8
mov qword [rbp - 0x70], 7
mov qword [rbp - 0x78], rbx
mov word [rsp + 0x78], bx
or r9, 0xffffffffffffffff
xor r8d, r8d
lea rdx, [rbp + 0x40]
lea rcx, [rsp + 0x78]
call fcn.140003d40
nop
lea rcx, [rsp + 0x78]
cmp qword [rbp - 0x70], 8
cmovae rcx, qword [rsp + 0x78]
call qword [sym.imp.KERNEL32.dll_OutputDebugStringW]
lea rcx, [0x14001264c]
call qword [sym.imp.KERNEL32.dll_OutputDebugStringW]
nop
cmp qword [rbp - 0x70], 8
jb 0x140001de8
mov rcx, qword [rsp + 0x78]
call fcn.140007f50
nop
cmp qword [rbp + 0x58], 8
jb 0x140001df8
mov rcx, qword [rbp + 0x40]
call fcn.140007f50
lea r8, [rbp - 0x10]
lea rdx, str.DisplayName_____:
lea rcx, [rbp - 0x38]
call fcn.1400049c0
nop
cmp byte [rdi + 0x52], 1
jne 0x140001e6f
mov qword [rbp - 0x70], 7
mov qword [rbp - 0x78], rbx
mov word [rsp + 0x78], bx
or r9, 0xffffffffffffffff
xor r8d, r8d
mov rdx, rax
lea rcx, [rsp + 0x78]
call fcn.140003d40
nop
lea rcx, [rsp + 0x78]
cmp qword [rbp - 0x70], 8
cmovae rcx, qword [rsp + 0x78]
call qword [sym.imp.KERNEL32.dll_OutputDebugStringW]
lea rcx, [0x14001264c]
call qword [sym.imp.KERNEL32.dll_OutputDebugStringW]
nop
cmp qword [rbp - 0x70], 8
jb 0x140001e6f
mov rcx, qword [rsp + 0x78]
call fcn.140007f50
nop
cmp qword [rbp - 0x20], 8
jb 0x140001e7f
mov rcx, qword [rbp - 0x38]
call fcn.140007f50
lea r8, [rbp + 0x68]
lea rdx, str.UninstallString_:
lea rcx, [rbp - 0x38]
call fcn.1400049c0
nop
cmp byte [rdi + 0x52], 1
jne 0x140001ea5
xor edx, edx
mov rcx, rax
call fcn.140001210
nop
cmp qword [rbp - 0x20], 8
jb 0x140001eb5
mov rcx, qword [rbp - 0x38]
call fcn.140007f50
lea rdx, [rbp - 0x10]
mov rcx, rdi
call fcn.1400039f0
test eax, eax
jne 0x140001f00
mov qword [rbp - 0x20], 7
mov qword [rbp - 0x28], rbx
mov word [rbp - 0x38], bx
lea rcx, [rbp - 0x38]
cmp byte [rdi + 0x50], 1
je 0x140002294
or r9, 0xffffffffffffffff
xor r8d, r8d
lea rdx, [rbp - 0x60]
call fcn.140003d40
lea rcx, [rbp - 0x38]
call fcn.1400015c0
test al, al
jne 0x140001f2d
inc r12d
cmp r12d, dword [rsp + 0x64]
jae 0x14000239c
jmp 0x140001b20
lea rcx, str.invalid_string_position
call fcn.14000770c
int3
lea rcx, str.invalid_string_position
call fcn.14000770c
int3
mov qword [rbp + 0x58], 7
mov qword [rbp + 0x50], rbx
mov word [rbp + 0x40], bx
mov r8d, 0xb
lea rdx, str.MsiExec.exe
lea rcx, [rbp + 0x40]
call fcn.140004510
nop
mov qword [rbp + 0x30], 7
mov qword [rbp + 0x28], rbx
mov word [rbp + 0x18], bx
mov r8d, 1
lea rdx, [0x140012650]
lea rcx, [rbp + 0x18]
call fcn.140003770
mov r8d, 2
lea rdx, [0x1400128e0]
lea rcx, [rbp + 0x18]
call fcn.140003770
or r9, 0xffffffffffffffff
xor r8d, r8d
lea rdx, [rbp - 0x60]
lea rcx, [rbp + 0x18]
call fcn.140003c10
mov r11d, dword [rdi + 0x54]
cmp r11d, 1
jne 0x140001fb7
lea rdx, [0x1400128e8]
jmp 0x140001ff9
cmp r11d, 2
jne 0x140001fca
lea r8d, [r11 + 3]
lea rdx, str.__qn
jmp 0x140001fff
cmp r11d, 3
jne 0x140001fd9
lea rdx, [0x140012908]
jmp 0x140001ff9
cmp r11d, 4
jne 0x140001fec
lea r8d, [r11 + 1]
lea rdx, str.__qb
jmp 0x140001fff
cmp r11d, 5
jne 0x140002008
lea rdx, str.__qf
mov r8d, 4
lea rcx, [rbp + 0x18]
call fcn.140003770
lea r8, [rbp + 0x40]
lea rdx, str.Execute_string_is__:
lea rcx, [rbp - 0x38]
call fcn.1400049c0
nop
cmp byte [rdi + 0x52], 1
jne 0x14000202e
xor edx, edx
mov rcx, rax
call fcn.140001210
nop
cmp qword [rbp - 0x20], 8
jb 0x14000203e
mov rcx, qword [rbp - 0x38]
call fcn.140007f50
lea r8, [rbp + 0x18]
lea rdx, str.Argument_string_is_:
lea rcx, [rbp - 0x38]
call fcn.1400049c0
nop
cmp byte [rdi + 0x52], 1
jne 0x140002064
xor edx, edx
mov rcx, rax
call fcn.140001210
nop
cmp qword [rbp - 0x20], 8
jb 0x140002074
mov rcx, qword [rbp - 0x38]
call fcn.140007f50
mov eax, 7
mov qword [rbp - 0x70], rax
mov qword [rbp - 0x78], rbx
mov word [rsp + 0x78], bx
cmp byte [rdi + 0x51], 1
jne 0x1400020a5
lea r8d, [rax - 2]
lea rdx, str.runas
lea rcx, [rsp + 0x78]
call fcn.140004510
mov rax, qword [rbp - 0x70]
lea r9, [rbp + 0x18]
cmp qword [rbp + 0x30], 8
cmovae r9, qword [rbp + 0x18]
lea r8, [rbp + 0x40]
cmp qword [rbp + 0x58], 8
cmovae r8, qword [rbp + 0x40]
lea rdx, [rsp + 0x78]
cmp rax, 8
cmovae rdx, qword [rsp + 0x78]
mov dword [rsp + 0x28], 1
mov qword [rsp + 0x20], rbx
xor ecx, ecx
call qword [sym.imp.SHELL32.dll_ShellExecuteW]
mov rsi, rax
mov qword [rbp - 0x20], 7
mov qword [rbp - 0x28], rbx
mov word [rbp - 0x38], bx
mov r8d, 0x11
lea rdx, str.Execute_uninstall
lea rcx, [rbp - 0x38]
call fcn.140004510
nop
cmp byte [rdi + 0x52], 1
jne 0x140002121
mov edx, esi
lea rcx, [rbp - 0x38]
call fcn.140001210
nop
cmp qword [rbp - 0x20], 8
jb 0x140002131
mov rcx, qword [rbp - 0x38]
call fcn.140007f50
cmp esi, 0x20
jbe 0x1400021e7
cmp qword [rbp - 0x70], 8
jb 0x14000214b
mov rcx, qword [rsp + 0x78]
call fcn.140007f50
mov qword [rbp - 0x70], 7
mov qword [rbp - 0x78], rbx
mov word [rsp + 0x78], bx
cmp qword [rbp + 0x30], 8
jb 0x14000216c
mov rcx, qword [rbp + 0x18]
call fcn.140007f50
mov qword [rbp + 0x30], 7
mov qword [rbp + 0x28], rbx
mov word [rbp + 0x18], bx
cmp qword [rbp + 0x58], 8
jb 0x14000218c
mov rcx, qword [rbp + 0x40]
call fcn.140007f50
mov qword [rbp + 0x58], 7
mov qword [rbp + 0x50], rbx
mov word [rbp + 0x40], bx
cmp qword [rbp + 0x80], 8
jb 0x1400021af
mov rcx, qword [rbp + 0x68]
call fcn.140007f50
mov qword [rbp + 0x80], 7
mov qword [rbp + 0x78], rbx
mov word [rbp + 0x68], bx
cmp qword [rbp + 8], 8
jb 0x1400021d2
mov rcx, qword [rbp - 0x10]
call fcn.140007f50
mov qword [rbp + 8], 7
mov qword [rbp], rbx
mov word [rbp - 0x10], bx
jmp 0x1400023e6
cmp qword [rbp - 0x70], 8
jb 0x1400021f8
mov rcx, qword [rsp + 0x78]
call fcn.140007f50
mov qword [rbp - 0x70], 7
mov qword [rbp - 0x78], rbx
mov word [rsp + 0x78], bx
cmp qword [rbp + 0x30], 8
jb 0x140002219
mov rcx, qword [rbp + 0x18]
call fcn.140007f50
mov qword [rbp + 0x30], 7
mov qword [rbp + 0x28], rbx
mov word [rbp + 0x18], bx
cmp qword [rbp + 0x58], 8
jb 0x140002239
mov rcx, qword [rbp + 0x40]
call fcn.140007f50
mov qword [rbp + 0x58], 7
mov qword [rbp + 0x50], rbx
mov word [rbp + 0x40], bx
cmp qword [rbp + 0x80], 8
jb 0x14000225c
mov rcx, qword [rbp + 0x68]
call fcn.140007f50
mov qword [rbp + 0x80], 7
mov qword [rbp + 0x78], rbx
mov word [rbp + 0x68], bx
cmp qword [rbp + 8], 8
jb 0x14000227f
mov rcx, qword [rbp - 0x10]
call fcn.140007f50
mov qword [rbp + 8], 7
mov qword [rbp], rbx
mov word [rbp - 0x10], bx
jmp 0x14000237b
mov r8d, 0x15
lea rdx, str.Force_delete_registry
call fcn.140004510
nop
cmp byte [rdi + 0x52], 1
jne 0x1400022b9
xor edx, edx
lea rcx, [rbp - 0x38]
call fcn.140001210
nop
cmp qword [rbp - 0x20], 8
jb 0x1400022c9
mov rcx, qword [rbp - 0x38]
call fcn.140007f50
lea rdx, [rbp - 0x60]
cmp qword [rbp - 0x48], 8
cmovae rdx, qword [rbp - 0x60]
mov rcx, qword [r13]
call qword [sym.imp.ADVAPI32.dll_RegDeleteKeyW]
mov esi, eax
test eax, eax
je 0x14000239c
mov qword [rbp - 0x20], 7
mov qword [rbp - 0x28], rbx
mov word [rbp - 0x38], bx
mov r8d, 0x18
lea rdx, str.fail_in_RegDeleteKeyEx__
lea rcx, [rbp - 0x38]
call fcn.140004510
nop
cmp byte [rdi + 0x52], 1
jne 0x140002324
mov edx, esi
lea rcx, [rbp - 0x38]
call fcn.140001210
nop
cmp qword [rbp - 0x20], 8
jb 0x140002335
mov rcx, qword [rbp - 0x38]
call fcn.140007f50
nop
cmp qword [rbp + 0x80], 8
jb 0x140002348
mov rcx, qword [rbp + 0x68]
call fcn.140007f50
mov qword [rbp + 0x80], 7
mov qword [rbp + 0x78], rbx
mov word [rbp + 0x68], bx
cmp qword [rbp + 8], 8
jb 0x14000236b
mov rcx, qword [rbp - 0x10]
call fcn.140007f50
mov qword [rbp + 8], 7
mov qword [rbp], rbx
mov word [rbp - 0x10], bx
cmp qword [rbp - 0x48], 8
jb 0x14000238b
mov rcx, qword [rbp - 0x60]
call fcn.140007f50
xor al, al
jmp 0x1400023f8
lea rcx, str.invalid_string_position
call fcn.14000770c
int3
mov byte [rdi + 0x60], 1
cmp qword [rbp + 0x80], 8
jb 0x1400023b3
mov rcx, qword [rbp + 0x68]
call fcn.140007f50
mov qword [rbp + 0x80], 7
mov qword [rbp + 0x78], rbx
mov word [rbp + 0x68], bx
cmp qword [rbp + 8], 8
jb 0x1400023d6
mov rcx, qword [rbp - 0x10]
call fcn.140007f50
mov qword [rbp + 8], 7
mov qword [rbp], rbx
mov word [rbp - 0x10], bx
cmp qword [rbp - 0x48], 8
jb 0x1400023f6
mov rcx, qword [rbp - 0x60]
call fcn.140007f50
mov al, 1
mov rcx, qword [rbp + 0x90]
xor rcx, rsp
call fcn.1400077b0
lea r11, [rsp + 0x1a0]
mov rbx, qword [r11 + 0x28]
mov rsi, qword [r11 + 0x30]
mov rdi, qword [r11 + 0x38]
mov rsp, r11
pop r13
pop r12
pop rbp
ret