void zz_80024d90_(undefined4 param_1,undefined4 param_2,int *param_3)
{
char cVar1;
int *piVar2;
char *pcVar3;
uint uVar4;
undefined4 uVar5;
int iVar6;
undefined4 uVar7;
char *pcVar8;
char *pcVar9;
int *piVar10;
int *piVar11;
int *piVar12;
int *piVar13;
char *pcVar14;
int iVar15;
undefined8 uVar16;
int local_58;
int local_54;
char local_50 [40];
undefined4 local_28;
undefined4 local_24;
uVar16 = zz_80033960_();
uVar5 = (undefined4)((ulonglong)uVar16 >> 0x20);
pcVar8 = (char *)uVar16;
zz_803f89c0_(uVar5,&local_54);
iVar6 = zz_803f8e30_(local_50,local_54);
if (iVar6 == 0) {
printf(s_ghstchal:_couldn't_get_friend_in_80479255);
uVar7 = 0;
}
else {
uVar4 = countLeadingZeros(local_54 + 2);
printf(s_ghstchal:_replay_from_%s_8047930e,local_50);
uVar7 = 0;
iVar6 = zz_803f8880_(uVar5,DAT_805a1ac4,0x10b04);
if (iVar6 == 0) {
printf(s_ghstchal:_can't_get_attachment_804792c1);
}
else {
local_58 = 0x10af4;
iVar6 = zz_80178210_(DAT_805a1ac0,&local_58,DAT_805a1ac4,0x10b04);
if (iVar6 == 0) {
printf(s_ghstchal:_can't_uncompress_804792a6);
}
else {
if (((local_58 == 0x10af4) && (*DAT_805a1ac0 == 0x5265706c)) && (DAT_805a1ac0[1] == 0xd)) {
iVar15 = DAT_805a1ac0[0x7e];
iVar6 = zz_800193b0_();
piVar2 = DAT_805a1ac0;
if (iVar15 < iVar6) {
if (pcVar8 != (char *)0x0) {
pcVar9 = local_50;
iVar6 = 0x18;
pcVar3 = pcVar8;
do {
pcVar14 = pcVar3;
cVar1 = *pcVar9;
pcVar9 = pcVar9 + 1;
*pcVar14 = cVar1;
if (cVar1 == '\0') goto LAB_80024f0c;
iVar6 = iVar6 + -1;
pcVar3 = pcVar14 + 1;
} while (0 < iVar6);
*pcVar14 = '\0';
LAB_80024f0c:
*(undefined4 *)(pcVar8 + 0x1c) = local_24;
*(undefined4 *)(pcVar8 + 0x18) = local_28;
*(int *)(pcVar8 + 100) = piVar2[0x7c];
if ((uVar4 >> 5 != 0) && (iVar6 = zz_800176b0_(), -1 < iVar6)) {
uVar7 = zz_800174d0_();
zz_80176e60_(pcVar8,0x18,s_\ALT%s\ALT_804790d0,uVar7);
}
*(int *)(pcVar8 + 0x70) = piVar2[0x7e];
*(int *)(pcVar8 + 0x74) = piVar2[0x7f];
*(int *)(pcVar8 + 0x68) = piVar2[0x307];
*(int *)(pcVar8 + 0x6c) = piVar2[0x309];
*(int *)(pcVar8 + 0x78) = piVar2[0x42bc];
FUN_80170e50(pcVar8 + 0x20,0x44,piVar2 + 2);
zz_803f8b40_(uVar5,pcVar8 + 0x7c);
}
piVar2 = DAT_805a1ac0;
if (param_3 != (int *)0x0) {
piVar11 = DAT_805a1ac0 + 1;
*param_3 = *DAT_805a1ac0;
param_3[1] = piVar2[1];
iVar6 = 8;
piVar13 = param_3 + 1;
do {
piVar12 = piVar13;
piVar10 = piVar11;
iVar15 = piVar10[2];
piVar12[1] = piVar10[1];
piVar12[2] = iVar15;
iVar6 = iVar6 + -1;
piVar11 = piVar10 + 2;
piVar13 = piVar12 + 2;
} while (iVar6 != 0);
piVar12[3] = piVar10[3];
piVar13 = param_3 + 0x12;
piVar11 = piVar2 + 0x12;
iVar6 = 0x37;
do {
piVar10 = piVar11 + 1;
piVar11 = piVar11 + 2;
iVar15 = *piVar11;
piVar13[1] = *piVar10;
piVar13 = piVar13 + 2;
*piVar13 = iVar15;
iVar6 = iVar6 + -1;
} while (iVar6 != 0);
piVar13 = param_3 + 0x80;
piVar11 = piVar2 + 0x80;
iVar6 = 0x143;
do {
piVar10 = piVar11 + 1;
piVar11 = piVar11 + 2;
iVar15 = *piVar11;
piVar13[1] = *piVar10;
piVar13 = piVar13 + 2;
*piVar13 = iVar15;
iVar6 = iVar6 + -1;
} while (iVar6 != 0);
iVar6 = piVar2[0x307];
param_3[0x308] = piVar2[0x308];
param_3[0x307] = iVar6;
param_3[0x309] = piVar2[0x309];
iVar6 = 0x34;
piVar11 = piVar2 + 0x309;
piVar13 = param_3 + 0x309;
do {
piVar12 = piVar13;
piVar10 = piVar11;
iVar15 = piVar10[2];
piVar12[1] = piVar10[1];
piVar12[2] = iVar15;
iVar6 = iVar6 + -1;
piVar11 = piVar10 + 2;
piVar13 = piVar12 + 2;
} while (iVar6 != 0);
piVar12[3] = piVar10[3];
piVar13 = param_3 + 0x373;
piVar11 = piVar2 + 0x373;
param_3[0x373] = piVar2[0x373];
iVar6 = 0x1fa4;
do {
piVar10 = piVar11 + 1;
piVar11 = piVar11 + 2;
iVar15 = *piVar11;
piVar13[1] = *piVar10;
piVar13 = piVar13 + 2;
*piVar13 = iVar15;
iVar6 = iVar6 + -1;
} while (iVar6 != 0);
param_3[0x42bc] = piVar2[0x42bc];
}
uVar7 = 1;
}
else {
printf(s_ghstchal:_out_of_range_response_c_804792e0,iVar15);
}
}
else {
printf(s_ghstchal:_bad_version_80479290);
}
}
}
}
zz_800339ac_(uVar7);
return;
}
Comments
0 B
|👍
/👎