/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1 * Ghidra 12.1.2 decompiler output for 0x14000b8b0 FUN_14000b8b0 * Pseudocode, not original source. */ undefined8 * FUN_14000b8b0(longlong *param_1,undefined8 *param_2) { char cVar1; longlong lVar2; ulonglong uVar3; longlong *plVar4; char *pcVar5; if (*(int *)(param_2 + 4) != 0) { param_2[3] = param_1; param_2[9] = param_1[6]; param_2[10] = 0; if (param_1[6] != 0) { *(undefined8 **)(param_1[6] + 0x50) = param_2; param_1[6] = (longlong)param_2; return param_2; } param_1[5] = (longlong)param_2; param_1[6] = (longlong)param_2; return param_2; } (**(code **)*param_2)(param_2,1); plVar4 = param_1; if (param_1 != (longlong *)0x0) { while( true ) { lVar2 = (**(code **)(*plVar4 + 0x20))(plVar4); if (lVar2 != 0) break; plVar4 = (longlong *)plVar4[3]; if (plVar4 == (longlong *)0x0) { return (undefined8 *)0x0; } } lVar2 = (**(code **)(*plVar4 + 0x20))(plVar4); if (lVar2 != 0) { do { lVar2 = (**(code **)(*param_1 + 0x20))(); if (lVar2 != 0) { lVar2 = (**(code **)(*param_1 + 0x20))(); goto LAB_14000b93a; } param_1 = (longlong *)param_1[3]; } while (param_1 != (longlong *)0x0); lVar2 = 0; LAB_14000b93a: if (*(char *)(lVar2 + 0x58) == '\0') { uVar3 = 0xffffffffffffffff; *(undefined1 *)(lVar2 + 0x58) = 1; *(undefined4 *)(lVar2 + 0x5c) = 0x10; pcVar5 = PTR_s_Error_when_TiXmlDocument_added_t_1401b33e0; do { if (uVar3 == 0) break; uVar3 = uVar3 - 1; cVar1 = *pcVar5; pcVar5 = pcVar5 + 1; } while (cVar1 != '\0'); FUN_14000af60((longlong *)(lVar2 + 0x60),PTR_s_Error_when_TiXmlDocument_added_t_1401b33e0, ~uVar3 - 1); *(undefined8 *)(lVar2 + 0x74) = 0xffffffffffffffff; } } } return (undefined8 *)0x0; }