Function at 0x5ac42c
Capabilities:
Query or enumerate registry value
Set environment variable

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffee0
push ebx
push esi
push edi
mov edi, 0x81a13c
push edi
mov esi, 0x81a23d
lea edi, [ebp - 0x120]
mov ecx, 0x40
rep movsd dword es:[edi], dword [esi]
pop edi
push 8
push 0
lea eax, [ebp - 8]
push eax
call fcn.0066c86c
add esp, 0xc
call fcn.005ac6fc
lea edx, [ebp - 0xc]
push edx
push 0x20019
push 0
push str.SOFTWARE_aheadShared
push SysStringLen
call sub.ADVAPI32.DLL_RegOpenKeyExA
cmp dword [ebp - 0xc], 0
je 0x5ac559
mov dword [ebp - 0x14], 0xff
lea ecx, [ebp - 0x14]
lea eax, [ebp - 0x10]
push ecx
push edi
push eax
push 0
push str.NeroAPI
mov edx, dword [ebp - 0xc]
push edx
call sub.ADVAPI32.DLL_RegQueryValueExA
test eax, eax
je 0x5ac4bc
mov ecx, dword [ebp - 0xc]
push ecx
call sub.ADVAPI32.DLL_RegCloseKey
jmp 0x5ac559
mov eax, dword [ebp - 0xc]
push eax
call sub.ADVAPI32.DLL_RegCloseKey
push edi
call fcn.0066ca1c
pop ecx
cmp eax, 0xf3
jae 0x5ac559
push 0xff
push edi
lea edx, [ebp - 0x120]
push edx
call fcn.0066cc30
add esp, 0xc
mov byte [ebp - 0x21], 0
cmp byte [ebp - 0x120], 0
je 0x5ac532
lea ecx, [ebp - 0x120]
push ecx
call fcn.0066ca1c
cmp byte [ebp + eax - 0x121], 0x5c
pop ecx
jne 0x5ac532
lea eax, [ebp - 0x120]
push eax
call fcn.0066ca1c
pop ecx
lea edx, [ebp - 0x120]
mov byte [ebp + eax - 0x121], 0
push edx
call fcn.005ac138
pop ecx
push 0x81a3c3
lea ecx, [ebp - 0x120]
push ecx
call fcn.0066c910
add esp, 8
lea eax, [ebp - 0x120]
push eax
lea edx, [ebp - 8]
push edx
call fcn.005ac030
add esp, 8
cmp byte [edi], 0
jne 0x5ac613
lea ecx, [ebp - 0x18]
push ecx
push 0x20019
push 0
push str.SOFTWAREMicrosoftWindowsCurrentVersionApp_PathsNero.exe
push SysStringLen
call sub.ADVAPI32.DLL_RegOpenKeyExA
cmp dword [ebp - 0x18], 0
je 0x5ac613
mov dword [ebp - 0x20], 0xff
lea eax, [ebp - 0x20]
lea edx, [ebp - 0x1c]
push eax
push edi
push edx
push 0
push str.Path
mov ecx, dword [ebp - 0x18]
push ecx
call sub.ADVAPI32.DLL_RegQueryValueExA
test eax, eax
je 0x5ac5b5
mov eax, dword [ebp - 0x18]
push eax
call sub.ADVAPI32.DLL_RegCloseKey
jmp 0x5ac613
mov edx, dword [ebp - 0x18]
push edx
call sub.ADVAPI32.DLL_RegCloseKey
push edi
call fcn.0066ca1c
pop ecx
cmp eax, 0xf3
jae 0x5ac60c
push 0xff
push edi
lea ecx, [ebp - 0x120]
push ecx
call fcn.0066cc30
add esp, 0xc
mov byte [ebp - 0x21], 0
push str.NeroAPI.dll
lea eax, [ebp - 0x120]
push eax
call fcn.0066c910
add esp, 8
lea edx, [ebp - 0x120]
push edx
lea ecx, [ebp - 8]
push ecx
call fcn.005ac030
add esp, 8
push edi
call fcn.005ac138
pop ecx
push 0x81a41f
call fcn.00677798
pop ecx
mov ebx, eax
push edi
call fcn.0066ca1c
pop ecx
test eax, eax
jbe 0x5ac6a6
push edi
push ebx
call fcn.005ac388
add esp, 8
test eax, eax
jne 0x5ac6a6
push edi
call fcn.0066ca1c
pop ecx
mov esi, eax
push ebx
call fcn.0066ca1c
pop ecx
add esi, eax
add esi, 2
push esi
call fcn.0066c210
pop ecx
mov esi, eax
test esi, esi
je 0x5ac6a6
push esi
xor eax, eax
push edi
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, ecx
xchg edi, esi
shr ecx, 2
mov eax, edi
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
pop edi
pop esi
push 0x81a424
push esi
call fcn.0066c910
add esp, 8
push ebx
push esi
call fcn.0066c910
add esp, 8
push esi
push str.PATH
call sub.KERNEL32.DLL_SetEnvironmentVariableA
push esi
call fcn.0066c220
pop ecx
lea eax, [ebp - 0x120]
push eax
call sub.KERNEL32.DLL_LoadLibraryA
mov ebx, eax
mov dword [0xd14710], ebx
test ebx, ebx
je 0x5ac6e7
push 0
push 6
push 5
push 0
push 7
call fcn.005ad794
add esp, 0x14
test eax, eax
jne 0x5ac6e7
mov eax, dword [0xd14710]
push eax
call sub.KERNEL32.DLL_FreeLibrary
xor edx, edx
mov dword [0xd14710], edx
cmp dword [0xd14710], 0
setne al
and eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret