
bfd_boolean get_file_header(Filedata *filedata)

{
  uchar *__ptr;
  size_t sVar1;
  elf_vma eVar2;
  bfd_boolean bVar3;
  bool bVar4;
  Elf32_External_Ehdr ehdr32;
  uchar local_24 [2];
  uchar local_22 [2];
  uchar local_20 [2];
  uchar local_1e [2];
  uchar local_1c [2];
  uchar local_1a [2];
  
  bVar3 = 0;
  sVar1 = fread(&filedata->file_header,0x10,1,(FILE *)filedata->handle);
  if (sVar1 == 1) {
    if ((filedata->file_header).e_ident[5] == '\x02') {
      byte_get = byte_get_big_endian;
      byte_put = byte_put_big_endian;
    }
    else {
      byte_get = byte_get_little_endian;
      byte_put = byte_put_little_endian;
    }
    __ptr = ehdr32.e_type;
    bVar4 = (filedata->file_header).e_ident[4] == '\x02';
    is_32bit_elf = (bfd_boolean)!bVar4;
    if (bVar4) {
      sVar1 = fread(__ptr,0x30,1,(FILE *)filedata->handle);
      if (sVar1 != 1) {
        return 0;
      }
      eVar2 = (*byte_get)(__ptr,2);
      (filedata->file_header).e_type = (ushort)eVar2;
      eVar2 = (*byte_get)(ehdr32.e_machine,2);
      (filedata->file_header).e_machine = (ushort)eVar2;
      eVar2 = (*byte_get)(ehdr32.e_version,4);
      (filedata->file_header).e_version = eVar2;
      eVar2 = (*byte_get)(ehdr32.e_entry,8);
      (filedata->file_header).e_entry = eVar2;
      eVar2 = (*byte_get)(ehdr32.e_shoff,8);
      (filedata->file_header).e_phoff = eVar2;
      eVar2 = (*byte_get)(ehdr32.e_ehsize,8);
      (filedata->file_header).e_shoff = eVar2;
      eVar2 = (*byte_get)(ehdr32.e_shnum,4);
      (filedata->file_header).e_flags = eVar2;
      eVar2 = (*byte_get)(local_24,2);
      (filedata->file_header).e_ehsize = (uint)eVar2;
      eVar2 = (*byte_get)(local_22,2);
      (filedata->file_header).e_phentsize = (uint)eVar2;
      eVar2 = (*byte_get)(local_20,2);
      (filedata->file_header).e_phnum = (uint)eVar2;
      eVar2 = (*byte_get)(local_1e,2);
      (filedata->file_header).e_shentsize = (uint)eVar2;
      eVar2 = (*byte_get)(local_1c,2);
      (filedata->file_header).e_shnum = (uint)eVar2;
      eVar2 = (*byte_get)(local_1a,2);
      (filedata->file_header).e_shstrndx = (uint)eVar2;
    }
    else {
      sVar1 = fread(__ptr,0x24,1,(FILE *)filedata->handle);
      if (sVar1 != 1) {
        return 0;
      }
      eVar2 = (*byte_get)(__ptr,2);
      (filedata->file_header).e_type = (ushort)eVar2;
      eVar2 = (*byte_get)(ehdr32.e_machine,2);
      (filedata->file_header).e_machine = (ushort)eVar2;
      eVar2 = (*byte_get)(ehdr32.e_version,4);
      (filedata->file_header).e_version = eVar2;
      eVar2 = (*byte_get)(ehdr32.e_entry,4);
      (filedata->file_header).e_entry = eVar2;
      eVar2 = (*byte_get)(ehdr32.e_phoff,4);
      (filedata->file_header).e_phoff = eVar2;
      eVar2 = (*byte_get)(ehdr32.e_shoff,4);
      (filedata->file_header).e_shoff = eVar2;
      eVar2 = (*byte_get)(ehdr32.e_flags,4);
      (filedata->file_header).e_flags = eVar2;
      eVar2 = (*byte_get)(ehdr32.e_ehsize,2);
      (filedata->file_header).e_ehsize = (uint)eVar2;
      eVar2 = (*byte_get)(ehdr32.e_phentsize,2);
      (filedata->file_header).e_phentsize = (uint)eVar2;
      eVar2 = (*byte_get)(ehdr32.e_phnum,2);
      (filedata->file_header).e_phnum = (uint)eVar2;
      eVar2 = (*byte_get)(ehdr32.e_shentsize,2);
      (filedata->file_header).e_shentsize = (uint)eVar2;
      eVar2 = (*byte_get)(ehdr32.e_shnum,2);
      (filedata->file_header).e_shnum = (uint)eVar2;
      eVar2 = (*byte_get)(ehdr32.e_shstrndx,2);
      (filedata->file_header).e_shstrndx = (uint)eVar2;
    }
    bVar3 = 1;
    if ((filedata->file_header).e_shoff != 0) {
      if (is_32bit_elf == 0) {
        get_64bit_section_headers(filedata,1);
      }
      else {
        get_32bit_section_headers(filedata,1);
      }
    }
  }
  return bVar3;
}



undefined8 FUN_001195f0(long param_1)

{
  undefined2 uVar1;
  undefined4 uVar2;
  size_t sVar3;
  undefined8 uVar4;
  bool bVar5;
  undefined1 local_48 [2];
  undefined1 local_46 [2];
  undefined1 local_44 [4];
  undefined1 local_40 [4];
  undefined1 local_3c [4];
  undefined1 local_38 [4];
  undefined1 local_34 [4];
  undefined1 local_30 [2];
  undefined1 local_2e [2];
  undefined1 local_2c [2];
  undefined1 local_2a [2];
  undefined1 local_28 [2];
  undefined1 local_26 [2];
  undefined1 local_24 [2];
  undefined1 local_22 [2];
  undefined1 local_20 [2];
  undefined1 local_1e [2];
  undefined1 local_1c [2];
  undefined1 local_1a [2];
  
  uVar4 = 0;
  sVar3 = fread((void *)(param_1 + 0x18),0x10,1,*(FILE **)(param_1 + 8));
  if (sVar3 == 1) {
    if (*(char *)(param_1 + 0x1d) == '\x02') {
      DAT_00196f88 = FUN_00154c60;
      DAT_00196f90 = FUN_00155250;
    }
    else {
      DAT_00196f88 = FUN_001552c0;
      DAT_00196f90 = FUN_001551b0;
    }
    bVar5 = *(char *)(param_1 + 0x1c) == '\x02';
    DAT_0019345c = (uint)!bVar5;
    if (bVar5) {
      sVar3 = fread(local_48,0x30,1,*(FILE **)(param_1 + 8));
      if (sVar3 != 1) {
        return 0;
      }
      uVar1 = (*DAT_00196f88)(local_48,2);
      *(undefined2 *)(param_1 + 0x50) = uVar1;
      uVar1 = (*DAT_00196f88)(local_46,2);
      *(undefined2 *)(param_1 + 0x52) = uVar1;
      uVar4 = (*DAT_00196f88)(local_44,4);
      *(undefined8 *)(param_1 + 0x40) = uVar4;
      uVar4 = (*DAT_00196f88)(local_40,8);
      *(undefined8 *)(param_1 + 0x28) = uVar4;
      uVar4 = (*DAT_00196f88)(local_38,8);
      *(undefined8 *)(param_1 + 0x30) = uVar4;
      uVar4 = (*DAT_00196f88)(local_30,8);
      *(undefined8 *)(param_1 + 0x38) = uVar4;
      uVar4 = (*DAT_00196f88)(local_28,4);
      *(undefined8 *)(param_1 + 0x48) = uVar4;
      uVar2 = (*DAT_00196f88)(local_24,2);
      *(undefined4 *)(param_1 + 0x54) = uVar2;
      uVar2 = (*DAT_00196f88)(local_22,2);
      *(undefined4 *)(param_1 + 0x58) = uVar2;
      uVar2 = (*DAT_00196f88)(local_20,2);
      *(undefined4 *)(param_1 + 0x5c) = uVar2;
      uVar2 = (*DAT_00196f88)(local_1e,2);
      *(undefined4 *)(param_1 + 0x60) = uVar2;
      uVar2 = (*DAT_00196f88)(local_1c,2);
      *(undefined4 *)(param_1 + 100) = uVar2;
      uVar2 = (*DAT_00196f88)(local_1a,2);
      *(undefined4 *)(param_1 + 0x68) = uVar2;
    }
    else {
      sVar3 = fread(local_48,0x24,1,*(FILE **)(param_1 + 8));
      if (sVar3 != 1) {
        return 0;
      }
      uVar1 = (*DAT_00196f88)(local_48,2);
      *(undefined2 *)(param_1 + 0x50) = uVar1;
      uVar1 = (*DAT_00196f88)(local_46,2);
      *(undefined2 *)(param_1 + 0x52) = uVar1;
      uVar4 = (*DAT_00196f88)(local_44,4);
      *(undefined8 *)(param_1 + 0x40) = uVar4;
      uVar4 = (*DAT_00196f88)(local_40,4);
      *(undefined8 *)(param_1 + 0x28) = uVar4;
      uVar4 = (*DAT_00196f88)(local_3c,4);
      *(undefined8 *)(param_1 + 0x30) = uVar4;
      uVar4 = (*DAT_00196f88)(local_38,4);
      *(undefined8 *)(param_1 + 0x38) = uVar4;
      uVar4 = (*DAT_00196f88)(local_34,4);
      *(undefined8 *)(param_1 + 0x48) = uVar4;
      uVar2 = (*DAT_00196f88)(local_30,2);
      *(undefined4 *)(param_1 + 0x54) = uVar2;
      uVar2 = (*DAT_00196f88)(local_2e,2);
      *(undefined4 *)(param_1 + 0x58) = uVar2;
      uVar2 = (*DAT_00196f88)(local_2c,2);
      *(undefined4 *)(param_1 + 0x5c) = uVar2;
      uVar2 = (*DAT_00196f88)(local_2a,2);
      *(undefined4 *)(param_1 + 0x60) = uVar2;
      uVar2 = (*DAT_00196f88)(local_28,2);
      *(undefined4 *)(param_1 + 100) = uVar2;
      uVar2 = (*DAT_00196f88)(local_26,2);
      *(undefined4 *)(param_1 + 0x68) = uVar2;
    }
    uVar4 = 1;
    if (*(long *)(param_1 + 0x38) != 0) {
      if (DAT_0019345c == 0) {
        FUN_00115940(param_1,1);
      }
      else {
        FUN_00115650();
      }
    }
  }
  return uVar4;
}


PUSH R12
MOV EDX,0x1
MOV ESI,0x10
PUSH RBP
XOR EBP,EBP
PUSH RBX
MOV RBX,RDI
ADD RDI,0x18
SUB RSP,0x40
MOV RCX,qword ptr [RDI + -0x10]
CALL 0x001070e0
CMP RAX,0x1
JNZ 0x00119799
CMP byte ptr [RBX + 0x1d],0x2
JZ 0x001197d0
LEA RAX,[0x1552c0]
MOV qword ptr [0x00196f88],RAX
LEA RAX,[0x1551b0]
MOV qword ptr [0x00196f90],RAX
MOVZX EAX,byte ptr [RBX + 0x1c]
XOR EDX,EDX
MOV RBP,RSP
MOV RCX,qword ptr [RBX + 0x8]
LEA R12,[RBP + 0x10]
CMP AL,0x2
SETNZ DL
MOV dword ptr [0x0019345c],EDX
MOV EDX,0x1
JZ 0x001197a8
MOV ESI,0x24
MOV RDI,R12
CALL 0x001070e0
CMP RAX,0x1
JNZ 0x001197bb
MOV ESI,0x2
MOV RDI,R12
CALL qword ptr [0x00196f88]
LEA RDI,[RBP + 0x12]
MOV ESI,0x2
MOV word ptr [RBX + 0x50],AX
CALL qword ptr [0x00196f88]
LEA RDI,[RBP + 0x14]
MOV ESI,0x4
MOV word ptr [RBX + 0x52],AX
CALL qword ptr [0x00196f88]
LEA RDI,[RBP + 0x18]
MOV ESI,0x4
MOV qword ptr [RBX + 0x40],RAX
CALL qword ptr [0x00196f88]
LEA RDI,[RBP + 0x1c]
MOV ESI,0x4
MOV qword ptr [RBX + 0x28],RAX
CALL qword ptr [0x00196f88]
LEA RDI,[RBP + 0x20]
MOV ESI,0x4
MOV qword ptr [RBX + 0x30],RAX
CALL qword ptr [0x00196f88]
LEA RDI,[RBP + 0x24]
MOV ESI,0x4
MOV qword ptr [RBX + 0x38],RAX
CALL qword ptr [0x00196f88]
LEA RDI,[RBP + 0x28]
MOV ESI,0x2
MOV qword ptr [RBX + 0x48],RAX
CALL qword ptr [0x00196f88]
LEA RDI,[RBP + 0x2a]
MOV ESI,0x2
MOV dword ptr [RBX + 0x54],EAX
CALL qword ptr [0x00196f88]
LEA RDI,[RBP + 0x2c]
MOV ESI,0x2
MOV dword ptr [RBX + 0x58],EAX
CALL qword ptr [0x00196f88]
LEA RDI,[RBP + 0x2e]
MOV ESI,0x2
MOV dword ptr [RBX + 0x5c],EAX
CALL qword ptr [0x00196f88]
LEA RDI,[RBP + 0x30]
MOV ESI,0x2
MOV dword ptr [RBX + 0x60],EAX
CALL qword ptr [0x00196f88]
LEA RDI,[RBP + 0x32]
MOV ESI,0x2
MOV dword ptr [RBX + 0x64],EAX
CALL qword ptr [0x00196f88]
MOV dword ptr [RBX + 0x68],EAX
CMP qword ptr [RBX + 0x38],0x0
MOV EBP,0x1
JZ 0x00119799
MOV EAX,dword ptr [0x0019345c]
MOV ESI,0x1
MOV RDI,RBX
TEST EAX,EAX
JZ 0x001198f0
CALL 0x00115650
ADD RSP,0x40
MOV EAX,EBP
POP RBX
POP RBP
POP R12
RET
MOV ESI,0x30
MOV RDI,R12
CALL 0x001070e0
CMP RAX,0x1
JZ 0x001197f8
ADD RSP,0x40
XOR EBP,EBP
MOV EAX,EBP
POP RBX
POP RBP
POP R12
RET
LEA RAX,[0x154c60]
MOV qword ptr [0x00196f88],RAX
LEA RAX,[0x155250]
MOV qword ptr [0x00196f90],RAX
JMP 0x00119644
MOV ESI,0x2
MOV RDI,R12
CALL qword ptr [0x00196f88]
LEA RDI,[RBP + 0x12]
MOV ESI,0x2
MOV word ptr [RBX + 0x50],AX
CALL qword ptr [0x00196f88]
LEA RDI,[RBP + 0x14]
MOV ESI,0x4
MOV word ptr [RBX + 0x52],AX
CALL qword ptr [0x00196f88]
LEA RDI,[RBP + 0x18]
MOV ESI,0x8
MOV qword ptr [RBX + 0x40],RAX
CALL qword ptr [0x00196f88]
LEA RDI,[RBP + 0x20]
MOV ESI,0x8
MOV qword ptr [RBX + 0x28],RAX
CALL qword ptr [0x00196f88]
LEA RDI,[RBP + 0x28]
MOV ESI,0x8
MOV qword ptr [RBX + 0x30],RAX
CALL qword ptr [0x00196f88]
LEA RDI,[RBP + 0x30]
MOV ESI,0x4
MOV qword ptr [RBX + 0x38],RAX
CALL qword ptr [0x00196f88]
LEA RDI,[RBP + 0x34]
MOV ESI,0x2
MOV qword ptr [RBX + 0x48],RAX
CALL qword ptr [0x00196f88]
LEA RDI,[RBP + 0x36]
MOV ESI,0x2
MOV dword ptr [RBX + 0x54],EAX
CALL qword ptr [0x00196f88]
LEA RDI,[RBP + 0x38]
MOV ESI,0x2
MOV dword ptr [RBX + 0x58],EAX
CALL qword ptr [0x00196f88]
LEA RDI,[RBP + 0x3a]
MOV ESI,0x2
MOV dword ptr [RBX + 0x5c],EAX
CALL qword ptr [0x00196f88]
LEA RDI,[RBP + 0x3c]
MOV ESI,0x2
MOV dword ptr [RBX + 0x60],EAX
CALL qword ptr [0x00196f88]
LEA RDI,[RBP + 0x3e]
MOV ESI,0x2
MOV dword ptr [RBX + 0x64],EAX
CALL qword ptr [0x00196f88]
MOV dword ptr [RBX + 0x68],EAX
JMP 0x00119772
CALL 0x00115940
JMP 0x00119799
(translation_unit "undefined8 FUN_001195f0(long param_1)\n\n{\n  undefined2 uVar1;\n  undefined4 uVar2;\n  size_t sVar3;\n  undefined8 uVar4;\n  bool bVar5;\n  undefined1 local_48 [2];\n  undefined1 local_46 [2];\n  undefined1 local_44 [4];\n  undefined1 local_40 [4];\n  undefined1 local_3c [4];\n  undefined1 local_38 [4];\n  undefined1 local_34 [4];\n  undefined1 local_30 [2];\n  undefined1 local_2e [2];\n  undefined1 local_2c [2];\n  undefined1 local_2a [2];\n  undefined1 local_28 [2];\n  undefined1 local_26 [2];\n  undefined1 local_24 [2];\n  undefined1 local_22 [2];\n  undefined1 local_20 [2];\n  undefined1 local_1e [2];\n  undefined1 local_1c [2];\n  undefined1 local_1a [2];\n  \n  uVar4 = 0;\n  sVar3 = fread((void *)(param_1 + 0x18),0x10,1,*(FILE **)(param_1 + 8));\n  if (sVar3 == 1) {\n    if (*(char *)(param_1 + 0x1d) == '\x02') {\n      DAT_00196f88 = FUN_00154c60;\n      DAT_00196f90 = FUN_00155250;\n    }\n    else {\n      DAT_00196f88 = FUN_001552c0;\n      DAT_00196f90 = FUN_001551b0;\n    }\n    bVar5 = *(char *)(param_1 + 0x1c) == '\x02';\n    DAT_0019345c = (uint)!bVar5;\n    if (bVar5) {\n      sVar3 = fread(local_48,0x30,1,*(FILE **)(param_1 + 8));\n      if (sVar3 != 1) {\n        return 0;\n      }\n      uVar1 = (*DAT_00196f88)(local_48,2);\n      *(undefined2 *)(param_1 + 0x50) = uVar1;\n      uVar1 = (*DAT_00196f88)(local_46,2);\n      *(undefined2 *)(param_1 + 0x52) = uVar1;\n      uVar4 = (*DAT_00196f88)(local_44,4);\n      *(undefined8 *)(param_1 + 0x40) = uVar4;\n      uVar4 = (*DAT_00196f88)(local_40,8);\n      *(undefined8 *)(param_1 + 0x28) = uVar4;\n      uVar4 = (*DAT_00196f88)(local_38,8);\n      *(undefined8 *)(param_1 + 0x30) = uVar4;\n      uVar4 = (*DAT_00196f88)(local_30,8);\n      *(undefined8 *)(param_1 + 0x38) = uVar4;\n      uVar4 = (*DAT_00196f88)(local_28,4);\n      *(undefined8 *)(param_1 + 0x48) = uVar4;\n      uVar2 = (*DAT_00196f88)(local_24,2);\n      *(undefined4 *)(param_1 + 0x54) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_22,2);\n      *(undefined4 *)(param_1 + 0x58) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_20,2);\n      *(undefined4 *)(param_1 + 0x5c) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_1e,2);\n      *(undefined4 *)(param_1 + 0x60) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_1c,2);\n      *(undefined4 *)(param_1 + 100) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_1a,2);\n      *(undefined4 *)(param_1 + 0x68) = uVar2;\n    }\n    else {\n      sVar3 = fread(local_48,0x24,1,*(FILE **)(param_1 + 8));\n      if (sVar3 != 1) {\n        return 0;\n      }\n      uVar1 = (*DAT_00196f88)(local_48,2);\n      *(undefined2 *)(param_1 + 0x50) = uVar1;\n      uVar1 = (*DAT_00196f88)(local_46,2);\n      *(undefined2 *)(param_1 + 0x52) = uVar1;\n      uVar4 = (*DAT_00196f88)(local_44,4);\n      *(undefined8 *)(param_1 + 0x40) = uVar4;\n      uVar4 = (*DAT_00196f88)(local_40,4);\n      *(undefined8 *)(param_1 + 0x28) = uVar4;\n      uVar4 = (*DAT_00196f88)(local_3c,4);\n      *(undefined8 *)(param_1 + 0x30) = uVar4;\n      uVar4 = (*DAT_00196f88)(local_38,4);\n      *(undefined8 *)(param_1 + 0x38) = uVar4;\n      uVar4 = (*DAT_00196f88)(local_34,4);\n      *(undefined8 *)(param_1 + 0x48) = uVar4;\n      uVar2 = (*DAT_00196f88)(local_30,2);\n      *(undefined4 *)(param_1 + 0x54) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_2e,2);\n      *(undefined4 *)(param_1 + 0x58) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_2c,2);\n      *(undefined4 *)(param_1 + 0x5c) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_2a,2);\n      *(undefined4 *)(param_1 + 0x60) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_28,2);\n      *(undefined4 *)(param_1 + 100) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_26,2);\n      *(undefined4 *)(param_1 + 0x68) = uVar2;\n    }\n    uVar4 = 1;\n    if (*(long *)(param_1 + 0x38) != 0) {\n      if (DAT_0019345c == 0) {\n        FUN_00115940(param_1,1);\n      }\n      else {\n        FUN_00115650();\n      }\n    }\n  }\n  return uVar4;\n}\n\n" (function_definition "undefined8 FUN_001195f0(long param_1)\n\n{\n  undefined2 uVar1;\n  undefined4 uVar2;\n  size_t sVar3;\n  undefined8 uVar4;\n  bool bVar5;\n  undefined1 local_48 [2];\n  undefined1 local_46 [2];\n  undefined1 local_44 [4];\n  undefined1 local_40 [4];\n  undefined1 local_3c [4];\n  undefined1 local_38 [4];\n  undefined1 local_34 [4];\n  undefined1 local_30 [2];\n  undefined1 local_2e [2];\n  undefined1 local_2c [2];\n  undefined1 local_2a [2];\n  undefined1 local_28 [2];\n  undefined1 local_26 [2];\n  undefined1 local_24 [2];\n  undefined1 local_22 [2];\n  undefined1 local_20 [2];\n  undefined1 local_1e [2];\n  undefined1 local_1c [2];\n  undefined1 local_1a [2];\n  \n  uVar4 = 0;\n  sVar3 = fread((void *)(param_1 + 0x18),0x10,1,*(FILE **)(param_1 + 8));\n  if (sVar3 == 1) {\n    if (*(char *)(param_1 + 0x1d) == '\x02') {\n      DAT_00196f88 = FUN_00154c60;\n      DAT_00196f90 = FUN_00155250;\n    }\n    else {\n      DAT_00196f88 = FUN_001552c0;\n      DAT_00196f90 = FUN_001551b0;\n    }\n    bVar5 = *(char *)(param_1 + 0x1c) == '\x02';\n    DAT_0019345c = (uint)!bVar5;\n    if (bVar5) {\n      sVar3 = fread(local_48,0x30,1,*(FILE **)(param_1 + 8));\n      if (sVar3 != 1) {\n        return 0;\n      }\n      uVar1 = (*DAT_00196f88)(local_48,2);\n      *(undefined2 *)(param_1 + 0x50) = uVar1;\n      uVar1 = (*DAT_00196f88)(local_46,2);\n      *(undefined2 *)(param_1 + 0x52) = uVar1;\n      uVar4 = (*DAT_00196f88)(local_44,4);\n      *(undefined8 *)(param_1 + 0x40) = uVar4;\n      uVar4 = (*DAT_00196f88)(local_40,8);\n      *(undefined8 *)(param_1 + 0x28) = uVar4;\n      uVar4 = (*DAT_00196f88)(local_38,8);\n      *(undefined8 *)(param_1 + 0x30) = uVar4;\n      uVar4 = (*DAT_00196f88)(local_30,8);\n      *(undefined8 *)(param_1 + 0x38) = uVar4;\n      uVar4 = (*DAT_00196f88)(local_28,4);\n      *(undefined8 *)(param_1 + 0x48) = uVar4;\n      uVar2 = (*DAT_00196f88)(local_24,2);\n      *(undefined4 *)(param_1 + 0x54) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_22,2);\n      *(undefined4 *)(param_1 + 0x58) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_20,2);\n      *(undefined4 *)(param_1 + 0x5c) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_1e,2);\n      *(undefined4 *)(param_1 + 0x60) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_1c,2);\n      *(undefined4 *)(param_1 + 100) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_1a,2);\n      *(undefined4 *)(param_1 + 0x68) = uVar2;\n    }\n    else {\n      sVar3 = fread(local_48,0x24,1,*(FILE **)(param_1 + 8));\n      if (sVar3 != 1) {\n        return 0;\n      }\n      uVar1 = (*DAT_00196f88)(local_48,2);\n      *(undefined2 *)(param_1 + 0x50) = uVar1;\n      uVar1 = (*DAT_00196f88)(local_46,2);\n      *(undefined2 *)(param_1 + 0x52) = uVar1;\n      uVar4 = (*DAT_00196f88)(local_44,4);\n      *(undefined8 *)(param_1 + 0x40) = uVar4;\n      uVar4 = (*DAT_00196f88)(local_40,4);\n      *(undefined8 *)(param_1 + 0x28) = uVar4;\n      uVar4 = (*DAT_00196f88)(local_3c,4);\n      *(undefined8 *)(param_1 + 0x30) = uVar4;\n      uVar4 = (*DAT_00196f88)(local_38,4);\n      *(undefined8 *)(param_1 + 0x38) = uVar4;\n      uVar4 = (*DAT_00196f88)(local_34,4);\n      *(undefined8 *)(param_1 + 0x48) = uVar4;\n      uVar2 = (*DAT_00196f88)(local_30,2);\n      *(undefined4 *)(param_1 + 0x54) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_2e,2);\n      *(undefined4 *)(param_1 + 0x58) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_2c,2);\n      *(undefined4 *)(param_1 + 0x5c) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_2a,2);\n      *(undefined4 *)(param_1 + 0x60) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_28,2);\n      *(undefined4 *)(param_1 + 100) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_26,2);\n      *(undefined4 *)(param_1 + 0x68) = uVar2;\n    }\n    uVar4 = 1;\n    if (*(long *)(param_1 + 0x38) != 0) {\n      if (DAT_0019345c == 0) {\n        FUN_00115940(param_1,1);\n      }\n      else {\n        FUN_00115650();\n      }\n    }\n  }\n  return uVar4;\n}" type_identifier (function_declarator "FUN_001195f0(long param_1)" identifier (parameter_list "(long param_1)" ( (parameter_declaration "long param_1" (sized_type_specifier "long" long) identifier) ))) (compound_statement "{\n  undefined2 uVar1;\n  undefined4 uVar2;\n  size_t sVar3;\n  undefined8 uVar4;\n  bool bVar5;\n  undefined1 local_48 [2];\n  undefined1 local_46 [2];\n  undefined1 local_44 [4];\n  undefined1 local_40 [4];\n  undefined1 local_3c [4];\n  undefined1 local_38 [4];\n  undefined1 local_34 [4];\n  undefined1 local_30 [2];\n  undefined1 local_2e [2];\n  undefined1 local_2c [2];\n  undefined1 local_2a [2];\n  undefined1 local_28 [2];\n  undefined1 local_26 [2];\n  undefined1 local_24 [2];\n  undefined1 local_22 [2];\n  undefined1 local_20 [2];\n  undefined1 local_1e [2];\n  undefined1 local_1c [2];\n  undefined1 local_1a [2];\n  \n  uVar4 = 0;\n  sVar3 = fread((void *)(param_1 + 0x18),0x10,1,*(FILE **)(param_1 + 8));\n  if (sVar3 == 1) {\n    if (*(char *)(param_1 + 0x1d) == '\x02') {\n      DAT_00196f88 = FUN_00154c60;\n      DAT_00196f90 = FUN_00155250;\n    }\n    else {\n      DAT_00196f88 = FUN_001552c0;\n      DAT_00196f90 = FUN_001551b0;\n    }\n    bVar5 = *(char *)(param_1 + 0x1c) == '\x02';\n    DAT_0019345c = (uint)!bVar5;\n    if (bVar5) {\n      sVar3 = fread(local_48,0x30,1,*(FILE **)(param_1 + 8));\n      if (sVar3 != 1) {\n        return 0;\n      }\n      uVar1 = (*DAT_00196f88)(local_48,2);\n      *(undefined2 *)(param_1 + 0x50) = uVar1;\n      uVar1 = (*DAT_00196f88)(local_46,2);\n      *(undefined2 *)(param_1 + 0x52) = uVar1;\n      uVar4 = (*DAT_00196f88)(local_44,4);\n      *(undefined8 *)(param_1 + 0x40) = uVar4;\n      uVar4 = (*DAT_00196f88)(local_40,8);\n      *(undefined8 *)(param_1 + 0x28) = uVar4;\n      uVar4 = (*DAT_00196f88)(local_38,8);\n      *(undefined8 *)(param_1 + 0x30) = uVar4;\n      uVar4 = (*DAT_00196f88)(local_30,8);\n      *(undefined8 *)(param_1 + 0x38) = uVar4;\n      uVar4 = (*DAT_00196f88)(local_28,4);\n      *(undefined8 *)(param_1 + 0x48) = uVar4;\n      uVar2 = (*DAT_00196f88)(local_24,2);\n      *(undefined4 *)(param_1 + 0x54) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_22,2);\n      *(undefined4 *)(param_1 + 0x58) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_20,2);\n      *(undefined4 *)(param_1 + 0x5c) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_1e,2);\n      *(undefined4 *)(param_1 + 0x60) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_1c,2);\n      *(undefined4 *)(param_1 + 100) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_1a,2);\n      *(undefined4 *)(param_1 + 0x68) = uVar2;\n    }\n    else {\n      sVar3 = fread(local_48,0x24,1,*(FILE **)(param_1 + 8));\n      if (sVar3 != 1) {\n        return 0;\n      }\n      uVar1 = (*DAT_00196f88)(local_48,2);\n      *(undefined2 *)(param_1 + 0x50) = uVar1;\n      uVar1 = (*DAT_00196f88)(local_46,2);\n      *(undefined2 *)(param_1 + 0x52) = uVar1;\n      uVar4 = (*DAT_00196f88)(local_44,4);\n      *(undefined8 *)(param_1 + 0x40) = uVar4;\n      uVar4 = (*DAT_00196f88)(local_40,4);\n      *(undefined8 *)(param_1 + 0x28) = uVar4;\n      uVar4 = (*DAT_00196f88)(local_3c,4);\n      *(undefined8 *)(param_1 + 0x30) = uVar4;\n      uVar4 = (*DAT_00196f88)(local_38,4);\n      *(undefined8 *)(param_1 + 0x38) = uVar4;\n      uVar4 = (*DAT_00196f88)(local_34,4);\n      *(undefined8 *)(param_1 + 0x48) = uVar4;\n      uVar2 = (*DAT_00196f88)(local_30,2);\n      *(undefined4 *)(param_1 + 0x54) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_2e,2);\n      *(undefined4 *)(param_1 + 0x58) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_2c,2);\n      *(undefined4 *)(param_1 + 0x5c) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_2a,2);\n      *(undefined4 *)(param_1 + 0x60) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_28,2);\n      *(undefined4 *)(param_1 + 100) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_26,2);\n      *(undefined4 *)(param_1 + 0x68) = uVar2;\n    }\n    uVar4 = 1;\n    if (*(long *)(param_1 + 0x38) != 0) {\n      if (DAT_0019345c == 0) {\n        FUN_00115940(param_1,1);\n      }\n      else {\n        FUN_00115650();\n      }\n    }\n  }\n  return uVar4;\n}" { (declaration "undefined2 uVar1;" type_identifier identifier ;) (declaration "undefined4 uVar2;" type_identifier identifier ;) (declaration "size_t sVar3;" primitive_type identifier ;) (declaration "undefined8 uVar4;" type_identifier identifier ;) (declaration "bool bVar5;" primitive_type identifier ;) (declaration "undefined1 local_48 [2];" type_identifier (array_declarator "local_48 [2]" identifier [ number_literal ]) ;) (declaration "undefined1 local_46 [2];" type_identifier (array_declarator "local_46 [2]" identifier [ number_literal ]) ;) (declaration "undefined1 local_44 [4];" type_identifier (array_declarator "local_44 [4]" identifier [ number_literal ]) ;) (declaration "undefined1 local_40 [4];" type_identifier (array_declarator "local_40 [4]" identifier [ number_literal ]) ;) (declaration "undefined1 local_3c [4];" type_identifier (array_declarator "local_3c [4]" identifier [ number_literal ]) ;) (declaration "undefined1 local_38 [4];" type_identifier (array_declarator "local_38 [4]" identifier [ number_literal ]) ;) (declaration "undefined1 local_34 [4];" type_identifier (array_declarator "local_34 [4]" identifier [ number_literal ]) ;) (declaration "undefined1 local_30 [2];" type_identifier (array_declarator "local_30 [2]" identifier [ number_literal ]) ;) (declaration "undefined1 local_2e [2];" type_identifier (array_declarator "local_2e [2]" identifier [ number_literal ]) ;) (declaration "undefined1 local_2c [2];" type_identifier (array_declarator "local_2c [2]" identifier [ number_literal ]) ;) (declaration "undefined1 local_2a [2];" type_identifier (array_declarator "local_2a [2]" identifier [ number_literal ]) ;) (declaration "undefined1 local_28 [2];" type_identifier (array_declarator "local_28 [2]" identifier [ number_literal ]) ;) (declaration "undefined1 local_26 [2];" type_identifier (array_declarator "local_26 [2]" identifier [ number_literal ]) ;) (declaration "undefined1 local_24 [2];" type_identifier (array_declarator "local_24 [2]" identifier [ number_literal ]) ;) (declaration "undefined1 local_22 [2];" type_identifier (array_declarator "local_22 [2]" identifier [ number_literal ]) ;) (declaration "undefined1 local_20 [2];" type_identifier (array_declarator "local_20 [2]" identifier [ number_literal ]) ;) (declaration "undefined1 local_1e [2];" type_identifier (array_declarator "local_1e [2]" identifier [ number_literal ]) ;) (declaration "undefined1 local_1c [2];" type_identifier (array_declarator "local_1c [2]" identifier [ number_literal ]) ;) (declaration "undefined1 local_1a [2];" type_identifier (array_declarator "local_1a [2]" identifier [ number_literal ]) ;) (expression_statement "uVar4 = 0;" (assignment_expression "uVar4 = 0" identifier = number_literal) ;) (expression_statement "sVar3 = fread((void *)(param_1 + 0x18),0x10,1,*(FILE **)(param_1 + 8));" (assignment_expression "sVar3 = fread((void *)(param_1 + 0x18),0x10,1,*(FILE **)(param_1 + 8))" identifier = (call_expression "fread((void *)(param_1 + 0x18),0x10,1,*(FILE **)(param_1 + 8))" identifier (argument_list "((void *)(param_1 + 0x18),0x10,1,*(FILE **)(param_1 + 8))" ( (cast_expression "(void *)(param_1 + 0x18)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) ))) , number_literal , number_literal , (pointer_expression "*(FILE **)(param_1 + 8)" * (cast_expression "(FILE **)(param_1 + 8)" ( (type_descriptor "FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) )))) ;) (if_statement "if (sVar3 == 1) {\n    if (*(char *)(param_1 + 0x1d) == '\x02') {\n      DAT_00196f88 = FUN_00154c60;\n      DAT_00196f90 = FUN_00155250;\n    }\n    else {\n      DAT_00196f88 = FUN_001552c0;\n      DAT_00196f90 = FUN_001551b0;\n    }\n    bVar5 = *(char *)(param_1 + 0x1c) == '\x02';\n    DAT_0019345c = (uint)!bVar5;\n    if (bVar5) {\n      sVar3 = fread(local_48,0x30,1,*(FILE **)(param_1 + 8));\n      if (sVar3 != 1) {\n        return 0;\n      }\n      uVar1 = (*DAT_00196f88)(local_48,2);\n      *(undefined2 *)(param_1 + 0x50) = uVar1;\n      uVar1 = (*DAT_00196f88)(local_46,2);\n      *(undefined2 *)(param_1 + 0x52) = uVar1;\n      uVar4 = (*DAT_00196f88)(local_44,4);\n      *(undefined8 *)(param_1 + 0x40) = uVar4;\n      uVar4 = (*DAT_00196f88)(local_40,8);\n      *(undefined8 *)(param_1 + 0x28) = uVar4;\n      uVar4 = (*DAT_00196f88)(local_38,8);\n      *(undefined8 *)(param_1 + 0x30) = uVar4;\n      uVar4 = (*DAT_00196f88)(local_30,8);\n      *(undefined8 *)(param_1 + 0x38) = uVar4;\n      uVar4 = (*DAT_00196f88)(local_28,4);\n      *(undefined8 *)(param_1 + 0x48) = uVar4;\n      uVar2 = (*DAT_00196f88)(local_24,2);\n      *(undefined4 *)(param_1 + 0x54) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_22,2);\n      *(undefined4 *)(param_1 + 0x58) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_20,2);\n      *(undefined4 *)(param_1 + 0x5c) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_1e,2);\n      *(undefined4 *)(param_1 + 0x60) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_1c,2);\n      *(undefined4 *)(param_1 + 100) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_1a,2);\n      *(undefined4 *)(param_1 + 0x68) = uVar2;\n    }\n    else {\n      sVar3 = fread(local_48,0x24,1,*(FILE **)(param_1 + 8));\n      if (sVar3 != 1) {\n        return 0;\n      }\n      uVar1 = (*DAT_00196f88)(local_48,2);\n      *(undefined2 *)(param_1 + 0x50) = uVar1;\n      uVar1 = (*DAT_00196f88)(local_46,2);\n      *(undefined2 *)(param_1 + 0x52) = uVar1;\n      uVar4 = (*DAT_00196f88)(local_44,4);\n      *(undefined8 *)(param_1 + 0x40) = uVar4;\n      uVar4 = (*DAT_00196f88)(local_40,4);\n      *(undefined8 *)(param_1 + 0x28) = uVar4;\n      uVar4 = (*DAT_00196f88)(local_3c,4);\n      *(undefined8 *)(param_1 + 0x30) = uVar4;\n      uVar4 = (*DAT_00196f88)(local_38,4);\n      *(undefined8 *)(param_1 + 0x38) = uVar4;\n      uVar4 = (*DAT_00196f88)(local_34,4);\n      *(undefined8 *)(param_1 + 0x48) = uVar4;\n      uVar2 = (*DAT_00196f88)(local_30,2);\n      *(undefined4 *)(param_1 + 0x54) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_2e,2);\n      *(undefined4 *)(param_1 + 0x58) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_2c,2);\n      *(undefined4 *)(param_1 + 0x5c) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_2a,2);\n      *(undefined4 *)(param_1 + 0x60) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_28,2);\n      *(undefined4 *)(param_1 + 100) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_26,2);\n      *(undefined4 *)(param_1 + 0x68) = uVar2;\n    }\n    uVar4 = 1;\n    if (*(long *)(param_1 + 0x38) != 0) {\n      if (DAT_0019345c == 0) {\n        FUN_00115940(param_1,1);\n      }\n      else {\n        FUN_00115650();\n      }\n    }\n  }" if (parenthesized_expression "(sVar3 == 1)" ( (binary_expression "sVar3 == 1" identifier == number_literal) )) (compound_statement "{\n    if (*(char *)(param_1 + 0x1d) == '\x02') {\n      DAT_00196f88 = FUN_00154c60;\n      DAT_00196f90 = FUN_00155250;\n    }\n    else {\n      DAT_00196f88 = FUN_001552c0;\n      DAT_00196f90 = FUN_001551b0;\n    }\n    bVar5 = *(char *)(param_1 + 0x1c) == '\x02';\n    DAT_0019345c = (uint)!bVar5;\n    if (bVar5) {\n      sVar3 = fread(local_48,0x30,1,*(FILE **)(param_1 + 8));\n      if (sVar3 != 1) {\n        return 0;\n      }\n      uVar1 = (*DAT_00196f88)(local_48,2);\n      *(undefined2 *)(param_1 + 0x50) = uVar1;\n      uVar1 = (*DAT_00196f88)(local_46,2);\n      *(undefined2 *)(param_1 + 0x52) = uVar1;\n      uVar4 = (*DAT_00196f88)(local_44,4);\n      *(undefined8 *)(param_1 + 0x40) = uVar4;\n      uVar4 = (*DAT_00196f88)(local_40,8);\n      *(undefined8 *)(param_1 + 0x28) = uVar4;\n      uVar4 = (*DAT_00196f88)(local_38,8);\n      *(undefined8 *)(param_1 + 0x30) = uVar4;\n      uVar4 = (*DAT_00196f88)(local_30,8);\n      *(undefined8 *)(param_1 + 0x38) = uVar4;\n      uVar4 = (*DAT_00196f88)(local_28,4);\n      *(undefined8 *)(param_1 + 0x48) = uVar4;\n      uVar2 = (*DAT_00196f88)(local_24,2);\n      *(undefined4 *)(param_1 + 0x54) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_22,2);\n      *(undefined4 *)(param_1 + 0x58) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_20,2);\n      *(undefined4 *)(param_1 + 0x5c) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_1e,2);\n      *(undefined4 *)(param_1 + 0x60) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_1c,2);\n      *(undefined4 *)(param_1 + 100) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_1a,2);\n      *(undefined4 *)(param_1 + 0x68) = uVar2;\n    }\n    else {\n      sVar3 = fread(local_48,0x24,1,*(FILE **)(param_1 + 8));\n      if (sVar3 != 1) {\n        return 0;\n      }\n      uVar1 = (*DAT_00196f88)(local_48,2);\n      *(undefined2 *)(param_1 + 0x50) = uVar1;\n      uVar1 = (*DAT_00196f88)(local_46,2);\n      *(undefined2 *)(param_1 + 0x52) = uVar1;\n      uVar4 = (*DAT_00196f88)(local_44,4);\n      *(undefined8 *)(param_1 + 0x40) = uVar4;\n      uVar4 = (*DAT_00196f88)(local_40,4);\n      *(undefined8 *)(param_1 + 0x28) = uVar4;\n      uVar4 = (*DAT_00196f88)(local_3c,4);\n      *(undefined8 *)(param_1 + 0x30) = uVar4;\n      uVar4 = (*DAT_00196f88)(local_38,4);\n      *(undefined8 *)(param_1 + 0x38) = uVar4;\n      uVar4 = (*DAT_00196f88)(local_34,4);\n      *(undefined8 *)(param_1 + 0x48) = uVar4;\n      uVar2 = (*DAT_00196f88)(local_30,2);\n      *(undefined4 *)(param_1 + 0x54) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_2e,2);\n      *(undefined4 *)(param_1 + 0x58) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_2c,2);\n      *(undefined4 *)(param_1 + 0x5c) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_2a,2);\n      *(undefined4 *)(param_1 + 0x60) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_28,2);\n      *(undefined4 *)(param_1 + 100) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_26,2);\n      *(undefined4 *)(param_1 + 0x68) = uVar2;\n    }\n    uVar4 = 1;\n    if (*(long *)(param_1 + 0x38) != 0) {\n      if (DAT_0019345c == 0) {\n        FUN_00115940(param_1,1);\n      }\n      else {\n        FUN_00115650();\n      }\n    }\n  }" { (if_statement "if (*(char *)(param_1 + 0x1d) == '\x02') {\n      DAT_00196f88 = FUN_00154c60;\n      DAT_00196f90 = FUN_00155250;\n    }\n    else {\n      DAT_00196f88 = FUN_001552c0;\n      DAT_00196f90 = FUN_001551b0;\n    }" if (parenthesized_expression "(*(char *)(param_1 + 0x1d) == '\x02')" ( (binary_expression "*(char *)(param_1 + 0x1d) == '\x02'" (pointer_expression "*(char *)(param_1 + 0x1d)" * (cast_expression "(char *)(param_1 + 0x1d)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1d)" ( (binary_expression "param_1 + 0x1d" identifier + number_literal) )))) == (char_literal "'\x02'" ' escape_sequence ')) )) (compound_statement "{\n      DAT_00196f88 = FUN_00154c60;\n      DAT_00196f90 = FUN_00155250;\n    }" { (expression_statement "DAT_00196f88 = FUN_00154c60;" (assignment_expression "DAT_00196f88 = FUN_00154c60" identifier = identifier) ;) (expression_statement "DAT_00196f90 = FUN_00155250;" (assignment_expression "DAT_00196f90 = FUN_00155250" identifier = identifier) ;) }) (else_clause "else {\n      DAT_00196f88 = FUN_001552c0;\n      DAT_00196f90 = FUN_001551b0;\n    }" else (compound_statement "{\n      DAT_00196f88 = FUN_001552c0;\n      DAT_00196f90 = FUN_001551b0;\n    }" { (expression_statement "DAT_00196f88 = FUN_001552c0;" (assignment_expression "DAT_00196f88 = FUN_001552c0" identifier = identifier) ;) (expression_statement "DAT_00196f90 = FUN_001551b0;" (assignment_expression "DAT_00196f90 = FUN_001551b0" identifier = identifier) ;) }))) (expression_statement "bVar5 = *(char *)(param_1 + 0x1c) == '\x02';" (assignment_expression "bVar5 = *(char *)(param_1 + 0x1c) == '\x02'" identifier = (binary_expression "*(char *)(param_1 + 0x1c) == '\x02'" (pointer_expression "*(char *)(param_1 + 0x1c)" * (cast_expression "(char *)(param_1 + 0x1c)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1c)" ( (binary_expression "param_1 + 0x1c" identifier + number_literal) )))) == (char_literal "'\x02'" ' escape_sequence '))) ;) (expression_statement "DAT_0019345c = (uint)!bVar5;" (assignment_expression "DAT_0019345c = (uint)!bVar5" identifier = (cast_expression "(uint)!bVar5" ( (type_descriptor "uint" type_identifier) ) (unary_expression "!bVar5" ! identifier))) ;) (if_statement "if (bVar5) {\n      sVar3 = fread(local_48,0x30,1,*(FILE **)(param_1 + 8));\n      if (sVar3 != 1) {\n        return 0;\n      }\n      uVar1 = (*DAT_00196f88)(local_48,2);\n      *(undefined2 *)(param_1 + 0x50) = uVar1;\n      uVar1 = (*DAT_00196f88)(local_46,2);\n      *(undefined2 *)(param_1 + 0x52) = uVar1;\n      uVar4 = (*DAT_00196f88)(local_44,4);\n      *(undefined8 *)(param_1 + 0x40) = uVar4;\n      uVar4 = (*DAT_00196f88)(local_40,8);\n      *(undefined8 *)(param_1 + 0x28) = uVar4;\n      uVar4 = (*DAT_00196f88)(local_38,8);\n      *(undefined8 *)(param_1 + 0x30) = uVar4;\n      uVar4 = (*DAT_00196f88)(local_30,8);\n      *(undefined8 *)(param_1 + 0x38) = uVar4;\n      uVar4 = (*DAT_00196f88)(local_28,4);\n      *(undefined8 *)(param_1 + 0x48) = uVar4;\n      uVar2 = (*DAT_00196f88)(local_24,2);\n      *(undefined4 *)(param_1 + 0x54) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_22,2);\n      *(undefined4 *)(param_1 + 0x58) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_20,2);\n      *(undefined4 *)(param_1 + 0x5c) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_1e,2);\n      *(undefined4 *)(param_1 + 0x60) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_1c,2);\n      *(undefined4 *)(param_1 + 100) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_1a,2);\n      *(undefined4 *)(param_1 + 0x68) = uVar2;\n    }\n    else {\n      sVar3 = fread(local_48,0x24,1,*(FILE **)(param_1 + 8));\n      if (sVar3 != 1) {\n        return 0;\n      }\n      uVar1 = (*DAT_00196f88)(local_48,2);\n      *(undefined2 *)(param_1 + 0x50) = uVar1;\n      uVar1 = (*DAT_00196f88)(local_46,2);\n      *(undefined2 *)(param_1 + 0x52) = uVar1;\n      uVar4 = (*DAT_00196f88)(local_44,4);\n      *(undefined8 *)(param_1 + 0x40) = uVar4;\n      uVar4 = (*DAT_00196f88)(local_40,4);\n      *(undefined8 *)(param_1 + 0x28) = uVar4;\n      uVar4 = (*DAT_00196f88)(local_3c,4);\n      *(undefined8 *)(param_1 + 0x30) = uVar4;\n      uVar4 = (*DAT_00196f88)(local_38,4);\n      *(undefined8 *)(param_1 + 0x38) = uVar4;\n      uVar4 = (*DAT_00196f88)(local_34,4);\n      *(undefined8 *)(param_1 + 0x48) = uVar4;\n      uVar2 = (*DAT_00196f88)(local_30,2);\n      *(undefined4 *)(param_1 + 0x54) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_2e,2);\n      *(undefined4 *)(param_1 + 0x58) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_2c,2);\n      *(undefined4 *)(param_1 + 0x5c) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_2a,2);\n      *(undefined4 *)(param_1 + 0x60) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_28,2);\n      *(undefined4 *)(param_1 + 100) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_26,2);\n      *(undefined4 *)(param_1 + 0x68) = uVar2;\n    }" if (parenthesized_expression "(bVar5)" ( identifier )) (compound_statement "{\n      sVar3 = fread(local_48,0x30,1,*(FILE **)(param_1 + 8));\n      if (sVar3 != 1) {\n        return 0;\n      }\n      uVar1 = (*DAT_00196f88)(local_48,2);\n      *(undefined2 *)(param_1 + 0x50) = uVar1;\n      uVar1 = (*DAT_00196f88)(local_46,2);\n      *(undefined2 *)(param_1 + 0x52) = uVar1;\n      uVar4 = (*DAT_00196f88)(local_44,4);\n      *(undefined8 *)(param_1 + 0x40) = uVar4;\n      uVar4 = (*DAT_00196f88)(local_40,8);\n      *(undefined8 *)(param_1 + 0x28) = uVar4;\n      uVar4 = (*DAT_00196f88)(local_38,8);\n      *(undefined8 *)(param_1 + 0x30) = uVar4;\n      uVar4 = (*DAT_00196f88)(local_30,8);\n      *(undefined8 *)(param_1 + 0x38) = uVar4;\n      uVar4 = (*DAT_00196f88)(local_28,4);\n      *(undefined8 *)(param_1 + 0x48) = uVar4;\n      uVar2 = (*DAT_00196f88)(local_24,2);\n      *(undefined4 *)(param_1 + 0x54) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_22,2);\n      *(undefined4 *)(param_1 + 0x58) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_20,2);\n      *(undefined4 *)(param_1 + 0x5c) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_1e,2);\n      *(undefined4 *)(param_1 + 0x60) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_1c,2);\n      *(undefined4 *)(param_1 + 100) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_1a,2);\n      *(undefined4 *)(param_1 + 0x68) = uVar2;\n    }" { (expression_statement "sVar3 = fread(local_48,0x30,1,*(FILE **)(param_1 + 8));" (assignment_expression "sVar3 = fread(local_48,0x30,1,*(FILE **)(param_1 + 8))" identifier = (call_expression "fread(local_48,0x30,1,*(FILE **)(param_1 + 8))" identifier (argument_list "(local_48,0x30,1,*(FILE **)(param_1 + 8))" ( identifier , number_literal , number_literal , (pointer_expression "*(FILE **)(param_1 + 8)" * (cast_expression "(FILE **)(param_1 + 8)" ( (type_descriptor "FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) )))) ;) (if_statement "if (sVar3 != 1) {\n        return 0;\n      }" if (parenthesized_expression "(sVar3 != 1)" ( (binary_expression "sVar3 != 1" identifier != number_literal) )) (compound_statement "{\n        return 0;\n      }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "uVar1 = (*DAT_00196f88)(local_48,2);" (assignment_expression "uVar1 = (*DAT_00196f88)(local_48,2)" identifier = (call_expression "(*DAT_00196f88)(local_48,2)" (parenthesized_expression "(*DAT_00196f88)" ( (pointer_expression "*DAT_00196f88" * identifier) )) (argument_list "(local_48,2)" ( identifier , number_literal )))) ;) (expression_statement "*(undefined2 *)(param_1 + 0x50) = uVar1;" (assignment_expression "*(undefined2 *)(param_1 + 0x50) = uVar1" (pointer_expression "*(undefined2 *)(param_1 + 0x50)" * (cast_expression "(undefined2 *)(param_1 + 0x50)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x50)" ( (binary_expression "param_1 + 0x50" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar1 = (*DAT_00196f88)(local_46,2);" (assignment_expression "uVar1 = (*DAT_00196f88)(local_46,2)" identifier = (call_expression "(*DAT_00196f88)(local_46,2)" (parenthesized_expression "(*DAT_00196f88)" ( (pointer_expression "*DAT_00196f88" * identifier) )) (argument_list "(local_46,2)" ( identifier , number_literal )))) ;) (expression_statement "*(undefined2 *)(param_1 + 0x52) = uVar1;" (assignment_expression "*(undefined2 *)(param_1 + 0x52) = uVar1" (pointer_expression "*(undefined2 *)(param_1 + 0x52)" * (cast_expression "(undefined2 *)(param_1 + 0x52)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x52)" ( (binary_expression "param_1 + 0x52" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar4 = (*DAT_00196f88)(local_44,4);" (assignment_expression "uVar4 = (*DAT_00196f88)(local_44,4)" identifier = (call_expression "(*DAT_00196f88)(local_44,4)" (parenthesized_expression "(*DAT_00196f88)" ( (pointer_expression "*DAT_00196f88" * identifier) )) (argument_list "(local_44,4)" ( identifier , number_literal )))) ;) (expression_statement "*(undefined8 *)(param_1 + 0x40) = uVar4;" (assignment_expression "*(undefined8 *)(param_1 + 0x40) = uVar4" (pointer_expression "*(undefined8 *)(param_1 + 0x40)" * (cast_expression "(undefined8 *)(param_1 + 0x40)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x40)" ( (binary_expression "param_1 + 0x40" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar4 = (*DAT_00196f88)(local_40,8);" (assignment_expression "uVar4 = (*DAT_00196f88)(local_40,8)" identifier = (call_expression "(*DAT_00196f88)(local_40,8)" (parenthesized_expression "(*DAT_00196f88)" ( (pointer_expression "*DAT_00196f88" * identifier) )) (argument_list "(local_40,8)" ( identifier , number_literal )))) ;) (expression_statement "*(undefined8 *)(param_1 + 0x28) = uVar4;" (assignment_expression "*(undefined8 *)(param_1 + 0x28) = uVar4" (pointer_expression "*(undefined8 *)(param_1 + 0x28)" * (cast_expression "(undefined8 *)(param_1 + 0x28)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar4 = (*DAT_00196f88)(local_38,8);" (assignment_expression "uVar4 = (*DAT_00196f88)(local_38,8)" identifier = (call_expression "(*DAT_00196f88)(local_38,8)" (parenthesized_expression "(*DAT_00196f88)" ( (pointer_expression "*DAT_00196f88" * identifier) )) (argument_list "(local_38,8)" ( identifier , number_literal )))) ;) (expression_statement "*(undefined8 *)(param_1 + 0x30) = uVar4;" (assignment_expression "*(undefined8 *)(param_1 + 0x30) = uVar4" (pointer_expression "*(undefined8 *)(param_1 + 0x30)" * (cast_expression "(undefined8 *)(param_1 + 0x30)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x30)" ( (binary_expression "param_1 + 0x30" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar4 = (*DAT_00196f88)(local_30,8);" (assignment_expression "uVar4 = (*DAT_00196f88)(local_30,8)" identifier = (call_expression "(*DAT_00196f88)(local_30,8)" (parenthesized_expression "(*DAT_00196f88)" ( (pointer_expression "*DAT_00196f88" * identifier) )) (argument_list "(local_30,8)" ( identifier , number_literal )))) ;) (expression_statement "*(undefined8 *)(param_1 + 0x38) = uVar4;" (assignment_expression "*(undefined8 *)(param_1 + 0x38) = uVar4" (pointer_expression "*(undefined8 *)(param_1 + 0x38)" * (cast_expression "(undefined8 *)(param_1 + 0x38)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x38)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar4 = (*DAT_00196f88)(local_28,4);" (assignment_expression "uVar4 = (*DAT_00196f88)(local_28,4)" identifier = (call_expression "(*DAT_00196f88)(local_28,4)" (parenthesized_expression "(*DAT_00196f88)" ( (pointer_expression "*DAT_00196f88" * identifier) )) (argument_list "(local_28,4)" ( identifier , number_literal )))) ;) (expression_statement "*(undefined8 *)(param_1 + 0x48) = uVar4;" (assignment_expression "*(undefined8 *)(param_1 + 0x48) = uVar4" (pointer_expression "*(undefined8 *)(param_1 + 0x48)" * (cast_expression "(undefined8 *)(param_1 + 0x48)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x48)" ( (binary_expression "param_1 + 0x48" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar2 = (*DAT_00196f88)(local_24,2);" (assignment_expression "uVar2 = (*DAT_00196f88)(local_24,2)" identifier = (call_expression "(*DAT_00196f88)(local_24,2)" (parenthesized_expression "(*DAT_00196f88)" ( (pointer_expression "*DAT_00196f88" * identifier) )) (argument_list "(local_24,2)" ( identifier , number_literal )))) ;) (expression_statement "*(undefined4 *)(param_1 + 0x54) = uVar2;" (assignment_expression "*(undefined4 *)(param_1 + 0x54) = uVar2" (pointer_expression "*(undefined4 *)(param_1 + 0x54)" * (cast_expression "(undefined4 *)(param_1 + 0x54)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x54)" ( (binary_expression "param_1 + 0x54" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar2 = (*DAT_00196f88)(local_22,2);" (assignment_expression "uVar2 = (*DAT_00196f88)(local_22,2)" identifier = (call_expression "(*DAT_00196f88)(local_22,2)" (parenthesized_expression "(*DAT_00196f88)" ( (pointer_expression "*DAT_00196f88" * identifier) )) (argument_list "(local_22,2)" ( identifier , number_literal )))) ;) (expression_statement "*(undefined4 *)(param_1 + 0x58) = uVar2;" (assignment_expression "*(undefined4 *)(param_1 + 0x58) = uVar2" (pointer_expression "*(undefined4 *)(param_1 + 0x58)" * (cast_expression "(undefined4 *)(param_1 + 0x58)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x58)" ( (binary_expression "param_1 + 0x58" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar2 = (*DAT_00196f88)(local_20,2);" (assignment_expression "uVar2 = (*DAT_00196f88)(local_20,2)" identifier = (call_expression "(*DAT_00196f88)(local_20,2)" (parenthesized_expression "(*DAT_00196f88)" ( (pointer_expression "*DAT_00196f88" * identifier) )) (argument_list "(local_20,2)" ( identifier , number_literal )))) ;) (expression_statement "*(undefined4 *)(param_1 + 0x5c) = uVar2;" (assignment_expression "*(undefined4 *)(param_1 + 0x5c) = uVar2" (pointer_expression "*(undefined4 *)(param_1 + 0x5c)" * (cast_expression "(undefined4 *)(param_1 + 0x5c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x5c)" ( (binary_expression "param_1 + 0x5c" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar2 = (*DAT_00196f88)(local_1e,2);" (assignment_expression "uVar2 = (*DAT_00196f88)(local_1e,2)" identifier = (call_expression "(*DAT_00196f88)(local_1e,2)" (parenthesized_expression "(*DAT_00196f88)" ( (pointer_expression "*DAT_00196f88" * identifier) )) (argument_list "(local_1e,2)" ( identifier , number_literal )))) ;) (expression_statement "*(undefined4 *)(param_1 + 0x60) = uVar2;" (assignment_expression "*(undefined4 *)(param_1 + 0x60) = uVar2" (pointer_expression "*(undefined4 *)(param_1 + 0x60)" * (cast_expression "(undefined4 *)(param_1 + 0x60)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x60)" ( (binary_expression "param_1 + 0x60" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar2 = (*DAT_00196f88)(local_1c,2);" (assignment_expression "uVar2 = (*DAT_00196f88)(local_1c,2)" identifier = (call_expression "(*DAT_00196f88)(local_1c,2)" (parenthesized_expression "(*DAT_00196f88)" ( (pointer_expression "*DAT_00196f88" * identifier) )) (argument_list "(local_1c,2)" ( identifier , number_literal )))) ;) (expression_statement "*(undefined4 *)(param_1 + 100) = uVar2;" (assignment_expression "*(undefined4 *)(param_1 + 100) = uVar2" (pointer_expression "*(undefined4 *)(param_1 + 100)" * (cast_expression "(undefined4 *)(param_1 + 100)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 100)" ( (binary_expression "param_1 + 100" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar2 = (*DAT_00196f88)(local_1a,2);" (assignment_expression "uVar2 = (*DAT_00196f88)(local_1a,2)" identifier = (call_expression "(*DAT_00196f88)(local_1a,2)" (parenthesized_expression "(*DAT_00196f88)" ( (pointer_expression "*DAT_00196f88" * identifier) )) (argument_list "(local_1a,2)" ( identifier , number_literal )))) ;) (expression_statement "*(undefined4 *)(param_1 + 0x68) = uVar2;" (assignment_expression "*(undefined4 *)(param_1 + 0x68) = uVar2" (pointer_expression "*(undefined4 *)(param_1 + 0x68)" * (cast_expression "(undefined4 *)(param_1 + 0x68)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x68)" ( (binary_expression "param_1 + 0x68" identifier + number_literal) )))) = identifier) ;) }) (else_clause "else {\n      sVar3 = fread(local_48,0x24,1,*(FILE **)(param_1 + 8));\n      if (sVar3 != 1) {\n        return 0;\n      }\n      uVar1 = (*DAT_00196f88)(local_48,2);\n      *(undefined2 *)(param_1 + 0x50) = uVar1;\n      uVar1 = (*DAT_00196f88)(local_46,2);\n      *(undefined2 *)(param_1 + 0x52) = uVar1;\n      uVar4 = (*DAT_00196f88)(local_44,4);\n      *(undefined8 *)(param_1 + 0x40) = uVar4;\n      uVar4 = (*DAT_00196f88)(local_40,4);\n      *(undefined8 *)(param_1 + 0x28) = uVar4;\n      uVar4 = (*DAT_00196f88)(local_3c,4);\n      *(undefined8 *)(param_1 + 0x30) = uVar4;\n      uVar4 = (*DAT_00196f88)(local_38,4);\n      *(undefined8 *)(param_1 + 0x38) = uVar4;\n      uVar4 = (*DAT_00196f88)(local_34,4);\n      *(undefined8 *)(param_1 + 0x48) = uVar4;\n      uVar2 = (*DAT_00196f88)(local_30,2);\n      *(undefined4 *)(param_1 + 0x54) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_2e,2);\n      *(undefined4 *)(param_1 + 0x58) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_2c,2);\n      *(undefined4 *)(param_1 + 0x5c) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_2a,2);\n      *(undefined4 *)(param_1 + 0x60) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_28,2);\n      *(undefined4 *)(param_1 + 100) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_26,2);\n      *(undefined4 *)(param_1 + 0x68) = uVar2;\n    }" else (compound_statement "{\n      sVar3 = fread(local_48,0x24,1,*(FILE **)(param_1 + 8));\n      if (sVar3 != 1) {\n        return 0;\n      }\n      uVar1 = (*DAT_00196f88)(local_48,2);\n      *(undefined2 *)(param_1 + 0x50) = uVar1;\n      uVar1 = (*DAT_00196f88)(local_46,2);\n      *(undefined2 *)(param_1 + 0x52) = uVar1;\n      uVar4 = (*DAT_00196f88)(local_44,4);\n      *(undefined8 *)(param_1 + 0x40) = uVar4;\n      uVar4 = (*DAT_00196f88)(local_40,4);\n      *(undefined8 *)(param_1 + 0x28) = uVar4;\n      uVar4 = (*DAT_00196f88)(local_3c,4);\n      *(undefined8 *)(param_1 + 0x30) = uVar4;\n      uVar4 = (*DAT_00196f88)(local_38,4);\n      *(undefined8 *)(param_1 + 0x38) = uVar4;\n      uVar4 = (*DAT_00196f88)(local_34,4);\n      *(undefined8 *)(param_1 + 0x48) = uVar4;\n      uVar2 = (*DAT_00196f88)(local_30,2);\n      *(undefined4 *)(param_1 + 0x54) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_2e,2);\n      *(undefined4 *)(param_1 + 0x58) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_2c,2);\n      *(undefined4 *)(param_1 + 0x5c) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_2a,2);\n      *(undefined4 *)(param_1 + 0x60) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_28,2);\n      *(undefined4 *)(param_1 + 100) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_26,2);\n      *(undefined4 *)(param_1 + 0x68) = uVar2;\n    }" { (expression_statement "sVar3 = fread(local_48,0x24,1,*(FILE **)(param_1 + 8));" (assignment_expression "sVar3 = fread(local_48,0x24,1,*(FILE **)(param_1 + 8))" identifier = (call_expression "fread(local_48,0x24,1,*(FILE **)(param_1 + 8))" identifier (argument_list "(local_48,0x24,1,*(FILE **)(param_1 + 8))" ( identifier , number_literal , number_literal , (pointer_expression "*(FILE **)(param_1 + 8)" * (cast_expression "(FILE **)(param_1 + 8)" ( (type_descriptor "FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) )))) ;) (if_statement "if (sVar3 != 1) {\n        return 0;\n      }" if (parenthesized_expression "(sVar3 != 1)" ( (binary_expression "sVar3 != 1" identifier != number_literal) )) (compound_statement "{\n        return 0;\n      }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "uVar1 = (*DAT_00196f88)(local_48,2);" (assignment_expression "uVar1 = (*DAT_00196f88)(local_48,2)" identifier = (call_expression "(*DAT_00196f88)(local_48,2)" (parenthesized_expression "(*DAT_00196f88)" ( (pointer_expression "*DAT_00196f88" * identifier) )) (argument_list "(local_48,2)" ( identifier , number_literal )))) ;) (expression_statement "*(undefined2 *)(param_1 + 0x50) = uVar1;" (assignment_expression "*(undefined2 *)(param_1 + 0x50) = uVar1" (pointer_expression "*(undefined2 *)(param_1 + 0x50)" * (cast_expression "(undefined2 *)(param_1 + 0x50)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x50)" ( (binary_expression "param_1 + 0x50" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar1 = (*DAT_00196f88)(local_46,2);" (assignment_expression "uVar1 = (*DAT_00196f88)(local_46,2)" identifier = (call_expression "(*DAT_00196f88)(local_46,2)" (parenthesized_expression "(*DAT_00196f88)" ( (pointer_expression "*DAT_00196f88" * identifier) )) (argument_list "(local_46,2)" ( identifier , number_literal )))) ;) (expression_statement "*(undefined2 *)(param_1 + 0x52) = uVar1;" (assignment_expression "*(undefined2 *)(param_1 + 0x52) = uVar1" (pointer_expression "*(undefined2 *)(param_1 + 0x52)" * (cast_expression "(undefined2 *)(param_1 + 0x52)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x52)" ( (binary_expression "param_1 + 0x52" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar4 = (*DAT_00196f88)(local_44,4);" (assignment_expression "uVar4 = (*DAT_00196f88)(local_44,4)" identifier = (call_expression "(*DAT_00196f88)(local_44,4)" (parenthesized_expression "(*DAT_00196f88)" ( (pointer_expression "*DAT_00196f88" * identifier) )) (argument_list "(local_44,4)" ( identifier , number_literal )))) ;) (expression_statement "*(undefined8 *)(param_1 + 0x40) = uVar4;" (assignment_expression "*(undefined8 *)(param_1 + 0x40) = uVar4" (pointer_expression "*(undefined8 *)(param_1 + 0x40)" * (cast_expression "(undefined8 *)(param_1 + 0x40)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x40)" ( (binary_expression "param_1 + 0x40" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar4 = (*DAT_00196f88)(local_40,4);" (assignment_expression "uVar4 = (*DAT_00196f88)(local_40,4)" identifier = (call_expression "(*DAT_00196f88)(local_40,4)" (parenthesized_expression "(*DAT_00196f88)" ( (pointer_expression "*DAT_00196f88" * identifier) )) (argument_list "(local_40,4)" ( identifier , number_literal )))) ;) (expression_statement "*(undefined8 *)(param_1 + 0x28) = uVar4;" (assignment_expression "*(undefined8 *)(param_1 + 0x28) = uVar4" (pointer_expression "*(undefined8 *)(param_1 + 0x28)" * (cast_expression "(undefined8 *)(param_1 + 0x28)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar4 = (*DAT_00196f88)(local_3c,4);" (assignment_expression "uVar4 = (*DAT_00196f88)(local_3c,4)" identifier = (call_expression "(*DAT_00196f88)(local_3c,4)" (parenthesized_expression "(*DAT_00196f88)" ( (pointer_expression "*DAT_00196f88" * identifier) )) (argument_list "(local_3c,4)" ( identifier , number_literal )))) ;) (expression_statement "*(undefined8 *)(param_1 + 0x30) = uVar4;" (assignment_expression "*(undefined8 *)(param_1 + 0x30) = uVar4" (pointer_expression "*(undefined8 *)(param_1 + 0x30)" * (cast_expression "(undefined8 *)(param_1 + 0x30)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x30)" ( (binary_expression "param_1 + 0x30" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar4 = (*DAT_00196f88)(local_38,4);" (assignment_expression "uVar4 = (*DAT_00196f88)(local_38,4)" identifier = (call_expression "(*DAT_00196f88)(local_38,4)" (parenthesized_expression "(*DAT_00196f88)" ( (pointer_expression "*DAT_00196f88" * identifier) )) (argument_list "(local_38,4)" ( identifier , number_literal )))) ;) (expression_statement "*(undefined8 *)(param_1 + 0x38) = uVar4;" (assignment_expression "*(undefined8 *)(param_1 + 0x38) = uVar4" (pointer_expression "*(undefined8 *)(param_1 + 0x38)" * (cast_expression "(undefined8 *)(param_1 + 0x38)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x38)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar4 = (*DAT_00196f88)(local_34,4);" (assignment_expression "uVar4 = (*DAT_00196f88)(local_34,4)" identifier = (call_expression "(*DAT_00196f88)(local_34,4)" (parenthesized_expression "(*DAT_00196f88)" ( (pointer_expression "*DAT_00196f88" * identifier) )) (argument_list "(local_34,4)" ( identifier , number_literal )))) ;) (expression_statement "*(undefined8 *)(param_1 + 0x48) = uVar4;" (assignment_expression "*(undefined8 *)(param_1 + 0x48) = uVar4" (pointer_expression "*(undefined8 *)(param_1 + 0x48)" * (cast_expression "(undefined8 *)(param_1 + 0x48)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x48)" ( (binary_expression "param_1 + 0x48" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar2 = (*DAT_00196f88)(local_30,2);" (assignment_expression "uVar2 = (*DAT_00196f88)(local_30,2)" identifier = (call_expression "(*DAT_00196f88)(local_30,2)" (parenthesized_expression "(*DAT_00196f88)" ( (pointer_expression "*DAT_00196f88" * identifier) )) (argument_list "(local_30,2)" ( identifier , number_literal )))) ;) (expression_statement "*(undefined4 *)(param_1 + 0x54) = uVar2;" (assignment_expression "*(undefined4 *)(param_1 + 0x54) = uVar2" (pointer_expression "*(undefined4 *)(param_1 + 0x54)" * (cast_expression "(undefined4 *)(param_1 + 0x54)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x54)" ( (binary_expression "param_1 + 0x54" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar2 = (*DAT_00196f88)(local_2e,2);" (assignment_expression "uVar2 = (*DAT_00196f88)(local_2e,2)" identifier = (call_expression "(*DAT_00196f88)(local_2e,2)" (parenthesized_expression "(*DAT_00196f88)" ( (pointer_expression "*DAT_00196f88" * identifier) )) (argument_list "(local_2e,2)" ( identifier , number_literal )))) ;) (expression_statement "*(undefined4 *)(param_1 + 0x58) = uVar2;" (assignment_expression "*(undefined4 *)(param_1 + 0x58) = uVar2" (pointer_expression "*(undefined4 *)(param_1 + 0x58)" * (cast_expression "(undefined4 *)(param_1 + 0x58)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x58)" ( (binary_expression "param_1 + 0x58" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar2 = (*DAT_00196f88)(local_2c,2);" (assignment_expression "uVar2 = (*DAT_00196f88)(local_2c,2)" identifier = (call_expression "(*DAT_00196f88)(local_2c,2)" (parenthesized_expression "(*DAT_00196f88)" ( (pointer_expression "*DAT_00196f88" * identifier) )) (argument_list "(local_2c,2)" ( identifier , number_literal )))) ;) (expression_statement "*(undefined4 *)(param_1 + 0x5c) = uVar2;" (assignment_expression "*(undefined4 *)(param_1 + 0x5c) = uVar2" (pointer_expression "*(undefined4 *)(param_1 + 0x5c)" * (cast_expression "(undefined4 *)(param_1 + 0x5c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x5c)" ( (binary_expression "param_1 + 0x5c" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar2 = (*DAT_00196f88)(local_2a,2);" (assignment_expression "uVar2 = (*DAT_00196f88)(local_2a,2)" identifier = (call_expression "(*DAT_00196f88)(local_2a,2)" (parenthesized_expression "(*DAT_00196f88)" ( (pointer_expression "*DAT_00196f88" * identifier) )) (argument_list "(local_2a,2)" ( identifier , number_literal )))) ;) (expression_statement "*(undefined4 *)(param_1 + 0x60) = uVar2;" (assignment_expression "*(undefined4 *)(param_1 + 0x60) = uVar2" (pointer_expression "*(undefined4 *)(param_1 + 0x60)" * (cast_expression "(undefined4 *)(param_1 + 0x60)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x60)" ( (binary_expression "param_1 + 0x60" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar2 = (*DAT_00196f88)(local_28,2);" (assignment_expression "uVar2 = (*DAT_00196f88)(local_28,2)" identifier = (call_expression "(*DAT_00196f88)(local_28,2)" (parenthesized_expression "(*DAT_00196f88)" ( (pointer_expression "*DAT_00196f88" * identifier) )) (argument_list "(local_28,2)" ( identifier , number_literal )))) ;) (expression_statement "*(undefined4 *)(param_1 + 100) = uVar2;" (assignment_expression "*(undefined4 *)(param_1 + 100) = uVar2" (pointer_expression "*(undefined4 *)(param_1 + 100)" * (cast_expression "(undefined4 *)(param_1 + 100)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 100)" ( (binary_expression "param_1 + 100" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar2 = (*DAT_00196f88)(local_26,2);" (assignment_expression "uVar2 = (*DAT_00196f88)(local_26,2)" identifier = (call_expression "(*DAT_00196f88)(local_26,2)" (parenthesized_expression "(*DAT_00196f88)" ( (pointer_expression "*DAT_00196f88" * identifier) )) (argument_list "(local_26,2)" ( identifier , number_literal )))) ;) (expression_statement "*(undefined4 *)(param_1 + 0x68) = uVar2;" (assignment_expression "*(undefined4 *)(param_1 + 0x68) = uVar2" (pointer_expression "*(undefined4 *)(param_1 + 0x68)" * (cast_expression "(undefined4 *)(param_1 + 0x68)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x68)" ( (binary_expression "param_1 + 0x68" identifier + number_literal) )))) = identifier) ;) }))) (expression_statement "uVar4 = 1;" (assignment_expression "uVar4 = 1" identifier = number_literal) ;) (if_statement "if (*(long *)(param_1 + 0x38) != 0) {\n      if (DAT_0019345c == 0) {\n        FUN_00115940(param_1,1);\n      }\n      else {\n        FUN_00115650();\n      }\n    }" if (parenthesized_expression "(*(long *)(param_1 + 0x38) != 0)" ( (binary_expression "*(long *)(param_1 + 0x38) != 0" (pointer_expression "*(long *)(param_1 + 0x38)" * (cast_expression "(long *)(param_1 + 0x38)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x38)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n      if (DAT_0019345c == 0) {\n        FUN_00115940(param_1,1);\n      }\n      else {\n        FUN_00115650();\n      }\n    }" { (if_statement "if (DAT_0019345c == 0) {\n        FUN_00115940(param_1,1);\n      }\n      else {\n        FUN_00115650();\n      }" if (parenthesized_expression "(DAT_0019345c == 0)" ( (binary_expression "DAT_0019345c == 0" identifier == number_literal) )) (compound_statement "{\n        FUN_00115940(param_1,1);\n      }" { (expression_statement "FUN_00115940(param_1,1);" (call_expression "FUN_00115940(param_1,1)" identifier (argument_list "(param_1,1)" ( identifier , number_literal ))) ;) }) (else_clause "else {\n        FUN_00115650();\n      }" else (compound_statement "{\n        FUN_00115650();\n      }" { (expression_statement "FUN_00115650();" (call_expression "FUN_00115650()" identifier (argument_list "()" ( ))) ;) }))) })) })) (return_statement "return uVar4;" return identifier ;) })))
(translation_unit "bfd_boolean get_file_header(Filedata *filedata)\n\n{\n  uchar *__ptr;\n  size_t sVar1;\n  elf_vma eVar2;\n  bfd_boolean bVar3;\n  bool bVar4;\n  Elf32_External_Ehdr ehdr32;\n  uchar local_24 [2];\n  uchar local_22 [2];\n  uchar local_20 [2];\n  uchar local_1e [2];\n  uchar local_1c [2];\n  uchar local_1a [2];\n  \n  bVar3 = 0;\n  sVar1 = fread(&filedata->file_header,0x10,1,(FILE *)filedata->handle);\n  if (sVar1 == 1) {\n    if ((filedata->file_header).e_ident[5] == '\x02') {\n      byte_get = byte_get_big_endian;\n      byte_put = byte_put_big_endian;\n    }\n    else {\n      byte_get = byte_get_little_endian;\n      byte_put = byte_put_little_endian;\n    }\n    __ptr = ehdr32.e_type;\n    bVar4 = (filedata->file_header).e_ident[4] == '\x02';\n    is_32bit_elf = (bfd_boolean)!bVar4;\n    if (bVar4) {\n      sVar1 = fread(__ptr,0x30,1,(FILE *)filedata->handle);\n      if (sVar1 != 1) {\n        return 0;\n      }\n      eVar2 = (*byte_get)(__ptr,2);\n      (filedata->file_header).e_type = (ushort)eVar2;\n      eVar2 = (*byte_get)(ehdr32.e_machine,2);\n      (filedata->file_header).e_machine = (ushort)eVar2;\n      eVar2 = (*byte_get)(ehdr32.e_version,4);\n      (filedata->file_header).e_version = eVar2;\n      eVar2 = (*byte_get)(ehdr32.e_entry,8);\n      (filedata->file_header).e_entry = eVar2;\n      eVar2 = (*byte_get)(ehdr32.e_shoff,8);\n      (filedata->file_header).e_phoff = eVar2;\n      eVar2 = (*byte_get)(ehdr32.e_ehsize,8);\n      (filedata->file_header).e_shoff = eVar2;\n      eVar2 = (*byte_get)(ehdr32.e_shnum,4);\n      (filedata->file_header).e_flags = eVar2;\n      eVar2 = (*byte_get)(local_24,2);\n      (filedata->file_header).e_ehsize = (uint)eVar2;\n      eVar2 = (*byte_get)(local_22,2);\n      (filedata->file_header).e_phentsize = (uint)eVar2;\n      eVar2 = (*byte_get)(local_20,2);\n      (filedata->file_header).e_phnum = (uint)eVar2;\n      eVar2 = (*byte_get)(local_1e,2);\n      (filedata->file_header).e_shentsize = (uint)eVar2;\n      eVar2 = (*byte_get)(local_1c,2);\n      (filedata->file_header).e_shnum = (uint)eVar2;\n      eVar2 = (*byte_get)(local_1a,2);\n      (filedata->file_header).e_shstrndx = (uint)eVar2;\n    }\n    else {\n      sVar1 = fread(__ptr,0x24,1,(FILE *)filedata->handle);\n      if (sVar1 != 1) {\n        return 0;\n      }\n      eVar2 = (*byte_get)(__ptr,2);\n      (filedata->file_header).e_type = (ushort)eVar2;\n      eVar2 = (*byte_get)(ehdr32.e_machine,2);\n      (filedata->file_header).e_machine = (ushort)eVar2;\n      eVar2 = (*byte_get)(ehdr32.e_version,4);\n      (filedata->file_header).e_version = eVar2;\n      eVar2 = (*byte_get)(ehdr32.e_entry,4);\n      (filedata->file_header).e_entry = eVar2;\n      eVar2 = (*byte_get)(ehdr32.e_phoff,4);\n      (filedata->file_header).e_phoff = eVar2;\n      eVar2 = (*byte_get)(ehdr32.e_shoff,4);\n      (filedata->file_header).e_shoff = eVar2;\n      eVar2 = (*byte_get)(ehdr32.e_flags,4);\n      (filedata->file_header).e_flags = eVar2;\n      eVar2 = (*byte_get)(ehdr32.e_ehsize,2);\n      (filedata->file_header).e_ehsize = (uint)eVar2;\n      eVar2 = (*byte_get)(ehdr32.e_phentsize,2);\n      (filedata->file_header).e_phentsize = (uint)eVar2;\n      eVar2 = (*byte_get)(ehdr32.e_phnum,2);\n      (filedata->file_header).e_phnum = (uint)eVar2;\n      eVar2 = (*byte_get)(ehdr32.e_shentsize,2);\n      (filedata->file_header).e_shentsize = (uint)eVar2;\n      eVar2 = (*byte_get)(ehdr32.e_shnum,2);\n      (filedata->file_header).e_shnum = (uint)eVar2;\n      eVar2 = (*byte_get)(ehdr32.e_shstrndx,2);\n      (filedata->file_header).e_shstrndx = (uint)eVar2;\n    }\n    bVar3 = 1;\n    if ((filedata->file_header).e_shoff != 0) {\n      if (is_32bit_elf == 0) {\n        get_64bit_section_headers(filedata,1);\n      }\n      else {\n        get_32bit_section_headers(filedata,1);\n      }\n    }\n  }\n  return bVar3;\n}\n\n" (function_definition "bfd_boolean get_file_header(Filedata *filedata)\n\n{\n  uchar *__ptr;\n  size_t sVar1;\n  elf_vma eVar2;\n  bfd_boolean bVar3;\n  bool bVar4;\n  Elf32_External_Ehdr ehdr32;\n  uchar local_24 [2];\n  uchar local_22 [2];\n  uchar local_20 [2];\n  uchar local_1e [2];\n  uchar local_1c [2];\n  uchar local_1a [2];\n  \n  bVar3 = 0;\n  sVar1 = fread(&filedata->file_header,0x10,1,(FILE *)filedata->handle);\n  if (sVar1 == 1) {\n    if ((filedata->file_header).e_ident[5] == '\x02') {\n      byte_get = byte_get_big_endian;\n      byte_put = byte_put_big_endian;\n    }\n    else {\n      byte_get = byte_get_little_endian;\n      byte_put = byte_put_little_endian;\n    }\n    __ptr = ehdr32.e_type;\n    bVar4 = (filedata->file_header).e_ident[4] == '\x02';\n    is_32bit_elf = (bfd_boolean)!bVar4;\n    if (bVar4) {\n      sVar1 = fread(__ptr,0x30,1,(FILE *)filedata->handle);\n      if (sVar1 != 1) {\n        return 0;\n      }\n      eVar2 = (*byte_get)(__ptr,2);\n      (filedata->file_header).e_type = (ushort)eVar2;\n      eVar2 = (*byte_get)(ehdr32.e_machine,2);\n      (filedata->file_header).e_machine = (ushort)eVar2;\n      eVar2 = (*byte_get)(ehdr32.e_version,4);\n      (filedata->file_header).e_version = eVar2;\n      eVar2 = (*byte_get)(ehdr32.e_entry,8);\n      (filedata->file_header).e_entry = eVar2;\n      eVar2 = (*byte_get)(ehdr32.e_shoff,8);\n      (filedata->file_header).e_phoff = eVar2;\n      eVar2 = (*byte_get)(ehdr32.e_ehsize,8);\n      (filedata->file_header).e_shoff = eVar2;\n      eVar2 = (*byte_get)(ehdr32.e_shnum,4);\n      (filedata->file_header).e_flags = eVar2;\n      eVar2 = (*byte_get)(local_24,2);\n      (filedata->file_header).e_ehsize = (uint)eVar2;\n      eVar2 = (*byte_get)(local_22,2);\n      (filedata->file_header).e_phentsize = (uint)eVar2;\n      eVar2 = (*byte_get)(local_20,2);\n      (filedata->file_header).e_phnum = (uint)eVar2;\n      eVar2 = (*byte_get)(local_1e,2);\n      (filedata->file_header).e_shentsize = (uint)eVar2;\n      eVar2 = (*byte_get)(local_1c,2);\n      (filedata->file_header).e_shnum = (uint)eVar2;\n      eVar2 = (*byte_get)(local_1a,2);\n      (filedata->file_header).e_shstrndx = (uint)eVar2;\n    }\n    else {\n      sVar1 = fread(__ptr,0x24,1,(FILE *)filedata->handle);\n      if (sVar1 != 1) {\n        return 0;\n      }\n      eVar2 = (*byte_get)(__ptr,2);\n      (filedata->file_header).e_type = (ushort)eVar2;\n      eVar2 = (*byte_get)(ehdr32.e_machine,2);\n      (filedata->file_header).e_machine = (ushort)eVar2;\n      eVar2 = (*byte_get)(ehdr32.e_version,4);\n      (filedata->file_header).e_version = eVar2;\n      eVar2 = (*byte_get)(ehdr32.e_entry,4);\n      (filedata->file_header).e_entry = eVar2;\n      eVar2 = (*byte_get)(ehdr32.e_phoff,4);\n      (filedata->file_header).e_phoff = eVar2;\n      eVar2 = (*byte_get)(ehdr32.e_shoff,4);\n      (filedata->file_header).e_shoff = eVar2;\n      eVar2 = (*byte_get)(ehdr32.e_flags,4);\n      (filedata->file_header).e_flags = eVar2;\n      eVar2 = (*byte_get)(ehdr32.e_ehsize,2);\n      (filedata->file_header).e_ehsize = (uint)eVar2;\n      eVar2 = (*byte_get)(ehdr32.e_phentsize,2);\n      (filedata->file_header).e_phentsize = (uint)eVar2;\n      eVar2 = (*byte_get)(ehdr32.e_phnum,2);\n      (filedata->file_header).e_phnum = (uint)eVar2;\n      eVar2 = (*byte_get)(ehdr32.e_shentsize,2);\n      (filedata->file_header).e_shentsize = (uint)eVar2;\n      eVar2 = (*byte_get)(ehdr32.e_shnum,2);\n      (filedata->file_header).e_shnum = (uint)eVar2;\n      eVar2 = (*byte_get)(ehdr32.e_shstrndx,2);\n      (filedata->file_header).e_shstrndx = (uint)eVar2;\n    }\n    bVar3 = 1;\n    if ((filedata->file_header).e_shoff != 0) {\n      if (is_32bit_elf == 0) {\n        get_64bit_section_headers(filedata,1);\n      }\n      else {\n        get_32bit_section_headers(filedata,1);\n      }\n    }\n  }\n  return bVar3;\n}" type_identifier (function_declarator "get_file_header(Filedata *filedata)" identifier (parameter_list "(Filedata *filedata)" ( (parameter_declaration "Filedata *filedata" type_identifier (pointer_declarator "*filedata" * identifier)) ))) (compound_statement "{\n  uchar *__ptr;\n  size_t sVar1;\n  elf_vma eVar2;\n  bfd_boolean bVar3;\n  bool bVar4;\n  Elf32_External_Ehdr ehdr32;\n  uchar local_24 [2];\n  uchar local_22 [2];\n  uchar local_20 [2];\n  uchar local_1e [2];\n  uchar local_1c [2];\n  uchar local_1a [2];\n  \n  bVar3 = 0;\n  sVar1 = fread(&filedata->file_header,0x10,1,(FILE *)filedata->handle);\n  if (sVar1 == 1) {\n    if ((filedata->file_header).e_ident[5] == '\x02') {\n      byte_get = byte_get_big_endian;\n      byte_put = byte_put_big_endian;\n    }\n    else {\n      byte_get = byte_get_little_endian;\n      byte_put = byte_put_little_endian;\n    }\n    __ptr = ehdr32.e_type;\n    bVar4 = (filedata->file_header).e_ident[4] == '\x02';\n    is_32bit_elf = (bfd_boolean)!bVar4;\n    if (bVar4) {\n      sVar1 = fread(__ptr,0x30,1,(FILE *)filedata->handle);\n      if (sVar1 != 1) {\n        return 0;\n      }\n      eVar2 = (*byte_get)(__ptr,2);\n      (filedata->file_header).e_type = (ushort)eVar2;\n      eVar2 = (*byte_get)(ehdr32.e_machine,2);\n      (filedata->file_header).e_machine = (ushort)eVar2;\n      eVar2 = (*byte_get)(ehdr32.e_version,4);\n      (filedata->file_header).e_version = eVar2;\n      eVar2 = (*byte_get)(ehdr32.e_entry,8);\n      (filedata->file_header).e_entry = eVar2;\n      eVar2 = (*byte_get)(ehdr32.e_shoff,8);\n      (filedata->file_header).e_phoff = eVar2;\n      eVar2 = (*byte_get)(ehdr32.e_ehsize,8);\n      (filedata->file_header).e_shoff = eVar2;\n      eVar2 = (*byte_get)(ehdr32.e_shnum,4);\n      (filedata->file_header).e_flags = eVar2;\n      eVar2 = (*byte_get)(local_24,2);\n      (filedata->file_header).e_ehsize = (uint)eVar2;\n      eVar2 = (*byte_get)(local_22,2);\n      (filedata->file_header).e_phentsize = (uint)eVar2;\n      eVar2 = (*byte_get)(local_20,2);\n      (filedata->file_header).e_phnum = (uint)eVar2;\n      eVar2 = (*byte_get)(local_1e,2);\n      (filedata->file_header).e_shentsize = (uint)eVar2;\n      eVar2 = (*byte_get)(local_1c,2);\n      (filedata->file_header).e_shnum = (uint)eVar2;\n      eVar2 = (*byte_get)(local_1a,2);\n      (filedata->file_header).e_shstrndx = (uint)eVar2;\n    }\n    else {\n      sVar1 = fread(__ptr,0x24,1,(FILE *)filedata->handle);\n      if (sVar1 != 1) {\n        return 0;\n      }\n      eVar2 = (*byte_get)(__ptr,2);\n      (filedata->file_header).e_type = (ushort)eVar2;\n      eVar2 = (*byte_get)(ehdr32.e_machine,2);\n      (filedata->file_header).e_machine = (ushort)eVar2;\n      eVar2 = (*byte_get)(ehdr32.e_version,4);\n      (filedata->file_header).e_version = eVar2;\n      eVar2 = (*byte_get)(ehdr32.e_entry,4);\n      (filedata->file_header).e_entry = eVar2;\n      eVar2 = (*byte_get)(ehdr32.e_phoff,4);\n      (filedata->file_header).e_phoff = eVar2;\n      eVar2 = (*byte_get)(ehdr32.e_shoff,4);\n      (filedata->file_header).e_shoff = eVar2;\n      eVar2 = (*byte_get)(ehdr32.e_flags,4);\n      (filedata->file_header).e_flags = eVar2;\n      eVar2 = (*byte_get)(ehdr32.e_ehsize,2);\n      (filedata->file_header).e_ehsize = (uint)eVar2;\n      eVar2 = (*byte_get)(ehdr32.e_phentsize,2);\n      (filedata->file_header).e_phentsize = (uint)eVar2;\n      eVar2 = (*byte_get)(ehdr32.e_phnum,2);\n      (filedata->file_header).e_phnum = (uint)eVar2;\n      eVar2 = (*byte_get)(ehdr32.e_shentsize,2);\n      (filedata->file_header).e_shentsize = (uint)eVar2;\n      eVar2 = (*byte_get)(ehdr32.e_shnum,2);\n      (filedata->file_header).e_shnum = (uint)eVar2;\n      eVar2 = (*byte_get)(ehdr32.e_shstrndx,2);\n      (filedata->file_header).e_shstrndx = (uint)eVar2;\n    }\n    bVar3 = 1;\n    if ((filedata->file_header).e_shoff != 0) {\n      if (is_32bit_elf == 0) {\n        get_64bit_section_headers(filedata,1);\n      }\n      else {\n        get_32bit_section_headers(filedata,1);\n      }\n    }\n  }\n  return bVar3;\n}" { (declaration "uchar *__ptr;" type_identifier (pointer_declarator "*__ptr" * identifier) ;) (declaration "size_t sVar1;" primitive_type identifier ;) (declaration "elf_vma eVar2;" type_identifier identifier ;) (declaration "bfd_boolean bVar3;" type_identifier identifier ;) (declaration "bool bVar4;" primitive_type identifier ;) (declaration "Elf32_External_Ehdr ehdr32;" type_identifier identifier ;) (declaration "uchar local_24 [2];" type_identifier (array_declarator "local_24 [2]" identifier [ number_literal ]) ;) (declaration "uchar local_22 [2];" type_identifier (array_declarator "local_22 [2]" identifier [ number_literal ]) ;) (declaration "uchar local_20 [2];" type_identifier (array_declarator "local_20 [2]" identifier [ number_literal ]) ;) (declaration "uchar local_1e [2];" type_identifier (array_declarator "local_1e [2]" identifier [ number_literal ]) ;) (declaration "uchar local_1c [2];" type_identifier (array_declarator "local_1c [2]" identifier [ number_literal ]) ;) (declaration "uchar local_1a [2];" type_identifier (array_declarator "local_1a [2]" identifier [ number_literal ]) ;) (expression_statement "bVar3 = 0;" (assignment_expression "bVar3 = 0" identifier = number_literal) ;) (expression_statement "sVar1 = fread(&filedata->file_header,0x10,1,(FILE *)filedata->handle);" (assignment_expression "sVar1 = fread(&filedata->file_header,0x10,1,(FILE *)filedata->handle)" identifier = (call_expression "fread(&filedata->file_header,0x10,1,(FILE *)filedata->handle)" identifier (argument_list "(&filedata->file_header,0x10,1,(FILE *)filedata->handle)" ( (pointer_expression "&filedata->file_header" & (field_expression "filedata->file_header" identifier -> field_identifier)) , number_literal , number_literal , (cast_expression "(FILE *)filedata->handle" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "filedata->handle" identifier -> field_identifier)) )))) ;) (if_statement "if (sVar1 == 1) {\n    if ((filedata->file_header).e_ident[5] == '\x02') {\n      byte_get = byte_get_big_endian;\n      byte_put = byte_put_big_endian;\n    }\n    else {\n      byte_get = byte_get_little_endian;\n      byte_put = byte_put_little_endian;\n    }\n    __ptr = ehdr32.e_type;\n    bVar4 = (filedata->file_header).e_ident[4] == '\x02';\n    is_32bit_elf = (bfd_boolean)!bVar4;\n    if (bVar4) {\n      sVar1 = fread(__ptr,0x30,1,(FILE *)filedata->handle);\n      if (sVar1 != 1) {\n        return 0;\n      }\n      eVar2 = (*byte_get)(__ptr,2);\n      (filedata->file_header).e_type = (ushort)eVar2;\n      eVar2 = (*byte_get)(ehdr32.e_machine,2);\n      (filedata->file_header).e_machine = (ushort)eVar2;\n      eVar2 = (*byte_get)(ehdr32.e_version,4);\n      (filedata->file_header).e_version = eVar2;\n      eVar2 = (*byte_get)(ehdr32.e_entry,8);\n      (filedata->file_header).e_entry = eVar2;\n      eVar2 = (*byte_get)(ehdr32.e_shoff,8);\n      (filedata->file_header).e_phoff = eVar2;\n      eVar2 = (*byte_get)(ehdr32.e_ehsize,8);\n      (filedata->file_header).e_shoff = eVar2;\n      eVar2 = (*byte_get)(ehdr32.e_shnum,4);\n      (filedata->file_header).e_flags = eVar2;\n      eVar2 = (*byte_get)(local_24,2);\n      (filedata->file_header).e_ehsize = (uint)eVar2;\n      eVar2 = (*byte_get)(local_22,2);\n      (filedata->file_header).e_phentsize = (uint)eVar2;\n      eVar2 = (*byte_get)(local_20,2);\n      (filedata->file_header).e_phnum = (uint)eVar2;\n      eVar2 = (*byte_get)(local_1e,2);\n      (filedata->file_header).e_shentsize = (uint)eVar2;\n      eVar2 = (*byte_get)(local_1c,2);\n      (filedata->file_header).e_shnum = (uint)eVar2;\n      eVar2 = (*byte_get)(local_1a,2);\n      (filedata->file_header).e_shstrndx = (uint)eVar2;\n    }\n    else {\n      sVar1 = fread(__ptr,0x24,1,(FILE *)filedata->handle);\n      if (sVar1 != 1) {\n        return 0;\n      }\n      eVar2 = (*byte_get)(__ptr,2);\n      (filedata->file_header).e_type = (ushort)eVar2;\n      eVar2 = (*byte_get)(ehdr32.e_machine,2);\n      (filedata->file_header).e_machine = (ushort)eVar2;\n      eVar2 = (*byte_get)(ehdr32.e_version,4);\n      (filedata->file_header).e_version = eVar2;\n      eVar2 = (*byte_get)(ehdr32.e_entry,4);\n      (filedata->file_header).e_entry = eVar2;\n      eVar2 = (*byte_get)(ehdr32.e_phoff,4);\n      (filedata->file_header).e_phoff = eVar2;\n      eVar2 = (*byte_get)(ehdr32.e_shoff,4);\n      (filedata->file_header).e_shoff = eVar2;\n      eVar2 = (*byte_get)(ehdr32.e_flags,4);\n      (filedata->file_header).e_flags = eVar2;\n      eVar2 = (*byte_get)(ehdr32.e_ehsize,2);\n      (filedata->file_header).e_ehsize = (uint)eVar2;\n      eVar2 = (*byte_get)(ehdr32.e_phentsize,2);\n      (filedata->file_header).e_phentsize = (uint)eVar2;\n      eVar2 = (*byte_get)(ehdr32.e_phnum,2);\n      (filedata->file_header).e_phnum = (uint)eVar2;\n      eVar2 = (*byte_get)(ehdr32.e_shentsize,2);\n      (filedata->file_header).e_shentsize = (uint)eVar2;\n      eVar2 = (*byte_get)(ehdr32.e_shnum,2);\n      (filedata->file_header).e_shnum = (uint)eVar2;\n      eVar2 = (*byte_get)(ehdr32.e_shstrndx,2);\n      (filedata->file_header).e_shstrndx = (uint)eVar2;\n    }\n    bVar3 = 1;\n    if ((filedata->file_header).e_shoff != 0) {\n      if (is_32bit_elf == 0) {\n        get_64bit_section_headers(filedata,1);\n      }\n      else {\n        get_32bit_section_headers(filedata,1);\n      }\n    }\n  }" if (parenthesized_expression "(sVar1 == 1)" ( (binary_expression "sVar1 == 1" identifier == number_literal) )) (compound_statement "{\n    if ((filedata->file_header).e_ident[5] == '\x02') {\n      byte_get = byte_get_big_endian;\n      byte_put = byte_put_big_endian;\n    }\n    else {\n      byte_get = byte_get_little_endian;\n      byte_put = byte_put_little_endian;\n    }\n    __ptr = ehdr32.e_type;\n    bVar4 = (filedata->file_header).e_ident[4] == '\x02';\n    is_32bit_elf = (bfd_boolean)!bVar4;\n    if (bVar4) {\n      sVar1 = fread(__ptr,0x30,1,(FILE *)filedata->handle);\n      if (sVar1 != 1) {\n        return 0;\n      }\n      eVar2 = (*byte_get)(__ptr,2);\n      (filedata->file_header).e_type = (ushort)eVar2;\n      eVar2 = (*byte_get)(ehdr32.e_machine,2);\n      (filedata->file_header).e_machine = (ushort)eVar2;\n      eVar2 = (*byte_get)(ehdr32.e_version,4);\n      (filedata->file_header).e_version = eVar2;\n      eVar2 = (*byte_get)(ehdr32.e_entry,8);\n      (filedata->file_header).e_entry = eVar2;\n      eVar2 = (*byte_get)(ehdr32.e_shoff,8);\n      (filedata->file_header).e_phoff = eVar2;\n      eVar2 = (*byte_get)(ehdr32.e_ehsize,8);\n      (filedata->file_header).e_shoff = eVar2;\n      eVar2 = (*byte_get)(ehdr32.e_shnum,4);\n      (filedata->file_header).e_flags = eVar2;\n      eVar2 = (*byte_get)(local_24,2);\n      (filedata->file_header).e_ehsize = (uint)eVar2;\n      eVar2 = (*byte_get)(local_22,2);\n      (filedata->file_header).e_phentsize = (uint)eVar2;\n      eVar2 = (*byte_get)(local_20,2);\n      (filedata->file_header).e_phnum = (uint)eVar2;\n      eVar2 = (*byte_get)(local_1e,2);\n      (filedata->file_header).e_shentsize = (uint)eVar2;\n      eVar2 = (*byte_get)(local_1c,2);\n      (filedata->file_header).e_shnum = (uint)eVar2;\n      eVar2 = (*byte_get)(local_1a,2);\n      (filedata->file_header).e_shstrndx = (uint)eVar2;\n    }\n    else {\n      sVar1 = fread(__ptr,0x24,1,(FILE *)filedata->handle);\n      if (sVar1 != 1) {\n        return 0;\n      }\n      eVar2 = (*byte_get)(__ptr,2);\n      (filedata->file_header).e_type = (ushort)eVar2;\n      eVar2 = (*byte_get)(ehdr32.e_machine,2);\n      (filedata->file_header).e_machine = (ushort)eVar2;\n      eVar2 = (*byte_get)(ehdr32.e_version,4);\n      (filedata->file_header).e_version = eVar2;\n      eVar2 = (*byte_get)(ehdr32.e_entry,4);\n      (filedata->file_header).e_entry = eVar2;\n      eVar2 = (*byte_get)(ehdr32.e_phoff,4);\n      (filedata->file_header).e_phoff = eVar2;\n      eVar2 = (*byte_get)(ehdr32.e_shoff,4);\n      (filedata->file_header).e_shoff = eVar2;\n      eVar2 = (*byte_get)(ehdr32.e_flags,4);\n      (filedata->file_header).e_flags = eVar2;\n      eVar2 = (*byte_get)(ehdr32.e_ehsize,2);\n      (filedata->file_header).e_ehsize = (uint)eVar2;\n      eVar2 = (*byte_get)(ehdr32.e_phentsize,2);\n      (filedata->file_header).e_phentsize = (uint)eVar2;\n      eVar2 = (*byte_get)(ehdr32.e_phnum,2);\n      (filedata->file_header).e_phnum = (uint)eVar2;\n      eVar2 = (*byte_get)(ehdr32.e_shentsize,2);\n      (filedata->file_header).e_shentsize = (uint)eVar2;\n      eVar2 = (*byte_get)(ehdr32.e_shnum,2);\n      (filedata->file_header).e_shnum = (uint)eVar2;\n      eVar2 = (*byte_get)(ehdr32.e_shstrndx,2);\n      (filedata->file_header).e_shstrndx = (uint)eVar2;\n    }\n    bVar3 = 1;\n    if ((filedata->file_header).e_shoff != 0) {\n      if (is_32bit_elf == 0) {\n        get_64bit_section_headers(filedata,1);\n      }\n      else {\n        get_32bit_section_headers(filedata,1);\n      }\n    }\n  }" { (if_statement "if ((filedata->file_header).e_ident[5] == '\x02') {\n      byte_get = byte_get_big_endian;\n      byte_put = byte_put_big_endian;\n    }\n    else {\n      byte_get = byte_get_little_endian;\n      byte_put = byte_put_little_endian;\n    }" if (parenthesized_expression "((filedata->file_header).e_ident[5] == '\x02')" ( (binary_expression "(filedata->file_header).e_ident[5] == '\x02'" (subscript_expression "(filedata->file_header).e_ident[5]" (field_expression "(filedata->file_header).e_ident" (parenthesized_expression "(filedata->file_header)" ( (field_expression "filedata->file_header" identifier -> field_identifier) )) . field_identifier) [ number_literal ]) == (char_literal "'\x02'" ' escape_sequence ')) )) (compound_statement "{\n      byte_get = byte_get_big_endian;\n      byte_put = byte_put_big_endian;\n    }" { (expression_statement "byte_get = byte_get_big_endian;" (assignment_expression "byte_get = byte_get_big_endian" identifier = identifier) ;) (expression_statement "byte_put = byte_put_big_endian;" (assignment_expression "byte_put = byte_put_big_endian" identifier = identifier) ;) }) (else_clause "else {\n      byte_get = byte_get_little_endian;\n      byte_put = byte_put_little_endian;\n    }" else (compound_statement "{\n      byte_get = byte_get_little_endian;\n      byte_put = byte_put_little_endian;\n    }" { (expression_statement "byte_get = byte_get_little_endian;" (assignment_expression "byte_get = byte_get_little_endian" identifier = identifier) ;) (expression_statement "byte_put = byte_put_little_endian;" (assignment_expression "byte_put = byte_put_little_endian" identifier = identifier) ;) }))) (expression_statement "__ptr = ehdr32.e_type;" (assignment_expression "__ptr = ehdr32.e_type" identifier = (field_expression "ehdr32.e_type" identifier . field_identifier)) ;) (expression_statement "bVar4 = (filedata->file_header).e_ident[4] == '\x02';" (assignment_expression "bVar4 = (filedata->file_header).e_ident[4] == '\x02'" identifier = (binary_expression "(filedata->file_header).e_ident[4] == '\x02'" (subscript_expression "(filedata->file_header).e_ident[4]" (field_expression "(filedata->file_header).e_ident" (parenthesized_expression "(filedata->file_header)" ( (field_expression "filedata->file_header" identifier -> field_identifier) )) . field_identifier) [ number_literal ]) == (char_literal "'\x02'" ' escape_sequence '))) ;) (expression_statement "is_32bit_elf = (bfd_boolean)!bVar4;" (assignment_expression "is_32bit_elf = (bfd_boolean)!bVar4" identifier = (cast_expression "(bfd_boolean)!bVar4" ( (type_descriptor "bfd_boolean" type_identifier) ) (unary_expression "!bVar4" ! identifier))) ;) (if_statement "if (bVar4) {\n      sVar1 = fread(__ptr,0x30,1,(FILE *)filedata->handle);\n      if (sVar1 != 1) {\n        return 0;\n      }\n      eVar2 = (*byte_get)(__ptr,2);\n      (filedata->file_header).e_type = (ushort)eVar2;\n      eVar2 = (*byte_get)(ehdr32.e_machine,2);\n      (filedata->file_header).e_machine = (ushort)eVar2;\n      eVar2 = (*byte_get)(ehdr32.e_version,4);\n      (filedata->file_header).e_version = eVar2;\n      eVar2 = (*byte_get)(ehdr32.e_entry,8);\n      (filedata->file_header).e_entry = eVar2;\n      eVar2 = (*byte_get)(ehdr32.e_shoff,8);\n      (filedata->file_header).e_phoff = eVar2;\n      eVar2 = (*byte_get)(ehdr32.e_ehsize,8);\n      (filedata->file_header).e_shoff = eVar2;\n      eVar2 = (*byte_get)(ehdr32.e_shnum,4);\n      (filedata->file_header).e_flags = eVar2;\n      eVar2 = (*byte_get)(local_24,2);\n      (filedata->file_header).e_ehsize = (uint)eVar2;\n      eVar2 = (*byte_get)(local_22,2);\n      (filedata->file_header).e_phentsize = (uint)eVar2;\n      eVar2 = (*byte_get)(local_20,2);\n      (filedata->file_header).e_phnum = (uint)eVar2;\n      eVar2 = (*byte_get)(local_1e,2);\n      (filedata->file_header).e_shentsize = (uint)eVar2;\n      eVar2 = (*byte_get)(local_1c,2);\n      (filedata->file_header).e_shnum = (uint)eVar2;\n      eVar2 = (*byte_get)(local_1a,2);\n      (filedata->file_header).e_shstrndx = (uint)eVar2;\n    }\n    else {\n      sVar1 = fread(__ptr,0x24,1,(FILE *)filedata->handle);\n      if (sVar1 != 1) {\n        return 0;\n      }\n      eVar2 = (*byte_get)(__ptr,2);\n      (filedata->file_header).e_type = (ushort)eVar2;\n      eVar2 = (*byte_get)(ehdr32.e_machine,2);\n      (filedata->file_header).e_machine = (ushort)eVar2;\n      eVar2 = (*byte_get)(ehdr32.e_version,4);\n      (filedata->file_header).e_version = eVar2;\n      eVar2 = (*byte_get)(ehdr32.e_entry,4);\n      (filedata->file_header).e_entry = eVar2;\n      eVar2 = (*byte_get)(ehdr32.e_phoff,4);\n      (filedata->file_header).e_phoff = eVar2;\n      eVar2 = (*byte_get)(ehdr32.e_shoff,4);\n      (filedata->file_header).e_shoff = eVar2;\n      eVar2 = (*byte_get)(ehdr32.e_flags,4);\n      (filedata->file_header).e_flags = eVar2;\n      eVar2 = (*byte_get)(ehdr32.e_ehsize,2);\n      (filedata->file_header).e_ehsize = (uint)eVar2;\n      eVar2 = (*byte_get)(ehdr32.e_phentsize,2);\n      (filedata->file_header).e_phentsize = (uint)eVar2;\n      eVar2 = (*byte_get)(ehdr32.e_phnum,2);\n      (filedata->file_header).e_phnum = (uint)eVar2;\n      eVar2 = (*byte_get)(ehdr32.e_shentsize,2);\n      (filedata->file_header).e_shentsize = (uint)eVar2;\n      eVar2 = (*byte_get)(ehdr32.e_shnum,2);\n      (filedata->file_header).e_shnum = (uint)eVar2;\n      eVar2 = (*byte_get)(ehdr32.e_shstrndx,2);\n      (filedata->file_header).e_shstrndx = (uint)eVar2;\n    }" if (parenthesized_expression "(bVar4)" ( identifier )) (compound_statement "{\n      sVar1 = fread(__ptr,0x30,1,(FILE *)filedata->handle);\n      if (sVar1 != 1) {\n        return 0;\n      }\n      eVar2 = (*byte_get)(__ptr,2);\n      (filedata->file_header).e_type = (ushort)eVar2;\n      eVar2 = (*byte_get)(ehdr32.e_machine,2);\n      (filedata->file_header).e_machine = (ushort)eVar2;\n      eVar2 = (*byte_get)(ehdr32.e_version,4);\n      (filedata->file_header).e_version = eVar2;\n      eVar2 = (*byte_get)(ehdr32.e_entry,8);\n      (filedata->file_header).e_entry = eVar2;\n      eVar2 = (*byte_get)(ehdr32.e_shoff,8);\n      (filedata->file_header).e_phoff = eVar2;\n      eVar2 = (*byte_get)(ehdr32.e_ehsize,8);\n      (filedata->file_header).e_shoff = eVar2;\n      eVar2 = (*byte_get)(ehdr32.e_shnum,4);\n      (filedata->file_header).e_flags = eVar2;\n      eVar2 = (*byte_get)(local_24,2);\n      (filedata->file_header).e_ehsize = (uint)eVar2;\n      eVar2 = (*byte_get)(local_22,2);\n      (filedata->file_header).e_phentsize = (uint)eVar2;\n      eVar2 = (*byte_get)(local_20,2);\n      (filedata->file_header).e_phnum = (uint)eVar2;\n      eVar2 = (*byte_get)(local_1e,2);\n      (filedata->file_header).e_shentsize = (uint)eVar2;\n      eVar2 = (*byte_get)(local_1c,2);\n      (filedata->file_header).e_shnum = (uint)eVar2;\n      eVar2 = (*byte_get)(local_1a,2);\n      (filedata->file_header).e_shstrndx = (uint)eVar2;\n    }" { (expression_statement "sVar1 = fread(__ptr,0x30,1,(FILE *)filedata->handle);" (assignment_expression "sVar1 = fread(__ptr,0x30,1,(FILE *)filedata->handle)" identifier = (call_expression "fread(__ptr,0x30,1,(FILE *)filedata->handle)" identifier (argument_list "(__ptr,0x30,1,(FILE *)filedata->handle)" ( identifier , number_literal , number_literal , (cast_expression "(FILE *)filedata->handle" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "filedata->handle" identifier -> field_identifier)) )))) ;) (if_statement "if (sVar1 != 1) {\n        return 0;\n      }" if (parenthesized_expression "(sVar1 != 1)" ( (binary_expression "sVar1 != 1" identifier != number_literal) )) (compound_statement "{\n        return 0;\n      }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "eVar2 = (*byte_get)(__ptr,2);" (assignment_expression "eVar2 = (*byte_get)(__ptr,2)" identifier = (call_expression "(*byte_get)(__ptr,2)" (parenthesized_expression "(*byte_get)" ( (pointer_expression "*byte_get" * identifier) )) (argument_list "(__ptr,2)" ( identifier , number_literal )))) ;) (expression_statement "(filedata->file_header).e_type = (ushort)eVar2;" (assignment_expression "(filedata->file_header).e_type = (ushort)eVar2" (field_expression "(filedata->file_header).e_type" (parenthesized_expression "(filedata->file_header)" ( (field_expression "filedata->file_header" identifier -> field_identifier) )) . field_identifier) = (cast_expression "(ushort)eVar2" ( (type_descriptor "ushort" type_identifier) ) identifier)) ;) (expression_statement "eVar2 = (*byte_get)(ehdr32.e_machine,2);" (assignment_expression "eVar2 = (*byte_get)(ehdr32.e_machine,2)" identifier = (call_expression "(*byte_get)(ehdr32.e_machine,2)" (parenthesized_expression "(*byte_get)" ( (pointer_expression "*byte_get" * identifier) )) (argument_list "(ehdr32.e_machine,2)" ( (field_expression "ehdr32.e_machine" identifier . field_identifier) , number_literal )))) ;) (expression_statement "(filedata->file_header).e_machine = (ushort)eVar2;" (assignment_expression "(filedata->file_header).e_machine = (ushort)eVar2" (field_expression "(filedata->file_header).e_machine" (parenthesized_expression "(filedata->file_header)" ( (field_expression "filedata->file_header" identifier -> field_identifier) )) . field_identifier) = (cast_expression "(ushort)eVar2" ( (type_descriptor "ushort" type_identifier) ) identifier)) ;) (expression_statement "eVar2 = (*byte_get)(ehdr32.e_version,4);" (assignment_expression "eVar2 = (*byte_get)(ehdr32.e_version,4)" identifier = (call_expression "(*byte_get)(ehdr32.e_version,4)" (parenthesized_expression "(*byte_get)" ( (pointer_expression "*byte_get" * identifier) )) (argument_list "(ehdr32.e_version,4)" ( (field_expression "ehdr32.e_version" identifier . field_identifier) , number_literal )))) ;) (expression_statement "(filedata->file_header).e_version = eVar2;" (assignment_expression "(filedata->file_header).e_version = eVar2" (field_expression "(filedata->file_header).e_version" (parenthesized_expression "(filedata->file_header)" ( (field_expression "filedata->file_header" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "eVar2 = (*byte_get)(ehdr32.e_entry,8);" (assignment_expression "eVar2 = (*byte_get)(ehdr32.e_entry,8)" identifier = (call_expression "(*byte_get)(ehdr32.e_entry,8)" (parenthesized_expression "(*byte_get)" ( (pointer_expression "*byte_get" * identifier) )) (argument_list "(ehdr32.e_entry,8)" ( (field_expression "ehdr32.e_entry" identifier . field_identifier) , number_literal )))) ;) (expression_statement "(filedata->file_header).e_entry = eVar2;" (assignment_expression "(filedata->file_header).e_entry = eVar2" (field_expression "(filedata->file_header).e_entry" (parenthesized_expression "(filedata->file_header)" ( (field_expression "filedata->file_header" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "eVar2 = (*byte_get)(ehdr32.e_shoff,8);" (assignment_expression "eVar2 = (*byte_get)(ehdr32.e_shoff,8)" identifier = (call_expression "(*byte_get)(ehdr32.e_shoff,8)" (parenthesized_expression "(*byte_get)" ( (pointer_expression "*byte_get" * identifier) )) (argument_list "(ehdr32.e_shoff,8)" ( (field_expression "ehdr32.e_shoff" identifier . field_identifier) , number_literal )))) ;) (expression_statement "(filedata->file_header).e_phoff = eVar2;" (assignment_expression "(filedata->file_header).e_phoff = eVar2" (field_expression "(filedata->file_header).e_phoff" (parenthesized_expression "(filedata->file_header)" ( (field_expression "filedata->file_header" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "eVar2 = (*byte_get)(ehdr32.e_ehsize,8);" (assignment_expression "eVar2 = (*byte_get)(ehdr32.e_ehsize,8)" identifier = (call_expression "(*byte_get)(ehdr32.e_ehsize,8)" (parenthesized_expression "(*byte_get)" ( (pointer_expression "*byte_get" * identifier) )) (argument_list "(ehdr32.e_ehsize,8)" ( (field_expression "ehdr32.e_ehsize" identifier . field_identifier) , number_literal )))) ;) (expression_statement "(filedata->file_header).e_shoff = eVar2;" (assignment_expression "(filedata->file_header).e_shoff = eVar2" (field_expression "(filedata->file_header).e_shoff" (parenthesized_expression "(filedata->file_header)" ( (field_expression "filedata->file_header" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "eVar2 = (*byte_get)(ehdr32.e_shnum,4);" (assignment_expression "eVar2 = (*byte_get)(ehdr32.e_shnum,4)" identifier = (call_expression "(*byte_get)(ehdr32.e_shnum,4)" (parenthesized_expression "(*byte_get)" ( (pointer_expression "*byte_get" * identifier) )) (argument_list "(ehdr32.e_shnum,4)" ( (field_expression "ehdr32.e_shnum" identifier . field_identifier) , number_literal )))) ;) (expression_statement "(filedata->file_header).e_flags = eVar2;" (assignment_expression "(filedata->file_header).e_flags = eVar2" (field_expression "(filedata->file_header).e_flags" (parenthesized_expression "(filedata->file_header)" ( (field_expression "filedata->file_header" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "eVar2 = (*byte_get)(local_24,2);" (assignment_expression "eVar2 = (*byte_get)(local_24,2)" identifier = (call_expression "(*byte_get)(local_24,2)" (parenthesized_expression "(*byte_get)" ( (pointer_expression "*byte_get" * identifier) )) (argument_list "(local_24,2)" ( identifier , number_literal )))) ;) (expression_statement "(filedata->file_header).e_ehsize = (uint)eVar2;" (assignment_expression "(filedata->file_header).e_ehsize = (uint)eVar2" (field_expression "(filedata->file_header).e_ehsize" (parenthesized_expression "(filedata->file_header)" ( (field_expression "filedata->file_header" identifier -> field_identifier) )) . field_identifier) = (cast_expression "(uint)eVar2" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "eVar2 = (*byte_get)(local_22,2);" (assignment_expression "eVar2 = (*byte_get)(local_22,2)" identifier = (call_expression "(*byte_get)(local_22,2)" (parenthesized_expression "(*byte_get)" ( (pointer_expression "*byte_get" * identifier) )) (argument_list "(local_22,2)" ( identifier , number_literal )))) ;) (expression_statement "(filedata->file_header).e_phentsize = (uint)eVar2;" (assignment_expression "(filedata->file_header).e_phentsize = (uint)eVar2" (field_expression "(filedata->file_header).e_phentsize" (parenthesized_expression "(filedata->file_header)" ( (field_expression "filedata->file_header" identifier -> field_identifier) )) . field_identifier) = (cast_expression "(uint)eVar2" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "eVar2 = (*byte_get)(local_20,2);" (assignment_expression "eVar2 = (*byte_get)(local_20,2)" identifier = (call_expression "(*byte_get)(local_20,2)" (parenthesized_expression "(*byte_get)" ( (pointer_expression "*byte_get" * identifier) )) (argument_list "(local_20,2)" ( identifier , number_literal )))) ;) (expression_statement "(filedata->file_header).e_phnum = (uint)eVar2;" (assignment_expression "(filedata->file_header).e_phnum = (uint)eVar2" (field_expression "(filedata->file_header).e_phnum" (parenthesized_expression "(filedata->file_header)" ( (field_expression "filedata->file_header" identifier -> field_identifier) )) . field_identifier) = (cast_expression "(uint)eVar2" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "eVar2 = (*byte_get)(local_1e,2);" (assignment_expression "eVar2 = (*byte_get)(local_1e,2)" identifier = (call_expression "(*byte_get)(local_1e,2)" (parenthesized_expression "(*byte_get)" ( (pointer_expression "*byte_get" * identifier) )) (argument_list "(local_1e,2)" ( identifier , number_literal )))) ;) (expression_statement "(filedata->file_header).e_shentsize = (uint)eVar2;" (assignment_expression "(filedata->file_header).e_shentsize = (uint)eVar2" (field_expression "(filedata->file_header).e_shentsize" (parenthesized_expression "(filedata->file_header)" ( (field_expression "filedata->file_header" identifier -> field_identifier) )) . field_identifier) = (cast_expression "(uint)eVar2" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "eVar2 = (*byte_get)(local_1c,2);" (assignment_expression "eVar2 = (*byte_get)(local_1c,2)" identifier = (call_expression "(*byte_get)(local_1c,2)" (parenthesized_expression "(*byte_get)" ( (pointer_expression "*byte_get" * identifier) )) (argument_list "(local_1c,2)" ( identifier , number_literal )))) ;) (expression_statement "(filedata->file_header).e_shnum = (uint)eVar2;" (assignment_expression "(filedata->file_header).e_shnum = (uint)eVar2" (field_expression "(filedata->file_header).e_shnum" (parenthesized_expression "(filedata->file_header)" ( (field_expression "filedata->file_header" identifier -> field_identifier) )) . field_identifier) = (cast_expression "(uint)eVar2" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "eVar2 = (*byte_get)(local_1a,2);" (assignment_expression "eVar2 = (*byte_get)(local_1a,2)" identifier = (call_expression "(*byte_get)(local_1a,2)" (parenthesized_expression "(*byte_get)" ( (pointer_expression "*byte_get" * identifier) )) (argument_list "(local_1a,2)" ( identifier , number_literal )))) ;) (expression_statement "(filedata->file_header).e_shstrndx = (uint)eVar2;" (assignment_expression "(filedata->file_header).e_shstrndx = (uint)eVar2" (field_expression "(filedata->file_header).e_shstrndx" (parenthesized_expression "(filedata->file_header)" ( (field_expression "filedata->file_header" identifier -> field_identifier) )) . field_identifier) = (cast_expression "(uint)eVar2" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) }) (else_clause "else {\n      sVar1 = fread(__ptr,0x24,1,(FILE *)filedata->handle);\n      if (sVar1 != 1) {\n        return 0;\n      }\n      eVar2 = (*byte_get)(__ptr,2);\n      (filedata->file_header).e_type = (ushort)eVar2;\n      eVar2 = (*byte_get)(ehdr32.e_machine,2);\n      (filedata->file_header).e_machine = (ushort)eVar2;\n      eVar2 = (*byte_get)(ehdr32.e_version,4);\n      (filedata->file_header).e_version = eVar2;\n      eVar2 = (*byte_get)(ehdr32.e_entry,4);\n      (filedata->file_header).e_entry = eVar2;\n      eVar2 = (*byte_get)(ehdr32.e_phoff,4);\n      (filedata->file_header).e_phoff = eVar2;\n      eVar2 = (*byte_get)(ehdr32.e_shoff,4);\n      (filedata->file_header).e_shoff = eVar2;\n      eVar2 = (*byte_get)(ehdr32.e_flags,4);\n      (filedata->file_header).e_flags = eVar2;\n      eVar2 = (*byte_get)(ehdr32.e_ehsize,2);\n      (filedata->file_header).e_ehsize = (uint)eVar2;\n      eVar2 = (*byte_get)(ehdr32.e_phentsize,2);\n      (filedata->file_header).e_phentsize = (uint)eVar2;\n      eVar2 = (*byte_get)(ehdr32.e_phnum,2);\n      (filedata->file_header).e_phnum = (uint)eVar2;\n      eVar2 = (*byte_get)(ehdr32.e_shentsize,2);\n      (filedata->file_header).e_shentsize = (uint)eVar2;\n      eVar2 = (*byte_get)(ehdr32.e_shnum,2);\n      (filedata->file_header).e_shnum = (uint)eVar2;\n      eVar2 = (*byte_get)(ehdr32.e_shstrndx,2);\n      (filedata->file_header).e_shstrndx = (uint)eVar2;\n    }" else (compound_statement "{\n      sVar1 = fread(__ptr,0x24,1,(FILE *)filedata->handle);\n      if (sVar1 != 1) {\n        return 0;\n      }\n      eVar2 = (*byte_get)(__ptr,2);\n      (filedata->file_header).e_type = (ushort)eVar2;\n      eVar2 = (*byte_get)(ehdr32.e_machine,2);\n      (filedata->file_header).e_machine = (ushort)eVar2;\n      eVar2 = (*byte_get)(ehdr32.e_version,4);\n      (filedata->file_header).e_version = eVar2;\n      eVar2 = (*byte_get)(ehdr32.e_entry,4);\n      (filedata->file_header).e_entry = eVar2;\n      eVar2 = (*byte_get)(ehdr32.e_phoff,4);\n      (filedata->file_header).e_phoff = eVar2;\n      eVar2 = (*byte_get)(ehdr32.e_shoff,4);\n      (filedata->file_header).e_shoff = eVar2;\n      eVar2 = (*byte_get)(ehdr32.e_flags,4);\n      (filedata->file_header).e_flags = eVar2;\n      eVar2 = (*byte_get)(ehdr32.e_ehsize,2);\n      (filedata->file_header).e_ehsize = (uint)eVar2;\n      eVar2 = (*byte_get)(ehdr32.e_phentsize,2);\n      (filedata->file_header).e_phentsize = (uint)eVar2;\n      eVar2 = (*byte_get)(ehdr32.e_phnum,2);\n      (filedata->file_header).e_phnum = (uint)eVar2;\n      eVar2 = (*byte_get)(ehdr32.e_shentsize,2);\n      (filedata->file_header).e_shentsize = (uint)eVar2;\n      eVar2 = (*byte_get)(ehdr32.e_shnum,2);\n      (filedata->file_header).e_shnum = (uint)eVar2;\n      eVar2 = (*byte_get)(ehdr32.e_shstrndx,2);\n      (filedata->file_header).e_shstrndx = (uint)eVar2;\n    }" { (expression_statement "sVar1 = fread(__ptr,0x24,1,(FILE *)filedata->handle);" (assignment_expression "sVar1 = fread(__ptr,0x24,1,(FILE *)filedata->handle)" identifier = (call_expression "fread(__ptr,0x24,1,(FILE *)filedata->handle)" identifier (argument_list "(__ptr,0x24,1,(FILE *)filedata->handle)" ( identifier , number_literal , number_literal , (cast_expression "(FILE *)filedata->handle" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "filedata->handle" identifier -> field_identifier)) )))) ;) (if_statement "if (sVar1 != 1) {\n        return 0;\n      }" if (parenthesized_expression "(sVar1 != 1)" ( (binary_expression "sVar1 != 1" identifier != number_literal) )) (compound_statement "{\n        return 0;\n      }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "eVar2 = (*byte_get)(__ptr,2);" (assignment_expression "eVar2 = (*byte_get)(__ptr,2)" identifier = (call_expression "(*byte_get)(__ptr,2)" (parenthesized_expression "(*byte_get)" ( (pointer_expression "*byte_get" * identifier) )) (argument_list "(__ptr,2)" ( identifier , number_literal )))) ;) (expression_statement "(filedata->file_header).e_type = (ushort)eVar2;" (assignment_expression "(filedata->file_header).e_type = (ushort)eVar2" (field_expression "(filedata->file_header).e_type" (parenthesized_expression "(filedata->file_header)" ( (field_expression "filedata->file_header" identifier -> field_identifier) )) . field_identifier) = (cast_expression "(ushort)eVar2" ( (type_descriptor "ushort" type_identifier) ) identifier)) ;) (expression_statement "eVar2 = (*byte_get)(ehdr32.e_machine,2);" (assignment_expression "eVar2 = (*byte_get)(ehdr32.e_machine,2)" identifier = (call_expression "(*byte_get)(ehdr32.e_machine,2)" (parenthesized_expression "(*byte_get)" ( (pointer_expression "*byte_get" * identifier) )) (argument_list "(ehdr32.e_machine,2)" ( (field_expression "ehdr32.e_machine" identifier . field_identifier) , number_literal )))) ;) (expression_statement "(filedata->file_header).e_machine = (ushort)eVar2;" (assignment_expression "(filedata->file_header).e_machine = (ushort)eVar2" (field_expression "(filedata->file_header).e_machine" (parenthesized_expression "(filedata->file_header)" ( (field_expression "filedata->file_header" identifier -> field_identifier) )) . field_identifier) = (cast_expression "(ushort)eVar2" ( (type_descriptor "ushort" type_identifier) ) identifier)) ;) (expression_statement "eVar2 = (*byte_get)(ehdr32.e_version,4);" (assignment_expression "eVar2 = (*byte_get)(ehdr32.e_version,4)" identifier = (call_expression "(*byte_get)(ehdr32.e_version,4)" (parenthesized_expression "(*byte_get)" ( (pointer_expression "*byte_get" * identifier) )) (argument_list "(ehdr32.e_version,4)" ( (field_expression "ehdr32.e_version" identifier . field_identifier) , number_literal )))) ;) (expression_statement "(filedata->file_header).e_version = eVar2;" (assignment_expression "(filedata->file_header).e_version = eVar2" (field_expression "(filedata->file_header).e_version" (parenthesized_expression "(filedata->file_header)" ( (field_expression "filedata->file_header" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "eVar2 = (*byte_get)(ehdr32.e_entry,4);" (assignment_expression "eVar2 = (*byte_get)(ehdr32.e_entry,4)" identifier = (call_expression "(*byte_get)(ehdr32.e_entry,4)" (parenthesized_expression "(*byte_get)" ( (pointer_expression "*byte_get" * identifier) )) (argument_list "(ehdr32.e_entry,4)" ( (field_expression "ehdr32.e_entry" identifier . field_identifier) , number_literal )))) ;) (expression_statement "(filedata->file_header).e_entry = eVar2;" (assignment_expression "(filedata->file_header).e_entry = eVar2" (field_expression "(filedata->file_header).e_entry" (parenthesized_expression "(filedata->file_header)" ( (field_expression "filedata->file_header" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "eVar2 = (*byte_get)(ehdr32.e_phoff,4);" (assignment_expression "eVar2 = (*byte_get)(ehdr32.e_phoff,4)" identifier = (call_expression "(*byte_get)(ehdr32.e_phoff,4)" (parenthesized_expression "(*byte_get)" ( (pointer_expression "*byte_get" * identifier) )) (argument_list "(ehdr32.e_phoff,4)" ( (field_expression "ehdr32.e_phoff" identifier . field_identifier) , number_literal )))) ;) (expression_statement "(filedata->file_header).e_phoff = eVar2;" (assignment_expression "(filedata->file_header).e_phoff = eVar2" (field_expression "(filedata->file_header).e_phoff" (parenthesized_expression "(filedata->file_header)" ( (field_expression "filedata->file_header" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "eVar2 = (*byte_get)(ehdr32.e_shoff,4);" (assignment_expression "eVar2 = (*byte_get)(ehdr32.e_shoff,4)" identifier = (call_expression "(*byte_get)(ehdr32.e_shoff,4)" (parenthesized_expression "(*byte_get)" ( (pointer_expression "*byte_get" * identifier) )) (argument_list "(ehdr32.e_shoff,4)" ( (field_expression "ehdr32.e_shoff" identifier . field_identifier) , number_literal )))) ;) (expression_statement "(filedata->file_header).e_shoff = eVar2;" (assignment_expression "(filedata->file_header).e_shoff = eVar2" (field_expression "(filedata->file_header).e_shoff" (parenthesized_expression "(filedata->file_header)" ( (field_expression "filedata->file_header" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "eVar2 = (*byte_get)(ehdr32.e_flags,4);" (assignment_expression "eVar2 = (*byte_get)(ehdr32.e_flags,4)" identifier = (call_expression "(*byte_get)(ehdr32.e_flags,4)" (parenthesized_expression "(*byte_get)" ( (pointer_expression "*byte_get" * identifier) )) (argument_list "(ehdr32.e_flags,4)" ( (field_expression "ehdr32.e_flags" identifier . field_identifier) , number_literal )))) ;) (expression_statement "(filedata->file_header).e_flags = eVar2;" (assignment_expression "(filedata->file_header).e_flags = eVar2" (field_expression "(filedata->file_header).e_flags" (parenthesized_expression "(filedata->file_header)" ( (field_expression "filedata->file_header" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "eVar2 = (*byte_get)(ehdr32.e_ehsize,2);" (assignment_expression "eVar2 = (*byte_get)(ehdr32.e_ehsize,2)" identifier = (call_expression "(*byte_get)(ehdr32.e_ehsize,2)" (parenthesized_expression "(*byte_get)" ( (pointer_expression "*byte_get" * identifier) )) (argument_list "(ehdr32.e_ehsize,2)" ( (field_expression "ehdr32.e_ehsize" identifier . field_identifier) , number_literal )))) ;) (expression_statement "(filedata->file_header).e_ehsize = (uint)eVar2;" (assignment_expression "(filedata->file_header).e_ehsize = (uint)eVar2" (field_expression "(filedata->file_header).e_ehsize" (parenthesized_expression "(filedata->file_header)" ( (field_expression "filedata->file_header" identifier -> field_identifier) )) . field_identifier) = (cast_expression "(uint)eVar2" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "eVar2 = (*byte_get)(ehdr32.e_phentsize,2);" (assignment_expression "eVar2 = (*byte_get)(ehdr32.e_phentsize,2)" identifier = (call_expression "(*byte_get)(ehdr32.e_phentsize,2)" (parenthesized_expression "(*byte_get)" ( (pointer_expression "*byte_get" * identifier) )) (argument_list "(ehdr32.e_phentsize,2)" ( (field_expression "ehdr32.e_phentsize" identifier . field_identifier) , number_literal )))) ;) (expression_statement "(filedata->file_header).e_phentsize = (uint)eVar2;" (assignment_expression "(filedata->file_header).e_phentsize = (uint)eVar2" (field_expression "(filedata->file_header).e_phentsize" (parenthesized_expression "(filedata->file_header)" ( (field_expression "filedata->file_header" identifier -> field_identifier) )) . field_identifier) = (cast_expression "(uint)eVar2" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "eVar2 = (*byte_get)(ehdr32.e_phnum,2);" (assignment_expression "eVar2 = (*byte_get)(ehdr32.e_phnum,2)" identifier = (call_expression "(*byte_get)(ehdr32.e_phnum,2)" (parenthesized_expression "(*byte_get)" ( (pointer_expression "*byte_get" * identifier) )) (argument_list "(ehdr32.e_phnum,2)" ( (field_expression "ehdr32.e_phnum" identifier . field_identifier) , number_literal )))) ;) (expression_statement "(filedata->file_header).e_phnum = (uint)eVar2;" (assignment_expression "(filedata->file_header).e_phnum = (uint)eVar2" (field_expression "(filedata->file_header).e_phnum" (parenthesized_expression "(filedata->file_header)" ( (field_expression "filedata->file_header" identifier -> field_identifier) )) . field_identifier) = (cast_expression "(uint)eVar2" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "eVar2 = (*byte_get)(ehdr32.e_shentsize,2);" (assignment_expression "eVar2 = (*byte_get)(ehdr32.e_shentsize,2)" identifier = (call_expression "(*byte_get)(ehdr32.e_shentsize,2)" (parenthesized_expression "(*byte_get)" ( (pointer_expression "*byte_get" * identifier) )) (argument_list "(ehdr32.e_shentsize,2)" ( (field_expression "ehdr32.e_shentsize" identifier . field_identifier) , number_literal )))) ;) (expression_statement "(filedata->file_header).e_shentsize = (uint)eVar2;" (assignment_expression "(filedata->file_header).e_shentsize = (uint)eVar2" (field_expression "(filedata->file_header).e_shentsize" (parenthesized_expression "(filedata->file_header)" ( (field_expression "filedata->file_header" identifier -> field_identifier) )) . field_identifier) = (cast_expression "(uint)eVar2" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "eVar2 = (*byte_get)(ehdr32.e_shnum,2);" (assignment_expression "eVar2 = (*byte_get)(ehdr32.e_shnum,2)" identifier = (call_expression "(*byte_get)(ehdr32.e_shnum,2)" (parenthesized_expression "(*byte_get)" ( (pointer_expression "*byte_get" * identifier) )) (argument_list "(ehdr32.e_shnum,2)" ( (field_expression "ehdr32.e_shnum" identifier . field_identifier) , number_literal )))) ;) (expression_statement "(filedata->file_header).e_shnum = (uint)eVar2;" (assignment_expression "(filedata->file_header).e_shnum = (uint)eVar2" (field_expression "(filedata->file_header).e_shnum" (parenthesized_expression "(filedata->file_header)" ( (field_expression "filedata->file_header" identifier -> field_identifier) )) . field_identifier) = (cast_expression "(uint)eVar2" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "eVar2 = (*byte_get)(ehdr32.e_shstrndx,2);" (assignment_expression "eVar2 = (*byte_get)(ehdr32.e_shstrndx,2)" identifier = (call_expression "(*byte_get)(ehdr32.e_shstrndx,2)" (parenthesized_expression "(*byte_get)" ( (pointer_expression "*byte_get" * identifier) )) (argument_list "(ehdr32.e_shstrndx,2)" ( (field_expression "ehdr32.e_shstrndx" identifier . field_identifier) , number_literal )))) ;) (expression_statement "(filedata->file_header).e_shstrndx = (uint)eVar2;" (assignment_expression "(filedata->file_header).e_shstrndx = (uint)eVar2" (field_expression "(filedata->file_header).e_shstrndx" (parenthesized_expression "(filedata->file_header)" ( (field_expression "filedata->file_header" identifier -> field_identifier) )) . field_identifier) = (cast_expression "(uint)eVar2" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) }))) (expression_statement "bVar3 = 1;" (assignment_expression "bVar3 = 1" identifier = number_literal) ;) (if_statement "if ((filedata->file_header).e_shoff != 0) {\n      if (is_32bit_elf == 0) {\n        get_64bit_section_headers(filedata,1);\n      }\n      else {\n        get_32bit_section_headers(filedata,1);\n      }\n    }" if (parenthesized_expression "((filedata->file_header).e_shoff != 0)" ( (binary_expression "(filedata->file_header).e_shoff != 0" (field_expression "(filedata->file_header).e_shoff" (parenthesized_expression "(filedata->file_header)" ( (field_expression "filedata->file_header" identifier -> field_identifier) )) . field_identifier) != number_literal) )) (compound_statement "{\n      if (is_32bit_elf == 0) {\n        get_64bit_section_headers(filedata,1);\n      }\n      else {\n        get_32bit_section_headers(filedata,1);\n      }\n    }" { (if_statement "if (is_32bit_elf == 0) {\n        get_64bit_section_headers(filedata,1);\n      }\n      else {\n        get_32bit_section_headers(filedata,1);\n      }" if (parenthesized_expression "(is_32bit_elf == 0)" ( (binary_expression "is_32bit_elf == 0" identifier == number_literal) )) (compound_statement "{\n        get_64bit_section_headers(filedata,1);\n      }" { (expression_statement "get_64bit_section_headers(filedata,1);" (call_expression "get_64bit_section_headers(filedata,1)" identifier (argument_list "(filedata,1)" ( identifier , number_literal ))) ;) }) (else_clause "else {\n        get_32bit_section_headers(filedata,1);\n      }" else (compound_statement "{\n        get_32bit_section_headers(filedata,1);\n      }" { (expression_statement "get_32bit_section_headers(filedata,1);" (call_expression "get_32bit_section_headers(filedata,1)" identifier (argument_list "(filedata,1)" ( identifier , number_literal ))) ;) }))) })) })) (return_statement "return bVar3;" return identifier ;) })))
(translation_unit "undefined8 FUN_001195f0(long param_1)\n\n{\n  undefined2 uVar1;\n  undefined4 uVar2;\n  size_t sVar3;\n  undefined8 uVar4;\n  bool bVar5;\n  undefined1 local_48 [2];\n  undefined1 local_46 [2];\n  undefined1 local_44 [4];\n  undefined1 local_40 [4];\n  undefined1 local_3c [4];\n  undefined1 local_38 [4];\n  undefined1 local_34 [4];\n  undefined1 local_30 [2];\n  undefined1 local_2e [2];\n  undefined1 local_2c [2];\n  undefined1 local_2a [2];\n  undefined1 local_28 [2];\n  undefined1 local_26 [2];\n  undefined1 local_24 [2];\n  undefined1 local_22 [2];\n  undefined1 local_20 [2];\n  undefined1 local_1e [2];\n  undefined1 local_1c [2];\n  undefined1 local_1a [2];\n  \n  uVar4 = 0;\n  sVar3 = fread((void *)(param_1 + 0x18),0x10,1,*(FILE **)(param_1 + 8));\n  if (sVar3 == 1) {\n    if (*(char *)(param_1 + 0x1d) == '\x02') {\n      DAT_00196f88 = FUN_00154c60;\n      DAT_00196f90 = FUN_00155250;\n    }\n    else {\n      DAT_00196f88 = FUN_001552c0;\n      DAT_00196f90 = FUN_001551b0;\n    }\n    bVar5 = *(char *)(param_1 + 0x1c) == '\x02';\n    DAT_0019345c = (uint)!bVar5;\n    if (bVar5) {\n      sVar3 = fread(local_48,0x30,1,*(FILE **)(param_1 + 8));\n      if (sVar3 != 1) {\n        return 0;\n      }\n      uVar1 = (*DAT_00196f88)(local_48,2);\n      *(undefined2 *)(param_1 + 0x50) = uVar1;\n      uVar1 = (*DAT_00196f88)(local_46,2);\n      *(undefined2 *)(param_1 + 0x52) = uVar1;\n      uVar4 = (*DAT_00196f88)(local_44,4);\n      *(undefined8 *)(param_1 + 0x40) = uVar4;\n      uVar4 = (*DAT_00196f88)(local_40,8);\n      *(undefined8 *)(param_1 + 0x28) = uVar4;\n      uVar4 = (*DAT_00196f88)(local_38,8);\n      *(undefined8 *)(param_1 + 0x30) = uVar4;\n      uVar4 = (*DAT_00196f88)(local_30,8);\n      *(undefined8 *)(param_1 + 0x38) = uVar4;\n      uVar4 = (*DAT_00196f88)(local_28,4);\n      *(undefined8 *)(param_1 + 0x48) = uVar4;\n      uVar2 = (*DAT_00196f88)(local_24,2);\n      *(undefined4 *)(param_1 + 0x54) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_22,2);\n      *(undefined4 *)(param_1 + 0x58) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_20,2);\n      *(undefined4 *)(param_1 + 0x5c) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_1e,2);\n      *(undefined4 *)(param_1 + 0x60) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_1c,2);\n      *(undefined4 *)(param_1 + 100) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_1a,2);\n      *(undefined4 *)(param_1 + 0x68) = uVar2;\n    }\n    else {\n      sVar3 = fread(local_48,0x24,1,*(FILE **)(param_1 + 8));\n      if (sVar3 != 1) {\n        return 0;\n      }\n      uVar1 = (*DAT_00196f88)(local_48,2);\n      *(undefined2 *)(param_1 + 0x50) = uVar1;\n      uVar1 = (*DAT_00196f88)(local_46,2);\n      *(undefined2 *)(param_1 + 0x52) = uVar1;\n      uVar4 = (*DAT_00196f88)(local_44,4);\n      *(undefined8 *)(param_1 + 0x40) = uVar4;\n      uVar4 = (*DAT_00196f88)(local_40,4);\n      *(undefined8 *)(param_1 + 0x28) = uVar4;\n      uVar4 = (*DAT_00196f88)(local_3c,4);\n      *(undefined8 *)(param_1 + 0x30) = uVar4;\n      uVar4 = (*DAT_00196f88)(local_38,4);\n      *(undefined8 *)(param_1 + 0x38) = uVar4;\n      uVar4 = (*DAT_00196f88)(local_34,4);\n      *(undefined8 *)(param_1 + 0x48) = uVar4;\n      uVar2 = (*DAT_00196f88)(local_30,2);\n      *(undefined4 *)(param_1 + 0x54) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_2e,2);\n      *(undefined4 *)(param_1 + 0x58) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_2c,2);\n      *(undefined4 *)(param_1 + 0x5c) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_2a,2);\n      *(undefined4 *)(param_1 + 0x60) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_28,2);\n      *(undefined4 *)(param_1 + 100) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_26,2);\n      *(undefined4 *)(param_1 + 0x68) = uVar2;\n    }\n    uVar4 = 1;\n    if (*(long *)(param_1 + 0x38) != 0) {\n      if (DAT_0019345c == 0) {\n        FUN_00115940(param_1,1);\n      }\n      else {\n        FUN_00115650();\n      }\n    }\n  }\n  return uVar4;\n}\n\n" (function_definition "undefined8 FUN_001195f0(long param_1)\n\n{\n  undefined2 uVar1;\n  undefined4 uVar2;\n  size_t sVar3;\n  undefined8 uVar4;\n  bool bVar5;\n  undefined1 local_48 [2];\n  undefined1 local_46 [2];\n  undefined1 local_44 [4];\n  undefined1 local_40 [4];\n  undefined1 local_3c [4];\n  undefined1 local_38 [4];\n  undefined1 local_34 [4];\n  undefined1 local_30 [2];\n  undefined1 local_2e [2];\n  undefined1 local_2c [2];\n  undefined1 local_2a [2];\n  undefined1 local_28 [2];\n  undefined1 local_26 [2];\n  undefined1 local_24 [2];\n  undefined1 local_22 [2];\n  undefined1 local_20 [2];\n  undefined1 local_1e [2];\n  undefined1 local_1c [2];\n  undefined1 local_1a [2];\n  \n  uVar4 = 0;\n  sVar3 = fread((void *)(param_1 + 0x18),0x10,1,*(FILE **)(param_1 + 8));\n  if (sVar3 == 1) {\n    if (*(char *)(param_1 + 0x1d) == '\x02') {\n      DAT_00196f88 = FUN_00154c60;\n      DAT_00196f90 = FUN_00155250;\n    }\n    else {\n      DAT_00196f88 = FUN_001552c0;\n      DAT_00196f90 = FUN_001551b0;\n    }\n    bVar5 = *(char *)(param_1 + 0x1c) == '\x02';\n    DAT_0019345c = (uint)!bVar5;\n    if (bVar5) {\n      sVar3 = fread(local_48,0x30,1,*(FILE **)(param_1 + 8));\n      if (sVar3 != 1) {\n        return 0;\n      }\n      uVar1 = (*DAT_00196f88)(local_48,2);\n      *(undefined2 *)(param_1 + 0x50) = uVar1;\n      uVar1 = (*DAT_00196f88)(local_46,2);\n      *(undefined2 *)(param_1 + 0x52) = uVar1;\n      uVar4 = (*DAT_00196f88)(local_44,4);\n      *(undefined8 *)(param_1 + 0x40) = uVar4;\n      uVar4 = (*DAT_00196f88)(local_40,8);\n      *(undefined8 *)(param_1 + 0x28) = uVar4;\n      uVar4 = (*DAT_00196f88)(local_38,8);\n      *(undefined8 *)(param_1 + 0x30) = uVar4;\n      uVar4 = (*DAT_00196f88)(local_30,8);\n      *(undefined8 *)(param_1 + 0x38) = uVar4;\n      uVar4 = (*DAT_00196f88)(local_28,4);\n      *(undefined8 *)(param_1 + 0x48) = uVar4;\n      uVar2 = (*DAT_00196f88)(local_24,2);\n      *(undefined4 *)(param_1 + 0x54) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_22,2);\n      *(undefined4 *)(param_1 + 0x58) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_20,2);\n      *(undefined4 *)(param_1 + 0x5c) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_1e,2);\n      *(undefined4 *)(param_1 + 0x60) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_1c,2);\n      *(undefined4 *)(param_1 + 100) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_1a,2);\n      *(undefined4 *)(param_1 + 0x68) = uVar2;\n    }\n    else {\n      sVar3 = fread(local_48,0x24,1,*(FILE **)(param_1 + 8));\n      if (sVar3 != 1) {\n        return 0;\n      }\n      uVar1 = (*DAT_00196f88)(local_48,2);\n      *(undefined2 *)(param_1 + 0x50) = uVar1;\n      uVar1 = (*DAT_00196f88)(local_46,2);\n      *(undefined2 *)(param_1 + 0x52) = uVar1;\n      uVar4 = (*DAT_00196f88)(local_44,4);\n      *(undefined8 *)(param_1 + 0x40) = uVar4;\n      uVar4 = (*DAT_00196f88)(local_40,4);\n      *(undefined8 *)(param_1 + 0x28) = uVar4;\n      uVar4 = (*DAT_00196f88)(local_3c,4);\n      *(undefined8 *)(param_1 + 0x30) = uVar4;\n      uVar4 = (*DAT_00196f88)(local_38,4);\n      *(undefined8 *)(param_1 + 0x38) = uVar4;\n      uVar4 = (*DAT_00196f88)(local_34,4);\n      *(undefined8 *)(param_1 + 0x48) = uVar4;\n      uVar2 = (*DAT_00196f88)(local_30,2);\n      *(undefined4 *)(param_1 + 0x54) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_2e,2);\n      *(undefined4 *)(param_1 + 0x58) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_2c,2);\n      *(undefined4 *)(param_1 + 0x5c) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_2a,2);\n      *(undefined4 *)(param_1 + 0x60) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_28,2);\n      *(undefined4 *)(param_1 + 100) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_26,2);\n      *(undefined4 *)(param_1 + 0x68) = uVar2;\n    }\n    uVar4 = 1;\n    if (*(long *)(param_1 + 0x38) != 0) {\n      if (DAT_0019345c == 0) {\n        FUN_00115940(param_1,1);\n      }\n      else {\n        FUN_00115650();\n      }\n    }\n  }\n  return uVar4;\n}" type_identifier (function_declarator "FUN_001195f0(long param_1)" identifier (parameter_list "(long param_1)" ( (parameter_declaration "long param_1" (sized_type_specifier "long" long) identifier) ))) (compound_statement "{\n  undefined2 uVar1;\n  undefined4 uVar2;\n  size_t sVar3;\n  undefined8 uVar4;\n  bool bVar5;\n  undefined1 local_48 [2];\n  undefined1 local_46 [2];\n  undefined1 local_44 [4];\n  undefined1 local_40 [4];\n  undefined1 local_3c [4];\n  undefined1 local_38 [4];\n  undefined1 local_34 [4];\n  undefined1 local_30 [2];\n  undefined1 local_2e [2];\n  undefined1 local_2c [2];\n  undefined1 local_2a [2];\n  undefined1 local_28 [2];\n  undefined1 local_26 [2];\n  undefined1 local_24 [2];\n  undefined1 local_22 [2];\n  undefined1 local_20 [2];\n  undefined1 local_1e [2];\n  undefined1 local_1c [2];\n  undefined1 local_1a [2];\n  \n  uVar4 = 0;\n  sVar3 = fread((void *)(param_1 + 0x18),0x10,1,*(FILE **)(param_1 + 8));\n  if (sVar3 == 1) {\n    if (*(char *)(param_1 + 0x1d) == '\x02') {\n      DAT_00196f88 = FUN_00154c60;\n      DAT_00196f90 = FUN_00155250;\n    }\n    else {\n      DAT_00196f88 = FUN_001552c0;\n      DAT_00196f90 = FUN_001551b0;\n    }\n    bVar5 = *(char *)(param_1 + 0x1c) == '\x02';\n    DAT_0019345c = (uint)!bVar5;\n    if (bVar5) {\n      sVar3 = fread(local_48,0x30,1,*(FILE **)(param_1 + 8));\n      if (sVar3 != 1) {\n        return 0;\n      }\n      uVar1 = (*DAT_00196f88)(local_48,2);\n      *(undefined2 *)(param_1 + 0x50) = uVar1;\n      uVar1 = (*DAT_00196f88)(local_46,2);\n      *(undefined2 *)(param_1 + 0x52) = uVar1;\n      uVar4 = (*DAT_00196f88)(local_44,4);\n      *(undefined8 *)(param_1 + 0x40) = uVar4;\n      uVar4 = (*DAT_00196f88)(local_40,8);\n      *(undefined8 *)(param_1 + 0x28) = uVar4;\n      uVar4 = (*DAT_00196f88)(local_38,8);\n      *(undefined8 *)(param_1 + 0x30) = uVar4;\n      uVar4 = (*DAT_00196f88)(local_30,8);\n      *(undefined8 *)(param_1 + 0x38) = uVar4;\n      uVar4 = (*DAT_00196f88)(local_28,4);\n      *(undefined8 *)(param_1 + 0x48) = uVar4;\n      uVar2 = (*DAT_00196f88)(local_24,2);\n      *(undefined4 *)(param_1 + 0x54) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_22,2);\n      *(undefined4 *)(param_1 + 0x58) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_20,2);\n      *(undefined4 *)(param_1 + 0x5c) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_1e,2);\n      *(undefined4 *)(param_1 + 0x60) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_1c,2);\n      *(undefined4 *)(param_1 + 100) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_1a,2);\n      *(undefined4 *)(param_1 + 0x68) = uVar2;\n    }\n    else {\n      sVar3 = fread(local_48,0x24,1,*(FILE **)(param_1 + 8));\n      if (sVar3 != 1) {\n        return 0;\n      }\n      uVar1 = (*DAT_00196f88)(local_48,2);\n      *(undefined2 *)(param_1 + 0x50) = uVar1;\n      uVar1 = (*DAT_00196f88)(local_46,2);\n      *(undefined2 *)(param_1 + 0x52) = uVar1;\n      uVar4 = (*DAT_00196f88)(local_44,4);\n      *(undefined8 *)(param_1 + 0x40) = uVar4;\n      uVar4 = (*DAT_00196f88)(local_40,4);\n      *(undefined8 *)(param_1 + 0x28) = uVar4;\n      uVar4 = (*DAT_00196f88)(local_3c,4);\n      *(undefined8 *)(param_1 + 0x30) = uVar4;\n      uVar4 = (*DAT_00196f88)(local_38,4);\n      *(undefined8 *)(param_1 + 0x38) = uVar4;\n      uVar4 = (*DAT_00196f88)(local_34,4);\n      *(undefined8 *)(param_1 + 0x48) = uVar4;\n      uVar2 = (*DAT_00196f88)(local_30,2);\n      *(undefined4 *)(param_1 + 0x54) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_2e,2);\n      *(undefined4 *)(param_1 + 0x58) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_2c,2);\n      *(undefined4 *)(param_1 + 0x5c) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_2a,2);\n      *(undefined4 *)(param_1 + 0x60) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_28,2);\n      *(undefined4 *)(param_1 + 100) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_26,2);\n      *(undefined4 *)(param_1 + 0x68) = uVar2;\n    }\n    uVar4 = 1;\n    if (*(long *)(param_1 + 0x38) != 0) {\n      if (DAT_0019345c == 0) {\n        FUN_00115940(param_1,1);\n      }\n      else {\n        FUN_00115650();\n      }\n    }\n  }\n  return uVar4;\n}" { (declaration "undefined2 uVar1;" type_identifier identifier ;) (declaration "undefined4 uVar2;" type_identifier identifier ;) (declaration "size_t sVar3;" primitive_type identifier ;) (declaration "undefined8 uVar4;" type_identifier identifier ;) (declaration "bool bVar5;" primitive_type identifier ;) (declaration "undefined1 local_48 [2];" type_identifier (array_declarator "local_48 [2]" identifier [ number_literal ]) ;) (declaration "undefined1 local_46 [2];" type_identifier (array_declarator "local_46 [2]" identifier [ number_literal ]) ;) (declaration "undefined1 local_44 [4];" type_identifier (array_declarator "local_44 [4]" identifier [ number_literal ]) ;) (declaration "undefined1 local_40 [4];" type_identifier (array_declarator "local_40 [4]" identifier [ number_literal ]) ;) (declaration "undefined1 local_3c [4];" type_identifier (array_declarator "local_3c [4]" identifier [ number_literal ]) ;) (declaration "undefined1 local_38 [4];" type_identifier (array_declarator "local_38 [4]" identifier [ number_literal ]) ;) (declaration "undefined1 local_34 [4];" type_identifier (array_declarator "local_34 [4]" identifier [ number_literal ]) ;) (declaration "undefined1 local_30 [2];" type_identifier (array_declarator "local_30 [2]" identifier [ number_literal ]) ;) (declaration "undefined1 local_2e [2];" type_identifier (array_declarator "local_2e [2]" identifier [ number_literal ]) ;) (declaration "undefined1 local_2c [2];" type_identifier (array_declarator "local_2c [2]" identifier [ number_literal ]) ;) (declaration "undefined1 local_2a [2];" type_identifier (array_declarator "local_2a [2]" identifier [ number_literal ]) ;) (declaration "undefined1 local_28 [2];" type_identifier (array_declarator "local_28 [2]" identifier [ number_literal ]) ;) (declaration "undefined1 local_26 [2];" type_identifier (array_declarator "local_26 [2]" identifier [ number_literal ]) ;) (declaration "undefined1 local_24 [2];" type_identifier (array_declarator "local_24 [2]" identifier [ number_literal ]) ;) (declaration "undefined1 local_22 [2];" type_identifier (array_declarator "local_22 [2]" identifier [ number_literal ]) ;) (declaration "undefined1 local_20 [2];" type_identifier (array_declarator "local_20 [2]" identifier [ number_literal ]) ;) (declaration "undefined1 local_1e [2];" type_identifier (array_declarator "local_1e [2]" identifier [ number_literal ]) ;) (declaration "undefined1 local_1c [2];" type_identifier (array_declarator "local_1c [2]" identifier [ number_literal ]) ;) (declaration "undefined1 local_1a [2];" type_identifier (array_declarator "local_1a [2]" identifier [ number_literal ]) ;) (expression_statement "uVar4 = 0;" (assignment_expression "uVar4 = 0" identifier = number_literal) ;) (expression_statement "sVar3 = fread((void *)(param_1 + 0x18),0x10,1,*(FILE **)(param_1 + 8));" (assignment_expression "sVar3 = fread((void *)(param_1 + 0x18),0x10,1,*(FILE **)(param_1 + 8))" identifier = (call_expression "fread((void *)(param_1 + 0x18),0x10,1,*(FILE **)(param_1 + 8))" identifier (argument_list "((void *)(param_1 + 0x18),0x10,1,*(FILE **)(param_1 + 8))" ( (cast_expression "(void *)(param_1 + 0x18)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) ))) , number_literal , number_literal , (pointer_expression "*(FILE **)(param_1 + 8)" * (cast_expression "(FILE **)(param_1 + 8)" ( (type_descriptor "FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) )))) ;) (if_statement "if (sVar3 == 1) {\n    if (*(char *)(param_1 + 0x1d) == '\x02') {\n      DAT_00196f88 = FUN_00154c60;\n      DAT_00196f90 = FUN_00155250;\n    }\n    else {\n      DAT_00196f88 = FUN_001552c0;\n      DAT_00196f90 = FUN_001551b0;\n    }\n    bVar5 = *(char *)(param_1 + 0x1c) == '\x02';\n    DAT_0019345c = (uint)!bVar5;\n    if (bVar5) {\n      sVar3 = fread(local_48,0x30,1,*(FILE **)(param_1 + 8));\n      if (sVar3 != 1) {\n        return 0;\n      }\n      uVar1 = (*DAT_00196f88)(local_48,2);\n      *(undefined2 *)(param_1 + 0x50) = uVar1;\n      uVar1 = (*DAT_00196f88)(local_46,2);\n      *(undefined2 *)(param_1 + 0x52) = uVar1;\n      uVar4 = (*DAT_00196f88)(local_44,4);\n      *(undefined8 *)(param_1 + 0x40) = uVar4;\n      uVar4 = (*DAT_00196f88)(local_40,8);\n      *(undefined8 *)(param_1 + 0x28) = uVar4;\n      uVar4 = (*DAT_00196f88)(local_38,8);\n      *(undefined8 *)(param_1 + 0x30) = uVar4;\n      uVar4 = (*DAT_00196f88)(local_30,8);\n      *(undefined8 *)(param_1 + 0x38) = uVar4;\n      uVar4 = (*DAT_00196f88)(local_28,4);\n      *(undefined8 *)(param_1 + 0x48) = uVar4;\n      uVar2 = (*DAT_00196f88)(local_24,2);\n      *(undefined4 *)(param_1 + 0x54) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_22,2);\n      *(undefined4 *)(param_1 + 0x58) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_20,2);\n      *(undefined4 *)(param_1 + 0x5c) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_1e,2);\n      *(undefined4 *)(param_1 + 0x60) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_1c,2);\n      *(undefined4 *)(param_1 + 100) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_1a,2);\n      *(undefined4 *)(param_1 + 0x68) = uVar2;\n    }\n    else {\n      sVar3 = fread(local_48,0x24,1,*(FILE **)(param_1 + 8));\n      if (sVar3 != 1) {\n        return 0;\n      }\n      uVar1 = (*DAT_00196f88)(local_48,2);\n      *(undefined2 *)(param_1 + 0x50) = uVar1;\n      uVar1 = (*DAT_00196f88)(local_46,2);\n      *(undefined2 *)(param_1 + 0x52) = uVar1;\n      uVar4 = (*DAT_00196f88)(local_44,4);\n      *(undefined8 *)(param_1 + 0x40) = uVar4;\n      uVar4 = (*DAT_00196f88)(local_40,4);\n      *(undefined8 *)(param_1 + 0x28) = uVar4;\n      uVar4 = (*DAT_00196f88)(local_3c,4);\n      *(undefined8 *)(param_1 + 0x30) = uVar4;\n      uVar4 = (*DAT_00196f88)(local_38,4);\n      *(undefined8 *)(param_1 + 0x38) = uVar4;\n      uVar4 = (*DAT_00196f88)(local_34,4);\n      *(undefined8 *)(param_1 + 0x48) = uVar4;\n      uVar2 = (*DAT_00196f88)(local_30,2);\n      *(undefined4 *)(param_1 + 0x54) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_2e,2);\n      *(undefined4 *)(param_1 + 0x58) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_2c,2);\n      *(undefined4 *)(param_1 + 0x5c) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_2a,2);\n      *(undefined4 *)(param_1 + 0x60) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_28,2);\n      *(undefined4 *)(param_1 + 100) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_26,2);\n      *(undefined4 *)(param_1 + 0x68) = uVar2;\n    }\n    uVar4 = 1;\n    if (*(long *)(param_1 + 0x38) != 0) {\n      if (DAT_0019345c == 0) {\n        FUN_00115940(param_1,1);\n      }\n      else {\n        FUN_00115650();\n      }\n    }\n  }" if (parenthesized_expression "(sVar3 == 1)" ( (binary_expression "sVar3 == 1" identifier == number_literal) )) (compound_statement "{\n    if (*(char *)(param_1 + 0x1d) == '\x02') {\n      DAT_00196f88 = FUN_00154c60;\n      DAT_00196f90 = FUN_00155250;\n    }\n    else {\n      DAT_00196f88 = FUN_001552c0;\n      DAT_00196f90 = FUN_001551b0;\n    }\n    bVar5 = *(char *)(param_1 + 0x1c) == '\x02';\n    DAT_0019345c = (uint)!bVar5;\n    if (bVar5) {\n      sVar3 = fread(local_48,0x30,1,*(FILE **)(param_1 + 8));\n      if (sVar3 != 1) {\n        return 0;\n      }\n      uVar1 = (*DAT_00196f88)(local_48,2);\n      *(undefined2 *)(param_1 + 0x50) = uVar1;\n      uVar1 = (*DAT_00196f88)(local_46,2);\n      *(undefined2 *)(param_1 + 0x52) = uVar1;\n      uVar4 = (*DAT_00196f88)(local_44,4);\n      *(undefined8 *)(param_1 + 0x40) = uVar4;\n      uVar4 = (*DAT_00196f88)(local_40,8);\n      *(undefined8 *)(param_1 + 0x28) = uVar4;\n      uVar4 = (*DAT_00196f88)(local_38,8);\n      *(undefined8 *)(param_1 + 0x30) = uVar4;\n      uVar4 = (*DAT_00196f88)(local_30,8);\n      *(undefined8 *)(param_1 + 0x38) = uVar4;\n      uVar4 = (*DAT_00196f88)(local_28,4);\n      *(undefined8 *)(param_1 + 0x48) = uVar4;\n      uVar2 = (*DAT_00196f88)(local_24,2);\n      *(undefined4 *)(param_1 + 0x54) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_22,2);\n      *(undefined4 *)(param_1 + 0x58) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_20,2);\n      *(undefined4 *)(param_1 + 0x5c) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_1e,2);\n      *(undefined4 *)(param_1 + 0x60) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_1c,2);\n      *(undefined4 *)(param_1 + 100) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_1a,2);\n      *(undefined4 *)(param_1 + 0x68) = uVar2;\n    }\n    else {\n      sVar3 = fread(local_48,0x24,1,*(FILE **)(param_1 + 8));\n      if (sVar3 != 1) {\n        return 0;\n      }\n      uVar1 = (*DAT_00196f88)(local_48,2);\n      *(undefined2 *)(param_1 + 0x50) = uVar1;\n      uVar1 = (*DAT_00196f88)(local_46,2);\n      *(undefined2 *)(param_1 + 0x52) = uVar1;\n      uVar4 = (*DAT_00196f88)(local_44,4);\n      *(undefined8 *)(param_1 + 0x40) = uVar4;\n      uVar4 = (*DAT_00196f88)(local_40,4);\n      *(undefined8 *)(param_1 + 0x28) = uVar4;\n      uVar4 = (*DAT_00196f88)(local_3c,4);\n      *(undefined8 *)(param_1 + 0x30) = uVar4;\n      uVar4 = (*DAT_00196f88)(local_38,4);\n      *(undefined8 *)(param_1 + 0x38) = uVar4;\n      uVar4 = (*DAT_00196f88)(local_34,4);\n      *(undefined8 *)(param_1 + 0x48) = uVar4;\n      uVar2 = (*DAT_00196f88)(local_30,2);\n      *(undefined4 *)(param_1 + 0x54) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_2e,2);\n      *(undefined4 *)(param_1 + 0x58) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_2c,2);\n      *(undefined4 *)(param_1 + 0x5c) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_2a,2);\n      *(undefined4 *)(param_1 + 0x60) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_28,2);\n      *(undefined4 *)(param_1 + 100) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_26,2);\n      *(undefined4 *)(param_1 + 0x68) = uVar2;\n    }\n    uVar4 = 1;\n    if (*(long *)(param_1 + 0x38) != 0) {\n      if (DAT_0019345c == 0) {\n        FUN_00115940(param_1,1);\n      }\n      else {\n        FUN_00115650();\n      }\n    }\n  }" { (if_statement "if (*(char *)(param_1 + 0x1d) == '\x02') {\n      DAT_00196f88 = FUN_00154c60;\n      DAT_00196f90 = FUN_00155250;\n    }\n    else {\n      DAT_00196f88 = FUN_001552c0;\n      DAT_00196f90 = FUN_001551b0;\n    }" if (parenthesized_expression "(*(char *)(param_1 + 0x1d) == '\x02')" ( (binary_expression "*(char *)(param_1 + 0x1d) == '\x02'" (pointer_expression "*(char *)(param_1 + 0x1d)" * (cast_expression "(char *)(param_1 + 0x1d)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1d)" ( (binary_expression "param_1 + 0x1d" identifier + number_literal) )))) == (char_literal "'\x02'" ' escape_sequence ')) )) (compound_statement "{\n      DAT_00196f88 = FUN_00154c60;\n      DAT_00196f90 = FUN_00155250;\n    }" { (expression_statement "DAT_00196f88 = FUN_00154c60;" (assignment_expression "DAT_00196f88 = FUN_00154c60" identifier = identifier) ;) (expression_statement "DAT_00196f90 = FUN_00155250;" (assignment_expression "DAT_00196f90 = FUN_00155250" identifier = identifier) ;) }) (else_clause "else {\n      DAT_00196f88 = FUN_001552c0;\n      DAT_00196f90 = FUN_001551b0;\n    }" else (compound_statement "{\n      DAT_00196f88 = FUN_001552c0;\n      DAT_00196f90 = FUN_001551b0;\n    }" { (expression_statement "DAT_00196f88 = FUN_001552c0;" (assignment_expression "DAT_00196f88 = FUN_001552c0" identifier = identifier) ;) (expression_statement "DAT_00196f90 = FUN_001551b0;" (assignment_expression "DAT_00196f90 = FUN_001551b0" identifier = identifier) ;) }))) (expression_statement "bVar5 = *(char *)(param_1 + 0x1c) == '\x02';" (assignment_expression "bVar5 = *(char *)(param_1 + 0x1c) == '\x02'" identifier = (binary_expression "*(char *)(param_1 + 0x1c) == '\x02'" (pointer_expression "*(char *)(param_1 + 0x1c)" * (cast_expression "(char *)(param_1 + 0x1c)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1c)" ( (binary_expression "param_1 + 0x1c" identifier + number_literal) )))) == (char_literal "'\x02'" ' escape_sequence '))) ;) (expression_statement "DAT_0019345c = (uint)!bVar5;" (assignment_expression "DAT_0019345c = (uint)!bVar5" identifier = (cast_expression "(uint)!bVar5" ( (type_descriptor "uint" type_identifier) ) (unary_expression "!bVar5" ! identifier))) ;) (if_statement "if (bVar5) {\n      sVar3 = fread(local_48,0x30,1,*(FILE **)(param_1 + 8));\n      if (sVar3 != 1) {\n        return 0;\n      }\n      uVar1 = (*DAT_00196f88)(local_48,2);\n      *(undefined2 *)(param_1 + 0x50) = uVar1;\n      uVar1 = (*DAT_00196f88)(local_46,2);\n      *(undefined2 *)(param_1 + 0x52) = uVar1;\n      uVar4 = (*DAT_00196f88)(local_44,4);\n      *(undefined8 *)(param_1 + 0x40) = uVar4;\n      uVar4 = (*DAT_00196f88)(local_40,8);\n      *(undefined8 *)(param_1 + 0x28) = uVar4;\n      uVar4 = (*DAT_00196f88)(local_38,8);\n      *(undefined8 *)(param_1 + 0x30) = uVar4;\n      uVar4 = (*DAT_00196f88)(local_30,8);\n      *(undefined8 *)(param_1 + 0x38) = uVar4;\n      uVar4 = (*DAT_00196f88)(local_28,4);\n      *(undefined8 *)(param_1 + 0x48) = uVar4;\n      uVar2 = (*DAT_00196f88)(local_24,2);\n      *(undefined4 *)(param_1 + 0x54) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_22,2);\n      *(undefined4 *)(param_1 + 0x58) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_20,2);\n      *(undefined4 *)(param_1 + 0x5c) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_1e,2);\n      *(undefined4 *)(param_1 + 0x60) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_1c,2);\n      *(undefined4 *)(param_1 + 100) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_1a,2);\n      *(undefined4 *)(param_1 + 0x68) = uVar2;\n    }\n    else {\n      sVar3 = fread(local_48,0x24,1,*(FILE **)(param_1 + 8));\n      if (sVar3 != 1) {\n        return 0;\n      }\n      uVar1 = (*DAT_00196f88)(local_48,2);\n      *(undefined2 *)(param_1 + 0x50) = uVar1;\n      uVar1 = (*DAT_00196f88)(local_46,2);\n      *(undefined2 *)(param_1 + 0x52) = uVar1;\n      uVar4 = (*DAT_00196f88)(local_44,4);\n      *(undefined8 *)(param_1 + 0x40) = uVar4;\n      uVar4 = (*DAT_00196f88)(local_40,4);\n      *(undefined8 *)(param_1 + 0x28) = uVar4;\n      uVar4 = (*DAT_00196f88)(local_3c,4);\n      *(undefined8 *)(param_1 + 0x30) = uVar4;\n      uVar4 = (*DAT_00196f88)(local_38,4);\n      *(undefined8 *)(param_1 + 0x38) = uVar4;\n      uVar4 = (*DAT_00196f88)(local_34,4);\n      *(undefined8 *)(param_1 + 0x48) = uVar4;\n      uVar2 = (*DAT_00196f88)(local_30,2);\n      *(undefined4 *)(param_1 + 0x54) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_2e,2);\n      *(undefined4 *)(param_1 + 0x58) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_2c,2);\n      *(undefined4 *)(param_1 + 0x5c) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_2a,2);\n      *(undefined4 *)(param_1 + 0x60) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_28,2);\n      *(undefined4 *)(param_1 + 100) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_26,2);\n      *(undefined4 *)(param_1 + 0x68) = uVar2;\n    }" if (parenthesized_expression "(bVar5)" ( identifier )) (compound_statement "{\n      sVar3 = fread(local_48,0x30,1,*(FILE **)(param_1 + 8));\n      if (sVar3 != 1) {\n        return 0;\n      }\n      uVar1 = (*DAT_00196f88)(local_48,2);\n      *(undefined2 *)(param_1 + 0x50) = uVar1;\n      uVar1 = (*DAT_00196f88)(local_46,2);\n      *(undefined2 *)(param_1 + 0x52) = uVar1;\n      uVar4 = (*DAT_00196f88)(local_44,4);\n      *(undefined8 *)(param_1 + 0x40) = uVar4;\n      uVar4 = (*DAT_00196f88)(local_40,8);\n      *(undefined8 *)(param_1 + 0x28) = uVar4;\n      uVar4 = (*DAT_00196f88)(local_38,8);\n      *(undefined8 *)(param_1 + 0x30) = uVar4;\n      uVar4 = (*DAT_00196f88)(local_30,8);\n      *(undefined8 *)(param_1 + 0x38) = uVar4;\n      uVar4 = (*DAT_00196f88)(local_28,4);\n      *(undefined8 *)(param_1 + 0x48) = uVar4;\n      uVar2 = (*DAT_00196f88)(local_24,2);\n      *(undefined4 *)(param_1 + 0x54) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_22,2);\n      *(undefined4 *)(param_1 + 0x58) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_20,2);\n      *(undefined4 *)(param_1 + 0x5c) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_1e,2);\n      *(undefined4 *)(param_1 + 0x60) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_1c,2);\n      *(undefined4 *)(param_1 + 100) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_1a,2);\n      *(undefined4 *)(param_1 + 0x68) = uVar2;\n    }" { (expression_statement "sVar3 = fread(local_48,0x30,1,*(FILE **)(param_1 + 8));" (assignment_expression "sVar3 = fread(local_48,0x30,1,*(FILE **)(param_1 + 8))" identifier = (call_expression "fread(local_48,0x30,1,*(FILE **)(param_1 + 8))" identifier (argument_list "(local_48,0x30,1,*(FILE **)(param_1 + 8))" ( identifier , number_literal , number_literal , (pointer_expression "*(FILE **)(param_1 + 8)" * (cast_expression "(FILE **)(param_1 + 8)" ( (type_descriptor "FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) )))) ;) (if_statement "if (sVar3 != 1) {\n        return 0;\n      }" if (parenthesized_expression "(sVar3 != 1)" ( (binary_expression "sVar3 != 1" identifier != number_literal) )) (compound_statement "{\n        return 0;\n      }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "uVar1 = (*DAT_00196f88)(local_48,2);" (assignment_expression "uVar1 = (*DAT_00196f88)(local_48,2)" identifier = (call_expression "(*DAT_00196f88)(local_48,2)" (parenthesized_expression "(*DAT_00196f88)" ( (pointer_expression "*DAT_00196f88" * identifier) )) (argument_list "(local_48,2)" ( identifier , number_literal )))) ;) (expression_statement "*(undefined2 *)(param_1 + 0x50) = uVar1;" (assignment_expression "*(undefined2 *)(param_1 + 0x50) = uVar1" (pointer_expression "*(undefined2 *)(param_1 + 0x50)" * (cast_expression "(undefined2 *)(param_1 + 0x50)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x50)" ( (binary_expression "param_1 + 0x50" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar1 = (*DAT_00196f88)(local_46,2);" (assignment_expression "uVar1 = (*DAT_00196f88)(local_46,2)" identifier = (call_expression "(*DAT_00196f88)(local_46,2)" (parenthesized_expression "(*DAT_00196f88)" ( (pointer_expression "*DAT_00196f88" * identifier) )) (argument_list "(local_46,2)" ( identifier , number_literal )))) ;) (expression_statement "*(undefined2 *)(param_1 + 0x52) = uVar1;" (assignment_expression "*(undefined2 *)(param_1 + 0x52) = uVar1" (pointer_expression "*(undefined2 *)(param_1 + 0x52)" * (cast_expression "(undefined2 *)(param_1 + 0x52)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x52)" ( (binary_expression "param_1 + 0x52" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar4 = (*DAT_00196f88)(local_44,4);" (assignment_expression "uVar4 = (*DAT_00196f88)(local_44,4)" identifier = (call_expression "(*DAT_00196f88)(local_44,4)" (parenthesized_expression "(*DAT_00196f88)" ( (pointer_expression "*DAT_00196f88" * identifier) )) (argument_list "(local_44,4)" ( identifier , number_literal )))) ;) (expression_statement "*(undefined8 *)(param_1 + 0x40) = uVar4;" (assignment_expression "*(undefined8 *)(param_1 + 0x40) = uVar4" (pointer_expression "*(undefined8 *)(param_1 + 0x40)" * (cast_expression "(undefined8 *)(param_1 + 0x40)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x40)" ( (binary_expression "param_1 + 0x40" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar4 = (*DAT_00196f88)(local_40,8);" (assignment_expression "uVar4 = (*DAT_00196f88)(local_40,8)" identifier = (call_expression "(*DAT_00196f88)(local_40,8)" (parenthesized_expression "(*DAT_00196f88)" ( (pointer_expression "*DAT_00196f88" * identifier) )) (argument_list "(local_40,8)" ( identifier , number_literal )))) ;) (expression_statement "*(undefined8 *)(param_1 + 0x28) = uVar4;" (assignment_expression "*(undefined8 *)(param_1 + 0x28) = uVar4" (pointer_expression "*(undefined8 *)(param_1 + 0x28)" * (cast_expression "(undefined8 *)(param_1 + 0x28)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar4 = (*DAT_00196f88)(local_38,8);" (assignment_expression "uVar4 = (*DAT_00196f88)(local_38,8)" identifier = (call_expression "(*DAT_00196f88)(local_38,8)" (parenthesized_expression "(*DAT_00196f88)" ( (pointer_expression "*DAT_00196f88" * identifier) )) (argument_list "(local_38,8)" ( identifier , number_literal )))) ;) (expression_statement "*(undefined8 *)(param_1 + 0x30) = uVar4;" (assignment_expression "*(undefined8 *)(param_1 + 0x30) = uVar4" (pointer_expression "*(undefined8 *)(param_1 + 0x30)" * (cast_expression "(undefined8 *)(param_1 + 0x30)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x30)" ( (binary_expression "param_1 + 0x30" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar4 = (*DAT_00196f88)(local_30,8);" (assignment_expression "uVar4 = (*DAT_00196f88)(local_30,8)" identifier = (call_expression "(*DAT_00196f88)(local_30,8)" (parenthesized_expression "(*DAT_00196f88)" ( (pointer_expression "*DAT_00196f88" * identifier) )) (argument_list "(local_30,8)" ( identifier , number_literal )))) ;) (expression_statement "*(undefined8 *)(param_1 + 0x38) = uVar4;" (assignment_expression "*(undefined8 *)(param_1 + 0x38) = uVar4" (pointer_expression "*(undefined8 *)(param_1 + 0x38)" * (cast_expression "(undefined8 *)(param_1 + 0x38)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x38)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar4 = (*DAT_00196f88)(local_28,4);" (assignment_expression "uVar4 = (*DAT_00196f88)(local_28,4)" identifier = (call_expression "(*DAT_00196f88)(local_28,4)" (parenthesized_expression "(*DAT_00196f88)" ( (pointer_expression "*DAT_00196f88" * identifier) )) (argument_list "(local_28,4)" ( identifier , number_literal )))) ;) (expression_statement "*(undefined8 *)(param_1 + 0x48) = uVar4;" (assignment_expression "*(undefined8 *)(param_1 + 0x48) = uVar4" (pointer_expression "*(undefined8 *)(param_1 + 0x48)" * (cast_expression "(undefined8 *)(param_1 + 0x48)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x48)" ( (binary_expression "param_1 + 0x48" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar2 = (*DAT_00196f88)(local_24,2);" (assignment_expression "uVar2 = (*DAT_00196f88)(local_24,2)" identifier = (call_expression "(*DAT_00196f88)(local_24,2)" (parenthesized_expression "(*DAT_00196f88)" ( (pointer_expression "*DAT_00196f88" * identifier) )) (argument_list "(local_24,2)" ( identifier , number_literal )))) ;) (expression_statement "*(undefined4 *)(param_1 + 0x54) = uVar2;" (assignment_expression "*(undefined4 *)(param_1 + 0x54) = uVar2" (pointer_expression "*(undefined4 *)(param_1 + 0x54)" * (cast_expression "(undefined4 *)(param_1 + 0x54)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x54)" ( (binary_expression "param_1 + 0x54" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar2 = (*DAT_00196f88)(local_22,2);" (assignment_expression "uVar2 = (*DAT_00196f88)(local_22,2)" identifier = (call_expression "(*DAT_00196f88)(local_22,2)" (parenthesized_expression "(*DAT_00196f88)" ( (pointer_expression "*DAT_00196f88" * identifier) )) (argument_list "(local_22,2)" ( identifier , number_literal )))) ;) (expression_statement "*(undefined4 *)(param_1 + 0x58) = uVar2;" (assignment_expression "*(undefined4 *)(param_1 + 0x58) = uVar2" (pointer_expression "*(undefined4 *)(param_1 + 0x58)" * (cast_expression "(undefined4 *)(param_1 + 0x58)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x58)" ( (binary_expression "param_1 + 0x58" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar2 = (*DAT_00196f88)(local_20,2);" (assignment_expression "uVar2 = (*DAT_00196f88)(local_20,2)" identifier = (call_expression "(*DAT_00196f88)(local_20,2)" (parenthesized_expression "(*DAT_00196f88)" ( (pointer_expression "*DAT_00196f88" * identifier) )) (argument_list "(local_20,2)" ( identifier , number_literal )))) ;) (expression_statement "*(undefined4 *)(param_1 + 0x5c) = uVar2;" (assignment_expression "*(undefined4 *)(param_1 + 0x5c) = uVar2" (pointer_expression "*(undefined4 *)(param_1 + 0x5c)" * (cast_expression "(undefined4 *)(param_1 + 0x5c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x5c)" ( (binary_expression "param_1 + 0x5c" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar2 = (*DAT_00196f88)(local_1e,2);" (assignment_expression "uVar2 = (*DAT_00196f88)(local_1e,2)" identifier = (call_expression "(*DAT_00196f88)(local_1e,2)" (parenthesized_expression "(*DAT_00196f88)" ( (pointer_expression "*DAT_00196f88" * identifier) )) (argument_list "(local_1e,2)" ( identifier , number_literal )))) ;) (expression_statement "*(undefined4 *)(param_1 + 0x60) = uVar2;" (assignment_expression "*(undefined4 *)(param_1 + 0x60) = uVar2" (pointer_expression "*(undefined4 *)(param_1 + 0x60)" * (cast_expression "(undefined4 *)(param_1 + 0x60)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x60)" ( (binary_expression "param_1 + 0x60" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar2 = (*DAT_00196f88)(local_1c,2);" (assignment_expression "uVar2 = (*DAT_00196f88)(local_1c,2)" identifier = (call_expression "(*DAT_00196f88)(local_1c,2)" (parenthesized_expression "(*DAT_00196f88)" ( (pointer_expression "*DAT_00196f88" * identifier) )) (argument_list "(local_1c,2)" ( identifier , number_literal )))) ;) (expression_statement "*(undefined4 *)(param_1 + 100) = uVar2;" (assignment_expression "*(undefined4 *)(param_1 + 100) = uVar2" (pointer_expression "*(undefined4 *)(param_1 + 100)" * (cast_expression "(undefined4 *)(param_1 + 100)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 100)" ( (binary_expression "param_1 + 100" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar2 = (*DAT_00196f88)(local_1a,2);" (assignment_expression "uVar2 = (*DAT_00196f88)(local_1a,2)" identifier = (call_expression "(*DAT_00196f88)(local_1a,2)" (parenthesized_expression "(*DAT_00196f88)" ( (pointer_expression "*DAT_00196f88" * identifier) )) (argument_list "(local_1a,2)" ( identifier , number_literal )))) ;) (expression_statement "*(undefined4 *)(param_1 + 0x68) = uVar2;" (assignment_expression "*(undefined4 *)(param_1 + 0x68) = uVar2" (pointer_expression "*(undefined4 *)(param_1 + 0x68)" * (cast_expression "(undefined4 *)(param_1 + 0x68)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x68)" ( (binary_expression "param_1 + 0x68" identifier + number_literal) )))) = identifier) ;) }) (else_clause "else {\n      sVar3 = fread(local_48,0x24,1,*(FILE **)(param_1 + 8));\n      if (sVar3 != 1) {\n        return 0;\n      }\n      uVar1 = (*DAT_00196f88)(local_48,2);\n      *(undefined2 *)(param_1 + 0x50) = uVar1;\n      uVar1 = (*DAT_00196f88)(local_46,2);\n      *(undefined2 *)(param_1 + 0x52) = uVar1;\n      uVar4 = (*DAT_00196f88)(local_44,4);\n      *(undefined8 *)(param_1 + 0x40) = uVar4;\n      uVar4 = (*DAT_00196f88)(local_40,4);\n      *(undefined8 *)(param_1 + 0x28) = uVar4;\n      uVar4 = (*DAT_00196f88)(local_3c,4);\n      *(undefined8 *)(param_1 + 0x30) = uVar4;\n      uVar4 = (*DAT_00196f88)(local_38,4);\n      *(undefined8 *)(param_1 + 0x38) = uVar4;\n      uVar4 = (*DAT_00196f88)(local_34,4);\n      *(undefined8 *)(param_1 + 0x48) = uVar4;\n      uVar2 = (*DAT_00196f88)(local_30,2);\n      *(undefined4 *)(param_1 + 0x54) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_2e,2);\n      *(undefined4 *)(param_1 + 0x58) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_2c,2);\n      *(undefined4 *)(param_1 + 0x5c) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_2a,2);\n      *(undefined4 *)(param_1 + 0x60) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_28,2);\n      *(undefined4 *)(param_1 + 100) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_26,2);\n      *(undefined4 *)(param_1 + 0x68) = uVar2;\n    }" else (compound_statement "{\n      sVar3 = fread(local_48,0x24,1,*(FILE **)(param_1 + 8));\n      if (sVar3 != 1) {\n        return 0;\n      }\n      uVar1 = (*DAT_00196f88)(local_48,2);\n      *(undefined2 *)(param_1 + 0x50) = uVar1;\n      uVar1 = (*DAT_00196f88)(local_46,2);\n      *(undefined2 *)(param_1 + 0x52) = uVar1;\n      uVar4 = (*DAT_00196f88)(local_44,4);\n      *(undefined8 *)(param_1 + 0x40) = uVar4;\n      uVar4 = (*DAT_00196f88)(local_40,4);\n      *(undefined8 *)(param_1 + 0x28) = uVar4;\n      uVar4 = (*DAT_00196f88)(local_3c,4);\n      *(undefined8 *)(param_1 + 0x30) = uVar4;\n      uVar4 = (*DAT_00196f88)(local_38,4);\n      *(undefined8 *)(param_1 + 0x38) = uVar4;\n      uVar4 = (*DAT_00196f88)(local_34,4);\n      *(undefined8 *)(param_1 + 0x48) = uVar4;\n      uVar2 = (*DAT_00196f88)(local_30,2);\n      *(undefined4 *)(param_1 + 0x54) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_2e,2);\n      *(undefined4 *)(param_1 + 0x58) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_2c,2);\n      *(undefined4 *)(param_1 + 0x5c) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_2a,2);\n      *(undefined4 *)(param_1 + 0x60) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_28,2);\n      *(undefined4 *)(param_1 + 100) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_26,2);\n      *(undefined4 *)(param_1 + 0x68) = uVar2;\n    }" { (expression_statement "sVar3 = fread(local_48,0x24,1,*(FILE **)(param_1 + 8));" (assignment_expression "sVar3 = fread(local_48,0x24,1,*(FILE **)(param_1 + 8))" identifier = (call_expression "fread(local_48,0x24,1,*(FILE **)(param_1 + 8))" identifier (argument_list "(local_48,0x24,1,*(FILE **)(param_1 + 8))" ( identifier , number_literal , number_literal , (pointer_expression "*(FILE **)(param_1 + 8)" * (cast_expression "(FILE **)(param_1 + 8)" ( (type_descriptor "FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) )))) ;) (if_statement "if (sVar3 != 1) {\n        return 0;\n      }" if (parenthesized_expression "(sVar3 != 1)" ( (binary_expression "sVar3 != 1" identifier != number_literal) )) (compound_statement "{\n        return 0;\n      }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "uVar1 = (*DAT_00196f88)(local_48,2);" (assignment_expression "uVar1 = (*DAT_00196f88)(local_48,2)" identifier = (call_expression "(*DAT_00196f88)(local_48,2)" (parenthesized_expression "(*DAT_00196f88)" ( (pointer_expression "*DAT_00196f88" * identifier) )) (argument_list "(local_48,2)" ( identifier , number_literal )))) ;) (expression_statement "*(undefined2 *)(param_1 + 0x50) = uVar1;" (assignment_expression "*(undefined2 *)(param_1 + 0x50) = uVar1" (pointer_expression "*(undefined2 *)(param_1 + 0x50)" * (cast_expression "(undefined2 *)(param_1 + 0x50)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x50)" ( (binary_expression "param_1 + 0x50" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar1 = (*DAT_00196f88)(local_46,2);" (assignment_expression "uVar1 = (*DAT_00196f88)(local_46,2)" identifier = (call_expression "(*DAT_00196f88)(local_46,2)" (parenthesized_expression "(*DAT_00196f88)" ( (pointer_expression "*DAT_00196f88" * identifier) )) (argument_list "(local_46,2)" ( identifier , number_literal )))) ;) (expression_statement "*(undefined2 *)(param_1 + 0x52) = uVar1;" (assignment_expression "*(undefined2 *)(param_1 + 0x52) = uVar1" (pointer_expression "*(undefined2 *)(param_1 + 0x52)" * (cast_expression "(undefined2 *)(param_1 + 0x52)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x52)" ( (binary_expression "param_1 + 0x52" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar4 = (*DAT_00196f88)(local_44,4);" (assignment_expression "uVar4 = (*DAT_00196f88)(local_44,4)" identifier = (call_expression "(*DAT_00196f88)(local_44,4)" (parenthesized_expression "(*DAT_00196f88)" ( (pointer_expression "*DAT_00196f88" * identifier) )) (argument_list "(local_44,4)" ( identifier , number_literal )))) ;) (expression_statement "*(undefined8 *)(param_1 + 0x40) = uVar4;" (assignment_expression "*(undefined8 *)(param_1 + 0x40) = uVar4" (pointer_expression "*(undefined8 *)(param_1 + 0x40)" * (cast_expression "(undefined8 *)(param_1 + 0x40)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x40)" ( (binary_expression "param_1 + 0x40" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar4 = (*DAT_00196f88)(local_40,4);" (assignment_expression "uVar4 = (*DAT_00196f88)(local_40,4)" identifier = (call_expression "(*DAT_00196f88)(local_40,4)" (parenthesized_expression "(*DAT_00196f88)" ( (pointer_expression "*DAT_00196f88" * identifier) )) (argument_list "(local_40,4)" ( identifier , number_literal )))) ;) (expression_statement "*(undefined8 *)(param_1 + 0x28) = uVar4;" (assignment_expression "*(undefined8 *)(param_1 + 0x28) = uVar4" (pointer_expression "*(undefined8 *)(param_1 + 0x28)" * (cast_expression "(undefined8 *)(param_1 + 0x28)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar4 = (*DAT_00196f88)(local_3c,4);" (assignment_expression "uVar4 = (*DAT_00196f88)(local_3c,4)" identifier = (call_expression "(*DAT_00196f88)(local_3c,4)" (parenthesized_expression "(*DAT_00196f88)" ( (pointer_expression "*DAT_00196f88" * identifier) )) (argument_list "(local_3c,4)" ( identifier , number_literal )))) ;) (expression_statement "*(undefined8 *)(param_1 + 0x30) = uVar4;" (assignment_expression "*(undefined8 *)(param_1 + 0x30) = uVar4" (pointer_expression "*(undefined8 *)(param_1 + 0x30)" * (cast_expression "(undefined8 *)(param_1 + 0x30)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x30)" ( (binary_expression "param_1 + 0x30" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar4 = (*DAT_00196f88)(local_38,4);" (assignment_expression "uVar4 = (*DAT_00196f88)(local_38,4)" identifier = (call_expression "(*DAT_00196f88)(local_38,4)" (parenthesized_expression "(*DAT_00196f88)" ( (pointer_expression "*DAT_00196f88" * identifier) )) (argument_list "(local_38,4)" ( identifier , number_literal )))) ;) (expression_statement "*(undefined8 *)(param_1 + 0x38) = uVar4;" (assignment_expression "*(undefined8 *)(param_1 + 0x38) = uVar4" (pointer_expression "*(undefined8 *)(param_1 + 0x38)" * (cast_expression "(undefined8 *)(param_1 + 0x38)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x38)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar4 = (*DAT_00196f88)(local_34,4);" (assignment_expression "uVar4 = (*DAT_00196f88)(local_34,4)" identifier = (call_expression "(*DAT_00196f88)(local_34,4)" (parenthesized_expression "(*DAT_00196f88)" ( (pointer_expression "*DAT_00196f88" * identifier) )) (argument_list "(local_34,4)" ( identifier , number_literal )))) ;) (expression_statement "*(undefined8 *)(param_1 + 0x48) = uVar4;" (assignment_expression "*(undefined8 *)(param_1 + 0x48) = uVar4" (pointer_expression "*(undefined8 *)(param_1 + 0x48)" * (cast_expression "(undefined8 *)(param_1 + 0x48)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x48)" ( (binary_expression "param_1 + 0x48" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar2 = (*DAT_00196f88)(local_30,2);" (assignment_expression "uVar2 = (*DAT_00196f88)(local_30,2)" identifier = (call_expression "(*DAT_00196f88)(local_30,2)" (parenthesized_expression "(*DAT_00196f88)" ( (pointer_expression "*DAT_00196f88" * identifier) )) (argument_list "(local_30,2)" ( identifier , number_literal )))) ;) (expression_statement "*(undefined4 *)(param_1 + 0x54) = uVar2;" (assignment_expression "*(undefined4 *)(param_1 + 0x54) = uVar2" (pointer_expression "*(undefined4 *)(param_1 + 0x54)" * (cast_expression "(undefined4 *)(param_1 + 0x54)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x54)" ( (binary_expression "param_1 + 0x54" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar2 = (*DAT_00196f88)(local_2e,2);" (assignment_expression "uVar2 = (*DAT_00196f88)(local_2e,2)" identifier = (call_expression "(*DAT_00196f88)(local_2e,2)" (parenthesized_expression "(*DAT_00196f88)" ( (pointer_expression "*DAT_00196f88" * identifier) )) (argument_list "(local_2e,2)" ( identifier , number_literal )))) ;) (expression_statement "*(undefined4 *)(param_1 + 0x58) = uVar2;" (assignment_expression "*(undefined4 *)(param_1 + 0x58) = uVar2" (pointer_expression "*(undefined4 *)(param_1 + 0x58)" * (cast_expression "(undefined4 *)(param_1 + 0x58)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x58)" ( (binary_expression "param_1 + 0x58" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar2 = (*DAT_00196f88)(local_2c,2);" (assignment_expression "uVar2 = (*DAT_00196f88)(local_2c,2)" identifier = (call_expression "(*DAT_00196f88)(local_2c,2)" (parenthesized_expression "(*DAT_00196f88)" ( (pointer_expression "*DAT_00196f88" * identifier) )) (argument_list "(local_2c,2)" ( identifier , number_literal )))) ;) (expression_statement "*(undefined4 *)(param_1 + 0x5c) = uVar2;" (assignment_expression "*(undefined4 *)(param_1 + 0x5c) = uVar2" (pointer_expression "*(undefined4 *)(param_1 + 0x5c)" * (cast_expression "(undefined4 *)(param_1 + 0x5c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x5c)" ( (binary_expression "param_1 + 0x5c" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar2 = (*DAT_00196f88)(local_2a,2);" (assignment_expression "uVar2 = (*DAT_00196f88)(local_2a,2)" identifier = (call_expression "(*DAT_00196f88)(local_2a,2)" (parenthesized_expression "(*DAT_00196f88)" ( (pointer_expression "*DAT_00196f88" * identifier) )) (argument_list "(local_2a,2)" ( identifier , number_literal )))) ;) (expression_statement "*(undefined4 *)(param_1 + 0x60) = uVar2;" (assignment_expression "*(undefined4 *)(param_1 + 0x60) = uVar2" (pointer_expression "*(undefined4 *)(param_1 + 0x60)" * (cast_expression "(undefined4 *)(param_1 + 0x60)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x60)" ( (binary_expression "param_1 + 0x60" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar2 = (*DAT_00196f88)(local_28,2);" (assignment_expression "uVar2 = (*DAT_00196f88)(local_28,2)" identifier = (call_expression "(*DAT_00196f88)(local_28,2)" (parenthesized_expression "(*DAT_00196f88)" ( (pointer_expression "*DAT_00196f88" * identifier) )) (argument_list "(local_28,2)" ( identifier , number_literal )))) ;) (expression_statement "*(undefined4 *)(param_1 + 100) = uVar2;" (assignment_expression "*(undefined4 *)(param_1 + 100) = uVar2" (pointer_expression "*(undefined4 *)(param_1 + 100)" * (cast_expression "(undefined4 *)(param_1 + 100)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 100)" ( (binary_expression "param_1 + 100" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar2 = (*DAT_00196f88)(local_26,2);" (assignment_expression "uVar2 = (*DAT_00196f88)(local_26,2)" identifier = (call_expression "(*DAT_00196f88)(local_26,2)" (parenthesized_expression "(*DAT_00196f88)" ( (pointer_expression "*DAT_00196f88" * identifier) )) (argument_list "(local_26,2)" ( identifier , number_literal )))) ;) (expression_statement "*(undefined4 *)(param_1 + 0x68) = uVar2;" (assignment_expression "*(undefined4 *)(param_1 + 0x68) = uVar2" (pointer_expression "*(undefined4 *)(param_1 + 0x68)" * (cast_expression "(undefined4 *)(param_1 + 0x68)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x68)" ( (binary_expression "param_1 + 0x68" identifier + number_literal) )))) = identifier) ;) }))) (expression_statement "uVar4 = 1;" (assignment_expression "uVar4 = 1" identifier = number_literal) ;) (if_statement "if (*(long *)(param_1 + 0x38) != 0) {\n      if (DAT_0019345c == 0) {\n        FUN_00115940(param_1,1);\n      }\n      else {\n        FUN_00115650();\n      }\n    }" if (parenthesized_expression "(*(long *)(param_1 + 0x38) != 0)" ( (binary_expression "*(long *)(param_1 + 0x38) != 0" (pointer_expression "*(long *)(param_1 + 0x38)" * (cast_expression "(long *)(param_1 + 0x38)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x38)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n      if (DAT_0019345c == 0) {\n        FUN_00115940(param_1,1);\n      }\n      else {\n        FUN_00115650();\n      }\n    }" { (if_statement "if (DAT_0019345c == 0) {\n        FUN_00115940(param_1,1);\n      }\n      else {\n        FUN_00115650();\n      }" if (parenthesized_expression "(DAT_0019345c == 0)" ( (binary_expression "DAT_0019345c == 0" identifier == number_literal) )) (compound_statement "{\n        FUN_00115940(param_1,1);\n      }" { (expression_statement "FUN_00115940(param_1,1);" (call_expression "FUN_00115940(param_1,1)" identifier (argument_list "(param_1,1)" ( identifier , number_literal ))) ;) }) (else_clause "else {\n        FUN_00115650();\n      }" else (compound_statement "{\n        FUN_00115650();\n      }" { (expression_statement "FUN_00115650();" (call_expression "FUN_00115650()" identifier (argument_list "()" ( ))) ;) }))) })) })) (return_statement "return uVar4;" return identifier ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration (sized_type_specifier long) IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))) , LIT , LIT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' escape_sequence '))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (unary_expression ! IDENT))) ;) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT , LIT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , LIT )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , LIT )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , LIT )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , LIT )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , LIT )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , LIT )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , LIT )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , LIT )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , LIT )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , LIT )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , LIT )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , LIT )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , LIT )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT , LIT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , LIT )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , LIT )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , LIT )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , LIT )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , LIT )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , LIT )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , LIT )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , LIT )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , LIT )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , LIT )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , LIT )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , LIT )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , LIT )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) }))) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) }))) })) })) (return_statement return IDENT ;) })))
(function_definition "undefined8 FUN_001195f0(long param_1)\n\n{\n  undefined2 uVar1;\n  undefined4 uVar2;\n  size_t sVar3;\n  undefined8 uVar4;\n  bool bVar5;\n  undefined1 local_48 [2];\n  undefined1 local_46 [2];\n  undefined1 local_44 [4];\n  undefined1 local_40 [4];\n  undefined1 local_3c [4];\n  undefined1 local_38 [4];\n  undefined1 local_34 [4];\n  undefined1 local_30 [2];\n  undefined1 local_2e [2];\n  undefined1 local_2c [2];\n  undefined1 local_2a [2];\n  undefined1 local_28 [2];\n  undefined1 local_26 [2];\n  undefined1 local_24 [2];\n  undefined1 local_22 [2];\n  undefined1 local_20 [2];\n  undefined1 local_1e [2];\n  undefined1 local_1c [2];\n  undefined1 local_1a [2];\n  \n  uVar4 = 0;\n  sVar3 = fread((void *)(param_1 + 0x18),0x10,1,*(FILE **)(param_1 + 8));\n  if (sVar3 == 1) {\n    if (*(char *)(param_1 + 0x1d) == '\x02') {\n      DAT_00196f88 = FUN_00154c60;\n      DAT_00196f90 = FUN_00155250;\n    }\n    else {\n      DAT_00196f88 = FUN_001552c0;\n      DAT_00196f90 = FUN_001551b0;\n    }\n    bVar5 = *(char *)(param_1 + 0x1c) == '\x02';\n    DAT_0019345c = (uint)!bVar5;\n    if (bVar5) {\n      sVar3 = fread(local_48,0x30,1,*(FILE **)(param_1 + 8));\n      if (sVar3 != 1) {\n        return 0;\n      }\n      uVar1 = (*DAT_00196f88)(local_48,2);\n      *(undefined2 *)(param_1 + 0x50) = uVar1;\n      uVar1 = (*DAT_00196f88)(local_46,2);\n      *(undefined2 *)(param_1 + 0x52) = uVar1;\n      uVar4 = (*DAT_00196f88)(local_44,4);\n      *(undefined8 *)(param_1 + 0x40) = uVar4;\n      uVar4 = (*DAT_00196f88)(local_40,8);\n      *(undefined8 *)(param_1 + 0x28) = uVar4;\n      uVar4 = (*DAT_00196f88)(local_38,8);\n      *(undefined8 *)(param_1 + 0x30) = uVar4;\n      uVar4 = (*DAT_00196f88)(local_30,8);\n      *(undefined8 *)(param_1 + 0x38) = uVar4;\n      uVar4 = (*DAT_00196f88)(local_28,4);\n      *(undefined8 *)(param_1 + 0x48) = uVar4;\n      uVar2 = (*DAT_00196f88)(local_24,2);\n      *(undefined4 *)(param_1 + 0x54) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_22,2);\n      *(undefined4 *)(param_1 + 0x58) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_20,2);\n      *(undefined4 *)(param_1 + 0x5c) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_1e,2);\n      *(undefined4 *)(param_1 + 0x60) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_1c,2);\n      *(undefined4 *)(param_1 + 100) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_1a,2);\n      *(undefined4 *)(param_1 + 0x68) = uVar2;\n    }\n    else {\n      sVar3 = fread(local_48,0x24,1,*(FILE **)(param_1 + 8));\n      if (sVar3 != 1) {\n        return 0;\n      }\n      uVar1 = (*DAT_00196f88)(local_48,2);\n      *(undefined2 *)(param_1 + 0x50) = uVar1;\n      uVar1 = (*DAT_00196f88)(local_46,2);\n      *(undefined2 *)(param_1 + 0x52) = uVar1;\n      uVar4 = (*DAT_00196f88)(local_44,4);\n      *(undefined8 *)(param_1 + 0x40) = uVar4;\n      uVar4 = (*DAT_00196f88)(local_40,4);\n      *(undefined8 *)(param_1 + 0x28) = uVar4;\n      uVar4 = (*DAT_00196f88)(local_3c,4);\n      *(undefined8 *)(param_1 + 0x30) = uVar4;\n      uVar4 = (*DAT_00196f88)(local_38,4);\n      *(undefined8 *)(param_1 + 0x38) = uVar4;\n      uVar4 = (*DAT_00196f88)(local_34,4);\n      *(undefined8 *)(param_1 + 0x48) = uVar4;\n      uVar2 = (*DAT_00196f88)(local_30,2);\n      *(undefined4 *)(param_1 + 0x54) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_2e,2);\n      *(undefined4 *)(param_1 + 0x58) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_2c,2);\n      *(undefined4 *)(param_1 + 0x5c) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_2a,2);\n      *(undefined4 *)(param_1 + 0x60) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_28,2);\n      *(undefined4 *)(param_1 + 100) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_26,2);\n      *(undefined4 *)(param_1 + 0x68) = uVar2;\n    }\n    uVar4 = 1;\n    if (*(long *)(param_1 + 0x38) != 0) {\n      if (DAT_0019345c == 0) {\n        FUN_00115940(param_1,1);\n      }\n      else {\n        FUN_00115650();\n      }\n    }\n  }\n  return uVar4;\n}" (type_identifier "undefined8") (function_declarator "FUN_001195f0(long param_1)" (identifier "FUN_001195f0") (parameter_list "(long param_1)" (( "(") (parameter_declaration "long param_1" (sized_type_specifier "long" (long "long")) (identifier "param_1")) () ")"))) (compound_statement "{\n  undefined2 uVar1;\n  undefined4 uVar2;\n  size_t sVar3;\n  undefined8 uVar4;\n  bool bVar5;\n  undefined1 local_48 [2];\n  undefined1 local_46 [2];\n  undefined1 local_44 [4];\n  undefined1 local_40 [4];\n  undefined1 local_3c [4];\n  undefined1 local_38 [4];\n  undefined1 local_34 [4];\n  undefined1 local_30 [2];\n  undefined1 local_2e [2];\n  undefined1 local_2c [2];\n  undefined1 local_2a [2];\n  undefined1 local_28 [2];\n  undefined1 local_26 [2];\n  undefined1 local_24 [2];\n  undefined1 local_22 [2];\n  undefined1 local_20 [2];\n  undefined1 local_1e [2];\n  undefined1 local_1c [2];\n  undefined1 local_1a [2];\n  \n  uVar4 = 0;\n  sVar3 = fread((void *)(param_1 + 0x18),0x10,1,*(FILE **)(param_1 + 8));\n  if (sVar3 == 1) {\n    if (*(char *)(param_1 + 0x1d) == '\x02') {\n      DAT_00196f88 = FUN_00154c60;\n      DAT_00196f90 = FUN_00155250;\n    }\n    else {\n      DAT_00196f88 = FUN_001552c0;\n      DAT_00196f90 = FUN_001551b0;\n    }\n    bVar5 = *(char *)(param_1 + 0x1c) == '\x02';\n    DAT_0019345c = (uint)!bVar5;\n    if (bVar5) {\n      sVar3 = fread(local_48,0x30,1,*(FILE **)(param_1 + 8));\n      if (sVar3 != 1) {\n        return 0;\n      }\n      uVar1 = (*DAT_00196f88)(local_48,2);\n      *(undefined2 *)(param_1 + 0x50) = uVar1;\n      uVar1 = (*DAT_00196f88)(local_46,2);\n      *(undefined2 *)(param_1 + 0x52) = uVar1;\n      uVar4 = (*DAT_00196f88)(local_44,4);\n      *(undefined8 *)(param_1 + 0x40) = uVar4;\n      uVar4 = (*DAT_00196f88)(local_40,8);\n      *(undefined8 *)(param_1 + 0x28) = uVar4;\n      uVar4 = (*DAT_00196f88)(local_38,8);\n      *(undefined8 *)(param_1 + 0x30) = uVar4;\n      uVar4 = (*DAT_00196f88)(local_30,8);\n      *(undefined8 *)(param_1 + 0x38) = uVar4;\n      uVar4 = (*DAT_00196f88)(local_28,4);\n      *(undefined8 *)(param_1 + 0x48) = uVar4;\n      uVar2 = (*DAT_00196f88)(local_24,2);\n      *(undefined4 *)(param_1 + 0x54) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_22,2);\n      *(undefined4 *)(param_1 + 0x58) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_20,2);\n      *(undefined4 *)(param_1 + 0x5c) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_1e,2);\n      *(undefined4 *)(param_1 + 0x60) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_1c,2);\n      *(undefined4 *)(param_1 + 100) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_1a,2);\n      *(undefined4 *)(param_1 + 0x68) = uVar2;\n    }\n    else {\n      sVar3 = fread(local_48,0x24,1,*(FILE **)(param_1 + 8));\n      if (sVar3 != 1) {\n        return 0;\n      }\n      uVar1 = (*DAT_00196f88)(local_48,2);\n      *(undefined2 *)(param_1 + 0x50) = uVar1;\n      uVar1 = (*DAT_00196f88)(local_46,2);\n      *(undefined2 *)(param_1 + 0x52) = uVar1;\n      uVar4 = (*DAT_00196f88)(local_44,4);\n      *(undefined8 *)(param_1 + 0x40) = uVar4;\n      uVar4 = (*DAT_00196f88)(local_40,4);\n      *(undefined8 *)(param_1 + 0x28) = uVar4;\n      uVar4 = (*DAT_00196f88)(local_3c,4);\n      *(undefined8 *)(param_1 + 0x30) = uVar4;\n      uVar4 = (*DAT_00196f88)(local_38,4);\n      *(undefined8 *)(param_1 + 0x38) = uVar4;\n      uVar4 = (*DAT_00196f88)(local_34,4);\n      *(undefined8 *)(param_1 + 0x48) = uVar4;\n      uVar2 = (*DAT_00196f88)(local_30,2);\n      *(undefined4 *)(param_1 + 0x54) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_2e,2);\n      *(undefined4 *)(param_1 + 0x58) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_2c,2);\n      *(undefined4 *)(param_1 + 0x5c) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_2a,2);\n      *(undefined4 *)(param_1 + 0x60) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_28,2);\n      *(undefined4 *)(param_1 + 100) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_26,2);\n      *(undefined4 *)(param_1 + 0x68) = uVar2;\n    }\n    uVar4 = 1;\n    if (*(long *)(param_1 + 0x38) != 0) {\n      if (DAT_0019345c == 0) {\n        FUN_00115940(param_1,1);\n      }\n      else {\n        FUN_00115650();\n      }\n    }\n  }\n  return uVar4;\n}" ({ "{") (declaration "undefined2 uVar1;" (type_identifier "undefined2") (identifier "uVar1") (; ";")) (declaration "undefined4 uVar2;" (type_identifier "undefined4") (identifier "uVar2") (; ";")) (declaration "size_t sVar3;" (primitive_type "size_t") (identifier "sVar3") (; ";")) (declaration "undefined8 uVar4;" (type_identifier "undefined8") (identifier "uVar4") (; ";")) (declaration "bool bVar5;" (primitive_type "bool") (identifier "bVar5") (; ";")) (declaration "undefined1 local_48 [2];" (type_identifier "undefined1") (array_declarator "local_48 [2]" (identifier "local_48") ([ "[") (number_literal "2") (] "]")) (; ";")) (declaration "undefined1 local_46 [2];" (type_identifier "undefined1") (array_declarator "local_46 [2]" (identifier "local_46") ([ "[") (number_literal "2") (] "]")) (; ";")) (declaration "undefined1 local_44 [4];" (type_identifier "undefined1") (array_declarator "local_44 [4]" (identifier "local_44") ([ "[") (number_literal "4") (] "]")) (; ";")) (declaration "undefined1 local_40 [4];" (type_identifier "undefined1") (array_declarator "local_40 [4]" (identifier "local_40") ([ "[") (number_literal "4") (] "]")) (; ";")) (declaration "undefined1 local_3c [4];" (type_identifier "undefined1") (array_declarator "local_3c [4]" (identifier "local_3c") ([ "[") (number_literal "4") (] "]")) (; ";")) (declaration "undefined1 local_38 [4];" (type_identifier "undefined1") (array_declarator "local_38 [4]" (identifier "local_38") ([ "[") (number_literal "4") (] "]")) (; ";")) (declaration "undefined1 local_34 [4];" (type_identifier "undefined1") (array_declarator "local_34 [4]" (identifier "local_34") ([ "[") (number_literal "4") (] "]")) (; ";")) (declaration "undefined1 local_30 [2];" (type_identifier "undefined1") (array_declarator "local_30 [2]" (identifier "local_30") ([ "[") (number_literal "2") (] "]")) (; ";")) (declaration "undefined1 local_2e [2];" (type_identifier "undefined1") (array_declarator "local_2e [2]" (identifier "local_2e") ([ "[") (number_literal "2") (] "]")) (; ";")) (declaration "undefined1 local_2c [2];" (type_identifier "undefined1") (array_declarator "local_2c [2]" (identifier "local_2c") ([ "[") (number_literal "2") (] "]")) (; ";")) (declaration "undefined1 local_2a [2];" (type_identifier "undefined1") (array_declarator "local_2a [2]" (identifier "local_2a") ([ "[") (number_literal "2") (] "]")) (; ";")) (declaration "undefined1 local_28 [2];" (type_identifier "undefined1") (array_declarator "local_28 [2]" (identifier "local_28") ([ "[") (number_literal "2") (] "]")) (; ";")) (declaration "undefined1 local_26 [2];" (type_identifier "undefined1") (array_declarator "local_26 [2]" (identifier "local_26") ([ "[") (number_literal "2") (] "]")) (; ";")) (declaration "undefined1 local_24 [2];" (type_identifier "undefined1") (array_declarator "local_24 [2]" (identifier "local_24") ([ "[") (number_literal "2") (] "]")) (; ";")) (declaration "undefined1 local_22 [2];" (type_identifier "undefined1") (array_declarator "local_22 [2]" (identifier "local_22") ([ "[") (number_literal "2") (] "]")) (; ";")) (declaration "undefined1 local_20 [2];" (type_identifier "undefined1") (array_declarator "local_20 [2]" (identifier "local_20") ([ "[") (number_literal "2") (] "]")) (; ";")) (declaration "undefined1 local_1e [2];" (type_identifier "undefined1") (array_declarator "local_1e [2]" (identifier "local_1e") ([ "[") (number_literal "2") (] "]")) (; ";")) (declaration "undefined1 local_1c [2];" (type_identifier "undefined1") (array_declarator "local_1c [2]" (identifier "local_1c") ([ "[") (number_literal "2") (] "]")) (; ";")) (declaration "undefined1 local_1a [2];" (type_identifier "undefined1") (array_declarator "local_1a [2]" (identifier "local_1a") ([ "[") (number_literal "2") (] "]")) (; ";")) (expression_statement "uVar4 = 0;" (assignment_expression "uVar4 = 0" (identifier "uVar4") (= "=") (number_literal "0")) (; ";")) (expression_statement "sVar3 = fread((void *)(param_1 + 0x18),0x10,1,*(FILE **)(param_1 + 8));" (assignment_expression "sVar3 = fread((void *)(param_1 + 0x18),0x10,1,*(FILE **)(param_1 + 8))" (identifier "sVar3") (= "=") (call_expression "fread((void *)(param_1 + 0x18),0x10,1,*(FILE **)(param_1 + 8))" (identifier "fread") (argument_list "((void *)(param_1 + 0x18),0x10,1,*(FILE **)(param_1 + 8))" (( "(") (cast_expression "(void *)(param_1 + 0x18)" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x18)" (( "(") (binary_expression "param_1 + 0x18" (identifier "param_1") (+ "+") (number_literal "0x18")) () ")"))) (, ",") (number_literal "0x10") (, ",") (number_literal "1") (, ",") (pointer_expression "*(FILE **)(param_1 + 8)" (* "*") (cast_expression "(FILE **)(param_1 + 8)" (( "(") (type_descriptor "FILE **" (type_identifier "FILE") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")")))) () ")")))) (; ";")) (if_statement "if (sVar3 == 1) {\n    if (*(char *)(param_1 + 0x1d) == '\x02') {\n      DAT_00196f88 = FUN_00154c60;\n      DAT_00196f90 = FUN_00155250;\n    }\n    else {\n      DAT_00196f88 = FUN_001552c0;\n      DAT_00196f90 = FUN_001551b0;\n    }\n    bVar5 = *(char *)(param_1 + 0x1c) == '\x02';\n    DAT_0019345c = (uint)!bVar5;\n    if (bVar5) {\n      sVar3 = fread(local_48,0x30,1,*(FILE **)(param_1 + 8));\n      if (sVar3 != 1) {\n        return 0;\n      }\n      uVar1 = (*DAT_00196f88)(local_48,2);\n      *(undefined2 *)(param_1 + 0x50) = uVar1;\n      uVar1 = (*DAT_00196f88)(local_46,2);\n      *(undefined2 *)(param_1 + 0x52) = uVar1;\n      uVar4 = (*DAT_00196f88)(local_44,4);\n      *(undefined8 *)(param_1 + 0x40) = uVar4;\n      uVar4 = (*DAT_00196f88)(local_40,8);\n      *(undefined8 *)(param_1 + 0x28) = uVar4;\n      uVar4 = (*DAT_00196f88)(local_38,8);\n      *(undefined8 *)(param_1 + 0x30) = uVar4;\n      uVar4 = (*DAT_00196f88)(local_30,8);\n      *(undefined8 *)(param_1 + 0x38) = uVar4;\n      uVar4 = (*DAT_00196f88)(local_28,4);\n      *(undefined8 *)(param_1 + 0x48) = uVar4;\n      uVar2 = (*DAT_00196f88)(local_24,2);\n      *(undefined4 *)(param_1 + 0x54) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_22,2);\n      *(undefined4 *)(param_1 + 0x58) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_20,2);\n      *(undefined4 *)(param_1 + 0x5c) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_1e,2);\n      *(undefined4 *)(param_1 + 0x60) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_1c,2);\n      *(undefined4 *)(param_1 + 100) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_1a,2);\n      *(undefined4 *)(param_1 + 0x68) = uVar2;\n    }\n    else {\n      sVar3 = fread(local_48,0x24,1,*(FILE **)(param_1 + 8));\n      if (sVar3 != 1) {\n        return 0;\n      }\n      uVar1 = (*DAT_00196f88)(local_48,2);\n      *(undefined2 *)(param_1 + 0x50) = uVar1;\n      uVar1 = (*DAT_00196f88)(local_46,2);\n      *(undefined2 *)(param_1 + 0x52) = uVar1;\n      uVar4 = (*DAT_00196f88)(local_44,4);\n      *(undefined8 *)(param_1 + 0x40) = uVar4;\n      uVar4 = (*DAT_00196f88)(local_40,4);\n      *(undefined8 *)(param_1 + 0x28) = uVar4;\n      uVar4 = (*DAT_00196f88)(local_3c,4);\n      *(undefined8 *)(param_1 + 0x30) = uVar4;\n      uVar4 = (*DAT_00196f88)(local_38,4);\n      *(undefined8 *)(param_1 + 0x38) = uVar4;\n      uVar4 = (*DAT_00196f88)(local_34,4);\n      *(undefined8 *)(param_1 + 0x48) = uVar4;\n      uVar2 = (*DAT_00196f88)(local_30,2);\n      *(undefined4 *)(param_1 + 0x54) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_2e,2);\n      *(undefined4 *)(param_1 + 0x58) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_2c,2);\n      *(undefined4 *)(param_1 + 0x5c) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_2a,2);\n      *(undefined4 *)(param_1 + 0x60) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_28,2);\n      *(undefined4 *)(param_1 + 100) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_26,2);\n      *(undefined4 *)(param_1 + 0x68) = uVar2;\n    }\n    uVar4 = 1;\n    if (*(long *)(param_1 + 0x38) != 0) {\n      if (DAT_0019345c == 0) {\n        FUN_00115940(param_1,1);\n      }\n      else {\n        FUN_00115650();\n      }\n    }\n  }" (if "if") (parenthesized_expression "(sVar3 == 1)" (( "(") (binary_expression "sVar3 == 1" (identifier "sVar3") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n    if (*(char *)(param_1 + 0x1d) == '\x02') {\n      DAT_00196f88 = FUN_00154c60;\n      DAT_00196f90 = FUN_00155250;\n    }\n    else {\n      DAT_00196f88 = FUN_001552c0;\n      DAT_00196f90 = FUN_001551b0;\n    }\n    bVar5 = *(char *)(param_1 + 0x1c) == '\x02';\n    DAT_0019345c = (uint)!bVar5;\n    if (bVar5) {\n      sVar3 = fread(local_48,0x30,1,*(FILE **)(param_1 + 8));\n      if (sVar3 != 1) {\n        return 0;\n      }\n      uVar1 = (*DAT_00196f88)(local_48,2);\n      *(undefined2 *)(param_1 + 0x50) = uVar1;\n      uVar1 = (*DAT_00196f88)(local_46,2);\n      *(undefined2 *)(param_1 + 0x52) = uVar1;\n      uVar4 = (*DAT_00196f88)(local_44,4);\n      *(undefined8 *)(param_1 + 0x40) = uVar4;\n      uVar4 = (*DAT_00196f88)(local_40,8);\n      *(undefined8 *)(param_1 + 0x28) = uVar4;\n      uVar4 = (*DAT_00196f88)(local_38,8);\n      *(undefined8 *)(param_1 + 0x30) = uVar4;\n      uVar4 = (*DAT_00196f88)(local_30,8);\n      *(undefined8 *)(param_1 + 0x38) = uVar4;\n      uVar4 = (*DAT_00196f88)(local_28,4);\n      *(undefined8 *)(param_1 + 0x48) = uVar4;\n      uVar2 = (*DAT_00196f88)(local_24,2);\n      *(undefined4 *)(param_1 + 0x54) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_22,2);\n      *(undefined4 *)(param_1 + 0x58) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_20,2);\n      *(undefined4 *)(param_1 + 0x5c) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_1e,2);\n      *(undefined4 *)(param_1 + 0x60) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_1c,2);\n      *(undefined4 *)(param_1 + 100) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_1a,2);\n      *(undefined4 *)(param_1 + 0x68) = uVar2;\n    }\n    else {\n      sVar3 = fread(local_48,0x24,1,*(FILE **)(param_1 + 8));\n      if (sVar3 != 1) {\n        return 0;\n      }\n      uVar1 = (*DAT_00196f88)(local_48,2);\n      *(undefined2 *)(param_1 + 0x50) = uVar1;\n      uVar1 = (*DAT_00196f88)(local_46,2);\n      *(undefined2 *)(param_1 + 0x52) = uVar1;\n      uVar4 = (*DAT_00196f88)(local_44,4);\n      *(undefined8 *)(param_1 + 0x40) = uVar4;\n      uVar4 = (*DAT_00196f88)(local_40,4);\n      *(undefined8 *)(param_1 + 0x28) = uVar4;\n      uVar4 = (*DAT_00196f88)(local_3c,4);\n      *(undefined8 *)(param_1 + 0x30) = uVar4;\n      uVar4 = (*DAT_00196f88)(local_38,4);\n      *(undefined8 *)(param_1 + 0x38) = uVar4;\n      uVar4 = (*DAT_00196f88)(local_34,4);\n      *(undefined8 *)(param_1 + 0x48) = uVar4;\n      uVar2 = (*DAT_00196f88)(local_30,2);\n      *(undefined4 *)(param_1 + 0x54) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_2e,2);\n      *(undefined4 *)(param_1 + 0x58) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_2c,2);\n      *(undefined4 *)(param_1 + 0x5c) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_2a,2);\n      *(undefined4 *)(param_1 + 0x60) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_28,2);\n      *(undefined4 *)(param_1 + 100) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_26,2);\n      *(undefined4 *)(param_1 + 0x68) = uVar2;\n    }\n    uVar4 = 1;\n    if (*(long *)(param_1 + 0x38) != 0) {\n      if (DAT_0019345c == 0) {\n        FUN_00115940(param_1,1);\n      }\n      else {\n        FUN_00115650();\n      }\n    }\n  }" ({ "{") (if_statement "if (*(char *)(param_1 + 0x1d) == '\x02') {\n      DAT_00196f88 = FUN_00154c60;\n      DAT_00196f90 = FUN_00155250;\n    }\n    else {\n      DAT_00196f88 = FUN_001552c0;\n      DAT_00196f90 = FUN_001551b0;\n    }" (if "if") (parenthesized_expression "(*(char *)(param_1 + 0x1d) == '\x02')" (( "(") (binary_expression "*(char *)(param_1 + 0x1d) == '\x02'" (pointer_expression "*(char *)(param_1 + 0x1d)" (* "*") (cast_expression "(char *)(param_1 + 0x1d)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x1d)" (( "(") (binary_expression "param_1 + 0x1d" (identifier "param_1") (+ "+") (number_literal "0x1d")) () ")")))) (== "==") (char_literal "'\x02'" (' "'") (escape_sequence "\x02") (' "'"))) () ")")) (compound_statement "{\n      DAT_00196f88 = FUN_00154c60;\n      DAT_00196f90 = FUN_00155250;\n    }" ({ "{") (expression_statement "DAT_00196f88 = FUN_00154c60;" (assignment_expression "DAT_00196f88 = FUN_00154c60" (identifier "DAT_00196f88") (= "=") (identifier "FUN_00154c60")) (; ";")) (expression_statement "DAT_00196f90 = FUN_00155250;" (assignment_expression "DAT_00196f90 = FUN_00155250" (identifier "DAT_00196f90") (= "=") (identifier "FUN_00155250")) (; ";")) (} "}")) (else_clause "else {\n      DAT_00196f88 = FUN_001552c0;\n      DAT_00196f90 = FUN_001551b0;\n    }" (else "else") (compound_statement "{\n      DAT_00196f88 = FUN_001552c0;\n      DAT_00196f90 = FUN_001551b0;\n    }" ({ "{") (expression_statement "DAT_00196f88 = FUN_001552c0;" (assignment_expression "DAT_00196f88 = FUN_001552c0" (identifier "DAT_00196f88") (= "=") (identifier "FUN_001552c0")) (; ";")) (expression_statement "DAT_00196f90 = FUN_001551b0;" (assignment_expression "DAT_00196f90 = FUN_001551b0" (identifier "DAT_00196f90") (= "=") (identifier "FUN_001551b0")) (; ";")) (} "}")))) (expression_statement "bVar5 = *(char *)(param_1 + 0x1c) == '\x02';" (assignment_expression "bVar5 = *(char *)(param_1 + 0x1c) == '\x02'" (identifier "bVar5") (= "=") (binary_expression "*(char *)(param_1 + 0x1c) == '\x02'" (pointer_expression "*(char *)(param_1 + 0x1c)" (* "*") (cast_expression "(char *)(param_1 + 0x1c)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x1c)" (( "(") (binary_expression "param_1 + 0x1c" (identifier "param_1") (+ "+") (number_literal "0x1c")) () ")")))) (== "==") (char_literal "'\x02'" (' "'") (escape_sequence "\x02") (' "'")))) (; ";")) (expression_statement "DAT_0019345c = (uint)!bVar5;" (assignment_expression "DAT_0019345c = (uint)!bVar5" (identifier "DAT_0019345c") (= "=") (cast_expression "(uint)!bVar5" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (unary_expression "!bVar5" (! "!") (identifier "bVar5")))) (; ";")) (if_statement "if (bVar5) {\n      sVar3 = fread(local_48,0x30,1,*(FILE **)(param_1 + 8));\n      if (sVar3 != 1) {\n        return 0;\n      }\n      uVar1 = (*DAT_00196f88)(local_48,2);\n      *(undefined2 *)(param_1 + 0x50) = uVar1;\n      uVar1 = (*DAT_00196f88)(local_46,2);\n      *(undefined2 *)(param_1 + 0x52) = uVar1;\n      uVar4 = (*DAT_00196f88)(local_44,4);\n      *(undefined8 *)(param_1 + 0x40) = uVar4;\n      uVar4 = (*DAT_00196f88)(local_40,8);\n      *(undefined8 *)(param_1 + 0x28) = uVar4;\n      uVar4 = (*DAT_00196f88)(local_38,8);\n      *(undefined8 *)(param_1 + 0x30) = uVar4;\n      uVar4 = (*DAT_00196f88)(local_30,8);\n      *(undefined8 *)(param_1 + 0x38) = uVar4;\n      uVar4 = (*DAT_00196f88)(local_28,4);\n      *(undefined8 *)(param_1 + 0x48) = uVar4;\n      uVar2 = (*DAT_00196f88)(local_24,2);\n      *(undefined4 *)(param_1 + 0x54) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_22,2);\n      *(undefined4 *)(param_1 + 0x58) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_20,2);\n      *(undefined4 *)(param_1 + 0x5c) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_1e,2);\n      *(undefined4 *)(param_1 + 0x60) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_1c,2);\n      *(undefined4 *)(param_1 + 100) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_1a,2);\n      *(undefined4 *)(param_1 + 0x68) = uVar2;\n    }\n    else {\n      sVar3 = fread(local_48,0x24,1,*(FILE **)(param_1 + 8));\n      if (sVar3 != 1) {\n        return 0;\n      }\n      uVar1 = (*DAT_00196f88)(local_48,2);\n      *(undefined2 *)(param_1 + 0x50) = uVar1;\n      uVar1 = (*DAT_00196f88)(local_46,2);\n      *(undefined2 *)(param_1 + 0x52) = uVar1;\n      uVar4 = (*DAT_00196f88)(local_44,4);\n      *(undefined8 *)(param_1 + 0x40) = uVar4;\n      uVar4 = (*DAT_00196f88)(local_40,4);\n      *(undefined8 *)(param_1 + 0x28) = uVar4;\n      uVar4 = (*DAT_00196f88)(local_3c,4);\n      *(undefined8 *)(param_1 + 0x30) = uVar4;\n      uVar4 = (*DAT_00196f88)(local_38,4);\n      *(undefined8 *)(param_1 + 0x38) = uVar4;\n      uVar4 = (*DAT_00196f88)(local_34,4);\n      *(undefined8 *)(param_1 + 0x48) = uVar4;\n      uVar2 = (*DAT_00196f88)(local_30,2);\n      *(undefined4 *)(param_1 + 0x54) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_2e,2);\n      *(undefined4 *)(param_1 + 0x58) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_2c,2);\n      *(undefined4 *)(param_1 + 0x5c) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_2a,2);\n      *(undefined4 *)(param_1 + 0x60) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_28,2);\n      *(undefined4 *)(param_1 + 100) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_26,2);\n      *(undefined4 *)(param_1 + 0x68) = uVar2;\n    }" (if "if") (parenthesized_expression "(bVar5)" (( "(") (identifier "bVar5") () ")")) (compound_statement "{\n      sVar3 = fread(local_48,0x30,1,*(FILE **)(param_1 + 8));\n      if (sVar3 != 1) {\n        return 0;\n      }\n      uVar1 = (*DAT_00196f88)(local_48,2);\n      *(undefined2 *)(param_1 + 0x50) = uVar1;\n      uVar1 = (*DAT_00196f88)(local_46,2);\n      *(undefined2 *)(param_1 + 0x52) = uVar1;\n      uVar4 = (*DAT_00196f88)(local_44,4);\n      *(undefined8 *)(param_1 + 0x40) = uVar4;\n      uVar4 = (*DAT_00196f88)(local_40,8);\n      *(undefined8 *)(param_1 + 0x28) = uVar4;\n      uVar4 = (*DAT_00196f88)(local_38,8);\n      *(undefined8 *)(param_1 + 0x30) = uVar4;\n      uVar4 = (*DAT_00196f88)(local_30,8);\n      *(undefined8 *)(param_1 + 0x38) = uVar4;\n      uVar4 = (*DAT_00196f88)(local_28,4);\n      *(undefined8 *)(param_1 + 0x48) = uVar4;\n      uVar2 = (*DAT_00196f88)(local_24,2);\n      *(undefined4 *)(param_1 + 0x54) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_22,2);\n      *(undefined4 *)(param_1 + 0x58) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_20,2);\n      *(undefined4 *)(param_1 + 0x5c) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_1e,2);\n      *(undefined4 *)(param_1 + 0x60) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_1c,2);\n      *(undefined4 *)(param_1 + 100) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_1a,2);\n      *(undefined4 *)(param_1 + 0x68) = uVar2;\n    }" ({ "{") (expression_statement "sVar3 = fread(local_48,0x30,1,*(FILE **)(param_1 + 8));" (assignment_expression "sVar3 = fread(local_48,0x30,1,*(FILE **)(param_1 + 8))" (identifier "sVar3") (= "=") (call_expression "fread(local_48,0x30,1,*(FILE **)(param_1 + 8))" (identifier "fread") (argument_list "(local_48,0x30,1,*(FILE **)(param_1 + 8))" (( "(") (identifier "local_48") (, ",") (number_literal "0x30") (, ",") (number_literal "1") (, ",") (pointer_expression "*(FILE **)(param_1 + 8)" (* "*") (cast_expression "(FILE **)(param_1 + 8)" (( "(") (type_descriptor "FILE **" (type_identifier "FILE") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")")))) () ")")))) (; ";")) (if_statement "if (sVar3 != 1) {\n        return 0;\n      }" (if "if") (parenthesized_expression "(sVar3 != 1)" (( "(") (binary_expression "sVar3 != 1" (identifier "sVar3") (!= "!=") (number_literal "1")) () ")")) (compound_statement "{\n        return 0;\n      }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "uVar1 = (*DAT_00196f88)(local_48,2);" (assignment_expression "uVar1 = (*DAT_00196f88)(local_48,2)" (identifier "uVar1") (= "=") (call_expression "(*DAT_00196f88)(local_48,2)" (parenthesized_expression "(*DAT_00196f88)" (( "(") (pointer_expression "*DAT_00196f88" (* "*") (identifier "DAT_00196f88")) () ")")) (argument_list "(local_48,2)" (( "(") (identifier "local_48") (, ",") (number_literal "2") () ")")))) (; ";")) (expression_statement "*(undefined2 *)(param_1 + 0x50) = uVar1;" (assignment_expression "*(undefined2 *)(param_1 + 0x50) = uVar1" (pointer_expression "*(undefined2 *)(param_1 + 0x50)" (* "*") (cast_expression "(undefined2 *)(param_1 + 0x50)" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x50)" (( "(") (binary_expression "param_1 + 0x50" (identifier "param_1") (+ "+") (number_literal "0x50")) () ")")))) (= "=") (identifier "uVar1")) (; ";")) (expression_statement "uVar1 = (*DAT_00196f88)(local_46,2);" (assignment_expression "uVar1 = (*DAT_00196f88)(local_46,2)" (identifier "uVar1") (= "=") (call_expression "(*DAT_00196f88)(local_46,2)" (parenthesized_expression "(*DAT_00196f88)" (( "(") (pointer_expression "*DAT_00196f88" (* "*") (identifier "DAT_00196f88")) () ")")) (argument_list "(local_46,2)" (( "(") (identifier "local_46") (, ",") (number_literal "2") () ")")))) (; ";")) (expression_statement "*(undefined2 *)(param_1 + 0x52) = uVar1;" (assignment_expression "*(undefined2 *)(param_1 + 0x52) = uVar1" (pointer_expression "*(undefined2 *)(param_1 + 0x52)" (* "*") (cast_expression "(undefined2 *)(param_1 + 0x52)" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x52)" (( "(") (binary_expression "param_1 + 0x52" (identifier "param_1") (+ "+") (number_literal "0x52")) () ")")))) (= "=") (identifier "uVar1")) (; ";")) (expression_statement "uVar4 = (*DAT_00196f88)(local_44,4);" (assignment_expression "uVar4 = (*DAT_00196f88)(local_44,4)" (identifier "uVar4") (= "=") (call_expression "(*DAT_00196f88)(local_44,4)" (parenthesized_expression "(*DAT_00196f88)" (( "(") (pointer_expression "*DAT_00196f88" (* "*") (identifier "DAT_00196f88")) () ")")) (argument_list "(local_44,4)" (( "(") (identifier "local_44") (, ",") (number_literal "4") () ")")))) (; ";")) (expression_statement "*(undefined8 *)(param_1 + 0x40) = uVar4;" (assignment_expression "*(undefined8 *)(param_1 + 0x40) = uVar4" (pointer_expression "*(undefined8 *)(param_1 + 0x40)" (* "*") (cast_expression "(undefined8 *)(param_1 + 0x40)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x40)" (( "(") (binary_expression "param_1 + 0x40" (identifier "param_1") (+ "+") (number_literal "0x40")) () ")")))) (= "=") (identifier "uVar4")) (; ";")) (expression_statement "uVar4 = (*DAT_00196f88)(local_40,8);" (assignment_expression "uVar4 = (*DAT_00196f88)(local_40,8)" (identifier "uVar4") (= "=") (call_expression "(*DAT_00196f88)(local_40,8)" (parenthesized_expression "(*DAT_00196f88)" (( "(") (pointer_expression "*DAT_00196f88" (* "*") (identifier "DAT_00196f88")) () ")")) (argument_list "(local_40,8)" (( "(") (identifier "local_40") (, ",") (number_literal "8") () ")")))) (; ";")) (expression_statement "*(undefined8 *)(param_1 + 0x28) = uVar4;" (assignment_expression "*(undefined8 *)(param_1 + 0x28) = uVar4" (pointer_expression "*(undefined8 *)(param_1 + 0x28)" (* "*") (cast_expression "(undefined8 *)(param_1 + 0x28)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x28)" (( "(") (binary_expression "param_1 + 0x28" (identifier "param_1") (+ "+") (number_literal "0x28")) () ")")))) (= "=") (identifier "uVar4")) (; ";")) (expression_statement "uVar4 = (*DAT_00196f88)(local_38,8);" (assignment_expression "uVar4 = (*DAT_00196f88)(local_38,8)" (identifier "uVar4") (= "=") (call_expression "(*DAT_00196f88)(local_38,8)" (parenthesized_expression "(*DAT_00196f88)" (( "(") (pointer_expression "*DAT_00196f88" (* "*") (identifier "DAT_00196f88")) () ")")) (argument_list "(local_38,8)" (( "(") (identifier "local_38") (, ",") (number_literal "8") () ")")))) (; ";")) (expression_statement "*(undefined8 *)(param_1 + 0x30) = uVar4;" (assignment_expression "*(undefined8 *)(param_1 + 0x30) = uVar4" (pointer_expression "*(undefined8 *)(param_1 + 0x30)" (* "*") (cast_expression "(undefined8 *)(param_1 + 0x30)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x30)" (( "(") (binary_expression "param_1 + 0x30" (identifier "param_1") (+ "+") (number_literal "0x30")) () ")")))) (= "=") (identifier "uVar4")) (; ";")) (expression_statement "uVar4 = (*DAT_00196f88)(local_30,8);" (assignment_expression "uVar4 = (*DAT_00196f88)(local_30,8)" (identifier "uVar4") (= "=") (call_expression "(*DAT_00196f88)(local_30,8)" (parenthesized_expression "(*DAT_00196f88)" (( "(") (pointer_expression "*DAT_00196f88" (* "*") (identifier "DAT_00196f88")) () ")")) (argument_list "(local_30,8)" (( "(") (identifier "local_30") (, ",") (number_literal "8") () ")")))) (; ";")) (expression_statement "*(undefined8 *)(param_1 + 0x38) = uVar4;" (assignment_expression "*(undefined8 *)(param_1 + 0x38) = uVar4" (pointer_expression "*(undefined8 *)(param_1 + 0x38)" (* "*") (cast_expression "(undefined8 *)(param_1 + 0x38)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x38)" (( "(") (binary_expression "param_1 + 0x38" (identifier "param_1") (+ "+") (number_literal "0x38")) () ")")))) (= "=") (identifier "uVar4")) (; ";")) (expression_statement "uVar4 = (*DAT_00196f88)(local_28,4);" (assignment_expression "uVar4 = (*DAT_00196f88)(local_28,4)" (identifier "uVar4") (= "=") (call_expression "(*DAT_00196f88)(local_28,4)" (parenthesized_expression "(*DAT_00196f88)" (( "(") (pointer_expression "*DAT_00196f88" (* "*") (identifier "DAT_00196f88")) () ")")) (argument_list "(local_28,4)" (( "(") (identifier "local_28") (, ",") (number_literal "4") () ")")))) (; ";")) (expression_statement "*(undefined8 *)(param_1 + 0x48) = uVar4;" (assignment_expression "*(undefined8 *)(param_1 + 0x48) = uVar4" (pointer_expression "*(undefined8 *)(param_1 + 0x48)" (* "*") (cast_expression "(undefined8 *)(param_1 + 0x48)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x48)" (( "(") (binary_expression "param_1 + 0x48" (identifier "param_1") (+ "+") (number_literal "0x48")) () ")")))) (= "=") (identifier "uVar4")) (; ";")) (expression_statement "uVar2 = (*DAT_00196f88)(local_24,2);" (assignment_expression "uVar2 = (*DAT_00196f88)(local_24,2)" (identifier "uVar2") (= "=") (call_expression "(*DAT_00196f88)(local_24,2)" (parenthesized_expression "(*DAT_00196f88)" (( "(") (pointer_expression "*DAT_00196f88" (* "*") (identifier "DAT_00196f88")) () ")")) (argument_list "(local_24,2)" (( "(") (identifier "local_24") (, ",") (number_literal "2") () ")")))) (; ";")) (expression_statement "*(undefined4 *)(param_1 + 0x54) = uVar2;" (assignment_expression "*(undefined4 *)(param_1 + 0x54) = uVar2" (pointer_expression "*(undefined4 *)(param_1 + 0x54)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x54)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x54)" (( "(") (binary_expression "param_1 + 0x54" (identifier "param_1") (+ "+") (number_literal "0x54")) () ")")))) (= "=") (identifier "uVar2")) (; ";")) (expression_statement "uVar2 = (*DAT_00196f88)(local_22,2);" (assignment_expression "uVar2 = (*DAT_00196f88)(local_22,2)" (identifier "uVar2") (= "=") (call_expression "(*DAT_00196f88)(local_22,2)" (parenthesized_expression "(*DAT_00196f88)" (( "(") (pointer_expression "*DAT_00196f88" (* "*") (identifier "DAT_00196f88")) () ")")) (argument_list "(local_22,2)" (( "(") (identifier "local_22") (, ",") (number_literal "2") () ")")))) (; ";")) (expression_statement "*(undefined4 *)(param_1 + 0x58) = uVar2;" (assignment_expression "*(undefined4 *)(param_1 + 0x58) = uVar2" (pointer_expression "*(undefined4 *)(param_1 + 0x58)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x58)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x58)" (( "(") (binary_expression "param_1 + 0x58" (identifier "param_1") (+ "+") (number_literal "0x58")) () ")")))) (= "=") (identifier "uVar2")) (; ";")) (expression_statement "uVar2 = (*DAT_00196f88)(local_20,2);" (assignment_expression "uVar2 = (*DAT_00196f88)(local_20,2)" (identifier "uVar2") (= "=") (call_expression "(*DAT_00196f88)(local_20,2)" (parenthesized_expression "(*DAT_00196f88)" (( "(") (pointer_expression "*DAT_00196f88" (* "*") (identifier "DAT_00196f88")) () ")")) (argument_list "(local_20,2)" (( "(") (identifier "local_20") (, ",") (number_literal "2") () ")")))) (; ";")) (expression_statement "*(undefined4 *)(param_1 + 0x5c) = uVar2;" (assignment_expression "*(undefined4 *)(param_1 + 0x5c) = uVar2" (pointer_expression "*(undefined4 *)(param_1 + 0x5c)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x5c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x5c)" (( "(") (binary_expression "param_1 + 0x5c" (identifier "param_1") (+ "+") (number_literal "0x5c")) () ")")))) (= "=") (identifier "uVar2")) (; ";")) (expression_statement "uVar2 = (*DAT_00196f88)(local_1e,2);" (assignment_expression "uVar2 = (*DAT_00196f88)(local_1e,2)" (identifier "uVar2") (= "=") (call_expression "(*DAT_00196f88)(local_1e,2)" (parenthesized_expression "(*DAT_00196f88)" (( "(") (pointer_expression "*DAT_00196f88" (* "*") (identifier "DAT_00196f88")) () ")")) (argument_list "(local_1e,2)" (( "(") (identifier "local_1e") (, ",") (number_literal "2") () ")")))) (; ";")) (expression_statement "*(undefined4 *)(param_1 + 0x60) = uVar2;" (assignment_expression "*(undefined4 *)(param_1 + 0x60) = uVar2" (pointer_expression "*(undefined4 *)(param_1 + 0x60)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x60)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x60)" (( "(") (binary_expression "param_1 + 0x60" (identifier "param_1") (+ "+") (number_literal "0x60")) () ")")))) (= "=") (identifier "uVar2")) (; ";")) (expression_statement "uVar2 = (*DAT_00196f88)(local_1c,2);" (assignment_expression "uVar2 = (*DAT_00196f88)(local_1c,2)" (identifier "uVar2") (= "=") (call_expression "(*DAT_00196f88)(local_1c,2)" (parenthesized_expression "(*DAT_00196f88)" (( "(") (pointer_expression "*DAT_00196f88" (* "*") (identifier "DAT_00196f88")) () ")")) (argument_list "(local_1c,2)" (( "(") (identifier "local_1c") (, ",") (number_literal "2") () ")")))) (; ";")) (expression_statement "*(undefined4 *)(param_1 + 100) = uVar2;" (assignment_expression "*(undefined4 *)(param_1 + 100) = uVar2" (pointer_expression "*(undefined4 *)(param_1 + 100)" (* "*") (cast_expression "(undefined4 *)(param_1 + 100)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 100)" (( "(") (binary_expression "param_1 + 100" (identifier "param_1") (+ "+") (number_literal "100")) () ")")))) (= "=") (identifier "uVar2")) (; ";")) (expression_statement "uVar2 = (*DAT_00196f88)(local_1a,2);" (assignment_expression "uVar2 = (*DAT_00196f88)(local_1a,2)" (identifier "uVar2") (= "=") (call_expression "(*DAT_00196f88)(local_1a,2)" (parenthesized_expression "(*DAT_00196f88)" (( "(") (pointer_expression "*DAT_00196f88" (* "*") (identifier "DAT_00196f88")) () ")")) (argument_list "(local_1a,2)" (( "(") (identifier "local_1a") (, ",") (number_literal "2") () ")")))) (; ";")) (expression_statement "*(undefined4 *)(param_1 + 0x68) = uVar2;" (assignment_expression "*(undefined4 *)(param_1 + 0x68) = uVar2" (pointer_expression "*(undefined4 *)(param_1 + 0x68)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x68)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x68)" (( "(") (binary_expression "param_1 + 0x68" (identifier "param_1") (+ "+") (number_literal "0x68")) () ")")))) (= "=") (identifier "uVar2")) (; ";")) (} "}")) (else_clause "else {\n      sVar3 = fread(local_48,0x24,1,*(FILE **)(param_1 + 8));\n      if (sVar3 != 1) {\n        return 0;\n      }\n      uVar1 = (*DAT_00196f88)(local_48,2);\n      *(undefined2 *)(param_1 + 0x50) = uVar1;\n      uVar1 = (*DAT_00196f88)(local_46,2);\n      *(undefined2 *)(param_1 + 0x52) = uVar1;\n      uVar4 = (*DAT_00196f88)(local_44,4);\n      *(undefined8 *)(param_1 + 0x40) = uVar4;\n      uVar4 = (*DAT_00196f88)(local_40,4);\n      *(undefined8 *)(param_1 + 0x28) = uVar4;\n      uVar4 = (*DAT_00196f88)(local_3c,4);\n      *(undefined8 *)(param_1 + 0x30) = uVar4;\n      uVar4 = (*DAT_00196f88)(local_38,4);\n      *(undefined8 *)(param_1 + 0x38) = uVar4;\n      uVar4 = (*DAT_00196f88)(local_34,4);\n      *(undefined8 *)(param_1 + 0x48) = uVar4;\n      uVar2 = (*DAT_00196f88)(local_30,2);\n      *(undefined4 *)(param_1 + 0x54) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_2e,2);\n      *(undefined4 *)(param_1 + 0x58) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_2c,2);\n      *(undefined4 *)(param_1 + 0x5c) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_2a,2);\n      *(undefined4 *)(param_1 + 0x60) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_28,2);\n      *(undefined4 *)(param_1 + 100) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_26,2);\n      *(undefined4 *)(param_1 + 0x68) = uVar2;\n    }" (else "else") (compound_statement "{\n      sVar3 = fread(local_48,0x24,1,*(FILE **)(param_1 + 8));\n      if (sVar3 != 1) {\n        return 0;\n      }\n      uVar1 = (*DAT_00196f88)(local_48,2);\n      *(undefined2 *)(param_1 + 0x50) = uVar1;\n      uVar1 = (*DAT_00196f88)(local_46,2);\n      *(undefined2 *)(param_1 + 0x52) = uVar1;\n      uVar4 = (*DAT_00196f88)(local_44,4);\n      *(undefined8 *)(param_1 + 0x40) = uVar4;\n      uVar4 = (*DAT_00196f88)(local_40,4);\n      *(undefined8 *)(param_1 + 0x28) = uVar4;\n      uVar4 = (*DAT_00196f88)(local_3c,4);\n      *(undefined8 *)(param_1 + 0x30) = uVar4;\n      uVar4 = (*DAT_00196f88)(local_38,4);\n      *(undefined8 *)(param_1 + 0x38) = uVar4;\n      uVar4 = (*DAT_00196f88)(local_34,4);\n      *(undefined8 *)(param_1 + 0x48) = uVar4;\n      uVar2 = (*DAT_00196f88)(local_30,2);\n      *(undefined4 *)(param_1 + 0x54) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_2e,2);\n      *(undefined4 *)(param_1 + 0x58) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_2c,2);\n      *(undefined4 *)(param_1 + 0x5c) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_2a,2);\n      *(undefined4 *)(param_1 + 0x60) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_28,2);\n      *(undefined4 *)(param_1 + 100) = uVar2;\n      uVar2 = (*DAT_00196f88)(local_26,2);\n      *(undefined4 *)(param_1 + 0x68) = uVar2;\n    }" ({ "{") (expression_statement "sVar3 = fread(local_48,0x24,1,*(FILE **)(param_1 + 8));" (assignment_expression "sVar3 = fread(local_48,0x24,1,*(FILE **)(param_1 + 8))" (identifier "sVar3") (= "=") (call_expression "fread(local_48,0x24,1,*(FILE **)(param_1 + 8))" (identifier "fread") (argument_list "(local_48,0x24,1,*(FILE **)(param_1 + 8))" (( "(") (identifier "local_48") (, ",") (number_literal "0x24") (, ",") (number_literal "1") (, ",") (pointer_expression "*(FILE **)(param_1 + 8)" (* "*") (cast_expression "(FILE **)(param_1 + 8)" (( "(") (type_descriptor "FILE **" (type_identifier "FILE") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")")))) () ")")))) (; ";")) (if_statement "if (sVar3 != 1) {\n        return 0;\n      }" (if "if") (parenthesized_expression "(sVar3 != 1)" (( "(") (binary_expression "sVar3 != 1" (identifier "sVar3") (!= "!=") (number_literal "1")) () ")")) (compound_statement "{\n        return 0;\n      }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "uVar1 = (*DAT_00196f88)(local_48,2);" (assignment_expression "uVar1 = (*DAT_00196f88)(local_48,2)" (identifier "uVar1") (= "=") (call_expression "(*DAT_00196f88)(local_48,2)" (parenthesized_expression "(*DAT_00196f88)" (( "(") (pointer_expression "*DAT_00196f88" (* "*") (identifier "DAT_00196f88")) () ")")) (argument_list "(local_48,2)" (( "(") (identifier "local_48") (, ",") (number_literal "2") () ")")))) (; ";")) (expression_statement "*(undefined2 *)(param_1 + 0x50) = uVar1;" (assignment_expression "*(undefined2 *)(param_1 + 0x50) = uVar1" (pointer_expression "*(undefined2 *)(param_1 + 0x50)" (* "*") (cast_expression "(undefined2 *)(param_1 + 0x50)" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x50)" (( "(") (binary_expression "param_1 + 0x50" (identifier "param_1") (+ "+") (number_literal "0x50")) () ")")))) (= "=") (identifier "uVar1")) (; ";")) (expression_statement "uVar1 = (*DAT_00196f88)(local_46,2);" (assignment_expression "uVar1 = (*DAT_00196f88)(local_46,2)" (identifier "uVar1") (= "=") (call_expression "(*DAT_00196f88)(local_46,2)" (parenthesized_expression "(*DAT_00196f88)" (( "(") (pointer_expression "*DAT_00196f88" (* "*") (identifier "DAT_00196f88")) () ")")) (argument_list "(local_46,2)" (( "(") (identifier "local_46") (, ",") (number_literal "2") () ")")))) (; ";")) (expression_statement "*(undefined2 *)(param_1 + 0x52) = uVar1;" (assignment_expression "*(undefined2 *)(param_1 + 0x52) = uVar1" (pointer_expression "*(undefined2 *)(param_1 + 0x52)" (* "*") (cast_expression "(undefined2 *)(param_1 + 0x52)" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x52)" (( "(") (binary_expression "param_1 + 0x52" (identifier "param_1") (+ "+") (number_literal "0x52")) () ")")))) (= "=") (identifier "uVar1")) (; ";")) (expression_statement "uVar4 = (*DAT_00196f88)(local_44,4);" (assignment_expression "uVar4 = (*DAT_00196f88)(local_44,4)" (identifier "uVar4") (= "=") (call_expression "(*DAT_00196f88)(local_44,4)" (parenthesized_expression "(*DAT_00196f88)" (( "(") (pointer_expression "*DAT_00196f88" (* "*") (identifier "DAT_00196f88")) () ")")) (argument_list "(local_44,4)" (( "(") (identifier "local_44") (, ",") (number_literal "4") () ")")))) (; ";")) (expression_statement "*(undefined8 *)(param_1 + 0x40) = uVar4;" (assignment_expression "*(undefined8 *)(param_1 + 0x40) = uVar4" (pointer_expression "*(undefined8 *)(param_1 + 0x40)" (* "*") (cast_expression "(undefined8 *)(param_1 + 0x40)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x40)" (( "(") (binary_expression "param_1 + 0x40" (identifier "param_1") (+ "+") (number_literal "0x40")) () ")")))) (= "=") (identifier "uVar4")) (; ";")) (expression_statement "uVar4 = (*DAT_00196f88)(local_40,4);" (assignment_expression "uVar4 = (*DAT_00196f88)(local_40,4)" (identifier "uVar4") (= "=") (call_expression "(*DAT_00196f88)(local_40,4)" (parenthesized_expression "(*DAT_00196f88)" (( "(") (pointer_expression "*DAT_00196f88" (* "*") (identifier "DAT_00196f88")) () ")")) (argument_list "(local_40,4)" (( "(") (identifier "local_40") (, ",") (number_literal "4") () ")")))) (; ";")) (expression_statement "*(undefined8 *)(param_1 + 0x28) = uVar4;" (assignment_expression "*(undefined8 *)(param_1 + 0x28) = uVar4" (pointer_expression "*(undefined8 *)(param_1 + 0x28)" (* "*") (cast_expression "(undefined8 *)(param_1 + 0x28)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x28)" (( "(") (binary_expression "param_1 + 0x28" (identifier "param_1") (+ "+") (number_literal "0x28")) () ")")))) (= "=") (identifier "uVar4")) (; ";")) (expression_statement "uVar4 = (*DAT_00196f88)(local_3c,4);" (assignment_expression "uVar4 = (*DAT_00196f88)(local_3c,4)" (identifier "uVar4") (= "=") (call_expression "(*DAT_00196f88)(local_3c,4)" (parenthesized_expression "(*DAT_00196f88)" (( "(") (pointer_expression "*DAT_00196f88" (* "*") (identifier "DAT_00196f88")) () ")")) (argument_list "(local_3c,4)" (( "(") (identifier "local_3c") (, ",") (number_literal "4") () ")")))) (; ";")) (expression_statement "*(undefined8 *)(param_1 + 0x30) = uVar4;" (assignment_expression "*(undefined8 *)(param_1 + 0x30) = uVar4" (pointer_expression "*(undefined8 *)(param_1 + 0x30)" (* "*") (cast_expression "(undefined8 *)(param_1 + 0x30)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x30)" (( "(") (binary_expression "param_1 + 0x30" (identifier "param_1") (+ "+") (number_literal "0x30")) () ")")))) (= "=") (identifier "uVar4")) (; ";")) (expression_statement "uVar4 = (*DAT_00196f88)(local_38,4);" (assignment_expression "uVar4 = (*DAT_00196f88)(local_38,4)" (identifier "uVar4") (= "=") (call_expression "(*DAT_00196f88)(local_38,4)" (parenthesized_expression "(*DAT_00196f88)" (( "(") (pointer_expression "*DAT_00196f88" (* "*") (identifier "DAT_00196f88")) () ")")) (argument_list "(local_38,4)" (( "(") (identifier "local_38") (, ",") (number_literal "4") () ")")))) (; ";")) (expression_statement "*(undefined8 *)(param_1 + 0x38) = uVar4;" (assignment_expression "*(undefined8 *)(param_1 + 0x38) = uVar4" (pointer_expression "*(undefined8 *)(param_1 + 0x38)" (* "*") (cast_expression "(undefined8 *)(param_1 + 0x38)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x38)" (( "(") (binary_expression "param_1 + 0x38" (identifier "param_1") (+ "+") (number_literal "0x38")) () ")")))) (= "=") (identifier "uVar4")) (; ";")) (expression_statement "uVar4 = (*DAT_00196f88)(local_34,4);" (assignment_expression "uVar4 = (*DAT_00196f88)(local_34,4)" (identifier "uVar4") (= "=") (call_expression "(*DAT_00196f88)(local_34,4)" (parenthesized_expression "(*DAT_00196f88)" (( "(") (pointer_expression "*DAT_00196f88" (* "*") (identifier "DAT_00196f88")) () ")")) (argument_list "(local_34,4)" (( "(") (identifier "local_34") (, ",") (number_literal "4") () ")")))) (; ";")) (expression_statement "*(undefined8 *)(param_1 + 0x48) = uVar4;" (assignment_expression "*(undefined8 *)(param_1 + 0x48) = uVar4" (pointer_expression "*(undefined8 *)(param_1 + 0x48)" (* "*") (cast_expression "(undefined8 *)(param_1 + 0x48)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x48)" (( "(") (binary_expression "param_1 + 0x48" (identifier "param_1") (+ "+") (number_literal "0x48")) () ")")))) (= "=") (identifier "uVar4")) (; ";")) (expression_statement "uVar2 = (*DAT_00196f88)(local_30,2);" (assignment_expression "uVar2 = (*DAT_00196f88)(local_30,2)" (identifier "uVar2") (= "=") (call_expression "(*DAT_00196f88)(local_30,2)" (parenthesized_expression "(*DAT_00196f88)" (( "(") (pointer_expression "*DAT_00196f88" (* "*") (identifier "DAT_00196f88")) () ")")) (argument_list "(local_30,2)" (( "(") (identifier "local_30") (, ",") (number_literal "2") () ")")))) (; ";")) (expression_statement "*(undefined4 *)(param_1 + 0x54) = uVar2;" (assignment_expression "*(undefined4 *)(param_1 + 0x54) = uVar2" (pointer_expression "*(undefined4 *)(param_1 + 0x54)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x54)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x54)" (( "(") (binary_expression "param_1 + 0x54" (identifier "param_1") (+ "+") (number_literal "0x54")) () ")")))) (= "=") (identifier "uVar2")) (; ";")) (expression_statement "uVar2 = (*DAT_00196f88)(local_2e,2);" (assignment_expression "uVar2 = (*DAT_00196f88)(local_2e,2)" (identifier "uVar2") (= "=") (call_expression "(*DAT_00196f88)(local_2e,2)" (parenthesized_expression "(*DAT_00196f88)" (( "(") (pointer_expression "*DAT_00196f88" (* "*") (identifier "DAT_00196f88")) () ")")) (argument_list "(local_2e,2)" (( "(") (identifier "local_2e") (, ",") (number_literal "2") () ")")))) (; ";")) (expression_statement "*(undefined4 *)(param_1 + 0x58) = uVar2;" (assignment_expression "*(undefined4 *)(param_1 + 0x58) = uVar2" (pointer_expression "*(undefined4 *)(param_1 + 0x58)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x58)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x58)" (( "(") (binary_expression "param_1 + 0x58" (identifier "param_1") (+ "+") (number_literal "0x58")) () ")")))) (= "=") (identifier "uVar2")) (; ";")) (expression_statement "uVar2 = (*DAT_00196f88)(local_2c,2);" (assignment_expression "uVar2 = (*DAT_00196f88)(local_2c,2)" (identifier "uVar2") (= "=") (call_expression "(*DAT_00196f88)(local_2c,2)" (parenthesized_expression "(*DAT_00196f88)" (( "(") (pointer_expression "*DAT_00196f88" (* "*") (identifier "DAT_00196f88")) () ")")) (argument_list "(local_2c,2)" (( "(") (identifier "local_2c") (, ",") (number_literal "2") () ")")))) (; ";")) (expression_statement "*(undefined4 *)(param_1 + 0x5c) = uVar2;" (assignment_expression "*(undefined4 *)(param_1 + 0x5c) = uVar2" (pointer_expression "*(undefined4 *)(param_1 + 0x5c)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x5c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x5c)" (( "(") (binary_expression "param_1 + 0x5c" (identifier "param_1") (+ "+") (number_literal "0x5c")) () ")")))) (= "=") (identifier "uVar2")) (; ";")) (expression_statement "uVar2 = (*DAT_00196f88)(local_2a,2);" (assignment_expression "uVar2 = (*DAT_00196f88)(local_2a,2)" (identifier "uVar2") (= "=") (call_expression "(*DAT_00196f88)(local_2a,2)" (parenthesized_expression "(*DAT_00196f88)" (( "(") (pointer_expression "*DAT_00196f88" (* "*") (identifier "DAT_00196f88")) () ")")) (argument_list "(local_2a,2)" (( "(") (identifier "local_2a") (, ",") (number_literal "2") () ")")))) (; ";")) (expression_statement "*(undefined4 *)(param_1 + 0x60) = uVar2;" (assignment_expression "*(undefined4 *)(param_1 + 0x60) = uVar2" (pointer_expression "*(undefined4 *)(param_1 + 0x60)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x60)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x60)" (( "(") (binary_expression "param_1 + 0x60" (identifier "param_1") (+ "+") (number_literal "0x60")) () ")")))) (= "=") (identifier "uVar2")) (; ";")) (expression_statement "uVar2 = (*DAT_00196f88)(local_28,2);" (assignment_expression "uVar2 = (*DAT_00196f88)(local_28,2)" (identifier "uVar2") (= "=") (call_expression "(*DAT_00196f88)(local_28,2)" (parenthesized_expression "(*DAT_00196f88)" (( "(") (pointer_expression "*DAT_00196f88" (* "*") (identifier "DAT_00196f88")) () ")")) (argument_list "(local_28,2)" (( "(") (identifier "local_28") (, ",") (number_literal "2") () ")")))) (; ";")) (expression_statement "*(undefined4 *)(param_1 + 100) = uVar2;" (assignment_expression "*(undefined4 *)(param_1 + 100) = uVar2" (pointer_expression "*(undefined4 *)(param_1 + 100)" (* "*") (cast_expression "(undefined4 *)(param_1 + 100)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 100)" (( "(") (binary_expression "param_1 + 100" (identifier "param_1") (+ "+") (number_literal "100")) () ")")))) (= "=") (identifier "uVar2")) (; ";")) (expression_statement "uVar2 = (*DAT_00196f88)(local_26,2);" (assignment_expression "uVar2 = (*DAT_00196f88)(local_26,2)" (identifier "uVar2") (= "=") (call_expression "(*DAT_00196f88)(local_26,2)" (parenthesized_expression "(*DAT_00196f88)" (( "(") (pointer_expression "*DAT_00196f88" (* "*") (identifier "DAT_00196f88")) () ")")) (argument_list "(local_26,2)" (( "(") (identifier "local_26") (, ",") (number_literal "2") () ")")))) (; ";")) (expression_statement "*(undefined4 *)(param_1 + 0x68) = uVar2;" (assignment_expression "*(undefined4 *)(param_1 + 0x68) = uVar2" (pointer_expression "*(undefined4 *)(param_1 + 0x68)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x68)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x68)" (( "(") (binary_expression "param_1 + 0x68" (identifier "param_1") (+ "+") (number_literal "0x68")) () ")")))) (= "=") (identifier "uVar2")) (; ";")) (} "}")))) (expression_statement "uVar4 = 1;" (assignment_expression "uVar4 = 1" (identifier "uVar4") (= "=") (number_literal "1")) (; ";")) (if_statement "if (*(long *)(param_1 + 0x38) != 0) {\n      if (DAT_0019345c == 0) {\n        FUN_00115940(param_1,1);\n      }\n      else {\n        FUN_00115650();\n      }\n    }" (if "if") (parenthesized_expression "(*(long *)(param_1 + 0x38) != 0)" (( "(") (binary_expression "*(long *)(param_1 + 0x38) != 0" (pointer_expression "*(long *)(param_1 + 0x38)" (* "*") (cast_expression "(long *)(param_1 + 0x38)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x38)" (( "(") (binary_expression "param_1 + 0x38" (identifier "param_1") (+ "+") (number_literal "0x38")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      if (DAT_0019345c == 0) {\n        FUN_00115940(param_1,1);\n      }\n      else {\n        FUN_00115650();\n      }\n    }" ({ "{") (if_statement "if (DAT_0019345c == 0) {\n        FUN_00115940(param_1,1);\n      }\n      else {\n        FUN_00115650();\n      }" (if "if") (parenthesized_expression "(DAT_0019345c == 0)" (( "(") (binary_expression "DAT_0019345c == 0" (identifier "DAT_0019345c") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        FUN_00115940(param_1,1);\n      }" ({ "{") (expression_statement "FUN_00115940(param_1,1);" (call_expression "FUN_00115940(param_1,1)" (identifier "FUN_00115940") (argument_list "(param_1,1)" (( "(") (identifier "param_1") (, ",") (number_literal "1") () ")"))) (; ";")) (} "}")) (else_clause "else {\n        FUN_00115650();\n      }" (else "else") (compound_statement "{\n        FUN_00115650();\n      }" ({ "{") (expression_statement "FUN_00115650();" (call_expression "FUN_00115650()" (identifier "FUN_00115650") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))) (} "}"))) (} "}"))) (return_statement "return uVar4;" (return "return") (identifier "uVar4") (; ";")) (} "}")))

type_1 function_1(type_2 *filedata)

{
  type_3 *__ptr;
  size_t var_2;
  type_4 eVar2;
  type_1 bVar3;
  bool bVar4;
  type_5 ehdr32;
  type_3 local_24 [2];
  type_3 local_22 [2];
  type_3 local_20 [2];
  type_3 local_1e [2];
  type_3 local_1c [2];
  type_3 local_1a [2];
  
  bVar3 = 0;
  var_2 = var_1(&filedata->file_header,0x10,1,(type_6 *)filedata->handle);
  if (var_2 == 1) {
    if ((filedata->file_header).e_ident[5] == '\x02') {
      byte_get = byte_get_big_endian;
      byte_put = byte_put_big_endian;
    }
    else {
      byte_get = byte_get_little_endian;
      byte_put = byte_put_little_endian;
    }
    __ptr = ehdr32.e_type;
    bVar4 = (filedata->file_header).e_ident[4] == '\x02';
    var_3 = (type_1)!bVar4;
    if (bVar4) {
      var_2 = var_1(__ptr,0x30,1,(type_6 *)filedata->handle);
      if (var_2 != 1) {
        return 0;
      }
      eVar2 = (*byte_get)(__ptr,2);
      (filedata->file_header).e_type = (type_7)eVar2;
      eVar2 = (*byte_get)(ehdr32.e_machine,2);
      (filedata->file_header).e_machine = (type_7)eVar2;
      eVar2 = (*byte_get)(ehdr32.e_version,4);
      (filedata->file_header).e_version = eVar2;
      eVar2 = (*byte_get)(ehdr32.e_entry,8);
      (filedata->file_header).e_entry = eVar2;
      eVar2 = (*byte_get)(ehdr32.e_shoff,8);
      (filedata->file_header).e_phoff = eVar2;
      eVar2 = (*byte_get)(ehdr32.e_ehsize,8);
      (filedata->file_header).e_shoff = eVar2;
      eVar2 = (*byte_get)(ehdr32.e_shnum,4);
      (filedata->file_header).e_flags = eVar2;
      eVar2 = (*byte_get)(local_24,2);
      (filedata->file_header).e_ehsize = (type_8)eVar2;
      eVar2 = (*byte_get)(local_22,2);
      (filedata->file_header).e_phentsize = (type_8)eVar2;
      eVar2 = (*byte_get)(local_20,2);
      (filedata->file_header).e_phnum = (type_8)eVar2;
      eVar2 = (*byte_get)(local_1e,2);
      (filedata->file_header).e_shentsize = (type_8)eVar2;
      eVar2 = (*byte_get)(local_1c,2);
      (filedata->file_header).e_shnum = (type_8)eVar2;
      eVar2 = (*byte_get)(local_1a,2);
      (filedata->file_header).e_shstrndx = (type_8)eVar2;
    }
    else {
      var_2 = var_1(__ptr,0x24,1,(type_6 *)filedata->handle);
      if (var_2 != 1) {
        return 0;
      }
      eVar2 = (*byte_get)(__ptr,2);
      (filedata->file_header).e_type = (type_7)eVar2;
      eVar2 = (*byte_get)(ehdr32.e_machine,2);
      (filedata->file_header).e_machine = (type_7)eVar2;
      eVar2 = (*byte_get)(ehdr32.e_version,4);
      (filedata->file_header).e_version = eVar2;
      eVar2 = (*byte_get)(ehdr32.e_entry,4);
      (filedata->file_header).e_entry = eVar2;
      eVar2 = (*byte_get)(ehdr32.e_phoff,4);
      (filedata->file_header).e_phoff = eVar2;
      eVar2 = (*byte_get)(ehdr32.e_shoff,4);
      (filedata->file_header).e_shoff = eVar2;
      eVar2 = (*byte_get)(ehdr32.e_flags,4);
      (filedata->file_header).e_flags = eVar2;
      eVar2 = (*byte_get)(ehdr32.e_ehsize,2);
      (filedata->file_header).e_ehsize = (type_8)eVar2;
      eVar2 = (*byte_get)(ehdr32.e_phentsize,2);
      (filedata->file_header).e_phentsize = (type_8)eVar2;
      eVar2 = (*byte_get)(ehdr32.e_phnum,2);
      (filedata->file_header).e_phnum = (type_8)eVar2;
      eVar2 = (*byte_get)(ehdr32.e_shentsize,2);
      (filedata->file_header).e_shentsize = (type_8)eVar2;
      eVar2 = (*byte_get)(ehdr32.e_shnum,2);
      (filedata->file_header).e_shnum = (type_8)eVar2;
      eVar2 = (*byte_get)(ehdr32.e_shstrndx,2);
      (filedata->file_header).e_shstrndx = (type_8)eVar2;
    }
    bVar3 = 1;
    if ((filedata->file_header).e_shoff != 0) {
      if (var_3 == 0) {
        var_4(filedata,1);
      }
      else {
        var_5(filedata,1);
      }
    }
  }
  return bVar3;
}


(translation_unit (function_definition type: (type_identifier) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (sized_type_specifier) declarator: (identifier)))) body: (compound_statement (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))) (number_literal) (number_literal) (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (char_literal (escape_sequence))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (unary_expression argument: (identifier))))) (if_statement condition: (parenthesized_expression (identifier)) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (number_literal) (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier) (number_literal))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier) (number_literal))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier) (number_literal))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier) (number_literal))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier) (number_literal))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier) (number_literal))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier) (number_literal))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier) (number_literal))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier) (number_literal))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier) (number_literal))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier) (number_literal))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier) (number_literal))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier) (number_literal))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (number_literal) (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier) (number_literal))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier) (number_literal))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier) (number_literal))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier) (number_literal))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier) (number_literal))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier) (number_literal))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier) (number_literal))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier) (number_literal))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier) (number_literal))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier) (number_literal))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier) (number_literal))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier) (number_literal))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier) (number_literal))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal))))) alternative: (else_clause (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list)))))))))) (return_statement (identifier)))))

undefined8 MASKED(long param_1)

{
  undefined2 uVar1;
  undefined4 uVar2;
  size_t sVar3;
  undefined8 uVar4;
  bool bVar5;
  undefined1 local_48 [2];
  undefined1 local_46 [2];
  undefined1 local_44 [4];
  undefined1 local_40 [4];
  undefined1 local_3c [4];
  undefined1 local_38 [4];
  undefined1 local_34 [4];
  undefined1 local_30 [2];
  undefined1 local_2e [2];
  undefined1 local_2c [2];
  undefined1 local_2a [2];
  undefined1 local_28 [2];
  undefined1 local_26 [2];
  undefined1 local_24 [2];
  undefined1 local_22 [2];
  undefined1 local_20 [2];
  undefined1 local_1e [2];
  undefined1 local_1c [2];
  undefined1 local_1a [2];
  
  uVar4 = 0;
  sVar3 = fread((void *)(param_1 + 0x18),0x10,1,*(FILE **)(param_1 + 8));
  if (sVar3 == 1) {
    if (*(char *)(param_1 + 0x1d) == '\x02') {
      DAT_00196f88 = FUN_00154c60;
      DAT_00196f90 = FUN_00155250;
    }
    else {
      DAT_00196f88 = FUN_001552c0;
      DAT_00196f90 = FUN_001551b0;
    }
    bVar5 = *(char *)(param_1 + 0x1c) == '\x02';
    DAT_0019345c = (uint)!bVar5;
    if (bVar5) {
      sVar3 = fread(local_48,0x30,1,*(FILE **)(param_1 + 8));
      if (sVar3 != 1) {
        return 0;
      }
      uVar1 = (*DAT_00196f88)(local_48,2);
      *(undefined2 *)(param_1 + 0x50) = uVar1;
      uVar1 = (*DAT_00196f88)(local_46,2);
      *(undefined2 *)(param_1 + 0x52) = uVar1;
      uVar4 = (*DAT_00196f88)(local_44,4);
      *(undefined8 *)(param_1 + 0x40) = uVar4;
      uVar4 = (*DAT_00196f88)(local_40,8);
      *(undefined8 *)(param_1 + 0x28) = uVar4;
      uVar4 = (*DAT_00196f88)(local_38,8);
      *(undefined8 *)(param_1 + 0x30) = uVar4;
      uVar4 = (*DAT_00196f88)(local_30,8);
      *(undefined8 *)(param_1 + 0x38) = uVar4;
      uVar4 = (*DAT_00196f88)(local_28,4);
      *(undefined8 *)(param_1 + 0x48) = uVar4;
      uVar2 = (*DAT_00196f88)(local_24,2);
      *(undefined4 *)(param_1 + 0x54) = uVar2;
      uVar2 = (*DAT_00196f88)(local_22,2);
      *(undefined4 *)(param_1 + 0x58) = uVar2;
      uVar2 = (*DAT_00196f88)(local_20,2);
      *(undefined4 *)(param_1 + 0x5c) = uVar2;
      uVar2 = (*DAT_00196f88)(local_1e,2);
      *(undefined4 *)(param_1 + 0x60) = uVar2;
      uVar2 = (*DAT_00196f88)(local_1c,2);
      *(undefined4 *)(param_1 + 100) = uVar2;
      uVar2 = (*DAT_00196f88)(local_1a,2);
      *(undefined4 *)(param_1 + 0x68) = uVar2;
    }
    else {
      sVar3 = fread(local_48,0x24,1,*(FILE **)(param_1 + 8));
      if (sVar3 != 1) {
        return 0;
      }
      uVar1 = (*DAT_00196f88)(local_48,2);
      *(undefined2 *)(param_1 + 0x50) = uVar1;
      uVar1 = (*DAT_00196f88)(local_46,2);
      *(undefined2 *)(param_1 + 0x52) = uVar1;
      uVar4 = (*DAT_00196f88)(local_44,4);
      *(undefined8 *)(param_1 + 0x40) = uVar4;
      uVar4 = (*DAT_00196f88)(local_40,4);
      *(undefined8 *)(param_1 + 0x28) = uVar4;
      uVar4 = (*DAT_00196f88)(local_3c,4);
      *(undefined8 *)(param_1 + 0x30) = uVar4;
      uVar4 = (*DAT_00196f88)(local_38,4);
      *(undefined8 *)(param_1 + 0x38) = uVar4;
      uVar4 = (*DAT_00196f88)(local_34,4);
      *(undefined8 *)(param_1 + 0x48) = uVar4;
      uVar2 = (*DAT_00196f88)(local_30,2);
      *(undefined4 *)(param_1 + 0x54) = uVar2;
      uVar2 = (*DAT_00196f88)(local_2e,2);
      *(undefined4 *)(param_1 + 0x58) = uVar2;
      uVar2 = (*DAT_00196f88)(local_2c,2);
      *(undefined4 *)(param_1 + 0x5c) = uVar2;
      uVar2 = (*DAT_00196f88)(local_2a,2);
      *(undefined4 *)(param_1 + 0x60) = uVar2;
      uVar2 = (*DAT_00196f88)(local_28,2);
      *(undefined4 *)(param_1 + 100) = uVar2;
      uVar2 = (*DAT_00196f88)(local_26,2);
      *(undefined4 *)(param_1 + 0x68) = uVar2;
    }
    uVar4 = 1;
    if (*(long *)(param_1 + 0x38) != 0) {
      if (DAT_0019345c == 0) {
        FUN_00115940(param_1,1);
      }
      else {
        FUN_00115650();
      }
    }
  }
  return uVar4;
}

