
size_t sb_skip_comma(size_t idx,sb *ptr)

{
  uint uVar1;
  char *pcVar2;
  char cVar3;
  uint uVar4;
  
  uVar1 = ptr->len;
  if (idx < uVar1) {
    pcVar2 = ptr->ptr;
    cVar3 = pcVar2[idx];
    if ((cVar3 == '\t') || (cVar3 == ' ')) {
      do {
        idx = idx + 1;
        if (idx == uVar1) {
          return idx;
        }
        cVar3 = pcVar2[idx];
      } while ((cVar3 == ' ') || (cVar3 == '\t'));
    }
    if (cVar3 == ',') {
      uVar4 = idx + 1;
      if (uVar4 < uVar1) {
        cVar3 = pcVar2[idx + 1];
        if (cVar3 != ' ') goto LAB_000359e0;
        do {
          do {
            uVar4 = uVar4 + 1;
            if (uVar1 <= uVar4) {
              return uVar4;
            }
            cVar3 = pcVar2[uVar4];
          } while (cVar3 == ' ');
LAB_000359e0:
        } while (cVar3 == '\t');
      }
      return uVar4;
    }
  }
  return idx;
}



uint FUN_00035980(uint param_1,int *param_2)

{
  uint uVar1;
  int iVar2;
  char cVar3;
  uint uVar4;
  
  uVar1 = param_2[1];
  if (param_1 < uVar1) {
    iVar2 = *param_2;
    cVar3 = *(char *)(iVar2 + param_1);
    if ((cVar3 == '\t') || (cVar3 == ' ')) {
      do {
        param_1 = param_1 + 1;
        if (param_1 == uVar1) {
          return param_1;
        }
        cVar3 = *(char *)(iVar2 + param_1);
      } while ((cVar3 == ' ') || (cVar3 == '\t'));
    }
    if (cVar3 == ',') {
      uVar4 = param_1 + 1;
      if (uVar4 < uVar1) {
        cVar3 = *(char *)(iVar2 + 1 + param_1);
        if (cVar3 != ' ') goto LAB_000359e0;
        do {
          do {
            uVar4 = uVar4 + 1;
            if (uVar1 <= uVar4) {
              return uVar4;
            }
            cVar3 = *(char *)(iVar2 + uVar4);
          } while (cVar3 == ' ');
LAB_000359e0:
        } while (cVar3 == '\t');
      }
      return uVar4;
    }
  }
  return param_1;
}


PUSH EBX
MOV EAX,dword ptr [ESP + 0xc]
MOV EDX,dword ptr [ESP + 0x8]
MOV ECX,dword ptr [EAX + 0x4]
CMP EDX,ECX
JNC 0x000359f0
MOV EBX,dword ptr [EAX]
MOVZX EAX,byte ptr [EBX + EDX*0x1]
CMP AL,0x9
JZ 0x000359a0
CMP AL,0x20
JNZ 0x000359b3
NOP
ADD EDX,0x1
CMP EDX,ECX
JZ 0x000359f0
MOVZX EAX,byte ptr [EBX + EDX*0x1]
CMP AL,0x20
JZ 0x000359a0
CMP AL,0x9
JZ 0x000359a0
CMP AL,0x2c
JNZ 0x000359f0
LEA EAX,[EDX + 0x1]
CMP EAX,ECX
JNC 0x000359e5
MOVZX EDX,byte ptr [EBX + EDX*0x1 + 0x1]
CMP DL,0x20
JNZ 0x000359e0
LEA ESI,[ESI]
NOP
ADD EAX,0x1
CMP EAX,ECX
JNC 0x000359e5
MOVZX EDX,byte ptr [EBX + EAX*0x1]
CMP DL,0x20
JZ 0x000359d0
CMP DL,0x9
JZ 0x000359d0
POP EBX
RET
MOV EAX,EDX
POP EBX
RET
(translation_unit "uint FUN_00035980(uint param_1,int *param_2)\n\n{\n  uint uVar1;\n  int iVar2;\n  char cVar3;\n  uint uVar4;\n  \n  uVar1 = param_2[1];\n  if (param_1 < uVar1) {\n    iVar2 = *param_2;\n    cVar3 = *(char *)(iVar2 + param_1);\n    if ((cVar3 == '\t') || (cVar3 == ' ')) {\n      do {\n        param_1 = param_1 + 1;\n        if (param_1 == uVar1) {\n          return param_1;\n        }\n        cVar3 = *(char *)(iVar2 + param_1);\n      } while ((cVar3 == ' ') || (cVar3 == '\t'));\n    }\n    if (cVar3 == ',') {\n      uVar4 = param_1 + 1;\n      if (uVar4 < uVar1) {\n        cVar3 = *(char *)(iVar2 + 1 + param_1);\n        if (cVar3 != ' ') goto LAB_000359e0;\n        do {\n          do {\n            uVar4 = uVar4 + 1;\n            if (uVar1 <= uVar4) {\n              return uVar4;\n            }\n            cVar3 = *(char *)(iVar2 + uVar4);\n          } while (cVar3 == ' ');\nLAB_000359e0:\n        } while (cVar3 == '\t');\n      }\n      return uVar4;\n    }\n  }\n  return param_1;\n}\n\n" (function_definition "uint FUN_00035980(uint param_1,int *param_2)\n\n{\n  uint uVar1;\n  int iVar2;\n  char cVar3;\n  uint uVar4;\n  \n  uVar1 = param_2[1];\n  if (param_1 < uVar1) {\n    iVar2 = *param_2;\n    cVar3 = *(char *)(iVar2 + param_1);\n    if ((cVar3 == '\t') || (cVar3 == ' ')) {\n      do {\n        param_1 = param_1 + 1;\n        if (param_1 == uVar1) {\n          return param_1;\n        }\n        cVar3 = *(char *)(iVar2 + param_1);\n      } while ((cVar3 == ' ') || (cVar3 == '\t'));\n    }\n    if (cVar3 == ',') {\n      uVar4 = param_1 + 1;\n      if (uVar4 < uVar1) {\n        cVar3 = *(char *)(iVar2 + 1 + param_1);\n        if (cVar3 != ' ') goto LAB_000359e0;\n        do {\n          do {\n            uVar4 = uVar4 + 1;\n            if (uVar1 <= uVar4) {\n              return uVar4;\n            }\n            cVar3 = *(char *)(iVar2 + uVar4);\n          } while (cVar3 == ' ');\nLAB_000359e0:\n        } while (cVar3 == '\t');\n      }\n      return uVar4;\n    }\n  }\n  return param_1;\n}" type_identifier (function_declarator "FUN_00035980(uint param_1,int *param_2)" identifier (parameter_list "(uint param_1,int *param_2)" ( (parameter_declaration "uint param_1" type_identifier identifier) , (parameter_declaration "int *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) ))) (compound_statement "{\n  uint uVar1;\n  int iVar2;\n  char cVar3;\n  uint uVar4;\n  \n  uVar1 = param_2[1];\n  if (param_1 < uVar1) {\n    iVar2 = *param_2;\n    cVar3 = *(char *)(iVar2 + param_1);\n    if ((cVar3 == '\t') || (cVar3 == ' ')) {\n      do {\n        param_1 = param_1 + 1;\n        if (param_1 == uVar1) {\n          return param_1;\n        }\n        cVar3 = *(char *)(iVar2 + param_1);\n      } while ((cVar3 == ' ') || (cVar3 == '\t'));\n    }\n    if (cVar3 == ',') {\n      uVar4 = param_1 + 1;\n      if (uVar4 < uVar1) {\n        cVar3 = *(char *)(iVar2 + 1 + param_1);\n        if (cVar3 != ' ') goto LAB_000359e0;\n        do {\n          do {\n            uVar4 = uVar4 + 1;\n            if (uVar1 <= uVar4) {\n              return uVar4;\n            }\n            cVar3 = *(char *)(iVar2 + uVar4);\n          } while (cVar3 == ' ');\nLAB_000359e0:\n        } while (cVar3 == '\t');\n      }\n      return uVar4;\n    }\n  }\n  return param_1;\n}" { (declaration "uint uVar1;" type_identifier identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "char cVar3;" primitive_type identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (expression_statement "uVar1 = param_2[1];" (assignment_expression "uVar1 = param_2[1]" identifier = (subscript_expression "param_2[1]" identifier [ number_literal ])) ;) (if_statement "if (param_1 < uVar1) {\n    iVar2 = *param_2;\n    cVar3 = *(char *)(iVar2 + param_1);\n    if ((cVar3 == '\t') || (cVar3 == ' ')) {\n      do {\n        param_1 = param_1 + 1;\n        if (param_1 == uVar1) {\n          return param_1;\n        }\n        cVar3 = *(char *)(iVar2 + param_1);\n      } while ((cVar3 == ' ') || (cVar3 == '\t'));\n    }\n    if (cVar3 == ',') {\n      uVar4 = param_1 + 1;\n      if (uVar4 < uVar1) {\n        cVar3 = *(char *)(iVar2 + 1 + param_1);\n        if (cVar3 != ' ') goto LAB_000359e0;\n        do {\n          do {\n            uVar4 = uVar4 + 1;\n            if (uVar1 <= uVar4) {\n              return uVar4;\n            }\n            cVar3 = *(char *)(iVar2 + uVar4);\n          } while (cVar3 == ' ');\nLAB_000359e0:\n        } while (cVar3 == '\t');\n      }\n      return uVar4;\n    }\n  }" if (parenthesized_expression "(param_1 < uVar1)" ( (binary_expression "param_1 < uVar1" identifier < identifier) )) (compound_statement "{\n    iVar2 = *param_2;\n    cVar3 = *(char *)(iVar2 + param_1);\n    if ((cVar3 == '\t') || (cVar3 == ' ')) {\n      do {\n        param_1 = param_1 + 1;\n        if (param_1 == uVar1) {\n          return param_1;\n        }\n        cVar3 = *(char *)(iVar2 + param_1);\n      } while ((cVar3 == ' ') || (cVar3 == '\t'));\n    }\n    if (cVar3 == ',') {\n      uVar4 = param_1 + 1;\n      if (uVar4 < uVar1) {\n        cVar3 = *(char *)(iVar2 + 1 + param_1);\n        if (cVar3 != ' ') goto LAB_000359e0;\n        do {\n          do {\n            uVar4 = uVar4 + 1;\n            if (uVar1 <= uVar4) {\n              return uVar4;\n            }\n            cVar3 = *(char *)(iVar2 + uVar4);\n          } while (cVar3 == ' ');\nLAB_000359e0:\n        } while (cVar3 == '\t');\n      }\n      return uVar4;\n    }\n  }" { (expression_statement "iVar2 = *param_2;" (assignment_expression "iVar2 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;) (expression_statement "cVar3 = *(char *)(iVar2 + param_1);" (assignment_expression "cVar3 = *(char *)(iVar2 + param_1)" identifier = (pointer_expression "*(char *)(iVar2 + param_1)" * (cast_expression "(char *)(iVar2 + param_1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + param_1)" ( (binary_expression "iVar2 + param_1" identifier + identifier) ))))) ;) (if_statement "if ((cVar3 == '\t') || (cVar3 == ' ')) {\n      do {\n        param_1 = param_1 + 1;\n        if (param_1 == uVar1) {\n          return param_1;\n        }\n        cVar3 = *(char *)(iVar2 + param_1);\n      } while ((cVar3 == ' ') || (cVar3 == '\t'));\n    }" if (parenthesized_expression "((cVar3 == '\t') || (cVar3 == ' '))" ( (binary_expression "(cVar3 == '\t') || (cVar3 == ' ')" (parenthesized_expression "(cVar3 == '\t')" ( (binary_expression "cVar3 == '\t'" identifier == (char_literal "'\t'" ' escape_sequence ')) )) || (parenthesized_expression "(cVar3 == ' ')" ( (binary_expression "cVar3 == ' '" identifier == (char_literal "' '" ' character ')) ))) )) (compound_statement "{\n      do {\n        param_1 = param_1 + 1;\n        if (param_1 == uVar1) {\n          return param_1;\n        }\n        cVar3 = *(char *)(iVar2 + param_1);\n      } while ((cVar3 == ' ') || (cVar3 == '\t'));\n    }" { (do_statement "do {\n        param_1 = param_1 + 1;\n        if (param_1 == uVar1) {\n          return param_1;\n        }\n        cVar3 = *(char *)(iVar2 + param_1);\n      } while ((cVar3 == ' ') || (cVar3 == '\t'));" do (compound_statement "{\n        param_1 = param_1 + 1;\n        if (param_1 == uVar1) {\n          return param_1;\n        }\n        cVar3 = *(char *)(iVar2 + param_1);\n      }" { (expression_statement "param_1 = param_1 + 1;" (assignment_expression "param_1 = param_1 + 1" identifier = (binary_expression "param_1 + 1" identifier + number_literal)) ;) (if_statement "if (param_1 == uVar1) {\n          return param_1;\n        }" if (parenthesized_expression "(param_1 == uVar1)" ( (binary_expression "param_1 == uVar1" identifier == identifier) )) (compound_statement "{\n          return param_1;\n        }" { (return_statement "return param_1;" return identifier ;) })) (expression_statement "cVar3 = *(char *)(iVar2 + param_1);" (assignment_expression "cVar3 = *(char *)(iVar2 + param_1)" identifier = (pointer_expression "*(char *)(iVar2 + param_1)" * (cast_expression "(char *)(iVar2 + param_1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + param_1)" ( (binary_expression "iVar2 + param_1" identifier + identifier) ))))) ;) }) while (parenthesized_expression "((cVar3 == ' ') || (cVar3 == '\t'))" ( (binary_expression "(cVar3 == ' ') || (cVar3 == '\t')" (parenthesized_expression "(cVar3 == ' ')" ( (binary_expression "cVar3 == ' '" identifier == (char_literal "' '" ' character ')) )) || (parenthesized_expression "(cVar3 == '\t')" ( (binary_expression "cVar3 == '\t'" identifier == (char_literal "'\t'" ' escape_sequence ')) ))) )) ;) })) (if_statement "if (cVar3 == ',') {\n      uVar4 = param_1 + 1;\n      if (uVar4 < uVar1) {\n        cVar3 = *(char *)(iVar2 + 1 + param_1);\n        if (cVar3 != ' ') goto LAB_000359e0;\n        do {\n          do {\n            uVar4 = uVar4 + 1;\n            if (uVar1 <= uVar4) {\n              return uVar4;\n            }\n            cVar3 = *(char *)(iVar2 + uVar4);\n          } while (cVar3 == ' ');\nLAB_000359e0:\n        } while (cVar3 == '\t');\n      }\n      return uVar4;\n    }" if (parenthesized_expression "(cVar3 == ',')" ( (binary_expression "cVar3 == ','" identifier == (char_literal "','" ' character ')) )) (compound_statement "{\n      uVar4 = param_1 + 1;\n      if (uVar4 < uVar1) {\n        cVar3 = *(char *)(iVar2 + 1 + param_1);\n        if (cVar3 != ' ') goto LAB_000359e0;\n        do {\n          do {\n            uVar4 = uVar4 + 1;\n            if (uVar1 <= uVar4) {\n              return uVar4;\n            }\n            cVar3 = *(char *)(iVar2 + uVar4);\n          } while (cVar3 == ' ');\nLAB_000359e0:\n        } while (cVar3 == '\t');\n      }\n      return uVar4;\n    }" { (expression_statement "uVar4 = param_1 + 1;" (assignment_expression "uVar4 = param_1 + 1" identifier = (binary_expression "param_1 + 1" identifier + number_literal)) ;) (if_statement "if (uVar4 < uVar1) {\n        cVar3 = *(char *)(iVar2 + 1 + param_1);\n        if (cVar3 != ' ') goto LAB_000359e0;\n        do {\n          do {\n            uVar4 = uVar4 + 1;\n            if (uVar1 <= uVar4) {\n              return uVar4;\n            }\n            cVar3 = *(char *)(iVar2 + uVar4);\n          } while (cVar3 == ' ');\nLAB_000359e0:\n        } while (cVar3 == '\t');\n      }" if (parenthesized_expression "(uVar4 < uVar1)" ( (binary_expression "uVar4 < uVar1" identifier < identifier) )) (compound_statement "{\n        cVar3 = *(char *)(iVar2 + 1 + param_1);\n        if (cVar3 != ' ') goto LAB_000359e0;\n        do {\n          do {\n            uVar4 = uVar4 + 1;\n            if (uVar1 <= uVar4) {\n              return uVar4;\n            }\n            cVar3 = *(char *)(iVar2 + uVar4);\n          } while (cVar3 == ' ');\nLAB_000359e0:\n        } while (cVar3 == '\t');\n      }" { (expression_statement "cVar3 = *(char *)(iVar2 + 1 + param_1);" (assignment_expression "cVar3 = *(char *)(iVar2 + 1 + param_1)" identifier = (pointer_expression "*(char *)(iVar2 + 1 + param_1)" * (cast_expression "(char *)(iVar2 + 1 + param_1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 1 + param_1)" ( (binary_expression "iVar2 + 1 + param_1" (binary_expression "iVar2 + 1" identifier + number_literal) + identifier) ))))) ;) (if_statement "if (cVar3 != ' ') goto LAB_000359e0;" if (parenthesized_expression "(cVar3 != ' ')" ( (binary_expression "cVar3 != ' '" identifier != (char_literal "' '" ' character ')) )) (goto_statement "goto LAB_000359e0;" goto statement_identifier ;)) (do_statement "do {\n          do {\n            uVar4 = uVar4 + 1;\n            if (uVar1 <= uVar4) {\n              return uVar4;\n            }\n            cVar3 = *(char *)(iVar2 + uVar4);\n          } while (cVar3 == ' ');\nLAB_000359e0:\n        } while (cVar3 == '\t');" do (compound_statement "{\n          do {\n            uVar4 = uVar4 + 1;\n            if (uVar1 <= uVar4) {\n              return uVar4;\n            }\n            cVar3 = *(char *)(iVar2 + uVar4);\n          } while (cVar3 == ' ');\nLAB_000359e0:\n        }" { (do_statement "do {\n            uVar4 = uVar4 + 1;\n            if (uVar1 <= uVar4) {\n              return uVar4;\n            }\n            cVar3 = *(char *)(iVar2 + uVar4);\n          } while (cVar3 == ' ');" do (compound_statement "{\n            uVar4 = uVar4 + 1;\n            if (uVar1 <= uVar4) {\n              return uVar4;\n            }\n            cVar3 = *(char *)(iVar2 + uVar4);\n          }" { (expression_statement "uVar4 = uVar4 + 1;" (assignment_expression "uVar4 = uVar4 + 1" identifier = (binary_expression "uVar4 + 1" identifier + number_literal)) ;) (if_statement "if (uVar1 <= uVar4) {\n              return uVar4;\n            }" if (parenthesized_expression "(uVar1 <= uVar4)" ( (binary_expression "uVar1 <= uVar4" identifier <= identifier) )) (compound_statement "{\n              return uVar4;\n            }" { (return_statement "return uVar4;" return identifier ;) })) (expression_statement "cVar3 = *(char *)(iVar2 + uVar4);" (assignment_expression "cVar3 = *(char *)(iVar2 + uVar4)" identifier = (pointer_expression "*(char *)(iVar2 + uVar4)" * (cast_expression "(char *)(iVar2 + uVar4)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + uVar4)" ( (binary_expression "iVar2 + uVar4" identifier + identifier) ))))) ;) }) while (parenthesized_expression "(cVar3 == ' ')" ( (binary_expression "cVar3 == ' '" identifier == (char_literal "' '" ' character ')) )) ;) (labeled_statement "LAB_000359e0:" statement_identifier : (expression_statement "" ;)) }) while (parenthesized_expression "(cVar3 == '\t')" ( (binary_expression "cVar3 == '\t'" identifier == (char_literal "'\t'" ' escape_sequence ')) )) ;) })) (return_statement "return uVar4;" return identifier ;) })) })) (return_statement "return param_1;" return identifier ;) })))
(translation_unit "size_t sb_skip_comma(size_t idx,sb *ptr)\n\n{\n  uint uVar1;\n  char *pcVar2;\n  char cVar3;\n  uint uVar4;\n  \n  uVar1 = ptr->len;\n  if (idx < uVar1) {\n    pcVar2 = ptr->ptr;\n    cVar3 = pcVar2[idx];\n    if ((cVar3 == '\t') || (cVar3 == ' ')) {\n      do {\n        idx = idx + 1;\n        if (idx == uVar1) {\n          return idx;\n        }\n        cVar3 = pcVar2[idx];\n      } while ((cVar3 == ' ') || (cVar3 == '\t'));\n    }\n    if (cVar3 == ',') {\n      uVar4 = idx + 1;\n      if (uVar4 < uVar1) {\n        cVar3 = pcVar2[idx + 1];\n        if (cVar3 != ' ') goto LAB_000359e0;\n        do {\n          do {\n            uVar4 = uVar4 + 1;\n            if (uVar1 <= uVar4) {\n              return uVar4;\n            }\n            cVar3 = pcVar2[uVar4];\n          } while (cVar3 == ' ');\nLAB_000359e0:\n        } while (cVar3 == '\t');\n      }\n      return uVar4;\n    }\n  }\n  return idx;\n}\n\n" (function_definition "size_t sb_skip_comma(size_t idx,sb *ptr)\n\n{\n  uint uVar1;\n  char *pcVar2;\n  char cVar3;\n  uint uVar4;\n  \n  uVar1 = ptr->len;\n  if (idx < uVar1) {\n    pcVar2 = ptr->ptr;\n    cVar3 = pcVar2[idx];\n    if ((cVar3 == '\t') || (cVar3 == ' ')) {\n      do {\n        idx = idx + 1;\n        if (idx == uVar1) {\n          return idx;\n        }\n        cVar3 = pcVar2[idx];\n      } while ((cVar3 == ' ') || (cVar3 == '\t'));\n    }\n    if (cVar3 == ',') {\n      uVar4 = idx + 1;\n      if (uVar4 < uVar1) {\n        cVar3 = pcVar2[idx + 1];\n        if (cVar3 != ' ') goto LAB_000359e0;\n        do {\n          do {\n            uVar4 = uVar4 + 1;\n            if (uVar1 <= uVar4) {\n              return uVar4;\n            }\n            cVar3 = pcVar2[uVar4];\n          } while (cVar3 == ' ');\nLAB_000359e0:\n        } while (cVar3 == '\t');\n      }\n      return uVar4;\n    }\n  }\n  return idx;\n}" primitive_type (function_declarator "sb_skip_comma(size_t idx,sb *ptr)" identifier (parameter_list "(size_t idx,sb *ptr)" ( (parameter_declaration "size_t idx" primitive_type identifier) , (parameter_declaration "sb *ptr" type_identifier (pointer_declarator "*ptr" * identifier)) ))) (compound_statement "{\n  uint uVar1;\n  char *pcVar2;\n  char cVar3;\n  uint uVar4;\n  \n  uVar1 = ptr->len;\n  if (idx < uVar1) {\n    pcVar2 = ptr->ptr;\n    cVar3 = pcVar2[idx];\n    if ((cVar3 == '\t') || (cVar3 == ' ')) {\n      do {\n        idx = idx + 1;\n        if (idx == uVar1) {\n          return idx;\n        }\n        cVar3 = pcVar2[idx];\n      } while ((cVar3 == ' ') || (cVar3 == '\t'));\n    }\n    if (cVar3 == ',') {\n      uVar4 = idx + 1;\n      if (uVar4 < uVar1) {\n        cVar3 = pcVar2[idx + 1];\n        if (cVar3 != ' ') goto LAB_000359e0;\n        do {\n          do {\n            uVar4 = uVar4 + 1;\n            if (uVar1 <= uVar4) {\n              return uVar4;\n            }\n            cVar3 = pcVar2[uVar4];\n          } while (cVar3 == ' ');\nLAB_000359e0:\n        } while (cVar3 == '\t');\n      }\n      return uVar4;\n    }\n  }\n  return idx;\n}" { (declaration "uint uVar1;" type_identifier identifier ;) (declaration "char *pcVar2;" primitive_type (pointer_declarator "*pcVar2" * identifier) ;) (declaration "char cVar3;" primitive_type identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (expression_statement "uVar1 = ptr->len;" (assignment_expression "uVar1 = ptr->len" identifier = (field_expression "ptr->len" identifier -> field_identifier)) ;) (if_statement "if (idx < uVar1) {\n    pcVar2 = ptr->ptr;\n    cVar3 = pcVar2[idx];\n    if ((cVar3 == '\t') || (cVar3 == ' ')) {\n      do {\n        idx = idx + 1;\n        if (idx == uVar1) {\n          return idx;\n        }\n        cVar3 = pcVar2[idx];\n      } while ((cVar3 == ' ') || (cVar3 == '\t'));\n    }\n    if (cVar3 == ',') {\n      uVar4 = idx + 1;\n      if (uVar4 < uVar1) {\n        cVar3 = pcVar2[idx + 1];\n        if (cVar3 != ' ') goto LAB_000359e0;\n        do {\n          do {\n            uVar4 = uVar4 + 1;\n            if (uVar1 <= uVar4) {\n              return uVar4;\n            }\n            cVar3 = pcVar2[uVar4];\n          } while (cVar3 == ' ');\nLAB_000359e0:\n        } while (cVar3 == '\t');\n      }\n      return uVar4;\n    }\n  }" if (parenthesized_expression "(idx < uVar1)" ( (binary_expression "idx < uVar1" identifier < identifier) )) (compound_statement "{\n    pcVar2 = ptr->ptr;\n    cVar3 = pcVar2[idx];\n    if ((cVar3 == '\t') || (cVar3 == ' ')) {\n      do {\n        idx = idx + 1;\n        if (idx == uVar1) {\n          return idx;\n        }\n        cVar3 = pcVar2[idx];\n      } while ((cVar3 == ' ') || (cVar3 == '\t'));\n    }\n    if (cVar3 == ',') {\n      uVar4 = idx + 1;\n      if (uVar4 < uVar1) {\n        cVar3 = pcVar2[idx + 1];\n        if (cVar3 != ' ') goto LAB_000359e0;\n        do {\n          do {\n            uVar4 = uVar4 + 1;\n            if (uVar1 <= uVar4) {\n              return uVar4;\n            }\n            cVar3 = pcVar2[uVar4];\n          } while (cVar3 == ' ');\nLAB_000359e0:\n        } while (cVar3 == '\t');\n      }\n      return uVar4;\n    }\n  }" { (expression_statement "pcVar2 = ptr->ptr;" (assignment_expression "pcVar2 = ptr->ptr" identifier = (field_expression "ptr->ptr" identifier -> field_identifier)) ;) (expression_statement "cVar3 = pcVar2[idx];" (assignment_expression "cVar3 = pcVar2[idx]" identifier = (subscript_expression "pcVar2[idx]" identifier [ identifier ])) ;) (if_statement "if ((cVar3 == '\t') || (cVar3 == ' ')) {\n      do {\n        idx = idx + 1;\n        if (idx == uVar1) {\n          return idx;\n        }\n        cVar3 = pcVar2[idx];\n      } while ((cVar3 == ' ') || (cVar3 == '\t'));\n    }" if (parenthesized_expression "((cVar3 == '\t') || (cVar3 == ' '))" ( (binary_expression "(cVar3 == '\t') || (cVar3 == ' ')" (parenthesized_expression "(cVar3 == '\t')" ( (binary_expression "cVar3 == '\t'" identifier == (char_literal "'\t'" ' escape_sequence ')) )) || (parenthesized_expression "(cVar3 == ' ')" ( (binary_expression "cVar3 == ' '" identifier == (char_literal "' '" ' character ')) ))) )) (compound_statement "{\n      do {\n        idx = idx + 1;\n        if (idx == uVar1) {\n          return idx;\n        }\n        cVar3 = pcVar2[idx];\n      } while ((cVar3 == ' ') || (cVar3 == '\t'));\n    }" { (do_statement "do {\n        idx = idx + 1;\n        if (idx == uVar1) {\n          return idx;\n        }\n        cVar3 = pcVar2[idx];\n      } while ((cVar3 == ' ') || (cVar3 == '\t'));" do (compound_statement "{\n        idx = idx + 1;\n        if (idx == uVar1) {\n          return idx;\n        }\n        cVar3 = pcVar2[idx];\n      }" { (expression_statement "idx = idx + 1;" (assignment_expression "idx = idx + 1" identifier = (binary_expression "idx + 1" identifier + number_literal)) ;) (if_statement "if (idx == uVar1) {\n          return idx;\n        }" if (parenthesized_expression "(idx == uVar1)" ( (binary_expression "idx == uVar1" identifier == identifier) )) (compound_statement "{\n          return idx;\n        }" { (return_statement "return idx;" return identifier ;) })) (expression_statement "cVar3 = pcVar2[idx];" (assignment_expression "cVar3 = pcVar2[idx]" identifier = (subscript_expression "pcVar2[idx]" identifier [ identifier ])) ;) }) while (parenthesized_expression "((cVar3 == ' ') || (cVar3 == '\t'))" ( (binary_expression "(cVar3 == ' ') || (cVar3 == '\t')" (parenthesized_expression "(cVar3 == ' ')" ( (binary_expression "cVar3 == ' '" identifier == (char_literal "' '" ' character ')) )) || (parenthesized_expression "(cVar3 == '\t')" ( (binary_expression "cVar3 == '\t'" identifier == (char_literal "'\t'" ' escape_sequence ')) ))) )) ;) })) (if_statement "if (cVar3 == ',') {\n      uVar4 = idx + 1;\n      if (uVar4 < uVar1) {\n        cVar3 = pcVar2[idx + 1];\n        if (cVar3 != ' ') goto LAB_000359e0;\n        do {\n          do {\n            uVar4 = uVar4 + 1;\n            if (uVar1 <= uVar4) {\n              return uVar4;\n            }\n            cVar3 = pcVar2[uVar4];\n          } while (cVar3 == ' ');\nLAB_000359e0:\n        } while (cVar3 == '\t');\n      }\n      return uVar4;\n    }" if (parenthesized_expression "(cVar3 == ',')" ( (binary_expression "cVar3 == ','" identifier == (char_literal "','" ' character ')) )) (compound_statement "{\n      uVar4 = idx + 1;\n      if (uVar4 < uVar1) {\n        cVar3 = pcVar2[idx + 1];\n        if (cVar3 != ' ') goto LAB_000359e0;\n        do {\n          do {\n            uVar4 = uVar4 + 1;\n            if (uVar1 <= uVar4) {\n              return uVar4;\n            }\n            cVar3 = pcVar2[uVar4];\n          } while (cVar3 == ' ');\nLAB_000359e0:\n        } while (cVar3 == '\t');\n      }\n      return uVar4;\n    }" { (expression_statement "uVar4 = idx + 1;" (assignment_expression "uVar4 = idx + 1" identifier = (binary_expression "idx + 1" identifier + number_literal)) ;) (if_statement "if (uVar4 < uVar1) {\n        cVar3 = pcVar2[idx + 1];\n        if (cVar3 != ' ') goto LAB_000359e0;\n        do {\n          do {\n            uVar4 = uVar4 + 1;\n            if (uVar1 <= uVar4) {\n              return uVar4;\n            }\n            cVar3 = pcVar2[uVar4];\n          } while (cVar3 == ' ');\nLAB_000359e0:\n        } while (cVar3 == '\t');\n      }" if (parenthesized_expression "(uVar4 < uVar1)" ( (binary_expression "uVar4 < uVar1" identifier < identifier) )) (compound_statement "{\n        cVar3 = pcVar2[idx + 1];\n        if (cVar3 != ' ') goto LAB_000359e0;\n        do {\n          do {\n            uVar4 = uVar4 + 1;\n            if (uVar1 <= uVar4) {\n              return uVar4;\n            }\n            cVar3 = pcVar2[uVar4];\n          } while (cVar3 == ' ');\nLAB_000359e0:\n        } while (cVar3 == '\t');\n      }" { (expression_statement "cVar3 = pcVar2[idx + 1];" (assignment_expression "cVar3 = pcVar2[idx + 1]" identifier = (subscript_expression "pcVar2[idx + 1]" identifier [ (binary_expression "idx + 1" identifier + number_literal) ])) ;) (if_statement "if (cVar3 != ' ') goto LAB_000359e0;" if (parenthesized_expression "(cVar3 != ' ')" ( (binary_expression "cVar3 != ' '" identifier != (char_literal "' '" ' character ')) )) (goto_statement "goto LAB_000359e0;" goto statement_identifier ;)) (do_statement "do {\n          do {\n            uVar4 = uVar4 + 1;\n            if (uVar1 <= uVar4) {\n              return uVar4;\n            }\n            cVar3 = pcVar2[uVar4];\n          } while (cVar3 == ' ');\nLAB_000359e0:\n        } while (cVar3 == '\t');" do (compound_statement "{\n          do {\n            uVar4 = uVar4 + 1;\n            if (uVar1 <= uVar4) {\n              return uVar4;\n            }\n            cVar3 = pcVar2[uVar4];\n          } while (cVar3 == ' ');\nLAB_000359e0:\n        }" { (do_statement "do {\n            uVar4 = uVar4 + 1;\n            if (uVar1 <= uVar4) {\n              return uVar4;\n            }\n            cVar3 = pcVar2[uVar4];\n          } while (cVar3 == ' ');" do (compound_statement "{\n            uVar4 = uVar4 + 1;\n            if (uVar1 <= uVar4) {\n              return uVar4;\n            }\n            cVar3 = pcVar2[uVar4];\n          }" { (expression_statement "uVar4 = uVar4 + 1;" (assignment_expression "uVar4 = uVar4 + 1" identifier = (binary_expression "uVar4 + 1" identifier + number_literal)) ;) (if_statement "if (uVar1 <= uVar4) {\n              return uVar4;\n            }" if (parenthesized_expression "(uVar1 <= uVar4)" ( (binary_expression "uVar1 <= uVar4" identifier <= identifier) )) (compound_statement "{\n              return uVar4;\n            }" { (return_statement "return uVar4;" return identifier ;) })) (expression_statement "cVar3 = pcVar2[uVar4];" (assignment_expression "cVar3 = pcVar2[uVar4]" identifier = (subscript_expression "pcVar2[uVar4]" identifier [ identifier ])) ;) }) while (parenthesized_expression "(cVar3 == ' ')" ( (binary_expression "cVar3 == ' '" identifier == (char_literal "' '" ' character ')) )) ;) (labeled_statement "LAB_000359e0:" statement_identifier : (expression_statement "" ;)) }) while (parenthesized_expression "(cVar3 == '\t')" ( (binary_expression "cVar3 == '\t'" identifier == (char_literal "'\t'" ' escape_sequence ')) )) ;) })) (return_statement "return uVar4;" return identifier ;) })) })) (return_statement "return idx;" return identifier ;) })))
(translation_unit "uint FUN_00035980(uint param_1,int *param_2)\n\n{\n  uint uVar1;\n  int iVar2;\n  char cVar3;\n  uint uVar4;\n  \n  uVar1 = param_2[1];\n  if (param_1 < uVar1) {\n    iVar2 = *param_2;\n    cVar3 = *(char *)(iVar2 + param_1);\n    if ((cVar3 == '\t') || (cVar3 == ' ')) {\n      do {\n        param_1 = param_1 + 1;\n        if (param_1 == uVar1) {\n          return param_1;\n        }\n        cVar3 = *(char *)(iVar2 + param_1);\n      } while ((cVar3 == ' ') || (cVar3 == '\t'));\n    }\n    if (cVar3 == ',') {\n      uVar4 = param_1 + 1;\n      if (uVar4 < uVar1) {\n        cVar3 = *(char *)(iVar2 + 1 + param_1);\n        if (cVar3 != ' ') goto LAB_000359e0;\n        do {\n          do {\n            uVar4 = uVar4 + 1;\n            if (uVar1 <= uVar4) {\n              return uVar4;\n            }\n            cVar3 = *(char *)(iVar2 + uVar4);\n          } while (cVar3 == ' ');\nLAB_000359e0:\n        } while (cVar3 == '\t');\n      }\n      return uVar4;\n    }\n  }\n  return param_1;\n}\n\n" (function_definition "uint FUN_00035980(uint param_1,int *param_2)\n\n{\n  uint uVar1;\n  int iVar2;\n  char cVar3;\n  uint uVar4;\n  \n  uVar1 = param_2[1];\n  if (param_1 < uVar1) {\n    iVar2 = *param_2;\n    cVar3 = *(char *)(iVar2 + param_1);\n    if ((cVar3 == '\t') || (cVar3 == ' ')) {\n      do {\n        param_1 = param_1 + 1;\n        if (param_1 == uVar1) {\n          return param_1;\n        }\n        cVar3 = *(char *)(iVar2 + param_1);\n      } while ((cVar3 == ' ') || (cVar3 == '\t'));\n    }\n    if (cVar3 == ',') {\n      uVar4 = param_1 + 1;\n      if (uVar4 < uVar1) {\n        cVar3 = *(char *)(iVar2 + 1 + param_1);\n        if (cVar3 != ' ') goto LAB_000359e0;\n        do {\n          do {\n            uVar4 = uVar4 + 1;\n            if (uVar1 <= uVar4) {\n              return uVar4;\n            }\n            cVar3 = *(char *)(iVar2 + uVar4);\n          } while (cVar3 == ' ');\nLAB_000359e0:\n        } while (cVar3 == '\t');\n      }\n      return uVar4;\n    }\n  }\n  return param_1;\n}" type_identifier (function_declarator "FUN_00035980(uint param_1,int *param_2)" identifier (parameter_list "(uint param_1,int *param_2)" ( (parameter_declaration "uint param_1" type_identifier identifier) , (parameter_declaration "int *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) ))) (compound_statement "{\n  uint uVar1;\n  int iVar2;\n  char cVar3;\n  uint uVar4;\n  \n  uVar1 = param_2[1];\n  if (param_1 < uVar1) {\n    iVar2 = *param_2;\n    cVar3 = *(char *)(iVar2 + param_1);\n    if ((cVar3 == '\t') || (cVar3 == ' ')) {\n      do {\n        param_1 = param_1 + 1;\n        if (param_1 == uVar1) {\n          return param_1;\n        }\n        cVar3 = *(char *)(iVar2 + param_1);\n      } while ((cVar3 == ' ') || (cVar3 == '\t'));\n    }\n    if (cVar3 == ',') {\n      uVar4 = param_1 + 1;\n      if (uVar4 < uVar1) {\n        cVar3 = *(char *)(iVar2 + 1 + param_1);\n        if (cVar3 != ' ') goto LAB_000359e0;\n        do {\n          do {\n            uVar4 = uVar4 + 1;\n            if (uVar1 <= uVar4) {\n              return uVar4;\n            }\n            cVar3 = *(char *)(iVar2 + uVar4);\n          } while (cVar3 == ' ');\nLAB_000359e0:\n        } while (cVar3 == '\t');\n      }\n      return uVar4;\n    }\n  }\n  return param_1;\n}" { (declaration "uint uVar1;" type_identifier identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "char cVar3;" primitive_type identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (expression_statement "uVar1 = param_2[1];" (assignment_expression "uVar1 = param_2[1]" identifier = (subscript_expression "param_2[1]" identifier [ number_literal ])) ;) (if_statement "if (param_1 < uVar1) {\n    iVar2 = *param_2;\n    cVar3 = *(char *)(iVar2 + param_1);\n    if ((cVar3 == '\t') || (cVar3 == ' ')) {\n      do {\n        param_1 = param_1 + 1;\n        if (param_1 == uVar1) {\n          return param_1;\n        }\n        cVar3 = *(char *)(iVar2 + param_1);\n      } while ((cVar3 == ' ') || (cVar3 == '\t'));\n    }\n    if (cVar3 == ',') {\n      uVar4 = param_1 + 1;\n      if (uVar4 < uVar1) {\n        cVar3 = *(char *)(iVar2 + 1 + param_1);\n        if (cVar3 != ' ') goto LAB_000359e0;\n        do {\n          do {\n            uVar4 = uVar4 + 1;\n            if (uVar1 <= uVar4) {\n              return uVar4;\n            }\n            cVar3 = *(char *)(iVar2 + uVar4);\n          } while (cVar3 == ' ');\nLAB_000359e0:\n        } while (cVar3 == '\t');\n      }\n      return uVar4;\n    }\n  }" if (parenthesized_expression "(param_1 < uVar1)" ( (binary_expression "param_1 < uVar1" identifier < identifier) )) (compound_statement "{\n    iVar2 = *param_2;\n    cVar3 = *(char *)(iVar2 + param_1);\n    if ((cVar3 == '\t') || (cVar3 == ' ')) {\n      do {\n        param_1 = param_1 + 1;\n        if (param_1 == uVar1) {\n          return param_1;\n        }\n        cVar3 = *(char *)(iVar2 + param_1);\n      } while ((cVar3 == ' ') || (cVar3 == '\t'));\n    }\n    if (cVar3 == ',') {\n      uVar4 = param_1 + 1;\n      if (uVar4 < uVar1) {\n        cVar3 = *(char *)(iVar2 + 1 + param_1);\n        if (cVar3 != ' ') goto LAB_000359e0;\n        do {\n          do {\n            uVar4 = uVar4 + 1;\n            if (uVar1 <= uVar4) {\n              return uVar4;\n            }\n            cVar3 = *(char *)(iVar2 + uVar4);\n          } while (cVar3 == ' ');\nLAB_000359e0:\n        } while (cVar3 == '\t');\n      }\n      return uVar4;\n    }\n  }" { (expression_statement "iVar2 = *param_2;" (assignment_expression "iVar2 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;) (expression_statement "cVar3 = *(char *)(iVar2 + param_1);" (assignment_expression "cVar3 = *(char *)(iVar2 + param_1)" identifier = (pointer_expression "*(char *)(iVar2 + param_1)" * (cast_expression "(char *)(iVar2 + param_1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + param_1)" ( (binary_expression "iVar2 + param_1" identifier + identifier) ))))) ;) (if_statement "if ((cVar3 == '\t') || (cVar3 == ' ')) {\n      do {\n        param_1 = param_1 + 1;\n        if (param_1 == uVar1) {\n          return param_1;\n        }\n        cVar3 = *(char *)(iVar2 + param_1);\n      } while ((cVar3 == ' ') || (cVar3 == '\t'));\n    }" if (parenthesized_expression "((cVar3 == '\t') || (cVar3 == ' '))" ( (binary_expression "(cVar3 == '\t') || (cVar3 == ' ')" (parenthesized_expression "(cVar3 == '\t')" ( (binary_expression "cVar3 == '\t'" identifier == (char_literal "'\t'" ' escape_sequence ')) )) || (parenthesized_expression "(cVar3 == ' ')" ( (binary_expression "cVar3 == ' '" identifier == (char_literal "' '" ' character ')) ))) )) (compound_statement "{\n      do {\n        param_1 = param_1 + 1;\n        if (param_1 == uVar1) {\n          return param_1;\n        }\n        cVar3 = *(char *)(iVar2 + param_1);\n      } while ((cVar3 == ' ') || (cVar3 == '\t'));\n    }" { (do_statement "do {\n        param_1 = param_1 + 1;\n        if (param_1 == uVar1) {\n          return param_1;\n        }\n        cVar3 = *(char *)(iVar2 + param_1);\n      } while ((cVar3 == ' ') || (cVar3 == '\t'));" do (compound_statement "{\n        param_1 = param_1 + 1;\n        if (param_1 == uVar1) {\n          return param_1;\n        }\n        cVar3 = *(char *)(iVar2 + param_1);\n      }" { (expression_statement "param_1 = param_1 + 1;" (assignment_expression "param_1 = param_1 + 1" identifier = (binary_expression "param_1 + 1" identifier + number_literal)) ;) (if_statement "if (param_1 == uVar1) {\n          return param_1;\n        }" if (parenthesized_expression "(param_1 == uVar1)" ( (binary_expression "param_1 == uVar1" identifier == identifier) )) (compound_statement "{\n          return param_1;\n        }" { (return_statement "return param_1;" return identifier ;) })) (expression_statement "cVar3 = *(char *)(iVar2 + param_1);" (assignment_expression "cVar3 = *(char *)(iVar2 + param_1)" identifier = (pointer_expression "*(char *)(iVar2 + param_1)" * (cast_expression "(char *)(iVar2 + param_1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + param_1)" ( (binary_expression "iVar2 + param_1" identifier + identifier) ))))) ;) }) while (parenthesized_expression "((cVar3 == ' ') || (cVar3 == '\t'))" ( (binary_expression "(cVar3 == ' ') || (cVar3 == '\t')" (parenthesized_expression "(cVar3 == ' ')" ( (binary_expression "cVar3 == ' '" identifier == (char_literal "' '" ' character ')) )) || (parenthesized_expression "(cVar3 == '\t')" ( (binary_expression "cVar3 == '\t'" identifier == (char_literal "'\t'" ' escape_sequence ')) ))) )) ;) })) (if_statement "if (cVar3 == ',') {\n      uVar4 = param_1 + 1;\n      if (uVar4 < uVar1) {\n        cVar3 = *(char *)(iVar2 + 1 + param_1);\n        if (cVar3 != ' ') goto LAB_000359e0;\n        do {\n          do {\n            uVar4 = uVar4 + 1;\n            if (uVar1 <= uVar4) {\n              return uVar4;\n            }\n            cVar3 = *(char *)(iVar2 + uVar4);\n          } while (cVar3 == ' ');\nLAB_000359e0:\n        } while (cVar3 == '\t');\n      }\n      return uVar4;\n    }" if (parenthesized_expression "(cVar3 == ',')" ( (binary_expression "cVar3 == ','" identifier == (char_literal "','" ' character ')) )) (compound_statement "{\n      uVar4 = param_1 + 1;\n      if (uVar4 < uVar1) {\n        cVar3 = *(char *)(iVar2 + 1 + param_1);\n        if (cVar3 != ' ') goto LAB_000359e0;\n        do {\n          do {\n            uVar4 = uVar4 + 1;\n            if (uVar1 <= uVar4) {\n              return uVar4;\n            }\n            cVar3 = *(char *)(iVar2 + uVar4);\n          } while (cVar3 == ' ');\nLAB_000359e0:\n        } while (cVar3 == '\t');\n      }\n      return uVar4;\n    }" { (expression_statement "uVar4 = param_1 + 1;" (assignment_expression "uVar4 = param_1 + 1" identifier = (binary_expression "param_1 + 1" identifier + number_literal)) ;) (if_statement "if (uVar4 < uVar1) {\n        cVar3 = *(char *)(iVar2 + 1 + param_1);\n        if (cVar3 != ' ') goto LAB_000359e0;\n        do {\n          do {\n            uVar4 = uVar4 + 1;\n            if (uVar1 <= uVar4) {\n              return uVar4;\n            }\n            cVar3 = *(char *)(iVar2 + uVar4);\n          } while (cVar3 == ' ');\nLAB_000359e0:\n        } while (cVar3 == '\t');\n      }" if (parenthesized_expression "(uVar4 < uVar1)" ( (binary_expression "uVar4 < uVar1" identifier < identifier) )) (compound_statement "{\n        cVar3 = *(char *)(iVar2 + 1 + param_1);\n        if (cVar3 != ' ') goto LAB_000359e0;\n        do {\n          do {\n            uVar4 = uVar4 + 1;\n            if (uVar1 <= uVar4) {\n              return uVar4;\n            }\n            cVar3 = *(char *)(iVar2 + uVar4);\n          } while (cVar3 == ' ');\nLAB_000359e0:\n        } while (cVar3 == '\t');\n      }" { (expression_statement "cVar3 = *(char *)(iVar2 + 1 + param_1);" (assignment_expression "cVar3 = *(char *)(iVar2 + 1 + param_1)" identifier = (pointer_expression "*(char *)(iVar2 + 1 + param_1)" * (cast_expression "(char *)(iVar2 + 1 + param_1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 1 + param_1)" ( (binary_expression "iVar2 + 1 + param_1" (binary_expression "iVar2 + 1" identifier + number_literal) + identifier) ))))) ;) (if_statement "if (cVar3 != ' ') goto LAB_000359e0;" if (parenthesized_expression "(cVar3 != ' ')" ( (binary_expression "cVar3 != ' '" identifier != (char_literal "' '" ' character ')) )) (goto_statement "goto LAB_000359e0;" goto statement_identifier ;)) (do_statement "do {\n          do {\n            uVar4 = uVar4 + 1;\n            if (uVar1 <= uVar4) {\n              return uVar4;\n            }\n            cVar3 = *(char *)(iVar2 + uVar4);\n          } while (cVar3 == ' ');\nLAB_000359e0:\n        } while (cVar3 == '\t');" do (compound_statement "{\n          do {\n            uVar4 = uVar4 + 1;\n            if (uVar1 <= uVar4) {\n              return uVar4;\n            }\n            cVar3 = *(char *)(iVar2 + uVar4);\n          } while (cVar3 == ' ');\nLAB_000359e0:\n        }" { (do_statement "do {\n            uVar4 = uVar4 + 1;\n            if (uVar1 <= uVar4) {\n              return uVar4;\n            }\n            cVar3 = *(char *)(iVar2 + uVar4);\n          } while (cVar3 == ' ');" do (compound_statement "{\n            uVar4 = uVar4 + 1;\n            if (uVar1 <= uVar4) {\n              return uVar4;\n            }\n            cVar3 = *(char *)(iVar2 + uVar4);\n          }" { (expression_statement "uVar4 = uVar4 + 1;" (assignment_expression "uVar4 = uVar4 + 1" identifier = (binary_expression "uVar4 + 1" identifier + number_literal)) ;) (if_statement "if (uVar1 <= uVar4) {\n              return uVar4;\n            }" if (parenthesized_expression "(uVar1 <= uVar4)" ( (binary_expression "uVar1 <= uVar4" identifier <= identifier) )) (compound_statement "{\n              return uVar4;\n            }" { (return_statement "return uVar4;" return identifier ;) })) (expression_statement "cVar3 = *(char *)(iVar2 + uVar4);" (assignment_expression "cVar3 = *(char *)(iVar2 + uVar4)" identifier = (pointer_expression "*(char *)(iVar2 + uVar4)" * (cast_expression "(char *)(iVar2 + uVar4)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + uVar4)" ( (binary_expression "iVar2 + uVar4" identifier + identifier) ))))) ;) }) while (parenthesized_expression "(cVar3 == ' ')" ( (binary_expression "cVar3 == ' '" identifier == (char_literal "' '" ' character ')) )) ;) (labeled_statement "LAB_000359e0:" statement_identifier : (expression_statement "" ;)) }) while (parenthesized_expression "(cVar3 == '\t')" ( (binary_expression "cVar3 == '\t'" identifier == (char_literal "'\t'" ' escape_sequence ')) )) ;) })) (return_statement "return uVar4;" return identifier ;) })) })) (return_statement "return param_1;" return identifier ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) || (parenthesized_expression ( (binary_expression IDENT == (char_literal ' character ')) ))) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) ))))) ;) }) while (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (char_literal ' character ')) )) || (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) ))) )) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' character ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) + IDENT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' character ')) )) (goto_statement goto statement_identifier ;)) (do_statement do (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) ))))) ;) }) while (parenthesized_expression ( (binary_expression IDENT == (char_literal ' character ')) )) ;) (labeled_statement statement_identifier : (expression_statement ;)) }) while (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) ;) })) (return_statement return IDENT ;) })) })) (return_statement return IDENT ;) })))
(function_definition "uint FUN_00035980(uint param_1,int *param_2)\n\n{\n  uint uVar1;\n  int iVar2;\n  char cVar3;\n  uint uVar4;\n  \n  uVar1 = param_2[1];\n  if (param_1 < uVar1) {\n    iVar2 = *param_2;\n    cVar3 = *(char *)(iVar2 + param_1);\n    if ((cVar3 == '\t') || (cVar3 == ' ')) {\n      do {\n        param_1 = param_1 + 1;\n        if (param_1 == uVar1) {\n          return param_1;\n        }\n        cVar3 = *(char *)(iVar2 + param_1);\n      } while ((cVar3 == ' ') || (cVar3 == '\t'));\n    }\n    if (cVar3 == ',') {\n      uVar4 = param_1 + 1;\n      if (uVar4 < uVar1) {\n        cVar3 = *(char *)(iVar2 + 1 + param_1);\n        if (cVar3 != ' ') goto LAB_000359e0;\n        do {\n          do {\n            uVar4 = uVar4 + 1;\n            if (uVar1 <= uVar4) {\n              return uVar4;\n            }\n            cVar3 = *(char *)(iVar2 + uVar4);\n          } while (cVar3 == ' ');\nLAB_000359e0:\n        } while (cVar3 == '\t');\n      }\n      return uVar4;\n    }\n  }\n  return param_1;\n}" (type_identifier "uint") (function_declarator "FUN_00035980(uint param_1,int *param_2)" (identifier "FUN_00035980") (parameter_list "(uint param_1,int *param_2)" (( "(") (parameter_declaration "uint param_1" (type_identifier "uint") (identifier "param_1")) (, ",") (parameter_declaration "int *param_2" (primitive_type "int") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) () ")"))) (compound_statement "{\n  uint uVar1;\n  int iVar2;\n  char cVar3;\n  uint uVar4;\n  \n  uVar1 = param_2[1];\n  if (param_1 < uVar1) {\n    iVar2 = *param_2;\n    cVar3 = *(char *)(iVar2 + param_1);\n    if ((cVar3 == '\t') || (cVar3 == ' ')) {\n      do {\n        param_1 = param_1 + 1;\n        if (param_1 == uVar1) {\n          return param_1;\n        }\n        cVar3 = *(char *)(iVar2 + param_1);\n      } while ((cVar3 == ' ') || (cVar3 == '\t'));\n    }\n    if (cVar3 == ',') {\n      uVar4 = param_1 + 1;\n      if (uVar4 < uVar1) {\n        cVar3 = *(char *)(iVar2 + 1 + param_1);\n        if (cVar3 != ' ') goto LAB_000359e0;\n        do {\n          do {\n            uVar4 = uVar4 + 1;\n            if (uVar1 <= uVar4) {\n              return uVar4;\n            }\n            cVar3 = *(char *)(iVar2 + uVar4);\n          } while (cVar3 == ' ');\nLAB_000359e0:\n        } while (cVar3 == '\t');\n      }\n      return uVar4;\n    }\n  }\n  return param_1;\n}" ({ "{") (declaration "uint uVar1;" (type_identifier "uint") (identifier "uVar1") (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (declaration "char cVar3;" (primitive_type "char") (identifier "cVar3") (; ";")) (declaration "uint uVar4;" (type_identifier "uint") (identifier "uVar4") (; ";")) (expression_statement "uVar1 = param_2[1];" (assignment_expression "uVar1 = param_2[1]" (identifier "uVar1") (= "=") (subscript_expression "param_2[1]" (identifier "param_2") ([ "[") (number_literal "1") (] "]"))) (; ";")) (if_statement "if (param_1 < uVar1) {\n    iVar2 = *param_2;\n    cVar3 = *(char *)(iVar2 + param_1);\n    if ((cVar3 == '\t') || (cVar3 == ' ')) {\n      do {\n        param_1 = param_1 + 1;\n        if (param_1 == uVar1) {\n          return param_1;\n        }\n        cVar3 = *(char *)(iVar2 + param_1);\n      } while ((cVar3 == ' ') || (cVar3 == '\t'));\n    }\n    if (cVar3 == ',') {\n      uVar4 = param_1 + 1;\n      if (uVar4 < uVar1) {\n        cVar3 = *(char *)(iVar2 + 1 + param_1);\n        if (cVar3 != ' ') goto LAB_000359e0;\n        do {\n          do {\n            uVar4 = uVar4 + 1;\n            if (uVar1 <= uVar4) {\n              return uVar4;\n            }\n            cVar3 = *(char *)(iVar2 + uVar4);\n          } while (cVar3 == ' ');\nLAB_000359e0:\n        } while (cVar3 == '\t');\n      }\n      return uVar4;\n    }\n  }" (if "if") (parenthesized_expression "(param_1 < uVar1)" (( "(") (binary_expression "param_1 < uVar1" (identifier "param_1") (< "<") (identifier "uVar1")) () ")")) (compound_statement "{\n    iVar2 = *param_2;\n    cVar3 = *(char *)(iVar2 + param_1);\n    if ((cVar3 == '\t') || (cVar3 == ' ')) {\n      do {\n        param_1 = param_1 + 1;\n        if (param_1 == uVar1) {\n          return param_1;\n        }\n        cVar3 = *(char *)(iVar2 + param_1);\n      } while ((cVar3 == ' ') || (cVar3 == '\t'));\n    }\n    if (cVar3 == ',') {\n      uVar4 = param_1 + 1;\n      if (uVar4 < uVar1) {\n        cVar3 = *(char *)(iVar2 + 1 + param_1);\n        if (cVar3 != ' ') goto LAB_000359e0;\n        do {\n          do {\n            uVar4 = uVar4 + 1;\n            if (uVar1 <= uVar4) {\n              return uVar4;\n            }\n            cVar3 = *(char *)(iVar2 + uVar4);\n          } while (cVar3 == ' ');\nLAB_000359e0:\n        } while (cVar3 == '\t');\n      }\n      return uVar4;\n    }\n  }" ({ "{") (expression_statement "iVar2 = *param_2;" (assignment_expression "iVar2 = *param_2" (identifier "iVar2") (= "=") (pointer_expression "*param_2" (* "*") (identifier "param_2"))) (; ";")) (expression_statement "cVar3 = *(char *)(iVar2 + param_1);" (assignment_expression "cVar3 = *(char *)(iVar2 + param_1)" (identifier "cVar3") (= "=") (pointer_expression "*(char *)(iVar2 + param_1)" (* "*") (cast_expression "(char *)(iVar2 + param_1)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + param_1)" (( "(") (binary_expression "iVar2 + param_1" (identifier "iVar2") (+ "+") (identifier "param_1")) () ")"))))) (; ";")) (if_statement "if ((cVar3 == '\t') || (cVar3 == ' ')) {\n      do {\n        param_1 = param_1 + 1;\n        if (param_1 == uVar1) {\n          return param_1;\n        }\n        cVar3 = *(char *)(iVar2 + param_1);\n      } while ((cVar3 == ' ') || (cVar3 == '\t'));\n    }" (if "if") (parenthesized_expression "((cVar3 == '\t') || (cVar3 == ' '))" (( "(") (binary_expression "(cVar3 == '\t') || (cVar3 == ' ')" (parenthesized_expression "(cVar3 == '\t')" (( "(") (binary_expression "cVar3 == '\t'" (identifier "cVar3") (== "==") (char_literal "'\t'" (' "'") (escape_sequence "\t") (' "'"))) () ")")) (|| "||") (parenthesized_expression "(cVar3 == ' ')" (( "(") (binary_expression "cVar3 == ' '" (identifier "cVar3") (== "==") (char_literal "' '" (' "'") (character " ") (' "'"))) () ")"))) () ")")) (compound_statement "{\n      do {\n        param_1 = param_1 + 1;\n        if (param_1 == uVar1) {\n          return param_1;\n        }\n        cVar3 = *(char *)(iVar2 + param_1);\n      } while ((cVar3 == ' ') || (cVar3 == '\t'));\n    }" ({ "{") (do_statement "do {\n        param_1 = param_1 + 1;\n        if (param_1 == uVar1) {\n          return param_1;\n        }\n        cVar3 = *(char *)(iVar2 + param_1);\n      } while ((cVar3 == ' ') || (cVar3 == '\t'));" (do "do") (compound_statement "{\n        param_1 = param_1 + 1;\n        if (param_1 == uVar1) {\n          return param_1;\n        }\n        cVar3 = *(char *)(iVar2 + param_1);\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"))) (; ";")) (if_statement "if (param_1 == uVar1) {\n          return param_1;\n        }" (if "if") (parenthesized_expression "(param_1 == uVar1)" (( "(") (binary_expression "param_1 == uVar1" (identifier "param_1") (== "==") (identifier "uVar1")) () ")")) (compound_statement "{\n          return param_1;\n        }" ({ "{") (return_statement "return param_1;" (return "return") (identifier "param_1") (; ";")) (} "}"))) (expression_statement "cVar3 = *(char *)(iVar2 + param_1);" (assignment_expression "cVar3 = *(char *)(iVar2 + param_1)" (identifier "cVar3") (= "=") (pointer_expression "*(char *)(iVar2 + param_1)" (* "*") (cast_expression "(char *)(iVar2 + param_1)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + param_1)" (( "(") (binary_expression "iVar2 + param_1" (identifier "iVar2") (+ "+") (identifier "param_1")) () ")"))))) (; ";")) (} "}")) (while "while") (parenthesized_expression "((cVar3 == ' ') || (cVar3 == '\t'))" (( "(") (binary_expression "(cVar3 == ' ') || (cVar3 == '\t')" (parenthesized_expression "(cVar3 == ' ')" (( "(") (binary_expression "cVar3 == ' '" (identifier "cVar3") (== "==") (char_literal "' '" (' "'") (character " ") (' "'"))) () ")")) (|| "||") (parenthesized_expression "(cVar3 == '\t')" (( "(") (binary_expression "cVar3 == '\t'" (identifier "cVar3") (== "==") (char_literal "'\t'" (' "'") (escape_sequence "\t") (' "'"))) () ")"))) () ")")) (; ";")) (} "}"))) (if_statement "if (cVar3 == ',') {\n      uVar4 = param_1 + 1;\n      if (uVar4 < uVar1) {\n        cVar3 = *(char *)(iVar2 + 1 + param_1);\n        if (cVar3 != ' ') goto LAB_000359e0;\n        do {\n          do {\n            uVar4 = uVar4 + 1;\n            if (uVar1 <= uVar4) {\n              return uVar4;\n            }\n            cVar3 = *(char *)(iVar2 + uVar4);\n          } while (cVar3 == ' ');\nLAB_000359e0:\n        } while (cVar3 == '\t');\n      }\n      return uVar4;\n    }" (if "if") (parenthesized_expression "(cVar3 == ',')" (( "(") (binary_expression "cVar3 == ','" (identifier "cVar3") (== "==") (char_literal "','" (' "'") (character ",") (' "'"))) () ")")) (compound_statement "{\n      uVar4 = param_1 + 1;\n      if (uVar4 < uVar1) {\n        cVar3 = *(char *)(iVar2 + 1 + param_1);\n        if (cVar3 != ' ') goto LAB_000359e0;\n        do {\n          do {\n            uVar4 = uVar4 + 1;\n            if (uVar1 <= uVar4) {\n              return uVar4;\n            }\n            cVar3 = *(char *)(iVar2 + uVar4);\n          } while (cVar3 == ' ');\nLAB_000359e0:\n        } while (cVar3 == '\t');\n      }\n      return uVar4;\n    }" ({ "{") (expression_statement "uVar4 = param_1 + 1;" (assignment_expression "uVar4 = param_1 + 1" (identifier "uVar4") (= "=") (binary_expression "param_1 + 1" (identifier "param_1") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (uVar4 < uVar1) {\n        cVar3 = *(char *)(iVar2 + 1 + param_1);\n        if (cVar3 != ' ') goto LAB_000359e0;\n        do {\n          do {\n            uVar4 = uVar4 + 1;\n            if (uVar1 <= uVar4) {\n              return uVar4;\n            }\n            cVar3 = *(char *)(iVar2 + uVar4);\n          } while (cVar3 == ' ');\nLAB_000359e0:\n        } while (cVar3 == '\t');\n      }" (if "if") (parenthesized_expression "(uVar4 < uVar1)" (( "(") (binary_expression "uVar4 < uVar1" (identifier "uVar4") (< "<") (identifier "uVar1")) () ")")) (compound_statement "{\n        cVar3 = *(char *)(iVar2 + 1 + param_1);\n        if (cVar3 != ' ') goto LAB_000359e0;\n        do {\n          do {\n            uVar4 = uVar4 + 1;\n            if (uVar1 <= uVar4) {\n              return uVar4;\n            }\n            cVar3 = *(char *)(iVar2 + uVar4);\n          } while (cVar3 == ' ');\nLAB_000359e0:\n        } while (cVar3 == '\t');\n      }" ({ "{") (expression_statement "cVar3 = *(char *)(iVar2 + 1 + param_1);" (assignment_expression "cVar3 = *(char *)(iVar2 + 1 + param_1)" (identifier "cVar3") (= "=") (pointer_expression "*(char *)(iVar2 + 1 + param_1)" (* "*") (cast_expression "(char *)(iVar2 + 1 + param_1)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 1 + param_1)" (( "(") (binary_expression "iVar2 + 1 + param_1" (binary_expression "iVar2 + 1" (identifier "iVar2") (+ "+") (number_literal "1")) (+ "+") (identifier "param_1")) () ")"))))) (; ";")) (if_statement "if (cVar3 != ' ') goto LAB_000359e0;" (if "if") (parenthesized_expression "(cVar3 != ' ')" (( "(") (binary_expression "cVar3 != ' '" (identifier "cVar3") (!= "!=") (char_literal "' '" (' "'") (character " ") (' "'"))) () ")")) (goto_statement "goto LAB_000359e0;" (goto "goto") (statement_identifier "LAB_000359e0") (; ";"))) (do_statement "do {\n          do {\n            uVar4 = uVar4 + 1;\n            if (uVar1 <= uVar4) {\n              return uVar4;\n            }\n            cVar3 = *(char *)(iVar2 + uVar4);\n          } while (cVar3 == ' ');\nLAB_000359e0:\n        } while (cVar3 == '\t');" (do "do") (compound_statement "{\n          do {\n            uVar4 = uVar4 + 1;\n            if (uVar1 <= uVar4) {\n              return uVar4;\n            }\n            cVar3 = *(char *)(iVar2 + uVar4);\n          } while (cVar3 == ' ');\nLAB_000359e0:\n        }" ({ "{") (do_statement "do {\n            uVar4 = uVar4 + 1;\n            if (uVar1 <= uVar4) {\n              return uVar4;\n            }\n            cVar3 = *(char *)(iVar2 + uVar4);\n          } while (cVar3 == ' ');" (do "do") (compound_statement "{\n            uVar4 = uVar4 + 1;\n            if (uVar1 <= uVar4) {\n              return uVar4;\n            }\n            cVar3 = *(char *)(iVar2 + uVar4);\n          }" ({ "{") (expression_statement "uVar4 = uVar4 + 1;" (assignment_expression "uVar4 = uVar4 + 1" (identifier "uVar4") (= "=") (binary_expression "uVar4 + 1" (identifier "uVar4") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (uVar1 <= uVar4) {\n              return uVar4;\n            }" (if "if") (parenthesized_expression "(uVar1 <= uVar4)" (( "(") (binary_expression "uVar1 <= uVar4" (identifier "uVar1") (<= "<=") (identifier "uVar4")) () ")")) (compound_statement "{\n              return uVar4;\n            }" ({ "{") (return_statement "return uVar4;" (return "return") (identifier "uVar4") (; ";")) (} "}"))) (expression_statement "cVar3 = *(char *)(iVar2 + uVar4);" (assignment_expression "cVar3 = *(char *)(iVar2 + uVar4)" (identifier "cVar3") (= "=") (pointer_expression "*(char *)(iVar2 + uVar4)" (* "*") (cast_expression "(char *)(iVar2 + uVar4)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + uVar4)" (( "(") (binary_expression "iVar2 + uVar4" (identifier "iVar2") (+ "+") (identifier "uVar4")) () ")"))))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(cVar3 == ' ')" (( "(") (binary_expression "cVar3 == ' '" (identifier "cVar3") (== "==") (char_literal "' '" (' "'") (character " ") (' "'"))) () ")")) (; ";")) (labeled_statement "LAB_000359e0:" (statement_identifier "LAB_000359e0") (: ":") (expression_statement "" (; ""))) (} "}")) (while "while") (parenthesized_expression "(cVar3 == '\t')" (( "(") (binary_expression "cVar3 == '\t'" (identifier "cVar3") (== "==") (char_literal "'\t'" (' "'") (escape_sequence "\t") (' "'"))) () ")")) (; ";")) (} "}"))) (return_statement "return uVar4;" (return "return") (identifier "uVar4") (; ";")) (} "}"))) (} "}"))) (return_statement "return param_1;" (return "return") (identifier "param_1") (; ";")) (} "}")))

size_t function_1(size_t var_1,type_1 *ptr)

{
  type_2 var_2;
  char *pcVar2;
  char var_3;
  type_2 var_4;
  
  var_2 = ptr->len;
  if (var_1 < var_2) {
    pcVar2 = ptr->ptr;
    var_3 = pcVar2[var_1];
    if ((var_3 == '\t') || (var_3 == ' ')) {
      do {
        var_1 = var_1 + 1;
        if (var_1 == var_2) {
          return var_1;
        }
        var_3 = pcVar2[var_1];
      } while ((var_3 == ' ') || (var_3 == '\t'));
    }
    if (var_3 == ',') {
      var_4 = var_1 + 1;
      if (var_4 < var_2) {
        var_3 = pcVar2[var_1 + 1];
        if (var_3 != ' ') goto LAB_000359e0;
        do {
          do {
            var_4 = var_4 + 1;
            if (var_2 <= var_4) {
              return var_4;
            }
            var_3 = pcVar2[var_4];
          } while (var_3 == ' ');
LAB_000359e0:
        } while (var_3 == '\t');
      }
      return var_4;
    }
  }
  return var_1;
}


(translation_unit (function_definition type: (type_identifier) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))))) body: (compound_statement (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))) right: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (character)))))) consequence: (compound_statement (do_statement body: (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: (identifier))) consequence: (compound_statement (return_statement (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))))))) condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (character)))) right: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (character)))) consequence: (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: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (identifier))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (character)))) consequence: (goto_statement label: (statement_identifier))) (do_statement body: (compound_statement (do_statement body: (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: (identifier))) consequence: (compound_statement (return_statement (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (character))))) (labeled_statement label: (statement_identifier) (expression_statement (MISSING ";")))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence))))))) (return_statement (identifier)))))) (return_statement (identifier)))))

uint MASKED(uint param_1,int *param_2)

{
  uint uVar1;
  int iVar2;
  char cVar3;
  uint uVar4;
  
  uVar1 = param_2[1];
  if (param_1 < uVar1) {
    iVar2 = *param_2;
    cVar3 = *(char *)(iVar2 + param_1);
    if ((cVar3 == '\t') || (cVar3 == ' ')) {
      do {
        param_1 = param_1 + 1;
        if (param_1 == uVar1) {
          return param_1;
        }
        cVar3 = *(char *)(iVar2 + param_1);
      } while ((cVar3 == ' ') || (cVar3 == '\t'));
    }
    if (cVar3 == ',') {
      uVar4 = param_1 + 1;
      if (uVar4 < uVar1) {
        cVar3 = *(char *)(iVar2 + 1 + param_1);
        if (cVar3 != ' ') goto LAB_000359e0;
        do {
          do {
            uVar4 = uVar4 + 1;
            if (uVar1 <= uVar4) {
              return uVar4;
            }
            cVar3 = *(char *)(iVar2 + uVar4);
          } while (cVar3 == ' ');
LAB_000359e0:
        } while (cVar3 == '\t');
      }
      return uVar4;
    }
  }
  return param_1;
}

