Function at 0x10016420
Capabilities:
Query or enumerate registry value
Set registry value

Disassembly:
sub esp, 0xbc8
push ebx
mov ebx, dword [esp + 0xbd4]
push esi
push edi
test ebx, ebx
jne 0x10016440
pop edi
pop esi
xor eax, eax
pop ebx
add esp, 0xbc8
ret
mov edi, 0x1004c128
or ecx, 0xffffffff
xor eax, eax
mov dword [esp + 0x10], 0xbb8
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, ebx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0xc]
push ecx
push 0xf003f
push 0
push str.SoftwareArcSoftShareable_Album
push 0x80000002
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
je 0x1001652c
lea edx, [esp + 0x14]
lea eax, [esp + 0xc]
push edx
push eax
push 0
push 0xf003f
push 0
push str.Shareable_Album
push 0
push str.SoftwareArcSoftShareable_Album
push 0x80000002
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExA]
test eax, eax
je 0x100164c8
pop edi
pop esi
xor eax, eax
pop ebx
add esp, 0xbc8
ret
mov edi, 0x10046d88
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
push ecx
mov ecx, dword [esp + 0x10]
push 0x10046d88
push 1
push eax
push str.Shareable_Album_Path
push ecx
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
test eax, eax
je 0x1001650a
mov edx, dword [esp + 0xc]
push edx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
pop edi
pop esi
xor eax, eax
pop ebx
add esp, 0xbc8
ret
mov edi, 0x10046d88
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, ebx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
jmp 0x100165d6
mov edi, 0x1004c128
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x1c]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
lea edx, [esp + 0x1c]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
lea eax, [esp + 0x18]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x10]
push ecx
mov ecx, dword [esp + 0x10]
push edx
push eax
push 0
push str.Shareable_Album_Path
push ecx
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
je 0x100165db
mov edi, 0x10046d88
or ecx, 0xffffffff
xor eax, eax
mov edx, dword [esp + 0xc]
repne scasb al, byte es:[edi]
not ecx
push ecx
push 0x10046d88
push 1
push eax
push str.Shareable_Album_Path
push edx
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
test eax, eax
je 0x100165b9
mov eax, dword [esp + 0xc]
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
pop edi
pop esi
xor eax, eax
pop ebx
add esp, 0xbc8
ret
mov edi, 0x10046d88
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, ecx
mov esi, edi
mov edi, ebx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [esp + 0xc]
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
cmp byte [ebx], 0
jne 0x1001660f
mov edx, dword [esp + 0xbd8]
lea ecx, [esp + 0x1c]
push ecx
push ebx
push edx
call fcn.10018350
add esp, 0xc
test eax, eax
jne 0x1001660f
pop edi
pop esi
pop ebx
add esp, 0xbc8
ret
push ebx
call fcn.10017b90
add esp, 4
neg eax
sbb eax, eax
pop edi
pop esi
pop ebx
neg eax
add esp, 0xbc8
ret