int * FUN_00462370(int *param_1,undefined4 *param_2,int param_3)
{
char cVar1;
undefined1 *puVar2;
int iVar3;
int iVar4;
int iVar5;
char *pcVar6;
char *pcVar7;
int *piVar8;
int iVar9;
char *pcVar10;
if ((param_1 == (int *)0x0) || (piVar8 = (int *)*param_1, piVar8 == (int *)0x0)) {
piVar8 = (int *)FUN_00438550(2);
if (piVar8 == (int *)0x0) {
return (int *)0x0;
}
piVar8[1] = 2;
}
pcVar10 = (char *)*param_2;
puVar2 = (undefined1 *)FUN_0043a36c(param_3 + 1,"a_int.c",199);
if (puVar2 == (undefined1 *)0x0) {
FUN_00433604(0xd,0xc2,0x41,"a_int.c",0x103);
if ((param_1 != (int *)0x0) && ((int *)*param_1 == piVar8)) {
return (int *)0x0;
}
FUN_004384e0(piVar8);
return (int *)0x0;
}
iVar9 = param_3;
if (param_3 == 0) {
piVar8[1] = 2;
goto LAB_004623f8;
}
if (-1 < *pcVar10) {
piVar8[1] = 2;
pcVar7 = pcVar10;
iVar3 = param_3;
if (*pcVar10 == '\0') {
if (param_3 == 1) {
iVar3 = 1;
}
else {
pcVar7 = pcVar10 + 1;
iVar3 = param_3 + -1;
iVar9 = param_3 + -1;
}
}
FUN_00483c90(puVar2,pcVar7,iVar3);
goto LAB_004623f8;
}
piVar8[1] = 0x102;
iVar4 = param_3 + -1;
pcVar7 = pcVar10;
iVar3 = param_3;
if (*pcVar10 == -1) {
if (param_3 == 1) {
iVar4 = 0;
iVar3 = 1;
}
else {
iVar4 = param_3 + -2;
pcVar7 = pcVar10 + 1;
iVar3 = param_3 + -1;
iVar9 = param_3 + -1;
}
}
pcVar7 = pcVar7 + iVar4;
cVar1 = *pcVar7;
pcVar6 = puVar2 + iVar4;
iVar4 = iVar9;
if (cVar1 == '\0') {
if (iVar9 != 0) {
*pcVar6 = '\0';
while( true ) {
pcVar7 = pcVar7 + -1;
cVar1 = *pcVar7;
iVar4 = iVar4 + -1;
pcVar6 = pcVar6 + -1;
if (cVar1 != '\0') break;
if (iVar4 == 0) goto LAB_00462590;
*pcVar6 = '\0';
}
goto LAB_0046254c;
}
}
else {
LAB_0046254c:
if (iVar4 != 0) {
*pcVar6 = -cVar1;
if (1 < iVar4) {
iVar3 = 0;
do {
iVar5 = iVar3 + -1;
pcVar6[iVar3 + -1] = ~pcVar7[iVar3 + -1];
iVar3 = iVar5;
} while (iVar5 != 1 - iVar4);
}
goto LAB_004623f8;
}
}
LAB_00462590:
*puVar2 = 1;
iVar9 = iVar9 + 1;
puVar2[iVar3] = 0;
LAB_004623f8:
if (piVar8[2] != 0) {
FUN_0043a484();
}
piVar8[2] = (int)puVar2;
*piVar8 = iVar9;
if (param_1 != (int *)0x0) {
*param_1 = (int)piVar8;
}
*param_2 = pcVar10 + param_3;
return piVar8;
}