
char * xvasprintf(char *format,va_list args)

{
  char *pcVar1;
  char cVar2;
  int iVar3;
  int *piVar4;
  char *pcVar5;
  undefined4 uVar6;
  size_t argcount;
  FILE *stream;
  undefined *puVar7;
  longlong lVar8;
  char *result;
  FILE *local_c;
  
  puVar7 = PTR___stack_chk_guard_00036414;
  local_c = *(FILE **)PTR___stack_chk_guard_00036414;
  if (*format == '\0') {
    argcount = 0;
LAB_00020138:
    result = xstrcat(argcount,args);
  }
  else {
    if ((*format == '%') && (format[1] == 's')) {
      argcount = 0;
      pcVar5 = format;
      do {
        cVar2 = pcVar5[2];
        argcount = argcount + 1;
        if (cVar2 == '\0') goto LAB_00020138;
      } while ((cVar2 == '%') && (pcVar1 = pcVar5 + 3, pcVar5 = pcVar5 + 2, *pcVar1 == 's'));
    }
    iVar3 = (*(code *)PTR___vasprintf_chk_0003636c)(&result,1,format);
    if (iVar3 < 0) {
      piVar4 = (int *)(*(code *)PTR___errno_location_00036360)();
      result = (char *)0x0;
      if (*piVar4 == 0xc) {
                    /* WARNING: Subroutine does not return */
        xalloc_die();
      }
    }
  }
  if (local_c == *(FILE **)puVar7) {
    return result;
  }
  stream = local_c;
  puVar7 = PTR___stack_chk_fail_00036400;
  (*(code *)PTR___stack_chk_fail_00036400)();
  iVar3 = (**(code **)(puVar7 + 0x1618c))();
  if (-1 < iVar3) {
    iVar3 = (**(code **)(puVar7 + 0x161d0))(stream);
    if (iVar3 != 0) {
      uVar6 = (**(code **)(puVar7 + 0x1618c))(stream);
      lVar8 = (**(code **)(puVar7 + 0x161f4))(uVar6);
      if (lVar8 == -1) goto LAB_000202ac;
    }
    iVar3 = rpl_fflush(stream);
    if (iVar3 != 0) {
      piVar4 = (int *)(**(code **)(puVar7 + 0x16190))();
      iVar3 = *piVar4;
      pcVar5 = (char *)(**(code **)(puVar7 + 0x16150))(stream);
      if (iVar3 != 0) {
        pcVar5 = (char *)0xffffffff;
        *piVar4 = iVar3;
      }
      return pcVar5;
    }
  }
LAB_000202ac:
                    /* WARNING: Could not recover jumptable at 0x000202c0. Too many branches */
                    /* WARNING: Treating indirect jump as call */
  pcVar5 = (char *)(**(code **)(puVar7 + 0x16150))(stream);
  return pcVar5;
}



undefined4 xvasprintf(char *param_1,undefined4 param_2)

{
  char *pcVar1;
  char cVar2;
  char *pcVar3;
  int iVar4;
  int *piVar5;
  undefined4 uVar6;
  int iVar7;
  undefined *puVar8;
  longlong lVar9;
  undefined4 local_10;
  int local_c;
  
  puVar8 = PTR___stack_chk_guard_00036414;
  local_c = *(int *)PTR___stack_chk_guard_00036414;
  if (*param_1 == '\0') {
    iVar7 = 0;
LAB_00020138:
    local_10 = FUN_0001ff60(iVar7,param_2);
  }
  else {
    if ((*param_1 == '%') && (param_1[1] == 's')) {
      iVar7 = 0;
      pcVar3 = param_1;
      do {
        cVar2 = pcVar3[2];
        iVar7 = iVar7 + 1;
        if (cVar2 == '\0') goto LAB_00020138;
      } while ((cVar2 == '%') && (pcVar1 = pcVar3 + 3, pcVar3 = pcVar3 + 2, *pcVar1 == 's'));
    }
    iVar7 = (*(code *)PTR___vasprintf_chk_0003636c)(&local_10,1,param_1);
    if (iVar7 < 0) {
      piVar5 = (int *)(*(code *)PTR___errno_location_00036360)();
      local_10 = 0;
      if (*piVar5 == 0xc) {
                    /* WARNING: Subroutine does not return */
        xalloc_die();
      }
    }
  }
  if (local_c == *(int *)puVar8) {
    return local_10;
  }
  iVar7 = local_c;
  puVar8 = PTR___stack_chk_fail_00036400;
  (*(code *)PTR___stack_chk_fail_00036400)();
  iVar4 = (**(code **)(puVar8 + 0x1618c))();
  if (-1 < iVar4) {
    iVar4 = (**(code **)(puVar8 + 0x161d0))(iVar7);
    if (iVar4 != 0) {
      uVar6 = (**(code **)(puVar8 + 0x1618c))(iVar7);
      lVar9 = (**(code **)(puVar8 + 0x161f4))(uVar6);
      if (lVar9 == -1) goto LAB_000202ac;
    }
    iVar4 = rpl_fflush(iVar7);
    if (iVar4 != 0) {
      piVar5 = (int *)(**(code **)(puVar8 + 0x16190))();
      iVar4 = *piVar5;
      uVar6 = (**(code **)(puVar8 + 0x16150))(iVar7);
      if (iVar4 != 0) {
        uVar6 = 0xffffffff;
        *piVar5 = iVar4;
      }
      return uVar6;
    }
  }
LAB_000202ac:
                    /* WARNING: Could not recover jumptable at 0x000202c0. Too many branches */
                    /* WARNING: Treating indirect jump as call */
  uVar6 = (**(code **)(puVar8 + 0x16150))(iVar7);
  return uVar6;
}


lui gp,0x2
addiu gp,gp,-0x1fc4
addu gp,gp,t9
addiu sp,sp,-0x28
or a3,a1,zero
sw s0,0x20(sp)
sw gp,0x10(sp)
sw ra,0x24(sp)
lw s0,-0x7cdc(gp)
lb v0,0x0(a0)
lw v1,0x0(s0)
sw v1,0x1c(sp)
beq v0,zero,0x000201b4
_li v1,0x25
bne v0,v1,0x00020150
_or a2,a0,zero
lb v1,0x1(a0)
li v0,0x73
bne v1,v0,0x00020150
_or v0,a0,zero
li a1,0x25
or a0,zero,zero
b 0x00020128
_li t0,0x73
bne v1,a1,0x00020154
_lw t9,-0x7d84(gp)
lb v1,0x1(v0)
bne v1,t0,0x00020154
_nop
addiu v0,v0,0x2
lb v1,0x0(v0)
bne v1,zero,0x00020114
_addiu a0,a0,0x1
lw t9,-0x7fc8(gp)
addiu t9,t9,-0xa0
bal 0x0001ff60
_or a1,a3,zero
b 0x0002016c
_lw gp,0x10(sp)
lw t9,-0x7d84(gp)
li a1,0x1
jalr t9
_addiu a0,sp,0x18
bltz v0,0x00020188
_lw gp,0x10(sp)
lw v0,0x18(sp)
lw a0,0x1c(sp)
lw v1,0x0(s0)
bne a0,v1,0x000201bc
_lw ra,0x24(sp)
lw s0,0x20(sp)
jr ra
_addiu sp,sp,0x28
lw t9,-0x7d90(gp)
jalr t9
_nop
li v1,0xc
lw a0,0x0(v0)
or v0,zero,zero
bne a0,v1,0x0002016c
_lw gp,0x10(sp)
lw t9,-0x7f0c(gp)
bal 0x0001bda0
_nop
b 0x00020138
_or a0,zero,zero
lw t9,-0x7cf0(gp)
jalr t9
_nop
nop
nop
(translation_unit "undefined4 xvasprintf(char *param_1,undefined4 param_2)\n\n{\n  char *pcVar1;\n  char cVar2;\n  char *pcVar3;\n  int iVar4;\n  int *piVar5;\n  undefined4 uVar6;\n  int iVar7;\n  undefined *puVar8;\n  longlong lVar9;\n  undefined4 local_10;\n  int local_c;\n  \n  puVar8 = PTR___stack_chk_guard_00036414;\n  local_c = *(int *)PTR___stack_chk_guard_00036414;\n  if (*param_1 == '\0') {\n    iVar7 = 0;\nLAB_00020138:\n    local_10 = FUN_0001ff60(iVar7,param_2);\n  }\n  else {\n    if ((*param_1 == '%') && (param_1[1] == 's')) {\n      iVar7 = 0;\n      pcVar3 = param_1;\n      do {\n        cVar2 = pcVar3[2];\n        iVar7 = iVar7 + 1;\n        if (cVar2 == '\0') goto LAB_00020138;\n      } while ((cVar2 == '%') && (pcVar1 = pcVar3 + 3, pcVar3 = pcVar3 + 2, *pcVar1 == 's'));\n    }\n    iVar7 = (*(code *)PTR___vasprintf_chk_0003636c)(&local_10,1,param_1);\n    if (iVar7 < 0) {\n      piVar5 = (int *)(*(code *)PTR___errno_location_00036360)();\n      local_10 = 0;\n      if (*piVar5 == 0xc) {\n                    /* WARNING: Subroutine does not return */\n        xalloc_die();\n      }\n    }\n  }\n  if (local_c == *(int *)puVar8) {\n    return local_10;\n  }\n  iVar7 = local_c;\n  puVar8 = PTR___stack_chk_fail_00036400;\n  (*(code *)PTR___stack_chk_fail_00036400)();\n  iVar4 = (**(code **)(puVar8 + 0x1618c))();\n  if (-1 < iVar4) {\n    iVar4 = (**(code **)(puVar8 + 0x161d0))(iVar7);\n    if (iVar4 != 0) {\n      uVar6 = (**(code **)(puVar8 + 0x1618c))(iVar7);\n      lVar9 = (**(code **)(puVar8 + 0x161f4))(uVar6);\n      if (lVar9 == -1) goto LAB_000202ac;\n    }\n    iVar4 = rpl_fflush(iVar7);\n    if (iVar4 != 0) {\n      piVar5 = (int *)(**(code **)(puVar8 + 0x16190))();\n      iVar4 = *piVar5;\n      uVar6 = (**(code **)(puVar8 + 0x16150))(iVar7);\n      if (iVar4 != 0) {\n        uVar6 = 0xffffffff;\n        *piVar5 = iVar4;\n      }\n      return uVar6;\n    }\n  }\nLAB_000202ac:\n                    /* WARNING: Could not recover jumptable at 0x000202c0. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n  uVar6 = (**(code **)(puVar8 + 0x16150))(iVar7);\n  return uVar6;\n}\n\n" (function_definition "undefined4 xvasprintf(char *param_1,undefined4 param_2)\n\n{\n  char *pcVar1;\n  char cVar2;\n  char *pcVar3;\n  int iVar4;\n  int *piVar5;\n  undefined4 uVar6;\n  int iVar7;\n  undefined *puVar8;\n  longlong lVar9;\n  undefined4 local_10;\n  int local_c;\n  \n  puVar8 = PTR___stack_chk_guard_00036414;\n  local_c = *(int *)PTR___stack_chk_guard_00036414;\n  if (*param_1 == '\0') {\n    iVar7 = 0;\nLAB_00020138:\n    local_10 = FUN_0001ff60(iVar7,param_2);\n  }\n  else {\n    if ((*param_1 == '%') && (param_1[1] == 's')) {\n      iVar7 = 0;\n      pcVar3 = param_1;\n      do {\n        cVar2 = pcVar3[2];\n        iVar7 = iVar7 + 1;\n        if (cVar2 == '\0') goto LAB_00020138;\n      } while ((cVar2 == '%') && (pcVar1 = pcVar3 + 3, pcVar3 = pcVar3 + 2, *pcVar1 == 's'));\n    }\n    iVar7 = (*(code *)PTR___vasprintf_chk_0003636c)(&local_10,1,param_1);\n    if (iVar7 < 0) {\n      piVar5 = (int *)(*(code *)PTR___errno_location_00036360)();\n      local_10 = 0;\n      if (*piVar5 == 0xc) {\n                    /* WARNING: Subroutine does not return */\n        xalloc_die();\n      }\n    }\n  }\n  if (local_c == *(int *)puVar8) {\n    return local_10;\n  }\n  iVar7 = local_c;\n  puVar8 = PTR___stack_chk_fail_00036400;\n  (*(code *)PTR___stack_chk_fail_00036400)();\n  iVar4 = (**(code **)(puVar8 + 0x1618c))();\n  if (-1 < iVar4) {\n    iVar4 = (**(code **)(puVar8 + 0x161d0))(iVar7);\n    if (iVar4 != 0) {\n      uVar6 = (**(code **)(puVar8 + 0x1618c))(iVar7);\n      lVar9 = (**(code **)(puVar8 + 0x161f4))(uVar6);\n      if (lVar9 == -1) goto LAB_000202ac;\n    }\n    iVar4 = rpl_fflush(iVar7);\n    if (iVar4 != 0) {\n      piVar5 = (int *)(**(code **)(puVar8 + 0x16190))();\n      iVar4 = *piVar5;\n      uVar6 = (**(code **)(puVar8 + 0x16150))(iVar7);\n      if (iVar4 != 0) {\n        uVar6 = 0xffffffff;\n        *piVar5 = iVar4;\n      }\n      return uVar6;\n    }\n  }\nLAB_000202ac:\n                    /* WARNING: Could not recover jumptable at 0x000202c0. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n  uVar6 = (**(code **)(puVar8 + 0x16150))(iVar7);\n  return uVar6;\n}" type_identifier (function_declarator "xvasprintf(char *param_1,undefined4 param_2)" identifier (parameter_list "(char *param_1,undefined4 param_2)" ( (parameter_declaration "char *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "undefined4 param_2" type_identifier identifier) ))) (compound_statement "{\n  char *pcVar1;\n  char cVar2;\n  char *pcVar3;\n  int iVar4;\n  int *piVar5;\n  undefined4 uVar6;\n  int iVar7;\n  undefined *puVar8;\n  longlong lVar9;\n  undefined4 local_10;\n  int local_c;\n  \n  puVar8 = PTR___stack_chk_guard_00036414;\n  local_c = *(int *)PTR___stack_chk_guard_00036414;\n  if (*param_1 == '\0') {\n    iVar7 = 0;\nLAB_00020138:\n    local_10 = FUN_0001ff60(iVar7,param_2);\n  }\n  else {\n    if ((*param_1 == '%') && (param_1[1] == 's')) {\n      iVar7 = 0;\n      pcVar3 = param_1;\n      do {\n        cVar2 = pcVar3[2];\n        iVar7 = iVar7 + 1;\n        if (cVar2 == '\0') goto LAB_00020138;\n      } while ((cVar2 == '%') && (pcVar1 = pcVar3 + 3, pcVar3 = pcVar3 + 2, *pcVar1 == 's'));\n    }\n    iVar7 = (*(code *)PTR___vasprintf_chk_0003636c)(&local_10,1,param_1);\n    if (iVar7 < 0) {\n      piVar5 = (int *)(*(code *)PTR___errno_location_00036360)();\n      local_10 = 0;\n      if (*piVar5 == 0xc) {\n                    /* WARNING: Subroutine does not return */\n        xalloc_die();\n      }\n    }\n  }\n  if (local_c == *(int *)puVar8) {\n    return local_10;\n  }\n  iVar7 = local_c;\n  puVar8 = PTR___stack_chk_fail_00036400;\n  (*(code *)PTR___stack_chk_fail_00036400)();\n  iVar4 = (**(code **)(puVar8 + 0x1618c))();\n  if (-1 < iVar4) {\n    iVar4 = (**(code **)(puVar8 + 0x161d0))(iVar7);\n    if (iVar4 != 0) {\n      uVar6 = (**(code **)(puVar8 + 0x1618c))(iVar7);\n      lVar9 = (**(code **)(puVar8 + 0x161f4))(uVar6);\n      if (lVar9 == -1) goto LAB_000202ac;\n    }\n    iVar4 = rpl_fflush(iVar7);\n    if (iVar4 != 0) {\n      piVar5 = (int *)(**(code **)(puVar8 + 0x16190))();\n      iVar4 = *piVar5;\n      uVar6 = (**(code **)(puVar8 + 0x16150))(iVar7);\n      if (iVar4 != 0) {\n        uVar6 = 0xffffffff;\n        *piVar5 = iVar4;\n      }\n      return uVar6;\n    }\n  }\nLAB_000202ac:\n                    /* WARNING: Could not recover jumptable at 0x000202c0. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n  uVar6 = (**(code **)(puVar8 + 0x16150))(iVar7);\n  return uVar6;\n}" { (declaration "char *pcVar1;" primitive_type (pointer_declarator "*pcVar1" * identifier) ;) (declaration "char cVar2;" primitive_type identifier ;) (declaration "char *pcVar3;" primitive_type (pointer_declarator "*pcVar3" * identifier) ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "int *piVar5;" primitive_type (pointer_declarator "*piVar5" * identifier) ;) (declaration "undefined4 uVar6;" type_identifier identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "undefined *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "longlong lVar9;" type_identifier identifier ;) (declaration "undefined4 local_10;" type_identifier identifier ;) (declaration "int local_c;" primitive_type identifier ;) (expression_statement "puVar8 = PTR___stack_chk_guard_00036414;" (assignment_expression "puVar8 = PTR___stack_chk_guard_00036414" identifier = identifier) ;) (expression_statement "local_c = *(int *)PTR___stack_chk_guard_00036414;" (assignment_expression "local_c = *(int *)PTR___stack_chk_guard_00036414" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_00036414" * (cast_expression "(int *)PTR___stack_chk_guard_00036414" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if (*param_1 == '\0') {\n    iVar7 = 0;\nLAB_00020138:\n    local_10 = FUN_0001ff60(iVar7,param_2);\n  }\n  else {\n    if ((*param_1 == '%') && (param_1[1] == 's')) {\n      iVar7 = 0;\n      pcVar3 = param_1;\n      do {\n        cVar2 = pcVar3[2];\n        iVar7 = iVar7 + 1;\n        if (cVar2 == '\0') goto LAB_00020138;\n      } while ((cVar2 == '%') && (pcVar1 = pcVar3 + 3, pcVar3 = pcVar3 + 2, *pcVar1 == 's'));\n    }\n    iVar7 = (*(code *)PTR___vasprintf_chk_0003636c)(&local_10,1,param_1);\n    if (iVar7 < 0) {\n      piVar5 = (int *)(*(code *)PTR___errno_location_00036360)();\n      local_10 = 0;\n      if (*piVar5 == 0xc) {\n                    /* WARNING: Subroutine does not return */\n        xalloc_die();\n      }\n    }\n  }" if (parenthesized_expression "(*param_1 == '\0')" ( (binary_expression "*param_1 == '\0'" (pointer_expression "*param_1" * identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    iVar7 = 0;\nLAB_00020138:\n    local_10 = FUN_0001ff60(iVar7,param_2);\n  }" { (expression_statement "iVar7 = 0;" (assignment_expression "iVar7 = 0" identifier = number_literal) ;) (labeled_statement "LAB_00020138:\n    local_10 = FUN_0001ff60(iVar7,param_2);" statement_identifier : (expression_statement "local_10 = FUN_0001ff60(iVar7,param_2);" (assignment_expression "local_10 = FUN_0001ff60(iVar7,param_2)" identifier = (call_expression "FUN_0001ff60(iVar7,param_2)" identifier (argument_list "(iVar7,param_2)" ( identifier , identifier )))) ;)) }) (else_clause "else {\n    if ((*param_1 == '%') && (param_1[1] == 's')) {\n      iVar7 = 0;\n      pcVar3 = param_1;\n      do {\n        cVar2 = pcVar3[2];\n        iVar7 = iVar7 + 1;\n        if (cVar2 == '\0') goto LAB_00020138;\n      } while ((cVar2 == '%') && (pcVar1 = pcVar3 + 3, pcVar3 = pcVar3 + 2, *pcVar1 == 's'));\n    }\n    iVar7 = (*(code *)PTR___vasprintf_chk_0003636c)(&local_10,1,param_1);\n    if (iVar7 < 0) {\n      piVar5 = (int *)(*(code *)PTR___errno_location_00036360)();\n      local_10 = 0;\n      if (*piVar5 == 0xc) {\n                    /* WARNING: Subroutine does not return */\n        xalloc_die();\n      }\n    }\n  }" else (compound_statement "{\n    if ((*param_1 == '%') && (param_1[1] == 's')) {\n      iVar7 = 0;\n      pcVar3 = param_1;\n      do {\n        cVar2 = pcVar3[2];\n        iVar7 = iVar7 + 1;\n        if (cVar2 == '\0') goto LAB_00020138;\n      } while ((cVar2 == '%') && (pcVar1 = pcVar3 + 3, pcVar3 = pcVar3 + 2, *pcVar1 == 's'));\n    }\n    iVar7 = (*(code *)PTR___vasprintf_chk_0003636c)(&local_10,1,param_1);\n    if (iVar7 < 0) {\n      piVar5 = (int *)(*(code *)PTR___errno_location_00036360)();\n      local_10 = 0;\n      if (*piVar5 == 0xc) {\n                    /* WARNING: Subroutine does not return */\n        xalloc_die();\n      }\n    }\n  }" { (if_statement "if ((*param_1 == '%') && (param_1[1] == 's')) {\n      iVar7 = 0;\n      pcVar3 = param_1;\n      do {\n        cVar2 = pcVar3[2];\n        iVar7 = iVar7 + 1;\n        if (cVar2 == '\0') goto LAB_00020138;\n      } while ((cVar2 == '%') && (pcVar1 = pcVar3 + 3, pcVar3 = pcVar3 + 2, *pcVar1 == 's'));\n    }" if (parenthesized_expression "((*param_1 == '%') && (param_1[1] == 's'))" ( (binary_expression "(*param_1 == '%') && (param_1[1] == 's')" (parenthesized_expression "(*param_1 == '%')" ( (binary_expression "*param_1 == '%'" (pointer_expression "*param_1" * identifier) == (char_literal "'%'" ' character ')) )) && (parenthesized_expression "(param_1[1] == 's')" ( (binary_expression "param_1[1] == 's'" (subscript_expression "param_1[1]" identifier [ number_literal ]) == (char_literal "'s'" ' character ')) ))) )) (compound_statement "{\n      iVar7 = 0;\n      pcVar3 = param_1;\n      do {\n        cVar2 = pcVar3[2];\n        iVar7 = iVar7 + 1;\n        if (cVar2 == '\0') goto LAB_00020138;\n      } while ((cVar2 == '%') && (pcVar1 = pcVar3 + 3, pcVar3 = pcVar3 + 2, *pcVar1 == 's'));\n    }" { (expression_statement "iVar7 = 0;" (assignment_expression "iVar7 = 0" identifier = number_literal) ;) (expression_statement "pcVar3 = param_1;" (assignment_expression "pcVar3 = param_1" identifier = identifier) ;) (do_statement "do {\n        cVar2 = pcVar3[2];\n        iVar7 = iVar7 + 1;\n        if (cVar2 == '\0') goto LAB_00020138;\n      } while ((cVar2 == '%') && (pcVar1 = pcVar3 + 3, pcVar3 = pcVar3 + 2, *pcVar1 == 's'));" do (compound_statement "{\n        cVar2 = pcVar3[2];\n        iVar7 = iVar7 + 1;\n        if (cVar2 == '\0') goto LAB_00020138;\n      }" { (expression_statement "cVar2 = pcVar3[2];" (assignment_expression "cVar2 = pcVar3[2]" identifier = (subscript_expression "pcVar3[2]" identifier [ number_literal ])) ;) (expression_statement "iVar7 = iVar7 + 1;" (assignment_expression "iVar7 = iVar7 + 1" identifier = (binary_expression "iVar7 + 1" identifier + number_literal)) ;) (if_statement "if (cVar2 == '\0') goto LAB_00020138;" if (parenthesized_expression "(cVar2 == '\0')" ( (binary_expression "cVar2 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_00020138;" goto statement_identifier ;)) }) while (parenthesized_expression "((cVar2 == '%') && (pcVar1 = pcVar3 + 3, pcVar3 = pcVar3 + 2, *pcVar1 == 's'))" ( (binary_expression "(cVar2 == '%') && (pcVar1 = pcVar3 + 3, pcVar3 = pcVar3 + 2, *pcVar1 == 's')" (parenthesized_expression "(cVar2 == '%')" ( (binary_expression "cVar2 == '%'" identifier == (char_literal "'%'" ' character ')) )) && (parenthesized_expression "(pcVar1 = pcVar3 + 3, pcVar3 = pcVar3 + 2, *pcVar1 == 's')" ( (comma_expression "pcVar1 = pcVar3 + 3, pcVar3 = pcVar3 + 2, *pcVar1 == 's'" (assignment_expression "pcVar1 = pcVar3 + 3" identifier = (binary_expression "pcVar3 + 3" identifier + number_literal)) , (comma_expression "pcVar3 = pcVar3 + 2, *pcVar1 == 's'" (assignment_expression "pcVar3 = pcVar3 + 2" identifier = (binary_expression "pcVar3 + 2" identifier + number_literal)) , (binary_expression "*pcVar1 == 's'" (pointer_expression "*pcVar1" * identifier) == (char_literal "'s'" ' character ')))) ))) )) ;) })) (expression_statement "iVar7 = (*(code *)PTR___vasprintf_chk_0003636c)(&local_10,1,param_1);" (assignment_expression "iVar7 = (*(code *)PTR___vasprintf_chk_0003636c)(&local_10,1,param_1)" identifier = (call_expression "(*(code *)PTR___vasprintf_chk_0003636c)(&local_10,1,param_1)" (parenthesized_expression "(*(code *)PTR___vasprintf_chk_0003636c)" ( (pointer_expression "*(code *)PTR___vasprintf_chk_0003636c" * (cast_expression "(code *)PTR___vasprintf_chk_0003636c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&local_10,1,param_1)" ( (pointer_expression "&local_10" & identifier) , number_literal , identifier )))) ;) (if_statement "if (iVar7 < 0) {\n      piVar5 = (int *)(*(code *)PTR___errno_location_00036360)();\n      local_10 = 0;\n      if (*piVar5 == 0xc) {\n                    /* WARNING: Subroutine does not return */\n        xalloc_die();\n      }\n    }" if (parenthesized_expression "(iVar7 < 0)" ( (binary_expression "iVar7 < 0" identifier < number_literal) )) (compound_statement "{\n      piVar5 = (int *)(*(code *)PTR___errno_location_00036360)();\n      local_10 = 0;\n      if (*piVar5 == 0xc) {\n                    /* WARNING: Subroutine does not return */\n        xalloc_die();\n      }\n    }" { (expression_statement "piVar5 = (int *)(*(code *)PTR___errno_location_00036360)();" (assignment_expression "piVar5 = (int *)(*(code *)PTR___errno_location_00036360)()" identifier = (cast_expression "(int *)(*(code *)PTR___errno_location_00036360)()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_00036360)()" (parenthesized_expression "(*(code *)PTR___errno_location_00036360)" ( (pointer_expression "*(code *)PTR___errno_location_00036360" * (cast_expression "(code *)PTR___errno_location_00036360" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "local_10 = 0;" (assignment_expression "local_10 = 0" identifier = number_literal) ;) (if_statement "if (*piVar5 == 0xc) {\n                    /* WARNING: Subroutine does not return */\n        xalloc_die();\n      }" if (parenthesized_expression "(*piVar5 == 0xc)" ( (binary_expression "*piVar5 == 0xc" (pointer_expression "*piVar5" * identifier) == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n        xalloc_die();\n      }" { comment (expression_statement "xalloc_die();" (call_expression "xalloc_die()" identifier (argument_list "()" ( ))) ;) })) })) }))) (if_statement "if (local_c == *(int *)puVar8) {\n    return local_10;\n  }" if (parenthesized_expression "(local_c == *(int *)puVar8)" ( (binary_expression "local_c == *(int *)puVar8" identifier == (pointer_expression "*(int *)puVar8" * (cast_expression "(int *)puVar8" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return local_10;\n  }" { (return_statement "return local_10;" return identifier ;) })) (expression_statement "iVar7 = local_c;" (assignment_expression "iVar7 = local_c" identifier = identifier) ;) (expression_statement "puVar8 = PTR___stack_chk_fail_00036400;" (assignment_expression "puVar8 = PTR___stack_chk_fail_00036400" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_00036400)();" (call_expression "(*(code *)PTR___stack_chk_fail_00036400)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_00036400)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_00036400" * (cast_expression "(code *)PTR___stack_chk_fail_00036400" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "iVar4 = (**(code **)(puVar8 + 0x1618c))();" (assignment_expression "iVar4 = (**(code **)(puVar8 + 0x1618c))()" identifier = (call_expression "(**(code **)(puVar8 + 0x1618c))()" (parenthesized_expression "(**(code **)(puVar8 + 0x1618c))" ( (pointer_expression "**(code **)(puVar8 + 0x1618c)" * (pointer_expression "*(code **)(puVar8 + 0x1618c)" * (cast_expression "(code **)(puVar8 + 0x1618c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar8 + 0x1618c)" ( (binary_expression "puVar8 + 0x1618c" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (if_statement "if (-1 < iVar4) {\n    iVar4 = (**(code **)(puVar8 + 0x161d0))(iVar7);\n    if (iVar4 != 0) {\n      uVar6 = (**(code **)(puVar8 + 0x1618c))(iVar7);\n      lVar9 = (**(code **)(puVar8 + 0x161f4))(uVar6);\n      if (lVar9 == -1) goto LAB_000202ac;\n    }\n    iVar4 = rpl_fflush(iVar7);\n    if (iVar4 != 0) {\n      piVar5 = (int *)(**(code **)(puVar8 + 0x16190))();\n      iVar4 = *piVar5;\n      uVar6 = (**(code **)(puVar8 + 0x16150))(iVar7);\n      if (iVar4 != 0) {\n        uVar6 = 0xffffffff;\n        *piVar5 = iVar4;\n      }\n      return uVar6;\n    }\n  }" if (parenthesized_expression "(-1 < iVar4)" ( (binary_expression "-1 < iVar4" number_literal < identifier) )) (compound_statement "{\n    iVar4 = (**(code **)(puVar8 + 0x161d0))(iVar7);\n    if (iVar4 != 0) {\n      uVar6 = (**(code **)(puVar8 + 0x1618c))(iVar7);\n      lVar9 = (**(code **)(puVar8 + 0x161f4))(uVar6);\n      if (lVar9 == -1) goto LAB_000202ac;\n    }\n    iVar4 = rpl_fflush(iVar7);\n    if (iVar4 != 0) {\n      piVar5 = (int *)(**(code **)(puVar8 + 0x16190))();\n      iVar4 = *piVar5;\n      uVar6 = (**(code **)(puVar8 + 0x16150))(iVar7);\n      if (iVar4 != 0) {\n        uVar6 = 0xffffffff;\n        *piVar5 = iVar4;\n      }\n      return uVar6;\n    }\n  }" { (expression_statement "iVar4 = (**(code **)(puVar8 + 0x161d0))(iVar7);" (assignment_expression "iVar4 = (**(code **)(puVar8 + 0x161d0))(iVar7)" identifier = (call_expression "(**(code **)(puVar8 + 0x161d0))(iVar7)" (parenthesized_expression "(**(code **)(puVar8 + 0x161d0))" ( (pointer_expression "**(code **)(puVar8 + 0x161d0)" * (pointer_expression "*(code **)(puVar8 + 0x161d0)" * (cast_expression "(code **)(puVar8 + 0x161d0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar8 + 0x161d0)" ( (binary_expression "puVar8 + 0x161d0" identifier + number_literal) ))))) )) (argument_list "(iVar7)" ( identifier )))) ;) (if_statement "if (iVar4 != 0) {\n      uVar6 = (**(code **)(puVar8 + 0x1618c))(iVar7);\n      lVar9 = (**(code **)(puVar8 + 0x161f4))(uVar6);\n      if (lVar9 == -1) goto LAB_000202ac;\n    }" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (compound_statement "{\n      uVar6 = (**(code **)(puVar8 + 0x1618c))(iVar7);\n      lVar9 = (**(code **)(puVar8 + 0x161f4))(uVar6);\n      if (lVar9 == -1) goto LAB_000202ac;\n    }" { (expression_statement "uVar6 = (**(code **)(puVar8 + 0x1618c))(iVar7);" (assignment_expression "uVar6 = (**(code **)(puVar8 + 0x1618c))(iVar7)" identifier = (call_expression "(**(code **)(puVar8 + 0x1618c))(iVar7)" (parenthesized_expression "(**(code **)(puVar8 + 0x1618c))" ( (pointer_expression "**(code **)(puVar8 + 0x1618c)" * (pointer_expression "*(code **)(puVar8 + 0x1618c)" * (cast_expression "(code **)(puVar8 + 0x1618c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar8 + 0x1618c)" ( (binary_expression "puVar8 + 0x1618c" identifier + number_literal) ))))) )) (argument_list "(iVar7)" ( identifier )))) ;) (expression_statement "lVar9 = (**(code **)(puVar8 + 0x161f4))(uVar6);" (assignment_expression "lVar9 = (**(code **)(puVar8 + 0x161f4))(uVar6)" identifier = (call_expression "(**(code **)(puVar8 + 0x161f4))(uVar6)" (parenthesized_expression "(**(code **)(puVar8 + 0x161f4))" ( (pointer_expression "**(code **)(puVar8 + 0x161f4)" * (pointer_expression "*(code **)(puVar8 + 0x161f4)" * (cast_expression "(code **)(puVar8 + 0x161f4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar8 + 0x161f4)" ( (binary_expression "puVar8 + 0x161f4" identifier + number_literal) ))))) )) (argument_list "(uVar6)" ( identifier )))) ;) (if_statement "if (lVar9 == -1) goto LAB_000202ac;" if (parenthesized_expression "(lVar9 == -1)" ( (binary_expression "lVar9 == -1" identifier == number_literal) )) (goto_statement "goto LAB_000202ac;" goto statement_identifier ;)) })) (expression_statement "iVar4 = rpl_fflush(iVar7);" (assignment_expression "iVar4 = rpl_fflush(iVar7)" identifier = (call_expression "rpl_fflush(iVar7)" identifier (argument_list "(iVar7)" ( identifier )))) ;) (if_statement "if (iVar4 != 0) {\n      piVar5 = (int *)(**(code **)(puVar8 + 0x16190))();\n      iVar4 = *piVar5;\n      uVar6 = (**(code **)(puVar8 + 0x16150))(iVar7);\n      if (iVar4 != 0) {\n        uVar6 = 0xffffffff;\n        *piVar5 = iVar4;\n      }\n      return uVar6;\n    }" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (compound_statement "{\n      piVar5 = (int *)(**(code **)(puVar8 + 0x16190))();\n      iVar4 = *piVar5;\n      uVar6 = (**(code **)(puVar8 + 0x16150))(iVar7);\n      if (iVar4 != 0) {\n        uVar6 = 0xffffffff;\n        *piVar5 = iVar4;\n      }\n      return uVar6;\n    }" { (expression_statement "piVar5 = (int *)(**(code **)(puVar8 + 0x16190))();" (assignment_expression "piVar5 = (int *)(**(code **)(puVar8 + 0x16190))()" identifier = (cast_expression "(int *)(**(code **)(puVar8 + 0x16190))()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar8 + 0x16190))()" (parenthesized_expression "(**(code **)(puVar8 + 0x16190))" ( (pointer_expression "**(code **)(puVar8 + 0x16190)" * (pointer_expression "*(code **)(puVar8 + 0x16190)" * (cast_expression "(code **)(puVar8 + 0x16190)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar8 + 0x16190)" ( (binary_expression "puVar8 + 0x16190" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "iVar4 = *piVar5;" (assignment_expression "iVar4 = *piVar5" identifier = (pointer_expression "*piVar5" * identifier)) ;) (expression_statement "uVar6 = (**(code **)(puVar8 + 0x16150))(iVar7);" (assignment_expression "uVar6 = (**(code **)(puVar8 + 0x16150))(iVar7)" identifier = (call_expression "(**(code **)(puVar8 + 0x16150))(iVar7)" (parenthesized_expression "(**(code **)(puVar8 + 0x16150))" ( (pointer_expression "**(code **)(puVar8 + 0x16150)" * (pointer_expression "*(code **)(puVar8 + 0x16150)" * (cast_expression "(code **)(puVar8 + 0x16150)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar8 + 0x16150)" ( (binary_expression "puVar8 + 0x16150" identifier + number_literal) ))))) )) (argument_list "(iVar7)" ( identifier )))) ;) (if_statement "if (iVar4 != 0) {\n        uVar6 = 0xffffffff;\n        *piVar5 = iVar4;\n      }" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (compound_statement "{\n        uVar6 = 0xffffffff;\n        *piVar5 = iVar4;\n      }" { (expression_statement "uVar6 = 0xffffffff;" (assignment_expression "uVar6 = 0xffffffff" identifier = number_literal) ;) (expression_statement "*piVar5 = iVar4;" (assignment_expression "*piVar5 = iVar4" (pointer_expression "*piVar5" * identifier) = identifier) ;) })) (return_statement "return uVar6;" return identifier ;) })) })) (labeled_statement "LAB_000202ac:\n                    /* WARNING: Could not recover jumptable at 0x000202c0. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n  uVar6 = (**(code **)(puVar8 + 0x16150))(iVar7);" statement_identifier : comment comment (expression_statement "uVar6 = (**(code **)(puVar8 + 0x16150))(iVar7);" (assignment_expression "uVar6 = (**(code **)(puVar8 + 0x16150))(iVar7)" identifier = (call_expression "(**(code **)(puVar8 + 0x16150))(iVar7)" (parenthesized_expression "(**(code **)(puVar8 + 0x16150))" ( (pointer_expression "**(code **)(puVar8 + 0x16150)" * (pointer_expression "*(code **)(puVar8 + 0x16150)" * (cast_expression "(code **)(puVar8 + 0x16150)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar8 + 0x16150)" ( (binary_expression "puVar8 + 0x16150" identifier + number_literal) ))))) )) (argument_list "(iVar7)" ( identifier )))) ;)) (return_statement "return uVar6;" return identifier ;) })))
(translation_unit "char * xvasprintf(char *format,va_list args)\n\n{\n  char *pcVar1;\n  char cVar2;\n  int iVar3;\n  int *piVar4;\n  char *pcVar5;\n  undefined4 uVar6;\n  size_t argcount;\n  FILE *stream;\n  undefined *puVar7;\n  longlong lVar8;\n  char *result;\n  FILE *local_c;\n  \n  puVar7 = PTR___stack_chk_guard_00036414;\n  local_c = *(FILE **)PTR___stack_chk_guard_00036414;\n  if (*format == '\0') {\n    argcount = 0;\nLAB_00020138:\n    result = xstrcat(argcount,args);\n  }\n  else {\n    if ((*format == '%') && (format[1] == 's')) {\n      argcount = 0;\n      pcVar5 = format;\n      do {\n        cVar2 = pcVar5[2];\n        argcount = argcount + 1;\n        if (cVar2 == '\0') goto LAB_00020138;\n      } while ((cVar2 == '%') && (pcVar1 = pcVar5 + 3, pcVar5 = pcVar5 + 2, *pcVar1 == 's'));\n    }\n    iVar3 = (*(code *)PTR___vasprintf_chk_0003636c)(&result,1,format);\n    if (iVar3 < 0) {\n      piVar4 = (int *)(*(code *)PTR___errno_location_00036360)();\n      result = (char *)0x0;\n      if (*piVar4 == 0xc) {\n                    /* WARNING: Subroutine does not return */\n        xalloc_die();\n      }\n    }\n  }\n  if (local_c == *(FILE **)puVar7) {\n    return result;\n  }\n  stream = local_c;\n  puVar7 = PTR___stack_chk_fail_00036400;\n  (*(code *)PTR___stack_chk_fail_00036400)();\n  iVar3 = (**(code **)(puVar7 + 0x1618c))();\n  if (-1 < iVar3) {\n    iVar3 = (**(code **)(puVar7 + 0x161d0))(stream);\n    if (iVar3 != 0) {\n      uVar6 = (**(code **)(puVar7 + 0x1618c))(stream);\n      lVar8 = (**(code **)(puVar7 + 0x161f4))(uVar6);\n      if (lVar8 == -1) goto LAB_000202ac;\n    }\n    iVar3 = rpl_fflush(stream);\n    if (iVar3 != 0) {\n      piVar4 = (int *)(**(code **)(puVar7 + 0x16190))();\n      iVar3 = *piVar4;\n      pcVar5 = (char *)(**(code **)(puVar7 + 0x16150))(stream);\n      if (iVar3 != 0) {\n        pcVar5 = (char *)0xffffffff;\n        *piVar4 = iVar3;\n      }\n      return pcVar5;\n    }\n  }\nLAB_000202ac:\n                    /* WARNING: Could not recover jumptable at 0x000202c0. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n  pcVar5 = (char *)(**(code **)(puVar7 + 0x16150))(stream);\n  return pcVar5;\n}\n\n" (function_definition "char * xvasprintf(char *format,va_list args)\n\n{\n  char *pcVar1;\n  char cVar2;\n  int iVar3;\n  int *piVar4;\n  char *pcVar5;\n  undefined4 uVar6;\n  size_t argcount;\n  FILE *stream;\n  undefined *puVar7;\n  longlong lVar8;\n  char *result;\n  FILE *local_c;\n  \n  puVar7 = PTR___stack_chk_guard_00036414;\n  local_c = *(FILE **)PTR___stack_chk_guard_00036414;\n  if (*format == '\0') {\n    argcount = 0;\nLAB_00020138:\n    result = xstrcat(argcount,args);\n  }\n  else {\n    if ((*format == '%') && (format[1] == 's')) {\n      argcount = 0;\n      pcVar5 = format;\n      do {\n        cVar2 = pcVar5[2];\n        argcount = argcount + 1;\n        if (cVar2 == '\0') goto LAB_00020138;\n      } while ((cVar2 == '%') && (pcVar1 = pcVar5 + 3, pcVar5 = pcVar5 + 2, *pcVar1 == 's'));\n    }\n    iVar3 = (*(code *)PTR___vasprintf_chk_0003636c)(&result,1,format);\n    if (iVar3 < 0) {\n      piVar4 = (int *)(*(code *)PTR___errno_location_00036360)();\n      result = (char *)0x0;\n      if (*piVar4 == 0xc) {\n                    /* WARNING: Subroutine does not return */\n        xalloc_die();\n      }\n    }\n  }\n  if (local_c == *(FILE **)puVar7) {\n    return result;\n  }\n  stream = local_c;\n  puVar7 = PTR___stack_chk_fail_00036400;\n  (*(code *)PTR___stack_chk_fail_00036400)();\n  iVar3 = (**(code **)(puVar7 + 0x1618c))();\n  if (-1 < iVar3) {\n    iVar3 = (**(code **)(puVar7 + 0x161d0))(stream);\n    if (iVar3 != 0) {\n      uVar6 = (**(code **)(puVar7 + 0x1618c))(stream);\n      lVar8 = (**(code **)(puVar7 + 0x161f4))(uVar6);\n      if (lVar8 == -1) goto LAB_000202ac;\n    }\n    iVar3 = rpl_fflush(stream);\n    if (iVar3 != 0) {\n      piVar4 = (int *)(**(code **)(puVar7 + 0x16190))();\n      iVar3 = *piVar4;\n      pcVar5 = (char *)(**(code **)(puVar7 + 0x16150))(stream);\n      if (iVar3 != 0) {\n        pcVar5 = (char *)0xffffffff;\n        *piVar4 = iVar3;\n      }\n      return pcVar5;\n    }\n  }\nLAB_000202ac:\n                    /* WARNING: Could not recover jumptable at 0x000202c0. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n  pcVar5 = (char *)(**(code **)(puVar7 + 0x16150))(stream);\n  return pcVar5;\n}" primitive_type (pointer_declarator "* xvasprintf(char *format,va_list args)" * (function_declarator "xvasprintf(char *format,va_list args)" identifier (parameter_list "(char *format,va_list args)" ( (parameter_declaration "char *format" primitive_type (pointer_declarator "*format" * identifier)) , (parameter_declaration "va_list args" type_identifier identifier) )))) (compound_statement "{\n  char *pcVar1;\n  char cVar2;\n  int iVar3;\n  int *piVar4;\n  char *pcVar5;\n  undefined4 uVar6;\n  size_t argcount;\n  FILE *stream;\n  undefined *puVar7;\n  longlong lVar8;\n  char *result;\n  FILE *local_c;\n  \n  puVar7 = PTR___stack_chk_guard_00036414;\n  local_c = *(FILE **)PTR___stack_chk_guard_00036414;\n  if (*format == '\0') {\n    argcount = 0;\nLAB_00020138:\n    result = xstrcat(argcount,args);\n  }\n  else {\n    if ((*format == '%') && (format[1] == 's')) {\n      argcount = 0;\n      pcVar5 = format;\n      do {\n        cVar2 = pcVar5[2];\n        argcount = argcount + 1;\n        if (cVar2 == '\0') goto LAB_00020138;\n      } while ((cVar2 == '%') && (pcVar1 = pcVar5 + 3, pcVar5 = pcVar5 + 2, *pcVar1 == 's'));\n    }\n    iVar3 = (*(code *)PTR___vasprintf_chk_0003636c)(&result,1,format);\n    if (iVar3 < 0) {\n      piVar4 = (int *)(*(code *)PTR___errno_location_00036360)();\n      result = (char *)0x0;\n      if (*piVar4 == 0xc) {\n                    /* WARNING: Subroutine does not return */\n        xalloc_die();\n      }\n    }\n  }\n  if (local_c == *(FILE **)puVar7) {\n    return result;\n  }\n  stream = local_c;\n  puVar7 = PTR___stack_chk_fail_00036400;\n  (*(code *)PTR___stack_chk_fail_00036400)();\n  iVar3 = (**(code **)(puVar7 + 0x1618c))();\n  if (-1 < iVar3) {\n    iVar3 = (**(code **)(puVar7 + 0x161d0))(stream);\n    if (iVar3 != 0) {\n      uVar6 = (**(code **)(puVar7 + 0x1618c))(stream);\n      lVar8 = (**(code **)(puVar7 + 0x161f4))(uVar6);\n      if (lVar8 == -1) goto LAB_000202ac;\n    }\n    iVar3 = rpl_fflush(stream);\n    if (iVar3 != 0) {\n      piVar4 = (int *)(**(code **)(puVar7 + 0x16190))();\n      iVar3 = *piVar4;\n      pcVar5 = (char *)(**(code **)(puVar7 + 0x16150))(stream);\n      if (iVar3 != 0) {\n        pcVar5 = (char *)0xffffffff;\n        *piVar4 = iVar3;\n      }\n      return pcVar5;\n    }\n  }\nLAB_000202ac:\n                    /* WARNING: Could not recover jumptable at 0x000202c0. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n  pcVar5 = (char *)(**(code **)(puVar7 + 0x16150))(stream);\n  return pcVar5;\n}" { (declaration "char *pcVar1;" primitive_type (pointer_declarator "*pcVar1" * identifier) ;) (declaration "char cVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int *piVar4;" primitive_type (pointer_declarator "*piVar4" * identifier) ;) (declaration "char *pcVar5;" primitive_type (pointer_declarator "*pcVar5" * identifier) ;) (declaration "undefined4 uVar6;" type_identifier identifier ;) (declaration "size_t argcount;" primitive_type identifier ;) (declaration "FILE *stream;" type_identifier (pointer_declarator "*stream" * identifier) ;) (declaration "undefined *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "longlong lVar8;" type_identifier identifier ;) (declaration "char *result;" primitive_type (pointer_declarator "*result" * identifier) ;) (declaration "FILE *local_c;" type_identifier (pointer_declarator "*local_c" * identifier) ;) (expression_statement "puVar7 = PTR___stack_chk_guard_00036414;" (assignment_expression "puVar7 = PTR___stack_chk_guard_00036414" identifier = identifier) ;) (expression_statement "local_c = *(FILE **)PTR___stack_chk_guard_00036414;" (assignment_expression "local_c = *(FILE **)PTR___stack_chk_guard_00036414" identifier = (pointer_expression "*(FILE **)PTR___stack_chk_guard_00036414" * (cast_expression "(FILE **)PTR___stack_chk_guard_00036414" ( (type_descriptor "FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (if_statement "if (*format == '\0') {\n    argcount = 0;\nLAB_00020138:\n    result = xstrcat(argcount,args);\n  }\n  else {\n    if ((*format == '%') && (format[1] == 's')) {\n      argcount = 0;\n      pcVar5 = format;\n      do {\n        cVar2 = pcVar5[2];\n        argcount = argcount + 1;\n        if (cVar2 == '\0') goto LAB_00020138;\n      } while ((cVar2 == '%') && (pcVar1 = pcVar5 + 3, pcVar5 = pcVar5 + 2, *pcVar1 == 's'));\n    }\n    iVar3 = (*(code *)PTR___vasprintf_chk_0003636c)(&result,1,format);\n    if (iVar3 < 0) {\n      piVar4 = (int *)(*(code *)PTR___errno_location_00036360)();\n      result = (char *)0x0;\n      if (*piVar4 == 0xc) {\n                    /* WARNING: Subroutine does not return */\n        xalloc_die();\n      }\n    }\n  }" if (parenthesized_expression "(*format == '\0')" ( (binary_expression "*format == '\0'" (pointer_expression "*format" * identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    argcount = 0;\nLAB_00020138:\n    result = xstrcat(argcount,args);\n  }" { (expression_statement "argcount = 0;" (assignment_expression "argcount = 0" identifier = number_literal) ;) (labeled_statement "LAB_00020138:\n    result = xstrcat(argcount,args);" statement_identifier : (expression_statement "result = xstrcat(argcount,args);" (assignment_expression "result = xstrcat(argcount,args)" identifier = (call_expression "xstrcat(argcount,args)" identifier (argument_list "(argcount,args)" ( identifier , identifier )))) ;)) }) (else_clause "else {\n    if ((*format == '%') && (format[1] == 's')) {\n      argcount = 0;\n      pcVar5 = format;\n      do {\n        cVar2 = pcVar5[2];\n        argcount = argcount + 1;\n        if (cVar2 == '\0') goto LAB_00020138;\n      } while ((cVar2 == '%') && (pcVar1 = pcVar5 + 3, pcVar5 = pcVar5 + 2, *pcVar1 == 's'));\n    }\n    iVar3 = (*(code *)PTR___vasprintf_chk_0003636c)(&result,1,format);\n    if (iVar3 < 0) {\n      piVar4 = (int *)(*(code *)PTR___errno_location_00036360)();\n      result = (char *)0x0;\n      if (*piVar4 == 0xc) {\n                    /* WARNING: Subroutine does not return */\n        xalloc_die();\n      }\n    }\n  }" else (compound_statement "{\n    if ((*format == '%') && (format[1] == 's')) {\n      argcount = 0;\n      pcVar5 = format;\n      do {\n        cVar2 = pcVar5[2];\n        argcount = argcount + 1;\n        if (cVar2 == '\0') goto LAB_00020138;\n      } while ((cVar2 == '%') && (pcVar1 = pcVar5 + 3, pcVar5 = pcVar5 + 2, *pcVar1 == 's'));\n    }\n    iVar3 = (*(code *)PTR___vasprintf_chk_0003636c)(&result,1,format);\n    if (iVar3 < 0) {\n      piVar4 = (int *)(*(code *)PTR___errno_location_00036360)();\n      result = (char *)0x0;\n      if (*piVar4 == 0xc) {\n                    /* WARNING: Subroutine does not return */\n        xalloc_die();\n      }\n    }\n  }" { (if_statement "if ((*format == '%') && (format[1] == 's')) {\n      argcount = 0;\n      pcVar5 = format;\n      do {\n        cVar2 = pcVar5[2];\n        argcount = argcount + 1;\n        if (cVar2 == '\0') goto LAB_00020138;\n      } while ((cVar2 == '%') && (pcVar1 = pcVar5 + 3, pcVar5 = pcVar5 + 2, *pcVar1 == 's'));\n    }" if (parenthesized_expression "((*format == '%') && (format[1] == 's'))" ( (binary_expression "(*format == '%') && (format[1] == 's')" (parenthesized_expression "(*format == '%')" ( (binary_expression "*format == '%'" (pointer_expression "*format" * identifier) == (char_literal "'%'" ' character ')) )) && (parenthesized_expression "(format[1] == 's')" ( (binary_expression "format[1] == 's'" (subscript_expression "format[1]" identifier [ number_literal ]) == (char_literal "'s'" ' character ')) ))) )) (compound_statement "{\n      argcount = 0;\n      pcVar5 = format;\n      do {\n        cVar2 = pcVar5[2];\n        argcount = argcount + 1;\n        if (cVar2 == '\0') goto LAB_00020138;\n      } while ((cVar2 == '%') && (pcVar1 = pcVar5 + 3, pcVar5 = pcVar5 + 2, *pcVar1 == 's'));\n    }" { (expression_statement "argcount = 0;" (assignment_expression "argcount = 0" identifier = number_literal) ;) (expression_statement "pcVar5 = format;" (assignment_expression "pcVar5 = format" identifier = identifier) ;) (do_statement "do {\n        cVar2 = pcVar5[2];\n        argcount = argcount + 1;\n        if (cVar2 == '\0') goto LAB_00020138;\n      } while ((cVar2 == '%') && (pcVar1 = pcVar5 + 3, pcVar5 = pcVar5 + 2, *pcVar1 == 's'));" do (compound_statement "{\n        cVar2 = pcVar5[2];\n        argcount = argcount + 1;\n        if (cVar2 == '\0') goto LAB_00020138;\n      }" { (expression_statement "cVar2 = pcVar5[2];" (assignment_expression "cVar2 = pcVar5[2]" identifier = (subscript_expression "pcVar5[2]" identifier [ number_literal ])) ;) (expression_statement "argcount = argcount + 1;" (assignment_expression "argcount = argcount + 1" identifier = (binary_expression "argcount + 1" identifier + number_literal)) ;) (if_statement "if (cVar2 == '\0') goto LAB_00020138;" if (parenthesized_expression "(cVar2 == '\0')" ( (binary_expression "cVar2 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_00020138;" goto statement_identifier ;)) }) while (parenthesized_expression "((cVar2 == '%') && (pcVar1 = pcVar5 + 3, pcVar5 = pcVar5 + 2, *pcVar1 == 's'))" ( (binary_expression "(cVar2 == '%') && (pcVar1 = pcVar5 + 3, pcVar5 = pcVar5 + 2, *pcVar1 == 's')" (parenthesized_expression "(cVar2 == '%')" ( (binary_expression "cVar2 == '%'" identifier == (char_literal "'%'" ' character ')) )) && (parenthesized_expression "(pcVar1 = pcVar5 + 3, pcVar5 = pcVar5 + 2, *pcVar1 == 's')" ( (comma_expression "pcVar1 = pcVar5 + 3, pcVar5 = pcVar5 + 2, *pcVar1 == 's'" (assignment_expression "pcVar1 = pcVar5 + 3" identifier = (binary_expression "pcVar5 + 3" identifier + number_literal)) , (comma_expression "pcVar5 = pcVar5 + 2, *pcVar1 == 's'" (assignment_expression "pcVar5 = pcVar5 + 2" identifier = (binary_expression "pcVar5 + 2" identifier + number_literal)) , (binary_expression "*pcVar1 == 's'" (pointer_expression "*pcVar1" * identifier) == (char_literal "'s'" ' character ')))) ))) )) ;) })) (expression_statement "iVar3 = (*(code *)PTR___vasprintf_chk_0003636c)(&result,1,format);" (assignment_expression "iVar3 = (*(code *)PTR___vasprintf_chk_0003636c)(&result,1,format)" identifier = (call_expression "(*(code *)PTR___vasprintf_chk_0003636c)(&result,1,format)" (parenthesized_expression "(*(code *)PTR___vasprintf_chk_0003636c)" ( (pointer_expression "*(code *)PTR___vasprintf_chk_0003636c" * (cast_expression "(code *)PTR___vasprintf_chk_0003636c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&result,1,format)" ( (pointer_expression "&result" & identifier) , number_literal , identifier )))) ;) (if_statement "if (iVar3 < 0) {\n      piVar4 = (int *)(*(code *)PTR___errno_location_00036360)();\n      result = (char *)0x0;\n      if (*piVar4 == 0xc) {\n                    /* WARNING: Subroutine does not return */\n        xalloc_die();\n      }\n    }" if (parenthesized_expression "(iVar3 < 0)" ( (binary_expression "iVar3 < 0" identifier < number_literal) )) (compound_statement "{\n      piVar4 = (int *)(*(code *)PTR___errno_location_00036360)();\n      result = (char *)0x0;\n      if (*piVar4 == 0xc) {\n                    /* WARNING: Subroutine does not return */\n        xalloc_die();\n      }\n    }" { (expression_statement "piVar4 = (int *)(*(code *)PTR___errno_location_00036360)();" (assignment_expression "piVar4 = (int *)(*(code *)PTR___errno_location_00036360)()" identifier = (cast_expression "(int *)(*(code *)PTR___errno_location_00036360)()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_00036360)()" (parenthesized_expression "(*(code *)PTR___errno_location_00036360)" ( (pointer_expression "*(code *)PTR___errno_location_00036360" * (cast_expression "(code *)PTR___errno_location_00036360" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "result = (char *)0x0;" (assignment_expression "result = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (*piVar4 == 0xc) {\n                    /* WARNING: Subroutine does not return */\n        xalloc_die();\n      }" if (parenthesized_expression "(*piVar4 == 0xc)" ( (binary_expression "*piVar4 == 0xc" (pointer_expression "*piVar4" * identifier) == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n        xalloc_die();\n      }" { comment (expression_statement "xalloc_die();" (call_expression "xalloc_die()" identifier (argument_list "()" ( ))) ;) })) })) }))) (if_statement "if (local_c == *(FILE **)puVar7) {\n    return result;\n  }" if (parenthesized_expression "(local_c == *(FILE **)puVar7)" ( (binary_expression "local_c == *(FILE **)puVar7" identifier == (pointer_expression "*(FILE **)puVar7" * (cast_expression "(FILE **)puVar7" ( (type_descriptor "FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) )) (compound_statement "{\n    return result;\n  }" { (return_statement "return result;" return identifier ;) })) (expression_statement "stream = local_c;" (assignment_expression "stream = local_c" identifier = identifier) ;) (expression_statement "puVar7 = PTR___stack_chk_fail_00036400;" (assignment_expression "puVar7 = PTR___stack_chk_fail_00036400" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_00036400)();" (call_expression "(*(code *)PTR___stack_chk_fail_00036400)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_00036400)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_00036400" * (cast_expression "(code *)PTR___stack_chk_fail_00036400" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "iVar3 = (**(code **)(puVar7 + 0x1618c))();" (assignment_expression "iVar3 = (**(code **)(puVar7 + 0x1618c))()" identifier = (call_expression "(**(code **)(puVar7 + 0x1618c))()" (parenthesized_expression "(**(code **)(puVar7 + 0x1618c))" ( (pointer_expression "**(code **)(puVar7 + 0x1618c)" * (pointer_expression "*(code **)(puVar7 + 0x1618c)" * (cast_expression "(code **)(puVar7 + 0x1618c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar7 + 0x1618c)" ( (binary_expression "puVar7 + 0x1618c" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (if_statement "if (-1 < iVar3) {\n    iVar3 = (**(code **)(puVar7 + 0x161d0))(stream);\n    if (iVar3 != 0) {\n      uVar6 = (**(code **)(puVar7 + 0x1618c))(stream);\n      lVar8 = (**(code **)(puVar7 + 0x161f4))(uVar6);\n      if (lVar8 == -1) goto LAB_000202ac;\n    }\n    iVar3 = rpl_fflush(stream);\n    if (iVar3 != 0) {\n      piVar4 = (int *)(**(code **)(puVar7 + 0x16190))();\n      iVar3 = *piVar4;\n      pcVar5 = (char *)(**(code **)(puVar7 + 0x16150))(stream);\n      if (iVar3 != 0) {\n        pcVar5 = (char *)0xffffffff;\n        *piVar4 = iVar3;\n      }\n      return pcVar5;\n    }\n  }" if (parenthesized_expression "(-1 < iVar3)" ( (binary_expression "-1 < iVar3" number_literal < identifier) )) (compound_statement "{\n    iVar3 = (**(code **)(puVar7 + 0x161d0))(stream);\n    if (iVar3 != 0) {\n      uVar6 = (**(code **)(puVar7 + 0x1618c))(stream);\n      lVar8 = (**(code **)(puVar7 + 0x161f4))(uVar6);\n      if (lVar8 == -1) goto LAB_000202ac;\n    }\n    iVar3 = rpl_fflush(stream);\n    if (iVar3 != 0) {\n      piVar4 = (int *)(**(code **)(puVar7 + 0x16190))();\n      iVar3 = *piVar4;\n      pcVar5 = (char *)(**(code **)(puVar7 + 0x16150))(stream);\n      if (iVar3 != 0) {\n        pcVar5 = (char *)0xffffffff;\n        *piVar4 = iVar3;\n      }\n      return pcVar5;\n    }\n  }" { (expression_statement "iVar3 = (**(code **)(puVar7 + 0x161d0))(stream);" (assignment_expression "iVar3 = (**(code **)(puVar7 + 0x161d0))(stream)" identifier = (call_expression "(**(code **)(puVar7 + 0x161d0))(stream)" (parenthesized_expression "(**(code **)(puVar7 + 0x161d0))" ( (pointer_expression "**(code **)(puVar7 + 0x161d0)" * (pointer_expression "*(code **)(puVar7 + 0x161d0)" * (cast_expression "(code **)(puVar7 + 0x161d0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar7 + 0x161d0)" ( (binary_expression "puVar7 + 0x161d0" identifier + number_literal) ))))) )) (argument_list "(stream)" ( identifier )))) ;) (if_statement "if (iVar3 != 0) {\n      uVar6 = (**(code **)(puVar7 + 0x1618c))(stream);\n      lVar8 = (**(code **)(puVar7 + 0x161f4))(uVar6);\n      if (lVar8 == -1) goto LAB_000202ac;\n    }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n      uVar6 = (**(code **)(puVar7 + 0x1618c))(stream);\n      lVar8 = (**(code **)(puVar7 + 0x161f4))(uVar6);\n      if (lVar8 == -1) goto LAB_000202ac;\n    }" { (expression_statement "uVar6 = (**(code **)(puVar7 + 0x1618c))(stream);" (assignment_expression "uVar6 = (**(code **)(puVar7 + 0x1618c))(stream)" identifier = (call_expression "(**(code **)(puVar7 + 0x1618c))(stream)" (parenthesized_expression "(**(code **)(puVar7 + 0x1618c))" ( (pointer_expression "**(code **)(puVar7 + 0x1618c)" * (pointer_expression "*(code **)(puVar7 + 0x1618c)" * (cast_expression "(code **)(puVar7 + 0x1618c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar7 + 0x1618c)" ( (binary_expression "puVar7 + 0x1618c" identifier + number_literal) ))))) )) (argument_list "(stream)" ( identifier )))) ;) (expression_statement "lVar8 = (**(code **)(puVar7 + 0x161f4))(uVar6);" (assignment_expression "lVar8 = (**(code **)(puVar7 + 0x161f4))(uVar6)" identifier = (call_expression "(**(code **)(puVar7 + 0x161f4))(uVar6)" (parenthesized_expression "(**(code **)(puVar7 + 0x161f4))" ( (pointer_expression "**(code **)(puVar7 + 0x161f4)" * (pointer_expression "*(code **)(puVar7 + 0x161f4)" * (cast_expression "(code **)(puVar7 + 0x161f4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar7 + 0x161f4)" ( (binary_expression "puVar7 + 0x161f4" identifier + number_literal) ))))) )) (argument_list "(uVar6)" ( identifier )))) ;) (if_statement "if (lVar8 == -1) goto LAB_000202ac;" if (parenthesized_expression "(lVar8 == -1)" ( (binary_expression "lVar8 == -1" identifier == number_literal) )) (goto_statement "goto LAB_000202ac;" goto statement_identifier ;)) })) (expression_statement "iVar3 = rpl_fflush(stream);" (assignment_expression "iVar3 = rpl_fflush(stream)" identifier = (call_expression "rpl_fflush(stream)" identifier (argument_list "(stream)" ( identifier )))) ;) (if_statement "if (iVar3 != 0) {\n      piVar4 = (int *)(**(code **)(puVar7 + 0x16190))();\n      iVar3 = *piVar4;\n      pcVar5 = (char *)(**(code **)(puVar7 + 0x16150))(stream);\n      if (iVar3 != 0) {\n        pcVar5 = (char *)0xffffffff;\n        *piVar4 = iVar3;\n      }\n      return pcVar5;\n    }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n      piVar4 = (int *)(**(code **)(puVar7 + 0x16190))();\n      iVar3 = *piVar4;\n      pcVar5 = (char *)(**(code **)(puVar7 + 0x16150))(stream);\n      if (iVar3 != 0) {\n        pcVar5 = (char *)0xffffffff;\n        *piVar4 = iVar3;\n      }\n      return pcVar5;\n    }" { (expression_statement "piVar4 = (int *)(**(code **)(puVar7 + 0x16190))();" (assignment_expression "piVar4 = (int *)(**(code **)(puVar7 + 0x16190))()" identifier = (cast_expression "(int *)(**(code **)(puVar7 + 0x16190))()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar7 + 0x16190))()" (parenthesized_expression "(**(code **)(puVar7 + 0x16190))" ( (pointer_expression "**(code **)(puVar7 + 0x16190)" * (pointer_expression "*(code **)(puVar7 + 0x16190)" * (cast_expression "(code **)(puVar7 + 0x16190)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar7 + 0x16190)" ( (binary_expression "puVar7 + 0x16190" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "iVar3 = *piVar4;" (assignment_expression "iVar3 = *piVar4" identifier = (pointer_expression "*piVar4" * identifier)) ;) (expression_statement "pcVar5 = (char *)(**(code **)(puVar7 + 0x16150))(stream);" (assignment_expression "pcVar5 = (char *)(**(code **)(puVar7 + 0x16150))(stream)" identifier = (cast_expression "(char *)(**(code **)(puVar7 + 0x16150))(stream)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar7 + 0x16150))(stream)" (parenthesized_expression "(**(code **)(puVar7 + 0x16150))" ( (pointer_expression "**(code **)(puVar7 + 0x16150)" * (pointer_expression "*(code **)(puVar7 + 0x16150)" * (cast_expression "(code **)(puVar7 + 0x16150)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar7 + 0x16150)" ( (binary_expression "puVar7 + 0x16150" identifier + number_literal) ))))) )) (argument_list "(stream)" ( identifier ))))) ;) (if_statement "if (iVar3 != 0) {\n        pcVar5 = (char *)0xffffffff;\n        *piVar4 = iVar3;\n      }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n        pcVar5 = (char *)0xffffffff;\n        *piVar4 = iVar3;\n      }" { (expression_statement "pcVar5 = (char *)0xffffffff;" (assignment_expression "pcVar5 = (char *)0xffffffff" identifier = (cast_expression "(char *)0xffffffff" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "*piVar4 = iVar3;" (assignment_expression "*piVar4 = iVar3" (pointer_expression "*piVar4" * identifier) = identifier) ;) })) (return_statement "return pcVar5;" return identifier ;) })) })) (labeled_statement "LAB_000202ac:\n                    /* WARNING: Could not recover jumptable at 0x000202c0. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n  pcVar5 = (char *)(**(code **)(puVar7 + 0x16150))(stream);" statement_identifier : comment comment (expression_statement "pcVar5 = (char *)(**(code **)(puVar7 + 0x16150))(stream);" (assignment_expression "pcVar5 = (char *)(**(code **)(puVar7 + 0x16150))(stream)" identifier = (cast_expression "(char *)(**(code **)(puVar7 + 0x16150))(stream)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar7 + 0x16150))(stream)" (parenthesized_expression "(**(code **)(puVar7 + 0x16150))" ( (pointer_expression "**(code **)(puVar7 + 0x16150)" * (pointer_expression "*(code **)(puVar7 + 0x16150)" * (cast_expression "(code **)(puVar7 + 0x16150)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar7 + 0x16150)" ( (binary_expression "puVar7 + 0x16150" identifier + number_literal) ))))) )) (argument_list "(stream)" ( identifier ))))) ;)) (return_statement "return pcVar5;" return identifier ;) })))
(translation_unit "undefined4 xvasprintf(char *param_1,undefined4 param_2)\n\n{\n  char *pcVar1;\n  char cVar2;\n  char *pcVar3;\n  int iVar4;\n  int *piVar5;\n  undefined4 uVar6;\n  int iVar7;\n  undefined *puVar8;\n  longlong lVar9;\n  undefined4 local_10;\n  int local_c;\n  \n  puVar8 = PTR___stack_chk_guard_00036414;\n  local_c = *(int *)PTR___stack_chk_guard_00036414;\n  if (*param_1 == '\0') {\n    iVar7 = 0;\nLAB_00020138:\n    local_10 = FUN_0001ff60(iVar7,param_2);\n  }\n  else {\n    if ((*param_1 == '%') && (param_1[1] == 's')) {\n      iVar7 = 0;\n      pcVar3 = param_1;\n      do {\n        cVar2 = pcVar3[2];\n        iVar7 = iVar7 + 1;\n        if (cVar2 == '\0') goto LAB_00020138;\n      } while ((cVar2 == '%') && (pcVar1 = pcVar3 + 3, pcVar3 = pcVar3 + 2, *pcVar1 == 's'));\n    }\n    iVar7 = (*(code *)PTR___vasprintf_chk_0003636c)(&local_10,1,param_1);\n    if (iVar7 < 0) {\n      piVar5 = (int *)(*(code *)PTR___errno_location_00036360)();\n      local_10 = 0;\n      if (*piVar5 == 0xc) {\n                    \n        xalloc_die();\n      }\n    }\n  }\n  if (local_c == *(int *)puVar8) {\n    return local_10;\n  }\n  iVar7 = local_c;\n  puVar8 = PTR___stack_chk_fail_00036400;\n  (*(code *)PTR___stack_chk_fail_00036400)();\n  iVar4 = (**(code **)(puVar8 + 0x1618c))();\n  if (-1 < iVar4) {\n    iVar4 = (**(code **)(puVar8 + 0x161d0))(iVar7);\n    if (iVar4 != 0) {\n      uVar6 = (**(code **)(puVar8 + 0x1618c))(iVar7);\n      lVar9 = (**(code **)(puVar8 + 0x161f4))(uVar6);\n      if (lVar9 == -1) goto LAB_000202ac;\n    }\n    iVar4 = rpl_fflush(iVar7);\n    if (iVar4 != 0) {\n      piVar5 = (int *)(**(code **)(puVar8 + 0x16190))();\n      iVar4 = *piVar5;\n      uVar6 = (**(code **)(puVar8 + 0x16150))(iVar7);\n      if (iVar4 != 0) {\n        uVar6 = 0xffffffff;\n        *piVar5 = iVar4;\n      }\n      return uVar6;\n    }\n  }\nLAB_000202ac:\n                    \n                    \n  uVar6 = (**(code **)(puVar8 + 0x16150))(iVar7);\n  return uVar6;\n}\n\n" (function_definition "undefined4 xvasprintf(char *param_1,undefined4 param_2)\n\n{\n  char *pcVar1;\n  char cVar2;\n  char *pcVar3;\n  int iVar4;\n  int *piVar5;\n  undefined4 uVar6;\n  int iVar7;\n  undefined *puVar8;\n  longlong lVar9;\n  undefined4 local_10;\n  int local_c;\n  \n  puVar8 = PTR___stack_chk_guard_00036414;\n  local_c = *(int *)PTR___stack_chk_guard_00036414;\n  if (*param_1 == '\0') {\n    iVar7 = 0;\nLAB_00020138:\n    local_10 = FUN_0001ff60(iVar7,param_2);\n  }\n  else {\n    if ((*param_1 == '%') && (param_1[1] == 's')) {\n      iVar7 = 0;\n      pcVar3 = param_1;\n      do {\n        cVar2 = pcVar3[2];\n        iVar7 = iVar7 + 1;\n        if (cVar2 == '\0') goto LAB_00020138;\n      } while ((cVar2 == '%') && (pcVar1 = pcVar3 + 3, pcVar3 = pcVar3 + 2, *pcVar1 == 's'));\n    }\n    iVar7 = (*(code *)PTR___vasprintf_chk_0003636c)(&local_10,1,param_1);\n    if (iVar7 < 0) {\n      piVar5 = (int *)(*(code *)PTR___errno_location_00036360)();\n      local_10 = 0;\n      if (*piVar5 == 0xc) {\n                    \n        xalloc_die();\n      }\n    }\n  }\n  if (local_c == *(int *)puVar8) {\n    return local_10;\n  }\n  iVar7 = local_c;\n  puVar8 = PTR___stack_chk_fail_00036400;\n  (*(code *)PTR___stack_chk_fail_00036400)();\n  iVar4 = (**(code **)(puVar8 + 0x1618c))();\n  if (-1 < iVar4) {\n    iVar4 = (**(code **)(puVar8 + 0x161d0))(iVar7);\n    if (iVar4 != 0) {\n      uVar6 = (**(code **)(puVar8 + 0x1618c))(iVar7);\n      lVar9 = (**(code **)(puVar8 + 0x161f4))(uVar6);\n      if (lVar9 == -1) goto LAB_000202ac;\n    }\n    iVar4 = rpl_fflush(iVar7);\n    if (iVar4 != 0) {\n      piVar5 = (int *)(**(code **)(puVar8 + 0x16190))();\n      iVar4 = *piVar5;\n      uVar6 = (**(code **)(puVar8 + 0x16150))(iVar7);\n      if (iVar4 != 0) {\n        uVar6 = 0xffffffff;\n        *piVar5 = iVar4;\n      }\n      return uVar6;\n    }\n  }\nLAB_000202ac:\n                    \n                    \n  uVar6 = (**(code **)(puVar8 + 0x16150))(iVar7);\n  return uVar6;\n}" type_identifier (function_declarator "xvasprintf(char *param_1,undefined4 param_2)" identifier (parameter_list "(char *param_1,undefined4 param_2)" ( (parameter_declaration "char *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "undefined4 param_2" type_identifier identifier) ))) (compound_statement "{\n  char *pcVar1;\n  char cVar2;\n  char *pcVar3;\n  int iVar4;\n  int *piVar5;\n  undefined4 uVar6;\n  int iVar7;\n  undefined *puVar8;\n  longlong lVar9;\n  undefined4 local_10;\n  int local_c;\n  \n  puVar8 = PTR___stack_chk_guard_00036414;\n  local_c = *(int *)PTR___stack_chk_guard_00036414;\n  if (*param_1 == '\0') {\n    iVar7 = 0;\nLAB_00020138:\n    local_10 = FUN_0001ff60(iVar7,param_2);\n  }\n  else {\n    if ((*param_1 == '%') && (param_1[1] == 's')) {\n      iVar7 = 0;\n      pcVar3 = param_1;\n      do {\n        cVar2 = pcVar3[2];\n        iVar7 = iVar7 + 1;\n        if (cVar2 == '\0') goto LAB_00020138;\n      } while ((cVar2 == '%') && (pcVar1 = pcVar3 + 3, pcVar3 = pcVar3 + 2, *pcVar1 == 's'));\n    }\n    iVar7 = (*(code *)PTR___vasprintf_chk_0003636c)(&local_10,1,param_1);\n    if (iVar7 < 0) {\n      piVar5 = (int *)(*(code *)PTR___errno_location_00036360)();\n      local_10 = 0;\n      if (*piVar5 == 0xc) {\n                    \n        xalloc_die();\n      }\n    }\n  }\n  if (local_c == *(int *)puVar8) {\n    return local_10;\n  }\n  iVar7 = local_c;\n  puVar8 = PTR___stack_chk_fail_00036400;\n  (*(code *)PTR___stack_chk_fail_00036400)();\n  iVar4 = (**(code **)(puVar8 + 0x1618c))();\n  if (-1 < iVar4) {\n    iVar4 = (**(code **)(puVar8 + 0x161d0))(iVar7);\n    if (iVar4 != 0) {\n      uVar6 = (**(code **)(puVar8 + 0x1618c))(iVar7);\n      lVar9 = (**(code **)(puVar8 + 0x161f4))(uVar6);\n      if (lVar9 == -1) goto LAB_000202ac;\n    }\n    iVar4 = rpl_fflush(iVar7);\n    if (iVar4 != 0) {\n      piVar5 = (int *)(**(code **)(puVar8 + 0x16190))();\n      iVar4 = *piVar5;\n      uVar6 = (**(code **)(puVar8 + 0x16150))(iVar7);\n      if (iVar4 != 0) {\n        uVar6 = 0xffffffff;\n        *piVar5 = iVar4;\n      }\n      return uVar6;\n    }\n  }\nLAB_000202ac:\n                    \n                    \n  uVar6 = (**(code **)(puVar8 + 0x16150))(iVar7);\n  return uVar6;\n}" { (declaration "char *pcVar1;" primitive_type (pointer_declarator "*pcVar1" * identifier) ;) (declaration "char cVar2;" primitive_type identifier ;) (declaration "char *pcVar3;" primitive_type (pointer_declarator "*pcVar3" * identifier) ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "int *piVar5;" primitive_type (pointer_declarator "*piVar5" * identifier) ;) (declaration "undefined4 uVar6;" type_identifier identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "undefined *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "longlong lVar9;" type_identifier identifier ;) (declaration "undefined4 local_10;" type_identifier identifier ;) (declaration "int local_c;" primitive_type identifier ;) (expression_statement "puVar8 = PTR___stack_chk_guard_00036414;" (assignment_expression "puVar8 = PTR___stack_chk_guard_00036414" identifier = identifier) ;) (expression_statement "local_c = *(int *)PTR___stack_chk_guard_00036414;" (assignment_expression "local_c = *(int *)PTR___stack_chk_guard_00036414" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_00036414" * (cast_expression "(int *)PTR___stack_chk_guard_00036414" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if (*param_1 == '\0') {\n    iVar7 = 0;\nLAB_00020138:\n    local_10 = FUN_0001ff60(iVar7,param_2);\n  }\n  else {\n    if ((*param_1 == '%') && (param_1[1] == 's')) {\n      iVar7 = 0;\n      pcVar3 = param_1;\n      do {\n        cVar2 = pcVar3[2];\n        iVar7 = iVar7 + 1;\n        if (cVar2 == '\0') goto LAB_00020138;\n      } while ((cVar2 == '%') && (pcVar1 = pcVar3 + 3, pcVar3 = pcVar3 + 2, *pcVar1 == 's'));\n    }\n    iVar7 = (*(code *)PTR___vasprintf_chk_0003636c)(&local_10,1,param_1);\n    if (iVar7 < 0) {\n      piVar5 = (int *)(*(code *)PTR___errno_location_00036360)();\n      local_10 = 0;\n      if (*piVar5 == 0xc) {\n                    \n        xalloc_die();\n      }\n    }\n  }" if (parenthesized_expression "(*param_1 == '\0')" ( (binary_expression "*param_1 == '\0'" (pointer_expression "*param_1" * identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    iVar7 = 0;\nLAB_00020138:\n    local_10 = FUN_0001ff60(iVar7,param_2);\n  }" { (expression_statement "iVar7 = 0;" (assignment_expression "iVar7 = 0" identifier = number_literal) ;) (labeled_statement "LAB_00020138:\n    local_10 = FUN_0001ff60(iVar7,param_2);" statement_identifier : (expression_statement "local_10 = FUN_0001ff60(iVar7,param_2);" (assignment_expression "local_10 = FUN_0001ff60(iVar7,param_2)" identifier = (call_expression "FUN_0001ff60(iVar7,param_2)" identifier (argument_list "(iVar7,param_2)" ( identifier , identifier )))) ;)) }) (else_clause "else {\n    if ((*param_1 == '%') && (param_1[1] == 's')) {\n      iVar7 = 0;\n      pcVar3 = param_1;\n      do {\n        cVar2 = pcVar3[2];\n        iVar7 = iVar7 + 1;\n        if (cVar2 == '\0') goto LAB_00020138;\n      } while ((cVar2 == '%') && (pcVar1 = pcVar3 + 3, pcVar3 = pcVar3 + 2, *pcVar1 == 's'));\n    }\n    iVar7 = (*(code *)PTR___vasprintf_chk_0003636c)(&local_10,1,param_1);\n    if (iVar7 < 0) {\n      piVar5 = (int *)(*(code *)PTR___errno_location_00036360)();\n      local_10 = 0;\n      if (*piVar5 == 0xc) {\n                    \n        xalloc_die();\n      }\n    }\n  }" else (compound_statement "{\n    if ((*param_1 == '%') && (param_1[1] == 's')) {\n      iVar7 = 0;\n      pcVar3 = param_1;\n      do {\n        cVar2 = pcVar3[2];\n        iVar7 = iVar7 + 1;\n        if (cVar2 == '\0') goto LAB_00020138;\n      } while ((cVar2 == '%') && (pcVar1 = pcVar3 + 3, pcVar3 = pcVar3 + 2, *pcVar1 == 's'));\n    }\n    iVar7 = (*(code *)PTR___vasprintf_chk_0003636c)(&local_10,1,param_1);\n    if (iVar7 < 0) {\n      piVar5 = (int *)(*(code *)PTR___errno_location_00036360)();\n      local_10 = 0;\n      if (*piVar5 == 0xc) {\n                    \n        xalloc_die();\n      }\n    }\n  }" { (if_statement "if ((*param_1 == '%') && (param_1[1] == 's')) {\n      iVar7 = 0;\n      pcVar3 = param_1;\n      do {\n        cVar2 = pcVar3[2];\n        iVar7 = iVar7 + 1;\n        if (cVar2 == '\0') goto LAB_00020138;\n      } while ((cVar2 == '%') && (pcVar1 = pcVar3 + 3, pcVar3 = pcVar3 + 2, *pcVar1 == 's'));\n    }" if (parenthesized_expression "((*param_1 == '%') && (param_1[1] == 's'))" ( (binary_expression "(*param_1 == '%') && (param_1[1] == 's')" (parenthesized_expression "(*param_1 == '%')" ( (binary_expression "*param_1 == '%'" (pointer_expression "*param_1" * identifier) == (char_literal "'%'" ' character ')) )) && (parenthesized_expression "(param_1[1] == 's')" ( (binary_expression "param_1[1] == 's'" (subscript_expression "param_1[1]" identifier [ number_literal ]) == (char_literal "'s'" ' character ')) ))) )) (compound_statement "{\n      iVar7 = 0;\n      pcVar3 = param_1;\n      do {\n        cVar2 = pcVar3[2];\n        iVar7 = iVar7 + 1;\n        if (cVar2 == '\0') goto LAB_00020138;\n      } while ((cVar2 == '%') && (pcVar1 = pcVar3 + 3, pcVar3 = pcVar3 + 2, *pcVar1 == 's'));\n    }" { (expression_statement "iVar7 = 0;" (assignment_expression "iVar7 = 0" identifier = number_literal) ;) (expression_statement "pcVar3 = param_1;" (assignment_expression "pcVar3 = param_1" identifier = identifier) ;) (do_statement "do {\n        cVar2 = pcVar3[2];\n        iVar7 = iVar7 + 1;\n        if (cVar2 == '\0') goto LAB_00020138;\n      } while ((cVar2 == '%') && (pcVar1 = pcVar3 + 3, pcVar3 = pcVar3 + 2, *pcVar1 == 's'));" do (compound_statement "{\n        cVar2 = pcVar3[2];\n        iVar7 = iVar7 + 1;\n        if (cVar2 == '\0') goto LAB_00020138;\n      }" { (expression_statement "cVar2 = pcVar3[2];" (assignment_expression "cVar2 = pcVar3[2]" identifier = (subscript_expression "pcVar3[2]" identifier [ number_literal ])) ;) (expression_statement "iVar7 = iVar7 + 1;" (assignment_expression "iVar7 = iVar7 + 1" identifier = (binary_expression "iVar7 + 1" identifier + number_literal)) ;) (if_statement "if (cVar2 == '\0') goto LAB_00020138;" if (parenthesized_expression "(cVar2 == '\0')" ( (binary_expression "cVar2 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_00020138;" goto statement_identifier ;)) }) while (parenthesized_expression "((cVar2 == '%') && (pcVar1 = pcVar3 + 3, pcVar3 = pcVar3 + 2, *pcVar1 == 's'))" ( (binary_expression "(cVar2 == '%') && (pcVar1 = pcVar3 + 3, pcVar3 = pcVar3 + 2, *pcVar1 == 's')" (parenthesized_expression "(cVar2 == '%')" ( (binary_expression "cVar2 == '%'" identifier == (char_literal "'%'" ' character ')) )) && (parenthesized_expression "(pcVar1 = pcVar3 + 3, pcVar3 = pcVar3 + 2, *pcVar1 == 's')" ( (comma_expression "pcVar1 = pcVar3 + 3, pcVar3 = pcVar3 + 2, *pcVar1 == 's'" (assignment_expression "pcVar1 = pcVar3 + 3" identifier = (binary_expression "pcVar3 + 3" identifier + number_literal)) , (comma_expression "pcVar3 = pcVar3 + 2, *pcVar1 == 's'" (assignment_expression "pcVar3 = pcVar3 + 2" identifier = (binary_expression "pcVar3 + 2" identifier + number_literal)) , (binary_expression "*pcVar1 == 's'" (pointer_expression "*pcVar1" * identifier) == (char_literal "'s'" ' character ')))) ))) )) ;) })) (expression_statement "iVar7 = (*(code *)PTR___vasprintf_chk_0003636c)(&local_10,1,param_1);" (assignment_expression "iVar7 = (*(code *)PTR___vasprintf_chk_0003636c)(&local_10,1,param_1)" identifier = (call_expression "(*(code *)PTR___vasprintf_chk_0003636c)(&local_10,1,param_1)" (parenthesized_expression "(*(code *)PTR___vasprintf_chk_0003636c)" ( (pointer_expression "*(code *)PTR___vasprintf_chk_0003636c" * (cast_expression "(code *)PTR___vasprintf_chk_0003636c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&local_10,1,param_1)" ( (pointer_expression "&local_10" & identifier) , number_literal , identifier )))) ;) (if_statement "if (iVar7 < 0) {\n      piVar5 = (int *)(*(code *)PTR___errno_location_00036360)();\n      local_10 = 0;\n      if (*piVar5 == 0xc) {\n                    \n        xalloc_die();\n      }\n    }" if (parenthesized_expression "(iVar7 < 0)" ( (binary_expression "iVar7 < 0" identifier < number_literal) )) (compound_statement "{\n      piVar5 = (int *)(*(code *)PTR___errno_location_00036360)();\n      local_10 = 0;\n      if (*piVar5 == 0xc) {\n                    \n        xalloc_die();\n      }\n    }" { (expression_statement "piVar5 = (int *)(*(code *)PTR___errno_location_00036360)();" (assignment_expression "piVar5 = (int *)(*(code *)PTR___errno_location_00036360)()" identifier = (cast_expression "(int *)(*(code *)PTR___errno_location_00036360)()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_00036360)()" (parenthesized_expression "(*(code *)PTR___errno_location_00036360)" ( (pointer_expression "*(code *)PTR___errno_location_00036360" * (cast_expression "(code *)PTR___errno_location_00036360" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "local_10 = 0;" (assignment_expression "local_10 = 0" identifier = number_literal) ;) (if_statement "if (*piVar5 == 0xc) {\n                    \n        xalloc_die();\n      }" if (parenthesized_expression "(*piVar5 == 0xc)" ( (binary_expression "*piVar5 == 0xc" (pointer_expression "*piVar5" * identifier) == number_literal) )) (compound_statement "{\n                    \n        xalloc_die();\n      }" { (expression_statement "xalloc_die();" (call_expression "xalloc_die()" identifier (argument_list "()" ( ))) ;) })) })) }))) (if_statement "if (local_c == *(int *)puVar8) {\n    return local_10;\n  }" if (parenthesized_expression "(local_c == *(int *)puVar8)" ( (binary_expression "local_c == *(int *)puVar8" identifier == (pointer_expression "*(int *)puVar8" * (cast_expression "(int *)puVar8" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return local_10;\n  }" { (return_statement "return local_10;" return identifier ;) })) (expression_statement "iVar7 = local_c;" (assignment_expression "iVar7 = local_c" identifier = identifier) ;) (expression_statement "puVar8 = PTR___stack_chk_fail_00036400;" (assignment_expression "puVar8 = PTR___stack_chk_fail_00036400" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_00036400)();" (call_expression "(*(code *)PTR___stack_chk_fail_00036400)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_00036400)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_00036400" * (cast_expression "(code *)PTR___stack_chk_fail_00036400" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "iVar4 = (**(code **)(puVar8 + 0x1618c))();" (assignment_expression "iVar4 = (**(code **)(puVar8 + 0x1618c))()" identifier = (call_expression "(**(code **)(puVar8 + 0x1618c))()" (parenthesized_expression "(**(code **)(puVar8 + 0x1618c))" ( (pointer_expression "**(code **)(puVar8 + 0x1618c)" * (pointer_expression "*(code **)(puVar8 + 0x1618c)" * (cast_expression "(code **)(puVar8 + 0x1618c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar8 + 0x1618c)" ( (binary_expression "puVar8 + 0x1618c" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (if_statement "if (-1 < iVar4) {\n    iVar4 = (**(code **)(puVar8 + 0x161d0))(iVar7);\n    if (iVar4 != 0) {\n      uVar6 = (**(code **)(puVar8 + 0x1618c))(iVar7);\n      lVar9 = (**(code **)(puVar8 + 0x161f4))(uVar6);\n      if (lVar9 == -1) goto LAB_000202ac;\n    }\n    iVar4 = rpl_fflush(iVar7);\n    if (iVar4 != 0) {\n      piVar5 = (int *)(**(code **)(puVar8 + 0x16190))();\n      iVar4 = *piVar5;\n      uVar6 = (**(code **)(puVar8 + 0x16150))(iVar7);\n      if (iVar4 != 0) {\n        uVar6 = 0xffffffff;\n        *piVar5 = iVar4;\n      }\n      return uVar6;\n    }\n  }" if (parenthesized_expression "(-1 < iVar4)" ( (binary_expression "-1 < iVar4" number_literal < identifier) )) (compound_statement "{\n    iVar4 = (**(code **)(puVar8 + 0x161d0))(iVar7);\n    if (iVar4 != 0) {\n      uVar6 = (**(code **)(puVar8 + 0x1618c))(iVar7);\n      lVar9 = (**(code **)(puVar8 + 0x161f4))(uVar6);\n      if (lVar9 == -1) goto LAB_000202ac;\n    }\n    iVar4 = rpl_fflush(iVar7);\n    if (iVar4 != 0) {\n      piVar5 = (int *)(**(code **)(puVar8 + 0x16190))();\n      iVar4 = *piVar5;\n      uVar6 = (**(code **)(puVar8 + 0x16150))(iVar7);\n      if (iVar4 != 0) {\n        uVar6 = 0xffffffff;\n        *piVar5 = iVar4;\n      }\n      return uVar6;\n    }\n  }" { (expression_statement "iVar4 = (**(code **)(puVar8 + 0x161d0))(iVar7);" (assignment_expression "iVar4 = (**(code **)(puVar8 + 0x161d0))(iVar7)" identifier = (call_expression "(**(code **)(puVar8 + 0x161d0))(iVar7)" (parenthesized_expression "(**(code **)(puVar8 + 0x161d0))" ( (pointer_expression "**(code **)(puVar8 + 0x161d0)" * (pointer_expression "*(code **)(puVar8 + 0x161d0)" * (cast_expression "(code **)(puVar8 + 0x161d0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar8 + 0x161d0)" ( (binary_expression "puVar8 + 0x161d0" identifier + number_literal) ))))) )) (argument_list "(iVar7)" ( identifier )))) ;) (if_statement "if (iVar4 != 0) {\n      uVar6 = (**(code **)(puVar8 + 0x1618c))(iVar7);\n      lVar9 = (**(code **)(puVar8 + 0x161f4))(uVar6);\n      if (lVar9 == -1) goto LAB_000202ac;\n    }" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (compound_statement "{\n      uVar6 = (**(code **)(puVar8 + 0x1618c))(iVar7);\n      lVar9 = (**(code **)(puVar8 + 0x161f4))(uVar6);\n      if (lVar9 == -1) goto LAB_000202ac;\n    }" { (expression_statement "uVar6 = (**(code **)(puVar8 + 0x1618c))(iVar7);" (assignment_expression "uVar6 = (**(code **)(puVar8 + 0x1618c))(iVar7)" identifier = (call_expression "(**(code **)(puVar8 + 0x1618c))(iVar7)" (parenthesized_expression "(**(code **)(puVar8 + 0x1618c))" ( (pointer_expression "**(code **)(puVar8 + 0x1618c)" * (pointer_expression "*(code **)(puVar8 + 0x1618c)" * (cast_expression "(code **)(puVar8 + 0x1618c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar8 + 0x1618c)" ( (binary_expression "puVar8 + 0x1618c" identifier + number_literal) ))))) )) (argument_list "(iVar7)" ( identifier )))) ;) (expression_statement "lVar9 = (**(code **)(puVar8 + 0x161f4))(uVar6);" (assignment_expression "lVar9 = (**(code **)(puVar8 + 0x161f4))(uVar6)" identifier = (call_expression "(**(code **)(puVar8 + 0x161f4))(uVar6)" (parenthesized_expression "(**(code **)(puVar8 + 0x161f4))" ( (pointer_expression "**(code **)(puVar8 + 0x161f4)" * (pointer_expression "*(code **)(puVar8 + 0x161f4)" * (cast_expression "(code **)(puVar8 + 0x161f4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar8 + 0x161f4)" ( (binary_expression "puVar8 + 0x161f4" identifier + number_literal) ))))) )) (argument_list "(uVar6)" ( identifier )))) ;) (if_statement "if (lVar9 == -1) goto LAB_000202ac;" if (parenthesized_expression "(lVar9 == -1)" ( (binary_expression "lVar9 == -1" identifier == number_literal) )) (goto_statement "goto LAB_000202ac;" goto statement_identifier ;)) })) (expression_statement "iVar4 = rpl_fflush(iVar7);" (assignment_expression "iVar4 = rpl_fflush(iVar7)" identifier = (call_expression "rpl_fflush(iVar7)" identifier (argument_list "(iVar7)" ( identifier )))) ;) (if_statement "if (iVar4 != 0) {\n      piVar5 = (int *)(**(code **)(puVar8 + 0x16190))();\n      iVar4 = *piVar5;\n      uVar6 = (**(code **)(puVar8 + 0x16150))(iVar7);\n      if (iVar4 != 0) {\n        uVar6 = 0xffffffff;\n        *piVar5 = iVar4;\n      }\n      return uVar6;\n    }" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (compound_statement "{\n      piVar5 = (int *)(**(code **)(puVar8 + 0x16190))();\n      iVar4 = *piVar5;\n      uVar6 = (**(code **)(puVar8 + 0x16150))(iVar7);\n      if (iVar4 != 0) {\n        uVar6 = 0xffffffff;\n        *piVar5 = iVar4;\n      }\n      return uVar6;\n    }" { (expression_statement "piVar5 = (int *)(**(code **)(puVar8 + 0x16190))();" (assignment_expression "piVar5 = (int *)(**(code **)(puVar8 + 0x16190))()" identifier = (cast_expression "(int *)(**(code **)(puVar8 + 0x16190))()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar8 + 0x16190))()" (parenthesized_expression "(**(code **)(puVar8 + 0x16190))" ( (pointer_expression "**(code **)(puVar8 + 0x16190)" * (pointer_expression "*(code **)(puVar8 + 0x16190)" * (cast_expression "(code **)(puVar8 + 0x16190)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar8 + 0x16190)" ( (binary_expression "puVar8 + 0x16190" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "iVar4 = *piVar5;" (assignment_expression "iVar4 = *piVar5" identifier = (pointer_expression "*piVar5" * identifier)) ;) (expression_statement "uVar6 = (**(code **)(puVar8 + 0x16150))(iVar7);" (assignment_expression "uVar6 = (**(code **)(puVar8 + 0x16150))(iVar7)" identifier = (call_expression "(**(code **)(puVar8 + 0x16150))(iVar7)" (parenthesized_expression "(**(code **)(puVar8 + 0x16150))" ( (pointer_expression "**(code **)(puVar8 + 0x16150)" * (pointer_expression "*(code **)(puVar8 + 0x16150)" * (cast_expression "(code **)(puVar8 + 0x16150)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar8 + 0x16150)" ( (binary_expression "puVar8 + 0x16150" identifier + number_literal) ))))) )) (argument_list "(iVar7)" ( identifier )))) ;) (if_statement "if (iVar4 != 0) {\n        uVar6 = 0xffffffff;\n        *piVar5 = iVar4;\n      }" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (compound_statement "{\n        uVar6 = 0xffffffff;\n        *piVar5 = iVar4;\n      }" { (expression_statement "uVar6 = 0xffffffff;" (assignment_expression "uVar6 = 0xffffffff" identifier = number_literal) ;) (expression_statement "*piVar5 = iVar4;" (assignment_expression "*piVar5 = iVar4" (pointer_expression "*piVar5" * identifier) = identifier) ;) })) (return_statement "return uVar6;" return identifier ;) })) })) (labeled_statement "LAB_000202ac:\n                    \n                    \n  uVar6 = (**(code **)(puVar8 + 0x16150))(iVar7);" statement_identifier : (expression_statement "uVar6 = (**(code **)(puVar8 + 0x16150))(iVar7);" (assignment_expression "uVar6 = (**(code **)(puVar8 + 0x16150))(iVar7)" identifier = (call_expression "(**(code **)(puVar8 + 0x16150))(iVar7)" (parenthesized_expression "(**(code **)(puVar8 + 0x16150))" ( (pointer_expression "**(code **)(puVar8 + 0x16150)" * (pointer_expression "*(code **)(puVar8 + 0x16150)" * (cast_expression "(code **)(puVar8 + 0x16150)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar8 + 0x16150)" ( (binary_expression "puVar8 + 0x16150" identifier + number_literal) ))))) )) (argument_list "(iVar7)" ( identifier )))) ;)) (return_statement "return uVar6;" return identifier ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;)) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (char_literal ' character ')) )) && (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == (char_literal ' character ')) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) }) while (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (char_literal ' character ')) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (binary_expression IDENT + LIT)) , (comma_expression (assignment_expression IDENT = (binary_expression IDENT + LIT)) , (binary_expression (pointer_expression * IDENT) == (char_literal ' character ')))) ))) )) ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (pointer_expression & IDENT) , LIT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) })) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) )) (compound_statement { (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) })) (return_statement return IDENT ;) })) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT )))) ;)) (return_statement return IDENT ;) })))
(function_definition "undefined4 xvasprintf(char *param_1,undefined4 param_2)\n\n{\n  char *pcVar1;\n  char cVar2;\n  char *pcVar3;\n  int iVar4;\n  int *piVar5;\n  undefined4 uVar6;\n  int iVar7;\n  undefined *puVar8;\n  longlong lVar9;\n  undefined4 local_10;\n  int local_c;\n  \n  puVar8 = PTR___stack_chk_guard_00036414;\n  local_c = *(int *)PTR___stack_chk_guard_00036414;\n  if (*param_1 == '\0') {\n    iVar7 = 0;\nLAB_00020138:\n    local_10 = FUN_0001ff60(iVar7,param_2);\n  }\n  else {\n    if ((*param_1 == '%') && (param_1[1] == 's')) {\n      iVar7 = 0;\n      pcVar3 = param_1;\n      do {\n        cVar2 = pcVar3[2];\n        iVar7 = iVar7 + 1;\n        if (cVar2 == '\0') goto LAB_00020138;\n      } while ((cVar2 == '%') && (pcVar1 = pcVar3 + 3, pcVar3 = pcVar3 + 2, *pcVar1 == 's'));\n    }\n    iVar7 = (*(code *)PTR___vasprintf_chk_0003636c)(&local_10,1,param_1);\n    if (iVar7 < 0) {\n      piVar5 = (int *)(*(code *)PTR___errno_location_00036360)();\n      local_10 = 0;\n      if (*piVar5 == 0xc) {\n                    \n        xalloc_die();\n      }\n    }\n  }\n  if (local_c == *(int *)puVar8) {\n    return local_10;\n  }\n  iVar7 = local_c;\n  puVar8 = PTR___stack_chk_fail_00036400;\n  (*(code *)PTR___stack_chk_fail_00036400)();\n  iVar4 = (**(code **)(puVar8 + 0x1618c))();\n  if (-1 < iVar4) {\n    iVar4 = (**(code **)(puVar8 + 0x161d0))(iVar7);\n    if (iVar4 != 0) {\n      uVar6 = (**(code **)(puVar8 + 0x1618c))(iVar7);\n      lVar9 = (**(code **)(puVar8 + 0x161f4))(uVar6);\n      if (lVar9 == -1) goto LAB_000202ac;\n    }\n    iVar4 = rpl_fflush(iVar7);\n    if (iVar4 != 0) {\n      piVar5 = (int *)(**(code **)(puVar8 + 0x16190))();\n      iVar4 = *piVar5;\n      uVar6 = (**(code **)(puVar8 + 0x16150))(iVar7);\n      if (iVar4 != 0) {\n        uVar6 = 0xffffffff;\n        *piVar5 = iVar4;\n      }\n      return uVar6;\n    }\n  }\nLAB_000202ac:\n                    \n                    \n  uVar6 = (**(code **)(puVar8 + 0x16150))(iVar7);\n  return uVar6;\n}" (type_identifier "undefined4") (function_declarator "xvasprintf(char *param_1,undefined4 param_2)" (identifier "xvasprintf") (parameter_list "(char *param_1,undefined4 param_2)" (( "(") (parameter_declaration "char *param_1" (primitive_type "char") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "undefined4 param_2" (type_identifier "undefined4") (identifier "param_2")) () ")"))) (compound_statement "{\n  char *pcVar1;\n  char cVar2;\n  char *pcVar3;\n  int iVar4;\n  int *piVar5;\n  undefined4 uVar6;\n  int iVar7;\n  undefined *puVar8;\n  longlong lVar9;\n  undefined4 local_10;\n  int local_c;\n  \n  puVar8 = PTR___stack_chk_guard_00036414;\n  local_c = *(int *)PTR___stack_chk_guard_00036414;\n  if (*param_1 == '\0') {\n    iVar7 = 0;\nLAB_00020138:\n    local_10 = FUN_0001ff60(iVar7,param_2);\n  }\n  else {\n    if ((*param_1 == '%') && (param_1[1] == 's')) {\n      iVar7 = 0;\n      pcVar3 = param_1;\n      do {\n        cVar2 = pcVar3[2];\n        iVar7 = iVar7 + 1;\n        if (cVar2 == '\0') goto LAB_00020138;\n      } while ((cVar2 == '%') && (pcVar1 = pcVar3 + 3, pcVar3 = pcVar3 + 2, *pcVar1 == 's'));\n    }\n    iVar7 = (*(code *)PTR___vasprintf_chk_0003636c)(&local_10,1,param_1);\n    if (iVar7 < 0) {\n      piVar5 = (int *)(*(code *)PTR___errno_location_00036360)();\n      local_10 = 0;\n      if (*piVar5 == 0xc) {\n                    \n        xalloc_die();\n      }\n    }\n  }\n  if (local_c == *(int *)puVar8) {\n    return local_10;\n  }\n  iVar7 = local_c;\n  puVar8 = PTR___stack_chk_fail_00036400;\n  (*(code *)PTR___stack_chk_fail_00036400)();\n  iVar4 = (**(code **)(puVar8 + 0x1618c))();\n  if (-1 < iVar4) {\n    iVar4 = (**(code **)(puVar8 + 0x161d0))(iVar7);\n    if (iVar4 != 0) {\n      uVar6 = (**(code **)(puVar8 + 0x1618c))(iVar7);\n      lVar9 = (**(code **)(puVar8 + 0x161f4))(uVar6);\n      if (lVar9 == -1) goto LAB_000202ac;\n    }\n    iVar4 = rpl_fflush(iVar7);\n    if (iVar4 != 0) {\n      piVar5 = (int *)(**(code **)(puVar8 + 0x16190))();\n      iVar4 = *piVar5;\n      uVar6 = (**(code **)(puVar8 + 0x16150))(iVar7);\n      if (iVar4 != 0) {\n        uVar6 = 0xffffffff;\n        *piVar5 = iVar4;\n      }\n      return uVar6;\n    }\n  }\nLAB_000202ac:\n                    \n                    \n  uVar6 = (**(code **)(puVar8 + 0x16150))(iVar7);\n  return uVar6;\n}" ({ "{") (declaration "char *pcVar1;" (primitive_type "char") (pointer_declarator "*pcVar1" (* "*") (identifier "pcVar1")) (; ";")) (declaration "char cVar2;" (primitive_type "char") (identifier "cVar2") (; ";")) (declaration "char *pcVar3;" (primitive_type "char") (pointer_declarator "*pcVar3" (* "*") (identifier "pcVar3")) (; ";")) (declaration "int iVar4;" (primitive_type "int") (identifier "iVar4") (; ";")) (declaration "int *piVar5;" (primitive_type "int") (pointer_declarator "*piVar5" (* "*") (identifier "piVar5")) (; ";")) (declaration "undefined4 uVar6;" (type_identifier "undefined4") (identifier "uVar6") (; ";")) (declaration "int iVar7;" (primitive_type "int") (identifier "iVar7") (; ";")) (declaration "undefined *puVar8;" (type_identifier "undefined") (pointer_declarator "*puVar8" (* "*") (identifier "puVar8")) (; ";")) (declaration "longlong lVar9;" (type_identifier "longlong") (identifier "lVar9") (; ";")) (declaration "undefined4 local_10;" (type_identifier "undefined4") (identifier "local_10") (; ";")) (declaration "int local_c;" (primitive_type "int") (identifier "local_c") (; ";")) (expression_statement "puVar8 = PTR___stack_chk_guard_00036414;" (assignment_expression "puVar8 = PTR___stack_chk_guard_00036414" (identifier "puVar8") (= "=") (identifier "PTR___stack_chk_guard_00036414")) (; ";")) (expression_statement "local_c = *(int *)PTR___stack_chk_guard_00036414;" (assignment_expression "local_c = *(int *)PTR___stack_chk_guard_00036414" (identifier "local_c") (= "=") (pointer_expression "*(int *)PTR___stack_chk_guard_00036414" (* "*") (cast_expression "(int *)PTR___stack_chk_guard_00036414" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_guard_00036414")))) (; ";")) (if_statement "if (*param_1 == '\0') {\n    iVar7 = 0;\nLAB_00020138:\n    local_10 = FUN_0001ff60(iVar7,param_2);\n  }\n  else {\n    if ((*param_1 == '%') && (param_1[1] == 's')) {\n      iVar7 = 0;\n      pcVar3 = param_1;\n      do {\n        cVar2 = pcVar3[2];\n        iVar7 = iVar7 + 1;\n        if (cVar2 == '\0') goto LAB_00020138;\n      } while ((cVar2 == '%') && (pcVar1 = pcVar3 + 3, pcVar3 = pcVar3 + 2, *pcVar1 == 's'));\n    }\n    iVar7 = (*(code *)PTR___vasprintf_chk_0003636c)(&local_10,1,param_1);\n    if (iVar7 < 0) {\n      piVar5 = (int *)(*(code *)PTR___errno_location_00036360)();\n      local_10 = 0;\n      if (*piVar5 == 0xc) {\n                    \n        xalloc_die();\n      }\n    }\n  }" (if "if") (parenthesized_expression "(*param_1 == '\0')" (( "(") (binary_expression "*param_1 == '\0'" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n    iVar7 = 0;\nLAB_00020138:\n    local_10 = FUN_0001ff60(iVar7,param_2);\n  }" ({ "{") (expression_statement "iVar7 = 0;" (assignment_expression "iVar7 = 0" (identifier "iVar7") (= "=") (number_literal "0")) (; ";")) (labeled_statement "LAB_00020138:\n    local_10 = FUN_0001ff60(iVar7,param_2);" (statement_identifier "LAB_00020138") (: ":") (expression_statement "local_10 = FUN_0001ff60(iVar7,param_2);" (assignment_expression "local_10 = FUN_0001ff60(iVar7,param_2)" (identifier "local_10") (= "=") (call_expression "FUN_0001ff60(iVar7,param_2)" (identifier "FUN_0001ff60") (argument_list "(iVar7,param_2)" (( "(") (identifier "iVar7") (, ",") (identifier "param_2") () ")")))) (; ";"))) (} "}")) (else_clause "else {\n    if ((*param_1 == '%') && (param_1[1] == 's')) {\n      iVar7 = 0;\n      pcVar3 = param_1;\n      do {\n        cVar2 = pcVar3[2];\n        iVar7 = iVar7 + 1;\n        if (cVar2 == '\0') goto LAB_00020138;\n      } while ((cVar2 == '%') && (pcVar1 = pcVar3 + 3, pcVar3 = pcVar3 + 2, *pcVar1 == 's'));\n    }\n    iVar7 = (*(code *)PTR___vasprintf_chk_0003636c)(&local_10,1,param_1);\n    if (iVar7 < 0) {\n      piVar5 = (int *)(*(code *)PTR___errno_location_00036360)();\n      local_10 = 0;\n      if (*piVar5 == 0xc) {\n                    \n        xalloc_die();\n      }\n    }\n  }" (else "else") (compound_statement "{\n    if ((*param_1 == '%') && (param_1[1] == 's')) {\n      iVar7 = 0;\n      pcVar3 = param_1;\n      do {\n        cVar2 = pcVar3[2];\n        iVar7 = iVar7 + 1;\n        if (cVar2 == '\0') goto LAB_00020138;\n      } while ((cVar2 == '%') && (pcVar1 = pcVar3 + 3, pcVar3 = pcVar3 + 2, *pcVar1 == 's'));\n    }\n    iVar7 = (*(code *)PTR___vasprintf_chk_0003636c)(&local_10,1,param_1);\n    if (iVar7 < 0) {\n      piVar5 = (int *)(*(code *)PTR___errno_location_00036360)();\n      local_10 = 0;\n      if (*piVar5 == 0xc) {\n                    \n        xalloc_die();\n      }\n    }\n  }" ({ "{") (if_statement "if ((*param_1 == '%') && (param_1[1] == 's')) {\n      iVar7 = 0;\n      pcVar3 = param_1;\n      do {\n        cVar2 = pcVar3[2];\n        iVar7 = iVar7 + 1;\n        if (cVar2 == '\0') goto LAB_00020138;\n      } while ((cVar2 == '%') && (pcVar1 = pcVar3 + 3, pcVar3 = pcVar3 + 2, *pcVar1 == 's'));\n    }" (if "if") (parenthesized_expression "((*param_1 == '%') && (param_1[1] == 's'))" (( "(") (binary_expression "(*param_1 == '%') && (param_1[1] == 's')" (parenthesized_expression "(*param_1 == '%')" (( "(") (binary_expression "*param_1 == '%'" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (== "==") (char_literal "'%'" (' "'") (character "%") (' "'"))) () ")")) (&& "&&") (parenthesized_expression "(param_1[1] == 's')" (( "(") (binary_expression "param_1[1] == 's'" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (== "==") (char_literal "'s'" (' "'") (character "s") (' "'"))) () ")"))) () ")")) (compound_statement "{\n      iVar7 = 0;\n      pcVar3 = param_1;\n      do {\n        cVar2 = pcVar3[2];\n        iVar7 = iVar7 + 1;\n        if (cVar2 == '\0') goto LAB_00020138;\n      } while ((cVar2 == '%') && (pcVar1 = pcVar3 + 3, pcVar3 = pcVar3 + 2, *pcVar1 == 's'));\n    }" ({ "{") (expression_statement "iVar7 = 0;" (assignment_expression "iVar7 = 0" (identifier "iVar7") (= "=") (number_literal "0")) (; ";")) (expression_statement "pcVar3 = param_1;" (assignment_expression "pcVar3 = param_1" (identifier "pcVar3") (= "=") (identifier "param_1")) (; ";")) (do_statement "do {\n        cVar2 = pcVar3[2];\n        iVar7 = iVar7 + 1;\n        if (cVar2 == '\0') goto LAB_00020138;\n      } while ((cVar2 == '%') && (pcVar1 = pcVar3 + 3, pcVar3 = pcVar3 + 2, *pcVar1 == 's'));" (do "do") (compound_statement "{\n        cVar2 = pcVar3[2];\n        iVar7 = iVar7 + 1;\n        if (cVar2 == '\0') goto LAB_00020138;\n      }" ({ "{") (expression_statement "cVar2 = pcVar3[2];" (assignment_expression "cVar2 = pcVar3[2]" (identifier "cVar2") (= "=") (subscript_expression "pcVar3[2]" (identifier "pcVar3") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "iVar7 = iVar7 + 1;" (assignment_expression "iVar7 = iVar7 + 1" (identifier "iVar7") (= "=") (binary_expression "iVar7 + 1" (identifier "iVar7") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (cVar2 == '\0') goto LAB_00020138;" (if "if") (parenthesized_expression "(cVar2 == '\0')" (( "(") (binary_expression "cVar2 == '\0'" (identifier "cVar2") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto LAB_00020138;" (goto "goto") (statement_identifier "LAB_00020138") (; ";"))) (} "}")) (while "while") (parenthesized_expression "((cVar2 == '%') && (pcVar1 = pcVar3 + 3, pcVar3 = pcVar3 + 2, *pcVar1 == 's'))" (( "(") (binary_expression "(cVar2 == '%') && (pcVar1 = pcVar3 + 3, pcVar3 = pcVar3 + 2, *pcVar1 == 's')" (parenthesized_expression "(cVar2 == '%')" (( "(") (binary_expression "cVar2 == '%'" (identifier "cVar2") (== "==") (char_literal "'%'" (' "'") (character "%") (' "'"))) () ")")) (&& "&&") (parenthesized_expression "(pcVar1 = pcVar3 + 3, pcVar3 = pcVar3 + 2, *pcVar1 == 's')" (( "(") (comma_expression "pcVar1 = pcVar3 + 3, pcVar3 = pcVar3 + 2, *pcVar1 == 's'" (assignment_expression "pcVar1 = pcVar3 + 3" (identifier "pcVar1") (= "=") (binary_expression "pcVar3 + 3" (identifier "pcVar3") (+ "+") (number_literal "3"))) (, ",") (comma_expression "pcVar3 = pcVar3 + 2, *pcVar1 == 's'" (assignment_expression "pcVar3 = pcVar3 + 2" (identifier "pcVar3") (= "=") (binary_expression "pcVar3 + 2" (identifier "pcVar3") (+ "+") (number_literal "2"))) (, ",") (binary_expression "*pcVar1 == 's'" (pointer_expression "*pcVar1" (* "*") (identifier "pcVar1")) (== "==") (char_literal "'s'" (' "'") (character "s") (' "'"))))) () ")"))) () ")")) (; ";")) (} "}"))) (expression_statement "iVar7 = (*(code *)PTR___vasprintf_chk_0003636c)(&local_10,1,param_1);" (assignment_expression "iVar7 = (*(code *)PTR___vasprintf_chk_0003636c)(&local_10,1,param_1)" (identifier "iVar7") (= "=") (call_expression "(*(code *)PTR___vasprintf_chk_0003636c)(&local_10,1,param_1)" (parenthesized_expression "(*(code *)PTR___vasprintf_chk_0003636c)" (( "(") (pointer_expression "*(code *)PTR___vasprintf_chk_0003636c" (* "*") (cast_expression "(code *)PTR___vasprintf_chk_0003636c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___vasprintf_chk_0003636c"))) () ")")) (argument_list "(&local_10,1,param_1)" (( "(") (pointer_expression "&local_10" (& "&") (identifier "local_10")) (, ",") (number_literal "1") (, ",") (identifier "param_1") () ")")))) (; ";")) (if_statement "if (iVar7 < 0) {\n      piVar5 = (int *)(*(code *)PTR___errno_location_00036360)();\n      local_10 = 0;\n      if (*piVar5 == 0xc) {\n                    \n        xalloc_die();\n      }\n    }" (if "if") (parenthesized_expression "(iVar7 < 0)" (( "(") (binary_expression "iVar7 < 0" (identifier "iVar7") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n      piVar5 = (int *)(*(code *)PTR___errno_location_00036360)();\n      local_10 = 0;\n      if (*piVar5 == 0xc) {\n                    \n        xalloc_die();\n      }\n    }" ({ "{") (expression_statement "piVar5 = (int *)(*(code *)PTR___errno_location_00036360)();" (assignment_expression "piVar5 = (int *)(*(code *)PTR___errno_location_00036360)()" (identifier "piVar5") (= "=") (cast_expression "(int *)(*(code *)PTR___errno_location_00036360)()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR___errno_location_00036360)()" (parenthesized_expression "(*(code *)PTR___errno_location_00036360)" (( "(") (pointer_expression "*(code *)PTR___errno_location_00036360" (* "*") (cast_expression "(code *)PTR___errno_location_00036360" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___errno_location_00036360"))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "local_10 = 0;" (assignment_expression "local_10 = 0" (identifier "local_10") (= "=") (number_literal "0")) (; ";")) (if_statement "if (*piVar5 == 0xc) {\n                    \n        xalloc_die();\n      }" (if "if") (parenthesized_expression "(*piVar5 == 0xc)" (( "(") (binary_expression "*piVar5 == 0xc" (pointer_expression "*piVar5" (* "*") (identifier "piVar5")) (== "==") (number_literal "0xc")) () ")")) (compound_statement "{\n                    \n        xalloc_die();\n      }" ({ "{") (expression_statement "xalloc_die();" (call_expression "xalloc_die()" (identifier "xalloc_die") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (} "}"))) (} "}")))) (if_statement "if (local_c == *(int *)puVar8) {\n    return local_10;\n  }" (if "if") (parenthesized_expression "(local_c == *(int *)puVar8)" (( "(") (binary_expression "local_c == *(int *)puVar8" (identifier "local_c") (== "==") (pointer_expression "*(int *)puVar8" (* "*") (cast_expression "(int *)puVar8" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar8")))) () ")")) (compound_statement "{\n    return local_10;\n  }" ({ "{") (return_statement "return local_10;" (return "return") (identifier "local_10") (; ";")) (} "}"))) (expression_statement "iVar7 = local_c;" (assignment_expression "iVar7 = local_c" (identifier "iVar7") (= "=") (identifier "local_c")) (; ";")) (expression_statement "puVar8 = PTR___stack_chk_fail_00036400;" (assignment_expression "puVar8 = PTR___stack_chk_fail_00036400" (identifier "puVar8") (= "=") (identifier "PTR___stack_chk_fail_00036400")) (; ";")) (expression_statement "(*(code *)PTR___stack_chk_fail_00036400)();" (call_expression "(*(code *)PTR___stack_chk_fail_00036400)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_00036400)" (( "(") (pointer_expression "*(code *)PTR___stack_chk_fail_00036400" (* "*") (cast_expression "(code *)PTR___stack_chk_fail_00036400" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_fail_00036400"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar4 = (**(code **)(puVar8 + 0x1618c))();" (assignment_expression "iVar4 = (**(code **)(puVar8 + 0x1618c))()" (identifier "iVar4") (= "=") (call_expression "(**(code **)(puVar8 + 0x1618c))()" (parenthesized_expression "(**(code **)(puVar8 + 0x1618c))" (( "(") (pointer_expression "**(code **)(puVar8 + 0x1618c)" (* "*") (pointer_expression "*(code **)(puVar8 + 0x1618c)" (* "*") (cast_expression "(code **)(puVar8 + 0x1618c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar8 + 0x1618c)" (( "(") (binary_expression "puVar8 + 0x1618c" (identifier "puVar8") (+ "+") (number_literal "0x1618c")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (-1 < iVar4) {\n    iVar4 = (**(code **)(puVar8 + 0x161d0))(iVar7);\n    if (iVar4 != 0) {\n      uVar6 = (**(code **)(puVar8 + 0x1618c))(iVar7);\n      lVar9 = (**(code **)(puVar8 + 0x161f4))(uVar6);\n      if (lVar9 == -1) goto LAB_000202ac;\n    }\n    iVar4 = rpl_fflush(iVar7);\n    if (iVar4 != 0) {\n      piVar5 = (int *)(**(code **)(puVar8 + 0x16190))();\n      iVar4 = *piVar5;\n      uVar6 = (**(code **)(puVar8 + 0x16150))(iVar7);\n      if (iVar4 != 0) {\n        uVar6 = 0xffffffff;\n        *piVar5 = iVar4;\n      }\n      return uVar6;\n    }\n  }" (if "if") (parenthesized_expression "(-1 < iVar4)" (( "(") (binary_expression "-1 < iVar4" (number_literal "-1") (< "<") (identifier "iVar4")) () ")")) (compound_statement "{\n    iVar4 = (**(code **)(puVar8 + 0x161d0))(iVar7);\n    if (iVar4 != 0) {\n      uVar6 = (**(code **)(puVar8 + 0x1618c))(iVar7);\n      lVar9 = (**(code **)(puVar8 + 0x161f4))(uVar6);\n      if (lVar9 == -1) goto LAB_000202ac;\n    }\n    iVar4 = rpl_fflush(iVar7);\n    if (iVar4 != 0) {\n      piVar5 = (int *)(**(code **)(puVar8 + 0x16190))();\n      iVar4 = *piVar5;\n      uVar6 = (**(code **)(puVar8 + 0x16150))(iVar7);\n      if (iVar4 != 0) {\n        uVar6 = 0xffffffff;\n        *piVar5 = iVar4;\n      }\n      return uVar6;\n    }\n  }" ({ "{") (expression_statement "iVar4 = (**(code **)(puVar8 + 0x161d0))(iVar7);" (assignment_expression "iVar4 = (**(code **)(puVar8 + 0x161d0))(iVar7)" (identifier "iVar4") (= "=") (call_expression "(**(code **)(puVar8 + 0x161d0))(iVar7)" (parenthesized_expression "(**(code **)(puVar8 + 0x161d0))" (( "(") (pointer_expression "**(code **)(puVar8 + 0x161d0)" (* "*") (pointer_expression "*(code **)(puVar8 + 0x161d0)" (* "*") (cast_expression "(code **)(puVar8 + 0x161d0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar8 + 0x161d0)" (( "(") (binary_expression "puVar8 + 0x161d0" (identifier "puVar8") (+ "+") (number_literal "0x161d0")) () ")"))))) () ")")) (argument_list "(iVar7)" (( "(") (identifier "iVar7") () ")")))) (; ";")) (if_statement "if (iVar4 != 0) {\n      uVar6 = (**(code **)(puVar8 + 0x1618c))(iVar7);\n      lVar9 = (**(code **)(puVar8 + 0x161f4))(uVar6);\n      if (lVar9 == -1) goto LAB_000202ac;\n    }" (if "if") (parenthesized_expression "(iVar4 != 0)" (( "(") (binary_expression "iVar4 != 0" (identifier "iVar4") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      uVar6 = (**(code **)(puVar8 + 0x1618c))(iVar7);\n      lVar9 = (**(code **)(puVar8 + 0x161f4))(uVar6);\n      if (lVar9 == -1) goto LAB_000202ac;\n    }" ({ "{") (expression_statement "uVar6 = (**(code **)(puVar8 + 0x1618c))(iVar7);" (assignment_expression "uVar6 = (**(code **)(puVar8 + 0x1618c))(iVar7)" (identifier "uVar6") (= "=") (call_expression "(**(code **)(puVar8 + 0x1618c))(iVar7)" (parenthesized_expression "(**(code **)(puVar8 + 0x1618c))" (( "(") (pointer_expression "**(code **)(puVar8 + 0x1618c)" (* "*") (pointer_expression "*(code **)(puVar8 + 0x1618c)" (* "*") (cast_expression "(code **)(puVar8 + 0x1618c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar8 + 0x1618c)" (( "(") (binary_expression "puVar8 + 0x1618c" (identifier "puVar8") (+ "+") (number_literal "0x1618c")) () ")"))))) () ")")) (argument_list "(iVar7)" (( "(") (identifier "iVar7") () ")")))) (; ";")) (expression_statement "lVar9 = (**(code **)(puVar8 + 0x161f4))(uVar6);" (assignment_expression "lVar9 = (**(code **)(puVar8 + 0x161f4))(uVar6)" (identifier "lVar9") (= "=") (call_expression "(**(code **)(puVar8 + 0x161f4))(uVar6)" (parenthesized_expression "(**(code **)(puVar8 + 0x161f4))" (( "(") (pointer_expression "**(code **)(puVar8 + 0x161f4)" (* "*") (pointer_expression "*(code **)(puVar8 + 0x161f4)" (* "*") (cast_expression "(code **)(puVar8 + 0x161f4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar8 + 0x161f4)" (( "(") (binary_expression "puVar8 + 0x161f4" (identifier "puVar8") (+ "+") (number_literal "0x161f4")) () ")"))))) () ")")) (argument_list "(uVar6)" (( "(") (identifier "uVar6") () ")")))) (; ";")) (if_statement "if (lVar9 == -1) goto LAB_000202ac;" (if "if") (parenthesized_expression "(lVar9 == -1)" (( "(") (binary_expression "lVar9 == -1" (identifier "lVar9") (== "==") (number_literal "-1")) () ")")) (goto_statement "goto LAB_000202ac;" (goto "goto") (statement_identifier "LAB_000202ac") (; ";"))) (} "}"))) (expression_statement "iVar4 = rpl_fflush(iVar7);" (assignment_expression "iVar4 = rpl_fflush(iVar7)" (identifier "iVar4") (= "=") (call_expression "rpl_fflush(iVar7)" (identifier "rpl_fflush") (argument_list "(iVar7)" (( "(") (identifier "iVar7") () ")")))) (; ";")) (if_statement "if (iVar4 != 0) {\n      piVar5 = (int *)(**(code **)(puVar8 + 0x16190))();\n      iVar4 = *piVar5;\n      uVar6 = (**(code **)(puVar8 + 0x16150))(iVar7);\n      if (iVar4 != 0) {\n        uVar6 = 0xffffffff;\n        *piVar5 = iVar4;\n      }\n      return uVar6;\n    }" (if "if") (parenthesized_expression "(iVar4 != 0)" (( "(") (binary_expression "iVar4 != 0" (identifier "iVar4") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      piVar5 = (int *)(**(code **)(puVar8 + 0x16190))();\n      iVar4 = *piVar5;\n      uVar6 = (**(code **)(puVar8 + 0x16150))(iVar7);\n      if (iVar4 != 0) {\n        uVar6 = 0xffffffff;\n        *piVar5 = iVar4;\n      }\n      return uVar6;\n    }" ({ "{") (expression_statement "piVar5 = (int *)(**(code **)(puVar8 + 0x16190))();" (assignment_expression "piVar5 = (int *)(**(code **)(puVar8 + 0x16190))()" (identifier "piVar5") (= "=") (cast_expression "(int *)(**(code **)(puVar8 + 0x16190))()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(puVar8 + 0x16190))()" (parenthesized_expression "(**(code **)(puVar8 + 0x16190))" (( "(") (pointer_expression "**(code **)(puVar8 + 0x16190)" (* "*") (pointer_expression "*(code **)(puVar8 + 0x16190)" (* "*") (cast_expression "(code **)(puVar8 + 0x16190)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar8 + 0x16190)" (( "(") (binary_expression "puVar8 + 0x16190" (identifier "puVar8") (+ "+") (number_literal "0x16190")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "iVar4 = *piVar5;" (assignment_expression "iVar4 = *piVar5" (identifier "iVar4") (= "=") (pointer_expression "*piVar5" (* "*") (identifier "piVar5"))) (; ";")) (expression_statement "uVar6 = (**(code **)(puVar8 + 0x16150))(iVar7);" (assignment_expression "uVar6 = (**(code **)(puVar8 + 0x16150))(iVar7)" (identifier "uVar6") (= "=") (call_expression "(**(code **)(puVar8 + 0x16150))(iVar7)" (parenthesized_expression "(**(code **)(puVar8 + 0x16150))" (( "(") (pointer_expression "**(code **)(puVar8 + 0x16150)" (* "*") (pointer_expression "*(code **)(puVar8 + 0x16150)" (* "*") (cast_expression "(code **)(puVar8 + 0x16150)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar8 + 0x16150)" (( "(") (binary_expression "puVar8 + 0x16150" (identifier "puVar8") (+ "+") (number_literal "0x16150")) () ")"))))) () ")")) (argument_list "(iVar7)" (( "(") (identifier "iVar7") () ")")))) (; ";")) (if_statement "if (iVar4 != 0) {\n        uVar6 = 0xffffffff;\n        *piVar5 = iVar4;\n      }" (if "if") (parenthesized_expression "(iVar4 != 0)" (( "(") (binary_expression "iVar4 != 0" (identifier "iVar4") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        uVar6 = 0xffffffff;\n        *piVar5 = iVar4;\n      }" ({ "{") (expression_statement "uVar6 = 0xffffffff;" (assignment_expression "uVar6 = 0xffffffff" (identifier "uVar6") (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "*piVar5 = iVar4;" (assignment_expression "*piVar5 = iVar4" (pointer_expression "*piVar5" (* "*") (identifier "piVar5")) (= "=") (identifier "iVar4")) (; ";")) (} "}"))) (return_statement "return uVar6;" (return "return") (identifier "uVar6") (; ";")) (} "}"))) (} "}"))) (labeled_statement "LAB_000202ac:\n                    \n                    \n  uVar6 = (**(code **)(puVar8 + 0x16150))(iVar7);" (statement_identifier "LAB_000202ac") (: ":") (expression_statement "uVar6 = (**(code **)(puVar8 + 0x16150))(iVar7);" (assignment_expression "uVar6 = (**(code **)(puVar8 + 0x16150))(iVar7)" (identifier "uVar6") (= "=") (call_expression "(**(code **)(puVar8 + 0x16150))(iVar7)" (parenthesized_expression "(**(code **)(puVar8 + 0x16150))" (( "(") (pointer_expression "**(code **)(puVar8 + 0x16150)" (* "*") (pointer_expression "*(code **)(puVar8 + 0x16150)" (* "*") (cast_expression "(code **)(puVar8 + 0x16150)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar8 + 0x16150)" (( "(") (binary_expression "puVar8 + 0x16150" (identifier "puVar8") (+ "+") (number_literal "0x16150")) () ")"))))) () ")")) (argument_list "(iVar7)" (( "(") (identifier "iVar7") () ")")))) (; ";"))) (return_statement "return uVar6;" (return "return") (identifier "uVar6") (; ";")) (} "}")))

char * function_1(char *format,type_1 args)

{
  char *pcVar1;
  char var_3;
  int var_5;
  int *piVar4;
  char *var_4;
  type_2 uVar6;
  size_t var_2;
  type_3 *stream;
  type_4 *var_8;
  type_5 var_9;
  char *result;
  type_3 *var_7;
  
  var_8 = PTR___stack_chk_guard_00036414;
  var_7 = *(type_3 **)PTR___stack_chk_guard_00036414;
  if (*format == '\0') {
    var_2 = 0;
LAB_00020138:
    result = var_1(var_2,args);
  }
  else {
    if ((*format == '%') && (format[1] == 's')) {
      var_2 = 0;
      var_4 = format;
      do {
        var_3 = var_4[2];
        var_2 = var_2 + 1;
        if (var_3 == '\0') goto LAB_00020138;
      } while ((var_3 == '%') && (pcVar1 = var_4 + 3, var_4 = var_4 + 2, *pcVar1 == 's'));
    }
    var_5 = (*(type_6 *)PTR___vasprintf_chk_0003636c)(&result,1,format);
    if (var_5 < 0) {
      piVar4 = (int *)(*(type_6 *)PTR___errno_location_00036360)();
      result = (char *)0x0;
      if (*piVar4 == 0xc) {
                    /* WARNING: Subroutine does not return */
        var_6();
      }
    }
  }
  if (var_7 == *(type_3 **)var_8) {
    return result;
  }
  stream = var_7;
  var_8 = PTR___stack_chk_fail_00036400;
  (*(type_6 *)PTR___stack_chk_fail_00036400)();
  var_5 = (**(type_6 **)(var_8 + 0x1618c))();
  if (-1 < var_5) {
    var_5 = (**(type_6 **)(var_8 + 0x161d0))(stream);
    if (var_5 != 0) {
      uVar6 = (**(type_6 **)(var_8 + 0x1618c))(stream);
      var_9 = (**(type_6 **)(var_8 + 0x161f4))(uVar6);
      if (var_9 == -1) goto LAB_000202ac;
    }
    var_5 = var_10(stream);
    if (var_5 != 0) {
      piVar4 = (int *)(**(type_6 **)(var_8 + 0x16190))();
      var_5 = *piVar4;
      var_4 = (char *)(**(type_6 **)(var_8 + 0x16150))(stream);
      if (var_5 != 0) {
        var_4 = (char *)0xffffffff;
        *piVar4 = var_5;
      }
      return var_4;
    }
  }
LAB_000202ac:
                    /* WARNING: Could not recover jumptable at 0x000202c0. Too many branches */
                    /* WARNING: Treating indirect jump as call */
  var_4 = (char *)(**(type_6 **)(var_8 + 0x16150))(stream);
  return var_4;
}


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

undefined4 MASKED(char *param_1,undefined4 param_2)

{
  char *pcVar1;
  char cVar2;
  char *pcVar3;
  int iVar4;
  int *piVar5;
  undefined4 uVar6;
  int iVar7;
  undefined *puVar8;
  longlong lVar9;
  undefined4 local_10;
  int local_c;
  
  puVar8 = PTR___stack_chk_guard_00036414;
  local_c = *(int *)PTR___stack_chk_guard_00036414;
  if (*param_1 == '\0') {
    iVar7 = 0;
LAB_00020138:
    local_10 = FUN_0001ff60(iVar7,param_2);
  }
  else {
    if ((*param_1 == '%') && (param_1[1] == 's')) {
      iVar7 = 0;
      pcVar3 = param_1;
      do {
        cVar2 = pcVar3[2];
        iVar7 = iVar7 + 1;
        if (cVar2 == '\0') goto LAB_00020138;
      } while ((cVar2 == '%') && (pcVar1 = pcVar3 + 3, pcVar3 = pcVar3 + 2, *pcVar1 == 's'));
    }
    iVar7 = (*(code *)PTR___vasprintf_chk_0003636c)(&local_10,1,param_1);
    if (iVar7 < 0) {
      piVar5 = (int *)(*(code *)PTR___errno_location_00036360)();
      local_10 = 0;
      if (*piVar5 == 0xc) {
                    /* WARNING: Subroutine does not return */
        xalloc_die();
      }
    }
  }
  if (local_c == *(int *)puVar8) {
    return local_10;
  }
  iVar7 = local_c;
  puVar8 = PTR___stack_chk_fail_00036400;
  (*(code *)PTR___stack_chk_fail_00036400)();
  iVar4 = (**(code **)(puVar8 + 0x1618c))();
  if (-1 < iVar4) {
    iVar4 = (**(code **)(puVar8 + 0x161d0))(iVar7);
    if (iVar4 != 0) {
      uVar6 = (**(code **)(puVar8 + 0x1618c))(iVar7);
      lVar9 = (**(code **)(puVar8 + 0x161f4))(uVar6);
      if (lVar9 == -1) goto LAB_000202ac;
    }
    iVar4 = rpl_fflush(iVar7);
    if (iVar4 != 0) {
      piVar5 = (int *)(**(code **)(puVar8 + 0x16190))();
      iVar4 = *piVar5;
      uVar6 = (**(code **)(puVar8 + 0x16150))(iVar7);
      if (iVar4 != 0) {
        uVar6 = 0xffffffff;
        *piVar5 = iVar4;
      }
      return uVar6;
    }
  }
LAB_000202ac:
                    /* WARNING: Could not recover jumptable at 0x000202c0. Too many branches */
                    /* WARNING: Treating indirect jump as call */
  uVar6 = (**(code **)(puVar8 + 0x16150))(iVar7);
  return uVar6;
}

