void AES_CMAC(int param_1,uint param_2,undefined4 param_3,int param_4,undefined4 param_5,
             uint *param_6)

{
  byte *pbVar1;
  byte *pbVar2;
  byte *pbVar3;
  int iVar4;
  byte *pbVar5;
  int iVar6;
  undefined4 local_70;
  byte local_6c [16];
  byte local_5c [16];
  byte local_4c [16];
  byte local_3c [20];
  
  if (*param_6 < 0x10) {
    if (RTDebugLevel != 0) {
      printk("AES_CMAC: MAC text length is less than %d bytes).\n",0x10);
    }
  }
  else if (param_4 == 0x10) {
    memset(local_4c,0,0x10)   //possible issue identified - semgrep
    memset(local_3c,0,0x10)   //possible issue identified - semgrep
    AES_CMAC_GenerateSubKey(param_3,0x10,local_4c,local_3c);
    memmove(local_6c,Const_Zero,0x10)   //possible issue identified - semgrep
    iVar6 = 0;
    for (; pbVar5 = (byte *)(param_1 + iVar6), 0x10 < param_2; param_2 = param_2 - 0x10) {
      iVar4 = 0;
      do {
        pbVar1 = local_6c + iVar4;
        pbVar3 = local_5c + iVar4;
        iVar4 = iVar4 + 1;
        *pbVar3 = *pbVar1 ^ *pbVar5;
        pbVar5 = pbVar5 + 1;
      } while (iVar4 != 0x10);
      local_70 = 0x10;
      iVar6 = iVar6 + 0x10;
      RT_AES_Encrypt(local_5c,0x10,param_3,0x10,local_6c,&local_70);
    }
    pbVar5 = (byte *)(param_1 + iVar6);
    if (param_2 == 0x10) {
      iVar6 = 0;
      do {
        pbVar1 = local_6c + iVar6;
        pbVar3 = local_4c + iVar6;
        pbVar2 = local_5c + iVar6;
        iVar6 = iVar6 + 1;
        *pbVar2 = *pbVar1 ^ *pbVar5 ^ *pbVar3;
        pbVar5 = pbVar5 + 1;
      } while (iVar6 != 0x10);
    }
    else {
      pbVar1 = local_5c;
      memset(pbVar1,0,0x10)   //possible issue identified - semgrep
      memmove(pbVar1,pbVar5,param_2)   //possible issue identified - semgrep
      local_5c[param_2] = 0x80;
      iVar6 = 0;
      do {
        pbVar5 = local_6c + iVar6;
        pbVar3 = local_3c + iVar6;
        iVar6 = iVar6 + 1;
        *pbVar1 = *pbVar5 ^ *pbVar1 ^ *pbVar3;
        pbVar1 = pbVar1 + 1;
      } while (iVar6 != 0x10);
    }
    RT_AES_Encrypt(local_5c,0x10,param_3,0x10,param_5,param_6);
  }
  else if (RTDebugLevel != 0) {
    printk("AES_CMAC: key length is %d bytes, it must be %d bytes(128 bits).\n",param_4,0x10);
  }
  return;
}