Function at 0x10007aa0
Capabilities:
Query or enumerate registry value

Disassembly:
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x100163fb
push eax
mov dword fs:[0], esp
sub esp, 0x41c
push ebx
mov ebx, dword [esp + 0x438]
push ebp
push esi
mov eax, dword [ebx + 8]
mov ebp, dword [ebx + 4]
cmp eax, eax
push edi
mov edx, eax
je 0x10007aed
mov esi, edx
mov edi, ebp
add edx, 0x404
mov ecx, 0x101
add ebp, 0x404
cmp edx, eax
rep movsd dword es:[edi], dword [esi]
jne 0x10007ad2
mov eax, dword [ebx + 8]
mov ecx, ebx
push eax
push ebp
call fcn.10005e90
mov ecx, dword [esp + 0x440]
mov edx, dword [esp + 0x43c]
lea eax, [esp + 0x18]
mov dword [ebx + 8], ebp
xor ebp, ebp
push eax
push 9
push ebp
push ecx
push edx
mov dword [esp + 0x2c], ebp
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
je 0x10007b2b
xor eax, eax
jmp 0x10007ea2
mov dword [esp + 0x14], ebp
mov ecx, 0x101
xor eax, eax
lea edi, [esp + 0x28]
lea edx, [esp + 0x228]
rep stosd dword es:[edi], eax
mov eax, 0x1fe
lea ecx, [esp + 0x22c]
mov dword [esp + 0x24], eax
mov dword [esp + 0x20], eax
lea eax, [esp + 0x20]
push eax
push ecx
push edx
mov edx, dword [esp + 0x20]
lea eax, [esp + 0x30]
push ebp
lea ecx, [esp + 0x38]
push eax
mov eax, dword [esp + 0x2c]
push ecx
push edx
push eax
call dword [sym.imp.ADVAPI32.dll_RegEnumValueA]
cmp eax, ebp
jne 0x10007e07
lea ecx, [esp + 0x10]
call sub.MFC42.DLL_CString::CString_3
lea ecx, [esp + 0x28]
mov dword [esp + 0x434], ebp
push ecx
lea ecx, [esp + 0x14]
call sub.MFC42.DLL_CString::operator
mov edx, dword [esp + 0x10]
cmp dword [edx - 8], ebp
jne 0x10007c1c
mov edi, 0x1001e350
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x28]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov dword [esp + 0x228], 1
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x22c]
push ecx
lea ecx, [esp + 0x14]
call sub.MFC42.DLL_CString::operator
mov edx, dword [esp + 0x10]
cmp dword [edx - 8], ebp
jne 0x10007c1c
mov edi, 0x1001e340
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x22c]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [ebx + 8]
mov edx, dword [ebx + 0xc]
sub edx, ecx
mov eax, 0x7f807f81
imul edx
sar edx, 9
mov eax, edx
mov ebp, ecx
shr eax, 0x1f
add edx, eax
cmp edx, 1
jae 0x10007d08
mov eax, dword [ebx + 4]
test eax, eax
je 0x10007c61
sub ecx, eax
mov eax, 0x7f807f81
imul ecx
sar edx, 9
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
cmp edx, 1
mov esi, edx
ja 0x10007c66
mov esi, 1
mov ecx, ebx
call fcn.10007ec0
mov edi, eax
add edi, esi
mov eax, edi
jns 0x10007c77
xor eax, eax
mov edx, eax
shl edx, 8
add edx, eax
shl edx, 2
push edx
call sub.MFC42.DLL_operatornew
add esp, 4
mov esi, eax
mov eax, dword [ebx + 4]
mov ecx, ebx
push esi
push ebp
push eax
call fcn.100082e0
lea ecx, [esp + 0x28]
mov dword [esp + 0x1c], eax
push ecx
push 1
push eax
mov ecx, ebx
call fcn.10008320
mov edx, dword [esp + 0x1c]
mov eax, dword [ebx + 8]
add edx, 0x404
mov ecx, ebx
push edx
push eax
push ebp
call fcn.100082e0
mov ecx, dword [ebx + 8]
mov edx, dword [ebx + 4]
push ecx
push edx
mov ecx, ebx
call fcn.10005e90
mov eax, dword [ebx + 4]
push eax
call sub.MFC42.DLL_operatordelete
mov eax, edi
add esp, 4
shl eax, 8
add eax, edi
lea ecx, [esi + eax*4]
mov dword [ebx + 0xc], ecx
mov ecx, ebx
call fcn.10007ec0
inc eax
mov dword [ebx + 4], esi
mov edx, eax
shl edx, 8
add edx, eax
lea eax, [esi + edx*4]
mov dword [ebx + 8], eax
jmp 0x10007de3
mov edx, ecx
mov eax, 0x7f807f81
sub edx, ebp
imul edx
sar edx, 9
mov eax, edx
shr eax, 0x1f
add edx, eax
cmp edx, 1
jae 0x10007d7f
lea edx, [ebp + 0x404]
push edx
push ecx
push ebp
mov ecx, ebx
call fcn.100082e0
mov esi, dword [ebx + 8]
lea eax, [esp + 0x28]
mov ecx, esi
push eax
sub ecx, ebp
mov eax, 0x7f807f81
imul ecx
sar edx, 9
mov ecx, edx
mov eax, 1
shr ecx, 0x1f
add edx, ecx
mov ecx, ebx
sub eax, edx
push eax
push esi
call fcn.10008320
mov eax, dword [ebx + 8]
cmp ebp, eax
je 0x10007ddc
mov edi, ebp
add ebp, 0x404
mov ecx, 0x101
lea esi, [esp + 0x28]
cmp ebp, eax
rep movsd dword es:[edi], dword [esi]
jne 0x10007d66
jmp 0x10007ddc
lea eax, [ecx - 0x404]
push ecx
push ecx
push eax
mov ecx, ebx
mov dword [esp + 0x28], eax
call fcn.100082e0
mov edx, dword [ebx + 8]
lea eax, [edx - 0x404]
cmp ebp, eax
je 0x10007dba
sub eax, 0x404
sub edx, 0x404
mov ecx, 0x101
mov esi, eax
mov edi, edx
cmp eax, ebp
rep movsd dword es:[edi], dword [esi]
jne 0x10007da0
lea edx, [ebp + 0x404]
mov eax, ebp
cmp ebp, edx
je 0x10007ddc
mov edi, eax
add eax, 0x404
mov ecx, 0x101
lea esi, [esp + 0x28]
cmp eax, edx
rep movsd dword es:[edi], dword [esi]
jne 0x10007dc6
add dword [ebx + 8], 0x404
mov eax, dword [esp + 0x14]
lea ecx, [esp + 0x10]
inc eax
mov dword [esp + 0x434], 0xffffffff
mov dword [esp + 0x14], eax
call sub.MFC42.DLL_CString::CString
xor ebp, ebp
jmp 0x10007b2f
mov eax, dword [ebx + 4]
cmp eax, ebp
je 0x10007e26
mov ecx, dword [ebx + 8]
sub ecx, eax
mov eax, 0x7f807f81
imul ecx
sar edx, 9
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
jne 0x10007e92
mov edi, 0x1001e350
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x28]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov dword [esp + 0x228], 1
mov eax, ecx
mov esi, edi
mov edi, edx
lea edx, [esp + 0x22c]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, 0x1001e340
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
mov edx, dword [ebx + 8]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x28]
push ecx
push 1
push edx
mov ecx, ebx
call fcn.10007ef0
mov eax, dword [esp + 0x18]
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, 1
mov ecx, dword [esp + 0x42c]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x428
ret 0xc