Function at 0x246d5a7a
Capabilities:
Set registry value

Disassembly:
push ebp
xor eax, eax
mov ebp, esp
sub esp, 0x13c
push ebx
mov dword [ebp - 8], eax
push esi
mov dword [ebp - 4], eax
push edi
push dword [ebp + 0x28]
push dword [ebp + 0x24]
push dword [ebp + 0x10]
push dword [ebp + 0xc]
call fcn.246d58d1
add esp, 0x10
test eax, eax
jne 0x246d5aad
xor eax, eax
jmp 0x246d5fb3
push dword [ebp + 8]
lea ecx, [ebp - 0x13c]
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
push 0x246d8d08
lea ecx, [ebp - 0x13c]
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcatA]
push dword [ebp + 0xc]
lea edx, [ebp - 0x13c]
xor esi, esi
push edx
call dword [sym.imp.KERNEL32.dll_lstrcatA]
lea ecx, [ebp - 0xc]
lea edx, [ebp - 8]
push ecx
push edx
push esi
lea eax, [ebp - 0x13c]
push 0x2001f
push esi
push section..data
push esi
push eax
push SysReAllocString
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExA]
test eax, eax
jne 0x246d5efc
cmp dword [ebp + 0x10], esi
jne 0x246d5b2f
push dword [ebp + 0xc]
push str._s_Object
lea ecx, [ebp - 0x13c]
push ecx
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
jmp 0x246d5b3f
push dword [ebp + 0x10]
lea ecx, [ebp - 0x13c]
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
lea eax, [ebp - 0x13c]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
inc eax
lea ecx, [ebp - 0x13c]
push eax
xor esi, esi
push ecx
push 1
push esi
push esi
push dword [ebp - 8]
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
test eax, eax
jne 0x246d5efc
lea eax, [ebp - 0xc]
lea ecx, [ebp - 4]
push eax
mov edi, 0x2001f
push ecx
mov ebx, section..data
push esi
push edi
push esi
push ebx
push esi
push str.CLSID
push dword [ebp - 8]
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExA]
test eax, eax
jne 0x246d5efc
lea eax, [ebp - 0x38]
push eax
push dword [ebp + 0x24]
call fcn.246d5886
add esp, 8
test eax, eax
je 0x246d5efc
lea eax, [ebp - 0x38]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
inc eax
lea ecx, [ebp - 0x38]
push eax
push ecx
push 1
push esi
push esi
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
test eax, eax
jne 0x246d5efc
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
lea eax, [ebp - 0xc]
lea ecx, [ebp - 4]
push eax
push ecx
push esi
push edi
push esi
push ebx
push esi
push str.CurVer
push dword [ebp - 8]
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExA]
test eax, eax
jne 0x246d5efc
push dword [ebp + 0x14]
push dword [ebp + 0xc]
push dword [ebp + 8]
push str._s._s._ld
lea eax, [ebp - 0x13c]
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x14
lea ecx, [ebp - 0x13c]
push ecx
call dword [sym.imp.KERNEL32.dll_lstrlenA]
inc eax
lea ecx, [ebp - 0x13c]
push eax
push ecx
push 1
push esi
push esi
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
test eax, eax
jne 0x246d5efc
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
push dword [ebp - 8]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
lea eax, [ebp - 0xc]
lea ecx, [ebp - 8]
push eax
push ecx
push esi
lea edx, [ebp - 0x13c]
push edi
push esi
push ebx
push esi
push edx
push SysReAllocString
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExA]
test eax, eax
jne 0x246d5efc
cmp dword [ebp + 0x10], esi
jne 0x246d5ca2
push dword [ebp + 0xc]
push str._s_Object
lea ecx, [ebp - 0x13c]
push ecx
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
jmp 0x246d5cb2
push dword [ebp + 0x10]
lea ecx, [ebp - 0x13c]
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
lea eax, [ebp - 0x13c]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
inc eax
lea ecx, [ebp - 0x13c]
push eax
xor esi, esi
push ecx
push 1
push esi
push esi
push dword [ebp - 8]
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
test eax, eax
jne 0x246d5efc
lea eax, [ebp - 0xc]
lea ecx, [ebp - 4]
push eax
mov ebx, 0x2001f
push ecx
mov edi, section..data
push esi
push ebx
push esi
push edi
push esi
push str.CLSID
push dword [ebp - 8]
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExA]
test eax, eax
jne 0x246d5efc
lea eax, [ebp - 0x38]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
inc eax
lea ecx, [ebp - 0x38]
push eax
push ecx
push 1
push esi
push esi
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
test eax, eax
jne 0x246d5efc
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
push dword [ebp - 8]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
lea eax, [ebp - 0x38]
push eax
push dword [ebp + 0x24]
call fcn.246d5886
add esp, 8
test eax, eax
je 0x246d5efc
lea eax, [ebp - 0x38]
lea ecx, [ebp - 0x13c]
push eax
push str.CLSID_s
push ecx
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
lea ecx, [ebp - 0xc]
lea edx, [ebp - 8]
push ecx
push edx
lea eax, [ebp - 0x13c]
push esi
push ebx
push esi
push edi
push esi
push eax
push SysReAllocString
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExA]
test eax, eax
jne 0x246d5efc
lea eax, [ebp - 0xc]
lea ecx, [ebp - 4]
push eax
push ecx
push esi
push ebx
push esi
push edi
push esi
push str.VersionIndependentProgID
push dword [ebp - 8]
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExA]
test eax, eax
jne 0x246d5efc
push dword [ebp + 0xc]
push dword [ebp + 8]
push str._s._s
lea edx, [ebp - 0x13c]
push edx
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x10
lea ecx, [ebp - 0x13c]
push ecx
call dword [sym.imp.KERNEL32.dll_lstrlenA]
inc eax
lea ecx, [ebp - 0x13c]
push eax
push ecx
push 1
push esi
push esi
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
test eax, eax
jne 0x246d5efc
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
lea eax, [ebp - 0xc]
lea ecx, [ebp - 4]
push eax
push ecx
push esi
push ebx
push esi
push edi
push esi
push str.ProgID
push dword [ebp - 8]
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExA]
test eax, eax
jne 0x246d5efc
push dword [ebp + 0x14]
push dword [ebp + 0xc]
push dword [ebp + 8]
push str._s._s._ld
lea eax, [ebp - 0x13c]
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x14
lea ecx, [ebp - 0x13c]
push ecx
call dword [sym.imp.KERNEL32.dll_lstrlenA]
inc eax
lea ecx, [ebp - 0x13c]
push eax
push ecx
push 1
push esi
push esi
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
test eax, eax
jne 0x246d5efc
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
lea eax, [ebp - 0xc]
lea ecx, [ebp - 4]
push eax
push ecx
push esi
push ebx
push esi
push edi
push esi
push str.TypeLib
push dword [ebp - 8]
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExA]
lea ecx, [ebp - 0x38]
push ecx
push dword [ebp + 0x20]
call fcn.246d5886
add esp, 8
test eax, eax
je 0x246d5efc
lea eax, [ebp - 0x38]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
inc eax
lea ecx, [ebp - 0x38]
push eax
push ecx
push 1
push esi
push esi
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
test eax, eax
jne 0x246d5efc
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
lea eax, [ebp - 0xc]
lea ecx, [ebp - 4]
push eax
push ecx
push esi
push 0xf003f
push esi
push edi
push esi
push str.Version
push dword [ebp - 8]
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExA]
test eax, eax
je 0x246d5f21
cmp dword [ebp - 8], 0
je 0x246d5f1a
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
cmp dword [ebp - 8], 0
je 0x246d5f1a
push dword [ebp - 8]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
xor eax, eax
jmp 0x246d5fb3
push dword [ebp + 0x1c]
push dword [ebp + 0x18]
push str._ld._ld
lea edx, [ebp - 0x13c]
push edx
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x10
lea ecx, [ebp - 0x13c]
push ecx
call dword [sym.imp.KERNEL32.dll_lstrlenA]
inc eax
lea ecx, [ebp - 0x13c]
push eax
xor esi, esi
push ecx
push 1
push esi
push esi
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
lea eax, [ebp - 0x10]
push eax
push 0x246d8ec0
push 1
push esi
push 0x246d8eb0
call dword [sym.imp.ole32.dll_CoCreateInstance]
test eax, eax
jl 0x246d5f9c
push 0x246d8ea0
mov ecx, dword [ebp - 0x10]
push 1
mov eax, dword [ecx]
push dword [ebp + 0x24]
push dword [ebp - 0x10]
call dword [eax + 0x14]
mov ecx, dword [ebp - 0x10]
push dword [ebp - 0x10]
mov eax, dword [ecx]
call dword [eax + 8]
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
push dword [ebp - 8]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret