Function at 0x4eca9946
Capabilities:
Query or enumerate registry value

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x64c
mov eax, dword [section..data]
push ebx
push esi
mov dword [ebp - 4], eax
lea eax, [ebp - 0x634]
push eax
push 9
xor ebx, ebx
push ebx
push 0x4eca99a0
mov esi, 0x208
push 0x80000002
mov dword [ebp - 0x648], ecx
mov dword [ebp - 0x62c], ebx
mov dword [ebp - 0x63c], esi
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
cmp eax, ebx
jne 0x4ecc9ddd
jmp 0x4ecc9b41
leave
ret
push esi
call fcn.4ec52209
cmp eax, ebx
mov dword [ebp - 0x620], eax
je 0x4ecc9ddd
push edi
mov edi, dword [ebp - 0x63c]
mov esi, dword [sym.imp.ADVAPI32.dll_RegEnumValueW]
lea eax, [ebp - 0x624]
push eax
push dword [ebp - 0x620]
lea eax, [ebp - 0x638]
push ebx
push ebx
push eax
lea eax, [ebp - 0x61c]
push eax
push dword [ebp - 0x62c]
mov dword [ebp - 0x638], 0x104
push dword [ebp - 0x634]
mov dword [ebp - 0x624], edi
call esi
cmp eax, 0xea
jne 0x4ecc9bf7
push dword [ebp - 0x620]
add edi, edi
mov dword [ebp - 0x63c], edi
call fcn.4ec5246a
push edi
call fcn.4ec52209
cmp eax, ebx
mov dword [ebp - 0x620], eax
je 0x4ecc9ddc
lea ecx, [ebp - 0x624]
push ecx
push eax
push ebx
push ebx
lea eax, [ebp - 0x638]
push eax
lea eax, [ebp - 0x61c]
push eax
push dword [ebp - 0x62c]
mov dword [ebp - 0x624], edi
push dword [ebp - 0x634]
call esi
cmp eax, ebx
jne 0x4ecc9dbd
inc dword [ebp - 0x62c]
push 0xc
call fcn.4ec52209
mov esi, eax
cmp esi, ebx
je 0x4ecc9b56
mov eax, dword [0x4edd0950]
mov ecx, dword [eax + 8]
lea eax, [ebp - 0x61c]
push eax
mov dword [ebp - 0x644], ebx
call fcn.4ec7d890
cmp eax, ebx
mov dword [esi], eax
jne 0x4ecc9c41
push esi
call fcn.4ec5246a
jmp 0x4ecc9b56
xor eax, eax
mov dword [esi + 4], ebx
mov dword [esi + 8], ebx
shr dword [ebp - 0x624], 1
mov dword [ebp - 0x628], ebx
mov dword [ebp - 0x640], eax
mov dword [ebp - 0x630], ebx
je 0x4ecc9dab
mov ecx, dword [ebp - 0x620]
mov ax, word [ecx + eax*2]
cmp ax, 0x2c
jne 0x4ecc9c8c
mov dword [ebp - 0x628], ebx
mov dword [ebp - 0x630], 1
jmp 0x4ecc9d92
cmp ax, bx
jne 0x4ecc9d7e
mov eax, dword [ebp - 0x628]
cmp eax, ebx
jbe 0x4ecc9d92
cmp dword [ebp - 0x630], ebx
mov word [ebp + eax*2 - 0x414], bx
mov dword [ebp - 0x628], ebx
je 0x4ecc9cd5
mov eax, dword [0x4edd0950]
mov ecx, dword [eax + 8]
lea eax, [ebp - 0x414]
push eax
call fcn.4ec7d890
mov dword [ebp - 0x630], ebx
jmp 0x4ecc9d48
lea eax, [ebp - 0x64c]
push eax
lea eax, [ebp - 0x414]
push eax
lea eax, [ebp - 0x20c]
push eax
call fcn.4ed1b24b
test eax, eax
je 0x4ecc9d92
lea eax, [ebp - 0x20c]
push eax
push eax
call fcn.4ec7d854
mov eax, dword [0x4edd0950]
mov ecx, dword [eax + 8]
lea eax, [ebp - 0x20c]
push eax
call fcn.4ed10b61
cmp eax, ebx
jne 0x4ecc9d34
mov eax, dword [0x4edd0950]
mov ecx, dword [eax + 8]
lea eax, [ebp - 0x20c]
push eax
call fcn.4ec7f359
cmp eax, ebx
je 0x4ecc9d92
mov eax, dword [eax + 0xc]
mov ecx, dword [0x4edd0950]
mov eax, dword [eax]
mov ecx, dword [ecx + 8]
push eax
call fcn.4ec7d890
mov edi, eax
cmp edi, ebx
je 0x4ecc9d92
push 8
call fcn.4ec52209
cmp eax, ebx
je 0x4ecc9d92
mov ecx, dword [ebp - 0x644]
cmp ecx, ebx
mov dword [eax], edi
jne 0x4ecc9d70
mov ecx, dword [esi + 4]
mov dword [eax + 4], ecx
mov dword [esi + 4], eax
jmp 0x4ecc9d76
mov dword [eax + 4], ebx
mov dword [ecx + 4], eax
mov dword [ebp - 0x644], eax
jmp 0x4ecc9d92
mov ecx, dword [ebp - 0x628]
inc dword [ebp - 0x628]
mov word [ebp + ecx*2 - 0x414], ax
mov eax, dword [ebp - 0x640]
inc eax
cmp eax, dword [ebp - 0x624]
mov dword [ebp - 0x640], eax
jb 0x4ecc9c67
mov eax, dword [ebp - 0x648]
mov ecx, dword [eax]
mov dword [esi + 8], ecx
mov dword [eax], esi
jmp 0x4ecc9b56
cmp dword [ebp - 0x620], ebx
je 0x4ecc9dd0
push dword [ebp - 0x620]
call fcn.4ec5246a
push dword [ebp - 0x634]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
pop edi
mov ecx, dword [ebp - 4]
pop esi
pop ebx
call fcn.4ecfd994
jmp 0x4eca9a28