server-re/decomp/MessageServer_Release_x64/full/functions/0x14000d8c0.c

97 lines
2.6 KiB
C

/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1
* Ghidra 12.1.2 decompiler output for 0x14000d8c0 FUN_14000d8c0
* Pseudocode, not original source. */
void FUN_14000d8c0(int *param_1,byte *param_2,int param_3)
{
byte bVar1;
byte bVar2;
int iVar3;
byte *pbVar4;
byte *pbVar5;
int iVar6;
int iVar7;
int iVar8;
iVar3 = param_1[4];
if (0 < iVar3) {
iVar8 = *param_1;
iVar7 = param_1[1];
pbVar5 = *(byte **)(param_1 + 2);
joined_r0x00014000d8f8:
pbVar4 = pbVar5;
if (pbVar4 < param_2) {
bVar1 = *pbVar4;
if (bVar1 == 0) {
return;
}
if (bVar1 == 9) {
iVar7 = (iVar7 / iVar3 + 1) * iVar3;
pbVar5 = pbVar4 + 1;
}
else {
if (bVar1 != 10) {
if (bVar1 == 0xd) {
iVar8 = iVar8 + 1;
iVar7 = 0;
pbVar5 = pbVar4 + 1;
if (pbVar4[1] == 10) {
pbVar5 = pbVar4 + 2;
}
goto joined_r0x00014000d8f8;
}
if (bVar1 == 0xef) {
if (param_3 == 1) {
bVar1 = pbVar4[1];
pbVar5 = pbVar4;
if ((bVar1 != 0) && (bVar2 = pbVar4[2], bVar2 != 0)) {
if ((bVar1 != 0xbb) || (bVar2 != 0xbf)) {
if (bVar1 == 0xbf) {
if (bVar2 == 0xbe) {
pbVar5 = pbVar4 + 3;
goto joined_r0x00014000d8f8;
}
if (bVar2 == 0xbf) {
pbVar5 = pbVar4 + 3;
goto joined_r0x00014000d8f8;
}
}
iVar7 = iVar7 + 1;
pbVar5 = pbVar4 + 3;
goto joined_r0x00014000d8f8;
}
pbVar5 = pbVar4 + 3;
}
goto joined_r0x00014000d8f8;
}
}
else if (param_3 == 1) {
iVar6 = *(int *)(&DAT_14015b8d0 + (ulonglong)bVar1 * 4);
if (iVar6 == 0) {
iVar6 = 1;
}
iVar7 = iVar7 + 1;
pbVar5 = pbVar4 + iVar6;
goto joined_r0x00014000d8f8;
}
iVar7 = iVar7 + 1;
pbVar5 = pbVar4 + 1;
goto joined_r0x00014000d8f8;
}
iVar8 = iVar8 + 1;
iVar7 = 0;
pbVar5 = pbVar4 + 1;
if (pbVar4[1] == 0xd) {
pbVar5 = pbVar4 + 2;
}
}
goto joined_r0x00014000d8f8;
}
*param_1 = iVar8;
param_1[1] = iVar7;
*(byte **)(param_1 + 2) = pbVar4;
}
return;
}