/* Agent_Release_x64.exe sha256 6f2be7b8eb799ba51b359d1958720aac5baee5b7ee0d1d36684d3cbd72d45469 * Ghidra 12.1.2 decompiler output for 0x1400d0f10 FUN_1400d0f10 * Pseudocode, not original source. */ ulonglong FUN_1400d0f10(longlong param_1,uint param_2,int *param_3) { uint uVar1; uint *puVar2; undefined4 uVar3; undefined4 extraout_var; ulonglong uVar4; uint uVar5; int iVar6; uint uVar7; undefined8 *puVar8; int local_res8 [2]; uint local_res10; if ((param_1 == 0) || (param_3 == (int *)0x0)) { return 0x10; } uVar7 = 0; uVar5 = 0; if (param_2 != 0) { puVar8 = (undefined8 *)(param_1 + 8); local_res10 = param_2; do { uVar1 = *(uint *)(puVar8 + 1); puVar2 = (uint *)*puVar8; if (*(int *)(puVar8 + -1) == 0) break; switch(*(int *)(puVar8 + -1)) { case 1: uVar4 = FUN_1400d24b0(local_res8); break; case 2: uVar4 = FUN_1400d2220((longlong)puVar2,local_res8); break; case 3: uVar3 = FUN_1400d2170(*puVar2,local_res8); uVar4 = CONCAT44(extraout_var,uVar3); break; case 4: uVar4 = FUN_1400d1fc0((ulonglong)uVar1,local_res8); break; case 5: uVar4 = FUN_1400d1e70(uVar1,local_res8); break; case 6: uVar5 = uVar5 + 2; goto LAB_1400d1057; case 7: uVar4 = FUN_1400d1bc0(puVar2,uVar1,local_res8); break; case 8: uVar4 = FUN_1400d19e0((byte *)puVar2,uVar1,local_res8); break; case 9: uVar4 = FUN_1400d17a0((byte *)puVar2,uVar1,local_res8); break; case 10: uVar4 = FUN_1400d1490((ushort *)puVar2,uVar1,local_res8); break; case 0xb: uVar4 = FUN_1400d3490((longlong)puVar2,local_res8); break; default: goto LAB_1400d10a5; case 0xd: case 0xe: case 0xf: uVar4 = FUN_1400d0f10((longlong)puVar2,uVar1,local_res8); } if ((int)uVar4 != 0) { return uVar4; } uVar5 = uVar5 + local_res8[0]; LAB_1400d1057: uVar7 = uVar7 + 1; puVar8 = puVar8 + 7; } while (uVar7 < local_res10); if (0x7f < uVar5) { if (uVar5 < 0x100) { iVar6 = uVar5 + 3; } else if (uVar5 < 0x10000) { iVar6 = uVar5 + 4; } else { if (0xffffff < uVar5) { LAB_1400d10a5: return 0x10; } iVar6 = uVar5 + 5; } goto LAB_1400d10a0; } } iVar6 = uVar5 + 2; LAB_1400d10a0: *param_3 = iVar6; return 0; }