decompiled_code:
__int64 __fastcall text_retirer_espaces(__int64 a1)
{
int v2; // ebp
__int64 result; // rax
int v4; // er11
__int64 v5; // r8
__int64 i; // rdi
__int64 v7; // rax
int v8; // eax

if ( a1 )
{
if ( *(_QWORD *)a1 )
{
v2 = text_obtenir_taille(a1);
if ( (unsigned int)text_contient_char((const char **)a1, 32) == 1 )
{
v4 = 0;
v5 = 1LL;
for ( i = 0LL; v2 > (int)i; --v4 )
{
for ( ; *(_BYTE *)(*(_QWORD *)a1 + i) == 32; *(_BYTE *)(*(_QWORD *)a1 + v8) = 0 )
{
--v2;
v8 = i;
if ( v2 > (int)i )
{
v7 = v5;
do
{
*(_BYTE *)(*(_QWORD *)a1 + v7 - 1) = *(_BYTE *)(*(_QWORD *)a1 + v7);
++v7;
}
while ( v7 != i + 2 + (unsigned int)(v4 - 1 + v2) );
v8 = v2;
}
}
++i;
++v5;
}
}
*(_QWORD *)(a1 + 8) = v2;
result = 1LL;
}
else
{
fwrite(&unk_1028, 1uLL, 0x4DuLL, stderr);
result = 0xFFFFFFFFLL;
}
}
else
{
fwrite(&unk_FD0, 1uLL, 0x54uLL, stderr);
result = 0xFFFFFFFFLL;
}
return result;
}

canonical_decompiled_code:
__int64 __fastcall func4(__int64 a1)
{
int v2; // ebp
__int64 result; // rax
int v4; // er11
__int64 v5; // r8
__int64 i; // rdi
__int64 v7; // rax
int v8; // eax

if ( a1 )
{
if ( *(_QWORD *)a1 )
{
v2 = func0(a1);
if ( (unsigned int)func3((const char **)a1, 32) == 1 )
{
v4 = 0;
v5 = 1LL;
for ( i = 0LL; v2 > (int)i; --v4 )
{
for ( ; *(_BYTE *)(*(_QWORD *)a1 + i) == 32; *(_BYTE *)(*(_QWORD *)a1 + v8) = 0 )
{
--v2;
v8 = i;
if ( v2 > (int)i )
{
v7 = v5;
do
{
*(_BYTE *)(*(_QWORD *)a1 + v7 - 1) = *(_BYTE *)(*(_QWORD *)a1 + v7);
++v7;
}
while ( v7 != i + 2 + (unsigned int)(v4 - 1 + v2) );
v8 = v2;
}
}
++i;
++v5;
}
}
*(_QWORD *)(a1 + 8) = v2;
result = 1LL;
}
else
{
fwrite(&unk_1028, 1uLL, 0x4DuLL, stderr);
result = 0xFFFFFFFFLL;
}
}
else
{
fwrite(&unk_FD0, 1uLL, 0x54uLL, stderr);
result = 0xFFFFFFFFLL;
}
return result;
}

original_code:
int text_retirer_espaces(Text t)
{
 if(t == ((void *)0))
 {
  fprintf(stderr,"*** erreur : text_retirer_prefix() - Le paramètre 't' ne devrait jamais être nul.\n");
  return -1;
 }
 else
 {
  if(t->data == ((void *)0))
  {
   fprintf(stderr,"*** erreur : text_retirer_prefix() - Il n'y a pas de données dans le texte.\n");
   return -1;
  }
  else
  {
   int i,j,n;
   n=text_obtenir_taille(t);
   if(text_contient_char(t,' ')==1)
   {
    for(i=0;i<n;i++)
    {
     while(t->data[i]==' ')
     {
      for(j=i;j<n-1;j++)
      {
       t->data[j]=t->data[j+1];
      }
      t->data[j]='\0';
      n=n-1;
     }
    }
   }
   t->length=n;
   return 1;
  }
 }
}

canonical_original_code:
int text_retirer_espaces(struct Text *t)
{
 if(t == ((void *)0))
 {
  fprintf(stderr,"*** erreur : text_retirer_prefix() - Le paramètre 't' ne devrait jamais être nul.\n");
  return -1;
 }
 else
 {
  if(t->data == ((void *)0))
  {
   fprintf(stderr,"*** erreur : text_retirer_prefix() - Il n'y a pas de données dans le texte.\n");
   return -1;
  }
  else
  {
   int i; int j; int n;
   n=text_obtenir_taille(t);
   if(text_contient_char(t,' ')==1)
   {
    for(i=0;i<n;i++)
    {
     while(t->data[i]==' ')
     {
      for(j=i;j<n-1;j++)
      {
       t->data[j]=t->data[j+1];
      }
      t->data[j]='\0';
      n=n-1;
     }
    }
   }
   t->length=n;
   return 1;
  }
 }
}

variable_types: i int

variable_types: j int


decompiled_code:
__int64 __fastcall text_trim_char(char **a1, char a2)
{
int v2; // ebp
__int64 result; // rax
int v4; // er8
int v5; // er8
__int64 v6; // rax
__int64 v7; // rcx
char *v8; // rdx
char *i; // rax

if ( a1 )
{
if ( *a1 )
{
v2 = text_obtenir_taille((__int64)a1);
while ( **a1 == a2 )
{
v5 = v2;
if ( (unsigned int)v2 <= 1 )
{
*a1 = strdup(&s);
}
else
{
--v2;
v6 = 0LL;
if ( v2 <= 0 )
{
v4 = 0;
}
else
{
do
{
v7 = v6++;
(*a1)[v7] = (*a1)[v6];
}
while ( v6 != v5 - 1 );
v4 = v5 - 1;
}
(*a1)[v4] = 0;
}
}
v8 = (char *)v2;
for ( i = &(*a1)[v2 - 1]; *i == a2; i = &(*a1)[v2 - 1] )
{
if ( (unsigned int)v2 <= 1 )
{
*a1 = strdup(&s);
}
else
{
*i = 0;
--v2;
}
v8 = (char *)v2;
}
a1[1] = v8;
result = 1LL;
}
else
{
fwrite(&unk_F80, 1uLL, 0x4EuLL, stderr);
result = 0xFFFFFFFFLL;
}
}
else
{
fwrite(&unk_F28, 1uLL, 0x55uLL, stderr);
result = 0xFFFFFFFFLL;
}
return result;
}

canonical_decompiled_code:
__int64 __fastcall func5(char **a1, char a2)
{
int v2; // ebp
__int64 result; // rax
int v4; // er8
int v5; // er8
__int64 v6; // rax
__int64 v7; // rcx
char *v8; // rdx
char *i; // rax

if ( a1 )
{
if ( *a1 )
{
v2 = func0((__int64)a1);
while ( **a1 == a2 )
{
v5 = v2;
if ( (unsigned int)v2 <= 1 )
{
*a1 = strdup(&s);
}
else
{
--v2;
v6 = 0LL;
if ( v2 <= 0 )
{
v4 = 0;
}
else
{
do
{
v7 = v6++;
(*a1)[v7] = (*a1)[v6];
}
while ( v6 != v5 - 1 );
v4 = v5 - 1;
}
(*a1)[v4] = 0;
}
}
v8 = (char *)v2;
for ( i = &(*a1)[v2 - 1]; *i == a2; i = &(*a1)[v2 - 1] )
{
if ( (unsigned int)v2 <= 1 )
{
*a1 = strdup(&s);
}
else
{
*i = 0;
--v2;
}
v8 = (char *)v2;
}
a1[1] = v8;
result = 1LL;
}
else
{
fwrite(&unk_F80, 1uLL, 0x4EuLL, stderr);
result = 0xFFFFFFFFLL;
}
}
else
{
fwrite(&unk_F28, 1uLL, 0x55uLL, stderr);
result = 0xFFFFFFFFLL;
}
return result;
}

original_code:
int text_trim_char(Text t, char chr)
{
 if(t == ((void *)0))
 {
  fprintf(stderr,"*** erreur : text_retirer_espaces() - Le paramètre 't' ne devrait jamais être nul.\n");
  return -1;
 }
 else
 {
  if(t->data == ((void *)0))
  {
   fprintf(stderr,"*** erreur : text_retirer_espaces() - Il n'y a pas de données dans le texte.\n");
   return -1;
  }
  else
  {
   int j,n;
   n=text_obtenir_taille(t);
   while(t->data[0]==chr)
   {
    if(n==0 || n==1)
    {
     t->data=strdup("");
    }
    else
    {
     for(j=0;j<n-1;j++)
     {
      t->data[j]=t->data[j+1];
     }
     t->data[j]='\0';
     n=n-1;
    }
   }
   while(t->data[n-1]==chr)
   {
    if(n==0 || n==1)
    {
     t->data=strdup("");
    }
    else
    {
     t->data[n-1]='\0';
     n=n-1;
    }
   }
   t->length=n ;
   return 1;
  }
 }
}

canonical_original_code:
int text_trim_char(struct Text *t, char chr)
{
 if(t == ((void *)0))
 {
  fprintf(stderr,"*** erreur : text_retirer_espaces() - Le paramètre 't' ne devrait jamais être nul.\n");
  return -1;
 }
 else
 {
  if(t->data == ((void *)0))
  {
   fprintf(stderr,"*** erreur : text_retirer_espaces() - Il n'y a pas de données dans le texte.\n");
   return -1;
  }
  else
  {
   int j; int n;
   n=text_obtenir_taille(t);
   while(t->data[0]==chr)
   {
    if(n==0 || n==1)
    {
     t->data=strdup("");
    }
    else
    {
     for(j=0;j<n-1;j++)
     {
      t->data[j]=t->data[j+1];
     }
     t->data[j]='\0';
     n=n-1;
    }
   }
   while(t->data[n-1]==chr)
   {
    if(n==0 || n==1)
    {
     t->data=strdup("");
    }
    else
    {
     t->data[n-1]='\0';
     n=n-1;
    }
   }
   t->length=n ;
   return 1;
  }
 }
}

variable_types: struct Text { char *data; unsigned long length; } *

variable_types: chr char

variable_types: n int

return_type: int


decompiled_code:
__int64 __fastcall text_retirer_prefix(char **a1, char a2)
{
unsigned int v3; // edx
unsigned int v5; // eax
unsigned int v6; // edi
int v7; // ebp
__int64 v8; // r8
__int64 v9; // rax
__int64 v10; // rcx
unsigned int v11; // edi

if ( a1 )
{
if ( *a1 )
{
v3 = 1;
if ( **a1 == a2 )
{
v5 = text_obtenir_taille((__int64)a1);
v6 = v5;
v7 = v5;
if ( v5 <= 1 )
{
*a1 = strdup(&s);
}
else
{
v7 = v5 - 1;
v8 = v5 - 1;
v9 = 0LL;
if ( v7 <= 0 )
{
v11 = 0;
}
else
{
do
{
v10 = v9++;
(*a1)[v10] = (*a1)[v9];
}
while ( v9 != v8 );
v11 = v6 - 1;
}
(*a1)[v11] = 0;
}
a1[1] = (char *)v7;
v3 = 1;
}
}
else
{
fwrite(&unk_F80, 1uLL, 0x4EuLL, stderr);
v3 = -1;
}
}
else
{
fwrite(&unk_F28, 1uLL, 0x55uLL, stderr);
v3 = -1;
}
return v3;
}

original_code:
int text_retirer_prefix(Text t, char chr)
{
 if(t == ((void *)0))
 {
  fprintf(stderr,"*** erreur : text_retirer_espaces() - Le paramètre 't' ne devrait jamais être nul.\n");
  return -1;
 }
 else
 {
  if(t->data == ((void *)0))
  {
   fprintf(stderr,"*** erreur : text_retirer_espaces() - Il n'y a pas de données dans le texte.\n");
   return -1;
  }
  else
  {
   int j,n;
   if(t->data[0]==chr)
   {
    n=text_obtenir_taille(t);
    if(n==0 || n==1)
    {
     t->data=strdup("");
    }
    else
    {
     for(j=0;j<n-1;j++)
     {
      t->data[j]=t->data[j+1];
     }
     t->data[j]='\0';
     n=n-1;
    }
   t->length=n ;
   }
   return 1;
  }
 }
}

canonical_original_code:
int text_retirer_prefix(struct Text *t, char chr)
{
 if(t == ((void *)0))
 {
  fprintf(stderr,"*** erreur : text_retirer_espaces() - Le paramètre 't' ne devrait jamais être nul.\n");
  return -1;
 }
 else
 {
  if(t->data == ((void *)0))
  {
   fprintf(stderr,"*** erreur : text_retirer_espaces() - Il n'y a pas de données dans le texte.\n");
   return -1;
  }
  else
  {
   int j; int n;
   if(t->data[0]==chr)
   {
    n=text_obtenir_taille(t);
    if(n==0 || n==1)
    {
     t->data=strdup("");
    }
    else
    {
     for(j=0;j<n-1;j++)
     {
      t->data[j]=t->data[j+1];
     }
     t->data[j]='\0';
     n=n-1;
    }
   t->length=n ;
   }
   return 1;
  }
 }
}

user_defined_types: struct Text { char *data; unsigned long length; }


decompiled_code:
__int64 __fastcall text_retirer_suffix(_QWORD *a1, char a2)
{
_BYTE *v2; // rdx
__int64 result; // rax

if ( a1 )
{
if ( *a1 )
{
v2 = (_BYTE *)(*a1 + a1[1] - 1LL);
result = 0xFFFFFFFFLL;
if ( *v2 == a2 )
{
*v2 = 0;
--a1[1];
result = 1LL;
}
}
else
{
fwrite(&unk_F80, 1uLL, 0x4EuLL, stderr);
result = 0xFFFFFFFFLL;
}
}
else
{
fwrite(&unk_F28, 1uLL, 0x55uLL, stderr);
result = 0xFFFFFFFFLL;
}
return result;
}

canonical_decompiled_code:
__int64 __fastcall func7(_QWORD *a1, char a2)
{
_BYTE *v2; // rdx
__int64 result; // rax

if ( a1 )
{
if ( *a1 )
{
v2 = (_BYTE *)(*a1 + a1[1] - 1LL);
result = 0xFFFFFFFFLL;
if ( *v2 == a2 )
{
*v2 = 0;
--a1[1];
result = 1LL;
}
}
else
{
fwrite(&unk_F80, 1uLL, 0x4EuLL, stderr);
result = 0xFFFFFFFFLL;
}
}
else
{
fwrite(&unk_F28, 1uLL, 0x55uLL, stderr);
result = 0xFFFFFFFFLL;
}
return result;
}

original_code:
int text_retirer_suffix(Text t, char chr)
{
 if(t == ((void *)0))
 {
  fprintf(stderr,"*** erreur : text_retirer_espaces() - Le paramètre 't' ne devrait jamais être nul.\n");
  return -1;
 }
 else if(t->data == ((void *)0))
 {
  fprintf(stderr,"*** erreur : text_retirer_espaces() - Il n'y a pas de données dans le texte.\n");
  return -1;
 }
 else
 {
  if (t->data[t->length - 1] == chr)
  {
   t->data[t->length - 1] = '\0';
   t->length--;
   return 1;
  }
  else
  {
   return -1;
  }
 }
}

canonical_original_code:
int text_retirer_suffix(struct Text *t, char chr)
{
 if(t == ((void *)0))
 {
  fprintf(stderr,"*** erreur : text_retirer_espaces() - Le paramètre 't' ne devrait jamais être nul.\n");
  return -1;
 }
 else if(t->data == ((void *)0))
 {
  fprintf(stderr,"*** erreur : text_retirer_espaces() - Il n'y a pas de données dans le texte.\n");
  return -1;
 }
 else
 {
  if (t->data[t->length - 1] == chr)
  {
   t->data[t->length - 1] = '\0';
   t->length--;
   return 1;
  }
  else
  {
   return -1;
  }
 }
}


decompiled_code:
__int64 __fastcall text_en_maj(_QWORD *a1)
{
__int64 result; // rax
__int64 v3; // rbp
const __int32_t **v4; // rdi
__int64 i; // rax

result = 0xFFFFFFFFLL;
if ( a1 )
{
v3 = (unsigned int)text_obtenir_taille((__int64)a1);
result = 0xFFFFFFFFLL;
if ( v3 )
{
v4 = _ctype_toupper_loc();
for ( i = 0LL; i != v3; ++i )
*(_BYTE *)(*a1 + i) = (*v4)[*(char *)(*a1 + i)];
result = 1LL;
}
}
return result;
}

canonical_decompiled_code:
__int64 __fastcall func8(_QWORD *a1)
{
__int64 result; // rax
__int64 v3; // rbp
const __int32_t **v4; // rdi
__int64 i; // rax

result = 0xFFFFFFFFLL;
if ( a1 )
{
v3 = (unsigned int)func0((__int64)a1);
result = 0xFFFFFFFFLL;
if ( v3 )
{
v4 = _ctype_toupper_loc();
for ( i = 0LL; i != v3; ++i )
*(_BYTE *)(*a1 + i) = (*v4)[*(char *)(*a1 + i)];
result = 1LL;
}
}
return result;
}

original_code:
int text_en_maj(Text t)
{
 int res = -1;
 if (t)
 {
  size_t taille = text_obtenir_taille(t);
  if (taille > 0)
  {
   size_t i;
   for (i = 0; i < taille;i++)
    t->data[i] = toupper(t->data[i]);
   res = 1;
  }
 }
 return res;
}

canonical_original_code:
int text_en_maj(struct Text *t)
{
 int res = -1;
 if (t)
 {
  unsigned long taille = text_obtenir_taille(t);
  if (taille > 0)
  {
   unsigned long i;
   for (i = 0; i < taille;i++)
    t->data[i] = toupper(t->data[i]);
   res = 1;
  }
 }
 return res;
}

variable_types: res int

variable_types:
taille
unsigned long

variable_types:
i
unsigned long


decompiled_code:
__int64 test_construction()
{
__int64 result; // rax

result = construire_systeme();
if ( !result )
_assert_fail("construire_systeme() != NULL", "test_construction.c", 0x11u, "test_construction");
return result;
}

canonical_decompiled_code:
__int64 func0()
{
__int64 result; // rax

result = construire_systeme();
if ( !result )
_assert_fail("construire_systeme() != NULL", "test_construction.c", 0x11u, "test_construction");
return result;
}

original_code:
void test_construction(void)
{
 ((void) sizeof ((construire_systeme() != ((void *)0)) ? 1 : 0), __extension__ ({ if (construire_systeme() != ((void *)0)) ; else __assert_fail ("construire_systeme() != NULL", "test_construction.c", 17, __extension__ __PRETTY_FUNCTION__); }));
}

canonical_original_code:
void test_construction()
{
 ((void) sizeof ((construire_systeme() != ((void *)0)) ? 1 : 0), __extension__ ({ if (construire_systeme() != ((void *)0)) ; else __assert_fail ("construire_systeme() != NULL", "test_construction.c", 17, __extension__ __PRETTY_FUNCTION__); }));
}

return_type: void


decompiled_code:
__int64 test_donnees()
{
__int64 v0; // rax
__int64 v1; // rax
__int64 v2; // rax
__int64 v3; // rax
__int64 v4; // rax
__int64 v5; // rax
__int64 v6; // rax
__int64 v7; // rax
__int64 v8; // rax
__int64 result; // rax

if ( !creer_systeme() )
_assert_fail("creer_systeme()!=NULL", "test_donnees.c", 0x14u, "test_donnees");
if ( !creer_equation() )
_assert_fail("creer_equation()!=NULL", "test_donnees.c", 0x17u, "test_donnees");
if ( !creer_terme() )
_assert_fail("creer_terme()!=NULL", "test_donnees.c", 0x1Au, "test_donnees");
if ( !creer_argument() )
_assert_fail("creer_argument()!=NULL", "test_donnees.c", 0x1Du, "test_donnees");
if ( (unsigned int)initialiser_solutions(0LL, 3LL) != -1 )
_assert_fail("initialiser_solutions(NULL,3)==-1", "test_donnees.c", 0x20u, "test_donnees");
v0 = creer_solutions();
if ( (unsigned int)initialiser_solutions(v0, 3LL) != 1 )
_assert_fail("initialiser_solutions(creer_solutions(),3)==1", "test_donnees.c", 0x21u, "test_donnees");
if ( copie_equation(0LL) )
_assert_fail("copie_equation(NULL)==NULL", "test_donnees.c", 0x24u, "test_donnees");
v1 = creer_equation();
if ( !copie_equation(v1) )
_assert_fail("copie_equation(creer_equation())!=NULL", "test_donnees.c", 0x25u, "test_donnees");
if ( copie_terme(0LL) )
_assert_fail("copie_terme(NULL)==NULL", "test_donnees.c", 0x28u, "test_donnees");
v2 = creer_terme();
if ( !copie_terme(v2) )
_assert_fail("copie_terme(creer_terme())!=NULL", "test_donnees.c", 0x29u, "test_donnees");
if ( copie_argument(0LL) )
_assert_fail("copie_argument(NULL)==NULL", "test_donnees.c", 0x2Cu, "test_donnees");
v3 = creer_argument();
if ( !copie_argument(v3) )
_assert_fail("copie_argument(creer_argument())!=NULL", "test_donnees.c", 0x2Du, "test_donnees");
if ( (unsigned int)destroy_systeme(0LL) != -1 )
_assert_fail("destroy_systeme(NULL)==-1", "test_donnees.c", 0x30u, "test_donnees");
v4 = creer_systeme();
if ( (unsigned int)destroy_systeme(v4) != 1 )
_assert_fail("destroy_systeme(creer_systeme())==1", "test_donnees.c", 0x31u, "test_donnees");
if ( (unsigned int)destroy_equation(0LL) != -1 )
_assert_fail("destroy_equation(NULL)==-1", "test_donnees.c", 0x34u, "test_donnees");
v5 = creer_equation();
if ( (unsigned int)destroy_equation(v5) != 1 )
_assert_fail("destroy_equation(creer_equation())==1", "test_donnees.c", 0x35u, "test_donnees");
if ( (unsigned int)destroy_terme(0LL) != -1 )
_assert_fail("destroy_terme(NULL)==-1", "test_donnees.c", 0x38u, "test_donnees");
v6 = creer_terme();
if ( (unsigned int)destroy_terme(v6) != 1 )
_assert_fail("destroy_terme(creer_terme())==1", "test_donnees.c", 0x39u, "test_donnees");
if ( (unsigned int)destroy_argument(0LL) != -1 )
_assert_fail("destroy_argument(NULL)==-1", "test_donnees.c", 0x3Cu, "test_donnees");
v7 = creer_argument();
if ( (unsigned int)destroy_argument(v7) != 1 )
_assert_fail("destroy_argument(creer_argument())==1", "test_donnees.c", 0x3Du, "test_donnees");
if ( (unsigned int)destroy_solutions(0LL) != -1 )
_assert_fail("destroy_solutions(NULL)==-1", "test_donnees.c", 0x40u, "test_donnees");
v8 = creer_solutions();
result = destroy_solutions(v8);
if ( (_DWORD)result != 1 )
_assert_fail("destroy_solutions(creer_solutions())==1", "test_donnees.c", 0x41u, "test_donnees");
return result;
}

canonical_decompiled_code:
__int64 func0()
{
__int64 v0; // rax
__int64 v1; // rax
__int64 v2; // rax
__int64 v3; // rax
__int64 v4; // rax
__int64 v5; // rax
__int64 v6; // rax
__int64 v7; // rax
__int64 v8; // rax
__int64 result; // rax

if ( !creer_systeme() )
_assert_fail("creer_systeme()!=NULL", "test_donnees.c", 0x14u, "test_donnees");
if ( !creer_equation() )
_assert_fail("creer_equation()!=NULL", "test_donnees.c", 0x17u, "test_donnees");
if ( !creer_terme() )
_assert_fail("creer_terme()!=NULL", "test_donnees.c", 0x1Au, "test_donnees");
if ( !creer_argument() )
_assert_fail("creer_argument()!=NULL", "test_donnees.c", 0x1Du, "test_donnees");
if ( (unsigned int)initialiser_solutions(0LL, 3LL) != -1 )
_assert_fail("initialiser_solutions(NULL,3)==-1", "test_donnees.c", 0x20u, "test_donnees");
v0 = creer_solutions();
if ( (unsigned int)initialiser_solutions(v0, 3LL) != 1 )
_assert_fail("initialiser_solutions(creer_solutions(),3)==1", "test_donnees.c", 0x21u, "test_donnees");
if ( copie_equation(0LL) )
_assert_fail("copie_equation(NULL)==NULL", "test_donnees.c", 0x24u, "test_donnees");
v1 = creer_equation();
if ( !copie_equation(v1) )
_assert_fail("copie_equation(creer_equation())!=NULL", "test_donnees.c", 0x25u, "test_donnees");
if ( copie_terme(0LL) )
_assert_fail("copie_terme(NULL)==NULL", "test_donnees.c", 0x28u, "test_donnees");
v2 = creer_terme();
if ( !copie_terme(v2) )
_assert_fail("copie_terme(creer_terme())!=NULL", "test_donnees.c", 0x29u, "test_donnees");
if ( copie_argument(0LL) )
_assert_fail("copie_argument(NULL)==NULL", "test_donnees.c", 0x2Cu, "test_donnees");
v3 = creer_argument();
if ( !copie_argument(v3) )
_assert_fail("copie_argument(creer_argument())!=NULL", "test_donnees.c", 0x2Du, "test_donnees");
if ( (unsigned int)destroy_systeme(0LL) != -1 )
_assert_fail("destroy_systeme(NULL)==-1", "test_donnees.c", 0x30u, "test_donnees");
v4 = creer_systeme();
if ( (unsigned int)destroy_systeme(v4) != 1 )
_assert_fail("destroy_systeme(creer_systeme())==1", "test_donnees.c", 0x31u, "test_donnees");
if ( (unsigned int)destroy_equation(0LL) != -1 )
_assert_fail("destroy_equation(NULL)==-1", "test_donnees.c", 0x34u, "test_donnees");
v5 = creer_equation();
if ( (unsigned int)destroy_equation(v5) != 1 )
_assert_fail("destroy_equation(creer_equation())==1", "test_donnees.c", 0x35u, "test_donnees");
if ( (unsigned int)destroy_terme(0LL) != -1 )
_assert_fail("destroy_terme(NULL)==-1", "test_donnees.c", 0x38u, "test_donnees");
v6 = creer_terme();
if ( (unsigned int)destroy_terme(v6) != 1 )
_assert_fail("destroy_terme(creer_terme())==1", "test_donnees.c", 0x39u, "test_donnees");
if ( (unsigned int)destroy_argument(0LL) != -1 )
_assert_fail("destroy_argument(NULL)==-1", "test_donnees.c", 0x3Cu, "test_donnees");
v7 = creer_argument();
if ( (unsigned int)destroy_argument(v7) != 1 )
_assert_fail("destroy_argument(creer_argument())==1", "test_donnees.c", 0x3Du, "test_donnees");
if ( (unsigned int)destroy_solutions(0LL) != -1 )
_assert_fail("destroy_solutions(NULL)==-1", "test_donnees.c", 0x40u, "test_donnees");
v8 = creer_solutions();
result = destroy_solutions(v8);
if ( (_DWORD)result != 1 )
_assert_fail("destroy_solutions(creer_solutions())==1", "test_donnees.c", 0x41u, "test_donnees");
return result;
}

original_code:
void test_donnees(void)
{
 ((void) sizeof ((creer_systeme()!=((void *)0)) ? 1 : 0), __extension__ ({ if (creer_systeme()!=((void *)0)) ; else __assert_fail ("creer_systeme()!=NULL", "test_donnees.c", 20, __extension__ __PRETTY_FUNCTION__); }));
 ((void) sizeof ((creer_equation()!=((void *)0)) ? 1 : 0), __extension__ ({ if (creer_equation()!=((void *)0)) ; else __assert_fail ("creer_equation()!=NULL", "test_donnees.c", 23, __extension__ __PRETTY_FUNCTION__); }));
 ((void) sizeof ((creer_terme()!=((void *)0)) ? 1 : 0), __extension__ ({ if (creer_terme()!=((void *)0)) ; else __assert_fail ("creer_terme()!=NULL", "test_donnees.c", 26, __extension__ __PRETTY_FUNCTION__); }));
 ((void) sizeof ((creer_argument()!=((void *)0)) ? 1 : 0), __extension__ ({ if (creer_argument()!=((void *)0)) ; else __assert_fail ("creer_argument()!=NULL", "test_donnees.c", 29, __extension__ __PRETTY_FUNCTION__); }));
 ((void) sizeof ((initialiser_solutions(((void *)0),3)==-1) ? 1 : 0), __extension__ ({ if (initialiser_solutions(((void *)0),3)==-1) ; else __assert_fail ("initialiser_solutions(NULL,3)==-1", "test_donnees.c", 32, __extension__ __PRETTY_FUNCTION__); }));
 ((void) sizeof ((initialiser_solutions(creer_solutions(),3)==1) ? 1 : 0), __extension__ ({ if (initialiser_solutions(creer_solutions(),3)==1) ; else __assert_fail ("initialiser_solutions(creer_solutions(),3)==1", "test_donnees.c", 33, __extension__ __PRETTY_FUNCTION__); }));
 ((void) sizeof ((copie_equation(((void *)0))==((void *)0)) ? 1 : 0), __extension__ ({ if (copie_equation(((void *)0))==((void *)0)) ; else __assert_fail ("copie_equation(NULL)==NULL", "test_donnees.c", 36, __extension__ __PRETTY_FUNCTION__); }));
 ((void) sizeof ((copie_equation(creer_equation())!=((void *)0)) ? 1 : 0), __extension__ ({ if (copie_equation(creer_equation())!=((void *)0)) ; else __assert_fail ("copie_equation(creer_equation())!=NULL", "test_donnees.c", 37, __extension__ __PRETTY_FUNCTION__); }));
 ((void) sizeof ((copie_terme(((void *)0))==((void *)0)) ? 1 : 0), __extension__ ({ if (copie_terme(((void *)0))==((void *)0)) ; else __assert_fail ("copie_terme(NULL)==NULL", "test_donnees.c", 40, __extension__ __PRETTY_FUNCTION__); }));
 ((void) sizeof ((copie_terme(creer_terme())!=((void *)0)) ? 1 : 0), __extension__ ({ if (copie_terme(creer_terme())!=((void *)0)) ; else __assert_fail ("copie_terme(creer_terme())!=NULL", "test_donnees.c", 41, __extension__ __PRETTY_FUNCTION__); }));
 ((void) sizeof ((copie_argument(((void *)0))==((void *)0)) ? 1 : 0), __extension__ ({ if (copie_argument(((void *)0))==((void *)0)) ; else __assert_fail ("copie_argument(NULL)==NULL", "test_donnees.c", 44, __extension__ __PRETTY_FUNCTION__); }));
 ((void) sizeof ((copie_argument(creer_argument())!=((void *)0)) ? 1 : 0), __extension__ ({ if (copie_argument(creer_argument())!=((void *)0)) ; else __assert_fail ("copie_argument(creer_argument())!=NULL", "test_donnees.c", 45, __extension__ __PRETTY_FUNCTION__); }));
 ((void) sizeof ((destroy_systeme(((void *)0))==-1) ? 1 : 0), __extension__ ({ if (destroy_systeme(((void *)0))==-1) ; else __assert_fail ("destroy_systeme(NULL)==-1", "test_donnees.c", 48, __extension__ __PRETTY_FUNCTION__); }));
 ((void) sizeof ((destroy_systeme(creer_systeme())==1) ? 1 : 0), __extension__ ({ if (destroy_systeme(creer_systeme())==1) ; else __assert_fail ("destroy_systeme(creer_systeme())==1", "test_donnees.c", 49, __extension__ __PRETTY_FUNCTION__); }));
 ((void) sizeof ((destroy_equation(((void *)0))==-1) ? 1 : 0), __extension__ ({ if (destroy_equation(((void *)0))==-1) ; else __assert_fail ("destroy_equation(NULL)==-1", "test_donnees.c", 52, __extension__ __PRETTY_FUNCTION__); }));
 ((void) sizeof ((destroy_equation(creer_equation())==1) ? 1 : 0), __extension__ ({ if (destroy_equation(creer_equation())==1) ; else __assert_fail ("destroy_equation(creer_equation())==1", "test_donnees.c", 53, __extension__ __PRETTY_FUNCTION__); }));
 ((void) sizeof ((destroy_terme(((void *)0))==-1) ? 1 : 0), __extension__ ({ if (destroy_terme(((void *)0))==-1) ; else __assert_fail ("destroy_terme(NULL)==-1", "test_donnees.c", 56, __extension__ __PRETTY_FUNCTION__); }));
 ((void) sizeof ((destroy_terme(creer_terme())==1) ? 1 : 0), __extension__ ({ if (destroy_terme(creer_terme())==1) ; else __assert_fail ("destroy_terme(creer_terme())==1", "test_donnees.c", 57, __extension__ __PRETTY_FUNCTION__); }));
 ((void) sizeof ((destroy_argument(((void *)0))==-1) ? 1 : 0), __extension__ ({ if (destroy_argument(((void *)0))==-1) ; else __assert_fail ("destroy_argument(NULL)==-1", "test_donnees.c", 60, __extension__ __PRETTY_FUNCTION__); }));
 ((void) sizeof ((destroy_argument(creer_argument())==1) ? 1 : 0), __extension__ ({ if (destroy_argument(creer_argument())==1) ; else __assert_fail ("destroy_argument(creer_argument())==1", "test_donnees.c", 61, __extension__ __PRETTY_FUNCTION__); }));
 ((void) sizeof ((destroy_solutions(((void *)0))==-1) ? 1 : 0), __extension__ ({ if (destroy_solutions(((void *)0))==-1) ; else __assert_fail ("destroy_solutions(NULL)==-1", "test_donnees.c", 64, __extension__ __PRETTY_FUNCTION__); }));
 ((void) sizeof ((destroy_solutions(creer_solutions())==1) ? 1 : 0), __extension__ ({ if (destroy_solutions(creer_solutions())==1) ; else __assert_fail ("destroy_solutions(creer_solutions())==1", "test_donnees.c", 65, __extension__ __PRETTY_FUNCTION__); }));
}

canonical_original_code:
void test_donnees()
{
 ((void) sizeof ((creer_systeme()!=((void *)0)) ? 1 : 0), __extension__ ({ if (creer_systeme()!=((void *)0)) ; else __assert_fail ("creer_systeme()!=NULL", "test_donnees.c", 20, __extension__ __PRETTY_FUNCTION__); }));
 ((void) sizeof ((creer_equation()!=((void *)0)) ? 1 : 0), __extension__ ({ if (creer_equation()!=((void *)0)) ; else __assert_fail ("creer_equation()!=NULL", "test_donnees.c", 23, __extension__ __PRETTY_FUNCTION__); }));
 ((void) sizeof ((creer_terme()!=((void *)0)) ? 1 : 0), __extension__ ({ if (creer_terme()!=((void *)0)) ; else __assert_fail ("creer_terme()!=NULL", "test_donnees.c", 26, __extension__ __PRETTY_FUNCTION__); }));
 ((void) sizeof ((creer_argument()!=((void *)0)) ? 1 : 0), __extension__ ({ if (creer_argument()!=((void *)0)) ; else __assert_fail ("creer_argument()!=NULL", "test_donnees.c", 29, __extension__ __PRETTY_FUNCTION__); }));
 ((void) sizeof ((initialiser_solutions(((void *)0),3)==-1) ? 1 : 0), __extension__ ({ if (initialiser_solutions(((void *)0),3)==-1) ; else __assert_fail ("initialiser_solutions(NULL,3)==-1", "test_donnees.c", 32, __extension__ __PRETTY_FUNCTION__); }));
 ((void) sizeof ((initialiser_solutions(creer_solutions(),3)==1) ? 1 : 0), __extension__ ({ if (initialiser_solutions(creer_solutions(),3)==1) ; else __assert_fail ("initialiser_solutions(creer_solutions(),3)==1", "test_donnees.c", 33, __extension__ __PRETTY_FUNCTION__); }));
 ((void) sizeof ((copie_equation(((void *)0))==((void *)0)) ? 1 : 0), __extension__ ({ if (copie_equation(((void *)0))==((void *)0)) ; else __assert_fail ("copie_equation(NULL)==NULL", "test_donnees.c", 36, __extension__ __PRETTY_FUNCTION__); }));
 ((void) sizeof ((copie_equation(creer_equation())!=((void *)0)) ? 1 : 0), __extension__ ({ if (copie_equation(creer_equation())!=((void *)0)) ; else __assert_fail ("copie_equation(creer_equation())!=NULL", "test_donnees.c", 37, __extension__ __PRETTY_FUNCTION__); }));
 ((void) sizeof ((copie_terme(((void *)0))==((void *)0)) ? 1 : 0), __extension__ ({ if (copie_terme(((void *)0))==((void *)0)) ; else __assert_fail ("copie_terme(NULL)==NULL", "test_donnees.c", 40, __extension__ __PRETTY_FUNCTION__); }));
 ((void) sizeof ((copie_terme(creer_terme())!=((void *)0)) ? 1 : 0), __extension__ ({ if (copie_terme(creer_terme())!=((void *)0)) ; else __assert_fail ("copie_terme(creer_terme())!=NULL", "test_donnees.c", 41, __extension__ __PRETTY_FUNCTION__); }));
 ((void) sizeof ((copie_argument(((void *)0))==((void *)0)) ? 1 : 0), __extension__ ({ if (copie_argument(((void *)0))==((void *)0)) ; else __assert_fail ("copie_argument(NULL)==NULL", "test_donnees.c", 44, __extension__ __PRETTY_FUNCTION__); }));
 ((void) sizeof ((copie_argument(creer_argument())!=((void *)0)) ? 1 : 0), __extension__ ({ if (copie_argument(creer_argument())!=((void *)0)) ; else __assert_fail ("copie_argument(creer_argument())!=NULL", "test_donnees.c", 45, __extension__ __PRETTY_FUNCTION__); }));
 ((void) sizeof ((destroy_systeme(((void *)0))==-1) ? 1 : 0), __extension__ ({ if (destroy_systeme(((void *)0))==-1) ; else __assert_fail ("destroy_systeme(NULL)==-1", "test_donnees.c", 48, __extension__ __PRETTY_FUNCTION__); }));
 ((void) sizeof ((destroy_systeme(creer_systeme())==1) ? 1 : 0), __extension__ ({ if (destroy_systeme(creer_systeme())==1) ; else __assert_fail ("destroy_systeme(creer_systeme())==1", "test_donnees.c", 49, __extension__ __PRETTY_FUNCTION__); }));
 ((void) sizeof ((destroy_equation(((void *)0))==-1) ? 1 : 0), __extension__ ({ if (destroy_equation(((void *)0))==-1) ; else __assert_fail ("destroy_equation(NULL)==-1", "test_donnees.c", 52, __extension__ __PRETTY_FUNCTION__); }));
 ((void) sizeof ((destroy_equation(creer_equation())==1) ? 1 : 0), __extension__ ({ if (destroy_equation(creer_equation())==1) ; else __assert_fail ("destroy_equation(creer_equation())==1", "test_donnees.c", 53, __extension__ __PRETTY_FUNCTION__); }));
 ((void) sizeof ((destroy_terme(((void *)0))==-1) ? 1 : 0), __extension__ ({ if (destroy_terme(((void *)0))==-1) ; else __assert_fail ("destroy_terme(NULL)==-1", "test_donnees.c", 56, __extension__ __PRETTY_FUNCTION__); }));
 ((void) sizeof ((destroy_terme(creer_terme())==1) ? 1 : 0), __extension__ ({ if (destroy_terme(creer_terme())==1) ; else __assert_fail ("destroy_terme(creer_terme())==1", "test_donnees.c", 57, __extension__ __PRETTY_FUNCTION__); }));
 ((void) sizeof ((destroy_argument(((void *)0))==-1) ? 1 : 0), __extension__ ({ if (destroy_argument(((void *)0))==-1) ; else __assert_fail ("destroy_argument(NULL)==-1", "test_donnees.c", 60, __extension__ __PRETTY_FUNCTION__); }));
 ((void) sizeof ((destroy_argument(creer_argument())==1) ? 1 : 0), __extension__ ({ if (destroy_argument(creer_argument())==1) ; else __assert_fail ("destroy_argument(creer_argument())==1", "test_donnees.c", 61, __extension__ __PRETTY_FUNCTION__); }));
 ((void) sizeof ((destroy_solutions(((void *)0))==-1) ? 1 : 0), __extension__ ({ if (destroy_solutions(((void *)0))==-1) ; else __assert_fail ("destroy_solutions(NULL)==-1", "test_donnees.c", 64, __extension__ __PRETTY_FUNCTION__); }));
 ((void) sizeof ((destroy_solutions(creer_solutions())==1) ? 1 : 0), __extension__ ({ if (destroy_solutions(creer_solutions())==1) ; else __assert_fail ("destroy_solutions(creer_solutions())==1", "test_donnees.c", 65, __extension__ __PRETTY_FUNCTION__); }));
}


decompiled_code:
__int64 __fastcall afficher_argument(_QWORD *a1)
{
__int64 result; // rax

if ( !a1 )
_assert_fail("arg != NULL", "affichage.c", 0x48u, "afficher_argument");
if ( *a1 )
result = afficher_terme();
if ( a1[1] )
{
printf(", ");
result = afficher_argument(a1[1]);
}
return result;
}

canonical_decompiled_code:
__int64 __fastcall func0(_QWORD *a1)
{
__int64 result; // rax

if ( !a1 )
_assert_fail("arg != NULL", "affichage.c", 0x48u, "afficher_argument");
if ( *a1 )
result = func1();
if ( a1[1] )
{
printf(", ");
result = func0(a1[1]);
}
return result;
}

original_code:
void afficher_argument(const Argument arg)
{
 ((void) sizeof ((arg != ((void *)0)) ? 1 : 0), __extension__ ({ if (arg != ((void *)0)) ; else __assert_fail ("arg != NULL", "affichage.c", 72, __extension__ __PRETTY_FUNCTION__); }));
 if (arg->terme_argument)
 {
  afficher_terme(arg->terme_argument);
 }
 if (arg->suivant)
 {
  printf(", ");
  afficher_argument(arg->suivant);
 }
}

canonical_original_code:
void afficher_argument(struct argument_s *arg)
{
 ((void) sizeof ((arg != ((void *)0)) ? 1 : 0), __extension__ ({ if (arg != ((void *)0)) ; else __assert_fail ("arg != NULL", "affichage.c", 72, __extension__ __PRETTY_FUNCTION__); }));
 if (arg->terme_argument)
 {
  afficher_terme(arg->terme_argument);
 }
 if (arg->suivant)
 {
  printf(", ");
  afficher_argument(arg->suivant);
 }
}

variable_types: struct argument_s { struct terme_s { int type_terme; union { int val; struct argument_s *arguments; } contenu_terme; } *terme_argument; struct argument_s *suivant; } *

user_defined_types: struct argument_s { struct terme_s *terme_argument; struct argument_s *suivant; }


decompiled_code:
int __fastcall afficher_terme(int *a1)
{
int v1; // esi

if ( !a1 )
_assert_fail("terme != NULL", "affichage.c", 0x29u, "afficher_terme");
v1 = *a1;
if ( *a1 == 2 )
return printf("%d", (unsigned int)a1[2]);
if ( v1 <= 2 )
{
if ( v1 == 1 )
return printf("X%d", (unsigned int)a1[2]);
LABEL_10:
fwrite("type de terme invalide", 1uLL, 0x16uLL, stderr);
abort();
}
if ( (unsigned int)(v1 - 30) > 3 )
goto LABEL_10;
printf("F%d(", (unsigned int)(v1 - 30));
afficher_argument(*((_QWORD **)a1 + 1));
return putchar(41);
}

canonical_decompiled_code:
int __fastcall func1(int *a1)
{
int v1; // esi

if ( !a1 )
_assert_fail("terme != NULL", "affichage.c", 0x29u, "afficher_terme");
v1 = *a1;
if ( *a1 == 2 )
return printf("%d", (unsigned int)a1[2]);
if ( v1 <= 2 )
{
if ( v1 == 1 )
return printf("X%d", (unsigned int)a1[2]);
LABEL_10:
fwrite("type de terme invalide", 1uLL, 0x16uLL, stderr);
abort();
}
if ( (unsigned int)(v1 - 30) > 3 )
goto LABEL_10;
printf("F%d(", (unsigned int)(v1 - 30));
func0(*((_QWORD **)a1 + 1));
return putchar(41);
}

original_code:
void afficher_terme(const Terme terme)
{
 ((void) sizeof ((terme != ((void *)0)) ? 1 : 0), __extension__ ({ if (terme != ((void *)0)) ; else __assert_fail ("terme != NULL", "affichage.c", 41, __extension__ __PRETTY_FUNCTION__); }));
 switch(terme->type_terme)
 {
  case Variable:
   printf("X%d", terme->contenu_terme.val);
   break;
  case Constante:
   printf("%d", terme->contenu_terme.val);
   break;
  case Fonction:
  case Fonction+1:
  case Fonction+2:
  case Fonction+3:
   printf("F%d(", terme->type_terme - Fonction);
   afficher_argument(terme->contenu_terme.arguments);
   printf(")");
   break;
  default:
   fprintf(stderr, "type de terme invalide");
   abort();
   break;
 }
}

canonical_original_code:
void afficher_terme(struct terme_s *terme)
{
 ((void) sizeof ((terme != ((void *)0)) ? 1 : 0), __extension__ ({ if (terme != ((void *)0)) ; else __assert_fail ("terme != NULL", "affichage.c", 41, __extension__ __PRETTY_FUNCTION__); }));
 switch(terme->type_terme)
 {
  case Variable:
   printf("X%d", terme->contenu_terme.val);
   break;
  case Constante:
   printf("%d", terme->contenu_terme.val);
   break;
  case Fonction:
  case Fonction+1:
  case Fonction+2:
  case Fonction+3:
   printf("F%d(", terme->type_terme - Fonction);
   afficher_argument(terme->contenu_terme.arguments);
   printf(")");
   break;
  default:
   fprintf(stderr, "type de terme invalide");
   abort();
   break;
 }
}

variable_types: struct terme_s { int type_terme; union { int val; struct argument_s { struct terme_s *terme_argument; struct argument_s *suivant; } *arguments; } contenu_terme; } *

user_defined_types: struct terme_s { int type_terme; union { int val; struct argument_s *arguments; } contenu_terme; }


decompiled_code:
int __fastcall afficher_solutions(__int64 *a1)
{
__int64 v1; // rax
__int64 v2; // rbx

if ( a1 )
{
LODWORD(v1) = puts("Solutions:");
if ( *((_DWORD *)a1 + 2) )
{
v2 = 0LL;
do
{
v1 = *a1;
if ( *(_QWORD *)(*a1 + 8 * v2) )
{
printf("X%d = ", (unsigned int)(v2 + 1));
afficher_terme(*(int **)(*a1 + 8 * v2));
LODWORD(v1) = putchar(10);
}
++v2;
}
while ( *((_DWORD *)a1 + 2) > (unsigned int)v2 );
}
}
else
{
LODWORD(v1) = puts(aSyste);
}
return v1;
}

canonical_decompiled_code:
int __fastcall func3(__int64 *a1)
{
__int64 v1; // rax
__int64 v2; // rbx

if ( a1 )
{
LODWORD(v1) = puts("Solutions:");
if ( *((_DWORD *)a1 + 2) )
{
v2 = 0LL;
do
{
v1 = *a1;
if ( *(_QWORD *)(*a1 + 8 * v2) )
{
printf("X%d = ", (unsigned int)(v2 + 1));
func1(*(int **)(*a1 + 8 * v2));
LODWORD(v1) = putchar(10);
}
++v2;
}
while ( *((_DWORD *)a1 + 2) > (unsigned int)v2 );
}
}
else
{
LODWORD(v1) = puts(aSyste);
}
return v1;
}

original_code:
void afficher_solutions(const Solutions s)
{
 int i;
 if (s)
 {
  printf("Solutions:\n");
  for (i = 0; i < s->size;i++)
  {
   if (s->array[i])
   {
    printf("X%d = ", i+1);
    afficher_terme(s->array[i]);
    printf("\n");
   }
  }
 }
 else
 {
  puts("Système insoluble ou pas encore résolu");
 }
}

canonical_original_code:
void afficher_solutions(struct { struct terme_s **array; unsigned int size; } *s)
{
 int i;
 if (s)
 {
  printf("Solutions:\n");
  for (i = 0; i < s->size;i++)
  {
   if (s->array[i])
   {
    printf("X%d = ", i+1);
    afficher_terme(s->array[i]);
    printf("\n");
   }
  }
 }
 else
 {
  puts("Système insoluble ou pas encore résolu");
 }
}

variable_types: struct { struct terme_s { int type_terme; union { int val; struct argument_s { struct terme_s *terme_argument; struct argument_s *suivant; } *arguments; } contenu_terme; } **array; unsigned int size; } *


decompiled_code:
__int64 __fastcall est_fonction(int a1)
{
__int64 v1; // rdx
__int64 result; // rax

v1 = (unsigned int)(a1 - 30);
result = 1LL;
if ( (unsigned int)v1 > 3 )
{
result = 0LL;
if ( (unsigned int)(a1 - 34) <= 6 )
{
fprintf(stderr, "*** avertissement: est_fonction() - fonction d'indice %d invalide.\n", v1);
result = 0LL;
}
}
return result;
}

canonical_decompiled_code:
__int64 __fastcall func0(int a1)
{
__int64 v1; // rdx
__int64 result; // rax

v1 = (unsigned int)(a1 - 30);
result = 1LL;
if ( (unsigned int)v1 > 3 )
{
result = 0LL;
if ( (unsigned int)(a1 - 34) <= 6 )
{
fprintf(stderr, "*** avertissement: est_fonction() - fonction d'indice %d invalide.\n", v1);
result = 0LL;
}
}
return result;
}

original_code:
int est_fonction(TypeTerme t)
{
 if (t >= Fonction && t <= Fonction + 3)
  return 1;
 else
 {
  if (t > Fonction + 3 && t <= Fonction + 10)
   fprintf(stderr, "*** avertissement: est_fonction() - fonction d'indice %d invalide.\n", t - Fonction);
  return 0;
 }
}

canonical_original_code:
int est_fonction(enum TypeTerme t)
{
 if (t >= Fonction && t <= Fonction + 3)
  return 1;
 else
 {
  if (t > Fonction + 3 && t <= Fonction + 10)
   fprintf(stderr, "*** avertissement: est_fonction() - fonction d'indice %d invalide.\n", t - Fonction);
  return 0;
 }
}

variable_types: enum TypeTerme { Variable=1, Constante=2, Fonction=30 }


decompiled_code:
__int64 __fastcall obtenir_representant_terme(_DWORD *a1, _QWORD *a2)
{
__int64 v2; // rbx
__int64 v3; // rdi
__int64 v4; // rax
_QWORD *i; // r12

v2 = (__int64)a1;
if ( a1 && a2 )
{
if ( *a1 == 1 )
{
v3 = *(_QWORD *)(*a2 + 8LL * (int)a1[2] - 8);
if ( v3 )
v2 = obtenir_representant_terme(v3, a2);
else
v2 = copie_terme(v2);
}
else
{
v4 = ((__int64 (*)(void))copie_terme)();
v2 = v4;
if ( *(_DWORD *)v4 == 30 )
{
for ( i = (_QWORD *)copie_argument(*(_QWORD *)(v4 + 8)); i; i = (_QWORD *)i[1] )
*i = obtenir_representant_terme(*i, a2);
}
}
}
else if ( a1 || (fwrite(&unk_160, 1uLL, 0x5BuLL, stderr), !a2) )
{
fwrite(&unk_1C0, 1uLL, 0x5BuLL, stderr);
v2 = 0LL;
}
return v2;
}

canonical_decompiled_code:
__int64 __fastcall func0(_DWORD *a1, _QWORD *a2)
{
__int64 v2; // rbx
__int64 v3; // rdi
__int64 v4; // rax
_QWORD *i; // r12

v2 = (__int64)a1;
if ( a1 && a2 )
{
if ( *a1 == 1 )
{
v3 = *(_QWORD *)(*a2 + 8LL * (int)a1[2] - 8);
if ( v3 )
v2 = func0(v3, a2);
else
v2 = copie_terme(v2);
}
else
{
v4 = ((__int64 (*)(void))copie_terme)();
v2 = v4;
if ( *(_DWORD *)v4 == 30 )
{
for ( i = (_QWORD *)copie_argument(*(_QWORD *)(v4 + 8)); i; i = (_QWORD *)i[1] )
*i = func0(*i, a2);
}
}
}
else if ( a1 || (fwrite(&unk_160, 1uLL, 0x5BuLL, stderr), !a2) )
{
fwrite(&unk_1C0, 1uLL, 0x5BuLL, stderr);
v2 = 0LL;
}
return v2;
}

original_code:
Terme obtenir_representant_terme(const Terme u, const Solutions s)
{
 Terme nouveau_terme=((void *)0);
 Argument arg;
 if(u == ((void *)0) || s == ((void *)0))
 {
  if(u == ((void *)0) )
  {
   fprintf(stderr,"*** erreur : obtenir_representant_terme() - Le paramètre 'u' ne devrait jamais être nul.\n");
  }
  if(s == ((void *)0) )
  {
   fprintf(stderr,"*** erreur : obtenir_representant_terme() - Le paramètre 's' ne devrait jamais être nul.\n");
  }
  return ((void *)0);
 }
 else
 {
  if(u->type_terme == Variable)
  {
   if(s->array[u->contenu_terme.val-1] != ((void *)0))
   {
   nouveau_terme = obtenir_representant_terme(s->array[u->contenu_terme.val-1],s);
   }
   else
   {
    nouveau_terme = copie_terme(u);
   }
  }
  else
  {
   nouveau_terme = copie_terme(u);
   if(nouveau_terme->type_terme == Fonction)
   {
    arg = copie_argument(nouveau_terme->contenu_terme.arguments);
    while (arg != ((void *)0))
    {
     arg->terme_argument = obtenir_representant_terme(arg->terme_argument,s);
     arg = arg->suivant ;
    }
   }
  }
  return nouveau_terme ;
 }
}

canonical_original_code:
struct terme_s *obtenir_representant_terme(struct terme_s *u, struct { struct terme_s **array; unsigned int size; } *s)
{
 struct terme_s *nouveau_terme = ((void *)0);
 struct argument_s *arg;
 if(u == ((void *)0) || s == ((void *)0))
 {
  if(u == ((void *)0) )
  {
   fprintf(stderr,"*** erreur : obtenir_representant_terme() - Le paramètre 'u' ne devrait jamais être nul.\n");
  }
  if(s == ((void *)0) )
  {
   fprintf(stderr,"*** erreur : obtenir_representant_terme() - Le paramètre 's' ne devrait jamais être nul.\n");
  }
  return ((void *)0);
 }
 else
 {
  if(u->type_terme == Variable)
  {
   if(s->array[u->contenu_terme.val-1] != ((void *)0))
   {
   nouveau_terme = obtenir_representant_terme(s->array[u->contenu_terme.val-1],s);
   }
   else
   {
    nouveau_terme = copie_terme(u);
   }
  }
  else
  {
   nouveau_terme = copie_terme(u);
   if(nouveau_terme->type_terme == Fonction)
   {
    arg = copie_argument(nouveau_terme->contenu_terme.arguments);
    while (arg != ((void *)0))
    {
     arg->terme_argument = obtenir_representant_terme(arg->terme_argument,s);
     arg = arg->suivant ;
    }
   }
  }
  return nouveau_terme ;
 }
}

variable_types:
u
struct terme_s *

return_type: struct terme_s { int type_terme; union { int val; struct argument_s { struct terme_s *terme_argument; struct argument_s *suivant; } *arguments; } contenu_terme; } *


decompiled_code:
__int64 test_parser()
{
__int64 v0; // rax
__int64 v1; // rax
__int64 v2; // rax
__int64 v3; // rax
__int64 v4; // rax
__int64 v5; // rax
__int64 v6; // rax
__int64 v7; // rax
__int64 v8; // rax
__int64 v9; // rax
__int64 v10; // rax
__int64 v11; // rax
__int64 v12; // rax
__int64 v13; // rax
__int64 v14; // rax
__int64 v15; // rax
__int64 v16; // rax
__int64 v17; // rax
__int64 v18; // rax
__int64 v19; // rax
__int64 v20; // rax
__int64 v21; // rax
__int64 v22; // rax
__int64 v23; // rax
__int64 v24; // rax
__int64 v25; // rax
__int64 v26; // rax
__int64 v27; // rax
__int64 v28; // rax
__int64 result; // rax

if ( creer_systeme_depuis_texte(0LL) )
_assert_fail("creer_systeme_depuis_texte(NULL) == NULL", "test_parser.c", 0x11u, "test_parser");
if ( creer_systeme_depuis_texte(&unk_75D) )
_assert_fail("creer_systeme_depuis_texte(\"\") == NULL", "test_parser.c", 0x12u, "test_parser");
if ( creer_systeme_depuis_texte("X1=xx") )
_assert_fail("creer_systeme_depuis_texte(\"X1=xx\") == NULL", "test_parser.c", 0x13u, "test_parser");
if ( !creer_systeme_depuis_texte("X1=2") )
_assert_fail("creer_systeme_depuis_texte(\"X1=2\") != NULL", "test_parser.c", 0x14u, "test_parser");
if ( parse_equation(0LL) )
_assert_fail("parse_equation(NULL) == NULL", "test_parser.c", 0x16u, "test_parser");
v0 = text_creer_depuis_texte(&unk_75D);
if ( parse_equation(v0) )
_assert_fail("parse_equation(text_creer_depuis_texte(\"\")) == NULL", "test_parser.c", 0x17u, "test_parser");
v1 = text_creer_depuis_texte("X1=X2");
if ( !parse_equation(v1) )
_assert_fail("parse_equation(text_creer_depuis_texte(\"X1=X2\")) != NULL", "test_parser.c", 0x18u, "test_parser");
v2 = text_creer_depuis_texte("X1 =X2");
if ( parse_equation(v2) )
_assert_fail("parse_equation(text_creer_depuis_texte(\"X1 =X2\")) == NULL", "test_parser.c", 0x19u, "test_parser");
v3 = text_creer_depuis_texte("X1=");
if ( parse_equation(v3) )
_assert_fail("parse_equation(text_creer_depuis_texte(\"X1=\")) == NULL", "test_parser.c", 0x1Au, "test_parser");
v4 = text_creer_depuis_texte("X1=z");
if ( parse_equation(v4) )
_assert_fail("parse_equation(text_creer_depuis_texte(\"X1=z\")) == NULL", "test_parser.c", 0x1Bu, "test_parser");
if ( parse_arguments(0LL) )
_assert_fail("parse_arguments(NULL) == NULL", "test_parser.c", 0x1Du, "test_parser");
v5 = text_creer_depuis_texte(&unk_75D);
if ( parse_arguments(v5) )
_assert_fail("parse_arguments(text_creer_depuis_texte(\"\")) == NULL", "test_parser.c", 0x1Eu, "test_parser");
v6 = text_creer_depuis_texte(" ");
if ( parse_arguments(v6) )
_assert_fail("parse_arguments(text_creer_depuis_texte(\" \")) == NULL", "test_parser.c", 0x1Fu, "test_parser");
v7 = text_creer_depuis_texte("1, 2");
if ( parse_arguments(v7) )
_assert_fail("parse_arguments(text_creer_depuis_texte(\"1, 2\")) == NULL", "test_parser.c", 0x20u, "test_parser");
v8 = text_creer_depuis_texte("1,2");
if ( !parse_arguments(v8) )
_assert_fail("parse_arguments(text_creer_depuis_texte(\"1,2\")) != NULL", "test_parser.c", 0x21u, "test_parser");
v9 = text_creer_depuis_texte("1,2x");
if ( parse_arguments(v9) )
_assert_fail("parse_arguments(text_creer_depuis_texte(\"1,2x\")) == NULL", "test_parser.c", 0x22u, "test_parser");
v10 = text_creer_depuis_texte("X1,X2,X3,2,88,F2(99,11,22)");
if ( !parse_arguments(v10) )
_assert_fail(
"parse_arguments(text_creer_depuis_texte(\"X1,X2,X3,2,88,F2(99,11,22)\")) != NULL",
"test_parser.c",
0x23u,
"test_parser");
v11 = text_creer_depuis_texte("X1,Xx2,X3,2,88,F2(99,11,22)");
if ( parse_arguments(v11) )
_assert_fail(
"parse_arguments(text_creer_depuis_texte(\"X1,Xx2,X3,2,88,F2(99,11,22)\")) == NULL",
"test_parser.c",
0x24u,
"test_parser");
if ( parse_terme(0LL) )
_assert_fail("parse_terme(NULL) == NULL", "test_parser.c", 0x26u, "test_parser");
v12 = text_creer_depuis_texte(&unk_75D);
if ( parse_terme(v12) )
_assert_fail("parse_terme(text_creer_depuis_texte(\"\")) == NULL", "test_parser.c", 0x27u, "test_parser");
v13 = text_creer_depuis_texte("X1");
if ( !parse_terme(v13) )
_assert_fail("parse_terme(text_creer_depuis_texte(\"X1\")) != NULL", "test_parser.c", 0x28u, "test_parser");
v14 = text_creer_depuis_texte("1");
if ( !parse_terme(v14) )
_assert_fail("parse_terme(text_creer_depuis_texte(\"1\")) != NULL", "test_parser.c", 0x29u, "test_parser");
v15 = text_creer_depuis_texte("F1(X2)");
if ( !parse_terme(v15) )
_assert_fail("parse_terme(text_creer_depuis_texte(\"F1(X2)\")) != NULL", "test_parser.c", 0x2Au, "test_parser");
v16 = text_creer_depuis_texte("F1(X2,X1,X3)");
if ( !parse_terme(v16) )
_assert_fail(
"parse_terme(text_creer_depuis_texte(\"F1(X2,X1,X3)\")) != NULL",
"test_parser.c",
0x2Bu,
"test_parser");
v17 = text_creer_depuis_texte("X1 ");
if ( parse_terme(v17) )
_assert_fail("parse_terme(text_creer_depuis_texte(\"X1 \")) == NULL", "test_parser.c", 0x2Cu, "test_parser");
v18 = text_creer_depuis_texte("=X1");
if ( parse_terme(v18) )
_assert_fail("parse_terme(text_creer_depuis_texte(\"=X1\")) == NULL", "test_parser.c", 0x2Du, "test_parser");
v19 = text_creer_depuis_texte("X1=");
if ( parse_terme(v19) )
_assert_fail("parse_terme(text_creer_depuis_texte(\"X1=\")) == NULL", "test_parser.c", 0x2Eu, "test_parser");
v20 = text_creer_depuis_texte("z=X1");
if ( parse_terme(v20) )
_assert_fail("parse_terme(text_creer_depuis_texte(\"z=X1\")) == NULL", "test_parser.c", 0x2Fu, "test_parser");
v21 = text_creer_depuis_texte("X1=z");
if ( parse_terme(v21) )
_assert_fail("parse_terme(text_creer_depuis_texte(\"X1=z\")) == NULL", "test_parser.c", 0x30u, "test_parser");
if ( parse_fonction(0LL) )
_assert_fail("parse_fonction(NULL) == NULL", "test_parser.c", 0x32u, "test_parser");
v22 = text_creer_depuis_texte(&unk_75D);
if ( parse_fonction(v22) )
_assert_fail("parse_fonction(text_creer_depuis_texte(\"\")) == NULL", "test_parser.c", 0x33u, "test_parser");
v23 = text_creer_depuis_texte("X1");
if ( parse_fonction(v23) )
_assert_fail("parse_fonction(text_creer_depuis_texte(\"X1\")) == NULL", "test_parser.c", 0x34u, "test_parser");
v24 = text_creer_depuis_texte("1");
if ( parse_fonction(v24) )
_assert_fail("parse_fonction(text_creer_depuis_texte(\"1\")) == NULL", "test_parser.c", 0x35u, "test_parser");
v25 = text_creer_depuis_texte("F1()");
if ( parse_fonction(v25) )
_assert_fail("parse_fonction(text_creer_depuis_texte(\"F1()\")) == NULL", "test_parser.c", 0x36u, "test_parser");
v26 = text_creer_depuis_texte("F1(X1)");
if ( !parse_fonction(v26) )
_assert_fail("parse_fonction(text_creer_depuis_texte(\"F1(X1)\")) != NULL", "test_parser.c", 0x37u, "test_parser");
v27 = text_creer_depuis_texte("F1(X1,X2,X3)");
if ( !parse_fonction(v27) )
_assert_fail(
"parse_fonction(text_creer_depuis_texte(\"F1(X1,X2,X3)\")) != NULL",
"test_parser.c",
0x38u,
"test_parser");
v28 = text_creer_depuis_texte("F1(X1,X2,X3 )");
result = parse_fonction(v28);
if ( result )
_assert_fail(
"parse_fonction(text_creer_depuis_texte(\"F1(X1,X2,X3 )\")) == NULL",
"test_parser.c",
0x39u,
"test_parser");
return result;
}

canonical_decompiled_code:
__int64 func0()
{
__int64 v0; // rax
__int64 v1; // rax
__int64 v2; // rax
__int64 v3; // rax
__int64 v4; // rax
__int64 v5; // rax
__int64 v6; // rax
__int64 v7; // rax
__int64 v8; // rax
__int64 v9; // rax
__int64 v10; // rax
__int64 v11; // rax
__int64 v12; // rax
__int64 v13; // rax
__int64 v14; // rax
__int64 v15; // rax
__int64 v16; // rax
__int64 v17; // rax
__int64 v18; // rax
__int64 v19; // rax
__int64 v20; // rax
__int64 v21; // rax
__int64 v22; // rax
__int64 v23; // rax
__int64 v24; // rax
__int64 v25; // rax
__int64 v26; // rax
__int64 v27; // rax
__int64 v28; // rax
__int64 result; // rax

if ( creer_systeme_depuis_texte(0LL) )
_assert_fail("creer_systeme_depuis_texte(NULL) == NULL", "test_parser.c", 0x11u, "test_parser");
if ( creer_systeme_depuis_texte(&unk_75D) )
_assert_fail("creer_systeme_depuis_texte(\"\") == NULL", "test_parser.c", 0x12u, "test_parser");
if ( creer_systeme_depuis_texte("X1=xx") )
_assert_fail("creer_systeme_depuis_texte(\"X1=xx\") == NULL", "test_parser.c", 0x13u, "test_parser");
if ( !creer_systeme_depuis_texte("X1=2") )
_assert_fail("creer_systeme_depuis_texte(\"X1=2\") != NULL", "test_parser.c", 0x14u, "test_parser");
if ( parse_equation(0LL) )
_assert_fail("parse_equation(NULL) == NULL", "test_parser.c", 0x16u, "test_parser");
v0 = text_creer_depuis_texte(&unk_75D);
if ( parse_equation(v0) )
_assert_fail("parse_equation(text_creer_depuis_texte(\"\")) == NULL", "test_parser.c", 0x17u, "test_parser");
v1 = text_creer_depuis_texte("X1=X2");
if ( !parse_equation(v1) )
_assert_fail("parse_equation(text_creer_depuis_texte(\"X1=X2\")) != NULL", "test_parser.c", 0x18u, "test_parser");
v2 = text_creer_depuis_texte("X1 =X2");
if ( parse_equation(v2) )
_assert_fail("parse_equation(text_creer_depuis_texte(\"X1 =X2\")) == NULL", "test_parser.c", 0x19u, "test_parser");
v3 = text_creer_depuis_texte("X1=");
if ( parse_equation(v3) )
_assert_fail("parse_equation(text_creer_depuis_texte(\"X1=\")) == NULL", "test_parser.c", 0x1Au, "test_parser");
v4 = text_creer_depuis_texte("X1=z");
if ( parse_equation(v4) )
_assert_fail("parse_equation(text_creer_depuis_texte(\"X1=z\")) == NULL", "test_parser.c", 0x1Bu, "test_parser");
if ( parse_arguments(0LL) )
_assert_fail("parse_arguments(NULL) == NULL", "test_parser.c", 0x1Du, "test_parser");
v5 = text_creer_depuis_texte(&unk_75D);
if ( parse_arguments(v5) )
_assert_fail("parse_arguments(text_creer_depuis_texte(\"\")) == NULL", "test_parser.c", 0x1Eu, "test_parser");
v6 = text_creer_depuis_texte(" ");
if ( parse_arguments(v6) )
_assert_fail("parse_arguments(text_creer_depuis_texte(\" \")) == NULL", "test_parser.c", 0x1Fu, "test_parser");
v7 = text_creer_depuis_texte("1, 2");
if ( parse_arguments(v7) )
_assert_fail("parse_arguments(text_creer_depuis_texte(\"1, 2\")) == NULL", "test_parser.c", 0x20u, "test_parser");
v8 = text_creer_depuis_texte("1,2");
if ( !parse_arguments(v8) )
_assert_fail("parse_arguments(text_creer_depuis_texte(\"1,2\")) != NULL", "test_parser.c", 0x21u, "test_parser");
v9 = text_creer_depuis_texte("1,2x");
if ( parse_arguments(v9) )
_assert_fail("parse_arguments(text_creer_depuis_texte(\"1,2x\")) == NULL", "test_parser.c", 0x22u, "test_parser");
v10 = text_creer_depuis_texte("X1,X2,X3,2,88,F2(99,11,22)");
if ( !parse_arguments(v10) )
_assert_fail(
"parse_arguments(text_creer_depuis_texte(\"X1,X2,X3,2,88,F2(99,11,22)\")) != NULL",
"test_parser.c",
0x23u,
"test_parser");
v11 = text_creer_depuis_texte("X1,Xx2,X3,2,88,F2(99,11,22)");
if ( parse_arguments(v11) )
_assert_fail(
"parse_arguments(text_creer_depuis_texte(\"X1,Xx2,X3,2,88,F2(99,11,22)\")) == NULL",
"test_parser.c",
0x24u,
"test_parser");
if ( parse_terme(0LL) )
_assert_fail("parse_terme(NULL) == NULL", "test_parser.c", 0x26u, "test_parser");
v12 = text_creer_depuis_texte(&unk_75D);
if ( parse_terme(v12) )
_assert_fail("parse_terme(text_creer_depuis_texte(\"\")) == NULL", "test_parser.c", 0x27u, "test_parser");
v13 = text_creer_depuis_texte("X1");
if ( !parse_terme(v13) )
_assert_fail("parse_terme(text_creer_depuis_texte(\"X1\")) != NULL", "test_parser.c", 0x28u, "test_parser");
v14 = text_creer_depuis_texte("1");
if ( !parse_terme(v14) )
_assert_fail("parse_terme(text_creer_depuis_texte(\"1\")) != NULL", "test_parser.c", 0x29u, "test_parser");
v15 = text_creer_depuis_texte("F1(X2)");
if ( !parse_terme(v15) )
_assert_fail("parse_terme(text_creer_depuis_texte(\"F1(X2)\")) != NULL", "test_parser.c", 0x2Au, "test_parser");
v16 = text_creer_depuis_texte("F1(X2,X1,X3)");
if ( !parse_terme(v16) )
_assert_fail(
"parse_terme(text_creer_depuis_texte(\"F1(X2,X1,X3)\")) != NULL",
"test_parser.c",
0x2Bu,
"test_parser");
v17 = text_creer_depuis_texte("X1 ");
if ( parse_terme(v17) )
_assert_fail("parse_terme(text_creer_depuis_texte(\"X1 \")) == NULL", "test_parser.c", 0x2Cu, "test_parser");
v18 = text_creer_depuis_texte("=X1");
if ( parse_terme(v18) )
_assert_fail("parse_terme(text_creer_depuis_texte(\"=X1\")) == NULL", "test_parser.c", 0x2Du, "test_parser");
v19 = text_creer_depuis_texte("X1=");
if ( parse_terme(v19) )
_assert_fail("parse_terme(text_creer_depuis_texte(\"X1=\")) == NULL", "test_parser.c", 0x2Eu, "test_parser");
v20 = text_creer_depuis_texte("z=X1");
if ( parse_terme(v20) )
_assert_fail("parse_terme(text_creer_depuis_texte(\"z=X1\")) == NULL", "test_parser.c", 0x2Fu, "test_parser");
v21 = text_creer_depuis_texte("X1=z");
if ( parse_terme(v21) )
_assert_fail("parse_terme(text_creer_depuis_texte(\"X1=z\")) == NULL", "test_parser.c", 0x30u, "test_parser");
if ( parse_fonction(0LL) )
_assert_fail("parse_fonction(NULL) == NULL", "test_parser.c", 0x32u, "test_parser");
v22 = text_creer_depuis_texte(&unk_75D);
if ( parse_fonction(v22) )
_assert_fail("parse_fonction(text_creer_depuis_texte(\"\")) == NULL", "test_parser.c", 0x33u, "test_parser");
v23 = text_creer_depuis_texte("X1");
if ( parse_fonction(v23) )
_assert_fail("parse_fonction(text_creer_depuis_texte(\"X1\")) == NULL", "test_parser.c", 0x34u, "test_parser");
v24 = text_creer_depuis_texte("1");
if ( parse_fonction(v24) )
_assert_fail("parse_fonction(text_creer_depuis_texte(\"1\")) == NULL", "test_parser.c", 0x35u, "test_parser");
v25 = text_creer_depuis_texte("F1()");
if ( parse_fonction(v25) )
_assert_fail("parse_fonction(text_creer_depuis_texte(\"F1()\")) == NULL", "test_parser.c", 0x36u, "test_parser");
v26 = text_creer_depuis_texte("F1(X1)");
if ( !parse_fonction(v26) )
_assert_fail("parse_fonction(text_creer_depuis_texte(\"F1(X1)\")) != NULL", "test_parser.c", 0x37u, "test_parser");
v27 = text_creer_depuis_texte("F1(X1,X2,X3)");
if ( !parse_fonction(v27) )
_assert_fail(
"parse_fonction(text_creer_depuis_texte(\"F1(X1,X2,X3)\")) != NULL",
"test_parser.c",
0x38u,
"test_parser");
v28 = text_creer_depuis_texte("F1(X1,X2,X3 )");
result = parse_fonction(v28);
if ( result )
_assert_fail(
"parse_fonction(text_creer_depuis_texte(\"F1(X1,X2,X3 )\")) == NULL",
"test_parser.c",
0x39u,
"test_parser");
return result;
}

original_code:
void test_parser(void)
{
 ((void) sizeof ((creer_systeme_depuis_texte(((void *)0)) == ((void *)0)) ? 1 : 0), __extension__ ({ if (creer_systeme_depuis_texte(((void *)0)) == ((void *)0)) ; else __assert_fail ("creer_systeme_depuis_texte(NULL) == NULL", "test_parser.c", 17, __extension__ __PRETTY_FUNCTION__); }));
 ((void) sizeof ((creer_systeme_depuis_texte("") == ((void *)0)) ? 1 : 0), __extension__ ({ if (creer_systeme_depuis_texte("") == ((void *)0)) ; else __assert_fail ("creer_systeme_depuis_texte(\"\") == NULL", "test_parser.c", 18, __extension__ __PRETTY_FUNCTION__); }));
 ((void) sizeof ((creer_systeme_depuis_texte("X1=xx") == ((void *)0)) ? 1 : 0), __extension__ ({ if (creer_systeme_depuis_texte("X1=xx") == ((void *)0)) ; else __assert_fail ("creer_systeme_depuis_texte(\"X1=xx\") == NULL", "test_parser.c", 19, __extension__ __PRETTY_FUNCTION__); }));
 ((void) sizeof ((creer_systeme_depuis_texte("X1=2") != ((void *)0)) ? 1 : 0), __extension__ ({ if (creer_systeme_depuis_texte("X1=2") != ((void *)0)) ; else __assert_fail ("creer_systeme_depuis_texte(\"X1=2\") != NULL", "test_parser.c", 20, __extension__ __PRETTY_FUNCTION__); }));
 ((void) sizeof ((parse_equation(((void *)0)) == ((void *)0)) ? 1 : 0), __extension__ ({ if (parse_equation(((void *)0)) == ((void *)0)) ; else __assert_fail ("parse_equation(NULL) == NULL", "test_parser.c", 22, __extension__ __PRETTY_FUNCTION__); }));
 ((void) sizeof ((parse_equation(text_creer_depuis_texte("")) == ((void *)0)) ? 1 : 0), __extension__ ({ if (parse_equation(text_creer_depuis_texte("")) == ((void *)0)) ; else __assert_fail ("parse_equation(text_creer_depuis_texte(\"\")) == NULL", "test_parser.c", 23, __extension__ __PRETTY_FUNCTION__); }));
 ((void) sizeof ((parse_equation(text_creer_depuis_texte("X1=X2")) != ((void *)0)) ? 1 : 0), __extension__ ({ if (parse_equation(text_creer_depuis_texte("X1=X2")) != ((void *)0)) ; else __assert_fail ("parse_equation(text_creer_depuis_texte(\"X1=X2\")) != NULL", "test_parser.c", 24, __extension__ __PRETTY_FUNCTION__); }));
 ((void) sizeof ((parse_equation(text_creer_depuis_texte("X1 =X2")) == ((void *)0)) ? 1 : 0), __extension__ ({ if (parse_equation(text_creer_depuis_texte("X1 =X2")) == ((void *)0)) ; else __assert_fail ("parse_equation(text_creer_depuis_texte(\"X1 =X2\")) == NULL", "test_parser.c", 25, __extension__ __PRETTY_FUNCTION__); }));
 ((void) sizeof ((parse_equation(text_creer_depuis_texte("X1=")) == ((void *)0)) ? 1 : 0), __extension__ ({ if (parse_equation(text_creer_depuis_texte("X1=")) == ((void *)0)) ; else __assert_fail ("parse_equation(text_creer_depuis_texte(\"X1=\")) == NULL", "test_parser.c", 26, __extension__ __PRETTY_FUNCTION__); }));
 ((void) sizeof ((parse_equation(text_creer_depuis_texte("X1=z")) == ((void *)0)) ? 1 : 0), __extension__ ({ if (parse_equation(text_creer_depuis_texte("X1=z")) == ((void *)0)) ; else __assert_fail ("parse_equation(text_creer_depuis_texte(\"X1=z\")) == NULL", "test_parser.c", 27, __extension__ __PRETTY_FUNCTION__); }));
 ((void) sizeof ((parse_arguments(((void *)0)) == ((void *)0)) ? 1 : 0), __extension__ ({ if (parse_arguments(((void *)0)) == ((void *)0)) ; else __assert_fail ("parse_arguments(NULL) == NULL", "test_parser.c", 29, __extension__ __PRETTY_FUNCTION__); }));
 ((void) sizeof ((parse_arguments(text_creer_depuis_texte("")) == ((void *)0)) ? 1 : 0), __extension__ ({ if (parse_arguments(text_creer_depuis_texte("")) == ((void *)0)) ; else __assert_fail ("parse_arguments(text_creer_depuis_texte(\"\")) == NULL", "test_parser.c", 30, __extension__ __PRETTY_FUNCTION__); }));
 ((void) sizeof ((parse_arguments(text_creer_depuis_texte(" ")) == ((void *)0)) ? 1 : 0), __extension__ ({ if (parse_arguments(text_creer_depuis_texte(" ")) == ((void *)0)) ; else __assert_fail ("parse_arguments(text_creer_depuis_texte(\" \")) == NULL", "test_parser.c", 31, __extension__ __PRETTY_FUNCTION__); }));
 ((void) sizeof ((parse_arguments(text_creer_depuis_texte("1, 2")) == ((void *)0)) ? 1 : 0), __extension__ ({ if (parse_arguments(text_creer_depuis_texte("1, 2")) == ((void *)0)) ; else __assert_fail ("parse_arguments(text_creer_depuis_texte(\"1, 2\")) == NULL", "test_parser.c", 32, __extension__ __PRETTY_FUNCTION__); }));
 ((void) sizeof ((parse_arguments(text_creer_depuis_texte("1,2")) != ((void *)0)) ? 1 : 0), __extension__ ({ if (parse_arguments(text_creer_depuis_texte("1,2")) != ((void *)0)) ; else __assert_fail ("parse_arguments(text_creer_depuis_texte(\"1,2\")) != NULL", "test_parser.c", 33, __extension__ __PRETTY_FUNCTION__); }));
 ((void) sizeof ((parse_arguments(text_creer_depuis_texte("1,2x")) == ((void *)0)) ? 1 : 0), __extension__ ({ if (parse_arguments(text_creer_depuis_texte("1,2x")) == ((void *)0)) ; else __assert_fail ("parse_arguments(text_creer_depuis_texte(\"1,2x\")) == NULL", "test_parser.c", 34, __extension__ __PRETTY_FUNCTION__); }));
 ((void) sizeof ((parse_arguments(text_creer_depuis_texte("X1,X2,X3,2,88,F2(99,11,22)")) != ((void *)0)) ? 1 : 0), __extension__ ({ if (parse_arguments(text_creer_depuis_texte("X1,X2,X3,2,88,F2(99,11,22)")) != ((void *)0)) ; else __assert_fail ("parse_arguments(text_creer_depuis_texte(\"X1,X2,X3,2,88,F2(99,11,22)\")) != NULL", "test_parser.c", 35, __extension__ __PRETTY_FUNCTION__); }));
 ((void) sizeof ((parse_arguments(text_creer_depuis_texte("X1,Xx2,X3,2,88,F2(99,11,22)")) == ((void *)0)) ? 1 : 0), __extension__ ({ if (parse_arguments(text_creer_depuis_texte("X1,Xx2,X3,2,88,F2(99,11,22)")) == ((void *)0)) ; else __assert_fail ("parse_arguments(text_creer_depuis_texte(\"X1,Xx2,X3,2,88,F2(99,11,22)\")) == NULL", "test_parser.c", 36, __extension__ __PRETTY_FUNCTION__); }));
 ((void) sizeof ((parse_terme(((void *)0)) == ((void *)0)) ? 1 : 0), __extension__ ({ if (parse_terme(((void *)0)) == ((void *)0)) ; else __assert_fail ("parse_terme(NULL) == NULL", "test_parser.c", 38, __extension__ __PRETTY_FUNCTION__); }));
 ((void) sizeof ((parse_terme(text_creer_depuis_texte("")) == ((void *)0)) ? 1 : 0), __extension__ ({ if (parse_terme(text_creer_depuis_texte("")) == ((void *)0)) ; else __assert_fail ("parse_terme(text_creer_depuis_texte(\"\")) == NULL", "test_parser.c", 39, __extension__ __PRETTY_FUNCTION__); }));
 ((void) sizeof ((parse_terme(text_creer_depuis_texte("X1")) != ((void *)0)) ? 1 : 0), __extension__ ({ if (parse_terme(text_creer_depuis_texte("X1")) != ((void *)0)) ; else __assert_fail ("parse_terme(text_creer_depuis_texte(\"X1\")) != NULL", "test_parser.c", 40, __extension__ __PRETTY_FUNCTION__); }));
 ((void) sizeof ((parse_terme(text_creer_depuis_texte("1")) != ((void *)0)) ? 1 : 0), __extension__ ({ if (parse_terme(text_creer_depuis_texte("1")) != ((void *)0)) ; else __assert_fail ("parse_terme(text_creer_depuis_texte(\"1\")) != NULL", "test_parser.c", 41, __extension__ __PRETTY_FUNCTION__); }));
 ((void) sizeof ((parse_terme(text_creer_depuis_texte("F1(X2)")) != ((void *)0)) ? 1 : 0), __extension__ ({ if (parse_terme(text_creer_depuis_texte("F1(X2)")) != ((void *)0)) ; else __assert_fail ("parse_terme(text_creer_depuis_texte(\"F1(X2)\")) != NULL", "test_parser.c", 42, __extension__ __PRETTY_FUNCTION__); }));
 ((void) sizeof ((parse_terme(text_creer_depuis_texte("F1(X2,X1,X3)")) != ((void *)0)) ? 1 : 0), __extension__ ({ if (parse_terme(text_creer_depuis_texte("F1(X2,X1,X3)")) != ((void *)0)) ; else __assert_fail ("parse_terme(text_creer_depuis_texte(\"F1(X2,X1,X3)\")) != NULL", "test_parser.c", 43, __extension__ __PRETTY_FUNCTION__); }));
 ((void) sizeof ((parse_terme(text_creer_depuis_texte("X1 ")) == ((void *)0)) ? 1 : 0), __extension__ ({ if (parse_terme(text_creer_depuis_texte("X1 ")) == ((void *)0)) ; else __assert_fail ("parse_terme(text_creer_depuis_texte(\"X1 \")) == NULL", "test_parser.c", 44, __extension__ __PRETTY_FUNCTION__); }));
 ((void) sizeof ((parse_terme(text_creer_depuis_texte("=X1")) == ((void *)0)) ? 1 : 0), __extension__ ({ if (parse_terme(text_creer_depuis_texte("=X1")) == ((void *)0)) ; else __assert_fail ("parse_terme(text_creer_depuis_texte(\"=X1\")) == NULL", "test_parser.c", 45, __extension__ __PRETTY_FUNCTION__); }));
 ((void) sizeof ((parse_terme(text_creer_depuis_texte("X1=")) == ((void *)0)) ? 1 : 0), __extension__ ({ if (parse_terme(text_creer_depuis_texte("X1=")) == ((void *)0)) ; else __assert_fail ("parse_terme(text_creer_depuis_texte(\"X1=\")) == NULL", "test_parser.c", 46, __extension__ __PRETTY_FUNCTION__); }));
 ((void) sizeof ((parse_terme(text_creer_depuis_texte("z=X1")) == ((void *)0)) ? 1 : 0), __extension__ ({ if (parse_terme(text_creer_depuis_texte("z=X1")) == ((void *)0)) ; else __assert_fail ("parse_terme(text_creer_depuis_texte(\"z=X1\")) == NULL", "test_parser.c", 47, __extension__ __PRETTY_FUNCTION__); }));
 ((void) sizeof ((parse_terme(text_creer_depuis_texte("X1=z")) == ((void *)0)) ? 1 : 0), __extension__ ({ if (parse_terme(text_creer_depuis_texte("X1=z")) == ((void *)0)) ; else __assert_fail ("parse_terme(text_creer_depuis_texte(\"X1=z\")) == NULL", "test_parser.c", 48, __extension__ __PRETTY_FUNCTION__); }));
 ((void) sizeof ((parse_fonction(((void *)0)) == ((void *)0)) ? 1 : 0), __extension__ ({ if (parse_fonction(((void *)0)) == ((void *)0)) ; else __assert_fail ("parse_fonction(NULL) == NULL", "test_parser.c", 50, __extension__ __PRETTY_FUNCTION__); }));
 ((void) sizeof ((parse_fonction(text_creer_depuis_texte("")) == ((void *)0)) ? 1 : 0), __extension__ ({ if (parse_fonction(text_creer_depuis_texte("")) == ((void *)0)) ; else __assert_fail ("parse_fonction(text_creer_depuis_texte(\"\")) == NULL", "test_parser.c", 51, __extension__ __PRETTY_FUNCTION__); }));
 ((void) sizeof ((parse_fonction(text_creer_depuis_texte("X1")) == ((void *)0)) ? 1 : 0), __extension__ ({ if (parse_fonction(text_creer_depuis_texte("X1")) == ((void *)0)) ; else __assert_fail ("parse_fonction(text_creer_depuis_texte(\"X1\")) == NULL", "test_parser.c", 52, __extension__ __PRETTY_FUNCTION__); }));
 ((void) sizeof ((parse_fonction(text_creer_depuis_texte("1")) == ((void *)0)) ? 1 : 0), __extension__ ({ if (parse_fonction(text_creer_depuis_texte("1")) == ((void *)0)) ; else __assert_fail ("parse_fonction(text_creer_depuis_texte(\"1\")) == NULL", "test_parser.c", 53, __extension__ __PRETTY_FUNCTION__); }));
 ((void) sizeof ((parse_fonction(text_creer_depuis_texte("F1()")) == ((void *)0)) ? 1 : 0), __extension__ ({ if (parse_fonction(text_creer_depuis_texte("F1()")) == ((void *)0)) ; else __assert_fail ("parse_fonction(text_creer_depuis_texte(\"F1()\")) == NULL", "test_parser.c", 54, __extension__ __PRETTY_FUNCTION__); }));
 ((void) sizeof ((parse_fonction(text_creer_depuis_texte("F1(X1)")) != ((void *)0)) ? 1 : 0), __extension__ ({ if (parse_fonction(text_creer_depuis_texte("F1(X1)")) != ((void *)0)) ; else __assert_fail ("parse_fonction(text_creer_depuis_texte(\"F1(X1)\")) != NULL", "test_parser.c", 55, __extension__ __PRETTY_FUNCTION__); }));
 ((void) sizeof ((parse_fonction(text_creer_depuis_texte("F1(X1,X2,X3)")) != ((void *)0)) ? 1 : 0), __extension__ ({ if (parse_fonction(text_creer_depuis_texte("F1(X1,X2,X3)")) != ((void *)0)) ; else __assert_fail ("parse_fonction(text_creer_depuis_texte(\"F1(X1,X2,X3)\")) != NULL", "test_parser.c", 56, __extension__ __PRETTY_FUNCTION__); }));
 ((void) sizeof ((parse_fonction(text_creer_depuis_texte("F1(X1,X2,X3 )")) == ((void *)0)) ? 1 : 0), __extension__ ({ if (parse_fonction(text_creer_depuis_texte("F1(X1,X2,X3 )")) == ((void *)0)) ; else __assert_fail ("parse_fonction(text_creer_depuis_texte(\"F1(X1,X2,X3 )\")) == NULL", "test_parser.c", 57, __extension__ __PRETTY_FUNCTION__); }));
}

canonical_original_code:
void test_parser()
{
 ((void) sizeof ((creer_systeme_depuis_texte(((void *)0)) == ((void *)0)) ? 1 : 0), __extension__ ({ if (creer_systeme_depuis_texte(((void *)0)) == ((void *)0)) ; else __assert_fail ("creer_systeme_depuis_texte(NULL) == NULL", "test_parser.c", 17, __extension__ __PRETTY_FUNCTION__); }));
 ((void) sizeof ((creer_systeme_depuis_texte("") == ((void *)0)) ? 1 : 0), __extension__ ({ if (creer_systeme_depuis_texte("") == ((void *)0)) ; else __assert_fail ("creer_systeme_depuis_texte(\"\") == NULL", "test_parser.c", 18, __extension__ __PRETTY_FUNCTION__); }));
 ((void) sizeof ((creer_systeme_depuis_texte("X1=xx") == ((void *)0)) ? 1 : 0), __extension__ ({ if (creer_systeme_depuis_texte("X1=xx") == ((void *)0)) ; else __assert_fail ("creer_systeme_depuis_texte(\"X1=xx\") == NULL", "test_parser.c", 19, __extension__ __PRETTY_FUNCTION__); }));
 ((void) sizeof ((creer_systeme_depuis_texte("X1=2") != ((void *)0)) ? 1 : 0), __extension__ ({ if (creer_systeme_depuis_texte("X1=2") != ((void *)0)) ; else __assert_fail ("creer_systeme_depuis_texte(\"X1=2\") != NULL", "test_parser.c", 20, __extension__ __PRETTY_FUNCTION__); }));
 ((void) sizeof ((parse_equation(((void *)0)) == ((void *)0)) ? 1 : 0), __extension__ ({ if (parse_equation(((void *)0)) == ((void *)0)) ; else __assert_fail ("parse_equation(NULL) == NULL", "test_parser.c", 22, __extension__ __PRETTY_FUNCTION__); }));
 ((void) sizeof ((parse_equation(text_creer_depuis_texte("")) == ((void *)0)) ? 1 : 0), __extension__ ({ if (parse_equation(text_creer_depuis_texte("")) == ((void *)0)) ; else __assert_fail ("parse_equation(text_creer_depuis_texte(\"\")) == NULL", "test_parser.c", 23, __extension__ __PRETTY_FUNCTION__); }));
 ((void) sizeof ((parse_equation(text_creer_depuis_texte("X1=X2")) != ((void *)0)) ? 1 : 0), __extension__ ({ if (parse_equation(text_creer_depuis_texte("X1=X2")) != ((void *)0)) ; else __assert_fail ("parse_equation(text_creer_depuis_texte(\"X1=X2\")) != NULL", "test_parser.c", 24, __extension__ __PRETTY_FUNCTION__); }));
 ((void) sizeof ((parse_equation(text_creer_depuis_texte("X1 =X2")) == ((void *)0)) ? 1 : 0), __extension__ ({ if (parse_equation(text_creer_depuis_texte("X1 =X2")) == ((void *)0)) ; else __assert_fail ("parse_equation(text_creer_depuis_texte(\"X1 =X2\")) == NULL", "test_parser.c", 25, __extension__ __PRETTY_FUNCTION__); }));
 ((void) sizeof ((parse_equation(text_creer_depuis_texte("X1=")) == ((void *)0)) ? 1 : 0), __extension__ ({ if (parse_equation(text_creer_depuis_texte("X1=")) == ((void *)0)) ; else __assert_fail ("parse_equation(text_creer_depuis_texte(\"X1=\")) == NULL", "test_parser.c", 26, __extension__ __PRETTY_FUNCTION__); }));
 ((void) sizeof ((parse_equation(text_creer_depuis_texte("X1=z")) == ((void *)0)) ? 1 : 0), __extension__ ({ if (parse_equation(text_creer_depuis_texte("X1=z")) == ((void *)0)) ; else __assert_fail ("parse_equation(text_creer_depuis_texte(\"X1=z\")) == NULL", "test_parser.c", 27, __extension__ __PRETTY_FUNCTION__); }));
 ((void) sizeof ((parse_arguments(((void *)0)) == ((void *)0)) ? 1 : 0), __extension__ ({ if (parse_arguments(((void *)0)) == ((void *)0)) ; else __assert_fail ("parse_arguments(NULL) == NULL", "test_parser.c", 29, __extension__ __PRETTY_FUNCTION__); }));
 ((void) sizeof ((parse_arguments(text_creer_depuis_texte("")) == ((void *)0)) ? 1 : 0), __extension__ ({ if (parse_arguments(text_creer_depuis_texte("")) == ((void *)0)) ; else __assert_fail ("parse_arguments(text_creer_depuis_texte(\"\")) == NULL", "test_parser.c", 30, __extension__ __PRETTY_FUNCTION__); }));
 ((void) sizeof ((parse_arguments(text_creer_depuis_texte(" ")) == ((void *)0)) ? 1 : 0), __extension__ ({ if (parse_arguments(text_creer_depuis_texte(" ")) == ((void *)0)) ; else __assert_fail ("parse_arguments(text_creer_depuis_texte(\" \")) == NULL", "test_parser.c", 31, __extension__ __PRETTY_FUNCTION__); }));
 ((void) sizeof ((parse_arguments(text_creer_depuis_texte("1, 2")) == ((void *)0)) ? 1 : 0), __extension__ ({ if (parse_arguments(text_creer_depuis_texte("1, 2")) == ((void *)0)) ; else __assert_fail ("parse_arguments(text_creer_depuis_texte(\"1, 2\")) == NULL", "test_parser.c", 32, __extension__ __PRETTY_FUNCTION__); }));
 ((void) sizeof ((parse_arguments(text_creer_depuis_texte("1,2")) != ((void *)0)) ? 1 : 0), __extension__ ({ if (parse_arguments(text_creer_depuis_texte("1,2")) != ((void *)0)) ; else __assert_fail ("parse_arguments(text_creer_depuis_texte(\"1,2\")) != NULL", "test_parser.c", 33, __extension__ __PRETTY_FUNCTION__); }));
 ((void) sizeof ((parse_arguments(text_creer_depuis_texte("1,2x")) == ((void *)0)) ? 1 : 0), __extension__ ({ if (parse_arguments(text_creer_depuis_texte("1,2x")) == ((void *)0)) ; else __assert_fail ("parse_arguments(text_creer_depuis_texte(\"1,2x\")) == NULL", "test_parser.c", 34, __extension__ __PRETTY_FUNCTION__); }));
 ((void) sizeof ((parse_arguments(text_creer_depuis_texte("X1,X2,X3,2,88,F2(99,11,22)")) != ((void *)0)) ? 1 : 0), __extension__ ({ if (parse_arguments(text_creer_depuis_texte("X1,X2,X3,2,88,F2(99,11,22)")) != ((void *)0)) ; else __assert_fail ("parse_arguments(text_creer_depuis_texte(\"X1,X2,X3,2,88,F2(99,11,22)\")) != NULL", "test_parser.c", 35, __extension__ __PRETTY_FUNCTION__); }));
 ((void) sizeof ((parse_arguments(text_creer_depuis_texte("X1,Xx2,X3,2,88,F2(99,11,22)")) == ((void *)0)) ? 1 : 0), __extension__ ({ if (parse_arguments(text_creer_depuis_texte("X1,Xx2,X3,2,88,F2(99,11,22)")) == ((void *)0)) ; else __assert_fail ("parse_arguments(text_creer_depuis_texte(\"X1,Xx2,X3,2,88,F2(99,11,22)\")) == NULL", "test_parser.c", 36, __extension__ __PRETTY_FUNCTION__); }));
 ((void) sizeof ((parse_terme(((void *)0)) == ((void *)0)) ? 1 : 0), __extension__ ({ if (parse_terme(((void *)0)) == ((void *)0)) ; else __assert_fail ("parse_terme(NULL) == NULL", "test_parser.c", 38, __extension__ __PRETTY_FUNCTION__); }));
 ((void) sizeof ((parse_terme(text_creer_depuis_texte("")) == ((void *)0)) ? 1 : 0), __extension__ ({ if (parse_terme(text_creer_depuis_texte("")) == ((void *)0)) ; else __assert_fail ("parse_terme(text_creer_depuis_texte(\"\")) == NULL", "test_parser.c", 39, __extension__ __PRETTY_FUNCTION__); }));
 ((void) sizeof ((parse_terme(text_creer_depuis_texte("X1")) != ((void *)0)) ? 1 : 0), __extension__ ({ if (parse_terme(text_creer_depuis_texte("X1")) != ((void *)0)) ; else __assert_fail ("parse_terme(text_creer_depuis_texte(\"X1\")) != NULL", "test_parser.c", 40, __extension__ __PRETTY_FUNCTION__); }));
 ((void) sizeof ((parse_terme(text_creer_depuis_texte("1")) != ((void *)0)) ? 1 : 0), __extension__ ({ if (parse_terme(text_creer_depuis_texte("1")) != ((void *)0)) ; else __assert_fail ("parse_terme(text_creer_depuis_texte(\"1\")) != NULL", "test_parser.c", 41, __extension__ __PRETTY_FUNCTION__); }));
 ((void) sizeof ((parse_terme(text_creer_depuis_texte("F1(X2)")) != ((void *)0)) ? 1 : 0), __extension__ ({ if (parse_terme(text_creer_depuis_texte("F1(X2)")) != ((void *)0)) ; else __assert_fail ("parse_terme(text_creer_depuis_texte(\"F1(X2)\")) != NULL", "test_parser.c", 42, __extension__ __PRETTY_FUNCTION__); }));
 ((void) sizeof ((parse_terme(text_creer_depuis_texte("F1(X2,X1,X3)")) != ((void *)0)) ? 1 : 0), __extension__ ({ if (parse_terme(text_creer_depuis_texte("F1(X2,X1,X3)")) != ((void *)0)) ; else __assert_fail ("parse_terme(text_creer_depuis_texte(\"F1(X2,X1,X3)\")) != NULL", "test_parser.c", 43, __extension__ __PRETTY_FUNCTION__); }));
 ((void) sizeof ((parse_terme(text_creer_depuis_texte("X1 ")) == ((void *)0)) ? 1 : 0), __extension__ ({ if (parse_terme(text_creer_depuis_texte("X1 ")) == ((void *)0)) ; else __assert_fail ("parse_terme(text_creer_depuis_texte(\"X1 \")) == NULL", "test_parser.c", 44, __extension__ __PRETTY_FUNCTION__); }));
 ((void) sizeof ((parse_terme(text_creer_depuis_texte("=X1")) == ((void *)0)) ? 1 : 0), __extension__ ({ if (parse_terme(text_creer_depuis_texte("=X1")) == ((void *)0)) ; else __assert_fail ("parse_terme(text_creer_depuis_texte(\"=X1\")) == NULL", "test_parser.c", 45, __extension__ __PRETTY_FUNCTION__); }));
 ((void) sizeof ((parse_terme(text_creer_depuis_texte("X1=")) == ((void *)0)) ? 1 : 0), __extension__ ({ if (parse_terme(text_creer_depuis_texte("X1=")) == ((void *)0)) ; else __assert_fail ("parse_terme(text_creer_depuis_texte(\"X1=\")) == NULL", "test_parser.c", 46, __extension__ __PRETTY_FUNCTION__); }));
 ((void) sizeof ((parse_terme(text_creer_depuis_texte("z=X1")) == ((void *)0)) ? 1 : 0), __extension__ ({ if (parse_terme(text_creer_depuis_texte("z=X1")) == ((void *)0)) ; else __assert_fail ("parse_terme(text_creer_depuis_texte(\"z=X1\")) == NULL", "test_parser.c", 47, __extension__ __PRETTY_FUNCTION__); }));
 ((void) sizeof ((parse_terme(text_creer_depuis_texte("X1=z")) == ((void *)0)) ? 1 : 0), __extension__ ({ if (parse_terme(text_creer_depuis_texte("X1=z")) == ((void *)0)) ; else __assert_fail ("parse_terme(text_creer_depuis_texte(\"X1=z\")) == NULL", "test_parser.c", 48, __extension__ __PRETTY_FUNCTION__); }));
 ((void) sizeof ((parse_fonction(((void *)0)) == ((void *)0)) ? 1 : 0), __extension__ ({ if (parse_fonction(((void *)0)) == ((void *)0)) ; else __assert_fail ("parse_fonction(NULL) == NULL", "test_parser.c", 50, __extension__ __PRETTY_FUNCTION__); }));
 ((void) sizeof ((parse_fonction(text_creer_depuis_texte("")) == ((void *)0)) ? 1 : 0), __extension__ ({ if (parse_fonction(text_creer_depuis_texte("")) == ((void *)0)) ; else __assert_fail ("parse_fonction(text_creer_depuis_texte(\"\")) == NULL", "test_parser.c", 51, __extension__ __PRETTY_FUNCTION__); }));
 ((void) sizeof ((parse_fonction(text_creer_depuis_texte("X1")) == ((void *)0)) ? 1 : 0), __extension__ ({ if (parse_fonction(text_creer_depuis_texte("X1")) == ((void *)0)) ; else __assert_fail ("parse_fonction(text_creer_depuis_texte(\"X1\")) == NULL", "test_parser.c", 52, __extension__ __PRETTY_FUNCTION__); }));
 ((void) sizeof ((parse_fonction(text_creer_depuis_texte("1")) == ((void *)0)) ? 1 : 0), __extension__ ({ if (parse_fonction(text_creer_depuis_texte("1")) == ((void *)0)) ; else __assert_fail ("parse_fonction(text_creer_depuis_texte(\"1\")) == NULL", "test_parser.c", 53, __extension__ __PRETTY_FUNCTION__); }));
 ((void) sizeof ((parse_fonction(text_creer_depuis_texte("F1()")) == ((void *)0)) ? 1 : 0), __extension__ ({ if (parse_fonction(text_creer_depuis_texte("F1()")) == ((void *)0)) ; else __assert_fail ("parse_fonction(text_creer_depuis_texte(\"F1()\")) == NULL", "test_parser.c", 54, __extension__ __PRETTY_FUNCTION__); }));
 ((void) sizeof ((parse_fonction(text_creer_depuis_texte("F1(X1)")) != ((void *)0)) ? 1 : 0), __extension__ ({ if (parse_fonction(text_creer_depuis_texte("F1(X1)")) != ((void *)0)) ; else __assert_fail ("parse_fonction(text_creer_depuis_texte(\"F1(X1)\")) != NULL", "test_parser.c", 55, __extension__ __PRETTY_FUNCTION__); }));
 ((void) sizeof ((parse_fonction(text_creer_depuis_texte("F1(X1,X2,X3)")) != ((void *)0)) ? 1 : 0), __extension__ ({ if (parse_fonction(text_creer_depuis_texte("F1(X1,X2,X3)")) != ((void *)0)) ; else __assert_fail ("parse_fonction(text_creer_depuis_texte(\"F1(X1,X2,X3)\")) != NULL", "test_parser.c", 56, __extension__ __PRETTY_FUNCTION__); }));
 ((void) sizeof ((parse_fonction(text_creer_depuis_texte("F1(X1,X2,X3 )")) == ((void *)0)) ? 1 : 0), __extension__ ({ if (parse_fonction(text_creer_depuis_texte("F1(X1,X2,X3 )")) == ((void *)0)) ; else __assert_fail ("parse_fonction(text_creer_depuis_texte(\"F1(X1,X2,X3 )\")) == NULL", "test_parser.c", 57, __extension__ __PRETTY_FUNCTION__); }));
}


decompiled_code:
__int64 test_representant()
{
__int64 result; // rax

if ( obtenir_representant_terme(0LL, 0LL) )
_assert_fail("obtenir_representant_terme(NULL,NULL)==NULL", "test_representant.c", 0x17u, "test_representant");
result = obtenir_representant_equation(0LL, 0LL);
if ( result )
_assert_fail("obtenir_representant_equation(NULL,NULL)==NULL", "test_representant.c", 0x19u, "test_representant");
return result;
}

canonical_decompiled_code:
__int64 func0()
{
__int64 result; // rax

if ( obtenir_representant_terme(0LL, 0LL) )
_assert_fail("obtenir_representant_terme(NULL,NULL)==NULL", "test_representant.c", 0x17u, "test_representant");
result = obtenir_representant_equation(0LL, 0LL);
if ( result )
_assert_fail("obtenir_representant_equation(NULL,NULL)==NULL", "test_representant.c", 0x19u, "test_representant");
return result;
}

original_code:
void test_representant(void)
{
((void) sizeof ((obtenir_representant_terme(((void *)0),((void *)0))==((void *)0)) ? 1 : 0), __extension__ ({ if (obtenir_representant_terme(((void *)0),((void *)0))==((void *)0)) ; else __assert_fail ("obtenir_representant_terme(NULL,NULL)==NULL", "test_representant.c", 23, __extension__ __PRETTY_FUNCTION__); }));
((void) sizeof ((obtenir_representant_equation(((void *)0),((void *)0))==((void *)0)) ? 1 : 0), __extension__ ({ if (obtenir_representant_equation(((void *)0),((void *)0))==((void *)0)) ; else __assert_fail ("obtenir_representant_equation(NULL,NULL)==NULL", "test_representant.c", 25, __extension__ __PRETTY_FUNCTION__); }));
}

canonical_original_code:
void test_representant()
{
((void) sizeof ((obtenir_representant_terme(((void *)0),((void *)0))==((void *)0)) ? 1 : 0), __extension__ ({ if (obtenir_representant_terme(((void *)0),((void *)0))==((void *)0)) ; else __assert_fail ("obtenir_representant_terme(NULL,NULL)==NULL", "test_representant.c", 23, __extension__ __PRETTY_FUNCTION__); }));
((void) sizeof ((obtenir_representant_equation(((void *)0),((void *)0))==((void *)0)) ? 1 : 0), __extension__ ({ if (obtenir_representant_equation(((void *)0),((void *)0))==((void *)0)) ; else __assert_fail ("obtenir_representant_equation(NULL,NULL)==NULL", "test_representant.c", 25, __extension__ __PRETTY_FUNCTION__); }));
}


decompiled_code:
__int64 test_types()
{
__int64 result; // rax

if ( (unsigned int)est_fonction(1LL) )
_assert_fail("est_fonction(Variable) == 0", "test_types.c", 0x10u, "test_types");
if ( (unsigned int)est_fonction(2LL) )
_assert_fail("est_fonction(Constante) == 0", "test_types.c", 0x11u, "test_types");
if ( (unsigned int)est_fonction(30LL) != 1 )
_assert_fail("est_fonction(Fonction) == 1", "test_types.c", 0x12u, "test_types");
if ( (unsigned int)est_fonction(33LL) != 1 )
_assert_fail("est_fonction(Fonction+3) == 1", "test_types.c", 0x13u, "test_types");
if ( (unsigned int)est_fonction(29LL) )
_assert_fail("est_fonction(Fonction-1) == 0", "test_types.c", 0x14u, "test_types");
result = est_fonction(34LL);
if ( (_DWORD)result )
_assert_fail("est_fonction(Fonction+4) == 0", "test_types.c", 0x15u, "test_types");
return result;
}

canonical_decompiled_code:
__int64 func0()
{
__int64 result; // rax

if ( (unsigned int)est_fonction(1LL) )
_assert_fail("est_fonction(Variable) == 0", "test_types.c", 0x10u, "test_types");
if ( (unsigned int)est_fonction(2LL) )
_assert_fail("est_fonction(Constante) == 0", "test_types.c", 0x11u, "test_types");
if ( (unsigned int)est_fonction(30LL) != 1 )
_assert_fail("est_fonction(Fonction) == 1", "test_types.c", 0x12u, "test_types");
if ( (unsigned int)est_fonction(33LL) != 1 )
_assert_fail("est_fonction(Fonction+3) == 1", "test_types.c", 0x13u, "test_types");
if ( (unsigned int)est_fonction(29LL) )
_assert_fail("est_fonction(Fonction-1) == 0", "test_types.c", 0x14u, "test_types");
result = est_fonction(34LL);
if ( (_DWORD)result )
_assert_fail("est_fonction(Fonction+4) == 0", "test_types.c", 0x15u, "test_types");
return result;
}

original_code:
void test_types(void)
{
 ((void) sizeof ((est_fonction(Variable) == 0) ? 1 : 0), __extension__ ({ if (est_fonction(Variable) == 0) ; else __assert_fail ("est_fonction(Variable) == 0", "test_types.c", 16, __extension__ __PRETTY_FUNCTION__); }));
 ((void) sizeof ((est_fonction(Constante) == 0) ? 1 : 0), __extension__ ({ if (est_fonction(Constante) == 0) ; else __assert_fail ("est_fonction(Constante) == 0", "test_types.c", 17, __extension__ __PRETTY_FUNCTION__); }));
 ((void) sizeof ((est_fonction(Fonction) == 1) ? 1 : 0), __extension__ ({ if (est_fonction(Fonction) == 1) ; else __assert_fail ("est_fonction(Fonction) == 1", "test_types.c", 18, __extension__ __PRETTY_FUNCTION__); }));
 ((void) sizeof ((est_fonction(Fonction+3) == 1) ? 1 : 0), __extension__ ({ if (est_fonction(Fonction+3) == 1) ; else __assert_fail ("est_fonction(Fonction+3) == 1", "test_types.c", 19, __extension__ __PRETTY_FUNCTION__); }));
 ((void) sizeof ((est_fonction(Fonction-1) == 0) ? 1 : 0), __extension__ ({ if (est_fonction(Fonction-1) == 0) ; else __assert_fail ("est_fonction(Fonction-1) == 0", "test_types.c", 20, __extension__ __PRETTY_FUNCTION__); }));
 ((void) sizeof ((est_fonction(Fonction+4) == 0) ? 1 : 0), __extension__ ({ if (est_fonction(Fonction+4) == 0) ; else __assert_fail ("est_fonction(Fonction+4) == 0", "test_types.c", 21, __extension__ __PRETTY_FUNCTION__); }));
}

canonical_original_code:
void test_types()
{
 ((void) sizeof ((est_fonction(Variable) == 0) ? 1 : 0), __extension__ ({ if (est_fonction(Variable) == 0) ; else __assert_fail ("est_fonction(Variable) == 0", "test_types.c", 16, __extension__ __PRETTY_FUNCTION__); }));
 ((void) sizeof ((est_fonction(Constante) == 0) ? 1 : 0), __extension__ ({ if (est_fonction(Constante) == 0) ; else __assert_fail ("est_fonction(Constante) == 0", "test_types.c", 17, __extension__ __PRETTY_FUNCTION__); }));
 ((void) sizeof ((est_fonction(Fonction) == 1) ? 1 : 0), __extension__ ({ if (est_fonction(Fonction) == 1) ; else __assert_fail ("est_fonction(Fonction) == 1", "test_types.c", 18, __extension__ __PRETTY_FUNCTION__); }));
 ((void) sizeof ((est_fonction(Fonction+3) == 1) ? 1 : 0), __extension__ ({ if (est_fonction(Fonction+3) == 1) ; else __assert_fail ("est_fonction(Fonction+3) == 1", "test_types.c", 19, __extension__ __PRETTY_FUNCTION__); }));
 ((void) sizeof ((est_fonction(Fonction-1) == 0) ? 1 : 0), __extension__ ({ if (est_fonction(Fonction-1) == 0) ; else __assert_fail ("est_fonction(Fonction-1) == 0", "test_types.c", 20, __extension__ __PRETTY_FUNCTION__); }));
 ((void) sizeof ((est_fonction(Fonction+4) == 0) ? 1 : 0), __extension__ ({ if (est_fonction(Fonction+4) == 0) ; else __assert_fail ("est_fonction(Fonction+4) == 0", "test_types.c", 21, __extension__ __PRETTY_FUNCTION__); }));
}


decompiled_code:
int test_affichage()
{
__int64 v0; // rax
__int64 v1; // rax
__int64 v2; // rax
__int64 v3; // rax
__int64 v4; // rax
__int64 v5; // rax
__int64 v6; // rax
__int64 v7; // rax

puts("Comparer X1=2 avec:");
v0 = creer_systeme_depuis_texte("X1=2");
afficher_systeme(v0);
puts("Comparer X1=F2(X2),X2=3 avec:");
v1 = creer_systeme_depuis_texte("X1=F2(X2),X2=3");
afficher_systeme(v1);
puts("Comparer X3 avec:");
v2 = text_creer_depuis_texte("X3");
v3 = parse_terme(v2);
afficher_terme(v3);
puts(&byte_128);
puts("Comparer F3(X1,X2,3230987) avec:");
v4 = text_creer_depuis_texte("F3(X1,X2,3230987)");
v5 = parse_terme(v4);
afficher_terme(v5);
puts(&byte_128);
puts("Comparer X1,X2,3230987 avec:");
v6 = text_creer_depuis_texte("X1,X2,3230987");
v7 = parse_arguments(v6);
afficher_argument(v7);
return puts(&byte_128);
}

canonical_decompiled_code:
int func0()
{
__int64 v0; // rax
__int64 v1; // rax
__int64 v2; // rax
__int64 v3; // rax
__int64 v4; // rax
__int64 v5; // rax
__int64 v6; // rax
__int64 v7; // rax

puts("Comparer X1=2 avec:");
v0 = creer_systeme_depuis_texte("X1=2");
afficher_systeme(v0);
puts("Comparer X1=F2(X2),X2=3 avec:");
v1 = creer_systeme_depuis_texte("X1=F2(X2),X2=3");
afficher_systeme(v1);
puts("Comparer X3 avec:");
v2 = text_creer_depuis_texte("X3");
v3 = parse_terme(v2);
afficher_terme(v3);
puts(&byte_128);
puts("Comparer F3(X1,X2,3230987) avec:");
v4 = text_creer_depuis_texte("F3(X1,X2,3230987)");
v5 = parse_terme(v4);
afficher_terme(v5);
puts(&byte_128);
puts("Comparer X1,X2,3230987 avec:");
v6 = text_creer_depuis_texte("X1,X2,3230987");
v7 = parse_arguments(v6);
afficher_argument(v7);
return puts(&byte_128);
}

original_code:
void test_affichage(void)
{
 puts("Comparer X1=2 avec:");
 afficher_systeme(creer_systeme_depuis_texte("X1=2"));
 puts("Comparer X1=F2(X2),X2=3 avec:");
 afficher_systeme(creer_systeme_depuis_texte("X1=F2(X2),X2=3"));
 puts("Comparer X3 avec:");
 afficher_terme(parse_terme(text_creer_depuis_texte("X3")));
 puts("");
 puts("Comparer F3(X1,X2,3230987) avec:");
 afficher_terme(parse_terme(text_creer_depuis_texte("F3(X1,X2,3230987)")));
 puts("");
 puts("Comparer X1,X2,3230987 avec:");
 afficher_argument(parse_arguments(text_creer_depuis_texte("X1,X2,3230987")));
 puts("");
}

canonical_original_code:
void test_affichage()
{
 puts("Comparer X1=2 avec:");
 afficher_systeme(creer_systeme_depuis_texte("X1=2"));
 puts("Comparer X1=F2(X2),X2=3 avec:");
 afficher_systeme(creer_systeme_depuis_texte("X1=F2(X2),X2=3"));
 puts("Comparer X3 avec:");
 afficher_terme(parse_terme(text_creer_depuis_texte("X3")));
 puts("");
 puts("Comparer F3(X1,X2,3230987) avec:");
 afficher_terme(parse_terme(text_creer_depuis_texte("F3(X1,X2,3230987)")));
 puts("");
 puts("Comparer X1,X2,3230987 avec:");
 afficher_argument(parse_arguments(text_creer_depuis_texte("X1,X2,3230987")));
 puts("");
}