
/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */

VALUE * __regparm3 eval2(_Bool evaluate)

{
  char cVar1;
  char *a;
  _Bool _Var2;
  VALUE *v;
  VALUE *v_00;
  int *piVar3;
  char *pcVar4;
  char *pcVar5;
  uint uVar6;
  undefined4 local_2c;
  
  v = eval3(evaluate);
LAB_000131ed:
  _Var2 = nextarg("<");
  if (_Var2) {
    local_2c = 0;
  }
  else {
    _Var2 = nextarg("<=");
    local_2c = 1;
    if (!_Var2) {
      _Var2 = nextarg("=");
      if ((_Var2) || (_Var2 = nextarg("=="), _Var2)) {
        local_2c = 2;
      }
      else {
        _Var2 = nextarg("!=");
        local_2c = 3;
        if (!_Var2) {
          _Var2 = nextarg(">=");
          local_2c = 4;
          if (!_Var2) {
            _Var2 = nextarg(">");
            if (!_Var2) {
              return v;
            }
            local_2c = 5;
          }
        }
      }
    }
  }
  uVar6 = 0;
  v_00 = eval3(evaluate);
  if (evaluate) {
    tostring(v);
    tostring(v_00);
    a = (v->u).s;
    pcVar4 = a + (*a == '-');
    cVar1 = *pcVar4;
    do {
      if (9 < (int)cVar1 - 0x30U) goto LAB_00013246;
      pcVar4 = pcVar4 + 1;
      cVar1 = *pcVar4;
    } while (cVar1 != '\0');
    pcVar4 = (v_00->u).s;
    pcVar5 = pcVar4 + (*pcVar4 == '-');
    cVar1 = *pcVar5;
    do {
      if (9 < (int)cVar1 - 0x30U) goto LAB_00013246;
      pcVar5 = pcVar5 + 1;
      cVar1 = *pcVar5;
    } while (cVar1 != '\0');
    uVar6 = strintcmp(a,pcVar4);
    goto LAB_00013262;
  }
  goto LAB_000131be;
LAB_00013246:
  piVar3 = __errno_location();
  *piVar3 = 0;
  uVar6 = strcoll((v->u).s,(v_00->u).s);
LAB_00013262:
  switch(local_2c) {
  default:
    uVar6 = uVar6 >> 0x1f;
    break;
  case 1:
    uVar6 = (uint)((int)uVar6 < 1);
    break;
  case 2:
    uVar6 = (uint)(uVar6 == 0);
    break;
  case 3:
    uVar6 = (uint)(uVar6 != 0);
    break;
  case 4:
    uVar6 = ~uVar6 >> 0x1f;
    break;
  case 5:
    uVar6 = (uint)(0 < (int)uVar6);
  }
LAB_000131be:
  freev(v);
  freev(v_00);
  v = (VALUE *)xmalloc(0x10);
  v->type = integer;
  __gmpz_init_set_ui(&v->u,uVar6);
  goto LAB_000131ed;
}



/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */

undefined4 * __regparm3 FUN_00013160(byte param_1)

{
  char *pcVar1;
  char cVar2;
  uint uVar3;
  undefined4 *puVar4;
  int iVar5;
  int *piVar6;
  char *pcVar7;
  char *pcVar8;
  uint uVar9;
  undefined4 uVar10;
  
  uVar3 = (uint)param_1;
  puVar4 = (undefined4 *)FUN_00013070();
LAB_000131ed:
  cVar2 = FUN_00011820();
  if (cVar2 == '\0') {
    cVar2 = FUN_00011820();
    uVar10 = 1;
    if (cVar2 == '\0') {
      cVar2 = FUN_00011820(1,uVar3);
      if ((cVar2 == '\0') && (cVar2 = FUN_00011820(), cVar2 == '\0')) {
        cVar2 = FUN_00011820();
        uVar10 = 3;
        if (cVar2 == '\0') {
          cVar2 = FUN_00011820();
          uVar10 = 4;
          if (cVar2 == '\0') {
            cVar2 = FUN_00011820();
            if (cVar2 == '\0') {
              return puVar4;
            }
            uVar10 = 5;
          }
        }
      }
      else {
        uVar10 = 2;
      }
    }
  }
  else {
    uVar10 = 0;
  }
  uVar9 = 0;
  iVar5 = FUN_00013070();
  if (param_1 != 0) {
    FUN_00011aa0();
    FUN_00011aa0();
    pcVar1 = (char *)puVar4[1];
    pcVar7 = pcVar1 + (*pcVar1 == '-');
    cVar2 = *pcVar7;
    do {
      if (9 < (int)cVar2 - 0x30U) goto LAB_00013246;
      pcVar7 = pcVar7 + 1;
      cVar2 = *pcVar7;
    } while (cVar2 != '\0');
    pcVar7 = *(char **)(iVar5 + 4);
    pcVar8 = pcVar7 + (*pcVar7 == '-');
    cVar2 = *pcVar8;
    do {
      if (9 < (int)cVar2 - 0x30U) goto LAB_00013246;
      pcVar8 = pcVar8 + 1;
      cVar2 = *pcVar8;
    } while (cVar2 != '\0');
    uVar9 = FUN_00015d10(pcVar1,pcVar7);
    goto LAB_00013262;
  }
  goto LAB_000131be;
LAB_00013246:
  piVar6 = __errno_location();
  *piVar6 = 0;
  uVar9 = strcoll((char *)puVar4[1],*(char **)(iVar5 + 4));
LAB_00013262:
  switch(uVar10) {
  default:
    uVar9 = uVar9 >> 0x1f;
    break;
  case 1:
    uVar9 = (uint)((int)uVar9 < 1);
    break;
  case 2:
    uVar9 = (uint)(uVar9 == 0);
    break;
  case 3:
    uVar9 = (uint)(uVar9 != 0);
    break;
  case 4:
    uVar9 = ~uVar9 >> 0x1f;
    break;
  case 5:
    uVar9 = (uint)(0 < (int)uVar9);
  }
LAB_000131be:
  FUN_00011900();
  FUN_00011900();
  puVar4 = (undefined4 *)FUN_00016540(0x10);
  *puVar4 = 0;
  __gmpz_init_set_ui(puVar4 + 1,uVar9);
  goto LAB_000131ed;
}


PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
CALL 0x000116e0
ADD EBX,0x1be97
SUB ESP,0x1c
MOV byte ptr [ESP + 0xb],AL
MOVZX EAX,AL
MOV dword ptr [ESP + 0x4],EAX
CALL 0x00013070
MOV ESI,EAX
LEA EAX,[EBX + 0xffff7ab9]
MOV dword ptr [ESP + 0xc],EAX
JMP 0x000131ed
LEA EAX,[EBX + 0xffff7abb]
CALL 0x00011820
MOV dword ptr [ESP],0x1
TEST AL,AL
JZ 0x000132e0
MOV EAX,dword ptr [ESP + 0x4]
XOR EBP,EBP
CALL 0x00013070
CMP byte ptr [ESP + 0xb],0x0
MOV EDI,EAX
JNZ 0x00013208
MOV EAX,ESI
CALL 0x00011900
MOV EAX,EDI
CALL 0x00011900
SUB ESP,0xc
PUSH 0x10
CALL 0x00016540
MOV ESI,EAX
MOV dword ptr [EAX],0x0
POP EAX
LEA EAX,[ESI + 0x4]
POP EDX
PUSH EBP
PUSH EAX
CALL 0x00011360
ADD ESP,0x10
MOV EAX,dword ptr [ESP + 0xc]
CALL 0x00011820
TEST AL,AL
JZ 0x00013190
MOV dword ptr [ESP],0x0
JMP 0x000131aa
MOV EAX,ESI
CALL 0x00011aa0
MOV EAX,EDI
CALL 0x00011aa0
MOV ECX,dword ptr [ESI + 0x4]
XOR EDX,EDX
CMP byte ptr [ECX],0x2d
SETZ DL
ADD EDX,ECX
MOVSX EAX,byte ptr [EDX]
JMP 0x0001323e
ADD EDX,0x1
MOVSX EAX,byte ptr [EDX]
TEST AL,AL
JZ 0x00013300
SUB EAX,0x30
CMP EAX,0x9
JBE 0x00013230
CALL 0x00011310
SUB ESP,0x8
MOV dword ptr [EAX],0x0
PUSH dword ptr [EDI + 0x4]
PUSH dword ptr [ESI + 0x4]
CALL 0x00011220
ADD ESP,0x10
MOV ECX,dword ptr [ESP]
CMP ECX,0x5
JA 0x000132d0
MOV EDX,dword ptr [EBX + ECX*0x4 + 0xffff7b20]
ADD EDX,EBX
JMP EDX
SHR EAX,0x1f
MOV EBP,EAX
JMP 0x000131be
LEA EAX,[EBX + 0xffff7ac2]
CALL 0x00011820
TEST AL,AL
JZ 0x00013330
MOV dword ptr [ESP],0x2
JMP 0x000131aa
MOV EAX,dword ptr [EDI + 0x4]
XOR EDX,EDX
CMP byte ptr [EAX],0x2d
MOV EBP,EAX
SETZ DL
ADD EDX,EAX
MOVSX EAX,byte ptr [EDX]
JMP 0x00013322
ADD EDX,0x1
MOVSX EAX,byte ptr [EDX]
TEST AL,AL
JZ 0x00013390
SUB EAX,0x30
CMP EAX,0x9
JBE 0x00013318
JMP 0x00013246
LEA EAX,[EBX + 0xffff7abe]
CALL 0x00011820
TEST AL,AL
JNZ 0x000132ef
LEA EAX,[EBX + 0xffff7ac1]
CALL 0x00011820
MOV dword ptr [ESP],0x3
TEST AL,AL
JNZ 0x000131aa
LEA EAX,[EBX + 0xffff7ac4]
CALL 0x00011820
MOV dword ptr [ESP],0x4
TEST AL,AL
JNZ 0x000131aa
LEA EAX,[EBX + 0xffff7ac7]
CALL 0x00011820
TEST AL,AL
JZ 0x000133a2
MOV dword ptr [ESP],0x5
JMP 0x000131aa
SUB ESP,0x8
PUSH EBP
PUSH ECX
CALL 0x00015d10
ADD ESP,0x10
JMP 0x00013262
ADD ESP,0x1c
MOV EAX,ESI
POP EBX
POP ESI
POP EDI
POP EBP
RET
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nundefined4 * __regparm3 FUN_00013160(byte param_1)\n\n{\n  char *pcVar1;\n  char cVar2;\n  uint uVar3;\n  undefined4 *puVar4;\n  int iVar5;\n  int *piVar6;\n  char *pcVar7;\n  char *pcVar8;\n  uint uVar9;\n  undefined4 uVar10;\n  \n  uVar3 = (uint)param_1;\n  puVar4 = (undefined4 *)FUN_00013070();\nLAB_000131ed:\n  cVar2 = FUN_00011820();\n  if (cVar2 == '\0') {\n    cVar2 = FUN_00011820();\n    uVar10 = 1;\n    if (cVar2 == '\0') {\n      cVar2 = FUN_00011820(1,uVar3);\n      if ((cVar2 == '\0') && (cVar2 = FUN_00011820(), cVar2 == '\0')) {\n        cVar2 = FUN_00011820();\n        uVar10 = 3;\n        if (cVar2 == '\0') {\n          cVar2 = FUN_00011820();\n          uVar10 = 4;\n          if (cVar2 == '\0') {\n            cVar2 = FUN_00011820();\n            if (cVar2 == '\0') {\n              return puVar4;\n            }\n            uVar10 = 5;\n          }\n        }\n      }\n      else {\n        uVar10 = 2;\n      }\n    }\n  }\n  else {\n    uVar10 = 0;\n  }\n  uVar9 = 0;\n  iVar5 = FUN_00013070();\n  if (param_1 != 0) {\n    FUN_00011aa0();\n    FUN_00011aa0();\n    pcVar1 = (char *)puVar4[1];\n    pcVar7 = pcVar1 + (*pcVar1 == '-');\n    cVar2 = *pcVar7;\n    do {\n      if (9 < (int)cVar2 - 0x30U) goto LAB_00013246;\n      pcVar7 = pcVar7 + 1;\n      cVar2 = *pcVar7;\n    } while (cVar2 != '\0');\n    pcVar7 = *(char **)(iVar5 + 4);\n    pcVar8 = pcVar7 + (*pcVar7 == '-');\n    cVar2 = *pcVar8;\n    do {\n      if (9 < (int)cVar2 - 0x30U) goto LAB_00013246;\n      pcVar8 = pcVar8 + 1;\n      cVar2 = *pcVar8;\n    } while (cVar2 != '\0');\n    uVar9 = FUN_00015d10(pcVar1,pcVar7);\n    goto LAB_00013262;\n  }\n  goto LAB_000131be;\nLAB_00013246:\n  piVar6 = __errno_location();\n  *piVar6 = 0;\n  uVar9 = strcoll((char *)puVar4[1],*(char **)(iVar5 + 4));\nLAB_00013262:\n  switch(uVar10) {\n  default:\n    uVar9 = uVar9 >> 0x1f;\n    break;\n  case 1:\n    uVar9 = (uint)((int)uVar9 < 1);\n    break;\n  case 2:\n    uVar9 = (uint)(uVar9 == 0);\n    break;\n  case 3:\n    uVar9 = (uint)(uVar9 != 0);\n    break;\n  case 4:\n    uVar9 = ~uVar9 >> 0x1f;\n    break;\n  case 5:\n    uVar9 = (uint)(0 < (int)uVar9);\n  }\nLAB_000131be:\n  FUN_00011900();\n  FUN_00011900();\n  puVar4 = (undefined4 *)FUN_00016540(0x10);\n  *puVar4 = 0;\n  __gmpz_init_set_ui(puVar4 + 1,uVar9);\n  goto LAB_000131ed;\n}\n\n" comment (ERROR "undefined4 * __regparm3 FUN_00013160(byte param_1)" (binary_expression "undefined4 * __regparm3 FUN_00013160(byte param_1)" identifier * (ERROR "__regparm3" identifier) (call_expression "FUN_00013160(byte param_1)" identifier (argument_list "(byte param_1)" ( (ERROR "byte" identifier) identifier ))))) (compound_statement "{\n  char *pcVar1;\n  char cVar2;\n  uint uVar3;\n  undefined4 *puVar4;\n  int iVar5;\n  int *piVar6;\n  char *pcVar7;\n  char *pcVar8;\n  uint uVar9;\n  undefined4 uVar10;\n  \n  uVar3 = (uint)param_1;\n  puVar4 = (undefined4 *)FUN_00013070();\nLAB_000131ed:\n  cVar2 = FUN_00011820();\n  if (cVar2 == '\0') {\n    cVar2 = FUN_00011820();\n    uVar10 = 1;\n    if (cVar2 == '\0') {\n      cVar2 = FUN_00011820(1,uVar3);\n      if ((cVar2 == '\0') && (cVar2 = FUN_00011820(), cVar2 == '\0')) {\n        cVar2 = FUN_00011820();\n        uVar10 = 3;\n        if (cVar2 == '\0') {\n          cVar2 = FUN_00011820();\n          uVar10 = 4;\n          if (cVar2 == '\0') {\n            cVar2 = FUN_00011820();\n            if (cVar2 == '\0') {\n              return puVar4;\n            }\n            uVar10 = 5;\n          }\n        }\n      }\n      else {\n        uVar10 = 2;\n      }\n    }\n  }\n  else {\n    uVar10 = 0;\n  }\n  uVar9 = 0;\n  iVar5 = FUN_00013070();\n  if (param_1 != 0) {\n    FUN_00011aa0();\n    FUN_00011aa0();\n    pcVar1 = (char *)puVar4[1];\n    pcVar7 = pcVar1 + (*pcVar1 == '-');\n    cVar2 = *pcVar7;\n    do {\n      if (9 < (int)cVar2 - 0x30U) goto LAB_00013246;\n      pcVar7 = pcVar7 + 1;\n      cVar2 = *pcVar7;\n    } while (cVar2 != '\0');\n    pcVar7 = *(char **)(iVar5 + 4);\n    pcVar8 = pcVar7 + (*pcVar7 == '-');\n    cVar2 = *pcVar8;\n    do {\n      if (9 < (int)cVar2 - 0x30U) goto LAB_00013246;\n      pcVar8 = pcVar8 + 1;\n      cVar2 = *pcVar8;\n    } while (cVar2 != '\0');\n    uVar9 = FUN_00015d10(pcVar1,pcVar7);\n    goto LAB_00013262;\n  }\n  goto LAB_000131be;\nLAB_00013246:\n  piVar6 = __errno_location();\n  *piVar6 = 0;\n  uVar9 = strcoll((char *)puVar4[1],*(char **)(iVar5 + 4));\nLAB_00013262:\n  switch(uVar10) {\n  default:\n    uVar9 = uVar9 >> 0x1f;\n    break;\n  case 1:\n    uVar9 = (uint)((int)uVar9 < 1);\n    break;\n  case 2:\n    uVar9 = (uint)(uVar9 == 0);\n    break;\n  case 3:\n    uVar9 = (uint)(uVar9 != 0);\n    break;\n  case 4:\n    uVar9 = ~uVar9 >> 0x1f;\n    break;\n  case 5:\n    uVar9 = (uint)(0 < (int)uVar9);\n  }\nLAB_000131be:\n  FUN_00011900();\n  FUN_00011900();\n  puVar4 = (undefined4 *)FUN_00016540(0x10);\n  *puVar4 = 0;\n  __gmpz_init_set_ui(puVar4 + 1,uVar9);\n  goto LAB_000131ed;\n}" { (declaration "char *pcVar1;" primitive_type (pointer_declarator "*pcVar1" * identifier) ;) (declaration "char cVar2;" primitive_type identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "undefined4 *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "int *piVar6;" primitive_type (pointer_declarator "*piVar6" * identifier) ;) (declaration "char *pcVar7;" primitive_type (pointer_declarator "*pcVar7" * identifier) ;) (declaration "char *pcVar8;" primitive_type (pointer_declarator "*pcVar8" * identifier) ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "undefined4 uVar10;" type_identifier identifier ;) (expression_statement "uVar3 = (uint)param_1;" (assignment_expression "uVar3 = (uint)param_1" identifier = (cast_expression "(uint)param_1" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "puVar4 = (undefined4 *)FUN_00013070();" (assignment_expression "puVar4 = (undefined4 *)FUN_00013070()" identifier = (cast_expression "(undefined4 *)FUN_00013070()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00013070()" identifier (argument_list "()" ( ))))) ;) (labeled_statement "LAB_000131ed:\n  cVar2 = FUN_00011820();" statement_identifier : (expression_statement "cVar2 = FUN_00011820();" (assignment_expression "cVar2 = FUN_00011820()" identifier = (call_expression "FUN_00011820()" identifier (argument_list "()" ( )))) ;)) (if_statement "if (cVar2 == '\0') {\n    cVar2 = FUN_00011820();\n    uVar10 = 1;\n    if (cVar2 == '\0') {\n      cVar2 = FUN_00011820(1,uVar3);\n      if ((cVar2 == '\0') && (cVar2 = FUN_00011820(), cVar2 == '\0')) {\n        cVar2 = FUN_00011820();\n        uVar10 = 3;\n        if (cVar2 == '\0') {\n          cVar2 = FUN_00011820();\n          uVar10 = 4;\n          if (cVar2 == '\0') {\n            cVar2 = FUN_00011820();\n            if (cVar2 == '\0') {\n              return puVar4;\n            }\n            uVar10 = 5;\n          }\n        }\n      }\n      else {\n        uVar10 = 2;\n      }\n    }\n  }\n  else {\n    uVar10 = 0;\n  }" if (parenthesized_expression "(cVar2 == '\0')" ( (binary_expression "cVar2 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    cVar2 = FUN_00011820();\n    uVar10 = 1;\n    if (cVar2 == '\0') {\n      cVar2 = FUN_00011820(1,uVar3);\n      if ((cVar2 == '\0') && (cVar2 = FUN_00011820(), cVar2 == '\0')) {\n        cVar2 = FUN_00011820();\n        uVar10 = 3;\n        if (cVar2 == '\0') {\n          cVar2 = FUN_00011820();\n          uVar10 = 4;\n          if (cVar2 == '\0') {\n            cVar2 = FUN_00011820();\n            if (cVar2 == '\0') {\n              return puVar4;\n            }\n            uVar10 = 5;\n          }\n        }\n      }\n      else {\n        uVar10 = 2;\n      }\n    }\n  }" { (expression_statement "cVar2 = FUN_00011820();" (assignment_expression "cVar2 = FUN_00011820()" identifier = (call_expression "FUN_00011820()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar10 = 1;" (assignment_expression "uVar10 = 1" identifier = number_literal) ;) (if_statement "if (cVar2 == '\0') {\n      cVar2 = FUN_00011820(1,uVar3);\n      if ((cVar2 == '\0') && (cVar2 = FUN_00011820(), cVar2 == '\0')) {\n        cVar2 = FUN_00011820();\n        uVar10 = 3;\n        if (cVar2 == '\0') {\n          cVar2 = FUN_00011820();\n          uVar10 = 4;\n          if (cVar2 == '\0') {\n            cVar2 = FUN_00011820();\n            if (cVar2 == '\0') {\n              return puVar4;\n            }\n            uVar10 = 5;\n          }\n        }\n      }\n      else {\n        uVar10 = 2;\n      }\n    }" if (parenthesized_expression "(cVar2 == '\0')" ( (binary_expression "cVar2 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      cVar2 = FUN_00011820(1,uVar3);\n      if ((cVar2 == '\0') && (cVar2 = FUN_00011820(), cVar2 == '\0')) {\n        cVar2 = FUN_00011820();\n        uVar10 = 3;\n        if (cVar2 == '\0') {\n          cVar2 = FUN_00011820();\n          uVar10 = 4;\n          if (cVar2 == '\0') {\n            cVar2 = FUN_00011820();\n            if (cVar2 == '\0') {\n              return puVar4;\n            }\n            uVar10 = 5;\n          }\n        }\n      }\n      else {\n        uVar10 = 2;\n      }\n    }" { (expression_statement "cVar2 = FUN_00011820(1,uVar3);" (assignment_expression "cVar2 = FUN_00011820(1,uVar3)" identifier = (call_expression "FUN_00011820(1,uVar3)" identifier (argument_list "(1,uVar3)" ( number_literal , identifier )))) ;) (if_statement "if ((cVar2 == '\0') && (cVar2 = FUN_00011820(), cVar2 == '\0')) {\n        cVar2 = FUN_00011820();\n        uVar10 = 3;\n        if (cVar2 == '\0') {\n          cVar2 = FUN_00011820();\n          uVar10 = 4;\n          if (cVar2 == '\0') {\n            cVar2 = FUN_00011820();\n            if (cVar2 == '\0') {\n              return puVar4;\n            }\n            uVar10 = 5;\n          }\n        }\n      }\n      else {\n        uVar10 = 2;\n      }" if (parenthesized_expression "((cVar2 == '\0') && (cVar2 = FUN_00011820(), cVar2 == '\0'))" ( (binary_expression "(cVar2 == '\0') && (cVar2 = FUN_00011820(), cVar2 == '\0')" (parenthesized_expression "(cVar2 == '\0')" ( (binary_expression "cVar2 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(cVar2 = FUN_00011820(), cVar2 == '\0')" ( (comma_expression "cVar2 = FUN_00011820(), cVar2 == '\0'" (assignment_expression "cVar2 = FUN_00011820()" identifier = (call_expression "FUN_00011820()" identifier (argument_list "()" ( )))) , (binary_expression "cVar2 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence '))) ))) )) (compound_statement "{\n        cVar2 = FUN_00011820();\n        uVar10 = 3;\n        if (cVar2 == '\0') {\n          cVar2 = FUN_00011820();\n          uVar10 = 4;\n          if (cVar2 == '\0') {\n            cVar2 = FUN_00011820();\n            if (cVar2 == '\0') {\n              return puVar4;\n            }\n            uVar10 = 5;\n          }\n        }\n      }" { (expression_statement "cVar2 = FUN_00011820();" (assignment_expression "cVar2 = FUN_00011820()" identifier = (call_expression "FUN_00011820()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar10 = 3;" (assignment_expression "uVar10 = 3" identifier = number_literal) ;) (if_statement "if (cVar2 == '\0') {\n          cVar2 = FUN_00011820();\n          uVar10 = 4;\n          if (cVar2 == '\0') {\n            cVar2 = FUN_00011820();\n            if (cVar2 == '\0') {\n              return puVar4;\n            }\n            uVar10 = 5;\n          }\n        }" if (parenthesized_expression "(cVar2 == '\0')" ( (binary_expression "cVar2 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          cVar2 = FUN_00011820();\n          uVar10 = 4;\n          if (cVar2 == '\0') {\n            cVar2 = FUN_00011820();\n            if (cVar2 == '\0') {\n              return puVar4;\n            }\n            uVar10 = 5;\n          }\n        }" { (expression_statement "cVar2 = FUN_00011820();" (assignment_expression "cVar2 = FUN_00011820()" identifier = (call_expression "FUN_00011820()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar10 = 4;" (assignment_expression "uVar10 = 4" identifier = number_literal) ;) (if_statement "if (cVar2 == '\0') {\n            cVar2 = FUN_00011820();\n            if (cVar2 == '\0') {\n              return puVar4;\n            }\n            uVar10 = 5;\n          }" if (parenthesized_expression "(cVar2 == '\0')" ( (binary_expression "cVar2 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            cVar2 = FUN_00011820();\n            if (cVar2 == '\0') {\n              return puVar4;\n            }\n            uVar10 = 5;\n          }" { (expression_statement "cVar2 = FUN_00011820();" (assignment_expression "cVar2 = FUN_00011820()" identifier = (call_expression "FUN_00011820()" identifier (argument_list "()" ( )))) ;) (if_statement "if (cVar2 == '\0') {\n              return puVar4;\n            }" if (parenthesized_expression "(cVar2 == '\0')" ( (binary_expression "cVar2 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n              return puVar4;\n            }" { (return_statement "return puVar4;" return identifier ;) })) (expression_statement "uVar10 = 5;" (assignment_expression "uVar10 = 5" identifier = number_literal) ;) })) })) }) (else_clause "else {\n        uVar10 = 2;\n      }" else (compound_statement "{\n        uVar10 = 2;\n      }" { (expression_statement "uVar10 = 2;" (assignment_expression "uVar10 = 2" identifier = number_literal) ;) }))) })) }) (else_clause "else {\n    uVar10 = 0;\n  }" else (compound_statement "{\n    uVar10 = 0;\n  }" { (expression_statement "uVar10 = 0;" (assignment_expression "uVar10 = 0" identifier = number_literal) ;) }))) (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" identifier = number_literal) ;) (expression_statement "iVar5 = FUN_00013070();" (assignment_expression "iVar5 = FUN_00013070()" identifier = (call_expression "FUN_00013070()" identifier (argument_list "()" ( )))) ;) (if_statement "if (param_1 != 0) {\n    FUN_00011aa0();\n    FUN_00011aa0();\n    pcVar1 = (char *)puVar4[1];\n    pcVar7 = pcVar1 + (*pcVar1 == '-');\n    cVar2 = *pcVar7;\n    do {\n      if (9 < (int)cVar2 - 0x30U) goto LAB_00013246;\n      pcVar7 = pcVar7 + 1;\n      cVar2 = *pcVar7;\n    } while (cVar2 != '\0');\n    pcVar7 = *(char **)(iVar5 + 4);\n    pcVar8 = pcVar7 + (*pcVar7 == '-');\n    cVar2 = *pcVar8;\n    do {\n      if (9 < (int)cVar2 - 0x30U) goto LAB_00013246;\n      pcVar8 = pcVar8 + 1;\n      cVar2 = *pcVar8;\n    } while (cVar2 != '\0');\n    uVar9 = FUN_00015d10(pcVar1,pcVar7);\n    goto LAB_00013262;\n  }" if (parenthesized_expression "(param_1 != 0)" ( (binary_expression "param_1 != 0" identifier != number_literal) )) (compound_statement "{\n    FUN_00011aa0();\n    FUN_00011aa0();\n    pcVar1 = (char *)puVar4[1];\n    pcVar7 = pcVar1 + (*pcVar1 == '-');\n    cVar2 = *pcVar7;\n    do {\n      if (9 < (int)cVar2 - 0x30U) goto LAB_00013246;\n      pcVar7 = pcVar7 + 1;\n      cVar2 = *pcVar7;\n    } while (cVar2 != '\0');\n    pcVar7 = *(char **)(iVar5 + 4);\n    pcVar8 = pcVar7 + (*pcVar7 == '-');\n    cVar2 = *pcVar8;\n    do {\n      if (9 < (int)cVar2 - 0x30U) goto LAB_00013246;\n      pcVar8 = pcVar8 + 1;\n      cVar2 = *pcVar8;\n    } while (cVar2 != '\0');\n    uVar9 = FUN_00015d10(pcVar1,pcVar7);\n    goto LAB_00013262;\n  }" { (expression_statement "FUN_00011aa0();" (call_expression "FUN_00011aa0()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00011aa0();" (call_expression "FUN_00011aa0()" identifier (argument_list "()" ( ))) ;) (expression_statement "pcVar1 = (char *)puVar4[1];" (assignment_expression "pcVar1 = (char *)puVar4[1]" identifier = (cast_expression "(char *)puVar4[1]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar4[1]" identifier [ number_literal ]))) ;) (expression_statement "pcVar7 = pcVar1 + (*pcVar1 == '-');" (assignment_expression "pcVar7 = pcVar1 + (*pcVar1 == '-')" identifier = (binary_expression "pcVar1 + (*pcVar1 == '-')" identifier + (parenthesized_expression "(*pcVar1 == '-')" ( (binary_expression "*pcVar1 == '-'" (pointer_expression "*pcVar1" * identifier) == (char_literal "'-'" ' character ')) )))) ;) (expression_statement "cVar2 = *pcVar7;" (assignment_expression "cVar2 = *pcVar7" identifier = (pointer_expression "*pcVar7" * identifier)) ;) (do_statement "do {\n      if (9 < (int)cVar2 - 0x30U) goto LAB_00013246;\n      pcVar7 = pcVar7 + 1;\n      cVar2 = *pcVar7;\n    } while (cVar2 != '\0');" do (compound_statement "{\n      if (9 < (int)cVar2 - 0x30U) goto LAB_00013246;\n      pcVar7 = pcVar7 + 1;\n      cVar2 = *pcVar7;\n    }" { (if_statement "if (9 < (int)cVar2 - 0x30U) goto LAB_00013246;" if (parenthesized_expression "(9 < (int)cVar2 - 0x30U)" ( (binary_expression "9 < (int)cVar2 - 0x30U" number_literal < (binary_expression "(int)cVar2 - 0x30U" (cast_expression "(int)cVar2" ( (type_descriptor "int" primitive_type) ) identifier) - number_literal)) )) (goto_statement "goto LAB_00013246;" goto statement_identifier ;)) (expression_statement "pcVar7 = pcVar7 + 1;" (assignment_expression "pcVar7 = pcVar7 + 1" identifier = (binary_expression "pcVar7 + 1" identifier + number_literal)) ;) (expression_statement "cVar2 = *pcVar7;" (assignment_expression "cVar2 = *pcVar7" identifier = (pointer_expression "*pcVar7" * identifier)) ;) }) while (parenthesized_expression "(cVar2 != '\0')" ( (binary_expression "cVar2 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (expression_statement "pcVar7 = *(char **)(iVar5 + 4);" (assignment_expression "pcVar7 = *(char **)(iVar5 + 4)" identifier = (pointer_expression "*(char **)(iVar5 + 4)" * (cast_expression "(char **)(iVar5 + 4)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar5 + 4)" ( (binary_expression "iVar5 + 4" identifier + number_literal) ))))) ;) (expression_statement "pcVar8 = pcVar7 + (*pcVar7 == '-');" (assignment_expression "pcVar8 = pcVar7 + (*pcVar7 == '-')" identifier = (binary_expression "pcVar7 + (*pcVar7 == '-')" identifier + (parenthesized_expression "(*pcVar7 == '-')" ( (binary_expression "*pcVar7 == '-'" (pointer_expression "*pcVar7" * identifier) == (char_literal "'-'" ' character ')) )))) ;) (expression_statement "cVar2 = *pcVar8;" (assignment_expression "cVar2 = *pcVar8" identifier = (pointer_expression "*pcVar8" * identifier)) ;) (do_statement "do {\n      if (9 < (int)cVar2 - 0x30U) goto LAB_00013246;\n      pcVar8 = pcVar8 + 1;\n      cVar2 = *pcVar8;\n    } while (cVar2 != '\0');" do (compound_statement "{\n      if (9 < (int)cVar2 - 0x30U) goto LAB_00013246;\n      pcVar8 = pcVar8 + 1;\n      cVar2 = *pcVar8;\n    }" { (if_statement "if (9 < (int)cVar2 - 0x30U) goto LAB_00013246;" if (parenthesized_expression "(9 < (int)cVar2 - 0x30U)" ( (binary_expression "9 < (int)cVar2 - 0x30U" number_literal < (binary_expression "(int)cVar2 - 0x30U" (cast_expression "(int)cVar2" ( (type_descriptor "int" primitive_type) ) identifier) - number_literal)) )) (goto_statement "goto LAB_00013246;" goto statement_identifier ;)) (expression_statement "pcVar8 = pcVar8 + 1;" (assignment_expression "pcVar8 = pcVar8 + 1" identifier = (binary_expression "pcVar8 + 1" identifier + number_literal)) ;) (expression_statement "cVar2 = *pcVar8;" (assignment_expression "cVar2 = *pcVar8" identifier = (pointer_expression "*pcVar8" * identifier)) ;) }) while (parenthesized_expression "(cVar2 != '\0')" ( (binary_expression "cVar2 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (expression_statement "uVar9 = FUN_00015d10(pcVar1,pcVar7);" (assignment_expression "uVar9 = FUN_00015d10(pcVar1,pcVar7)" identifier = (call_expression "FUN_00015d10(pcVar1,pcVar7)" identifier (argument_list "(pcVar1,pcVar7)" ( identifier , identifier )))) ;) (goto_statement "goto LAB_00013262;" goto statement_identifier ;) })) (goto_statement "goto LAB_000131be;" goto statement_identifier ;) (labeled_statement "LAB_00013246:\n  piVar6 = __errno_location();" statement_identifier : (expression_statement "piVar6 = __errno_location();" (assignment_expression "piVar6 = __errno_location()" identifier = (call_expression "__errno_location()" identifier (argument_list "()" ( )))) ;)) (expression_statement "*piVar6 = 0;" (assignment_expression "*piVar6 = 0" (pointer_expression "*piVar6" * identifier) = number_literal) ;) (expression_statement "uVar9 = strcoll((char *)puVar4[1],*(char **)(iVar5 + 4));" (assignment_expression "uVar9 = strcoll((char *)puVar4[1],*(char **)(iVar5 + 4))" identifier = (call_expression "strcoll((char *)puVar4[1],*(char **)(iVar5 + 4))" identifier (argument_list "((char *)puVar4[1],*(char **)(iVar5 + 4))" ( (cast_expression "(char *)puVar4[1]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar4[1]" identifier [ number_literal ])) , (pointer_expression "*(char **)(iVar5 + 4)" * (cast_expression "(char **)(iVar5 + 4)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar5 + 4)" ( (binary_expression "iVar5 + 4" identifier + number_literal) )))) )))) ;) (labeled_statement "LAB_00013262:\n  switch(uVar10) {\n  default:\n    uVar9 = uVar9 >> 0x1f;\n    break;\n  case 1:\n    uVar9 = (uint)((int)uVar9 < 1);\n    break;\n  case 2:\n    uVar9 = (uint)(uVar9 == 0);\n    break;\n  case 3:\n    uVar9 = (uint)(uVar9 != 0);\n    break;\n  case 4:\n    uVar9 = ~uVar9 >> 0x1f;\n    break;\n  case 5:\n    uVar9 = (uint)(0 < (int)uVar9);\n  }" statement_identifier : (switch_statement "switch(uVar10) {\n  default:\n    uVar9 = uVar9 >> 0x1f;\n    break;\n  case 1:\n    uVar9 = (uint)((int)uVar9 < 1);\n    break;\n  case 2:\n    uVar9 = (uint)(uVar9 == 0);\n    break;\n  case 3:\n    uVar9 = (uint)(uVar9 != 0);\n    break;\n  case 4:\n    uVar9 = ~uVar9 >> 0x1f;\n    break;\n  case 5:\n    uVar9 = (uint)(0 < (int)uVar9);\n  }" switch (parenthesized_expression "(uVar10)" ( identifier )) (compound_statement "{\n  default:\n    uVar9 = uVar9 >> 0x1f;\n    break;\n  case 1:\n    uVar9 = (uint)((int)uVar9 < 1);\n    break;\n  case 2:\n    uVar9 = (uint)(uVar9 == 0);\n    break;\n  case 3:\n    uVar9 = (uint)(uVar9 != 0);\n    break;\n  case 4:\n    uVar9 = ~uVar9 >> 0x1f;\n    break;\n  case 5:\n    uVar9 = (uint)(0 < (int)uVar9);\n  }" { (case_statement "default:\n    uVar9 = uVar9 >> 0x1f;\n    break;" default : (expression_statement "uVar9 = uVar9 >> 0x1f;" (assignment_expression "uVar9 = uVar9 >> 0x1f" identifier = (binary_expression "uVar9 >> 0x1f" identifier >> number_literal)) ;) (break_statement "break;" break ;)) (case_statement "case 1:\n    uVar9 = (uint)((int)uVar9 < 1);\n    break;" case number_literal : (expression_statement "uVar9 = (uint)((int)uVar9 < 1);" (assignment_expression "uVar9 = (uint)((int)uVar9 < 1)" identifier = (call_expression "(uint)((int)uVar9 < 1)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)uVar9 < 1)" ( (binary_expression "(int)uVar9 < 1" (cast_expression "(int)uVar9" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )))) ;) (break_statement "break;" break ;)) (case_statement "case 2:\n    uVar9 = (uint)(uVar9 == 0);\n    break;" case number_literal : (expression_statement "uVar9 = (uint)(uVar9 == 0);" (assignment_expression "uVar9 = (uint)(uVar9 == 0)" identifier = (call_expression "(uint)(uVar9 == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar9 == 0)" ( (binary_expression "uVar9 == 0" identifier == number_literal) )))) ;) (break_statement "break;" break ;)) (case_statement "case 3:\n    uVar9 = (uint)(uVar9 != 0);\n    break;" case number_literal : (expression_statement "uVar9 = (uint)(uVar9 != 0);" (assignment_expression "uVar9 = (uint)(uVar9 != 0)" identifier = (call_expression "(uint)(uVar9 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar9 != 0)" ( (binary_expression "uVar9 != 0" identifier != number_literal) )))) ;) (break_statement "break;" break ;)) (case_statement "case 4:\n    uVar9 = ~uVar9 >> 0x1f;\n    break;" case number_literal : (expression_statement "uVar9 = ~uVar9 >> 0x1f;" (assignment_expression "uVar9 = ~uVar9 >> 0x1f" identifier = (binary_expression "~uVar9 >> 0x1f" (unary_expression "~uVar9" ~ identifier) >> number_literal)) ;) (break_statement "break;" break ;)) (case_statement "case 5:\n    uVar9 = (uint)(0 < (int)uVar9);" case number_literal : (expression_statement "uVar9 = (uint)(0 < (int)uVar9);" (assignment_expression "uVar9 = (uint)(0 < (int)uVar9)" identifier = (call_expression "(uint)(0 < (int)uVar9)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(0 < (int)uVar9)" ( (binary_expression "0 < (int)uVar9" number_literal < (cast_expression "(int)uVar9" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;)) }))) (labeled_statement "LAB_000131be:\n  FUN_00011900();" statement_identifier : (expression_statement "FUN_00011900();" (call_expression "FUN_00011900()" identifier (argument_list "()" ( ))) ;)) (expression_statement "FUN_00011900();" (call_expression "FUN_00011900()" identifier (argument_list "()" ( ))) ;) (expression_statement "puVar4 = (undefined4 *)FUN_00016540(0x10);" (assignment_expression "puVar4 = (undefined4 *)FUN_00016540(0x10)" identifier = (cast_expression "(undefined4 *)FUN_00016540(0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00016540(0x10)" identifier (argument_list "(0x10)" ( number_literal ))))) ;) (expression_statement "*puVar4 = 0;" (assignment_expression "*puVar4 = 0" (pointer_expression "*puVar4" * identifier) = number_literal) ;) (expression_statement "__gmpz_init_set_ui(puVar4 + 1,uVar9);" (call_expression "__gmpz_init_set_ui(puVar4 + 1,uVar9)" identifier (argument_list "(puVar4 + 1,uVar9)" ( (binary_expression "puVar4 + 1" identifier + number_literal) , identifier ))) ;) (goto_statement "goto LAB_000131ed;" goto statement_identifier ;) }))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nVALUE * __regparm3 eval2(_Bool evaluate)\n\n{\n  char cVar1;\n  char *a;\n  _Bool _Var2;\n  VALUE *v;\n  VALUE *v_00;\n  int *piVar3;\n  char *pcVar4;\n  char *pcVar5;\n  uint uVar6;\n  undefined4 local_2c;\n  \n  v = eval3(evaluate);\nLAB_000131ed:\n  _Var2 = nextarg("<");\n  if (_Var2) {\n    local_2c = 0;\n  }\n  else {\n    _Var2 = nextarg("<=");\n    local_2c = 1;\n    if (!_Var2) {\n      _Var2 = nextarg("=");\n      if ((_Var2) || (_Var2 = nextarg("=="), _Var2)) {\n        local_2c = 2;\n      }\n      else {\n        _Var2 = nextarg("!=");\n        local_2c = 3;\n        if (!_Var2) {\n          _Var2 = nextarg(">=");\n          local_2c = 4;\n          if (!_Var2) {\n            _Var2 = nextarg(">");\n            if (!_Var2) {\n              return v;\n            }\n            local_2c = 5;\n          }\n        }\n      }\n    }\n  }\n  uVar6 = 0;\n  v_00 = eval3(evaluate);\n  if (evaluate) {\n    tostring(v);\n    tostring(v_00);\n    a = (v->u).s;\n    pcVar4 = a + (*a == '-');\n    cVar1 = *pcVar4;\n    do {\n      if (9 < (int)cVar1 - 0x30U) goto LAB_00013246;\n      pcVar4 = pcVar4 + 1;\n      cVar1 = *pcVar4;\n    } while (cVar1 != '\0');\n    pcVar4 = (v_00->u).s;\n    pcVar5 = pcVar4 + (*pcVar4 == '-');\n    cVar1 = *pcVar5;\n    do {\n      if (9 < (int)cVar1 - 0x30U) goto LAB_00013246;\n      pcVar5 = pcVar5 + 1;\n      cVar1 = *pcVar5;\n    } while (cVar1 != '\0');\n    uVar6 = strintcmp(a,pcVar4);\n    goto LAB_00013262;\n  }\n  goto LAB_000131be;\nLAB_00013246:\n  piVar3 = __errno_location();\n  *piVar3 = 0;\n  uVar6 = strcoll((v->u).s,(v_00->u).s);\nLAB_00013262:\n  switch(local_2c) {\n  default:\n    uVar6 = uVar6 >> 0x1f;\n    break;\n  case 1:\n    uVar6 = (uint)((int)uVar6 < 1);\n    break;\n  case 2:\n    uVar6 = (uint)(uVar6 == 0);\n    break;\n  case 3:\n    uVar6 = (uint)(uVar6 != 0);\n    break;\n  case 4:\n    uVar6 = ~uVar6 >> 0x1f;\n    break;\n  case 5:\n    uVar6 = (uint)(0 < (int)uVar6);\n  }\nLAB_000131be:\n  freev(v);\n  freev(v_00);\n  v = (VALUE *)xmalloc(0x10);\n  v->type = integer;\n  __gmpz_init_set_ui(&v->u,uVar6);\n  goto LAB_000131ed;\n}\n\n" comment (ERROR "VALUE * __regparm3 eval2(_Bool evaluate)" (binary_expression "VALUE * __regparm3 eval2(_Bool evaluate)" identifier * (ERROR "__regparm3" identifier) (call_expression "eval2(_Bool evaluate)" identifier (argument_list "(_Bool evaluate)" ( (ERROR "_Bool" identifier) identifier ))))) (compound_statement "{\n  char cVar1;\n  char *a;\n  _Bool _Var2;\n  VALUE *v;\n  VALUE *v_00;\n  int *piVar3;\n  char *pcVar4;\n  char *pcVar5;\n  uint uVar6;\n  undefined4 local_2c;\n  \n  v = eval3(evaluate);\nLAB_000131ed:\n  _Var2 = nextarg("<");\n  if (_Var2) {\n    local_2c = 0;\n  }\n  else {\n    _Var2 = nextarg("<=");\n    local_2c = 1;\n    if (!_Var2) {\n      _Var2 = nextarg("=");\n      if ((_Var2) || (_Var2 = nextarg("=="), _Var2)) {\n        local_2c = 2;\n      }\n      else {\n        _Var2 = nextarg("!=");\n        local_2c = 3;\n        if (!_Var2) {\n          _Var2 = nextarg(">=");\n          local_2c = 4;\n          if (!_Var2) {\n            _Var2 = nextarg(">");\n            if (!_Var2) {\n              return v;\n            }\n            local_2c = 5;\n          }\n        }\n      }\n    }\n  }\n  uVar6 = 0;\n  v_00 = eval3(evaluate);\n  if (evaluate) {\n    tostring(v);\n    tostring(v_00);\n    a = (v->u).s;\n    pcVar4 = a + (*a == '-');\n    cVar1 = *pcVar4;\n    do {\n      if (9 < (int)cVar1 - 0x30U) goto LAB_00013246;\n      pcVar4 = pcVar4 + 1;\n      cVar1 = *pcVar4;\n    } while (cVar1 != '\0');\n    pcVar4 = (v_00->u).s;\n    pcVar5 = pcVar4 + (*pcVar4 == '-');\n    cVar1 = *pcVar5;\n    do {\n      if (9 < (int)cVar1 - 0x30U) goto LAB_00013246;\n      pcVar5 = pcVar5 + 1;\n      cVar1 = *pcVar5;\n    } while (cVar1 != '\0');\n    uVar6 = strintcmp(a,pcVar4);\n    goto LAB_00013262;\n  }\n  goto LAB_000131be;\nLAB_00013246:\n  piVar3 = __errno_location();\n  *piVar3 = 0;\n  uVar6 = strcoll((v->u).s,(v_00->u).s);\nLAB_00013262:\n  switch(local_2c) {\n  default:\n    uVar6 = uVar6 >> 0x1f;\n    break;\n  case 1:\n    uVar6 = (uint)((int)uVar6 < 1);\n    break;\n  case 2:\n    uVar6 = (uint)(uVar6 == 0);\n    break;\n  case 3:\n    uVar6 = (uint)(uVar6 != 0);\n    break;\n  case 4:\n    uVar6 = ~uVar6 >> 0x1f;\n    break;\n  case 5:\n    uVar6 = (uint)(0 < (int)uVar6);\n  }\nLAB_000131be:\n  freev(v);\n  freev(v_00);\n  v = (VALUE *)xmalloc(0x10);\n  v->type = integer;\n  __gmpz_init_set_ui(&v->u,uVar6);\n  goto LAB_000131ed;\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "char *a;" primitive_type (pointer_declarator "*a" * identifier) ;) (declaration "_Bool _Var2;" type_identifier identifier ;) (declaration "VALUE *v;" type_identifier (pointer_declarator "*v" * identifier) ;) (declaration "VALUE *v_00;" type_identifier (pointer_declarator "*v_00" * identifier) ;) (declaration "int *piVar3;" primitive_type (pointer_declarator "*piVar3" * identifier) ;) (declaration "char *pcVar4;" primitive_type (pointer_declarator "*pcVar4" * identifier) ;) (declaration "char *pcVar5;" primitive_type (pointer_declarator "*pcVar5" * identifier) ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "undefined4 local_2c;" type_identifier identifier ;) (expression_statement "v = eval3(evaluate);" (assignment_expression "v = eval3(evaluate)" identifier = (call_expression "eval3(evaluate)" identifier (argument_list "(evaluate)" ( identifier )))) ;) (labeled_statement "LAB_000131ed:\n  _Var2 = nextarg("<");" statement_identifier : (expression_statement "_Var2 = nextarg("<");" (assignment_expression "_Var2 = nextarg("<")" identifier = (call_expression "nextarg("<")" identifier (argument_list "("<")" ( (string_literal ""<"" " string_content ") )))) ;)) (if_statement "if (_Var2) {\n    local_2c = 0;\n  }\n  else {\n    _Var2 = nextarg("<=");\n    local_2c = 1;\n    if (!_Var2) {\n      _Var2 = nextarg("=");\n      if ((_Var2) || (_Var2 = nextarg("=="), _Var2)) {\n        local_2c = 2;\n      }\n      else {\n        _Var2 = nextarg("!=");\n        local_2c = 3;\n        if (!_Var2) {\n          _Var2 = nextarg(">=");\n          local_2c = 4;\n          if (!_Var2) {\n            _Var2 = nextarg(">");\n            if (!_Var2) {\n              return v;\n            }\n            local_2c = 5;\n          }\n        }\n      }\n    }\n  }" if (parenthesized_expression "(_Var2)" ( identifier )) (compound_statement "{\n    local_2c = 0;\n  }" { (expression_statement "local_2c = 0;" (assignment_expression "local_2c = 0" identifier = number_literal) ;) }) (else_clause "else {\n    _Var2 = nextarg("<=");\n    local_2c = 1;\n    if (!_Var2) {\n      _Var2 = nextarg("=");\n      if ((_Var2) || (_Var2 = nextarg("=="), _Var2)) {\n        local_2c = 2;\n      }\n      else {\n        _Var2 = nextarg("!=");\n        local_2c = 3;\n        if (!_Var2) {\n          _Var2 = nextarg(">=");\n          local_2c = 4;\n          if (!_Var2) {\n            _Var2 = nextarg(">");\n            if (!_Var2) {\n              return v;\n            }\n            local_2c = 5;\n          }\n        }\n      }\n    }\n  }" else (compound_statement "{\n    _Var2 = nextarg("<=");\n    local_2c = 1;\n    if (!_Var2) {\n      _Var2 = nextarg("=");\n      if ((_Var2) || (_Var2 = nextarg("=="), _Var2)) {\n        local_2c = 2;\n      }\n      else {\n        _Var2 = nextarg("!=");\n        local_2c = 3;\n        if (!_Var2) {\n          _Var2 = nextarg(">=");\n          local_2c = 4;\n          if (!_Var2) {\n            _Var2 = nextarg(">");\n            if (!_Var2) {\n              return v;\n            }\n            local_2c = 5;\n          }\n        }\n      }\n    }\n  }" { (expression_statement "_Var2 = nextarg("<=");" (assignment_expression "_Var2 = nextarg("<=")" identifier = (call_expression "nextarg("<=")" identifier (argument_list "("<=")" ( (string_literal ""<="" " string_content ") )))) ;) (expression_statement "local_2c = 1;" (assignment_expression "local_2c = 1" identifier = number_literal) ;) (if_statement "if (!_Var2) {\n      _Var2 = nextarg("=");\n      if ((_Var2) || (_Var2 = nextarg("=="), _Var2)) {\n        local_2c = 2;\n      }\n      else {\n        _Var2 = nextarg("!=");\n        local_2c = 3;\n        if (!_Var2) {\n          _Var2 = nextarg(">=");\n          local_2c = 4;\n          if (!_Var2) {\n            _Var2 = nextarg(">");\n            if (!_Var2) {\n              return v;\n            }\n            local_2c = 5;\n          }\n        }\n      }\n    }" if (parenthesized_expression "(!_Var2)" ( (unary_expression "!_Var2" ! identifier) )) (compound_statement "{\n      _Var2 = nextarg("=");\n      if ((_Var2) || (_Var2 = nextarg("=="), _Var2)) {\n        local_2c = 2;\n      }\n      else {\n        _Var2 = nextarg("!=");\n        local_2c = 3;\n        if (!_Var2) {\n          _Var2 = nextarg(">=");\n          local_2c = 4;\n          if (!_Var2) {\n            _Var2 = nextarg(">");\n            if (!_Var2) {\n              return v;\n            }\n            local_2c = 5;\n          }\n        }\n      }\n    }" { (expression_statement "_Var2 = nextarg("=");" (assignment_expression "_Var2 = nextarg("=")" identifier = (call_expression "nextarg("=")" identifier (argument_list "("=")" ( (string_literal ""="" " string_content ") )))) ;) (if_statement "if ((_Var2) || (_Var2 = nextarg("=="), _Var2)) {\n        local_2c = 2;\n      }\n      else {\n        _Var2 = nextarg("!=");\n        local_2c = 3;\n        if (!_Var2) {\n          _Var2 = nextarg(">=");\n          local_2c = 4;\n          if (!_Var2) {\n            _Var2 = nextarg(">");\n            if (!_Var2) {\n              return v;\n            }\n            local_2c = 5;\n          }\n        }\n      }" if (parenthesized_expression "((_Var2) || (_Var2 = nextarg("=="), _Var2))" ( (binary_expression "(_Var2) || (_Var2 = nextarg("=="), _Var2)" (parenthesized_expression "(_Var2)" ( identifier )) || (parenthesized_expression "(_Var2 = nextarg("=="), _Var2)" ( (comma_expression "_Var2 = nextarg("=="), _Var2" (assignment_expression "_Var2 = nextarg("==")" identifier = (call_expression "nextarg("==")" identifier (argument_list "("==")" ( (string_literal ""=="" " string_content ") )))) , identifier) ))) )) (compound_statement "{\n        local_2c = 2;\n      }" { (expression_statement "local_2c = 2;" (assignment_expression "local_2c = 2" identifier = number_literal) ;) }) (else_clause "else {\n        _Var2 = nextarg("!=");\n        local_2c = 3;\n        if (!_Var2) {\n          _Var2 = nextarg(">=");\n          local_2c = 4;\n          if (!_Var2) {\n            _Var2 = nextarg(">");\n            if (!_Var2) {\n              return v;\n            }\n            local_2c = 5;\n          }\n        }\n      }" else (compound_statement "{\n        _Var2 = nextarg("!=");\n        local_2c = 3;\n        if (!_Var2) {\n          _Var2 = nextarg(">=");\n          local_2c = 4;\n          if (!_Var2) {\n            _Var2 = nextarg(">");\n            if (!_Var2) {\n              return v;\n            }\n            local_2c = 5;\n          }\n        }\n      }" { (expression_statement "_Var2 = nextarg("!=");" (assignment_expression "_Var2 = nextarg("!=")" identifier = (call_expression "nextarg("!=")" identifier (argument_list "("!=")" ( (string_literal ""!="" " string_content ") )))) ;) (expression_statement "local_2c = 3;" (assignment_expression "local_2c = 3" identifier = number_literal) ;) (if_statement "if (!_Var2) {\n          _Var2 = nextarg(">=");\n          local_2c = 4;\n          if (!_Var2) {\n            _Var2 = nextarg(">");\n            if (!_Var2) {\n              return v;\n            }\n            local_2c = 5;\n          }\n        }" if (parenthesized_expression "(!_Var2)" ( (unary_expression "!_Var2" ! identifier) )) (compound_statement "{\n          _Var2 = nextarg(">=");\n          local_2c = 4;\n          if (!_Var2) {\n            _Var2 = nextarg(">");\n            if (!_Var2) {\n              return v;\n            }\n            local_2c = 5;\n          }\n        }" { (expression_statement "_Var2 = nextarg(">=");" (assignment_expression "_Var2 = nextarg(">=")" identifier = (call_expression "nextarg(">=")" identifier (argument_list "(">=")" ( (string_literal "">="" " string_content ") )))) ;) (expression_statement "local_2c = 4;" (assignment_expression "local_2c = 4" identifier = number_literal) ;) (if_statement "if (!_Var2) {\n            _Var2 = nextarg(">");\n            if (!_Var2) {\n              return v;\n            }\n            local_2c = 5;\n          }" if (parenthesized_expression "(!_Var2)" ( (unary_expression "!_Var2" ! identifier) )) (compound_statement "{\n            _Var2 = nextarg(">");\n            if (!_Var2) {\n              return v;\n            }\n            local_2c = 5;\n          }" { (expression_statement "_Var2 = nextarg(">");" (assignment_expression "_Var2 = nextarg(">")" identifier = (call_expression "nextarg(">")" identifier (argument_list "(">")" ( (string_literal "">"" " string_content ") )))) ;) (if_statement "if (!_Var2) {\n              return v;\n            }" if (parenthesized_expression "(!_Var2)" ( (unary_expression "!_Var2" ! identifier) )) (compound_statement "{\n              return v;\n            }" { (return_statement "return v;" return identifier ;) })) (expression_statement "local_2c = 5;" (assignment_expression "local_2c = 5" identifier = number_literal) ;) })) })) }))) })) }))) (expression_statement "uVar6 = 0;" (assignment_expression "uVar6 = 0" identifier = number_literal) ;) (expression_statement "v_00 = eval3(evaluate);" (assignment_expression "v_00 = eval3(evaluate)" identifier = (call_expression "eval3(evaluate)" identifier (argument_list "(evaluate)" ( identifier )))) ;) (if_statement "if (evaluate) {\n    tostring(v);\n    tostring(v_00);\n    a = (v->u).s;\n    pcVar4 = a + (*a == '-');\n    cVar1 = *pcVar4;\n    do {\n      if (9 < (int)cVar1 - 0x30U) goto LAB_00013246;\n      pcVar4 = pcVar4 + 1;\n      cVar1 = *pcVar4;\n    } while (cVar1 != '\0');\n    pcVar4 = (v_00->u).s;\n    pcVar5 = pcVar4 + (*pcVar4 == '-');\n    cVar1 = *pcVar5;\n    do {\n      if (9 < (int)cVar1 - 0x30U) goto LAB_00013246;\n      pcVar5 = pcVar5 + 1;\n      cVar1 = *pcVar5;\n    } while (cVar1 != '\0');\n    uVar6 = strintcmp(a,pcVar4);\n    goto LAB_00013262;\n  }" if (parenthesized_expression "(evaluate)" ( identifier )) (compound_statement "{\n    tostring(v);\n    tostring(v_00);\n    a = (v->u).s;\n    pcVar4 = a + (*a == '-');\n    cVar1 = *pcVar4;\n    do {\n      if (9 < (int)cVar1 - 0x30U) goto LAB_00013246;\n      pcVar4 = pcVar4 + 1;\n      cVar1 = *pcVar4;\n    } while (cVar1 != '\0');\n    pcVar4 = (v_00->u).s;\n    pcVar5 = pcVar4 + (*pcVar4 == '-');\n    cVar1 = *pcVar5;\n    do {\n      if (9 < (int)cVar1 - 0x30U) goto LAB_00013246;\n      pcVar5 = pcVar5 + 1;\n      cVar1 = *pcVar5;\n    } while (cVar1 != '\0');\n    uVar6 = strintcmp(a,pcVar4);\n    goto LAB_00013262;\n  }" { (expression_statement "tostring(v);" (call_expression "tostring(v)" identifier (argument_list "(v)" ( identifier ))) ;) (expression_statement "tostring(v_00);" (call_expression "tostring(v_00)" identifier (argument_list "(v_00)" ( identifier ))) ;) (expression_statement "a = (v->u).s;" (assignment_expression "a = (v->u).s" identifier = (field_expression "(v->u).s" (parenthesized_expression "(v->u)" ( (field_expression "v->u" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "pcVar4 = a + (*a == '-');" (assignment_expression "pcVar4 = a + (*a == '-')" identifier = (binary_expression "a + (*a == '-')" identifier + (parenthesized_expression "(*a == '-')" ( (binary_expression "*a == '-'" (pointer_expression "*a" * identifier) == (char_literal "'-'" ' character ')) )))) ;) (expression_statement "cVar1 = *pcVar4;" (assignment_expression "cVar1 = *pcVar4" identifier = (pointer_expression "*pcVar4" * identifier)) ;) (do_statement "do {\n      if (9 < (int)cVar1 - 0x30U) goto LAB_00013246;\n      pcVar4 = pcVar4 + 1;\n      cVar1 = *pcVar4;\n    } while (cVar1 != '\0');" do (compound_statement "{\n      if (9 < (int)cVar1 - 0x30U) goto LAB_00013246;\n      pcVar4 = pcVar4 + 1;\n      cVar1 = *pcVar4;\n    }" { (if_statement "if (9 < (int)cVar1 - 0x30U) goto LAB_00013246;" if (parenthesized_expression "(9 < (int)cVar1 - 0x30U)" ( (binary_expression "9 < (int)cVar1 - 0x30U" number_literal < (binary_expression "(int)cVar1 - 0x30U" (cast_expression "(int)cVar1" ( (type_descriptor "int" primitive_type) ) identifier) - number_literal)) )) (goto_statement "goto LAB_00013246;" goto statement_identifier ;)) (expression_statement "pcVar4 = pcVar4 + 1;" (assignment_expression "pcVar4 = pcVar4 + 1" identifier = (binary_expression "pcVar4 + 1" identifier + number_literal)) ;) (expression_statement "cVar1 = *pcVar4;" (assignment_expression "cVar1 = *pcVar4" identifier = (pointer_expression "*pcVar4" * identifier)) ;) }) while (parenthesized_expression "(cVar1 != '\0')" ( (binary_expression "cVar1 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (expression_statement "pcVar4 = (v_00->u).s;" (assignment_expression "pcVar4 = (v_00->u).s" identifier = (field_expression "(v_00->u).s" (parenthesized_expression "(v_00->u)" ( (field_expression "v_00->u" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "pcVar5 = pcVar4 + (*pcVar4 == '-');" (assignment_expression "pcVar5 = pcVar4 + (*pcVar4 == '-')" identifier = (binary_expression "pcVar4 + (*pcVar4 == '-')" identifier + (parenthesized_expression "(*pcVar4 == '-')" ( (binary_expression "*pcVar4 == '-'" (pointer_expression "*pcVar4" * identifier) == (char_literal "'-'" ' character ')) )))) ;) (expression_statement "cVar1 = *pcVar5;" (assignment_expression "cVar1 = *pcVar5" identifier = (pointer_expression "*pcVar5" * identifier)) ;) (do_statement "do {\n      if (9 < (int)cVar1 - 0x30U) goto LAB_00013246;\n      pcVar5 = pcVar5 + 1;\n      cVar1 = *pcVar5;\n    } while (cVar1 != '\0');" do (compound_statement "{\n      if (9 < (int)cVar1 - 0x30U) goto LAB_00013246;\n      pcVar5 = pcVar5 + 1;\n      cVar1 = *pcVar5;\n    }" { (if_statement "if (9 < (int)cVar1 - 0x30U) goto LAB_00013246;" if (parenthesized_expression "(9 < (int)cVar1 - 0x30U)" ( (binary_expression "9 < (int)cVar1 - 0x30U" number_literal < (binary_expression "(int)cVar1 - 0x30U" (cast_expression "(int)cVar1" ( (type_descriptor "int" primitive_type) ) identifier) - number_literal)) )) (goto_statement "goto LAB_00013246;" goto statement_identifier ;)) (expression_statement "pcVar5 = pcVar5 + 1;" (assignment_expression "pcVar5 = pcVar5 + 1" identifier = (binary_expression "pcVar5 + 1" identifier + number_literal)) ;) (expression_statement "cVar1 = *pcVar5;" (assignment_expression "cVar1 = *pcVar5" identifier = (pointer_expression "*pcVar5" * identifier)) ;) }) while (parenthesized_expression "(cVar1 != '\0')" ( (binary_expression "cVar1 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (expression_statement "uVar6 = strintcmp(a,pcVar4);" (assignment_expression "uVar6 = strintcmp(a,pcVar4)" identifier = (call_expression "strintcmp(a,pcVar4)" identifier (argument_list "(a,pcVar4)" ( identifier , identifier )))) ;) (goto_statement "goto LAB_00013262;" goto statement_identifier ;) })) (goto_statement "goto LAB_000131be;" goto statement_identifier ;) (labeled_statement "LAB_00013246:\n  piVar3 = __errno_location();" statement_identifier : (expression_statement "piVar3 = __errno_location();" (assignment_expression "piVar3 = __errno_location()" identifier = (call_expression "__errno_location()" identifier (argument_list "()" ( )))) ;)) (expression_statement "*piVar3 = 0;" (assignment_expression "*piVar3 = 0" (pointer_expression "*piVar3" * identifier) = number_literal) ;) (expression_statement "uVar6 = strcoll((v->u).s,(v_00->u).s);" (assignment_expression "uVar6 = strcoll((v->u).s,(v_00->u).s)" identifier = (call_expression "strcoll((v->u).s,(v_00->u).s)" identifier (argument_list "((v->u).s,(v_00->u).s)" ( (field_expression "(v->u).s" (parenthesized_expression "(v->u)" ( (field_expression "v->u" identifier -> field_identifier) )) . field_identifier) , (field_expression "(v_00->u).s" (parenthesized_expression "(v_00->u)" ( (field_expression "v_00->u" identifier -> field_identifier) )) . field_identifier) )))) ;) (labeled_statement "LAB_00013262:\n  switch(local_2c) {\n  default:\n    uVar6 = uVar6 >> 0x1f;\n    break;\n  case 1:\n    uVar6 = (uint)((int)uVar6 < 1);\n    break;\n  case 2:\n    uVar6 = (uint)(uVar6 == 0);\n    break;\n  case 3:\n    uVar6 = (uint)(uVar6 != 0);\n    break;\n  case 4:\n    uVar6 = ~uVar6 >> 0x1f;\n    break;\n  case 5:\n    uVar6 = (uint)(0 < (int)uVar6);\n  }" statement_identifier : (switch_statement "switch(local_2c) {\n  default:\n    uVar6 = uVar6 >> 0x1f;\n    break;\n  case 1:\n    uVar6 = (uint)((int)uVar6 < 1);\n    break;\n  case 2:\n    uVar6 = (uint)(uVar6 == 0);\n    break;\n  case 3:\n    uVar6 = (uint)(uVar6 != 0);\n    break;\n  case 4:\n    uVar6 = ~uVar6 >> 0x1f;\n    break;\n  case 5:\n    uVar6 = (uint)(0 < (int)uVar6);\n  }" switch (parenthesized_expression "(local_2c)" ( identifier )) (compound_statement "{\n  default:\n    uVar6 = uVar6 >> 0x1f;\n    break;\n  case 1:\n    uVar6 = (uint)((int)uVar6 < 1);\n    break;\n  case 2:\n    uVar6 = (uint)(uVar6 == 0);\n    break;\n  case 3:\n    uVar6 = (uint)(uVar6 != 0);\n    break;\n  case 4:\n    uVar6 = ~uVar6 >> 0x1f;\n    break;\n  case 5:\n    uVar6 = (uint)(0 < (int)uVar6);\n  }" { (case_statement "default:\n    uVar6 = uVar6 >> 0x1f;\n    break;" default : (expression_statement "uVar6 = uVar6 >> 0x1f;" (assignment_expression "uVar6 = uVar6 >> 0x1f" identifier = (binary_expression "uVar6 >> 0x1f" identifier >> number_literal)) ;) (break_statement "break;" break ;)) (case_statement "case 1:\n    uVar6 = (uint)((int)uVar6 < 1);\n    break;" case number_literal : (expression_statement "uVar6 = (uint)((int)uVar6 < 1);" (assignment_expression "uVar6 = (uint)((int)uVar6 < 1)" identifier = (call_expression "(uint)((int)uVar6 < 1)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)uVar6 < 1)" ( (binary_expression "(int)uVar6 < 1" (cast_expression "(int)uVar6" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )))) ;) (break_statement "break;" break ;)) (case_statement "case 2:\n    uVar6 = (uint)(uVar6 == 0);\n    break;" case number_literal : (expression_statement "uVar6 = (uint)(uVar6 == 0);" (assignment_expression "uVar6 = (uint)(uVar6 == 0)" identifier = (call_expression "(uint)(uVar6 == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar6 == 0)" ( (binary_expression "uVar6 == 0" identifier == number_literal) )))) ;) (break_statement "break;" break ;)) (case_statement "case 3:\n    uVar6 = (uint)(uVar6 != 0);\n    break;" case number_literal : (expression_statement "uVar6 = (uint)(uVar6 != 0);" (assignment_expression "uVar6 = (uint)(uVar6 != 0)" identifier = (call_expression "(uint)(uVar6 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar6 != 0)" ( (binary_expression "uVar6 != 0" identifier != number_literal) )))) ;) (break_statement "break;" break ;)) (case_statement "case 4:\n    uVar6 = ~uVar6 >> 0x1f;\n    break;" case number_literal : (expression_statement "uVar6 = ~uVar6 >> 0x1f;" (assignment_expression "uVar6 = ~uVar6 >> 0x1f" identifier = (binary_expression "~uVar6 >> 0x1f" (unary_expression "~uVar6" ~ identifier) >> number_literal)) ;) (break_statement "break;" break ;)) (case_statement "case 5:\n    uVar6 = (uint)(0 < (int)uVar6);" case number_literal : (expression_statement "uVar6 = (uint)(0 < (int)uVar6);" (assignment_expression "uVar6 = (uint)(0 < (int)uVar6)" identifier = (call_expression "(uint)(0 < (int)uVar6)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(0 < (int)uVar6)" ( (binary_expression "0 < (int)uVar6" number_literal < (cast_expression "(int)uVar6" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;)) }))) (labeled_statement "LAB_000131be:\n  freev(v);" statement_identifier : (expression_statement "freev(v);" (call_expression "freev(v)" identifier (argument_list "(v)" ( identifier ))) ;)) (expression_statement "freev(v_00);" (call_expression "freev(v_00)" identifier (argument_list "(v_00)" ( identifier ))) ;) (expression_statement "v = (VALUE *)xmalloc(0x10);" (assignment_expression "v = (VALUE *)xmalloc(0x10)" identifier = (cast_expression "(VALUE *)xmalloc(0x10)" ( (type_descriptor "VALUE *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(0x10)" identifier (argument_list "(0x10)" ( number_literal ))))) ;) (expression_statement "v->type = integer;" (assignment_expression "v->type = integer" (field_expression "v->type" identifier -> field_identifier) = identifier) ;) (expression_statement "__gmpz_init_set_ui(&v->u,uVar6);" (call_expression "__gmpz_init_set_ui(&v->u,uVar6)" identifier (argument_list "(&v->u,uVar6)" ( (pointer_expression "&v->u" & (field_expression "v->u" identifier -> field_identifier)) , identifier ))) ;) (goto_statement "goto LAB_000131ed;" goto statement_identifier ;) }))
(translation_unit "undefined4 * __regparm3 FUN_00013160(byte param_1)\n\n{\n  char *pcVar1;\n  char cVar2;\n  uint uVar3;\n  undefined4 *puVar4;\n  int iVar5;\n  int *piVar6;\n  char *pcVar7;\n  char *pcVar8;\n  uint uVar9;\n  undefined4 uVar10;\n  \n  uVar3 = (uint)param_1;\n  puVar4 = (undefined4 *)FUN_00013070();\nLAB_000131ed:\n  cVar2 = FUN_00011820();\n  if (cVar2 == '\0') {\n    cVar2 = FUN_00011820();\n    uVar10 = 1;\n    if (cVar2 == '\0') {\n      cVar2 = FUN_00011820(1,uVar3);\n      if ((cVar2 == '\0') && (cVar2 = FUN_00011820(), cVar2 == '\0')) {\n        cVar2 = FUN_00011820();\n        uVar10 = 3;\n        if (cVar2 == '\0') {\n          cVar2 = FUN_00011820();\n          uVar10 = 4;\n          if (cVar2 == '\0') {\n            cVar2 = FUN_00011820();\n            if (cVar2 == '\0') {\n              return puVar4;\n            }\n            uVar10 = 5;\n          }\n        }\n      }\n      else {\n        uVar10 = 2;\n      }\n    }\n  }\n  else {\n    uVar10 = 0;\n  }\n  uVar9 = 0;\n  iVar5 = FUN_00013070();\n  if (param_1 != 0) {\n    FUN_00011aa0();\n    FUN_00011aa0();\n    pcVar1 = (char *)puVar4[1];\n    pcVar7 = pcVar1 + (*pcVar1 == '-');\n    cVar2 = *pcVar7;\n    do {\n      if (9 < (int)cVar2 - 0x30U) goto LAB_00013246;\n      pcVar7 = pcVar7 + 1;\n      cVar2 = *pcVar7;\n    } while (cVar2 != '\0');\n    pcVar7 = *(char **)(iVar5 + 4);\n    pcVar8 = pcVar7 + (*pcVar7 == '-');\n    cVar2 = *pcVar8;\n    do {\n      if (9 < (int)cVar2 - 0x30U) goto LAB_00013246;\n      pcVar8 = pcVar8 + 1;\n      cVar2 = *pcVar8;\n    } while (cVar2 != '\0');\n    uVar9 = FUN_00015d10(pcVar1,pcVar7);\n    goto LAB_00013262;\n  }\n  goto LAB_000131be;\nLAB_00013246:\n  piVar6 = __errno_location();\n  *piVar6 = 0;\n  uVar9 = strcoll((char *)puVar4[1],*(char **)(iVar5 + 4));\nLAB_00013262:\n  switch(uVar10) {\n  default:\n    uVar9 = uVar9 >> 0x1f;\n    break;\n  case 1:\n    uVar9 = (uint)((int)uVar9 < 1);\n    break;\n  case 2:\n    uVar9 = (uint)(uVar9 == 0);\n    break;\n  case 3:\n    uVar9 = (uint)(uVar9 != 0);\n    break;\n  case 4:\n    uVar9 = ~uVar9 >> 0x1f;\n    break;\n  case 5:\n    uVar9 = (uint)(0 < (int)uVar9);\n  }\nLAB_000131be:\n  FUN_00011900();\n  FUN_00011900();\n  puVar4 = (undefined4 *)FUN_00016540(0x10);\n  *puVar4 = 0;\n  __gmpz_init_set_ui(puVar4 + 1,uVar9);\n  goto LAB_000131ed;\n}\n\n" (ERROR "undefined4 * __regparm3 FUN_00013160(byte param_1)" (binary_expression "undefined4 * __regparm3 FUN_00013160(byte param_1)" identifier * (ERROR "__regparm3" identifier) (call_expression "FUN_00013160(byte param_1)" identifier (argument_list "(byte param_1)" ( (ERROR "byte" identifier) identifier ))))) (compound_statement "{\n  char *pcVar1;\n  char cVar2;\n  uint uVar3;\n  undefined4 *puVar4;\n  int iVar5;\n  int *piVar6;\n  char *pcVar7;\n  char *pcVar8;\n  uint uVar9;\n  undefined4 uVar10;\n  \n  uVar3 = (uint)param_1;\n  puVar4 = (undefined4 *)FUN_00013070();\nLAB_000131ed:\n  cVar2 = FUN_00011820();\n  if (cVar2 == '\0') {\n    cVar2 = FUN_00011820();\n    uVar10 = 1;\n    if (cVar2 == '\0') {\n      cVar2 = FUN_00011820(1,uVar3);\n      if ((cVar2 == '\0') && (cVar2 = FUN_00011820(), cVar2 == '\0')) {\n        cVar2 = FUN_00011820();\n        uVar10 = 3;\n        if (cVar2 == '\0') {\n          cVar2 = FUN_00011820();\n          uVar10 = 4;\n          if (cVar2 == '\0') {\n            cVar2 = FUN_00011820();\n            if (cVar2 == '\0') {\n              return puVar4;\n            }\n            uVar10 = 5;\n          }\n        }\n      }\n      else {\n        uVar10 = 2;\n      }\n    }\n  }\n  else {\n    uVar10 = 0;\n  }\n  uVar9 = 0;\n  iVar5 = FUN_00013070();\n  if (param_1 != 0) {\n    FUN_00011aa0();\n    FUN_00011aa0();\n    pcVar1 = (char *)puVar4[1];\n    pcVar7 = pcVar1 + (*pcVar1 == '-');\n    cVar2 = *pcVar7;\n    do {\n      if (9 < (int)cVar2 - 0x30U) goto LAB_00013246;\n      pcVar7 = pcVar7 + 1;\n      cVar2 = *pcVar7;\n    } while (cVar2 != '\0');\n    pcVar7 = *(char **)(iVar5 + 4);\n    pcVar8 = pcVar7 + (*pcVar7 == '-');\n    cVar2 = *pcVar8;\n    do {\n      if (9 < (int)cVar2 - 0x30U) goto LAB_00013246;\n      pcVar8 = pcVar8 + 1;\n      cVar2 = *pcVar8;\n    } while (cVar2 != '\0');\n    uVar9 = FUN_00015d10(pcVar1,pcVar7);\n    goto LAB_00013262;\n  }\n  goto LAB_000131be;\nLAB_00013246:\n  piVar6 = __errno_location();\n  *piVar6 = 0;\n  uVar9 = strcoll((char *)puVar4[1],*(char **)(iVar5 + 4));\nLAB_00013262:\n  switch(uVar10) {\n  default:\n    uVar9 = uVar9 >> 0x1f;\n    break;\n  case 1:\n    uVar9 = (uint)((int)uVar9 < 1);\n    break;\n  case 2:\n    uVar9 = (uint)(uVar9 == 0);\n    break;\n  case 3:\n    uVar9 = (uint)(uVar9 != 0);\n    break;\n  case 4:\n    uVar9 = ~uVar9 >> 0x1f;\n    break;\n  case 5:\n    uVar9 = (uint)(0 < (int)uVar9);\n  }\nLAB_000131be:\n  FUN_00011900();\n  FUN_00011900();\n  puVar4 = (undefined4 *)FUN_00016540(0x10);\n  *puVar4 = 0;\n  __gmpz_init_set_ui(puVar4 + 1,uVar9);\n  goto LAB_000131ed;\n}" { (declaration "char *pcVar1;" primitive_type (pointer_declarator "*pcVar1" * identifier) ;) (declaration "char cVar2;" primitive_type identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "undefined4 *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "int *piVar6;" primitive_type (pointer_declarator "*piVar6" * identifier) ;) (declaration "char *pcVar7;" primitive_type (pointer_declarator "*pcVar7" * identifier) ;) (declaration "char *pcVar8;" primitive_type (pointer_declarator "*pcVar8" * identifier) ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "undefined4 uVar10;" type_identifier identifier ;) (expression_statement "uVar3 = (uint)param_1;" (assignment_expression "uVar3 = (uint)param_1" identifier = (cast_expression "(uint)param_1" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "puVar4 = (undefined4 *)FUN_00013070();" (assignment_expression "puVar4 = (undefined4 *)FUN_00013070()" identifier = (cast_expression "(undefined4 *)FUN_00013070()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00013070()" identifier (argument_list "()" ( ))))) ;) (labeled_statement "LAB_000131ed:\n  cVar2 = FUN_00011820();" statement_identifier : (expression_statement "cVar2 = FUN_00011820();" (assignment_expression "cVar2 = FUN_00011820()" identifier = (call_expression "FUN_00011820()" identifier (argument_list "()" ( )))) ;)) (if_statement "if (cVar2 == '\0') {\n    cVar2 = FUN_00011820();\n    uVar10 = 1;\n    if (cVar2 == '\0') {\n      cVar2 = FUN_00011820(1,uVar3);\n      if ((cVar2 == '\0') && (cVar2 = FUN_00011820(), cVar2 == '\0')) {\n        cVar2 = FUN_00011820();\n        uVar10 = 3;\n        if (cVar2 == '\0') {\n          cVar2 = FUN_00011820();\n          uVar10 = 4;\n          if (cVar2 == '\0') {\n            cVar2 = FUN_00011820();\n            if (cVar2 == '\0') {\n              return puVar4;\n            }\n            uVar10 = 5;\n          }\n        }\n      }\n      else {\n        uVar10 = 2;\n      }\n    }\n  }\n  else {\n    uVar10 = 0;\n  }" if (parenthesized_expression "(cVar2 == '\0')" ( (binary_expression "cVar2 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    cVar2 = FUN_00011820();\n    uVar10 = 1;\n    if (cVar2 == '\0') {\n      cVar2 = FUN_00011820(1,uVar3);\n      if ((cVar2 == '\0') && (cVar2 = FUN_00011820(), cVar2 == '\0')) {\n        cVar2 = FUN_00011820();\n        uVar10 = 3;\n        if (cVar2 == '\0') {\n          cVar2 = FUN_00011820();\n          uVar10 = 4;\n          if (cVar2 == '\0') {\n            cVar2 = FUN_00011820();\n            if (cVar2 == '\0') {\n              return puVar4;\n            }\n            uVar10 = 5;\n          }\n        }\n      }\n      else {\n        uVar10 = 2;\n      }\n    }\n  }" { (expression_statement "cVar2 = FUN_00011820();" (assignment_expression "cVar2 = FUN_00011820()" identifier = (call_expression "FUN_00011820()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar10 = 1;" (assignment_expression "uVar10 = 1" identifier = number_literal) ;) (if_statement "if (cVar2 == '\0') {\n      cVar2 = FUN_00011820(1,uVar3);\n      if ((cVar2 == '\0') && (cVar2 = FUN_00011820(), cVar2 == '\0')) {\n        cVar2 = FUN_00011820();\n        uVar10 = 3;\n        if (cVar2 == '\0') {\n          cVar2 = FUN_00011820();\n          uVar10 = 4;\n          if (cVar2 == '\0') {\n            cVar2 = FUN_00011820();\n            if (cVar2 == '\0') {\n              return puVar4;\n            }\n            uVar10 = 5;\n          }\n        }\n      }\n      else {\n        uVar10 = 2;\n      }\n    }" if (parenthesized_expression "(cVar2 == '\0')" ( (binary_expression "cVar2 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      cVar2 = FUN_00011820(1,uVar3);\n      if ((cVar2 == '\0') && (cVar2 = FUN_00011820(), cVar2 == '\0')) {\n        cVar2 = FUN_00011820();\n        uVar10 = 3;\n        if (cVar2 == '\0') {\n          cVar2 = FUN_00011820();\n          uVar10 = 4;\n          if (cVar2 == '\0') {\n            cVar2 = FUN_00011820();\n            if (cVar2 == '\0') {\n              return puVar4;\n            }\n            uVar10 = 5;\n          }\n        }\n      }\n      else {\n        uVar10 = 2;\n      }\n    }" { (expression_statement "cVar2 = FUN_00011820(1,uVar3);" (assignment_expression "cVar2 = FUN_00011820(1,uVar3)" identifier = (call_expression "FUN_00011820(1,uVar3)" identifier (argument_list "(1,uVar3)" ( number_literal , identifier )))) ;) (if_statement "if ((cVar2 == '\0') && (cVar2 = FUN_00011820(), cVar2 == '\0')) {\n        cVar2 = FUN_00011820();\n        uVar10 = 3;\n        if (cVar2 == '\0') {\n          cVar2 = FUN_00011820();\n          uVar10 = 4;\n          if (cVar2 == '\0') {\n            cVar2 = FUN_00011820();\n            if (cVar2 == '\0') {\n              return puVar4;\n            }\n            uVar10 = 5;\n          }\n        }\n      }\n      else {\n        uVar10 = 2;\n      }" if (parenthesized_expression "((cVar2 == '\0') && (cVar2 = FUN_00011820(), cVar2 == '\0'))" ( (binary_expression "(cVar2 == '\0') && (cVar2 = FUN_00011820(), cVar2 == '\0')" (parenthesized_expression "(cVar2 == '\0')" ( (binary_expression "cVar2 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(cVar2 = FUN_00011820(), cVar2 == '\0')" ( (comma_expression "cVar2 = FUN_00011820(), cVar2 == '\0'" (assignment_expression "cVar2 = FUN_00011820()" identifier = (call_expression "FUN_00011820()" identifier (argument_list "()" ( )))) , (binary_expression "cVar2 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence '))) ))) )) (compound_statement "{\n        cVar2 = FUN_00011820();\n        uVar10 = 3;\n        if (cVar2 == '\0') {\n          cVar2 = FUN_00011820();\n          uVar10 = 4;\n          if (cVar2 == '\0') {\n            cVar2 = FUN_00011820();\n            if (cVar2 == '\0') {\n              return puVar4;\n            }\n            uVar10 = 5;\n          }\n        }\n      }" { (expression_statement "cVar2 = FUN_00011820();" (assignment_expression "cVar2 = FUN_00011820()" identifier = (call_expression "FUN_00011820()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar10 = 3;" (assignment_expression "uVar10 = 3" identifier = number_literal) ;) (if_statement "if (cVar2 == '\0') {\n          cVar2 = FUN_00011820();\n          uVar10 = 4;\n          if (cVar2 == '\0') {\n            cVar2 = FUN_00011820();\n            if (cVar2 == '\0') {\n              return puVar4;\n            }\n            uVar10 = 5;\n          }\n        }" if (parenthesized_expression "(cVar2 == '\0')" ( (binary_expression "cVar2 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          cVar2 = FUN_00011820();\n          uVar10 = 4;\n          if (cVar2 == '\0') {\n            cVar2 = FUN_00011820();\n            if (cVar2 == '\0') {\n              return puVar4;\n            }\n            uVar10 = 5;\n          }\n        }" { (expression_statement "cVar2 = FUN_00011820();" (assignment_expression "cVar2 = FUN_00011820()" identifier = (call_expression "FUN_00011820()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar10 = 4;" (assignment_expression "uVar10 = 4" identifier = number_literal) ;) (if_statement "if (cVar2 == '\0') {\n            cVar2 = FUN_00011820();\n            if (cVar2 == '\0') {\n              return puVar4;\n            }\n            uVar10 = 5;\n          }" if (parenthesized_expression "(cVar2 == '\0')" ( (binary_expression "cVar2 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            cVar2 = FUN_00011820();\n            if (cVar2 == '\0') {\n              return puVar4;\n            }\n            uVar10 = 5;\n          }" { (expression_statement "cVar2 = FUN_00011820();" (assignment_expression "cVar2 = FUN_00011820()" identifier = (call_expression "FUN_00011820()" identifier (argument_list "()" ( )))) ;) (if_statement "if (cVar2 == '\0') {\n              return puVar4;\n            }" if (parenthesized_expression "(cVar2 == '\0')" ( (binary_expression "cVar2 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n              return puVar4;\n            }" { (return_statement "return puVar4;" return identifier ;) })) (expression_statement "uVar10 = 5;" (assignment_expression "uVar10 = 5" identifier = number_literal) ;) })) })) }) (else_clause "else {\n        uVar10 = 2;\n      }" else (compound_statement "{\n        uVar10 = 2;\n      }" { (expression_statement "uVar10 = 2;" (assignment_expression "uVar10 = 2" identifier = number_literal) ;) }))) })) }) (else_clause "else {\n    uVar10 = 0;\n  }" else (compound_statement "{\n    uVar10 = 0;\n  }" { (expression_statement "uVar10 = 0;" (assignment_expression "uVar10 = 0" identifier = number_literal) ;) }))) (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" identifier = number_literal) ;) (expression_statement "iVar5 = FUN_00013070();" (assignment_expression "iVar5 = FUN_00013070()" identifier = (call_expression "FUN_00013070()" identifier (argument_list "()" ( )))) ;) (if_statement "if (param_1 != 0) {\n    FUN_00011aa0();\n    FUN_00011aa0();\n    pcVar1 = (char *)puVar4[1];\n    pcVar7 = pcVar1 + (*pcVar1 == '-');\n    cVar2 = *pcVar7;\n    do {\n      if (9 < (int)cVar2 - 0x30U) goto LAB_00013246;\n      pcVar7 = pcVar7 + 1;\n      cVar2 = *pcVar7;\n    } while (cVar2 != '\0');\n    pcVar7 = *(char **)(iVar5 + 4);\n    pcVar8 = pcVar7 + (*pcVar7 == '-');\n    cVar2 = *pcVar8;\n    do {\n      if (9 < (int)cVar2 - 0x30U) goto LAB_00013246;\n      pcVar8 = pcVar8 + 1;\n      cVar2 = *pcVar8;\n    } while (cVar2 != '\0');\n    uVar9 = FUN_00015d10(pcVar1,pcVar7);\n    goto LAB_00013262;\n  }" if (parenthesized_expression "(param_1 != 0)" ( (binary_expression "param_1 != 0" identifier != number_literal) )) (compound_statement "{\n    FUN_00011aa0();\n    FUN_00011aa0();\n    pcVar1 = (char *)puVar4[1];\n    pcVar7 = pcVar1 + (*pcVar1 == '-');\n    cVar2 = *pcVar7;\n    do {\n      if (9 < (int)cVar2 - 0x30U) goto LAB_00013246;\n      pcVar7 = pcVar7 + 1;\n      cVar2 = *pcVar7;\n    } while (cVar2 != '\0');\n    pcVar7 = *(char **)(iVar5 + 4);\n    pcVar8 = pcVar7 + (*pcVar7 == '-');\n    cVar2 = *pcVar8;\n    do {\n      if (9 < (int)cVar2 - 0x30U) goto LAB_00013246;\n      pcVar8 = pcVar8 + 1;\n      cVar2 = *pcVar8;\n    } while (cVar2 != '\0');\n    uVar9 = FUN_00015d10(pcVar1,pcVar7);\n    goto LAB_00013262;\n  }" { (expression_statement "FUN_00011aa0();" (call_expression "FUN_00011aa0()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00011aa0();" (call_expression "FUN_00011aa0()" identifier (argument_list "()" ( ))) ;) (expression_statement "pcVar1 = (char *)puVar4[1];" (assignment_expression "pcVar1 = (char *)puVar4[1]" identifier = (cast_expression "(char *)puVar4[1]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar4[1]" identifier [ number_literal ]))) ;) (expression_statement "pcVar7 = pcVar1 + (*pcVar1 == '-');" (assignment_expression "pcVar7 = pcVar1 + (*pcVar1 == '-')" identifier = (binary_expression "pcVar1 + (*pcVar1 == '-')" identifier + (parenthesized_expression "(*pcVar1 == '-')" ( (binary_expression "*pcVar1 == '-'" (pointer_expression "*pcVar1" * identifier) == (char_literal "'-'" ' character ')) )))) ;) (expression_statement "cVar2 = *pcVar7;" (assignment_expression "cVar2 = *pcVar7" identifier = (pointer_expression "*pcVar7" * identifier)) ;) (do_statement "do {\n      if (9 < (int)cVar2 - 0x30U) goto LAB_00013246;\n      pcVar7 = pcVar7 + 1;\n      cVar2 = *pcVar7;\n    } while (cVar2 != '\0');" do (compound_statement "{\n      if (9 < (int)cVar2 - 0x30U) goto LAB_00013246;\n      pcVar7 = pcVar7 + 1;\n      cVar2 = *pcVar7;\n    }" { (if_statement "if (9 < (int)cVar2 - 0x30U) goto LAB_00013246;" if (parenthesized_expression "(9 < (int)cVar2 - 0x30U)" ( (binary_expression "9 < (int)cVar2 - 0x30U" number_literal < (binary_expression "(int)cVar2 - 0x30U" (cast_expression "(int)cVar2" ( (type_descriptor "int" primitive_type) ) identifier) - number_literal)) )) (goto_statement "goto LAB_00013246;" goto statement_identifier ;)) (expression_statement "pcVar7 = pcVar7 + 1;" (assignment_expression "pcVar7 = pcVar7 + 1" identifier = (binary_expression "pcVar7 + 1" identifier + number_literal)) ;) (expression_statement "cVar2 = *pcVar7;" (assignment_expression "cVar2 = *pcVar7" identifier = (pointer_expression "*pcVar7" * identifier)) ;) }) while (parenthesized_expression "(cVar2 != '\0')" ( (binary_expression "cVar2 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (expression_statement "pcVar7 = *(char **)(iVar5 + 4);" (assignment_expression "pcVar7 = *(char **)(iVar5 + 4)" identifier = (pointer_expression "*(char **)(iVar5 + 4)" * (cast_expression "(char **)(iVar5 + 4)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar5 + 4)" ( (binary_expression "iVar5 + 4" identifier + number_literal) ))))) ;) (expression_statement "pcVar8 = pcVar7 + (*pcVar7 == '-');" (assignment_expression "pcVar8 = pcVar7 + (*pcVar7 == '-')" identifier = (binary_expression "pcVar7 + (*pcVar7 == '-')" identifier + (parenthesized_expression "(*pcVar7 == '-')" ( (binary_expression "*pcVar7 == '-'" (pointer_expression "*pcVar7" * identifier) == (char_literal "'-'" ' character ')) )))) ;) (expression_statement "cVar2 = *pcVar8;" (assignment_expression "cVar2 = *pcVar8" identifier = (pointer_expression "*pcVar8" * identifier)) ;) (do_statement "do {\n      if (9 < (int)cVar2 - 0x30U) goto LAB_00013246;\n      pcVar8 = pcVar8 + 1;\n      cVar2 = *pcVar8;\n    } while (cVar2 != '\0');" do (compound_statement "{\n      if (9 < (int)cVar2 - 0x30U) goto LAB_00013246;\n      pcVar8 = pcVar8 + 1;\n      cVar2 = *pcVar8;\n    }" { (if_statement "if (9 < (int)cVar2 - 0x30U) goto LAB_00013246;" if (parenthesized_expression "(9 < (int)cVar2 - 0x30U)" ( (binary_expression "9 < (int)cVar2 - 0x30U" number_literal < (binary_expression "(int)cVar2 - 0x30U" (cast_expression "(int)cVar2" ( (type_descriptor "int" primitive_type) ) identifier) - number_literal)) )) (goto_statement "goto LAB_00013246;" goto statement_identifier ;)) (expression_statement "pcVar8 = pcVar8 + 1;" (assignment_expression "pcVar8 = pcVar8 + 1" identifier = (binary_expression "pcVar8 + 1" identifier + number_literal)) ;) (expression_statement "cVar2 = *pcVar8;" (assignment_expression "cVar2 = *pcVar8" identifier = (pointer_expression "*pcVar8" * identifier)) ;) }) while (parenthesized_expression "(cVar2 != '\0')" ( (binary_expression "cVar2 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (expression_statement "uVar9 = FUN_00015d10(pcVar1,pcVar7);" (assignment_expression "uVar9 = FUN_00015d10(pcVar1,pcVar7)" identifier = (call_expression "FUN_00015d10(pcVar1,pcVar7)" identifier (argument_list "(pcVar1,pcVar7)" ( identifier , identifier )))) ;) (goto_statement "goto LAB_00013262;" goto statement_identifier ;) })) (goto_statement "goto LAB_000131be;" goto statement_identifier ;) (labeled_statement "LAB_00013246:\n  piVar6 = __errno_location();" statement_identifier : (expression_statement "piVar6 = __errno_location();" (assignment_expression "piVar6 = __errno_location()" identifier = (call_expression "__errno_location()" identifier (argument_list "()" ( )))) ;)) (expression_statement "*piVar6 = 0;" (assignment_expression "*piVar6 = 0" (pointer_expression "*piVar6" * identifier) = number_literal) ;) (expression_statement "uVar9 = strcoll((char *)puVar4[1],*(char **)(iVar5 + 4));" (assignment_expression "uVar9 = strcoll((char *)puVar4[1],*(char **)(iVar5 + 4))" identifier = (call_expression "strcoll((char *)puVar4[1],*(char **)(iVar5 + 4))" identifier (argument_list "((char *)puVar4[1],*(char **)(iVar5 + 4))" ( (cast_expression "(char *)puVar4[1]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar4[1]" identifier [ number_literal ])) , (pointer_expression "*(char **)(iVar5 + 4)" * (cast_expression "(char **)(iVar5 + 4)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar5 + 4)" ( (binary_expression "iVar5 + 4" identifier + number_literal) )))) )))) ;) (labeled_statement "LAB_00013262:\n  switch(uVar10) {\n  default:\n    uVar9 = uVar9 >> 0x1f;\n    break;\n  case 1:\n    uVar9 = (uint)((int)uVar9 < 1);\n    break;\n  case 2:\n    uVar9 = (uint)(uVar9 == 0);\n    break;\n  case 3:\n    uVar9 = (uint)(uVar9 != 0);\n    break;\n  case 4:\n    uVar9 = ~uVar9 >> 0x1f;\n    break;\n  case 5:\n    uVar9 = (uint)(0 < (int)uVar9);\n  }" statement_identifier : (switch_statement "switch(uVar10) {\n  default:\n    uVar9 = uVar9 >> 0x1f;\n    break;\n  case 1:\n    uVar9 = (uint)((int)uVar9 < 1);\n    break;\n  case 2:\n    uVar9 = (uint)(uVar9 == 0);\n    break;\n  case 3:\n    uVar9 = (uint)(uVar9 != 0);\n    break;\n  case 4:\n    uVar9 = ~uVar9 >> 0x1f;\n    break;\n  case 5:\n    uVar9 = (uint)(0 < (int)uVar9);\n  }" switch (parenthesized_expression "(uVar10)" ( identifier )) (compound_statement "{\n  default:\n    uVar9 = uVar9 >> 0x1f;\n    break;\n  case 1:\n    uVar9 = (uint)((int)uVar9 < 1);\n    break;\n  case 2:\n    uVar9 = (uint)(uVar9 == 0);\n    break;\n  case 3:\n    uVar9 = (uint)(uVar9 != 0);\n    break;\n  case 4:\n    uVar9 = ~uVar9 >> 0x1f;\n    break;\n  case 5:\n    uVar9 = (uint)(0 < (int)uVar9);\n  }" { (case_statement "default:\n    uVar9 = uVar9 >> 0x1f;\n    break;" default : (expression_statement "uVar9 = uVar9 >> 0x1f;" (assignment_expression "uVar9 = uVar9 >> 0x1f" identifier = (binary_expression "uVar9 >> 0x1f" identifier >> number_literal)) ;) (break_statement "break;" break ;)) (case_statement "case 1:\n    uVar9 = (uint)((int)uVar9 < 1);\n    break;" case number_literal : (expression_statement "uVar9 = (uint)((int)uVar9 < 1);" (assignment_expression "uVar9 = (uint)((int)uVar9 < 1)" identifier = (call_expression "(uint)((int)uVar9 < 1)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)uVar9 < 1)" ( (binary_expression "(int)uVar9 < 1" (cast_expression "(int)uVar9" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )))) ;) (break_statement "break;" break ;)) (case_statement "case 2:\n    uVar9 = (uint)(uVar9 == 0);\n    break;" case number_literal : (expression_statement "uVar9 = (uint)(uVar9 == 0);" (assignment_expression "uVar9 = (uint)(uVar9 == 0)" identifier = (call_expression "(uint)(uVar9 == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar9 == 0)" ( (binary_expression "uVar9 == 0" identifier == number_literal) )))) ;) (break_statement "break;" break ;)) (case_statement "case 3:\n    uVar9 = (uint)(uVar9 != 0);\n    break;" case number_literal : (expression_statement "uVar9 = (uint)(uVar9 != 0);" (assignment_expression "uVar9 = (uint)(uVar9 != 0)" identifier = (call_expression "(uint)(uVar9 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar9 != 0)" ( (binary_expression "uVar9 != 0" identifier != number_literal) )))) ;) (break_statement "break;" break ;)) (case_statement "case 4:\n    uVar9 = ~uVar9 >> 0x1f;\n    break;" case number_literal : (expression_statement "uVar9 = ~uVar9 >> 0x1f;" (assignment_expression "uVar9 = ~uVar9 >> 0x1f" identifier = (binary_expression "~uVar9 >> 0x1f" (unary_expression "~uVar9" ~ identifier) >> number_literal)) ;) (break_statement "break;" break ;)) (case_statement "case 5:\n    uVar9 = (uint)(0 < (int)uVar9);" case number_literal : (expression_statement "uVar9 = (uint)(0 < (int)uVar9);" (assignment_expression "uVar9 = (uint)(0 < (int)uVar9)" identifier = (call_expression "(uint)(0 < (int)uVar9)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(0 < (int)uVar9)" ( (binary_expression "0 < (int)uVar9" number_literal < (cast_expression "(int)uVar9" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;)) }))) (labeled_statement "LAB_000131be:\n  FUN_00011900();" statement_identifier : (expression_statement "FUN_00011900();" (call_expression "FUN_00011900()" identifier (argument_list "()" ( ))) ;)) (expression_statement "FUN_00011900();" (call_expression "FUN_00011900()" identifier (argument_list "()" ( ))) ;) (expression_statement "puVar4 = (undefined4 *)FUN_00016540(0x10);" (assignment_expression "puVar4 = (undefined4 *)FUN_00016540(0x10)" identifier = (cast_expression "(undefined4 *)FUN_00016540(0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00016540(0x10)" identifier (argument_list "(0x10)" ( number_literal ))))) ;) (expression_statement "*puVar4 = 0;" (assignment_expression "*puVar4 = 0" (pointer_expression "*puVar4" * identifier) = number_literal) ;) (expression_statement "__gmpz_init_set_ui(puVar4 + 1,uVar9);" (call_expression "__gmpz_init_set_ui(puVar4 + 1,uVar9)" identifier (argument_list "(puVar4 + 1,uVar9)" ( (binary_expression "puVar4 + 1" identifier + number_literal) , identifier ))) ;) (goto_statement "goto LAB_000131ed;" goto statement_identifier ;) }))
(translation_unit (ERROR (binary_expression IDENT * (ERROR IDENT) (call_expression IDENT (argument_list ( (ERROR IDENT) IDENT ))))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) , (binary_expression IDENT == (char_literal ' escape_sequence '))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) })) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }))) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }))) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (char_literal ' character ')) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression LIT < (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (char_literal ' character ')) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression LIT < (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (goto_statement goto statement_identifier ;) })) (goto_statement goto statement_identifier ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;)) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;) (labeled_statement statement_identifier : (switch_statement switch (parenthesized_expression ( IDENT )) (compound_statement { (case_statement default : (expression_statement (assignment_expression IDENT = (binary_expression IDENT >> LIT)) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )))) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT == LIT) )))) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT != LIT) )))) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (binary_expression (unary_expression ~ IDENT) >> LIT)) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;)) }))) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( ))) ;)) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT ))))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , IDENT ))) ;) (goto_statement goto statement_identifier ;) }))
(ERROR "undefined4 * __regparm3 FUN_00013160(byte param_1)" (binary_expression "undefined4 * __regparm3 FUN_00013160(byte param_1)" (identifier "undefined4") (* "*") (ERROR "__regparm3" (identifier "__regparm3")) (call_expression "FUN_00013160(byte param_1)" (identifier "FUN_00013160") (argument_list "(byte param_1)" (( "(") (ERROR "byte" (identifier "byte")) (identifier "param_1") () ")"))))) (compound_statement "{\n  char *pcVar1;\n  char cVar2;\n  uint uVar3;\n  undefined4 *puVar4;\n  int iVar5;\n  int *piVar6;\n  char *pcVar7;\n  char *pcVar8;\n  uint uVar9;\n  undefined4 uVar10;\n  \n  uVar3 = (uint)param_1;\n  puVar4 = (undefined4 *)FUN_00013070();\nLAB_000131ed:\n  cVar2 = FUN_00011820();\n  if (cVar2 == '\0') {\n    cVar2 = FUN_00011820();\n    uVar10 = 1;\n    if (cVar2 == '\0') {\n      cVar2 = FUN_00011820(1,uVar3);\n      if ((cVar2 == '\0') && (cVar2 = FUN_00011820(), cVar2 == '\0')) {\n        cVar2 = FUN_00011820();\n        uVar10 = 3;\n        if (cVar2 == '\0') {\n          cVar2 = FUN_00011820();\n          uVar10 = 4;\n          if (cVar2 == '\0') {\n            cVar2 = FUN_00011820();\n            if (cVar2 == '\0') {\n              return puVar4;\n            }\n            uVar10 = 5;\n          }\n        }\n      }\n      else {\n        uVar10 = 2;\n      }\n    }\n  }\n  else {\n    uVar10 = 0;\n  }\n  uVar9 = 0;\n  iVar5 = FUN_00013070();\n  if (param_1 != 0) {\n    FUN_00011aa0();\n    FUN_00011aa0();\n    pcVar1 = (char *)puVar4[1];\n    pcVar7 = pcVar1 + (*pcVar1 == '-');\n    cVar2 = *pcVar7;\n    do {\n      if (9 < (int)cVar2 - 0x30U) goto LAB_00013246;\n      pcVar7 = pcVar7 + 1;\n      cVar2 = *pcVar7;\n    } while (cVar2 != '\0');\n    pcVar7 = *(char **)(iVar5 + 4);\n    pcVar8 = pcVar7 + (*pcVar7 == '-');\n    cVar2 = *pcVar8;\n    do {\n      if (9 < (int)cVar2 - 0x30U) goto LAB_00013246;\n      pcVar8 = pcVar8 + 1;\n      cVar2 = *pcVar8;\n    } while (cVar2 != '\0');\n    uVar9 = FUN_00015d10(pcVar1,pcVar7);\n    goto LAB_00013262;\n  }\n  goto LAB_000131be;\nLAB_00013246:\n  piVar6 = __errno_location();\n  *piVar6 = 0;\n  uVar9 = strcoll((char *)puVar4[1],*(char **)(iVar5 + 4));\nLAB_00013262:\n  switch(uVar10) {\n  default:\n    uVar9 = uVar9 >> 0x1f;\n    break;\n  case 1:\n    uVar9 = (uint)((int)uVar9 < 1);\n    break;\n  case 2:\n    uVar9 = (uint)(uVar9 == 0);\n    break;\n  case 3:\n    uVar9 = (uint)(uVar9 != 0);\n    break;\n  case 4:\n    uVar9 = ~uVar9 >> 0x1f;\n    break;\n  case 5:\n    uVar9 = (uint)(0 < (int)uVar9);\n  }\nLAB_000131be:\n  FUN_00011900();\n  FUN_00011900();\n  puVar4 = (undefined4 *)FUN_00016540(0x10);\n  *puVar4 = 0;\n  __gmpz_init_set_ui(puVar4 + 1,uVar9);\n  goto LAB_000131ed;\n}" ({ "{") (declaration "char *pcVar1;" (primitive_type "char") (pointer_declarator "*pcVar1" (* "*") (identifier "pcVar1")) (; ";")) (declaration "char cVar2;" (primitive_type "char") (identifier "cVar2") (; ";")) (declaration "uint uVar3;" (type_identifier "uint") (identifier "uVar3") (; ";")) (declaration "undefined4 *puVar4;" (type_identifier "undefined4") (pointer_declarator "*puVar4" (* "*") (identifier "puVar4")) (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (declaration "int *piVar6;" (primitive_type "int") (pointer_declarator "*piVar6" (* "*") (identifier "piVar6")) (; ";")) (declaration "char *pcVar7;" (primitive_type "char") (pointer_declarator "*pcVar7" (* "*") (identifier "pcVar7")) (; ";")) (declaration "char *pcVar8;" (primitive_type "char") (pointer_declarator "*pcVar8" (* "*") (identifier "pcVar8")) (; ";")) (declaration "uint uVar9;" (type_identifier "uint") (identifier "uVar9") (; ";")) (declaration "undefined4 uVar10;" (type_identifier "undefined4") (identifier "uVar10") (; ";")) (expression_statement "uVar3 = (uint)param_1;" (assignment_expression "uVar3 = (uint)param_1" (identifier "uVar3") (= "=") (cast_expression "(uint)param_1" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "param_1"))) (; ";")) (expression_statement "puVar4 = (undefined4 *)FUN_00013070();" (assignment_expression "puVar4 = (undefined4 *)FUN_00013070()" (identifier "puVar4") (= "=") (cast_expression "(undefined4 *)FUN_00013070()" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00013070()" (identifier "FUN_00013070") (argument_list "()" (( "(") () ")"))))) (; ";")) (labeled_statement "LAB_000131ed:\n  cVar2 = FUN_00011820();" (statement_identifier "LAB_000131ed") (: ":") (expression_statement "cVar2 = FUN_00011820();" (assignment_expression "cVar2 = FUN_00011820()" (identifier "cVar2") (= "=") (call_expression "FUN_00011820()" (identifier "FUN_00011820") (argument_list "()" (( "(") () ")")))) (; ";"))) (if_statement "if (cVar2 == '\0') {\n    cVar2 = FUN_00011820();\n    uVar10 = 1;\n    if (cVar2 == '\0') {\n      cVar2 = FUN_00011820(1,uVar3);\n      if ((cVar2 == '\0') && (cVar2 = FUN_00011820(), cVar2 == '\0')) {\n        cVar2 = FUN_00011820();\n        uVar10 = 3;\n        if (cVar2 == '\0') {\n          cVar2 = FUN_00011820();\n          uVar10 = 4;\n          if (cVar2 == '\0') {\n            cVar2 = FUN_00011820();\n            if (cVar2 == '\0') {\n              return puVar4;\n            }\n            uVar10 = 5;\n          }\n        }\n      }\n      else {\n        uVar10 = 2;\n      }\n    }\n  }\n  else {\n    uVar10 = 0;\n  }" (if "if") (parenthesized_expression "(cVar2 == '\0')" (( "(") (binary_expression "cVar2 == '\0'" (identifier "cVar2") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n    cVar2 = FUN_00011820();\n    uVar10 = 1;\n    if (cVar2 == '\0') {\n      cVar2 = FUN_00011820(1,uVar3);\n      if ((cVar2 == '\0') && (cVar2 = FUN_00011820(), cVar2 == '\0')) {\n        cVar2 = FUN_00011820();\n        uVar10 = 3;\n        if (cVar2 == '\0') {\n          cVar2 = FUN_00011820();\n          uVar10 = 4;\n          if (cVar2 == '\0') {\n            cVar2 = FUN_00011820();\n            if (cVar2 == '\0') {\n              return puVar4;\n            }\n            uVar10 = 5;\n          }\n        }\n      }\n      else {\n        uVar10 = 2;\n      }\n    }\n  }" ({ "{") (expression_statement "cVar2 = FUN_00011820();" (assignment_expression "cVar2 = FUN_00011820()" (identifier "cVar2") (= "=") (call_expression "FUN_00011820()" (identifier "FUN_00011820") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "uVar10 = 1;" (assignment_expression "uVar10 = 1" (identifier "uVar10") (= "=") (number_literal "1")) (; ";")) (if_statement "if (cVar2 == '\0') {\n      cVar2 = FUN_00011820(1,uVar3);\n      if ((cVar2 == '\0') && (cVar2 = FUN_00011820(), cVar2 == '\0')) {\n        cVar2 = FUN_00011820();\n        uVar10 = 3;\n        if (cVar2 == '\0') {\n          cVar2 = FUN_00011820();\n          uVar10 = 4;\n          if (cVar2 == '\0') {\n            cVar2 = FUN_00011820();\n            if (cVar2 == '\0') {\n              return puVar4;\n            }\n            uVar10 = 5;\n          }\n        }\n      }\n      else {\n        uVar10 = 2;\n      }\n    }" (if "if") (parenthesized_expression "(cVar2 == '\0')" (( "(") (binary_expression "cVar2 == '\0'" (identifier "cVar2") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      cVar2 = FUN_00011820(1,uVar3);\n      if ((cVar2 == '\0') && (cVar2 = FUN_00011820(), cVar2 == '\0')) {\n        cVar2 = FUN_00011820();\n        uVar10 = 3;\n        if (cVar2 == '\0') {\n          cVar2 = FUN_00011820();\n          uVar10 = 4;\n          if (cVar2 == '\0') {\n            cVar2 = FUN_00011820();\n            if (cVar2 == '\0') {\n              return puVar4;\n            }\n            uVar10 = 5;\n          }\n        }\n      }\n      else {\n        uVar10 = 2;\n      }\n    }" ({ "{") (expression_statement "cVar2 = FUN_00011820(1,uVar3);" (assignment_expression "cVar2 = FUN_00011820(1,uVar3)" (identifier "cVar2") (= "=") (call_expression "FUN_00011820(1,uVar3)" (identifier "FUN_00011820") (argument_list "(1,uVar3)" (( "(") (number_literal "1") (, ",") (identifier "uVar3") () ")")))) (; ";")) (if_statement "if ((cVar2 == '\0') && (cVar2 = FUN_00011820(), cVar2 == '\0')) {\n        cVar2 = FUN_00011820();\n        uVar10 = 3;\n        if (cVar2 == '\0') {\n          cVar2 = FUN_00011820();\n          uVar10 = 4;\n          if (cVar2 == '\0') {\n            cVar2 = FUN_00011820();\n            if (cVar2 == '\0') {\n              return puVar4;\n            }\n            uVar10 = 5;\n          }\n        }\n      }\n      else {\n        uVar10 = 2;\n      }" (if "if") (parenthesized_expression "((cVar2 == '\0') && (cVar2 = FUN_00011820(), cVar2 == '\0'))" (( "(") (binary_expression "(cVar2 == '\0') && (cVar2 = FUN_00011820(), cVar2 == '\0')" (parenthesized_expression "(cVar2 == '\0')" (( "(") (binary_expression "cVar2 == '\0'" (identifier "cVar2") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (&& "&&") (parenthesized_expression "(cVar2 = FUN_00011820(), cVar2 == '\0')" (( "(") (comma_expression "cVar2 = FUN_00011820(), cVar2 == '\0'" (assignment_expression "cVar2 = FUN_00011820()" (identifier "cVar2") (= "=") (call_expression "FUN_00011820()" (identifier "FUN_00011820") (argument_list "()" (( "(") () ")")))) (, ",") (binary_expression "cVar2 == '\0'" (identifier "cVar2") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'")))) () ")"))) () ")")) (compound_statement "{\n        cVar2 = FUN_00011820();\n        uVar10 = 3;\n        if (cVar2 == '\0') {\n          cVar2 = FUN_00011820();\n          uVar10 = 4;\n          if (cVar2 == '\0') {\n            cVar2 = FUN_00011820();\n            if (cVar2 == '\0') {\n              return puVar4;\n            }\n            uVar10 = 5;\n          }\n        }\n      }" ({ "{") (expression_statement "cVar2 = FUN_00011820();" (assignment_expression "cVar2 = FUN_00011820()" (identifier "cVar2") (= "=") (call_expression "FUN_00011820()" (identifier "FUN_00011820") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "uVar10 = 3;" (assignment_expression "uVar10 = 3" (identifier "uVar10") (= "=") (number_literal "3")) (; ";")) (if_statement "if (cVar2 == '\0') {\n          cVar2 = FUN_00011820();\n          uVar10 = 4;\n          if (cVar2 == '\0') {\n            cVar2 = FUN_00011820();\n            if (cVar2 == '\0') {\n              return puVar4;\n            }\n            uVar10 = 5;\n          }\n        }" (if "if") (parenthesized_expression "(cVar2 == '\0')" (( "(") (binary_expression "cVar2 == '\0'" (identifier "cVar2") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n          cVar2 = FUN_00011820();\n          uVar10 = 4;\n          if (cVar2 == '\0') {\n            cVar2 = FUN_00011820();\n            if (cVar2 == '\0') {\n              return puVar4;\n            }\n            uVar10 = 5;\n          }\n        }" ({ "{") (expression_statement "cVar2 = FUN_00011820();" (assignment_expression "cVar2 = FUN_00011820()" (identifier "cVar2") (= "=") (call_expression "FUN_00011820()" (identifier "FUN_00011820") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "uVar10 = 4;" (assignment_expression "uVar10 = 4" (identifier "uVar10") (= "=") (number_literal "4")) (; ";")) (if_statement "if (cVar2 == '\0') {\n            cVar2 = FUN_00011820();\n            if (cVar2 == '\0') {\n              return puVar4;\n            }\n            uVar10 = 5;\n          }" (if "if") (parenthesized_expression "(cVar2 == '\0')" (( "(") (binary_expression "cVar2 == '\0'" (identifier "cVar2") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n            cVar2 = FUN_00011820();\n            if (cVar2 == '\0') {\n              return puVar4;\n            }\n            uVar10 = 5;\n          }" ({ "{") (expression_statement "cVar2 = FUN_00011820();" (assignment_expression "cVar2 = FUN_00011820()" (identifier "cVar2") (= "=") (call_expression "FUN_00011820()" (identifier "FUN_00011820") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (cVar2 == '\0') {\n              return puVar4;\n            }" (if "if") (parenthesized_expression "(cVar2 == '\0')" (( "(") (binary_expression "cVar2 == '\0'" (identifier "cVar2") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n              return puVar4;\n            }" ({ "{") (return_statement "return puVar4;" (return "return") (identifier "puVar4") (; ";")) (} "}"))) (expression_statement "uVar10 = 5;" (assignment_expression "uVar10 = 5" (identifier "uVar10") (= "=") (number_literal "5")) (; ";")) (} "}"))) (} "}"))) (} "}")) (else_clause "else {\n        uVar10 = 2;\n      }" (else "else") (compound_statement "{\n        uVar10 = 2;\n      }" ({ "{") (expression_statement "uVar10 = 2;" (assignment_expression "uVar10 = 2" (identifier "uVar10") (= "=") (number_literal "2")) (; ";")) (} "}")))) (} "}"))) (} "}")) (else_clause "else {\n    uVar10 = 0;\n  }" (else "else") (compound_statement "{\n    uVar10 = 0;\n  }" ({ "{") (expression_statement "uVar10 = 0;" (assignment_expression "uVar10 = 0" (identifier "uVar10") (= "=") (number_literal "0")) (; ";")) (} "}")))) (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" (identifier "uVar9") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar5 = FUN_00013070();" (assignment_expression "iVar5 = FUN_00013070()" (identifier "iVar5") (= "=") (call_expression "FUN_00013070()" (identifier "FUN_00013070") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (param_1 != 0) {\n    FUN_00011aa0();\n    FUN_00011aa0();\n    pcVar1 = (char *)puVar4[1];\n    pcVar7 = pcVar1 + (*pcVar1 == '-');\n    cVar2 = *pcVar7;\n    do {\n      if (9 < (int)cVar2 - 0x30U) goto LAB_00013246;\n      pcVar7 = pcVar7 + 1;\n      cVar2 = *pcVar7;\n    } while (cVar2 != '\0');\n    pcVar7 = *(char **)(iVar5 + 4);\n    pcVar8 = pcVar7 + (*pcVar7 == '-');\n    cVar2 = *pcVar8;\n    do {\n      if (9 < (int)cVar2 - 0x30U) goto LAB_00013246;\n      pcVar8 = pcVar8 + 1;\n      cVar2 = *pcVar8;\n    } while (cVar2 != '\0');\n    uVar9 = FUN_00015d10(pcVar1,pcVar7);\n    goto LAB_00013262;\n  }" (if "if") (parenthesized_expression "(param_1 != 0)" (( "(") (binary_expression "param_1 != 0" (identifier "param_1") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    FUN_00011aa0();\n    FUN_00011aa0();\n    pcVar1 = (char *)puVar4[1];\n    pcVar7 = pcVar1 + (*pcVar1 == '-');\n    cVar2 = *pcVar7;\n    do {\n      if (9 < (int)cVar2 - 0x30U) goto LAB_00013246;\n      pcVar7 = pcVar7 + 1;\n      cVar2 = *pcVar7;\n    } while (cVar2 != '\0');\n    pcVar7 = *(char **)(iVar5 + 4);\n    pcVar8 = pcVar7 + (*pcVar7 == '-');\n    cVar2 = *pcVar8;\n    do {\n      if (9 < (int)cVar2 - 0x30U) goto LAB_00013246;\n      pcVar8 = pcVar8 + 1;\n      cVar2 = *pcVar8;\n    } while (cVar2 != '\0');\n    uVar9 = FUN_00015d10(pcVar1,pcVar7);\n    goto LAB_00013262;\n  }" ({ "{") (expression_statement "FUN_00011aa0();" (call_expression "FUN_00011aa0()" (identifier "FUN_00011aa0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_00011aa0();" (call_expression "FUN_00011aa0()" (identifier "FUN_00011aa0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "pcVar1 = (char *)puVar4[1];" (assignment_expression "pcVar1 = (char *)puVar4[1]" (identifier "pcVar1") (= "=") (cast_expression "(char *)puVar4[1]" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar4[1]" (identifier "puVar4") ([ "[") (number_literal "1") (] "]")))) (; ";")) (expression_statement "pcVar7 = pcVar1 + (*pcVar1 == '-');" (assignment_expression "pcVar7 = pcVar1 + (*pcVar1 == '-')" (identifier "pcVar7") (= "=") (binary_expression "pcVar1 + (*pcVar1 == '-')" (identifier "pcVar1") (+ "+") (parenthesized_expression "(*pcVar1 == '-')" (( "(") (binary_expression "*pcVar1 == '-'" (pointer_expression "*pcVar1" (* "*") (identifier "pcVar1")) (== "==") (char_literal "'-'" (' "'") (character "-") (' "'"))) () ")")))) (; ";")) (expression_statement "cVar2 = *pcVar7;" (assignment_expression "cVar2 = *pcVar7" (identifier "cVar2") (= "=") (pointer_expression "*pcVar7" (* "*") (identifier "pcVar7"))) (; ";")) (do_statement "do {\n      if (9 < (int)cVar2 - 0x30U) goto LAB_00013246;\n      pcVar7 = pcVar7 + 1;\n      cVar2 = *pcVar7;\n    } while (cVar2 != '\0');" (do "do") (compound_statement "{\n      if (9 < (int)cVar2 - 0x30U) goto LAB_00013246;\n      pcVar7 = pcVar7 + 1;\n      cVar2 = *pcVar7;\n    }" ({ "{") (if_statement "if (9 < (int)cVar2 - 0x30U) goto LAB_00013246;" (if "if") (parenthesized_expression "(9 < (int)cVar2 - 0x30U)" (( "(") (binary_expression "9 < (int)cVar2 - 0x30U" (number_literal "9") (< "<") (binary_expression "(int)cVar2 - 0x30U" (cast_expression "(int)cVar2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "cVar2")) (- "-") (number_literal "0x30U"))) () ")")) (goto_statement "goto LAB_00013246;" (goto "goto") (statement_identifier "LAB_00013246") (; ";"))) (expression_statement "pcVar7 = pcVar7 + 1;" (assignment_expression "pcVar7 = pcVar7 + 1" (identifier "pcVar7") (= "=") (binary_expression "pcVar7 + 1" (identifier "pcVar7") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "cVar2 = *pcVar7;" (assignment_expression "cVar2 = *pcVar7" (identifier "cVar2") (= "=") (pointer_expression "*pcVar7" (* "*") (identifier "pcVar7"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(cVar2 != '\0')" (( "(") (binary_expression "cVar2 != '\0'" (identifier "cVar2") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (; ";")) (expression_statement "pcVar7 = *(char **)(iVar5 + 4);" (assignment_expression "pcVar7 = *(char **)(iVar5 + 4)" (identifier "pcVar7") (= "=") (pointer_expression "*(char **)(iVar5 + 4)" (* "*") (cast_expression "(char **)(iVar5 + 4)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar5 + 4)" (( "(") (binary_expression "iVar5 + 4" (identifier "iVar5") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "pcVar8 = pcVar7 + (*pcVar7 == '-');" (assignment_expression "pcVar8 = pcVar7 + (*pcVar7 == '-')" (identifier "pcVar8") (= "=") (binary_expression "pcVar7 + (*pcVar7 == '-')" (identifier "pcVar7") (+ "+") (parenthesized_expression "(*pcVar7 == '-')" (( "(") (binary_expression "*pcVar7 == '-'" (pointer_expression "*pcVar7" (* "*") (identifier "pcVar7")) (== "==") (char_literal "'-'" (' "'") (character "-") (' "'"))) () ")")))) (; ";")) (expression_statement "cVar2 = *pcVar8;" (assignment_expression "cVar2 = *pcVar8" (identifier "cVar2") (= "=") (pointer_expression "*pcVar8" (* "*") (identifier "pcVar8"))) (; ";")) (do_statement "do {\n      if (9 < (int)cVar2 - 0x30U) goto LAB_00013246;\n      pcVar8 = pcVar8 + 1;\n      cVar2 = *pcVar8;\n    } while (cVar2 != '\0');" (do "do") (compound_statement "{\n      if (9 < (int)cVar2 - 0x30U) goto LAB_00013246;\n      pcVar8 = pcVar8 + 1;\n      cVar2 = *pcVar8;\n    }" ({ "{") (if_statement "if (9 < (int)cVar2 - 0x30U) goto LAB_00013246;" (if "if") (parenthesized_expression "(9 < (int)cVar2 - 0x30U)" (( "(") (binary_expression "9 < (int)cVar2 - 0x30U" (number_literal "9") (< "<") (binary_expression "(int)cVar2 - 0x30U" (cast_expression "(int)cVar2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "cVar2")) (- "-") (number_literal "0x30U"))) () ")")) (goto_statement "goto LAB_00013246;" (goto "goto") (statement_identifier "LAB_00013246") (; ";"))) (expression_statement "pcVar8 = pcVar8 + 1;" (assignment_expression "pcVar8 = pcVar8 + 1" (identifier "pcVar8") (= "=") (binary_expression "pcVar8 + 1" (identifier "pcVar8") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "cVar2 = *pcVar8;" (assignment_expression "cVar2 = *pcVar8" (identifier "cVar2") (= "=") (pointer_expression "*pcVar8" (* "*") (identifier "pcVar8"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(cVar2 != '\0')" (( "(") (binary_expression "cVar2 != '\0'" (identifier "cVar2") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (; ";")) (expression_statement "uVar9 = FUN_00015d10(pcVar1,pcVar7);" (assignment_expression "uVar9 = FUN_00015d10(pcVar1,pcVar7)" (identifier "uVar9") (= "=") (call_expression "FUN_00015d10(pcVar1,pcVar7)" (identifier "FUN_00015d10") (argument_list "(pcVar1,pcVar7)" (( "(") (identifier "pcVar1") (, ",") (identifier "pcVar7") () ")")))) (; ";")) (goto_statement "goto LAB_00013262;" (goto "goto") (statement_identifier "LAB_00013262") (; ";")) (} "}"))) (goto_statement "goto LAB_000131be;" (goto "goto") (statement_identifier "LAB_000131be") (; ";")) (labeled_statement "LAB_00013246:\n  piVar6 = __errno_location();" (statement_identifier "LAB_00013246") (: ":") (expression_statement "piVar6 = __errno_location();" (assignment_expression "piVar6 = __errno_location()" (identifier "piVar6") (= "=") (call_expression "__errno_location()" (identifier "__errno_location") (argument_list "()" (( "(") () ")")))) (; ";"))) (expression_statement "*piVar6 = 0;" (assignment_expression "*piVar6 = 0" (pointer_expression "*piVar6" (* "*") (identifier "piVar6")) (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar9 = strcoll((char *)puVar4[1],*(char **)(iVar5 + 4));" (assignment_expression "uVar9 = strcoll((char *)puVar4[1],*(char **)(iVar5 + 4))" (identifier "uVar9") (= "=") (call_expression "strcoll((char *)puVar4[1],*(char **)(iVar5 + 4))" (identifier "strcoll") (argument_list "((char *)puVar4[1],*(char **)(iVar5 + 4))" (( "(") (cast_expression "(char *)puVar4[1]" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar4[1]" (identifier "puVar4") ([ "[") (number_literal "1") (] "]"))) (, ",") (pointer_expression "*(char **)(iVar5 + 4)" (* "*") (cast_expression "(char **)(iVar5 + 4)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar5 + 4)" (( "(") (binary_expression "iVar5 + 4" (identifier "iVar5") (+ "+") (number_literal "4")) () ")")))) () ")")))) (; ";")) (labeled_statement "LAB_00013262:\n  switch(uVar10) {\n  default:\n    uVar9 = uVar9 >> 0x1f;\n    break;\n  case 1:\n    uVar9 = (uint)((int)uVar9 < 1);\n    break;\n  case 2:\n    uVar9 = (uint)(uVar9 == 0);\n    break;\n  case 3:\n    uVar9 = (uint)(uVar9 != 0);\n    break;\n  case 4:\n    uVar9 = ~uVar9 >> 0x1f;\n    break;\n  case 5:\n    uVar9 = (uint)(0 < (int)uVar9);\n  }" (statement_identifier "LAB_00013262") (: ":") (switch_statement "switch(uVar10) {\n  default:\n    uVar9 = uVar9 >> 0x1f;\n    break;\n  case 1:\n    uVar9 = (uint)((int)uVar9 < 1);\n    break;\n  case 2:\n    uVar9 = (uint)(uVar9 == 0);\n    break;\n  case 3:\n    uVar9 = (uint)(uVar9 != 0);\n    break;\n  case 4:\n    uVar9 = ~uVar9 >> 0x1f;\n    break;\n  case 5:\n    uVar9 = (uint)(0 < (int)uVar9);\n  }" (switch "switch") (parenthesized_expression "(uVar10)" (( "(") (identifier "uVar10") () ")")) (compound_statement "{\n  default:\n    uVar9 = uVar9 >> 0x1f;\n    break;\n  case 1:\n    uVar9 = (uint)((int)uVar9 < 1);\n    break;\n  case 2:\n    uVar9 = (uint)(uVar9 == 0);\n    break;\n  case 3:\n    uVar9 = (uint)(uVar9 != 0);\n    break;\n  case 4:\n    uVar9 = ~uVar9 >> 0x1f;\n    break;\n  case 5:\n    uVar9 = (uint)(0 < (int)uVar9);\n  }" ({ "{") (case_statement "default:\n    uVar9 = uVar9 >> 0x1f;\n    break;" (default "default") (: ":") (expression_statement "uVar9 = uVar9 >> 0x1f;" (assignment_expression "uVar9 = uVar9 >> 0x1f" (identifier "uVar9") (= "=") (binary_expression "uVar9 >> 0x1f" (identifier "uVar9") (>> ">>") (number_literal "0x1f"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 1:\n    uVar9 = (uint)((int)uVar9 < 1);\n    break;" (case "case") (number_literal "1") (: ":") (expression_statement "uVar9 = (uint)((int)uVar9 < 1);" (assignment_expression "uVar9 = (uint)((int)uVar9 < 1)" (identifier "uVar9") (= "=") (call_expression "(uint)((int)uVar9 < 1)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((int)uVar9 < 1)" (( "(") (binary_expression "(int)uVar9 < 1" (cast_expression "(int)uVar9" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar9")) (< "<") (number_literal "1")) () ")")))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 2:\n    uVar9 = (uint)(uVar9 == 0);\n    break;" (case "case") (number_literal "2") (: ":") (expression_statement "uVar9 = (uint)(uVar9 == 0);" (assignment_expression "uVar9 = (uint)(uVar9 == 0)" (identifier "uVar9") (= "=") (call_expression "(uint)(uVar9 == 0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar9 == 0)" (( "(") (binary_expression "uVar9 == 0" (identifier "uVar9") (== "==") (number_literal "0")) () ")")))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 3:\n    uVar9 = (uint)(uVar9 != 0);\n    break;" (case "case") (number_literal "3") (: ":") (expression_statement "uVar9 = (uint)(uVar9 != 0);" (assignment_expression "uVar9 = (uint)(uVar9 != 0)" (identifier "uVar9") (= "=") (call_expression "(uint)(uVar9 != 0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar9 != 0)" (( "(") (binary_expression "uVar9 != 0" (identifier "uVar9") (!= "!=") (number_literal "0")) () ")")))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 4:\n    uVar9 = ~uVar9 >> 0x1f;\n    break;" (case "case") (number_literal "4") (: ":") (expression_statement "uVar9 = ~uVar9 >> 0x1f;" (assignment_expression "uVar9 = ~uVar9 >> 0x1f" (identifier "uVar9") (= "=") (binary_expression "~uVar9 >> 0x1f" (unary_expression "~uVar9" (~ "~") (identifier "uVar9")) (>> ">>") (number_literal "0x1f"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 5:\n    uVar9 = (uint)(0 < (int)uVar9);" (case "case") (number_literal "5") (: ":") (expression_statement "uVar9 = (uint)(0 < (int)uVar9);" (assignment_expression "uVar9 = (uint)(0 < (int)uVar9)" (identifier "uVar9") (= "=") (call_expression "(uint)(0 < (int)uVar9)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(0 < (int)uVar9)" (( "(") (binary_expression "0 < (int)uVar9" (number_literal "0") (< "<") (cast_expression "(int)uVar9" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar9"))) () ")")))) (; ";"))) (} "}")))) (labeled_statement "LAB_000131be:\n  FUN_00011900();" (statement_identifier "LAB_000131be") (: ":") (expression_statement "FUN_00011900();" (call_expression "FUN_00011900()" (identifier "FUN_00011900") (argument_list "()" (( "(") () ")"))) (; ";"))) (expression_statement "FUN_00011900();" (call_expression "FUN_00011900()" (identifier "FUN_00011900") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "puVar4 = (undefined4 *)FUN_00016540(0x10);" (assignment_expression "puVar4 = (undefined4 *)FUN_00016540(0x10)" (identifier "puVar4") (= "=") (cast_expression "(undefined4 *)FUN_00016540(0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00016540(0x10)" (identifier "FUN_00016540") (argument_list "(0x10)" (( "(") (number_literal "0x10") () ")"))))) (; ";")) (expression_statement "*puVar4 = 0;" (assignment_expression "*puVar4 = 0" (pointer_expression "*puVar4" (* "*") (identifier "puVar4")) (= "=") (number_literal "0")) (; ";")) (expression_statement "__gmpz_init_set_ui(puVar4 + 1,uVar9);" (call_expression "__gmpz_init_set_ui(puVar4 + 1,uVar9)" (identifier "__gmpz_init_set_ui") (argument_list "(puVar4 + 1,uVar9)" (( "(") (binary_expression "puVar4 + 1" (identifier "puVar4") (+ "+") (number_literal "1")) (, ",") (identifier "uVar9") () ")"))) (; ";")) (goto_statement "goto LAB_000131ed;" (goto "goto") (statement_identifier "LAB_000131ed") (; ";")) (} "}"))

/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */

type_2 * __regparm3 eval2(type_1 evaluate)

{
  char var_6;
  char *var_4;
  type_1 _Var2;
  type_2 *v;
  type_2 *v_00;
  int *piVar3;
  char *var_5;
  char *var_7;
  type_3 var_11;
  type_4 local_2c;
  
  v = var_1(evaluate);
LAB_000131ed:
  _Var2 = var_2("<");
  if (_Var2) {
    local_2c = 0;
  }
  else {
    _Var2 = var_2("<=");
    local_2c = 1;
    if (!_Var2) {
      _Var2 = var_2("=");
      if ((_Var2) || (_Var2 = var_2("=="), _Var2)) {
        local_2c = 2;
      }
      else {
        _Var2 = var_2("!=");
        local_2c = 3;
        if (!_Var2) {
          _Var2 = var_2(">=");
          local_2c = 4;
          if (!_Var2) {
            _Var2 = var_2(">");
            if (!_Var2) {
              return v;
            }
            local_2c = 5;
          }
        }
      }
    }
  }
  var_11 = 0;
  v_00 = var_1(evaluate);
  if (evaluate) {
    var_3(v);
    var_3(v_00);
    var_4 = (v->u).s;
    var_5 = var_4 + (*var_4 == '-');
    var_6 = *var_5;
    do {
      if (9 < (int)var_6 - 0x30U) goto LAB_00013246;
      var_5 = var_5 + 1;
      var_6 = *var_5;
    } while (var_6 != '\0');
    var_5 = (v_00->u).s;
    var_7 = var_5 + (*var_5 == '-');
    var_6 = *var_7;
    do {
      if (9 < (int)var_6 - 0x30U) goto LAB_00013246;
      var_7 = var_7 + 1;
      var_6 = *var_7;
    } while (var_6 != '\0');
    var_11 = var_8(var_4,var_5);
    goto LAB_00013262;
  }
  goto LAB_000131be;
LAB_00013246:
  piVar3 = var_9();
  *piVar3 = 0;
  var_11 = var_10((v->u).s,(v_00->u).s);
LAB_00013262:
  switch(local_2c) {
  default:
    var_11 = var_11 >> 0x1f;
    break;
  case 1:
    var_11 = (type_3)((int)var_11 < 1);
    break;
  case 2:
    var_11 = (type_3)(var_11 == 0);
    break;
  case 3:
    var_11 = (type_3)(var_11 != 0);
    break;
  case 4:
    var_11 = ~var_11 >> 0x1f;
    break;
  case 5:
    var_11 = (type_3)(0 < (int)var_11);
  }
LAB_000131be:
  var_12(v);
  var_12(v_00);
  v = (type_2 *)var_13(0x10);
  v->type = integer;
  var_14(&v->u,var_11);
  goto LAB_000131ed;
}


(translation_unit (ERROR (binary_expression left: (identifier) (ERROR (identifier)) right: (call_expression function: (identifier) arguments: (argument_list (ERROR (identifier)) (identifier))))) (compound_statement (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list))) right: (binary_expression left: (identifier) right: (char_literal (escape_sequence))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))) consequence: (compound_statement (return_statement (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (char_literal (character))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (do_statement body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (char_literal (character))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (do_statement body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier))))) (goto_statement label: (statement_identifier)))) (goto_statement label: (statement_identifier)) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))) (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) (labeled_statement label: (statement_identifier) (switch_statement condition: (parenthesized_expression (identifier)) body: (compound_statement (case_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (break_statement)) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))) (break_statement)) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))))) (break_statement)) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))))) (break_statement)) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (unary_expression argument: (identifier)) right: (number_literal)))) (break_statement)) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (number_literal) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))))))))) (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (identifier) arguments: (argument_list)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (number_literal)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (identifier)))) (goto_statement label: (statement_identifier))))

/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */

undefined4 * __regparm3 MASKED(byte param_1)

{
  char *pcVar1;
  char cVar2;
  uint uVar3;
  undefined4 *puVar4;
  int iVar5;
  int *piVar6;
  char *pcVar7;
  char *pcVar8;
  uint uVar9;
  undefined4 uVar10;
  
  uVar3 = (uint)param_1;
  puVar4 = (undefined4 *)FUN_00013070();
LAB_000131ed:
  cVar2 = FUN_00011820();
  if (cVar2 == '\0') {
    cVar2 = FUN_00011820();
    uVar10 = 1;
    if (cVar2 == '\0') {
      cVar2 = FUN_00011820(1,uVar3);
      if ((cVar2 == '\0') && (cVar2 = FUN_00011820(), cVar2 == '\0')) {
        cVar2 = FUN_00011820();
        uVar10 = 3;
        if (cVar2 == '\0') {
          cVar2 = FUN_00011820();
          uVar10 = 4;
          if (cVar2 == '\0') {
            cVar2 = FUN_00011820();
            if (cVar2 == '\0') {
              return puVar4;
            }
            uVar10 = 5;
          }
        }
      }
      else {
        uVar10 = 2;
      }
    }
  }
  else {
    uVar10 = 0;
  }
  uVar9 = 0;
  iVar5 = FUN_00013070();
  if (param_1 != 0) {
    FUN_00011aa0();
    FUN_00011aa0();
    pcVar1 = (char *)puVar4[1];
    pcVar7 = pcVar1 + (*pcVar1 == '-');
    cVar2 = *pcVar7;
    do {
      if (9 < (int)cVar2 - 0x30U) goto LAB_00013246;
      pcVar7 = pcVar7 + 1;
      cVar2 = *pcVar7;
    } while (cVar2 != '\0');
    pcVar7 = *(char **)(iVar5 + 4);
    pcVar8 = pcVar7 + (*pcVar7 == '-');
    cVar2 = *pcVar8;
    do {
      if (9 < (int)cVar2 - 0x30U) goto LAB_00013246;
      pcVar8 = pcVar8 + 1;
      cVar2 = *pcVar8;
    } while (cVar2 != '\0');
    uVar9 = FUN_00015d10(pcVar1,pcVar7);
    goto LAB_00013262;
  }
  goto LAB_000131be;
LAB_00013246:
  piVar6 = __errno_location();
  *piVar6 = 0;
  uVar9 = strcoll((char *)puVar4[1],*(char **)(iVar5 + 4));
LAB_00013262:
  switch(uVar10) {
  default:
    uVar9 = uVar9 >> 0x1f;
    break;
  case 1:
    uVar9 = (uint)((int)uVar9 < 1);
    break;
  case 2:
    uVar9 = (uint)(uVar9 == 0);
    break;
  case 3:
    uVar9 = (uint)(uVar9 != 0);
    break;
  case 4:
    uVar9 = ~uVar9 >> 0x1f;
    break;
  case 5:
    uVar9 = (uint)(0 < (int)uVar9);
  }
LAB_000131be:
  FUN_00011900();
  FUN_00011900();
  puVar4 = (undefined4 *)FUN_00016540(0x10);
  *puVar4 = 0;
  __gmpz_init_set_ui(puVar4 + 1,uVar9);
  goto LAB_000131ed;
}

