Function at 0x10001af3
Capabilities:
Query or enumerate registry key

Disassembly:
push 0x138
mov eax, 0x100122de
call fcn.10010b50
xor ebx, ebx
mov dword [ebp - 0x12c], ecx
mov esi, edx
mov dword [ebp - 0x130], ebx
xor edi, edi
inc edi
mov dword [ebp - 4], edi
cmp esi, ebx
jne 0x10001b21
jmp 0x10001ed9
mov eax, 0x10013228
call fcn.10001589
test eax, eax
je 0x10001b34
jmp 0x10001ed9
lea eax, [ebp - 0x130]
push eax
push 0x10014dd8
push edi
push ebx
push 0x10013248
call dword [sym.imp.ole32.dll_CoCreateInstance]
cmp eax, ebx
jge 0x10001b56
jmp 0x10001ed9
mov eax, esi
mov dword [ebp - 0x128], eax
cmp dword [esi], ebx
jne 0x10001be6
cmp dword [ebp + 8], ebx
jne 0x10001ed9
push 0x40
lea eax, [ebp - 0x114]
push eax
push dword [ebp - 0x12c]
call dword [sym.imp.ole32.dll_StringFromGUID2]
mov dword [ebp - 0x12c], ebx
mov byte [ebp - 4], 6
lea eax, [ebp - 0x114]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov edi, eax
inc edi
push ebx
mov eax, edi
cdq
push 2
push edx
push eax
mov dword [ebp - 0x128], edi
call fcn.1000ea50
cmp edx, ebx
jg 0x10001c6e
jl 0x10001bc6
cmp eax, 0x7fffffff
ja 0x10001c6e
push edx
push eax
lea ecx, [ebp - 0x128]
call fcn.100015ae
mov edi, dword [ebp - 0x128]
pop ecx
pop ecx
jmp 0x10001c73
mov eax, dword [ebp - 0x128]
mov esi, dword [eax + 4]
lea edi, [ebp - 0x124]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
lea edx, [ebp - 0x124]
movsd dword es:[edi], dword [esi]
push edx
push 1
push dword [ebp - 0x12c]
movsd dword es:[edi], dword [esi]
cmp dword [ebp + 8], ebx
je 0x10001c3e
cmp dword [eax], 1
mov eax, dword [ebp - 0x130]
mov ecx, dword [eax]
push eax
jne 0x10001c1a
call dword [ecx + 0x14]
jmp 0x10001c1d
call dword [ecx + 0x1c]
mov esi, eax
cmp esi, ebx
jge 0x10001c54
or dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x130]
cmp eax, ebx
je 0x10001c37
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, esi
jmp 0x10001eef
cmp dword [eax], 1
mov eax, dword [ebp - 0x130]
mov ecx, dword [eax]
push eax
jne 0x10001c51
call dword [ecx + 0x18]
jmp 0x10001c54
call dword [ecx + 0x20]
add dword [ebp - 0x128], 8
mov eax, dword [ebp - 0x128]
cmp dword [eax], ebx
jne 0x10001be0
jmp 0x10001b66
mov eax, 0x80070057
cmp eax, ebx
jl 0x10001eb4
cmp edi, 0x400
jg 0x10001c99
push edi
call fcn.100015cd
pop ecx
test al, al
je 0x10001c99
mov eax, edi
call fcn.1000f650
mov eax, esp
jmp 0x10001ca6
mov eax, edi
lea esi, [ebp - 0x12c]
call fcn.100021a3
push 3
push edi
lea ecx, [ebp - 0x114]
push ecx
mov esi, eax
call fcn.1000166c
mov dword [ebp - 0x144], eax
cmp eax, ebx
je 0x10001eb4
push str.CLSID_
mov edi, 0x80
lea eax, [ebp - 0x94]
push edi
push eax
call fcn.100079d0
add esp, 0xc
push eax
call fcn.100016b7
pop ecx
push dword [ebp - 0x144]
lea eax, [ebp - 0x94]
push eax
call fcn.100016ec
push str.Required_Categories
lea eax, [ebp - 0x94]
push edi
push eax
call fcn.10007a38
add esp, 0x14
push eax
call fcn.100016b7
mov eax, SysReAllocStringLen
pop ecx
mov dword [ebp - 0x140], eax
mov dword [ebp - 0x13c], ebx
mov byte [ebp - 4], 7
mov dword [ebp - 0x138], ebx
mov dword [ebp - 0x134], ebx
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x94]
push ecx
push eax
lea eax, [ebp - 0x138]
mov dword [ebp - 0x128], ebx
call fcn.10001790
test eax, eax
jne 0x10001db3
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
lea eax, [ebp - 0x128]
push eax
push ebx
push ebx
push ebx
push dword [ebp - 0x138]
call dword [sym.imp.ADVAPI32.dll_RegQueryInfoKeyA]
mov esi, eax
cmp dword [ebp - 0x138], ebx
je 0x10001d8f
push dword [ebp - 0x138]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov dword [ebp - 0x138], ebx
mov dword [ebp - 0x134], ebx
cmp esi, ebx
jne 0x10001db3
cmp dword [ebp - 0x128], ebx
jne 0x10001db3
lea eax, [ebp - 0x94]
push eax
lea esi, [ebp - 0x140]
call fcn.10001722
push str.CLSID_
lea eax, [ebp - 0x94]
push edi
push eax
call fcn.100079d0
add esp, 0xc
push eax
call fcn.100016b7
pop ecx
push dword [ebp - 0x144]
lea eax, [ebp - 0x94]
push eax
call fcn.100016ec
push str.Implemented_Categories
lea eax, [ebp - 0x94]
push edi
push eax
call fcn.10007a38
add esp, 0x14
push eax
call fcn.100016b7
pop ecx
lea eax, [ebp - 0x94]
push eax
push SysReAllocStringLen
lea eax, [ebp - 0x138]
call fcn.10001790
cmp eax, ebx
jne 0x10001e75
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
lea eax, [ebp - 0x128]
push eax
push ebx
push ebx
push ebx
push dword [ebp - 0x138]
call dword [sym.imp.ADVAPI32.dll_RegQueryInfoKeyA]
mov esi, eax
cmp dword [ebp - 0x138], ebx
je 0x10001e51
push dword [ebp - 0x138]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov dword [ebp - 0x138], ebx
mov dword [ebp - 0x134], ebx
cmp esi, ebx
jne 0x10001e75
cmp dword [ebp - 0x128], ebx
jne 0x10001e75
lea eax, [ebp - 0x94]
push eax
lea esi, [ebp - 0x140]
call fcn.10001722
mov byte [ebp - 4], 7
cmp dword [ebp - 0x138], ebx
je 0x10001e93
push dword [ebp - 0x138]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov dword [ebp - 0x138], ebx
mov dword [ebp - 0x134], ebx
mov byte [ebp - 4], 6
push SysReAllocStringLen
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov dword [ebp - 0x140], ebx
mov dword [ebp - 0x13c], ebx
mov byte [ebp - 4], 1
cmp dword [ebp - 0x12c], ebx
je 0x10001ed9
mov eax, dword [ebp - 0x12c]
mov esi, dword [eax]
push eax
mov dword [ebp - 0x12c], esi
call fcn.1000773b
pop ecx
cmp esi, ebx
jne 0x10001ec0
or dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x130]
cmp eax, ebx
je 0x10001eed
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
xor eax, eax
lea esp, [ebp - 0x154]
call fcn.10010bd3
ret 4