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

void ssh_throttle_all(Ssh_conflict ssh,int enable,int bufsize)

{
  ssh_channel *c;
  int iVar1;
  int iVar2;
  int in_t9;
  
  iVar2 = 0;
  c = (ssh_channel *)(**(code **)(in_t9 + 0xb7d10))(ssh->channels,0);
  while (c != (ssh_channel *)0x0) {
    iVar1 = c->type;
    if (iVar1 == 2) {
      if (enable == 0) {
        ssh_agentf_try_forward(c);
      }
    }
    else if (iVar1 == 3) {
      pfd_override_throttle((PortForwarding *)(c->u).a.inbuffer.head,enable);
    }
    else if (iVar1 == 1) {
      (**(code **)(in_t9 + 0xb81cc))((c->u).a.inbuffer.head,enable);
    }
    iVar2 = iVar2 + 1;
    c = (ssh_channel *)(**(code **)(in_t9 + 0xb7d10))(ssh->channels,iVar2);
  }
  return;
}



void FUN_00059720(int param_1,int param_2)

{
  int iVar1;
  int iVar2;
  int iVar3;
  
  iVar3 = 0;
  iVar1 = (*(code *)PTR_index234_00111430)(*(undefined4 *)(param_1 + 0x124),0);
  while (iVar1 != 0) {
    iVar2 = *(int *)(iVar1 + 0xc);
    if (iVar2 == 2) {
      if (param_2 == 0) {
        FUN_000594d0(iVar1);
      }
    }
    else if (iVar2 == 3) {
      pfd_override_throttle(*(undefined4 *)(iVar1 + 0x4c),param_2);
    }
    else if (iVar2 == 1) {
      (*(code *)PTR_x11_override_throttle_001118ec)(*(undefined4 *)(iVar1 + 0x4c),param_2);
    }
    iVar3 = iVar3 + 1;
    iVar1 = (*(code *)PTR_index234_00111430)(*(undefined4 *)(param_1 + 0x124),iVar3);
  }
  return;
}


lui gp,0xc
addiu gp,gp,-0x470
addu gp,gp,t9
addiu sp,sp,-0x38
lw t9,-0x7e80(gp)
sw s1,0x1c(sp)
or s1,a0,zero
sw s0,0x18(sp)
or s0,zero,zero
sw s6,0x30(sp)
sw gp,0x10(sp)
sw s5,0x2c(sp)
or s5,a1,zero
sw s4,0x28(sp)
or a1,s0,zero
sw s3,0x24(sp)
li s4,0x2
sw s2,0x20(sp)
li s3,0x3
sw ra,0x34(sp)
li s2,0x1
lw s6,-0x7ad4(gp)
jalr t9
_lw a0,0x124(s1)
addiu s6,s6,-0x6b30
beq v0,zero,0x000597c4
_lw gp,0x10(sp)
lw v1,0xc(v0)
beq v1,s4,0x0005981c
_nop
beq v1,s3,0x00059804
_lw t9,-0x79c8(gp)
beq v1,s2,0x000597ec
_lw t9,-0x79c4(gp)
addiu s0,s0,0x1
lw t9,-0x7e80(gp)
or a1,s0,zero
jalr t9
_lw a0,0x124(s1)
bne v0,zero,0x0005978c
_lw gp,0x10(sp)
lw ra,0x34(sp)
lw s6,0x30(sp)
lw s5,0x2c(sp)
lw s4,0x28(sp)
lw s3,0x24(sp)
lw s2,0x20(sp)
lw s1,0x1c(sp)
lw s0,0x18(sp)
jr ra
_addiu sp,sp,0x38
or a1,s5,zero
lw a0,0x4c(v0)
jalr t9
_addiu s0,s0,0x1
b 0x000597ac
_lw gp,0x10(sp)
or a1,s5,zero
lw a0,0x4c(v0)
bal 0x0003bcd4
_addiu s0,s0,0x1
b 0x000597ac
_lw gp,0x10(sp)
bne s5,zero,0x000597a8
_or t9,s6,zero
bal 0x000594d0
_or a0,v0,zero
addiu s0,s0,0x1
b 0x000597ac
_lw gp,0x10(sp)
(translation_unit "void FUN_00059720(int param_1,int param_2)\n\n{\n  int iVar1;\n  int iVar2;\n  int iVar3;\n  \n  iVar3 = 0;\n  iVar1 = (*(code *)PTR_index234_00111430)(*(undefined4 *)(param_1 + 0x124),0);\n  while (iVar1 != 0) {\n    iVar2 = *(int *)(iVar1 + 0xc);\n    if (iVar2 == 2) {\n      if (param_2 == 0) {\n        FUN_000594d0(iVar1);\n      }\n    }\n    else if (iVar2 == 3) {\n      pfd_override_throttle(*(undefined4 *)(iVar1 + 0x4c),param_2);\n    }\n    else if (iVar2 == 1) {\n      (*(code *)PTR_x11_override_throttle_001118ec)(*(undefined4 *)(iVar1 + 0x4c),param_2);\n    }\n    iVar3 = iVar3 + 1;\n    iVar1 = (*(code *)PTR_index234_00111430)(*(undefined4 *)(param_1 + 0x124),iVar3);\n  }\n  return;\n}\n\n" (function_definition "void FUN_00059720(int param_1,int param_2)\n\n{\n  int iVar1;\n  int iVar2;\n  int iVar3;\n  \n  iVar3 = 0;\n  iVar1 = (*(code *)PTR_index234_00111430)(*(undefined4 *)(param_1 + 0x124),0);\n  while (iVar1 != 0) {\n    iVar2 = *(int *)(iVar1 + 0xc);\n    if (iVar2 == 2) {\n      if (param_2 == 0) {\n        FUN_000594d0(iVar1);\n      }\n    }\n    else if (iVar2 == 3) {\n      pfd_override_throttle(*(undefined4 *)(iVar1 + 0x4c),param_2);\n    }\n    else if (iVar2 == 1) {\n      (*(code *)PTR_x11_override_throttle_001118ec)(*(undefined4 *)(iVar1 + 0x4c),param_2);\n    }\n    iVar3 = iVar3 + 1;\n    iVar1 = (*(code *)PTR_index234_00111430)(*(undefined4 *)(param_1 + 0x124),iVar3);\n  }\n  return;\n}" primitive_type (function_declarator "FUN_00059720(int param_1,int param_2)" identifier (parameter_list "(int param_1,int param_2)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int param_2" primitive_type identifier) ))) (compound_statement "{\n  int iVar1;\n  int iVar2;\n  int iVar3;\n  \n  iVar3 = 0;\n  iVar1 = (*(code *)PTR_index234_00111430)(*(undefined4 *)(param_1 + 0x124),0);\n  while (iVar1 != 0) {\n    iVar2 = *(int *)(iVar1 + 0xc);\n    if (iVar2 == 2) {\n      if (param_2 == 0) {\n        FUN_000594d0(iVar1);\n      }\n    }\n    else if (iVar2 == 3) {\n      pfd_override_throttle(*(undefined4 *)(iVar1 + 0x4c),param_2);\n    }\n    else if (iVar2 == 1) {\n      (*(code *)PTR_x11_override_throttle_001118ec)(*(undefined4 *)(iVar1 + 0x4c),param_2);\n    }\n    iVar3 = iVar3 + 1;\n    iVar1 = (*(code *)PTR_index234_00111430)(*(undefined4 *)(param_1 + 0x124),iVar3);\n  }\n  return;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) (expression_statement "iVar1 = (*(code *)PTR_index234_00111430)(*(undefined4 *)(param_1 + 0x124),0);" (assignment_expression "iVar1 = (*(code *)PTR_index234_00111430)(*(undefined4 *)(param_1 + 0x124),0)" identifier = (call_expression "(*(code *)PTR_index234_00111430)(*(undefined4 *)(param_1 + 0x124),0)" (parenthesized_expression "(*(code *)PTR_index234_00111430)" ( (pointer_expression "*(code *)PTR_index234_00111430" * (cast_expression "(code *)PTR_index234_00111430" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*(undefined4 *)(param_1 + 0x124),0)" ( (pointer_expression "*(undefined4 *)(param_1 + 0x124)" * (cast_expression "(undefined4 *)(param_1 + 0x124)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x124)" ( (binary_expression "param_1 + 0x124" identifier + number_literal) )))) , number_literal )))) ;) (while_statement "while (iVar1 != 0) {\n    iVar2 = *(int *)(iVar1 + 0xc);\n    if (iVar2 == 2) {\n      if (param_2 == 0) {\n        FUN_000594d0(iVar1);\n      }\n    }\n    else if (iVar2 == 3) {\n      pfd_override_throttle(*(undefined4 *)(iVar1 + 0x4c),param_2);\n    }\n    else if (iVar2 == 1) {\n      (*(code *)PTR_x11_override_throttle_001118ec)(*(undefined4 *)(iVar1 + 0x4c),param_2);\n    }\n    iVar3 = iVar3 + 1;\n    iVar1 = (*(code *)PTR_index234_00111430)(*(undefined4 *)(param_1 + 0x124),iVar3);\n  }" while (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) (compound_statement "{\n    iVar2 = *(int *)(iVar1 + 0xc);\n    if (iVar2 == 2) {\n      if (param_2 == 0) {\n        FUN_000594d0(iVar1);\n      }\n    }\n    else if (iVar2 == 3) {\n      pfd_override_throttle(*(undefined4 *)(iVar1 + 0x4c),param_2);\n    }\n    else if (iVar2 == 1) {\n      (*(code *)PTR_x11_override_throttle_001118ec)(*(undefined4 *)(iVar1 + 0x4c),param_2);\n    }\n    iVar3 = iVar3 + 1;\n    iVar1 = (*(code *)PTR_index234_00111430)(*(undefined4 *)(param_1 + 0x124),iVar3);\n  }" { (expression_statement "iVar2 = *(int *)(iVar1 + 0xc);" (assignment_expression "iVar2 = *(int *)(iVar1 + 0xc)" identifier = (pointer_expression "*(int *)(iVar1 + 0xc)" * (cast_expression "(int *)(iVar1 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0xc)" ( (binary_expression "iVar1 + 0xc" identifier + number_literal) ))))) ;) (if_statement "if (iVar2 == 2) {\n      if (param_2 == 0) {\n        FUN_000594d0(iVar1);\n      }\n    }\n    else if (iVar2 == 3) {\n      pfd_override_throttle(*(undefined4 *)(iVar1 + 0x4c),param_2);\n    }\n    else if (iVar2 == 1) {\n      (*(code *)PTR_x11_override_throttle_001118ec)(*(undefined4 *)(iVar1 + 0x4c),param_2);\n    }" if (parenthesized_expression "(iVar2 == 2)" ( (binary_expression "iVar2 == 2" identifier == number_literal) )) (compound_statement "{\n      if (param_2 == 0) {\n        FUN_000594d0(iVar1);\n      }\n    }" { (if_statement "if (param_2 == 0) {\n        FUN_000594d0(iVar1);\n      }" if (parenthesized_expression "(param_2 == 0)" ( (binary_expression "param_2 == 0" identifier == number_literal) )) (compound_statement "{\n        FUN_000594d0(iVar1);\n      }" { (expression_statement "FUN_000594d0(iVar1);" (call_expression "FUN_000594d0(iVar1)" identifier (argument_list "(iVar1)" ( identifier ))) ;) })) }) (else_clause "else if (iVar2 == 3) {\n      pfd_override_throttle(*(undefined4 *)(iVar1 + 0x4c),param_2);\n    }\n    else if (iVar2 == 1) {\n      (*(code *)PTR_x11_override_throttle_001118ec)(*(undefined4 *)(iVar1 + 0x4c),param_2);\n    }" else (if_statement "if (iVar2 == 3) {\n      pfd_override_throttle(*(undefined4 *)(iVar1 + 0x4c),param_2);\n    }\n    else if (iVar2 == 1) {\n      (*(code *)PTR_x11_override_throttle_001118ec)(*(undefined4 *)(iVar1 + 0x4c),param_2);\n    }" if (parenthesized_expression "(iVar2 == 3)" ( (binary_expression "iVar2 == 3" identifier == number_literal) )) (compound_statement "{\n      pfd_override_throttle(*(undefined4 *)(iVar1 + 0x4c),param_2);\n    }" { (expression_statement "pfd_override_throttle(*(undefined4 *)(iVar1 + 0x4c),param_2);" (call_expression "pfd_override_throttle(*(undefined4 *)(iVar1 + 0x4c),param_2)" identifier (argument_list "(*(undefined4 *)(iVar1 + 0x4c),param_2)" ( (pointer_expression "*(undefined4 *)(iVar1 + 0x4c)" * (cast_expression "(undefined4 *)(iVar1 + 0x4c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x4c)" ( (binary_expression "iVar1 + 0x4c" identifier + number_literal) )))) , identifier ))) ;) }) (else_clause "else if (iVar2 == 1) {\n      (*(code *)PTR_x11_override_throttle_001118ec)(*(undefined4 *)(iVar1 + 0x4c),param_2);\n    }" else (if_statement "if (iVar2 == 1) {\n      (*(code *)PTR_x11_override_throttle_001118ec)(*(undefined4 *)(iVar1 + 0x4c),param_2);\n    }" if (parenthesized_expression "(iVar2 == 1)" ( (binary_expression "iVar2 == 1" identifier == number_literal) )) (compound_statement "{\n      (*(code *)PTR_x11_override_throttle_001118ec)(*(undefined4 *)(iVar1 + 0x4c),param_2);\n    }" { (expression_statement "(*(code *)PTR_x11_override_throttle_001118ec)(*(undefined4 *)(iVar1 + 0x4c),param_2);" (call_expression "(*(code *)PTR_x11_override_throttle_001118ec)(*(undefined4 *)(iVar1 + 0x4c),param_2)" (parenthesized_expression "(*(code *)PTR_x11_override_throttle_001118ec)" ( (pointer_expression "*(code *)PTR_x11_override_throttle_001118ec" * (cast_expression "(code *)PTR_x11_override_throttle_001118ec" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*(undefined4 *)(iVar1 + 0x4c),param_2)" ( (pointer_expression "*(undefined4 *)(iVar1 + 0x4c)" * (cast_expression "(undefined4 *)(iVar1 + 0x4c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x4c)" ( (binary_expression "iVar1 + 0x4c" identifier + number_literal) )))) , identifier ))) ;) })))))) (expression_statement "iVar3 = iVar3 + 1;" (assignment_expression "iVar3 = iVar3 + 1" identifier = (binary_expression "iVar3 + 1" identifier + number_literal)) ;) (expression_statement "iVar1 = (*(code *)PTR_index234_00111430)(*(undefined4 *)(param_1 + 0x124),iVar3);" (assignment_expression "iVar1 = (*(code *)PTR_index234_00111430)(*(undefined4 *)(param_1 + 0x124),iVar3)" identifier = (call_expression "(*(code *)PTR_index234_00111430)(*(undefined4 *)(param_1 + 0x124),iVar3)" (parenthesized_expression "(*(code *)PTR_index234_00111430)" ( (pointer_expression "*(code *)PTR_index234_00111430" * (cast_expression "(code *)PTR_index234_00111430" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*(undefined4 *)(param_1 + 0x124),iVar3)" ( (pointer_expression "*(undefined4 *)(param_1 + 0x124)" * (cast_expression "(undefined4 *)(param_1 + 0x124)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x124)" ( (binary_expression "param_1 + 0x124" identifier + number_literal) )))) , identifier )))) ;) })) (return_statement "return;" return ;) })))
(translation_unit "/* WARNING: Enum "anon_enum_32": Some values do not have unique names */\n\nvoid ssh_throttle_all(Ssh_conflict ssh,int enable,int bufsize)\n\n{\n  ssh_channel *c;\n  int iVar1;\n  int iVar2;\n  int in_t9;\n  \n  iVar2 = 0;\n  c = (ssh_channel *)(**(code **)(in_t9 + 0xb7d10))(ssh->channels,0);\n  while (c != (ssh_channel *)0x0) {\n    iVar1 = c->type;\n    if (iVar1 == 2) {\n      if (enable == 0) {\n        ssh_agentf_try_forward(c);\n      }\n    }\n    else if (iVar1 == 3) {\n      pfd_override_throttle((PortForwarding *)(c->u).a.inbuffer.head,enable);\n    }\n    else if (iVar1 == 1) {\n      (**(code **)(in_t9 + 0xb81cc))((c->u).a.inbuffer.head,enable);\n    }\n    iVar2 = iVar2 + 1;\n    c = (ssh_channel *)(**(code **)(in_t9 + 0xb7d10))(ssh->channels,iVar2);\n  }\n  return;\n}\n\n" comment (function_definition "void ssh_throttle_all(Ssh_conflict ssh,int enable,int bufsize)\n\n{\n  ssh_channel *c;\n  int iVar1;\n  int iVar2;\n  int in_t9;\n  \n  iVar2 = 0;\n  c = (ssh_channel *)(**(code **)(in_t9 + 0xb7d10))(ssh->channels,0);\n  while (c != (ssh_channel *)0x0) {\n    iVar1 = c->type;\n    if (iVar1 == 2) {\n      if (enable == 0) {\n        ssh_agentf_try_forward(c);\n      }\n    }\n    else if (iVar1 == 3) {\n      pfd_override_throttle((PortForwarding *)(c->u).a.inbuffer.head,enable);\n    }\n    else if (iVar1 == 1) {\n      (**(code **)(in_t9 + 0xb81cc))((c->u).a.inbuffer.head,enable);\n    }\n    iVar2 = iVar2 + 1;\n    c = (ssh_channel *)(**(code **)(in_t9 + 0xb7d10))(ssh->channels,iVar2);\n  }\n  return;\n}" primitive_type (function_declarator "ssh_throttle_all(Ssh_conflict ssh,int enable,int bufsize)" identifier (parameter_list "(Ssh_conflict ssh,int enable,int bufsize)" ( (parameter_declaration "Ssh_conflict ssh" type_identifier identifier) , (parameter_declaration "int enable" primitive_type identifier) , (parameter_declaration "int bufsize" primitive_type identifier) ))) (compound_statement "{\n  ssh_channel *c;\n  int iVar1;\n  int iVar2;\n  int in_t9;\n  \n  iVar2 = 0;\n  c = (ssh_channel *)(**(code **)(in_t9 + 0xb7d10))(ssh->channels,0);\n  while (c != (ssh_channel *)0x0) {\n    iVar1 = c->type;\n    if (iVar1 == 2) {\n      if (enable == 0) {\n        ssh_agentf_try_forward(c);\n      }\n    }\n    else if (iVar1 == 3) {\n      pfd_override_throttle((PortForwarding *)(c->u).a.inbuffer.head,enable);\n    }\n    else if (iVar1 == 1) {\n      (**(code **)(in_t9 + 0xb81cc))((c->u).a.inbuffer.head,enable);\n    }\n    iVar2 = iVar2 + 1;\n    c = (ssh_channel *)(**(code **)(in_t9 + 0xb7d10))(ssh->channels,iVar2);\n  }\n  return;\n}" { (declaration "ssh_channel *c;" type_identifier (pointer_declarator "*c" * identifier) ;) (declaration "int iVar1;" primitive_type identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int in_t9;" primitive_type identifier ;) (expression_statement "iVar2 = 0;" (assignment_expression "iVar2 = 0" identifier = number_literal) ;) (expression_statement "c = (ssh_channel *)(**(code **)(in_t9 + 0xb7d10))(ssh->channels,0);" (assignment_expression "c = (ssh_channel *)(**(code **)(in_t9 + 0xb7d10))(ssh->channels,0)" identifier = (cast_expression "(ssh_channel *)(**(code **)(in_t9 + 0xb7d10))(ssh->channels,0)" ( (type_descriptor "ssh_channel *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(in_t9 + 0xb7d10))(ssh->channels,0)" (parenthesized_expression "(**(code **)(in_t9 + 0xb7d10))" ( (pointer_expression "**(code **)(in_t9 + 0xb7d10)" * (pointer_expression "*(code **)(in_t9 + 0xb7d10)" * (cast_expression "(code **)(in_t9 + 0xb7d10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(in_t9 + 0xb7d10)" ( (binary_expression "in_t9 + 0xb7d10" identifier + number_literal) ))))) )) (argument_list "(ssh->channels,0)" ( (field_expression "ssh->channels" identifier -> field_identifier) , number_literal ))))) ;) (while_statement "while (c != (ssh_channel *)0x0) {\n    iVar1 = c->type;\n    if (iVar1 == 2) {\n      if (enable == 0) {\n        ssh_agentf_try_forward(c);\n      }\n    }\n    else if (iVar1 == 3) {\n      pfd_override_throttle((PortForwarding *)(c->u).a.inbuffer.head,enable);\n    }\n    else if (iVar1 == 1) {\n      (**(code **)(in_t9 + 0xb81cc))((c->u).a.inbuffer.head,enable);\n    }\n    iVar2 = iVar2 + 1;\n    c = (ssh_channel *)(**(code **)(in_t9 + 0xb7d10))(ssh->channels,iVar2);\n  }" while (parenthesized_expression "(c != (ssh_channel *)0x0)" ( (binary_expression "c != (ssh_channel *)0x0" identifier != (cast_expression "(ssh_channel *)0x0" ( (type_descriptor "ssh_channel *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    iVar1 = c->type;\n    if (iVar1 == 2) {\n      if (enable == 0) {\n        ssh_agentf_try_forward(c);\n      }\n    }\n    else if (iVar1 == 3) {\n      pfd_override_throttle((PortForwarding *)(c->u).a.inbuffer.head,enable);\n    }\n    else if (iVar1 == 1) {\n      (**(code **)(in_t9 + 0xb81cc))((c->u).a.inbuffer.head,enable);\n    }\n    iVar2 = iVar2 + 1;\n    c = (ssh_channel *)(**(code **)(in_t9 + 0xb7d10))(ssh->channels,iVar2);\n  }" { (expression_statement "iVar1 = c->type;" (assignment_expression "iVar1 = c->type" identifier = (field_expression "c->type" identifier -> field_identifier)) ;) (if_statement "if (iVar1 == 2) {\n      if (enable == 0) {\n        ssh_agentf_try_forward(c);\n      }\n    }\n    else if (iVar1 == 3) {\n      pfd_override_throttle((PortForwarding *)(c->u).a.inbuffer.head,enable);\n    }\n    else if (iVar1 == 1) {\n      (**(code **)(in_t9 + 0xb81cc))((c->u).a.inbuffer.head,enable);\n    }" if (parenthesized_expression "(iVar1 == 2)" ( (binary_expression "iVar1 == 2" identifier == number_literal) )) (compound_statement "{\n      if (enable == 0) {\n        ssh_agentf_try_forward(c);\n      }\n    }" { (if_statement "if (enable == 0) {\n        ssh_agentf_try_forward(c);\n      }" if (parenthesized_expression "(enable == 0)" ( (binary_expression "enable == 0" identifier == number_literal) )) (compound_statement "{\n        ssh_agentf_try_forward(c);\n      }" { (expression_statement "ssh_agentf_try_forward(c);" (call_expression "ssh_agentf_try_forward(c)" identifier (argument_list "(c)" ( identifier ))) ;) })) }) (else_clause "else if (iVar1 == 3) {\n      pfd_override_throttle((PortForwarding *)(c->u).a.inbuffer.head,enable);\n    }\n    else if (iVar1 == 1) {\n      (**(code **)(in_t9 + 0xb81cc))((c->u).a.inbuffer.head,enable);\n    }" else (if_statement "if (iVar1 == 3) {\n      pfd_override_throttle((PortForwarding *)(c->u).a.inbuffer.head,enable);\n    }\n    else if (iVar1 == 1) {\n      (**(code **)(in_t9 + 0xb81cc))((c->u).a.inbuffer.head,enable);\n    }" if (parenthesized_expression "(iVar1 == 3)" ( (binary_expression "iVar1 == 3" identifier == number_literal) )) (compound_statement "{\n      pfd_override_throttle((PortForwarding *)(c->u).a.inbuffer.head,enable);\n    }" { (expression_statement "pfd_override_throttle((PortForwarding *)(c->u).a.inbuffer.head,enable);" (call_expression "pfd_override_throttle((PortForwarding *)(c->u).a.inbuffer.head,enable)" identifier (argument_list "((PortForwarding *)(c->u).a.inbuffer.head,enable)" ( (cast_expression "(PortForwarding *)(c->u).a.inbuffer.head" ( (type_descriptor "PortForwarding *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(c->u).a.inbuffer.head" (field_expression "(c->u).a.inbuffer" (field_expression "(c->u).a" (parenthesized_expression "(c->u)" ( (field_expression "c->u" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier)) , identifier ))) ;) }) (else_clause "else if (iVar1 == 1) {\n      (**(code **)(in_t9 + 0xb81cc))((c->u).a.inbuffer.head,enable);\n    }" else (if_statement "if (iVar1 == 1) {\n      (**(code **)(in_t9 + 0xb81cc))((c->u).a.inbuffer.head,enable);\n    }" if (parenthesized_expression "(iVar1 == 1)" ( (binary_expression "iVar1 == 1" identifier == number_literal) )) (compound_statement "{\n      (**(code **)(in_t9 + 0xb81cc))((c->u).a.inbuffer.head,enable);\n    }" { (expression_statement "(**(code **)(in_t9 + 0xb81cc))((c->u).a.inbuffer.head,enable);" (call_expression "(**(code **)(in_t9 + 0xb81cc))((c->u).a.inbuffer.head,enable)" (parenthesized_expression "(**(code **)(in_t9 + 0xb81cc))" ( (pointer_expression "**(code **)(in_t9 + 0xb81cc)" * (pointer_expression "*(code **)(in_t9 + 0xb81cc)" * (cast_expression "(code **)(in_t9 + 0xb81cc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(in_t9 + 0xb81cc)" ( (binary_expression "in_t9 + 0xb81cc" identifier + number_literal) ))))) )) (argument_list "((c->u).a.inbuffer.head,enable)" ( (field_expression "(c->u).a.inbuffer.head" (field_expression "(c->u).a.inbuffer" (field_expression "(c->u).a" (parenthesized_expression "(c->u)" ( (field_expression "c->u" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) , identifier ))) ;) })))))) (expression_statement "iVar2 = iVar2 + 1;" (assignment_expression "iVar2 = iVar2 + 1" identifier = (binary_expression "iVar2 + 1" identifier + number_literal)) ;) (expression_statement "c = (ssh_channel *)(**(code **)(in_t9 + 0xb7d10))(ssh->channels,iVar2);" (assignment_expression "c = (ssh_channel *)(**(code **)(in_t9 + 0xb7d10))(ssh->channels,iVar2)" identifier = (cast_expression "(ssh_channel *)(**(code **)(in_t9 + 0xb7d10))(ssh->channels,iVar2)" ( (type_descriptor "ssh_channel *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(in_t9 + 0xb7d10))(ssh->channels,iVar2)" (parenthesized_expression "(**(code **)(in_t9 + 0xb7d10))" ( (pointer_expression "**(code **)(in_t9 + 0xb7d10)" * (pointer_expression "*(code **)(in_t9 + 0xb7d10)" * (cast_expression "(code **)(in_t9 + 0xb7d10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(in_t9 + 0xb7d10)" ( (binary_expression "in_t9 + 0xb7d10" identifier + number_literal) ))))) )) (argument_list "(ssh->channels,iVar2)" ( (field_expression "ssh->channels" identifier -> field_identifier) , identifier ))))) ;) })) (return_statement "return;" return ;) })))
(translation_unit "void FUN_00059720(int param_1,int param_2)\n\n{\n  int iVar1;\n  int iVar2;\n  int iVar3;\n  \n  iVar3 = 0;\n  iVar1 = (*(code *)PTR_index234_00111430)(*(undefined4 *)(param_1 + 0x124),0);\n  while (iVar1 != 0) {\n    iVar2 = *(int *)(iVar1 + 0xc);\n    if (iVar2 == 2) {\n      if (param_2 == 0) {\n        FUN_000594d0(iVar1);\n      }\n    }\n    else if (iVar2 == 3) {\n      pfd_override_throttle(*(undefined4 *)(iVar1 + 0x4c),param_2);\n    }\n    else if (iVar2 == 1) {\n      (*(code *)PTR_x11_override_throttle_001118ec)(*(undefined4 *)(iVar1 + 0x4c),param_2);\n    }\n    iVar3 = iVar3 + 1;\n    iVar1 = (*(code *)PTR_index234_00111430)(*(undefined4 *)(param_1 + 0x124),iVar3);\n  }\n  return;\n}\n\n" (function_definition "void FUN_00059720(int param_1,int param_2)\n\n{\n  int iVar1;\n  int iVar2;\n  int iVar3;\n  \n  iVar3 = 0;\n  iVar1 = (*(code *)PTR_index234_00111430)(*(undefined4 *)(param_1 + 0x124),0);\n  while (iVar1 != 0) {\n    iVar2 = *(int *)(iVar1 + 0xc);\n    if (iVar2 == 2) {\n      if (param_2 == 0) {\n        FUN_000594d0(iVar1);\n      }\n    }\n    else if (iVar2 == 3) {\n      pfd_override_throttle(*(undefined4 *)(iVar1 + 0x4c),param_2);\n    }\n    else if (iVar2 == 1) {\n      (*(code *)PTR_x11_override_throttle_001118ec)(*(undefined4 *)(iVar1 + 0x4c),param_2);\n    }\n    iVar3 = iVar3 + 1;\n    iVar1 = (*(code *)PTR_index234_00111430)(*(undefined4 *)(param_1 + 0x124),iVar3);\n  }\n  return;\n}" primitive_type (function_declarator "FUN_00059720(int param_1,int param_2)" identifier (parameter_list "(int param_1,int param_2)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int param_2" primitive_type identifier) ))) (compound_statement "{\n  int iVar1;\n  int iVar2;\n  int iVar3;\n  \n  iVar3 = 0;\n  iVar1 = (*(code *)PTR_index234_00111430)(*(undefined4 *)(param_1 + 0x124),0);\n  while (iVar1 != 0) {\n    iVar2 = *(int *)(iVar1 + 0xc);\n    if (iVar2 == 2) {\n      if (param_2 == 0) {\n        FUN_000594d0(iVar1);\n      }\n    }\n    else if (iVar2 == 3) {\n      pfd_override_throttle(*(undefined4 *)(iVar1 + 0x4c),param_2);\n    }\n    else if (iVar2 == 1) {\n      (*(code *)PTR_x11_override_throttle_001118ec)(*(undefined4 *)(iVar1 + 0x4c),param_2);\n    }\n    iVar3 = iVar3 + 1;\n    iVar1 = (*(code *)PTR_index234_00111430)(*(undefined4 *)(param_1 + 0x124),iVar3);\n  }\n  return;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) (expression_statement "iVar1 = (*(code *)PTR_index234_00111430)(*(undefined4 *)(param_1 + 0x124),0);" (assignment_expression "iVar1 = (*(code *)PTR_index234_00111430)(*(undefined4 *)(param_1 + 0x124),0)" identifier = (call_expression "(*(code *)PTR_index234_00111430)(*(undefined4 *)(param_1 + 0x124),0)" (parenthesized_expression "(*(code *)PTR_index234_00111430)" ( (pointer_expression "*(code *)PTR_index234_00111430" * (cast_expression "(code *)PTR_index234_00111430" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*(undefined4 *)(param_1 + 0x124),0)" ( (pointer_expression "*(undefined4 *)(param_1 + 0x124)" * (cast_expression "(undefined4 *)(param_1 + 0x124)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x124)" ( (binary_expression "param_1 + 0x124" identifier + number_literal) )))) , number_literal )))) ;) (while_statement "while (iVar1 != 0) {\n    iVar2 = *(int *)(iVar1 + 0xc);\n    if (iVar2 == 2) {\n      if (param_2 == 0) {\n        FUN_000594d0(iVar1);\n      }\n    }\n    else if (iVar2 == 3) {\n      pfd_override_throttle(*(undefined4 *)(iVar1 + 0x4c),param_2);\n    }\n    else if (iVar2 == 1) {\n      (*(code *)PTR_x11_override_throttle_001118ec)(*(undefined4 *)(iVar1 + 0x4c),param_2);\n    }\n    iVar3 = iVar3 + 1;\n    iVar1 = (*(code *)PTR_index234_00111430)(*(undefined4 *)(param_1 + 0x124),iVar3);\n  }" while (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) (compound_statement "{\n    iVar2 = *(int *)(iVar1 + 0xc);\n    if (iVar2 == 2) {\n      if (param_2 == 0) {\n        FUN_000594d0(iVar1);\n      }\n    }\n    else if (iVar2 == 3) {\n      pfd_override_throttle(*(undefined4 *)(iVar1 + 0x4c),param_2);\n    }\n    else if (iVar2 == 1) {\n      (*(code *)PTR_x11_override_throttle_001118ec)(*(undefined4 *)(iVar1 + 0x4c),param_2);\n    }\n    iVar3 = iVar3 + 1;\n    iVar1 = (*(code *)PTR_index234_00111430)(*(undefined4 *)(param_1 + 0x124),iVar3);\n  }" { (expression_statement "iVar2 = *(int *)(iVar1 + 0xc);" (assignment_expression "iVar2 = *(int *)(iVar1 + 0xc)" identifier = (pointer_expression "*(int *)(iVar1 + 0xc)" * (cast_expression "(int *)(iVar1 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0xc)" ( (binary_expression "iVar1 + 0xc" identifier + number_literal) ))))) ;) (if_statement "if (iVar2 == 2) {\n      if (param_2 == 0) {\n        FUN_000594d0(iVar1);\n      }\n    }\n    else if (iVar2 == 3) {\n      pfd_override_throttle(*(undefined4 *)(iVar1 + 0x4c),param_2);\n    }\n    else if (iVar2 == 1) {\n      (*(code *)PTR_x11_override_throttle_001118ec)(*(undefined4 *)(iVar1 + 0x4c),param_2);\n    }" if (parenthesized_expression "(iVar2 == 2)" ( (binary_expression "iVar2 == 2" identifier == number_literal) )) (compound_statement "{\n      if (param_2 == 0) {\n        FUN_000594d0(iVar1);\n      }\n    }" { (if_statement "if (param_2 == 0) {\n        FUN_000594d0(iVar1);\n      }" if (parenthesized_expression "(param_2 == 0)" ( (binary_expression "param_2 == 0" identifier == number_literal) )) (compound_statement "{\n        FUN_000594d0(iVar1);\n      }" { (expression_statement "FUN_000594d0(iVar1);" (call_expression "FUN_000594d0(iVar1)" identifier (argument_list "(iVar1)" ( identifier ))) ;) })) }) (else_clause "else if (iVar2 == 3) {\n      pfd_override_throttle(*(undefined4 *)(iVar1 + 0x4c),param_2);\n    }\n    else if (iVar2 == 1) {\n      (*(code *)PTR_x11_override_throttle_001118ec)(*(undefined4 *)(iVar1 + 0x4c),param_2);\n    }" else (if_statement "if (iVar2 == 3) {\n      pfd_override_throttle(*(undefined4 *)(iVar1 + 0x4c),param_2);\n    }\n    else if (iVar2 == 1) {\n      (*(code *)PTR_x11_override_throttle_001118ec)(*(undefined4 *)(iVar1 + 0x4c),param_2);\n    }" if (parenthesized_expression "(iVar2 == 3)" ( (binary_expression "iVar2 == 3" identifier == number_literal) )) (compound_statement "{\n      pfd_override_throttle(*(undefined4 *)(iVar1 + 0x4c),param_2);\n    }" { (expression_statement "pfd_override_throttle(*(undefined4 *)(iVar1 + 0x4c),param_2);" (call_expression "pfd_override_throttle(*(undefined4 *)(iVar1 + 0x4c),param_2)" identifier (argument_list "(*(undefined4 *)(iVar1 + 0x4c),param_2)" ( (pointer_expression "*(undefined4 *)(iVar1 + 0x4c)" * (cast_expression "(undefined4 *)(iVar1 + 0x4c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x4c)" ( (binary_expression "iVar1 + 0x4c" identifier + number_literal) )))) , identifier ))) ;) }) (else_clause "else if (iVar2 == 1) {\n      (*(code *)PTR_x11_override_throttle_001118ec)(*(undefined4 *)(iVar1 + 0x4c),param_2);\n    }" else (if_statement "if (iVar2 == 1) {\n      (*(code *)PTR_x11_override_throttle_001118ec)(*(undefined4 *)(iVar1 + 0x4c),param_2);\n    }" if (parenthesized_expression "(iVar2 == 1)" ( (binary_expression "iVar2 == 1" identifier == number_literal) )) (compound_statement "{\n      (*(code *)PTR_x11_override_throttle_001118ec)(*(undefined4 *)(iVar1 + 0x4c),param_2);\n    }" { (expression_statement "(*(code *)PTR_x11_override_throttle_001118ec)(*(undefined4 *)(iVar1 + 0x4c),param_2);" (call_expression "(*(code *)PTR_x11_override_throttle_001118ec)(*(undefined4 *)(iVar1 + 0x4c),param_2)" (parenthesized_expression "(*(code *)PTR_x11_override_throttle_001118ec)" ( (pointer_expression "*(code *)PTR_x11_override_throttle_001118ec" * (cast_expression "(code *)PTR_x11_override_throttle_001118ec" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*(undefined4 *)(iVar1 + 0x4c),param_2)" ( (pointer_expression "*(undefined4 *)(iVar1 + 0x4c)" * (cast_expression "(undefined4 *)(iVar1 + 0x4c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x4c)" ( (binary_expression "iVar1 + 0x4c" identifier + number_literal) )))) , identifier ))) ;) })))))) (expression_statement "iVar3 = iVar3 + 1;" (assignment_expression "iVar3 = iVar3 + 1" identifier = (binary_expression "iVar3 + 1" identifier + number_literal)) ;) (expression_statement "iVar1 = (*(code *)PTR_index234_00111430)(*(undefined4 *)(param_1 + 0x124),iVar3);" (assignment_expression "iVar1 = (*(code *)PTR_index234_00111430)(*(undefined4 *)(param_1 + 0x124),iVar3)" identifier = (call_expression "(*(code *)PTR_index234_00111430)(*(undefined4 *)(param_1 + 0x124),iVar3)" (parenthesized_expression "(*(code *)PTR_index234_00111430)" ( (pointer_expression "*(code *)PTR_index234_00111430" * (cast_expression "(code *)PTR_index234_00111430" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*(undefined4 *)(param_1 + 0x124),iVar3)" ( (pointer_expression "*(undefined4 *)(param_1 + 0x124)" * (cast_expression "(undefined4 *)(param_1 + 0x124)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x124)" ( (binary_expression "param_1 + 0x124" identifier + number_literal) )))) , identifier )))) ;) })) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (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 ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , LIT )))) ;) (while_statement while (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT ))) ;) }) (else_clause else (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 ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT ))) ;) })))))) (expression_statement (assignment_expression IDENT = (binary_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 ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT )))) ;) })) (return_statement return ;) })))
(function_definition "void FUN_00059720(int param_1,int param_2)\n\n{\n  int iVar1;\n  int iVar2;\n  int iVar3;\n  \n  iVar3 = 0;\n  iVar1 = (*(code *)PTR_index234_00111430)(*(undefined4 *)(param_1 + 0x124),0);\n  while (iVar1 != 0) {\n    iVar2 = *(int *)(iVar1 + 0xc);\n    if (iVar2 == 2) {\n      if (param_2 == 0) {\n        FUN_000594d0(iVar1);\n      }\n    }\n    else if (iVar2 == 3) {\n      pfd_override_throttle(*(undefined4 *)(iVar1 + 0x4c),param_2);\n    }\n    else if (iVar2 == 1) {\n      (*(code *)PTR_x11_override_throttle_001118ec)(*(undefined4 *)(iVar1 + 0x4c),param_2);\n    }\n    iVar3 = iVar3 + 1;\n    iVar1 = (*(code *)PTR_index234_00111430)(*(undefined4 *)(param_1 + 0x124),iVar3);\n  }\n  return;\n}" (primitive_type "void") (function_declarator "FUN_00059720(int param_1,int param_2)" (identifier "FUN_00059720") (parameter_list "(int param_1,int param_2)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) (, ",") (parameter_declaration "int param_2" (primitive_type "int") (identifier "param_2")) () ")"))) (compound_statement "{\n  int iVar1;\n  int iVar2;\n  int iVar3;\n  \n  iVar3 = 0;\n  iVar1 = (*(code *)PTR_index234_00111430)(*(undefined4 *)(param_1 + 0x124),0);\n  while (iVar1 != 0) {\n    iVar2 = *(int *)(iVar1 + 0xc);\n    if (iVar2 == 2) {\n      if (param_2 == 0) {\n        FUN_000594d0(iVar1);\n      }\n    }\n    else if (iVar2 == 3) {\n      pfd_override_throttle(*(undefined4 *)(iVar1 + 0x4c),param_2);\n    }\n    else if (iVar2 == 1) {\n      (*(code *)PTR_x11_override_throttle_001118ec)(*(undefined4 *)(iVar1 + 0x4c),param_2);\n    }\n    iVar3 = iVar3 + 1;\n    iVar1 = (*(code *)PTR_index234_00111430)(*(undefined4 *)(param_1 + 0x124),iVar3);\n  }\n  return;\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" (identifier "iVar3") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar1 = (*(code *)PTR_index234_00111430)(*(undefined4 *)(param_1 + 0x124),0);" (assignment_expression "iVar1 = (*(code *)PTR_index234_00111430)(*(undefined4 *)(param_1 + 0x124),0)" (identifier "iVar1") (= "=") (call_expression "(*(code *)PTR_index234_00111430)(*(undefined4 *)(param_1 + 0x124),0)" (parenthesized_expression "(*(code *)PTR_index234_00111430)" (( "(") (pointer_expression "*(code *)PTR_index234_00111430" (* "*") (cast_expression "(code *)PTR_index234_00111430" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_index234_00111430"))) () ")")) (argument_list "(*(undefined4 *)(param_1 + 0x124),0)" (( "(") (pointer_expression "*(undefined4 *)(param_1 + 0x124)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x124)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x124)" (( "(") (binary_expression "param_1 + 0x124" (identifier "param_1") (+ "+") (number_literal "0x124")) () ")")))) (, ",") (number_literal "0") () ")")))) (; ";")) (while_statement "while (iVar1 != 0) {\n    iVar2 = *(int *)(iVar1 + 0xc);\n    if (iVar2 == 2) {\n      if (param_2 == 0) {\n        FUN_000594d0(iVar1);\n      }\n    }\n    else if (iVar2 == 3) {\n      pfd_override_throttle(*(undefined4 *)(iVar1 + 0x4c),param_2);\n    }\n    else if (iVar2 == 1) {\n      (*(code *)PTR_x11_override_throttle_001118ec)(*(undefined4 *)(iVar1 + 0x4c),param_2);\n    }\n    iVar3 = iVar3 + 1;\n    iVar1 = (*(code *)PTR_index234_00111430)(*(undefined4 *)(param_1 + 0x124),iVar3);\n  }" (while "while") (parenthesized_expression "(iVar1 != 0)" (( "(") (binary_expression "iVar1 != 0" (identifier "iVar1") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    iVar2 = *(int *)(iVar1 + 0xc);\n    if (iVar2 == 2) {\n      if (param_2 == 0) {\n        FUN_000594d0(iVar1);\n      }\n    }\n    else if (iVar2 == 3) {\n      pfd_override_throttle(*(undefined4 *)(iVar1 + 0x4c),param_2);\n    }\n    else if (iVar2 == 1) {\n      (*(code *)PTR_x11_override_throttle_001118ec)(*(undefined4 *)(iVar1 + 0x4c),param_2);\n    }\n    iVar3 = iVar3 + 1;\n    iVar1 = (*(code *)PTR_index234_00111430)(*(undefined4 *)(param_1 + 0x124),iVar3);\n  }" ({ "{") (expression_statement "iVar2 = *(int *)(iVar1 + 0xc);" (assignment_expression "iVar2 = *(int *)(iVar1 + 0xc)" (identifier "iVar2") (= "=") (pointer_expression "*(int *)(iVar1 + 0xc)" (* "*") (cast_expression "(int *)(iVar1 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0xc)" (( "(") (binary_expression "iVar1 + 0xc" (identifier "iVar1") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (if_statement "if (iVar2 == 2) {\n      if (param_2 == 0) {\n        FUN_000594d0(iVar1);\n      }\n    }\n    else if (iVar2 == 3) {\n      pfd_override_throttle(*(undefined4 *)(iVar1 + 0x4c),param_2);\n    }\n    else if (iVar2 == 1) {\n      (*(code *)PTR_x11_override_throttle_001118ec)(*(undefined4 *)(iVar1 + 0x4c),param_2);\n    }" (if "if") (parenthesized_expression "(iVar2 == 2)" (( "(") (binary_expression "iVar2 == 2" (identifier "iVar2") (== "==") (number_literal "2")) () ")")) (compound_statement "{\n      if (param_2 == 0) {\n        FUN_000594d0(iVar1);\n      }\n    }" ({ "{") (if_statement "if (param_2 == 0) {\n        FUN_000594d0(iVar1);\n      }" (if "if") (parenthesized_expression "(param_2 == 0)" (( "(") (binary_expression "param_2 == 0" (identifier "param_2") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        FUN_000594d0(iVar1);\n      }" ({ "{") (expression_statement "FUN_000594d0(iVar1);" (call_expression "FUN_000594d0(iVar1)" (identifier "FUN_000594d0") (argument_list "(iVar1)" (( "(") (identifier "iVar1") () ")"))) (; ";")) (} "}"))) (} "}")) (else_clause "else if (iVar2 == 3) {\n      pfd_override_throttle(*(undefined4 *)(iVar1 + 0x4c),param_2);\n    }\n    else if (iVar2 == 1) {\n      (*(code *)PTR_x11_override_throttle_001118ec)(*(undefined4 *)(iVar1 + 0x4c),param_2);\n    }" (else "else") (if_statement "if (iVar2 == 3) {\n      pfd_override_throttle(*(undefined4 *)(iVar1 + 0x4c),param_2);\n    }\n    else if (iVar2 == 1) {\n      (*(code *)PTR_x11_override_throttle_001118ec)(*(undefined4 *)(iVar1 + 0x4c),param_2);\n    }" (if "if") (parenthesized_expression "(iVar2 == 3)" (( "(") (binary_expression "iVar2 == 3" (identifier "iVar2") (== "==") (number_literal "3")) () ")")) (compound_statement "{\n      pfd_override_throttle(*(undefined4 *)(iVar1 + 0x4c),param_2);\n    }" ({ "{") (expression_statement "pfd_override_throttle(*(undefined4 *)(iVar1 + 0x4c),param_2);" (call_expression "pfd_override_throttle(*(undefined4 *)(iVar1 + 0x4c),param_2)" (identifier "pfd_override_throttle") (argument_list "(*(undefined4 *)(iVar1 + 0x4c),param_2)" (( "(") (pointer_expression "*(undefined4 *)(iVar1 + 0x4c)" (* "*") (cast_expression "(undefined4 *)(iVar1 + 0x4c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x4c)" (( "(") (binary_expression "iVar1 + 0x4c" (identifier "iVar1") (+ "+") (number_literal "0x4c")) () ")")))) (, ",") (identifier "param_2") () ")"))) (; ";")) (} "}")) (else_clause "else if (iVar2 == 1) {\n      (*(code *)PTR_x11_override_throttle_001118ec)(*(undefined4 *)(iVar1 + 0x4c),param_2);\n    }" (else "else") (if_statement "if (iVar2 == 1) {\n      (*(code *)PTR_x11_override_throttle_001118ec)(*(undefined4 *)(iVar1 + 0x4c),param_2);\n    }" (if "if") (parenthesized_expression "(iVar2 == 1)" (( "(") (binary_expression "iVar2 == 1" (identifier "iVar2") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n      (*(code *)PTR_x11_override_throttle_001118ec)(*(undefined4 *)(iVar1 + 0x4c),param_2);\n    }" ({ "{") (expression_statement "(*(code *)PTR_x11_override_throttle_001118ec)(*(undefined4 *)(iVar1 + 0x4c),param_2);" (call_expression "(*(code *)PTR_x11_override_throttle_001118ec)(*(undefined4 *)(iVar1 + 0x4c),param_2)" (parenthesized_expression "(*(code *)PTR_x11_override_throttle_001118ec)" (( "(") (pointer_expression "*(code *)PTR_x11_override_throttle_001118ec" (* "*") (cast_expression "(code *)PTR_x11_override_throttle_001118ec" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_x11_override_throttle_001118ec"))) () ")")) (argument_list "(*(undefined4 *)(iVar1 + 0x4c),param_2)" (( "(") (pointer_expression "*(undefined4 *)(iVar1 + 0x4c)" (* "*") (cast_expression "(undefined4 *)(iVar1 + 0x4c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x4c)" (( "(") (binary_expression "iVar1 + 0x4c" (identifier "iVar1") (+ "+") (number_literal "0x4c")) () ")")))) (, ",") (identifier "param_2") () ")"))) (; ";")) (} "}"))))))) (expression_statement "iVar3 = iVar3 + 1;" (assignment_expression "iVar3 = iVar3 + 1" (identifier "iVar3") (= "=") (binary_expression "iVar3 + 1" (identifier "iVar3") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar1 = (*(code *)PTR_index234_00111430)(*(undefined4 *)(param_1 + 0x124),iVar3);" (assignment_expression "iVar1 = (*(code *)PTR_index234_00111430)(*(undefined4 *)(param_1 + 0x124),iVar3)" (identifier "iVar1") (= "=") (call_expression "(*(code *)PTR_index234_00111430)(*(undefined4 *)(param_1 + 0x124),iVar3)" (parenthesized_expression "(*(code *)PTR_index234_00111430)" (( "(") (pointer_expression "*(code *)PTR_index234_00111430" (* "*") (cast_expression "(code *)PTR_index234_00111430" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_index234_00111430"))) () ")")) (argument_list "(*(undefined4 *)(param_1 + 0x124),iVar3)" (( "(") (pointer_expression "*(undefined4 *)(param_1 + 0x124)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x124)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x124)" (( "(") (binary_expression "param_1 + 0x124" (identifier "param_1") (+ "+") (number_literal "0x124")) () ")")))) (, ",") (identifier "iVar3") () ")")))) (; ";")) (} "}"))) (return_statement "return;" (return "return") (; ";")) (} "}")))

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

void function_1(type_1 ssh,int var_4,int bufsize)

{
  type_2 *var_2;
  int var_3;
  int var_7;
  int var_1;
  
  var_7 = 0;
  var_2 = (type_2 *)(**(type_3 **)(var_1 + 0xb7d10))(ssh->channels,0);
  while (var_2 != (type_2 *)0x0) {
    var_3 = var_2->type;
    if (var_3 == 2) {
      if (var_4 == 0) {
        var_5(var_2);
      }
    }
    else if (var_3 == 3) {
      var_6((type_4 *)(var_2->u).a.inbuffer.head,var_4);
    }
    else if (var_3 == 1) {
      (**(type_3 **)(var_1 + 0xb81cc))((var_2->u).a.inbuffer.head,var_4);
    }
    var_7 = var_7 + 1;
    var_2 = (type_2 *)(**(type_3 **)(var_1 + 0xb7d10))(ssh->channels,var_7);
  }
  return;
}


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

void MASKED(int param_1,int param_2)

{
  int iVar1;
  int iVar2;
  int iVar3;
  
  iVar3 = 0;
  iVar1 = (*(code *)PTR_index234_00111430)(*(undefined4 *)(param_1 + 0x124),0);
  while (iVar1 != 0) {
    iVar2 = *(int *)(iVar1 + 0xc);
    if (iVar2 == 2) {
      if (param_2 == 0) {
        FUN_000594d0(iVar1);
      }
    }
    else if (iVar2 == 3) {
      pfd_override_throttle(*(undefined4 *)(iVar1 + 0x4c),param_2);
    }
    else if (iVar2 == 1) {
      (*(code *)PTR_x11_override_throttle_001118ec)(*(undefined4 *)(iVar1 + 0x4c),param_2);
    }
    iVar3 = iVar3 + 1;
    iVar1 = (*(code *)PTR_index234_00111430)(*(undefined4 *)(param_1 + 0x124),iVar3);
  }
  return;
}

