Function at 0x4f1990
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x524648
mov eax, dword fs:[0]
push eax
sub esp, 0x6c
push ebx
push ebp
push esi
push edi
mov eax, dword [0x5ac54c]
xor eax, esp
push eax
lea eax, [esp + 0x80]
mov dword fs:[0], eax
mov dword [esp + 0x18], ecx
mov esi, dword [esp + 0x90]
lea eax, [esp + 0x30]
xor edi, edi
push eax
mov ecx, esi
mov dword [esp + 0x18], edi
call dword [sym.imp.QtXml4.dll_public:_class_QXmlStreamAttributes___thiscall_QXmlStreamReader::attributes_void_]
push eax
lea ecx, [esp + 0x74]
push ecx
mov dword [esp + 0x90], edi
call fcn.004d6730
add esp, 8
lea ecx, [esp + 0x30]
mov byte [esp + 0x88], 2
call dword [sym.imp.QtXml4.dll_public:_void___thiscall_QVector_class_QXmlStreamAttribute_::destructor_void_]
mov ebp, dword [sym.imp.QtCore4.dll_public:_class_QString___thiscall_QStringRef::toString_void_]
jmp 0x4f1a17
mov esi, dword [esp + 0x90]
mov eax, dword [esp + 0x74]
mov edx, eax
inc eax
mov dword [esp + 0x74], eax
test edx, edx
jne 0x4f1a34
mov eax, dword [esp + 0x78]
cmp eax, dword [esp + 0x7c]
je 0x4f1a34
mov bl, 1
jmp 0x4f1a36
xor bl, bl
test byte [esp + 0x14], 2
je 0x4f1a4c
and dword [esp + 0x14], 0xfffffffd
lea ecx, [esp + 0x38]
call dword [sym.imp.QtXml4.dll_public:_void___thiscall_QVector_class_QXmlStreamAttribute_::destructor_void_]
test bl, bl
je 0x4f1ca7
test byte [esp + 0x14], 4
mov esi, dword [esp + 0x78]
je 0x4f1a6e
and dword [esp + 0x14], 0xfffffffb
lea ecx, [esp + 0x3c]
call dword [sym.imp.QtXml4.dll_public:_void___thiscall_QVector_class_QXmlStreamAttribute_::destructor_void_]
test byte [esp + 0x14], 0x10
mov edi, dword [esp + 0x74]
je 0x4f1a88
and dword [esp + 0x14], 0xffffffef
lea ecx, [esp + 0x40]
call dword [sym.imp.QtXml4.dll_public:_void___thiscall_QVector_class_QXmlStreamAttribute_::destructor_void_]
test edi, edi
je 0x4f1c83
lea ecx, [esp + 0x4c]
push ecx
mov ecx, esi
call dword [sym.imp.QtXml4.dll_public:_class_QStringRef___thiscall_QXmlStreamAttribute::name_void_]
mov edi, dword [sym.imp.QtCore4.dll_bool___cdecl_operator_class_QLatin1String_const___class_QStringRef_const__]
lea edx, [esp + 0x4c]
push edx
lea eax, [esp + 0x38]
push eax
mov byte [esp + 0x90], 3
mov dword [esp + 0x3c], 0x53b180
call edi
add esp, 8
test al, al
je 0x4f1b27
lea ecx, [esp + 0x58]
push ecx
mov ecx, esi
call dword [sym.imp.QtXml4.dll_public:_class_QStringRef___thiscall_QXmlStreamAttribute::value_void_]
lea edx, [esp + 0x20]
push edx
mov ecx, eax
mov byte [esp + 0x8c], 4
call ebp
mov edi, dword [esp + 0x18]
push eax
lea ecx, [edi + 4]
mov byte [esp + 0x8c], 5
call dword [sym.imp.QtCore4.dll_public:_class_QString____thiscall_QString::operator_class_QString_const__]
mov eax, dword [esp + 0x20]
mov byte [edi + 8], 1
mov byte [esp + 0x88], 4
or ecx, 0xffffffff
lock xadd dword [eax], ecx
jne 0x4f1c5e
mov edx, dword [esp + 0x20]
push edx
call dword [sym.imp.QtCore4.dll_private:_static_void___cdecl_QString::free_struct_QString::Data__]
jmp 0x4f1c5b
lea eax, [esp + 0x4c]
push eax
lea ecx, [esp + 0x38]
push ecx
mov dword [esp + 0x3c], str.menu
call edi
add esp, 8
test al, al
je 0x4f1ba3
lea edx, [esp + 0x64]
push edx
mov ecx, esi
call dword [sym.imp.QtXml4.dll_public:_class_QStringRef___thiscall_QXmlStreamAttribute::value_void_]
lea ecx, [esp + 0x24]
push ecx
mov ecx, eax
mov byte [esp + 0x8c], 6
call ebp
mov edi, dword [esp + 0x18]
push eax
lea ecx, [edi + 0xc]
mov byte [esp + 0x8c], 7
call dword [sym.imp.QtCore4.dll_public:_class_QString____thiscall_QString::operator_class_QString_const__]
mov edx, dword [esp + 0x24]
mov byte [edi + 0x10], 1
mov byte [esp + 0x88], 6
or eax, 0xffffffff
lock xadd dword [edx], eax
jne 0x4f1c5e
mov ecx, dword [esp + 0x24]
push ecx
call dword [sym.imp.QtCore4.dll_private:_static_void___cdecl_QString::free_struct_QString::Data__]
jmp 0x4f1c5b
push 0xffffffffffffffff
push str.Unexpected_attribute
call dword [sym.imp.QtCore4.dll_private:_static_struct_QString::Data____cdecl_QString::fromLatin1_helper_char_const___int_]
add esp, 8
mov dword [esp + 0x1c], eax
lea edx, [esp + 0x2c]
push edx
lea ecx, [esp + 0x50]
mov byte [esp + 0x8c], 8
call ebp
push eax
lea eax, [esp + 0x20]
push eax
lea ecx, [esp + 0x30]
push ecx
mov byte [esp + 0x94], 9
call fcn.00401000
add esp, 0xc
mov ecx, dword [esp + 0x90]
push eax
mov byte [esp + 0x8c], 0xa
call dword [sym.imp.QtXml4.dll_public:_void___thiscall_QXmlStreamReader::raiseError_class_QString_const__]
mov edx, dword [esp + 0x28]
mov edi, dword [sym.imp.QtCore4.dll_private:_static_void___cdecl_QString::free_struct_QString::Data__]
mov byte [esp + 0x88], 9
or eax, 0xffffffff
lock xadd dword [edx], eax
jne 0x4f1c20
mov ecx, dword [esp + 0x28]
push ecx
call edi
add esp, 4
mov edx, dword [esp + 0x2c]
mov byte [esp + 0x88], 8
or eax, 0xffffffff
lock xadd dword [edx], eax
jne 0x4f1c3f
mov ecx, dword [esp + 0x2c]
push ecx
call edi
add esp, 4
mov edx, dword [esp + 0x1c]
mov byte [esp + 0x88], 3
or eax, 0xffffffff
lock xadd dword [edx], eax
jne 0x4f1c5e
mov ecx, dword [esp + 0x1c]
push ecx
call edi
add esp, 4
dec dword [esp + 0x74]
test byte [esp + 0x14], 8
mov byte [esp + 0x88], 2
je 0x4f1a6e
and dword [esp + 0x14], 0xfffffff7
lea ecx, [esp + 0x44]
jmp 0x4f1a68
add dword [esp + 0x78], 0x38
test byte [esp + 0x14], 1
je 0x4f1a10
and dword [esp + 0x14], 0xfffffffe
lea ecx, [esp + 0x48]
call dword [sym.imp.QtXml4.dll_public:_void___thiscall_QVector_class_QXmlStreamAttribute_::destructor_void_]
jmp 0x4f1a10
or ebx, 0xffffffff
lea ecx, [esp + 0x70]
mov dword [esp + 0x88], ebx
call dword [sym.imp.QtXml4.dll_public:_void___thiscall_QVector_class_QXmlStreamAttribute_::destructor_void_]
mov ecx, esi
call dword [sym.imp.QtXml4.dll_public:_enum_QXmlStreamReader::Error___thiscall_QXmlStreamReader::error_void_]
test eax, eax
jne 0x4f1f48
mov ecx, esi
call dword [sym.imp.QtXml4.dll_public:_enum_QXmlStreamReader::TokenType___thiscall_QXmlStreamReader::readNext_void_]
sub eax, 4
je 0x4f1d54
sub eax, 1
je 0x4f1f48
sub eax, 1
jne 0x4f1cbb
mov ecx, esi
call dword [sym.imp.QtXml4.dll_public:_bool___thiscall_QXmlStreamReader::isWhitespace_void_const]
test al, al
jne 0x4f1cbb
lea edx, [esp + 0x64]
push edx
mov ecx, esi
call dword [sym.imp.QtXml4.dll_public:_class_QStringRef___thiscall_QXmlStreamReader::text_void_]
lea ecx, [esp + 0x2c]
push ecx
mov ecx, eax
mov dword [esp + 0x8c], 0x12
call ebp
mov ecx, dword [esp + 0x18]
push eax
mov byte [esp + 0x8c], 0x13
call dword [sym.imp.QtCore4.dll_public:_class_QString____thiscall_QString::append_class_QString_const__]
mov edx, dword [esp + 0x2c]
mov byte [esp + 0x88], 0x12
mov eax, ebx
lock xadd dword [edx], eax
jne 0x4f1d48
mov ecx, dword [esp + 0x2c]
push ecx
call dword [sym.imp.QtCore4.dll_private:_static_void___cdecl_QString::free_struct_QString::Data__]
add esp, 4
mov dword [esp + 0x88], ebx
jmp 0x4f1cbb
lea edx, [esp + 0x58]
push edx
mov ecx, esi
call dword [sym.imp.QtXml4.dll_public:_class_QStringRef___thiscall_QXmlStreamReader::name_void_]
lea ecx, [esp + 0x28]
push ecx
mov ecx, eax
mov dword [esp + 0x8c], 0xb
call ebp
lea edx, [esp + 0x90]
push edx
mov ecx, eax
mov byte [esp + 0x8c], 0xc
call dword [sym.imp.QtCore4.dll_public:_class_QString___thiscall_QString::toLower_void_]
mov eax, dword [esp + 0x28]
mov edi, dword [sym.imp.QtCore4.dll_private:_static_void___cdecl_QString::free_struct_QString::Data__]
mov byte [esp + 0x88], 0xe
mov ecx, ebx
lock xadd dword [eax], ecx
jne 0x4f1db1
mov edx, dword [esp + 0x28]
push edx
call edi
add esp, 4
lea eax, [esp + 0x34]
push eax
lea ecx, [esp + 0x94]
mov byte [esp + 0x8c], 0xf
mov dword [esp + 0x38], str.property
call dword [sym.imp.QtCore4.dll_public:_bool___thiscall_QString::operator_class_QLatin1String_const__const]
test al, al
je 0x4f1e40
push 0xb0
call sub.MSVCR90.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
test eax, eax
je 0x4f1df1
mov ecx, eax
call fcn.004d18a0
jmp 0x4f1df3
xor eax, eax
push esi
mov ecx, eax
mov dword [esp + 0x34], eax
call fcn.004ef9d0
lea ecx, [esp + 0x30]
push ecx
mov ecx, dword [esp + 0x1c]
add ecx, 0x18
call fcn.004b0df0
mov edx, dword [esp + 0x90]
mov dword [esp + 0x88], ebx
mov eax, ebx
lock xadd dword [edx], eax
jne 0x4f1cbb
mov ecx, dword [esp + 0x90]
push ecx
call dword [sym.imp.QtCore4.dll_private:_static_void___cdecl_QString::free_struct_QString::Data__]
add esp, 4
jmp 0x4f1cbb
lea edx, [esp + 0x20]
push edx
lea ecx, [esp + 0x94]
mov dword [esp + 0x24], str.attribute
call dword [sym.imp.QtCore4.dll_public:_bool___thiscall_QString::operator_class_QLatin1String_const__const]
test al, al
je 0x4f1e99
push 0xb0
call sub.MSVCR90.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
test eax, eax
je 0x4f1e78
mov ecx, eax
call fcn.004d18a0
jmp 0x4f1e7a
xor eax, eax
push esi
mov ecx, eax
mov dword [esp + 0x34], eax
call fcn.004ef9d0
mov ecx, dword [esp + 0x18]
lea eax, [esp + 0x30]
push eax
add ecx, 0x1c
call fcn.004b0df0
jmp 0x4f1f18
push ebx
push str.Unexpected_element
call dword [sym.imp.QtCore4.dll_private:_static_struct_QString::Data____cdecl_QString::fromLatin1_helper_char_const___int_]
mov dword [esp + 0x24], eax
lea ecx, [esp + 0x98]
push ecx
lea edx, [esp + 0x28]
push edx
lea eax, [esp + 0x34]
push eax
mov byte [esp + 0x9c], 0x10
call fcn.00401000
add esp, 0x14
push eax
mov ecx, esi
mov byte [esp + 0x8c], 0x11
call dword [sym.imp.QtXml4.dll_public:_void___thiscall_QXmlStreamReader::raiseError_class_QString_const__]
mov ecx, dword [esp + 0x24]
mov byte [esp + 0x88], 0x10
mov edx, ebx
lock xadd dword [ecx], edx
jne 0x4f1efa
mov eax, dword [esp + 0x24]
push eax
call edi
add esp, 4
mov ecx, dword [esp + 0x1c]
mov byte [esp + 0x88], 0xf
mov edx, ebx
lock xadd dword [ecx], edx
jne 0x4f1f18
mov eax, dword [esp + 0x1c]
push eax
call edi
add esp, 4
mov ecx, dword [esp + 0x90]
mov dword [esp + 0x88], ebx
mov edx, ebx
lock xadd dword [ecx], edx
jne 0x4f1cbb
mov eax, dword [esp + 0x90]
push eax
call dword [sym.imp.QtCore4.dll_private:_static_void___cdecl_QString::free_struct_QString::Data__]
add esp, 4
jmp 0x4f1cbb
mov ecx, dword [esp + 0x80]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x78
ret 4