Function at 0x1600bc8f8
Capabilities:
Delete registry value

Disassembly:
push rbp
push rbx
push rsi
push rdi
lea rbp, [rsp - 0x21c8]
mov eax, 0x22c8
call fcn.160072500
sub rsp, rax
mov qword [rbp - 0x70], 0xfffffffffffffffe
mov rax, qword [0x160270bd8]
xor rax, rsp
mov qword [rbp + 0x21b0], rax
mov dword [rsp + 0x44], r9d
mov qword [rsp + 0x68], r8
mov rdi, rdx
mov rsi, rcx
mov qword [rsp + 0x70], rcx
xor eax, eax
mov qword [rsp + 0x78], rax
mov qword [rbp - 0x80], rax
mov qword [rbp - 0x78], rax
call fcn.1600bb738
mov ebx, eax
test eax, eax
js 0x1600bceb4
cmp word [rdi], 0x7d
je 0x1600bceb4
mov eax, 1
mov dword [rsp + 0x40], eax
lea rdx, [0x1601f8500]
mov rcx, rdi
call qword [sym.imp.api_ms_win_core_string_obsolete_l1_1_0.dll_lstrcmpiW]
xor ecx, ecx
mov ebx, ecx
test eax, eax
sete bl
mov dword [rsp + 0x48], ebx
lea rdx, str.ForceRemove
mov rcx, rdi
call qword [sym.imp.api_ms_win_core_string_obsolete_l1_1_0.dll_lstrcmpiW]
test eax, eax
je 0x1600bc9aa
test ebx, ebx
je 0x1600bca63
mov rdx, rdi
mov rcx, rsi
call fcn.1600bb738
mov ebx, eax
test eax, eax
js 0x1600bceb4
xor ebx, ebx
cmp dword [rsp + 0x44], ebx
je 0x1600bca65
mov qword [rsp + 0x50], rbx
mov qword [rsp + 0x58], rbx
mov qword [rsp + 0x60], rbx
lea edx, [rbx + 0x5c]
mov rcx, rdi
call fcn.1600be2f4
test rax, rax
jne 0x1600bcea5
mov rdx, rdi
call fcn.1600b8858
test eax, eax
je 0x1600bca16
mov rax, qword [rsp + 0x68]
mov qword [rsp + 0x50], rax
mov rdx, rdi
lea rcx, [rsp + 0x50]
call fcn.1600bc3ec
mov qword [rsp + 0x50], rbx
cmp dword [rsp + 0x48], ebx
je 0x1600bca57
mov rdx, rdi
mov rcx, rsi
call fcn.1600bb738
mov ebx, eax
test eax, eax
js 0x1600bcee4
mov rdx, rdi
mov rcx, rsi
call fcn.1600be1b4
mov ebx, eax
lea rcx, [rsp + 0x50]
call fcn.1600693e8
xor edx, edx
test ebx, ebx
js 0x1600bceb4
jmp 0x1600bce44
lea rcx, [rsp + 0x50]
call fcn.1600693e8
jmp 0x1600bca65
xor ebx, ebx
lea rdx, str.NoRemove
mov rcx, rdi
call qword [sym.imp.api_ms_win_core_string_obsolete_l1_1_0.dll_lstrcmpiW]
test eax, eax
jne 0x1600bca94
mov dword [rsp + 0x40], ebx
mov rdx, rdi
mov rcx, rsi
call fcn.1600bb738
mov ebx, eax
test eax, eax
js 0x1600bceb4
xor ebx, ebx
lea rdx, [0x1601f84c8]
mov rcx, rdi
call qword [sym.imp.api_ms_win_core_string_obsolete_l1_1_0.dll_lstrcmpiW]
test eax, eax
jne 0x1600bcba5
lea rdx, [rbp + 0x1b0]
mov rcx, rsi
call fcn.1600bb738
mov ebx, eax
test eax, eax
js 0x1600bceb4
mov rdx, rdi
mov rcx, rsi
call fcn.1600bb738
mov ebx, eax
xor eax, eax
test ebx, ebx
js 0x1600bceb4
cmp word [rdi], 0x3d
jne 0x1600bceaf
cmp dword [rsp + 0x44], eax
je 0x1600bcb31
mov qword [rsp + 0x58], rax
mov qword [rsp + 0x60], rax
mov rax, qword [rsp + 0x68]
mov qword [rsp + 0x50], rax
mov r9, rdi
lea r8, [rbp + 0x1b0]
lea rdx, [rsp + 0x50]
mov rcx, rsi
call fcn.1600b7abc
mov ebx, eax
xor eax, eax
mov qword [rsp + 0x50], rax
lea rcx, [rsp + 0x50]
call fcn.1600693e8
xor edx, edx
jmp 0x1600bca4a
cmp dword [rbp + 0x2210], eax
jne 0x1600bcb95
cmp dword [rsp + 0x40], eax
je 0x1600bcb95
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x58], rax
mov qword [rsp + 0x60], rax
mov r9d, 0x20006
xor r8d, r8d
mov rdx, qword [rsp + 0x68]
lea rcx, [rsp + 0x50]
call fcn.1600693a8
test eax, eax
jne 0x1600bcedb
lea rdx, [rbp + 0x1b0]
mov rcx, qword [rsp + 0x50]
call qword [sym.imp.api_ms_win_core_registry_l1_1_0.dll_RegDeleteValueW]
test eax, 0xfffffffd
jne 0x1600bcedb
lea rcx, [rsp + 0x50]
call fcn.1600693e8
mov rdx, rdi
mov rcx, rsi
call fcn.1600be1b4
jmp 0x1600bce8f
mov edx, 0x5c
mov rcx, rdi
call fcn.1600be2f4
test rax, rax
jne 0x1600bceaf
cmp dword [rsp + 0x44], ebx
je 0x1600bcc57
mov r9d, 0x2001f
mov r8, rdi
mov rbx, qword [rsp + 0x68]
mov rdx, rbx
lea rcx, [rsp + 0x78]
call fcn.1600693a8
test eax, eax
je 0x1600bcc16
mov r9d, 0x20019
mov r8, rdi
mov rdx, rbx
lea rcx, [rsp + 0x78]
call fcn.1600693a8
test eax, eax
je 0x1600bcc16
mov r8, rdi
mov rdx, rbx
lea rcx, [rsp + 0x78]
call fcn.1600b8b54
test eax, eax
jne 0x1600bcf11
mov rdx, rdi
mov rcx, rsi
call fcn.1600bb738
mov ebx, eax
test eax, eax
js 0x1600bceb4
cmp word [rdi], 0x3d
jne 0x1600bce42
mov r9, rdi
xor r8d, r8d
lea rdx, [rsp + 0x78]
mov rcx, rsi
call fcn.1600b7abc
mov ebx, eax
test eax, eax
js 0x1600bceb4
jmp 0x1600bce42
mov ebx, dword [rbp + 0x2210]
test ebx, ebx
jne 0x1600bcc7d
mov r9d, 0x20019
mov r8, rdi
mov rdx, qword [rsp + 0x68]
lea rcx, [rsp + 0x78]
call fcn.1600693a8
mov esi, eax
jmp 0x1600bcc82
mov esi, 2
mov eax, ebx
test esi, esi
mov ecx, 1
cmovne eax, ecx
mov dword [rsp + 0x48], eax
or r9, 0xffffffffffffffff
mov r8, rdi
mov edx, 0x104
lea rcx, [rbp - 0x60]
call qword [sym.imp.msvcrt.dll_wcsncpy_s]
test eax, eax
je 0x1600bccd0
cmp eax, 0xc
je 0x1600bcf06
cmp eax, 0x16
je 0x1600bcefb
cmp eax, 0x22
je 0x1600bcefb
cmp eax, 0x50
jne 0x1600bcef0
mov rdx, rdi
mov rcx, qword [rsp + 0x70]
call fcn.1600bb738
mov ebx, eax
test eax, eax
js 0x1600bceb4
mov rdx, rdi
mov rcx, qword [rsp + 0x70]
call fcn.1600be1b4
mov ebx, eax
xor ecx, ecx
test eax, eax
js 0x1600bceb4
cmp word [rdi], 0x7b
jne 0x1600bcd61
or rax, 0xffffffffffffffff
inc rax
cmp word [rdi + rax*2], cx
jne 0x1600bcd0a
cmp rax, 1
jne 0x1600bcd61
mov eax, dword [rsp + 0x48]
mov dword [rsp + 0x20], eax
xor r9d, r9d
mov r8, qword [rsp + 0x78]
mov rdx, rdi
mov rcx, qword [rsp + 0x70]
call fcn.1600bc8f8
mov ebx, eax
xor eax, eax
test ebx, ebx
jns 0x1600bcd48
cmp dword [rsp + 0x48], eax
je 0x1600bceb4
mov rdx, rdi
mov rcx, qword [rsp + 0x70]
call fcn.1600bb738
mov ebx, eax
xor ecx, ecx
test eax, eax
js 0x1600bceb4
cmp esi, 2
je 0x1600bce95
test esi, esi
je 0x1600bcd88
cmp dword [rbp + 0x2210], ecx
jne 0x1600bce95
mov ecx, esi
call fcn.1600b8290
mov ebx, eax
jmp 0x1600bceb4
cmp dword [rbp + 0x2210], ecx
je 0x1600bcdce
mov rdx, qword [rsp + 0x78]
call fcn.1600baf04
test eax, eax
je 0x1600bcdce
lea rdx, [rbp - 0x60]
call fcn.1600b8858
xor ecx, ecx
test eax, eax
je 0x1600bce95
cmp dword [rsp + 0x40], ecx
je 0x1600bce95
lea rdx, [rbp - 0x60]
lea rcx, [rsp + 0x78]
call fcn.1600bc3ec
jmp 0x1600bce95
mov rdx, qword [rsp + 0x78]
call fcn.1600baf04
mov esi, eax
lea rcx, [rsp + 0x78]
call fcn.1600693e8
xor ecx, ecx
test eax, eax
jne 0x1600bcf11
cmp dword [rsp + 0x40], ecx
je 0x1600bce95
test esi, esi
jne 0x1600bce95
mov qword [rsp + 0x58], rcx
mov qword [rsp + 0x60], rcx
mov rax, qword [rsp + 0x68]
mov qword [rsp + 0x50], rax
lea rdx, [rbp - 0x60]
lea rcx, [rsp + 0x50]
call fcn.1600ba73c
mov esi, eax
xor eax, eax
mov qword [rsp + 0x50], rax
lea rcx, [rsp + 0x50]
call fcn.1600693e8
test esi, esi
jne 0x1600bcd7a
mov rsi, qword [rsp + 0x70]
xor edx, edx
mov ecx, dword [rsp + 0x44]
test ecx, ecx
je 0x1600bce95
cmp word [rdi], 0x7b
jne 0x1600bce95
or rax, 0xffffffffffffffff
inc rax
cmp word [rdi + rax*2], dx
jne 0x1600bce56
cmp rax, 1
jne 0x1600bce95
xor eax, eax
mov dword [rsp + 0x20], eax
mov r9d, ecx
mov r8, qword [rsp + 0x78]
mov rdx, rdi
mov rcx, rsi
call fcn.1600bc8f8
mov ebx, eax
test eax, eax
js 0x1600bceb4
mov rdx, rdi
mov rcx, rsi
call fcn.1600bb738
mov ebx, eax
test eax, eax
js 0x1600bceb4
cmp word [rdi], 0x7d
je 0x1600bceb4
mov rsi, qword [rsp + 0x70]
jmp 0x1600bc968
lea rcx, [rsp + 0x50]
call fcn.1600693e8
mov ebx, 0x80020009
lea rcx, [rsp + 0x78]
call fcn.1600693e8
mov eax, ebx
mov rcx, qword [rbp + 0x21b0]
xor rcx, rsp
call fcn.16006e590
add rsp, 0x22c8
pop rdi
pop rsi
pop rbx
pop rbp
ret
mov ecx, eax
call fcn.1600b8290
mov ebx, eax
lea rcx, [rsp + 0x50]
call fcn.1600693e8
jmp 0x1600bceb4
mov ecx, 0x80004005
call fcn.1600b8734
int3
mov ecx, 0x80070057
call fcn.1600b8734
int3
mov ecx, 0x8007000e
call fcn.1600b8734
int3
mov ecx, eax
jmp 0x1600bcd7c