void FUN_0041abac(undefined4 *param_1,void *param_2,uint param_3)

{
  byte *pbVar1;
  undefined4 *puVar2;
  byte local_b0 [64];
  byte local_70 [88];
  
  puVar2 = param_1 + 0x16;
  memset(puVar2,0,0x40)   //possible issue identified - semgrep
  if (param_3 < 0x41) {
    memcpy(puVar2,param_2,param_3)   //possible issue identified - semgrep
  }
  else {
    local_70[0] = 1;
    local_70[1] = 0x23;
    local_70[2] = 0x45;
    local_70[3] = 0x67;
    local_70[4] = 0x89;
    local_70[5] = 0xab;
    local_70[6] = 0xcd;
    local_70[7] = 0xef;
    local_70[8] = 0xfe;
    local_70[9] = 0xdc;
    local_70[10] = 0xba;
    local_70[0xb] = 0x98;
    local_70[0xc] = 0x76;
    local_70[0xd] = 0x54;
    local_70[0xe] = 0x32;
    local_70[0xf] = 0x10;
    local_70[0x10] = 0;
    local_70[0x11] = 0;
    local_70[0x12] = 0;
    local_70[0x13] = 0;
    local_70[0x14] = 0;
    local_70[0x15] = 0;
    local_70[0x16] = 0;
    local_70[0x17] = 0;
    FUN_0041a7d8(local_70,param_2,param_3);
    FUN_0041a9cc(local_70,puVar2);
  }
  *param_1 = 0x67452301;
  param_1[1] = 0xefcdab89;
  param_1[2] = 0x98badcfe;
  param_1[3] = 0x10325476;
  param_1[4] = 0;
  param_1[5] = 0;
  memset(local_b0,0x36,0x40)   //possible issue identified - semgrep
  pbVar1 = local_b0;
  puVar2 = param_1;
  do {
    *pbVar1 = *(byte *)(puVar2 + 0x16) ^ *pbVar1;
    pbVar1 = pbVar1 + 1;
    puVar2 = (undefined4 *)((int)puVar2 + 1);
  } while (local_70 != pbVar1);
  FUN_0041a7d8(param_1,local_b0,0x40);
  return;
}