Function at 0x140040740
Capabilities:
Query or enumerate registry key

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x248
movaps xmmword [rsp + 0x230], xmm6
mov r12, rdx
mov rsi, rcx
mov rax, qword [0x14024f018]
xor rax, rsp
mov qword [rsp + 0x228], rax
lea rax, [rsp + 0x218]
xorps xmm0, xmm0
movups xmmword [rax], xmm0
mov qword [rax - 8], rax
lea rcx, [rsp + 0x210]
mov qword [rsp + 0x200], rcx
mov qword [rsp + 0x208], rax
mov rbx, qword [r8]
mov rbp, qword [r8 + 8]
cmp rbx, rbp
je 0x140040810
lea rdi, [rsp + 0x48]
lea r14, [rsp + 0x1e0]
lea r15, [rsp + 0x200]
movzx eax, byte [rbx + 0x17]
test al, al
mov rcx, qword [rbx]
cmovns rcx, rbx
mov qword [rsp + 0x1e0], rcx
cmovs rax, qword [rbx + 8]
mov qword [rsp + 0x1e8], rax
mov rcx, rdi
mov rdx, r14
call fcn.1400f10a0
mov rcx, r15
mov rdx, rdi
call fcn.140154a90
cmp byte [rsp + 0x5f], 0
jns 0x140040807
mov rcx, qword [rsp + 0x48]
call fcn.140105bb4
add rbx, 0x18
cmp rbx, rbp
jne 0x1400407be
movabs rax, 0xaaaaaaaaaaaaaaaa
lea rdi, [rsp + 0x1e0]
mov qword [rdi + 0x10], rax
movaps xmm0, xmmword [0x1402183e0]
movaps xmmword [rdi], xmm0
mov rcx, rdi
call fcn.140054870
cmp byte [r12 + 0x17], 0
mov r8, r12
jns 0x140040847
mov r8, qword [r12]
mov rcx, rdi
mov rdx, rsi
mov r9d, ntohl
call fcn.140054a10
test eax, eax
je 0x1400408eb
mov esi, eax
mov ecx, 2
call fcn.14004bc00
test al, al
je 0x1400410bf
cmp esi, 2
je 0x1400410bf
lea rdx, str..._.._chrome_installer_setup_setup_util.cc
lea rdi, [rsp + 0x48]
mov rcx, rdi
mov r8d, 0x1bc
mov r9d, 2
call fcn.14004bc40
lea rcx, [rsp + 0x58]
lea rdx, str.Failed_to_open
mov r8d, 0xf
call fcn.1400e7690
mov rcx, rax
mov rdx, r12
call fcn.14004c500
lea rdx, str.__result_
mov r8d, ntohl
mov rcx, rax
call fcn.1400e7690
mov rcx, rax
mov edx, esi
call fcn.14001a2e0
mov rcx, rdi
call fcn.14004c0e0
jmp 0x1400410bf
mov qword [rsp + 0x40], r12
movabs rbx, 0x7fffffffffffffff
lea rax, [rsp + 0x1d0]
xorps xmm6, xmm6
movups xmmword [rax], xmm6
mov qword [rax - 8], rax
mov ecx, 0x210
call fcn.140105b78
lea r14, [rsp + 0x1b0]
mov qword [r14], rax
lea rsi, [rbx + 0x109]
mov qword [r14 + 0x10], rsi
mov qword [r14 + 8], 0x100
mov r8d, 0x202
mov rcx, rax
xor edx, edx
call fcn.140109290
mov al, 0x80
mov edi, 0xa
lea r15, [rsp + 0x1ac]
mov rbp, qword [sym.imp.ADVAPI32.dll_RegEnumKeyExW]
xor r13d, r13d
xor r12d, r12d
and rsi, rbx
dec rsi
test al, al
cmovns rsi, rdi
mov rax, rsi
shr rax, 0x20
cmp rax, 1
mov edx, 0
sbb edx, edx
not edx
or edx, esi
mov dword [rsp + 0x1ac], edx
mov rcx, r14
xor r8d, r8d
call fcn.140033840
cmp byte [rsp + 0x1c7], 0
mov r8, r14
jns 0x1400409a9
mov r8, qword [rsp + 0x1b0]
mov rcx, qword [rsp + 0x1e0]
movups xmmword [rsp + 0x30], xmm6
movups xmmword [rsp + 0x20], xmm6
mov edx, r13d
mov r9, r15
call rbp
test eax, eax
je 0x1400409f4
cmp eax, 0xea
je 0x140040ac3
cmp eax, 0x103
jne 0x140040d31
xor r13d, r13d
test r12b, r12b
mov r12d, 0
jne 0x140040cf0
jmp 0x140040d31
mov edx, dword [rsp + 0x1ac]
mov rcx, r14
xor r8d, r8d
call fcn.140033840
movzx r8d, byte [rsp + 0x1c7]
mov rcx, r14
test r8b, r8b
jns 0x140040a27
mov r8, qword [rsp + 0x1b8]
mov rcx, qword [rsp + 0x1b0]
mov rdx, qword [rsp + 0x1d0]
test rdx, rdx
je 0x140040aee
movzx ebp, byte [rdx + 0x37]
test bpl, bpl
jns 0x140040a4b
mov rbp, qword [rdx + 0x28]
mov rbx, qword [rdx + 0x20]
jmp 0x140040a4f
lea rbx, [rdx + 0x20]
cmp rbp, r8
mov rax, r8
cmovb rax, rbp
test rax, rax
je 0x140040a74
xor esi, esi
movzx edi, word [rbx + rsi*2]
cmp word [rcx + rsi*2], di
ja 0x140040a79
jb 0x140040aa5
inc rsi
cmp rax, rsi
jne 0x140040a60
cmp r8, rbp
jb 0x140040aa5
test rax, rax
je 0x140040a98
xor esi, esi
movzx edi, word [rcx + rsi*2]
cmp word [rbx + rsi*2], di
ja 0x140040d04
jb 0x140040aa1
inc rsi
cmp rax, rsi
jne 0x140040a80
cmp rbp, r8
jae 0x140040d04
add rdx, 8
movabs rbx, 0x7fffffffffffffff
mov edi, 0xa
mov rbp, qword [sym.imp.ADVAPI32.dll_RegEnumKeyExW]
mov rdx, qword [rdx]
jmp 0x140040a2f
cmp byte [rsp + 0x1c7], 0
mov rax, qword [rsp + 0x1c0]
lea rdx, [rax + rax - 2]
mov eax, 0x14
cmovns rdx, rax
mov rcx, r14
call fcn.140033040
jmp 0x140040cf0
mov qword [rsp + 0x198], rcx
mov qword [rsp + 0x1a0], r8
lea rcx, [rsp + 0x198]
call fcn.140053cb0
test al, al
je 0x140040c2c
movzx eax, byte [rsp + 0x1c7]
test al, al
mov rcx, qword [rsp + 0x1b0]
cmovns rcx, r14
mov qword [rsp + 0x188], rcx
cmovs rax, qword [rsp + 0x1b8]
mov qword [rsp + 0x190], rax
lea rsi, [rsp + 0x48]
mov rcx, rsi
lea rdx, [rsp + 0x188]
call fcn.1400f10a0
movzx r9d, byte [rsp + 0x5f]
mov rcx, qword [rsp + 0x48]
mov r8, r9
test r9b, r9b
jns 0x140040b72
mov r8, qword [rsp + 0x50]
mov rsi, rcx
mov rbp, qword [rsp + 0x218]
test rbp, rbp
jne 0x140040b86
xor edi, edi
jmp 0x140040c0d
movzx r10d, byte [rbp + 0x37]
test r10b, r10b
jns 0x140040b9a
mov r10, qword [rbp + 0x28]
mov rdi, qword [rbp + 0x20]
jmp 0x140040b9e
lea rdi, [rbp + 0x20]
cmp r10, r8
mov rdx, r8
cmovb rdx, r10
test rdx, rdx
je 0x140040bc3
xor eax, eax
movzx ebx, word [rdi + rax*2]
cmp word [rsi + rax*2], bx
ja 0x140040bc8
jb 0x140040bf4
inc rax
cmp rdx, rax
jne 0x140040baf
cmp r8, r10
jb 0x140040bf4
test rdx, rdx
je 0x140040be7
xor eax, eax
movzx ebx, word [rsi + rax*2]
cmp word [rdi + rax*2], bx
ja 0x140040d1f
jb 0x140040bf0
inc rax
cmp rdx, rax
jne 0x140040bcf
cmp r10, r8
jae 0x140040d1f
add rbp, 8
movabs rbx, 0x7fffffffffffffff
mov rbp, qword [rbp]
xor edi, edi
test rbp, rbp
jne 0x140040b86
test r9b, r9b
jns 0x140040c17
call fcn.140105bb4
test dil, dil
mov edi, 0xa
mov rbp, qword [sym.imp.ADVAPI32.dll_RegEnumKeyExW]
jne 0x140040cd0
cmp byte [rsp + 0x1c7], 0
mov rdx, r14
jns 0x140040c41
mov rdx, qword [rsp + 0x1b0]
lea rcx, [rsp + 0x1e0]
call fcn.14015cae0
test eax, eax
je 0x140040ced
mov ecx, 2
call fcn.14004bc00
test al, al
je 0x140040cd0
lea rsi, [rsp + 0x48]
mov rcx, rsi
lea rdx, str..._.._chrome_installer_setup_setup_util.cc
mov r8d, 0x1f7
mov r9d, 2
call fcn.14004bc40
mov r8d, 0x18
lea rcx, [rsp + 0x58]
lea rdx, str.Failed_to_delete_subkey
call fcn.1400e7690
mov rcx, rax
mov rdx, r14
call fcn.14004c500
mov r8d, ntohl
mov rcx, rax
lea rdx, str._under_path
call fcn.1400e7690
mov rcx, rax
mov rdx, qword [rsp + 0x40]
call fcn.14004c500
mov rcx, rsi
call fcn.14004c0e0
lea rcx, [rsp + 0x1c8]
lea rdx, [rsp + 0x48]
mov r8, r14
mov r9, r14
call fcn.140042f70
inc r13d
jmp 0x140040cf0
mov r12b, 1
mov al, byte [rsp + 0x1c7]
mov rsi, qword [rsp + 0x1c0]
jmp 0x140040960
inc r13d
movabs rbx, 0x7fffffffffffffff
mov edi, 0xa
mov rbp, qword [sym.imp.ADVAPI32.dll_RegEnumKeyExW]
jmp 0x140040cf0
mov dil, 1
movabs rbx, 0x7fffffffffffffff
jmp 0x140040c0d
cmp qword [rsp + 0x1d8], 0
je 0x140041014
lea rsi, [rsp + 0x1c8]
mov rdx, qword [rsi + 8]
mov rcx, rsi
call fcn.140042dc0
lea rax, [rsp + 0x1d0]
mov qword [rsi], rax
xorps xmm6, xmm6
movups xmmword [rsi + 8], xmm6
mov esi, 0xa
mov edi, 0x7fff
lea r15, [rsp + 0x1b0]
lea r12, [rsp + 0x1ac]
mov rbp, qword [sym.imp.ADVAPI32.dll_RegEnumValueW]
xor r14d, r14d
xor r13d, r13d
mov rax, qword [rsp + 0x1c0]
and rax, rbx
dec rax
cmp byte [rsp + 0x1c7], 0
cmovns rax, rsi
cmp rax, 0x8000
cmovae eax, edi
movsx edx, ax
mov dword [rsp + 0x1ac], edx
mov rcx, r15
xor r8d, r8d
call fcn.140033840
cmp byte [rsp + 0x1c7], 0
mov r8, r15
jns 0x140040dda
mov r8, qword [rsp + 0x1b0]
mov rcx, qword [rsp + 0x1e0]
movups xmmword [rsp + 0x30], xmm6
movups xmmword [rsp + 0x20], xmm6
mov edx, r14d
mov r9, r12
call rbp
test eax, eax
je 0x140040e4a
cmp eax, 0x103
je 0x140040f1f
cmp eax, 0xea
jne 0x140041097
cmp dword [rsp + 0x1ac], 0x7ffe
ja 0x140041097
cmp byte [rsp + 0x1c7], 0
mov rax, qword [rsp + 0x1c0]
lea rdx, [rax + rax - 2]
mov eax, 0x14
cmovns rdx, rax
mov rcx, r15
call fcn.140033040
jmp 0x140040d8d
mov edx, dword [rsp + 0x1ac]
mov rcx, r15
xor r8d, r8d
call fcn.140033840
movzx r8d, byte [rsp + 0x1c7]
mov rdx, r15
test r8b, r8b
jns 0x140040e7d
mov r8, qword [rsp + 0x1b8]
mov rdx, qword [rsp + 0x1b0]
mov rcx, qword [rsp + 0x1d0]
test rcx, rcx
je 0x140040f36
mov r9, rbp
movzx edi, byte [rcx + 0x37]
test dil, dil
jns 0x140040ea4
mov rdi, qword [rcx + 0x28]
mov rbp, qword [rcx + 0x20]
jmp 0x140040ea8
lea rbp, [rcx + 0x20]
cmp rdi, r8
mov rax, r8
cmovb rax, rdi
test rax, rax
je 0x140040ece
xor ebx, ebx
movzx esi, word [rbp + rbx*2]
cmp word [rdx + rbx*2], si
ja 0x140040ed3
jb 0x140040f00
inc rbx
cmp rax, rbx
jne 0x140040eb9
cmp r8, rdi
jb 0x140040f00
test rax, rax
je 0x140040ef3
xor ebx, ebx
movzx esi, word [rdx + rbx*2]
cmp word [rbp + rbx*2], si
ja 0x140040ff5
jb 0x140040efc
inc rbx
cmp rax, rbx
jne 0x140040eda
cmp rdi, r8
jae 0x140040ff5
add rcx, 8
movabs rbx, 0x7fffffffffffffff
mov esi, 0xa
mov edi, 0x7fff
mov rbp, r9
mov rcx, qword [rcx]
jmp 0x140040e85
xor r14d, r14d
test r13b, r13b
mov r13d, 0
jne 0x140040d8d
jmp 0x140041097
lea rcx, [rsp + 0x1e0]
call fcn.140054bb0
test eax, eax
je 0x140040fed
mov ecx, 2
call fcn.14004bc00
test al, al
je 0x140040fcd
lea r12, [rsp + 0x48]
mov rcx, r12
lea rdx, str..._.._chrome_installer_setup_setup_util.cc
mov r8d, 0x234
mov r9d, 2
call fcn.14004bc40
mov r8d, 0x17
lea rcx, [rsp + 0x58]
lea rdx, str.Failed_to_delete_value
call fcn.1400e7690
mov rcx, rax
mov rdx, r15
call fcn.14004c500
mov r8d, 8
mov rcx, rax
lea rdx, str._in_key
call fcn.1400e7690
mov rcx, rax
mov rdx, qword [rsp + 0x40]
call fcn.14004c500
mov rcx, r12
lea r12, [rsp + 0x1ac]
call fcn.14004c0e0
lea rcx, [rsp + 0x1c8]
lea rdx, [rsp + 0x48]
mov r8, r15
mov r9, r15
call fcn.140042f70
inc r14d
jmp 0x140040d8d
mov r13b, 1
jmp 0x140040d8d
inc r14d
movabs rbx, 0x7fffffffffffffff
mov esi, 0xa
mov edi, 0x7fff
mov rbp, r9
jmp 0x140040d8d
lea rdx, [0x140219c4a]
lea rcx, [rsp + 0x1e0]
call fcn.14015cae0
test eax, eax
je 0x140041097
mov ecx, eax
call qword [sym.imp.KERNEL32.dll_SetLastError]
mov ecx, 2
call fcn.14004bc00
test al, al
je 0x140041097
call sub.KERNEL32.dll_GetLastError
mov dword [rsp + 0x20], eax
lea rdx, str..._.._chrome_installer_setup_setup_util.cc
lea rsi, [rsp + 0x48]
mov rcx, rsi
mov r8d, 0x206
mov r9d, 2
call fcn.140157100
lea rcx, [rsp + 0x58]
lea rdx, str.Failed_to_delete_key
mov r8d, 0x15
call fcn.1400e7690
mov rcx, rax
mov rdx, qword [rsp + 0x40]
call fcn.14004c500
mov rcx, rsi
call fcn.140157180
cmp byte [rsp + 0x1c7], 0
jns 0x1400410ae
mov rcx, qword [rsp + 0x1b0]
call fcn.140105bb4
lea rcx, [rsp + 0x1c8]
mov rdx, qword [rcx + 8]
call fcn.140042dc0
lea rcx, [rsp + 0x1e0]
call fcn.140054b30
lea rcx, [rsp + 0x210]
mov rdx, qword [rcx + 8]
call fcn.140042dc0
mov rcx, qword [rsp + 0x228]
xor rcx, rsp
call fcn.140106490
movaps xmm6, xmmword [rsp + 0x230]
add rsp, 0x248
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret