Function at 0x45497d
Capabilities:
Query or enumerate registry key

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5699e4
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x888
push edi
mov dword [ebp - 0x890], ecx
mov dword [ebp - 4], 0
mov dword [ebp - 0x848], 0
lea ecx, [ebp + 0xc]
call fcn.0054d877
mov eax, dword [0x5be480]
mov dword [ebp - 0x2c], eax
mov byte [ebp - 4], 1
mov ecx, dword [0x5be480]
mov dword [ebp - 0x28], ecx
mov byte [ebp - 4], 2
mov word [ebp - 0x844], 0
mov ecx, 0x1ff
xor eax, eax
lea edi, [ebp - 0x842]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
mov dword [ebp - 0x854], 0x800
lea ecx, [ebp - 0x44]
call fcn.0054c3ab
mov byte [ebp - 4], 3
push 0xffffffffffffffff
push 0
lea ecx, [ebp - 0x44]
call fcn.0054c43e
mov edx, dword [ebp - 0x854]
push edx
lea eax, [ebp - 0x844]
push eax
mov ecx, dword [ebp - 0x848]
push ecx
mov edx, dword [ebp + 8]
push edx
call dword [sym.imp.ADVAPI32.dll_RegEnumKeyW]
cmp eax, 0x103
je 0x454a84
mov eax, dword [ebp - 0x848]
add eax, 1
mov dword [ebp - 0x848], eax
mov dword [ebp - 0x854], 0x800
lea ecx, [ebp - 0x844]
push ecx
lea ecx, [ebp - 0x2c]
call fcn.0054d4bf
lea ecx, [ebp - 0x2c]
call fcn.0054d877
mov edx, dword [ebp - 0x3c]
mov dword [ebp - 0x864], edx
lea eax, [ebp - 0x2c]
push eax
mov ecx, dword [ebp - 0x864]
push ecx
lea ecx, [ebp - 0x44]
call fcn.0054c5b3
jmp 0x454a10
mov edx, dword [ebp - 0x3c]
mov dword [ebp - 0x20], edx
mov dword [ebp - 0x85c], 0
mov al, byte [ebp - 0x858]
mov byte [ebp - 0x1c], al
mov ecx, dword [ebp - 0x20]
mov dword [ebp - 0x868], ecx
cmp dword [ebp - 0x868], 0
jge 0x454ab9
mov dword [ebp - 0x868], 0
mov edx, dword [ebp - 0x868]
shl edx, 2
push edx
call fcn.0054d061
add esp, 4
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x870], eax
mov ecx, dword [ebp - 0x18]
mov dword [ebp - 0x86c], ecx
jmp 0x454b00
mov edx, dword [ebp - 0x870]
sub edx, 1
mov dword [ebp - 0x870], edx
mov eax, dword [ebp - 0x86c]
add eax, 4
mov dword [ebp - 0x86c], eax
cmp dword [ebp - 0x870], 0
jbe 0x454b21
lea ecx, [ebp - 0x85c]
push ecx
mov edx, dword [ebp - 0x86c]
push edx
call fcn.0045aec0
add esp, 8
jmp 0x454ae2
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x20]
lea edx, [eax + ecx*4]
mov dword [ebp - 0x14], edx
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x10], eax
mov byte [ebp - 4], 4
mov dword [ebp - 0x84c], 0
jmp 0x454b52
mov ecx, dword [ebp - 0x84c]
add ecx, 1
mov dword [ebp - 0x84c], ecx
mov edx, dword [ebp - 0x84c]
cmp edx, dword [ebp - 0x20]
jge 0x454bb7
mov eax, dword [ebp - 0x40]
mov ecx, dword [ebp - 0x84c]
mov edx, dword [eax + ecx*4]
mov eax, dword [edx - 8]
mov dword [ebp - 0x874], eax
mov ecx, dword [ebp - 0x18]
mov dword [ebp - 0x878], ecx
mov edx, dword [ebp - 0x874]
push edx
mov eax, dword [ebp - 0x40]
mov ecx, dword [ebp - 0x84c]
lea ecx, [eax + ecx*4]
call fcn.0054d76d
mov edx, dword [ebp - 0x84c]
mov ecx, dword [ebp - 0x878]
mov dword [ecx + edx*4], eax
push 0xffffffffffffffff
mov edx, dword [ebp - 0x40]
mov eax, dword [ebp - 0x84c]
lea ecx, [edx + eax*4]
call fcn.0054d7bd
jmp 0x454b43
mov ecx, dword [ebp - 0x18]
mov dword [ebp - 0x24], ecx
cmp dword [ebp - 0x18], 0
jne 0x454bcf
mov dword [ebp - 0x894], 0
jmp 0x454bde
mov edx, dword [ebp - 0x14]
sub edx, dword [ebp - 0x18]
sar edx, 2
mov dword [ebp - 0x894], edx
push 0x454d3d
push 4
mov eax, dword [ebp - 0x894]
push eax
mov ecx, dword [ebp - 0x24]
push ecx
call fcn.00538260
add esp, 0x10
mov edx, dword [ebp - 0x18]
mov dword [ebp - 0x850], edx
mov dword [ebp - 0x30], 0
jmp 0x454c22
mov eax, dword [ebp - 0x30]
add eax, 1
mov dword [ebp - 0x30], eax
mov ecx, dword [ebp - 0x850]
add ecx, 4
mov dword [ebp - 0x850], ecx
mov edx, dword [ebp - 0x30]
cmp edx, dword [ebp - 0x20]
jge 0x454c80
mov eax, dword [ebp - 0x850]
mov ecx, dword [eax]
push ecx
lea ecx, [ebp - 0x28]
call fcn.0054d4bf
mov edx, dword [ebp - 0x28]
mov dword [ebp - 0x87c], edx
mov eax, dword [ebp - 0x87c]
push eax
mov ecx, dword [ebp + 0xc]
push ecx
call fcn.00537cf5
add esp, 8
mov dword [ebp - 0x880], eax
xor edx, edx
cmp dword [ebp - 0x880], 0
sete dl
and edx, 0xff
test edx, edx
je 0x454c7e
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x848], eax
jmp 0x454c80
jmp 0x454c0a
mov ecx, dword [ebp - 0x848]
mov dword [ebp - 0x860], ecx
mov byte [ebp - 4], 3
mov edx, dword [ebp - 0x18]
mov dword [ebp - 0x884], edx
jmp 0x454caa
mov eax, dword [ebp - 0x884]
add eax, 4
mov dword [ebp - 0x884], eax
mov ecx, dword [ebp - 0x884]
cmp ecx, dword [ebp - 0x14]
je 0x454cb7
jmp 0x454c9b
mov edx, dword [ebp - 0x10]
sub edx, dword [ebp - 0x18]
sar edx, 2
mov dword [ebp - 0x88c], edx
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x888], eax
mov ecx, dword [ebp - 0x888]
push ecx
call fcn.0054d08a
add esp, 4
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0
mov dword [ebp - 0x10], 0
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x44]
call fcn.0054c3de
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x28]
call fcn.0054d328
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x2c]
call fcn.0054d328
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp + 0xc]
call fcn.0054d328
mov eax, dword [ebp - 0x860]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
mov esp, ebp
pop ebp
ret 8