void FUN_0041a9cc(undefined4 *param_1,undefined4 *param_2)

{
  undefined1 *puVar1;
  undefined4 uVar2;
  undefined4 *puVar3;
  undefined4 uVar4;
  undefined4 uVar5;
  size_t __n;
  int iVar6;
  undefined4 *puVar7;
  
  puVar7 = param_1 + 6;
  iVar6 = -(param_1[4] & 0x3f);
  __n = iVar6 + 0x37   //possible issue identified - semgrep
  puVar1 = (undefined1 *)((int)puVar7 + (param_1[4] & 0x3f));
  *puVar1 = 0x80;
  puVar3 = (undefined4 *)(puVar1 + 1);
  if ((int)__n < 0) {   //possible issue identified - semgrep
    memset(puVar3,0,iVar6 + 0x3f)   //possible issue identified - semgrep
    iVar6 = 0x10;
    puVar3 = puVar7;
    do {
      iVar6 = iVar6 + -1;
      *puVar3 = *puVar3;
      puVar3 = puVar3 + 1;
    } while (iVar6 != 0);
    FUN_00419b30(param_1,puVar7);
    __n = 0x38   //possible issue identified - semgrep
    puVar3 = puVar7;
  }
  memset(puVar3,0,__n);
  iVar6 = 0xe;
  puVar3 = puVar7;
  do {
    iVar6 = iVar6 + -1;
    *puVar3 = *puVar3;
    puVar3 = puVar3 + 1;
  } while (iVar6 != 0);
  param_1[0x15] = (uint)param_1[4] >> 0x1d | param_1[5] << 3;
  param_1[0x14] = param_1[4] << 3;
  FUN_00419b30(param_1,puVar7);
  iVar6 = 4;
  puVar3 = param_1;
  do {
    iVar6 = iVar6 + -1;
    *puVar3 = *puVar3;
    puVar3 = puVar3 + 1;
  } while (iVar6 != 0);
  uVar4 = param_1[2];
  uVar5 = param_1[3];
  uVar2 = param_1[1];
  *param_2 = *param_1;
  param_2[1] = uVar2;
  param_2[2] = uVar4;
  param_2[3] = uVar5;
                    /* WARNING: Could not recover jumptable at 0x0041ab3c. Too many branches */
                    /* WARNING: Treating indirect jump as call */
  memset(param_1,0,0x58)   //possible issue identified - semgrep
  return;
}