server-re/decomp/DBCServer_Release_x64/full/functions/0x14015fb20.c

49 lines
1.5 KiB
C

/* DBCServer_Release_x64.exe sha256 d9e4fccdf3482e50247686d4452c0b13c75a53efc4bd7320668eece8d1ce828c
* Ghidra 12.1.2 decompiler output for 0x14015fb20 FUN_14015fb20
* Pseudocode, not original source. */
longlong * FUN_14015fb20(longlong *param_1,longlong *param_2,longlong *param_3)
{
char cVar1;
longlong *plVar2;
longlong *plVar3;
longlong *local_res10;
undefined1 local_res20 [8];
if ((param_2 == (longlong *)*DAT_140353138) && (param_3 == DAT_140353138)) {
FUN_14015ff30();
*param_1 = *DAT_140353138;
return param_1;
}
while (param_2 != param_3) {
local_res10 = param_2;
if (*(char *)((longlong)param_2 + 0x29) == '\0') {
local_res10 = (longlong *)param_2[2];
if (*(char *)((longlong)local_res10 + 0x29) == '\0') {
cVar1 = *(char *)(*local_res10 + 0x29);
plVar2 = (longlong *)*local_res10;
while (cVar1 == '\0') {
cVar1 = *(char *)(*plVar2 + 0x29);
local_res10 = plVar2;
plVar2 = (longlong *)*plVar2;
}
}
else {
cVar1 = *(char *)(param_2[1] + 0x29);
plVar3 = (longlong *)param_2[1];
plVar2 = param_2;
while ((local_res10 = plVar3, cVar1 == '\0' && (plVar2 == (longlong *)local_res10[2]))) {
cVar1 = *(char *)(local_res10[1] + 0x29);
plVar3 = (longlong *)local_res10[1];
plVar2 = local_res10;
}
}
}
FUN_14015fbe0(local_res20,param_2);
param_2 = local_res10;
}
*param_1 = (longlong)param_2;
return param_1;
}