/* DBCServer_Release_x64.exe sha256 d9e4fccdf3482e50247686d4452c0b13c75a53efc4bd7320668eece8d1ce828c * Ghidra 12.1.2 decompiler output for 0x1401db660 FUN_1401db660 * Pseudocode, not original source. */ longlong * FUN_1401db660(longlong *param_1,longlong *param_2,uint param_3) { uint uVar1; ulonglong uVar2; char cVar3; undefined8 uVar4; uint *puVar5; longlong lVar6; uint *puVar7; ulonglong uVar8; longlong *plVar9; uint local_res18 [2]; void *local_res20; undefined8 uVar10; undefined8 uVar11; undefined1 uVar12; uVar10 = 0xfffffffffffffffe; puVar7 = (uint *)0x0; local_res18[0] = param_3; uVar4 = (**(code **)(*param_1 + 0x58))(); uVar11 = uVar4; FUN_14016db50(uVar4); uVar12 = 1; local_res20 = operator_new(0x60); puVar5 = puVar7; if (local_res20 != (void *)0x0) { puVar5 = (uint *)FUN_1401c98d0(local_res20); } if (puVar5 == (uint *)0x0) { *param_2 = 0; } else { lVar6 = FUN_14016d940(0x10); *param_2 = lVar6; *(undefined8 *)(lVar6 + 8) = 1; *(uint **)*param_2 = puVar5; } if ((longlong *)*param_2 != (longlong *)0x0) { puVar7 = *(uint **)*param_2; } *puVar7 = param_3; plVar9 = param_1 + 0xbc; uVar1 = *(uint *)(param_1 + 0xc1); uVar8 = (ulonglong)uVar1; uVar2 = (ulonglong)param_3 % uVar8; lVar6 = param_1[0xbd]; if (lVar6 != 0) { for (puVar7 = *(uint **)(lVar6 + uVar2 * 8); (puVar7 != (uint *)0x0 && ((uint)uVar2 == puVar7[8] % uVar1)); puVar7 = *(uint **)(puVar7 + 4)) { if (*puVar7 == param_3) goto LAB_1401db7e1; } if (lVar6 != 0) { for (puVar7 = *(uint **)(lVar6 + uVar2 * 8); (puVar7 != (uint *)0x0 && ((uint)uVar2 == puVar7[8] % uVar1)); puVar7 = *(uint **)(puVar7 + 4)) { if (*puVar7 == param_3) goto LAB_1401db7d4; } if (lVar6 != 0) goto LAB_1401db7ab; } } cVar3 = FUN_1401b5a10(plVar9,uVar8,CONCAT71((int7)((ulonglong)lVar6 >> 8),1),uVar8,uVar10,uVar11, uVar12); if (cVar3 == '\0') { /* WARNING: Subroutine does not return */ FUN_14004dc60(0x8007000e); } LAB_1401db7ab: FUN_1401720a0(plVar9); puVar7 = (uint *)FUN_14018e5c0(plVar9,local_res18,uVar2,param_3); FUN_1401720a0(plVar9); LAB_1401db7d4: FUN_1401d89c0(puVar7 + 2,param_2); LAB_1401db7e1: FUN_14016dbe0(uVar4); return param_2; }