
int isolate_sequence(char *string,int ind,int need_dquote,int *startp)

{
  bool bVar1;
  long lVar2;
  char *pcVar3;
  uint uVar4;
  uint uVar5;
  char cVar6;
  
  cVar6 = string[ind];
  if (cVar6 == '\0') {
LAB_0017d4b7:
    if (need_dquote != 0) {
LAB_0017d423:
      pcVar3 = (char *)dcgettext(0,"%s: first non-whitespace character is not `\"\'",5);
      builtin_error(pcVar3,string);
      return -1;
    }
LAB_0017d4bf:
    uVar5 = 0;
    if (startp != (int *)0x0) {
LAB_0017d403:
      *startp = ind;
      goto LAB_0017d405;
    }
    lVar2 = (long)ind;
    uVar4 = (uint)string[lVar2];
    if (uVar4 == 0) {
      return ind;
    }
  }
  else {
    if ((cVar6 == ' ') || (cVar6 == '\t')) {
      lVar2 = (long)(ind + 1);
      do {
        ind = (int)lVar2;
        cVar6 = string[lVar2];
        if (cVar6 == '\0') goto LAB_0017d4b7;
        lVar2 = lVar2 + 1;
      } while ((cVar6 == ' ') || (cVar6 == '\t'));
    }
    if ((cVar6 != '\"') && (need_dquote != 0)) goto LAB_0017d423;
    if ((cVar6 != '\"') && (cVar6 != '\'')) goto LAB_0017d4bf;
    uVar5 = (uint)cVar6;
    if (startp != (int *)0x0) {
      ind = (ind + 1) - (uint)(uVar5 == 0);
      goto LAB_0017d403;
    }
LAB_0017d405:
    lVar2 = (long)ind;
    uVar4 = (uint)string[lVar2];
    if (uVar4 == 0) goto LAB_0017d47d;
  }
  bVar1 = false;
  do {
    if (bVar1) {
      bVar1 = false;
    }
    else if (uVar4 == 0x5c) {
      bVar1 = true;
    }
    else if (uVar4 == uVar5) {
      return (int)lVar2;
    }
    ind = (int)lVar2 + 1;
    uVar4 = (uint)string[lVar2 + 1];
    lVar2 = lVar2 + 1;
  } while (uVar4 != 0);
LAB_0017d47d:
  if (uVar5 != 0) {
    pcVar3 = (char *)dcgettext(0,"no closing `%c\' in %s",5);
    builtin_error(pcVar3,(ulong)uVar5,string);
    ind = -1;
  }
  return ind;
}



ulong FUN_0017d391(long param_1,uint param_2,int param_3,uint *param_4)

{
  bool bVar1;
  long lVar2;
  undefined8 uVar3;
  int iVar4;
  ulong uVar5;
  int iVar6;
  char cVar7;
  
  cVar7 = *(char *)(param_1 + (int)param_2);
  if (cVar7 == '\0') {
LAB_0017d4b7:
    if (param_3 != 0) {
LAB_0017d423:
      uVar3 = dcgettext(0,"%s: first non-whitespace character is not `\"\'",5);
      builtin_error(uVar3,param_1);
      return 0xffffffff;
    }
LAB_0017d4bf:
    iVar6 = 0;
    if (param_4 != (uint *)0x0) {
LAB_0017d403:
      *param_4 = param_2;
      goto LAB_0017d405;
    }
    uVar5 = (ulong)(int)param_2;
    iVar4 = (int)*(char *)(param_1 + uVar5);
    if (iVar4 == 0) {
      return (ulong)param_2;
    }
  }
  else {
    if ((cVar7 == ' ') || (cVar7 == '\t')) {
      lVar2 = (long)(int)(param_2 + 1);
      do {
        param_2 = (uint)lVar2;
        cVar7 = *(char *)(param_1 + lVar2);
        if (cVar7 == '\0') goto LAB_0017d4b7;
        lVar2 = lVar2 + 1;
      } while ((cVar7 == ' ') || (cVar7 == '\t'));
    }
    if ((cVar7 != '\"') && (param_3 != 0)) goto LAB_0017d423;
    if ((cVar7 != '\"') && (cVar7 != '\'')) goto LAB_0017d4bf;
    iVar6 = (int)cVar7;
    if (param_4 != (uint *)0x0) {
      param_2 = (param_2 + 1) - (uint)(iVar6 == 0);
      goto LAB_0017d403;
    }
LAB_0017d405:
    uVar5 = (ulong)(int)param_2;
    iVar4 = (int)*(char *)(param_1 + uVar5);
    if (iVar4 == 0) goto LAB_0017d47d;
  }
  bVar1 = false;
  do {
    if (bVar1) {
      bVar1 = false;
    }
    else if (iVar4 == 0x5c) {
      bVar1 = true;
    }
    else if (iVar4 == iVar6) {
      return uVar5 & 0xffffffff;
    }
    param_2 = (int)uVar5 + 1;
    iVar4 = (int)*(char *)(param_1 + 1 + uVar5);
    uVar5 = uVar5 + 1;
  } while (iVar4 != 0);
LAB_0017d47d:
  uVar5 = (ulong)param_2;
  if (iVar6 != 0) {
    uVar3 = dcgettext(0,"no closing `%c\' in %s",5);
    builtin_error(uVar3,iVar6,param_1);
    uVar5 = 0xffffffff;
  }
  return uVar5;
}


PUSH RBP
PUSH RBX
SUB RSP,0x8
MOV RBX,RDI
MOVSXD RAX,ESI
MOVZX EDI,byte ptr [RDI + RAX*0x1]
TEST DIL,DIL
JZ 0x0017d4b7
CMP DIL,0x20
JZ 0x0017d3b6
CMP DIL,0x9
JNZ 0x0017d3da
LEA EAX,[RSI + 0x1]
CDQE
MOV ESI,EAX
MOVZX EDI,byte ptr [RBX + RAX*0x1]
TEST DIL,DIL
JZ 0x0017d4b7
ADD RAX,0x1
CMP DIL,0x20
JZ 0x0017d3bb
CMP DIL,0x9
JZ 0x0017d3bb
CMP DIL,0x22
JZ 0x0017d3e4
TEST EDX,EDX
JNZ 0x0017d423
CMP DIL,0x22
JZ 0x0017d3f4
CMP DIL,0x27
JNZ 0x0017d4bf
MOVSX EBP,DIL
TEST RCX,RCX
JZ 0x0017d405
CMP EBP,0x1
SBB ESI,-0x1
MOV dword ptr [RCX],ESI
MOVSXD RDX,ESI
MOVSX ECX,byte ptr [RBX + RDX*0x1]
TEST ECX,ECX
JZ 0x0017d47b
MOV EDI,0x0
MOV R8D,0x0
MOV R9D,0x1
JMP 0x0017d463
MOV EDX,0x5
LEA RSI,[0x1d6468]
MOV EDI,0x0
CALL 0x0012d350
MOV RSI,RBX
MOV RDI,RAX
MOV EAX,0x0
CALL 0x00189d93
MOV EAX,0xffffffff
JMP 0x0017d481
MOV EDI,R8D
LEA EAX,[RSI + 0x1]
MOVSX ECX,byte ptr [RBX + RDX*0x1 + 0x1]
ADD RDX,0x1
TEST ECX,ECX
JZ 0x0017d47d
MOV ESI,EDX
MOV EAX,EDX
TEST EDI,EDI
JNZ 0x0017d450
CMP ECX,0x5c
JZ 0x0017d476
CMP ECX,EBP
JNZ 0x0017d453
JMP 0x0017d481
MOV EDI,R9D
JMP 0x0017d453
MOV EAX,ESI
TEST EBP,EBP
JNZ 0x0017d488
ADD RSP,0x8
POP RBX
POP RBP
RET
MOV EDX,0x5
LEA RSI,[0x1d6095]
MOV EDI,0x0
CALL 0x0012d350
MOV RDX,RBX
MOV ESI,EBP
MOV RDI,RAX
MOV EAX,0x0
CALL 0x00189d93
MOV EAX,0xffffffff
JMP 0x0017d481
TEST EDX,EDX
JNZ 0x0017d423
MOV EBP,0x0
TEST RCX,RCX
JNZ 0x0017d403
MOVSXD RDX,ESI
MOVSX ECX,byte ptr [RBX + RDX*0x1]
MOV EAX,ESI
TEST ECX,ECX
JNZ 0x0017d410
JMP 0x0017d481
(translation_unit "ulong FUN_0017d391(long param_1,uint param_2,int param_3,uint *param_4)\n\n{\n  bool bVar1;\n  long lVar2;\n  undefined8 uVar3;\n  int iVar4;\n  ulong uVar5;\n  int iVar6;\n  char cVar7;\n  \n  cVar7 = *(char *)(param_1 + (int)param_2);\n  if (cVar7 == '\0') {\nLAB_0017d4b7:\n    if (param_3 != 0) {\nLAB_0017d423:\n      uVar3 = dcgettext(0,"%s: first non-whitespace character is not `\"\'",5);\n      builtin_error(uVar3,param_1);\n      return 0xffffffff;\n    }\nLAB_0017d4bf:\n    iVar6 = 0;\n    if (param_4 != (uint *)0x0) {\nLAB_0017d403:\n      *param_4 = param_2;\n      goto LAB_0017d405;\n    }\n    uVar5 = (ulong)(int)param_2;\n    iVar4 = (int)*(char *)(param_1 + uVar5);\n    if (iVar4 == 0) {\n      return (ulong)param_2;\n    }\n  }\n  else {\n    if ((cVar7 == ' ') || (cVar7 == '\t')) {\n      lVar2 = (long)(int)(param_2 + 1);\n      do {\n        param_2 = (uint)lVar2;\n        cVar7 = *(char *)(param_1 + lVar2);\n        if (cVar7 == '\0') goto LAB_0017d4b7;\n        lVar2 = lVar2 + 1;\n      } while ((cVar7 == ' ') || (cVar7 == '\t'));\n    }\n    if ((cVar7 != '\"') && (param_3 != 0)) goto LAB_0017d423;\n    if ((cVar7 != '\"') && (cVar7 != '\'')) goto LAB_0017d4bf;\n    iVar6 = (int)cVar7;\n    if (param_4 != (uint *)0x0) {\n      param_2 = (param_2 + 1) - (uint)(iVar6 == 0);\n      goto LAB_0017d403;\n    }\nLAB_0017d405:\n    uVar5 = (ulong)(int)param_2;\n    iVar4 = (int)*(char *)(param_1 + uVar5);\n    if (iVar4 == 0) goto LAB_0017d47d;\n  }\n  bVar1 = false;\n  do {\n    if (bVar1) {\n      bVar1 = false;\n    }\n    else if (iVar4 == 0x5c) {\n      bVar1 = true;\n    }\n    else if (iVar4 == iVar6) {\n      return uVar5 & 0xffffffff;\n    }\n    param_2 = (int)uVar5 + 1;\n    iVar4 = (int)*(char *)(param_1 + 1 + uVar5);\n    uVar5 = uVar5 + 1;\n  } while (iVar4 != 0);\nLAB_0017d47d:\n  uVar5 = (ulong)param_2;\n  if (iVar6 != 0) {\n    uVar3 = dcgettext(0,"no closing `%c\' in %s",5);\n    builtin_error(uVar3,iVar6,param_1);\n    uVar5 = 0xffffffff;\n  }\n  return uVar5;\n}\n\n" (function_definition "ulong FUN_0017d391(long param_1,uint param_2,int param_3,uint *param_4)\n\n{\n  bool bVar1;\n  long lVar2;\n  undefined8 uVar3;\n  int iVar4;\n  ulong uVar5;\n  int iVar6;\n  char cVar7;\n  \n  cVar7 = *(char *)(param_1 + (int)param_2);\n  if (cVar7 == '\0') {\nLAB_0017d4b7:\n    if (param_3 != 0) {\nLAB_0017d423:\n      uVar3 = dcgettext(0,"%s: first non-whitespace character is not `\"\'",5);\n      builtin_error(uVar3,param_1);\n      return 0xffffffff;\n    }\nLAB_0017d4bf:\n    iVar6 = 0;\n    if (param_4 != (uint *)0x0) {\nLAB_0017d403:\n      *param_4 = param_2;\n      goto LAB_0017d405;\n    }\n    uVar5 = (ulong)(int)param_2;\n    iVar4 = (int)*(char *)(param_1 + uVar5);\n    if (iVar4 == 0) {\n      return (ulong)param_2;\n    }\n  }\n  else {\n    if ((cVar7 == ' ') || (cVar7 == '\t')) {\n      lVar2 = (long)(int)(param_2 + 1);\n      do {\n        param_2 = (uint)lVar2;\n        cVar7 = *(char *)(param_1 + lVar2);\n        if (cVar7 == '\0') goto LAB_0017d4b7;\n        lVar2 = lVar2 + 1;\n      } while ((cVar7 == ' ') || (cVar7 == '\t'));\n    }\n    if ((cVar7 != '\"') && (param_3 != 0)) goto LAB_0017d423;\n    if ((cVar7 != '\"') && (cVar7 != '\'')) goto LAB_0017d4bf;\n    iVar6 = (int)cVar7;\n    if (param_4 != (uint *)0x0) {\n      param_2 = (param_2 + 1) - (uint)(iVar6 == 0);\n      goto LAB_0017d403;\n    }\nLAB_0017d405:\n    uVar5 = (ulong)(int)param_2;\n    iVar4 = (int)*(char *)(param_1 + uVar5);\n    if (iVar4 == 0) goto LAB_0017d47d;\n  }\n  bVar1 = false;\n  do {\n    if (bVar1) {\n      bVar1 = false;\n    }\n    else if (iVar4 == 0x5c) {\n      bVar1 = true;\n    }\n    else if (iVar4 == iVar6) {\n      return uVar5 & 0xffffffff;\n    }\n    param_2 = (int)uVar5 + 1;\n    iVar4 = (int)*(char *)(param_1 + 1 + uVar5);\n    uVar5 = uVar5 + 1;\n  } while (iVar4 != 0);\nLAB_0017d47d:\n  uVar5 = (ulong)param_2;\n  if (iVar6 != 0) {\n    uVar3 = dcgettext(0,"no closing `%c\' in %s",5);\n    builtin_error(uVar3,iVar6,param_1);\n    uVar5 = 0xffffffff;\n  }\n  return uVar5;\n}" type_identifier (function_declarator "FUN_0017d391(long param_1,uint param_2,int param_3,uint *param_4)" identifier (parameter_list "(long param_1,uint param_2,int param_3,uint *param_4)" ( (parameter_declaration "long param_1" (sized_type_specifier "long" long) identifier) , (parameter_declaration "uint param_2" type_identifier identifier) , (parameter_declaration "int param_3" primitive_type identifier) , (parameter_declaration "uint *param_4" type_identifier (pointer_declarator "*param_4" * identifier)) ))) (compound_statement "{\n  bool bVar1;\n  long lVar2;\n  undefined8 uVar3;\n  int iVar4;\n  ulong uVar5;\n  int iVar6;\n  char cVar7;\n  \n  cVar7 = *(char *)(param_1 + (int)param_2);\n  if (cVar7 == '\0') {\nLAB_0017d4b7:\n    if (param_3 != 0) {\nLAB_0017d423:\n      uVar3 = dcgettext(0,"%s: first non-whitespace character is not `\"\'",5);\n      builtin_error(uVar3,param_1);\n      return 0xffffffff;\n    }\nLAB_0017d4bf:\n    iVar6 = 0;\n    if (param_4 != (uint *)0x0) {\nLAB_0017d403:\n      *param_4 = param_2;\n      goto LAB_0017d405;\n    }\n    uVar5 = (ulong)(int)param_2;\n    iVar4 = (int)*(char *)(param_1 + uVar5);\n    if (iVar4 == 0) {\n      return (ulong)param_2;\n    }\n  }\n  else {\n    if ((cVar7 == ' ') || (cVar7 == '\t')) {\n      lVar2 = (long)(int)(param_2 + 1);\n      do {\n        param_2 = (uint)lVar2;\n        cVar7 = *(char *)(param_1 + lVar2);\n        if (cVar7 == '\0') goto LAB_0017d4b7;\n        lVar2 = lVar2 + 1;\n      } while ((cVar7 == ' ') || (cVar7 == '\t'));\n    }\n    if ((cVar7 != '\"') && (param_3 != 0)) goto LAB_0017d423;\n    if ((cVar7 != '\"') && (cVar7 != '\'')) goto LAB_0017d4bf;\n    iVar6 = (int)cVar7;\n    if (param_4 != (uint *)0x0) {\n      param_2 = (param_2 + 1) - (uint)(iVar6 == 0);\n      goto LAB_0017d403;\n    }\nLAB_0017d405:\n    uVar5 = (ulong)(int)param_2;\n    iVar4 = (int)*(char *)(param_1 + uVar5);\n    if (iVar4 == 0) goto LAB_0017d47d;\n  }\n  bVar1 = false;\n  do {\n    if (bVar1) {\n      bVar1 = false;\n    }\n    else if (iVar4 == 0x5c) {\n      bVar1 = true;\n    }\n    else if (iVar4 == iVar6) {\n      return uVar5 & 0xffffffff;\n    }\n    param_2 = (int)uVar5 + 1;\n    iVar4 = (int)*(char *)(param_1 + 1 + uVar5);\n    uVar5 = uVar5 + 1;\n  } while (iVar4 != 0);\nLAB_0017d47d:\n  uVar5 = (ulong)param_2;\n  if (iVar6 != 0) {\n    uVar3 = dcgettext(0,"no closing `%c\' in %s",5);\n    builtin_error(uVar3,iVar6,param_1);\n    uVar5 = 0xffffffff;\n  }\n  return uVar5;\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "long lVar2;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 uVar3;" type_identifier identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "ulong uVar5;" type_identifier identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "char cVar7;" primitive_type identifier ;) (expression_statement "cVar7 = *(char *)(param_1 + (int)param_2);" (assignment_expression "cVar7 = *(char *)(param_1 + (int)param_2)" identifier = (pointer_expression "*(char *)(param_1 + (int)param_2)" * (cast_expression "(char *)(param_1 + (int)param_2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + (int)param_2)" ( (binary_expression "param_1 + (int)param_2" identifier + (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier)) ))))) ;) (if_statement "if (cVar7 == '\0') {\nLAB_0017d4b7:\n    if (param_3 != 0) {\nLAB_0017d423:\n      uVar3 = dcgettext(0,"%s: first non-whitespace character is not `\"\'",5);\n      builtin_error(uVar3,param_1);\n      return 0xffffffff;\n    }\nLAB_0017d4bf:\n    iVar6 = 0;\n    if (param_4 != (uint *)0x0) {\nLAB_0017d403:\n      *param_4 = param_2;\n      goto LAB_0017d405;\n    }\n    uVar5 = (ulong)(int)param_2;\n    iVar4 = (int)*(char *)(param_1 + uVar5);\n    if (iVar4 == 0) {\n      return (ulong)param_2;\n    }\n  }\n  else {\n    if ((cVar7 == ' ') || (cVar7 == '\t')) {\n      lVar2 = (long)(int)(param_2 + 1);\n      do {\n        param_2 = (uint)lVar2;\n        cVar7 = *(char *)(param_1 + lVar2);\n        if (cVar7 == '\0') goto LAB_0017d4b7;\n        lVar2 = lVar2 + 1;\n      } while ((cVar7 == ' ') || (cVar7 == '\t'));\n    }\n    if ((cVar7 != '\"') && (param_3 != 0)) goto LAB_0017d423;\n    if ((cVar7 != '\"') && (cVar7 != '\'')) goto LAB_0017d4bf;\n    iVar6 = (int)cVar7;\n    if (param_4 != (uint *)0x0) {\n      param_2 = (param_2 + 1) - (uint)(iVar6 == 0);\n      goto LAB_0017d403;\n    }\nLAB_0017d405:\n    uVar5 = (ulong)(int)param_2;\n    iVar4 = (int)*(char *)(param_1 + uVar5);\n    if (iVar4 == 0) goto LAB_0017d47d;\n  }" if (parenthesized_expression "(cVar7 == '\0')" ( (binary_expression "cVar7 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\nLAB_0017d4b7:\n    if (param_3 != 0) {\nLAB_0017d423:\n      uVar3 = dcgettext(0,"%s: first non-whitespace character is not `\"\'",5);\n      builtin_error(uVar3,param_1);\n      return 0xffffffff;\n    }\nLAB_0017d4bf:\n    iVar6 = 0;\n    if (param_4 != (uint *)0x0) {\nLAB_0017d403:\n      *param_4 = param_2;\n      goto LAB_0017d405;\n    }\n    uVar5 = (ulong)(int)param_2;\n    iVar4 = (int)*(char *)(param_1 + uVar5);\n    if (iVar4 == 0) {\n      return (ulong)param_2;\n    }\n  }" { (labeled_statement "LAB_0017d4b7:\n    if (param_3 != 0) {\nLAB_0017d423:\n      uVar3 = dcgettext(0,"%s: first non-whitespace character is not `\"\'",5);\n      builtin_error(uVar3,param_1);\n      return 0xffffffff;\n    }" statement_identifier : (if_statement "if (param_3 != 0) {\nLAB_0017d423:\n      uVar3 = dcgettext(0,"%s: first non-whitespace character is not `\"\'",5);\n      builtin_error(uVar3,param_1);\n      return 0xffffffff;\n    }" if (parenthesized_expression "(param_3 != 0)" ( (binary_expression "param_3 != 0" identifier != number_literal) )) (compound_statement "{\nLAB_0017d423:\n      uVar3 = dcgettext(0,"%s: first non-whitespace character is not `\"\'",5);\n      builtin_error(uVar3,param_1);\n      return 0xffffffff;\n    }" { (labeled_statement "LAB_0017d423:\n      uVar3 = dcgettext(0,"%s: first non-whitespace character is not `\"\'",5);" statement_identifier : (expression_statement "uVar3 = dcgettext(0,"%s: first non-whitespace character is not `\"\'",5);" (assignment_expression "uVar3 = dcgettext(0,"%s: first non-whitespace character is not `\"\'",5)" identifier = (call_expression "dcgettext(0,"%s: first non-whitespace character is not `\"\'",5)" identifier (argument_list "(0,"%s: first non-whitespace character is not `\"\'",5)" ( number_literal , (string_literal ""%s: first non-whitespace character is not `\"\'"" " string_content escape_sequence escape_sequence ") , number_literal )))) ;)) (expression_statement "builtin_error(uVar3,param_1);" (call_expression "builtin_error(uVar3,param_1)" identifier (argument_list "(uVar3,param_1)" ( identifier , identifier ))) ;) (return_statement "return 0xffffffff;" return number_literal ;) }))) (labeled_statement "LAB_0017d4bf:\n    iVar6 = 0;" statement_identifier : (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" identifier = number_literal) ;)) (if_statement "if (param_4 != (uint *)0x0) {\nLAB_0017d403:\n      *param_4 = param_2;\n      goto LAB_0017d405;\n    }" if (parenthesized_expression "(param_4 != (uint *)0x0)" ( (binary_expression "param_4 != (uint *)0x0" identifier != (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_0017d403:\n      *param_4 = param_2;\n      goto LAB_0017d405;\n    }" { (labeled_statement "LAB_0017d403:\n      *param_4 = param_2;" statement_identifier : (expression_statement "*param_4 = param_2;" (assignment_expression "*param_4 = param_2" (pointer_expression "*param_4" * identifier) = identifier) ;)) (goto_statement "goto LAB_0017d405;" goto statement_identifier ;) })) (expression_statement "uVar5 = (ulong)(int)param_2;" (assignment_expression "uVar5 = (ulong)(int)param_2" identifier = (cast_expression "(ulong)(int)param_2" ( (type_descriptor "ulong" type_identifier) ) (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "iVar4 = (int)*(char *)(param_1 + uVar5);" (assignment_expression "iVar4 = (int)*(char *)(param_1 + uVar5)" identifier = (cast_expression "(int)*(char *)(param_1 + uVar5)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(char *)(param_1 + uVar5)" * (cast_expression "(char *)(param_1 + uVar5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + uVar5)" ( (binary_expression "param_1 + uVar5" identifier + identifier) )))))) ;) (if_statement "if (iVar4 == 0) {\n      return (ulong)param_2;\n    }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n      return (ulong)param_2;\n    }" { (return_statement "return (ulong)param_2;" return (cast_expression "(ulong)param_2" ( (type_descriptor "ulong" type_identifier) ) identifier) ;) })) }) (else_clause "else {\n    if ((cVar7 == ' ') || (cVar7 == '\t')) {\n      lVar2 = (long)(int)(param_2 + 1);\n      do {\n        param_2 = (uint)lVar2;\n        cVar7 = *(char *)(param_1 + lVar2);\n        if (cVar7 == '\0') goto LAB_0017d4b7;\n        lVar2 = lVar2 + 1;\n      } while ((cVar7 == ' ') || (cVar7 == '\t'));\n    }\n    if ((cVar7 != '\"') && (param_3 != 0)) goto LAB_0017d423;\n    if ((cVar7 != '\"') && (cVar7 != '\'')) goto LAB_0017d4bf;\n    iVar6 = (int)cVar7;\n    if (param_4 != (uint *)0x0) {\n      param_2 = (param_2 + 1) - (uint)(iVar6 == 0);\n      goto LAB_0017d403;\n    }\nLAB_0017d405:\n    uVar5 = (ulong)(int)param_2;\n    iVar4 = (int)*(char *)(param_1 + uVar5);\n    if (iVar4 == 0) goto LAB_0017d47d;\n  }" else (compound_statement "{\n    if ((cVar7 == ' ') || (cVar7 == '\t')) {\n      lVar2 = (long)(int)(param_2 + 1);\n      do {\n        param_2 = (uint)lVar2;\n        cVar7 = *(char *)(param_1 + lVar2);\n        if (cVar7 == '\0') goto LAB_0017d4b7;\n        lVar2 = lVar2 + 1;\n      } while ((cVar7 == ' ') || (cVar7 == '\t'));\n    }\n    if ((cVar7 != '\"') && (param_3 != 0)) goto LAB_0017d423;\n    if ((cVar7 != '\"') && (cVar7 != '\'')) goto LAB_0017d4bf;\n    iVar6 = (int)cVar7;\n    if (param_4 != (uint *)0x0) {\n      param_2 = (param_2 + 1) - (uint)(iVar6 == 0);\n      goto LAB_0017d403;\n    }\nLAB_0017d405:\n    uVar5 = (ulong)(int)param_2;\n    iVar4 = (int)*(char *)(param_1 + uVar5);\n    if (iVar4 == 0) goto LAB_0017d47d;\n  }" { (if_statement "if ((cVar7 == ' ') || (cVar7 == '\t')) {\n      lVar2 = (long)(int)(param_2 + 1);\n      do {\n        param_2 = (uint)lVar2;\n        cVar7 = *(char *)(param_1 + lVar2);\n        if (cVar7 == '\0') goto LAB_0017d4b7;\n        lVar2 = lVar2 + 1;\n      } while ((cVar7 == ' ') || (cVar7 == '\t'));\n    }" if (parenthesized_expression "((cVar7 == ' ') || (cVar7 == '\t'))" ( (binary_expression "(cVar7 == ' ') || (cVar7 == '\t')" (parenthesized_expression "(cVar7 == ' ')" ( (binary_expression "cVar7 == ' '" identifier == (char_literal "' '" ' character ')) )) || (parenthesized_expression "(cVar7 == '\t')" ( (binary_expression "cVar7 == '\t'" identifier == (char_literal "'\t'" ' escape_sequence ')) ))) )) (compound_statement "{\n      lVar2 = (long)(int)(param_2 + 1);\n      do {\n        param_2 = (uint)lVar2;\n        cVar7 = *(char *)(param_1 + lVar2);\n        if (cVar7 == '\0') goto LAB_0017d4b7;\n        lVar2 = lVar2 + 1;\n      } while ((cVar7 == ' ') || (cVar7 == '\t'));\n    }" { (expression_statement "lVar2 = (long)(int)(param_2 + 1);" (assignment_expression "lVar2 = (long)(int)(param_2 + 1)" identifier = (cast_expression "(long)(int)(param_2 + 1)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (cast_expression "(int)(param_2 + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(param_2 + 1)" ( (binary_expression "param_2 + 1" identifier + number_literal) ))))) ;) (do_statement "do {\n        param_2 = (uint)lVar2;\n        cVar7 = *(char *)(param_1 + lVar2);\n        if (cVar7 == '\0') goto LAB_0017d4b7;\n        lVar2 = lVar2 + 1;\n      } while ((cVar7 == ' ') || (cVar7 == '\t'));" do (compound_statement "{\n        param_2 = (uint)lVar2;\n        cVar7 = *(char *)(param_1 + lVar2);\n        if (cVar7 == '\0') goto LAB_0017d4b7;\n        lVar2 = lVar2 + 1;\n      }" { (expression_statement "param_2 = (uint)lVar2;" (assignment_expression "param_2 = (uint)lVar2" identifier = (cast_expression "(uint)lVar2" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "cVar7 = *(char *)(param_1 + lVar2);" (assignment_expression "cVar7 = *(char *)(param_1 + lVar2)" identifier = (pointer_expression "*(char *)(param_1 + lVar2)" * (cast_expression "(char *)(param_1 + lVar2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + lVar2)" ( (binary_expression "param_1 + lVar2" identifier + identifier) ))))) ;) (if_statement "if (cVar7 == '\0') goto LAB_0017d4b7;" if (parenthesized_expression "(cVar7 == '\0')" ( (binary_expression "cVar7 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_0017d4b7;" goto statement_identifier ;)) (expression_statement "lVar2 = lVar2 + 1;" (assignment_expression "lVar2 = lVar2 + 1" identifier = (binary_expression "lVar2 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "((cVar7 == ' ') || (cVar7 == '\t'))" ( (binary_expression "(cVar7 == ' ') || (cVar7 == '\t')" (parenthesized_expression "(cVar7 == ' ')" ( (binary_expression "cVar7 == ' '" identifier == (char_literal "' '" ' character ')) )) || (parenthesized_expression "(cVar7 == '\t')" ( (binary_expression "cVar7 == '\t'" identifier == (char_literal "'\t'" ' escape_sequence ')) ))) )) ;) })) (if_statement "if ((cVar7 != '\"') && (param_3 != 0)) goto LAB_0017d423;" if (parenthesized_expression "((cVar7 != '\"') && (param_3 != 0))" ( (binary_expression "(cVar7 != '\"') && (param_3 != 0)" (parenthesized_expression "(cVar7 != '\"')" ( (binary_expression "cVar7 != '\"'" identifier != (char_literal "'\"'" ' escape_sequence ')) )) && (parenthesized_expression "(param_3 != 0)" ( (binary_expression "param_3 != 0" identifier != number_literal) ))) )) (goto_statement "goto LAB_0017d423;" goto statement_identifier ;)) (if_statement "if ((cVar7 != '\"') && (cVar7 != '\'')) goto LAB_0017d4bf;" if (parenthesized_expression "((cVar7 != '\"') && (cVar7 != '\''))" ( (binary_expression "(cVar7 != '\"') && (cVar7 != '\'')" (parenthesized_expression "(cVar7 != '\"')" ( (binary_expression "cVar7 != '\"'" identifier != (char_literal "'\"'" ' escape_sequence ')) )) && (parenthesized_expression "(cVar7 != '\'')" ( (binary_expression "cVar7 != '\''" identifier != (char_literal "'\''" ' escape_sequence ')) ))) )) (goto_statement "goto LAB_0017d4bf;" goto statement_identifier ;)) (expression_statement "iVar6 = (int)cVar7;" (assignment_expression "iVar6 = (int)cVar7" identifier = (cast_expression "(int)cVar7" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (if_statement "if (param_4 != (uint *)0x0) {\n      param_2 = (param_2 + 1) - (uint)(iVar6 == 0);\n      goto LAB_0017d403;\n    }" if (parenthesized_expression "(param_4 != (uint *)0x0)" ( (binary_expression "param_4 != (uint *)0x0" identifier != (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      param_2 = (param_2 + 1) - (uint)(iVar6 == 0);\n      goto LAB_0017d403;\n    }" { (expression_statement "param_2 = (param_2 + 1) - (uint)(iVar6 == 0);" (assignment_expression "param_2 = (param_2 + 1) - (uint)(iVar6 == 0)" identifier = (binary_expression "(param_2 + 1) - (uint)(iVar6 == 0)" (parenthesized_expression "(param_2 + 1)" ( (binary_expression "param_2 + 1" identifier + number_literal) )) - (call_expression "(uint)(iVar6 == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) ))))) ;) (goto_statement "goto LAB_0017d403;" goto statement_identifier ;) })) (labeled_statement "LAB_0017d405:\n    uVar5 = (ulong)(int)param_2;" statement_identifier : (expression_statement "uVar5 = (ulong)(int)param_2;" (assignment_expression "uVar5 = (ulong)(int)param_2" identifier = (cast_expression "(ulong)(int)param_2" ( (type_descriptor "ulong" type_identifier) ) (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier))) ;)) (expression_statement "iVar4 = (int)*(char *)(param_1 + uVar5);" (assignment_expression "iVar4 = (int)*(char *)(param_1 + uVar5)" identifier = (cast_expression "(int)*(char *)(param_1 + uVar5)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(char *)(param_1 + uVar5)" * (cast_expression "(char *)(param_1 + uVar5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + uVar5)" ( (binary_expression "param_1 + uVar5" identifier + identifier) )))))) ;) (if_statement "if (iVar4 == 0) goto LAB_0017d47d;" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0017d47d;" goto statement_identifier ;)) }))) (expression_statement "bVar1 = false;" (assignment_expression "bVar1 = false" identifier = false) ;) (do_statement "do {\n    if (bVar1) {\n      bVar1 = false;\n    }\n    else if (iVar4 == 0x5c) {\n      bVar1 = true;\n    }\n    else if (iVar4 == iVar6) {\n      return uVar5 & 0xffffffff;\n    }\n    param_2 = (int)uVar5 + 1;\n    iVar4 = (int)*(char *)(param_1 + 1 + uVar5);\n    uVar5 = uVar5 + 1;\n  } while (iVar4 != 0);" do (compound_statement "{\n    if (bVar1) {\n      bVar1 = false;\n    }\n    else if (iVar4 == 0x5c) {\n      bVar1 = true;\n    }\n    else if (iVar4 == iVar6) {\n      return uVar5 & 0xffffffff;\n    }\n    param_2 = (int)uVar5 + 1;\n    iVar4 = (int)*(char *)(param_1 + 1 + uVar5);\n    uVar5 = uVar5 + 1;\n  }" { (if_statement "if (bVar1) {\n      bVar1 = false;\n    }\n    else if (iVar4 == 0x5c) {\n      bVar1 = true;\n    }\n    else if (iVar4 == iVar6) {\n      return uVar5 & 0xffffffff;\n    }" if (parenthesized_expression "(bVar1)" ( identifier )) (compound_statement "{\n      bVar1 = false;\n    }" { (expression_statement "bVar1 = false;" (assignment_expression "bVar1 = false" identifier = false) ;) }) (else_clause "else if (iVar4 == 0x5c) {\n      bVar1 = true;\n    }\n    else if (iVar4 == iVar6) {\n      return uVar5 & 0xffffffff;\n    }" else (if_statement "if (iVar4 == 0x5c) {\n      bVar1 = true;\n    }\n    else if (iVar4 == iVar6) {\n      return uVar5 & 0xffffffff;\n    }" if (parenthesized_expression "(iVar4 == 0x5c)" ( (binary_expression "iVar4 == 0x5c" identifier == number_literal) )) (compound_statement "{\n      bVar1 = true;\n    }" { (expression_statement "bVar1 = true;" (assignment_expression "bVar1 = true" identifier = true) ;) }) (else_clause "else if (iVar4 == iVar6) {\n      return uVar5 & 0xffffffff;\n    }" else (if_statement "if (iVar4 == iVar6) {\n      return uVar5 & 0xffffffff;\n    }" if (parenthesized_expression "(iVar4 == iVar6)" ( (binary_expression "iVar4 == iVar6" identifier == identifier) )) (compound_statement "{\n      return uVar5 & 0xffffffff;\n    }" { (return_statement "return uVar5 & 0xffffffff;" return (binary_expression "uVar5 & 0xffffffff" identifier & number_literal) ;) })))))) (expression_statement "param_2 = (int)uVar5 + 1;" (assignment_expression "param_2 = (int)uVar5 + 1" identifier = (binary_expression "(int)uVar5 + 1" (cast_expression "(int)uVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) (expression_statement "iVar4 = (int)*(char *)(param_1 + 1 + uVar5);" (assignment_expression "iVar4 = (int)*(char *)(param_1 + 1 + uVar5)" identifier = (cast_expression "(int)*(char *)(param_1 + 1 + uVar5)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(char *)(param_1 + 1 + uVar5)" * (cast_expression "(char *)(param_1 + 1 + uVar5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 1 + uVar5)" ( (binary_expression "param_1 + 1 + uVar5" (binary_expression "param_1 + 1" identifier + number_literal) + identifier) )))))) ;) (expression_statement "uVar5 = uVar5 + 1;" (assignment_expression "uVar5 = uVar5 + 1" identifier = (binary_expression "uVar5 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) ;) (labeled_statement "LAB_0017d47d:\n  uVar5 = (ulong)param_2;" statement_identifier : (expression_statement "uVar5 = (ulong)param_2;" (assignment_expression "uVar5 = (ulong)param_2" identifier = (cast_expression "(ulong)param_2" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;)) (if_statement "if (iVar6 != 0) {\n    uVar3 = dcgettext(0,"no closing `%c\' in %s",5);\n    builtin_error(uVar3,iVar6,param_1);\n    uVar5 = 0xffffffff;\n  }" if (parenthesized_expression "(iVar6 != 0)" ( (binary_expression "iVar6 != 0" identifier != number_literal) )) (compound_statement "{\n    uVar3 = dcgettext(0,"no closing `%c\' in %s",5);\n    builtin_error(uVar3,iVar6,param_1);\n    uVar5 = 0xffffffff;\n  }" { (expression_statement "uVar3 = dcgettext(0,"no closing `%c\' in %s",5);" (assignment_expression "uVar3 = dcgettext(0,"no closing `%c\' in %s",5)" identifier = (call_expression "dcgettext(0,"no closing `%c\' in %s",5)" identifier (argument_list "(0,"no closing `%c\' in %s",5)" ( number_literal , (string_literal ""no closing `%c\' in %s"" " string_content escape_sequence string_content ") , number_literal )))) ;) (expression_statement "builtin_error(uVar3,iVar6,param_1);" (call_expression "builtin_error(uVar3,iVar6,param_1)" identifier (argument_list "(uVar3,iVar6,param_1)" ( identifier , identifier , identifier ))) ;) (expression_statement "uVar5 = 0xffffffff;" (assignment_expression "uVar5 = 0xffffffff" identifier = number_literal) ;) })) (return_statement "return uVar5;" return identifier ;) })))
(translation_unit "int isolate_sequence(char *string,int ind,int need_dquote,int *startp)\n\n{\n  bool bVar1;\n  long lVar2;\n  char *pcVar3;\n  uint uVar4;\n  uint uVar5;\n  char cVar6;\n  \n  cVar6 = string[ind];\n  if (cVar6 == '\0') {\nLAB_0017d4b7:\n    if (need_dquote != 0) {\nLAB_0017d423:\n      pcVar3 = (char *)dcgettext(0,"%s: first non-whitespace character is not `\"\'",5);\n      builtin_error(pcVar3,string);\n      return -1;\n    }\nLAB_0017d4bf:\n    uVar5 = 0;\n    if (startp != (int *)0x0) {\nLAB_0017d403:\n      *startp = ind;\n      goto LAB_0017d405;\n    }\n    lVar2 = (long)ind;\n    uVar4 = (uint)string[lVar2];\n    if (uVar4 == 0) {\n      return ind;\n    }\n  }\n  else {\n    if ((cVar6 == ' ') || (cVar6 == '\t')) {\n      lVar2 = (long)(ind + 1);\n      do {\n        ind = (int)lVar2;\n        cVar6 = string[lVar2];\n        if (cVar6 == '\0') goto LAB_0017d4b7;\n        lVar2 = lVar2 + 1;\n      } while ((cVar6 == ' ') || (cVar6 == '\t'));\n    }\n    if ((cVar6 != '\"') && (need_dquote != 0)) goto LAB_0017d423;\n    if ((cVar6 != '\"') && (cVar6 != '\'')) goto LAB_0017d4bf;\n    uVar5 = (uint)cVar6;\n    if (startp != (int *)0x0) {\n      ind = (ind + 1) - (uint)(uVar5 == 0);\n      goto LAB_0017d403;\n    }\nLAB_0017d405:\n    lVar2 = (long)ind;\n    uVar4 = (uint)string[lVar2];\n    if (uVar4 == 0) goto LAB_0017d47d;\n  }\n  bVar1 = false;\n  do {\n    if (bVar1) {\n      bVar1 = false;\n    }\n    else if (uVar4 == 0x5c) {\n      bVar1 = true;\n    }\n    else if (uVar4 == uVar5) {\n      return (int)lVar2;\n    }\n    ind = (int)lVar2 + 1;\n    uVar4 = (uint)string[lVar2 + 1];\n    lVar2 = lVar2 + 1;\n  } while (uVar4 != 0);\nLAB_0017d47d:\n  if (uVar5 != 0) {\n    pcVar3 = (char *)dcgettext(0,"no closing `%c\' in %s",5);\n    builtin_error(pcVar3,(ulong)uVar5,string);\n    ind = -1;\n  }\n  return ind;\n}\n\n" (function_definition "int isolate_sequence(char *string,int ind,int need_dquote,int *startp)\n\n{\n  bool bVar1;\n  long lVar2;\n  char *pcVar3;\n  uint uVar4;\n  uint uVar5;\n  char cVar6;\n  \n  cVar6 = string[ind];\n  if (cVar6 == '\0') {\nLAB_0017d4b7:\n    if (need_dquote != 0) {\nLAB_0017d423:\n      pcVar3 = (char *)dcgettext(0,"%s: first non-whitespace character is not `\"\'",5);\n      builtin_error(pcVar3,string);\n      return -1;\n    }\nLAB_0017d4bf:\n    uVar5 = 0;\n    if (startp != (int *)0x0) {\nLAB_0017d403:\n      *startp = ind;\n      goto LAB_0017d405;\n    }\n    lVar2 = (long)ind;\n    uVar4 = (uint)string[lVar2];\n    if (uVar4 == 0) {\n      return ind;\n    }\n  }\n  else {\n    if ((cVar6 == ' ') || (cVar6 == '\t')) {\n      lVar2 = (long)(ind + 1);\n      do {\n        ind = (int)lVar2;\n        cVar6 = string[lVar2];\n        if (cVar6 == '\0') goto LAB_0017d4b7;\n        lVar2 = lVar2 + 1;\n      } while ((cVar6 == ' ') || (cVar6 == '\t'));\n    }\n    if ((cVar6 != '\"') && (need_dquote != 0)) goto LAB_0017d423;\n    if ((cVar6 != '\"') && (cVar6 != '\'')) goto LAB_0017d4bf;\n    uVar5 = (uint)cVar6;\n    if (startp != (int *)0x0) {\n      ind = (ind + 1) - (uint)(uVar5 == 0);\n      goto LAB_0017d403;\n    }\nLAB_0017d405:\n    lVar2 = (long)ind;\n    uVar4 = (uint)string[lVar2];\n    if (uVar4 == 0) goto LAB_0017d47d;\n  }\n  bVar1 = false;\n  do {\n    if (bVar1) {\n      bVar1 = false;\n    }\n    else if (uVar4 == 0x5c) {\n      bVar1 = true;\n    }\n    else if (uVar4 == uVar5) {\n      return (int)lVar2;\n    }\n    ind = (int)lVar2 + 1;\n    uVar4 = (uint)string[lVar2 + 1];\n    lVar2 = lVar2 + 1;\n  } while (uVar4 != 0);\nLAB_0017d47d:\n  if (uVar5 != 0) {\n    pcVar3 = (char *)dcgettext(0,"no closing `%c\' in %s",5);\n    builtin_error(pcVar3,(ulong)uVar5,string);\n    ind = -1;\n  }\n  return ind;\n}" primitive_type (function_declarator "isolate_sequence(char *string,int ind,int need_dquote,int *startp)" identifier (parameter_list "(char *string,int ind,int need_dquote,int *startp)" ( (parameter_declaration "char *string" primitive_type (pointer_declarator "*string" * identifier)) , (parameter_declaration "int ind" primitive_type identifier) , (parameter_declaration "int need_dquote" primitive_type identifier) , (parameter_declaration "int *startp" primitive_type (pointer_declarator "*startp" * identifier)) ))) (compound_statement "{\n  bool bVar1;\n  long lVar2;\n  char *pcVar3;\n  uint uVar4;\n  uint uVar5;\n  char cVar6;\n  \n  cVar6 = string[ind];\n  if (cVar6 == '\0') {\nLAB_0017d4b7:\n    if (need_dquote != 0) {\nLAB_0017d423:\n      pcVar3 = (char *)dcgettext(0,"%s: first non-whitespace character is not `\"\'",5);\n      builtin_error(pcVar3,string);\n      return -1;\n    }\nLAB_0017d4bf:\n    uVar5 = 0;\n    if (startp != (int *)0x0) {\nLAB_0017d403:\n      *startp = ind;\n      goto LAB_0017d405;\n    }\n    lVar2 = (long)ind;\n    uVar4 = (uint)string[lVar2];\n    if (uVar4 == 0) {\n      return ind;\n    }\n  }\n  else {\n    if ((cVar6 == ' ') || (cVar6 == '\t')) {\n      lVar2 = (long)(ind + 1);\n      do {\n        ind = (int)lVar2;\n        cVar6 = string[lVar2];\n        if (cVar6 == '\0') goto LAB_0017d4b7;\n        lVar2 = lVar2 + 1;\n      } while ((cVar6 == ' ') || (cVar6 == '\t'));\n    }\n    if ((cVar6 != '\"') && (need_dquote != 0)) goto LAB_0017d423;\n    if ((cVar6 != '\"') && (cVar6 != '\'')) goto LAB_0017d4bf;\n    uVar5 = (uint)cVar6;\n    if (startp != (int *)0x0) {\n      ind = (ind + 1) - (uint)(uVar5 == 0);\n      goto LAB_0017d403;\n    }\nLAB_0017d405:\n    lVar2 = (long)ind;\n    uVar4 = (uint)string[lVar2];\n    if (uVar4 == 0) goto LAB_0017d47d;\n  }\n  bVar1 = false;\n  do {\n    if (bVar1) {\n      bVar1 = false;\n    }\n    else if (uVar4 == 0x5c) {\n      bVar1 = true;\n    }\n    else if (uVar4 == uVar5) {\n      return (int)lVar2;\n    }\n    ind = (int)lVar2 + 1;\n    uVar4 = (uint)string[lVar2 + 1];\n    lVar2 = lVar2 + 1;\n  } while (uVar4 != 0);\nLAB_0017d47d:\n  if (uVar5 != 0) {\n    pcVar3 = (char *)dcgettext(0,"no closing `%c\' in %s",5);\n    builtin_error(pcVar3,(ulong)uVar5,string);\n    ind = -1;\n  }\n  return ind;\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "long lVar2;" (sized_type_specifier "long" long) identifier ;) (declaration "char *pcVar3;" primitive_type (pointer_declarator "*pcVar3" * identifier) ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "char cVar6;" primitive_type identifier ;) (expression_statement "cVar6 = string[ind];" (assignment_expression "cVar6 = string[ind]" identifier = (subscript_expression "string[ind]" identifier [ identifier ])) ;) (if_statement "if (cVar6 == '\0') {\nLAB_0017d4b7:\n    if (need_dquote != 0) {\nLAB_0017d423:\n      pcVar3 = (char *)dcgettext(0,"%s: first non-whitespace character is not `\"\'",5);\n      builtin_error(pcVar3,string);\n      return -1;\n    }\nLAB_0017d4bf:\n    uVar5 = 0;\n    if (startp != (int *)0x0) {\nLAB_0017d403:\n      *startp = ind;\n      goto LAB_0017d405;\n    }\n    lVar2 = (long)ind;\n    uVar4 = (uint)string[lVar2];\n    if (uVar4 == 0) {\n      return ind;\n    }\n  }\n  else {\n    if ((cVar6 == ' ') || (cVar6 == '\t')) {\n      lVar2 = (long)(ind + 1);\n      do {\n        ind = (int)lVar2;\n        cVar6 = string[lVar2];\n        if (cVar6 == '\0') goto LAB_0017d4b7;\n        lVar2 = lVar2 + 1;\n      } while ((cVar6 == ' ') || (cVar6 == '\t'));\n    }\n    if ((cVar6 != '\"') && (need_dquote != 0)) goto LAB_0017d423;\n    if ((cVar6 != '\"') && (cVar6 != '\'')) goto LAB_0017d4bf;\n    uVar5 = (uint)cVar6;\n    if (startp != (int *)0x0) {\n      ind = (ind + 1) - (uint)(uVar5 == 0);\n      goto LAB_0017d403;\n    }\nLAB_0017d405:\n    lVar2 = (long)ind;\n    uVar4 = (uint)string[lVar2];\n    if (uVar4 == 0) goto LAB_0017d47d;\n  }" if (parenthesized_expression "(cVar6 == '\0')" ( (binary_expression "cVar6 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\nLAB_0017d4b7:\n    if (need_dquote != 0) {\nLAB_0017d423:\n      pcVar3 = (char *)dcgettext(0,"%s: first non-whitespace character is not `\"\'",5);\n      builtin_error(pcVar3,string);\n      return -1;\n    }\nLAB_0017d4bf:\n    uVar5 = 0;\n    if (startp != (int *)0x0) {\nLAB_0017d403:\n      *startp = ind;\n      goto LAB_0017d405;\n    }\n    lVar2 = (long)ind;\n    uVar4 = (uint)string[lVar2];\n    if (uVar4 == 0) {\n      return ind;\n    }\n  }" { (labeled_statement "LAB_0017d4b7:\n    if (need_dquote != 0) {\nLAB_0017d423:\n      pcVar3 = (char *)dcgettext(0,"%s: first non-whitespace character is not `\"\'",5);\n      builtin_error(pcVar3,string);\n      return -1;\n    }" statement_identifier : (if_statement "if (need_dquote != 0) {\nLAB_0017d423:\n      pcVar3 = (char *)dcgettext(0,"%s: first non-whitespace character is not `\"\'",5);\n      builtin_error(pcVar3,string);\n      return -1;\n    }" if (parenthesized_expression "(need_dquote != 0)" ( (binary_expression "need_dquote != 0" identifier != number_literal) )) (compound_statement "{\nLAB_0017d423:\n      pcVar3 = (char *)dcgettext(0,"%s: first non-whitespace character is not `\"\'",5);\n      builtin_error(pcVar3,string);\n      return -1;\n    }" { (labeled_statement "LAB_0017d423:\n      pcVar3 = (char *)dcgettext(0,"%s: first non-whitespace character is not `\"\'",5);" statement_identifier : (expression_statement "pcVar3 = (char *)dcgettext(0,"%s: first non-whitespace character is not `\"\'",5);" (assignment_expression "pcVar3 = (char *)dcgettext(0,"%s: first non-whitespace character is not `\"\'",5)" identifier = (cast_expression "(char *)dcgettext(0,"%s: first non-whitespace character is not `\"\'",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"%s: first non-whitespace character is not `\"\'",5)" identifier (argument_list "(0,"%s: first non-whitespace character is not `\"\'",5)" ( number_literal , (string_literal ""%s: first non-whitespace character is not `\"\'"" " string_content escape_sequence escape_sequence ") , number_literal ))))) ;)) (expression_statement "builtin_error(pcVar3,string);" (call_expression "builtin_error(pcVar3,string)" identifier (argument_list "(pcVar3,string)" ( identifier , identifier ))) ;) (return_statement "return -1;" return number_literal ;) }))) (labeled_statement "LAB_0017d4bf:\n    uVar5 = 0;" statement_identifier : (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;)) (if_statement "if (startp != (int *)0x0) {\nLAB_0017d403:\n      *startp = ind;\n      goto LAB_0017d405;\n    }" if (parenthesized_expression "(startp != (int *)0x0)" ( (binary_expression "startp != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_0017d403:\n      *startp = ind;\n      goto LAB_0017d405;\n    }" { (labeled_statement "LAB_0017d403:\n      *startp = ind;" statement_identifier : (expression_statement "*startp = ind;" (assignment_expression "*startp = ind" (pointer_expression "*startp" * identifier) = identifier) ;)) (goto_statement "goto LAB_0017d405;" goto statement_identifier ;) })) (expression_statement "lVar2 = (long)ind;" (assignment_expression "lVar2 = (long)ind" identifier = (cast_expression "(long)ind" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;) (expression_statement "uVar4 = (uint)string[lVar2];" (assignment_expression "uVar4 = (uint)string[lVar2]" identifier = (cast_expression "(uint)string[lVar2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "string[lVar2]" identifier [ identifier ]))) ;) (if_statement "if (uVar4 == 0) {\n      return ind;\n    }" if (parenthesized_expression "(uVar4 == 0)" ( (binary_expression "uVar4 == 0" identifier == number_literal) )) (compound_statement "{\n      return ind;\n    }" { (return_statement "return ind;" return identifier ;) })) }) (else_clause "else {\n    if ((cVar6 == ' ') || (cVar6 == '\t')) {\n      lVar2 = (long)(ind + 1);\n      do {\n        ind = (int)lVar2;\n        cVar6 = string[lVar2];\n        if (cVar6 == '\0') goto LAB_0017d4b7;\n        lVar2 = lVar2 + 1;\n      } while ((cVar6 == ' ') || (cVar6 == '\t'));\n    }\n    if ((cVar6 != '\"') && (need_dquote != 0)) goto LAB_0017d423;\n    if ((cVar6 != '\"') && (cVar6 != '\'')) goto LAB_0017d4bf;\n    uVar5 = (uint)cVar6;\n    if (startp != (int *)0x0) {\n      ind = (ind + 1) - (uint)(uVar5 == 0);\n      goto LAB_0017d403;\n    }\nLAB_0017d405:\n    lVar2 = (long)ind;\n    uVar4 = (uint)string[lVar2];\n    if (uVar4 == 0) goto LAB_0017d47d;\n  }" else (compound_statement "{\n    if ((cVar6 == ' ') || (cVar6 == '\t')) {\n      lVar2 = (long)(ind + 1);\n      do {\n        ind = (int)lVar2;\n        cVar6 = string[lVar2];\n        if (cVar6 == '\0') goto LAB_0017d4b7;\n        lVar2 = lVar2 + 1;\n      } while ((cVar6 == ' ') || (cVar6 == '\t'));\n    }\n    if ((cVar6 != '\"') && (need_dquote != 0)) goto LAB_0017d423;\n    if ((cVar6 != '\"') && (cVar6 != '\'')) goto LAB_0017d4bf;\n    uVar5 = (uint)cVar6;\n    if (startp != (int *)0x0) {\n      ind = (ind + 1) - (uint)(uVar5 == 0);\n      goto LAB_0017d403;\n    }\nLAB_0017d405:\n    lVar2 = (long)ind;\n    uVar4 = (uint)string[lVar2];\n    if (uVar4 == 0) goto LAB_0017d47d;\n  }" { (if_statement "if ((cVar6 == ' ') || (cVar6 == '\t')) {\n      lVar2 = (long)(ind + 1);\n      do {\n        ind = (int)lVar2;\n        cVar6 = string[lVar2];\n        if (cVar6 == '\0') goto LAB_0017d4b7;\n        lVar2 = lVar2 + 1;\n      } while ((cVar6 == ' ') || (cVar6 == '\t'));\n    }" if (parenthesized_expression "((cVar6 == ' ') || (cVar6 == '\t'))" ( (binary_expression "(cVar6 == ' ') || (cVar6 == '\t')" (parenthesized_expression "(cVar6 == ' ')" ( (binary_expression "cVar6 == ' '" identifier == (char_literal "' '" ' character ')) )) || (parenthesized_expression "(cVar6 == '\t')" ( (binary_expression "cVar6 == '\t'" identifier == (char_literal "'\t'" ' escape_sequence ')) ))) )) (compound_statement "{\n      lVar2 = (long)(ind + 1);\n      do {\n        ind = (int)lVar2;\n        cVar6 = string[lVar2];\n        if (cVar6 == '\0') goto LAB_0017d4b7;\n        lVar2 = lVar2 + 1;\n      } while ((cVar6 == ' ') || (cVar6 == '\t'));\n    }" { (expression_statement "lVar2 = (long)(ind + 1);" (assignment_expression "lVar2 = (long)(ind + 1)" identifier = (cast_expression "(long)(ind + 1)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(ind + 1)" ( (binary_expression "ind + 1" identifier + number_literal) )))) ;) (do_statement "do {\n        ind = (int)lVar2;\n        cVar6 = string[lVar2];\n        if (cVar6 == '\0') goto LAB_0017d4b7;\n        lVar2 = lVar2 + 1;\n      } while ((cVar6 == ' ') || (cVar6 == '\t'));" do (compound_statement "{\n        ind = (int)lVar2;\n        cVar6 = string[lVar2];\n        if (cVar6 == '\0') goto LAB_0017d4b7;\n        lVar2 = lVar2 + 1;\n      }" { (expression_statement "ind = (int)lVar2;" (assignment_expression "ind = (int)lVar2" identifier = (cast_expression "(int)lVar2" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "cVar6 = string[lVar2];" (assignment_expression "cVar6 = string[lVar2]" identifier = (subscript_expression "string[lVar2]" identifier [ identifier ])) ;) (if_statement "if (cVar6 == '\0') goto LAB_0017d4b7;" if (parenthesized_expression "(cVar6 == '\0')" ( (binary_expression "cVar6 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_0017d4b7;" goto statement_identifier ;)) (expression_statement "lVar2 = lVar2 + 1;" (assignment_expression "lVar2 = lVar2 + 1" identifier = (binary_expression "lVar2 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "((cVar6 == ' ') || (cVar6 == '\t'))" ( (binary_expression "(cVar6 == ' ') || (cVar6 == '\t')" (parenthesized_expression "(cVar6 == ' ')" ( (binary_expression "cVar6 == ' '" identifier == (char_literal "' '" ' character ')) )) || (parenthesized_expression "(cVar6 == '\t')" ( (binary_expression "cVar6 == '\t'" identifier == (char_literal "'\t'" ' escape_sequence ')) ))) )) ;) })) (if_statement "if ((cVar6 != '\"') && (need_dquote != 0)) goto LAB_0017d423;" if (parenthesized_expression "((cVar6 != '\"') && (need_dquote != 0))" ( (binary_expression "(cVar6 != '\"') && (need_dquote != 0)" (parenthesized_expression "(cVar6 != '\"')" ( (binary_expression "cVar6 != '\"'" identifier != (char_literal "'\"'" ' escape_sequence ')) )) && (parenthesized_expression "(need_dquote != 0)" ( (binary_expression "need_dquote != 0" identifier != number_literal) ))) )) (goto_statement "goto LAB_0017d423;" goto statement_identifier ;)) (if_statement "if ((cVar6 != '\"') && (cVar6 != '\'')) goto LAB_0017d4bf;" if (parenthesized_expression "((cVar6 != '\"') && (cVar6 != '\''))" ( (binary_expression "(cVar6 != '\"') && (cVar6 != '\'')" (parenthesized_expression "(cVar6 != '\"')" ( (binary_expression "cVar6 != '\"'" identifier != (char_literal "'\"'" ' escape_sequence ')) )) && (parenthesized_expression "(cVar6 != '\'')" ( (binary_expression "cVar6 != '\''" identifier != (char_literal "'\''" ' escape_sequence ')) ))) )) (goto_statement "goto LAB_0017d4bf;" goto statement_identifier ;)) (expression_statement "uVar5 = (uint)cVar6;" (assignment_expression "uVar5 = (uint)cVar6" identifier = (cast_expression "(uint)cVar6" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if (startp != (int *)0x0) {\n      ind = (ind + 1) - (uint)(uVar5 == 0);\n      goto LAB_0017d403;\n    }" if (parenthesized_expression "(startp != (int *)0x0)" ( (binary_expression "startp != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      ind = (ind + 1) - (uint)(uVar5 == 0);\n      goto LAB_0017d403;\n    }" { (expression_statement "ind = (ind + 1) - (uint)(uVar5 == 0);" (assignment_expression "ind = (ind + 1) - (uint)(uVar5 == 0)" identifier = (binary_expression "(ind + 1) - (uint)(uVar5 == 0)" (parenthesized_expression "(ind + 1)" ( (binary_expression "ind + 1" identifier + number_literal) )) - (call_expression "(uint)(uVar5 == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar5 == 0)" ( (binary_expression "uVar5 == 0" identifier == number_literal) ))))) ;) (goto_statement "goto LAB_0017d403;" goto statement_identifier ;) })) (labeled_statement "LAB_0017d405:\n    lVar2 = (long)ind;" statement_identifier : (expression_statement "lVar2 = (long)ind;" (assignment_expression "lVar2 = (long)ind" identifier = (cast_expression "(long)ind" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;)) (expression_statement "uVar4 = (uint)string[lVar2];" (assignment_expression "uVar4 = (uint)string[lVar2]" identifier = (cast_expression "(uint)string[lVar2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "string[lVar2]" identifier [ identifier ]))) ;) (if_statement "if (uVar4 == 0) goto LAB_0017d47d;" if (parenthesized_expression "(uVar4 == 0)" ( (binary_expression "uVar4 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0017d47d;" goto statement_identifier ;)) }))) (expression_statement "bVar1 = false;" (assignment_expression "bVar1 = false" identifier = false) ;) (do_statement "do {\n    if (bVar1) {\n      bVar1 = false;\n    }\n    else if (uVar4 == 0x5c) {\n      bVar1 = true;\n    }\n    else if (uVar4 == uVar5) {\n      return (int)lVar2;\n    }\n    ind = (int)lVar2 + 1;\n    uVar4 = (uint)string[lVar2 + 1];\n    lVar2 = lVar2 + 1;\n  } while (uVar4 != 0);" do (compound_statement "{\n    if (bVar1) {\n      bVar1 = false;\n    }\n    else if (uVar4 == 0x5c) {\n      bVar1 = true;\n    }\n    else if (uVar4 == uVar5) {\n      return (int)lVar2;\n    }\n    ind = (int)lVar2 + 1;\n    uVar4 = (uint)string[lVar2 + 1];\n    lVar2 = lVar2 + 1;\n  }" { (if_statement "if (bVar1) {\n      bVar1 = false;\n    }\n    else if (uVar4 == 0x5c) {\n      bVar1 = true;\n    }\n    else if (uVar4 == uVar5) {\n      return (int)lVar2;\n    }" if (parenthesized_expression "(bVar1)" ( identifier )) (compound_statement "{\n      bVar1 = false;\n    }" { (expression_statement "bVar1 = false;" (assignment_expression "bVar1 = false" identifier = false) ;) }) (else_clause "else if (uVar4 == 0x5c) {\n      bVar1 = true;\n    }\n    else if (uVar4 == uVar5) {\n      return (int)lVar2;\n    }" else (if_statement "if (uVar4 == 0x5c) {\n      bVar1 = true;\n    }\n    else if (uVar4 == uVar5) {\n      return (int)lVar2;\n    }" if (parenthesized_expression "(uVar4 == 0x5c)" ( (binary_expression "uVar4 == 0x5c" identifier == number_literal) )) (compound_statement "{\n      bVar1 = true;\n    }" { (expression_statement "bVar1 = true;" (assignment_expression "bVar1 = true" identifier = true) ;) }) (else_clause "else if (uVar4 == uVar5) {\n      return (int)lVar2;\n    }" else (if_statement "if (uVar4 == uVar5) {\n      return (int)lVar2;\n    }" if (parenthesized_expression "(uVar4 == uVar5)" ( (binary_expression "uVar4 == uVar5" identifier == identifier) )) (compound_statement "{\n      return (int)lVar2;\n    }" { (return_statement "return (int)lVar2;" return (cast_expression "(int)lVar2" ( (type_descriptor "int" primitive_type) ) identifier) ;) })))))) (expression_statement "ind = (int)lVar2 + 1;" (assignment_expression "ind = (int)lVar2 + 1" identifier = (binary_expression "(int)lVar2 + 1" (cast_expression "(int)lVar2" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) (expression_statement "uVar4 = (uint)string[lVar2 + 1];" (assignment_expression "uVar4 = (uint)string[lVar2 + 1]" identifier = (cast_expression "(uint)string[lVar2 + 1]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "string[lVar2 + 1]" identifier [ (binary_expression "lVar2 + 1" identifier + number_literal) ]))) ;) (expression_statement "lVar2 = lVar2 + 1;" (assignment_expression "lVar2 = lVar2 + 1" identifier = (binary_expression "lVar2 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar4 != 0)" ( (binary_expression "uVar4 != 0" identifier != number_literal) )) ;) (labeled_statement "LAB_0017d47d:\n  if (uVar5 != 0) {\n    pcVar3 = (char *)dcgettext(0,"no closing `%c\' in %s",5);\n    builtin_error(pcVar3,(ulong)uVar5,string);\n    ind = -1;\n  }" statement_identifier : (if_statement "if (uVar5 != 0) {\n    pcVar3 = (char *)dcgettext(0,"no closing `%c\' in %s",5);\n    builtin_error(pcVar3,(ulong)uVar5,string);\n    ind = -1;\n  }" if (parenthesized_expression "(uVar5 != 0)" ( (binary_expression "uVar5 != 0" identifier != number_literal) )) (compound_statement "{\n    pcVar3 = (char *)dcgettext(0,"no closing `%c\' in %s",5);\n    builtin_error(pcVar3,(ulong)uVar5,string);\n    ind = -1;\n  }" { (expression_statement "pcVar3 = (char *)dcgettext(0,"no closing `%c\' in %s",5);" (assignment_expression "pcVar3 = (char *)dcgettext(0,"no closing `%c\' in %s",5)" identifier = (cast_expression "(char *)dcgettext(0,"no closing `%c\' in %s",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"no closing `%c\' in %s",5)" identifier (argument_list "(0,"no closing `%c\' in %s",5)" ( number_literal , (string_literal ""no closing `%c\' in %s"" " string_content escape_sequence string_content ") , number_literal ))))) ;) (expression_statement "builtin_error(pcVar3,(ulong)uVar5,string);" (call_expression "builtin_error(pcVar3,(ulong)uVar5,string)" identifier (argument_list "(pcVar3,(ulong)uVar5,string)" ( identifier , (cast_expression "(ulong)uVar5" ( (type_descriptor "ulong" type_identifier) ) identifier) , identifier ))) ;) (expression_statement "ind = -1;" (assignment_expression "ind = -1" identifier = number_literal) ;) }))) (return_statement "return ind;" return identifier ;) })))
(translation_unit "ulong FUN_0017d391(long param_1,uint param_2,int param_3,uint *param_4)\n\n{\n  bool bVar1;\n  long lVar2;\n  undefined8 uVar3;\n  int iVar4;\n  ulong uVar5;\n  int iVar6;\n  char cVar7;\n  \n  cVar7 = *(char *)(param_1 + (int)param_2);\n  if (cVar7 == '\0') {\nLAB_0017d4b7:\n    if (param_3 != 0) {\nLAB_0017d423:\n      uVar3 = dcgettext(0,"%s: first non-whitespace character is not `\"\'",5);\n      builtin_error(uVar3,param_1);\n      return 0xffffffff;\n    }\nLAB_0017d4bf:\n    iVar6 = 0;\n    if (param_4 != (uint *)0x0) {\nLAB_0017d403:\n      *param_4 = param_2;\n      goto LAB_0017d405;\n    }\n    uVar5 = (ulong)(int)param_2;\n    iVar4 = (int)*(char *)(param_1 + uVar5);\n    if (iVar4 == 0) {\n      return (ulong)param_2;\n    }\n  }\n  else {\n    if ((cVar7 == ' ') || (cVar7 == '\t')) {\n      lVar2 = (long)(int)(param_2 + 1);\n      do {\n        param_2 = (uint)lVar2;\n        cVar7 = *(char *)(param_1 + lVar2);\n        if (cVar7 == '\0') goto LAB_0017d4b7;\n        lVar2 = lVar2 + 1;\n      } while ((cVar7 == ' ') || (cVar7 == '\t'));\n    }\n    if ((cVar7 != '\"') && (param_3 != 0)) goto LAB_0017d423;\n    if ((cVar7 != '\"') && (cVar7 != '\'')) goto LAB_0017d4bf;\n    iVar6 = (int)cVar7;\n    if (param_4 != (uint *)0x0) {\n      param_2 = (param_2 + 1) - (uint)(iVar6 == 0);\n      goto LAB_0017d403;\n    }\nLAB_0017d405:\n    uVar5 = (ulong)(int)param_2;\n    iVar4 = (int)*(char *)(param_1 + uVar5);\n    if (iVar4 == 0) goto LAB_0017d47d;\n  }\n  bVar1 = false;\n  do {\n    if (bVar1) {\n      bVar1 = false;\n    }\n    else if (iVar4 == 0x5c) {\n      bVar1 = true;\n    }\n    else if (iVar4 == iVar6) {\n      return uVar5 & 0xffffffff;\n    }\n    param_2 = (int)uVar5 + 1;\n    iVar4 = (int)*(char *)(param_1 + 1 + uVar5);\n    uVar5 = uVar5 + 1;\n  } while (iVar4 != 0);\nLAB_0017d47d:\n  uVar5 = (ulong)param_2;\n  if (iVar6 != 0) {\n    uVar3 = dcgettext(0,"no closing `%c\' in %s",5);\n    builtin_error(uVar3,iVar6,param_1);\n    uVar5 = 0xffffffff;\n  }\n  return uVar5;\n}\n\n" (function_definition "ulong FUN_0017d391(long param_1,uint param_2,int param_3,uint *param_4)\n\n{\n  bool bVar1;\n  long lVar2;\n  undefined8 uVar3;\n  int iVar4;\n  ulong uVar5;\n  int iVar6;\n  char cVar7;\n  \n  cVar7 = *(char *)(param_1 + (int)param_2);\n  if (cVar7 == '\0') {\nLAB_0017d4b7:\n    if (param_3 != 0) {\nLAB_0017d423:\n      uVar3 = dcgettext(0,"%s: first non-whitespace character is not `\"\'",5);\n      builtin_error(uVar3,param_1);\n      return 0xffffffff;\n    }\nLAB_0017d4bf:\n    iVar6 = 0;\n    if (param_4 != (uint *)0x0) {\nLAB_0017d403:\n      *param_4 = param_2;\n      goto LAB_0017d405;\n    }\n    uVar5 = (ulong)(int)param_2;\n    iVar4 = (int)*(char *)(param_1 + uVar5);\n    if (iVar4 == 0) {\n      return (ulong)param_2;\n    }\n  }\n  else {\n    if ((cVar7 == ' ') || (cVar7 == '\t')) {\n      lVar2 = (long)(int)(param_2 + 1);\n      do {\n        param_2 = (uint)lVar2;\n        cVar7 = *(char *)(param_1 + lVar2);\n        if (cVar7 == '\0') goto LAB_0017d4b7;\n        lVar2 = lVar2 + 1;\n      } while ((cVar7 == ' ') || (cVar7 == '\t'));\n    }\n    if ((cVar7 != '\"') && (param_3 != 0)) goto LAB_0017d423;\n    if ((cVar7 != '\"') && (cVar7 != '\'')) goto LAB_0017d4bf;\n    iVar6 = (int)cVar7;\n    if (param_4 != (uint *)0x0) {\n      param_2 = (param_2 + 1) - (uint)(iVar6 == 0);\n      goto LAB_0017d403;\n    }\nLAB_0017d405:\n    uVar5 = (ulong)(int)param_2;\n    iVar4 = (int)*(char *)(param_1 + uVar5);\n    if (iVar4 == 0) goto LAB_0017d47d;\n  }\n  bVar1 = false;\n  do {\n    if (bVar1) {\n      bVar1 = false;\n    }\n    else if (iVar4 == 0x5c) {\n      bVar1 = true;\n    }\n    else if (iVar4 == iVar6) {\n      return uVar5 & 0xffffffff;\n    }\n    param_2 = (int)uVar5 + 1;\n    iVar4 = (int)*(char *)(param_1 + 1 + uVar5);\n    uVar5 = uVar5 + 1;\n  } while (iVar4 != 0);\nLAB_0017d47d:\n  uVar5 = (ulong)param_2;\n  if (iVar6 != 0) {\n    uVar3 = dcgettext(0,"no closing `%c\' in %s",5);\n    builtin_error(uVar3,iVar6,param_1);\n    uVar5 = 0xffffffff;\n  }\n  return uVar5;\n}" type_identifier (function_declarator "FUN_0017d391(long param_1,uint param_2,int param_3,uint *param_4)" identifier (parameter_list "(long param_1,uint param_2,int param_3,uint *param_4)" ( (parameter_declaration "long param_1" (sized_type_specifier "long" long) identifier) , (parameter_declaration "uint param_2" type_identifier identifier) , (parameter_declaration "int param_3" primitive_type identifier) , (parameter_declaration "uint *param_4" type_identifier (pointer_declarator "*param_4" * identifier)) ))) (compound_statement "{\n  bool bVar1;\n  long lVar2;\n  undefined8 uVar3;\n  int iVar4;\n  ulong uVar5;\n  int iVar6;\n  char cVar7;\n  \n  cVar7 = *(char *)(param_1 + (int)param_2);\n  if (cVar7 == '\0') {\nLAB_0017d4b7:\n    if (param_3 != 0) {\nLAB_0017d423:\n      uVar3 = dcgettext(0,"%s: first non-whitespace character is not `\"\'",5);\n      builtin_error(uVar3,param_1);\n      return 0xffffffff;\n    }\nLAB_0017d4bf:\n    iVar6 = 0;\n    if (param_4 != (uint *)0x0) {\nLAB_0017d403:\n      *param_4 = param_2;\n      goto LAB_0017d405;\n    }\n    uVar5 = (ulong)(int)param_2;\n    iVar4 = (int)*(char *)(param_1 + uVar5);\n    if (iVar4 == 0) {\n      return (ulong)param_2;\n    }\n  }\n  else {\n    if ((cVar7 == ' ') || (cVar7 == '\t')) {\n      lVar2 = (long)(int)(param_2 + 1);\n      do {\n        param_2 = (uint)lVar2;\n        cVar7 = *(char *)(param_1 + lVar2);\n        if (cVar7 == '\0') goto LAB_0017d4b7;\n        lVar2 = lVar2 + 1;\n      } while ((cVar7 == ' ') || (cVar7 == '\t'));\n    }\n    if ((cVar7 != '\"') && (param_3 != 0)) goto LAB_0017d423;\n    if ((cVar7 != '\"') && (cVar7 != '\'')) goto LAB_0017d4bf;\n    iVar6 = (int)cVar7;\n    if (param_4 != (uint *)0x0) {\n      param_2 = (param_2 + 1) - (uint)(iVar6 == 0);\n      goto LAB_0017d403;\n    }\nLAB_0017d405:\n    uVar5 = (ulong)(int)param_2;\n    iVar4 = (int)*(char *)(param_1 + uVar5);\n    if (iVar4 == 0) goto LAB_0017d47d;\n  }\n  bVar1 = false;\n  do {\n    if (bVar1) {\n      bVar1 = false;\n    }\n    else if (iVar4 == 0x5c) {\n      bVar1 = true;\n    }\n    else if (iVar4 == iVar6) {\n      return uVar5 & 0xffffffff;\n    }\n    param_2 = (int)uVar5 + 1;\n    iVar4 = (int)*(char *)(param_1 + 1 + uVar5);\n    uVar5 = uVar5 + 1;\n  } while (iVar4 != 0);\nLAB_0017d47d:\n  uVar5 = (ulong)param_2;\n  if (iVar6 != 0) {\n    uVar3 = dcgettext(0,"no closing `%c\' in %s",5);\n    builtin_error(uVar3,iVar6,param_1);\n    uVar5 = 0xffffffff;\n  }\n  return uVar5;\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "long lVar2;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 uVar3;" type_identifier identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "ulong uVar5;" type_identifier identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "char cVar7;" primitive_type identifier ;) (expression_statement "cVar7 = *(char *)(param_1 + (int)param_2);" (assignment_expression "cVar7 = *(char *)(param_1 + (int)param_2)" identifier = (pointer_expression "*(char *)(param_1 + (int)param_2)" * (cast_expression "(char *)(param_1 + (int)param_2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + (int)param_2)" ( (binary_expression "param_1 + (int)param_2" identifier + (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier)) ))))) ;) (if_statement "if (cVar7 == '\0') {\nLAB_0017d4b7:\n    if (param_3 != 0) {\nLAB_0017d423:\n      uVar3 = dcgettext(0,"%s: first non-whitespace character is not `\"\'",5);\n      builtin_error(uVar3,param_1);\n      return 0xffffffff;\n    }\nLAB_0017d4bf:\n    iVar6 = 0;\n    if (param_4 != (uint *)0x0) {\nLAB_0017d403:\n      *param_4 = param_2;\n      goto LAB_0017d405;\n    }\n    uVar5 = (ulong)(int)param_2;\n    iVar4 = (int)*(char *)(param_1 + uVar5);\n    if (iVar4 == 0) {\n      return (ulong)param_2;\n    }\n  }\n  else {\n    if ((cVar7 == ' ') || (cVar7 == '\t')) {\n      lVar2 = (long)(int)(param_2 + 1);\n      do {\n        param_2 = (uint)lVar2;\n        cVar7 = *(char *)(param_1 + lVar2);\n        if (cVar7 == '\0') goto LAB_0017d4b7;\n        lVar2 = lVar2 + 1;\n      } while ((cVar7 == ' ') || (cVar7 == '\t'));\n    }\n    if ((cVar7 != '\"') && (param_3 != 0)) goto LAB_0017d423;\n    if ((cVar7 != '\"') && (cVar7 != '\'')) goto LAB_0017d4bf;\n    iVar6 = (int)cVar7;\n    if (param_4 != (uint *)0x0) {\n      param_2 = (param_2 + 1) - (uint)(iVar6 == 0);\n      goto LAB_0017d403;\n    }\nLAB_0017d405:\n    uVar5 = (ulong)(int)param_2;\n    iVar4 = (int)*(char *)(param_1 + uVar5);\n    if (iVar4 == 0) goto LAB_0017d47d;\n  }" if (parenthesized_expression "(cVar7 == '\0')" ( (binary_expression "cVar7 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\nLAB_0017d4b7:\n    if (param_3 != 0) {\nLAB_0017d423:\n      uVar3 = dcgettext(0,"%s: first non-whitespace character is not `\"\'",5);\n      builtin_error(uVar3,param_1);\n      return 0xffffffff;\n    }\nLAB_0017d4bf:\n    iVar6 = 0;\n    if (param_4 != (uint *)0x0) {\nLAB_0017d403:\n      *param_4 = param_2;\n      goto LAB_0017d405;\n    }\n    uVar5 = (ulong)(int)param_2;\n    iVar4 = (int)*(char *)(param_1 + uVar5);\n    if (iVar4 == 0) {\n      return (ulong)param_2;\n    }\n  }" { (labeled_statement "LAB_0017d4b7:\n    if (param_3 != 0) {\nLAB_0017d423:\n      uVar3 = dcgettext(0,"%s: first non-whitespace character is not `\"\'",5);\n      builtin_error(uVar3,param_1);\n      return 0xffffffff;\n    }" statement_identifier : (if_statement "if (param_3 != 0) {\nLAB_0017d423:\n      uVar3 = dcgettext(0,"%s: first non-whitespace character is not `\"\'",5);\n      builtin_error(uVar3,param_1);\n      return 0xffffffff;\n    }" if (parenthesized_expression "(param_3 != 0)" ( (binary_expression "param_3 != 0" identifier != number_literal) )) (compound_statement "{\nLAB_0017d423:\n      uVar3 = dcgettext(0,"%s: first non-whitespace character is not `\"\'",5);\n      builtin_error(uVar3,param_1);\n      return 0xffffffff;\n    }" { (labeled_statement "LAB_0017d423:\n      uVar3 = dcgettext(0,"%s: first non-whitespace character is not `\"\'",5);" statement_identifier : (expression_statement "uVar3 = dcgettext(0,"%s: first non-whitespace character is not `\"\'",5);" (assignment_expression "uVar3 = dcgettext(0,"%s: first non-whitespace character is not `\"\'",5)" identifier = (call_expression "dcgettext(0,"%s: first non-whitespace character is not `\"\'",5)" identifier (argument_list "(0,"%s: first non-whitespace character is not `\"\'",5)" ( number_literal , (string_literal ""%s: first non-whitespace character is not `\"\'"" " string_content escape_sequence escape_sequence ") , number_literal )))) ;)) (expression_statement "builtin_error(uVar3,param_1);" (call_expression "builtin_error(uVar3,param_1)" identifier (argument_list "(uVar3,param_1)" ( identifier , identifier ))) ;) (return_statement "return 0xffffffff;" return number_literal ;) }))) (labeled_statement "LAB_0017d4bf:\n    iVar6 = 0;" statement_identifier : (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" identifier = number_literal) ;)) (if_statement "if (param_4 != (uint *)0x0) {\nLAB_0017d403:\n      *param_4 = param_2;\n      goto LAB_0017d405;\n    }" if (parenthesized_expression "(param_4 != (uint *)0x0)" ( (binary_expression "param_4 != (uint *)0x0" identifier != (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_0017d403:\n      *param_4 = param_2;\n      goto LAB_0017d405;\n    }" { (labeled_statement "LAB_0017d403:\n      *param_4 = param_2;" statement_identifier : (expression_statement "*param_4 = param_2;" (assignment_expression "*param_4 = param_2" (pointer_expression "*param_4" * identifier) = identifier) ;)) (goto_statement "goto LAB_0017d405;" goto statement_identifier ;) })) (expression_statement "uVar5 = (ulong)(int)param_2;" (assignment_expression "uVar5 = (ulong)(int)param_2" identifier = (cast_expression "(ulong)(int)param_2" ( (type_descriptor "ulong" type_identifier) ) (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "iVar4 = (int)*(char *)(param_1 + uVar5);" (assignment_expression "iVar4 = (int)*(char *)(param_1 + uVar5)" identifier = (cast_expression "(int)*(char *)(param_1 + uVar5)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(char *)(param_1 + uVar5)" * (cast_expression "(char *)(param_1 + uVar5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + uVar5)" ( (binary_expression "param_1 + uVar5" identifier + identifier) )))))) ;) (if_statement "if (iVar4 == 0) {\n      return (ulong)param_2;\n    }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n      return (ulong)param_2;\n    }" { (return_statement "return (ulong)param_2;" return (cast_expression "(ulong)param_2" ( (type_descriptor "ulong" type_identifier) ) identifier) ;) })) }) (else_clause "else {\n    if ((cVar7 == ' ') || (cVar7 == '\t')) {\n      lVar2 = (long)(int)(param_2 + 1);\n      do {\n        param_2 = (uint)lVar2;\n        cVar7 = *(char *)(param_1 + lVar2);\n        if (cVar7 == '\0') goto LAB_0017d4b7;\n        lVar2 = lVar2 + 1;\n      } while ((cVar7 == ' ') || (cVar7 == '\t'));\n    }\n    if ((cVar7 != '\"') && (param_3 != 0)) goto LAB_0017d423;\n    if ((cVar7 != '\"') && (cVar7 != '\'')) goto LAB_0017d4bf;\n    iVar6 = (int)cVar7;\n    if (param_4 != (uint *)0x0) {\n      param_2 = (param_2 + 1) - (uint)(iVar6 == 0);\n      goto LAB_0017d403;\n    }\nLAB_0017d405:\n    uVar5 = (ulong)(int)param_2;\n    iVar4 = (int)*(char *)(param_1 + uVar5);\n    if (iVar4 == 0) goto LAB_0017d47d;\n  }" else (compound_statement "{\n    if ((cVar7 == ' ') || (cVar7 == '\t')) {\n      lVar2 = (long)(int)(param_2 + 1);\n      do {\n        param_2 = (uint)lVar2;\n        cVar7 = *(char *)(param_1 + lVar2);\n        if (cVar7 == '\0') goto LAB_0017d4b7;\n        lVar2 = lVar2 + 1;\n      } while ((cVar7 == ' ') || (cVar7 == '\t'));\n    }\n    if ((cVar7 != '\"') && (param_3 != 0)) goto LAB_0017d423;\n    if ((cVar7 != '\"') && (cVar7 != '\'')) goto LAB_0017d4bf;\n    iVar6 = (int)cVar7;\n    if (param_4 != (uint *)0x0) {\n      param_2 = (param_2 + 1) - (uint)(iVar6 == 0);\n      goto LAB_0017d403;\n    }\nLAB_0017d405:\n    uVar5 = (ulong)(int)param_2;\n    iVar4 = (int)*(char *)(param_1 + uVar5);\n    if (iVar4 == 0) goto LAB_0017d47d;\n  }" { (if_statement "if ((cVar7 == ' ') || (cVar7 == '\t')) {\n      lVar2 = (long)(int)(param_2 + 1);\n      do {\n        param_2 = (uint)lVar2;\n        cVar7 = *(char *)(param_1 + lVar2);\n        if (cVar7 == '\0') goto LAB_0017d4b7;\n        lVar2 = lVar2 + 1;\n      } while ((cVar7 == ' ') || (cVar7 == '\t'));\n    }" if (parenthesized_expression "((cVar7 == ' ') || (cVar7 == '\t'))" ( (binary_expression "(cVar7 == ' ') || (cVar7 == '\t')" (parenthesized_expression "(cVar7 == ' ')" ( (binary_expression "cVar7 == ' '" identifier == (char_literal "' '" ' character ')) )) || (parenthesized_expression "(cVar7 == '\t')" ( (binary_expression "cVar7 == '\t'" identifier == (char_literal "'\t'" ' escape_sequence ')) ))) )) (compound_statement "{\n      lVar2 = (long)(int)(param_2 + 1);\n      do {\n        param_2 = (uint)lVar2;\n        cVar7 = *(char *)(param_1 + lVar2);\n        if (cVar7 == '\0') goto LAB_0017d4b7;\n        lVar2 = lVar2 + 1;\n      } while ((cVar7 == ' ') || (cVar7 == '\t'));\n    }" { (expression_statement "lVar2 = (long)(int)(param_2 + 1);" (assignment_expression "lVar2 = (long)(int)(param_2 + 1)" identifier = (cast_expression "(long)(int)(param_2 + 1)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (cast_expression "(int)(param_2 + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(param_2 + 1)" ( (binary_expression "param_2 + 1" identifier + number_literal) ))))) ;) (do_statement "do {\n        param_2 = (uint)lVar2;\n        cVar7 = *(char *)(param_1 + lVar2);\n        if (cVar7 == '\0') goto LAB_0017d4b7;\n        lVar2 = lVar2 + 1;\n      } while ((cVar7 == ' ') || (cVar7 == '\t'));" do (compound_statement "{\n        param_2 = (uint)lVar2;\n        cVar7 = *(char *)(param_1 + lVar2);\n        if (cVar7 == '\0') goto LAB_0017d4b7;\n        lVar2 = lVar2 + 1;\n      }" { (expression_statement "param_2 = (uint)lVar2;" (assignment_expression "param_2 = (uint)lVar2" identifier = (cast_expression "(uint)lVar2" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "cVar7 = *(char *)(param_1 + lVar2);" (assignment_expression "cVar7 = *(char *)(param_1 + lVar2)" identifier = (pointer_expression "*(char *)(param_1 + lVar2)" * (cast_expression "(char *)(param_1 + lVar2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + lVar2)" ( (binary_expression "param_1 + lVar2" identifier + identifier) ))))) ;) (if_statement "if (cVar7 == '\0') goto LAB_0017d4b7;" if (parenthesized_expression "(cVar7 == '\0')" ( (binary_expression "cVar7 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_0017d4b7;" goto statement_identifier ;)) (expression_statement "lVar2 = lVar2 + 1;" (assignment_expression "lVar2 = lVar2 + 1" identifier = (binary_expression "lVar2 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "((cVar7 == ' ') || (cVar7 == '\t'))" ( (binary_expression "(cVar7 == ' ') || (cVar7 == '\t')" (parenthesized_expression "(cVar7 == ' ')" ( (binary_expression "cVar7 == ' '" identifier == (char_literal "' '" ' character ')) )) || (parenthesized_expression "(cVar7 == '\t')" ( (binary_expression "cVar7 == '\t'" identifier == (char_literal "'\t'" ' escape_sequence ')) ))) )) ;) })) (if_statement "if ((cVar7 != '\"') && (param_3 != 0)) goto LAB_0017d423;" if (parenthesized_expression "((cVar7 != '\"') && (param_3 != 0))" ( (binary_expression "(cVar7 != '\"') && (param_3 != 0)" (parenthesized_expression "(cVar7 != '\"')" ( (binary_expression "cVar7 != '\"'" identifier != (char_literal "'\"'" ' escape_sequence ')) )) && (parenthesized_expression "(param_3 != 0)" ( (binary_expression "param_3 != 0" identifier != number_literal) ))) )) (goto_statement "goto LAB_0017d423;" goto statement_identifier ;)) (if_statement "if ((cVar7 != '\"') && (cVar7 != '\'')) goto LAB_0017d4bf;" if (parenthesized_expression "((cVar7 != '\"') && (cVar7 != '\''))" ( (binary_expression "(cVar7 != '\"') && (cVar7 != '\'')" (parenthesized_expression "(cVar7 != '\"')" ( (binary_expression "cVar7 != '\"'" identifier != (char_literal "'\"'" ' escape_sequence ')) )) && (parenthesized_expression "(cVar7 != '\'')" ( (binary_expression "cVar7 != '\''" identifier != (char_literal "'\''" ' escape_sequence ')) ))) )) (goto_statement "goto LAB_0017d4bf;" goto statement_identifier ;)) (expression_statement "iVar6 = (int)cVar7;" (assignment_expression "iVar6 = (int)cVar7" identifier = (cast_expression "(int)cVar7" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (if_statement "if (param_4 != (uint *)0x0) {\n      param_2 = (param_2 + 1) - (uint)(iVar6 == 0);\n      goto LAB_0017d403;\n    }" if (parenthesized_expression "(param_4 != (uint *)0x0)" ( (binary_expression "param_4 != (uint *)0x0" identifier != (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      param_2 = (param_2 + 1) - (uint)(iVar6 == 0);\n      goto LAB_0017d403;\n    }" { (expression_statement "param_2 = (param_2 + 1) - (uint)(iVar6 == 0);" (assignment_expression "param_2 = (param_2 + 1) - (uint)(iVar6 == 0)" identifier = (binary_expression "(param_2 + 1) - (uint)(iVar6 == 0)" (parenthesized_expression "(param_2 + 1)" ( (binary_expression "param_2 + 1" identifier + number_literal) )) - (call_expression "(uint)(iVar6 == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) ))))) ;) (goto_statement "goto LAB_0017d403;" goto statement_identifier ;) })) (labeled_statement "LAB_0017d405:\n    uVar5 = (ulong)(int)param_2;" statement_identifier : (expression_statement "uVar5 = (ulong)(int)param_2;" (assignment_expression "uVar5 = (ulong)(int)param_2" identifier = (cast_expression "(ulong)(int)param_2" ( (type_descriptor "ulong" type_identifier) ) (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier))) ;)) (expression_statement "iVar4 = (int)*(char *)(param_1 + uVar5);" (assignment_expression "iVar4 = (int)*(char *)(param_1 + uVar5)" identifier = (cast_expression "(int)*(char *)(param_1 + uVar5)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(char *)(param_1 + uVar5)" * (cast_expression "(char *)(param_1 + uVar5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + uVar5)" ( (binary_expression "param_1 + uVar5" identifier + identifier) )))))) ;) (if_statement "if (iVar4 == 0) goto LAB_0017d47d;" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0017d47d;" goto statement_identifier ;)) }))) (expression_statement "bVar1 = false;" (assignment_expression "bVar1 = false" identifier = false) ;) (do_statement "do {\n    if (bVar1) {\n      bVar1 = false;\n    }\n    else if (iVar4 == 0x5c) {\n      bVar1 = true;\n    }\n    else if (iVar4 == iVar6) {\n      return uVar5 & 0xffffffff;\n    }\n    param_2 = (int)uVar5 + 1;\n    iVar4 = (int)*(char *)(param_1 + 1 + uVar5);\n    uVar5 = uVar5 + 1;\n  } while (iVar4 != 0);" do (compound_statement "{\n    if (bVar1) {\n      bVar1 = false;\n    }\n    else if (iVar4 == 0x5c) {\n      bVar1 = true;\n    }\n    else if (iVar4 == iVar6) {\n      return uVar5 & 0xffffffff;\n    }\n    param_2 = (int)uVar5 + 1;\n    iVar4 = (int)*(char *)(param_1 + 1 + uVar5);\n    uVar5 = uVar5 + 1;\n  }" { (if_statement "if (bVar1) {\n      bVar1 = false;\n    }\n    else if (iVar4 == 0x5c) {\n      bVar1 = true;\n    }\n    else if (iVar4 == iVar6) {\n      return uVar5 & 0xffffffff;\n    }" if (parenthesized_expression "(bVar1)" ( identifier )) (compound_statement "{\n      bVar1 = false;\n    }" { (expression_statement "bVar1 = false;" (assignment_expression "bVar1 = false" identifier = false) ;) }) (else_clause "else if (iVar4 == 0x5c) {\n      bVar1 = true;\n    }\n    else if (iVar4 == iVar6) {\n      return uVar5 & 0xffffffff;\n    }" else (if_statement "if (iVar4 == 0x5c) {\n      bVar1 = true;\n    }\n    else if (iVar4 == iVar6) {\n      return uVar5 & 0xffffffff;\n    }" if (parenthesized_expression "(iVar4 == 0x5c)" ( (binary_expression "iVar4 == 0x5c" identifier == number_literal) )) (compound_statement "{\n      bVar1 = true;\n    }" { (expression_statement "bVar1 = true;" (assignment_expression "bVar1 = true" identifier = true) ;) }) (else_clause "else if (iVar4 == iVar6) {\n      return uVar5 & 0xffffffff;\n    }" else (if_statement "if (iVar4 == iVar6) {\n      return uVar5 & 0xffffffff;\n    }" if (parenthesized_expression "(iVar4 == iVar6)" ( (binary_expression "iVar4 == iVar6" identifier == identifier) )) (compound_statement "{\n      return uVar5 & 0xffffffff;\n    }" { (return_statement "return uVar5 & 0xffffffff;" return (binary_expression "uVar5 & 0xffffffff" identifier & number_literal) ;) })))))) (expression_statement "param_2 = (int)uVar5 + 1;" (assignment_expression "param_2 = (int)uVar5 + 1" identifier = (binary_expression "(int)uVar5 + 1" (cast_expression "(int)uVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) (expression_statement "iVar4 = (int)*(char *)(param_1 + 1 + uVar5);" (assignment_expression "iVar4 = (int)*(char *)(param_1 + 1 + uVar5)" identifier = (cast_expression "(int)*(char *)(param_1 + 1 + uVar5)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(char *)(param_1 + 1 + uVar5)" * (cast_expression "(char *)(param_1 + 1 + uVar5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 1 + uVar5)" ( (binary_expression "param_1 + 1 + uVar5" (binary_expression "param_1 + 1" identifier + number_literal) + identifier) )))))) ;) (expression_statement "uVar5 = uVar5 + 1;" (assignment_expression "uVar5 = uVar5 + 1" identifier = (binary_expression "uVar5 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) ;) (labeled_statement "LAB_0017d47d:\n  uVar5 = (ulong)param_2;" statement_identifier : (expression_statement "uVar5 = (ulong)param_2;" (assignment_expression "uVar5 = (ulong)param_2" identifier = (cast_expression "(ulong)param_2" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;)) (if_statement "if (iVar6 != 0) {\n    uVar3 = dcgettext(0,"no closing `%c\' in %s",5);\n    builtin_error(uVar3,iVar6,param_1);\n    uVar5 = 0xffffffff;\n  }" if (parenthesized_expression "(iVar6 != 0)" ( (binary_expression "iVar6 != 0" identifier != number_literal) )) (compound_statement "{\n    uVar3 = dcgettext(0,"no closing `%c\' in %s",5);\n    builtin_error(uVar3,iVar6,param_1);\n    uVar5 = 0xffffffff;\n  }" { (expression_statement "uVar3 = dcgettext(0,"no closing `%c\' in %s",5);" (assignment_expression "uVar3 = dcgettext(0,"no closing `%c\' in %s",5)" identifier = (call_expression "dcgettext(0,"no closing `%c\' in %s",5)" identifier (argument_list "(0,"no closing `%c\' in %s",5)" ( number_literal , (string_literal ""no closing `%c\' in %s"" " string_content escape_sequence string_content ") , number_literal )))) ;) (expression_statement "builtin_error(uVar3,iVar6,param_1);" (call_expression "builtin_error(uVar3,iVar6,param_1)" identifier (argument_list "(uVar3,iVar6,param_1)" ( identifier , identifier , identifier ))) ;) (expression_statement "uVar5 = 0xffffffff;" (assignment_expression "uVar5 = 0xffffffff" identifier = number_literal) ;) })) (return_statement "return uVar5;" return identifier ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration (sized_type_specifier long) IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence escape_sequence ") , LIT )))) ;)) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (return_statement return LIT ;) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;)) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) )))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return (cast_expression ( (type_descriptor TYPE) ) IDENT) ;) })) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (char_literal ' character ')) )) || (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (char_literal ' character ')) )) || (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) ))) )) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) && (parenthesized_expression ( (binary_expression IDENT != LIT) ))) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) && (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT + LIT) )) - (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT == LIT) ))))) ;) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) )))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) }))) (expression_statement (assignment_expression IDENT = BOOL) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (expression_statement (assignment_expression IDENT = BOOL) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = BOOL) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (return_statement return (binary_expression IDENT & LIT) ;) })))))) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) + IDENT) )))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence string_content ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) })) (return_statement return IDENT ;) })))
(function_definition "ulong FUN_0017d391(long param_1,uint param_2,int param_3,uint *param_4)\n\n{\n  bool bVar1;\n  long lVar2;\n  undefined8 uVar3;\n  int iVar4;\n  ulong uVar5;\n  int iVar6;\n  char cVar7;\n  \n  cVar7 = *(char *)(param_1 + (int)param_2);\n  if (cVar7 == '\0') {\nLAB_0017d4b7:\n    if (param_3 != 0) {\nLAB_0017d423:\n      uVar3 = dcgettext(0,"%s: first non-whitespace character is not `\"\'",5);\n      builtin_error(uVar3,param_1);\n      return 0xffffffff;\n    }\nLAB_0017d4bf:\n    iVar6 = 0;\n    if (param_4 != (uint *)0x0) {\nLAB_0017d403:\n      *param_4 = param_2;\n      goto LAB_0017d405;\n    }\n    uVar5 = (ulong)(int)param_2;\n    iVar4 = (int)*(char *)(param_1 + uVar5);\n    if (iVar4 == 0) {\n      return (ulong)param_2;\n    }\n  }\n  else {\n    if ((cVar7 == ' ') || (cVar7 == '\t')) {\n      lVar2 = (long)(int)(param_2 + 1);\n      do {\n        param_2 = (uint)lVar2;\n        cVar7 = *(char *)(param_1 + lVar2);\n        if (cVar7 == '\0') goto LAB_0017d4b7;\n        lVar2 = lVar2 + 1;\n      } while ((cVar7 == ' ') || (cVar7 == '\t'));\n    }\n    if ((cVar7 != '\"') && (param_3 != 0)) goto LAB_0017d423;\n    if ((cVar7 != '\"') && (cVar7 != '\'')) goto LAB_0017d4bf;\n    iVar6 = (int)cVar7;\n    if (param_4 != (uint *)0x0) {\n      param_2 = (param_2 + 1) - (uint)(iVar6 == 0);\n      goto LAB_0017d403;\n    }\nLAB_0017d405:\n    uVar5 = (ulong)(int)param_2;\n    iVar4 = (int)*(char *)(param_1 + uVar5);\n    if (iVar4 == 0) goto LAB_0017d47d;\n  }\n  bVar1 = false;\n  do {\n    if (bVar1) {\n      bVar1 = false;\n    }\n    else if (iVar4 == 0x5c) {\n      bVar1 = true;\n    }\n    else if (iVar4 == iVar6) {\n      return uVar5 & 0xffffffff;\n    }\n    param_2 = (int)uVar5 + 1;\n    iVar4 = (int)*(char *)(param_1 + 1 + uVar5);\n    uVar5 = uVar5 + 1;\n  } while (iVar4 != 0);\nLAB_0017d47d:\n  uVar5 = (ulong)param_2;\n  if (iVar6 != 0) {\n    uVar3 = dcgettext(0,"no closing `%c\' in %s",5);\n    builtin_error(uVar3,iVar6,param_1);\n    uVar5 = 0xffffffff;\n  }\n  return uVar5;\n}" (type_identifier "ulong") (function_declarator "FUN_0017d391(long param_1,uint param_2,int param_3,uint *param_4)" (identifier "FUN_0017d391") (parameter_list "(long param_1,uint param_2,int param_3,uint *param_4)" (( "(") (parameter_declaration "long param_1" (sized_type_specifier "long" (long "long")) (identifier "param_1")) (, ",") (parameter_declaration "uint param_2" (type_identifier "uint") (identifier "param_2")) (, ",") (parameter_declaration "int param_3" (primitive_type "int") (identifier "param_3")) (, ",") (parameter_declaration "uint *param_4" (type_identifier "uint") (pointer_declarator "*param_4" (* "*") (identifier "param_4"))) () ")"))) (compound_statement "{\n  bool bVar1;\n  long lVar2;\n  undefined8 uVar3;\n  int iVar4;\n  ulong uVar5;\n  int iVar6;\n  char cVar7;\n  \n  cVar7 = *(char *)(param_1 + (int)param_2);\n  if (cVar7 == '\0') {\nLAB_0017d4b7:\n    if (param_3 != 0) {\nLAB_0017d423:\n      uVar3 = dcgettext(0,"%s: first non-whitespace character is not `\"\'",5);\n      builtin_error(uVar3,param_1);\n      return 0xffffffff;\n    }\nLAB_0017d4bf:\n    iVar6 = 0;\n    if (param_4 != (uint *)0x0) {\nLAB_0017d403:\n      *param_4 = param_2;\n      goto LAB_0017d405;\n    }\n    uVar5 = (ulong)(int)param_2;\n    iVar4 = (int)*(char *)(param_1 + uVar5);\n    if (iVar4 == 0) {\n      return (ulong)param_2;\n    }\n  }\n  else {\n    if ((cVar7 == ' ') || (cVar7 == '\t')) {\n      lVar2 = (long)(int)(param_2 + 1);\n      do {\n        param_2 = (uint)lVar2;\n        cVar7 = *(char *)(param_1 + lVar2);\n        if (cVar7 == '\0') goto LAB_0017d4b7;\n        lVar2 = lVar2 + 1;\n      } while ((cVar7 == ' ') || (cVar7 == '\t'));\n    }\n    if ((cVar7 != '\"') && (param_3 != 0)) goto LAB_0017d423;\n    if ((cVar7 != '\"') && (cVar7 != '\'')) goto LAB_0017d4bf;\n    iVar6 = (int)cVar7;\n    if (param_4 != (uint *)0x0) {\n      param_2 = (param_2 + 1) - (uint)(iVar6 == 0);\n      goto LAB_0017d403;\n    }\nLAB_0017d405:\n    uVar5 = (ulong)(int)param_2;\n    iVar4 = (int)*(char *)(param_1 + uVar5);\n    if (iVar4 == 0) goto LAB_0017d47d;\n  }\n  bVar1 = false;\n  do {\n    if (bVar1) {\n      bVar1 = false;\n    }\n    else if (iVar4 == 0x5c) {\n      bVar1 = true;\n    }\n    else if (iVar4 == iVar6) {\n      return uVar5 & 0xffffffff;\n    }\n    param_2 = (int)uVar5 + 1;\n    iVar4 = (int)*(char *)(param_1 + 1 + uVar5);\n    uVar5 = uVar5 + 1;\n  } while (iVar4 != 0);\nLAB_0017d47d:\n  uVar5 = (ulong)param_2;\n  if (iVar6 != 0) {\n    uVar3 = dcgettext(0,"no closing `%c\' in %s",5);\n    builtin_error(uVar3,iVar6,param_1);\n    uVar5 = 0xffffffff;\n  }\n  return uVar5;\n}" ({ "{") (declaration "bool bVar1;" (primitive_type "bool") (identifier "bVar1") (; ";")) (declaration "long lVar2;" (sized_type_specifier "long" (long "long")) (identifier "lVar2") (; ";")) (declaration "undefined8 uVar3;" (type_identifier "undefined8") (identifier "uVar3") (; ";")) (declaration "int iVar4;" (primitive_type "int") (identifier "iVar4") (; ";")) (declaration "ulong uVar5;" (type_identifier "ulong") (identifier "uVar5") (; ";")) (declaration "int iVar6;" (primitive_type "int") (identifier "iVar6") (; ";")) (declaration "char cVar7;" (primitive_type "char") (identifier "cVar7") (; ";")) (expression_statement "cVar7 = *(char *)(param_1 + (int)param_2);" (assignment_expression "cVar7 = *(char *)(param_1 + (int)param_2)" (identifier "cVar7") (= "=") (pointer_expression "*(char *)(param_1 + (int)param_2)" (* "*") (cast_expression "(char *)(param_1 + (int)param_2)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + (int)param_2)" (( "(") (binary_expression "param_1 + (int)param_2" (identifier "param_1") (+ "+") (cast_expression "(int)param_2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_2"))) () ")"))))) (; ";")) (if_statement "if (cVar7 == '\0') {\nLAB_0017d4b7:\n    if (param_3 != 0) {\nLAB_0017d423:\n      uVar3 = dcgettext(0,"%s: first non-whitespace character is not `\"\'",5);\n      builtin_error(uVar3,param_1);\n      return 0xffffffff;\n    }\nLAB_0017d4bf:\n    iVar6 = 0;\n    if (param_4 != (uint *)0x0) {\nLAB_0017d403:\n      *param_4 = param_2;\n      goto LAB_0017d405;\n    }\n    uVar5 = (ulong)(int)param_2;\n    iVar4 = (int)*(char *)(param_1 + uVar5);\n    if (iVar4 == 0) {\n      return (ulong)param_2;\n    }\n  }\n  else {\n    if ((cVar7 == ' ') || (cVar7 == '\t')) {\n      lVar2 = (long)(int)(param_2 + 1);\n      do {\n        param_2 = (uint)lVar2;\n        cVar7 = *(char *)(param_1 + lVar2);\n        if (cVar7 == '\0') goto LAB_0017d4b7;\n        lVar2 = lVar2 + 1;\n      } while ((cVar7 == ' ') || (cVar7 == '\t'));\n    }\n    if ((cVar7 != '\"') && (param_3 != 0)) goto LAB_0017d423;\n    if ((cVar7 != '\"') && (cVar7 != '\'')) goto LAB_0017d4bf;\n    iVar6 = (int)cVar7;\n    if (param_4 != (uint *)0x0) {\n      param_2 = (param_2 + 1) - (uint)(iVar6 == 0);\n      goto LAB_0017d403;\n    }\nLAB_0017d405:\n    uVar5 = (ulong)(int)param_2;\n    iVar4 = (int)*(char *)(param_1 + uVar5);\n    if (iVar4 == 0) goto LAB_0017d47d;\n  }" (if "if") (parenthesized_expression "(cVar7 == '\0')" (( "(") (binary_expression "cVar7 == '\0'" (identifier "cVar7") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\nLAB_0017d4b7:\n    if (param_3 != 0) {\nLAB_0017d423:\n      uVar3 = dcgettext(0,"%s: first non-whitespace character is not `\"\'",5);\n      builtin_error(uVar3,param_1);\n      return 0xffffffff;\n    }\nLAB_0017d4bf:\n    iVar6 = 0;\n    if (param_4 != (uint *)0x0) {\nLAB_0017d403:\n      *param_4 = param_2;\n      goto LAB_0017d405;\n    }\n    uVar5 = (ulong)(int)param_2;\n    iVar4 = (int)*(char *)(param_1 + uVar5);\n    if (iVar4 == 0) {\n      return (ulong)param_2;\n    }\n  }" ({ "{") (labeled_statement "LAB_0017d4b7:\n    if (param_3 != 0) {\nLAB_0017d423:\n      uVar3 = dcgettext(0,"%s: first non-whitespace character is not `\"\'",5);\n      builtin_error(uVar3,param_1);\n      return 0xffffffff;\n    }" (statement_identifier "LAB_0017d4b7") (: ":") (if_statement "if (param_3 != 0) {\nLAB_0017d423:\n      uVar3 = dcgettext(0,"%s: first non-whitespace character is not `\"\'",5);\n      builtin_error(uVar3,param_1);\n      return 0xffffffff;\n    }" (if "if") (parenthesized_expression "(param_3 != 0)" (( "(") (binary_expression "param_3 != 0" (identifier "param_3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\nLAB_0017d423:\n      uVar3 = dcgettext(0,"%s: first non-whitespace character is not `\"\'",5);\n      builtin_error(uVar3,param_1);\n      return 0xffffffff;\n    }" ({ "{") (labeled_statement "LAB_0017d423:\n      uVar3 = dcgettext(0,"%s: first non-whitespace character is not `\"\'",5);" (statement_identifier "LAB_0017d423") (: ":") (expression_statement "uVar3 = dcgettext(0,"%s: first non-whitespace character is not `\"\'",5);" (assignment_expression "uVar3 = dcgettext(0,"%s: first non-whitespace character is not `\"\'",5)" (identifier "uVar3") (= "=") (call_expression "dcgettext(0,"%s: first non-whitespace character is not `\"\'",5)" (identifier "dcgettext") (argument_list "(0,"%s: first non-whitespace character is not `\"\'",5)" (( "(") (number_literal "0") (, ",") (string_literal ""%s: first non-whitespace character is not `\"\'"" (" """) (string_content "%s: first non-whitespace character is not `") (escape_sequence "\"") (escape_sequence "\'") (" """)) (, ",") (number_literal "5") () ")")))) (; ";"))) (expression_statement "builtin_error(uVar3,param_1);" (call_expression "builtin_error(uVar3,param_1)" (identifier "builtin_error") (argument_list "(uVar3,param_1)" (( "(") (identifier "uVar3") (, ",") (identifier "param_1") () ")"))) (; ";")) (return_statement "return 0xffffffff;" (return "return") (number_literal "0xffffffff") (; ";")) (} "}")))) (labeled_statement "LAB_0017d4bf:\n    iVar6 = 0;" (statement_identifier "LAB_0017d4bf") (: ":") (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" (identifier "iVar6") (= "=") (number_literal "0")) (; ";"))) (if_statement "if (param_4 != (uint *)0x0) {\nLAB_0017d403:\n      *param_4 = param_2;\n      goto LAB_0017d405;\n    }" (if "if") (parenthesized_expression "(param_4 != (uint *)0x0)" (( "(") (binary_expression "param_4 != (uint *)0x0" (identifier "param_4") (!= "!=") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\nLAB_0017d403:\n      *param_4 = param_2;\n      goto LAB_0017d405;\n    }" ({ "{") (labeled_statement "LAB_0017d403:\n      *param_4 = param_2;" (statement_identifier "LAB_0017d403") (: ":") (expression_statement "*param_4 = param_2;" (assignment_expression "*param_4 = param_2" (pointer_expression "*param_4" (* "*") (identifier "param_4")) (= "=") (identifier "param_2")) (; ";"))) (goto_statement "goto LAB_0017d405;" (goto "goto") (statement_identifier "LAB_0017d405") (; ";")) (} "}"))) (expression_statement "uVar5 = (ulong)(int)param_2;" (assignment_expression "uVar5 = (ulong)(int)param_2" (identifier "uVar5") (= "=") (cast_expression "(ulong)(int)param_2" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (cast_expression "(int)param_2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_2")))) (; ";")) (expression_statement "iVar4 = (int)*(char *)(param_1 + uVar5);" (assignment_expression "iVar4 = (int)*(char *)(param_1 + uVar5)" (identifier "iVar4") (= "=") (cast_expression "(int)*(char *)(param_1 + uVar5)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*(char *)(param_1 + uVar5)" (* "*") (cast_expression "(char *)(param_1 + uVar5)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + uVar5)" (( "(") (binary_expression "param_1 + uVar5" (identifier "param_1") (+ "+") (identifier "uVar5")) () ")")))))) (; ";")) (if_statement "if (iVar4 == 0) {\n      return (ulong)param_2;\n    }" (if "if") (parenthesized_expression "(iVar4 == 0)" (( "(") (binary_expression "iVar4 == 0" (identifier "iVar4") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      return (ulong)param_2;\n    }" ({ "{") (return_statement "return (ulong)param_2;" (return "return") (cast_expression "(ulong)param_2" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "param_2")) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n    if ((cVar7 == ' ') || (cVar7 == '\t')) {\n      lVar2 = (long)(int)(param_2 + 1);\n      do {\n        param_2 = (uint)lVar2;\n        cVar7 = *(char *)(param_1 + lVar2);\n        if (cVar7 == '\0') goto LAB_0017d4b7;\n        lVar2 = lVar2 + 1;\n      } while ((cVar7 == ' ') || (cVar7 == '\t'));\n    }\n    if ((cVar7 != '\"') && (param_3 != 0)) goto LAB_0017d423;\n    if ((cVar7 != '\"') && (cVar7 != '\'')) goto LAB_0017d4bf;\n    iVar6 = (int)cVar7;\n    if (param_4 != (uint *)0x0) {\n      param_2 = (param_2 + 1) - (uint)(iVar6 == 0);\n      goto LAB_0017d403;\n    }\nLAB_0017d405:\n    uVar5 = (ulong)(int)param_2;\n    iVar4 = (int)*(char *)(param_1 + uVar5);\n    if (iVar4 == 0) goto LAB_0017d47d;\n  }" (else "else") (compound_statement "{\n    if ((cVar7 == ' ') || (cVar7 == '\t')) {\n      lVar2 = (long)(int)(param_2 + 1);\n      do {\n        param_2 = (uint)lVar2;\n        cVar7 = *(char *)(param_1 + lVar2);\n        if (cVar7 == '\0') goto LAB_0017d4b7;\n        lVar2 = lVar2 + 1;\n      } while ((cVar7 == ' ') || (cVar7 == '\t'));\n    }\n    if ((cVar7 != '\"') && (param_3 != 0)) goto LAB_0017d423;\n    if ((cVar7 != '\"') && (cVar7 != '\'')) goto LAB_0017d4bf;\n    iVar6 = (int)cVar7;\n    if (param_4 != (uint *)0x0) {\n      param_2 = (param_2 + 1) - (uint)(iVar6 == 0);\n      goto LAB_0017d403;\n    }\nLAB_0017d405:\n    uVar5 = (ulong)(int)param_2;\n    iVar4 = (int)*(char *)(param_1 + uVar5);\n    if (iVar4 == 0) goto LAB_0017d47d;\n  }" ({ "{") (if_statement "if ((cVar7 == ' ') || (cVar7 == '\t')) {\n      lVar2 = (long)(int)(param_2 + 1);\n      do {\n        param_2 = (uint)lVar2;\n        cVar7 = *(char *)(param_1 + lVar2);\n        if (cVar7 == '\0') goto LAB_0017d4b7;\n        lVar2 = lVar2 + 1;\n      } while ((cVar7 == ' ') || (cVar7 == '\t'));\n    }" (if "if") (parenthesized_expression "((cVar7 == ' ') || (cVar7 == '\t'))" (( "(") (binary_expression "(cVar7 == ' ') || (cVar7 == '\t')" (parenthesized_expression "(cVar7 == ' ')" (( "(") (binary_expression "cVar7 == ' '" (identifier "cVar7") (== "==") (char_literal "' '" (' "'") (character " ") (' "'"))) () ")")) (|| "||") (parenthesized_expression "(cVar7 == '\t')" (( "(") (binary_expression "cVar7 == '\t'" (identifier "cVar7") (== "==") (char_literal "'\t'" (' "'") (escape_sequence "\t") (' "'"))) () ")"))) () ")")) (compound_statement "{\n      lVar2 = (long)(int)(param_2 + 1);\n      do {\n        param_2 = (uint)lVar2;\n        cVar7 = *(char *)(param_1 + lVar2);\n        if (cVar7 == '\0') goto LAB_0017d4b7;\n        lVar2 = lVar2 + 1;\n      } while ((cVar7 == ' ') || (cVar7 == '\t'));\n    }" ({ "{") (expression_statement "lVar2 = (long)(int)(param_2 + 1);" (assignment_expression "lVar2 = (long)(int)(param_2 + 1)" (identifier "lVar2") (= "=") (cast_expression "(long)(int)(param_2 + 1)" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (cast_expression "(int)(param_2 + 1)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(param_2 + 1)" (( "(") (binary_expression "param_2 + 1" (identifier "param_2") (+ "+") (number_literal "1")) () ")"))))) (; ";")) (do_statement "do {\n        param_2 = (uint)lVar2;\n        cVar7 = *(char *)(param_1 + lVar2);\n        if (cVar7 == '\0') goto LAB_0017d4b7;\n        lVar2 = lVar2 + 1;\n      } while ((cVar7 == ' ') || (cVar7 == '\t'));" (do "do") (compound_statement "{\n        param_2 = (uint)lVar2;\n        cVar7 = *(char *)(param_1 + lVar2);\n        if (cVar7 == '\0') goto LAB_0017d4b7;\n        lVar2 = lVar2 + 1;\n      }" ({ "{") (expression_statement "param_2 = (uint)lVar2;" (assignment_expression "param_2 = (uint)lVar2" (identifier "param_2") (= "=") (cast_expression "(uint)lVar2" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "lVar2"))) (; ";")) (expression_statement "cVar7 = *(char *)(param_1 + lVar2);" (assignment_expression "cVar7 = *(char *)(param_1 + lVar2)" (identifier "cVar7") (= "=") (pointer_expression "*(char *)(param_1 + lVar2)" (* "*") (cast_expression "(char *)(param_1 + lVar2)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + lVar2)" (( "(") (binary_expression "param_1 + lVar2" (identifier "param_1") (+ "+") (identifier "lVar2")) () ")"))))) (; ";")) (if_statement "if (cVar7 == '\0') goto LAB_0017d4b7;" (if "if") (parenthesized_expression "(cVar7 == '\0')" (( "(") (binary_expression "cVar7 == '\0'" (identifier "cVar7") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto LAB_0017d4b7;" (goto "goto") (statement_identifier "LAB_0017d4b7") (; ";"))) (expression_statement "lVar2 = lVar2 + 1;" (assignment_expression "lVar2 = lVar2 + 1" (identifier "lVar2") (= "=") (binary_expression "lVar2 + 1" (identifier "lVar2") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "((cVar7 == ' ') || (cVar7 == '\t'))" (( "(") (binary_expression "(cVar7 == ' ') || (cVar7 == '\t')" (parenthesized_expression "(cVar7 == ' ')" (( "(") (binary_expression "cVar7 == ' '" (identifier "cVar7") (== "==") (char_literal "' '" (' "'") (character " ") (' "'"))) () ")")) (|| "||") (parenthesized_expression "(cVar7 == '\t')" (( "(") (binary_expression "cVar7 == '\t'" (identifier "cVar7") (== "==") (char_literal "'\t'" (' "'") (escape_sequence "\t") (' "'"))) () ")"))) () ")")) (; ";")) (} "}"))) (if_statement "if ((cVar7 != '\"') && (param_3 != 0)) goto LAB_0017d423;" (if "if") (parenthesized_expression "((cVar7 != '\"') && (param_3 != 0))" (( "(") (binary_expression "(cVar7 != '\"') && (param_3 != 0)" (parenthesized_expression "(cVar7 != '\"')" (( "(") (binary_expression "cVar7 != '\"'" (identifier "cVar7") (!= "!=") (char_literal "'\"'" (' "'") (escape_sequence "\"") (' "'"))) () ")")) (&& "&&") (parenthesized_expression "(param_3 != 0)" (( "(") (binary_expression "param_3 != 0" (identifier "param_3") (!= "!=") (number_literal "0")) () ")"))) () ")")) (goto_statement "goto LAB_0017d423;" (goto "goto") (statement_identifier "LAB_0017d423") (; ";"))) (if_statement "if ((cVar7 != '\"') && (cVar7 != '\'')) goto LAB_0017d4bf;" (if "if") (parenthesized_expression "((cVar7 != '\"') && (cVar7 != '\''))" (( "(") (binary_expression "(cVar7 != '\"') && (cVar7 != '\'')" (parenthesized_expression "(cVar7 != '\"')" (( "(") (binary_expression "cVar7 != '\"'" (identifier "cVar7") (!= "!=") (char_literal "'\"'" (' "'") (escape_sequence "\"") (' "'"))) () ")")) (&& "&&") (parenthesized_expression "(cVar7 != '\'')" (( "(") (binary_expression "cVar7 != '\''" (identifier "cVar7") (!= "!=") (char_literal "'\''" (' "'") (escape_sequence "\'") (' "'"))) () ")"))) () ")")) (goto_statement "goto LAB_0017d4bf;" (goto "goto") (statement_identifier "LAB_0017d4bf") (; ";"))) (expression_statement "iVar6 = (int)cVar7;" (assignment_expression "iVar6 = (int)cVar7" (identifier "iVar6") (= "=") (cast_expression "(int)cVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "cVar7"))) (; ";")) (if_statement "if (param_4 != (uint *)0x0) {\n      param_2 = (param_2 + 1) - (uint)(iVar6 == 0);\n      goto LAB_0017d403;\n    }" (if "if") (parenthesized_expression "(param_4 != (uint *)0x0)" (( "(") (binary_expression "param_4 != (uint *)0x0" (identifier "param_4") (!= "!=") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      param_2 = (param_2 + 1) - (uint)(iVar6 == 0);\n      goto LAB_0017d403;\n    }" ({ "{") (expression_statement "param_2 = (param_2 + 1) - (uint)(iVar6 == 0);" (assignment_expression "param_2 = (param_2 + 1) - (uint)(iVar6 == 0)" (identifier "param_2") (= "=") (binary_expression "(param_2 + 1) - (uint)(iVar6 == 0)" (parenthesized_expression "(param_2 + 1)" (( "(") (binary_expression "param_2 + 1" (identifier "param_2") (+ "+") (number_literal "1")) () ")")) (- "-") (call_expression "(uint)(iVar6 == 0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(iVar6 == 0)" (( "(") (binary_expression "iVar6 == 0" (identifier "iVar6") (== "==") (number_literal "0")) () ")"))))) (; ";")) (goto_statement "goto LAB_0017d403;" (goto "goto") (statement_identifier "LAB_0017d403") (; ";")) (} "}"))) (labeled_statement "LAB_0017d405:\n    uVar5 = (ulong)(int)param_2;" (statement_identifier "LAB_0017d405") (: ":") (expression_statement "uVar5 = (ulong)(int)param_2;" (assignment_expression "uVar5 = (ulong)(int)param_2" (identifier "uVar5") (= "=") (cast_expression "(ulong)(int)param_2" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (cast_expression "(int)param_2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_2")))) (; ";"))) (expression_statement "iVar4 = (int)*(char *)(param_1 + uVar5);" (assignment_expression "iVar4 = (int)*(char *)(param_1 + uVar5)" (identifier "iVar4") (= "=") (cast_expression "(int)*(char *)(param_1 + uVar5)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*(char *)(param_1 + uVar5)" (* "*") (cast_expression "(char *)(param_1 + uVar5)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + uVar5)" (( "(") (binary_expression "param_1 + uVar5" (identifier "param_1") (+ "+") (identifier "uVar5")) () ")")))))) (; ";")) (if_statement "if (iVar4 == 0) goto LAB_0017d47d;" (if "if") (parenthesized_expression "(iVar4 == 0)" (( "(") (binary_expression "iVar4 == 0" (identifier "iVar4") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0017d47d;" (goto "goto") (statement_identifier "LAB_0017d47d") (; ";"))) (} "}")))) (expression_statement "bVar1 = false;" (assignment_expression "bVar1 = false" (identifier "bVar1") (= "=") (false "false")) (; ";")) (do_statement "do {\n    if (bVar1) {\n      bVar1 = false;\n    }\n    else if (iVar4 == 0x5c) {\n      bVar1 = true;\n    }\n    else if (iVar4 == iVar6) {\n      return uVar5 & 0xffffffff;\n    }\n    param_2 = (int)uVar5 + 1;\n    iVar4 = (int)*(char *)(param_1 + 1 + uVar5);\n    uVar5 = uVar5 + 1;\n  } while (iVar4 != 0);" (do "do") (compound_statement "{\n    if (bVar1) {\n      bVar1 = false;\n    }\n    else if (iVar4 == 0x5c) {\n      bVar1 = true;\n    }\n    else if (iVar4 == iVar6) {\n      return uVar5 & 0xffffffff;\n    }\n    param_2 = (int)uVar5 + 1;\n    iVar4 = (int)*(char *)(param_1 + 1 + uVar5);\n    uVar5 = uVar5 + 1;\n  }" ({ "{") (if_statement "if (bVar1) {\n      bVar1 = false;\n    }\n    else if (iVar4 == 0x5c) {\n      bVar1 = true;\n    }\n    else if (iVar4 == iVar6) {\n      return uVar5 & 0xffffffff;\n    }" (if "if") (parenthesized_expression "(bVar1)" (( "(") (identifier "bVar1") () ")")) (compound_statement "{\n      bVar1 = false;\n    }" ({ "{") (expression_statement "bVar1 = false;" (assignment_expression "bVar1 = false" (identifier "bVar1") (= "=") (false "false")) (; ";")) (} "}")) (else_clause "else if (iVar4 == 0x5c) {\n      bVar1 = true;\n    }\n    else if (iVar4 == iVar6) {\n      return uVar5 & 0xffffffff;\n    }" (else "else") (if_statement "if (iVar4 == 0x5c) {\n      bVar1 = true;\n    }\n    else if (iVar4 == iVar6) {\n      return uVar5 & 0xffffffff;\n    }" (if "if") (parenthesized_expression "(iVar4 == 0x5c)" (( "(") (binary_expression "iVar4 == 0x5c" (identifier "iVar4") (== "==") (number_literal "0x5c")) () ")")) (compound_statement "{\n      bVar1 = true;\n    }" ({ "{") (expression_statement "bVar1 = true;" (assignment_expression "bVar1 = true" (identifier "bVar1") (= "=") (true "true")) (; ";")) (} "}")) (else_clause "else if (iVar4 == iVar6) {\n      return uVar5 & 0xffffffff;\n    }" (else "else") (if_statement "if (iVar4 == iVar6) {\n      return uVar5 & 0xffffffff;\n    }" (if "if") (parenthesized_expression "(iVar4 == iVar6)" (( "(") (binary_expression "iVar4 == iVar6" (identifier "iVar4") (== "==") (identifier "iVar6")) () ")")) (compound_statement "{\n      return uVar5 & 0xffffffff;\n    }" ({ "{") (return_statement "return uVar5 & 0xffffffff;" (return "return") (binary_expression "uVar5 & 0xffffffff" (identifier "uVar5") (& "&") (number_literal "0xffffffff")) (; ";")) (} "}"))))))) (expression_statement "param_2 = (int)uVar5 + 1;" (assignment_expression "param_2 = (int)uVar5 + 1" (identifier "param_2") (= "=") (binary_expression "(int)uVar5 + 1" (cast_expression "(int)uVar5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar5")) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar4 = (int)*(char *)(param_1 + 1 + uVar5);" (assignment_expression "iVar4 = (int)*(char *)(param_1 + 1 + uVar5)" (identifier "iVar4") (= "=") (cast_expression "(int)*(char *)(param_1 + 1 + uVar5)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*(char *)(param_1 + 1 + uVar5)" (* "*") (cast_expression "(char *)(param_1 + 1 + uVar5)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 1 + uVar5)" (( "(") (binary_expression "param_1 + 1 + uVar5" (binary_expression "param_1 + 1" (identifier "param_1") (+ "+") (number_literal "1")) (+ "+") (identifier "uVar5")) () ")")))))) (; ";")) (expression_statement "uVar5 = uVar5 + 1;" (assignment_expression "uVar5 = uVar5 + 1" (identifier "uVar5") (= "=") (binary_expression "uVar5 + 1" (identifier "uVar5") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar4 != 0)" (( "(") (binary_expression "iVar4 != 0" (identifier "iVar4") (!= "!=") (number_literal "0")) () ")")) (; ";")) (labeled_statement "LAB_0017d47d:\n  uVar5 = (ulong)param_2;" (statement_identifier "LAB_0017d47d") (: ":") (expression_statement "uVar5 = (ulong)param_2;" (assignment_expression "uVar5 = (ulong)param_2" (identifier "uVar5") (= "=") (cast_expression "(ulong)param_2" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "param_2"))) (; ";"))) (if_statement "if (iVar6 != 0) {\n    uVar3 = dcgettext(0,"no closing `%c\' in %s",5);\n    builtin_error(uVar3,iVar6,param_1);\n    uVar5 = 0xffffffff;\n  }" (if "if") (parenthesized_expression "(iVar6 != 0)" (( "(") (binary_expression "iVar6 != 0" (identifier "iVar6") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    uVar3 = dcgettext(0,"no closing `%c\' in %s",5);\n    builtin_error(uVar3,iVar6,param_1);\n    uVar5 = 0xffffffff;\n  }" ({ "{") (expression_statement "uVar3 = dcgettext(0,"no closing `%c\' in %s",5);" (assignment_expression "uVar3 = dcgettext(0,"no closing `%c\' in %s",5)" (identifier "uVar3") (= "=") (call_expression "dcgettext(0,"no closing `%c\' in %s",5)" (identifier "dcgettext") (argument_list "(0,"no closing `%c\' in %s",5)" (( "(") (number_literal "0") (, ",") (string_literal ""no closing `%c\' in %s"" (" """) (string_content "no closing `%c") (escape_sequence "\'") (string_content " in %s") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "builtin_error(uVar3,iVar6,param_1);" (call_expression "builtin_error(uVar3,iVar6,param_1)" (identifier "builtin_error") (argument_list "(uVar3,iVar6,param_1)" (( "(") (identifier "uVar3") (, ",") (identifier "iVar6") (, ",") (identifier "param_1") () ")"))) (; ";")) (expression_statement "uVar5 = 0xffffffff;" (assignment_expression "uVar5 = 0xffffffff" (identifier "uVar5") (= "=") (number_literal "0xffffffff")) (; ";")) (} "}"))) (return_statement "return uVar5;" (return "return") (identifier "uVar5") (; ";")) (} "}")))

int function_1(char *string,int var_7,int var_2,int *var_5)

{
  bool bVar1;
  long var_8;
  char *pcVar3;
  type_1 var_6;
  type_1 var_9;
  char var_1;
  
  var_1 = string[var_7];
  if (var_1 == '\0') {
LAB_0017d4b7:
    if (var_2 != 0) {
LAB_0017d423:
      pcVar3 = (char *)var_3(0,"%s: first non-whitespace character is not `\"\'",5);
      var_4(pcVar3,string);
      return -1;
    }
LAB_0017d4bf:
    var_9 = 0;
    if (var_5 != (int *)0x0) {
LAB_0017d403:
      *var_5 = var_7;
      goto LAB_0017d405;
    }
    var_8 = (long)var_7;
    var_6 = (type_1)string[var_8];
    if (var_6 == 0) {
      return var_7;
    }
  }
  else {
    if ((var_1 == ' ') || (var_1 == '\t')) {
      var_8 = (long)(var_7 + 1);
      do {
        var_7 = (int)var_8;
        var_1 = string[var_8];
        if (var_1 == '\0') goto LAB_0017d4b7;
        var_8 = var_8 + 1;
      } while ((var_1 == ' ') || (var_1 == '\t'));
    }
    if ((var_1 != '\"') && (var_2 != 0)) goto LAB_0017d423;
    if ((var_1 != '\"') && (var_1 != '\'')) goto LAB_0017d4bf;
    var_9 = (type_1)var_1;
    if (var_5 != (int *)0x0) {
      var_7 = (var_7 + 1) - (type_1)(var_9 == 0);
      goto LAB_0017d403;
    }
LAB_0017d405:
    var_8 = (long)var_7;
    var_6 = (type_1)string[var_8];
    if (var_6 == 0) goto LAB_0017d47d;
  }
  bVar1 = false;
  do {
    if (bVar1) {
      bVar1 = false;
    }
    else if (var_6 == 0x5c) {
      bVar1 = true;
    }
    else if (var_6 == var_9) {
      return (int)var_8;
    }
    var_7 = (int)var_8 + 1;
    var_6 = (type_1)string[var_8 + 1];
    var_8 = var_8 + 1;
  } while (var_6 != 0);
LAB_0017d47d:
  if (var_9 != 0) {
    pcVar3 = (char *)var_3(0,"no closing `%c\' in %s",5);
    var_4(pcVar3,(type_2)var_9,string);
    var_7 = -1;
  }
  return var_7;
}


(translation_unit (function_definition type: (type_identifier) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (sized_type_specifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (primitive_type) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))))) body: (compound_statement (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (sized_type_specifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (string_literal (string_content) (escape_sequence) (escape_sequence)) (number_literal)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))) (return_statement (number_literal))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier)))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (character)))) right: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (character)))) right: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) consequence: (goto_statement label: (statement_identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))) right: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal))))))) (goto_statement label: (statement_identifier)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (false))) (do_statement body: (compound_statement (if_statement condition: (parenthesized_expression (identifier)) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (false)))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (true)))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (return_statement (binary_expression left: (identifier) right: (number_literal))))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (identifier)))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (string_literal (string_content) (escape_sequence) (string_content)) (number_literal))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))))) (return_statement (identifier)))))

ulong MASKED(long param_1,uint param_2,int param_3,uint *param_4)

{
  bool bVar1;
  long lVar2;
  undefined8 uVar3;
  int iVar4;
  ulong uVar5;
  int iVar6;
  char cVar7;
  
  cVar7 = *(char *)(param_1 + (int)param_2);
  if (cVar7 == '\0') {
LAB_0017d4b7:
    if (param_3 != 0) {
LAB_0017d423:
      uVar3 = dcgettext(0,"%s: first non-whitespace character is not `\"\'",5);
      builtin_error(uVar3,param_1);
      return 0xffffffff;
    }
LAB_0017d4bf:
    iVar6 = 0;
    if (param_4 != (uint *)0x0) {
LAB_0017d403:
      *param_4 = param_2;
      goto LAB_0017d405;
    }
    uVar5 = (ulong)(int)param_2;
    iVar4 = (int)*(char *)(param_1 + uVar5);
    if (iVar4 == 0) {
      return (ulong)param_2;
    }
  }
  else {
    if ((cVar7 == ' ') || (cVar7 == '\t')) {
      lVar2 = (long)(int)(param_2 + 1);
      do {
        param_2 = (uint)lVar2;
        cVar7 = *(char *)(param_1 + lVar2);
        if (cVar7 == '\0') goto LAB_0017d4b7;
        lVar2 = lVar2 + 1;
      } while ((cVar7 == ' ') || (cVar7 == '\t'));
    }
    if ((cVar7 != '\"') && (param_3 != 0)) goto LAB_0017d423;
    if ((cVar7 != '\"') && (cVar7 != '\'')) goto LAB_0017d4bf;
    iVar6 = (int)cVar7;
    if (param_4 != (uint *)0x0) {
      param_2 = (param_2 + 1) - (uint)(iVar6 == 0);
      goto LAB_0017d403;
    }
LAB_0017d405:
    uVar5 = (ulong)(int)param_2;
    iVar4 = (int)*(char *)(param_1 + uVar5);
    if (iVar4 == 0) goto LAB_0017d47d;
  }
  bVar1 = false;
  do {
    if (bVar1) {
      bVar1 = false;
    }
    else if (iVar4 == 0x5c) {
      bVar1 = true;
    }
    else if (iVar4 == iVar6) {
      return uVar5 & 0xffffffff;
    }
    param_2 = (int)uVar5 + 1;
    iVar4 = (int)*(char *)(param_1 + 1 + uVar5);
    uVar5 = uVar5 + 1;
  } while (iVar4 != 0);
LAB_0017d47d:
  uVar5 = (ulong)param_2;
  if (iVar6 != 0) {
    uVar3 = dcgettext(0,"no closing `%c\' in %s",5);
    builtin_error(uVar3,iVar6,param_1);
    uVar5 = 0xffffffff;
  }
  return uVar5;
}

