server-re/decomp/MessageServer_Release_x64/full/functions/0x14000b8b0.c

69 lines
2 KiB
C

/* 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;
}