40 lines
1 KiB
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);
|
|
}
|
|
|