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

int __regparm3 parse_ext_names(char *names,char **result)

{
  char *p;
  size_t sVar1;
  char *pcVar2;
  char *pcVar3;
  int iVar4;
  char *pcVar5;
  char *pcVar6;
  
  sVar1 = strlen(names);
  iVar4 = 0;
  pcVar2 = names;
  pcVar5 = names;
  do {
    pcVar3 = pcVar2 + 1;
    if (((*pcVar2 == ',') || (pcVar6 = pcVar5, *pcVar2 == '\0')) &&
       (pcVar6 = pcVar3, pcVar5 != pcVar2)) {
      if (result != (char **)0x0) {
        result[iVar4] = pcVar5;
        *pcVar2 = '\0';
      }
      iVar4 = iVar4 + 1;
    }
    pcVar2 = pcVar3;
    pcVar5 = pcVar6;
  } while ((int)pcVar3 - (int)names <= (int)sVar1);
  return iVar4;
}



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

int __regparm3 FUN_0006f5a0(char *param_1,int param_2)

{
  size_t sVar1;
  char *pcVar2;
  char *pcVar3;
  int iVar4;
  char *pcVar5;
  char *pcVar6;
  
  sVar1 = strlen(param_1);
  iVar4 = 0;
  pcVar2 = param_1;
  pcVar5 = param_1;
  do {
    pcVar3 = pcVar2 + 1;
    if (((*pcVar2 == ',') || (pcVar6 = pcVar5, *pcVar2 == '\0')) &&
       (pcVar6 = pcVar3, pcVar5 != pcVar2)) {
      if (param_2 != 0) {
        *(char **)(param_2 + iVar4 * 4) = pcVar5;
        *pcVar2 = '\0';
      }
      iVar4 = iVar4 + 1;
    }
    pcVar2 = pcVar3;
    pcVar5 = pcVar6;
  } while ((int)pcVar3 - (int)param_1 <= (int)sVar1);
  return iVar4;
}


PUSH EBP
MOV EBP,EDX
PUSH EDI
MOV EDI,EAX
PUSH ESI
MOV ESI,EDI
PUSH EBX
CALL 0x0002c7d0
ADD EBX,0x4d4c9
SUB ESP,0x18
PUSH EAX
CALL 0x000296b0
ADD ESP,0x10
MOV ECX,EDI
XOR EDX,EDX
LEA ESI,[ESI]
MOVZX EBX,byte ptr [ECX]
ADD ECX,0x1
CMP BL,0x2c
JZ 0x0006f5d7
TEST BL,BL
JNZ 0x0006f5ef
LEA EBX,[ECX + -0x1]
CMP ESI,EBX
JZ 0x0006f5ed
TEST EBP,EBP
JZ 0x0006f5ea
MOV dword ptr [EBP + EDX*0x4],ESI
MOV byte ptr [ECX + -0x1],0x0
ADD EDX,0x1
MOV ESI,ECX
MOV EBX,ECX
SUB EBX,EDI
CMP EBX,EAX
JLE 0x0006f5c8
ADD ESP,0xc
MOV EAX,EDX
POP EBX
POP ESI
POP EDI
POP EBP
RET
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nint __regparm3 FUN_0006f5a0(char *param_1,int param_2)\n\n{\n  size_t sVar1;\n  char *pcVar2;\n  char *pcVar3;\n  int iVar4;\n  char *pcVar5;\n  char *pcVar6;\n  \n  sVar1 = strlen(param_1);\n  iVar4 = 0;\n  pcVar2 = param_1;\n  pcVar5 = param_1;\n  do {\n    pcVar3 = pcVar2 + 1;\n    if (((*pcVar2 == ',') || (pcVar6 = pcVar5, *pcVar2 == '\0')) &&\n       (pcVar6 = pcVar3, pcVar5 != pcVar2)) {\n      if (param_2 != 0) {\n        *(char **)(param_2 + iVar4 * 4) = pcVar5;\n        *pcVar2 = '\0';\n      }\n      iVar4 = iVar4 + 1;\n    }\n    pcVar2 = pcVar3;\n    pcVar5 = pcVar6;\n  } while ((int)pcVar3 - (int)param_1 <= (int)sVar1);\n  return iVar4;\n}\n\n" comment (function_definition "int __regparm3 FUN_0006f5a0(char *param_1,int param_2)\n\n{\n  size_t sVar1;\n  char *pcVar2;\n  char *pcVar3;\n  int iVar4;\n  char *pcVar5;\n  char *pcVar6;\n  \n  sVar1 = strlen(param_1);\n  iVar4 = 0;\n  pcVar2 = param_1;\n  pcVar5 = param_1;\n  do {\n    pcVar3 = pcVar2 + 1;\n    if (((*pcVar2 == ',') || (pcVar6 = pcVar5, *pcVar2 == '\0')) &&\n       (pcVar6 = pcVar3, pcVar5 != pcVar2)) {\n      if (param_2 != 0) {\n        *(char **)(param_2 + iVar4 * 4) = pcVar5;\n        *pcVar2 = '\0';\n      }\n      iVar4 = iVar4 + 1;\n    }\n    pcVar2 = pcVar3;\n    pcVar5 = pcVar6;\n  } while ((int)pcVar3 - (int)param_1 <= (int)sVar1);\n  return iVar4;\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "FUN_0006f5a0(char *param_1,int param_2)" identifier (parameter_list "(char *param_1,int param_2)" ( (parameter_declaration "char *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "int param_2" primitive_type identifier) ))) (compound_statement "{\n  size_t sVar1;\n  char *pcVar2;\n  char *pcVar3;\n  int iVar4;\n  char *pcVar5;\n  char *pcVar6;\n  \n  sVar1 = strlen(param_1);\n  iVar4 = 0;\n  pcVar2 = param_1;\n  pcVar5 = param_1;\n  do {\n    pcVar3 = pcVar2 + 1;\n    if (((*pcVar2 == ',') || (pcVar6 = pcVar5, *pcVar2 == '\0')) &&\n       (pcVar6 = pcVar3, pcVar5 != pcVar2)) {\n      if (param_2 != 0) {\n        *(char **)(param_2 + iVar4 * 4) = pcVar5;\n        *pcVar2 = '\0';\n      }\n      iVar4 = iVar4 + 1;\n    }\n    pcVar2 = pcVar3;\n    pcVar5 = pcVar6;\n  } while ((int)pcVar3 - (int)param_1 <= (int)sVar1);\n  return iVar4;\n}" { (declaration "size_t sVar1;" primitive_type identifier ;) (declaration "char *pcVar2;" primitive_type (pointer_declarator "*pcVar2" * identifier) ;) (declaration "char *pcVar3;" primitive_type (pointer_declarator "*pcVar3" * identifier) ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "char *pcVar5;" primitive_type (pointer_declarator "*pcVar5" * identifier) ;) (declaration "char *pcVar6;" primitive_type (pointer_declarator "*pcVar6" * identifier) ;) (expression_statement "sVar1 = strlen(param_1);" (assignment_expression "sVar1 = strlen(param_1)" identifier = (call_expression "strlen(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) (expression_statement "iVar4 = 0;" (assignment_expression "iVar4 = 0" identifier = number_literal) ;) (expression_statement "pcVar2 = param_1;" (assignment_expression "pcVar2 = param_1" identifier = identifier) ;) (expression_statement "pcVar5 = param_1;" (assignment_expression "pcVar5 = param_1" identifier = identifier) ;) (do_statement "do {\n    pcVar3 = pcVar2 + 1;\n    if (((*pcVar2 == ',') || (pcVar6 = pcVar5, *pcVar2 == '\0')) &&\n       (pcVar6 = pcVar3, pcVar5 != pcVar2)) {\n      if (param_2 != 0) {\n        *(char **)(param_2 + iVar4 * 4) = pcVar5;\n        *pcVar2 = '\0';\n      }\n      iVar4 = iVar4 + 1;\n    }\n    pcVar2 = pcVar3;\n    pcVar5 = pcVar6;\n  } while ((int)pcVar3 - (int)param_1 <= (int)sVar1);" do (compound_statement "{\n    pcVar3 = pcVar2 + 1;\n    if (((*pcVar2 == ',') || (pcVar6 = pcVar5, *pcVar2 == '\0')) &&\n       (pcVar6 = pcVar3, pcVar5 != pcVar2)) {\n      if (param_2 != 0) {\n        *(char **)(param_2 + iVar4 * 4) = pcVar5;\n        *pcVar2 = '\0';\n      }\n      iVar4 = iVar4 + 1;\n    }\n    pcVar2 = pcVar3;\n    pcVar5 = pcVar6;\n  }" { (expression_statement "pcVar3 = pcVar2 + 1;" (assignment_expression "pcVar3 = pcVar2 + 1" identifier = (binary_expression "pcVar2 + 1" identifier + number_literal)) ;) (if_statement "if (((*pcVar2 == ',') || (pcVar6 = pcVar5, *pcVar2 == '\0')) &&\n       (pcVar6 = pcVar3, pcVar5 != pcVar2)) {\n      if (param_2 != 0) {\n        *(char **)(param_2 + iVar4 * 4) = pcVar5;\n        *pcVar2 = '\0';\n      }\n      iVar4 = iVar4 + 1;\n    }" if (parenthesized_expression "(((*pcVar2 == ',') || (pcVar6 = pcVar5, *pcVar2 == '\0')) &&\n       (pcVar6 = pcVar3, pcVar5 != pcVar2))" ( (binary_expression "((*pcVar2 == ',') || (pcVar6 = pcVar5, *pcVar2 == '\0')) &&\n       (pcVar6 = pcVar3, pcVar5 != pcVar2)" (parenthesized_expression "((*pcVar2 == ',') || (pcVar6 = pcVar5, *pcVar2 == '\0'))" ( (binary_expression "(*pcVar2 == ',') || (pcVar6 = pcVar5, *pcVar2 == '\0')" (parenthesized_expression "(*pcVar2 == ',')" ( (binary_expression "*pcVar2 == ','" (pointer_expression "*pcVar2" * identifier) == (char_literal "','" ' character ')) )) || (parenthesized_expression "(pcVar6 = pcVar5, *pcVar2 == '\0')" ( (comma_expression "pcVar6 = pcVar5, *pcVar2 == '\0'" (assignment_expression "pcVar6 = pcVar5" identifier = identifier) , (binary_expression "*pcVar2 == '\0'" (pointer_expression "*pcVar2" * identifier) == (char_literal "'\0'" ' escape_sequence '))) ))) )) && (parenthesized_expression "(pcVar6 = pcVar3, pcVar5 != pcVar2)" ( (comma_expression "pcVar6 = pcVar3, pcVar5 != pcVar2" (assignment_expression "pcVar6 = pcVar3" identifier = identifier) , (binary_expression "pcVar5 != pcVar2" identifier != identifier)) ))) )) (compound_statement "{\n      if (param_2 != 0) {\n        *(char **)(param_2 + iVar4 * 4) = pcVar5;\n        *pcVar2 = '\0';\n      }\n      iVar4 = iVar4 + 1;\n    }" { (if_statement "if (param_2 != 0) {\n        *(char **)(param_2 + iVar4 * 4) = pcVar5;\n        *pcVar2 = '\0';\n      }" if (parenthesized_expression "(param_2 != 0)" ( (binary_expression "param_2 != 0" identifier != number_literal) )) (compound_statement "{\n        *(char **)(param_2 + iVar4 * 4) = pcVar5;\n        *pcVar2 = '\0';\n      }" { (expression_statement "*(char **)(param_2 + iVar4 * 4) = pcVar5;" (assignment_expression "*(char **)(param_2 + iVar4 * 4) = pcVar5" (pointer_expression "*(char **)(param_2 + iVar4 * 4)" * (cast_expression "(char **)(param_2 + iVar4 * 4)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + iVar4 * 4)" ( (binary_expression "param_2 + iVar4 * 4" identifier + (binary_expression "iVar4 * 4" identifier * number_literal)) )))) = identifier) ;) (expression_statement "*pcVar2 = '\0';" (assignment_expression "*pcVar2 = '\0'" (pointer_expression "*pcVar2" * identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) })) (expression_statement "iVar4 = iVar4 + 1;" (assignment_expression "iVar4 = iVar4 + 1" identifier = (binary_expression "iVar4 + 1" identifier + number_literal)) ;) })) (expression_statement "pcVar2 = pcVar3;" (assignment_expression "pcVar2 = pcVar3" identifier = identifier) ;) (expression_statement "pcVar5 = pcVar6;" (assignment_expression "pcVar5 = pcVar6" identifier = identifier) ;) }) while (parenthesized_expression "((int)pcVar3 - (int)param_1 <= (int)sVar1)" ( (binary_expression "(int)pcVar3 - (int)param_1 <= (int)sVar1" (binary_expression "(int)pcVar3 - (int)param_1" (cast_expression "(int)pcVar3" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier)) <= (cast_expression "(int)sVar1" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) (return_statement "return iVar4;" return identifier ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nint __regparm3 parse_ext_names(char *names,char **result)\n\n{\n  char *p;\n  size_t sVar1;\n  char *pcVar2;\n  char *pcVar3;\n  int iVar4;\n  char *pcVar5;\n  char *pcVar6;\n  \n  sVar1 = strlen(names);\n  iVar4 = 0;\n  pcVar2 = names;\n  pcVar5 = names;\n  do {\n    pcVar3 = pcVar2 + 1;\n    if (((*pcVar2 == ',') || (pcVar6 = pcVar5, *pcVar2 == '\0')) &&\n       (pcVar6 = pcVar3, pcVar5 != pcVar2)) {\n      if (result != (char **)0x0) {\n        result[iVar4] = pcVar5;\n        *pcVar2 = '\0';\n      }\n      iVar4 = iVar4 + 1;\n    }\n    pcVar2 = pcVar3;\n    pcVar5 = pcVar6;\n  } while ((int)pcVar3 - (int)names <= (int)sVar1);\n  return iVar4;\n}\n\n" comment (function_definition "int __regparm3 parse_ext_names(char *names,char **result)\n\n{\n  char *p;\n  size_t sVar1;\n  char *pcVar2;\n  char *pcVar3;\n  int iVar4;\n  char *pcVar5;\n  char *pcVar6;\n  \n  sVar1 = strlen(names);\n  iVar4 = 0;\n  pcVar2 = names;\n  pcVar5 = names;\n  do {\n    pcVar3 = pcVar2 + 1;\n    if (((*pcVar2 == ',') || (pcVar6 = pcVar5, *pcVar2 == '\0')) &&\n       (pcVar6 = pcVar3, pcVar5 != pcVar2)) {\n      if (result != (char **)0x0) {\n        result[iVar4] = pcVar5;\n        *pcVar2 = '\0';\n      }\n      iVar4 = iVar4 + 1;\n    }\n    pcVar2 = pcVar3;\n    pcVar5 = pcVar6;\n  } while ((int)pcVar3 - (int)names <= (int)sVar1);\n  return iVar4;\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "parse_ext_names(char *names,char **result)" identifier (parameter_list "(char *names,char **result)" ( (parameter_declaration "char *names" primitive_type (pointer_declarator "*names" * identifier)) , (parameter_declaration "char **result" primitive_type (pointer_declarator "**result" * (pointer_declarator "*result" * identifier))) ))) (compound_statement "{\n  char *p;\n  size_t sVar1;\n  char *pcVar2;\n  char *pcVar3;\n  int iVar4;\n  char *pcVar5;\n  char *pcVar6;\n  \n  sVar1 = strlen(names);\n  iVar4 = 0;\n  pcVar2 = names;\n  pcVar5 = names;\n  do {\n    pcVar3 = pcVar2 + 1;\n    if (((*pcVar2 == ',') || (pcVar6 = pcVar5, *pcVar2 == '\0')) &&\n       (pcVar6 = pcVar3, pcVar5 != pcVar2)) {\n      if (result != (char **)0x0) {\n        result[iVar4] = pcVar5;\n        *pcVar2 = '\0';\n      }\n      iVar4 = iVar4 + 1;\n    }\n    pcVar2 = pcVar3;\n    pcVar5 = pcVar6;\n  } while ((int)pcVar3 - (int)names <= (int)sVar1);\n  return iVar4;\n}" { (declaration "char *p;" primitive_type (pointer_declarator "*p" * identifier) ;) (declaration "size_t sVar1;" primitive_type identifier ;) (declaration "char *pcVar2;" primitive_type (pointer_declarator "*pcVar2" * identifier) ;) (declaration "char *pcVar3;" primitive_type (pointer_declarator "*pcVar3" * identifier) ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "char *pcVar5;" primitive_type (pointer_declarator "*pcVar5" * identifier) ;) (declaration "char *pcVar6;" primitive_type (pointer_declarator "*pcVar6" * identifier) ;) (expression_statement "sVar1 = strlen(names);" (assignment_expression "sVar1 = strlen(names)" identifier = (call_expression "strlen(names)" identifier (argument_list "(names)" ( identifier )))) ;) (expression_statement "iVar4 = 0;" (assignment_expression "iVar4 = 0" identifier = number_literal) ;) (expression_statement "pcVar2 = names;" (assignment_expression "pcVar2 = names" identifier = identifier) ;) (expression_statement "pcVar5 = names;" (assignment_expression "pcVar5 = names" identifier = identifier) ;) (do_statement "do {\n    pcVar3 = pcVar2 + 1;\n    if (((*pcVar2 == ',') || (pcVar6 = pcVar5, *pcVar2 == '\0')) &&\n       (pcVar6 = pcVar3, pcVar5 != pcVar2)) {\n      if (result != (char **)0x0) {\n        result[iVar4] = pcVar5;\n        *pcVar2 = '\0';\n      }\n      iVar4 = iVar4 + 1;\n    }\n    pcVar2 = pcVar3;\n    pcVar5 = pcVar6;\n  } while ((int)pcVar3 - (int)names <= (int)sVar1);" do (compound_statement "{\n    pcVar3 = pcVar2 + 1;\n    if (((*pcVar2 == ',') || (pcVar6 = pcVar5, *pcVar2 == '\0')) &&\n       (pcVar6 = pcVar3, pcVar5 != pcVar2)) {\n      if (result != (char **)0x0) {\n        result[iVar4] = pcVar5;\n        *pcVar2 = '\0';\n      }\n      iVar4 = iVar4 + 1;\n    }\n    pcVar2 = pcVar3;\n    pcVar5 = pcVar6;\n  }" { (expression_statement "pcVar3 = pcVar2 + 1;" (assignment_expression "pcVar3 = pcVar2 + 1" identifier = (binary_expression "pcVar2 + 1" identifier + number_literal)) ;) (if_statement "if (((*pcVar2 == ',') || (pcVar6 = pcVar5, *pcVar2 == '\0')) &&\n       (pcVar6 = pcVar3, pcVar5 != pcVar2)) {\n      if (result != (char **)0x0) {\n        result[iVar4] = pcVar5;\n        *pcVar2 = '\0';\n      }\n      iVar4 = iVar4 + 1;\n    }" if (parenthesized_expression "(((*pcVar2 == ',') || (pcVar6 = pcVar5, *pcVar2 == '\0')) &&\n       (pcVar6 = pcVar3, pcVar5 != pcVar2))" ( (binary_expression "((*pcVar2 == ',') || (pcVar6 = pcVar5, *pcVar2 == '\0')) &&\n       (pcVar6 = pcVar3, pcVar5 != pcVar2)" (parenthesized_expression "((*pcVar2 == ',') || (pcVar6 = pcVar5, *pcVar2 == '\0'))" ( (binary_expression "(*pcVar2 == ',') || (pcVar6 = pcVar5, *pcVar2 == '\0')" (parenthesized_expression "(*pcVar2 == ',')" ( (binary_expression "*pcVar2 == ','" (pointer_expression "*pcVar2" * identifier) == (char_literal "','" ' character ')) )) || (parenthesized_expression "(pcVar6 = pcVar5, *pcVar2 == '\0')" ( (comma_expression "pcVar6 = pcVar5, *pcVar2 == '\0'" (assignment_expression "pcVar6 = pcVar5" identifier = identifier) , (binary_expression "*pcVar2 == '\0'" (pointer_expression "*pcVar2" * identifier) == (char_literal "'\0'" ' escape_sequence '))) ))) )) && (parenthesized_expression "(pcVar6 = pcVar3, pcVar5 != pcVar2)" ( (comma_expression "pcVar6 = pcVar3, pcVar5 != pcVar2" (assignment_expression "pcVar6 = pcVar3" identifier = identifier) , (binary_expression "pcVar5 != pcVar2" identifier != identifier)) ))) )) (compound_statement "{\n      if (result != (char **)0x0) {\n        result[iVar4] = pcVar5;\n        *pcVar2 = '\0';\n      }\n      iVar4 = iVar4 + 1;\n    }" { (if_statement "if (result != (char **)0x0) {\n        result[iVar4] = pcVar5;\n        *pcVar2 = '\0';\n      }" if (parenthesized_expression "(result != (char **)0x0)" ( (binary_expression "result != (char **)0x0" identifier != (cast_expression "(char **)0x0" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (compound_statement "{\n        result[iVar4] = pcVar5;\n        *pcVar2 = '\0';\n      }" { (expression_statement "result[iVar4] = pcVar5;" (assignment_expression "result[iVar4] = pcVar5" (subscript_expression "result[iVar4]" identifier [ identifier ]) = identifier) ;) (expression_statement "*pcVar2 = '\0';" (assignment_expression "*pcVar2 = '\0'" (pointer_expression "*pcVar2" * identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) })) (expression_statement "iVar4 = iVar4 + 1;" (assignment_expression "iVar4 = iVar4 + 1" identifier = (binary_expression "iVar4 + 1" identifier + number_literal)) ;) })) (expression_statement "pcVar2 = pcVar3;" (assignment_expression "pcVar2 = pcVar3" identifier = identifier) ;) (expression_statement "pcVar5 = pcVar6;" (assignment_expression "pcVar5 = pcVar6" identifier = identifier) ;) }) while (parenthesized_expression "((int)pcVar3 - (int)names <= (int)sVar1)" ( (binary_expression "(int)pcVar3 - (int)names <= (int)sVar1" (binary_expression "(int)pcVar3 - (int)names" (cast_expression "(int)pcVar3" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)names" ( (type_descriptor "int" primitive_type) ) identifier)) <= (cast_expression "(int)sVar1" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) (return_statement "return iVar4;" return identifier ;) })))
(translation_unit "int __regparm3 FUN_0006f5a0(char *param_1,int param_2)\n\n{\n  size_t sVar1;\n  char *pcVar2;\n  char *pcVar3;\n  int iVar4;\n  char *pcVar5;\n  char *pcVar6;\n  \n  sVar1 = strlen(param_1);\n  iVar4 = 0;\n  pcVar2 = param_1;\n  pcVar5 = param_1;\n  do {\n    pcVar3 = pcVar2 + 1;\n    if (((*pcVar2 == ',') || (pcVar6 = pcVar5, *pcVar2 == '\0')) &&\n       (pcVar6 = pcVar3, pcVar5 != pcVar2)) {\n      if (param_2 != 0) {\n        *(char **)(param_2 + iVar4 * 4) = pcVar5;\n        *pcVar2 = '\0';\n      }\n      iVar4 = iVar4 + 1;\n    }\n    pcVar2 = pcVar3;\n    pcVar5 = pcVar6;\n  } while ((int)pcVar3 - (int)param_1 <= (int)sVar1);\n  return iVar4;\n}\n\n" (function_definition "int __regparm3 FUN_0006f5a0(char *param_1,int param_2)\n\n{\n  size_t sVar1;\n  char *pcVar2;\n  char *pcVar3;\n  int iVar4;\n  char *pcVar5;\n  char *pcVar6;\n  \n  sVar1 = strlen(param_1);\n  iVar4 = 0;\n  pcVar2 = param_1;\n  pcVar5 = param_1;\n  do {\n    pcVar3 = pcVar2 + 1;\n    if (((*pcVar2 == ',') || (pcVar6 = pcVar5, *pcVar2 == '\0')) &&\n       (pcVar6 = pcVar3, pcVar5 != pcVar2)) {\n      if (param_2 != 0) {\n        *(char **)(param_2 + iVar4 * 4) = pcVar5;\n        *pcVar2 = '\0';\n      }\n      iVar4 = iVar4 + 1;\n    }\n    pcVar2 = pcVar3;\n    pcVar5 = pcVar6;\n  } while ((int)pcVar3 - (int)param_1 <= (int)sVar1);\n  return iVar4;\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "FUN_0006f5a0(char *param_1,int param_2)" identifier (parameter_list "(char *param_1,int param_2)" ( (parameter_declaration "char *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "int param_2" primitive_type identifier) ))) (compound_statement "{\n  size_t sVar1;\n  char *pcVar2;\n  char *pcVar3;\n  int iVar4;\n  char *pcVar5;\n  char *pcVar6;\n  \n  sVar1 = strlen(param_1);\n  iVar4 = 0;\n  pcVar2 = param_1;\n  pcVar5 = param_1;\n  do {\n    pcVar3 = pcVar2 + 1;\n    if (((*pcVar2 == ',') || (pcVar6 = pcVar5, *pcVar2 == '\0')) &&\n       (pcVar6 = pcVar3, pcVar5 != pcVar2)) {\n      if (param_2 != 0) {\n        *(char **)(param_2 + iVar4 * 4) = pcVar5;\n        *pcVar2 = '\0';\n      }\n      iVar4 = iVar4 + 1;\n    }\n    pcVar2 = pcVar3;\n    pcVar5 = pcVar6;\n  } while ((int)pcVar3 - (int)param_1 <= (int)sVar1);\n  return iVar4;\n}" { (declaration "size_t sVar1;" primitive_type identifier ;) (declaration "char *pcVar2;" primitive_type (pointer_declarator "*pcVar2" * identifier) ;) (declaration "char *pcVar3;" primitive_type (pointer_declarator "*pcVar3" * identifier) ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "char *pcVar5;" primitive_type (pointer_declarator "*pcVar5" * identifier) ;) (declaration "char *pcVar6;" primitive_type (pointer_declarator "*pcVar6" * identifier) ;) (expression_statement "sVar1 = strlen(param_1);" (assignment_expression "sVar1 = strlen(param_1)" identifier = (call_expression "strlen(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) (expression_statement "iVar4 = 0;" (assignment_expression "iVar4 = 0" identifier = number_literal) ;) (expression_statement "pcVar2 = param_1;" (assignment_expression "pcVar2 = param_1" identifier = identifier) ;) (expression_statement "pcVar5 = param_1;" (assignment_expression "pcVar5 = param_1" identifier = identifier) ;) (do_statement "do {\n    pcVar3 = pcVar2 + 1;\n    if (((*pcVar2 == ',') || (pcVar6 = pcVar5, *pcVar2 == '\0')) &&\n       (pcVar6 = pcVar3, pcVar5 != pcVar2)) {\n      if (param_2 != 0) {\n        *(char **)(param_2 + iVar4 * 4) = pcVar5;\n        *pcVar2 = '\0';\n      }\n      iVar4 = iVar4 + 1;\n    }\n    pcVar2 = pcVar3;\n    pcVar5 = pcVar6;\n  } while ((int)pcVar3 - (int)param_1 <= (int)sVar1);" do (compound_statement "{\n    pcVar3 = pcVar2 + 1;\n    if (((*pcVar2 == ',') || (pcVar6 = pcVar5, *pcVar2 == '\0')) &&\n       (pcVar6 = pcVar3, pcVar5 != pcVar2)) {\n      if (param_2 != 0) {\n        *(char **)(param_2 + iVar4 * 4) = pcVar5;\n        *pcVar2 = '\0';\n      }\n      iVar4 = iVar4 + 1;\n    }\n    pcVar2 = pcVar3;\n    pcVar5 = pcVar6;\n  }" { (expression_statement "pcVar3 = pcVar2 + 1;" (assignment_expression "pcVar3 = pcVar2 + 1" identifier = (binary_expression "pcVar2 + 1" identifier + number_literal)) ;) (if_statement "if (((*pcVar2 == ',') || (pcVar6 = pcVar5, *pcVar2 == '\0')) &&\n       (pcVar6 = pcVar3, pcVar5 != pcVar2)) {\n      if (param_2 != 0) {\n        *(char **)(param_2 + iVar4 * 4) = pcVar5;\n        *pcVar2 = '\0';\n      }\n      iVar4 = iVar4 + 1;\n    }" if (parenthesized_expression "(((*pcVar2 == ',') || (pcVar6 = pcVar5, *pcVar2 == '\0')) &&\n       (pcVar6 = pcVar3, pcVar5 != pcVar2))" ( (binary_expression "((*pcVar2 == ',') || (pcVar6 = pcVar5, *pcVar2 == '\0')) &&\n       (pcVar6 = pcVar3, pcVar5 != pcVar2)" (parenthesized_expression "((*pcVar2 == ',') || (pcVar6 = pcVar5, *pcVar2 == '\0'))" ( (binary_expression "(*pcVar2 == ',') || (pcVar6 = pcVar5, *pcVar2 == '\0')" (parenthesized_expression "(*pcVar2 == ',')" ( (binary_expression "*pcVar2 == ','" (pointer_expression "*pcVar2" * identifier) == (char_literal "','" ' character ')) )) || (parenthesized_expression "(pcVar6 = pcVar5, *pcVar2 == '\0')" ( (comma_expression "pcVar6 = pcVar5, *pcVar2 == '\0'" (assignment_expression "pcVar6 = pcVar5" identifier = identifier) , (binary_expression "*pcVar2 == '\0'" (pointer_expression "*pcVar2" * identifier) == (char_literal "'\0'" ' escape_sequence '))) ))) )) && (parenthesized_expression "(pcVar6 = pcVar3, pcVar5 != pcVar2)" ( (comma_expression "pcVar6 = pcVar3, pcVar5 != pcVar2" (assignment_expression "pcVar6 = pcVar3" identifier = identifier) , (binary_expression "pcVar5 != pcVar2" identifier != identifier)) ))) )) (compound_statement "{\n      if (param_2 != 0) {\n        *(char **)(param_2 + iVar4 * 4) = pcVar5;\n        *pcVar2 = '\0';\n      }\n      iVar4 = iVar4 + 1;\n    }" { (if_statement "if (param_2 != 0) {\n        *(char **)(param_2 + iVar4 * 4) = pcVar5;\n        *pcVar2 = '\0';\n      }" if (parenthesized_expression "(param_2 != 0)" ( (binary_expression "param_2 != 0" identifier != number_literal) )) (compound_statement "{\n        *(char **)(param_2 + iVar4 * 4) = pcVar5;\n        *pcVar2 = '\0';\n      }" { (expression_statement "*(char **)(param_2 + iVar4 * 4) = pcVar5;" (assignment_expression "*(char **)(param_2 + iVar4 * 4) = pcVar5" (pointer_expression "*(char **)(param_2 + iVar4 * 4)" * (cast_expression "(char **)(param_2 + iVar4 * 4)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + iVar4 * 4)" ( (binary_expression "param_2 + iVar4 * 4" identifier + (binary_expression "iVar4 * 4" identifier * number_literal)) )))) = identifier) ;) (expression_statement "*pcVar2 = '\0';" (assignment_expression "*pcVar2 = '\0'" (pointer_expression "*pcVar2" * identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) })) (expression_statement "iVar4 = iVar4 + 1;" (assignment_expression "iVar4 = iVar4 + 1" identifier = (binary_expression "iVar4 + 1" identifier + number_literal)) ;) })) (expression_statement "pcVar2 = pcVar3;" (assignment_expression "pcVar2 = pcVar3" identifier = identifier) ;) (expression_statement "pcVar5 = pcVar6;" (assignment_expression "pcVar5 = pcVar6" identifier = identifier) ;) }) while (parenthesized_expression "((int)pcVar3 - (int)param_1 <= (int)sVar1)" ( (binary_expression "(int)pcVar3 - (int)param_1 <= (int)sVar1" (binary_expression "(int)pcVar3 - (int)param_1" (cast_expression "(int)pcVar3" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier)) <= (cast_expression "(int)sVar1" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) (return_statement "return iVar4;" return identifier ;) })))
(translation_unit (function_definition TYPE (ERROR IDENT) (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (char_literal ' character ')) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression (pointer_expression * IDENT) == (char_literal ' escape_sequence '))) ))) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression IDENT != IDENT)) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (char_literal ' escape_sequence ')) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) <= (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) ;) (return_statement return IDENT ;) })))
(function_definition "int __regparm3 FUN_0006f5a0(char *param_1,int param_2)\n\n{\n  size_t sVar1;\n  char *pcVar2;\n  char *pcVar3;\n  int iVar4;\n  char *pcVar5;\n  char *pcVar6;\n  \n  sVar1 = strlen(param_1);\n  iVar4 = 0;\n  pcVar2 = param_1;\n  pcVar5 = param_1;\n  do {\n    pcVar3 = pcVar2 + 1;\n    if (((*pcVar2 == ',') || (pcVar6 = pcVar5, *pcVar2 == '\0')) &&\n       (pcVar6 = pcVar3, pcVar5 != pcVar2)) {\n      if (param_2 != 0) {\n        *(char **)(param_2 + iVar4 * 4) = pcVar5;\n        *pcVar2 = '\0';\n      }\n      iVar4 = iVar4 + 1;\n    }\n    pcVar2 = pcVar3;\n    pcVar5 = pcVar6;\n  } while ((int)pcVar3 - (int)param_1 <= (int)sVar1);\n  return iVar4;\n}" (primitive_type "int") (ERROR "__regparm3" (identifier "__regparm3")) (function_declarator "FUN_0006f5a0(char *param_1,int param_2)" (identifier "FUN_0006f5a0") (parameter_list "(char *param_1,int param_2)" (( "(") (parameter_declaration "char *param_1" (primitive_type "char") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "int param_2" (primitive_type "int") (identifier "param_2")) () ")"))) (compound_statement "{\n  size_t sVar1;\n  char *pcVar2;\n  char *pcVar3;\n  int iVar4;\n  char *pcVar5;\n  char *pcVar6;\n  \n  sVar1 = strlen(param_1);\n  iVar4 = 0;\n  pcVar2 = param_1;\n  pcVar5 = param_1;\n  do {\n    pcVar3 = pcVar2 + 1;\n    if (((*pcVar2 == ',') || (pcVar6 = pcVar5, *pcVar2 == '\0')) &&\n       (pcVar6 = pcVar3, pcVar5 != pcVar2)) {\n      if (param_2 != 0) {\n        *(char **)(param_2 + iVar4 * 4) = pcVar5;\n        *pcVar2 = '\0';\n      }\n      iVar4 = iVar4 + 1;\n    }\n    pcVar2 = pcVar3;\n    pcVar5 = pcVar6;\n  } while ((int)pcVar3 - (int)param_1 <= (int)sVar1);\n  return iVar4;\n}" ({ "{") (declaration "size_t sVar1;" (primitive_type "size_t") (identifier "sVar1") (; ";")) (declaration "char *pcVar2;" (primitive_type "char") (pointer_declarator "*pcVar2" (* "*") (identifier "pcVar2")) (; ";")) (declaration "char *pcVar3;" (primitive_type "char") (pointer_declarator "*pcVar3" (* "*") (identifier "pcVar3")) (; ";")) (declaration "int iVar4;" (primitive_type "int") (identifier "iVar4") (; ";")) (declaration "char *pcVar5;" (primitive_type "char") (pointer_declarator "*pcVar5" (* "*") (identifier "pcVar5")) (; ";")) (declaration "char *pcVar6;" (primitive_type "char") (pointer_declarator "*pcVar6" (* "*") (identifier "pcVar6")) (; ";")) (expression_statement "sVar1 = strlen(param_1);" (assignment_expression "sVar1 = strlen(param_1)" (identifier "sVar1") (= "=") (call_expression "strlen(param_1)" (identifier "strlen") (argument_list "(param_1)" (( "(") (identifier "param_1") () ")")))) (; ";")) (expression_statement "iVar4 = 0;" (assignment_expression "iVar4 = 0" (identifier "iVar4") (= "=") (number_literal "0")) (; ";")) (expression_statement "pcVar2 = param_1;" (assignment_expression "pcVar2 = param_1" (identifier "pcVar2") (= "=") (identifier "param_1")) (; ";")) (expression_statement "pcVar5 = param_1;" (assignment_expression "pcVar5 = param_1" (identifier "pcVar5") (= "=") (identifier "param_1")) (; ";")) (do_statement "do {\n    pcVar3 = pcVar2 + 1;\n    if (((*pcVar2 == ',') || (pcVar6 = pcVar5, *pcVar2 == '\0')) &&\n       (pcVar6 = pcVar3, pcVar5 != pcVar2)) {\n      if (param_2 != 0) {\n        *(char **)(param_2 + iVar4 * 4) = pcVar5;\n        *pcVar2 = '\0';\n      }\n      iVar4 = iVar4 + 1;\n    }\n    pcVar2 = pcVar3;\n    pcVar5 = pcVar6;\n  } while ((int)pcVar3 - (int)param_1 <= (int)sVar1);" (do "do") (compound_statement "{\n    pcVar3 = pcVar2 + 1;\n    if (((*pcVar2 == ',') || (pcVar6 = pcVar5, *pcVar2 == '\0')) &&\n       (pcVar6 = pcVar3, pcVar5 != pcVar2)) {\n      if (param_2 != 0) {\n        *(char **)(param_2 + iVar4 * 4) = pcVar5;\n        *pcVar2 = '\0';\n      }\n      iVar4 = iVar4 + 1;\n    }\n    pcVar2 = pcVar3;\n    pcVar5 = pcVar6;\n  }" ({ "{") (expression_statement "pcVar3 = pcVar2 + 1;" (assignment_expression "pcVar3 = pcVar2 + 1" (identifier "pcVar3") (= "=") (binary_expression "pcVar2 + 1" (identifier "pcVar2") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (((*pcVar2 == ',') || (pcVar6 = pcVar5, *pcVar2 == '\0')) &&\n       (pcVar6 = pcVar3, pcVar5 != pcVar2)) {\n      if (param_2 != 0) {\n        *(char **)(param_2 + iVar4 * 4) = pcVar5;\n        *pcVar2 = '\0';\n      }\n      iVar4 = iVar4 + 1;\n    }" (if "if") (parenthesized_expression "(((*pcVar2 == ',') || (pcVar6 = pcVar5, *pcVar2 == '\0')) &&\n       (pcVar6 = pcVar3, pcVar5 != pcVar2))" (( "(") (binary_expression "((*pcVar2 == ',') || (pcVar6 = pcVar5, *pcVar2 == '\0')) &&\n       (pcVar6 = pcVar3, pcVar5 != pcVar2)" (parenthesized_expression "((*pcVar2 == ',') || (pcVar6 = pcVar5, *pcVar2 == '\0'))" (( "(") (binary_expression "(*pcVar2 == ',') || (pcVar6 = pcVar5, *pcVar2 == '\0')" (parenthesized_expression "(*pcVar2 == ',')" (( "(") (binary_expression "*pcVar2 == ','" (pointer_expression "*pcVar2" (* "*") (identifier "pcVar2")) (== "==") (char_literal "','" (' "'") (character ",") (' "'"))) () ")")) (|| "||") (parenthesized_expression "(pcVar6 = pcVar5, *pcVar2 == '\0')" (( "(") (comma_expression "pcVar6 = pcVar5, *pcVar2 == '\0'" (assignment_expression "pcVar6 = pcVar5" (identifier "pcVar6") (= "=") (identifier "pcVar5")) (, ",") (binary_expression "*pcVar2 == '\0'" (pointer_expression "*pcVar2" (* "*") (identifier "pcVar2")) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'")))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(pcVar6 = pcVar3, pcVar5 != pcVar2)" (( "(") (comma_expression "pcVar6 = pcVar3, pcVar5 != pcVar2" (assignment_expression "pcVar6 = pcVar3" (identifier "pcVar6") (= "=") (identifier "pcVar3")) (, ",") (binary_expression "pcVar5 != pcVar2" (identifier "pcVar5") (!= "!=") (identifier "pcVar2"))) () ")"))) () ")")) (compound_statement "{\n      if (param_2 != 0) {\n        *(char **)(param_2 + iVar4 * 4) = pcVar5;\n        *pcVar2 = '\0';\n      }\n      iVar4 = iVar4 + 1;\n    }" ({ "{") (if_statement "if (param_2 != 0) {\n        *(char **)(param_2 + iVar4 * 4) = pcVar5;\n        *pcVar2 = '\0';\n      }" (if "if") (parenthesized_expression "(param_2 != 0)" (( "(") (binary_expression "param_2 != 0" (identifier "param_2") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        *(char **)(param_2 + iVar4 * 4) = pcVar5;\n        *pcVar2 = '\0';\n      }" ({ "{") (expression_statement "*(char **)(param_2 + iVar4 * 4) = pcVar5;" (assignment_expression "*(char **)(param_2 + iVar4 * 4) = pcVar5" (pointer_expression "*(char **)(param_2 + iVar4 * 4)" (* "*") (cast_expression "(char **)(param_2 + iVar4 * 4)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_2 + iVar4 * 4)" (( "(") (binary_expression "param_2 + iVar4 * 4" (identifier "param_2") (+ "+") (binary_expression "iVar4 * 4" (identifier "iVar4") (* "*") (number_literal "4"))) () ")")))) (= "=") (identifier "pcVar5")) (; ";")) (expression_statement "*pcVar2 = '\0';" (assignment_expression "*pcVar2 = '\0'" (pointer_expression "*pcVar2" (* "*") (identifier "pcVar2")) (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (} "}"))) (expression_statement "iVar4 = iVar4 + 1;" (assignment_expression "iVar4 = iVar4 + 1" (identifier "iVar4") (= "=") (binary_expression "iVar4 + 1" (identifier "iVar4") (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (expression_statement "pcVar2 = pcVar3;" (assignment_expression "pcVar2 = pcVar3" (identifier "pcVar2") (= "=") (identifier "pcVar3")) (; ";")) (expression_statement "pcVar5 = pcVar6;" (assignment_expression "pcVar5 = pcVar6" (identifier "pcVar5") (= "=") (identifier "pcVar6")) (; ";")) (} "}")) (while "while") (parenthesized_expression "((int)pcVar3 - (int)param_1 <= (int)sVar1)" (( "(") (binary_expression "(int)pcVar3 - (int)param_1 <= (int)sVar1" (binary_expression "(int)pcVar3 - (int)param_1" (cast_expression "(int)pcVar3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pcVar3")) (- "-") (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1"))) (<= "<=") (cast_expression "(int)sVar1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "sVar1"))) () ")")) (; ";")) (return_statement "return iVar4;" (return "return") (identifier "iVar4") (; ";")) (} "}")))

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

int __regparm3 function_1(char *names,char **var_4)

{
  char *p;
  size_t sVar1;
  char *var_2;
  char *pcVar3;
  int var_5;
  char *var_3;
  char *pcVar6;
  
  sVar1 = var_1(names);
  var_5 = 0;
  var_2 = names;
  var_3 = names;
  do {
    pcVar3 = var_2 + 1;
    if (((*var_2 == ',') || (pcVar6 = var_3, *var_2 == '\0')) &&
       (pcVar6 = pcVar3, var_3 != var_2)) {
      if (var_4 != (char **)0x0) {
        var_4[var_5] = var_3;
        *var_2 = '\0';
      }
      var_5 = var_5 + 1;
    }
    var_2 = pcVar3;
    var_3 = pcVar6;
  } while ((int)pcVar3 - (int)names <= (int)sVar1);
  return var_5;
}


(translation_unit (function_definition type: (primitive_type) (ERROR (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: (identifier)))) body: (compound_statement (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (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)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (char_literal (character)))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (identifier)) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (char_literal (escape_sequence))))))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (identifier)) right: (binary_expression left: (identifier) right: (identifier)))))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (char_literal (escape_sequence)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) condition: (parenthesized_expression (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) (return_statement (identifier)))))

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

int __regparm3 MASKED(char *param_1,int param_2)

{
  size_t sVar1;
  char *pcVar2;
  char *pcVar3;
  int iVar4;
  char *pcVar5;
  char *pcVar6;
  
  sVar1 = strlen(param_1);
  iVar4 = 0;
  pcVar2 = param_1;
  pcVar5 = param_1;
  do {
    pcVar3 = pcVar2 + 1;
    if (((*pcVar2 == ',') || (pcVar6 = pcVar5, *pcVar2 == '\0')) &&
       (pcVar6 = pcVar3, pcVar5 != pcVar2)) {
      if (param_2 != 0) {
        *(char **)(param_2 + iVar4 * 4) = pcVar5;
        *pcVar2 = '\0';
      }
      iVar4 = iVar4 + 1;
    }
    pcVar2 = pcVar3;
    pcVar5 = pcVar6;
  } while ((int)pcVar3 - (int)param_1 <= (int)sVar1);
  return iVar4;
}

