Function at 0x1400579bc
Capabilities:
Query or enumerate registry value

Disassembly:
mov rax, rsp
push rbp
push rdi
push r12
push r14
push r15
mov rbp, rsp
sub rsp, 0x60
mov qword [rbp - 0x10], 0xfffffffffffffffe
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rsi
mov rsi, r8
mov r14, rdx
mov rdi, rcx
xor r15d, r15d
mov ebx, r15d
lea rcx, [rbp - 0x20]
call fcn.140004b74
nop
lea r12d, [r15 + 1]
mov r8d, r12d
lea rdx, str._DB
lea rcx, [rbp - 0x20]
call fcn.140004588
lea r8d, [r15 + 0x2e]
lea rdx, str.SoftwareMicrosoftMediaPlayerPreferencesHME
lea rcx, [rbp - 0x20]
call fcn.140004588
mov r8d, r12d
lea rdx, str._DB
lea rcx, [rbp - 0x20]
call fcn.140004588
test rsi, rsi
jne 0x140057a3f
mov eax, r15d
jmp 0x140057a4d
or rax, 0xffffffffffffffff
inc rax
cmp word [rsi + rax*2], r15w
jne 0x140057a43
mov r8d, eax
mov rdx, rsi
lea rcx, [rbp - 0x20]
call fcn.140004588
mov qword [rbp - 0x18], r15
lea rax, [rbp - 0x18]
mov qword [rsp + 0x20], rax
mov r9d, 0x20119
xor r8d, r8d
mov rdx, qword [rbp - 0x20]
mov rcx, 0xffffffff80000003
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
mov r12d, 0x80070000
test eax, eax
je 0x140057b50
movzx ebx, ax
or ebx, r12d
test eax, eax
cmovle ebx, eax
test ebx, ebx
jns 0x140057b50
test r14, r14
jne 0x140057aae
mov eax, r15d
jmp 0x140057abc
or rax, 0xffffffffffffffff
inc rax
cmp word [r14 + rax*2], r15w
jne 0x140057ab2
mov r8d, eax
mov rdx, r14
lea rcx, [rbp - 0x20]
call fcn.140004f58
mov esi, 1
mov r8d, esi
lea rdx, str._DB
lea rcx, [rbp - 0x20]
call fcn.140004588
lea r8d, [rsi + 0x2d]
lea rdx, str.SoftwareMicrosoftMediaPlayerPreferencesHME
lea rcx, [rbp - 0x20]
call fcn.140004588
lea r8d, [rsi + 7]
lea rdx, [0x1400dfdb0]
lea rcx, [rbp - 0x20]
call fcn.140004588
lea rax, [rbp - 0x18]
mov qword [rsp + 0x20], rax
mov r9d, 0x20119
xor r8d, r8d
mov rdx, qword [rbp - 0x20]
mov rcx, 0xffffffff80000003
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
je 0x140057b3f
movzx ebx, ax
or ebx, r12d
test eax, eax
cmovle ebx, eax
jmp 0x140057b42
mov ebx, r15d
test ebx, ebx
jns 0x140057b50
mov ebx, r15d
mov dword [rdi], esi
jmp 0x140057db8
mov dword [rdi], r15d
mov dword [rbp + 0x48], 4
lea rax, [rbp + 0x48]
mov qword [rsp + 0x30], rax
lea rax, [rbp + 0x40]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], r15
mov esi, reloc.OLEAUT32.dll_SafeArrayGetDim
mov r9d, esi
lea r8, str.AccessPrivateContent
xor edx, edx
mov rcx, qword [rbp - 0x18]
call qword [sym.imp.ADVAPI32.dll_RegGetValueW]
test eax, eax
je 0x140057b9b
movzx ebx, ax
or ebx, r12d
test eax, eax
cmovle ebx, eax
test ebx, ebx
js 0x140057d24
mov eax, r15d
cmp dword [rbp + 0x40], r15d
setne al
mov dword [rdi + 4], eax
lea rax, [rbp + 0x48]
mov qword [rsp + 0x30], rax
lea rax, [rbp + 0x40]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], r15
mov r9d, esi
lea r8, str.ZeroStars
xor edx, edx
mov rcx, qword [rbp - 0x18]
call qword [sym.imp.ADVAPI32.dll_RegGetValueW]
test eax, eax
je 0x140057bec
movzx ebx, ax
or ebx, r12d
test eax, eax
cmovle ebx, eax
test ebx, ebx
js 0x140057d24
mov eax, r15d
cmp dword [rbp + 0x40], r15d
setne al
mov dword [rdi + 0x10], eax
lea rax, [rbp + 0x48]
mov qword [rsp + 0x30], rax
lea rax, [rbp + 0x40]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], r15
mov r9d, esi
lea r8, str.MinStars
xor edx, edx
mov rcx, qword [rbp - 0x18]
call qword [sym.imp.ADVAPI32.dll_RegGetValueW]
test eax, eax
je 0x140057c3d
movzx ebx, ax
or ebx, r12d
test eax, eax
cmovle ebx, eax
test ebx, ebx
js 0x140057d24
mov eax, dword [rbp + 0x40]
mov dword [rdi + 0xc], eax
lea rax, [rbp + 0x48]
mov qword [rsp + 0x30], rax
lea rax, [rbp + 0x40]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], r15
mov r9d, esi
lea r8, str.AllStars
xor edx, edx
mov rcx, qword [rbp - 0x18]
call qword [sym.imp.ADVAPI32.dll_RegGetValueW]
test eax, eax
je 0x140057c87
movzx ebx, ax
or ebx, r12d
test eax, eax
cmovle ebx, eax
test ebx, ebx
js 0x140057d24
mov eax, r15d
cmp dword [rbp + 0x40], r15d
setne al
mov dword [rdi + 8], eax
lea rax, [rbp + 0x48]
mov qword [rsp + 0x30], rax
lea rax, [rbp + 0x40]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], r15
mov r9d, esi
lea r8, str.AllParentalRatings
xor edx, edx
mov rcx, qword [rbp - 0x18]
call qword [sym.imp.ADVAPI32.dll_RegGetValueW]
test eax, eax
je 0x140057cd8
movzx ebx, ax
or ebx, r12d
test eax, eax
cmovle ebx, eax
test ebx, ebx
js 0x140057d24
mov eax, r15d
cmp dword [rbp + 0x40], r15d
setne al
mov dword [rdi + 0x14], eax
lea rax, [rbp + 0x48]
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x28], r15
mov qword [rsp + 0x20], r15
mov r9d, 8
lea r8, str.ParentalRatingData
xor edx, edx
mov rcx, qword [rbp - 0x18]
call qword [sym.imp.ADVAPI32.dll_RegGetValueW]
test eax, eax
je 0x140057d24
movzx ebx, ax
or ebx, r12d
test eax, eax
cmovle ebx, eax
cmp dword [rdi + 0x14], r15d
jne 0x140057db8
test ebx, ebx
js 0x140057db8
mov ecx, dword [rbp + 0x48]
call qword [sym.imp.ole32.dll_CoTaskMemAlloc]
mov qword [rdi + 0x20], rax
mov ecx, 0x8007000e
test rax, rax
cmove ebx, ecx
test ebx, ebx
js 0x140057db8
lea rcx, [rbp + 0x48]
mov qword [rsp + 0x30], rcx
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], r15
mov r9d, 8
lea r8, str.ParentalRatingData
xor edx, edx
mov rcx, qword [rbp - 0x18]
call qword [sym.imp.ADVAPI32.dll_RegGetValueW]
mov esi, eax
test eax, eax
je 0x140057d9d
mov rcx, qword [rdi + 0x20]
call qword [sym.imp.ole32.dll_CoTaskMemFree]
mov qword [rdi + 0x20], r15
movzx ebx, si
or ebx, r12d
test esi, esi
cmovle ebx, esi
test ebx, ebx
js 0x140057db8
mov ecx, dword [rbp + 0x48]
movabs rax, 0xaaaaaaaaaaaaaaab
mul rcx
shr rdx, 3
mov dword [rdi + 0x18], edx
mov rcx, qword [rbp - 0x18]
test rcx, rcx
je 0x140057dc8
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
nop
mov rdx, qword [rbp - 0x20]
add rdx, 0xffffffffffffffe8
or ecx, 0xffffffff
lock xadd dword [rdx + 0x10], ecx
sub ecx, 1
jg 0x140057ded
mov rcx, qword [rdx]
mov r8, qword [rcx]
mov rax, qword [r8 + 8]
call qword [case.0x14006e230.0]
mov eax, ebx
lea r11, [rsp + 0x60]
mov rbx, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x38]
mov rsp, r11
pop r15
pop r14
pop r12
pop rdi
pop rbp
ret