Function at 0x140083240
Capabilities:
Delete registry key
Query or enumerate registry key
Query or enumerate registry value

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x2b8
movaps xmmword [rsp + 0x2a0], xmm7
movaps xmmword [rsp + 0x290], xmm6
mov rbx, r8
mov rsi, rdx
mov rdi, rcx
mov rax, qword [0x14023e038]
xor rax, rsp
mov qword [rsp + 0x288], rax
lea rcx, str.....operadesktopwindowsinstaller_transactionsdelete_reg_key_operation.cc
mov edx, 0x4f
call fcn.14011b4a0
test eax, eax
jg 0x140083750
movaps xmm6, xmmword [0x140215460]
lea rcx, [rsp + 0x130]
movaps xmmword [rcx + 0x10], xmm6
movaps xmmword [rcx], xmm6
call fcn.1400a00e0
mov dword [rsp + 0x12c], 0
mov ecx, 0x40
call fcn.1401507f0
xorps xmm0, xmm0
movups xmmword [rax], xmm0
xor ecx, ecx
mov qword [rax + 0x10], rcx
movups xmmword [rax + 0x18], xmm0
movups xmmword [rax + 0x28], xmm0
mov qword [rax + 0x38], rcx
mov qword [rsp + 0x120], rax
cmp rax, rsi
je 0x14008331f
cmp byte [rax + 0x17], 0
movzx r8d, byte [rsi + 0x17]
js 0x140083e6e
test r8b, r8b
jns 0x140083311
mov rdx, qword [rsi]
mov r8, qword [rsi + 8]
mov rcx, rax
call fcn.140099c30
jmp 0x14008331f
mov rcx, qword [rsi + 0x10]
mov qword [rax + 0x10], rcx
movups xmm0, xmmword [rsi]
movups xmmword [rax], xmm0
mov r9d, 0x3001f
or r9d, dword [rdi + 0x40]
cmp byte [rsi + 0x17], 0
mov r8, rsi
jns 0x140083335
mov r8, qword [rsi]
mov rdx, qword [rdi + 0x20]
lea rcx, [rsp + 0x130]
call fcn.14009f920
cmp eax, 5
je 0x140083398
test eax, eax
jne 0x140083438
mov rcx, qword [0x1402548b0]
test rcx, rcx
jne 0x14008336e
call fcn.140068fb0
mov rcx, rax
mov qword [0x1402548b0], rax
xor eax, eax
cmp dword [rdi + 0x40], 0x200
sete al
lea r8d, [rax*8 + 4]
mov rdx, rbx
mov r9d, 0x30019
call fcn.140069290
test al, al
jne 0x140083487
lea rcx, str.....operadesktopwindowsinstaller_transactionsdelete_reg_key_operation.cc
mov edx, 0x4f
call fcn.14011b4a0
test eax, eax
jg 0x1400837a5
mov rcx, qword [0x1402548b0]
test rcx, rcx
jne 0x1400833cc
call fcn.140068fb0
mov rcx, rax
mov qword [0x1402548b0], rax
mov rax, qword [rsp + 0x120]
add rax, 0x20
xor edx, edx
cmp dword [rdi + 0x40], 0x200
sete dl
lea r8d, [rdx*8 + 4]
mov qword [rsp + 0x28], rax
mov byte [rsp + 0x20], 1
mov ebp, 0x3001f
mov rdx, rbx
mov r9d, 0x3001f
call fcn.140069a00
test al, al
je 0x14008357e
or ebp, dword [rdi + 0x40]
cmp byte [rsi + 0x17], 0
mov r8, rsi
jns 0x140083420
mov r8, qword [rsi]
mov rdx, qword [rdi + 0x20]
lea rcx, [rsp + 0x130]
mov r9d, ebp
call fcn.14009f920
test eax, eax
je 0x140083487
mov ecx, 2
call fcn.14011b470
test al, al
je 0x1400836e2
lea rdx, str.....operadesktopwindowsinstaller_transactionsdelete_reg_key_operation.cc
lea rsi, [rsp + 0x150]
mov rcx, rsi
mov r8d, VarR8FromUI1
mov r9d, 2
call fcn.1400b2700
lea rcx, [rsp + 0x160]
lea rdx, str.Failed_to_open_key
mov r8d, shutdown
jmp 0x1400836ca
mov rcx, qword [rsp + 0x138]
lea r9, [rsp + 0x12c]
mov edx, reloc.WS2_32.dll_shutdown
xor r8d, r8d
call qword [sym.imp.ADVAPI32.dll_RegGetKeySecurity]
test eax, eax
je 0x1400834b2
cmp eax, 0x7a
jne 0x1400835cd
mov r14, qword [rsp + 0x120]
mov ecx, dword [rsp + 0x12c]
call fcn.14015086c
mov rcx, qword [r14 + 0x18]
mov qword [r14 + 0x18], rax
test rcx, rcx
je 0x1400834e4
call fcn.140150874
mov rax, qword [rsp + 0x120]
mov rax, qword [rax + 0x18]
mov rcx, qword [rsp + 0x138]
lea r9, [rsp + 0x12c]
mov edx, reloc.WS2_32.dll_shutdown
mov r8, rax
call qword [sym.imp.ADVAPI32.dll_RegGetKeySecurity]
test eax, eax
je 0x14008361c
mov ecx, 2
call fcn.14011b470
test al, al
je 0x1400836e2
lea rdx, str.....operadesktopwindowsinstaller_transactionsdelete_reg_key_operation.cc
lea rsi, [rsp + 0x150]
mov rcx, rsi
mov r8d, 0x64
mov r9d, 2
call fcn.1400b2700
lea rcx, [rsp + 0x160]
lea rdx, str.Failed_to_obtain_security_descriptor_for
mov r8d, 0x29
call fcn.14018f2a0
mov rcx, rax
mov rdx, rbx
call fcn.1400b3280
lea rdx, str._but_we_succeeded_earlier_
mov r8d, reloc.OLEAUT32.dll_SafeArrayCopy
mov rcx, rax
call fcn.14018f2a0
jmp 0x1400836da
mov ecx, 2
call fcn.14011b470
test al, al
je 0x1400836e2
lea rdx, str.....operadesktopwindowsinstaller_transactionsdelete_reg_key_operation.cc
lea rsi, [rsp + 0x150]
mov rcx, rsi
mov r8d, 0x41
mov r9d, 2
call fcn.1400b2700
lea rcx, [rsp + 0x160]
lea rdx, str.Unable_to_obtain_sufficient_permissions_on_key
mov r8d, 0x2e
jmp 0x1400836ca
mov ecx, 2
call fcn.14011b470
test al, al
je 0x1400836e2
lea rdx, str.....operadesktopwindowsinstaller_transactionsdelete_reg_key_operation.cc
lea rsi, [rsp + 0x150]
mov rcx, rsi
mov r8d, 0x54
mov r9d, 2
call fcn.1400b2700
lea rcx, [rsp + 0x160]
lea rdx, str.Failed_to_obtain_security_descriptor_for
mov r8d, 0x29
jmp 0x1400836ca
mov eax, 0xaaaaaaaa
lea rdx, [rsp + 0x11c]
mov dword [rdx], eax
lea r8, [rsp + 0x118]
mov dword [r8], eax
lea r9, [rsp + 0x114]
mov dword [r9], eax
mov rcx, qword [rsp + 0x138]
xorps xmm0, xmm0
movups xmmword [rsp + 0x50], xmm0
mov qword [rsp + 0x48], r9
mov qword [rsp + 0x40], r8
mov qword [rsp + 0x38], rdx
movups xmmword [rsp + 0x20], xmm0
mov qword [rsp + 0x30], 0
xor edx, edx
xor r8d, r8d
xor r9d, r9d
call qword [sym.imp.ADVAPI32.dll_RegQueryInfoKeyW]
test eax, eax
je 0x1400837ef
mov ecx, 2
call fcn.14011b470
test al, al
je 0x1400836e2
lea rdx, str.....operadesktopwindowsinstaller_transactionsdelete_reg_key_operation.cc
lea rsi, [rsp + 0x150]
mov rcx, rsi
mov r8d, WSAStartup
mov r9d, 2
call fcn.1400b2700
lea rcx, [rsp + 0x160]
lea rdx, str.Failed_to_obtain_key_info_for
mov r8d, 0x1e
call fcn.14018f2a0
mov rcx, rax
mov rdx, rbx
call fcn.1400b3280
mov rcx, rsi
call fcn.1400b2bf0
xor esi, esi
mov rdi, qword [rsp + 0x120]
mov qword [rsp + 0x120], 0
test rdi, rdi
je 0x14008370d
mov rcx, rdi
call fcn.140084450
mov rcx, rdi
call fcn.14015082c
lea rcx, [rsp + 0x130]
call fcn.1400a0120
mov rcx, qword [rsp + 0x288]
xor rcx, rsp
call fcn.1401513b0
mov eax, esi
movaps xmm6, xmmword [rsp + 0x290]
movaps xmm7, xmmword [rsp + 0x2a0]
add rsp, 0x2b8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
lea rdx, str.....operadesktopwindowsinstaller_transactionsdelete_reg_key_operation.cc
lea r14, [rsp + 0x150]
mov rcx, r14
mov r8d, 0x26
mov r9d, 0xffffffff
call fcn.1400b2700
lea rcx, [rsp + 0x160]
lea rdx, str.DeleteAndSaveRecursive_:
mov r8d, SafeArrayCopy
call fcn.14018f2a0
mov rcx, rax
mov rdx, rsi
call fcn.1400b3280
mov rcx, r14
call fcn.1400b2bf0
jmp 0x140083297
lea rdx, str.....operadesktopwindowsinstaller_transactionsdelete_reg_key_operation.cc
lea r14, [rsp + 0x150]
mov rcx, r14
mov r8d, 0x3a
mov r9d, 0xffffffff
call fcn.1400b2700
lea rcx, [rsp + 0x160]
lea rdx, str.Insufficient_permissions_on_the_key
mov r8d, 0x23
call fcn.14018f2a0
mov rcx, r14
call fcn.1400b2bf0
jmp 0x1400833b1
lea rcx, str.....operadesktopwindowsinstaller_transactionsdelete_reg_key_operation.cc
mov edx, 0x4f
call fcn.14011b4a0
test eax, eax
jg 0x140083e8a
mov ecx, dword [rsp + 0x118]
inc ecx
mov dword [rsp + 0x118], ecx
add rcx, rcx
call fcn.14015086c
mov qword [rsp + 0x70], rax
mov ecx, dword [rsp + 0x114]
call fcn.14015086c
mov r15, rax
cmp dword [rsp + 0x11c], 0
jle 0x140083a0d
lea rdx, [rsp + 0xd0]
lea r14, [rsp + 0xb0]
lea r12, [rsp + 0xf0]
mov r10, qword [sym.imp.ADVAPI32.dll_RegEnumValueW]
xorps xmm7, xmm7
xor ebp, ebp
mov eax, dword [rsp + 0x118]
mov dword [rsp + 0xf0], eax
mov eax, dword [rsp + 0x114]
mov dword [rsp + 0xd0], eax
mov dword [rsp + 0xb0], 0xaaaaaaaa
mov rcx, qword [rsp + 0x138]
mov qword [rsp + 0x38], rdx
mov qword [rsp + 0x30], r15
mov qword [rsp + 0x28], r14
mov qword [rsp + 0x20], 0
mov edx, ebp
mov r13, qword [rsp + 0x70]
mov r8, r13
mov r9, r12
call r10
test eax, eax
jne 0x1400839f4
mov dword [rsp + 0x68], ebp
mov rbp, r12
mov ecx, 0x30
call fcn.1401507f0
mov r12, r13
mov r13, rax
movups xmmword [rax], xmm7
xor eax, eax
mov qword [r13 + 0x10], rax
mov qword [r13 + 0x20], rax
mov qword [rsp + 0x150], r13
mov eax, dword [rsp + 0xb0]
mov dword [r13 + 0x18], eax
test r12, r12
je 0x140083ff2
mov rcx, r12
call fcn.1401791e4
mov rcx, r13
mov rdx, r12
mov r8, rax
call fcn.1400994a0
mov ecx, dword [rsp + 0xd0]
mov rax, qword [rsp + 0x150]
mov dword [rax + 0x28], ecx
mov r13, qword [rax + 0x20]
mov qword [rax + 0x20], r15
mov rcx, qword [rsp + 0x120]
mov rdx, qword [rcx + 0x30]
cmp rdx, qword [rcx + 0x38]
jae 0x14008396c
test rdx, rdx
je 0x140083fc6
mov r12, rbp
mov qword [rsp + 0x150], 0
mov qword [rdx], rax
add rdx, 8
mov qword [rcx + 0x30], rdx
jmp 0x140083980
add rcx, 0x28
lea rdx, [rsp + 0x150]
call fcn.1400845f0
mov r12, rbp
mov ebp, dword [rsp + 0x68]
mov r10, qword [sym.imp.ADVAPI32.dll_RegEnumValueW]
mov r15, qword [rsp + 0x150]
mov qword [rsp + 0x150], 0
test r15, r15
je 0x1400839d8
mov rcx, qword [r15 + 0x20]
mov qword [r15 + 0x20], 0
test rcx, rcx
je 0x1400839ba
call fcn.140150874
cmp byte [r15 + 0x17], 0
jns 0x1400839c9
mov rcx, qword [r15]
call fcn.14015082c
mov rcx, r15
call fcn.14015082c
mov r10, qword [sym.imp.ADVAPI32.dll_RegEnumValueW]
inc ebp
mov r15, r13
cmp ebp, dword [rsp + 0x11c]
lea rdx, [rsp + 0xd0]
jl 0x140083866
jmp 0x140083a10
mov ecx, 2
call fcn.14011b470
test al, al
jne 0x140083ee3
xor esi, esi
jmp 0x140083e4b
mov r13, r15
mov rax, qword [rdi + 0x30]
cmp rax, qword [rdi + 0x38]
jae 0x140083a44
test rax, rax
je 0x140083fc6
mov rcx, qword [rsp + 0x120]
mov qword [rsp + 0x120], 0
mov qword [rax], rcx
add rax, 8
mov qword [rdi + 0x30], rax
jmp 0x140083a55
lea rcx, [rdi + 0x28]
lea rdx, [rsp + 0x120]
call fcn.1400847c0
movabs r15, 0xaaaaaaaaaaaaaaaa
mov qword [rsp + 0x100], r15
movaps xmmword [rsp + 0xf0], xmm6
cmp byte [rsi + 0x17], 0
js 0x140083f37
mov rax, qword [rsi + 0x10]
mov qword [rsp + 0x100], rax
movups xmm0, xmmword [rsi]
movaps xmmword [rsp + 0xf0], xmm0
movzx eax, byte [rsp + 0x107]
test al, al
mov rcx, qword [rsp + 0xf8]
mov rdx, rax
cmovs rdx, rcx
test rdx, rdx
je 0x140083ad6
test al, al
jns 0x140083fa2
test rcx, rcx
je 0x14008401e
mov rdx, qword [rsp + 0xf0]
mov rax, rcx
cmp word [rdx + rax*2 - 2], 0x5c
jne 0x140083f69
mov qword [rsp + 0xe0], r15
movaps xmmword [rsp + 0xd0], xmm6
cmp byte [rbx + 0x17], 0
js 0x140083f50
mov rax, qword [rbx + 0x10]
mov qword [rsp + 0xe0], rax
movups xmm0, xmmword [rbx]
movaps xmmword [rsp + 0xd0], xmm0
mov cl, byte [rsp + 0xe7]
test cl, cl
mov rdx, qword [rsp + 0xd8]
movzx eax, cl
mov r8, rax
cmovs r8, rdx
test r8, r8
je 0x140083b50
test cl, cl
jns 0x140083fb4
test rdx, rdx
je 0x14008401e
mov r8, qword [rsp + 0xd0]
mov r9, rdx
cmp word [r8 + r9*2 - 2], 0x5c
jne 0x140083f7f
movzx r8d, byte [rsp + 0x107]
test r8b, r8b
jns 0x140083b66
mov r8, qword [rsp + 0xf8]
lea rbx, [rsp + 0xb0]
test cl, cl
cmovs rax, rdx
movsxd rcx, r8d
mov qword [rsp + 0x68], rcx
cdqe
mov qword [rsp + 0x80], rax
xorps xmm6, xmm6
lea rbp, [rsp + 0xcc]
mov r12, qword [sym.imp.ADVAPI32.dll_RegEnumKeyExW]
mov dword [rsp + 0xcc], 0x104
movaps xmmword [rsp + 0xb0], xmm6
mov qword [rsp + 0xc0], 0
mov edx, 0x104
mov rcx, rbx
call fcn.1400a1fe0
mov rcx, qword [rsp + 0x138]
movups xmmword [rsp + 0x30], xmm6
movups xmmword [rsp + 0x20], xmm6
xor edx, edx
mov r8, rax
mov r9, rbp
call r12
mov r15d, 5
cmp eax, 0x103
je 0x140083c0a
test eax, eax
je 0x140083c2f
mov ecx, 2
call fcn.14011b470
mov r15d, 1
test al, al
jne 0x140083d8a
cmp byte [rsp + 0xc7], 0
jns 0x140083c21
mov rcx, qword [rsp + 0xb0]
call fcn.14015082c
test r15d, r15d
je 0x140083b98
jmp 0x140083dde
mov edx, dword [rsp + 0xcc]
mov rcx, rbx
xor r8d, r8d
call fcn.140102c80
lea r14, [rsp + 0xf0]
mov rcx, r14
mov rdx, qword [rsp + 0x68]
xor r8d, r8d
call fcn.140102c80
lea rcx, [rsp + 0xd0]
mov rdx, qword [rsp + 0x80]
xor r8d, r8d
call fcn.140102c80
mov r8d, 0x104
lea rcx, [rsp + 0x150]
mov dl, 0xaa
call fcn.140154340
movzx eax, byte [rsp + 0x107]
test al, al
mov rcx, qword [rsp + 0xf0]
cmovns rcx, r14
mov qword [rsp + 0x88], rcx
cmovs rax, qword [rsp + 0xf8]
mov qword [rsp + 0x90], rax
lea r15, [rsp + 0x98]
mov rcx, r15
lea rdx, [rsp + 0x88]
call fcn.140110e60
cmp byte [rsp + 0xaf], 0
mov rdx, r15
jns 0x140083ce2
mov rdx, qword [rsp + 0x98]
mov r8d, 0x104
lea r15, [rsp + 0x150]
mov rcx, r15
call fcn.140112ff0
cmp byte [rsp + 0xaf], 0
jns 0x140083d0f
mov rcx, qword [rsp + 0x98]
call fcn.14015082c
mov rcx, r15
call fcn.1400e5750
movzx r8d, byte [rsp + 0xc7]
test r8b, r8b
cmovs r8, qword [rsp + 0xb8]
mov rdx, qword [rsp + 0xb0]
cmovns rdx, rbx
mov rcx, r14
call fcn.140099850
movzx r8d, byte [rsp + 0xc7]
mov rdx, rbx
test r8b, r8b
jns 0x140083d61
mov r8, qword [rsp + 0xb8]
mov rdx, qword [rsp + 0xb0]
lea r15, [rsp + 0xd0]
mov rcx, r15
call fcn.140099850
mov rcx, rdi
mov rdx, r14
mov r8, r15
call fcn.140083240
xor al, 1
movzx r15d, al
jmp 0x140083c0a
mov qword [rsp + 0x78], r13
lea r13, [rsp + 0x150]
mov rcx, r13
lea rdx, str.....operadesktopwindowsinstaller_transactionsdelete_reg_key_operation.cc
mov r8d, 0xa7
mov r9d, 2
call fcn.1400b2700
mov r8d, SafeArrayCopy
lea rcx, [rsp + 0x160]
lea rdx, str.Failed_to_read_a_subkey
call fcn.14018f2a0
mov rcx, r13
mov r13, qword [rsp + 0x78]
call fcn.1400b2bf0
jmp 0x140083c0a
cmp r15d, 5
jne 0x140083e13
lea rcx, [rsp + 0x130]
call fcn.1401bb230
mov r8d, dword [rdi + 0x40]
cmp byte [rsi + 0x17], 0
jns 0x140083dfe
mov rsi, qword [rsi]
mov rcx, qword [rdi + 0x20]
mov rdx, rsi
xor r9d, r9d
call qword [sym.imp.ADVAPI32.dll_RegDeleteKeyExW]
mov sil, 1
jmp 0x140083e15
xor esi, esi
cmp byte [rsp + 0xe7], 0
jns 0x140083e2c
mov rcx, qword [rsp + 0xd0]
call fcn.14015082c
cmp byte [rsp + 0x107], 0
jns 0x140083e43
mov rcx, qword [rsp + 0xf0]
call fcn.14015082c
mov r15, r13
mov r13, qword [rsp + 0x70]
test r15, r15
je 0x140083e58
mov rcx, r15
call fcn.140150874
test r13, r13
je 0x1400836e4
mov rcx, r13
call fcn.140150874
jmp 0x1400836e4
mov rdx, rsi
test r8b, r8b
jns 0x140083e7d
mov r8, qword [rsi + 8]
mov rdx, qword [rsi]
mov rcx, rax
call fcn.140099b40
jmp 0x14008331f
lea rdx, str.....operadesktopwindowsinstaller_transactionsdelete_reg_key_operation.cc
lea r14, [rsp + 0x150]
mov rcx, r14
mov r8d, 0x75
mov r9d, 0xffffffff
call fcn.1400b2700
lea rcx, [rsp + 0x160]
mov edx, dword [rsp + 0x11c]
call fcn.140038850
lea rdx, str._values
mov r8d, 7
mov rcx, rax
call fcn.14018f2a0
mov rcx, r14
call fcn.1400b2bf0
jmp 0x140083808
lea rdx, str.....operadesktopwindowsinstaller_transactionsdelete_reg_key_operation.cc
lea rsi, [rsp + 0x150]
mov rcx, rsi
mov r8d, 0x84
mov r9d, 2
call fcn.1400b2700
lea rcx, [rsp + 0x160]
lea rdx, str.Failed_to_obtain_value_nr
mov r8d, reloc.OLEAUT32.dll_SafeArrayCopy
call fcn.14018f2a0
mov rcx, rax
mov edx, ebp
call fcn.140038610
mov rcx, rsi
call fcn.1400b2bf0
jmp 0x140083a06
mov rdx, qword [rsi]
mov r8, qword [rsi + 8]
lea rcx, [rsp + 0xf0]
call fcn.1400991f0
jmp 0x140083a90
mov rdx, qword [rbx]
mov r8, qword [rbx + 8]
lea rcx, [rsp + 0xd0]
call fcn.1400991f0
jmp 0x140083b07
lea rcx, [rsp + 0xf0]
mov dx, 0x5c
call fcn.140102a60
jmp 0x140083ad6
lea rbx, [rsp + 0xd0]
mov rcx, rbx
mov dx, 0x5c
call fcn.140102a60
mov cl, byte [rbx + 0x17]
mov rdx, qword [rbx + 8]
movzx eax, cl
jmp 0x140083b50
test rax, rax
je 0x14008401e
lea rdx, [rsp + 0xf0]
jmp 0x140083aca
je 0x14008401e
lea r8, [rsp + 0xd0]
mov r9, rax
jmp 0x140083b43
lea rax, str.null_pointer_given_to_construct_at
mov qword [rsp + 0x20], rax
lea rcx, str._s:_d:_assertion__s_failed:__s
lea rdx, str....._buildtools_third_partylibc_trunkinclude__memoryconstruct_at.h
lea r9, str.__location___nullptr
mov r8d, 0x25
call fcn.140191960
lea rax, str.string::assign_received_nullptr
mov qword [rsp + 0x20], rax
lea rcx, str._s:_d:_assertion__s_failed:__s
lea rdx, str....._buildtools_third_partylibc_trunkinclude_string
lea r9, str.__s___nullptr
mov r8d, 0x9dc
call fcn.140191960
lea rax, str.string::back__:_string_is_empty
mov qword [rsp + 0x20], rax
lea rcx, str._s:_d:_assertion__s_failed:__s
lea rdx, str....._buildtools_third_partylibc_trunkinclude_string
lea r9, str._empty__
mov r8d, 0x501
call fcn.140191960
int3