/* 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; }