/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1 * Ghidra 12.1.2 decompiler output for 0x1400b3250 FUN_1400b3250 * Pseudocode, not original source. */ void FUN_1400b3250(longlong param_1,longlong *param_2,undefined8 param_3,undefined *param_4) { longlong *plVar1; undefined8 *puVar2; longlong lVar3; longlong lVar4; longlong local_res8; longlong *local_res10; longlong local_res18 [2]; longlong local_28 [2]; local_28[1] = 0xfffffffffffffffe; local_res10 = param_2; (**(code **)(*(longlong *)(param_1 + 0x78) + 0x10))(); plVar1 = (longlong *)*param_2; lVar4 = 0; lVar3 = lVar4; if (plVar1 != (longlong *)0x0) { lVar3 = *plVar1; } if (*(char *)(lVar3 + 0x684) == '\0') { lVar3 = lVar4; if (plVar1 != (longlong *)0x0) { lVar3 = *plVar1; } if (*(longlong *)(lVar3 + 0x670) == param_1) { lVar3 = lVar4; if (plVar1 != (longlong *)0x0) { lVar3 = *plVar1; } if ((*(longlong **)(lVar3 + 0x18) != (longlong *)0x0) && (**(longlong **)(lVar3 + 0x18) != 0)) { lVar3 = lVar4; if (plVar1 != (longlong *)0x0) { lVar3 = *plVar1; } if (*(char *)(lVar3 + 0x608) == '\0') { lVar3 = lVar4; if (plVar1 != (longlong *)0x0) { lVar3 = *plVar1; } local_res18[0] = 0; FUN_1400a2a80(local_res18,(longlong *)(lVar3 + 0x18)); FUN_1400b2fd0(param_1,local_res18,param_3,param_4); } else { lVar3 = lVar4; if (plVar1 != (longlong *)0x0) { lVar3 = *plVar1; } local_res8 = 0; FUN_1400a2a80(&local_res8,(longlong *)(lVar3 + 0x18)); FUN_1400b1970(param_1,&local_res8); } local_res18[1] = 0; lVar3 = lVar4; if ((longlong *)*param_2 != (longlong *)0x0) { lVar3 = *(longlong *)*param_2; } FUN_1400a2a80((longlong *)(lVar3 + 0x18),local_res18 + 1); } lVar3 = lVar4; if ((longlong *)*param_2 != (longlong *)0x0) { lVar3 = *(longlong *)*param_2; } *(undefined8 *)(lVar3 + 0x670) = 0; lVar3 = lVar4; if ((longlong *)*param_2 != (longlong *)0x0) { lVar3 = *(longlong *)*param_2; } *(undefined1 *)(lVar3 + 0x684) = 1; local_28[0] = 0; lVar3 = lVar4; if ((longlong *)*param_2 != (longlong *)0x0) { lVar3 = *(longlong *)*param_2; } FUN_1400ae2a0((longlong *)(lVar3 + 0x28),local_28); if ((longlong *)*param_2 != (longlong *)0x0) { lVar4 = *(longlong *)*param_2; } FUN_1400b2d40((char *)(param_1 + 0x16a8),(uint *)(lVar4 + 0x56c),param_2); } if (*param_2 == 0) { return; } lVar4 = *(longlong *)(*param_2 + 8); } else { if (plVar1 == (longlong *)0x0) { return; } lVar4 = plVar1[1]; } *(longlong *)(*param_2 + 8) = lVar4 + -1; if (*(longlong *)(*param_2 + 8) == 0) { plVar1 = (longlong *)*param_2; puVar2 = (undefined8 *)*plVar1; if (puVar2 != (undefined8 *)0x0) { (**(code **)*puVar2)(puVar2,1); } FUN_14006cc60(plVar1); } return; }