
_Bool Curl_auth_digest_get_pair(char *str,char *value,char *content,char **endptr)

{
  bool bVar1;
  char cVar2;
  _Bool _Var3;
  char *pcVar4;
  char *pcVar5;
  bool bVar6;
  
  cVar2 = *str;
  if ((cVar2 != '=') && (cVar2 != '\0')) {
    pcVar5 = value + 0xff;
    pcVar4 = value;
    do {
      str = str + 1;
      value = pcVar4 + 1;
      *pcVar4 = cVar2;
      cVar2 = *str;
      if ((cVar2 == '\0') || (cVar2 == '=')) break;
      pcVar4 = value;
    } while (value != pcVar5);
  }
  *value = '\0';
  _Var3 = false;
  if (*str == '=') {
    cVar2 = str[1];
    bVar6 = cVar2 == '\"';
    if (bVar6) {
      pcVar5 = str + 2;
      cVar2 = str[2];
    }
    else {
      pcVar5 = str + 1;
    }
    if (cVar2 != '\0') {
      pcVar4 = pcVar5 + 0x3ff;
      bVar1 = false;
      do {
        if (cVar2 == '\"') {
          if ((!bVar1) && (bVar6)) {
LAB_00071ab8:
            *content = '\0';
            *endptr = pcVar5 + 1;
            return true;
          }
LAB_00071a87:
          *content = cVar2;
          bVar1 = false;
        }
        else {
          if (cVar2 < '#') {
            if ((cVar2 == '\n') || (cVar2 == '\r')) goto LAB_00071ab8;
            goto LAB_00071a87;
          }
          if (cVar2 == ',') {
            if (!bVar6) goto LAB_00071ab8;
            goto LAB_00071a87;
          }
          if ((cVar2 != '\\') || (bVar1)) goto LAB_00071a87;
          *content = '\\';
          bVar1 = true;
        }
        content = content + 1;
        pcVar5 = pcVar5 + 1;
        cVar2 = *pcVar5;
      } while ((cVar2 != '\0') && (pcVar4 != pcVar5));
    }
    *content = '\0';
    *endptr = pcVar5;
    _Var3 = true;
  }
  return _Var3;
}



undefined4 FUN_00071a00(char *param_1,char *param_2,char *param_3,undefined4 *param_4)

{
  bool bVar1;
  char cVar2;
  undefined4 uVar3;
  char *pcVar4;
  char *pcVar5;
  bool bVar6;
  
  cVar2 = *param_1;
  if ((cVar2 != '=') && (cVar2 != '\0')) {
    pcVar5 = param_2 + 0xff;
    pcVar4 = param_2;
    do {
      param_1 = param_1 + 1;
      param_2 = pcVar4 + 1;
      *pcVar4 = cVar2;
      cVar2 = *param_1;
      if ((cVar2 == '\0') || (cVar2 == '=')) break;
      pcVar4 = param_2;
    } while (param_2 != pcVar5);
  }
  *param_2 = '\0';
  uVar3 = 0;
  if (*param_1 == '=') {
    cVar2 = param_1[1];
    bVar6 = cVar2 == '\"';
    if (bVar6) {
      pcVar5 = param_1 + 2;
      cVar2 = param_1[2];
    }
    else {
      pcVar5 = param_1 + 1;
    }
    if (cVar2 != '\0') {
      pcVar4 = pcVar5 + 0x3ff;
      bVar1 = false;
      do {
        if (cVar2 == '\"') {
          if ((!bVar1) && (bVar6)) {
LAB_00071ab8:
            *param_3 = '\0';
            *param_4 = pcVar5 + 1;
            return 1;
          }
LAB_00071a87:
          *param_3 = cVar2;
          bVar1 = false;
        }
        else {
          if (cVar2 < '#') {
            if ((cVar2 == '\n') || (cVar2 == '\r')) goto LAB_00071ab8;
            goto LAB_00071a87;
          }
          if (cVar2 == ',') {
            if (!bVar6) goto LAB_00071ab8;
            goto LAB_00071a87;
          }
          if ((cVar2 != '\\') || (bVar1)) goto LAB_00071a87;
          *param_3 = '\\';
          bVar1 = true;
        }
        param_3 = param_3 + 1;
        pcVar5 = pcVar5 + 1;
        cVar2 = *pcVar5;
      } while ((cVar2 != '\0') && (pcVar4 != pcVar5));
    }
    *param_3 = '\0';
    *param_4 = pcVar5;
    uVar3 = 1;
  }
  return uVar3;
}


PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
MOV ECX,dword ptr [ESP + 0x14]
MOV EDX,dword ptr [ESP + 0x18]
MOV ESI,dword ptr [ESP + 0x1c]
MOVZX EAX,byte ptr [ECX]
CMP AL,0x3d
JZ 0x00071a40
TEST AL,AL
JZ 0x00071a40
LEA EBX,[EDX + 0xff]
JMP 0x00071a30
CMP AL,0x3d
JZ 0x00071a40
CMP EDX,EBX
JZ 0x00071a40
ADD ECX,0x1
ADD EDX,0x1
MOV byte ptr [EDX + -0x1],AL
MOVZX EAX,byte ptr [ECX]
TEST AL,AL
JNZ 0x00071a28
MOV byte ptr [EDX],0x0
XOR EAX,EAX
CMP byte ptr [ECX],0x3d
JNZ 0x00071aa9
MOVZX EAX,byte ptr [ECX + 0x1]
CMP AL,0x22
JZ 0x00071b10
LEA EDX,[ECX + 0x1]
XOR EBP,EBP
TEST AL,AL
JZ 0x00071a9b
MOV ECX,ESI
LEA EDI,[EDX + 0x3ff]
XOR EBX,EBX
LEA ESI,[ESI]
MOV ESI,ECX
CMP AL,0x22
JZ 0x00071ae8
JLE 0x00071ab0
CMP AL,0x2c
JZ 0x00071ad0
CMP AL,0x5c
JNZ 0x00071ae0
LEA ESI,[ECX + 0x1]
TEST BL,BL
JZ 0x00071b00
MOV byte ptr [ECX],AL
XOR EBX,EBX
ADD EDX,0x1
MOVZX EAX,byte ptr [EDX]
TEST AL,AL
JZ 0x00071a9b
MOV ECX,ESI
CMP EDI,EDX
JNZ 0x00071a70
MOV EAX,dword ptr [ESP + 0x20]
MOV byte ptr [ESI],0x0
MOV dword ptr [EAX],EDX
MOV EAX,0x1
POP EBX
POP ESI
POP EDI
POP EBP
RET
CMP AL,0xa
JZ 0x00071ab8
CMP AL,0xd
JNZ 0x00071ae0
MOV EAX,dword ptr [ESP + 0x20]
ADD EDX,0x1
MOV byte ptr [ESI],0x0
MOV dword ptr [EAX],EDX
MOV EAX,0x1
JMP 0x00071aa9
MOV EBX,EBP
TEST BL,BL
JZ 0x00071ab8
LEA ESI,[ESI]
LEA ESI,[ESI]
LEA ESI,[ECX + 0x1]
JMP 0x00071a87
TEST BL,BL
JNZ 0x00071ae0
MOV EBX,EBP
TEST BL,BL
JNZ 0x00071ab8
LEA ESI,[ECX + 0x1]
JMP 0x00071a87
MOV byte ptr [ECX],0x5c
MOV EBX,0x1
JMP 0x00071a8b
LEA EDX,[ECX + 0x2]
MOVZX EAX,byte ptr [ECX + 0x2]
MOV EBP,0x1
JMP 0x00071a5b
(translation_unit "undefined4 FUN_00071a00(char *param_1,char *param_2,char *param_3,undefined4 *param_4)\n\n{\n  bool bVar1;\n  char cVar2;\n  undefined4 uVar3;\n  char *pcVar4;\n  char *pcVar5;\n  bool bVar6;\n  \n  cVar2 = *param_1;\n  if ((cVar2 != '=') && (cVar2 != '\0')) {\n    pcVar5 = param_2 + 0xff;\n    pcVar4 = param_2;\n    do {\n      param_1 = param_1 + 1;\n      param_2 = pcVar4 + 1;\n      *pcVar4 = cVar2;\n      cVar2 = *param_1;\n      if ((cVar2 == '\0') || (cVar2 == '=')) break;\n      pcVar4 = param_2;\n    } while (param_2 != pcVar5);\n  }\n  *param_2 = '\0';\n  uVar3 = 0;\n  if (*param_1 == '=') {\n    cVar2 = param_1[1];\n    bVar6 = cVar2 == '\"';\n    if (bVar6) {\n      pcVar5 = param_1 + 2;\n      cVar2 = param_1[2];\n    }\n    else {\n      pcVar5 = param_1 + 1;\n    }\n    if (cVar2 != '\0') {\n      pcVar4 = pcVar5 + 0x3ff;\n      bVar1 = false;\n      do {\n        if (cVar2 == '\"') {\n          if ((!bVar1) && (bVar6)) {\nLAB_00071ab8:\n            *param_3 = '\0';\n            *param_4 = pcVar5 + 1;\n            return 1;\n          }\nLAB_00071a87:\n          *param_3 = cVar2;\n          bVar1 = false;\n        }\n        else {\n          if (cVar2 < '#') {\n            if ((cVar2 == '\n') || (cVar2 == '\r')) goto LAB_00071ab8;\n            goto LAB_00071a87;\n          }\n          if (cVar2 == ',') {\n            if (!bVar6) goto LAB_00071ab8;\n            goto LAB_00071a87;\n          }\n          if ((cVar2 != '\\') || (bVar1)) goto LAB_00071a87;\n          *param_3 = '\\';\n          bVar1 = true;\n        }\n        param_3 = param_3 + 1;\n        pcVar5 = pcVar5 + 1;\n        cVar2 = *pcVar5;\n      } while ((cVar2 != '\0') && (pcVar4 != pcVar5));\n    }\n    *param_3 = '\0';\n    *param_4 = pcVar5;\n    uVar3 = 1;\n  }\n  return uVar3;\n}\n\n" (function_definition "undefined4 FUN_00071a00(char *param_1,char *param_2,char *param_3,undefined4 *param_4)\n\n{\n  bool bVar1;\n  char cVar2;\n  undefined4 uVar3;\n  char *pcVar4;\n  char *pcVar5;\n  bool bVar6;\n  \n  cVar2 = *param_1;\n  if ((cVar2 != '=') && (cVar2 != '\0')) {\n    pcVar5 = param_2 + 0xff;\n    pcVar4 = param_2;\n    do {\n      param_1 = param_1 + 1;\n      param_2 = pcVar4 + 1;\n      *pcVar4 = cVar2;\n      cVar2 = *param_1;\n      if ((cVar2 == '\0') || (cVar2 == '=')) break;\n      pcVar4 = param_2;\n    } while (param_2 != pcVar5);\n  }\n  *param_2 = '\0';\n  uVar3 = 0;\n  if (*param_1 == '=') {\n    cVar2 = param_1[1];\n    bVar6 = cVar2 == '\"';\n    if (bVar6) {\n      pcVar5 = param_1 + 2;\n      cVar2 = param_1[2];\n    }\n    else {\n      pcVar5 = param_1 + 1;\n    }\n    if (cVar2 != '\0') {\n      pcVar4 = pcVar5 + 0x3ff;\n      bVar1 = false;\n      do {\n        if (cVar2 == '\"') {\n          if ((!bVar1) && (bVar6)) {\nLAB_00071ab8:\n            *param_3 = '\0';\n            *param_4 = pcVar5 + 1;\n            return 1;\n          }\nLAB_00071a87:\n          *param_3 = cVar2;\n          bVar1 = false;\n        }\n        else {\n          if (cVar2 < '#') {\n            if ((cVar2 == '\n') || (cVar2 == '\r')) goto LAB_00071ab8;\n            goto LAB_00071a87;\n          }\n          if (cVar2 == ',') {\n            if (!bVar6) goto LAB_00071ab8;\n            goto LAB_00071a87;\n          }\n          if ((cVar2 != '\\') || (bVar1)) goto LAB_00071a87;\n          *param_3 = '\\';\n          bVar1 = true;\n        }\n        param_3 = param_3 + 1;\n        pcVar5 = pcVar5 + 1;\n        cVar2 = *pcVar5;\n      } while ((cVar2 != '\0') && (pcVar4 != pcVar5));\n    }\n    *param_3 = '\0';\n    *param_4 = pcVar5;\n    uVar3 = 1;\n  }\n  return uVar3;\n}" type_identifier (function_declarator "FUN_00071a00(char *param_1,char *param_2,char *param_3,undefined4 *param_4)" identifier (parameter_list "(char *param_1,char *param_2,char *param_3,undefined4 *param_4)" ( (parameter_declaration "char *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "char *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "char *param_3" primitive_type (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "undefined4 *param_4" type_identifier (pointer_declarator "*param_4" * identifier)) ))) (compound_statement "{\n  bool bVar1;\n  char cVar2;\n  undefined4 uVar3;\n  char *pcVar4;\n  char *pcVar5;\n  bool bVar6;\n  \n  cVar2 = *param_1;\n  if ((cVar2 != '=') && (cVar2 != '\0')) {\n    pcVar5 = param_2 + 0xff;\n    pcVar4 = param_2;\n    do {\n      param_1 = param_1 + 1;\n      param_2 = pcVar4 + 1;\n      *pcVar4 = cVar2;\n      cVar2 = *param_1;\n      if ((cVar2 == '\0') || (cVar2 == '=')) break;\n      pcVar4 = param_2;\n    } while (param_2 != pcVar5);\n  }\n  *param_2 = '\0';\n  uVar3 = 0;\n  if (*param_1 == '=') {\n    cVar2 = param_1[1];\n    bVar6 = cVar2 == '\"';\n    if (bVar6) {\n      pcVar5 = param_1 + 2;\n      cVar2 = param_1[2];\n    }\n    else {\n      pcVar5 = param_1 + 1;\n    }\n    if (cVar2 != '\0') {\n      pcVar4 = pcVar5 + 0x3ff;\n      bVar1 = false;\n      do {\n        if (cVar2 == '\"') {\n          if ((!bVar1) && (bVar6)) {\nLAB_00071ab8:\n            *param_3 = '\0';\n            *param_4 = pcVar5 + 1;\n            return 1;\n          }\nLAB_00071a87:\n          *param_3 = cVar2;\n          bVar1 = false;\n        }\n        else {\n          if (cVar2 < '#') {\n            if ((cVar2 == '\n') || (cVar2 == '\r')) goto LAB_00071ab8;\n            goto LAB_00071a87;\n          }\n          if (cVar2 == ',') {\n            if (!bVar6) goto LAB_00071ab8;\n            goto LAB_00071a87;\n          }\n          if ((cVar2 != '\\') || (bVar1)) goto LAB_00071a87;\n          *param_3 = '\\';\n          bVar1 = true;\n        }\n        param_3 = param_3 + 1;\n        pcVar5 = pcVar5 + 1;\n        cVar2 = *pcVar5;\n      } while ((cVar2 != '\0') && (pcVar4 != pcVar5));\n    }\n    *param_3 = '\0';\n    *param_4 = pcVar5;\n    uVar3 = 1;\n  }\n  return uVar3;\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "char cVar2;" primitive_type identifier ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (declaration "char *pcVar4;" primitive_type (pointer_declarator "*pcVar4" * identifier) ;) (declaration "char *pcVar5;" primitive_type (pointer_declarator "*pcVar5" * identifier) ;) (declaration "bool bVar6;" primitive_type identifier ;) (expression_statement "cVar2 = *param_1;" (assignment_expression "cVar2 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (if_statement "if ((cVar2 != '=') && (cVar2 != '\0')) {\n    pcVar5 = param_2 + 0xff;\n    pcVar4 = param_2;\n    do {\n      param_1 = param_1 + 1;\n      param_2 = pcVar4 + 1;\n      *pcVar4 = cVar2;\n      cVar2 = *param_1;\n      if ((cVar2 == '\0') || (cVar2 == '=')) break;\n      pcVar4 = param_2;\n    } while (param_2 != pcVar5);\n  }" if (parenthesized_expression "((cVar2 != '=') && (cVar2 != '\0'))" ( (binary_expression "(cVar2 != '=') && (cVar2 != '\0')" (parenthesized_expression "(cVar2 != '=')" ( (binary_expression "cVar2 != '='" identifier != (char_literal "'='" ' character ')) )) && (parenthesized_expression "(cVar2 != '\0')" ( (binary_expression "cVar2 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n    pcVar5 = param_2 + 0xff;\n    pcVar4 = param_2;\n    do {\n      param_1 = param_1 + 1;\n      param_2 = pcVar4 + 1;\n      *pcVar4 = cVar2;\n      cVar2 = *param_1;\n      if ((cVar2 == '\0') || (cVar2 == '=')) break;\n      pcVar4 = param_2;\n    } while (param_2 != pcVar5);\n  }" { (expression_statement "pcVar5 = param_2 + 0xff;" (assignment_expression "pcVar5 = param_2 + 0xff" identifier = (binary_expression "param_2 + 0xff" identifier + number_literal)) ;) (expression_statement "pcVar4 = param_2;" (assignment_expression "pcVar4 = param_2" identifier = identifier) ;) (do_statement "do {\n      param_1 = param_1 + 1;\n      param_2 = pcVar4 + 1;\n      *pcVar4 = cVar2;\n      cVar2 = *param_1;\n      if ((cVar2 == '\0') || (cVar2 == '=')) break;\n      pcVar4 = param_2;\n    } while (param_2 != pcVar5);" do (compound_statement "{\n      param_1 = param_1 + 1;\n      param_2 = pcVar4 + 1;\n      *pcVar4 = cVar2;\n      cVar2 = *param_1;\n      if ((cVar2 == '\0') || (cVar2 == '=')) break;\n      pcVar4 = param_2;\n    }" { (expression_statement "param_1 = param_1 + 1;" (assignment_expression "param_1 = param_1 + 1" identifier = (binary_expression "param_1 + 1" identifier + number_literal)) ;) (expression_statement "param_2 = pcVar4 + 1;" (assignment_expression "param_2 = pcVar4 + 1" identifier = (binary_expression "pcVar4 + 1" identifier + number_literal)) ;) (expression_statement "*pcVar4 = cVar2;" (assignment_expression "*pcVar4 = cVar2" (pointer_expression "*pcVar4" * identifier) = identifier) ;) (expression_statement "cVar2 = *param_1;" (assignment_expression "cVar2 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (if_statement "if ((cVar2 == '\0') || (cVar2 == '=')) break;" if (parenthesized_expression "((cVar2 == '\0') || (cVar2 == '='))" ( (binary_expression "(cVar2 == '\0') || (cVar2 == '=')" (parenthesized_expression "(cVar2 == '\0')" ( (binary_expression "cVar2 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) || (parenthesized_expression "(cVar2 == '=')" ( (binary_expression "cVar2 == '='" identifier == (char_literal "'='" ' character ')) ))) )) (break_statement "break;" break ;)) (expression_statement "pcVar4 = param_2;" (assignment_expression "pcVar4 = param_2" identifier = identifier) ;) }) while (parenthesized_expression "(param_2 != pcVar5)" ( (binary_expression "param_2 != pcVar5" identifier != identifier) )) ;) })) (expression_statement "*param_2 = '\0';" (assignment_expression "*param_2 = '\0'" (pointer_expression "*param_2" * identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "uVar3 = 0;" (assignment_expression "uVar3 = 0" identifier = number_literal) ;) (if_statement "if (*param_1 == '=') {\n    cVar2 = param_1[1];\n    bVar6 = cVar2 == '\"';\n    if (bVar6) {\n      pcVar5 = param_1 + 2;\n      cVar2 = param_1[2];\n    }\n    else {\n      pcVar5 = param_1 + 1;\n    }\n    if (cVar2 != '\0') {\n      pcVar4 = pcVar5 + 0x3ff;\n      bVar1 = false;\n      do {\n        if (cVar2 == '\"') {\n          if ((!bVar1) && (bVar6)) {\nLAB_00071ab8:\n            *param_3 = '\0';\n            *param_4 = pcVar5 + 1;\n            return 1;\n          }\nLAB_00071a87:\n          *param_3 = cVar2;\n          bVar1 = false;\n        }\n        else {\n          if (cVar2 < '#') {\n            if ((cVar2 == '\n') || (cVar2 == '\r')) goto LAB_00071ab8;\n            goto LAB_00071a87;\n          }\n          if (cVar2 == ',') {\n            if (!bVar6) goto LAB_00071ab8;\n            goto LAB_00071a87;\n          }\n          if ((cVar2 != '\\') || (bVar1)) goto LAB_00071a87;\n          *param_3 = '\\';\n          bVar1 = true;\n        }\n        param_3 = param_3 + 1;\n        pcVar5 = pcVar5 + 1;\n        cVar2 = *pcVar5;\n      } while ((cVar2 != '\0') && (pcVar4 != pcVar5));\n    }\n    *param_3 = '\0';\n    *param_4 = pcVar5;\n    uVar3 = 1;\n  }" if (parenthesized_expression "(*param_1 == '=')" ( (binary_expression "*param_1 == '='" (pointer_expression "*param_1" * identifier) == (char_literal "'='" ' character ')) )) (compound_statement "{\n    cVar2 = param_1[1];\n    bVar6 = cVar2 == '\"';\n    if (bVar6) {\n      pcVar5 = param_1 + 2;\n      cVar2 = param_1[2];\n    }\n    else {\n      pcVar5 = param_1 + 1;\n    }\n    if (cVar2 != '\0') {\n      pcVar4 = pcVar5 + 0x3ff;\n      bVar1 = false;\n      do {\n        if (cVar2 == '\"') {\n          if ((!bVar1) && (bVar6)) {\nLAB_00071ab8:\n            *param_3 = '\0';\n            *param_4 = pcVar5 + 1;\n            return 1;\n          }\nLAB_00071a87:\n          *param_3 = cVar2;\n          bVar1 = false;\n        }\n        else {\n          if (cVar2 < '#') {\n            if ((cVar2 == '\n') || (cVar2 == '\r')) goto LAB_00071ab8;\n            goto LAB_00071a87;\n          }\n          if (cVar2 == ',') {\n            if (!bVar6) goto LAB_00071ab8;\n            goto LAB_00071a87;\n          }\n          if ((cVar2 != '\\') || (bVar1)) goto LAB_00071a87;\n          *param_3 = '\\';\n          bVar1 = true;\n        }\n        param_3 = param_3 + 1;\n        pcVar5 = pcVar5 + 1;\n        cVar2 = *pcVar5;\n      } while ((cVar2 != '\0') && (pcVar4 != pcVar5));\n    }\n    *param_3 = '\0';\n    *param_4 = pcVar5;\n    uVar3 = 1;\n  }" { (expression_statement "cVar2 = param_1[1];" (assignment_expression "cVar2 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (expression_statement "bVar6 = cVar2 == '\"';" (assignment_expression "bVar6 = cVar2 == '\"'" identifier = (binary_expression "cVar2 == '\"'" identifier == (char_literal "'\"'" ' escape_sequence '))) ;) (if_statement "if (bVar6) {\n      pcVar5 = param_1 + 2;\n      cVar2 = param_1[2];\n    }\n    else {\n      pcVar5 = param_1 + 1;\n    }" if (parenthesized_expression "(bVar6)" ( identifier )) (compound_statement "{\n      pcVar5 = param_1 + 2;\n      cVar2 = param_1[2];\n    }" { (expression_statement "pcVar5 = param_1 + 2;" (assignment_expression "pcVar5 = param_1 + 2" identifier = (binary_expression "param_1 + 2" identifier + number_literal)) ;) (expression_statement "cVar2 = param_1[2];" (assignment_expression "cVar2 = param_1[2]" identifier = (subscript_expression "param_1[2]" identifier [ number_literal ])) ;) }) (else_clause "else {\n      pcVar5 = param_1 + 1;\n    }" else (compound_statement "{\n      pcVar5 = param_1 + 1;\n    }" { (expression_statement "pcVar5 = param_1 + 1;" (assignment_expression "pcVar5 = param_1 + 1" identifier = (binary_expression "param_1 + 1" identifier + number_literal)) ;) }))) (if_statement "if (cVar2 != '\0') {\n      pcVar4 = pcVar5 + 0x3ff;\n      bVar1 = false;\n      do {\n        if (cVar2 == '\"') {\n          if ((!bVar1) && (bVar6)) {\nLAB_00071ab8:\n            *param_3 = '\0';\n            *param_4 = pcVar5 + 1;\n            return 1;\n          }\nLAB_00071a87:\n          *param_3 = cVar2;\n          bVar1 = false;\n        }\n        else {\n          if (cVar2 < '#') {\n            if ((cVar2 == '\n') || (cVar2 == '\r')) goto LAB_00071ab8;\n            goto LAB_00071a87;\n          }\n          if (cVar2 == ',') {\n            if (!bVar6) goto LAB_00071ab8;\n            goto LAB_00071a87;\n          }\n          if ((cVar2 != '\\') || (bVar1)) goto LAB_00071a87;\n          *param_3 = '\\';\n          bVar1 = true;\n        }\n        param_3 = param_3 + 1;\n        pcVar5 = pcVar5 + 1;\n        cVar2 = *pcVar5;\n      } while ((cVar2 != '\0') && (pcVar4 != pcVar5));\n    }" if (parenthesized_expression "(cVar2 != '\0')" ( (binary_expression "cVar2 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      pcVar4 = pcVar5 + 0x3ff;\n      bVar1 = false;\n      do {\n        if (cVar2 == '\"') {\n          if ((!bVar1) && (bVar6)) {\nLAB_00071ab8:\n            *param_3 = '\0';\n            *param_4 = pcVar5 + 1;\n            return 1;\n          }\nLAB_00071a87:\n          *param_3 = cVar2;\n          bVar1 = false;\n        }\n        else {\n          if (cVar2 < '#') {\n            if ((cVar2 == '\n') || (cVar2 == '\r')) goto LAB_00071ab8;\n            goto LAB_00071a87;\n          }\n          if (cVar2 == ',') {\n            if (!bVar6) goto LAB_00071ab8;\n            goto LAB_00071a87;\n          }\n          if ((cVar2 != '\\') || (bVar1)) goto LAB_00071a87;\n          *param_3 = '\\';\n          bVar1 = true;\n        }\n        param_3 = param_3 + 1;\n        pcVar5 = pcVar5 + 1;\n        cVar2 = *pcVar5;\n      } while ((cVar2 != '\0') && (pcVar4 != pcVar5));\n    }" { (expression_statement "pcVar4 = pcVar5 + 0x3ff;" (assignment_expression "pcVar4 = pcVar5 + 0x3ff" identifier = (binary_expression "pcVar5 + 0x3ff" identifier + number_literal)) ;) (expression_statement "bVar1 = false;" (assignment_expression "bVar1 = false" identifier = false) ;) (do_statement "do {\n        if (cVar2 == '\"') {\n          if ((!bVar1) && (bVar6)) {\nLAB_00071ab8:\n            *param_3 = '\0';\n            *param_4 = pcVar5 + 1;\n            return 1;\n          }\nLAB_00071a87:\n          *param_3 = cVar2;\n          bVar1 = false;\n        }\n        else {\n          if (cVar2 < '#') {\n            if ((cVar2 == '\n') || (cVar2 == '\r')) goto LAB_00071ab8;\n            goto LAB_00071a87;\n          }\n          if (cVar2 == ',') {\n            if (!bVar6) goto LAB_00071ab8;\n            goto LAB_00071a87;\n          }\n          if ((cVar2 != '\\') || (bVar1)) goto LAB_00071a87;\n          *param_3 = '\\';\n          bVar1 = true;\n        }\n        param_3 = param_3 + 1;\n        pcVar5 = pcVar5 + 1;\n        cVar2 = *pcVar5;\n      } while ((cVar2 != '\0') && (pcVar4 != pcVar5));" do (compound_statement "{\n        if (cVar2 == '\"') {\n          if ((!bVar1) && (bVar6)) {\nLAB_00071ab8:\n            *param_3 = '\0';\n            *param_4 = pcVar5 + 1;\n            return 1;\n          }\nLAB_00071a87:\n          *param_3 = cVar2;\n          bVar1 = false;\n        }\n        else {\n          if (cVar2 < '#') {\n            if ((cVar2 == '\n') || (cVar2 == '\r')) goto LAB_00071ab8;\n            goto LAB_00071a87;\n          }\n          if (cVar2 == ',') {\n            if (!bVar6) goto LAB_00071ab8;\n            goto LAB_00071a87;\n          }\n          if ((cVar2 != '\\') || (bVar1)) goto LAB_00071a87;\n          *param_3 = '\\';\n          bVar1 = true;\n        }\n        param_3 = param_3 + 1;\n        pcVar5 = pcVar5 + 1;\n        cVar2 = *pcVar5;\n      }" { (if_statement "if (cVar2 == '\"') {\n          if ((!bVar1) && (bVar6)) {\nLAB_00071ab8:\n            *param_3 = '\0';\n            *param_4 = pcVar5 + 1;\n            return 1;\n          }\nLAB_00071a87:\n          *param_3 = cVar2;\n          bVar1 = false;\n        }\n        else {\n          if (cVar2 < '#') {\n            if ((cVar2 == '\n') || (cVar2 == '\r')) goto LAB_00071ab8;\n            goto LAB_00071a87;\n          }\n          if (cVar2 == ',') {\n            if (!bVar6) goto LAB_00071ab8;\n            goto LAB_00071a87;\n          }\n          if ((cVar2 != '\\') || (bVar1)) goto LAB_00071a87;\n          *param_3 = '\\';\n          bVar1 = true;\n        }" if (parenthesized_expression "(cVar2 == '\"')" ( (binary_expression "cVar2 == '\"'" identifier == (char_literal "'\"'" ' escape_sequence ')) )) (compound_statement "{\n          if ((!bVar1) && (bVar6)) {\nLAB_00071ab8:\n            *param_3 = '\0';\n            *param_4 = pcVar5 + 1;\n            return 1;\n          }\nLAB_00071a87:\n          *param_3 = cVar2;\n          bVar1 = false;\n        }" { (if_statement "if ((!bVar1) && (bVar6)) {\nLAB_00071ab8:\n            *param_3 = '\0';\n            *param_4 = pcVar5 + 1;\n            return 1;\n          }" if (parenthesized_expression "((!bVar1) && (bVar6))" ( (binary_expression "(!bVar1) && (bVar6)" (parenthesized_expression "(!bVar1)" ( (unary_expression "!bVar1" ! identifier) )) && (parenthesized_expression "(bVar6)" ( identifier ))) )) (compound_statement "{\nLAB_00071ab8:\n            *param_3 = '\0';\n            *param_4 = pcVar5 + 1;\n            return 1;\n          }" { (labeled_statement "LAB_00071ab8:\n            *param_3 = '\0';" statement_identifier : (expression_statement "*param_3 = '\0';" (assignment_expression "*param_3 = '\0'" (pointer_expression "*param_3" * identifier) = (char_literal "'\0'" ' escape_sequence ')) ;)) (expression_statement "*param_4 = pcVar5 + 1;" (assignment_expression "*param_4 = pcVar5 + 1" (pointer_expression "*param_4" * identifier) = (binary_expression "pcVar5 + 1" identifier + number_literal)) ;) (return_statement "return 1;" return number_literal ;) })) (labeled_statement "LAB_00071a87:\n          *param_3 = cVar2;" statement_identifier : (expression_statement "*param_3 = cVar2;" (assignment_expression "*param_3 = cVar2" (pointer_expression "*param_3" * identifier) = identifier) ;)) (expression_statement "bVar1 = false;" (assignment_expression "bVar1 = false" identifier = false) ;) }) (else_clause "else {\n          if (cVar2 < '#') {\n            if ((cVar2 == '\n') || (cVar2 == '\r')) goto LAB_00071ab8;\n            goto LAB_00071a87;\n          }\n          if (cVar2 == ',') {\n            if (!bVar6) goto LAB_00071ab8;\n            goto LAB_00071a87;\n          }\n          if ((cVar2 != '\\') || (bVar1)) goto LAB_00071a87;\n          *param_3 = '\\';\n          bVar1 = true;\n        }" else (compound_statement "{\n          if (cVar2 < '#') {\n            if ((cVar2 == '\n') || (cVar2 == '\r')) goto LAB_00071ab8;\n            goto LAB_00071a87;\n          }\n          if (cVar2 == ',') {\n            if (!bVar6) goto LAB_00071ab8;\n            goto LAB_00071a87;\n          }\n          if ((cVar2 != '\\') || (bVar1)) goto LAB_00071a87;\n          *param_3 = '\\';\n          bVar1 = true;\n        }" { (if_statement "if (cVar2 < '#') {\n            if ((cVar2 == '\n') || (cVar2 == '\r')) goto LAB_00071ab8;\n            goto LAB_00071a87;\n          }" if (parenthesized_expression "(cVar2 < '#')" ( (binary_expression "cVar2 < '#'" identifier < (char_literal "'#'" ' character ')) )) (compound_statement "{\n            if ((cVar2 == '\n') || (cVar2 == '\r')) goto LAB_00071ab8;\n            goto LAB_00071a87;\n          }" { (if_statement "if ((cVar2 == '\n') || (cVar2 == '\r')) goto LAB_00071ab8;" if (parenthesized_expression "((cVar2 == '\n') || (cVar2 == '\r'))" ( (binary_expression "(cVar2 == '\n') || (cVar2 == '\r')" (parenthesized_expression "(cVar2 == '\n')" ( (binary_expression "cVar2 == '\n'" identifier == (char_literal "'\n'" ' escape_sequence ')) )) || (parenthesized_expression "(cVar2 == '\r')" ( (binary_expression "cVar2 == '\r'" identifier == (char_literal "'\r'" ' escape_sequence ')) ))) )) (goto_statement "goto LAB_00071ab8;" goto statement_identifier ;)) (goto_statement "goto LAB_00071a87;" goto statement_identifier ;) })) (if_statement "if (cVar2 == ',') {\n            if (!bVar6) goto LAB_00071ab8;\n            goto LAB_00071a87;\n          }" if (parenthesized_expression "(cVar2 == ',')" ( (binary_expression "cVar2 == ','" identifier == (char_literal "','" ' character ')) )) (compound_statement "{\n            if (!bVar6) goto LAB_00071ab8;\n            goto LAB_00071a87;\n          }" { (if_statement "if (!bVar6) goto LAB_00071ab8;" if (parenthesized_expression "(!bVar6)" ( (unary_expression "!bVar6" ! identifier) )) (goto_statement "goto LAB_00071ab8;" goto statement_identifier ;)) (goto_statement "goto LAB_00071a87;" goto statement_identifier ;) })) (if_statement "if ((cVar2 != '\\') || (bVar1)) goto LAB_00071a87;" if (parenthesized_expression "((cVar2 != '\\') || (bVar1))" ( (binary_expression "(cVar2 != '\\') || (bVar1)" (parenthesized_expression "(cVar2 != '\\')" ( (binary_expression "cVar2 != '\\'" identifier != (char_literal "'\\'" ' escape_sequence ')) )) || (parenthesized_expression "(bVar1)" ( identifier ))) )) (goto_statement "goto LAB_00071a87;" goto statement_identifier ;)) (expression_statement "*param_3 = '\\';" (assignment_expression "*param_3 = '\\'" (pointer_expression "*param_3" * identifier) = (char_literal "'\\'" ' escape_sequence ')) ;) (expression_statement "bVar1 = true;" (assignment_expression "bVar1 = true" identifier = true) ;) }))) (expression_statement "param_3 = param_3 + 1;" (assignment_expression "param_3 = param_3 + 1" identifier = (binary_expression "param_3 + 1" identifier + number_literal)) ;) (expression_statement "pcVar5 = pcVar5 + 1;" (assignment_expression "pcVar5 = pcVar5 + 1" identifier = (binary_expression "pcVar5 + 1" identifier + number_literal)) ;) (expression_statement "cVar2 = *pcVar5;" (assignment_expression "cVar2 = *pcVar5" identifier = (pointer_expression "*pcVar5" * identifier)) ;) }) while (parenthesized_expression "((cVar2 != '\0') && (pcVar4 != pcVar5))" ( (binary_expression "(cVar2 != '\0') && (pcVar4 != pcVar5)" (parenthesized_expression "(cVar2 != '\0')" ( (binary_expression "cVar2 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(pcVar4 != pcVar5)" ( (binary_expression "pcVar4 != pcVar5" identifier != identifier) ))) )) ;) })) (expression_statement "*param_3 = '\0';" (assignment_expression "*param_3 = '\0'" (pointer_expression "*param_3" * identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "*param_4 = pcVar5;" (assignment_expression "*param_4 = pcVar5" (pointer_expression "*param_4" * identifier) = identifier) ;) (expression_statement "uVar3 = 1;" (assignment_expression "uVar3 = 1" identifier = number_literal) ;) })) (return_statement "return uVar3;" return identifier ;) })))
(translation_unit "_Bool Curl_auth_digest_get_pair(char *str,char *value,char *content,char **endptr)\n\n{\n  bool bVar1;\n  char cVar2;\n  _Bool _Var3;\n  char *pcVar4;\n  char *pcVar5;\n  bool bVar6;\n  \n  cVar2 = *str;\n  if ((cVar2 != '=') && (cVar2 != '\0')) {\n    pcVar5 = value + 0xff;\n    pcVar4 = value;\n    do {\n      str = str + 1;\n      value = pcVar4 + 1;\n      *pcVar4 = cVar2;\n      cVar2 = *str;\n      if ((cVar2 == '\0') || (cVar2 == '=')) break;\n      pcVar4 = value;\n    } while (value != pcVar5);\n  }\n  *value = '\0';\n  _Var3 = false;\n  if (*str == '=') {\n    cVar2 = str[1];\n    bVar6 = cVar2 == '\"';\n    if (bVar6) {\n      pcVar5 = str + 2;\n      cVar2 = str[2];\n    }\n    else {\n      pcVar5 = str + 1;\n    }\n    if (cVar2 != '\0') {\n      pcVar4 = pcVar5 + 0x3ff;\n      bVar1 = false;\n      do {\n        if (cVar2 == '\"') {\n          if ((!bVar1) && (bVar6)) {\nLAB_00071ab8:\n            *content = '\0';\n            *endptr = pcVar5 + 1;\n            return true;\n          }\nLAB_00071a87:\n          *content = cVar2;\n          bVar1 = false;\n        }\n        else {\n          if (cVar2 < '#') {\n            if ((cVar2 == '\n') || (cVar2 == '\r')) goto LAB_00071ab8;\n            goto LAB_00071a87;\n          }\n          if (cVar2 == ',') {\n            if (!bVar6) goto LAB_00071ab8;\n            goto LAB_00071a87;\n          }\n          if ((cVar2 != '\\') || (bVar1)) goto LAB_00071a87;\n          *content = '\\';\n          bVar1 = true;\n        }\n        content = content + 1;\n        pcVar5 = pcVar5 + 1;\n        cVar2 = *pcVar5;\n      } while ((cVar2 != '\0') && (pcVar4 != pcVar5));\n    }\n    *content = '\0';\n    *endptr = pcVar5;\n    _Var3 = true;\n  }\n  return _Var3;\n}\n\n" (function_definition "_Bool Curl_auth_digest_get_pair(char *str,char *value,char *content,char **endptr)\n\n{\n  bool bVar1;\n  char cVar2;\n  _Bool _Var3;\n  char *pcVar4;\n  char *pcVar5;\n  bool bVar6;\n  \n  cVar2 = *str;\n  if ((cVar2 != '=') && (cVar2 != '\0')) {\n    pcVar5 = value + 0xff;\n    pcVar4 = value;\n    do {\n      str = str + 1;\n      value = pcVar4 + 1;\n      *pcVar4 = cVar2;\n      cVar2 = *str;\n      if ((cVar2 == '\0') || (cVar2 == '=')) break;\n      pcVar4 = value;\n    } while (value != pcVar5);\n  }\n  *value = '\0';\n  _Var3 = false;\n  if (*str == '=') {\n    cVar2 = str[1];\n    bVar6 = cVar2 == '\"';\n    if (bVar6) {\n      pcVar5 = str + 2;\n      cVar2 = str[2];\n    }\n    else {\n      pcVar5 = str + 1;\n    }\n    if (cVar2 != '\0') {\n      pcVar4 = pcVar5 + 0x3ff;\n      bVar1 = false;\n      do {\n        if (cVar2 == '\"') {\n          if ((!bVar1) && (bVar6)) {\nLAB_00071ab8:\n            *content = '\0';\n            *endptr = pcVar5 + 1;\n            return true;\n          }\nLAB_00071a87:\n          *content = cVar2;\n          bVar1 = false;\n        }\n        else {\n          if (cVar2 < '#') {\n            if ((cVar2 == '\n') || (cVar2 == '\r')) goto LAB_00071ab8;\n            goto LAB_00071a87;\n          }\n          if (cVar2 == ',') {\n            if (!bVar6) goto LAB_00071ab8;\n            goto LAB_00071a87;\n          }\n          if ((cVar2 != '\\') || (bVar1)) goto LAB_00071a87;\n          *content = '\\';\n          bVar1 = true;\n        }\n        content = content + 1;\n        pcVar5 = pcVar5 + 1;\n        cVar2 = *pcVar5;\n      } while ((cVar2 != '\0') && (pcVar4 != pcVar5));\n    }\n    *content = '\0';\n    *endptr = pcVar5;\n    _Var3 = true;\n  }\n  return _Var3;\n}" type_identifier (function_declarator "Curl_auth_digest_get_pair(char *str,char *value,char *content,char **endptr)" identifier (parameter_list "(char *str,char *value,char *content,char **endptr)" ( (parameter_declaration "char *str" primitive_type (pointer_declarator "*str" * identifier)) , (parameter_declaration "char *value" primitive_type (pointer_declarator "*value" * identifier)) , (parameter_declaration "char *content" primitive_type (pointer_declarator "*content" * identifier)) , (parameter_declaration "char **endptr" primitive_type (pointer_declarator "**endptr" * (pointer_declarator "*endptr" * identifier))) ))) (compound_statement "{\n  bool bVar1;\n  char cVar2;\n  _Bool _Var3;\n  char *pcVar4;\n  char *pcVar5;\n  bool bVar6;\n  \n  cVar2 = *str;\n  if ((cVar2 != '=') && (cVar2 != '\0')) {\n    pcVar5 = value + 0xff;\n    pcVar4 = value;\n    do {\n      str = str + 1;\n      value = pcVar4 + 1;\n      *pcVar4 = cVar2;\n      cVar2 = *str;\n      if ((cVar2 == '\0') || (cVar2 == '=')) break;\n      pcVar4 = value;\n    } while (value != pcVar5);\n  }\n  *value = '\0';\n  _Var3 = false;\n  if (*str == '=') {\n    cVar2 = str[1];\n    bVar6 = cVar2 == '\"';\n    if (bVar6) {\n      pcVar5 = str + 2;\n      cVar2 = str[2];\n    }\n    else {\n      pcVar5 = str + 1;\n    }\n    if (cVar2 != '\0') {\n      pcVar4 = pcVar5 + 0x3ff;\n      bVar1 = false;\n      do {\n        if (cVar2 == '\"') {\n          if ((!bVar1) && (bVar6)) {\nLAB_00071ab8:\n            *content = '\0';\n            *endptr = pcVar5 + 1;\n            return true;\n          }\nLAB_00071a87:\n          *content = cVar2;\n          bVar1 = false;\n        }\n        else {\n          if (cVar2 < '#') {\n            if ((cVar2 == '\n') || (cVar2 == '\r')) goto LAB_00071ab8;\n            goto LAB_00071a87;\n          }\n          if (cVar2 == ',') {\n            if (!bVar6) goto LAB_00071ab8;\n            goto LAB_00071a87;\n          }\n          if ((cVar2 != '\\') || (bVar1)) goto LAB_00071a87;\n          *content = '\\';\n          bVar1 = true;\n        }\n        content = content + 1;\n        pcVar5 = pcVar5 + 1;\n        cVar2 = *pcVar5;\n      } while ((cVar2 != '\0') && (pcVar4 != pcVar5));\n    }\n    *content = '\0';\n    *endptr = pcVar5;\n    _Var3 = true;\n  }\n  return _Var3;\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "char cVar2;" primitive_type identifier ;) (declaration "_Bool _Var3;" type_identifier identifier ;) (declaration "char *pcVar4;" primitive_type (pointer_declarator "*pcVar4" * identifier) ;) (declaration "char *pcVar5;" primitive_type (pointer_declarator "*pcVar5" * identifier) ;) (declaration "bool bVar6;" primitive_type identifier ;) (expression_statement "cVar2 = *str;" (assignment_expression "cVar2 = *str" identifier = (pointer_expression "*str" * identifier)) ;) (if_statement "if ((cVar2 != '=') && (cVar2 != '\0')) {\n    pcVar5 = value + 0xff;\n    pcVar4 = value;\n    do {\n      str = str + 1;\n      value = pcVar4 + 1;\n      *pcVar4 = cVar2;\n      cVar2 = *str;\n      if ((cVar2 == '\0') || (cVar2 == '=')) break;\n      pcVar4 = value;\n    } while (value != pcVar5);\n  }" if (parenthesized_expression "((cVar2 != '=') && (cVar2 != '\0'))" ( (binary_expression "(cVar2 != '=') && (cVar2 != '\0')" (parenthesized_expression "(cVar2 != '=')" ( (binary_expression "cVar2 != '='" identifier != (char_literal "'='" ' character ')) )) && (parenthesized_expression "(cVar2 != '\0')" ( (binary_expression "cVar2 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n    pcVar5 = value + 0xff;\n    pcVar4 = value;\n    do {\n      str = str + 1;\n      value = pcVar4 + 1;\n      *pcVar4 = cVar2;\n      cVar2 = *str;\n      if ((cVar2 == '\0') || (cVar2 == '=')) break;\n      pcVar4 = value;\n    } while (value != pcVar5);\n  }" { (expression_statement "pcVar5 = value + 0xff;" (assignment_expression "pcVar5 = value + 0xff" identifier = (binary_expression "value + 0xff" identifier + number_literal)) ;) (expression_statement "pcVar4 = value;" (assignment_expression "pcVar4 = value" identifier = identifier) ;) (do_statement "do {\n      str = str + 1;\n      value = pcVar4 + 1;\n      *pcVar4 = cVar2;\n      cVar2 = *str;\n      if ((cVar2 == '\0') || (cVar2 == '=')) break;\n      pcVar4 = value;\n    } while (value != pcVar5);" do (compound_statement "{\n      str = str + 1;\n      value = pcVar4 + 1;\n      *pcVar4 = cVar2;\n      cVar2 = *str;\n      if ((cVar2 == '\0') || (cVar2 == '=')) break;\n      pcVar4 = value;\n    }" { (expression_statement "str = str + 1;" (assignment_expression "str = str + 1" identifier = (binary_expression "str + 1" identifier + number_literal)) ;) (expression_statement "value = pcVar4 + 1;" (assignment_expression "value = pcVar4 + 1" identifier = (binary_expression "pcVar4 + 1" identifier + number_literal)) ;) (expression_statement "*pcVar4 = cVar2;" (assignment_expression "*pcVar4 = cVar2" (pointer_expression "*pcVar4" * identifier) = identifier) ;) (expression_statement "cVar2 = *str;" (assignment_expression "cVar2 = *str" identifier = (pointer_expression "*str" * identifier)) ;) (if_statement "if ((cVar2 == '\0') || (cVar2 == '=')) break;" if (parenthesized_expression "((cVar2 == '\0') || (cVar2 == '='))" ( (binary_expression "(cVar2 == '\0') || (cVar2 == '=')" (parenthesized_expression "(cVar2 == '\0')" ( (binary_expression "cVar2 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) || (parenthesized_expression "(cVar2 == '=')" ( (binary_expression "cVar2 == '='" identifier == (char_literal "'='" ' character ')) ))) )) (break_statement "break;" break ;)) (expression_statement "pcVar4 = value;" (assignment_expression "pcVar4 = value" identifier = identifier) ;) }) while (parenthesized_expression "(value != pcVar5)" ( (binary_expression "value != pcVar5" identifier != identifier) )) ;) })) (expression_statement "*value = '\0';" (assignment_expression "*value = '\0'" (pointer_expression "*value" * identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "_Var3 = false;" (assignment_expression "_Var3 = false" identifier = false) ;) (if_statement "if (*str == '=') {\n    cVar2 = str[1];\n    bVar6 = cVar2 == '\"';\n    if (bVar6) {\n      pcVar5 = str + 2;\n      cVar2 = str[2];\n    }\n    else {\n      pcVar5 = str + 1;\n    }\n    if (cVar2 != '\0') {\n      pcVar4 = pcVar5 + 0x3ff;\n      bVar1 = false;\n      do {\n        if (cVar2 == '\"') {\n          if ((!bVar1) && (bVar6)) {\nLAB_00071ab8:\n            *content = '\0';\n            *endptr = pcVar5 + 1;\n            return true;\n          }\nLAB_00071a87:\n          *content = cVar2;\n          bVar1 = false;\n        }\n        else {\n          if (cVar2 < '#') {\n            if ((cVar2 == '\n') || (cVar2 == '\r')) goto LAB_00071ab8;\n            goto LAB_00071a87;\n          }\n          if (cVar2 == ',') {\n            if (!bVar6) goto LAB_00071ab8;\n            goto LAB_00071a87;\n          }\n          if ((cVar2 != '\\') || (bVar1)) goto LAB_00071a87;\n          *content = '\\';\n          bVar1 = true;\n        }\n        content = content + 1;\n        pcVar5 = pcVar5 + 1;\n        cVar2 = *pcVar5;\n      } while ((cVar2 != '\0') && (pcVar4 != pcVar5));\n    }\n    *content = '\0';\n    *endptr = pcVar5;\n    _Var3 = true;\n  }" if (parenthesized_expression "(*str == '=')" ( (binary_expression "*str == '='" (pointer_expression "*str" * identifier) == (char_literal "'='" ' character ')) )) (compound_statement "{\n    cVar2 = str[1];\n    bVar6 = cVar2 == '\"';\n    if (bVar6) {\n      pcVar5 = str + 2;\n      cVar2 = str[2];\n    }\n    else {\n      pcVar5 = str + 1;\n    }\n    if (cVar2 != '\0') {\n      pcVar4 = pcVar5 + 0x3ff;\n      bVar1 = false;\n      do {\n        if (cVar2 == '\"') {\n          if ((!bVar1) && (bVar6)) {\nLAB_00071ab8:\n            *content = '\0';\n            *endptr = pcVar5 + 1;\n            return true;\n          }\nLAB_00071a87:\n          *content = cVar2;\n          bVar1 = false;\n        }\n        else {\n          if (cVar2 < '#') {\n            if ((cVar2 == '\n') || (cVar2 == '\r')) goto LAB_00071ab8;\n            goto LAB_00071a87;\n          }\n          if (cVar2 == ',') {\n            if (!bVar6) goto LAB_00071ab8;\n            goto LAB_00071a87;\n          }\n          if ((cVar2 != '\\') || (bVar1)) goto LAB_00071a87;\n          *content = '\\';\n          bVar1 = true;\n        }\n        content = content + 1;\n        pcVar5 = pcVar5 + 1;\n        cVar2 = *pcVar5;\n      } while ((cVar2 != '\0') && (pcVar4 != pcVar5));\n    }\n    *content = '\0';\n    *endptr = pcVar5;\n    _Var3 = true;\n  }" { (expression_statement "cVar2 = str[1];" (assignment_expression "cVar2 = str[1]" identifier = (subscript_expression "str[1]" identifier [ number_literal ])) ;) (expression_statement "bVar6 = cVar2 == '\"';" (assignment_expression "bVar6 = cVar2 == '\"'" identifier = (binary_expression "cVar2 == '\"'" identifier == (char_literal "'\"'" ' escape_sequence '))) ;) (if_statement "if (bVar6) {\n      pcVar5 = str + 2;\n      cVar2 = str[2];\n    }\n    else {\n      pcVar5 = str + 1;\n    }" if (parenthesized_expression "(bVar6)" ( identifier )) (compound_statement "{\n      pcVar5 = str + 2;\n      cVar2 = str[2];\n    }" { (expression_statement "pcVar5 = str + 2;" (assignment_expression "pcVar5 = str + 2" identifier = (binary_expression "str + 2" identifier + number_literal)) ;) (expression_statement "cVar2 = str[2];" (assignment_expression "cVar2 = str[2]" identifier = (subscript_expression "str[2]" identifier [ number_literal ])) ;) }) (else_clause "else {\n      pcVar5 = str + 1;\n    }" else (compound_statement "{\n      pcVar5 = str + 1;\n    }" { (expression_statement "pcVar5 = str + 1;" (assignment_expression "pcVar5 = str + 1" identifier = (binary_expression "str + 1" identifier + number_literal)) ;) }))) (if_statement "if (cVar2 != '\0') {\n      pcVar4 = pcVar5 + 0x3ff;\n      bVar1 = false;\n      do {\n        if (cVar2 == '\"') {\n          if ((!bVar1) && (bVar6)) {\nLAB_00071ab8:\n            *content = '\0';\n            *endptr = pcVar5 + 1;\n            return true;\n          }\nLAB_00071a87:\n          *content = cVar2;\n          bVar1 = false;\n        }\n        else {\n          if (cVar2 < '#') {\n            if ((cVar2 == '\n') || (cVar2 == '\r')) goto LAB_00071ab8;\n            goto LAB_00071a87;\n          }\n          if (cVar2 == ',') {\n            if (!bVar6) goto LAB_00071ab8;\n            goto LAB_00071a87;\n          }\n          if ((cVar2 != '\\') || (bVar1)) goto LAB_00071a87;\n          *content = '\\';\n          bVar1 = true;\n        }\n        content = content + 1;\n        pcVar5 = pcVar5 + 1;\n        cVar2 = *pcVar5;\n      } while ((cVar2 != '\0') && (pcVar4 != pcVar5));\n    }" if (parenthesized_expression "(cVar2 != '\0')" ( (binary_expression "cVar2 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      pcVar4 = pcVar5 + 0x3ff;\n      bVar1 = false;\n      do {\n        if (cVar2 == '\"') {\n          if ((!bVar1) && (bVar6)) {\nLAB_00071ab8:\n            *content = '\0';\n            *endptr = pcVar5 + 1;\n            return true;\n          }\nLAB_00071a87:\n          *content = cVar2;\n          bVar1 = false;\n        }\n        else {\n          if (cVar2 < '#') {\n            if ((cVar2 == '\n') || (cVar2 == '\r')) goto LAB_00071ab8;\n            goto LAB_00071a87;\n          }\n          if (cVar2 == ',') {\n            if (!bVar6) goto LAB_00071ab8;\n            goto LAB_00071a87;\n          }\n          if ((cVar2 != '\\') || (bVar1)) goto LAB_00071a87;\n          *content = '\\';\n          bVar1 = true;\n        }\n        content = content + 1;\n        pcVar5 = pcVar5 + 1;\n        cVar2 = *pcVar5;\n      } while ((cVar2 != '\0') && (pcVar4 != pcVar5));\n    }" { (expression_statement "pcVar4 = pcVar5 + 0x3ff;" (assignment_expression "pcVar4 = pcVar5 + 0x3ff" identifier = (binary_expression "pcVar5 + 0x3ff" identifier + number_literal)) ;) (expression_statement "bVar1 = false;" (assignment_expression "bVar1 = false" identifier = false) ;) (do_statement "do {\n        if (cVar2 == '\"') {\n          if ((!bVar1) && (bVar6)) {\nLAB_00071ab8:\n            *content = '\0';\n            *endptr = pcVar5 + 1;\n            return true;\n          }\nLAB_00071a87:\n          *content = cVar2;\n          bVar1 = false;\n        }\n        else {\n          if (cVar2 < '#') {\n            if ((cVar2 == '\n') || (cVar2 == '\r')) goto LAB_00071ab8;\n            goto LAB_00071a87;\n          }\n          if (cVar2 == ',') {\n            if (!bVar6) goto LAB_00071ab8;\n            goto LAB_00071a87;\n          }\n          if ((cVar2 != '\\') || (bVar1)) goto LAB_00071a87;\n          *content = '\\';\n          bVar1 = true;\n        }\n        content = content + 1;\n        pcVar5 = pcVar5 + 1;\n        cVar2 = *pcVar5;\n      } while ((cVar2 != '\0') && (pcVar4 != pcVar5));" do (compound_statement "{\n        if (cVar2 == '\"') {\n          if ((!bVar1) && (bVar6)) {\nLAB_00071ab8:\n            *content = '\0';\n            *endptr = pcVar5 + 1;\n            return true;\n          }\nLAB_00071a87:\n          *content = cVar2;\n          bVar1 = false;\n        }\n        else {\n          if (cVar2 < '#') {\n            if ((cVar2 == '\n') || (cVar2 == '\r')) goto LAB_00071ab8;\n            goto LAB_00071a87;\n          }\n          if (cVar2 == ',') {\n            if (!bVar6) goto LAB_00071ab8;\n            goto LAB_00071a87;\n          }\n          if ((cVar2 != '\\') || (bVar1)) goto LAB_00071a87;\n          *content = '\\';\n          bVar1 = true;\n        }\n        content = content + 1;\n        pcVar5 = pcVar5 + 1;\n        cVar2 = *pcVar5;\n      }" { (if_statement "if (cVar2 == '\"') {\n          if ((!bVar1) && (bVar6)) {\nLAB_00071ab8:\n            *content = '\0';\n            *endptr = pcVar5 + 1;\n            return true;\n          }\nLAB_00071a87:\n          *content = cVar2;\n          bVar1 = false;\n        }\n        else {\n          if (cVar2 < '#') {\n            if ((cVar2 == '\n') || (cVar2 == '\r')) goto LAB_00071ab8;\n            goto LAB_00071a87;\n          }\n          if (cVar2 == ',') {\n            if (!bVar6) goto LAB_00071ab8;\n            goto LAB_00071a87;\n          }\n          if ((cVar2 != '\\') || (bVar1)) goto LAB_00071a87;\n          *content = '\\';\n          bVar1 = true;\n        }" if (parenthesized_expression "(cVar2 == '\"')" ( (binary_expression "cVar2 == '\"'" identifier == (char_literal "'\"'" ' escape_sequence ')) )) (compound_statement "{\n          if ((!bVar1) && (bVar6)) {\nLAB_00071ab8:\n            *content = '\0';\n            *endptr = pcVar5 + 1;\n            return true;\n          }\nLAB_00071a87:\n          *content = cVar2;\n          bVar1 = false;\n        }" { (if_statement "if ((!bVar1) && (bVar6)) {\nLAB_00071ab8:\n            *content = '\0';\n            *endptr = pcVar5 + 1;\n            return true;\n          }" if (parenthesized_expression "((!bVar1) && (bVar6))" ( (binary_expression "(!bVar1) && (bVar6)" (parenthesized_expression "(!bVar1)" ( (unary_expression "!bVar1" ! identifier) )) && (parenthesized_expression "(bVar6)" ( identifier ))) )) (compound_statement "{\nLAB_00071ab8:\n            *content = '\0';\n            *endptr = pcVar5 + 1;\n            return true;\n          }" { (labeled_statement "LAB_00071ab8:\n            *content = '\0';" statement_identifier : (expression_statement "*content = '\0';" (assignment_expression "*content = '\0'" (pointer_expression "*content" * identifier) = (char_literal "'\0'" ' escape_sequence ')) ;)) (expression_statement "*endptr = pcVar5 + 1;" (assignment_expression "*endptr = pcVar5 + 1" (pointer_expression "*endptr" * identifier) = (binary_expression "pcVar5 + 1" identifier + number_literal)) ;) (return_statement "return true;" return true ;) })) (labeled_statement "LAB_00071a87:\n          *content = cVar2;" statement_identifier : (expression_statement "*content = cVar2;" (assignment_expression "*content = cVar2" (pointer_expression "*content" * identifier) = identifier) ;)) (expression_statement "bVar1 = false;" (assignment_expression "bVar1 = false" identifier = false) ;) }) (else_clause "else {\n          if (cVar2 < '#') {\n            if ((cVar2 == '\n') || (cVar2 == '\r')) goto LAB_00071ab8;\n            goto LAB_00071a87;\n          }\n          if (cVar2 == ',') {\n            if (!bVar6) goto LAB_00071ab8;\n            goto LAB_00071a87;\n          }\n          if ((cVar2 != '\\') || (bVar1)) goto LAB_00071a87;\n          *content = '\\';\n          bVar1 = true;\n        }" else (compound_statement "{\n          if (cVar2 < '#') {\n            if ((cVar2 == '\n') || (cVar2 == '\r')) goto LAB_00071ab8;\n            goto LAB_00071a87;\n          }\n          if (cVar2 == ',') {\n            if (!bVar6) goto LAB_00071ab8;\n            goto LAB_00071a87;\n          }\n          if ((cVar2 != '\\') || (bVar1)) goto LAB_00071a87;\n          *content = '\\';\n          bVar1 = true;\n        }" { (if_statement "if (cVar2 < '#') {\n            if ((cVar2 == '\n') || (cVar2 == '\r')) goto LAB_00071ab8;\n            goto LAB_00071a87;\n          }" if (parenthesized_expression "(cVar2 < '#')" ( (binary_expression "cVar2 < '#'" identifier < (char_literal "'#'" ' character ')) )) (compound_statement "{\n            if ((cVar2 == '\n') || (cVar2 == '\r')) goto LAB_00071ab8;\n            goto LAB_00071a87;\n          }" { (if_statement "if ((cVar2 == '\n') || (cVar2 == '\r')) goto LAB_00071ab8;" if (parenthesized_expression "((cVar2 == '\n') || (cVar2 == '\r'))" ( (binary_expression "(cVar2 == '\n') || (cVar2 == '\r')" (parenthesized_expression "(cVar2 == '\n')" ( (binary_expression "cVar2 == '\n'" identifier == (char_literal "'\n'" ' escape_sequence ')) )) || (parenthesized_expression "(cVar2 == '\r')" ( (binary_expression "cVar2 == '\r'" identifier == (char_literal "'\r'" ' escape_sequence ')) ))) )) (goto_statement "goto LAB_00071ab8;" goto statement_identifier ;)) (goto_statement "goto LAB_00071a87;" goto statement_identifier ;) })) (if_statement "if (cVar2 == ',') {\n            if (!bVar6) goto LAB_00071ab8;\n            goto LAB_00071a87;\n          }" if (parenthesized_expression "(cVar2 == ',')" ( (binary_expression "cVar2 == ','" identifier == (char_literal "','" ' character ')) )) (compound_statement "{\n            if (!bVar6) goto LAB_00071ab8;\n            goto LAB_00071a87;\n          }" { (if_statement "if (!bVar6) goto LAB_00071ab8;" if (parenthesized_expression "(!bVar6)" ( (unary_expression "!bVar6" ! identifier) )) (goto_statement "goto LAB_00071ab8;" goto statement_identifier ;)) (goto_statement "goto LAB_00071a87;" goto statement_identifier ;) })) (if_statement "if ((cVar2 != '\\') || (bVar1)) goto LAB_00071a87;" if (parenthesized_expression "((cVar2 != '\\') || (bVar1))" ( (binary_expression "(cVar2 != '\\') || (bVar1)" (parenthesized_expression "(cVar2 != '\\')" ( (binary_expression "cVar2 != '\\'" identifier != (char_literal "'\\'" ' escape_sequence ')) )) || (parenthesized_expression "(bVar1)" ( identifier ))) )) (goto_statement "goto LAB_00071a87;" goto statement_identifier ;)) (expression_statement "*content = '\\';" (assignment_expression "*content = '\\'" (pointer_expression "*content" * identifier) = (char_literal "'\\'" ' escape_sequence ')) ;) (expression_statement "bVar1 = true;" (assignment_expression "bVar1 = true" identifier = true) ;) }))) (expression_statement "content = content + 1;" (assignment_expression "content = content + 1" identifier = (binary_expression "content + 1" identifier + number_literal)) ;) (expression_statement "pcVar5 = pcVar5 + 1;" (assignment_expression "pcVar5 = pcVar5 + 1" identifier = (binary_expression "pcVar5 + 1" identifier + number_literal)) ;) (expression_statement "cVar2 = *pcVar5;" (assignment_expression "cVar2 = *pcVar5" identifier = (pointer_expression "*pcVar5" * identifier)) ;) }) while (parenthesized_expression "((cVar2 != '\0') && (pcVar4 != pcVar5))" ( (binary_expression "(cVar2 != '\0') && (pcVar4 != pcVar5)" (parenthesized_expression "(cVar2 != '\0')" ( (binary_expression "cVar2 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(pcVar4 != pcVar5)" ( (binary_expression "pcVar4 != pcVar5" identifier != identifier) ))) )) ;) })) (expression_statement "*content = '\0';" (assignment_expression "*content = '\0'" (pointer_expression "*content" * identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "*endptr = pcVar5;" (assignment_expression "*endptr = pcVar5" (pointer_expression "*endptr" * identifier) = identifier) ;) (expression_statement "_Var3 = true;" (assignment_expression "_Var3 = true" identifier = true) ;) })) (return_statement "return _Var3;" return identifier ;) })))
(translation_unit "undefined4 FUN_00071a00(char *param_1,char *param_2,char *param_3,undefined4 *param_4)\n\n{\n  bool bVar1;\n  char cVar2;\n  undefined4 uVar3;\n  char *pcVar4;\n  char *pcVar5;\n  bool bVar6;\n  \n  cVar2 = *param_1;\n  if ((cVar2 != '=') && (cVar2 != '\0')) {\n    pcVar5 = param_2 + 0xff;\n    pcVar4 = param_2;\n    do {\n      param_1 = param_1 + 1;\n      param_2 = pcVar4 + 1;\n      *pcVar4 = cVar2;\n      cVar2 = *param_1;\n      if ((cVar2 == '\0') || (cVar2 == '=')) break;\n      pcVar4 = param_2;\n    } while (param_2 != pcVar5);\n  }\n  *param_2 = '\0';\n  uVar3 = 0;\n  if (*param_1 == '=') {\n    cVar2 = param_1[1];\n    bVar6 = cVar2 == '\"';\n    if (bVar6) {\n      pcVar5 = param_1 + 2;\n      cVar2 = param_1[2];\n    }\n    else {\n      pcVar5 = param_1 + 1;\n    }\n    if (cVar2 != '\0') {\n      pcVar4 = pcVar5 + 0x3ff;\n      bVar1 = false;\n      do {\n        if (cVar2 == '\"') {\n          if ((!bVar1) && (bVar6)) {\nLAB_00071ab8:\n            *param_3 = '\0';\n            *param_4 = pcVar5 + 1;\n            return 1;\n          }\nLAB_00071a87:\n          *param_3 = cVar2;\n          bVar1 = false;\n        }\n        else {\n          if (cVar2 < '#') {\n            if ((cVar2 == '\n') || (cVar2 == '\r')) goto LAB_00071ab8;\n            goto LAB_00071a87;\n          }\n          if (cVar2 == ',') {\n            if (!bVar6) goto LAB_00071ab8;\n            goto LAB_00071a87;\n          }\n          if ((cVar2 != '\\') || (bVar1)) goto LAB_00071a87;\n          *param_3 = '\\';\n          bVar1 = true;\n        }\n        param_3 = param_3 + 1;\n        pcVar5 = pcVar5 + 1;\n        cVar2 = *pcVar5;\n      } while ((cVar2 != '\0') && (pcVar4 != pcVar5));\n    }\n    *param_3 = '\0';\n    *param_4 = pcVar5;\n    uVar3 = 1;\n  }\n  return uVar3;\n}\n\n" (function_definition "undefined4 FUN_00071a00(char *param_1,char *param_2,char *param_3,undefined4 *param_4)\n\n{\n  bool bVar1;\n  char cVar2;\n  undefined4 uVar3;\n  char *pcVar4;\n  char *pcVar5;\n  bool bVar6;\n  \n  cVar2 = *param_1;\n  if ((cVar2 != '=') && (cVar2 != '\0')) {\n    pcVar5 = param_2 + 0xff;\n    pcVar4 = param_2;\n    do {\n      param_1 = param_1 + 1;\n      param_2 = pcVar4 + 1;\n      *pcVar4 = cVar2;\n      cVar2 = *param_1;\n      if ((cVar2 == '\0') || (cVar2 == '=')) break;\n      pcVar4 = param_2;\n    } while (param_2 != pcVar5);\n  }\n  *param_2 = '\0';\n  uVar3 = 0;\n  if (*param_1 == '=') {\n    cVar2 = param_1[1];\n    bVar6 = cVar2 == '\"';\n    if (bVar6) {\n      pcVar5 = param_1 + 2;\n      cVar2 = param_1[2];\n    }\n    else {\n      pcVar5 = param_1 + 1;\n    }\n    if (cVar2 != '\0') {\n      pcVar4 = pcVar5 + 0x3ff;\n      bVar1 = false;\n      do {\n        if (cVar2 == '\"') {\n          if ((!bVar1) && (bVar6)) {\nLAB_00071ab8:\n            *param_3 = '\0';\n            *param_4 = pcVar5 + 1;\n            return 1;\n          }\nLAB_00071a87:\n          *param_3 = cVar2;\n          bVar1 = false;\n        }\n        else {\n          if (cVar2 < '#') {\n            if ((cVar2 == '\n') || (cVar2 == '\r')) goto LAB_00071ab8;\n            goto LAB_00071a87;\n          }\n          if (cVar2 == ',') {\n            if (!bVar6) goto LAB_00071ab8;\n            goto LAB_00071a87;\n          }\n          if ((cVar2 != '\\') || (bVar1)) goto LAB_00071a87;\n          *param_3 = '\\';\n          bVar1 = true;\n        }\n        param_3 = param_3 + 1;\n        pcVar5 = pcVar5 + 1;\n        cVar2 = *pcVar5;\n      } while ((cVar2 != '\0') && (pcVar4 != pcVar5));\n    }\n    *param_3 = '\0';\n    *param_4 = pcVar5;\n    uVar3 = 1;\n  }\n  return uVar3;\n}" type_identifier (function_declarator "FUN_00071a00(char *param_1,char *param_2,char *param_3,undefined4 *param_4)" identifier (parameter_list "(char *param_1,char *param_2,char *param_3,undefined4 *param_4)" ( (parameter_declaration "char *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "char *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "char *param_3" primitive_type (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "undefined4 *param_4" type_identifier (pointer_declarator "*param_4" * identifier)) ))) (compound_statement "{\n  bool bVar1;\n  char cVar2;\n  undefined4 uVar3;\n  char *pcVar4;\n  char *pcVar5;\n  bool bVar6;\n  \n  cVar2 = *param_1;\n  if ((cVar2 != '=') && (cVar2 != '\0')) {\n    pcVar5 = param_2 + 0xff;\n    pcVar4 = param_2;\n    do {\n      param_1 = param_1 + 1;\n      param_2 = pcVar4 + 1;\n      *pcVar4 = cVar2;\n      cVar2 = *param_1;\n      if ((cVar2 == '\0') || (cVar2 == '=')) break;\n      pcVar4 = param_2;\n    } while (param_2 != pcVar5);\n  }\n  *param_2 = '\0';\n  uVar3 = 0;\n  if (*param_1 == '=') {\n    cVar2 = param_1[1];\n    bVar6 = cVar2 == '\"';\n    if (bVar6) {\n      pcVar5 = param_1 + 2;\n      cVar2 = param_1[2];\n    }\n    else {\n      pcVar5 = param_1 + 1;\n    }\n    if (cVar2 != '\0') {\n      pcVar4 = pcVar5 + 0x3ff;\n      bVar1 = false;\n      do {\n        if (cVar2 == '\"') {\n          if ((!bVar1) && (bVar6)) {\nLAB_00071ab8:\n            *param_3 = '\0';\n            *param_4 = pcVar5 + 1;\n            return 1;\n          }\nLAB_00071a87:\n          *param_3 = cVar2;\n          bVar1 = false;\n        }\n        else {\n          if (cVar2 < '#') {\n            if ((cVar2 == '\n') || (cVar2 == '\r')) goto LAB_00071ab8;\n            goto LAB_00071a87;\n          }\n          if (cVar2 == ',') {\n            if (!bVar6) goto LAB_00071ab8;\n            goto LAB_00071a87;\n          }\n          if ((cVar2 != '\\') || (bVar1)) goto LAB_00071a87;\n          *param_3 = '\\';\n          bVar1 = true;\n        }\n        param_3 = param_3 + 1;\n        pcVar5 = pcVar5 + 1;\n        cVar2 = *pcVar5;\n      } while ((cVar2 != '\0') && (pcVar4 != pcVar5));\n    }\n    *param_3 = '\0';\n    *param_4 = pcVar5;\n    uVar3 = 1;\n  }\n  return uVar3;\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "char cVar2;" primitive_type identifier ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (declaration "char *pcVar4;" primitive_type (pointer_declarator "*pcVar4" * identifier) ;) (declaration "char *pcVar5;" primitive_type (pointer_declarator "*pcVar5" * identifier) ;) (declaration "bool bVar6;" primitive_type identifier ;) (expression_statement "cVar2 = *param_1;" (assignment_expression "cVar2 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (if_statement "if ((cVar2 != '=') && (cVar2 != '\0')) {\n    pcVar5 = param_2 + 0xff;\n    pcVar4 = param_2;\n    do {\n      param_1 = param_1 + 1;\n      param_2 = pcVar4 + 1;\n      *pcVar4 = cVar2;\n      cVar2 = *param_1;\n      if ((cVar2 == '\0') || (cVar2 == '=')) break;\n      pcVar4 = param_2;\n    } while (param_2 != pcVar5);\n  }" if (parenthesized_expression "((cVar2 != '=') && (cVar2 != '\0'))" ( (binary_expression "(cVar2 != '=') && (cVar2 != '\0')" (parenthesized_expression "(cVar2 != '=')" ( (binary_expression "cVar2 != '='" identifier != (char_literal "'='" ' character ')) )) && (parenthesized_expression "(cVar2 != '\0')" ( (binary_expression "cVar2 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n    pcVar5 = param_2 + 0xff;\n    pcVar4 = param_2;\n    do {\n      param_1 = param_1 + 1;\n      param_2 = pcVar4 + 1;\n      *pcVar4 = cVar2;\n      cVar2 = *param_1;\n      if ((cVar2 == '\0') || (cVar2 == '=')) break;\n      pcVar4 = param_2;\n    } while (param_2 != pcVar5);\n  }" { (expression_statement "pcVar5 = param_2 + 0xff;" (assignment_expression "pcVar5 = param_2 + 0xff" identifier = (binary_expression "param_2 + 0xff" identifier + number_literal)) ;) (expression_statement "pcVar4 = param_2;" (assignment_expression "pcVar4 = param_2" identifier = identifier) ;) (do_statement "do {\n      param_1 = param_1 + 1;\n      param_2 = pcVar4 + 1;\n      *pcVar4 = cVar2;\n      cVar2 = *param_1;\n      if ((cVar2 == '\0') || (cVar2 == '=')) break;\n      pcVar4 = param_2;\n    } while (param_2 != pcVar5);" do (compound_statement "{\n      param_1 = param_1 + 1;\n      param_2 = pcVar4 + 1;\n      *pcVar4 = cVar2;\n      cVar2 = *param_1;\n      if ((cVar2 == '\0') || (cVar2 == '=')) break;\n      pcVar4 = param_2;\n    }" { (expression_statement "param_1 = param_1 + 1;" (assignment_expression "param_1 = param_1 + 1" identifier = (binary_expression "param_1 + 1" identifier + number_literal)) ;) (expression_statement "param_2 = pcVar4 + 1;" (assignment_expression "param_2 = pcVar4 + 1" identifier = (binary_expression "pcVar4 + 1" identifier + number_literal)) ;) (expression_statement "*pcVar4 = cVar2;" (assignment_expression "*pcVar4 = cVar2" (pointer_expression "*pcVar4" * identifier) = identifier) ;) (expression_statement "cVar2 = *param_1;" (assignment_expression "cVar2 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (if_statement "if ((cVar2 == '\0') || (cVar2 == '=')) break;" if (parenthesized_expression "((cVar2 == '\0') || (cVar2 == '='))" ( (binary_expression "(cVar2 == '\0') || (cVar2 == '=')" (parenthesized_expression "(cVar2 == '\0')" ( (binary_expression "cVar2 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) || (parenthesized_expression "(cVar2 == '=')" ( (binary_expression "cVar2 == '='" identifier == (char_literal "'='" ' character ')) ))) )) (break_statement "break;" break ;)) (expression_statement "pcVar4 = param_2;" (assignment_expression "pcVar4 = param_2" identifier = identifier) ;) }) while (parenthesized_expression "(param_2 != pcVar5)" ( (binary_expression "param_2 != pcVar5" identifier != identifier) )) ;) })) (expression_statement "*param_2 = '\0';" (assignment_expression "*param_2 = '\0'" (pointer_expression "*param_2" * identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "uVar3 = 0;" (assignment_expression "uVar3 = 0" identifier = number_literal) ;) (if_statement "if (*param_1 == '=') {\n    cVar2 = param_1[1];\n    bVar6 = cVar2 == '\"';\n    if (bVar6) {\n      pcVar5 = param_1 + 2;\n      cVar2 = param_1[2];\n    }\n    else {\n      pcVar5 = param_1 + 1;\n    }\n    if (cVar2 != '\0') {\n      pcVar4 = pcVar5 + 0x3ff;\n      bVar1 = false;\n      do {\n        if (cVar2 == '\"') {\n          if ((!bVar1) && (bVar6)) {\nLAB_00071ab8:\n            *param_3 = '\0';\n            *param_4 = pcVar5 + 1;\n            return 1;\n          }\nLAB_00071a87:\n          *param_3 = cVar2;\n          bVar1 = false;\n        }\n        else {\n          if (cVar2 < '#') {\n            if ((cVar2 == '\n') || (cVar2 == '\r')) goto LAB_00071ab8;\n            goto LAB_00071a87;\n          }\n          if (cVar2 == ',') {\n            if (!bVar6) goto LAB_00071ab8;\n            goto LAB_00071a87;\n          }\n          if ((cVar2 != '\\') || (bVar1)) goto LAB_00071a87;\n          *param_3 = '\\';\n          bVar1 = true;\n        }\n        param_3 = param_3 + 1;\n        pcVar5 = pcVar5 + 1;\n        cVar2 = *pcVar5;\n      } while ((cVar2 != '\0') && (pcVar4 != pcVar5));\n    }\n    *param_3 = '\0';\n    *param_4 = pcVar5;\n    uVar3 = 1;\n  }" if (parenthesized_expression "(*param_1 == '=')" ( (binary_expression "*param_1 == '='" (pointer_expression "*param_1" * identifier) == (char_literal "'='" ' character ')) )) (compound_statement "{\n    cVar2 = param_1[1];\n    bVar6 = cVar2 == '\"';\n    if (bVar6) {\n      pcVar5 = param_1 + 2;\n      cVar2 = param_1[2];\n    }\n    else {\n      pcVar5 = param_1 + 1;\n    }\n    if (cVar2 != '\0') {\n      pcVar4 = pcVar5 + 0x3ff;\n      bVar1 = false;\n      do {\n        if (cVar2 == '\"') {\n          if ((!bVar1) && (bVar6)) {\nLAB_00071ab8:\n            *param_3 = '\0';\n            *param_4 = pcVar5 + 1;\n            return 1;\n          }\nLAB_00071a87:\n          *param_3 = cVar2;\n          bVar1 = false;\n        }\n        else {\n          if (cVar2 < '#') {\n            if ((cVar2 == '\n') || (cVar2 == '\r')) goto LAB_00071ab8;\n            goto LAB_00071a87;\n          }\n          if (cVar2 == ',') {\n            if (!bVar6) goto LAB_00071ab8;\n            goto LAB_00071a87;\n          }\n          if ((cVar2 != '\\') || (bVar1)) goto LAB_00071a87;\n          *param_3 = '\\';\n          bVar1 = true;\n        }\n        param_3 = param_3 + 1;\n        pcVar5 = pcVar5 + 1;\n        cVar2 = *pcVar5;\n      } while ((cVar2 != '\0') && (pcVar4 != pcVar5));\n    }\n    *param_3 = '\0';\n    *param_4 = pcVar5;\n    uVar3 = 1;\n  }" { (expression_statement "cVar2 = param_1[1];" (assignment_expression "cVar2 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (expression_statement "bVar6 = cVar2 == '\"';" (assignment_expression "bVar6 = cVar2 == '\"'" identifier = (binary_expression "cVar2 == '\"'" identifier == (char_literal "'\"'" ' escape_sequence '))) ;) (if_statement "if (bVar6) {\n      pcVar5 = param_1 + 2;\n      cVar2 = param_1[2];\n    }\n    else {\n      pcVar5 = param_1 + 1;\n    }" if (parenthesized_expression "(bVar6)" ( identifier )) (compound_statement "{\n      pcVar5 = param_1 + 2;\n      cVar2 = param_1[2];\n    }" { (expression_statement "pcVar5 = param_1 + 2;" (assignment_expression "pcVar5 = param_1 + 2" identifier = (binary_expression "param_1 + 2" identifier + number_literal)) ;) (expression_statement "cVar2 = param_1[2];" (assignment_expression "cVar2 = param_1[2]" identifier = (subscript_expression "param_1[2]" identifier [ number_literal ])) ;) }) (else_clause "else {\n      pcVar5 = param_1 + 1;\n    }" else (compound_statement "{\n      pcVar5 = param_1 + 1;\n    }" { (expression_statement "pcVar5 = param_1 + 1;" (assignment_expression "pcVar5 = param_1 + 1" identifier = (binary_expression "param_1 + 1" identifier + number_literal)) ;) }))) (if_statement "if (cVar2 != '\0') {\n      pcVar4 = pcVar5 + 0x3ff;\n      bVar1 = false;\n      do {\n        if (cVar2 == '\"') {\n          if ((!bVar1) && (bVar6)) {\nLAB_00071ab8:\n            *param_3 = '\0';\n            *param_4 = pcVar5 + 1;\n            return 1;\n          }\nLAB_00071a87:\n          *param_3 = cVar2;\n          bVar1 = false;\n        }\n        else {\n          if (cVar2 < '#') {\n            if ((cVar2 == '\n') || (cVar2 == '\r')) goto LAB_00071ab8;\n            goto LAB_00071a87;\n          }\n          if (cVar2 == ',') {\n            if (!bVar6) goto LAB_00071ab8;\n            goto LAB_00071a87;\n          }\n          if ((cVar2 != '\\') || (bVar1)) goto LAB_00071a87;\n          *param_3 = '\\';\n          bVar1 = true;\n        }\n        param_3 = param_3 + 1;\n        pcVar5 = pcVar5 + 1;\n        cVar2 = *pcVar5;\n      } while ((cVar2 != '\0') && (pcVar4 != pcVar5));\n    }" if (parenthesized_expression "(cVar2 != '\0')" ( (binary_expression "cVar2 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      pcVar4 = pcVar5 + 0x3ff;\n      bVar1 = false;\n      do {\n        if (cVar2 == '\"') {\n          if ((!bVar1) && (bVar6)) {\nLAB_00071ab8:\n            *param_3 = '\0';\n            *param_4 = pcVar5 + 1;\n            return 1;\n          }\nLAB_00071a87:\n          *param_3 = cVar2;\n          bVar1 = false;\n        }\n        else {\n          if (cVar2 < '#') {\n            if ((cVar2 == '\n') || (cVar2 == '\r')) goto LAB_00071ab8;\n            goto LAB_00071a87;\n          }\n          if (cVar2 == ',') {\n            if (!bVar6) goto LAB_00071ab8;\n            goto LAB_00071a87;\n          }\n          if ((cVar2 != '\\') || (bVar1)) goto LAB_00071a87;\n          *param_3 = '\\';\n          bVar1 = true;\n        }\n        param_3 = param_3 + 1;\n        pcVar5 = pcVar5 + 1;\n        cVar2 = *pcVar5;\n      } while ((cVar2 != '\0') && (pcVar4 != pcVar5));\n    }" { (expression_statement "pcVar4 = pcVar5 + 0x3ff;" (assignment_expression "pcVar4 = pcVar5 + 0x3ff" identifier = (binary_expression "pcVar5 + 0x3ff" identifier + number_literal)) ;) (expression_statement "bVar1 = false;" (assignment_expression "bVar1 = false" identifier = false) ;) (do_statement "do {\n        if (cVar2 == '\"') {\n          if ((!bVar1) && (bVar6)) {\nLAB_00071ab8:\n            *param_3 = '\0';\n            *param_4 = pcVar5 + 1;\n            return 1;\n          }\nLAB_00071a87:\n          *param_3 = cVar2;\n          bVar1 = false;\n        }\n        else {\n          if (cVar2 < '#') {\n            if ((cVar2 == '\n') || (cVar2 == '\r')) goto LAB_00071ab8;\n            goto LAB_00071a87;\n          }\n          if (cVar2 == ',') {\n            if (!bVar6) goto LAB_00071ab8;\n            goto LAB_00071a87;\n          }\n          if ((cVar2 != '\\') || (bVar1)) goto LAB_00071a87;\n          *param_3 = '\\';\n          bVar1 = true;\n        }\n        param_3 = param_3 + 1;\n        pcVar5 = pcVar5 + 1;\n        cVar2 = *pcVar5;\n      } while ((cVar2 != '\0') && (pcVar4 != pcVar5));" do (compound_statement "{\n        if (cVar2 == '\"') {\n          if ((!bVar1) && (bVar6)) {\nLAB_00071ab8:\n            *param_3 = '\0';\n            *param_4 = pcVar5 + 1;\n            return 1;\n          }\nLAB_00071a87:\n          *param_3 = cVar2;\n          bVar1 = false;\n        }\n        else {\n          if (cVar2 < '#') {\n            if ((cVar2 == '\n') || (cVar2 == '\r')) goto LAB_00071ab8;\n            goto LAB_00071a87;\n          }\n          if (cVar2 == ',') {\n            if (!bVar6) goto LAB_00071ab8;\n            goto LAB_00071a87;\n          }\n          if ((cVar2 != '\\') || (bVar1)) goto LAB_00071a87;\n          *param_3 = '\\';\n          bVar1 = true;\n        }\n        param_3 = param_3 + 1;\n        pcVar5 = pcVar5 + 1;\n        cVar2 = *pcVar5;\n      }" { (if_statement "if (cVar2 == '\"') {\n          if ((!bVar1) && (bVar6)) {\nLAB_00071ab8:\n            *param_3 = '\0';\n            *param_4 = pcVar5 + 1;\n            return 1;\n          }\nLAB_00071a87:\n          *param_3 = cVar2;\n          bVar1 = false;\n        }\n        else {\n          if (cVar2 < '#') {\n            if ((cVar2 == '\n') || (cVar2 == '\r')) goto LAB_00071ab8;\n            goto LAB_00071a87;\n          }\n          if (cVar2 == ',') {\n            if (!bVar6) goto LAB_00071ab8;\n            goto LAB_00071a87;\n          }\n          if ((cVar2 != '\\') || (bVar1)) goto LAB_00071a87;\n          *param_3 = '\\';\n          bVar1 = true;\n        }" if (parenthesized_expression "(cVar2 == '\"')" ( (binary_expression "cVar2 == '\"'" identifier == (char_literal "'\"'" ' escape_sequence ')) )) (compound_statement "{\n          if ((!bVar1) && (bVar6)) {\nLAB_00071ab8:\n            *param_3 = '\0';\n            *param_4 = pcVar5 + 1;\n            return 1;\n          }\nLAB_00071a87:\n          *param_3 = cVar2;\n          bVar1 = false;\n        }" { (if_statement "if ((!bVar1) && (bVar6)) {\nLAB_00071ab8:\n            *param_3 = '\0';\n            *param_4 = pcVar5 + 1;\n            return 1;\n          }" if (parenthesized_expression "((!bVar1) && (bVar6))" ( (binary_expression "(!bVar1) && (bVar6)" (parenthesized_expression "(!bVar1)" ( (unary_expression "!bVar1" ! identifier) )) && (parenthesized_expression "(bVar6)" ( identifier ))) )) (compound_statement "{\nLAB_00071ab8:\n            *param_3 = '\0';\n            *param_4 = pcVar5 + 1;\n            return 1;\n          }" { (labeled_statement "LAB_00071ab8:\n            *param_3 = '\0';" statement_identifier : (expression_statement "*param_3 = '\0';" (assignment_expression "*param_3 = '\0'" (pointer_expression "*param_3" * identifier) = (char_literal "'\0'" ' escape_sequence ')) ;)) (expression_statement "*param_4 = pcVar5 + 1;" (assignment_expression "*param_4 = pcVar5 + 1" (pointer_expression "*param_4" * identifier) = (binary_expression "pcVar5 + 1" identifier + number_literal)) ;) (return_statement "return 1;" return number_literal ;) })) (labeled_statement "LAB_00071a87:\n          *param_3 = cVar2;" statement_identifier : (expression_statement "*param_3 = cVar2;" (assignment_expression "*param_3 = cVar2" (pointer_expression "*param_3" * identifier) = identifier) ;)) (expression_statement "bVar1 = false;" (assignment_expression "bVar1 = false" identifier = false) ;) }) (else_clause "else {\n          if (cVar2 < '#') {\n            if ((cVar2 == '\n') || (cVar2 == '\r')) goto LAB_00071ab8;\n            goto LAB_00071a87;\n          }\n          if (cVar2 == ',') {\n            if (!bVar6) goto LAB_00071ab8;\n            goto LAB_00071a87;\n          }\n          if ((cVar2 != '\\') || (bVar1)) goto LAB_00071a87;\n          *param_3 = '\\';\n          bVar1 = true;\n        }" else (compound_statement "{\n          if (cVar2 < '#') {\n            if ((cVar2 == '\n') || (cVar2 == '\r')) goto LAB_00071ab8;\n            goto LAB_00071a87;\n          }\n          if (cVar2 == ',') {\n            if (!bVar6) goto LAB_00071ab8;\n            goto LAB_00071a87;\n          }\n          if ((cVar2 != '\\') || (bVar1)) goto LAB_00071a87;\n          *param_3 = '\\';\n          bVar1 = true;\n        }" { (if_statement "if (cVar2 < '#') {\n            if ((cVar2 == '\n') || (cVar2 == '\r')) goto LAB_00071ab8;\n            goto LAB_00071a87;\n          }" if (parenthesized_expression "(cVar2 < '#')" ( (binary_expression "cVar2 < '#'" identifier < (char_literal "'#'" ' character ')) )) (compound_statement "{\n            if ((cVar2 == '\n') || (cVar2 == '\r')) goto LAB_00071ab8;\n            goto LAB_00071a87;\n          }" { (if_statement "if ((cVar2 == '\n') || (cVar2 == '\r')) goto LAB_00071ab8;" if (parenthesized_expression "((cVar2 == '\n') || (cVar2 == '\r'))" ( (binary_expression "(cVar2 == '\n') || (cVar2 == '\r')" (parenthesized_expression "(cVar2 == '\n')" ( (binary_expression "cVar2 == '\n'" identifier == (char_literal "'\n'" ' escape_sequence ')) )) || (parenthesized_expression "(cVar2 == '\r')" ( (binary_expression "cVar2 == '\r'" identifier == (char_literal "'\r'" ' escape_sequence ')) ))) )) (goto_statement "goto LAB_00071ab8;" goto statement_identifier ;)) (goto_statement "goto LAB_00071a87;" goto statement_identifier ;) })) (if_statement "if (cVar2 == ',') {\n            if (!bVar6) goto LAB_00071ab8;\n            goto LAB_00071a87;\n          }" if (parenthesized_expression "(cVar2 == ',')" ( (binary_expression "cVar2 == ','" identifier == (char_literal "','" ' character ')) )) (compound_statement "{\n            if (!bVar6) goto LAB_00071ab8;\n            goto LAB_00071a87;\n          }" { (if_statement "if (!bVar6) goto LAB_00071ab8;" if (parenthesized_expression "(!bVar6)" ( (unary_expression "!bVar6" ! identifier) )) (goto_statement "goto LAB_00071ab8;" goto statement_identifier ;)) (goto_statement "goto LAB_00071a87;" goto statement_identifier ;) })) (if_statement "if ((cVar2 != '\\') || (bVar1)) goto LAB_00071a87;" if (parenthesized_expression "((cVar2 != '\\') || (bVar1))" ( (binary_expression "(cVar2 != '\\') || (bVar1)" (parenthesized_expression "(cVar2 != '\\')" ( (binary_expression "cVar2 != '\\'" identifier != (char_literal "'\\'" ' escape_sequence ')) )) || (parenthesized_expression "(bVar1)" ( identifier ))) )) (goto_statement "goto LAB_00071a87;" goto statement_identifier ;)) (expression_statement "*param_3 = '\\';" (assignment_expression "*param_3 = '\\'" (pointer_expression "*param_3" * identifier) = (char_literal "'\\'" ' escape_sequence ')) ;) (expression_statement "bVar1 = true;" (assignment_expression "bVar1 = true" identifier = true) ;) }))) (expression_statement "param_3 = param_3 + 1;" (assignment_expression "param_3 = param_3 + 1" identifier = (binary_expression "param_3 + 1" identifier + number_literal)) ;) (expression_statement "pcVar5 = pcVar5 + 1;" (assignment_expression "pcVar5 = pcVar5 + 1" identifier = (binary_expression "pcVar5 + 1" identifier + number_literal)) ;) (expression_statement "cVar2 = *pcVar5;" (assignment_expression "cVar2 = *pcVar5" identifier = (pointer_expression "*pcVar5" * identifier)) ;) }) while (parenthesized_expression "((cVar2 != '\0') && (pcVar4 != pcVar5))" ( (binary_expression "(cVar2 != '\0') && (pcVar4 != pcVar5)" (parenthesized_expression "(cVar2 != '\0')" ( (binary_expression "cVar2 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(pcVar4 != pcVar5)" ( (binary_expression "pcVar4 != pcVar5" identifier != identifier) ))) )) ;) })) (expression_statement "*param_3 = '\0';" (assignment_expression "*param_3 = '\0'" (pointer_expression "*param_3" * identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "*param_4 = pcVar5;" (assignment_expression "*param_4 = pcVar5" (pointer_expression "*param_4" * identifier) = identifier) ;) (expression_statement "uVar3 = 1;" (assignment_expression "uVar3 = 1" identifier = number_literal) ;) })) (return_statement "return uVar3;" return identifier ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (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 = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) || (parenthesized_expression ( (binary_expression IDENT == (char_literal ' character ')) ))) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (char_literal ' character ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT == (char_literal ' escape_sequence '))) ;) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (unary_expression ! IDENT) )) && (parenthesized_expression ( IDENT ))) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * IDENT) = (char_literal ' escape_sequence ')) ;)) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression IDENT + LIT)) ;) (return_statement return LIT ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;)) (expression_statement (assignment_expression IDENT = BOOL) ;) }) (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 (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) || (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) ))) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' character ')) )) (compound_statement { (if_statement if (parenthesized_expression ( (unary_expression ! IDENT) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) || (parenthesized_expression ( IDENT ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression (pointer_expression * IDENT) = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) }) while (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) && (parenthesized_expression ( (binary_expression IDENT != IDENT) ))) )) ;) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) })) (return_statement return IDENT ;) })))
(function_definition "undefined4 FUN_00071a00(char *param_1,char *param_2,char *param_3,undefined4 *param_4)\n\n{\n  bool bVar1;\n  char cVar2;\n  undefined4 uVar3;\n  char *pcVar4;\n  char *pcVar5;\n  bool bVar6;\n  \n  cVar2 = *param_1;\n  if ((cVar2 != '=') && (cVar2 != '\0')) {\n    pcVar5 = param_2 + 0xff;\n    pcVar4 = param_2;\n    do {\n      param_1 = param_1 + 1;\n      param_2 = pcVar4 + 1;\n      *pcVar4 = cVar2;\n      cVar2 = *param_1;\n      if ((cVar2 == '\0') || (cVar2 == '=')) break;\n      pcVar4 = param_2;\n    } while (param_2 != pcVar5);\n  }\n  *param_2 = '\0';\n  uVar3 = 0;\n  if (*param_1 == '=') {\n    cVar2 = param_1[1];\n    bVar6 = cVar2 == '\"';\n    if (bVar6) {\n      pcVar5 = param_1 + 2;\n      cVar2 = param_1[2];\n    }\n    else {\n      pcVar5 = param_1 + 1;\n    }\n    if (cVar2 != '\0') {\n      pcVar4 = pcVar5 + 0x3ff;\n      bVar1 = false;\n      do {\n        if (cVar2 == '\"') {\n          if ((!bVar1) && (bVar6)) {\nLAB_00071ab8:\n            *param_3 = '\0';\n            *param_4 = pcVar5 + 1;\n            return 1;\n          }\nLAB_00071a87:\n          *param_3 = cVar2;\n          bVar1 = false;\n        }\n        else {\n          if (cVar2 < '#') {\n            if ((cVar2 == '\n') || (cVar2 == '\r')) goto LAB_00071ab8;\n            goto LAB_00071a87;\n          }\n          if (cVar2 == ',') {\n            if (!bVar6) goto LAB_00071ab8;\n            goto LAB_00071a87;\n          }\n          if ((cVar2 != '\\') || (bVar1)) goto LAB_00071a87;\n          *param_3 = '\\';\n          bVar1 = true;\n        }\n        param_3 = param_3 + 1;\n        pcVar5 = pcVar5 + 1;\n        cVar2 = *pcVar5;\n      } while ((cVar2 != '\0') && (pcVar4 != pcVar5));\n    }\n    *param_3 = '\0';\n    *param_4 = pcVar5;\n    uVar3 = 1;\n  }\n  return uVar3;\n}" (type_identifier "undefined4") (function_declarator "FUN_00071a00(char *param_1,char *param_2,char *param_3,undefined4 *param_4)" (identifier "FUN_00071a00") (parameter_list "(char *param_1,char *param_2,char *param_3,undefined4 *param_4)" (( "(") (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"))) (, ",") (parameter_declaration "char *param_3" (primitive_type "char") (pointer_declarator "*param_3" (* "*") (identifier "param_3"))) (, ",") (parameter_declaration "undefined4 *param_4" (type_identifier "undefined4") (pointer_declarator "*param_4" (* "*") (identifier "param_4"))) () ")"))) (compound_statement "{\n  bool bVar1;\n  char cVar2;\n  undefined4 uVar3;\n  char *pcVar4;\n  char *pcVar5;\n  bool bVar6;\n  \n  cVar2 = *param_1;\n  if ((cVar2 != '=') && (cVar2 != '\0')) {\n    pcVar5 = param_2 + 0xff;\n    pcVar4 = param_2;\n    do {\n      param_1 = param_1 + 1;\n      param_2 = pcVar4 + 1;\n      *pcVar4 = cVar2;\n      cVar2 = *param_1;\n      if ((cVar2 == '\0') || (cVar2 == '=')) break;\n      pcVar4 = param_2;\n    } while (param_2 != pcVar5);\n  }\n  *param_2 = '\0';\n  uVar3 = 0;\n  if (*param_1 == '=') {\n    cVar2 = param_1[1];\n    bVar6 = cVar2 == '\"';\n    if (bVar6) {\n      pcVar5 = param_1 + 2;\n      cVar2 = param_1[2];\n    }\n    else {\n      pcVar5 = param_1 + 1;\n    }\n    if (cVar2 != '\0') {\n      pcVar4 = pcVar5 + 0x3ff;\n      bVar1 = false;\n      do {\n        if (cVar2 == '\"') {\n          if ((!bVar1) && (bVar6)) {\nLAB_00071ab8:\n            *param_3 = '\0';\n            *param_4 = pcVar5 + 1;\n            return 1;\n          }\nLAB_00071a87:\n          *param_3 = cVar2;\n          bVar1 = false;\n        }\n        else {\n          if (cVar2 < '#') {\n            if ((cVar2 == '\n') || (cVar2 == '\r')) goto LAB_00071ab8;\n            goto LAB_00071a87;\n          }\n          if (cVar2 == ',') {\n            if (!bVar6) goto LAB_00071ab8;\n            goto LAB_00071a87;\n          }\n          if ((cVar2 != '\\') || (bVar1)) goto LAB_00071a87;\n          *param_3 = '\\';\n          bVar1 = true;\n        }\n        param_3 = param_3 + 1;\n        pcVar5 = pcVar5 + 1;\n        cVar2 = *pcVar5;\n      } while ((cVar2 != '\0') && (pcVar4 != pcVar5));\n    }\n    *param_3 = '\0';\n    *param_4 = pcVar5;\n    uVar3 = 1;\n  }\n  return uVar3;\n}" ({ "{") (declaration "bool bVar1;" (primitive_type "bool") (identifier "bVar1") (; ";")) (declaration "char cVar2;" (primitive_type "char") (identifier "cVar2") (; ";")) (declaration "undefined4 uVar3;" (type_identifier "undefined4") (identifier "uVar3") (; ";")) (declaration "char *pcVar4;" (primitive_type "char") (pointer_declarator "*pcVar4" (* "*") (identifier "pcVar4")) (; ";")) (declaration "char *pcVar5;" (primitive_type "char") (pointer_declarator "*pcVar5" (* "*") (identifier "pcVar5")) (; ";")) (declaration "bool bVar6;" (primitive_type "bool") (identifier "bVar6") (; ";")) (expression_statement "cVar2 = *param_1;" (assignment_expression "cVar2 = *param_1" (identifier "cVar2") (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";")) (if_statement "if ((cVar2 != '=') && (cVar2 != '\0')) {\n    pcVar5 = param_2 + 0xff;\n    pcVar4 = param_2;\n    do {\n      param_1 = param_1 + 1;\n      param_2 = pcVar4 + 1;\n      *pcVar4 = cVar2;\n      cVar2 = *param_1;\n      if ((cVar2 == '\0') || (cVar2 == '=')) break;\n      pcVar4 = param_2;\n    } while (param_2 != pcVar5);\n  }" (if "if") (parenthesized_expression "((cVar2 != '=') && (cVar2 != '\0'))" (( "(") (binary_expression "(cVar2 != '=') && (cVar2 != '\0')" (parenthesized_expression "(cVar2 != '=')" (( "(") (binary_expression "cVar2 != '='" (identifier "cVar2") (!= "!=") (char_literal "'='" (' "'") (character "=") (' "'"))) () ")")) (&& "&&") (parenthesized_expression "(cVar2 != '\0')" (( "(") (binary_expression "cVar2 != '\0'" (identifier "cVar2") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (compound_statement "{\n    pcVar5 = param_2 + 0xff;\n    pcVar4 = param_2;\n    do {\n      param_1 = param_1 + 1;\n      param_2 = pcVar4 + 1;\n      *pcVar4 = cVar2;\n      cVar2 = *param_1;\n      if ((cVar2 == '\0') || (cVar2 == '=')) break;\n      pcVar4 = param_2;\n    } while (param_2 != pcVar5);\n  }" ({ "{") (expression_statement "pcVar5 = param_2 + 0xff;" (assignment_expression "pcVar5 = param_2 + 0xff" (identifier "pcVar5") (= "=") (binary_expression "param_2 + 0xff" (identifier "param_2") (+ "+") (number_literal "0xff"))) (; ";")) (expression_statement "pcVar4 = param_2;" (assignment_expression "pcVar4 = param_2" (identifier "pcVar4") (= "=") (identifier "param_2")) (; ";")) (do_statement "do {\n      param_1 = param_1 + 1;\n      param_2 = pcVar4 + 1;\n      *pcVar4 = cVar2;\n      cVar2 = *param_1;\n      if ((cVar2 == '\0') || (cVar2 == '=')) break;\n      pcVar4 = param_2;\n    } while (param_2 != pcVar5);" (do "do") (compound_statement "{\n      param_1 = param_1 + 1;\n      param_2 = pcVar4 + 1;\n      *pcVar4 = cVar2;\n      cVar2 = *param_1;\n      if ((cVar2 == '\0') || (cVar2 == '=')) break;\n      pcVar4 = param_2;\n    }" ({ "{") (expression_statement "param_1 = param_1 + 1;" (assignment_expression "param_1 = param_1 + 1" (identifier "param_1") (= "=") (binary_expression "param_1 + 1" (identifier "param_1") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "param_2 = pcVar4 + 1;" (assignment_expression "param_2 = pcVar4 + 1" (identifier "param_2") (= "=") (binary_expression "pcVar4 + 1" (identifier "pcVar4") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*pcVar4 = cVar2;" (assignment_expression "*pcVar4 = cVar2" (pointer_expression "*pcVar4" (* "*") (identifier "pcVar4")) (= "=") (identifier "cVar2")) (; ";")) (expression_statement "cVar2 = *param_1;" (assignment_expression "cVar2 = *param_1" (identifier "cVar2") (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";")) (if_statement "if ((cVar2 == '\0') || (cVar2 == '=')) break;" (if "if") (parenthesized_expression "((cVar2 == '\0') || (cVar2 == '='))" (( "(") (binary_expression "(cVar2 == '\0') || (cVar2 == '=')" (parenthesized_expression "(cVar2 == '\0')" (( "(") (binary_expression "cVar2 == '\0'" (identifier "cVar2") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (|| "||") (parenthesized_expression "(cVar2 == '=')" (( "(") (binary_expression "cVar2 == '='" (identifier "cVar2") (== "==") (char_literal "'='" (' "'") (character "=") (' "'"))) () ")"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "pcVar4 = param_2;" (assignment_expression "pcVar4 = param_2" (identifier "pcVar4") (= "=") (identifier "param_2")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(param_2 != pcVar5)" (( "(") (binary_expression "param_2 != pcVar5" (identifier "param_2") (!= "!=") (identifier "pcVar5")) () ")")) (; ";")) (} "}"))) (expression_statement "*param_2 = '\0';" (assignment_expression "*param_2 = '\0'" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (expression_statement "uVar3 = 0;" (assignment_expression "uVar3 = 0" (identifier "uVar3") (= "=") (number_literal "0")) (; ";")) (if_statement "if (*param_1 == '=') {\n    cVar2 = param_1[1];\n    bVar6 = cVar2 == '\"';\n    if (bVar6) {\n      pcVar5 = param_1 + 2;\n      cVar2 = param_1[2];\n    }\n    else {\n      pcVar5 = param_1 + 1;\n    }\n    if (cVar2 != '\0') {\n      pcVar4 = pcVar5 + 0x3ff;\n      bVar1 = false;\n      do {\n        if (cVar2 == '\"') {\n          if ((!bVar1) && (bVar6)) {\nLAB_00071ab8:\n            *param_3 = '\0';\n            *param_4 = pcVar5 + 1;\n            return 1;\n          }\nLAB_00071a87:\n          *param_3 = cVar2;\n          bVar1 = false;\n        }\n        else {\n          if (cVar2 < '#') {\n            if ((cVar2 == '\n') || (cVar2 == '\r')) goto LAB_00071ab8;\n            goto LAB_00071a87;\n          }\n          if (cVar2 == ',') {\n            if (!bVar6) goto LAB_00071ab8;\n            goto LAB_00071a87;\n          }\n          if ((cVar2 != '\\') || (bVar1)) goto LAB_00071a87;\n          *param_3 = '\\';\n          bVar1 = true;\n        }\n        param_3 = param_3 + 1;\n        pcVar5 = pcVar5 + 1;\n        cVar2 = *pcVar5;\n      } while ((cVar2 != '\0') && (pcVar4 != pcVar5));\n    }\n    *param_3 = '\0';\n    *param_4 = pcVar5;\n    uVar3 = 1;\n  }" (if "if") (parenthesized_expression "(*param_1 == '=')" (( "(") (binary_expression "*param_1 == '='" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (== "==") (char_literal "'='" (' "'") (character "=") (' "'"))) () ")")) (compound_statement "{\n    cVar2 = param_1[1];\n    bVar6 = cVar2 == '\"';\n    if (bVar6) {\n      pcVar5 = param_1 + 2;\n      cVar2 = param_1[2];\n    }\n    else {\n      pcVar5 = param_1 + 1;\n    }\n    if (cVar2 != '\0') {\n      pcVar4 = pcVar5 + 0x3ff;\n      bVar1 = false;\n      do {\n        if (cVar2 == '\"') {\n          if ((!bVar1) && (bVar6)) {\nLAB_00071ab8:\n            *param_3 = '\0';\n            *param_4 = pcVar5 + 1;\n            return 1;\n          }\nLAB_00071a87:\n          *param_3 = cVar2;\n          bVar1 = false;\n        }\n        else {\n          if (cVar2 < '#') {\n            if ((cVar2 == '\n') || (cVar2 == '\r')) goto LAB_00071ab8;\n            goto LAB_00071a87;\n          }\n          if (cVar2 == ',') {\n            if (!bVar6) goto LAB_00071ab8;\n            goto LAB_00071a87;\n          }\n          if ((cVar2 != '\\') || (bVar1)) goto LAB_00071a87;\n          *param_3 = '\\';\n          bVar1 = true;\n        }\n        param_3 = param_3 + 1;\n        pcVar5 = pcVar5 + 1;\n        cVar2 = *pcVar5;\n      } while ((cVar2 != '\0') && (pcVar4 != pcVar5));\n    }\n    *param_3 = '\0';\n    *param_4 = pcVar5;\n    uVar3 = 1;\n  }" ({ "{") (expression_statement "cVar2 = param_1[1];" (assignment_expression "cVar2 = param_1[1]" (identifier "cVar2") (= "=") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "bVar6 = cVar2 == '\"';" (assignment_expression "bVar6 = cVar2 == '\"'" (identifier "bVar6") (= "=") (binary_expression "cVar2 == '\"'" (identifier "cVar2") (== "==") (char_literal "'\"'" (' "'") (escape_sequence "\"") (' "'")))) (; ";")) (if_statement "if (bVar6) {\n      pcVar5 = param_1 + 2;\n      cVar2 = param_1[2];\n    }\n    else {\n      pcVar5 = param_1 + 1;\n    }" (if "if") (parenthesized_expression "(bVar6)" (( "(") (identifier "bVar6") () ")")) (compound_statement "{\n      pcVar5 = param_1 + 2;\n      cVar2 = param_1[2];\n    }" ({ "{") (expression_statement "pcVar5 = param_1 + 2;" (assignment_expression "pcVar5 = param_1 + 2" (identifier "pcVar5") (= "=") (binary_expression "param_1 + 2" (identifier "param_1") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "cVar2 = param_1[2];" (assignment_expression "cVar2 = param_1[2]" (identifier "cVar2") (= "=") (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]"))) (; ";")) (} "}")) (else_clause "else {\n      pcVar5 = param_1 + 1;\n    }" (else "else") (compound_statement "{\n      pcVar5 = param_1 + 1;\n    }" ({ "{") (expression_statement "pcVar5 = param_1 + 1;" (assignment_expression "pcVar5 = param_1 + 1" (identifier "pcVar5") (= "=") (binary_expression "param_1 + 1" (identifier "param_1") (+ "+") (number_literal "1"))) (; ";")) (} "}")))) (if_statement "if (cVar2 != '\0') {\n      pcVar4 = pcVar5 + 0x3ff;\n      bVar1 = false;\n      do {\n        if (cVar2 == '\"') {\n          if ((!bVar1) && (bVar6)) {\nLAB_00071ab8:\n            *param_3 = '\0';\n            *param_4 = pcVar5 + 1;\n            return 1;\n          }\nLAB_00071a87:\n          *param_3 = cVar2;\n          bVar1 = false;\n        }\n        else {\n          if (cVar2 < '#') {\n            if ((cVar2 == '\n') || (cVar2 == '\r')) goto LAB_00071ab8;\n            goto LAB_00071a87;\n          }\n          if (cVar2 == ',') {\n            if (!bVar6) goto LAB_00071ab8;\n            goto LAB_00071a87;\n          }\n          if ((cVar2 != '\\') || (bVar1)) goto LAB_00071a87;\n          *param_3 = '\\';\n          bVar1 = true;\n        }\n        param_3 = param_3 + 1;\n        pcVar5 = pcVar5 + 1;\n        cVar2 = *pcVar5;\n      } while ((cVar2 != '\0') && (pcVar4 != pcVar5));\n    }" (if "if") (parenthesized_expression "(cVar2 != '\0')" (( "(") (binary_expression "cVar2 != '\0'" (identifier "cVar2") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      pcVar4 = pcVar5 + 0x3ff;\n      bVar1 = false;\n      do {\n        if (cVar2 == '\"') {\n          if ((!bVar1) && (bVar6)) {\nLAB_00071ab8:\n            *param_3 = '\0';\n            *param_4 = pcVar5 + 1;\n            return 1;\n          }\nLAB_00071a87:\n          *param_3 = cVar2;\n          bVar1 = false;\n        }\n        else {\n          if (cVar2 < '#') {\n            if ((cVar2 == '\n') || (cVar2 == '\r')) goto LAB_00071ab8;\n            goto LAB_00071a87;\n          }\n          if (cVar2 == ',') {\n            if (!bVar6) goto LAB_00071ab8;\n            goto LAB_00071a87;\n          }\n          if ((cVar2 != '\\') || (bVar1)) goto LAB_00071a87;\n          *param_3 = '\\';\n          bVar1 = true;\n        }\n        param_3 = param_3 + 1;\n        pcVar5 = pcVar5 + 1;\n        cVar2 = *pcVar5;\n      } while ((cVar2 != '\0') && (pcVar4 != pcVar5));\n    }" ({ "{") (expression_statement "pcVar4 = pcVar5 + 0x3ff;" (assignment_expression "pcVar4 = pcVar5 + 0x3ff" (identifier "pcVar4") (= "=") (binary_expression "pcVar5 + 0x3ff" (identifier "pcVar5") (+ "+") (number_literal "0x3ff"))) (; ";")) (expression_statement "bVar1 = false;" (assignment_expression "bVar1 = false" (identifier "bVar1") (= "=") (false "false")) (; ";")) (do_statement "do {\n        if (cVar2 == '\"') {\n          if ((!bVar1) && (bVar6)) {\nLAB_00071ab8:\n            *param_3 = '\0';\n            *param_4 = pcVar5 + 1;\n            return 1;\n          }\nLAB_00071a87:\n          *param_3 = cVar2;\n          bVar1 = false;\n        }\n        else {\n          if (cVar2 < '#') {\n            if ((cVar2 == '\n') || (cVar2 == '\r')) goto LAB_00071ab8;\n            goto LAB_00071a87;\n          }\n          if (cVar2 == ',') {\n            if (!bVar6) goto LAB_00071ab8;\n            goto LAB_00071a87;\n          }\n          if ((cVar2 != '\\') || (bVar1)) goto LAB_00071a87;\n          *param_3 = '\\';\n          bVar1 = true;\n        }\n        param_3 = param_3 + 1;\n        pcVar5 = pcVar5 + 1;\n        cVar2 = *pcVar5;\n      } while ((cVar2 != '\0') && (pcVar4 != pcVar5));" (do "do") (compound_statement "{\n        if (cVar2 == '\"') {\n          if ((!bVar1) && (bVar6)) {\nLAB_00071ab8:\n            *param_3 = '\0';\n            *param_4 = pcVar5 + 1;\n            return 1;\n          }\nLAB_00071a87:\n          *param_3 = cVar2;\n          bVar1 = false;\n        }\n        else {\n          if (cVar2 < '#') {\n            if ((cVar2 == '\n') || (cVar2 == '\r')) goto LAB_00071ab8;\n            goto LAB_00071a87;\n          }\n          if (cVar2 == ',') {\n            if (!bVar6) goto LAB_00071ab8;\n            goto LAB_00071a87;\n          }\n          if ((cVar2 != '\\') || (bVar1)) goto LAB_00071a87;\n          *param_3 = '\\';\n          bVar1 = true;\n        }\n        param_3 = param_3 + 1;\n        pcVar5 = pcVar5 + 1;\n        cVar2 = *pcVar5;\n      }" ({ "{") (if_statement "if (cVar2 == '\"') {\n          if ((!bVar1) && (bVar6)) {\nLAB_00071ab8:\n            *param_3 = '\0';\n            *param_4 = pcVar5 + 1;\n            return 1;\n          }\nLAB_00071a87:\n          *param_3 = cVar2;\n          bVar1 = false;\n        }\n        else {\n          if (cVar2 < '#') {\n            if ((cVar2 == '\n') || (cVar2 == '\r')) goto LAB_00071ab8;\n            goto LAB_00071a87;\n          }\n          if (cVar2 == ',') {\n            if (!bVar6) goto LAB_00071ab8;\n            goto LAB_00071a87;\n          }\n          if ((cVar2 != '\\') || (bVar1)) goto LAB_00071a87;\n          *param_3 = '\\';\n          bVar1 = true;\n        }" (if "if") (parenthesized_expression "(cVar2 == '\"')" (( "(") (binary_expression "cVar2 == '\"'" (identifier "cVar2") (== "==") (char_literal "'\"'" (' "'") (escape_sequence "\"") (' "'"))) () ")")) (compound_statement "{\n          if ((!bVar1) && (bVar6)) {\nLAB_00071ab8:\n            *param_3 = '\0';\n            *param_4 = pcVar5 + 1;\n            return 1;\n          }\nLAB_00071a87:\n          *param_3 = cVar2;\n          bVar1 = false;\n        }" ({ "{") (if_statement "if ((!bVar1) && (bVar6)) {\nLAB_00071ab8:\n            *param_3 = '\0';\n            *param_4 = pcVar5 + 1;\n            return 1;\n          }" (if "if") (parenthesized_expression "((!bVar1) && (bVar6))" (( "(") (binary_expression "(!bVar1) && (bVar6)" (parenthesized_expression "(!bVar1)" (( "(") (unary_expression "!bVar1" (! "!") (identifier "bVar1")) () ")")) (&& "&&") (parenthesized_expression "(bVar6)" (( "(") (identifier "bVar6") () ")"))) () ")")) (compound_statement "{\nLAB_00071ab8:\n            *param_3 = '\0';\n            *param_4 = pcVar5 + 1;\n            return 1;\n          }" ({ "{") (labeled_statement "LAB_00071ab8:\n            *param_3 = '\0';" (statement_identifier "LAB_00071ab8") (: ":") (expression_statement "*param_3 = '\0';" (assignment_expression "*param_3 = '\0'" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";"))) (expression_statement "*param_4 = pcVar5 + 1;" (assignment_expression "*param_4 = pcVar5 + 1" (pointer_expression "*param_4" (* "*") (identifier "param_4")) (= "=") (binary_expression "pcVar5 + 1" (identifier "pcVar5") (+ "+") (number_literal "1"))) (; ";")) (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (labeled_statement "LAB_00071a87:\n          *param_3 = cVar2;" (statement_identifier "LAB_00071a87") (: ":") (expression_statement "*param_3 = cVar2;" (assignment_expression "*param_3 = cVar2" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (= "=") (identifier "cVar2")) (; ";"))) (expression_statement "bVar1 = false;" (assignment_expression "bVar1 = false" (identifier "bVar1") (= "=") (false "false")) (; ";")) (} "}")) (else_clause "else {\n          if (cVar2 < '#') {\n            if ((cVar2 == '\n') || (cVar2 == '\r')) goto LAB_00071ab8;\n            goto LAB_00071a87;\n          }\n          if (cVar2 == ',') {\n            if (!bVar6) goto LAB_00071ab8;\n            goto LAB_00071a87;\n          }\n          if ((cVar2 != '\\') || (bVar1)) goto LAB_00071a87;\n          *param_3 = '\\';\n          bVar1 = true;\n        }" (else "else") (compound_statement "{\n          if (cVar2 < '#') {\n            if ((cVar2 == '\n') || (cVar2 == '\r')) goto LAB_00071ab8;\n            goto LAB_00071a87;\n          }\n          if (cVar2 == ',') {\n            if (!bVar6) goto LAB_00071ab8;\n            goto LAB_00071a87;\n          }\n          if ((cVar2 != '\\') || (bVar1)) goto LAB_00071a87;\n          *param_3 = '\\';\n          bVar1 = true;\n        }" ({ "{") (if_statement "if (cVar2 < '#') {\n            if ((cVar2 == '\n') || (cVar2 == '\r')) goto LAB_00071ab8;\n            goto LAB_00071a87;\n          }" (if "if") (parenthesized_expression "(cVar2 < '#')" (( "(") (binary_expression "cVar2 < '#'" (identifier "cVar2") (< "<") (char_literal "'#'" (' "'") (character "#") (' "'"))) () ")")) (compound_statement "{\n            if ((cVar2 == '\n') || (cVar2 == '\r')) goto LAB_00071ab8;\n            goto LAB_00071a87;\n          }" ({ "{") (if_statement "if ((cVar2 == '\n') || (cVar2 == '\r')) goto LAB_00071ab8;" (if "if") (parenthesized_expression "((cVar2 == '\n') || (cVar2 == '\r'))" (( "(") (binary_expression "(cVar2 == '\n') || (cVar2 == '\r')" (parenthesized_expression "(cVar2 == '\n')" (( "(") (binary_expression "cVar2 == '\n'" (identifier "cVar2") (== "==") (char_literal "'\n'" (' "'") (escape_sequence "\n") (' "'"))) () ")")) (|| "||") (parenthesized_expression "(cVar2 == '\r')" (( "(") (binary_expression "cVar2 == '\r'" (identifier "cVar2") (== "==") (char_literal "'\r'" (' "'") (escape_sequence "\r") (' "'"))) () ")"))) () ")")) (goto_statement "goto LAB_00071ab8;" (goto "goto") (statement_identifier "LAB_00071ab8") (; ";"))) (goto_statement "goto LAB_00071a87;" (goto "goto") (statement_identifier "LAB_00071a87") (; ";")) (} "}"))) (if_statement "if (cVar2 == ',') {\n            if (!bVar6) goto LAB_00071ab8;\n            goto LAB_00071a87;\n          }" (if "if") (parenthesized_expression "(cVar2 == ',')" (( "(") (binary_expression "cVar2 == ','" (identifier "cVar2") (== "==") (char_literal "','" (' "'") (character ",") (' "'"))) () ")")) (compound_statement "{\n            if (!bVar6) goto LAB_00071ab8;\n            goto LAB_00071a87;\n          }" ({ "{") (if_statement "if (!bVar6) goto LAB_00071ab8;" (if "if") (parenthesized_expression "(!bVar6)" (( "(") (unary_expression "!bVar6" (! "!") (identifier "bVar6")) () ")")) (goto_statement "goto LAB_00071ab8;" (goto "goto") (statement_identifier "LAB_00071ab8") (; ";"))) (goto_statement "goto LAB_00071a87;" (goto "goto") (statement_identifier "LAB_00071a87") (; ";")) (} "}"))) (if_statement "if ((cVar2 != '\\') || (bVar1)) goto LAB_00071a87;" (if "if") (parenthesized_expression "((cVar2 != '\\') || (bVar1))" (( "(") (binary_expression "(cVar2 != '\\') || (bVar1)" (parenthesized_expression "(cVar2 != '\\')" (( "(") (binary_expression "cVar2 != '\\'" (identifier "cVar2") (!= "!=") (char_literal "'\\'" (' "'") (escape_sequence "\\") (' "'"))) () ")")) (|| "||") (parenthesized_expression "(bVar1)" (( "(") (identifier "bVar1") () ")"))) () ")")) (goto_statement "goto LAB_00071a87;" (goto "goto") (statement_identifier "LAB_00071a87") (; ";"))) (expression_statement "*param_3 = '\\';" (assignment_expression "*param_3 = '\\'" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (= "=") (char_literal "'\\'" (' "'") (escape_sequence "\\") (' "'"))) (; ";")) (expression_statement "bVar1 = true;" (assignment_expression "bVar1 = true" (identifier "bVar1") (= "=") (true "true")) (; ";")) (} "}")))) (expression_statement "param_3 = param_3 + 1;" (assignment_expression "param_3 = param_3 + 1" (identifier "param_3") (= "=") (binary_expression "param_3 + 1" (identifier "param_3") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pcVar5 = pcVar5 + 1;" (assignment_expression "pcVar5 = pcVar5 + 1" (identifier "pcVar5") (= "=") (binary_expression "pcVar5 + 1" (identifier "pcVar5") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "cVar2 = *pcVar5;" (assignment_expression "cVar2 = *pcVar5" (identifier "cVar2") (= "=") (pointer_expression "*pcVar5" (* "*") (identifier "pcVar5"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "((cVar2 != '\0') && (pcVar4 != pcVar5))" (( "(") (binary_expression "(cVar2 != '\0') && (pcVar4 != pcVar5)" (parenthesized_expression "(cVar2 != '\0')" (( "(") (binary_expression "cVar2 != '\0'" (identifier "cVar2") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (&& "&&") (parenthesized_expression "(pcVar4 != pcVar5)" (( "(") (binary_expression "pcVar4 != pcVar5" (identifier "pcVar4") (!= "!=") (identifier "pcVar5")) () ")"))) () ")")) (; ";")) (} "}"))) (expression_statement "*param_3 = '\0';" (assignment_expression "*param_3 = '\0'" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (expression_statement "*param_4 = pcVar5;" (assignment_expression "*param_4 = pcVar5" (pointer_expression "*param_4" (* "*") (identifier "param_4")) (= "=") (identifier "pcVar5")) (; ";")) (expression_statement "uVar3 = 1;" (assignment_expression "uVar3 = 1" (identifier "uVar3") (= "=") (number_literal "1")) (; ";")) (} "}"))) (return_statement "return uVar3;" (return "return") (identifier "uVar3") (; ";")) (} "}")))

type_1 function_1(char *var_3,char *var_2,char *var_6,char **endptr)

{
  bool bVar1;
  char var_1;
  type_1 _Var3;
  char *var_4;
  char *var_5;
  bool bVar6;
  
  var_1 = *var_3;
  if ((var_1 != '=') && (var_1 != '\0')) {
    var_5 = var_2 + 0xff;
    var_4 = var_2;
    do {
      var_3 = var_3 + 1;
      var_2 = var_4 + 1;
      *var_4 = var_1;
      var_1 = *var_3;
      if ((var_1 == '\0') || (var_1 == '=')) break;
      var_4 = var_2;
    } while (var_2 != var_5);
  }
  *var_2 = '\0';
  _Var3 = false;
  if (*var_3 == '=') {
    var_1 = var_3[1];
    bVar6 = var_1 == '\"';
    if (bVar6) {
      var_5 = var_3 + 2;
      var_1 = var_3[2];
    }
    else {
      var_5 = var_3 + 1;
    }
    if (var_1 != '\0') {
      var_4 = var_5 + 0x3ff;
      bVar1 = false;
      do {
        if (var_1 == '\"') {
          if ((!bVar1) && (bVar6)) {
LAB_00071ab8:
            *var_6 = '\0';
            *endptr = var_5 + 1;
            return true;
          }
LAB_00071a87:
          *var_6 = var_1;
          bVar1 = false;
        }
        else {
          if (var_1 < '#') {
            if ((var_1 == '\n') || (var_1 == '\r')) goto LAB_00071ab8;
            goto LAB_00071a87;
          }
          if (var_1 == ',') {
            if (!bVar6) goto LAB_00071ab8;
            goto LAB_00071a87;
          }
          if ((var_1 != '\\') || (bVar1)) goto LAB_00071a87;
          *var_6 = '\\';
          bVar1 = true;
        }
        var_6 = var_6 + 1;
        var_5 = var_5 + 1;
        var_1 = *var_5;
      } while ((var_1 != '\0') && (var_4 != var_5));
    }
    *var_6 = '\0';
    *endptr = var_5;
    _Var3 = true;
  }
  return _Var3;
}


(translation_unit (function_definition type: (type_identifier) 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))) (parameter_declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))))) body: (compound_statement (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (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: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (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 (character)))))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (char_literal (escape_sequence)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (char_literal (character)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (char_literal (escape_sequence))))) (if_statement condition: (parenthesized_expression (identifier)) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (false))) (do_statement body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (unary_expression argument: (identifier))) right: (parenthesized_expression (identifier)))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (char_literal (escape_sequence))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (identifier) right: (number_literal)))) (return_statement (number_literal)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (false)))) 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: (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))) (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (character)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (unary_expression argument: (identifier))) consequence: (goto_statement label: (statement_identifier))) (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 (identifier)))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (char_literal (escape_sequence)))) (expression_statement (assignment_expression left: (identifier) right: (true)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier))))) condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))) right: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (char_literal (escape_sequence)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))))) (return_statement (identifier)))))

undefined4 MASKED(char *param_1,char *param_2,char *param_3,undefined4 *param_4)

{
  bool bVar1;
  char cVar2;
  undefined4 uVar3;
  char *pcVar4;
  char *pcVar5;
  bool bVar6;
  
  cVar2 = *param_1;
  if ((cVar2 != '=') && (cVar2 != '\0')) {
    pcVar5 = param_2 + 0xff;
    pcVar4 = param_2;
    do {
      param_1 = param_1 + 1;
      param_2 = pcVar4 + 1;
      *pcVar4 = cVar2;
      cVar2 = *param_1;
      if ((cVar2 == '\0') || (cVar2 == '=')) break;
      pcVar4 = param_2;
    } while (param_2 != pcVar5);
  }
  *param_2 = '\0';
  uVar3 = 0;
  if (*param_1 == '=') {
    cVar2 = param_1[1];
    bVar6 = cVar2 == '\"';
    if (bVar6) {
      pcVar5 = param_1 + 2;
      cVar2 = param_1[2];
    }
    else {
      pcVar5 = param_1 + 1;
    }
    if (cVar2 != '\0') {
      pcVar4 = pcVar5 + 0x3ff;
      bVar1 = false;
      do {
        if (cVar2 == '\"') {
          if ((!bVar1) && (bVar6)) {
LAB_00071ab8:
            *param_3 = '\0';
            *param_4 = pcVar5 + 1;
            return 1;
          }
LAB_00071a87:
          *param_3 = cVar2;
          bVar1 = false;
        }
        else {
          if (cVar2 < '#') {
            if ((cVar2 == '\n') || (cVar2 == '\r')) goto LAB_00071ab8;
            goto LAB_00071a87;
          }
          if (cVar2 == ',') {
            if (!bVar6) goto LAB_00071ab8;
            goto LAB_00071a87;
          }
          if ((cVar2 != '\\') || (bVar1)) goto LAB_00071a87;
          *param_3 = '\\';
          bVar1 = true;
        }
        param_3 = param_3 + 1;
        pcVar5 = pcVar5 + 1;
        cVar2 = *pcVar5;
      } while ((cVar2 != '\0') && (pcVar4 != pcVar5));
    }
    *param_3 = '\0';
    *param_4 = pcVar5;
    uVar3 = 1;
  }
  return uVar3;
}

