Function at 0x10025080
Capabilities:
Query or enumerate registry key
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x10044cd5
mov eax, dword fs:[0]
push eax
sub esp, 0x278
mov eax, dword [0x1005a4a0]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ebx, dword [ebp + 8]
xor edi, edi
mov dword [ebp - 0x278], edi
push edi
push 0x10047a54
lea ecx, [ebp - 0x26c]
mov dword [ebp - 0x280], ebx
mov dword [ebp - 0x258], 0xf
mov dword [ebp - 0x25c], edi
mov byte [ebp - 0x26c], 0
call fcn.10004791
lea eax, [ebp - 0x250]
push eax
mov dword [ebp - 4], edi
mov dword [ebp - 0x270], edi
call fcn.10022fd0
mov esi, 0x10
add esp, 4
cmp dword [eax + 0x14], esi
jb 0x1002510b
mov eax, dword [eax]
lea ecx, [ebp - 0x270]
push ecx
push eax
push reloc.OLEAUT32.dll_SysReAllocString
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyA]
cmp dword [ebp - 0x23c], esi
jb 0x10025135
mov edx, dword [ebp - 0x250]
push edx
call fcn.1002eeea
add esp, 4
mov esi, dword [ebp - 0x270]
cmp esi, edi
jne 0x10025179
lea eax, [ebp - 0x26c]
mov dword [ebx + 0x14], 0xf
mov dword [ebx + 0x10], edi
push eax
mov ecx, ebx
mov byte [ebx], 0
call fcn.1000742a
cmp dword [ebp - 0x258], 0x10
jb 0x10025172
mov ecx, dword [ebp - 0x26c]
push ecx
call fcn.1002eeea
add esp, 4
mov eax, ebx
jmp 0x1002549d
push 0x103
lea edx, [ebp - 0x113]
push edi
push edx
mov dword [ebp - 0x274], edi
mov byte [ebp - 0x114], 0
call fcn.10030e40
push 0x103
lea eax, [ebp - 0x217]
push edi
push eax
mov byte [ebp - 0x218], 0
call fcn.10030e40
add esp, 0x18
push 0x104
lea ecx, [ebp - 0x114]
push ecx
push edi
push esi
mov dword [ebp - 0x284], 1
mov dword [ebp - 0x27c], edi
call dword [sym.imp.ADVAPI32.dll_RegEnumKeyA]
cmp eax, edi
jne 0x10025386
lea eax, [ebp - 0x114]
mov dword [ebp - 0x220], 0xf
mov dword [ebp - 0x224], edi
mov byte [ebp - 0x234], 0
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x10025200
sub eax, edx
push eax
lea edx, [ebp - 0x114]
push edx
lea ecx, [ebp - 0x234]
call fcn.10004791
push 1
push 0x10048520
lea ecx, [ebp - 0x234]
mov byte [ebp - 4], 1
call fcn.100046f8
lea eax, [ebp - 0x250]
push eax
call fcn.100230a0
add esp, 4
mov ebx, 0x10
mov byte [ebp - 4], 2
cmp dword [eax + 0x14], ebx
jb 0x10025253
mov edx, dword [eax]
jmp 0x10025255
mov edx, eax
mov eax, edx
lea esi, [eax + 1]
lea ebx, [ebx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x10025260
sub eax, esi
push eax
push edx
lea ecx, [ebp - 0x234]
call fcn.100046f8
mov byte [ebp - 4], 1
cmp dword [ebp - 0x23c], ebx
jb 0x10025291
mov ecx, dword [ebp - 0x250]
push ecx
call fcn.1002eeea
add esp, 4
lea edx, [ebp - 0x250]
push edx
mov dword [ebp - 0x27c], 0x104
call fcn.10023170
add esp, 4
cmp dword [eax + 0x14], ebx
jb 0x100252b1
mov eax, dword [eax]
mov ecx, dword [ebp - 0x234]
cmp dword [ebp - 0x220], ebx
jae 0x100252c5
lea ecx, [ebp - 0x234]
lea edx, [ebp - 0x27c]
push edx
lea edx, [ebp - 0x218]
push edx
lea edx, [ebp - 0x284]
push edx
push eax
mov eax, dword [ebp - 0x270]
push ecx
push eax
call dword [sym.imp.SHLWAPI.dll_SHGetValueA]
mov esi, eax
cmp dword [ebp - 0x23c], ebx
jb 0x10025302
mov ecx, dword [ebp - 0x250]
push ecx
call fcn.1002eeea
add esp, 4
cmp esi, edi
jne 0x1002533d
push 1
push 0x100485f8
lea ecx, [ebp - 0x26c]
call fcn.100046f8
lea eax, [ebp - 0x218]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x10025321
sub eax, edx
push eax
lea edx, [ebp - 0x218]
push edx
lea ecx, [ebp - 0x26c]
call fcn.100046f8
inc dword [ebp - 0x274]
mov byte [ebp - 4], 0
cmp dword [ebp - 0x220], ebx
jb 0x1002535e
mov eax, dword [ebp - 0x234]
push eax
call fcn.1002eeea
add esp, 4
mov edx, dword [ebp - 0x274]
mov eax, dword [ebp - 0x270]
push 0x104
lea ecx, [ebp - 0x114]
push ecx
push edx
push eax
call dword [sym.imp.ADVAPI32.dll_RegEnumKeyA]
cmp eax, edi
je 0x100251e0
mov ecx, dword [ebp - 0x270]
push ecx
call dword [sym.imp.KERNEL32.DLL_CloseHandle]
push 0xffffffffffffffff
cmp dword [ebp - 0x25c], edi
je 0x100253bc
push 1
lea edx, [ebp - 0x250]
push edx
lea ecx, [ebp - 0x26c]
call fcn.100059da
mov byte [ebp - 4], 3
mov ebx, 2
jmp 0x100253f4
push edi
lea eax, [ebp - 0x26c]
push eax
lea ecx, [ebp - 0x234]
mov dword [ebp - 0x220], 0xf
mov dword [ebp - 0x224], edi
mov byte [ebp - 0x234], 0
call fcn.100044e0
mov ebx, 4
lea eax, [ebp - 0x234]
mov dword [ebp - 4], ebx
mov esi, dword [ebp - 0x280]
mov dword [esi + 0x14], 0xf
mov dword [esi + 0x10], edi
push eax
mov ecx, esi
mov dword [ebp - 0x278], ebx
mov byte [esi], 0
call fcn.1000742a
or ebx, 1
test bl, 4
je 0x1002544f
and ebx, 0xfffffffb
cmp dword [ebp - 0x220], 0x10
jb 0x10025438
mov ecx, dword [ebp - 0x234]
push ecx
call fcn.1002eeea
add esp, 4
mov dword [ebp - 0x220], 0xf
mov dword [ebp - 0x224], edi
mov byte [ebp - 0x234], 0
test bl, 2
je 0x10025483
cmp dword [ebp - 0x23c], 0x10
jb 0x1002546c
mov edx, dword [ebp - 0x250]
push edx
call fcn.1002eeea
add esp, 4
mov dword [ebp - 0x23c], 0xf
mov dword [ebp - 0x240], edi
mov byte [ebp - 0x250], 0
cmp dword [ebp - 0x258], 0x10
jb 0x1002549b
mov eax, dword [ebp - 0x26c]
push eax
call fcn.1002eeea
add esp, 4
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.10030fba
mov esp, ebp
pop ebp
ret