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

Disassembly:
mov r11, rsp
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x4b0
mov qword [rsp + 0x90], 0xfffffffffffffffe
mov qword [r11 + 0x10], rbx
mov qword [r11 + 0x18], rsi
mov rax, qword [0x18013a210]
xor rax, rsp
mov qword [rsp + 0x4a0], rax
mov rdi, rdx
mov qword [rsp + 0x78], rdx
mov r15, rcx
xor r12d, r12d
mov qword [rsp + 0x58], r12
mov word [r11 - 0x438], r12w
xor edx, edx
mov r8d, 0x3fe
lea rcx, [r11 - 0x436]
call fcn.1800c1250
cmp qword [r15 + 0x30], r12
jne 0x1800777a5
xor al, al
jmp 0x180077b90
or r14d, 0xffffffff
mov r8, rdi
lea rdx, [rsp + 0x68]
mov rcx, r15
call fcn.18006cd70
nop
mov rcx, qword [rsp + 0x70]
test rcx, rcx
jne 0x1800777da
mov dword [rsp + 0x60], r14d
lea rdx, [0x180136c18]
lea rcx, [rsp + 0x60]
call fcn.1800c1ef0
call fcn.18006aae0
test al, al
jne 0x180077b31
lea rdi, vtable.CCriticalSectionSync.0
mov qword [rsp + 0x80], rdi
mov rax, qword [rsp + 0x70]
add rax, 0x48
mov qword [rsp + 0x88], rax
lea rcx, [rsp + 0x80]
call fcn.18004db30
nop
mov rcx, qword [rsp + 0x70]
mov rax, qword [rcx + 0x38]
mov rsi, qword [rax]
mov r13, qword [rcx + 8]
nop word [rax + rax]
mov rax, qword [rsp + 0x70]
mov rbx, qword [rax + 0x38]
test r13, r13
je 0x180077844
cmp r13, qword [rax + 8]
je 0x180077849
call fcn.1800bf138
cmp rsi, rbx
je 0x180077b10
test r13, r13
jne 0x180077861
call fcn.1800bf138
mov r11, r12
jmp 0x180077865
mov r11, qword [r13]
cmp rsi, qword [r11 + 0x30]
jne 0x180077870
call fcn.1800bf138
cmp qword [rsi + 0x78], 0
je 0x180077a9c
test r13, r13
jne 0x18007788a
call fcn.1800bf138
mov r11, r12
jmp 0x18007788e
mov r11, qword [r13]
cmp rsi, qword [r11 + 0x30]
jne 0x180077899
call fcn.1800bf138
mov rcx, r15
call fcn.180068a60
mov r8, rax
mov edx, 0x200
lea rcx, [rsp + 0xa0]
call fcn.1800beefc
cmp qword [rsi + 0x38], 8
jb 0x1800778c3
mov r8, qword [rsi + 0x20]
jmp 0x1800778c7
lea r8, [rsi + 0x20]
mov edx, 0x200
lea rcx, [rsp + 0xa0]
call fcn.1800c0a54
mov qword [rsp + 0x40], r12
lea rax, [rsp + 0x58]
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x30], r12
mov dword [rsp + 0x28], 0xf003f
mov dword [rsp + 0x20], r12d
xor r9d, r9d
xor r8d, r8d
lea rdx, [rsp + 0xa0]
mov rcx, 0xffffffff80000001
call qword [sym.imp.ADVAPI32.dll_RegCreateKeyExW]
test eax, eax
je 0x18007792f
mov dword [rsp + 0x64], r14d
lea rdx, [0x180136c18]
lea rcx, [rsp + 0x64]
call fcn.1800c1ef0
mov rax, qword [rsi + 0x70]
mov rbx, qword [rax]
mov r12, qword [rsi + 0x40]
nop word [rax + rax]
mov rdi, qword [rsi + 0x70]
test r12, r12
je 0x18007794f
cmp r12, qword [rsi + 0x40]
je 0x180077954
call fcn.1800bf138
cmp rbx, rdi
je 0x180077a7f
test r12, r12
jne 0x18007796e
call fcn.1800bf138
xor edi, edi
mov r11, rdi
jmp 0x180077974
mov r11, qword [r12]
xor edi, edi
cmp rbx, qword [r11 + 0x30]
jne 0x18007797f
call fcn.1800bf138
test r12, r12
jne 0x18007798e
call fcn.1800bf138
mov r11, rdi
jmp 0x180077992
mov r11, qword [r12]
cmp rbx, qword [r11 + 0x30]
jne 0x18007799d
call fcn.1800bf138
test r12, r12
jne 0x1800779ac
call fcn.1800bf138
mov r11, rdi
jmp 0x1800779b0
mov r11, qword [r12]
cmp rbx, qword [r11 + 0x30]
jne 0x1800779bb
call fcn.1800bf138
cmp byte [rbx + 0x40], 0
je 0x1800779df
cmp qword [rbx + 0x38], 8
jb 0x1800779ce
mov rdx, qword [rbx + 0x20]
jmp 0x1800779d2
lea rdx, [rbx + 0x20]
mov rcx, qword [rsp + 0x58]
call qword [sym.imp.ADVAPI32.dll_RegDeleteValueW]
jmp 0x180077a26
mov rax, qword [rbx + 0x60]
cmp qword [rbx + 0x68], 8
jb 0x1800779f0
mov rcx, qword [rbx + 0x50]
jmp 0x1800779f4
lea rcx, [rbx + 0x50]
cmp qword [rbx + 0x38], 8
jb 0x180077a01
mov rdx, qword [rbx + 0x20]
jmp 0x180077a05
lea rdx, [rbx + 0x20]
lea eax, [rax + rax + 2]
mov dword [rsp + 0x28], eax
mov qword [rsp + 0x20], rcx
mov r9d, 1
xor r8d, r8d
mov rcx, qword [rsp + 0x58]
call qword [sym.imp.ADVAPI32.dll_RegSetValueExW]
test r12, r12
jne 0x180077a30
call fcn.1800bf138
cmp byte [rbx + 0x71], 0
je 0x180077a40
call fcn.1800bf138
jmp 0x180077940
mov rax, qword [rbx + 0x10]
cmp byte [rax + 0x71], 0
jne 0x180077a62
mov rbx, rax
nop dword [rax]
mov rax, qword [rbx]
cmp byte [rax + 0x71], 0
jne 0x180077940
mov rbx, rax
jmp 0x180077a50
mov rax, qword [rbx + 8]
cmp byte [rax + 0x71], 0
jne 0x180077a77
cmp rbx, qword [rax + 0x10]
jne 0x180077a77
mov rbx, rax
jmp 0x180077a62
mov rbx, rax
jmp 0x180077940
mov rcx, qword [rsp + 0x58]
test rcx, rcx
je 0x180077a99
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
xor r12d, r12d
mov qword [rsp + 0x58], r12
jmp 0x180077a9c
xor r12d, r12d
test r13, r13
jne 0x180077aa6
call fcn.1800bf138
cmp byte [rsi + 0x81], 0
je 0x180077ab9
call fcn.1800bf138
jmp 0x180077830
mov rax, qword [rsi + 0x10]
cmp byte [rax + 0x81], 0
jne 0x180077af0
mov rsi, rax
nop dword [rax]
mov rax, qword [rsi]
cmp byte [rax + 0x81], 0
jne 0x180077830
mov rsi, rax
jmp 0x180077ad0
mov rax, qword [rsi + 8]
cmp byte [rax + 0x81], 0
jne 0x180077b08
cmp rsi, qword [rax + 0x10]
jne 0x180077b08
mov rsi, rax
jmp 0x180077af0
mov rsi, rax
jmp 0x180077830
lea rax, vtable.CCriticalSectionSync.0
mov qword [rsp + 0x80], rax
lea rcx, [rsp + 0x80]
call fcn.18004db60
mov rdi, qword [rsp + 0x78]
mov rdx, rdi
mov rcx, qword [r15 + 8]
call fcn.18006a980
mov bl, 1
lea rax, vtable.CIntrusivePtr_class_CCacheProfile::CSectionMap_.0
mov qword [rsp + 0x68], rax
mov r8, qword [rsp + 0x70]
test r8, r8
je 0x180077b77
mov rax, qword [r8]
movsxd rcx, dword [rax + 4]
add rcx, r8
je 0x180077b77
lock xadd dword [rcx + 8], r14d
add r14d, 0xffffffff
jne 0x180077b77
mov rax, qword [rcx]
lea edx, [r14 + 1]
call qword [rax]
nop
jmp 0x180077b7e
mov rcx, qword [rsp + 0x58]
test rcx, rcx
je 0x180077b8e
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov al, bl
mov rcx, qword [rsp + 0x4a0]
xor rcx, rsp
call fcn.1800bd980
lea r11, [rsp + 0x4b0]
mov rbx, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret