undefined4
FUN_00464ecc(int *param_1,int *param_2,undefined1 *param_3,undefined1 *param_4,byte *param_5,
            int *param_6,int param_7,int param_8,int param_9,char param_10,char *param_11)

{
  undefined4 uVar1;
  uint uVar2;
  int iVar3;
  int local_38;
  int local_34;
  int local_30;
  int local_2c;
  
  iVar3 = *param_6;
  local_2c = iVar3;
  if (param_11 == (char *)0x0) {
    uVar2 = FUN_004385f0(&local_2c,&local_30,&local_38,&local_34,param_7);
  }
  else if (*param_11 == '\0') {
    uVar2 = FUN_004385f0(&local_2c,&local_30,&local_38,&local_34,param_7);
    *(int *)(param_11 + 0x10) = local_34;
    *(int *)(param_11 + 0xc) = local_38;
    *param_11 = '\x01';
    *(uint *)(param_11 + 4) = uVar2;
    *(int *)(param_11 + 8) = local_30;
    *(int *)(param_11 + 0x14) = local_2c - iVar3;
    if (((uVar2 & 0x81) == 0) && (param_7 < local_30 + (local_2c - iVar3))) {
      FUN_00433604(0xd,0x68,0x9b,"tasn_dec.c",0x4ec);
      *param_11 = '\0';
      return 0;
    }
  }
  else {
    local_38 = *(int *)(param_11 + 0xc);
    local_34 = *(int *)(param_11 + 0x10);
    local_30 = *(int *)(param_11 + 8);
    local_2c = iVar3 + *(int *)(param_11 + 0x14);
    uVar2 = *(uint *)(param_11 + 4);
  }
  if ((uVar2 & 0x80) == 0) {
    if (-1 < param_8) {
      if ((param_8 != local_38) || (param_9 != local_34)) {
        if (param_10 != '\0') {
          return 0xffffffff;
        }
        if (param_11 != (char *)0x0) {
          *param_11 = '\0';
        }
        FUN_00433604(0xd,0x68,0xa8,"tasn_dec.c",0x502);
        return 0;
      }
      if (param_11 != (char *)0x0) {
        *param_11 = '\0';
      }
    }
    if ((uVar2 & 1) != 0) {
      local_30 = iVar3 + (param_7 - local_2c);
    }
    if (param_4 != (undefined1 *)0x0) {
      *param_4 = (char)(uVar2 & 1);
    }
    if (param_5 != (byte *)0x0) {
      *param_5 = (byte)uVar2 & 0x20;
    }
    if (param_1 != (int *)0x0) {
      *param_1 = local_30;
    }
    if (param_3 != (undefined1 *)0x0) {
      *param_3 = (char)local_34;
    }
    if (param_2 != (int *)0x0) {
      *param_2 = local_38;
    }
    *param_6 = local_2c;
    uVar1 = 1;
  }
  else {
    FUN_00433604(0xd,0x68,0x66,"tasn_dec.c",0x4f5);
    uVar1 = 0;
    if (param_11 != (char *)0x0) {
      *param_11 = '\0';
    }
  }
  return uVar1;
}