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

void ssh2_msg_channel_window_adjust(Ssh_conflict ssh,Packet *pktin)

{
  ssh_channel *c;
  ulong uVar1;
  int iVar2;
  uint uVar3;
  bufchain_granule *pbVar4;
  code *UNRECOVERED_JUMPTABLE;
  
  c = ssh_channel_msg(ssh,pktin);
  if ((c != (ssh_channel *)0x0) && ((c->closes & 1U) == 0)) {
    uVar1 = ssh_pkt_getuint32(pktin);
    uVar3 = c->closes;
    (c->v).v2.remwindow = (c->v).v2.remwindow + uVar1;
    if (((uVar3 & 1) == 0) && (iVar2 = ssh2_try_send(c), iVar2 == 0)) {
      iVar2 = c->type;
      if (iVar2 == 2) {
        ssh_agentf_try_forward(c);
        return;
      }
      if (iVar2 == 3) {
        pbVar4 = (c->u).a.inbuffer.head;
        UNRECOVERED_JUMPTABLE = (code *)PTR_pfd_unthrottle_000b07d4;
      }
      else {
        if (iVar2 != 1) {
          return;
        }
        pbVar4 = (c->u).a.inbuffer.head;
        UNRECOVERED_JUMPTABLE = (code *)PTR_x11_unthrottle_000b07d0;
      }
                    /* WARNING: Could not recover jumptable at 0x0004a79c. Too many branches */
                    /* WARNING: Treating indirect jump as call */
      (*UNRECOVERED_JUMPTABLE)(pbVar4);
      return;
    }
  }
  return;
}



void FUN_0004a6c8(undefined4 param_1,undefined4 param_2)

{
  int iVar1;
  int iVar2;
  undefined4 uVar3;
  code *UNRECOVERED_JUMPTABLE;
  
  iVar1 = FUN_000470e0();
  if ((iVar1 != 0) && ((*(uint *)(iVar1 + 0x14) & 1) == 0)) {
    iVar2 = FUN_00036188(param_2);
    *(int *)(iVar1 + 0x2c) = *(int *)(iVar1 + 0x2c) + iVar2;
    if (((*(uint *)(iVar1 + 0x14) & 1) == 0) && (iVar2 = FUN_000482d8(iVar1), iVar2 == 0)) {
      iVar2 = *(int *)(iVar1 + 0xc);
      if (iVar2 == 2) {
        FUN_00048600(iVar1);
        return;
      }
      if (iVar2 == 3) {
        uVar3 = *(undefined4 *)(iVar1 + 0x4c);
        UNRECOVERED_JUMPTABLE = (code *)PTR_pfd_unthrottle_000b07d4;
      }
      else {
        if (iVar2 != 1) {
          return;
        }
        uVar3 = *(undefined4 *)(iVar1 + 0x4c);
        UNRECOVERED_JUMPTABLE = (code *)PTR_x11_unthrottle_000b07d0;
      }
                    /* WARNING: Could not recover jumptable at 0x0004a79c. Too many branches */
                    /* WARNING: Treating indirect jump as call */
      (*UNRECOVERED_JUMPTABLE)(uVar3);
      return;
    }
  }
  return;
}


lui gp,0x7
addiu gp,gp,-0x2578
addu gp,gp,t9
lw t9,-0x7b0c(gp)
addiu sp,sp,-0x28
addiu t9,t9,0x70e0
sw gp,0x10(sp)
sw s1,0x20(sp)
or s1,a1,zero
sw ra,0x24(sp)
bal 0x000470e0
_sw s0,0x1c(sp)
beq v0,zero,0x0004a714
_lw gp,0x10(sp)
or s0,v0,zero
lw v0,0x14(v0)
andi v0,v0,0x1
beq v0,zero,0x0004a728
_lw t9,-0x7c8c(gp)
lw ra,0x24(sp)
lw s1,0x20(sp)
lw s0,0x1c(sp)
jr ra
_addiu sp,sp,0x28
addiu t9,t9,0x6188
bal 0x00036188
_or a0,s1,zero
lw a0,0x2c(s0)
lw v1,0x14(s0)
lw gp,0x10(sp)
addu v0,a0,v0
andi v1,v1,0x1
bne v1,zero,0x0004a714
_sw v0,0x2c(s0)
lw t9,-0x7ac4(gp)
addiu t9,t9,-0x7d28
bal 0x000482d8
_or a0,s0,zero
bne v0,zero,0x0004a714
_lw gp,0x10(sp)
lw v0,0xc(s0)
li v1,0x2
beq v0,v1,0x0004a7b0
_li v1,0x3
beq v0,v1,0x0004a7a4
_li v1,0x1
bne v0,v1,0x0004a718
_lw ra,0x24(sp)
lw a0,0x4c(s0)
lw t9,-0x7980(gp)
lw ra,0x24(sp)
lw s1,0x20(sp)
lw s0,0x1c(sp)
jr t9
_addiu sp,sp,0x28
lw a0,0x4c(s0)
b 0x0004a790
_lw t9,-0x797c(gp)
lw t9,-0x7ac4(gp)
or a0,s0,zero
lw ra,0x24(sp)
lw s1,0x20(sp)
lw s0,0x1c(sp)
addiu t9,t9,-0x7a00
b 0x00048600
_addiu sp,sp,0x28
(translation_unit "void FUN_0004a6c8(undefined4 param_1,undefined4 param_2)\n\n{\n  int iVar1;\n  int iVar2;\n  undefined4 uVar3;\n  code *UNRECOVERED_JUMPTABLE;\n  \n  iVar1 = FUN_000470e0();\n  if ((iVar1 != 0) && ((*(uint *)(iVar1 + 0x14) & 1) == 0)) {\n    iVar2 = FUN_00036188(param_2);\n    *(int *)(iVar1 + 0x2c) = *(int *)(iVar1 + 0x2c) + iVar2;\n    if (((*(uint *)(iVar1 + 0x14) & 1) == 0) && (iVar2 = FUN_000482d8(iVar1), iVar2 == 0)) {\n      iVar2 = *(int *)(iVar1 + 0xc);\n      if (iVar2 == 2) {\n        FUN_00048600(iVar1);\n        return;\n      }\n      if (iVar2 == 3) {\n        uVar3 = *(undefined4 *)(iVar1 + 0x4c);\n        UNRECOVERED_JUMPTABLE = (code *)PTR_pfd_unthrottle_000b07d4;\n      }\n      else {\n        if (iVar2 != 1) {\n          return;\n        }\n        uVar3 = *(undefined4 *)(iVar1 + 0x4c);\n        UNRECOVERED_JUMPTABLE = (code *)PTR_x11_unthrottle_000b07d0;\n      }\n                    /* WARNING: Could not recover jumptable at 0x0004a79c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      (*UNRECOVERED_JUMPTABLE)(uVar3);\n      return;\n    }\n  }\n  return;\n}\n\n" (function_definition "void FUN_0004a6c8(undefined4 param_1,undefined4 param_2)\n\n{\n  int iVar1;\n  int iVar2;\n  undefined4 uVar3;\n  code *UNRECOVERED_JUMPTABLE;\n  \n  iVar1 = FUN_000470e0();\n  if ((iVar1 != 0) && ((*(uint *)(iVar1 + 0x14) & 1) == 0)) {\n    iVar2 = FUN_00036188(param_2);\n    *(int *)(iVar1 + 0x2c) = *(int *)(iVar1 + 0x2c) + iVar2;\n    if (((*(uint *)(iVar1 + 0x14) & 1) == 0) && (iVar2 = FUN_000482d8(iVar1), iVar2 == 0)) {\n      iVar2 = *(int *)(iVar1 + 0xc);\n      if (iVar2 == 2) {\n        FUN_00048600(iVar1);\n        return;\n      }\n      if (iVar2 == 3) {\n        uVar3 = *(undefined4 *)(iVar1 + 0x4c);\n        UNRECOVERED_JUMPTABLE = (code *)PTR_pfd_unthrottle_000b07d4;\n      }\n      else {\n        if (iVar2 != 1) {\n          return;\n        }\n        uVar3 = *(undefined4 *)(iVar1 + 0x4c);\n        UNRECOVERED_JUMPTABLE = (code *)PTR_x11_unthrottle_000b07d0;\n      }\n                    /* WARNING: Could not recover jumptable at 0x0004a79c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      (*UNRECOVERED_JUMPTABLE)(uVar3);\n      return;\n    }\n  }\n  return;\n}" primitive_type (function_declarator "FUN_0004a6c8(undefined4 param_1,undefined4 param_2)" identifier (parameter_list "(undefined4 param_1,undefined4 param_2)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "undefined4 param_2" type_identifier identifier) ))) (compound_statement "{\n  int iVar1;\n  int iVar2;\n  undefined4 uVar3;\n  code *UNRECOVERED_JUMPTABLE;\n  \n  iVar1 = FUN_000470e0();\n  if ((iVar1 != 0) && ((*(uint *)(iVar1 + 0x14) & 1) == 0)) {\n    iVar2 = FUN_00036188(param_2);\n    *(int *)(iVar1 + 0x2c) = *(int *)(iVar1 + 0x2c) + iVar2;\n    if (((*(uint *)(iVar1 + 0x14) & 1) == 0) && (iVar2 = FUN_000482d8(iVar1), iVar2 == 0)) {\n      iVar2 = *(int *)(iVar1 + 0xc);\n      if (iVar2 == 2) {\n        FUN_00048600(iVar1);\n        return;\n      }\n      if (iVar2 == 3) {\n        uVar3 = *(undefined4 *)(iVar1 + 0x4c);\n        UNRECOVERED_JUMPTABLE = (code *)PTR_pfd_unthrottle_000b07d4;\n      }\n      else {\n        if (iVar2 != 1) {\n          return;\n        }\n        uVar3 = *(undefined4 *)(iVar1 + 0x4c);\n        UNRECOVERED_JUMPTABLE = (code *)PTR_x11_unthrottle_000b07d0;\n      }\n                    /* WARNING: Could not recover jumptable at 0x0004a79c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      (*UNRECOVERED_JUMPTABLE)(uVar3);\n      return;\n    }\n  }\n  return;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (declaration "code *UNRECOVERED_JUMPTABLE;" type_identifier (pointer_declarator "*UNRECOVERED_JUMPTABLE" * identifier) ;) (expression_statement "iVar1 = FUN_000470e0();" (assignment_expression "iVar1 = FUN_000470e0()" identifier = (call_expression "FUN_000470e0()" identifier (argument_list "()" ( )))) ;) (if_statement "if ((iVar1 != 0) && ((*(uint *)(iVar1 + 0x14) & 1) == 0)) {\n    iVar2 = FUN_00036188(param_2);\n    *(int *)(iVar1 + 0x2c) = *(int *)(iVar1 + 0x2c) + iVar2;\n    if (((*(uint *)(iVar1 + 0x14) & 1) == 0) && (iVar2 = FUN_000482d8(iVar1), iVar2 == 0)) {\n      iVar2 = *(int *)(iVar1 + 0xc);\n      if (iVar2 == 2) {\n        FUN_00048600(iVar1);\n        return;\n      }\n      if (iVar2 == 3) {\n        uVar3 = *(undefined4 *)(iVar1 + 0x4c);\n        UNRECOVERED_JUMPTABLE = (code *)PTR_pfd_unthrottle_000b07d4;\n      }\n      else {\n        if (iVar2 != 1) {\n          return;\n        }\n        uVar3 = *(undefined4 *)(iVar1 + 0x4c);\n        UNRECOVERED_JUMPTABLE = (code *)PTR_x11_unthrottle_000b07d0;\n      }\n                    /* WARNING: Could not recover jumptable at 0x0004a79c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      (*UNRECOVERED_JUMPTABLE)(uVar3);\n      return;\n    }\n  }" if (parenthesized_expression "((iVar1 != 0) && ((*(uint *)(iVar1 + 0x14) & 1) == 0))" ( (binary_expression "(iVar1 != 0) && ((*(uint *)(iVar1 + 0x14) & 1) == 0)" (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) && (parenthesized_expression "((*(uint *)(iVar1 + 0x14) & 1) == 0)" ( (binary_expression "(*(uint *)(iVar1 + 0x14) & 1) == 0" (parenthesized_expression "(*(uint *)(iVar1 + 0x14) & 1)" ( (binary_expression "*(uint *)(iVar1 + 0x14) & 1" (pointer_expression "*(uint *)(iVar1 + 0x14)" * (cast_expression "(uint *)(iVar1 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x14)" ( (binary_expression "iVar1 + 0x14" identifier + number_literal) )))) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n    iVar2 = FUN_00036188(param_2);\n    *(int *)(iVar1 + 0x2c) = *(int *)(iVar1 + 0x2c) + iVar2;\n    if (((*(uint *)(iVar1 + 0x14) & 1) == 0) && (iVar2 = FUN_000482d8(iVar1), iVar2 == 0)) {\n      iVar2 = *(int *)(iVar1 + 0xc);\n      if (iVar2 == 2) {\n        FUN_00048600(iVar1);\n        return;\n      }\n      if (iVar2 == 3) {\n        uVar3 = *(undefined4 *)(iVar1 + 0x4c);\n        UNRECOVERED_JUMPTABLE = (code *)PTR_pfd_unthrottle_000b07d4;\n      }\n      else {\n        if (iVar2 != 1) {\n          return;\n        }\n        uVar3 = *(undefined4 *)(iVar1 + 0x4c);\n        UNRECOVERED_JUMPTABLE = (code *)PTR_x11_unthrottle_000b07d0;\n      }\n                    /* WARNING: Could not recover jumptable at 0x0004a79c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      (*UNRECOVERED_JUMPTABLE)(uVar3);\n      return;\n    }\n  }" { (expression_statement "iVar2 = FUN_00036188(param_2);" (assignment_expression "iVar2 = FUN_00036188(param_2)" identifier = (call_expression "FUN_00036188(param_2)" identifier (argument_list "(param_2)" ( identifier )))) ;) (expression_statement "*(int *)(iVar1 + 0x2c) = *(int *)(iVar1 + 0x2c) + iVar2;" (assignment_expression "*(int *)(iVar1 + 0x2c) = *(int *)(iVar1 + 0x2c) + iVar2" (pointer_expression "*(int *)(iVar1 + 0x2c)" * (cast_expression "(int *)(iVar1 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x2c)" ( (binary_expression "iVar1 + 0x2c" identifier + number_literal) )))) = (binary_expression "*(int *)(iVar1 + 0x2c) + iVar2" (pointer_expression "*(int *)(iVar1 + 0x2c)" * (cast_expression "(int *)(iVar1 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x2c)" ( (binary_expression "iVar1 + 0x2c" identifier + number_literal) )))) + identifier)) ;) (if_statement "if (((*(uint *)(iVar1 + 0x14) & 1) == 0) && (iVar2 = FUN_000482d8(iVar1), iVar2 == 0)) {\n      iVar2 = *(int *)(iVar1 + 0xc);\n      if (iVar2 == 2) {\n        FUN_00048600(iVar1);\n        return;\n      }\n      if (iVar2 == 3) {\n        uVar3 = *(undefined4 *)(iVar1 + 0x4c);\n        UNRECOVERED_JUMPTABLE = (code *)PTR_pfd_unthrottle_000b07d4;\n      }\n      else {\n        if (iVar2 != 1) {\n          return;\n        }\n        uVar3 = *(undefined4 *)(iVar1 + 0x4c);\n        UNRECOVERED_JUMPTABLE = (code *)PTR_x11_unthrottle_000b07d0;\n      }\n                    /* WARNING: Could not recover jumptable at 0x0004a79c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      (*UNRECOVERED_JUMPTABLE)(uVar3);\n      return;\n    }" if (parenthesized_expression "(((*(uint *)(iVar1 + 0x14) & 1) == 0) && (iVar2 = FUN_000482d8(iVar1), iVar2 == 0))" ( (binary_expression "((*(uint *)(iVar1 + 0x14) & 1) == 0) && (iVar2 = FUN_000482d8(iVar1), iVar2 == 0)" (parenthesized_expression "((*(uint *)(iVar1 + 0x14) & 1) == 0)" ( (binary_expression "(*(uint *)(iVar1 + 0x14) & 1) == 0" (parenthesized_expression "(*(uint *)(iVar1 + 0x14) & 1)" ( (binary_expression "*(uint *)(iVar1 + 0x14) & 1" (pointer_expression "*(uint *)(iVar1 + 0x14)" * (cast_expression "(uint *)(iVar1 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x14)" ( (binary_expression "iVar1 + 0x14" identifier + number_literal) )))) & number_literal) )) == number_literal) )) && (parenthesized_expression "(iVar2 = FUN_000482d8(iVar1), iVar2 == 0)" ( (comma_expression "iVar2 = FUN_000482d8(iVar1), iVar2 == 0" (assignment_expression "iVar2 = FUN_000482d8(iVar1)" identifier = (call_expression "FUN_000482d8(iVar1)" identifier (argument_list "(iVar1)" ( identifier )))) , (binary_expression "iVar2 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n      iVar2 = *(int *)(iVar1 + 0xc);\n      if (iVar2 == 2) {\n        FUN_00048600(iVar1);\n        return;\n      }\n      if (iVar2 == 3) {\n        uVar3 = *(undefined4 *)(iVar1 + 0x4c);\n        UNRECOVERED_JUMPTABLE = (code *)PTR_pfd_unthrottle_000b07d4;\n      }\n      else {\n        if (iVar2 != 1) {\n          return;\n        }\n        uVar3 = *(undefined4 *)(iVar1 + 0x4c);\n        UNRECOVERED_JUMPTABLE = (code *)PTR_x11_unthrottle_000b07d0;\n      }\n                    /* WARNING: Could not recover jumptable at 0x0004a79c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      (*UNRECOVERED_JUMPTABLE)(uVar3);\n      return;\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        FUN_00048600(iVar1);\n        return;\n      }" if (parenthesized_expression "(iVar2 == 2)" ( (binary_expression "iVar2 == 2" identifier == number_literal) )) (compound_statement "{\n        FUN_00048600(iVar1);\n        return;\n      }" { (expression_statement "FUN_00048600(iVar1);" (call_expression "FUN_00048600(iVar1)" identifier (argument_list "(iVar1)" ( identifier ))) ;) (return_statement "return;" return ;) })) (if_statement "if (iVar2 == 3) {\n        uVar3 = *(undefined4 *)(iVar1 + 0x4c);\n        UNRECOVERED_JUMPTABLE = (code *)PTR_pfd_unthrottle_000b07d4;\n      }\n      else {\n        if (iVar2 != 1) {\n          return;\n        }\n        uVar3 = *(undefined4 *)(iVar1 + 0x4c);\n        UNRECOVERED_JUMPTABLE = (code *)PTR_x11_unthrottle_000b07d0;\n      }" if (parenthesized_expression "(iVar2 == 3)" ( (binary_expression "iVar2 == 3" identifier == number_literal) )) (compound_statement "{\n        uVar3 = *(undefined4 *)(iVar1 + 0x4c);\n        UNRECOVERED_JUMPTABLE = (code *)PTR_pfd_unthrottle_000b07d4;\n      }" { (expression_statement "uVar3 = *(undefined4 *)(iVar1 + 0x4c);" (assignment_expression "uVar3 = *(undefined4 *)(iVar1 + 0x4c)" identifier = (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) ))))) ;) (expression_statement "UNRECOVERED_JUMPTABLE = (code *)PTR_pfd_unthrottle_000b07d4;" (assignment_expression "UNRECOVERED_JUMPTABLE = (code *)PTR_pfd_unthrottle_000b07d4" identifier = (cast_expression "(code *)PTR_pfd_unthrottle_000b07d4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) }) (else_clause "else {\n        if (iVar2 != 1) {\n          return;\n        }\n        uVar3 = *(undefined4 *)(iVar1 + 0x4c);\n        UNRECOVERED_JUMPTABLE = (code *)PTR_x11_unthrottle_000b07d0;\n      }" else (compound_statement "{\n        if (iVar2 != 1) {\n          return;\n        }\n        uVar3 = *(undefined4 *)(iVar1 + 0x4c);\n        UNRECOVERED_JUMPTABLE = (code *)PTR_x11_unthrottle_000b07d0;\n      }" { (if_statement "if (iVar2 != 1) {\n          return;\n        }" if (parenthesized_expression "(iVar2 != 1)" ( (binary_expression "iVar2 != 1" identifier != number_literal) )) (compound_statement "{\n          return;\n        }" { (return_statement "return;" return ;) })) (expression_statement "uVar3 = *(undefined4 *)(iVar1 + 0x4c);" (assignment_expression "uVar3 = *(undefined4 *)(iVar1 + 0x4c)" identifier = (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) ))))) ;) (expression_statement "UNRECOVERED_JUMPTABLE = (code *)PTR_x11_unthrottle_000b07d0;" (assignment_expression "UNRECOVERED_JUMPTABLE = (code *)PTR_x11_unthrottle_000b07d0" identifier = (cast_expression "(code *)PTR_x11_unthrottle_000b07d0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) }))) comment comment (expression_statement "(*UNRECOVERED_JUMPTABLE)(uVar3);" (call_expression "(*UNRECOVERED_JUMPTABLE)(uVar3)" (parenthesized_expression "(*UNRECOVERED_JUMPTABLE)" ( (pointer_expression "*UNRECOVERED_JUMPTABLE" * identifier) )) (argument_list "(uVar3)" ( identifier ))) ;) (return_statement "return;" return ;) })) })) (return_statement "return;" return ;) })))
(translation_unit "/* WARNING: Enum "anon_enum_32": Some values do not have unique names */\n\nvoid ssh2_msg_channel_window_adjust(Ssh_conflict ssh,Packet *pktin)\n\n{\n  ssh_channel *c;\n  ulong uVar1;\n  int iVar2;\n  uint uVar3;\n  bufchain_granule *pbVar4;\n  code *UNRECOVERED_JUMPTABLE;\n  \n  c = ssh_channel_msg(ssh,pktin);\n  if ((c != (ssh_channel *)0x0) && ((c->closes & 1U) == 0)) {\n    uVar1 = ssh_pkt_getuint32(pktin);\n    uVar3 = c->closes;\n    (c->v).v2.remwindow = (c->v).v2.remwindow + uVar1;\n    if (((uVar3 & 1) == 0) && (iVar2 = ssh2_try_send(c), iVar2 == 0)) {\n      iVar2 = c->type;\n      if (iVar2 == 2) {\n        ssh_agentf_try_forward(c);\n        return;\n      }\n      if (iVar2 == 3) {\n        pbVar4 = (c->u).a.inbuffer.head;\n        UNRECOVERED_JUMPTABLE = (code *)PTR_pfd_unthrottle_000b07d4;\n      }\n      else {\n        if (iVar2 != 1) {\n          return;\n        }\n        pbVar4 = (c->u).a.inbuffer.head;\n        UNRECOVERED_JUMPTABLE = (code *)PTR_x11_unthrottle_000b07d0;\n      }\n                    /* WARNING: Could not recover jumptable at 0x0004a79c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      (*UNRECOVERED_JUMPTABLE)(pbVar4);\n      return;\n    }\n  }\n  return;\n}\n\n" comment (function_definition "void ssh2_msg_channel_window_adjust(Ssh_conflict ssh,Packet *pktin)\n\n{\n  ssh_channel *c;\n  ulong uVar1;\n  int iVar2;\n  uint uVar3;\n  bufchain_granule *pbVar4;\n  code *UNRECOVERED_JUMPTABLE;\n  \n  c = ssh_channel_msg(ssh,pktin);\n  if ((c != (ssh_channel *)0x0) && ((c->closes & 1U) == 0)) {\n    uVar1 = ssh_pkt_getuint32(pktin);\n    uVar3 = c->closes;\n    (c->v).v2.remwindow = (c->v).v2.remwindow + uVar1;\n    if (((uVar3 & 1) == 0) && (iVar2 = ssh2_try_send(c), iVar2 == 0)) {\n      iVar2 = c->type;\n      if (iVar2 == 2) {\n        ssh_agentf_try_forward(c);\n        return;\n      }\n      if (iVar2 == 3) {\n        pbVar4 = (c->u).a.inbuffer.head;\n        UNRECOVERED_JUMPTABLE = (code *)PTR_pfd_unthrottle_000b07d4;\n      }\n      else {\n        if (iVar2 != 1) {\n          return;\n        }\n        pbVar4 = (c->u).a.inbuffer.head;\n        UNRECOVERED_JUMPTABLE = (code *)PTR_x11_unthrottle_000b07d0;\n      }\n                    /* WARNING: Could not recover jumptable at 0x0004a79c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      (*UNRECOVERED_JUMPTABLE)(pbVar4);\n      return;\n    }\n  }\n  return;\n}" primitive_type (function_declarator "ssh2_msg_channel_window_adjust(Ssh_conflict ssh,Packet *pktin)" identifier (parameter_list "(Ssh_conflict ssh,Packet *pktin)" ( (parameter_declaration "Ssh_conflict ssh" type_identifier identifier) , (parameter_declaration "Packet *pktin" type_identifier (pointer_declarator "*pktin" * identifier)) ))) (compound_statement "{\n  ssh_channel *c;\n  ulong uVar1;\n  int iVar2;\n  uint uVar3;\n  bufchain_granule *pbVar4;\n  code *UNRECOVERED_JUMPTABLE;\n  \n  c = ssh_channel_msg(ssh,pktin);\n  if ((c != (ssh_channel *)0x0) && ((c->closes & 1U) == 0)) {\n    uVar1 = ssh_pkt_getuint32(pktin);\n    uVar3 = c->closes;\n    (c->v).v2.remwindow = (c->v).v2.remwindow + uVar1;\n    if (((uVar3 & 1) == 0) && (iVar2 = ssh2_try_send(c), iVar2 == 0)) {\n      iVar2 = c->type;\n      if (iVar2 == 2) {\n        ssh_agentf_try_forward(c);\n        return;\n      }\n      if (iVar2 == 3) {\n        pbVar4 = (c->u).a.inbuffer.head;\n        UNRECOVERED_JUMPTABLE = (code *)PTR_pfd_unthrottle_000b07d4;\n      }\n      else {\n        if (iVar2 != 1) {\n          return;\n        }\n        pbVar4 = (c->u).a.inbuffer.head;\n        UNRECOVERED_JUMPTABLE = (code *)PTR_x11_unthrottle_000b07d0;\n      }\n                    /* WARNING: Could not recover jumptable at 0x0004a79c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      (*UNRECOVERED_JUMPTABLE)(pbVar4);\n      return;\n    }\n  }\n  return;\n}" { (declaration "ssh_channel *c;" type_identifier (pointer_declarator "*c" * identifier) ;) (declaration "ulong uVar1;" type_identifier identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "bufchain_granule *pbVar4;" type_identifier (pointer_declarator "*pbVar4" * identifier) ;) (declaration "code *UNRECOVERED_JUMPTABLE;" type_identifier (pointer_declarator "*UNRECOVERED_JUMPTABLE" * identifier) ;) (expression_statement "c = ssh_channel_msg(ssh,pktin);" (assignment_expression "c = ssh_channel_msg(ssh,pktin)" identifier = (call_expression "ssh_channel_msg(ssh,pktin)" identifier (argument_list "(ssh,pktin)" ( identifier , identifier )))) ;) (if_statement "if ((c != (ssh_channel *)0x0) && ((c->closes & 1U) == 0)) {\n    uVar1 = ssh_pkt_getuint32(pktin);\n    uVar3 = c->closes;\n    (c->v).v2.remwindow = (c->v).v2.remwindow + uVar1;\n    if (((uVar3 & 1) == 0) && (iVar2 = ssh2_try_send(c), iVar2 == 0)) {\n      iVar2 = c->type;\n      if (iVar2 == 2) {\n        ssh_agentf_try_forward(c);\n        return;\n      }\n      if (iVar2 == 3) {\n        pbVar4 = (c->u).a.inbuffer.head;\n        UNRECOVERED_JUMPTABLE = (code *)PTR_pfd_unthrottle_000b07d4;\n      }\n      else {\n        if (iVar2 != 1) {\n          return;\n        }\n        pbVar4 = (c->u).a.inbuffer.head;\n        UNRECOVERED_JUMPTABLE = (code *)PTR_x11_unthrottle_000b07d0;\n      }\n                    /* WARNING: Could not recover jumptable at 0x0004a79c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      (*UNRECOVERED_JUMPTABLE)(pbVar4);\n      return;\n    }\n  }" if (parenthesized_expression "((c != (ssh_channel *)0x0) && ((c->closes & 1U) == 0))" ( (binary_expression "(c != (ssh_channel *)0x0) && ((c->closes & 1U) == 0)" (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)) )) && (parenthesized_expression "((c->closes & 1U) == 0)" ( (binary_expression "(c->closes & 1U) == 0" (parenthesized_expression "(c->closes & 1U)" ( (binary_expression "c->closes & 1U" (field_expression "c->closes" identifier -> field_identifier) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n    uVar1 = ssh_pkt_getuint32(pktin);\n    uVar3 = c->closes;\n    (c->v).v2.remwindow = (c->v).v2.remwindow + uVar1;\n    if (((uVar3 & 1) == 0) && (iVar2 = ssh2_try_send(c), iVar2 == 0)) {\n      iVar2 = c->type;\n      if (iVar2 == 2) {\n        ssh_agentf_try_forward(c);\n        return;\n      }\n      if (iVar2 == 3) {\n        pbVar4 = (c->u).a.inbuffer.head;\n        UNRECOVERED_JUMPTABLE = (code *)PTR_pfd_unthrottle_000b07d4;\n      }\n      else {\n        if (iVar2 != 1) {\n          return;\n        }\n        pbVar4 = (c->u).a.inbuffer.head;\n        UNRECOVERED_JUMPTABLE = (code *)PTR_x11_unthrottle_000b07d0;\n      }\n                    /* WARNING: Could not recover jumptable at 0x0004a79c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      (*UNRECOVERED_JUMPTABLE)(pbVar4);\n      return;\n    }\n  }" { (expression_statement "uVar1 = ssh_pkt_getuint32(pktin);" (assignment_expression "uVar1 = ssh_pkt_getuint32(pktin)" identifier = (call_expression "ssh_pkt_getuint32(pktin)" identifier (argument_list "(pktin)" ( identifier )))) ;) (expression_statement "uVar3 = c->closes;" (assignment_expression "uVar3 = c->closes" identifier = (field_expression "c->closes" identifier -> field_identifier)) ;) (expression_statement "(c->v).v2.remwindow = (c->v).v2.remwindow + uVar1;" (assignment_expression "(c->v).v2.remwindow = (c->v).v2.remwindow + uVar1" (field_expression "(c->v).v2.remwindow" (field_expression "(c->v).v2" (parenthesized_expression "(c->v)" ( (field_expression "c->v" identifier -> field_identifier) )) . field_identifier) . field_identifier) = (binary_expression "(c->v).v2.remwindow + uVar1" (field_expression "(c->v).v2.remwindow" (field_expression "(c->v).v2" (parenthesized_expression "(c->v)" ( (field_expression "c->v" identifier -> field_identifier) )) . field_identifier) . field_identifier) + identifier)) ;) (if_statement "if (((uVar3 & 1) == 0) && (iVar2 = ssh2_try_send(c), iVar2 == 0)) {\n      iVar2 = c->type;\n      if (iVar2 == 2) {\n        ssh_agentf_try_forward(c);\n        return;\n      }\n      if (iVar2 == 3) {\n        pbVar4 = (c->u).a.inbuffer.head;\n        UNRECOVERED_JUMPTABLE = (code *)PTR_pfd_unthrottle_000b07d4;\n      }\n      else {\n        if (iVar2 != 1) {\n          return;\n        }\n        pbVar4 = (c->u).a.inbuffer.head;\n        UNRECOVERED_JUMPTABLE = (code *)PTR_x11_unthrottle_000b07d0;\n      }\n                    /* WARNING: Could not recover jumptable at 0x0004a79c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      (*UNRECOVERED_JUMPTABLE)(pbVar4);\n      return;\n    }" if (parenthesized_expression "(((uVar3 & 1) == 0) && (iVar2 = ssh2_try_send(c), iVar2 == 0))" ( (binary_expression "((uVar3 & 1) == 0) && (iVar2 = ssh2_try_send(c), iVar2 == 0)" (parenthesized_expression "((uVar3 & 1) == 0)" ( (binary_expression "(uVar3 & 1) == 0" (parenthesized_expression "(uVar3 & 1)" ( (binary_expression "uVar3 & 1" identifier & number_literal) )) == number_literal) )) && (parenthesized_expression "(iVar2 = ssh2_try_send(c), iVar2 == 0)" ( (comma_expression "iVar2 = ssh2_try_send(c), iVar2 == 0" (assignment_expression "iVar2 = ssh2_try_send(c)" identifier = (call_expression "ssh2_try_send(c)" identifier (argument_list "(c)" ( identifier )))) , (binary_expression "iVar2 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n      iVar2 = c->type;\n      if (iVar2 == 2) {\n        ssh_agentf_try_forward(c);\n        return;\n      }\n      if (iVar2 == 3) {\n        pbVar4 = (c->u).a.inbuffer.head;\n        UNRECOVERED_JUMPTABLE = (code *)PTR_pfd_unthrottle_000b07d4;\n      }\n      else {\n        if (iVar2 != 1) {\n          return;\n        }\n        pbVar4 = (c->u).a.inbuffer.head;\n        UNRECOVERED_JUMPTABLE = (code *)PTR_x11_unthrottle_000b07d0;\n      }\n                    /* WARNING: Could not recover jumptable at 0x0004a79c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      (*UNRECOVERED_JUMPTABLE)(pbVar4);\n      return;\n    }" { (expression_statement "iVar2 = c->type;" (assignment_expression "iVar2 = c->type" identifier = (field_expression "c->type" identifier -> field_identifier)) ;) (if_statement "if (iVar2 == 2) {\n        ssh_agentf_try_forward(c);\n        return;\n      }" if (parenthesized_expression "(iVar2 == 2)" ( (binary_expression "iVar2 == 2" identifier == number_literal) )) (compound_statement "{\n        ssh_agentf_try_forward(c);\n        return;\n      }" { (expression_statement "ssh_agentf_try_forward(c);" (call_expression "ssh_agentf_try_forward(c)" identifier (argument_list "(c)" ( identifier ))) ;) (return_statement "return;" return ;) })) (if_statement "if (iVar2 == 3) {\n        pbVar4 = (c->u).a.inbuffer.head;\n        UNRECOVERED_JUMPTABLE = (code *)PTR_pfd_unthrottle_000b07d4;\n      }\n      else {\n        if (iVar2 != 1) {\n          return;\n        }\n        pbVar4 = (c->u).a.inbuffer.head;\n        UNRECOVERED_JUMPTABLE = (code *)PTR_x11_unthrottle_000b07d0;\n      }" if (parenthesized_expression "(iVar2 == 3)" ( (binary_expression "iVar2 == 3" identifier == number_literal) )) (compound_statement "{\n        pbVar4 = (c->u).a.inbuffer.head;\n        UNRECOVERED_JUMPTABLE = (code *)PTR_pfd_unthrottle_000b07d4;\n      }" { (expression_statement "pbVar4 = (c->u).a.inbuffer.head;" (assignment_expression "pbVar4 = (c->u).a.inbuffer.head" identifier = (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)) ;) (expression_statement "UNRECOVERED_JUMPTABLE = (code *)PTR_pfd_unthrottle_000b07d4;" (assignment_expression "UNRECOVERED_JUMPTABLE = (code *)PTR_pfd_unthrottle_000b07d4" identifier = (cast_expression "(code *)PTR_pfd_unthrottle_000b07d4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) }) (else_clause "else {\n        if (iVar2 != 1) {\n          return;\n        }\n        pbVar4 = (c->u).a.inbuffer.head;\n        UNRECOVERED_JUMPTABLE = (code *)PTR_x11_unthrottle_000b07d0;\n      }" else (compound_statement "{\n        if (iVar2 != 1) {\n          return;\n        }\n        pbVar4 = (c->u).a.inbuffer.head;\n        UNRECOVERED_JUMPTABLE = (code *)PTR_x11_unthrottle_000b07d0;\n      }" { (if_statement "if (iVar2 != 1) {\n          return;\n        }" if (parenthesized_expression "(iVar2 != 1)" ( (binary_expression "iVar2 != 1" identifier != number_literal) )) (compound_statement "{\n          return;\n        }" { (return_statement "return;" return ;) })) (expression_statement "pbVar4 = (c->u).a.inbuffer.head;" (assignment_expression "pbVar4 = (c->u).a.inbuffer.head" identifier = (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)) ;) (expression_statement "UNRECOVERED_JUMPTABLE = (code *)PTR_x11_unthrottle_000b07d0;" (assignment_expression "UNRECOVERED_JUMPTABLE = (code *)PTR_x11_unthrottle_000b07d0" identifier = (cast_expression "(code *)PTR_x11_unthrottle_000b07d0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) }))) comment comment (expression_statement "(*UNRECOVERED_JUMPTABLE)(pbVar4);" (call_expression "(*UNRECOVERED_JUMPTABLE)(pbVar4)" (parenthesized_expression "(*UNRECOVERED_JUMPTABLE)" ( (pointer_expression "*UNRECOVERED_JUMPTABLE" * identifier) )) (argument_list "(pbVar4)" ( identifier ))) ;) (return_statement "return;" return ;) })) })) (return_statement "return;" return ;) })))
(translation_unit "void FUN_0004a6c8(undefined4 param_1,undefined4 param_2)\n\n{\n  int iVar1;\n  int iVar2;\n  undefined4 uVar3;\n  code *UNRECOVERED_JUMPTABLE;\n  \n  iVar1 = FUN_000470e0();\n  if ((iVar1 != 0) && ((*(uint *)(iVar1 + 0x14) & 1) == 0)) {\n    iVar2 = FUN_00036188(param_2);\n    *(int *)(iVar1 + 0x2c) = *(int *)(iVar1 + 0x2c) + iVar2;\n    if (((*(uint *)(iVar1 + 0x14) & 1) == 0) && (iVar2 = FUN_000482d8(iVar1), iVar2 == 0)) {\n      iVar2 = *(int *)(iVar1 + 0xc);\n      if (iVar2 == 2) {\n        FUN_00048600(iVar1);\n        return;\n      }\n      if (iVar2 == 3) {\n        uVar3 = *(undefined4 *)(iVar1 + 0x4c);\n        UNRECOVERED_JUMPTABLE = (code *)PTR_pfd_unthrottle_000b07d4;\n      }\n      else {\n        if (iVar2 != 1) {\n          return;\n        }\n        uVar3 = *(undefined4 *)(iVar1 + 0x4c);\n        UNRECOVERED_JUMPTABLE = (code *)PTR_x11_unthrottle_000b07d0;\n      }\n                    \n                    \n      (*UNRECOVERED_JUMPTABLE)(uVar3);\n      return;\n    }\n  }\n  return;\n}\n\n" (function_definition "void FUN_0004a6c8(undefined4 param_1,undefined4 param_2)\n\n{\n  int iVar1;\n  int iVar2;\n  undefined4 uVar3;\n  code *UNRECOVERED_JUMPTABLE;\n  \n  iVar1 = FUN_000470e0();\n  if ((iVar1 != 0) && ((*(uint *)(iVar1 + 0x14) & 1) == 0)) {\n    iVar2 = FUN_00036188(param_2);\n    *(int *)(iVar1 + 0x2c) = *(int *)(iVar1 + 0x2c) + iVar2;\n    if (((*(uint *)(iVar1 + 0x14) & 1) == 0) && (iVar2 = FUN_000482d8(iVar1), iVar2 == 0)) {\n      iVar2 = *(int *)(iVar1 + 0xc);\n      if (iVar2 == 2) {\n        FUN_00048600(iVar1);\n        return;\n      }\n      if (iVar2 == 3) {\n        uVar3 = *(undefined4 *)(iVar1 + 0x4c);\n        UNRECOVERED_JUMPTABLE = (code *)PTR_pfd_unthrottle_000b07d4;\n      }\n      else {\n        if (iVar2 != 1) {\n          return;\n        }\n        uVar3 = *(undefined4 *)(iVar1 + 0x4c);\n        UNRECOVERED_JUMPTABLE = (code *)PTR_x11_unthrottle_000b07d0;\n      }\n                    \n                    \n      (*UNRECOVERED_JUMPTABLE)(uVar3);\n      return;\n    }\n  }\n  return;\n}" primitive_type (function_declarator "FUN_0004a6c8(undefined4 param_1,undefined4 param_2)" identifier (parameter_list "(undefined4 param_1,undefined4 param_2)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "undefined4 param_2" type_identifier identifier) ))) (compound_statement "{\n  int iVar1;\n  int iVar2;\n  undefined4 uVar3;\n  code *UNRECOVERED_JUMPTABLE;\n  \n  iVar1 = FUN_000470e0();\n  if ((iVar1 != 0) && ((*(uint *)(iVar1 + 0x14) & 1) == 0)) {\n    iVar2 = FUN_00036188(param_2);\n    *(int *)(iVar1 + 0x2c) = *(int *)(iVar1 + 0x2c) + iVar2;\n    if (((*(uint *)(iVar1 + 0x14) & 1) == 0) && (iVar2 = FUN_000482d8(iVar1), iVar2 == 0)) {\n      iVar2 = *(int *)(iVar1 + 0xc);\n      if (iVar2 == 2) {\n        FUN_00048600(iVar1);\n        return;\n      }\n      if (iVar2 == 3) {\n        uVar3 = *(undefined4 *)(iVar1 + 0x4c);\n        UNRECOVERED_JUMPTABLE = (code *)PTR_pfd_unthrottle_000b07d4;\n      }\n      else {\n        if (iVar2 != 1) {\n          return;\n        }\n        uVar3 = *(undefined4 *)(iVar1 + 0x4c);\n        UNRECOVERED_JUMPTABLE = (code *)PTR_x11_unthrottle_000b07d0;\n      }\n                    \n                    \n      (*UNRECOVERED_JUMPTABLE)(uVar3);\n      return;\n    }\n  }\n  return;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (declaration "code *UNRECOVERED_JUMPTABLE;" type_identifier (pointer_declarator "*UNRECOVERED_JUMPTABLE" * identifier) ;) (expression_statement "iVar1 = FUN_000470e0();" (assignment_expression "iVar1 = FUN_000470e0()" identifier = (call_expression "FUN_000470e0()" identifier (argument_list "()" ( )))) ;) (if_statement "if ((iVar1 != 0) && ((*(uint *)(iVar1 + 0x14) & 1) == 0)) {\n    iVar2 = FUN_00036188(param_2);\n    *(int *)(iVar1 + 0x2c) = *(int *)(iVar1 + 0x2c) + iVar2;\n    if (((*(uint *)(iVar1 + 0x14) & 1) == 0) && (iVar2 = FUN_000482d8(iVar1), iVar2 == 0)) {\n      iVar2 = *(int *)(iVar1 + 0xc);\n      if (iVar2 == 2) {\n        FUN_00048600(iVar1);\n        return;\n      }\n      if (iVar2 == 3) {\n        uVar3 = *(undefined4 *)(iVar1 + 0x4c);\n        UNRECOVERED_JUMPTABLE = (code *)PTR_pfd_unthrottle_000b07d4;\n      }\n      else {\n        if (iVar2 != 1) {\n          return;\n        }\n        uVar3 = *(undefined4 *)(iVar1 + 0x4c);\n        UNRECOVERED_JUMPTABLE = (code *)PTR_x11_unthrottle_000b07d0;\n      }\n                    \n                    \n      (*UNRECOVERED_JUMPTABLE)(uVar3);\n      return;\n    }\n  }" if (parenthesized_expression "((iVar1 != 0) && ((*(uint *)(iVar1 + 0x14) & 1) == 0))" ( (binary_expression "(iVar1 != 0) && ((*(uint *)(iVar1 + 0x14) & 1) == 0)" (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) && (parenthesized_expression "((*(uint *)(iVar1 + 0x14) & 1) == 0)" ( (binary_expression "(*(uint *)(iVar1 + 0x14) & 1) == 0" (parenthesized_expression "(*(uint *)(iVar1 + 0x14) & 1)" ( (binary_expression "*(uint *)(iVar1 + 0x14) & 1" (pointer_expression "*(uint *)(iVar1 + 0x14)" * (cast_expression "(uint *)(iVar1 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x14)" ( (binary_expression "iVar1 + 0x14" identifier + number_literal) )))) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n    iVar2 = FUN_00036188(param_2);\n    *(int *)(iVar1 + 0x2c) = *(int *)(iVar1 + 0x2c) + iVar2;\n    if (((*(uint *)(iVar1 + 0x14) & 1) == 0) && (iVar2 = FUN_000482d8(iVar1), iVar2 == 0)) {\n      iVar2 = *(int *)(iVar1 + 0xc);\n      if (iVar2 == 2) {\n        FUN_00048600(iVar1);\n        return;\n      }\n      if (iVar2 == 3) {\n        uVar3 = *(undefined4 *)(iVar1 + 0x4c);\n        UNRECOVERED_JUMPTABLE = (code *)PTR_pfd_unthrottle_000b07d4;\n      }\n      else {\n        if (iVar2 != 1) {\n          return;\n        }\n        uVar3 = *(undefined4 *)(iVar1 + 0x4c);\n        UNRECOVERED_JUMPTABLE = (code *)PTR_x11_unthrottle_000b07d0;\n      }\n                    \n                    \n      (*UNRECOVERED_JUMPTABLE)(uVar3);\n      return;\n    }\n  }" { (expression_statement "iVar2 = FUN_00036188(param_2);" (assignment_expression "iVar2 = FUN_00036188(param_2)" identifier = (call_expression "FUN_00036188(param_2)" identifier (argument_list "(param_2)" ( identifier )))) ;) (expression_statement "*(int *)(iVar1 + 0x2c) = *(int *)(iVar1 + 0x2c) + iVar2;" (assignment_expression "*(int *)(iVar1 + 0x2c) = *(int *)(iVar1 + 0x2c) + iVar2" (pointer_expression "*(int *)(iVar1 + 0x2c)" * (cast_expression "(int *)(iVar1 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x2c)" ( (binary_expression "iVar1 + 0x2c" identifier + number_literal) )))) = (binary_expression "*(int *)(iVar1 + 0x2c) + iVar2" (pointer_expression "*(int *)(iVar1 + 0x2c)" * (cast_expression "(int *)(iVar1 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x2c)" ( (binary_expression "iVar1 + 0x2c" identifier + number_literal) )))) + identifier)) ;) (if_statement "if (((*(uint *)(iVar1 + 0x14) & 1) == 0) && (iVar2 = FUN_000482d8(iVar1), iVar2 == 0)) {\n      iVar2 = *(int *)(iVar1 + 0xc);\n      if (iVar2 == 2) {\n        FUN_00048600(iVar1);\n        return;\n      }\n      if (iVar2 == 3) {\n        uVar3 = *(undefined4 *)(iVar1 + 0x4c);\n        UNRECOVERED_JUMPTABLE = (code *)PTR_pfd_unthrottle_000b07d4;\n      }\n      else {\n        if (iVar2 != 1) {\n          return;\n        }\n        uVar3 = *(undefined4 *)(iVar1 + 0x4c);\n        UNRECOVERED_JUMPTABLE = (code *)PTR_x11_unthrottle_000b07d0;\n      }\n                    \n                    \n      (*UNRECOVERED_JUMPTABLE)(uVar3);\n      return;\n    }" if (parenthesized_expression "(((*(uint *)(iVar1 + 0x14) & 1) == 0) && (iVar2 = FUN_000482d8(iVar1), iVar2 == 0))" ( (binary_expression "((*(uint *)(iVar1 + 0x14) & 1) == 0) && (iVar2 = FUN_000482d8(iVar1), iVar2 == 0)" (parenthesized_expression "((*(uint *)(iVar1 + 0x14) & 1) == 0)" ( (binary_expression "(*(uint *)(iVar1 + 0x14) & 1) == 0" (parenthesized_expression "(*(uint *)(iVar1 + 0x14) & 1)" ( (binary_expression "*(uint *)(iVar1 + 0x14) & 1" (pointer_expression "*(uint *)(iVar1 + 0x14)" * (cast_expression "(uint *)(iVar1 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x14)" ( (binary_expression "iVar1 + 0x14" identifier + number_literal) )))) & number_literal) )) == number_literal) )) && (parenthesized_expression "(iVar2 = FUN_000482d8(iVar1), iVar2 == 0)" ( (comma_expression "iVar2 = FUN_000482d8(iVar1), iVar2 == 0" (assignment_expression "iVar2 = FUN_000482d8(iVar1)" identifier = (call_expression "FUN_000482d8(iVar1)" identifier (argument_list "(iVar1)" ( identifier )))) , (binary_expression "iVar2 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n      iVar2 = *(int *)(iVar1 + 0xc);\n      if (iVar2 == 2) {\n        FUN_00048600(iVar1);\n        return;\n      }\n      if (iVar2 == 3) {\n        uVar3 = *(undefined4 *)(iVar1 + 0x4c);\n        UNRECOVERED_JUMPTABLE = (code *)PTR_pfd_unthrottle_000b07d4;\n      }\n      else {\n        if (iVar2 != 1) {\n          return;\n        }\n        uVar3 = *(undefined4 *)(iVar1 + 0x4c);\n        UNRECOVERED_JUMPTABLE = (code *)PTR_x11_unthrottle_000b07d0;\n      }\n                    \n                    \n      (*UNRECOVERED_JUMPTABLE)(uVar3);\n      return;\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        FUN_00048600(iVar1);\n        return;\n      }" if (parenthesized_expression "(iVar2 == 2)" ( (binary_expression "iVar2 == 2" identifier == number_literal) )) (compound_statement "{\n        FUN_00048600(iVar1);\n        return;\n      }" { (expression_statement "FUN_00048600(iVar1);" (call_expression "FUN_00048600(iVar1)" identifier (argument_list "(iVar1)" ( identifier ))) ;) (return_statement "return;" return ;) })) (if_statement "if (iVar2 == 3) {\n        uVar3 = *(undefined4 *)(iVar1 + 0x4c);\n        UNRECOVERED_JUMPTABLE = (code *)PTR_pfd_unthrottle_000b07d4;\n      }\n      else {\n        if (iVar2 != 1) {\n          return;\n        }\n        uVar3 = *(undefined4 *)(iVar1 + 0x4c);\n        UNRECOVERED_JUMPTABLE = (code *)PTR_x11_unthrottle_000b07d0;\n      }" if (parenthesized_expression "(iVar2 == 3)" ( (binary_expression "iVar2 == 3" identifier == number_literal) )) (compound_statement "{\n        uVar3 = *(undefined4 *)(iVar1 + 0x4c);\n        UNRECOVERED_JUMPTABLE = (code *)PTR_pfd_unthrottle_000b07d4;\n      }" { (expression_statement "uVar3 = *(undefined4 *)(iVar1 + 0x4c);" (assignment_expression "uVar3 = *(undefined4 *)(iVar1 + 0x4c)" identifier = (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) ))))) ;) (expression_statement "UNRECOVERED_JUMPTABLE = (code *)PTR_pfd_unthrottle_000b07d4;" (assignment_expression "UNRECOVERED_JUMPTABLE = (code *)PTR_pfd_unthrottle_000b07d4" identifier = (cast_expression "(code *)PTR_pfd_unthrottle_000b07d4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) }) (else_clause "else {\n        if (iVar2 != 1) {\n          return;\n        }\n        uVar3 = *(undefined4 *)(iVar1 + 0x4c);\n        UNRECOVERED_JUMPTABLE = (code *)PTR_x11_unthrottle_000b07d0;\n      }" else (compound_statement "{\n        if (iVar2 != 1) {\n          return;\n        }\n        uVar3 = *(undefined4 *)(iVar1 + 0x4c);\n        UNRECOVERED_JUMPTABLE = (code *)PTR_x11_unthrottle_000b07d0;\n      }" { (if_statement "if (iVar2 != 1) {\n          return;\n        }" if (parenthesized_expression "(iVar2 != 1)" ( (binary_expression "iVar2 != 1" identifier != number_literal) )) (compound_statement "{\n          return;\n        }" { (return_statement "return;" return ;) })) (expression_statement "uVar3 = *(undefined4 *)(iVar1 + 0x4c);" (assignment_expression "uVar3 = *(undefined4 *)(iVar1 + 0x4c)" identifier = (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) ))))) ;) (expression_statement "UNRECOVERED_JUMPTABLE = (code *)PTR_x11_unthrottle_000b07d0;" (assignment_expression "UNRECOVERED_JUMPTABLE = (code *)PTR_x11_unthrottle_000b07d0" identifier = (cast_expression "(code *)PTR_x11_unthrottle_000b07d0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) }))) (expression_statement "(*UNRECOVERED_JUMPTABLE)(uVar3);" (call_expression "(*UNRECOVERED_JUMPTABLE)(uVar3)" (parenthesized_expression "(*UNRECOVERED_JUMPTABLE)" ( (pointer_expression "*UNRECOVERED_JUMPTABLE" * identifier) )) (argument_list "(uVar3)" ( identifier ))) ;) (return_statement "return;" return ;) })) })) (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 ;) (declaration TYPE (pointer_declarator * IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) , (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 { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (return_statement return ;) })) (if_statement if (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) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (return_statement return ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) }))) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT ))) ;) (return_statement return ;) })) })) (return_statement return ;) })))
(function_definition "void FUN_0004a6c8(undefined4 param_1,undefined4 param_2)\n\n{\n  int iVar1;\n  int iVar2;\n  undefined4 uVar3;\n  code *UNRECOVERED_JUMPTABLE;\n  \n  iVar1 = FUN_000470e0();\n  if ((iVar1 != 0) && ((*(uint *)(iVar1 + 0x14) & 1) == 0)) {\n    iVar2 = FUN_00036188(param_2);\n    *(int *)(iVar1 + 0x2c) = *(int *)(iVar1 + 0x2c) + iVar2;\n    if (((*(uint *)(iVar1 + 0x14) & 1) == 0) && (iVar2 = FUN_000482d8(iVar1), iVar2 == 0)) {\n      iVar2 = *(int *)(iVar1 + 0xc);\n      if (iVar2 == 2) {\n        FUN_00048600(iVar1);\n        return;\n      }\n      if (iVar2 == 3) {\n        uVar3 = *(undefined4 *)(iVar1 + 0x4c);\n        UNRECOVERED_JUMPTABLE = (code *)PTR_pfd_unthrottle_000b07d4;\n      }\n      else {\n        if (iVar2 != 1) {\n          return;\n        }\n        uVar3 = *(undefined4 *)(iVar1 + 0x4c);\n        UNRECOVERED_JUMPTABLE = (code *)PTR_x11_unthrottle_000b07d0;\n      }\n                    \n                    \n      (*UNRECOVERED_JUMPTABLE)(uVar3);\n      return;\n    }\n  }\n  return;\n}" (primitive_type "void") (function_declarator "FUN_0004a6c8(undefined4 param_1,undefined4 param_2)" (identifier "FUN_0004a6c8") (parameter_list "(undefined4 param_1,undefined4 param_2)" (( "(") (parameter_declaration "undefined4 param_1" (type_identifier "undefined4") (identifier "param_1")) (, ",") (parameter_declaration "undefined4 param_2" (type_identifier "undefined4") (identifier "param_2")) () ")"))) (compound_statement "{\n  int iVar1;\n  int iVar2;\n  undefined4 uVar3;\n  code *UNRECOVERED_JUMPTABLE;\n  \n  iVar1 = FUN_000470e0();\n  if ((iVar1 != 0) && ((*(uint *)(iVar1 + 0x14) & 1) == 0)) {\n    iVar2 = FUN_00036188(param_2);\n    *(int *)(iVar1 + 0x2c) = *(int *)(iVar1 + 0x2c) + iVar2;\n    if (((*(uint *)(iVar1 + 0x14) & 1) == 0) && (iVar2 = FUN_000482d8(iVar1), iVar2 == 0)) {\n      iVar2 = *(int *)(iVar1 + 0xc);\n      if (iVar2 == 2) {\n        FUN_00048600(iVar1);\n        return;\n      }\n      if (iVar2 == 3) {\n        uVar3 = *(undefined4 *)(iVar1 + 0x4c);\n        UNRECOVERED_JUMPTABLE = (code *)PTR_pfd_unthrottle_000b07d4;\n      }\n      else {\n        if (iVar2 != 1) {\n          return;\n        }\n        uVar3 = *(undefined4 *)(iVar1 + 0x4c);\n        UNRECOVERED_JUMPTABLE = (code *)PTR_x11_unthrottle_000b07d0;\n      }\n                    \n                    \n      (*UNRECOVERED_JUMPTABLE)(uVar3);\n      return;\n    }\n  }\n  return;\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (declaration "undefined4 uVar3;" (type_identifier "undefined4") (identifier "uVar3") (; ";")) (declaration "code *UNRECOVERED_JUMPTABLE;" (type_identifier "code") (pointer_declarator "*UNRECOVERED_JUMPTABLE" (* "*") (identifier "UNRECOVERED_JUMPTABLE")) (; ";")) (expression_statement "iVar1 = FUN_000470e0();" (assignment_expression "iVar1 = FUN_000470e0()" (identifier "iVar1") (= "=") (call_expression "FUN_000470e0()" (identifier "FUN_000470e0") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if ((iVar1 != 0) && ((*(uint *)(iVar1 + 0x14) & 1) == 0)) {\n    iVar2 = FUN_00036188(param_2);\n    *(int *)(iVar1 + 0x2c) = *(int *)(iVar1 + 0x2c) + iVar2;\n    if (((*(uint *)(iVar1 + 0x14) & 1) == 0) && (iVar2 = FUN_000482d8(iVar1), iVar2 == 0)) {\n      iVar2 = *(int *)(iVar1 + 0xc);\n      if (iVar2 == 2) {\n        FUN_00048600(iVar1);\n        return;\n      }\n      if (iVar2 == 3) {\n        uVar3 = *(undefined4 *)(iVar1 + 0x4c);\n        UNRECOVERED_JUMPTABLE = (code *)PTR_pfd_unthrottle_000b07d4;\n      }\n      else {\n        if (iVar2 != 1) {\n          return;\n        }\n        uVar3 = *(undefined4 *)(iVar1 + 0x4c);\n        UNRECOVERED_JUMPTABLE = (code *)PTR_x11_unthrottle_000b07d0;\n      }\n                    \n                    \n      (*UNRECOVERED_JUMPTABLE)(uVar3);\n      return;\n    }\n  }" (if "if") (parenthesized_expression "((iVar1 != 0) && ((*(uint *)(iVar1 + 0x14) & 1) == 0))" (( "(") (binary_expression "(iVar1 != 0) && ((*(uint *)(iVar1 + 0x14) & 1) == 0)" (parenthesized_expression "(iVar1 != 0)" (( "(") (binary_expression "iVar1 != 0" (identifier "iVar1") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "((*(uint *)(iVar1 + 0x14) & 1) == 0)" (( "(") (binary_expression "(*(uint *)(iVar1 + 0x14) & 1) == 0" (parenthesized_expression "(*(uint *)(iVar1 + 0x14) & 1)" (( "(") (binary_expression "*(uint *)(iVar1 + 0x14) & 1" (pointer_expression "*(uint *)(iVar1 + 0x14)" (* "*") (cast_expression "(uint *)(iVar1 + 0x14)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x14)" (( "(") (binary_expression "iVar1 + 0x14" (identifier "iVar1") (+ "+") (number_literal "0x14")) () ")")))) (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n    iVar2 = FUN_00036188(param_2);\n    *(int *)(iVar1 + 0x2c) = *(int *)(iVar1 + 0x2c) + iVar2;\n    if (((*(uint *)(iVar1 + 0x14) & 1) == 0) && (iVar2 = FUN_000482d8(iVar1), iVar2 == 0)) {\n      iVar2 = *(int *)(iVar1 + 0xc);\n      if (iVar2 == 2) {\n        FUN_00048600(iVar1);\n        return;\n      }\n      if (iVar2 == 3) {\n        uVar3 = *(undefined4 *)(iVar1 + 0x4c);\n        UNRECOVERED_JUMPTABLE = (code *)PTR_pfd_unthrottle_000b07d4;\n      }\n      else {\n        if (iVar2 != 1) {\n          return;\n        }\n        uVar3 = *(undefined4 *)(iVar1 + 0x4c);\n        UNRECOVERED_JUMPTABLE = (code *)PTR_x11_unthrottle_000b07d0;\n      }\n                    \n                    \n      (*UNRECOVERED_JUMPTABLE)(uVar3);\n      return;\n    }\n  }" ({ "{") (expression_statement "iVar2 = FUN_00036188(param_2);" (assignment_expression "iVar2 = FUN_00036188(param_2)" (identifier "iVar2") (= "=") (call_expression "FUN_00036188(param_2)" (identifier "FUN_00036188") (argument_list "(param_2)" (( "(") (identifier "param_2") () ")")))) (; ";")) (expression_statement "*(int *)(iVar1 + 0x2c) = *(int *)(iVar1 + 0x2c) + iVar2;" (assignment_expression "*(int *)(iVar1 + 0x2c) = *(int *)(iVar1 + 0x2c) + iVar2" (pointer_expression "*(int *)(iVar1 + 0x2c)" (* "*") (cast_expression "(int *)(iVar1 + 0x2c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x2c)" (( "(") (binary_expression "iVar1 + 0x2c" (identifier "iVar1") (+ "+") (number_literal "0x2c")) () ")")))) (= "=") (binary_expression "*(int *)(iVar1 + 0x2c) + iVar2" (pointer_expression "*(int *)(iVar1 + 0x2c)" (* "*") (cast_expression "(int *)(iVar1 + 0x2c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x2c)" (( "(") (binary_expression "iVar1 + 0x2c" (identifier "iVar1") (+ "+") (number_literal "0x2c")) () ")")))) (+ "+") (identifier "iVar2"))) (; ";")) (if_statement "if (((*(uint *)(iVar1 + 0x14) & 1) == 0) && (iVar2 = FUN_000482d8(iVar1), iVar2 == 0)) {\n      iVar2 = *(int *)(iVar1 + 0xc);\n      if (iVar2 == 2) {\n        FUN_00048600(iVar1);\n        return;\n      }\n      if (iVar2 == 3) {\n        uVar3 = *(undefined4 *)(iVar1 + 0x4c);\n        UNRECOVERED_JUMPTABLE = (code *)PTR_pfd_unthrottle_000b07d4;\n      }\n      else {\n        if (iVar2 != 1) {\n          return;\n        }\n        uVar3 = *(undefined4 *)(iVar1 + 0x4c);\n        UNRECOVERED_JUMPTABLE = (code *)PTR_x11_unthrottle_000b07d0;\n      }\n                    \n                    \n      (*UNRECOVERED_JUMPTABLE)(uVar3);\n      return;\n    }" (if "if") (parenthesized_expression "(((*(uint *)(iVar1 + 0x14) & 1) == 0) && (iVar2 = FUN_000482d8(iVar1), iVar2 == 0))" (( "(") (binary_expression "((*(uint *)(iVar1 + 0x14) & 1) == 0) && (iVar2 = FUN_000482d8(iVar1), iVar2 == 0)" (parenthesized_expression "((*(uint *)(iVar1 + 0x14) & 1) == 0)" (( "(") (binary_expression "(*(uint *)(iVar1 + 0x14) & 1) == 0" (parenthesized_expression "(*(uint *)(iVar1 + 0x14) & 1)" (( "(") (binary_expression "*(uint *)(iVar1 + 0x14) & 1" (pointer_expression "*(uint *)(iVar1 + 0x14)" (* "*") (cast_expression "(uint *)(iVar1 + 0x14)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x14)" (( "(") (binary_expression "iVar1 + 0x14" (identifier "iVar1") (+ "+") (number_literal "0x14")) () ")")))) (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(iVar2 = FUN_000482d8(iVar1), iVar2 == 0)" (( "(") (comma_expression "iVar2 = FUN_000482d8(iVar1), iVar2 == 0" (assignment_expression "iVar2 = FUN_000482d8(iVar1)" (identifier "iVar2") (= "=") (call_expression "FUN_000482d8(iVar1)" (identifier "FUN_000482d8") (argument_list "(iVar1)" (( "(") (identifier "iVar1") () ")")))) (, ",") (binary_expression "iVar2 == 0" (identifier "iVar2") (== "==") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n      iVar2 = *(int *)(iVar1 + 0xc);\n      if (iVar2 == 2) {\n        FUN_00048600(iVar1);\n        return;\n      }\n      if (iVar2 == 3) {\n        uVar3 = *(undefined4 *)(iVar1 + 0x4c);\n        UNRECOVERED_JUMPTABLE = (code *)PTR_pfd_unthrottle_000b07d4;\n      }\n      else {\n        if (iVar2 != 1) {\n          return;\n        }\n        uVar3 = *(undefined4 *)(iVar1 + 0x4c);\n        UNRECOVERED_JUMPTABLE = (code *)PTR_x11_unthrottle_000b07d0;\n      }\n                    \n                    \n      (*UNRECOVERED_JUMPTABLE)(uVar3);\n      return;\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        FUN_00048600(iVar1);\n        return;\n      }" (if "if") (parenthesized_expression "(iVar2 == 2)" (( "(") (binary_expression "iVar2 == 2" (identifier "iVar2") (== "==") (number_literal "2")) () ")")) (compound_statement "{\n        FUN_00048600(iVar1);\n        return;\n      }" ({ "{") (expression_statement "FUN_00048600(iVar1);" (call_expression "FUN_00048600(iVar1)" (identifier "FUN_00048600") (argument_list "(iVar1)" (( "(") (identifier "iVar1") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (if_statement "if (iVar2 == 3) {\n        uVar3 = *(undefined4 *)(iVar1 + 0x4c);\n        UNRECOVERED_JUMPTABLE = (code *)PTR_pfd_unthrottle_000b07d4;\n      }\n      else {\n        if (iVar2 != 1) {\n          return;\n        }\n        uVar3 = *(undefined4 *)(iVar1 + 0x4c);\n        UNRECOVERED_JUMPTABLE = (code *)PTR_x11_unthrottle_000b07d0;\n      }" (if "if") (parenthesized_expression "(iVar2 == 3)" (( "(") (binary_expression "iVar2 == 3" (identifier "iVar2") (== "==") (number_literal "3")) () ")")) (compound_statement "{\n        uVar3 = *(undefined4 *)(iVar1 + 0x4c);\n        UNRECOVERED_JUMPTABLE = (code *)PTR_pfd_unthrottle_000b07d4;\n      }" ({ "{") (expression_statement "uVar3 = *(undefined4 *)(iVar1 + 0x4c);" (assignment_expression "uVar3 = *(undefined4 *)(iVar1 + 0x4c)" (identifier "uVar3") (= "=") (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")) () ")"))))) (; ";")) (expression_statement "UNRECOVERED_JUMPTABLE = (code *)PTR_pfd_unthrottle_000b07d4;" (assignment_expression "UNRECOVERED_JUMPTABLE = (code *)PTR_pfd_unthrottle_000b07d4" (identifier "UNRECOVERED_JUMPTABLE") (= "=") (cast_expression "(code *)PTR_pfd_unthrottle_000b07d4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_pfd_unthrottle_000b07d4"))) (; ";")) (} "}")) (else_clause "else {\n        if (iVar2 != 1) {\n          return;\n        }\n        uVar3 = *(undefined4 *)(iVar1 + 0x4c);\n        UNRECOVERED_JUMPTABLE = (code *)PTR_x11_unthrottle_000b07d0;\n      }" (else "else") (compound_statement "{\n        if (iVar2 != 1) {\n          return;\n        }\n        uVar3 = *(undefined4 *)(iVar1 + 0x4c);\n        UNRECOVERED_JUMPTABLE = (code *)PTR_x11_unthrottle_000b07d0;\n      }" ({ "{") (if_statement "if (iVar2 != 1) {\n          return;\n        }" (if "if") (parenthesized_expression "(iVar2 != 1)" (( "(") (binary_expression "iVar2 != 1" (identifier "iVar2") (!= "!=") (number_literal "1")) () ")")) (compound_statement "{\n          return;\n        }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "uVar3 = *(undefined4 *)(iVar1 + 0x4c);" (assignment_expression "uVar3 = *(undefined4 *)(iVar1 + 0x4c)" (identifier "uVar3") (= "=") (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")) () ")"))))) (; ";")) (expression_statement "UNRECOVERED_JUMPTABLE = (code *)PTR_x11_unthrottle_000b07d0;" (assignment_expression "UNRECOVERED_JUMPTABLE = (code *)PTR_x11_unthrottle_000b07d0" (identifier "UNRECOVERED_JUMPTABLE") (= "=") (cast_expression "(code *)PTR_x11_unthrottle_000b07d0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_x11_unthrottle_000b07d0"))) (; ";")) (} "}")))) (expression_statement "(*UNRECOVERED_JUMPTABLE)(uVar3);" (call_expression "(*UNRECOVERED_JUMPTABLE)(uVar3)" (parenthesized_expression "(*UNRECOVERED_JUMPTABLE)" (( "(") (pointer_expression "*UNRECOVERED_JUMPTABLE" (* "*") (identifier "UNRECOVERED_JUMPTABLE")) () ")")) (argument_list "(uVar3)" (( "(") (identifier "uVar3") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (} "}"))) (return_statement "return;" (return "return") (; ";")) (} "}")))
(translation_unit (function_definition type: (primitive_type) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)))) body: (compound_statement (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (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))))) right: (number_literal))) right: (number_literal))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (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))))) right: (number_literal))) right: (number_literal))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier)))) right: (binary_expression left: (identifier) right: (number_literal)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (return_statement))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier)))) (return_statement))))) (return_statement))))

void MASKED(undefined4 param_1,undefined4 param_2)

{
  int iVar1;
  int iVar2;
  undefined4 uVar3;
  code *UNRECOVERED_JUMPTABLE;
  
  iVar1 = FUN_000470e0();
  if ((iVar1 != 0) && ((*(uint *)(iVar1 + 0x14) & 1) == 0)) {
    iVar2 = FUN_00036188(param_2);
    *(int *)(iVar1 + 0x2c) = *(int *)(iVar1 + 0x2c) + iVar2;
    if (((*(uint *)(iVar1 + 0x14) & 1) == 0) && (iVar2 = FUN_000482d8(iVar1), iVar2 == 0)) {
      iVar2 = *(int *)(iVar1 + 0xc);
      if (iVar2 == 2) {
        FUN_00048600(iVar1);
        return;
      }
      if (iVar2 == 3) {
        uVar3 = *(undefined4 *)(iVar1 + 0x4c);
        UNRECOVERED_JUMPTABLE = (code *)PTR_pfd_unthrottle_000b07d4;
      }
      else {
        if (iVar2 != 1) {
          return;
        }
        uVar3 = *(undefined4 *)(iVar1 + 0x4c);
        UNRECOVERED_JUMPTABLE = (code *)PTR_x11_unthrottle_000b07d0;
      }
                    /* WARNING: Could not recover jumptable at 0x0004a79c. Too many branches */
                    /* WARNING: Treating indirect jump as call */
      (*UNRECOVERED_JUMPTABLE)(uVar3);
      return;
    }
  }
  return;
}

