Navigation Menu

Skip to content

Instantly share code, notes, and snippets.

@Francesco149
Created November 27, 2019 00:41
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Francesco149/6287a96740fb6dab44983aedf7f5e88c to your computer and use it in GitHub Desktop.
Save Francesco149/6287a96740fb6dab44983aedf7f5e88c to your computer and use it in GitHub Desktop.
void BattleResultRequest$$beginRequest
(undefined4 requestBase,undefined4 __unused,uint battleEntityPrimaryKey1,
int battleEntityPrimaryKey2,uint battleResult,undefined4 winResult,undefined4 scores,
undefined4 action,Array *voicePlayedList,Array *aliveEnemys,
Array_RaidResult_ *raidResult,Array_SuperBossResult_ *superBossResult,
undefined4 elapsedTurn,undefined4 usedTurnList,undefined4 recordType,
undefined4 recordValueJson,int tdPlayed,undefined4 usedEquipSkillList)
{
int iVar1;
undefined4 crcData;
uint uVar2;
undefined4 uVar3;
uint extraout_r1;
uint extraout_r1_00;
uint extraout_r1_01;
uint extraout_r1_02;
int iVar4;
uint uVar5;
uint uVar6;
uint uVar7;
SuperBossResult *pSVar8;
int *piVar9;
uint superBossCrc;
uint raidResultCrc1;
RaidResult *raidResultItem;
uint aliveUniqueIdsCrc1;
uint uVar10;
String *s;
int superBossCrc2;
int aliveUniqueIdsCrc2;
bool bVar11;
undefined8 userId;
int raidResultCrc2;
undefined4 local_40;
undefined4 local_3c;
undefined4 local_38;
uint local_34;
uint battleStatus;
int local_2c;
if (DAT_027ec620 == '\0') {
FUN_003479b0(0x169d);
DAT_027ec620 = '\x01';
}
iVar1 = thunk_FUN_00382384(Class$Dictionary_string_-object_);
FUN_006e8278(iVar1,Method$Dictionary_string_-object_..ctor());
battleStatus = battleEntityPrimaryKey1;
local_2c = battleEntityPrimaryKey2;
crcData = FUN_00381f7c(Class$long,&battleStatus);
if (iVar1 == 0) {
throwNullPointer(0);
}
FUN_006eabe0(iVar1,"battleId",crcData,Method$Dictionary_string_-object_.Add());
local_34 = battleResult;
crcData = FUN_00381f7c(Class$int,&local_34);
if (iVar1 == 0) {
throwNullPointer(0);
}
FUN_006eabe0(iVar1,"battleResult",crcData,Method$Dictionary_string_-object_.Add());
local_38 = winResult;
crcData = FUN_00381f7c(Class$int,&local_38);
if (iVar1 == 0) {
throwNullPointer(0);
FUN_006eabe0(0,"winResult",crcData,Method$Dictionary_string_-object_.Add());
throwNullPointer(0);
}
else {
FUN_006eabe0(iVar1,"winResult",crcData,Method$Dictionary_string_-object_.Add());
}
FUN_006eabe0(iVar1,"scores",scores,Method$Dictionary_string_-object_.Add());
if (iVar1 == 0) {
throwNullPointer(0);
}
FUN_006eabe0(iVar1,"action",action,Method$Dictionary_string_-object_.Add());
if (((*(byte *)(Class$JsonManager + 0xbf) & 2) != 0) && (*(int *)(Class$JsonManager + 0x70) == 0))
{
FUN_0035803c();
}
crcData = JsonManager$$toJson(raidResult,0);
if (iVar1 == 0) {
throwNullPointer(0);
}
FUN_006eabe0(iVar1,"raidResult",crcData,Method$Dictionary_string_-object_.Add());
crcData = JsonManager$$toJson(superBossResult,0);
if (iVar1 == 0) {
throwNullPointer(0);
}
FUN_006eabe0(iVar1,"superBossResult",crcData,Method$Dictionary_string_-object_.Add());
local_3c = elapsedTurn;
crcData = FUN_00381f7c(Class$int,&local_3c);
if (iVar1 == 0) {
throwNullPointer(0);
}
FUN_006eabe0(iVar1,"elapsedTurn",crcData,Method$Dictionary_string_-object_.Add());
local_40 = recordType;
crcData = FUN_00381f7c(Class$int,&local_40);
if (iVar1 == 0) {
throwNullPointer(0);
FUN_006eabe0(0,"recordType",crcData,Method$Dictionary_string_-object_.Add());
throwNullPointer(0);
}
else {
FUN_006eabe0(iVar1,"recordType",crcData,Method$Dictionary_string_-object_.Add());
}
FUN_006eabe0(iVar1,"recordValueJson",recordValueJson,Method$Dictionary_string_-object_.Add());
if (tdPlayed == 0) {
throwNullPointer(0);
}
crcData = List$$ToArray(tdPlayed,Method$List_Dictionary_string_-object__.ToArray());
crcData = JsonManager$$toJson(crcData,0);
if (iVar1 == 0) {
throwNullPointer(0);
FUN_006eabe0(0,"tdPlayed",crcData,Method$Dictionary_string_-object_.Add());
throwNullPointer(0);
}
else {
FUN_006eabe0(iVar1,"tdPlayed",crcData,Method$Dictionary_string_-object_.Add());
}
FUN_006eabe0(iVar1,"usedEquipSkillList",usedEquipSkillList,Method$Dictionary_string_-object_.Add()
);
superBossCrc = 0;
raidResultCrc1 = 0;
raidResultCrc2 = 0;
uVar10 = extraout_r1;
while( true ) {
if (raidResult == (Array_RaidResult_ *)0x0) {
throwNullPointer(0);
uVar10 = extraout_r1_00;
}
if (raidResult->length <= (int)superBossCrc) break;
if ((uint)raidResult->length <= superBossCrc) {
crcData = IndexOutOfRangeException();
throw(crcData,0,0);
}
raidResultItem = raidResult->data[superBossCrc];
if (raidResultItem == (RaidResult *)0x0) {
throwNullPointer(0);
}
superBossCrc = superBossCrc + 1;
aliveUniqueIdsCrc1 = *(uint *)&raidResultItem->field_0x8;
uVar10 = *(uint *)&raidResultItem->field_0xc;
uVar2 = *(uint *)&raidResultItem->field_0x10;
uVar5 = raidResultCrc1 + uVar2 + uVar10;
uVar10 = raidResultCrc2 + ((int)uVar2 >> 0x1f) + (uint)CARRY4(raidResultCrc1,uVar2) +
((int)uVar10 >> 0x1f) + (uint)CARRY4(raidResultCrc1 + uVar2,uVar10);
raidResultCrc1 = uVar5 + aliveUniqueIdsCrc1;
raidResultCrc2 =
uVar10 + ((int)aliveUniqueIdsCrc1 >> 0x1f) + (uint)CARRY4(uVar5,aliveUniqueIdsCrc1);
}
aliveUniqueIdsCrc1 = 0;
superBossCrc = 0;
superBossCrc2 = 0;
while( true ) {
if (superBossResult == (Array_SuperBossResult_ *)0x0) {
throwNullPointer(0,uVar10);
uVar10 = extraout_r1_02;
}
if (superBossResult->length <= (int)aliveUniqueIdsCrc1) break;
if ((uint)superBossResult->length <= aliveUniqueIdsCrc1) {
crcData = IndexOutOfRangeException();
throw(crcData,0,0);
uVar10 = extraout_r1_01;
}
pSVar8 = superBossResult->data[aliveUniqueIdsCrc1];
if (pSVar8 == (SuperBossResult *)0x0) {
throwNullPointer(0,uVar10);
}
aliveUniqueIdsCrc1 = aliveUniqueIdsCrc1 + 1;
uVar2 = *(uint *)&pSVar8->field_0x8;
uVar10 = *(uint *)&pSVar8->field_0xc;
uVar5 = *(uint *)&pSVar8->field_0x10;
bVar11 = CARRY4(superBossCrc,uVar5);
uVar6 = superBossCrc + uVar5;
uVar7 = uVar6 + uVar2;
superBossCrc = uVar7 + uVar10;
superBossCrc2 =
superBossCrc2 + ((int)uVar5 >> 0x1f) + (uint)bVar11 +
((int)uVar2 >> 0x1f) + (uint)CARRY4(uVar6,uVar2) +
((int)uVar10 >> 0x1f) + (uint)CARRY4(uVar7,uVar10);
}
if (iVar1 == 0) {
throwNullPointer(0,uVar10);
}
FUN_006eabe0(iVar1,"aliveUniqueIds",aliveEnemys,Method$Dictionary_string_-object_.Add());
uVar10 = 0;
aliveUniqueIdsCrc1 = 0;
aliveUniqueIdsCrc2 = 0;
while( true ) {
if (aliveEnemys == (Array *)0x0) {
throwNullPointer(0);
}
if (aliveEnemys->length <= (int)uVar10) break;
if ((uint)aliveEnemys->length <= uVar10) {
crcData = IndexOutOfRangeException();
throw(crcData,0,0);
}
uVar2 = *(uint *)(aliveEnemys->data + uVar10 * 4);
uVar10 = uVar10 + 1;
bVar11 = CARRY4(aliveUniqueIdsCrc1,uVar2);
aliveUniqueIdsCrc1 = aliveUniqueIdsCrc1 + uVar2;
aliveUniqueIdsCrc2 = aliveUniqueIdsCrc2 + ((int)uVar2 >> 0x1f) + (uint)bVar11;
}
if (((Class$NetworkManager->field_0xbf & 2) != 0) && (Class$NetworkManager->field_0x70 == 0)) {
FUN_0035803c();
}
userId = NetworkManager$$get_UserId(0);
uVar10 = (uint)((ulonglong)userId >> 0x20);
if (((*(byte *)(Class$System.BitConverter + 0xbf) & 2) != 0) &&
(*(int *)(Class$System.BitConverter + 0x70) == 0)) {
FUN_0035803c();
}
crcData = BitConverter$$GetBytes
(uVar10 + battleResult,
(int)userId + ((int)battleResult >> 0x1f) + (uint)CARRY4(uVar10,battleResult)
,0);
uVar3 = BitConverter$$GetBytes
(raidResultCrc1 - 0x408fd5,raidResultCrc2 - (uint)(raidResultCrc1 < 0x408fd5),0)
;
crcData = FUN_015e2484(crcData,uVar3,Method$Enumerable.Concat()_byte_);
iVar4 = aliveUniqueIdsCrc2 + (uint)CARRY4(aliveUniqueIdsCrc1,-(aliveUniqueIdsCrc2 >> 0x1f));
uVar3 = BitConverter$$GetBytes
((uint)((byte)iVar4 & 1) << 0x1f |
aliveUniqueIdsCrc1 + -(aliveUniqueIdsCrc2 >> 0x1f) >> 1,iVar4 >> 1,0);
crcData = FUN_015e2484(crcData,uVar3,Method$Enumerable.Concat()_byte_);
uVar3 = BitConverter$$GetBytes
(battleEntityPrimaryKey1 + 0x80000001,
battleEntityPrimaryKey2 - (uint)(battleEntityPrimaryKey1 < 0x7fffffff),0);
crcData = FUN_015e2484(crcData,uVar3,Method$Enumerable.Concat()_byte_);
uVar3 = BitConverter$$GetBytes
(superBossCrc - 0x25acf6,superBossCrc2 - (uint)(superBossCrc < 0x25acf6),0);
crcData = FUN_015e2484(crcData,uVar3,Method$Enumerable.Concat()_byte_);
crcData = FUN_0174f6e4(crcData,Method$Enumerable.ToArray()_byte_);
if (((*(byte *)(Class$Crc32 + 0xbf) & 2) != 0) && (*(int *)(Class$Crc32 + 0x70) == 0)) {
FUN_0035803c();
}
battleStatus = Crc32$$Compute(crcData,0);
crcData = FUN_00381f7c(Class$uint,&battleStatus);
if (iVar1 == 0) {
throwNullPointer(0);
}
FUN_006eabe0(iVar1,"battleStatus",crcData,Method$Dictionary_string_-object_.Add());
if (voicePlayedList != (Array *)0x0) {
if (((Class$string->field_0xbf & 2) != 0) && (Class$string->field_0x70 == 0)) {
FUN_0035803c();
}
uVar10 = voicePlayedList->length;
s = Class$string->staticData->empty;
if (0 < (int)uVar10) {
superBossCrc = 0;
do {
if (uVar10 <= superBossCrc) {
crcData = IndexOutOfRangeException();
throw(crcData,0,0);
}
superBossCrc2 = *(int *)(voicePlayedList->data + superBossCrc * 4);
if ((superBossCrc2 != 0) && (*(int *)(superBossCrc2 + 0xc) == 2)) {
if (((Class$string->field_0xbf & 2) != 0) && (Class$string->field_0x70 == 0)) {
FUN_0035803c();
}
aliveUniqueIdsCrc2 = String$$IsNullOrEmpty(s);
if (aliveUniqueIdsCrc2 == 1) {
piVar9 = (int *)InstantiateArray(Class$object[],5);
if (piVar9 == (int *)0x0) {
throwNullPointer(0);
}
if (("[" != (String *)0x0) &&
(aliveUniqueIdsCrc2 = FUN_003822bc("[",*(undefined4 *)(*piVar9 + 0x20)),
aliveUniqueIdsCrc2 == 0)) {
crcData = FUN_00374a74();
throw(crcData,0,0);
}
s = "[";
if (piVar9[3] == 0) {
crcData = IndexOutOfRangeException();
throw(crcData,0,0);
}
*(String **)(piVar9 + 4) = s;
if (*(int *)(superBossCrc2 + 0xc) == 0) {
crcData = IndexOutOfRangeException();
throw(crcData,0,0);
}
battleStatus = *(uint *)(superBossCrc2 + 0x10);
s = (String *)FUN_00381f7c(Class$int,&battleStatus);
if ((s != (String *)0x0) &&
(aliveUniqueIdsCrc2 = FUN_003822bc(s,*(undefined4 *)(*piVar9 + 0x20)),
aliveUniqueIdsCrc2 == 0)) {
crcData = FUN_00374a74();
throw(crcData,0,0);
}
if ((uint)piVar9[3] < 2) {
crcData = IndexOutOfRangeException();
throw(crcData,0,0);
}
*(String **)(piVar9 + 5) = s;
if (("," != (String *)0x0) &&
(aliveUniqueIdsCrc2 = FUN_003822bc(",",*(undefined4 *)(*piVar9 + 0x20)),
aliveUniqueIdsCrc2 == 0)) {
crcData = FUN_00374a74();
throw(crcData,0,0);
}
s = ",";
if ((uint)piVar9[3] < 3) {
crcData = IndexOutOfRangeException();
throw(crcData,0,0);
}
*(String **)(piVar9 + 6) = s;
if (*(uint *)(superBossCrc2 + 0xc) < 2) {
crcData = IndexOutOfRangeException();
throw(crcData,0,0);
}
local_34 = *(uint *)(superBossCrc2 + 0x14);
s = (String *)FUN_00381f7c(Class$int,&local_34);
if ((s != (String *)0x0) &&
(superBossCrc2 = FUN_003822bc(s,*(undefined4 *)(*piVar9 + 0x20)), superBossCrc2 == 0)
) {
crcData = FUN_00374a74();
throw(crcData,0,0);
}
if ((uint)piVar9[3] < 4) {
crcData = IndexOutOfRangeException();
throw(crcData,0,0);
}
*(String **)(piVar9 + 7) = s;
if (("]" != (String *)0x0) &&
(superBossCrc2 = FUN_003822bc("]",*(undefined4 *)(*piVar9 + 0x20)),
superBossCrc2 == 0)) {
crcData = FUN_00374a74();
throw(crcData,0,0);
}
s = "]";
if ((uint)piVar9[3] < 5) {
crcData = IndexOutOfRangeException();
throw(crcData,0,0);
}
*(String **)(piVar9 + 8) = s;
}
else {
piVar9 = (int *)InstantiateArray(Class$object[],6);
if (piVar9 == (int *)0x0) {
throwNullPointer(0);
}
if ((s != (String *)0x0) &&
(aliveUniqueIdsCrc2 = FUN_003822bc(s,*(undefined4 *)(*piVar9 + 0x20)),
aliveUniqueIdsCrc2 == 0)) {
crcData = FUN_00374a74();
throw(crcData,0,0);
}
if (piVar9[3] == 0) {
crcData = IndexOutOfRangeException();
throw(crcData,0,0);
}
*(String **)(piVar9 + 4) = s;
if ((",[" != (String *)0x0) &&
(aliveUniqueIdsCrc2 = FUN_003822bc(",[",*(undefined4 *)(*piVar9 + 0x20)),
aliveUniqueIdsCrc2 == 0)) {
crcData = FUN_00374a74();
throw(crcData,0,0);
}
s = ",[";
if ((uint)piVar9[3] < 2) {
crcData = IndexOutOfRangeException();
throw(crcData,0,0);
}
*(String **)(piVar9 + 5) = s;
if (*(int *)(superBossCrc2 + 0xc) == 0) {
crcData = IndexOutOfRangeException();
throw(crcData,0,0);
}
battleStatus = *(uint *)(superBossCrc2 + 0x10);
s = (String *)FUN_00381f7c(Class$int,&battleStatus);
if ((s != (String *)0x0) &&
(aliveUniqueIdsCrc2 = FUN_003822bc(s,*(undefined4 *)(*piVar9 + 0x20)),
aliveUniqueIdsCrc2 == 0)) {
crcData = FUN_00374a74();
throw(crcData,0,0);
}
if ((uint)piVar9[3] < 3) {
crcData = IndexOutOfRangeException();
throw(crcData,0,0);
}
*(String **)(piVar9 + 6) = s;
if (("," != (String *)0x0) &&
(aliveUniqueIdsCrc2 = FUN_003822bc(",",*(undefined4 *)(*piVar9 + 0x20)),
aliveUniqueIdsCrc2 == 0)) {
crcData = FUN_00374a74();
throw(crcData,0,0);
}
s = ",";
if ((uint)piVar9[3] < 4) {
crcData = IndexOutOfRangeException();
throw(crcData,0,0);
}
*(String **)(piVar9 + 7) = s;
if (*(uint *)(superBossCrc2 + 0xc) < 2) {
crcData = IndexOutOfRangeException();
throw(crcData,0,0);
}
local_34 = *(uint *)(superBossCrc2 + 0x14);
s = (String *)FUN_00381f7c(Class$int,&local_34);
if ((s != (String *)0x0) &&
(superBossCrc2 = FUN_003822bc(s,*(undefined4 *)(*piVar9 + 0x20)), superBossCrc2 == 0)
) {
crcData = FUN_00374a74();
throw(crcData,0,0);
}
if ((uint)piVar9[3] < 5) {
crcData = IndexOutOfRangeException();
throw(crcData,0,0);
}
*(String **)(piVar9 + 8) = s;
if (("]" != (String *)0x0) &&
(superBossCrc2 = FUN_003822bc("]",*(undefined4 *)(*piVar9 + 0x20)),
superBossCrc2 == 0)) {
crcData = FUN_00374a74();
throw(crcData,0,0);
}
s = "]";
if ((uint)piVar9[3] < 6) {
crcData = IndexOutOfRangeException();
throw(crcData,0,0);
}
*(String **)(piVar9 + 9) = s;
}
if (((Class$string->field_0xbf & 2) != 0) && (Class$string->field_0x70 == 0)) {
FUN_0035803c();
}
s = (String *)String$$Concat(piVar9,0);
}
uVar10 = voicePlayedList->length;
superBossCrc = superBossCrc + 1;
} while ((int)superBossCrc < (int)uVar10);
}
if (((Class$string->field_0xbf & 2) != 0) && (Class$string->field_0x70 == 0)) {
FUN_0035803c();
}
crcData = String$$Concat("[",s,"]",0);
if (iVar1 == 0) {
throwNullPointer(0);
}
FUN_006eabe0(iVar1,"voicePlayedList",crcData,Method$Dictionary_string_-object_.Add());
}
if (iVar1 == 0) {
throwNullPointer(0);
}
FUN_006eabe0(iVar1,"usedTurnList",usedTurnList,Method$Dictionary_string_-object_.Add());
if (((*(byte *)(Class$JsonManager + 0xbf) & 2) != 0) && (*(int *)(Class$JsonManager + 0x70) == 0))
{
FUN_0035803c();
}
crcData = JsonManager$$toJson(iVar1,0);
if (((Class$CatAndMouseGame->field_0xbf & 2) != 0) && (Class$CatAndMouseGame->field_0x70 == 0)) {
FUN_0035803c();
}
crcData = CatAndMouseGame$$CatGame5(crcData,0);
RequestBase$$addField(requestBase,"result",crcData,0);
RequestBase$$beginRequest(requestBase,0);
return;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment