int __thiscall Open_ItemToolTipTextBmdFile(char *this, const char *src)
{
int result; // eax
int iwCheckSum; // eax
_WORD *v4; // eax
int v5; // eax
bool v6; // zf
__int16 v7[131]; // [esp+2h] [ebp-44Eh] BYREF
CHAR v8[256]; // [esp+108h] [ebp-348h] BYREF
CHAR Text[256]; // [esp+208h] [ebp-248h] BYREF
char m_stTooltipTextBmd[260]; // [esp+308h] [ebp-148h] BYREF
char v11[8]; // [esp+40Ch] [ebp-44h] BYREF
int v12; // [esp+418h] [ebp-38h]
int v13; // [esp+41Ch] [ebp-34h]
int v14; // [esp+420h] [ebp-30h]
int v15; // [esp+424h] [ebp-2Ch]
int dwCheckSum; // [esp+428h] [ebp-28h] BYREF
int v17; // [esp+42Ch] [ebp-24h]
int length; // [esp+430h] [ebp-20h] BYREF
char *v19; // [esp+434h] [ebp-1Ch]
int i; // [esp+438h] [ebp-18h]
int v21; // [esp+43Ch] [ebp-14h]
int iSize; // [esp+440h] [ebp-10h]
int pSeek; // [esp+444h] [ebp-Ch]
int fp; // [esp+448h] [ebp-8h]
int Buffer; // [esp+44Ch] [ebp-4h]
v19 = this;
if ( sub_F9E91A(this + 20) )
sub_F9B15E(v19);
fp = fopen(src, aRb_42);
if ( fp )
{
fread(&length, 4, 1, fp);
iSize = 260;
v21 = 260 * length;
v17 = sub_1955F49(260 * length);
Buffer = v17;
fread(v17, v21, 1, fp);
fread(&dwCheckSum, 4, 1, fp);
fclose(fp);
iwCheckSum = GenerateCheckSum2(Buffer, v21, 0xE2F1);
if ( dwCheckSum == iwCheckSum )
{
pSeek = Buffer;
sub_1971C70(m_stTooltipTextBmd, 0, 260); // //ITEM_TOOLTIP_TEXT
//
for ( i = 0; ; ++i )
{
result = i;
if ( i >= length )
break;
BuxConvertS19(pSeek, iSize, 0xE2F1);
memcpy(m_stTooltipTextBmd, pSeek, iSize);
v4 = sub_F98EBB(v7, (int)m_stTooltipTextBmd, (int)m_stTooltipTextBmd);
v5 = sub_F9A4E4((int)v11, (int)v4);
result = sub_F9904F(v5);
if ( !v12 )
{
if ( Buffer )
{
v14 = Buffer;
result = sub_1955F52(Buffer);
Buffer = 0;
}
return result;
}
v6 = iSize + pSeek == 0;
result = iSize + pSeek;
pSeek += iSize;
if ( v6 )
break;
}
if ( Buffer )
{
v13 = Buffer;
return sub_1955F52(Buffer);
}
}
else
{
if ( Buffer )
{
v15 = Buffer;
sub_1955F52(Buffer);
Buffer = 0;
}
sub_960193(v8, "%s - File corrupted.", src);
sub_13317A2(&off_6F10FA8, v8);
MessageBoxA(hWnd, v8, 0, 0);
return SendMessageW(hWnd, 2u, 0, 0);
}
}
else
{
sub_960193(Text, "%s - File not exist.", src);
sub_13317A2(&off_6F10FA8, Text);
MessageBoxA(hWnd, Text, 0, 0);
return SendMessageW(hWnd, 2u, 0, 0);
}
return result;
}