BZ2_compressBlock
0x00290ce0 · 22927 bytes · __cdecl
_Z17BZ2_compressBlockP6EStateh
Decompiled
undefined (2 params)
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
/* BZ2_compressBlock(EState*, unsigned char) */
void BZ2_compressBlock(EState *param_1,uchar param_2)
{
short *psVar1;
int *piVar2;
EState EVar3;
ushort uVar4;
char cVar5;
EState EVar6;
uint uVar7;
int iVar8;
int iVar9;
int iVar10;
EState *pEVar11;
ushort *puVar12;
uint uVar13;
int iVar14;
EState EVar15;
int iVar16;
uint uVar17;
EState *pEVar18;
int iVar19;
int iVar20;
uint uVar21;
uint uVar22;
uint uVar23;
uint uVar24;
uint uVar25;
uint uVar26;
uint uVar27;
uint uVar28;
uint uVar29;
uint uVar30;
uint uVar31;
uint uVar32;
uint uVar33;
uint uVar34;
uint uVar35;
uint uVar36;
uint uVar37;
uint uVar38;
uint uVar39;
uint uVar40;
uint uVar41;
uint uVar42;
uint uVar43;
uint uVar44;
uint uVar45;
uint uVar46;
uint uVar47;
uint uVar48;
uint uVar49;
uint uVar50;
uint uVar51;
uint uVar52;
uint uVar53;
uint uVar54;
uint uVar55;
uint uVar56;
uint uVar57;
uint uVar58;
uint uVar59;
uint uVar60;
uint uVar61;
uint uVar62;
uint uVar63;
uint uVar64;
uint uVar65;
uint uVar66;
EState *pEVar67;
uint uVar68;
uint uVar69;
int iVar70;
int in_GS_OFFSET;
bool bVar71;
int local_18c;
int local_188;
int local_180;
int local_17c;
EState *local_178;
uint local_170;
int local_16c;
uint local_168;
int local_164;
int local_160;
EState *local_158;
EState *local_154;
EState *local_150;
undefined4 local_144;
undefined4 local_140;
undefined4 local_13c;
int aiStack_138 [6];
EState local_120 [16];
EState local_110 [240];
int local_20;
iVar8 = *(int *)(param_1 + 0x44);
local_20 = *(int *)(in_GS_OFFSET + 0x14);
if (0 < iVar8) {
uVar17 = ~*(uint *)(param_1 + 0x260);
*(uint *)(param_1 + 0x260) = uVar17;
uVar7 = (*(uint *)(param_1 + 0x264) >> 0x1f | *(uint *)(param_1 + 0x264) << 1) ^ uVar17;
*(uint *)(param_1 + 0x264) = uVar7;
if (1 < *(int *)(param_1 + 0x26c)) {
*(undefined4 *)(param_1 + 0x4c) = 0;
}
if (1 < *(int *)(param_1 + 0x268)) {
fprintf(_stderr," block %d: crc = 0x%8x, combined CRC = 0x%8x, size = %d\n",
*(int *)(param_1 + 0x26c),uVar17,uVar7,iVar8);
}
BZ2_blockSort(param_1);
iVar8 = *(int *)(param_1 + 0x44);
}
*(int *)(param_1 + 0x2c) = *(int *)(param_1 + 0x14) + iVar8;
if (*(int *)(param_1 + 0x26c) == 1) {
iVar8 = *(int *)(param_1 + 0x4c);
uVar7 = 0x42000000;
*(undefined4 *)(param_1 + 600) = 0x42000000;
*(undefined4 *)(param_1 + 0x25c) = 8;
do {
*(char *)(*(int *)(param_1 + 0x2c) + iVar8) = (char)(uVar7 >> 0x18);
iVar14 = *(int *)(param_1 + 0x25c);
iVar9 = iVar14 + -8;
iVar8 = *(int *)(param_1 + 0x4c) + 1;
*(int *)(param_1 + 0x25c) = iVar9;
uVar7 = *(int *)(param_1 + 600) << 8;
*(int *)(param_1 + 0x4c) = iVar8;
*(uint *)(param_1 + 600) = uVar7;
} while (7 < iVar9);
*(int *)(param_1 + 0x25c) = iVar14;
uVar7 = 0x5a << (0x18U - (char)iVar9 & 0x1f) | uVar7;
*(uint *)(param_1 + 600) = uVar7;
while (7 < iVar14) {
*(char *)(*(int *)(param_1 + 0x2c) + iVar8) = (char)(uVar7 >> 0x18);
iVar14 = *(int *)(param_1 + 0x25c) + -8;
iVar8 = *(int *)(param_1 + 0x4c) + 1;
*(int *)(param_1 + 0x25c) = iVar14;
uVar7 = *(int *)(param_1 + 600) << 8;
*(int *)(param_1 + 0x4c) = iVar8;
*(uint *)(param_1 + 600) = uVar7;
}
iVar9 = iVar14 + 8;
EVar15 = param_1[0x270];
*(int *)(param_1 + 0x25c) = iVar9;
uVar7 = 0x68 << (0x18U - (char)iVar14 & 0x1f) | uVar7;
*(uint *)(param_1 + 600) = uVar7;
while (7 < iVar9) {
*(char *)(*(int *)(param_1 + 0x2c) + iVar8) = (char)(uVar7 >> 0x18);
iVar8 = *(int *)(param_1 + 0x4c) + 1;
iVar9 = *(int *)(param_1 + 0x25c) + -8;
*(int *)(param_1 + 0x4c) = iVar8;
*(int *)(param_1 + 0x25c) = iVar9;
uVar7 = *(int *)(param_1 + 600) << 8;
*(uint *)(param_1 + 600) = uVar7;
}
*(int *)(param_1 + 0x25c) = iVar9 + 8;
iVar8 = *(int *)(param_1 + 0x44);
*(uint *)(param_1 + 600) =
(uint)(byte)((char)EVar15 + 0x30) << (0x18U - (char)iVar9 & 0x1f) | uVar7;
}
if (0 < iVar8) {
iVar8 = *(int *)(param_1 + 0x25c);
if (iVar8 < 8) {
uVar7 = *(uint *)(param_1 + 600);
}
else {
iVar9 = *(int *)(param_1 + 0x4c);
uVar7 = *(uint *)(param_1 + 600);
do {
*(char *)(*(int *)(param_1 + 0x2c) + iVar9) = (char)(uVar7 >> 0x18);
iVar9 = *(int *)(param_1 + 0x4c) + 1;
uVar7 = *(int *)(param_1 + 600) << 8;
*(int *)(param_1 + 0x4c) = iVar9;
*(uint *)(param_1 + 600) = uVar7;
iVar8 = *(int *)(param_1 + 0x25c) + -8;
*(int *)(param_1 + 0x25c) = iVar8;
} while (7 < iVar8);
}
iVar9 = iVar8 + 8;
*(int *)(param_1 + 0x25c) = iVar9;
uVar7 = 0x31 << (0x18U - (char)iVar8 & 0x1f) | uVar7;
*(uint *)(param_1 + 600) = uVar7;
if (7 < iVar9) {
iVar8 = *(int *)(param_1 + 0x4c);
do {
*(char *)(*(int *)(param_1 + 0x2c) + iVar8) = (char)(uVar7 >> 0x18);
iVar8 = *(int *)(param_1 + 0x4c) + 1;
uVar7 = *(int *)(param_1 + 600) << 8;
*(int *)(param_1 + 0x4c) = iVar8;
*(uint *)(param_1 + 600) = uVar7;
iVar9 = *(int *)(param_1 + 0x25c) + -8;
*(int *)(param_1 + 0x25c) = iVar9;
} while (7 < iVar9);
}
iVar8 = iVar9 + 8;
*(int *)(param_1 + 0x25c) = iVar8;
uVar7 = 0x41 << (0x18U - (char)iVar9 & 0x1f) | uVar7;
*(uint *)(param_1 + 600) = uVar7;
if (7 < iVar8) {
iVar9 = *(int *)(param_1 + 0x4c);
do {
*(char *)(*(int *)(param_1 + 0x2c) + iVar9) = (char)(uVar7 >> 0x18);
iVar9 = *(int *)(param_1 + 0x4c) + 1;
uVar7 = *(int *)(param_1 + 600) << 8;
*(int *)(param_1 + 0x4c) = iVar9;
*(uint *)(param_1 + 600) = uVar7;
iVar8 = *(int *)(param_1 + 0x25c) + -8;
*(int *)(param_1 + 0x25c) = iVar8;
} while (7 < iVar8);
}
iVar9 = iVar8 + 8;
*(int *)(param_1 + 0x25c) = iVar9;
uVar7 = 0x59 << (0x18U - (char)iVar8 & 0x1f) | uVar7;
*(uint *)(param_1 + 600) = uVar7;
if (7 < iVar9) {
iVar8 = *(int *)(param_1 + 0x4c);
do {
*(char *)(*(int *)(param_1 + 0x2c) + iVar8) = (char)(uVar7 >> 0x18);
iVar8 = *(int *)(param_1 + 0x4c) + 1;
uVar7 = *(int *)(param_1 + 600) << 8;
*(int *)(param_1 + 0x4c) = iVar8;
*(uint *)(param_1 + 600) = uVar7;
iVar9 = *(int *)(param_1 + 0x25c) + -8;
*(int *)(param_1 + 0x25c) = iVar9;
} while (7 < iVar9);
}
iVar8 = iVar9 + 8;
*(int *)(param_1 + 0x25c) = iVar8;
uVar7 = 0x26 << (0x18U - (char)iVar9 & 0x1f) | uVar7;
*(uint *)(param_1 + 600) = uVar7;
if (7 < iVar8) {
iVar9 = *(int *)(param_1 + 0x4c);
do {
*(char *)(*(int *)(param_1 + 0x2c) + iVar9) = (char)(uVar7 >> 0x18);
iVar9 = *(int *)(param_1 + 0x4c) + 1;
uVar7 = *(int *)(param_1 + 600) << 8;
*(int *)(param_1 + 0x4c) = iVar9;
*(uint *)(param_1 + 600) = uVar7;
iVar8 = *(int *)(param_1 + 0x25c) + -8;
*(int *)(param_1 + 0x25c) = iVar8;
} while (7 < iVar8);
}
iVar9 = iVar8 + 8;
*(int *)(param_1 + 0x25c) = iVar9;
uVar7 = 0x53 << (0x18U - (char)iVar8 & 0x1f) | uVar7;
*(uint *)(param_1 + 600) = uVar7;
if (7 < iVar9) {
iVar8 = *(int *)(param_1 + 0x4c);
do {
*(char *)(*(int *)(param_1 + 0x2c) + iVar8) = (char)(uVar7 >> 0x18);
iVar8 = *(int *)(param_1 + 0x4c) + 1;
uVar7 = *(int *)(param_1 + 600) << 8;
*(int *)(param_1 + 0x4c) = iVar8;
*(uint *)(param_1 + 600) = uVar7;
iVar9 = *(int *)(param_1 + 0x25c) + -8;
*(int *)(param_1 + 0x25c) = iVar9;
} while (7 < iVar9);
}
*(int *)(param_1 + 0x25c) = iVar9 + 8;
*(uint *)(param_1 + 600) = 0x59 << (0x18U - (char)iVar9 & 0x1f) | uVar7;
bsPutUInt32(param_1,*(uint *)(param_1 + 0x260));
iVar8 = *(int *)(param_1 + 0x25c);
if (iVar8 < 8) {
uVar7 = *(uint *)(param_1 + 600);
}
else {
iVar9 = *(int *)(param_1 + 0x4c);
uVar7 = *(uint *)(param_1 + 600);
do {
*(char *)(*(int *)(param_1 + 0x2c) + iVar9) = (char)(uVar7 >> 0x18);
iVar9 = *(int *)(param_1 + 0x4c) + 1;
uVar7 = *(int *)(param_1 + 600) << 8;
*(int *)(param_1 + 0x4c) = iVar9;
*(uint *)(param_1 + 600) = uVar7;
iVar8 = *(int *)(param_1 + 0x25c) + -8;
*(int *)(param_1 + 0x25c) = iVar8;
} while (7 < iVar8);
}
iVar8 = iVar8 + 1;
iVar9 = *(int *)(param_1 + 0x1c);
*(int *)(param_1 + 0x25c) = iVar8;
if (iVar8 == 8) {
iVar14 = *(int *)(param_1 + 0x4c);
do {
*(char *)(*(int *)(param_1 + 0x2c) + iVar14) = (char)(uVar7 >> 0x18);
iVar14 = *(int *)(param_1 + 0x4c) + 1;
uVar7 = *(int *)(param_1 + 600) << 8;
*(int *)(param_1 + 0x4c) = iVar14;
*(uint *)(param_1 + 600) = uVar7;
iVar8 = *(int *)(param_1 + 0x25c) + -8;
*(int *)(param_1 + 0x25c) = iVar8;
} while (7 < iVar8);
}
*(undefined4 *)(param_1 + 0x54) = 0;
*(int *)(param_1 + 0x25c) = iVar8 + 0x18;
iVar14 = *(int *)(param_1 + 0x20);
iVar10 = *(int *)(param_1 + 0x28);
*(uint *)(param_1 + 600) = iVar9 << (8U - (char)iVar8 & 0x1f) | uVar7;
pEVar18 = param_1 + 0x58;
iVar8 = *(int *)(param_1 + 0x24);
iVar9 = 0;
do {
if (*pEVar18 != (EState)0x0) {
pEVar18[0x100] = SUB41(iVar9,0);
iVar9 = iVar9 + 1;
*(int *)(param_1 + 0x54) = iVar9;
}
pEVar18 = pEVar18 + 1;
} while (pEVar18 != param_1 + 0x158);
iVar19 = 0;
do {
*(undefined4 *)(param_1 + iVar19 * 4 + 0x278) = 0;
iVar19 = iVar19 + 1;
} while (iVar19 != iVar9 + 2);
if (iVar9 != 0) {
iVar19 = 0;
do {
local_120[iVar19] = SUB41(iVar19,0);
iVar19 = iVar19 + 1;
} while (iVar19 != iVar9);
}
local_178 = local_120;
local_150 = *(EState **)(param_1 + 0x44);
iVar20 = 0;
iVar70 = 0;
iVar19 = 0;
if ((int)local_150 < 1) {
iVar8 = 1;
}
else {
do {
EVar15 = local_120[1];
iVar16 = *(int *)(iVar14 + iVar70 * 4) + -1;
if (iVar16 < 0) {
iVar16 = (int)local_150 + iVar16;
}
EVar3 = param_1[*(byte *)(iVar8 + iVar16) + 0x158];
if (EVar3 == local_120[0]) {
iVar20 = iVar20 + 1;
}
else {
if (iVar20 != 0) {
uVar7 = iVar20 - 1;
while( true ) {
iVar19 = iVar19 + 1;
if ((uVar7 & 1) == 0) {
*(undefined2 *)(iVar10 + -2 + iVar19 * 2) = 0;
*(int *)(param_1 + 0x278) = *(int *)(param_1 + 0x278) + 1;
}
else {
*(undefined2 *)(iVar10 + -2 + iVar19 * 2) = 1;
*(int *)(param_1 + 0x27c) = *(int *)(param_1 + 0x27c) + 1;
}
if ((int)uVar7 < 2) break;
uVar7 = (int)(uVar7 - 2) >> 1;
}
}
bVar71 = EVar3 == local_120[1];
local_120[1] = local_120[0];
if (bVar71) {
pEVar18 = local_120 + 1;
}
else {
pEVar18 = local_120 + 1;
EVar6 = EVar15;
do {
pEVar18 = pEVar18 + 1;
EVar15 = *pEVar18;
*pEVar18 = EVar6;
EVar6 = EVar15;
} while (EVar3 != EVar15);
}
local_120[0] = EVar15;
*(short *)(iVar10 + iVar19 * 2) = (short)((int)pEVar18 - (int)local_178) + 1;
iVar19 = iVar19 + 1;
*(int *)(param_1 + ((int)pEVar18 - (int)local_178) * 4 + 0x27c) =
*(int *)(param_1 + ((int)pEVar18 - (int)local_178) * 4 + 0x27c) + 1;
iVar20 = 0;
local_150 = *(EState **)(param_1 + 0x44);
}
iVar70 = iVar70 + 1;
} while (iVar70 < (int)local_150);
uVar7 = iVar20 - 1;
iVar8 = iVar19 + 1;
if (iVar20 == 0) {
iVar20 = iVar19 * 2;
}
else {
while( true ) {
if ((uVar7 & 1) == 0) {
*(undefined2 *)(iVar10 + -2 + iVar8 * 2) = 0;
*(int *)(param_1 + 0x278) = *(int *)(param_1 + 0x278) + 1;
}
else {
*(undefined2 *)(iVar10 + -2 + iVar8 * 2) = 1;
*(int *)(param_1 + 0x27c) = *(int *)(param_1 + 0x27c) + 1;
}
if ((int)uVar7 < 2) break;
iVar8 = iVar8 + 1;
uVar7 = (int)(uVar7 - 2) >> 1;
}
iVar20 = iVar8 * 2;
iVar8 = iVar8 + 1;
}
}
*(short *)(iVar10 + iVar20) = (short)(iVar9 + 1);
*(int *)(param_1 + (iVar9 + 1) * 4 + 0x278) = *(int *)(param_1 + (iVar9 + 1) * 4 + 0x278) + 1;
*(int *)(param_1 + 0x274) = iVar8;
iVar9 = *(int *)(param_1 + 0x28);
if (2 < *(int *)(param_1 + 0x268)) {
fprintf(_stderr," %d in block, %d after MTF & 1-2 coding, %d+2 syms in use\n",
*(undefined4 *)(param_1 + 0x44),iVar8,*(undefined4 *)(param_1 + 0x54));
iVar8 = *(int *)(param_1 + 0x274);
}
iVar14 = *(int *)(param_1 + 0x54);
iVar10 = iVar14 + 2;
pEVar18 = param_1 + 0x9324;
pEVar67 = pEVar18;
do {
if (0 < iVar10) {
pEVar11 = pEVar67;
do {
*pEVar11 = (EState)0xf;
pEVar11 = pEVar11 + 1;
} while (pEVar11 != pEVar67 + iVar10);
}
pEVar67 = pEVar67 + 0x102;
} while (pEVar67 != param_1 + 0x9930);
if (iVar8 < 1) {
BZ2_bz__AssertH__fail(0xbb9);
iVar8 = *(int *)(param_1 + 0x274);
}
if (iVar8 < 200) {
local_180 = 2;
local_168 = 2;
}
else if (iVar8 < 600) {
local_180 = 3;
local_168 = 3;
}
else if (iVar8 < 0x4b0) {
local_180 = 4;
local_168 = 4;
}
else {
local_180 = (0x95f < iVar8) + 5;
local_168 = (0x95f < iVar8) + 5;
}
local_188 = *(int *)(param_1 + 0x268);
bVar71 = false;
local_150 = (EState *)0x0;
local_158 = param_1 + (local_168 - 1) * 0x102 + 0x9324;
uVar7 = local_168;
local_170 = iVar8;
do {
iVar19 = 0;
iVar20 = (int)local_150 + -1;
if (0 < iVar8 / (int)uVar7) {
do {
if (iVar14 + 1 <= iVar20) break;
iVar20 = iVar20 + 1;
iVar19 = iVar19 + *(int *)(param_1 + iVar20 * 4 + 0x278);
} while (iVar19 < iVar8 / (int)uVar7);
}
if (((((int)local_150 < iVar20) && (local_168 != uVar7)) && (uVar7 != 1)) && (bVar71)) {
iVar19 = iVar19 - *(int *)(param_1 + iVar20 * 4 + 0x278);
iVar20 = iVar20 + -1;
}
if (2 < local_188) {
fprintf(_stderr," initial group %d, [%d .. %d], has %d syms (%4.1f%%)\n",uVar7,
local_150,iVar20,iVar19,((double)iVar19 * 100.0) / (double)(int)local_170);
local_188 = *(int *)(param_1 + 0x268);
local_170 = *(uint *)(param_1 + 0x274);
}
uVar7 = uVar7 - 1;
iVar70 = 0;
pEVar67 = local_158;
if (0 < iVar10) {
do {
while ((iVar70 <= iVar20 && ((int)local_150 <= iVar70))) {
iVar70 = iVar70 + 1;
*pEVar67 = (EState)0x0;
pEVar67 = pEVar67 + 1;
if (iVar70 == iVar10) goto LAB_002946ee;
}
iVar70 = iVar70 + 1;
*pEVar67 = (EState)0xf;
pEVar67 = pEVar67 + 1;
} while (iVar70 != iVar10);
}
LAB_002946ee:
local_150 = (EState *)(iVar20 + 1);
iVar8 = iVar8 - iVar19;
bVar71 = (bool)(bVar71 ^ 1);
local_158 = local_158 + -0x102;
} while (0 < (int)uVar7);
local_18c = 1;
while( true ) {
iVar8 = 0;
do {
aiStack_138[iVar8] = 0;
iVar8 = iVar8 + 1;
} while (iVar8 < (int)local_168);
iVar8 = 0;
pEVar67 = param_1 + 0xb160;
do {
if (0 < iVar10) {
pEVar11 = pEVar67;
do {
*(int *)pEVar11 = 0;
pEVar11 = pEVar11 + 4;
} while (pEVar67 + iVar14 * 4 + 8 != pEVar11);
}
iVar8 = iVar8 + 1;
pEVar67 = pEVar67 + 0x408;
} while (iVar8 < (int)local_168);
if ((local_168 == 6) && (0 < iVar10)) {
iVar8 = 0;
pEVar67 = param_1 + 0x9426;
pEVar11 = param_1 + 0xc990;
do {
iVar8 = iVar8 + 1;
*(uint *)pEVar11 = (uint)(byte)*pEVar67 << 0x10 | (uint)(byte)pEVar67[-0x102];
*(uint *)(pEVar11 + 4) = (uint)(byte)pEVar67[0x204] << 0x10 | (uint)(byte)pEVar67[0x102];
*(uint *)(pEVar11 + 8) = (uint)(byte)pEVar67[0x408] << 0x10 | (uint)(byte)pEVar67[0x306];
pEVar67 = pEVar67 + 1;
pEVar11 = pEVar11 + 0x10;
} while (iVar8 != iVar10);
}
if ((int)local_170 < 1) {
local_16c = 0;
local_17c = 0;
}
else {
local_16c = 0;
local_17c = 0;
local_158 = (EState *)0x0;
do {
iVar8 = (int)local_158 + 0x31;
if ((int)local_170 <= (int)local_158 + 0x31) {
iVar8 = local_170 + -1;
}
iVar19 = 0;
do {
*(undefined2 *)((int)&local_144 + iVar19 * 2) = 0;
iVar19 = iVar19 + 1;
} while (iVar19 < (int)local_168);
if ((local_168 == 6) && (iVar8 - (int)local_158 == 0x31)) {
iVar19 = (int)local_158 * 2;
uVar68 = (uint)*(ushort *)(iVar9 + (int)local_158 * 2);
uVar69 = (uint)*(ushort *)(iVar9 + 2 + iVar19);
uVar17 = (uint)*(ushort *)(iVar9 + 4 + iVar19);
uVar13 = (uint)*(ushort *)(iVar9 + 6 + iVar19);
uVar21 = (uint)*(ushort *)(iVar9 + 8 + iVar19);
uVar22 = (uint)*(ushort *)(iVar9 + 10 + iVar19);
uVar23 = (uint)*(ushort *)(iVar9 + 0xc + iVar19);
uVar24 = (uint)*(ushort *)(iVar9 + 0xe + iVar19);
uVar25 = (uint)*(ushort *)(iVar9 + 0x10 + iVar19);
uVar26 = (uint)*(ushort *)(iVar9 + 0x12 + iVar19);
uVar27 = (uint)*(ushort *)(iVar9 + 0x14 + iVar19);
uVar28 = (uint)*(ushort *)(iVar9 + 0x16 + iVar19);
uVar29 = (uint)*(ushort *)(iVar9 + 0x18 + iVar19);
uVar30 = (uint)*(ushort *)(iVar9 + 0x1a + iVar19);
uVar31 = (uint)*(ushort *)(iVar9 + 0x1c + iVar19);
uVar32 = (uint)*(ushort *)(iVar9 + 0x1e + iVar19);
uVar33 = (uint)*(ushort *)(iVar9 + 0x20 + iVar19);
uVar34 = (uint)*(ushort *)(iVar9 + 0x22 + iVar19);
uVar35 = (uint)*(ushort *)(iVar9 + 0x24 + iVar19);
uVar36 = (uint)*(ushort *)(iVar9 + 0x26 + iVar19);
uVar37 = (uint)*(ushort *)(iVar9 + 0x28 + iVar19);
uVar38 = (uint)*(ushort *)(iVar9 + 0x2a + iVar19);
uVar39 = (uint)*(ushort *)(iVar9 + 0x2c + iVar19);
uVar40 = (uint)*(ushort *)(iVar9 + 0x2e + iVar19);
uVar41 = (uint)*(ushort *)(iVar9 + 0x30 + iVar19);
uVar42 = (uint)*(ushort *)(iVar9 + 0x32 + iVar19);
uVar43 = (uint)*(ushort *)(iVar9 + 0x34 + iVar19);
uVar44 = (uint)*(ushort *)(iVar9 + 0x36 + iVar19);
uVar45 = (uint)*(ushort *)(iVar9 + 0x38 + iVar19);
uVar46 = (uint)*(ushort *)(iVar9 + 0x3a + iVar19);
uVar47 = (uint)*(ushort *)(iVar9 + 0x3c + iVar19);
uVar48 = (uint)*(ushort *)(iVar9 + 0x3e + iVar19);
uVar49 = (uint)*(ushort *)(iVar9 + 0x40 + iVar19);
uVar50 = (uint)*(ushort *)(iVar9 + 0x42 + iVar19);
uVar51 = (uint)*(ushort *)(iVar9 + 0x44 + iVar19);
uVar52 = (uint)*(ushort *)(iVar9 + 0x46 + iVar19);
uVar53 = (uint)*(ushort *)(iVar9 + 0x48 + iVar19);
uVar54 = (uint)*(ushort *)(iVar9 + 0x4a + iVar19);
uVar55 = (uint)*(ushort *)(iVar9 + 0x4c + iVar19);
uVar56 = (uint)*(ushort *)(iVar9 + 0x4e + iVar19);
uVar57 = (uint)*(ushort *)(iVar9 + 0x50 + iVar19);
uVar58 = (uint)*(ushort *)(iVar9 + 0x52 + iVar19);
uVar59 = (uint)*(ushort *)(iVar9 + 0x54 + iVar19);
uVar60 = (uint)*(ushort *)(iVar9 + 0x56 + iVar19);
uVar61 = (uint)*(ushort *)(iVar9 + 0x58 + iVar19);
uVar62 = (uint)*(ushort *)(iVar9 + 0x5a + iVar19);
uVar63 = (uint)*(ushort *)(iVar9 + 0x5c + iVar19);
uVar64 = (uint)*(ushort *)(iVar9 + 0x5e + iVar19);
uVar65 = (uint)*(ushort *)(iVar9 + 0x60 + iVar19);
uVar66 = (uint)*(ushort *)(iVar9 + 0x62 + iVar19);
uVar7 = *(int *)(param_1 + (uVar69 + 0xc99) * 0x10) +
*(int *)(param_1 + (uVar68 + 0xc99) * 0x10) +
*(int *)(param_1 + (uVar17 + 0xc99) * 0x10) +
*(int *)(param_1 + (uVar13 + 0xc99) * 0x10) +
*(int *)(param_1 + (uVar21 + 0xc99) * 0x10) +
*(int *)(param_1 + (uVar22 + 0xc99) * 0x10) +
*(int *)(param_1 + (uVar23 + 0xc99) * 0x10) +
*(int *)(param_1 + (uVar24 + 0xc99) * 0x10) +
*(int *)(param_1 + (uVar25 + 0xc99) * 0x10) +
*(int *)(param_1 + (uVar26 + 0xc99) * 0x10) +
*(int *)(param_1 + (uVar27 + 0xc99) * 0x10) +
*(int *)(param_1 + (uVar28 + 0xc99) * 0x10) +
*(int *)(param_1 + (uVar29 + 0xc99) * 0x10) +
*(int *)(param_1 + (uVar30 + 0xc99) * 0x10) +
*(int *)(param_1 + (uVar31 + 0xc99) * 0x10) +
*(int *)(param_1 + (uVar32 + 0xc99) * 0x10) +
*(int *)(param_1 + (uVar33 + 0xc99) * 0x10) +
*(int *)(param_1 + (uVar34 + 0xc99) * 0x10) +
*(int *)(param_1 + (uVar35 + 0xc99) * 0x10) +
*(int *)(param_1 + (uVar36 + 0xc99) * 0x10) +
*(int *)(param_1 + (uVar37 + 0xc99) * 0x10) +
*(int *)(param_1 + (uVar38 + 0xc99) * 0x10) +
*(int *)(param_1 + (uVar39 + 0xc99) * 0x10) +
*(int *)(param_1 + (uVar40 + 0xc99) * 0x10) +
*(int *)(param_1 + (uVar41 + 0xc99) * 0x10) +
*(int *)(param_1 + (uVar42 + 0xc99) * 0x10) +
*(int *)(param_1 + (uVar43 + 0xc99) * 0x10) +
*(int *)(param_1 + (uVar44 + 0xc99) * 0x10) +
*(int *)(param_1 + (uVar45 + 0xc99) * 0x10) +
*(int *)(param_1 + (uVar46 + 0xc99) * 0x10) +
*(int *)(param_1 + (uVar47 + 0xc99) * 0x10) +
*(int *)(param_1 + (uVar48 + 0xc99) * 0x10) +
*(int *)(param_1 + (uVar49 + 0xc99) * 0x10) +
*(int *)(param_1 + (uVar50 + 0xc99) * 0x10) +
*(int *)(param_1 + (uVar51 + 0xc99) * 0x10) +
*(int *)(param_1 + (uVar52 + 0xc99) * 0x10) +
*(int *)(param_1 + (uVar53 + 0xc99) * 0x10) +
*(int *)(param_1 + (uVar54 + 0xc99) * 0x10) +
*(int *)(param_1 + (uVar55 + 0xc99) * 0x10) +
*(int *)(param_1 + (uVar56 + 0xc99) * 0x10) +
*(int *)(param_1 + (uVar57 + 0xc99) * 0x10) +
*(int *)(param_1 + (uVar58 + 0xc99) * 0x10) +
*(int *)(param_1 + (uVar59 + 0xc99) * 0x10) +
*(int *)(param_1 + (uVar60 + 0xc99) * 0x10) +
*(int *)(param_1 + (uVar61 + 0xc99) * 0x10) +
*(int *)(param_1 + (uVar62 + 0xc99) * 0x10) +
*(int *)(param_1 + (uVar63 + 0xc99) * 0x10) +
*(int *)(param_1 + (uVar64 + 0xc99) * 0x10) +
*(int *)(param_1 + (uVar65 + 0xc99) * 0x10) +
*(int *)(param_1 + (uVar66 + 0xc99) * 0x10);
local_140 = *(int *)(param_1 + uVar69 * 0x10 + 0xc994) +
*(int *)(param_1 + uVar68 * 0x10 + 0xc994) +
*(int *)(param_1 + uVar17 * 0x10 + 0xc994) +
*(int *)(param_1 + uVar13 * 0x10 + 0xc994) +
*(int *)(param_1 + uVar21 * 0x10 + 0xc994) +
*(int *)(param_1 + uVar22 * 0x10 + 0xc994) +
*(int *)(param_1 + uVar23 * 0x10 + 0xc994) +
*(int *)(param_1 + uVar24 * 0x10 + 0xc994) +
*(int *)(param_1 + uVar25 * 0x10 + 0xc994) +
*(int *)(param_1 + uVar26 * 0x10 + 0xc994) +
*(int *)(param_1 + uVar27 * 0x10 + 0xc994) +
*(int *)(param_1 + uVar28 * 0x10 + 0xc994) +
*(int *)(param_1 + uVar29 * 0x10 + 0xc994) +
*(int *)(param_1 + uVar30 * 0x10 + 0xc994) +
*(int *)(param_1 + uVar31 * 0x10 + 0xc994) +
*(int *)(param_1 + uVar32 * 0x10 + 0xc994) +
*(int *)(param_1 + uVar33 * 0x10 + 0xc994) +
*(int *)(param_1 + uVar34 * 0x10 + 0xc994) +
*(int *)(param_1 + uVar35 * 0x10 + 0xc994) +
*(int *)(param_1 + uVar36 * 0x10 + 0xc994) +
*(int *)(param_1 + uVar37 * 0x10 + 0xc994) +
*(int *)(param_1 + uVar38 * 0x10 + 0xc994) +
*(int *)(param_1 + uVar39 * 0x10 + 0xc994) +
*(int *)(param_1 + uVar40 * 0x10 + 0xc994) +
*(int *)(param_1 + uVar41 * 0x10 + 0xc994) +
*(int *)(param_1 + uVar42 * 0x10 + 0xc994) +
*(int *)(param_1 + uVar43 * 0x10 + 0xc994) +
*(int *)(param_1 + uVar44 * 0x10 + 0xc994) +
*(int *)(param_1 + uVar45 * 0x10 + 0xc994) +
*(int *)(param_1 + uVar46 * 0x10 + 0xc994) +
*(int *)(param_1 + uVar47 * 0x10 + 0xc994) +
*(int *)(param_1 + uVar48 * 0x10 + 0xc994) +
*(int *)(param_1 + uVar49 * 0x10 + 0xc994) +
*(int *)(param_1 + uVar50 * 0x10 + 0xc994) +
*(int *)(param_1 + uVar51 * 0x10 + 0xc994) +
*(int *)(param_1 + uVar52 * 0x10 + 0xc994) +
*(int *)(param_1 + uVar53 * 0x10 + 0xc994) +
*(int *)(param_1 + uVar54 * 0x10 + 0xc994) +
*(int *)(param_1 + uVar55 * 0x10 + 0xc994) +
*(int *)(param_1 + uVar56 * 0x10 + 0xc994) +
*(int *)(param_1 + uVar57 * 0x10 + 0xc994) +
*(int *)(param_1 + uVar58 * 0x10 + 0xc994) +
*(int *)(param_1 + uVar59 * 0x10 + 0xc994) +
*(int *)(param_1 + uVar60 * 0x10 + 0xc994) +
*(int *)(param_1 + uVar61 * 0x10 + 0xc994) +
*(int *)(param_1 + uVar62 * 0x10 + 0xc994) +
*(int *)(param_1 + uVar63 * 0x10 + 0xc994) +
*(int *)(param_1 + uVar64 * 0x10 + 0xc994) +
*(int *)(param_1 + uVar65 * 0x10 + 0xc994) +
*(int *)(param_1 + uVar66 * 0x10 + 0xc994);
local_13c = *(int *)(param_1 + uVar69 * 0x10 + 0xc998) +
*(int *)(param_1 + uVar68 * 0x10 + 0xc998) +
*(int *)(param_1 + uVar17 * 0x10 + 0xc998) +
*(int *)(param_1 + uVar13 * 0x10 + 0xc998) +
*(int *)(param_1 + uVar21 * 0x10 + 0xc998) +
*(int *)(param_1 + uVar22 * 0x10 + 0xc998) +
*(int *)(param_1 + uVar23 * 0x10 + 0xc998) +
*(int *)(param_1 + uVar24 * 0x10 + 0xc998) +
*(int *)(param_1 + uVar25 * 0x10 + 0xc998) +
*(int *)(param_1 + uVar26 * 0x10 + 0xc998) +
*(int *)(param_1 + uVar27 * 0x10 + 0xc998) +
*(int *)(param_1 + uVar28 * 0x10 + 0xc998) +
*(int *)(param_1 + uVar29 * 0x10 + 0xc998) +
*(int *)(param_1 + uVar30 * 0x10 + 0xc998) +
*(int *)(param_1 + uVar31 * 0x10 + 0xc998) +
*(int *)(param_1 + uVar32 * 0x10 + 0xc998) +
*(int *)(param_1 + uVar33 * 0x10 + 0xc998) +
*(int *)(param_1 + uVar34 * 0x10 + 0xc998) +
*(int *)(param_1 + uVar35 * 0x10 + 0xc998) +
*(int *)(param_1 + uVar36 * 0x10 + 0xc998) +
*(int *)(param_1 + uVar37 * 0x10 + 0xc998) +
*(int *)(param_1 + uVar38 * 0x10 + 0xc998) +
*(int *)(param_1 + uVar39 * 0x10 + 0xc998) +
*(int *)(param_1 + uVar40 * 0x10 + 0xc998) +
*(int *)(param_1 + uVar41 * 0x10 + 0xc998) +
*(int *)(param_1 + uVar42 * 0x10 + 0xc998) +
*(int *)(param_1 + uVar43 * 0x10 + 0xc998) +
*(int *)(param_1 + uVar44 * 0x10 + 0xc998) +
*(int *)(param_1 + uVar45 * 0x10 + 0xc998) +
*(int *)(param_1 + uVar46 * 0x10 + 0xc998) +
*(int *)(param_1 + uVar47 * 0x10 + 0xc998) +
*(int *)(param_1 + uVar48 * 0x10 + 0xc998) +
*(int *)(param_1 + uVar49 * 0x10 + 0xc998) +
*(int *)(param_1 + uVar50 * 0x10 + 0xc998) +
*(int *)(param_1 + uVar51 * 0x10 + 0xc998) +
*(int *)(param_1 + uVar52 * 0x10 + 0xc998) +
*(int *)(param_1 + uVar53 * 0x10 + 0xc998) +
*(int *)(param_1 + uVar54 * 0x10 + 0xc998) +
*(int *)(param_1 + uVar55 * 0x10 + 0xc998) +
*(int *)(param_1 + uVar56 * 0x10 + 0xc998) +
*(int *)(param_1 + uVar57 * 0x10 + 0xc998) +
*(int *)(param_1 + uVar58 * 0x10 + 0xc998) +
*(int *)(param_1 + uVar59 * 0x10 + 0xc998) +
*(int *)(param_1 + uVar60 * 0x10 + 0xc998) +
*(int *)(param_1 + uVar61 * 0x10 + 0xc998) +
*(int *)(param_1 + uVar62 * 0x10 + 0xc998) +
*(int *)(param_1 + uVar63 * 0x10 + 0xc998) +
*(int *)(param_1 + uVar64 * 0x10 + 0xc998) +
*(int *)(param_1 + uVar65 * 0x10 + 0xc998) +
*(int *)(param_1 + uVar66 * 0x10 + 0xc998);
local_144 = uVar7;
}
else {
puVar12 = (ushort *)(iVar9 + (int)local_158 * 2);
if ((int)local_158 <= iVar8) {
do {
pEVar67 = param_1 + *puVar12 + 0x9324;
iVar19 = 0;
do {
EVar15 = *pEVar67;
pEVar67 = pEVar67 + 0x102;
psVar1 = (short *)((int)&local_144 + iVar19 * 2);
*psVar1 = *psVar1 + (ushort)(byte)EVar15;
iVar19 = iVar19 + 1;
} while (iVar19 < (int)local_168);
puVar12 = puVar12 + 1;
} while (puVar12 != (ushort *)(iVar9 + 2 + iVar8 * 2));
}
uVar7 = local_144 & 0xffff;
}
iVar19 = -1;
uVar17 = 999999999;
iVar20 = 0;
while( true ) {
if ((uVar7 & 0xffff) < uVar17) {
iVar19 = iVar20;
uVar17 = uVar7 & 0xffff;
}
iVar20 = iVar20 + 1;
if ((int)local_168 <= iVar20) break;
uVar7 = (uint)*(ushort *)((int)&local_144 + iVar20 * 2);
}
local_17c = local_17c + uVar17;
aiStack_138[iVar19] = aiStack_138[iVar19] + 1;
iVar20 = local_16c + 1;
param_1[local_16c + 0x680] = SUB41(iVar19,0);
if ((local_168 == 6) && (iVar8 - (int)local_158 == 0x31)) {
iVar19 = iVar19 * 0x102;
iVar70 = (int)local_158 * 2;
*(int *)(param_1 + ((uint)*(ushort *)(iVar9 + (int)local_158 * 2) + iVar19) * 4 + 0xb160
) = *(int *)(param_1 +
((uint)*(ushort *)(iVar9 + (int)local_158 * 2) + iVar19) * 4 +
0xb160) + 1;
*(int *)(param_1 + ((uint)*(ushort *)(iVar9 + 2 + iVar70) + iVar19) * 4 + 0xb160) =
*(int *)(param_1 + ((uint)*(ushort *)(iVar9 + 2 + iVar70) + iVar19) * 4 + 0xb160) +
1;
*(int *)(param_1 + ((uint)*(ushort *)(iVar9 + 4 + iVar70) + iVar19) * 4 + 0xb160) =
*(int *)(param_1 + ((uint)*(ushort *)(iVar9 + 4 + iVar70) + iVar19) * 4 + 0xb160) +
1;
*(int *)(param_1 + ((uint)*(ushort *)(iVar9 + 6 + iVar70) + iVar19) * 4 + 0xb160) =
*(int *)(param_1 + ((uint)*(ushort *)(iVar9 + 6 + iVar70) + iVar19) * 4 + 0xb160) +
1;
*(int *)(param_1 + ((uint)*(ushort *)(iVar9 + 8 + iVar70) + iVar19) * 4 + 0xb160) =
*(int *)(param_1 + ((uint)*(ushort *)(iVar9 + 8 + iVar70) + iVar19) * 4 + 0xb160) +
1;
*(int *)(param_1 + ((uint)*(ushort *)(iVar9 + 10 + iVar70) + iVar19) * 4 + 0xb160) =
*(int *)(param_1 + ((uint)*(ushort *)(iVar9 + 10 + iVar70) + iVar19) * 4 + 0xb160)
+ 1;
*(int *)(param_1 + ((uint)*(ushort *)(iVar9 + 0xc + iVar70) + iVar19) * 4 + 0xb160) =
*(int *)(param_1 + ((uint)*(ushort *)(iVar9 + 0xc + iVar70) + iVar19) * 4 + 0xb160)
+ 1;
*(int *)(param_1 + ((uint)*(ushort *)(iVar9 + 0xe + iVar70) + iVar19) * 4 + 0xb160) =
*(int *)(param_1 + ((uint)*(ushort *)(iVar9 + 0xe + iVar70) + iVar19) * 4 + 0xb160)
+ 1;
*(int *)(param_1 + ((uint)*(ushort *)(iVar9 + 0x10 + iVar70) + iVar19) * 4 + 0xb160) =
*(int *)(param_1 + ((uint)*(ushort *)(iVar9 + 0x10 + iVar70) + iVar19) * 4 + 0xb160
) + 1;
*(int *)(param_1 + ((uint)*(ushort *)(iVar9 + 0x12 + iVar70) + iVar19) * 4 + 0xb160) =
*(int *)(param_1 + ((uint)*(ushort *)(iVar9 + 0x12 + iVar70) + iVar19) * 4 + 0xb160
) + 1;
*(int *)(param_1 + ((uint)*(ushort *)(iVar9 + 0x14 + iVar70) + iVar19) * 4 + 0xb160) =
*(int *)(param_1 + ((uint)*(ushort *)(iVar9 + 0x14 + iVar70) + iVar19) * 4 + 0xb160
) + 1;
*(int *)(param_1 + ((uint)*(ushort *)(iVar9 + 0x16 + iVar70) + iVar19) * 4 + 0xb160) =
*(int *)(param_1 + ((uint)*(ushort *)(iVar9 + 0x16 + iVar70) + iVar19) * 4 + 0xb160
) + 1;
*(int *)(param_1 + ((uint)*(ushort *)(iVar9 + 0x18 + iVar70) + iVar19) * 4 + 0xb160) =
*(int *)(param_1 + ((uint)*(ushort *)(iVar9 + 0x18 + iVar70) + iVar19) * 4 + 0xb160
) + 1;
*(int *)(param_1 + ((uint)*(ushort *)(iVar9 + 0x1a + iVar70) + iVar19) * 4 + 0xb160) =
*(int *)(param_1 + ((uint)*(ushort *)(iVar9 + 0x1a + iVar70) + iVar19) * 4 + 0xb160
) + 1;
*(int *)(param_1 + ((uint)*(ushort *)(iVar9 + 0x1c + iVar70) + iVar19) * 4 + 0xb160) =
*(int *)(param_1 + ((uint)*(ushort *)(iVar9 + 0x1c + iVar70) + iVar19) * 4 + 0xb160
) + 1;
*(int *)(param_1 + ((uint)*(ushort *)(iVar9 + 0x1e + iVar70) + iVar19) * 4 + 0xb160) =
*(int *)(param_1 + ((uint)*(ushort *)(iVar9 + 0x1e + iVar70) + iVar19) * 4 + 0xb160
) + 1;
*(int *)(param_1 + ((uint)*(ushort *)(iVar9 + 0x20 + iVar70) + iVar19) * 4 + 0xb160) =
*(int *)(param_1 + ((uint)*(ushort *)(iVar9 + 0x20 + iVar70) + iVar19) * 4 + 0xb160
) + 1;
*(int *)(param_1 + ((uint)*(ushort *)(iVar9 + 0x22 + iVar70) + iVar19) * 4 + 0xb160) =
*(int *)(param_1 + ((uint)*(ushort *)(iVar9 + 0x22 + iVar70) + iVar19) * 4 + 0xb160
) + 1;
*(int *)(param_1 + ((uint)*(ushort *)(iVar9 + 0x24 + iVar70) + iVar19) * 4 + 0xb160) =
*(int *)(param_1 + ((uint)*(ushort *)(iVar9 + 0x24 + iVar70) + iVar19) * 4 + 0xb160
) + 1;
*(int *)(param_1 + ((uint)*(ushort *)(iVar9 + 0x26 + iVar70) + iVar19) * 4 + 0xb160) =
*(int *)(param_1 + ((uint)*(ushort *)(iVar9 + 0x26 + iVar70) + iVar19) * 4 + 0xb160
) + 1;
*(int *)(param_1 + ((uint)*(ushort *)(iVar9 + 0x28 + iVar70) + iVar19) * 4 + 0xb160) =
*(int *)(param_1 + ((uint)*(ushort *)(iVar9 + 0x28 + iVar70) + iVar19) * 4 + 0xb160
) + 1;
*(int *)(param_1 + ((uint)*(ushort *)(iVar9 + 0x2a + iVar70) + iVar19) * 4 + 0xb160) =
*(int *)(param_1 + ((uint)*(ushort *)(iVar9 + 0x2a + iVar70) + iVar19) * 4 + 0xb160
) + 1;
*(int *)(param_1 + ((uint)*(ushort *)(iVar9 + 0x2c + iVar70) + iVar19) * 4 + 0xb160) =
*(int *)(param_1 + ((uint)*(ushort *)(iVar9 + 0x2c + iVar70) + iVar19) * 4 + 0xb160
) + 1;
*(int *)(param_1 + ((uint)*(ushort *)(iVar9 + 0x2e + iVar70) + iVar19) * 4 + 0xb160) =
*(int *)(param_1 + ((uint)*(ushort *)(iVar9 + 0x2e + iVar70) + iVar19) * 4 + 0xb160
) + 1;
*(int *)(param_1 + ((uint)*(ushort *)(iVar9 + 0x30 + iVar70) + iVar19) * 4 + 0xb160) =
*(int *)(param_1 + ((uint)*(ushort *)(iVar9 + 0x30 + iVar70) + iVar19) * 4 + 0xb160
) + 1;
*(int *)(param_1 + ((uint)*(ushort *)(iVar9 + 0x32 + iVar70) + iVar19) * 4 + 0xb160) =
*(int *)(param_1 + ((uint)*(ushort *)(iVar9 + 0x32 + iVar70) + iVar19) * 4 + 0xb160
) + 1;
*(int *)(param_1 + ((uint)*(ushort *)(iVar9 + 0x34 + iVar70) + iVar19) * 4 + 0xb160) =
*(int *)(param_1 + ((uint)*(ushort *)(iVar9 + 0x34 + iVar70) + iVar19) * 4 + 0xb160
) + 1;
*(int *)(param_1 + ((uint)*(ushort *)(iVar9 + 0x36 + iVar70) + iVar19) * 4 + 0xb160) =
*(int *)(param_1 + ((uint)*(ushort *)(iVar9 + 0x36 + iVar70) + iVar19) * 4 + 0xb160
) + 1;
*(int *)(param_1 + ((uint)*(ushort *)(iVar9 + 0x38 + iVar70) + iVar19) * 4 + 0xb160) =
*(int *)(param_1 + ((uint)*(ushort *)(iVar9 + 0x38 + iVar70) + iVar19) * 4 + 0xb160
) + 1;
*(int *)(param_1 + ((uint)*(ushort *)(iVar9 + 0x3a + iVar70) + iVar19) * 4 + 0xb160) =
*(int *)(param_1 + ((uint)*(ushort *)(iVar9 + 0x3a + iVar70) + iVar19) * 4 + 0xb160
) + 1;
*(int *)(param_1 + ((uint)*(ushort *)(iVar9 + 0x3c + iVar70) + iVar19) * 4 + 0xb160) =
*(int *)(param_1 + ((uint)*(ushort *)(iVar9 + 0x3c + iVar70) + iVar19) * 4 + 0xb160
) + 1;
*(int *)(param_1 + ((uint)*(ushort *)(iVar9 + 0x3e + iVar70) + iVar19) * 4 + 0xb160) =
*(int *)(param_1 + ((uint)*(ushort *)(iVar9 + 0x3e + iVar70) + iVar19) * 4 + 0xb160
) + 1;
*(int *)(param_1 + ((uint)*(ushort *)(iVar9 + 0x40 + iVar70) + iVar19) * 4 + 0xb160) =
*(int *)(param_1 + ((uint)*(ushort *)(iVar9 + 0x40 + iVar70) + iVar19) * 4 + 0xb160
) + 1;
*(int *)(param_1 + ((uint)*(ushort *)(iVar9 + 0x42 + iVar70) + iVar19) * 4 + 0xb160) =
*(int *)(param_1 + ((uint)*(ushort *)(iVar9 + 0x42 + iVar70) + iVar19) * 4 + 0xb160
) + 1;
*(int *)(param_1 + ((uint)*(ushort *)(iVar9 + 0x44 + iVar70) + iVar19) * 4 + 0xb160) =
*(int *)(param_1 + ((uint)*(ushort *)(iVar9 + 0x44 + iVar70) + iVar19) * 4 + 0xb160
) + 1;
*(int *)(param_1 + ((uint)*(ushort *)(iVar9 + 0x46 + iVar70) + iVar19) * 4 + 0xb160) =
*(int *)(param_1 + ((uint)*(ushort *)(iVar9 + 0x46 + iVar70) + iVar19) * 4 + 0xb160
) + 1;
*(int *)(param_1 + ((uint)*(ushort *)(iVar9 + 0x48 + iVar70) + iVar19) * 4 + 0xb160) =
*(int *)(param_1 + ((uint)*(ushort *)(iVar9 + 0x48 + iVar70) + iVar19) * 4 + 0xb160
) + 1;
*(int *)(param_1 + ((uint)*(ushort *)(iVar9 + 0x4a + iVar70) + iVar19) * 4 + 0xb160) =
*(int *)(param_1 + ((uint)*(ushort *)(iVar9 + 0x4a + iVar70) + iVar19) * 4 + 0xb160
) + 1;
*(int *)(param_1 + ((uint)*(ushort *)(iVar9 + 0x4c + iVar70) + iVar19) * 4 + 0xb160) =
*(int *)(param_1 + ((uint)*(ushort *)(iVar9 + 0x4c + iVar70) + iVar19) * 4 + 0xb160
) + 1;
*(int *)(param_1 + ((uint)*(ushort *)(iVar9 + 0x4e + iVar70) + iVar19) * 4 + 0xb160) =
*(int *)(param_1 + ((uint)*(ushort *)(iVar9 + 0x4e + iVar70) + iVar19) * 4 + 0xb160
) + 1;
*(int *)(param_1 + ((uint)*(ushort *)(iVar9 + 0x50 + iVar70) + iVar19) * 4 + 0xb160) =
*(int *)(param_1 + ((uint)*(ushort *)(iVar9 + 0x50 + iVar70) + iVar19) * 4 + 0xb160
) + 1;
*(int *)(param_1 + ((uint)*(ushort *)(iVar9 + 0x52 + iVar70) + iVar19) * 4 + 0xb160) =
*(int *)(param_1 + ((uint)*(ushort *)(iVar9 + 0x52 + iVar70) + iVar19) * 4 + 0xb160
) + 1;
*(int *)(param_1 + ((uint)*(ushort *)(iVar9 + 0x54 + iVar70) + iVar19) * 4 + 0xb160) =
*(int *)(param_1 + ((uint)*(ushort *)(iVar9 + 0x54 + iVar70) + iVar19) * 4 + 0xb160
) + 1;
*(int *)(param_1 + ((uint)*(ushort *)(iVar9 + 0x56 + iVar70) + iVar19) * 4 + 0xb160) =
*(int *)(param_1 + ((uint)*(ushort *)(iVar9 + 0x56 + iVar70) + iVar19) * 4 + 0xb160
) + 1;
*(int *)(param_1 + ((uint)*(ushort *)(iVar9 + 0x58 + iVar70) + iVar19) * 4 + 0xb160) =
*(int *)(param_1 + ((uint)*(ushort *)(iVar9 + 0x58 + iVar70) + iVar19) * 4 + 0xb160
) + 1;
*(int *)(param_1 + ((uint)*(ushort *)(iVar9 + 0x5a + iVar70) + iVar19) * 4 + 0xb160) =
*(int *)(param_1 + ((uint)*(ushort *)(iVar9 + 0x5a + iVar70) + iVar19) * 4 + 0xb160
) + 1;
*(int *)(param_1 + ((uint)*(ushort *)(iVar9 + 0x5c + iVar70) + iVar19) * 4 + 0xb160) =
*(int *)(param_1 + ((uint)*(ushort *)(iVar9 + 0x5c + iVar70) + iVar19) * 4 + 0xb160
) + 1;
*(int *)(param_1 + ((uint)*(ushort *)(iVar9 + 0x5e + iVar70) + iVar19) * 4 + 0xb160) =
*(int *)(param_1 + ((uint)*(ushort *)(iVar9 + 0x5e + iVar70) + iVar19) * 4 + 0xb160
) + 1;
*(int *)(param_1 + ((uint)*(ushort *)(iVar9 + 0x60 + iVar70) + iVar19) * 4 + 0xb160) =
*(int *)(param_1 + ((uint)*(ushort *)(iVar9 + 0x60 + iVar70) + iVar19) * 4 + 0xb160
) + 1;
*(int *)(param_1 + ((uint)*(ushort *)(iVar9 + 0x62 + iVar70) + iVar19) * 4 + 0xb160) =
*(int *)(param_1 + ((uint)*(ushort *)(iVar9 + 0x62 + iVar70) + iVar19) * 4 + 0xb160
) + 1;
}
else if ((int)local_158 <= iVar8) {
puVar12 = (ushort *)(iVar9 + (int)local_158 * 2);
do {
uVar4 = *puVar12;
puVar12 = puVar12 + 1;
*(int *)(param_1 + ((uint)uVar4 + iVar19 * 0x102) * 4 + 0xb160) =
*(int *)(param_1 + ((uint)uVar4 + iVar19 * 0x102) * 4 + 0xb160) + 1;
} while (puVar12 != (ushort *)(iVar9 + 2 + iVar8 * 2));
}
local_158 = (EState *)(iVar8 + 1);
local_16c = iVar20;
} while ((int)local_158 < (int)local_170);
}
if (2 < local_188) {
iVar8 = 0;
local_17c = local_17c >> 3;
fprintf(_stderr," pass %d: size is %d, grp uses are ",local_18c,local_17c);
do {
piVar2 = aiStack_138 + iVar8;
iVar8 = iVar8 + 1;
fprintf(_stderr,"%d ",*piVar2,local_17c);
} while (iVar8 < (int)local_168);
fputc(10,_stderr);
}
iVar8 = 0;
pEVar67 = pEVar18;
pEVar11 = param_1 + 0xb160;
do {
iVar8 = iVar8 + 1;
BZ2_hbMakeCodeLengths((uchar *)pEVar67,(int *)pEVar11,iVar10,0x14);
pEVar67 = pEVar67 + 0x102;
pEVar11 = pEVar11 + 0x408;
} while (iVar8 < (int)local_168);
local_18c = local_18c + 1;
if (local_18c == 5) break;
local_188 = *(int *)(param_1 + 0x268);
local_170 = *(uint *)(param_1 + 0x274);
}
if (0x4652 < local_16c) {
BZ2_bz__AssertH__fail(0xbbb);
}
iVar8 = 0;
do {
local_178[iVar8] = SUB41(iVar8,0);
iVar8 = iVar8 + 1;
} while (iVar8 < (int)local_168);
if (local_16c != 0) {
pEVar67 = param_1 + 0x680;
pEVar11 = pEVar67 + local_16c;
do {
EVar15 = *pEVar67;
if (EVar15 == local_120[0]) {
iVar8 = 0;
}
else {
iVar8 = 0;
do {
iVar8 = iVar8 + 1;
EVar3 = local_178[iVar8];
local_178[iVar8] = local_120[0];
local_120[0] = EVar3;
} while (EVar15 != EVar3);
}
pEVar67[0x4652] = SUB41(iVar8,0);
pEVar67 = pEVar67 + 1;
} while (pEVar67 != pEVar11);
}
local_154 = (EState *)0x0;
local_150 = param_1 + 0x9930;
do {
if (iVar10 < 1) {
uVar17 = 0;
uVar7 = 0x20;
}
else {
uVar17 = 0;
uVar7 = 0x20;
pEVar67 = pEVar18;
do {
uVar13 = (uint)(byte)*pEVar67;
if (uVar17 < uVar13) {
uVar17 = uVar13;
}
if (uVar13 < uVar7) {
uVar7 = uVar13;
}
pEVar67 = pEVar67 + 1;
} while (pEVar67 != pEVar18 + iVar10);
if (0x14 < uVar17) {
BZ2_bz__AssertH__fail(0xbbc);
}
if (uVar7 == 0) {
BZ2_bz__AssertH__fail(0xbbd);
}
}
BZ2_hbAssignCodes((int *)local_150,(uchar *)pEVar18,uVar7,uVar17,iVar10);
local_154 = (EState *)((int)local_154 + 1);
local_150 = local_150 + 0x408;
pEVar18 = pEVar18 + 0x102;
} while ((int)local_154 < (int)local_168);
pEVar18 = param_1 + 0x68;
pEVar67 = local_178;
do {
*pEVar67 = (EState)0x0;
pEVar11 = pEVar18 + -0x10;
do {
if (*pEVar11 != (EState)0x0) {
*pEVar67 = (EState)0x1;
}
pEVar11 = pEVar11 + 1;
} while (pEVar18 != pEVar11);
pEVar67 = pEVar67 + 1;
pEVar18 = pEVar18 + 0x10;
} while (pEVar67 != local_110);
iVar14 = *(int *)(param_1 + 0x4c);
iVar8 = iVar14;
pEVar18 = local_178;
do {
iVar19 = *(int *)(param_1 + 0x25c);
if (*pEVar18 == (EState)0x0) {
if (7 < iVar19) {
iVar20 = *(int *)(param_1 + 600);
do {
*(char *)(*(int *)(param_1 + 0x2c) + iVar8) = (char)((uint)iVar20 >> 0x18);
iVar8 = *(int *)(param_1 + 0x4c) + 1;
iVar20 = *(int *)(param_1 + 600) << 8;
*(int *)(param_1 + 0x4c) = iVar8;
*(int *)(param_1 + 600) = iVar20;
iVar19 = *(int *)(param_1 + 0x25c) + -8;
*(int *)(param_1 + 0x25c) = iVar19;
} while (7 < iVar19);
}
*(int *)(param_1 + 0x25c) = iVar19 + 1;
}
else {
if (iVar19 < 8) {
local_150 = *(EState **)(param_1 + 600);
}
else {
local_150 = *(EState **)(param_1 + 600);
do {
*(char *)(*(int *)(param_1 + 0x2c) + iVar8) = (char)((uint)local_150 >> 0x18);
iVar8 = *(int *)(param_1 + 0x4c) + 1;
local_150 = (EState *)(*(int *)(param_1 + 600) << 8);
*(int *)(param_1 + 0x4c) = iVar8;
*(EState **)(param_1 + 600) = local_150;
iVar19 = *(int *)(param_1 + 0x25c) + -8;
*(int *)(param_1 + 0x25c) = iVar19;
} while (7 < iVar19);
}
*(int *)(param_1 + 0x25c) = iVar19 + 1;
*(uint *)(param_1 + 600) = (uint)local_150 | 1 << (0x1fU - (char)iVar19 & 0x1f);
}
pEVar18 = pEVar18 + 1;
} while (local_110 != pEVar18);
local_154 = param_1;
do {
if (*local_178 != (EState)0x0) {
local_150 = (EState *)0x0;
do {
if (local_154[(int)local_150 + 0x58] == (EState)0x0) {
iVar19 = *(int *)(param_1 + 0x25c);
if (7 < iVar19) {
iVar20 = *(int *)(param_1 + 600);
do {
*(char *)(*(int *)(param_1 + 0x2c) + iVar8) = (char)((uint)iVar20 >> 0x18);
iVar8 = *(int *)(param_1 + 0x4c) + 1;
iVar19 = *(int *)(param_1 + 0x25c) + -8;
*(int *)(param_1 + 0x4c) = iVar8;
*(int *)(param_1 + 0x25c) = iVar19;
iVar20 = *(int *)(param_1 + 600) << 8;
*(int *)(param_1 + 600) = iVar20;
} while (7 < iVar19);
}
*(int *)(param_1 + 0x25c) = iVar19 + 1;
}
else {
iVar19 = *(int *)(param_1 + 0x25c);
if (iVar19 < 8) {
local_158 = *(EState **)(param_1 + 600);
}
else {
local_158 = *(EState **)(param_1 + 600);
do {
*(char *)(*(int *)(param_1 + 0x2c) + iVar8) = (char)((uint)local_158 >> 0x18);
iVar8 = *(int *)(param_1 + 0x4c) + 1;
local_158 = (EState *)(*(int *)(param_1 + 600) << 8);
*(int *)(param_1 + 0x4c) = iVar8;
*(EState **)(param_1 + 600) = local_158;
iVar19 = *(int *)(param_1 + 0x25c) + -8;
*(int *)(param_1 + 0x25c) = iVar19;
} while (7 < iVar19);
}
*(int *)(param_1 + 0x25c) = iVar19 + 1;
*(uint *)(param_1 + 600) = (uint)local_158 | 1 << (0x1fU - (char)iVar19 & 0x1f);
}
local_150 = (EState *)((int)local_150 + 1);
} while (local_150 != (EState *)0x10);
}
local_154 = local_154 + 0x10;
local_178 = local_178 + 1;
} while (local_110 != local_178);
if (2 < *(int *)(param_1 + 0x268)) {
fprintf(_stderr," bytes: mapping %d, ",iVar8 - iVar14);
iVar8 = *(int *)(param_1 + 0x4c);
}
iVar14 = *(int *)(param_1 + 0x25c);
uVar7 = *(uint *)(param_1 + 600);
local_160 = iVar8;
while (7 < iVar14) {
*(char *)(*(int *)(param_1 + 0x2c) + local_160) = (char)(uVar7 >> 0x18);
local_160 = *(int *)(param_1 + 0x4c) + 1;
uVar7 = *(int *)(param_1 + 600) << 8;
*(int *)(param_1 + 0x4c) = local_160;
*(uint *)(param_1 + 600) = uVar7;
iVar14 = *(int *)(param_1 + 0x25c) + -8;
*(int *)(param_1 + 0x25c) = iVar14;
}
iVar19 = iVar14 + 3;
*(int *)(param_1 + 0x25c) = iVar19;
uVar7 = local_180 << (0x1dU - (char)iVar14 & 0x1f) | uVar7;
*(uint *)(param_1 + 600) = uVar7;
while (7 < iVar19) {
*(char *)(*(int *)(param_1 + 0x2c) + local_160) = (char)(uVar7 >> 0x18);
local_160 = *(int *)(param_1 + 0x4c) + 1;
uVar7 = *(int *)(param_1 + 600) << 8;
*(int *)(param_1 + 0x4c) = local_160;
*(uint *)(param_1 + 600) = uVar7;
iVar19 = *(int *)(param_1 + 0x25c) + -8;
*(int *)(param_1 + 0x25c) = iVar19;
}
iVar14 = iVar19 + 0xf;
*(int *)(param_1 + 0x25c) = iVar14;
*(uint *)(param_1 + 600) = local_16c << (0x11U - (char)iVar19 & 0x1f) | uVar7;
if (local_16c != 0) {
local_154 = param_1 + 0x4cd2;
pEVar18 = local_154 + local_16c;
do {
if (*local_154 != (EState)0x0) {
uVar7 = *(uint *)(param_1 + 600);
iVar19 = 0;
do {
while (7 < iVar14) {
*(char *)(*(int *)(param_1 + 0x2c) + local_160) = (char)(uVar7 >> 0x18);
local_160 = *(int *)(param_1 + 0x4c) + 1;
iVar14 = *(int *)(param_1 + 0x25c) + -8;
*(int *)(param_1 + 0x4c) = local_160;
*(int *)(param_1 + 0x25c) = iVar14;
uVar7 = *(int *)(param_1 + 600) << 8;
*(uint *)(param_1 + 600) = uVar7;
}
iVar19 = iVar19 + 1;
cVar5 = (char)iVar14;
iVar14 = iVar14 + 1;
*(int *)(param_1 + 0x25c) = iVar14;
uVar7 = 1 << (0x1fU - cVar5 & 0x1f) | uVar7;
*(uint *)(param_1 + 600) = uVar7;
} while (iVar19 < (int)(uint)(byte)*local_154);
}
if (7 < iVar14) {
iVar19 = *(int *)(param_1 + 600);
do {
*(char *)(*(int *)(param_1 + 0x2c) + local_160) = (char)((uint)iVar19 >> 0x18);
local_160 = *(int *)(param_1 + 0x4c) + 1;
iVar14 = *(int *)(param_1 + 0x25c) + -8;
*(int *)(param_1 + 0x4c) = local_160;
*(int *)(param_1 + 0x25c) = iVar14;
iVar19 = *(int *)(param_1 + 600) << 8;
*(int *)(param_1 + 600) = iVar19;
} while (7 < iVar14);
}
local_154 = local_154 + 1;
iVar14 = iVar14 + 1;
*(int *)(param_1 + 0x25c) = iVar14;
} while (local_154 != pEVar18);
}
if (2 < *(int *)(param_1 + 0x268)) {
fprintf(_stderr,"selectors %d, ",local_160 - iVar8);
local_160 = *(int *)(param_1 + 0x4c);
}
local_154 = param_1;
local_170 = 0;
iVar8 = local_160;
do {
iVar14 = *(int *)(param_1 + 0x25c);
uVar17 = (uint)(byte)local_154[0x9324];
uVar7 = *(uint *)(param_1 + 600);
while (7 < iVar14) {
*(char *)(*(int *)(param_1 + 0x2c) + iVar8) = (char)(uVar7 >> 0x18);
iVar8 = *(int *)(param_1 + 0x4c) + 1;
iVar14 = *(int *)(param_1 + 0x25c) + -8;
*(int *)(param_1 + 0x4c) = iVar8;
*(int *)(param_1 + 0x25c) = iVar14;
uVar7 = *(int *)(param_1 + 600) << 8;
*(uint *)(param_1 + 600) = uVar7;
}
iVar19 = iVar14 + 5;
*(uint *)(param_1 + 600) = uVar7 | uVar17 << (0x1bU - (char)iVar14 & 0x1f);
*(int *)(param_1 + 0x25c) = iVar19;
if (0 < iVar10) {
local_150 = (EState *)0x0;
do {
uVar7 = (uint)(byte)local_154[(int)local_150 + 0x9324];
if ((int)uVar17 < (int)uVar7) {
uVar13 = *(uint *)(param_1 + 600);
do {
while (7 < iVar19) {
*(char *)(*(int *)(param_1 + 0x2c) + iVar8) = (char)(uVar13 >> 0x18);
iVar8 = *(int *)(param_1 + 0x4c) + 1;
uVar13 = *(int *)(param_1 + 600) << 8;
*(int *)(param_1 + 0x4c) = iVar8;
*(uint *)(param_1 + 600) = uVar13;
iVar19 = *(int *)(param_1 + 0x25c) + -8;
*(int *)(param_1 + 0x25c) = iVar19;
}
uVar17 = uVar17 + 1;
cVar5 = (char)iVar19;
iVar19 = iVar19 + 2;
*(int *)(param_1 + 0x25c) = iVar19;
uVar13 = 2 << (0x1eU - cVar5 & 0x1f) | uVar13;
*(uint *)(param_1 + 600) = uVar13;
uVar7 = (uint)(byte)local_154[(int)local_150 + 0x9324];
} while ((int)uVar17 < (int)uVar7);
}
if ((int)uVar7 < (int)uVar17) {
uVar7 = *(uint *)(param_1 + 600);
do {
while (7 < iVar19) {
*(char *)(*(int *)(param_1 + 0x2c) + iVar8) = (char)(uVar7 >> 0x18);
iVar8 = *(int *)(param_1 + 0x4c) + 1;
uVar7 = *(int *)(param_1 + 600) << 8;
*(int *)(param_1 + 0x4c) = iVar8;
*(uint *)(param_1 + 600) = uVar7;
iVar19 = *(int *)(param_1 + 0x25c) + -8;
*(int *)(param_1 + 0x25c) = iVar19;
}
uVar17 = uVar17 - 1;
cVar5 = (char)iVar19;
iVar19 = iVar19 + 2;
*(int *)(param_1 + 0x25c) = iVar19;
uVar7 = 3 << (0x1eU - cVar5 & 0x1f) | uVar7;
*(uint *)(param_1 + 600) = uVar7;
} while ((int)(uint)(byte)local_154[(int)local_150 + 0x9324] < (int)uVar17);
}
if (7 < iVar19) {
iVar14 = *(int *)(param_1 + 600);
do {
*(char *)(*(int *)(param_1 + 0x2c) + iVar8) = (char)((uint)iVar14 >> 0x18);
iVar8 = *(int *)(param_1 + 0x4c) + 1;
iVar14 = *(int *)(param_1 + 600) << 8;
*(int *)(param_1 + 0x4c) = iVar8;
*(int *)(param_1 + 600) = iVar14;
iVar19 = *(int *)(param_1 + 0x25c) + -8;
*(int *)(param_1 + 0x25c) = iVar19;
} while (7 < iVar19);
}
local_150 = (EState *)((int)local_150 + 1);
iVar19 = iVar19 + 1;
*(int *)(param_1 + 0x25c) = iVar19;
} while (local_150 != (EState *)iVar10);
}
local_170 = local_170 + 1;
local_154 = local_154 + 0x102;
} while ((int)local_170 < (int)local_168);
if (2 < *(int *)(param_1 + 0x268)) {
fprintf(_stderr,"code lengths %d, ",iVar8 - local_160);
iVar8 = *(int *)(param_1 + 0x4c);
}
local_154 = (EState *)0x0;
iVar14 = *(int *)(param_1 + 0x274);
if (0 < iVar14) {
iVar10 = 0;
do {
iVar19 = iVar14 + -1;
if (iVar10 + 0x31 < iVar14) {
iVar19 = iVar10 + 0x31;
}
if (local_168 <= (byte)param_1[(int)local_154 + 0x680]) {
BZ2_bz__AssertH__fail(0xbbe);
}
if ((local_168 == 6) && (iVar19 - iVar10 == 0x31)) {
iVar70 = iVar10 * 2;
iVar14 = (uint)(byte)param_1[(int)local_154 + 0x680] * 0x102 + 0x9320;
iVar20 = (uint)(byte)param_1[(int)local_154 + 0x680] * 0x408 + 0x9930;
uVar7 = (uint)*(ushort *)(iVar9 + iVar10 * 2);
iVar10 = *(int *)(param_1 + uVar7 * 4 + iVar20);
EVar15 = param_1[uVar7 + 4 + iVar14];
local_164 = *(int *)(param_1 + 0x25c);
if (local_164 < 8) {
local_170 = *(uint *)(param_1 + 600);
}
else {
iVar16 = *(int *)(param_1 + 0x4c);
local_170 = *(uint *)(param_1 + 600);
do {
*(char *)(*(int *)(param_1 + 0x2c) + iVar16) = (char)(local_170 >> 0x18);
iVar16 = *(int *)(param_1 + 0x4c) + 1;
local_170 = *(int *)(param_1 + 600) << 8;
*(int *)(param_1 + 0x4c) = iVar16;
*(uint *)(param_1 + 600) = local_170;
local_164 = *(int *)(param_1 + 0x25c) + -8;
*(int *)(param_1 + 0x25c) = local_164;
} while (7 < local_164);
}
local_170 = iVar10 << ((' ' - (char)local_164) - (char)EVar15 & 0x1fU) | local_170;
*(uint *)(param_1 + 600) = local_170;
local_158 = (EState *)((uint)(byte)EVar15 + local_164);
*(EState **)(param_1 + 0x25c) = local_158;
uVar7 = (uint)*(ushort *)(iVar9 + 2 + iVar70);
iVar10 = *(int *)(param_1 + uVar7 * 4 + iVar20);
EVar15 = param_1[uVar7 + 4 + iVar14];
if (7 < (int)local_158) {
local_150 = *(EState **)(param_1 + 0x4c);
do {
*(char *)(*(int *)(param_1 + 0x2c) + (int)local_150) = (char)(local_170 >> 0x18);
local_150 = (EState *)(*(int *)(param_1 + 0x4c) + 1);
local_170 = *(int *)(param_1 + 600) << 8;
*(EState **)(param_1 + 0x4c) = local_150;
*(uint *)(param_1 + 600) = local_170;
local_158 = (EState *)(*(int *)(param_1 + 0x25c) + -8);
*(EState **)(param_1 + 0x25c) = local_158;
} while (7 < (int)local_158);
}
local_170 = iVar10 << ((' ' - (char)local_158) - (char)EVar15 & 0x1fU) | local_170;
*(uint *)(param_1 + 600) = local_170;
local_158 = (EState *)((uint)(byte)EVar15 + (int)local_158);
*(EState **)(param_1 + 0x25c) = local_158;
uVar7 = (uint)*(ushort *)(iVar9 + 4 + iVar70);
iVar10 = *(int *)(param_1 + uVar7 * 4 + iVar20);
EVar15 = param_1[uVar7 + 4 + iVar14];
if (7 < (int)local_158) {
local_150 = *(EState **)(param_1 + 0x4c);
do {
*(char *)(*(int *)(param_1 + 0x2c) + (int)local_150) = (char)(local_170 >> 0x18);
local_150 = (EState *)(*(int *)(param_1 + 0x4c) + 1);
local_170 = *(int *)(param_1 + 600) << 8;
*(EState **)(param_1 + 0x4c) = local_150;
*(uint *)(param_1 + 600) = local_170;
local_158 = (EState *)(*(int *)(param_1 + 0x25c) + -8);
*(EState **)(param_1 + 0x25c) = local_158;
} while (7 < (int)local_158);
}
local_170 = iVar10 << ((' ' - (char)local_158) - (char)EVar15 & 0x1fU) | local_170;
*(uint *)(param_1 + 600) = local_170;
local_158 = (EState *)((uint)(byte)EVar15 + (int)local_158);
*(EState **)(param_1 + 0x25c) = local_158;
uVar7 = (uint)*(ushort *)(iVar9 + 6 + iVar70);
iVar10 = *(int *)(param_1 + uVar7 * 4 + iVar20);
EVar15 = param_1[uVar7 + 4 + iVar14];
if (7 < (int)local_158) {
local_150 = *(EState **)(param_1 + 0x4c);
do {
*(char *)(*(int *)(param_1 + 0x2c) + (int)local_150) = (char)(local_170 >> 0x18);
local_150 = (EState *)(*(int *)(param_1 + 0x4c) + 1);
local_170 = *(int *)(param_1 + 600) << 8;
*(EState **)(param_1 + 0x4c) = local_150;
*(uint *)(param_1 + 600) = local_170;
local_158 = (EState *)(*(int *)(param_1 + 0x25c) + -8);
*(EState **)(param_1 + 0x25c) = local_158;
} while (7 < (int)local_158);
}
local_170 = iVar10 << ((' ' - (char)local_158) - (char)EVar15 & 0x1fU) | local_170;
*(uint *)(param_1 + 600) = local_170;
local_158 = (EState *)((uint)(byte)EVar15 + (int)local_158);
*(EState **)(param_1 + 0x25c) = local_158;
uVar7 = (uint)*(ushort *)(iVar9 + 8 + iVar70);
iVar10 = *(int *)(param_1 + uVar7 * 4 + iVar20);
EVar15 = param_1[uVar7 + 4 + iVar14];
if (7 < (int)local_158) {
local_150 = *(EState **)(param_1 + 0x4c);
do {
*(char *)(*(int *)(param_1 + 0x2c) + (int)local_150) = (char)(local_170 >> 0x18);
local_150 = (EState *)(*(int *)(param_1 + 0x4c) + 1);
local_170 = *(int *)(param_1 + 600) << 8;
*(EState **)(param_1 + 0x4c) = local_150;
*(uint *)(param_1 + 600) = local_170;
local_158 = (EState *)(*(int *)(param_1 + 0x25c) + -8);
*(EState **)(param_1 + 0x25c) = local_158;
} while (7 < (int)local_158);
}
local_170 = iVar10 << ((' ' - (char)local_158) - (char)EVar15 & 0x1fU) | local_170;
*(uint *)(param_1 + 600) = local_170;
local_158 = (EState *)((uint)(byte)EVar15 + (int)local_158);
*(EState **)(param_1 + 0x25c) = local_158;
uVar7 = (uint)*(ushort *)(iVar9 + 10 + iVar70);
iVar10 = *(int *)(param_1 + uVar7 * 4 + iVar20);
EVar15 = param_1[uVar7 + 4 + iVar14];
if (7 < (int)local_158) {
local_150 = *(EState **)(param_1 + 0x4c);
do {
*(char *)(*(int *)(param_1 + 0x2c) + (int)local_150) = (char)(local_170 >> 0x18);
local_150 = (EState *)(*(int *)(param_1 + 0x4c) + 1);
local_170 = *(int *)(param_1 + 600) << 8;
*(EState **)(param_1 + 0x4c) = local_150;
*(uint *)(param_1 + 600) = local_170;
local_158 = (EState *)(*(int *)(param_1 + 0x25c) + -8);
*(EState **)(param_1 + 0x25c) = local_158;
} while (7 < (int)local_158);
}
local_170 = iVar10 << ((' ' - (char)local_158) - (char)EVar15 & 0x1fU) | local_170;
*(uint *)(param_1 + 600) = local_170;
local_158 = (EState *)((uint)(byte)EVar15 + (int)local_158);
*(EState **)(param_1 + 0x25c) = local_158;
uVar7 = (uint)*(ushort *)(iVar9 + 0xc + iVar70);
iVar10 = *(int *)(param_1 + uVar7 * 4 + iVar20);
EVar15 = param_1[uVar7 + 4 + iVar14];
if (7 < (int)local_158) {
local_150 = *(EState **)(param_1 + 0x4c);
do {
*(char *)(*(int *)(param_1 + 0x2c) + (int)local_150) = (char)(local_170 >> 0x18);
local_150 = (EState *)(*(int *)(param_1 + 0x4c) + 1);
local_170 = *(int *)(param_1 + 600) << 8;
*(EState **)(param_1 + 0x4c) = local_150;
*(uint *)(param_1 + 600) = local_170;
local_158 = (EState *)(*(int *)(param_1 + 0x25c) + -8);
*(EState **)(param_1 + 0x25c) = local_158;
} while (7 < (int)local_158);
}
local_170 = iVar10 << ((' ' - (char)local_158) - (char)EVar15 & 0x1fU) | local_170;
*(uint *)(param_1 + 600) = local_170;
local_158 = (EState *)((uint)(byte)EVar15 + (int)local_158);
*(EState **)(param_1 + 0x25c) = local_158;
uVar7 = (uint)*(ushort *)(iVar9 + 0xe + iVar70);
iVar10 = *(int *)(param_1 + uVar7 * 4 + iVar20);
EVar15 = param_1[uVar7 + 4 + iVar14];
if (7 < (int)local_158) {
local_150 = *(EState **)(param_1 + 0x4c);
do {
*(char *)(*(int *)(param_1 + 0x2c) + (int)local_150) = (char)(local_170 >> 0x18);
local_150 = (EState *)(*(int *)(param_1 + 0x4c) + 1);
local_170 = *(int *)(param_1 + 600) << 8;
*(EState **)(param_1 + 0x4c) = local_150;
*(uint *)(param_1 + 600) = local_170;
local_158 = (EState *)(*(int *)(param_1 + 0x25c) + -8);
*(EState **)(param_1 + 0x25c) = local_158;
} while (7 < (int)local_158);
}
local_170 = iVar10 << ((' ' - (char)local_158) - (char)EVar15 & 0x1fU) | local_170;
*(uint *)(param_1 + 600) = local_170;
local_158 = (EState *)((uint)(byte)EVar15 + (int)local_158);
*(EState **)(param_1 + 0x25c) = local_158;
uVar7 = (uint)*(ushort *)(iVar9 + 0x10 + iVar70);
iVar10 = *(int *)(param_1 + uVar7 * 4 + iVar20);
EVar15 = param_1[uVar7 + 4 + iVar14];
if (7 < (int)local_158) {
local_150 = *(EState **)(param_1 + 0x4c);
do {
*(char *)(*(int *)(param_1 + 0x2c) + (int)local_150) = (char)(local_170 >> 0x18);
local_150 = (EState *)(*(int *)(param_1 + 0x4c) + 1);
local_170 = *(int *)(param_1 + 600) << 8;
*(EState **)(param_1 + 0x4c) = local_150;
*(uint *)(param_1 + 600) = local_170;
local_158 = (EState *)(*(int *)(param_1 + 0x25c) + -8);
*(EState **)(param_1 + 0x25c) = local_158;
} while (7 < (int)local_158);
}
local_170 = iVar10 << ((' ' - (char)local_158) - (char)EVar15 & 0x1fU) | local_170;
*(uint *)(param_1 + 600) = local_170;
local_158 = (EState *)((uint)(byte)EVar15 + (int)local_158);
*(EState **)(param_1 + 0x25c) = local_158;
uVar7 = (uint)*(ushort *)(iVar9 + 0x12 + iVar70);
iVar10 = *(int *)(param_1 + uVar7 * 4 + iVar20);
EVar15 = param_1[uVar7 + 4 + iVar14];
if (7 < (int)local_158) {
local_150 = *(EState **)(param_1 + 0x4c);
do {
*(char *)(*(int *)(param_1 + 0x2c) + (int)local_150) = (char)(local_170 >> 0x18);
local_150 = (EState *)(*(int *)(param_1 + 0x4c) + 1);
local_170 = *(int *)(param_1 + 600) << 8;
*(EState **)(param_1 + 0x4c) = local_150;
*(uint *)(param_1 + 600) = local_170;
local_158 = (EState *)(*(int *)(param_1 + 0x25c) + -8);
*(EState **)(param_1 + 0x25c) = local_158;
} while (7 < (int)local_158);
}
local_170 = iVar10 << ((' ' - (char)local_158) - (char)EVar15 & 0x1fU) | local_170;
*(uint *)(param_1 + 600) = local_170;
local_158 = (EState *)((uint)(byte)EVar15 + (int)local_158);
*(EState **)(param_1 + 0x25c) = local_158;
uVar7 = (uint)*(ushort *)(iVar9 + 0x14 + iVar70);
iVar10 = *(int *)(param_1 + uVar7 * 4 + iVar20);
EVar15 = param_1[uVar7 + 4 + iVar14];
if (7 < (int)local_158) {
local_150 = *(EState **)(param_1 + 0x4c);
do {
*(char *)(*(int *)(param_1 + 0x2c) + (int)local_150) = (char)(local_170 >> 0x18);
local_150 = (EState *)(*(int *)(param_1 + 0x4c) + 1);
local_170 = *(int *)(param_1 + 600) << 8;
*(EState **)(param_1 + 0x4c) = local_150;
*(uint *)(param_1 + 600) = local_170;
local_158 = (EState *)(*(int *)(param_1 + 0x25c) + -8);
*(EState **)(param_1 + 0x25c) = local_158;
} while (7 < (int)local_158);
}
local_170 = iVar10 << ((' ' - (char)local_158) - (char)EVar15 & 0x1fU) | local_170;
*(uint *)(param_1 + 600) = local_170;
local_158 = (EState *)((uint)(byte)EVar15 + (int)local_158);
*(EState **)(param_1 + 0x25c) = local_158;
uVar7 = (uint)*(ushort *)(iVar9 + 0x16 + iVar70);
iVar10 = *(int *)(param_1 + uVar7 * 4 + iVar20);
EVar15 = param_1[uVar7 + 4 + iVar14];
if (7 < (int)local_158) {
local_150 = *(EState **)(param_1 + 0x4c);
do {
*(char *)(*(int *)(param_1 + 0x2c) + (int)local_150) = (char)(local_170 >> 0x18);
local_150 = (EState *)(*(int *)(param_1 + 0x4c) + 1);
local_170 = *(int *)(param_1 + 600) << 8;
*(EState **)(param_1 + 0x4c) = local_150;
*(uint *)(param_1 + 600) = local_170;
local_158 = (EState *)(*(int *)(param_1 + 0x25c) + -8);
*(EState **)(param_1 + 0x25c) = local_158;
} while (7 < (int)local_158);
}
local_170 = iVar10 << ((' ' - (char)local_158) - (char)EVar15 & 0x1fU) | local_170;
*(uint *)(param_1 + 600) = local_170;
local_158 = (EState *)((uint)(byte)EVar15 + (int)local_158);
*(EState **)(param_1 + 0x25c) = local_158;
uVar7 = (uint)*(ushort *)(iVar9 + 0x18 + iVar70);
iVar10 = *(int *)(param_1 + uVar7 * 4 + iVar20);
EVar15 = param_1[uVar7 + 4 + iVar14];
if (7 < (int)local_158) {
local_150 = *(EState **)(param_1 + 0x4c);
do {
*(char *)(*(int *)(param_1 + 0x2c) + (int)local_150) = (char)(local_170 >> 0x18);
local_150 = (EState *)(*(int *)(param_1 + 0x4c) + 1);
local_170 = *(int *)(param_1 + 600) << 8;
*(EState **)(param_1 + 0x4c) = local_150;
*(uint *)(param_1 + 600) = local_170;
local_158 = (EState *)(*(int *)(param_1 + 0x25c) + -8);
*(EState **)(param_1 + 0x25c) = local_158;
} while (7 < (int)local_158);
}
local_170 = iVar10 << ((' ' - (char)local_158) - (char)EVar15 & 0x1fU) | local_170;
*(uint *)(param_1 + 600) = local_170;
local_158 = (EState *)((uint)(byte)EVar15 + (int)local_158);
*(EState **)(param_1 + 0x25c) = local_158;
uVar7 = (uint)*(ushort *)(iVar9 + 0x1a + iVar70);
iVar10 = *(int *)(param_1 + uVar7 * 4 + iVar20);
EVar15 = param_1[uVar7 + 4 + iVar14];
if (7 < (int)local_158) {
local_150 = *(EState **)(param_1 + 0x4c);
do {
*(char *)(*(int *)(param_1 + 0x2c) + (int)local_150) = (char)(local_170 >> 0x18);
local_150 = (EState *)(*(int *)(param_1 + 0x4c) + 1);
local_170 = *(int *)(param_1 + 600) << 8;
*(EState **)(param_1 + 0x4c) = local_150;
*(uint *)(param_1 + 600) = local_170;
local_158 = (EState *)(*(int *)(param_1 + 0x25c) + -8);
*(EState **)(param_1 + 0x25c) = local_158;
} while (7 < (int)local_158);
}
local_170 = iVar10 << ((' ' - (char)local_158) - (char)EVar15 & 0x1fU) | local_170;
*(uint *)(param_1 + 600) = local_170;
local_158 = (EState *)((uint)(byte)EVar15 + (int)local_158);
*(EState **)(param_1 + 0x25c) = local_158;
uVar7 = (uint)*(ushort *)(iVar9 + 0x1c + iVar70);
iVar10 = *(int *)(param_1 + uVar7 * 4 + iVar20);
EVar15 = param_1[uVar7 + 4 + iVar14];
if (7 < (int)local_158) {
local_150 = *(EState **)(param_1 + 0x4c);
do {
*(char *)(*(int *)(param_1 + 0x2c) + (int)local_150) = (char)(local_170 >> 0x18);
local_150 = (EState *)(*(int *)(param_1 + 0x4c) + 1);
local_170 = *(int *)(param_1 + 600) << 8;
*(EState **)(param_1 + 0x4c) = local_150;
*(uint *)(param_1 + 600) = local_170;
local_158 = (EState *)(*(int *)(param_1 + 0x25c) + -8);
*(EState **)(param_1 + 0x25c) = local_158;
} while (7 < (int)local_158);
}
local_170 = iVar10 << ((' ' - (char)local_158) - (char)EVar15 & 0x1fU) | local_170;
*(uint *)(param_1 + 600) = local_170;
local_158 = (EState *)((uint)(byte)EVar15 + (int)local_158);
*(EState **)(param_1 + 0x25c) = local_158;
uVar7 = (uint)*(ushort *)(iVar9 + 0x1e + iVar70);
iVar10 = *(int *)(param_1 + uVar7 * 4 + iVar20);
EVar15 = param_1[uVar7 + 4 + iVar14];
if (7 < (int)local_158) {
local_150 = *(EState **)(param_1 + 0x4c);
do {
*(char *)(*(int *)(param_1 + 0x2c) + (int)local_150) = (char)(local_170 >> 0x18);
local_150 = (EState *)(*(int *)(param_1 + 0x4c) + 1);
local_170 = *(int *)(param_1 + 600) << 8;
*(EState **)(param_1 + 0x4c) = local_150;
*(uint *)(param_1 + 600) = local_170;
local_158 = (EState *)(*(int *)(param_1 + 0x25c) + -8);
*(EState **)(param_1 + 0x25c) = local_158;
} while (7 < (int)local_158);
}
local_170 = iVar10 << ((' ' - (char)local_158) - (char)EVar15 & 0x1fU) | local_170;
*(uint *)(param_1 + 600) = local_170;
local_158 = (EState *)((uint)(byte)EVar15 + (int)local_158);
*(EState **)(param_1 + 0x25c) = local_158;
uVar7 = (uint)*(ushort *)(iVar9 + 0x20 + iVar70);
iVar10 = *(int *)(param_1 + uVar7 * 4 + iVar20);
EVar15 = param_1[uVar7 + 4 + iVar14];
if (7 < (int)local_158) {
local_150 = *(EState **)(param_1 + 0x4c);
do {
*(char *)(*(int *)(param_1 + 0x2c) + (int)local_150) = (char)(local_170 >> 0x18);
local_150 = (EState *)(*(int *)(param_1 + 0x4c) + 1);
local_170 = *(int *)(param_1 + 600) << 8;
*(EState **)(param_1 + 0x4c) = local_150;
*(uint *)(param_1 + 600) = local_170;
local_158 = (EState *)(*(int *)(param_1 + 0x25c) + -8);
*(EState **)(param_1 + 0x25c) = local_158;
} while (7 < (int)local_158);
}
local_170 = iVar10 << ((' ' - (char)local_158) - (char)EVar15 & 0x1fU) | local_170;
*(uint *)(param_1 + 600) = local_170;
local_158 = (EState *)((uint)(byte)EVar15 + (int)local_158);
*(EState **)(param_1 + 0x25c) = local_158;
uVar7 = (uint)*(ushort *)(iVar9 + 0x22 + iVar70);
iVar10 = *(int *)(param_1 + uVar7 * 4 + iVar20);
EVar15 = param_1[uVar7 + 4 + iVar14];
if (7 < (int)local_158) {
local_150 = *(EState **)(param_1 + 0x4c);
do {
*(char *)(*(int *)(param_1 + 0x2c) + (int)local_150) = (char)(local_170 >> 0x18);
local_150 = (EState *)(*(int *)(param_1 + 0x4c) + 1);
local_170 = *(int *)(param_1 + 600) << 8;
*(EState **)(param_1 + 0x4c) = local_150;
*(uint *)(param_1 + 600) = local_170;
local_158 = (EState *)(*(int *)(param_1 + 0x25c) + -8);
*(EState **)(param_1 + 0x25c) = local_158;
} while (7 < (int)local_158);
}
local_170 = iVar10 << ((' ' - (char)local_158) - (char)EVar15 & 0x1fU) | local_170;
*(uint *)(param_1 + 600) = local_170;
local_158 = (EState *)((uint)(byte)EVar15 + (int)local_158);
*(EState **)(param_1 + 0x25c) = local_158;
uVar7 = (uint)*(ushort *)(iVar9 + 0x24 + iVar70);
iVar10 = *(int *)(param_1 + uVar7 * 4 + iVar20);
EVar15 = param_1[uVar7 + 4 + iVar14];
if (7 < (int)local_158) {
local_150 = *(EState **)(param_1 + 0x4c);
do {
*(char *)(*(int *)(param_1 + 0x2c) + (int)local_150) = (char)(local_170 >> 0x18);
local_150 = (EState *)(*(int *)(param_1 + 0x4c) + 1);
local_170 = *(int *)(param_1 + 600) << 8;
*(EState **)(param_1 + 0x4c) = local_150;
*(uint *)(param_1 + 600) = local_170;
local_158 = (EState *)(*(int *)(param_1 + 0x25c) + -8);
*(EState **)(param_1 + 0x25c) = local_158;
} while (7 < (int)local_158);
}
local_170 = iVar10 << ((' ' - (char)local_158) - (char)EVar15 & 0x1fU) | local_170;
*(uint *)(param_1 + 600) = local_170;
local_158 = (EState *)((uint)(byte)EVar15 + (int)local_158);
*(EState **)(param_1 + 0x25c) = local_158;
uVar7 = (uint)*(ushort *)(iVar9 + 0x26 + iVar70);
iVar10 = *(int *)(param_1 + uVar7 * 4 + iVar20);
EVar15 = param_1[uVar7 + 4 + iVar14];
if (7 < (int)local_158) {
local_150 = *(EState **)(param_1 + 0x4c);
do {
*(char *)(*(int *)(param_1 + 0x2c) + (int)local_150) = (char)(local_170 >> 0x18);
local_150 = (EState *)(*(int *)(param_1 + 0x4c) + 1);
local_170 = *(int *)(param_1 + 600) << 8;
*(EState **)(param_1 + 0x4c) = local_150;
*(uint *)(param_1 + 600) = local_170;
local_158 = (EState *)(*(int *)(param_1 + 0x25c) + -8);
*(EState **)(param_1 + 0x25c) = local_158;
} while (7 < (int)local_158);
}
local_170 = iVar10 << ((' ' - (char)local_158) - (char)EVar15 & 0x1fU) | local_170;
*(uint *)(param_1 + 600) = local_170;
local_158 = (EState *)((uint)(byte)EVar15 + (int)local_158);
*(EState **)(param_1 + 0x25c) = local_158;
uVar7 = (uint)*(ushort *)(iVar9 + 0x28 + iVar70);
iVar10 = *(int *)(param_1 + uVar7 * 4 + iVar20);
EVar15 = param_1[uVar7 + 4 + iVar14];
if (7 < (int)local_158) {
local_150 = *(EState **)(param_1 + 0x4c);
do {
*(char *)(*(int *)(param_1 + 0x2c) + (int)local_150) = (char)(local_170 >> 0x18);
local_150 = (EState *)(*(int *)(param_1 + 0x4c) + 1);
local_170 = *(int *)(param_1 + 600) << 8;
*(EState **)(param_1 + 0x4c) = local_150;
*(uint *)(param_1 + 600) = local_170;
local_158 = (EState *)(*(int *)(param_1 + 0x25c) + -8);
*(EState **)(param_1 + 0x25c) = local_158;
} while (7 < (int)local_158);
}
local_170 = iVar10 << ((' ' - (char)local_158) - (char)EVar15 & 0x1fU) | local_170;
*(uint *)(param_1 + 600) = local_170;
local_158 = (EState *)((uint)(byte)EVar15 + (int)local_158);
*(EState **)(param_1 + 0x25c) = local_158;
uVar7 = (uint)*(ushort *)(iVar9 + 0x2a + iVar70);
iVar10 = *(int *)(param_1 + uVar7 * 4 + iVar20);
EVar15 = param_1[uVar7 + 4 + iVar14];
if (7 < (int)local_158) {
local_150 = *(EState **)(param_1 + 0x4c);
do {
*(char *)(*(int *)(param_1 + 0x2c) + (int)local_150) = (char)(local_170 >> 0x18);
local_150 = (EState *)(*(int *)(param_1 + 0x4c) + 1);
local_170 = *(int *)(param_1 + 600) << 8;
*(EState **)(param_1 + 0x4c) = local_150;
*(uint *)(param_1 + 600) = local_170;
local_158 = (EState *)(*(int *)(param_1 + 0x25c) + -8);
*(EState **)(param_1 + 0x25c) = local_158;
} while (7 < (int)local_158);
}
local_170 = iVar10 << ((' ' - (char)local_158) - (char)EVar15 & 0x1fU) | local_170;
*(uint *)(param_1 + 600) = local_170;
local_158 = (EState *)((uint)(byte)EVar15 + (int)local_158);
*(EState **)(param_1 + 0x25c) = local_158;
uVar7 = (uint)*(ushort *)(iVar9 + 0x2c + iVar70);
iVar10 = *(int *)(param_1 + uVar7 * 4 + iVar20);
EVar15 = param_1[uVar7 + 4 + iVar14];
if (7 < (int)local_158) {
local_150 = *(EState **)(param_1 + 0x4c);
do {
*(char *)(*(int *)(param_1 + 0x2c) + (int)local_150) = (char)(local_170 >> 0x18);
local_150 = (EState *)(*(int *)(param_1 + 0x4c) + 1);
local_170 = *(int *)(param_1 + 600) << 8;
*(EState **)(param_1 + 0x4c) = local_150;
*(uint *)(param_1 + 600) = local_170;
local_158 = (EState *)(*(int *)(param_1 + 0x25c) + -8);
*(EState **)(param_1 + 0x25c) = local_158;
} while (7 < (int)local_158);
}
local_170 = iVar10 << ((' ' - (char)local_158) - (char)EVar15 & 0x1fU) | local_170;
*(uint *)(param_1 + 600) = local_170;
local_158 = (EState *)((uint)(byte)EVar15 + (int)local_158);
*(EState **)(param_1 + 0x25c) = local_158;
uVar7 = (uint)*(ushort *)(iVar9 + 0x2e + iVar70);
iVar10 = *(int *)(param_1 + uVar7 * 4 + iVar20);
EVar15 = param_1[uVar7 + 4 + iVar14];
if (7 < (int)local_158) {
local_150 = *(EState **)(param_1 + 0x4c);
do {
*(char *)(*(int *)(param_1 + 0x2c) + (int)local_150) = (char)(local_170 >> 0x18);
local_150 = (EState *)(*(int *)(param_1 + 0x4c) + 1);
local_170 = *(int *)(param_1 + 600) << 8;
*(EState **)(param_1 + 0x4c) = local_150;
*(uint *)(param_1 + 600) = local_170;
local_158 = (EState *)(*(int *)(param_1 + 0x25c) + -8);
*(EState **)(param_1 + 0x25c) = local_158;
} while (7 < (int)local_158);
}
local_170 = iVar10 << ((' ' - (char)local_158) - (char)EVar15 & 0x1fU) | local_170;
*(uint *)(param_1 + 600) = local_170;
local_158 = (EState *)((uint)(byte)EVar15 + (int)local_158);
*(EState **)(param_1 + 0x25c) = local_158;
uVar7 = (uint)*(ushort *)(iVar9 + 0x30 + iVar70);
iVar10 = *(int *)(param_1 + uVar7 * 4 + iVar20);
EVar15 = param_1[uVar7 + 4 + iVar14];
if (7 < (int)local_158) {
local_150 = *(EState **)(param_1 + 0x4c);
do {
*(char *)(*(int *)(param_1 + 0x2c) + (int)local_150) = (char)(local_170 >> 0x18);
local_150 = (EState *)(*(int *)(param_1 + 0x4c) + 1);
local_170 = *(int *)(param_1 + 600) << 8;
*(EState **)(param_1 + 0x4c) = local_150;
*(uint *)(param_1 + 600) = local_170;
local_158 = (EState *)(*(int *)(param_1 + 0x25c) + -8);
*(EState **)(param_1 + 0x25c) = local_158;
} while (7 < (int)local_158);
}
local_170 = iVar10 << ((' ' - (char)local_158) - (char)EVar15 & 0x1fU) | local_170;
*(uint *)(param_1 + 600) = local_170;
local_158 = (EState *)((uint)(byte)EVar15 + (int)local_158);
*(EState **)(param_1 + 0x25c) = local_158;
uVar7 = (uint)*(ushort *)(iVar9 + 0x32 + iVar70);
iVar10 = *(int *)(param_1 + uVar7 * 4 + iVar20);
EVar15 = param_1[uVar7 + 4 + iVar14];
if (7 < (int)local_158) {
local_150 = *(EState **)(param_1 + 0x4c);
do {
*(char *)(*(int *)(param_1 + 0x2c) + (int)local_150) = (char)(local_170 >> 0x18);
local_150 = (EState *)(*(int *)(param_1 + 0x4c) + 1);
local_170 = *(int *)(param_1 + 600) << 8;
*(EState **)(param_1 + 0x4c) = local_150;
*(uint *)(param_1 + 600) = local_170;
local_158 = (EState *)(*(int *)(param_1 + 0x25c) + -8);
*(EState **)(param_1 + 0x25c) = local_158;
} while (7 < (int)local_158);
}
local_170 = iVar10 << ((' ' - (char)local_158) - (char)EVar15 & 0x1fU) | local_170;
*(uint *)(param_1 + 600) = local_170;
local_158 = (EState *)((uint)(byte)EVar15 + (int)local_158);
*(EState **)(param_1 + 0x25c) = local_158;
uVar7 = (uint)*(ushort *)(iVar9 + 0x34 + iVar70);
iVar10 = *(int *)(param_1 + uVar7 * 4 + iVar20);
EVar15 = param_1[uVar7 + 4 + iVar14];
if (7 < (int)local_158) {
local_150 = *(EState **)(param_1 + 0x4c);
do {
*(char *)(*(int *)(param_1 + 0x2c) + (int)local_150) = (char)(local_170 >> 0x18);
local_150 = (EState *)(*(int *)(param_1 + 0x4c) + 1);
local_170 = *(int *)(param_1 + 600) << 8;
*(EState **)(param_1 + 0x4c) = local_150;
*(uint *)(param_1 + 600) = local_170;
local_158 = (EState *)(*(int *)(param_1 + 0x25c) + -8);
*(EState **)(param_1 + 0x25c) = local_158;
} while (7 < (int)local_158);
}
local_170 = iVar10 << ((' ' - (char)local_158) - (char)EVar15 & 0x1fU) | local_170;
*(uint *)(param_1 + 600) = local_170;
local_158 = (EState *)((uint)(byte)EVar15 + (int)local_158);
*(EState **)(param_1 + 0x25c) = local_158;
uVar7 = (uint)*(ushort *)(iVar9 + 0x36 + iVar70);
iVar10 = *(int *)(param_1 + uVar7 * 4 + iVar20);
EVar15 = param_1[uVar7 + 4 + iVar14];
if (7 < (int)local_158) {
local_150 = *(EState **)(param_1 + 0x4c);
do {
*(char *)(*(int *)(param_1 + 0x2c) + (int)local_150) = (char)(local_170 >> 0x18);
local_150 = (EState *)(*(int *)(param_1 + 0x4c) + 1);
local_170 = *(int *)(param_1 + 600) << 8;
*(EState **)(param_1 + 0x4c) = local_150;
*(uint *)(param_1 + 600) = local_170;
local_158 = (EState *)(*(int *)(param_1 + 0x25c) + -8);
*(EState **)(param_1 + 0x25c) = local_158;
} while (7 < (int)local_158);
}
local_170 = iVar10 << ((' ' - (char)local_158) - (char)EVar15 & 0x1fU) | local_170;
*(uint *)(param_1 + 600) = local_170;
local_158 = (EState *)((uint)(byte)EVar15 + (int)local_158);
*(EState **)(param_1 + 0x25c) = local_158;
uVar7 = (uint)*(ushort *)(iVar9 + 0x38 + iVar70);
iVar10 = *(int *)(param_1 + uVar7 * 4 + iVar20);
EVar15 = param_1[uVar7 + 4 + iVar14];
if (7 < (int)local_158) {
local_150 = *(EState **)(param_1 + 0x4c);
do {
*(char *)(*(int *)(param_1 + 0x2c) + (int)local_150) = (char)(local_170 >> 0x18);
local_150 = (EState *)(*(int *)(param_1 + 0x4c) + 1);
local_170 = *(int *)(param_1 + 600) << 8;
*(EState **)(param_1 + 0x4c) = local_150;
*(uint *)(param_1 + 600) = local_170;
local_158 = (EState *)(*(int *)(param_1 + 0x25c) + -8);
*(EState **)(param_1 + 0x25c) = local_158;
} while (7 < (int)local_158);
}
local_170 = iVar10 << ((' ' - (char)local_158) - (char)EVar15 & 0x1fU) | local_170;
*(uint *)(param_1 + 600) = local_170;
local_158 = (EState *)((uint)(byte)EVar15 + (int)local_158);
*(EState **)(param_1 + 0x25c) = local_158;
uVar7 = (uint)*(ushort *)(iVar9 + 0x3a + iVar70);
iVar10 = *(int *)(param_1 + uVar7 * 4 + iVar20);
EVar15 = param_1[uVar7 + 4 + iVar14];
if (7 < (int)local_158) {
local_150 = *(EState **)(param_1 + 0x4c);
do {
*(char *)(*(int *)(param_1 + 0x2c) + (int)local_150) = (char)(local_170 >> 0x18);
local_150 = (EState *)(*(int *)(param_1 + 0x4c) + 1);
local_170 = *(int *)(param_1 + 600) << 8;
*(EState **)(param_1 + 0x4c) = local_150;
*(uint *)(param_1 + 600) = local_170;
local_158 = (EState *)(*(int *)(param_1 + 0x25c) + -8);
*(EState **)(param_1 + 0x25c) = local_158;
} while (7 < (int)local_158);
}
local_170 = iVar10 << ((' ' - (char)local_158) - (char)EVar15 & 0x1fU) | local_170;
*(uint *)(param_1 + 600) = local_170;
local_158 = (EState *)((uint)(byte)EVar15 + (int)local_158);
*(EState **)(param_1 + 0x25c) = local_158;
uVar7 = (uint)*(ushort *)(iVar9 + 0x3c + iVar70);
iVar10 = *(int *)(param_1 + uVar7 * 4 + iVar20);
EVar15 = param_1[uVar7 + 4 + iVar14];
if (7 < (int)local_158) {
local_150 = *(EState **)(param_1 + 0x4c);
do {
*(char *)(*(int *)(param_1 + 0x2c) + (int)local_150) = (char)(local_170 >> 0x18);
local_150 = (EState *)(*(int *)(param_1 + 0x4c) + 1);
local_170 = *(int *)(param_1 + 600) << 8;
*(EState **)(param_1 + 0x4c) = local_150;
*(uint *)(param_1 + 600) = local_170;
local_158 = (EState *)(*(int *)(param_1 + 0x25c) + -8);
*(EState **)(param_1 + 0x25c) = local_158;
} while (7 < (int)local_158);
}
local_170 = iVar10 << ((' ' - (char)local_158) - (char)EVar15 & 0x1fU) | local_170;
*(uint *)(param_1 + 600) = local_170;
local_158 = (EState *)((uint)(byte)EVar15 + (int)local_158);
*(EState **)(param_1 + 0x25c) = local_158;
uVar7 = (uint)*(ushort *)(iVar9 + 0x3e + iVar70);
iVar10 = *(int *)(param_1 + uVar7 * 4 + iVar20);
EVar15 = param_1[uVar7 + 4 + iVar14];
if (7 < (int)local_158) {
local_150 = *(EState **)(param_1 + 0x4c);
do {
*(char *)(*(int *)(param_1 + 0x2c) + (int)local_150) = (char)(local_170 >> 0x18);
local_150 = (EState *)(*(int *)(param_1 + 0x4c) + 1);
local_170 = *(int *)(param_1 + 600) << 8;
*(EState **)(param_1 + 0x4c) = local_150;
*(uint *)(param_1 + 600) = local_170;
local_158 = (EState *)(*(int *)(param_1 + 0x25c) + -8);
*(EState **)(param_1 + 0x25c) = local_158;
} while (7 < (int)local_158);
}
local_170 = iVar10 << ((' ' - (char)local_158) - (char)EVar15 & 0x1fU) | local_170;
*(uint *)(param_1 + 600) = local_170;
local_158 = (EState *)((uint)(byte)EVar15 + (int)local_158);
*(EState **)(param_1 + 0x25c) = local_158;
uVar7 = (uint)*(ushort *)(iVar9 + 0x40 + iVar70);
iVar10 = *(int *)(param_1 + uVar7 * 4 + iVar20);
EVar15 = param_1[uVar7 + 4 + iVar14];
if (7 < (int)local_158) {
local_150 = *(EState **)(param_1 + 0x4c);
do {
*(char *)(*(int *)(param_1 + 0x2c) + (int)local_150) = (char)(local_170 >> 0x18);
local_150 = (EState *)(*(int *)(param_1 + 0x4c) + 1);
local_170 = *(int *)(param_1 + 600) << 8;
*(EState **)(param_1 + 0x4c) = local_150;
*(uint *)(param_1 + 600) = local_170;
local_158 = (EState *)(*(int *)(param_1 + 0x25c) + -8);
*(EState **)(param_1 + 0x25c) = local_158;
} while (7 < (int)local_158);
}
local_170 = iVar10 << ((' ' - (char)local_158) - (char)EVar15 & 0x1fU) | local_170;
*(uint *)(param_1 + 600) = local_170;
local_158 = (EState *)((uint)(byte)EVar15 + (int)local_158);
*(EState **)(param_1 + 0x25c) = local_158;
uVar7 = (uint)*(ushort *)(iVar9 + 0x42 + iVar70);
iVar10 = *(int *)(param_1 + uVar7 * 4 + iVar20);
EVar15 = param_1[uVar7 + 4 + iVar14];
if (7 < (int)local_158) {
local_150 = *(EState **)(param_1 + 0x4c);
do {
*(char *)(*(int *)(param_1 + 0x2c) + (int)local_150) = (char)(local_170 >> 0x18);
local_150 = (EState *)(*(int *)(param_1 + 0x4c) + 1);
local_170 = *(int *)(param_1 + 600) << 8;
*(EState **)(param_1 + 0x4c) = local_150;
*(uint *)(param_1 + 600) = local_170;
local_158 = (EState *)(*(int *)(param_1 + 0x25c) + -8);
*(EState **)(param_1 + 0x25c) = local_158;
} while (7 < (int)local_158);
}
local_170 = iVar10 << ((' ' - (char)local_158) - (char)EVar15 & 0x1fU) | local_170;
*(uint *)(param_1 + 600) = local_170;
local_158 = (EState *)((uint)(byte)EVar15 + (int)local_158);
*(EState **)(param_1 + 0x25c) = local_158;
uVar7 = (uint)*(ushort *)(iVar9 + 0x44 + iVar70);
iVar10 = *(int *)(param_1 + uVar7 * 4 + iVar20);
EVar15 = param_1[uVar7 + 4 + iVar14];
if (7 < (int)local_158) {
local_150 = *(EState **)(param_1 + 0x4c);
do {
*(char *)(*(int *)(param_1 + 0x2c) + (int)local_150) = (char)(local_170 >> 0x18);
local_150 = (EState *)(*(int *)(param_1 + 0x4c) + 1);
local_170 = *(int *)(param_1 + 600) << 8;
*(EState **)(param_1 + 0x4c) = local_150;
*(uint *)(param_1 + 600) = local_170;
local_158 = (EState *)(*(int *)(param_1 + 0x25c) + -8);
*(EState **)(param_1 + 0x25c) = local_158;
} while (7 < (int)local_158);
}
local_170 = iVar10 << ((' ' - (char)local_158) - (char)EVar15 & 0x1fU) | local_170;
*(uint *)(param_1 + 600) = local_170;
local_158 = (EState *)((uint)(byte)EVar15 + (int)local_158);
*(EState **)(param_1 + 0x25c) = local_158;
uVar7 = (uint)*(ushort *)(iVar9 + 0x46 + iVar70);
iVar10 = *(int *)(param_1 + uVar7 * 4 + iVar20);
EVar15 = param_1[uVar7 + 4 + iVar14];
if (7 < (int)local_158) {
local_150 = *(EState **)(param_1 + 0x4c);
do {
*(char *)(*(int *)(param_1 + 0x2c) + (int)local_150) = (char)(local_170 >> 0x18);
local_150 = (EState *)(*(int *)(param_1 + 0x4c) + 1);
local_170 = *(int *)(param_1 + 600) << 8;
*(EState **)(param_1 + 0x4c) = local_150;
*(uint *)(param_1 + 600) = local_170;
local_158 = (EState *)(*(int *)(param_1 + 0x25c) + -8);
*(EState **)(param_1 + 0x25c) = local_158;
} while (7 < (int)local_158);
}
local_170 = iVar10 << ((' ' - (char)local_158) - (char)EVar15 & 0x1fU) | local_170;
*(uint *)(param_1 + 600) = local_170;
local_158 = (EState *)((uint)(byte)EVar15 + (int)local_158);
*(EState **)(param_1 + 0x25c) = local_158;
uVar7 = (uint)*(ushort *)(iVar9 + 0x48 + iVar70);
iVar10 = *(int *)(param_1 + uVar7 * 4 + iVar20);
EVar15 = param_1[uVar7 + 4 + iVar14];
if (7 < (int)local_158) {
local_150 = *(EState **)(param_1 + 0x4c);
do {
*(char *)(*(int *)(param_1 + 0x2c) + (int)local_150) = (char)(local_170 >> 0x18);
local_150 = (EState *)(*(int *)(param_1 + 0x4c) + 1);
local_170 = *(int *)(param_1 + 600) << 8;
*(EState **)(param_1 + 0x4c) = local_150;
*(uint *)(param_1 + 600) = local_170;
local_158 = (EState *)(*(int *)(param_1 + 0x25c) + -8);
*(EState **)(param_1 + 0x25c) = local_158;
} while (7 < (int)local_158);
}
local_170 = iVar10 << ((' ' - (char)local_158) - (char)EVar15 & 0x1fU) | local_170;
*(uint *)(param_1 + 600) = local_170;
local_158 = (EState *)((uint)(byte)EVar15 + (int)local_158);
*(EState **)(param_1 + 0x25c) = local_158;
uVar7 = (uint)*(ushort *)(iVar9 + 0x4a + iVar70);
iVar10 = *(int *)(param_1 + uVar7 * 4 + iVar20);
EVar15 = param_1[uVar7 + 4 + iVar14];
if (7 < (int)local_158) {
local_150 = *(EState **)(param_1 + 0x4c);
do {
*(char *)(*(int *)(param_1 + 0x2c) + (int)local_150) = (char)(local_170 >> 0x18);
local_150 = (EState *)(*(int *)(param_1 + 0x4c) + 1);
local_170 = *(int *)(param_1 + 600) << 8;
*(EState **)(param_1 + 0x4c) = local_150;
*(uint *)(param_1 + 600) = local_170;
local_158 = (EState *)(*(int *)(param_1 + 0x25c) + -8);
*(EState **)(param_1 + 0x25c) = local_158;
} while (7 < (int)local_158);
}
local_170 = iVar10 << ((' ' - (char)local_158) - (char)EVar15 & 0x1fU) | local_170;
*(uint *)(param_1 + 600) = local_170;
local_158 = (EState *)((uint)(byte)EVar15 + (int)local_158);
*(EState **)(param_1 + 0x25c) = local_158;
uVar7 = (uint)*(ushort *)(iVar9 + 0x4c + iVar70);
iVar10 = *(int *)(param_1 + uVar7 * 4 + iVar20);
EVar15 = param_1[uVar7 + 4 + iVar14];
if (7 < (int)local_158) {
local_150 = *(EState **)(param_1 + 0x4c);
do {
*(char *)(*(int *)(param_1 + 0x2c) + (int)local_150) = (char)(local_170 >> 0x18);
local_150 = (EState *)(*(int *)(param_1 + 0x4c) + 1);
local_170 = *(int *)(param_1 + 600) << 8;
*(EState **)(param_1 + 0x4c) = local_150;
*(uint *)(param_1 + 600) = local_170;
local_158 = (EState *)(*(int *)(param_1 + 0x25c) + -8);
*(EState **)(param_1 + 0x25c) = local_158;
} while (7 < (int)local_158);
}
local_170 = iVar10 << ((' ' - (char)local_158) - (char)EVar15 & 0x1fU) | local_170;
*(uint *)(param_1 + 600) = local_170;
local_158 = (EState *)((uint)(byte)EVar15 + (int)local_158);
*(EState **)(param_1 + 0x25c) = local_158;
uVar7 = (uint)*(ushort *)(iVar9 + 0x4e + iVar70);
iVar10 = *(int *)(param_1 + uVar7 * 4 + iVar20);
EVar15 = param_1[uVar7 + 4 + iVar14];
if (7 < (int)local_158) {
local_150 = *(EState **)(param_1 + 0x4c);
do {
*(char *)(*(int *)(param_1 + 0x2c) + (int)local_150) = (char)(local_170 >> 0x18);
local_150 = (EState *)(*(int *)(param_1 + 0x4c) + 1);
local_170 = *(int *)(param_1 + 600) << 8;
*(EState **)(param_1 + 0x4c) = local_150;
*(uint *)(param_1 + 600) = local_170;
local_158 = (EState *)(*(int *)(param_1 + 0x25c) + -8);
*(EState **)(param_1 + 0x25c) = local_158;
} while (7 < (int)local_158);
}
local_170 = iVar10 << ((' ' - (char)local_158) - (char)EVar15 & 0x1fU) | local_170;
*(uint *)(param_1 + 600) = local_170;
local_158 = (EState *)((uint)(byte)EVar15 + (int)local_158);
*(EState **)(param_1 + 0x25c) = local_158;
uVar7 = (uint)*(ushort *)(iVar9 + 0x50 + iVar70);
iVar10 = *(int *)(param_1 + uVar7 * 4 + iVar20);
EVar15 = param_1[uVar7 + 4 + iVar14];
if (7 < (int)local_158) {
local_150 = *(EState **)(param_1 + 0x4c);
do {
*(char *)(*(int *)(param_1 + 0x2c) + (int)local_150) = (char)(local_170 >> 0x18);
local_150 = (EState *)(*(int *)(param_1 + 0x4c) + 1);
local_170 = *(int *)(param_1 + 600) << 8;
*(EState **)(param_1 + 0x4c) = local_150;
*(uint *)(param_1 + 600) = local_170;
local_158 = (EState *)(*(int *)(param_1 + 0x25c) + -8);
*(EState **)(param_1 + 0x25c) = local_158;
} while (7 < (int)local_158);
}
local_170 = iVar10 << ((' ' - (char)local_158) - (char)EVar15 & 0x1fU) | local_170;
*(uint *)(param_1 + 600) = local_170;
local_158 = (EState *)((uint)(byte)EVar15 + (int)local_158);
*(EState **)(param_1 + 0x25c) = local_158;
uVar7 = (uint)*(ushort *)(iVar9 + 0x52 + iVar70);
iVar10 = *(int *)(param_1 + uVar7 * 4 + iVar20);
EVar15 = param_1[uVar7 + 4 + iVar14];
if (7 < (int)local_158) {
local_150 = *(EState **)(param_1 + 0x4c);
do {
*(char *)(*(int *)(param_1 + 0x2c) + (int)local_150) = (char)(local_170 >> 0x18);
local_150 = (EState *)(*(int *)(param_1 + 0x4c) + 1);
local_170 = *(int *)(param_1 + 600) << 8;
*(EState **)(param_1 + 0x4c) = local_150;
*(uint *)(param_1 + 600) = local_170;
local_158 = (EState *)(*(int *)(param_1 + 0x25c) + -8);
*(EState **)(param_1 + 0x25c) = local_158;
} while (7 < (int)local_158);
}
local_170 = iVar10 << ((' ' - (char)local_158) - (char)EVar15 & 0x1fU) | local_170;
*(uint *)(param_1 + 600) = local_170;
local_158 = (EState *)((uint)(byte)EVar15 + (int)local_158);
*(EState **)(param_1 + 0x25c) = local_158;
uVar7 = (uint)*(ushort *)(iVar9 + 0x54 + iVar70);
iVar10 = *(int *)(param_1 + uVar7 * 4 + iVar20);
EVar15 = param_1[uVar7 + 4 + iVar14];
if (7 < (int)local_158) {
local_150 = *(EState **)(param_1 + 0x4c);
do {
*(char *)(*(int *)(param_1 + 0x2c) + (int)local_150) = (char)(local_170 >> 0x18);
local_150 = (EState *)(*(int *)(param_1 + 0x4c) + 1);
local_170 = *(int *)(param_1 + 600) << 8;
*(EState **)(param_1 + 0x4c) = local_150;
*(uint *)(param_1 + 600) = local_170;
local_158 = (EState *)(*(int *)(param_1 + 0x25c) + -8);
*(EState **)(param_1 + 0x25c) = local_158;
} while (7 < (int)local_158);
}
local_170 = iVar10 << ((' ' - (char)local_158) - (char)EVar15 & 0x1fU) | local_170;
*(uint *)(param_1 + 600) = local_170;
local_158 = (EState *)((uint)(byte)EVar15 + (int)local_158);
*(EState **)(param_1 + 0x25c) = local_158;
uVar7 = (uint)*(ushort *)(iVar9 + 0x56 + iVar70);
iVar10 = *(int *)(param_1 + uVar7 * 4 + iVar20);
EVar15 = param_1[uVar7 + 4 + iVar14];
if (7 < (int)local_158) {
local_150 = *(EState **)(param_1 + 0x4c);
do {
*(char *)(*(int *)(param_1 + 0x2c) + (int)local_150) = (char)(local_170 >> 0x18);
local_150 = (EState *)(*(int *)(param_1 + 0x4c) + 1);
local_170 = *(int *)(param_1 + 600) << 8;
*(EState **)(param_1 + 0x4c) = local_150;
*(uint *)(param_1 + 600) = local_170;
local_158 = (EState *)(*(int *)(param_1 + 0x25c) + -8);
*(EState **)(param_1 + 0x25c) = local_158;
} while (7 < (int)local_158);
}
local_170 = iVar10 << ((' ' - (char)local_158) - (char)EVar15 & 0x1fU) | local_170;
*(uint *)(param_1 + 600) = local_170;
local_158 = (EState *)((uint)(byte)EVar15 + (int)local_158);
*(EState **)(param_1 + 0x25c) = local_158;
uVar7 = (uint)*(ushort *)(iVar9 + 0x58 + iVar70);
iVar10 = *(int *)(param_1 + uVar7 * 4 + iVar20);
EVar15 = param_1[uVar7 + 4 + iVar14];
if (7 < (int)local_158) {
local_150 = *(EState **)(param_1 + 0x4c);
do {
*(char *)(*(int *)(param_1 + 0x2c) + (int)local_150) = (char)(local_170 >> 0x18);
local_150 = (EState *)(*(int *)(param_1 + 0x4c) + 1);
local_170 = *(int *)(param_1 + 600) << 8;
*(EState **)(param_1 + 0x4c) = local_150;
*(uint *)(param_1 + 600) = local_170;
local_158 = (EState *)(*(int *)(param_1 + 0x25c) + -8);
*(EState **)(param_1 + 0x25c) = local_158;
} while (7 < (int)local_158);
}
local_170 = iVar10 << ((' ' - (char)local_158) - (char)EVar15 & 0x1fU) | local_170;
*(uint *)(param_1 + 600) = local_170;
local_158 = (EState *)((uint)(byte)EVar15 + (int)local_158);
*(EState **)(param_1 + 0x25c) = local_158;
uVar7 = (uint)*(ushort *)(iVar9 + 0x5a + iVar70);
iVar10 = *(int *)(param_1 + uVar7 * 4 + iVar20);
EVar15 = param_1[uVar7 + 4 + iVar14];
if (7 < (int)local_158) {
local_150 = *(EState **)(param_1 + 0x4c);
do {
*(char *)(*(int *)(param_1 + 0x2c) + (int)local_150) = (char)(local_170 >> 0x18);
local_150 = (EState *)(*(int *)(param_1 + 0x4c) + 1);
local_170 = *(int *)(param_1 + 600) << 8;
*(EState **)(param_1 + 0x4c) = local_150;
*(uint *)(param_1 + 600) = local_170;
local_158 = (EState *)(*(int *)(param_1 + 0x25c) + -8);
*(EState **)(param_1 + 0x25c) = local_158;
} while (7 < (int)local_158);
}
local_170 = iVar10 << ((' ' - (char)local_158) - (char)EVar15 & 0x1fU) | local_170;
*(uint *)(param_1 + 600) = local_170;
local_158 = (EState *)((uint)(byte)EVar15 + (int)local_158);
*(EState **)(param_1 + 0x25c) = local_158;
uVar7 = (uint)*(ushort *)(iVar9 + 0x5c + iVar70);
iVar10 = *(int *)(param_1 + uVar7 * 4 + iVar20);
EVar15 = param_1[uVar7 + 4 + iVar14];
if (7 < (int)local_158) {
local_150 = *(EState **)(param_1 + 0x4c);
do {
*(char *)(*(int *)(param_1 + 0x2c) + (int)local_150) = (char)(local_170 >> 0x18);
local_150 = (EState *)(*(int *)(param_1 + 0x4c) + 1);
local_170 = *(int *)(param_1 + 600) << 8;
*(EState **)(param_1 + 0x4c) = local_150;
*(uint *)(param_1 + 600) = local_170;
local_158 = (EState *)(*(int *)(param_1 + 0x25c) + -8);
*(EState **)(param_1 + 0x25c) = local_158;
} while (7 < (int)local_158);
}
local_170 = iVar10 << ((' ' - (char)local_158) - (char)EVar15 & 0x1fU) | local_170;
*(uint *)(param_1 + 600) = local_170;
local_158 = (EState *)((uint)(byte)EVar15 + (int)local_158);
*(EState **)(param_1 + 0x25c) = local_158;
uVar7 = (uint)*(ushort *)(iVar9 + 0x5e + iVar70);
iVar10 = *(int *)(param_1 + uVar7 * 4 + iVar20);
EVar15 = param_1[uVar7 + 4 + iVar14];
if (7 < (int)local_158) {
local_150 = *(EState **)(param_1 + 0x4c);
do {
*(char *)(*(int *)(param_1 + 0x2c) + (int)local_150) = (char)(local_170 >> 0x18);
local_150 = (EState *)(*(int *)(param_1 + 0x4c) + 1);
local_170 = *(int *)(param_1 + 600) << 8;
*(EState **)(param_1 + 0x4c) = local_150;
*(uint *)(param_1 + 600) = local_170;
local_158 = (EState *)(*(int *)(param_1 + 0x25c) + -8);
*(EState **)(param_1 + 0x25c) = local_158;
} while (7 < (int)local_158);
}
local_170 = iVar10 << ((' ' - (char)local_158) - (char)EVar15 & 0x1fU) | local_170;
*(uint *)(param_1 + 600) = local_170;
local_158 = (EState *)((uint)(byte)EVar15 + (int)local_158);
*(EState **)(param_1 + 0x25c) = local_158;
uVar7 = (uint)*(ushort *)(iVar9 + 0x60 + iVar70);
iVar10 = *(int *)(param_1 + uVar7 * 4 + iVar20);
EVar15 = param_1[uVar7 + 4 + iVar14];
if (7 < (int)local_158) {
local_150 = *(EState **)(param_1 + 0x4c);
do {
*(char *)(*(int *)(param_1 + 0x2c) + (int)local_150) = (char)(local_170 >> 0x18);
local_150 = (EState *)(*(int *)(param_1 + 0x4c) + 1);
local_170 = *(int *)(param_1 + 600) << 8;
*(EState **)(param_1 + 0x4c) = local_150;
*(uint *)(param_1 + 600) = local_170;
local_158 = (EState *)(*(int *)(param_1 + 0x25c) + -8);
*(EState **)(param_1 + 0x25c) = local_158;
} while (7 < (int)local_158);
}
local_170 = iVar10 << ((' ' - (char)local_158) - (char)EVar15 & 0x1fU) | local_170;
*(uint *)(param_1 + 600) = local_170;
iVar16 = (uint)(byte)EVar15 + (int)local_158;
*(int *)(param_1 + 0x25c) = iVar16;
uVar7 = (uint)*(ushort *)(iVar9 + 0x62 + iVar70);
iVar10 = *(int *)(param_1 + uVar7 * 4 + iVar20);
EVar15 = param_1[uVar7 + 4 + iVar14];
if (7 < iVar16) {
iVar14 = *(int *)(param_1 + 0x4c);
do {
*(char *)(*(int *)(param_1 + 0x2c) + iVar14) = (char)(local_170 >> 0x18);
iVar16 = *(int *)(param_1 + 0x25c) + -8;
iVar14 = *(int *)(param_1 + 0x4c) + 1;
*(int *)(param_1 + 0x25c) = iVar16;
local_170 = *(int *)(param_1 + 600) << 8;
*(int *)(param_1 + 0x4c) = iVar14;
*(uint *)(param_1 + 600) = local_170;
} while (7 < iVar16);
}
*(uint *)(param_1 + 600) =
iVar10 << ((' ' - (char)iVar16) - (char)EVar15 & 0x1fU) | local_170;
*(uint *)(param_1 + 0x25c) = (uint)(byte)EVar15 + iVar16;
}
else if (iVar10 <= iVar19) {
local_150 = (EState *)(iVar9 + iVar10 * 2);
iVar14 = *(int *)(param_1 + 0x25c);
uVar7 = *(uint *)(param_1 + 600);
do {
iVar10 = *(int *)(param_1 +
(*(ushort *)local_150 + 0x264c +
(uint)(byte)param_1[(int)local_154 + 0x680] * 0x102) * 4);
EVar15 = param_1[*(ushort *)local_150 + 0x9324 +
(uint)(byte)param_1[(int)local_154 + 0x680] * 0x102];
if (7 < iVar14) {
iVar20 = *(int *)(param_1 + 0x4c);
do {
*(char *)(*(int *)(param_1 + 0x2c) + iVar20) = (char)(uVar7 >> 0x18);
iVar20 = *(int *)(param_1 + 0x4c) + 1;
uVar7 = *(int *)(param_1 + 600) << 8;
*(int *)(param_1 + 0x4c) = iVar20;
*(uint *)(param_1 + 600) = uVar7;
iVar14 = *(int *)(param_1 + 0x25c) + -8;
*(int *)(param_1 + 0x25c) = iVar14;
} while (7 < iVar14);
}
local_150 = (EState *)((int)local_150 + 2);
cVar5 = (char)iVar14;
iVar14 = iVar14 + (uint)(byte)EVar15;
*(int *)(param_1 + 0x25c) = iVar14;
uVar7 = iVar10 << ((' ' - cVar5) - (char)EVar15 & 0x1fU) | uVar7;
*(uint *)(param_1 + 600) = uVar7;
} while (local_150 != (EState *)(iVar9 + 2 + iVar19 * 2));
}
local_154 = (EState *)((int)local_154 + 1);
iVar14 = *(int *)(param_1 + 0x274);
iVar10 = iVar19 + 1;
} while (iVar10 < iVar14);
}
if (local_154 != (EState *)local_16c) {
BZ2_bz__AssertH__fail(0xbbf);
}
if (2 < *(int *)(param_1 + 0x268)) {
fprintf(_stderr,"codes %d\n",*(int *)(param_1 + 0x4c) - iVar8);
}
}
if (param_2 != '\0') {
iVar8 = *(int *)(param_1 + 0x25c);
if (iVar8 < 8) {
uVar7 = *(uint *)(param_1 + 600);
}
else {
iVar9 = *(int *)(param_1 + 0x4c);
uVar7 = *(uint *)(param_1 + 600);
do {
*(char *)(*(int *)(param_1 + 0x2c) + iVar9) = (char)(uVar7 >> 0x18);
iVar9 = *(int *)(param_1 + 0x4c) + 1;
uVar7 = *(int *)(param_1 + 600) << 8;
*(int *)(param_1 + 0x4c) = iVar9;
*(uint *)(param_1 + 600) = uVar7;
iVar8 = *(int *)(param_1 + 0x25c) + -8;
*(int *)(param_1 + 0x25c) = iVar8;
} while (7 < iVar8);
}
iVar9 = iVar8 + 8;
*(int *)(param_1 + 0x25c) = iVar9;
uVar7 = 0x17 << (0x18U - (char)iVar8 & 0x1f) | uVar7;
*(uint *)(param_1 + 600) = uVar7;
if (7 < iVar9) {
iVar8 = *(int *)(param_1 + 0x4c);
do {
*(char *)(*(int *)(param_1 + 0x2c) + iVar8) = (char)(uVar7 >> 0x18);
iVar8 = *(int *)(param_1 + 0x4c) + 1;
uVar7 = *(int *)(param_1 + 600) << 8;
*(int *)(param_1 + 0x4c) = iVar8;
*(uint *)(param_1 + 600) = uVar7;
iVar9 = *(int *)(param_1 + 0x25c) + -8;
*(int *)(param_1 + 0x25c) = iVar9;
} while (7 < iVar9);
}
iVar8 = iVar9 + 8;
*(int *)(param_1 + 0x25c) = iVar8;
uVar7 = 0x72 << (0x18U - (char)iVar9 & 0x1f) | uVar7;
*(uint *)(param_1 + 600) = uVar7;
if (7 < iVar8) {
iVar9 = *(int *)(param_1 + 0x4c);
do {
*(char *)(*(int *)(param_1 + 0x2c) + iVar9) = (char)(uVar7 >> 0x18);
iVar9 = *(int *)(param_1 + 0x4c) + 1;
uVar7 = *(int *)(param_1 + 600) << 8;
*(int *)(param_1 + 0x4c) = iVar9;
*(uint *)(param_1 + 600) = uVar7;
iVar8 = *(int *)(param_1 + 0x25c) + -8;
*(int *)(param_1 + 0x25c) = iVar8;
} while (7 < iVar8);
}
iVar9 = iVar8 + 8;
*(int *)(param_1 + 0x25c) = iVar9;
uVar7 = 0x45 << (0x18U - (char)iVar8 & 0x1f) | uVar7;
*(uint *)(param_1 + 600) = uVar7;
if (7 < iVar9) {
iVar8 = *(int *)(param_1 + 0x4c);
do {
*(char *)(*(int *)(param_1 + 0x2c) + iVar8) = (char)(uVar7 >> 0x18);
iVar8 = *(int *)(param_1 + 0x4c) + 1;
uVar7 = *(int *)(param_1 + 600) << 8;
*(int *)(param_1 + 0x4c) = iVar8;
*(uint *)(param_1 + 600) = uVar7;
iVar9 = *(int *)(param_1 + 0x25c) + -8;
*(int *)(param_1 + 0x25c) = iVar9;
} while (7 < iVar9);
}
iVar8 = iVar9 + 8;
*(int *)(param_1 + 0x25c) = iVar8;
uVar7 = 0x38 << (0x18U - (char)iVar9 & 0x1f) | uVar7;
*(uint *)(param_1 + 600) = uVar7;
if (7 < iVar8) {
iVar9 = *(int *)(param_1 + 0x4c);
do {
*(char *)(*(int *)(param_1 + 0x2c) + iVar9) = (char)(uVar7 >> 0x18);
iVar9 = *(int *)(param_1 + 0x4c) + 1;
uVar7 = *(int *)(param_1 + 600) << 8;
*(int *)(param_1 + 0x4c) = iVar9;
*(uint *)(param_1 + 600) = uVar7;
iVar8 = *(int *)(param_1 + 0x25c) + -8;
*(int *)(param_1 + 0x25c) = iVar8;
} while (7 < iVar8);
}
iVar9 = iVar8 + 8;
*(int *)(param_1 + 0x25c) = iVar9;
uVar7 = 0x50 << (0x18U - (char)iVar8 & 0x1f) | uVar7;
*(uint *)(param_1 + 600) = uVar7;
if (7 < iVar9) {
iVar8 = *(int *)(param_1 + 0x4c);
do {
*(char *)(*(int *)(param_1 + 0x2c) + iVar8) = (char)(uVar7 >> 0x18);
iVar8 = *(int *)(param_1 + 0x4c) + 1;
uVar7 = *(int *)(param_1 + 600) << 8;
*(int *)(param_1 + 0x4c) = iVar8;
*(uint *)(param_1 + 600) = uVar7;
iVar9 = *(int *)(param_1 + 0x25c) + -8;
*(int *)(param_1 + 0x25c) = iVar9;
} while (7 < iVar9);
}
*(int *)(param_1 + 0x25c) = iVar9 + 8;
*(uint *)(param_1 + 600) = 0x90 << (0x18U - (char)iVar9 & 0x1f) | uVar7;
bsPutUInt32(param_1,*(uint *)(param_1 + 0x264));
if (1 < *(int *)(param_1 + 0x268)) {
fprintf(_stderr," final combined CRC = 0x%x\n ",*(undefined4 *)(param_1 + 0x264));
}
if (0 < *(int *)(param_1 + 0x25c)) {
iVar8 = *(int *)(param_1 + 0x4c);
iVar9 = *(int *)(param_1 + 600);
do {
*(char *)(*(int *)(param_1 + 0x2c) + iVar8) = (char)((uint)iVar9 >> 0x18);
iVar14 = *(int *)(param_1 + 0x25c);
iVar8 = *(int *)(param_1 + 0x4c) + 1;
*(int *)(param_1 + 0x4c) = iVar8;
*(int *)(param_1 + 0x25c) = iVar14 + -8;
iVar9 = *(int *)(param_1 + 600) << 8;
*(int *)(param_1 + 600) = iVar9;
} while (0 < iVar14 + -8);
}
}
if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {
/* WARNING: Subroutine does not return */
__stack_chk_fail();
}
return;
}
SourceMod gamedata
paste intoaddons/sourcemod/gamedata/<your_plugin>.txt
used as the SourceMod key — change to fit your plugin's convention
SourceMod library name (server / engine / matchmaking)
Just a Signatures{} block, ready to drop into a gamedata
file. Wire it up in your plugin however you like - SDKCall, DHooks,
raw memory ops, or anything else.
Signatures + Functions block. The plugin uses
DHookCreateFromConf - DHooks reads return type, this-type,
calling convention, and argument types straight from the gamedata. Less
boilerplate in the plugin, types travel with the gamedata.
Gamedata KeyValues
DHooks plugin example
Type inference is best-effort from the C signature - sanity-check the DHooks types before shipping.