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

Disassembly:
sub esp, 0x100
push ebx
push ebp
push esi
mov esi, dword [esp + 0x118]
lea eax, [esp + 0x34]
push esi
xor ebx, ebx
mov ebp, ecx
push eax
mov dword [esp + 0x64], ebx
call dword [sym.imp.Qt5Core.dll_public:_static_class_QJsonObject___cdecl_QJsonObject::fromVariantMap_class_QMap_class_QString__class_QVariant__const__]
add esp, 8
lea ecx, [esp + 0x34]
call dword [sym.imp.Qt5Core.dll_public:_bool___thiscall_QJsonObject::isEmpty_void_const]
test al, al
jne 0x402580
lea eax, [esp + 0x1c]
mov byte [esp + 0x17], bl
push eax
lea ecx, [esp + 0x1b]
mov ebx, 1
call fcn.004011f0
push eax
lea ecx, [esp + 0x38]
call dword [sym.imp.Qt5Core.dll_public:_bool___thiscall_QJsonObject::contains_class_QString_const__const]
mov byte [esp + 0xf], 0
test al, al
jne 0x402585
mov byte [esp + 0xf], 1
test bl, 1
je 0x402594
lea ecx, [esp + 0x1c]
call dword [sym.imp.Qt5Core.dll_public:_void___thiscall_QString::destructor_void_]
cmp byte [esp + 0xf], 0
je 0x4025c5
mov ecx, dword [esp + 0x110]
push esi
call fcn.00401000
lea ecx, [esp + 0x34]
call dword [sym.imp.Qt5Core.dll_public:_void___thiscall_QJsonObject::destructor_void_]
mov eax, dword [esp + 0x110]
pop esi
pop ebp
pop ebx
add esp, 0x100
ret 0xc
lea eax, [esp + 0x60]
push eax
lea ecx, [esp + 0x13]
call fcn.00401310
mov ebx, dword [sym.imp.Qt5Core.dll_public:_class_QJsonValue___thiscall_QJsonObject::value_class_QString_const__]
lea ecx, [esp + 0x34]
push eax
lea eax, [esp + 0xe0]
push eax
call ebx
lea ecx, [esp + 0x2c]
push ecx
mov ecx, eax
call dword [sym.imp.Qt5Core.dll_public:_class_QJsonObject___thiscall_QJsonValue::toObject_void_]
lea ecx, [esp + 0xdc]
call dword [sym.imp.Qt5Core.dll_public:_void___thiscall_QJsonValue::destructor_void_]
lea ecx, [esp + 0x60]
call dword [sym.imp.Qt5Core.dll_public:_void___thiscall_QString::destructor_void_]
lea eax, [esp + 0x10]
push eax
lea ecx, [esp + 0x30]
call dword [sym.imp.Qt5Core.dll_public:_class_QStringList___thiscall_QJsonObject::keys_void_]
mov eax, dword [esp + 0x10]
mov eax, dword [eax]
cmp eax, 1
je 0x40263a
test eax, eax
je 0x40263a
mov eax, dword [esp + 0x10]
lea ecx, [esp + 0x10]
push dword [eax + 4]
call fcn.004017a0
mov eax, dword [esp + 0x10]
mov esi, dword [eax + 8]
add esi, 4
lea esi, [eax + esi*4]
mov eax, dword [eax]
cmp eax, 1
je 0x402662
test eax, eax
je 0x402662
mov eax, dword [esp + 0x10]
lea ecx, [esp + 0x10]
push dword [eax + 4]
call fcn.004017a0
mov eax, dword [esp + 0x10]
push edi
mov edi, dword [eax + 0xc]
add edi, 4
lea edi, [eax + edi*4]
cmp esi, edi
je 0x402c39
mov ecx, dword [0x4082dc]
mov eax, dword fs:[0x2c]
mov eax, dword [eax + ecx*4]
mov dword [esp + 0x20], eax
nop dword [eax + eax]
push esi
lea eax, [esp + 0xf4]
push eax
lea ecx, [esp + 0x38]
call ebx
lea ecx, [esp + 0x28]
push ecx
mov ecx, eax
call dword [sym.imp.Qt5Core.dll_public:_class_QJsonObject___thiscall_QJsonValue::toObject_void_]
mov ebx, dword [sym.imp.Qt5Core.dll_public:_void___thiscall_QJsonValue::destructor_void_]
lea ecx, [esp + 0xf0]
call ebx
mov ecx, dword [esp + 0x20]
mov eax, dword [0x40822c]
cmp eax, dword [ecx + 4]
jle 0x402733
push 0x40822c
call fcn.00403986
add esp, 4
cmp dword [0x40822c], 0xffffffff
jne 0x402733
movq xmm0, qword [str.type]
mov ax, word [0x4052a8]
push 0x40822c
mov dword [0x408210], 0xffffffff
mov dword [0x408214], 4
mov dword [0x408218], 0
mov dword [0x40821c], 0x10
movq qword [0x408220], xmm0
mov word [0x408228], ax
call fcn.0040393c
add esp, 4
lea eax, [esp + 0x40]
mov dword [esp + 0x40], 0x408210
push eax
lea eax, [esp + 0x104]
push eax
lea ecx, [esp + 0x30]
call dword [sym.imp.Qt5Core.dll_public:_class_QJsonValue___thiscall_QJsonObject::value_class_QString_const__]
lea ecx, [esp + 0x24]
push ecx
mov ecx, eax
call dword [sym.imp.Qt5Core.dll_public:_class_QString___thiscall_QJsonValue::toString_void_]
lea ecx, [esp + 0x100]
call ebx
lea ecx, [esp + 0x40]
call dword [sym.imp.Qt5Core.dll_public:_void___thiscall_QString::destructor_void_]
mov ecx, dword [esp + 0x20]
mov eax, dword [0x408250]
cmp eax, dword [ecx + 4]
jle 0x4027dc
push 0x408250
call fcn.00403986
add esp, 4
cmp dword [0x408250], 0xffffffff
jne 0x4027dc
movups xmm0, xmmword [str.Boolean]
push 0x408250
mov dword [0x408230], 0xffffffff
mov dword [0x408234], 7
mov dword [0x408238], 0
mov dword [0x40823c], 0x10
movups xmmword [0x408240], xmm0
call fcn.0040393c
add esp, 4
lea eax, [esp + 0x44]
mov dword [esp + 0x44], 0x408230
push eax
lea eax, [esp + 0x28]
push eax
call dword [sym.imp.Qt5Core.dll_bool___cdecl_operator_class_QString_const___class_QString_const__]
add esp, 8
lea ecx, [esp + 0x44]
mov bl, al
call dword [sym.imp.Qt5Core.dll_public:_void___thiscall_QString::destructor_void_]
mov ecx, dword [esp + 0x20]
mov eax, dword [ecx + 4]
test bl, bl
je 0x402a92
cmp dword [0x408278], eax
jle 0x402882
push 0x408278
call fcn.00403986
add esp, 4
cmp dword [0x408278], 0xffffffff
jne 0x402882
movups xmm0, xmmword [str.disable_]
mov ax, word [0x4052e4]
push 0x408278
mov dword [0x408254], 0xffffffff
mov dword [0x408258], 8
mov dword [0x40825c], 0
mov dword [0x408260], 0x10
movups xmmword [0x408264], xmm0
mov word [0x408274], ax
call fcn.0040393c
add esp, 4
lea eax, [esp + 0x48]
mov dword [esp + 0x48], 0x408254
push eax
lea ecx, [esp + 0x20]
call dword [sym.imp.Qt5Core.dll_public:_void___thiscall_QString::constructor_class_QString_const__]
push esi
lea ecx, [esp + 0x20]
call dword [sym.imp.Qt5Core.dll_public:_class_QString____thiscall_QString::append_class_QString_const__]
lea ecx, [esp + 0x48]
call dword [sym.imp.Qt5Core.dll_public:_void___thiscall_QString::destructor_void_]
mov eax, dword [ebp]
cmp dword [eax + 0xc], 0
je 0x402998
mov ebx, dword [sym.imp.Qt5Core.dll_unsigned_int___cdecl_qHash_class_QString_const___unsigned_int_]
xor ecx, ecx
cmp dword [eax + 0x18], ecx
je 0x4028d3
push dword [eax + 0x1c]
push esi
call ebx
add esp, 8
mov ecx, eax
push ecx
push esi
mov ecx, ebp
call fcn.00401990
mov ecx, dword [eax]
mov eax, dword [ebp]
cmp ecx, eax
je 0x402998
cmp dword [ecx + 0xc], 0
je 0x402998
cmp dword [eax + 0xc], 0
je 0x402920
xor ecx, ecx
cmp dword [eax + 0x18], ecx
je 0x40290b
push dword [eax + 0x1c]
push esi
call ebx
add esp, 8
mov ecx, eax
push ecx
push esi
mov ecx, ebp
call fcn.00401990
mov eax, dword [eax]
cmp eax, dword [ebp]
je 0x402920
mov eax, dword [eax + 0xc]
jmp 0x402922
xor eax, eax
mov ecx, dword [esp + 0x118]
push eax
call dword [sym.imp.Qt5Core.dll_public:_bool___thiscall_QCommandLineParser::isSet_class_QCommandLineOption_const__const]
test al, al
je 0x402998
push 1
lea ecx, [esp + 0x6c]
call dword [sym.imp.Qt5Core.dll_public:_void___thiscall_QJsonValue::constructor_bool_]
push 5
push str.value
call dword [sym.imp.Qt5Core.dll_private:_static_struct_QTypedArrayData_unsigned_short_int_____cdecl_QString::fromAscii_helper_char_const___int_]
add esp, 8
mov dword [esp + 0x4c], eax
lea eax, [esp + 0x68]
lea ecx, [esp + 0x28]
push eax
lea eax, [esp + 0x50]
push eax
lea eax, [esp + 0xc0]
push eax
mov eax, dword [sym.imp.Qt5Core.dll_public:_class_QJsonValueRef___thiscall_QJsonObject::operator___class_QString_const__]
call eax
mov ecx, eax
mov eax, dword [sym.imp.Qt5Core.dll_public:_class_QJsonValueRef____thiscall_QJsonValueRef::operator_class_QJsonValue_const__]
call eax
lea ecx, [esp + 0x4c]
call dword [sym.imp.Qt5Core.dll_public:_void___thiscall_QString::destructor_void_]
mov eax, dword [sym.imp.Qt5Core.dll_public:_void___thiscall_QJsonValue::destructor_void_]
lea ecx, [esp + 0x68]
call eax
lea ecx, [esp + 0x1c]
jmp 0x402bcc
mov eax, dword [ebp]
cmp dword [eax + 0xc], 0
je 0x402a89
mov ebx, dword [sym.imp.Qt5Core.dll_unsigned_int___cdecl_qHash_class_QString_const___unsigned_int_]
xor ecx, ecx
cmp dword [eax + 0x18], ecx
je 0x4029c1
push dword [eax + 0x1c]
lea eax, [esp + 0x20]
push eax
call ebx
add esp, 8
mov ecx, eax
push ecx
lea eax, [esp + 0x20]
mov ecx, ebp
push eax
call fcn.00401990
mov ecx, dword [eax]
mov eax, dword [ebp]
cmp ecx, eax
je 0x402a89
cmp dword [ecx + 0xc], 0
je 0x402a89
cmp dword [eax + 0xc], 0
je 0x402a1a
xor ecx, ecx
cmp dword [eax + 0x18], ecx
je 0x402a01
push dword [eax + 0x1c]
lea eax, [esp + 0x20]
push eax
call ebx
add esp, 8
mov ecx, eax
push ecx
lea eax, [esp + 0x20]
mov ecx, ebp
push eax
call fcn.00401990
mov eax, dword [eax]
cmp eax, dword [ebp]
je 0x402a1a
mov eax, dword [eax + 0xc]
jmp 0x402a1c
xor eax, eax
mov ecx, dword [esp + 0x118]
push eax
call dword [sym.imp.Qt5Core.dll_public:_bool___thiscall_QCommandLineParser::isSet_class_QCommandLineOption_const__const]
test al, al
je 0x402a89
push 0
lea ecx, [esp + 0x7c]
call dword [sym.imp.Qt5Core.dll_public:_void___thiscall_QJsonValue::constructor_bool_]
push 5
push str.value
call dword [sym.imp.Qt5Core.dll_private:_static_struct_QTypedArrayData_unsigned_short_int_____cdecl_QString::fromAscii_helper_char_const___int_]
add esp, 8
mov dword [esp + 0x50], eax
lea eax, [esp + 0x78]
lea ecx, [esp + 0x28]
push eax
lea eax, [esp + 0x54]
push eax
lea eax, [esp + 0xc8]
push eax
mov eax, dword [sym.imp.Qt5Core.dll_public:_class_QJsonValueRef___thiscall_QJsonObject::operator___class_QString_const__]
call eax
mov ecx, eax
mov eax, dword [sym.imp.Qt5Core.dll_public:_class_QJsonValueRef____thiscall_QJsonValueRef::operator_class_QJsonValue_const__]
call eax
lea ecx, [esp + 0x50]
call dword [sym.imp.Qt5Core.dll_public:_void___thiscall_QString::destructor_void_]
mov eax, dword [sym.imp.Qt5Core.dll_public:_void___thiscall_QJsonValue::destructor_void_]
lea ecx, [esp + 0x78]
call eax
lea ecx, [esp + 0x1c]
jmp 0x402bcc
cmp dword [0x408298], eax
jle 0x402b01
push 0x408298
call fcn.00403986
add esp, 4
cmp dword [0x408298], 0xffffffff
jne 0x402b01
movq xmm0, qword [str.Real]
mov ax, word [0x4052f0]
push 0x408298
mov dword [0x40827c], 0xffffffff
mov dword [0x408280], 4
mov dword [0x408284], 0
mov dword [0x408288], 0x10
movq qword [0x40828c], xmm0
mov word [0x408294], ax
call fcn.0040393c
add esp, 4
lea eax, [esp + 0x54]
mov dword [esp + 0x54], 0x40827c
push eax
lea eax, [esp + 0x28]
push eax
call dword [sym.imp.Qt5Core.dll_bool___cdecl_operator_class_QString_const___class_QString_const__]
add esp, 8
lea ecx, [esp + 0x54]
mov bl, al
call dword [sym.imp.Qt5Core.dll_public:_void___thiscall_QString::destructor_void_]
test bl, bl
je 0x402bd2
mov ebx, dword [esp + 0x118]
mov ecx, ebx
push esi
call dword [sym.imp.Qt5Core.dll_public:_bool___thiscall_QCommandLineParser::isSet_class_QString_const__const]
test al, al
je 0x402bd2
push esi
lea eax, [esp + 0x64]
mov ecx, ebx
push eax
call dword [sym.imp.Qt5Core.dll_public:_class_QString___thiscall_QCommandLineParser::value_class_QString_const__]
push 0
mov ecx, eax
call dword [sym.imp.Qt5Core.dll_public:_double___thiscall_QString::toDouble_bool__const]
sub esp, 8
lea ecx, [esp + 0x90]
fstp qword [esp]
call dword [sym.imp.Qt5Core.dll_public:_void___thiscall_QJsonValue::constructor_double_]
push 5
push str.value
call dword [sym.imp.Qt5Core.dll_private:_static_struct_QTypedArrayData_unsigned_short_int_____cdecl_QString::fromAscii_helper_char_const___int_]
add esp, 8
mov dword [esp + 0x58], eax
lea eax, [esp + 0x88]
lea ecx, [esp + 0x28]
push eax
lea eax, [esp + 0x5c]
push eax
lea eax, [esp + 0xd0]
push eax
mov eax, dword [sym.imp.Qt5Core.dll_public:_class_QJsonValueRef___thiscall_QJsonObject::operator___class_QString_const__]
call eax
mov ecx, eax
mov eax, dword [sym.imp.Qt5Core.dll_public:_class_QJsonValueRef____thiscall_QJsonValueRef::operator_class_QJsonValue_const__]
call eax
lea ecx, [esp + 0x58]
call dword [sym.imp.Qt5Core.dll_public:_void___thiscall_QString::destructor_void_]
mov eax, dword [sym.imp.Qt5Core.dll_public:_void___thiscall_QJsonValue::destructor_void_]
lea ecx, [esp + 0x88]
call eax
lea ecx, [esp + 0x60]
call dword [sym.imp.Qt5Core.dll_public:_void___thiscall_QString::destructor_void_]
lea eax, [esp + 0x28]
push eax
lea ecx, [esp + 0x9c]
call dword [sym.imp.Qt5Core.dll_public:_void___thiscall_QJsonValue::constructor_class_QJsonObject_const__]
lea eax, [esp + 0x98]
push eax
push esi
lea eax, [esp + 0xd8]
push eax
lea ecx, [esp + 0x3c]
call dword [sym.imp.Qt5Core.dll_public:_class_QJsonValueRef___thiscall_QJsonObject::operator___class_QString_const__]
mov ecx, eax
call dword [sym.imp.Qt5Core.dll_public:_class_QJsonValueRef____thiscall_QJsonValueRef::operator_class_QJsonValue_const__]
lea ecx, [esp + 0x98]
call dword [sym.imp.Qt5Core.dll_public:_void___thiscall_QJsonValue::destructor_void_]
lea ecx, [esp + 0x24]
call dword [sym.imp.Qt5Core.dll_public:_void___thiscall_QString::destructor_void_]
lea ecx, [esp + 0x28]
call dword [sym.imp.Qt5Core.dll_public:_void___thiscall_QJsonObject::destructor_void_]
mov ebx, dword [sym.imp.Qt5Core.dll_public:_class_QJsonValue___thiscall_QJsonObject::value_class_QString_const__]
add esi, 4
cmp esi, edi
jne 0x402690
lea ecx, [esp + 0x14]
call fcn.00401070
lea eax, [esp + 0x30]
push eax
lea ecx, [esp + 0xac]
call dword [sym.imp.Qt5Core.dll_public:_void___thiscall_QJsonValue::constructor_class_QJsonObject_const__]
push 7
push str.options
call dword [sym.imp.Qt5Core.dll_private:_static_struct_QTypedArrayData_unsigned_short_int_____cdecl_QString::fromAscii_helper_char_const___int_]
add esp, 8
mov dword [esp + 0x5c], eax
lea eax, [esp + 0xa8]
lea ecx, [esp + 0x38]
push eax
lea eax, [esp + 0x60]
push eax
lea eax, [esp + 0xe0]
push eax
call dword [sym.imp.Qt5Core.dll_public:_class_QJsonValueRef___thiscall_QJsonObject::operator___class_QString_const__]
mov ecx, eax
call dword [sym.imp.Qt5Core.dll_public:_class_QJsonValueRef____thiscall_QJsonValueRef::operator_class_QJsonValue_const__]
lea ecx, [esp + 0x5c]
call dword [sym.imp.Qt5Core.dll_public:_void___thiscall_QString::destructor_void_]
lea ecx, [esp + 0xa8]
call dword [sym.imp.Qt5Core.dll_public:_void___thiscall_QJsonValue::destructor_void_]
mov esi, dword [esp + 0x114]
lea ecx, [esp + 0x30]
push esi
call dword [sym.imp.Qt5Core.dll_public:_class_QMap_class_QString__class_QVariant____thiscall_QJsonObject::toVariantMap_void_]
mov ebx, dword [sym.imp.Qt5Core.dll_public:_void___thiscall_QJsonObject::destructor_void_]
lea ecx, [esp + 0x30]
call ebx
lea ecx, [esp + 0x38]
call ebx
pop edi
mov eax, esi
pop esi
pop ebp
pop ebx
add esp, 0x100
ret 0xc