/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1 * Ghidra 12.1.2 decompiler output for 0x1400a3590 FUN_1400a3590 * Pseudocode, not original source. */ void FUN_1400a3590(longlong *param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4) { int *piVar1; longlong lVar2; longlong lVar3; piVar1 = (int *)(**(code **)(*param_1 + 0x58))(); FUN_14006b350(piVar1); if ((((longlong *)param_1[699] != (longlong *)0x0) && (lVar3 = *(longlong *)param_1[699], lVar3 != 0)) && (lVar3 != 0x40)) { if (lVar3 != 0) { lVar3 = lVar3 + -0x40; } FUN_1400ef610(lVar3,param_2,param_3,param_4); } if ((((longlong *)param_1[0x2a4] != (longlong *)0x0) && (lVar3 = *(longlong *)param_1[0x2a4], lVar3 != 0)) && (lVar3 != 0x40)) { if (lVar3 != 0) { lVar3 = lVar3 + -0x40; } FUN_1400f3830(lVar3,param_2,param_3,param_4); } if (param_1[0x2ce] == 0) { lVar3 = 0; } else { lVar3 = param_1[0x2cc]; } for (; lVar3 != 0; lVar3 = *(longlong *)(lVar3 + 0x10)) { lVar2 = 0; if (*(longlong **)(lVar3 + 8) != (longlong *)0x0) { lVar2 = **(longlong **)(lVar3 + 8); } if (((*(char *)(lVar2 + 0x684) == '\0') && (*(longlong **)(lVar2 + 0x18) != (longlong *)0x0)) && (**(longlong **)(lVar2 + 0x18) != 0)) { lVar2 = FUN_1400eff40(lVar2); FUN_1400f3830(lVar2,param_2,param_3,param_4); } } FUN_14006b3e0((longlong)piVar1); return; }