Function at 0x1400c07a0
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 r15, rcx
mov rax, qword [0x14044f038]
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 r13, [rsp + 0x230]
movups xmmword [r13], xmm6
mov qword [r13 - 8], r13
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 + 8]
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
je 0x1400c0894
mov ebx, eax
mov ecx, 2
call fcn.140209bc0
test al, al
jne 0x1400c122f
lea rcx, [rsp + 0x228]
mov rdx, qword [rcx + 8]
call fcn.1400c1ea0
xor esi, esi
jmp 0x1400c1386
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 0x1400c0909
mov esi, eax
lea rbx, [rsi + rsi]
mov rcx, rbx
call fcn.140258e18
mov qword [rsp + 0xc0], rax
mov qword [rsp + 0xc8], rax
lea rcx, [rax + rsi*2]
mov qword [rsp + 0xd0], rcx
test rax, rax
je 0x1400c13b4
mov word [rax], 0
add rax, 2
add rbx, 0xfffffffffffffffe
jne 0x1400c08e9
mov qword [rsp + 0xc8], rcx
mov eax, dword [rsp + 0x21c]
test rax, rax
mov qword [rsp + 0x78], r15
je 0x1400c0dcc
imul r14, rax, 0x38
mov rcx, r14
call fcn.140258e18
mov rsi, rax
add r14, rax
mov qword [rsp + 0x240], rax
mov qword [rsp + 0x248], rax
mov qword [rsp + 0x250], r14
mov r14d, dword [rsp + 0x214]
cmp r14d, 1
adc r14d, 0
mov rcx, r14
call fcn.140258e18
mov qword [rsp + 0x80], rax
mov qword [rsp + 0x88], rax
mov rcx, rax
add rcx, r14
mov qword [rsp + 0x90], rcx
test rax, rax
je 0x1400c13b4
mov byte [rax], 0
inc rax
dec r14
jne 0x1400c097e
lea rbx, [rsp + 0x80]
mov qword [rbx + 8], rcx
lea r15, [rsp + 0xbc]
mov dword [r15], 0
xor r14d, r14d
xorps xmm6, xmm6
mov r12, rsi
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 0x1400c13e0
cmp rcx, r8
je 0x1400c13e0
mov rcx, qword [rdi + 8]
lea rdx, [rsp + 0xb8]
mov qword [rsp + 0x38], rdx
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x28], r15
mov qword [rsp + 0x20], 0
mov edx, r14d
lea r9, [rsp + 0x258]
call qword [sym.imp.ADVAPI32.dll_RegEnumValueW]
cmp eax, 0xea
je 0x1400c0a55
mov ebp, eax
cmp eax, 0x103
jne 0x1400c0ac0
mov dword [rsp + 0x21c], r14d
jmp 0x1400c0aad
mov edx, dword [rsp + 0xb8]
mov rax, qword [rsp + 0x88]
sub rax, qword [rsp + 0x80]
cmp rax, rdx
jae 0x1400c0a7c
sub rdx, rax
mov rcx, rbx
call fcn.1401d6760
mov edx, dword [rsp + 0x258]
inc edx
mov rax, qword [rsp + 0xc8]
sub rax, qword [rsp + 0xc0]
sar rax, 1
cmp rax, rdx
jae 0x1400c0aad
sub rdx, rax
lea rcx, [rsp + 0xc0]
call fcn.1400be1b0
cmp r14d, dword [rsp + 0x21c]
jb 0x1400c09b6
jmp 0x1400c0db0
test ebp, ebp
jne 0x1400c1155
mov rax, qword [rsp + 0x250]
cmp r12, rax
jae 0x1400c0b0a
test r12, r12
je 0x1400c13b4
lea rax, [r12 + 0x38]
movups xmmword [r12 + 0x20], xmm6
movups xmmword [r12 + 0x10], xmm6
movups xmmword [r12], xmm6
mov dword [r12 + 0x30], 0
mov qword [rsp + 0x248], rax
jmp 0x1400c0d06
mov rbx, r12
sub rbx, rsi
sar rbx, 3
movabs rcx, 0x6db6db6db6db6db7
imul rbx, rcx
lea r13, [rbx + 1]
movabs rdx, 0x492492492492492
cmp r13, rdx
ja 0x1400c1542
sub rax, rsi
sar rax, 3
imul rax, rcx
lea rcx, [rax + rax]
cmp rcx, r13
cmova r13, rcx
movabs rcx, 0x249249249249249
cmp rax, rcx
cmovae r13, rdx
test r13, r13
jne 0x1400c0b69
xor eax, eax
jmp 0x1400c0b7b
cmp r13, rdx
ja 0x1400c1547
imul rcx, r13, 0x38
call fcn.140258e18
imul r15, rbx, 0x38
add r15, rax
je 0x1400c13b4
imul rcx, r13, 0x38
add rax, rcx
lea rcx, [r15 + 0x38]
movups xmmword [r15 + 0x20], xmm6
movups xmmword [r15 + 0x10], xmm6
movups xmmword [r15], xmm6
mov dword [r15 + 0x30], 0
cmp r12, rsi
jne 0x1400c0bcb
mov qword [rsp + 0x240], r15
mov qword [rsp + 0x248], rcx
mov qword [rsp + 0x250], rax
jmp 0x1400c0cce
mov qword [rsp + 0x70], rcx
mov qword [rsp + 0x68], rax
mov r13, r15
add r13, 0xffffffffffffffc8
je 0x1400c13b4
lea rbx, [r12 - 0x38]
cmp byte [r12 - 0x21], 0
js 0x1400c0c80
mov rax, qword [rbx + 0x10]
mov qword [r13 + 0x10], rax
movups xmm0, xmmword [rbx]
movups xmmword [r13], xmm0
movups xmmword [r15 - 0x20], xmm6
mov qword [r15 - 0x10], 0
mov rbp, qword [r12 - 0x18]
sub rbp, qword [r12 - 0x20]
je 0x1400c0c66
js 0x1400c154c
mov rcx, rbp
call fcn.140258e18
mov qword [r15 - 0x20], rax
mov qword [r15 - 0x18], rax
mov rcx, rax
add rcx, rbp
mov qword [r15 - 0x10], rcx
mov rcx, qword [r12 - 0x20]
mov rdx, qword [r12 - 0x18]
cmp rcx, rdx
je 0x1400c0c62
test rax, rax
je 0x1400c13b4
mov r8b, byte [rcx]
mov byte [rax], r8b
inc rcx
inc rax
jmp 0x1400c0c46
mov qword [r15 - 0x18], rax
mov eax, dword [r12 - 8]
mov dword [r15 - 8], eax
mov r12, rbx
mov r15, r13
cmp rbx, rsi
jne 0x1400c0bd8
jmp 0x1400c0c97
mov rdx, qword [r12 - 0x38]
mov r8, qword [r12 - 0x30]
mov rcx, r13
call fcn.1400e4530
jmp 0x1400c0c03
mov rsi, qword [rsp + 0x240]
mov r15, qword [rsp + 0x248]
mov qword [rsp + 0x240], r13
mov rax, qword [rsp + 0x70]
mov qword [rsp + 0x248], rax
mov rax, qword [rsp + 0x68]
mov qword [rsp + 0x250], rax
cmp r15, rsi
jne 0x1400c0cd8
lea r13, [rsp + 0x230]
jmp 0x1400c0cf1
lea r13, [rsp + 0x230]
add r15, 0xffffffffffffffc8
mov rcx, r15
call fcn.1402a9010
cmp r15, rsi
jne 0x1400c0ce0
test rsi, rsi
lea rbx, [rsp + 0x80]
je 0x1400c0d06
mov rcx, rsi
call fcn.140258e54
mov rsi, qword [rsp + 0x240]
mov r12, qword [rsp + 0x248]
cmp rsi, r12
je 0x1400c1516
mov r15, qword [rsp + 0x80]
cmp qword [rsp + 0x88], r15
je 0x1400c13e0
mov rdx, qword [rsp + 0xc0]
cmp qword [rsp + 0xc8], rdx
je 0x1400c13e0
mov rbp, r13
mov r13d, dword [rsp + 0xb8]
mov r8d, dword [rsp + 0x258]
mov eax, dword [rsp + 0xbc]
mov dword [rsp + 0x68], eax
test rdx, rdx
jne 0x1400c0d77
test r8d, r8d
jne 0x1400c1558
lea rcx, [r12 - 0x38]
call fcn.1400e47e0
mov eax, dword [rsp + 0x68]
mov dword [r12 - 8], eax
lea rcx, [r12 - 0x20]
add r13, r15
mov rdx, r15
mov r8, r13
call fcn.1400c18c0
inc r14d
mov r13, rbp
lea r15, [rsp + 0xbc]
jmp 0x1400c0aad
mov rcx, qword [rsp + 0x80]
test rcx, rcx
je 0x1400c0dd1
mov qword [rsp + 0x88], rcx
call fcn.140258e54
jmp 0x1400c0dd1
xor r12d, r12d
xor esi, esi
cmp dword [rsp + 0x224], 0
je 0x1400c10bb
lea rsi, [rsp + 0xa0]
lea r14, [rsp + 0xe0]
xor ebx, ebx
xorps xmm6, xmm6
lea r13, [rsp + 0xbc]
mov r12, qword [sym.imp.ADVAPI32.dll_RegEnumKeyExW]
lea rbp, [rsp + 0xc0]
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 0x1400c13e0
mov rcx, qword [rdi + 8]
movups xmmword [rsp + 0x30], xmm6
movups xmmword [rsp + 0x20], xmm6
mov edx, ebx
mov r9, r13
call r12
cmp eax, 0xea
je 0x1400c0e64
mov r15d, eax
cmp eax, 0x103
jne 0x1400c0eb5
mov dword [rsp + 0x224], ebx
jmp 0x1400c0ea3
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 0x1400c0e95
sub rdx, rcx
mov rcx, rbp
call fcn.1400be1b0
jmp 0x1400c0ea3
jbe 0x1400c0ea3
lea rax, [rax + rdx*2]
mov qword [rsp + 0xc8], rax
cmp ebx, dword [rsp + 0x224]
jb 0x1400c0e0b
jmp 0x1400c0ff5
test r15d, r15d
jne 0x1400c11a9
movaps xmmword [rsp + 0x80], xmm6
mov qword [rsp + 0x90], 0
movups xmmword [rsi], xmm6
mov qword [rsp + 0x98], rsi
mov rax, qword [rsp + 0xc0]
cmp qword [rsp + 0xc8], rax
je 0x1400c13e0
mov rbp, rsi
mov qword [rsp + 0xd8], rax
mov rcx, r14
lea rdx, [rsp + 0x80]
call fcn.1400c19f0
lea rcx, [rsp + 0x228]
lea rdx, [rsp + 0x258]
lea r8, [rsp + 0xd8]
call fcn.1402a9620
mov rdx, qword [rsp + 0x100]
lea rcx, [rsp + 0xf8]
call fcn.1400c1ea0
mov r14, qword [rsp + 0xe0]
test r14, r14
je 0x1400c0f83
mov r15, qword [rsp + 0xe8]
mov rcx, r14
cmp r15, r14
je 0x1400c0f76
add r15, 0xffffffffffffffc8
mov rcx, r15
call fcn.1402a9010
cmp r15, r14
jne 0x1400c0f5d
mov rcx, qword [rsp + 0xe0]
mov qword [rsp + 0xe8], r14
call fcn.140258e54
mov rdx, qword [rsp + 0xa0]
lea rcx, [rsp + 0x98]
call fcn.1400c1ea0
mov r14, qword [rsp + 0x80]
test r14, r14
je 0x1400c0fdb
mov r15, qword [rsp + 0x88]
mov rcx, r14
cmp r15, r14
je 0x1400c0fce
add r15, 0xffffffffffffffc8
mov rcx, r15
call fcn.1402a9010
cmp r15, r14
jne 0x1400c0fb5
mov rcx, qword [rsp + 0x80]
mov qword [rsp + 0x88], r14
call fcn.140258e54
inc ebx
lea r14, [rsp + 0xe0]
mov rsi, rbp
lea rbp, [rsp + 0xc0]
jmp 0x1400c0ea3
movaps xmm0, xmmword [0x1403db8a0]
lea rcx, [rsp + 0x80]
movaps xmmword [rcx + 0x10], xmm0
movaps xmmword [rcx], xmm0
call fcn.1400fcbe0
mov rsi, qword [rsp + 0x228]
lea r13, [rsp + 0x230]
cmp rsi, r13
je 0x1400c109e
lea r14, [rsp + 0x80]
lea rbx, [rsi + 0x20]
cmp byte [rsi + 0x37], 0
mov r8, rbx
jns 0x1400c103d
mov r8, qword [rbx]
mov rdx, qword [rdi + 8]
mov rcx, r14
mov r9d, 0x20009
call fcn.1400fc600
test eax, eax
jne 0x1400c1283
lea rcx, [rsi + 0x38]
mov rdx, r14
call fcn.1400c07a0
test al, al
je 0x1400c12ff
test rsi, rsi
je 0x1400c14ea
mov rcx, qword [rsi + 8]
test rcx, rcx
je 0x1400c108a
mov rax, rcx
mov rcx, qword [rcx]
test rcx, rcx
jne 0x1400c107d
jmp 0x1400c1096
mov rax, qword [rsi + 0x10]
cmp qword [rax], rsi
mov rsi, rax
jne 0x1400c108a
mov rsi, rax
cmp rax, r13
jne 0x1400c102d
lea rcx, [rsp + 0x80]
call fcn.1400fcce0
mov rsi, qword [rsp + 0x240]
mov r12, qword [rsp + 0x248]
mov r10, qword [rsp + 0x78]
mov rax, qword [r10]
mov qword [r10], rsi
mov qword [rsp + 0x240], rax
mov rax, qword [r10 + 8]
mov qword [r10 + 8], r12
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
je 0x1400c118a
mov qword [r8 + 0x10], rdx
mov rcx, qword [rsp + 0x238]
jmp 0x1400c118e
mov ecx, 2
call fcn.140209bc0
test al, al
jne 0x1400c140c
mov rcx, qword [rsp + 0x80]
test rcx, rcx
je 0x1400c131e
mov qword [rsp + 0x88], rcx
call fcn.140258e54
jmp 0x1400c131e
mov qword [r10 + 0x18], rdx
test rcx, rcx
je 0x1400c1199
mov qword [rax + 0x10], r13
jmp 0x1400c11a1
mov qword [rsp + 0x228], r13
mov sil, 1
jmp 0x1400c1320
mov ecx, 2
call fcn.140209bc0
test al, al
je 0x1400c131e
lea rdx, str.....chromeinstallerutil_registry_key_backup.cc
lea rsi, [rsp + 0xd8]
mov rcx, rsi
mov r8d, 0xc8
mov r9d, 2
call fcn.140110e20
lea rcx, [rsp + 0xe8]
lea rdx, str.Failed_getting_name_of_subkey
mov r8d, 0x1e
call fcn.14029aae0
mov rcx, rax
mov edx, ebx
call fcn.1400aa1b0
lea rdx, str._for_backup__result:
mov r8d, 0x15
mov rcx, rax
call fcn.14029aae0
mov rcx, rax
mov edx, r15d
call fcn.1400a9f70
mov rcx, rsi
call fcn.140111310
jmp 0x1400c131e
lea rdx, str.....chromeinstallerutil_registry_key_backup.cc
lea rsi, [rsp + 0xd8]
mov rcx, rsi
mov r8d, 0x82
mov r9d, 2
call fcn.140110e20
lea rcx, [rsp + 0xe8]
lea rdx, str.Failed_getting_info_of_key_to_backup__result:
mov r8d, 0x2e
call fcn.14029aae0
mov rcx, rax
mov edx, ebx
call fcn.1400a9f70
mov rcx, rsi
call fcn.140111310
jmp 0x1400c087c
mov ebp, eax
mov ecx, 2
call fcn.140209bc0
test al, al
je 0x1400c1311
lea rdx, str.....chromeinstallerutil_registry_key_backup.cc
lea rsi, [rsp + 0xd8]
mov rcx, rsi
mov r8d, 0xd8
mov r9d, 2
call fcn.140110e20
lea rcx, [rsp + 0xe8]
lea rdx, str.Failed_opening_subkey__
mov r8d, 0x17
call fcn.14029aae0
mov rcx, rax
mov rdx, rbx
call fcn.1401119a0
lea rdx, str.__for_backup__result:
mov r8d, 0x16
mov rcx, rax
call fcn.14029aae0
mov rcx, rax
mov edx, ebp
call fcn.1400a9f70
jmp 0x1400c14dd
mov ecx, 2
call fcn.140209bc0
test al, al
jne 0x1400c1480
lea rcx, [rsp + 0x80]
call fcn.1400fcce0
xor esi, esi
mov rcx, qword [rsp + 0xc0]
test rcx, rcx
je 0x1400c133a
mov qword [rsp + 0xc8], rcx
call fcn.140258e54
mov rdi, qword [rsp + 0x240]
lea rcx, [rsp + 0x228]
mov rdx, qword [rcx + 8]
call fcn.1400c1ea0
test rdi, rdi
je 0x1400c1386
mov rbx, qword [rsp + 0x248]
cmp rbx, rdi
je 0x1400c137e
add rbx, 0xffffffffffffffc8
mov rcx, rbx
call fcn.1402a9010
cmp rbx, rdi
jne 0x1400c1365
mov rdi, qword [rsp + 0x240]
mov rcx, rdi
call fcn.140258e54
mov rcx, qword [rsp + 0x268]
xor rcx, rsp
call fcn.14025a610
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.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.14029ef60
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, 0x5b5
call fcn.14029ef60
lea rdx, str.....chromeinstallerutil_registry_key_backup.cc
lea rsi, [rsp + 0xd8]
mov rcx, rsi
mov r8d, 0xa8
mov r9d, 2
call fcn.140110e20
lea rcx, [rsp + 0xe8]
lea rdx, str.Failed_backing_up_value
mov r8d, 0x18
call fcn.14029aae0
mov rcx, rax
mov edx, r14d
call fcn.1400aa1b0
lea rdx, str.__result:
mov r8d, 0xa
mov rcx, rax
call fcn.14029aae0
mov rcx, rax
mov edx, ebp
call fcn.1400a9f70
mov rcx, rsi
call fcn.140111310
jmp 0x1400c1167
lea rdx, str.....chromeinstallerutil_registry_key_backup.cc
lea rsi, [rsp + 0xd8]
mov rcx, rsi
mov r8d, 0xdd
mov r9d, 2
call fcn.140110e20
lea rcx, [rsp + 0xe8]
lea rdx, str.Failed_backing_up_subkey__
mov r8d, 0x1a
call fcn.14029aae0
mov rcx, rax
mov rdx, rbx
call fcn.1401119a0
lea rdx, [0x1403de01b]
mov r8d, 1
mov rcx, rax
call fcn.14029aae0
mov rcx, rsi
call fcn.140111310
jmp 0x1400c1311
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, 0xcf
call fcn.14029ef60
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, 0x240
call fcn.14029ef60
call fcn.14029aa80
call fcn.14029aa60
add r15, 0xffffffffffffffe0
mov rcx, r15
call fcn.14029aa80
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, 0x91f
call fcn.14029ef60
int3