Function at 0x4a0cb0
Capabilities:
Delete registry value
Query or enumerate registry value
Set registry value

Disassembly:
push 0xffffffffffffffff
push 0x562689
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x130
mov eax, dword [0x5d2ac0]
push ebx
push ebp
push esi
push edi
mov edi, ecx
mov ebx, 0x5d2ac0
xor ebp, ebp
mov ecx, ebx
mov dword [esp + 0x2c], 9
mov dword [esp + 0x34], ebp
mov dword [esp + 0x24], ebx
call dword [eax + 4]
mov eax, dword [0x5cb048]
mov dword [esp + 0x148], ebp
cmp eax, ebp
jne 0x4a0d60
cmp dword [0x5cb044], ebp
jne 0x4a0d60
push 0x380
call sub.MFC42.DLL_operatornew
add esp, 4
mov dword [esp + 0x18], eax
cmp eax, ebp
mov byte [esp + 0x148], 1
je 0x4a0d31
push ebp
mov ecx, eax
call fcn.00414150
jmp 0x4a0d33
xor eax, eax
mov ecx, dword [0x5b4b90]
mov byte [esp + 0x148], 0
push ecx
push 0x406940
mov ecx, 0x5d0190
mov dword [0x5cb044], eax
call fcn.00406500
mov dword [0x5cb048], 1
mov edx, dword [0x5d2ac0]
mov esi, dword [0x5cb044]
mov ecx, ebx
mov dword [esp + 0x148], 0xffffffff
call dword [edx + 8]
cmp esi, ebp
je 0x4a1252
mov dword [esp + 0x10], ebp
mov eax, dword [0x5d2ac0]
mov ecx, ebx
mov dword [esp + 0x148], 2
mov dword [esp + 0x24], ebx
call dword [eax + 4]
mov eax, dword [0x5cb048]
mov bl, 3
cmp eax, ebp
mov byte [esp + 0x148], bl
jne 0x4a0e10
cmp dword [0x5cb044], ebp
jne 0x4a0e10
push 0x380
call sub.MFC42.DLL_operatornew
add esp, 4
mov dword [esp + 0x18], eax
cmp eax, ebp
mov byte [esp + 0x148], 4
je 0x4a0de2
push ebp
mov ecx, eax
call fcn.00414150
jmp 0x4a0de4
xor eax, eax
mov ecx, dword [0x5b4b90]
mov byte [esp + 0x148], bl
push ecx
push 0x406940
mov ecx, 0x5d0190
mov dword [0x5cb044], eax
call fcn.00406500
mov dword [0x5cb048], 1
mov edx, dword [0x5d2ac0]
mov esi, dword [0x5cb044]
mov ecx, 0x5d2ac0
mov byte [esp + 0x148], 2
call dword [edx + 8]
lea eax, [esp + 0x10]
mov ecx, esi
push eax
call fcn.00473910
mov edx, dword [0x5d2ac0]
mov ecx, 0x5d2ac0
mov dword [esp + 0x24], 0x5d2ac0
call dword [edx + 4]
mov eax, dword [0x5cb048]
mov ebx, 5
cmp eax, ebp
mov byte [esp + 0x148], bl
jne 0x4a0ebf
cmp dword [0x5cb044], ebp
jne 0x4a0ebf
push 0x380
call sub.MFC42.DLL_operatornew
add esp, 4
mov dword [esp + 0x18], eax
cmp eax, ebp
mov byte [esp + 0x148], 6
je 0x4a0e92
push ebp
mov ecx, eax
call fcn.00414150
jmp 0x4a0e94
xor eax, eax
mov dword [0x5cb044], eax
mov eax, dword [0x5b4b90]
push eax
push 0x406940
mov ecx, 0x5d0190
mov byte [esp + 0x150], bl
call fcn.00406500
mov dword [0x5cb048], 1
mov edx, dword [0x5d2ac0]
mov esi, dword [0x5cb044]
mov ecx, 0x5d2ac0
mov byte [esp + 0x148], 2
call dword [edx + 8]
mov eax, dword [esi]
lea ecx, [esp + 0x2c]
push ecx
push esi
call dword [eax + 0xac]
mov eax, dword [esp + 0x10]
xor ecx, ecx
cmp eax, ebp
mov dword [esp + 0x38], ecx
je 0x4a0f0d
mov edx, dword [eax]
lea ecx, [esp + 0x38]
push ecx
push eax
call dword [edx + 0x144]
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x2c]
mov dword [0x5d02b4], ecx
cmp edx, ebx
je 0x4a0f43
cmp edx, 4
je 0x4a0f8e
cmp edx, 2
je 0x4a0f8e
cmp edx, 9
jne 0x4a123d
cmp ecx, ebp
je 0x4a123d
mov dword [esp + 0x34], 1
jmp 0x4a123d
mov edx, dword [edi + 0x1a0]
lea esi, [edi + 0x1a0]
cmp dword [edx - 8], ebp
jne 0x4a0f8e
cmp eax, ebp
je 0x4a0f8e
mov ecx, dword [eax]
lea edx, [esp + 0x24]
push edx
push eax
call dword [ecx + 0x48]
mov eax, dword [esp + 0x10]
lea edx, [esp + 0x18]
push edx
push eax
mov ecx, dword [eax]
call dword [ecx + 0x4c]
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x1c]
push esi
push eax
mov eax, dword [esp + 0x20]
push ecx
push edx
push eax
mov ecx, edi
call fcn.004a51d0
mov edx, dword [0x5d2ac0]
mov ecx, 0x5d2ac0
mov dword [esp + 0x24], ecx
call dword [edx + 4]
mov eax, dword [0x5cb048]
mov bl, 7
cmp eax, ebp
mov byte [esp + 0x148], bl
jne 0x4a100e
cmp dword [0x5cb044], ebp
jne 0x4a100e
push 0x380
call sub.MFC42.DLL_operatornew
add esp, 4
mov dword [esp + 0x18], eax
cmp eax, ebp
mov byte [esp + 0x148], 8
je 0x4a0fe1
push ebp
mov ecx, eax
call fcn.00414150
jmp 0x4a0fe3
xor eax, eax
mov dword [0x5cb044], eax
mov eax, dword [0x5b4b90]
push eax
push 0x406940
mov ecx, 0x5d0190
mov byte [esp + 0x150], bl
call fcn.00406500
mov dword [0x5cb048], 1
mov edx, dword [0x5d2ac0]
mov esi, dword [0x5cb044]
mov ecx, 0x5d2ac0
mov byte [esp + 0x148], 2
call dword [edx + 8]
mov eax, dword [0x5d028c]
push eax
push 0xfa2
push str._d_d
push 0xd
push esi
call fcn.004735e0
mov eax, dword [0x5d02b4]
add esp, 0x14
cmp eax, ebp
je 0x4a1056
mov dword [esp + 0x34], 1
mov ecx, edi
call fcn.004a7ab0
test eax, eax
je 0x4a1086
mov ecx, edi
mov dword [edi + 0x248], ebp
mov dword [edi + 0x24c], ebp
call fcn.004a5b00
mov ecx, edi
call fcn.004a3cf0
test al, al
je 0x4a1086
mov byte [edi + 0x2c8], 1
xor eax, eax
mov dword [esp + 0x20], eax
mov ecx, dword [esp + 0x10]
mov byte [esp + 0x148], 9
cmp ecx, ebp
je 0x4a10ae
mov edx, dword [ecx]
lea eax, [esp + 0x20]
push eax
push ecx
call dword [edx + 0xac]
mov eax, dword [esp + 0x20]
cmp eax, ebp
mov dword [esp + 0x30], ebp
je 0x4a10c9
mov ecx, dword [eax]
lea edx, [esp + 0x30]
push edx
push 0x5b9230
push eax
call dword [ecx]
mov eax, dword [esp + 0x20]
mov bl, 0xa
push eax
mov ecx, edi
mov byte [esp + 0x14c], bl
call fcn.004a5df0
mov byte [edi + 0x260], al
test al, al
mov eax, dword [esp + 0x30]
je 0x4a1204
cmp eax, ebp
je 0x4a1204
mov ecx, dword [eax]
push eax
call dword [ecx + 0x1c]
lea ecx, [esp + 0x14]
mov dword [edi + 0x258], eax
mov dword [esp + 0x24], 1
mov dword [esp + 0x18], 0x104
mov byte [esp + 0x3c], 0
call sub.MFC42.DLL_CString::CString_3
lea edx, [esp + 0x18]
lea eax, [esp + 0x3c]
push edx
lea ecx, [esp + 0x28]
push eax
push ecx
push str.DXVAActive
push str.SOFTWAREStorm
push SysReAllocStringLen
mov byte [esp + 0x160], 0xb
call dword [sym.imp.SHLWAPI.dll_SHGetValueA]
test eax, eax
jne 0x4a11ab
call fcn.004bbc90
lea edx, [esp + 0x3c]
lea ecx, [esp + 0x14]
push edx
mov esi, eax
call sub.MFC42.DLL_CString::operator_2
mov eax, dword [esp + 0x14]
mov ebp, dword [sym.imp.MSVCRT.dll__mbsicmp]
push 0x5bfa5c
push eax
call ebp
add esp, 8
test eax, eax
jne 0x4a118c
test esi, esi
je 0x4a11a9
mov dword [esi + 0xdc], 1
jmp 0x4a11a9
mov ecx, dword [esp + 0x14]
push 0x5bfa58
push ecx
call ebp
add esp, 8
test eax, eax
jne 0x4a11a9
test esi, esi
je 0x4a11a9
mov dword [esi + 0xdc], eax
xor ebp, ebp
push 0x5cabc0
lea ecx, [esp + 0x18]
call sub.MFC42.DLL_CString::operator_2
mov eax, dword [esp + 0x14]
mov ecx, dword [eax - 8]
push ecx
push eax
push 1
push str.DXVAActive
push str.SOFTWAREStorm
push SysReAllocStringLen
call dword [sym.imp.SHLWAPI.dll_SHSetValueA]
push str.DXVAActive
push str.SOFTWAREStorm
push SysReAllocStringLen
call dword [sym.imp.SHLWAPI.dll_SHDeleteValueA]
lea ecx, [esp + 0x14]
mov byte [esp + 0x148], bl
call sub.MFC42.DLL_CString::CString
mov eax, dword [esp + 0x30]
jmp 0x4a1211
mov byte [edi + 0x260], 0
mov dword [edi + 0x258], ebp
cmp eax, ebp
mov byte [esp + 0x148], 9
je 0x4a1223
mov edx, dword [eax]
push eax
call dword [edx + 8]
mov eax, dword [esp + 0x20]
mov byte [esp + 0x148], 2
cmp eax, ebp
je 0x4a1239
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [esp + 0x10]
cmp eax, ebp
mov dword [esp + 0x148], 0xffffffff
je 0x4a1252
mov edx, dword [eax]
push eax
call dword [edx + 8]
mov edx, dword [esp + 0x2c]
mov ecx, dword [edi + 0x10]
lea eax, [edi + 0x10]
push edx
push eax
call dword [ecx + 0x1c]
cmp dword [esp + 0x34], ebp
je 0x4a138f
mov eax, dword [0x5d2a80]
mov ecx, 0x5d2a80
mov dword [esp + 0x24], ecx
call dword [eax + 4]
mov eax, dword [0x5cb0c0]
mov ebx, 0xc
cmp eax, ebp
mov dword [esp + 0x148], ebx
jne 0x4a1369
cmp dword [0x5cb0bc], ebp
jne 0x4a1369
push 0x1044
call sub.MFC42.DLL_operatornew
mov esi, eax
add esp, 4
mov dword [esp + 0x18], esi
cmp esi, ebp
mov byte [esp + 0x148], 0xd
je 0x4a12d8
mov ecx, esi
call fcn.0051b870
mov dword [esi], vtable.CComObjectNoRef_class_CMPSContainer_.1.0
mov dword [esi + 4], vtable.CComObjectNoRef_class_CMPSContainer_.0
mov eax, esi
jmp 0x4a12da
xor eax, eax
mov ecx, dword [0x5d0198]
mov ebp, dword [0x5b5894]
mov dword [0x5cb0bc], eax
xor edi, edi
lea eax, [ecx - 1]
mov byte [esp + 0x148], bl
test eax, eax
mov ebx, 0x41c8d0
jl 0x4a131f
mov ecx, dword [0x5d0194]
mov edx, dword [ecx]
mov dword [esp + 0x18], edx
mov edx, dword [ecx + 4]
cmp ebp, edx
jge 0x4a131b
inc edi
add ecx, 8
cmp edi, eax
jle 0x4a1306
test eax, eax
jge 0x4a1330
push 1
push ebp
push ebx
push edi
mov ecx, 0x5d0190
call fcn.00417800
jmp 0x4a135f
xor esi, esi
test eax, eax
jle 0x4a135f
mov eax, dword [0x5d0194]
cmp dword [eax + esi*8], 0x41c8d0
je 0x4a135f
push 1
push ebp
push ebx
push edi
mov ecx, 0x5d0190
call fcn.00417800
mov ecx, dword [0x5d0198]
inc esi
dec ecx
cmp esi, ecx
jl 0x4a1336
mov dword [0x5cb0c0], 1
mov edx, dword [0x5d2a80]
mov esi, dword [0x5cb0bc]
mov ecx, 0x5d2a80
mov dword [esp + 0x148], 0xffffffff
call dword [edx + 8]
mov ecx, esi
call fcn.0051be20
mov ecx, dword [esp + 0x140]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x13c
ret