Function at 0x10008180
Capabilities:
Query or enumerate registry value

Disassembly:
sub esp, 0xe4
push ebx
push esi
push edi
mov esi, ecx
lea edi, [esi + 0x64]
push edi
push 0
push 1
call fcn.10019490
test ax, ax
jne 0x100082d0
mov eax, dword [edi]
push 0
push 3
push 0xc8
push eax
call fcn.10018ee0
test ax, ax
jne 0x100082d0
mov ecx, dword [edi]
push 0
push 1
push 0x2711
push ecx
call fcn.10018ee0
test ax, ax
jne 0x100082d0
lea ecx, [esi + 8]
call fcn.1000cd30
mov ebx, eax
test ebx, ebx
jne 0x100081e6
lea ebx, [esi + 4]
mov eax, dword [0x1008cee4]
test eax, eax
jne 0x1000820d
push 0x14
call fcn.10067cf1
add esp, 4
test eax, eax
je 0x10008206
mov ecx, eax
call fcn.10007b10
jmp 0x10008208
xor eax, eax
mov dword [0x1008cee4], eax
mov edx, dword [eax]
push eax
call dword [edx + 4]
mov eax, dword [0x1008cee8]
test eax, eax
jne 0x100082e1
push 0x1008cee8
push 0x1007b0bc
push eax
push 1
push 0x1007887c
call dword [sym.imp.ole32.dll_CoGetClassObject]
mov edi, eax
test edi, edi
jge 0x100082dc
push 0x1007887c
call fcn.10018400
push eax
lea eax, [esp + 0x44]
push str.CLSID_sProgID
push eax
call fcn.10067cff
add esp, 0x10
lea ecx, [esp + 0x10]
push ecx
push 1
push 0
lea edx, [esp + 0x48]
push edx
push SysReAllocString
mov byte [esp + 0x28], 0
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x100082a4
mov edx, dword [esp + 0x10]
lea eax, [esp + 0xc]
push eax
lea ecx, [esp + 0x18]
push ecx
push 0
push 0
push 0
push edx
mov dword [esp + 0x24], 0x28
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
lea eax, [esp + 0x14]
push eax
push edi
lea ecx, [esp + 0x78]
push str.CoGetClassObject_CLSID_EXTENDEDERRORINFO__0x_x_ProgID:__s
push ecx
call fcn.10067cff
add esp, 0x10
push 0
push str.Fatal_Error
lea edx, [esp + 0x78]
push edx
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
pop edi
pop esi
xor eax, eax
pop ebx
add esp, 0xe4
ret
mov eax, dword [0x1008cee8]
mov ecx, dword [eax]
push eax
call dword [ecx + 4]
push 0x18
call fcn.10067cf1
add esp, 4
test eax, eax
je 0x100082fe
mov ecx, eax
call fcn.10003040
jmp 0x10008300
xor eax, eax
test eax, eax
mov dword [esi + 0x28], eax
je 0x100082d0
push 0x1007883c
mov ecx, eax
call fcn.10011080
test al, al
je 0x100082d0
mov ecx, dword [esi + 0x28]
push 0x1007896c
call fcn.10011080
test al, al
je 0x100082d0
mov ecx, dword [esi + 0x28]
push 0x1007895c
call fcn.10011080
test al, al
je 0x100082d0
mov ecx, dword [esi + 0x28]
push 0x1007894c
call fcn.10011080
test al, al
je 0x100082d0
mov edx, dword [esi + 0x28]
push ebx
push 0
push esi
lea ecx, [esi + 0x40]
mov dword [edx + 0x10], 4
call fcn.10007e40
push 0x38
call fcn.10067cf1
add esp, 4
test eax, eax
je 0x10008379
push ebx
push esi
mov ecx, eax
call fcn.100089e0
jmp 0x1000837b
xor eax, eax
push 0x1c
mov dword [esi + 0x2c], eax
call fcn.10067cf1
add esp, 4
test eax, eax
je 0x10008397
push ebx
push esi
mov ecx, eax
call fcn.10008020
jmp 0x10008399
xor eax, eax
push 0x1c
mov dword [esi + 0x30], eax
call fcn.10067cf1
add esp, 4
test eax, eax
je 0x100083b5
push ebx
push esi
mov ecx, eax
call fcn.10008070
jmp 0x100083b7
xor eax, eax
push 0x1c
mov dword [esi + 0x34], eax
call fcn.10067cf1
add esp, 4
test eax, eax
je 0x100083d3
push ebx
push esi
mov ecx, eax
call fcn.10007fd0
jmp 0x100083d5
xor eax, eax
push 0x1c
mov dword [esi + 0x38], eax
call fcn.10067cf1
add esp, 4
test eax, eax
je 0x100083f1
push ebx
push esi
mov ecx, eax
call fcn.100080c0
jmp 0x100083f3
xor eax, eax
mov ecx, dword [esi + 0x2c]
test ecx, ecx
mov dword [esi + 0x3c], eax
je 0x100082d0
mov ecx, dword [esi + 0x34]
test ecx, ecx
je 0x100082d0
mov ecx, dword [esi + 0x30]
test ecx, ecx
je 0x100082d0
mov ecx, dword [esi + 0x38]
test ecx, ecx
je 0x100082d0
test eax, eax
je 0x100082d0
push 0x1c
call fcn.10067cf1
add esp, 4
test eax, eax
je 0x10008457
push ebx
push esi
mov ecx, eax
call fcn.10008110
xor ecx, ecx
test eax, eax
setne cl
pop edi
mov dword [esi + 0x60], eax
pop esi
pop ebx
mov eax, ecx
add esp, 0xe4
ret
xor eax, eax
xor ecx, ecx
test eax, eax
setne cl
pop edi
mov dword [esi + 0x60], eax
pop esi
pop ebx
mov eax, ecx
add esp, 0xe4
ret