undefined4
FUN_00464afc(uint *param_1,byte *param_2,int param_3,uint param_4,char *param_5,int param_6)

{
  uint *puVar1;
  undefined4 uVar2;
  int *piVar3;
  int iVar4;
  uint *puVar5;
  uint *puVar6;
  code *pcVar7;
  byte *local_res4 [3];
  
  local_res4[0] = param_2;
  if ((*(int *)(param_6 + 0x10) != 0) &&
     (pcVar7 = *(code **)(*(int *)(param_6 + 0x10) + 0x14), pcVar7 != (code *)0x0)) {
    uVar2 = (*pcVar7)();
    return uVar2;
  }
  if (*(int *)(param_6 + 4) == -4) {
    puVar5 = (uint *)*param_1;
    if (puVar5 == (uint *)0x0) {
      puVar5 = (uint *)FUN_004674f8();
      *param_1 = (uint)puVar5;
    }
    if (*puVar5 != param_4) {
      FUN_0046292c(puVar5,param_4,0);
    }
    puVar1 = puVar5 + 1;
    puVar6 = param_1;
  }
  else {
    puVar6 = (uint *)0x0;
    puVar5 = (uint *)0x0;
    puVar1 = param_1;
  }
  if (param_4 == 5) {
    if (param_3 == 0) {
      *puVar1 = 1;
      goto LAB_00464c34;
    }
    FUN_00433604(0xd,0xcc,0x90,"tasn_dec.c",0x3b4);
    goto LAB_00464d28;
  }
  if ((int)param_4 < 6) {
    if (param_4 != 2) {
      if (param_4 == 3) {
        pcVar7 = FUN_0046bad0;
LAB_00464c70:
        iVar4 = (*pcVar7)(puVar1,local_res4,param_3);
        if (iVar4 != 0) goto LAB_00464c34;
        goto LAB_00464d28;
      }
      if (param_4 == 1) {
        if (param_3 == 1) {
          *puVar1 = (uint)*local_res4[0];
          goto LAB_00464c34;
        }
        FUN_00433604(0xd,0xcc,0x6a,"tasn_dec.c",0x3be);
        goto LAB_00464d28;
      }
      goto LAB_00464bd0;
    }
  }
  else if (param_4 != 10) {
    if ((int)param_4 < 0xb) {
      if (param_4 == 6) {
        pcVar7 = FUN_00437d7c;
        goto LAB_00464c70;
      }
    }
    else if ((param_4 == 0x102) || (param_4 == 0x10a)) goto LAB_00464d64;
LAB_00464bd0:
    piVar3 = (int *)*puVar1;
    if (piVar3 == (int *)0x0) {
      piVar3 = (int *)FUN_00438550(param_4);
      if (piVar3 == (int *)0x0) {
        FUN_00433604(0xd,0xcc,0x41,"tasn_dec.c",0x3f2);
        goto LAB_00464d28;
      }
      *puVar1 = (uint)piVar3;
    }
    else {
      piVar3[1] = param_4;
    }
    if (*param_5 != '\0') {
      if (piVar3[2] != 0) {
        FUN_0043a484();
      }
      *piVar3 = param_3;
      piVar3[2] = (int)local_res4[0];
      *param_5 = '\0';
      goto LAB_00464c34;
    }
    iVar4 = FUN_004388fc(piVar3,local_res4[0],param_3);
    if (iVar4 != 0) goto LAB_00464c34;
    FUN_00433604(0xd,0xcc,0x41,"tasn_dec.c",0x40a);
    FUN_004384e0(piVar3);
    *puVar1 = 0;
    goto LAB_00464d28;
  }
LAB_00464d64:
  iVar4 = FUN_00462370(puVar1,local_res4,param_3);
  if (iVar4 != 0) {
    *(uint *)(*puVar1 + 4) = param_4 | *(uint *)(*puVar1 + 4) & 0x100;
LAB_00464c34:
    if (puVar5 == (uint *)0x0) {
      return 1;
    }
    if (param_4 == 5) {
      puVar5[1] = 0;
      return 1;
    }
    return 1;
  }
LAB_00464d28:
  FUN_004672e4(puVar5);
  if (puVar6 != (uint *)0x0) {
    *puVar6 = 0;
  }
  return 0;
}