int FUN_004651b4(int param_1,undefined4 *param_2,undefined4 param_3,char *param_4,int param_5,
undefined4 param_6,char param_7,undefined1 *param_8)
{
char *pcVar1;
int iVar2;
undefined4 uVar3;
int iVar4;
char *pcVar5;
int iVar6;
char *pcVar7;
char *pcVar8;
char local_78;
char local_77;
char local_76;
char local_75;
int local_74;
char *local_70;
char *local_6c;
int local_68;
char *local_64;
int local_60;
char *local_5c;
char *local_58;
undefined4 local_54;
uint local_50;
int *local_4c;
char *local_48;
char **local_44;
int *local_40;
int *local_3c;
char *local_38;
char **local_34;
char **local_30;
local_76 = '\0';
if (param_1 == 0) {
FUN_00433604(0xd,0x6c,0x7d,"tasn_dec.c",0x305);
return 0;
}
if (*param_4 == '\x05') {
local_74 = param_5;
param_5 = -1;
}
else {
local_74 = *(int *)(param_4 + 4);
}
if (local_74 == -4) {
if (-1 < param_5) {
FUN_00433604(0xd,0x6c,0x7f,"tasn_dec.c",0x318);
return 0;
}
if (param_7 != 0) {
FUN_00433604(0xd,0x6c,0x7e,"tasn_dec.c",0x31e);
return 0;
}
local_6c = (char *)*param_2;
iVar2 = FUN_00464ecc(0,&local_74,&local_75,0,0,&local_6c,param_3,0xffffffff,0,0,param_8);
if (iVar2 == 0) {
uVar3 = 0x327;
goto LAB_00465298;
}
if (local_75 != '\0') {
local_74 = -3;
}
}
if (param_5 == -1) {
param_6 = 0;
param_5 = local_74;
}
local_6c = (char *)*param_2;
iVar2 = FUN_00464ecc(&local_70,0,0,&local_77,&local_78,&local_6c,param_3,param_5,param_6,
(int)param_7,param_8);
if (iVar2 == 0) {
uVar3 = 0x338;
LAB_00465298:
FUN_00433604(0xd,0x6c,0x3a,"tasn_dec.c",uVar3);
return 0;
}
if (iVar2 == -1) {
return -1;
}
if (local_74 - 0x10U < 2) {
if (local_74 == -3) goto LAB_0046564c;
if (local_78 == '\0') {
FUN_00433604(0xd,0x6c,0x9c,"tasn_dec.c",0x34c);
return 0;
}
LAB_004654f0:
pcVar7 = (char *)*param_2;
if (local_77 != '\0') {
local_75 = local_77;
local_64 = local_6c;
if (0 < (int)local_70) {
local_4c = &local_68;
local_48 = &local_75;
local_44 = &local_64;
iVar4 = 1;
pcVar8 = local_70;
do {
pcVar1 = local_64;
if (((pcVar8 == (char *)0x1) || (*local_64 != '\0')) ||
(pcVar5 = local_64 + 2, local_64[1] != '\0')) {
iVar6 = FUN_00464ecc(local_4c,0,0,local_48,0,local_44,pcVar8,0xffffffff,0,0,0);
if (iVar6 == 0) {
FUN_00433604(0xd,0xbe,0x3a,"tasn_dec.c",0x448);
goto LAB_00465490;
}
if (local_75 == '\0') {
pcVar8 = pcVar1 + ((int)pcVar8 - (int)(local_64 + local_68));
local_64 = local_64 + local_68;
}
else {
iVar4 = iVar4 + 1;
pcVar8 = pcVar1 + ((int)pcVar8 - (int)local_64) //possible issue identified - semgrep
}
}
else {
iVar4 = iVar4 + -1;
local_64 = pcVar5;
if (iVar4 == 0) goto LAB_004655cc;
pcVar8 = pcVar8 + -2;
}
} while (0 < (int)pcVar8);
if (iVar4 == 0) {
LAB_004655cc:
local_6c = local_64;
local_70 = local_64 + -(int)pcVar7;
goto LAB_00465460;
}
}
FUN_00433604(0xd,0xbe,0x89,"tasn_dec.c",0x453);
goto LAB_00465490;
}
local_58 = (char *)0x0;
local_6c = local_6c + (int)local_70;
local_70 = local_6c + -(int)pcVar7;
}
else {
if (local_74 == -3) {
LAB_0046564c:
if (param_8 != (undefined1 *)0x0) {
*param_8 = 0;
}
goto LAB_004654f0;
}
if (local_78 == '\0') {
pcVar7 = local_6c;
local_6c = local_6c + (int)local_70;
}
else {
local_50 = (int)local_77 & 1;
local_5c = (char *)0x0;
local_54 = 0;
local_58 = (char *)0x0;
local_64 = local_6c;
if (0 < (int)local_70) {
local_40 = &local_60;
local_3c = &local_68;
local_38 = &local_75;
local_34 = &local_64;
local_30 = &local_5c;
pcVar7 = local_6c;
pcVar8 = local_70;
do {
if (((pcVar8 != (char *)0x1) && (*pcVar7 == '\0')) &&
(local_64 = pcVar7 + 2, pcVar7[1] == '\0')) {
if (local_50 != 0) goto LAB_004657c0;
FUN_00433604(0xd,0x6a,0x9f,"tasn_dec.c",0x479);
goto LAB_00465490;
}
local_64 = pcVar7;
iVar6 = FUN_00464ecc(local_40,0,0,local_3c,local_38,local_34,pcVar8,0xffffffff,0,0,0);
pcVar1 = local_5c;
iVar4 = local_60;
if (iVar6 == 0) {
FUN_00433604(0xd,0x6a,0x3a,"tasn_dec.c",0x483);
goto LAB_00465490;
}
if (local_75 != '\0') {
FUN_00433604(0xd,0x6a,0xc5,"tasn_dec.c",0x48e);
goto LAB_00465490;
}
iVar6 = FUN_0045c090(local_30,local_5c + local_60);
if (iVar6 == 0) {
FUN_00433604(0xd,0x8c,0x41,"tasn_dec.c",0x4a7);
goto LAB_00465490;
}
FUN_00483c90(local_58 + (int)pcVar1,local_64,iVar4);
local_64 = local_64 + iVar4;
pcVar8 = pcVar7 + ((int)pcVar8 - (int)local_64) //possible issue identified - semgrep
pcVar7 = local_64;
} while (0 < (int)pcVar8);
}
if (local_50 != 0) {
FUN_00433604(0xd,0x6a,0x89,"tasn_dec.c",0x498);
goto LAB_00465490;
}
LAB_004657c0:
pcVar7 = local_5c;
local_6c = local_64;
iVar4 = FUN_0045c090(&local_5c,local_5c + 1);
if (iVar4 == 0) {
FUN_00433604(0xd,0x6c,0x41,"tasn_dec.c",0x371);
return 0;
}
local_58[(int)pcVar7] = '\0';
local_76 = '\x01';
local_70 = pcVar7;
pcVar7 = local_58;
}
}
LAB_00465460:
iVar4 = FUN_00464afc(param_1,pcVar7,local_70,local_74,&local_76,param_4);
if (iVar4 != 0) {
iVar2 = 1;
*param_2 = local_6c;
}
LAB_00465490:
if (local_76 == '\0') {
return iVar2;
}
if (local_58 == (char *)0x0) {
return iVar2;
}
FUN_0043a484();
return iVar2;
}