Function at 0x14004fd10
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 [0x14037a038]
xor rax, rsp
mov qword [rsp + 0x218], rax
lea rax, [rsp + 0x200]
xorps xmm0, xmm0
movups xmmword [rax], xmm0
mov qword [rax - 8], rax
mov r15, qword [r8]
mov r12, qword [r8 + 8]
lea rcx, [rsp + 0x1f8]
mov qword [rsp + 0x1c8], rcx
mov qword [rsp + 0x1d0], rax
cmp r15, r12
je 0x14004fe05
lea rdi, [rsp + 0x48]
lea rbx, [rsp + 0x1e0]
lea r14, [rsp + 0x1c8]
jmp 0x14004fdf4
mov rax, qword [r15 + 8]
mov rcx, qword [r15]
mov qword [rsp + 0x1e0], rcx
mov qword [rsp + 0x1e8], rax
test rax, rax
js 0x140050b2f
test rcx, rcx
jne 0x14004fdc4
test rax, rax
jne 0x140050b5b
mov rcx, rdi
mov rdx, rbx
call fcn.140133fe0
mov rcx, r14
mov rdx, rdi
call fcn.1402078f0
cmp byte [rsp + 0x5f], 0
jns 0x14004fdeb
mov rcx, qword [rsp + 0x48]
call fcn.1401973c4
add r15, 0x18
cmp r15, r12
je 0x14004fe05
movzx eax, byte [r15 + 0x17]
test al, al
js 0x14004fd96
and eax, 0x7f
mov rcx, r15
jmp 0x14004fd9d
movabs rax, 0xaaaaaaaaaaaaaaaa
lea rdi, [rsp + 0x1e0]
mov qword [rdi + 0x10], rax
movaps xmm0, xmmword [0x140307280]
movaps xmmword [rdi], xmm0
mov rcx, rdi
call fcn.140064a20
mov rbx, qword [rsp + 0x40]
cmp byte [rbx + 0x17], 0
mov r8, rbx
jns 0x14004fe3e
mov r8, qword [rbx]
mov rcx, rdi
mov rdx, rsi
mov r9d, ntohl
call fcn.140064bc0
test eax, eax
je 0x14004fee2
mov esi, eax
mov ecx, 2
call fcn.140147580
cmp esi, 2
je 0x14004ffa9
test al, al
je 0x14004ffa9
lea rdx, str.....chromeinstaller_setup_setup_util.cc
lea rdi, [rsp + 0x48]
mov rcx, rdi
mov r8d, 0x194
mov r9d, 2
call fcn.140077790
lea rcx, [rsp + 0x58]
lea rdx, str.Failed_to_open
mov r8d, 0xf
call fcn.1401d1390
mov rcx, rax
mov rdx, rbx
call fcn.140071d60
lea rdx, str.__result_
mov r8d, ntohl
mov rcx, rax
call fcn.1401d1390
mov rcx, rax
mov edx, esi
call fcn.140025500
mov rcx, rdi
call fcn.140077de0
jmp 0x14004ffa9
movabs r15, 0x7fffffffffffffff
lea rax, [rsp + 0x1d0]
xorps xmm6, xmm6
movups xmmword [rax], xmm6
mov qword [rax - 8], rax
mov ecx, 0x208
call fcn.140197388
lea rdi, [rsp + 0x1b0]
mov qword [rdi], rax
lea rcx, [r15 + 0x105]
mov qword [rdi + 0x10], rcx
mov qword [rdi + 8], 0x100
mov r8d, 0x202
mov rcx, rax
xor edx, edx
call fcn.14019acc0
lea r14, [rsp + 0x1ac]
lea r12, [rsp + 0x48]
xor esi, esi
xor ebx, ebx
jmp 0x1400501a6
lea rdx, [0x1403094ca]
lea rcx, [rsp + 0x1e0]
mov r8b, 1
call fcn.140064d60
test eax, eax
je 0x14004ff81
mov ecx, eax
call qword [sym.imp.KERNEL32.dll_SetLastError]
mov ecx, 2
call fcn.140147580
test al, al
jne 0x140050aba
cmp byte [rsp + 0x1c7], 0
jns 0x14004ff98
mov rcx, qword [rsp + 0x1b0]
call fcn.1401973c4
lea rcx, [rsp + 0x1c8]
mov rdx, qword [rcx + 8]
call fcn.1400527b0
lea rcx, [rsp + 0x1e0]
call fcn.140064ce0
lea rcx, [rsp + 0x1f8]
mov rdx, qword [rcx + 8]
call fcn.1400527b0
mov rcx, qword [rsp + 0x218]
xor rcx, rsp
call fcn.140198b70
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
mov eax, r13d
and al, 0x7f
mov byte [rsp + 0x1c7], al
jmp 0x1400500d2
cmp qword [rsp + 0x1d8], 0
je 0x14004ff4c
lea rsi, [rsp + 0x1c8]
mov rdx, qword [rsi + 8]
mov rcx, rsi
call fcn.1400527b0
lea rax, [rsp + 0x1d0]
mov qword [rsi], rax
xorps xmm6, xmm6
movups xmmword [rsi + 8], xmm6
mov edi, 0x7fff
lea rbx, [rsp + 0x1b0]
lea r14, [rsp + 0x1ac]
xor r12d, r12d
xor r13d, r13d
jmp 0x140050773
je 0x140050228
mov rcx, rdx
sub rcx, r13
cmp rcx, rbp
jae 0x140050097
mov r8, rbp
sub r8, rdx
add r8, r13
movups xmmword [rsp + 0x28], xmm6
mov qword [rsp + 0x20], r13
mov rcx, rdi
mov r9, r13
call fcn.14011f570
mov qword [rsp + 0x1b8], r13
mov al, byte [rsp + 0x1c7]
mov r14, rdi
test al, al
jns 0x1400500a6
mov r14, qword [rsp + 0x1b0]
lea rcx, [r14 + r13*2]
lea r8, [rbp*2]
xor edx, edx
call fcn.14019acc0
add r13, rbp
cmp byte [rsp + 0x1c7], 0
jns 0x14004fff3
mov qword [rsp + 0x1b8], r13
lea rax, [r14 + r13*2]
lea r14, [rsp + 0x1ac]
jmp 0x14005021c
cmp eax, 0x103
jne 0x140050004
xor esi, esi
test bl, 1
mov ebx, 0
jne 0x1400501a6
jmp 0x140050004
mov r9, rax
and r9, r15
dec r9
cmp r9, rdx
jae 0x1400501a2
mov rdx, qword [rsp + 0x1b8]
jmp 0x14005015b
cmp eax, 0xea
jne 0x1400500e3
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, [r15 - 8]
cmp r8, r9
ja 0x140050b14
test cl, cl
js 0x140050103
mov rdx, rcx
cmp rdx, r8
cmova r8, rdx
mov r9d, 0xa
mov edx, 0xa
cmp r8, 0xb
jb 0x14005018d
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 0x140050b21
cmp rdx, r9
je 0x1400501a2
mov rcx, rdi
call fcn.1400450a0
mov ebp, ebx
mov ebx, ebp
mov cl, byte [rsp + 0x1c7]
mov rax, qword [rsp + 0x1c0]
mov rdx, rax
and rdx, r15
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 0x1400502ef
mov r13, qword [rsp + 0x1b8]
mov rbp, r8
sub rbp, r13
ja 0x140050059
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 0x140050237
mov r8, qword [rsp + 0x1b0]
mov rcx, qword [rsp + 0x1e0]
movups xmmword [rsp + 0x30], xmm6
movups xmmword [rsp + 0x20], xmm6
mov edx, esi
mov r9, r14
call qword [sym.imp.ADVAPI32.dll_RegEnumKeyExW]
test eax, eax
jne 0x14005011f
mov ecx, dword [rsp + 0x1ac]
mov al, byte [rsp + 0x1c7]
test al, al
jns 0x14005030f
mov r13, qword [rsp + 0x1b8]
mov rbp, rcx
sub rbp, r13
ja 0x1400504eb
mov rax, qword [rsp + 0x1b0]
mov qword [rsp + 0x1b8], rcx
lea rax, [rax + rcx*2]
mov word [rax], 0
mov rbp, qword [rsp + 0x1d0]
test rbp, rbp
je 0x140050350
lea r13, [rbp + 0x20]
mov rcx, r12
mov rdx, rdi
mov r8, r13
call fcn.14012d960
cmp byte [rsp + 0x48], 0
js 0x1400502e9
mov rcx, r12
mov rdx, r13
mov r8, rdi
call fcn.14012d960
cmp byte [rsp + 0x48], 0
js 0x1400502e5
inc esi
jmp 0x1400501a6
add rbp, 8
mov rbp, qword [rbp]
jmp 0x1400502a7
movzx r13d, cl
mov rbp, r8
sub rbp, r13
ja 0x14005032e
mov eax, r8d
and al, 0x7f
mov byte [rsp + 0x1c7], al
mov rax, rdi
jmp 0x140050218
movzx r13d, al
mov rbp, rcx
sub rbp, r13
ja 0x140050340
mov eax, ecx
and al, 0x7f
mov byte [rsp + 0x1c7], al
mov rax, rdi
jmp 0x140050296
je 0x140050228
mov edx, 0xa
mov eax, ecx
jmp 0x14005005f
je 0x14005029f
mov edx, 0xa
jmp 0x140050506
movzx ecx, byte [rsp + 0x1c7]
mov eax, ecx
and eax, 0x7f
test cl, cl
cmovs rax, qword [rsp + 0x1b8]
mov rcx, qword [rsp + 0x1b0]
cmovns rcx, rdi
mov qword [rsp + 0x198], rcx
mov qword [rsp + 0x1a0], rax
test rax, rax
js 0x140050b2f
test rcx, rcx
jne 0x14005039b
test rax, rax
jne 0x140050b5b
lea rcx, [rsp + 0x198]
call fcn.140066720
test al, al
je 0x140050489
movzx ecx, byte [rsp + 0x1c7]
mov eax, ecx
and eax, 0x7f
test cl, cl
cmovs rax, qword [rsp + 0x1b8]
mov rcx, qword [rsp + 0x1b0]
cmovns rcx, rdi
mov qword [rsp + 0x188], rcx
mov qword [rsp + 0x190], rax
test rax, rax
js 0x140050b2f
test rcx, rcx
jne 0x1400503fb
test rax, rax
jne 0x140050b5b
mov rcx, r12
lea rdx, [rsp + 0x188]
call fcn.140133fe0
mov rbp, qword [rsp + 0x200]
test rbp, rbp
je 0x1400504e6
lea r13, [rbp + 0x20]
lea r14, [rsp + 0x217]
mov rcx, r14
mov rdx, r12
mov r8, r13
call fcn.14012d960
cmp byte [rsp + 0x217], 0
js 0x14005045f
mov rcx, r14
mov rdx, r13
mov r8, r12
call fcn.14012d960
cmp byte [rsp + 0x217], 0
mov r14b, 1
jns 0x14005046b
add rbp, 8
mov rbp, qword [rbp]
xor r14d, r14d
test rbp, rbp
jne 0x14005041c
cmp byte [rsp + 0x5f], 0
jns 0x14005047c
mov rcx, qword [rsp + 0x48]
call fcn.1401973c4
test r14b, r14b
lea r14, [rsp + 0x1ac]
jne 0x1400504cb
cmp byte [rsp + 0x1c7], 0
mov rdx, rdi
jns 0x14005049e
mov rdx, qword [rsp + 0x1b0]
mov bpl, 1
lea rcx, [rsp + 0x1e0]
mov r8b, 1
call fcn.140064d60
test eax, eax
je 0x1400501a4
mov ecx, 2
call fcn.140147580
test al, al
jne 0x140050594
lea rcx, [rsp + 0x1c8]
mov rdx, r12
mov r8, rdi
mov r9, rdi
call fcn.140052800
jmp 0x1400502de
xor r14d, r14d
jmp 0x14005046b
je 0x14005029f
mov rax, qword [rsp + 0x1c0]
mov rdx, rax
and rdx, r15
dec rdx
shr rax, 0x38
mov rcx, rdx
sub rcx, r13
cmp rcx, rbp
jae 0x14005053e
mov r8, rbp
sub r8, rdx
add r8, r13
movups xmmword [rsp + 0x28], xmm6
mov qword [rsp + 0x20], r13
mov rcx, rdi
mov r9, r13
call fcn.14011f570
mov qword [rsp + 0x1b8], r13
mov al, byte [rsp + 0x1c7]
mov r14, rdi
test al, al
jns 0x14005054d
mov r14, qword [rsp + 0x1b0]
lea rcx, [r14 + r13*2]
lea r8, [rbp*2]
xor edx, edx
call fcn.14019acc0
add r13, rbp
cmp byte [rsp + 0x1c7], 0
jns 0x140050586
mov qword [rsp + 0x1b8], r13
lea rax, [r14 + r13*2]
lea r14, [rsp + 0x1ac]
jmp 0x14005029a
mov eax, r13d
and al, 0x7f
mov byte [rsp + 0x1c7], al
jmp 0x140050575
mov rcx, r12
lea rdx, str.....chromeinstaller_setup_setup_util.cc
mov r8d, 0x1cf
mov r9d, 2
call fcn.140077790
mov r8d, 0x18
lea rcx, [rsp + 0x58]
lea rdx, str.Failed_to_delete_subkey
call fcn.1401d1390
mov rcx, rax
mov rdx, rdi
call fcn.140071d60
mov r8d, ntohl
mov rcx, rax
lea rdx, str._under_path
call fcn.1401d1390
mov rcx, rax
mov rdx, qword [rsp + 0x40]
call fcn.140071d60
mov rcx, r12
call fcn.140077de0
jmp 0x1400504cb
and rax, r15
dec rax
mov r9, rax
jmp 0x140050760
mov eax, ebp
and al, 0x7f
mov byte [rsp + 0x1c7], al
jmp 0x14005068c
je 0x1400507ed
mov rcx, rdx
sub rcx, rbp
cmp rcx, rsi
jae 0x140050659
mov r8, rsi
sub r8, rdx
add r8, rbp
movups xmmword [rsp + 0x28], xmm6
mov qword [rsp + 0x20], rbp
mov rcx, rbx
mov r9, rbp
call fcn.14011f570
mov qword [rsp + 0x1b8], rbp
mov al, byte [rsp + 0x1c7]
mov rdi, rbx
test al, al
jns 0x140050668
mov rdi, qword [rsp + 0x1b0]
lea rcx, [rdi + rbp*2]
lea r8, [rsi + rsi]
xor edx, edx
call fcn.14019acc0
add rbp, rsi
cmp byte [rsp + 0x1c7], 0
jns 0x14005060e
mov qword [rsp + 0x1b8], rbp
lea rax, [rdi + rbp*2]
mov edi, 0x7fff
jmp 0x1400507e1
cmp eax, 0x103
jne 0x14004ff81
xor r12d, r12d
test r13b, 1
mov r13d, 0
jne 0x140050773
jmp 0x14004ff81
mov r9, rax
and r9, r15
dec r9
cmp r9, rdx
jae 0x14005076d
mov rdx, qword [rsp + 0x1b8]
jmp 0x140050726
cmp eax, 0xea
jne 0x14005069a
cmp dword [rsp + 0x1ac], 0x7ffe
ja 0x14004ff81
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, [r15 - 8]
cmp r8, r9
ja 0x140050b14
test cl, cl
js 0x1400506bd
mov rdx, rcx
cmp rdx, r8
cmova r8, rdx
mov r9d, 0xa
mov edx, 0xa
cmp r8, 0xb
jb 0x140050758
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 0x140050600
cmp rdx, r9
je 0x14005076d
mov rcx, rbx
call fcn.1400450a0
mov ecx, r13d
mov r13d, ecx
mov r8b, byte [rsp + 0x1c7]
mov rax, qword [rsp + 0x1c0]
mov rdx, rax
and rdx, r15
dec rdx
test r8b, r8b
mov ecx, 0xa
cmovs rcx, rdx
cmp rcx, 0x8000
movsx ecx, cx
cmovae ecx, edi
shr rax, 0x38
mov dword [rsp + 0x1ac], ecx
test r8b, r8b
jns 0x1400508b9
mov rbp, qword [rsp + 0x1b8]
mov rsi, rcx
sub rsi, rbp
ja 0x14005061b
mov rax, qword [rsp + 0x1b0]
mov qword [rsp + 0x1b8], rcx
lea rax, [rax + rcx*2]
mov word [rax], 0
mov al, byte [rsp + 0x1c7]
mov r8, rbx
test al, al
jns 0x1400507fc
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 0x1400506d9
mov ecx, dword [rsp + 0x1ac]
mov al, byte [rsp + 0x1c7]
test al, al
jns 0x1400508dc
mov rbp, qword [rsp + 0x1b8]
mov rsi, rcx
sub rsi, rbp
ja 0x14005099e
mov rax, qword [rsp + 0x1b0]
mov qword [rsp + 0x1b8], rcx
lea rax, [rax + rcx*2]
lea r14, [rsp + 0x48]
mov word [rax], 0
mov rsi, qword [rsp + 0x1d0]
test rsi, rsi
je 0x140050913
lea rbp, [rsi + 0x20]
mov rcx, r14
mov rdx, rbx
mov r8, rbp
call fcn.14012d960
cmp byte [rsp + 0x48], 0
js 0x140050902
mov rcx, r14
mov rdx, rbp
mov r8, rbx
call fcn.14012d960
cmp byte [rsp + 0x48], 0
js 0x1400508fe
inc r12d
lea r14, [rsp + 0x1ac]
jmp 0x140050773
movzx ebp, r8b
mov rsi, rcx
sub rsi, rbp
ja 0x140050979
mov eax, ecx
and al, 0x7f
mov byte [rsp + 0x1c7], al
mov rax, rbx
jmp 0x1400507dd
movzx ebp, al
mov rsi, rcx
sub rsi, rbp
ja 0x14005098c
mov eax, ecx
and al, 0x7f
mov byte [rsp + 0x1c7], al
mov rax, rbx
jmp 0x14005085c
add rsi, 8
mov rsi, qword [rsi]
test rsi, rsi
lea r14, [rsp + 0x48]
jne 0x14005087b
cmp byte [rsp + 0x1c7], 0
mov rdx, rbx
jns 0x140050928
mov rdx, qword [rsp + 0x1b0]
lea rcx, [rsp + 0x1e0]
call fcn.140065140
mov cl, 1
test eax, eax
lea r14, [rsp + 0x1ac]
je 0x140050770
mov ecx, 2
call fcn.140147580
test al, al
jne 0x140050a49
lea rcx, [rsp + 0x1c8]
lea rdx, [rsp + 0x48]
mov r8, rbx
mov r9, rbx
call fcn.140052800
inc r12d
jmp 0x140050773
je 0x1400507ed
mov edx, 0xa
mov eax, r8d
jmp 0x140050621
lea r14, [rsp + 0x48]
je 0x14005086a
mov edx, 0xa
jmp 0x1400509be
lea r14, [rsp + 0x48]
je 0x14005086a
mov rax, qword [rsp + 0x1c0]
mov rdx, rax
and rdx, r15
dec rdx
shr rax, 0x38
mov rcx, rdx
sub rcx, rbp
cmp rcx, rsi
jae 0x1400509f6
mov r8, rsi
sub r8, rdx
add r8, rbp
movups xmmword [rsp + 0x28], xmm6
mov qword [rsp + 0x20], rbp
mov rcx, rbx
mov r9, rbp
call fcn.14011f570
mov qword [rsp + 0x1b8], rbp
mov al, byte [rsp + 0x1c7]
mov rdi, rbx
test al, al
jns 0x140050a05
mov rdi, qword [rsp + 0x1b0]
lea rcx, [rdi + rbp*2]
lea r8, [rsi + rsi]
xor edx, edx
call fcn.14019acc0
add rbp, rsi
cmp byte [rsp + 0x1c7], 0
jns 0x140050a3c
mov qword [rsp + 0x1b8], rbp
lea r14, [rsp + 0x48]
lea rax, [rdi + rbp*2]
mov edi, 0x7fff
jmp 0x140050865
mov eax, ebp
and al, 0x7f
mov byte [rsp + 0x1c7], al
jmp 0x140050a29
lea rsi, [rsp + 0x48]
mov rcx, rsi
lea rdx, str.....chromeinstaller_setup_setup_util.cc
mov r8d, 0x20c
mov r9d, 2
call fcn.140077790
mov r8d, 0x17
lea rcx, [rsp + 0x58]
lea rdx, str.Failed_to_delete_value
call fcn.1401d1390
mov rcx, rax
mov rdx, rbx
call fcn.140071d60
mov r8d, 8
mov rcx, rax
lea rdx, str._in_key
call fcn.1401d1390
mov rcx, rax
mov rdx, qword [rsp + 0x40]
call fcn.140071d60
mov rcx, rsi
call fcn.140077de0
jmp 0x140050959
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.140211090
lea rcx, [rsp + 0x58]
lea rdx, str.Failed_to_delete_key
mov r8d, 0x15
call fcn.1401d1390
mov rcx, rax
mov rdx, qword [rsp + 0x40]
call fcn.140071d60
mov rcx, rsi
call fcn.140211110
jmp 0x14004ff81
lea rcx, [rsp + 0x1b0]
call fcn.1401d12d0
and rax, r15
dec rax
mov r9, rax
jmp 0x140050195
lea rax, str.string_view::string_view__CharT___size_t_:_length_does_not_fit_in_difference_type
mov qword [rsp + 0x20], rax
lea rcx, str._s:_d:_assertion__s_failed:__s_n
lea rdx, str....._third_partylibc_srcinclude_string_view
lea r9, str.__len___static_cast_size_type__numeric_limits_difference_type_::max___
mov r8d, 0x13a
call fcn.1401df1c0
lea rax, str.string_view::string_view__CharT___size_t_:_received_nullptr
mov qword [rsp + 0x20], rax
lea rcx, str._s:_d:_assertion__s_failed:__s_n
lea rdx, str....._third_partylibc_srcinclude_string_view
lea r9, str.__len__0____s___nullptr
mov r8d, 0x13c
call fcn.1401df1c0
int3