Function at 0x470d10
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x184
mov eax, dword [0x5732cc]
xor eax, ebp
mov dword [ebp - 0x1c], eax
push esi
push edi
mov byte [ebp - 1], 0
cmp dword [ebp + 0xc], 0
jbe 0x47106a
mov eax, dword [ebp + 0xc]
push eax
push 0
mov ecx, dword [ebp + 8]
push ecx
call fcn.004dba80
add esp, 0xc
mov edx, dword [ebp + 0xc]
sub edx, 1
mov dword [ebp - 0x18], edx
mov dword [ebp - 0xc], 1
mov dword [ebp - 0x10], 0x100
lea eax, [ebp - 0x14]
push eax
push 0x20219
push 0
push 0x51d95c
push reloc.OLEAUT32.dll_SysReAllocString
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x470e15
lea ecx, [ebp - 0x10]
push ecx
lea edx, [ebp - 0x128]
push edx
lea eax, [ebp - 0xc]
push eax
push 0
push 0x51d984
mov ecx, dword [ebp - 0x14]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
jne 0x470e0b
lea edx, [ebp - 0x128]
mov dword [ebp - 0x12c], edx
mov eax, dword [ebp + 8]
mov dword [ebp - 0x130], eax
mov ecx, dword [ebp - 0x130]
mov dword [ebp - 0x134], ecx
mov edx, dword [ebp - 0x12c]
mov al, byte [edx]
mov byte [ebp - 0x135], al
mov ecx, dword [ebp - 0x130]
mov dl, byte [ebp - 0x135]
mov byte [ecx], dl
mov eax, dword [ebp - 0x12c]
add eax, 1
mov dword [ebp - 0x12c], eax
mov ecx, dword [ebp - 0x130]
add ecx, 1
mov dword [ebp - 0x130], ecx
cmp byte [ebp - 0x135], 0
jne 0x470dc4
mov byte [ebp - 1], 1
mov edx, dword [ebp - 0x14]
push edx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov al, byte [0x51d98c]
mov byte [ebp - 0x128], al
call fcn.00471580
movzx ecx, al
test ecx, ecx
je 0x47106a
lea edx, [ebp - 8]
push edx
push 0x20119
push 0
push 0x51d990
push reloc.OLEAUT32.dll_SysReAllocString
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x47106a
lea eax, [ebp - 0x10]
push eax
lea ecx, [ebp - 0x128]
push ecx
lea edx, [ebp - 0xc]
push edx
push 0
push 0x51d9b8
mov eax, dword [ebp - 8]
push eax
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
jne 0x471060
mov ecx, dword [ebp + 8]
mov dword [ebp - 0x13c], ecx
mov edx, dword [ebp - 0x13c]
add edx, 1
mov dword [ebp - 0x140], edx
mov eax, dword [ebp - 0x13c]
mov cl, byte [eax]
mov byte [ebp - 0x141], cl
add dword [ebp - 0x13c], 1
cmp byte [ebp - 0x141], 0
jne 0x470e93
mov edx, dword [ebp - 0x13c]
sub edx, dword [ebp - 0x140]
mov dword [ebp - 0x148], edx
jne 0x470f2e
lea eax, [ebp - 0x128]
mov dword [ebp - 0x14c], eax
mov ecx, dword [ebp + 8]
mov dword [ebp - 0x150], ecx
mov edx, dword [ebp - 0x150]
mov dword [ebp - 0x154], edx
mov eax, dword [ebp - 0x14c]
mov cl, byte [eax]
mov byte [ebp - 0x155], cl
mov edx, dword [ebp - 0x150]
mov al, byte [ebp - 0x155]
mov byte [edx], al
mov ecx, dword [ebp - 0x14c]
add ecx, 1
mov dword [ebp - 0x14c], ecx
mov edx, dword [ebp - 0x150]
add edx, 1
mov dword [ebp - 0x150], edx
cmp byte [ebp - 0x155], 0
jne 0x470ee6
jmp 0x471010
mov eax, dword [ebp + 8]
add eax, 0xffffffff
mov dword [ebp - 0x15c], eax
mov ecx, dword [ebp - 0x15c]
mov dl, byte [ecx + 1]
mov byte [ebp - 0x15d], dl
add dword [ebp - 0x15c], 1
cmp byte [ebp - 0x15d], 0
jne 0x470f3a
mov edi, dword [ebp - 0x15c]
mov ax, word [0x51d9c0]
mov word [edi], ax
mov cl, byte [0x51d9c2]
mov byte [edi + 2], cl
lea edx, [ebp - 0x128]
mov dword [ebp - 0x164], edx
mov eax, dword [ebp - 0x164]
mov dword [ebp - 0x168], eax
mov ecx, dword [ebp - 0x164]
mov dl, byte [ecx]
mov byte [ebp - 0x169], dl
add dword [ebp - 0x164], 1
cmp byte [ebp - 0x169], 0
jne 0x470f89
mov eax, dword [ebp - 0x164]
sub eax, dword [ebp - 0x168]
mov ecx, dword [ebp - 0x168]
mov dword [ebp - 0x170], ecx
mov dword [ebp - 0x174], eax
mov edx, dword [ebp + 8]
add edx, 0xffffffff
mov dword [ebp - 0x178], edx
mov eax, dword [ebp - 0x178]
mov cl, byte [eax + 1]
mov byte [ebp - 0x179], cl
add dword [ebp - 0x178], 1
cmp byte [ebp - 0x179], 0
jne 0x470fd1
mov edi, dword [ebp - 0x178]
mov esi, dword [ebp - 0x170]
mov edx, dword [ebp - 0x174]
mov ecx, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [ebp + 8]
add eax, 0xffffffff
mov dword [ebp - 0x180], eax
mov ecx, dword [ebp - 0x180]
mov dl, byte [ecx + 1]
mov byte [ebp - 0x181], dl
add dword [ebp - 0x180], 1
cmp byte [ebp - 0x181], 0
jne 0x47101c
mov edi, dword [ebp - 0x180]
mov eax, dword [0x51d9c4]
mov dword [edi], eax
mov ecx, dword [0x51d9c8]
mov dword [edi + 4], ecx
mov dx, word [0x51d9cc]
mov word [edi + 8], dx
mov byte [ebp - 1], 1
mov eax, dword [ebp - 8]
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov al, byte [ebp - 1]
pop edi
pop esi
mov ecx, dword [ebp - 0x1c]
xor ecx, ebp
call fcn.004db901
mov esp, ebp
pop ebp
ret