/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1 * Ghidra 12.1.2 decompiler output for 0x1400fbf80 FUN_1400fbf80 * Pseudocode, not original source. */ ulonglong FUN_1400fbf80(undefined8 param_1,uint param_2,int param_3,uint param_4,undefined4 *param_5 ) { uint uVar1; int iVar2; ulonglong uVar3; ulonglong uVar4; undefined8 local_58; undefined8 local_50; longlong local_48; longlong local_40; longlong local_38; if (DAT_1401bd600 == 0) { return 0x10; } if (param_5 == (undefined4 *)0x0) { return 0x10; } if (0x180 < param_3 - 0x80U) { return 3; } if ((int)param_4 < 3) { return 0x10; } if ((param_4 & 1) == 0) { return 0x10; } uVar3 = FUN_1401034e0(param_2); if ((int)uVar3 != 0) { return uVar3; } uVar3 = FUN_1401083f0(&local_48); if ((int)uVar3 != 0) { return uVar3; } uVar1 = (*DAT_1401bd638)(local_38,param_4); uVar3 = (ulonglong)uVar1; if (uVar1 == 0) { do { uVar4 = FUN_140108cb0(local_48,param_3 / 2,param_1,param_2); uVar3 = uVar4 & 0xffffffff; if ((int)uVar4 != 0) goto LAB_1400fc2b2; uVar1 = (*DAT_1401bd6c0)(local_48,1,local_58); uVar3 = (ulonglong)uVar1; if (uVar1 != 0) goto LAB_1400fc2b2; uVar1 = (*DAT_1401bd6f8)(local_58,local_38,local_50); uVar3 = (ulonglong)uVar1; if (uVar1 != 0) goto LAB_1400fc2b2; iVar2 = (*DAT_1401bd660)(local_50,1); } while (iVar2 != 0); do { uVar4 = FUN_140108cb0(local_40,param_3 / 2,param_1,param_2); uVar3 = uVar4 & 0xffffffff; if ((int)uVar4 != 0) goto LAB_1400fc2b2; uVar1 = (*DAT_1401bd6c0)(local_40,1,local_58); uVar3 = (ulonglong)uVar1; if (uVar1 != 0) goto LAB_1400fc2b2; uVar1 = (*DAT_1401bd6f8)(local_58,local_38,local_50); uVar3 = (ulonglong)uVar1; if (uVar1 != 0) goto LAB_1400fc2b2; iVar2 = (*DAT_1401bd660)(local_50,1); } while (iVar2 != 0); uVar1 = (*DAT_1401bd6c0)(local_48,1,local_50); uVar3 = (ulonglong)uVar1; if (uVar1 == 0) { uVar1 = (*DAT_1401bd700)(local_58,local_50,local_58); uVar3 = (ulonglong)uVar1; if (uVar1 == 0) { uVar4 = FUN_1401083f0((undefined8 *)(param_5 + 2)); uVar3 = uVar4 & 0xffffffff; if ((int)uVar4 == 0) { uVar1 = (*DAT_1401bd638)(*(undefined8 *)(param_5 + 2),param_4); uVar3 = (ulonglong)uVar1; if (uVar1 == 0) { uVar1 = (*DAT_1401bd718)(*(undefined8 *)(param_5 + 2),local_58, *(undefined8 *)(param_5 + 4)); uVar3 = (ulonglong)uVar1; if (uVar1 == 0) { uVar1 = (*DAT_1401bd6c8)(local_48,local_40,*(undefined8 *)(param_5 + 6)); uVar3 = (ulonglong)uVar1; if (uVar1 == 0) { uVar1 = (*DAT_1401bd6c0)(local_48,1,local_58); uVar3 = (ulonglong)uVar1; if (uVar1 == 0) { uVar1 = (*DAT_1401bd6c0)(local_40,1,local_50); uVar3 = (ulonglong)uVar1; if (uVar1 == 0) { uVar1 = (*DAT_1401bd6e0)(*(undefined8 *)(param_5 + 4),local_58,0, *(undefined8 *)(param_5 + 0xe)); uVar3 = (ulonglong)uVar1; if (uVar1 == 0) { uVar1 = (*DAT_1401bd6e0)(*(undefined8 *)(param_5 + 4),local_50,0, *(undefined8 *)(param_5 + 0x10)); uVar3 = (ulonglong)uVar1; if (uVar1 == 0) { uVar1 = (*DAT_1401bd718)(local_40,local_48,*(undefined8 *)(param_5 + 0xc)); uVar3 = (ulonglong)uVar1; if (uVar1 == 0) { uVar1 = (*DAT_1401bd630)(local_48,*(undefined8 *)(param_5 + 8)); uVar3 = (ulonglong)uVar1; if (uVar1 == 0) { uVar1 = (*DAT_1401bd630)(local_40,*(undefined8 *)(param_5 + 10)); uVar3 = (ulonglong)uVar1; if (uVar1 == 0) { *param_5 = 1; goto LAB_1400fc2f4; } } } } } } } } } } } } } } LAB_1400fc2b2: FUN_140108480(*(longlong *)(param_5 + 4)); LAB_1400fc2f4: FUN_140108480(local_38); return uVar3; }