Function at 0x1400af960
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, 0x288
movaps xmmword [rsp + 0x270], xmm6
mov rdi, rdx
mov qword [rsp + 0x78], rcx
mov rax, qword [0x14042f038]
xor rax, rsp
mov qword [rsp + 0x268], rax
xor eax, eax
mov qword [rsp + 0x250], rax
xorps xmm6, xmm6
movaps xmmword [rsp + 0x240], xmm6
lea r12, [rsp + 0x230]
movups xmmword [r12], xmm6
mov qword [r12 - 8], r12
lea rdx, [rsp + 0x224]
mov dword [rdx], eax
lea r8, [rsp + 0x220]
mov dword [r8], eax
lea r9, [rsp + 0x21c]
mov dword [r9], eax
lea r10, [rsp + 0x218]
mov dword [r10], eax
lea r11, [rsp + 0x214]
mov dword [r11], eax
mov rcx, qword [rdi]
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 0x1400afc5e
mov ecx, dword [rsp + 0x220]
mov eax, dword [rsp + 0x218]
cmp ecx, eax
cmova eax, ecx
movaps xmmword [rsp + 0xc0], xmm6
mov qword [rsp + 0xd0], 0
inc eax
je 0x1400afaa3
mov ebx, eax
lea rsi, [rbx + rbx]
mov rcx, rsi
call fcn.14024abdc
mov qword [rsp + 0xc0], rax
mov qword [rsp + 0xc8], rax
lea rcx, [rax + rbx*2]
mov qword [rsp + 0xd0], rcx
test rax, rax
je 0x1400b031d
mov word [rax], 0
add rax, 2
add rsi, 0xfffffffffffffffe
jne 0x1400afa83
mov qword [rsp + 0xc8], rcx
mov eax, dword [rsp + 0x21c]
test rax, rax
jne 0x1400afcc4
cmp dword [rsp + 0x224], 0
je 0x1400b0205
xor ebx, ebx
xorps xmm6, xmm6
lea r13, [rsp + 0xbc]
mov r15, qword [sym.imp.ADVAPI32.dll_RegEnumKeyExW]
lea rbp, [rsp + 0xc0]
lea r14, [rsp + 0x80]
lea r12, [rsp + 0x258]
mov r8, qword [rsp + 0xc0]
mov rax, qword [rsp + 0xc8]
mov rcx, rax
sub rcx, r8
shr rcx, 1
mov dword [rsp + 0xbc], ecx
cmp rax, r8
je 0x1400b02f1
mov rcx, qword [rdi]
movups xmmword [rsp + 0x30], xmm6
movups xmmword [rsp + 0x20], xmm6
mov edx, ebx
mov r9, r13
call r15
cmp eax, 0xea
je 0x1400afb44
mov esi, eax
cmp eax, 0x103
jne 0x1400afb95
mov dword [rsp + 0x224], ebx
jmp 0x1400afb83
mov edx, dword [rsp + 0xbc]
inc edx
mov rax, qword [rsp + 0xc0]
mov rcx, qword [rsp + 0xc8]
sub rcx, rax
sar rcx, 1
cmp rcx, rdx
jae 0x1400afb75
sub rdx, rcx
mov rcx, rbp
call fcn.1400acd80
jmp 0x1400afb83
jbe 0x1400afb83
lea rax, [rax + rdx*2]
mov qword [rsp + 0xc8], rax
cmp ebx, dword [rsp + 0x224]
jb 0x1400afaed
jmp 0x1400b0145
test esi, esi
jne 0x1400b0349
movaps xmmword [rsp + 0x80], xmm6
mov qword [rsp + 0x90], 0
lea rax, [rsp + 0xa0]
movups xmmword [rax], xmm6
mov qword [rsp + 0x98], rax
mov rax, qword [rsp + 0xc0]
cmp qword [rsp + 0xc8], rax
je 0x1400b02f1
mov qword [rsp + 0xd8], rax
lea rsi, [rsp + 0xe0]
mov rcx, rsi
mov rdx, r14
call fcn.1400b0ae0
lea rcx, [rsp + 0x228]
mov rdx, r12
lea r8, [rsp + 0xd8]
call fcn.140296d50
mov rdx, qword [rsp + 0x100]
lea rcx, [rsp + 0xf8]
call fcn.1400b10f0
mov qword [rsp + 0x258], rsi
mov rcx, r12
call fcn.140296ae0
mov rdx, qword [rsp + 0xa0]
lea rcx, [rsp + 0x98]
call fcn.1400b10f0
mov qword [rsp + 0x258], r14
mov rcx, r12
call fcn.140296ae0
inc ebx
jmp 0x1400afb83
mov esi, eax
mov ecx, 2
call fcn.1401ee3d0
test al, al
je 0x1400afcbd
lea rdx, str.....chromeinstallerutil_registry_key_backup.cc
lea rdi, [rsp + 0xd8]
mov rcx, rdi
mov r8d, 0x82
mov r9d, 2
call fcn.1400ee420
lea rcx, [rsp + 0xe8]
lea rdx, str.Failed_getting_info_of_key_to_backup__result:
mov r8d, 0x2e
call fcn.1402885e0
mov rcx, rax
mov edx, esi
call fcn.140098a90
mov rcx, rdi
call fcn.1400ee910
xor esi, esi
jmp 0x1400b0586
imul rsi, rax, 0x38
mov rcx, rsi
call fcn.14024abdc
add rsi, rax
mov qword [rsp + 0x240], rax
mov qword [rsp + 0x248], rax
mov qword [rsp + 0x250], rsi
mov eax, dword [rsp + 0x214]
test eax, eax
mov esi, 1
cmovne esi, eax
mov rcx, rsi
call fcn.14024abdc
mov qword [rsp + 0x80], rax
mov qword [rsp + 0x88], rax
mov rcx, rax
add rcx, rsi
mov qword [rsp + 0x90], rcx
test rax, rax
je 0x1400b031d
mov byte [rax], 0
inc rax
dec rsi
jne 0x1400afd22
movabs r13, 0x492492492492492
lea r14, [rsp + 0x80]
mov qword [r14 + 8], rcx
lea r15, [rsp + 0xbc]
mov dword [r15], 0
xor ebx, ebx
lea rbp, [rsp + 0xb8]
xorps xmm6, xmm6
mov r8, qword [rsp + 0xc0]
mov rcx, qword [rsp + 0xc8]
mov rax, rcx
sub rax, r8
shr rax, 1
mov dword [rsp + 0x258], eax
mov rax, qword [rsp + 0x80]
mov rdx, qword [rsp + 0x88]
mov r9d, edx
sub r9d, eax
mov dword [rsp + 0xb8], r9d
cmp rdx, rax
je 0x1400b02f1
cmp rcx, r8
je 0x1400b02f1
mov rcx, qword [rdi]
mov qword [rsp + 0x38], rbp
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x28], r15
mov qword [rsp + 0x20], 0
mov edx, ebx
lea r9, [rsp + 0x258]
call qword [sym.imp.ADVAPI32.dll_RegEnumValueW]
cmp eax, 0xea
je 0x1400afdfc
mov esi, eax
cmp eax, 0x103
jne 0x1400afe66
mov dword [rsp + 0x21c], ebx
jmp 0x1400afe54
mov edx, dword [rsp + 0xb8]
mov rax, qword [rsp + 0x88]
sub rax, qword [rsp + 0x80]
cmp rax, rdx
jae 0x1400afe23
sub rdx, rax
mov rcx, r14
call fcn.1401d2c40
mov edx, dword [rsp + 0x258]
inc edx
mov rax, qword [rsp + 0xc8]
sub rax, qword [rsp + 0xc0]
sar rax, 1
cmp rax, rdx
jae 0x1400afe54
sub rdx, rax
lea rcx, [rsp + 0xc0]
call fcn.1400acd80
cmp ebx, dword [rsp + 0x21c]
jb 0x1400afd68
jmp 0x1400b02ce
test esi, esi
jne 0x1400b03ce
mov r15, qword [rsp + 0x248]
mov rax, qword [rsp + 0x250]
cmp r15, rax
jae 0x1400afeb3
test r15, r15
je 0x1400b031d
lea rax, [r15 + 0x38]
movups xmmword [r15 + 0x20], xmm6
movups xmmword [r15 + 0x10], xmm6
movups xmmword [r15], xmm6
mov dword [r15 + 0x30], 0
mov qword [rsp + 0x248], rax
jmp 0x1400aff86
mov rsi, qword [rsp + 0x240]
mov r14, r15
sub r14, rsi
sar r14, 3
movabs rcx, 0x6db6db6db6db6db7
imul r14, rcx
lea r12, [r14 + 1]
cmp r12, r13
ja 0x1400b0635
sub rax, rsi
sar rax, 3
imul rax, rcx
lea rcx, [rax + rax]
cmp rcx, r12
cmova r12, rcx
movabs rcx, 0x249249249249249
cmp rax, rcx
cmovae r12, r13
test r12, r12
jne 0x1400aff10
xor eax, eax
jmp 0x1400aff22
cmp r12, r13
ja 0x1400b063a
imul rcx, r12, 0x38
call fcn.14024abdc
imul r14, r14, 0x38
add r14, rax
je 0x1400b031d
imul rcx, r12, 0x38
add rax, rcx
lea rcx, [r14 + 0x38]
movups xmmword [r14 + 0x20], xmm6
movups xmmword [r14 + 0x10], xmm6
movups xmmword [r14], xmm6
mov dword [r14 + 0x30], 0
cmp r15, rsi
jne 0x1400b0038
mov qword [rsp + 0x240], r14
mov qword [rsp + 0x248], rcx
mov qword [rsp + 0x250], rax
test r15, r15
lea r12, [rsp + 0x230]
je 0x1400aff86
mov rcx, r15
call fcn.14024ac18
mov rsi, qword [rsp + 0x248]
cmp qword [rsp + 0x240], rsi
je 0x1400b0609
mov r13, qword [rsp + 0x80]
cmp qword [rsp + 0x88], r13
je 0x1400b02f1
mov rdx, qword [rsp + 0xc0]
cmp qword [rsp + 0xc8], rdx
je 0x1400b02f1
mov ebp, dword [rsp + 0xb8]
mov r8d, dword [rsp + 0x258]
mov r14d, dword [rsp + 0xbc]
test rdx, rdx
jne 0x1400affed
test r8d, r8d
jne 0x1400b063f
lea rcx, [rsi - 0x38]
call fcn.1400d3b00
mov dword [rsi - 8], r14d
add rsi, 0xffffffffffffffe0
add rbp, r13
mov rcx, rsi
mov rdx, r13
mov r8, rbp
call fcn.1400b09a0
inc ebx
movabs r13, 0x492492492492492
lea r14, [rsp + 0x80]
lea r15, [rsp + 0xbc]
lea rbp, [rsp + 0xb8]
jmp 0x1400afe54
mov qword [rsp + 0x68], rcx
mov qword [rsp + 0x70], rax
mov rbp, r14
add rbp, 0xffffffffffffffc8
je 0x1400b031d
lea r13, [r15 - 0x38]
cmp byte [r15 - 0x21], 0
js 0x1400b00e7
mov rax, qword [r13 + 0x10]
mov qword [rbp + 0x10], rax
movups xmm0, xmmword [r13]
movups xmmword [rbp], xmm0
movups xmmword [r14 - 0x20], xmm6
mov qword [r14 - 0x10], 0
mov r12, qword [r15 - 0x18]
sub r12, qword [r15 - 0x20]
je 0x1400b00ce
js 0x1400b0635
mov rcx, r12
call fcn.14024abdc
mov qword [r14 - 0x20], rax
mov qword [r14 - 0x18], rax
mov rcx, rax
add rcx, r12
mov qword [r14 - 0x10], rcx
mov rcx, qword [r15 - 0x20]
mov rdx, qword [r15 - 0x18]
cmp rcx, rdx
je 0x1400b00ca
test rax, rax
je 0x1400b031d
mov r8b, byte [rcx]
mov byte [rax], r8b
inc rcx
inc rax
jmp 0x1400b00ae
mov qword [r14 - 0x18], rax
mov eax, dword [r15 - 8]
mov dword [r14 - 8], eax
mov r14, rbp
mov r15, r13
cmp r13, rsi
jne 0x1400b0045
jmp 0x1400b00fc
mov rdx, qword [r15 - 0x38]
mov r8, qword [r15 - 0x30]
mov rcx, rbp
call fcn.1400d3850
jmp 0x1400b006f
mov r15, qword [rsp + 0x240]
mov r12, qword [rsp + 0x248]
mov qword [rsp + 0x240], rbp
mov rax, qword [rsp + 0x68]
mov qword [rsp + 0x248], rax
mov rax, qword [rsp + 0x70]
mov qword [rsp + 0x250], rax
cmp r12, r15
je 0x1400aff71
add r12, 0xffffffffffffffc8
mov rcx, r12
call fcn.1402966d0
jmp 0x1400b012e
movabs rax, 0xaaaaaaaaaaaaaaaa
lea rcx, [rsp + 0x80]
mov qword [rcx + 0x10], rax
movaps xmm0, xmmword [0x1403be790]
movaps xmmword [rcx], xmm0
call fcn.140102c30
mov r14, qword [rsp + 0x228]
lea r12, [rsp + 0x230]
cmp r14, r12
je 0x1400b01f8
lea rbx, [rsp + 0x80]
lea rsi, [r14 + 0x20]
cmp byte [r14 + 0x37], 0
mov r8, rsi
jns 0x1400b0198
mov r8, qword [rsi]
mov rdx, qword [rdi]
mov rcx, rbx
mov r9d, 0x20009
call fcn.140102dd0
test eax, eax
jne 0x1400b046d
lea rcx, [r14 + 0x38]
mov rdx, rbx
call fcn.1400af960
test al, al
je 0x1400b04ea
test r14, r14
je 0x1400b05dd
mov rcx, qword [r14 + 8]
test rcx, rcx
je 0x1400b01e4
mov rax, rcx
mov rcx, qword [rcx]
test rcx, rcx
jne 0x1400b01d7
jmp 0x1400b01f0
mov rax, qword [r14 + 0x10]
cmp qword [rax], r14
mov r14, rax
jne 0x1400b01e4
mov r14, rax
cmp rax, r12
jne 0x1400b0187
lea rcx, [rsp + 0x80]
call fcn.140102ef0
mov r10, qword [rsp + 0x78]
mov rax, qword [r10]
mov rcx, qword [rsp + 0x240]
mov qword [r10], rcx
mov qword [rsp + 0x240], rax
mov rax, qword [r10 + 8]
mov rcx, qword [rsp + 0x248]
mov qword [r10 + 8], rcx
mov qword [rsp + 0x248], rax
mov rax, qword [r10 + 0x10]
mov rcx, qword [rsp + 0x250]
mov qword [r10 + 0x10], rcx
mov qword [rsp + 0x250], rax
mov rax, qword [r10 + 0x18]
mov rcx, qword [rsp + 0x228]
mov qword [r10 + 0x18], rcx
mov qword [rsp + 0x228], rax
lea rdx, [r10 + 0x20]
mov rax, qword [r10 + 0x20]
mov r8, qword [rsp + 0x230]
mov qword [r10 + 0x20], r8
mov qword [rsp + 0x230], rax
mov rcx, qword [r10 + 0x28]
mov r9, qword [rsp + 0x238]
mov qword [r10 + 0x28], r9
mov qword [rsp + 0x238], rcx
test r9, r9
jne 0x1400b02a7
mov qword [r10 + 0x18], rdx
jmp 0x1400b02b3
mov qword [r8 + 0x10], rdx
mov rcx, qword [rsp + 0x238]
test rcx, rcx
jne 0x1400b02c2
mov qword [rsp + 0x228], r12
jmp 0x1400b02c6
mov qword [rax + 0x10], r12
mov sil, 1
jmp 0x1400b056c
mov rcx, qword [rsp + 0x80]
test rcx, rcx
je 0x1400afab3
mov qword [rsp + 0x88], rcx
call fcn.14024ac18
jmp 0x1400afab3
lea rax, str.vector___index_out_of_bounds
mov qword [rsp + 0x20], rax
lea rcx, str._s:_d:_assertion__s_failed:__s
lea rdx, str....._buildtools_third_partylibc_trunkinclude_vector
lea r9, str.__n___size__
mov r8d, 0x5aa
call fcn.14028c680
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, 0x23
call fcn.14028c680
mov ecx, 2
call fcn.1401ee3d0
test al, al
je 0x1400b056a
lea rdx, str.....chromeinstallerutil_registry_key_backup.cc
lea rdi, [rsp + 0xd8]
mov rcx, rdi
mov r8d, 0xc8
mov r9d, 2
call fcn.1400ee420
lea rcx, [rsp + 0xe8]
lea rdx, str.Failed_getting_name_of_subkey
mov r8d, 0x1e
call fcn.1402885e0
mov rcx, rax
mov edx, ebx
call fcn.140098cd0
lea rdx, str._for_backup__result:
mov r8d, 0x15
mov rcx, rax
call fcn.1402885e0
mov rcx, rax
mov edx, esi
call fcn.140098a90
mov rcx, rdi
call fcn.1400ee910
jmp 0x1400b056a
mov ecx, 2
call fcn.1401ee3d0
test al, al
je 0x1400b044a
lea rdx, str.....chromeinstallerutil_registry_key_backup.cc
lea rdi, [rsp + 0xd8]
mov rcx, rdi
mov r8d, 0xa8
mov r9d, 2
call fcn.1400ee420
lea rcx, [rsp + 0xe8]
lea rdx, str.Failed_backing_up_value
mov r8d, 0x18
call fcn.1402885e0
mov rcx, rax
mov edx, ebx
call fcn.140098cd0
lea rdx, str.__result:
mov r8d, 0xa
mov rcx, rax
call fcn.1402885e0
mov rcx, rax
mov edx, esi
call fcn.140098a90
mov rcx, rdi
call fcn.1400ee910
mov rcx, qword [rsp + 0x80]
test rcx, rcx
je 0x1400b056a
mov qword [rsp + 0x88], rcx
call fcn.14024ac18
jmp 0x1400b056a
mov ebp, eax
mov ecx, 2
call fcn.1401ee3d0
test al, al
je 0x1400b055d
lea rdx, str.....chromeinstallerutil_registry_key_backup.cc
lea rdi, [rsp + 0xd8]
mov rcx, rdi
mov r8d, 0xd8
mov r9d, 2
call fcn.1400ee420
lea rcx, [rsp + 0xe8]
lea rdx, str.Failed_opening_subkey__
mov r8d, 0x17
call fcn.1402885e0
mov rcx, rax
mov rdx, rsi
call fcn.1400eee50
lea rdx, str.__for_backup__result:
mov r8d, 0x16
mov rcx, rax
call fcn.1402885e0
mov rcx, rax
mov edx, ebp
call fcn.140098a90
jmp 0x1400b0555
mov ecx, 2
call fcn.1401ee3d0
test al, al
je 0x1400b055d
lea rdx, str.....chromeinstallerutil_registry_key_backup.cc
lea rdi, [rsp + 0xd8]
mov rcx, rdi
mov r8d, 0xdd
mov r9d, 2
call fcn.1400ee420
lea rcx, [rsp + 0xe8]
lea rdx, str.Failed_backing_up_subkey__
mov r8d, 0x1a
call fcn.1402885e0
mov rcx, rax
mov rdx, rsi
call fcn.1400eee50
lea rdx, [0x1403c0d7b]
mov r8d, 1
mov rcx, rax
call fcn.1402885e0
mov rcx, rdi
call fcn.1400ee910
lea rcx, [rsp + 0x80]
call fcn.140102ef0
xor esi, esi
mov rcx, qword [rsp + 0xc0]
test rcx, rcx
je 0x1400b0586
mov qword [rsp + 0xc8], rcx
call fcn.14024ac18
lea rcx, [rsp + 0x228]
mov rdx, qword [rcx + 8]
call fcn.1400b10f0
lea rax, [rsp + 0x240]
lea rcx, [rsp + 0xd8]
mov qword [rcx], rax
call fcn.140296ae0
mov rcx, qword [rsp + 0x268]
xor rcx, rsp
call fcn.14024c3c0
mov eax, esi
movaps xmm6, xmmword [rsp + 0x270]
add rsp, 0x288
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
lea rax, str.node_shouldnt_be_null
mov qword [rsp + 0x20], rax
lea rcx, str._s:_d:_assertion__s_failed:__s
lea rdx, str....._buildtools_third_partylibc_trunkinclude__tree
lea r9, str.__x___nullptr
mov r8d, 0xc2
call fcn.14028c680
lea rax, str.back___called_on_an_empty_vector
mov qword [rsp + 0x20], rax
lea rcx, str._s:_d:_assertion__s_failed:__s
lea rdx, str....._buildtools_third_partylibc_trunkinclude_vector
lea r9, str._empty__
mov r8d, 0x235
call fcn.14028c680
call fcn.140264f20
call fcn.1402885d0
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.__n__0____s___nullptr
mov r8d, 0x9ac
call fcn.14028c680
int3