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

void sk_addrcopy(SockAddr addr,char *buf)

{
  addrinfo *paVar1;
  sockaddr *psVar2;
  undefined4 uVar3;
  undefined4 uVar4;
  undefined4 uVar5;
  
  if (ADDRTYPE_IPV4 < addr->superfamily) {
    paVar1 = addr->ais;
    if ((paVar1 == (addrinfo *)0x0) || (paVar1->ai_family == 2)) {
      *(undefined4 *)buf = *(undefined4 *)(paVar1->ai_addr->sa_data + 2);
      return;
    }
    if (paVar1->ai_family == 10) {
      psVar2 = paVar1->ai_addr;
      uVar5 = *(undefined4 *)(psVar2->sa_data + 10);
      uVar4 = *(undefined4 *)(psVar2 + 1);
      uVar3 = *(undefined4 *)(psVar2[1].sa_data + 2);
      *(undefined4 *)buf = *(undefined4 *)(psVar2->sa_data + 6);
      *(undefined4 *)(buf + 4) = uVar5;
      *(undefined4 *)(buf + 8) = uVar4;
      *(undefined4 *)(buf + 0xc) = uVar3;
      return;
    }
  }
  (*(code *)PTR___assert_fail_000b2d2c)
            (PTR_s_entropy_source_000b23f0 + -0x204,PTR_s_entropy_source_000b23f0 + -0x2b8,0x1d1,
             PTR_s_entropy_source_000b23f0 + -0x74);
  return;
}



void sk_addrcopy(int param_1,undefined4 *param_2)

{
  int iVar1;
  undefined4 uVar2;
  undefined4 uVar3;
  undefined4 uVar4;
  
  if (1 < *(uint *)(param_1 + 8)) {
    iVar1 = *(int *)(param_1 + 0xc);
    if ((iVar1 == 0) || (*(int *)(iVar1 + 4) == 2)) {
      *param_2 = *(undefined4 *)(*(int *)(iVar1 + 0x14) + 4);
      return;
    }
    if (*(int *)(iVar1 + 4) == 10) {
      iVar1 = *(int *)(iVar1 + 0x14);
      uVar4 = *(undefined4 *)(iVar1 + 0xc);
      uVar3 = *(undefined4 *)(iVar1 + 0x10);
      uVar2 = *(undefined4 *)(iVar1 + 0x14);
      *param_2 = *(undefined4 *)(iVar1 + 8);
      param_2[1] = uVar4;
      param_2[2] = uVar3;
      param_2[3] = uVar2;
      return;
    }
  }
  (*(code *)PTR___assert_fail_000b2d2c)
            (PTR_s_entropy_source_000b23f0 + -0x204,PTR_s_entropy_source_000b23f0 + -0x2b8,0x1d1,
             PTR_s_entropy_source_000b23f0 + -0x74);
  return;
}


lui gp,0x3
addiu gp,gp,0x7580
addu gp,gp,t9
lw v0,0x8(a0)
sltiu v0,v0,0x2
beq v0,zero,0x00082e38
_lw a3,-0x7f80(gp)
addiu sp,sp,-0x20
lw a1,-0x7f80(gp)
li a2,0x1d1
lw a0,-0x7f80(gp)
lw t9,-0x7644(gp)
addiu a3,a3,-0x74
addiu a1,a1,-0x2b8
sw gp,0x10(sp)
sw ra,0x1c(sp)
jalr t9
_addiu a0,a0,-0x204
lw v0,0xc(a0)
beq v0,zero,0x00082ea4
_li a0,0x2
lw v1,0x4(v0)
beq v1,a0,0x00082ea4
_li a0,0xa
bne v1,a0,0x00082e0c
_lw a3,-0x7f80(gp)
lw v0,0x14(v0)
addiu v0,v0,0x8
lwl a3,0x0(v0)
lwl a2,0x4(v0)
lwl a0,0x8(v0)
lwl v1,0xc(v0)
lwr a3,0x3(v0)
lwr a2,0x7(v0)
lwr a0,0xb(v0)
lwr v1,0xf(v0)
swl a3,0x0(a1)
swr a3,0x3(a1)
swl a2,0x4(a1)
swr a2,0x7(a1)
swl a0,0x8(a1)
swr a0,0xb(a1)
swl v1,0xc(a1)
jr ra
_swr v1,0xf(a1)
lw v0,0x14(v0)
addiu v0,v0,0x4
lwl v1,0x0(v0)
lwr v1,0x3(v0)
swl v1,0x0(a1)
jr ra
_swr v1,0x3(a1)
(translation_unit "void sk_addrcopy(int param_1,undefined4 *param_2)\n\n{\n  int iVar1;\n  undefined4 uVar2;\n  undefined4 uVar3;\n  undefined4 uVar4;\n  \n  if (1 < *(uint *)(param_1 + 8)) {\n    iVar1 = *(int *)(param_1 + 0xc);\n    if ((iVar1 == 0) || (*(int *)(iVar1 + 4) == 2)) {\n      *param_2 = *(undefined4 *)(*(int *)(iVar1 + 0x14) + 4);\n      return;\n    }\n    if (*(int *)(iVar1 + 4) == 10) {\n      iVar1 = *(int *)(iVar1 + 0x14);\n      uVar4 = *(undefined4 *)(iVar1 + 0xc);\n      uVar3 = *(undefined4 *)(iVar1 + 0x10);\n      uVar2 = *(undefined4 *)(iVar1 + 0x14);\n      *param_2 = *(undefined4 *)(iVar1 + 8);\n      param_2[1] = uVar4;\n      param_2[2] = uVar3;\n      param_2[3] = uVar2;\n      return;\n    }\n  }\n  (*(code *)PTR___assert_fail_000b2d2c)\n            (PTR_s_entropy_source_000b23f0 + -0x204,PTR_s_entropy_source_000b23f0 + -0x2b8,0x1d1,\n             PTR_s_entropy_source_000b23f0 + -0x74);\n  return;\n}\n\n" (function_definition "void sk_addrcopy(int param_1,undefined4 *param_2)\n\n{\n  int iVar1;\n  undefined4 uVar2;\n  undefined4 uVar3;\n  undefined4 uVar4;\n  \n  if (1 < *(uint *)(param_1 + 8)) {\n    iVar1 = *(int *)(param_1 + 0xc);\n    if ((iVar1 == 0) || (*(int *)(iVar1 + 4) == 2)) {\n      *param_2 = *(undefined4 *)(*(int *)(iVar1 + 0x14) + 4);\n      return;\n    }\n    if (*(int *)(iVar1 + 4) == 10) {\n      iVar1 = *(int *)(iVar1 + 0x14);\n      uVar4 = *(undefined4 *)(iVar1 + 0xc);\n      uVar3 = *(undefined4 *)(iVar1 + 0x10);\n      uVar2 = *(undefined4 *)(iVar1 + 0x14);\n      *param_2 = *(undefined4 *)(iVar1 + 8);\n      param_2[1] = uVar4;\n      param_2[2] = uVar3;\n      param_2[3] = uVar2;\n      return;\n    }\n  }\n  (*(code *)PTR___assert_fail_000b2d2c)\n            (PTR_s_entropy_source_000b23f0 + -0x204,PTR_s_entropy_source_000b23f0 + -0x2b8,0x1d1,\n             PTR_s_entropy_source_000b23f0 + -0x74);\n  return;\n}" primitive_type (function_declarator "sk_addrcopy(int param_1,undefined4 *param_2)" identifier (parameter_list "(int param_1,undefined4 *param_2)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "undefined4 *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) ))) (compound_statement "{\n  int iVar1;\n  undefined4 uVar2;\n  undefined4 uVar3;\n  undefined4 uVar4;\n  \n  if (1 < *(uint *)(param_1 + 8)) {\n    iVar1 = *(int *)(param_1 + 0xc);\n    if ((iVar1 == 0) || (*(int *)(iVar1 + 4) == 2)) {\n      *param_2 = *(undefined4 *)(*(int *)(iVar1 + 0x14) + 4);\n      return;\n    }\n    if (*(int *)(iVar1 + 4) == 10) {\n      iVar1 = *(int *)(iVar1 + 0x14);\n      uVar4 = *(undefined4 *)(iVar1 + 0xc);\n      uVar3 = *(undefined4 *)(iVar1 + 0x10);\n      uVar2 = *(undefined4 *)(iVar1 + 0x14);\n      *param_2 = *(undefined4 *)(iVar1 + 8);\n      param_2[1] = uVar4;\n      param_2[2] = uVar3;\n      param_2[3] = uVar2;\n      return;\n    }\n  }\n  (*(code *)PTR___assert_fail_000b2d2c)\n            (PTR_s_entropy_source_000b23f0 + -0x204,PTR_s_entropy_source_000b23f0 + -0x2b8,0x1d1,\n             PTR_s_entropy_source_000b23f0 + -0x74);\n  return;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "undefined4 uVar2;" type_identifier identifier ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (if_statement "if (1 < *(uint *)(param_1 + 8)) {\n    iVar1 = *(int *)(param_1 + 0xc);\n    if ((iVar1 == 0) || (*(int *)(iVar1 + 4) == 2)) {\n      *param_2 = *(undefined4 *)(*(int *)(iVar1 + 0x14) + 4);\n      return;\n    }\n    if (*(int *)(iVar1 + 4) == 10) {\n      iVar1 = *(int *)(iVar1 + 0x14);\n      uVar4 = *(undefined4 *)(iVar1 + 0xc);\n      uVar3 = *(undefined4 *)(iVar1 + 0x10);\n      uVar2 = *(undefined4 *)(iVar1 + 0x14);\n      *param_2 = *(undefined4 *)(iVar1 + 8);\n      param_2[1] = uVar4;\n      param_2[2] = uVar3;\n      param_2[3] = uVar2;\n      return;\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    iVar1 = *(int *)(param_1 + 0xc);\n    if ((iVar1 == 0) || (*(int *)(iVar1 + 4) == 2)) {\n      *param_2 = *(undefined4 *)(*(int *)(iVar1 + 0x14) + 4);\n      return;\n    }\n    if (*(int *)(iVar1 + 4) == 10) {\n      iVar1 = *(int *)(iVar1 + 0x14);\n      uVar4 = *(undefined4 *)(iVar1 + 0xc);\n      uVar3 = *(undefined4 *)(iVar1 + 0x10);\n      uVar2 = *(undefined4 *)(iVar1 + 0x14);\n      *param_2 = *(undefined4 *)(iVar1 + 8);\n      param_2[1] = uVar4;\n      param_2[2] = uVar3;\n      param_2[3] = uVar2;\n      return;\n    }\n  }" { (expression_statement "iVar1 = *(int *)(param_1 + 0xc);" (assignment_expression "iVar1 = *(int *)(param_1 + 0xc)" identifier = (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) ))))) ;) (if_statement "if ((iVar1 == 0) || (*(int *)(iVar1 + 4) == 2)) {\n      *param_2 = *(undefined4 *)(*(int *)(iVar1 + 0x14) + 4);\n      return;\n    }" if (parenthesized_expression "((iVar1 == 0) || (*(int *)(iVar1 + 4) == 2))" ( (binary_expression "(iVar1 == 0) || (*(int *)(iVar1 + 4) == 2)" (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) || (parenthesized_expression "(*(int *)(iVar1 + 4) == 2)" ( (binary_expression "*(int *)(iVar1 + 4) == 2" (pointer_expression "*(int *)(iVar1 + 4)" * (cast_expression "(int *)(iVar1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 4)" ( (binary_expression "iVar1 + 4" identifier + number_literal) )))) == number_literal) ))) )) (compound_statement "{\n      *param_2 = *(undefined4 *)(*(int *)(iVar1 + 0x14) + 4);\n      return;\n    }" { (expression_statement "*param_2 = *(undefined4 *)(*(int *)(iVar1 + 0x14) + 4);" (assignment_expression "*param_2 = *(undefined4 *)(*(int *)(iVar1 + 0x14) + 4)" (pointer_expression "*param_2" * identifier) = (pointer_expression "*(undefined4 *)(*(int *)(iVar1 + 0x14) + 4)" * (cast_expression "(undefined4 *)(*(int *)(iVar1 + 0x14) + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar1 + 0x14) + 4)" ( (binary_expression "*(int *)(iVar1 + 0x14) + 4" (pointer_expression "*(int *)(iVar1 + 0x14)" * (cast_expression "(int *)(iVar1 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x14)" ( (binary_expression "iVar1 + 0x14" identifier + number_literal) )))) + number_literal) ))))) ;) (return_statement "return;" return ;) })) (if_statement "if (*(int *)(iVar1 + 4) == 10) {\n      iVar1 = *(int *)(iVar1 + 0x14);\n      uVar4 = *(undefined4 *)(iVar1 + 0xc);\n      uVar3 = *(undefined4 *)(iVar1 + 0x10);\n      uVar2 = *(undefined4 *)(iVar1 + 0x14);\n      *param_2 = *(undefined4 *)(iVar1 + 8);\n      param_2[1] = uVar4;\n      param_2[2] = uVar3;\n      param_2[3] = uVar2;\n      return;\n    }" if (parenthesized_expression "(*(int *)(iVar1 + 4) == 10)" ( (binary_expression "*(int *)(iVar1 + 4) == 10" (pointer_expression "*(int *)(iVar1 + 4)" * (cast_expression "(int *)(iVar1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 4)" ( (binary_expression "iVar1 + 4" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n      iVar1 = *(int *)(iVar1 + 0x14);\n      uVar4 = *(undefined4 *)(iVar1 + 0xc);\n      uVar3 = *(undefined4 *)(iVar1 + 0x10);\n      uVar2 = *(undefined4 *)(iVar1 + 0x14);\n      *param_2 = *(undefined4 *)(iVar1 + 8);\n      param_2[1] = uVar4;\n      param_2[2] = uVar3;\n      param_2[3] = uVar2;\n      return;\n    }" { (expression_statement "iVar1 = *(int *)(iVar1 + 0x14);" (assignment_expression "iVar1 = *(int *)(iVar1 + 0x14)" identifier = (pointer_expression "*(int *)(iVar1 + 0x14)" * (cast_expression "(int *)(iVar1 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x14)" ( (binary_expression "iVar1 + 0x14" identifier + number_literal) ))))) ;) (expression_statement "uVar4 = *(undefined4 *)(iVar1 + 0xc);" (assignment_expression "uVar4 = *(undefined4 *)(iVar1 + 0xc)" identifier = (pointer_expression "*(undefined4 *)(iVar1 + 0xc)" * (cast_expression "(undefined4 *)(iVar1 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0xc)" ( (binary_expression "iVar1 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "uVar3 = *(undefined4 *)(iVar1 + 0x10);" (assignment_expression "uVar3 = *(undefined4 *)(iVar1 + 0x10)" identifier = (pointer_expression "*(undefined4 *)(iVar1 + 0x10)" * (cast_expression "(undefined4 *)(iVar1 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x10)" ( (binary_expression "iVar1 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "uVar2 = *(undefined4 *)(iVar1 + 0x14);" (assignment_expression "uVar2 = *(undefined4 *)(iVar1 + 0x14)" identifier = (pointer_expression "*(undefined4 *)(iVar1 + 0x14)" * (cast_expression "(undefined4 *)(iVar1 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x14)" ( (binary_expression "iVar1 + 0x14" identifier + number_literal) ))))) ;) (expression_statement "*param_2 = *(undefined4 *)(iVar1 + 8);" (assignment_expression "*param_2 = *(undefined4 *)(iVar1 + 8)" (pointer_expression "*param_2" * identifier) = (pointer_expression "*(undefined4 *)(iVar1 + 8)" * (cast_expression "(undefined4 *)(iVar1 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 8)" ( (binary_expression "iVar1 + 8" identifier + number_literal) ))))) ;) (expression_statement "param_2[1] = uVar4;" (assignment_expression "param_2[1] = uVar4" (subscript_expression "param_2[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_2[2] = uVar3;" (assignment_expression "param_2[2] = uVar3" (subscript_expression "param_2[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_2[3] = uVar2;" (assignment_expression "param_2[3] = uVar2" (subscript_expression "param_2[3]" identifier [ number_literal ]) = identifier) ;) (return_statement "return;" return ;) })) })) (expression_statement "(*(code *)PTR___assert_fail_000b2d2c)\n            (PTR_s_entropy_source_000b23f0 + -0x204,PTR_s_entropy_source_000b23f0 + -0x2b8,0x1d1,\n             PTR_s_entropy_source_000b23f0 + -0x74);" (call_expression "(*(code *)PTR___assert_fail_000b2d2c)\n            (PTR_s_entropy_source_000b23f0 + -0x204,PTR_s_entropy_source_000b23f0 + -0x2b8,0x1d1,\n             PTR_s_entropy_source_000b23f0 + -0x74)" (parenthesized_expression "(*(code *)PTR___assert_fail_000b2d2c)" ( (pointer_expression "*(code *)PTR___assert_fail_000b2d2c" * (cast_expression "(code *)PTR___assert_fail_000b2d2c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_entropy_source_000b23f0 + -0x204,PTR_s_entropy_source_000b23f0 + -0x2b8,0x1d1,\n             PTR_s_entropy_source_000b23f0 + -0x74)" ( (binary_expression "PTR_s_entropy_source_000b23f0 + -0x204" identifier + number_literal) , (binary_expression "PTR_s_entropy_source_000b23f0 + -0x2b8" identifier + number_literal) , number_literal , (binary_expression "PTR_s_entropy_source_000b23f0 + -0x74" identifier + number_literal) ))) ;) (return_statement "return;" return ;) })))
(translation_unit "/* WARNING: Enum "anon_enum_32": Some values do not have unique names */\n\nvoid sk_addrcopy(SockAddr addr,char *buf)\n\n{\n  addrinfo *paVar1;\n  sockaddr *psVar2;\n  undefined4 uVar3;\n  undefined4 uVar4;\n  undefined4 uVar5;\n  \n  if (ADDRTYPE_IPV4 < addr->superfamily) {\n    paVar1 = addr->ais;\n    if ((paVar1 == (addrinfo *)0x0) || (paVar1->ai_family == 2)) {\n      *(undefined4 *)buf = *(undefined4 *)(paVar1->ai_addr->sa_data + 2);\n      return;\n    }\n    if (paVar1->ai_family == 10) {\n      psVar2 = paVar1->ai_addr;\n      uVar5 = *(undefined4 *)(psVar2->sa_data + 10);\n      uVar4 = *(undefined4 *)(psVar2 + 1);\n      uVar3 = *(undefined4 *)(psVar2[1].sa_data + 2);\n      *(undefined4 *)buf = *(undefined4 *)(psVar2->sa_data + 6);\n      *(undefined4 *)(buf + 4) = uVar5;\n      *(undefined4 *)(buf + 8) = uVar4;\n      *(undefined4 *)(buf + 0xc) = uVar3;\n      return;\n    }\n  }\n  (*(code *)PTR___assert_fail_000b2d2c)\n            (PTR_s_entropy_source_000b23f0 + -0x204,PTR_s_entropy_source_000b23f0 + -0x2b8,0x1d1,\n             PTR_s_entropy_source_000b23f0 + -0x74);\n  return;\n}\n\n" comment (function_definition "void sk_addrcopy(SockAddr addr,char *buf)\n\n{\n  addrinfo *paVar1;\n  sockaddr *psVar2;\n  undefined4 uVar3;\n  undefined4 uVar4;\n  undefined4 uVar5;\n  \n  if (ADDRTYPE_IPV4 < addr->superfamily) {\n    paVar1 = addr->ais;\n    if ((paVar1 == (addrinfo *)0x0) || (paVar1->ai_family == 2)) {\n      *(undefined4 *)buf = *(undefined4 *)(paVar1->ai_addr->sa_data + 2);\n      return;\n    }\n    if (paVar1->ai_family == 10) {\n      psVar2 = paVar1->ai_addr;\n      uVar5 = *(undefined4 *)(psVar2->sa_data + 10);\n      uVar4 = *(undefined4 *)(psVar2 + 1);\n      uVar3 = *(undefined4 *)(psVar2[1].sa_data + 2);\n      *(undefined4 *)buf = *(undefined4 *)(psVar2->sa_data + 6);\n      *(undefined4 *)(buf + 4) = uVar5;\n      *(undefined4 *)(buf + 8) = uVar4;\n      *(undefined4 *)(buf + 0xc) = uVar3;\n      return;\n    }\n  }\n  (*(code *)PTR___assert_fail_000b2d2c)\n            (PTR_s_entropy_source_000b23f0 + -0x204,PTR_s_entropy_source_000b23f0 + -0x2b8,0x1d1,\n             PTR_s_entropy_source_000b23f0 + -0x74);\n  return;\n}" primitive_type (function_declarator "sk_addrcopy(SockAddr addr,char *buf)" identifier (parameter_list "(SockAddr addr,char *buf)" ( (parameter_declaration "SockAddr addr" type_identifier identifier) , (parameter_declaration "char *buf" primitive_type (pointer_declarator "*buf" * identifier)) ))) (compound_statement "{\n  addrinfo *paVar1;\n  sockaddr *psVar2;\n  undefined4 uVar3;\n  undefined4 uVar4;\n  undefined4 uVar5;\n  \n  if (ADDRTYPE_IPV4 < addr->superfamily) {\n    paVar1 = addr->ais;\n    if ((paVar1 == (addrinfo *)0x0) || (paVar1->ai_family == 2)) {\n      *(undefined4 *)buf = *(undefined4 *)(paVar1->ai_addr->sa_data + 2);\n      return;\n    }\n    if (paVar1->ai_family == 10) {\n      psVar2 = paVar1->ai_addr;\n      uVar5 = *(undefined4 *)(psVar2->sa_data + 10);\n      uVar4 = *(undefined4 *)(psVar2 + 1);\n      uVar3 = *(undefined4 *)(psVar2[1].sa_data + 2);\n      *(undefined4 *)buf = *(undefined4 *)(psVar2->sa_data + 6);\n      *(undefined4 *)(buf + 4) = uVar5;\n      *(undefined4 *)(buf + 8) = uVar4;\n      *(undefined4 *)(buf + 0xc) = uVar3;\n      return;\n    }\n  }\n  (*(code *)PTR___assert_fail_000b2d2c)\n            (PTR_s_entropy_source_000b23f0 + -0x204,PTR_s_entropy_source_000b23f0 + -0x2b8,0x1d1,\n             PTR_s_entropy_source_000b23f0 + -0x74);\n  return;\n}" { (declaration "addrinfo *paVar1;" type_identifier (pointer_declarator "*paVar1" * identifier) ;) (declaration "sockaddr *psVar2;" type_identifier (pointer_declarator "*psVar2" * identifier) ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "undefined4 uVar5;" type_identifier identifier ;) (if_statement "if (ADDRTYPE_IPV4 < addr->superfamily) {\n    paVar1 = addr->ais;\n    if ((paVar1 == (addrinfo *)0x0) || (paVar1->ai_family == 2)) {\n      *(undefined4 *)buf = *(undefined4 *)(paVar1->ai_addr->sa_data + 2);\n      return;\n    }\n    if (paVar1->ai_family == 10) {\n      psVar2 = paVar1->ai_addr;\n      uVar5 = *(undefined4 *)(psVar2->sa_data + 10);\n      uVar4 = *(undefined4 *)(psVar2 + 1);\n      uVar3 = *(undefined4 *)(psVar2[1].sa_data + 2);\n      *(undefined4 *)buf = *(undefined4 *)(psVar2->sa_data + 6);\n      *(undefined4 *)(buf + 4) = uVar5;\n      *(undefined4 *)(buf + 8) = uVar4;\n      *(undefined4 *)(buf + 0xc) = uVar3;\n      return;\n    }\n  }" if (parenthesized_expression "(ADDRTYPE_IPV4 < addr->superfamily)" ( (binary_expression "ADDRTYPE_IPV4 < addr->superfamily" identifier < (field_expression "addr->superfamily" identifier -> field_identifier)) )) (compound_statement "{\n    paVar1 = addr->ais;\n    if ((paVar1 == (addrinfo *)0x0) || (paVar1->ai_family == 2)) {\n      *(undefined4 *)buf = *(undefined4 *)(paVar1->ai_addr->sa_data + 2);\n      return;\n    }\n    if (paVar1->ai_family == 10) {\n      psVar2 = paVar1->ai_addr;\n      uVar5 = *(undefined4 *)(psVar2->sa_data + 10);\n      uVar4 = *(undefined4 *)(psVar2 + 1);\n      uVar3 = *(undefined4 *)(psVar2[1].sa_data + 2);\n      *(undefined4 *)buf = *(undefined4 *)(psVar2->sa_data + 6);\n      *(undefined4 *)(buf + 4) = uVar5;\n      *(undefined4 *)(buf + 8) = uVar4;\n      *(undefined4 *)(buf + 0xc) = uVar3;\n      return;\n    }\n  }" { (expression_statement "paVar1 = addr->ais;" (assignment_expression "paVar1 = addr->ais" identifier = (field_expression "addr->ais" identifier -> field_identifier)) ;) (if_statement "if ((paVar1 == (addrinfo *)0x0) || (paVar1->ai_family == 2)) {\n      *(undefined4 *)buf = *(undefined4 *)(paVar1->ai_addr->sa_data + 2);\n      return;\n    }" if (parenthesized_expression "((paVar1 == (addrinfo *)0x0) || (paVar1->ai_family == 2))" ( (binary_expression "(paVar1 == (addrinfo *)0x0) || (paVar1->ai_family == 2)" (parenthesized_expression "(paVar1 == (addrinfo *)0x0)" ( (binary_expression "paVar1 == (addrinfo *)0x0" identifier == (cast_expression "(addrinfo *)0x0" ( (type_descriptor "addrinfo *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(paVar1->ai_family == 2)" ( (binary_expression "paVar1->ai_family == 2" (field_expression "paVar1->ai_family" identifier -> field_identifier) == number_literal) ))) )) (compound_statement "{\n      *(undefined4 *)buf = *(undefined4 *)(paVar1->ai_addr->sa_data + 2);\n      return;\n    }" { (expression_statement "*(undefined4 *)buf = *(undefined4 *)(paVar1->ai_addr->sa_data + 2);" (assignment_expression "*(undefined4 *)buf = *(undefined4 *)(paVar1->ai_addr->sa_data + 2)" (pointer_expression "*(undefined4 *)buf" * (cast_expression "(undefined4 *)buf" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (pointer_expression "*(undefined4 *)(paVar1->ai_addr->sa_data + 2)" * (cast_expression "(undefined4 *)(paVar1->ai_addr->sa_data + 2)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(paVar1->ai_addr->sa_data + 2)" ( (binary_expression "paVar1->ai_addr->sa_data + 2" (field_expression "paVar1->ai_addr->sa_data" (field_expression "paVar1->ai_addr" identifier -> field_identifier) -> field_identifier) + number_literal) ))))) ;) (return_statement "return;" return ;) })) (if_statement "if (paVar1->ai_family == 10) {\n      psVar2 = paVar1->ai_addr;\n      uVar5 = *(undefined4 *)(psVar2->sa_data + 10);\n      uVar4 = *(undefined4 *)(psVar2 + 1);\n      uVar3 = *(undefined4 *)(psVar2[1].sa_data + 2);\n      *(undefined4 *)buf = *(undefined4 *)(psVar2->sa_data + 6);\n      *(undefined4 *)(buf + 4) = uVar5;\n      *(undefined4 *)(buf + 8) = uVar4;\n      *(undefined4 *)(buf + 0xc) = uVar3;\n      return;\n    }" if (parenthesized_expression "(paVar1->ai_family == 10)" ( (binary_expression "paVar1->ai_family == 10" (field_expression "paVar1->ai_family" identifier -> field_identifier) == number_literal) )) (compound_statement "{\n      psVar2 = paVar1->ai_addr;\n      uVar5 = *(undefined4 *)(psVar2->sa_data + 10);\n      uVar4 = *(undefined4 *)(psVar2 + 1);\n      uVar3 = *(undefined4 *)(psVar2[1].sa_data + 2);\n      *(undefined4 *)buf = *(undefined4 *)(psVar2->sa_data + 6);\n      *(undefined4 *)(buf + 4) = uVar5;\n      *(undefined4 *)(buf + 8) = uVar4;\n      *(undefined4 *)(buf + 0xc) = uVar3;\n      return;\n    }" { (expression_statement "psVar2 = paVar1->ai_addr;" (assignment_expression "psVar2 = paVar1->ai_addr" identifier = (field_expression "paVar1->ai_addr" identifier -> field_identifier)) ;) (expression_statement "uVar5 = *(undefined4 *)(psVar2->sa_data + 10);" (assignment_expression "uVar5 = *(undefined4 *)(psVar2->sa_data + 10)" identifier = (pointer_expression "*(undefined4 *)(psVar2->sa_data + 10)" * (cast_expression "(undefined4 *)(psVar2->sa_data + 10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(psVar2->sa_data + 10)" ( (binary_expression "psVar2->sa_data + 10" (field_expression "psVar2->sa_data" identifier -> field_identifier) + number_literal) ))))) ;) (expression_statement "uVar4 = *(undefined4 *)(psVar2 + 1);" (assignment_expression "uVar4 = *(undefined4 *)(psVar2 + 1)" identifier = (pointer_expression "*(undefined4 *)(psVar2 + 1)" * (cast_expression "(undefined4 *)(psVar2 + 1)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(psVar2 + 1)" ( (binary_expression "psVar2 + 1" identifier + number_literal) ))))) ;) (expression_statement "uVar3 = *(undefined4 *)(psVar2[1].sa_data + 2);" (assignment_expression "uVar3 = *(undefined4 *)(psVar2[1].sa_data + 2)" identifier = (pointer_expression "*(undefined4 *)(psVar2[1].sa_data + 2)" * (cast_expression "(undefined4 *)(psVar2[1].sa_data + 2)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(psVar2[1].sa_data + 2)" ( (binary_expression "psVar2[1].sa_data + 2" (field_expression "psVar2[1].sa_data" (subscript_expression "psVar2[1]" identifier [ number_literal ]) . field_identifier) + number_literal) ))))) ;) (expression_statement "*(undefined4 *)buf = *(undefined4 *)(psVar2->sa_data + 6);" (assignment_expression "*(undefined4 *)buf = *(undefined4 *)(psVar2->sa_data + 6)" (pointer_expression "*(undefined4 *)buf" * (cast_expression "(undefined4 *)buf" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (pointer_expression "*(undefined4 *)(psVar2->sa_data + 6)" * (cast_expression "(undefined4 *)(psVar2->sa_data + 6)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(psVar2->sa_data + 6)" ( (binary_expression "psVar2->sa_data + 6" (field_expression "psVar2->sa_data" identifier -> field_identifier) + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(buf + 4) = uVar5;" (assignment_expression "*(undefined4 *)(buf + 4) = uVar5" (pointer_expression "*(undefined4 *)(buf + 4)" * (cast_expression "(undefined4 *)(buf + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(buf + 4)" ( (binary_expression "buf + 4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(buf + 8) = uVar4;" (assignment_expression "*(undefined4 *)(buf + 8) = uVar4" (pointer_expression "*(undefined4 *)(buf + 8)" * (cast_expression "(undefined4 *)(buf + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(buf + 8)" ( (binary_expression "buf + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(buf + 0xc) = uVar3;" (assignment_expression "*(undefined4 *)(buf + 0xc) = uVar3" (pointer_expression "*(undefined4 *)(buf + 0xc)" * (cast_expression "(undefined4 *)(buf + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(buf + 0xc)" ( (binary_expression "buf + 0xc" identifier + number_literal) )))) = identifier) ;) (return_statement "return;" return ;) })) })) (expression_statement "(*(code *)PTR___assert_fail_000b2d2c)\n            (PTR_s_entropy_source_000b23f0 + -0x204,PTR_s_entropy_source_000b23f0 + -0x2b8,0x1d1,\n             PTR_s_entropy_source_000b23f0 + -0x74);" (call_expression "(*(code *)PTR___assert_fail_000b2d2c)\n            (PTR_s_entropy_source_000b23f0 + -0x204,PTR_s_entropy_source_000b23f0 + -0x2b8,0x1d1,\n             PTR_s_entropy_source_000b23f0 + -0x74)" (parenthesized_expression "(*(code *)PTR___assert_fail_000b2d2c)" ( (pointer_expression "*(code *)PTR___assert_fail_000b2d2c" * (cast_expression "(code *)PTR___assert_fail_000b2d2c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_entropy_source_000b23f0 + -0x204,PTR_s_entropy_source_000b23f0 + -0x2b8,0x1d1,\n             PTR_s_entropy_source_000b23f0 + -0x74)" ( (binary_expression "PTR_s_entropy_source_000b23f0 + -0x204" identifier + number_literal) , (binary_expression "PTR_s_entropy_source_000b23f0 + -0x2b8" identifier + number_literal) , number_literal , (binary_expression "PTR_s_entropy_source_000b23f0 + -0x74" identifier + number_literal) ))) ;) (return_statement "return;" return ;) })))
(translation_unit "void sk_addrcopy(int param_1,undefined4 *param_2)\n\n{\n  int iVar1;\n  undefined4 uVar2;\n  undefined4 uVar3;\n  undefined4 uVar4;\n  \n  if (1 < *(uint *)(param_1 + 8)) {\n    iVar1 = *(int *)(param_1 + 0xc);\n    if ((iVar1 == 0) || (*(int *)(iVar1 + 4) == 2)) {\n      *param_2 = *(undefined4 *)(*(int *)(iVar1 + 0x14) + 4);\n      return;\n    }\n    if (*(int *)(iVar1 + 4) == 10) {\n      iVar1 = *(int *)(iVar1 + 0x14);\n      uVar4 = *(undefined4 *)(iVar1 + 0xc);\n      uVar3 = *(undefined4 *)(iVar1 + 0x10);\n      uVar2 = *(undefined4 *)(iVar1 + 0x14);\n      *param_2 = *(undefined4 *)(iVar1 + 8);\n      param_2[1] = uVar4;\n      param_2[2] = uVar3;\n      param_2[3] = uVar2;\n      return;\n    }\n  }\n  (*(code *)PTR___assert_fail_000b2d2c)\n            (PTR_s_entropy_source_000b23f0 + -0x204,PTR_s_entropy_source_000b23f0 + -0x2b8,0x1d1,\n             PTR_s_entropy_source_000b23f0 + -0x74);\n  return;\n}\n\n" (function_definition "void sk_addrcopy(int param_1,undefined4 *param_2)\n\n{\n  int iVar1;\n  undefined4 uVar2;\n  undefined4 uVar3;\n  undefined4 uVar4;\n  \n  if (1 < *(uint *)(param_1 + 8)) {\n    iVar1 = *(int *)(param_1 + 0xc);\n    if ((iVar1 == 0) || (*(int *)(iVar1 + 4) == 2)) {\n      *param_2 = *(undefined4 *)(*(int *)(iVar1 + 0x14) + 4);\n      return;\n    }\n    if (*(int *)(iVar1 + 4) == 10) {\n      iVar1 = *(int *)(iVar1 + 0x14);\n      uVar4 = *(undefined4 *)(iVar1 + 0xc);\n      uVar3 = *(undefined4 *)(iVar1 + 0x10);\n      uVar2 = *(undefined4 *)(iVar1 + 0x14);\n      *param_2 = *(undefined4 *)(iVar1 + 8);\n      param_2[1] = uVar4;\n      param_2[2] = uVar3;\n      param_2[3] = uVar2;\n      return;\n    }\n  }\n  (*(code *)PTR___assert_fail_000b2d2c)\n            (PTR_s_entropy_source_000b23f0 + -0x204,PTR_s_entropy_source_000b23f0 + -0x2b8,0x1d1,\n             PTR_s_entropy_source_000b23f0 + -0x74);\n  return;\n}" primitive_type (function_declarator "sk_addrcopy(int param_1,undefined4 *param_2)" identifier (parameter_list "(int param_1,undefined4 *param_2)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "undefined4 *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) ))) (compound_statement "{\n  int iVar1;\n  undefined4 uVar2;\n  undefined4 uVar3;\n  undefined4 uVar4;\n  \n  if (1 < *(uint *)(param_1 + 8)) {\n    iVar1 = *(int *)(param_1 + 0xc);\n    if ((iVar1 == 0) || (*(int *)(iVar1 + 4) == 2)) {\n      *param_2 = *(undefined4 *)(*(int *)(iVar1 + 0x14) + 4);\n      return;\n    }\n    if (*(int *)(iVar1 + 4) == 10) {\n      iVar1 = *(int *)(iVar1 + 0x14);\n      uVar4 = *(undefined4 *)(iVar1 + 0xc);\n      uVar3 = *(undefined4 *)(iVar1 + 0x10);\n      uVar2 = *(undefined4 *)(iVar1 + 0x14);\n      *param_2 = *(undefined4 *)(iVar1 + 8);\n      param_2[1] = uVar4;\n      param_2[2] = uVar3;\n      param_2[3] = uVar2;\n      return;\n    }\n  }\n  (*(code *)PTR___assert_fail_000b2d2c)\n            (PTR_s_entropy_source_000b23f0 + -0x204,PTR_s_entropy_source_000b23f0 + -0x2b8,0x1d1,\n             PTR_s_entropy_source_000b23f0 + -0x74);\n  return;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "undefined4 uVar2;" type_identifier identifier ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (if_statement "if (1 < *(uint *)(param_1 + 8)) {\n    iVar1 = *(int *)(param_1 + 0xc);\n    if ((iVar1 == 0) || (*(int *)(iVar1 + 4) == 2)) {\n      *param_2 = *(undefined4 *)(*(int *)(iVar1 + 0x14) + 4);\n      return;\n    }\n    if (*(int *)(iVar1 + 4) == 10) {\n      iVar1 = *(int *)(iVar1 + 0x14);\n      uVar4 = *(undefined4 *)(iVar1 + 0xc);\n      uVar3 = *(undefined4 *)(iVar1 + 0x10);\n      uVar2 = *(undefined4 *)(iVar1 + 0x14);\n      *param_2 = *(undefined4 *)(iVar1 + 8);\n      param_2[1] = uVar4;\n      param_2[2] = uVar3;\n      param_2[3] = uVar2;\n      return;\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    iVar1 = *(int *)(param_1 + 0xc);\n    if ((iVar1 == 0) || (*(int *)(iVar1 + 4) == 2)) {\n      *param_2 = *(undefined4 *)(*(int *)(iVar1 + 0x14) + 4);\n      return;\n    }\n    if (*(int *)(iVar1 + 4) == 10) {\n      iVar1 = *(int *)(iVar1 + 0x14);\n      uVar4 = *(undefined4 *)(iVar1 + 0xc);\n      uVar3 = *(undefined4 *)(iVar1 + 0x10);\n      uVar2 = *(undefined4 *)(iVar1 + 0x14);\n      *param_2 = *(undefined4 *)(iVar1 + 8);\n      param_2[1] = uVar4;\n      param_2[2] = uVar3;\n      param_2[3] = uVar2;\n      return;\n    }\n  }" { (expression_statement "iVar1 = *(int *)(param_1 + 0xc);" (assignment_expression "iVar1 = *(int *)(param_1 + 0xc)" identifier = (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) ))))) ;) (if_statement "if ((iVar1 == 0) || (*(int *)(iVar1 + 4) == 2)) {\n      *param_2 = *(undefined4 *)(*(int *)(iVar1 + 0x14) + 4);\n      return;\n    }" if (parenthesized_expression "((iVar1 == 0) || (*(int *)(iVar1 + 4) == 2))" ( (binary_expression "(iVar1 == 0) || (*(int *)(iVar1 + 4) == 2)" (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) || (parenthesized_expression "(*(int *)(iVar1 + 4) == 2)" ( (binary_expression "*(int *)(iVar1 + 4) == 2" (pointer_expression "*(int *)(iVar1 + 4)" * (cast_expression "(int *)(iVar1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 4)" ( (binary_expression "iVar1 + 4" identifier + number_literal) )))) == number_literal) ))) )) (compound_statement "{\n      *param_2 = *(undefined4 *)(*(int *)(iVar1 + 0x14) + 4);\n      return;\n    }" { (expression_statement "*param_2 = *(undefined4 *)(*(int *)(iVar1 + 0x14) + 4);" (assignment_expression "*param_2 = *(undefined4 *)(*(int *)(iVar1 + 0x14) + 4)" (pointer_expression "*param_2" * identifier) = (pointer_expression "*(undefined4 *)(*(int *)(iVar1 + 0x14) + 4)" * (cast_expression "(undefined4 *)(*(int *)(iVar1 + 0x14) + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar1 + 0x14) + 4)" ( (binary_expression "*(int *)(iVar1 + 0x14) + 4" (pointer_expression "*(int *)(iVar1 + 0x14)" * (cast_expression "(int *)(iVar1 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x14)" ( (binary_expression "iVar1 + 0x14" identifier + number_literal) )))) + number_literal) ))))) ;) (return_statement "return;" return ;) })) (if_statement "if (*(int *)(iVar1 + 4) == 10) {\n      iVar1 = *(int *)(iVar1 + 0x14);\n      uVar4 = *(undefined4 *)(iVar1 + 0xc);\n      uVar3 = *(undefined4 *)(iVar1 + 0x10);\n      uVar2 = *(undefined4 *)(iVar1 + 0x14);\n      *param_2 = *(undefined4 *)(iVar1 + 8);\n      param_2[1] = uVar4;\n      param_2[2] = uVar3;\n      param_2[3] = uVar2;\n      return;\n    }" if (parenthesized_expression "(*(int *)(iVar1 + 4) == 10)" ( (binary_expression "*(int *)(iVar1 + 4) == 10" (pointer_expression "*(int *)(iVar1 + 4)" * (cast_expression "(int *)(iVar1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 4)" ( (binary_expression "iVar1 + 4" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n      iVar1 = *(int *)(iVar1 + 0x14);\n      uVar4 = *(undefined4 *)(iVar1 + 0xc);\n      uVar3 = *(undefined4 *)(iVar1 + 0x10);\n      uVar2 = *(undefined4 *)(iVar1 + 0x14);\n      *param_2 = *(undefined4 *)(iVar1 + 8);\n      param_2[1] = uVar4;\n      param_2[2] = uVar3;\n      param_2[3] = uVar2;\n      return;\n    }" { (expression_statement "iVar1 = *(int *)(iVar1 + 0x14);" (assignment_expression "iVar1 = *(int *)(iVar1 + 0x14)" identifier = (pointer_expression "*(int *)(iVar1 + 0x14)" * (cast_expression "(int *)(iVar1 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x14)" ( (binary_expression "iVar1 + 0x14" identifier + number_literal) ))))) ;) (expression_statement "uVar4 = *(undefined4 *)(iVar1 + 0xc);" (assignment_expression "uVar4 = *(undefined4 *)(iVar1 + 0xc)" identifier = (pointer_expression "*(undefined4 *)(iVar1 + 0xc)" * (cast_expression "(undefined4 *)(iVar1 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0xc)" ( (binary_expression "iVar1 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "uVar3 = *(undefined4 *)(iVar1 + 0x10);" (assignment_expression "uVar3 = *(undefined4 *)(iVar1 + 0x10)" identifier = (pointer_expression "*(undefined4 *)(iVar1 + 0x10)" * (cast_expression "(undefined4 *)(iVar1 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x10)" ( (binary_expression "iVar1 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "uVar2 = *(undefined4 *)(iVar1 + 0x14);" (assignment_expression "uVar2 = *(undefined4 *)(iVar1 + 0x14)" identifier = (pointer_expression "*(undefined4 *)(iVar1 + 0x14)" * (cast_expression "(undefined4 *)(iVar1 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x14)" ( (binary_expression "iVar1 + 0x14" identifier + number_literal) ))))) ;) (expression_statement "*param_2 = *(undefined4 *)(iVar1 + 8);" (assignment_expression "*param_2 = *(undefined4 *)(iVar1 + 8)" (pointer_expression "*param_2" * identifier) = (pointer_expression "*(undefined4 *)(iVar1 + 8)" * (cast_expression "(undefined4 *)(iVar1 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 8)" ( (binary_expression "iVar1 + 8" identifier + number_literal) ))))) ;) (expression_statement "param_2[1] = uVar4;" (assignment_expression "param_2[1] = uVar4" (subscript_expression "param_2[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_2[2] = uVar3;" (assignment_expression "param_2[2] = uVar3" (subscript_expression "param_2[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_2[3] = uVar2;" (assignment_expression "param_2[3] = uVar2" (subscript_expression "param_2[3]" identifier [ number_literal ]) = identifier) ;) (return_statement "return;" return ;) })) })) (expression_statement "(*(code *)PTR___assert_fail_000b2d2c)\n            (PTR_s_entropy_source_000b23f0 + -0x204,PTR_s_entropy_source_000b23f0 + -0x2b8,0x1d1,\n             PTR_s_entropy_source_000b23f0 + -0x74);" (call_expression "(*(code *)PTR___assert_fail_000b2d2c)\n            (PTR_s_entropy_source_000b23f0 + -0x204,PTR_s_entropy_source_000b23f0 + -0x2b8,0x1d1,\n             PTR_s_entropy_source_000b23f0 + -0x74)" (parenthesized_expression "(*(code *)PTR___assert_fail_000b2d2c)" ( (pointer_expression "*(code *)PTR___assert_fail_000b2d2c" * (cast_expression "(code *)PTR___assert_fail_000b2d2c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_entropy_source_000b23f0 + -0x204,PTR_s_entropy_source_000b23f0 + -0x2b8,0x1d1,\n             PTR_s_entropy_source_000b23f0 + -0x74)" ( (binary_expression "PTR_s_entropy_source_000b23f0 + -0x204" identifier + number_literal) , (binary_expression "PTR_s_entropy_source_000b23f0 + -0x2b8" identifier + number_literal) , number_literal , (binary_expression "PTR_s_entropy_source_000b23f0 + -0x74" identifier + number_literal) ))) ;) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (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 = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) ))) )) (compound_statement { (expression_statement (assignment_expression (pointer_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) ))))) ;) (return_statement return ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (return_statement return ;) })) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) , (binary_expression IDENT + LIT) , LIT , (binary_expression IDENT + LIT) ))) ;) (return_statement return ;) })))
(function_definition "void sk_addrcopy(int param_1,undefined4 *param_2)\n\n{\n  int iVar1;\n  undefined4 uVar2;\n  undefined4 uVar3;\n  undefined4 uVar4;\n  \n  if (1 < *(uint *)(param_1 + 8)) {\n    iVar1 = *(int *)(param_1 + 0xc);\n    if ((iVar1 == 0) || (*(int *)(iVar1 + 4) == 2)) {\n      *param_2 = *(undefined4 *)(*(int *)(iVar1 + 0x14) + 4);\n      return;\n    }\n    if (*(int *)(iVar1 + 4) == 10) {\n      iVar1 = *(int *)(iVar1 + 0x14);\n      uVar4 = *(undefined4 *)(iVar1 + 0xc);\n      uVar3 = *(undefined4 *)(iVar1 + 0x10);\n      uVar2 = *(undefined4 *)(iVar1 + 0x14);\n      *param_2 = *(undefined4 *)(iVar1 + 8);\n      param_2[1] = uVar4;\n      param_2[2] = uVar3;\n      param_2[3] = uVar2;\n      return;\n    }\n  }\n  (*(code *)PTR___assert_fail_000b2d2c)\n            (PTR_s_entropy_source_000b23f0 + -0x204,PTR_s_entropy_source_000b23f0 + -0x2b8,0x1d1,\n             PTR_s_entropy_source_000b23f0 + -0x74);\n  return;\n}" (primitive_type "void") (function_declarator "sk_addrcopy(int param_1,undefined4 *param_2)" (identifier "sk_addrcopy") (parameter_list "(int param_1,undefined4 *param_2)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) (, ",") (parameter_declaration "undefined4 *param_2" (type_identifier "undefined4") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) () ")"))) (compound_statement "{\n  int iVar1;\n  undefined4 uVar2;\n  undefined4 uVar3;\n  undefined4 uVar4;\n  \n  if (1 < *(uint *)(param_1 + 8)) {\n    iVar1 = *(int *)(param_1 + 0xc);\n    if ((iVar1 == 0) || (*(int *)(iVar1 + 4) == 2)) {\n      *param_2 = *(undefined4 *)(*(int *)(iVar1 + 0x14) + 4);\n      return;\n    }\n    if (*(int *)(iVar1 + 4) == 10) {\n      iVar1 = *(int *)(iVar1 + 0x14);\n      uVar4 = *(undefined4 *)(iVar1 + 0xc);\n      uVar3 = *(undefined4 *)(iVar1 + 0x10);\n      uVar2 = *(undefined4 *)(iVar1 + 0x14);\n      *param_2 = *(undefined4 *)(iVar1 + 8);\n      param_2[1] = uVar4;\n      param_2[2] = uVar3;\n      param_2[3] = uVar2;\n      return;\n    }\n  }\n  (*(code *)PTR___assert_fail_000b2d2c)\n            (PTR_s_entropy_source_000b23f0 + -0x204,PTR_s_entropy_source_000b23f0 + -0x2b8,0x1d1,\n             PTR_s_entropy_source_000b23f0 + -0x74);\n  return;\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (declaration "undefined4 uVar2;" (type_identifier "undefined4") (identifier "uVar2") (; ";")) (declaration "undefined4 uVar3;" (type_identifier "undefined4") (identifier "uVar3") (; ";")) (declaration "undefined4 uVar4;" (type_identifier "undefined4") (identifier "uVar4") (; ";")) (if_statement "if (1 < *(uint *)(param_1 + 8)) {\n    iVar1 = *(int *)(param_1 + 0xc);\n    if ((iVar1 == 0) || (*(int *)(iVar1 + 4) == 2)) {\n      *param_2 = *(undefined4 *)(*(int *)(iVar1 + 0x14) + 4);\n      return;\n    }\n    if (*(int *)(iVar1 + 4) == 10) {\n      iVar1 = *(int *)(iVar1 + 0x14);\n      uVar4 = *(undefined4 *)(iVar1 + 0xc);\n      uVar3 = *(undefined4 *)(iVar1 + 0x10);\n      uVar2 = *(undefined4 *)(iVar1 + 0x14);\n      *param_2 = *(undefined4 *)(iVar1 + 8);\n      param_2[1] = uVar4;\n      param_2[2] = uVar3;\n      param_2[3] = uVar2;\n      return;\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    iVar1 = *(int *)(param_1 + 0xc);\n    if ((iVar1 == 0) || (*(int *)(iVar1 + 4) == 2)) {\n      *param_2 = *(undefined4 *)(*(int *)(iVar1 + 0x14) + 4);\n      return;\n    }\n    if (*(int *)(iVar1 + 4) == 10) {\n      iVar1 = *(int *)(iVar1 + 0x14);\n      uVar4 = *(undefined4 *)(iVar1 + 0xc);\n      uVar3 = *(undefined4 *)(iVar1 + 0x10);\n      uVar2 = *(undefined4 *)(iVar1 + 0x14);\n      *param_2 = *(undefined4 *)(iVar1 + 8);\n      param_2[1] = uVar4;\n      param_2[2] = uVar3;\n      param_2[3] = uVar2;\n      return;\n    }\n  }" ({ "{") (expression_statement "iVar1 = *(int *)(param_1 + 0xc);" (assignment_expression "iVar1 = *(int *)(param_1 + 0xc)" (identifier "iVar1") (= "=") (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")) () ")"))))) (; ";")) (if_statement "if ((iVar1 == 0) || (*(int *)(iVar1 + 4) == 2)) {\n      *param_2 = *(undefined4 *)(*(int *)(iVar1 + 0x14) + 4);\n      return;\n    }" (if "if") (parenthesized_expression "((iVar1 == 0) || (*(int *)(iVar1 + 4) == 2))" (( "(") (binary_expression "(iVar1 == 0) || (*(int *)(iVar1 + 4) == 2)" (parenthesized_expression "(iVar1 == 0)" (( "(") (binary_expression "iVar1 == 0" (identifier "iVar1") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(*(int *)(iVar1 + 4) == 2)" (( "(") (binary_expression "*(int *)(iVar1 + 4) == 2" (pointer_expression "*(int *)(iVar1 + 4)" (* "*") (cast_expression "(int *)(iVar1 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 4)" (( "(") (binary_expression "iVar1 + 4" (identifier "iVar1") (+ "+") (number_literal "4")) () ")")))) (== "==") (number_literal "2")) () ")"))) () ")")) (compound_statement "{\n      *param_2 = *(undefined4 *)(*(int *)(iVar1 + 0x14) + 4);\n      return;\n    }" ({ "{") (expression_statement "*param_2 = *(undefined4 *)(*(int *)(iVar1 + 0x14) + 4);" (assignment_expression "*param_2 = *(undefined4 *)(*(int *)(iVar1 + 0x14) + 4)" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (= "=") (pointer_expression "*(undefined4 *)(*(int *)(iVar1 + 0x14) + 4)" (* "*") (cast_expression "(undefined4 *)(*(int *)(iVar1 + 0x14) + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar1 + 0x14) + 4)" (( "(") (binary_expression "*(int *)(iVar1 + 0x14) + 4" (pointer_expression "*(int *)(iVar1 + 0x14)" (* "*") (cast_expression "(int *)(iVar1 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x14)" (( "(") (binary_expression "iVar1 + 0x14" (identifier "iVar1") (+ "+") (number_literal "0x14")) () ")")))) (+ "+") (number_literal "4")) () ")"))))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (if_statement "if (*(int *)(iVar1 + 4) == 10) {\n      iVar1 = *(int *)(iVar1 + 0x14);\n      uVar4 = *(undefined4 *)(iVar1 + 0xc);\n      uVar3 = *(undefined4 *)(iVar1 + 0x10);\n      uVar2 = *(undefined4 *)(iVar1 + 0x14);\n      *param_2 = *(undefined4 *)(iVar1 + 8);\n      param_2[1] = uVar4;\n      param_2[2] = uVar3;\n      param_2[3] = uVar2;\n      return;\n    }" (if "if") (parenthesized_expression "(*(int *)(iVar1 + 4) == 10)" (( "(") (binary_expression "*(int *)(iVar1 + 4) == 10" (pointer_expression "*(int *)(iVar1 + 4)" (* "*") (cast_expression "(int *)(iVar1 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 4)" (( "(") (binary_expression "iVar1 + 4" (identifier "iVar1") (+ "+") (number_literal "4")) () ")")))) (== "==") (number_literal "10")) () ")")) (compound_statement "{\n      iVar1 = *(int *)(iVar1 + 0x14);\n      uVar4 = *(undefined4 *)(iVar1 + 0xc);\n      uVar3 = *(undefined4 *)(iVar1 + 0x10);\n      uVar2 = *(undefined4 *)(iVar1 + 0x14);\n      *param_2 = *(undefined4 *)(iVar1 + 8);\n      param_2[1] = uVar4;\n      param_2[2] = uVar3;\n      param_2[3] = uVar2;\n      return;\n    }" ({ "{") (expression_statement "iVar1 = *(int *)(iVar1 + 0x14);" (assignment_expression "iVar1 = *(int *)(iVar1 + 0x14)" (identifier "iVar1") (= "=") (pointer_expression "*(int *)(iVar1 + 0x14)" (* "*") (cast_expression "(int *)(iVar1 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x14)" (( "(") (binary_expression "iVar1 + 0x14" (identifier "iVar1") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (expression_statement "uVar4 = *(undefined4 *)(iVar1 + 0xc);" (assignment_expression "uVar4 = *(undefined4 *)(iVar1 + 0xc)" (identifier "uVar4") (= "=") (pointer_expression "*(undefined4 *)(iVar1 + 0xc)" (* "*") (cast_expression "(undefined4 *)(iVar1 + 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0xc)" (( "(") (binary_expression "iVar1 + 0xc" (identifier "iVar1") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (expression_statement "uVar3 = *(undefined4 *)(iVar1 + 0x10);" (assignment_expression "uVar3 = *(undefined4 *)(iVar1 + 0x10)" (identifier "uVar3") (= "=") (pointer_expression "*(undefined4 *)(iVar1 + 0x10)" (* "*") (cast_expression "(undefined4 *)(iVar1 + 0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x10)" (( "(") (binary_expression "iVar1 + 0x10" (identifier "iVar1") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (expression_statement "uVar2 = *(undefined4 *)(iVar1 + 0x14);" (assignment_expression "uVar2 = *(undefined4 *)(iVar1 + 0x14)" (identifier "uVar2") (= "=") (pointer_expression "*(undefined4 *)(iVar1 + 0x14)" (* "*") (cast_expression "(undefined4 *)(iVar1 + 0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x14)" (( "(") (binary_expression "iVar1 + 0x14" (identifier "iVar1") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (expression_statement "*param_2 = *(undefined4 *)(iVar1 + 8);" (assignment_expression "*param_2 = *(undefined4 *)(iVar1 + 8)" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (= "=") (pointer_expression "*(undefined4 *)(iVar1 + 8)" (* "*") (cast_expression "(undefined4 *)(iVar1 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 8)" (( "(") (binary_expression "iVar1 + 8" (identifier "iVar1") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "param_2[1] = uVar4;" (assignment_expression "param_2[1] = uVar4" (subscript_expression "param_2[1]" (identifier "param_2") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "uVar4")) (; ";")) (expression_statement "param_2[2] = uVar3;" (assignment_expression "param_2[2] = uVar3" (subscript_expression "param_2[2]" (identifier "param_2") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "uVar3")) (; ";")) (expression_statement "param_2[3] = uVar2;" (assignment_expression "param_2[3] = uVar2" (subscript_expression "param_2[3]" (identifier "param_2") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "uVar2")) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (} "}"))) (expression_statement "(*(code *)PTR___assert_fail_000b2d2c)\n            (PTR_s_entropy_source_000b23f0 + -0x204,PTR_s_entropy_source_000b23f0 + -0x2b8,0x1d1,\n             PTR_s_entropy_source_000b23f0 + -0x74);" (call_expression "(*(code *)PTR___assert_fail_000b2d2c)\n            (PTR_s_entropy_source_000b23f0 + -0x204,PTR_s_entropy_source_000b23f0 + -0x2b8,0x1d1,\n             PTR_s_entropy_source_000b23f0 + -0x74)" (parenthesized_expression "(*(code *)PTR___assert_fail_000b2d2c)" (( "(") (pointer_expression "*(code *)PTR___assert_fail_000b2d2c" (* "*") (cast_expression "(code *)PTR___assert_fail_000b2d2c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___assert_fail_000b2d2c"))) () ")")) (argument_list "(PTR_s_entropy_source_000b23f0 + -0x204,PTR_s_entropy_source_000b23f0 + -0x2b8,0x1d1,\n             PTR_s_entropy_source_000b23f0 + -0x74)" (( "(") (binary_expression "PTR_s_entropy_source_000b23f0 + -0x204" (identifier "PTR_s_entropy_source_000b23f0") (+ "+") (number_literal "-0x204")) (, ",") (binary_expression "PTR_s_entropy_source_000b23f0 + -0x2b8" (identifier "PTR_s_entropy_source_000b23f0") (+ "+") (number_literal "-0x2b8")) (, ",") (number_literal "0x1d1") (, ",") (binary_expression "PTR_s_entropy_source_000b23f0 + -0x74" (identifier "PTR_s_entropy_source_000b23f0") (+ "+") (number_literal "-0x74")) () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}")))

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

void function_1(type_1 addr,char *var_4)

{
  type_2 *var_2;
  type_3 *var_3;
  type_4 uVar3;
  type_4 uVar4;
  type_4 uVar5;
  
  if (var_1 < addr->superfamily) {
    var_2 = addr->ais;
    if ((var_2 == (type_2 *)0x0) || (var_2->ai_family == 2)) {
      *(type_4 *)var_4 = *(type_4 *)(var_2->ai_addr->sa_data + 2);
      return;
    }
    if (var_2->ai_family == 10) {
      var_3 = var_2->ai_addr;
      uVar5 = *(type_4 *)(var_3->sa_data + 10);
      uVar4 = *(type_4 *)(var_3 + 1);
      uVar3 = *(type_4 *)(var_3[1].sa_data + 2);
      *(type_4 *)var_4 = *(type_4 *)(var_3->sa_data + 6);
      *(type_4 *)(var_4 + 4) = uVar5;
      *(type_4 *)(var_4 + 8) = uVar4;
      *(type_4 *)(var_4 + 0xc) = uVar3;
      return;
    }
  }
  (*(type_5 *)PTR___assert_fail_000b2d2c)
            (var_5 + -0x204,var_5 + -0x2b8,0x1d1,
             var_5 + -0x74);
  return;
}


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

void MASKED(int param_1,undefined4 *param_2)

{
  int iVar1;
  undefined4 uVar2;
  undefined4 uVar3;
  undefined4 uVar4;
  
  if (1 < *(uint *)(param_1 + 8)) {
    iVar1 = *(int *)(param_1 + 0xc);
    if ((iVar1 == 0) || (*(int *)(iVar1 + 4) == 2)) {
      *param_2 = *(undefined4 *)(*(int *)(iVar1 + 0x14) + 4);
      return;
    }
    if (*(int *)(iVar1 + 4) == 10) {
      iVar1 = *(int *)(iVar1 + 0x14);
      uVar4 = *(undefined4 *)(iVar1 + 0xc);
      uVar3 = *(undefined4 *)(iVar1 + 0x10);
      uVar2 = *(undefined4 *)(iVar1 + 0x14);
      *param_2 = *(undefined4 *)(iVar1 + 8);
      param_2[1] = uVar4;
      param_2[2] = uVar3;
      param_2[3] = uVar2;
      return;
    }
  }
  (*(code *)PTR___assert_fail_000b2d2c)
            (PTR_s_entropy_source_000b23f0 + -0x204,PTR_s_entropy_source_000b23f0 + -0x2b8,0x1d1,
             PTR_s_entropy_source_000b23f0 + -0x74);
  return;
}

