Function at 0x1004c02
Capabilities:
Query or enumerate registry key

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x20
push ebx
xor ebx, ebx
cmp dword [ebp + 8], ebx
push esi
push edi
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0xc], ebx
mov dword [ebp - 0x20], ebx
mov dword [ebp - 4], ebx
mov dword [ebp - 8], ebx
je 0x1004e5c
cmp dword [ebp + 0xc], ebx
je 0x1004e5c
mov eax, dword [ebp + 0x10]
cmp eax, ebx
je 0x1004e5c
mov esi, dword [ebp + 0x14]
cmp esi, ebx
je 0x1004e5c
mov edx, dword [esi + 4]
xor edi, edi
inc edi
cmp edx, edi
jne 0x1004c62
cmp dword [eax + 0x4c], edi
jne 0x1004c62
cmp dword [eax + 0x44], ebx
jne 0x1004c62
cmp dword [eax + 0x54], ebx
je 0x1004c93
mov ecx, dword [eax + 0x4c]
cmp ecx, ebx
je 0x1004c7b
cmp ecx, edi
jne 0x1004c7b
cmp edx, edi
jne 0x1004c93
cmp dword [eax + 0x44], ebx
jne 0x1004c7b
cmp dword [eax + 0x54], ebx
je 0x1004c93
push esi
push eax
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.01004a30
cmp eax, ebx
mov dword [ebp + 0x14], eax
jne 0x1004e68
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
lea eax, [ebp - 0xc]
push eax
lea eax, [ebp - 0x14]
push eax
push ebx
push ebx
push ebx
push dword [ebp + 8]
call dword [sym.imp.ADVAPI32.dll_RegQueryInfoKeyW]
cmp eax, ebx
mov dword [ebp + 0x14], eax
je 0x1004cbf
push eax
call fcn.01002093
jmp 0x1004e68
cmp dword [ebp - 0x14], ebx
mov eax, dword [ebp - 0xc]
je 0x1004cd2
cmp eax, ebx
jne 0x1004cd2
mov eax, 0x100
jmp 0x1004cdb
cmp eax, 0x100
jae 0x1004cdb
add eax, eax
inc eax
mov dword [ebp - 0xc], eax
add eax, eax
push eax
call fcn.010099e1
cmp eax, ebx
mov dword [ebp - 4], eax
je 0x1004d10
push ebx
push dword [ebp + 0xc]
call fcn.01009813
mov ecx, dword [ebp - 0xc]
lea eax, [eax + ecx + 1]
mov dword [ebp - 0x1c], eax
add eax, eax
push eax
call fcn.010099e1
cmp eax, ebx
mov dword [ebp - 8], eax
jne 0x1004d17
push 0xe
jmp 0x1004e5e
cmp dword [ebp - 0x14], ebx
mov dword [ebp + 0x14], ebx
mov dword [ebp - 0x10], ebx
jbe 0x1004e68
mov eax, dword [ebp - 0xc]
mov edi, dword [ebp - 4]
push ebx
push ebx
mov dword [ebp - 0x18], eax
mov ecx, eax
push ebx
xor eax, eax
push ebx
rep stosw word es:[edi], ax
lea eax, [ebp - 0x18]
push eax
push dword [ebp - 4]
push dword [ebp - 0x10]
push dword [ebp + 8]
call dword [sym.imp.ADVAPI32.dll_RegEnumKeyExW]
cmp eax, ebx
mov dword [ebp + 0x14], eax
jne 0x1004e48
mov edi, dword [ebp + 0x10]
xor ecx, ecx
inc ecx
mov dword [esi + 4], ecx
mov dword [esi + 0xc], ebx
mov eax, dword [edi + 0x4c]
test cl, al
je 0x1004d9c
mov eax, dword [ebp - 0x18]
push edi
add eax, eax
push eax
push ecx
push dword [ebp - 4]
call fcn.01003f67
cmp eax, ebx
mov dword [esi + 4], eax
jne 0x1004d93
cmp dword [edi + 0x18], ebx
jne 0x1004da8
cmp dword [edi + 0x4c], 1
je 0x1004e4b
jmp 0x1004da8
mov dword [esi + 0xc], 1
jmp 0x1004da8
cmp eax, ebx
jne 0x1004da5
cmp dword [edi + 0x44], ebx
je 0x1004da8
mov dword [esi + 4], ebx
push dword [ebp - 0x1c]
push dword [ebp + 0xc]
push dword [ebp - 8]
call fcn.01009ee4
push dword [ebp - 0x1c]
push 0x10014b0
push dword [ebp - 8]
call fcn.0100a3ad
push dword [ebp - 0x1c]
push dword [ebp - 4]
push dword [ebp - 8]
call fcn.0100a3ad
xor eax, eax
inc eax
cmp dword [esi + 4], eax
mov dword [esi], eax
jne 0x1004e0e
cmp dword [edi + 0x44], ebx
jne 0x1004e0e
cmp dword [edi + 0x54], ebx
jne 0x1004e0e
push dword [ebp - 8]
inc dword [esi + 0x10]
push 0x1001830
push eax
push eax
mov dword [esi + 0xc], ebx
mov dword [esi], ebx
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x20
push eax
call fcn.0100b19f
xor eax, eax
add esp, 0x14
inc eax
cmp dword [edi + 0x18], eax
jne 0x1004e4b
lea eax, [ebp - 0x20]
push eax
push 0x20019
push ebx
push dword [ebp - 4]
push dword [ebp + 8]
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x1004e48
push esi
push edi
push dword [ebp - 8]
push dword [ebp - 0x20]
call fcn.01004c02
mov dword [ebp + 0x14], eax
lea eax, [ebp - 0x20]
push eax
call fcn.01001b65
jmp 0x1004e4b
mov dword [ebp + 0x14], ebx
inc dword [ebp - 0x10]
mov eax, dword [ebp - 0x10]
cmp eax, dword [ebp - 0x14]
jb 0x1004d26
jmp 0x1004e68
push 0x57
pop esi
push esi
call fcn.01002093
mov dword [ebp + 0x14], esi
lea eax, [ebp - 4]
push eax
call fcn.01009f4b
lea eax, [ebp - 8]
push eax
call fcn.01009f4b
mov eax, dword [ebp + 0x14]
pop edi
pop esi
pop ebx
leave
ret 0x10