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

size_t host_strcspn(char *s,char *set)

{
  char *pcVar1;
  size_t sVar2;
  char cVar3;
  int __c;
  int iVar4;
  char *pcVar5;
  
  __c = (int)*s;
  if (*s != '\0') {
    iVar4 = 0;
    pcVar5 = s;
LAB_0001d391:
    do {
      cVar3 = (char)__c;
      if (cVar3 == '[') {
        iVar4 = iVar4 + 1;
      }
      else {
        if (cVar3 == ']') {
          if (iVar4 != 0) {
            pcVar5 = pcVar5 + 1;
            __c = (int)*pcVar5;
            iVar4 = iVar4 + -1;
            if (*pcVar5 == '\0') break;
            goto LAB_0001d391;
          }
        }
        else if ((cVar3 == ':') && (iVar4 != 0)) goto LAB_0001d3cb;
        pcVar1 = strchr(set,__c);
        if (pcVar1 != (char *)0x0) {
          return (int)pcVar5 - (int)s;
        }
      }
LAB_0001d3cb:
      pcVar5 = pcVar5 + 1;
      __c = (int)*pcVar5;
    } while (*pcVar5 != '\0');
  }
  sVar2 = strlen(s);
  return sVar2;
}



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

size_t FUN_0001d370(char *param_1,char *param_2)

{
  char *pcVar1;
  size_t sVar2;
  char cVar3;
  int __c;
  int iVar4;
  char *pcVar5;
  
  __c = (int)*param_1;
  if (*param_1 != '\0') {
    iVar4 = 0;
    pcVar5 = param_1;
LAB_0001d391:
    do {
      cVar3 = (char)__c;
      if (cVar3 == '[') {
        iVar4 = iVar4 + 1;
      }
      else {
        if (cVar3 == ']') {
          if (iVar4 != 0) {
            pcVar5 = pcVar5 + 1;
            __c = (int)*pcVar5;
            iVar4 = iVar4 + -1;
            if (*pcVar5 == '\0') break;
            goto LAB_0001d391;
          }
        }
        else if ((cVar3 == ':') && (iVar4 != 0)) goto LAB_0001d3cb;
        pcVar1 = strchr(param_2,__c);
        if (pcVar1 != (char *)0x0) {
          return (int)pcVar5 - (int)param_1;
        }
      }
LAB_0001d3cb:
      pcVar5 = pcVar5 + 1;
      __c = (int)*pcVar5;
    } while (*pcVar5 != '\0');
  }
  sVar2 = strlen(param_1);
  return sVar2;
}


PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
CALL 0x00014560
ADD EBX,0x52aeb
SUB ESP,0xc
MOV ESI,dword ptr [ESP + 0x20]
MOVSX EDX,byte ptr [ESI]
TEST DL,DL
JZ 0x0001d3d5
MOV EDI,ESI
XOR EBP,EBP
CMP DL,0x5b
JZ 0x0001d3c8
CMP DL,0x5d
JZ 0x0001d3f0
CMP DL,0x3a
JNZ 0x0001d3a4
TEST EBP,EBP
JNZ 0x0001d3cb
SUB ESP,0x8
PUSH EDX
PUSH dword ptr [ESP + 0x30]
CALL 0x00012300
ADD ESP,0x10
TEST EAX,EAX
JZ 0x0001d3cb
ADD ESP,0xc
MOV EAX,EDI
POP EBX
SUB EAX,ESI
POP ESI
POP EDI
POP EBP
RET
ADD EBP,0x1
ADD EDI,0x1
MOVSX EDX,byte ptr [EDI]
TEST DL,DL
JNZ 0x0001d391
SUB ESP,0xc
PUSH ESI
CALL 0x00012310
ADD ESP,0x10
ADD ESP,0xc
POP EBX
POP ESI
POP EDI
POP EBP
RET
TEST EBP,EBP
JZ 0x0001d3a4
ADD EDI,0x1
MOVSX EDX,byte ptr [EDI]
SUB EBP,0x1
TEST DL,DL
JNZ 0x0001d391
JMP 0x0001d3d5
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nsize_t FUN_0001d370(char *param_1,char *param_2)\n\n{\n  char *pcVar1;\n  size_t sVar2;\n  char cVar3;\n  int __c;\n  int iVar4;\n  char *pcVar5;\n  \n  __c = (int)*param_1;\n  if (*param_1 != '\0') {\n    iVar4 = 0;\n    pcVar5 = param_1;\nLAB_0001d391:\n    do {\n      cVar3 = (char)__c;\n      if (cVar3 == '[') {\n        iVar4 = iVar4 + 1;\n      }\n      else {\n        if (cVar3 == ']') {\n          if (iVar4 != 0) {\n            pcVar5 = pcVar5 + 1;\n            __c = (int)*pcVar5;\n            iVar4 = iVar4 + -1;\n            if (*pcVar5 == '\0') break;\n            goto LAB_0001d391;\n          }\n        }\n        else if ((cVar3 == ':') && (iVar4 != 0)) goto LAB_0001d3cb;\n        pcVar1 = strchr(param_2,__c);\n        if (pcVar1 != (char *)0x0) {\n          return (int)pcVar5 - (int)param_1;\n        }\n      }\nLAB_0001d3cb:\n      pcVar5 = pcVar5 + 1;\n      __c = (int)*pcVar5;\n    } while (*pcVar5 != '\0');\n  }\n  sVar2 = strlen(param_1);\n  return sVar2;\n}\n\n" comment (function_definition "size_t FUN_0001d370(char *param_1,char *param_2)\n\n{\n  char *pcVar1;\n  size_t sVar2;\n  char cVar3;\n  int __c;\n  int iVar4;\n  char *pcVar5;\n  \n  __c = (int)*param_1;\n  if (*param_1 != '\0') {\n    iVar4 = 0;\n    pcVar5 = param_1;\nLAB_0001d391:\n    do {\n      cVar3 = (char)__c;\n      if (cVar3 == '[') {\n        iVar4 = iVar4 + 1;\n      }\n      else {\n        if (cVar3 == ']') {\n          if (iVar4 != 0) {\n            pcVar5 = pcVar5 + 1;\n            __c = (int)*pcVar5;\n            iVar4 = iVar4 + -1;\n            if (*pcVar5 == '\0') break;\n            goto LAB_0001d391;\n          }\n        }\n        else if ((cVar3 == ':') && (iVar4 != 0)) goto LAB_0001d3cb;\n        pcVar1 = strchr(param_2,__c);\n        if (pcVar1 != (char *)0x0) {\n          return (int)pcVar5 - (int)param_1;\n        }\n      }\nLAB_0001d3cb:\n      pcVar5 = pcVar5 + 1;\n      __c = (int)*pcVar5;\n    } while (*pcVar5 != '\0');\n  }\n  sVar2 = strlen(param_1);\n  return sVar2;\n}" primitive_type (function_declarator "FUN_0001d370(char *param_1,char *param_2)" identifier (parameter_list "(char *param_1,char *param_2)" ( (parameter_declaration "char *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "char *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) ))) (compound_statement "{\n  char *pcVar1;\n  size_t sVar2;\n  char cVar3;\n  int __c;\n  int iVar4;\n  char *pcVar5;\n  \n  __c = (int)*param_1;\n  if (*param_1 != '\0') {\n    iVar4 = 0;\n    pcVar5 = param_1;\nLAB_0001d391:\n    do {\n      cVar3 = (char)__c;\n      if (cVar3 == '[') {\n        iVar4 = iVar4 + 1;\n      }\n      else {\n        if (cVar3 == ']') {\n          if (iVar4 != 0) {\n            pcVar5 = pcVar5 + 1;\n            __c = (int)*pcVar5;\n            iVar4 = iVar4 + -1;\n            if (*pcVar5 == '\0') break;\n            goto LAB_0001d391;\n          }\n        }\n        else if ((cVar3 == ':') && (iVar4 != 0)) goto LAB_0001d3cb;\n        pcVar1 = strchr(param_2,__c);\n        if (pcVar1 != (char *)0x0) {\n          return (int)pcVar5 - (int)param_1;\n        }\n      }\nLAB_0001d3cb:\n      pcVar5 = pcVar5 + 1;\n      __c = (int)*pcVar5;\n    } while (*pcVar5 != '\0');\n  }\n  sVar2 = strlen(param_1);\n  return sVar2;\n}" { (declaration "char *pcVar1;" primitive_type (pointer_declarator "*pcVar1" * identifier) ;) (declaration "size_t sVar2;" primitive_type identifier ;) (declaration "char cVar3;" primitive_type identifier ;) (declaration "int __c;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "char *pcVar5;" primitive_type (pointer_declarator "*pcVar5" * identifier) ;) (expression_statement "__c = (int)*param_1;" (assignment_expression "__c = (int)*param_1" identifier = (cast_expression "(int)*param_1" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*param_1" * identifier))) ;) (if_statement "if (*param_1 != '\0') {\n    iVar4 = 0;\n    pcVar5 = param_1;\nLAB_0001d391:\n    do {\n      cVar3 = (char)__c;\n      if (cVar3 == '[') {\n        iVar4 = iVar4 + 1;\n      }\n      else {\n        if (cVar3 == ']') {\n          if (iVar4 != 0) {\n            pcVar5 = pcVar5 + 1;\n            __c = (int)*pcVar5;\n            iVar4 = iVar4 + -1;\n            if (*pcVar5 == '\0') break;\n            goto LAB_0001d391;\n          }\n        }\n        else if ((cVar3 == ':') && (iVar4 != 0)) goto LAB_0001d3cb;\n        pcVar1 = strchr(param_2,__c);\n        if (pcVar1 != (char *)0x0) {\n          return (int)pcVar5 - (int)param_1;\n        }\n      }\nLAB_0001d3cb:\n      pcVar5 = pcVar5 + 1;\n      __c = (int)*pcVar5;\n    } while (*pcVar5 != '\0');\n  }" if (parenthesized_expression "(*param_1 != '\0')" ( (binary_expression "*param_1 != '\0'" (pointer_expression "*param_1" * identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    iVar4 = 0;\n    pcVar5 = param_1;\nLAB_0001d391:\n    do {\n      cVar3 = (char)__c;\n      if (cVar3 == '[') {\n        iVar4 = iVar4 + 1;\n      }\n      else {\n        if (cVar3 == ']') {\n          if (iVar4 != 0) {\n            pcVar5 = pcVar5 + 1;\n            __c = (int)*pcVar5;\n            iVar4 = iVar4 + -1;\n            if (*pcVar5 == '\0') break;\n            goto LAB_0001d391;\n          }\n        }\n        else if ((cVar3 == ':') && (iVar4 != 0)) goto LAB_0001d3cb;\n        pcVar1 = strchr(param_2,__c);\n        if (pcVar1 != (char *)0x0) {\n          return (int)pcVar5 - (int)param_1;\n        }\n      }\nLAB_0001d3cb:\n      pcVar5 = pcVar5 + 1;\n      __c = (int)*pcVar5;\n    } while (*pcVar5 != '\0');\n  }" { (expression_statement "iVar4 = 0;" (assignment_expression "iVar4 = 0" identifier = number_literal) ;) (expression_statement "pcVar5 = param_1;" (assignment_expression "pcVar5 = param_1" identifier = identifier) ;) (labeled_statement "LAB_0001d391:\n    do {\n      cVar3 = (char)__c;\n      if (cVar3 == '[') {\n        iVar4 = iVar4 + 1;\n      }\n      else {\n        if (cVar3 == ']') {\n          if (iVar4 != 0) {\n            pcVar5 = pcVar5 + 1;\n            __c = (int)*pcVar5;\n            iVar4 = iVar4 + -1;\n            if (*pcVar5 == '\0') break;\n            goto LAB_0001d391;\n          }\n        }\n        else if ((cVar3 == ':') && (iVar4 != 0)) goto LAB_0001d3cb;\n        pcVar1 = strchr(param_2,__c);\n        if (pcVar1 != (char *)0x0) {\n          return (int)pcVar5 - (int)param_1;\n        }\n      }\nLAB_0001d3cb:\n      pcVar5 = pcVar5 + 1;\n      __c = (int)*pcVar5;\n    } while (*pcVar5 != '\0');" statement_identifier : (do_statement "do {\n      cVar3 = (char)__c;\n      if (cVar3 == '[') {\n        iVar4 = iVar4 + 1;\n      }\n      else {\n        if (cVar3 == ']') {\n          if (iVar4 != 0) {\n            pcVar5 = pcVar5 + 1;\n            __c = (int)*pcVar5;\n            iVar4 = iVar4 + -1;\n            if (*pcVar5 == '\0') break;\n            goto LAB_0001d391;\n          }\n        }\n        else if ((cVar3 == ':') && (iVar4 != 0)) goto LAB_0001d3cb;\n        pcVar1 = strchr(param_2,__c);\n        if (pcVar1 != (char *)0x0) {\n          return (int)pcVar5 - (int)param_1;\n        }\n      }\nLAB_0001d3cb:\n      pcVar5 = pcVar5 + 1;\n      __c = (int)*pcVar5;\n    } while (*pcVar5 != '\0');" do (compound_statement "{\n      cVar3 = (char)__c;\n      if (cVar3 == '[') {\n        iVar4 = iVar4 + 1;\n      }\n      else {\n        if (cVar3 == ']') {\n          if (iVar4 != 0) {\n            pcVar5 = pcVar5 + 1;\n            __c = (int)*pcVar5;\n            iVar4 = iVar4 + -1;\n            if (*pcVar5 == '\0') break;\n            goto LAB_0001d391;\n          }\n        }\n        else if ((cVar3 == ':') && (iVar4 != 0)) goto LAB_0001d3cb;\n        pcVar1 = strchr(param_2,__c);\n        if (pcVar1 != (char *)0x0) {\n          return (int)pcVar5 - (int)param_1;\n        }\n      }\nLAB_0001d3cb:\n      pcVar5 = pcVar5 + 1;\n      __c = (int)*pcVar5;\n    }" { (expression_statement "cVar3 = (char)__c;" (assignment_expression "cVar3 = (char)__c" identifier = (cast_expression "(char)__c" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (if_statement "if (cVar3 == '[') {\n        iVar4 = iVar4 + 1;\n      }\n      else {\n        if (cVar3 == ']') {\n          if (iVar4 != 0) {\n            pcVar5 = pcVar5 + 1;\n            __c = (int)*pcVar5;\n            iVar4 = iVar4 + -1;\n            if (*pcVar5 == '\0') break;\n            goto LAB_0001d391;\n          }\n        }\n        else if ((cVar3 == ':') && (iVar4 != 0)) goto LAB_0001d3cb;\n        pcVar1 = strchr(param_2,__c);\n        if (pcVar1 != (char *)0x0) {\n          return (int)pcVar5 - (int)param_1;\n        }\n      }" if (parenthesized_expression "(cVar3 == '[')" ( (binary_expression "cVar3 == '['" identifier == (char_literal "'['" ' character ')) )) (compound_statement "{\n        iVar4 = iVar4 + 1;\n      }" { (expression_statement "iVar4 = iVar4 + 1;" (assignment_expression "iVar4 = iVar4 + 1" identifier = (binary_expression "iVar4 + 1" identifier + number_literal)) ;) }) (else_clause "else {\n        if (cVar3 == ']') {\n          if (iVar4 != 0) {\n            pcVar5 = pcVar5 + 1;\n            __c = (int)*pcVar5;\n            iVar4 = iVar4 + -1;\n            if (*pcVar5 == '\0') break;\n            goto LAB_0001d391;\n          }\n        }\n        else if ((cVar3 == ':') && (iVar4 != 0)) goto LAB_0001d3cb;\n        pcVar1 = strchr(param_2,__c);\n        if (pcVar1 != (char *)0x0) {\n          return (int)pcVar5 - (int)param_1;\n        }\n      }" else (compound_statement "{\n        if (cVar3 == ']') {\n          if (iVar4 != 0) {\n            pcVar5 = pcVar5 + 1;\n            __c = (int)*pcVar5;\n            iVar4 = iVar4 + -1;\n            if (*pcVar5 == '\0') break;\n            goto LAB_0001d391;\n          }\n        }\n        else if ((cVar3 == ':') && (iVar4 != 0)) goto LAB_0001d3cb;\n        pcVar1 = strchr(param_2,__c);\n        if (pcVar1 != (char *)0x0) {\n          return (int)pcVar5 - (int)param_1;\n        }\n      }" { (if_statement "if (cVar3 == ']') {\n          if (iVar4 != 0) {\n            pcVar5 = pcVar5 + 1;\n            __c = (int)*pcVar5;\n            iVar4 = iVar4 + -1;\n            if (*pcVar5 == '\0') break;\n            goto LAB_0001d391;\n          }\n        }\n        else if ((cVar3 == ':') && (iVar4 != 0)) goto LAB_0001d3cb;" if (parenthesized_expression "(cVar3 == ']')" ( (binary_expression "cVar3 == ']'" identifier == (char_literal "']'" ' character ')) )) (compound_statement "{\n          if (iVar4 != 0) {\n            pcVar5 = pcVar5 + 1;\n            __c = (int)*pcVar5;\n            iVar4 = iVar4 + -1;\n            if (*pcVar5 == '\0') break;\n            goto LAB_0001d391;\n          }\n        }" { (if_statement "if (iVar4 != 0) {\n            pcVar5 = pcVar5 + 1;\n            __c = (int)*pcVar5;\n            iVar4 = iVar4 + -1;\n            if (*pcVar5 == '\0') break;\n            goto LAB_0001d391;\n          }" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (compound_statement "{\n            pcVar5 = pcVar5 + 1;\n            __c = (int)*pcVar5;\n            iVar4 = iVar4 + -1;\n            if (*pcVar5 == '\0') break;\n            goto LAB_0001d391;\n          }" { (expression_statement "pcVar5 = pcVar5 + 1;" (assignment_expression "pcVar5 = pcVar5 + 1" identifier = (binary_expression "pcVar5 + 1" identifier + number_literal)) ;) (expression_statement "__c = (int)*pcVar5;" (assignment_expression "__c = (int)*pcVar5" identifier = (cast_expression "(int)*pcVar5" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*pcVar5" * identifier))) ;) (expression_statement "iVar4 = iVar4 + -1;" (assignment_expression "iVar4 = iVar4 + -1" identifier = (binary_expression "iVar4 + -1" identifier + number_literal)) ;) (if_statement "if (*pcVar5 == '\0') break;" if (parenthesized_expression "(*pcVar5 == '\0')" ( (binary_expression "*pcVar5 == '\0'" (pointer_expression "*pcVar5" * identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (break_statement "break;" break ;)) (goto_statement "goto LAB_0001d391;" goto statement_identifier ;) })) }) (else_clause "else if ((cVar3 == ':') && (iVar4 != 0)) goto LAB_0001d3cb;" else (if_statement "if ((cVar3 == ':') && (iVar4 != 0)) goto LAB_0001d3cb;" if (parenthesized_expression "((cVar3 == ':') && (iVar4 != 0))" ( (binary_expression "(cVar3 == ':') && (iVar4 != 0)" (parenthesized_expression "(cVar3 == ':')" ( (binary_expression "cVar3 == ':'" identifier == (char_literal "':'" ' character ')) )) && (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) ))) )) (goto_statement "goto LAB_0001d3cb;" goto statement_identifier ;)))) (expression_statement "pcVar1 = strchr(param_2,__c);" (assignment_expression "pcVar1 = strchr(param_2,__c)" identifier = (call_expression "strchr(param_2,__c)" identifier (argument_list "(param_2,__c)" ( identifier , identifier )))) ;) (if_statement "if (pcVar1 != (char *)0x0) {\n          return (int)pcVar5 - (int)param_1;\n        }" if (parenthesized_expression "(pcVar1 != (char *)0x0)" ( (binary_expression "pcVar1 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          return (int)pcVar5 - (int)param_1;\n        }" { (return_statement "return (int)pcVar5 - (int)param_1;" return (binary_expression "(int)pcVar5 - (int)param_1" (cast_expression "(int)pcVar5" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier)) ;) })) }))) (labeled_statement "LAB_0001d3cb:\n      pcVar5 = pcVar5 + 1;" statement_identifier : (expression_statement "pcVar5 = pcVar5 + 1;" (assignment_expression "pcVar5 = pcVar5 + 1" identifier = (binary_expression "pcVar5 + 1" identifier + number_literal)) ;)) (expression_statement "__c = (int)*pcVar5;" (assignment_expression "__c = (int)*pcVar5" identifier = (cast_expression "(int)*pcVar5" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*pcVar5" * identifier))) ;) }) while (parenthesized_expression "(*pcVar5 != '\0')" ( (binary_expression "*pcVar5 != '\0'" (pointer_expression "*pcVar5" * identifier) != (char_literal "'\0'" ' escape_sequence ')) )) ;)) })) (expression_statement "sVar2 = strlen(param_1);" (assignment_expression "sVar2 = strlen(param_1)" identifier = (call_expression "strlen(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) (return_statement "return sVar2;" return identifier ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* WARNING: Unknown calling convention */\n\nsize_t host_strcspn(char *s,char *set)\n\n{\n  char *pcVar1;\n  size_t sVar2;\n  char cVar3;\n  int __c;\n  int iVar4;\n  char *pcVar5;\n  \n  __c = (int)*s;\n  if (*s != '\0') {\n    iVar4 = 0;\n    pcVar5 = s;\nLAB_0001d391:\n    do {\n      cVar3 = (char)__c;\n      if (cVar3 == '[') {\n        iVar4 = iVar4 + 1;\n      }\n      else {\n        if (cVar3 == ']') {\n          if (iVar4 != 0) {\n            pcVar5 = pcVar5 + 1;\n            __c = (int)*pcVar5;\n            iVar4 = iVar4 + -1;\n            if (*pcVar5 == '\0') break;\n            goto LAB_0001d391;\n          }\n        }\n        else if ((cVar3 == ':') && (iVar4 != 0)) goto LAB_0001d3cb;\n        pcVar1 = strchr(set,__c);\n        if (pcVar1 != (char *)0x0) {\n          return (int)pcVar5 - (int)s;\n        }\n      }\nLAB_0001d3cb:\n      pcVar5 = pcVar5 + 1;\n      __c = (int)*pcVar5;\n    } while (*pcVar5 != '\0');\n  }\n  sVar2 = strlen(s);\n  return sVar2;\n}\n\n" comment comment (function_definition "size_t host_strcspn(char *s,char *set)\n\n{\n  char *pcVar1;\n  size_t sVar2;\n  char cVar3;\n  int __c;\n  int iVar4;\n  char *pcVar5;\n  \n  __c = (int)*s;\n  if (*s != '\0') {\n    iVar4 = 0;\n    pcVar5 = s;\nLAB_0001d391:\n    do {\n      cVar3 = (char)__c;\n      if (cVar3 == '[') {\n        iVar4 = iVar4 + 1;\n      }\n      else {\n        if (cVar3 == ']') {\n          if (iVar4 != 0) {\n            pcVar5 = pcVar5 + 1;\n            __c = (int)*pcVar5;\n            iVar4 = iVar4 + -1;\n            if (*pcVar5 == '\0') break;\n            goto LAB_0001d391;\n          }\n        }\n        else if ((cVar3 == ':') && (iVar4 != 0)) goto LAB_0001d3cb;\n        pcVar1 = strchr(set,__c);\n        if (pcVar1 != (char *)0x0) {\n          return (int)pcVar5 - (int)s;\n        }\n      }\nLAB_0001d3cb:\n      pcVar5 = pcVar5 + 1;\n      __c = (int)*pcVar5;\n    } while (*pcVar5 != '\0');\n  }\n  sVar2 = strlen(s);\n  return sVar2;\n}" primitive_type (function_declarator "host_strcspn(char *s,char *set)" identifier (parameter_list "(char *s,char *set)" ( (parameter_declaration "char *s" primitive_type (pointer_declarator "*s" * identifier)) , (parameter_declaration "char *set" primitive_type (pointer_declarator "*set" * identifier)) ))) (compound_statement "{\n  char *pcVar1;\n  size_t sVar2;\n  char cVar3;\n  int __c;\n  int iVar4;\n  char *pcVar5;\n  \n  __c = (int)*s;\n  if (*s != '\0') {\n    iVar4 = 0;\n    pcVar5 = s;\nLAB_0001d391:\n    do {\n      cVar3 = (char)__c;\n      if (cVar3 == '[') {\n        iVar4 = iVar4 + 1;\n      }\n      else {\n        if (cVar3 == ']') {\n          if (iVar4 != 0) {\n            pcVar5 = pcVar5 + 1;\n            __c = (int)*pcVar5;\n            iVar4 = iVar4 + -1;\n            if (*pcVar5 == '\0') break;\n            goto LAB_0001d391;\n          }\n        }\n        else if ((cVar3 == ':') && (iVar4 != 0)) goto LAB_0001d3cb;\n        pcVar1 = strchr(set,__c);\n        if (pcVar1 != (char *)0x0) {\n          return (int)pcVar5 - (int)s;\n        }\n      }\nLAB_0001d3cb:\n      pcVar5 = pcVar5 + 1;\n      __c = (int)*pcVar5;\n    } while (*pcVar5 != '\0');\n  }\n  sVar2 = strlen(s);\n  return sVar2;\n}" { (declaration "char *pcVar1;" primitive_type (pointer_declarator "*pcVar1" * identifier) ;) (declaration "size_t sVar2;" primitive_type identifier ;) (declaration "char cVar3;" primitive_type identifier ;) (declaration "int __c;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "char *pcVar5;" primitive_type (pointer_declarator "*pcVar5" * identifier) ;) (expression_statement "__c = (int)*s;" (assignment_expression "__c = (int)*s" identifier = (cast_expression "(int)*s" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*s" * identifier))) ;) (if_statement "if (*s != '\0') {\n    iVar4 = 0;\n    pcVar5 = s;\nLAB_0001d391:\n    do {\n      cVar3 = (char)__c;\n      if (cVar3 == '[') {\n        iVar4 = iVar4 + 1;\n      }\n      else {\n        if (cVar3 == ']') {\n          if (iVar4 != 0) {\n            pcVar5 = pcVar5 + 1;\n            __c = (int)*pcVar5;\n            iVar4 = iVar4 + -1;\n            if (*pcVar5 == '\0') break;\n            goto LAB_0001d391;\n          }\n        }\n        else if ((cVar3 == ':') && (iVar4 != 0)) goto LAB_0001d3cb;\n        pcVar1 = strchr(set,__c);\n        if (pcVar1 != (char *)0x0) {\n          return (int)pcVar5 - (int)s;\n        }\n      }\nLAB_0001d3cb:\n      pcVar5 = pcVar5 + 1;\n      __c = (int)*pcVar5;\n    } while (*pcVar5 != '\0');\n  }" if (parenthesized_expression "(*s != '\0')" ( (binary_expression "*s != '\0'" (pointer_expression "*s" * identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    iVar4 = 0;\n    pcVar5 = s;\nLAB_0001d391:\n    do {\n      cVar3 = (char)__c;\n      if (cVar3 == '[') {\n        iVar4 = iVar4 + 1;\n      }\n      else {\n        if (cVar3 == ']') {\n          if (iVar4 != 0) {\n            pcVar5 = pcVar5 + 1;\n            __c = (int)*pcVar5;\n            iVar4 = iVar4 + -1;\n            if (*pcVar5 == '\0') break;\n            goto LAB_0001d391;\n          }\n        }\n        else if ((cVar3 == ':') && (iVar4 != 0)) goto LAB_0001d3cb;\n        pcVar1 = strchr(set,__c);\n        if (pcVar1 != (char *)0x0) {\n          return (int)pcVar5 - (int)s;\n        }\n      }\nLAB_0001d3cb:\n      pcVar5 = pcVar5 + 1;\n      __c = (int)*pcVar5;\n    } while (*pcVar5 != '\0');\n  }" { (expression_statement "iVar4 = 0;" (assignment_expression "iVar4 = 0" identifier = number_literal) ;) (expression_statement "pcVar5 = s;" (assignment_expression "pcVar5 = s" identifier = identifier) ;) (labeled_statement "LAB_0001d391:\n    do {\n      cVar3 = (char)__c;\n      if (cVar3 == '[') {\n        iVar4 = iVar4 + 1;\n      }\n      else {\n        if (cVar3 == ']') {\n          if (iVar4 != 0) {\n            pcVar5 = pcVar5 + 1;\n            __c = (int)*pcVar5;\n            iVar4 = iVar4 + -1;\n            if (*pcVar5 == '\0') break;\n            goto LAB_0001d391;\n          }\n        }\n        else if ((cVar3 == ':') && (iVar4 != 0)) goto LAB_0001d3cb;\n        pcVar1 = strchr(set,__c);\n        if (pcVar1 != (char *)0x0) {\n          return (int)pcVar5 - (int)s;\n        }\n      }\nLAB_0001d3cb:\n      pcVar5 = pcVar5 + 1;\n      __c = (int)*pcVar5;\n    } while (*pcVar5 != '\0');" statement_identifier : (do_statement "do {\n      cVar3 = (char)__c;\n      if (cVar3 == '[') {\n        iVar4 = iVar4 + 1;\n      }\n      else {\n        if (cVar3 == ']') {\n          if (iVar4 != 0) {\n            pcVar5 = pcVar5 + 1;\n            __c = (int)*pcVar5;\n            iVar4 = iVar4 + -1;\n            if (*pcVar5 == '\0') break;\n            goto LAB_0001d391;\n          }\n        }\n        else if ((cVar3 == ':') && (iVar4 != 0)) goto LAB_0001d3cb;\n        pcVar1 = strchr(set,__c);\n        if (pcVar1 != (char *)0x0) {\n          return (int)pcVar5 - (int)s;\n        }\n      }\nLAB_0001d3cb:\n      pcVar5 = pcVar5 + 1;\n      __c = (int)*pcVar5;\n    } while (*pcVar5 != '\0');" do (compound_statement "{\n      cVar3 = (char)__c;\n      if (cVar3 == '[') {\n        iVar4 = iVar4 + 1;\n      }\n      else {\n        if (cVar3 == ']') {\n          if (iVar4 != 0) {\n            pcVar5 = pcVar5 + 1;\n            __c = (int)*pcVar5;\n            iVar4 = iVar4 + -1;\n            if (*pcVar5 == '\0') break;\n            goto LAB_0001d391;\n          }\n        }\n        else if ((cVar3 == ':') && (iVar4 != 0)) goto LAB_0001d3cb;\n        pcVar1 = strchr(set,__c);\n        if (pcVar1 != (char *)0x0) {\n          return (int)pcVar5 - (int)s;\n        }\n      }\nLAB_0001d3cb:\n      pcVar5 = pcVar5 + 1;\n      __c = (int)*pcVar5;\n    }" { (expression_statement "cVar3 = (char)__c;" (assignment_expression "cVar3 = (char)__c" identifier = (cast_expression "(char)__c" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (if_statement "if (cVar3 == '[') {\n        iVar4 = iVar4 + 1;\n      }\n      else {\n        if (cVar3 == ']') {\n          if (iVar4 != 0) {\n            pcVar5 = pcVar5 + 1;\n            __c = (int)*pcVar5;\n            iVar4 = iVar4 + -1;\n            if (*pcVar5 == '\0') break;\n            goto LAB_0001d391;\n          }\n        }\n        else if ((cVar3 == ':') && (iVar4 != 0)) goto LAB_0001d3cb;\n        pcVar1 = strchr(set,__c);\n        if (pcVar1 != (char *)0x0) {\n          return (int)pcVar5 - (int)s;\n        }\n      }" if (parenthesized_expression "(cVar3 == '[')" ( (binary_expression "cVar3 == '['" identifier == (char_literal "'['" ' character ')) )) (compound_statement "{\n        iVar4 = iVar4 + 1;\n      }" { (expression_statement "iVar4 = iVar4 + 1;" (assignment_expression "iVar4 = iVar4 + 1" identifier = (binary_expression "iVar4 + 1" identifier + number_literal)) ;) }) (else_clause "else {\n        if (cVar3 == ']') {\n          if (iVar4 != 0) {\n            pcVar5 = pcVar5 + 1;\n            __c = (int)*pcVar5;\n            iVar4 = iVar4 + -1;\n            if (*pcVar5 == '\0') break;\n            goto LAB_0001d391;\n          }\n        }\n        else if ((cVar3 == ':') && (iVar4 != 0)) goto LAB_0001d3cb;\n        pcVar1 = strchr(set,__c);\n        if (pcVar1 != (char *)0x0) {\n          return (int)pcVar5 - (int)s;\n        }\n      }" else (compound_statement "{\n        if (cVar3 == ']') {\n          if (iVar4 != 0) {\n            pcVar5 = pcVar5 + 1;\n            __c = (int)*pcVar5;\n            iVar4 = iVar4 + -1;\n            if (*pcVar5 == '\0') break;\n            goto LAB_0001d391;\n          }\n        }\n        else if ((cVar3 == ':') && (iVar4 != 0)) goto LAB_0001d3cb;\n        pcVar1 = strchr(set,__c);\n        if (pcVar1 != (char *)0x0) {\n          return (int)pcVar5 - (int)s;\n        }\n      }" { (if_statement "if (cVar3 == ']') {\n          if (iVar4 != 0) {\n            pcVar5 = pcVar5 + 1;\n            __c = (int)*pcVar5;\n            iVar4 = iVar4 + -1;\n            if (*pcVar5 == '\0') break;\n            goto LAB_0001d391;\n          }\n        }\n        else if ((cVar3 == ':') && (iVar4 != 0)) goto LAB_0001d3cb;" if (parenthesized_expression "(cVar3 == ']')" ( (binary_expression "cVar3 == ']'" identifier == (char_literal "']'" ' character ')) )) (compound_statement "{\n          if (iVar4 != 0) {\n            pcVar5 = pcVar5 + 1;\n            __c = (int)*pcVar5;\n            iVar4 = iVar4 + -1;\n            if (*pcVar5 == '\0') break;\n            goto LAB_0001d391;\n          }\n        }" { (if_statement "if (iVar4 != 0) {\n            pcVar5 = pcVar5 + 1;\n            __c = (int)*pcVar5;\n            iVar4 = iVar4 + -1;\n            if (*pcVar5 == '\0') break;\n            goto LAB_0001d391;\n          }" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (compound_statement "{\n            pcVar5 = pcVar5 + 1;\n            __c = (int)*pcVar5;\n            iVar4 = iVar4 + -1;\n            if (*pcVar5 == '\0') break;\n            goto LAB_0001d391;\n          }" { (expression_statement "pcVar5 = pcVar5 + 1;" (assignment_expression "pcVar5 = pcVar5 + 1" identifier = (binary_expression "pcVar5 + 1" identifier + number_literal)) ;) (expression_statement "__c = (int)*pcVar5;" (assignment_expression "__c = (int)*pcVar5" identifier = (cast_expression "(int)*pcVar5" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*pcVar5" * identifier))) ;) (expression_statement "iVar4 = iVar4 + -1;" (assignment_expression "iVar4 = iVar4 + -1" identifier = (binary_expression "iVar4 + -1" identifier + number_literal)) ;) (if_statement "if (*pcVar5 == '\0') break;" if (parenthesized_expression "(*pcVar5 == '\0')" ( (binary_expression "*pcVar5 == '\0'" (pointer_expression "*pcVar5" * identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (break_statement "break;" break ;)) (goto_statement "goto LAB_0001d391;" goto statement_identifier ;) })) }) (else_clause "else if ((cVar3 == ':') && (iVar4 != 0)) goto LAB_0001d3cb;" else (if_statement "if ((cVar3 == ':') && (iVar4 != 0)) goto LAB_0001d3cb;" if (parenthesized_expression "((cVar3 == ':') && (iVar4 != 0))" ( (binary_expression "(cVar3 == ':') && (iVar4 != 0)" (parenthesized_expression "(cVar3 == ':')" ( (binary_expression "cVar3 == ':'" identifier == (char_literal "':'" ' character ')) )) && (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) ))) )) (goto_statement "goto LAB_0001d3cb;" goto statement_identifier ;)))) (expression_statement "pcVar1 = strchr(set,__c);" (assignment_expression "pcVar1 = strchr(set,__c)" identifier = (call_expression "strchr(set,__c)" identifier (argument_list "(set,__c)" ( identifier , identifier )))) ;) (if_statement "if (pcVar1 != (char *)0x0) {\n          return (int)pcVar5 - (int)s;\n        }" if (parenthesized_expression "(pcVar1 != (char *)0x0)" ( (binary_expression "pcVar1 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          return (int)pcVar5 - (int)s;\n        }" { (return_statement "return (int)pcVar5 - (int)s;" return (binary_expression "(int)pcVar5 - (int)s" (cast_expression "(int)pcVar5" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)s" ( (type_descriptor "int" primitive_type) ) identifier)) ;) })) }))) (labeled_statement "LAB_0001d3cb:\n      pcVar5 = pcVar5 + 1;" statement_identifier : (expression_statement "pcVar5 = pcVar5 + 1;" (assignment_expression "pcVar5 = pcVar5 + 1" identifier = (binary_expression "pcVar5 + 1" identifier + number_literal)) ;)) (expression_statement "__c = (int)*pcVar5;" (assignment_expression "__c = (int)*pcVar5" identifier = (cast_expression "(int)*pcVar5" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*pcVar5" * identifier))) ;) }) while (parenthesized_expression "(*pcVar5 != '\0')" ( (binary_expression "*pcVar5 != '\0'" (pointer_expression "*pcVar5" * identifier) != (char_literal "'\0'" ' escape_sequence ')) )) ;)) })) (expression_statement "sVar2 = strlen(s);" (assignment_expression "sVar2 = strlen(s)" identifier = (call_expression "strlen(s)" identifier (argument_list "(s)" ( identifier )))) ;) (return_statement "return sVar2;" return identifier ;) })))
(translation_unit "size_t FUN_0001d370(char *param_1,char *param_2)\n\n{\n  char *pcVar1;\n  size_t sVar2;\n  char cVar3;\n  int __c;\n  int iVar4;\n  char *pcVar5;\n  \n  __c = (int)*param_1;\n  if (*param_1 != '\0') {\n    iVar4 = 0;\n    pcVar5 = param_1;\nLAB_0001d391:\n    do {\n      cVar3 = (char)__c;\n      if (cVar3 == '[') {\n        iVar4 = iVar4 + 1;\n      }\n      else {\n        if (cVar3 == ']') {\n          if (iVar4 != 0) {\n            pcVar5 = pcVar5 + 1;\n            __c = (int)*pcVar5;\n            iVar4 = iVar4 + -1;\n            if (*pcVar5 == '\0') break;\n            goto LAB_0001d391;\n          }\n        }\n        else if ((cVar3 == ':') && (iVar4 != 0)) goto LAB_0001d3cb;\n        pcVar1 = strchr(param_2,__c);\n        if (pcVar1 != (char *)0x0) {\n          return (int)pcVar5 - (int)param_1;\n        }\n      }\nLAB_0001d3cb:\n      pcVar5 = pcVar5 + 1;\n      __c = (int)*pcVar5;\n    } while (*pcVar5 != '\0');\n  }\n  sVar2 = strlen(param_1);\n  return sVar2;\n}\n\n" (function_definition "size_t FUN_0001d370(char *param_1,char *param_2)\n\n{\n  char *pcVar1;\n  size_t sVar2;\n  char cVar3;\n  int __c;\n  int iVar4;\n  char *pcVar5;\n  \n  __c = (int)*param_1;\n  if (*param_1 != '\0') {\n    iVar4 = 0;\n    pcVar5 = param_1;\nLAB_0001d391:\n    do {\n      cVar3 = (char)__c;\n      if (cVar3 == '[') {\n        iVar4 = iVar4 + 1;\n      }\n      else {\n        if (cVar3 == ']') {\n          if (iVar4 != 0) {\n            pcVar5 = pcVar5 + 1;\n            __c = (int)*pcVar5;\n            iVar4 = iVar4 + -1;\n            if (*pcVar5 == '\0') break;\n            goto LAB_0001d391;\n          }\n        }\n        else if ((cVar3 == ':') && (iVar4 != 0)) goto LAB_0001d3cb;\n        pcVar1 = strchr(param_2,__c);\n        if (pcVar1 != (char *)0x0) {\n          return (int)pcVar5 - (int)param_1;\n        }\n      }\nLAB_0001d3cb:\n      pcVar5 = pcVar5 + 1;\n      __c = (int)*pcVar5;\n    } while (*pcVar5 != '\0');\n  }\n  sVar2 = strlen(param_1);\n  return sVar2;\n}" primitive_type (function_declarator "FUN_0001d370(char *param_1,char *param_2)" identifier (parameter_list "(char *param_1,char *param_2)" ( (parameter_declaration "char *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "char *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) ))) (compound_statement "{\n  char *pcVar1;\n  size_t sVar2;\n  char cVar3;\n  int __c;\n  int iVar4;\n  char *pcVar5;\n  \n  __c = (int)*param_1;\n  if (*param_1 != '\0') {\n    iVar4 = 0;\n    pcVar5 = param_1;\nLAB_0001d391:\n    do {\n      cVar3 = (char)__c;\n      if (cVar3 == '[') {\n        iVar4 = iVar4 + 1;\n      }\n      else {\n        if (cVar3 == ']') {\n          if (iVar4 != 0) {\n            pcVar5 = pcVar5 + 1;\n            __c = (int)*pcVar5;\n            iVar4 = iVar4 + -1;\n            if (*pcVar5 == '\0') break;\n            goto LAB_0001d391;\n          }\n        }\n        else if ((cVar3 == ':') && (iVar4 != 0)) goto LAB_0001d3cb;\n        pcVar1 = strchr(param_2,__c);\n        if (pcVar1 != (char *)0x0) {\n          return (int)pcVar5 - (int)param_1;\n        }\n      }\nLAB_0001d3cb:\n      pcVar5 = pcVar5 + 1;\n      __c = (int)*pcVar5;\n    } while (*pcVar5 != '\0');\n  }\n  sVar2 = strlen(param_1);\n  return sVar2;\n}" { (declaration "char *pcVar1;" primitive_type (pointer_declarator "*pcVar1" * identifier) ;) (declaration "size_t sVar2;" primitive_type identifier ;) (declaration "char cVar3;" primitive_type identifier ;) (declaration "int __c;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "char *pcVar5;" primitive_type (pointer_declarator "*pcVar5" * identifier) ;) (expression_statement "__c = (int)*param_1;" (assignment_expression "__c = (int)*param_1" identifier = (cast_expression "(int)*param_1" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*param_1" * identifier))) ;) (if_statement "if (*param_1 != '\0') {\n    iVar4 = 0;\n    pcVar5 = param_1;\nLAB_0001d391:\n    do {\n      cVar3 = (char)__c;\n      if (cVar3 == '[') {\n        iVar4 = iVar4 + 1;\n      }\n      else {\n        if (cVar3 == ']') {\n          if (iVar4 != 0) {\n            pcVar5 = pcVar5 + 1;\n            __c = (int)*pcVar5;\n            iVar4 = iVar4 + -1;\n            if (*pcVar5 == '\0') break;\n            goto LAB_0001d391;\n          }\n        }\n        else if ((cVar3 == ':') && (iVar4 != 0)) goto LAB_0001d3cb;\n        pcVar1 = strchr(param_2,__c);\n        if (pcVar1 != (char *)0x0) {\n          return (int)pcVar5 - (int)param_1;\n        }\n      }\nLAB_0001d3cb:\n      pcVar5 = pcVar5 + 1;\n      __c = (int)*pcVar5;\n    } while (*pcVar5 != '\0');\n  }" if (parenthesized_expression "(*param_1 != '\0')" ( (binary_expression "*param_1 != '\0'" (pointer_expression "*param_1" * identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    iVar4 = 0;\n    pcVar5 = param_1;\nLAB_0001d391:\n    do {\n      cVar3 = (char)__c;\n      if (cVar3 == '[') {\n        iVar4 = iVar4 + 1;\n      }\n      else {\n        if (cVar3 == ']') {\n          if (iVar4 != 0) {\n            pcVar5 = pcVar5 + 1;\n            __c = (int)*pcVar5;\n            iVar4 = iVar4 + -1;\n            if (*pcVar5 == '\0') break;\n            goto LAB_0001d391;\n          }\n        }\n        else if ((cVar3 == ':') && (iVar4 != 0)) goto LAB_0001d3cb;\n        pcVar1 = strchr(param_2,__c);\n        if (pcVar1 != (char *)0x0) {\n          return (int)pcVar5 - (int)param_1;\n        }\n      }\nLAB_0001d3cb:\n      pcVar5 = pcVar5 + 1;\n      __c = (int)*pcVar5;\n    } while (*pcVar5 != '\0');\n  }" { (expression_statement "iVar4 = 0;" (assignment_expression "iVar4 = 0" identifier = number_literal) ;) (expression_statement "pcVar5 = param_1;" (assignment_expression "pcVar5 = param_1" identifier = identifier) ;) (labeled_statement "LAB_0001d391:\n    do {\n      cVar3 = (char)__c;\n      if (cVar3 == '[') {\n        iVar4 = iVar4 + 1;\n      }\n      else {\n        if (cVar3 == ']') {\n          if (iVar4 != 0) {\n            pcVar5 = pcVar5 + 1;\n            __c = (int)*pcVar5;\n            iVar4 = iVar4 + -1;\n            if (*pcVar5 == '\0') break;\n            goto LAB_0001d391;\n          }\n        }\n        else if ((cVar3 == ':') && (iVar4 != 0)) goto LAB_0001d3cb;\n        pcVar1 = strchr(param_2,__c);\n        if (pcVar1 != (char *)0x0) {\n          return (int)pcVar5 - (int)param_1;\n        }\n      }\nLAB_0001d3cb:\n      pcVar5 = pcVar5 + 1;\n      __c = (int)*pcVar5;\n    } while (*pcVar5 != '\0');" statement_identifier : (do_statement "do {\n      cVar3 = (char)__c;\n      if (cVar3 == '[') {\n        iVar4 = iVar4 + 1;\n      }\n      else {\n        if (cVar3 == ']') {\n          if (iVar4 != 0) {\n            pcVar5 = pcVar5 + 1;\n            __c = (int)*pcVar5;\n            iVar4 = iVar4 + -1;\n            if (*pcVar5 == '\0') break;\n            goto LAB_0001d391;\n          }\n        }\n        else if ((cVar3 == ':') && (iVar4 != 0)) goto LAB_0001d3cb;\n        pcVar1 = strchr(param_2,__c);\n        if (pcVar1 != (char *)0x0) {\n          return (int)pcVar5 - (int)param_1;\n        }\n      }\nLAB_0001d3cb:\n      pcVar5 = pcVar5 + 1;\n      __c = (int)*pcVar5;\n    } while (*pcVar5 != '\0');" do (compound_statement "{\n      cVar3 = (char)__c;\n      if (cVar3 == '[') {\n        iVar4 = iVar4 + 1;\n      }\n      else {\n        if (cVar3 == ']') {\n          if (iVar4 != 0) {\n            pcVar5 = pcVar5 + 1;\n            __c = (int)*pcVar5;\n            iVar4 = iVar4 + -1;\n            if (*pcVar5 == '\0') break;\n            goto LAB_0001d391;\n          }\n        }\n        else if ((cVar3 == ':') && (iVar4 != 0)) goto LAB_0001d3cb;\n        pcVar1 = strchr(param_2,__c);\n        if (pcVar1 != (char *)0x0) {\n          return (int)pcVar5 - (int)param_1;\n        }\n      }\nLAB_0001d3cb:\n      pcVar5 = pcVar5 + 1;\n      __c = (int)*pcVar5;\n    }" { (expression_statement "cVar3 = (char)__c;" (assignment_expression "cVar3 = (char)__c" identifier = (cast_expression "(char)__c" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (if_statement "if (cVar3 == '[') {\n        iVar4 = iVar4 + 1;\n      }\n      else {\n        if (cVar3 == ']') {\n          if (iVar4 != 0) {\n            pcVar5 = pcVar5 + 1;\n            __c = (int)*pcVar5;\n            iVar4 = iVar4 + -1;\n            if (*pcVar5 == '\0') break;\n            goto LAB_0001d391;\n          }\n        }\n        else if ((cVar3 == ':') && (iVar4 != 0)) goto LAB_0001d3cb;\n        pcVar1 = strchr(param_2,__c);\n        if (pcVar1 != (char *)0x0) {\n          return (int)pcVar5 - (int)param_1;\n        }\n      }" if (parenthesized_expression "(cVar3 == '[')" ( (binary_expression "cVar3 == '['" identifier == (char_literal "'['" ' character ')) )) (compound_statement "{\n        iVar4 = iVar4 + 1;\n      }" { (expression_statement "iVar4 = iVar4 + 1;" (assignment_expression "iVar4 = iVar4 + 1" identifier = (binary_expression "iVar4 + 1" identifier + number_literal)) ;) }) (else_clause "else {\n        if (cVar3 == ']') {\n          if (iVar4 != 0) {\n            pcVar5 = pcVar5 + 1;\n            __c = (int)*pcVar5;\n            iVar4 = iVar4 + -1;\n            if (*pcVar5 == '\0') break;\n            goto LAB_0001d391;\n          }\n        }\n        else if ((cVar3 == ':') && (iVar4 != 0)) goto LAB_0001d3cb;\n        pcVar1 = strchr(param_2,__c);\n        if (pcVar1 != (char *)0x0) {\n          return (int)pcVar5 - (int)param_1;\n        }\n      }" else (compound_statement "{\n        if (cVar3 == ']') {\n          if (iVar4 != 0) {\n            pcVar5 = pcVar5 + 1;\n            __c = (int)*pcVar5;\n            iVar4 = iVar4 + -1;\n            if (*pcVar5 == '\0') break;\n            goto LAB_0001d391;\n          }\n        }\n        else if ((cVar3 == ':') && (iVar4 != 0)) goto LAB_0001d3cb;\n        pcVar1 = strchr(param_2,__c);\n        if (pcVar1 != (char *)0x0) {\n          return (int)pcVar5 - (int)param_1;\n        }\n      }" { (if_statement "if (cVar3 == ']') {\n          if (iVar4 != 0) {\n            pcVar5 = pcVar5 + 1;\n            __c = (int)*pcVar5;\n            iVar4 = iVar4 + -1;\n            if (*pcVar5 == '\0') break;\n            goto LAB_0001d391;\n          }\n        }\n        else if ((cVar3 == ':') && (iVar4 != 0)) goto LAB_0001d3cb;" if (parenthesized_expression "(cVar3 == ']')" ( (binary_expression "cVar3 == ']'" identifier == (char_literal "']'" ' character ')) )) (compound_statement "{\n          if (iVar4 != 0) {\n            pcVar5 = pcVar5 + 1;\n            __c = (int)*pcVar5;\n            iVar4 = iVar4 + -1;\n            if (*pcVar5 == '\0') break;\n            goto LAB_0001d391;\n          }\n        }" { (if_statement "if (iVar4 != 0) {\n            pcVar5 = pcVar5 + 1;\n            __c = (int)*pcVar5;\n            iVar4 = iVar4 + -1;\n            if (*pcVar5 == '\0') break;\n            goto LAB_0001d391;\n          }" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (compound_statement "{\n            pcVar5 = pcVar5 + 1;\n            __c = (int)*pcVar5;\n            iVar4 = iVar4 + -1;\n            if (*pcVar5 == '\0') break;\n            goto LAB_0001d391;\n          }" { (expression_statement "pcVar5 = pcVar5 + 1;" (assignment_expression "pcVar5 = pcVar5 + 1" identifier = (binary_expression "pcVar5 + 1" identifier + number_literal)) ;) (expression_statement "__c = (int)*pcVar5;" (assignment_expression "__c = (int)*pcVar5" identifier = (cast_expression "(int)*pcVar5" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*pcVar5" * identifier))) ;) (expression_statement "iVar4 = iVar4 + -1;" (assignment_expression "iVar4 = iVar4 + -1" identifier = (binary_expression "iVar4 + -1" identifier + number_literal)) ;) (if_statement "if (*pcVar5 == '\0') break;" if (parenthesized_expression "(*pcVar5 == '\0')" ( (binary_expression "*pcVar5 == '\0'" (pointer_expression "*pcVar5" * identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (break_statement "break;" break ;)) (goto_statement "goto LAB_0001d391;" goto statement_identifier ;) })) }) (else_clause "else if ((cVar3 == ':') && (iVar4 != 0)) goto LAB_0001d3cb;" else (if_statement "if ((cVar3 == ':') && (iVar4 != 0)) goto LAB_0001d3cb;" if (parenthesized_expression "((cVar3 == ':') && (iVar4 != 0))" ( (binary_expression "(cVar3 == ':') && (iVar4 != 0)" (parenthesized_expression "(cVar3 == ':')" ( (binary_expression "cVar3 == ':'" identifier == (char_literal "':'" ' character ')) )) && (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) ))) )) (goto_statement "goto LAB_0001d3cb;" goto statement_identifier ;)))) (expression_statement "pcVar1 = strchr(param_2,__c);" (assignment_expression "pcVar1 = strchr(param_2,__c)" identifier = (call_expression "strchr(param_2,__c)" identifier (argument_list "(param_2,__c)" ( identifier , identifier )))) ;) (if_statement "if (pcVar1 != (char *)0x0) {\n          return (int)pcVar5 - (int)param_1;\n        }" if (parenthesized_expression "(pcVar1 != (char *)0x0)" ( (binary_expression "pcVar1 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          return (int)pcVar5 - (int)param_1;\n        }" { (return_statement "return (int)pcVar5 - (int)param_1;" return (binary_expression "(int)pcVar5 - (int)param_1" (cast_expression "(int)pcVar5" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier)) ;) })) }))) (labeled_statement "LAB_0001d3cb:\n      pcVar5 = pcVar5 + 1;" statement_identifier : (expression_statement "pcVar5 = pcVar5 + 1;" (assignment_expression "pcVar5 = pcVar5 + 1" identifier = (binary_expression "pcVar5 + 1" identifier + number_literal)) ;)) (expression_statement "__c = (int)*pcVar5;" (assignment_expression "__c = (int)*pcVar5" identifier = (cast_expression "(int)*pcVar5" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*pcVar5" * identifier))) ;) }) while (parenthesized_expression "(*pcVar5 != '\0')" ( (binary_expression "*pcVar5 != '\0'" (pointer_expression "*pcVar5" * identifier) != (char_literal "'\0'" ' escape_sequence ')) )) ;)) })) (expression_statement "sVar2 = strlen(param_1);" (assignment_expression "sVar2 = strlen(param_1)" identifier = (call_expression "strlen(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) (return_statement "return sVar2;" return identifier ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (labeled_statement statement_identifier : (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' character ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' character ')) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (char_literal ' escape_sequence ')) )) (break_statement break ;)) (goto_statement goto statement_identifier ;) })) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (char_literal ' character ')) )) && (parenthesized_expression ( (binary_expression IDENT != LIT) ))) )) (goto_statement goto statement_identifier ;)))) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (return_statement return (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) })) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * IDENT))) ;) }) while (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != (char_literal ' escape_sequence ')) )) ;)) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (return_statement return IDENT ;) })))
(function_definition "size_t FUN_0001d370(char *param_1,char *param_2)\n\n{\n  char *pcVar1;\n  size_t sVar2;\n  char cVar3;\n  int __c;\n  int iVar4;\n  char *pcVar5;\n  \n  __c = (int)*param_1;\n  if (*param_1 != '\0') {\n    iVar4 = 0;\n    pcVar5 = param_1;\nLAB_0001d391:\n    do {\n      cVar3 = (char)__c;\n      if (cVar3 == '[') {\n        iVar4 = iVar4 + 1;\n      }\n      else {\n        if (cVar3 == ']') {\n          if (iVar4 != 0) {\n            pcVar5 = pcVar5 + 1;\n            __c = (int)*pcVar5;\n            iVar4 = iVar4 + -1;\n            if (*pcVar5 == '\0') break;\n            goto LAB_0001d391;\n          }\n        }\n        else if ((cVar3 == ':') && (iVar4 != 0)) goto LAB_0001d3cb;\n        pcVar1 = strchr(param_2,__c);\n        if (pcVar1 != (char *)0x0) {\n          return (int)pcVar5 - (int)param_1;\n        }\n      }\nLAB_0001d3cb:\n      pcVar5 = pcVar5 + 1;\n      __c = (int)*pcVar5;\n    } while (*pcVar5 != '\0');\n  }\n  sVar2 = strlen(param_1);\n  return sVar2;\n}" (primitive_type "size_t") (function_declarator "FUN_0001d370(char *param_1,char *param_2)" (identifier "FUN_0001d370") (parameter_list "(char *param_1,char *param_2)" (( "(") (parameter_declaration "char *param_1" (primitive_type "char") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "char *param_2" (primitive_type "char") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) () ")"))) (compound_statement "{\n  char *pcVar1;\n  size_t sVar2;\n  char cVar3;\n  int __c;\n  int iVar4;\n  char *pcVar5;\n  \n  __c = (int)*param_1;\n  if (*param_1 != '\0') {\n    iVar4 = 0;\n    pcVar5 = param_1;\nLAB_0001d391:\n    do {\n      cVar3 = (char)__c;\n      if (cVar3 == '[') {\n        iVar4 = iVar4 + 1;\n      }\n      else {\n        if (cVar3 == ']') {\n          if (iVar4 != 0) {\n            pcVar5 = pcVar5 + 1;\n            __c = (int)*pcVar5;\n            iVar4 = iVar4 + -1;\n            if (*pcVar5 == '\0') break;\n            goto LAB_0001d391;\n          }\n        }\n        else if ((cVar3 == ':') && (iVar4 != 0)) goto LAB_0001d3cb;\n        pcVar1 = strchr(param_2,__c);\n        if (pcVar1 != (char *)0x0) {\n          return (int)pcVar5 - (int)param_1;\n        }\n      }\nLAB_0001d3cb:\n      pcVar5 = pcVar5 + 1;\n      __c = (int)*pcVar5;\n    } while (*pcVar5 != '\0');\n  }\n  sVar2 = strlen(param_1);\n  return sVar2;\n}" ({ "{") (declaration "char *pcVar1;" (primitive_type "char") (pointer_declarator "*pcVar1" (* "*") (identifier "pcVar1")) (; ";")) (declaration "size_t sVar2;" (primitive_type "size_t") (identifier "sVar2") (; ";")) (declaration "char cVar3;" (primitive_type "char") (identifier "cVar3") (; ";")) (declaration "int __c;" (primitive_type "int") (identifier "__c") (; ";")) (declaration "int iVar4;" (primitive_type "int") (identifier "iVar4") (; ";")) (declaration "char *pcVar5;" (primitive_type "char") (pointer_declarator "*pcVar5" (* "*") (identifier "pcVar5")) (; ";")) (expression_statement "__c = (int)*param_1;" (assignment_expression "__c = (int)*param_1" (identifier "__c") (= "=") (cast_expression "(int)*param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*param_1" (* "*") (identifier "param_1")))) (; ";")) (if_statement "if (*param_1 != '\0') {\n    iVar4 = 0;\n    pcVar5 = param_1;\nLAB_0001d391:\n    do {\n      cVar3 = (char)__c;\n      if (cVar3 == '[') {\n        iVar4 = iVar4 + 1;\n      }\n      else {\n        if (cVar3 == ']') {\n          if (iVar4 != 0) {\n            pcVar5 = pcVar5 + 1;\n            __c = (int)*pcVar5;\n            iVar4 = iVar4 + -1;\n            if (*pcVar5 == '\0') break;\n            goto LAB_0001d391;\n          }\n        }\n        else if ((cVar3 == ':') && (iVar4 != 0)) goto LAB_0001d3cb;\n        pcVar1 = strchr(param_2,__c);\n        if (pcVar1 != (char *)0x0) {\n          return (int)pcVar5 - (int)param_1;\n        }\n      }\nLAB_0001d3cb:\n      pcVar5 = pcVar5 + 1;\n      __c = (int)*pcVar5;\n    } while (*pcVar5 != '\0');\n  }" (if "if") (parenthesized_expression "(*param_1 != '\0')" (( "(") (binary_expression "*param_1 != '\0'" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n    iVar4 = 0;\n    pcVar5 = param_1;\nLAB_0001d391:\n    do {\n      cVar3 = (char)__c;\n      if (cVar3 == '[') {\n        iVar4 = iVar4 + 1;\n      }\n      else {\n        if (cVar3 == ']') {\n          if (iVar4 != 0) {\n            pcVar5 = pcVar5 + 1;\n            __c = (int)*pcVar5;\n            iVar4 = iVar4 + -1;\n            if (*pcVar5 == '\0') break;\n            goto LAB_0001d391;\n          }\n        }\n        else if ((cVar3 == ':') && (iVar4 != 0)) goto LAB_0001d3cb;\n        pcVar1 = strchr(param_2,__c);\n        if (pcVar1 != (char *)0x0) {\n          return (int)pcVar5 - (int)param_1;\n        }\n      }\nLAB_0001d3cb:\n      pcVar5 = pcVar5 + 1;\n      __c = (int)*pcVar5;\n    } while (*pcVar5 != '\0');\n  }" ({ "{") (expression_statement "iVar4 = 0;" (assignment_expression "iVar4 = 0" (identifier "iVar4") (= "=") (number_literal "0")) (; ";")) (expression_statement "pcVar5 = param_1;" (assignment_expression "pcVar5 = param_1" (identifier "pcVar5") (= "=") (identifier "param_1")) (; ";")) (labeled_statement "LAB_0001d391:\n    do {\n      cVar3 = (char)__c;\n      if (cVar3 == '[') {\n        iVar4 = iVar4 + 1;\n      }\n      else {\n        if (cVar3 == ']') {\n          if (iVar4 != 0) {\n            pcVar5 = pcVar5 + 1;\n            __c = (int)*pcVar5;\n            iVar4 = iVar4 + -1;\n            if (*pcVar5 == '\0') break;\n            goto LAB_0001d391;\n          }\n        }\n        else if ((cVar3 == ':') && (iVar4 != 0)) goto LAB_0001d3cb;\n        pcVar1 = strchr(param_2,__c);\n        if (pcVar1 != (char *)0x0) {\n          return (int)pcVar5 - (int)param_1;\n        }\n      }\nLAB_0001d3cb:\n      pcVar5 = pcVar5 + 1;\n      __c = (int)*pcVar5;\n    } while (*pcVar5 != '\0');" (statement_identifier "LAB_0001d391") (: ":") (do_statement "do {\n      cVar3 = (char)__c;\n      if (cVar3 == '[') {\n        iVar4 = iVar4 + 1;\n      }\n      else {\n        if (cVar3 == ']') {\n          if (iVar4 != 0) {\n            pcVar5 = pcVar5 + 1;\n            __c = (int)*pcVar5;\n            iVar4 = iVar4 + -1;\n            if (*pcVar5 == '\0') break;\n            goto LAB_0001d391;\n          }\n        }\n        else if ((cVar3 == ':') && (iVar4 != 0)) goto LAB_0001d3cb;\n        pcVar1 = strchr(param_2,__c);\n        if (pcVar1 != (char *)0x0) {\n          return (int)pcVar5 - (int)param_1;\n        }\n      }\nLAB_0001d3cb:\n      pcVar5 = pcVar5 + 1;\n      __c = (int)*pcVar5;\n    } while (*pcVar5 != '\0');" (do "do") (compound_statement "{\n      cVar3 = (char)__c;\n      if (cVar3 == '[') {\n        iVar4 = iVar4 + 1;\n      }\n      else {\n        if (cVar3 == ']') {\n          if (iVar4 != 0) {\n            pcVar5 = pcVar5 + 1;\n            __c = (int)*pcVar5;\n            iVar4 = iVar4 + -1;\n            if (*pcVar5 == '\0') break;\n            goto LAB_0001d391;\n          }\n        }\n        else if ((cVar3 == ':') && (iVar4 != 0)) goto LAB_0001d3cb;\n        pcVar1 = strchr(param_2,__c);\n        if (pcVar1 != (char *)0x0) {\n          return (int)pcVar5 - (int)param_1;\n        }\n      }\nLAB_0001d3cb:\n      pcVar5 = pcVar5 + 1;\n      __c = (int)*pcVar5;\n    }" ({ "{") (expression_statement "cVar3 = (char)__c;" (assignment_expression "cVar3 = (char)__c" (identifier "cVar3") (= "=") (cast_expression "(char)__c" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "__c"))) (; ";")) (if_statement "if (cVar3 == '[') {\n        iVar4 = iVar4 + 1;\n      }\n      else {\n        if (cVar3 == ']') {\n          if (iVar4 != 0) {\n            pcVar5 = pcVar5 + 1;\n            __c = (int)*pcVar5;\n            iVar4 = iVar4 + -1;\n            if (*pcVar5 == '\0') break;\n            goto LAB_0001d391;\n          }\n        }\n        else if ((cVar3 == ':') && (iVar4 != 0)) goto LAB_0001d3cb;\n        pcVar1 = strchr(param_2,__c);\n        if (pcVar1 != (char *)0x0) {\n          return (int)pcVar5 - (int)param_1;\n        }\n      }" (if "if") (parenthesized_expression "(cVar3 == '[')" (( "(") (binary_expression "cVar3 == '['" (identifier "cVar3") (== "==") (char_literal "'['" (' "'") (character "[") (' "'"))) () ")")) (compound_statement "{\n        iVar4 = iVar4 + 1;\n      }" ({ "{") (expression_statement "iVar4 = iVar4 + 1;" (assignment_expression "iVar4 = iVar4 + 1" (identifier "iVar4") (= "=") (binary_expression "iVar4 + 1" (identifier "iVar4") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (else_clause "else {\n        if (cVar3 == ']') {\n          if (iVar4 != 0) {\n            pcVar5 = pcVar5 + 1;\n            __c = (int)*pcVar5;\n            iVar4 = iVar4 + -1;\n            if (*pcVar5 == '\0') break;\n            goto LAB_0001d391;\n          }\n        }\n        else if ((cVar3 == ':') && (iVar4 != 0)) goto LAB_0001d3cb;\n        pcVar1 = strchr(param_2,__c);\n        if (pcVar1 != (char *)0x0) {\n          return (int)pcVar5 - (int)param_1;\n        }\n      }" (else "else") (compound_statement "{\n        if (cVar3 == ']') {\n          if (iVar4 != 0) {\n            pcVar5 = pcVar5 + 1;\n            __c = (int)*pcVar5;\n            iVar4 = iVar4 + -1;\n            if (*pcVar5 == '\0') break;\n            goto LAB_0001d391;\n          }\n        }\n        else if ((cVar3 == ':') && (iVar4 != 0)) goto LAB_0001d3cb;\n        pcVar1 = strchr(param_2,__c);\n        if (pcVar1 != (char *)0x0) {\n          return (int)pcVar5 - (int)param_1;\n        }\n      }" ({ "{") (if_statement "if (cVar3 == ']') {\n          if (iVar4 != 0) {\n            pcVar5 = pcVar5 + 1;\n            __c = (int)*pcVar5;\n            iVar4 = iVar4 + -1;\n            if (*pcVar5 == '\0') break;\n            goto LAB_0001d391;\n          }\n        }\n        else if ((cVar3 == ':') && (iVar4 != 0)) goto LAB_0001d3cb;" (if "if") (parenthesized_expression "(cVar3 == ']')" (( "(") (binary_expression "cVar3 == ']'" (identifier "cVar3") (== "==") (char_literal "']'" (' "'") (character "]") (' "'"))) () ")")) (compound_statement "{\n          if (iVar4 != 0) {\n            pcVar5 = pcVar5 + 1;\n            __c = (int)*pcVar5;\n            iVar4 = iVar4 + -1;\n            if (*pcVar5 == '\0') break;\n            goto LAB_0001d391;\n          }\n        }" ({ "{") (if_statement "if (iVar4 != 0) {\n            pcVar5 = pcVar5 + 1;\n            __c = (int)*pcVar5;\n            iVar4 = iVar4 + -1;\n            if (*pcVar5 == '\0') break;\n            goto LAB_0001d391;\n          }" (if "if") (parenthesized_expression "(iVar4 != 0)" (( "(") (binary_expression "iVar4 != 0" (identifier "iVar4") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            pcVar5 = pcVar5 + 1;\n            __c = (int)*pcVar5;\n            iVar4 = iVar4 + -1;\n            if (*pcVar5 == '\0') break;\n            goto LAB_0001d391;\n          }" ({ "{") (expression_statement "pcVar5 = pcVar5 + 1;" (assignment_expression "pcVar5 = pcVar5 + 1" (identifier "pcVar5") (= "=") (binary_expression "pcVar5 + 1" (identifier "pcVar5") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "__c = (int)*pcVar5;" (assignment_expression "__c = (int)*pcVar5" (identifier "__c") (= "=") (cast_expression "(int)*pcVar5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*pcVar5" (* "*") (identifier "pcVar5")))) (; ";")) (expression_statement "iVar4 = iVar4 + -1;" (assignment_expression "iVar4 = iVar4 + -1" (identifier "iVar4") (= "=") (binary_expression "iVar4 + -1" (identifier "iVar4") (+ "+") (number_literal "-1"))) (; ";")) (if_statement "if (*pcVar5 == '\0') break;" (if "if") (parenthesized_expression "(*pcVar5 == '\0')" (( "(") (binary_expression "*pcVar5 == '\0'" (pointer_expression "*pcVar5" (* "*") (identifier "pcVar5")) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (goto_statement "goto LAB_0001d391;" (goto "goto") (statement_identifier "LAB_0001d391") (; ";")) (} "}"))) (} "}")) (else_clause "else if ((cVar3 == ':') && (iVar4 != 0)) goto LAB_0001d3cb;" (else "else") (if_statement "if ((cVar3 == ':') && (iVar4 != 0)) goto LAB_0001d3cb;" (if "if") (parenthesized_expression "((cVar3 == ':') && (iVar4 != 0))" (( "(") (binary_expression "(cVar3 == ':') && (iVar4 != 0)" (parenthesized_expression "(cVar3 == ':')" (( "(") (binary_expression "cVar3 == ':'" (identifier "cVar3") (== "==") (char_literal "':'" (' "'") (character ":") (' "'"))) () ")")) (&& "&&") (parenthesized_expression "(iVar4 != 0)" (( "(") (binary_expression "iVar4 != 0" (identifier "iVar4") (!= "!=") (number_literal "0")) () ")"))) () ")")) (goto_statement "goto LAB_0001d3cb;" (goto "goto") (statement_identifier "LAB_0001d3cb") (; ";"))))) (expression_statement "pcVar1 = strchr(param_2,__c);" (assignment_expression "pcVar1 = strchr(param_2,__c)" (identifier "pcVar1") (= "=") (call_expression "strchr(param_2,__c)" (identifier "strchr") (argument_list "(param_2,__c)" (( "(") (identifier "param_2") (, ",") (identifier "__c") () ")")))) (; ";")) (if_statement "if (pcVar1 != (char *)0x0) {\n          return (int)pcVar5 - (int)param_1;\n        }" (if "if") (parenthesized_expression "(pcVar1 != (char *)0x0)" (( "(") (binary_expression "pcVar1 != (char *)0x0" (identifier "pcVar1") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          return (int)pcVar5 - (int)param_1;\n        }" ({ "{") (return_statement "return (int)pcVar5 - (int)param_1;" (return "return") (binary_expression "(int)pcVar5 - (int)param_1" (cast_expression "(int)pcVar5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pcVar5")) (- "-") (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1"))) (; ";")) (} "}"))) (} "}")))) (labeled_statement "LAB_0001d3cb:\n      pcVar5 = pcVar5 + 1;" (statement_identifier "LAB_0001d3cb") (: ":") (expression_statement "pcVar5 = pcVar5 + 1;" (assignment_expression "pcVar5 = pcVar5 + 1" (identifier "pcVar5") (= "=") (binary_expression "pcVar5 + 1" (identifier "pcVar5") (+ "+") (number_literal "1"))) (; ";"))) (expression_statement "__c = (int)*pcVar5;" (assignment_expression "__c = (int)*pcVar5" (identifier "__c") (= "=") (cast_expression "(int)*pcVar5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*pcVar5" (* "*") (identifier "pcVar5")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(*pcVar5 != '\0')" (( "(") (binary_expression "*pcVar5 != '\0'" (pointer_expression "*pcVar5" (* "*") (identifier "pcVar5")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (; ";"))) (} "}"))) (expression_statement "sVar2 = strlen(param_1);" (assignment_expression "sVar2 = strlen(param_1)" (identifier "sVar2") (= "=") (call_expression "strlen(param_1)" (identifier "strlen") (argument_list "(param_1)" (( "(") (identifier "param_1") () ")")))) (; ";")) (return_statement "return sVar2;" (return "return") (identifier "sVar2") (; ";")) (} "}")))

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

size_t function_1(char *s,char *set)

{
  char *var_5;
  size_t sVar2;
  char var_1;
  int __c;
  int var_2;
  char *var_3;
  
  __c = (int)*s;
  if (*s != '\0') {
    var_2 = 0;
    var_3 = s;
LAB_0001d391:
    do {
      var_1 = (char)__c;
      if (var_1 == '[') {
        var_2 = var_2 + 1;
      }
      else {
        if (var_1 == ']') {
          if (var_2 != 0) {
            var_3 = var_3 + 1;
            __c = (int)*var_3;
            var_2 = var_2 + -1;
            if (*var_3 == '\0') break;
            goto LAB_0001d391;
          }
        }
        else if ((var_1 == ':') && (var_2 != 0)) goto LAB_0001d3cb;
        var_5 = var_4(set,__c);
        if (var_5 != (char *)0x0) {
          return (int)var_3 - (int)s;
        }
      }
LAB_0001d3cb:
      var_3 = var_3 + 1;
      __c = (int)*var_3;
    } while (*var_3 != '\0');
  }
  sVar2 = var_6(s);
  return sVar2;
}


(translation_unit (function_definition type: (primitive_type) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))))) body: (compound_statement (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (labeled_statement label: (statement_identifier) (do_statement body: (compound_statement (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: (char_literal (character)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (character)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (char_literal (escape_sequence)))) consequence: (break_statement)) (goto_statement label: (statement_identifier))))) alternative: (else_clause (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: (number_literal))))) consequence: (goto_statement label: (statement_identifier))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (return_statement (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (identifier)))))) condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (char_literal (escape_sequence)))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (return_statement (identifier)))))

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

size_t MASKED(char *param_1,char *param_2)

{
  char *pcVar1;
  size_t sVar2;
  char cVar3;
  int __c;
  int iVar4;
  char *pcVar5;
  
  __c = (int)*param_1;
  if (*param_1 != '\0') {
    iVar4 = 0;
    pcVar5 = param_1;
LAB_0001d391:
    do {
      cVar3 = (char)__c;
      if (cVar3 == '[') {
        iVar4 = iVar4 + 1;
      }
      else {
        if (cVar3 == ']') {
          if (iVar4 != 0) {
            pcVar5 = pcVar5 + 1;
            __c = (int)*pcVar5;
            iVar4 = iVar4 + -1;
            if (*pcVar5 == '\0') break;
            goto LAB_0001d391;
          }
        }
        else if ((cVar3 == ':') && (iVar4 != 0)) goto LAB_0001d3cb;
        pcVar1 = strchr(param_2,__c);
        if (pcVar1 != (char *)0x0) {
          return (int)pcVar5 - (int)param_1;
        }
      }
LAB_0001d3cb:
      pcVar5 = pcVar5 + 1;
      __c = (int)*pcVar5;
    } while (*pcVar5 != '\0');
  }
  sVar2 = strlen(param_1);
  return sVar2;
}

