Function at 0x436990
Capabilities:
Query or enumerate registry value

Disassembly:
push 0xffffffffffffffff
push 0x473f1a
mov eax, dword fs:[0]
push eax
sub esp, 0x58
mov eax, dword [0x49fba8]
xor eax, esp
mov dword [esp + 0x54], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x49fba8]
xor eax, esp
push eax
lea eax, [esp + 0x6c]
mov dword fs:[0], eax
mov esi, dword [esp + 0x80]
mov edi, dword [esp + 0x7c]
mov ebp, ecx
lea eax, [esp + 0x18]
push eax
xor ebx, ebx
lea ecx, [esp + 0x30]
push ecx
mov dword [esp + 0x38], ebx
push esi
mov ecx, ebp
mov dword [esp + 0x80], ebx
mov dword [esp + 0x40], edi
mov dword [esp + 0x38], ebx
mov dword [esp + 0x24], ebx
call fcn.00435860
cmp dword [esp + 0x2c], 7
je 0x436a23
push 0x50000
push 0x65d
lea ecx, [esp + 0x40]
call fcn.00435090
push 0x48ede8
lea edx, [esp + 0x3c]
push edx
call sub.MSVCR80.dll__CxxThrowException
mov eax, dword [esp + 0x18]
lea ecx, [esp + 0x14]
push ecx
add eax, 2
push eax
lea ecx, [esp + 0x24]
mov dword [esp + 0x1c], ebx
call fcn.00406e20
mov eax, dword [esp + 0x20]
cmp eax, ebx
mov dword [esp + 0x74], 1
je 0x436a57
mov edx, dword [esp + 0x24]
sub edx, eax
sar edx, 1
jne 0x436a61
call dword [sym.imp.MSVCR80.dll__invalid_parameter_noinfo]
mov eax, dword [esp + 0x20]
cmp dword [esi + 0x18], 8
jb 0x436a6c
mov esi, dword [esi + 4]
jmp 0x436a6f
add esi, 4
mov edx, dword [ebp + 0x1c]
lea ecx, [esp + 0x18]
push ecx
push eax
push ebx
push ebx
push esi
push edx
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
cmp eax, ebx
je 0x436aa4
push 0x50000
push eax
lea ecx, [esp + 0x40]
call fcn.00435090
push 0x48ede8
lea eax, [esp + 0x3c]
push eax
call sub.MSVCR80.dll__CxxThrowException
mov esi, dword [esp + 0x20]
cmp esi, ebx
je 0x436ab6
mov ecx, dword [esp + 0x24]
sub ecx, esi
sar ecx, 1
jne 0x436ac4
mov ebp, dword [sym.imp.MSVCR80.dll__invalid_parameter_noinfo]
call ebp
mov esi, dword [esp + 0x20]
jmp 0x436aca
mov ebp, dword [sym.imp.MSVCR80.dll__invalid_parameter_noinfo]
lea ecx, [esp + 0x4c]
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::constructor_void_]
mov byte [esp + 0x74], 2
mov dword [edi + 4], ebx
mov dword [edi + 8], ebx
mov dword [edi + 0xc], ebx
cmp word [esi], bx
mov dword [esp + 0x30], 1
je 0x436b36
nop
push esi
lea ecx, [esp + 0x50]
call dword [sym.imp.MSVCP80.dll_public:_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t______thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::operator_wchar_t_const__]
lea edx, [esp + 0x4c]
push edx
mov ecx, edi
call fcn.00436340
mov eax, dword [esp + 0x60]
lea esi, [esi + eax*2 + 2]
mov eax, dword [esp + 0x20]
cmp eax, ebx
je 0x436b21
mov ecx, dword [esp + 0x24]
sub ecx, eax
sar ecx, 1
jne 0x436b27
call ebp
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x18]
add eax, edx
cmp esi, eax
ja 0x436b36
cmp word [esi], bx
jne 0x436af0
lea ecx, [esp + 0x4c]
mov byte [esp + 0x74], 1
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::destructor_void_]
mov eax, dword [esp + 0x20]
cmp eax, ebx
mov byte [esp + 0x74], bl
je 0x436b65
mov ecx, dword [esp + 0x28]
sub ecx, eax
sar ecx, 1
push ecx
push eax
lea ecx, [esp + 0x24]
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::allocator_wchar_t_::deallocate_wchar_t___unsigned_int_]
mov eax, edi
mov ecx, dword [esp + 0x6c]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x54]
xor ecx, esp
call fcn.0046cc14
add esp, 0x64
ret 8