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

40 lines
1.2 KiB
C

/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1
* Ghidra 12.1.2 decompiler output for 0x1400ddee0 FUN_1400ddee0
* Pseudocode, not original source. */
ulonglong FUN_1400ddee0(longlong param_1,int param_2,undefined8 param_3,int param_4)
{
int iVar1;
ulonglong in_RAX;
undefined8 uVar2;
longlong lVar3;
int iVar4;
ulonglong uVar5;
longlong lVar6;
iVar1 = *(int *)(param_1 + 0x18);
uVar5 = 0;
lVar6 = 0;
if (0 < iVar1) {
in_RAX = 0;
lVar3 = param_1;
do {
if ((lVar6 < 0) || (iVar4 = (int)uVar5, iVar1 <= iVar4)) {
/* WARNING: Subroutine does not return */
FUN_14006be30(lVar3,uVar5,param_3,param_1);
}
lVar3 = *(longlong *)(param_1 + 0x10);
if (((*(int *)(in_RAX + 4 + lVar3) == param_2) && (*(int *)(in_RAX + lVar3) == (int)param_3))
&& (*(int *)(in_RAX + 8 + lVar3) == param_4)) {
uVar2 = FUN_14007afc0(param_1,iVar4,1,param_1);
return CONCAT71((int7)((ulonglong)uVar2 >> 8),1);
}
uVar5 = (ulonglong)(iVar4 + 1U);
lVar6 = lVar6 + 1;
in_RAX = in_RAX + 0x18;
} while ((int)(iVar4 + 1U) < iVar1);
}
return in_RAX & 0xffffffffffffff00;
}