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

Disassembly:
push 0xffffffffffffffff
push 0x4be42a
mov eax, dword fs:[0]
push eax
sub esp, 0x15c
mov eax, dword [0xc18374]
xor eax, esp
mov dword [esp + 0x158], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0xc18374]
xor eax, esp
push eax
lea eax, [esp + 0x170]
mov dword fs:[0], eax
mov esi, dword [esp + 0x180]
lea eax, [esp + 0x3e]
mov edi, ecx
push eax
mov dword [esp + 0x2c], edi
call dword [sym.imp.QtCore4.dll_public:_static_class_QChar___cdecl_QDir::separator_void_]
mov ecx, 0xff
add esp, 4
cmp word [eax], cx
jbe 0x47aad4
xor al, al
jmp 0x47aad7
movzx eax, byte [eax]
push eax
lea edx, [esp + 0xfc]
push esi
push edx
call dword [sym.imp.MSVCP90.dll_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char_____cdecl_std::operator_char__struct_std::char_traits_char___class_std::allocator_char___class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const___char_]
push 0xc19eb8
push eax
lea eax, [esp + 0x148]
push eax
mov dword [esp + 0x190], 0
call dword [sym.imp.MSVCP90.dll_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char_____cdecl_std::operator_char__struct_std::char_traits_char___class_std::allocator_char___class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const___class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const__]
add esp, 0x18
lea ecx, [esp + 0xf8]
mov byte [esp + 0x178], 2
call dword [sym.imp.MSVCP90.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
mov eax, dword [esp + 0x138]
mov esi, 0x10
cmp dword [esp + 0x14c], esi
jae 0x47ab3a
lea eax, [esp + 0x138]
push 0xffffffffffffffff
push eax
lea ecx, [esp + 0x3c]
push ecx
call dword [sym.imp.QtCore4.dll_public:_static_class_QString___cdecl_QString::fromLocal8Bit_char_const___int_]
add esp, 0xc
push eax
lea ecx, [esp + 0x20]
mov byte [esp + 0x17c], 3
call dword [sym.imp.QtCore4.dll_public:_void___thiscall_QString::constructor_class_QString_const__]
mov edx, dword [esp + 0x34]
mov ebx, dword [sym.imp.QtCore4.dll_private:_static_void___cdecl_QString::free_struct_QString::Data__]
mov byte [esp + 0x178], 5
or eax, 0xffffffff
lock xadd dword [edx], eax
jne 0x47ab83
mov ecx, dword [esp + 0x34]
push ecx
call ebx
add esp, 4
lea edx, [esp + 0x134]
push edx
call fcn.00465790
add esp, 4
test al, al
jne 0x47ac0a
mov eax, dword [esp + 0x138]
cmp dword [esp + 0x14c], esi
jae 0x47abae
lea eax, [esp + 0x138]
push eax
lea eax, [esp + 0x44]
push str.Checksum_File__s__is_not_found_
push eax
mov dword [esp + 0x4c], 1
mov dword [esp + 0x50], str.ChksumRule::IniChksumMap
mov dword [esp + 0x54], str....._flashtoolRulesChksumRule.cpp
mov dword [esp + 0x58], 0x1d
call fcn.0040b750
mov ecx, dword [esp + 0x28]
add esp, 0xc
mov byte [edi + 0x20], 0
mov byte [esp + 0x178], 2
or edx, 0xffffffff
lock xadd dword [ecx], edx
jne 0x47b0bc
mov eax, dword [esp + 0x1c]
push eax
call ebx
jmp 0x47b0b9
push 8
call sub.MSVCR90.dll_void____cdecl_operator_new_unsigned_int_
mov ebp, eax
add esp, 4
mov dword [esp + 0x2c], ebp
mov byte [esp + 0x178], 6
test ebp, ebp
je 0x47ac40
push 0
push 1
lea ecx, [esp + 0x24]
push ecx
mov ecx, ebp
call dword [sym.imp.QtCore4.dll_public:_void___thiscall_QSettings::constructor_class_QString_const___enum_QSettings::Format__class_QObject__]
mov dword [ebp], 0x4f1680
jmp 0x47ac42
xor ebp, ebp
mov esi, dword [sym.imp.QtCore4.dll_private:_static_struct_QString::Data____cdecl_QString::fromAscii_helper_char_const___int_]
push 0xffffffffffffffff
push str.IsEnableChecksum
mov byte [esp + 0x180], 5
call esi
add esp, 8
mov dword [esp + 0x30], eax
mov edi, dword [sym.imp.QtCore4.dll_public:_void___thiscall_QSettings::beginGroup_class_QString_const__]
lea edx, [esp + 0x30]
push edx
mov ecx, ebp
mov byte [esp + 0x17c], 7
call edi
mov eax, dword [esp + 0x30]
mov byte [esp + 0x178], 5
or ecx, 0xffffffff
lock xadd dword [eax], ecx
jne 0x47ac96
mov edx, dword [esp + 0x30]
push edx
call ebx
add esp, 4
push 0xffffffffffffffff
push str.CHECKSUM_SWITCH
call esi
add esp, 8
mov dword [esp + 0x24], eax
lea ecx, [esp + 0x80]
mov byte [esp + 0x178], 8
call dword [sym.imp.QtCore4.dll_public:_void___thiscall_QVariant::constructor_void_]
push eax
lea eax, [esp + 0x28]
push eax
lea ecx, [esp + 0xc8]
push ecx
mov bl, 9
mov ecx, ebp
mov byte [esp + 0x184], bl
call dword [sym.imp.QtCore4.dll_public:_class_QVariant___thiscall_QSettings::value_class_QString_const___class_QVariant_const__]
mov ecx, eax
mov byte [esp + 0x178], 0xa
call dword [sym.imp.QtCore4.dll_public:_bool___thiscall_QVariant::toBool_void_const]
mov edx, dword [esp + 0x28]
mov byte [esp + 0x178], bl
mov ebx, dword [sym.imp.QtCore4.dll_public:_void___thiscall_QVariant::destructor_void_]
lea ecx, [esp + 0xc0]
mov byte [edx + 0x20], al
call ebx
lea ecx, [esp + 0x80]
mov byte [esp + 0x178], 8
call ebx
mov eax, dword [esp + 0x24]
mov byte [esp + 0x178], 5
or ecx, 0xffffffff
lock xadd dword [eax], ecx
jne 0x47ad3b
mov edx, dword [esp + 0x24]
push edx
call dword [sym.imp.QtCore4.dll_private:_static_void___cdecl_QString::free_struct_QString::Data__]
add esp, 4
mov eax, dword [esp + 0x28]
movzx ecx, byte [eax + 0x20]
push ecx
lea edx, [esp + 0x64]
push str.Check_if_do_checksum__d_
push edx
mov dword [esp + 0x6c], 1
mov dword [esp + 0x70], str.ChksumRule::IniChksumMap
mov dword [esp + 0x74], str....._flashtoolRulesChksumRule.cpp
mov dword [esp + 0x78], 0x26
call fcn.0040b750
add esp, 0xc
mov ecx, ebp
call dword [sym.imp.QtCore4.dll_public:_void___thiscall_QSettings::endGroup_void_]
push 0xffffffffffffffff
push str.CheckSum
call esi
add esp, 8
mov dword [esp + 0x20], eax
lea eax, [esp + 0x20]
push eax
mov ecx, ebp
mov byte [esp + 0x17c], 0xb
call edi
mov ecx, dword [esp + 0x20]
mov byte [esp + 0x178], 5
or edx, 0xffffffff
lock xadd dword [ecx], edx
jne 0x47adc2
mov eax, dword [esp + 0x20]
push eax
call dword [sym.imp.QtCore4.dll_private:_static_void___cdecl_QString::free_struct_QString::Data__]
add esp, 4
lea ecx, [esp + 0x14]
push ecx
mov ecx, ebp
call dword [sym.imp.QtCore4.dll_public:_class_QStringList___thiscall_QSettings::allKeys_void_]
lea ecx, [esp + 0x150]
mov byte [esp + 0x178], 0xc
call dword [sym.imp.MSVCP90.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_void_]
mov eax, dword [esp + 0x14]
mov byte [esp + 0x1b], 1
mov edx, dword [eax + 0xc]
sub edx, dword [eax + 8]
xor esi, esi
mov byte [esp + 0x178], 0xd
test edx, edx
jle 0x47b02c
jmp 0x47ae16
mov ebx, dword [sym.imp.QtCore4.dll_public:_void___thiscall_QVariant::destructor_void_]
lea ecx, [esp + 0x70]
call dword [sym.imp.QtCore4.dll_public:_void___thiscall_QVariant::constructor_void_]
push eax
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + 8]
add ecx, esi
lea edx, [eax + ecx*4 + 0x14]
push edx
lea eax, [esp + 0x98]
push eax
mov ecx, ebp
mov byte [esp + 0x184], 0xe
call dword [sym.imp.QtCore4.dll_public:_class_QVariant___thiscall_QSettings::value_class_QString_const___class_QVariant_const__]
lea ecx, [esp + 0x38]
push ecx
mov ecx, eax
mov byte [esp + 0x17c], 0xf
call dword [sym.imp.QtCore4.dll_public:_class_QString___thiscall_QVariant::toString_void_]
push 0
lea edx, [esp + 0x1f]
push edx
mov ecx, eax
mov byte [esp + 0x180], 0x10
call dword [sym.imp.QtCore4.dll_public:_unsigned_int___thiscall_QString::toUInt_bool___int_const]
mov edi, eax
mov eax, dword [esp + 0x38]
mov byte [esp + 0x178], 0xf
or ecx, 0xffffffff
lock xadd dword [eax], ecx
jne 0x47ae98
mov edx, dword [esp + 0x38]
push edx
call dword [sym.imp.QtCore4.dll_private:_static_void___cdecl_QString::free_struct_QString::Data__]
add esp, 4
lea ecx, [esp + 0x90]
mov byte [esp + 0x178], 0xe
call ebx
lea ecx, [esp + 0x70]
mov byte [esp + 0x178], 0xd
call ebx
lea eax, [esp + 0x2c]
push eax
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + 8]
add ecx, esi
lea ecx, [eax + ecx*4 + 0x14]
call dword [sym.imp.QtCore4.dll_public:_class_QByteArray___thiscall_QString::toLocal8Bit_void_]
mov edx, dword [eax]
mov eax, dword [edx + 0xc]
push eax
lea ecx, [esp + 0xe0]
mov byte [esp + 0x17c], 0x11
call dword [sym.imp.MSVCP90.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_char_const__]
push eax
lea ecx, [esp + 0x154]
mov byte [esp + 0x17c], 0x12
call dword [0x4dc250]
lea ecx, [esp + 0xdc]
mov byte [esp + 0x178], 0x11
call dword [sym.imp.MSVCP90.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
mov eax, dword [esp + 0x2c]
mov byte [esp + 0x178], 0xd
or ecx, 0xffffffff
lock xadd dword [eax], ecx
jne 0x47af38
mov edx, dword [esp + 0x2c]
push edx
call dword [sym.imp.QtCore4.dll_void___cdecl_qFree_void__]
add esp, 4
push edi
sub esp, 0x1c
lea eax, [esp + 0x170]
mov ecx, esp
mov dword [esp + 0x40], esp
push eax
call dword [sym.imp.MSVCP90.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const__]
lea ecx, [esp + 0x134]
push ecx
call fcn.0047a6e0
add esp, 0x24
mov ebx, eax
push ebx
lea ecx, [esp + 0xa4]
mov byte [esp + 0x17c], 0x13
call dword [sym.imp.MSVCP90.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const__]
mov edx, dword [ebx + 0x1c]
mov dword [esp + 0xbc], edx
lea eax, [esp + 0xa0]
push eax
lea ecx, [esp + 0xd4]
push ecx
mov ecx, dword [esp + 0x30]
mov byte [esp + 0x180], 0x14
call fcn.00461ea0
lea ecx, [esp + 0xa0]
mov byte [esp + 0x178], 0x13
call dword [sym.imp.MSVCP90.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
lea ecx, [esp + 0x114]
mov byte [esp + 0x178], 0xd
call dword [sym.imp.MSVCP90.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
cmp dword [esp + 0x168], 0x10
mov eax, dword [esp + 0x154]
jae 0x47afe5
lea eax, [esp + 0x154]
push edi
push eax
lea edx, [esp + 0x58]
push str.chksum_name__s___chksum_value__d_
push edx
mov dword [esp + 0x60], 1
mov dword [esp + 0x64], str.ChksumRule::IniChksumMap
mov dword [esp + 0x68], str....._flashtoolRulesChksumRule.cpp
mov dword [esp + 0x6c], 0x33
call fcn.0040b750
mov eax, dword [esp + 0x24]
mov ecx, dword [eax + 0xc]
sub ecx, dword [eax + 8]
inc esi
add esp, 0x10
cmp esi, ecx
jl 0x47ae10
test ebp, ebp
je 0x47b03c
mov edx, dword [ebp]
mov eax, dword [edx + 0xc]
push 1
mov ecx, ebp
call eax
lea ecx, [esp + 0x150]
mov byte [esp + 0x178], 0xc
call dword [sym.imp.MSVCP90.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
mov eax, dword [esp + 0x14]
mov byte [esp + 0x178], 5
test eax, eax
je 0x47b099
or ecx, 0xffffffff
lock xadd dword [eax], ecx
jne 0x47b099
mov eax, dword [esp + 0x14]
mov edx, dword [eax + 0xc]
lea ecx, [eax + edx*4 + 0x14]
mov edx, dword [eax + 8]
mov esi, eax
push ecx
lea eax, [eax + edx*4 + 0x14]
push eax
lea ecx, [esp + 0x1c]
call fcn.004028a0
mov ecx, dword [esi]
test ecx, ecx
jne 0x47b099
push esi
call dword [sym.imp.QtCore4.dll_void___cdecl_qFree_void__]
add esp, 4
mov edx, dword [esp + 0x1c]
mov byte [esp + 0x178], 2
or eax, 0xffffffff
lock xadd dword [edx], eax
jne 0x47b0bc
mov ecx, dword [esp + 0x1c]
push ecx
call dword [sym.imp.QtCore4.dll_private:_static_void___cdecl_QString::free_struct_QString::Data__]
add esp, 4
lea ecx, [esp + 0x134]
mov dword [esp + 0x178], 0xffffffff
call dword [sym.imp.MSVCP90.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
mov ecx, dword [esp + 0x170]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x158]
xor ecx, esp
call fcn.004ac9a4
add esp, 0x168
ret 4