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

Disassembly:
mov rax, rsp
push rbp
push rdi
push r12
push r14
push r15
lea rbp, [rax - 0x5f]
sub rsp, 0xa0
mov qword [rbp - 0x29], 0xfffffffffffffffe
mov qword [rax + 8], rbx
mov qword [rax + 0x18], rsi
mov rdi, rcx
xor r12d, r12d
mov qword [rbp - 0x21], r12
mov dword [rbp - 0x19], r12d
mov qword [rbp - 0x11], r12
mov r9d, 0x20019
lea r8, str.AppID
mov rdx, 0xffffffff80000000
lea rcx, [rbp - 0x21]
call fcn.1400100e0
mov ebx, eax
test eax, eax
je 0x14000c75a
mov dword [rdi + 0x27c], eax
mov r14, qword [rbp - 0x21]
jmp 0x14000cac3
mov qword [rbp - 9], r12
mov dword [rbp - 1], r12d
mov qword [rbp + 7], r12
mov r9d, 0x20019
lea rsi, str.84081F6F_8B2D_4FFE_AF7F_E72D488FABEB
mov r8, rsi
mov r14, qword [rbp - 0x21]
mov rdx, r14
lea rcx, [rbp - 9]
call fcn.1400100e0
xor ecx, ecx
test eax, eax
jne 0x14000c85d
lea rdx, str.Registering_server
call fcn.140005e60
mov ebx, r12d
mov rdi, qword [0x14006d060]
mov rax, qword [0x14006d068]
cmp rdi, rax
jae 0x14000c804
mov rsi, qword [rdi]
test rsi, rsi
je 0x14000c7f7
mov ecx, 1
mov rax, qword [rsi + 8]
call qword [case.0x140024dda.0]
mov ebx, eax
test eax, eax
js 0x14000c814
mov rax, qword [rsi + 0x30]
call qword [case.0x140024dda.0]
mov rdx, rax
mov r8d, 1
mov rcx, qword [rsi]
call fcn.14000e6b0
mov ebx, eax
test eax, eax
js 0x14000c814
mov rax, qword [0x14006d068]
add rdi, 8
cmp rdi, rax
jb 0x14000c7b2
test ebx, ebx
js 0x14000c843
xor edx, edx
mov rcx, qword [0x14006d058]
call fcn.14000eb30
mov ebx, eax
test ebx, ebx
js 0x14000c843
mov rax, qword [0x14006fd60]
test rax, rax
je 0x14000c833
mov rcx, qword [0x140070878]
call qword [case.0x140024dda.0]
mov ebx, eax
test ebx, ebx
js 0x14000c843
mov ebx, r12d
mov r15, qword [rbp - 9]
jmp 0x14000cab4
mov r8d, ebx
lea rdx, str.Failed_to_register_typelib__hr__0x_x
xor ecx, ecx
call fcn.140005e60
mov r15, qword [rbp - 9]
jmp 0x14000cab4
lea rdx, str.Registry_update_needed
call fcn.140005e60
lea rax, str.APPID
mov qword [rbp + 0xf], rax
mov qword [rbp + 0x17], rsi
xorps xmm0, xmm0
movdqu xmmword [rbp + 0x1f], xmm0
lea r9, [rbp + 0xf]
mov edx, 0x65
lea r8d, [rdx - 0x64]
mov rcx, qword [0x14006fd78]
call fcn.1400127f0
mov ebx, eax
test eax, eax
jns 0x14000c8b9
mov r8d, eax
lea rdx, str.Registry_update_Failed__returned_value:_0x_x
xor ecx, ecx
call fcn.140005e60
mov r15, qword [rbp - 9]
jmp 0x14000cab4
test r14, r14
je 0x14000c8cb
mov rcx, r14
call qword [sym.imp.ADVAPI32.DLL_RegCloseKey]
mov qword [rbp - 0x21], r12
mov dword [rbp - 0x19], r12d
mov r9d, 0x20006
lea r8, str.AppID
mov rdx, 0xffffffff80000000
lea rcx, [rbp - 0x21]
call fcn.1400100e0
test eax, eax
je 0x14000c906
mov ecx, eax
call fcn.14000e3c0
mov r14, qword [rbp - 0x21]
mov ebx, eax
mov r15, qword [rbp - 9]
jmp 0x14000cab4
mov qword [rsp + 0x38], r12
mov qword [rsp + 0x30], r12
mov dword [rsp + 0x28], 0x2001f
mov dword [rsp + 0x20], r12d
xor r9d, r9d
mov r8, rsi
mov r14, qword [rbp - 0x21]
mov rdx, r14
lea rcx, [rbp - 9]
call fcn.14000eff0
test eax, eax
je 0x14000c949
mov ecx, eax
call fcn.14000e3c0
mov ebx, eax
mov r15, qword [rbp - 9]
jmp 0x14000cab4
lea rdx, str.LocalService
mov r15, qword [rbp - 9]
mov rcx, r15
call qword [sym.imp.ADVAPI32.DLL_RegDeleteValueW]
lea rcx, [rdi + 0x68]
test rcx, rcx
je 0x14000c9a4
mov rax, 0xffffffffffffffff
nop dword [rax]
lea rax, [rax + 1]
cmp word [rcx + rax*2], 0
jne 0x14000c970
lea eax, [rax*2 + 2]
mov dword [rsp + 0x28], eax
mov qword [rsp + 0x20], rcx
mov r9d, 1
xor r8d, r8d
lea rdx, str.LocalService
mov rcx, r15
call qword [sym.imp.ADVAPI32.DLL_RegSetValueExW]
mov qword [rbp + 0x6f], r12
xor r9d, r9d
lea r8, [rbp + 0x6f]
lea edx, [r9 + 1]
lea rcx, str.O:BAG:BAD:_A__0xb___WD__A__0xb___AC_S:_ML__NX___LW_
call sub.ADVAPI32.DLL_ConvertStringSecurityDescriptorToSecurityDescriptorW
test eax, eax
je 0x14000c9f4
mov rbx, qword [rbp + 0x6f]
mov rdx, rbx
mov rcx, r15
call fcn.14000b7e0
test eax, eax
jne 0x14000c9e4
lea rdx, str.ERROR:_couldnt_set_security_descriptor_in_registry
xor ecx, ecx
call fcn.140005e60
test rbx, rbx
je 0x14000ca02
mov rcx, rbx
call qword [sym.imp.KERNEL32.DLL_LocalFree]
jmp 0x14000ca02
lea rdx, str.ERROR:_couldnt_create_security_descriptor.
xor ecx, ecx
call fcn.140005e60
mov ebx, r12d
mov rdi, qword [0x14006d060]
mov rax, qword [0x14006d068]
cmp rdi, rax
jae 0x14000ca6a
mov rsi, qword [rdi]
test rsi, rsi
je 0x14000ca5d
mov ecx, 1
mov rax, qword [rsi + 8]
call qword [case.0x140024dda.0]
mov ebx, eax
test eax, eax
js 0x14000ca7a
mov rax, qword [rsi + 0x30]
call qword [case.0x140024dda.0]
mov rdx, rax
mov r8d, 1
mov rcx, qword [rsi]
call fcn.14000e6b0
mov ebx, eax
test eax, eax
js 0x14000ca7a
mov rax, qword [0x14006d068]
add rdi, 8
cmp rdi, rax
jb 0x14000ca18
test ebx, ebx
js 0x14000caa2
xor edx, edx
mov rcx, qword [0x14006d058]
call fcn.14000eb30
mov ebx, eax
test ebx, ebx
js 0x14000caa2
mov rax, qword [0x14006fd60]
test rax, rax
je 0x14000ca99
mov rcx, qword [0x140070878]
call qword [case.0x140024dda.0]
mov ebx, eax
test ebx, ebx
js 0x14000caa2
mov ebx, r12d
jmp 0x14000cab4
mov r8d, ebx
lea rdx, str.Register_Server_Failed__returned_value:_0x_x
xor ecx, ecx
call fcn.140005e60
nop
test r15, r15
je 0x14000cac3
mov rcx, r15
call qword [sym.imp.ADVAPI32.DLL_RegCloseKey]
nop
test r14, r14
je 0x14000cad1
mov rcx, r14
call qword [sym.imp.ADVAPI32.DLL_RegCloseKey]
mov eax, ebx
lea r11, [rsp + 0xa0]
mov rbx, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x40]
mov rsp, r11
pop r15
pop r14
pop r12
pop rdi
pop rbp
ret