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

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x69d8
call fcn.0040a8b0
mov al, byte [0x40b448]
push ebx
push edi
push 0x40
mov byte [ebp - 0x1c8], al
pop ecx
xor eax, eax
lea edi, [ebp - 0x1c7]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
lea eax, [ebp - 0x48]
xor ebx, ebx
push eax
lea eax, [ebp - 0x54]
push eax
lea eax, [ebp - 0x50]
push eax
lea eax, [ebp - 0x3c]
push eax
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 0x4c]
push eax
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 0x28]
push ebx
push eax
lea eax, [ebp - 0x1c8]
mov dword [ebp - 0x28], 0x104
push eax
mov dword [ebp - 8], ebx
push dword [ebp + 8]
mov dword [ebp - 0x1c], 0x3fff
call dword [sym.imp.ADVAPI32.dll_RegQueryInfoKeyA]
cmp dword [ebp - 8], ebx
je 0x404ec5
xor edi, edi
cmp dword [ebp - 8], ebx
jbe 0x404ec5
lea eax, [ebp - 0x48]
mov dword [ebp - 0x20], 0xff
push eax
push ebx
push ebx
lea eax, [ebp - 0x20]
push ebx
push eax
lea eax, [ebp - 0x2c8]
push eax
push edi
push dword [ebp + 8]
call dword [sym.imp.ADVAPI32.dll_RegEnumKeyExA]
test eax, eax
jne 0x404ebf
lea eax, [ebp - 1]
lea ecx, [ebp - 0x64]
push eax
push 0x40b5fc
call dword [sym.imp.MSVCP60.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_char_const___class_std::allocator_char__const__]
push eax
lea eax, [ebp - 0x2c8]
push eax
lea eax, [ebp - 0x38]
push eax
call sub.MSVCP60.dll_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char_____cdecl_std::operator_char_const___class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const__
add esp, 0xc
mov ecx, 0x40f888
push eax
call dword [0x40b290]
lea ecx, [ebp - 0x38]
call dword [sym.imp.MSVCP60.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
lea ecx, [ebp - 0x64]
call dword [sym.imp.MSVCP60.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
inc edi
cmp edi, dword [ebp - 8]
jb 0x404e54
cmp dword [ebp - 0x10], ebx
je 0x405046
mov dword [ebp - 0xc], ebx
jbe 0x405046
xor eax, eax
lea edi, [ebp - 0x33]
mov byte [ebp - 0x34], bl
mov dword [ebp - 0x18], 0x2710
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
lea eax, [ebp - 0x18]
mov dword [ebp - 0x1c], 0x3fff
push eax
lea eax, [ebp - 0x29d8]
push eax
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp - 0x1c]
push ebx
push eax
lea eax, [ebp - 0x69d8]
mov byte [ebp - 0x69d8], bl
push eax
push dword [ebp - 0xc]
push dword [ebp + 8]
call dword [sym.imp.ADVAPI32.dll_RegEnumValueA]
test eax, eax
jne 0x405037
lea eax, [ebp - 0x34]
push 0xa
push eax
push dword [ebp - 0x24]
call dword [sym.imp.MSVCRT.dll__itoa]
add esp, 0xc
lea eax, [ebp - 1]
mov edi, 0x40b5fc
lea ecx, [ebp - 0x94]
push eax
push edi
call dword [sym.imp.MSVCP60.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_char_const___class_std::allocator_char__const__]
push eax
lea eax, [ebp - 0x69d8]
push eax
lea eax, [ebp - 0x64]
push eax
call sub.MSVCP60.dll_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char_____cdecl_std::operator_char_const___class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const__
add esp, 0xc
mov ecx, 0x40f820
push eax
call dword [0x40b290]
lea ecx, [ebp - 0x64]
call dword [sym.imp.MSVCP60.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
lea ecx, [ebp - 0x94]
call dword [sym.imp.MSVCP60.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
lea eax, [ebp - 0x13]
lea ecx, [ebp - 0xb4]
push eax
push edi
call dword [sym.imp.MSVCP60.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_char_const___class_std::allocator_char__const__]
push eax
lea eax, [ebp - 0x34]
push eax
lea eax, [ebp - 0x74]
push eax
call sub.MSVCP60.dll_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char_____cdecl_std::operator_char_const___class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const__
add esp, 0xc
mov ecx, 0x40f870
push eax
call dword [0x40b290]
lea ecx, [ebp - 0x74]
call dword [sym.imp.MSVCP60.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
lea ecx, [ebp - 0xb4]
call dword [sym.imp.MSVCP60.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
lea eax, [ebp - 0x11]
lea ecx, [ebp - 0x84]
push eax
push str._regsplt_
call dword [sym.imp.MSVCP60.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_char_const___class_std::allocator_char__const__]
push eax
lea eax, [ebp - 0x12]
push eax
lea eax, [ebp - 0x29d8]
push dword [ebp - 0x18]
lea ecx, [ebp - 0xa4]
push eax
call dword [sym.imp.MSVCP60.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_char_const___unsigned_int__class_std::allocator_char__const__]
push eax
lea eax, [ebp - 0xc4]
push eax
call sub.MSVCP60.dll_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char_____cdecl_std::operator_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const___class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const__
add esp, 0xc
mov ecx, 0x40f898
push eax
call dword [0x40b290]
lea ecx, [ebp - 0xc4]
call dword [sym.imp.MSVCP60.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
lea ecx, [ebp - 0xa4]
call dword [sym.imp.MSVCP60.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
lea ecx, [ebp - 0x84]
call dword [sym.imp.MSVCP60.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
inc dword [ebp - 0xc]
mov eax, dword [ebp - 0xc]
cmp eax, dword [ebp - 0x10]
jb 0x404ed7
pop edi
pop ebx
leave
ret