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

89 lines
3.8 KiB
C

/* DBCServer_Release_x64.exe sha256 d9e4fccdf3482e50247686d4452c0b13c75a53efc4bd7320668eece8d1ce828c
* Ghidra 12.1.2 decompiler output for 0x14020f8a0 FUN_14020f8a0
* Pseudocode, not original source. */
undefined8 FUN_14020f8a0(uint *param_1,undefined1 *param_2,uint *param_3)
{
undefined1 uVar1;
undefined8 uVar2;
uint uVar3;
uint local_res8 [2];
if (((param_1 != (uint *)0x0) && (param_2 != (undefined1 *)0x0)) && (param_3 != (uint *)0x0)) {
uVar2 = FUN_14020f3f0(param_1,local_res8);
if ((int)uVar2 == 0) {
if (*param_3 < local_res8[0]) {
*param_3 = local_res8[0];
return 6;
}
*param_2 = 0x17;
uVar1 = FUN_14020d8d0((int)(char)PTR_DAT_1403462e8
[(uint)((int)((ulonglong)*param_1 / 10) +
(int)(((ulonglong)*param_1 / 10) / 10) * -10)]);
param_2[2] = uVar1;
uVar1 = FUN_14020d8d0((int)(char)PTR_DAT_1403462e8[*param_1 % 10]);
param_2[3] = uVar1;
uVar1 = FUN_14020d8d0((int)(char)PTR_DAT_1403462e8
[(uint)((int)((ulonglong)param_1[1] / 10) +
(int)(((ulonglong)param_1[1] / 10) / 10) * -10)]);
param_2[4] = uVar1;
uVar1 = FUN_14020d8d0((int)(char)PTR_DAT_1403462e8[param_1[1] % 10]);
param_2[5] = uVar1;
uVar1 = FUN_14020d8d0((int)(char)PTR_DAT_1403462e8
[(uint)((int)((ulonglong)param_1[2] / 10) +
(int)(((ulonglong)param_1[2] / 10) / 10) * -10)]);
param_2[6] = uVar1;
uVar1 = FUN_14020d8d0((int)(char)PTR_DAT_1403462e8[param_1[2] % 10]);
param_2[7] = uVar1;
uVar1 = FUN_14020d8d0((int)(char)PTR_DAT_1403462e8
[(uint)((int)((ulonglong)param_1[3] / 10) +
(int)(((ulonglong)param_1[3] / 10) / 10) * -10)]);
param_2[8] = uVar1;
uVar1 = FUN_14020d8d0((int)(char)PTR_DAT_1403462e8[param_1[3] % 10]);
param_2[9] = uVar1;
uVar1 = FUN_14020d8d0((int)(char)PTR_DAT_1403462e8
[(uint)((int)((ulonglong)param_1[4] / 10) +
(int)(((ulonglong)param_1[4] / 10) / 10) * -10)]);
param_2[10] = uVar1;
uVar1 = FUN_14020d8d0((int)(char)PTR_DAT_1403462e8[param_1[4] % 10]);
param_2[0xb] = uVar1;
uVar1 = FUN_14020d8d0((int)(char)PTR_DAT_1403462e8
[(uint)((int)((ulonglong)param_1[5] / 10) +
(int)(((ulonglong)param_1[5] / 10) / 10) * -10)]);
param_2[0xc] = uVar1;
uVar1 = FUN_14020d8d0((int)(char)PTR_DAT_1403462e8[param_1[5] % 10]);
param_2[0xd] = uVar1;
if ((param_1[8] == 0) && (param_1[7] == 0)) {
uVar1 = FUN_14020d8d0(0x5a);
uVar3 = 0xf;
param_2[0xe] = uVar1;
}
else {
uVar2 = 0x2b;
if (param_1[6] != 0) {
uVar2 = 0x2d;
}
uVar1 = FUN_14020d8d0(uVar2);
param_2[0xe] = uVar1;
uVar1 = FUN_14020d8d0((int)(char)PTR_DAT_1403462e8
[(uint)((int)((ulonglong)param_1[7] / 10) +
(int)(((ulonglong)param_1[7] / 10) / 10) * -10)]);
param_2[0xf] = uVar1;
uVar1 = FUN_14020d8d0((int)(char)PTR_DAT_1403462e8[param_1[7] % 10]);
param_2[0x10] = uVar1;
uVar1 = FUN_14020d8d0((int)(char)PTR_DAT_1403462e8[(param_1[8] / 10) % 10]);
param_2[0x11] = uVar1;
uVar1 = FUN_14020d8d0((int)(char)PTR_DAT_1403462e8[param_1[8] % 10]);
uVar3 = 0x13;
param_2[0x12] = uVar1;
}
param_2[1] = (char)uVar3 + -2;
*param_3 = uVar3;
uVar2 = 0;
}
return uVar2;
}
return 0x10;
}