
int gmp_asprintf_format(gmp_asprintf_t *d,char *fmt,va_list orig_ap)

{
  undefined *puVar1;
  char *pcVar2;
  uint uVar3;
  size_t sVar4;
  int iVar5;
  size_t sVar6;
  size_t sVar7;
  int iVar8;
  code *pcVar9;
  
  puVar1 = PTR___gmp_reallocate_func_000975a0;
  iVar5 = 0x100;
LAB_0007a390:
  sVar4 = d->size;
  sVar7 = d->alloc;
  sVar6 = (sVar4 + iVar5) * 2;
  if (sVar7 <= sVar4 + iVar5) {
    pcVar9 = *(code **)puVar1;
    d->alloc = sVar6;
    pcVar2 = (char *)(*pcVar9)(d->buf,sVar7,sVar6);
    sVar4 = d->size;
    sVar7 = d->alloc;
    d->buf = pcVar2;
  }
  iVar8 = sVar7 - sVar4;
  uVar3 = (*(code *)PTR___vsnprintf_chk_000972a4)(d->buf + sVar4,iVar8,1,0xffffffff,fmt,orig_ap);
  if (uVar3 != 0xffffffff) goto code_r0x0007a408;
  goto LAB_0007a41c;
code_r0x0007a408:
  iVar5 = uVar3 + 2;
  if (uVar3 < iVar8 - 1U) {
    d->size = d->size + uVar3;
    return uVar3;
  }
  if (uVar3 == iVar8 - 1U) {
LAB_0007a41c:
    iVar5 = iVar8 * 2;
  }
  goto LAB_0007a390;
}



void FUN_0007a350(int param_1,undefined4 param_2,undefined4 param_3)

{
  undefined *puVar1;
  undefined4 uVar2;
  int iVar3;
  int iVar4;
  int iVar5;
  uint uVar6;
  code *pcVar7;
  
  puVar1 = PTR___gmp_reallocate_func_000975a0;
  iVar4 = 0x100;
LAB_0007a390:
  iVar3 = *(int *)(param_1 + 8);
  uVar6 = *(uint *)(param_1 + 0xc);
  iVar5 = (iVar3 + iVar4) * 2;
  if (uVar6 <= (uint)(iVar3 + iVar4)) {
    pcVar7 = *(code **)puVar1;
    *(int *)(param_1 + 0xc) = iVar5;
    uVar2 = (*pcVar7)(*(undefined4 *)(param_1 + 4),uVar6,iVar5);
    iVar3 = *(int *)(param_1 + 8);
    uVar6 = *(uint *)(param_1 + 0xc);
    *(undefined4 *)(param_1 + 4) = uVar2;
  }
  iVar5 = uVar6 - iVar3;
  uVar6 = (*(code *)PTR___vsnprintf_chk_000972a4)
                    (*(int *)(param_1 + 4) + iVar3,iVar5,1,0xffffffff,param_2,param_3);
  if (uVar6 != 0xffffffff) goto code_r0x0007a408;
  goto LAB_0007a41c;
code_r0x0007a408:
  iVar4 = uVar6 + 2;
  if (uVar6 < iVar5 - 1U) {
    *(uint *)(param_1 + 8) = *(int *)(param_1 + 8) + uVar6;
    return;
  }
  if (uVar6 == iVar5 - 1U) {
LAB_0007a41c:
    iVar4 = iVar5 * 2;
  }
  goto LAB_0007a390;
}


lui gp,0x2
addiu gp,gp,0x4cf0
addu gp,gp,t9
addiu sp,sp,-0x38
li a3,0x100
sw s4,0x30(sp)
sw s3,0x2c(sp)
or s3,a1,zero
sw s2,0x28(sp)
or s2,a2,zero
sw s1,0x24(sp)
or s1,a0,zero
sw gp,0x18(sp)
sw ra,0x34(sp)
sw s0,0x20(sp)
lw s4,-0x7aa0(gp)
lw a0,0x8(s1)
lw s0,0xc(s1)
addu v0,a0,a3
or a1,s0,zero
sll a3,v0,0x1
sltu v0,v0,s0
bne v0,zero,0x0007a3d0
_or a2,a3,zero
lw a0,0x4(s1)
lw t9,0x0(s4)
jalr t9
_sw a3,0xc(s1)
lw a0,0x8(s1)
lw s0,0xc(s1)
lw gp,0x18(sp)
sw v0,0x4(s1)
lw v0,0x4(s1)
subu s0,s0,a0
lw t9,-0x7d9c(gp)
li a3,-0x1
li a2,0x1
sw s2,0x14(sp)
addu a0,v0,a0
sw s3,0x10(sp)
jalr t9
_or a1,s0,zero
li a1,-0x1
lw gp,0x18(sp)
beq v0,a1,0x0007a41c
_addiu a0,s0,-0x1
sltu a1,v0,a0
bne a1,zero,0x0007a424
_addiu a3,v0,0x2
bne v0,a0,0x0007a390
_nop
b 0x0007a390
_sll a3,s0,0x1
lw a0,0x8(s1)
lw ra,0x34(sp)
lw s4,0x30(sp)
addu v1,a0,v0
lw s3,0x2c(sp)
lw s2,0x28(sp)
lw s0,0x20(sp)
sw v1,0x8(s1)
lw s1,0x24(sp)
jr ra
_addiu sp,sp,0x38
(translation_unit "void FUN_0007a350(int param_1,undefined4 param_2,undefined4 param_3)\n\n{\n  undefined *puVar1;\n  undefined4 uVar2;\n  int iVar3;\n  int iVar4;\n  int iVar5;\n  uint uVar6;\n  code *pcVar7;\n  \n  puVar1 = PTR___gmp_reallocate_func_000975a0;\n  iVar4 = 0x100;\nLAB_0007a390:\n  iVar3 = *(int *)(param_1 + 8);\n  uVar6 = *(uint *)(param_1 + 0xc);\n  iVar5 = (iVar3 + iVar4) * 2;\n  if (uVar6 <= (uint)(iVar3 + iVar4)) {\n    pcVar7 = *(code **)puVar1;\n    *(int *)(param_1 + 0xc) = iVar5;\n    uVar2 = (*pcVar7)(*(undefined4 *)(param_1 + 4),uVar6,iVar5);\n    iVar3 = *(int *)(param_1 + 8);\n    uVar6 = *(uint *)(param_1 + 0xc);\n    *(undefined4 *)(param_1 + 4) = uVar2;\n  }\n  iVar5 = uVar6 - iVar3;\n  uVar6 = (*(code *)PTR___vsnprintf_chk_000972a4)\n                    (*(int *)(param_1 + 4) + iVar3,iVar5,1,0xffffffff,param_2,param_3);\n  if (uVar6 != 0xffffffff) goto code_r0x0007a408;\n  goto LAB_0007a41c;\ncode_r0x0007a408:\n  iVar4 = uVar6 + 2;\n  if (uVar6 < iVar5 - 1U) {\n    *(uint *)(param_1 + 8) = *(int *)(param_1 + 8) + uVar6;\n    return;\n  }\n  if (uVar6 == iVar5 - 1U) {\nLAB_0007a41c:\n    iVar4 = iVar5 * 2;\n  }\n  goto LAB_0007a390;\n}\n\n" (function_definition "void FUN_0007a350(int param_1,undefined4 param_2,undefined4 param_3)\n\n{\n  undefined *puVar1;\n  undefined4 uVar2;\n  int iVar3;\n  int iVar4;\n  int iVar5;\n  uint uVar6;\n  code *pcVar7;\n  \n  puVar1 = PTR___gmp_reallocate_func_000975a0;\n  iVar4 = 0x100;\nLAB_0007a390:\n  iVar3 = *(int *)(param_1 + 8);\n  uVar6 = *(uint *)(param_1 + 0xc);\n  iVar5 = (iVar3 + iVar4) * 2;\n  if (uVar6 <= (uint)(iVar3 + iVar4)) {\n    pcVar7 = *(code **)puVar1;\n    *(int *)(param_1 + 0xc) = iVar5;\n    uVar2 = (*pcVar7)(*(undefined4 *)(param_1 + 4),uVar6,iVar5);\n    iVar3 = *(int *)(param_1 + 8);\n    uVar6 = *(uint *)(param_1 + 0xc);\n    *(undefined4 *)(param_1 + 4) = uVar2;\n  }\n  iVar5 = uVar6 - iVar3;\n  uVar6 = (*(code *)PTR___vsnprintf_chk_000972a4)\n                    (*(int *)(param_1 + 4) + iVar3,iVar5,1,0xffffffff,param_2,param_3);\n  if (uVar6 != 0xffffffff) goto code_r0x0007a408;\n  goto LAB_0007a41c;\ncode_r0x0007a408:\n  iVar4 = uVar6 + 2;\n  if (uVar6 < iVar5 - 1U) {\n    *(uint *)(param_1 + 8) = *(int *)(param_1 + 8) + uVar6;\n    return;\n  }\n  if (uVar6 == iVar5 - 1U) {\nLAB_0007a41c:\n    iVar4 = iVar5 * 2;\n  }\n  goto LAB_0007a390;\n}" primitive_type (function_declarator "FUN_0007a350(int param_1,undefined4 param_2,undefined4 param_3)" identifier (parameter_list "(int param_1,undefined4 param_2,undefined4 param_3)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "undefined4 param_2" type_identifier identifier) , (parameter_declaration "undefined4 param_3" type_identifier identifier) ))) (compound_statement "{\n  undefined *puVar1;\n  undefined4 uVar2;\n  int iVar3;\n  int iVar4;\n  int iVar5;\n  uint uVar6;\n  code *pcVar7;\n  \n  puVar1 = PTR___gmp_reallocate_func_000975a0;\n  iVar4 = 0x100;\nLAB_0007a390:\n  iVar3 = *(int *)(param_1 + 8);\n  uVar6 = *(uint *)(param_1 + 0xc);\n  iVar5 = (iVar3 + iVar4) * 2;\n  if (uVar6 <= (uint)(iVar3 + iVar4)) {\n    pcVar7 = *(code **)puVar1;\n    *(int *)(param_1 + 0xc) = iVar5;\n    uVar2 = (*pcVar7)(*(undefined4 *)(param_1 + 4),uVar6,iVar5);\n    iVar3 = *(int *)(param_1 + 8);\n    uVar6 = *(uint *)(param_1 + 0xc);\n    *(undefined4 *)(param_1 + 4) = uVar2;\n  }\n  iVar5 = uVar6 - iVar3;\n  uVar6 = (*(code *)PTR___vsnprintf_chk_000972a4)\n                    (*(int *)(param_1 + 4) + iVar3,iVar5,1,0xffffffff,param_2,param_3);\n  if (uVar6 != 0xffffffff) goto code_r0x0007a408;\n  goto LAB_0007a41c;\ncode_r0x0007a408:\n  iVar4 = uVar6 + 2;\n  if (uVar6 < iVar5 - 1U) {\n    *(uint *)(param_1 + 8) = *(int *)(param_1 + 8) + uVar6;\n    return;\n  }\n  if (uVar6 == iVar5 - 1U) {\nLAB_0007a41c:\n    iVar4 = iVar5 * 2;\n  }\n  goto LAB_0007a390;\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "undefined4 uVar2;" type_identifier identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "code *pcVar7;" type_identifier (pointer_declarator "*pcVar7" * identifier) ;) (expression_statement "puVar1 = PTR___gmp_reallocate_func_000975a0;" (assignment_expression "puVar1 = PTR___gmp_reallocate_func_000975a0" identifier = identifier) ;) (expression_statement "iVar4 = 0x100;" (assignment_expression "iVar4 = 0x100" identifier = number_literal) ;) (labeled_statement "LAB_0007a390:\n  iVar3 = *(int *)(param_1 + 8);" statement_identifier : (expression_statement "iVar3 = *(int *)(param_1 + 8);" (assignment_expression "iVar3 = *(int *)(param_1 + 8)" identifier = (pointer_expression "*(int *)(param_1 + 8)" * (cast_expression "(int *)(param_1 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) ;)) (expression_statement "uVar6 = *(uint *)(param_1 + 0xc);" (assignment_expression "uVar6 = *(uint *)(param_1 + 0xc)" identifier = (pointer_expression "*(uint *)(param_1 + 0xc)" * (cast_expression "(uint *)(param_1 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "iVar5 = (iVar3 + iVar4) * 2;" (assignment_expression "iVar5 = (iVar3 + iVar4) * 2" identifier = (binary_expression "(iVar3 + iVar4) * 2" (parenthesized_expression "(iVar3 + iVar4)" ( (binary_expression "iVar3 + iVar4" identifier + identifier) )) * number_literal)) ;) (if_statement "if (uVar6 <= (uint)(iVar3 + iVar4)) {\n    pcVar7 = *(code **)puVar1;\n    *(int *)(param_1 + 0xc) = iVar5;\n    uVar2 = (*pcVar7)(*(undefined4 *)(param_1 + 4),uVar6,iVar5);\n    iVar3 = *(int *)(param_1 + 8);\n    uVar6 = *(uint *)(param_1 + 0xc);\n    *(undefined4 *)(param_1 + 4) = uVar2;\n  }" if (parenthesized_expression "(uVar6 <= (uint)(iVar3 + iVar4))" ( (binary_expression "uVar6 <= (uint)(iVar3 + iVar4)" identifier <= (call_expression "(uint)(iVar3 + iVar4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar3 + iVar4)" ( (binary_expression "iVar3 + iVar4" identifier + identifier) )))) )) (compound_statement "{\n    pcVar7 = *(code **)puVar1;\n    *(int *)(param_1 + 0xc) = iVar5;\n    uVar2 = (*pcVar7)(*(undefined4 *)(param_1 + 4),uVar6,iVar5);\n    iVar3 = *(int *)(param_1 + 8);\n    uVar6 = *(uint *)(param_1 + 0xc);\n    *(undefined4 *)(param_1 + 4) = uVar2;\n  }" { (expression_statement "pcVar7 = *(code **)puVar1;" (assignment_expression "pcVar7 = *(code **)puVar1" identifier = (pointer_expression "*(code **)puVar1" * (cast_expression "(code **)puVar1" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "*(int *)(param_1 + 0xc) = iVar5;" (assignment_expression "*(int *)(param_1 + 0xc) = iVar5" (pointer_expression "*(int *)(param_1 + 0xc)" * (cast_expression "(int *)(param_1 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar2 = (*pcVar7)(*(undefined4 *)(param_1 + 4),uVar6,iVar5);" (assignment_expression "uVar2 = (*pcVar7)(*(undefined4 *)(param_1 + 4),uVar6,iVar5)" identifier = (call_expression "(*pcVar7)(*(undefined4 *)(param_1 + 4),uVar6,iVar5)" (parenthesized_expression "(*pcVar7)" ( (pointer_expression "*pcVar7" * identifier) )) (argument_list "(*(undefined4 *)(param_1 + 4),uVar6,iVar5)" ( (pointer_expression "*(undefined4 *)(param_1 + 4)" * (cast_expression "(undefined4 *)(param_1 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) )))) , identifier , identifier )))) ;) (expression_statement "iVar3 = *(int *)(param_1 + 8);" (assignment_expression "iVar3 = *(int *)(param_1 + 8)" identifier = (pointer_expression "*(int *)(param_1 + 8)" * (cast_expression "(int *)(param_1 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) ;) (expression_statement "uVar6 = *(uint *)(param_1 + 0xc);" (assignment_expression "uVar6 = *(uint *)(param_1 + 0xc)" identifier = (pointer_expression "*(uint *)(param_1 + 0xc)" * (cast_expression "(uint *)(param_1 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(param_1 + 4) = uVar2;" (assignment_expression "*(undefined4 *)(param_1 + 4) = uVar2" (pointer_expression "*(undefined4 *)(param_1 + 4)" * (cast_expression "(undefined4 *)(param_1 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "iVar5 = uVar6 - iVar3;" (assignment_expression "iVar5 = uVar6 - iVar3" identifier = (binary_expression "uVar6 - iVar3" identifier - identifier)) ;) (expression_statement "uVar6 = (*(code *)PTR___vsnprintf_chk_000972a4)\n                    (*(int *)(param_1 + 4) + iVar3,iVar5,1,0xffffffff,param_2,param_3);" (assignment_expression "uVar6 = (*(code *)PTR___vsnprintf_chk_000972a4)\n                    (*(int *)(param_1 + 4) + iVar3,iVar5,1,0xffffffff,param_2,param_3)" identifier = (call_expression "(*(code *)PTR___vsnprintf_chk_000972a4)\n                    (*(int *)(param_1 + 4) + iVar3,iVar5,1,0xffffffff,param_2,param_3)" (parenthesized_expression "(*(code *)PTR___vsnprintf_chk_000972a4)" ( (pointer_expression "*(code *)PTR___vsnprintf_chk_000972a4" * (cast_expression "(code *)PTR___vsnprintf_chk_000972a4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*(int *)(param_1 + 4) + iVar3,iVar5,1,0xffffffff,param_2,param_3)" ( (binary_expression "*(int *)(param_1 + 4) + iVar3" (pointer_expression "*(int *)(param_1 + 4)" * (cast_expression "(int *)(param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) )))) + identifier) , identifier , number_literal , number_literal , identifier , identifier )))) ;) (if_statement "if (uVar6 != 0xffffffff) goto code_r0x0007a408;" if (parenthesized_expression "(uVar6 != 0xffffffff)" ( (binary_expression "uVar6 != 0xffffffff" identifier != number_literal) )) (goto_statement "goto code_r0x0007a408;" goto statement_identifier ;)) (goto_statement "goto LAB_0007a41c;" goto statement_identifier ;) (labeled_statement "code_r0x0007a408:\n  iVar4 = uVar6 + 2;" statement_identifier : (expression_statement "iVar4 = uVar6 + 2;" (assignment_expression "iVar4 = uVar6 + 2" identifier = (binary_expression "uVar6 + 2" identifier + number_literal)) ;)) (if_statement "if (uVar6 < iVar5 - 1U) {\n    *(uint *)(param_1 + 8) = *(int *)(param_1 + 8) + uVar6;\n    return;\n  }" if (parenthesized_expression "(uVar6 < iVar5 - 1U)" ( (binary_expression "uVar6 < iVar5 - 1U" identifier < (binary_expression "iVar5 - 1U" identifier - number_literal)) )) (compound_statement "{\n    *(uint *)(param_1 + 8) = *(int *)(param_1 + 8) + uVar6;\n    return;\n  }" { (expression_statement "*(uint *)(param_1 + 8) = *(int *)(param_1 + 8) + uVar6;" (assignment_expression "*(uint *)(param_1 + 8) = *(int *)(param_1 + 8) + uVar6" (pointer_expression "*(uint *)(param_1 + 8)" * (cast_expression "(uint *)(param_1 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) = (binary_expression "*(int *)(param_1 + 8) + uVar6" (pointer_expression "*(int *)(param_1 + 8)" * (cast_expression "(int *)(param_1 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) + identifier)) ;) (return_statement "return;" return ;) })) (if_statement "if (uVar6 == iVar5 - 1U) {\nLAB_0007a41c:\n    iVar4 = iVar5 * 2;\n  }" if (parenthesized_expression "(uVar6 == iVar5 - 1U)" ( (binary_expression "uVar6 == iVar5 - 1U" identifier == (binary_expression "iVar5 - 1U" identifier - number_literal)) )) (compound_statement "{\nLAB_0007a41c:\n    iVar4 = iVar5 * 2;\n  }" { (labeled_statement "LAB_0007a41c:\n    iVar4 = iVar5 * 2;" statement_identifier : (expression_statement "iVar4 = iVar5 * 2;" (assignment_expression "iVar4 = iVar5 * 2" identifier = (binary_expression "iVar5 * 2" identifier * number_literal)) ;)) })) (goto_statement "goto LAB_0007a390;" goto statement_identifier ;) })))
(translation_unit "int gmp_asprintf_format(gmp_asprintf_t *d,char *fmt,va_list orig_ap)\n\n{\n  undefined *puVar1;\n  char *pcVar2;\n  uint uVar3;\n  size_t sVar4;\n  int iVar5;\n  size_t sVar6;\n  size_t sVar7;\n  int iVar8;\n  code *pcVar9;\n  \n  puVar1 = PTR___gmp_reallocate_func_000975a0;\n  iVar5 = 0x100;\nLAB_0007a390:\n  sVar4 = d->size;\n  sVar7 = d->alloc;\n  sVar6 = (sVar4 + iVar5) * 2;\n  if (sVar7 <= sVar4 + iVar5) {\n    pcVar9 = *(code **)puVar1;\n    d->alloc = sVar6;\n    pcVar2 = (char *)(*pcVar9)(d->buf,sVar7,sVar6);\n    sVar4 = d->size;\n    sVar7 = d->alloc;\n    d->buf = pcVar2;\n  }\n  iVar8 = sVar7 - sVar4;\n  uVar3 = (*(code *)PTR___vsnprintf_chk_000972a4)(d->buf + sVar4,iVar8,1,0xffffffff,fmt,orig_ap);\n  if (uVar3 != 0xffffffff) goto code_r0x0007a408;\n  goto LAB_0007a41c;\ncode_r0x0007a408:\n  iVar5 = uVar3 + 2;\n  if (uVar3 < iVar8 - 1U) {\n    d->size = d->size + uVar3;\n    return uVar3;\n  }\n  if (uVar3 == iVar8 - 1U) {\nLAB_0007a41c:\n    iVar5 = iVar8 * 2;\n  }\n  goto LAB_0007a390;\n}\n\n" (function_definition "int gmp_asprintf_format(gmp_asprintf_t *d,char *fmt,va_list orig_ap)\n\n{\n  undefined *puVar1;\n  char *pcVar2;\n  uint uVar3;\n  size_t sVar4;\n  int iVar5;\n  size_t sVar6;\n  size_t sVar7;\n  int iVar8;\n  code *pcVar9;\n  \n  puVar1 = PTR___gmp_reallocate_func_000975a0;\n  iVar5 = 0x100;\nLAB_0007a390:\n  sVar4 = d->size;\n  sVar7 = d->alloc;\n  sVar6 = (sVar4 + iVar5) * 2;\n  if (sVar7 <= sVar4 + iVar5) {\n    pcVar9 = *(code **)puVar1;\n    d->alloc = sVar6;\n    pcVar2 = (char *)(*pcVar9)(d->buf,sVar7,sVar6);\n    sVar4 = d->size;\n    sVar7 = d->alloc;\n    d->buf = pcVar2;\n  }\n  iVar8 = sVar7 - sVar4;\n  uVar3 = (*(code *)PTR___vsnprintf_chk_000972a4)(d->buf + sVar4,iVar8,1,0xffffffff,fmt,orig_ap);\n  if (uVar3 != 0xffffffff) goto code_r0x0007a408;\n  goto LAB_0007a41c;\ncode_r0x0007a408:\n  iVar5 = uVar3 + 2;\n  if (uVar3 < iVar8 - 1U) {\n    d->size = d->size + uVar3;\n    return uVar3;\n  }\n  if (uVar3 == iVar8 - 1U) {\nLAB_0007a41c:\n    iVar5 = iVar8 * 2;\n  }\n  goto LAB_0007a390;\n}" primitive_type (function_declarator "gmp_asprintf_format(gmp_asprintf_t *d,char *fmt,va_list orig_ap)" identifier (parameter_list "(gmp_asprintf_t *d,char *fmt,va_list orig_ap)" ( (parameter_declaration "gmp_asprintf_t *d" type_identifier (pointer_declarator "*d" * identifier)) , (parameter_declaration "char *fmt" primitive_type (pointer_declarator "*fmt" * identifier)) , (parameter_declaration "va_list orig_ap" type_identifier identifier) ))) (compound_statement "{\n  undefined *puVar1;\n  char *pcVar2;\n  uint uVar3;\n  size_t sVar4;\n  int iVar5;\n  size_t sVar6;\n  size_t sVar7;\n  int iVar8;\n  code *pcVar9;\n  \n  puVar1 = PTR___gmp_reallocate_func_000975a0;\n  iVar5 = 0x100;\nLAB_0007a390:\n  sVar4 = d->size;\n  sVar7 = d->alloc;\n  sVar6 = (sVar4 + iVar5) * 2;\n  if (sVar7 <= sVar4 + iVar5) {\n    pcVar9 = *(code **)puVar1;\n    d->alloc = sVar6;\n    pcVar2 = (char *)(*pcVar9)(d->buf,sVar7,sVar6);\n    sVar4 = d->size;\n    sVar7 = d->alloc;\n    d->buf = pcVar2;\n  }\n  iVar8 = sVar7 - sVar4;\n  uVar3 = (*(code *)PTR___vsnprintf_chk_000972a4)(d->buf + sVar4,iVar8,1,0xffffffff,fmt,orig_ap);\n  if (uVar3 != 0xffffffff) goto code_r0x0007a408;\n  goto LAB_0007a41c;\ncode_r0x0007a408:\n  iVar5 = uVar3 + 2;\n  if (uVar3 < iVar8 - 1U) {\n    d->size = d->size + uVar3;\n    return uVar3;\n  }\n  if (uVar3 == iVar8 - 1U) {\nLAB_0007a41c:\n    iVar5 = iVar8 * 2;\n  }\n  goto LAB_0007a390;\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "char *pcVar2;" primitive_type (pointer_declarator "*pcVar2" * identifier) ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "size_t sVar4;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "size_t sVar6;" primitive_type identifier ;) (declaration "size_t sVar7;" primitive_type identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "code *pcVar9;" type_identifier (pointer_declarator "*pcVar9" * identifier) ;) (expression_statement "puVar1 = PTR___gmp_reallocate_func_000975a0;" (assignment_expression "puVar1 = PTR___gmp_reallocate_func_000975a0" identifier = identifier) ;) (expression_statement "iVar5 = 0x100;" (assignment_expression "iVar5 = 0x100" identifier = number_literal) ;) (labeled_statement "LAB_0007a390:\n  sVar4 = d->size;" statement_identifier : (expression_statement "sVar4 = d->size;" (assignment_expression "sVar4 = d->size" identifier = (field_expression "d->size" identifier -> field_identifier)) ;)) (expression_statement "sVar7 = d->alloc;" (assignment_expression "sVar7 = d->alloc" identifier = (field_expression "d->alloc" identifier -> field_identifier)) ;) (expression_statement "sVar6 = (sVar4 + iVar5) * 2;" (assignment_expression "sVar6 = (sVar4 + iVar5) * 2" identifier = (binary_expression "(sVar4 + iVar5) * 2" (parenthesized_expression "(sVar4 + iVar5)" ( (binary_expression "sVar4 + iVar5" identifier + identifier) )) * number_literal)) ;) (if_statement "if (sVar7 <= sVar4 + iVar5) {\n    pcVar9 = *(code **)puVar1;\n    d->alloc = sVar6;\n    pcVar2 = (char *)(*pcVar9)(d->buf,sVar7,sVar6);\n    sVar4 = d->size;\n    sVar7 = d->alloc;\n    d->buf = pcVar2;\n  }" if (parenthesized_expression "(sVar7 <= sVar4 + iVar5)" ( (binary_expression "sVar7 <= sVar4 + iVar5" identifier <= (binary_expression "sVar4 + iVar5" identifier + identifier)) )) (compound_statement "{\n    pcVar9 = *(code **)puVar1;\n    d->alloc = sVar6;\n    pcVar2 = (char *)(*pcVar9)(d->buf,sVar7,sVar6);\n    sVar4 = d->size;\n    sVar7 = d->alloc;\n    d->buf = pcVar2;\n  }" { (expression_statement "pcVar9 = *(code **)puVar1;" (assignment_expression "pcVar9 = *(code **)puVar1" identifier = (pointer_expression "*(code **)puVar1" * (cast_expression "(code **)puVar1" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "d->alloc = sVar6;" (assignment_expression "d->alloc = sVar6" (field_expression "d->alloc" identifier -> field_identifier) = identifier) ;) (expression_statement "pcVar2 = (char *)(*pcVar9)(d->buf,sVar7,sVar6);" (assignment_expression "pcVar2 = (char *)(*pcVar9)(d->buf,sVar7,sVar6)" identifier = (cast_expression "(char *)(*pcVar9)(d->buf,sVar7,sVar6)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*pcVar9)(d->buf,sVar7,sVar6)" (parenthesized_expression "(*pcVar9)" ( (pointer_expression "*pcVar9" * identifier) )) (argument_list "(d->buf,sVar7,sVar6)" ( (field_expression "d->buf" identifier -> field_identifier) , identifier , identifier ))))) ;) (expression_statement "sVar4 = d->size;" (assignment_expression "sVar4 = d->size" identifier = (field_expression "d->size" identifier -> field_identifier)) ;) (expression_statement "sVar7 = d->alloc;" (assignment_expression "sVar7 = d->alloc" identifier = (field_expression "d->alloc" identifier -> field_identifier)) ;) (expression_statement "d->buf = pcVar2;" (assignment_expression "d->buf = pcVar2" (field_expression "d->buf" identifier -> field_identifier) = identifier) ;) })) (expression_statement "iVar8 = sVar7 - sVar4;" (assignment_expression "iVar8 = sVar7 - sVar4" identifier = (binary_expression "sVar7 - sVar4" identifier - identifier)) ;) (expression_statement "uVar3 = (*(code *)PTR___vsnprintf_chk_000972a4)(d->buf + sVar4,iVar8,1,0xffffffff,fmt,orig_ap);" (assignment_expression "uVar3 = (*(code *)PTR___vsnprintf_chk_000972a4)(d->buf + sVar4,iVar8,1,0xffffffff,fmt,orig_ap)" identifier = (call_expression "(*(code *)PTR___vsnprintf_chk_000972a4)(d->buf + sVar4,iVar8,1,0xffffffff,fmt,orig_ap)" (parenthesized_expression "(*(code *)PTR___vsnprintf_chk_000972a4)" ( (pointer_expression "*(code *)PTR___vsnprintf_chk_000972a4" * (cast_expression "(code *)PTR___vsnprintf_chk_000972a4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(d->buf + sVar4,iVar8,1,0xffffffff,fmt,orig_ap)" ( (binary_expression "d->buf + sVar4" (field_expression "d->buf" identifier -> field_identifier) + identifier) , identifier , number_literal , number_literal , identifier , identifier )))) ;) (if_statement "if (uVar3 != 0xffffffff) goto code_r0x0007a408;" if (parenthesized_expression "(uVar3 != 0xffffffff)" ( (binary_expression "uVar3 != 0xffffffff" identifier != number_literal) )) (goto_statement "goto code_r0x0007a408;" goto statement_identifier ;)) (goto_statement "goto LAB_0007a41c;" goto statement_identifier ;) (labeled_statement "code_r0x0007a408:\n  iVar5 = uVar3 + 2;" statement_identifier : (expression_statement "iVar5 = uVar3 + 2;" (assignment_expression "iVar5 = uVar3 + 2" identifier = (binary_expression "uVar3 + 2" identifier + number_literal)) ;)) (if_statement "if (uVar3 < iVar8 - 1U) {\n    d->size = d->size + uVar3;\n    return uVar3;\n  }" if (parenthesized_expression "(uVar3 < iVar8 - 1U)" ( (binary_expression "uVar3 < iVar8 - 1U" identifier < (binary_expression "iVar8 - 1U" identifier - number_literal)) )) (compound_statement "{\n    d->size = d->size + uVar3;\n    return uVar3;\n  }" { (expression_statement "d->size = d->size + uVar3;" (assignment_expression "d->size = d->size + uVar3" (field_expression "d->size" identifier -> field_identifier) = (binary_expression "d->size + uVar3" (field_expression "d->size" identifier -> field_identifier) + identifier)) ;) (return_statement "return uVar3;" return identifier ;) })) (if_statement "if (uVar3 == iVar8 - 1U) {\nLAB_0007a41c:\n    iVar5 = iVar8 * 2;\n  }" if (parenthesized_expression "(uVar3 == iVar8 - 1U)" ( (binary_expression "uVar3 == iVar8 - 1U" identifier == (binary_expression "iVar8 - 1U" identifier - number_literal)) )) (compound_statement "{\nLAB_0007a41c:\n    iVar5 = iVar8 * 2;\n  }" { (labeled_statement "LAB_0007a41c:\n    iVar5 = iVar8 * 2;" statement_identifier : (expression_statement "iVar5 = iVar8 * 2;" (assignment_expression "iVar5 = iVar8 * 2" identifier = (binary_expression "iVar8 * 2" identifier * number_literal)) ;)) })) (goto_statement "goto LAB_0007a390;" goto statement_identifier ;) })))
(translation_unit "void FUN_0007a350(int param_1,undefined4 param_2,undefined4 param_3)\n\n{\n  undefined *puVar1;\n  undefined4 uVar2;\n  int iVar3;\n  int iVar4;\n  int iVar5;\n  uint uVar6;\n  code *pcVar7;\n  \n  puVar1 = PTR___gmp_reallocate_func_000975a0;\n  iVar4 = 0x100;\nLAB_0007a390:\n  iVar3 = *(int *)(param_1 + 8);\n  uVar6 = *(uint *)(param_1 + 0xc);\n  iVar5 = (iVar3 + iVar4) * 2;\n  if (uVar6 <= (uint)(iVar3 + iVar4)) {\n    pcVar7 = *(code **)puVar1;\n    *(int *)(param_1 + 0xc) = iVar5;\n    uVar2 = (*pcVar7)(*(undefined4 *)(param_1 + 4),uVar6,iVar5);\n    iVar3 = *(int *)(param_1 + 8);\n    uVar6 = *(uint *)(param_1 + 0xc);\n    *(undefined4 *)(param_1 + 4) = uVar2;\n  }\n  iVar5 = uVar6 - iVar3;\n  uVar6 = (*(code *)PTR___vsnprintf_chk_000972a4)\n                    (*(int *)(param_1 + 4) + iVar3,iVar5,1,0xffffffff,param_2,param_3);\n  if (uVar6 != 0xffffffff) goto code_r0x0007a408;\n  goto LAB_0007a41c;\ncode_r0x0007a408:\n  iVar4 = uVar6 + 2;\n  if (uVar6 < iVar5 - 1U) {\n    *(uint *)(param_1 + 8) = *(int *)(param_1 + 8) + uVar6;\n    return;\n  }\n  if (uVar6 == iVar5 - 1U) {\nLAB_0007a41c:\n    iVar4 = iVar5 * 2;\n  }\n  goto LAB_0007a390;\n}\n\n" (function_definition "void FUN_0007a350(int param_1,undefined4 param_2,undefined4 param_3)\n\n{\n  undefined *puVar1;\n  undefined4 uVar2;\n  int iVar3;\n  int iVar4;\n  int iVar5;\n  uint uVar6;\n  code *pcVar7;\n  \n  puVar1 = PTR___gmp_reallocate_func_000975a0;\n  iVar4 = 0x100;\nLAB_0007a390:\n  iVar3 = *(int *)(param_1 + 8);\n  uVar6 = *(uint *)(param_1 + 0xc);\n  iVar5 = (iVar3 + iVar4) * 2;\n  if (uVar6 <= (uint)(iVar3 + iVar4)) {\n    pcVar7 = *(code **)puVar1;\n    *(int *)(param_1 + 0xc) = iVar5;\n    uVar2 = (*pcVar7)(*(undefined4 *)(param_1 + 4),uVar6,iVar5);\n    iVar3 = *(int *)(param_1 + 8);\n    uVar6 = *(uint *)(param_1 + 0xc);\n    *(undefined4 *)(param_1 + 4) = uVar2;\n  }\n  iVar5 = uVar6 - iVar3;\n  uVar6 = (*(code *)PTR___vsnprintf_chk_000972a4)\n                    (*(int *)(param_1 + 4) + iVar3,iVar5,1,0xffffffff,param_2,param_3);\n  if (uVar6 != 0xffffffff) goto code_r0x0007a408;\n  goto LAB_0007a41c;\ncode_r0x0007a408:\n  iVar4 = uVar6 + 2;\n  if (uVar6 < iVar5 - 1U) {\n    *(uint *)(param_1 + 8) = *(int *)(param_1 + 8) + uVar6;\n    return;\n  }\n  if (uVar6 == iVar5 - 1U) {\nLAB_0007a41c:\n    iVar4 = iVar5 * 2;\n  }\n  goto LAB_0007a390;\n}" primitive_type (function_declarator "FUN_0007a350(int param_1,undefined4 param_2,undefined4 param_3)" identifier (parameter_list "(int param_1,undefined4 param_2,undefined4 param_3)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "undefined4 param_2" type_identifier identifier) , (parameter_declaration "undefined4 param_3" type_identifier identifier) ))) (compound_statement "{\n  undefined *puVar1;\n  undefined4 uVar2;\n  int iVar3;\n  int iVar4;\n  int iVar5;\n  uint uVar6;\n  code *pcVar7;\n  \n  puVar1 = PTR___gmp_reallocate_func_000975a0;\n  iVar4 = 0x100;\nLAB_0007a390:\n  iVar3 = *(int *)(param_1 + 8);\n  uVar6 = *(uint *)(param_1 + 0xc);\n  iVar5 = (iVar3 + iVar4) * 2;\n  if (uVar6 <= (uint)(iVar3 + iVar4)) {\n    pcVar7 = *(code **)puVar1;\n    *(int *)(param_1 + 0xc) = iVar5;\n    uVar2 = (*pcVar7)(*(undefined4 *)(param_1 + 4),uVar6,iVar5);\n    iVar3 = *(int *)(param_1 + 8);\n    uVar6 = *(uint *)(param_1 + 0xc);\n    *(undefined4 *)(param_1 + 4) = uVar2;\n  }\n  iVar5 = uVar6 - iVar3;\n  uVar6 = (*(code *)PTR___vsnprintf_chk_000972a4)\n                    (*(int *)(param_1 + 4) + iVar3,iVar5,1,0xffffffff,param_2,param_3);\n  if (uVar6 != 0xffffffff) goto code_r0x0007a408;\n  goto LAB_0007a41c;\ncode_r0x0007a408:\n  iVar4 = uVar6 + 2;\n  if (uVar6 < iVar5 - 1U) {\n    *(uint *)(param_1 + 8) = *(int *)(param_1 + 8) + uVar6;\n    return;\n  }\n  if (uVar6 == iVar5 - 1U) {\nLAB_0007a41c:\n    iVar4 = iVar5 * 2;\n  }\n  goto LAB_0007a390;\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "undefined4 uVar2;" type_identifier identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "code *pcVar7;" type_identifier (pointer_declarator "*pcVar7" * identifier) ;) (expression_statement "puVar1 = PTR___gmp_reallocate_func_000975a0;" (assignment_expression "puVar1 = PTR___gmp_reallocate_func_000975a0" identifier = identifier) ;) (expression_statement "iVar4 = 0x100;" (assignment_expression "iVar4 = 0x100" identifier = number_literal) ;) (labeled_statement "LAB_0007a390:\n  iVar3 = *(int *)(param_1 + 8);" statement_identifier : (expression_statement "iVar3 = *(int *)(param_1 + 8);" (assignment_expression "iVar3 = *(int *)(param_1 + 8)" identifier = (pointer_expression "*(int *)(param_1 + 8)" * (cast_expression "(int *)(param_1 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) ;)) (expression_statement "uVar6 = *(uint *)(param_1 + 0xc);" (assignment_expression "uVar6 = *(uint *)(param_1 + 0xc)" identifier = (pointer_expression "*(uint *)(param_1 + 0xc)" * (cast_expression "(uint *)(param_1 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "iVar5 = (iVar3 + iVar4) * 2;" (assignment_expression "iVar5 = (iVar3 + iVar4) * 2" identifier = (binary_expression "(iVar3 + iVar4) * 2" (parenthesized_expression "(iVar3 + iVar4)" ( (binary_expression "iVar3 + iVar4" identifier + identifier) )) * number_literal)) ;) (if_statement "if (uVar6 <= (uint)(iVar3 + iVar4)) {\n    pcVar7 = *(code **)puVar1;\n    *(int *)(param_1 + 0xc) = iVar5;\n    uVar2 = (*pcVar7)(*(undefined4 *)(param_1 + 4),uVar6,iVar5);\n    iVar3 = *(int *)(param_1 + 8);\n    uVar6 = *(uint *)(param_1 + 0xc);\n    *(undefined4 *)(param_1 + 4) = uVar2;\n  }" if (parenthesized_expression "(uVar6 <= (uint)(iVar3 + iVar4))" ( (binary_expression "uVar6 <= (uint)(iVar3 + iVar4)" identifier <= (call_expression "(uint)(iVar3 + iVar4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar3 + iVar4)" ( (binary_expression "iVar3 + iVar4" identifier + identifier) )))) )) (compound_statement "{\n    pcVar7 = *(code **)puVar1;\n    *(int *)(param_1 + 0xc) = iVar5;\n    uVar2 = (*pcVar7)(*(undefined4 *)(param_1 + 4),uVar6,iVar5);\n    iVar3 = *(int *)(param_1 + 8);\n    uVar6 = *(uint *)(param_1 + 0xc);\n    *(undefined4 *)(param_1 + 4) = uVar2;\n  }" { (expression_statement "pcVar7 = *(code **)puVar1;" (assignment_expression "pcVar7 = *(code **)puVar1" identifier = (pointer_expression "*(code **)puVar1" * (cast_expression "(code **)puVar1" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "*(int *)(param_1 + 0xc) = iVar5;" (assignment_expression "*(int *)(param_1 + 0xc) = iVar5" (pointer_expression "*(int *)(param_1 + 0xc)" * (cast_expression "(int *)(param_1 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar2 = (*pcVar7)(*(undefined4 *)(param_1 + 4),uVar6,iVar5);" (assignment_expression "uVar2 = (*pcVar7)(*(undefined4 *)(param_1 + 4),uVar6,iVar5)" identifier = (call_expression "(*pcVar7)(*(undefined4 *)(param_1 + 4),uVar6,iVar5)" (parenthesized_expression "(*pcVar7)" ( (pointer_expression "*pcVar7" * identifier) )) (argument_list "(*(undefined4 *)(param_1 + 4),uVar6,iVar5)" ( (pointer_expression "*(undefined4 *)(param_1 + 4)" * (cast_expression "(undefined4 *)(param_1 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) )))) , identifier , identifier )))) ;) (expression_statement "iVar3 = *(int *)(param_1 + 8);" (assignment_expression "iVar3 = *(int *)(param_1 + 8)" identifier = (pointer_expression "*(int *)(param_1 + 8)" * (cast_expression "(int *)(param_1 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) ;) (expression_statement "uVar6 = *(uint *)(param_1 + 0xc);" (assignment_expression "uVar6 = *(uint *)(param_1 + 0xc)" identifier = (pointer_expression "*(uint *)(param_1 + 0xc)" * (cast_expression "(uint *)(param_1 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(param_1 + 4) = uVar2;" (assignment_expression "*(undefined4 *)(param_1 + 4) = uVar2" (pointer_expression "*(undefined4 *)(param_1 + 4)" * (cast_expression "(undefined4 *)(param_1 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "iVar5 = uVar6 - iVar3;" (assignment_expression "iVar5 = uVar6 - iVar3" identifier = (binary_expression "uVar6 - iVar3" identifier - identifier)) ;) (expression_statement "uVar6 = (*(code *)PTR___vsnprintf_chk_000972a4)\n                    (*(int *)(param_1 + 4) + iVar3,iVar5,1,0xffffffff,param_2,param_3);" (assignment_expression "uVar6 = (*(code *)PTR___vsnprintf_chk_000972a4)\n                    (*(int *)(param_1 + 4) + iVar3,iVar5,1,0xffffffff,param_2,param_3)" identifier = (call_expression "(*(code *)PTR___vsnprintf_chk_000972a4)\n                    (*(int *)(param_1 + 4) + iVar3,iVar5,1,0xffffffff,param_2,param_3)" (parenthesized_expression "(*(code *)PTR___vsnprintf_chk_000972a4)" ( (pointer_expression "*(code *)PTR___vsnprintf_chk_000972a4" * (cast_expression "(code *)PTR___vsnprintf_chk_000972a4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*(int *)(param_1 + 4) + iVar3,iVar5,1,0xffffffff,param_2,param_3)" ( (binary_expression "*(int *)(param_1 + 4) + iVar3" (pointer_expression "*(int *)(param_1 + 4)" * (cast_expression "(int *)(param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) )))) + identifier) , identifier , number_literal , number_literal , identifier , identifier )))) ;) (if_statement "if (uVar6 != 0xffffffff) goto code_r0x0007a408;" if (parenthesized_expression "(uVar6 != 0xffffffff)" ( (binary_expression "uVar6 != 0xffffffff" identifier != number_literal) )) (goto_statement "goto code_r0x0007a408;" goto statement_identifier ;)) (goto_statement "goto LAB_0007a41c;" goto statement_identifier ;) (labeled_statement "code_r0x0007a408:\n  iVar4 = uVar6 + 2;" statement_identifier : (expression_statement "iVar4 = uVar6 + 2;" (assignment_expression "iVar4 = uVar6 + 2" identifier = (binary_expression "uVar6 + 2" identifier + number_literal)) ;)) (if_statement "if (uVar6 < iVar5 - 1U) {\n    *(uint *)(param_1 + 8) = *(int *)(param_1 + 8) + uVar6;\n    return;\n  }" if (parenthesized_expression "(uVar6 < iVar5 - 1U)" ( (binary_expression "uVar6 < iVar5 - 1U" identifier < (binary_expression "iVar5 - 1U" identifier - number_literal)) )) (compound_statement "{\n    *(uint *)(param_1 + 8) = *(int *)(param_1 + 8) + uVar6;\n    return;\n  }" { (expression_statement "*(uint *)(param_1 + 8) = *(int *)(param_1 + 8) + uVar6;" (assignment_expression "*(uint *)(param_1 + 8) = *(int *)(param_1 + 8) + uVar6" (pointer_expression "*(uint *)(param_1 + 8)" * (cast_expression "(uint *)(param_1 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) = (binary_expression "*(int *)(param_1 + 8) + uVar6" (pointer_expression "*(int *)(param_1 + 8)" * (cast_expression "(int *)(param_1 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) + identifier)) ;) (return_statement "return;" return ;) })) (if_statement "if (uVar6 == iVar5 - 1U) {\nLAB_0007a41c:\n    iVar4 = iVar5 * 2;\n  }" if (parenthesized_expression "(uVar6 == iVar5 - 1U)" ( (binary_expression "uVar6 == iVar5 - 1U" identifier == (binary_expression "iVar5 - 1U" identifier - number_literal)) )) (compound_statement "{\nLAB_0007a41c:\n    iVar4 = iVar5 * 2;\n  }" { (labeled_statement "LAB_0007a41c:\n    iVar4 = iVar5 * 2;" statement_identifier : (expression_statement "iVar4 = iVar5 * 2;" (assignment_expression "iVar4 = iVar5 * 2" identifier = (binary_expression "iVar5 * 2" identifier * number_literal)) ;)) })) (goto_statement "goto LAB_0007a390;" goto statement_identifier ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (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 = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT + IDENT) )) * LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + IDENT) )))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT))) ;) (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 (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT , IDENT )))) ;) (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 = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (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 = (binary_expression IDENT - IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + IDENT) , IDENT , LIT , LIT , IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (binary_expression IDENT - LIT)) )) (compound_statement { (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)) ;) (return_statement return ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (binary_expression IDENT - LIT)) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT * LIT)) ;)) })) (goto_statement goto statement_identifier ;) })))
(function_definition "void FUN_0007a350(int param_1,undefined4 param_2,undefined4 param_3)\n\n{\n  undefined *puVar1;\n  undefined4 uVar2;\n  int iVar3;\n  int iVar4;\n  int iVar5;\n  uint uVar6;\n  code *pcVar7;\n  \n  puVar1 = PTR___gmp_reallocate_func_000975a0;\n  iVar4 = 0x100;\nLAB_0007a390:\n  iVar3 = *(int *)(param_1 + 8);\n  uVar6 = *(uint *)(param_1 + 0xc);\n  iVar5 = (iVar3 + iVar4) * 2;\n  if (uVar6 <= (uint)(iVar3 + iVar4)) {\n    pcVar7 = *(code **)puVar1;\n    *(int *)(param_1 + 0xc) = iVar5;\n    uVar2 = (*pcVar7)(*(undefined4 *)(param_1 + 4),uVar6,iVar5);\n    iVar3 = *(int *)(param_1 + 8);\n    uVar6 = *(uint *)(param_1 + 0xc);\n    *(undefined4 *)(param_1 + 4) = uVar2;\n  }\n  iVar5 = uVar6 - iVar3;\n  uVar6 = (*(code *)PTR___vsnprintf_chk_000972a4)\n                    (*(int *)(param_1 + 4) + iVar3,iVar5,1,0xffffffff,param_2,param_3);\n  if (uVar6 != 0xffffffff) goto code_r0x0007a408;\n  goto LAB_0007a41c;\ncode_r0x0007a408:\n  iVar4 = uVar6 + 2;\n  if (uVar6 < iVar5 - 1U) {\n    *(uint *)(param_1 + 8) = *(int *)(param_1 + 8) + uVar6;\n    return;\n  }\n  if (uVar6 == iVar5 - 1U) {\nLAB_0007a41c:\n    iVar4 = iVar5 * 2;\n  }\n  goto LAB_0007a390;\n}" (primitive_type "void") (function_declarator "FUN_0007a350(int param_1,undefined4 param_2,undefined4 param_3)" (identifier "FUN_0007a350") (parameter_list "(int param_1,undefined4 param_2,undefined4 param_3)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) (, ",") (parameter_declaration "undefined4 param_2" (type_identifier "undefined4") (identifier "param_2")) (, ",") (parameter_declaration "undefined4 param_3" (type_identifier "undefined4") (identifier "param_3")) () ")"))) (compound_statement "{\n  undefined *puVar1;\n  undefined4 uVar2;\n  int iVar3;\n  int iVar4;\n  int iVar5;\n  uint uVar6;\n  code *pcVar7;\n  \n  puVar1 = PTR___gmp_reallocate_func_000975a0;\n  iVar4 = 0x100;\nLAB_0007a390:\n  iVar3 = *(int *)(param_1 + 8);\n  uVar6 = *(uint *)(param_1 + 0xc);\n  iVar5 = (iVar3 + iVar4) * 2;\n  if (uVar6 <= (uint)(iVar3 + iVar4)) {\n    pcVar7 = *(code **)puVar1;\n    *(int *)(param_1 + 0xc) = iVar5;\n    uVar2 = (*pcVar7)(*(undefined4 *)(param_1 + 4),uVar6,iVar5);\n    iVar3 = *(int *)(param_1 + 8);\n    uVar6 = *(uint *)(param_1 + 0xc);\n    *(undefined4 *)(param_1 + 4) = uVar2;\n  }\n  iVar5 = uVar6 - iVar3;\n  uVar6 = (*(code *)PTR___vsnprintf_chk_000972a4)\n                    (*(int *)(param_1 + 4) + iVar3,iVar5,1,0xffffffff,param_2,param_3);\n  if (uVar6 != 0xffffffff) goto code_r0x0007a408;\n  goto LAB_0007a41c;\ncode_r0x0007a408:\n  iVar4 = uVar6 + 2;\n  if (uVar6 < iVar5 - 1U) {\n    *(uint *)(param_1 + 8) = *(int *)(param_1 + 8) + uVar6;\n    return;\n  }\n  if (uVar6 == iVar5 - 1U) {\nLAB_0007a41c:\n    iVar4 = iVar5 * 2;\n  }\n  goto LAB_0007a390;\n}" ({ "{") (declaration "undefined *puVar1;" (type_identifier "undefined") (pointer_declarator "*puVar1" (* "*") (identifier "puVar1")) (; ";")) (declaration "undefined4 uVar2;" (type_identifier "undefined4") (identifier "uVar2") (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "int iVar4;" (primitive_type "int") (identifier "iVar4") (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (declaration "uint uVar6;" (type_identifier "uint") (identifier "uVar6") (; ";")) (declaration "code *pcVar7;" (type_identifier "code") (pointer_declarator "*pcVar7" (* "*") (identifier "pcVar7")) (; ";")) (expression_statement "puVar1 = PTR___gmp_reallocate_func_000975a0;" (assignment_expression "puVar1 = PTR___gmp_reallocate_func_000975a0" (identifier "puVar1") (= "=") (identifier "PTR___gmp_reallocate_func_000975a0")) (; ";")) (expression_statement "iVar4 = 0x100;" (assignment_expression "iVar4 = 0x100" (identifier "iVar4") (= "=") (number_literal "0x100")) (; ";")) (labeled_statement "LAB_0007a390:\n  iVar3 = *(int *)(param_1 + 8);" (statement_identifier "LAB_0007a390") (: ":") (expression_statement "iVar3 = *(int *)(param_1 + 8);" (assignment_expression "iVar3 = *(int *)(param_1 + 8)" (identifier "iVar3") (= "=") (pointer_expression "*(int *)(param_1 + 8)" (* "*") (cast_expression "(int *)(param_1 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")"))))) (; ";"))) (expression_statement "uVar6 = *(uint *)(param_1 + 0xc);" (assignment_expression "uVar6 = *(uint *)(param_1 + 0xc)" (identifier "uVar6") (= "=") (pointer_expression "*(uint *)(param_1 + 0xc)" (* "*") (cast_expression "(uint *)(param_1 + 0xc)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xc)" (( "(") (binary_expression "param_1 + 0xc" (identifier "param_1") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (expression_statement "iVar5 = (iVar3 + iVar4) * 2;" (assignment_expression "iVar5 = (iVar3 + iVar4) * 2" (identifier "iVar5") (= "=") (binary_expression "(iVar3 + iVar4) * 2" (parenthesized_expression "(iVar3 + iVar4)" (( "(") (binary_expression "iVar3 + iVar4" (identifier "iVar3") (+ "+") (identifier "iVar4")) () ")")) (* "*") (number_literal "2"))) (; ";")) (if_statement "if (uVar6 <= (uint)(iVar3 + iVar4)) {\n    pcVar7 = *(code **)puVar1;\n    *(int *)(param_1 + 0xc) = iVar5;\n    uVar2 = (*pcVar7)(*(undefined4 *)(param_1 + 4),uVar6,iVar5);\n    iVar3 = *(int *)(param_1 + 8);\n    uVar6 = *(uint *)(param_1 + 0xc);\n    *(undefined4 *)(param_1 + 4) = uVar2;\n  }" (if "if") (parenthesized_expression "(uVar6 <= (uint)(iVar3 + iVar4))" (( "(") (binary_expression "uVar6 <= (uint)(iVar3 + iVar4)" (identifier "uVar6") (<= "<=") (call_expression "(uint)(iVar3 + iVar4)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(iVar3 + iVar4)" (( "(") (binary_expression "iVar3 + iVar4" (identifier "iVar3") (+ "+") (identifier "iVar4")) () ")")))) () ")")) (compound_statement "{\n    pcVar7 = *(code **)puVar1;\n    *(int *)(param_1 + 0xc) = iVar5;\n    uVar2 = (*pcVar7)(*(undefined4 *)(param_1 + 4),uVar6,iVar5);\n    iVar3 = *(int *)(param_1 + 8);\n    uVar6 = *(uint *)(param_1 + 0xc);\n    *(undefined4 *)(param_1 + 4) = uVar2;\n  }" ({ "{") (expression_statement "pcVar7 = *(code **)puVar1;" (assignment_expression "pcVar7 = *(code **)puVar1" (identifier "pcVar7") (= "=") (pointer_expression "*(code **)puVar1" (* "*") (cast_expression "(code **)puVar1" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "puVar1")))) (; ";")) (expression_statement "*(int *)(param_1 + 0xc) = iVar5;" (assignment_expression "*(int *)(param_1 + 0xc) = iVar5" (pointer_expression "*(int *)(param_1 + 0xc)" (* "*") (cast_expression "(int *)(param_1 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xc)" (( "(") (binary_expression "param_1 + 0xc" (identifier "param_1") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (identifier "iVar5")) (; ";")) (expression_statement "uVar2 = (*pcVar7)(*(undefined4 *)(param_1 + 4),uVar6,iVar5);" (assignment_expression "uVar2 = (*pcVar7)(*(undefined4 *)(param_1 + 4),uVar6,iVar5)" (identifier "uVar2") (= "=") (call_expression "(*pcVar7)(*(undefined4 *)(param_1 + 4),uVar6,iVar5)" (parenthesized_expression "(*pcVar7)" (( "(") (pointer_expression "*pcVar7" (* "*") (identifier "pcVar7")) () ")")) (argument_list "(*(undefined4 *)(param_1 + 4),uVar6,iVar5)" (( "(") (pointer_expression "*(undefined4 *)(param_1 + 4)" (* "*") (cast_expression "(undefined4 *)(param_1 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 4)" (( "(") (binary_expression "param_1 + 4" (identifier "param_1") (+ "+") (number_literal "4")) () ")")))) (, ",") (identifier "uVar6") (, ",") (identifier "iVar5") () ")")))) (; ";")) (expression_statement "iVar3 = *(int *)(param_1 + 8);" (assignment_expression "iVar3 = *(int *)(param_1 + 8)" (identifier "iVar3") (= "=") (pointer_expression "*(int *)(param_1 + 8)" (* "*") (cast_expression "(int *)(param_1 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "uVar6 = *(uint *)(param_1 + 0xc);" (assignment_expression "uVar6 = *(uint *)(param_1 + 0xc)" (identifier "uVar6") (= "=") (pointer_expression "*(uint *)(param_1 + 0xc)" (* "*") (cast_expression "(uint *)(param_1 + 0xc)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xc)" (( "(") (binary_expression "param_1 + 0xc" (identifier "param_1") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(param_1 + 4) = uVar2;" (assignment_expression "*(undefined4 *)(param_1 + 4) = uVar2" (pointer_expression "*(undefined4 *)(param_1 + 4)" (* "*") (cast_expression "(undefined4 *)(param_1 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 4)" (( "(") (binary_expression "param_1 + 4" (identifier "param_1") (+ "+") (number_literal "4")) () ")")))) (= "=") (identifier "uVar2")) (; ";")) (} "}"))) (expression_statement "iVar5 = uVar6 - iVar3;" (assignment_expression "iVar5 = uVar6 - iVar3" (identifier "iVar5") (= "=") (binary_expression "uVar6 - iVar3" (identifier "uVar6") (- "-") (identifier "iVar3"))) (; ";")) (expression_statement "uVar6 = (*(code *)PTR___vsnprintf_chk_000972a4)\n                    (*(int *)(param_1 + 4) + iVar3,iVar5,1,0xffffffff,param_2,param_3);" (assignment_expression "uVar6 = (*(code *)PTR___vsnprintf_chk_000972a4)\n                    (*(int *)(param_1 + 4) + iVar3,iVar5,1,0xffffffff,param_2,param_3)" (identifier "uVar6") (= "=") (call_expression "(*(code *)PTR___vsnprintf_chk_000972a4)\n                    (*(int *)(param_1 + 4) + iVar3,iVar5,1,0xffffffff,param_2,param_3)" (parenthesized_expression "(*(code *)PTR___vsnprintf_chk_000972a4)" (( "(") (pointer_expression "*(code *)PTR___vsnprintf_chk_000972a4" (* "*") (cast_expression "(code *)PTR___vsnprintf_chk_000972a4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___vsnprintf_chk_000972a4"))) () ")")) (argument_list "(*(int *)(param_1 + 4) + iVar3,iVar5,1,0xffffffff,param_2,param_3)" (( "(") (binary_expression "*(int *)(param_1 + 4) + iVar3" (pointer_expression "*(int *)(param_1 + 4)" (* "*") (cast_expression "(int *)(param_1 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 4)" (( "(") (binary_expression "param_1 + 4" (identifier "param_1") (+ "+") (number_literal "4")) () ")")))) (+ "+") (identifier "iVar3")) (, ",") (identifier "iVar5") (, ",") (number_literal "1") (, ",") (number_literal "0xffffffff") (, ",") (identifier "param_2") (, ",") (identifier "param_3") () ")")))) (; ";")) (if_statement "if (uVar6 != 0xffffffff) goto code_r0x0007a408;" (if "if") (parenthesized_expression "(uVar6 != 0xffffffff)" (( "(") (binary_expression "uVar6 != 0xffffffff" (identifier "uVar6") (!= "!=") (number_literal "0xffffffff")) () ")")) (goto_statement "goto code_r0x0007a408;" (goto "goto") (statement_identifier "code_r0x0007a408") (; ";"))) (goto_statement "goto LAB_0007a41c;" (goto "goto") (statement_identifier "LAB_0007a41c") (; ";")) (labeled_statement "code_r0x0007a408:\n  iVar4 = uVar6 + 2;" (statement_identifier "code_r0x0007a408") (: ":") (expression_statement "iVar4 = uVar6 + 2;" (assignment_expression "iVar4 = uVar6 + 2" (identifier "iVar4") (= "=") (binary_expression "uVar6 + 2" (identifier "uVar6") (+ "+") (number_literal "2"))) (; ";"))) (if_statement "if (uVar6 < iVar5 - 1U) {\n    *(uint *)(param_1 + 8) = *(int *)(param_1 + 8) + uVar6;\n    return;\n  }" (if "if") (parenthesized_expression "(uVar6 < iVar5 - 1U)" (( "(") (binary_expression "uVar6 < iVar5 - 1U" (identifier "uVar6") (< "<") (binary_expression "iVar5 - 1U" (identifier "iVar5") (- "-") (number_literal "1U"))) () ")")) (compound_statement "{\n    *(uint *)(param_1 + 8) = *(int *)(param_1 + 8) + uVar6;\n    return;\n  }" ({ "{") (expression_statement "*(uint *)(param_1 + 8) = *(int *)(param_1 + 8) + uVar6;" (assignment_expression "*(uint *)(param_1 + 8) = *(int *)(param_1 + 8) + uVar6" (pointer_expression "*(uint *)(param_1 + 8)" (* "*") (cast_expression "(uint *)(param_1 + 8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")")))) (= "=") (binary_expression "*(int *)(param_1 + 8) + uVar6" (pointer_expression "*(int *)(param_1 + 8)" (* "*") (cast_expression "(int *)(param_1 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")")))) (+ "+") (identifier "uVar6"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (if_statement "if (uVar6 == iVar5 - 1U) {\nLAB_0007a41c:\n    iVar4 = iVar5 * 2;\n  }" (if "if") (parenthesized_expression "(uVar6 == iVar5 - 1U)" (( "(") (binary_expression "uVar6 == iVar5 - 1U" (identifier "uVar6") (== "==") (binary_expression "iVar5 - 1U" (identifier "iVar5") (- "-") (number_literal "1U"))) () ")")) (compound_statement "{\nLAB_0007a41c:\n    iVar4 = iVar5 * 2;\n  }" ({ "{") (labeled_statement "LAB_0007a41c:\n    iVar4 = iVar5 * 2;" (statement_identifier "LAB_0007a41c") (: ":") (expression_statement "iVar4 = iVar5 * 2;" (assignment_expression "iVar4 = iVar5 * 2" (identifier "iVar4") (= "=") (binary_expression "iVar5 * 2" (identifier "iVar5") (* "*") (number_literal "2"))) (; ";"))) (} "}"))) (goto_statement "goto LAB_0007a390;" (goto "goto") (statement_identifier "LAB_0007a390") (; ";")) (} "}")))
(translation_unit (function_definition type: (primitive_type) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (primitive_type) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)))) body: (compound_statement (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (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: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (labeled_statement label: (statement_identifier) (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)))))))) (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: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (identifier)))))) 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 declarator: (abstract_pointer_declarator))) 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: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) (identifier) (identifier))))) (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))))))) (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: (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 (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (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)) (identifier) (number_literal) (number_literal) (identifier) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (goto_statement label: (statement_identifier)) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) consequence: (compound_statement (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: (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)))) (return_statement))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))))) (goto_statement label: (statement_identifier)))))

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

{
  undefined *puVar1;
  undefined4 uVar2;
  int iVar3;
  int iVar4;
  int iVar5;
  uint uVar6;
  code *pcVar7;
  
  puVar1 = PTR___gmp_reallocate_func_000975a0;
  iVar4 = 0x100;
LAB_0007a390:
  iVar3 = *(int *)(param_1 + 8);
  uVar6 = *(uint *)(param_1 + 0xc);
  iVar5 = (iVar3 + iVar4) * 2;
  if (uVar6 <= (uint)(iVar3 + iVar4)) {
    pcVar7 = *(code **)puVar1;
    *(int *)(param_1 + 0xc) = iVar5;
    uVar2 = (*pcVar7)(*(undefined4 *)(param_1 + 4),uVar6,iVar5);
    iVar3 = *(int *)(param_1 + 8);
    uVar6 = *(uint *)(param_1 + 0xc);
    *(undefined4 *)(param_1 + 4) = uVar2;
  }
  iVar5 = uVar6 - iVar3;
  uVar6 = (*(code *)PTR___vsnprintf_chk_000972a4)
                    (*(int *)(param_1 + 4) + iVar3,iVar5,1,0xffffffff,param_2,param_3);
  if (uVar6 != 0xffffffff) goto code_r0x0007a408;
  goto LAB_0007a41c;
code_r0x0007a408:
  iVar4 = uVar6 + 2;
  if (uVar6 < iVar5 - 1U) {
    *(uint *)(param_1 + 8) = *(int *)(param_1 + 8) + uVar6;
    return;
  }
  if (uVar6 == iVar5 - 1U) {
LAB_0007a41c:
    iVar4 = iVar5 * 2;
  }
  goto LAB_0007a390;
}

