/* Agent_Release_x64.exe sha256 6f2be7b8eb799ba51b359d1958720aac5baee5b7ee0d1d36684d3cbd72d45469 * Ghidra 12.1.2 decompiler output for 0x1400a1a40 FUN_1400a1a40 * Pseudocode, not original source. */ void FUN_1400a1a40(undefined4 *param_1,undefined4 *param_2) { uint uVar1; uint uVar2; longlong lVar3; ulonglong uVar4; undefined8 uVar5; uint *puVar6; uint *puVar7; uint uVar8; uint local_res8 [2]; if (*(longlong *)(param_1 + 10) == 0) { puVar7 = (uint *)0x0; } else { puVar7 = *(uint **)(param_1 + 6); } do { if (puVar7 == (uint *)0x0) { *param_2 = *param_1; return; } if (puVar7 == (uint *)0x0) { /* WARNING: Subroutine does not return */ FUN_14000b450(0x80004005); } uVar1 = *puVar7; uVar2 = param_2[0xc]; lVar3 = *(longlong *)(param_2 + 4); uVar4 = (ulonglong)uVar1 % (ulonglong)uVar2; uVar8 = (uint)uVar4; local_res8[0] = uVar1; if (lVar3 == 0) { LAB_1400a1afe: uVar5 = FUN_14003f710((longlong)(param_2 + 2),uVar2,'\x01'); if ((char)uVar5 == '\0') { /* WARNING: Subroutine does not return */ FUN_14000b450(0x8007000e); } } else { for (puVar6 = *(uint **)(lVar3 + uVar4 * 8); (puVar6 != (uint *)0x0 && (uVar8 == puVar6[6] % uVar2)); puVar6 = *(uint **)(puVar6 + 2)) { if (*puVar6 == uVar1) goto LAB_1400a1b3e; } if (lVar3 == 0) goto LAB_1400a1afe; for (puVar6 = *(uint **)(lVar3 + uVar4 * 8); (puVar6 != (uint *)0x0 && (uVar8 == puVar6[6] % uVar2)); puVar6 = *(uint **)(puVar6 + 2)) { if (*puVar6 == uVar1) goto LAB_1400a1b3a; } if (lVar3 == 0) goto LAB_1400a1afe; } FUN_14003f000((char *)(param_2 + 2)); puVar6 = FUN_140041130((char *)(param_2 + 2),local_res8,uVar8,uVar1); FUN_14003f000((char *)(param_2 + 2)); LAB_1400a1b3a: *(undefined1 *)(puVar6 + 1) = 0; LAB_1400a1b3e: puVar7 = *(uint **)(puVar7 + 6); } while( true ); }