
/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Unknown calling convention */

void s_incbin(int x)

{
  char *pcVar1;
  FILE *__stream;
  char *pcVar2;
  int iVar3;
  long lVar4;
  size_t sVar5;
  char *format;
  char cVar6;
  size_t nchars;
  offsetT oVar7;
  int local_44;
  size_t local_40;
  int len;
  expressionS exp;
  
  if (*input_line_pointer == ' ') {
    input_line_pointer = input_line_pointer + 1;
  }
  pcVar1 = demand_copy_string(&len);
  if (pcVar1 != (char *)0x0) {
    cVar6 = *input_line_pointer;
    if (cVar6 == ' ') {
      cVar6 = input_line_pointer[1];
      input_line_pointer = input_line_pointer + 1;
    }
    local_40 = 0;
    local_44 = 0;
    if (cVar6 == ',') {
      input_line_pointer = input_line_pointer + 1;
      oVar7 = get_absolute_expr(&exp);
      local_44 = (int)oVar7;
      cVar6 = *input_line_pointer;
      if (cVar6 == ' ') {
        cVar6 = input_line_pointer[1];
        input_line_pointer = input_line_pointer + 1;
      }
      local_40 = 0;
      if (cVar6 == ',') {
        input_line_pointer = input_line_pointer + 1;
        oVar7 = get_absolute_expr(&exp);
        local_40 = (size_t)oVar7;
        if (local_40 == 0) {
          pcVar2 = (char *)dcgettext(0,".incbin count zero, ignoring `%s\'",5);
          as_warn(pcVar2,pcVar1);
        }
        if (*input_line_pointer == ' ') {
          input_line_pointer = input_line_pointer + 1;
        }
      }
    }
    demand_empty_rest_of_line();
    __stream = fopen64(pcVar1,"r");
    if (__stream == (FILE *)0x0) {
      pcVar2 = (char *)xmalloc(include_dir_maxlen + len + 5);
      if (0 < include_dir_count) {
        iVar3 = 0;
        do {
          sprintf(pcVar2,"%s/%s",include_dirs[iVar3],pcVar1);
          __stream = fopen64(pcVar2,"r");
          if (__stream != (FILE *)0x0) goto LAB_00033c46;
          iVar3 = iVar3 + 1;
        } while (iVar3 < include_dir_count);
      }
      format = (char *)dcgettext(0,"file not found: %s",5);
      as_bad(format,pcVar1);
    }
    else {
      pcVar2 = (char *)xstrdup(pcVar1);
LAB_00033c46:
      register_dependency(pcVar2);
      iVar3 = fseek(__stream,0,2);
      if (iVar3 == 0) {
        lVar4 = ftell(__stream);
        nchars = lVar4 - local_44;
        if (local_40 != 0) {
          nchars = local_40;
        }
        if ((((char)((byte)((uint)local_44 >> 0x18) | (byte)(nchars >> 0x18)) < '\0') || (lVar4 < 0)
            ) || (lVar4 < (int)(local_44 + nchars))) {
          pcVar1 = (char *)dcgettext(0,"skip (%ld) or count (%ld) invalid for file size (%ld)",5);
          as_bad(pcVar1,local_44,nchars,lVar4);
        }
        else {
          iVar3 = fseek(__stream,local_44,0);
          if (iVar3 == 0) {
            pcVar1 = frag_more(nchars);
            sVar5 = fread(pcVar1,1,nchars,__stream);
            if ((int)sVar5 < (int)nchars) {
              pcVar1 = (char *)dcgettext(0,"truncated file `%s\', %ld of %ld bytes read",5);
              as_warn(pcVar1,pcVar2,sVar5,nchars);
            }
          }
          else {
            pcVar1 = (char *)dcgettext(0,"could not skip to %ld in file `%s\'",5);
            as_bad(pcVar1,local_44,pcVar2);
          }
        }
      }
      else {
        pcVar1 = (char *)dcgettext(0,"seek to end of .incbin file failed `%s\'",5);
        as_bad(pcVar1,pcVar2);
      }
      fclose(__stream);
    }
    free(pcVar2);
  }
  return;
}



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

void FUN_00033ba0(void)

{
  char *__filename;
  FILE *__stream;
  char *__s;
  int iVar1;
  long lVar2;
  void *__ptr;
  size_t sVar3;
  undefined4 uVar4;
  char cVar5;
  size_t __n;
  int local_44;
  size_t local_40;
  int local_34 [8];
  undefined4 uStack_14;
  
  uStack_14 = 0x33ba9;
  if (*DAT_00077ef8 == ' ') {
    DAT_00077ef8 = DAT_00077ef8 + 1;
  }
  __filename = (char *)FUN_00033650(local_34);
  if (__filename != (char *)0x0) {
    cVar5 = *DAT_00077ef8;
    if (cVar5 == ' ') {
      cVar5 = DAT_00077ef8[1];
      DAT_00077ef8 = DAT_00077ef8 + 1;
    }
    local_40 = 0;
    local_44 = 0;
    if (cVar5 == ',') {
      DAT_00077ef8 = DAT_00077ef8 + 1;
      local_44 = FUN_0002c480();
      cVar5 = *DAT_00077ef8;
      if (cVar5 == ' ') {
        cVar5 = DAT_00077ef8[1];
        DAT_00077ef8 = DAT_00077ef8 + 1;
      }
      local_40 = 0;
      if (cVar5 == ',') {
        DAT_00077ef8 = DAT_00077ef8 + 1;
        local_40 = FUN_0002c480();
        if (local_40 == 0) {
          uVar4 = dcgettext(0,".incbin count zero, ignoring `%s\'",5);
          FUN_0002bc50(uVar4,__filename);
        }
        if (*DAT_00077ef8 == ' ') {
          DAT_00077ef8 = DAT_00077ef8 + 1;
        }
      }
    }
    FUN_0002e290();
    __stream = fopen64(__filename,"r");
    if (__stream == (FILE *)0x0) {
      __s = (char *)xmalloc(DAT_0006f2c4 + local_34[0] + 5);
      if (0 < DAT_00077f80) {
        iVar1 = 0;
        do {
          sprintf(__s,"%s/%s",*(undefined4 *)(DAT_00077ee4 + iVar1 * 4),__filename);
          __stream = fopen64(__s,"r");
          if (__stream != (FILE *)0x0) goto LAB_00033c46;
          iVar1 = iVar1 + 1;
        } while (iVar1 < DAT_00077f80);
      }
      uVar4 = dcgettext(0,"file not found: %s",5);
      FUN_0002bd30(uVar4,__filename);
    }
    else {
      __s = (char *)xstrdup(__filename);
LAB_00033c46:
      FUN_00019d00(__s);
      iVar1 = fseek(__stream,0,2);
      if (iVar1 == 0) {
        lVar2 = ftell(__stream);
        __n = lVar2 - local_44;
        if (local_40 != 0) {
          __n = local_40;
        }
        if ((((char)((byte)((uint)local_44 >> 0x18) | (byte)(__n >> 0x18)) < '\0') || (lVar2 < 0))
           || (lVar2 < (int)(local_44 + __n))) {
          uVar4 = dcgettext(0,"skip (%ld) or count (%ld) invalid for file size (%ld)",5);
          FUN_0002bd30(uVar4,local_44,__n,lVar2);
        }
        else {
          iVar1 = fseek(__stream,local_44,0);
          if (iVar1 == 0) {
            __ptr = (void *)FUN_00024a90(__n);
            sVar3 = fread(__ptr,1,__n,__stream);
            if ((int)sVar3 < (int)__n) {
              uVar4 = dcgettext(0,"truncated file `%s\', %ld of %ld bytes read",5);
              FUN_0002bc50(uVar4,__s,sVar3,__n);
            }
          }
          else {
            uVar4 = dcgettext(0,"could not skip to %ld in file `%s\'",5);
            FUN_0002bd30(uVar4,local_44,__s);
          }
        }
      }
      else {
        uVar4 = dcgettext(0,"seek to end of .incbin file failed `%s\'",5);
        FUN_0002bd30(uVar4,__s);
      }
      fclose(__stream);
    }
    free(__s);
  }
  return;
}


PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
CALL 0x00016090
ADD EBX,0x3b457
SUB ESP,0x4c
LEA ESI,[EBX + 0x8ef8]
MOV EAX,dword ptr [ESI]
CMP byte ptr [EAX],0x20
JNZ 0x00033bc4
ADD EAX,0x1
MOV dword ptr [ESI],EAX
SUB ESP,0xc
LEA EAX,[ESP + 0x34]
PUSH EAX
CALL 0x00033650
ADD ESP,0x10
MOV EBP,EAX
TEST EAX,EAX
JZ 0x00033d85
MOV EAX,dword ptr [ESI]
MOVZX EDX,byte ptr [EAX]
CMP DL,0x20
JNZ 0x00033bf3
LEA ECX,[EAX + 0x1]
MOV dword ptr [ESI],ECX
MOVZX EDX,byte ptr [EAX + 0x1]
MOV EAX,ECX
MOV dword ptr [ESP + 0x1c],0x0
MOV dword ptr [ESP + 0x18],0x0
CMP DL,0x2c
JZ 0x00033e68
CALL 0x0002e290
SUB ESP,0x8
LEA EAX,[EBX + 0xfffe63a7]
MOV dword ptr [ESP + 0x14],EAX
PUSH EAX
PUSH EBP
CALL 0x000142c0
ADD ESP,0x10
TEST EAX,EAX
JZ 0x00033d90
MOV dword ptr [ESP + 0x8],EAX
SUB ESP,0xc
PUSH EBP
CALL 0x00014300
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x8]
MOV EDI,EAX
MOV dword ptr [ESP + 0x8],EDX
SUB ESP,0xc
PUSH EDI
CALL 0x00019d00
ADD ESP,0xc
PUSH 0x2
PUSH 0x0
MOV EDX,dword ptr [ESP + 0x14]
PUSH EDX
MOV dword ptr [ESP + 0x18],EDX
CALL 0x00014280
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x8]
TEST EAX,EAX
JNZ 0x00033e38
SUB ESP,0xc
PUSH EDX
MOV dword ptr [ESP + 0x18],EDX
CALL 0x000144f0
ADD ESP,0x10
MOV ECX,dword ptr [ESP + 0x18]
MOV EDX,dword ptr [ESP + 0x1c]
MOV ESI,EAX
SUB EAX,ECX
TEST EDX,EDX
MOV EBP,EAX
CMOVNZ EBP,EDX
SHR ECX,0x1f
MOV EDX,dword ptr [ESP + 0x8]
MOV EAX,EBP
MOV dword ptr [ESP + 0x1c],EBP
SHR EAX,0x1f
OR CL,AL
JNZ 0x00033d40
TEST ESI,ESI
JS 0x00033d40
MOV EAX,dword ptr [ESP + 0x18]
ADD EAX,EBP
CMP EAX,ESI
JG 0x00033d40
SUB ESP,0x4
PUSH 0x0
PUSH dword ptr [ESP + 0x20]
PUSH EDX
MOV dword ptr [ESP + 0x18],EDX
CALL 0x00014280
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x8]
TEST EAX,EAX
JNZ 0x00033ed0
MOV dword ptr [ESP + 0x8],EDX
SUB ESP,0xc
MOV EBP,dword ptr [ESP + 0x28]
PUSH EBP
CALL 0x00024a90
MOV EDX,dword ptr [ESP + 0x18]
PUSH EDX
MOV dword ptr [ESP + 0x1c],EDX
PUSH EBP
PUSH 0x1
PUSH EAX
CALL 0x00014310
ADD ESP,0x20
MOV EDX,dword ptr [ESP + 0x8]
CMP EBP,EAX
MOV ESI,EAX
JLE 0x00033d6d
SUB ESP,0x4
LEA EAX,[EBX + 0xfffe4048]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000141c0
PUSH dword ptr [ESP + 0x2c]
PUSH ESI
PUSH EDI
PUSH EAX
CALL 0x0002bc50
ADD ESP,0x20
MOV EDX,dword ptr [ESP + 0x8]
JMP 0x00033d6d
MOV dword ptr [ESP + 0x8],EDX
LEA EAX,[EBX + 0xfffe3fec]
SUB ESP,0x4
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000141c0
PUSH ESI
PUSH dword ptr [ESP + 0x30]
PUSH dword ptr [ESP + 0x30]
PUSH EAX
CALL 0x0002bd30
ADD ESP,0x20
MOV EDX,dword ptr [ESP + 0x8]
SUB ESP,0xc
PUSH EDX
CALL 0x00014140
ADD ESP,0x10
SUB ESP,0xc
PUSH EDI
CALL 0x00014810
ADD ESP,0x10
ADD ESP,0x4c
POP EBX
POP ESI
POP EDI
POP EBP
RET
SUB ESP,0xc
MOV EAX,dword ptr [EBX + 0x2c4]
ADD EAX,dword ptr [ESP + 0x34]
ADD EAX,0x5
PUSH EAX
CALL 0x00014820
MOV EDI,EAX
LEA EAX,[EBX + 0x8f80]
MOV ECX,dword ptr [EAX]
MOV dword ptr [ESP + 0x24],EAX
ADD ESP,0x10
TEST ECX,ECX
JLE 0x00033e10
LEA EAX,[EBX + 0xfffe443d]
XOR ESI,ESI
LEA ECX,[EBX + 0x8ee4]
MOV dword ptr [ESP + 0x10],EAX
JMP 0x00033ddf
MOV EAX,dword ptr [ESP + 0x14]
ADD ESI,0x1
MOV ECX,dword ptr [ESP + 0x8]
CMP dword ptr [EAX],ESI
JLE 0x00033e10
PUSH EBP
MOV EAX,dword ptr [ECX]
MOV dword ptr [ESP + 0xc],ECX
PUSH dword ptr [EAX + ESI*0x4]
PUSH dword ptr [ESP + 0x18]
PUSH EDI
CALL 0x00014700
POP EAX
POP EDX
PUSH dword ptr [ESP + 0x14]
PUSH EDI
CALL 0x000142c0
ADD ESP,0x10
TEST EAX,EAX
JZ 0x00033dd0
MOV EDX,EAX
JMP 0x00033c46
SUB ESP,0x4
LEA EAX,[EBX + 0xfffe4443]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000141c0
POP EDX
POP ECX
PUSH EBP
PUSH EAX
CALL 0x0002bd30
ADD ESP,0x10
JMP 0x00033d79
MOV dword ptr [ESP + 0x8],EDX
LEA EAX,[EBX + 0xfffe3fc4]
SUB ESP,0x4
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000141c0
POP ESI
POP EBP
PUSH EDI
PUSH EAX
CALL 0x0002bd30
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x8]
JMP 0x00033d6d
ADD EAX,0x1
LEA EDI,[ESP + 0x2c]
MOV dword ptr [ESI],EAX
MOV EAX,EDI
CALL 0x0002c480
MOV dword ptr [ESP + 0x18],EAX
MOV EAX,dword ptr [ESI]
MOVZX EDX,byte ptr [EAX]
CMP DL,0x20
JNZ 0x00033e91
LEA ECX,[EAX + 0x1]
MOV dword ptr [ESI],ECX
MOVZX EDX,byte ptr [EAX + 0x1]
MOV EAX,ECX
MOV dword ptr [ESP + 0x1c],0x0
CMP DL,0x2c
JNZ 0x00033c0c
ADD EAX,0x1
MOV dword ptr [ESI],EAX
MOV EAX,EDI
CALL 0x0002c480
MOV dword ptr [ESP + 0x1c],EAX
TEST EAX,EAX
JZ 0x00033efd
MOV EAX,dword ptr [ESI]
CMP byte ptr [EAX],0x20
JNZ 0x00033c0c
ADD EAX,0x1
MOV dword ptr [ESI],EAX
JMP 0x00033c0c
SUB ESP,0x4
LEA EAX,[EBX + 0xfffe4024]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000141c0
ADD ESP,0xc
PUSH EDI
PUSH dword ptr [ESP + 0x20]
PUSH EAX
CALL 0x0002bd30
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x8]
JMP 0x00033d6d
SUB ESP,0x4
LEA EAX,[EBX + 0xfffe3fa0]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000141c0
POP EDI
POP EDX
PUSH EBP
PUSH EAX
CALL 0x0002bc50
ADD ESP,0x10
JMP 0x00033eb6
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nvoid FUN_00033ba0(void)\n\n{\n  char *__filename;\n  FILE *__stream;\n  char *__s;\n  int iVar1;\n  long lVar2;\n  void *__ptr;\n  size_t sVar3;\n  undefined4 uVar4;\n  char cVar5;\n  size_t __n;\n  int local_44;\n  size_t local_40;\n  int local_34 [8];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x33ba9;\n  if (*DAT_00077ef8 == ' ') {\n    DAT_00077ef8 = DAT_00077ef8 + 1;\n  }\n  __filename = (char *)FUN_00033650(local_34);\n  if (__filename != (char *)0x0) {\n    cVar5 = *DAT_00077ef8;\n    if (cVar5 == ' ') {\n      cVar5 = DAT_00077ef8[1];\n      DAT_00077ef8 = DAT_00077ef8 + 1;\n    }\n    local_40 = 0;\n    local_44 = 0;\n    if (cVar5 == ',') {\n      DAT_00077ef8 = DAT_00077ef8 + 1;\n      local_44 = FUN_0002c480();\n      cVar5 = *DAT_00077ef8;\n      if (cVar5 == ' ') {\n        cVar5 = DAT_00077ef8[1];\n        DAT_00077ef8 = DAT_00077ef8 + 1;\n      }\n      local_40 = 0;\n      if (cVar5 == ',') {\n        DAT_00077ef8 = DAT_00077ef8 + 1;\n        local_40 = FUN_0002c480();\n        if (local_40 == 0) {\n          uVar4 = dcgettext(0,".incbin count zero, ignoring `%s\'",5);\n          FUN_0002bc50(uVar4,__filename);\n        }\n        if (*DAT_00077ef8 == ' ') {\n          DAT_00077ef8 = DAT_00077ef8 + 1;\n        }\n      }\n    }\n    FUN_0002e290();\n    __stream = fopen64(__filename,"r");\n    if (__stream == (FILE *)0x0) {\n      __s = (char *)xmalloc(DAT_0006f2c4 + local_34[0] + 5);\n      if (0 < DAT_00077f80) {\n        iVar1 = 0;\n        do {\n          sprintf(__s,"%s/%s",*(undefined4 *)(DAT_00077ee4 + iVar1 * 4),__filename);\n          __stream = fopen64(__s,"r");\n          if (__stream != (FILE *)0x0) goto LAB_00033c46;\n          iVar1 = iVar1 + 1;\n        } while (iVar1 < DAT_00077f80);\n      }\n      uVar4 = dcgettext(0,"file not found: %s",5);\n      FUN_0002bd30(uVar4,__filename);\n    }\n    else {\n      __s = (char *)xstrdup(__filename);\nLAB_00033c46:\n      FUN_00019d00(__s);\n      iVar1 = fseek(__stream,0,2);\n      if (iVar1 == 0) {\n        lVar2 = ftell(__stream);\n        __n = lVar2 - local_44;\n        if (local_40 != 0) {\n          __n = local_40;\n        }\n        if ((((char)((byte)((uint)local_44 >> 0x18) | (byte)(__n >> 0x18)) < '\0') || (lVar2 < 0))\n           || (lVar2 < (int)(local_44 + __n))) {\n          uVar4 = dcgettext(0,"skip (%ld) or count (%ld) invalid for file size (%ld)",5);\n          FUN_0002bd30(uVar4,local_44,__n,lVar2);\n        }\n        else {\n          iVar1 = fseek(__stream,local_44,0);\n          if (iVar1 == 0) {\n            __ptr = (void *)FUN_00024a90(__n);\n            sVar3 = fread(__ptr,1,__n,__stream);\n            if ((int)sVar3 < (int)__n) {\n              uVar4 = dcgettext(0,"truncated file `%s\', %ld of %ld bytes read",5);\n              FUN_0002bc50(uVar4,__s,sVar3,__n);\n            }\n          }\n          else {\n            uVar4 = dcgettext(0,"could not skip to %ld in file `%s\'",5);\n            FUN_0002bd30(uVar4,local_44,__s);\n          }\n        }\n      }\n      else {\n        uVar4 = dcgettext(0,"seek to end of .incbin file failed `%s\'",5);\n        FUN_0002bd30(uVar4,__s);\n      }\n      fclose(__stream);\n    }\n    free(__s);\n  }\n  return;\n}\n\n" comment (function_definition "void FUN_00033ba0(void)\n\n{\n  char *__filename;\n  FILE *__stream;\n  char *__s;\n  int iVar1;\n  long lVar2;\n  void *__ptr;\n  size_t sVar3;\n  undefined4 uVar4;\n  char cVar5;\n  size_t __n;\n  int local_44;\n  size_t local_40;\n  int local_34 [8];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x33ba9;\n  if (*DAT_00077ef8 == ' ') {\n    DAT_00077ef8 = DAT_00077ef8 + 1;\n  }\n  __filename = (char *)FUN_00033650(local_34);\n  if (__filename != (char *)0x0) {\n    cVar5 = *DAT_00077ef8;\n    if (cVar5 == ' ') {\n      cVar5 = DAT_00077ef8[1];\n      DAT_00077ef8 = DAT_00077ef8 + 1;\n    }\n    local_40 = 0;\n    local_44 = 0;\n    if (cVar5 == ',') {\n      DAT_00077ef8 = DAT_00077ef8 + 1;\n      local_44 = FUN_0002c480();\n      cVar5 = *DAT_00077ef8;\n      if (cVar5 == ' ') {\n        cVar5 = DAT_00077ef8[1];\n        DAT_00077ef8 = DAT_00077ef8 + 1;\n      }\n      local_40 = 0;\n      if (cVar5 == ',') {\n        DAT_00077ef8 = DAT_00077ef8 + 1;\n        local_40 = FUN_0002c480();\n        if (local_40 == 0) {\n          uVar4 = dcgettext(0,".incbin count zero, ignoring `%s\'",5);\n          FUN_0002bc50(uVar4,__filename);\n        }\n        if (*DAT_00077ef8 == ' ') {\n          DAT_00077ef8 = DAT_00077ef8 + 1;\n        }\n      }\n    }\n    FUN_0002e290();\n    __stream = fopen64(__filename,"r");\n    if (__stream == (FILE *)0x0) {\n      __s = (char *)xmalloc(DAT_0006f2c4 + local_34[0] + 5);\n      if (0 < DAT_00077f80) {\n        iVar1 = 0;\n        do {\n          sprintf(__s,"%s/%s",*(undefined4 *)(DAT_00077ee4 + iVar1 * 4),__filename);\n          __stream = fopen64(__s,"r");\n          if (__stream != (FILE *)0x0) goto LAB_00033c46;\n          iVar1 = iVar1 + 1;\n        } while (iVar1 < DAT_00077f80);\n      }\n      uVar4 = dcgettext(0,"file not found: %s",5);\n      FUN_0002bd30(uVar4,__filename);\n    }\n    else {\n      __s = (char *)xstrdup(__filename);\nLAB_00033c46:\n      FUN_00019d00(__s);\n      iVar1 = fseek(__stream,0,2);\n      if (iVar1 == 0) {\n        lVar2 = ftell(__stream);\n        __n = lVar2 - local_44;\n        if (local_40 != 0) {\n          __n = local_40;\n        }\n        if ((((char)((byte)((uint)local_44 >> 0x18) | (byte)(__n >> 0x18)) < '\0') || (lVar2 < 0))\n           || (lVar2 < (int)(local_44 + __n))) {\n          uVar4 = dcgettext(0,"skip (%ld) or count (%ld) invalid for file size (%ld)",5);\n          FUN_0002bd30(uVar4,local_44,__n,lVar2);\n        }\n        else {\n          iVar1 = fseek(__stream,local_44,0);\n          if (iVar1 == 0) {\n            __ptr = (void *)FUN_00024a90(__n);\n            sVar3 = fread(__ptr,1,__n,__stream);\n            if ((int)sVar3 < (int)__n) {\n              uVar4 = dcgettext(0,"truncated file `%s\', %ld of %ld bytes read",5);\n              FUN_0002bc50(uVar4,__s,sVar3,__n);\n            }\n          }\n          else {\n            uVar4 = dcgettext(0,"could not skip to %ld in file `%s\'",5);\n            FUN_0002bd30(uVar4,local_44,__s);\n          }\n        }\n      }\n      else {\n        uVar4 = dcgettext(0,"seek to end of .incbin file failed `%s\'",5);\n        FUN_0002bd30(uVar4,__s);\n      }\n      fclose(__stream);\n    }\n    free(__s);\n  }\n  return;\n}" primitive_type (function_declarator "FUN_00033ba0(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  char *__filename;\n  FILE *__stream;\n  char *__s;\n  int iVar1;\n  long lVar2;\n  void *__ptr;\n  size_t sVar3;\n  undefined4 uVar4;\n  char cVar5;\n  size_t __n;\n  int local_44;\n  size_t local_40;\n  int local_34 [8];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x33ba9;\n  if (*DAT_00077ef8 == ' ') {\n    DAT_00077ef8 = DAT_00077ef8 + 1;\n  }\n  __filename = (char *)FUN_00033650(local_34);\n  if (__filename != (char *)0x0) {\n    cVar5 = *DAT_00077ef8;\n    if (cVar5 == ' ') {\n      cVar5 = DAT_00077ef8[1];\n      DAT_00077ef8 = DAT_00077ef8 + 1;\n    }\n    local_40 = 0;\n    local_44 = 0;\n    if (cVar5 == ',') {\n      DAT_00077ef8 = DAT_00077ef8 + 1;\n      local_44 = FUN_0002c480();\n      cVar5 = *DAT_00077ef8;\n      if (cVar5 == ' ') {\n        cVar5 = DAT_00077ef8[1];\n        DAT_00077ef8 = DAT_00077ef8 + 1;\n      }\n      local_40 = 0;\n      if (cVar5 == ',') {\n        DAT_00077ef8 = DAT_00077ef8 + 1;\n        local_40 = FUN_0002c480();\n        if (local_40 == 0) {\n          uVar4 = dcgettext(0,".incbin count zero, ignoring `%s\'",5);\n          FUN_0002bc50(uVar4,__filename);\n        }\n        if (*DAT_00077ef8 == ' ') {\n          DAT_00077ef8 = DAT_00077ef8 + 1;\n        }\n      }\n    }\n    FUN_0002e290();\n    __stream = fopen64(__filename,"r");\n    if (__stream == (FILE *)0x0) {\n      __s = (char *)xmalloc(DAT_0006f2c4 + local_34[0] + 5);\n      if (0 < DAT_00077f80) {\n        iVar1 = 0;\n        do {\n          sprintf(__s,"%s/%s",*(undefined4 *)(DAT_00077ee4 + iVar1 * 4),__filename);\n          __stream = fopen64(__s,"r");\n          if (__stream != (FILE *)0x0) goto LAB_00033c46;\n          iVar1 = iVar1 + 1;\n        } while (iVar1 < DAT_00077f80);\n      }\n      uVar4 = dcgettext(0,"file not found: %s",5);\n      FUN_0002bd30(uVar4,__filename);\n    }\n    else {\n      __s = (char *)xstrdup(__filename);\nLAB_00033c46:\n      FUN_00019d00(__s);\n      iVar1 = fseek(__stream,0,2);\n      if (iVar1 == 0) {\n        lVar2 = ftell(__stream);\n        __n = lVar2 - local_44;\n        if (local_40 != 0) {\n          __n = local_40;\n        }\n        if ((((char)((byte)((uint)local_44 >> 0x18) | (byte)(__n >> 0x18)) < '\0') || (lVar2 < 0))\n           || (lVar2 < (int)(local_44 + __n))) {\n          uVar4 = dcgettext(0,"skip (%ld) or count (%ld) invalid for file size (%ld)",5);\n          FUN_0002bd30(uVar4,local_44,__n,lVar2);\n        }\n        else {\n          iVar1 = fseek(__stream,local_44,0);\n          if (iVar1 == 0) {\n            __ptr = (void *)FUN_00024a90(__n);\n            sVar3 = fread(__ptr,1,__n,__stream);\n            if ((int)sVar3 < (int)__n) {\n              uVar4 = dcgettext(0,"truncated file `%s\', %ld of %ld bytes read",5);\n              FUN_0002bc50(uVar4,__s,sVar3,__n);\n            }\n          }\n          else {\n            uVar4 = dcgettext(0,"could not skip to %ld in file `%s\'",5);\n            FUN_0002bd30(uVar4,local_44,__s);\n          }\n        }\n      }\n      else {\n        uVar4 = dcgettext(0,"seek to end of .incbin file failed `%s\'",5);\n        FUN_0002bd30(uVar4,__s);\n      }\n      fclose(__stream);\n    }\n    free(__s);\n  }\n  return;\n}" { (declaration "char *__filename;" primitive_type (pointer_declarator "*__filename" * identifier) ;) (declaration "FILE *__stream;" type_identifier (pointer_declarator "*__stream" * identifier) ;) (declaration "char *__s;" primitive_type (pointer_declarator "*__s" * identifier) ;) (declaration "int iVar1;" primitive_type identifier ;) (declaration "long lVar2;" (sized_type_specifier "long" long) identifier ;) (declaration "void *__ptr;" primitive_type (pointer_declarator "*__ptr" * identifier) ;) (declaration "size_t sVar3;" primitive_type identifier ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "char cVar5;" primitive_type identifier ;) (declaration "size_t __n;" primitive_type identifier ;) (declaration "int local_44;" primitive_type identifier ;) (declaration "size_t local_40;" primitive_type identifier ;) (declaration "int local_34 [8];" primitive_type (array_declarator "local_34 [8]" identifier [ number_literal ]) ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "uStack_14 = 0x33ba9;" (assignment_expression "uStack_14 = 0x33ba9" identifier = number_literal) ;) (if_statement "if (*DAT_00077ef8 == ' ') {\n    DAT_00077ef8 = DAT_00077ef8 + 1;\n  }" if (parenthesized_expression "(*DAT_00077ef8 == ' ')" ( (binary_expression "*DAT_00077ef8 == ' '" (pointer_expression "*DAT_00077ef8" * identifier) == (char_literal "' '" ' character ')) )) (compound_statement "{\n    DAT_00077ef8 = DAT_00077ef8 + 1;\n  }" { (expression_statement "DAT_00077ef8 = DAT_00077ef8 + 1;" (assignment_expression "DAT_00077ef8 = DAT_00077ef8 + 1" identifier = (binary_expression "DAT_00077ef8 + 1" identifier + number_literal)) ;) })) (expression_statement "__filename = (char *)FUN_00033650(local_34);" (assignment_expression "__filename = (char *)FUN_00033650(local_34)" identifier = (cast_expression "(char *)FUN_00033650(local_34)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00033650(local_34)" identifier (argument_list "(local_34)" ( identifier ))))) ;) (if_statement "if (__filename != (char *)0x0) {\n    cVar5 = *DAT_00077ef8;\n    if (cVar5 == ' ') {\n      cVar5 = DAT_00077ef8[1];\n      DAT_00077ef8 = DAT_00077ef8 + 1;\n    }\n    local_40 = 0;\n    local_44 = 0;\n    if (cVar5 == ',') {\n      DAT_00077ef8 = DAT_00077ef8 + 1;\n      local_44 = FUN_0002c480();\n      cVar5 = *DAT_00077ef8;\n      if (cVar5 == ' ') {\n        cVar5 = DAT_00077ef8[1];\n        DAT_00077ef8 = DAT_00077ef8 + 1;\n      }\n      local_40 = 0;\n      if (cVar5 == ',') {\n        DAT_00077ef8 = DAT_00077ef8 + 1;\n        local_40 = FUN_0002c480();\n        if (local_40 == 0) {\n          uVar4 = dcgettext(0,".incbin count zero, ignoring `%s\'",5);\n          FUN_0002bc50(uVar4,__filename);\n        }\n        if (*DAT_00077ef8 == ' ') {\n          DAT_00077ef8 = DAT_00077ef8 + 1;\n        }\n      }\n    }\n    FUN_0002e290();\n    __stream = fopen64(__filename,"r");\n    if (__stream == (FILE *)0x0) {\n      __s = (char *)xmalloc(DAT_0006f2c4 + local_34[0] + 5);\n      if (0 < DAT_00077f80) {\n        iVar1 = 0;\n        do {\n          sprintf(__s,"%s/%s",*(undefined4 *)(DAT_00077ee4 + iVar1 * 4),__filename);\n          __stream = fopen64(__s,"r");\n          if (__stream != (FILE *)0x0) goto LAB_00033c46;\n          iVar1 = iVar1 + 1;\n        } while (iVar1 < DAT_00077f80);\n      }\n      uVar4 = dcgettext(0,"file not found: %s",5);\n      FUN_0002bd30(uVar4,__filename);\n    }\n    else {\n      __s = (char *)xstrdup(__filename);\nLAB_00033c46:\n      FUN_00019d00(__s);\n      iVar1 = fseek(__stream,0,2);\n      if (iVar1 == 0) {\n        lVar2 = ftell(__stream);\n        __n = lVar2 - local_44;\n        if (local_40 != 0) {\n          __n = local_40;\n        }\n        if ((((char)((byte)((uint)local_44 >> 0x18) | (byte)(__n >> 0x18)) < '\0') || (lVar2 < 0))\n           || (lVar2 < (int)(local_44 + __n))) {\n          uVar4 = dcgettext(0,"skip (%ld) or count (%ld) invalid for file size (%ld)",5);\n          FUN_0002bd30(uVar4,local_44,__n,lVar2);\n        }\n        else {\n          iVar1 = fseek(__stream,local_44,0);\n          if (iVar1 == 0) {\n            __ptr = (void *)FUN_00024a90(__n);\n            sVar3 = fread(__ptr,1,__n,__stream);\n            if ((int)sVar3 < (int)__n) {\n              uVar4 = dcgettext(0,"truncated file `%s\', %ld of %ld bytes read",5);\n              FUN_0002bc50(uVar4,__s,sVar3,__n);\n            }\n          }\n          else {\n            uVar4 = dcgettext(0,"could not skip to %ld in file `%s\'",5);\n            FUN_0002bd30(uVar4,local_44,__s);\n          }\n        }\n      }\n      else {\n        uVar4 = dcgettext(0,"seek to end of .incbin file failed `%s\'",5);\n        FUN_0002bd30(uVar4,__s);\n      }\n      fclose(__stream);\n    }\n    free(__s);\n  }" if (parenthesized_expression "(__filename != (char *)0x0)" ( (binary_expression "__filename != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    cVar5 = *DAT_00077ef8;\n    if (cVar5 == ' ') {\n      cVar5 = DAT_00077ef8[1];\n      DAT_00077ef8 = DAT_00077ef8 + 1;\n    }\n    local_40 = 0;\n    local_44 = 0;\n    if (cVar5 == ',') {\n      DAT_00077ef8 = DAT_00077ef8 + 1;\n      local_44 = FUN_0002c480();\n      cVar5 = *DAT_00077ef8;\n      if (cVar5 == ' ') {\n        cVar5 = DAT_00077ef8[1];\n        DAT_00077ef8 = DAT_00077ef8 + 1;\n      }\n      local_40 = 0;\n      if (cVar5 == ',') {\n        DAT_00077ef8 = DAT_00077ef8 + 1;\n        local_40 = FUN_0002c480();\n        if (local_40 == 0) {\n          uVar4 = dcgettext(0,".incbin count zero, ignoring `%s\'",5);\n          FUN_0002bc50(uVar4,__filename);\n        }\n        if (*DAT_00077ef8 == ' ') {\n          DAT_00077ef8 = DAT_00077ef8 + 1;\n        }\n      }\n    }\n    FUN_0002e290();\n    __stream = fopen64(__filename,"r");\n    if (__stream == (FILE *)0x0) {\n      __s = (char *)xmalloc(DAT_0006f2c4 + local_34[0] + 5);\n      if (0 < DAT_00077f80) {\n        iVar1 = 0;\n        do {\n          sprintf(__s,"%s/%s",*(undefined4 *)(DAT_00077ee4 + iVar1 * 4),__filename);\n          __stream = fopen64(__s,"r");\n          if (__stream != (FILE *)0x0) goto LAB_00033c46;\n          iVar1 = iVar1 + 1;\n        } while (iVar1 < DAT_00077f80);\n      }\n      uVar4 = dcgettext(0,"file not found: %s",5);\n      FUN_0002bd30(uVar4,__filename);\n    }\n    else {\n      __s = (char *)xstrdup(__filename);\nLAB_00033c46:\n      FUN_00019d00(__s);\n      iVar1 = fseek(__stream,0,2);\n      if (iVar1 == 0) {\n        lVar2 = ftell(__stream);\n        __n = lVar2 - local_44;\n        if (local_40 != 0) {\n          __n = local_40;\n        }\n        if ((((char)((byte)((uint)local_44 >> 0x18) | (byte)(__n >> 0x18)) < '\0') || (lVar2 < 0))\n           || (lVar2 < (int)(local_44 + __n))) {\n          uVar4 = dcgettext(0,"skip (%ld) or count (%ld) invalid for file size (%ld)",5);\n          FUN_0002bd30(uVar4,local_44,__n,lVar2);\n        }\n        else {\n          iVar1 = fseek(__stream,local_44,0);\n          if (iVar1 == 0) {\n            __ptr = (void *)FUN_00024a90(__n);\n            sVar3 = fread(__ptr,1,__n,__stream);\n            if ((int)sVar3 < (int)__n) {\n              uVar4 = dcgettext(0,"truncated file `%s\', %ld of %ld bytes read",5);\n              FUN_0002bc50(uVar4,__s,sVar3,__n);\n            }\n          }\n          else {\n            uVar4 = dcgettext(0,"could not skip to %ld in file `%s\'",5);\n            FUN_0002bd30(uVar4,local_44,__s);\n          }\n        }\n      }\n      else {\n        uVar4 = dcgettext(0,"seek to end of .incbin file failed `%s\'",5);\n        FUN_0002bd30(uVar4,__s);\n      }\n      fclose(__stream);\n    }\n    free(__s);\n  }" { (expression_statement "cVar5 = *DAT_00077ef8;" (assignment_expression "cVar5 = *DAT_00077ef8" identifier = (pointer_expression "*DAT_00077ef8" * identifier)) ;) (if_statement "if (cVar5 == ' ') {\n      cVar5 = DAT_00077ef8[1];\n      DAT_00077ef8 = DAT_00077ef8 + 1;\n    }" if (parenthesized_expression "(cVar5 == ' ')" ( (binary_expression "cVar5 == ' '" identifier == (char_literal "' '" ' character ')) )) (compound_statement "{\n      cVar5 = DAT_00077ef8[1];\n      DAT_00077ef8 = DAT_00077ef8 + 1;\n    }" { (expression_statement "cVar5 = DAT_00077ef8[1];" (assignment_expression "cVar5 = DAT_00077ef8[1]" identifier = (subscript_expression "DAT_00077ef8[1]" identifier [ number_literal ])) ;) (expression_statement "DAT_00077ef8 = DAT_00077ef8 + 1;" (assignment_expression "DAT_00077ef8 = DAT_00077ef8 + 1" identifier = (binary_expression "DAT_00077ef8 + 1" identifier + number_literal)) ;) })) (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" identifier = number_literal) ;) (expression_statement "local_44 = 0;" (assignment_expression "local_44 = 0" identifier = number_literal) ;) (if_statement "if (cVar5 == ',') {\n      DAT_00077ef8 = DAT_00077ef8 + 1;\n      local_44 = FUN_0002c480();\n      cVar5 = *DAT_00077ef8;\n      if (cVar5 == ' ') {\n        cVar5 = DAT_00077ef8[1];\n        DAT_00077ef8 = DAT_00077ef8 + 1;\n      }\n      local_40 = 0;\n      if (cVar5 == ',') {\n        DAT_00077ef8 = DAT_00077ef8 + 1;\n        local_40 = FUN_0002c480();\n        if (local_40 == 0) {\n          uVar4 = dcgettext(0,".incbin count zero, ignoring `%s\'",5);\n          FUN_0002bc50(uVar4,__filename);\n        }\n        if (*DAT_00077ef8 == ' ') {\n          DAT_00077ef8 = DAT_00077ef8 + 1;\n        }\n      }\n    }" if (parenthesized_expression "(cVar5 == ',')" ( (binary_expression "cVar5 == ','" identifier == (char_literal "','" ' character ')) )) (compound_statement "{\n      DAT_00077ef8 = DAT_00077ef8 + 1;\n      local_44 = FUN_0002c480();\n      cVar5 = *DAT_00077ef8;\n      if (cVar5 == ' ') {\n        cVar5 = DAT_00077ef8[1];\n        DAT_00077ef8 = DAT_00077ef8 + 1;\n      }\n      local_40 = 0;\n      if (cVar5 == ',') {\n        DAT_00077ef8 = DAT_00077ef8 + 1;\n        local_40 = FUN_0002c480();\n        if (local_40 == 0) {\n          uVar4 = dcgettext(0,".incbin count zero, ignoring `%s\'",5);\n          FUN_0002bc50(uVar4,__filename);\n        }\n        if (*DAT_00077ef8 == ' ') {\n          DAT_00077ef8 = DAT_00077ef8 + 1;\n        }\n      }\n    }" { (expression_statement "DAT_00077ef8 = DAT_00077ef8 + 1;" (assignment_expression "DAT_00077ef8 = DAT_00077ef8 + 1" identifier = (binary_expression "DAT_00077ef8 + 1" identifier + number_literal)) ;) (expression_statement "local_44 = FUN_0002c480();" (assignment_expression "local_44 = FUN_0002c480()" identifier = (call_expression "FUN_0002c480()" identifier (argument_list "()" ( )))) ;) (expression_statement "cVar5 = *DAT_00077ef8;" (assignment_expression "cVar5 = *DAT_00077ef8" identifier = (pointer_expression "*DAT_00077ef8" * identifier)) ;) (if_statement "if (cVar5 == ' ') {\n        cVar5 = DAT_00077ef8[1];\n        DAT_00077ef8 = DAT_00077ef8 + 1;\n      }" if (parenthesized_expression "(cVar5 == ' ')" ( (binary_expression "cVar5 == ' '" identifier == (char_literal "' '" ' character ')) )) (compound_statement "{\n        cVar5 = DAT_00077ef8[1];\n        DAT_00077ef8 = DAT_00077ef8 + 1;\n      }" { (expression_statement "cVar5 = DAT_00077ef8[1];" (assignment_expression "cVar5 = DAT_00077ef8[1]" identifier = (subscript_expression "DAT_00077ef8[1]" identifier [ number_literal ])) ;) (expression_statement "DAT_00077ef8 = DAT_00077ef8 + 1;" (assignment_expression "DAT_00077ef8 = DAT_00077ef8 + 1" identifier = (binary_expression "DAT_00077ef8 + 1" identifier + number_literal)) ;) })) (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" identifier = number_literal) ;) (if_statement "if (cVar5 == ',') {\n        DAT_00077ef8 = DAT_00077ef8 + 1;\n        local_40 = FUN_0002c480();\n        if (local_40 == 0) {\n          uVar4 = dcgettext(0,".incbin count zero, ignoring `%s\'",5);\n          FUN_0002bc50(uVar4,__filename);\n        }\n        if (*DAT_00077ef8 == ' ') {\n          DAT_00077ef8 = DAT_00077ef8 + 1;\n        }\n      }" if (parenthesized_expression "(cVar5 == ',')" ( (binary_expression "cVar5 == ','" identifier == (char_literal "','" ' character ')) )) (compound_statement "{\n        DAT_00077ef8 = DAT_00077ef8 + 1;\n        local_40 = FUN_0002c480();\n        if (local_40 == 0) {\n          uVar4 = dcgettext(0,".incbin count zero, ignoring `%s\'",5);\n          FUN_0002bc50(uVar4,__filename);\n        }\n        if (*DAT_00077ef8 == ' ') {\n          DAT_00077ef8 = DAT_00077ef8 + 1;\n        }\n      }" { (expression_statement "DAT_00077ef8 = DAT_00077ef8 + 1;" (assignment_expression "DAT_00077ef8 = DAT_00077ef8 + 1" identifier = (binary_expression "DAT_00077ef8 + 1" identifier + number_literal)) ;) (expression_statement "local_40 = FUN_0002c480();" (assignment_expression "local_40 = FUN_0002c480()" identifier = (call_expression "FUN_0002c480()" identifier (argument_list "()" ( )))) ;) (if_statement "if (local_40 == 0) {\n          uVar4 = dcgettext(0,".incbin count zero, ignoring `%s\'",5);\n          FUN_0002bc50(uVar4,__filename);\n        }" if (parenthesized_expression "(local_40 == 0)" ( (binary_expression "local_40 == 0" identifier == number_literal) )) (compound_statement "{\n          uVar4 = dcgettext(0,".incbin count zero, ignoring `%s\'",5);\n          FUN_0002bc50(uVar4,__filename);\n        }" { (expression_statement "uVar4 = dcgettext(0,".incbin count zero, ignoring `%s\'",5);" (assignment_expression "uVar4 = dcgettext(0,".incbin count zero, ignoring `%s\'",5)" identifier = (call_expression "dcgettext(0,".incbin count zero, ignoring `%s\'",5)" identifier (argument_list "(0,".incbin count zero, ignoring `%s\'",5)" ( number_literal , (string_literal "".incbin count zero, ignoring `%s\'"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "FUN_0002bc50(uVar4,__filename);" (call_expression "FUN_0002bc50(uVar4,__filename)" identifier (argument_list "(uVar4,__filename)" ( identifier , identifier ))) ;) })) (if_statement "if (*DAT_00077ef8 == ' ') {\n          DAT_00077ef8 = DAT_00077ef8 + 1;\n        }" if (parenthesized_expression "(*DAT_00077ef8 == ' ')" ( (binary_expression "*DAT_00077ef8 == ' '" (pointer_expression "*DAT_00077ef8" * identifier) == (char_literal "' '" ' character ')) )) (compound_statement "{\n          DAT_00077ef8 = DAT_00077ef8 + 1;\n        }" { (expression_statement "DAT_00077ef8 = DAT_00077ef8 + 1;" (assignment_expression "DAT_00077ef8 = DAT_00077ef8 + 1" identifier = (binary_expression "DAT_00077ef8 + 1" identifier + number_literal)) ;) })) })) })) (expression_statement "FUN_0002e290();" (call_expression "FUN_0002e290()" identifier (argument_list "()" ( ))) ;) (expression_statement "__stream = fopen64(__filename,"r");" (assignment_expression "__stream = fopen64(__filename,"r")" identifier = (call_expression "fopen64(__filename,"r")" identifier (argument_list "(__filename,"r")" ( identifier , (string_literal ""r"" " string_content ") )))) ;) (if_statement "if (__stream == (FILE *)0x0) {\n      __s = (char *)xmalloc(DAT_0006f2c4 + local_34[0] + 5);\n      if (0 < DAT_00077f80) {\n        iVar1 = 0;\n        do {\n          sprintf(__s,"%s/%s",*(undefined4 *)(DAT_00077ee4 + iVar1 * 4),__filename);\n          __stream = fopen64(__s,"r");\n          if (__stream != (FILE *)0x0) goto LAB_00033c46;\n          iVar1 = iVar1 + 1;\n        } while (iVar1 < DAT_00077f80);\n      }\n      uVar4 = dcgettext(0,"file not found: %s",5);\n      FUN_0002bd30(uVar4,__filename);\n    }\n    else {\n      __s = (char *)xstrdup(__filename);\nLAB_00033c46:\n      FUN_00019d00(__s);\n      iVar1 = fseek(__stream,0,2);\n      if (iVar1 == 0) {\n        lVar2 = ftell(__stream);\n        __n = lVar2 - local_44;\n        if (local_40 != 0) {\n          __n = local_40;\n        }\n        if ((((char)((byte)((uint)local_44 >> 0x18) | (byte)(__n >> 0x18)) < '\0') || (lVar2 < 0))\n           || (lVar2 < (int)(local_44 + __n))) {\n          uVar4 = dcgettext(0,"skip (%ld) or count (%ld) invalid for file size (%ld)",5);\n          FUN_0002bd30(uVar4,local_44,__n,lVar2);\n        }\n        else {\n          iVar1 = fseek(__stream,local_44,0);\n          if (iVar1 == 0) {\n            __ptr = (void *)FUN_00024a90(__n);\n            sVar3 = fread(__ptr,1,__n,__stream);\n            if ((int)sVar3 < (int)__n) {\n              uVar4 = dcgettext(0,"truncated file `%s\', %ld of %ld bytes read",5);\n              FUN_0002bc50(uVar4,__s,sVar3,__n);\n            }\n          }\n          else {\n            uVar4 = dcgettext(0,"could not skip to %ld in file `%s\'",5);\n            FUN_0002bd30(uVar4,local_44,__s);\n          }\n        }\n      }\n      else {\n        uVar4 = dcgettext(0,"seek to end of .incbin file failed `%s\'",5);\n        FUN_0002bd30(uVar4,__s);\n      }\n      fclose(__stream);\n    }" 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)) )) (compound_statement "{\n      __s = (char *)xmalloc(DAT_0006f2c4 + local_34[0] + 5);\n      if (0 < DAT_00077f80) {\n        iVar1 = 0;\n        do {\n          sprintf(__s,"%s/%s",*(undefined4 *)(DAT_00077ee4 + iVar1 * 4),__filename);\n          __stream = fopen64(__s,"r");\n          if (__stream != (FILE *)0x0) goto LAB_00033c46;\n          iVar1 = iVar1 + 1;\n        } while (iVar1 < DAT_00077f80);\n      }\n      uVar4 = dcgettext(0,"file not found: %s",5);\n      FUN_0002bd30(uVar4,__filename);\n    }" { (expression_statement "__s = (char *)xmalloc(DAT_0006f2c4 + local_34[0] + 5);" (assignment_expression "__s = (char *)xmalloc(DAT_0006f2c4 + local_34[0] + 5)" identifier = (cast_expression "(char *)xmalloc(DAT_0006f2c4 + local_34[0] + 5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(DAT_0006f2c4 + local_34[0] + 5)" identifier (argument_list "(DAT_0006f2c4 + local_34[0] + 5)" ( (binary_expression "DAT_0006f2c4 + local_34[0] + 5" (binary_expression "DAT_0006f2c4 + local_34[0]" identifier + (subscript_expression "local_34[0]" identifier [ number_literal ])) + number_literal) ))))) ;) (if_statement "if (0 < DAT_00077f80) {\n        iVar1 = 0;\n        do {\n          sprintf(__s,"%s/%s",*(undefined4 *)(DAT_00077ee4 + iVar1 * 4),__filename);\n          __stream = fopen64(__s,"r");\n          if (__stream != (FILE *)0x0) goto LAB_00033c46;\n          iVar1 = iVar1 + 1;\n        } while (iVar1 < DAT_00077f80);\n      }" if (parenthesized_expression "(0 < DAT_00077f80)" ( (binary_expression "0 < DAT_00077f80" number_literal < identifier) )) (compound_statement "{\n        iVar1 = 0;\n        do {\n          sprintf(__s,"%s/%s",*(undefined4 *)(DAT_00077ee4 + iVar1 * 4),__filename);\n          __stream = fopen64(__s,"r");\n          if (__stream != (FILE *)0x0) goto LAB_00033c46;\n          iVar1 = iVar1 + 1;\n        } while (iVar1 < DAT_00077f80);\n      }" { (expression_statement "iVar1 = 0;" (assignment_expression "iVar1 = 0" identifier = number_literal) ;) (do_statement "do {\n          sprintf(__s,"%s/%s",*(undefined4 *)(DAT_00077ee4 + iVar1 * 4),__filename);\n          __stream = fopen64(__s,"r");\n          if (__stream != (FILE *)0x0) goto LAB_00033c46;\n          iVar1 = iVar1 + 1;\n        } while (iVar1 < DAT_00077f80);" do (compound_statement "{\n          sprintf(__s,"%s/%s",*(undefined4 *)(DAT_00077ee4 + iVar1 * 4),__filename);\n          __stream = fopen64(__s,"r");\n          if (__stream != (FILE *)0x0) goto LAB_00033c46;\n          iVar1 = iVar1 + 1;\n        }" { (expression_statement "sprintf(__s,"%s/%s",*(undefined4 *)(DAT_00077ee4 + iVar1 * 4),__filename);" (call_expression "sprintf(__s,"%s/%s",*(undefined4 *)(DAT_00077ee4 + iVar1 * 4),__filename)" identifier (argument_list "(__s,"%s/%s",*(undefined4 *)(DAT_00077ee4 + iVar1 * 4),__filename)" ( identifier , (string_literal ""%s/%s"" " string_content ") , (pointer_expression "*(undefined4 *)(DAT_00077ee4 + iVar1 * 4)" * (cast_expression "(undefined4 *)(DAT_00077ee4 + iVar1 * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00077ee4 + iVar1 * 4)" ( (binary_expression "DAT_00077ee4 + iVar1 * 4" identifier + (binary_expression "iVar1 * 4" identifier * number_literal)) )))) , identifier ))) ;) (expression_statement "__stream = fopen64(__s,"r");" (assignment_expression "__stream = fopen64(__s,"r")" identifier = (call_expression "fopen64(__s,"r")" identifier (argument_list "(__s,"r")" ( identifier , (string_literal ""r"" " string_content ") )))) ;) (if_statement "if (__stream != (FILE *)0x0) goto LAB_00033c46;" 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_00033c46;" goto statement_identifier ;)) (expression_statement "iVar1 = iVar1 + 1;" (assignment_expression "iVar1 = iVar1 + 1" identifier = (binary_expression "iVar1 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar1 < DAT_00077f80)" ( (binary_expression "iVar1 < DAT_00077f80" identifier < identifier) )) ;) })) (expression_statement "uVar4 = dcgettext(0,"file not found: %s",5);" (assignment_expression "uVar4 = dcgettext(0,"file not found: %s",5)" identifier = (call_expression "dcgettext(0,"file not found: %s",5)" identifier (argument_list "(0,"file not found: %s",5)" ( number_literal , (string_literal ""file not found: %s"" " string_content ") , number_literal )))) ;) (expression_statement "FUN_0002bd30(uVar4,__filename);" (call_expression "FUN_0002bd30(uVar4,__filename)" identifier (argument_list "(uVar4,__filename)" ( identifier , identifier ))) ;) }) (else_clause "else {\n      __s = (char *)xstrdup(__filename);\nLAB_00033c46:\n      FUN_00019d00(__s);\n      iVar1 = fseek(__stream,0,2);\n      if (iVar1 == 0) {\n        lVar2 = ftell(__stream);\n        __n = lVar2 - local_44;\n        if (local_40 != 0) {\n          __n = local_40;\n        }\n        if ((((char)((byte)((uint)local_44 >> 0x18) | (byte)(__n >> 0x18)) < '\0') || (lVar2 < 0))\n           || (lVar2 < (int)(local_44 + __n))) {\n          uVar4 = dcgettext(0,"skip (%ld) or count (%ld) invalid for file size (%ld)",5);\n          FUN_0002bd30(uVar4,local_44,__n,lVar2);\n        }\n        else {\n          iVar1 = fseek(__stream,local_44,0);\n          if (iVar1 == 0) {\n            __ptr = (void *)FUN_00024a90(__n);\n            sVar3 = fread(__ptr,1,__n,__stream);\n            if ((int)sVar3 < (int)__n) {\n              uVar4 = dcgettext(0,"truncated file `%s\', %ld of %ld bytes read",5);\n              FUN_0002bc50(uVar4,__s,sVar3,__n);\n            }\n          }\n          else {\n            uVar4 = dcgettext(0,"could not skip to %ld in file `%s\'",5);\n            FUN_0002bd30(uVar4,local_44,__s);\n          }\n        }\n      }\n      else {\n        uVar4 = dcgettext(0,"seek to end of .incbin file failed `%s\'",5);\n        FUN_0002bd30(uVar4,__s);\n      }\n      fclose(__stream);\n    }" else (compound_statement "{\n      __s = (char *)xstrdup(__filename);\nLAB_00033c46:\n      FUN_00019d00(__s);\n      iVar1 = fseek(__stream,0,2);\n      if (iVar1 == 0) {\n        lVar2 = ftell(__stream);\n        __n = lVar2 - local_44;\n        if (local_40 != 0) {\n          __n = local_40;\n        }\n        if ((((char)((byte)((uint)local_44 >> 0x18) | (byte)(__n >> 0x18)) < '\0') || (lVar2 < 0))\n           || (lVar2 < (int)(local_44 + __n))) {\n          uVar4 = dcgettext(0,"skip (%ld) or count (%ld) invalid for file size (%ld)",5);\n          FUN_0002bd30(uVar4,local_44,__n,lVar2);\n        }\n        else {\n          iVar1 = fseek(__stream,local_44,0);\n          if (iVar1 == 0) {\n            __ptr = (void *)FUN_00024a90(__n);\n            sVar3 = fread(__ptr,1,__n,__stream);\n            if ((int)sVar3 < (int)__n) {\n              uVar4 = dcgettext(0,"truncated file `%s\', %ld of %ld bytes read",5);\n              FUN_0002bc50(uVar4,__s,sVar3,__n);\n            }\n          }\n          else {\n            uVar4 = dcgettext(0,"could not skip to %ld in file `%s\'",5);\n            FUN_0002bd30(uVar4,local_44,__s);\n          }\n        }\n      }\n      else {\n        uVar4 = dcgettext(0,"seek to end of .incbin file failed `%s\'",5);\n        FUN_0002bd30(uVar4,__s);\n      }\n      fclose(__stream);\n    }" { (expression_statement "__s = (char *)xstrdup(__filename);" (assignment_expression "__s = (char *)xstrdup(__filename)" identifier = (cast_expression "(char *)xstrdup(__filename)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xstrdup(__filename)" identifier (argument_list "(__filename)" ( identifier ))))) ;) (labeled_statement "LAB_00033c46:\n      FUN_00019d00(__s);" statement_identifier : (expression_statement "FUN_00019d00(__s);" (call_expression "FUN_00019d00(__s)" identifier (argument_list "(__s)" ( identifier ))) ;)) (expression_statement "iVar1 = fseek(__stream,0,2);" (assignment_expression "iVar1 = fseek(__stream,0,2)" identifier = (call_expression "fseek(__stream,0,2)" identifier (argument_list "(__stream,0,2)" ( identifier , number_literal , number_literal )))) ;) (if_statement "if (iVar1 == 0) {\n        lVar2 = ftell(__stream);\n        __n = lVar2 - local_44;\n        if (local_40 != 0) {\n          __n = local_40;\n        }\n        if ((((char)((byte)((uint)local_44 >> 0x18) | (byte)(__n >> 0x18)) < '\0') || (lVar2 < 0))\n           || (lVar2 < (int)(local_44 + __n))) {\n          uVar4 = dcgettext(0,"skip (%ld) or count (%ld) invalid for file size (%ld)",5);\n          FUN_0002bd30(uVar4,local_44,__n,lVar2);\n        }\n        else {\n          iVar1 = fseek(__stream,local_44,0);\n          if (iVar1 == 0) {\n            __ptr = (void *)FUN_00024a90(__n);\n            sVar3 = fread(__ptr,1,__n,__stream);\n            if ((int)sVar3 < (int)__n) {\n              uVar4 = dcgettext(0,"truncated file `%s\', %ld of %ld bytes read",5);\n              FUN_0002bc50(uVar4,__s,sVar3,__n);\n            }\n          }\n          else {\n            uVar4 = dcgettext(0,"could not skip to %ld in file `%s\'",5);\n            FUN_0002bd30(uVar4,local_44,__s);\n          }\n        }\n      }\n      else {\n        uVar4 = dcgettext(0,"seek to end of .incbin file failed `%s\'",5);\n        FUN_0002bd30(uVar4,__s);\n      }" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (compound_statement "{\n        lVar2 = ftell(__stream);\n        __n = lVar2 - local_44;\n        if (local_40 != 0) {\n          __n = local_40;\n        }\n        if ((((char)((byte)((uint)local_44 >> 0x18) | (byte)(__n >> 0x18)) < '\0') || (lVar2 < 0))\n           || (lVar2 < (int)(local_44 + __n))) {\n          uVar4 = dcgettext(0,"skip (%ld) or count (%ld) invalid for file size (%ld)",5);\n          FUN_0002bd30(uVar4,local_44,__n,lVar2);\n        }\n        else {\n          iVar1 = fseek(__stream,local_44,0);\n          if (iVar1 == 0) {\n            __ptr = (void *)FUN_00024a90(__n);\n            sVar3 = fread(__ptr,1,__n,__stream);\n            if ((int)sVar3 < (int)__n) {\n              uVar4 = dcgettext(0,"truncated file `%s\', %ld of %ld bytes read",5);\n              FUN_0002bc50(uVar4,__s,sVar3,__n);\n            }\n          }\n          else {\n            uVar4 = dcgettext(0,"could not skip to %ld in file `%s\'",5);\n            FUN_0002bd30(uVar4,local_44,__s);\n          }\n        }\n      }" { (expression_statement "lVar2 = ftell(__stream);" (assignment_expression "lVar2 = ftell(__stream)" identifier = (call_expression "ftell(__stream)" identifier (argument_list "(__stream)" ( identifier )))) ;) (expression_statement "__n = lVar2 - local_44;" (assignment_expression "__n = lVar2 - local_44" identifier = (binary_expression "lVar2 - local_44" identifier - identifier)) ;) (if_statement "if (local_40 != 0) {\n          __n = local_40;\n        }" if (parenthesized_expression "(local_40 != 0)" ( (binary_expression "local_40 != 0" identifier != number_literal) )) (compound_statement "{\n          __n = local_40;\n        }" { (expression_statement "__n = local_40;" (assignment_expression "__n = local_40" identifier = identifier) ;) })) (if_statement "if ((((char)((byte)((uint)local_44 >> 0x18) | (byte)(__n >> 0x18)) < '\0') || (lVar2 < 0))\n           || (lVar2 < (int)(local_44 + __n))) {\n          uVar4 = dcgettext(0,"skip (%ld) or count (%ld) invalid for file size (%ld)",5);\n          FUN_0002bd30(uVar4,local_44,__n,lVar2);\n        }\n        else {\n          iVar1 = fseek(__stream,local_44,0);\n          if (iVar1 == 0) {\n            __ptr = (void *)FUN_00024a90(__n);\n            sVar3 = fread(__ptr,1,__n,__stream);\n            if ((int)sVar3 < (int)__n) {\n              uVar4 = dcgettext(0,"truncated file `%s\', %ld of %ld bytes read",5);\n              FUN_0002bc50(uVar4,__s,sVar3,__n);\n            }\n          }\n          else {\n            uVar4 = dcgettext(0,"could not skip to %ld in file `%s\'",5);\n            FUN_0002bd30(uVar4,local_44,__s);\n          }\n        }" if (parenthesized_expression "((((char)((byte)((uint)local_44 >> 0x18) | (byte)(__n >> 0x18)) < '\0') || (lVar2 < 0))\n           || (lVar2 < (int)(local_44 + __n)))" ( (binary_expression "(((char)((byte)((uint)local_44 >> 0x18) | (byte)(__n >> 0x18)) < '\0') || (lVar2 < 0))\n           || (lVar2 < (int)(local_44 + __n))" (parenthesized_expression "(((char)((byte)((uint)local_44 >> 0x18) | (byte)(__n >> 0x18)) < '\0') || (lVar2 < 0))" ( (binary_expression "((char)((byte)((uint)local_44 >> 0x18) | (byte)(__n >> 0x18)) < '\0') || (lVar2 < 0)" (parenthesized_expression "((char)((byte)((uint)local_44 >> 0x18) | (byte)(__n >> 0x18)) < '\0')" ( (binary_expression "(char)((byte)((uint)local_44 >> 0x18) | (byte)(__n >> 0x18)) < '\0'" (cast_expression "(char)((byte)((uint)local_44 >> 0x18) | (byte)(__n >> 0x18))" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((byte)((uint)local_44 >> 0x18) | (byte)(__n >> 0x18))" ( (binary_expression "(byte)((uint)local_44 >> 0x18) | (byte)(__n >> 0x18)" (call_expression "(byte)((uint)local_44 >> 0x18)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uint)local_44 >> 0x18)" ( (binary_expression "(uint)local_44 >> 0x18" (cast_expression "(uint)local_44" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) ))) | (call_expression "(byte)(__n >> 0x18)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(__n >> 0x18)" ( (binary_expression "__n >> 0x18" identifier >> number_literal) )))) ))) < (char_literal "'\0'" ' escape_sequence ')) )) || (parenthesized_expression "(lVar2 < 0)" ( (binary_expression "lVar2 < 0" identifier < number_literal) ))) )) || (parenthesized_expression "(lVar2 < (int)(local_44 + __n))" ( (binary_expression "lVar2 < (int)(local_44 + __n)" identifier < (cast_expression "(int)(local_44 + __n)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(local_44 + __n)" ( (binary_expression "local_44 + __n" identifier + identifier) )))) ))) )) (compound_statement "{\n          uVar4 = dcgettext(0,"skip (%ld) or count (%ld) invalid for file size (%ld)",5);\n          FUN_0002bd30(uVar4,local_44,__n,lVar2);\n        }" { (expression_statement "uVar4 = dcgettext(0,"skip (%ld) or count (%ld) invalid for file size (%ld)",5);" (assignment_expression "uVar4 = dcgettext(0,"skip (%ld) or count (%ld) invalid for file size (%ld)",5)" identifier = (call_expression "dcgettext(0,"skip (%ld) or count (%ld) invalid for file size (%ld)",5)" identifier (argument_list "(0,"skip (%ld) or count (%ld) invalid for file size (%ld)",5)" ( number_literal , (string_literal ""skip (%ld) or count (%ld) invalid for file size (%ld)"" " string_content ") , number_literal )))) ;) (expression_statement "FUN_0002bd30(uVar4,local_44,__n,lVar2);" (call_expression "FUN_0002bd30(uVar4,local_44,__n,lVar2)" identifier (argument_list "(uVar4,local_44,__n,lVar2)" ( identifier , identifier , identifier , identifier ))) ;) }) (else_clause "else {\n          iVar1 = fseek(__stream,local_44,0);\n          if (iVar1 == 0) {\n            __ptr = (void *)FUN_00024a90(__n);\n            sVar3 = fread(__ptr,1,__n,__stream);\n            if ((int)sVar3 < (int)__n) {\n              uVar4 = dcgettext(0,"truncated file `%s\', %ld of %ld bytes read",5);\n              FUN_0002bc50(uVar4,__s,sVar3,__n);\n            }\n          }\n          else {\n            uVar4 = dcgettext(0,"could not skip to %ld in file `%s\'",5);\n            FUN_0002bd30(uVar4,local_44,__s);\n          }\n        }" else (compound_statement "{\n          iVar1 = fseek(__stream,local_44,0);\n          if (iVar1 == 0) {\n            __ptr = (void *)FUN_00024a90(__n);\n            sVar3 = fread(__ptr,1,__n,__stream);\n            if ((int)sVar3 < (int)__n) {\n              uVar4 = dcgettext(0,"truncated file `%s\', %ld of %ld bytes read",5);\n              FUN_0002bc50(uVar4,__s,sVar3,__n);\n            }\n          }\n          else {\n            uVar4 = dcgettext(0,"could not skip to %ld in file `%s\'",5);\n            FUN_0002bd30(uVar4,local_44,__s);\n          }\n        }" { (expression_statement "iVar1 = fseek(__stream,local_44,0);" (assignment_expression "iVar1 = fseek(__stream,local_44,0)" identifier = (call_expression "fseek(__stream,local_44,0)" identifier (argument_list "(__stream,local_44,0)" ( identifier , identifier , number_literal )))) ;) (if_statement "if (iVar1 == 0) {\n            __ptr = (void *)FUN_00024a90(__n);\n            sVar3 = fread(__ptr,1,__n,__stream);\n            if ((int)sVar3 < (int)__n) {\n              uVar4 = dcgettext(0,"truncated file `%s\', %ld of %ld bytes read",5);\n              FUN_0002bc50(uVar4,__s,sVar3,__n);\n            }\n          }\n          else {\n            uVar4 = dcgettext(0,"could not skip to %ld in file `%s\'",5);\n            FUN_0002bd30(uVar4,local_44,__s);\n          }" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (compound_statement "{\n            __ptr = (void *)FUN_00024a90(__n);\n            sVar3 = fread(__ptr,1,__n,__stream);\n            if ((int)sVar3 < (int)__n) {\n              uVar4 = dcgettext(0,"truncated file `%s\', %ld of %ld bytes read",5);\n              FUN_0002bc50(uVar4,__s,sVar3,__n);\n            }\n          }" { (expression_statement "__ptr = (void *)FUN_00024a90(__n);" (assignment_expression "__ptr = (void *)FUN_00024a90(__n)" identifier = (cast_expression "(void *)FUN_00024a90(__n)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00024a90(__n)" identifier (argument_list "(__n)" ( identifier ))))) ;) (expression_statement "sVar3 = fread(__ptr,1,__n,__stream);" (assignment_expression "sVar3 = fread(__ptr,1,__n,__stream)" identifier = (call_expression "fread(__ptr,1,__n,__stream)" identifier (argument_list "(__ptr,1,__n,__stream)" ( identifier , number_literal , identifier , identifier )))) ;) (if_statement "if ((int)sVar3 < (int)__n) {\n              uVar4 = dcgettext(0,"truncated file `%s\', %ld of %ld bytes read",5);\n              FUN_0002bc50(uVar4,__s,sVar3,__n);\n            }" if (parenthesized_expression "((int)sVar3 < (int)__n)" ( (binary_expression "(int)sVar3 < (int)__n" (cast_expression "(int)sVar3" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)__n" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n              uVar4 = dcgettext(0,"truncated file `%s\', %ld of %ld bytes read",5);\n              FUN_0002bc50(uVar4,__s,sVar3,__n);\n            }" { (expression_statement "uVar4 = dcgettext(0,"truncated file `%s\', %ld of %ld bytes read",5);" (assignment_expression "uVar4 = dcgettext(0,"truncated file `%s\', %ld of %ld bytes read",5)" identifier = (call_expression "dcgettext(0,"truncated file `%s\', %ld of %ld bytes read",5)" identifier (argument_list "(0,"truncated file `%s\', %ld of %ld bytes read",5)" ( number_literal , (string_literal ""truncated file `%s\', %ld of %ld bytes read"" " string_content escape_sequence string_content ") , number_literal )))) ;) (expression_statement "FUN_0002bc50(uVar4,__s,sVar3,__n);" (call_expression "FUN_0002bc50(uVar4,__s,sVar3,__n)" identifier (argument_list "(uVar4,__s,sVar3,__n)" ( identifier , identifier , identifier , identifier ))) ;) })) }) (else_clause "else {\n            uVar4 = dcgettext(0,"could not skip to %ld in file `%s\'",5);\n            FUN_0002bd30(uVar4,local_44,__s);\n          }" else (compound_statement "{\n            uVar4 = dcgettext(0,"could not skip to %ld in file `%s\'",5);\n            FUN_0002bd30(uVar4,local_44,__s);\n          }" { (expression_statement "uVar4 = dcgettext(0,"could not skip to %ld in file `%s\'",5);" (assignment_expression "uVar4 = dcgettext(0,"could not skip to %ld in file `%s\'",5)" identifier = (call_expression "dcgettext(0,"could not skip to %ld in file `%s\'",5)" identifier (argument_list "(0,"could not skip to %ld in file `%s\'",5)" ( number_literal , (string_literal ""could not skip to %ld in file `%s\'"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "FUN_0002bd30(uVar4,local_44,__s);" (call_expression "FUN_0002bd30(uVar4,local_44,__s)" identifier (argument_list "(uVar4,local_44,__s)" ( identifier , identifier , identifier ))) ;) }))) }))) }) (else_clause "else {\n        uVar4 = dcgettext(0,"seek to end of .incbin file failed `%s\'",5);\n        FUN_0002bd30(uVar4,__s);\n      }" else (compound_statement "{\n        uVar4 = dcgettext(0,"seek to end of .incbin file failed `%s\'",5);\n        FUN_0002bd30(uVar4,__s);\n      }" { (expression_statement "uVar4 = dcgettext(0,"seek to end of .incbin file failed `%s\'",5);" (assignment_expression "uVar4 = dcgettext(0,"seek to end of .incbin file failed `%s\'",5)" identifier = (call_expression "dcgettext(0,"seek to end of .incbin file failed `%s\'",5)" identifier (argument_list "(0,"seek to end of .incbin file failed `%s\'",5)" ( number_literal , (string_literal ""seek to end of .incbin file failed `%s\'"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "FUN_0002bd30(uVar4,__s);" (call_expression "FUN_0002bd30(uVar4,__s)" identifier (argument_list "(uVar4,__s)" ( identifier , identifier ))) ;) }))) (expression_statement "fclose(__stream);" (call_expression "fclose(__stream)" identifier (argument_list "(__stream)" ( identifier ))) ;) }))) (expression_statement "free(__s);" (call_expression "free(__s)" identifier (argument_list "(__s)" ( identifier ))) ;) })) (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\nvoid s_incbin(int x)\n\n{\n  char *pcVar1;\n  FILE *__stream;\n  char *pcVar2;\n  int iVar3;\n  long lVar4;\n  size_t sVar5;\n  char *format;\n  char cVar6;\n  size_t nchars;\n  offsetT oVar7;\n  int local_44;\n  size_t local_40;\n  int len;\n  expressionS exp;\n  \n  if (*input_line_pointer == ' ') {\n    input_line_pointer = input_line_pointer + 1;\n  }\n  pcVar1 = demand_copy_string(&len);\n  if (pcVar1 != (char *)0x0) {\n    cVar6 = *input_line_pointer;\n    if (cVar6 == ' ') {\n      cVar6 = input_line_pointer[1];\n      input_line_pointer = input_line_pointer + 1;\n    }\n    local_40 = 0;\n    local_44 = 0;\n    if (cVar6 == ',') {\n      input_line_pointer = input_line_pointer + 1;\n      oVar7 = get_absolute_expr(&exp);\n      local_44 = (int)oVar7;\n      cVar6 = *input_line_pointer;\n      if (cVar6 == ' ') {\n        cVar6 = input_line_pointer[1];\n        input_line_pointer = input_line_pointer + 1;\n      }\n      local_40 = 0;\n      if (cVar6 == ',') {\n        input_line_pointer = input_line_pointer + 1;\n        oVar7 = get_absolute_expr(&exp);\n        local_40 = (size_t)oVar7;\n        if (local_40 == 0) {\n          pcVar2 = (char *)dcgettext(0,".incbin count zero, ignoring `%s\'",5);\n          as_warn(pcVar2,pcVar1);\n        }\n        if (*input_line_pointer == ' ') {\n          input_line_pointer = input_line_pointer + 1;\n        }\n      }\n    }\n    demand_empty_rest_of_line();\n    __stream = fopen64(pcVar1,"r");\n    if (__stream == (FILE *)0x0) {\n      pcVar2 = (char *)xmalloc(include_dir_maxlen + len + 5);\n      if (0 < include_dir_count) {\n        iVar3 = 0;\n        do {\n          sprintf(pcVar2,"%s/%s",include_dirs[iVar3],pcVar1);\n          __stream = fopen64(pcVar2,"r");\n          if (__stream != (FILE *)0x0) goto LAB_00033c46;\n          iVar3 = iVar3 + 1;\n        } while (iVar3 < include_dir_count);\n      }\n      format = (char *)dcgettext(0,"file not found: %s",5);\n      as_bad(format,pcVar1);\n    }\n    else {\n      pcVar2 = (char *)xstrdup(pcVar1);\nLAB_00033c46:\n      register_dependency(pcVar2);\n      iVar3 = fseek(__stream,0,2);\n      if (iVar3 == 0) {\n        lVar4 = ftell(__stream);\n        nchars = lVar4 - local_44;\n        if (local_40 != 0) {\n          nchars = local_40;\n        }\n        if ((((char)((byte)((uint)local_44 >> 0x18) | (byte)(nchars >> 0x18)) < '\0') || (lVar4 < 0)\n            ) || (lVar4 < (int)(local_44 + nchars))) {\n          pcVar1 = (char *)dcgettext(0,"skip (%ld) or count (%ld) invalid for file size (%ld)",5);\n          as_bad(pcVar1,local_44,nchars,lVar4);\n        }\n        else {\n          iVar3 = fseek(__stream,local_44,0);\n          if (iVar3 == 0) {\n            pcVar1 = frag_more(nchars);\n            sVar5 = fread(pcVar1,1,nchars,__stream);\n            if ((int)sVar5 < (int)nchars) {\n              pcVar1 = (char *)dcgettext(0,"truncated file `%s\', %ld of %ld bytes read",5);\n              as_warn(pcVar1,pcVar2,sVar5,nchars);\n            }\n          }\n          else {\n            pcVar1 = (char *)dcgettext(0,"could not skip to %ld in file `%s\'",5);\n            as_bad(pcVar1,local_44,pcVar2);\n          }\n        }\n      }\n      else {\n        pcVar1 = (char *)dcgettext(0,"seek to end of .incbin file failed `%s\'",5);\n        as_bad(pcVar1,pcVar2);\n      }\n      fclose(__stream);\n    }\n    free(pcVar2);\n  }\n  return;\n}\n\n" comment comment (function_definition "void s_incbin(int x)\n\n{\n  char *pcVar1;\n  FILE *__stream;\n  char *pcVar2;\n  int iVar3;\n  long lVar4;\n  size_t sVar5;\n  char *format;\n  char cVar6;\n  size_t nchars;\n  offsetT oVar7;\n  int local_44;\n  size_t local_40;\n  int len;\n  expressionS exp;\n  \n  if (*input_line_pointer == ' ') {\n    input_line_pointer = input_line_pointer + 1;\n  }\n  pcVar1 = demand_copy_string(&len);\n  if (pcVar1 != (char *)0x0) {\n    cVar6 = *input_line_pointer;\n    if (cVar6 == ' ') {\n      cVar6 = input_line_pointer[1];\n      input_line_pointer = input_line_pointer + 1;\n    }\n    local_40 = 0;\n    local_44 = 0;\n    if (cVar6 == ',') {\n      input_line_pointer = input_line_pointer + 1;\n      oVar7 = get_absolute_expr(&exp);\n      local_44 = (int)oVar7;\n      cVar6 = *input_line_pointer;\n      if (cVar6 == ' ') {\n        cVar6 = input_line_pointer[1];\n        input_line_pointer = input_line_pointer + 1;\n      }\n      local_40 = 0;\n      if (cVar6 == ',') {\n        input_line_pointer = input_line_pointer + 1;\n        oVar7 = get_absolute_expr(&exp);\n        local_40 = (size_t)oVar7;\n        if (local_40 == 0) {\n          pcVar2 = (char *)dcgettext(0,".incbin count zero, ignoring `%s\'",5);\n          as_warn(pcVar2,pcVar1);\n        }\n        if (*input_line_pointer == ' ') {\n          input_line_pointer = input_line_pointer + 1;\n        }\n      }\n    }\n    demand_empty_rest_of_line();\n    __stream = fopen64(pcVar1,"r");\n    if (__stream == (FILE *)0x0) {\n      pcVar2 = (char *)xmalloc(include_dir_maxlen + len + 5);\n      if (0 < include_dir_count) {\n        iVar3 = 0;\n        do {\n          sprintf(pcVar2,"%s/%s",include_dirs[iVar3],pcVar1);\n          __stream = fopen64(pcVar2,"r");\n          if (__stream != (FILE *)0x0) goto LAB_00033c46;\n          iVar3 = iVar3 + 1;\n        } while (iVar3 < include_dir_count);\n      }\n      format = (char *)dcgettext(0,"file not found: %s",5);\n      as_bad(format,pcVar1);\n    }\n    else {\n      pcVar2 = (char *)xstrdup(pcVar1);\nLAB_00033c46:\n      register_dependency(pcVar2);\n      iVar3 = fseek(__stream,0,2);\n      if (iVar3 == 0) {\n        lVar4 = ftell(__stream);\n        nchars = lVar4 - local_44;\n        if (local_40 != 0) {\n          nchars = local_40;\n        }\n        if ((((char)((byte)((uint)local_44 >> 0x18) | (byte)(nchars >> 0x18)) < '\0') || (lVar4 < 0)\n            ) || (lVar4 < (int)(local_44 + nchars))) {\n          pcVar1 = (char *)dcgettext(0,"skip (%ld) or count (%ld) invalid for file size (%ld)",5);\n          as_bad(pcVar1,local_44,nchars,lVar4);\n        }\n        else {\n          iVar3 = fseek(__stream,local_44,0);\n          if (iVar3 == 0) {\n            pcVar1 = frag_more(nchars);\n            sVar5 = fread(pcVar1,1,nchars,__stream);\n            if ((int)sVar5 < (int)nchars) {\n              pcVar1 = (char *)dcgettext(0,"truncated file `%s\', %ld of %ld bytes read",5);\n              as_warn(pcVar1,pcVar2,sVar5,nchars);\n            }\n          }\n          else {\n            pcVar1 = (char *)dcgettext(0,"could not skip to %ld in file `%s\'",5);\n            as_bad(pcVar1,local_44,pcVar2);\n          }\n        }\n      }\n      else {\n        pcVar1 = (char *)dcgettext(0,"seek to end of .incbin file failed `%s\'",5);\n        as_bad(pcVar1,pcVar2);\n      }\n      fclose(__stream);\n    }\n    free(pcVar2);\n  }\n  return;\n}" primitive_type (function_declarator "s_incbin(int x)" identifier (parameter_list "(int x)" ( (parameter_declaration "int x" primitive_type identifier) ))) (compound_statement "{\n  char *pcVar1;\n  FILE *__stream;\n  char *pcVar2;\n  int iVar3;\n  long lVar4;\n  size_t sVar5;\n  char *format;\n  char cVar6;\n  size_t nchars;\n  offsetT oVar7;\n  int local_44;\n  size_t local_40;\n  int len;\n  expressionS exp;\n  \n  if (*input_line_pointer == ' ') {\n    input_line_pointer = input_line_pointer + 1;\n  }\n  pcVar1 = demand_copy_string(&len);\n  if (pcVar1 != (char *)0x0) {\n    cVar6 = *input_line_pointer;\n    if (cVar6 == ' ') {\n      cVar6 = input_line_pointer[1];\n      input_line_pointer = input_line_pointer + 1;\n    }\n    local_40 = 0;\n    local_44 = 0;\n    if (cVar6 == ',') {\n      input_line_pointer = input_line_pointer + 1;\n      oVar7 = get_absolute_expr(&exp);\n      local_44 = (int)oVar7;\n      cVar6 = *input_line_pointer;\n      if (cVar6 == ' ') {\n        cVar6 = input_line_pointer[1];\n        input_line_pointer = input_line_pointer + 1;\n      }\n      local_40 = 0;\n      if (cVar6 == ',') {\n        input_line_pointer = input_line_pointer + 1;\n        oVar7 = get_absolute_expr(&exp);\n        local_40 = (size_t)oVar7;\n        if (local_40 == 0) {\n          pcVar2 = (char *)dcgettext(0,".incbin count zero, ignoring `%s\'",5);\n          as_warn(pcVar2,pcVar1);\n        }\n        if (*input_line_pointer == ' ') {\n          input_line_pointer = input_line_pointer + 1;\n        }\n      }\n    }\n    demand_empty_rest_of_line();\n    __stream = fopen64(pcVar1,"r");\n    if (__stream == (FILE *)0x0) {\n      pcVar2 = (char *)xmalloc(include_dir_maxlen + len + 5);\n      if (0 < include_dir_count) {\n        iVar3 = 0;\n        do {\n          sprintf(pcVar2,"%s/%s",include_dirs[iVar3],pcVar1);\n          __stream = fopen64(pcVar2,"r");\n          if (__stream != (FILE *)0x0) goto LAB_00033c46;\n          iVar3 = iVar3 + 1;\n        } while (iVar3 < include_dir_count);\n      }\n      format = (char *)dcgettext(0,"file not found: %s",5);\n      as_bad(format,pcVar1);\n    }\n    else {\n      pcVar2 = (char *)xstrdup(pcVar1);\nLAB_00033c46:\n      register_dependency(pcVar2);\n      iVar3 = fseek(__stream,0,2);\n      if (iVar3 == 0) {\n        lVar4 = ftell(__stream);\n        nchars = lVar4 - local_44;\n        if (local_40 != 0) {\n          nchars = local_40;\n        }\n        if ((((char)((byte)((uint)local_44 >> 0x18) | (byte)(nchars >> 0x18)) < '\0') || (lVar4 < 0)\n            ) || (lVar4 < (int)(local_44 + nchars))) {\n          pcVar1 = (char *)dcgettext(0,"skip (%ld) or count (%ld) invalid for file size (%ld)",5);\n          as_bad(pcVar1,local_44,nchars,lVar4);\n        }\n        else {\n          iVar3 = fseek(__stream,local_44,0);\n          if (iVar3 == 0) {\n            pcVar1 = frag_more(nchars);\n            sVar5 = fread(pcVar1,1,nchars,__stream);\n            if ((int)sVar5 < (int)nchars) {\n              pcVar1 = (char *)dcgettext(0,"truncated file `%s\', %ld of %ld bytes read",5);\n              as_warn(pcVar1,pcVar2,sVar5,nchars);\n            }\n          }\n          else {\n            pcVar1 = (char *)dcgettext(0,"could not skip to %ld in file `%s\'",5);\n            as_bad(pcVar1,local_44,pcVar2);\n          }\n        }\n      }\n      else {\n        pcVar1 = (char *)dcgettext(0,"seek to end of .incbin file failed `%s\'",5);\n        as_bad(pcVar1,pcVar2);\n      }\n      fclose(__stream);\n    }\n    free(pcVar2);\n  }\n  return;\n}" { (declaration "char *pcVar1;" primitive_type (pointer_declarator "*pcVar1" * identifier) ;) (declaration "FILE *__stream;" type_identifier (pointer_declarator "*__stream" * identifier) ;) (declaration "char *pcVar2;" primitive_type (pointer_declarator "*pcVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "long lVar4;" (sized_type_specifier "long" long) identifier ;) (declaration "size_t sVar5;" primitive_type identifier ;) (declaration "char *format;" primitive_type (pointer_declarator "*format" * identifier) ;) (declaration "char cVar6;" primitive_type identifier ;) (declaration "size_t nchars;" primitive_type identifier ;) (declaration "offsetT oVar7;" type_identifier identifier ;) (declaration "int local_44;" primitive_type identifier ;) (declaration "size_t local_40;" primitive_type identifier ;) (declaration "int len;" primitive_type identifier ;) (declaration "expressionS exp;" type_identifier identifier ;) (if_statement "if (*input_line_pointer == ' ') {\n    input_line_pointer = input_line_pointer + 1;\n  }" if (parenthesized_expression "(*input_line_pointer == ' ')" ( (binary_expression "*input_line_pointer == ' '" (pointer_expression "*input_line_pointer" * identifier) == (char_literal "' '" ' character ')) )) (compound_statement "{\n    input_line_pointer = input_line_pointer + 1;\n  }" { (expression_statement "input_line_pointer = input_line_pointer + 1;" (assignment_expression "input_line_pointer = input_line_pointer + 1" identifier = (binary_expression "input_line_pointer + 1" identifier + number_literal)) ;) })) (expression_statement "pcVar1 = demand_copy_string(&len);" (assignment_expression "pcVar1 = demand_copy_string(&len)" identifier = (call_expression "demand_copy_string(&len)" identifier (argument_list "(&len)" ( (pointer_expression "&len" & identifier) )))) ;) (if_statement "if (pcVar1 != (char *)0x0) {\n    cVar6 = *input_line_pointer;\n    if (cVar6 == ' ') {\n      cVar6 = input_line_pointer[1];\n      input_line_pointer = input_line_pointer + 1;\n    }\n    local_40 = 0;\n    local_44 = 0;\n    if (cVar6 == ',') {\n      input_line_pointer = input_line_pointer + 1;\n      oVar7 = get_absolute_expr(&exp);\n      local_44 = (int)oVar7;\n      cVar6 = *input_line_pointer;\n      if (cVar6 == ' ') {\n        cVar6 = input_line_pointer[1];\n        input_line_pointer = input_line_pointer + 1;\n      }\n      local_40 = 0;\n      if (cVar6 == ',') {\n        input_line_pointer = input_line_pointer + 1;\n        oVar7 = get_absolute_expr(&exp);\n        local_40 = (size_t)oVar7;\n        if (local_40 == 0) {\n          pcVar2 = (char *)dcgettext(0,".incbin count zero, ignoring `%s\'",5);\n          as_warn(pcVar2,pcVar1);\n        }\n        if (*input_line_pointer == ' ') {\n          input_line_pointer = input_line_pointer + 1;\n        }\n      }\n    }\n    demand_empty_rest_of_line();\n    __stream = fopen64(pcVar1,"r");\n    if (__stream == (FILE *)0x0) {\n      pcVar2 = (char *)xmalloc(include_dir_maxlen + len + 5);\n      if (0 < include_dir_count) {\n        iVar3 = 0;\n        do {\n          sprintf(pcVar2,"%s/%s",include_dirs[iVar3],pcVar1);\n          __stream = fopen64(pcVar2,"r");\n          if (__stream != (FILE *)0x0) goto LAB_00033c46;\n          iVar3 = iVar3 + 1;\n        } while (iVar3 < include_dir_count);\n      }\n      format = (char *)dcgettext(0,"file not found: %s",5);\n      as_bad(format,pcVar1);\n    }\n    else {\n      pcVar2 = (char *)xstrdup(pcVar1);\nLAB_00033c46:\n      register_dependency(pcVar2);\n      iVar3 = fseek(__stream,0,2);\n      if (iVar3 == 0) {\n        lVar4 = ftell(__stream);\n        nchars = lVar4 - local_44;\n        if (local_40 != 0) {\n          nchars = local_40;\n        }\n        if ((((char)((byte)((uint)local_44 >> 0x18) | (byte)(nchars >> 0x18)) < '\0') || (lVar4 < 0)\n            ) || (lVar4 < (int)(local_44 + nchars))) {\n          pcVar1 = (char *)dcgettext(0,"skip (%ld) or count (%ld) invalid for file size (%ld)",5);\n          as_bad(pcVar1,local_44,nchars,lVar4);\n        }\n        else {\n          iVar3 = fseek(__stream,local_44,0);\n          if (iVar3 == 0) {\n            pcVar1 = frag_more(nchars);\n            sVar5 = fread(pcVar1,1,nchars,__stream);\n            if ((int)sVar5 < (int)nchars) {\n              pcVar1 = (char *)dcgettext(0,"truncated file `%s\', %ld of %ld bytes read",5);\n              as_warn(pcVar1,pcVar2,sVar5,nchars);\n            }\n          }\n          else {\n            pcVar1 = (char *)dcgettext(0,"could not skip to %ld in file `%s\'",5);\n            as_bad(pcVar1,local_44,pcVar2);\n          }\n        }\n      }\n      else {\n        pcVar1 = (char *)dcgettext(0,"seek to end of .incbin file failed `%s\'",5);\n        as_bad(pcVar1,pcVar2);\n      }\n      fclose(__stream);\n    }\n    free(pcVar2);\n  }" if (parenthesized_expression "(pcVar1 != (char *)0x0)" ( (binary_expression "pcVar1 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    cVar6 = *input_line_pointer;\n    if (cVar6 == ' ') {\n      cVar6 = input_line_pointer[1];\n      input_line_pointer = input_line_pointer + 1;\n    }\n    local_40 = 0;\n    local_44 = 0;\n    if (cVar6 == ',') {\n      input_line_pointer = input_line_pointer + 1;\n      oVar7 = get_absolute_expr(&exp);\n      local_44 = (int)oVar7;\n      cVar6 = *input_line_pointer;\n      if (cVar6 == ' ') {\n        cVar6 = input_line_pointer[1];\n        input_line_pointer = input_line_pointer + 1;\n      }\n      local_40 = 0;\n      if (cVar6 == ',') {\n        input_line_pointer = input_line_pointer + 1;\n        oVar7 = get_absolute_expr(&exp);\n        local_40 = (size_t)oVar7;\n        if (local_40 == 0) {\n          pcVar2 = (char *)dcgettext(0,".incbin count zero, ignoring `%s\'",5);\n          as_warn(pcVar2,pcVar1);\n        }\n        if (*input_line_pointer == ' ') {\n          input_line_pointer = input_line_pointer + 1;\n        }\n      }\n    }\n    demand_empty_rest_of_line();\n    __stream = fopen64(pcVar1,"r");\n    if (__stream == (FILE *)0x0) {\n      pcVar2 = (char *)xmalloc(include_dir_maxlen + len + 5);\n      if (0 < include_dir_count) {\n        iVar3 = 0;\n        do {\n          sprintf(pcVar2,"%s/%s",include_dirs[iVar3],pcVar1);\n          __stream = fopen64(pcVar2,"r");\n          if (__stream != (FILE *)0x0) goto LAB_00033c46;\n          iVar3 = iVar3 + 1;\n        } while (iVar3 < include_dir_count);\n      }\n      format = (char *)dcgettext(0,"file not found: %s",5);\n      as_bad(format,pcVar1);\n    }\n    else {\n      pcVar2 = (char *)xstrdup(pcVar1);\nLAB_00033c46:\n      register_dependency(pcVar2);\n      iVar3 = fseek(__stream,0,2);\n      if (iVar3 == 0) {\n        lVar4 = ftell(__stream);\n        nchars = lVar4 - local_44;\n        if (local_40 != 0) {\n          nchars = local_40;\n        }\n        if ((((char)((byte)((uint)local_44 >> 0x18) | (byte)(nchars >> 0x18)) < '\0') || (lVar4 < 0)\n            ) || (lVar4 < (int)(local_44 + nchars))) {\n          pcVar1 = (char *)dcgettext(0,"skip (%ld) or count (%ld) invalid for file size (%ld)",5);\n          as_bad(pcVar1,local_44,nchars,lVar4);\n        }\n        else {\n          iVar3 = fseek(__stream,local_44,0);\n          if (iVar3 == 0) {\n            pcVar1 = frag_more(nchars);\n            sVar5 = fread(pcVar1,1,nchars,__stream);\n            if ((int)sVar5 < (int)nchars) {\n              pcVar1 = (char *)dcgettext(0,"truncated file `%s\', %ld of %ld bytes read",5);\n              as_warn(pcVar1,pcVar2,sVar5,nchars);\n            }\n          }\n          else {\n            pcVar1 = (char *)dcgettext(0,"could not skip to %ld in file `%s\'",5);\n            as_bad(pcVar1,local_44,pcVar2);\n          }\n        }\n      }\n      else {\n        pcVar1 = (char *)dcgettext(0,"seek to end of .incbin file failed `%s\'",5);\n        as_bad(pcVar1,pcVar2);\n      }\n      fclose(__stream);\n    }\n    free(pcVar2);\n  }" { (expression_statement "cVar6 = *input_line_pointer;" (assignment_expression "cVar6 = *input_line_pointer" identifier = (pointer_expression "*input_line_pointer" * identifier)) ;) (if_statement "if (cVar6 == ' ') {\n      cVar6 = input_line_pointer[1];\n      input_line_pointer = input_line_pointer + 1;\n    }" if (parenthesized_expression "(cVar6 == ' ')" ( (binary_expression "cVar6 == ' '" identifier == (char_literal "' '" ' character ')) )) (compound_statement "{\n      cVar6 = input_line_pointer[1];\n      input_line_pointer = input_line_pointer + 1;\n    }" { (expression_statement "cVar6 = input_line_pointer[1];" (assignment_expression "cVar6 = input_line_pointer[1]" identifier = (subscript_expression "input_line_pointer[1]" identifier [ number_literal ])) ;) (expression_statement "input_line_pointer = input_line_pointer + 1;" (assignment_expression "input_line_pointer = input_line_pointer + 1" identifier = (binary_expression "input_line_pointer + 1" identifier + number_literal)) ;) })) (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" identifier = number_literal) ;) (expression_statement "local_44 = 0;" (assignment_expression "local_44 = 0" identifier = number_literal) ;) (if_statement "if (cVar6 == ',') {\n      input_line_pointer = input_line_pointer + 1;\n      oVar7 = get_absolute_expr(&exp);\n      local_44 = (int)oVar7;\n      cVar6 = *input_line_pointer;\n      if (cVar6 == ' ') {\n        cVar6 = input_line_pointer[1];\n        input_line_pointer = input_line_pointer + 1;\n      }\n      local_40 = 0;\n      if (cVar6 == ',') {\n        input_line_pointer = input_line_pointer + 1;\n        oVar7 = get_absolute_expr(&exp);\n        local_40 = (size_t)oVar7;\n        if (local_40 == 0) {\n          pcVar2 = (char *)dcgettext(0,".incbin count zero, ignoring `%s\'",5);\n          as_warn(pcVar2,pcVar1);\n        }\n        if (*input_line_pointer == ' ') {\n          input_line_pointer = input_line_pointer + 1;\n        }\n      }\n    }" if (parenthesized_expression "(cVar6 == ',')" ( (binary_expression "cVar6 == ','" identifier == (char_literal "','" ' character ')) )) (compound_statement "{\n      input_line_pointer = input_line_pointer + 1;\n      oVar7 = get_absolute_expr(&exp);\n      local_44 = (int)oVar7;\n      cVar6 = *input_line_pointer;\n      if (cVar6 == ' ') {\n        cVar6 = input_line_pointer[1];\n        input_line_pointer = input_line_pointer + 1;\n      }\n      local_40 = 0;\n      if (cVar6 == ',') {\n        input_line_pointer = input_line_pointer + 1;\n        oVar7 = get_absolute_expr(&exp);\n        local_40 = (size_t)oVar7;\n        if (local_40 == 0) {\n          pcVar2 = (char *)dcgettext(0,".incbin count zero, ignoring `%s\'",5);\n          as_warn(pcVar2,pcVar1);\n        }\n        if (*input_line_pointer == ' ') {\n          input_line_pointer = input_line_pointer + 1;\n        }\n      }\n    }" { (expression_statement "input_line_pointer = input_line_pointer + 1;" (assignment_expression "input_line_pointer = input_line_pointer + 1" identifier = (binary_expression "input_line_pointer + 1" identifier + number_literal)) ;) (expression_statement "oVar7 = get_absolute_expr(&exp);" (assignment_expression "oVar7 = get_absolute_expr(&exp)" identifier = (call_expression "get_absolute_expr(&exp)" identifier (argument_list "(&exp)" ( (pointer_expression "&exp" & identifier) )))) ;) (expression_statement "local_44 = (int)oVar7;" (assignment_expression "local_44 = (int)oVar7" identifier = (cast_expression "(int)oVar7" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "cVar6 = *input_line_pointer;" (assignment_expression "cVar6 = *input_line_pointer" identifier = (pointer_expression "*input_line_pointer" * identifier)) ;) (if_statement "if (cVar6 == ' ') {\n        cVar6 = input_line_pointer[1];\n        input_line_pointer = input_line_pointer + 1;\n      }" if (parenthesized_expression "(cVar6 == ' ')" ( (binary_expression "cVar6 == ' '" identifier == (char_literal "' '" ' character ')) )) (compound_statement "{\n        cVar6 = input_line_pointer[1];\n        input_line_pointer = input_line_pointer + 1;\n      }" { (expression_statement "cVar6 = input_line_pointer[1];" (assignment_expression "cVar6 = input_line_pointer[1]" identifier = (subscript_expression "input_line_pointer[1]" identifier [ number_literal ])) ;) (expression_statement "input_line_pointer = input_line_pointer + 1;" (assignment_expression "input_line_pointer = input_line_pointer + 1" identifier = (binary_expression "input_line_pointer + 1" identifier + number_literal)) ;) })) (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" identifier = number_literal) ;) (if_statement "if (cVar6 == ',') {\n        input_line_pointer = input_line_pointer + 1;\n        oVar7 = get_absolute_expr(&exp);\n        local_40 = (size_t)oVar7;\n        if (local_40 == 0) {\n          pcVar2 = (char *)dcgettext(0,".incbin count zero, ignoring `%s\'",5);\n          as_warn(pcVar2,pcVar1);\n        }\n        if (*input_line_pointer == ' ') {\n          input_line_pointer = input_line_pointer + 1;\n        }\n      }" if (parenthesized_expression "(cVar6 == ',')" ( (binary_expression "cVar6 == ','" identifier == (char_literal "','" ' character ')) )) (compound_statement "{\n        input_line_pointer = input_line_pointer + 1;\n        oVar7 = get_absolute_expr(&exp);\n        local_40 = (size_t)oVar7;\n        if (local_40 == 0) {\n          pcVar2 = (char *)dcgettext(0,".incbin count zero, ignoring `%s\'",5);\n          as_warn(pcVar2,pcVar1);\n        }\n        if (*input_line_pointer == ' ') {\n          input_line_pointer = input_line_pointer + 1;\n        }\n      }" { (expression_statement "input_line_pointer = input_line_pointer + 1;" (assignment_expression "input_line_pointer = input_line_pointer + 1" identifier = (binary_expression "input_line_pointer + 1" identifier + number_literal)) ;) (expression_statement "oVar7 = get_absolute_expr(&exp);" (assignment_expression "oVar7 = get_absolute_expr(&exp)" identifier = (call_expression "get_absolute_expr(&exp)" identifier (argument_list "(&exp)" ( (pointer_expression "&exp" & identifier) )))) ;) (expression_statement "local_40 = (size_t)oVar7;" (assignment_expression "local_40 = (size_t)oVar7" identifier = (cast_expression "(size_t)oVar7" ( (type_descriptor "size_t" primitive_type) ) identifier)) ;) (if_statement "if (local_40 == 0) {\n          pcVar2 = (char *)dcgettext(0,".incbin count zero, ignoring `%s\'",5);\n          as_warn(pcVar2,pcVar1);\n        }" if (parenthesized_expression "(local_40 == 0)" ( (binary_expression "local_40 == 0" identifier == number_literal) )) (compound_statement "{\n          pcVar2 = (char *)dcgettext(0,".incbin count zero, ignoring `%s\'",5);\n          as_warn(pcVar2,pcVar1);\n        }" { (expression_statement "pcVar2 = (char *)dcgettext(0,".incbin count zero, ignoring `%s\'",5);" (assignment_expression "pcVar2 = (char *)dcgettext(0,".incbin count zero, ignoring `%s\'",5)" identifier = (cast_expression "(char *)dcgettext(0,".incbin count zero, ignoring `%s\'",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,".incbin count zero, ignoring `%s\'",5)" identifier (argument_list "(0,".incbin count zero, ignoring `%s\'",5)" ( number_literal , (string_literal "".incbin count zero, ignoring `%s\'"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "as_warn(pcVar2,pcVar1);" (call_expression "as_warn(pcVar2,pcVar1)" identifier (argument_list "(pcVar2,pcVar1)" ( identifier , identifier ))) ;) })) (if_statement "if (*input_line_pointer == ' ') {\n          input_line_pointer = input_line_pointer + 1;\n        }" if (parenthesized_expression "(*input_line_pointer == ' ')" ( (binary_expression "*input_line_pointer == ' '" (pointer_expression "*input_line_pointer" * identifier) == (char_literal "' '" ' character ')) )) (compound_statement "{\n          input_line_pointer = input_line_pointer + 1;\n        }" { (expression_statement "input_line_pointer = input_line_pointer + 1;" (assignment_expression "input_line_pointer = input_line_pointer + 1" identifier = (binary_expression "input_line_pointer + 1" identifier + number_literal)) ;) })) })) })) (expression_statement "demand_empty_rest_of_line();" (call_expression "demand_empty_rest_of_line()" identifier (argument_list "()" ( ))) ;) (expression_statement "__stream = fopen64(pcVar1,"r");" (assignment_expression "__stream = fopen64(pcVar1,"r")" identifier = (call_expression "fopen64(pcVar1,"r")" identifier (argument_list "(pcVar1,"r")" ( identifier , (string_literal ""r"" " string_content ") )))) ;) (if_statement "if (__stream == (FILE *)0x0) {\n      pcVar2 = (char *)xmalloc(include_dir_maxlen + len + 5);\n      if (0 < include_dir_count) {\n        iVar3 = 0;\n        do {\n          sprintf(pcVar2,"%s/%s",include_dirs[iVar3],pcVar1);\n          __stream = fopen64(pcVar2,"r");\n          if (__stream != (FILE *)0x0) goto LAB_00033c46;\n          iVar3 = iVar3 + 1;\n        } while (iVar3 < include_dir_count);\n      }\n      format = (char *)dcgettext(0,"file not found: %s",5);\n      as_bad(format,pcVar1);\n    }\n    else {\n      pcVar2 = (char *)xstrdup(pcVar1);\nLAB_00033c46:\n      register_dependency(pcVar2);\n      iVar3 = fseek(__stream,0,2);\n      if (iVar3 == 0) {\n        lVar4 = ftell(__stream);\n        nchars = lVar4 - local_44;\n        if (local_40 != 0) {\n          nchars = local_40;\n        }\n        if ((((char)((byte)((uint)local_44 >> 0x18) | (byte)(nchars >> 0x18)) < '\0') || (lVar4 < 0)\n            ) || (lVar4 < (int)(local_44 + nchars))) {\n          pcVar1 = (char *)dcgettext(0,"skip (%ld) or count (%ld) invalid for file size (%ld)",5);\n          as_bad(pcVar1,local_44,nchars,lVar4);\n        }\n        else {\n          iVar3 = fseek(__stream,local_44,0);\n          if (iVar3 == 0) {\n            pcVar1 = frag_more(nchars);\n            sVar5 = fread(pcVar1,1,nchars,__stream);\n            if ((int)sVar5 < (int)nchars) {\n              pcVar1 = (char *)dcgettext(0,"truncated file `%s\', %ld of %ld bytes read",5);\n              as_warn(pcVar1,pcVar2,sVar5,nchars);\n            }\n          }\n          else {\n            pcVar1 = (char *)dcgettext(0,"could not skip to %ld in file `%s\'",5);\n            as_bad(pcVar1,local_44,pcVar2);\n          }\n        }\n      }\n      else {\n        pcVar1 = (char *)dcgettext(0,"seek to end of .incbin file failed `%s\'",5);\n        as_bad(pcVar1,pcVar2);\n      }\n      fclose(__stream);\n    }" 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)) )) (compound_statement "{\n      pcVar2 = (char *)xmalloc(include_dir_maxlen + len + 5);\n      if (0 < include_dir_count) {\n        iVar3 = 0;\n        do {\n          sprintf(pcVar2,"%s/%s",include_dirs[iVar3],pcVar1);\n          __stream = fopen64(pcVar2,"r");\n          if (__stream != (FILE *)0x0) goto LAB_00033c46;\n          iVar3 = iVar3 + 1;\n        } while (iVar3 < include_dir_count);\n      }\n      format = (char *)dcgettext(0,"file not found: %s",5);\n      as_bad(format,pcVar1);\n    }" { (expression_statement "pcVar2 = (char *)xmalloc(include_dir_maxlen + len + 5);" (assignment_expression "pcVar2 = (char *)xmalloc(include_dir_maxlen + len + 5)" identifier = (cast_expression "(char *)xmalloc(include_dir_maxlen + len + 5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(include_dir_maxlen + len + 5)" identifier (argument_list "(include_dir_maxlen + len + 5)" ( (binary_expression "include_dir_maxlen + len + 5" (binary_expression "include_dir_maxlen + len" identifier + identifier) + number_literal) ))))) ;) (if_statement "if (0 < include_dir_count) {\n        iVar3 = 0;\n        do {\n          sprintf(pcVar2,"%s/%s",include_dirs[iVar3],pcVar1);\n          __stream = fopen64(pcVar2,"r");\n          if (__stream != (FILE *)0x0) goto LAB_00033c46;\n          iVar3 = iVar3 + 1;\n        } while (iVar3 < include_dir_count);\n      }" if (parenthesized_expression "(0 < include_dir_count)" ( (binary_expression "0 < include_dir_count" number_literal < identifier) )) (compound_statement "{\n        iVar3 = 0;\n        do {\n          sprintf(pcVar2,"%s/%s",include_dirs[iVar3],pcVar1);\n          __stream = fopen64(pcVar2,"r");\n          if (__stream != (FILE *)0x0) goto LAB_00033c46;\n          iVar3 = iVar3 + 1;\n        } while (iVar3 < include_dir_count);\n      }" { (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) (do_statement "do {\n          sprintf(pcVar2,"%s/%s",include_dirs[iVar3],pcVar1);\n          __stream = fopen64(pcVar2,"r");\n          if (__stream != (FILE *)0x0) goto LAB_00033c46;\n          iVar3 = iVar3 + 1;\n        } while (iVar3 < include_dir_count);" do (compound_statement "{\n          sprintf(pcVar2,"%s/%s",include_dirs[iVar3],pcVar1);\n          __stream = fopen64(pcVar2,"r");\n          if (__stream != (FILE *)0x0) goto LAB_00033c46;\n          iVar3 = iVar3 + 1;\n        }" { (expression_statement "sprintf(pcVar2,"%s/%s",include_dirs[iVar3],pcVar1);" (call_expression "sprintf(pcVar2,"%s/%s",include_dirs[iVar3],pcVar1)" identifier (argument_list "(pcVar2,"%s/%s",include_dirs[iVar3],pcVar1)" ( identifier , (string_literal ""%s/%s"" " string_content ") , (subscript_expression "include_dirs[iVar3]" identifier [ identifier ]) , identifier ))) ;) (expression_statement "__stream = fopen64(pcVar2,"r");" (assignment_expression "__stream = fopen64(pcVar2,"r")" identifier = (call_expression "fopen64(pcVar2,"r")" identifier (argument_list "(pcVar2,"r")" ( identifier , (string_literal ""r"" " string_content ") )))) ;) (if_statement "if (__stream != (FILE *)0x0) goto LAB_00033c46;" 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_00033c46;" goto statement_identifier ;)) (expression_statement "iVar3 = iVar3 + 1;" (assignment_expression "iVar3 = iVar3 + 1" identifier = (binary_expression "iVar3 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar3 < include_dir_count)" ( (binary_expression "iVar3 < include_dir_count" identifier < identifier) )) ;) })) (expression_statement "format = (char *)dcgettext(0,"file not found: %s",5);" (assignment_expression "format = (char *)dcgettext(0,"file not found: %s",5)" identifier = (cast_expression "(char *)dcgettext(0,"file not found: %s",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"file not found: %s",5)" identifier (argument_list "(0,"file not found: %s",5)" ( number_literal , (string_literal ""file not found: %s"" " string_content ") , number_literal ))))) ;) (expression_statement "as_bad(format,pcVar1);" (call_expression "as_bad(format,pcVar1)" identifier (argument_list "(format,pcVar1)" ( identifier , identifier ))) ;) }) (else_clause "else {\n      pcVar2 = (char *)xstrdup(pcVar1);\nLAB_00033c46:\n      register_dependency(pcVar2);\n      iVar3 = fseek(__stream,0,2);\n      if (iVar3 == 0) {\n        lVar4 = ftell(__stream);\n        nchars = lVar4 - local_44;\n        if (local_40 != 0) {\n          nchars = local_40;\n        }\n        if ((((char)((byte)((uint)local_44 >> 0x18) | (byte)(nchars >> 0x18)) < '\0') || (lVar4 < 0)\n            ) || (lVar4 < (int)(local_44 + nchars))) {\n          pcVar1 = (char *)dcgettext(0,"skip (%ld) or count (%ld) invalid for file size (%ld)",5);\n          as_bad(pcVar1,local_44,nchars,lVar4);\n        }\n        else {\n          iVar3 = fseek(__stream,local_44,0);\n          if (iVar3 == 0) {\n            pcVar1 = frag_more(nchars);\n            sVar5 = fread(pcVar1,1,nchars,__stream);\n            if ((int)sVar5 < (int)nchars) {\n              pcVar1 = (char *)dcgettext(0,"truncated file `%s\', %ld of %ld bytes read",5);\n              as_warn(pcVar1,pcVar2,sVar5,nchars);\n            }\n          }\n          else {\n            pcVar1 = (char *)dcgettext(0,"could not skip to %ld in file `%s\'",5);\n            as_bad(pcVar1,local_44,pcVar2);\n          }\n        }\n      }\n      else {\n        pcVar1 = (char *)dcgettext(0,"seek to end of .incbin file failed `%s\'",5);\n        as_bad(pcVar1,pcVar2);\n      }\n      fclose(__stream);\n    }" else (compound_statement "{\n      pcVar2 = (char *)xstrdup(pcVar1);\nLAB_00033c46:\n      register_dependency(pcVar2);\n      iVar3 = fseek(__stream,0,2);\n      if (iVar3 == 0) {\n        lVar4 = ftell(__stream);\n        nchars = lVar4 - local_44;\n        if (local_40 != 0) {\n          nchars = local_40;\n        }\n        if ((((char)((byte)((uint)local_44 >> 0x18) | (byte)(nchars >> 0x18)) < '\0') || (lVar4 < 0)\n            ) || (lVar4 < (int)(local_44 + nchars))) {\n          pcVar1 = (char *)dcgettext(0,"skip (%ld) or count (%ld) invalid for file size (%ld)",5);\n          as_bad(pcVar1,local_44,nchars,lVar4);\n        }\n        else {\n          iVar3 = fseek(__stream,local_44,0);\n          if (iVar3 == 0) {\n            pcVar1 = frag_more(nchars);\n            sVar5 = fread(pcVar1,1,nchars,__stream);\n            if ((int)sVar5 < (int)nchars) {\n              pcVar1 = (char *)dcgettext(0,"truncated file `%s\', %ld of %ld bytes read",5);\n              as_warn(pcVar1,pcVar2,sVar5,nchars);\n            }\n          }\n          else {\n            pcVar1 = (char *)dcgettext(0,"could not skip to %ld in file `%s\'",5);\n            as_bad(pcVar1,local_44,pcVar2);\n          }\n        }\n      }\n      else {\n        pcVar1 = (char *)dcgettext(0,"seek to end of .incbin file failed `%s\'",5);\n        as_bad(pcVar1,pcVar2);\n      }\n      fclose(__stream);\n    }" { (expression_statement "pcVar2 = (char *)xstrdup(pcVar1);" (assignment_expression "pcVar2 = (char *)xstrdup(pcVar1)" identifier = (cast_expression "(char *)xstrdup(pcVar1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xstrdup(pcVar1)" identifier (argument_list "(pcVar1)" ( identifier ))))) ;) (labeled_statement "LAB_00033c46:\n      register_dependency(pcVar2);" statement_identifier : (expression_statement "register_dependency(pcVar2);" (call_expression "register_dependency(pcVar2)" identifier (argument_list "(pcVar2)" ( identifier ))) ;)) (expression_statement "iVar3 = fseek(__stream,0,2);" (assignment_expression "iVar3 = fseek(__stream,0,2)" identifier = (call_expression "fseek(__stream,0,2)" identifier (argument_list "(__stream,0,2)" ( identifier , number_literal , number_literal )))) ;) (if_statement "if (iVar3 == 0) {\n        lVar4 = ftell(__stream);\n        nchars = lVar4 - local_44;\n        if (local_40 != 0) {\n          nchars = local_40;\n        }\n        if ((((char)((byte)((uint)local_44 >> 0x18) | (byte)(nchars >> 0x18)) < '\0') || (lVar4 < 0)\n            ) || (lVar4 < (int)(local_44 + nchars))) {\n          pcVar1 = (char *)dcgettext(0,"skip (%ld) or count (%ld) invalid for file size (%ld)",5);\n          as_bad(pcVar1,local_44,nchars,lVar4);\n        }\n        else {\n          iVar3 = fseek(__stream,local_44,0);\n          if (iVar3 == 0) {\n            pcVar1 = frag_more(nchars);\n            sVar5 = fread(pcVar1,1,nchars,__stream);\n            if ((int)sVar5 < (int)nchars) {\n              pcVar1 = (char *)dcgettext(0,"truncated file `%s\', %ld of %ld bytes read",5);\n              as_warn(pcVar1,pcVar2,sVar5,nchars);\n            }\n          }\n          else {\n            pcVar1 = (char *)dcgettext(0,"could not skip to %ld in file `%s\'",5);\n            as_bad(pcVar1,local_44,pcVar2);\n          }\n        }\n      }\n      else {\n        pcVar1 = (char *)dcgettext(0,"seek to end of .incbin file failed `%s\'",5);\n        as_bad(pcVar1,pcVar2);\n      }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n        lVar4 = ftell(__stream);\n        nchars = lVar4 - local_44;\n        if (local_40 != 0) {\n          nchars = local_40;\n        }\n        if ((((char)((byte)((uint)local_44 >> 0x18) | (byte)(nchars >> 0x18)) < '\0') || (lVar4 < 0)\n            ) || (lVar4 < (int)(local_44 + nchars))) {\n          pcVar1 = (char *)dcgettext(0,"skip (%ld) or count (%ld) invalid for file size (%ld)",5);\n          as_bad(pcVar1,local_44,nchars,lVar4);\n        }\n        else {\n          iVar3 = fseek(__stream,local_44,0);\n          if (iVar3 == 0) {\n            pcVar1 = frag_more(nchars);\n            sVar5 = fread(pcVar1,1,nchars,__stream);\n            if ((int)sVar5 < (int)nchars) {\n              pcVar1 = (char *)dcgettext(0,"truncated file `%s\', %ld of %ld bytes read",5);\n              as_warn(pcVar1,pcVar2,sVar5,nchars);\n            }\n          }\n          else {\n            pcVar1 = (char *)dcgettext(0,"could not skip to %ld in file `%s\'",5);\n            as_bad(pcVar1,local_44,pcVar2);\n          }\n        }\n      }" { (expression_statement "lVar4 = ftell(__stream);" (assignment_expression "lVar4 = ftell(__stream)" identifier = (call_expression "ftell(__stream)" identifier (argument_list "(__stream)" ( identifier )))) ;) (expression_statement "nchars = lVar4 - local_44;" (assignment_expression "nchars = lVar4 - local_44" identifier = (binary_expression "lVar4 - local_44" identifier - identifier)) ;) (if_statement "if (local_40 != 0) {\n          nchars = local_40;\n        }" if (parenthesized_expression "(local_40 != 0)" ( (binary_expression "local_40 != 0" identifier != number_literal) )) (compound_statement "{\n          nchars = local_40;\n        }" { (expression_statement "nchars = local_40;" (assignment_expression "nchars = local_40" identifier = identifier) ;) })) (if_statement "if ((((char)((byte)((uint)local_44 >> 0x18) | (byte)(nchars >> 0x18)) < '\0') || (lVar4 < 0)\n            ) || (lVar4 < (int)(local_44 + nchars))) {\n          pcVar1 = (char *)dcgettext(0,"skip (%ld) or count (%ld) invalid for file size (%ld)",5);\n          as_bad(pcVar1,local_44,nchars,lVar4);\n        }\n        else {\n          iVar3 = fseek(__stream,local_44,0);\n          if (iVar3 == 0) {\n            pcVar1 = frag_more(nchars);\n            sVar5 = fread(pcVar1,1,nchars,__stream);\n            if ((int)sVar5 < (int)nchars) {\n              pcVar1 = (char *)dcgettext(0,"truncated file `%s\', %ld of %ld bytes read",5);\n              as_warn(pcVar1,pcVar2,sVar5,nchars);\n            }\n          }\n          else {\n            pcVar1 = (char *)dcgettext(0,"could not skip to %ld in file `%s\'",5);\n            as_bad(pcVar1,local_44,pcVar2);\n          }\n        }" if (parenthesized_expression "((((char)((byte)((uint)local_44 >> 0x18) | (byte)(nchars >> 0x18)) < '\0') || (lVar4 < 0)\n            ) || (lVar4 < (int)(local_44 + nchars)))" ( (binary_expression "(((char)((byte)((uint)local_44 >> 0x18) | (byte)(nchars >> 0x18)) < '\0') || (lVar4 < 0)\n            ) || (lVar4 < (int)(local_44 + nchars))" (parenthesized_expression "(((char)((byte)((uint)local_44 >> 0x18) | (byte)(nchars >> 0x18)) < '\0') || (lVar4 < 0)\n            )" ( (binary_expression "((char)((byte)((uint)local_44 >> 0x18) | (byte)(nchars >> 0x18)) < '\0') || (lVar4 < 0)" (parenthesized_expression "((char)((byte)((uint)local_44 >> 0x18) | (byte)(nchars >> 0x18)) < '\0')" ( (binary_expression "(char)((byte)((uint)local_44 >> 0x18) | (byte)(nchars >> 0x18)) < '\0'" (cast_expression "(char)((byte)((uint)local_44 >> 0x18) | (byte)(nchars >> 0x18))" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((byte)((uint)local_44 >> 0x18) | (byte)(nchars >> 0x18))" ( (binary_expression "(byte)((uint)local_44 >> 0x18) | (byte)(nchars >> 0x18)" (call_expression "(byte)((uint)local_44 >> 0x18)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uint)local_44 >> 0x18)" ( (binary_expression "(uint)local_44 >> 0x18" (cast_expression "(uint)local_44" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) ))) | (call_expression "(byte)(nchars >> 0x18)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(nchars >> 0x18)" ( (binary_expression "nchars >> 0x18" identifier >> number_literal) )))) ))) < (char_literal "'\0'" ' escape_sequence ')) )) || (parenthesized_expression "(lVar4 < 0)" ( (binary_expression "lVar4 < 0" identifier < number_literal) ))) )) || (parenthesized_expression "(lVar4 < (int)(local_44 + nchars))" ( (binary_expression "lVar4 < (int)(local_44 + nchars)" identifier < (cast_expression "(int)(local_44 + nchars)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(local_44 + nchars)" ( (binary_expression "local_44 + nchars" identifier + identifier) )))) ))) )) (compound_statement "{\n          pcVar1 = (char *)dcgettext(0,"skip (%ld) or count (%ld) invalid for file size (%ld)",5);\n          as_bad(pcVar1,local_44,nchars,lVar4);\n        }" { (expression_statement "pcVar1 = (char *)dcgettext(0,"skip (%ld) or count (%ld) invalid for file size (%ld)",5);" (assignment_expression "pcVar1 = (char *)dcgettext(0,"skip (%ld) or count (%ld) invalid for file size (%ld)",5)" identifier = (cast_expression "(char *)dcgettext(0,"skip (%ld) or count (%ld) invalid for file size (%ld)",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"skip (%ld) or count (%ld) invalid for file size (%ld)",5)" identifier (argument_list "(0,"skip (%ld) or count (%ld) invalid for file size (%ld)",5)" ( number_literal , (string_literal ""skip (%ld) or count (%ld) invalid for file size (%ld)"" " string_content ") , number_literal ))))) ;) (expression_statement "as_bad(pcVar1,local_44,nchars,lVar4);" (call_expression "as_bad(pcVar1,local_44,nchars,lVar4)" identifier (argument_list "(pcVar1,local_44,nchars,lVar4)" ( identifier , identifier , identifier , identifier ))) ;) }) (else_clause "else {\n          iVar3 = fseek(__stream,local_44,0);\n          if (iVar3 == 0) {\n            pcVar1 = frag_more(nchars);\n            sVar5 = fread(pcVar1,1,nchars,__stream);\n            if ((int)sVar5 < (int)nchars) {\n              pcVar1 = (char *)dcgettext(0,"truncated file `%s\', %ld of %ld bytes read",5);\n              as_warn(pcVar1,pcVar2,sVar5,nchars);\n            }\n          }\n          else {\n            pcVar1 = (char *)dcgettext(0,"could not skip to %ld in file `%s\'",5);\n            as_bad(pcVar1,local_44,pcVar2);\n          }\n        }" else (compound_statement "{\n          iVar3 = fseek(__stream,local_44,0);\n          if (iVar3 == 0) {\n            pcVar1 = frag_more(nchars);\n            sVar5 = fread(pcVar1,1,nchars,__stream);\n            if ((int)sVar5 < (int)nchars) {\n              pcVar1 = (char *)dcgettext(0,"truncated file `%s\', %ld of %ld bytes read",5);\n              as_warn(pcVar1,pcVar2,sVar5,nchars);\n            }\n          }\n          else {\n            pcVar1 = (char *)dcgettext(0,"could not skip to %ld in file `%s\'",5);\n            as_bad(pcVar1,local_44,pcVar2);\n          }\n        }" { (expression_statement "iVar3 = fseek(__stream,local_44,0);" (assignment_expression "iVar3 = fseek(__stream,local_44,0)" identifier = (call_expression "fseek(__stream,local_44,0)" identifier (argument_list "(__stream,local_44,0)" ( identifier , identifier , number_literal )))) ;) (if_statement "if (iVar3 == 0) {\n            pcVar1 = frag_more(nchars);\n            sVar5 = fread(pcVar1,1,nchars,__stream);\n            if ((int)sVar5 < (int)nchars) {\n              pcVar1 = (char *)dcgettext(0,"truncated file `%s\', %ld of %ld bytes read",5);\n              as_warn(pcVar1,pcVar2,sVar5,nchars);\n            }\n          }\n          else {\n            pcVar1 = (char *)dcgettext(0,"could not skip to %ld in file `%s\'",5);\n            as_bad(pcVar1,local_44,pcVar2);\n          }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n            pcVar1 = frag_more(nchars);\n            sVar5 = fread(pcVar1,1,nchars,__stream);\n            if ((int)sVar5 < (int)nchars) {\n              pcVar1 = (char *)dcgettext(0,"truncated file `%s\', %ld of %ld bytes read",5);\n              as_warn(pcVar1,pcVar2,sVar5,nchars);\n            }\n          }" { (expression_statement "pcVar1 = frag_more(nchars);" (assignment_expression "pcVar1 = frag_more(nchars)" identifier = (call_expression "frag_more(nchars)" identifier (argument_list "(nchars)" ( identifier )))) ;) (expression_statement "sVar5 = fread(pcVar1,1,nchars,__stream);" (assignment_expression "sVar5 = fread(pcVar1,1,nchars,__stream)" identifier = (call_expression "fread(pcVar1,1,nchars,__stream)" identifier (argument_list "(pcVar1,1,nchars,__stream)" ( identifier , number_literal , identifier , identifier )))) ;) (if_statement "if ((int)sVar5 < (int)nchars) {\n              pcVar1 = (char *)dcgettext(0,"truncated file `%s\', %ld of %ld bytes read",5);\n              as_warn(pcVar1,pcVar2,sVar5,nchars);\n            }" if (parenthesized_expression "((int)sVar5 < (int)nchars)" ( (binary_expression "(int)sVar5 < (int)nchars" (cast_expression "(int)sVar5" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)nchars" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n              pcVar1 = (char *)dcgettext(0,"truncated file `%s\', %ld of %ld bytes read",5);\n              as_warn(pcVar1,pcVar2,sVar5,nchars);\n            }" { (expression_statement "pcVar1 = (char *)dcgettext(0,"truncated file `%s\', %ld of %ld bytes read",5);" (assignment_expression "pcVar1 = (char *)dcgettext(0,"truncated file `%s\', %ld of %ld bytes read",5)" identifier = (cast_expression "(char *)dcgettext(0,"truncated file `%s\', %ld of %ld bytes read",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"truncated file `%s\', %ld of %ld bytes read",5)" identifier (argument_list "(0,"truncated file `%s\', %ld of %ld bytes read",5)" ( number_literal , (string_literal ""truncated file `%s\', %ld of %ld bytes read"" " string_content escape_sequence string_content ") , number_literal ))))) ;) (expression_statement "as_warn(pcVar1,pcVar2,sVar5,nchars);" (call_expression "as_warn(pcVar1,pcVar2,sVar5,nchars)" identifier (argument_list "(pcVar1,pcVar2,sVar5,nchars)" ( identifier , identifier , identifier , identifier ))) ;) })) }) (else_clause "else {\n            pcVar1 = (char *)dcgettext(0,"could not skip to %ld in file `%s\'",5);\n            as_bad(pcVar1,local_44,pcVar2);\n          }" else (compound_statement "{\n            pcVar1 = (char *)dcgettext(0,"could not skip to %ld in file `%s\'",5);\n            as_bad(pcVar1,local_44,pcVar2);\n          }" { (expression_statement "pcVar1 = (char *)dcgettext(0,"could not skip to %ld in file `%s\'",5);" (assignment_expression "pcVar1 = (char *)dcgettext(0,"could not skip to %ld in file `%s\'",5)" identifier = (cast_expression "(char *)dcgettext(0,"could not skip to %ld in file `%s\'",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"could not skip to %ld in file `%s\'",5)" identifier (argument_list "(0,"could not skip to %ld in file `%s\'",5)" ( number_literal , (string_literal ""could not skip to %ld in file `%s\'"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "as_bad(pcVar1,local_44,pcVar2);" (call_expression "as_bad(pcVar1,local_44,pcVar2)" identifier (argument_list "(pcVar1,local_44,pcVar2)" ( identifier , identifier , identifier ))) ;) }))) }))) }) (else_clause "else {\n        pcVar1 = (char *)dcgettext(0,"seek to end of .incbin file failed `%s\'",5);\n        as_bad(pcVar1,pcVar2);\n      }" else (compound_statement "{\n        pcVar1 = (char *)dcgettext(0,"seek to end of .incbin file failed `%s\'",5);\n        as_bad(pcVar1,pcVar2);\n      }" { (expression_statement "pcVar1 = (char *)dcgettext(0,"seek to end of .incbin file failed `%s\'",5);" (assignment_expression "pcVar1 = (char *)dcgettext(0,"seek to end of .incbin file failed `%s\'",5)" identifier = (cast_expression "(char *)dcgettext(0,"seek to end of .incbin file failed `%s\'",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"seek to end of .incbin file failed `%s\'",5)" identifier (argument_list "(0,"seek to end of .incbin file failed `%s\'",5)" ( number_literal , (string_literal ""seek to end of .incbin file failed `%s\'"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "as_bad(pcVar1,pcVar2);" (call_expression "as_bad(pcVar1,pcVar2)" identifier (argument_list "(pcVar1,pcVar2)" ( identifier , identifier ))) ;) }))) (expression_statement "fclose(__stream);" (call_expression "fclose(__stream)" identifier (argument_list "(__stream)" ( identifier ))) ;) }))) (expression_statement "free(pcVar2);" (call_expression "free(pcVar2)" identifier (argument_list "(pcVar2)" ( identifier ))) ;) })) (return_statement "return;" return ;) })))
(translation_unit "void FUN_00033ba0(void)\n\n{\n  char *__filename;\n  FILE *__stream;\n  char *__s;\n  int iVar1;\n  long lVar2;\n  void *__ptr;\n  size_t sVar3;\n  undefined4 uVar4;\n  char cVar5;\n  size_t __n;\n  int local_44;\n  size_t local_40;\n  int local_34 [8];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x33ba9;\n  if (*DAT_00077ef8 == ' ') {\n    DAT_00077ef8 = DAT_00077ef8 + 1;\n  }\n  __filename = (char *)FUN_00033650(local_34);\n  if (__filename != (char *)0x0) {\n    cVar5 = *DAT_00077ef8;\n    if (cVar5 == ' ') {\n      cVar5 = DAT_00077ef8[1];\n      DAT_00077ef8 = DAT_00077ef8 + 1;\n    }\n    local_40 = 0;\n    local_44 = 0;\n    if (cVar5 == ',') {\n      DAT_00077ef8 = DAT_00077ef8 + 1;\n      local_44 = FUN_0002c480();\n      cVar5 = *DAT_00077ef8;\n      if (cVar5 == ' ') {\n        cVar5 = DAT_00077ef8[1];\n        DAT_00077ef8 = DAT_00077ef8 + 1;\n      }\n      local_40 = 0;\n      if (cVar5 == ',') {\n        DAT_00077ef8 = DAT_00077ef8 + 1;\n        local_40 = FUN_0002c480();\n        if (local_40 == 0) {\n          uVar4 = dcgettext(0,".incbin count zero, ignoring `%s\'",5);\n          FUN_0002bc50(uVar4,__filename);\n        }\n        if (*DAT_00077ef8 == ' ') {\n          DAT_00077ef8 = DAT_00077ef8 + 1;\n        }\n      }\n    }\n    FUN_0002e290();\n    __stream = fopen64(__filename,"r");\n    if (__stream == (FILE *)0x0) {\n      __s = (char *)xmalloc(DAT_0006f2c4 + local_34[0] + 5);\n      if (0 < DAT_00077f80) {\n        iVar1 = 0;\n        do {\n          sprintf(__s,"%s/%s",*(undefined4 *)(DAT_00077ee4 + iVar1 * 4),__filename);\n          __stream = fopen64(__s,"r");\n          if (__stream != (FILE *)0x0) goto LAB_00033c46;\n          iVar1 = iVar1 + 1;\n        } while (iVar1 < DAT_00077f80);\n      }\n      uVar4 = dcgettext(0,"file not found: %s",5);\n      FUN_0002bd30(uVar4,__filename);\n    }\n    else {\n      __s = (char *)xstrdup(__filename);\nLAB_00033c46:\n      FUN_00019d00(__s);\n      iVar1 = fseek(__stream,0,2);\n      if (iVar1 == 0) {\n        lVar2 = ftell(__stream);\n        __n = lVar2 - local_44;\n        if (local_40 != 0) {\n          __n = local_40;\n        }\n        if ((((char)((byte)((uint)local_44 >> 0x18) | (byte)(__n >> 0x18)) < '\0') || (lVar2 < 0))\n           || (lVar2 < (int)(local_44 + __n))) {\n          uVar4 = dcgettext(0,"skip (%ld) or count (%ld) invalid for file size (%ld)",5);\n          FUN_0002bd30(uVar4,local_44,__n,lVar2);\n        }\n        else {\n          iVar1 = fseek(__stream,local_44,0);\n          if (iVar1 == 0) {\n            __ptr = (void *)FUN_00024a90(__n);\n            sVar3 = fread(__ptr,1,__n,__stream);\n            if ((int)sVar3 < (int)__n) {\n              uVar4 = dcgettext(0,"truncated file `%s\', %ld of %ld bytes read",5);\n              FUN_0002bc50(uVar4,__s,sVar3,__n);\n            }\n          }\n          else {\n            uVar4 = dcgettext(0,"could not skip to %ld in file `%s\'",5);\n            FUN_0002bd30(uVar4,local_44,__s);\n          }\n        }\n      }\n      else {\n        uVar4 = dcgettext(0,"seek to end of .incbin file failed `%s\'",5);\n        FUN_0002bd30(uVar4,__s);\n      }\n      fclose(__stream);\n    }\n    free(__s);\n  }\n  return;\n}\n\n" (function_definition "void FUN_00033ba0(void)\n\n{\n  char *__filename;\n  FILE *__stream;\n  char *__s;\n  int iVar1;\n  long lVar2;\n  void *__ptr;\n  size_t sVar3;\n  undefined4 uVar4;\n  char cVar5;\n  size_t __n;\n  int local_44;\n  size_t local_40;\n  int local_34 [8];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x33ba9;\n  if (*DAT_00077ef8 == ' ') {\n    DAT_00077ef8 = DAT_00077ef8 + 1;\n  }\n  __filename = (char *)FUN_00033650(local_34);\n  if (__filename != (char *)0x0) {\n    cVar5 = *DAT_00077ef8;\n    if (cVar5 == ' ') {\n      cVar5 = DAT_00077ef8[1];\n      DAT_00077ef8 = DAT_00077ef8 + 1;\n    }\n    local_40 = 0;\n    local_44 = 0;\n    if (cVar5 == ',') {\n      DAT_00077ef8 = DAT_00077ef8 + 1;\n      local_44 = FUN_0002c480();\n      cVar5 = *DAT_00077ef8;\n      if (cVar5 == ' ') {\n        cVar5 = DAT_00077ef8[1];\n        DAT_00077ef8 = DAT_00077ef8 + 1;\n      }\n      local_40 = 0;\n      if (cVar5 == ',') {\n        DAT_00077ef8 = DAT_00077ef8 + 1;\n        local_40 = FUN_0002c480();\n        if (local_40 == 0) {\n          uVar4 = dcgettext(0,".incbin count zero, ignoring `%s\'",5);\n          FUN_0002bc50(uVar4,__filename);\n        }\n        if (*DAT_00077ef8 == ' ') {\n          DAT_00077ef8 = DAT_00077ef8 + 1;\n        }\n      }\n    }\n    FUN_0002e290();\n    __stream = fopen64(__filename,"r");\n    if (__stream == (FILE *)0x0) {\n      __s = (char *)xmalloc(DAT_0006f2c4 + local_34[0] + 5);\n      if (0 < DAT_00077f80) {\n        iVar1 = 0;\n        do {\n          sprintf(__s,"%s/%s",*(undefined4 *)(DAT_00077ee4 + iVar1 * 4),__filename);\n          __stream = fopen64(__s,"r");\n          if (__stream != (FILE *)0x0) goto LAB_00033c46;\n          iVar1 = iVar1 + 1;\n        } while (iVar1 < DAT_00077f80);\n      }\n      uVar4 = dcgettext(0,"file not found: %s",5);\n      FUN_0002bd30(uVar4,__filename);\n    }\n    else {\n      __s = (char *)xstrdup(__filename);\nLAB_00033c46:\n      FUN_00019d00(__s);\n      iVar1 = fseek(__stream,0,2);\n      if (iVar1 == 0) {\n        lVar2 = ftell(__stream);\n        __n = lVar2 - local_44;\n        if (local_40 != 0) {\n          __n = local_40;\n        }\n        if ((((char)((byte)((uint)local_44 >> 0x18) | (byte)(__n >> 0x18)) < '\0') || (lVar2 < 0))\n           || (lVar2 < (int)(local_44 + __n))) {\n          uVar4 = dcgettext(0,"skip (%ld) or count (%ld) invalid for file size (%ld)",5);\n          FUN_0002bd30(uVar4,local_44,__n,lVar2);\n        }\n        else {\n          iVar1 = fseek(__stream,local_44,0);\n          if (iVar1 == 0) {\n            __ptr = (void *)FUN_00024a90(__n);\n            sVar3 = fread(__ptr,1,__n,__stream);\n            if ((int)sVar3 < (int)__n) {\n              uVar4 = dcgettext(0,"truncated file `%s\', %ld of %ld bytes read",5);\n              FUN_0002bc50(uVar4,__s,sVar3,__n);\n            }\n          }\n          else {\n            uVar4 = dcgettext(0,"could not skip to %ld in file `%s\'",5);\n            FUN_0002bd30(uVar4,local_44,__s);\n          }\n        }\n      }\n      else {\n        uVar4 = dcgettext(0,"seek to end of .incbin file failed `%s\'",5);\n        FUN_0002bd30(uVar4,__s);\n      }\n      fclose(__stream);\n    }\n    free(__s);\n  }\n  return;\n}" primitive_type (function_declarator "FUN_00033ba0(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  char *__filename;\n  FILE *__stream;\n  char *__s;\n  int iVar1;\n  long lVar2;\n  void *__ptr;\n  size_t sVar3;\n  undefined4 uVar4;\n  char cVar5;\n  size_t __n;\n  int local_44;\n  size_t local_40;\n  int local_34 [8];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x33ba9;\n  if (*DAT_00077ef8 == ' ') {\n    DAT_00077ef8 = DAT_00077ef8 + 1;\n  }\n  __filename = (char *)FUN_00033650(local_34);\n  if (__filename != (char *)0x0) {\n    cVar5 = *DAT_00077ef8;\n    if (cVar5 == ' ') {\n      cVar5 = DAT_00077ef8[1];\n      DAT_00077ef8 = DAT_00077ef8 + 1;\n    }\n    local_40 = 0;\n    local_44 = 0;\n    if (cVar5 == ',') {\n      DAT_00077ef8 = DAT_00077ef8 + 1;\n      local_44 = FUN_0002c480();\n      cVar5 = *DAT_00077ef8;\n      if (cVar5 == ' ') {\n        cVar5 = DAT_00077ef8[1];\n        DAT_00077ef8 = DAT_00077ef8 + 1;\n      }\n      local_40 = 0;\n      if (cVar5 == ',') {\n        DAT_00077ef8 = DAT_00077ef8 + 1;\n        local_40 = FUN_0002c480();\n        if (local_40 == 0) {\n          uVar4 = dcgettext(0,".incbin count zero, ignoring `%s\'",5);\n          FUN_0002bc50(uVar4,__filename);\n        }\n        if (*DAT_00077ef8 == ' ') {\n          DAT_00077ef8 = DAT_00077ef8 + 1;\n        }\n      }\n    }\n    FUN_0002e290();\n    __stream = fopen64(__filename,"r");\n    if (__stream == (FILE *)0x0) {\n      __s = (char *)xmalloc(DAT_0006f2c4 + local_34[0] + 5);\n      if (0 < DAT_00077f80) {\n        iVar1 = 0;\n        do {\n          sprintf(__s,"%s/%s",*(undefined4 *)(DAT_00077ee4 + iVar1 * 4),__filename);\n          __stream = fopen64(__s,"r");\n          if (__stream != (FILE *)0x0) goto LAB_00033c46;\n          iVar1 = iVar1 + 1;\n        } while (iVar1 < DAT_00077f80);\n      }\n      uVar4 = dcgettext(0,"file not found: %s",5);\n      FUN_0002bd30(uVar4,__filename);\n    }\n    else {\n      __s = (char *)xstrdup(__filename);\nLAB_00033c46:\n      FUN_00019d00(__s);\n      iVar1 = fseek(__stream,0,2);\n      if (iVar1 == 0) {\n        lVar2 = ftell(__stream);\n        __n = lVar2 - local_44;\n        if (local_40 != 0) {\n          __n = local_40;\n        }\n        if ((((char)((byte)((uint)local_44 >> 0x18) | (byte)(__n >> 0x18)) < '\0') || (lVar2 < 0))\n           || (lVar2 < (int)(local_44 + __n))) {\n          uVar4 = dcgettext(0,"skip (%ld) or count (%ld) invalid for file size (%ld)",5);\n          FUN_0002bd30(uVar4,local_44,__n,lVar2);\n        }\n        else {\n          iVar1 = fseek(__stream,local_44,0);\n          if (iVar1 == 0) {\n            __ptr = (void *)FUN_00024a90(__n);\n            sVar3 = fread(__ptr,1,__n,__stream);\n            if ((int)sVar3 < (int)__n) {\n              uVar4 = dcgettext(0,"truncated file `%s\', %ld of %ld bytes read",5);\n              FUN_0002bc50(uVar4,__s,sVar3,__n);\n            }\n          }\n          else {\n            uVar4 = dcgettext(0,"could not skip to %ld in file `%s\'",5);\n            FUN_0002bd30(uVar4,local_44,__s);\n          }\n        }\n      }\n      else {\n        uVar4 = dcgettext(0,"seek to end of .incbin file failed `%s\'",5);\n        FUN_0002bd30(uVar4,__s);\n      }\n      fclose(__stream);\n    }\n    free(__s);\n  }\n  return;\n}" { (declaration "char *__filename;" primitive_type (pointer_declarator "*__filename" * identifier) ;) (declaration "FILE *__stream;" type_identifier (pointer_declarator "*__stream" * identifier) ;) (declaration "char *__s;" primitive_type (pointer_declarator "*__s" * identifier) ;) (declaration "int iVar1;" primitive_type identifier ;) (declaration "long lVar2;" (sized_type_specifier "long" long) identifier ;) (declaration "void *__ptr;" primitive_type (pointer_declarator "*__ptr" * identifier) ;) (declaration "size_t sVar3;" primitive_type identifier ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "char cVar5;" primitive_type identifier ;) (declaration "size_t __n;" primitive_type identifier ;) (declaration "int local_44;" primitive_type identifier ;) (declaration "size_t local_40;" primitive_type identifier ;) (declaration "int local_34 [8];" primitive_type (array_declarator "local_34 [8]" identifier [ number_literal ]) ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "uStack_14 = 0x33ba9;" (assignment_expression "uStack_14 = 0x33ba9" identifier = number_literal) ;) (if_statement "if (*DAT_00077ef8 == ' ') {\n    DAT_00077ef8 = DAT_00077ef8 + 1;\n  }" if (parenthesized_expression "(*DAT_00077ef8 == ' ')" ( (binary_expression "*DAT_00077ef8 == ' '" (pointer_expression "*DAT_00077ef8" * identifier) == (char_literal "' '" ' character ')) )) (compound_statement "{\n    DAT_00077ef8 = DAT_00077ef8 + 1;\n  }" { (expression_statement "DAT_00077ef8 = DAT_00077ef8 + 1;" (assignment_expression "DAT_00077ef8 = DAT_00077ef8 + 1" identifier = (binary_expression "DAT_00077ef8 + 1" identifier + number_literal)) ;) })) (expression_statement "__filename = (char *)FUN_00033650(local_34);" (assignment_expression "__filename = (char *)FUN_00033650(local_34)" identifier = (cast_expression "(char *)FUN_00033650(local_34)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00033650(local_34)" identifier (argument_list "(local_34)" ( identifier ))))) ;) (if_statement "if (__filename != (char *)0x0) {\n    cVar5 = *DAT_00077ef8;\n    if (cVar5 == ' ') {\n      cVar5 = DAT_00077ef8[1];\n      DAT_00077ef8 = DAT_00077ef8 + 1;\n    }\n    local_40 = 0;\n    local_44 = 0;\n    if (cVar5 == ',') {\n      DAT_00077ef8 = DAT_00077ef8 + 1;\n      local_44 = FUN_0002c480();\n      cVar5 = *DAT_00077ef8;\n      if (cVar5 == ' ') {\n        cVar5 = DAT_00077ef8[1];\n        DAT_00077ef8 = DAT_00077ef8 + 1;\n      }\n      local_40 = 0;\n      if (cVar5 == ',') {\n        DAT_00077ef8 = DAT_00077ef8 + 1;\n        local_40 = FUN_0002c480();\n        if (local_40 == 0) {\n          uVar4 = dcgettext(0,".incbin count zero, ignoring `%s\'",5);\n          FUN_0002bc50(uVar4,__filename);\n        }\n        if (*DAT_00077ef8 == ' ') {\n          DAT_00077ef8 = DAT_00077ef8 + 1;\n        }\n      }\n    }\n    FUN_0002e290();\n    __stream = fopen64(__filename,"r");\n    if (__stream == (FILE *)0x0) {\n      __s = (char *)xmalloc(DAT_0006f2c4 + local_34[0] + 5);\n      if (0 < DAT_00077f80) {\n        iVar1 = 0;\n        do {\n          sprintf(__s,"%s/%s",*(undefined4 *)(DAT_00077ee4 + iVar1 * 4),__filename);\n          __stream = fopen64(__s,"r");\n          if (__stream != (FILE *)0x0) goto LAB_00033c46;\n          iVar1 = iVar1 + 1;\n        } while (iVar1 < DAT_00077f80);\n      }\n      uVar4 = dcgettext(0,"file not found: %s",5);\n      FUN_0002bd30(uVar4,__filename);\n    }\n    else {\n      __s = (char *)xstrdup(__filename);\nLAB_00033c46:\n      FUN_00019d00(__s);\n      iVar1 = fseek(__stream,0,2);\n      if (iVar1 == 0) {\n        lVar2 = ftell(__stream);\n        __n = lVar2 - local_44;\n        if (local_40 != 0) {\n          __n = local_40;\n        }\n        if ((((char)((byte)((uint)local_44 >> 0x18) | (byte)(__n >> 0x18)) < '\0') || (lVar2 < 0))\n           || (lVar2 < (int)(local_44 + __n))) {\n          uVar4 = dcgettext(0,"skip (%ld) or count (%ld) invalid for file size (%ld)",5);\n          FUN_0002bd30(uVar4,local_44,__n,lVar2);\n        }\n        else {\n          iVar1 = fseek(__stream,local_44,0);\n          if (iVar1 == 0) {\n            __ptr = (void *)FUN_00024a90(__n);\n            sVar3 = fread(__ptr,1,__n,__stream);\n            if ((int)sVar3 < (int)__n) {\n              uVar4 = dcgettext(0,"truncated file `%s\', %ld of %ld bytes read",5);\n              FUN_0002bc50(uVar4,__s,sVar3,__n);\n            }\n          }\n          else {\n            uVar4 = dcgettext(0,"could not skip to %ld in file `%s\'",5);\n            FUN_0002bd30(uVar4,local_44,__s);\n          }\n        }\n      }\n      else {\n        uVar4 = dcgettext(0,"seek to end of .incbin file failed `%s\'",5);\n        FUN_0002bd30(uVar4,__s);\n      }\n      fclose(__stream);\n    }\n    free(__s);\n  }" if (parenthesized_expression "(__filename != (char *)0x0)" ( (binary_expression "__filename != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    cVar5 = *DAT_00077ef8;\n    if (cVar5 == ' ') {\n      cVar5 = DAT_00077ef8[1];\n      DAT_00077ef8 = DAT_00077ef8 + 1;\n    }\n    local_40 = 0;\n    local_44 = 0;\n    if (cVar5 == ',') {\n      DAT_00077ef8 = DAT_00077ef8 + 1;\n      local_44 = FUN_0002c480();\n      cVar5 = *DAT_00077ef8;\n      if (cVar5 == ' ') {\n        cVar5 = DAT_00077ef8[1];\n        DAT_00077ef8 = DAT_00077ef8 + 1;\n      }\n      local_40 = 0;\n      if (cVar5 == ',') {\n        DAT_00077ef8 = DAT_00077ef8 + 1;\n        local_40 = FUN_0002c480();\n        if (local_40 == 0) {\n          uVar4 = dcgettext(0,".incbin count zero, ignoring `%s\'",5);\n          FUN_0002bc50(uVar4,__filename);\n        }\n        if (*DAT_00077ef8 == ' ') {\n          DAT_00077ef8 = DAT_00077ef8 + 1;\n        }\n      }\n    }\n    FUN_0002e290();\n    __stream = fopen64(__filename,"r");\n    if (__stream == (FILE *)0x0) {\n      __s = (char *)xmalloc(DAT_0006f2c4 + local_34[0] + 5);\n      if (0 < DAT_00077f80) {\n        iVar1 = 0;\n        do {\n          sprintf(__s,"%s/%s",*(undefined4 *)(DAT_00077ee4 + iVar1 * 4),__filename);\n          __stream = fopen64(__s,"r");\n          if (__stream != (FILE *)0x0) goto LAB_00033c46;\n          iVar1 = iVar1 + 1;\n        } while (iVar1 < DAT_00077f80);\n      }\n      uVar4 = dcgettext(0,"file not found: %s",5);\n      FUN_0002bd30(uVar4,__filename);\n    }\n    else {\n      __s = (char *)xstrdup(__filename);\nLAB_00033c46:\n      FUN_00019d00(__s);\n      iVar1 = fseek(__stream,0,2);\n      if (iVar1 == 0) {\n        lVar2 = ftell(__stream);\n        __n = lVar2 - local_44;\n        if (local_40 != 0) {\n          __n = local_40;\n        }\n        if ((((char)((byte)((uint)local_44 >> 0x18) | (byte)(__n >> 0x18)) < '\0') || (lVar2 < 0))\n           || (lVar2 < (int)(local_44 + __n))) {\n          uVar4 = dcgettext(0,"skip (%ld) or count (%ld) invalid for file size (%ld)",5);\n          FUN_0002bd30(uVar4,local_44,__n,lVar2);\n        }\n        else {\n          iVar1 = fseek(__stream,local_44,0);\n          if (iVar1 == 0) {\n            __ptr = (void *)FUN_00024a90(__n);\n            sVar3 = fread(__ptr,1,__n,__stream);\n            if ((int)sVar3 < (int)__n) {\n              uVar4 = dcgettext(0,"truncated file `%s\', %ld of %ld bytes read",5);\n              FUN_0002bc50(uVar4,__s,sVar3,__n);\n            }\n          }\n          else {\n            uVar4 = dcgettext(0,"could not skip to %ld in file `%s\'",5);\n            FUN_0002bd30(uVar4,local_44,__s);\n          }\n        }\n      }\n      else {\n        uVar4 = dcgettext(0,"seek to end of .incbin file failed `%s\'",5);\n        FUN_0002bd30(uVar4,__s);\n      }\n      fclose(__stream);\n    }\n    free(__s);\n  }" { (expression_statement "cVar5 = *DAT_00077ef8;" (assignment_expression "cVar5 = *DAT_00077ef8" identifier = (pointer_expression "*DAT_00077ef8" * identifier)) ;) (if_statement "if (cVar5 == ' ') {\n      cVar5 = DAT_00077ef8[1];\n      DAT_00077ef8 = DAT_00077ef8 + 1;\n    }" if (parenthesized_expression "(cVar5 == ' ')" ( (binary_expression "cVar5 == ' '" identifier == (char_literal "' '" ' character ')) )) (compound_statement "{\n      cVar5 = DAT_00077ef8[1];\n      DAT_00077ef8 = DAT_00077ef8 + 1;\n    }" { (expression_statement "cVar5 = DAT_00077ef8[1];" (assignment_expression "cVar5 = DAT_00077ef8[1]" identifier = (subscript_expression "DAT_00077ef8[1]" identifier [ number_literal ])) ;) (expression_statement "DAT_00077ef8 = DAT_00077ef8 + 1;" (assignment_expression "DAT_00077ef8 = DAT_00077ef8 + 1" identifier = (binary_expression "DAT_00077ef8 + 1" identifier + number_literal)) ;) })) (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" identifier = number_literal) ;) (expression_statement "local_44 = 0;" (assignment_expression "local_44 = 0" identifier = number_literal) ;) (if_statement "if (cVar5 == ',') {\n      DAT_00077ef8 = DAT_00077ef8 + 1;\n      local_44 = FUN_0002c480();\n      cVar5 = *DAT_00077ef8;\n      if (cVar5 == ' ') {\n        cVar5 = DAT_00077ef8[1];\n        DAT_00077ef8 = DAT_00077ef8 + 1;\n      }\n      local_40 = 0;\n      if (cVar5 == ',') {\n        DAT_00077ef8 = DAT_00077ef8 + 1;\n        local_40 = FUN_0002c480();\n        if (local_40 == 0) {\n          uVar4 = dcgettext(0,".incbin count zero, ignoring `%s\'",5);\n          FUN_0002bc50(uVar4,__filename);\n        }\n        if (*DAT_00077ef8 == ' ') {\n          DAT_00077ef8 = DAT_00077ef8 + 1;\n        }\n      }\n    }" if (parenthesized_expression "(cVar5 == ',')" ( (binary_expression "cVar5 == ','" identifier == (char_literal "','" ' character ')) )) (compound_statement "{\n      DAT_00077ef8 = DAT_00077ef8 + 1;\n      local_44 = FUN_0002c480();\n      cVar5 = *DAT_00077ef8;\n      if (cVar5 == ' ') {\n        cVar5 = DAT_00077ef8[1];\n        DAT_00077ef8 = DAT_00077ef8 + 1;\n      }\n      local_40 = 0;\n      if (cVar5 == ',') {\n        DAT_00077ef8 = DAT_00077ef8 + 1;\n        local_40 = FUN_0002c480();\n        if (local_40 == 0) {\n          uVar4 = dcgettext(0,".incbin count zero, ignoring `%s\'",5);\n          FUN_0002bc50(uVar4,__filename);\n        }\n        if (*DAT_00077ef8 == ' ') {\n          DAT_00077ef8 = DAT_00077ef8 + 1;\n        }\n      }\n    }" { (expression_statement "DAT_00077ef8 = DAT_00077ef8 + 1;" (assignment_expression "DAT_00077ef8 = DAT_00077ef8 + 1" identifier = (binary_expression "DAT_00077ef8 + 1" identifier + number_literal)) ;) (expression_statement "local_44 = FUN_0002c480();" (assignment_expression "local_44 = FUN_0002c480()" identifier = (call_expression "FUN_0002c480()" identifier (argument_list "()" ( )))) ;) (expression_statement "cVar5 = *DAT_00077ef8;" (assignment_expression "cVar5 = *DAT_00077ef8" identifier = (pointer_expression "*DAT_00077ef8" * identifier)) ;) (if_statement "if (cVar5 == ' ') {\n        cVar5 = DAT_00077ef8[1];\n        DAT_00077ef8 = DAT_00077ef8 + 1;\n      }" if (parenthesized_expression "(cVar5 == ' ')" ( (binary_expression "cVar5 == ' '" identifier == (char_literal "' '" ' character ')) )) (compound_statement "{\n        cVar5 = DAT_00077ef8[1];\n        DAT_00077ef8 = DAT_00077ef8 + 1;\n      }" { (expression_statement "cVar5 = DAT_00077ef8[1];" (assignment_expression "cVar5 = DAT_00077ef8[1]" identifier = (subscript_expression "DAT_00077ef8[1]" identifier [ number_literal ])) ;) (expression_statement "DAT_00077ef8 = DAT_00077ef8 + 1;" (assignment_expression "DAT_00077ef8 = DAT_00077ef8 + 1" identifier = (binary_expression "DAT_00077ef8 + 1" identifier + number_literal)) ;) })) (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" identifier = number_literal) ;) (if_statement "if (cVar5 == ',') {\n        DAT_00077ef8 = DAT_00077ef8 + 1;\n        local_40 = FUN_0002c480();\n        if (local_40 == 0) {\n          uVar4 = dcgettext(0,".incbin count zero, ignoring `%s\'",5);\n          FUN_0002bc50(uVar4,__filename);\n        }\n        if (*DAT_00077ef8 == ' ') {\n          DAT_00077ef8 = DAT_00077ef8 + 1;\n        }\n      }" if (parenthesized_expression "(cVar5 == ',')" ( (binary_expression "cVar5 == ','" identifier == (char_literal "','" ' character ')) )) (compound_statement "{\n        DAT_00077ef8 = DAT_00077ef8 + 1;\n        local_40 = FUN_0002c480();\n        if (local_40 == 0) {\n          uVar4 = dcgettext(0,".incbin count zero, ignoring `%s\'",5);\n          FUN_0002bc50(uVar4,__filename);\n        }\n        if (*DAT_00077ef8 == ' ') {\n          DAT_00077ef8 = DAT_00077ef8 + 1;\n        }\n      }" { (expression_statement "DAT_00077ef8 = DAT_00077ef8 + 1;" (assignment_expression "DAT_00077ef8 = DAT_00077ef8 + 1" identifier = (binary_expression "DAT_00077ef8 + 1" identifier + number_literal)) ;) (expression_statement "local_40 = FUN_0002c480();" (assignment_expression "local_40 = FUN_0002c480()" identifier = (call_expression "FUN_0002c480()" identifier (argument_list "()" ( )))) ;) (if_statement "if (local_40 == 0) {\n          uVar4 = dcgettext(0,".incbin count zero, ignoring `%s\'",5);\n          FUN_0002bc50(uVar4,__filename);\n        }" if (parenthesized_expression "(local_40 == 0)" ( (binary_expression "local_40 == 0" identifier == number_literal) )) (compound_statement "{\n          uVar4 = dcgettext(0,".incbin count zero, ignoring `%s\'",5);\n          FUN_0002bc50(uVar4,__filename);\n        }" { (expression_statement "uVar4 = dcgettext(0,".incbin count zero, ignoring `%s\'",5);" (assignment_expression "uVar4 = dcgettext(0,".incbin count zero, ignoring `%s\'",5)" identifier = (call_expression "dcgettext(0,".incbin count zero, ignoring `%s\'",5)" identifier (argument_list "(0,".incbin count zero, ignoring `%s\'",5)" ( number_literal , (string_literal "".incbin count zero, ignoring `%s\'"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "FUN_0002bc50(uVar4,__filename);" (call_expression "FUN_0002bc50(uVar4,__filename)" identifier (argument_list "(uVar4,__filename)" ( identifier , identifier ))) ;) })) (if_statement "if (*DAT_00077ef8 == ' ') {\n          DAT_00077ef8 = DAT_00077ef8 + 1;\n        }" if (parenthesized_expression "(*DAT_00077ef8 == ' ')" ( (binary_expression "*DAT_00077ef8 == ' '" (pointer_expression "*DAT_00077ef8" * identifier) == (char_literal "' '" ' character ')) )) (compound_statement "{\n          DAT_00077ef8 = DAT_00077ef8 + 1;\n        }" { (expression_statement "DAT_00077ef8 = DAT_00077ef8 + 1;" (assignment_expression "DAT_00077ef8 = DAT_00077ef8 + 1" identifier = (binary_expression "DAT_00077ef8 + 1" identifier + number_literal)) ;) })) })) })) (expression_statement "FUN_0002e290();" (call_expression "FUN_0002e290()" identifier (argument_list "()" ( ))) ;) (expression_statement "__stream = fopen64(__filename,"r");" (assignment_expression "__stream = fopen64(__filename,"r")" identifier = (call_expression "fopen64(__filename,"r")" identifier (argument_list "(__filename,"r")" ( identifier , (string_literal ""r"" " string_content ") )))) ;) (if_statement "if (__stream == (FILE *)0x0) {\n      __s = (char *)xmalloc(DAT_0006f2c4 + local_34[0] + 5);\n      if (0 < DAT_00077f80) {\n        iVar1 = 0;\n        do {\n          sprintf(__s,"%s/%s",*(undefined4 *)(DAT_00077ee4 + iVar1 * 4),__filename);\n          __stream = fopen64(__s,"r");\n          if (__stream != (FILE *)0x0) goto LAB_00033c46;\n          iVar1 = iVar1 + 1;\n        } while (iVar1 < DAT_00077f80);\n      }\n      uVar4 = dcgettext(0,"file not found: %s",5);\n      FUN_0002bd30(uVar4,__filename);\n    }\n    else {\n      __s = (char *)xstrdup(__filename);\nLAB_00033c46:\n      FUN_00019d00(__s);\n      iVar1 = fseek(__stream,0,2);\n      if (iVar1 == 0) {\n        lVar2 = ftell(__stream);\n        __n = lVar2 - local_44;\n        if (local_40 != 0) {\n          __n = local_40;\n        }\n        if ((((char)((byte)((uint)local_44 >> 0x18) | (byte)(__n >> 0x18)) < '\0') || (lVar2 < 0))\n           || (lVar2 < (int)(local_44 + __n))) {\n          uVar4 = dcgettext(0,"skip (%ld) or count (%ld) invalid for file size (%ld)",5);\n          FUN_0002bd30(uVar4,local_44,__n,lVar2);\n        }\n        else {\n          iVar1 = fseek(__stream,local_44,0);\n          if (iVar1 == 0) {\n            __ptr = (void *)FUN_00024a90(__n);\n            sVar3 = fread(__ptr,1,__n,__stream);\n            if ((int)sVar3 < (int)__n) {\n              uVar4 = dcgettext(0,"truncated file `%s\', %ld of %ld bytes read",5);\n              FUN_0002bc50(uVar4,__s,sVar3,__n);\n            }\n          }\n          else {\n            uVar4 = dcgettext(0,"could not skip to %ld in file `%s\'",5);\n            FUN_0002bd30(uVar4,local_44,__s);\n          }\n        }\n      }\n      else {\n        uVar4 = dcgettext(0,"seek to end of .incbin file failed `%s\'",5);\n        FUN_0002bd30(uVar4,__s);\n      }\n      fclose(__stream);\n    }" 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)) )) (compound_statement "{\n      __s = (char *)xmalloc(DAT_0006f2c4 + local_34[0] + 5);\n      if (0 < DAT_00077f80) {\n        iVar1 = 0;\n        do {\n          sprintf(__s,"%s/%s",*(undefined4 *)(DAT_00077ee4 + iVar1 * 4),__filename);\n          __stream = fopen64(__s,"r");\n          if (__stream != (FILE *)0x0) goto LAB_00033c46;\n          iVar1 = iVar1 + 1;\n        } while (iVar1 < DAT_00077f80);\n      }\n      uVar4 = dcgettext(0,"file not found: %s",5);\n      FUN_0002bd30(uVar4,__filename);\n    }" { (expression_statement "__s = (char *)xmalloc(DAT_0006f2c4 + local_34[0] + 5);" (assignment_expression "__s = (char *)xmalloc(DAT_0006f2c4 + local_34[0] + 5)" identifier = (cast_expression "(char *)xmalloc(DAT_0006f2c4 + local_34[0] + 5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(DAT_0006f2c4 + local_34[0] + 5)" identifier (argument_list "(DAT_0006f2c4 + local_34[0] + 5)" ( (binary_expression "DAT_0006f2c4 + local_34[0] + 5" (binary_expression "DAT_0006f2c4 + local_34[0]" identifier + (subscript_expression "local_34[0]" identifier [ number_literal ])) + number_literal) ))))) ;) (if_statement "if (0 < DAT_00077f80) {\n        iVar1 = 0;\n        do {\n          sprintf(__s,"%s/%s",*(undefined4 *)(DAT_00077ee4 + iVar1 * 4),__filename);\n          __stream = fopen64(__s,"r");\n          if (__stream != (FILE *)0x0) goto LAB_00033c46;\n          iVar1 = iVar1 + 1;\n        } while (iVar1 < DAT_00077f80);\n      }" if (parenthesized_expression "(0 < DAT_00077f80)" ( (binary_expression "0 < DAT_00077f80" number_literal < identifier) )) (compound_statement "{\n        iVar1 = 0;\n        do {\n          sprintf(__s,"%s/%s",*(undefined4 *)(DAT_00077ee4 + iVar1 * 4),__filename);\n          __stream = fopen64(__s,"r");\n          if (__stream != (FILE *)0x0) goto LAB_00033c46;\n          iVar1 = iVar1 + 1;\n        } while (iVar1 < DAT_00077f80);\n      }" { (expression_statement "iVar1 = 0;" (assignment_expression "iVar1 = 0" identifier = number_literal) ;) (do_statement "do {\n          sprintf(__s,"%s/%s",*(undefined4 *)(DAT_00077ee4 + iVar1 * 4),__filename);\n          __stream = fopen64(__s,"r");\n          if (__stream != (FILE *)0x0) goto LAB_00033c46;\n          iVar1 = iVar1 + 1;\n        } while (iVar1 < DAT_00077f80);" do (compound_statement "{\n          sprintf(__s,"%s/%s",*(undefined4 *)(DAT_00077ee4 + iVar1 * 4),__filename);\n          __stream = fopen64(__s,"r");\n          if (__stream != (FILE *)0x0) goto LAB_00033c46;\n          iVar1 = iVar1 + 1;\n        }" { (expression_statement "sprintf(__s,"%s/%s",*(undefined4 *)(DAT_00077ee4 + iVar1 * 4),__filename);" (call_expression "sprintf(__s,"%s/%s",*(undefined4 *)(DAT_00077ee4 + iVar1 * 4),__filename)" identifier (argument_list "(__s,"%s/%s",*(undefined4 *)(DAT_00077ee4 + iVar1 * 4),__filename)" ( identifier , (string_literal ""%s/%s"" " string_content ") , (pointer_expression "*(undefined4 *)(DAT_00077ee4 + iVar1 * 4)" * (cast_expression "(undefined4 *)(DAT_00077ee4 + iVar1 * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00077ee4 + iVar1 * 4)" ( (binary_expression "DAT_00077ee4 + iVar1 * 4" identifier + (binary_expression "iVar1 * 4" identifier * number_literal)) )))) , identifier ))) ;) (expression_statement "__stream = fopen64(__s,"r");" (assignment_expression "__stream = fopen64(__s,"r")" identifier = (call_expression "fopen64(__s,"r")" identifier (argument_list "(__s,"r")" ( identifier , (string_literal ""r"" " string_content ") )))) ;) (if_statement "if (__stream != (FILE *)0x0) goto LAB_00033c46;" 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_00033c46;" goto statement_identifier ;)) (expression_statement "iVar1 = iVar1 + 1;" (assignment_expression "iVar1 = iVar1 + 1" identifier = (binary_expression "iVar1 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar1 < DAT_00077f80)" ( (binary_expression "iVar1 < DAT_00077f80" identifier < identifier) )) ;) })) (expression_statement "uVar4 = dcgettext(0,"file not found: %s",5);" (assignment_expression "uVar4 = dcgettext(0,"file not found: %s",5)" identifier = (call_expression "dcgettext(0,"file not found: %s",5)" identifier (argument_list "(0,"file not found: %s",5)" ( number_literal , (string_literal ""file not found: %s"" " string_content ") , number_literal )))) ;) (expression_statement "FUN_0002bd30(uVar4,__filename);" (call_expression "FUN_0002bd30(uVar4,__filename)" identifier (argument_list "(uVar4,__filename)" ( identifier , identifier ))) ;) }) (else_clause "else {\n      __s = (char *)xstrdup(__filename);\nLAB_00033c46:\n      FUN_00019d00(__s);\n      iVar1 = fseek(__stream,0,2);\n      if (iVar1 == 0) {\n        lVar2 = ftell(__stream);\n        __n = lVar2 - local_44;\n        if (local_40 != 0) {\n          __n = local_40;\n        }\n        if ((((char)((byte)((uint)local_44 >> 0x18) | (byte)(__n >> 0x18)) < '\0') || (lVar2 < 0))\n           || (lVar2 < (int)(local_44 + __n))) {\n          uVar4 = dcgettext(0,"skip (%ld) or count (%ld) invalid for file size (%ld)",5);\n          FUN_0002bd30(uVar4,local_44,__n,lVar2);\n        }\n        else {\n          iVar1 = fseek(__stream,local_44,0);\n          if (iVar1 == 0) {\n            __ptr = (void *)FUN_00024a90(__n);\n            sVar3 = fread(__ptr,1,__n,__stream);\n            if ((int)sVar3 < (int)__n) {\n              uVar4 = dcgettext(0,"truncated file `%s\', %ld of %ld bytes read",5);\n              FUN_0002bc50(uVar4,__s,sVar3,__n);\n            }\n          }\n          else {\n            uVar4 = dcgettext(0,"could not skip to %ld in file `%s\'",5);\n            FUN_0002bd30(uVar4,local_44,__s);\n          }\n        }\n      }\n      else {\n        uVar4 = dcgettext(0,"seek to end of .incbin file failed `%s\'",5);\n        FUN_0002bd30(uVar4,__s);\n      }\n      fclose(__stream);\n    }" else (compound_statement "{\n      __s = (char *)xstrdup(__filename);\nLAB_00033c46:\n      FUN_00019d00(__s);\n      iVar1 = fseek(__stream,0,2);\n      if (iVar1 == 0) {\n        lVar2 = ftell(__stream);\n        __n = lVar2 - local_44;\n        if (local_40 != 0) {\n          __n = local_40;\n        }\n        if ((((char)((byte)((uint)local_44 >> 0x18) | (byte)(__n >> 0x18)) < '\0') || (lVar2 < 0))\n           || (lVar2 < (int)(local_44 + __n))) {\n          uVar4 = dcgettext(0,"skip (%ld) or count (%ld) invalid for file size (%ld)",5);\n          FUN_0002bd30(uVar4,local_44,__n,lVar2);\n        }\n        else {\n          iVar1 = fseek(__stream,local_44,0);\n          if (iVar1 == 0) {\n            __ptr = (void *)FUN_00024a90(__n);\n            sVar3 = fread(__ptr,1,__n,__stream);\n            if ((int)sVar3 < (int)__n) {\n              uVar4 = dcgettext(0,"truncated file `%s\', %ld of %ld bytes read",5);\n              FUN_0002bc50(uVar4,__s,sVar3,__n);\n            }\n          }\n          else {\n            uVar4 = dcgettext(0,"could not skip to %ld in file `%s\'",5);\n            FUN_0002bd30(uVar4,local_44,__s);\n          }\n        }\n      }\n      else {\n        uVar4 = dcgettext(0,"seek to end of .incbin file failed `%s\'",5);\n        FUN_0002bd30(uVar4,__s);\n      }\n      fclose(__stream);\n    }" { (expression_statement "__s = (char *)xstrdup(__filename);" (assignment_expression "__s = (char *)xstrdup(__filename)" identifier = (cast_expression "(char *)xstrdup(__filename)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xstrdup(__filename)" identifier (argument_list "(__filename)" ( identifier ))))) ;) (labeled_statement "LAB_00033c46:\n      FUN_00019d00(__s);" statement_identifier : (expression_statement "FUN_00019d00(__s);" (call_expression "FUN_00019d00(__s)" identifier (argument_list "(__s)" ( identifier ))) ;)) (expression_statement "iVar1 = fseek(__stream,0,2);" (assignment_expression "iVar1 = fseek(__stream,0,2)" identifier = (call_expression "fseek(__stream,0,2)" identifier (argument_list "(__stream,0,2)" ( identifier , number_literal , number_literal )))) ;) (if_statement "if (iVar1 == 0) {\n        lVar2 = ftell(__stream);\n        __n = lVar2 - local_44;\n        if (local_40 != 0) {\n          __n = local_40;\n        }\n        if ((((char)((byte)((uint)local_44 >> 0x18) | (byte)(__n >> 0x18)) < '\0') || (lVar2 < 0))\n           || (lVar2 < (int)(local_44 + __n))) {\n          uVar4 = dcgettext(0,"skip (%ld) or count (%ld) invalid for file size (%ld)",5);\n          FUN_0002bd30(uVar4,local_44,__n,lVar2);\n        }\n        else {\n          iVar1 = fseek(__stream,local_44,0);\n          if (iVar1 == 0) {\n            __ptr = (void *)FUN_00024a90(__n);\n            sVar3 = fread(__ptr,1,__n,__stream);\n            if ((int)sVar3 < (int)__n) {\n              uVar4 = dcgettext(0,"truncated file `%s\', %ld of %ld bytes read",5);\n              FUN_0002bc50(uVar4,__s,sVar3,__n);\n            }\n          }\n          else {\n            uVar4 = dcgettext(0,"could not skip to %ld in file `%s\'",5);\n            FUN_0002bd30(uVar4,local_44,__s);\n          }\n        }\n      }\n      else {\n        uVar4 = dcgettext(0,"seek to end of .incbin file failed `%s\'",5);\n        FUN_0002bd30(uVar4,__s);\n      }" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (compound_statement "{\n        lVar2 = ftell(__stream);\n        __n = lVar2 - local_44;\n        if (local_40 != 0) {\n          __n = local_40;\n        }\n        if ((((char)((byte)((uint)local_44 >> 0x18) | (byte)(__n >> 0x18)) < '\0') || (lVar2 < 0))\n           || (lVar2 < (int)(local_44 + __n))) {\n          uVar4 = dcgettext(0,"skip (%ld) or count (%ld) invalid for file size (%ld)",5);\n          FUN_0002bd30(uVar4,local_44,__n,lVar2);\n        }\n        else {\n          iVar1 = fseek(__stream,local_44,0);\n          if (iVar1 == 0) {\n            __ptr = (void *)FUN_00024a90(__n);\n            sVar3 = fread(__ptr,1,__n,__stream);\n            if ((int)sVar3 < (int)__n) {\n              uVar4 = dcgettext(0,"truncated file `%s\', %ld of %ld bytes read",5);\n              FUN_0002bc50(uVar4,__s,sVar3,__n);\n            }\n          }\n          else {\n            uVar4 = dcgettext(0,"could not skip to %ld in file `%s\'",5);\n            FUN_0002bd30(uVar4,local_44,__s);\n          }\n        }\n      }" { (expression_statement "lVar2 = ftell(__stream);" (assignment_expression "lVar2 = ftell(__stream)" identifier = (call_expression "ftell(__stream)" identifier (argument_list "(__stream)" ( identifier )))) ;) (expression_statement "__n = lVar2 - local_44;" (assignment_expression "__n = lVar2 - local_44" identifier = (binary_expression "lVar2 - local_44" identifier - identifier)) ;) (if_statement "if (local_40 != 0) {\n          __n = local_40;\n        }" if (parenthesized_expression "(local_40 != 0)" ( (binary_expression "local_40 != 0" identifier != number_literal) )) (compound_statement "{\n          __n = local_40;\n        }" { (expression_statement "__n = local_40;" (assignment_expression "__n = local_40" identifier = identifier) ;) })) (if_statement "if ((((char)((byte)((uint)local_44 >> 0x18) | (byte)(__n >> 0x18)) < '\0') || (lVar2 < 0))\n           || (lVar2 < (int)(local_44 + __n))) {\n          uVar4 = dcgettext(0,"skip (%ld) or count (%ld) invalid for file size (%ld)",5);\n          FUN_0002bd30(uVar4,local_44,__n,lVar2);\n        }\n        else {\n          iVar1 = fseek(__stream,local_44,0);\n          if (iVar1 == 0) {\n            __ptr = (void *)FUN_00024a90(__n);\n            sVar3 = fread(__ptr,1,__n,__stream);\n            if ((int)sVar3 < (int)__n) {\n              uVar4 = dcgettext(0,"truncated file `%s\', %ld of %ld bytes read",5);\n              FUN_0002bc50(uVar4,__s,sVar3,__n);\n            }\n          }\n          else {\n            uVar4 = dcgettext(0,"could not skip to %ld in file `%s\'",5);\n            FUN_0002bd30(uVar4,local_44,__s);\n          }\n        }" if (parenthesized_expression "((((char)((byte)((uint)local_44 >> 0x18) | (byte)(__n >> 0x18)) < '\0') || (lVar2 < 0))\n           || (lVar2 < (int)(local_44 + __n)))" ( (binary_expression "(((char)((byte)((uint)local_44 >> 0x18) | (byte)(__n >> 0x18)) < '\0') || (lVar2 < 0))\n           || (lVar2 < (int)(local_44 + __n))" (parenthesized_expression "(((char)((byte)((uint)local_44 >> 0x18) | (byte)(__n >> 0x18)) < '\0') || (lVar2 < 0))" ( (binary_expression "((char)((byte)((uint)local_44 >> 0x18) | (byte)(__n >> 0x18)) < '\0') || (lVar2 < 0)" (parenthesized_expression "((char)((byte)((uint)local_44 >> 0x18) | (byte)(__n >> 0x18)) < '\0')" ( (binary_expression "(char)((byte)((uint)local_44 >> 0x18) | (byte)(__n >> 0x18)) < '\0'" (cast_expression "(char)((byte)((uint)local_44 >> 0x18) | (byte)(__n >> 0x18))" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((byte)((uint)local_44 >> 0x18) | (byte)(__n >> 0x18))" ( (binary_expression "(byte)((uint)local_44 >> 0x18) | (byte)(__n >> 0x18)" (call_expression "(byte)((uint)local_44 >> 0x18)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uint)local_44 >> 0x18)" ( (binary_expression "(uint)local_44 >> 0x18" (cast_expression "(uint)local_44" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) ))) | (call_expression "(byte)(__n >> 0x18)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(__n >> 0x18)" ( (binary_expression "__n >> 0x18" identifier >> number_literal) )))) ))) < (char_literal "'\0'" ' escape_sequence ')) )) || (parenthesized_expression "(lVar2 < 0)" ( (binary_expression "lVar2 < 0" identifier < number_literal) ))) )) || (parenthesized_expression "(lVar2 < (int)(local_44 + __n))" ( (binary_expression "lVar2 < (int)(local_44 + __n)" identifier < (cast_expression "(int)(local_44 + __n)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(local_44 + __n)" ( (binary_expression "local_44 + __n" identifier + identifier) )))) ))) )) (compound_statement "{\n          uVar4 = dcgettext(0,"skip (%ld) or count (%ld) invalid for file size (%ld)",5);\n          FUN_0002bd30(uVar4,local_44,__n,lVar2);\n        }" { (expression_statement "uVar4 = dcgettext(0,"skip (%ld) or count (%ld) invalid for file size (%ld)",5);" (assignment_expression "uVar4 = dcgettext(0,"skip (%ld) or count (%ld) invalid for file size (%ld)",5)" identifier = (call_expression "dcgettext(0,"skip (%ld) or count (%ld) invalid for file size (%ld)",5)" identifier (argument_list "(0,"skip (%ld) or count (%ld) invalid for file size (%ld)",5)" ( number_literal , (string_literal ""skip (%ld) or count (%ld) invalid for file size (%ld)"" " string_content ") , number_literal )))) ;) (expression_statement "FUN_0002bd30(uVar4,local_44,__n,lVar2);" (call_expression "FUN_0002bd30(uVar4,local_44,__n,lVar2)" identifier (argument_list "(uVar4,local_44,__n,lVar2)" ( identifier , identifier , identifier , identifier ))) ;) }) (else_clause "else {\n          iVar1 = fseek(__stream,local_44,0);\n          if (iVar1 == 0) {\n            __ptr = (void *)FUN_00024a90(__n);\n            sVar3 = fread(__ptr,1,__n,__stream);\n            if ((int)sVar3 < (int)__n) {\n              uVar4 = dcgettext(0,"truncated file `%s\', %ld of %ld bytes read",5);\n              FUN_0002bc50(uVar4,__s,sVar3,__n);\n            }\n          }\n          else {\n            uVar4 = dcgettext(0,"could not skip to %ld in file `%s\'",5);\n            FUN_0002bd30(uVar4,local_44,__s);\n          }\n        }" else (compound_statement "{\n          iVar1 = fseek(__stream,local_44,0);\n          if (iVar1 == 0) {\n            __ptr = (void *)FUN_00024a90(__n);\n            sVar3 = fread(__ptr,1,__n,__stream);\n            if ((int)sVar3 < (int)__n) {\n              uVar4 = dcgettext(0,"truncated file `%s\', %ld of %ld bytes read",5);\n              FUN_0002bc50(uVar4,__s,sVar3,__n);\n            }\n          }\n          else {\n            uVar4 = dcgettext(0,"could not skip to %ld in file `%s\'",5);\n            FUN_0002bd30(uVar4,local_44,__s);\n          }\n        }" { (expression_statement "iVar1 = fseek(__stream,local_44,0);" (assignment_expression "iVar1 = fseek(__stream,local_44,0)" identifier = (call_expression "fseek(__stream,local_44,0)" identifier (argument_list "(__stream,local_44,0)" ( identifier , identifier , number_literal )))) ;) (if_statement "if (iVar1 == 0) {\n            __ptr = (void *)FUN_00024a90(__n);\n            sVar3 = fread(__ptr,1,__n,__stream);\n            if ((int)sVar3 < (int)__n) {\n              uVar4 = dcgettext(0,"truncated file `%s\', %ld of %ld bytes read",5);\n              FUN_0002bc50(uVar4,__s,sVar3,__n);\n            }\n          }\n          else {\n            uVar4 = dcgettext(0,"could not skip to %ld in file `%s\'",5);\n            FUN_0002bd30(uVar4,local_44,__s);\n          }" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (compound_statement "{\n            __ptr = (void *)FUN_00024a90(__n);\n            sVar3 = fread(__ptr,1,__n,__stream);\n            if ((int)sVar3 < (int)__n) {\n              uVar4 = dcgettext(0,"truncated file `%s\', %ld of %ld bytes read",5);\n              FUN_0002bc50(uVar4,__s,sVar3,__n);\n            }\n          }" { (expression_statement "__ptr = (void *)FUN_00024a90(__n);" (assignment_expression "__ptr = (void *)FUN_00024a90(__n)" identifier = (cast_expression "(void *)FUN_00024a90(__n)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00024a90(__n)" identifier (argument_list "(__n)" ( identifier ))))) ;) (expression_statement "sVar3 = fread(__ptr,1,__n,__stream);" (assignment_expression "sVar3 = fread(__ptr,1,__n,__stream)" identifier = (call_expression "fread(__ptr,1,__n,__stream)" identifier (argument_list "(__ptr,1,__n,__stream)" ( identifier , number_literal , identifier , identifier )))) ;) (if_statement "if ((int)sVar3 < (int)__n) {\n              uVar4 = dcgettext(0,"truncated file `%s\', %ld of %ld bytes read",5);\n              FUN_0002bc50(uVar4,__s,sVar3,__n);\n            }" if (parenthesized_expression "((int)sVar3 < (int)__n)" ( (binary_expression "(int)sVar3 < (int)__n" (cast_expression "(int)sVar3" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)__n" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n              uVar4 = dcgettext(0,"truncated file `%s\', %ld of %ld bytes read",5);\n              FUN_0002bc50(uVar4,__s,sVar3,__n);\n            }" { (expression_statement "uVar4 = dcgettext(0,"truncated file `%s\', %ld of %ld bytes read",5);" (assignment_expression "uVar4 = dcgettext(0,"truncated file `%s\', %ld of %ld bytes read",5)" identifier = (call_expression "dcgettext(0,"truncated file `%s\', %ld of %ld bytes read",5)" identifier (argument_list "(0,"truncated file `%s\', %ld of %ld bytes read",5)" ( number_literal , (string_literal ""truncated file `%s\', %ld of %ld bytes read"" " string_content escape_sequence string_content ") , number_literal )))) ;) (expression_statement "FUN_0002bc50(uVar4,__s,sVar3,__n);" (call_expression "FUN_0002bc50(uVar4,__s,sVar3,__n)" identifier (argument_list "(uVar4,__s,sVar3,__n)" ( identifier , identifier , identifier , identifier ))) ;) })) }) (else_clause "else {\n            uVar4 = dcgettext(0,"could not skip to %ld in file `%s\'",5);\n            FUN_0002bd30(uVar4,local_44,__s);\n          }" else (compound_statement "{\n            uVar4 = dcgettext(0,"could not skip to %ld in file `%s\'",5);\n            FUN_0002bd30(uVar4,local_44,__s);\n          }" { (expression_statement "uVar4 = dcgettext(0,"could not skip to %ld in file `%s\'",5);" (assignment_expression "uVar4 = dcgettext(0,"could not skip to %ld in file `%s\'",5)" identifier = (call_expression "dcgettext(0,"could not skip to %ld in file `%s\'",5)" identifier (argument_list "(0,"could not skip to %ld in file `%s\'",5)" ( number_literal , (string_literal ""could not skip to %ld in file `%s\'"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "FUN_0002bd30(uVar4,local_44,__s);" (call_expression "FUN_0002bd30(uVar4,local_44,__s)" identifier (argument_list "(uVar4,local_44,__s)" ( identifier , identifier , identifier ))) ;) }))) }))) }) (else_clause "else {\n        uVar4 = dcgettext(0,"seek to end of .incbin file failed `%s\'",5);\n        FUN_0002bd30(uVar4,__s);\n      }" else (compound_statement "{\n        uVar4 = dcgettext(0,"seek to end of .incbin file failed `%s\'",5);\n        FUN_0002bd30(uVar4,__s);\n      }" { (expression_statement "uVar4 = dcgettext(0,"seek to end of .incbin file failed `%s\'",5);" (assignment_expression "uVar4 = dcgettext(0,"seek to end of .incbin file failed `%s\'",5)" identifier = (call_expression "dcgettext(0,"seek to end of .incbin file failed `%s\'",5)" identifier (argument_list "(0,"seek to end of .incbin file failed `%s\'",5)" ( number_literal , (string_literal ""seek to end of .incbin file failed `%s\'"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "FUN_0002bd30(uVar4,__s);" (call_expression "FUN_0002bd30(uVar4,__s)" identifier (argument_list "(uVar4,__s)" ( identifier , identifier ))) ;) }))) (expression_statement "fclose(__stream);" (call_expression "fclose(__stream)" identifier (argument_list "(__stream)" ( identifier ))) ;) }))) (expression_statement "free(__s);" (call_expression "free(__s)" identifier (argument_list "(__s)" ( identifier ))) ;) })) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (char_literal ' character ')) )) (compound_statement { (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 ))))) ;) (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 * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' character ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' character ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' character ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' character ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (char_literal ' character ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) })) })) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (binary_expression (binary_expression IDENT + (subscript_expression IDENT [ LIT ])) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) )))) , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT < IDENT) )) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) | (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT >> LIT) )))) ))) < (char_literal ' escape_sequence ')) )) || (parenthesized_expression ( (binary_expression IDENT < LIT) ))) )) || (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) )))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT ))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT , IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence string_content ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT ))) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) }))) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) }))) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) }))) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) (return_statement return ;) })))
(function_definition "void FUN_00033ba0(void)\n\n{\n  char *__filename;\n  FILE *__stream;\n  char *__s;\n  int iVar1;\n  long lVar2;\n  void *__ptr;\n  size_t sVar3;\n  undefined4 uVar4;\n  char cVar5;\n  size_t __n;\n  int local_44;\n  size_t local_40;\n  int local_34 [8];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x33ba9;\n  if (*DAT_00077ef8 == ' ') {\n    DAT_00077ef8 = DAT_00077ef8 + 1;\n  }\n  __filename = (char *)FUN_00033650(local_34);\n  if (__filename != (char *)0x0) {\n    cVar5 = *DAT_00077ef8;\n    if (cVar5 == ' ') {\n      cVar5 = DAT_00077ef8[1];\n      DAT_00077ef8 = DAT_00077ef8 + 1;\n    }\n    local_40 = 0;\n    local_44 = 0;\n    if (cVar5 == ',') {\n      DAT_00077ef8 = DAT_00077ef8 + 1;\n      local_44 = FUN_0002c480();\n      cVar5 = *DAT_00077ef8;\n      if (cVar5 == ' ') {\n        cVar5 = DAT_00077ef8[1];\n        DAT_00077ef8 = DAT_00077ef8 + 1;\n      }\n      local_40 = 0;\n      if (cVar5 == ',') {\n        DAT_00077ef8 = DAT_00077ef8 + 1;\n        local_40 = FUN_0002c480();\n        if (local_40 == 0) {\n          uVar4 = dcgettext(0,".incbin count zero, ignoring `%s\'",5);\n          FUN_0002bc50(uVar4,__filename);\n        }\n        if (*DAT_00077ef8 == ' ') {\n          DAT_00077ef8 = DAT_00077ef8 + 1;\n        }\n      }\n    }\n    FUN_0002e290();\n    __stream = fopen64(__filename,"r");\n    if (__stream == (FILE *)0x0) {\n      __s = (char *)xmalloc(DAT_0006f2c4 + local_34[0] + 5);\n      if (0 < DAT_00077f80) {\n        iVar1 = 0;\n        do {\n          sprintf(__s,"%s/%s",*(undefined4 *)(DAT_00077ee4 + iVar1 * 4),__filename);\n          __stream = fopen64(__s,"r");\n          if (__stream != (FILE *)0x0) goto LAB_00033c46;\n          iVar1 = iVar1 + 1;\n        } while (iVar1 < DAT_00077f80);\n      }\n      uVar4 = dcgettext(0,"file not found: %s",5);\n      FUN_0002bd30(uVar4,__filename);\n    }\n    else {\n      __s = (char *)xstrdup(__filename);\nLAB_00033c46:\n      FUN_00019d00(__s);\n      iVar1 = fseek(__stream,0,2);\n      if (iVar1 == 0) {\n        lVar2 = ftell(__stream);\n        __n = lVar2 - local_44;\n        if (local_40 != 0) {\n          __n = local_40;\n        }\n        if ((((char)((byte)((uint)local_44 >> 0x18) | (byte)(__n >> 0x18)) < '\0') || (lVar2 < 0))\n           || (lVar2 < (int)(local_44 + __n))) {\n          uVar4 = dcgettext(0,"skip (%ld) or count (%ld) invalid for file size (%ld)",5);\n          FUN_0002bd30(uVar4,local_44,__n,lVar2);\n        }\n        else {\n          iVar1 = fseek(__stream,local_44,0);\n          if (iVar1 == 0) {\n            __ptr = (void *)FUN_00024a90(__n);\n            sVar3 = fread(__ptr,1,__n,__stream);\n            if ((int)sVar3 < (int)__n) {\n              uVar4 = dcgettext(0,"truncated file `%s\', %ld of %ld bytes read",5);\n              FUN_0002bc50(uVar4,__s,sVar3,__n);\n            }\n          }\n          else {\n            uVar4 = dcgettext(0,"could not skip to %ld in file `%s\'",5);\n            FUN_0002bd30(uVar4,local_44,__s);\n          }\n        }\n      }\n      else {\n        uVar4 = dcgettext(0,"seek to end of .incbin file failed `%s\'",5);\n        FUN_0002bd30(uVar4,__s);\n      }\n      fclose(__stream);\n    }\n    free(__s);\n  }\n  return;\n}" (primitive_type "void") (function_declarator "FUN_00033ba0(void)" (identifier "FUN_00033ba0") (parameter_list "(void)" (( "(") (parameter_declaration "void" (primitive_type "void")) () ")"))) (compound_statement "{\n  char *__filename;\n  FILE *__stream;\n  char *__s;\n  int iVar1;\n  long lVar2;\n  void *__ptr;\n  size_t sVar3;\n  undefined4 uVar4;\n  char cVar5;\n  size_t __n;\n  int local_44;\n  size_t local_40;\n  int local_34 [8];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x33ba9;\n  if (*DAT_00077ef8 == ' ') {\n    DAT_00077ef8 = DAT_00077ef8 + 1;\n  }\n  __filename = (char *)FUN_00033650(local_34);\n  if (__filename != (char *)0x0) {\n    cVar5 = *DAT_00077ef8;\n    if (cVar5 == ' ') {\n      cVar5 = DAT_00077ef8[1];\n      DAT_00077ef8 = DAT_00077ef8 + 1;\n    }\n    local_40 = 0;\n    local_44 = 0;\n    if (cVar5 == ',') {\n      DAT_00077ef8 = DAT_00077ef8 + 1;\n      local_44 = FUN_0002c480();\n      cVar5 = *DAT_00077ef8;\n      if (cVar5 == ' ') {\n        cVar5 = DAT_00077ef8[1];\n        DAT_00077ef8 = DAT_00077ef8 + 1;\n      }\n      local_40 = 0;\n      if (cVar5 == ',') {\n        DAT_00077ef8 = DAT_00077ef8 + 1;\n        local_40 = FUN_0002c480();\n        if (local_40 == 0) {\n          uVar4 = dcgettext(0,".incbin count zero, ignoring `%s\'",5);\n          FUN_0002bc50(uVar4,__filename);\n        }\n        if (*DAT_00077ef8 == ' ') {\n          DAT_00077ef8 = DAT_00077ef8 + 1;\n        }\n      }\n    }\n    FUN_0002e290();\n    __stream = fopen64(__filename,"r");\n    if (__stream == (FILE *)0x0) {\n      __s = (char *)xmalloc(DAT_0006f2c4 + local_34[0] + 5);\n      if (0 < DAT_00077f80) {\n        iVar1 = 0;\n        do {\n          sprintf(__s,"%s/%s",*(undefined4 *)(DAT_00077ee4 + iVar1 * 4),__filename);\n          __stream = fopen64(__s,"r");\n          if (__stream != (FILE *)0x0) goto LAB_00033c46;\n          iVar1 = iVar1 + 1;\n        } while (iVar1 < DAT_00077f80);\n      }\n      uVar4 = dcgettext(0,"file not found: %s",5);\n      FUN_0002bd30(uVar4,__filename);\n    }\n    else {\n      __s = (char *)xstrdup(__filename);\nLAB_00033c46:\n      FUN_00019d00(__s);\n      iVar1 = fseek(__stream,0,2);\n      if (iVar1 == 0) {\n        lVar2 = ftell(__stream);\n        __n = lVar2 - local_44;\n        if (local_40 != 0) {\n          __n = local_40;\n        }\n        if ((((char)((byte)((uint)local_44 >> 0x18) | (byte)(__n >> 0x18)) < '\0') || (lVar2 < 0))\n           || (lVar2 < (int)(local_44 + __n))) {\n          uVar4 = dcgettext(0,"skip (%ld) or count (%ld) invalid for file size (%ld)",5);\n          FUN_0002bd30(uVar4,local_44,__n,lVar2);\n        }\n        else {\n          iVar1 = fseek(__stream,local_44,0);\n          if (iVar1 == 0) {\n            __ptr = (void *)FUN_00024a90(__n);\n            sVar3 = fread(__ptr,1,__n,__stream);\n            if ((int)sVar3 < (int)__n) {\n              uVar4 = dcgettext(0,"truncated file `%s\', %ld of %ld bytes read",5);\n              FUN_0002bc50(uVar4,__s,sVar3,__n);\n            }\n          }\n          else {\n            uVar4 = dcgettext(0,"could not skip to %ld in file `%s\'",5);\n            FUN_0002bd30(uVar4,local_44,__s);\n          }\n        }\n      }\n      else {\n        uVar4 = dcgettext(0,"seek to end of .incbin file failed `%s\'",5);\n        FUN_0002bd30(uVar4,__s);\n      }\n      fclose(__stream);\n    }\n    free(__s);\n  }\n  return;\n}" ({ "{") (declaration "char *__filename;" (primitive_type "char") (pointer_declarator "*__filename" (* "*") (identifier "__filename")) (; ";")) (declaration "FILE *__stream;" (type_identifier "FILE") (pointer_declarator "*__stream" (* "*") (identifier "__stream")) (; ";")) (declaration "char *__s;" (primitive_type "char") (pointer_declarator "*__s" (* "*") (identifier "__s")) (; ";")) (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (declaration "long lVar2;" (sized_type_specifier "long" (long "long")) (identifier "lVar2") (; ";")) (declaration "void *__ptr;" (primitive_type "void") (pointer_declarator "*__ptr" (* "*") (identifier "__ptr")) (; ";")) (declaration "size_t sVar3;" (primitive_type "size_t") (identifier "sVar3") (; ";")) (declaration "undefined4 uVar4;" (type_identifier "undefined4") (identifier "uVar4") (; ";")) (declaration "char cVar5;" (primitive_type "char") (identifier "cVar5") (; ";")) (declaration "size_t __n;" (primitive_type "size_t") (identifier "__n") (; ";")) (declaration "int local_44;" (primitive_type "int") (identifier "local_44") (; ";")) (declaration "size_t local_40;" (primitive_type "size_t") (identifier "local_40") (; ";")) (declaration "int local_34 [8];" (primitive_type "int") (array_declarator "local_34 [8]" (identifier "local_34") ([ "[") (number_literal "8") (] "]")) (; ";")) (declaration "undefined4 uStack_14;" (type_identifier "undefined4") (identifier "uStack_14") (; ";")) (expression_statement "uStack_14 = 0x33ba9;" (assignment_expression "uStack_14 = 0x33ba9" (identifier "uStack_14") (= "=") (number_literal "0x33ba9")) (; ";")) (if_statement "if (*DAT_00077ef8 == ' ') {\n    DAT_00077ef8 = DAT_00077ef8 + 1;\n  }" (if "if") (parenthesized_expression "(*DAT_00077ef8 == ' ')" (( "(") (binary_expression "*DAT_00077ef8 == ' '" (pointer_expression "*DAT_00077ef8" (* "*") (identifier "DAT_00077ef8")) (== "==") (char_literal "' '" (' "'") (character " ") (' "'"))) () ")")) (compound_statement "{\n    DAT_00077ef8 = DAT_00077ef8 + 1;\n  }" ({ "{") (expression_statement "DAT_00077ef8 = DAT_00077ef8 + 1;" (assignment_expression "DAT_00077ef8 = DAT_00077ef8 + 1" (identifier "DAT_00077ef8") (= "=") (binary_expression "DAT_00077ef8 + 1" (identifier "DAT_00077ef8") (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (expression_statement "__filename = (char *)FUN_00033650(local_34);" (assignment_expression "__filename = (char *)FUN_00033650(local_34)" (identifier "__filename") (= "=") (cast_expression "(char *)FUN_00033650(local_34)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00033650(local_34)" (identifier "FUN_00033650") (argument_list "(local_34)" (( "(") (identifier "local_34") () ")"))))) (; ";")) (if_statement "if (__filename != (char *)0x0) {\n    cVar5 = *DAT_00077ef8;\n    if (cVar5 == ' ') {\n      cVar5 = DAT_00077ef8[1];\n      DAT_00077ef8 = DAT_00077ef8 + 1;\n    }\n    local_40 = 0;\n    local_44 = 0;\n    if (cVar5 == ',') {\n      DAT_00077ef8 = DAT_00077ef8 + 1;\n      local_44 = FUN_0002c480();\n      cVar5 = *DAT_00077ef8;\n      if (cVar5 == ' ') {\n        cVar5 = DAT_00077ef8[1];\n        DAT_00077ef8 = DAT_00077ef8 + 1;\n      }\n      local_40 = 0;\n      if (cVar5 == ',') {\n        DAT_00077ef8 = DAT_00077ef8 + 1;\n        local_40 = FUN_0002c480();\n        if (local_40 == 0) {\n          uVar4 = dcgettext(0,".incbin count zero, ignoring `%s\'",5);\n          FUN_0002bc50(uVar4,__filename);\n        }\n        if (*DAT_00077ef8 == ' ') {\n          DAT_00077ef8 = DAT_00077ef8 + 1;\n        }\n      }\n    }\n    FUN_0002e290();\n    __stream = fopen64(__filename,"r");\n    if (__stream == (FILE *)0x0) {\n      __s = (char *)xmalloc(DAT_0006f2c4 + local_34[0] + 5);\n      if (0 < DAT_00077f80) {\n        iVar1 = 0;\n        do {\n          sprintf(__s,"%s/%s",*(undefined4 *)(DAT_00077ee4 + iVar1 * 4),__filename);\n          __stream = fopen64(__s,"r");\n          if (__stream != (FILE *)0x0) goto LAB_00033c46;\n          iVar1 = iVar1 + 1;\n        } while (iVar1 < DAT_00077f80);\n      }\n      uVar4 = dcgettext(0,"file not found: %s",5);\n      FUN_0002bd30(uVar4,__filename);\n    }\n    else {\n      __s = (char *)xstrdup(__filename);\nLAB_00033c46:\n      FUN_00019d00(__s);\n      iVar1 = fseek(__stream,0,2);\n      if (iVar1 == 0) {\n        lVar2 = ftell(__stream);\n        __n = lVar2 - local_44;\n        if (local_40 != 0) {\n          __n = local_40;\n        }\n        if ((((char)((byte)((uint)local_44 >> 0x18) | (byte)(__n >> 0x18)) < '\0') || (lVar2 < 0))\n           || (lVar2 < (int)(local_44 + __n))) {\n          uVar4 = dcgettext(0,"skip (%ld) or count (%ld) invalid for file size (%ld)",5);\n          FUN_0002bd30(uVar4,local_44,__n,lVar2);\n        }\n        else {\n          iVar1 = fseek(__stream,local_44,0);\n          if (iVar1 == 0) {\n            __ptr = (void *)FUN_00024a90(__n);\n            sVar3 = fread(__ptr,1,__n,__stream);\n            if ((int)sVar3 < (int)__n) {\n              uVar4 = dcgettext(0,"truncated file `%s\', %ld of %ld bytes read",5);\n              FUN_0002bc50(uVar4,__s,sVar3,__n);\n            }\n          }\n          else {\n            uVar4 = dcgettext(0,"could not skip to %ld in file `%s\'",5);\n            FUN_0002bd30(uVar4,local_44,__s);\n          }\n        }\n      }\n      else {\n        uVar4 = dcgettext(0,"seek to end of .incbin file failed `%s\'",5);\n        FUN_0002bd30(uVar4,__s);\n      }\n      fclose(__stream);\n    }\n    free(__s);\n  }" (if "if") (parenthesized_expression "(__filename != (char *)0x0)" (( "(") (binary_expression "__filename != (char *)0x0" (identifier "__filename") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    cVar5 = *DAT_00077ef8;\n    if (cVar5 == ' ') {\n      cVar5 = DAT_00077ef8[1];\n      DAT_00077ef8 = DAT_00077ef8 + 1;\n    }\n    local_40 = 0;\n    local_44 = 0;\n    if (cVar5 == ',') {\n      DAT_00077ef8 = DAT_00077ef8 + 1;\n      local_44 = FUN_0002c480();\n      cVar5 = *DAT_00077ef8;\n      if (cVar5 == ' ') {\n        cVar5 = DAT_00077ef8[1];\n        DAT_00077ef8 = DAT_00077ef8 + 1;\n      }\n      local_40 = 0;\n      if (cVar5 == ',') {\n        DAT_00077ef8 = DAT_00077ef8 + 1;\n        local_40 = FUN_0002c480();\n        if (local_40 == 0) {\n          uVar4 = dcgettext(0,".incbin count zero, ignoring `%s\'",5);\n          FUN_0002bc50(uVar4,__filename);\n        }\n        if (*DAT_00077ef8 == ' ') {\n          DAT_00077ef8 = DAT_00077ef8 + 1;\n        }\n      }\n    }\n    FUN_0002e290();\n    __stream = fopen64(__filename,"r");\n    if (__stream == (FILE *)0x0) {\n      __s = (char *)xmalloc(DAT_0006f2c4 + local_34[0] + 5);\n      if (0 < DAT_00077f80) {\n        iVar1 = 0;\n        do {\n          sprintf(__s,"%s/%s",*(undefined4 *)(DAT_00077ee4 + iVar1 * 4),__filename);\n          __stream = fopen64(__s,"r");\n          if (__stream != (FILE *)0x0) goto LAB_00033c46;\n          iVar1 = iVar1 + 1;\n        } while (iVar1 < DAT_00077f80);\n      }\n      uVar4 = dcgettext(0,"file not found: %s",5);\n      FUN_0002bd30(uVar4,__filename);\n    }\n    else {\n      __s = (char *)xstrdup(__filename);\nLAB_00033c46:\n      FUN_00019d00(__s);\n      iVar1 = fseek(__stream,0,2);\n      if (iVar1 == 0) {\n        lVar2 = ftell(__stream);\n        __n = lVar2 - local_44;\n        if (local_40 != 0) {\n          __n = local_40;\n        }\n        if ((((char)((byte)((uint)local_44 >> 0x18) | (byte)(__n >> 0x18)) < '\0') || (lVar2 < 0))\n           || (lVar2 < (int)(local_44 + __n))) {\n          uVar4 = dcgettext(0,"skip (%ld) or count (%ld) invalid for file size (%ld)",5);\n          FUN_0002bd30(uVar4,local_44,__n,lVar2);\n        }\n        else {\n          iVar1 = fseek(__stream,local_44,0);\n          if (iVar1 == 0) {\n            __ptr = (void *)FUN_00024a90(__n);\n            sVar3 = fread(__ptr,1,__n,__stream);\n            if ((int)sVar3 < (int)__n) {\n              uVar4 = dcgettext(0,"truncated file `%s\', %ld of %ld bytes read",5);\n              FUN_0002bc50(uVar4,__s,sVar3,__n);\n            }\n          }\n          else {\n            uVar4 = dcgettext(0,"could not skip to %ld in file `%s\'",5);\n            FUN_0002bd30(uVar4,local_44,__s);\n          }\n        }\n      }\n      else {\n        uVar4 = dcgettext(0,"seek to end of .incbin file failed `%s\'",5);\n        FUN_0002bd30(uVar4,__s);\n      }\n      fclose(__stream);\n    }\n    free(__s);\n  }" ({ "{") (expression_statement "cVar5 = *DAT_00077ef8;" (assignment_expression "cVar5 = *DAT_00077ef8" (identifier "cVar5") (= "=") (pointer_expression "*DAT_00077ef8" (* "*") (identifier "DAT_00077ef8"))) (; ";")) (if_statement "if (cVar5 == ' ') {\n      cVar5 = DAT_00077ef8[1];\n      DAT_00077ef8 = DAT_00077ef8 + 1;\n    }" (if "if") (parenthesized_expression "(cVar5 == ' ')" (( "(") (binary_expression "cVar5 == ' '" (identifier "cVar5") (== "==") (char_literal "' '" (' "'") (character " ") (' "'"))) () ")")) (compound_statement "{\n      cVar5 = DAT_00077ef8[1];\n      DAT_00077ef8 = DAT_00077ef8 + 1;\n    }" ({ "{") (expression_statement "cVar5 = DAT_00077ef8[1];" (assignment_expression "cVar5 = DAT_00077ef8[1]" (identifier "cVar5") (= "=") (subscript_expression "DAT_00077ef8[1]" (identifier "DAT_00077ef8") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "DAT_00077ef8 = DAT_00077ef8 + 1;" (assignment_expression "DAT_00077ef8 = DAT_00077ef8 + 1" (identifier "DAT_00077ef8") (= "=") (binary_expression "DAT_00077ef8 + 1" (identifier "DAT_00077ef8") (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" (identifier "local_40") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_44 = 0;" (assignment_expression "local_44 = 0" (identifier "local_44") (= "=") (number_literal "0")) (; ";")) (if_statement "if (cVar5 == ',') {\n      DAT_00077ef8 = DAT_00077ef8 + 1;\n      local_44 = FUN_0002c480();\n      cVar5 = *DAT_00077ef8;\n      if (cVar5 == ' ') {\n        cVar5 = DAT_00077ef8[1];\n        DAT_00077ef8 = DAT_00077ef8 + 1;\n      }\n      local_40 = 0;\n      if (cVar5 == ',') {\n        DAT_00077ef8 = DAT_00077ef8 + 1;\n        local_40 = FUN_0002c480();\n        if (local_40 == 0) {\n          uVar4 = dcgettext(0,".incbin count zero, ignoring `%s\'",5);\n          FUN_0002bc50(uVar4,__filename);\n        }\n        if (*DAT_00077ef8 == ' ') {\n          DAT_00077ef8 = DAT_00077ef8 + 1;\n        }\n      }\n    }" (if "if") (parenthesized_expression "(cVar5 == ',')" (( "(") (binary_expression "cVar5 == ','" (identifier "cVar5") (== "==") (char_literal "','" (' "'") (character ",") (' "'"))) () ")")) (compound_statement "{\n      DAT_00077ef8 = DAT_00077ef8 + 1;\n      local_44 = FUN_0002c480();\n      cVar5 = *DAT_00077ef8;\n      if (cVar5 == ' ') {\n        cVar5 = DAT_00077ef8[1];\n        DAT_00077ef8 = DAT_00077ef8 + 1;\n      }\n      local_40 = 0;\n      if (cVar5 == ',') {\n        DAT_00077ef8 = DAT_00077ef8 + 1;\n        local_40 = FUN_0002c480();\n        if (local_40 == 0) {\n          uVar4 = dcgettext(0,".incbin count zero, ignoring `%s\'",5);\n          FUN_0002bc50(uVar4,__filename);\n        }\n        if (*DAT_00077ef8 == ' ') {\n          DAT_00077ef8 = DAT_00077ef8 + 1;\n        }\n      }\n    }" ({ "{") (expression_statement "DAT_00077ef8 = DAT_00077ef8 + 1;" (assignment_expression "DAT_00077ef8 = DAT_00077ef8 + 1" (identifier "DAT_00077ef8") (= "=") (binary_expression "DAT_00077ef8 + 1" (identifier "DAT_00077ef8") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "local_44 = FUN_0002c480();" (assignment_expression "local_44 = FUN_0002c480()" (identifier "local_44") (= "=") (call_expression "FUN_0002c480()" (identifier "FUN_0002c480") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "cVar5 = *DAT_00077ef8;" (assignment_expression "cVar5 = *DAT_00077ef8" (identifier "cVar5") (= "=") (pointer_expression "*DAT_00077ef8" (* "*") (identifier "DAT_00077ef8"))) (; ";")) (if_statement "if (cVar5 == ' ') {\n        cVar5 = DAT_00077ef8[1];\n        DAT_00077ef8 = DAT_00077ef8 + 1;\n      }" (if "if") (parenthesized_expression "(cVar5 == ' ')" (( "(") (binary_expression "cVar5 == ' '" (identifier "cVar5") (== "==") (char_literal "' '" (' "'") (character " ") (' "'"))) () ")")) (compound_statement "{\n        cVar5 = DAT_00077ef8[1];\n        DAT_00077ef8 = DAT_00077ef8 + 1;\n      }" ({ "{") (expression_statement "cVar5 = DAT_00077ef8[1];" (assignment_expression "cVar5 = DAT_00077ef8[1]" (identifier "cVar5") (= "=") (subscript_expression "DAT_00077ef8[1]" (identifier "DAT_00077ef8") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "DAT_00077ef8 = DAT_00077ef8 + 1;" (assignment_expression "DAT_00077ef8 = DAT_00077ef8 + 1" (identifier "DAT_00077ef8") (= "=") (binary_expression "DAT_00077ef8 + 1" (identifier "DAT_00077ef8") (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" (identifier "local_40") (= "=") (number_literal "0")) (; ";")) (if_statement "if (cVar5 == ',') {\n        DAT_00077ef8 = DAT_00077ef8 + 1;\n        local_40 = FUN_0002c480();\n        if (local_40 == 0) {\n          uVar4 = dcgettext(0,".incbin count zero, ignoring `%s\'",5);\n          FUN_0002bc50(uVar4,__filename);\n        }\n        if (*DAT_00077ef8 == ' ') {\n          DAT_00077ef8 = DAT_00077ef8 + 1;\n        }\n      }" (if "if") (parenthesized_expression "(cVar5 == ',')" (( "(") (binary_expression "cVar5 == ','" (identifier "cVar5") (== "==") (char_literal "','" (' "'") (character ",") (' "'"))) () ")")) (compound_statement "{\n        DAT_00077ef8 = DAT_00077ef8 + 1;\n        local_40 = FUN_0002c480();\n        if (local_40 == 0) {\n          uVar4 = dcgettext(0,".incbin count zero, ignoring `%s\'",5);\n          FUN_0002bc50(uVar4,__filename);\n        }\n        if (*DAT_00077ef8 == ' ') {\n          DAT_00077ef8 = DAT_00077ef8 + 1;\n        }\n      }" ({ "{") (expression_statement "DAT_00077ef8 = DAT_00077ef8 + 1;" (assignment_expression "DAT_00077ef8 = DAT_00077ef8 + 1" (identifier "DAT_00077ef8") (= "=") (binary_expression "DAT_00077ef8 + 1" (identifier "DAT_00077ef8") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "local_40 = FUN_0002c480();" (assignment_expression "local_40 = FUN_0002c480()" (identifier "local_40") (= "=") (call_expression "FUN_0002c480()" (identifier "FUN_0002c480") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (local_40 == 0) {\n          uVar4 = dcgettext(0,".incbin count zero, ignoring `%s\'",5);\n          FUN_0002bc50(uVar4,__filename);\n        }" (if "if") (parenthesized_expression "(local_40 == 0)" (( "(") (binary_expression "local_40 == 0" (identifier "local_40") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          uVar4 = dcgettext(0,".incbin count zero, ignoring `%s\'",5);\n          FUN_0002bc50(uVar4,__filename);\n        }" ({ "{") (expression_statement "uVar4 = dcgettext(0,".incbin count zero, ignoring `%s\'",5);" (assignment_expression "uVar4 = dcgettext(0,".incbin count zero, ignoring `%s\'",5)" (identifier "uVar4") (= "=") (call_expression "dcgettext(0,".incbin count zero, ignoring `%s\'",5)" (identifier "dcgettext") (argument_list "(0,".incbin count zero, ignoring `%s\'",5)" (( "(") (number_literal "0") (, ",") (string_literal "".incbin count zero, ignoring `%s\'"" (" """) (string_content ".incbin count zero, ignoring `%s") (escape_sequence "\'") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_0002bc50(uVar4,__filename);" (call_expression "FUN_0002bc50(uVar4,__filename)" (identifier "FUN_0002bc50") (argument_list "(uVar4,__filename)" (( "(") (identifier "uVar4") (, ",") (identifier "__filename") () ")"))) (; ";")) (} "}"))) (if_statement "if (*DAT_00077ef8 == ' ') {\n          DAT_00077ef8 = DAT_00077ef8 + 1;\n        }" (if "if") (parenthesized_expression "(*DAT_00077ef8 == ' ')" (( "(") (binary_expression "*DAT_00077ef8 == ' '" (pointer_expression "*DAT_00077ef8" (* "*") (identifier "DAT_00077ef8")) (== "==") (char_literal "' '" (' "'") (character " ") (' "'"))) () ")")) (compound_statement "{\n          DAT_00077ef8 = DAT_00077ef8 + 1;\n        }" ({ "{") (expression_statement "DAT_00077ef8 = DAT_00077ef8 + 1;" (assignment_expression "DAT_00077ef8 = DAT_00077ef8 + 1" (identifier "DAT_00077ef8") (= "=") (binary_expression "DAT_00077ef8 + 1" (identifier "DAT_00077ef8") (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (} "}"))) (} "}"))) (expression_statement "FUN_0002e290();" (call_expression "FUN_0002e290()" (identifier "FUN_0002e290") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "__stream = fopen64(__filename,"r");" (assignment_expression "__stream = fopen64(__filename,"r")" (identifier "__stream") (= "=") (call_expression "fopen64(__filename,"r")" (identifier "fopen64") (argument_list "(__filename,"r")" (( "(") (identifier "__filename") (, ",") (string_literal ""r"" (" """) (string_content "r") (" """)) () ")")))) (; ";")) (if_statement "if (__stream == (FILE *)0x0) {\n      __s = (char *)xmalloc(DAT_0006f2c4 + local_34[0] + 5);\n      if (0 < DAT_00077f80) {\n        iVar1 = 0;\n        do {\n          sprintf(__s,"%s/%s",*(undefined4 *)(DAT_00077ee4 + iVar1 * 4),__filename);\n          __stream = fopen64(__s,"r");\n          if (__stream != (FILE *)0x0) goto LAB_00033c46;\n          iVar1 = iVar1 + 1;\n        } while (iVar1 < DAT_00077f80);\n      }\n      uVar4 = dcgettext(0,"file not found: %s",5);\n      FUN_0002bd30(uVar4,__filename);\n    }\n    else {\n      __s = (char *)xstrdup(__filename);\nLAB_00033c46:\n      FUN_00019d00(__s);\n      iVar1 = fseek(__stream,0,2);\n      if (iVar1 == 0) {\n        lVar2 = ftell(__stream);\n        __n = lVar2 - local_44;\n        if (local_40 != 0) {\n          __n = local_40;\n        }\n        if ((((char)((byte)((uint)local_44 >> 0x18) | (byte)(__n >> 0x18)) < '\0') || (lVar2 < 0))\n           || (lVar2 < (int)(local_44 + __n))) {\n          uVar4 = dcgettext(0,"skip (%ld) or count (%ld) invalid for file size (%ld)",5);\n          FUN_0002bd30(uVar4,local_44,__n,lVar2);\n        }\n        else {\n          iVar1 = fseek(__stream,local_44,0);\n          if (iVar1 == 0) {\n            __ptr = (void *)FUN_00024a90(__n);\n            sVar3 = fread(__ptr,1,__n,__stream);\n            if ((int)sVar3 < (int)__n) {\n              uVar4 = dcgettext(0,"truncated file `%s\', %ld of %ld bytes read",5);\n              FUN_0002bc50(uVar4,__s,sVar3,__n);\n            }\n          }\n          else {\n            uVar4 = dcgettext(0,"could not skip to %ld in file `%s\'",5);\n            FUN_0002bd30(uVar4,local_44,__s);\n          }\n        }\n      }\n      else {\n        uVar4 = dcgettext(0,"seek to end of .incbin file failed `%s\'",5);\n        FUN_0002bd30(uVar4,__s);\n      }\n      fclose(__stream);\n    }" (if "if") (parenthesized_expression "(__stream == (FILE *)0x0)" (( "(") (binary_expression "__stream == (FILE *)0x0" (identifier "__stream") (== "==") (cast_expression "(FILE *)0x0" (( "(") (type_descriptor "FILE *" (type_identifier "FILE") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      __s = (char *)xmalloc(DAT_0006f2c4 + local_34[0] + 5);\n      if (0 < DAT_00077f80) {\n        iVar1 = 0;\n        do {\n          sprintf(__s,"%s/%s",*(undefined4 *)(DAT_00077ee4 + iVar1 * 4),__filename);\n          __stream = fopen64(__s,"r");\n          if (__stream != (FILE *)0x0) goto LAB_00033c46;\n          iVar1 = iVar1 + 1;\n        } while (iVar1 < DAT_00077f80);\n      }\n      uVar4 = dcgettext(0,"file not found: %s",5);\n      FUN_0002bd30(uVar4,__filename);\n    }" ({ "{") (expression_statement "__s = (char *)xmalloc(DAT_0006f2c4 + local_34[0] + 5);" (assignment_expression "__s = (char *)xmalloc(DAT_0006f2c4 + local_34[0] + 5)" (identifier "__s") (= "=") (cast_expression "(char *)xmalloc(DAT_0006f2c4 + local_34[0] + 5)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "xmalloc(DAT_0006f2c4 + local_34[0] + 5)" (identifier "xmalloc") (argument_list "(DAT_0006f2c4 + local_34[0] + 5)" (( "(") (binary_expression "DAT_0006f2c4 + local_34[0] + 5" (binary_expression "DAT_0006f2c4 + local_34[0]" (identifier "DAT_0006f2c4") (+ "+") (subscript_expression "local_34[0]" (identifier "local_34") ([ "[") (number_literal "0") (] "]"))) (+ "+") (number_literal "5")) () ")"))))) (; ";")) (if_statement "if (0 < DAT_00077f80) {\n        iVar1 = 0;\n        do {\n          sprintf(__s,"%s/%s",*(undefined4 *)(DAT_00077ee4 + iVar1 * 4),__filename);\n          __stream = fopen64(__s,"r");\n          if (__stream != (FILE *)0x0) goto LAB_00033c46;\n          iVar1 = iVar1 + 1;\n        } while (iVar1 < DAT_00077f80);\n      }" (if "if") (parenthesized_expression "(0 < DAT_00077f80)" (( "(") (binary_expression "0 < DAT_00077f80" (number_literal "0") (< "<") (identifier "DAT_00077f80")) () ")")) (compound_statement "{\n        iVar1 = 0;\n        do {\n          sprintf(__s,"%s/%s",*(undefined4 *)(DAT_00077ee4 + iVar1 * 4),__filename);\n          __stream = fopen64(__s,"r");\n          if (__stream != (FILE *)0x0) goto LAB_00033c46;\n          iVar1 = iVar1 + 1;\n        } while (iVar1 < DAT_00077f80);\n      }" ({ "{") (expression_statement "iVar1 = 0;" (assignment_expression "iVar1 = 0" (identifier "iVar1") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n          sprintf(__s,"%s/%s",*(undefined4 *)(DAT_00077ee4 + iVar1 * 4),__filename);\n          __stream = fopen64(__s,"r");\n          if (__stream != (FILE *)0x0) goto LAB_00033c46;\n          iVar1 = iVar1 + 1;\n        } while (iVar1 < DAT_00077f80);" (do "do") (compound_statement "{\n          sprintf(__s,"%s/%s",*(undefined4 *)(DAT_00077ee4 + iVar1 * 4),__filename);\n          __stream = fopen64(__s,"r");\n          if (__stream != (FILE *)0x0) goto LAB_00033c46;\n          iVar1 = iVar1 + 1;\n        }" ({ "{") (expression_statement "sprintf(__s,"%s/%s",*(undefined4 *)(DAT_00077ee4 + iVar1 * 4),__filename);" (call_expression "sprintf(__s,"%s/%s",*(undefined4 *)(DAT_00077ee4 + iVar1 * 4),__filename)" (identifier "sprintf") (argument_list "(__s,"%s/%s",*(undefined4 *)(DAT_00077ee4 + iVar1 * 4),__filename)" (( "(") (identifier "__s") (, ",") (string_literal ""%s/%s"" (" """) (string_content "%s/%s") (" """)) (, ",") (pointer_expression "*(undefined4 *)(DAT_00077ee4 + iVar1 * 4)" (* "*") (cast_expression "(undefined4 *)(DAT_00077ee4 + iVar1 * 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_00077ee4 + iVar1 * 4)" (( "(") (binary_expression "DAT_00077ee4 + iVar1 * 4" (identifier "DAT_00077ee4") (+ "+") (binary_expression "iVar1 * 4" (identifier "iVar1") (* "*") (number_literal "4"))) () ")")))) (, ",") (identifier "__filename") () ")"))) (; ";")) (expression_statement "__stream = fopen64(__s,"r");" (assignment_expression "__stream = fopen64(__s,"r")" (identifier "__stream") (= "=") (call_expression "fopen64(__s,"r")" (identifier "fopen64") (argument_list "(__s,"r")" (( "(") (identifier "__s") (, ",") (string_literal ""r"" (" """) (string_content "r") (" """)) () ")")))) (; ";")) (if_statement "if (__stream != (FILE *)0x0) goto LAB_00033c46;" (if "if") (parenthesized_expression "(__stream != (FILE *)0x0)" (( "(") (binary_expression "__stream != (FILE *)0x0" (identifier "__stream") (!= "!=") (cast_expression "(FILE *)0x0" (( "(") (type_descriptor "FILE *" (type_identifier "FILE") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_00033c46;" (goto "goto") (statement_identifier "LAB_00033c46") (; ";"))) (expression_statement "iVar1 = iVar1 + 1;" (assignment_expression "iVar1 = iVar1 + 1" (identifier "iVar1") (= "=") (binary_expression "iVar1 + 1" (identifier "iVar1") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar1 < DAT_00077f80)" (( "(") (binary_expression "iVar1 < DAT_00077f80" (identifier "iVar1") (< "<") (identifier "DAT_00077f80")) () ")")) (; ";")) (} "}"))) (expression_statement "uVar4 = dcgettext(0,"file not found: %s",5);" (assignment_expression "uVar4 = dcgettext(0,"file not found: %s",5)" (identifier "uVar4") (= "=") (call_expression "dcgettext(0,"file not found: %s",5)" (identifier "dcgettext") (argument_list "(0,"file not found: %s",5)" (( "(") (number_literal "0") (, ",") (string_literal ""file not found: %s"" (" """) (string_content "file not found: %s") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_0002bd30(uVar4,__filename);" (call_expression "FUN_0002bd30(uVar4,__filename)" (identifier "FUN_0002bd30") (argument_list "(uVar4,__filename)" (( "(") (identifier "uVar4") (, ",") (identifier "__filename") () ")"))) (; ";")) (} "}")) (else_clause "else {\n      __s = (char *)xstrdup(__filename);\nLAB_00033c46:\n      FUN_00019d00(__s);\n      iVar1 = fseek(__stream,0,2);\n      if (iVar1 == 0) {\n        lVar2 = ftell(__stream);\n        __n = lVar2 - local_44;\n        if (local_40 != 0) {\n          __n = local_40;\n        }\n        if ((((char)((byte)((uint)local_44 >> 0x18) | (byte)(__n >> 0x18)) < '\0') || (lVar2 < 0))\n           || (lVar2 < (int)(local_44 + __n))) {\n          uVar4 = dcgettext(0,"skip (%ld) or count (%ld) invalid for file size (%ld)",5);\n          FUN_0002bd30(uVar4,local_44,__n,lVar2);\n        }\n        else {\n          iVar1 = fseek(__stream,local_44,0);\n          if (iVar1 == 0) {\n            __ptr = (void *)FUN_00024a90(__n);\n            sVar3 = fread(__ptr,1,__n,__stream);\n            if ((int)sVar3 < (int)__n) {\n              uVar4 = dcgettext(0,"truncated file `%s\', %ld of %ld bytes read",5);\n              FUN_0002bc50(uVar4,__s,sVar3,__n);\n            }\n          }\n          else {\n            uVar4 = dcgettext(0,"could not skip to %ld in file `%s\'",5);\n            FUN_0002bd30(uVar4,local_44,__s);\n          }\n        }\n      }\n      else {\n        uVar4 = dcgettext(0,"seek to end of .incbin file failed `%s\'",5);\n        FUN_0002bd30(uVar4,__s);\n      }\n      fclose(__stream);\n    }" (else "else") (compound_statement "{\n      __s = (char *)xstrdup(__filename);\nLAB_00033c46:\n      FUN_00019d00(__s);\n      iVar1 = fseek(__stream,0,2);\n      if (iVar1 == 0) {\n        lVar2 = ftell(__stream);\n        __n = lVar2 - local_44;\n        if (local_40 != 0) {\n          __n = local_40;\n        }\n        if ((((char)((byte)((uint)local_44 >> 0x18) | (byte)(__n >> 0x18)) < '\0') || (lVar2 < 0))\n           || (lVar2 < (int)(local_44 + __n))) {\n          uVar4 = dcgettext(0,"skip (%ld) or count (%ld) invalid for file size (%ld)",5);\n          FUN_0002bd30(uVar4,local_44,__n,lVar2);\n        }\n        else {\n          iVar1 = fseek(__stream,local_44,0);\n          if (iVar1 == 0) {\n            __ptr = (void *)FUN_00024a90(__n);\n            sVar3 = fread(__ptr,1,__n,__stream);\n            if ((int)sVar3 < (int)__n) {\n              uVar4 = dcgettext(0,"truncated file `%s\', %ld of %ld bytes read",5);\n              FUN_0002bc50(uVar4,__s,sVar3,__n);\n            }\n          }\n          else {\n            uVar4 = dcgettext(0,"could not skip to %ld in file `%s\'",5);\n            FUN_0002bd30(uVar4,local_44,__s);\n          }\n        }\n      }\n      else {\n        uVar4 = dcgettext(0,"seek to end of .incbin file failed `%s\'",5);\n        FUN_0002bd30(uVar4,__s);\n      }\n      fclose(__stream);\n    }" ({ "{") (expression_statement "__s = (char *)xstrdup(__filename);" (assignment_expression "__s = (char *)xstrdup(__filename)" (identifier "__s") (= "=") (cast_expression "(char *)xstrdup(__filename)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "xstrdup(__filename)" (identifier "xstrdup") (argument_list "(__filename)" (( "(") (identifier "__filename") () ")"))))) (; ";")) (labeled_statement "LAB_00033c46:\n      FUN_00019d00(__s);" (statement_identifier "LAB_00033c46") (: ":") (expression_statement "FUN_00019d00(__s);" (call_expression "FUN_00019d00(__s)" (identifier "FUN_00019d00") (argument_list "(__s)" (( "(") (identifier "__s") () ")"))) (; ";"))) (expression_statement "iVar1 = fseek(__stream,0,2);" (assignment_expression "iVar1 = fseek(__stream,0,2)" (identifier "iVar1") (= "=") (call_expression "fseek(__stream,0,2)" (identifier "fseek") (argument_list "(__stream,0,2)" (( "(") (identifier "__stream") (, ",") (number_literal "0") (, ",") (number_literal "2") () ")")))) (; ";")) (if_statement "if (iVar1 == 0) {\n        lVar2 = ftell(__stream);\n        __n = lVar2 - local_44;\n        if (local_40 != 0) {\n          __n = local_40;\n        }\n        if ((((char)((byte)((uint)local_44 >> 0x18) | (byte)(__n >> 0x18)) < '\0') || (lVar2 < 0))\n           || (lVar2 < (int)(local_44 + __n))) {\n          uVar4 = dcgettext(0,"skip (%ld) or count (%ld) invalid for file size (%ld)",5);\n          FUN_0002bd30(uVar4,local_44,__n,lVar2);\n        }\n        else {\n          iVar1 = fseek(__stream,local_44,0);\n          if (iVar1 == 0) {\n            __ptr = (void *)FUN_00024a90(__n);\n            sVar3 = fread(__ptr,1,__n,__stream);\n            if ((int)sVar3 < (int)__n) {\n              uVar4 = dcgettext(0,"truncated file `%s\', %ld of %ld bytes read",5);\n              FUN_0002bc50(uVar4,__s,sVar3,__n);\n            }\n          }\n          else {\n            uVar4 = dcgettext(0,"could not skip to %ld in file `%s\'",5);\n            FUN_0002bd30(uVar4,local_44,__s);\n          }\n        }\n      }\n      else {\n        uVar4 = dcgettext(0,"seek to end of .incbin file failed `%s\'",5);\n        FUN_0002bd30(uVar4,__s);\n      }" (if "if") (parenthesized_expression "(iVar1 == 0)" (( "(") (binary_expression "iVar1 == 0" (identifier "iVar1") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        lVar2 = ftell(__stream);\n        __n = lVar2 - local_44;\n        if (local_40 != 0) {\n          __n = local_40;\n        }\n        if ((((char)((byte)((uint)local_44 >> 0x18) | (byte)(__n >> 0x18)) < '\0') || (lVar2 < 0))\n           || (lVar2 < (int)(local_44 + __n))) {\n          uVar4 = dcgettext(0,"skip (%ld) or count (%ld) invalid for file size (%ld)",5);\n          FUN_0002bd30(uVar4,local_44,__n,lVar2);\n        }\n        else {\n          iVar1 = fseek(__stream,local_44,0);\n          if (iVar1 == 0) {\n            __ptr = (void *)FUN_00024a90(__n);\n            sVar3 = fread(__ptr,1,__n,__stream);\n            if ((int)sVar3 < (int)__n) {\n              uVar4 = dcgettext(0,"truncated file `%s\', %ld of %ld bytes read",5);\n              FUN_0002bc50(uVar4,__s,sVar3,__n);\n            }\n          }\n          else {\n            uVar4 = dcgettext(0,"could not skip to %ld in file `%s\'",5);\n            FUN_0002bd30(uVar4,local_44,__s);\n          }\n        }\n      }" ({ "{") (expression_statement "lVar2 = ftell(__stream);" (assignment_expression "lVar2 = ftell(__stream)" (identifier "lVar2") (= "=") (call_expression "ftell(__stream)" (identifier "ftell") (argument_list "(__stream)" (( "(") (identifier "__stream") () ")")))) (; ";")) (expression_statement "__n = lVar2 - local_44;" (assignment_expression "__n = lVar2 - local_44" (identifier "__n") (= "=") (binary_expression "lVar2 - local_44" (identifier "lVar2") (- "-") (identifier "local_44"))) (; ";")) (if_statement "if (local_40 != 0) {\n          __n = local_40;\n        }" (if "if") (parenthesized_expression "(local_40 != 0)" (( "(") (binary_expression "local_40 != 0" (identifier "local_40") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          __n = local_40;\n        }" ({ "{") (expression_statement "__n = local_40;" (assignment_expression "__n = local_40" (identifier "__n") (= "=") (identifier "local_40")) (; ";")) (} "}"))) (if_statement "if ((((char)((byte)((uint)local_44 >> 0x18) | (byte)(__n >> 0x18)) < '\0') || (lVar2 < 0))\n           || (lVar2 < (int)(local_44 + __n))) {\n          uVar4 = dcgettext(0,"skip (%ld) or count (%ld) invalid for file size (%ld)",5);\n          FUN_0002bd30(uVar4,local_44,__n,lVar2);\n        }\n        else {\n          iVar1 = fseek(__stream,local_44,0);\n          if (iVar1 == 0) {\n            __ptr = (void *)FUN_00024a90(__n);\n            sVar3 = fread(__ptr,1,__n,__stream);\n            if ((int)sVar3 < (int)__n) {\n              uVar4 = dcgettext(0,"truncated file `%s\', %ld of %ld bytes read",5);\n              FUN_0002bc50(uVar4,__s,sVar3,__n);\n            }\n          }\n          else {\n            uVar4 = dcgettext(0,"could not skip to %ld in file `%s\'",5);\n            FUN_0002bd30(uVar4,local_44,__s);\n          }\n        }" (if "if") (parenthesized_expression "((((char)((byte)((uint)local_44 >> 0x18) | (byte)(__n >> 0x18)) < '\0') || (lVar2 < 0))\n           || (lVar2 < (int)(local_44 + __n)))" (( "(") (binary_expression "(((char)((byte)((uint)local_44 >> 0x18) | (byte)(__n >> 0x18)) < '\0') || (lVar2 < 0))\n           || (lVar2 < (int)(local_44 + __n))" (parenthesized_expression "(((char)((byte)((uint)local_44 >> 0x18) | (byte)(__n >> 0x18)) < '\0') || (lVar2 < 0))" (( "(") (binary_expression "((char)((byte)((uint)local_44 >> 0x18) | (byte)(__n >> 0x18)) < '\0') || (lVar2 < 0)" (parenthesized_expression "((char)((byte)((uint)local_44 >> 0x18) | (byte)(__n >> 0x18)) < '\0')" (( "(") (binary_expression "(char)((byte)((uint)local_44 >> 0x18) | (byte)(__n >> 0x18)) < '\0'" (cast_expression "(char)((byte)((uint)local_44 >> 0x18) | (byte)(__n >> 0x18))" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((byte)((uint)local_44 >> 0x18) | (byte)(__n >> 0x18))" (( "(") (binary_expression "(byte)((uint)local_44 >> 0x18) | (byte)(__n >> 0x18)" (call_expression "(byte)((uint)local_44 >> 0x18)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((uint)local_44 >> 0x18)" (( "(") (binary_expression "(uint)local_44 >> 0x18" (cast_expression "(uint)local_44" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_44")) (>> ">>") (number_literal "0x18")) () ")"))) (| "|") (call_expression "(byte)(__n >> 0x18)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "(__n >> 0x18)" (( "(") (binary_expression "__n >> 0x18" (identifier "__n") (>> ">>") (number_literal "0x18")) () ")")))) () ")"))) (< "<") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (|| "||") (parenthesized_expression "(lVar2 < 0)" (( "(") (binary_expression "lVar2 < 0" (identifier "lVar2") (< "<") (number_literal "0")) () ")"))) () ")")) (|| "||") (parenthesized_expression "(lVar2 < (int)(local_44 + __n))" (( "(") (binary_expression "lVar2 < (int)(local_44 + __n)" (identifier "lVar2") (< "<") (cast_expression "(int)(local_44 + __n)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(local_44 + __n)" (( "(") (binary_expression "local_44 + __n" (identifier "local_44") (+ "+") (identifier "__n")) () ")")))) () ")"))) () ")")) (compound_statement "{\n          uVar4 = dcgettext(0,"skip (%ld) or count (%ld) invalid for file size (%ld)",5);\n          FUN_0002bd30(uVar4,local_44,__n,lVar2);\n        }" ({ "{") (expression_statement "uVar4 = dcgettext(0,"skip (%ld) or count (%ld) invalid for file size (%ld)",5);" (assignment_expression "uVar4 = dcgettext(0,"skip (%ld) or count (%ld) invalid for file size (%ld)",5)" (identifier "uVar4") (= "=") (call_expression "dcgettext(0,"skip (%ld) or count (%ld) invalid for file size (%ld)",5)" (identifier "dcgettext") (argument_list "(0,"skip (%ld) or count (%ld) invalid for file size (%ld)",5)" (( "(") (number_literal "0") (, ",") (string_literal ""skip (%ld) or count (%ld) invalid for file size (%ld)"" (" """) (string_content "skip (%ld) or count (%ld) invalid for file size (%ld)") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_0002bd30(uVar4,local_44,__n,lVar2);" (call_expression "FUN_0002bd30(uVar4,local_44,__n,lVar2)" (identifier "FUN_0002bd30") (argument_list "(uVar4,local_44,__n,lVar2)" (( "(") (identifier "uVar4") (, ",") (identifier "local_44") (, ",") (identifier "__n") (, ",") (identifier "lVar2") () ")"))) (; ";")) (} "}")) (else_clause "else {\n          iVar1 = fseek(__stream,local_44,0);\n          if (iVar1 == 0) {\n            __ptr = (void *)FUN_00024a90(__n);\n            sVar3 = fread(__ptr,1,__n,__stream);\n            if ((int)sVar3 < (int)__n) {\n              uVar4 = dcgettext(0,"truncated file `%s\', %ld of %ld bytes read",5);\n              FUN_0002bc50(uVar4,__s,sVar3,__n);\n            }\n          }\n          else {\n            uVar4 = dcgettext(0,"could not skip to %ld in file `%s\'",5);\n            FUN_0002bd30(uVar4,local_44,__s);\n          }\n        }" (else "else") (compound_statement "{\n          iVar1 = fseek(__stream,local_44,0);\n          if (iVar1 == 0) {\n            __ptr = (void *)FUN_00024a90(__n);\n            sVar3 = fread(__ptr,1,__n,__stream);\n            if ((int)sVar3 < (int)__n) {\n              uVar4 = dcgettext(0,"truncated file `%s\', %ld of %ld bytes read",5);\n              FUN_0002bc50(uVar4,__s,sVar3,__n);\n            }\n          }\n          else {\n            uVar4 = dcgettext(0,"could not skip to %ld in file `%s\'",5);\n            FUN_0002bd30(uVar4,local_44,__s);\n          }\n        }" ({ "{") (expression_statement "iVar1 = fseek(__stream,local_44,0);" (assignment_expression "iVar1 = fseek(__stream,local_44,0)" (identifier "iVar1") (= "=") (call_expression "fseek(__stream,local_44,0)" (identifier "fseek") (argument_list "(__stream,local_44,0)" (( "(") (identifier "__stream") (, ",") (identifier "local_44") (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (iVar1 == 0) {\n            __ptr = (void *)FUN_00024a90(__n);\n            sVar3 = fread(__ptr,1,__n,__stream);\n            if ((int)sVar3 < (int)__n) {\n              uVar4 = dcgettext(0,"truncated file `%s\', %ld of %ld bytes read",5);\n              FUN_0002bc50(uVar4,__s,sVar3,__n);\n            }\n          }\n          else {\n            uVar4 = dcgettext(0,"could not skip to %ld in file `%s\'",5);\n            FUN_0002bd30(uVar4,local_44,__s);\n          }" (if "if") (parenthesized_expression "(iVar1 == 0)" (( "(") (binary_expression "iVar1 == 0" (identifier "iVar1") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            __ptr = (void *)FUN_00024a90(__n);\n            sVar3 = fread(__ptr,1,__n,__stream);\n            if ((int)sVar3 < (int)__n) {\n              uVar4 = dcgettext(0,"truncated file `%s\', %ld of %ld bytes read",5);\n              FUN_0002bc50(uVar4,__s,sVar3,__n);\n            }\n          }" ({ "{") (expression_statement "__ptr = (void *)FUN_00024a90(__n);" (assignment_expression "__ptr = (void *)FUN_00024a90(__n)" (identifier "__ptr") (= "=") (cast_expression "(void *)FUN_00024a90(__n)" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00024a90(__n)" (identifier "FUN_00024a90") (argument_list "(__n)" (( "(") (identifier "__n") () ")"))))) (; ";")) (expression_statement "sVar3 = fread(__ptr,1,__n,__stream);" (assignment_expression "sVar3 = fread(__ptr,1,__n,__stream)" (identifier "sVar3") (= "=") (call_expression "fread(__ptr,1,__n,__stream)" (identifier "fread") (argument_list "(__ptr,1,__n,__stream)" (( "(") (identifier "__ptr") (, ",") (number_literal "1") (, ",") (identifier "__n") (, ",") (identifier "__stream") () ")")))) (; ";")) (if_statement "if ((int)sVar3 < (int)__n) {\n              uVar4 = dcgettext(0,"truncated file `%s\', %ld of %ld bytes read",5);\n              FUN_0002bc50(uVar4,__s,sVar3,__n);\n            }" (if "if") (parenthesized_expression "((int)sVar3 < (int)__n)" (( "(") (binary_expression "(int)sVar3 < (int)__n" (cast_expression "(int)sVar3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "sVar3")) (< "<") (cast_expression "(int)__n" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "__n"))) () ")")) (compound_statement "{\n              uVar4 = dcgettext(0,"truncated file `%s\', %ld of %ld bytes read",5);\n              FUN_0002bc50(uVar4,__s,sVar3,__n);\n            }" ({ "{") (expression_statement "uVar4 = dcgettext(0,"truncated file `%s\', %ld of %ld bytes read",5);" (assignment_expression "uVar4 = dcgettext(0,"truncated file `%s\', %ld of %ld bytes read",5)" (identifier "uVar4") (= "=") (call_expression "dcgettext(0,"truncated file `%s\', %ld of %ld bytes read",5)" (identifier "dcgettext") (argument_list "(0,"truncated file `%s\', %ld of %ld bytes read",5)" (( "(") (number_literal "0") (, ",") (string_literal ""truncated file `%s\', %ld of %ld bytes read"" (" """) (string_content "truncated file `%s") (escape_sequence "\'") (string_content ", %ld of %ld bytes read") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_0002bc50(uVar4,__s,sVar3,__n);" (call_expression "FUN_0002bc50(uVar4,__s,sVar3,__n)" (identifier "FUN_0002bc50") (argument_list "(uVar4,__s,sVar3,__n)" (( "(") (identifier "uVar4") (, ",") (identifier "__s") (, ",") (identifier "sVar3") (, ",") (identifier "__n") () ")"))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n            uVar4 = dcgettext(0,"could not skip to %ld in file `%s\'",5);\n            FUN_0002bd30(uVar4,local_44,__s);\n          }" (else "else") (compound_statement "{\n            uVar4 = dcgettext(0,"could not skip to %ld in file `%s\'",5);\n            FUN_0002bd30(uVar4,local_44,__s);\n          }" ({ "{") (expression_statement "uVar4 = dcgettext(0,"could not skip to %ld in file `%s\'",5);" (assignment_expression "uVar4 = dcgettext(0,"could not skip to %ld in file `%s\'",5)" (identifier "uVar4") (= "=") (call_expression "dcgettext(0,"could not skip to %ld in file `%s\'",5)" (identifier "dcgettext") (argument_list "(0,"could not skip to %ld in file `%s\'",5)" (( "(") (number_literal "0") (, ",") (string_literal ""could not skip to %ld in file `%s\'"" (" """) (string_content "could not skip to %ld in file `%s") (escape_sequence "\'") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_0002bd30(uVar4,local_44,__s);" (call_expression "FUN_0002bd30(uVar4,local_44,__s)" (identifier "FUN_0002bd30") (argument_list "(uVar4,local_44,__s)" (( "(") (identifier "uVar4") (, ",") (identifier "local_44") (, ",") (identifier "__s") () ")"))) (; ";")) (} "}")))) (} "}")))) (} "}")) (else_clause "else {\n        uVar4 = dcgettext(0,"seek to end of .incbin file failed `%s\'",5);\n        FUN_0002bd30(uVar4,__s);\n      }" (else "else") (compound_statement "{\n        uVar4 = dcgettext(0,"seek to end of .incbin file failed `%s\'",5);\n        FUN_0002bd30(uVar4,__s);\n      }" ({ "{") (expression_statement "uVar4 = dcgettext(0,"seek to end of .incbin file failed `%s\'",5);" (assignment_expression "uVar4 = dcgettext(0,"seek to end of .incbin file failed `%s\'",5)" (identifier "uVar4") (= "=") (call_expression "dcgettext(0,"seek to end of .incbin file failed `%s\'",5)" (identifier "dcgettext") (argument_list "(0,"seek to end of .incbin file failed `%s\'",5)" (( "(") (number_literal "0") (, ",") (string_literal ""seek to end of .incbin file failed `%s\'"" (" """) (string_content "seek to end of .incbin file failed `%s") (escape_sequence "\'") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_0002bd30(uVar4,__s);" (call_expression "FUN_0002bd30(uVar4,__s)" (identifier "FUN_0002bd30") (argument_list "(uVar4,__s)" (( "(") (identifier "uVar4") (, ",") (identifier "__s") () ")"))) (; ";")) (} "}")))) (expression_statement "fclose(__stream);" (call_expression "fclose(__stream)" (identifier "fclose") (argument_list "(__stream)" (( "(") (identifier "__stream") () ")"))) (; ";")) (} "}")))) (expression_statement "free(__s);" (call_expression "free(__s)" (identifier "free") (argument_list "(__s)" (( "(") (identifier "__s") () ")"))) (; ";")) (} "}"))) (return_statement "return;" (return "return") (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Unknown calling convention */

void function_1(int x)

{
  char *var_3;
  type_1 *var_11;
  char *pcVar2;
  int var_17;
  long var_23;
  size_t sVar5;
  char *format;
  char var_4;
  size_t var_25;
  type_2 oVar7;
  int var_24;
  size_t var_6;
  int var_14;
  type_3 exp;
  
  if (*var_1 == ' ') {
    var_1 = var_1 + 1;
  }
  var_3 = var_2(&var_14);
  if (var_3 != (char *)0x0) {
    var_4 = *var_1;
    if (var_4 == ' ') {
      var_4 = var_1[1];
      var_1 = var_1 + 1;
    }
    var_6 = 0;
    var_24 = 0;
    if (var_4 == ',') {
      var_1 = var_1 + 1;
      oVar7 = var_5(&exp);
      var_24 = (int)oVar7;
      var_4 = *var_1;
      if (var_4 == ' ') {
        var_4 = var_1[1];
        var_1 = var_1 + 1;
      }
      var_6 = 0;
      if (var_4 == ',') {
        var_1 = var_1 + 1;
        oVar7 = var_5(&exp);
        var_6 = (size_t)oVar7;
        if (var_6 == 0) {
          pcVar2 = (char *)var_7(0,".incbin count zero, ignoring `%s\'",5);
          var_8(pcVar2,var_3);
        }
        if (*var_1 == ' ') {
          var_1 = var_1 + 1;
        }
      }
    }
    var_9();
    var_11 = var_10(var_3,"r");
    if (var_11 == (type_1 *)0x0) {
      pcVar2 = (char *)var_12(var_13 + var_14 + 5);
      if (0 < var_15) {
        var_17 = 0;
        do {
          var_16(pcVar2,"%s/%s",include_dirs[var_17],var_3);
          var_11 = var_10(pcVar2,"r");
          if (var_11 != (type_1 *)0x0) goto LAB_00033c46;
          var_17 = var_17 + 1;
        } while (var_17 < var_15);
      }
      format = (char *)var_7(0,"file not found: %s",5);
      var_18(format,var_3);
    }
    else {
      pcVar2 = (char *)var_19(var_3);
LAB_00033c46:
      var_20(pcVar2);
      var_17 = var_21(var_11,0,2);
      if (var_17 == 0) {
        var_23 = var_22(var_11);
        var_25 = var_23 - var_24;
        if (var_6 != 0) {
          var_25 = var_6;
        }
        if ((((char)((byte)((type_4)var_24 >> 0x18) | (byte)(var_25 >> 0x18)) < '\0') || (var_23 < 0)
            ) || (var_23 < (int)(var_24 + var_25))) {
          var_3 = (char *)var_7(0,"skip (%ld) or count (%ld) invalid for file size (%ld)",5);
          var_18(var_3,var_24,var_25,var_23);
        }
        else {
          var_17 = var_21(var_11,var_24,0);
          if (var_17 == 0) {
            var_3 = var_26(var_25);
            sVar5 = var_27(var_3,1,var_25,var_11);
            if ((int)sVar5 < (int)var_25) {
              var_3 = (char *)var_7(0,"truncated file `%s\', %ld of %ld bytes read",5);
              var_8(var_3,pcVar2,sVar5,var_25);
            }
          }
          else {
            var_3 = (char *)var_7(0,"could not skip to %ld in file `%s\'",5);
            var_18(var_3,var_24,pcVar2);
          }
        }
      }
      else {
        var_3 = (char *)var_7(0,"seek to end of .incbin file failed `%s\'",5);
        var_18(var_3,pcVar2);
      }
      var_28(var_11);
    }
    var_29(pcVar2);
  }
  return;
}


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

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

void MASKED(void)

{
  char *__filename;
  FILE *__stream;
  char *__s;
  int iVar1;
  long lVar2;
  void *__ptr;
  size_t sVar3;
  undefined4 uVar4;
  char cVar5;
  size_t __n;
  int local_44;
  size_t local_40;
  int local_34 [8];
  undefined4 uStack_14;
  
  uStack_14 = 0x33ba9;
  if (*DAT_00077ef8 == ' ') {
    DAT_00077ef8 = DAT_00077ef8 + 1;
  }
  __filename = (char *)FUN_00033650(local_34);
  if (__filename != (char *)0x0) {
    cVar5 = *DAT_00077ef8;
    if (cVar5 == ' ') {
      cVar5 = DAT_00077ef8[1];
      DAT_00077ef8 = DAT_00077ef8 + 1;
    }
    local_40 = 0;
    local_44 = 0;
    if (cVar5 == ',') {
      DAT_00077ef8 = DAT_00077ef8 + 1;
      local_44 = FUN_0002c480();
      cVar5 = *DAT_00077ef8;
      if (cVar5 == ' ') {
        cVar5 = DAT_00077ef8[1];
        DAT_00077ef8 = DAT_00077ef8 + 1;
      }
      local_40 = 0;
      if (cVar5 == ',') {
        DAT_00077ef8 = DAT_00077ef8 + 1;
        local_40 = FUN_0002c480();
        if (local_40 == 0) {
          uVar4 = dcgettext(0,".incbin count zero, ignoring `%s\'",5);
          FUN_0002bc50(uVar4,__filename);
        }
        if (*DAT_00077ef8 == ' ') {
          DAT_00077ef8 = DAT_00077ef8 + 1;
        }
      }
    }
    FUN_0002e290();
    __stream = fopen64(__filename,"r");
    if (__stream == (FILE *)0x0) {
      __s = (char *)xmalloc(DAT_0006f2c4 + local_34[0] + 5);
      if (0 < DAT_00077f80) {
        iVar1 = 0;
        do {
          sprintf(__s,"%s/%s",*(undefined4 *)(DAT_00077ee4 + iVar1 * 4),__filename);
          __stream = fopen64(__s,"r");
          if (__stream != (FILE *)0x0) goto LAB_00033c46;
          iVar1 = iVar1 + 1;
        } while (iVar1 < DAT_00077f80);
      }
      uVar4 = dcgettext(0,"file not found: %s",5);
      FUN_0002bd30(uVar4,__filename);
    }
    else {
      __s = (char *)xstrdup(__filename);
LAB_00033c46:
      FUN_00019d00(__s);
      iVar1 = fseek(__stream,0,2);
      if (iVar1 == 0) {
        lVar2 = ftell(__stream);
        __n = lVar2 - local_44;
        if (local_40 != 0) {
          __n = local_40;
        }
        if ((((char)((byte)((uint)local_44 >> 0x18) | (byte)(__n >> 0x18)) < '\0') || (lVar2 < 0))
           || (lVar2 < (int)(local_44 + __n))) {
          uVar4 = dcgettext(0,"skip (%ld) or count (%ld) invalid for file size (%ld)",5);
          FUN_0002bd30(uVar4,local_44,__n,lVar2);
        }
        else {
          iVar1 = fseek(__stream,local_44,0);
          if (iVar1 == 0) {
            __ptr = (void *)FUN_00024a90(__n);
            sVar3 = fread(__ptr,1,__n,__stream);
            if ((int)sVar3 < (int)__n) {
              uVar4 = dcgettext(0,"truncated file `%s\', %ld of %ld bytes read",5);
              FUN_0002bc50(uVar4,__s,sVar3,__n);
            }
          }
          else {
            uVar4 = dcgettext(0,"could not skip to %ld in file `%s\'",5);
            FUN_0002bd30(uVar4,local_44,__s);
          }
        }
      }
      else {
        uVar4 = dcgettext(0,"seek to end of .incbin file failed `%s\'",5);
        FUN_0002bd30(uVar4,__s);
      }
      fclose(__stream);
    }
    free(__s);
  }
  return;
}

