Function at 0x10004c4ec
Capabilities:
Delete registry value
Set registry value

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rbp
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
push r12
push r13
push r15
sub rsp, 0x2c0
mov rax, qword [0x100086110]
xor rax, rsp
mov qword [rsp + 0x2b0], rax
xor ebp, ebp
mov edi, ecx
lea r13d, [rbp + 1]
mov qword [rsp + 0x50], rbp
cmp dword [0x1000888cc], ebp
je 0x10004c639
call fcn.10004b948
call fcn.10004c0a4
mov dword [0x1000888d8], r13d
cmp dword [0x100086890], ebp
je 0x10004c5fa
mov rcx, qword [0x100088818]
cmp rcx, rbp
je 0x10004c601
call fcn.10004fd8c
cmp rax, rbp
je 0x10004c5fa
mov rcx, qword [0x100088818]
call fcn.10004fd8c
xor edx, edx
mov rcx, rax
call fcn.100066cac
mov rcx, qword [0x100088818]
cmp rax, rbp
je 0x10004c5a5
call fcn.10004fd8c
xor edx, edx
mov rcx, rax
call fcn.100066cac
jmp 0x10004c5b2
call fcn.10004fd8c
mov rcx, rax
call fcn.100066bf8
mov rcx, qword [0x100088818]
mov rbx, rax
call fcn.10004fd8c
mov rdx, rbx
mov rcx, rax
call fcn.10006566c
mov rcx, qword [0x100088818]
call fcn.10004fd8c
mov rcx, rax
cmp dword [rax + 0x70], ebp
je 0x10004c5fa
mov rax, qword [rax]
cmp rax, rbp
jne 0x10004c5f2
call fcn.100066bf8
cmp rax, rbp
je 0x10004c5fa
mov rcx, rax
call fcn.100064d64
mov rcx, qword [0x100088818]
cmp edi, ebp
je 0x10004c6ab
mov ebx, r13d
cmp rcx, rbp
je 0x10004c635
call fcn.10004fd8c
cmp rax, rbp
je 0x10004c635
mov rcx, qword [0x100088818]
call fcn.10004fd8c
mov rcx, rax
call fcn.100066c28
cmp rax, rbp
cmovne ebx, ebp
mov ecx, ebx
jmp 0x10004c6a6
cmp ecx, ebp
je 0x10004c6ab
cmp dword [0x100086890], ebp
je 0x10004c6ab
mov rcx, qword [0x100088818]
cmp rcx, rbp
je 0x10004c6ab
call fcn.10004fd8c
cmp rax, rbp
je 0x10004c6ab
mov rcx, qword [0x100088818]
call fcn.10004fd8c
mov rcx, rax
cmp dword [rax + 0x70], ebp
je 0x10004c689
mov rax, qword [rax]
cmp rax, rbp
jne 0x10004c681
call fcn.100066bf8
cmp rax, rbp
je 0x10004c689
mov rcx, rax
call fcn.100064d64
mov rcx, qword [0x100088818]
call fcn.10004fd8c
mov rcx, rax
call fcn.100066c28
mov ecx, r13d
cmp rax, rbp
cmovne ecx, ebp
call fcn.10004fb94
mov qword [rsp + 0x40], rbp
lea rax, [rsp + 0x50]
lea rdx, [0x1000255f0]
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x30], rbp
xor r9d, r9d
xor r8d, r8d
mov rcx, 0xffffffff80000001
mov dword [rsp + 0x28], 2
mov dword [rsp + 0x20], ebp
call qword [sym.imp.ADVAPI32.dll_RegCreateKeyExW]
mov r12d, 4
lea rbx, [0x100025c80]
cmp eax, ebp
jne 0x10004c745
mov dword [rsp + 0x58], r13d
cmp dword [0x1000887ec], ebp
jne 0x10004c72c
cmp edi, ebp
je 0x10004c73a
mov rcx, qword [rsp + 0x50]
lea rax, [rsp + 0x58]
mov r9d, r12d
xor r8d, r8d
mov rdx, rbx
mov dword [rsp + 0x28], r12d
mov qword [rsp + 0x20], rax
call qword [sym.imp.ADVAPI32.dll_RegSetValueExW]
jmp 0x10004c73a
mov rcx, qword [rsp + 0x50]
mov rdx, rbx
call qword [sym.imp.ADVAPI32.dll_RegDeleteValueW]
mov rcx, qword [rsp + 0x50]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
lea rcx, [rsp + 0x60]
call fcn.10007d40c
or word [rsp + 0x6c], r12w
lea rcx, [rsp + 0x60]
call fcn.10004ba04
lea r15, [0x1000888b8]
mov esi, 3
cmp eax, ebp
jl 0x10004c813
mov rdx, qword [rsp + 0x60]
lea rax, [rsp + 0x50]
mov r9d, esi
xor r8d, r8d
mov rcx, 0xffffffff80000002
mov qword [rsp + 0x20], rax
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
cmp eax, ebp
jne 0x10004c813
mov dword [rsp + 0x58], r13d
cmp dword [0x1000887ec], ebp
jne 0x10004c7cf
cmp edi, ebp
je 0x10004c803
mov rcx, qword [rsp + 0x50]
lea rax, [rsp + 0x58]
mov r9d, r12d
xor r8d, r8d
mov rdx, rbx
mov dword [rsp + 0x28], r12d
mov qword [rsp + 0x20], rax
call qword [sym.imp.ADVAPI32.dll_RegSetValueExW]
jmp 0x10004c7dd
mov rcx, qword [rsp + 0x50]
mov rdx, rbx
call qword [sym.imp.ADVAPI32.dll_RegDeleteValueW]
cmp edi, ebp
je 0x10004c803
mov rcx, qword [rsp + 0x50]
lea rdx, [0x1000282d8]
mov r9d, r12d
xor r8d, r8d
mov dword [rsp + 0x28], r12d
mov qword [rsp + 0x20], r15
call qword [sym.imp.ADVAPI32.dll_RegSetValueExW]
mov rcx, qword [rsp + 0x50]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov qword [rsp + 0x50], rbp
cmp edi, ebp
je 0x10004ca29
mov qword [rsp + 0x40], rbp
lea rax, [rsp + 0x50]
lea rdx, [0x1000255f0]
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x30], rbp
xor r9d, r9d
xor r8d, r8d
mov rcx, 0xffffffff80000001
mov dword [rsp + 0x28], esi
mov dword [rsp + 0x20], ebp
call qword [sym.imp.ADVAPI32.dll_RegCreateKeyExW]
cmp eax, ebp
jne 0x10004c9a5
mov rcx, qword [rsp + 0x50]
lea rax, [0x1000888a8]
lea rdx, [0x100028288]
mov r9d, r12d
xor r8d, r8d
mov dword [rsp + 0x28], r12d
mov qword [rsp + 0x20], rax
call qword [sym.imp.ADVAPI32.dll_RegSetValueExW]
mov rcx, qword [rsp + 0x50]
lea rax, [0x1000888ac]
lea rdx, [0x1000283b0]
mov r9d, esi
xor r8d, r8d
mov dword [rsp + 0x28], r13d
mov qword [rsp + 0x20], rax
call qword [sym.imp.ADVAPI32.dll_RegSetValueExW]
mov rcx, qword [rsp + 0x50]
lea rax, [0x1000888b0]
lea rdx, [0x1000282b0]
mov r9d, r12d
xor r8d, r8d
mov dword [rsp + 0x28], r12d
mov qword [rsp + 0x20], rax
call qword [sym.imp.ADVAPI32.dll_RegSetValueExW]
mov rcx, qword [rsp + 0x50]
lea rdx, [0x1000282d8]
mov r9d, r12d
xor r8d, r8d
mov dword [rsp + 0x28], r12d
mov qword [rsp + 0x20], r15
call qword [sym.imp.ADVAPI32.dll_RegSetValueExW]
mov rcx, qword [rsp + 0x50]
lea rax, [0x1000888bc]
lea rdx, [0x100028320]
mov r9d, r12d
xor r8d, r8d
mov dword [rsp + 0x28], r12d
mov qword [rsp + 0x20], rax
call qword [sym.imp.ADVAPI32.dll_RegSetValueExW]
mov rcx, qword [rsp + 0x50]
lea rax, [0x1000888c0]
lea rdx, [0x100028340]
mov r9d, r12d
xor r8d, r8d
mov dword [rsp + 0x28], r12d
mov qword [rsp + 0x20], rax
call qword [sym.imp.ADVAPI32.dll_RegSetValueExW]
mov rcx, qword [rsp + 0x50]
lea rax, [0x1000888c4]
lea rdx, [0x100028368]
mov r9d, r12d
xor r8d, r8d
mov dword [rsp + 0x28], r12d
mov qword [rsp + 0x20], rax
call qword [sym.imp.ADVAPI32.dll_RegSetValueExW]
mov rcx, qword [rsp + 0x50]
lea rax, [0x1000888c8]
lea rdx, [0x100028388]
mov r9d, r12d
xor r8d, r8d
mov dword [rsp + 0x28], r12d
mov qword [rsp + 0x20], rax
call qword [sym.imp.ADVAPI32.dll_RegSetValueExW]
mov rcx, qword [rsp + 0x50]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov edx, dword [0x1000888d0]
lea rcx, [0x100028660]
call fcn.1000548bc
lea rcx, [rsp + 0x70]
lea rdx, [0x100006270]
mov r8d, 0x2a
call sub.msvcrt.dll_memcpy
cmp dword [0x1000888d8], ebp
je 0x10004ca24
lea rax, [rsp + 0x58]
lea r9, [0x100028ae8]
lea rdx, [0x100001dc0]
xor r8d, r8d
xor ecx, ecx
mov qword [rsp + 0x58], rbp
mov qword [rsp + 0x20], rax
call qword [sym.imp.SHELL32.dll_SHCoCreateInstance]
cmp eax, ebp
jl 0x10004ca12
mov rcx, qword [rsp + 0x58]
lea rdx, [rsp + 0x70]
mov rax, qword [rcx]
call qword [rax + 0x38]
mov rcx, qword [rsp + 0x58]
cmp rcx, rbp
je 0x10004ca29
mov rax, qword [rcx]
call qword [rax + 0x10]
jmp 0x10004ca29
call fcn.10004e85c
mov rbx, qword [0x1000888a0]
movzx eax, bp
mov word [rsp + 0xa0], ax
cmp rbx, rbp
je 0x10004cae0
mov word [rsp + 0xa0], bp
mov rcx, qword [rbx + 0x50]
mov eax, ebp
cmp rcx, rbp
je 0x10004ca5d
cmp word [rcx], bp
setne al
cmp al, bpl
je 0x10004ca80
lea rdx, [rsp + 0xa0]
lea rcx, [rbx + 0x50]
mov r8d, 0x104
call fcn.10007e224
mov rbx, qword [0x1000888a0]
mov ecx, dword [rbx + 0x28]
mov rsi, rbx
cmp ecx, ebp
je 0x10004ca9a
call qword [sym.imp.ole32.dll_CoRevokeClassObject]
mov dword [rbx + 0x28], ebp
mov rbx, qword [0x1000888a0]
mov ecx, dword [rsi + 0x2c]
cmp ecx, ebp
je 0x10004cab1
call qword [sym.imp.ole32.dll_CoRevokeClassObject]
mov dword [rsi + 0x2c], ebp
mov rbx, qword [0x1000888a0]
mov ecx, dword [rsi + 0x30]
cmp ecx, ebp
je 0x10004cac8
call qword [sym.imp.ole32.dll_CoRevokeClassObject]
mov dword [rsi + 0x30], ebp
mov rbx, qword [0x1000888a0]
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 0x10]
mov ax, word [rsp + 0xa0]
mov qword [0x1000888a0], rbp
cmp edi, ebp
je 0x10004cb2f
cmp ax, bp
je 0x10004cb11
lea rax, [rsp + 0xa0]
cmp rax, rbp
je 0x10004cb11
lea rdx, [rsp + 0xa0]
lea rcx, [rsp + 0xa0]
mov r8d, 0x104
call fcn.100052b94
cmp dword [0x100086894], ebp
je 0x10004cb2a
lea rcx, [rsp + 0xa0]
call fcn.10004c184
cmp eax, ebp
jne 0x10004cb2f
call fcn.100058634
cmp dword [0x100088e2c], ebp
je 0x10004cb82
mov al, byte [0x100088e30]
cmp al, r12b
jae 0x10004cb47
cmp al, bpl
jne 0x10004cb82
movabs rdx, 0x8000000000000000
test qword [0x100088e18], rdx
je 0x10004cb82
mov rcx, qword [0x100088e20]
mov rax, rcx
and rax, rdx
cmp rax, rcx
jne 0x10004cb82
mov rcx, qword [0x100088e00]
lea rdx, [0x1000255b0]
mov r8d, r13d
call fcn.10003a31c
lea rcx, [rsp + 0x60]
call fcn.10007d970
mov rcx, qword [rsp + 0x2b0]
xor rcx, rsp
call fcn.10007fa70
lea r11, [rsp + 0x2c0]
mov rbx, qword [r11 + 0x20]
mov rbp, qword [r11 + 0x28]
mov rsi, qword [r11 + 0x30]
mov rdi, qword [r11 + 0x38]
mov rsp, r11
pop r15
pop r13
pop r12
ret