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

71 lines
2.4 KiB
C

/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1
* Ghidra 12.1.2 decompiler output for 0x14007a880 FUN_14007a880
* Pseudocode, not original source. */
ulonglong FUN_14007a880(longlong param_1,int param_2)
{
undefined2 uVar1;
undefined2 uVar2;
undefined4 uVar3;
undefined4 uVar4;
int *piVar5;
longlong lVar6;
int *piVar7;
ulonglong uVar8;
ulonglong uVar9;
ulonglong uVar10;
ulonglong uVar11;
uVar8 = 0;
piVar5 = (int *)(param_1 + 0x70);
uVar9 = uVar8;
uVar10 = uVar8;
do {
if (*piVar5 == param_2) {
lVar6 = (longlong)(int)uVar10;
uVar3 = *(undefined4 *)(param_1 + 0x90 + lVar6 * 0x48);
uVar1 = *(undefined2 *)(param_1 + 0x94 + lVar6 * 0x48);
uVar4 = *(undefined4 *)(param_1 + 0x80 + lVar6 * 0x48);
uVar2 = *(undefined2 *)(param_1 + 0x84 + lVar6 * 0x48);
piVar5 = (int *)(param_1 + 0x10);
piVar7 = piVar5;
uVar9 = uVar8;
uVar10 = uVar8;
do {
if (*piVar7 == param_2) {
lVar6 = (longlong)(int)uVar10;
*(undefined4 *)(param_1 + 0x30 + lVar6 * 0x30) = uVar4;
*(undefined2 *)(param_1 + 0x34 + lVar6 * 0x30) = uVar2;
*(undefined2 *)(param_1 + 0x24 + lVar6 * 0x30) = uVar1;
*(undefined4 *)(param_1 + 0x20 + lVar6 * 0x30) = uVar3;
return CONCAT71((int7)(int3)(uVar10 >> 8),1);
}
uVar9 = uVar9 + 1;
uVar10 = (ulonglong)((int)uVar10 + 1);
piVar7 = piVar7 + 0xc;
uVar11 = uVar8;
} while ((longlong)uVar9 < 2);
do {
if (*piVar5 == 0) {
lVar6 = (longlong)(int)uVar11;
*(undefined4 *)(param_1 + 0x30 + lVar6 * 0x30) = uVar4;
*(undefined2 *)(param_1 + 0x34 + lVar6 * 0x30) = uVar2;
*(undefined2 *)(param_1 + 0x24 + lVar6 * 0x30) = uVar1;
*(undefined4 *)(param_1 + 0x20 + lVar6 * 0x30) = uVar3;
*(int *)(param_1 + 0x10 + lVar6 * 0x30) = param_2;
return CONCAT71((int7)(int3)(uVar11 >> 8),1);
}
uVar8 = uVar8 + 1;
piVar5 = piVar5 + 0xc;
uVar11 = (ulonglong)((int)uVar11 + 1);
} while ((longlong)uVar8 < 2);
return CONCAT71((int7)(uVar8 >> 8),1);
}
uVar9 = uVar9 + 1;
uVar10 = (ulonglong)((int)uVar10 + 1);
piVar5 = piVar5 + 0x12;
} while ((longlong)uVar9 < 2);
return (ulonglong)piVar5 & 0xffffffffffffff00;
}