
void prepend_new_eth_table(ethtable_t **clist,char *ifname,char *selector)

{
  uint uVar1;
  ethtable_s *peVar2;
  char *pcVar3;
  int iVar4;
  undefined4 uVar5;
  int iVar6;
  ether_addr *peVar7;
  ethtable_t *peVar8;
  int iVar9;
  
  uVar1 = (*(code *)PTR_strlen_00131f58)(ifname);
  if (0xf < uVar1) {
    (*(code *)PTR_bb_error_msg_and_die_001311f0)
              (PTR_bdcommands_4__name_4__001311a4 + -0x5510,ifname);
  }
  peVar2 = (ethtable_s *)(*(code *)PTR_xzalloc_001311c8)(0x10);
  pcVar3 = (char *)(*(code *)PTR_xstrdup_001312b8)(ifname);
  peVar2->ifname = pcVar3;
  iVar4 = (*(code *)PTR_skip_whitespace_00131198)(selector);
  uVar5 = (*(code *)PTR_xmalloc_00131240)(6);
  iVar6 = (*(code *)PTR_is_prefixed_with_001311fc)
                    (iVar4,PTR_bdcommands_4__name_4__001311a4 + -0x54f0);
  iVar9 = 4;
  if (iVar6 == 0) {
    iVar9 = 0;
  }
  peVar7 = (ether_addr *)(*(code *)PTR_ether_aton_r_00131d8c)(iVar4 + iVar9,uVar5);
  peVar2->mac = peVar7;
  if (peVar7 == (ether_addr *)0x0) {
    (*(code *)PTR_bb_error_msg_and_die_001311f0)(PTR_bdcommands_4__name_4__001311a4 + -0x54e8,iVar4)
    ;
  }
  peVar8 = *clist;
  peVar2->next = peVar8;
  if (peVar8 != (ethtable_t *)0x0) {
    peVar8->prev = peVar2;
  }
  *clist = peVar2;
  return;
}



void FUN_00044588(int *param_1,undefined4 param_2,undefined4 param_3)

{
  uint uVar1;
  int *piVar2;
  int iVar3;
  undefined4 uVar4;
  int iVar5;
  int iVar6;
  
  uVar1 = (*(code *)PTR_strlen_00131f58)(param_2);
  if (0xf < uVar1) {
    (*(code *)PTR_FUN_001311f0)(PTR_FUN_001311a4 + -0x5510,param_2);
  }
  piVar2 = (int *)(*(code *)PTR_FUN_001311c8)(0x10);
  iVar3 = (*(code *)PTR_FUN_001312b8)(param_2);
  piVar2[2] = iVar3;
  iVar3 = (*(code *)PTR_FUN_00131198)(param_3);
  uVar4 = (*(code *)PTR_FUN_00131240)(6);
  iVar5 = (*(code *)PTR_FUN_001311fc)(iVar3,PTR_FUN_001311a4 + -0x54f0);
  iVar6 = 4;
  if (iVar5 == 0) {
    iVar6 = 0;
  }
  iVar5 = (*(code *)PTR_ether_aton_r_00131d8c)(iVar3 + iVar6,uVar4);
  piVar2[3] = iVar5;
  if (iVar5 == 0) {
    (*(code *)PTR_FUN_001311f0)(PTR_FUN_001311a4 + -0x54e8,iVar3);
  }
  iVar3 = *param_1;
  *piVar2 = iVar3;
  if (iVar3 != 0) {
    *(int **)(iVar3 + 4) = piVar2;
  }
  *param_1 = (int)piVar2;
  return;
}


lui gp,0xf
addiu gp,gp,0x4bc8
addu gp,gp,t9
addiu sp,sp,-0x30
sw ra,0x2c(sp)
sw s3,0x28(sp)
sw s2,0x24(sp)
sw s1,0x20(sp)
sw s0,0x1c(sp)
sw gp,0x10(sp)
or s2,a0,zero
or s1,a1,zero
or s3,a2,zero
or a0,a1,zero
lw t9,-0x71f8(gp)
jalr t9
_nop
lw gp,0x10(sp)
sltiu v0,v0,0x10
bne v0,zero,0x000445f0
_or a1,s1,zero
lw a0,-0x7fac(gp)
addiu a0,a0,-0x5510
lw t9,-0x7f60(gp)
jalr t9
_nop
li a0,0x10
lw t9,-0x7f88(gp)
jalr t9
_nop
lw gp,0x10(sp)
or s0,v0,zero
or a0,s1,zero
lw t9,-0x7e98(gp)
jalr t9
_nop
lw gp,0x10(sp)
sw v0,0x8(s0)
or a0,s3,zero
lw t9,-0x7fb8(gp)
jalr t9
_nop
lw gp,0x10(sp)
or s1,v0,zero
li a0,0x6
lw t9,-0x7f10(gp)
jalr t9
_nop
lw gp,0x10(sp)
or s3,v0,zero
lw a1,-0x7fac(gp)
addiu a1,a1,-0x54f0
or a0,s1,zero
lw t9,-0x7f54(gp)
jalr t9
_nop
lw gp,0x10(sp)
li a0,0x4
movz a0,zero,v0
or a1,s3,zero
addu a0,s1,a0
lw t9,-0x73c4(gp)
jalr t9
_nop
lw gp,0x10(sp)
bne v0,zero,0x000446ac
_sw v0,0xc(s0)
or a1,s1,zero
lw a0,-0x7fac(gp)
addiu a0,a0,-0x54e8
lw t9,-0x7f60(gp)
jalr t9
_nop
lw v0,0x0(s2)
beq v0,zero,0x000446bc
_sw v0,0x0(s0)
sw s0,0x4(v0)
sw s0,0x0(s2)
lw ra,0x2c(sp)
lw s3,0x28(sp)
lw s2,0x24(sp)
lw s1,0x20(sp)
lw s0,0x1c(sp)
jr ra
_addiu sp,sp,0x30
(translation_unit "void FUN_00044588(int *param_1,undefined4 param_2,undefined4 param_3)\n\n{\n  uint uVar1;\n  int *piVar2;\n  int iVar3;\n  undefined4 uVar4;\n  int iVar5;\n  int iVar6;\n  \n  uVar1 = (*(code *)PTR_strlen_00131f58)(param_2);\n  if (0xf < uVar1) {\n    (*(code *)PTR_FUN_001311f0)(PTR_FUN_001311a4 + -0x5510,param_2);\n  }\n  piVar2 = (int *)(*(code *)PTR_FUN_001311c8)(0x10);\n  iVar3 = (*(code *)PTR_FUN_001312b8)(param_2);\n  piVar2[2] = iVar3;\n  iVar3 = (*(code *)PTR_FUN_00131198)(param_3);\n  uVar4 = (*(code *)PTR_FUN_00131240)(6);\n  iVar5 = (*(code *)PTR_FUN_001311fc)(iVar3,PTR_FUN_001311a4 + -0x54f0);\n  iVar6 = 4;\n  if (iVar5 == 0) {\n    iVar6 = 0;\n  }\n  iVar5 = (*(code *)PTR_ether_aton_r_00131d8c)(iVar3 + iVar6,uVar4);\n  piVar2[3] = iVar5;\n  if (iVar5 == 0) {\n    (*(code *)PTR_FUN_001311f0)(PTR_FUN_001311a4 + -0x54e8,iVar3);\n  }\n  iVar3 = *param_1;\n  *piVar2 = iVar3;\n  if (iVar3 != 0) {\n    *(int **)(iVar3 + 4) = piVar2;\n  }\n  *param_1 = (int)piVar2;\n  return;\n}\n\n" (function_definition "void FUN_00044588(int *param_1,undefined4 param_2,undefined4 param_3)\n\n{\n  uint uVar1;\n  int *piVar2;\n  int iVar3;\n  undefined4 uVar4;\n  int iVar5;\n  int iVar6;\n  \n  uVar1 = (*(code *)PTR_strlen_00131f58)(param_2);\n  if (0xf < uVar1) {\n    (*(code *)PTR_FUN_001311f0)(PTR_FUN_001311a4 + -0x5510,param_2);\n  }\n  piVar2 = (int *)(*(code *)PTR_FUN_001311c8)(0x10);\n  iVar3 = (*(code *)PTR_FUN_001312b8)(param_2);\n  piVar2[2] = iVar3;\n  iVar3 = (*(code *)PTR_FUN_00131198)(param_3);\n  uVar4 = (*(code *)PTR_FUN_00131240)(6);\n  iVar5 = (*(code *)PTR_FUN_001311fc)(iVar3,PTR_FUN_001311a4 + -0x54f0);\n  iVar6 = 4;\n  if (iVar5 == 0) {\n    iVar6 = 0;\n  }\n  iVar5 = (*(code *)PTR_ether_aton_r_00131d8c)(iVar3 + iVar6,uVar4);\n  piVar2[3] = iVar5;\n  if (iVar5 == 0) {\n    (*(code *)PTR_FUN_001311f0)(PTR_FUN_001311a4 + -0x54e8,iVar3);\n  }\n  iVar3 = *param_1;\n  *piVar2 = iVar3;\n  if (iVar3 != 0) {\n    *(int **)(iVar3 + 4) = piVar2;\n  }\n  *param_1 = (int)piVar2;\n  return;\n}" primitive_type (function_declarator "FUN_00044588(int *param_1,undefined4 param_2,undefined4 param_3)" identifier (parameter_list "(int *param_1,undefined4 param_2,undefined4 param_3)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "undefined4 param_2" type_identifier identifier) , (parameter_declaration "undefined4 param_3" type_identifier identifier) ))) (compound_statement "{\n  uint uVar1;\n  int *piVar2;\n  int iVar3;\n  undefined4 uVar4;\n  int iVar5;\n  int iVar6;\n  \n  uVar1 = (*(code *)PTR_strlen_00131f58)(param_2);\n  if (0xf < uVar1) {\n    (*(code *)PTR_FUN_001311f0)(PTR_FUN_001311a4 + -0x5510,param_2);\n  }\n  piVar2 = (int *)(*(code *)PTR_FUN_001311c8)(0x10);\n  iVar3 = (*(code *)PTR_FUN_001312b8)(param_2);\n  piVar2[2] = iVar3;\n  iVar3 = (*(code *)PTR_FUN_00131198)(param_3);\n  uVar4 = (*(code *)PTR_FUN_00131240)(6);\n  iVar5 = (*(code *)PTR_FUN_001311fc)(iVar3,PTR_FUN_001311a4 + -0x54f0);\n  iVar6 = 4;\n  if (iVar5 == 0) {\n    iVar6 = 0;\n  }\n  iVar5 = (*(code *)PTR_ether_aton_r_00131d8c)(iVar3 + iVar6,uVar4);\n  piVar2[3] = iVar5;\n  if (iVar5 == 0) {\n    (*(code *)PTR_FUN_001311f0)(PTR_FUN_001311a4 + -0x54e8,iVar3);\n  }\n  iVar3 = *param_1;\n  *piVar2 = iVar3;\n  if (iVar3 != 0) {\n    *(int **)(iVar3 + 4) = piVar2;\n  }\n  *param_1 = (int)piVar2;\n  return;\n}" { (declaration "uint uVar1;" type_identifier identifier ;) (declaration "int *piVar2;" primitive_type (pointer_declarator "*piVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (expression_statement "uVar1 = (*(code *)PTR_strlen_00131f58)(param_2);" (assignment_expression "uVar1 = (*(code *)PTR_strlen_00131f58)(param_2)" identifier = (call_expression "(*(code *)PTR_strlen_00131f58)(param_2)" (parenthesized_expression "(*(code *)PTR_strlen_00131f58)" ( (pointer_expression "*(code *)PTR_strlen_00131f58" * (cast_expression "(code *)PTR_strlen_00131f58" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_2)" ( identifier )))) ;) (if_statement "if (0xf < uVar1) {\n    (*(code *)PTR_FUN_001311f0)(PTR_FUN_001311a4 + -0x5510,param_2);\n  }" if (parenthesized_expression "(0xf < uVar1)" ( (binary_expression "0xf < uVar1" number_literal < identifier) )) (compound_statement "{\n    (*(code *)PTR_FUN_001311f0)(PTR_FUN_001311a4 + -0x5510,param_2);\n  }" { (expression_statement "(*(code *)PTR_FUN_001311f0)(PTR_FUN_001311a4 + -0x5510,param_2);" (call_expression "(*(code *)PTR_FUN_001311f0)(PTR_FUN_001311a4 + -0x5510,param_2)" (parenthesized_expression "(*(code *)PTR_FUN_001311f0)" ( (pointer_expression "*(code *)PTR_FUN_001311f0" * (cast_expression "(code *)PTR_FUN_001311f0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_FUN_001311a4 + -0x5510,param_2)" ( (binary_expression "PTR_FUN_001311a4 + -0x5510" identifier + number_literal) , identifier ))) ;) })) (expression_statement "piVar2 = (int *)(*(code *)PTR_FUN_001311c8)(0x10);" (assignment_expression "piVar2 = (int *)(*(code *)PTR_FUN_001311c8)(0x10)" identifier = (cast_expression "(int *)(*(code *)PTR_FUN_001311c8)(0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_FUN_001311c8)(0x10)" (parenthesized_expression "(*(code *)PTR_FUN_001311c8)" ( (pointer_expression "*(code *)PTR_FUN_001311c8" * (cast_expression "(code *)PTR_FUN_001311c8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0x10)" ( number_literal ))))) ;) (expression_statement "iVar3 = (*(code *)PTR_FUN_001312b8)(param_2);" (assignment_expression "iVar3 = (*(code *)PTR_FUN_001312b8)(param_2)" identifier = (call_expression "(*(code *)PTR_FUN_001312b8)(param_2)" (parenthesized_expression "(*(code *)PTR_FUN_001312b8)" ( (pointer_expression "*(code *)PTR_FUN_001312b8" * (cast_expression "(code *)PTR_FUN_001312b8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_2)" ( identifier )))) ;) (expression_statement "piVar2[2] = iVar3;" (assignment_expression "piVar2[2] = iVar3" (subscript_expression "piVar2[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar3 = (*(code *)PTR_FUN_00131198)(param_3);" (assignment_expression "iVar3 = (*(code *)PTR_FUN_00131198)(param_3)" identifier = (call_expression "(*(code *)PTR_FUN_00131198)(param_3)" (parenthesized_expression "(*(code *)PTR_FUN_00131198)" ( (pointer_expression "*(code *)PTR_FUN_00131198" * (cast_expression "(code *)PTR_FUN_00131198" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_3)" ( identifier )))) ;) (expression_statement "uVar4 = (*(code *)PTR_FUN_00131240)(6);" (assignment_expression "uVar4 = (*(code *)PTR_FUN_00131240)(6)" identifier = (call_expression "(*(code *)PTR_FUN_00131240)(6)" (parenthesized_expression "(*(code *)PTR_FUN_00131240)" ( (pointer_expression "*(code *)PTR_FUN_00131240" * (cast_expression "(code *)PTR_FUN_00131240" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(6)" ( number_literal )))) ;) (expression_statement "iVar5 = (*(code *)PTR_FUN_001311fc)(iVar3,PTR_FUN_001311a4 + -0x54f0);" (assignment_expression "iVar5 = (*(code *)PTR_FUN_001311fc)(iVar3,PTR_FUN_001311a4 + -0x54f0)" identifier = (call_expression "(*(code *)PTR_FUN_001311fc)(iVar3,PTR_FUN_001311a4 + -0x54f0)" (parenthesized_expression "(*(code *)PTR_FUN_001311fc)" ( (pointer_expression "*(code *)PTR_FUN_001311fc" * (cast_expression "(code *)PTR_FUN_001311fc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar3,PTR_FUN_001311a4 + -0x54f0)" ( identifier , (binary_expression "PTR_FUN_001311a4 + -0x54f0" identifier + number_literal) )))) ;) (expression_statement "iVar6 = 4;" (assignment_expression "iVar6 = 4" identifier = number_literal) ;) (if_statement "if (iVar5 == 0) {\n    iVar6 = 0;\n  }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n    iVar6 = 0;\n  }" { (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" identifier = number_literal) ;) })) (expression_statement "iVar5 = (*(code *)PTR_ether_aton_r_00131d8c)(iVar3 + iVar6,uVar4);" (assignment_expression "iVar5 = (*(code *)PTR_ether_aton_r_00131d8c)(iVar3 + iVar6,uVar4)" identifier = (call_expression "(*(code *)PTR_ether_aton_r_00131d8c)(iVar3 + iVar6,uVar4)" (parenthesized_expression "(*(code *)PTR_ether_aton_r_00131d8c)" ( (pointer_expression "*(code *)PTR_ether_aton_r_00131d8c" * (cast_expression "(code *)PTR_ether_aton_r_00131d8c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar3 + iVar6,uVar4)" ( (binary_expression "iVar3 + iVar6" identifier + identifier) , identifier )))) ;) (expression_statement "piVar2[3] = iVar5;" (assignment_expression "piVar2[3] = iVar5" (subscript_expression "piVar2[3]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (iVar5 == 0) {\n    (*(code *)PTR_FUN_001311f0)(PTR_FUN_001311a4 + -0x54e8,iVar3);\n  }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n    (*(code *)PTR_FUN_001311f0)(PTR_FUN_001311a4 + -0x54e8,iVar3);\n  }" { (expression_statement "(*(code *)PTR_FUN_001311f0)(PTR_FUN_001311a4 + -0x54e8,iVar3);" (call_expression "(*(code *)PTR_FUN_001311f0)(PTR_FUN_001311a4 + -0x54e8,iVar3)" (parenthesized_expression "(*(code *)PTR_FUN_001311f0)" ( (pointer_expression "*(code *)PTR_FUN_001311f0" * (cast_expression "(code *)PTR_FUN_001311f0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_FUN_001311a4 + -0x54e8,iVar3)" ( (binary_expression "PTR_FUN_001311a4 + -0x54e8" identifier + number_literal) , identifier ))) ;) })) (expression_statement "iVar3 = *param_1;" (assignment_expression "iVar3 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "*piVar2 = iVar3;" (assignment_expression "*piVar2 = iVar3" (pointer_expression "*piVar2" * identifier) = identifier) ;) (if_statement "if (iVar3 != 0) {\n    *(int **)(iVar3 + 4) = piVar2;\n  }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n    *(int **)(iVar3 + 4) = piVar2;\n  }" { (expression_statement "*(int **)(iVar3 + 4) = piVar2;" (assignment_expression "*(int **)(iVar3 + 4) = piVar2" (pointer_expression "*(int **)(iVar3 + 4)" * (cast_expression "(int **)(iVar3 + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar3 + 4)" ( (binary_expression "iVar3 + 4" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "*param_1 = (int)piVar2;" (assignment_expression "*param_1 = (int)piVar2" (pointer_expression "*param_1" * identifier) = (cast_expression "(int)piVar2" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (return_statement "return;" return ;) })))
(translation_unit "void prepend_new_eth_table(ethtable_t **clist,char *ifname,char *selector)\n\n{\n  uint uVar1;\n  ethtable_s *peVar2;\n  char *pcVar3;\n  int iVar4;\n  undefined4 uVar5;\n  int iVar6;\n  ether_addr *peVar7;\n  ethtable_t *peVar8;\n  int iVar9;\n  \n  uVar1 = (*(code *)PTR_strlen_00131f58)(ifname);\n  if (0xf < uVar1) {\n    (*(code *)PTR_bb_error_msg_and_die_001311f0)\n              (PTR_bdcommands_4__name_4__001311a4 + -0x5510,ifname);\n  }\n  peVar2 = (ethtable_s *)(*(code *)PTR_xzalloc_001311c8)(0x10);\n  pcVar3 = (char *)(*(code *)PTR_xstrdup_001312b8)(ifname);\n  peVar2->ifname = pcVar3;\n  iVar4 = (*(code *)PTR_skip_whitespace_00131198)(selector);\n  uVar5 = (*(code *)PTR_xmalloc_00131240)(6);\n  iVar6 = (*(code *)PTR_is_prefixed_with_001311fc)\n                    (iVar4,PTR_bdcommands_4__name_4__001311a4 + -0x54f0);\n  iVar9 = 4;\n  if (iVar6 == 0) {\n    iVar9 = 0;\n  }\n  peVar7 = (ether_addr *)(*(code *)PTR_ether_aton_r_00131d8c)(iVar4 + iVar9,uVar5);\n  peVar2->mac = peVar7;\n  if (peVar7 == (ether_addr *)0x0) {\n    (*(code *)PTR_bb_error_msg_and_die_001311f0)(PTR_bdcommands_4__name_4__001311a4 + -0x54e8,iVar4)\n    ;\n  }\n  peVar8 = *clist;\n  peVar2->next = peVar8;\n  if (peVar8 != (ethtable_t *)0x0) {\n    peVar8->prev = peVar2;\n  }\n  *clist = peVar2;\n  return;\n}\n\n" (function_definition "void prepend_new_eth_table(ethtable_t **clist,char *ifname,char *selector)\n\n{\n  uint uVar1;\n  ethtable_s *peVar2;\n  char *pcVar3;\n  int iVar4;\n  undefined4 uVar5;\n  int iVar6;\n  ether_addr *peVar7;\n  ethtable_t *peVar8;\n  int iVar9;\n  \n  uVar1 = (*(code *)PTR_strlen_00131f58)(ifname);\n  if (0xf < uVar1) {\n    (*(code *)PTR_bb_error_msg_and_die_001311f0)\n              (PTR_bdcommands_4__name_4__001311a4 + -0x5510,ifname);\n  }\n  peVar2 = (ethtable_s *)(*(code *)PTR_xzalloc_001311c8)(0x10);\n  pcVar3 = (char *)(*(code *)PTR_xstrdup_001312b8)(ifname);\n  peVar2->ifname = pcVar3;\n  iVar4 = (*(code *)PTR_skip_whitespace_00131198)(selector);\n  uVar5 = (*(code *)PTR_xmalloc_00131240)(6);\n  iVar6 = (*(code *)PTR_is_prefixed_with_001311fc)\n                    (iVar4,PTR_bdcommands_4__name_4__001311a4 + -0x54f0);\n  iVar9 = 4;\n  if (iVar6 == 0) {\n    iVar9 = 0;\n  }\n  peVar7 = (ether_addr *)(*(code *)PTR_ether_aton_r_00131d8c)(iVar4 + iVar9,uVar5);\n  peVar2->mac = peVar7;\n  if (peVar7 == (ether_addr *)0x0) {\n    (*(code *)PTR_bb_error_msg_and_die_001311f0)(PTR_bdcommands_4__name_4__001311a4 + -0x54e8,iVar4)\n    ;\n  }\n  peVar8 = *clist;\n  peVar2->next = peVar8;\n  if (peVar8 != (ethtable_t *)0x0) {\n    peVar8->prev = peVar2;\n  }\n  *clist = peVar2;\n  return;\n}" primitive_type (function_declarator "prepend_new_eth_table(ethtable_t **clist,char *ifname,char *selector)" identifier (parameter_list "(ethtable_t **clist,char *ifname,char *selector)" ( (parameter_declaration "ethtable_t **clist" type_identifier (pointer_declarator "**clist" * (pointer_declarator "*clist" * identifier))) , (parameter_declaration "char *ifname" primitive_type (pointer_declarator "*ifname" * identifier)) , (parameter_declaration "char *selector" primitive_type (pointer_declarator "*selector" * identifier)) ))) (compound_statement "{\n  uint uVar1;\n  ethtable_s *peVar2;\n  char *pcVar3;\n  int iVar4;\n  undefined4 uVar5;\n  int iVar6;\n  ether_addr *peVar7;\n  ethtable_t *peVar8;\n  int iVar9;\n  \n  uVar1 = (*(code *)PTR_strlen_00131f58)(ifname);\n  if (0xf < uVar1) {\n    (*(code *)PTR_bb_error_msg_and_die_001311f0)\n              (PTR_bdcommands_4__name_4__001311a4 + -0x5510,ifname);\n  }\n  peVar2 = (ethtable_s *)(*(code *)PTR_xzalloc_001311c8)(0x10);\n  pcVar3 = (char *)(*(code *)PTR_xstrdup_001312b8)(ifname);\n  peVar2->ifname = pcVar3;\n  iVar4 = (*(code *)PTR_skip_whitespace_00131198)(selector);\n  uVar5 = (*(code *)PTR_xmalloc_00131240)(6);\n  iVar6 = (*(code *)PTR_is_prefixed_with_001311fc)\n                    (iVar4,PTR_bdcommands_4__name_4__001311a4 + -0x54f0);\n  iVar9 = 4;\n  if (iVar6 == 0) {\n    iVar9 = 0;\n  }\n  peVar7 = (ether_addr *)(*(code *)PTR_ether_aton_r_00131d8c)(iVar4 + iVar9,uVar5);\n  peVar2->mac = peVar7;\n  if (peVar7 == (ether_addr *)0x0) {\n    (*(code *)PTR_bb_error_msg_and_die_001311f0)(PTR_bdcommands_4__name_4__001311a4 + -0x54e8,iVar4)\n    ;\n  }\n  peVar8 = *clist;\n  peVar2->next = peVar8;\n  if (peVar8 != (ethtable_t *)0x0) {\n    peVar8->prev = peVar2;\n  }\n  *clist = peVar2;\n  return;\n}" { (declaration "uint uVar1;" type_identifier identifier ;) (declaration "ethtable_s *peVar2;" type_identifier (pointer_declarator "*peVar2" * identifier) ;) (declaration "char *pcVar3;" primitive_type (pointer_declarator "*pcVar3" * identifier) ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "undefined4 uVar5;" type_identifier identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "ether_addr *peVar7;" type_identifier (pointer_declarator "*peVar7" * identifier) ;) (declaration "ethtable_t *peVar8;" type_identifier (pointer_declarator "*peVar8" * identifier) ;) (declaration "int iVar9;" primitive_type identifier ;) (expression_statement "uVar1 = (*(code *)PTR_strlen_00131f58)(ifname);" (assignment_expression "uVar1 = (*(code *)PTR_strlen_00131f58)(ifname)" identifier = (call_expression "(*(code *)PTR_strlen_00131f58)(ifname)" (parenthesized_expression "(*(code *)PTR_strlen_00131f58)" ( (pointer_expression "*(code *)PTR_strlen_00131f58" * (cast_expression "(code *)PTR_strlen_00131f58" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(ifname)" ( identifier )))) ;) (if_statement "if (0xf < uVar1) {\n    (*(code *)PTR_bb_error_msg_and_die_001311f0)\n              (PTR_bdcommands_4__name_4__001311a4 + -0x5510,ifname);\n  }" if (parenthesized_expression "(0xf < uVar1)" ( (binary_expression "0xf < uVar1" number_literal < identifier) )) (compound_statement "{\n    (*(code *)PTR_bb_error_msg_and_die_001311f0)\n              (PTR_bdcommands_4__name_4__001311a4 + -0x5510,ifname);\n  }" { (expression_statement "(*(code *)PTR_bb_error_msg_and_die_001311f0)\n              (PTR_bdcommands_4__name_4__001311a4 + -0x5510,ifname);" (call_expression "(*(code *)PTR_bb_error_msg_and_die_001311f0)\n              (PTR_bdcommands_4__name_4__001311a4 + -0x5510,ifname)" (parenthesized_expression "(*(code *)PTR_bb_error_msg_and_die_001311f0)" ( (pointer_expression "*(code *)PTR_bb_error_msg_and_die_001311f0" * (cast_expression "(code *)PTR_bb_error_msg_and_die_001311f0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_bdcommands_4__name_4__001311a4 + -0x5510,ifname)" ( (binary_expression "PTR_bdcommands_4__name_4__001311a4 + -0x5510" identifier + number_literal) , identifier ))) ;) })) (expression_statement "peVar2 = (ethtable_s *)(*(code *)PTR_xzalloc_001311c8)(0x10);" (assignment_expression "peVar2 = (ethtable_s *)(*(code *)PTR_xzalloc_001311c8)(0x10)" identifier = (cast_expression "(ethtable_s *)(*(code *)PTR_xzalloc_001311c8)(0x10)" ( (type_descriptor "ethtable_s *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_xzalloc_001311c8)(0x10)" (parenthesized_expression "(*(code *)PTR_xzalloc_001311c8)" ( (pointer_expression "*(code *)PTR_xzalloc_001311c8" * (cast_expression "(code *)PTR_xzalloc_001311c8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0x10)" ( number_literal ))))) ;) (expression_statement "pcVar3 = (char *)(*(code *)PTR_xstrdup_001312b8)(ifname);" (assignment_expression "pcVar3 = (char *)(*(code *)PTR_xstrdup_001312b8)(ifname)" identifier = (cast_expression "(char *)(*(code *)PTR_xstrdup_001312b8)(ifname)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_xstrdup_001312b8)(ifname)" (parenthesized_expression "(*(code *)PTR_xstrdup_001312b8)" ( (pointer_expression "*(code *)PTR_xstrdup_001312b8" * (cast_expression "(code *)PTR_xstrdup_001312b8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(ifname)" ( identifier ))))) ;) (expression_statement "peVar2->ifname = pcVar3;" (assignment_expression "peVar2->ifname = pcVar3" (field_expression "peVar2->ifname" identifier -> field_identifier) = identifier) ;) (expression_statement "iVar4 = (*(code *)PTR_skip_whitespace_00131198)(selector);" (assignment_expression "iVar4 = (*(code *)PTR_skip_whitespace_00131198)(selector)" identifier = (call_expression "(*(code *)PTR_skip_whitespace_00131198)(selector)" (parenthesized_expression "(*(code *)PTR_skip_whitespace_00131198)" ( (pointer_expression "*(code *)PTR_skip_whitespace_00131198" * (cast_expression "(code *)PTR_skip_whitespace_00131198" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(selector)" ( identifier )))) ;) (expression_statement "uVar5 = (*(code *)PTR_xmalloc_00131240)(6);" (assignment_expression "uVar5 = (*(code *)PTR_xmalloc_00131240)(6)" identifier = (call_expression "(*(code *)PTR_xmalloc_00131240)(6)" (parenthesized_expression "(*(code *)PTR_xmalloc_00131240)" ( (pointer_expression "*(code *)PTR_xmalloc_00131240" * (cast_expression "(code *)PTR_xmalloc_00131240" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(6)" ( number_literal )))) ;) (expression_statement "iVar6 = (*(code *)PTR_is_prefixed_with_001311fc)\n                    (iVar4,PTR_bdcommands_4__name_4__001311a4 + -0x54f0);" (assignment_expression "iVar6 = (*(code *)PTR_is_prefixed_with_001311fc)\n                    (iVar4,PTR_bdcommands_4__name_4__001311a4 + -0x54f0)" identifier = (call_expression "(*(code *)PTR_is_prefixed_with_001311fc)\n                    (iVar4,PTR_bdcommands_4__name_4__001311a4 + -0x54f0)" (parenthesized_expression "(*(code *)PTR_is_prefixed_with_001311fc)" ( (pointer_expression "*(code *)PTR_is_prefixed_with_001311fc" * (cast_expression "(code *)PTR_is_prefixed_with_001311fc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar4,PTR_bdcommands_4__name_4__001311a4 + -0x54f0)" ( identifier , (binary_expression "PTR_bdcommands_4__name_4__001311a4 + -0x54f0" identifier + number_literal) )))) ;) (expression_statement "iVar9 = 4;" (assignment_expression "iVar9 = 4" identifier = number_literal) ;) (if_statement "if (iVar6 == 0) {\n    iVar9 = 0;\n  }" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (compound_statement "{\n    iVar9 = 0;\n  }" { (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" identifier = number_literal) ;) })) (expression_statement "peVar7 = (ether_addr *)(*(code *)PTR_ether_aton_r_00131d8c)(iVar4 + iVar9,uVar5);" (assignment_expression "peVar7 = (ether_addr *)(*(code *)PTR_ether_aton_r_00131d8c)(iVar4 + iVar9,uVar5)" identifier = (cast_expression "(ether_addr *)(*(code *)PTR_ether_aton_r_00131d8c)(iVar4 + iVar9,uVar5)" ( (type_descriptor "ether_addr *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_ether_aton_r_00131d8c)(iVar4 + iVar9,uVar5)" (parenthesized_expression "(*(code *)PTR_ether_aton_r_00131d8c)" ( (pointer_expression "*(code *)PTR_ether_aton_r_00131d8c" * (cast_expression "(code *)PTR_ether_aton_r_00131d8c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar4 + iVar9,uVar5)" ( (binary_expression "iVar4 + iVar9" identifier + identifier) , identifier ))))) ;) (expression_statement "peVar2->mac = peVar7;" (assignment_expression "peVar2->mac = peVar7" (field_expression "peVar2->mac" identifier -> field_identifier) = identifier) ;) (if_statement "if (peVar7 == (ether_addr *)0x0) {\n    (*(code *)PTR_bb_error_msg_and_die_001311f0)(PTR_bdcommands_4__name_4__001311a4 + -0x54e8,iVar4)\n    ;\n  }" if (parenthesized_expression "(peVar7 == (ether_addr *)0x0)" ( (binary_expression "peVar7 == (ether_addr *)0x0" identifier == (cast_expression "(ether_addr *)0x0" ( (type_descriptor "ether_addr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    (*(code *)PTR_bb_error_msg_and_die_001311f0)(PTR_bdcommands_4__name_4__001311a4 + -0x54e8,iVar4)\n    ;\n  }" { (expression_statement "(*(code *)PTR_bb_error_msg_and_die_001311f0)(PTR_bdcommands_4__name_4__001311a4 + -0x54e8,iVar4)\n    ;" (call_expression "(*(code *)PTR_bb_error_msg_and_die_001311f0)(PTR_bdcommands_4__name_4__001311a4 + -0x54e8,iVar4)" (parenthesized_expression "(*(code *)PTR_bb_error_msg_and_die_001311f0)" ( (pointer_expression "*(code *)PTR_bb_error_msg_and_die_001311f0" * (cast_expression "(code *)PTR_bb_error_msg_and_die_001311f0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_bdcommands_4__name_4__001311a4 + -0x54e8,iVar4)" ( (binary_expression "PTR_bdcommands_4__name_4__001311a4 + -0x54e8" identifier + number_literal) , identifier ))) ;) })) (expression_statement "peVar8 = *clist;" (assignment_expression "peVar8 = *clist" identifier = (pointer_expression "*clist" * identifier)) ;) (expression_statement "peVar2->next = peVar8;" (assignment_expression "peVar2->next = peVar8" (field_expression "peVar2->next" identifier -> field_identifier) = identifier) ;) (if_statement "if (peVar8 != (ethtable_t *)0x0) {\n    peVar8->prev = peVar2;\n  }" if (parenthesized_expression "(peVar8 != (ethtable_t *)0x0)" ( (binary_expression "peVar8 != (ethtable_t *)0x0" identifier != (cast_expression "(ethtable_t *)0x0" ( (type_descriptor "ethtable_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    peVar8->prev = peVar2;\n  }" { (expression_statement "peVar8->prev = peVar2;" (assignment_expression "peVar8->prev = peVar2" (field_expression "peVar8->prev" identifier -> field_identifier) = identifier) ;) })) (expression_statement "*clist = peVar2;" (assignment_expression "*clist = peVar2" (pointer_expression "*clist" * identifier) = identifier) ;) (return_statement "return;" return ;) })))
(translation_unit "void FUN_00044588(int *param_1,undefined4 param_2,undefined4 param_3)\n\n{\n  uint uVar1;\n  int *piVar2;\n  int iVar3;\n  undefined4 uVar4;\n  int iVar5;\n  int iVar6;\n  \n  uVar1 = (*(code *)PTR_strlen_00131f58)(param_2);\n  if (0xf < uVar1) {\n    (*(code *)PTR_FUN_001311f0)(PTR_FUN_001311a4 + -0x5510,param_2);\n  }\n  piVar2 = (int *)(*(code *)PTR_FUN_001311c8)(0x10);\n  iVar3 = (*(code *)PTR_FUN_001312b8)(param_2);\n  piVar2[2] = iVar3;\n  iVar3 = (*(code *)PTR_FUN_00131198)(param_3);\n  uVar4 = (*(code *)PTR_FUN_00131240)(6);\n  iVar5 = (*(code *)PTR_FUN_001311fc)(iVar3,PTR_FUN_001311a4 + -0x54f0);\n  iVar6 = 4;\n  if (iVar5 == 0) {\n    iVar6 = 0;\n  }\n  iVar5 = (*(code *)PTR_ether_aton_r_00131d8c)(iVar3 + iVar6,uVar4);\n  piVar2[3] = iVar5;\n  if (iVar5 == 0) {\n    (*(code *)PTR_FUN_001311f0)(PTR_FUN_001311a4 + -0x54e8,iVar3);\n  }\n  iVar3 = *param_1;\n  *piVar2 = iVar3;\n  if (iVar3 != 0) {\n    *(int **)(iVar3 + 4) = piVar2;\n  }\n  *param_1 = (int)piVar2;\n  return;\n}\n\n" (function_definition "void FUN_00044588(int *param_1,undefined4 param_2,undefined4 param_3)\n\n{\n  uint uVar1;\n  int *piVar2;\n  int iVar3;\n  undefined4 uVar4;\n  int iVar5;\n  int iVar6;\n  \n  uVar1 = (*(code *)PTR_strlen_00131f58)(param_2);\n  if (0xf < uVar1) {\n    (*(code *)PTR_FUN_001311f0)(PTR_FUN_001311a4 + -0x5510,param_2);\n  }\n  piVar2 = (int *)(*(code *)PTR_FUN_001311c8)(0x10);\n  iVar3 = (*(code *)PTR_FUN_001312b8)(param_2);\n  piVar2[2] = iVar3;\n  iVar3 = (*(code *)PTR_FUN_00131198)(param_3);\n  uVar4 = (*(code *)PTR_FUN_00131240)(6);\n  iVar5 = (*(code *)PTR_FUN_001311fc)(iVar3,PTR_FUN_001311a4 + -0x54f0);\n  iVar6 = 4;\n  if (iVar5 == 0) {\n    iVar6 = 0;\n  }\n  iVar5 = (*(code *)PTR_ether_aton_r_00131d8c)(iVar3 + iVar6,uVar4);\n  piVar2[3] = iVar5;\n  if (iVar5 == 0) {\n    (*(code *)PTR_FUN_001311f0)(PTR_FUN_001311a4 + -0x54e8,iVar3);\n  }\n  iVar3 = *param_1;\n  *piVar2 = iVar3;\n  if (iVar3 != 0) {\n    *(int **)(iVar3 + 4) = piVar2;\n  }\n  *param_1 = (int)piVar2;\n  return;\n}" primitive_type (function_declarator "FUN_00044588(int *param_1,undefined4 param_2,undefined4 param_3)" identifier (parameter_list "(int *param_1,undefined4 param_2,undefined4 param_3)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "undefined4 param_2" type_identifier identifier) , (parameter_declaration "undefined4 param_3" type_identifier identifier) ))) (compound_statement "{\n  uint uVar1;\n  int *piVar2;\n  int iVar3;\n  undefined4 uVar4;\n  int iVar5;\n  int iVar6;\n  \n  uVar1 = (*(code *)PTR_strlen_00131f58)(param_2);\n  if (0xf < uVar1) {\n    (*(code *)PTR_FUN_001311f0)(PTR_FUN_001311a4 + -0x5510,param_2);\n  }\n  piVar2 = (int *)(*(code *)PTR_FUN_001311c8)(0x10);\n  iVar3 = (*(code *)PTR_FUN_001312b8)(param_2);\n  piVar2[2] = iVar3;\n  iVar3 = (*(code *)PTR_FUN_00131198)(param_3);\n  uVar4 = (*(code *)PTR_FUN_00131240)(6);\n  iVar5 = (*(code *)PTR_FUN_001311fc)(iVar3,PTR_FUN_001311a4 + -0x54f0);\n  iVar6 = 4;\n  if (iVar5 == 0) {\n    iVar6 = 0;\n  }\n  iVar5 = (*(code *)PTR_ether_aton_r_00131d8c)(iVar3 + iVar6,uVar4);\n  piVar2[3] = iVar5;\n  if (iVar5 == 0) {\n    (*(code *)PTR_FUN_001311f0)(PTR_FUN_001311a4 + -0x54e8,iVar3);\n  }\n  iVar3 = *param_1;\n  *piVar2 = iVar3;\n  if (iVar3 != 0) {\n    *(int **)(iVar3 + 4) = piVar2;\n  }\n  *param_1 = (int)piVar2;\n  return;\n}" { (declaration "uint uVar1;" type_identifier identifier ;) (declaration "int *piVar2;" primitive_type (pointer_declarator "*piVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (expression_statement "uVar1 = (*(code *)PTR_strlen_00131f58)(param_2);" (assignment_expression "uVar1 = (*(code *)PTR_strlen_00131f58)(param_2)" identifier = (call_expression "(*(code *)PTR_strlen_00131f58)(param_2)" (parenthesized_expression "(*(code *)PTR_strlen_00131f58)" ( (pointer_expression "*(code *)PTR_strlen_00131f58" * (cast_expression "(code *)PTR_strlen_00131f58" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_2)" ( identifier )))) ;) (if_statement "if (0xf < uVar1) {\n    (*(code *)PTR_FUN_001311f0)(PTR_FUN_001311a4 + -0x5510,param_2);\n  }" if (parenthesized_expression "(0xf < uVar1)" ( (binary_expression "0xf < uVar1" number_literal < identifier) )) (compound_statement "{\n    (*(code *)PTR_FUN_001311f0)(PTR_FUN_001311a4 + -0x5510,param_2);\n  }" { (expression_statement "(*(code *)PTR_FUN_001311f0)(PTR_FUN_001311a4 + -0x5510,param_2);" (call_expression "(*(code *)PTR_FUN_001311f0)(PTR_FUN_001311a4 + -0x5510,param_2)" (parenthesized_expression "(*(code *)PTR_FUN_001311f0)" ( (pointer_expression "*(code *)PTR_FUN_001311f0" * (cast_expression "(code *)PTR_FUN_001311f0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_FUN_001311a4 + -0x5510,param_2)" ( (binary_expression "PTR_FUN_001311a4 + -0x5510" identifier + number_literal) , identifier ))) ;) })) (expression_statement "piVar2 = (int *)(*(code *)PTR_FUN_001311c8)(0x10);" (assignment_expression "piVar2 = (int *)(*(code *)PTR_FUN_001311c8)(0x10)" identifier = (cast_expression "(int *)(*(code *)PTR_FUN_001311c8)(0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_FUN_001311c8)(0x10)" (parenthesized_expression "(*(code *)PTR_FUN_001311c8)" ( (pointer_expression "*(code *)PTR_FUN_001311c8" * (cast_expression "(code *)PTR_FUN_001311c8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0x10)" ( number_literal ))))) ;) (expression_statement "iVar3 = (*(code *)PTR_FUN_001312b8)(param_2);" (assignment_expression "iVar3 = (*(code *)PTR_FUN_001312b8)(param_2)" identifier = (call_expression "(*(code *)PTR_FUN_001312b8)(param_2)" (parenthesized_expression "(*(code *)PTR_FUN_001312b8)" ( (pointer_expression "*(code *)PTR_FUN_001312b8" * (cast_expression "(code *)PTR_FUN_001312b8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_2)" ( identifier )))) ;) (expression_statement "piVar2[2] = iVar3;" (assignment_expression "piVar2[2] = iVar3" (subscript_expression "piVar2[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar3 = (*(code *)PTR_FUN_00131198)(param_3);" (assignment_expression "iVar3 = (*(code *)PTR_FUN_00131198)(param_3)" identifier = (call_expression "(*(code *)PTR_FUN_00131198)(param_3)" (parenthesized_expression "(*(code *)PTR_FUN_00131198)" ( (pointer_expression "*(code *)PTR_FUN_00131198" * (cast_expression "(code *)PTR_FUN_00131198" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_3)" ( identifier )))) ;) (expression_statement "uVar4 = (*(code *)PTR_FUN_00131240)(6);" (assignment_expression "uVar4 = (*(code *)PTR_FUN_00131240)(6)" identifier = (call_expression "(*(code *)PTR_FUN_00131240)(6)" (parenthesized_expression "(*(code *)PTR_FUN_00131240)" ( (pointer_expression "*(code *)PTR_FUN_00131240" * (cast_expression "(code *)PTR_FUN_00131240" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(6)" ( number_literal )))) ;) (expression_statement "iVar5 = (*(code *)PTR_FUN_001311fc)(iVar3,PTR_FUN_001311a4 + -0x54f0);" (assignment_expression "iVar5 = (*(code *)PTR_FUN_001311fc)(iVar3,PTR_FUN_001311a4 + -0x54f0)" identifier = (call_expression "(*(code *)PTR_FUN_001311fc)(iVar3,PTR_FUN_001311a4 + -0x54f0)" (parenthesized_expression "(*(code *)PTR_FUN_001311fc)" ( (pointer_expression "*(code *)PTR_FUN_001311fc" * (cast_expression "(code *)PTR_FUN_001311fc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar3,PTR_FUN_001311a4 + -0x54f0)" ( identifier , (binary_expression "PTR_FUN_001311a4 + -0x54f0" identifier + number_literal) )))) ;) (expression_statement "iVar6 = 4;" (assignment_expression "iVar6 = 4" identifier = number_literal) ;) (if_statement "if (iVar5 == 0) {\n    iVar6 = 0;\n  }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n    iVar6 = 0;\n  }" { (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" identifier = number_literal) ;) })) (expression_statement "iVar5 = (*(code *)PTR_ether_aton_r_00131d8c)(iVar3 + iVar6,uVar4);" (assignment_expression "iVar5 = (*(code *)PTR_ether_aton_r_00131d8c)(iVar3 + iVar6,uVar4)" identifier = (call_expression "(*(code *)PTR_ether_aton_r_00131d8c)(iVar3 + iVar6,uVar4)" (parenthesized_expression "(*(code *)PTR_ether_aton_r_00131d8c)" ( (pointer_expression "*(code *)PTR_ether_aton_r_00131d8c" * (cast_expression "(code *)PTR_ether_aton_r_00131d8c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar3 + iVar6,uVar4)" ( (binary_expression "iVar3 + iVar6" identifier + identifier) , identifier )))) ;) (expression_statement "piVar2[3] = iVar5;" (assignment_expression "piVar2[3] = iVar5" (subscript_expression "piVar2[3]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (iVar5 == 0) {\n    (*(code *)PTR_FUN_001311f0)(PTR_FUN_001311a4 + -0x54e8,iVar3);\n  }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n    (*(code *)PTR_FUN_001311f0)(PTR_FUN_001311a4 + -0x54e8,iVar3);\n  }" { (expression_statement "(*(code *)PTR_FUN_001311f0)(PTR_FUN_001311a4 + -0x54e8,iVar3);" (call_expression "(*(code *)PTR_FUN_001311f0)(PTR_FUN_001311a4 + -0x54e8,iVar3)" (parenthesized_expression "(*(code *)PTR_FUN_001311f0)" ( (pointer_expression "*(code *)PTR_FUN_001311f0" * (cast_expression "(code *)PTR_FUN_001311f0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_FUN_001311a4 + -0x54e8,iVar3)" ( (binary_expression "PTR_FUN_001311a4 + -0x54e8" identifier + number_literal) , identifier ))) ;) })) (expression_statement "iVar3 = *param_1;" (assignment_expression "iVar3 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "*piVar2 = iVar3;" (assignment_expression "*piVar2 = iVar3" (pointer_expression "*piVar2" * identifier) = identifier) ;) (if_statement "if (iVar3 != 0) {\n    *(int **)(iVar3 + 4) = piVar2;\n  }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n    *(int **)(iVar3 + 4) = piVar2;\n  }" { (expression_statement "*(int **)(iVar3 + 4) = piVar2;" (assignment_expression "*(int **)(iVar3 + 4) = piVar2" (pointer_expression "*(int **)(iVar3 + 4)" * (cast_expression "(int **)(iVar3 + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar3 + 4)" ( (binary_expression "iVar3 + 4" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "*param_1 = (int)piVar2;" (assignment_expression "*param_1 = (int)piVar2" (pointer_expression "*param_1" * identifier) = (cast_expression "(int)piVar2" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) , IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( LIT ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( LIT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + IDENT) , IDENT )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) , IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (return_statement return ;) })))
(function_definition "void FUN_00044588(int *param_1,undefined4 param_2,undefined4 param_3)\n\n{\n  uint uVar1;\n  int *piVar2;\n  int iVar3;\n  undefined4 uVar4;\n  int iVar5;\n  int iVar6;\n  \n  uVar1 = (*(code *)PTR_strlen_00131f58)(param_2);\n  if (0xf < uVar1) {\n    (*(code *)PTR_FUN_001311f0)(PTR_FUN_001311a4 + -0x5510,param_2);\n  }\n  piVar2 = (int *)(*(code *)PTR_FUN_001311c8)(0x10);\n  iVar3 = (*(code *)PTR_FUN_001312b8)(param_2);\n  piVar2[2] = iVar3;\n  iVar3 = (*(code *)PTR_FUN_00131198)(param_3);\n  uVar4 = (*(code *)PTR_FUN_00131240)(6);\n  iVar5 = (*(code *)PTR_FUN_001311fc)(iVar3,PTR_FUN_001311a4 + -0x54f0);\n  iVar6 = 4;\n  if (iVar5 == 0) {\n    iVar6 = 0;\n  }\n  iVar5 = (*(code *)PTR_ether_aton_r_00131d8c)(iVar3 + iVar6,uVar4);\n  piVar2[3] = iVar5;\n  if (iVar5 == 0) {\n    (*(code *)PTR_FUN_001311f0)(PTR_FUN_001311a4 + -0x54e8,iVar3);\n  }\n  iVar3 = *param_1;\n  *piVar2 = iVar3;\n  if (iVar3 != 0) {\n    *(int **)(iVar3 + 4) = piVar2;\n  }\n  *param_1 = (int)piVar2;\n  return;\n}" (primitive_type "void") (function_declarator "FUN_00044588(int *param_1,undefined4 param_2,undefined4 param_3)" (identifier "FUN_00044588") (parameter_list "(int *param_1,undefined4 param_2,undefined4 param_3)" (( "(") (parameter_declaration "int *param_1" (primitive_type "int") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "undefined4 param_2" (type_identifier "undefined4") (identifier "param_2")) (, ",") (parameter_declaration "undefined4 param_3" (type_identifier "undefined4") (identifier "param_3")) () ")"))) (compound_statement "{\n  uint uVar1;\n  int *piVar2;\n  int iVar3;\n  undefined4 uVar4;\n  int iVar5;\n  int iVar6;\n  \n  uVar1 = (*(code *)PTR_strlen_00131f58)(param_2);\n  if (0xf < uVar1) {\n    (*(code *)PTR_FUN_001311f0)(PTR_FUN_001311a4 + -0x5510,param_2);\n  }\n  piVar2 = (int *)(*(code *)PTR_FUN_001311c8)(0x10);\n  iVar3 = (*(code *)PTR_FUN_001312b8)(param_2);\n  piVar2[2] = iVar3;\n  iVar3 = (*(code *)PTR_FUN_00131198)(param_3);\n  uVar4 = (*(code *)PTR_FUN_00131240)(6);\n  iVar5 = (*(code *)PTR_FUN_001311fc)(iVar3,PTR_FUN_001311a4 + -0x54f0);\n  iVar6 = 4;\n  if (iVar5 == 0) {\n    iVar6 = 0;\n  }\n  iVar5 = (*(code *)PTR_ether_aton_r_00131d8c)(iVar3 + iVar6,uVar4);\n  piVar2[3] = iVar5;\n  if (iVar5 == 0) {\n    (*(code *)PTR_FUN_001311f0)(PTR_FUN_001311a4 + -0x54e8,iVar3);\n  }\n  iVar3 = *param_1;\n  *piVar2 = iVar3;\n  if (iVar3 != 0) {\n    *(int **)(iVar3 + 4) = piVar2;\n  }\n  *param_1 = (int)piVar2;\n  return;\n}" ({ "{") (declaration "uint uVar1;" (type_identifier "uint") (identifier "uVar1") (; ";")) (declaration "int *piVar2;" (primitive_type "int") (pointer_declarator "*piVar2" (* "*") (identifier "piVar2")) (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "undefined4 uVar4;" (type_identifier "undefined4") (identifier "uVar4") (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (declaration "int iVar6;" (primitive_type "int") (identifier "iVar6") (; ";")) (expression_statement "uVar1 = (*(code *)PTR_strlen_00131f58)(param_2);" (assignment_expression "uVar1 = (*(code *)PTR_strlen_00131f58)(param_2)" (identifier "uVar1") (= "=") (call_expression "(*(code *)PTR_strlen_00131f58)(param_2)" (parenthesized_expression "(*(code *)PTR_strlen_00131f58)" (( "(") (pointer_expression "*(code *)PTR_strlen_00131f58" (* "*") (cast_expression "(code *)PTR_strlen_00131f58" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_strlen_00131f58"))) () ")")) (argument_list "(param_2)" (( "(") (identifier "param_2") () ")")))) (; ";")) (if_statement "if (0xf < uVar1) {\n    (*(code *)PTR_FUN_001311f0)(PTR_FUN_001311a4 + -0x5510,param_2);\n  }" (if "if") (parenthesized_expression "(0xf < uVar1)" (( "(") (binary_expression "0xf < uVar1" (number_literal "0xf") (< "<") (identifier "uVar1")) () ")")) (compound_statement "{\n    (*(code *)PTR_FUN_001311f0)(PTR_FUN_001311a4 + -0x5510,param_2);\n  }" ({ "{") (expression_statement "(*(code *)PTR_FUN_001311f0)(PTR_FUN_001311a4 + -0x5510,param_2);" (call_expression "(*(code *)PTR_FUN_001311f0)(PTR_FUN_001311a4 + -0x5510,param_2)" (parenthesized_expression "(*(code *)PTR_FUN_001311f0)" (( "(") (pointer_expression "*(code *)PTR_FUN_001311f0" (* "*") (cast_expression "(code *)PTR_FUN_001311f0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_FUN_001311f0"))) () ")")) (argument_list "(PTR_FUN_001311a4 + -0x5510,param_2)" (( "(") (binary_expression "PTR_FUN_001311a4 + -0x5510" (identifier "PTR_FUN_001311a4") (+ "+") (number_literal "-0x5510")) (, ",") (identifier "param_2") () ")"))) (; ";")) (} "}"))) (expression_statement "piVar2 = (int *)(*(code *)PTR_FUN_001311c8)(0x10);" (assignment_expression "piVar2 = (int *)(*(code *)PTR_FUN_001311c8)(0x10)" (identifier "piVar2") (= "=") (cast_expression "(int *)(*(code *)PTR_FUN_001311c8)(0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_FUN_001311c8)(0x10)" (parenthesized_expression "(*(code *)PTR_FUN_001311c8)" (( "(") (pointer_expression "*(code *)PTR_FUN_001311c8" (* "*") (cast_expression "(code *)PTR_FUN_001311c8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_FUN_001311c8"))) () ")")) (argument_list "(0x10)" (( "(") (number_literal "0x10") () ")"))))) (; ";")) (expression_statement "iVar3 = (*(code *)PTR_FUN_001312b8)(param_2);" (assignment_expression "iVar3 = (*(code *)PTR_FUN_001312b8)(param_2)" (identifier "iVar3") (= "=") (call_expression "(*(code *)PTR_FUN_001312b8)(param_2)" (parenthesized_expression "(*(code *)PTR_FUN_001312b8)" (( "(") (pointer_expression "*(code *)PTR_FUN_001312b8" (* "*") (cast_expression "(code *)PTR_FUN_001312b8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_FUN_001312b8"))) () ")")) (argument_list "(param_2)" (( "(") (identifier "param_2") () ")")))) (; ";")) (expression_statement "piVar2[2] = iVar3;" (assignment_expression "piVar2[2] = iVar3" (subscript_expression "piVar2[2]" (identifier "piVar2") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "iVar3")) (; ";")) (expression_statement "iVar3 = (*(code *)PTR_FUN_00131198)(param_3);" (assignment_expression "iVar3 = (*(code *)PTR_FUN_00131198)(param_3)" (identifier "iVar3") (= "=") (call_expression "(*(code *)PTR_FUN_00131198)(param_3)" (parenthesized_expression "(*(code *)PTR_FUN_00131198)" (( "(") (pointer_expression "*(code *)PTR_FUN_00131198" (* "*") (cast_expression "(code *)PTR_FUN_00131198" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_FUN_00131198"))) () ")")) (argument_list "(param_3)" (( "(") (identifier "param_3") () ")")))) (; ";")) (expression_statement "uVar4 = (*(code *)PTR_FUN_00131240)(6);" (assignment_expression "uVar4 = (*(code *)PTR_FUN_00131240)(6)" (identifier "uVar4") (= "=") (call_expression "(*(code *)PTR_FUN_00131240)(6)" (parenthesized_expression "(*(code *)PTR_FUN_00131240)" (( "(") (pointer_expression "*(code *)PTR_FUN_00131240" (* "*") (cast_expression "(code *)PTR_FUN_00131240" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_FUN_00131240"))) () ")")) (argument_list "(6)" (( "(") (number_literal "6") () ")")))) (; ";")) (expression_statement "iVar5 = (*(code *)PTR_FUN_001311fc)(iVar3,PTR_FUN_001311a4 + -0x54f0);" (assignment_expression "iVar5 = (*(code *)PTR_FUN_001311fc)(iVar3,PTR_FUN_001311a4 + -0x54f0)" (identifier "iVar5") (= "=") (call_expression "(*(code *)PTR_FUN_001311fc)(iVar3,PTR_FUN_001311a4 + -0x54f0)" (parenthesized_expression "(*(code *)PTR_FUN_001311fc)" (( "(") (pointer_expression "*(code *)PTR_FUN_001311fc" (* "*") (cast_expression "(code *)PTR_FUN_001311fc" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_FUN_001311fc"))) () ")")) (argument_list "(iVar3,PTR_FUN_001311a4 + -0x54f0)" (( "(") (identifier "iVar3") (, ",") (binary_expression "PTR_FUN_001311a4 + -0x54f0" (identifier "PTR_FUN_001311a4") (+ "+") (number_literal "-0x54f0")) () ")")))) (; ";")) (expression_statement "iVar6 = 4;" (assignment_expression "iVar6 = 4" (identifier "iVar6") (= "=") (number_literal "4")) (; ";")) (if_statement "if (iVar5 == 0) {\n    iVar6 = 0;\n  }" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    iVar6 = 0;\n  }" ({ "{") (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" (identifier "iVar6") (= "=") (number_literal "0")) (; ";")) (} "}"))) (expression_statement "iVar5 = (*(code *)PTR_ether_aton_r_00131d8c)(iVar3 + iVar6,uVar4);" (assignment_expression "iVar5 = (*(code *)PTR_ether_aton_r_00131d8c)(iVar3 + iVar6,uVar4)" (identifier "iVar5") (= "=") (call_expression "(*(code *)PTR_ether_aton_r_00131d8c)(iVar3 + iVar6,uVar4)" (parenthesized_expression "(*(code *)PTR_ether_aton_r_00131d8c)" (( "(") (pointer_expression "*(code *)PTR_ether_aton_r_00131d8c" (* "*") (cast_expression "(code *)PTR_ether_aton_r_00131d8c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_ether_aton_r_00131d8c"))) () ")")) (argument_list "(iVar3 + iVar6,uVar4)" (( "(") (binary_expression "iVar3 + iVar6" (identifier "iVar3") (+ "+") (identifier "iVar6")) (, ",") (identifier "uVar4") () ")")))) (; ";")) (expression_statement "piVar2[3] = iVar5;" (assignment_expression "piVar2[3] = iVar5" (subscript_expression "piVar2[3]" (identifier "piVar2") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "iVar5")) (; ";")) (if_statement "if (iVar5 == 0) {\n    (*(code *)PTR_FUN_001311f0)(PTR_FUN_001311a4 + -0x54e8,iVar3);\n  }" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    (*(code *)PTR_FUN_001311f0)(PTR_FUN_001311a4 + -0x54e8,iVar3);\n  }" ({ "{") (expression_statement "(*(code *)PTR_FUN_001311f0)(PTR_FUN_001311a4 + -0x54e8,iVar3);" (call_expression "(*(code *)PTR_FUN_001311f0)(PTR_FUN_001311a4 + -0x54e8,iVar3)" (parenthesized_expression "(*(code *)PTR_FUN_001311f0)" (( "(") (pointer_expression "*(code *)PTR_FUN_001311f0" (* "*") (cast_expression "(code *)PTR_FUN_001311f0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_FUN_001311f0"))) () ")")) (argument_list "(PTR_FUN_001311a4 + -0x54e8,iVar3)" (( "(") (binary_expression "PTR_FUN_001311a4 + -0x54e8" (identifier "PTR_FUN_001311a4") (+ "+") (number_literal "-0x54e8")) (, ",") (identifier "iVar3") () ")"))) (; ";")) (} "}"))) (expression_statement "iVar3 = *param_1;" (assignment_expression "iVar3 = *param_1" (identifier "iVar3") (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";")) (expression_statement "*piVar2 = iVar3;" (assignment_expression "*piVar2 = iVar3" (pointer_expression "*piVar2" (* "*") (identifier "piVar2")) (= "=") (identifier "iVar3")) (; ";")) (if_statement "if (iVar3 != 0) {\n    *(int **)(iVar3 + 4) = piVar2;\n  }" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    *(int **)(iVar3 + 4) = piVar2;\n  }" ({ "{") (expression_statement "*(int **)(iVar3 + 4) = piVar2;" (assignment_expression "*(int **)(iVar3 + 4) = piVar2" (pointer_expression "*(int **)(iVar3 + 4)" (* "*") (cast_expression "(int **)(iVar3 + 4)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar3 + 4)" (( "(") (binary_expression "iVar3 + 4" (identifier "iVar3") (+ "+") (number_literal "4")) () ")")))) (= "=") (identifier "piVar2")) (; ";")) (} "}"))) (expression_statement "*param_1 = (int)piVar2;" (assignment_expression "*param_1 = (int)piVar2" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (cast_expression "(int)piVar2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar2"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}")))
(translation_unit (function_definition type: (primitive_type) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)))) body: (compound_statement (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (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 (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (compound_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)) (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (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 (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (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 (identifier))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (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 (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (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 (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (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 (identifier) (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (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: (identifier)) (identifier))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_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)) (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (return_statement))))

void MASKED(int *param_1,undefined4 param_2,undefined4 param_3)

{
  uint uVar1;
  int *piVar2;
  int iVar3;
  undefined4 uVar4;
  int iVar5;
  int iVar6;
  
  uVar1 = (*(code *)PTR_strlen_00131f58)(param_2);
  if (0xf < uVar1) {
    (*(code *)PTR_FUN_001311f0)(PTR_FUN_001311a4 + -0x5510,param_2);
  }
  piVar2 = (int *)(*(code *)PTR_FUN_001311c8)(0x10);
  iVar3 = (*(code *)PTR_FUN_001312b8)(param_2);
  piVar2[2] = iVar3;
  iVar3 = (*(code *)PTR_FUN_00131198)(param_3);
  uVar4 = (*(code *)PTR_FUN_00131240)(6);
  iVar5 = (*(code *)PTR_FUN_001311fc)(iVar3,PTR_FUN_001311a4 + -0x54f0);
  iVar6 = 4;
  if (iVar5 == 0) {
    iVar6 = 0;
  }
  iVar5 = (*(code *)PTR_ether_aton_r_00131d8c)(iVar3 + iVar6,uVar4);
  piVar2[3] = iVar5;
  if (iVar5 == 0) {
    (*(code *)PTR_FUN_001311f0)(PTR_FUN_001311a4 + -0x54e8,iVar3);
  }
  iVar3 = *param_1;
  *piVar2 = iVar3;
  if (iVar3 != 0) {
    *(int **)(iVar3 + 4) = piVar2;
  }
  *param_1 = (int)piVar2;
  return;
}

