Function at 0x10007830
Capabilities:
Query or enumerate registry key

Disassembly:
sub esp, 0x20c
push ebx
mov ebx, dword [esp + 0x21c]
push ebp
push esi
mov ebp, dword [ebx + 8]
mov edx, dword [ebx + 4]
mov eax, ebp
push edi
cmp eax, ebp
je 0x10007867
mov esi, eax
mov edi, edx
add eax, 0x200
mov ecx, 0x80
add edx, 0x200
cmp eax, ebp
rep movsd dword es:[edi], dword [esi]
jne 0x1000784d
mov eax, dword [ebx + 8]
lea ecx, [esp + 0x10]
mov dword [ebx + 8], edx
mov edx, dword [esp + 0x224]
xor esi, esi
push ecx
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x224]
push 8
push esi
push edx
push eax
mov dword [esp + 0x24], esi
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
je 0x100078a8
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x20c
ret 0xc
mov dword [esp + 0x18], esi
mov edx, dword [esp + 0x18]
mov ecx, 0x80
xor eax, eax
lea edi, [esp + 0x1c]
rep stosd dword es:[edi], eax
mov eax, dword [esp + 0x10]
lea ecx, [esp + 0x1c]
push 0x200
push ecx
push edx
push eax
call dword [sym.imp.ADVAPI32.dll_RegEnumKeyA]
test eax, eax
jne 0x10007a7a
mov eax, dword [ebx + 8]
mov ecx, dword [ebx + 0xc]
sub ecx, eax
mov ebp, eax
sar ecx, 9
cmp ecx, 1
jae 0x100079aa
mov edx, dword [ebx + 4]
test edx, edx
je 0x10007904
mov ecx, eax
sub ecx, edx
sar ecx, 9
cmp ecx, 1
ja 0x10007909
mov ecx, 1
test edx, edx
jne 0x10007911
xor eax, eax
jmp 0x10007916
sub eax, edx
sar eax, 9
lea esi, [eax + ecx]
test esi, esi
mov eax, esi
jge 0x10007921
xor eax, eax
shl eax, 9
push eax
call sub.MFC42.DLL_operatornew
mov edx, dword [ebx + 4]
add esp, 4
mov edi, eax
mov ecx, ebx
push edi
push ebp
push edx
call fcn.10008260
lea ecx, [esp + 0x1c]
mov dword [esp + 0x14], eax
push ecx
push 1
push eax
mov ecx, ebx
call fcn.100082a0
mov edx, dword [esp + 0x14]
mov eax, dword [ebx + 8]
add edx, 0x200
mov ecx, ebx
push edx
push eax
push ebp
call fcn.10008260
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
shl esi, 9
add esi, edi
add esp, 4
mov ecx, ebx
mov dword [ebx + 0xc], esi
call fcn.10008240
inc eax
mov dword [ebx + 4], edi
shl eax, 9
add eax, edi
mov dword [ebx + 8], eax
mov eax, dword [esp + 0x18]
inc eax
mov dword [esp + 0x18], eax
jmp 0x100078ac
mov ecx, eax
sub ecx, ebp
sar ecx, 9
cmp ecx, 1
jae 0x10007a05
lea ecx, [ebp + 0x200]
push ecx
push eax
push ebp
mov ecx, ebx
call fcn.10008260
mov eax, dword [ebx + 8]
lea edx, [esp + 0x1c]
mov ecx, eax
push edx
sub ecx, ebp
mov edx, 1
sar ecx, 9
sub edx, ecx
mov ecx, ebx
push edx
push eax
call fcn.100082a0
mov eax, dword [ebx + 8]
cmp ebp, eax
je 0x10007a61
mov edi, ebp
add ebp, 0x200
mov ecx, 0x80
lea esi, [esp + 0x1c]
cmp ebp, eax
rep movsd dword es:[edi], dword [esi]
jne 0x100079ec
jmp 0x10007a61
lea ecx, [eax - 0x200]
push eax
push eax
mov dword [esp + 0x1c], ecx
push ecx
mov ecx, ebx
call fcn.10008260
mov edx, dword [ebx + 8]
lea eax, [edx - 0x200]
cmp ebp, eax
je 0x10007a40
sub eax, 0x200
sub edx, 0x200
mov ecx, 0x80
mov esi, eax
mov edi, edx
cmp eax, ebp
rep movsd dword es:[edi], dword [esi]
jne 0x10007a26
lea eax, [ebp + 0x200]
cmp ebp, eax
je 0x10007a61
mov edi, ebp
add ebp, 0x200
mov ecx, 0x80
lea esi, [esp + 0x1c]
cmp ebp, eax
rep movsd dword es:[edi], dword [esi]
jne 0x10007a4a
mov eax, dword [ebx + 8]
add eax, 0x200
mov dword [ebx + 8], eax
mov eax, dword [esp + 0x18]
inc eax
mov dword [esp + 0x18], eax
jmp 0x100078ac
mov eax, dword [esp + 0x10]
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x20c
ret 0xc