
/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Unknown calling convention */
/* WARNING: Enum "anon_enum_32": Some values do not have unique names */

void debug_logprintf(char *fmt,...)

{
  int iVar1;
  undefined *puVar2;
  char cVar3;
  int iVar4;
  FILE *stream;
  FILE *pFVar5;
  FILE *pFVar6;
  FILE *__stream;
  char *s;
  int in_GS_OFFSET;
  logvprintf_state lpstate;
  char smallmsg [128];
  
  iVar1 = *(int *)(in_GS_OFFSET + 0x14);
  if ((opt.debug) &&
     (check_redirect_output(), puVar2 = PTR_stderr_000aefc0, inhibit_logging == false)) {
    lpstate.bigmsg = (char *)0x0;
    lpstate.allocated = 0;
    cVar3 = '\0';
    do {
      if (cVar3 == '\0') {
        pFVar5 = (FILE *)warclogfp;
        if (logfp == (FILE *)0x0) {
          __stream = *(FILE **)puVar2;
          if (((warclogfp == (FILE *)0x0) && (pFVar5 = __stream, save_context_p != true)) &&
             (__stream == (FILE *)0x0)) goto LAB_0003e478;
        }
        else {
          __stream = (FILE *)logfp;
          if ((warclogfp == (FILE *)0x0) && (pFVar6 = logfp, save_context_p == false))
          goto LAB_0003e47a;
        }
      }
      else {
        if (save_context_p == false) {
LAB_0003e478:
          pFVar6 = (FILE *)0x0;
LAB_0003e47a:
          __vfprintf_chk(pFVar6,1,fmt,&stack0x00000008);
          goto LAB_0003e439;
        }
        __stream = (FILE *)0x0;
        pFVar5 = (FILE *)0x0;
      }
      s = lpstate.bigmsg;
      if (lpstate.allocated == 0) {
        lpstate.allocated = 0x80;
        s = smallmsg;
      }
      iVar4 = __vsnprintf_chk(s,lpstate.allocated,1,0xffffffff,fmt,&stack0x00000008);
      if (iVar4 == -1) {
        lpstate.allocated = lpstate.allocated * 2;
      }
      else {
        if (iVar4 < lpstate.allocated) goto code_r0x0003e3f3;
        lpstate.allocated = iVar4 + 1;
      }
      lpstate.bigmsg = (char *)xrealloc(lpstate.bigmsg,lpstate.allocated);
      cVar3 = inhibit_logging;
    } while( true );
  }
  goto LAB_0003e31e;
code_r0x0003e3f3:
  if (save_context_p != false) {
    saved_append(s);
  }
  fputs(s,__stream);
  if (pFVar5 != (FILE *)0x0) {
    fputs(s,pFVar5);
  }
  free(lpstate.bigmsg);
LAB_0003e439:
  if (flush_log_p == false) {
    needs_flushing = true;
    goto LAB_0003e31e;
  }
  if (inhibit_logging == false) {
    pFVar6 = warclogfp;
    if (logfp == (FILE *)0x0) {
      stream = *(FILE **)PTR_stderr_000aefc0;
      if (warclogfp == (FILE *)0x0) {
        pFVar6 = stream;
        if (stream == (FILE *)0x0) goto LAB_0003e4cd;
LAB_0003e4b5:
        rpl_fflush(stream);
      }
      else if (stream != (FILE *)0x0) goto LAB_0003e4b5;
      rpl_fflush(pFVar6);
    }
    else {
      stream = logfp;
      if (warclogfp != (FILE *)0x0) goto LAB_0003e4b5;
      rpl_fflush(logfp);
    }
  }
LAB_0003e4cd:
  needs_flushing = false;
LAB_0003e31e:
  if (iVar1 != *(int *)(in_GS_OFFSET + 0x14)) {
                    /* WARNING: Subroutine does not return */
    __stack_chk_fail_local();
  }
  return;
}



/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */

void FUN_0003e2e0(undefined4 param_1)

{
  undefined *puVar1;
  char cVar2;
  int iVar3;
  FILE *pFVar4;
  FILE *pFVar5;
  char *__s;
  int in_GS_OFFSET;
  char *local_ac;
  int local_a4;
  char local_a0 [128];
  int local_20;
  undefined4 uStack_14;
  
  uStack_14 = 0x3e2e9;
  local_20 = *(int *)(in_GS_OFFSET + 0x14);
  if ((DAT_000b6b9b != '\0') && (FUN_0003da30(), puVar1 = PTR_stderr_000aefc0, DAT_000b42c2 == '\0')
     ) {
    local_ac = (char *)0x0;
    local_a4 = 0;
    cVar2 = '\0';
    do {
      if (cVar2 == '\0') {
        pFVar4 = DAT_000b42c4;
        if (DAT_000b42d8 == (FILE *)0x0) {
          pFVar5 = *(FILE **)puVar1;
          if (((DAT_000b42c4 == (FILE *)0x0) && (pFVar4 = pFVar5, DAT_000b42c1 != '\x01')) &&
             (pFVar5 == (FILE *)0x0)) goto LAB_0003e478;
        }
        else {
          pFVar5 = DAT_000b42d8;
          if ((DAT_000b42c4 == (FILE *)0x0) && (DAT_000b42c1 == '\0')) goto LAB_0003e47a;
        }
      }
      else {
        if (DAT_000b42c1 == '\0') {
LAB_0003e478:
          pFVar5 = (FILE *)0x0;
LAB_0003e47a:
          __vfprintf_chk(pFVar5,1,param_1,&stack0x00000008);
          goto LAB_0003e439;
        }
        pFVar5 = (FILE *)0x0;
        pFVar4 = (FILE *)0x0;
      }
      __s = local_ac;
      if (local_a4 == 0) {
        local_a4 = 0x80;
        __s = local_a0;
      }
      iVar3 = __vsnprintf_chk(__s,local_a4,1,0xffffffff,param_1,&stack0x00000008);
      if (iVar3 == -1) {
        local_a4 = local_a4 * 2;
      }
      else {
        if (iVar3 < local_a4) goto code_r0x0003e3f3;
        local_a4 = iVar3 + 1;
      }
      local_ac = (char *)FUN_00062e80(local_ac,local_a4);
      cVar2 = DAT_000b42c2;
    } while( true );
  }
  goto LAB_0003e31e;
code_r0x0003e3f3:
  if (DAT_000b42c1 != '\0') {
    FUN_0003d3d0();
  }
  fputs(__s,pFVar5);
  if (pFVar4 != (FILE *)0x0) {
    fputs(__s,pFVar4);
  }
  free(local_ac);
LAB_0003e439:
  if (DAT_000af150 == '\0') {
    DAT_000b42c0 = 1;
    goto LAB_0003e31e;
  }
  if (DAT_000b42c2 == '\0') {
    pFVar5 = DAT_000b42c4;
    if (DAT_000b42d8 == (FILE *)0x0) {
      pFVar4 = *(FILE **)PTR_stderr_000aefc0;
      if (DAT_000b42c4 == (FILE *)0x0) {
        pFVar5 = pFVar4;
        if (pFVar4 == (FILE *)0x0) goto LAB_0003e4cd;
LAB_0003e4b5:
        FUN_000632b0(pFVar4);
      }
      else if (pFVar4 != (FILE *)0x0) goto LAB_0003e4b5;
      FUN_000632b0(pFVar5);
    }
    else {
      pFVar4 = DAT_000b42d8;
      if (DAT_000b42c4 != (FILE *)0x0) goto LAB_0003e4b5;
      FUN_000632b0(DAT_000b42d8);
    }
  }
LAB_0003e4cd:
  DAT_000b42c0 = 0;
LAB_0003e31e:
  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {
                    /* WARNING: Subroutine does not return */
    FUN_0007ad20();
  }
  return;
}


PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
CALL 0x000190b0
ADD EBX,0x708e7
SUB ESP,0xbc
MOV EAX,dword ptr [ESP + 0xd0]
MOV dword ptr [ESP + 0x14],EAX
MOV EAX,GS:[0x14]
MOV dword ptr [ESP + 0xac],EAX
XOR EAX,EAX
LEA EAX,[EBX + 0x7e70]
CMP byte ptr [EAX + 0x15b],0x0
JNZ 0x0003e340
MOV EAX,dword ptr [ESP + 0xac]
XOR EAX,dword ptr GS:[0x14]
JNZ 0x0003e5a1
ADD ESP,0xbc
POP EBX
POP ESI
POP EDI
POP EBP
RET
CALL 0x0003da30
MOVZX EAX,byte ptr [EBX + 0x56f2]
TEST AL,AL
JNZ 0x0003e31e
LEA ECX,[ESP + 0xd4]
MOV dword ptr [ESP + 0x20],0x0
MOV dword ptr [ESP + 0x18],ECX
MOV ECX,dword ptr [EBX + 0x3f0]
MOV dword ptr [ESP + 0x24],0x0
MOV dword ptr [ESP + 0x28],0x0
MOV dword ptr [ESP + 0x1c],ECX
TEST AL,AL
JNZ 0x0003e4f0
MOV EBP,dword ptr [EBX + 0x5708]
MOV EDX,dword ptr [EBX + 0x56f4]
TEST EBP,EBP
JZ 0x0003e450
TEST EDX,EDX
JZ 0x0003e540
MOV ESI,dword ptr [ESP + 0x28]
MOV EDI,dword ptr [ESP + 0x20]
MOV EAX,ESI
MOV dword ptr [ESP + 0x10],EDI
TEST ESI,ESI
JNZ 0x0003e3c1
MOV EAX,0x80
MOV ESI,0x80
LEA EDI,[ESP + 0x2c]
MOV dword ptr [ESP + 0xc],EDX
SUB ESP,0x8
PUSH dword ptr [ESP + 0x20]
PUSH dword ptr [ESP + 0x20]
PUSH -0x1
PUSH 0x1
PUSH EAX
PUSH EDI
CALL 0x00016570
ADD ESP,0x20
MOV EDX,dword ptr [ESP + 0xc]
CMP EAX,-0x1
JZ 0x0003e558
CMP ESI,EAX
JLE 0x0003e510
CMP byte ptr [EBX + 0x56f1],0x0
MOV ESI,EDI
MOV EDI,EDX
JNZ 0x0003e4e0
SUB ESP,0x8
PUSH EBP
PUSH ESI
CALL 0x00016050
ADD ESP,0x10
TEST EDI,EDI
JZ 0x0003e422
SUB ESP,0x8
PUSH EDI
PUSH ESI
CALL 0x00016050
ADD ESP,0x10
SUB ESP,0xc
PUSH dword ptr [ESP + 0x1c]
CALL 0x00016670
MOV dword ptr [ESP + 0x30],0x0
ADD ESP,0x10
CMP byte ptr [EBX + 0x580],0x0
JNZ 0x0003e490
MOV byte ptr [EBX + 0x56f0],0x1
JMP 0x0003e31e
MOV EAX,dword ptr [ESP + 0x1c]
MOV EBP,dword ptr [EAX]
TEST EDX,EDX
JNZ 0x0003e3a1
CMP byte ptr [EBX + 0x56f1],0x1
JZ 0x0003e46b
TEST EBP,EBP
JZ 0x0003e478
MOV EDX,EBP
JMP 0x0003e3a1
XOR EBP,EBP
PUSH dword ptr [ESP + 0x18]
PUSH dword ptr [ESP + 0x18]
PUSH 0x1
PUSH EBP
CALL 0x000166f0
ADD ESP,0x10
JMP 0x0003e439
CMP byte ptr [EBX + 0x56f2],0x0
JNZ 0x0003e4cd
MOV EAX,dword ptr [EBX + 0x5708]
MOV ESI,dword ptr [EBX + 0x56f4]
TEST EAX,EAX
JZ 0x0003e560
TEST ESI,ESI
JZ 0x0003e590
SUB ESP,0xc
PUSH EAX
CALL 0x000632b0
ADD ESP,0x10
SUB ESP,0xc
PUSH ESI
CALL 0x000632b0
ADD ESP,0x10
MOV byte ptr [EBX + 0x56f0],0x0
JMP 0x0003e31e
MOV EAX,ESI
CALL 0x0003d3d0
JMP 0x0003e404
CMP byte ptr [EBX + 0x56f1],0x0
JZ 0x0003e478
XOR EBP,EBP
XOR EDX,EDX
JMP 0x0003e3a1
LEA ESI,[EAX + 0x1]
SUB ESP,0x8
PUSH ESI
PUSH dword ptr [ESP + 0x1c]
CALL 0x00062e80
MOV dword ptr [ESP + 0x38],ESI
MOV dword ptr [ESP + 0x30],EAX
ADD ESP,0x10
MOVZX EAX,byte ptr [EBX + 0x56f2]
JMP 0x0003e37d
CMP byte ptr [EBX + 0x56f1],0x0
JNZ 0x0003e3a1
JMP 0x0003e47a
ADD ESI,ESI
JMP 0x0003e513
MOV EAX,dword ptr [EBX + 0x3f0]
MOV EAX,dword ptr [EAX]
TEST ESI,ESI
JZ 0x0003e580
TEST EAX,EAX
JZ 0x0003e4c1
JMP 0x0003e4b5
TEST EAX,EAX
JZ 0x0003e4cd
MOV ESI,EAX
JMP 0x0003e4b5
SUB ESP,0xc
PUSH EAX
CALL 0x000632b0
ADD ESP,0x10
JMP 0x0003e4cd
CALL 0x0007ad20
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nvoid FUN_0003e2e0(undefined4 param_1)\n\n{\n  undefined *puVar1;\n  char cVar2;\n  int iVar3;\n  FILE *pFVar4;\n  FILE *pFVar5;\n  char *__s;\n  int in_GS_OFFSET;\n  char *local_ac;\n  int local_a4;\n  char local_a0 [128];\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x3e2e9;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if ((DAT_000b6b9b != '\0') && (FUN_0003da30(), puVar1 = PTR_stderr_000aefc0, DAT_000b42c2 == '\0')\n     ) {\n    local_ac = (char *)0x0;\n    local_a4 = 0;\n    cVar2 = '\0';\n    do {\n      if (cVar2 == '\0') {\n        pFVar4 = DAT_000b42c4;\n        if (DAT_000b42d8 == (FILE *)0x0) {\n          pFVar5 = *(FILE **)puVar1;\n          if (((DAT_000b42c4 == (FILE *)0x0) && (pFVar4 = pFVar5, DAT_000b42c1 != '\x01')) &&\n             (pFVar5 == (FILE *)0x0)) goto LAB_0003e478;\n        }\n        else {\n          pFVar5 = DAT_000b42d8;\n          if ((DAT_000b42c4 == (FILE *)0x0) && (DAT_000b42c1 == '\0')) goto LAB_0003e47a;\n        }\n      }\n      else {\n        if (DAT_000b42c1 == '\0') {\nLAB_0003e478:\n          pFVar5 = (FILE *)0x0;\nLAB_0003e47a:\n          __vfprintf_chk(pFVar5,1,param_1,&stack0x00000008);\n          goto LAB_0003e439;\n        }\n        pFVar5 = (FILE *)0x0;\n        pFVar4 = (FILE *)0x0;\n      }\n      __s = local_ac;\n      if (local_a4 == 0) {\n        local_a4 = 0x80;\n        __s = local_a0;\n      }\n      iVar3 = __vsnprintf_chk(__s,local_a4,1,0xffffffff,param_1,&stack0x00000008);\n      if (iVar3 == -1) {\n        local_a4 = local_a4 * 2;\n      }\n      else {\n        if (iVar3 < local_a4) goto code_r0x0003e3f3;\n        local_a4 = iVar3 + 1;\n      }\n      local_ac = (char *)FUN_00062e80(local_ac,local_a4);\n      cVar2 = DAT_000b42c2;\n    } while( true );\n  }\n  goto LAB_0003e31e;\ncode_r0x0003e3f3:\n  if (DAT_000b42c1 != '\0') {\n    FUN_0003d3d0();\n  }\n  fputs(__s,pFVar5);\n  if (pFVar4 != (FILE *)0x0) {\n    fputs(__s,pFVar4);\n  }\n  free(local_ac);\nLAB_0003e439:\n  if (DAT_000af150 == '\0') {\n    DAT_000b42c0 = 1;\n    goto LAB_0003e31e;\n  }\n  if (DAT_000b42c2 == '\0') {\n    pFVar5 = DAT_000b42c4;\n    if (DAT_000b42d8 == (FILE *)0x0) {\n      pFVar4 = *(FILE **)PTR_stderr_000aefc0;\n      if (DAT_000b42c4 == (FILE *)0x0) {\n        pFVar5 = pFVar4;\n        if (pFVar4 == (FILE *)0x0) goto LAB_0003e4cd;\nLAB_0003e4b5:\n        FUN_000632b0(pFVar4);\n      }\n      else if (pFVar4 != (FILE *)0x0) goto LAB_0003e4b5;\n      FUN_000632b0(pFVar5);\n    }\n    else {\n      pFVar4 = DAT_000b42d8;\n      if (DAT_000b42c4 != (FILE *)0x0) goto LAB_0003e4b5;\n      FUN_000632b0(DAT_000b42d8);\n    }\n  }\nLAB_0003e4cd:\n  DAT_000b42c0 = 0;\nLAB_0003e31e:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0007ad20();\n  }\n  return;\n}\n\n" comment (function_definition "void FUN_0003e2e0(undefined4 param_1)\n\n{\n  undefined *puVar1;\n  char cVar2;\n  int iVar3;\n  FILE *pFVar4;\n  FILE *pFVar5;\n  char *__s;\n  int in_GS_OFFSET;\n  char *local_ac;\n  int local_a4;\n  char local_a0 [128];\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x3e2e9;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if ((DAT_000b6b9b != '\0') && (FUN_0003da30(), puVar1 = PTR_stderr_000aefc0, DAT_000b42c2 == '\0')\n     ) {\n    local_ac = (char *)0x0;\n    local_a4 = 0;\n    cVar2 = '\0';\n    do {\n      if (cVar2 == '\0') {\n        pFVar4 = DAT_000b42c4;\n        if (DAT_000b42d8 == (FILE *)0x0) {\n          pFVar5 = *(FILE **)puVar1;\n          if (((DAT_000b42c4 == (FILE *)0x0) && (pFVar4 = pFVar5, DAT_000b42c1 != '\x01')) &&\n             (pFVar5 == (FILE *)0x0)) goto LAB_0003e478;\n        }\n        else {\n          pFVar5 = DAT_000b42d8;\n          if ((DAT_000b42c4 == (FILE *)0x0) && (DAT_000b42c1 == '\0')) goto LAB_0003e47a;\n        }\n      }\n      else {\n        if (DAT_000b42c1 == '\0') {\nLAB_0003e478:\n          pFVar5 = (FILE *)0x0;\nLAB_0003e47a:\n          __vfprintf_chk(pFVar5,1,param_1,&stack0x00000008);\n          goto LAB_0003e439;\n        }\n        pFVar5 = (FILE *)0x0;\n        pFVar4 = (FILE *)0x0;\n      }\n      __s = local_ac;\n      if (local_a4 == 0) {\n        local_a4 = 0x80;\n        __s = local_a0;\n      }\n      iVar3 = __vsnprintf_chk(__s,local_a4,1,0xffffffff,param_1,&stack0x00000008);\n      if (iVar3 == -1) {\n        local_a4 = local_a4 * 2;\n      }\n      else {\n        if (iVar3 < local_a4) goto code_r0x0003e3f3;\n        local_a4 = iVar3 + 1;\n      }\n      local_ac = (char *)FUN_00062e80(local_ac,local_a4);\n      cVar2 = DAT_000b42c2;\n    } while( true );\n  }\n  goto LAB_0003e31e;\ncode_r0x0003e3f3:\n  if (DAT_000b42c1 != '\0') {\n    FUN_0003d3d0();\n  }\n  fputs(__s,pFVar5);\n  if (pFVar4 != (FILE *)0x0) {\n    fputs(__s,pFVar4);\n  }\n  free(local_ac);\nLAB_0003e439:\n  if (DAT_000af150 == '\0') {\n    DAT_000b42c0 = 1;\n    goto LAB_0003e31e;\n  }\n  if (DAT_000b42c2 == '\0') {\n    pFVar5 = DAT_000b42c4;\n    if (DAT_000b42d8 == (FILE *)0x0) {\n      pFVar4 = *(FILE **)PTR_stderr_000aefc0;\n      if (DAT_000b42c4 == (FILE *)0x0) {\n        pFVar5 = pFVar4;\n        if (pFVar4 == (FILE *)0x0) goto LAB_0003e4cd;\nLAB_0003e4b5:\n        FUN_000632b0(pFVar4);\n      }\n      else if (pFVar4 != (FILE *)0x0) goto LAB_0003e4b5;\n      FUN_000632b0(pFVar5);\n    }\n    else {\n      pFVar4 = DAT_000b42d8;\n      if (DAT_000b42c4 != (FILE *)0x0) goto LAB_0003e4b5;\n      FUN_000632b0(DAT_000b42d8);\n    }\n  }\nLAB_0003e4cd:\n  DAT_000b42c0 = 0;\nLAB_0003e31e:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0007ad20();\n  }\n  return;\n}" primitive_type (function_declarator "FUN_0003e2e0(undefined4 param_1)" identifier (parameter_list "(undefined4 param_1)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) ))) (compound_statement "{\n  undefined *puVar1;\n  char cVar2;\n  int iVar3;\n  FILE *pFVar4;\n  FILE *pFVar5;\n  char *__s;\n  int in_GS_OFFSET;\n  char *local_ac;\n  int local_a4;\n  char local_a0 [128];\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x3e2e9;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if ((DAT_000b6b9b != '\0') && (FUN_0003da30(), puVar1 = PTR_stderr_000aefc0, DAT_000b42c2 == '\0')\n     ) {\n    local_ac = (char *)0x0;\n    local_a4 = 0;\n    cVar2 = '\0';\n    do {\n      if (cVar2 == '\0') {\n        pFVar4 = DAT_000b42c4;\n        if (DAT_000b42d8 == (FILE *)0x0) {\n          pFVar5 = *(FILE **)puVar1;\n          if (((DAT_000b42c4 == (FILE *)0x0) && (pFVar4 = pFVar5, DAT_000b42c1 != '\x01')) &&\n             (pFVar5 == (FILE *)0x0)) goto LAB_0003e478;\n        }\n        else {\n          pFVar5 = DAT_000b42d8;\n          if ((DAT_000b42c4 == (FILE *)0x0) && (DAT_000b42c1 == '\0')) goto LAB_0003e47a;\n        }\n      }\n      else {\n        if (DAT_000b42c1 == '\0') {\nLAB_0003e478:\n          pFVar5 = (FILE *)0x0;\nLAB_0003e47a:\n          __vfprintf_chk(pFVar5,1,param_1,&stack0x00000008);\n          goto LAB_0003e439;\n        }\n        pFVar5 = (FILE *)0x0;\n        pFVar4 = (FILE *)0x0;\n      }\n      __s = local_ac;\n      if (local_a4 == 0) {\n        local_a4 = 0x80;\n        __s = local_a0;\n      }\n      iVar3 = __vsnprintf_chk(__s,local_a4,1,0xffffffff,param_1,&stack0x00000008);\n      if (iVar3 == -1) {\n        local_a4 = local_a4 * 2;\n      }\n      else {\n        if (iVar3 < local_a4) goto code_r0x0003e3f3;\n        local_a4 = iVar3 + 1;\n      }\n      local_ac = (char *)FUN_00062e80(local_ac,local_a4);\n      cVar2 = DAT_000b42c2;\n    } while( true );\n  }\n  goto LAB_0003e31e;\ncode_r0x0003e3f3:\n  if (DAT_000b42c1 != '\0') {\n    FUN_0003d3d0();\n  }\n  fputs(__s,pFVar5);\n  if (pFVar4 != (FILE *)0x0) {\n    fputs(__s,pFVar4);\n  }\n  free(local_ac);\nLAB_0003e439:\n  if (DAT_000af150 == '\0') {\n    DAT_000b42c0 = 1;\n    goto LAB_0003e31e;\n  }\n  if (DAT_000b42c2 == '\0') {\n    pFVar5 = DAT_000b42c4;\n    if (DAT_000b42d8 == (FILE *)0x0) {\n      pFVar4 = *(FILE **)PTR_stderr_000aefc0;\n      if (DAT_000b42c4 == (FILE *)0x0) {\n        pFVar5 = pFVar4;\n        if (pFVar4 == (FILE *)0x0) goto LAB_0003e4cd;\nLAB_0003e4b5:\n        FUN_000632b0(pFVar4);\n      }\n      else if (pFVar4 != (FILE *)0x0) goto LAB_0003e4b5;\n      FUN_000632b0(pFVar5);\n    }\n    else {\n      pFVar4 = DAT_000b42d8;\n      if (DAT_000b42c4 != (FILE *)0x0) goto LAB_0003e4b5;\n      FUN_000632b0(DAT_000b42d8);\n    }\n  }\nLAB_0003e4cd:\n  DAT_000b42c0 = 0;\nLAB_0003e31e:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0007ad20();\n  }\n  return;\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "char cVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "FILE *pFVar4;" type_identifier (pointer_declarator "*pFVar4" * identifier) ;) (declaration "FILE *pFVar5;" type_identifier (pointer_declarator "*pFVar5" * identifier) ;) (declaration "char *__s;" primitive_type (pointer_declarator "*__s" * identifier) ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "char *local_ac;" primitive_type (pointer_declarator "*local_ac" * identifier) ;) (declaration "int local_a4;" primitive_type identifier ;) (declaration "char local_a0 [128];" primitive_type (array_declarator "local_a0 [128]" identifier [ number_literal ]) ;) (declaration "int local_20;" primitive_type identifier ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "uStack_14 = 0x3e2e9;" (assignment_expression "uStack_14 = 0x3e2e9" identifier = number_literal) ;) (expression_statement "local_20 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_20 = *(int *)(in_GS_OFFSET + 0x14)" identifier = (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) ;) (if_statement "if ((DAT_000b6b9b != '\0') && (FUN_0003da30(), puVar1 = PTR_stderr_000aefc0, DAT_000b42c2 == '\0')\n     ) {\n    local_ac = (char *)0x0;\n    local_a4 = 0;\n    cVar2 = '\0';\n    do {\n      if (cVar2 == '\0') {\n        pFVar4 = DAT_000b42c4;\n        if (DAT_000b42d8 == (FILE *)0x0) {\n          pFVar5 = *(FILE **)puVar1;\n          if (((DAT_000b42c4 == (FILE *)0x0) && (pFVar4 = pFVar5, DAT_000b42c1 != '\x01')) &&\n             (pFVar5 == (FILE *)0x0)) goto LAB_0003e478;\n        }\n        else {\n          pFVar5 = DAT_000b42d8;\n          if ((DAT_000b42c4 == (FILE *)0x0) && (DAT_000b42c1 == '\0')) goto LAB_0003e47a;\n        }\n      }\n      else {\n        if (DAT_000b42c1 == '\0') {\nLAB_0003e478:\n          pFVar5 = (FILE *)0x0;\nLAB_0003e47a:\n          __vfprintf_chk(pFVar5,1,param_1,&stack0x00000008);\n          goto LAB_0003e439;\n        }\n        pFVar5 = (FILE *)0x0;\n        pFVar4 = (FILE *)0x0;\n      }\n      __s = local_ac;\n      if (local_a4 == 0) {\n        local_a4 = 0x80;\n        __s = local_a0;\n      }\n      iVar3 = __vsnprintf_chk(__s,local_a4,1,0xffffffff,param_1,&stack0x00000008);\n      if (iVar3 == -1) {\n        local_a4 = local_a4 * 2;\n      }\n      else {\n        if (iVar3 < local_a4) goto code_r0x0003e3f3;\n        local_a4 = iVar3 + 1;\n      }\n      local_ac = (char *)FUN_00062e80(local_ac,local_a4);\n      cVar2 = DAT_000b42c2;\n    } while( true );\n  }" if (parenthesized_expression "((DAT_000b6b9b != '\0') && (FUN_0003da30(), puVar1 = PTR_stderr_000aefc0, DAT_000b42c2 == '\0')\n     )" ( (binary_expression "(DAT_000b6b9b != '\0') && (FUN_0003da30(), puVar1 = PTR_stderr_000aefc0, DAT_000b42c2 == '\0')" (parenthesized_expression "(DAT_000b6b9b != '\0')" ( (binary_expression "DAT_000b6b9b != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(FUN_0003da30(), puVar1 = PTR_stderr_000aefc0, DAT_000b42c2 == '\0')" ( (comma_expression "FUN_0003da30(), puVar1 = PTR_stderr_000aefc0, DAT_000b42c2 == '\0'" (call_expression "FUN_0003da30()" identifier (argument_list "()" ( ))) , (comma_expression "puVar1 = PTR_stderr_000aefc0, DAT_000b42c2 == '\0'" (assignment_expression "puVar1 = PTR_stderr_000aefc0" identifier = identifier) , (binary_expression "DAT_000b42c2 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')))) ))) )) (compound_statement "{\n    local_ac = (char *)0x0;\n    local_a4 = 0;\n    cVar2 = '\0';\n    do {\n      if (cVar2 == '\0') {\n        pFVar4 = DAT_000b42c4;\n        if (DAT_000b42d8 == (FILE *)0x0) {\n          pFVar5 = *(FILE **)puVar1;\n          if (((DAT_000b42c4 == (FILE *)0x0) && (pFVar4 = pFVar5, DAT_000b42c1 != '\x01')) &&\n             (pFVar5 == (FILE *)0x0)) goto LAB_0003e478;\n        }\n        else {\n          pFVar5 = DAT_000b42d8;\n          if ((DAT_000b42c4 == (FILE *)0x0) && (DAT_000b42c1 == '\0')) goto LAB_0003e47a;\n        }\n      }\n      else {\n        if (DAT_000b42c1 == '\0') {\nLAB_0003e478:\n          pFVar5 = (FILE *)0x0;\nLAB_0003e47a:\n          __vfprintf_chk(pFVar5,1,param_1,&stack0x00000008);\n          goto LAB_0003e439;\n        }\n        pFVar5 = (FILE *)0x0;\n        pFVar4 = (FILE *)0x0;\n      }\n      __s = local_ac;\n      if (local_a4 == 0) {\n        local_a4 = 0x80;\n        __s = local_a0;\n      }\n      iVar3 = __vsnprintf_chk(__s,local_a4,1,0xffffffff,param_1,&stack0x00000008);\n      if (iVar3 == -1) {\n        local_a4 = local_a4 * 2;\n      }\n      else {\n        if (iVar3 < local_a4) goto code_r0x0003e3f3;\n        local_a4 = iVar3 + 1;\n      }\n      local_ac = (char *)FUN_00062e80(local_ac,local_a4);\n      cVar2 = DAT_000b42c2;\n    } while( true );\n  }" { (expression_statement "local_ac = (char *)0x0;" (assignment_expression "local_ac = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_a4 = 0;" (assignment_expression "local_a4 = 0" identifier = number_literal) ;) (expression_statement "cVar2 = '\0';" (assignment_expression "cVar2 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (do_statement "do {\n      if (cVar2 == '\0') {\n        pFVar4 = DAT_000b42c4;\n        if (DAT_000b42d8 == (FILE *)0x0) {\n          pFVar5 = *(FILE **)puVar1;\n          if (((DAT_000b42c4 == (FILE *)0x0) && (pFVar4 = pFVar5, DAT_000b42c1 != '\x01')) &&\n             (pFVar5 == (FILE *)0x0)) goto LAB_0003e478;\n        }\n        else {\n          pFVar5 = DAT_000b42d8;\n          if ((DAT_000b42c4 == (FILE *)0x0) && (DAT_000b42c1 == '\0')) goto LAB_0003e47a;\n        }\n      }\n      else {\n        if (DAT_000b42c1 == '\0') {\nLAB_0003e478:\n          pFVar5 = (FILE *)0x0;\nLAB_0003e47a:\n          __vfprintf_chk(pFVar5,1,param_1,&stack0x00000008);\n          goto LAB_0003e439;\n        }\n        pFVar5 = (FILE *)0x0;\n        pFVar4 = (FILE *)0x0;\n      }\n      __s = local_ac;\n      if (local_a4 == 0) {\n        local_a4 = 0x80;\n        __s = local_a0;\n      }\n      iVar3 = __vsnprintf_chk(__s,local_a4,1,0xffffffff,param_1,&stack0x00000008);\n      if (iVar3 == -1) {\n        local_a4 = local_a4 * 2;\n      }\n      else {\n        if (iVar3 < local_a4) goto code_r0x0003e3f3;\n        local_a4 = iVar3 + 1;\n      }\n      local_ac = (char *)FUN_00062e80(local_ac,local_a4);\n      cVar2 = DAT_000b42c2;\n    } while( true );" do (compound_statement "{\n      if (cVar2 == '\0') {\n        pFVar4 = DAT_000b42c4;\n        if (DAT_000b42d8 == (FILE *)0x0) {\n          pFVar5 = *(FILE **)puVar1;\n          if (((DAT_000b42c4 == (FILE *)0x0) && (pFVar4 = pFVar5, DAT_000b42c1 != '\x01')) &&\n             (pFVar5 == (FILE *)0x0)) goto LAB_0003e478;\n        }\n        else {\n          pFVar5 = DAT_000b42d8;\n          if ((DAT_000b42c4 == (FILE *)0x0) && (DAT_000b42c1 == '\0')) goto LAB_0003e47a;\n        }\n      }\n      else {\n        if (DAT_000b42c1 == '\0') {\nLAB_0003e478:\n          pFVar5 = (FILE *)0x0;\nLAB_0003e47a:\n          __vfprintf_chk(pFVar5,1,param_1,&stack0x00000008);\n          goto LAB_0003e439;\n        }\n        pFVar5 = (FILE *)0x0;\n        pFVar4 = (FILE *)0x0;\n      }\n      __s = local_ac;\n      if (local_a4 == 0) {\n        local_a4 = 0x80;\n        __s = local_a0;\n      }\n      iVar3 = __vsnprintf_chk(__s,local_a4,1,0xffffffff,param_1,&stack0x00000008);\n      if (iVar3 == -1) {\n        local_a4 = local_a4 * 2;\n      }\n      else {\n        if (iVar3 < local_a4) goto code_r0x0003e3f3;\n        local_a4 = iVar3 + 1;\n      }\n      local_ac = (char *)FUN_00062e80(local_ac,local_a4);\n      cVar2 = DAT_000b42c2;\n    }" { (if_statement "if (cVar2 == '\0') {\n        pFVar4 = DAT_000b42c4;\n        if (DAT_000b42d8 == (FILE *)0x0) {\n          pFVar5 = *(FILE **)puVar1;\n          if (((DAT_000b42c4 == (FILE *)0x0) && (pFVar4 = pFVar5, DAT_000b42c1 != '\x01')) &&\n             (pFVar5 == (FILE *)0x0)) goto LAB_0003e478;\n        }\n        else {\n          pFVar5 = DAT_000b42d8;\n          if ((DAT_000b42c4 == (FILE *)0x0) && (DAT_000b42c1 == '\0')) goto LAB_0003e47a;\n        }\n      }\n      else {\n        if (DAT_000b42c1 == '\0') {\nLAB_0003e478:\n          pFVar5 = (FILE *)0x0;\nLAB_0003e47a:\n          __vfprintf_chk(pFVar5,1,param_1,&stack0x00000008);\n          goto LAB_0003e439;\n        }\n        pFVar5 = (FILE *)0x0;\n        pFVar4 = (FILE *)0x0;\n      }" if (parenthesized_expression "(cVar2 == '\0')" ( (binary_expression "cVar2 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        pFVar4 = DAT_000b42c4;\n        if (DAT_000b42d8 == (FILE *)0x0) {\n          pFVar5 = *(FILE **)puVar1;\n          if (((DAT_000b42c4 == (FILE *)0x0) && (pFVar4 = pFVar5, DAT_000b42c1 != '\x01')) &&\n             (pFVar5 == (FILE *)0x0)) goto LAB_0003e478;\n        }\n        else {\n          pFVar5 = DAT_000b42d8;\n          if ((DAT_000b42c4 == (FILE *)0x0) && (DAT_000b42c1 == '\0')) goto LAB_0003e47a;\n        }\n      }" { (expression_statement "pFVar4 = DAT_000b42c4;" (assignment_expression "pFVar4 = DAT_000b42c4" identifier = identifier) ;) (if_statement "if (DAT_000b42d8 == (FILE *)0x0) {\n          pFVar5 = *(FILE **)puVar1;\n          if (((DAT_000b42c4 == (FILE *)0x0) && (pFVar4 = pFVar5, DAT_000b42c1 != '\x01')) &&\n             (pFVar5 == (FILE *)0x0)) goto LAB_0003e478;\n        }\n        else {\n          pFVar5 = DAT_000b42d8;\n          if ((DAT_000b42c4 == (FILE *)0x0) && (DAT_000b42c1 == '\0')) goto LAB_0003e47a;\n        }" if (parenthesized_expression "(DAT_000b42d8 == (FILE *)0x0)" ( (binary_expression "DAT_000b42d8 == (FILE *)0x0" identifier == (cast_expression "(FILE *)0x0" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          pFVar5 = *(FILE **)puVar1;\n          if (((DAT_000b42c4 == (FILE *)0x0) && (pFVar4 = pFVar5, DAT_000b42c1 != '\x01')) &&\n             (pFVar5 == (FILE *)0x0)) goto LAB_0003e478;\n        }" { (expression_statement "pFVar5 = *(FILE **)puVar1;" (assignment_expression "pFVar5 = *(FILE **)puVar1" identifier = (pointer_expression "*(FILE **)puVar1" * (cast_expression "(FILE **)puVar1" ( (type_descriptor "FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (if_statement "if (((DAT_000b42c4 == (FILE *)0x0) && (pFVar4 = pFVar5, DAT_000b42c1 != '\x01')) &&\n             (pFVar5 == (FILE *)0x0)) goto LAB_0003e478;" if (parenthesized_expression "(((DAT_000b42c4 == (FILE *)0x0) && (pFVar4 = pFVar5, DAT_000b42c1 != '\x01')) &&\n             (pFVar5 == (FILE *)0x0))" ( (binary_expression "((DAT_000b42c4 == (FILE *)0x0) && (pFVar4 = pFVar5, DAT_000b42c1 != '\x01')) &&\n             (pFVar5 == (FILE *)0x0)" (parenthesized_expression "((DAT_000b42c4 == (FILE *)0x0) && (pFVar4 = pFVar5, DAT_000b42c1 != '\x01'))" ( (binary_expression "(DAT_000b42c4 == (FILE *)0x0) && (pFVar4 = pFVar5, DAT_000b42c1 != '\x01')" (parenthesized_expression "(DAT_000b42c4 == (FILE *)0x0)" ( (binary_expression "DAT_000b42c4 == (FILE *)0x0" identifier == (cast_expression "(FILE *)0x0" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(pFVar4 = pFVar5, DAT_000b42c1 != '\x01')" ( (comma_expression "pFVar4 = pFVar5, DAT_000b42c1 != '\x01'" (assignment_expression "pFVar4 = pFVar5" identifier = identifier) , (binary_expression "DAT_000b42c1 != '\x01'" identifier != (char_literal "'\x01'" ' escape_sequence '))) ))) )) && (parenthesized_expression "(pFVar5 == (FILE *)0x0)" ( (binary_expression "pFVar5 == (FILE *)0x0" identifier == (cast_expression "(FILE *)0x0" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (goto_statement "goto LAB_0003e478;" goto statement_identifier ;)) }) (else_clause "else {\n          pFVar5 = DAT_000b42d8;\n          if ((DAT_000b42c4 == (FILE *)0x0) && (DAT_000b42c1 == '\0')) goto LAB_0003e47a;\n        }" else (compound_statement "{\n          pFVar5 = DAT_000b42d8;\n          if ((DAT_000b42c4 == (FILE *)0x0) && (DAT_000b42c1 == '\0')) goto LAB_0003e47a;\n        }" { (expression_statement "pFVar5 = DAT_000b42d8;" (assignment_expression "pFVar5 = DAT_000b42d8" identifier = identifier) ;) (if_statement "if ((DAT_000b42c4 == (FILE *)0x0) && (DAT_000b42c1 == '\0')) goto LAB_0003e47a;" if (parenthesized_expression "((DAT_000b42c4 == (FILE *)0x0) && (DAT_000b42c1 == '\0'))" ( (binary_expression "(DAT_000b42c4 == (FILE *)0x0) && (DAT_000b42c1 == '\0')" (parenthesized_expression "(DAT_000b42c4 == (FILE *)0x0)" ( (binary_expression "DAT_000b42c4 == (FILE *)0x0" identifier == (cast_expression "(FILE *)0x0" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(DAT_000b42c1 == '\0')" ( (binary_expression "DAT_000b42c1 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) ))) )) (goto_statement "goto LAB_0003e47a;" goto statement_identifier ;)) }))) }) (else_clause "else {\n        if (DAT_000b42c1 == '\0') {\nLAB_0003e478:\n          pFVar5 = (FILE *)0x0;\nLAB_0003e47a:\n          __vfprintf_chk(pFVar5,1,param_1,&stack0x00000008);\n          goto LAB_0003e439;\n        }\n        pFVar5 = (FILE *)0x0;\n        pFVar4 = (FILE *)0x0;\n      }" else (compound_statement "{\n        if (DAT_000b42c1 == '\0') {\nLAB_0003e478:\n          pFVar5 = (FILE *)0x0;\nLAB_0003e47a:\n          __vfprintf_chk(pFVar5,1,param_1,&stack0x00000008);\n          goto LAB_0003e439;\n        }\n        pFVar5 = (FILE *)0x0;\n        pFVar4 = (FILE *)0x0;\n      }" { (if_statement "if (DAT_000b42c1 == '\0') {\nLAB_0003e478:\n          pFVar5 = (FILE *)0x0;\nLAB_0003e47a:\n          __vfprintf_chk(pFVar5,1,param_1,&stack0x00000008);\n          goto LAB_0003e439;\n        }" if (parenthesized_expression "(DAT_000b42c1 == '\0')" ( (binary_expression "DAT_000b42c1 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\nLAB_0003e478:\n          pFVar5 = (FILE *)0x0;\nLAB_0003e47a:\n          __vfprintf_chk(pFVar5,1,param_1,&stack0x00000008);\n          goto LAB_0003e439;\n        }" { (labeled_statement "LAB_0003e478:\n          pFVar5 = (FILE *)0x0;" statement_identifier : (expression_statement "pFVar5 = (FILE *)0x0;" (assignment_expression "pFVar5 = (FILE *)0x0" identifier = (cast_expression "(FILE *)0x0" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (labeled_statement "LAB_0003e47a:\n          __vfprintf_chk(pFVar5,1,param_1,&stack0x00000008);" statement_identifier : (expression_statement "__vfprintf_chk(pFVar5,1,param_1,&stack0x00000008);" (call_expression "__vfprintf_chk(pFVar5,1,param_1,&stack0x00000008)" identifier (argument_list "(pFVar5,1,param_1,&stack0x00000008)" ( identifier , number_literal , identifier , (pointer_expression "&stack0x00000008" & identifier) ))) ;)) (goto_statement "goto LAB_0003e439;" goto statement_identifier ;) })) (expression_statement "pFVar5 = (FILE *)0x0;" (assignment_expression "pFVar5 = (FILE *)0x0" identifier = (cast_expression "(FILE *)0x0" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pFVar4 = (FILE *)0x0;" (assignment_expression "pFVar4 = (FILE *)0x0" identifier = (cast_expression "(FILE *)0x0" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) (expression_statement "__s = local_ac;" (assignment_expression "__s = local_ac" identifier = identifier) ;) (if_statement "if (local_a4 == 0) {\n        local_a4 = 0x80;\n        __s = local_a0;\n      }" if (parenthesized_expression "(local_a4 == 0)" ( (binary_expression "local_a4 == 0" identifier == number_literal) )) (compound_statement "{\n        local_a4 = 0x80;\n        __s = local_a0;\n      }" { (expression_statement "local_a4 = 0x80;" (assignment_expression "local_a4 = 0x80" identifier = number_literal) ;) (expression_statement "__s = local_a0;" (assignment_expression "__s = local_a0" identifier = identifier) ;) })) (expression_statement "iVar3 = __vsnprintf_chk(__s,local_a4,1,0xffffffff,param_1,&stack0x00000008);" (assignment_expression "iVar3 = __vsnprintf_chk(__s,local_a4,1,0xffffffff,param_1,&stack0x00000008)" identifier = (call_expression "__vsnprintf_chk(__s,local_a4,1,0xffffffff,param_1,&stack0x00000008)" identifier (argument_list "(__s,local_a4,1,0xffffffff,param_1,&stack0x00000008)" ( identifier , identifier , number_literal , number_literal , identifier , (pointer_expression "&stack0x00000008" & identifier) )))) ;) (if_statement "if (iVar3 == -1) {\n        local_a4 = local_a4 * 2;\n      }\n      else {\n        if (iVar3 < local_a4) goto code_r0x0003e3f3;\n        local_a4 = iVar3 + 1;\n      }" if (parenthesized_expression "(iVar3 == -1)" ( (binary_expression "iVar3 == -1" identifier == number_literal) )) (compound_statement "{\n        local_a4 = local_a4 * 2;\n      }" { (expression_statement "local_a4 = local_a4 * 2;" (assignment_expression "local_a4 = local_a4 * 2" identifier = (binary_expression "local_a4 * 2" identifier * number_literal)) ;) }) (else_clause "else {\n        if (iVar3 < local_a4) goto code_r0x0003e3f3;\n        local_a4 = iVar3 + 1;\n      }" else (compound_statement "{\n        if (iVar3 < local_a4) goto code_r0x0003e3f3;\n        local_a4 = iVar3 + 1;\n      }" { (if_statement "if (iVar3 < local_a4) goto code_r0x0003e3f3;" if (parenthesized_expression "(iVar3 < local_a4)" ( (binary_expression "iVar3 < local_a4" identifier < identifier) )) (goto_statement "goto code_r0x0003e3f3;" goto statement_identifier ;)) (expression_statement "local_a4 = iVar3 + 1;" (assignment_expression "local_a4 = iVar3 + 1" identifier = (binary_expression "iVar3 + 1" identifier + number_literal)) ;) }))) (expression_statement "local_ac = (char *)FUN_00062e80(local_ac,local_a4);" (assignment_expression "local_ac = (char *)FUN_00062e80(local_ac,local_a4)" identifier = (cast_expression "(char *)FUN_00062e80(local_ac,local_a4)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00062e80(local_ac,local_a4)" identifier (argument_list "(local_ac,local_a4)" ( identifier , identifier ))))) ;) (expression_statement "cVar2 = DAT_000b42c2;" (assignment_expression "cVar2 = DAT_000b42c2" identifier = identifier) ;) }) while (parenthesized_expression "( true )" ( true )) ;) })) (goto_statement "goto LAB_0003e31e;" goto statement_identifier ;) (labeled_statement "code_r0x0003e3f3:\n  if (DAT_000b42c1 != '\0') {\n    FUN_0003d3d0();\n  }" statement_identifier : (if_statement "if (DAT_000b42c1 != '\0') {\n    FUN_0003d3d0();\n  }" if (parenthesized_expression "(DAT_000b42c1 != '\0')" ( (binary_expression "DAT_000b42c1 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    FUN_0003d3d0();\n  }" { (expression_statement "FUN_0003d3d0();" (call_expression "FUN_0003d3d0()" identifier (argument_list "()" ( ))) ;) }))) (expression_statement "fputs(__s,pFVar5);" (call_expression "fputs(__s,pFVar5)" identifier (argument_list "(__s,pFVar5)" ( identifier , identifier ))) ;) (if_statement "if (pFVar4 != (FILE *)0x0) {\n    fputs(__s,pFVar4);\n  }" if (parenthesized_expression "(pFVar4 != (FILE *)0x0)" ( (binary_expression "pFVar4 != (FILE *)0x0" identifier != (cast_expression "(FILE *)0x0" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    fputs(__s,pFVar4);\n  }" { (expression_statement "fputs(__s,pFVar4);" (call_expression "fputs(__s,pFVar4)" identifier (argument_list "(__s,pFVar4)" ( identifier , identifier ))) ;) })) (expression_statement "free(local_ac);" (call_expression "free(local_ac)" identifier (argument_list "(local_ac)" ( identifier ))) ;) (labeled_statement "LAB_0003e439:\n  if (DAT_000af150 == '\0') {\n    DAT_000b42c0 = 1;\n    goto LAB_0003e31e;\n  }" statement_identifier : (if_statement "if (DAT_000af150 == '\0') {\n    DAT_000b42c0 = 1;\n    goto LAB_0003e31e;\n  }" if (parenthesized_expression "(DAT_000af150 == '\0')" ( (binary_expression "DAT_000af150 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    DAT_000b42c0 = 1;\n    goto LAB_0003e31e;\n  }" { (expression_statement "DAT_000b42c0 = 1;" (assignment_expression "DAT_000b42c0 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_0003e31e;" goto statement_identifier ;) }))) (if_statement "if (DAT_000b42c2 == '\0') {\n    pFVar5 = DAT_000b42c4;\n    if (DAT_000b42d8 == (FILE *)0x0) {\n      pFVar4 = *(FILE **)PTR_stderr_000aefc0;\n      if (DAT_000b42c4 == (FILE *)0x0) {\n        pFVar5 = pFVar4;\n        if (pFVar4 == (FILE *)0x0) goto LAB_0003e4cd;\nLAB_0003e4b5:\n        FUN_000632b0(pFVar4);\n      }\n      else if (pFVar4 != (FILE *)0x0) goto LAB_0003e4b5;\n      FUN_000632b0(pFVar5);\n    }\n    else {\n      pFVar4 = DAT_000b42d8;\n      if (DAT_000b42c4 != (FILE *)0x0) goto LAB_0003e4b5;\n      FUN_000632b0(DAT_000b42d8);\n    }\n  }" if (parenthesized_expression "(DAT_000b42c2 == '\0')" ( (binary_expression "DAT_000b42c2 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    pFVar5 = DAT_000b42c4;\n    if (DAT_000b42d8 == (FILE *)0x0) {\n      pFVar4 = *(FILE **)PTR_stderr_000aefc0;\n      if (DAT_000b42c4 == (FILE *)0x0) {\n        pFVar5 = pFVar4;\n        if (pFVar4 == (FILE *)0x0) goto LAB_0003e4cd;\nLAB_0003e4b5:\n        FUN_000632b0(pFVar4);\n      }\n      else if (pFVar4 != (FILE *)0x0) goto LAB_0003e4b5;\n      FUN_000632b0(pFVar5);\n    }\n    else {\n      pFVar4 = DAT_000b42d8;\n      if (DAT_000b42c4 != (FILE *)0x0) goto LAB_0003e4b5;\n      FUN_000632b0(DAT_000b42d8);\n    }\n  }" { (expression_statement "pFVar5 = DAT_000b42c4;" (assignment_expression "pFVar5 = DAT_000b42c4" identifier = identifier) ;) (if_statement "if (DAT_000b42d8 == (FILE *)0x0) {\n      pFVar4 = *(FILE **)PTR_stderr_000aefc0;\n      if (DAT_000b42c4 == (FILE *)0x0) {\n        pFVar5 = pFVar4;\n        if (pFVar4 == (FILE *)0x0) goto LAB_0003e4cd;\nLAB_0003e4b5:\n        FUN_000632b0(pFVar4);\n      }\n      else if (pFVar4 != (FILE *)0x0) goto LAB_0003e4b5;\n      FUN_000632b0(pFVar5);\n    }\n    else {\n      pFVar4 = DAT_000b42d8;\n      if (DAT_000b42c4 != (FILE *)0x0) goto LAB_0003e4b5;\n      FUN_000632b0(DAT_000b42d8);\n    }" if (parenthesized_expression "(DAT_000b42d8 == (FILE *)0x0)" ( (binary_expression "DAT_000b42d8 == (FILE *)0x0" identifier == (cast_expression "(FILE *)0x0" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      pFVar4 = *(FILE **)PTR_stderr_000aefc0;\n      if (DAT_000b42c4 == (FILE *)0x0) {\n        pFVar5 = pFVar4;\n        if (pFVar4 == (FILE *)0x0) goto LAB_0003e4cd;\nLAB_0003e4b5:\n        FUN_000632b0(pFVar4);\n      }\n      else if (pFVar4 != (FILE *)0x0) goto LAB_0003e4b5;\n      FUN_000632b0(pFVar5);\n    }" { (expression_statement "pFVar4 = *(FILE **)PTR_stderr_000aefc0;" (assignment_expression "pFVar4 = *(FILE **)PTR_stderr_000aefc0" identifier = (pointer_expression "*(FILE **)PTR_stderr_000aefc0" * (cast_expression "(FILE **)PTR_stderr_000aefc0" ( (type_descriptor "FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (if_statement "if (DAT_000b42c4 == (FILE *)0x0) {\n        pFVar5 = pFVar4;\n        if (pFVar4 == (FILE *)0x0) goto LAB_0003e4cd;\nLAB_0003e4b5:\n        FUN_000632b0(pFVar4);\n      }\n      else if (pFVar4 != (FILE *)0x0) goto LAB_0003e4b5;" if (parenthesized_expression "(DAT_000b42c4 == (FILE *)0x0)" ( (binary_expression "DAT_000b42c4 == (FILE *)0x0" identifier == (cast_expression "(FILE *)0x0" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        pFVar5 = pFVar4;\n        if (pFVar4 == (FILE *)0x0) goto LAB_0003e4cd;\nLAB_0003e4b5:\n        FUN_000632b0(pFVar4);\n      }" { (expression_statement "pFVar5 = pFVar4;" (assignment_expression "pFVar5 = pFVar4" identifier = identifier) ;) (if_statement "if (pFVar4 == (FILE *)0x0) goto LAB_0003e4cd;" if (parenthesized_expression "(pFVar4 == (FILE *)0x0)" ( (binary_expression "pFVar4 == (FILE *)0x0" identifier == (cast_expression "(FILE *)0x0" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0003e4cd;" goto statement_identifier ;)) (labeled_statement "LAB_0003e4b5:\n        FUN_000632b0(pFVar4);" statement_identifier : (expression_statement "FUN_000632b0(pFVar4);" (call_expression "FUN_000632b0(pFVar4)" identifier (argument_list "(pFVar4)" ( identifier ))) ;)) }) (else_clause "else if (pFVar4 != (FILE *)0x0) goto LAB_0003e4b5;" else (if_statement "if (pFVar4 != (FILE *)0x0) goto LAB_0003e4b5;" if (parenthesized_expression "(pFVar4 != (FILE *)0x0)" ( (binary_expression "pFVar4 != (FILE *)0x0" identifier != (cast_expression "(FILE *)0x0" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0003e4b5;" goto statement_identifier ;)))) (expression_statement "FUN_000632b0(pFVar5);" (call_expression "FUN_000632b0(pFVar5)" identifier (argument_list "(pFVar5)" ( identifier ))) ;) }) (else_clause "else {\n      pFVar4 = DAT_000b42d8;\n      if (DAT_000b42c4 != (FILE *)0x0) goto LAB_0003e4b5;\n      FUN_000632b0(DAT_000b42d8);\n    }" else (compound_statement "{\n      pFVar4 = DAT_000b42d8;\n      if (DAT_000b42c4 != (FILE *)0x0) goto LAB_0003e4b5;\n      FUN_000632b0(DAT_000b42d8);\n    }" { (expression_statement "pFVar4 = DAT_000b42d8;" (assignment_expression "pFVar4 = DAT_000b42d8" identifier = identifier) ;) (if_statement "if (DAT_000b42c4 != (FILE *)0x0) goto LAB_0003e4b5;" if (parenthesized_expression "(DAT_000b42c4 != (FILE *)0x0)" ( (binary_expression "DAT_000b42c4 != (FILE *)0x0" identifier != (cast_expression "(FILE *)0x0" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0003e4b5;" goto statement_identifier ;)) (expression_statement "FUN_000632b0(DAT_000b42d8);" (call_expression "FUN_000632b0(DAT_000b42d8)" identifier (argument_list "(DAT_000b42d8)" ( identifier ))) ;) }))) })) (labeled_statement "LAB_0003e4cd:\n  DAT_000b42c0 = 0;" statement_identifier : (expression_statement "DAT_000b42c0 = 0;" (assignment_expression "DAT_000b42c0 = 0" identifier = number_literal) ;)) (labeled_statement "LAB_0003e31e:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0007ad20();\n  }" statement_identifier : (if_statement "if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0007ad20();\n  }" if (parenthesized_expression "(local_20 != *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "local_20 != *(int *)(in_GS_OFFSET + 0x14)" identifier != (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    FUN_0007ad20();\n  }" { comment (expression_statement "FUN_0007ad20();" (call_expression "FUN_0007ad20()" identifier (argument_list "()" ( ))) ;) }))) (return_statement "return;" return ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* WARNING: Unknown calling convention */\n/* WARNING: Enum "anon_enum_32": Some values do not have unique names */\n\nvoid debug_logprintf(char *fmt,...)\n\n{\n  int iVar1;\n  undefined *puVar2;\n  char cVar3;\n  int iVar4;\n  FILE *stream;\n  FILE *pFVar5;\n  FILE *pFVar6;\n  FILE *__stream;\n  char *s;\n  int in_GS_OFFSET;\n  logvprintf_state lpstate;\n  char smallmsg [128];\n  \n  iVar1 = *(int *)(in_GS_OFFSET + 0x14);\n  if ((opt.debug) &&\n     (check_redirect_output(), puVar2 = PTR_stderr_000aefc0, inhibit_logging == false)) {\n    lpstate.bigmsg = (char *)0x0;\n    lpstate.allocated = 0;\n    cVar3 = '\0';\n    do {\n      if (cVar3 == '\0') {\n        pFVar5 = (FILE *)warclogfp;\n        if (logfp == (FILE *)0x0) {\n          __stream = *(FILE **)puVar2;\n          if (((warclogfp == (FILE *)0x0) && (pFVar5 = __stream, save_context_p != true)) &&\n             (__stream == (FILE *)0x0)) goto LAB_0003e478;\n        }\n        else {\n          __stream = (FILE *)logfp;\n          if ((warclogfp == (FILE *)0x0) && (pFVar6 = logfp, save_context_p == false))\n          goto LAB_0003e47a;\n        }\n      }\n      else {\n        if (save_context_p == false) {\nLAB_0003e478:\n          pFVar6 = (FILE *)0x0;\nLAB_0003e47a:\n          __vfprintf_chk(pFVar6,1,fmt,&stack0x00000008);\n          goto LAB_0003e439;\n        }\n        __stream = (FILE *)0x0;\n        pFVar5 = (FILE *)0x0;\n      }\n      s = lpstate.bigmsg;\n      if (lpstate.allocated == 0) {\n        lpstate.allocated = 0x80;\n        s = smallmsg;\n      }\n      iVar4 = __vsnprintf_chk(s,lpstate.allocated,1,0xffffffff,fmt,&stack0x00000008);\n      if (iVar4 == -1) {\n        lpstate.allocated = lpstate.allocated * 2;\n      }\n      else {\n        if (iVar4 < lpstate.allocated) goto code_r0x0003e3f3;\n        lpstate.allocated = iVar4 + 1;\n      }\n      lpstate.bigmsg = (char *)xrealloc(lpstate.bigmsg,lpstate.allocated);\n      cVar3 = inhibit_logging;\n    } while( true );\n  }\n  goto LAB_0003e31e;\ncode_r0x0003e3f3:\n  if (save_context_p != false) {\n    saved_append(s);\n  }\n  fputs(s,__stream);\n  if (pFVar5 != (FILE *)0x0) {\n    fputs(s,pFVar5);\n  }\n  free(lpstate.bigmsg);\nLAB_0003e439:\n  if (flush_log_p == false) {\n    needs_flushing = true;\n    goto LAB_0003e31e;\n  }\n  if (inhibit_logging == false) {\n    pFVar6 = warclogfp;\n    if (logfp == (FILE *)0x0) {\n      stream = *(FILE **)PTR_stderr_000aefc0;\n      if (warclogfp == (FILE *)0x0) {\n        pFVar6 = stream;\n        if (stream == (FILE *)0x0) goto LAB_0003e4cd;\nLAB_0003e4b5:\n        rpl_fflush(stream);\n      }\n      else if (stream != (FILE *)0x0) goto LAB_0003e4b5;\n      rpl_fflush(pFVar6);\n    }\n    else {\n      stream = logfp;\n      if (warclogfp != (FILE *)0x0) goto LAB_0003e4b5;\n      rpl_fflush(logfp);\n    }\n  }\nLAB_0003e4cd:\n  needs_flushing = false;\nLAB_0003e31e:\n  if (iVar1 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail_local();\n  }\n  return;\n}\n\n" comment comment comment (function_definition "void debug_logprintf(char *fmt,...)\n\n{\n  int iVar1;\n  undefined *puVar2;\n  char cVar3;\n  int iVar4;\n  FILE *stream;\n  FILE *pFVar5;\n  FILE *pFVar6;\n  FILE *__stream;\n  char *s;\n  int in_GS_OFFSET;\n  logvprintf_state lpstate;\n  char smallmsg [128];\n  \n  iVar1 = *(int *)(in_GS_OFFSET + 0x14);\n  if ((opt.debug) &&\n     (check_redirect_output(), puVar2 = PTR_stderr_000aefc0, inhibit_logging == false)) {\n    lpstate.bigmsg = (char *)0x0;\n    lpstate.allocated = 0;\n    cVar3 = '\0';\n    do {\n      if (cVar3 == '\0') {\n        pFVar5 = (FILE *)warclogfp;\n        if (logfp == (FILE *)0x0) {\n          __stream = *(FILE **)puVar2;\n          if (((warclogfp == (FILE *)0x0) && (pFVar5 = __stream, save_context_p != true)) &&\n             (__stream == (FILE *)0x0)) goto LAB_0003e478;\n        }\n        else {\n          __stream = (FILE *)logfp;\n          if ((warclogfp == (FILE *)0x0) && (pFVar6 = logfp, save_context_p == false))\n          goto LAB_0003e47a;\n        }\n      }\n      else {\n        if (save_context_p == false) {\nLAB_0003e478:\n          pFVar6 = (FILE *)0x0;\nLAB_0003e47a:\n          __vfprintf_chk(pFVar6,1,fmt,&stack0x00000008);\n          goto LAB_0003e439;\n        }\n        __stream = (FILE *)0x0;\n        pFVar5 = (FILE *)0x0;\n      }\n      s = lpstate.bigmsg;\n      if (lpstate.allocated == 0) {\n        lpstate.allocated = 0x80;\n        s = smallmsg;\n      }\n      iVar4 = __vsnprintf_chk(s,lpstate.allocated,1,0xffffffff,fmt,&stack0x00000008);\n      if (iVar4 == -1) {\n        lpstate.allocated = lpstate.allocated * 2;\n      }\n      else {\n        if (iVar4 < lpstate.allocated) goto code_r0x0003e3f3;\n        lpstate.allocated = iVar4 + 1;\n      }\n      lpstate.bigmsg = (char *)xrealloc(lpstate.bigmsg,lpstate.allocated);\n      cVar3 = inhibit_logging;\n    } while( true );\n  }\n  goto LAB_0003e31e;\ncode_r0x0003e3f3:\n  if (save_context_p != false) {\n    saved_append(s);\n  }\n  fputs(s,__stream);\n  if (pFVar5 != (FILE *)0x0) {\n    fputs(s,pFVar5);\n  }\n  free(lpstate.bigmsg);\nLAB_0003e439:\n  if (flush_log_p == false) {\n    needs_flushing = true;\n    goto LAB_0003e31e;\n  }\n  if (inhibit_logging == false) {\n    pFVar6 = warclogfp;\n    if (logfp == (FILE *)0x0) {\n      stream = *(FILE **)PTR_stderr_000aefc0;\n      if (warclogfp == (FILE *)0x0) {\n        pFVar6 = stream;\n        if (stream == (FILE *)0x0) goto LAB_0003e4cd;\nLAB_0003e4b5:\n        rpl_fflush(stream);\n      }\n      else if (stream != (FILE *)0x0) goto LAB_0003e4b5;\n      rpl_fflush(pFVar6);\n    }\n    else {\n      stream = logfp;\n      if (warclogfp != (FILE *)0x0) goto LAB_0003e4b5;\n      rpl_fflush(logfp);\n    }\n  }\nLAB_0003e4cd:\n  needs_flushing = false;\nLAB_0003e31e:\n  if (iVar1 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail_local();\n  }\n  return;\n}" primitive_type (function_declarator "debug_logprintf(char *fmt,...)" identifier (parameter_list "(char *fmt,...)" ( (parameter_declaration "char *fmt" primitive_type (pointer_declarator "*fmt" * identifier)) , (variadic_parameter "..." ...) ))) (compound_statement "{\n  int iVar1;\n  undefined *puVar2;\n  char cVar3;\n  int iVar4;\n  FILE *stream;\n  FILE *pFVar5;\n  FILE *pFVar6;\n  FILE *__stream;\n  char *s;\n  int in_GS_OFFSET;\n  logvprintf_state lpstate;\n  char smallmsg [128];\n  \n  iVar1 = *(int *)(in_GS_OFFSET + 0x14);\n  if ((opt.debug) &&\n     (check_redirect_output(), puVar2 = PTR_stderr_000aefc0, inhibit_logging == false)) {\n    lpstate.bigmsg = (char *)0x0;\n    lpstate.allocated = 0;\n    cVar3 = '\0';\n    do {\n      if (cVar3 == '\0') {\n        pFVar5 = (FILE *)warclogfp;\n        if (logfp == (FILE *)0x0) {\n          __stream = *(FILE **)puVar2;\n          if (((warclogfp == (FILE *)0x0) && (pFVar5 = __stream, save_context_p != true)) &&\n             (__stream == (FILE *)0x0)) goto LAB_0003e478;\n        }\n        else {\n          __stream = (FILE *)logfp;\n          if ((warclogfp == (FILE *)0x0) && (pFVar6 = logfp, save_context_p == false))\n          goto LAB_0003e47a;\n        }\n      }\n      else {\n        if (save_context_p == false) {\nLAB_0003e478:\n          pFVar6 = (FILE *)0x0;\nLAB_0003e47a:\n          __vfprintf_chk(pFVar6,1,fmt,&stack0x00000008);\n          goto LAB_0003e439;\n        }\n        __stream = (FILE *)0x0;\n        pFVar5 = (FILE *)0x0;\n      }\n      s = lpstate.bigmsg;\n      if (lpstate.allocated == 0) {\n        lpstate.allocated = 0x80;\n        s = smallmsg;\n      }\n      iVar4 = __vsnprintf_chk(s,lpstate.allocated,1,0xffffffff,fmt,&stack0x00000008);\n      if (iVar4 == -1) {\n        lpstate.allocated = lpstate.allocated * 2;\n      }\n      else {\n        if (iVar4 < lpstate.allocated) goto code_r0x0003e3f3;\n        lpstate.allocated = iVar4 + 1;\n      }\n      lpstate.bigmsg = (char *)xrealloc(lpstate.bigmsg,lpstate.allocated);\n      cVar3 = inhibit_logging;\n    } while( true );\n  }\n  goto LAB_0003e31e;\ncode_r0x0003e3f3:\n  if (save_context_p != false) {\n    saved_append(s);\n  }\n  fputs(s,__stream);\n  if (pFVar5 != (FILE *)0x0) {\n    fputs(s,pFVar5);\n  }\n  free(lpstate.bigmsg);\nLAB_0003e439:\n  if (flush_log_p == false) {\n    needs_flushing = true;\n    goto LAB_0003e31e;\n  }\n  if (inhibit_logging == false) {\n    pFVar6 = warclogfp;\n    if (logfp == (FILE *)0x0) {\n      stream = *(FILE **)PTR_stderr_000aefc0;\n      if (warclogfp == (FILE *)0x0) {\n        pFVar6 = stream;\n        if (stream == (FILE *)0x0) goto LAB_0003e4cd;\nLAB_0003e4b5:\n        rpl_fflush(stream);\n      }\n      else if (stream != (FILE *)0x0) goto LAB_0003e4b5;\n      rpl_fflush(pFVar6);\n    }\n    else {\n      stream = logfp;\n      if (warclogfp != (FILE *)0x0) goto LAB_0003e4b5;\n      rpl_fflush(logfp);\n    }\n  }\nLAB_0003e4cd:\n  needs_flushing = false;\nLAB_0003e31e:\n  if (iVar1 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail_local();\n  }\n  return;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "char cVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "FILE *stream;" type_identifier (pointer_declarator "*stream" * identifier) ;) (declaration "FILE *pFVar5;" type_identifier (pointer_declarator "*pFVar5" * identifier) ;) (declaration "FILE *pFVar6;" type_identifier (pointer_declarator "*pFVar6" * identifier) ;) (declaration "FILE *__stream;" type_identifier (pointer_declarator "*__stream" * identifier) ;) (declaration "char *s;" primitive_type (pointer_declarator "*s" * identifier) ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "logvprintf_state lpstate;" type_identifier identifier ;) (declaration "char smallmsg [128];" primitive_type (array_declarator "smallmsg [128]" identifier [ number_literal ]) ;) (expression_statement "iVar1 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "iVar1 = *(int *)(in_GS_OFFSET + 0x14)" identifier = (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) ;) (if_statement "if ((opt.debug) &&\n     (check_redirect_output(), puVar2 = PTR_stderr_000aefc0, inhibit_logging == false)) {\n    lpstate.bigmsg = (char *)0x0;\n    lpstate.allocated = 0;\n    cVar3 = '\0';\n    do {\n      if (cVar3 == '\0') {\n        pFVar5 = (FILE *)warclogfp;\n        if (logfp == (FILE *)0x0) {\n          __stream = *(FILE **)puVar2;\n          if (((warclogfp == (FILE *)0x0) && (pFVar5 = __stream, save_context_p != true)) &&\n             (__stream == (FILE *)0x0)) goto LAB_0003e478;\n        }\n        else {\n          __stream = (FILE *)logfp;\n          if ((warclogfp == (FILE *)0x0) && (pFVar6 = logfp, save_context_p == false))\n          goto LAB_0003e47a;\n        }\n      }\n      else {\n        if (save_context_p == false) {\nLAB_0003e478:\n          pFVar6 = (FILE *)0x0;\nLAB_0003e47a:\n          __vfprintf_chk(pFVar6,1,fmt,&stack0x00000008);\n          goto LAB_0003e439;\n        }\n        __stream = (FILE *)0x0;\n        pFVar5 = (FILE *)0x0;\n      }\n      s = lpstate.bigmsg;\n      if (lpstate.allocated == 0) {\n        lpstate.allocated = 0x80;\n        s = smallmsg;\n      }\n      iVar4 = __vsnprintf_chk(s,lpstate.allocated,1,0xffffffff,fmt,&stack0x00000008);\n      if (iVar4 == -1) {\n        lpstate.allocated = lpstate.allocated * 2;\n      }\n      else {\n        if (iVar4 < lpstate.allocated) goto code_r0x0003e3f3;\n        lpstate.allocated = iVar4 + 1;\n      }\n      lpstate.bigmsg = (char *)xrealloc(lpstate.bigmsg,lpstate.allocated);\n      cVar3 = inhibit_logging;\n    } while( true );\n  }" if (parenthesized_expression "((opt.debug) &&\n     (check_redirect_output(), puVar2 = PTR_stderr_000aefc0, inhibit_logging == false))" ( (binary_expression "(opt.debug) &&\n     (check_redirect_output(), puVar2 = PTR_stderr_000aefc0, inhibit_logging == false)" (parenthesized_expression "(opt.debug)" ( (field_expression "opt.debug" identifier . field_identifier) )) && (parenthesized_expression "(check_redirect_output(), puVar2 = PTR_stderr_000aefc0, inhibit_logging == false)" ( (comma_expression "check_redirect_output(), puVar2 = PTR_stderr_000aefc0, inhibit_logging == false" (call_expression "check_redirect_output()" identifier (argument_list "()" ( ))) , (comma_expression "puVar2 = PTR_stderr_000aefc0, inhibit_logging == false" (assignment_expression "puVar2 = PTR_stderr_000aefc0" identifier = identifier) , (binary_expression "inhibit_logging == false" identifier == false))) ))) )) (compound_statement "{\n    lpstate.bigmsg = (char *)0x0;\n    lpstate.allocated = 0;\n    cVar3 = '\0';\n    do {\n      if (cVar3 == '\0') {\n        pFVar5 = (FILE *)warclogfp;\n        if (logfp == (FILE *)0x0) {\n          __stream = *(FILE **)puVar2;\n          if (((warclogfp == (FILE *)0x0) && (pFVar5 = __stream, save_context_p != true)) &&\n             (__stream == (FILE *)0x0)) goto LAB_0003e478;\n        }\n        else {\n          __stream = (FILE *)logfp;\n          if ((warclogfp == (FILE *)0x0) && (pFVar6 = logfp, save_context_p == false))\n          goto LAB_0003e47a;\n        }\n      }\n      else {\n        if (save_context_p == false) {\nLAB_0003e478:\n          pFVar6 = (FILE *)0x0;\nLAB_0003e47a:\n          __vfprintf_chk(pFVar6,1,fmt,&stack0x00000008);\n          goto LAB_0003e439;\n        }\n        __stream = (FILE *)0x0;\n        pFVar5 = (FILE *)0x0;\n      }\n      s = lpstate.bigmsg;\n      if (lpstate.allocated == 0) {\n        lpstate.allocated = 0x80;\n        s = smallmsg;\n      }\n      iVar4 = __vsnprintf_chk(s,lpstate.allocated,1,0xffffffff,fmt,&stack0x00000008);\n      if (iVar4 == -1) {\n        lpstate.allocated = lpstate.allocated * 2;\n      }\n      else {\n        if (iVar4 < lpstate.allocated) goto code_r0x0003e3f3;\n        lpstate.allocated = iVar4 + 1;\n      }\n      lpstate.bigmsg = (char *)xrealloc(lpstate.bigmsg,lpstate.allocated);\n      cVar3 = inhibit_logging;\n    } while( true );\n  }" { (expression_statement "lpstate.bigmsg = (char *)0x0;" (assignment_expression "lpstate.bigmsg = (char *)0x0" (field_expression "lpstate.bigmsg" identifier . field_identifier) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "lpstate.allocated = 0;" (assignment_expression "lpstate.allocated = 0" (field_expression "lpstate.allocated" identifier . field_identifier) = number_literal) ;) (expression_statement "cVar3 = '\0';" (assignment_expression "cVar3 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (do_statement "do {\n      if (cVar3 == '\0') {\n        pFVar5 = (FILE *)warclogfp;\n        if (logfp == (FILE *)0x0) {\n          __stream = *(FILE **)puVar2;\n          if (((warclogfp == (FILE *)0x0) && (pFVar5 = __stream, save_context_p != true)) &&\n             (__stream == (FILE *)0x0)) goto LAB_0003e478;\n        }\n        else {\n          __stream = (FILE *)logfp;\n          if ((warclogfp == (FILE *)0x0) && (pFVar6 = logfp, save_context_p == false))\n          goto LAB_0003e47a;\n        }\n      }\n      else {\n        if (save_context_p == false) {\nLAB_0003e478:\n          pFVar6 = (FILE *)0x0;\nLAB_0003e47a:\n          __vfprintf_chk(pFVar6,1,fmt,&stack0x00000008);\n          goto LAB_0003e439;\n        }\n        __stream = (FILE *)0x0;\n        pFVar5 = (FILE *)0x0;\n      }\n      s = lpstate.bigmsg;\n      if (lpstate.allocated == 0) {\n        lpstate.allocated = 0x80;\n        s = smallmsg;\n      }\n      iVar4 = __vsnprintf_chk(s,lpstate.allocated,1,0xffffffff,fmt,&stack0x00000008);\n      if (iVar4 == -1) {\n        lpstate.allocated = lpstate.allocated * 2;\n      }\n      else {\n        if (iVar4 < lpstate.allocated) goto code_r0x0003e3f3;\n        lpstate.allocated = iVar4 + 1;\n      }\n      lpstate.bigmsg = (char *)xrealloc(lpstate.bigmsg,lpstate.allocated);\n      cVar3 = inhibit_logging;\n    } while( true );" do (compound_statement "{\n      if (cVar3 == '\0') {\n        pFVar5 = (FILE *)warclogfp;\n        if (logfp == (FILE *)0x0) {\n          __stream = *(FILE **)puVar2;\n          if (((warclogfp == (FILE *)0x0) && (pFVar5 = __stream, save_context_p != true)) &&\n             (__stream == (FILE *)0x0)) goto LAB_0003e478;\n        }\n        else {\n          __stream = (FILE *)logfp;\n          if ((warclogfp == (FILE *)0x0) && (pFVar6 = logfp, save_context_p == false))\n          goto LAB_0003e47a;\n        }\n      }\n      else {\n        if (save_context_p == false) {\nLAB_0003e478:\n          pFVar6 = (FILE *)0x0;\nLAB_0003e47a:\n          __vfprintf_chk(pFVar6,1,fmt,&stack0x00000008);\n          goto LAB_0003e439;\n        }\n        __stream = (FILE *)0x0;\n        pFVar5 = (FILE *)0x0;\n      }\n      s = lpstate.bigmsg;\n      if (lpstate.allocated == 0) {\n        lpstate.allocated = 0x80;\n        s = smallmsg;\n      }\n      iVar4 = __vsnprintf_chk(s,lpstate.allocated,1,0xffffffff,fmt,&stack0x00000008);\n      if (iVar4 == -1) {\n        lpstate.allocated = lpstate.allocated * 2;\n      }\n      else {\n        if (iVar4 < lpstate.allocated) goto code_r0x0003e3f3;\n        lpstate.allocated = iVar4 + 1;\n      }\n      lpstate.bigmsg = (char *)xrealloc(lpstate.bigmsg,lpstate.allocated);\n      cVar3 = inhibit_logging;\n    }" { (if_statement "if (cVar3 == '\0') {\n        pFVar5 = (FILE *)warclogfp;\n        if (logfp == (FILE *)0x0) {\n          __stream = *(FILE **)puVar2;\n          if (((warclogfp == (FILE *)0x0) && (pFVar5 = __stream, save_context_p != true)) &&\n             (__stream == (FILE *)0x0)) goto LAB_0003e478;\n        }\n        else {\n          __stream = (FILE *)logfp;\n          if ((warclogfp == (FILE *)0x0) && (pFVar6 = logfp, save_context_p == false))\n          goto LAB_0003e47a;\n        }\n      }\n      else {\n        if (save_context_p == false) {\nLAB_0003e478:\n          pFVar6 = (FILE *)0x0;\nLAB_0003e47a:\n          __vfprintf_chk(pFVar6,1,fmt,&stack0x00000008);\n          goto LAB_0003e439;\n        }\n        __stream = (FILE *)0x0;\n        pFVar5 = (FILE *)0x0;\n      }" if (parenthesized_expression "(cVar3 == '\0')" ( (binary_expression "cVar3 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        pFVar5 = (FILE *)warclogfp;\n        if (logfp == (FILE *)0x0) {\n          __stream = *(FILE **)puVar2;\n          if (((warclogfp == (FILE *)0x0) && (pFVar5 = __stream, save_context_p != true)) &&\n             (__stream == (FILE *)0x0)) goto LAB_0003e478;\n        }\n        else {\n          __stream = (FILE *)logfp;\n          if ((warclogfp == (FILE *)0x0) && (pFVar6 = logfp, save_context_p == false))\n          goto LAB_0003e47a;\n        }\n      }" { (expression_statement "pFVar5 = (FILE *)warclogfp;" (assignment_expression "pFVar5 = (FILE *)warclogfp" identifier = (cast_expression "(FILE *)warclogfp" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (logfp == (FILE *)0x0) {\n          __stream = *(FILE **)puVar2;\n          if (((warclogfp == (FILE *)0x0) && (pFVar5 = __stream, save_context_p != true)) &&\n             (__stream == (FILE *)0x0)) goto LAB_0003e478;\n        }\n        else {\n          __stream = (FILE *)logfp;\n          if ((warclogfp == (FILE *)0x0) && (pFVar6 = logfp, save_context_p == false))\n          goto LAB_0003e47a;\n        }" if (parenthesized_expression "(logfp == (FILE *)0x0)" ( (binary_expression "logfp == (FILE *)0x0" identifier == (cast_expression "(FILE *)0x0" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          __stream = *(FILE **)puVar2;\n          if (((warclogfp == (FILE *)0x0) && (pFVar5 = __stream, save_context_p != true)) &&\n             (__stream == (FILE *)0x0)) goto LAB_0003e478;\n        }" { (expression_statement "__stream = *(FILE **)puVar2;" (assignment_expression "__stream = *(FILE **)puVar2" identifier = (pointer_expression "*(FILE **)puVar2" * (cast_expression "(FILE **)puVar2" ( (type_descriptor "FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (if_statement "if (((warclogfp == (FILE *)0x0) && (pFVar5 = __stream, save_context_p != true)) &&\n             (__stream == (FILE *)0x0)) goto LAB_0003e478;" if (parenthesized_expression "(((warclogfp == (FILE *)0x0) && (pFVar5 = __stream, save_context_p != true)) &&\n             (__stream == (FILE *)0x0))" ( (binary_expression "((warclogfp == (FILE *)0x0) && (pFVar5 = __stream, save_context_p != true)) &&\n             (__stream == (FILE *)0x0)" (parenthesized_expression "((warclogfp == (FILE *)0x0) && (pFVar5 = __stream, save_context_p != true))" ( (binary_expression "(warclogfp == (FILE *)0x0) && (pFVar5 = __stream, save_context_p != true)" (parenthesized_expression "(warclogfp == (FILE *)0x0)" ( (binary_expression "warclogfp == (FILE *)0x0" identifier == (cast_expression "(FILE *)0x0" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(pFVar5 = __stream, save_context_p != true)" ( (comma_expression "pFVar5 = __stream, save_context_p != true" (assignment_expression "pFVar5 = __stream" identifier = identifier) , (binary_expression "save_context_p != true" identifier != true)) ))) )) && (parenthesized_expression "(__stream == (FILE *)0x0)" ( (binary_expression "__stream == (FILE *)0x0" identifier == (cast_expression "(FILE *)0x0" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (goto_statement "goto LAB_0003e478;" goto statement_identifier ;)) }) (else_clause "else {\n          __stream = (FILE *)logfp;\n          if ((warclogfp == (FILE *)0x0) && (pFVar6 = logfp, save_context_p == false))\n          goto LAB_0003e47a;\n        }" else (compound_statement "{\n          __stream = (FILE *)logfp;\n          if ((warclogfp == (FILE *)0x0) && (pFVar6 = logfp, save_context_p == false))\n          goto LAB_0003e47a;\n        }" { (expression_statement "__stream = (FILE *)logfp;" (assignment_expression "__stream = (FILE *)logfp" identifier = (cast_expression "(FILE *)logfp" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if ((warclogfp == (FILE *)0x0) && (pFVar6 = logfp, save_context_p == false))\n          goto LAB_0003e47a;" if (parenthesized_expression "((warclogfp == (FILE *)0x0) && (pFVar6 = logfp, save_context_p == false))" ( (binary_expression "(warclogfp == (FILE *)0x0) && (pFVar6 = logfp, save_context_p == false)" (parenthesized_expression "(warclogfp == (FILE *)0x0)" ( (binary_expression "warclogfp == (FILE *)0x0" identifier == (cast_expression "(FILE *)0x0" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(pFVar6 = logfp, save_context_p == false)" ( (comma_expression "pFVar6 = logfp, save_context_p == false" (assignment_expression "pFVar6 = logfp" identifier = identifier) , (binary_expression "save_context_p == false" identifier == false)) ))) )) (goto_statement "goto LAB_0003e47a;" goto statement_identifier ;)) }))) }) (else_clause "else {\n        if (save_context_p == false) {\nLAB_0003e478:\n          pFVar6 = (FILE *)0x0;\nLAB_0003e47a:\n          __vfprintf_chk(pFVar6,1,fmt,&stack0x00000008);\n          goto LAB_0003e439;\n        }\n        __stream = (FILE *)0x0;\n        pFVar5 = (FILE *)0x0;\n      }" else (compound_statement "{\n        if (save_context_p == false) {\nLAB_0003e478:\n          pFVar6 = (FILE *)0x0;\nLAB_0003e47a:\n          __vfprintf_chk(pFVar6,1,fmt,&stack0x00000008);\n          goto LAB_0003e439;\n        }\n        __stream = (FILE *)0x0;\n        pFVar5 = (FILE *)0x0;\n      }" { (if_statement "if (save_context_p == false) {\nLAB_0003e478:\n          pFVar6 = (FILE *)0x0;\nLAB_0003e47a:\n          __vfprintf_chk(pFVar6,1,fmt,&stack0x00000008);\n          goto LAB_0003e439;\n        }" if (parenthesized_expression "(save_context_p == false)" ( (binary_expression "save_context_p == false" identifier == false) )) (compound_statement "{\nLAB_0003e478:\n          pFVar6 = (FILE *)0x0;\nLAB_0003e47a:\n          __vfprintf_chk(pFVar6,1,fmt,&stack0x00000008);\n          goto LAB_0003e439;\n        }" { (labeled_statement "LAB_0003e478:\n          pFVar6 = (FILE *)0x0;" statement_identifier : (expression_statement "pFVar6 = (FILE *)0x0;" (assignment_expression "pFVar6 = (FILE *)0x0" identifier = (cast_expression "(FILE *)0x0" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (labeled_statement "LAB_0003e47a:\n          __vfprintf_chk(pFVar6,1,fmt,&stack0x00000008);" statement_identifier : (expression_statement "__vfprintf_chk(pFVar6,1,fmt,&stack0x00000008);" (call_expression "__vfprintf_chk(pFVar6,1,fmt,&stack0x00000008)" identifier (argument_list "(pFVar6,1,fmt,&stack0x00000008)" ( identifier , number_literal , identifier , (pointer_expression "&stack0x00000008" & identifier) ))) ;)) (goto_statement "goto LAB_0003e439;" goto statement_identifier ;) })) (expression_statement "__stream = (FILE *)0x0;" (assignment_expression "__stream = (FILE *)0x0" identifier = (cast_expression "(FILE *)0x0" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pFVar5 = (FILE *)0x0;" (assignment_expression "pFVar5 = (FILE *)0x0" identifier = (cast_expression "(FILE *)0x0" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) (expression_statement "s = lpstate.bigmsg;" (assignment_expression "s = lpstate.bigmsg" identifier = (field_expression "lpstate.bigmsg" identifier . field_identifier)) ;) (if_statement "if (lpstate.allocated == 0) {\n        lpstate.allocated = 0x80;\n        s = smallmsg;\n      }" if (parenthesized_expression "(lpstate.allocated == 0)" ( (binary_expression "lpstate.allocated == 0" (field_expression "lpstate.allocated" identifier . field_identifier) == number_literal) )) (compound_statement "{\n        lpstate.allocated = 0x80;\n        s = smallmsg;\n      }" { (expression_statement "lpstate.allocated = 0x80;" (assignment_expression "lpstate.allocated = 0x80" (field_expression "lpstate.allocated" identifier . field_identifier) = number_literal) ;) (expression_statement "s = smallmsg;" (assignment_expression "s = smallmsg" identifier = identifier) ;) })) (expression_statement "iVar4 = __vsnprintf_chk(s,lpstate.allocated,1,0xffffffff,fmt,&stack0x00000008);" (assignment_expression "iVar4 = __vsnprintf_chk(s,lpstate.allocated,1,0xffffffff,fmt,&stack0x00000008)" identifier = (call_expression "__vsnprintf_chk(s,lpstate.allocated,1,0xffffffff,fmt,&stack0x00000008)" identifier (argument_list "(s,lpstate.allocated,1,0xffffffff,fmt,&stack0x00000008)" ( identifier , (field_expression "lpstate.allocated" identifier . field_identifier) , number_literal , number_literal , identifier , (pointer_expression "&stack0x00000008" & identifier) )))) ;) (if_statement "if (iVar4 == -1) {\n        lpstate.allocated = lpstate.allocated * 2;\n      }\n      else {\n        if (iVar4 < lpstate.allocated) goto code_r0x0003e3f3;\n        lpstate.allocated = iVar4 + 1;\n      }" if (parenthesized_expression "(iVar4 == -1)" ( (binary_expression "iVar4 == -1" identifier == number_literal) )) (compound_statement "{\n        lpstate.allocated = lpstate.allocated * 2;\n      }" { (expression_statement "lpstate.allocated = lpstate.allocated * 2;" (assignment_expression "lpstate.allocated = lpstate.allocated * 2" (field_expression "lpstate.allocated" identifier . field_identifier) = (binary_expression "lpstate.allocated * 2" (field_expression "lpstate.allocated" identifier . field_identifier) * number_literal)) ;) }) (else_clause "else {\n        if (iVar4 < lpstate.allocated) goto code_r0x0003e3f3;\n        lpstate.allocated = iVar4 + 1;\n      }" else (compound_statement "{\n        if (iVar4 < lpstate.allocated) goto code_r0x0003e3f3;\n        lpstate.allocated = iVar4 + 1;\n      }" { (if_statement "if (iVar4 < lpstate.allocated) goto code_r0x0003e3f3;" if (parenthesized_expression "(iVar4 < lpstate.allocated)" ( (binary_expression "iVar4 < lpstate.allocated" identifier < (field_expression "lpstate.allocated" identifier . field_identifier)) )) (goto_statement "goto code_r0x0003e3f3;" goto statement_identifier ;)) (expression_statement "lpstate.allocated = iVar4 + 1;" (assignment_expression "lpstate.allocated = iVar4 + 1" (field_expression "lpstate.allocated" identifier . field_identifier) = (binary_expression "iVar4 + 1" identifier + number_literal)) ;) }))) (expression_statement "lpstate.bigmsg = (char *)xrealloc(lpstate.bigmsg,lpstate.allocated);" (assignment_expression "lpstate.bigmsg = (char *)xrealloc(lpstate.bigmsg,lpstate.allocated)" (field_expression "lpstate.bigmsg" identifier . field_identifier) = (cast_expression "(char *)xrealloc(lpstate.bigmsg,lpstate.allocated)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xrealloc(lpstate.bigmsg,lpstate.allocated)" identifier (argument_list "(lpstate.bigmsg,lpstate.allocated)" ( (field_expression "lpstate.bigmsg" identifier . field_identifier) , (field_expression "lpstate.allocated" identifier . field_identifier) ))))) ;) (expression_statement "cVar3 = inhibit_logging;" (assignment_expression "cVar3 = inhibit_logging" identifier = identifier) ;) }) while (parenthesized_expression "( true )" ( true )) ;) })) (goto_statement "goto LAB_0003e31e;" goto statement_identifier ;) (labeled_statement "code_r0x0003e3f3:\n  if (save_context_p != false) {\n    saved_append(s);\n  }" statement_identifier : (if_statement "if (save_context_p != false) {\n    saved_append(s);\n  }" if (parenthesized_expression "(save_context_p != false)" ( (binary_expression "save_context_p != false" identifier != false) )) (compound_statement "{\n    saved_append(s);\n  }" { (expression_statement "saved_append(s);" (call_expression "saved_append(s)" identifier (argument_list "(s)" ( identifier ))) ;) }))) (expression_statement "fputs(s,__stream);" (call_expression "fputs(s,__stream)" identifier (argument_list "(s,__stream)" ( identifier , identifier ))) ;) (if_statement "if (pFVar5 != (FILE *)0x0) {\n    fputs(s,pFVar5);\n  }" if (parenthesized_expression "(pFVar5 != (FILE *)0x0)" ( (binary_expression "pFVar5 != (FILE *)0x0" identifier != (cast_expression "(FILE *)0x0" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    fputs(s,pFVar5);\n  }" { (expression_statement "fputs(s,pFVar5);" (call_expression "fputs(s,pFVar5)" identifier (argument_list "(s,pFVar5)" ( identifier , identifier ))) ;) })) (expression_statement "free(lpstate.bigmsg);" (call_expression "free(lpstate.bigmsg)" identifier (argument_list "(lpstate.bigmsg)" ( (field_expression "lpstate.bigmsg" identifier . field_identifier) ))) ;) (labeled_statement "LAB_0003e439:\n  if (flush_log_p == false) {\n    needs_flushing = true;\n    goto LAB_0003e31e;\n  }" statement_identifier : (if_statement "if (flush_log_p == false) {\n    needs_flushing = true;\n    goto LAB_0003e31e;\n  }" if (parenthesized_expression "(flush_log_p == false)" ( (binary_expression "flush_log_p == false" identifier == false) )) (compound_statement "{\n    needs_flushing = true;\n    goto LAB_0003e31e;\n  }" { (expression_statement "needs_flushing = true;" (assignment_expression "needs_flushing = true" identifier = true) ;) (goto_statement "goto LAB_0003e31e;" goto statement_identifier ;) }))) (if_statement "if (inhibit_logging == false) {\n    pFVar6 = warclogfp;\n    if (logfp == (FILE *)0x0) {\n      stream = *(FILE **)PTR_stderr_000aefc0;\n      if (warclogfp == (FILE *)0x0) {\n        pFVar6 = stream;\n        if (stream == (FILE *)0x0) goto LAB_0003e4cd;\nLAB_0003e4b5:\n        rpl_fflush(stream);\n      }\n      else if (stream != (FILE *)0x0) goto LAB_0003e4b5;\n      rpl_fflush(pFVar6);\n    }\n    else {\n      stream = logfp;\n      if (warclogfp != (FILE *)0x0) goto LAB_0003e4b5;\n      rpl_fflush(logfp);\n    }\n  }" if (parenthesized_expression "(inhibit_logging == false)" ( (binary_expression "inhibit_logging == false" identifier == false) )) (compound_statement "{\n    pFVar6 = warclogfp;\n    if (logfp == (FILE *)0x0) {\n      stream = *(FILE **)PTR_stderr_000aefc0;\n      if (warclogfp == (FILE *)0x0) {\n        pFVar6 = stream;\n        if (stream == (FILE *)0x0) goto LAB_0003e4cd;\nLAB_0003e4b5:\n        rpl_fflush(stream);\n      }\n      else if (stream != (FILE *)0x0) goto LAB_0003e4b5;\n      rpl_fflush(pFVar6);\n    }\n    else {\n      stream = logfp;\n      if (warclogfp != (FILE *)0x0) goto LAB_0003e4b5;\n      rpl_fflush(logfp);\n    }\n  }" { (expression_statement "pFVar6 = warclogfp;" (assignment_expression "pFVar6 = warclogfp" identifier = identifier) ;) (if_statement "if (logfp == (FILE *)0x0) {\n      stream = *(FILE **)PTR_stderr_000aefc0;\n      if (warclogfp == (FILE *)0x0) {\n        pFVar6 = stream;\n        if (stream == (FILE *)0x0) goto LAB_0003e4cd;\nLAB_0003e4b5:\n        rpl_fflush(stream);\n      }\n      else if (stream != (FILE *)0x0) goto LAB_0003e4b5;\n      rpl_fflush(pFVar6);\n    }\n    else {\n      stream = logfp;\n      if (warclogfp != (FILE *)0x0) goto LAB_0003e4b5;\n      rpl_fflush(logfp);\n    }" if (parenthesized_expression "(logfp == (FILE *)0x0)" ( (binary_expression "logfp == (FILE *)0x0" identifier == (cast_expression "(FILE *)0x0" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      stream = *(FILE **)PTR_stderr_000aefc0;\n      if (warclogfp == (FILE *)0x0) {\n        pFVar6 = stream;\n        if (stream == (FILE *)0x0) goto LAB_0003e4cd;\nLAB_0003e4b5:\n        rpl_fflush(stream);\n      }\n      else if (stream != (FILE *)0x0) goto LAB_0003e4b5;\n      rpl_fflush(pFVar6);\n    }" { (expression_statement "stream = *(FILE **)PTR_stderr_000aefc0;" (assignment_expression "stream = *(FILE **)PTR_stderr_000aefc0" identifier = (pointer_expression "*(FILE **)PTR_stderr_000aefc0" * (cast_expression "(FILE **)PTR_stderr_000aefc0" ( (type_descriptor "FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (if_statement "if (warclogfp == (FILE *)0x0) {\n        pFVar6 = stream;\n        if (stream == (FILE *)0x0) goto LAB_0003e4cd;\nLAB_0003e4b5:\n        rpl_fflush(stream);\n      }\n      else if (stream != (FILE *)0x0) goto LAB_0003e4b5;" if (parenthesized_expression "(warclogfp == (FILE *)0x0)" ( (binary_expression "warclogfp == (FILE *)0x0" identifier == (cast_expression "(FILE *)0x0" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        pFVar6 = stream;\n        if (stream == (FILE *)0x0) goto LAB_0003e4cd;\nLAB_0003e4b5:\n        rpl_fflush(stream);\n      }" { (expression_statement "pFVar6 = stream;" (assignment_expression "pFVar6 = stream" identifier = identifier) ;) (if_statement "if (stream == (FILE *)0x0) goto LAB_0003e4cd;" if (parenthesized_expression "(stream == (FILE *)0x0)" ( (binary_expression "stream == (FILE *)0x0" identifier == (cast_expression "(FILE *)0x0" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0003e4cd;" goto statement_identifier ;)) (labeled_statement "LAB_0003e4b5:\n        rpl_fflush(stream);" statement_identifier : (expression_statement "rpl_fflush(stream);" (call_expression "rpl_fflush(stream)" identifier (argument_list "(stream)" ( identifier ))) ;)) }) (else_clause "else if (stream != (FILE *)0x0) goto LAB_0003e4b5;" else (if_statement "if (stream != (FILE *)0x0) goto LAB_0003e4b5;" if (parenthesized_expression "(stream != (FILE *)0x0)" ( (binary_expression "stream != (FILE *)0x0" identifier != (cast_expression "(FILE *)0x0" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0003e4b5;" goto statement_identifier ;)))) (expression_statement "rpl_fflush(pFVar6);" (call_expression "rpl_fflush(pFVar6)" identifier (argument_list "(pFVar6)" ( identifier ))) ;) }) (else_clause "else {\n      stream = logfp;\n      if (warclogfp != (FILE *)0x0) goto LAB_0003e4b5;\n      rpl_fflush(logfp);\n    }" else (compound_statement "{\n      stream = logfp;\n      if (warclogfp != (FILE *)0x0) goto LAB_0003e4b5;\n      rpl_fflush(logfp);\n    }" { (expression_statement "stream = logfp;" (assignment_expression "stream = logfp" identifier = identifier) ;) (if_statement "if (warclogfp != (FILE *)0x0) goto LAB_0003e4b5;" if (parenthesized_expression "(warclogfp != (FILE *)0x0)" ( (binary_expression "warclogfp != (FILE *)0x0" identifier != (cast_expression "(FILE *)0x0" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0003e4b5;" goto statement_identifier ;)) (expression_statement "rpl_fflush(logfp);" (call_expression "rpl_fflush(logfp)" identifier (argument_list "(logfp)" ( identifier ))) ;) }))) })) (labeled_statement "LAB_0003e4cd:\n  needs_flushing = false;" statement_identifier : (expression_statement "needs_flushing = false;" (assignment_expression "needs_flushing = false" identifier = false) ;)) (labeled_statement "LAB_0003e31e:\n  if (iVar1 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail_local();\n  }" statement_identifier : (if_statement "if (iVar1 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail_local();\n  }" if (parenthesized_expression "(iVar1 != *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "iVar1 != *(int *)(in_GS_OFFSET + 0x14)" identifier != (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail_local();\n  }" { comment (expression_statement "__stack_chk_fail_local();" (call_expression "__stack_chk_fail_local()" identifier (argument_list "()" ( ))) ;) }))) (return_statement "return;" return ;) })))
(translation_unit "void FUN_0003e2e0(undefined4 param_1)\n\n{\n  undefined *puVar1;\n  char cVar2;\n  int iVar3;\n  FILE *pFVar4;\n  FILE *pFVar5;\n  char *__s;\n  int in_GS_OFFSET;\n  char *local_ac;\n  int local_a4;\n  char local_a0 [128];\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x3e2e9;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if ((DAT_000b6b9b != '\0') && (FUN_0003da30(), puVar1 = PTR_stderr_000aefc0, DAT_000b42c2 == '\0')\n     ) {\n    local_ac = (char *)0x0;\n    local_a4 = 0;\n    cVar2 = '\0';\n    do {\n      if (cVar2 == '\0') {\n        pFVar4 = DAT_000b42c4;\n        if (DAT_000b42d8 == (FILE *)0x0) {\n          pFVar5 = *(FILE **)puVar1;\n          if (((DAT_000b42c4 == (FILE *)0x0) && (pFVar4 = pFVar5, DAT_000b42c1 != '\x01')) &&\n             (pFVar5 == (FILE *)0x0)) goto LAB_0003e478;\n        }\n        else {\n          pFVar5 = DAT_000b42d8;\n          if ((DAT_000b42c4 == (FILE *)0x0) && (DAT_000b42c1 == '\0')) goto LAB_0003e47a;\n        }\n      }\n      else {\n        if (DAT_000b42c1 == '\0') {\nLAB_0003e478:\n          pFVar5 = (FILE *)0x0;\nLAB_0003e47a:\n          __vfprintf_chk(pFVar5,1,param_1,&stack0x00000008);\n          goto LAB_0003e439;\n        }\n        pFVar5 = (FILE *)0x0;\n        pFVar4 = (FILE *)0x0;\n      }\n      __s = local_ac;\n      if (local_a4 == 0) {\n        local_a4 = 0x80;\n        __s = local_a0;\n      }\n      iVar3 = __vsnprintf_chk(__s,local_a4,1,0xffffffff,param_1,&stack0x00000008);\n      if (iVar3 == -1) {\n        local_a4 = local_a4 * 2;\n      }\n      else {\n        if (iVar3 < local_a4) goto code_r0x0003e3f3;\n        local_a4 = iVar3 + 1;\n      }\n      local_ac = (char *)FUN_00062e80(local_ac,local_a4);\n      cVar2 = DAT_000b42c2;\n    } while( true );\n  }\n  goto LAB_0003e31e;\ncode_r0x0003e3f3:\n  if (DAT_000b42c1 != '\0') {\n    FUN_0003d3d0();\n  }\n  fputs(__s,pFVar5);\n  if (pFVar4 != (FILE *)0x0) {\n    fputs(__s,pFVar4);\n  }\n  free(local_ac);\nLAB_0003e439:\n  if (DAT_000af150 == '\0') {\n    DAT_000b42c0 = 1;\n    goto LAB_0003e31e;\n  }\n  if (DAT_000b42c2 == '\0') {\n    pFVar5 = DAT_000b42c4;\n    if (DAT_000b42d8 == (FILE *)0x0) {\n      pFVar4 = *(FILE **)PTR_stderr_000aefc0;\n      if (DAT_000b42c4 == (FILE *)0x0) {\n        pFVar5 = pFVar4;\n        if (pFVar4 == (FILE *)0x0) goto LAB_0003e4cd;\nLAB_0003e4b5:\n        FUN_000632b0(pFVar4);\n      }\n      else if (pFVar4 != (FILE *)0x0) goto LAB_0003e4b5;\n      FUN_000632b0(pFVar5);\n    }\n    else {\n      pFVar4 = DAT_000b42d8;\n      if (DAT_000b42c4 != (FILE *)0x0) goto LAB_0003e4b5;\n      FUN_000632b0(DAT_000b42d8);\n    }\n  }\nLAB_0003e4cd:\n  DAT_000b42c0 = 0;\nLAB_0003e31e:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_0007ad20();\n  }\n  return;\n}\n\n" (function_definition "void FUN_0003e2e0(undefined4 param_1)\n\n{\n  undefined *puVar1;\n  char cVar2;\n  int iVar3;\n  FILE *pFVar4;\n  FILE *pFVar5;\n  char *__s;\n  int in_GS_OFFSET;\n  char *local_ac;\n  int local_a4;\n  char local_a0 [128];\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x3e2e9;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if ((DAT_000b6b9b != '\0') && (FUN_0003da30(), puVar1 = PTR_stderr_000aefc0, DAT_000b42c2 == '\0')\n     ) {\n    local_ac = (char *)0x0;\n    local_a4 = 0;\n    cVar2 = '\0';\n    do {\n      if (cVar2 == '\0') {\n        pFVar4 = DAT_000b42c4;\n        if (DAT_000b42d8 == (FILE *)0x0) {\n          pFVar5 = *(FILE **)puVar1;\n          if (((DAT_000b42c4 == (FILE *)0x0) && (pFVar4 = pFVar5, DAT_000b42c1 != '\x01')) &&\n             (pFVar5 == (FILE *)0x0)) goto LAB_0003e478;\n        }\n        else {\n          pFVar5 = DAT_000b42d8;\n          if ((DAT_000b42c4 == (FILE *)0x0) && (DAT_000b42c1 == '\0')) goto LAB_0003e47a;\n        }\n      }\n      else {\n        if (DAT_000b42c1 == '\0') {\nLAB_0003e478:\n          pFVar5 = (FILE *)0x0;\nLAB_0003e47a:\n          __vfprintf_chk(pFVar5,1,param_1,&stack0x00000008);\n          goto LAB_0003e439;\n        }\n        pFVar5 = (FILE *)0x0;\n        pFVar4 = (FILE *)0x0;\n      }\n      __s = local_ac;\n      if (local_a4 == 0) {\n        local_a4 = 0x80;\n        __s = local_a0;\n      }\n      iVar3 = __vsnprintf_chk(__s,local_a4,1,0xffffffff,param_1,&stack0x00000008);\n      if (iVar3 == -1) {\n        local_a4 = local_a4 * 2;\n      }\n      else {\n        if (iVar3 < local_a4) goto code_r0x0003e3f3;\n        local_a4 = iVar3 + 1;\n      }\n      local_ac = (char *)FUN_00062e80(local_ac,local_a4);\n      cVar2 = DAT_000b42c2;\n    } while( true );\n  }\n  goto LAB_0003e31e;\ncode_r0x0003e3f3:\n  if (DAT_000b42c1 != '\0') {\n    FUN_0003d3d0();\n  }\n  fputs(__s,pFVar5);\n  if (pFVar4 != (FILE *)0x0) {\n    fputs(__s,pFVar4);\n  }\n  free(local_ac);\nLAB_0003e439:\n  if (DAT_000af150 == '\0') {\n    DAT_000b42c0 = 1;\n    goto LAB_0003e31e;\n  }\n  if (DAT_000b42c2 == '\0') {\n    pFVar5 = DAT_000b42c4;\n    if (DAT_000b42d8 == (FILE *)0x0) {\n      pFVar4 = *(FILE **)PTR_stderr_000aefc0;\n      if (DAT_000b42c4 == (FILE *)0x0) {\n        pFVar5 = pFVar4;\n        if (pFVar4 == (FILE *)0x0) goto LAB_0003e4cd;\nLAB_0003e4b5:\n        FUN_000632b0(pFVar4);\n      }\n      else if (pFVar4 != (FILE *)0x0) goto LAB_0003e4b5;\n      FUN_000632b0(pFVar5);\n    }\n    else {\n      pFVar4 = DAT_000b42d8;\n      if (DAT_000b42c4 != (FILE *)0x0) goto LAB_0003e4b5;\n      FUN_000632b0(DAT_000b42d8);\n    }\n  }\nLAB_0003e4cd:\n  DAT_000b42c0 = 0;\nLAB_0003e31e:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_0007ad20();\n  }\n  return;\n}" primitive_type (function_declarator "FUN_0003e2e0(undefined4 param_1)" identifier (parameter_list "(undefined4 param_1)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) ))) (compound_statement "{\n  undefined *puVar1;\n  char cVar2;\n  int iVar3;\n  FILE *pFVar4;\n  FILE *pFVar5;\n  char *__s;\n  int in_GS_OFFSET;\n  char *local_ac;\n  int local_a4;\n  char local_a0 [128];\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x3e2e9;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if ((DAT_000b6b9b != '\0') && (FUN_0003da30(), puVar1 = PTR_stderr_000aefc0, DAT_000b42c2 == '\0')\n     ) {\n    local_ac = (char *)0x0;\n    local_a4 = 0;\n    cVar2 = '\0';\n    do {\n      if (cVar2 == '\0') {\n        pFVar4 = DAT_000b42c4;\n        if (DAT_000b42d8 == (FILE *)0x0) {\n          pFVar5 = *(FILE **)puVar1;\n          if (((DAT_000b42c4 == (FILE *)0x0) && (pFVar4 = pFVar5, DAT_000b42c1 != '\x01')) &&\n             (pFVar5 == (FILE *)0x0)) goto LAB_0003e478;\n        }\n        else {\n          pFVar5 = DAT_000b42d8;\n          if ((DAT_000b42c4 == (FILE *)0x0) && (DAT_000b42c1 == '\0')) goto LAB_0003e47a;\n        }\n      }\n      else {\n        if (DAT_000b42c1 == '\0') {\nLAB_0003e478:\n          pFVar5 = (FILE *)0x0;\nLAB_0003e47a:\n          __vfprintf_chk(pFVar5,1,param_1,&stack0x00000008);\n          goto LAB_0003e439;\n        }\n        pFVar5 = (FILE *)0x0;\n        pFVar4 = (FILE *)0x0;\n      }\n      __s = local_ac;\n      if (local_a4 == 0) {\n        local_a4 = 0x80;\n        __s = local_a0;\n      }\n      iVar3 = __vsnprintf_chk(__s,local_a4,1,0xffffffff,param_1,&stack0x00000008);\n      if (iVar3 == -1) {\n        local_a4 = local_a4 * 2;\n      }\n      else {\n        if (iVar3 < local_a4) goto code_r0x0003e3f3;\n        local_a4 = iVar3 + 1;\n      }\n      local_ac = (char *)FUN_00062e80(local_ac,local_a4);\n      cVar2 = DAT_000b42c2;\n    } while( true );\n  }\n  goto LAB_0003e31e;\ncode_r0x0003e3f3:\n  if (DAT_000b42c1 != '\0') {\n    FUN_0003d3d0();\n  }\n  fputs(__s,pFVar5);\n  if (pFVar4 != (FILE *)0x0) {\n    fputs(__s,pFVar4);\n  }\n  free(local_ac);\nLAB_0003e439:\n  if (DAT_000af150 == '\0') {\n    DAT_000b42c0 = 1;\n    goto LAB_0003e31e;\n  }\n  if (DAT_000b42c2 == '\0') {\n    pFVar5 = DAT_000b42c4;\n    if (DAT_000b42d8 == (FILE *)0x0) {\n      pFVar4 = *(FILE **)PTR_stderr_000aefc0;\n      if (DAT_000b42c4 == (FILE *)0x0) {\n        pFVar5 = pFVar4;\n        if (pFVar4 == (FILE *)0x0) goto LAB_0003e4cd;\nLAB_0003e4b5:\n        FUN_000632b0(pFVar4);\n      }\n      else if (pFVar4 != (FILE *)0x0) goto LAB_0003e4b5;\n      FUN_000632b0(pFVar5);\n    }\n    else {\n      pFVar4 = DAT_000b42d8;\n      if (DAT_000b42c4 != (FILE *)0x0) goto LAB_0003e4b5;\n      FUN_000632b0(DAT_000b42d8);\n    }\n  }\nLAB_0003e4cd:\n  DAT_000b42c0 = 0;\nLAB_0003e31e:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_0007ad20();\n  }\n  return;\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "char cVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "FILE *pFVar4;" type_identifier (pointer_declarator "*pFVar4" * identifier) ;) (declaration "FILE *pFVar5;" type_identifier (pointer_declarator "*pFVar5" * identifier) ;) (declaration "char *__s;" primitive_type (pointer_declarator "*__s" * identifier) ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "char *local_ac;" primitive_type (pointer_declarator "*local_ac" * identifier) ;) (declaration "int local_a4;" primitive_type identifier ;) (declaration "char local_a0 [128];" primitive_type (array_declarator "local_a0 [128]" identifier [ number_literal ]) ;) (declaration "int local_20;" primitive_type identifier ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "uStack_14 = 0x3e2e9;" (assignment_expression "uStack_14 = 0x3e2e9" identifier = number_literal) ;) (expression_statement "local_20 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_20 = *(int *)(in_GS_OFFSET + 0x14)" identifier = (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) ;) (if_statement "if ((DAT_000b6b9b != '\0') && (FUN_0003da30(), puVar1 = PTR_stderr_000aefc0, DAT_000b42c2 == '\0')\n     ) {\n    local_ac = (char *)0x0;\n    local_a4 = 0;\n    cVar2 = '\0';\n    do {\n      if (cVar2 == '\0') {\n        pFVar4 = DAT_000b42c4;\n        if (DAT_000b42d8 == (FILE *)0x0) {\n          pFVar5 = *(FILE **)puVar1;\n          if (((DAT_000b42c4 == (FILE *)0x0) && (pFVar4 = pFVar5, DAT_000b42c1 != '\x01')) &&\n             (pFVar5 == (FILE *)0x0)) goto LAB_0003e478;\n        }\n        else {\n          pFVar5 = DAT_000b42d8;\n          if ((DAT_000b42c4 == (FILE *)0x0) && (DAT_000b42c1 == '\0')) goto LAB_0003e47a;\n        }\n      }\n      else {\n        if (DAT_000b42c1 == '\0') {\nLAB_0003e478:\n          pFVar5 = (FILE *)0x0;\nLAB_0003e47a:\n          __vfprintf_chk(pFVar5,1,param_1,&stack0x00000008);\n          goto LAB_0003e439;\n        }\n        pFVar5 = (FILE *)0x0;\n        pFVar4 = (FILE *)0x0;\n      }\n      __s = local_ac;\n      if (local_a4 == 0) {\n        local_a4 = 0x80;\n        __s = local_a0;\n      }\n      iVar3 = __vsnprintf_chk(__s,local_a4,1,0xffffffff,param_1,&stack0x00000008);\n      if (iVar3 == -1) {\n        local_a4 = local_a4 * 2;\n      }\n      else {\n        if (iVar3 < local_a4) goto code_r0x0003e3f3;\n        local_a4 = iVar3 + 1;\n      }\n      local_ac = (char *)FUN_00062e80(local_ac,local_a4);\n      cVar2 = DAT_000b42c2;\n    } while( true );\n  }" if (parenthesized_expression "((DAT_000b6b9b != '\0') && (FUN_0003da30(), puVar1 = PTR_stderr_000aefc0, DAT_000b42c2 == '\0')\n     )" ( (binary_expression "(DAT_000b6b9b != '\0') && (FUN_0003da30(), puVar1 = PTR_stderr_000aefc0, DAT_000b42c2 == '\0')" (parenthesized_expression "(DAT_000b6b9b != '\0')" ( (binary_expression "DAT_000b6b9b != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(FUN_0003da30(), puVar1 = PTR_stderr_000aefc0, DAT_000b42c2 == '\0')" ( (comma_expression "FUN_0003da30(), puVar1 = PTR_stderr_000aefc0, DAT_000b42c2 == '\0'" (call_expression "FUN_0003da30()" identifier (argument_list "()" ( ))) , (comma_expression "puVar1 = PTR_stderr_000aefc0, DAT_000b42c2 == '\0'" (assignment_expression "puVar1 = PTR_stderr_000aefc0" identifier = identifier) , (binary_expression "DAT_000b42c2 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')))) ))) )) (compound_statement "{\n    local_ac = (char *)0x0;\n    local_a4 = 0;\n    cVar2 = '\0';\n    do {\n      if (cVar2 == '\0') {\n        pFVar4 = DAT_000b42c4;\n        if (DAT_000b42d8 == (FILE *)0x0) {\n          pFVar5 = *(FILE **)puVar1;\n          if (((DAT_000b42c4 == (FILE *)0x0) && (pFVar4 = pFVar5, DAT_000b42c1 != '\x01')) &&\n             (pFVar5 == (FILE *)0x0)) goto LAB_0003e478;\n        }\n        else {\n          pFVar5 = DAT_000b42d8;\n          if ((DAT_000b42c4 == (FILE *)0x0) && (DAT_000b42c1 == '\0')) goto LAB_0003e47a;\n        }\n      }\n      else {\n        if (DAT_000b42c1 == '\0') {\nLAB_0003e478:\n          pFVar5 = (FILE *)0x0;\nLAB_0003e47a:\n          __vfprintf_chk(pFVar5,1,param_1,&stack0x00000008);\n          goto LAB_0003e439;\n        }\n        pFVar5 = (FILE *)0x0;\n        pFVar4 = (FILE *)0x0;\n      }\n      __s = local_ac;\n      if (local_a4 == 0) {\n        local_a4 = 0x80;\n        __s = local_a0;\n      }\n      iVar3 = __vsnprintf_chk(__s,local_a4,1,0xffffffff,param_1,&stack0x00000008);\n      if (iVar3 == -1) {\n        local_a4 = local_a4 * 2;\n      }\n      else {\n        if (iVar3 < local_a4) goto code_r0x0003e3f3;\n        local_a4 = iVar3 + 1;\n      }\n      local_ac = (char *)FUN_00062e80(local_ac,local_a4);\n      cVar2 = DAT_000b42c2;\n    } while( true );\n  }" { (expression_statement "local_ac = (char *)0x0;" (assignment_expression "local_ac = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_a4 = 0;" (assignment_expression "local_a4 = 0" identifier = number_literal) ;) (expression_statement "cVar2 = '\0';" (assignment_expression "cVar2 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (do_statement "do {\n      if (cVar2 == '\0') {\n        pFVar4 = DAT_000b42c4;\n        if (DAT_000b42d8 == (FILE *)0x0) {\n          pFVar5 = *(FILE **)puVar1;\n          if (((DAT_000b42c4 == (FILE *)0x0) && (pFVar4 = pFVar5, DAT_000b42c1 != '\x01')) &&\n             (pFVar5 == (FILE *)0x0)) goto LAB_0003e478;\n        }\n        else {\n          pFVar5 = DAT_000b42d8;\n          if ((DAT_000b42c4 == (FILE *)0x0) && (DAT_000b42c1 == '\0')) goto LAB_0003e47a;\n        }\n      }\n      else {\n        if (DAT_000b42c1 == '\0') {\nLAB_0003e478:\n          pFVar5 = (FILE *)0x0;\nLAB_0003e47a:\n          __vfprintf_chk(pFVar5,1,param_1,&stack0x00000008);\n          goto LAB_0003e439;\n        }\n        pFVar5 = (FILE *)0x0;\n        pFVar4 = (FILE *)0x0;\n      }\n      __s = local_ac;\n      if (local_a4 == 0) {\n        local_a4 = 0x80;\n        __s = local_a0;\n      }\n      iVar3 = __vsnprintf_chk(__s,local_a4,1,0xffffffff,param_1,&stack0x00000008);\n      if (iVar3 == -1) {\n        local_a4 = local_a4 * 2;\n      }\n      else {\n        if (iVar3 < local_a4) goto code_r0x0003e3f3;\n        local_a4 = iVar3 + 1;\n      }\n      local_ac = (char *)FUN_00062e80(local_ac,local_a4);\n      cVar2 = DAT_000b42c2;\n    } while( true );" do (compound_statement "{\n      if (cVar2 == '\0') {\n        pFVar4 = DAT_000b42c4;\n        if (DAT_000b42d8 == (FILE *)0x0) {\n          pFVar5 = *(FILE **)puVar1;\n          if (((DAT_000b42c4 == (FILE *)0x0) && (pFVar4 = pFVar5, DAT_000b42c1 != '\x01')) &&\n             (pFVar5 == (FILE *)0x0)) goto LAB_0003e478;\n        }\n        else {\n          pFVar5 = DAT_000b42d8;\n          if ((DAT_000b42c4 == (FILE *)0x0) && (DAT_000b42c1 == '\0')) goto LAB_0003e47a;\n        }\n      }\n      else {\n        if (DAT_000b42c1 == '\0') {\nLAB_0003e478:\n          pFVar5 = (FILE *)0x0;\nLAB_0003e47a:\n          __vfprintf_chk(pFVar5,1,param_1,&stack0x00000008);\n          goto LAB_0003e439;\n        }\n        pFVar5 = (FILE *)0x0;\n        pFVar4 = (FILE *)0x0;\n      }\n      __s = local_ac;\n      if (local_a4 == 0) {\n        local_a4 = 0x80;\n        __s = local_a0;\n      }\n      iVar3 = __vsnprintf_chk(__s,local_a4,1,0xffffffff,param_1,&stack0x00000008);\n      if (iVar3 == -1) {\n        local_a4 = local_a4 * 2;\n      }\n      else {\n        if (iVar3 < local_a4) goto code_r0x0003e3f3;\n        local_a4 = iVar3 + 1;\n      }\n      local_ac = (char *)FUN_00062e80(local_ac,local_a4);\n      cVar2 = DAT_000b42c2;\n    }" { (if_statement "if (cVar2 == '\0') {\n        pFVar4 = DAT_000b42c4;\n        if (DAT_000b42d8 == (FILE *)0x0) {\n          pFVar5 = *(FILE **)puVar1;\n          if (((DAT_000b42c4 == (FILE *)0x0) && (pFVar4 = pFVar5, DAT_000b42c1 != '\x01')) &&\n             (pFVar5 == (FILE *)0x0)) goto LAB_0003e478;\n        }\n        else {\n          pFVar5 = DAT_000b42d8;\n          if ((DAT_000b42c4 == (FILE *)0x0) && (DAT_000b42c1 == '\0')) goto LAB_0003e47a;\n        }\n      }\n      else {\n        if (DAT_000b42c1 == '\0') {\nLAB_0003e478:\n          pFVar5 = (FILE *)0x0;\nLAB_0003e47a:\n          __vfprintf_chk(pFVar5,1,param_1,&stack0x00000008);\n          goto LAB_0003e439;\n        }\n        pFVar5 = (FILE *)0x0;\n        pFVar4 = (FILE *)0x0;\n      }" if (parenthesized_expression "(cVar2 == '\0')" ( (binary_expression "cVar2 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        pFVar4 = DAT_000b42c4;\n        if (DAT_000b42d8 == (FILE *)0x0) {\n          pFVar5 = *(FILE **)puVar1;\n          if (((DAT_000b42c4 == (FILE *)0x0) && (pFVar4 = pFVar5, DAT_000b42c1 != '\x01')) &&\n             (pFVar5 == (FILE *)0x0)) goto LAB_0003e478;\n        }\n        else {\n          pFVar5 = DAT_000b42d8;\n          if ((DAT_000b42c4 == (FILE *)0x0) && (DAT_000b42c1 == '\0')) goto LAB_0003e47a;\n        }\n      }" { (expression_statement "pFVar4 = DAT_000b42c4;" (assignment_expression "pFVar4 = DAT_000b42c4" identifier = identifier) ;) (if_statement "if (DAT_000b42d8 == (FILE *)0x0) {\n          pFVar5 = *(FILE **)puVar1;\n          if (((DAT_000b42c4 == (FILE *)0x0) && (pFVar4 = pFVar5, DAT_000b42c1 != '\x01')) &&\n             (pFVar5 == (FILE *)0x0)) goto LAB_0003e478;\n        }\n        else {\n          pFVar5 = DAT_000b42d8;\n          if ((DAT_000b42c4 == (FILE *)0x0) && (DAT_000b42c1 == '\0')) goto LAB_0003e47a;\n        }" if (parenthesized_expression "(DAT_000b42d8 == (FILE *)0x0)" ( (binary_expression "DAT_000b42d8 == (FILE *)0x0" identifier == (cast_expression "(FILE *)0x0" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          pFVar5 = *(FILE **)puVar1;\n          if (((DAT_000b42c4 == (FILE *)0x0) && (pFVar4 = pFVar5, DAT_000b42c1 != '\x01')) &&\n             (pFVar5 == (FILE *)0x0)) goto LAB_0003e478;\n        }" { (expression_statement "pFVar5 = *(FILE **)puVar1;" (assignment_expression "pFVar5 = *(FILE **)puVar1" identifier = (pointer_expression "*(FILE **)puVar1" * (cast_expression "(FILE **)puVar1" ( (type_descriptor "FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (if_statement "if (((DAT_000b42c4 == (FILE *)0x0) && (pFVar4 = pFVar5, DAT_000b42c1 != '\x01')) &&\n             (pFVar5 == (FILE *)0x0)) goto LAB_0003e478;" if (parenthesized_expression "(((DAT_000b42c4 == (FILE *)0x0) && (pFVar4 = pFVar5, DAT_000b42c1 != '\x01')) &&\n             (pFVar5 == (FILE *)0x0))" ( (binary_expression "((DAT_000b42c4 == (FILE *)0x0) && (pFVar4 = pFVar5, DAT_000b42c1 != '\x01')) &&\n             (pFVar5 == (FILE *)0x0)" (parenthesized_expression "((DAT_000b42c4 == (FILE *)0x0) && (pFVar4 = pFVar5, DAT_000b42c1 != '\x01'))" ( (binary_expression "(DAT_000b42c4 == (FILE *)0x0) && (pFVar4 = pFVar5, DAT_000b42c1 != '\x01')" (parenthesized_expression "(DAT_000b42c4 == (FILE *)0x0)" ( (binary_expression "DAT_000b42c4 == (FILE *)0x0" identifier == (cast_expression "(FILE *)0x0" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(pFVar4 = pFVar5, DAT_000b42c1 != '\x01')" ( (comma_expression "pFVar4 = pFVar5, DAT_000b42c1 != '\x01'" (assignment_expression "pFVar4 = pFVar5" identifier = identifier) , (binary_expression "DAT_000b42c1 != '\x01'" identifier != (char_literal "'\x01'" ' escape_sequence '))) ))) )) && (parenthesized_expression "(pFVar5 == (FILE *)0x0)" ( (binary_expression "pFVar5 == (FILE *)0x0" identifier == (cast_expression "(FILE *)0x0" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (goto_statement "goto LAB_0003e478;" goto statement_identifier ;)) }) (else_clause "else {\n          pFVar5 = DAT_000b42d8;\n          if ((DAT_000b42c4 == (FILE *)0x0) && (DAT_000b42c1 == '\0')) goto LAB_0003e47a;\n        }" else (compound_statement "{\n          pFVar5 = DAT_000b42d8;\n          if ((DAT_000b42c4 == (FILE *)0x0) && (DAT_000b42c1 == '\0')) goto LAB_0003e47a;\n        }" { (expression_statement "pFVar5 = DAT_000b42d8;" (assignment_expression "pFVar5 = DAT_000b42d8" identifier = identifier) ;) (if_statement "if ((DAT_000b42c4 == (FILE *)0x0) && (DAT_000b42c1 == '\0')) goto LAB_0003e47a;" if (parenthesized_expression "((DAT_000b42c4 == (FILE *)0x0) && (DAT_000b42c1 == '\0'))" ( (binary_expression "(DAT_000b42c4 == (FILE *)0x0) && (DAT_000b42c1 == '\0')" (parenthesized_expression "(DAT_000b42c4 == (FILE *)0x0)" ( (binary_expression "DAT_000b42c4 == (FILE *)0x0" identifier == (cast_expression "(FILE *)0x0" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(DAT_000b42c1 == '\0')" ( (binary_expression "DAT_000b42c1 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) ))) )) (goto_statement "goto LAB_0003e47a;" goto statement_identifier ;)) }))) }) (else_clause "else {\n        if (DAT_000b42c1 == '\0') {\nLAB_0003e478:\n          pFVar5 = (FILE *)0x0;\nLAB_0003e47a:\n          __vfprintf_chk(pFVar5,1,param_1,&stack0x00000008);\n          goto LAB_0003e439;\n        }\n        pFVar5 = (FILE *)0x0;\n        pFVar4 = (FILE *)0x0;\n      }" else (compound_statement "{\n        if (DAT_000b42c1 == '\0') {\nLAB_0003e478:\n          pFVar5 = (FILE *)0x0;\nLAB_0003e47a:\n          __vfprintf_chk(pFVar5,1,param_1,&stack0x00000008);\n          goto LAB_0003e439;\n        }\n        pFVar5 = (FILE *)0x0;\n        pFVar4 = (FILE *)0x0;\n      }" { (if_statement "if (DAT_000b42c1 == '\0') {\nLAB_0003e478:\n          pFVar5 = (FILE *)0x0;\nLAB_0003e47a:\n          __vfprintf_chk(pFVar5,1,param_1,&stack0x00000008);\n          goto LAB_0003e439;\n        }" if (parenthesized_expression "(DAT_000b42c1 == '\0')" ( (binary_expression "DAT_000b42c1 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\nLAB_0003e478:\n          pFVar5 = (FILE *)0x0;\nLAB_0003e47a:\n          __vfprintf_chk(pFVar5,1,param_1,&stack0x00000008);\n          goto LAB_0003e439;\n        }" { (labeled_statement "LAB_0003e478:\n          pFVar5 = (FILE *)0x0;" statement_identifier : (expression_statement "pFVar5 = (FILE *)0x0;" (assignment_expression "pFVar5 = (FILE *)0x0" identifier = (cast_expression "(FILE *)0x0" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (labeled_statement "LAB_0003e47a:\n          __vfprintf_chk(pFVar5,1,param_1,&stack0x00000008);" statement_identifier : (expression_statement "__vfprintf_chk(pFVar5,1,param_1,&stack0x00000008);" (call_expression "__vfprintf_chk(pFVar5,1,param_1,&stack0x00000008)" identifier (argument_list "(pFVar5,1,param_1,&stack0x00000008)" ( identifier , number_literal , identifier , (pointer_expression "&stack0x00000008" & identifier) ))) ;)) (goto_statement "goto LAB_0003e439;" goto statement_identifier ;) })) (expression_statement "pFVar5 = (FILE *)0x0;" (assignment_expression "pFVar5 = (FILE *)0x0" identifier = (cast_expression "(FILE *)0x0" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pFVar4 = (FILE *)0x0;" (assignment_expression "pFVar4 = (FILE *)0x0" identifier = (cast_expression "(FILE *)0x0" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) (expression_statement "__s = local_ac;" (assignment_expression "__s = local_ac" identifier = identifier) ;) (if_statement "if (local_a4 == 0) {\n        local_a4 = 0x80;\n        __s = local_a0;\n      }" if (parenthesized_expression "(local_a4 == 0)" ( (binary_expression "local_a4 == 0" identifier == number_literal) )) (compound_statement "{\n        local_a4 = 0x80;\n        __s = local_a0;\n      }" { (expression_statement "local_a4 = 0x80;" (assignment_expression "local_a4 = 0x80" identifier = number_literal) ;) (expression_statement "__s = local_a0;" (assignment_expression "__s = local_a0" identifier = identifier) ;) })) (expression_statement "iVar3 = __vsnprintf_chk(__s,local_a4,1,0xffffffff,param_1,&stack0x00000008);" (assignment_expression "iVar3 = __vsnprintf_chk(__s,local_a4,1,0xffffffff,param_1,&stack0x00000008)" identifier = (call_expression "__vsnprintf_chk(__s,local_a4,1,0xffffffff,param_1,&stack0x00000008)" identifier (argument_list "(__s,local_a4,1,0xffffffff,param_1,&stack0x00000008)" ( identifier , identifier , number_literal , number_literal , identifier , (pointer_expression "&stack0x00000008" & identifier) )))) ;) (if_statement "if (iVar3 == -1) {\n        local_a4 = local_a4 * 2;\n      }\n      else {\n        if (iVar3 < local_a4) goto code_r0x0003e3f3;\n        local_a4 = iVar3 + 1;\n      }" if (parenthesized_expression "(iVar3 == -1)" ( (binary_expression "iVar3 == -1" identifier == number_literal) )) (compound_statement "{\n        local_a4 = local_a4 * 2;\n      }" { (expression_statement "local_a4 = local_a4 * 2;" (assignment_expression "local_a4 = local_a4 * 2" identifier = (binary_expression "local_a4 * 2" identifier * number_literal)) ;) }) (else_clause "else {\n        if (iVar3 < local_a4) goto code_r0x0003e3f3;\n        local_a4 = iVar3 + 1;\n      }" else (compound_statement "{\n        if (iVar3 < local_a4) goto code_r0x0003e3f3;\n        local_a4 = iVar3 + 1;\n      }" { (if_statement "if (iVar3 < local_a4) goto code_r0x0003e3f3;" if (parenthesized_expression "(iVar3 < local_a4)" ( (binary_expression "iVar3 < local_a4" identifier < identifier) )) (goto_statement "goto code_r0x0003e3f3;" goto statement_identifier ;)) (expression_statement "local_a4 = iVar3 + 1;" (assignment_expression "local_a4 = iVar3 + 1" identifier = (binary_expression "iVar3 + 1" identifier + number_literal)) ;) }))) (expression_statement "local_ac = (char *)FUN_00062e80(local_ac,local_a4);" (assignment_expression "local_ac = (char *)FUN_00062e80(local_ac,local_a4)" identifier = (cast_expression "(char *)FUN_00062e80(local_ac,local_a4)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00062e80(local_ac,local_a4)" identifier (argument_list "(local_ac,local_a4)" ( identifier , identifier ))))) ;) (expression_statement "cVar2 = DAT_000b42c2;" (assignment_expression "cVar2 = DAT_000b42c2" identifier = identifier) ;) }) while (parenthesized_expression "( true )" ( true )) ;) })) (goto_statement "goto LAB_0003e31e;" goto statement_identifier ;) (labeled_statement "code_r0x0003e3f3:\n  if (DAT_000b42c1 != '\0') {\n    FUN_0003d3d0();\n  }" statement_identifier : (if_statement "if (DAT_000b42c1 != '\0') {\n    FUN_0003d3d0();\n  }" if (parenthesized_expression "(DAT_000b42c1 != '\0')" ( (binary_expression "DAT_000b42c1 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    FUN_0003d3d0();\n  }" { (expression_statement "FUN_0003d3d0();" (call_expression "FUN_0003d3d0()" identifier (argument_list "()" ( ))) ;) }))) (expression_statement "fputs(__s,pFVar5);" (call_expression "fputs(__s,pFVar5)" identifier (argument_list "(__s,pFVar5)" ( identifier , identifier ))) ;) (if_statement "if (pFVar4 != (FILE *)0x0) {\n    fputs(__s,pFVar4);\n  }" if (parenthesized_expression "(pFVar4 != (FILE *)0x0)" ( (binary_expression "pFVar4 != (FILE *)0x0" identifier != (cast_expression "(FILE *)0x0" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    fputs(__s,pFVar4);\n  }" { (expression_statement "fputs(__s,pFVar4);" (call_expression "fputs(__s,pFVar4)" identifier (argument_list "(__s,pFVar4)" ( identifier , identifier ))) ;) })) (expression_statement "free(local_ac);" (call_expression "free(local_ac)" identifier (argument_list "(local_ac)" ( identifier ))) ;) (labeled_statement "LAB_0003e439:\n  if (DAT_000af150 == '\0') {\n    DAT_000b42c0 = 1;\n    goto LAB_0003e31e;\n  }" statement_identifier : (if_statement "if (DAT_000af150 == '\0') {\n    DAT_000b42c0 = 1;\n    goto LAB_0003e31e;\n  }" if (parenthesized_expression "(DAT_000af150 == '\0')" ( (binary_expression "DAT_000af150 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    DAT_000b42c0 = 1;\n    goto LAB_0003e31e;\n  }" { (expression_statement "DAT_000b42c0 = 1;" (assignment_expression "DAT_000b42c0 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_0003e31e;" goto statement_identifier ;) }))) (if_statement "if (DAT_000b42c2 == '\0') {\n    pFVar5 = DAT_000b42c4;\n    if (DAT_000b42d8 == (FILE *)0x0) {\n      pFVar4 = *(FILE **)PTR_stderr_000aefc0;\n      if (DAT_000b42c4 == (FILE *)0x0) {\n        pFVar5 = pFVar4;\n        if (pFVar4 == (FILE *)0x0) goto LAB_0003e4cd;\nLAB_0003e4b5:\n        FUN_000632b0(pFVar4);\n      }\n      else if (pFVar4 != (FILE *)0x0) goto LAB_0003e4b5;\n      FUN_000632b0(pFVar5);\n    }\n    else {\n      pFVar4 = DAT_000b42d8;\n      if (DAT_000b42c4 != (FILE *)0x0) goto LAB_0003e4b5;\n      FUN_000632b0(DAT_000b42d8);\n    }\n  }" if (parenthesized_expression "(DAT_000b42c2 == '\0')" ( (binary_expression "DAT_000b42c2 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    pFVar5 = DAT_000b42c4;\n    if (DAT_000b42d8 == (FILE *)0x0) {\n      pFVar4 = *(FILE **)PTR_stderr_000aefc0;\n      if (DAT_000b42c4 == (FILE *)0x0) {\n        pFVar5 = pFVar4;\n        if (pFVar4 == (FILE *)0x0) goto LAB_0003e4cd;\nLAB_0003e4b5:\n        FUN_000632b0(pFVar4);\n      }\n      else if (pFVar4 != (FILE *)0x0) goto LAB_0003e4b5;\n      FUN_000632b0(pFVar5);\n    }\n    else {\n      pFVar4 = DAT_000b42d8;\n      if (DAT_000b42c4 != (FILE *)0x0) goto LAB_0003e4b5;\n      FUN_000632b0(DAT_000b42d8);\n    }\n  }" { (expression_statement "pFVar5 = DAT_000b42c4;" (assignment_expression "pFVar5 = DAT_000b42c4" identifier = identifier) ;) (if_statement "if (DAT_000b42d8 == (FILE *)0x0) {\n      pFVar4 = *(FILE **)PTR_stderr_000aefc0;\n      if (DAT_000b42c4 == (FILE *)0x0) {\n        pFVar5 = pFVar4;\n        if (pFVar4 == (FILE *)0x0) goto LAB_0003e4cd;\nLAB_0003e4b5:\n        FUN_000632b0(pFVar4);\n      }\n      else if (pFVar4 != (FILE *)0x0) goto LAB_0003e4b5;\n      FUN_000632b0(pFVar5);\n    }\n    else {\n      pFVar4 = DAT_000b42d8;\n      if (DAT_000b42c4 != (FILE *)0x0) goto LAB_0003e4b5;\n      FUN_000632b0(DAT_000b42d8);\n    }" if (parenthesized_expression "(DAT_000b42d8 == (FILE *)0x0)" ( (binary_expression "DAT_000b42d8 == (FILE *)0x0" identifier == (cast_expression "(FILE *)0x0" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      pFVar4 = *(FILE **)PTR_stderr_000aefc0;\n      if (DAT_000b42c4 == (FILE *)0x0) {\n        pFVar5 = pFVar4;\n        if (pFVar4 == (FILE *)0x0) goto LAB_0003e4cd;\nLAB_0003e4b5:\n        FUN_000632b0(pFVar4);\n      }\n      else if (pFVar4 != (FILE *)0x0) goto LAB_0003e4b5;\n      FUN_000632b0(pFVar5);\n    }" { (expression_statement "pFVar4 = *(FILE **)PTR_stderr_000aefc0;" (assignment_expression "pFVar4 = *(FILE **)PTR_stderr_000aefc0" identifier = (pointer_expression "*(FILE **)PTR_stderr_000aefc0" * (cast_expression "(FILE **)PTR_stderr_000aefc0" ( (type_descriptor "FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (if_statement "if (DAT_000b42c4 == (FILE *)0x0) {\n        pFVar5 = pFVar4;\n        if (pFVar4 == (FILE *)0x0) goto LAB_0003e4cd;\nLAB_0003e4b5:\n        FUN_000632b0(pFVar4);\n      }\n      else if (pFVar4 != (FILE *)0x0) goto LAB_0003e4b5;" if (parenthesized_expression "(DAT_000b42c4 == (FILE *)0x0)" ( (binary_expression "DAT_000b42c4 == (FILE *)0x0" identifier == (cast_expression "(FILE *)0x0" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        pFVar5 = pFVar4;\n        if (pFVar4 == (FILE *)0x0) goto LAB_0003e4cd;\nLAB_0003e4b5:\n        FUN_000632b0(pFVar4);\n      }" { (expression_statement "pFVar5 = pFVar4;" (assignment_expression "pFVar5 = pFVar4" identifier = identifier) ;) (if_statement "if (pFVar4 == (FILE *)0x0) goto LAB_0003e4cd;" if (parenthesized_expression "(pFVar4 == (FILE *)0x0)" ( (binary_expression "pFVar4 == (FILE *)0x0" identifier == (cast_expression "(FILE *)0x0" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0003e4cd;" goto statement_identifier ;)) (labeled_statement "LAB_0003e4b5:\n        FUN_000632b0(pFVar4);" statement_identifier : (expression_statement "FUN_000632b0(pFVar4);" (call_expression "FUN_000632b0(pFVar4)" identifier (argument_list "(pFVar4)" ( identifier ))) ;)) }) (else_clause "else if (pFVar4 != (FILE *)0x0) goto LAB_0003e4b5;" else (if_statement "if (pFVar4 != (FILE *)0x0) goto LAB_0003e4b5;" if (parenthesized_expression "(pFVar4 != (FILE *)0x0)" ( (binary_expression "pFVar4 != (FILE *)0x0" identifier != (cast_expression "(FILE *)0x0" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0003e4b5;" goto statement_identifier ;)))) (expression_statement "FUN_000632b0(pFVar5);" (call_expression "FUN_000632b0(pFVar5)" identifier (argument_list "(pFVar5)" ( identifier ))) ;) }) (else_clause "else {\n      pFVar4 = DAT_000b42d8;\n      if (DAT_000b42c4 != (FILE *)0x0) goto LAB_0003e4b5;\n      FUN_000632b0(DAT_000b42d8);\n    }" else (compound_statement "{\n      pFVar4 = DAT_000b42d8;\n      if (DAT_000b42c4 != (FILE *)0x0) goto LAB_0003e4b5;\n      FUN_000632b0(DAT_000b42d8);\n    }" { (expression_statement "pFVar4 = DAT_000b42d8;" (assignment_expression "pFVar4 = DAT_000b42d8" identifier = identifier) ;) (if_statement "if (DAT_000b42c4 != (FILE *)0x0) goto LAB_0003e4b5;" if (parenthesized_expression "(DAT_000b42c4 != (FILE *)0x0)" ( (binary_expression "DAT_000b42c4 != (FILE *)0x0" identifier != (cast_expression "(FILE *)0x0" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0003e4b5;" goto statement_identifier ;)) (expression_statement "FUN_000632b0(DAT_000b42d8);" (call_expression "FUN_000632b0(DAT_000b42d8)" identifier (argument_list "(DAT_000b42d8)" ( identifier ))) ;) }))) })) (labeled_statement "LAB_0003e4cd:\n  DAT_000b42c0 = 0;" statement_identifier : (expression_statement "DAT_000b42c0 = 0;" (assignment_expression "DAT_000b42c0 = 0" identifier = number_literal) ;)) (labeled_statement "LAB_0003e31e:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_0007ad20();\n  }" statement_identifier : (if_statement "if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_0007ad20();\n  }" if (parenthesized_expression "(local_20 != *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "local_20 != *(int *)(in_GS_OFFSET + 0x14)" identifier != (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n                    \n    FUN_0007ad20();\n  }" { (expression_statement "FUN_0007ad20();" (call_expression "FUN_0007ad20()" identifier (argument_list "()" ( ))) ;) }))) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) && (parenthesized_expression ( (comma_expression (call_expression IDENT (argument_list ( ))) , (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression IDENT == (char_literal ' escape_sequence ')))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (char_literal ' escape_sequence ')) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression IDENT != (char_literal ' escape_sequence '))) ))) )) && (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ))) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) && (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) ))) )) (goto_statement goto statement_identifier ;)) }))) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;)) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , IDENT , (pointer_expression & IDENT) ))) ;)) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , LIT , LIT , IDENT , (pointer_expression & IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT * LIT)) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , IDENT ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( BOOL )) ;) })) (goto_statement goto statement_identifier ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) }))) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;)) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)))) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) }))) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) }))) (return_statement return ;) })))
(function_definition "void FUN_0003e2e0(undefined4 param_1)\n\n{\n  undefined *puVar1;\n  char cVar2;\n  int iVar3;\n  FILE *pFVar4;\n  FILE *pFVar5;\n  char *__s;\n  int in_GS_OFFSET;\n  char *local_ac;\n  int local_a4;\n  char local_a0 [128];\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x3e2e9;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if ((DAT_000b6b9b != '\0') && (FUN_0003da30(), puVar1 = PTR_stderr_000aefc0, DAT_000b42c2 == '\0')\n     ) {\n    local_ac = (char *)0x0;\n    local_a4 = 0;\n    cVar2 = '\0';\n    do {\n      if (cVar2 == '\0') {\n        pFVar4 = DAT_000b42c4;\n        if (DAT_000b42d8 == (FILE *)0x0) {\n          pFVar5 = *(FILE **)puVar1;\n          if (((DAT_000b42c4 == (FILE *)0x0) && (pFVar4 = pFVar5, DAT_000b42c1 != '\x01')) &&\n             (pFVar5 == (FILE *)0x0)) goto LAB_0003e478;\n        }\n        else {\n          pFVar5 = DAT_000b42d8;\n          if ((DAT_000b42c4 == (FILE *)0x0) && (DAT_000b42c1 == '\0')) goto LAB_0003e47a;\n        }\n      }\n      else {\n        if (DAT_000b42c1 == '\0') {\nLAB_0003e478:\n          pFVar5 = (FILE *)0x0;\nLAB_0003e47a:\n          __vfprintf_chk(pFVar5,1,param_1,&stack0x00000008);\n          goto LAB_0003e439;\n        }\n        pFVar5 = (FILE *)0x0;\n        pFVar4 = (FILE *)0x0;\n      }\n      __s = local_ac;\n      if (local_a4 == 0) {\n        local_a4 = 0x80;\n        __s = local_a0;\n      }\n      iVar3 = __vsnprintf_chk(__s,local_a4,1,0xffffffff,param_1,&stack0x00000008);\n      if (iVar3 == -1) {\n        local_a4 = local_a4 * 2;\n      }\n      else {\n        if (iVar3 < local_a4) goto code_r0x0003e3f3;\n        local_a4 = iVar3 + 1;\n      }\n      local_ac = (char *)FUN_00062e80(local_ac,local_a4);\n      cVar2 = DAT_000b42c2;\n    } while( true );\n  }\n  goto LAB_0003e31e;\ncode_r0x0003e3f3:\n  if (DAT_000b42c1 != '\0') {\n    FUN_0003d3d0();\n  }\n  fputs(__s,pFVar5);\n  if (pFVar4 != (FILE *)0x0) {\n    fputs(__s,pFVar4);\n  }\n  free(local_ac);\nLAB_0003e439:\n  if (DAT_000af150 == '\0') {\n    DAT_000b42c0 = 1;\n    goto LAB_0003e31e;\n  }\n  if (DAT_000b42c2 == '\0') {\n    pFVar5 = DAT_000b42c4;\n    if (DAT_000b42d8 == (FILE *)0x0) {\n      pFVar4 = *(FILE **)PTR_stderr_000aefc0;\n      if (DAT_000b42c4 == (FILE *)0x0) {\n        pFVar5 = pFVar4;\n        if (pFVar4 == (FILE *)0x0) goto LAB_0003e4cd;\nLAB_0003e4b5:\n        FUN_000632b0(pFVar4);\n      }\n      else if (pFVar4 != (FILE *)0x0) goto LAB_0003e4b5;\n      FUN_000632b0(pFVar5);\n    }\n    else {\n      pFVar4 = DAT_000b42d8;\n      if (DAT_000b42c4 != (FILE *)0x0) goto LAB_0003e4b5;\n      FUN_000632b0(DAT_000b42d8);\n    }\n  }\nLAB_0003e4cd:\n  DAT_000b42c0 = 0;\nLAB_0003e31e:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_0007ad20();\n  }\n  return;\n}" (primitive_type "void") (function_declarator "FUN_0003e2e0(undefined4 param_1)" (identifier "FUN_0003e2e0") (parameter_list "(undefined4 param_1)" (( "(") (parameter_declaration "undefined4 param_1" (type_identifier "undefined4") (identifier "param_1")) () ")"))) (compound_statement "{\n  undefined *puVar1;\n  char cVar2;\n  int iVar3;\n  FILE *pFVar4;\n  FILE *pFVar5;\n  char *__s;\n  int in_GS_OFFSET;\n  char *local_ac;\n  int local_a4;\n  char local_a0 [128];\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x3e2e9;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if ((DAT_000b6b9b != '\0') && (FUN_0003da30(), puVar1 = PTR_stderr_000aefc0, DAT_000b42c2 == '\0')\n     ) {\n    local_ac = (char *)0x0;\n    local_a4 = 0;\n    cVar2 = '\0';\n    do {\n      if (cVar2 == '\0') {\n        pFVar4 = DAT_000b42c4;\n        if (DAT_000b42d8 == (FILE *)0x0) {\n          pFVar5 = *(FILE **)puVar1;\n          if (((DAT_000b42c4 == (FILE *)0x0) && (pFVar4 = pFVar5, DAT_000b42c1 != '\x01')) &&\n             (pFVar5 == (FILE *)0x0)) goto LAB_0003e478;\n        }\n        else {\n          pFVar5 = DAT_000b42d8;\n          if ((DAT_000b42c4 == (FILE *)0x0) && (DAT_000b42c1 == '\0')) goto LAB_0003e47a;\n        }\n      }\n      else {\n        if (DAT_000b42c1 == '\0') {\nLAB_0003e478:\n          pFVar5 = (FILE *)0x0;\nLAB_0003e47a:\n          __vfprintf_chk(pFVar5,1,param_1,&stack0x00000008);\n          goto LAB_0003e439;\n        }\n        pFVar5 = (FILE *)0x0;\n        pFVar4 = (FILE *)0x0;\n      }\n      __s = local_ac;\n      if (local_a4 == 0) {\n        local_a4 = 0x80;\n        __s = local_a0;\n      }\n      iVar3 = __vsnprintf_chk(__s,local_a4,1,0xffffffff,param_1,&stack0x00000008);\n      if (iVar3 == -1) {\n        local_a4 = local_a4 * 2;\n      }\n      else {\n        if (iVar3 < local_a4) goto code_r0x0003e3f3;\n        local_a4 = iVar3 + 1;\n      }\n      local_ac = (char *)FUN_00062e80(local_ac,local_a4);\n      cVar2 = DAT_000b42c2;\n    } while( true );\n  }\n  goto LAB_0003e31e;\ncode_r0x0003e3f3:\n  if (DAT_000b42c1 != '\0') {\n    FUN_0003d3d0();\n  }\n  fputs(__s,pFVar5);\n  if (pFVar4 != (FILE *)0x0) {\n    fputs(__s,pFVar4);\n  }\n  free(local_ac);\nLAB_0003e439:\n  if (DAT_000af150 == '\0') {\n    DAT_000b42c0 = 1;\n    goto LAB_0003e31e;\n  }\n  if (DAT_000b42c2 == '\0') {\n    pFVar5 = DAT_000b42c4;\n    if (DAT_000b42d8 == (FILE *)0x0) {\n      pFVar4 = *(FILE **)PTR_stderr_000aefc0;\n      if (DAT_000b42c4 == (FILE *)0x0) {\n        pFVar5 = pFVar4;\n        if (pFVar4 == (FILE *)0x0) goto LAB_0003e4cd;\nLAB_0003e4b5:\n        FUN_000632b0(pFVar4);\n      }\n      else if (pFVar4 != (FILE *)0x0) goto LAB_0003e4b5;\n      FUN_000632b0(pFVar5);\n    }\n    else {\n      pFVar4 = DAT_000b42d8;\n      if (DAT_000b42c4 != (FILE *)0x0) goto LAB_0003e4b5;\n      FUN_000632b0(DAT_000b42d8);\n    }\n  }\nLAB_0003e4cd:\n  DAT_000b42c0 = 0;\nLAB_0003e31e:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_0007ad20();\n  }\n  return;\n}" ({ "{") (declaration "undefined *puVar1;" (type_identifier "undefined") (pointer_declarator "*puVar1" (* "*") (identifier "puVar1")) (; ";")) (declaration "char cVar2;" (primitive_type "char") (identifier "cVar2") (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "FILE *pFVar4;" (type_identifier "FILE") (pointer_declarator "*pFVar4" (* "*") (identifier "pFVar4")) (; ";")) (declaration "FILE *pFVar5;" (type_identifier "FILE") (pointer_declarator "*pFVar5" (* "*") (identifier "pFVar5")) (; ";")) (declaration "char *__s;" (primitive_type "char") (pointer_declarator "*__s" (* "*") (identifier "__s")) (; ";")) (declaration "int in_GS_OFFSET;" (primitive_type "int") (identifier "in_GS_OFFSET") (; ";")) (declaration "char *local_ac;" (primitive_type "char") (pointer_declarator "*local_ac" (* "*") (identifier "local_ac")) (; ";")) (declaration "int local_a4;" (primitive_type "int") (identifier "local_a4") (; ";")) (declaration "char local_a0 [128];" (primitive_type "char") (array_declarator "local_a0 [128]" (identifier "local_a0") ([ "[") (number_literal "128") (] "]")) (; ";")) (declaration "int local_20;" (primitive_type "int") (identifier "local_20") (; ";")) (declaration "undefined4 uStack_14;" (type_identifier "undefined4") (identifier "uStack_14") (; ";")) (expression_statement "uStack_14 = 0x3e2e9;" (assignment_expression "uStack_14 = 0x3e2e9" (identifier "uStack_14") (= "=") (number_literal "0x3e2e9")) (; ";")) (expression_statement "local_20 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_20 = *(int *)(in_GS_OFFSET + 0x14)" (identifier "local_20") (= "=") (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" (* "*") (cast_expression "(int *)(in_GS_OFFSET + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_GS_OFFSET + 0x14)" (( "(") (binary_expression "in_GS_OFFSET + 0x14" (identifier "in_GS_OFFSET") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (if_statement "if ((DAT_000b6b9b != '\0') && (FUN_0003da30(), puVar1 = PTR_stderr_000aefc0, DAT_000b42c2 == '\0')\n     ) {\n    local_ac = (char *)0x0;\n    local_a4 = 0;\n    cVar2 = '\0';\n    do {\n      if (cVar2 == '\0') {\n        pFVar4 = DAT_000b42c4;\n        if (DAT_000b42d8 == (FILE *)0x0) {\n          pFVar5 = *(FILE **)puVar1;\n          if (((DAT_000b42c4 == (FILE *)0x0) && (pFVar4 = pFVar5, DAT_000b42c1 != '\x01')) &&\n             (pFVar5 == (FILE *)0x0)) goto LAB_0003e478;\n        }\n        else {\n          pFVar5 = DAT_000b42d8;\n          if ((DAT_000b42c4 == (FILE *)0x0) && (DAT_000b42c1 == '\0')) goto LAB_0003e47a;\n        }\n      }\n      else {\n        if (DAT_000b42c1 == '\0') {\nLAB_0003e478:\n          pFVar5 = (FILE *)0x0;\nLAB_0003e47a:\n          __vfprintf_chk(pFVar5,1,param_1,&stack0x00000008);\n          goto LAB_0003e439;\n        }\n        pFVar5 = (FILE *)0x0;\n        pFVar4 = (FILE *)0x0;\n      }\n      __s = local_ac;\n      if (local_a4 == 0) {\n        local_a4 = 0x80;\n        __s = local_a0;\n      }\n      iVar3 = __vsnprintf_chk(__s,local_a4,1,0xffffffff,param_1,&stack0x00000008);\n      if (iVar3 == -1) {\n        local_a4 = local_a4 * 2;\n      }\n      else {\n        if (iVar3 < local_a4) goto code_r0x0003e3f3;\n        local_a4 = iVar3 + 1;\n      }\n      local_ac = (char *)FUN_00062e80(local_ac,local_a4);\n      cVar2 = DAT_000b42c2;\n    } while( true );\n  }" (if "if") (parenthesized_expression "((DAT_000b6b9b != '\0') && (FUN_0003da30(), puVar1 = PTR_stderr_000aefc0, DAT_000b42c2 == '\0')\n     )" (( "(") (binary_expression "(DAT_000b6b9b != '\0') && (FUN_0003da30(), puVar1 = PTR_stderr_000aefc0, DAT_000b42c2 == '\0')" (parenthesized_expression "(DAT_000b6b9b != '\0')" (( "(") (binary_expression "DAT_000b6b9b != '\0'" (identifier "DAT_000b6b9b") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (&& "&&") (parenthesized_expression "(FUN_0003da30(), puVar1 = PTR_stderr_000aefc0, DAT_000b42c2 == '\0')" (( "(") (comma_expression "FUN_0003da30(), puVar1 = PTR_stderr_000aefc0, DAT_000b42c2 == '\0'" (call_expression "FUN_0003da30()" (identifier "FUN_0003da30") (argument_list "()" (( "(") () ")"))) (, ",") (comma_expression "puVar1 = PTR_stderr_000aefc0, DAT_000b42c2 == '\0'" (assignment_expression "puVar1 = PTR_stderr_000aefc0" (identifier "puVar1") (= "=") (identifier "PTR_stderr_000aefc0")) (, ",") (binary_expression "DAT_000b42c2 == '\0'" (identifier "DAT_000b42c2") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))))) () ")"))) () ")")) (compound_statement "{\n    local_ac = (char *)0x0;\n    local_a4 = 0;\n    cVar2 = '\0';\n    do {\n      if (cVar2 == '\0') {\n        pFVar4 = DAT_000b42c4;\n        if (DAT_000b42d8 == (FILE *)0x0) {\n          pFVar5 = *(FILE **)puVar1;\n          if (((DAT_000b42c4 == (FILE *)0x0) && (pFVar4 = pFVar5, DAT_000b42c1 != '\x01')) &&\n             (pFVar5 == (FILE *)0x0)) goto LAB_0003e478;\n        }\n        else {\n          pFVar5 = DAT_000b42d8;\n          if ((DAT_000b42c4 == (FILE *)0x0) && (DAT_000b42c1 == '\0')) goto LAB_0003e47a;\n        }\n      }\n      else {\n        if (DAT_000b42c1 == '\0') {\nLAB_0003e478:\n          pFVar5 = (FILE *)0x0;\nLAB_0003e47a:\n          __vfprintf_chk(pFVar5,1,param_1,&stack0x00000008);\n          goto LAB_0003e439;\n        }\n        pFVar5 = (FILE *)0x0;\n        pFVar4 = (FILE *)0x0;\n      }\n      __s = local_ac;\n      if (local_a4 == 0) {\n        local_a4 = 0x80;\n        __s = local_a0;\n      }\n      iVar3 = __vsnprintf_chk(__s,local_a4,1,0xffffffff,param_1,&stack0x00000008);\n      if (iVar3 == -1) {\n        local_a4 = local_a4 * 2;\n      }\n      else {\n        if (iVar3 < local_a4) goto code_r0x0003e3f3;\n        local_a4 = iVar3 + 1;\n      }\n      local_ac = (char *)FUN_00062e80(local_ac,local_a4);\n      cVar2 = DAT_000b42c2;\n    } while( true );\n  }" ({ "{") (expression_statement "local_ac = (char *)0x0;" (assignment_expression "local_ac = (char *)0x0" (identifier "local_ac") (= "=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_a4 = 0;" (assignment_expression "local_a4 = 0" (identifier "local_a4") (= "=") (number_literal "0")) (; ";")) (expression_statement "cVar2 = '\0';" (assignment_expression "cVar2 = '\0'" (identifier "cVar2") (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (do_statement "do {\n      if (cVar2 == '\0') {\n        pFVar4 = DAT_000b42c4;\n        if (DAT_000b42d8 == (FILE *)0x0) {\n          pFVar5 = *(FILE **)puVar1;\n          if (((DAT_000b42c4 == (FILE *)0x0) && (pFVar4 = pFVar5, DAT_000b42c1 != '\x01')) &&\n             (pFVar5 == (FILE *)0x0)) goto LAB_0003e478;\n        }\n        else {\n          pFVar5 = DAT_000b42d8;\n          if ((DAT_000b42c4 == (FILE *)0x0) && (DAT_000b42c1 == '\0')) goto LAB_0003e47a;\n        }\n      }\n      else {\n        if (DAT_000b42c1 == '\0') {\nLAB_0003e478:\n          pFVar5 = (FILE *)0x0;\nLAB_0003e47a:\n          __vfprintf_chk(pFVar5,1,param_1,&stack0x00000008);\n          goto LAB_0003e439;\n        }\n        pFVar5 = (FILE *)0x0;\n        pFVar4 = (FILE *)0x0;\n      }\n      __s = local_ac;\n      if (local_a4 == 0) {\n        local_a4 = 0x80;\n        __s = local_a0;\n      }\n      iVar3 = __vsnprintf_chk(__s,local_a4,1,0xffffffff,param_1,&stack0x00000008);\n      if (iVar3 == -1) {\n        local_a4 = local_a4 * 2;\n      }\n      else {\n        if (iVar3 < local_a4) goto code_r0x0003e3f3;\n        local_a4 = iVar3 + 1;\n      }\n      local_ac = (char *)FUN_00062e80(local_ac,local_a4);\n      cVar2 = DAT_000b42c2;\n    } while( true );" (do "do") (compound_statement "{\n      if (cVar2 == '\0') {\n        pFVar4 = DAT_000b42c4;\n        if (DAT_000b42d8 == (FILE *)0x0) {\n          pFVar5 = *(FILE **)puVar1;\n          if (((DAT_000b42c4 == (FILE *)0x0) && (pFVar4 = pFVar5, DAT_000b42c1 != '\x01')) &&\n             (pFVar5 == (FILE *)0x0)) goto LAB_0003e478;\n        }\n        else {\n          pFVar5 = DAT_000b42d8;\n          if ((DAT_000b42c4 == (FILE *)0x0) && (DAT_000b42c1 == '\0')) goto LAB_0003e47a;\n        }\n      }\n      else {\n        if (DAT_000b42c1 == '\0') {\nLAB_0003e478:\n          pFVar5 = (FILE *)0x0;\nLAB_0003e47a:\n          __vfprintf_chk(pFVar5,1,param_1,&stack0x00000008);\n          goto LAB_0003e439;\n        }\n        pFVar5 = (FILE *)0x0;\n        pFVar4 = (FILE *)0x0;\n      }\n      __s = local_ac;\n      if (local_a4 == 0) {\n        local_a4 = 0x80;\n        __s = local_a0;\n      }\n      iVar3 = __vsnprintf_chk(__s,local_a4,1,0xffffffff,param_1,&stack0x00000008);\n      if (iVar3 == -1) {\n        local_a4 = local_a4 * 2;\n      }\n      else {\n        if (iVar3 < local_a4) goto code_r0x0003e3f3;\n        local_a4 = iVar3 + 1;\n      }\n      local_ac = (char *)FUN_00062e80(local_ac,local_a4);\n      cVar2 = DAT_000b42c2;\n    }" ({ "{") (if_statement "if (cVar2 == '\0') {\n        pFVar4 = DAT_000b42c4;\n        if (DAT_000b42d8 == (FILE *)0x0) {\n          pFVar5 = *(FILE **)puVar1;\n          if (((DAT_000b42c4 == (FILE *)0x0) && (pFVar4 = pFVar5, DAT_000b42c1 != '\x01')) &&\n             (pFVar5 == (FILE *)0x0)) goto LAB_0003e478;\n        }\n        else {\n          pFVar5 = DAT_000b42d8;\n          if ((DAT_000b42c4 == (FILE *)0x0) && (DAT_000b42c1 == '\0')) goto LAB_0003e47a;\n        }\n      }\n      else {\n        if (DAT_000b42c1 == '\0') {\nLAB_0003e478:\n          pFVar5 = (FILE *)0x0;\nLAB_0003e47a:\n          __vfprintf_chk(pFVar5,1,param_1,&stack0x00000008);\n          goto LAB_0003e439;\n        }\n        pFVar5 = (FILE *)0x0;\n        pFVar4 = (FILE *)0x0;\n      }" (if "if") (parenthesized_expression "(cVar2 == '\0')" (( "(") (binary_expression "cVar2 == '\0'" (identifier "cVar2") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n        pFVar4 = DAT_000b42c4;\n        if (DAT_000b42d8 == (FILE *)0x0) {\n          pFVar5 = *(FILE **)puVar1;\n          if (((DAT_000b42c4 == (FILE *)0x0) && (pFVar4 = pFVar5, DAT_000b42c1 != '\x01')) &&\n             (pFVar5 == (FILE *)0x0)) goto LAB_0003e478;\n        }\n        else {\n          pFVar5 = DAT_000b42d8;\n          if ((DAT_000b42c4 == (FILE *)0x0) && (DAT_000b42c1 == '\0')) goto LAB_0003e47a;\n        }\n      }" ({ "{") (expression_statement "pFVar4 = DAT_000b42c4;" (assignment_expression "pFVar4 = DAT_000b42c4" (identifier "pFVar4") (= "=") (identifier "DAT_000b42c4")) (; ";")) (if_statement "if (DAT_000b42d8 == (FILE *)0x0) {\n          pFVar5 = *(FILE **)puVar1;\n          if (((DAT_000b42c4 == (FILE *)0x0) && (pFVar4 = pFVar5, DAT_000b42c1 != '\x01')) &&\n             (pFVar5 == (FILE *)0x0)) goto LAB_0003e478;\n        }\n        else {\n          pFVar5 = DAT_000b42d8;\n          if ((DAT_000b42c4 == (FILE *)0x0) && (DAT_000b42c1 == '\0')) goto LAB_0003e47a;\n        }" (if "if") (parenthesized_expression "(DAT_000b42d8 == (FILE *)0x0)" (( "(") (binary_expression "DAT_000b42d8 == (FILE *)0x0" (identifier "DAT_000b42d8") (== "==") (cast_expression "(FILE *)0x0" (( "(") (type_descriptor "FILE *" (type_identifier "FILE") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          pFVar5 = *(FILE **)puVar1;\n          if (((DAT_000b42c4 == (FILE *)0x0) && (pFVar4 = pFVar5, DAT_000b42c1 != '\x01')) &&\n             (pFVar5 == (FILE *)0x0)) goto LAB_0003e478;\n        }" ({ "{") (expression_statement "pFVar5 = *(FILE **)puVar1;" (assignment_expression "pFVar5 = *(FILE **)puVar1" (identifier "pFVar5") (= "=") (pointer_expression "*(FILE **)puVar1" (* "*") (cast_expression "(FILE **)puVar1" (( "(") (type_descriptor "FILE **" (type_identifier "FILE") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "puVar1")))) (; ";")) (if_statement "if (((DAT_000b42c4 == (FILE *)0x0) && (pFVar4 = pFVar5, DAT_000b42c1 != '\x01')) &&\n             (pFVar5 == (FILE *)0x0)) goto LAB_0003e478;" (if "if") (parenthesized_expression "(((DAT_000b42c4 == (FILE *)0x0) && (pFVar4 = pFVar5, DAT_000b42c1 != '\x01')) &&\n             (pFVar5 == (FILE *)0x0))" (( "(") (binary_expression "((DAT_000b42c4 == (FILE *)0x0) && (pFVar4 = pFVar5, DAT_000b42c1 != '\x01')) &&\n             (pFVar5 == (FILE *)0x0)" (parenthesized_expression "((DAT_000b42c4 == (FILE *)0x0) && (pFVar4 = pFVar5, DAT_000b42c1 != '\x01'))" (( "(") (binary_expression "(DAT_000b42c4 == (FILE *)0x0) && (pFVar4 = pFVar5, DAT_000b42c1 != '\x01')" (parenthesized_expression "(DAT_000b42c4 == (FILE *)0x0)" (( "(") (binary_expression "DAT_000b42c4 == (FILE *)0x0" (identifier "DAT_000b42c4") (== "==") (cast_expression "(FILE *)0x0" (( "(") (type_descriptor "FILE *" (type_identifier "FILE") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "(pFVar4 = pFVar5, DAT_000b42c1 != '\x01')" (( "(") (comma_expression "pFVar4 = pFVar5, DAT_000b42c1 != '\x01'" (assignment_expression "pFVar4 = pFVar5" (identifier "pFVar4") (= "=") (identifier "pFVar5")) (, ",") (binary_expression "DAT_000b42c1 != '\x01'" (identifier "DAT_000b42c1") (!= "!=") (char_literal "'\x01'" (' "'") (escape_sequence "\x01") (' "'")))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(pFVar5 == (FILE *)0x0)" (( "(") (binary_expression "pFVar5 == (FILE *)0x0" (identifier "pFVar5") (== "==") (cast_expression "(FILE *)0x0" (( "(") (type_descriptor "FILE *" (type_identifier "FILE") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")"))) () ")")) (goto_statement "goto LAB_0003e478;" (goto "goto") (statement_identifier "LAB_0003e478") (; ";"))) (} "}")) (else_clause "else {\n          pFVar5 = DAT_000b42d8;\n          if ((DAT_000b42c4 == (FILE *)0x0) && (DAT_000b42c1 == '\0')) goto LAB_0003e47a;\n        }" (else "else") (compound_statement "{\n          pFVar5 = DAT_000b42d8;\n          if ((DAT_000b42c4 == (FILE *)0x0) && (DAT_000b42c1 == '\0')) goto LAB_0003e47a;\n        }" ({ "{") (expression_statement "pFVar5 = DAT_000b42d8;" (assignment_expression "pFVar5 = DAT_000b42d8" (identifier "pFVar5") (= "=") (identifier "DAT_000b42d8")) (; ";")) (if_statement "if ((DAT_000b42c4 == (FILE *)0x0) && (DAT_000b42c1 == '\0')) goto LAB_0003e47a;" (if "if") (parenthesized_expression "((DAT_000b42c4 == (FILE *)0x0) && (DAT_000b42c1 == '\0'))" (( "(") (binary_expression "(DAT_000b42c4 == (FILE *)0x0) && (DAT_000b42c1 == '\0')" (parenthesized_expression "(DAT_000b42c4 == (FILE *)0x0)" (( "(") (binary_expression "DAT_000b42c4 == (FILE *)0x0" (identifier "DAT_000b42c4") (== "==") (cast_expression "(FILE *)0x0" (( "(") (type_descriptor "FILE *" (type_identifier "FILE") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "(DAT_000b42c1 == '\0')" (( "(") (binary_expression "DAT_000b42c1 == '\0'" (identifier "DAT_000b42c1") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (goto_statement "goto LAB_0003e47a;" (goto "goto") (statement_identifier "LAB_0003e47a") (; ";"))) (} "}")))) (} "}")) (else_clause "else {\n        if (DAT_000b42c1 == '\0') {\nLAB_0003e478:\n          pFVar5 = (FILE *)0x0;\nLAB_0003e47a:\n          __vfprintf_chk(pFVar5,1,param_1,&stack0x00000008);\n          goto LAB_0003e439;\n        }\n        pFVar5 = (FILE *)0x0;\n        pFVar4 = (FILE *)0x0;\n      }" (else "else") (compound_statement "{\n        if (DAT_000b42c1 == '\0') {\nLAB_0003e478:\n          pFVar5 = (FILE *)0x0;\nLAB_0003e47a:\n          __vfprintf_chk(pFVar5,1,param_1,&stack0x00000008);\n          goto LAB_0003e439;\n        }\n        pFVar5 = (FILE *)0x0;\n        pFVar4 = (FILE *)0x0;\n      }" ({ "{") (if_statement "if (DAT_000b42c1 == '\0') {\nLAB_0003e478:\n          pFVar5 = (FILE *)0x0;\nLAB_0003e47a:\n          __vfprintf_chk(pFVar5,1,param_1,&stack0x00000008);\n          goto LAB_0003e439;\n        }" (if "if") (parenthesized_expression "(DAT_000b42c1 == '\0')" (( "(") (binary_expression "DAT_000b42c1 == '\0'" (identifier "DAT_000b42c1") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\nLAB_0003e478:\n          pFVar5 = (FILE *)0x0;\nLAB_0003e47a:\n          __vfprintf_chk(pFVar5,1,param_1,&stack0x00000008);\n          goto LAB_0003e439;\n        }" ({ "{") (labeled_statement "LAB_0003e478:\n          pFVar5 = (FILE *)0x0;" (statement_identifier "LAB_0003e478") (: ":") (expression_statement "pFVar5 = (FILE *)0x0;" (assignment_expression "pFVar5 = (FILE *)0x0" (identifier "pFVar5") (= "=") (cast_expression "(FILE *)0x0" (( "(") (type_descriptor "FILE *" (type_identifier "FILE") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";"))) (labeled_statement "LAB_0003e47a:\n          __vfprintf_chk(pFVar5,1,param_1,&stack0x00000008);" (statement_identifier "LAB_0003e47a") (: ":") (expression_statement "__vfprintf_chk(pFVar5,1,param_1,&stack0x00000008);" (call_expression "__vfprintf_chk(pFVar5,1,param_1,&stack0x00000008)" (identifier "__vfprintf_chk") (argument_list "(pFVar5,1,param_1,&stack0x00000008)" (( "(") (identifier "pFVar5") (, ",") (number_literal "1") (, ",") (identifier "param_1") (, ",") (pointer_expression "&stack0x00000008" (& "&") (identifier "stack0x00000008")) () ")"))) (; ";"))) (goto_statement "goto LAB_0003e439;" (goto "goto") (statement_identifier "LAB_0003e439") (; ";")) (} "}"))) (expression_statement "pFVar5 = (FILE *)0x0;" (assignment_expression "pFVar5 = (FILE *)0x0" (identifier "pFVar5") (= "=") (cast_expression "(FILE *)0x0" (( "(") (type_descriptor "FILE *" (type_identifier "FILE") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "pFVar4 = (FILE *)0x0;" (assignment_expression "pFVar4 = (FILE *)0x0" (identifier "pFVar4") (= "=") (cast_expression "(FILE *)0x0" (( "(") (type_descriptor "FILE *" (type_identifier "FILE") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}")))) (expression_statement "__s = local_ac;" (assignment_expression "__s = local_ac" (identifier "__s") (= "=") (identifier "local_ac")) (; ";")) (if_statement "if (local_a4 == 0) {\n        local_a4 = 0x80;\n        __s = local_a0;\n      }" (if "if") (parenthesized_expression "(local_a4 == 0)" (( "(") (binary_expression "local_a4 == 0" (identifier "local_a4") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        local_a4 = 0x80;\n        __s = local_a0;\n      }" ({ "{") (expression_statement "local_a4 = 0x80;" (assignment_expression "local_a4 = 0x80" (identifier "local_a4") (= "=") (number_literal "0x80")) (; ";")) (expression_statement "__s = local_a0;" (assignment_expression "__s = local_a0" (identifier "__s") (= "=") (identifier "local_a0")) (; ";")) (} "}"))) (expression_statement "iVar3 = __vsnprintf_chk(__s,local_a4,1,0xffffffff,param_1,&stack0x00000008);" (assignment_expression "iVar3 = __vsnprintf_chk(__s,local_a4,1,0xffffffff,param_1,&stack0x00000008)" (identifier "iVar3") (= "=") (call_expression "__vsnprintf_chk(__s,local_a4,1,0xffffffff,param_1,&stack0x00000008)" (identifier "__vsnprintf_chk") (argument_list "(__s,local_a4,1,0xffffffff,param_1,&stack0x00000008)" (( "(") (identifier "__s") (, ",") (identifier "local_a4") (, ",") (number_literal "1") (, ",") (number_literal "0xffffffff") (, ",") (identifier "param_1") (, ",") (pointer_expression "&stack0x00000008" (& "&") (identifier "stack0x00000008")) () ")")))) (; ";")) (if_statement "if (iVar3 == -1) {\n        local_a4 = local_a4 * 2;\n      }\n      else {\n        if (iVar3 < local_a4) goto code_r0x0003e3f3;\n        local_a4 = iVar3 + 1;\n      }" (if "if") (parenthesized_expression "(iVar3 == -1)" (( "(") (binary_expression "iVar3 == -1" (identifier "iVar3") (== "==") (number_literal "-1")) () ")")) (compound_statement "{\n        local_a4 = local_a4 * 2;\n      }" ({ "{") (expression_statement "local_a4 = local_a4 * 2;" (assignment_expression "local_a4 = local_a4 * 2" (identifier "local_a4") (= "=") (binary_expression "local_a4 * 2" (identifier "local_a4") (* "*") (number_literal "2"))) (; ";")) (} "}")) (else_clause "else {\n        if (iVar3 < local_a4) goto code_r0x0003e3f3;\n        local_a4 = iVar3 + 1;\n      }" (else "else") (compound_statement "{\n        if (iVar3 < local_a4) goto code_r0x0003e3f3;\n        local_a4 = iVar3 + 1;\n      }" ({ "{") (if_statement "if (iVar3 < local_a4) goto code_r0x0003e3f3;" (if "if") (parenthesized_expression "(iVar3 < local_a4)" (( "(") (binary_expression "iVar3 < local_a4" (identifier "iVar3") (< "<") (identifier "local_a4")) () ")")) (goto_statement "goto code_r0x0003e3f3;" (goto "goto") (statement_identifier "code_r0x0003e3f3") (; ";"))) (expression_statement "local_a4 = iVar3 + 1;" (assignment_expression "local_a4 = iVar3 + 1" (identifier "local_a4") (= "=") (binary_expression "iVar3 + 1" (identifier "iVar3") (+ "+") (number_literal "1"))) (; ";")) (} "}")))) (expression_statement "local_ac = (char *)FUN_00062e80(local_ac,local_a4);" (assignment_expression "local_ac = (char *)FUN_00062e80(local_ac,local_a4)" (identifier "local_ac") (= "=") (cast_expression "(char *)FUN_00062e80(local_ac,local_a4)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00062e80(local_ac,local_a4)" (identifier "FUN_00062e80") (argument_list "(local_ac,local_a4)" (( "(") (identifier "local_ac") (, ",") (identifier "local_a4") () ")"))))) (; ";")) (expression_statement "cVar2 = DAT_000b42c2;" (assignment_expression "cVar2 = DAT_000b42c2" (identifier "cVar2") (= "=") (identifier "DAT_000b42c2")) (; ";")) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";")) (} "}"))) (goto_statement "goto LAB_0003e31e;" (goto "goto") (statement_identifier "LAB_0003e31e") (; ";")) (labeled_statement "code_r0x0003e3f3:\n  if (DAT_000b42c1 != '\0') {\n    FUN_0003d3d0();\n  }" (statement_identifier "code_r0x0003e3f3") (: ":") (if_statement "if (DAT_000b42c1 != '\0') {\n    FUN_0003d3d0();\n  }" (if "if") (parenthesized_expression "(DAT_000b42c1 != '\0')" (( "(") (binary_expression "DAT_000b42c1 != '\0'" (identifier "DAT_000b42c1") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n    FUN_0003d3d0();\n  }" ({ "{") (expression_statement "FUN_0003d3d0();" (call_expression "FUN_0003d3d0()" (identifier "FUN_0003d3d0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))) (expression_statement "fputs(__s,pFVar5);" (call_expression "fputs(__s,pFVar5)" (identifier "fputs") (argument_list "(__s,pFVar5)" (( "(") (identifier "__s") (, ",") (identifier "pFVar5") () ")"))) (; ";")) (if_statement "if (pFVar4 != (FILE *)0x0) {\n    fputs(__s,pFVar4);\n  }" (if "if") (parenthesized_expression "(pFVar4 != (FILE *)0x0)" (( "(") (binary_expression "pFVar4 != (FILE *)0x0" (identifier "pFVar4") (!= "!=") (cast_expression "(FILE *)0x0" (( "(") (type_descriptor "FILE *" (type_identifier "FILE") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    fputs(__s,pFVar4);\n  }" ({ "{") (expression_statement "fputs(__s,pFVar4);" (call_expression "fputs(__s,pFVar4)" (identifier "fputs") (argument_list "(__s,pFVar4)" (( "(") (identifier "__s") (, ",") (identifier "pFVar4") () ")"))) (; ";")) (} "}"))) (expression_statement "free(local_ac);" (call_expression "free(local_ac)" (identifier "free") (argument_list "(local_ac)" (( "(") (identifier "local_ac") () ")"))) (; ";")) (labeled_statement "LAB_0003e439:\n  if (DAT_000af150 == '\0') {\n    DAT_000b42c0 = 1;\n    goto LAB_0003e31e;\n  }" (statement_identifier "LAB_0003e439") (: ":") (if_statement "if (DAT_000af150 == '\0') {\n    DAT_000b42c0 = 1;\n    goto LAB_0003e31e;\n  }" (if "if") (parenthesized_expression "(DAT_000af150 == '\0')" (( "(") (binary_expression "DAT_000af150 == '\0'" (identifier "DAT_000af150") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n    DAT_000b42c0 = 1;\n    goto LAB_0003e31e;\n  }" ({ "{") (expression_statement "DAT_000b42c0 = 1;" (assignment_expression "DAT_000b42c0 = 1" (identifier "DAT_000b42c0") (= "=") (number_literal "1")) (; ";")) (goto_statement "goto LAB_0003e31e;" (goto "goto") (statement_identifier "LAB_0003e31e") (; ";")) (} "}")))) (if_statement "if (DAT_000b42c2 == '\0') {\n    pFVar5 = DAT_000b42c4;\n    if (DAT_000b42d8 == (FILE *)0x0) {\n      pFVar4 = *(FILE **)PTR_stderr_000aefc0;\n      if (DAT_000b42c4 == (FILE *)0x0) {\n        pFVar5 = pFVar4;\n        if (pFVar4 == (FILE *)0x0) goto LAB_0003e4cd;\nLAB_0003e4b5:\n        FUN_000632b0(pFVar4);\n      }\n      else if (pFVar4 != (FILE *)0x0) goto LAB_0003e4b5;\n      FUN_000632b0(pFVar5);\n    }\n    else {\n      pFVar4 = DAT_000b42d8;\n      if (DAT_000b42c4 != (FILE *)0x0) goto LAB_0003e4b5;\n      FUN_000632b0(DAT_000b42d8);\n    }\n  }" (if "if") (parenthesized_expression "(DAT_000b42c2 == '\0')" (( "(") (binary_expression "DAT_000b42c2 == '\0'" (identifier "DAT_000b42c2") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n    pFVar5 = DAT_000b42c4;\n    if (DAT_000b42d8 == (FILE *)0x0) {\n      pFVar4 = *(FILE **)PTR_stderr_000aefc0;\n      if (DAT_000b42c4 == (FILE *)0x0) {\n        pFVar5 = pFVar4;\n        if (pFVar4 == (FILE *)0x0) goto LAB_0003e4cd;\nLAB_0003e4b5:\n        FUN_000632b0(pFVar4);\n      }\n      else if (pFVar4 != (FILE *)0x0) goto LAB_0003e4b5;\n      FUN_000632b0(pFVar5);\n    }\n    else {\n      pFVar4 = DAT_000b42d8;\n      if (DAT_000b42c4 != (FILE *)0x0) goto LAB_0003e4b5;\n      FUN_000632b0(DAT_000b42d8);\n    }\n  }" ({ "{") (expression_statement "pFVar5 = DAT_000b42c4;" (assignment_expression "pFVar5 = DAT_000b42c4" (identifier "pFVar5") (= "=") (identifier "DAT_000b42c4")) (; ";")) (if_statement "if (DAT_000b42d8 == (FILE *)0x0) {\n      pFVar4 = *(FILE **)PTR_stderr_000aefc0;\n      if (DAT_000b42c4 == (FILE *)0x0) {\n        pFVar5 = pFVar4;\n        if (pFVar4 == (FILE *)0x0) goto LAB_0003e4cd;\nLAB_0003e4b5:\n        FUN_000632b0(pFVar4);\n      }\n      else if (pFVar4 != (FILE *)0x0) goto LAB_0003e4b5;\n      FUN_000632b0(pFVar5);\n    }\n    else {\n      pFVar4 = DAT_000b42d8;\n      if (DAT_000b42c4 != (FILE *)0x0) goto LAB_0003e4b5;\n      FUN_000632b0(DAT_000b42d8);\n    }" (if "if") (parenthesized_expression "(DAT_000b42d8 == (FILE *)0x0)" (( "(") (binary_expression "DAT_000b42d8 == (FILE *)0x0" (identifier "DAT_000b42d8") (== "==") (cast_expression "(FILE *)0x0" (( "(") (type_descriptor "FILE *" (type_identifier "FILE") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      pFVar4 = *(FILE **)PTR_stderr_000aefc0;\n      if (DAT_000b42c4 == (FILE *)0x0) {\n        pFVar5 = pFVar4;\n        if (pFVar4 == (FILE *)0x0) goto LAB_0003e4cd;\nLAB_0003e4b5:\n        FUN_000632b0(pFVar4);\n      }\n      else if (pFVar4 != (FILE *)0x0) goto LAB_0003e4b5;\n      FUN_000632b0(pFVar5);\n    }" ({ "{") (expression_statement "pFVar4 = *(FILE **)PTR_stderr_000aefc0;" (assignment_expression "pFVar4 = *(FILE **)PTR_stderr_000aefc0" (identifier "pFVar4") (= "=") (pointer_expression "*(FILE **)PTR_stderr_000aefc0" (* "*") (cast_expression "(FILE **)PTR_stderr_000aefc0" (( "(") (type_descriptor "FILE **" (type_identifier "FILE") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "PTR_stderr_000aefc0")))) (; ";")) (if_statement "if (DAT_000b42c4 == (FILE *)0x0) {\n        pFVar5 = pFVar4;\n        if (pFVar4 == (FILE *)0x0) goto LAB_0003e4cd;\nLAB_0003e4b5:\n        FUN_000632b0(pFVar4);\n      }\n      else if (pFVar4 != (FILE *)0x0) goto LAB_0003e4b5;" (if "if") (parenthesized_expression "(DAT_000b42c4 == (FILE *)0x0)" (( "(") (binary_expression "DAT_000b42c4 == (FILE *)0x0" (identifier "DAT_000b42c4") (== "==") (cast_expression "(FILE *)0x0" (( "(") (type_descriptor "FILE *" (type_identifier "FILE") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        pFVar5 = pFVar4;\n        if (pFVar4 == (FILE *)0x0) goto LAB_0003e4cd;\nLAB_0003e4b5:\n        FUN_000632b0(pFVar4);\n      }" ({ "{") (expression_statement "pFVar5 = pFVar4;" (assignment_expression "pFVar5 = pFVar4" (identifier "pFVar5") (= "=") (identifier "pFVar4")) (; ";")) (if_statement "if (pFVar4 == (FILE *)0x0) goto LAB_0003e4cd;" (if "if") (parenthesized_expression "(pFVar4 == (FILE *)0x0)" (( "(") (binary_expression "pFVar4 == (FILE *)0x0" (identifier "pFVar4") (== "==") (cast_expression "(FILE *)0x0" (( "(") (type_descriptor "FILE *" (type_identifier "FILE") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_0003e4cd;" (goto "goto") (statement_identifier "LAB_0003e4cd") (; ";"))) (labeled_statement "LAB_0003e4b5:\n        FUN_000632b0(pFVar4);" (statement_identifier "LAB_0003e4b5") (: ":") (expression_statement "FUN_000632b0(pFVar4);" (call_expression "FUN_000632b0(pFVar4)" (identifier "FUN_000632b0") (argument_list "(pFVar4)" (( "(") (identifier "pFVar4") () ")"))) (; ";"))) (} "}")) (else_clause "else if (pFVar4 != (FILE *)0x0) goto LAB_0003e4b5;" (else "else") (if_statement "if (pFVar4 != (FILE *)0x0) goto LAB_0003e4b5;" (if "if") (parenthesized_expression "(pFVar4 != (FILE *)0x0)" (( "(") (binary_expression "pFVar4 != (FILE *)0x0" (identifier "pFVar4") (!= "!=") (cast_expression "(FILE *)0x0" (( "(") (type_descriptor "FILE *" (type_identifier "FILE") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_0003e4b5;" (goto "goto") (statement_identifier "LAB_0003e4b5") (; ";"))))) (expression_statement "FUN_000632b0(pFVar5);" (call_expression "FUN_000632b0(pFVar5)" (identifier "FUN_000632b0") (argument_list "(pFVar5)" (( "(") (identifier "pFVar5") () ")"))) (; ";")) (} "}")) (else_clause "else {\n      pFVar4 = DAT_000b42d8;\n      if (DAT_000b42c4 != (FILE *)0x0) goto LAB_0003e4b5;\n      FUN_000632b0(DAT_000b42d8);\n    }" (else "else") (compound_statement "{\n      pFVar4 = DAT_000b42d8;\n      if (DAT_000b42c4 != (FILE *)0x0) goto LAB_0003e4b5;\n      FUN_000632b0(DAT_000b42d8);\n    }" ({ "{") (expression_statement "pFVar4 = DAT_000b42d8;" (assignment_expression "pFVar4 = DAT_000b42d8" (identifier "pFVar4") (= "=") (identifier "DAT_000b42d8")) (; ";")) (if_statement "if (DAT_000b42c4 != (FILE *)0x0) goto LAB_0003e4b5;" (if "if") (parenthesized_expression "(DAT_000b42c4 != (FILE *)0x0)" (( "(") (binary_expression "DAT_000b42c4 != (FILE *)0x0" (identifier "DAT_000b42c4") (!= "!=") (cast_expression "(FILE *)0x0" (( "(") (type_descriptor "FILE *" (type_identifier "FILE") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_0003e4b5;" (goto "goto") (statement_identifier "LAB_0003e4b5") (; ";"))) (expression_statement "FUN_000632b0(DAT_000b42d8);" (call_expression "FUN_000632b0(DAT_000b42d8)" (identifier "FUN_000632b0") (argument_list "(DAT_000b42d8)" (( "(") (identifier "DAT_000b42d8") () ")"))) (; ";")) (} "}")))) (} "}"))) (labeled_statement "LAB_0003e4cd:\n  DAT_000b42c0 = 0;" (statement_identifier "LAB_0003e4cd") (: ":") (expression_statement "DAT_000b42c0 = 0;" (assignment_expression "DAT_000b42c0 = 0" (identifier "DAT_000b42c0") (= "=") (number_literal "0")) (; ";"))) (labeled_statement "LAB_0003e31e:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_0007ad20();\n  }" (statement_identifier "LAB_0003e31e") (: ":") (if_statement "if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_0007ad20();\n  }" (if "if") (parenthesized_expression "(local_20 != *(int *)(in_GS_OFFSET + 0x14))" (( "(") (binary_expression "local_20 != *(int *)(in_GS_OFFSET + 0x14)" (identifier "local_20") (!= "!=") (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" (* "*") (cast_expression "(int *)(in_GS_OFFSET + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_GS_OFFSET + 0x14)" (( "(") (binary_expression "in_GS_OFFSET + 0x14" (identifier "in_GS_OFFSET") (+ "+") (number_literal "0x14")) () ")"))))) () ")")) (compound_statement "{\n                    \n    FUN_0007ad20();\n  }" ({ "{") (expression_statement "FUN_0007ad20();" (call_expression "FUN_0007ad20()" (identifier "FUN_0007ad20") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))) (return_statement "return;" (return "return") (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Unknown calling convention */
/* WARNING: Enum "anon_enum_32": Some values do not have unique names */

void function_1(char *fmt,...)

{
  int var_20;
  type_1 *puVar2;
  char var_4;
  int var_11;
  type_2 *var_18;
  type_2 *var_15;
  type_2 *pFVar6;
  type_2 *var_8;
  char *s;
  int var_1;
  type_3 lpstate;
  char smallmsg [128];
  
  var_20 = *(int *)(var_1 + 0x14);
  if ((opt.debug) &&
     (var_2(), puVar2 = PTR_stderr_000aefc0, var_3 == false)) {
    lpstate.bigmsg = (char *)0x0;
    lpstate.allocated = 0;
    var_4 = '\0';
    do {
      if (var_4 == '\0') {
        var_15 = (type_2 *)var_6;
        if (var_5 == (type_2 *)0x0) {
          var_8 = *(type_2 **)puVar2;
          if (((var_6 == (type_2 *)0x0) && (var_15 = var_8, var_7 != true)) &&
             (var_8 == (type_2 *)0x0)) goto LAB_0003e478;
        }
        else {
          var_8 = (type_2 *)var_5;
          if ((var_6 == (type_2 *)0x0) && (pFVar6 = var_5, var_7 == false))
          goto LAB_0003e47a;
        }
      }
      else {
        if (var_7 == false) {
LAB_0003e478:
          pFVar6 = (type_2 *)0x0;
LAB_0003e47a:
          var_9(pFVar6,1,fmt,&stack0x00000008);
          goto LAB_0003e439;
        }
        var_8 = (type_2 *)0x0;
        var_15 = (type_2 *)0x0;
      }
      s = lpstate.bigmsg;
      if (lpstate.allocated == 0) {
        lpstate.allocated = 0x80;
        s = smallmsg;
      }
      var_11 = var_10(s,lpstate.allocated,1,0xffffffff,fmt,&stack0x00000008);
      if (var_11 == -1) {
        lpstate.allocated = lpstate.allocated * 2;
      }
      else {
        if (var_11 < lpstate.allocated) goto code_r0x0003e3f3;
        lpstate.allocated = var_11 + 1;
      }
      lpstate.bigmsg = (char *)var_12(lpstate.bigmsg,lpstate.allocated);
      var_4 = var_3;
    } while( true );
  }
  goto LAB_0003e31e;
code_r0x0003e3f3:
  if (var_7 != false) {
    var_13(s);
  }
  var_14(s,var_8);
  if (var_15 != (type_2 *)0x0) {
    var_14(s,var_15);
  }
  var_16(lpstate.bigmsg);
LAB_0003e439:
  if (var_17 == false) {
    needs_flushing = true;
    goto LAB_0003e31e;
  }
  if (var_3 == false) {
    pFVar6 = var_6;
    if (var_5 == (type_2 *)0x0) {
      var_18 = *(type_2 **)PTR_stderr_000aefc0;
      if (var_6 == (type_2 *)0x0) {
        pFVar6 = var_18;
        if (var_18 == (type_2 *)0x0) goto LAB_0003e4cd;
LAB_0003e4b5:
        var_19(var_18);
      }
      else if (var_18 != (type_2 *)0x0) goto LAB_0003e4b5;
      var_19(pFVar6);
    }
    else {
      var_18 = var_5;
      if (var_6 != (type_2 *)0x0) goto LAB_0003e4b5;
      var_19(var_5);
    }
  }
LAB_0003e4cd:
  needs_flushing = false;
LAB_0003e31e:
  if (var_20 != *(int *)(var_1 + 0x14)) {
                    /* WARNING: Subroutine does not return */
    var_21();
  }
  return;
}


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

/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */

void MASKED(undefined4 param_1)

{
  undefined *puVar1;
  char cVar2;
  int iVar3;
  FILE *pFVar4;
  FILE *pFVar5;
  char *__s;
  int in_GS_OFFSET;
  char *local_ac;
  int local_a4;
  char local_a0 [128];
  int local_20;
  undefined4 uStack_14;
  
  uStack_14 = 0x3e2e9;
  local_20 = *(int *)(in_GS_OFFSET + 0x14);
  if ((DAT_000b6b9b != '\0') && (FUN_0003da30(), puVar1 = PTR_stderr_000aefc0, DAT_000b42c2 == '\0')
     ) {
    local_ac = (char *)0x0;
    local_a4 = 0;
    cVar2 = '\0';
    do {
      if (cVar2 == '\0') {
        pFVar4 = DAT_000b42c4;
        if (DAT_000b42d8 == (FILE *)0x0) {
          pFVar5 = *(FILE **)puVar1;
          if (((DAT_000b42c4 == (FILE *)0x0) && (pFVar4 = pFVar5, DAT_000b42c1 != '\x01')) &&
             (pFVar5 == (FILE *)0x0)) goto LAB_0003e478;
        }
        else {
          pFVar5 = DAT_000b42d8;
          if ((DAT_000b42c4 == (FILE *)0x0) && (DAT_000b42c1 == '\0')) goto LAB_0003e47a;
        }
      }
      else {
        if (DAT_000b42c1 == '\0') {
LAB_0003e478:
          pFVar5 = (FILE *)0x0;
LAB_0003e47a:
          __vfprintf_chk(pFVar5,1,param_1,&stack0x00000008);
          goto LAB_0003e439;
        }
        pFVar5 = (FILE *)0x0;
        pFVar4 = (FILE *)0x0;
      }
      __s = local_ac;
      if (local_a4 == 0) {
        local_a4 = 0x80;
        __s = local_a0;
      }
      iVar3 = __vsnprintf_chk(__s,local_a4,1,0xffffffff,param_1,&stack0x00000008);
      if (iVar3 == -1) {
        local_a4 = local_a4 * 2;
      }
      else {
        if (iVar3 < local_a4) goto code_r0x0003e3f3;
        local_a4 = iVar3 + 1;
      }
      local_ac = (char *)FUN_00062e80(local_ac,local_a4);
      cVar2 = DAT_000b42c2;
    } while( true );
  }
  goto LAB_0003e31e;
code_r0x0003e3f3:
  if (DAT_000b42c1 != '\0') {
    FUN_0003d3d0();
  }
  fputs(__s,pFVar5);
  if (pFVar4 != (FILE *)0x0) {
    fputs(__s,pFVar4);
  }
  free(local_ac);
LAB_0003e439:
  if (DAT_000af150 == '\0') {
    DAT_000b42c0 = 1;
    goto LAB_0003e31e;
  }
  if (DAT_000b42c2 == '\0') {
    pFVar5 = DAT_000b42c4;
    if (DAT_000b42d8 == (FILE *)0x0) {
      pFVar4 = *(FILE **)PTR_stderr_000aefc0;
      if (DAT_000b42c4 == (FILE *)0x0) {
        pFVar5 = pFVar4;
        if (pFVar4 == (FILE *)0x0) goto LAB_0003e4cd;
LAB_0003e4b5:
        FUN_000632b0(pFVar4);
      }
      else if (pFVar4 != (FILE *)0x0) goto LAB_0003e4b5;
      FUN_000632b0(pFVar5);
    }
    else {
      pFVar4 = DAT_000b42d8;
      if (DAT_000b42c4 != (FILE *)0x0) goto LAB_0003e4b5;
      FUN_000632b0(DAT_000b42d8);
    }
  }
LAB_0003e4cd:
  DAT_000b42c0 = 0;
LAB_0003e31e:
  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {
                    /* WARNING: Subroutine does not return */
    FUN_0007ad20();
  }
  return;
}

