89 lines
3.8 KiB
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;
|
|
}
|
|
|