Function at 0x14004db20
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 [0x14037e038]
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 0x14004dc15
lea rdi, [rsp + 0x48]
lea rbx, [rsp + 0x1e0]
lea r14, [rsp + 0x1c8]
jmp 0x14004dc04
mov rax, qword [r15 + 8]
mov rcx, qword [r15]
mov qword [rsp + 0x1e0], rcx
mov qword [rsp + 0x1e8], rax
test rax, rax
js 0x14004e939
test rcx, rcx
jne 0x14004dbd4
test rax, rax
jne 0x14004e973
mov rcx, rdi
mov rdx, rbx
call fcn.14013a010
mov rcx, r14
mov rdx, rdi
call fcn.1402074f0
cmp byte [rsp + 0x5f], 0
jns 0x14004dbfb
mov rcx, qword [rsp + 0x48]
call fcn.1401a08c8
add r15, 0x18
cmp r15, r12
je 0x14004dc15
movzx eax, byte [r15 + 0x17]
test al, al
js 0x14004dba6
and eax, 0x7f
mov rcx, r15
jmp 0x14004dbad
movabs rax, 0xaaaaaaaaaaaaaaaa
lea rdi, [rsp + 0x1e0]
mov qword [rdi + 0x10], rax
movaps xmm0, xmmword [0x1402fd120]
movaps xmmword [rdi], xmm0
mov rcx, rdi
call fcn.1400600a0
mov rbx, qword [rsp + 0x40]
cmp byte [rbx + 0x17], 0
mov r8, rbx
jns 0x14004dc4e
mov r8, qword [rbx]
mov rcx, rdi
mov rdx, rsi
mov r9d, ntohl
call fcn.140060240
test eax, eax
je 0x14004dcf2
mov esi, eax
mov ecx, 2
call fcn.14014c5f0
cmp esi, 2
je 0x14004ddb9
test al, al
je 0x14004ddb9
lea rdx, str.....chromeinstaller_setup_setup_util.cc
lea rdi, [rsp + 0x48]
mov rcx, rdi
mov r8d, 0x194
mov r9d, 2
call fcn.140075d80
lea rcx, [rsp + 0x58]
lea rdx, str.Failed_to_open
mov r8d, 0xf
call fcn.1401daa50
mov rcx, rax
mov rdx, rbx
call fcn.14006f680
lea rdx, str.__result_
mov r8d, ntohl
mov rcx, rax
call fcn.1401daa50
mov rcx, rax
mov edx, esi
call fcn.140025500
mov rcx, rdi
call fcn.1400763d0
jmp 0x14004ddb9
movabs r15, 0x7fffffffffffffff
lea rax, [rsp + 0x1d0]
xorps xmm6, xmm6
movups xmmword [rax], xmm6
mov qword [rax - 8], rax
mov ecx, 0x208
call fcn.1401a088c
lea rdi, [rsp + 0x1b0]
mov qword [rdi], rax
lea rcx, [r15 + 0x105]
mov qword [rdi + 0x10], rcx
mov qword [rdi + 8], 0x100
xor ebp, ebp
mov r8d, 0x202
mov rcx, rax
xor edx, edx
call fcn.1401a41c0
lea r14, [rsp + 0x1ac]
lea r12, [rsp + 0x48]
xor esi, esi
jmp 0x14004dfa2
lea rdx, [0x14030886a]
lea rcx, [rsp + 0x1e0]
mov r8b, 1
call fcn.1400603e0
test eax, eax
je 0x14004dd91
mov ecx, eax
call qword [sym.imp.KERNEL32.dll_SetLastError]
mov ecx, 2
call fcn.14014c5f0
test al, al
jne 0x14004e853
cmp byte [rsp + 0x1c7], 0
jns 0x14004dda8
mov rcx, qword [rsp + 0x1b0]
call fcn.1401a08c8
lea rcx, [rsp + 0x1c8]
mov rdx, qword [rcx + 8]
call fcn.140050470
lea rcx, [rsp + 0x1e0]
call fcn.140060360
lea rcx, [rsp + 0x1f8]
mov rdx, qword [rcx + 8]
call fcn.140050470
mov rcx, qword [rsp + 0x218]
xor rcx, rsp
call fcn.1401a2070
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 0x14004dd5c
lea rsi, [rsp + 0x1c8]
mov rdx, qword [rsi + 8]
mov rcx, rsi
call fcn.140050470
lea rax, [rsp + 0x1d0]
mov qword [rsi], rax
xorps xmm6, xmm6
movups xmmword [rsi + 8], xmm6
xor r13d, r13d
mov edi, 0x7fff
lea rbx, [rsp + 0x1b0]
lea r14, [rsp + 0x1ac]
xor r12d, r12d
jmp 0x14004e4df
je 0x14004e024
mov rcx, rdx
sub rcx, r13
cmp rcx, rbx
jae 0x14004de96
mov r8, rbx
sub r8, rdx
add r8, r13
movups xmmword [rsp + 0x28], xmm6
mov qword [rsp + 0x20], r13
mov rcx, rdi
mov r9, r13
call fcn.140129830
mov qword [rsp + 0x1b8], r13
mov al, byte [rsp + 0x1c7]
mov r14, rdi
test al, al
jns 0x14004dea5
mov r14, qword [rsp + 0x1b0]
lea rcx, [r14 + r13*2]
lea r8, [rbx + rbx]
xor edx, edx
call fcn.1401a41c0
add r13, rbx
cmp byte [rsp + 0x1c7], 0
jns 0x14004e7a8
mov qword [rsp + 0x1b8], r13
lea rax, [r14 + r13*2]
lea r14, [rsp + 0x1ac]
jmp 0x14004e018
mov r9, rax
and r9, r15
dec r9
cmp r9, rdx
jae 0x14004df9e
mov rdx, qword [rsp + 0x1b8]
jmp 0x14004df57
cmp eax, 0x103
jne 0x14004de03
xor esi, esi
test bpl, 1
mov ebp, 0
jne 0x14004dfa2
jmp 0x14004de03
cmp eax, 0xea
jne 0x14004defa
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 0x14004e91e
test cl, cl
js 0x14004dede
mov rdx, rcx
cmp rdx, r8
cmova r8, rdx
mov r9d, 0xa
mov edx, 0xa
cmp r8, 0xb
jb 0x14004df89
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 0x14004e92b
cmp rdx, r9
je 0x14004df9e
mov rcx, rdi
call fcn.140042d20
mov ebx, ebp
mov ebp, ebx
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 0x14004e0ea
mov r13, qword [rsp + 0x1b8]
mov rbx, r8
sub rbx, r13
ja 0x14004de58
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 0x14004e033
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 0x14004df1b
mov ecx, dword [rsp + 0x1ac]
mov al, byte [rsp + 0x1c7]
test al, al
jns 0x14004e10a
mov r13, qword [rsp + 0x1b8]
mov rbx, rcx
sub rbx, r13
ja 0x14004e2e4
mov rax, qword [rsp + 0x1b0]
mov qword [rsp + 0x1b8], rcx
lea rax, [rax + rcx*2]
mov word [rax], 0
mov rbx, qword [rsp + 0x1d0]
test rbx, rbx
je 0x14004e14b
lea r13, [rbx + 0x20]
mov rcx, r12
mov rdx, rdi
mov r8, r13
call fcn.140134190
cmp byte [rsp + 0x48], 0
js 0x14004e0e5
mov rcx, r12
mov rdx, r13
mov r8, rdi
call fcn.140134190
cmp byte [rsp + 0x48], 0
js 0x14004e0e1
inc esi
jmp 0x14004dfa2
add rbx, 8
mov rbx, qword [rbx]
jmp 0x14004e0a3
movzx r13d, cl
mov rbx, r8
sub rbx, r13
ja 0x14004e129
mov eax, r8d
and al, 0x7f
mov byte [rsp + 0x1c7], al
mov rax, rdi
jmp 0x14004e014
movzx r13d, al
mov rbx, rcx
sub rbx, r13
ja 0x14004e13b
mov eax, ecx
and al, 0x7f
mov byte [rsp + 0x1c7], al
mov rax, rdi
jmp 0x14004e092
je 0x14004e024
mov edx, 0xa
mov eax, ecx
jmp 0x14004de5e
je 0x14004e09b
mov edx, 0xa
jmp 0x14004e2ff
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 0x14004e939
test rcx, rcx
jne 0x14004e196
test rax, rax
jne 0x14004e973
lea rcx, [rsp + 0x198]
call fcn.140062050
test al, al
je 0x14004e283
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 0x14004e939
test rcx, rcx
jne 0x14004e1f6
test rax, rax
jne 0x14004e973
mov rcx, r12
lea rdx, [rsp + 0x188]
call fcn.14013a010
mov rbx, qword [rsp + 0x200]
test rbx, rbx
je 0x14004e2df
lea r13, [rbx + 0x20]
lea r14, [rsp + 0x217]
mov rcx, r14
mov rdx, r12
mov r8, r13
call fcn.140134190
cmp byte [rsp + 0x217], 0
js 0x14004e25a
mov rcx, r14
mov rdx, r13
mov r8, r12
call fcn.140134190
cmp byte [rsp + 0x217], 0
mov r14b, 1
jns 0x14004e265
add rbx, 8
mov rbx, qword [rbx]
xor r14d, r14d
test rbx, rbx
jne 0x14004e217
cmp byte [rsp + 0x5f], 0
jns 0x14004e276
mov rcx, qword [rsp + 0x48]
call fcn.1401a08c8
test r14b, r14b
lea r14, [rsp + 0x1ac]
jne 0x14004e2c4
cmp byte [rsp + 0x1c7], 0
mov rdx, rdi
jns 0x14004e298
mov rdx, qword [rsp + 0x1b0]
mov bl, 1
lea rcx, [rsp + 0x1e0]
mov r8b, 1
call fcn.1400603e0
test eax, eax
je 0x14004dfa0
mov ecx, 2
call fcn.14014c5f0
test al, al
jne 0x14004e7e7
lea rcx, [rsp + 0x1c8]
mov rdx, r12
mov r8, rdi
mov r9, rdi
call fcn.1400504c0
jmp 0x14004e0da
xor r14d, r14d
jmp 0x14004e265
je 0x14004e09b
mov rax, qword [rsp + 0x1c0]
mov rdx, rax
and rdx, r15
dec rdx
shr rax, 0x38
mov rcx, rdx
sub rcx, r13
cmp rcx, rbx
jae 0x14004e337
mov r8, rbx
sub r8, rdx
add r8, r13
movups xmmword [rsp + 0x28], xmm6
mov qword [rsp + 0x20], r13
mov rcx, rdi
mov r9, r13
call fcn.140129830
mov qword [rsp + 0x1b8], r13
mov al, byte [rsp + 0x1c7]
mov r14, rdi
test al, al
jns 0x14004e346
mov r14, qword [rsp + 0x1b0]
lea rcx, [r14 + r13*2]
lea r8, [rbx + rbx]
xor edx, edx
call fcn.1401a41c0
add r13, rbx
cmp byte [rsp + 0x1c7], 0
jns 0x14004e7b9
mov qword [rsp + 0x1b8], r13
lea rax, [r14 + r13*2]
lea r14, [rsp + 0x1ac]
jmp 0x14004e096
je 0x14004e559
mov rcx, rdx
sub rcx, rbp
cmp rcx, rsi
jae 0x14004e3bd
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.140129830
mov qword [rsp + 0x1b8], rbp
mov al, byte [rsp + 0x1c7]
mov rdi, rbx
test al, al
jns 0x14004e3cc
mov rdi, qword [rsp + 0x1b0]
lea rcx, [rdi + rbp*2]
lea r8, [rsi + rsi]
xor edx, edx
call fcn.1401a41c0
add rbp, rsi
cmp byte [rsp + 0x1c7], 0
jns 0x14004e7ca
mov qword [rsp + 0x1b8], rbp
lea rax, [rdi + rbp*2]
mov edi, 0x7fff
jmp 0x14004e54d
mov r9, rax
and r9, r15
dec r9
cmp r9, rdx
jae 0x14004e4d9
mov rdx, qword [rsp + 0x1b8]
jmp 0x14004e492
cmp eax, 0x103
jne 0x14004dd91
xor r12d, r12d
test r13b, 1
mov r13d, 0
jne 0x14004e4df
jmp 0x14004dd91
cmp eax, 0xea
jne 0x14004e41e
cmp dword [rsp + 0x1ac], 0x7ffe
ja 0x14004dd91
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 0x14004e91e
test cl, cl
js 0x14004e402
mov rdx, rcx
cmp rdx, r8
cmova r8, rdx
mov r9d, 0xa
mov edx, 0xa
cmp r8, 0xb
jb 0x14004e4c4
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 0x14004e965
cmp rdx, r9
je 0x14004e4d9
mov rcx, rbx
call fcn.140042d20
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 0x14004e625
mov rbp, qword [rsp + 0x1b8]
mov rsi, rcx
sub rsi, rbp
ja 0x14004e37f
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 0x14004e568
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 0x14004e441
mov ecx, dword [rsp + 0x1ac]
mov al, byte [rsp + 0x1c7]
test al, al
jns 0x14004e648
mov rbp, qword [rsp + 0x1b8]
mov rsi, rcx
sub rsi, rbp
ja 0x14004e70a
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 0x14004e67f
lea rbp, [rsi + 0x20]
mov rcx, r14
mov rdx, rbx
mov r8, rbp
call fcn.140134190
cmp byte [rsp + 0x48], 0
js 0x14004e66e
mov rcx, r14
mov rdx, rbp
mov r8, rbx
call fcn.140134190
cmp byte [rsp + 0x48], 0
js 0x14004e66a
inc r12d
lea r14, [rsp + 0x1ac]
jmp 0x14004e4df
movzx ebp, r8b
mov rsi, rcx
sub rsi, rbp
ja 0x14004e6e5
mov eax, ecx
and al, 0x7f
mov byte [rsp + 0x1c7], al
mov rax, rbx
jmp 0x14004e549
movzx ebp, al
mov rsi, rcx
sub rsi, rbp
ja 0x14004e6f8
mov eax, ecx
and al, 0x7f
mov byte [rsp + 0x1c7], al
mov rax, rbx
jmp 0x14004e5c8
add rsi, 8
mov rsi, qword [rsi]
test rsi, rsi
lea r14, [rsp + 0x48]
jne 0x14004e5e7
cmp byte [rsp + 0x1c7], 0
mov rdx, rbx
jns 0x14004e694
mov rdx, qword [rsp + 0x1b0]
lea rcx, [rsp + 0x1e0]
call fcn.1400607c0
mov cl, 1
test eax, eax
lea r14, [rsp + 0x1ac]
je 0x14004e4dc
mov ecx, 2
call fcn.14014c5f0
test al, al
jne 0x14004e8ad
lea rcx, [rsp + 0x1c8]
lea rdx, [rsp + 0x48]
mov r8, rbx
mov r9, rbx
call fcn.1400504c0
inc r12d
jmp 0x14004e4df
je 0x14004e559
mov edx, 0xa
mov eax, r8d
jmp 0x14004e385
lea r14, [rsp + 0x48]
je 0x14004e5d6
mov edx, 0xa
jmp 0x14004e72a
lea r14, [rsp + 0x48]
je 0x14004e5d6
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 0x14004e762
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.140129830
mov qword [rsp + 0x1b8], rbp
mov al, byte [rsp + 0x1c7]
mov rdi, rbx
test al, al
jns 0x14004e771
mov rdi, qword [rsp + 0x1b0]
lea rcx, [rdi + rbp*2]
lea r8, [rsi + rsi]
xor edx, edx
call fcn.1401a41c0
add rbp, rsi
cmp byte [rsp + 0x1c7], 0
jns 0x14004e7da
mov qword [rsp + 0x1b8], rbp
lea r14, [rsp + 0x48]
lea rax, [rdi + rbp*2]
mov edi, 0x7fff
jmp 0x14004e5d1
mov eax, r13d
and al, 0x7f
mov byte [rsp + 0x1c7], al
jmp 0x14004decd
mov eax, r13d
and al, 0x7f
mov byte [rsp + 0x1c7], al
jmp 0x14004e36e
mov eax, ebp
and al, 0x7f
mov byte [rsp + 0x1c7], al
jmp 0x14004e3f4
mov eax, ebp
and al, 0x7f
mov byte [rsp + 0x1c7], al
jmp 0x14004e795
mov rcx, r12
lea rdx, str.....chromeinstaller_setup_setup_util.cc
mov r8d, 0x1cf
mov r9d, 2
call fcn.140075d80
mov r8d, 0x18
lea rcx, [rsp + 0x58]
lea rdx, str.Failed_to_delete_subkey
call fcn.1401daa50
mov rcx, rax
mov rdx, rdi
call fcn.14006f680
mov r8d, ntohl
mov rcx, rax
lea rdx, str._under_path
call fcn.1401daa50
mov rcx, rax
mov rdx, qword [rsp + 0x40]
call fcn.14006f680
mov rcx, r12
call fcn.1400763d0
jmp 0x14004e2c4
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.14020ed80
lea rcx, [rsp + 0x58]
lea rdx, str.Failed_to_delete_key
mov r8d, 0x15
call fcn.1401daa50
mov rcx, rax
mov rdx, qword [rsp + 0x40]
call fcn.14006f680
mov rcx, rsi
call fcn.14020ee00
jmp 0x14004dd91
lea rsi, [rsp + 0x48]
mov rcx, rsi
lea rdx, str.....chromeinstaller_setup_setup_util.cc
mov r8d, 0x20c
mov r9d, 2
call fcn.140075d80
mov r8d, 0x17
lea rcx, [rsp + 0x58]
lea rdx, str.Failed_to_delete_value
call fcn.1401daa50
mov rcx, rax
mov rdx, rbx
call fcn.14006f680
mov r8d, 8
mov rcx, rax
lea rdx, str._in_key
call fcn.1401daa50
mov rcx, rax
mov rdx, qword [rsp + 0x40]
call fcn.14006f680
mov rcx, rsi
call fcn.1400763d0
jmp 0x14004e6c5
lea rcx, [rsp + 0x1b0]
call fcn.1401da990
and rax, r15
dec rax
mov r9, rax
jmp 0x14004df91
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.1401de150
and rax, r15
dec rax
mov r9, rax
jmp 0x14004e4cc
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.1401de150
int3