Function at 0x100081b0
Capabilities:
Query or enumerate registry value

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x50
mov eax, dword [0x10013044]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [0x10001e40]
mov dword [ebp - 0x10], eax
mov eax, dword [0x10001e44]
push ebx
mov dword [ebp - 0xc], eax
xor ebx, ebx
mov eax, dword [0x10001e48]
push esi
mov dword [ebp - 8], eax
mov esi, 0x10001e4c
xor eax, eax
mov dword [ebp - 0x4c], edx
push edi
mov edx, ecx
mov word [ebp - 0x38], ax
mov dword [ebp - 0x48], eax
lea edi, [ebp - 0x30]
mov dword [ebp - 0x44], eax
mov ecx, 8
mov dword [ebp - 0x40], eax
lea eax, [ebp - 0x3c]
push eax
rep movsd dword es:[edi], dword [esi]
push edx
mov dword [ebp - 0x3c], 0
xor edi, edi
call dword [sym.imp.ole32.dll_StringFromCLSID]
test eax, eax
jne 0x100083e0
cmp dword [ebp - 0x3c], ebx
je 0x100083e0
lea eax, [ebp - 0x48]
push eax
push 0x20019
push ebx
lea eax, [ebp - 0x10]
push eax
push SysReAllocString
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x1000836c
lea eax, [ebp - 0x44]
push eax
push 0x20019
push ebx
push dword [ebp - 0x3c]
push dword [ebp - 0x48]
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x1000836c
lea eax, [ebp - 0x40]
push eax
push 0x20019
push ebx
lea eax, [ebp - 0x30]
push eax
push dword [ebp - 0x44]
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x1000836c
mov eax, dword [0x100133d4]
mov dword [ebp - 0x34], 0xc8
push 0xc8
push eax
mov ecx, dword [eax]
mov esi, dword [ecx + 0xc]
mov ecx, esi
call dword [0x10014108]
call esi
mov edi, eax
test edi, edi
je 0x10008367
lea eax, [ebp - 0x34]
push eax
push edi
push ebx
push ebx
lea eax, [ebp - 0x38]
push eax
push dword [ebp - 0x40]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
mov esi, eax
xor eax, eax
mov word [edi + 0xc6], ax
cmp esi, 0xea
jne 0x10008335
mov eax, dword [0x100133d4]
add dword [ebp - 0x34], 2
push edi
push eax
mov ecx, dword [eax]
mov esi, dword [ecx + 0x14]
mov ecx, esi
call dword [0x10014108]
call esi
mov eax, dword [0x100133d4]
mov edx, dword [ebp - 0x34]
push edx
push eax
mov ecx, dword [eax]
mov dword [ebp - 0x50], edx
mov esi, dword [ecx + 0xc]
mov ecx, esi
call dword [0x10014108]
call esi
mov edi, eax
test edi, edi
je 0x10008367
lea eax, [ebp - 0x34]
push eax
push edi
push ebx
push ebx
lea eax, [ebp - 0x38]
push eax
push dword [ebp - 0x40]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
mov esi, eax
mov eax, dword [ebp - 0x50]
shr eax, 1
xor ecx, ecx
mov word [edi + eax*2 - 2], cx
push dword [ebp - 0x4c]
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
test esi, esi
je 0x10008349
mov ebx, 0x80004005
jmp 0x1000836c
mov esi, dword [ebp - 0x4c]
mov eax, 8
push edi
mov word [esi], ax
call dword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov dword [esi + 8], eax
test eax, eax
jne 0x1000836c
cmp dword [ebp - 0x34], ebx
je 0x1000836c
mov ebx, 0x8007000e
mov edx, dword [ebp - 0x3c]
test edx, edx
je 0x10008389
mov eax, dword [0x100133d4]
push edx
push eax
mov ecx, dword [eax]
mov esi, dword [ecx + 0x14]
mov ecx, esi
call dword [0x10014108]
call esi
test edi, edi
je 0x100083a3
mov eax, dword [0x100133d4]
push edi
push eax
mov ecx, dword [eax]
mov esi, dword [ecx + 0x14]
mov ecx, esi
call dword [0x10014108]
call esi
mov eax, dword [ebp - 0x40]
test eax, eax
je 0x100083b1
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, dword [ebp - 0x44]
test eax, eax
je 0x100083bf
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, dword [ebp - 0x48]
test eax, eax
je 0x100083cd
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
pop edi
pop esi
mov eax, ebx
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.10011bb0
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp - 4]
mov eax, 0x80004005
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.10011bb0
mov esp, ebp
pop ebp
ret