Function at 0x4af2f0
Capabilities:
Query or enumerate registry value

Disassembly:
push 0xffffffffffffffff
push 0x4e3646
mov eax, dword fs:[0]
push eax
sub esp, 0xb8
push ebx
push ebp
push esi
push edi
mov eax, dword [0x56e01c]
xor eax, esp
push eax
lea eax, [esp + 0xcc]
mov dword fs:[0], eax
xor ebp, ebp
mov dword [esp + 0x4c], ebp
mov dword [esp + 0xd4], 2
mov ecx, dword [esp + 0xdc]
push 0x4f81e4
call dword [sym.imp.QtCore4.dll_public:_void___thiscall_QString::constructor_char_const__]
xor eax, eax
push str.GetNativeSystemInfo
push str.kernel32.dll
mov dword [esp + 0x54], 1
mov dword [esp + 0x58], ebp
mov dword [esp + 0x5c], eax
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], eax
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], eax
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], eax
mov dword [esp + 0x78], eax
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
cmp eax, ebp
je 0x4af390
lea ecx, [esp + 0x50]
push ecx
call eax
mov eax, dword [esp + 0x50]
mov ebx, 9
cmp ax, 6
je 0x4af3a4
cmp ax, bx
jne 0x4af3ab
mov eax, 0x20119
jmp 0x4af3b0
mov eax, 0x20019
mov esi, dword [sym.imp.QtCore4.dll_public:_unsigned_short_int_const____thiscall_QString::utf16_void_const]
lea edx, [esp + 0x2c]
push edx
push eax
push ebp
lea ecx, [esp + 0xec]
call esi
push eax
push reloc.OLEAUT32.dll_SysReAllocString
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x4af822
lea eax, [esp + 0x28]
push eax
push ebp
lea ecx, [esp + 0x2c]
push ecx
push ebp
lea ecx, [esp + 0xf4]
mov dword [esp + 0x34], ebp
mov dword [esp + 0x38], 0x400
call esi
mov edx, dword [esp + 0x3c]
mov edi, dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
push eax
push edx
call edi
cmp eax, ebp
jne 0x4af817
mov eax, dword [esp + 0x28]
cmp eax, ebp
jbe 0x4af817
push ebp
push eax
lea ecx, [esp + 0x24]
call dword [sym.imp.QtCore4.dll_public:_void___thiscall_QByteArray::constructor_int__char_]
lea eax, [esp + 0x28]
push eax
lea ecx, [esp + 0x20]
mov byte [esp + 0xd8], 3
call dword [sym.imp.QtCore4.dll_public:_char____thiscall_QByteArray::data_void_]
push eax
lea ecx, [esp + 0x2c]
push ecx
push ebp
lea ecx, [esp + 0xf4]
call esi
mov edx, dword [esp + 0x3c]
push eax
push edx
call edi
test eax, eax
jne 0x4af7f4
lea ecx, [esp + 0x3c]
call dword [sym.imp.QtCore4.dll_public:_void___thiscall_QVariant::constructor_void_]
mov byte [esp + 0xd4], 4
mov eax, dword [esp + 0x24]
mov edi, dword [sym.imp.QtCore4.dll_public:_class_QString____thiscall_QString::operator_class_QString_const__]
cmp eax, 7
ja case.0x4af485.6
jmp dword [eax*4 + 0x4af870]
mov eax, dword [sym.imp.QtCore4.dll_struct_QString::Data_QString::shared_null]
mov dword [esp + 0x18], eax
mov ecx, 1
lock xadd dword [eax], ecx
mov bl, 5
mov byte [esp + 0xd4], bl
mov edx, dword [esp + 0x1c]
mov eax, dword [edx + 0xc]
push 0xffffffffffffffff
push eax
lea eax, [esp + 0x40]
push eax
call dword [sym.imp.QtCore4.dll_public:_static_class_QString___cdecl_QString::fromUtf16_unsigned_short_int_const___int_]
add esp, 0xc
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0xd8], 6
call edi
lea ecx, [esp + 0x38]
mov byte [esp + 0xd4], bl
call dword [sym.imp.QtCore4.dll_public:_void___thiscall_QString::destructor_void_]
lea ecx, [esp + 0x18]
push ecx
lea ecx, [esp + 0x88]
call dword [sym.imp.QtCore4.dll_public:_void___thiscall_QVariant::constructor_class_QString_const__]
push eax
lea ecx, [esp + 0x40]
mov byte [esp + 0xd8], 7
call dword [sym.imp.QtCore4.dll_public:_class_QVariant____thiscall_QVariant::operator_class_QVariant_const__]
mov byte [esp + 0xd4], bl
mov esi, dword [sym.imp.QtCore4.dll_public:_void___thiscall_QVariant::destructor_void_]
lea ecx, [esp + 0x84]
call esi
lea ecx, [esp + 0x18]
mov byte [esp + 0xd4], 4
call dword [sym.imp.QtCore4.dll_public:_void___thiscall_QString::destructor_void_]
jmp 0x4af7b3
mov eax, dword [sym.imp.QtCore4.dll_struct_QListData::Data_QListData::shared_null]
mov dword [esp + 0x20], eax
mov edx, 1
lock xadd dword [eax], edx
mov eax, dword [sym.imp.QtCore4.dll_struct_QString::Data_QString::shared_null]
mov dword [esp + 0x18], eax
mov ecx, 1
lock xadd dword [eax], ecx
mov byte [esp + 0xd4], bl
mov edx, dword [esp + 0x1c]
mov eax, dword [edx + 0xc]
mov ebp, dword [sym.imp.QtCore4.dll_public:_static_class_QString___cdecl_QString::fromUtf16_unsigned_short_int_const___int_]
push 0xffffffffffffffff
push eax
lea eax, [esp + 0x38]
push eax
call ebp
add esp, 0xc
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0xd8], 0xa
call edi
lea ecx, [esp + 0x30]
mov byte [esp + 0xd4], bl
call dword [sym.imp.QtCore4.dll_public:_void___thiscall_QString::destructor_void_]
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx + 8]
lea esi, [eax + 1]
test eax, eax
je 0x4af62f
jmp 0x4af5b0
lea edx, [esp + 0x20]
push edx
lea ecx, [esp + 0x1c]
call fcn.0040efb0
lea ecx, [esp + 0x18]
mov byte [esp + 0xd4], 8
call dword [sym.imp.QtCore4.dll_public:_void___thiscall_QString::destructor_void_]
mov eax, dword [sym.imp.QtCore4.dll_struct_QString::Data_QString::shared_null]
mov dword [esp + 0x18], eax
mov ecx, 1
lock xadd dword [eax], ecx
mov byte [esp + 0xd4], bl
mov edx, dword [esp + 0x1c]
mov eax, dword [edx + 0xc]
push 0xffffffffffffffff
lea eax, [eax + esi*2]
push eax
lea ecx, [esp + 0x38]
push ecx
call ebp
add esp, 0xc
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0xd8], 0xa
call edi
lea ecx, [esp + 0x30]
mov byte [esp + 0xd4], bl
call dword [sym.imp.QtCore4.dll_public:_void___thiscall_QString::destructor_void_]
mov edx, dword [esp + 0x18]
mov eax, dword [edx + 8]
lea esi, [esi + eax + 1]
test eax, eax
jne 0x4af5b0
lea ecx, [esp + 0x18]
mov byte [esp + 0xd4], 8
call dword [sym.imp.QtCore4.dll_public:_void___thiscall_QString::destructor_void_]
lea eax, [esp + 0x20]
push eax
lea ecx, [esp + 0xb8]
call dword [sym.imp.QtCore4.dll_public:_void___thiscall_QVariant::constructor_class_QStringList_const__]
push eax
lea ecx, [esp + 0x40]
mov byte [esp + 0xd8], 0xb
call dword [sym.imp.QtCore4.dll_public:_class_QVariant____thiscall_QVariant::operator_class_QVariant_const__]
mov byte [esp + 0xd4], 8
mov esi, dword [sym.imp.QtCore4.dll_public:_void___thiscall_QVariant::destructor_void_]
lea ecx, [esp + 0xb4]
call esi
lea ecx, [esp + 0x20]
mov byte [esp + 0xd4], 4
call fcn.00409b70
jmp 0x4af7b3
mov eax, dword [sym.imp.QtCore4.dll_struct_QString::Data_QString::shared_null]
mov dword [esp + 0x20], eax
mov ecx, 1
lock xadd dword [eax], ecx
mov bl, 0xc
mov byte [esp + 0xd4], bl
mov ecx, dword [esp + 0x1c]
mov eax, dword [ecx + 8]
mov ecx, dword [ecx + 0xc]
cdq
sub eax, edx
sar eax, 1
push eax
push ecx
lea edx, [esp + 0x3c]
push edx
call dword [sym.imp.QtCore4.dll_public:_static_class_QString___cdecl_QString::fromUtf16_unsigned_short_int_const___int_]
add esp, 0xc
push eax
lea ecx, [esp + 0x24]
mov byte [esp + 0xd8], 0xd
call edi
lea ecx, [esp + 0x34]
mov byte [esp + 0xd4], bl
call dword [sym.imp.QtCore4.dll_public:_void___thiscall_QString::destructor_void_]
lea eax, [esp + 0x20]
push eax
lea ecx, [esp + 0xa8]
call dword [sym.imp.QtCore4.dll_public:_void___thiscall_QVariant::constructor_class_QString_const__]
push eax
lea ecx, [esp + 0x40]
mov byte [esp + 0xd8], 0xe
call dword [sym.imp.QtCore4.dll_public:_class_QVariant____thiscall_QVariant::operator_class_QVariant_const__]
mov byte [esp + 0xd4], bl
mov esi, dword [sym.imp.QtCore4.dll_public:_void___thiscall_QVariant::destructor_void_]
lea ecx, [esp + 0xa4]
call esi
lea ecx, [esp + 0x20]
mov byte [esp + 0xd4], 4
call dword [sym.imp.QtCore4.dll_public:_void___thiscall_QString::destructor_void_]
jmp 0x4af7b3
mov ecx, dword [esp + 0x1c]
mov eax, dword [ecx + 0xc]
mov eax, dword [eax]
push eax
lea ecx, [esp + 0x78]
call dword [sym.imp.QtCore4.dll_public:_void___thiscall_QVariant::constructor_int_]
lea edx, [esp + 0x74]
push edx
lea ecx, [esp + 0x40]
mov byte [esp + 0xd8], 0xf
call dword [sym.imp.QtCore4.dll_public:_class_QVariant____thiscall_QVariant::operator_class_QVariant_const__]
lea ecx, [esp + 0x74]
jmp 0x4af7a3
push eax
push str.Unknown_data__d_type_in_Windows_registry
call dword [sym.imp.QtCore4.dll_void___cdecl_qWarning_char_const__]
add esp, 8
lea ecx, [esp + 0x94]
call dword [sym.imp.QtCore4.dll_public:_void___thiscall_QVariant::constructor_void_]
push eax
lea ecx, [esp + 0x40]
mov byte [esp + 0xd8], 0x10
call dword [sym.imp.QtCore4.dll_public:_class_QVariant____thiscall_QVariant::operator_class_QVariant_const__]
lea ecx, [esp + 0x94]
mov byte [esp + 0xd4], 4
mov esi, dword [sym.imp.QtCore4.dll_public:_void___thiscall_QVariant::destructor_void_]
call esi
lea eax, [esp + 0x34]
push eax
lea ecx, [esp + 0x40]
call dword [sym.imp.QtCore4.dll_public:_class_QString___thiscall_QVariant::toString_void_]
mov byte [esp + 0xd4], 0x11
mov ecx, dword [esp + 0xdc]
push eax
call edi
lea ecx, [esp + 0x34]
mov byte [esp + 0xd4], 4
call dword [sym.imp.QtCore4.dll_public:_void___thiscall_QString::destructor_void_]
lea ecx, [esp + 0x3c]
mov byte [esp + 0xd4], 3
call esi
mov byte [esp + 0xd4], 2
mov ecx, dword [esp + 0x1c]
or edx, 0xffffffff
lock xadd dword [ecx], edx
jne 0x4af817
mov eax, dword [esp + 0x1c]
push eax
call dword [sym.imp.QtCore4.dll_void___cdecl_qFree_void__]
add esp, 4
mov ecx, dword [esp + 0x2c]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
lea ecx, [esp + 0xe0]
mov byte [esp + 0xd4], 1
call dword [sym.imp.QtCore4.dll_public:_void___thiscall_QString::destructor_void_]
lea ecx, [esp + 0xe4]
mov byte [esp + 0xd4], 0
call dword [sym.imp.QtCore4.dll_public:_void___thiscall_QString::destructor_void_]
mov eax, dword [esp + 0xdc]
mov ecx, dword [esp + 0xcc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc4
ret