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

void ssh2_pkt_defer_noqueue(Ssh_conflict ssh,Packet *pkt,int noignore)

{
  int iVar1;
  Packet *pkt_00;
  uchar *puVar2;
  int iVar3;
  
  if ((((ssh->cscipher != (ssh2_cipher *)0x0) && ((ssh->cscipher->flags & 1) != 0)) &&
      (noignore == 0 && ssh->deferred_len == 0)) && ((ssh->remote_bugs & 0x200) == 0)) {
    pkt_00 = ssh2_pkt_init(2);
    ssh_pkt_addstring_start(pkt_00);
    ssh2_pkt_defer_noqueue(ssh,pkt_00,1);
  }
  iVar1 = ssh2_pkt_construct(ssh,pkt);
  iVar3 = iVar1 + ssh->deferred_len;
  if (ssh->deferred_size < iVar3) {
    iVar3 = iVar3 + 0x80;
    ssh->deferred_size = iVar3;
    puVar2 = (uchar *)saferealloc(ssh->deferred_send_data,(long)iVar3,1);
    ssh->deferred_send_data = puVar2;
  }
  memcpy(ssh->deferred_send_data + ssh->deferred_len,pkt->body,(long)iVar1);
  ssh->deferred_len = ssh->deferred_len + iVar1;
  ssh->deferred_data_size = ssh->deferred_data_size + pkt->encrypted_len;
  ssh_free_packet(pkt);
  return;
}



void FUN_0011a8aa(long param_1,long param_2,int param_3)

{
  int iVar1;
  undefined8 uVar2;
  int iVar3;
  
  if ((((*(long *)(param_1 + 0x88) != 0) && ((*(byte *)(*(long *)(param_1 + 0x88) + 0x54) & 1) != 0)
       ) && (param_3 == 0 && *(int *)(param_1 + 0x208) == 0)) &&
     ((*(byte *)(param_1 + 0x6d) & 2) == 0)) {
    uVar2 = FUN_00118f71(2);
    FUN_001190b0(uVar2);
    FUN_0011a8aa(param_1,uVar2,1);
  }
  iVar1 = FUN_0011a173(param_1,param_2);
  iVar3 = iVar1 + *(int *)(param_1 + 0x208);
  if (*(int *)(param_1 + 0x20c) < iVar3) {
    iVar3 = iVar3 + 0x80;
    *(int *)(param_1 + 0x20c) = iVar3;
    uVar2 = FUN_0010ee09(*(undefined8 *)(param_1 + 0x200),(long)iVar3,1);
    *(undefined8 *)(param_1 + 0x200) = uVar2;
  }
  memcpy((void *)((long)*(int *)(param_1 + 0x208) + *(long *)(param_1 + 0x200)),
         *(void **)(param_2 + 0x28),(long)iVar1);
  *(int *)(param_1 + 0x208) = *(int *)(param_1 + 0x208) + iVar1;
  *(long *)(param_1 + 0xc00) = *(long *)(param_1 + 0xc00) + *(long *)(param_2 + 0x40);
  FUN_00118957(param_2);
  return;
}


PUSH R12
PUSH RBP
PUSH RBX
MOV RBX,RDI
MOV RBP,RSI
MOV RAX,qword ptr [RDI + 0x88]
TEST RAX,RAX
JZ 0x0011a8d4
TEST byte ptr [RAX + 0x54],0x1
JZ 0x0011a8d4
OR EDX,dword ptr [RDI + 0x208]
JNZ 0x0011a8d4
TEST byte ptr [RDI + 0x6d],0x2
JZ 0x0011a92b
MOV RSI,RBP
MOV RDI,RBX
CALL 0x0011a173
MOV R12D,EAX
MOV ESI,EAX
ADD ESI,dword ptr [RBX + 0x208]
CMP ESI,dword ptr [RBX + 0x20c]
JG 0x0011a952
MOVSXD RDI,dword ptr [RBX + 0x208]
ADD RDI,qword ptr [RBX + 0x200]
MOVSXD RDX,R12D
MOV RSI,qword ptr [RBP + 0x28]
CALL 0x001084f0
ADD dword ptr [RBX + 0x208],R12D
MOV RAX,qword ptr [RBP + 0x40]
ADD qword ptr [RBX + 0xc00],RAX
MOV RDI,RBP
CALL 0x00118957
POP RBX
POP RBP
POP R12
RET
MOV EDI,0x2
CALL 0x00118f71
MOV R12,RAX
MOV RDI,RAX
CALL 0x001190b0
MOV EDX,0x1
MOV RSI,R12
MOV RDI,RBX
CALL 0x0011a8aa
JMP 0x0011a8d4
SUB ESI,-0x80
MOV dword ptr [RBX + 0x20c],ESI
MOVSXD RSI,ESI
MOV RDI,qword ptr [RBX + 0x200]
MOV EDX,0x1
CALL 0x0010ee09
MOV qword ptr [RBX + 0x200],RAX
JMP 0x0011a8f2
(translation_unit "void FUN_0011a8aa(long param_1,long param_2,int param_3)\n\n{\n  int iVar1;\n  undefined8 uVar2;\n  int iVar3;\n  \n  if ((((*(long *)(param_1 + 0x88) != 0) && ((*(byte *)(*(long *)(param_1 + 0x88) + 0x54) & 1) != 0)\n       ) && (param_3 == 0 && *(int *)(param_1 + 0x208) == 0)) &&\n     ((*(byte *)(param_1 + 0x6d) & 2) == 0)) {\n    uVar2 = FUN_00118f71(2);\n    FUN_001190b0(uVar2);\n    FUN_0011a8aa(param_1,uVar2,1);\n  }\n  iVar1 = FUN_0011a173(param_1,param_2);\n  iVar3 = iVar1 + *(int *)(param_1 + 0x208);\n  if (*(int *)(param_1 + 0x20c) < iVar3) {\n    iVar3 = iVar3 + 0x80;\n    *(int *)(param_1 + 0x20c) = iVar3;\n    uVar2 = FUN_0010ee09(*(undefined8 *)(param_1 + 0x200),(long)iVar3,1);\n    *(undefined8 *)(param_1 + 0x200) = uVar2;\n  }\n  memcpy((void *)((long)*(int *)(param_1 + 0x208) + *(long *)(param_1 + 0x200)),\n         *(void **)(param_2 + 0x28),(long)iVar1);\n  *(int *)(param_1 + 0x208) = *(int *)(param_1 + 0x208) + iVar1;\n  *(long *)(param_1 + 0xc00) = *(long *)(param_1 + 0xc00) + *(long *)(param_2 + 0x40);\n  FUN_00118957(param_2);\n  return;\n}\n\n" (function_definition "void FUN_0011a8aa(long param_1,long param_2,int param_3)\n\n{\n  int iVar1;\n  undefined8 uVar2;\n  int iVar3;\n  \n  if ((((*(long *)(param_1 + 0x88) != 0) && ((*(byte *)(*(long *)(param_1 + 0x88) + 0x54) & 1) != 0)\n       ) && (param_3 == 0 && *(int *)(param_1 + 0x208) == 0)) &&\n     ((*(byte *)(param_1 + 0x6d) & 2) == 0)) {\n    uVar2 = FUN_00118f71(2);\n    FUN_001190b0(uVar2);\n    FUN_0011a8aa(param_1,uVar2,1);\n  }\n  iVar1 = FUN_0011a173(param_1,param_2);\n  iVar3 = iVar1 + *(int *)(param_1 + 0x208);\n  if (*(int *)(param_1 + 0x20c) < iVar3) {\n    iVar3 = iVar3 + 0x80;\n    *(int *)(param_1 + 0x20c) = iVar3;\n    uVar2 = FUN_0010ee09(*(undefined8 *)(param_1 + 0x200),(long)iVar3,1);\n    *(undefined8 *)(param_1 + 0x200) = uVar2;\n  }\n  memcpy((void *)((long)*(int *)(param_1 + 0x208) + *(long *)(param_1 + 0x200)),\n         *(void **)(param_2 + 0x28),(long)iVar1);\n  *(int *)(param_1 + 0x208) = *(int *)(param_1 + 0x208) + iVar1;\n  *(long *)(param_1 + 0xc00) = *(long *)(param_1 + 0xc00) + *(long *)(param_2 + 0x40);\n  FUN_00118957(param_2);\n  return;\n}" primitive_type (function_declarator "FUN_0011a8aa(long param_1,long param_2,int param_3)" identifier (parameter_list "(long param_1,long param_2,int param_3)" ( (parameter_declaration "long param_1" (sized_type_specifier "long" long) identifier) , (parameter_declaration "long param_2" (sized_type_specifier "long" long) identifier) , (parameter_declaration "int param_3" primitive_type identifier) ))) (compound_statement "{\n  int iVar1;\n  undefined8 uVar2;\n  int iVar3;\n  \n  if ((((*(long *)(param_1 + 0x88) != 0) && ((*(byte *)(*(long *)(param_1 + 0x88) + 0x54) & 1) != 0)\n       ) && (param_3 == 0 && *(int *)(param_1 + 0x208) == 0)) &&\n     ((*(byte *)(param_1 + 0x6d) & 2) == 0)) {\n    uVar2 = FUN_00118f71(2);\n    FUN_001190b0(uVar2);\n    FUN_0011a8aa(param_1,uVar2,1);\n  }\n  iVar1 = FUN_0011a173(param_1,param_2);\n  iVar3 = iVar1 + *(int *)(param_1 + 0x208);\n  if (*(int *)(param_1 + 0x20c) < iVar3) {\n    iVar3 = iVar3 + 0x80;\n    *(int *)(param_1 + 0x20c) = iVar3;\n    uVar2 = FUN_0010ee09(*(undefined8 *)(param_1 + 0x200),(long)iVar3,1);\n    *(undefined8 *)(param_1 + 0x200) = uVar2;\n  }\n  memcpy((void *)((long)*(int *)(param_1 + 0x208) + *(long *)(param_1 + 0x200)),\n         *(void **)(param_2 + 0x28),(long)iVar1);\n  *(int *)(param_1 + 0x208) = *(int *)(param_1 + 0x208) + iVar1;\n  *(long *)(param_1 + 0xc00) = *(long *)(param_1 + 0xc00) + *(long *)(param_2 + 0x40);\n  FUN_00118957(param_2);\n  return;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "undefined8 uVar2;" type_identifier identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (if_statement "if ((((*(long *)(param_1 + 0x88) != 0) && ((*(byte *)(*(long *)(param_1 + 0x88) + 0x54) & 1) != 0)\n       ) && (param_3 == 0 && *(int *)(param_1 + 0x208) == 0)) &&\n     ((*(byte *)(param_1 + 0x6d) & 2) == 0)) {\n    uVar2 = FUN_00118f71(2);\n    FUN_001190b0(uVar2);\n    FUN_0011a8aa(param_1,uVar2,1);\n  }" if (parenthesized_expression "((((*(long *)(param_1 + 0x88) != 0) && ((*(byte *)(*(long *)(param_1 + 0x88) + 0x54) & 1) != 0)\n       ) && (param_3 == 0 && *(int *)(param_1 + 0x208) == 0)) &&\n     ((*(byte *)(param_1 + 0x6d) & 2) == 0))" ( (binary_expression "(((*(long *)(param_1 + 0x88) != 0) && ((*(byte *)(*(long *)(param_1 + 0x88) + 0x54) & 1) != 0)\n       ) && (param_3 == 0 && *(int *)(param_1 + 0x208) == 0)) &&\n     ((*(byte *)(param_1 + 0x6d) & 2) == 0)" (parenthesized_expression "(((*(long *)(param_1 + 0x88) != 0) && ((*(byte *)(*(long *)(param_1 + 0x88) + 0x54) & 1) != 0)\n       ) && (param_3 == 0 && *(int *)(param_1 + 0x208) == 0))" ( (binary_expression "((*(long *)(param_1 + 0x88) != 0) && ((*(byte *)(*(long *)(param_1 + 0x88) + 0x54) & 1) != 0)\n       ) && (param_3 == 0 && *(int *)(param_1 + 0x208) == 0)" (parenthesized_expression "((*(long *)(param_1 + 0x88) != 0) && ((*(byte *)(*(long *)(param_1 + 0x88) + 0x54) & 1) != 0)\n       )" ( (binary_expression "(*(long *)(param_1 + 0x88) != 0) && ((*(byte *)(*(long *)(param_1 + 0x88) + 0x54) & 1) != 0)" (parenthesized_expression "(*(long *)(param_1 + 0x88) != 0)" ( (binary_expression "*(long *)(param_1 + 0x88) != 0" (pointer_expression "*(long *)(param_1 + 0x88)" * (cast_expression "(long *)(param_1 + 0x88)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x88)" ( (binary_expression "param_1 + 0x88" identifier + number_literal) )))) != number_literal) )) && (parenthesized_expression "((*(byte *)(*(long *)(param_1 + 0x88) + 0x54) & 1) != 0)" ( (binary_expression "(*(byte *)(*(long *)(param_1 + 0x88) + 0x54) & 1) != 0" (parenthesized_expression "(*(byte *)(*(long *)(param_1 + 0x88) + 0x54) & 1)" ( (binary_expression "*(byte *)(*(long *)(param_1 + 0x88) + 0x54) & 1" (pointer_expression "*(byte *)(*(long *)(param_1 + 0x88) + 0x54)" * (cast_expression "(byte *)(*(long *)(param_1 + 0x88) + 0x54)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(param_1 + 0x88) + 0x54)" ( (binary_expression "*(long *)(param_1 + 0x88) + 0x54" (pointer_expression "*(long *)(param_1 + 0x88)" * (cast_expression "(long *)(param_1 + 0x88)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x88)" ( (binary_expression "param_1 + 0x88" identifier + number_literal) )))) + number_literal) )))) & number_literal) )) != number_literal) ))) )) && (parenthesized_expression "(param_3 == 0 && *(int *)(param_1 + 0x208) == 0)" ( (binary_expression "param_3 == 0 && *(int *)(param_1 + 0x208) == 0" (binary_expression "param_3 == 0" identifier == number_literal) && (binary_expression "*(int *)(param_1 + 0x208) == 0" (pointer_expression "*(int *)(param_1 + 0x208)" * (cast_expression "(int *)(param_1 + 0x208)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x208)" ( (binary_expression "param_1 + 0x208" identifier + number_literal) )))) == number_literal)) ))) )) && (parenthesized_expression "((*(byte *)(param_1 + 0x6d) & 2) == 0)" ( (binary_expression "(*(byte *)(param_1 + 0x6d) & 2) == 0" (parenthesized_expression "(*(byte *)(param_1 + 0x6d) & 2)" ( (binary_expression "*(byte *)(param_1 + 0x6d) & 2" (pointer_expression "*(byte *)(param_1 + 0x6d)" * (cast_expression "(byte *)(param_1 + 0x6d)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x6d)" ( (binary_expression "param_1 + 0x6d" identifier + number_literal) )))) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n    uVar2 = FUN_00118f71(2);\n    FUN_001190b0(uVar2);\n    FUN_0011a8aa(param_1,uVar2,1);\n  }" { (expression_statement "uVar2 = FUN_00118f71(2);" (assignment_expression "uVar2 = FUN_00118f71(2)" identifier = (call_expression "FUN_00118f71(2)" identifier (argument_list "(2)" ( number_literal )))) ;) (expression_statement "FUN_001190b0(uVar2);" (call_expression "FUN_001190b0(uVar2)" identifier (argument_list "(uVar2)" ( identifier ))) ;) (expression_statement "FUN_0011a8aa(param_1,uVar2,1);" (call_expression "FUN_0011a8aa(param_1,uVar2,1)" identifier (argument_list "(param_1,uVar2,1)" ( identifier , identifier , number_literal ))) ;) })) (expression_statement "iVar1 = FUN_0011a173(param_1,param_2);" (assignment_expression "iVar1 = FUN_0011a173(param_1,param_2)" identifier = (call_expression "FUN_0011a173(param_1,param_2)" identifier (argument_list "(param_1,param_2)" ( identifier , identifier )))) ;) (expression_statement "iVar3 = iVar1 + *(int *)(param_1 + 0x208);" (assignment_expression "iVar3 = iVar1 + *(int *)(param_1 + 0x208)" identifier = (binary_expression "iVar1 + *(int *)(param_1 + 0x208)" identifier + (pointer_expression "*(int *)(param_1 + 0x208)" * (cast_expression "(int *)(param_1 + 0x208)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x208)" ( (binary_expression "param_1 + 0x208" identifier + number_literal) )))))) ;) (if_statement "if (*(int *)(param_1 + 0x20c) < iVar3) {\n    iVar3 = iVar3 + 0x80;\n    *(int *)(param_1 + 0x20c) = iVar3;\n    uVar2 = FUN_0010ee09(*(undefined8 *)(param_1 + 0x200),(long)iVar3,1);\n    *(undefined8 *)(param_1 + 0x200) = uVar2;\n  }" if (parenthesized_expression "(*(int *)(param_1 + 0x20c) < iVar3)" ( (binary_expression "*(int *)(param_1 + 0x20c) < iVar3" (pointer_expression "*(int *)(param_1 + 0x20c)" * (cast_expression "(int *)(param_1 + 0x20c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20c)" ( (binary_expression "param_1 + 0x20c" identifier + number_literal) )))) < identifier) )) (compound_statement "{\n    iVar3 = iVar3 + 0x80;\n    *(int *)(param_1 + 0x20c) = iVar3;\n    uVar2 = FUN_0010ee09(*(undefined8 *)(param_1 + 0x200),(long)iVar3,1);\n    *(undefined8 *)(param_1 + 0x200) = uVar2;\n  }" { (expression_statement "iVar3 = iVar3 + 0x80;" (assignment_expression "iVar3 = iVar3 + 0x80" identifier = (binary_expression "iVar3 + 0x80" identifier + number_literal)) ;) (expression_statement "*(int *)(param_1 + 0x20c) = iVar3;" (assignment_expression "*(int *)(param_1 + 0x20c) = iVar3" (pointer_expression "*(int *)(param_1 + 0x20c)" * (cast_expression "(int *)(param_1 + 0x20c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20c)" ( (binary_expression "param_1 + 0x20c" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar2 = FUN_0010ee09(*(undefined8 *)(param_1 + 0x200),(long)iVar3,1);" (assignment_expression "uVar2 = FUN_0010ee09(*(undefined8 *)(param_1 + 0x200),(long)iVar3,1)" identifier = (call_expression "FUN_0010ee09(*(undefined8 *)(param_1 + 0x200),(long)iVar3,1)" identifier (argument_list "(*(undefined8 *)(param_1 + 0x200),(long)iVar3,1)" ( (pointer_expression "*(undefined8 *)(param_1 + 0x200)" * (cast_expression "(undefined8 *)(param_1 + 0x200)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x200)" ( (binary_expression "param_1 + 0x200" identifier + number_literal) )))) , (cast_expression "(long)iVar3" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) , number_literal )))) ;) (expression_statement "*(undefined8 *)(param_1 + 0x200) = uVar2;" (assignment_expression "*(undefined8 *)(param_1 + 0x200) = uVar2" (pointer_expression "*(undefined8 *)(param_1 + 0x200)" * (cast_expression "(undefined8 *)(param_1 + 0x200)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x200)" ( (binary_expression "param_1 + 0x200" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "memcpy((void *)((long)*(int *)(param_1 + 0x208) + *(long *)(param_1 + 0x200)),\n         *(void **)(param_2 + 0x28),(long)iVar1);" (call_expression "memcpy((void *)((long)*(int *)(param_1 + 0x208) + *(long *)(param_1 + 0x200)),\n         *(void **)(param_2 + 0x28),(long)iVar1)" identifier (argument_list "((void *)((long)*(int *)(param_1 + 0x208) + *(long *)(param_1 + 0x200)),\n         *(void **)(param_2 + 0x28),(long)iVar1)" ( (cast_expression "(void *)((long)*(int *)(param_1 + 0x208) + *(long *)(param_1 + 0x200))" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)*(int *)(param_1 + 0x208) + *(long *)(param_1 + 0x200))" ( (binary_expression "(long)*(int *)(param_1 + 0x208) + *(long *)(param_1 + 0x200)" (cast_expression "(long)*(int *)(param_1 + 0x208)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "*(int *)(param_1 + 0x208)" * (cast_expression "(int *)(param_1 + 0x208)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x208)" ( (binary_expression "param_1 + 0x208" identifier + number_literal) ))))) + (pointer_expression "*(long *)(param_1 + 0x200)" * (cast_expression "(long *)(param_1 + 0x200)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x200)" ( (binary_expression "param_1 + 0x200" identifier + number_literal) ))))) ))) , (pointer_expression "*(void **)(param_2 + 0x28)" * (cast_expression "(void **)(param_2 + 0x28)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0x28)" ( (binary_expression "param_2 + 0x28" identifier + number_literal) )))) , (cast_expression "(long)iVar1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) ))) ;) (expression_statement "*(int *)(param_1 + 0x208) = *(int *)(param_1 + 0x208) + iVar1;" (assignment_expression "*(int *)(param_1 + 0x208) = *(int *)(param_1 + 0x208) + iVar1" (pointer_expression "*(int *)(param_1 + 0x208)" * (cast_expression "(int *)(param_1 + 0x208)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x208)" ( (binary_expression "param_1 + 0x208" identifier + number_literal) )))) = (binary_expression "*(int *)(param_1 + 0x208) + iVar1" (pointer_expression "*(int *)(param_1 + 0x208)" * (cast_expression "(int *)(param_1 + 0x208)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x208)" ( (binary_expression "param_1 + 0x208" identifier + number_literal) )))) + identifier)) ;) (expression_statement "*(long *)(param_1 + 0xc00) = *(long *)(param_1 + 0xc00) + *(long *)(param_2 + 0x40);" (assignment_expression "*(long *)(param_1 + 0xc00) = *(long *)(param_1 + 0xc00) + *(long *)(param_2 + 0x40)" (pointer_expression "*(long *)(param_1 + 0xc00)" * (cast_expression "(long *)(param_1 + 0xc00)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc00)" ( (binary_expression "param_1 + 0xc00" identifier + number_literal) )))) = (binary_expression "*(long *)(param_1 + 0xc00) + *(long *)(param_2 + 0x40)" (pointer_expression "*(long *)(param_1 + 0xc00)" * (cast_expression "(long *)(param_1 + 0xc00)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc00)" ( (binary_expression "param_1 + 0xc00" identifier + number_literal) )))) + (pointer_expression "*(long *)(param_2 + 0x40)" * (cast_expression "(long *)(param_2 + 0x40)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x40)" ( (binary_expression "param_2 + 0x40" identifier + number_literal) )))))) ;) (expression_statement "FUN_00118957(param_2);" (call_expression "FUN_00118957(param_2)" identifier (argument_list "(param_2)" ( identifier ))) ;) (return_statement "return;" return ;) })))
(translation_unit "/* WARNING: Enum "anon_enum_32": Some values do not have unique names */\n\nvoid ssh2_pkt_defer_noqueue(Ssh_conflict ssh,Packet *pkt,int noignore)\n\n{\n  int iVar1;\n  Packet *pkt_00;\n  uchar *puVar2;\n  int iVar3;\n  \n  if ((((ssh->cscipher != (ssh2_cipher *)0x0) && ((ssh->cscipher->flags & 1) != 0)) &&\n      (noignore == 0 && ssh->deferred_len == 0)) && ((ssh->remote_bugs & 0x200) == 0)) {\n    pkt_00 = ssh2_pkt_init(2);\n    ssh_pkt_addstring_start(pkt_00);\n    ssh2_pkt_defer_noqueue(ssh,pkt_00,1);\n  }\n  iVar1 = ssh2_pkt_construct(ssh,pkt);\n  iVar3 = iVar1 + ssh->deferred_len;\n  if (ssh->deferred_size < iVar3) {\n    iVar3 = iVar3 + 0x80;\n    ssh->deferred_size = iVar3;\n    puVar2 = (uchar *)saferealloc(ssh->deferred_send_data,(long)iVar3,1);\n    ssh->deferred_send_data = puVar2;\n  }\n  memcpy(ssh->deferred_send_data + ssh->deferred_len,pkt->body,(long)iVar1);\n  ssh->deferred_len = ssh->deferred_len + iVar1;\n  ssh->deferred_data_size = ssh->deferred_data_size + pkt->encrypted_len;\n  ssh_free_packet(pkt);\n  return;\n}\n\n" comment (function_definition "void ssh2_pkt_defer_noqueue(Ssh_conflict ssh,Packet *pkt,int noignore)\n\n{\n  int iVar1;\n  Packet *pkt_00;\n  uchar *puVar2;\n  int iVar3;\n  \n  if ((((ssh->cscipher != (ssh2_cipher *)0x0) && ((ssh->cscipher->flags & 1) != 0)) &&\n      (noignore == 0 && ssh->deferred_len == 0)) && ((ssh->remote_bugs & 0x200) == 0)) {\n    pkt_00 = ssh2_pkt_init(2);\n    ssh_pkt_addstring_start(pkt_00);\n    ssh2_pkt_defer_noqueue(ssh,pkt_00,1);\n  }\n  iVar1 = ssh2_pkt_construct(ssh,pkt);\n  iVar3 = iVar1 + ssh->deferred_len;\n  if (ssh->deferred_size < iVar3) {\n    iVar3 = iVar3 + 0x80;\n    ssh->deferred_size = iVar3;\n    puVar2 = (uchar *)saferealloc(ssh->deferred_send_data,(long)iVar3,1);\n    ssh->deferred_send_data = puVar2;\n  }\n  memcpy(ssh->deferred_send_data + ssh->deferred_len,pkt->body,(long)iVar1);\n  ssh->deferred_len = ssh->deferred_len + iVar1;\n  ssh->deferred_data_size = ssh->deferred_data_size + pkt->encrypted_len;\n  ssh_free_packet(pkt);\n  return;\n}" primitive_type (function_declarator "ssh2_pkt_defer_noqueue(Ssh_conflict ssh,Packet *pkt,int noignore)" identifier (parameter_list "(Ssh_conflict ssh,Packet *pkt,int noignore)" ( (parameter_declaration "Ssh_conflict ssh" type_identifier identifier) , (parameter_declaration "Packet *pkt" type_identifier (pointer_declarator "*pkt" * identifier)) , (parameter_declaration "int noignore" primitive_type identifier) ))) (compound_statement "{\n  int iVar1;\n  Packet *pkt_00;\n  uchar *puVar2;\n  int iVar3;\n  \n  if ((((ssh->cscipher != (ssh2_cipher *)0x0) && ((ssh->cscipher->flags & 1) != 0)) &&\n      (noignore == 0 && ssh->deferred_len == 0)) && ((ssh->remote_bugs & 0x200) == 0)) {\n    pkt_00 = ssh2_pkt_init(2);\n    ssh_pkt_addstring_start(pkt_00);\n    ssh2_pkt_defer_noqueue(ssh,pkt_00,1);\n  }\n  iVar1 = ssh2_pkt_construct(ssh,pkt);\n  iVar3 = iVar1 + ssh->deferred_len;\n  if (ssh->deferred_size < iVar3) {\n    iVar3 = iVar3 + 0x80;\n    ssh->deferred_size = iVar3;\n    puVar2 = (uchar *)saferealloc(ssh->deferred_send_data,(long)iVar3,1);\n    ssh->deferred_send_data = puVar2;\n  }\n  memcpy(ssh->deferred_send_data + ssh->deferred_len,pkt->body,(long)iVar1);\n  ssh->deferred_len = ssh->deferred_len + iVar1;\n  ssh->deferred_data_size = ssh->deferred_data_size + pkt->encrypted_len;\n  ssh_free_packet(pkt);\n  return;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "Packet *pkt_00;" type_identifier (pointer_declarator "*pkt_00" * identifier) ;) (declaration "uchar *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (if_statement "if ((((ssh->cscipher != (ssh2_cipher *)0x0) && ((ssh->cscipher->flags & 1) != 0)) &&\n      (noignore == 0 && ssh->deferred_len == 0)) && ((ssh->remote_bugs & 0x200) == 0)) {\n    pkt_00 = ssh2_pkt_init(2);\n    ssh_pkt_addstring_start(pkt_00);\n    ssh2_pkt_defer_noqueue(ssh,pkt_00,1);\n  }" if (parenthesized_expression "((((ssh->cscipher != (ssh2_cipher *)0x0) && ((ssh->cscipher->flags & 1) != 0)) &&\n      (noignore == 0 && ssh->deferred_len == 0)) && ((ssh->remote_bugs & 0x200) == 0))" ( (binary_expression "(((ssh->cscipher != (ssh2_cipher *)0x0) && ((ssh->cscipher->flags & 1) != 0)) &&\n      (noignore == 0 && ssh->deferred_len == 0)) && ((ssh->remote_bugs & 0x200) == 0)" (parenthesized_expression "(((ssh->cscipher != (ssh2_cipher *)0x0) && ((ssh->cscipher->flags & 1) != 0)) &&\n      (noignore == 0 && ssh->deferred_len == 0))" ( (binary_expression "((ssh->cscipher != (ssh2_cipher *)0x0) && ((ssh->cscipher->flags & 1) != 0)) &&\n      (noignore == 0 && ssh->deferred_len == 0)" (parenthesized_expression "((ssh->cscipher != (ssh2_cipher *)0x0) && ((ssh->cscipher->flags & 1) != 0))" ( (binary_expression "(ssh->cscipher != (ssh2_cipher *)0x0) && ((ssh->cscipher->flags & 1) != 0)" (parenthesized_expression "(ssh->cscipher != (ssh2_cipher *)0x0)" ( (binary_expression "ssh->cscipher != (ssh2_cipher *)0x0" (field_expression "ssh->cscipher" identifier -> field_identifier) != (cast_expression "(ssh2_cipher *)0x0" ( (type_descriptor "ssh2_cipher *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "((ssh->cscipher->flags & 1) != 0)" ( (binary_expression "(ssh->cscipher->flags & 1) != 0" (parenthesized_expression "(ssh->cscipher->flags & 1)" ( (binary_expression "ssh->cscipher->flags & 1" (field_expression "ssh->cscipher->flags" (field_expression "ssh->cscipher" identifier -> field_identifier) -> field_identifier) & number_literal) )) != number_literal) ))) )) && (parenthesized_expression "(noignore == 0 && ssh->deferred_len == 0)" ( (binary_expression "noignore == 0 && ssh->deferred_len == 0" (binary_expression "noignore == 0" identifier == number_literal) && (binary_expression "ssh->deferred_len == 0" (field_expression "ssh->deferred_len" identifier -> field_identifier) == number_literal)) ))) )) && (parenthesized_expression "((ssh->remote_bugs & 0x200) == 0)" ( (binary_expression "(ssh->remote_bugs & 0x200) == 0" (parenthesized_expression "(ssh->remote_bugs & 0x200)" ( (binary_expression "ssh->remote_bugs & 0x200" (field_expression "ssh->remote_bugs" identifier -> field_identifier) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n    pkt_00 = ssh2_pkt_init(2);\n    ssh_pkt_addstring_start(pkt_00);\n    ssh2_pkt_defer_noqueue(ssh,pkt_00,1);\n  }" { (expression_statement "pkt_00 = ssh2_pkt_init(2);" (assignment_expression "pkt_00 = ssh2_pkt_init(2)" identifier = (call_expression "ssh2_pkt_init(2)" identifier (argument_list "(2)" ( number_literal )))) ;) (expression_statement "ssh_pkt_addstring_start(pkt_00);" (call_expression "ssh_pkt_addstring_start(pkt_00)" identifier (argument_list "(pkt_00)" ( identifier ))) ;) (expression_statement "ssh2_pkt_defer_noqueue(ssh,pkt_00,1);" (call_expression "ssh2_pkt_defer_noqueue(ssh,pkt_00,1)" identifier (argument_list "(ssh,pkt_00,1)" ( identifier , identifier , number_literal ))) ;) })) (expression_statement "iVar1 = ssh2_pkt_construct(ssh,pkt);" (assignment_expression "iVar1 = ssh2_pkt_construct(ssh,pkt)" identifier = (call_expression "ssh2_pkt_construct(ssh,pkt)" identifier (argument_list "(ssh,pkt)" ( identifier , identifier )))) ;) (expression_statement "iVar3 = iVar1 + ssh->deferred_len;" (assignment_expression "iVar3 = iVar1 + ssh->deferred_len" identifier = (binary_expression "iVar1 + ssh->deferred_len" identifier + (field_expression "ssh->deferred_len" identifier -> field_identifier))) ;) (if_statement "if (ssh->deferred_size < iVar3) {\n    iVar3 = iVar3 + 0x80;\n    ssh->deferred_size = iVar3;\n    puVar2 = (uchar *)saferealloc(ssh->deferred_send_data,(long)iVar3,1);\n    ssh->deferred_send_data = puVar2;\n  }" if (parenthesized_expression "(ssh->deferred_size < iVar3)" ( (binary_expression "ssh->deferred_size < iVar3" (field_expression "ssh->deferred_size" identifier -> field_identifier) < identifier) )) (compound_statement "{\n    iVar3 = iVar3 + 0x80;\n    ssh->deferred_size = iVar3;\n    puVar2 = (uchar *)saferealloc(ssh->deferred_send_data,(long)iVar3,1);\n    ssh->deferred_send_data = puVar2;\n  }" { (expression_statement "iVar3 = iVar3 + 0x80;" (assignment_expression "iVar3 = iVar3 + 0x80" identifier = (binary_expression "iVar3 + 0x80" identifier + number_literal)) ;) (expression_statement "ssh->deferred_size = iVar3;" (assignment_expression "ssh->deferred_size = iVar3" (field_expression "ssh->deferred_size" identifier -> field_identifier) = identifier) ;) (expression_statement "puVar2 = (uchar *)saferealloc(ssh->deferred_send_data,(long)iVar3,1);" (assignment_expression "puVar2 = (uchar *)saferealloc(ssh->deferred_send_data,(long)iVar3,1)" identifier = (cast_expression "(uchar *)saferealloc(ssh->deferred_send_data,(long)iVar3,1)" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "saferealloc(ssh->deferred_send_data,(long)iVar3,1)" identifier (argument_list "(ssh->deferred_send_data,(long)iVar3,1)" ( (field_expression "ssh->deferred_send_data" identifier -> field_identifier) , (cast_expression "(long)iVar3" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) , number_literal ))))) ;) (expression_statement "ssh->deferred_send_data = puVar2;" (assignment_expression "ssh->deferred_send_data = puVar2" (field_expression "ssh->deferred_send_data" identifier -> field_identifier) = identifier) ;) })) (expression_statement "memcpy(ssh->deferred_send_data + ssh->deferred_len,pkt->body,(long)iVar1);" (call_expression "memcpy(ssh->deferred_send_data + ssh->deferred_len,pkt->body,(long)iVar1)" identifier (argument_list "(ssh->deferred_send_data + ssh->deferred_len,pkt->body,(long)iVar1)" ( (binary_expression "ssh->deferred_send_data + ssh->deferred_len" (field_expression "ssh->deferred_send_data" identifier -> field_identifier) + (field_expression "ssh->deferred_len" identifier -> field_identifier)) , (field_expression "pkt->body" identifier -> field_identifier) , (cast_expression "(long)iVar1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) ))) ;) (expression_statement "ssh->deferred_len = ssh->deferred_len + iVar1;" (assignment_expression "ssh->deferred_len = ssh->deferred_len + iVar1" (field_expression "ssh->deferred_len" identifier -> field_identifier) = (binary_expression "ssh->deferred_len + iVar1" (field_expression "ssh->deferred_len" identifier -> field_identifier) + identifier)) ;) (expression_statement "ssh->deferred_data_size = ssh->deferred_data_size + pkt->encrypted_len;" (assignment_expression "ssh->deferred_data_size = ssh->deferred_data_size + pkt->encrypted_len" (field_expression "ssh->deferred_data_size" identifier -> field_identifier) = (binary_expression "ssh->deferred_data_size + pkt->encrypted_len" (field_expression "ssh->deferred_data_size" identifier -> field_identifier) + (field_expression "pkt->encrypted_len" identifier -> field_identifier))) ;) (expression_statement "ssh_free_packet(pkt);" (call_expression "ssh_free_packet(pkt)" identifier (argument_list "(pkt)" ( identifier ))) ;) (return_statement "return;" return ;) })))
(translation_unit "void FUN_0011a8aa(long param_1,long param_2,int param_3)\n\n{\n  int iVar1;\n  undefined8 uVar2;\n  int iVar3;\n  \n  if ((((*(long *)(param_1 + 0x88) != 0) && ((*(byte *)(*(long *)(param_1 + 0x88) + 0x54) & 1) != 0)\n       ) && (param_3 == 0 && *(int *)(param_1 + 0x208) == 0)) &&\n     ((*(byte *)(param_1 + 0x6d) & 2) == 0)) {\n    uVar2 = FUN_00118f71(2);\n    FUN_001190b0(uVar2);\n    FUN_0011a8aa(param_1,uVar2,1);\n  }\n  iVar1 = FUN_0011a173(param_1,param_2);\n  iVar3 = iVar1 + *(int *)(param_1 + 0x208);\n  if (*(int *)(param_1 + 0x20c) < iVar3) {\n    iVar3 = iVar3 + 0x80;\n    *(int *)(param_1 + 0x20c) = iVar3;\n    uVar2 = FUN_0010ee09(*(undefined8 *)(param_1 + 0x200),(long)iVar3,1);\n    *(undefined8 *)(param_1 + 0x200) = uVar2;\n  }\n  memcpy((void *)((long)*(int *)(param_1 + 0x208) + *(long *)(param_1 + 0x200)),\n         *(void **)(param_2 + 0x28),(long)iVar1);\n  *(int *)(param_1 + 0x208) = *(int *)(param_1 + 0x208) + iVar1;\n  *(long *)(param_1 + 0xc00) = *(long *)(param_1 + 0xc00) + *(long *)(param_2 + 0x40);\n  FUN_00118957(param_2);\n  return;\n}\n\n" (function_definition "void FUN_0011a8aa(long param_1,long param_2,int param_3)\n\n{\n  int iVar1;\n  undefined8 uVar2;\n  int iVar3;\n  \n  if ((((*(long *)(param_1 + 0x88) != 0) && ((*(byte *)(*(long *)(param_1 + 0x88) + 0x54) & 1) != 0)\n       ) && (param_3 == 0 && *(int *)(param_1 + 0x208) == 0)) &&\n     ((*(byte *)(param_1 + 0x6d) & 2) == 0)) {\n    uVar2 = FUN_00118f71(2);\n    FUN_001190b0(uVar2);\n    FUN_0011a8aa(param_1,uVar2,1);\n  }\n  iVar1 = FUN_0011a173(param_1,param_2);\n  iVar3 = iVar1 + *(int *)(param_1 + 0x208);\n  if (*(int *)(param_1 + 0x20c) < iVar3) {\n    iVar3 = iVar3 + 0x80;\n    *(int *)(param_1 + 0x20c) = iVar3;\n    uVar2 = FUN_0010ee09(*(undefined8 *)(param_1 + 0x200),(long)iVar3,1);\n    *(undefined8 *)(param_1 + 0x200) = uVar2;\n  }\n  memcpy((void *)((long)*(int *)(param_1 + 0x208) + *(long *)(param_1 + 0x200)),\n         *(void **)(param_2 + 0x28),(long)iVar1);\n  *(int *)(param_1 + 0x208) = *(int *)(param_1 + 0x208) + iVar1;\n  *(long *)(param_1 + 0xc00) = *(long *)(param_1 + 0xc00) + *(long *)(param_2 + 0x40);\n  FUN_00118957(param_2);\n  return;\n}" primitive_type (function_declarator "FUN_0011a8aa(long param_1,long param_2,int param_3)" identifier (parameter_list "(long param_1,long param_2,int param_3)" ( (parameter_declaration "long param_1" (sized_type_specifier "long" long) identifier) , (parameter_declaration "long param_2" (sized_type_specifier "long" long) identifier) , (parameter_declaration "int param_3" primitive_type identifier) ))) (compound_statement "{\n  int iVar1;\n  undefined8 uVar2;\n  int iVar3;\n  \n  if ((((*(long *)(param_1 + 0x88) != 0) && ((*(byte *)(*(long *)(param_1 + 0x88) + 0x54) & 1) != 0)\n       ) && (param_3 == 0 && *(int *)(param_1 + 0x208) == 0)) &&\n     ((*(byte *)(param_1 + 0x6d) & 2) == 0)) {\n    uVar2 = FUN_00118f71(2);\n    FUN_001190b0(uVar2);\n    FUN_0011a8aa(param_1,uVar2,1);\n  }\n  iVar1 = FUN_0011a173(param_1,param_2);\n  iVar3 = iVar1 + *(int *)(param_1 + 0x208);\n  if (*(int *)(param_1 + 0x20c) < iVar3) {\n    iVar3 = iVar3 + 0x80;\n    *(int *)(param_1 + 0x20c) = iVar3;\n    uVar2 = FUN_0010ee09(*(undefined8 *)(param_1 + 0x200),(long)iVar3,1);\n    *(undefined8 *)(param_1 + 0x200) = uVar2;\n  }\n  memcpy((void *)((long)*(int *)(param_1 + 0x208) + *(long *)(param_1 + 0x200)),\n         *(void **)(param_2 + 0x28),(long)iVar1);\n  *(int *)(param_1 + 0x208) = *(int *)(param_1 + 0x208) + iVar1;\n  *(long *)(param_1 + 0xc00) = *(long *)(param_1 + 0xc00) + *(long *)(param_2 + 0x40);\n  FUN_00118957(param_2);\n  return;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "undefined8 uVar2;" type_identifier identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (if_statement "if ((((*(long *)(param_1 + 0x88) != 0) && ((*(byte *)(*(long *)(param_1 + 0x88) + 0x54) & 1) != 0)\n       ) && (param_3 == 0 && *(int *)(param_1 + 0x208) == 0)) &&\n     ((*(byte *)(param_1 + 0x6d) & 2) == 0)) {\n    uVar2 = FUN_00118f71(2);\n    FUN_001190b0(uVar2);\n    FUN_0011a8aa(param_1,uVar2,1);\n  }" if (parenthesized_expression "((((*(long *)(param_1 + 0x88) != 0) && ((*(byte *)(*(long *)(param_1 + 0x88) + 0x54) & 1) != 0)\n       ) && (param_3 == 0 && *(int *)(param_1 + 0x208) == 0)) &&\n     ((*(byte *)(param_1 + 0x6d) & 2) == 0))" ( (binary_expression "(((*(long *)(param_1 + 0x88) != 0) && ((*(byte *)(*(long *)(param_1 + 0x88) + 0x54) & 1) != 0)\n       ) && (param_3 == 0 && *(int *)(param_1 + 0x208) == 0)) &&\n     ((*(byte *)(param_1 + 0x6d) & 2) == 0)" (parenthesized_expression "(((*(long *)(param_1 + 0x88) != 0) && ((*(byte *)(*(long *)(param_1 + 0x88) + 0x54) & 1) != 0)\n       ) && (param_3 == 0 && *(int *)(param_1 + 0x208) == 0))" ( (binary_expression "((*(long *)(param_1 + 0x88) != 0) && ((*(byte *)(*(long *)(param_1 + 0x88) + 0x54) & 1) != 0)\n       ) && (param_3 == 0 && *(int *)(param_1 + 0x208) == 0)" (parenthesized_expression "((*(long *)(param_1 + 0x88) != 0) && ((*(byte *)(*(long *)(param_1 + 0x88) + 0x54) & 1) != 0)\n       )" ( (binary_expression "(*(long *)(param_1 + 0x88) != 0) && ((*(byte *)(*(long *)(param_1 + 0x88) + 0x54) & 1) != 0)" (parenthesized_expression "(*(long *)(param_1 + 0x88) != 0)" ( (binary_expression "*(long *)(param_1 + 0x88) != 0" (pointer_expression "*(long *)(param_1 + 0x88)" * (cast_expression "(long *)(param_1 + 0x88)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x88)" ( (binary_expression "param_1 + 0x88" identifier + number_literal) )))) != number_literal) )) && (parenthesized_expression "((*(byte *)(*(long *)(param_1 + 0x88) + 0x54) & 1) != 0)" ( (binary_expression "(*(byte *)(*(long *)(param_1 + 0x88) + 0x54) & 1) != 0" (parenthesized_expression "(*(byte *)(*(long *)(param_1 + 0x88) + 0x54) & 1)" ( (binary_expression "*(byte *)(*(long *)(param_1 + 0x88) + 0x54) & 1" (pointer_expression "*(byte *)(*(long *)(param_1 + 0x88) + 0x54)" * (cast_expression "(byte *)(*(long *)(param_1 + 0x88) + 0x54)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(param_1 + 0x88) + 0x54)" ( (binary_expression "*(long *)(param_1 + 0x88) + 0x54" (pointer_expression "*(long *)(param_1 + 0x88)" * (cast_expression "(long *)(param_1 + 0x88)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x88)" ( (binary_expression "param_1 + 0x88" identifier + number_literal) )))) + number_literal) )))) & number_literal) )) != number_literal) ))) )) && (parenthesized_expression "(param_3 == 0 && *(int *)(param_1 + 0x208) == 0)" ( (binary_expression "param_3 == 0 && *(int *)(param_1 + 0x208) == 0" (binary_expression "param_3 == 0" identifier == number_literal) && (binary_expression "*(int *)(param_1 + 0x208) == 0" (pointer_expression "*(int *)(param_1 + 0x208)" * (cast_expression "(int *)(param_1 + 0x208)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x208)" ( (binary_expression "param_1 + 0x208" identifier + number_literal) )))) == number_literal)) ))) )) && (parenthesized_expression "((*(byte *)(param_1 + 0x6d) & 2) == 0)" ( (binary_expression "(*(byte *)(param_1 + 0x6d) & 2) == 0" (parenthesized_expression "(*(byte *)(param_1 + 0x6d) & 2)" ( (binary_expression "*(byte *)(param_1 + 0x6d) & 2" (pointer_expression "*(byte *)(param_1 + 0x6d)" * (cast_expression "(byte *)(param_1 + 0x6d)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x6d)" ( (binary_expression "param_1 + 0x6d" identifier + number_literal) )))) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n    uVar2 = FUN_00118f71(2);\n    FUN_001190b0(uVar2);\n    FUN_0011a8aa(param_1,uVar2,1);\n  }" { (expression_statement "uVar2 = FUN_00118f71(2);" (assignment_expression "uVar2 = FUN_00118f71(2)" identifier = (call_expression "FUN_00118f71(2)" identifier (argument_list "(2)" ( number_literal )))) ;) (expression_statement "FUN_001190b0(uVar2);" (call_expression "FUN_001190b0(uVar2)" identifier (argument_list "(uVar2)" ( identifier ))) ;) (expression_statement "FUN_0011a8aa(param_1,uVar2,1);" (call_expression "FUN_0011a8aa(param_1,uVar2,1)" identifier (argument_list "(param_1,uVar2,1)" ( identifier , identifier , number_literal ))) ;) })) (expression_statement "iVar1 = FUN_0011a173(param_1,param_2);" (assignment_expression "iVar1 = FUN_0011a173(param_1,param_2)" identifier = (call_expression "FUN_0011a173(param_1,param_2)" identifier (argument_list "(param_1,param_2)" ( identifier , identifier )))) ;) (expression_statement "iVar3 = iVar1 + *(int *)(param_1 + 0x208);" (assignment_expression "iVar3 = iVar1 + *(int *)(param_1 + 0x208)" identifier = (binary_expression "iVar1 + *(int *)(param_1 + 0x208)" identifier + (pointer_expression "*(int *)(param_1 + 0x208)" * (cast_expression "(int *)(param_1 + 0x208)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x208)" ( (binary_expression "param_1 + 0x208" identifier + number_literal) )))))) ;) (if_statement "if (*(int *)(param_1 + 0x20c) < iVar3) {\n    iVar3 = iVar3 + 0x80;\n    *(int *)(param_1 + 0x20c) = iVar3;\n    uVar2 = FUN_0010ee09(*(undefined8 *)(param_1 + 0x200),(long)iVar3,1);\n    *(undefined8 *)(param_1 + 0x200) = uVar2;\n  }" if (parenthesized_expression "(*(int *)(param_1 + 0x20c) < iVar3)" ( (binary_expression "*(int *)(param_1 + 0x20c) < iVar3" (pointer_expression "*(int *)(param_1 + 0x20c)" * (cast_expression "(int *)(param_1 + 0x20c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20c)" ( (binary_expression "param_1 + 0x20c" identifier + number_literal) )))) < identifier) )) (compound_statement "{\n    iVar3 = iVar3 + 0x80;\n    *(int *)(param_1 + 0x20c) = iVar3;\n    uVar2 = FUN_0010ee09(*(undefined8 *)(param_1 + 0x200),(long)iVar3,1);\n    *(undefined8 *)(param_1 + 0x200) = uVar2;\n  }" { (expression_statement "iVar3 = iVar3 + 0x80;" (assignment_expression "iVar3 = iVar3 + 0x80" identifier = (binary_expression "iVar3 + 0x80" identifier + number_literal)) ;) (expression_statement "*(int *)(param_1 + 0x20c) = iVar3;" (assignment_expression "*(int *)(param_1 + 0x20c) = iVar3" (pointer_expression "*(int *)(param_1 + 0x20c)" * (cast_expression "(int *)(param_1 + 0x20c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20c)" ( (binary_expression "param_1 + 0x20c" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar2 = FUN_0010ee09(*(undefined8 *)(param_1 + 0x200),(long)iVar3,1);" (assignment_expression "uVar2 = FUN_0010ee09(*(undefined8 *)(param_1 + 0x200),(long)iVar3,1)" identifier = (call_expression "FUN_0010ee09(*(undefined8 *)(param_1 + 0x200),(long)iVar3,1)" identifier (argument_list "(*(undefined8 *)(param_1 + 0x200),(long)iVar3,1)" ( (pointer_expression "*(undefined8 *)(param_1 + 0x200)" * (cast_expression "(undefined8 *)(param_1 + 0x200)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x200)" ( (binary_expression "param_1 + 0x200" identifier + number_literal) )))) , (cast_expression "(long)iVar3" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) , number_literal )))) ;) (expression_statement "*(undefined8 *)(param_1 + 0x200) = uVar2;" (assignment_expression "*(undefined8 *)(param_1 + 0x200) = uVar2" (pointer_expression "*(undefined8 *)(param_1 + 0x200)" * (cast_expression "(undefined8 *)(param_1 + 0x200)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x200)" ( (binary_expression "param_1 + 0x200" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "memcpy((void *)((long)*(int *)(param_1 + 0x208) + *(long *)(param_1 + 0x200)),\n         *(void **)(param_2 + 0x28),(long)iVar1);" (call_expression "memcpy((void *)((long)*(int *)(param_1 + 0x208) + *(long *)(param_1 + 0x200)),\n         *(void **)(param_2 + 0x28),(long)iVar1)" identifier (argument_list "((void *)((long)*(int *)(param_1 + 0x208) + *(long *)(param_1 + 0x200)),\n         *(void **)(param_2 + 0x28),(long)iVar1)" ( (cast_expression "(void *)((long)*(int *)(param_1 + 0x208) + *(long *)(param_1 + 0x200))" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)*(int *)(param_1 + 0x208) + *(long *)(param_1 + 0x200))" ( (binary_expression "(long)*(int *)(param_1 + 0x208) + *(long *)(param_1 + 0x200)" (cast_expression "(long)*(int *)(param_1 + 0x208)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "*(int *)(param_1 + 0x208)" * (cast_expression "(int *)(param_1 + 0x208)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x208)" ( (binary_expression "param_1 + 0x208" identifier + number_literal) ))))) + (pointer_expression "*(long *)(param_1 + 0x200)" * (cast_expression "(long *)(param_1 + 0x200)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x200)" ( (binary_expression "param_1 + 0x200" identifier + number_literal) ))))) ))) , (pointer_expression "*(void **)(param_2 + 0x28)" * (cast_expression "(void **)(param_2 + 0x28)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0x28)" ( (binary_expression "param_2 + 0x28" identifier + number_literal) )))) , (cast_expression "(long)iVar1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) ))) ;) (expression_statement "*(int *)(param_1 + 0x208) = *(int *)(param_1 + 0x208) + iVar1;" (assignment_expression "*(int *)(param_1 + 0x208) = *(int *)(param_1 + 0x208) + iVar1" (pointer_expression "*(int *)(param_1 + 0x208)" * (cast_expression "(int *)(param_1 + 0x208)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x208)" ( (binary_expression "param_1 + 0x208" identifier + number_literal) )))) = (binary_expression "*(int *)(param_1 + 0x208) + iVar1" (pointer_expression "*(int *)(param_1 + 0x208)" * (cast_expression "(int *)(param_1 + 0x208)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x208)" ( (binary_expression "param_1 + 0x208" identifier + number_literal) )))) + identifier)) ;) (expression_statement "*(long *)(param_1 + 0xc00) = *(long *)(param_1 + 0xc00) + *(long *)(param_2 + 0x40);" (assignment_expression "*(long *)(param_1 + 0xc00) = *(long *)(param_1 + 0xc00) + *(long *)(param_2 + 0x40)" (pointer_expression "*(long *)(param_1 + 0xc00)" * (cast_expression "(long *)(param_1 + 0xc00)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc00)" ( (binary_expression "param_1 + 0xc00" identifier + number_literal) )))) = (binary_expression "*(long *)(param_1 + 0xc00) + *(long *)(param_2 + 0x40)" (pointer_expression "*(long *)(param_1 + 0xc00)" * (cast_expression "(long *)(param_1 + 0xc00)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc00)" ( (binary_expression "param_1 + 0xc00" identifier + number_literal) )))) + (pointer_expression "*(long *)(param_2 + 0x40)" * (cast_expression "(long *)(param_2 + 0x40)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x40)" ( (binary_expression "param_2 + 0x40" identifier + number_literal) )))))) ;) (expression_statement "FUN_00118957(param_2);" (call_expression "FUN_00118957(param_2)" identifier (argument_list "(param_2)" ( identifier ))) ;) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration (sized_type_specifier long) IDENT) , (parameter_declaration (sized_type_specifier long) IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) && (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) & LIT) )) != LIT) ))) )) && (parenthesized_expression ( (binary_expression (binary_expression IDENT == LIT) && (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == 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 ( LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , LIT ))) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) , LIT )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) })) (expression_statement (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) + (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ))) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (cast_expression ( (type_descriptor (sized_type_specifier long)) ) 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)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (return_statement return ;) })))
(function_definition "void FUN_0011a8aa(long param_1,long param_2,int param_3)\n\n{\n  int iVar1;\n  undefined8 uVar2;\n  int iVar3;\n  \n  if ((((*(long *)(param_1 + 0x88) != 0) && ((*(byte *)(*(long *)(param_1 + 0x88) + 0x54) & 1) != 0)\n       ) && (param_3 == 0 && *(int *)(param_1 + 0x208) == 0)) &&\n     ((*(byte *)(param_1 + 0x6d) & 2) == 0)) {\n    uVar2 = FUN_00118f71(2);\n    FUN_001190b0(uVar2);\n    FUN_0011a8aa(param_1,uVar2,1);\n  }\n  iVar1 = FUN_0011a173(param_1,param_2);\n  iVar3 = iVar1 + *(int *)(param_1 + 0x208);\n  if (*(int *)(param_1 + 0x20c) < iVar3) {\n    iVar3 = iVar3 + 0x80;\n    *(int *)(param_1 + 0x20c) = iVar3;\n    uVar2 = FUN_0010ee09(*(undefined8 *)(param_1 + 0x200),(long)iVar3,1);\n    *(undefined8 *)(param_1 + 0x200) = uVar2;\n  }\n  memcpy((void *)((long)*(int *)(param_1 + 0x208) + *(long *)(param_1 + 0x200)),\n         *(void **)(param_2 + 0x28),(long)iVar1);\n  *(int *)(param_1 + 0x208) = *(int *)(param_1 + 0x208) + iVar1;\n  *(long *)(param_1 + 0xc00) = *(long *)(param_1 + 0xc00) + *(long *)(param_2 + 0x40);\n  FUN_00118957(param_2);\n  return;\n}" (primitive_type "void") (function_declarator "FUN_0011a8aa(long param_1,long param_2,int param_3)" (identifier "FUN_0011a8aa") (parameter_list "(long param_1,long param_2,int param_3)" (( "(") (parameter_declaration "long param_1" (sized_type_specifier "long" (long "long")) (identifier "param_1")) (, ",") (parameter_declaration "long param_2" (sized_type_specifier "long" (long "long")) (identifier "param_2")) (, ",") (parameter_declaration "int param_3" (primitive_type "int") (identifier "param_3")) () ")"))) (compound_statement "{\n  int iVar1;\n  undefined8 uVar2;\n  int iVar3;\n  \n  if ((((*(long *)(param_1 + 0x88) != 0) && ((*(byte *)(*(long *)(param_1 + 0x88) + 0x54) & 1) != 0)\n       ) && (param_3 == 0 && *(int *)(param_1 + 0x208) == 0)) &&\n     ((*(byte *)(param_1 + 0x6d) & 2) == 0)) {\n    uVar2 = FUN_00118f71(2);\n    FUN_001190b0(uVar2);\n    FUN_0011a8aa(param_1,uVar2,1);\n  }\n  iVar1 = FUN_0011a173(param_1,param_2);\n  iVar3 = iVar1 + *(int *)(param_1 + 0x208);\n  if (*(int *)(param_1 + 0x20c) < iVar3) {\n    iVar3 = iVar3 + 0x80;\n    *(int *)(param_1 + 0x20c) = iVar3;\n    uVar2 = FUN_0010ee09(*(undefined8 *)(param_1 + 0x200),(long)iVar3,1);\n    *(undefined8 *)(param_1 + 0x200) = uVar2;\n  }\n  memcpy((void *)((long)*(int *)(param_1 + 0x208) + *(long *)(param_1 + 0x200)),\n         *(void **)(param_2 + 0x28),(long)iVar1);\n  *(int *)(param_1 + 0x208) = *(int *)(param_1 + 0x208) + iVar1;\n  *(long *)(param_1 + 0xc00) = *(long *)(param_1 + 0xc00) + *(long *)(param_2 + 0x40);\n  FUN_00118957(param_2);\n  return;\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (declaration "undefined8 uVar2;" (type_identifier "undefined8") (identifier "uVar2") (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (if_statement "if ((((*(long *)(param_1 + 0x88) != 0) && ((*(byte *)(*(long *)(param_1 + 0x88) + 0x54) & 1) != 0)\n       ) && (param_3 == 0 && *(int *)(param_1 + 0x208) == 0)) &&\n     ((*(byte *)(param_1 + 0x6d) & 2) == 0)) {\n    uVar2 = FUN_00118f71(2);\n    FUN_001190b0(uVar2);\n    FUN_0011a8aa(param_1,uVar2,1);\n  }" (if "if") (parenthesized_expression "((((*(long *)(param_1 + 0x88) != 0) && ((*(byte *)(*(long *)(param_1 + 0x88) + 0x54) & 1) != 0)\n       ) && (param_3 == 0 && *(int *)(param_1 + 0x208) == 0)) &&\n     ((*(byte *)(param_1 + 0x6d) & 2) == 0))" (( "(") (binary_expression "(((*(long *)(param_1 + 0x88) != 0) && ((*(byte *)(*(long *)(param_1 + 0x88) + 0x54) & 1) != 0)\n       ) && (param_3 == 0 && *(int *)(param_1 + 0x208) == 0)) &&\n     ((*(byte *)(param_1 + 0x6d) & 2) == 0)" (parenthesized_expression "(((*(long *)(param_1 + 0x88) != 0) && ((*(byte *)(*(long *)(param_1 + 0x88) + 0x54) & 1) != 0)\n       ) && (param_3 == 0 && *(int *)(param_1 + 0x208) == 0))" (( "(") (binary_expression "((*(long *)(param_1 + 0x88) != 0) && ((*(byte *)(*(long *)(param_1 + 0x88) + 0x54) & 1) != 0)\n       ) && (param_3 == 0 && *(int *)(param_1 + 0x208) == 0)" (parenthesized_expression "((*(long *)(param_1 + 0x88) != 0) && ((*(byte *)(*(long *)(param_1 + 0x88) + 0x54) & 1) != 0)\n       )" (( "(") (binary_expression "(*(long *)(param_1 + 0x88) != 0) && ((*(byte *)(*(long *)(param_1 + 0x88) + 0x54) & 1) != 0)" (parenthesized_expression "(*(long *)(param_1 + 0x88) != 0)" (( "(") (binary_expression "*(long *)(param_1 + 0x88) != 0" (pointer_expression "*(long *)(param_1 + 0x88)" (* "*") (cast_expression "(long *)(param_1 + 0x88)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x88)" (( "(") (binary_expression "param_1 + 0x88" (identifier "param_1") (+ "+") (number_literal "0x88")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "((*(byte *)(*(long *)(param_1 + 0x88) + 0x54) & 1) != 0)" (( "(") (binary_expression "(*(byte *)(*(long *)(param_1 + 0x88) + 0x54) & 1) != 0" (parenthesized_expression "(*(byte *)(*(long *)(param_1 + 0x88) + 0x54) & 1)" (( "(") (binary_expression "*(byte *)(*(long *)(param_1 + 0x88) + 0x54) & 1" (pointer_expression "*(byte *)(*(long *)(param_1 + 0x88) + 0x54)" (* "*") (cast_expression "(byte *)(*(long *)(param_1 + 0x88) + 0x54)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(long *)(param_1 + 0x88) + 0x54)" (( "(") (binary_expression "*(long *)(param_1 + 0x88) + 0x54" (pointer_expression "*(long *)(param_1 + 0x88)" (* "*") (cast_expression "(long *)(param_1 + 0x88)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x88)" (( "(") (binary_expression "param_1 + 0x88" (identifier "param_1") (+ "+") (number_literal "0x88")) () ")")))) (+ "+") (number_literal "0x54")) () ")")))) (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(param_3 == 0 && *(int *)(param_1 + 0x208) == 0)" (( "(") (binary_expression "param_3 == 0 && *(int *)(param_1 + 0x208) == 0" (binary_expression "param_3 == 0" (identifier "param_3") (== "==") (number_literal "0")) (&& "&&") (binary_expression "*(int *)(param_1 + 0x208) == 0" (pointer_expression "*(int *)(param_1 + 0x208)" (* "*") (cast_expression "(int *)(param_1 + 0x208)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x208)" (( "(") (binary_expression "param_1 + 0x208" (identifier "param_1") (+ "+") (number_literal "0x208")) () ")")))) (== "==") (number_literal "0"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "((*(byte *)(param_1 + 0x6d) & 2) == 0)" (( "(") (binary_expression "(*(byte *)(param_1 + 0x6d) & 2) == 0" (parenthesized_expression "(*(byte *)(param_1 + 0x6d) & 2)" (( "(") (binary_expression "*(byte *)(param_1 + 0x6d) & 2" (pointer_expression "*(byte *)(param_1 + 0x6d)" (* "*") (cast_expression "(byte *)(param_1 + 0x6d)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x6d)" (( "(") (binary_expression "param_1 + 0x6d" (identifier "param_1") (+ "+") (number_literal "0x6d")) () ")")))) (& "&") (number_literal "2")) () ")")) (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n    uVar2 = FUN_00118f71(2);\n    FUN_001190b0(uVar2);\n    FUN_0011a8aa(param_1,uVar2,1);\n  }" ({ "{") (expression_statement "uVar2 = FUN_00118f71(2);" (assignment_expression "uVar2 = FUN_00118f71(2)" (identifier "uVar2") (= "=") (call_expression "FUN_00118f71(2)" (identifier "FUN_00118f71") (argument_list "(2)" (( "(") (number_literal "2") () ")")))) (; ";")) (expression_statement "FUN_001190b0(uVar2);" (call_expression "FUN_001190b0(uVar2)" (identifier "FUN_001190b0") (argument_list "(uVar2)" (( "(") (identifier "uVar2") () ")"))) (; ";")) (expression_statement "FUN_0011a8aa(param_1,uVar2,1);" (call_expression "FUN_0011a8aa(param_1,uVar2,1)" (identifier "FUN_0011a8aa") (argument_list "(param_1,uVar2,1)" (( "(") (identifier "param_1") (, ",") (identifier "uVar2") (, ",") (number_literal "1") () ")"))) (; ";")) (} "}"))) (expression_statement "iVar1 = FUN_0011a173(param_1,param_2);" (assignment_expression "iVar1 = FUN_0011a173(param_1,param_2)" (identifier "iVar1") (= "=") (call_expression "FUN_0011a173(param_1,param_2)" (identifier "FUN_0011a173") (argument_list "(param_1,param_2)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") () ")")))) (; ";")) (expression_statement "iVar3 = iVar1 + *(int *)(param_1 + 0x208);" (assignment_expression "iVar3 = iVar1 + *(int *)(param_1 + 0x208)" (identifier "iVar3") (= "=") (binary_expression "iVar1 + *(int *)(param_1 + 0x208)" (identifier "iVar1") (+ "+") (pointer_expression "*(int *)(param_1 + 0x208)" (* "*") (cast_expression "(int *)(param_1 + 0x208)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x208)" (( "(") (binary_expression "param_1 + 0x208" (identifier "param_1") (+ "+") (number_literal "0x208")) () ")")))))) (; ";")) (if_statement "if (*(int *)(param_1 + 0x20c) < iVar3) {\n    iVar3 = iVar3 + 0x80;\n    *(int *)(param_1 + 0x20c) = iVar3;\n    uVar2 = FUN_0010ee09(*(undefined8 *)(param_1 + 0x200),(long)iVar3,1);\n    *(undefined8 *)(param_1 + 0x200) = uVar2;\n  }" (if "if") (parenthesized_expression "(*(int *)(param_1 + 0x20c) < iVar3)" (( "(") (binary_expression "*(int *)(param_1 + 0x20c) < iVar3" (pointer_expression "*(int *)(param_1 + 0x20c)" (* "*") (cast_expression "(int *)(param_1 + 0x20c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x20c)" (( "(") (binary_expression "param_1 + 0x20c" (identifier "param_1") (+ "+") (number_literal "0x20c")) () ")")))) (< "<") (identifier "iVar3")) () ")")) (compound_statement "{\n    iVar3 = iVar3 + 0x80;\n    *(int *)(param_1 + 0x20c) = iVar3;\n    uVar2 = FUN_0010ee09(*(undefined8 *)(param_1 + 0x200),(long)iVar3,1);\n    *(undefined8 *)(param_1 + 0x200) = uVar2;\n  }" ({ "{") (expression_statement "iVar3 = iVar3 + 0x80;" (assignment_expression "iVar3 = iVar3 + 0x80" (identifier "iVar3") (= "=") (binary_expression "iVar3 + 0x80" (identifier "iVar3") (+ "+") (number_literal "0x80"))) (; ";")) (expression_statement "*(int *)(param_1 + 0x20c) = iVar3;" (assignment_expression "*(int *)(param_1 + 0x20c) = iVar3" (pointer_expression "*(int *)(param_1 + 0x20c)" (* "*") (cast_expression "(int *)(param_1 + 0x20c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x20c)" (( "(") (binary_expression "param_1 + 0x20c" (identifier "param_1") (+ "+") (number_literal "0x20c")) () ")")))) (= "=") (identifier "iVar3")) (; ";")) (expression_statement "uVar2 = FUN_0010ee09(*(undefined8 *)(param_1 + 0x200),(long)iVar3,1);" (assignment_expression "uVar2 = FUN_0010ee09(*(undefined8 *)(param_1 + 0x200),(long)iVar3,1)" (identifier "uVar2") (= "=") (call_expression "FUN_0010ee09(*(undefined8 *)(param_1 + 0x200),(long)iVar3,1)" (identifier "FUN_0010ee09") (argument_list "(*(undefined8 *)(param_1 + 0x200),(long)iVar3,1)" (( "(") (pointer_expression "*(undefined8 *)(param_1 + 0x200)" (* "*") (cast_expression "(undefined8 *)(param_1 + 0x200)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x200)" (( "(") (binary_expression "param_1 + 0x200" (identifier "param_1") (+ "+") (number_literal "0x200")) () ")")))) (, ",") (cast_expression "(long)iVar3" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "iVar3")) (, ",") (number_literal "1") () ")")))) (; ";")) (expression_statement "*(undefined8 *)(param_1 + 0x200) = uVar2;" (assignment_expression "*(undefined8 *)(param_1 + 0x200) = uVar2" (pointer_expression "*(undefined8 *)(param_1 + 0x200)" (* "*") (cast_expression "(undefined8 *)(param_1 + 0x200)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x200)" (( "(") (binary_expression "param_1 + 0x200" (identifier "param_1") (+ "+") (number_literal "0x200")) () ")")))) (= "=") (identifier "uVar2")) (; ";")) (} "}"))) (expression_statement "memcpy((void *)((long)*(int *)(param_1 + 0x208) + *(long *)(param_1 + 0x200)),\n         *(void **)(param_2 + 0x28),(long)iVar1);" (call_expression "memcpy((void *)((long)*(int *)(param_1 + 0x208) + *(long *)(param_1 + 0x200)),\n         *(void **)(param_2 + 0x28),(long)iVar1)" (identifier "memcpy") (argument_list "((void *)((long)*(int *)(param_1 + 0x208) + *(long *)(param_1 + 0x200)),\n         *(void **)(param_2 + 0x28),(long)iVar1)" (( "(") (cast_expression "(void *)((long)*(int *)(param_1 + 0x208) + *(long *)(param_1 + 0x200))" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)*(int *)(param_1 + 0x208) + *(long *)(param_1 + 0x200))" (( "(") (binary_expression "(long)*(int *)(param_1 + 0x208) + *(long *)(param_1 + 0x200)" (cast_expression "(long)*(int *)(param_1 + 0x208)" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (pointer_expression "*(int *)(param_1 + 0x208)" (* "*") (cast_expression "(int *)(param_1 + 0x208)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x208)" (( "(") (binary_expression "param_1 + 0x208" (identifier "param_1") (+ "+") (number_literal "0x208")) () ")"))))) (+ "+") (pointer_expression "*(long *)(param_1 + 0x200)" (* "*") (cast_expression "(long *)(param_1 + 0x200)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x200)" (( "(") (binary_expression "param_1 + 0x200" (identifier "param_1") (+ "+") (number_literal "0x200")) () ")"))))) () ")"))) (, ",") (pointer_expression "*(void **)(param_2 + 0x28)" (* "*") (cast_expression "(void **)(param_2 + 0x28)" (( "(") (type_descriptor "void **" (primitive_type "void") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_2 + 0x28)" (( "(") (binary_expression "param_2 + 0x28" (identifier "param_2") (+ "+") (number_literal "0x28")) () ")")))) (, ",") (cast_expression "(long)iVar1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "iVar1")) () ")"))) (; ";")) (expression_statement "*(int *)(param_1 + 0x208) = *(int *)(param_1 + 0x208) + iVar1;" (assignment_expression "*(int *)(param_1 + 0x208) = *(int *)(param_1 + 0x208) + iVar1" (pointer_expression "*(int *)(param_1 + 0x208)" (* "*") (cast_expression "(int *)(param_1 + 0x208)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x208)" (( "(") (binary_expression "param_1 + 0x208" (identifier "param_1") (+ "+") (number_literal "0x208")) () ")")))) (= "=") (binary_expression "*(int *)(param_1 + 0x208) + iVar1" (pointer_expression "*(int *)(param_1 + 0x208)" (* "*") (cast_expression "(int *)(param_1 + 0x208)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x208)" (( "(") (binary_expression "param_1 + 0x208" (identifier "param_1") (+ "+") (number_literal "0x208")) () ")")))) (+ "+") (identifier "iVar1"))) (; ";")) (expression_statement "*(long *)(param_1 + 0xc00) = *(long *)(param_1 + 0xc00) + *(long *)(param_2 + 0x40);" (assignment_expression "*(long *)(param_1 + 0xc00) = *(long *)(param_1 + 0xc00) + *(long *)(param_2 + 0x40)" (pointer_expression "*(long *)(param_1 + 0xc00)" (* "*") (cast_expression "(long *)(param_1 + 0xc00)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xc00)" (( "(") (binary_expression "param_1 + 0xc00" (identifier "param_1") (+ "+") (number_literal "0xc00")) () ")")))) (= "=") (binary_expression "*(long *)(param_1 + 0xc00) + *(long *)(param_2 + 0x40)" (pointer_expression "*(long *)(param_1 + 0xc00)" (* "*") (cast_expression "(long *)(param_1 + 0xc00)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xc00)" (( "(") (binary_expression "param_1 + 0xc00" (identifier "param_1") (+ "+") (number_literal "0xc00")) () ")")))) (+ "+") (pointer_expression "*(long *)(param_2 + 0x40)" (* "*") (cast_expression "(long *)(param_2 + 0x40)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x40)" (( "(") (binary_expression "param_2 + 0x40" (identifier "param_2") (+ "+") (number_literal "0x40")) () ")")))))) (; ";")) (expression_statement "FUN_00118957(param_2);" (call_expression "FUN_00118957(param_2)" (identifier "FUN_00118957") (argument_list "(param_2)" (( "(") (identifier "param_2") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}")))

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

void function_1(type_1 ssh,type_2 *pkt,int var_1)

{
  int var_5;
  type_2 *pkt_00;
  type_3 *puVar2;
  int var_6;
  
  if ((((ssh->cscipher != (type_4 *)0x0) && ((ssh->cscipher->flags & 1) != 0)) &&
      (var_1 == 0 && ssh->deferred_len == 0)) && ((ssh->remote_bugs & 0x200) == 0)) {
    pkt_00 = var_2(2);
    var_3(pkt_00);
    function_1(ssh,pkt_00,1);
  }
  var_5 = var_4(ssh,pkt);
  var_6 = var_5 + ssh->deferred_len;
  if (ssh->deferred_size < var_6) {
    var_6 = var_6 + 0x80;
    ssh->deferred_size = var_6;
    puVar2 = (type_3 *)var_7(ssh->deferred_send_data,(long)var_6,1);
    ssh->deferred_send_data = puVar2;
  }
  var_8(ssh->deferred_send_data + ssh->deferred_len,pkt->body,(long)var_5);
  ssh->deferred_len = ssh->deferred_len + var_5;
  ssh->deferred_data_size = ssh->deferred_data_size + pkt->encrypted_len;
  var_9(pkt);
  return;
}


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

void MASKED(long param_1,long param_2,int param_3)

{
  int iVar1;
  undefined8 uVar2;
  int iVar3;
  
  if ((((*(long *)(param_1 + 0x88) != 0) && ((*(byte *)(*(long *)(param_1 + 0x88) + 0x54) & 1) != 0)
       ) && (param_3 == 0 && *(int *)(param_1 + 0x208) == 0)) &&
     ((*(byte *)(param_1 + 0x6d) & 2) == 0)) {
    uVar2 = FUN_00118f71(2);
    FUN_001190b0(uVar2);
    MASKED(param_1,uVar2,1);
  }
  iVar1 = FUN_0011a173(param_1,param_2);
  iVar3 = iVar1 + *(int *)(param_1 + 0x208);
  if (*(int *)(param_1 + 0x20c) < iVar3) {
    iVar3 = iVar3 + 0x80;
    *(int *)(param_1 + 0x20c) = iVar3;
    uVar2 = FUN_0010ee09(*(undefined8 *)(param_1 + 0x200),(long)iVar3,1);
    *(undefined8 *)(param_1 + 0x200) = uVar2;
  }
  memcpy((void *)((long)*(int *)(param_1 + 0x208) + *(long *)(param_1 + 0x200)),
         *(void **)(param_2 + 0x28),(long)iVar1);
  *(int *)(param_1 + 0x208) = *(int *)(param_1 + 0x208) + iVar1;
  *(long *)(param_1 + 0xc00) = *(long *)(param_1 + 0xc00) + *(long *)(param_2 + 0x40);
  FUN_00118957(param_2);
  return;
}

