server-re/decomp/Agent_Release_x64/full/functions/0x1400adb10.c
2026-10-14 16:45:19 -04:00

68 lines
2.1 KiB
C

/* Agent_Release_x64.exe sha256 6f2be7b8eb799ba51b359d1958720aac5baee5b7ee0d1d36684d3cbd72d45469
* Ghidra 12.1.2 decompiler output for 0x1400adb10 FUN_1400adb10
* Pseudocode, not original source. */
void FUN_1400adb10(longlong param_1,longlong param_2,longlong param_3,undefined8 param_4)
{
longlong *plVar1;
longlong *plVar2;
longlong *plVar3;
int iVar4;
longlong *plVar5;
plVar1 = (longlong *)(param_1 + 0x10);
plVar3 = plVar1;
FUN_14002e6e0((int *)plVar1);
plVar5 = (longlong *)0x0;
plVar2 = plVar5;
while( true ) {
iVar4 = (int)plVar2;
if (iVar4 == *(int *)(param_1 + 0x118)) {
plVar3 = plVar5;
if (*(longlong *)(param_1 + 0x70) != 0) {
plVar3 = *(longlong **)(param_1 + 0x60);
}
for (; plVar3 != (longlong *)0x0; plVar3 = (longlong *)plVar3[2]) {
plVar2 = plVar5;
if ((longlong *)plVar3[1] != (longlong *)0x0) {
plVar2 = *(longlong **)plVar3[1];
}
if ((int)plVar2[0x492] < 4) {
plVar2[0x492] = 4;
}
}
FUN_14002e770((longlong)plVar1);
return;
}
if ((iVar4 < 0) || (*(int *)(param_1 + 0x118) <= iVar4)) break;
param_2 = (longlong)iVar4;
param_3 = *(longlong *)(param_1 + 0x110);
plVar3 = *(longlong **)(param_3 + param_2 * 8);
plVar2 = plVar5;
if (plVar3 != (longlong *)0x0) {
plVar2 = (longlong *)*plVar3;
}
plVar3 = (longlong *)plVar2[2];
if ((plVar3 != (longlong *)0x0) && (*plVar3 != 0)) {
plVar3 = *(longlong **)(param_3 + param_2 * 8);
plVar2 = plVar5;
if (plVar3 != (longlong *)0x0) {
plVar2 = (longlong *)*plVar3;
}
plVar3 = plVar5;
if ((undefined8 *)plVar2[2] != (undefined8 *)0x0) {
plVar3 = *(longlong **)plVar2[2];
}
FUN_140035490(plVar3,param_2,param_3,param_4);
}
if (*(int *)(param_1 + 0x118) <= iVar4) {
/* WARNING: Subroutine does not return */
FUN_14002f5c0(plVar3,param_2,param_3,param_4);
}
plVar2 = (longlong *)(ulonglong)(iVar4 + 1);
}
/* WARNING: Subroutine does not return */
FUN_14002f5c0(plVar3,param_2,param_3,param_4);
}