Function at 0x14004d7a0
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, 0x238
movaps xmmword [rsp + 0x220], xmm6
mov qword [rsp + 0x40], rdx
mov rsi, rcx
mov rax, qword [0x14036e038]
xor rax, rsp
mov qword [rsp + 0x218], rax
lea rax, [rsp + 0x208]
xorps xmm0, xmm0
movups xmmword [rax], xmm0
mov qword [rax - 8], rax
mov r15, qword [r8]
mov r12, qword [r8 + 8]
lea rcx, [rsp + 0x200]
mov qword [rsp + 0x1c8], rcx
mov qword [rsp + 0x1d0], rax
cmp r15, r12
je 0x14004d887
lea rdi, [rsp + 0x48]
lea rbx, [rsp + 0x1e0]
lea r14, [rsp + 0x1c8]
movzx ecx, byte [r15 + 0x17]
mov rax, r15
test cl, cl
jns 0x14004d833
mov rcx, qword [r15 + 8]
mov rax, qword [r15]
mov qword [rsp + 0x1e0], rax
mov qword [rsp + 0x1e8], rcx
test rcx, rcx
js 0x14004e336
je 0x14004d857
test rax, rax
je 0x14004e349
mov rcx, rdi
mov rdx, rbx
call fcn.1401528e0
mov rcx, r14
mov rdx, rdi
call fcn.140213630
cmp byte [rsp + 0x5f], 0
jns 0x14004d87e
mov rcx, qword [rsp + 0x48]
call fcn.1401ae9b8
add r15, 0x18
cmp r15, r12
jne 0x14004d820
movabs rax, 0xaaaaaaaaaaaaaaaa
lea rdi, [rsp + 0x1e0]
mov qword [rdi + 0x10], rax
movaps xmm0, xmmword [0x1402eb060]
movaps xmmword [rdi], xmm0
mov rcx, rdi
call fcn.14005f5d0
mov rbx, qword [rsp + 0x40]
cmp byte [rbx + 0x17], 0
mov r8, rbx
jns 0x14004d8c0
mov r8, qword [rbx]
mov rcx, rdi
mov rdx, rsi
mov r9d, ntohl
call fcn.14005f770
test eax, eax
je 0x14004d964
mov esi, eax
mov ecx, 2
call fcn.140162930
cmp esi, 2
je 0x14004da2e
test al, al
je 0x14004da2e
lea rdx, str.....chromeinstaller_setup_setup_util.cc
lea rdi, [rsp + 0x48]
mov rcx, rdi
mov r8d, 0x194
mov r9d, 2
call fcn.1400762b0
lea rcx, [rsp + 0x58]
lea rdx, str.Failed_to_open
mov r8d, 0xf
call fcn.1401e8d00
mov rcx, rax
mov rdx, rbx
call fcn.14006e610
lea rdx, str.__result_
mov r8d, ntohl
mov rcx, rax
call fcn.1401e8d00
mov rcx, rax
mov edx, esi
call fcn.140024ea0
mov rcx, rdi
call fcn.1400768a0
jmp 0x14004da2e
movabs rsi, 0x7fffffffffffffff
lea rax, [rsp + 0x1d0]
xorps xmm6, xmm6
movups xmmword [rax], xmm6
mov qword [rax - 8], rax
mov ecx, 0x208
call fcn.1401ae97c
lea rdi, [rsp + 0x1b0]
mov qword [rdi], rax
lea rcx, [rsi + 0x105]
mov qword [rdi + 0x10], rcx
mov qword [rdi + 8], 0x100
xor r12d, r12d
mov r8d, 0x202
mov rcx, rax
xor edx, edx
call fcn.1401b21d0
lea r14, [rsp + 0x1ac]
mov r13, qword [sym.imp.ADVAPI32.dll_RegEnumKeyExW]
xor ebp, ebp
jmp 0x14004dc56
lea rdx, [0x1402f73ca]
lea rcx, [rsp + 0x1e0]
mov r8b, 1
call fcn.14005f910
test eax, eax
je 0x14004da06
mov ecx, eax
call qword [sym.imp.KERNEL32.dll_SetLastError]
mov ecx, 2
call fcn.140162930
test al, al
jne 0x14004e3fd
cmp byte [rsp + 0x1c7], 0
jns 0x14004da1d
mov rcx, qword [rsp + 0x1b0]
call fcn.1401ae9b8
lea rcx, [rsp + 0x1c8]
mov rdx, qword [rcx + 8]
call fcn.14004fe30
lea rcx, [rsp + 0x1e0]
call fcn.14005f890
lea rcx, [rsp + 0x200]
mov rdx, qword [rcx + 8]
call fcn.14004fe30
mov rcx, qword [rsp + 0x218]
xor rcx, rsp
call fcn.1401b0080
movaps xmm6, xmmword [rsp + 0x220]
add rsp, 0x238
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
cmp qword [rsp + 0x1d8], 0
je 0x14004d9d1
lea r15, [rsp + 0x1c8]
mov rdx, qword [r15 + 8]
mov rcx, r15
call fcn.14004fe30
lea rax, [rsp + 0x1d0]
mov qword [r15], rax
xorps xmm6, xmm6
movups xmmword [r15 + 8], xmm6
xor edi, edi
lea rbx, [rsp + 0x1b0]
lea r14, [rsp + 0x1ac]
xor r12d, r12d
jmp 0x14004e047
je 0x14004dcd8
mov rcx, rdx
sub rcx, rbx
cmp rcx, r15
jae 0x14004db06
mov r8, r15
sub r8, rdx
add r8, rbx
movups xmmword [rsp + 0x28], xmm6
mov qword [rsp + 0x20], rbx
mov rcx, rdi
mov r9, rbx
call fcn.140142d30
mov qword [rsp + 0x1b8], rbx
mov al, byte [rsp + 0x1c7]
mov r13, rdi
test al, al
jns 0x14004db15
mov r13, qword [rsp + 0x1b0]
lea rcx, [rbx*2]
add rcx, r13
lea r8, [r15 + r15]
xor edx, edx
call fcn.1401b21d0
add rbx, r15
cmp byte [rsp + 0x1c7], 0
jns 0x14004e326
mov qword [rsp + 0x1b8], rbx
lea rax, [rbx*2]
add rax, r13
mov r13, qword [sym.imp.ADVAPI32.dll_RegEnumKeyExW]
jmp 0x14004dccc
mov r9, rax
and r9, rsi
dec r9
cmp r9, rdx
jae 0x14004dc50
mov rdx, qword [rsp + 0x1b8]
jmp 0x14004dc09
cmp eax, 0x103
jne 0x14004da78
xor ebp, ebp
test r12b, 1
mov r12d, 0
jne 0x14004dc56
jmp 0x14004da78
je 0x14004dcd8
mov edx, 0xa
mov eax, ecx
jmp 0x14004dace
movzx ebx, cl
mov r15, r8
sub r15, rbx
ja 0x14004db9c
mov byte [rsp + 0x1c7], r8b
mov rax, rdi
jmp 0x14004dcc8
cmp eax, 0xea
jne 0x14004db7a
movzx ecx, byte [rsp + 0x1c7]
test cl, cl
mov rax, qword [rsp + 0x1c0]
lea rdx, [rax + rax - 2]
mov r8d, 0x14
cmovs r8, rdx
lea r9, [rsi - 8]
cmp r8, r9
ja 0x14004e4c8
test cl, cl
js 0x14004db5b
mov rdx, rcx
cmp rdx, r8
cmova r8, rdx
mov r9d, 0xa
mov edx, 0xa
cmp r8, 0xb
jb 0x14004dc3b
mov rdx, r8
and rdx, 0xfffffffffffffffc
add rdx, 4
or r8, 3
cmp r8, 0xb
cmove r8, rdx
mov rdx, r8
test cl, cl
js 0x14004e4d5
cmp rdx, r9
je 0x14004dc50
mov rcx, rdi
call fcn.140042ac0
mov ebx, r12d
mov r12d, ebx
mov cl, byte [rsp + 0x1c7]
mov rax, qword [rsp + 0x1c0]
mov rdx, rax
and rdx, rsi
dec rdx
test cl, cl
mov r9d, 0xa
cmovs r9, rdx
mov r8, r9
shr r8, 0x20
neg r8
mov r8d, 0
sbb r8d, r8d
or r8d, r9d
shr rax, 0x38
mov dword [rsp + 0x1ac], r8d
test cl, cl
jns 0x14004dbae
mov rbx, qword [rsp + 0x1b8]
mov r15, r8
sub r15, rbx
ja 0x14004dac8
mov rax, qword [rsp + 0x1b0]
mov qword [rsp + 0x1b8], r8
lea rax, [rax + r8*2]
mov word [rax], 0
mov al, byte [rsp + 0x1c7]
mov r8, rdi
test al, al
jns 0x14004dce7
mov r8, qword [rsp + 0x1b0]
mov rcx, qword [rsp + 0x1e0]
movups xmmword [rsp + 0x30], xmm6
movups xmmword [rsp + 0x20], xmm6
mov edx, ebp
mov r9, r14
call r13
test eax, eax
jne 0x14004dbc9
mov ecx, dword [rsp + 0x1ac]
mov al, byte [rsp + 0x1c7]
test al, al
jns 0x14004de9e
mov rbx, qword [rsp + 0x1b8]
mov r15, rcx
sub r15, rbx
ja 0x14004dec5
mov rax, qword [rsp + 0x1b0]
mov qword [rsp + 0x1b8], rcx
lea rax, [rax + rcx*2]
mov word [rax], 0
lea rcx, [rsp + 0x1c8]
mov rdx, rdi
call fcn.14004fe80
test rax, rax
jne 0x14004de97
movzx ecx, byte [rsp + 0x1c7]
test cl, cl
cmovs rcx, qword [rsp + 0x1b8]
mov rax, qword [rsp + 0x1b0]
cmovns rax, rdi
mov qword [rsp + 0x198], rax
mov qword [rsp + 0x1a0], rcx
test rcx, rcx
js 0x14004e336
je 0x14004dda8
test rax, rax
je 0x14004e349
lea rcx, [rsp + 0x198]
call fcn.1400612e0
test al, al
je 0x14004de3e
movzx ecx, byte [rsp + 0x1c7]
test cl, cl
cmovs rcx, qword [rsp + 0x1b8]
mov rax, qword [rsp + 0x1b0]
cmovns rax, rdi
mov qword [rsp + 0x188], rax
mov qword [rsp + 0x190], rcx
test rcx, rcx
js 0x14004e336
je 0x14004de00
test rax, rax
je 0x14004e349
lea rbx, [rsp + 0x48]
mov rcx, rbx
lea rdx, [rsp + 0x188]
call fcn.1401528e0
lea rcx, [rsp + 0x200]
mov rdx, rbx
call fcn.14004fe80
mov rbx, rax
cmp byte [rsp + 0x5f], 0
jns 0x14004de39
mov rcx, qword [rsp + 0x48]
call fcn.1401ae9b8
test rbx, rbx
jne 0x14004de7f
cmp byte [rsp + 0x1c7], 0
mov rdx, rdi
jns 0x14004de53
mov rdx, qword [rsp + 0x1b0]
mov bl, 1
lea rcx, [rsp + 0x1e0]
mov r8b, 1
call fcn.14005f910
test eax, eax
je 0x14004dc53
mov ecx, 2
call fcn.140162930
test al, al
jne 0x14004e37c
lea rcx, [rsp + 0x1c8]
lea rdx, [rsp + 0x48]
mov r8, rdi
mov r9, rdi
call fcn.140151610
inc ebp
jmp 0x14004dc56
movzx ebx, al
mov r15, rcx
sub r15, rbx
ja 0x14004deb8
mov byte [rsp + 0x1c7], cl
mov rax, rdi
jmp 0x14004dd43
je 0x14004dd4c
mov edx, 0xa
jmp 0x14004dee0
je 0x14004dd4c
mov rax, qword [rsp + 0x1c0]
mov rdx, rax
and rdx, rsi
dec rdx
shr rax, 0x38
mov rcx, rdx
sub rcx, rbx
cmp rcx, r15
jae 0x14004df18
mov r8, r15
sub r8, rdx
add r8, rbx
movups xmmword [rsp + 0x28], xmm6
mov qword [rsp + 0x20], rbx
mov rcx, rdi
mov r9, rbx
call fcn.140142d30
mov qword [rsp + 0x1b8], rbx
mov al, byte [rsp + 0x1c7]
mov r13, rdi
test al, al
jns 0x14004df27
mov r13, qword [rsp + 0x1b0]
lea rcx, [rbx*2]
add rcx, r13
lea r8, [r15 + r15]
xor edx, edx
call fcn.1401b21d0
add rbx, r15
cmp byte [rsp + 0x1c7], 0
jns 0x14004e35c
mov qword [rsp + 0x1b8], rbx
lea rax, [rbx*2]
add rax, r13
mov r13, qword [sym.imp.ADVAPI32.dll_RegEnumKeyExW]
jmp 0x14004dd47
mov r9, rax
and r9, rsi
dec r9
cmp r9, rdx
jae 0x14004e043
mov rdx, qword [rsp + 0x1b8]
jmp 0x14004dffc
cmp eax, 0x103
jne 0x14004da06
xor r12d, r12d
test dil, 1
mov edi, 0
jne 0x14004e047
jmp 0x14004da06
cmp eax, 0xea
jne 0x14004df89
cmp dword [rsp + 0x1ac], 0x7ffe
ja 0x14004da06
movzx ecx, byte [rsp + 0x1c7]
test cl, cl
mov rax, qword [rsp + 0x1c0]
lea rdx, [rax + rax - 2]
mov r8d, 0x14
cmovs r8, rdx
lea r9, [rsi - 8]
cmp r8, r9
ja 0x14004e4c8
test cl, cl
js 0x14004df6d
mov rdx, rcx
cmp rdx, r8
cmova r8, rdx
mov r9d, 0xa
mov edx, 0xa
cmp r8, 0xb
jb 0x14004e02e
mov rdx, r8
and rdx, 0xfffffffffffffffc
add rdx, 4
or r8, 3
cmp r8, 0xb
cmove r8, rdx
mov rdx, r8
test cl, cl
js 0x14004e4e3
cmp rdx, r9
je 0x14004e043
mov rcx, rbx
call fcn.140042ac0
mov ecx, edi
mov edi, ecx
mov cl, byte [rsp + 0x1c7]
mov rax, qword [rsp + 0x1c0]
mov rdx, rax
and rdx, rsi
dec rdx
test cl, cl
mov r8d, 0xa
cmovs r8, rdx
cmp r8, 0x8000
movsx r8d, r8w
mov r9d, 0x7fff
cmovae r8d, r9d
shr rax, 0x38
mov dword [rsp + 0x1ac], r8d
test cl, cl
jns 0x14004e1a9
mov rbp, qword [rsp + 0x1b8]
mov r13, r8
sub r13, rbp
ja 0x14004e1fd
mov rax, qword [rsp + 0x1b0]
mov qword [rsp + 0x1b8], r8
lea rax, [rax + r8*2]
mov word [rax], 0
mov al, byte [rsp + 0x1c7]
mov r8, rbx
test al, al
jns 0x14004e0d7
mov r8, qword [rsp + 0x1b0]
mov rcx, qword [rsp + 0x1e0]
movups xmmword [rsp + 0x30], xmm6
movups xmmword [rsp + 0x20], xmm6
mov edx, r12d
mov r9, r14
call qword [sym.imp.ADVAPI32.dll_RegEnumValueW]
test eax, eax
jne 0x14004dfab
mov ecx, dword [rsp + 0x1ac]
mov al, byte [rsp + 0x1c7]
test al, al
jns 0x14004e1c4
mov rbp, qword [rsp + 0x1b8]
mov r13, rcx
sub r13, rbp
ja 0x14004e287
mov rax, qword [rsp + 0x1b0]
mov qword [rsp + 0x1b8], rcx
lea rax, [rax + rcx*2]
mov word [rax], 0
mov rcx, r15
mov rdx, rbx
call fcn.14004fe80
test rax, rax
jne 0x14004e1a1
cmp byte [rsp + 0x1c7], 0
mov rdx, rbx
jns 0x14004e165
mov rdx, qword [rsp + 0x1b0]
lea rcx, [rsp + 0x1e0]
call fcn.14005fd30
mov cl, 1
test eax, eax
je 0x14004e045
mov ecx, 2
call fcn.140162930
test al, al
jne 0x14004e457
mov rcx, r15
lea rdx, [rsp + 0x48]
mov r8, rbx
mov r9, rbx
call fcn.140151610
inc r12d
jmp 0x14004e047
movzx ebp, cl
mov r13, r8
sub r13, rbp
ja 0x14004e1de
mov byte [rsp + 0x1c7], r8b
mov rax, rbx
jmp 0x14004e0b8
movzx ebp, al
mov r13, rcx
sub r13, rbp
ja 0x14004e1ed
mov byte [rsp + 0x1c7], cl
mov rax, rbx
jmp 0x14004e137
je 0x14004e0c8
mov edx, 0xa
mov eax, ecx
jmp 0x14004e203
je 0x14004e140
mov edx, 0xa
jmp 0x14004e2a2
je 0x14004e0c8
mov rcx, rdx
sub rcx, rbp
cmp rcx, r13
jae 0x14004e23b
mov r8, r13
sub r8, rdx
add r8, rbp
movups xmmword [rsp + 0x28], xmm6
mov qword [rsp + 0x20], rbp
mov rcx, rbx
mov r9, rbp
call fcn.140142d30
mov qword [rsp + 0x1b8], rbp
mov al, byte [rsp + 0x1c7]
mov r15, rbx
test al, al
jns 0x14004e24a
mov r15, qword [rsp + 0x1b0]
lea rcx, [r15 + rbp*2]
lea r8, [r13*2]
xor edx, edx
call fcn.1401b21d0
add rbp, r13
cmp byte [rsp + 0x1c7], 0
jns 0x14004e36c
mov qword [rsp + 0x1b8], rbp
lea rax, [r15 + rbp*2]
lea r15, [rsp + 0x1c8]
jmp 0x14004e0bc
je 0x14004e140
mov rax, qword [rsp + 0x1c0]
mov rdx, rax
and rdx, rsi
dec rdx
shr rax, 0x38
mov rcx, rdx
sub rcx, rbp
cmp rcx, r13
jae 0x14004e2da
mov r8, r13
sub r8, rdx
add r8, rbp
movups xmmword [rsp + 0x28], xmm6
mov qword [rsp + 0x20], rbp
mov rcx, rbx
mov r9, rbp
call fcn.140142d30
mov qword [rsp + 0x1b8], rbp
mov al, byte [rsp + 0x1c7]
mov r15, rbx
test al, al
jns 0x14004e2e9
mov r15, qword [rsp + 0x1b0]
lea rcx, [r15 + rbp*2]
lea r8, [r13*2]
xor edx, edx
call fcn.1401b21d0
add rbp, r13
cmp byte [rsp + 0x1c7], 0
jns 0x14004e3ed
mov qword [rsp + 0x1b8], rbp
lea rax, [r15 + rbp*2]
lea r15, [rsp + 0x1c8]
jmp 0x14004e13b
mov eax, ebx
and al, 0x7f
mov byte [rsp + 0x1c7], al
jmp 0x14004db44
lea rcx, [0x1402f4f7c]
lea rdx, str....._third_partylibc_srcinclude_string_view:314:_assertion___len___static_cast_size_type__numeric_limits_difference_type_::max____failed:_string_view::string_view__CharT___size_t_:_length_does_not_fit_in_difference_type_n
call fcn.1401ec0b0
lea rcx, [0x1402f4f7c]
lea rdx, str....._third_partylibc_srcinclude_string_view:316:_assertion___len__0____s___nullptr_failed:_string_view::string_view__CharT___size_t_:_received_nullptr_n
call fcn.1401ec0b0
mov eax, ebx
and al, 0x7f
mov byte [rsp + 0x1c7], al
jmp 0x14004df56
mov eax, ebp
and al, 0x7f
mov byte [rsp + 0x1c7], al
jmp 0x14004e276
lea rbx, [rsp + 0x48]
mov rcx, rbx
lea rdx, str.....chromeinstaller_setup_setup_util.cc
mov r8d, 0x1cf
mov r9d, 2
call fcn.1400762b0
mov r8d, 0x18
lea rcx, [rsp + 0x58]
lea rdx, str.Failed_to_delete_subkey
call fcn.1401e8d00
mov rcx, rax
mov rdx, rdi
call fcn.14006e610
mov r8d, ntohl
mov rcx, rax
lea rdx, str._under_path
call fcn.1401e8d00
mov rcx, rax
mov rdx, qword [rsp + 0x40]
call fcn.14006e610
mov rcx, rbx
call fcn.1400768a0
jmp 0x14004de7f
mov eax, ebp
and al, 0x7f
mov byte [rsp + 0x1c7], al
jmp 0x14004e315
call sub.KERNEL32.dll_GetLastError
mov dword [rsp + 0x20], eax
lea rdx, str.....chromeinstaller_setup_setup_util.cc
lea rsi, [rsp + 0x48]
mov rcx, rsi
mov r8d, 0x1de
mov r9d, 2
call fcn.14021aa00
lea rcx, [rsp + 0x58]
lea rdx, str.Failed_to_delete_key
mov r8d, 0x15
call fcn.1401e8d00
mov rcx, rax
mov rdx, qword [rsp + 0x40]
call fcn.14006e610
mov rcx, rsi
call fcn.14021aa80
jmp 0x14004da06
lea r13, [rsp + 0x48]
mov rcx, r13
lea rdx, str.....chromeinstaller_setup_setup_util.cc
mov r8d, 0x20c
mov r9d, 2
call fcn.1400762b0
mov r8d, 0x17
lea rcx, [rsp + 0x58]
lea rdx, str.Failed_to_delete_value
call fcn.1401e8d00
mov rcx, rax
mov rdx, rbx
call fcn.14006e610
mov r8d, 8
mov rcx, rax
lea rdx, str._in_key
call fcn.1401e8d00
mov rcx, rax
mov rdx, qword [rsp + 0x40]
call fcn.14006e610
mov rcx, r13
call fcn.1400768a0
jmp 0x14004e18e
lea rcx, [rsp + 0x1b0]
call fcn.1401e8c40
and rax, rsi
dec rax
mov r9, rax
jmp 0x14004dc43
and rax, rsi
dec rax
mov r9, rax
jmp 0x14004e036