/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1 * Ghidra 12.1.2 decompiler output for 0x1400a1700 FUN_1400a1700 * Pseudocode, not original source. */ void FUN_1400a1700(longlong *param_1,longlong param_2,undefined8 param_3,undefined8 param_4) { undefined4 uVar1; int *piVar2; longlong lVar3; longlong lVar4; undefined8 uVar5; undefined1 local_res8 [8]; piVar2 = (int *)(**(code **)(param_1[-0xe] + 0x58))(); FUN_14006b350(piVar2); lVar4 = 0; lVar3 = lVar4; if ((longlong *)param_1[0xac] != (longlong *)0x0) { lVar3 = *(longlong *)param_1[0xac]; } *(bool *)param_2 = lVar3 == 0; lVar3 = lVar4; if (param_1[0xad] != 0) { lVar3 = *(longlong *)(param_1[0xad] + 0x38); } *(undefined1 *)(param_2 + 1) = *(undefined1 *)(lVar3 + 0x28c); *(int *)(param_2 + 8) = (int)param_1[0xa2]; *(int *)(param_2 + 0x10) = (int)param_1[0x2b1]; *(int *)(param_2 + 0x28) = (int)param_1[0x2c0]; *(int *)(param_2 + 4) = (int)param_1[0xaa]; uVar5 = (**(code **)(*param_1 + 0x1c0))(param_1); *(undefined8 *)(param_2 + 0x20) = uVar5; *(longlong *)(param_2 + 0x18) = param_1[0x30a]; *(undefined4 *)(param_2 + 0x2c) = 0; if (*(char *)(param_2 + 1) == '\0') { if (param_1[0xad] != 0) { lVar4 = *(longlong *)(param_1[0xad] + 0x38); } *(undefined4 *)(param_2 + 0x2c) = *(undefined4 *)(lVar4 + 0x284); } local_res8[0] = 0; uVar1 = (**(code **)(*param_1 + 0x108))(param_1,local_res8); *(undefined4 *)(param_2 + 0xc) = uVar1; FUN_14006b3e0((longlong)piVar2); return; }