
bfd_boolean parse_stab_type_number(char **pp,int *typenums,char *p_end)

{
  char *p;
  bfd_vma bVar1;
  
  p = *pp;
  if (*p != '(') {
    *typenums = 0;
    bVar1 = parse_number(pp,(bfd_boolean *)0x0,p_end);
    typenums[1] = (int)bVar1;
    return 1;
  }
  *pp = p + 1;
  bVar1 = parse_number(pp,(bfd_boolean *)0x0,p_end);
  *typenums = (int)bVar1;
  if (**pp == ',') {
    *pp = *pp + 1;
    bVar1 = parse_number(pp,(bfd_boolean *)0x0,p_end);
    typenums[1] = (int)bVar1;
    if (**pp == ')') {
      *pp = *pp + 1;
      return 1;
    }
  }
  bad_stab(p);
  return 0;
}



undefined8 FUN_00110600(long *param_1,undefined4 *param_2,undefined8 param_3)

{
  char *pcVar1;
  undefined4 uVar2;
  
  pcVar1 = (char *)*param_1;
  if (*pcVar1 != '(') {
    *param_2 = 0;
    uVar2 = FUN_00110570(param_1,0);
    param_2[1] = uVar2;
    return 1;
  }
  *param_1 = (long)(pcVar1 + 1);
  uVar2 = FUN_00110570(param_1,0);
  *param_2 = uVar2;
  if (*(char *)*param_1 == ',') {
    *param_1 = (long)((char *)*param_1 + 1);
    uVar2 = FUN_00110570(param_1,0,param_3);
    param_2[1] = uVar2;
    if (*(char *)*param_1 == ')') {
      *param_1 = (long)((char *)*param_1 + 1);
      return 1;
    }
  }
  FUN_001104b0(pcVar1);
  return 0;
}


PUSH R13
MOV R13,RDX
PUSH R12
MOV R12,RSI
PUSH RBP
PUSH RBX
MOV RBX,RDI
SUB RSP,0x8
MOV RBP,qword ptr [RDI]
CMP byte ptr [RBP],0x28
JZ 0x00110640
MOV dword ptr [RSI],0x0
XOR ESI,ESI
CALL 0x00110570
MOV dword ptr [R12 + 0x4],EAX
ADD RSP,0x8
MOV EAX,0x1
POP RBX
POP RBP
POP R12
POP R13
RET
LEA RAX,[RBP + 0x1]
XOR ESI,ESI
MOV qword ptr [RDI],RAX
CALL 0x00110570
MOV dword ptr [R12],EAX
MOV RAX,qword ptr [RBX]
CMP byte ptr [RAX],0x2c
JNZ 0x00110698
ADD RAX,0x1
XOR ESI,ESI
MOV RDX,R13
MOV RDI,RBX
MOV qword ptr [RBX],RAX
CALL 0x00110570
MOV dword ptr [R12 + 0x4],EAX
MOV RAX,qword ptr [RBX]
CMP byte ptr [RAX],0x29
JNZ 0x00110698
ADD RAX,0x1
MOV qword ptr [RBX],RAX
ADD RSP,0x8
MOV EAX,0x1
POP RBX
POP RBP
POP R12
POP R13
RET
MOV RDI,RBP
CALL 0x001104b0
ADD RSP,0x8
XOR EAX,EAX
POP RBX
POP RBP
POP R12
POP R13
RET
(translation_unit "undefined8 FUN_00110600(long *param_1,undefined4 *param_2,undefined8 param_3)\n\n{\n  char *pcVar1;\n  undefined4 uVar2;\n  \n  pcVar1 = (char *)*param_1;\n  if (*pcVar1 != '(') {\n    *param_2 = 0;\n    uVar2 = FUN_00110570(param_1,0);\n    param_2[1] = uVar2;\n    return 1;\n  }\n  *param_1 = (long)(pcVar1 + 1);\n  uVar2 = FUN_00110570(param_1,0);\n  *param_2 = uVar2;\n  if (*(char *)*param_1 == ',') {\n    *param_1 = (long)((char *)*param_1 + 1);\n    uVar2 = FUN_00110570(param_1,0,param_3);\n    param_2[1] = uVar2;\n    if (*(char *)*param_1 == ')') {\n      *param_1 = (long)((char *)*param_1 + 1);\n      return 1;\n    }\n  }\n  FUN_001104b0(pcVar1);\n  return 0;\n}\n\n" (function_definition "undefined8 FUN_00110600(long *param_1,undefined4 *param_2,undefined8 param_3)\n\n{\n  char *pcVar1;\n  undefined4 uVar2;\n  \n  pcVar1 = (char *)*param_1;\n  if (*pcVar1 != '(') {\n    *param_2 = 0;\n    uVar2 = FUN_00110570(param_1,0);\n    param_2[1] = uVar2;\n    return 1;\n  }\n  *param_1 = (long)(pcVar1 + 1);\n  uVar2 = FUN_00110570(param_1,0);\n  *param_2 = uVar2;\n  if (*(char *)*param_1 == ',') {\n    *param_1 = (long)((char *)*param_1 + 1);\n    uVar2 = FUN_00110570(param_1,0,param_3);\n    param_2[1] = uVar2;\n    if (*(char *)*param_1 == ')') {\n      *param_1 = (long)((char *)*param_1 + 1);\n      return 1;\n    }\n  }\n  FUN_001104b0(pcVar1);\n  return 0;\n}" type_identifier (function_declarator "FUN_00110600(long *param_1,undefined4 *param_2,undefined8 param_3)" identifier (parameter_list "(long *param_1,undefined4 *param_2,undefined8 param_3)" ( (parameter_declaration "long *param_1" (sized_type_specifier "long" long) (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "undefined4 *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "undefined8 param_3" type_identifier identifier) ))) (compound_statement "{\n  char *pcVar1;\n  undefined4 uVar2;\n  \n  pcVar1 = (char *)*param_1;\n  if (*pcVar1 != '(') {\n    *param_2 = 0;\n    uVar2 = FUN_00110570(param_1,0);\n    param_2[1] = uVar2;\n    return 1;\n  }\n  *param_1 = (long)(pcVar1 + 1);\n  uVar2 = FUN_00110570(param_1,0);\n  *param_2 = uVar2;\n  if (*(char *)*param_1 == ',') {\n    *param_1 = (long)((char *)*param_1 + 1);\n    uVar2 = FUN_00110570(param_1,0,param_3);\n    param_2[1] = uVar2;\n    if (*(char *)*param_1 == ')') {\n      *param_1 = (long)((char *)*param_1 + 1);\n      return 1;\n    }\n  }\n  FUN_001104b0(pcVar1);\n  return 0;\n}" { (declaration "char *pcVar1;" primitive_type (pointer_declarator "*pcVar1" * identifier) ;) (declaration "undefined4 uVar2;" type_identifier identifier ;) (expression_statement "pcVar1 = (char *)*param_1;" (assignment_expression "pcVar1 = (char *)*param_1" identifier = (cast_expression "(char *)*param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier))) ;) (if_statement "if (*pcVar1 != '(') {\n    *param_2 = 0;\n    uVar2 = FUN_00110570(param_1,0);\n    param_2[1] = uVar2;\n    return 1;\n  }" if (parenthesized_expression "(*pcVar1 != '(')" ( (binary_expression "*pcVar1 != '('" (pointer_expression "*pcVar1" * identifier) != (char_literal "'('" ' character ')) )) (compound_statement "{\n    *param_2 = 0;\n    uVar2 = FUN_00110570(param_1,0);\n    param_2[1] = uVar2;\n    return 1;\n  }" { (expression_statement "*param_2 = 0;" (assignment_expression "*param_2 = 0" (pointer_expression "*param_2" * identifier) = number_literal) ;) (expression_statement "uVar2 = FUN_00110570(param_1,0);" (assignment_expression "uVar2 = FUN_00110570(param_1,0)" identifier = (call_expression "FUN_00110570(param_1,0)" identifier (argument_list "(param_1,0)" ( identifier , number_literal )))) ;) (expression_statement "param_2[1] = uVar2;" (assignment_expression "param_2[1] = uVar2" (subscript_expression "param_2[1]" identifier [ number_literal ]) = identifier) ;) (return_statement "return 1;" return number_literal ;) })) (expression_statement "*param_1 = (long)(pcVar1 + 1);" (assignment_expression "*param_1 = (long)(pcVar1 + 1)" (pointer_expression "*param_1" * identifier) = (cast_expression "(long)(pcVar1 + 1)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(pcVar1 + 1)" ( (binary_expression "pcVar1 + 1" identifier + number_literal) )))) ;) (expression_statement "uVar2 = FUN_00110570(param_1,0);" (assignment_expression "uVar2 = FUN_00110570(param_1,0)" identifier = (call_expression "FUN_00110570(param_1,0)" identifier (argument_list "(param_1,0)" ( identifier , number_literal )))) ;) (expression_statement "*param_2 = uVar2;" (assignment_expression "*param_2 = uVar2" (pointer_expression "*param_2" * identifier) = identifier) ;) (if_statement "if (*(char *)*param_1 == ',') {\n    *param_1 = (long)((char *)*param_1 + 1);\n    uVar2 = FUN_00110570(param_1,0,param_3);\n    param_2[1] = uVar2;\n    if (*(char *)*param_1 == ')') {\n      *param_1 = (long)((char *)*param_1 + 1);\n      return 1;\n    }\n  }" if (parenthesized_expression "(*(char *)*param_1 == ',')" ( (binary_expression "*(char *)*param_1 == ','" (pointer_expression "*(char *)*param_1" * (cast_expression "(char *)*param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier))) == (char_literal "','" ' character ')) )) (compound_statement "{\n    *param_1 = (long)((char *)*param_1 + 1);\n    uVar2 = FUN_00110570(param_1,0,param_3);\n    param_2[1] = uVar2;\n    if (*(char *)*param_1 == ')') {\n      *param_1 = (long)((char *)*param_1 + 1);\n      return 1;\n    }\n  }" { (expression_statement "*param_1 = (long)((char *)*param_1 + 1);" (assignment_expression "*param_1 = (long)((char *)*param_1 + 1)" (pointer_expression "*param_1" * identifier) = (cast_expression "(long)((char *)*param_1 + 1)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "((char *)*param_1 + 1)" ( (binary_expression "(char *)*param_1 + 1" (cast_expression "(char *)*param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier)) + number_literal) )))) ;) (expression_statement "uVar2 = FUN_00110570(param_1,0,param_3);" (assignment_expression "uVar2 = FUN_00110570(param_1,0,param_3)" identifier = (call_expression "FUN_00110570(param_1,0,param_3)" identifier (argument_list "(param_1,0,param_3)" ( identifier , number_literal , identifier )))) ;) (expression_statement "param_2[1] = uVar2;" (assignment_expression "param_2[1] = uVar2" (subscript_expression "param_2[1]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (*(char *)*param_1 == ')') {\n      *param_1 = (long)((char *)*param_1 + 1);\n      return 1;\n    }" if (parenthesized_expression "(*(char *)*param_1 == ')')" ( (binary_expression "*(char *)*param_1 == ')'" (pointer_expression "*(char *)*param_1" * (cast_expression "(char *)*param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier))) == (char_literal "')'" ' character ')) )) (compound_statement "{\n      *param_1 = (long)((char *)*param_1 + 1);\n      return 1;\n    }" { (expression_statement "*param_1 = (long)((char *)*param_1 + 1);" (assignment_expression "*param_1 = (long)((char *)*param_1 + 1)" (pointer_expression "*param_1" * identifier) = (cast_expression "(long)((char *)*param_1 + 1)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "((char *)*param_1 + 1)" ( (binary_expression "(char *)*param_1 + 1" (cast_expression "(char *)*param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier)) + number_literal) )))) ;) (return_statement "return 1;" return number_literal ;) })) })) (expression_statement "FUN_001104b0(pcVar1);" (call_expression "FUN_001104b0(pcVar1)" identifier (argument_list "(pcVar1)" ( identifier ))) ;) (return_statement "return 0;" return number_literal ;) })))
(translation_unit "bfd_boolean parse_stab_type_number(char **pp,int *typenums,char *p_end)\n\n{\n  char *p;\n  bfd_vma bVar1;\n  \n  p = *pp;\n  if (*p != '(') {\n    *typenums = 0;\n    bVar1 = parse_number(pp,(bfd_boolean *)0x0,p_end);\n    typenums[1] = (int)bVar1;\n    return 1;\n  }\n  *pp = p + 1;\n  bVar1 = parse_number(pp,(bfd_boolean *)0x0,p_end);\n  *typenums = (int)bVar1;\n  if (**pp == ',') {\n    *pp = *pp + 1;\n    bVar1 = parse_number(pp,(bfd_boolean *)0x0,p_end);\n    typenums[1] = (int)bVar1;\n    if (**pp == ')') {\n      *pp = *pp + 1;\n      return 1;\n    }\n  }\n  bad_stab(p);\n  return 0;\n}\n\n" (function_definition "bfd_boolean parse_stab_type_number(char **pp,int *typenums,char *p_end)\n\n{\n  char *p;\n  bfd_vma bVar1;\n  \n  p = *pp;\n  if (*p != '(') {\n    *typenums = 0;\n    bVar1 = parse_number(pp,(bfd_boolean *)0x0,p_end);\n    typenums[1] = (int)bVar1;\n    return 1;\n  }\n  *pp = p + 1;\n  bVar1 = parse_number(pp,(bfd_boolean *)0x0,p_end);\n  *typenums = (int)bVar1;\n  if (**pp == ',') {\n    *pp = *pp + 1;\n    bVar1 = parse_number(pp,(bfd_boolean *)0x0,p_end);\n    typenums[1] = (int)bVar1;\n    if (**pp == ')') {\n      *pp = *pp + 1;\n      return 1;\n    }\n  }\n  bad_stab(p);\n  return 0;\n}" type_identifier (function_declarator "parse_stab_type_number(char **pp,int *typenums,char *p_end)" identifier (parameter_list "(char **pp,int *typenums,char *p_end)" ( (parameter_declaration "char **pp" primitive_type (pointer_declarator "**pp" * (pointer_declarator "*pp" * identifier))) , (parameter_declaration "int *typenums" primitive_type (pointer_declarator "*typenums" * identifier)) , (parameter_declaration "char *p_end" primitive_type (pointer_declarator "*p_end" * identifier)) ))) (compound_statement "{\n  char *p;\n  bfd_vma bVar1;\n  \n  p = *pp;\n  if (*p != '(') {\n    *typenums = 0;\n    bVar1 = parse_number(pp,(bfd_boolean *)0x0,p_end);\n    typenums[1] = (int)bVar1;\n    return 1;\n  }\n  *pp = p + 1;\n  bVar1 = parse_number(pp,(bfd_boolean *)0x0,p_end);\n  *typenums = (int)bVar1;\n  if (**pp == ',') {\n    *pp = *pp + 1;\n    bVar1 = parse_number(pp,(bfd_boolean *)0x0,p_end);\n    typenums[1] = (int)bVar1;\n    if (**pp == ')') {\n      *pp = *pp + 1;\n      return 1;\n    }\n  }\n  bad_stab(p);\n  return 0;\n}" { (declaration "char *p;" primitive_type (pointer_declarator "*p" * identifier) ;) (declaration "bfd_vma bVar1;" type_identifier identifier ;) (expression_statement "p = *pp;" (assignment_expression "p = *pp" identifier = (pointer_expression "*pp" * identifier)) ;) (if_statement "if (*p != '(') {\n    *typenums = 0;\n    bVar1 = parse_number(pp,(bfd_boolean *)0x0,p_end);\n    typenums[1] = (int)bVar1;\n    return 1;\n  }" if (parenthesized_expression "(*p != '(')" ( (binary_expression "*p != '('" (pointer_expression "*p" * identifier) != (char_literal "'('" ' character ')) )) (compound_statement "{\n    *typenums = 0;\n    bVar1 = parse_number(pp,(bfd_boolean *)0x0,p_end);\n    typenums[1] = (int)bVar1;\n    return 1;\n  }" { (expression_statement "*typenums = 0;" (assignment_expression "*typenums = 0" (pointer_expression "*typenums" * identifier) = number_literal) ;) (expression_statement "bVar1 = parse_number(pp,(bfd_boolean *)0x0,p_end);" (assignment_expression "bVar1 = parse_number(pp,(bfd_boolean *)0x0,p_end)" identifier = (call_expression "parse_number(pp,(bfd_boolean *)0x0,p_end)" identifier (argument_list "(pp,(bfd_boolean *)0x0,p_end)" ( identifier , (cast_expression "(bfd_boolean *)0x0" ( (type_descriptor "bfd_boolean *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , identifier )))) ;) (expression_statement "typenums[1] = (int)bVar1;" (assignment_expression "typenums[1] = (int)bVar1" (subscript_expression "typenums[1]" identifier [ number_literal ]) = (cast_expression "(int)bVar1" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (return_statement "return 1;" return number_literal ;) })) (expression_statement "*pp = p + 1;" (assignment_expression "*pp = p + 1" (pointer_expression "*pp" * identifier) = (binary_expression "p + 1" identifier + number_literal)) ;) (expression_statement "bVar1 = parse_number(pp,(bfd_boolean *)0x0,p_end);" (assignment_expression "bVar1 = parse_number(pp,(bfd_boolean *)0x0,p_end)" identifier = (call_expression "parse_number(pp,(bfd_boolean *)0x0,p_end)" identifier (argument_list "(pp,(bfd_boolean *)0x0,p_end)" ( identifier , (cast_expression "(bfd_boolean *)0x0" ( (type_descriptor "bfd_boolean *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , identifier )))) ;) (expression_statement "*typenums = (int)bVar1;" (assignment_expression "*typenums = (int)bVar1" (pointer_expression "*typenums" * identifier) = (cast_expression "(int)bVar1" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (if_statement "if (**pp == ',') {\n    *pp = *pp + 1;\n    bVar1 = parse_number(pp,(bfd_boolean *)0x0,p_end);\n    typenums[1] = (int)bVar1;\n    if (**pp == ')') {\n      *pp = *pp + 1;\n      return 1;\n    }\n  }" if (parenthesized_expression "(**pp == ',')" ( (binary_expression "**pp == ','" (pointer_expression "**pp" * (pointer_expression "*pp" * identifier)) == (char_literal "','" ' character ')) )) (compound_statement "{\n    *pp = *pp + 1;\n    bVar1 = parse_number(pp,(bfd_boolean *)0x0,p_end);\n    typenums[1] = (int)bVar1;\n    if (**pp == ')') {\n      *pp = *pp + 1;\n      return 1;\n    }\n  }" { (expression_statement "*pp = *pp + 1;" (assignment_expression "*pp = *pp + 1" (pointer_expression "*pp" * identifier) = (binary_expression "*pp + 1" (pointer_expression "*pp" * identifier) + number_literal)) ;) (expression_statement "bVar1 = parse_number(pp,(bfd_boolean *)0x0,p_end);" (assignment_expression "bVar1 = parse_number(pp,(bfd_boolean *)0x0,p_end)" identifier = (call_expression "parse_number(pp,(bfd_boolean *)0x0,p_end)" identifier (argument_list "(pp,(bfd_boolean *)0x0,p_end)" ( identifier , (cast_expression "(bfd_boolean *)0x0" ( (type_descriptor "bfd_boolean *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , identifier )))) ;) (expression_statement "typenums[1] = (int)bVar1;" (assignment_expression "typenums[1] = (int)bVar1" (subscript_expression "typenums[1]" identifier [ number_literal ]) = (cast_expression "(int)bVar1" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (if_statement "if (**pp == ')') {\n      *pp = *pp + 1;\n      return 1;\n    }" if (parenthesized_expression "(**pp == ')')" ( (binary_expression "**pp == ')'" (pointer_expression "**pp" * (pointer_expression "*pp" * identifier)) == (char_literal "')'" ' character ')) )) (compound_statement "{\n      *pp = *pp + 1;\n      return 1;\n    }" { (expression_statement "*pp = *pp + 1;" (assignment_expression "*pp = *pp + 1" (pointer_expression "*pp" * identifier) = (binary_expression "*pp + 1" (pointer_expression "*pp" * identifier) + number_literal)) ;) (return_statement "return 1;" return number_literal ;) })) })) (expression_statement "bad_stab(p);" (call_expression "bad_stab(p)" identifier (argument_list "(p)" ( identifier ))) ;) (return_statement "return 0;" return number_literal ;) })))
(translation_unit "undefined8 FUN_00110600(long *param_1,undefined4 *param_2,undefined8 param_3)\n\n{\n  char *pcVar1;\n  undefined4 uVar2;\n  \n  pcVar1 = (char *)*param_1;\n  if (*pcVar1 != '(') {\n    *param_2 = 0;\n    uVar2 = FUN_00110570(param_1,0);\n    param_2[1] = uVar2;\n    return 1;\n  }\n  *param_1 = (long)(pcVar1 + 1);\n  uVar2 = FUN_00110570(param_1,0);\n  *param_2 = uVar2;\n  if (*(char *)*param_1 == ',') {\n    *param_1 = (long)((char *)*param_1 + 1);\n    uVar2 = FUN_00110570(param_1,0,param_3);\n    param_2[1] = uVar2;\n    if (*(char *)*param_1 == ')') {\n      *param_1 = (long)((char *)*param_1 + 1);\n      return 1;\n    }\n  }\n  FUN_001104b0(pcVar1);\n  return 0;\n}\n\n" (function_definition "undefined8 FUN_00110600(long *param_1,undefined4 *param_2,undefined8 param_3)\n\n{\n  char *pcVar1;\n  undefined4 uVar2;\n  \n  pcVar1 = (char *)*param_1;\n  if (*pcVar1 != '(') {\n    *param_2 = 0;\n    uVar2 = FUN_00110570(param_1,0);\n    param_2[1] = uVar2;\n    return 1;\n  }\n  *param_1 = (long)(pcVar1 + 1);\n  uVar2 = FUN_00110570(param_1,0);\n  *param_2 = uVar2;\n  if (*(char *)*param_1 == ',') {\n    *param_1 = (long)((char *)*param_1 + 1);\n    uVar2 = FUN_00110570(param_1,0,param_3);\n    param_2[1] = uVar2;\n    if (*(char *)*param_1 == ')') {\n      *param_1 = (long)((char *)*param_1 + 1);\n      return 1;\n    }\n  }\n  FUN_001104b0(pcVar1);\n  return 0;\n}" type_identifier (function_declarator "FUN_00110600(long *param_1,undefined4 *param_2,undefined8 param_3)" identifier (parameter_list "(long *param_1,undefined4 *param_2,undefined8 param_3)" ( (parameter_declaration "long *param_1" (sized_type_specifier "long" long) (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "undefined4 *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "undefined8 param_3" type_identifier identifier) ))) (compound_statement "{\n  char *pcVar1;\n  undefined4 uVar2;\n  \n  pcVar1 = (char *)*param_1;\n  if (*pcVar1 != '(') {\n    *param_2 = 0;\n    uVar2 = FUN_00110570(param_1,0);\n    param_2[1] = uVar2;\n    return 1;\n  }\n  *param_1 = (long)(pcVar1 + 1);\n  uVar2 = FUN_00110570(param_1,0);\n  *param_2 = uVar2;\n  if (*(char *)*param_1 == ',') {\n    *param_1 = (long)((char *)*param_1 + 1);\n    uVar2 = FUN_00110570(param_1,0,param_3);\n    param_2[1] = uVar2;\n    if (*(char *)*param_1 == ')') {\n      *param_1 = (long)((char *)*param_1 + 1);\n      return 1;\n    }\n  }\n  FUN_001104b0(pcVar1);\n  return 0;\n}" { (declaration "char *pcVar1;" primitive_type (pointer_declarator "*pcVar1" * identifier) ;) (declaration "undefined4 uVar2;" type_identifier identifier ;) (expression_statement "pcVar1 = (char *)*param_1;" (assignment_expression "pcVar1 = (char *)*param_1" identifier = (cast_expression "(char *)*param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier))) ;) (if_statement "if (*pcVar1 != '(') {\n    *param_2 = 0;\n    uVar2 = FUN_00110570(param_1,0);\n    param_2[1] = uVar2;\n    return 1;\n  }" if (parenthesized_expression "(*pcVar1 != '(')" ( (binary_expression "*pcVar1 != '('" (pointer_expression "*pcVar1" * identifier) != (char_literal "'('" ' character ')) )) (compound_statement "{\n    *param_2 = 0;\n    uVar2 = FUN_00110570(param_1,0);\n    param_2[1] = uVar2;\n    return 1;\n  }" { (expression_statement "*param_2 = 0;" (assignment_expression "*param_2 = 0" (pointer_expression "*param_2" * identifier) = number_literal) ;) (expression_statement "uVar2 = FUN_00110570(param_1,0);" (assignment_expression "uVar2 = FUN_00110570(param_1,0)" identifier = (call_expression "FUN_00110570(param_1,0)" identifier (argument_list "(param_1,0)" ( identifier , number_literal )))) ;) (expression_statement "param_2[1] = uVar2;" (assignment_expression "param_2[1] = uVar2" (subscript_expression "param_2[1]" identifier [ number_literal ]) = identifier) ;) (return_statement "return 1;" return number_literal ;) })) (expression_statement "*param_1 = (long)(pcVar1 + 1);" (assignment_expression "*param_1 = (long)(pcVar1 + 1)" (pointer_expression "*param_1" * identifier) = (cast_expression "(long)(pcVar1 + 1)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(pcVar1 + 1)" ( (binary_expression "pcVar1 + 1" identifier + number_literal) )))) ;) (expression_statement "uVar2 = FUN_00110570(param_1,0);" (assignment_expression "uVar2 = FUN_00110570(param_1,0)" identifier = (call_expression "FUN_00110570(param_1,0)" identifier (argument_list "(param_1,0)" ( identifier , number_literal )))) ;) (expression_statement "*param_2 = uVar2;" (assignment_expression "*param_2 = uVar2" (pointer_expression "*param_2" * identifier) = identifier) ;) (if_statement "if (*(char *)*param_1 == ',') {\n    *param_1 = (long)((char *)*param_1 + 1);\n    uVar2 = FUN_00110570(param_1,0,param_3);\n    param_2[1] = uVar2;\n    if (*(char *)*param_1 == ')') {\n      *param_1 = (long)((char *)*param_1 + 1);\n      return 1;\n    }\n  }" if (parenthesized_expression "(*(char *)*param_1 == ',')" ( (binary_expression "*(char *)*param_1 == ','" (pointer_expression "*(char *)*param_1" * (cast_expression "(char *)*param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier))) == (char_literal "','" ' character ')) )) (compound_statement "{\n    *param_1 = (long)((char *)*param_1 + 1);\n    uVar2 = FUN_00110570(param_1,0,param_3);\n    param_2[1] = uVar2;\n    if (*(char *)*param_1 == ')') {\n      *param_1 = (long)((char *)*param_1 + 1);\n      return 1;\n    }\n  }" { (expression_statement "*param_1 = (long)((char *)*param_1 + 1);" (assignment_expression "*param_1 = (long)((char *)*param_1 + 1)" (pointer_expression "*param_1" * identifier) = (cast_expression "(long)((char *)*param_1 + 1)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "((char *)*param_1 + 1)" ( (binary_expression "(char *)*param_1 + 1" (cast_expression "(char *)*param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier)) + number_literal) )))) ;) (expression_statement "uVar2 = FUN_00110570(param_1,0,param_3);" (assignment_expression "uVar2 = FUN_00110570(param_1,0,param_3)" identifier = (call_expression "FUN_00110570(param_1,0,param_3)" identifier (argument_list "(param_1,0,param_3)" ( identifier , number_literal , identifier )))) ;) (expression_statement "param_2[1] = uVar2;" (assignment_expression "param_2[1] = uVar2" (subscript_expression "param_2[1]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (*(char *)*param_1 == ')') {\n      *param_1 = (long)((char *)*param_1 + 1);\n      return 1;\n    }" if (parenthesized_expression "(*(char *)*param_1 == ')')" ( (binary_expression "*(char *)*param_1 == ')'" (pointer_expression "*(char *)*param_1" * (cast_expression "(char *)*param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier))) == (char_literal "')'" ' character ')) )) (compound_statement "{\n      *param_1 = (long)((char *)*param_1 + 1);\n      return 1;\n    }" { (expression_statement "*param_1 = (long)((char *)*param_1 + 1);" (assignment_expression "*param_1 = (long)((char *)*param_1 + 1)" (pointer_expression "*param_1" * identifier) = (cast_expression "(long)((char *)*param_1 + 1)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "((char *)*param_1 + 1)" ( (binary_expression "(char *)*param_1 + 1" (cast_expression "(char *)*param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier)) + number_literal) )))) ;) (return_statement "return 1;" return number_literal ;) })) })) (expression_statement "FUN_001104b0(pcVar1);" (call_expression "FUN_001104b0(pcVar1)" identifier (argument_list "(pcVar1)" ( identifier ))) ;) (return_statement "return 0;" return number_literal ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration (sized_type_specifier long) (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != (char_literal ' character ')) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (return_statement return LIT ;) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) == (char_literal ' character ')) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT , IDENT )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) == (char_literal ' character ')) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)) + LIT) )))) ;) (return_statement return LIT ;) })) })) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (return_statement return LIT ;) })))
(function_definition "undefined8 FUN_00110600(long *param_1,undefined4 *param_2,undefined8 param_3)\n\n{\n  char *pcVar1;\n  undefined4 uVar2;\n  \n  pcVar1 = (char *)*param_1;\n  if (*pcVar1 != '(') {\n    *param_2 = 0;\n    uVar2 = FUN_00110570(param_1,0);\n    param_2[1] = uVar2;\n    return 1;\n  }\n  *param_1 = (long)(pcVar1 + 1);\n  uVar2 = FUN_00110570(param_1,0);\n  *param_2 = uVar2;\n  if (*(char *)*param_1 == ',') {\n    *param_1 = (long)((char *)*param_1 + 1);\n    uVar2 = FUN_00110570(param_1,0,param_3);\n    param_2[1] = uVar2;\n    if (*(char *)*param_1 == ')') {\n      *param_1 = (long)((char *)*param_1 + 1);\n      return 1;\n    }\n  }\n  FUN_001104b0(pcVar1);\n  return 0;\n}" (type_identifier "undefined8") (function_declarator "FUN_00110600(long *param_1,undefined4 *param_2,undefined8 param_3)" (identifier "FUN_00110600") (parameter_list "(long *param_1,undefined4 *param_2,undefined8 param_3)" (( "(") (parameter_declaration "long *param_1" (sized_type_specifier "long" (long "long")) (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "undefined4 *param_2" (type_identifier "undefined4") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) (, ",") (parameter_declaration "undefined8 param_3" (type_identifier "undefined8") (identifier "param_3")) () ")"))) (compound_statement "{\n  char *pcVar1;\n  undefined4 uVar2;\n  \n  pcVar1 = (char *)*param_1;\n  if (*pcVar1 != '(') {\n    *param_2 = 0;\n    uVar2 = FUN_00110570(param_1,0);\n    param_2[1] = uVar2;\n    return 1;\n  }\n  *param_1 = (long)(pcVar1 + 1);\n  uVar2 = FUN_00110570(param_1,0);\n  *param_2 = uVar2;\n  if (*(char *)*param_1 == ',') {\n    *param_1 = (long)((char *)*param_1 + 1);\n    uVar2 = FUN_00110570(param_1,0,param_3);\n    param_2[1] = uVar2;\n    if (*(char *)*param_1 == ')') {\n      *param_1 = (long)((char *)*param_1 + 1);\n      return 1;\n    }\n  }\n  FUN_001104b0(pcVar1);\n  return 0;\n}" ({ "{") (declaration "char *pcVar1;" (primitive_type "char") (pointer_declarator "*pcVar1" (* "*") (identifier "pcVar1")) (; ";")) (declaration "undefined4 uVar2;" (type_identifier "undefined4") (identifier "uVar2") (; ";")) (expression_statement "pcVar1 = (char *)*param_1;" (assignment_expression "pcVar1 = (char *)*param_1" (identifier "pcVar1") (= "=") (cast_expression "(char *)*param_1" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_1" (* "*") (identifier "param_1")))) (; ";")) (if_statement "if (*pcVar1 != '(') {\n    *param_2 = 0;\n    uVar2 = FUN_00110570(param_1,0);\n    param_2[1] = uVar2;\n    return 1;\n  }" (if "if") (parenthesized_expression "(*pcVar1 != '(')" (( "(") (binary_expression "*pcVar1 != '('" (pointer_expression "*pcVar1" (* "*") (identifier "pcVar1")) (!= "!=") (char_literal "'('" (' "'") (character "(") (' "'"))) () ")")) (compound_statement "{\n    *param_2 = 0;\n    uVar2 = FUN_00110570(param_1,0);\n    param_2[1] = uVar2;\n    return 1;\n  }" ({ "{") (expression_statement "*param_2 = 0;" (assignment_expression "*param_2 = 0" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar2 = FUN_00110570(param_1,0);" (assignment_expression "uVar2 = FUN_00110570(param_1,0)" (identifier "uVar2") (= "=") (call_expression "FUN_00110570(param_1,0)" (identifier "FUN_00110570") (argument_list "(param_1,0)" (( "(") (identifier "param_1") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "param_2[1] = uVar2;" (assignment_expression "param_2[1] = uVar2" (subscript_expression "param_2[1]" (identifier "param_2") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "uVar2")) (; ";")) (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (expression_statement "*param_1 = (long)(pcVar1 + 1);" (assignment_expression "*param_1 = (long)(pcVar1 + 1)" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (cast_expression "(long)(pcVar1 + 1)" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (parenthesized_expression "(pcVar1 + 1)" (( "(") (binary_expression "pcVar1 + 1" (identifier "pcVar1") (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "uVar2 = FUN_00110570(param_1,0);" (assignment_expression "uVar2 = FUN_00110570(param_1,0)" (identifier "uVar2") (= "=") (call_expression "FUN_00110570(param_1,0)" (identifier "FUN_00110570") (argument_list "(param_1,0)" (( "(") (identifier "param_1") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "*param_2 = uVar2;" (assignment_expression "*param_2 = uVar2" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (= "=") (identifier "uVar2")) (; ";")) (if_statement "if (*(char *)*param_1 == ',') {\n    *param_1 = (long)((char *)*param_1 + 1);\n    uVar2 = FUN_00110570(param_1,0,param_3);\n    param_2[1] = uVar2;\n    if (*(char *)*param_1 == ')') {\n      *param_1 = (long)((char *)*param_1 + 1);\n      return 1;\n    }\n  }" (if "if") (parenthesized_expression "(*(char *)*param_1 == ',')" (( "(") (binary_expression "*(char *)*param_1 == ','" (pointer_expression "*(char *)*param_1" (* "*") (cast_expression "(char *)*param_1" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_1" (* "*") (identifier "param_1")))) (== "==") (char_literal "','" (' "'") (character ",") (' "'"))) () ")")) (compound_statement "{\n    *param_1 = (long)((char *)*param_1 + 1);\n    uVar2 = FUN_00110570(param_1,0,param_3);\n    param_2[1] = uVar2;\n    if (*(char *)*param_1 == ')') {\n      *param_1 = (long)((char *)*param_1 + 1);\n      return 1;\n    }\n  }" ({ "{") (expression_statement "*param_1 = (long)((char *)*param_1 + 1);" (assignment_expression "*param_1 = (long)((char *)*param_1 + 1)" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (cast_expression "(long)((char *)*param_1 + 1)" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (parenthesized_expression "((char *)*param_1 + 1)" (( "(") (binary_expression "(char *)*param_1 + 1" (cast_expression "(char *)*param_1" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "uVar2 = FUN_00110570(param_1,0,param_3);" (assignment_expression "uVar2 = FUN_00110570(param_1,0,param_3)" (identifier "uVar2") (= "=") (call_expression "FUN_00110570(param_1,0,param_3)" (identifier "FUN_00110570") (argument_list "(param_1,0,param_3)" (( "(") (identifier "param_1") (, ",") (number_literal "0") (, ",") (identifier "param_3") () ")")))) (; ";")) (expression_statement "param_2[1] = uVar2;" (assignment_expression "param_2[1] = uVar2" (subscript_expression "param_2[1]" (identifier "param_2") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "uVar2")) (; ";")) (if_statement "if (*(char *)*param_1 == ')') {\n      *param_1 = (long)((char *)*param_1 + 1);\n      return 1;\n    }" (if "if") (parenthesized_expression "(*(char *)*param_1 == ')')" (( "(") (binary_expression "*(char *)*param_1 == ')'" (pointer_expression "*(char *)*param_1" (* "*") (cast_expression "(char *)*param_1" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_1" (* "*") (identifier "param_1")))) (== "==") (char_literal "')'" (' "'") (character ")") (' "'"))) () ")")) (compound_statement "{\n      *param_1 = (long)((char *)*param_1 + 1);\n      return 1;\n    }" ({ "{") (expression_statement "*param_1 = (long)((char *)*param_1 + 1);" (assignment_expression "*param_1 = (long)((char *)*param_1 + 1)" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (cast_expression "(long)((char *)*param_1 + 1)" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (parenthesized_expression "((char *)*param_1 + 1)" (( "(") (binary_expression "(char *)*param_1 + 1" (cast_expression "(char *)*param_1" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (+ "+") (number_literal "1")) () ")")))) (; ";")) (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (} "}"))) (expression_statement "FUN_001104b0(pcVar1);" (call_expression "FUN_001104b0(pcVar1)" (identifier "FUN_001104b0") (argument_list "(pcVar1)" (( "(") (identifier "pcVar1") () ")"))) (; ";")) (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}")))

type_1 function_1(char **pp,int *typenums,char *p_end)

{
  char *var_2;
  type_2 bVar1;
  
  var_2 = *pp;
  if (*var_2 != '(') {
    *typenums = 0;
    bVar1 = var_1(pp,(type_1 *)0x0,p_end);
    typenums[1] = (int)bVar1;
    return 1;
  }
  *pp = var_2 + 1;
  bVar1 = var_1(pp,(type_1 *)0x0,p_end);
  *typenums = (int)bVar1;
  if (**pp == ',') {
    *pp = *pp + 1;
    bVar1 = var_1(pp,(type_1 *)0x0,p_end);
    typenums[1] = (int)bVar1;
    if (**pp == ')') {
      *pp = *pp + 1;
      return 1;
    }
  }
  var_3(var_2);
  return 0;
}


(translation_unit (function_definition type: (type_identifier) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (sized_type_specifier) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (type_identifier) declarator: (identifier)))) body: (compound_statement (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (char_literal (character)))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (return_statement (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier)))) right: (char_literal (character)))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (identifier))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier)))) right: (char_literal (character)))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))) right: (number_literal)))))) (return_statement (number_literal)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (return_statement (number_literal)))))

undefined8 MASKED(long *param_1,undefined4 *param_2,undefined8 param_3)

{
  char *pcVar1;
  undefined4 uVar2;
  
  pcVar1 = (char *)*param_1;
  if (*pcVar1 != '(') {
    *param_2 = 0;
    uVar2 = FUN_00110570(param_1,0);
    param_2[1] = uVar2;
    return 1;
  }
  *param_1 = (long)(pcVar1 + 1);
  uVar2 = FUN_00110570(param_1,0);
  *param_2 = uVar2;
  if (*(char *)*param_1 == ',') {
    *param_1 = (long)((char *)*param_1 + 1);
    uVar2 = FUN_00110570(param_1,0,param_3);
    param_2[1] = uVar2;
    if (*(char *)*param_1 == ')') {
      *param_1 = (long)((char *)*param_1 + 1);
      return 1;
    }
  }
  FUN_001104b0(pcVar1);
  return 0;
}

