Function at 0x10007595
Capabilities:
Get installed programs
Query or enumerate registry key
Query or enumerate registry value
Set registry value

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x10f0
call fcn.10022c40
push esi
push edi
lea edi, [ebp - 0x10f0]
mov ecx, 0x43c
mov eax, 0xcccccccc
rep stosd dword es:[edi], eax
cmp dword [ebp + 8], 0
je 0x100075c2
cmp dword [ebp + 0xc], 0
jne 0x100075c9
xor eax, eax
jmp 0x100077e8
mov dword [ebp - 8], 0
mov dword [ebp - 4], 0
mov esi, esp
lea eax, [ebp - 8]
push eax
push 8
push 0
push 0x100f3928
push reloc.OLEAUT32.dll_SysReAllocString
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
cmp esi, esp
call fcn.10021b10
test eax, eax
jne 0x100077e5
mov word [ebp - 0x808], 0
mov ecx, 0x1ff
xor eax, eax
lea edi, [ebp - 0x806]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
mov dword [ebp - 0x818], 0x800
mov dword [ebp - 0x80c], 0
mov esi, esp
lea ecx, [ebp - 0x814]
push ecx
push 0
push 0
push 0
lea edx, [ebp - 0x818]
push edx
lea eax, [ebp - 0x808]
push eax
mov ecx, dword [ebp - 0x80c]
mov dword [ebp - 0x10f0], ecx
mov edx, dword [ebp - 0x10f0]
push edx
mov eax, dword [ebp - 8]
push eax
mov ecx, dword [ebp - 0x80c]
add ecx, 1
mov dword [ebp - 0x80c], ecx
call dword [sym.imp.ADVAPI32.dll_RegEnumKeyExW]
cmp esi, esp
call fcn.10021b10
test eax, eax
jne 0x100077d2
mov dword [ebp - 0x818], 0x800
mov dword [ebp - 0x101c], 0
mov word [ebp - 0x1018], 0
mov ecx, 0x1ff
xor eax, eax
lea edi, [ebp - 0x1016]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
mov esi, esp
lea edx, [ebp - 0x808]
push edx
push 0x100f3990
push 0x100f39f8
lea eax, [ebp - 0x1018]
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x10
cmp esi, esp
call fcn.10021b10
mov esi, esp
lea ecx, [ebp - 0x101c]
push ecx
push 3
push 0
lea edx, [ebp - 0x1018]
push edx
push reloc.OLEAUT32.dll_SysReAllocString
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
cmp esi, esp
call fcn.10021b10
test eax, eax
jne 0x100077cd
mov word [ebp - 0x10ec], 0
mov ecx, 0x31
xor eax, eax
lea edi, [ebp - 0x10ea]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
mov dword [ebp - 0x1024], 0xc8
mov esi, esp
lea eax, [ebp - 0x1024]
push eax
lea ecx, [ebp - 0x10ec]
push ecx
lea edx, [ebp - 0x1020]
push edx
push 0
push 0x100f3a04
mov eax, dword [ebp - 0x101c]
push eax
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
cmp esi, esp
call fcn.10021b10
test eax, eax
jne 0x100077cd
cmp dword [ebp - 0x1020], 1
jne 0x100077cd
mov esi, esp
mov ecx, dword [ebp + 8]
push ecx
lea edx, [ebp - 0x10ec]
push edx
call dword [sym.imp.KERNEL32.dll_lstrcmpiW]
cmp esi, esp
call fcn.10021b10
test eax, eax
jne 0x100077cd
mov esi, esp
mov eax, dword [ebp + 0xc]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
cmp esi, esp
call fcn.10021b10
shl eax, 1
mov esi, esp
push eax
mov ecx, dword [ebp + 0xc]
push ecx
push 1
push 0
push 0x100f3a1c
mov edx, dword [ebp - 0x101c]
push edx
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
cmp esi, esp
call fcn.10021b10
mov dword [ebp - 4], 1
jmp 0x1000762e
mov esi, esp
mov eax, dword [ebp - 8]
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
cmp esi, esp
call fcn.10021b10
mov eax, dword [ebp - 4]
pop edi
pop esi
add esp, 0x10f0
cmp ebp, esp
call fcn.10021b10
mov esp, ebp
pop ebp
ret