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

63 lines
2.1 KiB
C

/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1
* Ghidra 12.1.2 decompiler output for 0x1400fc360 FUN_1400fc360
* Pseudocode, not original source. */
ulonglong FUN_1400fc360(void *param_1,uint param_2,undefined1 *param_3,uint *param_4,byte *param_5,
undefined4 param_6,ulonglong param_7,uint param_8,uint param_9,int param_10,
longlong param_11)
{
uint uVar1;
uint uVar2;
int iVar3;
ulonglong uVar4;
uint local_res8 [2];
uint local_res10;
undefined8 in_stack_ffffffffffffff98;
undefined4 uVar6;
ulonglong uVar5;
uVar6 = (undefined4)((ulonglong)in_stack_ffffffffffffff98 >> 0x20);
if (((param_1 != (void *)0x0) && (param_3 != (undefined1 *)0x0)) && (param_4 != (uint *)0x0)) {
if (param_11 != 0) {
if ((param_10 == 1) || (param_10 == 2)) {
local_res10 = param_2;
uVar4 = FUN_1401034e0(param_8);
if (((int)uVar4 == 0) &&
((param_10 != 2 || (uVar4 = FUN_140109370(param_9), (int)uVar4 == 0)))) {
uVar1 = (*DAT_1401bd668)(*(undefined8 *)(param_11 + 0x18));
uVar2 = (*DAT_1401bd690)(*(undefined8 *)(param_11 + 0x18));
local_res8[0] = *param_4;
if (local_res8[0] < uVar2) {
*param_4 = uVar2;
uVar4 = 6;
}
else {
if (param_10 == 2) {
uVar5 = CONCAT44(uVar6,uVar1);
uVar4 = FUN_140108fe0(param_1,local_res10,param_5,param_6,uVar1,param_7,param_8,
param_9,param_3,local_res8);
iVar3 = (int)uVar4;
}
else {
uVar4 = FUN_140108e10(param_1,local_res10,2,uVar1,param_7,param_8,param_3,local_res8);
iVar3 = (int)uVar4;
uVar5 = param_7;
}
if (iVar3 == 0) {
uVar4 = (*DAT_1401bd780)(param_3,local_res8[0],param_3,param_4,
uVar5 & 0xffffffff00000000,param_11);
}
}
}
}
else {
uVar4 = 0x18;
}
return uVar4;
}
return 0x10;
}
return 0x10;
}