
/* WARNING: Enum "anon_enum_32": Some values do not have unique names */

int sk_addrtype(SockAddr addr)

{
  int iVar1;
  int iVar2;
  
  iVar2 = 3;
  if (1 < (uint)addr->superfamily) {
    iVar2 = 1;
    if ((addr->ais != (addrinfo *)0x0) && (iVar1 = addr->ais->ai_family, iVar1 != 2)) {
      return (iVar1 != 10) + 2;
    }
  }
  return iVar2;
}



char FUN_00070810(int param_1)

{
  int iVar1;
  char cVar2;
  
  cVar2 = '\x03';
  if (1 < *(uint *)(param_1 + 8)) {
    cVar2 = '\x01';
    if ((*(int *)(param_1 + 0xc) != 0) &&
       (iVar1 = *(int *)(*(int *)(param_1 + 0xc) + 4), iVar1 != 2)) {
      return (iVar1 != 10) + '\x02';
    }
  }
  return cVar2;
}


MOV EDX,dword ptr [ESP + 0x4]
MOV EAX,0x3
CMP dword ptr [EDX + 0x8],0x1
JA 0x00070820
RET
MOV EDX,dword ptr [EDX + 0xc]
MOV EAX,0x1
TEST EDX,EDX
JZ 0x0007081f
MOV EDX,dword ptr [EDX + 0x4]
CMP EDX,0x2
JZ 0x0007081f
XOR EAX,EAX
CMP EDX,0xa
SETNZ AL
ADD EAX,0x2
RET
(translation_unit "char FUN_00070810(int param_1)\n\n{\n  int iVar1;\n  char cVar2;\n  \n  cVar2 = '\x03';\n  if (1 < *(uint *)(param_1 + 8)) {\n    cVar2 = '\x01';\n    if ((*(int *)(param_1 + 0xc) != 0) &&\n       (iVar1 = *(int *)(*(int *)(param_1 + 0xc) + 4), iVar1 != 2)) {\n      return (iVar1 != 10) + '\x02';\n    }\n  }\n  return cVar2;\n}\n\n" (function_definition "char FUN_00070810(int param_1)\n\n{\n  int iVar1;\n  char cVar2;\n  \n  cVar2 = '\x03';\n  if (1 < *(uint *)(param_1 + 8)) {\n    cVar2 = '\x01';\n    if ((*(int *)(param_1 + 0xc) != 0) &&\n       (iVar1 = *(int *)(*(int *)(param_1 + 0xc) + 4), iVar1 != 2)) {\n      return (iVar1 != 10) + '\x02';\n    }\n  }\n  return cVar2;\n}" primitive_type (function_declarator "FUN_00070810(int param_1)" identifier (parameter_list "(int param_1)" ( (parameter_declaration "int param_1" primitive_type identifier) ))) (compound_statement "{\n  int iVar1;\n  char cVar2;\n  \n  cVar2 = '\x03';\n  if (1 < *(uint *)(param_1 + 8)) {\n    cVar2 = '\x01';\n    if ((*(int *)(param_1 + 0xc) != 0) &&\n       (iVar1 = *(int *)(*(int *)(param_1 + 0xc) + 4), iVar1 != 2)) {\n      return (iVar1 != 10) + '\x02';\n    }\n  }\n  return cVar2;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "char cVar2;" primitive_type identifier ;) (expression_statement "cVar2 = '\x03';" (assignment_expression "cVar2 = '\x03'" identifier = (char_literal "'\x03'" ' escape_sequence ')) ;) (if_statement "if (1 < *(uint *)(param_1 + 8)) {\n    cVar2 = '\x01';\n    if ((*(int *)(param_1 + 0xc) != 0) &&\n       (iVar1 = *(int *)(*(int *)(param_1 + 0xc) + 4), iVar1 != 2)) {\n      return (iVar1 != 10) + '\x02';\n    }\n  }" if (parenthesized_expression "(1 < *(uint *)(param_1 + 8))" ( (binary_expression "1 < *(uint *)(param_1 + 8)" number_literal < (pointer_expression "*(uint *)(param_1 + 8)" * (cast_expression "(uint *)(param_1 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) )) (compound_statement "{\n    cVar2 = '\x01';\n    if ((*(int *)(param_1 + 0xc) != 0) &&\n       (iVar1 = *(int *)(*(int *)(param_1 + 0xc) + 4), iVar1 != 2)) {\n      return (iVar1 != 10) + '\x02';\n    }\n  }" { (expression_statement "cVar2 = '\x01';" (assignment_expression "cVar2 = '\x01'" identifier = (char_literal "'\x01'" ' escape_sequence ')) ;) (if_statement "if ((*(int *)(param_1 + 0xc) != 0) &&\n       (iVar1 = *(int *)(*(int *)(param_1 + 0xc) + 4), iVar1 != 2)) {\n      return (iVar1 != 10) + '\x02';\n    }" if (parenthesized_expression "((*(int *)(param_1 + 0xc) != 0) &&\n       (iVar1 = *(int *)(*(int *)(param_1 + 0xc) + 4), iVar1 != 2))" ( (binary_expression "(*(int *)(param_1 + 0xc) != 0) &&\n       (iVar1 = *(int *)(*(int *)(param_1 + 0xc) + 4), iVar1 != 2)" (parenthesized_expression "(*(int *)(param_1 + 0xc) != 0)" ( (binary_expression "*(int *)(param_1 + 0xc) != 0" (pointer_expression "*(int *)(param_1 + 0xc)" * (cast_expression "(int *)(param_1 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))) != number_literal) )) && (parenthesized_expression "(iVar1 = *(int *)(*(int *)(param_1 + 0xc) + 4), iVar1 != 2)" ( (comma_expression "iVar1 = *(int *)(*(int *)(param_1 + 0xc) + 4), iVar1 != 2" (assignment_expression "iVar1 = *(int *)(*(int *)(param_1 + 0xc) + 4)" identifier = (pointer_expression "*(int *)(*(int *)(param_1 + 0xc) + 4)" * (cast_expression "(int *)(*(int *)(param_1 + 0xc) + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0xc) + 4)" ( (binary_expression "*(int *)(param_1 + 0xc) + 4" (pointer_expression "*(int *)(param_1 + 0xc)" * (cast_expression "(int *)(param_1 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))) + number_literal) ))))) , (binary_expression "iVar1 != 2" identifier != number_literal)) ))) )) (compound_statement "{\n      return (iVar1 != 10) + '\x02';\n    }" { (return_statement "return (iVar1 != 10) + '\x02';" return (binary_expression "(iVar1 != 10) + '\x02'" (parenthesized_expression "(iVar1 != 10)" ( (binary_expression "iVar1 != 10" identifier != number_literal) )) + (char_literal "'\x02'" ' escape_sequence ')) ;) })) })) (return_statement "return cVar2;" return identifier ;) })))
(translation_unit "/* WARNING: Enum "anon_enum_32": Some values do not have unique names */\n\nint sk_addrtype(SockAddr addr)\n\n{\n  int iVar1;\n  int iVar2;\n  \n  iVar2 = 3;\n  if (1 < (uint)addr->superfamily) {\n    iVar2 = 1;\n    if ((addr->ais != (addrinfo *)0x0) && (iVar1 = addr->ais->ai_family, iVar1 != 2)) {\n      return (iVar1 != 10) + 2;\n    }\n  }\n  return iVar2;\n}\n\n" comment (function_definition "int sk_addrtype(SockAddr addr)\n\n{\n  int iVar1;\n  int iVar2;\n  \n  iVar2 = 3;\n  if (1 < (uint)addr->superfamily) {\n    iVar2 = 1;\n    if ((addr->ais != (addrinfo *)0x0) && (iVar1 = addr->ais->ai_family, iVar1 != 2)) {\n      return (iVar1 != 10) + 2;\n    }\n  }\n  return iVar2;\n}" primitive_type (function_declarator "sk_addrtype(SockAddr addr)" identifier (parameter_list "(SockAddr addr)" ( (parameter_declaration "SockAddr addr" type_identifier identifier) ))) (compound_statement "{\n  int iVar1;\n  int iVar2;\n  \n  iVar2 = 3;\n  if (1 < (uint)addr->superfamily) {\n    iVar2 = 1;\n    if ((addr->ais != (addrinfo *)0x0) && (iVar1 = addr->ais->ai_family, iVar1 != 2)) {\n      return (iVar1 != 10) + 2;\n    }\n  }\n  return iVar2;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (expression_statement "iVar2 = 3;" (assignment_expression "iVar2 = 3" identifier = number_literal) ;) (if_statement "if (1 < (uint)addr->superfamily) {\n    iVar2 = 1;\n    if ((addr->ais != (addrinfo *)0x0) && (iVar1 = addr->ais->ai_family, iVar1 != 2)) {\n      return (iVar1 != 10) + 2;\n    }\n  }" if (parenthesized_expression "(1 < (uint)addr->superfamily)" ( (binary_expression "1 < (uint)addr->superfamily" number_literal < (cast_expression "(uint)addr->superfamily" ( (type_descriptor "uint" type_identifier) ) (field_expression "addr->superfamily" identifier -> field_identifier))) )) (compound_statement "{\n    iVar2 = 1;\n    if ((addr->ais != (addrinfo *)0x0) && (iVar1 = addr->ais->ai_family, iVar1 != 2)) {\n      return (iVar1 != 10) + 2;\n    }\n  }" { (expression_statement "iVar2 = 1;" (assignment_expression "iVar2 = 1" identifier = number_literal) ;) (if_statement "if ((addr->ais != (addrinfo *)0x0) && (iVar1 = addr->ais->ai_family, iVar1 != 2)) {\n      return (iVar1 != 10) + 2;\n    }" if (parenthesized_expression "((addr->ais != (addrinfo *)0x0) && (iVar1 = addr->ais->ai_family, iVar1 != 2))" ( (binary_expression "(addr->ais != (addrinfo *)0x0) && (iVar1 = addr->ais->ai_family, iVar1 != 2)" (parenthesized_expression "(addr->ais != (addrinfo *)0x0)" ( (binary_expression "addr->ais != (addrinfo *)0x0" (field_expression "addr->ais" identifier -> field_identifier) != (cast_expression "(addrinfo *)0x0" ( (type_descriptor "addrinfo *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(iVar1 = addr->ais->ai_family, iVar1 != 2)" ( (comma_expression "iVar1 = addr->ais->ai_family, iVar1 != 2" (assignment_expression "iVar1 = addr->ais->ai_family" identifier = (field_expression "addr->ais->ai_family" (field_expression "addr->ais" identifier -> field_identifier) -> field_identifier)) , (binary_expression "iVar1 != 2" identifier != number_literal)) ))) )) (compound_statement "{\n      return (iVar1 != 10) + 2;\n    }" { (return_statement "return (iVar1 != 10) + 2;" return (binary_expression "(iVar1 != 10) + 2" (parenthesized_expression "(iVar1 != 10)" ( (binary_expression "iVar1 != 10" identifier != number_literal) )) + number_literal) ;) })) })) (return_statement "return iVar2;" return identifier ;) })))
(translation_unit "char FUN_00070810(int param_1)\n\n{\n  int iVar1;\n  char cVar2;\n  \n  cVar2 = '\x03';\n  if (1 < *(uint *)(param_1 + 8)) {\n    cVar2 = '\x01';\n    if ((*(int *)(param_1 + 0xc) != 0) &&\n       (iVar1 = *(int *)(*(int *)(param_1 + 0xc) + 4), iVar1 != 2)) {\n      return (iVar1 != 10) + '\x02';\n    }\n  }\n  return cVar2;\n}\n\n" (function_definition "char FUN_00070810(int param_1)\n\n{\n  int iVar1;\n  char cVar2;\n  \n  cVar2 = '\x03';\n  if (1 < *(uint *)(param_1 + 8)) {\n    cVar2 = '\x01';\n    if ((*(int *)(param_1 + 0xc) != 0) &&\n       (iVar1 = *(int *)(*(int *)(param_1 + 0xc) + 4), iVar1 != 2)) {\n      return (iVar1 != 10) + '\x02';\n    }\n  }\n  return cVar2;\n}" primitive_type (function_declarator "FUN_00070810(int param_1)" identifier (parameter_list "(int param_1)" ( (parameter_declaration "int param_1" primitive_type identifier) ))) (compound_statement "{\n  int iVar1;\n  char cVar2;\n  \n  cVar2 = '\x03';\n  if (1 < *(uint *)(param_1 + 8)) {\n    cVar2 = '\x01';\n    if ((*(int *)(param_1 + 0xc) != 0) &&\n       (iVar1 = *(int *)(*(int *)(param_1 + 0xc) + 4), iVar1 != 2)) {\n      return (iVar1 != 10) + '\x02';\n    }\n  }\n  return cVar2;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "char cVar2;" primitive_type identifier ;) (expression_statement "cVar2 = '\x03';" (assignment_expression "cVar2 = '\x03'" identifier = (char_literal "'\x03'" ' escape_sequence ')) ;) (if_statement "if (1 < *(uint *)(param_1 + 8)) {\n    cVar2 = '\x01';\n    if ((*(int *)(param_1 + 0xc) != 0) &&\n       (iVar1 = *(int *)(*(int *)(param_1 + 0xc) + 4), iVar1 != 2)) {\n      return (iVar1 != 10) + '\x02';\n    }\n  }" if (parenthesized_expression "(1 < *(uint *)(param_1 + 8))" ( (binary_expression "1 < *(uint *)(param_1 + 8)" number_literal < (pointer_expression "*(uint *)(param_1 + 8)" * (cast_expression "(uint *)(param_1 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) )) (compound_statement "{\n    cVar2 = '\x01';\n    if ((*(int *)(param_1 + 0xc) != 0) &&\n       (iVar1 = *(int *)(*(int *)(param_1 + 0xc) + 4), iVar1 != 2)) {\n      return (iVar1 != 10) + '\x02';\n    }\n  }" { (expression_statement "cVar2 = '\x01';" (assignment_expression "cVar2 = '\x01'" identifier = (char_literal "'\x01'" ' escape_sequence ')) ;) (if_statement "if ((*(int *)(param_1 + 0xc) != 0) &&\n       (iVar1 = *(int *)(*(int *)(param_1 + 0xc) + 4), iVar1 != 2)) {\n      return (iVar1 != 10) + '\x02';\n    }" if (parenthesized_expression "((*(int *)(param_1 + 0xc) != 0) &&\n       (iVar1 = *(int *)(*(int *)(param_1 + 0xc) + 4), iVar1 != 2))" ( (binary_expression "(*(int *)(param_1 + 0xc) != 0) &&\n       (iVar1 = *(int *)(*(int *)(param_1 + 0xc) + 4), iVar1 != 2)" (parenthesized_expression "(*(int *)(param_1 + 0xc) != 0)" ( (binary_expression "*(int *)(param_1 + 0xc) != 0" (pointer_expression "*(int *)(param_1 + 0xc)" * (cast_expression "(int *)(param_1 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))) != number_literal) )) && (parenthesized_expression "(iVar1 = *(int *)(*(int *)(param_1 + 0xc) + 4), iVar1 != 2)" ( (comma_expression "iVar1 = *(int *)(*(int *)(param_1 + 0xc) + 4), iVar1 != 2" (assignment_expression "iVar1 = *(int *)(*(int *)(param_1 + 0xc) + 4)" identifier = (pointer_expression "*(int *)(*(int *)(param_1 + 0xc) + 4)" * (cast_expression "(int *)(*(int *)(param_1 + 0xc) + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0xc) + 4)" ( (binary_expression "*(int *)(param_1 + 0xc) + 4" (pointer_expression "*(int *)(param_1 + 0xc)" * (cast_expression "(int *)(param_1 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))) + number_literal) ))))) , (binary_expression "iVar1 != 2" identifier != number_literal)) ))) )) (compound_statement "{\n      return (iVar1 != 10) + '\x02';\n    }" { (return_statement "return (iVar1 != 10) + '\x02';" return (binary_expression "(iVar1 != 10) + '\x02'" (parenthesized_expression "(iVar1 != 10)" ( (binary_expression "iVar1 != 10" identifier != number_literal) )) + (char_literal "'\x02'" ' escape_sequence ')) ;) })) })) (return_statement "return cVar2;" return identifier ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (char_literal ' escape_sequence ')) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (char_literal ' escape_sequence ')) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) , (binary_expression IDENT != LIT)) ))) )) (compound_statement { (return_statement return (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) + (char_literal ' escape_sequence ')) ;) })) })) (return_statement return IDENT ;) })))
(function_definition "char FUN_00070810(int param_1)\n\n{\n  int iVar1;\n  char cVar2;\n  \n  cVar2 = '\x03';\n  if (1 < *(uint *)(param_1 + 8)) {\n    cVar2 = '\x01';\n    if ((*(int *)(param_1 + 0xc) != 0) &&\n       (iVar1 = *(int *)(*(int *)(param_1 + 0xc) + 4), iVar1 != 2)) {\n      return (iVar1 != 10) + '\x02';\n    }\n  }\n  return cVar2;\n}" (primitive_type "char") (function_declarator "FUN_00070810(int param_1)" (identifier "FUN_00070810") (parameter_list "(int param_1)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) () ")"))) (compound_statement "{\n  int iVar1;\n  char cVar2;\n  \n  cVar2 = '\x03';\n  if (1 < *(uint *)(param_1 + 8)) {\n    cVar2 = '\x01';\n    if ((*(int *)(param_1 + 0xc) != 0) &&\n       (iVar1 = *(int *)(*(int *)(param_1 + 0xc) + 4), iVar1 != 2)) {\n      return (iVar1 != 10) + '\x02';\n    }\n  }\n  return cVar2;\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (declaration "char cVar2;" (primitive_type "char") (identifier "cVar2") (; ";")) (expression_statement "cVar2 = '\x03';" (assignment_expression "cVar2 = '\x03'" (identifier "cVar2") (= "=") (char_literal "'\x03'" (' "'") (escape_sequence "\x03") (' "'"))) (; ";")) (if_statement "if (1 < *(uint *)(param_1 + 8)) {\n    cVar2 = '\x01';\n    if ((*(int *)(param_1 + 0xc) != 0) &&\n       (iVar1 = *(int *)(*(int *)(param_1 + 0xc) + 4), iVar1 != 2)) {\n      return (iVar1 != 10) + '\x02';\n    }\n  }" (if "if") (parenthesized_expression "(1 < *(uint *)(param_1 + 8))" (( "(") (binary_expression "1 < *(uint *)(param_1 + 8)" (number_literal "1") (< "<") (pointer_expression "*(uint *)(param_1 + 8)" (* "*") (cast_expression "(uint *)(param_1 + 8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")"))))) () ")")) (compound_statement "{\n    cVar2 = '\x01';\n    if ((*(int *)(param_1 + 0xc) != 0) &&\n       (iVar1 = *(int *)(*(int *)(param_1 + 0xc) + 4), iVar1 != 2)) {\n      return (iVar1 != 10) + '\x02';\n    }\n  }" ({ "{") (expression_statement "cVar2 = '\x01';" (assignment_expression "cVar2 = '\x01'" (identifier "cVar2") (= "=") (char_literal "'\x01'" (' "'") (escape_sequence "\x01") (' "'"))) (; ";")) (if_statement "if ((*(int *)(param_1 + 0xc) != 0) &&\n       (iVar1 = *(int *)(*(int *)(param_1 + 0xc) + 4), iVar1 != 2)) {\n      return (iVar1 != 10) + '\x02';\n    }" (if "if") (parenthesized_expression "((*(int *)(param_1 + 0xc) != 0) &&\n       (iVar1 = *(int *)(*(int *)(param_1 + 0xc) + 4), iVar1 != 2))" (( "(") (binary_expression "(*(int *)(param_1 + 0xc) != 0) &&\n       (iVar1 = *(int *)(*(int *)(param_1 + 0xc) + 4), iVar1 != 2)" (parenthesized_expression "(*(int *)(param_1 + 0xc) != 0)" (( "(") (binary_expression "*(int *)(param_1 + 0xc) != 0" (pointer_expression "*(int *)(param_1 + 0xc)" (* "*") (cast_expression "(int *)(param_1 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xc)" (( "(") (binary_expression "param_1 + 0xc" (identifier "param_1") (+ "+") (number_literal "0xc")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(iVar1 = *(int *)(*(int *)(param_1 + 0xc) + 4), iVar1 != 2)" (( "(") (comma_expression "iVar1 = *(int *)(*(int *)(param_1 + 0xc) + 4), iVar1 != 2" (assignment_expression "iVar1 = *(int *)(*(int *)(param_1 + 0xc) + 4)" (identifier "iVar1") (= "=") (pointer_expression "*(int *)(*(int *)(param_1 + 0xc) + 4)" (* "*") (cast_expression "(int *)(*(int *)(param_1 + 0xc) + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 0xc) + 4)" (( "(") (binary_expression "*(int *)(param_1 + 0xc) + 4" (pointer_expression "*(int *)(param_1 + 0xc)" (* "*") (cast_expression "(int *)(param_1 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xc)" (( "(") (binary_expression "param_1 + 0xc" (identifier "param_1") (+ "+") (number_literal "0xc")) () ")")))) (+ "+") (number_literal "4")) () ")"))))) (, ",") (binary_expression "iVar1 != 2" (identifier "iVar1") (!= "!=") (number_literal "2"))) () ")"))) () ")")) (compound_statement "{\n      return (iVar1 != 10) + '\x02';\n    }" ({ "{") (return_statement "return (iVar1 != 10) + '\x02';" (return "return") (binary_expression "(iVar1 != 10) + '\x02'" (parenthesized_expression "(iVar1 != 10)" (( "(") (binary_expression "iVar1 != 10" (identifier "iVar1") (!= "!=") (number_literal "10")) () ")")) (+ "+") (char_literal "'\x02'" (' "'") (escape_sequence "\x02") (' "'"))) (; ";")) (} "}"))) (} "}"))) (return_statement "return cVar2;" (return "return") (identifier "cVar2") (; ";")) (} "}")))

/* WARNING: Enum "anon_enum_32": Some values do not have unique names */

int function_1(type_1 addr)

{
  int var_1;
  int iVar2;
  
  iVar2 = 3;
  if (1 < (type_2)addr->superfamily) {
    iVar2 = 1;
    if ((addr->ais != (type_3 *)0x0) && (var_1 = addr->ais->ai_family, var_1 != 2)) {
      return (var_1 != 10) + 2;
    }
  }
  return iVar2;
}


(translation_unit (function_definition type: (primitive_type) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (primitive_type) declarator: (identifier)))) body: (compound_statement (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (char_literal (escape_sequence)))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (char_literal (escape_sequence)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) right: (parenthesized_expression (comma_expression left: (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))) right: (binary_expression left: (identifier) right: (number_literal)))))) consequence: (compound_statement (return_statement (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (char_literal (escape_sequence)))))))) (return_statement (identifier)))))

char MASKED(int param_1)

{
  int iVar1;
  char cVar2;
  
  cVar2 = '\x03';
  if (1 < *(uint *)(param_1 + 8)) {
    cVar2 = '\x01';
    if ((*(int *)(param_1 + 0xc) != 0) &&
       (iVar1 = *(int *)(*(int *)(param_1 + 0xc) + 4), iVar1 != 2)) {
      return (iVar1 != 10) + '\x02';
    }
  }
  return cVar2;
}

