Function at 0x14003fb50
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, 0x298
movaps xmmword [rsp + 0x280], xmm6
mov rdi, rdx
mov rbx, rcx
mov rax, qword [0x14037a038]
xor rax, rsp
mov qword [rsp + 0x278], rax
xor eax, eax
mov qword [rsp + 0x260], rax
xorps xmm6, xmm6
movaps xmmword [rsp + 0x250], xmm6
lea rcx, [rsp + 0x240]
movups xmmword [rcx], xmm6
mov qword [rcx - 8], rcx
lea rdx, [rsp + 0x234]
mov dword [rdx], eax
lea r8, [rsp + 0x230]
mov dword [r8], eax
lea r9, [rsp + 0x22c]
mov dword [r9], eax
lea r10, [rsp + 0x228]
mov dword [r10], eax
lea r11, [rsp + 0x224]
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 0x14003feac
mov ecx, dword [rsp + 0x230]
mov eax, dword [rsp + 0x228]
cmp ecx, eax
cmova eax, ecx
movaps xmmword [rsp + 0xd0], xmm6
mov qword [rsp + 0xe0], 0
inc eax
mov qword [rsp + 0x68], rdi
je 0x14003fc98
mov edi, eax
lea rsi, [rdi + rdi]
mov rcx, rsi
call fcn.140197388
mov qword [rsp + 0xd0], rax
mov qword [rsp + 0xd8], rax
lea rcx, [rax + rdi*2]
mov qword [rsp + 0xe0], rcx
test rax, rax
je 0x140040796
mov word [rax], 0
add rax, 2
add rsi, 0xfffffffffffffffe
jne 0x14003fc73
mov qword [rsp + 0xd8], rcx
mov rdi, qword [rsp + 0x68]
mov eax, dword [rsp + 0x22c]
test rax, rax
mov qword [rsp + 0x70], rbx
jne 0x14003fce8
cmp dword [rsp + 0x234], 0
je 0x14003fda5
lea r15, [rsp + 0xf0]
xor ebx, ebx
xorps xmm6, xmm6
lea r13, [rsp + 0xcc]
mov r12, qword [sym.imp.ADVAPI32.dll_RegEnumKeyExW]
lea rbp, [rsp + 0xd0]
lea r14, [rsp + 0x90]
jmp 0x14003ffe7
imul rsi, rax, 0x38
mov rcx, rsi
call fcn.140197388
add rsi, rax
mov qword [rsp + 0x250], rax
mov qword [rsp + 0x258], rax
mov qword [rsp + 0x260], rsi
mov esi, dword [rsp + 0x224]
cmp esi, 1
adc esi, 0
mov rcx, rsi
call fcn.140197388
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 0x140040796
mov byte [rax], 0
inc rax
dec rsi
jne 0x14003fd42
lea rax, [rsp + 0x90]
mov qword [rax + 8], rcx
lea r15, [rsp + 0xcc]
mov dword [r15], 0
xor r14d, r14d
lea r12, [rsp + 0xc8]
lea r13, [rsp + 0x268]
mov rbp, qword [sym.imp.ADVAPI32.dll_RegEnumValueW]
xorps xmm6, xmm6
jmp 0x140040524
lea rcx, [rsp + 0x90]
call fcn.140064ce0
mov rbx, qword [rsp + 0x70]
mov rax, qword [rbx]
mov rcx, qword [rsp + 0x250]
mov qword [rbx], rcx
mov qword [rsp + 0x250], rax
mov rax, qword [rbx + 8]
mov rcx, qword [rsp + 0x258]
mov qword [rbx + 8], rcx
mov qword [rsp + 0x258], rax
mov rax, qword [rbx + 0x10]
mov rcx, qword [rsp + 0x260]
mov qword [rbx + 0x10], rcx
mov qword [rsp + 0x260], rax
mov rax, qword [rbx + 0x18]
mov rcx, qword [rsp + 0x238]
mov qword [rbx + 0x18], rcx
mov qword [rsp + 0x238], rax
lea rdx, [rbx + 0x20]
mov rax, qword [rbx + 0x20]
mov r8, qword [rsp + 0x240]
mov qword [rbx + 0x20], r8
mov qword [rsp + 0x240], rax
mov rcx, qword [rbx + 0x28]
mov r9, qword [rsp + 0x248]
mov qword [rbx + 0x28], r9
mov qword [rsp + 0x248], rcx
test r9, r9
je 0x14003fe4a
mov qword [r8 + 0x10], rdx
mov rcx, qword [rsp + 0x248]
jmp 0x14003fe4e
mov qword [rbx + 0x18], rdx
test rcx, rcx
je 0x14003fe61
lea rcx, [rsp + 0x240]
mov qword [rax + 0x10], rcx
jmp 0x14003fe71
lea rax, [rsp + 0x240]
mov qword [rsp + 0x238], rax
mov sil, 1
mov rcx, qword [rsp + 0xd0]
test rcx, rcx
je 0x14003ff0d
mov rax, qword [rsp + 0xd8]
cmp rax, rcx
je 0x14003fe9d
add rax, 0xfffffffffffffffe
jne 0x14003fe8d
jmp 0x140040819
mov qword [rsp + 0xd8], rcx
call fcn.1401973c4
jmp 0x14003ff0d
mov esi, eax
mov ecx, 2
call fcn.140147580
test al, al
je 0x14003ff0b
lea rdx, str.....chromeinstallerutil_registry_key_backup.cc
lea rdi, [rsp + 0xe8]
mov rcx, rdi
mov r8d, 0x82
mov r9d, 2
call fcn.140077790
lea rcx, [rsp + 0xf8]
lea rdx, str.Failed_getting_info_of_key_to_backup__result:
mov r8d, 0x2e
call fcn.1401d1390
mov rcx, rax
mov edx, esi
call fcn.140025500
mov rcx, rdi
call fcn.140077de0
xor esi, esi
lea rcx, [rsp + 0x238]
mov rdx, qword [rcx + 8]
call fcn.140040d50
lea rcx, [rsp + 0x250]
call fcn.1401e96e0
mov rcx, qword [rsp + 0x278]
xor rcx, rsp
call fcn.140198b70
mov eax, esi
movaps xmm6, xmmword [rsp + 0x280]
add rsp, 0x298
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
movabs rax, 0xaaaaaaaaaaaaaaaa
lea rcx, [rsp + 0x90]
mov qword [rcx + 0x10], rax
movaps xmm0, xmmword [0x140307280]
movaps xmmword [rcx], xmm0
call fcn.140064a20
mov rdi, qword [rsp + 0x238]
lea rax, [rsp + 0x240]
cmp rdi, rax
je 0x14003fd93
lea rbx, [rsp + 0x90]
jmp 0x140040117
mov ecx, dword [rsp + 0xcc]
inc ecx
mov r8, qword [rsp + 0xd0]
mov rax, qword [rsp + 0xd8]
mov r9, rax
sub r9, r8
sar r9, 1
mov rdx, rcx
sub rdx, r9
jbe 0x14004091b
mov rcx, rbp
call fcn.14012a390
cmp ebx, dword [rsp + 0x234]
jae 0x14003ff59
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 0x1400407c2
mov rcx, qword [rdi]
movups xmmword [rsp + 0x30], xmm6
movups xmmword [rsp + 0x20], xmm6
mov edx, ebx
mov r9, r13
call r12
cmp eax, 0xea
je 0x14003ffa4
mov esi, eax
cmp eax, 0x103
jne 0x140040042
mov dword [rsp + 0x234], ebx
jmp 0x14003ffda
test esi, esi
jne 0x140040170
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 0x1400407c2
mov qword [rsp + 0xe8], rax
mov rcx, r15
mov rdx, r14
call fcn.140040b20
lea rcx, [rsp + 0x238]
lea rdx, [rsp + 0x268]
lea r8, [rsp + 0xe8]
call fcn.1401ea2b0
mov rdx, qword [rsp + 0x110]
lea rcx, [rsp + 0x108]
call fcn.140040d50
mov rcx, r15
call fcn.1401e96e0
mov rdx, qword [rsp + 0xb0]
lea rcx, [rsp + 0xa8]
call fcn.140040d50
mov rcx, r14
call fcn.1401e96e0
inc ebx
jmp 0x14003ffda
mov rax, rcx
mov rcx, qword [rcx]
test rcx, rcx
jne 0x1400400f8
mov rdi, rax
lea rcx, [rsp + 0x240]
cmp rax, rcx
je 0x14003fd93
lea rsi, [rdi + 0x20]
cmp byte [rdi + 0x37], 0
mov r8, rsi
jns 0x140040127
mov r8, qword [rsi]
mov rax, qword [rsp + 0x68]
mov rdx, qword [rax]
mov rcx, rbx
mov r9d, 0x20009
call fcn.140064bc0
test eax, eax
jne 0x1400401f5
lea rcx, [rdi + 0x38]
mov rdx, rbx
call fcn.14003fb50
test al, al
je 0x140040288
mov rcx, qword [rdi + 8]
test rcx, rcx
jne 0x1400400f8
mov rax, qword [rdi + 0x10]
cmp qword [rax], rdi
mov rdi, rax
jne 0x140040162
jmp 0x140040103
mov ecx, 2
call fcn.140147580
test al, al
je 0x140040281
lea rdx, str.....chromeinstallerutil_registry_key_backup.cc
lea rdi, [rsp + 0xe8]
mov rcx, rdi
mov r8d, 0xc8
mov r9d, 2
call fcn.140077790
lea rcx, [rsp + 0xf8]
lea rdx, str.Failed_getting_name_of_subkey
mov r8d, 0x1e
call fcn.1401d1390
mov rcx, rax
mov edx, ebx
call fcn.140025740
lea rdx, str._for_backup__result:
mov r8d, 0x15
mov rcx, rax
call fcn.1401d1390
mov rcx, rax
mov edx, esi
call fcn.140025500
mov rcx, rdi
call fcn.140077de0
jmp 0x140040281
mov ebp, eax
mov ecx, 2
call fcn.140147580
test al, al
je 0x140040274
lea rdx, str.....chromeinstallerutil_registry_key_backup.cc
lea rdi, [rsp + 0xe8]
mov rcx, rdi
mov r8d, 0xd8
mov r9d, 2
call fcn.140077790
lea rcx, [rsp + 0xf8]
lea rdx, str.Failed_opening_subkey__
mov r8d, 0x17
call fcn.1401d1390
mov rcx, rax
mov rdx, rsi
call fcn.140071d60
lea rdx, str.__for_backup__result:
mov r8d, 0x16
mov rcx, rax
call fcn.1401d1390
mov rcx, rax
mov edx, ebp
call fcn.140025500
mov rcx, rdi
call fcn.140077de0
lea rcx, [rsp + 0x90]
call fcn.140064ce0
xor esi, esi
jmp 0x14003fe74
mov ecx, 2
call fcn.140147580
test al, al
je 0x140040274
lea rdx, str.....chromeinstallerutil_registry_key_backup.cc
lea rdi, [rsp + 0xe8]
mov rcx, rdi
mov r8d, 0xdd
mov r9d, 2
call fcn.140077790
lea rcx, [rsp + 0xf8]
lea rdx, str.Failed_backing_up_subkey__
mov r8d, 0x1a
call fcn.1401d1390
mov rcx, rax
mov rdx, rsi
call fcn.140071d60
lea rdx, [0x14030a99f]
mov r8d, 1
mov rcx, rax
call fcn.1401d1390
jmp 0x14004026c
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, 0x278
call fcn.1401df1c0
mov rbp, qword [rsp + 0x250]
mov r14, qword [rsp + 0x258]
add rdi, rbx
mov qword [rsp + 0x250], rdi
mov qword [rsp + 0x258], r13
mov rax, qword [rsp + 0x78]
mov qword [rsp + 0x260], rax
cmp r14, rbp
je 0x140040386
mov rbx, qword [rsp + 0x70]
mov rdi, qword [rsp + 0x68]
add r14, 0xffffffffffffffc8
mov rcx, r14
call fcn.1401e9e00
cmp r14, rbp
jne 0x140040363
jmp 0x140040390
mov qword [rsp + 0x250], rdi
mov qword [rsp + 0x260], rax
mov rbx, qword [rsp + 0x70]
mov rdi, qword [rsp + 0x68]
test rbp, rbp
je 0x1400403bf
mov rcx, rbp
call fcn.1401973c4
jmp 0x1400403bf
test rbp, rbp
je 0x140040796
lea r13, [rbp + 0x38]
movups xmmword [rbp + 0x20], xmm6
movups xmmword [rbp + 0x10], xmm6
movups xmmword [rbp], xmm6
mov dword [rbp + 0x30], 0
mov qword [rsp + 0x258], r13
cmp qword [rsp + 0x250], r13
je 0x1400402f8
mov rsi, qword [rsp + 0x90]
cmp qword [rsp + 0x98], rsi
je 0x1400407c2
mov rdx, qword [rsp + 0xd0]
cmp qword [rsp + 0xd8], rdx
je 0x1400407c2
mov ebp, dword [rsp + 0xc8]
mov r12d, dword [rsp + 0x268]
mov r15d, dword [rsp + 0xcc]
test rdx, rdx
jne 0x140040426
test r12d, r12d
jne 0x140040950
lea r14, [r13 - 0x38]
mov cl, byte [r13 - 0x21]
test cl, cl
js 0x140040472
cmp r12d, 0xa
jbe 0x14004048d
movzx r9d, cl
mov eax, 0xa
mov qword [rsp + 0x38], rdx
mov qword [rsp + 0x30], r12
sub r12, rax
mov qword [rsp + 0x28], r9
mov qword [rsp + 0x20], 0
mov rcx, r14
mov rdx, rax
mov r8, r12
call fcn.14004cbf0
jmp 0x1400404b6
mov r9, qword [r13 - 0x30]
jmp 0x140040441
mov rcx, qword [r13 - 0x28]
mov rax, rcx
btr rax, 0x3f
dec rax
cmp rax, r12
jb 0x14004046c
shr rcx, 0x38
mov r14, qword [r14]
test r12, r12
je 0x1400404a2
lea r8, [r12 + r12]
mov rcx, r14
call fcn.14019a610
mov cl, byte [r13 - 0x21]
test cl, cl
js 0x1400404fc
mov eax, r12d
and al, 0x7f
mov byte [r13 - 0x21], al
mov word [r14 + r12*2], 0
mov dword [r13 - 8], r15d
add r13, 0xffffffffffffffe0
lea r8, [rsi + rbp]
mov rcx, r13
mov rdx, rsi
mov r9, rbp
call fcn.140040980
mov r14, qword [rsp + 0x80]
inc r14d
lea r15, [rsp + 0xcc]
lea r12, [rsp + 0xc8]
lea r13, [rsp + 0x268]
mov rbp, qword [sym.imp.ADVAPI32.dll_RegEnumValueW]
jmp 0x140040516
mov qword [r13 - 0x30], r12
jmp 0x1400404af
cmp esi, 0x103
jne 0x140040845
mov dword [rsp + 0x22c], r14d
cmp r14d, dword [rsp + 0x22c]
jae 0x1400407ee
mov r8, qword [rsp + 0xd0]
mov rcx, qword [rsp + 0xd8]
mov rax, rcx
sub rax, r8
shr rax, 1
mov dword [rsp + 0x268], 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 0x1400407c2
cmp rcx, r8
je 0x1400407c2
mov rcx, qword [rdi]
mov qword [rsp + 0x38], r12
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x28], r15
mov qword [rsp + 0x20], 0
mov edx, r14d
mov r9, r13
call rbp
test eax, eax
je 0x140040608
mov esi, eax
cmp eax, 0xea
jne 0x140040502
mov edx, dword [rsp + 0xc8]
mov rax, qword [rsp + 0x98]
sub rax, qword [rsp + 0x90]
cmp rax, rdx
jae 0x1400405d1
lea rcx, [rsp + 0x90]
call fcn.140129260
mov edx, dword [rsp + 0x268]
inc edx
mov rax, qword [rsp + 0xd8]
sub rax, qword [rsp + 0xd0]
sar rax, 1
sub rdx, rax
jbe 0x140040516
lea rcx, [rsp + 0xd0]
call fcn.14012a390
jmp 0x140040516
mov qword [rsp + 0x80], r14
mov rbp, qword [rsp + 0x258]
mov rax, qword [rsp + 0x260]
cmp rbp, rax
jb 0x14004039f
mov r15, qword [rsp + 0x250]
mov rsi, rbp
sub rsi, r15
sar rsi, 3
movabs rcx, 0x6db6db6db6db6db7
imul rsi, rcx
lea rbx, [rsi + 1]
movabs rdx, 0x492492492492492
cmp rbx, rdx
ja 0x140040911
sub rax, r15
sar rax, 3
imul rax, rcx
lea rcx, [rax + rax]
cmp rcx, rbx
cmova rbx, rcx
movabs rcx, 0x249249249249249
cmp rax, rcx
cmovae rbx, rdx
test rbx, rbx
je 0x1400406e2
cmp rbx, rdx
ja 0x140040916
imul rcx, rbx, 0x38
call fcn.140197388
imul rdi, rsi, 0x38
add rdi, rax
je 0x140040796
imul rcx, rbx, 0x38
add rax, rcx
lea r13, [rdi + 0x38]
movups xmmword [rdi + 0x20], xmm6
movups xmmword [rdi + 0x10], xmm6
movups xmmword [rdi], xmm6
mov dword [rdi + 0x30], 0
cmp rbp, r15
je 0x140040376
mov qword [rsp + 0x78], rax
xor ebx, ebx
mov qword [rsp + 0x88], rbp
jmp 0x14004073d
xor eax, eax
jmp 0x14004069e
js 0x140040943
mov rbp, r15
mov rcx, r12
call fcn.140197388
mov qword [rdi + rbx - 0x20], rax
mov qword [rdi + rbx - 0x18], rax
lea r15, [rax + r12]
mov qword [rdi + rbx - 0x10], r15
mov rcx, rax
mov rdx, r14
mov r8, r12
call fcn.14019a610
mov qword [rdi + rbx - 0x18], r15
mov r15, rbp
mov rbp, qword [rsp + 0x88]
mov eax, dword [rbp + rbx - 8]
mov dword [rdi + rbx - 8], eax
add rbx, 0xffffffffffffffc8
cmp rsi, r15
je 0x140040324
lea rcx, [rdi + rbx]
add rcx, 0xffffffffffffffc8
je 0x140040796
lea rsi, [rbx + rbp]
add rsi, 0xffffffffffffffc8
cmp byte [rsi + 0x17], 0
js 0x140040785
mov rax, qword [rsi + 0x10]
mov qword [rcx + 0x10], rax
movups xmm0, xmmword [rsi]
movups xmmword [rcx], xmm0
movups xmmword [rdi + rbx - 0x20], xmm6
mov qword [rdi + rbx - 0x10], 0
mov r14, qword [rbp + rbx - 0x20]
mov r12, qword [rbp + rbx - 0x18]
sub r12, r14
je 0x140040728
jmp 0x1400406e6
mov rdx, qword [rbp + rbx - 0x38]
mov r8, qword [rbp + rbx - 0x30]
call fcn.14004cf80
jmp 0x140040763
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, 0x28
call fcn.1401df1c0
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, str.__n___size__
mov r8d, 0x601
call fcn.1401df1c0
mov rcx, qword [rsp + 0x90]
test rcx, rcx
je 0x14003fca9
mov rax, qword [rsp + 0x98]
mov rdx, rax
sub rdx, rcx
dec rax
cmp rdx, rax
jbe 0x1400408ff
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, 0x44
call fcn.1401df1c0
mov ecx, 2
call fcn.140147580
test al, al
je 0x1400408c2
lea rdx, str.....chromeinstallerutil_registry_key_backup.cc
lea rdi, [rsp + 0xe8]
mov rcx, rdi
mov r8d, 0xa8
mov r9d, 2
call fcn.140077790
lea rcx, [rsp + 0xf8]
lea rdx, str.Failed_backing_up_value
mov r8d, 0x18
call fcn.1401d1390
mov rcx, rax
mov edx, r14d
call fcn.140025740
lea rdx, str.__result:
mov r8d, 0xa
mov rcx, rax
call fcn.1401d1390
mov rcx, rax
mov edx, esi
call fcn.140025500
mov rcx, rdi
call fcn.140077de0
mov rcx, qword [rsp + 0x90]
test rcx, rcx
je 0x140040281
mov rax, qword [rsp + 0x98]
mov rdx, rax
sub rdx, rcx
dec rax
cmp rdx, rax
ja 0x140040819
mov qword [rsp + 0x98], rcx
call fcn.1401973c4
jmp 0x140040281
mov qword [rsp + 0x98], rcx
call fcn.1401973c4
jmp 0x14003fca9
call fcn.1401d1330
call fcn.1401d1310
jae 0x140040939
lea rcx, [r8 + rcx*2]
cmp rax, rcx
je 0x140040931
add rax, 0xfffffffffffffffe
jne 0x140040921
jmp 0x140040819
mov qword [rsp + 0xd8], rcx
mov rdi, qword [rsp + 0x68]
jmp 0x14003ffda
lea rcx, [rbx + rdi]
add rcx, 0xffffffffffffffe0
call fcn.1401d1330
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, 0x988
call fcn.1401df1c0
int3