/* DBCServer_Release_x64.exe sha256 d9e4fccdf3482e50247686d4452c0b13c75a53efc4bd7320668eece8d1ce828c * Ghidra 12.1.2 decompiler output for 0x1401d8d40 FUN_1401d8d40 * Pseudocode, not original source. */ void FUN_1401d8d40(longlong param_1,longlong *param_2) { longlong *plVar1; undefined8 *puVar2; longlong lVar3; longlong lVar4; undefined8 local_res8; longlong *local_res10; undefined8 local_res18; undefined8 local_res20; undefined8 local_28; undefined8 local_20; local_20 = 0xfffffffffffffffe; local_res10 = param_2; (**(code **)(*(longlong *)(param_1 + 0x78) + 0x10))(); plVar1 = (longlong *)*param_2; lVar4 = 0; lVar3 = lVar4; if (plVar1 != (longlong *)0x0) { lVar3 = *plVar1; } if (*(char *)(lVar3 + 0x684) == '\0') { lVar3 = lVar4; if (plVar1 != (longlong *)0x0) { lVar3 = *plVar1; } if (*(longlong *)(lVar3 + 0x670) == param_1) { lVar3 = lVar4; if (plVar1 != (longlong *)0x0) { lVar3 = *plVar1; } if ((*(longlong **)(lVar3 + 0x18) != (longlong *)0x0) && (**(longlong **)(lVar3 + 0x18) != 0)) { lVar3 = lVar4; if (plVar1 != (longlong *)0x0) { lVar3 = *plVar1; } if (*(char *)(lVar3 + 0x608) == '\0') { lVar3 = lVar4; if (plVar1 != (longlong *)0x0) { lVar3 = *plVar1; } local_res18 = 0; FUN_1401eb200(&local_res18,lVar3 + 0x18); FUN_1401d8ac0(param_1,&local_res18); } else { lVar3 = lVar4; if (plVar1 != (longlong *)0x0) { lVar3 = *plVar1; } local_res8 = 0; FUN_1401eb200(&local_res8,lVar3 + 0x18); FUN_1401d7460(param_1,&local_res8); } local_res20 = 0; lVar3 = lVar4; if ((longlong *)*param_2 != (longlong *)0x0) { lVar3 = *(longlong *)*param_2; } FUN_1401eb200(lVar3 + 0x18,&local_res20); } lVar3 = lVar4; if ((longlong *)*param_2 != (longlong *)0x0) { lVar3 = *(longlong *)*param_2; } *(undefined8 *)(lVar3 + 0x670) = 0; lVar3 = lVar4; if ((longlong *)*param_2 != (longlong *)0x0) { lVar3 = *(longlong *)*param_2; } *(undefined1 *)(lVar3 + 0x684) = 1; local_28 = 0; lVar3 = lVar4; if ((longlong *)*param_2 != (longlong *)0x0) { lVar3 = *(longlong *)*param_2; } FUN_1401d3e30(lVar3 + 0x28,&local_28); if ((longlong *)*param_2 != (longlong *)0x0) { lVar4 = *(longlong *)*param_2; } FUN_1401d8830(param_1 + 0x16a8,lVar4 + 0x56c,param_2); } if (*param_2 == 0) { return; } lVar4 = *(longlong *)(*param_2 + 8); } else { if (plVar1 == (longlong *)0x0) { return; } lVar4 = plVar1[1]; } *(longlong *)(*param_2 + 8) = lVar4 + -1; if (*(longlong *)(*param_2 + 8) == 0) { param_2 = (longlong *)*param_2; puVar2 = (undefined8 *)*param_2; if (puVar2 != (undefined8 *)0x0) { (**(code **)*puVar2)(puVar2,1); } FUN_14016d970(param_2); } return; }