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;
}