Function at 0x40904c90
Capabilities:
Contain obfuscated stackstrings

Disassembly:
mov eax, 0x4090630e
call sub.MSVCRT.dll__EH_prolog
sub esp, 0x16c
push ebx
push esi
push edi
lea ecx, [ebp - 0x28]
call sub.MFC42.DLL_CString::CString_2
and dword [ebp - 4], 0
lea ecx, [ebp - 0x18]
call sub.MFC42.DLL_CString::CString_2
lea ecx, [ebp - 0x20]
mov byte [ebp - 4], 1
call sub.MFC42.DLL_CString::CString_2
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 2
call sub.MFC42.DLL_CString::CString_2
mov esi, 0x80000002
mov byte [ebp - 4], 3
push esi
push ecx
mov ecx, esp
mov dword [ebp - 0x2c], esp
push 0x409018b0
call sub.MFC42.DLL_CString::CString_1
lea ecx, [ebp - 0x108]
call sym.LEXINST.dll_public:_void___thiscall_CRegKey::constructor_class_CString__struct_HKEY____
mov byte [ebp - 4], 4
mov ebx, 0x4090166c
mov edi, 0x40901660
lea eax, [ebp - 0x20]
lea ecx, [ebp - 0x108]
push eax
call sym.LEXINST.dll_public:_long_int___thiscall_CRegKey::Next_class_CString__
test eax, eax
mov dword [ebp - 0x2c], eax
jne 0x4090511c
push 0x409018b0
lea ecx, [ebp - 0x1c]
call fcn.409056b4
push 0x100
lea ecx, [ebp - 0x20]
call sub.MFC42.DLL_CString::GetBuffer
push eax
lea ecx, [ebp - 0x1c]
call sub.MFC42.DLL_CString::operator_1
push 0xffffffffffffffff
lea ecx, [ebp - 0x20]
call sub.MFC42.DLL_CString::ReleaseBuffer
push esi
push ecx
mov ecx, esp
mov dword [ebp - 0x14], esp
push 0x4090189c
call sub.MFC42.DLL_CString::CString_1
push ecx
lea eax, [ebp - 0x1c]
mov ecx, esp
mov dword [ebp - 0x10], esp
push eax
mov byte [ebp - 4], 5
call fcn.4090568a
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 4
call sym.LEXINST.dll_public:_void___thiscall_CRegistry::constructor_class_CString__class_CString__struct_HKEY____
lea eax, [ebp - 0x28]
lea ecx, [ebp - 0x40]
push eax
mov byte [ebp - 4], 6
call sym.LEXINST.dll_public:_long_int___thiscall_CRegistry::get_class_CString__
test eax, eax
jne 0x40905110
push 0x40901870
lea ecx, [ebp - 0x18]
call fcn.409056b4
lea eax, [ebp - 0x28]
lea ecx, [ebp - 0x18]
push eax
call sub.MFC42.DLL_CString::operator
push esi
push ecx
lea eax, [ebp - 0x18]
mov ecx, esp
mov dword [ebp - 0x10], esp
push eax
call fcn.4090568a
lea ecx, [ebp - 0x144]
call sym.LEXINST.dll_public:_void___thiscall_CRegKey::constructor_class_CString__struct_HKEY____
push esi
push ecx
mov ecx, esp
mov dword [ebp - 0x10], esp
push 0x409016c4
mov byte [ebp - 4], 7
call sub.MFC42.DLL_CString::CString_1
push ecx
lea eax, [ebp - 0x1c]
mov ecx, esp
mov dword [ebp - 0x14], esp
push eax
mov byte [ebp - 4], 8
call fcn.4090568a
lea ecx, [ebp - 0x54]
mov byte [ebp - 4], 7
call sym.LEXINST.dll_public:_void___thiscall_CRegistry::constructor_class_CString__class_CString__struct_HKEY____
lea eax, [ebp - 0x178]
push 6
push eax
lea ecx, [ebp - 0x54]
mov byte [ebp - 4], 9
call sym.LEXINST.dll_public:_long_int___thiscall_CRegistry::get_unsigned_char___unsigned_long_int_
push esi
push ecx
mov ecx, esp
mov dword [ebp - 0x10], esp
push 0x409016c4
call sub.MFC42.DLL_CString::CString_1
push ecx
lea eax, [ebp - 0x18]
mov ecx, esp
mov dword [ebp - 0x14], esp
push eax
mov byte [ebp - 4], 0xa
call fcn.4090568a
lea ecx, [ebp - 0x7c]
mov byte [ebp - 4], 9
call sym.LEXINST.dll_public:_void___thiscall_CRegistry::constructor_class_CString__class_CString__struct_HKEY____
lea eax, [ebp - 0x178]
push 6
push eax
lea ecx, [ebp - 0x7c]
mov byte [ebp - 4], 0xb
call sym.LEXINST.dll_public:_long_int___thiscall_CRegistry::setCreateBinary_unsigned_char___unsigned_long_int_
push esi
push ecx
mov ecx, esp
mov dword [ebp - 0x10], esp
push 0x409016ac
call sub.MFC42.DLL_CString::CString_1
push ecx
lea eax, [ebp - 0x1c]
mov ecx, esp
mov dword [ebp - 0x14], esp
push eax
mov byte [ebp - 4], 0xc
call fcn.4090568a
mov byte [ebp - 4], 0xb
lea ecx, [ebp - 0x11c]
call sym.LEXINST.dll_public:_void___thiscall_CRegistry::constructor_class_CString__class_CString__struct_HKEY____
lea eax, [ebp - 0x178]
push 6
push eax
lea ecx, [ebp - 0x11c]
mov byte [ebp - 4], 0xd
call sym.LEXINST.dll_public:_long_int___thiscall_CRegistry::get_unsigned_char___unsigned_long_int_
push esi
push ecx
mov ecx, esp
mov dword [ebp - 0x10], esp
push 0x409016ac
call sub.MFC42.DLL_CString::CString_1
push ecx
lea eax, [ebp - 0x18]
mov ecx, esp
mov dword [ebp - 0x14], esp
push eax
mov byte [ebp - 4], 0xe
call fcn.4090568a
lea ecx, [ebp - 0xcc]
mov byte [ebp - 4], 0xd
call sym.LEXINST.dll_public:_void___thiscall_CRegistry::constructor_class_CString__class_CString__struct_HKEY____
lea eax, [ebp - 0x178]
push 6
push eax
lea ecx, [ebp - 0xcc]
mov byte [ebp - 4], 0xf
call sym.LEXINST.dll_public:_long_int___thiscall_CRegistry::setCreateBinary_unsigned_char___unsigned_long_int_
push esi
push ecx
mov ecx, esp
mov dword [ebp - 0x10], esp
push 0x40901698
call sub.MFC42.DLL_CString::CString_1
push ecx
lea eax, [ebp - 0x1c]
mov ecx, esp
mov dword [ebp - 0x14], esp
push eax
mov byte [ebp - 4], 0x10
call fcn.4090568a
lea ecx, [ebp - 0x130]
mov byte [ebp - 4], 0xf
call sym.LEXINST.dll_public:_void___thiscall_CRegistry::constructor_class_CString__class_CString__struct_HKEY____
lea eax, [ebp - 0x24]
lea ecx, [ebp - 0x130]
push eax
mov byte [ebp - 4], 0x11
call sym.LEXINST.dll_public:_long_int___thiscall_CRegistry::get_unsigned_char__
push esi
push ecx
mov ecx, esp
mov dword [ebp - 0x10], esp
push 0x40901698
call sub.MFC42.DLL_CString::CString_1
push ecx
lea eax, [ebp - 0x18]
mov ecx, esp
mov dword [ebp - 0x14], esp
push eax
mov byte [ebp - 4], 0x12
call fcn.4090568a
lea ecx, [ebp - 0xa4]
mov byte [ebp - 4], 0x11
call sym.LEXINST.dll_public:_void___thiscall_CRegistry::constructor_class_CString__class_CString__struct_HKEY____
push dword [ebp - 0x24]
lea ecx, [ebp - 0xa4]
mov byte [ebp - 4], 0x13
call sym.LEXINST.dll_public:_long_int___thiscall_CRegistry::setCreate_unsigned_char_
push esi
push ecx
mov ecx, esp
mov dword [ebp - 0x10], esp
push ebx
call sub.MFC42.DLL_CString::CString_1
push ecx
lea eax, [ebp - 0x1c]
mov ecx, esp
mov dword [ebp - 0x14], esp
push eax
mov byte [ebp - 4], 0x14
call fcn.4090568a
lea ecx, [ebp - 0x68]
mov byte [ebp - 4], 0x13
call sym.LEXINST.dll_public:_void___thiscall_CRegistry::constructor_class_CString__class_CString__struct_HKEY____
lea eax, [ebp - 0x24]
lea ecx, [ebp - 0x68]
push eax
mov byte [ebp - 4], 0x15
call sym.LEXINST.dll_public:_long_int___thiscall_CRegistry::get_unsigned_char__
push esi
push ecx
mov ecx, esp
mov dword [ebp - 0x10], esp
push ebx
call sub.MFC42.DLL_CString::CString_1
push ecx
lea eax, [ebp - 0x18]
mov ecx, esp
mov dword [ebp - 0x14], esp
push eax
mov byte [ebp - 4], 0x16
call fcn.4090568a
lea ecx, [ebp - 0xb8]
mov byte [ebp - 4], 0x15
call sym.LEXINST.dll_public:_void___thiscall_CRegistry::constructor_class_CString__class_CString__struct_HKEY____
push dword [ebp - 0x24]
lea ecx, [ebp - 0xb8]
mov byte [ebp - 4], 0x17
call sym.LEXINST.dll_public:_long_int___thiscall_CRegistry::setCreate_unsigned_char_
push esi
push ecx
mov ecx, esp
mov dword [ebp - 0x10], esp
push edi
call sub.MFC42.DLL_CString::CString_1
push ecx
lea eax, [ebp - 0x1c]
mov ecx, esp
mov dword [ebp - 0x14], esp
push eax
mov byte [ebp - 4], 0x18
call fcn.4090568a
lea ecx, [ebp - 0x90]
mov byte [ebp - 4], 0x17
call sym.LEXINST.dll_public:_void___thiscall_CRegistry::constructor_class_CString__class_CString__struct_HKEY____
lea eax, [ebp - 0x24]
lea ecx, [ebp - 0x90]
push eax
mov byte [ebp - 4], 0x19
call sym.LEXINST.dll_public:_long_int___thiscall_CRegistry::get_unsigned_char__
push esi
push ecx
mov ecx, esp
mov dword [ebp - 0x10], esp
push edi
call sub.MFC42.DLL_CString::CString_1
push ecx
lea eax, [ebp - 0x18]
mov ecx, esp
mov dword [ebp - 0x14], esp
push eax
mov byte [ebp - 4], 0x1a
call fcn.4090568a
mov byte [ebp - 4], 0x19
lea ecx, [ebp - 0xf4]
call sym.LEXINST.dll_public:_void___thiscall_CRegistry::constructor_class_CString__class_CString__struct_HKEY____
push dword [ebp - 0x24]
lea ecx, [ebp - 0xf4]
mov byte [ebp - 4], 0x1b
call sym.LEXINST.dll_public:_long_int___thiscall_CRegistry::setCreate_unsigned_char_
lea ecx, [ebp - 0xf4]
mov byte [ebp - 4], 0x19
call sym.LEXINST.dll_public:_void___thiscall_CRegistry::destructor_void_
lea ecx, [ebp - 0x90]
mov byte [ebp - 4], 0x17
call sym.LEXINST.dll_public:_void___thiscall_CRegistry::destructor_void_
lea ecx, [ebp - 0xb8]
mov byte [ebp - 4], 0x15
call sym.LEXINST.dll_public:_void___thiscall_CRegistry::destructor_void_
lea ecx, [ebp - 0x68]
mov byte [ebp - 4], 0x13
call sym.LEXINST.dll_public:_void___thiscall_CRegistry::destructor_void_
lea ecx, [ebp - 0xa4]
mov byte [ebp - 4], 0x11
call sym.LEXINST.dll_public:_void___thiscall_CRegistry::destructor_void_
lea ecx, [ebp - 0x130]
mov byte [ebp - 4], 0xf
call sym.LEXINST.dll_public:_void___thiscall_CRegistry::destructor_void_
lea ecx, [ebp - 0xcc]
mov byte [ebp - 4], 0xd
call sym.LEXINST.dll_public:_void___thiscall_CRegistry::destructor_void_
lea ecx, [ebp - 0x11c]
mov byte [ebp - 4], 0xb
call sym.LEXINST.dll_public:_void___thiscall_CRegistry::destructor_void_
lea ecx, [ebp - 0x7c]
mov byte [ebp - 4], 9
call sym.LEXINST.dll_public:_void___thiscall_CRegistry::destructor_void_
lea ecx, [ebp - 0x54]
mov byte [ebp - 4], 7
call sym.LEXINST.dll_public:_void___thiscall_CRegistry::destructor_void_
lea ecx, [ebp - 0x144]
mov byte [ebp - 4], 6
call sym.LEXINST.dll_public:_void___thiscall_CRegKey::destructor_void_
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 4
call sym.LEXINST.dll_public:_void___thiscall_CRegistry::destructor_void_
cmp dword [ebp - 0x2c], 0
je 0x40904d02
push esi
push ecx
mov edi, 0x409018b0
mov ecx, esp
mov dword [ebp - 0x10], esp
push edi
call sub.MFC42.DLL_CString::CString_1
lea ecx, [ebp - 0x54]
call sym.LEXINST.dll_public:_void___thiscall_CRegKey::constructor_class_CString__struct_HKEY____
lea eax, [ebp - 0x20]
lea ecx, [ebp - 0x54]
push eax
mov byte [ebp - 4], 0x1c
call sym.LEXINST.dll_public:_long_int___thiscall_CRegKey::Next_class_CString__
mov ebx, eax
test ebx, ebx
jne 0x40905192
push esi
push ecx
mov ecx, esp
mov dword [ebp - 0x10], esp
push edi
call sub.MFC42.DLL_CString::CString_1
lea ecx, [ebp - 0x40]
call sym.LEXINST.dll_public:_void___thiscall_CRegKey::constructor_class_CString__struct_HKEY____
push ecx
lea eax, [ebp - 0x20]
mov ecx, esp
mov dword [ebp - 0x10], esp
push eax
mov byte [ebp - 4], 0x1d
call fcn.4090568a
lea ecx, [ebp - 0x40]
call sym.LEXINST.dll_public:_long_int___thiscall_CRegKey::DeleteKey_class_CString_
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 0x1c
call sym.LEXINST.dll_public:_void___thiscall_CRegKey::destructor_void_
lea ecx, [ebp - 0x54]
mov byte [ebp - 4], 4
call sym.LEXINST.dll_public:_void___thiscall_CRegKey::destructor_void_
test ebx, ebx
je 0x40905126
push esi
push ecx
mov ecx, esp
mov dword [ebp - 0x10], esp
push 0x40901430
call sub.MFC42.DLL_CString::CString_1
lea ecx, [ebp - 0xe0]
call sym.LEXINST.dll_public:_void___thiscall_CRegKey::constructor_class_CString__struct_HKEY____
push ecx
mov byte [ebp - 4], 0x1e
mov ecx, esp
mov dword [ebp - 0x10], esp
push 0x409015ec
call sub.MFC42.DLL_CString::CString_1
lea ecx, [ebp - 0xe0]
call sym.LEXINST.dll_public:_long_int___thiscall_CRegKey::DeleteKey_class_CString_
lea ecx, [ebp - 0xe0]
mov byte [ebp - 4], 4
call sym.LEXINST.dll_public:_void___thiscall_CRegKey::destructor_void_
lea ecx, [ebp - 0x108]
mov byte [ebp - 4], 3
call sym.LEXINST.dll_public:_void___thiscall_CRegKey::destructor_void_
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 2
call sub.MFC42.DLL_CString::CString
lea ecx, [ebp - 0x20]
mov byte [ebp - 4], 1
call sub.MFC42.DLL_CString::CString
and byte [ebp - 4], 0
lea ecx, [ebp - 0x18]
call sub.MFC42.DLL_CString::CString
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x28]
call sub.MFC42.DLL_CString::CString
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
leave
ret