Function at 0x10002b90
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x82c
push ebx
push esi
push edi
push 0x13
xor ebx, ebx
pop ecx
xor eax, eax
lea edi, [ebp - 0x6f]
mov byte [ebp - 0x70], bl
push ebx
rep stosd dword es:[edi], eax
push dword [ebp + 8]
mov dword [ebp - 0x18], ebx
stosw word es:[edi], ax
mov dword [ebp - 4], ebx
mov dword [ebp - 0xc], ebx
mov dword [ebp - 0x14], ebx
mov dword [ebp - 8], ebx
stosb byte es:[edi], al
call fcn.1000b9d0
pop ecx
cmp eax, 0xffffffff
pop ecx
jne 0x10002bef
push dword [ebp + 8]
lea eax, [ebp - 0x37c]
push str.Cannot_access_file:__s_in_fRegisterTypeLib.
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
mov esi, 0x80029c4a
jmp 0x10002ed4
lea eax, [ebp - 0x82c]
push 0x104
push eax
push 0xffffffffffffffff
push dword [ebp + 8]
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x82c]
push eax
call dword [sym.imp.OLEAUT32.dll_LoadRegTypeLib]
mov esi, eax
cmp esi, ebx
jge 0x10002c76
cmp esi, 0x80028018
jl 0x10002c68
cmp esi, 0x80028019
mov edi, 0x80029c4a
jle 0x10002c48
cmp esi, 0x80028029
je 0x10002c48
cmp esi, 0x8002802e
je 0x10002c48
cmp esi, edi
jne 0x10002c68
push esi
lea eax, [ebp - 0x37c]
push dword [ebp + 8]
push str.LoadTypeLib_of__s_failed_to_find_registration_info:_HRESULT___lx._n_nIf_this_file_is_not_an_ActX_component__then_ignore_this_assert.
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x10
mov esi, edi
jmp 0x10002ed4
push esi
push dword [ebp + 8]
push str.LoadTypeLib_of__s_failed_to_load_file:_HRESULT___lx
jmp 0x10002f19
mov eax, dword [ebp - 0x18]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc]
cmp eax, ebx
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x10], ebx
jbe 0x10002eb4
mov edi, dword [sym.imp.KERNEL32.dll_lstrcatA]
mov eax, dword [ebp - 0x18]
lea edx, [ebp - 4]
push edx
push dword [ebp - 0x10]
mov ecx, dword [eax]
push eax
call dword [ecx + 0x10]
mov esi, eax
cmp esi, ebx
jl 0x10002f06
mov eax, dword [ebp - 4]
lea edx, [ebp - 0xc]
push edx
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc]
mov esi, eax
cmp esi, ebx
jl 0x10002f39
mov eax, dword [ebp - 0xc]
cmp dword [eax + 0x28], 5
jne 0x10002e81
lea ecx, [ebp - 0x41c]
push 0x50
push ecx
push eax
call dword [sym.imp.ole32.dll_StringFromGUID2]
test eax, eax
je 0x10002f5a
mov eax, dword [ebp - 4]
push dword [ebp - 0xc]
mov ecx, dword [eax]
push eax
call dword [ecx + 0x4c]
mov eax, dword [ebp - 4]
mov dword [ebp - 0xc], ebx
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
mov esi, dword [sym.imp.KERNEL32.dll_lstrcpyA]
lea eax, [ebp - 0x174]
push str.CLSID
push eax
mov dword [ebp - 4], ebx
call esi
lea eax, [ebp - 0x174]
push 0x1001511c
push eax
call edi
push ebx
push ebx
push 0x50
lea eax, [ebp - 0x41c]
push dword [ebp + 0x10]
push 0xffffffffffffffff
push eax
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
push dword [ebp + 0x10]
lea eax, [ebp - 0x174]
push eax
call edi
lea eax, [ebp - 0x70]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
test eax, eax
jne 0x10002d61
push dword [ebp + 0x10]
lea eax, [ebp - 0x70]
push eax
call esi
mov esi, dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
lea eax, [ebp - 0x14]
push eax
push 0x20019
lea eax, [ebp - 0x174]
push ebx
push eax
push 0x80000000
call esi
test eax, eax
jne 0x10002e81
cmp dword [ebp + 0xc], ebx
lea eax, [ebp - 8]
push eax
push 0x20019
push ebx
je 0x10002e00
push str.ProgID
push dword [ebp - 0x14]
call esi
test eax, eax
je 0x10002dac
push dword [ebp - 0x14]
jmp 0x10002e4f
lea eax, [ebp - 0x1c]
mov dword [ebp - 0x1c], 0x104
push eax
lea eax, [ebp - 0x520]
push eax
push ebx
push ebx
push 0x10018d8c
push dword [ebp - 8]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
je 0x10002de7
push dword [ebp - 0x14]
mov esi, dword [sym.imp.ADVAPI32.dll_RegCloseKey]
call esi
push dword [ebp - 8]
call esi
jmp 0x10002ea5
push dword [ebp - 8]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
lea eax, [ebp - 0x520]
push 0xffffffffffffffff
push eax
push 0xffffffffffffffff
push dword [ebp + 0xc]
jmp 0x10002e6b
push str.InprocServer32
push dword [ebp - 0x14]
call esi
test eax, eax
je 0x10002e26
lea eax, [ebp - 8]
push eax
push 0x20019
push ebx
push str.LocalServer32
push dword [ebp - 0x14]
call esi
test eax, eax
jne 0x10002ea5
lea eax, [ebp - 0x1c]
mov dword [ebp - 0x1c], 0x104
push eax
lea eax, [ebp - 0x624]
push eax
push ebx
push ebx
push 0x10018d8c
push dword [ebp - 8]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
push dword [ebp - 8]
test eax, eax
je 0x10002e57
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
jmp 0x10002ea5
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
lea eax, [ebp - 0x624]
push 0xffffffffffffffff
push eax
push 0xffffffffffffffff
push dword [ebp + 8]
push 1
push 0x800
call dword [sym.imp.KERNEL32.dll_CompareStringA]
cmp eax, 2
je 0x10002f80
cmp dword [ebp - 0xc], ebx
je 0x10002e95
mov eax, dword [ebp - 4]
push dword [ebp - 0xc]
mov ecx, dword [eax]
push eax
call dword [ecx + 0x4c]
mov dword [ebp - 0xc], ebx
mov eax, dword [ebp - 4]
cmp eax, ebx
je 0x10002ea5
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov dword [ebp - 4], ebx
inc dword [ebp - 0x10]
mov eax, dword [ebp - 0x10]
cmp eax, dword [ebp - 0x20]
jb 0x10002c93
lea eax, [ebp - 0x70]
mov esi, 0x8002801d
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
test eax, eax
je 0x10002ed4
lea eax, [ebp - 0x70]
push eax
push dword [ebp + 0x10]
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
cmp dword [ebp - 0xc], ebx
je 0x10002ee5
mov eax, dword [ebp - 4]
push dword [ebp - 0xc]
mov ecx, dword [eax]
push eax
call dword [ecx + 0x4c]
mov eax, dword [ebp - 4]
cmp eax, ebx
je 0x10002ef2
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [ebp - 0x18]
cmp eax, ebx
je 0x10002eff
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, esi
pop edi
pop esi
pop ebx
leave
ret
cmp esi, 0x8002802b
jne 0x10002f2b
push dword [ebp + 8]
push dword [ebp - 0x10]
push str.Index_is_outside_the_range_of_0_to_GetTypeInfoCount____1_when_getting_typeinfo_for_index__u_of_file__s.
lea eax, [ebp - 0x37c]
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x10
jmp 0x10002ed4
push esi
push dword [ebp + 8]
push dword [ebp - 0x10]
push str.problem_getting_typeinfo_for_index__u_of_file__s:_HRESULT___lx
jmp 0x10002f45
push esi
push dword [ebp + 8]
push dword [ebp - 0x10]
push str.problem_getting_typeAttr_for_index__u_of_file__s:_HRESULT___lx
lea eax, [ebp - 0x37c]
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x14
jmp 0x10002ed4
push esi
lea eax, [ebp - 0x37c]
push dword [ebp + 8]
push dword [ebp - 0x10]
push str.Couldnt_convert_clsid_to_string_when_getting_type_info_for_index__u_of_file__s:_HRESULT___lx
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x14
mov esi, 0x8007000e
jmp 0x10002ed4
xor esi, esi
jmp 0x10002ed4