Function at 0x140041470
Capabilities:
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, reloc.SHELL32.dll_IsUserAnAdmin
movaps xmmword [rsp + 0x290], xmm6
mov r12, rdx
mov r15, rcx
mov rax, qword [0x140381038]
xor rax, rsp
mov qword [rsp + 0x288], rax
xor eax, eax
mov qword [rsp + 0x270], rax
xorps xmm6, xmm6
movaps xmmword [rsp + 0x260], xmm6
lea rdi, [rsp + 0x250]
movups xmmword [rdi], xmm6
mov qword [rdi - 8], rdi
lea rdx, [rsp + 0x244]
mov dword [rdx], eax
lea r8, [rsp + 0x240]
mov dword [r8], eax
lea r9, [rsp + 0x23c]
mov dword [r9], eax
lea r10, [rsp + 0x238]
mov dword [r10], eax
lea r11, [rsp + 0x234]
mov dword [r11], eax
mov rcx, qword [r12]
movups xmmword [rsp + 0x50], xmm6
mov qword [rsp + 0x48], r11
mov qword [rsp + 0x40], r10
mov qword [rsp + 0x38], r9
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x28], r8
mov qword [rsp + 0x20], rdx
xor edx, edx
xor r8d, r8d
xor r9d, r9d
call qword [sym.imp.ADVAPI32.dll_RegQueryInfoKeyW]
test eax, eax
jne 0x1400417c8
mov ecx, dword [rsp + 0x240]
mov eax, dword [rsp + 0x238]
cmp ecx, eax
cmova eax, ecx
movaps xmmword [rsp + 0xe0], xmm6
mov qword [rsp + 0xf0], 0
inc eax
je 0x1400415af
mov esi, eax
lea rbx, [rsi + rsi]
mov rcx, rbx
call fcn.14019a06c
mov qword [rsp + 0xe0], rax
mov qword [rsp + 0xe8], rax
lea rcx, [rax + rsi*2]
mov qword [rsp + 0xf0], rcx
test rax, rax
je 0x140041c45
mov word [rax], 0
add rax, 2
add rbx, 0xfffffffffffffffe
jne 0x14004158f
mov qword [rsp + 0xe8], rcx
mov eax, dword [rsp + 0x23c]
test rax, rax
jne 0x1400415ff
cmp dword [rsp + 0x244], 0
je 0x1400416b8
mov qword [rsp + 0x68], r15
lea rdi, [rsp + 0x100]
xor ebx, ebx
xorps xmm6, xmm6
lea r13, [rsp + 0xdc]
mov rsi, qword [sym.imp.ADVAPI32.dll_RegEnumKeyExW]
lea rbp, [rsp + 0xe0]
lea r14, [rsp + 0xa0]
jmp 0x14004190b
mov qword [rsp + 0x68], r15
imul rsi, rax, 0x38
mov rcx, rsi
call fcn.14019a06c
mov r15, rax
add rsi, rax
mov qword [rsp + 0x260], rax
mov qword [rsp + 0x268], rax
mov qword [rsp + 0x270], rsi
mov ebx, dword [rsp + 0x234]
cmp ebx, 1
adc ebx, 0
mov rcx, rbx
call fcn.14019a06c
mov qword [rsp + 0xa0], rax
mov qword [rsp + 0xa8], rax
mov rcx, rax
add rcx, rbx
mov qword [rsp + 0xb0], rcx
test rax, rax
je 0x140041c45
mov byte [rax], 0
inc rax
dec rbx
jne 0x140041661
lea rax, [rsp + 0xa0]
mov qword [rax + 8], rcx
lea rax, [rsp + 0xdc]
mov dword [rax], 0
xor edi, edi
xorps xmm6, xmm6
movabs rbx, 0x6db6db6db6db6db7
mov r14, r15
mov qword [rsp + 0x78], r12
jmp 0x140041f7c
lea rcx, [rsp + 0xa0]
call fcn.140069970
mov rax, qword [r15]
mov rcx, qword [rsp + 0x260]
mov qword [r15], rcx
mov qword [rsp + 0x260], rax
mov rax, qword [r15 + 8]
mov rcx, qword [rsp + 0x268]
mov qword [r15 + 8], rcx
mov qword [rsp + 0x268], rax
mov rax, qword [r15 + 0x10]
mov rcx, qword [rsp + 0x270]
mov qword [r15 + 0x10], rcx
mov qword [rsp + 0x270], rax
mov rax, qword [r15 + 0x18]
mov rcx, qword [rsp + 0x248]
mov qword [r15 + 0x18], rcx
mov qword [rsp + 0x248], rax
lea rdx, [r15 + 0x20]
mov rax, qword [r15 + 0x20]
mov r8, qword [rsp + 0x250]
mov qword [r15 + 0x20], r8
mov qword [rsp + 0x250], rax
mov rcx, qword [r15 + 0x28]
mov r9, qword [rsp + 0x258]
mov qword [r15 + 0x28], r9
mov qword [rsp + 0x258], rcx
test r9, r9
je 0x14004175d
mov qword [r8 + 0x10], rdx
mov rcx, qword [rsp + 0x258]
jmp 0x140041761
mov qword [r15 + 0x18], rdx
test rcx, rcx
je 0x140041785
mov qword [rax + 0x10], rdi
jmp 0x14004178d
mov rcx, rsi
call fcn.14007cf40
lea rcx, [rsp + 0xa0]
call fcn.140069970
xor esi, esi
jmp 0x140041790
mov qword [rsp + 0x248], rdi
mov sil, 1
mov rcx, qword [rsp + 0xe0]
test rcx, rcx
je 0x140041829
mov rax, qword [rsp + 0xe8]
cmp rax, rcx
je 0x1400417b9
add rax, 0xfffffffffffffffe
jne 0x1400417a9
jmp 0x140042180
mov qword [rsp + 0xe8], rcx
call fcn.14019a0bc
jmp 0x140041829
mov ebx, eax
mov ecx, 2
call fcn.14014d760
test al, al
je 0x140041827
lea rdx, str.....chromeinstallerutil_registry_key_backup.cc
lea rsi, [rsp + 0xf8]
mov rcx, rsi
mov r8d, 0x82
mov r9d, 2
call fcn.14007ca10
lea rcx, [rsp + 0x108]
lea rdx, str.Failed_getting_info_of_key_to_backup__result:
mov r8d, 0x2e
call fcn.1401d6c00
mov rcx, rax
mov edx, ebx
call fcn.140025390
mov rcx, rsi
call fcn.14007cf40
xor esi, esi
lea rcx, [rsp + 0x248]
mov rdx, qword [rcx + 8]
call fcn.140042be0
lea rcx, [rsp + 0x260]
call fcn.1401ef150
mov rcx, qword [rsp + 0x288]
xor rcx, rsp
call fcn.14019b960
mov eax, esi
movaps xmm6, xmmword [rsp + 0x290]
add rsp, reloc.SHELL32.dll_IsUserAnAdmin
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
movabs rax, 0xaaaaaaaaaaaaaaaa
lea rcx, [rsp + 0xa0]
mov qword [rcx + 0x10], rax
movaps xmm0, xmmword [0x14030e560]
movaps xmmword [rcx], xmm0
call fcn.1400696b0
mov rsi, qword [rsp + 0x248]
lea rdi, [rsp + 0x250]
cmp rsi, rdi
mov r15, qword [rsp + 0x68]
je 0x1400416ab
lea r14, [rsp + 0xa0]
jmp 0x140041ac1
mov ecx, dword [rsp + 0xdc]
inc ecx
mov r8, qword [rsp + 0xe0]
mov rax, qword [rsp + 0xe8]
mov r9, rax
sub r9, r8
sar r9, 1
mov rdx, rcx
sub rdx, r9
jbe 0x1400421fc
mov rcx, rbp
call fcn.14003e1b0
mov r12, r15
cmp ebx, dword [rsp + 0x244]
jae 0x140041875
mov r8, qword [rsp + 0xe0]
mov rax, qword [rsp + 0xe8]
mov rcx, rax
sub rcx, r8
shr rcx, 1
mov dword [rsp + 0xdc], ecx
cmp rax, r8
je 0x140042096
mov r15, r12
mov rcx, qword [r12]
movups xmmword [rsp + 0x30], xmm6
movups xmmword [rsp + 0x20], xmm6
mov edx, ebx
mov r9, r13
call rsi
cmp eax, 0xea
je 0x1400418c5
mov r12d, eax
cmp eax, 0x103
jne 0x14004196a
mov dword [rsp + 0x244], ebx
jmp 0x1400418fb
test r12d, r12d
jne 0x140041a24
movaps xmmword [rsp + 0xa0], xmm6
mov qword [rsp + 0xb0], 0
lea rax, [rsp + 0xc0]
movups xmmword [rax], xmm6
mov qword [rsp + 0xb8], rax
mov rax, qword [rsp + 0xe0]
cmp qword [rsp + 0xe8], rax
je 0x140042096
mov r12, r15
mov qword [rsp + 0xf8], rax
mov rcx, rdi
mov rdx, r14
call fcn.140042730
lea rcx, [rsp + 0x248]
lea rdx, [rsp + 0x278]
lea r8, [rsp + 0xf8]
call fcn.1401ef800
mov rdx, qword [rsp + 0x120]
lea rcx, [rsp + 0x118]
call fcn.140042be0
mov rcx, rdi
call fcn.1401ef150
mov rdx, qword [rsp + 0xc0]
lea rcx, [rsp + 0xb8]
call fcn.140042be0
mov rcx, r14
call fcn.1401ef150
inc ebx
jmp 0x1400418fe
mov ecx, 2
call fcn.14014d760
test al, al
je 0x140041781
lea rdx, str.....chromeinstallerutil_registry_key_backup.cc
lea rsi, [rsp + 0xf8]
mov rcx, rsi
mov r8d, 0xc8
mov r9d, 2
call fcn.14007ca10
lea rcx, [rsp + 0x108]
lea rdx, str.Failed_getting_name_of_subkey
mov r8d, 0x1e
call fcn.1401d6c00
mov rcx, rax
mov edx, ebx
call fcn.1400255d0
lea rdx, str._for_backup__result:
mov r8d, 0x15
mov rcx, rax
call fcn.1401d6c00
mov rcx, rax
mov edx, r12d
call fcn.140025390
mov rcx, rsi
call fcn.14007cf40
jmp 0x140041781
mov rax, rcx
mov rcx, qword [rcx]
test rcx, rcx
jne 0x140041aaa
mov rsi, rax
cmp rax, rdi
je 0x1400416ab
lea rbx, [rsi + 0x20]
cmp byte [rsi + 0x37], 0
mov r8, rbx
jns 0x140041ad1
mov r8, qword [rbx]
mov rdx, qword [r12]
mov rcx, r14
mov r9d, 0x20009
call fcn.140069850
test eax, eax
jne 0x140041b8f
lea rcx, [rsi + 0x38]
mov rdx, r14
call fcn.140041470
test al, al
je 0x140041b1b
test rsi, rsi
je 0x140041c0f
mov rcx, qword [rsi + 8]
test rcx, rcx
jne 0x140041aaa
mov rax, qword [rsi + 0x10]
cmp qword [rax], rsi
mov rsi, rax
jne 0x140041b0d
jmp 0x140041ab5
mov ecx, 2
call fcn.14014d760
test al, al
je 0x140041774
lea rdx, str.....chromeinstallerutil_registry_key_backup.cc
lea rsi, [rsp + 0xf8]
mov rcx, rsi
mov r8d, 0xdd
mov r9d, 2
call fcn.14007ca10
lea rcx, [rsp + 0x108]
lea rdx, str.Failed_backing_up_subkey__
mov r8d, 0x1a
call fcn.1401d6c00
mov rcx, rax
mov rdx, rbx
call fcn.1400770e0
lea rdx, [0x140310c6e]
mov r8d, 1
mov rcx, rax
call fcn.1401d6c00
jmp 0x14004176c
mov ebp, eax
mov ecx, 2
call fcn.14014d760
test al, al
je 0x140041774
lea rdx, str.....chromeinstallerutil_registry_key_backup.cc
lea rsi, [rsp + 0xf8]
mov rcx, rsi
mov r8d, 0xd8
mov r9d, 2
call fcn.14007ca10
lea rcx, [rsp + 0x108]
lea rdx, str.Failed_opening_subkey__
mov r8d, 0x17
call fcn.1401d6c00
mov rcx, rax
mov rdx, rbx
call fcn.1400770e0
lea rdx, str.__for_backup__result:
mov r8d, 0x16
mov rcx, rax
call fcn.1401d6c00
mov rcx, rax
mov edx, ebp
call fcn.140025390
jmp 0x14004176c
lea rax, str.node_shouldnt_be_null
mov qword [rsp + 0x20], rax
lea rcx, str._s:_d:_assertion__s_failed:__s_n
lea rdx, str....._third_partylibc_srcinclude__tree
lea r9, str.__x___nullptr
mov r8d, 0xd0
call fcn.1401dac90
call fcn.1401d6b80
call fcn.1401d6ba0
lea rax, str.null_pointer_given_to_construct_at
mov qword [rsp + 0x20], rax
lea rcx, str._s:_d:_assertion__s_failed:__s_n
lea rdx, str....._third_partylibc_srcinclude__memoryconstruct_at.h
lea r9, str.__location___nullptr
mov r8d, 0x25
call fcn.1401dac90
js 0x140042223
mov r14, r15
mov r15, rbx
mov rcx, r13
call fcn.14019a06c
mov qword [rbp + r12 - 0x20], rax
mov qword [rbp + r12 - 0x18], rax
lea rbx, [rax + r13]
mov qword [rbp + r12 - 0x10], rbx
mov rcx, rax
mov rdx, rsi
mov r8, r13
call fcn.14019d400
mov qword [rbp + r12 - 0x18], rbx
mov rbx, r15
mov r15, r14
mov r14, qword [rsp + 0x98]
mov eax, dword [r14 + r12 - 8]
mov dword [rbp + r12 - 8], eax
add r12, 0xffffffffffffffc8
cmp rdi, r15
je 0x140041d2a
lea rcx, [r12 + rbp]
add rcx, 0xffffffffffffffc8
je 0x140041c45
lea rdi, [r14 + r12]
add rdi, 0xffffffffffffffc8
cmp byte [rdi + 0x17], 0
js 0x140041d19
mov rax, qword [rdi + 0x10]
mov qword [rcx + 0x10], rax
movups xmm0, xmmword [rdi]
movups xmmword [rcx], xmm0
movups xmmword [rbp + r12 - 0x20], xmm6
mov qword [rbp + r12 - 0x10], 0
mov rsi, qword [r14 + r12 - 0x20]
mov r13, qword [r14 + r12 - 0x18]
sub r13, rsi
je 0x140041cb9
jmp 0x140041c71
mov rdx, qword [r14 + r12 - 0x38]
mov r8, qword [r14 + r12 - 0x30]
call fcn.140050120
jmp 0x140041cf6
mov r15, qword [rsp + 0x260]
mov rsi, qword [rsp + 0x268]
add rbp, r12
mov qword [rsp + 0x260], rbp
mov r14, qword [rsp + 0x80]
mov qword [rsp + 0x268], r14
mov qword [rsp + 0x270], rbx
cmp rsi, r15
je 0x140041d7a
mov r12, qword [rsp + 0x78]
add rsi, 0xffffffffffffffc8
mov rcx, rsi
call fcn.1401ef570
cmp rsi, r15
jne 0x140041d67
jmp 0x140041d7f
mov r12, qword [rsp + 0x78]
mov rdi, qword [rsp + 0x70]
jmp 0x140041e70
mov qword [rsp + 0x70], rdi
mov rsi, r14
sub rsi, r15
sar rsi, 3
imul rsi, rbx
lea rdi, [rsi + 1]
movabs rdx, 0x492492492492492
cmp rdi, rdx
ja 0x140041c40
sub rax, r15
sar rax, 3
imul rax, rbx
lea rcx, [rax + rax]
cmp rcx, rdi
cmova rdi, rcx
movabs rcx, 0x249249249249249
cmp rax, rcx
cmovae rdi, rdx
test rdi, rdi
je 0x140041df3
cmp rdi, rdx
ja 0x140041c3b
imul rcx, rdi, 0x38
call fcn.14019a06c
jmp 0x140041df5
xor eax, eax
imul rcx, rsi, 0x38
mov rbp, rax
add rbp, rcx
je 0x140041c45
mov qword [rsp + 0x88], rcx
imul rbx, rdi, 0x38
mov qword [rsp + 0x90], rax
add rbx, rax
lea rax, [rbp + 0x38]
movups xmmword [rbp + 0x20], xmm6
movups xmmword [rbp + 0x10], xmm6
movups xmmword [rbp], xmm6
mov dword [rbp + 0x30], 0
cmp r14, r15
je 0x140041e50
mov qword [rsp + 0x80], rax
xor r12d, r12d
mov qword [rsp + 0x98], r14
jmp 0x140041ccc
mov qword [rsp + 0x260], rbp
mov qword [rsp + 0x268], rax
mov qword [rsp + 0x270], rbx
mov rdi, qword [rsp + 0x70]
mov r14, rax
test r15, r15
je 0x140041e7d
mov rcx, r15
call fcn.14019a0bc
mov r15, rbp
jmp 0x140041ece
test ebp, ebp
jne 0x1400420c2
mov rax, qword [rsp + 0x270]
cmp r14, rax
jae 0x140041d89
test r14, r14
je 0x140041c45
movups xmmword [r14 + 0x20], xmm6
movups xmmword [r14 + 0x10], xmm6
movups xmmword [r14], xmm6
mov dword [r14 + 0x30], 0
add r14, 0x38
mov qword [rsp + 0x268], r14
mov r15, qword [rsp + 0x260]
cmp r15, r14
je 0x1400421ac
mov rbp, qword [rsp + 0xa0]
cmp qword [rsp + 0xa8], rbp
je 0x140042096
mov rdx, qword [rsp + 0xe0]
cmp qword [rsp + 0xe8], rdx
je 0x140042096
mov rbx, rdi
mov esi, dword [rsp + 0xd8]
mov r8d, dword [rsp + 0x278]
mov edi, dword [rsp + 0xdc]
test rdx, rdx
jne 0x140041f2a
test r8d, r8d
jne 0x140042240
lea rcx, [r14 - 0x38]
call fcn.1400503e0
mov dword [r14 - 8], edi
lea rcx, [r14 - 0x20]
lea r8, [rsi + rbp]
mov rdx, rbp
mov r9, rsi
call fcn.1400425a0
mov rdi, rbx
inc edi
movabs rbx, 0x6db6db6db6db6db7
jmp 0x140041f6f
mov ebp, eax
cmp eax, 0x103
jne 0x140041e82
mov dword [rsp + 0x23c], edi
cmp edi, dword [rsp + 0x23c]
jae 0x140042073
mov r8, qword [rsp + 0xe0]
mov rcx, qword [rsp + 0xe8]
mov rax, rcx
sub rax, r8
shr rax, 1
mov dword [rsp + 0x278], eax
mov rax, qword [rsp + 0xa0]
mov rdx, qword [rsp + 0xa8]
mov r9d, edx
sub r9d, eax
mov dword [rsp + 0xd8], r9d
cmp rdx, rax
je 0x140042096
cmp rcx, r8
je 0x140042096
mov rcx, qword [r12]
lea rdx, [rsp + 0xd8]
mov qword [rsp + 0x38], rdx
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0xdc]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], 0
mov edx, edi
lea r9, [rsp + 0x278]
call qword [sym.imp.ADVAPI32.dll_RegEnumValueW]
cmp eax, 0xea
jne 0x140041f5b
mov edx, dword [rsp + 0xd8]
mov rax, qword [rsp + 0xa8]
sub rax, qword [rsp + 0xa0]
cmp rax, rdx
jae 0x14004203c
lea rcx, [rsp + 0xa0]
call fcn.14012db40
mov edx, dword [rsp + 0x278]
inc edx
mov rax, qword [rsp + 0xe8]
sub rax, qword [rsp + 0xe0]
sar rax, 1
sub rdx, rax
jbe 0x140041f6f
lea rcx, [rsp + 0xe0]
call fcn.14003e1b0
jmp 0x140041f6f
mov rcx, qword [rsp + 0xa0]
test rcx, rcx
jne 0x14004216a
lea rdi, [rsp + 0x250]
mov r15, qword [rsp + 0x68]
jmp 0x1400415bb
lea rax, str.vector___index_out_of_bounds
mov qword [rsp + 0x20], rax
lea rcx, str._s:_d:_assertion__s_failed:__s_n
lea rdx, str....._third_partylibc_srcinclude_vector
lea r9, [0x140310631]
mov r8d, 0x622
call fcn.1401dac90
mov ecx, 2
call fcn.14014d760
test al, al
je 0x14004213e
lea rdx, str.....chromeinstallerutil_registry_key_backup.cc
lea rsi, [rsp + 0xf8]
mov rcx, rsi
mov r8d, 0xa8
mov r9d, 2
call fcn.14007ca10
lea rcx, [rsp + 0x108]
lea rdx, str.Failed_backing_up_value
mov r8d, 0x18
call fcn.1401d6c00
mov rcx, rax
mov edx, edi
call fcn.1400255d0
lea rdx, str.__result:
mov r8d, 0xa
mov rcx, rax
call fcn.1401d6c00
mov rcx, rax
mov edx, ebp
call fcn.140025390
mov rcx, rsi
call fcn.14007cf40
mov rcx, qword [rsp + 0xa0]
test rcx, rcx
je 0x140041781
mov rax, qword [rsp + 0xa8]
mov rdx, rax
sub rdx, rcx
dec rax
cmp rdx, rax
ja 0x140042180
jmp 0x1400421ea
mov rax, qword [rsp + 0xa8]
mov rdx, rax
sub rdx, rcx
dec rax
cmp rdx, rax
jbe 0x1400421d8
lea rax, str.null_pointer_given_to_destroy_at
mov qword [rsp + 0x20], rax
lea rcx, str._s:_d:_assertion__s_failed:__s_n
lea rdx, str....._third_partylibc_srcinclude__memoryconstruct_at.h
lea r9, str.__loc___nullptr
mov r8d, 0x41
call fcn.1401dac90
lea rax, str.back___called_on_an_empty_vector
mov qword [rsp + 0x20], rax
lea rcx, str._s:_d:_assertion__s_failed:__s_n
lea rdx, str....._third_partylibc_srcinclude_vector
lea r9, str._empty__
mov r8d, 0x27e
call fcn.1401dac90
mov qword [rsp + 0xa8], rcx
call fcn.14019a0bc
jmp 0x140042084
mov qword [rsp + 0xa8], rcx
call fcn.14019a0bc
jmp 0x140041781
jae 0x1400418fb
lea rcx, [r8 + rcx*2]
cmp rax, rcx
je 0x140042216
add rax, 0xfffffffffffffffe
jne 0x140042206
jmp 0x140042180
mov qword [rsp + 0xe8], rcx
jmp 0x1400418fb
mov rax, qword [rsp + 0x90]
add rax, qword [rsp + 0x88]
lea rcx, [r12 + rax]
add rcx, 0xffffffffffffffe0
call fcn.1401d6ba0
lea rax, str.string::assign_received_nullptr
mov qword [rsp + 0x20], rax
lea rcx, str._s:_d:_assertion__s_failed:__s_n
lea rdx, str....._third_partylibc_srcinclude_string
lea r9, str.__n__0____s___nullptr
mov r8d, 0x936
call fcn.1401dac90
int3