Function at 0x4015ca
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
lea ebp, [esp - 0x1a0]
sub esp, 0x21c
mov eax, dword [0x40e2d0]
xor eax, ebp
mov dword [ebp + 0x19c], eax
push ebx
push esi
mov esi, dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
push edi
mov dword [ebp - 0x74], 0xfffffff4
mov byte [ebp - 0x65], 0
mov byte [ebp - 0x66], 0
mov ebx, 0x20019
mov edi, 0x80000002
push 0x40f540
push str.valnamePSRL_product_id_s
lea eax, [ebp - 0x64]
push 0xff
push eax
call fcn.004021da
lea eax, [ebp + 0x9c]
push eax
lea eax, [ebp - 0x64]
push eax
push dword [0x40e178]
call dword [0x40f64c]
add esp, 0x1c
test eax, eax
jne 0x4016cd
lea eax, [ebp + 0x9c]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40164a
sub eax, edx
je 0x4016cd
push 4
lea eax, [ebp + 0x9d]
push str.ADDJ
push eax
call fcn.004021f6
add esp, 0xc
test eax, eax
jne 0x401673
mov byte [ebp - 0x65], 1
push 4
lea eax, [ebp + 0x9d]
push str.ADDI
push eax
call fcn.004021f6
add esp, 0xc
test eax, eax
jne 0x401691
mov byte [ebp - 0x66], 1
push 4
lea eax, [ebp + 0x9d]
push str.ADDF
push eax
call fcn.004021f6
add esp, 0xc
test eax, eax
jne 0x4016af
mov byte [ebp - 0x65], 1
push 4
lea eax, [ebp + 0x9d]
push str.ADDG
push eax
call fcn.004021f6
add esp, 0xc
test eax, eax
jne 0x4016cd
mov byte [ebp - 0x66], 1
push str.userSerial
lea eax, [ebp - 0x64]
push 0xff
push eax
call fcn.00402325
push dword [ebp - 0x74]
lea eax, [ebp - 0x64]
push eax
call fcn.004012e4
add esp, 0x14
lea eax, [ebp - 0x6c]
push eax
push ebx
push 0
push str.SoftwarePinnacle_SystemsHollywood_FX_5PLS
push edi
call esi
test eax, eax
jne 0x401774
lea eax, [ebp - 0x70]
push eax
lea eax, [ebp + 0x9c]
push eax
lea eax, [ebp - 0x78]
push eax
push 0
lea eax, [ebp - 0x64]
push eax
push dword [ebp - 0x6c]
mov dword [ebp - 0x70], 0xff
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
jne 0x401767
push dword [ebp - 0x74]
lea eax, [ebp + 0x9c]
push eax
call fcn.004012f7
lea eax, [ebp + 0x9c]
push str._PLS_
push eax
call fcn.00401c90
add esp, 0x10
test eax, eax
je 0x401767
lea eax, [ebp + 0x9c]
push eax
call fcn.0040130a
test eax, eax
pop ecx
je 0x401767
mov byte [ebp - 0x65], 1
push dword [ebp - 0x6c]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
and dword [ebp - 0x6c], 0
lea eax, [ebp - 0x6c]
push eax
push ebx
push 0
push str.SoftwarePinnacle_SystemsHollywood_FXPLS
push edi
call esi
test eax, eax
jne 0x4017f9
lea eax, [ebp - 0x70]
push eax
lea eax, [ebp + 0x9c]
push eax
lea eax, [ebp - 0x78]
push eax
push 0
lea eax, [ebp - 0x64]
push eax
push dword [ebp - 0x6c]
mov dword [ebp - 0x70], 0xff
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
jne 0x4017ec
push dword [ebp - 0x74]
lea eax, [ebp + 0x9c]
push eax
call fcn.004012f7
lea eax, [ebp + 0x9c]
push str._PLS_
push eax
call fcn.00401c90
add esp, 0x10
test eax, eax
je 0x4017ec
lea eax, [ebp + 0x9c]
push eax
call fcn.0040130a
test eax, eax
pop ecx
je 0x4017ec
mov byte [ebp - 0x65], 1
push dword [ebp - 0x6c]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
and dword [ebp - 0x6c], 0
lea eax, [ebp - 0x6c]
push eax
push ebx
push 0
push str.SoftwarePinnacle_SystemsHollywood_FXPRO
push edi
call esi
test eax, eax
jne 0x40187e
lea eax, [ebp - 0x70]
push eax
lea eax, [ebp + 0x9c]
push eax
lea eax, [ebp - 0x78]
push eax
push 0
lea eax, [ebp - 0x64]
push eax
push dword [ebp - 0x6c]
mov dword [ebp - 0x70], 0xff
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
jne 0x401871
push dword [ebp - 0x74]
lea eax, [ebp + 0x9c]
push eax
call fcn.004012f7
lea eax, [ebp + 0x9c]
push str._PRO_
push eax
call fcn.00401c90
add esp, 0x10
test eax, eax
je 0x401871
lea eax, [ebp + 0x9c]
push eax
call fcn.0040130a
test eax, eax
pop ecx
je 0x401871
mov byte [ebp - 0x66], 1
push dword [ebp - 0x6c]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
and dword [ebp - 0x6c], 0
lea eax, [ebp - 0x6c]
push eax
push ebx
push 0
push str.SoftwarePinnacle_SystemsHollywood_FX_5PRO
push edi
call esi
test eax, eax
jne 0x401903
lea eax, [ebp - 0x70]
push eax
lea eax, [ebp + 0x9c]
push eax
lea eax, [ebp - 0x78]
push eax
push 0
lea eax, [ebp - 0x64]
push eax
push dword [ebp - 0x6c]
mov dword [ebp - 0x70], 0xff
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
jne 0x4018f6
push dword [ebp - 0x74]
lea eax, [ebp + 0x9c]
push eax
call fcn.004012f7
lea eax, [ebp + 0x9c]
push str._PRO_
push eax
call fcn.00401c90
add esp, 0x10
test eax, eax
je 0x4018f6
lea eax, [ebp + 0x9c]
push eax
call fcn.0040130a
test eax, eax
pop ecx
je 0x4018f6
mov byte [ebp - 0x66], 1
push dword [ebp - 0x6c]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
and dword [ebp - 0x6c], 0
lea eax, [ebp - 0x6c]
push eax
push ebx
push 0
push str.SoftwarePinnacle_SystemsHollywood_FX_5
push edi
call esi
test eax, eax
jne 0x4019b8
lea eax, [ebp - 0x70]
push eax
lea eax, [ebp + 0x9c]
push eax
lea eax, [ebp - 0x78]
push eax
push 0
lea eax, [ebp - 0x64]
push eax
push dword [ebp - 0x6c]
mov dword [ebp - 0x70], 0xff
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
jne 0x4019ab
push dword [ebp - 0x74]
lea eax, [ebp + 0x9c]
push eax
call fcn.004012f7
lea eax, [ebp + 0x9c]
push str._PLS_
push eax
call fcn.00401c90
add esp, 0x10
test eax, eax
je 0x40197f
lea eax, [ebp + 0x9c]
push eax
call fcn.0040130a
test eax, eax
pop ecx
je 0x40197f
mov byte [ebp - 0x65], 1
lea eax, [ebp + 0x9c]
push str._PRO_
push eax
call fcn.00401c90
test eax, eax
pop ecx
pop ecx
je 0x4019ab
lea eax, [ebp + 0x9c]
push eax
call fcn.0040130a
test eax, eax
pop ecx
je 0x4019ab
mov byte [ebp - 0x66], 1
push dword [ebp - 0x6c]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
and dword [ebp - 0x6c], 0
cmp byte [ebp - 0x66], 0
jne 0x4019cf
push 0x14
pop eax
cmp word [ebp - 0x74], ax
je 0x4019d6
mov dword [ebp - 0x74], eax
jmp 0x401607
call fcn.00401245
jmp 0x4019e6
cmp byte [ebp - 0x65], 0
je 0x4019e3
call fcn.004011de
jmp 0x4019e6
xor eax, eax
inc eax
mov ecx, dword [ebp + 0x19c]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00402115
add ebp, 0x1a0
leave
ret