/* DBCServer_Release_x64.exe sha256 d9e4fccdf3482e50247686d4452c0b13c75a53efc4bd7320668eece8d1ce828c * Ghidra 12.1.2 decompiler output for 0x1400a5420 FUN_1400a5420 * Pseudocode, not original source. */ longlong * FUN_1400a5420(longlong *param_1,longlong *param_2,int *param_3) { int *piVar1; ulonglong *puVar2; undefined8 *puVar3; int iVar4; undefined8 *puVar5; longlong lVar6; ulonglong *puVar7; ulonglong local_res8 [2]; longlong *local_30; undefined8 *local_28; undefined2 local_20; local_28 = (undefined8 *)0x0; local_20 = 0; local_30 = param_1; FUN_1400a5910(&local_30); puVar5 = local_28; piVar1 = (int *)(local_28 + 1); if (piVar1 != (int *)0x0) { *piVar1 = *param_3; memcpy(local_28 + 2,param_3 + 2,0x58); } local_20 = CONCAT11(1,(undefined1)local_20); iVar4 = *piVar1; if (*param_1 == 0) { local_res8[0] = FUN_1400a55e0(param_1,1); puVar2 = (ulonglong *)(param_1 + 1); puVar7 = local_res8; if (local_res8[0] <= *puVar2) { puVar7 = puVar2; } *puVar2 = *puVar7; FUN_1400a59f0(param_1); FUN_1400a5ae0(param_1); } else { local_res8[1] = 1; if ((ulonglong)param_1[7] < 2) { local_res8[0] = ((ulonglong)param_1[4] >> 1) + param_1[4]; lVar6 = FUN_1400a55e0(param_1); if (lVar6 != param_1[1]) { FUN_1400a56c0(param_1); } } } puVar3 = (undefined8 *)(*param_1 + ((ulonglong)(longlong)iVar4 % (ulonglong)param_1[1]) * 8); *puVar5 = *puVar3; *puVar3 = puVar5; param_1[4] = param_1[4] + 1; param_1[6] = (longlong)puVar3; *param_2 = (longlong)puVar3; param_2[1] = (longlong)puVar5; *(undefined1 *)(param_2 + 2) = 1; return param_2; }