/* Agent_Release_x64.exe sha256 6f2be7b8eb799ba51b359d1958720aac5baee5b7ee0d1d36684d3cbd72d45469 * Ghidra 12.1.2 decompiler output for 0x1400a0100 FUN_1400a0100 * Pseudocode, not original source. */ undefined8 * FUN_1400a0100(longlong param_1,undefined8 param_2,uint param_3) { uint uVar1; longlong lVar2; longlong *plVar3; ulonglong uVar4; undefined8 *puVar5; undefined8 uVar6; uint *puVar7; uint uVar8; uint local_res18 [4]; uVar1 = *(uint *)(param_1 + 0x40); puVar5 = (undefined8 *)((ulonglong)param_3 / (ulonglong)uVar1); uVar4 = (ulonglong)param_3 % (ulonglong)uVar1; lVar2 = *(longlong *)(param_1 + 0x20); uVar8 = (uint)uVar4; if (lVar2 != 0) { for (puVar7 = *(uint **)(lVar2 + uVar4 * 8); (puVar7 != (uint *)0x0 && (puVar5 = (undefined8 *)((ulonglong)puVar7[10] / (ulonglong)uVar1), uVar8 == puVar7[10] % uVar1)); puVar7 = *(uint **)(puVar7 + 6)) { if (*puVar7 == param_3) goto LAB_1400a015b; } } puVar7 = (uint *)0x0; LAB_1400a015b: local_res18[0] = param_3; if (puVar7 != (uint *)0x0) { if (*(double *)(puVar7 + 4) != 0.0) { return puVar5; } *(undefined8 *)(puVar7 + 4) = param_2; puVar5 = FUN_14009fc50((longlong *)(param_1 + 0x70),local_res18); return puVar5; } if (lVar2 != 0) { for (puVar7 = *(uint **)(lVar2 + uVar4 * 8); (puVar7 != (uint *)0x0 && (uVar8 == puVar7[10] % uVar1)); puVar7 = *(uint **)(puVar7 + 6)) { if (*puVar7 == param_3) goto LAB_1400a0267; } if (lVar2 != 0) { for (puVar7 = *(uint **)(lVar2 + uVar4 * 8); (puVar7 != (uint *)0x0 && (uVar8 == puVar7[10] % uVar1)); puVar7 = *(uint **)(puVar7 + 6)) { if (*puVar7 == param_3) goto LAB_1400a0255; } if (lVar2 != 0) goto LAB_1400a022c; } } uVar6 = FUN_14003f710(param_1 + 0x18,uVar1,'\x01'); if ((char)uVar6 == '\0') { /* WARNING: Subroutine does not return */ FUN_14000b450(0x8007000e); } LAB_1400a022c: FUN_140097020((char *)(param_1 + 0x18)); puVar7 = FUN_14009fcd0((char *)(param_1 + 0x18),local_res18,uVar8,param_3); FUN_140097020((char *)(param_1 + 0x18)); LAB_1400a0255: *(ulonglong *)(puVar7 + 2) = (ulonglong)param_3; *(undefined8 *)(puVar7 + 4) = param_2; LAB_1400a0267: plVar3 = *(longlong **)(param_1 + 0x70); uVar6 = *(undefined8 *)(param_1 + 0x80); if (plVar3 == (longlong *)0x0) { puVar5 = (undefined8 *)FUN_140030280(0x18); } else { puVar5 = (undefined8 *)(**(code **)(*plVar3 + 8))(plVar3,0x18); } if (puVar5 != (undefined8 *)0x0) { *(uint *)(puVar5 + 2) = param_3; } puVar5[1] = uVar6; *puVar5 = 0; *(longlong *)(param_1 + 0x88) = *(longlong *)(param_1 + 0x88) + 1; if (*(undefined8 **)(param_1 + 0x80) == (undefined8 *)0x0) { *(undefined8 **)(param_1 + 0x78) = puVar5; } else { **(undefined8 **)(param_1 + 0x80) = puVar5; } *(undefined8 **)(param_1 + 0x80) = puVar5; return puVar5; }