undefined4 FUN_004388fc(int *param_1,int param_2,int param_3)
{
int iVar1;
int iVar2;
if (param_3 < 0) {
if (param_2 == 0) {
return 0;
}
param_3 = FUN_00483e50(param_2);
}
if (*param_1 < param_3) {
iVar2 = param_1[2];
if (iVar2 == 0) goto LAB_00438a7c;
iVar1 = FUN_0043a6b4(iVar2,param_3 + 1,"asn1_lib.c",0x179);
param_1[2] = iVar1;
}
else {
iVar1 = param_1[2];
if (iVar1 != 0) goto LAB_00438958;
LAB_00438a7c:
iVar1 = FUN_0043a36c(param_3 + 1,"asn1_lib.c",0x177);
param_1[2] = iVar1;
iVar2 = 0;
}
if (iVar1 == 0) {
FUN_00433604(0xd,0xba,0x41,"asn1_lib.c",0x17d);
param_1[2] = iVar2;
return 0;
}
LAB_00438958:
*param_1 = param_3;
if (param_2 == 0) {
return 1;
}
FUN_00483c90(iVar1,param_2,param_3);
*(undefined1 *)(param_1[2] + param_3) = 0;
return 1;
}