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

85 lines
2.3 KiB
C

/* DBCServer_Release_x64.exe sha256 d9e4fccdf3482e50247686d4452c0b13c75a53efc4bd7320668eece8d1ce828c
* Ghidra 12.1.2 decompiler output for 0x1401b1230 FUN_1401b1230
* Pseudocode, not original source. */
/* WARNING: Removing unreachable block (ram,0x0001401b1335) */
/* WARNING: Removing unreachable block (ram,0x0001401b1343) */
/* WARNING: Removing unreachable block (ram,0x0001401b133b) */
/* WARNING: Removing unreachable block (ram,0x0001401b134a) */
void FUN_1401b1230(undefined8 param_1,int param_2,undefined8 param_3,longlong param_4,
undefined8 param_5)
{
byte *pbVar1;
ulonglong uVar2;
ulonglong uVar3;
longlong lVar4;
uint uVar5;
ulonglong uVar6;
undefined **local_50;
undefined8 local_48;
ulonglong local_40;
undefined8 local_38;
undefined8 local_30;
uVar6 = 0;
local_48 = 0;
local_40 = 0;
local_38 = 0;
local_30 = 0;
local_50 = Proud::ByteArray::vftable;
pbVar1 = (byte *)(param_4 + 4);
FUN_14004f0e0(&local_50,1);
uVar2 = local_40;
if ((int)local_38 == 0) {
uVar2 = uVar6;
}
FUN_14004f1a0(uVar2,pbVar1,1);
lVar4 = (longlong)(int)local_38;
FUN_14004f0e0(&local_50,(int)local_38 + 4);
uVar2 = local_40;
if ((int)local_38 == 0) {
uVar2 = uVar6;
}
FUN_14004f1a0(uVar2 + lVar4,param_4 + 0xc,4);
if (param_2 < 0) {
/* WARNING: Subroutine does not return */
FUN_14016d6b0();
}
if (param_2 != 0) {
lVar4 = (longlong)(int)local_38;
FUN_14004f0e0(&local_50,(int)local_38 + param_2);
uVar2 = local_40;
if ((int)local_38 == 0) {
uVar2 = uVar6;
}
FUN_14004f1a0(uVar2 + lVar4,param_1,(longlong)param_2);
}
uVar2 = uVar6;
if (*pbVar1 != 0) {
do {
lVar4 = (longlong)(int)local_38;
if ((int)local_38 < 0) {
/* WARNING: Subroutine does not return */
FUN_14016d6b0();
}
FUN_14004f0e0(&local_50,(int)local_38 + 1);
uVar3 = local_40;
if ((int)local_38 == 0) {
uVar3 = uVar6;
}
*(undefined1 *)(lVar4 + uVar3) = 0;
uVar5 = (int)uVar2 + 1;
uVar2 = (ulonglong)uVar5;
} while ((int)uVar5 < (int)(uint)*pbVar1);
}
uVar2 = local_40;
if ((int)local_38 == 0) {
uVar2 = uVar6;
}
FUN_1401b0870(param_5,uVar2,param_3,(longlong)(int)local_38,0);
FUN_14019a9e0(&local_50);
return;
}