1  static int
       2  foo (int si1, int si2)
       3  {
       4    return si1 > 0 && si2 > 0 && si1 > -si2 || si1 < 0 && si2 < 0
       5      && si1 < -si2 ? : si1 + si2;
       6  }
       7  
       8  struct S0
       9  {
      10    unsigned short f1;
      11  };
      12  int g_4;
      13  struct S0 g_54 = {
      14    3428
      15  };
      16  
      17  int
      18  func_21 (int * p_22, int * const int32p_24, unsigned p_25,
      19           const int * p_26);
      20  
      21  void int324 (unsigned p_15, int * p_16, int * p_17, int * p_18)
      22  {
      23    if (foo (g_4, func_21 (p_18, &g_4, 0, 0)))
      24      {
      25        for (g_54.f1; g_54.f1; g_54.f1 += 1)
      26          {
      27          }
      28      }
      29  }
      30  
      31  int
      32  func_21 (int * p_22, int * const int32p_24, unsigned p_25,
      33           const int * p_26)
      34  {
      35    for (0; 1; p_25 += 1)
      36    lbl_29:if (p_25)
      37        goto lbl_28;
      38  lbl_28:for (p_25 = 0; p_25 < 9; p_25 += 1)
      39      if (p_25)
      40        goto lbl_29;
      41    unsigned short l_53;
      42    for (0; l_53; l_53 = foo)
      43      {
      44      }
      45    return 0;
      46  }