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

40 lines
1 KiB
C

/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1
* Ghidra 12.1.2 decompiler output for 0x1400bc990 FUN_1400bc990
* Pseudocode, not original source. */
undefined4 FUN_1400bc990(uint *param_1,uint param_2,undefined8 param_3,undefined8 param_4)
{
uint uVar1;
uint uVar2;
undefined4 uVar3;
undefined8 in_RAX;
undefined8 uVar4;
uint uVar5;
uint uVar6;
ulonglong uVar7;
ulonglong uVar8;
uVar7 = (ulonglong)param_2;
if (param_2 == 0) {
return (int)CONCAT71((int7)((ulonglong)in_RAX >> 8),1);
}
uVar1 = *param_1;
uVar6 = (int)uVar1 >> 0x1f & 7;
uVar2 = uVar1 + uVar6;
uVar5 = uVar2 & 0xfffffff8;
*param_1 = uVar5;
if (0 < (int)((uVar2 & 7) - uVar6)) {
*param_1 = uVar5 + 8;
}
uVar8 = uVar7;
uVar3 = FUN_1400bc7f0((int *)param_1,param_2);
if ((char)uVar3 == '\0') {
*param_1 = uVar1;
return uVar3;
}
uVar4 = FUN_1400bc8a0((int *)param_1,uVar7,uVar8,param_4);
*param_1 = uVar1;
return (int)CONCAT71((int7)((ulonglong)uVar4 >> 8),1);
}