Function at 0x14004c2b0
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 r14, rdx
mov rbx, rcx
mov rax, qword [0x14039c038]
xor rax, rsp
mov qword [rsp + 0x268], rax
lea r13, [rsp + 0x248]
xorps xmm6, xmm6
movups xmmword [r13], xmm6
mov qword [r13 - 8], r13
xor eax, eax
lea rdx, [rsp + 0x23c]
mov dword [rdx], eax
lea r8, [rsp + 0x238]
mov dword [r8], eax
lea r9, [rsp + 0x234]
mov dword [r9], eax
lea r10, [rsp + 0x230]
mov dword [r10], eax
lea r11, [rsp + 0x22c]
mov dword [r11], eax
mov rcx, qword [r14 + 8]
movups xmmword [rsp + 0x50], xmm6
mov qword [rsp + 0x48], r11
mov qword [rsp + 0x40], r10
mov qword [rsp + 0x38], r9
mov qword [rsp + 0x28], r8
mov qword [rsp + 0x20], rdx
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 0x14004c4a0
mov esi, eax
mov ecx, 2
call fcn.140151850
test al, al
jne 0x14004c44c
lea rcx, [rsp + 0x240]
mov rdx, qword [rcx + 8]
call fcn.14004d8e0
xor edi, edi
mov rcx, qword [rsp + 0x268]
xor rcx, rsp
call fcn.1401a2750
mov eax, edi
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
mov ecx, 2
call fcn.140151850
test al, al
jne 0x14004cef0
xor edi, edi
mov rcx, qword [rsp + 0xd0]
test rcx, rcx
je 0x14004c3f3
mov qword [rsp + 0xd8], rcx
call fcn.1401a0fa4
lea rcx, [rsp + 0x240]
mov rdx, qword [rcx + 8]
call fcn.14004d8e0
test rsi, rsi
jne 0x14004c417
jmp 0x14004c397
add r15, 0xffffffffffffffc8
mov rcx, r15
call fcn.1401ee3d0
cmp r15, rsi
jne 0x14004c40b
mov rcx, rsi
call fcn.1401a0fa4
jmp 0x14004c397
mov ebp, eax
mov ecx, 2
call fcn.140151850
test al, al
jne 0x14004cc04
lea rcx, [rsp + 0x90]
call fcn.140074840
jmp 0x14004c3d7
lea rdx, str.....chromeinstallerutil_registry_key_backup.cc
lea rdi, [rsp + 0xf0]
mov rcx, rdi
mov r8d, 0x82
mov r9d, 2
call fcn.140087f20
lea rcx, [rsp + 0x100]
lea rdx, str.Failed_getting_info_of_key_to_backup__result:
mov r8d, 0x2e
call fcn.1401e2360
mov rcx, rax
mov edx, esi
call fcn.140038850
mov rcx, rdi
call fcn.140088400
jmp 0x14004c384
mov ecx, dword [rsp + 0x238]
mov eax, dword [rsp + 0x230]
cmp ecx, eax
cmova eax, ecx
movaps xmmword [rsp + 0xd0], xmm6
mov qword [rsp + 0xe0], 0
inc eax
je 0x14004c515
mov edi, eax
lea rsi, [rdi + rdi]
mov rcx, rsi
call fcn.1401a0f68
mov qword [rsp + 0xd0], rax
mov qword [rsp + 0xd8], rax
lea rcx, [rax + rdi*2]
mov qword [rsp + 0xe0], rcx
test rax, rax
je 0x14004ce50
mov word [rax], 0
add rax, 2
add rsi, 0xfffffffffffffffe
jne 0x14004c4f5
mov qword [rsp + 0xd8], rcx
mov qword [rsp + 0x88], rbx
mov eax, dword [rsp + 0x234]
test rax, rax
je 0x14004c7db
imul rsi, rax, 0x38
mov rcx, rsi
call fcn.1401a0f68
mov r15, rax
add rax, rsi
mov qword [rsp + 0x68], rax
mov esi, dword [rsp + 0x22c]
cmp esi, 1
adc esi, 0
mov rcx, rsi
call fcn.1401a0f68
mov qword [rsp + 0x90], rax
mov qword [rsp + 0x98], rax
mov rcx, rax
add rcx, rsi
mov qword [rsp + 0xa0], rcx
test rax, rax
je 0x14004ce50
mov byte [rax], 0
inc rax
dec rsi
jne 0x14004c577
lea rax, [rsp + 0x90]
mov qword [rax + 8], rcx
lea rax, [rsp + 0xcc]
mov dword [rax], 0
xor r12d, r12d
xorps xmm6, xmm6
mov rsi, r15
jmp 0x14004c6c1
mov ecx, 2
call fcn.140151850
test al, al
jne 0x14004ce7c
mov rcx, qword [rsp + 0x90]
test rcx, rcx
je 0x14004c3d7
mov qword [rsp + 0x98], rcx
call fcn.1401a0fa4
jmp 0x14004c3d7
test edi, edi
jne 0x14004c5b3
cmp r15, qword [rsp + 0x68]
jae 0x14004ccae
test r15, r15
je 0x14004ce50
movups xmmword [r15 + 0x20], xmm6
movups xmmword [r15 + 0x10], xmm6
movups xmmword [r15], xmm6
mov dword [r15 + 0x30], 0
add r15, 0x38
cmp rsi, r15
je 0x14004cf63
mov rdi, qword [rsp + 0x90]
cmp qword [rsp + 0x98], rdi
je 0x14004cbd8
mov rdx, qword [rsp + 0xd0]
cmp qword [rsp + 0xd8], rdx
je 0x14004cbd8
mov rbp, r13
mov r13d, dword [rsp + 0xc8]
mov r8d, dword [rsp + 0x258]
mov ebx, dword [rsp + 0xcc]
test rdx, rdx
jne 0x14004c677
test r8d, r8d
jne 0x14004cf9b
lea rcx, [r15 - 0x38]
call fcn.14005c220
mov dword [r15 - 8], ebx
lea rcx, [r15 - 0x20]
add r13, rdi
mov rdx, rdi
mov r8, r13
call fcn.14004d300
inc r12d
mov r13, rbp
jmp 0x14004c6b3
mov edi, eax
cmp eax, 0x103
jne 0x14004c5e8
mov dword [rsp + 0x234], r12d
cmp r12d, dword [rsp + 0x234]
jae 0x14004c7bf
mov r8, qword [rsp + 0xd0]
mov rcx, qword [rsp + 0xd8]
mov rax, rcx
sub rax, r8
shr rax, 1
mov dword [rsp + 0x258], eax
mov rax, qword [rsp + 0x90]
mov rdx, qword [rsp + 0x98]
mov r9d, edx
sub r9d, eax
mov dword [rsp + 0xc8], r9d
cmp rdx, rax
je 0x14004cbd8
cmp rcx, r8
je 0x14004cbd8
mov rcx, qword [r14 + 8]
lea rdx, [rsp + 0xc8]
mov qword [rsp + 0x38], rdx
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0xcc]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], 0
mov edx, r12d
lea r9, [rsp + 0x258]
call qword [sym.imp.ADVAPI32.dll_RegEnumValueW]
cmp eax, 0xea
jne 0x14004c69e
mov edx, dword [rsp + 0xc8]
mov rax, qword [rsp + 0x98]
sub rax, qword [rsp + 0x90]
cmp rax, rdx
jae 0x14004c785
sub rdx, rax
lea rcx, [rsp + 0x90]
call fcn.140133aa0
mov edx, dword [rsp + 0x258]
inc edx
mov rax, qword [rsp + 0xd8]
sub rax, qword [rsp + 0xd0]
sar rax, 1
cmp rax, rdx
jae 0x14004c6b3
sub rdx, rax
lea rcx, [rsp + 0xd0]
call fcn.140049b90
jmp 0x14004c6b3
mov rcx, qword [rsp + 0x90]
test rcx, rcx
je 0x14004c7e7
mov qword [rsp + 0x98], rcx
call fcn.1401a0fa4
jmp 0x14004c7e7
xor esi, esi
xor r15d, r15d
xor eax, eax
mov qword [rsp + 0x68], rax
cmp dword [rsp + 0x23c], 0
je 0x14004c81f
xor ebp, ebp
xorps xmm6, xmm6
lea r13, [rsp + 0xcc]
mov rbx, qword [sym.imp.ADVAPI32.dll_RegEnumKeyExW]
lea r12, [rsp + 0xd0]
jmp 0x14004c923
lea rcx, [rsp + 0x90]
call fcn.140074840
mov rdx, qword [rsp + 0x88]
mov rcx, qword [rdx]
mov rax, qword [rdx + 8]
mov qword [rdx], rsi
mov qword [rdx + 8], r15
mov rsi, rdx
mov rdx, qword [rsp + 0x68]
mov qword [rsi + 0x10], rdx
mov rdx, qword [rsi + 0x18]
mov r8, qword [rsp + 0x240]
mov qword [rsi + 0x18], r8
mov qword [rsp + 0x240], rdx
lea r9, [rsi + 0x20]
mov rdx, qword [rsi + 0x20]
mov r10, qword [rsp + 0x248]
mov qword [rsi + 0x20], r10
mov qword [rsp + 0x248], rdx
mov r8, qword [rsi + 0x28]
mov r11, qword [rsp + 0x250]
mov qword [rsi + 0x28], r11
mov qword [rsp + 0x250], r8
test r11, r11
je 0x14004c8b5
mov qword [r10 + 0x10], r9
mov r8, qword [rsp + 0x250]
test r8, r8
je 0x14004c8bb
mov qword [rdx + 0x10], r13
mov dil, 1
mov rsi, rcx
mov r15, rax
jmp 0x14004c3d9
mov qword [rsi + 0x18], r9
jmp 0x14004c89e
mov qword [rsp + 0x240], r13
jmp 0x14004c8a7
movaps xmm0, xmmword [0x14032ae20]
lea rcx, [rsp + 0x90]
movaps xmmword [rcx + 0x10], xmm0
movaps xmmword [rcx], xmm0
call fcn.140074740
mov rbx, qword [rsp + 0x240]
lea r13, [rsp + 0x248]
cmp rbx, r13
je 0x14004c812
lea r12, [rsp + 0x90]
jmp 0x14004cb0a
mov edi, eax
cmp eax, 0x103
jne 0x14004c9af
mov dword [rsp + 0x23c], ebp
cmp ebp, dword [rsp + 0x23c]
jae 0x14004c8c5
mov r8, qword [rsp + 0xd0]
mov rax, qword [rsp + 0xd8]
mov rcx, rax
sub rcx, r8
shr rcx, 1
mov dword [rsp + 0xcc], ecx
cmp rax, r8
je 0x14004cbd8
mov rcx, qword [r14 + 8]
movups xmmword [rsp + 0x30], xmm6
movups xmmword [rsp + 0x20], xmm6
mov edx, ebp
mov r9, r13
call rbx
cmp eax, 0xea
jne 0x14004c906
mov edx, dword [rsp + 0xcc]
inc edx
mov rax, qword [rsp + 0xd0]
mov rcx, qword [rsp + 0xd8]
sub rcx, rax
sar rcx, 1
cmp rcx, rdx
jb 0x14004c99f
jbe 0x14004c91a
lea rax, [rax + rdx*2]
mov qword [rsp + 0xd8], rax
jmp 0x14004c91a
sub rdx, rcx
mov rcx, r12
call fcn.140049b90
jmp 0x14004c91a
test edi, edi
jne 0x14004c3c5
movaps xmmword [rsp + 0x90], xmm6
mov qword [rsp + 0xa0], 0
lea rax, [rsp + 0xb0]
movups xmmword [rax], xmm6
mov qword [rsp + 0xa8], rax
mov rax, qword [rsp + 0xd0]
cmp qword [rsp + 0xd8], rax
je 0x14004cbd8
mov r12, r15
mov qword [rsp + 0xf0], rax
lea rcx, [rsp + 0xf8]
lea rdx, [rsp + 0x90]
call fcn.14004d430
lea rcx, [rsp + 0x240]
lea rdx, [rsp + 0x258]
lea r8, [rsp + 0xf0]
call fcn.1401ee9e0
mov rdx, qword [rsp + 0x118]
lea rcx, [rsp + 0x110]
call fcn.14004d8e0
mov r15, qword [rsp + 0xf8]
test r15, r15
je 0x14004ca89
mov rdi, qword [rsp + 0x100]
mov rcx, r15
cmp rdi, r15
je 0x14004ca7c
add rdi, 0xffffffffffffffc8
mov rcx, rdi
call fcn.1401ee3d0
cmp rdi, r15
jne 0x14004ca63
mov rcx, qword [rsp + 0xf8]
mov qword [rsp + 0x100], r15
call fcn.1401a0fa4
mov rdx, qword [rsp + 0xb0]
lea rcx, [rsp + 0xa8]
call fcn.14004d8e0
mov r15, qword [rsp + 0x90]
test r15, r15
je 0x14004cae1
mov rdi, qword [rsp + 0x98]
mov rcx, r15
cmp rdi, r15
je 0x14004cad4
add rdi, 0xffffffffffffffc8
mov rcx, rdi
call fcn.1401ee3d0
cmp rdi, r15
jne 0x14004cabb
mov rcx, qword [rsp + 0x90]
mov qword [rsp + 0x98], r15
call fcn.1401a0fa4
inc ebp
mov r15, r12
lea r12, [rsp + 0xd0]
jmp 0x14004c91a
mov rax, rcx
mov rcx, qword [rcx]
test rcx, rcx
jne 0x14004caf3
mov rbx, rax
cmp rax, r13
je 0x14004c812
lea rdi, [rbx + 0x20]
cmp byte [rbx + 0x37], 0
mov r8, rdi
jns 0x14004cb1a
mov r8, qword [rdi]
mov rdx, qword [r14 + 8]
mov rcx, r12
mov r9d, 0x20009
call fcn.140074150
test eax, eax
jne 0x14004c429
lea rcx, [rbx + 0x38]
mov rdx, r12
call fcn.14004c2b0
test al, al
je 0x14004cb64
test rbx, rbx
je 0x14004cc78
mov rcx, qword [rbx + 8]
test rcx, rcx
jne 0x14004caf3
mov rax, qword [rbx + 0x10]
cmp qword [rax], rbx
mov rbx, rax
jne 0x14004cb56
jmp 0x14004cafe
mov ecx, 2
call fcn.140151850
test al, al
je 0x14004c43d
lea rdx, str.....chromeinstallerutil_registry_key_backup.cc
lea rbx, [rsp + 0xf0]
mov rcx, rbx
mov r8d, 0xdd
mov r9d, 2
call fcn.140087f20
lea rcx, [rsp + 0x100]
lea rdx, str.Failed_backing_up_subkey__
mov r8d, 0x1a
call fcn.1401e2360
mov rcx, rax
mov rdx, rdi
call fcn.140088a90
lea rdx, [0x14032d26b]
mov r8d, 1
mov rcx, rax
call fcn.1401e2360
jmp 0x14004cc6b
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.1401e43d0
lea rdx, str.....chromeinstallerutil_registry_key_backup.cc
lea rbx, [rsp + 0xf0]
mov rcx, rbx
mov r8d, 0xd8
mov r9d, 2
call fcn.140087f20
lea rcx, [rsp + 0x100]
lea rdx, str.Failed_opening_subkey__
mov r8d, 0x17
call fcn.1401e2360
mov rcx, rax
mov rdx, rdi
call fcn.140088a90
lea rdx, str.__for_backup__result:
mov r8d, 0x16
mov rcx, rax
call fcn.1401e2360
mov rcx, rax
mov edx, ebp
call fcn.140038850
mov rcx, rbx
call fcn.140088400
jmp 0x14004c43d
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.1401e43d0
call fcn.1401e22e0
call fcn.1401e2300
mov rdi, r15
sub rdi, rsi
sar rdi, 3
movabs rax, 0x6db6db6db6db6db7
imul rdi, rax
lea rbx, [rdi + 1]
movabs rdx, 0x492492492492492
cmp rbx, rdx
ja 0x14004cca9
mov rcx, qword [rsp + 0x68]
sub rcx, rsi
sar rcx, 3
imul rcx, rax
lea rax, [rcx + rcx]
cmp rax, rbx
cmova rbx, rax
movabs rax, 0x249249249249249
cmp rcx, rax
cmovae rbx, rdx
test rbx, rbx
je 0x14004cd1a
cmp rbx, rdx
ja 0x14004cca4
imul rcx, rbx, 0x38
call fcn.1401a0f68
jmp 0x14004cd1c
xor eax, eax
mov qword [rsp + 0x80], rbx
imul rdi, rdi, 0x38
mov qword [rsp + 0x68], rax
add rdi, rax
je 0x14004ce50
movups xmmword [rdi + 0x20], xmm6
movups xmmword [rdi + 0x10], xmm6
movups xmmword [rdi], xmm6
mov dword [rdi + 0x30], 0
mov rax, r15
mov r13, rdi
mov qword [rsp + 0x78], rdi
mov qword [rsp + 0x70], r15
cmp r15, rsi
jne 0x14004cdda
imul rax, qword [rsp + 0x80], 0x38
add qword [rsp + 0x68], rax
mov r15, qword [rsp + 0x78]
add r15, 0x38
test rsi, rsi
je 0x14004cd81
mov rcx, rsi
call fcn.1401a0fa4
mov rsi, rdi
lea r13, [rsp + 0x248]
jmp 0x14004c61a
mov rbx, qword [rsp + 0x70]
cmp rbx, rsi
je 0x14004cd5d
add rbx, 0xffffffffffffffc8
mov rcx, rbx
call fcn.1401ee3d0
jmp 0x14004cd96
test rax, rax
je 0x14004ce50
mov r8b, byte [rcx]
mov byte [rax], r8b
inc rcx
inc rax
cmp rcx, rdx
jne 0x14004cda9
mov qword [r13 - 0x18], rax
mov eax, dword [r15 - 8]
mov dword [r13 - 8], eax
mov r15, rbp
mov r13, rdi
cmp rbp, rsi
je 0x14004cd91
mov rdi, r13
add rdi, 0xffffffffffffffc8
je 0x14004ce50
lea rbp, [r15 - 0x38]
cmp byte [r15 - 0x21], 0
js 0x14004ce3e
mov rax, qword [rbp + 0x10]
mov qword [rdi + 0x10], rax
movups xmm0, xmmword [rbp]
movups xmmword [rdi], xmm0
movups xmmword [r13 - 0x20], xmm6
mov qword [r13 - 0x10], 0
mov rbx, qword [r15 - 0x18]
sub rbx, qword [r15 - 0x20]
je 0x14004cdc7
js 0x14004cf8f
mov rcx, rbx
call fcn.1401a0f68
mov qword [r13 - 0x20], rax
mov qword [r13 - 0x18], rax
mov rcx, rax
add rcx, rbx
mov qword [r13 - 0x10], rcx
mov rcx, qword [r15 - 0x20]
mov rdx, qword [r15 - 0x18]
jmp 0x14004cdbe
mov rdx, qword [r15 - 0x38]
mov r8, qword [r15 - 0x30]
mov rcx, rdi
call fcn.14005bf60
jmp 0x14004cdfd
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.1401e43d0
lea rdx, str.....chromeinstallerutil_registry_key_backup.cc
lea rbx, [rsp + 0xf0]
mov rcx, rbx
mov r8d, 0xa8
mov r9d, 2
call fcn.140087f20
lea rcx, [rsp + 0x100]
lea rdx, str.Failed_backing_up_value
mov r8d, 0x18
call fcn.1401e2360
mov rcx, rax
mov edx, r12d
call fcn.140038a90
lea rdx, str.__result:
mov r8d, 0xa
mov rcx, rax
call fcn.1401e2360
mov rcx, rax
mov edx, edi
call fcn.140038850
mov rcx, rbx
call fcn.140088400
jmp 0x14004c5c5
lea rdx, str.....chromeinstallerutil_registry_key_backup.cc
lea rbx, [rsp + 0xf0]
mov rcx, rbx
mov r8d, 0xc8
mov r9d, 2
call fcn.140087f20
lea rcx, [rsp + 0x100]
lea rdx, str.Failed_getting_name_of_subkey
mov r8d, 0x1e
call fcn.1401e2360
mov rcx, rax
mov edx, ebp
call fcn.140038a90
lea rdx, str._for_backup__result:
mov r8d, 0x15
mov rcx, rax
call fcn.1401e2360
mov rcx, rax
mov edx, edi
call fcn.140038850
mov rcx, rbx
call fcn.140088400
jmp 0x14004c3d7
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.1401e43d0
add r13, 0xffffffffffffffe0
mov rcx, r13
call fcn.1401e2300
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.1401e43d0
int3