
void print_inet_line(inet_params *param,char *state_str,char *proto,int is_connected)

{
  byte bVar1;
  byte bVar2;
  char *pcVar3;
  char *pcVar4;
  byte *pbVar5;
  
  pbVar5 = *(byte **)PTR_ptr_to_globals_0012a304;
  bVar1 = *pbVar5;
  if (is_connected == 0) {
    bVar2 = bVar1 & 2;
  }
  else {
    bVar2 = bVar1 & 1;
  }
  if (bVar2 != 0) {
    pcVar3 = ip_port_str(&(param->localaddr).sa,param->local_port,proto,bVar1 & 4);
    pcVar4 = ip_port_str(&(param->remaddr).sa,param->rem_port,proto,*pbVar5 & 4);
    (*(code *)PTR___printf_chk_0012ae30)
              (1,PTR_UINT_0012a18c + 0x358c,proto,param->rxq,param->txq,pcVar3,pcVar4,state_str);
    (*(code *)PTR_bb_putchar_0012a354)(10);
    (*(code *)PTR_free_0012b168)(pcVar3);
    (*(code *)PTR_free_0012b168)(pcVar4);
    return;
  }
  return;
}



void FUN_00042c8c(undefined4 *param_1,undefined4 param_2,undefined4 param_3,int param_4)

{
  byte bVar1;
  byte bVar2;
  undefined4 uVar3;
  undefined4 uVar4;
  byte *pbVar5;
  
  pbVar5 = *(byte **)PTR_DAT_0012a304;
  bVar1 = *pbVar5;
  if (param_4 == 0) {
    bVar2 = bVar1 & 2;
  }
  else {
    bVar2 = bVar1 & 1;
  }
  if (bVar2 != 0) {
    uVar3 = FUN_00042b88(param_1 + 4,*param_1,param_3,bVar1 & 4);
    uVar4 = FUN_00042b88(param_1 + 0xb,param_1[1],param_3,*pbVar5 & 4);
    (*(code *)PTR___printf_chk_0012ae30)
              (1,PTR_UINT_0012a18c + 0x358c,param_3,param_1[0x12],param_1[0x13],uVar3,uVar4,param_2)
    ;
    (*(code *)PTR_FUN_0012a354)(10);
    (*(code *)PTR_free_0012b168)(uVar3);
    (*(code *)PTR_free_0012b168)(uVar4);
    return;
  }
  return;
}


lui gp,0xf
addiu gp,gp,-0xb3c
addu gp,gp,t9
lw v0,-0x7e4c(gp)
addiu sp,sp,-0x40
sw s4,0x38(sp)
sw gp,0x20(sp)
sw ra,0x3c(sp)
sw s3,0x34(sp)
sw s2,0x30(sp)
sw s1,0x2c(sp)
sw s0,0x28(sp)
lw s4,0x0(v0)
beq a3,zero,0x00042da0
_lbu v0,0x0(s4)
andi v1,v0,0x1
beq v1,zero,0x00042dac
_lw ra,0x3c(sp)
lw s2,-0x7cb4(gp)
or s0,a0,zero
or s3,a1,zero
lw a1,0x0(s0)
addiu a0,a0,0x10
addiu s2,s2,0x2b88
andi a3,v0,0x4
or t9,s2,zero
bal 0x00042b88
_or s1,a2,zero
lbu a3,0x0(s4)
addiu a0,s0,0x2c
lw a1,0x4(s0)
or a2,s1,zero
or t9,s2,zero
andi a3,a3,0x4
bal 0x00042b88
_or s4,v0,zero
lw gp,0x20(sp)
or s2,v0,zero
lw v0,0x4c(s0)
li a0,0x1
lw a3,0x48(s0)
or a2,s1,zero
sw s3,0x1c(sp)
sw s2,0x18(sp)
sw s4,0x14(sp)
sw v0,0x10(sp)
lw a1,-0x7fc4(gp)
lw t9,-0x7320(gp)
jalr t9
_addiu a1,a1,0x358c
lw gp,0x20(sp)
lw t9,-0x7dfc(gp)
jalr t9
_li a0,0xa
lw gp,0x20(sp)
lw t9,-0x6fe8(gp)
jalr t9
_or a0,s4,zero
or a0,s2,zero
lw gp,0x20(sp)
lw ra,0x3c(sp)
lw s4,0x38(sp)
lw s3,0x34(sp)
lw s2,0x30(sp)
lw s1,0x2c(sp)
lw s0,0x28(sp)
lw t9,-0x6fe8(gp)
jr t9
_addiu sp,sp,0x40
andi v1,v0,0x2
bne v1,zero,0x00042cd4
_lw ra,0x3c(sp)
lw s4,0x38(sp)
lw s3,0x34(sp)
lw s2,0x30(sp)
lw s1,0x2c(sp)
lw s0,0x28(sp)
jr ra
_addiu sp,sp,0x40
(translation_unit "void FUN_00042c8c(undefined4 *param_1,undefined4 param_2,undefined4 param_3,int param_4)\n\n{\n  byte bVar1;\n  byte bVar2;\n  undefined4 uVar3;\n  undefined4 uVar4;\n  byte *pbVar5;\n  \n  pbVar5 = *(byte **)PTR_DAT_0012a304;\n  bVar1 = *pbVar5;\n  if (param_4 == 0) {\n    bVar2 = bVar1 & 2;\n  }\n  else {\n    bVar2 = bVar1 & 1;\n  }\n  if (bVar2 != 0) {\n    uVar3 = FUN_00042b88(param_1 + 4,*param_1,param_3,bVar1 & 4);\n    uVar4 = FUN_00042b88(param_1 + 0xb,param_1[1],param_3,*pbVar5 & 4);\n    (*(code *)PTR___printf_chk_0012ae30)\n              (1,PTR_UINT_0012a18c + 0x358c,param_3,param_1[0x12],param_1[0x13],uVar3,uVar4,param_2)\n    ;\n    (*(code *)PTR_FUN_0012a354)(10);\n    (*(code *)PTR_free_0012b168)(uVar3);\n    (*(code *)PTR_free_0012b168)(uVar4);\n    return;\n  }\n  return;\n}\n\n" (function_definition "void FUN_00042c8c(undefined4 *param_1,undefined4 param_2,undefined4 param_3,int param_4)\n\n{\n  byte bVar1;\n  byte bVar2;\n  undefined4 uVar3;\n  undefined4 uVar4;\n  byte *pbVar5;\n  \n  pbVar5 = *(byte **)PTR_DAT_0012a304;\n  bVar1 = *pbVar5;\n  if (param_4 == 0) {\n    bVar2 = bVar1 & 2;\n  }\n  else {\n    bVar2 = bVar1 & 1;\n  }\n  if (bVar2 != 0) {\n    uVar3 = FUN_00042b88(param_1 + 4,*param_1,param_3,bVar1 & 4);\n    uVar4 = FUN_00042b88(param_1 + 0xb,param_1[1],param_3,*pbVar5 & 4);\n    (*(code *)PTR___printf_chk_0012ae30)\n              (1,PTR_UINT_0012a18c + 0x358c,param_3,param_1[0x12],param_1[0x13],uVar3,uVar4,param_2)\n    ;\n    (*(code *)PTR_FUN_0012a354)(10);\n    (*(code *)PTR_free_0012b168)(uVar3);\n    (*(code *)PTR_free_0012b168)(uVar4);\n    return;\n  }\n  return;\n}" primitive_type (function_declarator "FUN_00042c8c(undefined4 *param_1,undefined4 param_2,undefined4 param_3,int param_4)" identifier (parameter_list "(undefined4 *param_1,undefined4 param_2,undefined4 param_3,int param_4)" ( (parameter_declaration "undefined4 *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "undefined4 param_2" type_identifier identifier) , (parameter_declaration "undefined4 param_3" type_identifier identifier) , (parameter_declaration "int param_4" primitive_type identifier) ))) (compound_statement "{\n  byte bVar1;\n  byte bVar2;\n  undefined4 uVar3;\n  undefined4 uVar4;\n  byte *pbVar5;\n  \n  pbVar5 = *(byte **)PTR_DAT_0012a304;\n  bVar1 = *pbVar5;\n  if (param_4 == 0) {\n    bVar2 = bVar1 & 2;\n  }\n  else {\n    bVar2 = bVar1 & 1;\n  }\n  if (bVar2 != 0) {\n    uVar3 = FUN_00042b88(param_1 + 4,*param_1,param_3,bVar1 & 4);\n    uVar4 = FUN_00042b88(param_1 + 0xb,param_1[1],param_3,*pbVar5 & 4);\n    (*(code *)PTR___printf_chk_0012ae30)\n              (1,PTR_UINT_0012a18c + 0x358c,param_3,param_1[0x12],param_1[0x13],uVar3,uVar4,param_2)\n    ;\n    (*(code *)PTR_FUN_0012a354)(10);\n    (*(code *)PTR_free_0012b168)(uVar3);\n    (*(code *)PTR_free_0012b168)(uVar4);\n    return;\n  }\n  return;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "byte bVar2;" type_identifier identifier ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "byte *pbVar5;" type_identifier (pointer_declarator "*pbVar5" * identifier) ;) (expression_statement "pbVar5 = *(byte **)PTR_DAT_0012a304;" (assignment_expression "pbVar5 = *(byte **)PTR_DAT_0012a304" identifier = (pointer_expression "*(byte **)PTR_DAT_0012a304" * (cast_expression "(byte **)PTR_DAT_0012a304" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "bVar1 = *pbVar5;" (assignment_expression "bVar1 = *pbVar5" identifier = (pointer_expression "*pbVar5" * identifier)) ;) (if_statement "if (param_4 == 0) {\n    bVar2 = bVar1 & 2;\n  }\n  else {\n    bVar2 = bVar1 & 1;\n  }" if (parenthesized_expression "(param_4 == 0)" ( (binary_expression "param_4 == 0" identifier == number_literal) )) (compound_statement "{\n    bVar2 = bVar1 & 2;\n  }" { (expression_statement "bVar2 = bVar1 & 2;" (assignment_expression "bVar2 = bVar1 & 2" identifier = (binary_expression "bVar1 & 2" identifier & number_literal)) ;) }) (else_clause "else {\n    bVar2 = bVar1 & 1;\n  }" else (compound_statement "{\n    bVar2 = bVar1 & 1;\n  }" { (expression_statement "bVar2 = bVar1 & 1;" (assignment_expression "bVar2 = bVar1 & 1" identifier = (binary_expression "bVar1 & 1" identifier & number_literal)) ;) }))) (if_statement "if (bVar2 != 0) {\n    uVar3 = FUN_00042b88(param_1 + 4,*param_1,param_3,bVar1 & 4);\n    uVar4 = FUN_00042b88(param_1 + 0xb,param_1[1],param_3,*pbVar5 & 4);\n    (*(code *)PTR___printf_chk_0012ae30)\n              (1,PTR_UINT_0012a18c + 0x358c,param_3,param_1[0x12],param_1[0x13],uVar3,uVar4,param_2)\n    ;\n    (*(code *)PTR_FUN_0012a354)(10);\n    (*(code *)PTR_free_0012b168)(uVar3);\n    (*(code *)PTR_free_0012b168)(uVar4);\n    return;\n  }" if (parenthesized_expression "(bVar2 != 0)" ( (binary_expression "bVar2 != 0" identifier != number_literal) )) (compound_statement "{\n    uVar3 = FUN_00042b88(param_1 + 4,*param_1,param_3,bVar1 & 4);\n    uVar4 = FUN_00042b88(param_1 + 0xb,param_1[1],param_3,*pbVar5 & 4);\n    (*(code *)PTR___printf_chk_0012ae30)\n              (1,PTR_UINT_0012a18c + 0x358c,param_3,param_1[0x12],param_1[0x13],uVar3,uVar4,param_2)\n    ;\n    (*(code *)PTR_FUN_0012a354)(10);\n    (*(code *)PTR_free_0012b168)(uVar3);\n    (*(code *)PTR_free_0012b168)(uVar4);\n    return;\n  }" { (expression_statement "uVar3 = FUN_00042b88(param_1 + 4,*param_1,param_3,bVar1 & 4);" (assignment_expression "uVar3 = FUN_00042b88(param_1 + 4,*param_1,param_3,bVar1 & 4)" identifier = (call_expression "FUN_00042b88(param_1 + 4,*param_1,param_3,bVar1 & 4)" identifier (argument_list "(param_1 + 4,*param_1,param_3,bVar1 & 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) , (pointer_expression "*param_1" * identifier) , identifier , (binary_expression "bVar1 & 4" identifier & number_literal) )))) ;) (expression_statement "uVar4 = FUN_00042b88(param_1 + 0xb,param_1[1],param_3,*pbVar5 & 4);" (assignment_expression "uVar4 = FUN_00042b88(param_1 + 0xb,param_1[1],param_3,*pbVar5 & 4)" identifier = (call_expression "FUN_00042b88(param_1 + 0xb,param_1[1],param_3,*pbVar5 & 4)" identifier (argument_list "(param_1 + 0xb,param_1[1],param_3,*pbVar5 & 4)" ( (binary_expression "param_1 + 0xb" identifier + number_literal) , (subscript_expression "param_1[1]" identifier [ number_literal ]) , identifier , (binary_expression "*pbVar5 & 4" (pointer_expression "*pbVar5" * identifier) & number_literal) )))) ;) (expression_statement "(*(code *)PTR___printf_chk_0012ae30)\n              (1,PTR_UINT_0012a18c + 0x358c,param_3,param_1[0x12],param_1[0x13],uVar3,uVar4,param_2)\n    ;" (call_expression "(*(code *)PTR___printf_chk_0012ae30)\n              (1,PTR_UINT_0012a18c + 0x358c,param_3,param_1[0x12],param_1[0x13],uVar3,uVar4,param_2)" (parenthesized_expression "(*(code *)PTR___printf_chk_0012ae30)" ( (pointer_expression "*(code *)PTR___printf_chk_0012ae30" * (cast_expression "(code *)PTR___printf_chk_0012ae30" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(1,PTR_UINT_0012a18c + 0x358c,param_3,param_1[0x12],param_1[0x13],uVar3,uVar4,param_2)" ( number_literal , (binary_expression "PTR_UINT_0012a18c + 0x358c" identifier + number_literal) , identifier , (subscript_expression "param_1[0x12]" identifier [ number_literal ]) , (subscript_expression "param_1[0x13]" identifier [ number_literal ]) , identifier , identifier , identifier ))) ;) (expression_statement "(*(code *)PTR_FUN_0012a354)(10);" (call_expression "(*(code *)PTR_FUN_0012a354)(10)" (parenthesized_expression "(*(code *)PTR_FUN_0012a354)" ( (pointer_expression "*(code *)PTR_FUN_0012a354" * (cast_expression "(code *)PTR_FUN_0012a354" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(10)" ( number_literal ))) ;) (expression_statement "(*(code *)PTR_free_0012b168)(uVar3);" (call_expression "(*(code *)PTR_free_0012b168)(uVar3)" (parenthesized_expression "(*(code *)PTR_free_0012b168)" ( (pointer_expression "*(code *)PTR_free_0012b168" * (cast_expression "(code *)PTR_free_0012b168" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar3)" ( identifier ))) ;) (expression_statement "(*(code *)PTR_free_0012b168)(uVar4);" (call_expression "(*(code *)PTR_free_0012b168)(uVar4)" (parenthesized_expression "(*(code *)PTR_free_0012b168)" ( (pointer_expression "*(code *)PTR_free_0012b168" * (cast_expression "(code *)PTR_free_0012b168" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar4)" ( identifier ))) ;) (return_statement "return;" return ;) })) (return_statement "return;" return ;) })))
(translation_unit "void print_inet_line(inet_params *param,char *state_str,char *proto,int is_connected)\n\n{\n  byte bVar1;\n  byte bVar2;\n  char *pcVar3;\n  char *pcVar4;\n  byte *pbVar5;\n  \n  pbVar5 = *(byte **)PTR_ptr_to_globals_0012a304;\n  bVar1 = *pbVar5;\n  if (is_connected == 0) {\n    bVar2 = bVar1 & 2;\n  }\n  else {\n    bVar2 = bVar1 & 1;\n  }\n  if (bVar2 != 0) {\n    pcVar3 = ip_port_str(&(param->localaddr).sa,param->local_port,proto,bVar1 & 4);\n    pcVar4 = ip_port_str(&(param->remaddr).sa,param->rem_port,proto,*pbVar5 & 4);\n    (*(code *)PTR___printf_chk_0012ae30)\n              (1,PTR_UINT_0012a18c + 0x358c,proto,param->rxq,param->txq,pcVar3,pcVar4,state_str);\n    (*(code *)PTR_bb_putchar_0012a354)(10);\n    (*(code *)PTR_free_0012b168)(pcVar3);\n    (*(code *)PTR_free_0012b168)(pcVar4);\n    return;\n  }\n  return;\n}\n\n" (function_definition "void print_inet_line(inet_params *param,char *state_str,char *proto,int is_connected)\n\n{\n  byte bVar1;\n  byte bVar2;\n  char *pcVar3;\n  char *pcVar4;\n  byte *pbVar5;\n  \n  pbVar5 = *(byte **)PTR_ptr_to_globals_0012a304;\n  bVar1 = *pbVar5;\n  if (is_connected == 0) {\n    bVar2 = bVar1 & 2;\n  }\n  else {\n    bVar2 = bVar1 & 1;\n  }\n  if (bVar2 != 0) {\n    pcVar3 = ip_port_str(&(param->localaddr).sa,param->local_port,proto,bVar1 & 4);\n    pcVar4 = ip_port_str(&(param->remaddr).sa,param->rem_port,proto,*pbVar5 & 4);\n    (*(code *)PTR___printf_chk_0012ae30)\n              (1,PTR_UINT_0012a18c + 0x358c,proto,param->rxq,param->txq,pcVar3,pcVar4,state_str);\n    (*(code *)PTR_bb_putchar_0012a354)(10);\n    (*(code *)PTR_free_0012b168)(pcVar3);\n    (*(code *)PTR_free_0012b168)(pcVar4);\n    return;\n  }\n  return;\n}" primitive_type (function_declarator "print_inet_line(inet_params *param,char *state_str,char *proto,int is_connected)" identifier (parameter_list "(inet_params *param,char *state_str,char *proto,int is_connected)" ( (parameter_declaration "inet_params *param" type_identifier (pointer_declarator "*param" * identifier)) , (parameter_declaration "char *state_str" primitive_type (pointer_declarator "*state_str" * identifier)) , (parameter_declaration "char *proto" primitive_type (pointer_declarator "*proto" * identifier)) , (parameter_declaration "int is_connected" primitive_type identifier) ))) (compound_statement "{\n  byte bVar1;\n  byte bVar2;\n  char *pcVar3;\n  char *pcVar4;\n  byte *pbVar5;\n  \n  pbVar5 = *(byte **)PTR_ptr_to_globals_0012a304;\n  bVar1 = *pbVar5;\n  if (is_connected == 0) {\n    bVar2 = bVar1 & 2;\n  }\n  else {\n    bVar2 = bVar1 & 1;\n  }\n  if (bVar2 != 0) {\n    pcVar3 = ip_port_str(&(param->localaddr).sa,param->local_port,proto,bVar1 & 4);\n    pcVar4 = ip_port_str(&(param->remaddr).sa,param->rem_port,proto,*pbVar5 & 4);\n    (*(code *)PTR___printf_chk_0012ae30)\n              (1,PTR_UINT_0012a18c + 0x358c,proto,param->rxq,param->txq,pcVar3,pcVar4,state_str);\n    (*(code *)PTR_bb_putchar_0012a354)(10);\n    (*(code *)PTR_free_0012b168)(pcVar3);\n    (*(code *)PTR_free_0012b168)(pcVar4);\n    return;\n  }\n  return;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "byte bVar2;" type_identifier identifier ;) (declaration "char *pcVar3;" primitive_type (pointer_declarator "*pcVar3" * identifier) ;) (declaration "char *pcVar4;" primitive_type (pointer_declarator "*pcVar4" * identifier) ;) (declaration "byte *pbVar5;" type_identifier (pointer_declarator "*pbVar5" * identifier) ;) (expression_statement "pbVar5 = *(byte **)PTR_ptr_to_globals_0012a304;" (assignment_expression "pbVar5 = *(byte **)PTR_ptr_to_globals_0012a304" identifier = (pointer_expression "*(byte **)PTR_ptr_to_globals_0012a304" * (cast_expression "(byte **)PTR_ptr_to_globals_0012a304" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "bVar1 = *pbVar5;" (assignment_expression "bVar1 = *pbVar5" identifier = (pointer_expression "*pbVar5" * identifier)) ;) (if_statement "if (is_connected == 0) {\n    bVar2 = bVar1 & 2;\n  }\n  else {\n    bVar2 = bVar1 & 1;\n  }" if (parenthesized_expression "(is_connected == 0)" ( (binary_expression "is_connected == 0" identifier == number_literal) )) (compound_statement "{\n    bVar2 = bVar1 & 2;\n  }" { (expression_statement "bVar2 = bVar1 & 2;" (assignment_expression "bVar2 = bVar1 & 2" identifier = (binary_expression "bVar1 & 2" identifier & number_literal)) ;) }) (else_clause "else {\n    bVar2 = bVar1 & 1;\n  }" else (compound_statement "{\n    bVar2 = bVar1 & 1;\n  }" { (expression_statement "bVar2 = bVar1 & 1;" (assignment_expression "bVar2 = bVar1 & 1" identifier = (binary_expression "bVar1 & 1" identifier & number_literal)) ;) }))) (if_statement "if (bVar2 != 0) {\n    pcVar3 = ip_port_str(&(param->localaddr).sa,param->local_port,proto,bVar1 & 4);\n    pcVar4 = ip_port_str(&(param->remaddr).sa,param->rem_port,proto,*pbVar5 & 4);\n    (*(code *)PTR___printf_chk_0012ae30)\n              (1,PTR_UINT_0012a18c + 0x358c,proto,param->rxq,param->txq,pcVar3,pcVar4,state_str);\n    (*(code *)PTR_bb_putchar_0012a354)(10);\n    (*(code *)PTR_free_0012b168)(pcVar3);\n    (*(code *)PTR_free_0012b168)(pcVar4);\n    return;\n  }" if (parenthesized_expression "(bVar2 != 0)" ( (binary_expression "bVar2 != 0" identifier != number_literal) )) (compound_statement "{\n    pcVar3 = ip_port_str(&(param->localaddr).sa,param->local_port,proto,bVar1 & 4);\n    pcVar4 = ip_port_str(&(param->remaddr).sa,param->rem_port,proto,*pbVar5 & 4);\n    (*(code *)PTR___printf_chk_0012ae30)\n              (1,PTR_UINT_0012a18c + 0x358c,proto,param->rxq,param->txq,pcVar3,pcVar4,state_str);\n    (*(code *)PTR_bb_putchar_0012a354)(10);\n    (*(code *)PTR_free_0012b168)(pcVar3);\n    (*(code *)PTR_free_0012b168)(pcVar4);\n    return;\n  }" { (expression_statement "pcVar3 = ip_port_str(&(param->localaddr).sa,param->local_port,proto,bVar1 & 4);" (assignment_expression "pcVar3 = ip_port_str(&(param->localaddr).sa,param->local_port,proto,bVar1 & 4)" identifier = (call_expression "ip_port_str(&(param->localaddr).sa,param->local_port,proto,bVar1 & 4)" identifier (argument_list "(&(param->localaddr).sa,param->local_port,proto,bVar1 & 4)" ( (pointer_expression "&(param->localaddr).sa" & (field_expression "(param->localaddr).sa" (parenthesized_expression "(param->localaddr)" ( (field_expression "param->localaddr" identifier -> field_identifier) )) . field_identifier)) , (field_expression "param->local_port" identifier -> field_identifier) , identifier , (binary_expression "bVar1 & 4" identifier & number_literal) )))) ;) (expression_statement "pcVar4 = ip_port_str(&(param->remaddr).sa,param->rem_port,proto,*pbVar5 & 4);" (assignment_expression "pcVar4 = ip_port_str(&(param->remaddr).sa,param->rem_port,proto,*pbVar5 & 4)" identifier = (call_expression "ip_port_str(&(param->remaddr).sa,param->rem_port,proto,*pbVar5 & 4)" identifier (argument_list "(&(param->remaddr).sa,param->rem_port,proto,*pbVar5 & 4)" ( (pointer_expression "&(param->remaddr).sa" & (field_expression "(param->remaddr).sa" (parenthesized_expression "(param->remaddr)" ( (field_expression "param->remaddr" identifier -> field_identifier) )) . field_identifier)) , (field_expression "param->rem_port" identifier -> field_identifier) , identifier , (binary_expression "*pbVar5 & 4" (pointer_expression "*pbVar5" * identifier) & number_literal) )))) ;) (expression_statement "(*(code *)PTR___printf_chk_0012ae30)\n              (1,PTR_UINT_0012a18c + 0x358c,proto,param->rxq,param->txq,pcVar3,pcVar4,state_str);" (call_expression "(*(code *)PTR___printf_chk_0012ae30)\n              (1,PTR_UINT_0012a18c + 0x358c,proto,param->rxq,param->txq,pcVar3,pcVar4,state_str)" (parenthesized_expression "(*(code *)PTR___printf_chk_0012ae30)" ( (pointer_expression "*(code *)PTR___printf_chk_0012ae30" * (cast_expression "(code *)PTR___printf_chk_0012ae30" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(1,PTR_UINT_0012a18c + 0x358c,proto,param->rxq,param->txq,pcVar3,pcVar4,state_str)" ( number_literal , (binary_expression "PTR_UINT_0012a18c + 0x358c" identifier + number_literal) , identifier , (field_expression "param->rxq" identifier -> field_identifier) , (field_expression "param->txq" identifier -> field_identifier) , identifier , identifier , identifier ))) ;) (expression_statement "(*(code *)PTR_bb_putchar_0012a354)(10);" (call_expression "(*(code *)PTR_bb_putchar_0012a354)(10)" (parenthesized_expression "(*(code *)PTR_bb_putchar_0012a354)" ( (pointer_expression "*(code *)PTR_bb_putchar_0012a354" * (cast_expression "(code *)PTR_bb_putchar_0012a354" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(10)" ( number_literal ))) ;) (expression_statement "(*(code *)PTR_free_0012b168)(pcVar3);" (call_expression "(*(code *)PTR_free_0012b168)(pcVar3)" (parenthesized_expression "(*(code *)PTR_free_0012b168)" ( (pointer_expression "*(code *)PTR_free_0012b168" * (cast_expression "(code *)PTR_free_0012b168" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pcVar3)" ( identifier ))) ;) (expression_statement "(*(code *)PTR_free_0012b168)(pcVar4);" (call_expression "(*(code *)PTR_free_0012b168)(pcVar4)" (parenthesized_expression "(*(code *)PTR_free_0012b168)" ( (pointer_expression "*(code *)PTR_free_0012b168" * (cast_expression "(code *)PTR_free_0012b168" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pcVar4)" ( identifier ))) ;) (return_statement "return;" return ;) })) (return_statement "return;" return ;) })))
(translation_unit "void FUN_00042c8c(undefined4 *param_1,undefined4 param_2,undefined4 param_3,int param_4)\n\n{\n  byte bVar1;\n  byte bVar2;\n  undefined4 uVar3;\n  undefined4 uVar4;\n  byte *pbVar5;\n  \n  pbVar5 = *(byte **)PTR_DAT_0012a304;\n  bVar1 = *pbVar5;\n  if (param_4 == 0) {\n    bVar2 = bVar1 & 2;\n  }\n  else {\n    bVar2 = bVar1 & 1;\n  }\n  if (bVar2 != 0) {\n    uVar3 = FUN_00042b88(param_1 + 4,*param_1,param_3,bVar1 & 4);\n    uVar4 = FUN_00042b88(param_1 + 0xb,param_1[1],param_3,*pbVar5 & 4);\n    (*(code *)PTR___printf_chk_0012ae30)\n              (1,PTR_UINT_0012a18c + 0x358c,param_3,param_1[0x12],param_1[0x13],uVar3,uVar4,param_2)\n    ;\n    (*(code *)PTR_FUN_0012a354)(10);\n    (*(code *)PTR_free_0012b168)(uVar3);\n    (*(code *)PTR_free_0012b168)(uVar4);\n    return;\n  }\n  return;\n}\n\n" (function_definition "void FUN_00042c8c(undefined4 *param_1,undefined4 param_2,undefined4 param_3,int param_4)\n\n{\n  byte bVar1;\n  byte bVar2;\n  undefined4 uVar3;\n  undefined4 uVar4;\n  byte *pbVar5;\n  \n  pbVar5 = *(byte **)PTR_DAT_0012a304;\n  bVar1 = *pbVar5;\n  if (param_4 == 0) {\n    bVar2 = bVar1 & 2;\n  }\n  else {\n    bVar2 = bVar1 & 1;\n  }\n  if (bVar2 != 0) {\n    uVar3 = FUN_00042b88(param_1 + 4,*param_1,param_3,bVar1 & 4);\n    uVar4 = FUN_00042b88(param_1 + 0xb,param_1[1],param_3,*pbVar5 & 4);\n    (*(code *)PTR___printf_chk_0012ae30)\n              (1,PTR_UINT_0012a18c + 0x358c,param_3,param_1[0x12],param_1[0x13],uVar3,uVar4,param_2)\n    ;\n    (*(code *)PTR_FUN_0012a354)(10);\n    (*(code *)PTR_free_0012b168)(uVar3);\n    (*(code *)PTR_free_0012b168)(uVar4);\n    return;\n  }\n  return;\n}" primitive_type (function_declarator "FUN_00042c8c(undefined4 *param_1,undefined4 param_2,undefined4 param_3,int param_4)" identifier (parameter_list "(undefined4 *param_1,undefined4 param_2,undefined4 param_3,int param_4)" ( (parameter_declaration "undefined4 *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "undefined4 param_2" type_identifier identifier) , (parameter_declaration "undefined4 param_3" type_identifier identifier) , (parameter_declaration "int param_4" primitive_type identifier) ))) (compound_statement "{\n  byte bVar1;\n  byte bVar2;\n  undefined4 uVar3;\n  undefined4 uVar4;\n  byte *pbVar5;\n  \n  pbVar5 = *(byte **)PTR_DAT_0012a304;\n  bVar1 = *pbVar5;\n  if (param_4 == 0) {\n    bVar2 = bVar1 & 2;\n  }\n  else {\n    bVar2 = bVar1 & 1;\n  }\n  if (bVar2 != 0) {\n    uVar3 = FUN_00042b88(param_1 + 4,*param_1,param_3,bVar1 & 4);\n    uVar4 = FUN_00042b88(param_1 + 0xb,param_1[1],param_3,*pbVar5 & 4);\n    (*(code *)PTR___printf_chk_0012ae30)\n              (1,PTR_UINT_0012a18c + 0x358c,param_3,param_1[0x12],param_1[0x13],uVar3,uVar4,param_2)\n    ;\n    (*(code *)PTR_FUN_0012a354)(10);\n    (*(code *)PTR_free_0012b168)(uVar3);\n    (*(code *)PTR_free_0012b168)(uVar4);\n    return;\n  }\n  return;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "byte bVar2;" type_identifier identifier ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "byte *pbVar5;" type_identifier (pointer_declarator "*pbVar5" * identifier) ;) (expression_statement "pbVar5 = *(byte **)PTR_DAT_0012a304;" (assignment_expression "pbVar5 = *(byte **)PTR_DAT_0012a304" identifier = (pointer_expression "*(byte **)PTR_DAT_0012a304" * (cast_expression "(byte **)PTR_DAT_0012a304" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "bVar1 = *pbVar5;" (assignment_expression "bVar1 = *pbVar5" identifier = (pointer_expression "*pbVar5" * identifier)) ;) (if_statement "if (param_4 == 0) {\n    bVar2 = bVar1 & 2;\n  }\n  else {\n    bVar2 = bVar1 & 1;\n  }" if (parenthesized_expression "(param_4 == 0)" ( (binary_expression "param_4 == 0" identifier == number_literal) )) (compound_statement "{\n    bVar2 = bVar1 & 2;\n  }" { (expression_statement "bVar2 = bVar1 & 2;" (assignment_expression "bVar2 = bVar1 & 2" identifier = (binary_expression "bVar1 & 2" identifier & number_literal)) ;) }) (else_clause "else {\n    bVar2 = bVar1 & 1;\n  }" else (compound_statement "{\n    bVar2 = bVar1 & 1;\n  }" { (expression_statement "bVar2 = bVar1 & 1;" (assignment_expression "bVar2 = bVar1 & 1" identifier = (binary_expression "bVar1 & 1" identifier & number_literal)) ;) }))) (if_statement "if (bVar2 != 0) {\n    uVar3 = FUN_00042b88(param_1 + 4,*param_1,param_3,bVar1 & 4);\n    uVar4 = FUN_00042b88(param_1 + 0xb,param_1[1],param_3,*pbVar5 & 4);\n    (*(code *)PTR___printf_chk_0012ae30)\n              (1,PTR_UINT_0012a18c + 0x358c,param_3,param_1[0x12],param_1[0x13],uVar3,uVar4,param_2)\n    ;\n    (*(code *)PTR_FUN_0012a354)(10);\n    (*(code *)PTR_free_0012b168)(uVar3);\n    (*(code *)PTR_free_0012b168)(uVar4);\n    return;\n  }" if (parenthesized_expression "(bVar2 != 0)" ( (binary_expression "bVar2 != 0" identifier != number_literal) )) (compound_statement "{\n    uVar3 = FUN_00042b88(param_1 + 4,*param_1,param_3,bVar1 & 4);\n    uVar4 = FUN_00042b88(param_1 + 0xb,param_1[1],param_3,*pbVar5 & 4);\n    (*(code *)PTR___printf_chk_0012ae30)\n              (1,PTR_UINT_0012a18c + 0x358c,param_3,param_1[0x12],param_1[0x13],uVar3,uVar4,param_2)\n    ;\n    (*(code *)PTR_FUN_0012a354)(10);\n    (*(code *)PTR_free_0012b168)(uVar3);\n    (*(code *)PTR_free_0012b168)(uVar4);\n    return;\n  }" { (expression_statement "uVar3 = FUN_00042b88(param_1 + 4,*param_1,param_3,bVar1 & 4);" (assignment_expression "uVar3 = FUN_00042b88(param_1 + 4,*param_1,param_3,bVar1 & 4)" identifier = (call_expression "FUN_00042b88(param_1 + 4,*param_1,param_3,bVar1 & 4)" identifier (argument_list "(param_1 + 4,*param_1,param_3,bVar1 & 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) , (pointer_expression "*param_1" * identifier) , identifier , (binary_expression "bVar1 & 4" identifier & number_literal) )))) ;) (expression_statement "uVar4 = FUN_00042b88(param_1 + 0xb,param_1[1],param_3,*pbVar5 & 4);" (assignment_expression "uVar4 = FUN_00042b88(param_1 + 0xb,param_1[1],param_3,*pbVar5 & 4)" identifier = (call_expression "FUN_00042b88(param_1 + 0xb,param_1[1],param_3,*pbVar5 & 4)" identifier (argument_list "(param_1 + 0xb,param_1[1],param_3,*pbVar5 & 4)" ( (binary_expression "param_1 + 0xb" identifier + number_literal) , (subscript_expression "param_1[1]" identifier [ number_literal ]) , identifier , (binary_expression "*pbVar5 & 4" (pointer_expression "*pbVar5" * identifier) & number_literal) )))) ;) (expression_statement "(*(code *)PTR___printf_chk_0012ae30)\n              (1,PTR_UINT_0012a18c + 0x358c,param_3,param_1[0x12],param_1[0x13],uVar3,uVar4,param_2)\n    ;" (call_expression "(*(code *)PTR___printf_chk_0012ae30)\n              (1,PTR_UINT_0012a18c + 0x358c,param_3,param_1[0x12],param_1[0x13],uVar3,uVar4,param_2)" (parenthesized_expression "(*(code *)PTR___printf_chk_0012ae30)" ( (pointer_expression "*(code *)PTR___printf_chk_0012ae30" * (cast_expression "(code *)PTR___printf_chk_0012ae30" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(1,PTR_UINT_0012a18c + 0x358c,param_3,param_1[0x12],param_1[0x13],uVar3,uVar4,param_2)" ( number_literal , (binary_expression "PTR_UINT_0012a18c + 0x358c" identifier + number_literal) , identifier , (subscript_expression "param_1[0x12]" identifier [ number_literal ]) , (subscript_expression "param_1[0x13]" identifier [ number_literal ]) , identifier , identifier , identifier ))) ;) (expression_statement "(*(code *)PTR_FUN_0012a354)(10);" (call_expression "(*(code *)PTR_FUN_0012a354)(10)" (parenthesized_expression "(*(code *)PTR_FUN_0012a354)" ( (pointer_expression "*(code *)PTR_FUN_0012a354" * (cast_expression "(code *)PTR_FUN_0012a354" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(10)" ( number_literal ))) ;) (expression_statement "(*(code *)PTR_free_0012b168)(uVar3);" (call_expression "(*(code *)PTR_free_0012b168)(uVar3)" (parenthesized_expression "(*(code *)PTR_free_0012b168)" ( (pointer_expression "*(code *)PTR_free_0012b168" * (cast_expression "(code *)PTR_free_0012b168" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar3)" ( identifier ))) ;) (expression_statement "(*(code *)PTR_free_0012b168)(uVar4);" (call_expression "(*(code *)PTR_free_0012b168)(uVar4)" (parenthesized_expression "(*(code *)PTR_free_0012b168)" ( (pointer_expression "*(code *)PTR_free_0012b168" * (cast_expression "(code *)PTR_free_0012b168" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar4)" ( identifier ))) ;) (return_statement "return;" return ;) })) (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) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , (pointer_expression * IDENT) , IDENT , (binary_expression IDENT & LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , (subscript_expression IDENT [ LIT ]) , IDENT , (binary_expression (pointer_expression * IDENT) & LIT) )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( LIT , (binary_expression IDENT + LIT) , IDENT , (subscript_expression IDENT [ LIT ]) , (subscript_expression IDENT [ LIT ]) , IDENT , IDENT , IDENT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( LIT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) (return_statement return ;) })) (return_statement return ;) })))
(function_definition "void FUN_00042c8c(undefined4 *param_1,undefined4 param_2,undefined4 param_3,int param_4)\n\n{\n  byte bVar1;\n  byte bVar2;\n  undefined4 uVar3;\n  undefined4 uVar4;\n  byte *pbVar5;\n  \n  pbVar5 = *(byte **)PTR_DAT_0012a304;\n  bVar1 = *pbVar5;\n  if (param_4 == 0) {\n    bVar2 = bVar1 & 2;\n  }\n  else {\n    bVar2 = bVar1 & 1;\n  }\n  if (bVar2 != 0) {\n    uVar3 = FUN_00042b88(param_1 + 4,*param_1,param_3,bVar1 & 4);\n    uVar4 = FUN_00042b88(param_1 + 0xb,param_1[1],param_3,*pbVar5 & 4);\n    (*(code *)PTR___printf_chk_0012ae30)\n              (1,PTR_UINT_0012a18c + 0x358c,param_3,param_1[0x12],param_1[0x13],uVar3,uVar4,param_2)\n    ;\n    (*(code *)PTR_FUN_0012a354)(10);\n    (*(code *)PTR_free_0012b168)(uVar3);\n    (*(code *)PTR_free_0012b168)(uVar4);\n    return;\n  }\n  return;\n}" (primitive_type "void") (function_declarator "FUN_00042c8c(undefined4 *param_1,undefined4 param_2,undefined4 param_3,int param_4)" (identifier "FUN_00042c8c") (parameter_list "(undefined4 *param_1,undefined4 param_2,undefined4 param_3,int param_4)" (( "(") (parameter_declaration "undefined4 *param_1" (type_identifier "undefined4") (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")) (, ",") (parameter_declaration "int param_4" (primitive_type "int") (identifier "param_4")) () ")"))) (compound_statement "{\n  byte bVar1;\n  byte bVar2;\n  undefined4 uVar3;\n  undefined4 uVar4;\n  byte *pbVar5;\n  \n  pbVar5 = *(byte **)PTR_DAT_0012a304;\n  bVar1 = *pbVar5;\n  if (param_4 == 0) {\n    bVar2 = bVar1 & 2;\n  }\n  else {\n    bVar2 = bVar1 & 1;\n  }\n  if (bVar2 != 0) {\n    uVar3 = FUN_00042b88(param_1 + 4,*param_1,param_3,bVar1 & 4);\n    uVar4 = FUN_00042b88(param_1 + 0xb,param_1[1],param_3,*pbVar5 & 4);\n    (*(code *)PTR___printf_chk_0012ae30)\n              (1,PTR_UINT_0012a18c + 0x358c,param_3,param_1[0x12],param_1[0x13],uVar3,uVar4,param_2)\n    ;\n    (*(code *)PTR_FUN_0012a354)(10);\n    (*(code *)PTR_free_0012b168)(uVar3);\n    (*(code *)PTR_free_0012b168)(uVar4);\n    return;\n  }\n  return;\n}" ({ "{") (declaration "byte bVar1;" (type_identifier "byte") (identifier "bVar1") (; ";")) (declaration "byte bVar2;" (type_identifier "byte") (identifier "bVar2") (; ";")) (declaration "undefined4 uVar3;" (type_identifier "undefined4") (identifier "uVar3") (; ";")) (declaration "undefined4 uVar4;" (type_identifier "undefined4") (identifier "uVar4") (; ";")) (declaration "byte *pbVar5;" (type_identifier "byte") (pointer_declarator "*pbVar5" (* "*") (identifier "pbVar5")) (; ";")) (expression_statement "pbVar5 = *(byte **)PTR_DAT_0012a304;" (assignment_expression "pbVar5 = *(byte **)PTR_DAT_0012a304" (identifier "pbVar5") (= "=") (pointer_expression "*(byte **)PTR_DAT_0012a304" (* "*") (cast_expression "(byte **)PTR_DAT_0012a304" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "PTR_DAT_0012a304")))) (; ";")) (expression_statement "bVar1 = *pbVar5;" (assignment_expression "bVar1 = *pbVar5" (identifier "bVar1") (= "=") (pointer_expression "*pbVar5" (* "*") (identifier "pbVar5"))) (; ";")) (if_statement "if (param_4 == 0) {\n    bVar2 = bVar1 & 2;\n  }\n  else {\n    bVar2 = bVar1 & 1;\n  }" (if "if") (parenthesized_expression "(param_4 == 0)" (( "(") (binary_expression "param_4 == 0" (identifier "param_4") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    bVar2 = bVar1 & 2;\n  }" ({ "{") (expression_statement "bVar2 = bVar1 & 2;" (assignment_expression "bVar2 = bVar1 & 2" (identifier "bVar2") (= "=") (binary_expression "bVar1 & 2" (identifier "bVar1") (& "&") (number_literal "2"))) (; ";")) (} "}")) (else_clause "else {\n    bVar2 = bVar1 & 1;\n  }" (else "else") (compound_statement "{\n    bVar2 = bVar1 & 1;\n  }" ({ "{") (expression_statement "bVar2 = bVar1 & 1;" (assignment_expression "bVar2 = bVar1 & 1" (identifier "bVar2") (= "=") (binary_expression "bVar1 & 1" (identifier "bVar1") (& "&") (number_literal "1"))) (; ";")) (} "}")))) (if_statement "if (bVar2 != 0) {\n    uVar3 = FUN_00042b88(param_1 + 4,*param_1,param_3,bVar1 & 4);\n    uVar4 = FUN_00042b88(param_1 + 0xb,param_1[1],param_3,*pbVar5 & 4);\n    (*(code *)PTR___printf_chk_0012ae30)\n              (1,PTR_UINT_0012a18c + 0x358c,param_3,param_1[0x12],param_1[0x13],uVar3,uVar4,param_2)\n    ;\n    (*(code *)PTR_FUN_0012a354)(10);\n    (*(code *)PTR_free_0012b168)(uVar3);\n    (*(code *)PTR_free_0012b168)(uVar4);\n    return;\n  }" (if "if") (parenthesized_expression "(bVar2 != 0)" (( "(") (binary_expression "bVar2 != 0" (identifier "bVar2") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    uVar3 = FUN_00042b88(param_1 + 4,*param_1,param_3,bVar1 & 4);\n    uVar4 = FUN_00042b88(param_1 + 0xb,param_1[1],param_3,*pbVar5 & 4);\n    (*(code *)PTR___printf_chk_0012ae30)\n              (1,PTR_UINT_0012a18c + 0x358c,param_3,param_1[0x12],param_1[0x13],uVar3,uVar4,param_2)\n    ;\n    (*(code *)PTR_FUN_0012a354)(10);\n    (*(code *)PTR_free_0012b168)(uVar3);\n    (*(code *)PTR_free_0012b168)(uVar4);\n    return;\n  }" ({ "{") (expression_statement "uVar3 = FUN_00042b88(param_1 + 4,*param_1,param_3,bVar1 & 4);" (assignment_expression "uVar3 = FUN_00042b88(param_1 + 4,*param_1,param_3,bVar1 & 4)" (identifier "uVar3") (= "=") (call_expression "FUN_00042b88(param_1 + 4,*param_1,param_3,bVar1 & 4)" (identifier "FUN_00042b88") (argument_list "(param_1 + 4,*param_1,param_3,bVar1 & 4)" (( "(") (binary_expression "param_1 + 4" (identifier "param_1") (+ "+") (number_literal "4")) (, ",") (pointer_expression "*param_1" (* "*") (identifier "param_1")) (, ",") (identifier "param_3") (, ",") (binary_expression "bVar1 & 4" (identifier "bVar1") (& "&") (number_literal "4")) () ")")))) (; ";")) (expression_statement "uVar4 = FUN_00042b88(param_1 + 0xb,param_1[1],param_3,*pbVar5 & 4);" (assignment_expression "uVar4 = FUN_00042b88(param_1 + 0xb,param_1[1],param_3,*pbVar5 & 4)" (identifier "uVar4") (= "=") (call_expression "FUN_00042b88(param_1 + 0xb,param_1[1],param_3,*pbVar5 & 4)" (identifier "FUN_00042b88") (argument_list "(param_1 + 0xb,param_1[1],param_3,*pbVar5 & 4)" (( "(") (binary_expression "param_1 + 0xb" (identifier "param_1") (+ "+") (number_literal "0xb")) (, ",") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (, ",") (identifier "param_3") (, ",") (binary_expression "*pbVar5 & 4" (pointer_expression "*pbVar5" (* "*") (identifier "pbVar5")) (& "&") (number_literal "4")) () ")")))) (; ";")) (expression_statement "(*(code *)PTR___printf_chk_0012ae30)\n              (1,PTR_UINT_0012a18c + 0x358c,param_3,param_1[0x12],param_1[0x13],uVar3,uVar4,param_2)\n    ;" (call_expression "(*(code *)PTR___printf_chk_0012ae30)\n              (1,PTR_UINT_0012a18c + 0x358c,param_3,param_1[0x12],param_1[0x13],uVar3,uVar4,param_2)" (parenthesized_expression "(*(code *)PTR___printf_chk_0012ae30)" (( "(") (pointer_expression "*(code *)PTR___printf_chk_0012ae30" (* "*") (cast_expression "(code *)PTR___printf_chk_0012ae30" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___printf_chk_0012ae30"))) () ")")) (argument_list "(1,PTR_UINT_0012a18c + 0x358c,param_3,param_1[0x12],param_1[0x13],uVar3,uVar4,param_2)" (( "(") (number_literal "1") (, ",") (binary_expression "PTR_UINT_0012a18c + 0x358c" (identifier "PTR_UINT_0012a18c") (+ "+") (number_literal "0x358c")) (, ",") (identifier "param_3") (, ",") (subscript_expression "param_1[0x12]" (identifier "param_1") ([ "[") (number_literal "0x12") (] "]")) (, ",") (subscript_expression "param_1[0x13]" (identifier "param_1") ([ "[") (number_literal "0x13") (] "]")) (, ",") (identifier "uVar3") (, ",") (identifier "uVar4") (, ",") (identifier "param_2") () ")"))) (; ";")) (expression_statement "(*(code *)PTR_FUN_0012a354)(10);" (call_expression "(*(code *)PTR_FUN_0012a354)(10)" (parenthesized_expression "(*(code *)PTR_FUN_0012a354)" (( "(") (pointer_expression "*(code *)PTR_FUN_0012a354" (* "*") (cast_expression "(code *)PTR_FUN_0012a354" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_FUN_0012a354"))) () ")")) (argument_list "(10)" (( "(") (number_literal "10") () ")"))) (; ";")) (expression_statement "(*(code *)PTR_free_0012b168)(uVar3);" (call_expression "(*(code *)PTR_free_0012b168)(uVar3)" (parenthesized_expression "(*(code *)PTR_free_0012b168)" (( "(") (pointer_expression "*(code *)PTR_free_0012b168" (* "*") (cast_expression "(code *)PTR_free_0012b168" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_free_0012b168"))) () ")")) (argument_list "(uVar3)" (( "(") (identifier "uVar3") () ")"))) (; ";")) (expression_statement "(*(code *)PTR_free_0012b168)(uVar4);" (call_expression "(*(code *)PTR_free_0012b168)(uVar4)" (parenthesized_expression "(*(code *)PTR_free_0012b168)" (( "(") (pointer_expression "*(code *)PTR_free_0012b168" (* "*") (cast_expression "(code *)PTR_free_0012b168" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_free_0012b168"))) () ")")) (argument_list "(uVar4)" (( "(") (identifier "uVar4") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (return_statement "return;" (return "return") (; ";")) (} "}")))

void function_1(type_1 *param,char *state_str,char *proto,int var_1)

{
  type_2 var_2;
  type_2 var_3;
  char *pcVar3;
  char *pcVar4;
  type_2 *pbVar5;
  
  pbVar5 = *(type_2 **)PTR_ptr_to_globals_0012a304;
  var_2 = *pbVar5;
  if (var_1 == 0) {
    var_3 = var_2 & 2;
  }
  else {
    var_3 = var_2 & 1;
  }
  if (var_3 != 0) {
    pcVar3 = var_4(&(param->localaddr).sa,param->local_port,proto,var_2 & 4);
    pcVar4 = var_4(&(param->remaddr).sa,param->rem_port,proto,*pbVar5 & 4);
    (*(type_3 *)PTR___printf_chk_0012ae30)
              (1,var_5 + 0x358c,proto,param->rxq,param->txq,pcVar3,pcVar4,state_str);
    (*(type_3 *)PTR_bb_putchar_0012a354)(10);
    (*(type_3 *)PTR_free_0012b168)(pcVar3);
    (*(type_3 *)PTR_free_0012b168)(pcVar4);
    return;
  }
  return;
}


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

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

{
  byte bVar1;
  byte bVar2;
  undefined4 uVar3;
  undefined4 uVar4;
  byte *pbVar5;
  
  pbVar5 = *(byte **)PTR_DAT_0012a304;
  bVar1 = *pbVar5;
  if (param_4 == 0) {
    bVar2 = bVar1 & 2;
  }
  else {
    bVar2 = bVar1 & 1;
  }
  if (bVar2 != 0) {
    uVar3 = FUN_00042b88(param_1 + 4,*param_1,param_3,bVar1 & 4);
    uVar4 = FUN_00042b88(param_1 + 0xb,param_1[1],param_3,*pbVar5 & 4);
    (*(code *)PTR___printf_chk_0012ae30)
              (1,PTR_UINT_0012a18c + 0x358c,param_3,param_1[0x12],param_1[0x13],uVar3,uVar4,param_2)
    ;
    (*(code *)PTR_FUN_0012a354)(10);
    (*(code *)PTR_free_0012b168)(uVar3);
    (*(code *)PTR_free_0012b168)(uVar4);
    return;
  }
  return;
}

