
int hex_float(int float_type,char *bytes)

{
  char *pcVar1;
  byte bVar2;
  byte *pbVar3;
  int iVar4;
  char *pcVar5;
  char cVar6;
  uint uVar7;
  ulong uVar8;
  ulong uVar9;
  byte *pbVar10;
  int iVar11;
  
  switch(float_type) {
  case 0x44:
  case 0x52:
  case 100:
  case 0x72:
    iVar4 = 8;
    break;
  default:
    pcVar5 = (char *)dcgettext(0,"unknown floating type type \'%c\'",5);
    as_bad(pcVar5,float_type);
    return -1;
  case 0x46:
  case 0x53:
  case 0x66:
  case 0x73:
    iVar4 = 4;
    break;
  case 0x50:
  case 0x58:
  case 0x70:
  case 0x78:
    iVar4 = 0xc;
  }
  iVar11 = 0;
  do {
    bVar2 = *input_line_pointer;
    uVar8 = (ulong)bVar2;
    cVar6 = _hex_value[uVar8];
    while (cVar6 != 'c') {
      if ((char)uVar8 == '_') goto LAB_00126f8e;
      if (iVar4 <= iVar11) {
        pcVar5 = (char *)dcgettext(0,"floating point constant too large",5);
        as_warn(pcVar5);
        return -1;
      }
      cVar6 = cVar6 * '\x10';
      pbVar10 = (byte *)(input_line_pointer + 1);
      bVar2 = input_line_pointer[1];
      if (bVar2 == 0x5f) {
        pbVar3 = (byte *)(input_line_pointer + 2);
        do {
          pbVar10 = pbVar3;
          bVar2 = *pbVar10;
          pbVar3 = pbVar10 + 1;
        } while (bVar2 == 0x5f);
      }
      input_line_pointer = (char *)pbVar10;
      if (_hex_value[bVar2] != 'c') {
        cVar6 = _hex_value[bVar2] + cVar6;
        input_line_pointer = (char *)(pbVar10 + 1);
      }
      if (target_big_endian == 0) {
        bytes[(long)(iVar4 - iVar11) + -1] = cVar6;
      }
      else {
        bytes[iVar11] = cVar6;
      }
      iVar11 = iVar11 + 1;
      bVar2 = *input_line_pointer;
      uVar8 = (ulong)bVar2;
      cVar6 = _hex_value[uVar8];
    }
    if (bVar2 != 0x5f) {
      if (iVar11 < iVar4) {
        uVar7 = iVar4 - iVar11;
        uVar8 = (ulong)(int)uVar7;
        if (target_big_endian == 0) {
          if (7 < uVar8) {
            uVar9 = 0;
            do {
              pcVar5 = bytes + uVar9;
              pcVar5[0] = '\0';
              pcVar5[1] = '\0';
              pcVar5[2] = '\0';
              pcVar5[3] = '\0';
              pcVar5[4] = '\0';
              pcVar5[5] = '\0';
              pcVar5[6] = '\0';
              pcVar5[7] = '\0';
              uVar9 = uVar9 + 8;
            } while (uVar9 < (uVar8 & 0xfffffffffffffff8));
            bytes = bytes + uVar9;
          }
          if ((uVar8 & 4) != 0) {
            bytes[0] = '\0';
            bytes[1] = '\0';
            bytes[2] = '\0';
            bytes[3] = '\0';
            bytes = bytes + 4;
          }
          pcVar5 = bytes;
          if ((uVar7 & 2) != 0) {
            pcVar5 = bytes + 2;
            bytes[0] = '\0';
            bytes[1] = '\0';
          }
          if ((uVar7 & 1) != 0) {
            *pcVar5 = '\0';
            return iVar4;
          }
        }
        else {
          pcVar5 = bytes + iVar11;
          if (uVar8 < 8) {
            if ((uVar8 & 4) != 0) {
              pcVar5[0] = '\0';
              pcVar5[1] = '\0';
              pcVar5[2] = '\0';
              pcVar5[3] = '\0';
              pcVar5 = pcVar5 + (uVar8 - 4);
              pcVar5[0] = '\0';
              pcVar5[1] = '\0';
              pcVar5[2] = '\0';
              pcVar5[3] = '\0';
              return iVar4;
            }
            if ((uVar8 != 0) && (*pcVar5 = '\0', (uVar7 & 2) != 0)) {
              (pcVar5 + (uVar8 - 2))[0] = '\0';
              (pcVar5 + (uVar8 - 2))[1] = '\0';
              return iVar4;
            }
          }
          else {
            pcVar5[0] = '\0';
            pcVar5[1] = '\0';
            pcVar5[2] = '\0';
            pcVar5[3] = '\0';
            pcVar5[4] = '\0';
            pcVar5[5] = '\0';
            pcVar5[6] = '\0';
            pcVar5[7] = '\0';
            pcVar1 = pcVar5 + (uVar8 - 8);
            pcVar1[0] = '\0';
            pcVar1[1] = '\0';
            pcVar1[2] = '\0';
            pcVar1[3] = '\0';
            pcVar1[4] = '\0';
            pcVar1[5] = '\0';
            pcVar1[6] = '\0';
            pcVar1[7] = '\0';
            if (7 < ((ulong)(pcVar5 + (uVar8 - ((ulong)(pcVar5 + 8) & 0xfffffffffffffff8))) &
                    0xfffffffffffffff8)) {
              uVar9 = 0;
              do {
                *(undefined8 *)(((ulong)(pcVar5 + 8) & 0xfffffffffffffff8) + uVar9) = 0;
                uVar9 = uVar9 + 8;
              } while (uVar9 < ((ulong)(pcVar5 + (uVar8 - ((ulong)(pcVar5 + 8) & 0xfffffffffffffff8)
                                                 )) & 0xfffffffffffffff8));
              return iVar4;
            }
          }
        }
      }
      return iVar4;
    }
LAB_00126f8e:
    input_line_pointer = input_line_pointer + 1;
  } while( true );
}



int FUN_00126ea0(undefined4 param_1,undefined4 *param_2)

{
  byte bVar1;
  byte *pbVar2;
  int iVar3;
  undefined8 uVar4;
  char cVar5;
  uint uVar6;
  ulong uVar7;
  ulong uVar8;
  undefined8 *puVar9;
  undefined4 *puVar10;
  byte *pbVar11;
  int iVar12;
  
  switch(param_1) {
  case 0x44:
  case 0x52:
  case 100:
  case 0x72:
    iVar3 = 8;
    break;
  default:
    uVar4 = dcgettext(0,"unknown floating type type \'%c\'",5);
    FUN_00126580(uVar4,param_1);
    return -1;
  case 0x46:
  case 0x53:
  case 0x66:
  case 0x73:
    iVar3 = 4;
    break;
  case 0x50:
  case 0x58:
  case 0x70:
  case 0x78:
    iVar3 = 0xc;
  }
  iVar12 = 0;
  do {
    bVar1 = *DAT_00175a40;
    uVar7 = (ulong)bVar1;
    cVar5 = _hex_value[uVar7];
    while (cVar5 != 'c') {
      if ((char)uVar7 == '_') goto LAB_00126f8e;
      if (iVar3 <= iVar12) {
        uVar4 = dcgettext(0,"floating point constant too large",5);
        FUN_001263b0(uVar4);
        return -1;
      }
      cVar5 = cVar5 * '\x10';
      pbVar11 = DAT_00175a40 + 1;
      bVar1 = DAT_00175a40[1];
      if (bVar1 == 0x5f) {
        pbVar2 = DAT_00175a40 + 2;
        do {
          pbVar11 = pbVar2;
          bVar1 = *pbVar11;
          pbVar2 = pbVar11 + 1;
        } while (bVar1 == 0x5f);
      }
      DAT_00175a40 = pbVar11;
      if (_hex_value[bVar1] != 'c') {
        cVar5 = _hex_value[bVar1] + cVar5;
        DAT_00175a40 = pbVar11 + 1;
      }
      if (DAT_0016c4c8 == 0) {
        *(char *)((long)param_2 + (long)(iVar3 - iVar12) + -1) = cVar5;
      }
      else {
        *(char *)((long)param_2 + (long)iVar12) = cVar5;
      }
      iVar12 = iVar12 + 1;
      bVar1 = *DAT_00175a40;
      uVar7 = (ulong)bVar1;
      cVar5 = _hex_value[uVar7];
    }
    if (bVar1 != 0x5f) {
      if (iVar12 < iVar3) {
        uVar6 = iVar3 - iVar12;
        uVar7 = (ulong)(int)uVar6;
        if (DAT_0016c4c8 == 0) {
          if (7 < uVar7) {
            uVar8 = 0;
            do {
              *(undefined8 *)((long)param_2 + uVar8) = 0;
              uVar8 = uVar8 + 8;
            } while (uVar8 < (uVar7 & 0xfffffffffffffff8));
            param_2 = (undefined4 *)(uVar8 + (long)param_2);
          }
          if ((uVar7 & 4) != 0) {
            *param_2 = 0;
            param_2 = param_2 + 1;
          }
          puVar10 = param_2;
          if ((uVar6 & 2) != 0) {
            puVar10 = (undefined4 *)((long)param_2 + 2);
            *(undefined2 *)param_2 = 0;
          }
          if ((uVar6 & 1) != 0) {
            *(undefined1 *)puVar10 = 0;
            return iVar3;
          }
        }
        else {
          puVar9 = (undefined8 *)((long)iVar12 + (long)param_2);
          if (uVar7 < 8) {
            if ((uVar7 & 4) != 0) {
              *(undefined4 *)puVar9 = 0;
              *(undefined4 *)((long)puVar9 + (uVar7 - 4)) = 0;
              return iVar3;
            }
            if ((uVar7 != 0) && (*(undefined1 *)puVar9 = 0, (uVar6 & 2) != 0)) {
              *(undefined2 *)((long)puVar9 + (uVar7 - 2)) = 0;
              return iVar3;
            }
          }
          else {
            *puVar9 = 0;
            *(undefined8 *)((long)puVar9 + (uVar7 - 8)) = 0;
            uVar7 = (ulong)((long)puVar9 + (uVar7 - ((ulong)(puVar9 + 1) & 0xfffffffffffffff8))) &
                    0xfffffffffffffff8;
            if (7 < uVar7) {
              uVar8 = 0;
              do {
                *(undefined8 *)(((ulong)(puVar9 + 1) & 0xfffffffffffffff8) + uVar8) = 0;
                uVar8 = uVar8 + 8;
              } while (uVar8 < uVar7);
              return iVar3;
            }
          }
        }
      }
      return iVar3;
    }
LAB_00126f8e:
    DAT_00175a40 = DAT_00175a40 + 1;
  } while( true );
}


LEA EAX,[RDI + -0x44]
PUSH RBX
MOV EBX,EDI
CMP EAX,0x34
JA 0x00126fb2
LEA RDX,[0x151930]
MOVSXD RAX,dword ptr [RDX + RAX*0x4]
ADD RAX,RDX
JMP RAX
MOV EAX,0xc
MOV RDX,qword ptr [0x00175a40]
XOR R9D,R9D
LEA R10,[0x16a3a0]
NOP dword ptr [RAX]
MOVZX ECX,byte ptr [RDX]
MOV RDI,RCX
MOVZX ECX,byte ptr [R10 + RCX*0x1]
CMP CL,0x63
JZ 0x00126f88
CMP DIL,0x5f
JZ 0x00126f8e
CMP EAX,R9D
JLE 0x00127048
SHL ECX,0x4
LEA RDI,[RDX + 0x1]
MOV R8D,ECX
MOV qword ptr [0x00175a40],RDI
MOVZX ECX,byte ptr [RDX + 0x1]
CMP CL,0x5f
JNZ 0x00126f37
ADD RDX,0x2
NOP dword ptr [RAX]
MOV RDI,RDX
MOV qword ptr [0x00175a40],RDX
ADD RDX,0x1
MOVZX ECX,byte ptr [RDX + -0x1]
CMP CL,0x5f
JZ 0x00126f20
MOVZX ECX,byte ptr [R10 + RCX*0x1]
CMP CL,0x63
JZ 0x00127040
ADD RDI,0x1
ADD ECX,R8D
MOV qword ptr [0x00175a40],RDI
MOV R11D,dword ptr [0x0016c4c8]
TEST R11D,R11D
JZ 0x00127028
MOVSXD RDX,R9D
MOV byte ptr [RSI + RDX*0x1],CL
MOV RDX,qword ptr [0x00175a40]
ADD R9D,0x1
MOVZX ECX,byte ptr [RDX]
MOV RDI,RCX
MOVZX ECX,byte ptr [R10 + RCX*0x1]
CMP CL,0x63
JNZ 0x00126eec
CMP DIL,0x5f
JNZ 0x00126fd8
ADD RDX,0x1
MOV qword ptr [0x00175a40],RDX
JMP 0x00126ed8
MOV EAX,0x4
JMP 0x00126ec4
MOV EAX,0x8
JMP 0x00126ec4
MOV EDX,0x5
LEA RSI,[0x1507d0]
XOR EDI,EDI
CALL 0x001111c0
MOV ESI,EBX
MOV RDI,RAX
XOR EAX,EAX
CALL 0x00126580
MOV EAX,0xffffffff
POP RBX
RET
CMP EAX,R9D
JLE 0x00126fd6
MOV ECX,EAX
MOV R8D,dword ptr [0x0016c4c8]
SUB ECX,R9D
MOVSXD RCX,ECX
TEST R8D,R8D
JZ 0x0012706c
MOVSXD RDX,R9D
XOR EDI,EDI
ADD RDX,RSI
CMP RCX,0x8
JNC 0x00127090
TEST CL,0x4
JNZ 0x00127107
TEST RCX,RCX
JZ 0x00126fd6
MOV byte ptr [RDX],0x0
TEST CL,0x2
JZ 0x00126fd6
XOR EDI,EDI
MOV word ptr [RDX + RCX*0x1 + -0x2],DI
POP RBX
RET
MOV EDX,EAX
SUB EDX,R9D
MOVSXD RDX,EDX
MOV byte ptr [RSI + RDX*0x1 + -0x1],CL
JMP 0x00126f69
MOV ECX,R8D
JMP 0x00126f53
MOV EDX,0x5
LEA RSI,[0x1507f0]
XOR EDI,EDI
CALL 0x001111c0
MOV RDI,RAX
XOR EAX,EAX
CALL 0x001263b0
MOV EAX,0xffffffff
POP RBX
RET
MOV RDX,RSI
XOR R8D,R8D
CMP RCX,0x8
JNC 0x001270e9
TEST CL,0x4
JNZ 0x001270dd
TEST CL,0x2
JNZ 0x001270d1
AND ECX,0x1
JZ 0x00126fd6
MOV byte ptr [RDX],0x0
POP RBX
RET
LEA RSI,[RDX + 0x8]
MOV qword ptr [RDX],0x0
MOV qword ptr [RDX + RCX*0x1 + -0x8],0x0
AND RSI,-0x8
SUB RDX,RSI
ADD RDX,RCX
AND RDX,-0x8
CMP RDX,0x8
JC 0x00126fd6
AND RDX,-0x8
XOR ECX,ECX
MOV qword ptr [RSI + RCX*0x1],RDI
ADD RCX,0x8
CMP RCX,RDX
JC 0x001270c2
POP RBX
RET
XOR ESI,ESI
ADD RDX,0x2
MOV word ptr [RDX + -0x2],SI
JMP 0x00127082
MOV dword ptr [RDX],0x0
ADD RDX,0x4
JMP 0x0012707d
MOV RDI,RCX
XOR EDX,EDX
AND RDI,-0x8
MOV qword ptr [RSI + RDX*0x1],R8
ADD RDX,0x8
CMP RDX,RDI
JC 0x001270f2
ADD RDX,RSI
JMP 0x00127078
MOV dword ptr [RDX],0x0
MOV dword ptr [RDX + RCX*0x1 + -0x4],0x0
POP RBX
RET
(translation_unit "int FUN_00126ea0(undefined4 param_1,undefined4 *param_2)\n\n{\n  byte bVar1;\n  byte *pbVar2;\n  int iVar3;\n  undefined8 uVar4;\n  char cVar5;\n  uint uVar6;\n  ulong uVar7;\n  ulong uVar8;\n  undefined8 *puVar9;\n  undefined4 *puVar10;\n  byte *pbVar11;\n  int iVar12;\n  \n  switch(param_1) {\n  case 0x44:\n  case 0x52:\n  case 100:\n  case 0x72:\n    iVar3 = 8;\n    break;\n  default:\n    uVar4 = dcgettext(0,"unknown floating type type \'%c\'",5);\n    FUN_00126580(uVar4,param_1);\n    return -1;\n  case 0x46:\n  case 0x53:\n  case 0x66:\n  case 0x73:\n    iVar3 = 4;\n    break;\n  case 0x50:\n  case 0x58:\n  case 0x70:\n  case 0x78:\n    iVar3 = 0xc;\n  }\n  iVar12 = 0;\n  do {\n    bVar1 = *DAT_00175a40;\n    uVar7 = (ulong)bVar1;\n    cVar5 = _hex_value[uVar7];\n    while (cVar5 != 'c') {\n      if ((char)uVar7 == '_') goto LAB_00126f8e;\n      if (iVar3 <= iVar12) {\n        uVar4 = dcgettext(0,"floating point constant too large",5);\n        FUN_001263b0(uVar4);\n        return -1;\n      }\n      cVar5 = cVar5 * '\x10';\n      pbVar11 = DAT_00175a40 + 1;\n      bVar1 = DAT_00175a40[1];\n      if (bVar1 == 0x5f) {\n        pbVar2 = DAT_00175a40 + 2;\n        do {\n          pbVar11 = pbVar2;\n          bVar1 = *pbVar11;\n          pbVar2 = pbVar11 + 1;\n        } while (bVar1 == 0x5f);\n      }\n      DAT_00175a40 = pbVar11;\n      if (_hex_value[bVar1] != 'c') {\n        cVar5 = _hex_value[bVar1] + cVar5;\n        DAT_00175a40 = pbVar11 + 1;\n      }\n      if (DAT_0016c4c8 == 0) {\n        *(char *)((long)param_2 + (long)(iVar3 - iVar12) + -1) = cVar5;\n      }\n      else {\n        *(char *)((long)param_2 + (long)iVar12) = cVar5;\n      }\n      iVar12 = iVar12 + 1;\n      bVar1 = *DAT_00175a40;\n      uVar7 = (ulong)bVar1;\n      cVar5 = _hex_value[uVar7];\n    }\n    if (bVar1 != 0x5f) {\n      if (iVar12 < iVar3) {\n        uVar6 = iVar3 - iVar12;\n        uVar7 = (ulong)(int)uVar6;\n        if (DAT_0016c4c8 == 0) {\n          if (7 < uVar7) {\n            uVar8 = 0;\n            do {\n              *(undefined8 *)((long)param_2 + uVar8) = 0;\n              uVar8 = uVar8 + 8;\n            } while (uVar8 < (uVar7 & 0xfffffffffffffff8));\n            param_2 = (undefined4 *)(uVar8 + (long)param_2);\n          }\n          if ((uVar7 & 4) != 0) {\n            *param_2 = 0;\n            param_2 = param_2 + 1;\n          }\n          puVar10 = param_2;\n          if ((uVar6 & 2) != 0) {\n            puVar10 = (undefined4 *)((long)param_2 + 2);\n            *(undefined2 *)param_2 = 0;\n          }\n          if ((uVar6 & 1) != 0) {\n            *(undefined1 *)puVar10 = 0;\n            return iVar3;\n          }\n        }\n        else {\n          puVar9 = (undefined8 *)((long)iVar12 + (long)param_2);\n          if (uVar7 < 8) {\n            if ((uVar7 & 4) != 0) {\n              *(undefined4 *)puVar9 = 0;\n              *(undefined4 *)((long)puVar9 + (uVar7 - 4)) = 0;\n              return iVar3;\n            }\n            if ((uVar7 != 0) && (*(undefined1 *)puVar9 = 0, (uVar6 & 2) != 0)) {\n              *(undefined2 *)((long)puVar9 + (uVar7 - 2)) = 0;\n              return iVar3;\n            }\n          }\n          else {\n            *puVar9 = 0;\n            *(undefined8 *)((long)puVar9 + (uVar7 - 8)) = 0;\n            uVar7 = (ulong)((long)puVar9 + (uVar7 - ((ulong)(puVar9 + 1) & 0xfffffffffffffff8))) &\n                    0xfffffffffffffff8;\n            if (7 < uVar7) {\n              uVar8 = 0;\n              do {\n                *(undefined8 *)(((ulong)(puVar9 + 1) & 0xfffffffffffffff8) + uVar8) = 0;\n                uVar8 = uVar8 + 8;\n              } while (uVar8 < uVar7);\n              return iVar3;\n            }\n          }\n        }\n      }\n      return iVar3;\n    }\nLAB_00126f8e:\n    DAT_00175a40 = DAT_00175a40 + 1;\n  } while( true );\n}\n\n" (function_definition "int FUN_00126ea0(undefined4 param_1,undefined4 *param_2)\n\n{\n  byte bVar1;\n  byte *pbVar2;\n  int iVar3;\n  undefined8 uVar4;\n  char cVar5;\n  uint uVar6;\n  ulong uVar7;\n  ulong uVar8;\n  undefined8 *puVar9;\n  undefined4 *puVar10;\n  byte *pbVar11;\n  int iVar12;\n  \n  switch(param_1) {\n  case 0x44:\n  case 0x52:\n  case 100:\n  case 0x72:\n    iVar3 = 8;\n    break;\n  default:\n    uVar4 = dcgettext(0,"unknown floating type type \'%c\'",5);\n    FUN_00126580(uVar4,param_1);\n    return -1;\n  case 0x46:\n  case 0x53:\n  case 0x66:\n  case 0x73:\n    iVar3 = 4;\n    break;\n  case 0x50:\n  case 0x58:\n  case 0x70:\n  case 0x78:\n    iVar3 = 0xc;\n  }\n  iVar12 = 0;\n  do {\n    bVar1 = *DAT_00175a40;\n    uVar7 = (ulong)bVar1;\n    cVar5 = _hex_value[uVar7];\n    while (cVar5 != 'c') {\n      if ((char)uVar7 == '_') goto LAB_00126f8e;\n      if (iVar3 <= iVar12) {\n        uVar4 = dcgettext(0,"floating point constant too large",5);\n        FUN_001263b0(uVar4);\n        return -1;\n      }\n      cVar5 = cVar5 * '\x10';\n      pbVar11 = DAT_00175a40 + 1;\n      bVar1 = DAT_00175a40[1];\n      if (bVar1 == 0x5f) {\n        pbVar2 = DAT_00175a40 + 2;\n        do {\n          pbVar11 = pbVar2;\n          bVar1 = *pbVar11;\n          pbVar2 = pbVar11 + 1;\n        } while (bVar1 == 0x5f);\n      }\n      DAT_00175a40 = pbVar11;\n      if (_hex_value[bVar1] != 'c') {\n        cVar5 = _hex_value[bVar1] + cVar5;\n        DAT_00175a40 = pbVar11 + 1;\n      }\n      if (DAT_0016c4c8 == 0) {\n        *(char *)((long)param_2 + (long)(iVar3 - iVar12) + -1) = cVar5;\n      }\n      else {\n        *(char *)((long)param_2 + (long)iVar12) = cVar5;\n      }\n      iVar12 = iVar12 + 1;\n      bVar1 = *DAT_00175a40;\n      uVar7 = (ulong)bVar1;\n      cVar5 = _hex_value[uVar7];\n    }\n    if (bVar1 != 0x5f) {\n      if (iVar12 < iVar3) {\n        uVar6 = iVar3 - iVar12;\n        uVar7 = (ulong)(int)uVar6;\n        if (DAT_0016c4c8 == 0) {\n          if (7 < uVar7) {\n            uVar8 = 0;\n            do {\n              *(undefined8 *)((long)param_2 + uVar8) = 0;\n              uVar8 = uVar8 + 8;\n            } while (uVar8 < (uVar7 & 0xfffffffffffffff8));\n            param_2 = (undefined4 *)(uVar8 + (long)param_2);\n          }\n          if ((uVar7 & 4) != 0) {\n            *param_2 = 0;\n            param_2 = param_2 + 1;\n          }\n          puVar10 = param_2;\n          if ((uVar6 & 2) != 0) {\n            puVar10 = (undefined4 *)((long)param_2 + 2);\n            *(undefined2 *)param_2 = 0;\n          }\n          if ((uVar6 & 1) != 0) {\n            *(undefined1 *)puVar10 = 0;\n            return iVar3;\n          }\n        }\n        else {\n          puVar9 = (undefined8 *)((long)iVar12 + (long)param_2);\n          if (uVar7 < 8) {\n            if ((uVar7 & 4) != 0) {\n              *(undefined4 *)puVar9 = 0;\n              *(undefined4 *)((long)puVar9 + (uVar7 - 4)) = 0;\n              return iVar3;\n            }\n            if ((uVar7 != 0) && (*(undefined1 *)puVar9 = 0, (uVar6 & 2) != 0)) {\n              *(undefined2 *)((long)puVar9 + (uVar7 - 2)) = 0;\n              return iVar3;\n            }\n          }\n          else {\n            *puVar9 = 0;\n            *(undefined8 *)((long)puVar9 + (uVar7 - 8)) = 0;\n            uVar7 = (ulong)((long)puVar9 + (uVar7 - ((ulong)(puVar9 + 1) & 0xfffffffffffffff8))) &\n                    0xfffffffffffffff8;\n            if (7 < uVar7) {\n              uVar8 = 0;\n              do {\n                *(undefined8 *)(((ulong)(puVar9 + 1) & 0xfffffffffffffff8) + uVar8) = 0;\n                uVar8 = uVar8 + 8;\n              } while (uVar8 < uVar7);\n              return iVar3;\n            }\n          }\n        }\n      }\n      return iVar3;\n    }\nLAB_00126f8e:\n    DAT_00175a40 = DAT_00175a40 + 1;\n  } while( true );\n}" primitive_type (function_declarator "FUN_00126ea0(undefined4 param_1,undefined4 *param_2)" identifier (parameter_list "(undefined4 param_1,undefined4 *param_2)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "undefined4 *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) ))) (compound_statement "{\n  byte bVar1;\n  byte *pbVar2;\n  int iVar3;\n  undefined8 uVar4;\n  char cVar5;\n  uint uVar6;\n  ulong uVar7;\n  ulong uVar8;\n  undefined8 *puVar9;\n  undefined4 *puVar10;\n  byte *pbVar11;\n  int iVar12;\n  \n  switch(param_1) {\n  case 0x44:\n  case 0x52:\n  case 100:\n  case 0x72:\n    iVar3 = 8;\n    break;\n  default:\n    uVar4 = dcgettext(0,"unknown floating type type \'%c\'",5);\n    FUN_00126580(uVar4,param_1);\n    return -1;\n  case 0x46:\n  case 0x53:\n  case 0x66:\n  case 0x73:\n    iVar3 = 4;\n    break;\n  case 0x50:\n  case 0x58:\n  case 0x70:\n  case 0x78:\n    iVar3 = 0xc;\n  }\n  iVar12 = 0;\n  do {\n    bVar1 = *DAT_00175a40;\n    uVar7 = (ulong)bVar1;\n    cVar5 = _hex_value[uVar7];\n    while (cVar5 != 'c') {\n      if ((char)uVar7 == '_') goto LAB_00126f8e;\n      if (iVar3 <= iVar12) {\n        uVar4 = dcgettext(0,"floating point constant too large",5);\n        FUN_001263b0(uVar4);\n        return -1;\n      }\n      cVar5 = cVar5 * '\x10';\n      pbVar11 = DAT_00175a40 + 1;\n      bVar1 = DAT_00175a40[1];\n      if (bVar1 == 0x5f) {\n        pbVar2 = DAT_00175a40 + 2;\n        do {\n          pbVar11 = pbVar2;\n          bVar1 = *pbVar11;\n          pbVar2 = pbVar11 + 1;\n        } while (bVar1 == 0x5f);\n      }\n      DAT_00175a40 = pbVar11;\n      if (_hex_value[bVar1] != 'c') {\n        cVar5 = _hex_value[bVar1] + cVar5;\n        DAT_00175a40 = pbVar11 + 1;\n      }\n      if (DAT_0016c4c8 == 0) {\n        *(char *)((long)param_2 + (long)(iVar3 - iVar12) + -1) = cVar5;\n      }\n      else {\n        *(char *)((long)param_2 + (long)iVar12) = cVar5;\n      }\n      iVar12 = iVar12 + 1;\n      bVar1 = *DAT_00175a40;\n      uVar7 = (ulong)bVar1;\n      cVar5 = _hex_value[uVar7];\n    }\n    if (bVar1 != 0x5f) {\n      if (iVar12 < iVar3) {\n        uVar6 = iVar3 - iVar12;\n        uVar7 = (ulong)(int)uVar6;\n        if (DAT_0016c4c8 == 0) {\n          if (7 < uVar7) {\n            uVar8 = 0;\n            do {\n              *(undefined8 *)((long)param_2 + uVar8) = 0;\n              uVar8 = uVar8 + 8;\n            } while (uVar8 < (uVar7 & 0xfffffffffffffff8));\n            param_2 = (undefined4 *)(uVar8 + (long)param_2);\n          }\n          if ((uVar7 & 4) != 0) {\n            *param_2 = 0;\n            param_2 = param_2 + 1;\n          }\n          puVar10 = param_2;\n          if ((uVar6 & 2) != 0) {\n            puVar10 = (undefined4 *)((long)param_2 + 2);\n            *(undefined2 *)param_2 = 0;\n          }\n          if ((uVar6 & 1) != 0) {\n            *(undefined1 *)puVar10 = 0;\n            return iVar3;\n          }\n        }\n        else {\n          puVar9 = (undefined8 *)((long)iVar12 + (long)param_2);\n          if (uVar7 < 8) {\n            if ((uVar7 & 4) != 0) {\n              *(undefined4 *)puVar9 = 0;\n              *(undefined4 *)((long)puVar9 + (uVar7 - 4)) = 0;\n              return iVar3;\n            }\n            if ((uVar7 != 0) && (*(undefined1 *)puVar9 = 0, (uVar6 & 2) != 0)) {\n              *(undefined2 *)((long)puVar9 + (uVar7 - 2)) = 0;\n              return iVar3;\n            }\n          }\n          else {\n            *puVar9 = 0;\n            *(undefined8 *)((long)puVar9 + (uVar7 - 8)) = 0;\n            uVar7 = (ulong)((long)puVar9 + (uVar7 - ((ulong)(puVar9 + 1) & 0xfffffffffffffff8))) &\n                    0xfffffffffffffff8;\n            if (7 < uVar7) {\n              uVar8 = 0;\n              do {\n                *(undefined8 *)(((ulong)(puVar9 + 1) & 0xfffffffffffffff8) + uVar8) = 0;\n                uVar8 = uVar8 + 8;\n              } while (uVar8 < uVar7);\n              return iVar3;\n            }\n          }\n        }\n      }\n      return iVar3;\n    }\nLAB_00126f8e:\n    DAT_00175a40 = DAT_00175a40 + 1;\n  } while( true );\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "byte *pbVar2;" type_identifier (pointer_declarator "*pbVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "undefined8 uVar4;" type_identifier identifier ;) (declaration "char cVar5;" primitive_type identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "ulong uVar7;" type_identifier identifier ;) (declaration "ulong uVar8;" type_identifier identifier ;) (declaration "undefined8 *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "undefined4 *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "byte *pbVar11;" type_identifier (pointer_declarator "*pbVar11" * identifier) ;) (declaration "int iVar12;" primitive_type identifier ;) (switch_statement "switch(param_1) {\n  case 0x44:\n  case 0x52:\n  case 100:\n  case 0x72:\n    iVar3 = 8;\n    break;\n  default:\n    uVar4 = dcgettext(0,"unknown floating type type \'%c\'",5);\n    FUN_00126580(uVar4,param_1);\n    return -1;\n  case 0x46:\n  case 0x53:\n  case 0x66:\n  case 0x73:\n    iVar3 = 4;\n    break;\n  case 0x50:\n  case 0x58:\n  case 0x70:\n  case 0x78:\n    iVar3 = 0xc;\n  }" switch (parenthesized_expression "(param_1)" ( identifier )) (compound_statement "{\n  case 0x44:\n  case 0x52:\n  case 100:\n  case 0x72:\n    iVar3 = 8;\n    break;\n  default:\n    uVar4 = dcgettext(0,"unknown floating type type \'%c\'",5);\n    FUN_00126580(uVar4,param_1);\n    return -1;\n  case 0x46:\n  case 0x53:\n  case 0x66:\n  case 0x73:\n    iVar3 = 4;\n    break;\n  case 0x50:\n  case 0x58:\n  case 0x70:\n  case 0x78:\n    iVar3 = 0xc;\n  }" { (case_statement "case 0x44:" case number_literal :) (case_statement "case 0x52:" case number_literal :) (case_statement "case 100:" case number_literal :) (case_statement "case 0x72:\n    iVar3 = 8;\n    break;" case number_literal : (expression_statement "iVar3 = 8;" (assignment_expression "iVar3 = 8" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "default:\n    uVar4 = dcgettext(0,"unknown floating type type \'%c\'",5);\n    FUN_00126580(uVar4,param_1);\n    return -1;" default : (expression_statement "uVar4 = dcgettext(0,"unknown floating type type \'%c\'",5);" (assignment_expression "uVar4 = dcgettext(0,"unknown floating type type \'%c\'",5)" identifier = (call_expression "dcgettext(0,"unknown floating type type \'%c\'",5)" identifier (argument_list "(0,"unknown floating type type \'%c\'",5)" ( number_literal , (string_literal ""unknown floating type type \'%c\'"" " string_content escape_sequence string_content escape_sequence ") , number_literal )))) ;) (expression_statement "FUN_00126580(uVar4,param_1);" (call_expression "FUN_00126580(uVar4,param_1)" identifier (argument_list "(uVar4,param_1)" ( identifier , identifier ))) ;) (return_statement "return -1;" return number_literal ;)) (case_statement "case 0x46:" case number_literal :) (case_statement "case 0x53:" case number_literal :) (case_statement "case 0x66:" case number_literal :) (case_statement "case 0x73:\n    iVar3 = 4;\n    break;" case number_literal : (expression_statement "iVar3 = 4;" (assignment_expression "iVar3 = 4" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0x50:" case number_literal :) (case_statement "case 0x58:" case number_literal :) (case_statement "case 0x70:" case number_literal :) (case_statement "case 0x78:\n    iVar3 = 0xc;" case number_literal : (expression_statement "iVar3 = 0xc;" (assignment_expression "iVar3 = 0xc" identifier = number_literal) ;)) })) (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" identifier = number_literal) ;) (do_statement "do {\n    bVar1 = *DAT_00175a40;\n    uVar7 = (ulong)bVar1;\n    cVar5 = _hex_value[uVar7];\n    while (cVar5 != 'c') {\n      if ((char)uVar7 == '_') goto LAB_00126f8e;\n      if (iVar3 <= iVar12) {\n        uVar4 = dcgettext(0,"floating point constant too large",5);\n        FUN_001263b0(uVar4);\n        return -1;\n      }\n      cVar5 = cVar5 * '\x10';\n      pbVar11 = DAT_00175a40 + 1;\n      bVar1 = DAT_00175a40[1];\n      if (bVar1 == 0x5f) {\n        pbVar2 = DAT_00175a40 + 2;\n        do {\n          pbVar11 = pbVar2;\n          bVar1 = *pbVar11;\n          pbVar2 = pbVar11 + 1;\n        } while (bVar1 == 0x5f);\n      }\n      DAT_00175a40 = pbVar11;\n      if (_hex_value[bVar1] != 'c') {\n        cVar5 = _hex_value[bVar1] + cVar5;\n        DAT_00175a40 = pbVar11 + 1;\n      }\n      if (DAT_0016c4c8 == 0) {\n        *(char *)((long)param_2 + (long)(iVar3 - iVar12) + -1) = cVar5;\n      }\n      else {\n        *(char *)((long)param_2 + (long)iVar12) = cVar5;\n      }\n      iVar12 = iVar12 + 1;\n      bVar1 = *DAT_00175a40;\n      uVar7 = (ulong)bVar1;\n      cVar5 = _hex_value[uVar7];\n    }\n    if (bVar1 != 0x5f) {\n      if (iVar12 < iVar3) {\n        uVar6 = iVar3 - iVar12;\n        uVar7 = (ulong)(int)uVar6;\n        if (DAT_0016c4c8 == 0) {\n          if (7 < uVar7) {\n            uVar8 = 0;\n            do {\n              *(undefined8 *)((long)param_2 + uVar8) = 0;\n              uVar8 = uVar8 + 8;\n            } while (uVar8 < (uVar7 & 0xfffffffffffffff8));\n            param_2 = (undefined4 *)(uVar8 + (long)param_2);\n          }\n          if ((uVar7 & 4) != 0) {\n            *param_2 = 0;\n            param_2 = param_2 + 1;\n          }\n          puVar10 = param_2;\n          if ((uVar6 & 2) != 0) {\n            puVar10 = (undefined4 *)((long)param_2 + 2);\n            *(undefined2 *)param_2 = 0;\n          }\n          if ((uVar6 & 1) != 0) {\n            *(undefined1 *)puVar10 = 0;\n            return iVar3;\n          }\n        }\n        else {\n          puVar9 = (undefined8 *)((long)iVar12 + (long)param_2);\n          if (uVar7 < 8) {\n            if ((uVar7 & 4) != 0) {\n              *(undefined4 *)puVar9 = 0;\n              *(undefined4 *)((long)puVar9 + (uVar7 - 4)) = 0;\n              return iVar3;\n            }\n            if ((uVar7 != 0) && (*(undefined1 *)puVar9 = 0, (uVar6 & 2) != 0)) {\n              *(undefined2 *)((long)puVar9 + (uVar7 - 2)) = 0;\n              return iVar3;\n            }\n          }\n          else {\n            *puVar9 = 0;\n            *(undefined8 *)((long)puVar9 + (uVar7 - 8)) = 0;\n            uVar7 = (ulong)((long)puVar9 + (uVar7 - ((ulong)(puVar9 + 1) & 0xfffffffffffffff8))) &\n                    0xfffffffffffffff8;\n            if (7 < uVar7) {\n              uVar8 = 0;\n              do {\n                *(undefined8 *)(((ulong)(puVar9 + 1) & 0xfffffffffffffff8) + uVar8) = 0;\n                uVar8 = uVar8 + 8;\n              } while (uVar8 < uVar7);\n              return iVar3;\n            }\n          }\n        }\n      }\n      return iVar3;\n    }\nLAB_00126f8e:\n    DAT_00175a40 = DAT_00175a40 + 1;\n  } while( true );" do (compound_statement "{\n    bVar1 = *DAT_00175a40;\n    uVar7 = (ulong)bVar1;\n    cVar5 = _hex_value[uVar7];\n    while (cVar5 != 'c') {\n      if ((char)uVar7 == '_') goto LAB_00126f8e;\n      if (iVar3 <= iVar12) {\n        uVar4 = dcgettext(0,"floating point constant too large",5);\n        FUN_001263b0(uVar4);\n        return -1;\n      }\n      cVar5 = cVar5 * '\x10';\n      pbVar11 = DAT_00175a40 + 1;\n      bVar1 = DAT_00175a40[1];\n      if (bVar1 == 0x5f) {\n        pbVar2 = DAT_00175a40 + 2;\n        do {\n          pbVar11 = pbVar2;\n          bVar1 = *pbVar11;\n          pbVar2 = pbVar11 + 1;\n        } while (bVar1 == 0x5f);\n      }\n      DAT_00175a40 = pbVar11;\n      if (_hex_value[bVar1] != 'c') {\n        cVar5 = _hex_value[bVar1] + cVar5;\n        DAT_00175a40 = pbVar11 + 1;\n      }\n      if (DAT_0016c4c8 == 0) {\n        *(char *)((long)param_2 + (long)(iVar3 - iVar12) + -1) = cVar5;\n      }\n      else {\n        *(char *)((long)param_2 + (long)iVar12) = cVar5;\n      }\n      iVar12 = iVar12 + 1;\n      bVar1 = *DAT_00175a40;\n      uVar7 = (ulong)bVar1;\n      cVar5 = _hex_value[uVar7];\n    }\n    if (bVar1 != 0x5f) {\n      if (iVar12 < iVar3) {\n        uVar6 = iVar3 - iVar12;\n        uVar7 = (ulong)(int)uVar6;\n        if (DAT_0016c4c8 == 0) {\n          if (7 < uVar7) {\n            uVar8 = 0;\n            do {\n              *(undefined8 *)((long)param_2 + uVar8) = 0;\n              uVar8 = uVar8 + 8;\n            } while (uVar8 < (uVar7 & 0xfffffffffffffff8));\n            param_2 = (undefined4 *)(uVar8 + (long)param_2);\n          }\n          if ((uVar7 & 4) != 0) {\n            *param_2 = 0;\n            param_2 = param_2 + 1;\n          }\n          puVar10 = param_2;\n          if ((uVar6 & 2) != 0) {\n            puVar10 = (undefined4 *)((long)param_2 + 2);\n            *(undefined2 *)param_2 = 0;\n          }\n          if ((uVar6 & 1) != 0) {\n            *(undefined1 *)puVar10 = 0;\n            return iVar3;\n          }\n        }\n        else {\n          puVar9 = (undefined8 *)((long)iVar12 + (long)param_2);\n          if (uVar7 < 8) {\n            if ((uVar7 & 4) != 0) {\n              *(undefined4 *)puVar9 = 0;\n              *(undefined4 *)((long)puVar9 + (uVar7 - 4)) = 0;\n              return iVar3;\n            }\n            if ((uVar7 != 0) && (*(undefined1 *)puVar9 = 0, (uVar6 & 2) != 0)) {\n              *(undefined2 *)((long)puVar9 + (uVar7 - 2)) = 0;\n              return iVar3;\n            }\n          }\n          else {\n            *puVar9 = 0;\n            *(undefined8 *)((long)puVar9 + (uVar7 - 8)) = 0;\n            uVar7 = (ulong)((long)puVar9 + (uVar7 - ((ulong)(puVar9 + 1) & 0xfffffffffffffff8))) &\n                    0xfffffffffffffff8;\n            if (7 < uVar7) {\n              uVar8 = 0;\n              do {\n                *(undefined8 *)(((ulong)(puVar9 + 1) & 0xfffffffffffffff8) + uVar8) = 0;\n                uVar8 = uVar8 + 8;\n              } while (uVar8 < uVar7);\n              return iVar3;\n            }\n          }\n        }\n      }\n      return iVar3;\n    }\nLAB_00126f8e:\n    DAT_00175a40 = DAT_00175a40 + 1;\n  }" { (expression_statement "bVar1 = *DAT_00175a40;" (assignment_expression "bVar1 = *DAT_00175a40" identifier = (pointer_expression "*DAT_00175a40" * identifier)) ;) (expression_statement "uVar7 = (ulong)bVar1;" (assignment_expression "uVar7 = (ulong)bVar1" identifier = (cast_expression "(ulong)bVar1" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (expression_statement "cVar5 = _hex_value[uVar7];" (assignment_expression "cVar5 = _hex_value[uVar7]" identifier = (subscript_expression "_hex_value[uVar7]" identifier [ identifier ])) ;) (while_statement "while (cVar5 != 'c') {\n      if ((char)uVar7 == '_') goto LAB_00126f8e;\n      if (iVar3 <= iVar12) {\n        uVar4 = dcgettext(0,"floating point constant too large",5);\n        FUN_001263b0(uVar4);\n        return -1;\n      }\n      cVar5 = cVar5 * '\x10';\n      pbVar11 = DAT_00175a40 + 1;\n      bVar1 = DAT_00175a40[1];\n      if (bVar1 == 0x5f) {\n        pbVar2 = DAT_00175a40 + 2;\n        do {\n          pbVar11 = pbVar2;\n          bVar1 = *pbVar11;\n          pbVar2 = pbVar11 + 1;\n        } while (bVar1 == 0x5f);\n      }\n      DAT_00175a40 = pbVar11;\n      if (_hex_value[bVar1] != 'c') {\n        cVar5 = _hex_value[bVar1] + cVar5;\n        DAT_00175a40 = pbVar11 + 1;\n      }\n      if (DAT_0016c4c8 == 0) {\n        *(char *)((long)param_2 + (long)(iVar3 - iVar12) + -1) = cVar5;\n      }\n      else {\n        *(char *)((long)param_2 + (long)iVar12) = cVar5;\n      }\n      iVar12 = iVar12 + 1;\n      bVar1 = *DAT_00175a40;\n      uVar7 = (ulong)bVar1;\n      cVar5 = _hex_value[uVar7];\n    }" while (parenthesized_expression "(cVar5 != 'c')" ( (binary_expression "cVar5 != 'c'" identifier != (char_literal "'c'" ' character ')) )) (compound_statement "{\n      if ((char)uVar7 == '_') goto LAB_00126f8e;\n      if (iVar3 <= iVar12) {\n        uVar4 = dcgettext(0,"floating point constant too large",5);\n        FUN_001263b0(uVar4);\n        return -1;\n      }\n      cVar5 = cVar5 * '\x10';\n      pbVar11 = DAT_00175a40 + 1;\n      bVar1 = DAT_00175a40[1];\n      if (bVar1 == 0x5f) {\n        pbVar2 = DAT_00175a40 + 2;\n        do {\n          pbVar11 = pbVar2;\n          bVar1 = *pbVar11;\n          pbVar2 = pbVar11 + 1;\n        } while (bVar1 == 0x5f);\n      }\n      DAT_00175a40 = pbVar11;\n      if (_hex_value[bVar1] != 'c') {\n        cVar5 = _hex_value[bVar1] + cVar5;\n        DAT_00175a40 = pbVar11 + 1;\n      }\n      if (DAT_0016c4c8 == 0) {\n        *(char *)((long)param_2 + (long)(iVar3 - iVar12) + -1) = cVar5;\n      }\n      else {\n        *(char *)((long)param_2 + (long)iVar12) = cVar5;\n      }\n      iVar12 = iVar12 + 1;\n      bVar1 = *DAT_00175a40;\n      uVar7 = (ulong)bVar1;\n      cVar5 = _hex_value[uVar7];\n    }" { (if_statement "if ((char)uVar7 == '_') goto LAB_00126f8e;" if (parenthesized_expression "((char)uVar7 == '_')" ( (binary_expression "(char)uVar7 == '_'" (cast_expression "(char)uVar7" ( (type_descriptor "char" primitive_type) ) identifier) == (char_literal "'_'" ' character ')) )) (goto_statement "goto LAB_00126f8e;" goto statement_identifier ;)) (if_statement "if (iVar3 <= iVar12) {\n        uVar4 = dcgettext(0,"floating point constant too large",5);\n        FUN_001263b0(uVar4);\n        return -1;\n      }" if (parenthesized_expression "(iVar3 <= iVar12)" ( (binary_expression "iVar3 <= iVar12" identifier <= identifier) )) (compound_statement "{\n        uVar4 = dcgettext(0,"floating point constant too large",5);\n        FUN_001263b0(uVar4);\n        return -1;\n      }" { (expression_statement "uVar4 = dcgettext(0,"floating point constant too large",5);" (assignment_expression "uVar4 = dcgettext(0,"floating point constant too large",5)" identifier = (call_expression "dcgettext(0,"floating point constant too large",5)" identifier (argument_list "(0,"floating point constant too large",5)" ( number_literal , (string_literal ""floating point constant too large"" " string_content ") , number_literal )))) ;) (expression_statement "FUN_001263b0(uVar4);" (call_expression "FUN_001263b0(uVar4)" identifier (argument_list "(uVar4)" ( identifier ))) ;) (return_statement "return -1;" return number_literal ;) })) (expression_statement "cVar5 = cVar5 * '\x10';" (assignment_expression "cVar5 = cVar5 * '\x10'" identifier = (binary_expression "cVar5 * '\x10'" identifier * (char_literal "'\x10'" ' escape_sequence '))) ;) (expression_statement "pbVar11 = DAT_00175a40 + 1;" (assignment_expression "pbVar11 = DAT_00175a40 + 1" identifier = (binary_expression "DAT_00175a40 + 1" identifier + number_literal)) ;) (expression_statement "bVar1 = DAT_00175a40[1];" (assignment_expression "bVar1 = DAT_00175a40[1]" identifier = (subscript_expression "DAT_00175a40[1]" identifier [ number_literal ])) ;) (if_statement "if (bVar1 == 0x5f) {\n        pbVar2 = DAT_00175a40 + 2;\n        do {\n          pbVar11 = pbVar2;\n          bVar1 = *pbVar11;\n          pbVar2 = pbVar11 + 1;\n        } while (bVar1 == 0x5f);\n      }" if (parenthesized_expression "(bVar1 == 0x5f)" ( (binary_expression "bVar1 == 0x5f" identifier == number_literal) )) (compound_statement "{\n        pbVar2 = DAT_00175a40 + 2;\n        do {\n          pbVar11 = pbVar2;\n          bVar1 = *pbVar11;\n          pbVar2 = pbVar11 + 1;\n        } while (bVar1 == 0x5f);\n      }" { (expression_statement "pbVar2 = DAT_00175a40 + 2;" (assignment_expression "pbVar2 = DAT_00175a40 + 2" identifier = (binary_expression "DAT_00175a40 + 2" identifier + number_literal)) ;) (do_statement "do {\n          pbVar11 = pbVar2;\n          bVar1 = *pbVar11;\n          pbVar2 = pbVar11 + 1;\n        } while (bVar1 == 0x5f);" do (compound_statement "{\n          pbVar11 = pbVar2;\n          bVar1 = *pbVar11;\n          pbVar2 = pbVar11 + 1;\n        }" { (expression_statement "pbVar11 = pbVar2;" (assignment_expression "pbVar11 = pbVar2" identifier = identifier) ;) (expression_statement "bVar1 = *pbVar11;" (assignment_expression "bVar1 = *pbVar11" identifier = (pointer_expression "*pbVar11" * identifier)) ;) (expression_statement "pbVar2 = pbVar11 + 1;" (assignment_expression "pbVar2 = pbVar11 + 1" identifier = (binary_expression "pbVar11 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(bVar1 == 0x5f)" ( (binary_expression "bVar1 == 0x5f" identifier == number_literal) )) ;) })) (expression_statement "DAT_00175a40 = pbVar11;" (assignment_expression "DAT_00175a40 = pbVar11" identifier = identifier) ;) (if_statement "if (_hex_value[bVar1] != 'c') {\n        cVar5 = _hex_value[bVar1] + cVar5;\n        DAT_00175a40 = pbVar11 + 1;\n      }" if (parenthesized_expression "(_hex_value[bVar1] != 'c')" ( (binary_expression "_hex_value[bVar1] != 'c'" (subscript_expression "_hex_value[bVar1]" identifier [ identifier ]) != (char_literal "'c'" ' character ')) )) (compound_statement "{\n        cVar5 = _hex_value[bVar1] + cVar5;\n        DAT_00175a40 = pbVar11 + 1;\n      }" { (expression_statement "cVar5 = _hex_value[bVar1] + cVar5;" (assignment_expression "cVar5 = _hex_value[bVar1] + cVar5" identifier = (binary_expression "_hex_value[bVar1] + cVar5" (subscript_expression "_hex_value[bVar1]" identifier [ identifier ]) + identifier)) ;) (expression_statement "DAT_00175a40 = pbVar11 + 1;" (assignment_expression "DAT_00175a40 = pbVar11 + 1" identifier = (binary_expression "pbVar11 + 1" identifier + number_literal)) ;) })) (if_statement "if (DAT_0016c4c8 == 0) {\n        *(char *)((long)param_2 + (long)(iVar3 - iVar12) + -1) = cVar5;\n      }\n      else {\n        *(char *)((long)param_2 + (long)iVar12) = cVar5;\n      }" if (parenthesized_expression "(DAT_0016c4c8 == 0)" ( (binary_expression "DAT_0016c4c8 == 0" identifier == number_literal) )) (compound_statement "{\n        *(char *)((long)param_2 + (long)(iVar3 - iVar12) + -1) = cVar5;\n      }" { (expression_statement "*(char *)((long)param_2 + (long)(iVar3 - iVar12) + -1) = cVar5;" (assignment_expression "*(char *)((long)param_2 + (long)(iVar3 - iVar12) + -1) = cVar5" (pointer_expression "*(char *)((long)param_2 + (long)(iVar3 - iVar12) + -1)" * (cast_expression "(char *)((long)param_2 + (long)(iVar3 - iVar12) + -1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_2 + (long)(iVar3 - iVar12) + -1)" ( (binary_expression "(long)param_2 + (long)(iVar3 - iVar12) + -1" (binary_expression "(long)param_2 + (long)(iVar3 - iVar12)" (cast_expression "(long)param_2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (cast_expression "(long)(iVar3 - iVar12)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(iVar3 - iVar12)" ( (binary_expression "iVar3 - iVar12" identifier - identifier) )))) + number_literal) )))) = identifier) ;) }) (else_clause "else {\n        *(char *)((long)param_2 + (long)iVar12) = cVar5;\n      }" else (compound_statement "{\n        *(char *)((long)param_2 + (long)iVar12) = cVar5;\n      }" { (expression_statement "*(char *)((long)param_2 + (long)iVar12) = cVar5;" (assignment_expression "*(char *)((long)param_2 + (long)iVar12) = cVar5" (pointer_expression "*(char *)((long)param_2 + (long)iVar12)" * (cast_expression "(char *)((long)param_2 + (long)iVar12)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_2 + (long)iVar12)" ( (binary_expression "(long)param_2 + (long)iVar12" (cast_expression "(long)param_2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (cast_expression "(long)iVar12" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )))) = identifier) ;) }))) (expression_statement "iVar12 = iVar12 + 1;" (assignment_expression "iVar12 = iVar12 + 1" identifier = (binary_expression "iVar12 + 1" identifier + number_literal)) ;) (expression_statement "bVar1 = *DAT_00175a40;" (assignment_expression "bVar1 = *DAT_00175a40" identifier = (pointer_expression "*DAT_00175a40" * identifier)) ;) (expression_statement "uVar7 = (ulong)bVar1;" (assignment_expression "uVar7 = (ulong)bVar1" identifier = (cast_expression "(ulong)bVar1" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (expression_statement "cVar5 = _hex_value[uVar7];" (assignment_expression "cVar5 = _hex_value[uVar7]" identifier = (subscript_expression "_hex_value[uVar7]" identifier [ identifier ])) ;) })) (if_statement "if (bVar1 != 0x5f) {\n      if (iVar12 < iVar3) {\n        uVar6 = iVar3 - iVar12;\n        uVar7 = (ulong)(int)uVar6;\n        if (DAT_0016c4c8 == 0) {\n          if (7 < uVar7) {\n            uVar8 = 0;\n            do {\n              *(undefined8 *)((long)param_2 + uVar8) = 0;\n              uVar8 = uVar8 + 8;\n            } while (uVar8 < (uVar7 & 0xfffffffffffffff8));\n            param_2 = (undefined4 *)(uVar8 + (long)param_2);\n          }\n          if ((uVar7 & 4) != 0) {\n            *param_2 = 0;\n            param_2 = param_2 + 1;\n          }\n          puVar10 = param_2;\n          if ((uVar6 & 2) != 0) {\n            puVar10 = (undefined4 *)((long)param_2 + 2);\n            *(undefined2 *)param_2 = 0;\n          }\n          if ((uVar6 & 1) != 0) {\n            *(undefined1 *)puVar10 = 0;\n            return iVar3;\n          }\n        }\n        else {\n          puVar9 = (undefined8 *)((long)iVar12 + (long)param_2);\n          if (uVar7 < 8) {\n            if ((uVar7 & 4) != 0) {\n              *(undefined4 *)puVar9 = 0;\n              *(undefined4 *)((long)puVar9 + (uVar7 - 4)) = 0;\n              return iVar3;\n            }\n            if ((uVar7 != 0) && (*(undefined1 *)puVar9 = 0, (uVar6 & 2) != 0)) {\n              *(undefined2 *)((long)puVar9 + (uVar7 - 2)) = 0;\n              return iVar3;\n            }\n          }\n          else {\n            *puVar9 = 0;\n            *(undefined8 *)((long)puVar9 + (uVar7 - 8)) = 0;\n            uVar7 = (ulong)((long)puVar9 + (uVar7 - ((ulong)(puVar9 + 1) & 0xfffffffffffffff8))) &\n                    0xfffffffffffffff8;\n            if (7 < uVar7) {\n              uVar8 = 0;\n              do {\n                *(undefined8 *)(((ulong)(puVar9 + 1) & 0xfffffffffffffff8) + uVar8) = 0;\n                uVar8 = uVar8 + 8;\n              } while (uVar8 < uVar7);\n              return iVar3;\n            }\n          }\n        }\n      }\n      return iVar3;\n    }" if (parenthesized_expression "(bVar1 != 0x5f)" ( (binary_expression "bVar1 != 0x5f" identifier != number_literal) )) (compound_statement "{\n      if (iVar12 < iVar3) {\n        uVar6 = iVar3 - iVar12;\n        uVar7 = (ulong)(int)uVar6;\n        if (DAT_0016c4c8 == 0) {\n          if (7 < uVar7) {\n            uVar8 = 0;\n            do {\n              *(undefined8 *)((long)param_2 + uVar8) = 0;\n              uVar8 = uVar8 + 8;\n            } while (uVar8 < (uVar7 & 0xfffffffffffffff8));\n            param_2 = (undefined4 *)(uVar8 + (long)param_2);\n          }\n          if ((uVar7 & 4) != 0) {\n            *param_2 = 0;\n            param_2 = param_2 + 1;\n          }\n          puVar10 = param_2;\n          if ((uVar6 & 2) != 0) {\n            puVar10 = (undefined4 *)((long)param_2 + 2);\n            *(undefined2 *)param_2 = 0;\n          }\n          if ((uVar6 & 1) != 0) {\n            *(undefined1 *)puVar10 = 0;\n            return iVar3;\n          }\n        }\n        else {\n          puVar9 = (undefined8 *)((long)iVar12 + (long)param_2);\n          if (uVar7 < 8) {\n            if ((uVar7 & 4) != 0) {\n              *(undefined4 *)puVar9 = 0;\n              *(undefined4 *)((long)puVar9 + (uVar7 - 4)) = 0;\n              return iVar3;\n            }\n            if ((uVar7 != 0) && (*(undefined1 *)puVar9 = 0, (uVar6 & 2) != 0)) {\n              *(undefined2 *)((long)puVar9 + (uVar7 - 2)) = 0;\n              return iVar3;\n            }\n          }\n          else {\n            *puVar9 = 0;\n            *(undefined8 *)((long)puVar9 + (uVar7 - 8)) = 0;\n            uVar7 = (ulong)((long)puVar9 + (uVar7 - ((ulong)(puVar9 + 1) & 0xfffffffffffffff8))) &\n                    0xfffffffffffffff8;\n            if (7 < uVar7) {\n              uVar8 = 0;\n              do {\n                *(undefined8 *)(((ulong)(puVar9 + 1) & 0xfffffffffffffff8) + uVar8) = 0;\n                uVar8 = uVar8 + 8;\n              } while (uVar8 < uVar7);\n              return iVar3;\n            }\n          }\n        }\n      }\n      return iVar3;\n    }" { (if_statement "if (iVar12 < iVar3) {\n        uVar6 = iVar3 - iVar12;\n        uVar7 = (ulong)(int)uVar6;\n        if (DAT_0016c4c8 == 0) {\n          if (7 < uVar7) {\n            uVar8 = 0;\n            do {\n              *(undefined8 *)((long)param_2 + uVar8) = 0;\n              uVar8 = uVar8 + 8;\n            } while (uVar8 < (uVar7 & 0xfffffffffffffff8));\n            param_2 = (undefined4 *)(uVar8 + (long)param_2);\n          }\n          if ((uVar7 & 4) != 0) {\n            *param_2 = 0;\n            param_2 = param_2 + 1;\n          }\n          puVar10 = param_2;\n          if ((uVar6 & 2) != 0) {\n            puVar10 = (undefined4 *)((long)param_2 + 2);\n            *(undefined2 *)param_2 = 0;\n          }\n          if ((uVar6 & 1) != 0) {\n            *(undefined1 *)puVar10 = 0;\n            return iVar3;\n          }\n        }\n        else {\n          puVar9 = (undefined8 *)((long)iVar12 + (long)param_2);\n          if (uVar7 < 8) {\n            if ((uVar7 & 4) != 0) {\n              *(undefined4 *)puVar9 = 0;\n              *(undefined4 *)((long)puVar9 + (uVar7 - 4)) = 0;\n              return iVar3;\n            }\n            if ((uVar7 != 0) && (*(undefined1 *)puVar9 = 0, (uVar6 & 2) != 0)) {\n              *(undefined2 *)((long)puVar9 + (uVar7 - 2)) = 0;\n              return iVar3;\n            }\n          }\n          else {\n            *puVar9 = 0;\n            *(undefined8 *)((long)puVar9 + (uVar7 - 8)) = 0;\n            uVar7 = (ulong)((long)puVar9 + (uVar7 - ((ulong)(puVar9 + 1) & 0xfffffffffffffff8))) &\n                    0xfffffffffffffff8;\n            if (7 < uVar7) {\n              uVar8 = 0;\n              do {\n                *(undefined8 *)(((ulong)(puVar9 + 1) & 0xfffffffffffffff8) + uVar8) = 0;\n                uVar8 = uVar8 + 8;\n              } while (uVar8 < uVar7);\n              return iVar3;\n            }\n          }\n        }\n      }" if (parenthesized_expression "(iVar12 < iVar3)" ( (binary_expression "iVar12 < iVar3" identifier < identifier) )) (compound_statement "{\n        uVar6 = iVar3 - iVar12;\n        uVar7 = (ulong)(int)uVar6;\n        if (DAT_0016c4c8 == 0) {\n          if (7 < uVar7) {\n            uVar8 = 0;\n            do {\n              *(undefined8 *)((long)param_2 + uVar8) = 0;\n              uVar8 = uVar8 + 8;\n            } while (uVar8 < (uVar7 & 0xfffffffffffffff8));\n            param_2 = (undefined4 *)(uVar8 + (long)param_2);\n          }\n          if ((uVar7 & 4) != 0) {\n            *param_2 = 0;\n            param_2 = param_2 + 1;\n          }\n          puVar10 = param_2;\n          if ((uVar6 & 2) != 0) {\n            puVar10 = (undefined4 *)((long)param_2 + 2);\n            *(undefined2 *)param_2 = 0;\n          }\n          if ((uVar6 & 1) != 0) {\n            *(undefined1 *)puVar10 = 0;\n            return iVar3;\n          }\n        }\n        else {\n          puVar9 = (undefined8 *)((long)iVar12 + (long)param_2);\n          if (uVar7 < 8) {\n            if ((uVar7 & 4) != 0) {\n              *(undefined4 *)puVar9 = 0;\n              *(undefined4 *)((long)puVar9 + (uVar7 - 4)) = 0;\n              return iVar3;\n            }\n            if ((uVar7 != 0) && (*(undefined1 *)puVar9 = 0, (uVar6 & 2) != 0)) {\n              *(undefined2 *)((long)puVar9 + (uVar7 - 2)) = 0;\n              return iVar3;\n            }\n          }\n          else {\n            *puVar9 = 0;\n            *(undefined8 *)((long)puVar9 + (uVar7 - 8)) = 0;\n            uVar7 = (ulong)((long)puVar9 + (uVar7 - ((ulong)(puVar9 + 1) & 0xfffffffffffffff8))) &\n                    0xfffffffffffffff8;\n            if (7 < uVar7) {\n              uVar8 = 0;\n              do {\n                *(undefined8 *)(((ulong)(puVar9 + 1) & 0xfffffffffffffff8) + uVar8) = 0;\n                uVar8 = uVar8 + 8;\n              } while (uVar8 < uVar7);\n              return iVar3;\n            }\n          }\n        }\n      }" { (expression_statement "uVar6 = iVar3 - iVar12;" (assignment_expression "uVar6 = iVar3 - iVar12" identifier = (binary_expression "iVar3 - iVar12" identifier - identifier)) ;) (expression_statement "uVar7 = (ulong)(int)uVar6;" (assignment_expression "uVar7 = (ulong)(int)uVar6" identifier = (cast_expression "(ulong)(int)uVar6" ( (type_descriptor "ulong" type_identifier) ) (cast_expression "(int)uVar6" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if (DAT_0016c4c8 == 0) {\n          if (7 < uVar7) {\n            uVar8 = 0;\n            do {\n              *(undefined8 *)((long)param_2 + uVar8) = 0;\n              uVar8 = uVar8 + 8;\n            } while (uVar8 < (uVar7 & 0xfffffffffffffff8));\n            param_2 = (undefined4 *)(uVar8 + (long)param_2);\n          }\n          if ((uVar7 & 4) != 0) {\n            *param_2 = 0;\n            param_2 = param_2 + 1;\n          }\n          puVar10 = param_2;\n          if ((uVar6 & 2) != 0) {\n            puVar10 = (undefined4 *)((long)param_2 + 2);\n            *(undefined2 *)param_2 = 0;\n          }\n          if ((uVar6 & 1) != 0) {\n            *(undefined1 *)puVar10 = 0;\n            return iVar3;\n          }\n        }\n        else {\n          puVar9 = (undefined8 *)((long)iVar12 + (long)param_2);\n          if (uVar7 < 8) {\n            if ((uVar7 & 4) != 0) {\n              *(undefined4 *)puVar9 = 0;\n              *(undefined4 *)((long)puVar9 + (uVar7 - 4)) = 0;\n              return iVar3;\n            }\n            if ((uVar7 != 0) && (*(undefined1 *)puVar9 = 0, (uVar6 & 2) != 0)) {\n              *(undefined2 *)((long)puVar9 + (uVar7 - 2)) = 0;\n              return iVar3;\n            }\n          }\n          else {\n            *puVar9 = 0;\n            *(undefined8 *)((long)puVar9 + (uVar7 - 8)) = 0;\n            uVar7 = (ulong)((long)puVar9 + (uVar7 - ((ulong)(puVar9 + 1) & 0xfffffffffffffff8))) &\n                    0xfffffffffffffff8;\n            if (7 < uVar7) {\n              uVar8 = 0;\n              do {\n                *(undefined8 *)(((ulong)(puVar9 + 1) & 0xfffffffffffffff8) + uVar8) = 0;\n                uVar8 = uVar8 + 8;\n              } while (uVar8 < uVar7);\n              return iVar3;\n            }\n          }\n        }" if (parenthesized_expression "(DAT_0016c4c8 == 0)" ( (binary_expression "DAT_0016c4c8 == 0" identifier == number_literal) )) (compound_statement "{\n          if (7 < uVar7) {\n            uVar8 = 0;\n            do {\n              *(undefined8 *)((long)param_2 + uVar8) = 0;\n              uVar8 = uVar8 + 8;\n            } while (uVar8 < (uVar7 & 0xfffffffffffffff8));\n            param_2 = (undefined4 *)(uVar8 + (long)param_2);\n          }\n          if ((uVar7 & 4) != 0) {\n            *param_2 = 0;\n            param_2 = param_2 + 1;\n          }\n          puVar10 = param_2;\n          if ((uVar6 & 2) != 0) {\n            puVar10 = (undefined4 *)((long)param_2 + 2);\n            *(undefined2 *)param_2 = 0;\n          }\n          if ((uVar6 & 1) != 0) {\n            *(undefined1 *)puVar10 = 0;\n            return iVar3;\n          }\n        }" { (if_statement "if (7 < uVar7) {\n            uVar8 = 0;\n            do {\n              *(undefined8 *)((long)param_2 + uVar8) = 0;\n              uVar8 = uVar8 + 8;\n            } while (uVar8 < (uVar7 & 0xfffffffffffffff8));\n            param_2 = (undefined4 *)(uVar8 + (long)param_2);\n          }" if (parenthesized_expression "(7 < uVar7)" ( (binary_expression "7 < uVar7" number_literal < identifier) )) (compound_statement "{\n            uVar8 = 0;\n            do {\n              *(undefined8 *)((long)param_2 + uVar8) = 0;\n              uVar8 = uVar8 + 8;\n            } while (uVar8 < (uVar7 & 0xfffffffffffffff8));\n            param_2 = (undefined4 *)(uVar8 + (long)param_2);\n          }" { (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;) (do_statement "do {\n              *(undefined8 *)((long)param_2 + uVar8) = 0;\n              uVar8 = uVar8 + 8;\n            } while (uVar8 < (uVar7 & 0xfffffffffffffff8));" do (compound_statement "{\n              *(undefined8 *)((long)param_2 + uVar8) = 0;\n              uVar8 = uVar8 + 8;\n            }" { (expression_statement "*(undefined8 *)((long)param_2 + uVar8) = 0;" (assignment_expression "*(undefined8 *)((long)param_2 + uVar8) = 0" (pointer_expression "*(undefined8 *)((long)param_2 + uVar8)" * (cast_expression "(undefined8 *)((long)param_2 + uVar8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_2 + uVar8)" ( (binary_expression "(long)param_2 + uVar8" (cast_expression "(long)param_2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) )))) = number_literal) ;) (expression_statement "uVar8 = uVar8 + 8;" (assignment_expression "uVar8 = uVar8 + 8" identifier = (binary_expression "uVar8 + 8" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar8 < (uVar7 & 0xfffffffffffffff8))" ( (binary_expression "uVar8 < (uVar7 & 0xfffffffffffffff8)" identifier < (parenthesized_expression "(uVar7 & 0xfffffffffffffff8)" ( (binary_expression "uVar7 & 0xfffffffffffffff8" identifier & number_literal) ))) )) ;) (expression_statement "param_2 = (undefined4 *)(uVar8 + (long)param_2);" (assignment_expression "param_2 = (undefined4 *)(uVar8 + (long)param_2)" identifier = (cast_expression "(undefined4 *)(uVar8 + (long)param_2)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar8 + (long)param_2)" ( (binary_expression "uVar8 + (long)param_2" identifier + (cast_expression "(long)param_2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )))) ;) })) (if_statement "if ((uVar7 & 4) != 0) {\n            *param_2 = 0;\n            param_2 = param_2 + 1;\n          }" if (parenthesized_expression "((uVar7 & 4) != 0)" ( (binary_expression "(uVar7 & 4) != 0" (parenthesized_expression "(uVar7 & 4)" ( (binary_expression "uVar7 & 4" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n            *param_2 = 0;\n            param_2 = param_2 + 1;\n          }" { (expression_statement "*param_2 = 0;" (assignment_expression "*param_2 = 0" (pointer_expression "*param_2" * identifier) = number_literal) ;) (expression_statement "param_2 = param_2 + 1;" (assignment_expression "param_2 = param_2 + 1" identifier = (binary_expression "param_2 + 1" identifier + number_literal)) ;) })) (expression_statement "puVar10 = param_2;" (assignment_expression "puVar10 = param_2" identifier = identifier) ;) (if_statement "if ((uVar6 & 2) != 0) {\n            puVar10 = (undefined4 *)((long)param_2 + 2);\n            *(undefined2 *)param_2 = 0;\n          }" if (parenthesized_expression "((uVar6 & 2) != 0)" ( (binary_expression "(uVar6 & 2) != 0" (parenthesized_expression "(uVar6 & 2)" ( (binary_expression "uVar6 & 2" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n            puVar10 = (undefined4 *)((long)param_2 + 2);\n            *(undefined2 *)param_2 = 0;\n          }" { (expression_statement "puVar10 = (undefined4 *)((long)param_2 + 2);" (assignment_expression "puVar10 = (undefined4 *)((long)param_2 + 2)" identifier = (cast_expression "(undefined4 *)((long)param_2 + 2)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_2 + 2)" ( (binary_expression "(long)param_2 + 2" (cast_expression "(long)param_2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) ;) (expression_statement "*(undefined2 *)param_2 = 0;" (assignment_expression "*(undefined2 *)param_2 = 0" (pointer_expression "*(undefined2 *)param_2" * (cast_expression "(undefined2 *)param_2" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) })) (if_statement "if ((uVar6 & 1) != 0) {\n            *(undefined1 *)puVar10 = 0;\n            return iVar3;\n          }" if (parenthesized_expression "((uVar6 & 1) != 0)" ( (binary_expression "(uVar6 & 1) != 0" (parenthesized_expression "(uVar6 & 1)" ( (binary_expression "uVar6 & 1" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n            *(undefined1 *)puVar10 = 0;\n            return iVar3;\n          }" { (expression_statement "*(undefined1 *)puVar10 = 0;" (assignment_expression "*(undefined1 *)puVar10 = 0" (pointer_expression "*(undefined1 *)puVar10" * (cast_expression "(undefined1 *)puVar10" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (return_statement "return iVar3;" return identifier ;) })) }) (else_clause "else {\n          puVar9 = (undefined8 *)((long)iVar12 + (long)param_2);\n          if (uVar7 < 8) {\n            if ((uVar7 & 4) != 0) {\n              *(undefined4 *)puVar9 = 0;\n              *(undefined4 *)((long)puVar9 + (uVar7 - 4)) = 0;\n              return iVar3;\n            }\n            if ((uVar7 != 0) && (*(undefined1 *)puVar9 = 0, (uVar6 & 2) != 0)) {\n              *(undefined2 *)((long)puVar9 + (uVar7 - 2)) = 0;\n              return iVar3;\n            }\n          }\n          else {\n            *puVar9 = 0;\n            *(undefined8 *)((long)puVar9 + (uVar7 - 8)) = 0;\n            uVar7 = (ulong)((long)puVar9 + (uVar7 - ((ulong)(puVar9 + 1) & 0xfffffffffffffff8))) &\n                    0xfffffffffffffff8;\n            if (7 < uVar7) {\n              uVar8 = 0;\n              do {\n                *(undefined8 *)(((ulong)(puVar9 + 1) & 0xfffffffffffffff8) + uVar8) = 0;\n                uVar8 = uVar8 + 8;\n              } while (uVar8 < uVar7);\n              return iVar3;\n            }\n          }\n        }" else (compound_statement "{\n          puVar9 = (undefined8 *)((long)iVar12 + (long)param_2);\n          if (uVar7 < 8) {\n            if ((uVar7 & 4) != 0) {\n              *(undefined4 *)puVar9 = 0;\n              *(undefined4 *)((long)puVar9 + (uVar7 - 4)) = 0;\n              return iVar3;\n            }\n            if ((uVar7 != 0) && (*(undefined1 *)puVar9 = 0, (uVar6 & 2) != 0)) {\n              *(undefined2 *)((long)puVar9 + (uVar7 - 2)) = 0;\n              return iVar3;\n            }\n          }\n          else {\n            *puVar9 = 0;\n            *(undefined8 *)((long)puVar9 + (uVar7 - 8)) = 0;\n            uVar7 = (ulong)((long)puVar9 + (uVar7 - ((ulong)(puVar9 + 1) & 0xfffffffffffffff8))) &\n                    0xfffffffffffffff8;\n            if (7 < uVar7) {\n              uVar8 = 0;\n              do {\n                *(undefined8 *)(((ulong)(puVar9 + 1) & 0xfffffffffffffff8) + uVar8) = 0;\n                uVar8 = uVar8 + 8;\n              } while (uVar8 < uVar7);\n              return iVar3;\n            }\n          }\n        }" { (expression_statement "puVar9 = (undefined8 *)((long)iVar12 + (long)param_2);" (assignment_expression "puVar9 = (undefined8 *)((long)iVar12 + (long)param_2)" identifier = (cast_expression "(undefined8 *)((long)iVar12 + (long)param_2)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)iVar12 + (long)param_2)" ( (binary_expression "(long)iVar12 + (long)param_2" (cast_expression "(long)iVar12" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (cast_expression "(long)param_2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )))) ;) (if_statement "if (uVar7 < 8) {\n            if ((uVar7 & 4) != 0) {\n              *(undefined4 *)puVar9 = 0;\n              *(undefined4 *)((long)puVar9 + (uVar7 - 4)) = 0;\n              return iVar3;\n            }\n            if ((uVar7 != 0) && (*(undefined1 *)puVar9 = 0, (uVar6 & 2) != 0)) {\n              *(undefined2 *)((long)puVar9 + (uVar7 - 2)) = 0;\n              return iVar3;\n            }\n          }\n          else {\n            *puVar9 = 0;\n            *(undefined8 *)((long)puVar9 + (uVar7 - 8)) = 0;\n            uVar7 = (ulong)((long)puVar9 + (uVar7 - ((ulong)(puVar9 + 1) & 0xfffffffffffffff8))) &\n                    0xfffffffffffffff8;\n            if (7 < uVar7) {\n              uVar8 = 0;\n              do {\n                *(undefined8 *)(((ulong)(puVar9 + 1) & 0xfffffffffffffff8) + uVar8) = 0;\n                uVar8 = uVar8 + 8;\n              } while (uVar8 < uVar7);\n              return iVar3;\n            }\n          }" if (parenthesized_expression "(uVar7 < 8)" ( (binary_expression "uVar7 < 8" identifier < number_literal) )) (compound_statement "{\n            if ((uVar7 & 4) != 0) {\n              *(undefined4 *)puVar9 = 0;\n              *(undefined4 *)((long)puVar9 + (uVar7 - 4)) = 0;\n              return iVar3;\n            }\n            if ((uVar7 != 0) && (*(undefined1 *)puVar9 = 0, (uVar6 & 2) != 0)) {\n              *(undefined2 *)((long)puVar9 + (uVar7 - 2)) = 0;\n              return iVar3;\n            }\n          }" { (if_statement "if ((uVar7 & 4) != 0) {\n              *(undefined4 *)puVar9 = 0;\n              *(undefined4 *)((long)puVar9 + (uVar7 - 4)) = 0;\n              return iVar3;\n            }" if (parenthesized_expression "((uVar7 & 4) != 0)" ( (binary_expression "(uVar7 & 4) != 0" (parenthesized_expression "(uVar7 & 4)" ( (binary_expression "uVar7 & 4" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n              *(undefined4 *)puVar9 = 0;\n              *(undefined4 *)((long)puVar9 + (uVar7 - 4)) = 0;\n              return iVar3;\n            }" { (expression_statement "*(undefined4 *)puVar9 = 0;" (assignment_expression "*(undefined4 *)puVar9 = 0" (pointer_expression "*(undefined4 *)puVar9" * (cast_expression "(undefined4 *)puVar9" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (expression_statement "*(undefined4 *)((long)puVar9 + (uVar7 - 4)) = 0;" (assignment_expression "*(undefined4 *)((long)puVar9 + (uVar7 - 4)) = 0" (pointer_expression "*(undefined4 *)((long)puVar9 + (uVar7 - 4))" * (cast_expression "(undefined4 *)((long)puVar9 + (uVar7 - 4))" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar9 + (uVar7 - 4))" ( (binary_expression "(long)puVar9 + (uVar7 - 4)" (cast_expression "(long)puVar9" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (parenthesized_expression "(uVar7 - 4)" ( (binary_expression "uVar7 - 4" identifier - number_literal) ))) )))) = number_literal) ;) (return_statement "return iVar3;" return identifier ;) })) (if_statement "if ((uVar7 != 0) && (*(undefined1 *)puVar9 = 0, (uVar6 & 2) != 0)) {\n              *(undefined2 *)((long)puVar9 + (uVar7 - 2)) = 0;\n              return iVar3;\n            }" if (parenthesized_expression "((uVar7 != 0) && (*(undefined1 *)puVar9 = 0, (uVar6 & 2) != 0))" ( (binary_expression "(uVar7 != 0) && (*(undefined1 *)puVar9 = 0, (uVar6 & 2) != 0)" (parenthesized_expression "(uVar7 != 0)" ( (binary_expression "uVar7 != 0" identifier != number_literal) )) && (parenthesized_expression "(*(undefined1 *)puVar9 = 0, (uVar6 & 2) != 0)" ( (comma_expression "*(undefined1 *)puVar9 = 0, (uVar6 & 2) != 0" (assignment_expression "*(undefined1 *)puVar9 = 0" (pointer_expression "*(undefined1 *)puVar9" * (cast_expression "(undefined1 *)puVar9" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) , (binary_expression "(uVar6 & 2) != 0" (parenthesized_expression "(uVar6 & 2)" ( (binary_expression "uVar6 & 2" identifier & number_literal) )) != number_literal)) ))) )) (compound_statement "{\n              *(undefined2 *)((long)puVar9 + (uVar7 - 2)) = 0;\n              return iVar3;\n            }" { (expression_statement "*(undefined2 *)((long)puVar9 + (uVar7 - 2)) = 0;" (assignment_expression "*(undefined2 *)((long)puVar9 + (uVar7 - 2)) = 0" (pointer_expression "*(undefined2 *)((long)puVar9 + (uVar7 - 2))" * (cast_expression "(undefined2 *)((long)puVar9 + (uVar7 - 2))" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar9 + (uVar7 - 2))" ( (binary_expression "(long)puVar9 + (uVar7 - 2)" (cast_expression "(long)puVar9" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (parenthesized_expression "(uVar7 - 2)" ( (binary_expression "uVar7 - 2" identifier - number_literal) ))) )))) = number_literal) ;) (return_statement "return iVar3;" return identifier ;) })) }) (else_clause "else {\n            *puVar9 = 0;\n            *(undefined8 *)((long)puVar9 + (uVar7 - 8)) = 0;\n            uVar7 = (ulong)((long)puVar9 + (uVar7 - ((ulong)(puVar9 + 1) & 0xfffffffffffffff8))) &\n                    0xfffffffffffffff8;\n            if (7 < uVar7) {\n              uVar8 = 0;\n              do {\n                *(undefined8 *)(((ulong)(puVar9 + 1) & 0xfffffffffffffff8) + uVar8) = 0;\n                uVar8 = uVar8 + 8;\n              } while (uVar8 < uVar7);\n              return iVar3;\n            }\n          }" else (compound_statement "{\n            *puVar9 = 0;\n            *(undefined8 *)((long)puVar9 + (uVar7 - 8)) = 0;\n            uVar7 = (ulong)((long)puVar9 + (uVar7 - ((ulong)(puVar9 + 1) & 0xfffffffffffffff8))) &\n                    0xfffffffffffffff8;\n            if (7 < uVar7) {\n              uVar8 = 0;\n              do {\n                *(undefined8 *)(((ulong)(puVar9 + 1) & 0xfffffffffffffff8) + uVar8) = 0;\n                uVar8 = uVar8 + 8;\n              } while (uVar8 < uVar7);\n              return iVar3;\n            }\n          }" { (expression_statement "*puVar9 = 0;" (assignment_expression "*puVar9 = 0" (pointer_expression "*puVar9" * identifier) = number_literal) ;) (expression_statement "*(undefined8 *)((long)puVar9 + (uVar7 - 8)) = 0;" (assignment_expression "*(undefined8 *)((long)puVar9 + (uVar7 - 8)) = 0" (pointer_expression "*(undefined8 *)((long)puVar9 + (uVar7 - 8))" * (cast_expression "(undefined8 *)((long)puVar9 + (uVar7 - 8))" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar9 + (uVar7 - 8))" ( (binary_expression "(long)puVar9 + (uVar7 - 8)" (cast_expression "(long)puVar9" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (parenthesized_expression "(uVar7 - 8)" ( (binary_expression "uVar7 - 8" identifier - number_literal) ))) )))) = number_literal) ;) (expression_statement "uVar7 = (ulong)((long)puVar9 + (uVar7 - ((ulong)(puVar9 + 1) & 0xfffffffffffffff8))) &\n                    0xfffffffffffffff8;" (assignment_expression "uVar7 = (ulong)((long)puVar9 + (uVar7 - ((ulong)(puVar9 + 1) & 0xfffffffffffffff8))) &\n                    0xfffffffffffffff8" identifier = (binary_expression "(ulong)((long)puVar9 + (uVar7 - ((ulong)(puVar9 + 1) & 0xfffffffffffffff8))) &\n                    0xfffffffffffffff8" (call_expression "(ulong)((long)puVar9 + (uVar7 - ((ulong)(puVar9 + 1) & 0xfffffffffffffff8)))" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((long)puVar9 + (uVar7 - ((ulong)(puVar9 + 1) & 0xfffffffffffffff8)))" ( (binary_expression "(long)puVar9 + (uVar7 - ((ulong)(puVar9 + 1) & 0xfffffffffffffff8))" (cast_expression "(long)puVar9" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (parenthesized_expression "(uVar7 - ((ulong)(puVar9 + 1) & 0xfffffffffffffff8))" ( (binary_expression "uVar7 - ((ulong)(puVar9 + 1) & 0xfffffffffffffff8)" identifier - (parenthesized_expression "((ulong)(puVar9 + 1) & 0xfffffffffffffff8)" ( (binary_expression "(ulong)(puVar9 + 1) & 0xfffffffffffffff8" (call_expression "(ulong)(puVar9 + 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(puVar9 + 1)" ( (binary_expression "puVar9 + 1" identifier + number_literal) ))) & number_literal) ))) ))) ))) & number_literal)) ;) (if_statement "if (7 < uVar7) {\n              uVar8 = 0;\n              do {\n                *(undefined8 *)(((ulong)(puVar9 + 1) & 0xfffffffffffffff8) + uVar8) = 0;\n                uVar8 = uVar8 + 8;\n              } while (uVar8 < uVar7);\n              return iVar3;\n            }" if (parenthesized_expression "(7 < uVar7)" ( (binary_expression "7 < uVar7" number_literal < identifier) )) (compound_statement "{\n              uVar8 = 0;\n              do {\n                *(undefined8 *)(((ulong)(puVar9 + 1) & 0xfffffffffffffff8) + uVar8) = 0;\n                uVar8 = uVar8 + 8;\n              } while (uVar8 < uVar7);\n              return iVar3;\n            }" { (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;) (do_statement "do {\n                *(undefined8 *)(((ulong)(puVar9 + 1) & 0xfffffffffffffff8) + uVar8) = 0;\n                uVar8 = uVar8 + 8;\n              } while (uVar8 < uVar7);" do (compound_statement "{\n                *(undefined8 *)(((ulong)(puVar9 + 1) & 0xfffffffffffffff8) + uVar8) = 0;\n                uVar8 = uVar8 + 8;\n              }" { (expression_statement "*(undefined8 *)(((ulong)(puVar9 + 1) & 0xfffffffffffffff8) + uVar8) = 0;" (assignment_expression "*(undefined8 *)(((ulong)(puVar9 + 1) & 0xfffffffffffffff8) + uVar8) = 0" (pointer_expression "*(undefined8 *)(((ulong)(puVar9 + 1) & 0xfffffffffffffff8) + uVar8)" * (cast_expression "(undefined8 *)(((ulong)(puVar9 + 1) & 0xfffffffffffffff8) + uVar8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(((ulong)(puVar9 + 1) & 0xfffffffffffffff8) + uVar8)" ( (binary_expression "((ulong)(puVar9 + 1) & 0xfffffffffffffff8) + uVar8" (parenthesized_expression "((ulong)(puVar9 + 1) & 0xfffffffffffffff8)" ( (binary_expression "(ulong)(puVar9 + 1) & 0xfffffffffffffff8" (call_expression "(ulong)(puVar9 + 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(puVar9 + 1)" ( (binary_expression "puVar9 + 1" identifier + number_literal) ))) & number_literal) )) + identifier) )))) = number_literal) ;) (expression_statement "uVar8 = uVar8 + 8;" (assignment_expression "uVar8 = uVar8 + 8" identifier = (binary_expression "uVar8 + 8" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar8 < uVar7)" ( (binary_expression "uVar8 < uVar7" identifier < identifier) )) ;) (return_statement "return iVar3;" return identifier ;) })) }))) }))) })) (return_statement "return iVar3;" return identifier ;) })) (labeled_statement "LAB_00126f8e:\n    DAT_00175a40 = DAT_00175a40 + 1;" statement_identifier : (expression_statement "DAT_00175a40 = DAT_00175a40 + 1;" (assignment_expression "DAT_00175a40 = DAT_00175a40 + 1" identifier = (binary_expression "DAT_00175a40 + 1" identifier + number_literal)) ;)) }) while (parenthesized_expression "( true )" ( true )) ;) })))
(translation_unit "int hex_float(int float_type,char *bytes)\n\n{\n  char *pcVar1;\n  byte bVar2;\n  byte *pbVar3;\n  int iVar4;\n  char *pcVar5;\n  char cVar6;\n  uint uVar7;\n  ulong uVar8;\n  ulong uVar9;\n  byte *pbVar10;\n  int iVar11;\n  \n  switch(float_type) {\n  case 0x44:\n  case 0x52:\n  case 100:\n  case 0x72:\n    iVar4 = 8;\n    break;\n  default:\n    pcVar5 = (char *)dcgettext(0,"unknown floating type type \'%c\'",5);\n    as_bad(pcVar5,float_type);\n    return -1;\n  case 0x46:\n  case 0x53:\n  case 0x66:\n  case 0x73:\n    iVar4 = 4;\n    break;\n  case 0x50:\n  case 0x58:\n  case 0x70:\n  case 0x78:\n    iVar4 = 0xc;\n  }\n  iVar11 = 0;\n  do {\n    bVar2 = *input_line_pointer;\n    uVar8 = (ulong)bVar2;\n    cVar6 = _hex_value[uVar8];\n    while (cVar6 != 'c') {\n      if ((char)uVar8 == '_') goto LAB_00126f8e;\n      if (iVar4 <= iVar11) {\n        pcVar5 = (char *)dcgettext(0,"floating point constant too large",5);\n        as_warn(pcVar5);\n        return -1;\n      }\n      cVar6 = cVar6 * '\x10';\n      pbVar10 = (byte *)(input_line_pointer + 1);\n      bVar2 = input_line_pointer[1];\n      if (bVar2 == 0x5f) {\n        pbVar3 = (byte *)(input_line_pointer + 2);\n        do {\n          pbVar10 = pbVar3;\n          bVar2 = *pbVar10;\n          pbVar3 = pbVar10 + 1;\n        } while (bVar2 == 0x5f);\n      }\n      input_line_pointer = (char *)pbVar10;\n      if (_hex_value[bVar2] != 'c') {\n        cVar6 = _hex_value[bVar2] + cVar6;\n        input_line_pointer = (char *)(pbVar10 + 1);\n      }\n      if (target_big_endian == 0) {\n        bytes[(long)(iVar4 - iVar11) + -1] = cVar6;\n      }\n      else {\n        bytes[iVar11] = cVar6;\n      }\n      iVar11 = iVar11 + 1;\n      bVar2 = *input_line_pointer;\n      uVar8 = (ulong)bVar2;\n      cVar6 = _hex_value[uVar8];\n    }\n    if (bVar2 != 0x5f) {\n      if (iVar11 < iVar4) {\n        uVar7 = iVar4 - iVar11;\n        uVar8 = (ulong)(int)uVar7;\n        if (target_big_endian == 0) {\n          if (7 < uVar8) {\n            uVar9 = 0;\n            do {\n              pcVar5 = bytes + uVar9;\n              pcVar5[0] = '\0';\n              pcVar5[1] = '\0';\n              pcVar5[2] = '\0';\n              pcVar5[3] = '\0';\n              pcVar5[4] = '\0';\n              pcVar5[5] = '\0';\n              pcVar5[6] = '\0';\n              pcVar5[7] = '\0';\n              uVar9 = uVar9 + 8;\n            } while (uVar9 < (uVar8 & 0xfffffffffffffff8));\n            bytes = bytes + uVar9;\n          }\n          if ((uVar8 & 4) != 0) {\n            bytes[0] = '\0';\n            bytes[1] = '\0';\n            bytes[2] = '\0';\n            bytes[3] = '\0';\n            bytes = bytes + 4;\n          }\n          pcVar5 = bytes;\n          if ((uVar7 & 2) != 0) {\n            pcVar5 = bytes + 2;\n            bytes[0] = '\0';\n            bytes[1] = '\0';\n          }\n          if ((uVar7 & 1) != 0) {\n            *pcVar5 = '\0';\n            return iVar4;\n          }\n        }\n        else {\n          pcVar5 = bytes + iVar11;\n          if (uVar8 < 8) {\n            if ((uVar8 & 4) != 0) {\n              pcVar5[0] = '\0';\n              pcVar5[1] = '\0';\n              pcVar5[2] = '\0';\n              pcVar5[3] = '\0';\n              pcVar5 = pcVar5 + (uVar8 - 4);\n              pcVar5[0] = '\0';\n              pcVar5[1] = '\0';\n              pcVar5[2] = '\0';\n              pcVar5[3] = '\0';\n              return iVar4;\n            }\n            if ((uVar8 != 0) && (*pcVar5 = '\0', (uVar7 & 2) != 0)) {\n              (pcVar5 + (uVar8 - 2))[0] = '\0';\n              (pcVar5 + (uVar8 - 2))[1] = '\0';\n              return iVar4;\n            }\n          }\n          else {\n            pcVar5[0] = '\0';\n            pcVar5[1] = '\0';\n            pcVar5[2] = '\0';\n            pcVar5[3] = '\0';\n            pcVar5[4] = '\0';\n            pcVar5[5] = '\0';\n            pcVar5[6] = '\0';\n            pcVar5[7] = '\0';\n            pcVar1 = pcVar5 + (uVar8 - 8);\n            pcVar1[0] = '\0';\n            pcVar1[1] = '\0';\n            pcVar1[2] = '\0';\n            pcVar1[3] = '\0';\n            pcVar1[4] = '\0';\n            pcVar1[5] = '\0';\n            pcVar1[6] = '\0';\n            pcVar1[7] = '\0';\n            if (7 < ((ulong)(pcVar5 + (uVar8 - ((ulong)(pcVar5 + 8) & 0xfffffffffffffff8))) &\n                    0xfffffffffffffff8)) {\n              uVar9 = 0;\n              do {\n                *(undefined8 *)(((ulong)(pcVar5 + 8) & 0xfffffffffffffff8) + uVar9) = 0;\n                uVar9 = uVar9 + 8;\n              } while (uVar9 < ((ulong)(pcVar5 + (uVar8 - ((ulong)(pcVar5 + 8) & 0xfffffffffffffff8)\n                                                 )) & 0xfffffffffffffff8));\n              return iVar4;\n            }\n          }\n        }\n      }\n      return iVar4;\n    }\nLAB_00126f8e:\n    input_line_pointer = input_line_pointer + 1;\n  } while( true );\n}\n\n" (function_definition "int hex_float(int float_type,char *bytes)\n\n{\n  char *pcVar1;\n  byte bVar2;\n  byte *pbVar3;\n  int iVar4;\n  char *pcVar5;\n  char cVar6;\n  uint uVar7;\n  ulong uVar8;\n  ulong uVar9;\n  byte *pbVar10;\n  int iVar11;\n  \n  switch(float_type) {\n  case 0x44:\n  case 0x52:\n  case 100:\n  case 0x72:\n    iVar4 = 8;\n    break;\n  default:\n    pcVar5 = (char *)dcgettext(0,"unknown floating type type \'%c\'",5);\n    as_bad(pcVar5,float_type);\n    return -1;\n  case 0x46:\n  case 0x53:\n  case 0x66:\n  case 0x73:\n    iVar4 = 4;\n    break;\n  case 0x50:\n  case 0x58:\n  case 0x70:\n  case 0x78:\n    iVar4 = 0xc;\n  }\n  iVar11 = 0;\n  do {\n    bVar2 = *input_line_pointer;\n    uVar8 = (ulong)bVar2;\n    cVar6 = _hex_value[uVar8];\n    while (cVar6 != 'c') {\n      if ((char)uVar8 == '_') goto LAB_00126f8e;\n      if (iVar4 <= iVar11) {\n        pcVar5 = (char *)dcgettext(0,"floating point constant too large",5);\n        as_warn(pcVar5);\n        return -1;\n      }\n      cVar6 = cVar6 * '\x10';\n      pbVar10 = (byte *)(input_line_pointer + 1);\n      bVar2 = input_line_pointer[1];\n      if (bVar2 == 0x5f) {\n        pbVar3 = (byte *)(input_line_pointer + 2);\n        do {\n          pbVar10 = pbVar3;\n          bVar2 = *pbVar10;\n          pbVar3 = pbVar10 + 1;\n        } while (bVar2 == 0x5f);\n      }\n      input_line_pointer = (char *)pbVar10;\n      if (_hex_value[bVar2] != 'c') {\n        cVar6 = _hex_value[bVar2] + cVar6;\n        input_line_pointer = (char *)(pbVar10 + 1);\n      }\n      if (target_big_endian == 0) {\n        bytes[(long)(iVar4 - iVar11) + -1] = cVar6;\n      }\n      else {\n        bytes[iVar11] = cVar6;\n      }\n      iVar11 = iVar11 + 1;\n      bVar2 = *input_line_pointer;\n      uVar8 = (ulong)bVar2;\n      cVar6 = _hex_value[uVar8];\n    }\n    if (bVar2 != 0x5f) {\n      if (iVar11 < iVar4) {\n        uVar7 = iVar4 - iVar11;\n        uVar8 = (ulong)(int)uVar7;\n        if (target_big_endian == 0) {\n          if (7 < uVar8) {\n            uVar9 = 0;\n            do {\n              pcVar5 = bytes + uVar9;\n              pcVar5[0] = '\0';\n              pcVar5[1] = '\0';\n              pcVar5[2] = '\0';\n              pcVar5[3] = '\0';\n              pcVar5[4] = '\0';\n              pcVar5[5] = '\0';\n              pcVar5[6] = '\0';\n              pcVar5[7] = '\0';\n              uVar9 = uVar9 + 8;\n            } while (uVar9 < (uVar8 & 0xfffffffffffffff8));\n            bytes = bytes + uVar9;\n          }\n          if ((uVar8 & 4) != 0) {\n            bytes[0] = '\0';\n            bytes[1] = '\0';\n            bytes[2] = '\0';\n            bytes[3] = '\0';\n            bytes = bytes + 4;\n          }\n          pcVar5 = bytes;\n          if ((uVar7 & 2) != 0) {\n            pcVar5 = bytes + 2;\n            bytes[0] = '\0';\n            bytes[1] = '\0';\n          }\n          if ((uVar7 & 1) != 0) {\n            *pcVar5 = '\0';\n            return iVar4;\n          }\n        }\n        else {\n          pcVar5 = bytes + iVar11;\n          if (uVar8 < 8) {\n            if ((uVar8 & 4) != 0) {\n              pcVar5[0] = '\0';\n              pcVar5[1] = '\0';\n              pcVar5[2] = '\0';\n              pcVar5[3] = '\0';\n              pcVar5 = pcVar5 + (uVar8 - 4);\n              pcVar5[0] = '\0';\n              pcVar5[1] = '\0';\n              pcVar5[2] = '\0';\n              pcVar5[3] = '\0';\n              return iVar4;\n            }\n            if ((uVar8 != 0) && (*pcVar5 = '\0', (uVar7 & 2) != 0)) {\n              (pcVar5 + (uVar8 - 2))[0] = '\0';\n              (pcVar5 + (uVar8 - 2))[1] = '\0';\n              return iVar4;\n            }\n          }\n          else {\n            pcVar5[0] = '\0';\n            pcVar5[1] = '\0';\n            pcVar5[2] = '\0';\n            pcVar5[3] = '\0';\n            pcVar5[4] = '\0';\n            pcVar5[5] = '\0';\n            pcVar5[6] = '\0';\n            pcVar5[7] = '\0';\n            pcVar1 = pcVar5 + (uVar8 - 8);\n            pcVar1[0] = '\0';\n            pcVar1[1] = '\0';\n            pcVar1[2] = '\0';\n            pcVar1[3] = '\0';\n            pcVar1[4] = '\0';\n            pcVar1[5] = '\0';\n            pcVar1[6] = '\0';\n            pcVar1[7] = '\0';\n            if (7 < ((ulong)(pcVar5 + (uVar8 - ((ulong)(pcVar5 + 8) & 0xfffffffffffffff8))) &\n                    0xfffffffffffffff8)) {\n              uVar9 = 0;\n              do {\n                *(undefined8 *)(((ulong)(pcVar5 + 8) & 0xfffffffffffffff8) + uVar9) = 0;\n                uVar9 = uVar9 + 8;\n              } while (uVar9 < ((ulong)(pcVar5 + (uVar8 - ((ulong)(pcVar5 + 8) & 0xfffffffffffffff8)\n                                                 )) & 0xfffffffffffffff8));\n              return iVar4;\n            }\n          }\n        }\n      }\n      return iVar4;\n    }\nLAB_00126f8e:\n    input_line_pointer = input_line_pointer + 1;\n  } while( true );\n}" primitive_type (function_declarator "hex_float(int float_type,char *bytes)" identifier (parameter_list "(int float_type,char *bytes)" ( (parameter_declaration "int float_type" primitive_type identifier) , (parameter_declaration "char *bytes" primitive_type (pointer_declarator "*bytes" * identifier)) ))) (compound_statement "{\n  char *pcVar1;\n  byte bVar2;\n  byte *pbVar3;\n  int iVar4;\n  char *pcVar5;\n  char cVar6;\n  uint uVar7;\n  ulong uVar8;\n  ulong uVar9;\n  byte *pbVar10;\n  int iVar11;\n  \n  switch(float_type) {\n  case 0x44:\n  case 0x52:\n  case 100:\n  case 0x72:\n    iVar4 = 8;\n    break;\n  default:\n    pcVar5 = (char *)dcgettext(0,"unknown floating type type \'%c\'",5);\n    as_bad(pcVar5,float_type);\n    return -1;\n  case 0x46:\n  case 0x53:\n  case 0x66:\n  case 0x73:\n    iVar4 = 4;\n    break;\n  case 0x50:\n  case 0x58:\n  case 0x70:\n  case 0x78:\n    iVar4 = 0xc;\n  }\n  iVar11 = 0;\n  do {\n    bVar2 = *input_line_pointer;\n    uVar8 = (ulong)bVar2;\n    cVar6 = _hex_value[uVar8];\n    while (cVar6 != 'c') {\n      if ((char)uVar8 == '_') goto LAB_00126f8e;\n      if (iVar4 <= iVar11) {\n        pcVar5 = (char *)dcgettext(0,"floating point constant too large",5);\n        as_warn(pcVar5);\n        return -1;\n      }\n      cVar6 = cVar6 * '\x10';\n      pbVar10 = (byte *)(input_line_pointer + 1);\n      bVar2 = input_line_pointer[1];\n      if (bVar2 == 0x5f) {\n        pbVar3 = (byte *)(input_line_pointer + 2);\n        do {\n          pbVar10 = pbVar3;\n          bVar2 = *pbVar10;\n          pbVar3 = pbVar10 + 1;\n        } while (bVar2 == 0x5f);\n      }\n      input_line_pointer = (char *)pbVar10;\n      if (_hex_value[bVar2] != 'c') {\n        cVar6 = _hex_value[bVar2] + cVar6;\n        input_line_pointer = (char *)(pbVar10 + 1);\n      }\n      if (target_big_endian == 0) {\n        bytes[(long)(iVar4 - iVar11) + -1] = cVar6;\n      }\n      else {\n        bytes[iVar11] = cVar6;\n      }\n      iVar11 = iVar11 + 1;\n      bVar2 = *input_line_pointer;\n      uVar8 = (ulong)bVar2;\n      cVar6 = _hex_value[uVar8];\n    }\n    if (bVar2 != 0x5f) {\n      if (iVar11 < iVar4) {\n        uVar7 = iVar4 - iVar11;\n        uVar8 = (ulong)(int)uVar7;\n        if (target_big_endian == 0) {\n          if (7 < uVar8) {\n            uVar9 = 0;\n            do {\n              pcVar5 = bytes + uVar9;\n              pcVar5[0] = '\0';\n              pcVar5[1] = '\0';\n              pcVar5[2] = '\0';\n              pcVar5[3] = '\0';\n              pcVar5[4] = '\0';\n              pcVar5[5] = '\0';\n              pcVar5[6] = '\0';\n              pcVar5[7] = '\0';\n              uVar9 = uVar9 + 8;\n            } while (uVar9 < (uVar8 & 0xfffffffffffffff8));\n            bytes = bytes + uVar9;\n          }\n          if ((uVar8 & 4) != 0) {\n            bytes[0] = '\0';\n            bytes[1] = '\0';\n            bytes[2] = '\0';\n            bytes[3] = '\0';\n            bytes = bytes + 4;\n          }\n          pcVar5 = bytes;\n          if ((uVar7 & 2) != 0) {\n            pcVar5 = bytes + 2;\n            bytes[0] = '\0';\n            bytes[1] = '\0';\n          }\n          if ((uVar7 & 1) != 0) {\n            *pcVar5 = '\0';\n            return iVar4;\n          }\n        }\n        else {\n          pcVar5 = bytes + iVar11;\n          if (uVar8 < 8) {\n            if ((uVar8 & 4) != 0) {\n              pcVar5[0] = '\0';\n              pcVar5[1] = '\0';\n              pcVar5[2] = '\0';\n              pcVar5[3] = '\0';\n              pcVar5 = pcVar5 + (uVar8 - 4);\n              pcVar5[0] = '\0';\n              pcVar5[1] = '\0';\n              pcVar5[2] = '\0';\n              pcVar5[3] = '\0';\n              return iVar4;\n            }\n            if ((uVar8 != 0) && (*pcVar5 = '\0', (uVar7 & 2) != 0)) {\n              (pcVar5 + (uVar8 - 2))[0] = '\0';\n              (pcVar5 + (uVar8 - 2))[1] = '\0';\n              return iVar4;\n            }\n          }\n          else {\n            pcVar5[0] = '\0';\n            pcVar5[1] = '\0';\n            pcVar5[2] = '\0';\n            pcVar5[3] = '\0';\n            pcVar5[4] = '\0';\n            pcVar5[5] = '\0';\n            pcVar5[6] = '\0';\n            pcVar5[7] = '\0';\n            pcVar1 = pcVar5 + (uVar8 - 8);\n            pcVar1[0] = '\0';\n            pcVar1[1] = '\0';\n            pcVar1[2] = '\0';\n            pcVar1[3] = '\0';\n            pcVar1[4] = '\0';\n            pcVar1[5] = '\0';\n            pcVar1[6] = '\0';\n            pcVar1[7] = '\0';\n            if (7 < ((ulong)(pcVar5 + (uVar8 - ((ulong)(pcVar5 + 8) & 0xfffffffffffffff8))) &\n                    0xfffffffffffffff8)) {\n              uVar9 = 0;\n              do {\n                *(undefined8 *)(((ulong)(pcVar5 + 8) & 0xfffffffffffffff8) + uVar9) = 0;\n                uVar9 = uVar9 + 8;\n              } while (uVar9 < ((ulong)(pcVar5 + (uVar8 - ((ulong)(pcVar5 + 8) & 0xfffffffffffffff8)\n                                                 )) & 0xfffffffffffffff8));\n              return iVar4;\n            }\n          }\n        }\n      }\n      return iVar4;\n    }\nLAB_00126f8e:\n    input_line_pointer = input_line_pointer + 1;\n  } while( true );\n}" { (declaration "char *pcVar1;" primitive_type (pointer_declarator "*pcVar1" * identifier) ;) (declaration "byte bVar2;" type_identifier identifier ;) (declaration "byte *pbVar3;" type_identifier (pointer_declarator "*pbVar3" * identifier) ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "char *pcVar5;" primitive_type (pointer_declarator "*pcVar5" * identifier) ;) (declaration "char cVar6;" primitive_type identifier ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "ulong uVar8;" type_identifier identifier ;) (declaration "ulong uVar9;" type_identifier identifier ;) (declaration "byte *pbVar10;" type_identifier (pointer_declarator "*pbVar10" * identifier) ;) (declaration "int iVar11;" primitive_type identifier ;) (switch_statement "switch(float_type) {\n  case 0x44:\n  case 0x52:\n  case 100:\n  case 0x72:\n    iVar4 = 8;\n    break;\n  default:\n    pcVar5 = (char *)dcgettext(0,"unknown floating type type \'%c\'",5);\n    as_bad(pcVar5,float_type);\n    return -1;\n  case 0x46:\n  case 0x53:\n  case 0x66:\n  case 0x73:\n    iVar4 = 4;\n    break;\n  case 0x50:\n  case 0x58:\n  case 0x70:\n  case 0x78:\n    iVar4 = 0xc;\n  }" switch (parenthesized_expression "(float_type)" ( identifier )) (compound_statement "{\n  case 0x44:\n  case 0x52:\n  case 100:\n  case 0x72:\n    iVar4 = 8;\n    break;\n  default:\n    pcVar5 = (char *)dcgettext(0,"unknown floating type type \'%c\'",5);\n    as_bad(pcVar5,float_type);\n    return -1;\n  case 0x46:\n  case 0x53:\n  case 0x66:\n  case 0x73:\n    iVar4 = 4;\n    break;\n  case 0x50:\n  case 0x58:\n  case 0x70:\n  case 0x78:\n    iVar4 = 0xc;\n  }" { (case_statement "case 0x44:" case number_literal :) (case_statement "case 0x52:" case number_literal :) (case_statement "case 100:" case number_literal :) (case_statement "case 0x72:\n    iVar4 = 8;\n    break;" case number_literal : (expression_statement "iVar4 = 8;" (assignment_expression "iVar4 = 8" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "default:\n    pcVar5 = (char *)dcgettext(0,"unknown floating type type \'%c\'",5);\n    as_bad(pcVar5,float_type);\n    return -1;" default : (expression_statement "pcVar5 = (char *)dcgettext(0,"unknown floating type type \'%c\'",5);" (assignment_expression "pcVar5 = (char *)dcgettext(0,"unknown floating type type \'%c\'",5)" identifier = (cast_expression "(char *)dcgettext(0,"unknown floating type type \'%c\'",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"unknown floating type type \'%c\'",5)" identifier (argument_list "(0,"unknown floating type type \'%c\'",5)" ( number_literal , (string_literal ""unknown floating type type \'%c\'"" " string_content escape_sequence string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "as_bad(pcVar5,float_type);" (call_expression "as_bad(pcVar5,float_type)" identifier (argument_list "(pcVar5,float_type)" ( identifier , identifier ))) ;) (return_statement "return -1;" return number_literal ;)) (case_statement "case 0x46:" case number_literal :) (case_statement "case 0x53:" case number_literal :) (case_statement "case 0x66:" case number_literal :) (case_statement "case 0x73:\n    iVar4 = 4;\n    break;" case number_literal : (expression_statement "iVar4 = 4;" (assignment_expression "iVar4 = 4" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0x50:" case number_literal :) (case_statement "case 0x58:" case number_literal :) (case_statement "case 0x70:" case number_literal :) (case_statement "case 0x78:\n    iVar4 = 0xc;" case number_literal : (expression_statement "iVar4 = 0xc;" (assignment_expression "iVar4 = 0xc" identifier = number_literal) ;)) })) (expression_statement "iVar11 = 0;" (assignment_expression "iVar11 = 0" identifier = number_literal) ;) (do_statement "do {\n    bVar2 = *input_line_pointer;\n    uVar8 = (ulong)bVar2;\n    cVar6 = _hex_value[uVar8];\n    while (cVar6 != 'c') {\n      if ((char)uVar8 == '_') goto LAB_00126f8e;\n      if (iVar4 <= iVar11) {\n        pcVar5 = (char *)dcgettext(0,"floating point constant too large",5);\n        as_warn(pcVar5);\n        return -1;\n      }\n      cVar6 = cVar6 * '\x10';\n      pbVar10 = (byte *)(input_line_pointer + 1);\n      bVar2 = input_line_pointer[1];\n      if (bVar2 == 0x5f) {\n        pbVar3 = (byte *)(input_line_pointer + 2);\n        do {\n          pbVar10 = pbVar3;\n          bVar2 = *pbVar10;\n          pbVar3 = pbVar10 + 1;\n        } while (bVar2 == 0x5f);\n      }\n      input_line_pointer = (char *)pbVar10;\n      if (_hex_value[bVar2] != 'c') {\n        cVar6 = _hex_value[bVar2] + cVar6;\n        input_line_pointer = (char *)(pbVar10 + 1);\n      }\n      if (target_big_endian == 0) {\n        bytes[(long)(iVar4 - iVar11) + -1] = cVar6;\n      }\n      else {\n        bytes[iVar11] = cVar6;\n      }\n      iVar11 = iVar11 + 1;\n      bVar2 = *input_line_pointer;\n      uVar8 = (ulong)bVar2;\n      cVar6 = _hex_value[uVar8];\n    }\n    if (bVar2 != 0x5f) {\n      if (iVar11 < iVar4) {\n        uVar7 = iVar4 - iVar11;\n        uVar8 = (ulong)(int)uVar7;\n        if (target_big_endian == 0) {\n          if (7 < uVar8) {\n            uVar9 = 0;\n            do {\n              pcVar5 = bytes + uVar9;\n              pcVar5[0] = '\0';\n              pcVar5[1] = '\0';\n              pcVar5[2] = '\0';\n              pcVar5[3] = '\0';\n              pcVar5[4] = '\0';\n              pcVar5[5] = '\0';\n              pcVar5[6] = '\0';\n              pcVar5[7] = '\0';\n              uVar9 = uVar9 + 8;\n            } while (uVar9 < (uVar8 & 0xfffffffffffffff8));\n            bytes = bytes + uVar9;\n          }\n          if ((uVar8 & 4) != 0) {\n            bytes[0] = '\0';\n            bytes[1] = '\0';\n            bytes[2] = '\0';\n            bytes[3] = '\0';\n            bytes = bytes + 4;\n          }\n          pcVar5 = bytes;\n          if ((uVar7 & 2) != 0) {\n            pcVar5 = bytes + 2;\n            bytes[0] = '\0';\n            bytes[1] = '\0';\n          }\n          if ((uVar7 & 1) != 0) {\n            *pcVar5 = '\0';\n            return iVar4;\n          }\n        }\n        else {\n          pcVar5 = bytes + iVar11;\n          if (uVar8 < 8) {\n            if ((uVar8 & 4) != 0) {\n              pcVar5[0] = '\0';\n              pcVar5[1] = '\0';\n              pcVar5[2] = '\0';\n              pcVar5[3] = '\0';\n              pcVar5 = pcVar5 + (uVar8 - 4);\n              pcVar5[0] = '\0';\n              pcVar5[1] = '\0';\n              pcVar5[2] = '\0';\n              pcVar5[3] = '\0';\n              return iVar4;\n            }\n            if ((uVar8 != 0) && (*pcVar5 = '\0', (uVar7 & 2) != 0)) {\n              (pcVar5 + (uVar8 - 2))[0] = '\0';\n              (pcVar5 + (uVar8 - 2))[1] = '\0';\n              return iVar4;\n            }\n          }\n          else {\n            pcVar5[0] = '\0';\n            pcVar5[1] = '\0';\n            pcVar5[2] = '\0';\n            pcVar5[3] = '\0';\n            pcVar5[4] = '\0';\n            pcVar5[5] = '\0';\n            pcVar5[6] = '\0';\n            pcVar5[7] = '\0';\n            pcVar1 = pcVar5 + (uVar8 - 8);\n            pcVar1[0] = '\0';\n            pcVar1[1] = '\0';\n            pcVar1[2] = '\0';\n            pcVar1[3] = '\0';\n            pcVar1[4] = '\0';\n            pcVar1[5] = '\0';\n            pcVar1[6] = '\0';\n            pcVar1[7] = '\0';\n            if (7 < ((ulong)(pcVar5 + (uVar8 - ((ulong)(pcVar5 + 8) & 0xfffffffffffffff8))) &\n                    0xfffffffffffffff8)) {\n              uVar9 = 0;\n              do {\n                *(undefined8 *)(((ulong)(pcVar5 + 8) & 0xfffffffffffffff8) + uVar9) = 0;\n                uVar9 = uVar9 + 8;\n              } while (uVar9 < ((ulong)(pcVar5 + (uVar8 - ((ulong)(pcVar5 + 8) & 0xfffffffffffffff8)\n                                                 )) & 0xfffffffffffffff8));\n              return iVar4;\n            }\n          }\n        }\n      }\n      return iVar4;\n    }\nLAB_00126f8e:\n    input_line_pointer = input_line_pointer + 1;\n  } while( true );" do (compound_statement "{\n    bVar2 = *input_line_pointer;\n    uVar8 = (ulong)bVar2;\n    cVar6 = _hex_value[uVar8];\n    while (cVar6 != 'c') {\n      if ((char)uVar8 == '_') goto LAB_00126f8e;\n      if (iVar4 <= iVar11) {\n        pcVar5 = (char *)dcgettext(0,"floating point constant too large",5);\n        as_warn(pcVar5);\n        return -1;\n      }\n      cVar6 = cVar6 * '\x10';\n      pbVar10 = (byte *)(input_line_pointer + 1);\n      bVar2 = input_line_pointer[1];\n      if (bVar2 == 0x5f) {\n        pbVar3 = (byte *)(input_line_pointer + 2);\n        do {\n          pbVar10 = pbVar3;\n          bVar2 = *pbVar10;\n          pbVar3 = pbVar10 + 1;\n        } while (bVar2 == 0x5f);\n      }\n      input_line_pointer = (char *)pbVar10;\n      if (_hex_value[bVar2] != 'c') {\n        cVar6 = _hex_value[bVar2] + cVar6;\n        input_line_pointer = (char *)(pbVar10 + 1);\n      }\n      if (target_big_endian == 0) {\n        bytes[(long)(iVar4 - iVar11) + -1] = cVar6;\n      }\n      else {\n        bytes[iVar11] = cVar6;\n      }\n      iVar11 = iVar11 + 1;\n      bVar2 = *input_line_pointer;\n      uVar8 = (ulong)bVar2;\n      cVar6 = _hex_value[uVar8];\n    }\n    if (bVar2 != 0x5f) {\n      if (iVar11 < iVar4) {\n        uVar7 = iVar4 - iVar11;\n        uVar8 = (ulong)(int)uVar7;\n        if (target_big_endian == 0) {\n          if (7 < uVar8) {\n            uVar9 = 0;\n            do {\n              pcVar5 = bytes + uVar9;\n              pcVar5[0] = '\0';\n              pcVar5[1] = '\0';\n              pcVar5[2] = '\0';\n              pcVar5[3] = '\0';\n              pcVar5[4] = '\0';\n              pcVar5[5] = '\0';\n              pcVar5[6] = '\0';\n              pcVar5[7] = '\0';\n              uVar9 = uVar9 + 8;\n            } while (uVar9 < (uVar8 & 0xfffffffffffffff8));\n            bytes = bytes + uVar9;\n          }\n          if ((uVar8 & 4) != 0) {\n            bytes[0] = '\0';\n            bytes[1] = '\0';\n            bytes[2] = '\0';\n            bytes[3] = '\0';\n            bytes = bytes + 4;\n          }\n          pcVar5 = bytes;\n          if ((uVar7 & 2) != 0) {\n            pcVar5 = bytes + 2;\n            bytes[0] = '\0';\n            bytes[1] = '\0';\n          }\n          if ((uVar7 & 1) != 0) {\n            *pcVar5 = '\0';\n            return iVar4;\n          }\n        }\n        else {\n          pcVar5 = bytes + iVar11;\n          if (uVar8 < 8) {\n            if ((uVar8 & 4) != 0) {\n              pcVar5[0] = '\0';\n              pcVar5[1] = '\0';\n              pcVar5[2] = '\0';\n              pcVar5[3] = '\0';\n              pcVar5 = pcVar5 + (uVar8 - 4);\n              pcVar5[0] = '\0';\n              pcVar5[1] = '\0';\n              pcVar5[2] = '\0';\n              pcVar5[3] = '\0';\n              return iVar4;\n            }\n            if ((uVar8 != 0) && (*pcVar5 = '\0', (uVar7 & 2) != 0)) {\n              (pcVar5 + (uVar8 - 2))[0] = '\0';\n              (pcVar5 + (uVar8 - 2))[1] = '\0';\n              return iVar4;\n            }\n          }\n          else {\n            pcVar5[0] = '\0';\n            pcVar5[1] = '\0';\n            pcVar5[2] = '\0';\n            pcVar5[3] = '\0';\n            pcVar5[4] = '\0';\n            pcVar5[5] = '\0';\n            pcVar5[6] = '\0';\n            pcVar5[7] = '\0';\n            pcVar1 = pcVar5 + (uVar8 - 8);\n            pcVar1[0] = '\0';\n            pcVar1[1] = '\0';\n            pcVar1[2] = '\0';\n            pcVar1[3] = '\0';\n            pcVar1[4] = '\0';\n            pcVar1[5] = '\0';\n            pcVar1[6] = '\0';\n            pcVar1[7] = '\0';\n            if (7 < ((ulong)(pcVar5 + (uVar8 - ((ulong)(pcVar5 + 8) & 0xfffffffffffffff8))) &\n                    0xfffffffffffffff8)) {\n              uVar9 = 0;\n              do {\n                *(undefined8 *)(((ulong)(pcVar5 + 8) & 0xfffffffffffffff8) + uVar9) = 0;\n                uVar9 = uVar9 + 8;\n              } while (uVar9 < ((ulong)(pcVar5 + (uVar8 - ((ulong)(pcVar5 + 8) & 0xfffffffffffffff8)\n                                                 )) & 0xfffffffffffffff8));\n              return iVar4;\n            }\n          }\n        }\n      }\n      return iVar4;\n    }\nLAB_00126f8e:\n    input_line_pointer = input_line_pointer + 1;\n  }" { (expression_statement "bVar2 = *input_line_pointer;" (assignment_expression "bVar2 = *input_line_pointer" identifier = (pointer_expression "*input_line_pointer" * identifier)) ;) (expression_statement "uVar8 = (ulong)bVar2;" (assignment_expression "uVar8 = (ulong)bVar2" identifier = (cast_expression "(ulong)bVar2" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (expression_statement "cVar6 = _hex_value[uVar8];" (assignment_expression "cVar6 = _hex_value[uVar8]" identifier = (subscript_expression "_hex_value[uVar8]" identifier [ identifier ])) ;) (while_statement "while (cVar6 != 'c') {\n      if ((char)uVar8 == '_') goto LAB_00126f8e;\n      if (iVar4 <= iVar11) {\n        pcVar5 = (char *)dcgettext(0,"floating point constant too large",5);\n        as_warn(pcVar5);\n        return -1;\n      }\n      cVar6 = cVar6 * '\x10';\n      pbVar10 = (byte *)(input_line_pointer + 1);\n      bVar2 = input_line_pointer[1];\n      if (bVar2 == 0x5f) {\n        pbVar3 = (byte *)(input_line_pointer + 2);\n        do {\n          pbVar10 = pbVar3;\n          bVar2 = *pbVar10;\n          pbVar3 = pbVar10 + 1;\n        } while (bVar2 == 0x5f);\n      }\n      input_line_pointer = (char *)pbVar10;\n      if (_hex_value[bVar2] != 'c') {\n        cVar6 = _hex_value[bVar2] + cVar6;\n        input_line_pointer = (char *)(pbVar10 + 1);\n      }\n      if (target_big_endian == 0) {\n        bytes[(long)(iVar4 - iVar11) + -1] = cVar6;\n      }\n      else {\n        bytes[iVar11] = cVar6;\n      }\n      iVar11 = iVar11 + 1;\n      bVar2 = *input_line_pointer;\n      uVar8 = (ulong)bVar2;\n      cVar6 = _hex_value[uVar8];\n    }" while (parenthesized_expression "(cVar6 != 'c')" ( (binary_expression "cVar6 != 'c'" identifier != (char_literal "'c'" ' character ')) )) (compound_statement "{\n      if ((char)uVar8 == '_') goto LAB_00126f8e;\n      if (iVar4 <= iVar11) {\n        pcVar5 = (char *)dcgettext(0,"floating point constant too large",5);\n        as_warn(pcVar5);\n        return -1;\n      }\n      cVar6 = cVar6 * '\x10';\n      pbVar10 = (byte *)(input_line_pointer + 1);\n      bVar2 = input_line_pointer[1];\n      if (bVar2 == 0x5f) {\n        pbVar3 = (byte *)(input_line_pointer + 2);\n        do {\n          pbVar10 = pbVar3;\n          bVar2 = *pbVar10;\n          pbVar3 = pbVar10 + 1;\n        } while (bVar2 == 0x5f);\n      }\n      input_line_pointer = (char *)pbVar10;\n      if (_hex_value[bVar2] != 'c') {\n        cVar6 = _hex_value[bVar2] + cVar6;\n        input_line_pointer = (char *)(pbVar10 + 1);\n      }\n      if (target_big_endian == 0) {\n        bytes[(long)(iVar4 - iVar11) + -1] = cVar6;\n      }\n      else {\n        bytes[iVar11] = cVar6;\n      }\n      iVar11 = iVar11 + 1;\n      bVar2 = *input_line_pointer;\n      uVar8 = (ulong)bVar2;\n      cVar6 = _hex_value[uVar8];\n    }" { (if_statement "if ((char)uVar8 == '_') goto LAB_00126f8e;" if (parenthesized_expression "((char)uVar8 == '_')" ( (binary_expression "(char)uVar8 == '_'" (cast_expression "(char)uVar8" ( (type_descriptor "char" primitive_type) ) identifier) == (char_literal "'_'" ' character ')) )) (goto_statement "goto LAB_00126f8e;" goto statement_identifier ;)) (if_statement "if (iVar4 <= iVar11) {\n        pcVar5 = (char *)dcgettext(0,"floating point constant too large",5);\n        as_warn(pcVar5);\n        return -1;\n      }" if (parenthesized_expression "(iVar4 <= iVar11)" ( (binary_expression "iVar4 <= iVar11" identifier <= identifier) )) (compound_statement "{\n        pcVar5 = (char *)dcgettext(0,"floating point constant too large",5);\n        as_warn(pcVar5);\n        return -1;\n      }" { (expression_statement "pcVar5 = (char *)dcgettext(0,"floating point constant too large",5);" (assignment_expression "pcVar5 = (char *)dcgettext(0,"floating point constant too large",5)" identifier = (cast_expression "(char *)dcgettext(0,"floating point constant too large",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"floating point constant too large",5)" identifier (argument_list "(0,"floating point constant too large",5)" ( number_literal , (string_literal ""floating point constant too large"" " string_content ") , number_literal ))))) ;) (expression_statement "as_warn(pcVar5);" (call_expression "as_warn(pcVar5)" identifier (argument_list "(pcVar5)" ( identifier ))) ;) (return_statement "return -1;" return number_literal ;) })) (expression_statement "cVar6 = cVar6 * '\x10';" (assignment_expression "cVar6 = cVar6 * '\x10'" identifier = (binary_expression "cVar6 * '\x10'" identifier * (char_literal "'\x10'" ' escape_sequence '))) ;) (expression_statement "pbVar10 = (byte *)(input_line_pointer + 1);" (assignment_expression "pbVar10 = (byte *)(input_line_pointer + 1)" identifier = (cast_expression "(byte *)(input_line_pointer + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(input_line_pointer + 1)" ( (binary_expression "input_line_pointer + 1" identifier + number_literal) )))) ;) (expression_statement "bVar2 = input_line_pointer[1];" (assignment_expression "bVar2 = input_line_pointer[1]" identifier = (subscript_expression "input_line_pointer[1]" identifier [ number_literal ])) ;) (if_statement "if (bVar2 == 0x5f) {\n        pbVar3 = (byte *)(input_line_pointer + 2);\n        do {\n          pbVar10 = pbVar3;\n          bVar2 = *pbVar10;\n          pbVar3 = pbVar10 + 1;\n        } while (bVar2 == 0x5f);\n      }" if (parenthesized_expression "(bVar2 == 0x5f)" ( (binary_expression "bVar2 == 0x5f" identifier == number_literal) )) (compound_statement "{\n        pbVar3 = (byte *)(input_line_pointer + 2);\n        do {\n          pbVar10 = pbVar3;\n          bVar2 = *pbVar10;\n          pbVar3 = pbVar10 + 1;\n        } while (bVar2 == 0x5f);\n      }" { (expression_statement "pbVar3 = (byte *)(input_line_pointer + 2);" (assignment_expression "pbVar3 = (byte *)(input_line_pointer + 2)" identifier = (cast_expression "(byte *)(input_line_pointer + 2)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(input_line_pointer + 2)" ( (binary_expression "input_line_pointer + 2" identifier + number_literal) )))) ;) (do_statement "do {\n          pbVar10 = pbVar3;\n          bVar2 = *pbVar10;\n          pbVar3 = pbVar10 + 1;\n        } while (bVar2 == 0x5f);" do (compound_statement "{\n          pbVar10 = pbVar3;\n          bVar2 = *pbVar10;\n          pbVar3 = pbVar10 + 1;\n        }" { (expression_statement "pbVar10 = pbVar3;" (assignment_expression "pbVar10 = pbVar3" identifier = identifier) ;) (expression_statement "bVar2 = *pbVar10;" (assignment_expression "bVar2 = *pbVar10" identifier = (pointer_expression "*pbVar10" * identifier)) ;) (expression_statement "pbVar3 = pbVar10 + 1;" (assignment_expression "pbVar3 = pbVar10 + 1" identifier = (binary_expression "pbVar10 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(bVar2 == 0x5f)" ( (binary_expression "bVar2 == 0x5f" identifier == number_literal) )) ;) })) (expression_statement "input_line_pointer = (char *)pbVar10;" (assignment_expression "input_line_pointer = (char *)pbVar10" identifier = (cast_expression "(char *)pbVar10" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (_hex_value[bVar2] != 'c') {\n        cVar6 = _hex_value[bVar2] + cVar6;\n        input_line_pointer = (char *)(pbVar10 + 1);\n      }" if (parenthesized_expression "(_hex_value[bVar2] != 'c')" ( (binary_expression "_hex_value[bVar2] != 'c'" (subscript_expression "_hex_value[bVar2]" identifier [ identifier ]) != (char_literal "'c'" ' character ')) )) (compound_statement "{\n        cVar6 = _hex_value[bVar2] + cVar6;\n        input_line_pointer = (char *)(pbVar10 + 1);\n      }" { (expression_statement "cVar6 = _hex_value[bVar2] + cVar6;" (assignment_expression "cVar6 = _hex_value[bVar2] + cVar6" identifier = (binary_expression "_hex_value[bVar2] + cVar6" (subscript_expression "_hex_value[bVar2]" identifier [ identifier ]) + identifier)) ;) (expression_statement "input_line_pointer = (char *)(pbVar10 + 1);" (assignment_expression "input_line_pointer = (char *)(pbVar10 + 1)" identifier = (cast_expression "(char *)(pbVar10 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar10 + 1)" ( (binary_expression "pbVar10 + 1" identifier + number_literal) )))) ;) })) (if_statement "if (target_big_endian == 0) {\n        bytes[(long)(iVar4 - iVar11) + -1] = cVar6;\n      }\n      else {\n        bytes[iVar11] = cVar6;\n      }" if (parenthesized_expression "(target_big_endian == 0)" ( (binary_expression "target_big_endian == 0" identifier == number_literal) )) (compound_statement "{\n        bytes[(long)(iVar4 - iVar11) + -1] = cVar6;\n      }" { (expression_statement "bytes[(long)(iVar4 - iVar11) + -1] = cVar6;" (assignment_expression "bytes[(long)(iVar4 - iVar11) + -1] = cVar6" (subscript_expression "bytes[(long)(iVar4 - iVar11) + -1]" identifier [ (binary_expression "(long)(iVar4 - iVar11) + -1" (cast_expression "(long)(iVar4 - iVar11)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(iVar4 - iVar11)" ( (binary_expression "iVar4 - iVar11" identifier - identifier) ))) + number_literal) ]) = identifier) ;) }) (else_clause "else {\n        bytes[iVar11] = cVar6;\n      }" else (compound_statement "{\n        bytes[iVar11] = cVar6;\n      }" { (expression_statement "bytes[iVar11] = cVar6;" (assignment_expression "bytes[iVar11] = cVar6" (subscript_expression "bytes[iVar11]" identifier [ identifier ]) = identifier) ;) }))) (expression_statement "iVar11 = iVar11 + 1;" (assignment_expression "iVar11 = iVar11 + 1" identifier = (binary_expression "iVar11 + 1" identifier + number_literal)) ;) (expression_statement "bVar2 = *input_line_pointer;" (assignment_expression "bVar2 = *input_line_pointer" identifier = (pointer_expression "*input_line_pointer" * identifier)) ;) (expression_statement "uVar8 = (ulong)bVar2;" (assignment_expression "uVar8 = (ulong)bVar2" identifier = (cast_expression "(ulong)bVar2" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (expression_statement "cVar6 = _hex_value[uVar8];" (assignment_expression "cVar6 = _hex_value[uVar8]" identifier = (subscript_expression "_hex_value[uVar8]" identifier [ identifier ])) ;) })) (if_statement "if (bVar2 != 0x5f) {\n      if (iVar11 < iVar4) {\n        uVar7 = iVar4 - iVar11;\n        uVar8 = (ulong)(int)uVar7;\n        if (target_big_endian == 0) {\n          if (7 < uVar8) {\n            uVar9 = 0;\n            do {\n              pcVar5 = bytes + uVar9;\n              pcVar5[0] = '\0';\n              pcVar5[1] = '\0';\n              pcVar5[2] = '\0';\n              pcVar5[3] = '\0';\n              pcVar5[4] = '\0';\n              pcVar5[5] = '\0';\n              pcVar5[6] = '\0';\n              pcVar5[7] = '\0';\n              uVar9 = uVar9 + 8;\n            } while (uVar9 < (uVar8 & 0xfffffffffffffff8));\n            bytes = bytes + uVar9;\n          }\n          if ((uVar8 & 4) != 0) {\n            bytes[0] = '\0';\n            bytes[1] = '\0';\n            bytes[2] = '\0';\n            bytes[3] = '\0';\n            bytes = bytes + 4;\n          }\n          pcVar5 = bytes;\n          if ((uVar7 & 2) != 0) {\n            pcVar5 = bytes + 2;\n            bytes[0] = '\0';\n            bytes[1] = '\0';\n          }\n          if ((uVar7 & 1) != 0) {\n            *pcVar5 = '\0';\n            return iVar4;\n          }\n        }\n        else {\n          pcVar5 = bytes + iVar11;\n          if (uVar8 < 8) {\n            if ((uVar8 & 4) != 0) {\n              pcVar5[0] = '\0';\n              pcVar5[1] = '\0';\n              pcVar5[2] = '\0';\n              pcVar5[3] = '\0';\n              pcVar5 = pcVar5 + (uVar8 - 4);\n              pcVar5[0] = '\0';\n              pcVar5[1] = '\0';\n              pcVar5[2] = '\0';\n              pcVar5[3] = '\0';\n              return iVar4;\n            }\n            if ((uVar8 != 0) && (*pcVar5 = '\0', (uVar7 & 2) != 0)) {\n              (pcVar5 + (uVar8 - 2))[0] = '\0';\n              (pcVar5 + (uVar8 - 2))[1] = '\0';\n              return iVar4;\n            }\n          }\n          else {\n            pcVar5[0] = '\0';\n            pcVar5[1] = '\0';\n            pcVar5[2] = '\0';\n            pcVar5[3] = '\0';\n            pcVar5[4] = '\0';\n            pcVar5[5] = '\0';\n            pcVar5[6] = '\0';\n            pcVar5[7] = '\0';\n            pcVar1 = pcVar5 + (uVar8 - 8);\n            pcVar1[0] = '\0';\n            pcVar1[1] = '\0';\n            pcVar1[2] = '\0';\n            pcVar1[3] = '\0';\n            pcVar1[4] = '\0';\n            pcVar1[5] = '\0';\n            pcVar1[6] = '\0';\n            pcVar1[7] = '\0';\n            if (7 < ((ulong)(pcVar5 + (uVar8 - ((ulong)(pcVar5 + 8) & 0xfffffffffffffff8))) &\n                    0xfffffffffffffff8)) {\n              uVar9 = 0;\n              do {\n                *(undefined8 *)(((ulong)(pcVar5 + 8) & 0xfffffffffffffff8) + uVar9) = 0;\n                uVar9 = uVar9 + 8;\n              } while (uVar9 < ((ulong)(pcVar5 + (uVar8 - ((ulong)(pcVar5 + 8) & 0xfffffffffffffff8)\n                                                 )) & 0xfffffffffffffff8));\n              return iVar4;\n            }\n          }\n        }\n      }\n      return iVar4;\n    }" if (parenthesized_expression "(bVar2 != 0x5f)" ( (binary_expression "bVar2 != 0x5f" identifier != number_literal) )) (compound_statement "{\n      if (iVar11 < iVar4) {\n        uVar7 = iVar4 - iVar11;\n        uVar8 = (ulong)(int)uVar7;\n        if (target_big_endian == 0) {\n          if (7 < uVar8) {\n            uVar9 = 0;\n            do {\n              pcVar5 = bytes + uVar9;\n              pcVar5[0] = '\0';\n              pcVar5[1] = '\0';\n              pcVar5[2] = '\0';\n              pcVar5[3] = '\0';\n              pcVar5[4] = '\0';\n              pcVar5[5] = '\0';\n              pcVar5[6] = '\0';\n              pcVar5[7] = '\0';\n              uVar9 = uVar9 + 8;\n            } while (uVar9 < (uVar8 & 0xfffffffffffffff8));\n            bytes = bytes + uVar9;\n          }\n          if ((uVar8 & 4) != 0) {\n            bytes[0] = '\0';\n            bytes[1] = '\0';\n            bytes[2] = '\0';\n            bytes[3] = '\0';\n            bytes = bytes + 4;\n          }\n          pcVar5 = bytes;\n          if ((uVar7 & 2) != 0) {\n            pcVar5 = bytes + 2;\n            bytes[0] = '\0';\n            bytes[1] = '\0';\n          }\n          if ((uVar7 & 1) != 0) {\n            *pcVar5 = '\0';\n            return iVar4;\n          }\n        }\n        else {\n          pcVar5 = bytes + iVar11;\n          if (uVar8 < 8) {\n            if ((uVar8 & 4) != 0) {\n              pcVar5[0] = '\0';\n              pcVar5[1] = '\0';\n              pcVar5[2] = '\0';\n              pcVar5[3] = '\0';\n              pcVar5 = pcVar5 + (uVar8 - 4);\n              pcVar5[0] = '\0';\n              pcVar5[1] = '\0';\n              pcVar5[2] = '\0';\n              pcVar5[3] = '\0';\n              return iVar4;\n            }\n            if ((uVar8 != 0) && (*pcVar5 = '\0', (uVar7 & 2) != 0)) {\n              (pcVar5 + (uVar8 - 2))[0] = '\0';\n              (pcVar5 + (uVar8 - 2))[1] = '\0';\n              return iVar4;\n            }\n          }\n          else {\n            pcVar5[0] = '\0';\n            pcVar5[1] = '\0';\n            pcVar5[2] = '\0';\n            pcVar5[3] = '\0';\n            pcVar5[4] = '\0';\n            pcVar5[5] = '\0';\n            pcVar5[6] = '\0';\n            pcVar5[7] = '\0';\n            pcVar1 = pcVar5 + (uVar8 - 8);\n            pcVar1[0] = '\0';\n            pcVar1[1] = '\0';\n            pcVar1[2] = '\0';\n            pcVar1[3] = '\0';\n            pcVar1[4] = '\0';\n            pcVar1[5] = '\0';\n            pcVar1[6] = '\0';\n            pcVar1[7] = '\0';\n            if (7 < ((ulong)(pcVar5 + (uVar8 - ((ulong)(pcVar5 + 8) & 0xfffffffffffffff8))) &\n                    0xfffffffffffffff8)) {\n              uVar9 = 0;\n              do {\n                *(undefined8 *)(((ulong)(pcVar5 + 8) & 0xfffffffffffffff8) + uVar9) = 0;\n                uVar9 = uVar9 + 8;\n              } while (uVar9 < ((ulong)(pcVar5 + (uVar8 - ((ulong)(pcVar5 + 8) & 0xfffffffffffffff8)\n                                                 )) & 0xfffffffffffffff8));\n              return iVar4;\n            }\n          }\n        }\n      }\n      return iVar4;\n    }" { (if_statement "if (iVar11 < iVar4) {\n        uVar7 = iVar4 - iVar11;\n        uVar8 = (ulong)(int)uVar7;\n        if (target_big_endian == 0) {\n          if (7 < uVar8) {\n            uVar9 = 0;\n            do {\n              pcVar5 = bytes + uVar9;\n              pcVar5[0] = '\0';\n              pcVar5[1] = '\0';\n              pcVar5[2] = '\0';\n              pcVar5[3] = '\0';\n              pcVar5[4] = '\0';\n              pcVar5[5] = '\0';\n              pcVar5[6] = '\0';\n              pcVar5[7] = '\0';\n              uVar9 = uVar9 + 8;\n            } while (uVar9 < (uVar8 & 0xfffffffffffffff8));\n            bytes = bytes + uVar9;\n          }\n          if ((uVar8 & 4) != 0) {\n            bytes[0] = '\0';\n            bytes[1] = '\0';\n            bytes[2] = '\0';\n            bytes[3] = '\0';\n            bytes = bytes + 4;\n          }\n          pcVar5 = bytes;\n          if ((uVar7 & 2) != 0) {\n            pcVar5 = bytes + 2;\n            bytes[0] = '\0';\n            bytes[1] = '\0';\n          }\n          if ((uVar7 & 1) != 0) {\n            *pcVar5 = '\0';\n            return iVar4;\n          }\n        }\n        else {\n          pcVar5 = bytes + iVar11;\n          if (uVar8 < 8) {\n            if ((uVar8 & 4) != 0) {\n              pcVar5[0] = '\0';\n              pcVar5[1] = '\0';\n              pcVar5[2] = '\0';\n              pcVar5[3] = '\0';\n              pcVar5 = pcVar5 + (uVar8 - 4);\n              pcVar5[0] = '\0';\n              pcVar5[1] = '\0';\n              pcVar5[2] = '\0';\n              pcVar5[3] = '\0';\n              return iVar4;\n            }\n            if ((uVar8 != 0) && (*pcVar5 = '\0', (uVar7 & 2) != 0)) {\n              (pcVar5 + (uVar8 - 2))[0] = '\0';\n              (pcVar5 + (uVar8 - 2))[1] = '\0';\n              return iVar4;\n            }\n          }\n          else {\n            pcVar5[0] = '\0';\n            pcVar5[1] = '\0';\n            pcVar5[2] = '\0';\n            pcVar5[3] = '\0';\n            pcVar5[4] = '\0';\n            pcVar5[5] = '\0';\n            pcVar5[6] = '\0';\n            pcVar5[7] = '\0';\n            pcVar1 = pcVar5 + (uVar8 - 8);\n            pcVar1[0] = '\0';\n            pcVar1[1] = '\0';\n            pcVar1[2] = '\0';\n            pcVar1[3] = '\0';\n            pcVar1[4] = '\0';\n            pcVar1[5] = '\0';\n            pcVar1[6] = '\0';\n            pcVar1[7] = '\0';\n            if (7 < ((ulong)(pcVar5 + (uVar8 - ((ulong)(pcVar5 + 8) & 0xfffffffffffffff8))) &\n                    0xfffffffffffffff8)) {\n              uVar9 = 0;\n              do {\n                *(undefined8 *)(((ulong)(pcVar5 + 8) & 0xfffffffffffffff8) + uVar9) = 0;\n                uVar9 = uVar9 + 8;\n              } while (uVar9 < ((ulong)(pcVar5 + (uVar8 - ((ulong)(pcVar5 + 8) & 0xfffffffffffffff8)\n                                                 )) & 0xfffffffffffffff8));\n              return iVar4;\n            }\n          }\n        }\n      }" if (parenthesized_expression "(iVar11 < iVar4)" ( (binary_expression "iVar11 < iVar4" identifier < identifier) )) (compound_statement "{\n        uVar7 = iVar4 - iVar11;\n        uVar8 = (ulong)(int)uVar7;\n        if (target_big_endian == 0) {\n          if (7 < uVar8) {\n            uVar9 = 0;\n            do {\n              pcVar5 = bytes + uVar9;\n              pcVar5[0] = '\0';\n              pcVar5[1] = '\0';\n              pcVar5[2] = '\0';\n              pcVar5[3] = '\0';\n              pcVar5[4] = '\0';\n              pcVar5[5] = '\0';\n              pcVar5[6] = '\0';\n              pcVar5[7] = '\0';\n              uVar9 = uVar9 + 8;\n            } while (uVar9 < (uVar8 & 0xfffffffffffffff8));\n            bytes = bytes + uVar9;\n          }\n          if ((uVar8 & 4) != 0) {\n            bytes[0] = '\0';\n            bytes[1] = '\0';\n            bytes[2] = '\0';\n            bytes[3] = '\0';\n            bytes = bytes + 4;\n          }\n          pcVar5 = bytes;\n          if ((uVar7 & 2) != 0) {\n            pcVar5 = bytes + 2;\n            bytes[0] = '\0';\n            bytes[1] = '\0';\n          }\n          if ((uVar7 & 1) != 0) {\n            *pcVar5 = '\0';\n            return iVar4;\n          }\n        }\n        else {\n          pcVar5 = bytes + iVar11;\n          if (uVar8 < 8) {\n            if ((uVar8 & 4) != 0) {\n              pcVar5[0] = '\0';\n              pcVar5[1] = '\0';\n              pcVar5[2] = '\0';\n              pcVar5[3] = '\0';\n              pcVar5 = pcVar5 + (uVar8 - 4);\n              pcVar5[0] = '\0';\n              pcVar5[1] = '\0';\n              pcVar5[2] = '\0';\n              pcVar5[3] = '\0';\n              return iVar4;\n            }\n            if ((uVar8 != 0) && (*pcVar5 = '\0', (uVar7 & 2) != 0)) {\n              (pcVar5 + (uVar8 - 2))[0] = '\0';\n              (pcVar5 + (uVar8 - 2))[1] = '\0';\n              return iVar4;\n            }\n          }\n          else {\n            pcVar5[0] = '\0';\n            pcVar5[1] = '\0';\n            pcVar5[2] = '\0';\n            pcVar5[3] = '\0';\n            pcVar5[4] = '\0';\n            pcVar5[5] = '\0';\n            pcVar5[6] = '\0';\n            pcVar5[7] = '\0';\n            pcVar1 = pcVar5 + (uVar8 - 8);\n            pcVar1[0] = '\0';\n            pcVar1[1] = '\0';\n            pcVar1[2] = '\0';\n            pcVar1[3] = '\0';\n            pcVar1[4] = '\0';\n            pcVar1[5] = '\0';\n            pcVar1[6] = '\0';\n            pcVar1[7] = '\0';\n            if (7 < ((ulong)(pcVar5 + (uVar8 - ((ulong)(pcVar5 + 8) & 0xfffffffffffffff8))) &\n                    0xfffffffffffffff8)) {\n              uVar9 = 0;\n              do {\n                *(undefined8 *)(((ulong)(pcVar5 + 8) & 0xfffffffffffffff8) + uVar9) = 0;\n                uVar9 = uVar9 + 8;\n              } while (uVar9 < ((ulong)(pcVar5 + (uVar8 - ((ulong)(pcVar5 + 8) & 0xfffffffffffffff8)\n                                                 )) & 0xfffffffffffffff8));\n              return iVar4;\n            }\n          }\n        }\n      }" { (expression_statement "uVar7 = iVar4 - iVar11;" (assignment_expression "uVar7 = iVar4 - iVar11" identifier = (binary_expression "iVar4 - iVar11" identifier - identifier)) ;) (expression_statement "uVar8 = (ulong)(int)uVar7;" (assignment_expression "uVar8 = (ulong)(int)uVar7" identifier = (cast_expression "(ulong)(int)uVar7" ( (type_descriptor "ulong" type_identifier) ) (cast_expression "(int)uVar7" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if (target_big_endian == 0) {\n          if (7 < uVar8) {\n            uVar9 = 0;\n            do {\n              pcVar5 = bytes + uVar9;\n              pcVar5[0] = '\0';\n              pcVar5[1] = '\0';\n              pcVar5[2] = '\0';\n              pcVar5[3] = '\0';\n              pcVar5[4] = '\0';\n              pcVar5[5] = '\0';\n              pcVar5[6] = '\0';\n              pcVar5[7] = '\0';\n              uVar9 = uVar9 + 8;\n            } while (uVar9 < (uVar8 & 0xfffffffffffffff8));\n            bytes = bytes + uVar9;\n          }\n          if ((uVar8 & 4) != 0) {\n            bytes[0] = '\0';\n            bytes[1] = '\0';\n            bytes[2] = '\0';\n            bytes[3] = '\0';\n            bytes = bytes + 4;\n          }\n          pcVar5 = bytes;\n          if ((uVar7 & 2) != 0) {\n            pcVar5 = bytes + 2;\n            bytes[0] = '\0';\n            bytes[1] = '\0';\n          }\n          if ((uVar7 & 1) != 0) {\n            *pcVar5 = '\0';\n            return iVar4;\n          }\n        }\n        else {\n          pcVar5 = bytes + iVar11;\n          if (uVar8 < 8) {\n            if ((uVar8 & 4) != 0) {\n              pcVar5[0] = '\0';\n              pcVar5[1] = '\0';\n              pcVar5[2] = '\0';\n              pcVar5[3] = '\0';\n              pcVar5 = pcVar5 + (uVar8 - 4);\n              pcVar5[0] = '\0';\n              pcVar5[1] = '\0';\n              pcVar5[2] = '\0';\n              pcVar5[3] = '\0';\n              return iVar4;\n            }\n            if ((uVar8 != 0) && (*pcVar5 = '\0', (uVar7 & 2) != 0)) {\n              (pcVar5 + (uVar8 - 2))[0] = '\0';\n              (pcVar5 + (uVar8 - 2))[1] = '\0';\n              return iVar4;\n            }\n          }\n          else {\n            pcVar5[0] = '\0';\n            pcVar5[1] = '\0';\n            pcVar5[2] = '\0';\n            pcVar5[3] = '\0';\n            pcVar5[4] = '\0';\n            pcVar5[5] = '\0';\n            pcVar5[6] = '\0';\n            pcVar5[7] = '\0';\n            pcVar1 = pcVar5 + (uVar8 - 8);\n            pcVar1[0] = '\0';\n            pcVar1[1] = '\0';\n            pcVar1[2] = '\0';\n            pcVar1[3] = '\0';\n            pcVar1[4] = '\0';\n            pcVar1[5] = '\0';\n            pcVar1[6] = '\0';\n            pcVar1[7] = '\0';\n            if (7 < ((ulong)(pcVar5 + (uVar8 - ((ulong)(pcVar5 + 8) & 0xfffffffffffffff8))) &\n                    0xfffffffffffffff8)) {\n              uVar9 = 0;\n              do {\n                *(undefined8 *)(((ulong)(pcVar5 + 8) & 0xfffffffffffffff8) + uVar9) = 0;\n                uVar9 = uVar9 + 8;\n              } while (uVar9 < ((ulong)(pcVar5 + (uVar8 - ((ulong)(pcVar5 + 8) & 0xfffffffffffffff8)\n                                                 )) & 0xfffffffffffffff8));\n              return iVar4;\n            }\n          }\n        }" if (parenthesized_expression "(target_big_endian == 0)" ( (binary_expression "target_big_endian == 0" identifier == number_literal) )) (compound_statement "{\n          if (7 < uVar8) {\n            uVar9 = 0;\n            do {\n              pcVar5 = bytes + uVar9;\n              pcVar5[0] = '\0';\n              pcVar5[1] = '\0';\n              pcVar5[2] = '\0';\n              pcVar5[3] = '\0';\n              pcVar5[4] = '\0';\n              pcVar5[5] = '\0';\n              pcVar5[6] = '\0';\n              pcVar5[7] = '\0';\n              uVar9 = uVar9 + 8;\n            } while (uVar9 < (uVar8 & 0xfffffffffffffff8));\n            bytes = bytes + uVar9;\n          }\n          if ((uVar8 & 4) != 0) {\n            bytes[0] = '\0';\n            bytes[1] = '\0';\n            bytes[2] = '\0';\n            bytes[3] = '\0';\n            bytes = bytes + 4;\n          }\n          pcVar5 = bytes;\n          if ((uVar7 & 2) != 0) {\n            pcVar5 = bytes + 2;\n            bytes[0] = '\0';\n            bytes[1] = '\0';\n          }\n          if ((uVar7 & 1) != 0) {\n            *pcVar5 = '\0';\n            return iVar4;\n          }\n        }" { (if_statement "if (7 < uVar8) {\n            uVar9 = 0;\n            do {\n              pcVar5 = bytes + uVar9;\n              pcVar5[0] = '\0';\n              pcVar5[1] = '\0';\n              pcVar5[2] = '\0';\n              pcVar5[3] = '\0';\n              pcVar5[4] = '\0';\n              pcVar5[5] = '\0';\n              pcVar5[6] = '\0';\n              pcVar5[7] = '\0';\n              uVar9 = uVar9 + 8;\n            } while (uVar9 < (uVar8 & 0xfffffffffffffff8));\n            bytes = bytes + uVar9;\n          }" if (parenthesized_expression "(7 < uVar8)" ( (binary_expression "7 < uVar8" number_literal < identifier) )) (compound_statement "{\n            uVar9 = 0;\n            do {\n              pcVar5 = bytes + uVar9;\n              pcVar5[0] = '\0';\n              pcVar5[1] = '\0';\n              pcVar5[2] = '\0';\n              pcVar5[3] = '\0';\n              pcVar5[4] = '\0';\n              pcVar5[5] = '\0';\n              pcVar5[6] = '\0';\n              pcVar5[7] = '\0';\n              uVar9 = uVar9 + 8;\n            } while (uVar9 < (uVar8 & 0xfffffffffffffff8));\n            bytes = bytes + uVar9;\n          }" { (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" identifier = number_literal) ;) (do_statement "do {\n              pcVar5 = bytes + uVar9;\n              pcVar5[0] = '\0';\n              pcVar5[1] = '\0';\n              pcVar5[2] = '\0';\n              pcVar5[3] = '\0';\n              pcVar5[4] = '\0';\n              pcVar5[5] = '\0';\n              pcVar5[6] = '\0';\n              pcVar5[7] = '\0';\n              uVar9 = uVar9 + 8;\n            } while (uVar9 < (uVar8 & 0xfffffffffffffff8));" do (compound_statement "{\n              pcVar5 = bytes + uVar9;\n              pcVar5[0] = '\0';\n              pcVar5[1] = '\0';\n              pcVar5[2] = '\0';\n              pcVar5[3] = '\0';\n              pcVar5[4] = '\0';\n              pcVar5[5] = '\0';\n              pcVar5[6] = '\0';\n              pcVar5[7] = '\0';\n              uVar9 = uVar9 + 8;\n            }" { (expression_statement "pcVar5 = bytes + uVar9;" (assignment_expression "pcVar5 = bytes + uVar9" identifier = (binary_expression "bytes + uVar9" identifier + identifier)) ;) (expression_statement "pcVar5[0] = '\0';" (assignment_expression "pcVar5[0] = '\0'" (subscript_expression "pcVar5[0]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pcVar5[1] = '\0';" (assignment_expression "pcVar5[1] = '\0'" (subscript_expression "pcVar5[1]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pcVar5[2] = '\0';" (assignment_expression "pcVar5[2] = '\0'" (subscript_expression "pcVar5[2]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pcVar5[3] = '\0';" (assignment_expression "pcVar5[3] = '\0'" (subscript_expression "pcVar5[3]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pcVar5[4] = '\0';" (assignment_expression "pcVar5[4] = '\0'" (subscript_expression "pcVar5[4]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pcVar5[5] = '\0';" (assignment_expression "pcVar5[5] = '\0'" (subscript_expression "pcVar5[5]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pcVar5[6] = '\0';" (assignment_expression "pcVar5[6] = '\0'" (subscript_expression "pcVar5[6]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pcVar5[7] = '\0';" (assignment_expression "pcVar5[7] = '\0'" (subscript_expression "pcVar5[7]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "uVar9 = uVar9 + 8;" (assignment_expression "uVar9 = uVar9 + 8" identifier = (binary_expression "uVar9 + 8" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar9 < (uVar8 & 0xfffffffffffffff8))" ( (binary_expression "uVar9 < (uVar8 & 0xfffffffffffffff8)" identifier < (parenthesized_expression "(uVar8 & 0xfffffffffffffff8)" ( (binary_expression "uVar8 & 0xfffffffffffffff8" identifier & number_literal) ))) )) ;) (expression_statement "bytes = bytes + uVar9;" (assignment_expression "bytes = bytes + uVar9" identifier = (binary_expression "bytes + uVar9" identifier + identifier)) ;) })) (if_statement "if ((uVar8 & 4) != 0) {\n            bytes[0] = '\0';\n            bytes[1] = '\0';\n            bytes[2] = '\0';\n            bytes[3] = '\0';\n            bytes = bytes + 4;\n          }" if (parenthesized_expression "((uVar8 & 4) != 0)" ( (binary_expression "(uVar8 & 4) != 0" (parenthesized_expression "(uVar8 & 4)" ( (binary_expression "uVar8 & 4" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n            bytes[0] = '\0';\n            bytes[1] = '\0';\n            bytes[2] = '\0';\n            bytes[3] = '\0';\n            bytes = bytes + 4;\n          }" { (expression_statement "bytes[0] = '\0';" (assignment_expression "bytes[0] = '\0'" (subscript_expression "bytes[0]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "bytes[1] = '\0';" (assignment_expression "bytes[1] = '\0'" (subscript_expression "bytes[1]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "bytes[2] = '\0';" (assignment_expression "bytes[2] = '\0'" (subscript_expression "bytes[2]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "bytes[3] = '\0';" (assignment_expression "bytes[3] = '\0'" (subscript_expression "bytes[3]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "bytes = bytes + 4;" (assignment_expression "bytes = bytes + 4" identifier = (binary_expression "bytes + 4" identifier + number_literal)) ;) })) (expression_statement "pcVar5 = bytes;" (assignment_expression "pcVar5 = bytes" identifier = identifier) ;) (if_statement "if ((uVar7 & 2) != 0) {\n            pcVar5 = bytes + 2;\n            bytes[0] = '\0';\n            bytes[1] = '\0';\n          }" if (parenthesized_expression "((uVar7 & 2) != 0)" ( (binary_expression "(uVar7 & 2) != 0" (parenthesized_expression "(uVar7 & 2)" ( (binary_expression "uVar7 & 2" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n            pcVar5 = bytes + 2;\n            bytes[0] = '\0';\n            bytes[1] = '\0';\n          }" { (expression_statement "pcVar5 = bytes + 2;" (assignment_expression "pcVar5 = bytes + 2" identifier = (binary_expression "bytes + 2" identifier + number_literal)) ;) (expression_statement "bytes[0] = '\0';" (assignment_expression "bytes[0] = '\0'" (subscript_expression "bytes[0]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "bytes[1] = '\0';" (assignment_expression "bytes[1] = '\0'" (subscript_expression "bytes[1]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) })) (if_statement "if ((uVar7 & 1) != 0) {\n            *pcVar5 = '\0';\n            return iVar4;\n          }" if (parenthesized_expression "((uVar7 & 1) != 0)" ( (binary_expression "(uVar7 & 1) != 0" (parenthesized_expression "(uVar7 & 1)" ( (binary_expression "uVar7 & 1" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n            *pcVar5 = '\0';\n            return iVar4;\n          }" { (expression_statement "*pcVar5 = '\0';" (assignment_expression "*pcVar5 = '\0'" (pointer_expression "*pcVar5" * identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) (return_statement "return iVar4;" return identifier ;) })) }) (else_clause "else {\n          pcVar5 = bytes + iVar11;\n          if (uVar8 < 8) {\n            if ((uVar8 & 4) != 0) {\n              pcVar5[0] = '\0';\n              pcVar5[1] = '\0';\n              pcVar5[2] = '\0';\n              pcVar5[3] = '\0';\n              pcVar5 = pcVar5 + (uVar8 - 4);\n              pcVar5[0] = '\0';\n              pcVar5[1] = '\0';\n              pcVar5[2] = '\0';\n              pcVar5[3] = '\0';\n              return iVar4;\n            }\n            if ((uVar8 != 0) && (*pcVar5 = '\0', (uVar7 & 2) != 0)) {\n              (pcVar5 + (uVar8 - 2))[0] = '\0';\n              (pcVar5 + (uVar8 - 2))[1] = '\0';\n              return iVar4;\n            }\n          }\n          else {\n            pcVar5[0] = '\0';\n            pcVar5[1] = '\0';\n            pcVar5[2] = '\0';\n            pcVar5[3] = '\0';\n            pcVar5[4] = '\0';\n            pcVar5[5] = '\0';\n            pcVar5[6] = '\0';\n            pcVar5[7] = '\0';\n            pcVar1 = pcVar5 + (uVar8 - 8);\n            pcVar1[0] = '\0';\n            pcVar1[1] = '\0';\n            pcVar1[2] = '\0';\n            pcVar1[3] = '\0';\n            pcVar1[4] = '\0';\n            pcVar1[5] = '\0';\n            pcVar1[6] = '\0';\n            pcVar1[7] = '\0';\n            if (7 < ((ulong)(pcVar5 + (uVar8 - ((ulong)(pcVar5 + 8) & 0xfffffffffffffff8))) &\n                    0xfffffffffffffff8)) {\n              uVar9 = 0;\n              do {\n                *(undefined8 *)(((ulong)(pcVar5 + 8) & 0xfffffffffffffff8) + uVar9) = 0;\n                uVar9 = uVar9 + 8;\n              } while (uVar9 < ((ulong)(pcVar5 + (uVar8 - ((ulong)(pcVar5 + 8) & 0xfffffffffffffff8)\n                                                 )) & 0xfffffffffffffff8));\n              return iVar4;\n            }\n          }\n        }" else (compound_statement "{\n          pcVar5 = bytes + iVar11;\n          if (uVar8 < 8) {\n            if ((uVar8 & 4) != 0) {\n              pcVar5[0] = '\0';\n              pcVar5[1] = '\0';\n              pcVar5[2] = '\0';\n              pcVar5[3] = '\0';\n              pcVar5 = pcVar5 + (uVar8 - 4);\n              pcVar5[0] = '\0';\n              pcVar5[1] = '\0';\n              pcVar5[2] = '\0';\n              pcVar5[3] = '\0';\n              return iVar4;\n            }\n            if ((uVar8 != 0) && (*pcVar5 = '\0', (uVar7 & 2) != 0)) {\n              (pcVar5 + (uVar8 - 2))[0] = '\0';\n              (pcVar5 + (uVar8 - 2))[1] = '\0';\n              return iVar4;\n            }\n          }\n          else {\n            pcVar5[0] = '\0';\n            pcVar5[1] = '\0';\n            pcVar5[2] = '\0';\n            pcVar5[3] = '\0';\n            pcVar5[4] = '\0';\n            pcVar5[5] = '\0';\n            pcVar5[6] = '\0';\n            pcVar5[7] = '\0';\n            pcVar1 = pcVar5 + (uVar8 - 8);\n            pcVar1[0] = '\0';\n            pcVar1[1] = '\0';\n            pcVar1[2] = '\0';\n            pcVar1[3] = '\0';\n            pcVar1[4] = '\0';\n            pcVar1[5] = '\0';\n            pcVar1[6] = '\0';\n            pcVar1[7] = '\0';\n            if (7 < ((ulong)(pcVar5 + (uVar8 - ((ulong)(pcVar5 + 8) & 0xfffffffffffffff8))) &\n                    0xfffffffffffffff8)) {\n              uVar9 = 0;\n              do {\n                *(undefined8 *)(((ulong)(pcVar5 + 8) & 0xfffffffffffffff8) + uVar9) = 0;\n                uVar9 = uVar9 + 8;\n              } while (uVar9 < ((ulong)(pcVar5 + (uVar8 - ((ulong)(pcVar5 + 8) & 0xfffffffffffffff8)\n                                                 )) & 0xfffffffffffffff8));\n              return iVar4;\n            }\n          }\n        }" { (expression_statement "pcVar5 = bytes + iVar11;" (assignment_expression "pcVar5 = bytes + iVar11" identifier = (binary_expression "bytes + iVar11" identifier + identifier)) ;) (if_statement "if (uVar8 < 8) {\n            if ((uVar8 & 4) != 0) {\n              pcVar5[0] = '\0';\n              pcVar5[1] = '\0';\n              pcVar5[2] = '\0';\n              pcVar5[3] = '\0';\n              pcVar5 = pcVar5 + (uVar8 - 4);\n              pcVar5[0] = '\0';\n              pcVar5[1] = '\0';\n              pcVar5[2] = '\0';\n              pcVar5[3] = '\0';\n              return iVar4;\n            }\n            if ((uVar8 != 0) && (*pcVar5 = '\0', (uVar7 & 2) != 0)) {\n              (pcVar5 + (uVar8 - 2))[0] = '\0';\n              (pcVar5 + (uVar8 - 2))[1] = '\0';\n              return iVar4;\n            }\n          }\n          else {\n            pcVar5[0] = '\0';\n            pcVar5[1] = '\0';\n            pcVar5[2] = '\0';\n            pcVar5[3] = '\0';\n            pcVar5[4] = '\0';\n            pcVar5[5] = '\0';\n            pcVar5[6] = '\0';\n            pcVar5[7] = '\0';\n            pcVar1 = pcVar5 + (uVar8 - 8);\n            pcVar1[0] = '\0';\n            pcVar1[1] = '\0';\n            pcVar1[2] = '\0';\n            pcVar1[3] = '\0';\n            pcVar1[4] = '\0';\n            pcVar1[5] = '\0';\n            pcVar1[6] = '\0';\n            pcVar1[7] = '\0';\n            if (7 < ((ulong)(pcVar5 + (uVar8 - ((ulong)(pcVar5 + 8) & 0xfffffffffffffff8))) &\n                    0xfffffffffffffff8)) {\n              uVar9 = 0;\n              do {\n                *(undefined8 *)(((ulong)(pcVar5 + 8) & 0xfffffffffffffff8) + uVar9) = 0;\n                uVar9 = uVar9 + 8;\n              } while (uVar9 < ((ulong)(pcVar5 + (uVar8 - ((ulong)(pcVar5 + 8) & 0xfffffffffffffff8)\n                                                 )) & 0xfffffffffffffff8));\n              return iVar4;\n            }\n          }" if (parenthesized_expression "(uVar8 < 8)" ( (binary_expression "uVar8 < 8" identifier < number_literal) )) (compound_statement "{\n            if ((uVar8 & 4) != 0) {\n              pcVar5[0] = '\0';\n              pcVar5[1] = '\0';\n              pcVar5[2] = '\0';\n              pcVar5[3] = '\0';\n              pcVar5 = pcVar5 + (uVar8 - 4);\n              pcVar5[0] = '\0';\n              pcVar5[1] = '\0';\n              pcVar5[2] = '\0';\n              pcVar5[3] = '\0';\n              return iVar4;\n            }\n            if ((uVar8 != 0) && (*pcVar5 = '\0', (uVar7 & 2) != 0)) {\n              (pcVar5 + (uVar8 - 2))[0] = '\0';\n              (pcVar5 + (uVar8 - 2))[1] = '\0';\n              return iVar4;\n            }\n          }" { (if_statement "if ((uVar8 & 4) != 0) {\n              pcVar5[0] = '\0';\n              pcVar5[1] = '\0';\n              pcVar5[2] = '\0';\n              pcVar5[3] = '\0';\n              pcVar5 = pcVar5 + (uVar8 - 4);\n              pcVar5[0] = '\0';\n              pcVar5[1] = '\0';\n              pcVar5[2] = '\0';\n              pcVar5[3] = '\0';\n              return iVar4;\n            }" if (parenthesized_expression "((uVar8 & 4) != 0)" ( (binary_expression "(uVar8 & 4) != 0" (parenthesized_expression "(uVar8 & 4)" ( (binary_expression "uVar8 & 4" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n              pcVar5[0] = '\0';\n              pcVar5[1] = '\0';\n              pcVar5[2] = '\0';\n              pcVar5[3] = '\0';\n              pcVar5 = pcVar5 + (uVar8 - 4);\n              pcVar5[0] = '\0';\n              pcVar5[1] = '\0';\n              pcVar5[2] = '\0';\n              pcVar5[3] = '\0';\n              return iVar4;\n            }" { (expression_statement "pcVar5[0] = '\0';" (assignment_expression "pcVar5[0] = '\0'" (subscript_expression "pcVar5[0]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pcVar5[1] = '\0';" (assignment_expression "pcVar5[1] = '\0'" (subscript_expression "pcVar5[1]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pcVar5[2] = '\0';" (assignment_expression "pcVar5[2] = '\0'" (subscript_expression "pcVar5[2]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pcVar5[3] = '\0';" (assignment_expression "pcVar5[3] = '\0'" (subscript_expression "pcVar5[3]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pcVar5 = pcVar5 + (uVar8 - 4);" (assignment_expression "pcVar5 = pcVar5 + (uVar8 - 4)" identifier = (binary_expression "pcVar5 + (uVar8 - 4)" identifier + (parenthesized_expression "(uVar8 - 4)" ( (binary_expression "uVar8 - 4" identifier - number_literal) )))) ;) (expression_statement "pcVar5[0] = '\0';" (assignment_expression "pcVar5[0] = '\0'" (subscript_expression "pcVar5[0]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pcVar5[1] = '\0';" (assignment_expression "pcVar5[1] = '\0'" (subscript_expression "pcVar5[1]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pcVar5[2] = '\0';" (assignment_expression "pcVar5[2] = '\0'" (subscript_expression "pcVar5[2]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pcVar5[3] = '\0';" (assignment_expression "pcVar5[3] = '\0'" (subscript_expression "pcVar5[3]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (return_statement "return iVar4;" return identifier ;) })) (if_statement "if ((uVar8 != 0) && (*pcVar5 = '\0', (uVar7 & 2) != 0)) {\n              (pcVar5 + (uVar8 - 2))[0] = '\0';\n              (pcVar5 + (uVar8 - 2))[1] = '\0';\n              return iVar4;\n            }" if (parenthesized_expression "((uVar8 != 0) && (*pcVar5 = '\0', (uVar7 & 2) != 0))" ( (binary_expression "(uVar8 != 0) && (*pcVar5 = '\0', (uVar7 & 2) != 0)" (parenthesized_expression "(uVar8 != 0)" ( (binary_expression "uVar8 != 0" identifier != number_literal) )) && (parenthesized_expression "(*pcVar5 = '\0', (uVar7 & 2) != 0)" ( (comma_expression "*pcVar5 = '\0', (uVar7 & 2) != 0" (assignment_expression "*pcVar5 = '\0'" (pointer_expression "*pcVar5" * identifier) = (char_literal "'\0'" ' escape_sequence ')) , (binary_expression "(uVar7 & 2) != 0" (parenthesized_expression "(uVar7 & 2)" ( (binary_expression "uVar7 & 2" identifier & number_literal) )) != number_literal)) ))) )) (compound_statement "{\n              (pcVar5 + (uVar8 - 2))[0] = '\0';\n              (pcVar5 + (uVar8 - 2))[1] = '\0';\n              return iVar4;\n            }" { (expression_statement "(pcVar5 + (uVar8 - 2))[0] = '\0';" (assignment_expression "(pcVar5 + (uVar8 - 2))[0] = '\0'" (subscript_expression "(pcVar5 + (uVar8 - 2))[0]" (parenthesized_expression "(pcVar5 + (uVar8 - 2))" ( (binary_expression "pcVar5 + (uVar8 - 2)" identifier + (parenthesized_expression "(uVar8 - 2)" ( (binary_expression "uVar8 - 2" identifier - number_literal) ))) )) [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "(pcVar5 + (uVar8 - 2))[1] = '\0';" (assignment_expression "(pcVar5 + (uVar8 - 2))[1] = '\0'" (subscript_expression "(pcVar5 + (uVar8 - 2))[1]" (parenthesized_expression "(pcVar5 + (uVar8 - 2))" ( (binary_expression "pcVar5 + (uVar8 - 2)" identifier + (parenthesized_expression "(uVar8 - 2)" ( (binary_expression "uVar8 - 2" identifier - number_literal) ))) )) [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (return_statement "return iVar4;" return identifier ;) })) }) (else_clause "else {\n            pcVar5[0] = '\0';\n            pcVar5[1] = '\0';\n            pcVar5[2] = '\0';\n            pcVar5[3] = '\0';\n            pcVar5[4] = '\0';\n            pcVar5[5] = '\0';\n            pcVar5[6] = '\0';\n            pcVar5[7] = '\0';\n            pcVar1 = pcVar5 + (uVar8 - 8);\n            pcVar1[0] = '\0';\n            pcVar1[1] = '\0';\n            pcVar1[2] = '\0';\n            pcVar1[3] = '\0';\n            pcVar1[4] = '\0';\n            pcVar1[5] = '\0';\n            pcVar1[6] = '\0';\n            pcVar1[7] = '\0';\n            if (7 < ((ulong)(pcVar5 + (uVar8 - ((ulong)(pcVar5 + 8) & 0xfffffffffffffff8))) &\n                    0xfffffffffffffff8)) {\n              uVar9 = 0;\n              do {\n                *(undefined8 *)(((ulong)(pcVar5 + 8) & 0xfffffffffffffff8) + uVar9) = 0;\n                uVar9 = uVar9 + 8;\n              } while (uVar9 < ((ulong)(pcVar5 + (uVar8 - ((ulong)(pcVar5 + 8) & 0xfffffffffffffff8)\n                                                 )) & 0xfffffffffffffff8));\n              return iVar4;\n            }\n          }" else (compound_statement "{\n            pcVar5[0] = '\0';\n            pcVar5[1] = '\0';\n            pcVar5[2] = '\0';\n            pcVar5[3] = '\0';\n            pcVar5[4] = '\0';\n            pcVar5[5] = '\0';\n            pcVar5[6] = '\0';\n            pcVar5[7] = '\0';\n            pcVar1 = pcVar5 + (uVar8 - 8);\n            pcVar1[0] = '\0';\n            pcVar1[1] = '\0';\n            pcVar1[2] = '\0';\n            pcVar1[3] = '\0';\n            pcVar1[4] = '\0';\n            pcVar1[5] = '\0';\n            pcVar1[6] = '\0';\n            pcVar1[7] = '\0';\n            if (7 < ((ulong)(pcVar5 + (uVar8 - ((ulong)(pcVar5 + 8) & 0xfffffffffffffff8))) &\n                    0xfffffffffffffff8)) {\n              uVar9 = 0;\n              do {\n                *(undefined8 *)(((ulong)(pcVar5 + 8) & 0xfffffffffffffff8) + uVar9) = 0;\n                uVar9 = uVar9 + 8;\n              } while (uVar9 < ((ulong)(pcVar5 + (uVar8 - ((ulong)(pcVar5 + 8) & 0xfffffffffffffff8)\n                                                 )) & 0xfffffffffffffff8));\n              return iVar4;\n            }\n          }" { (expression_statement "pcVar5[0] = '\0';" (assignment_expression "pcVar5[0] = '\0'" (subscript_expression "pcVar5[0]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pcVar5[1] = '\0';" (assignment_expression "pcVar5[1] = '\0'" (subscript_expression "pcVar5[1]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pcVar5[2] = '\0';" (assignment_expression "pcVar5[2] = '\0'" (subscript_expression "pcVar5[2]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pcVar5[3] = '\0';" (assignment_expression "pcVar5[3] = '\0'" (subscript_expression "pcVar5[3]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pcVar5[4] = '\0';" (assignment_expression "pcVar5[4] = '\0'" (subscript_expression "pcVar5[4]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pcVar5[5] = '\0';" (assignment_expression "pcVar5[5] = '\0'" (subscript_expression "pcVar5[5]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pcVar5[6] = '\0';" (assignment_expression "pcVar5[6] = '\0'" (subscript_expression "pcVar5[6]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pcVar5[7] = '\0';" (assignment_expression "pcVar5[7] = '\0'" (subscript_expression "pcVar5[7]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pcVar1 = pcVar5 + (uVar8 - 8);" (assignment_expression "pcVar1 = pcVar5 + (uVar8 - 8)" identifier = (binary_expression "pcVar5 + (uVar8 - 8)" identifier + (parenthesized_expression "(uVar8 - 8)" ( (binary_expression "uVar8 - 8" identifier - number_literal) )))) ;) (expression_statement "pcVar1[0] = '\0';" (assignment_expression "pcVar1[0] = '\0'" (subscript_expression "pcVar1[0]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pcVar1[1] = '\0';" (assignment_expression "pcVar1[1] = '\0'" (subscript_expression "pcVar1[1]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pcVar1[2] = '\0';" (assignment_expression "pcVar1[2] = '\0'" (subscript_expression "pcVar1[2]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pcVar1[3] = '\0';" (assignment_expression "pcVar1[3] = '\0'" (subscript_expression "pcVar1[3]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pcVar1[4] = '\0';" (assignment_expression "pcVar1[4] = '\0'" (subscript_expression "pcVar1[4]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pcVar1[5] = '\0';" (assignment_expression "pcVar1[5] = '\0'" (subscript_expression "pcVar1[5]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pcVar1[6] = '\0';" (assignment_expression "pcVar1[6] = '\0'" (subscript_expression "pcVar1[6]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pcVar1[7] = '\0';" (assignment_expression "pcVar1[7] = '\0'" (subscript_expression "pcVar1[7]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (if_statement "if (7 < ((ulong)(pcVar5 + (uVar8 - ((ulong)(pcVar5 + 8) & 0xfffffffffffffff8))) &\n                    0xfffffffffffffff8)) {\n              uVar9 = 0;\n              do {\n                *(undefined8 *)(((ulong)(pcVar5 + 8) & 0xfffffffffffffff8) + uVar9) = 0;\n                uVar9 = uVar9 + 8;\n              } while (uVar9 < ((ulong)(pcVar5 + (uVar8 - ((ulong)(pcVar5 + 8) & 0xfffffffffffffff8)\n                                                 )) & 0xfffffffffffffff8));\n              return iVar4;\n            }" if (parenthesized_expression "(7 < ((ulong)(pcVar5 + (uVar8 - ((ulong)(pcVar5 + 8) & 0xfffffffffffffff8))) &\n                    0xfffffffffffffff8))" ( (binary_expression "7 < ((ulong)(pcVar5 + (uVar8 - ((ulong)(pcVar5 + 8) & 0xfffffffffffffff8))) &\n                    0xfffffffffffffff8)" number_literal < (parenthesized_expression "((ulong)(pcVar5 + (uVar8 - ((ulong)(pcVar5 + 8) & 0xfffffffffffffff8))) &\n                    0xfffffffffffffff8)" ( (binary_expression "(ulong)(pcVar5 + (uVar8 - ((ulong)(pcVar5 + 8) & 0xfffffffffffffff8))) &\n                    0xfffffffffffffff8" (call_expression "(ulong)(pcVar5 + (uVar8 - ((ulong)(pcVar5 + 8) & 0xfffffffffffffff8)))" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(pcVar5 + (uVar8 - ((ulong)(pcVar5 + 8) & 0xfffffffffffffff8)))" ( (binary_expression "pcVar5 + (uVar8 - ((ulong)(pcVar5 + 8) & 0xfffffffffffffff8))" identifier + (parenthesized_expression "(uVar8 - ((ulong)(pcVar5 + 8) & 0xfffffffffffffff8))" ( (binary_expression "uVar8 - ((ulong)(pcVar5 + 8) & 0xfffffffffffffff8)" identifier - (parenthesized_expression "((ulong)(pcVar5 + 8) & 0xfffffffffffffff8)" ( (binary_expression "(ulong)(pcVar5 + 8) & 0xfffffffffffffff8" (call_expression "(ulong)(pcVar5 + 8)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(pcVar5 + 8)" ( (binary_expression "pcVar5 + 8" identifier + number_literal) ))) & number_literal) ))) ))) ))) & number_literal) ))) )) (compound_statement "{\n              uVar9 = 0;\n              do {\n                *(undefined8 *)(((ulong)(pcVar5 + 8) & 0xfffffffffffffff8) + uVar9) = 0;\n                uVar9 = uVar9 + 8;\n              } while (uVar9 < ((ulong)(pcVar5 + (uVar8 - ((ulong)(pcVar5 + 8) & 0xfffffffffffffff8)\n                                                 )) & 0xfffffffffffffff8));\n              return iVar4;\n            }" { (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" identifier = number_literal) ;) (do_statement "do {\n                *(undefined8 *)(((ulong)(pcVar5 + 8) & 0xfffffffffffffff8) + uVar9) = 0;\n                uVar9 = uVar9 + 8;\n              } while (uVar9 < ((ulong)(pcVar5 + (uVar8 - ((ulong)(pcVar5 + 8) & 0xfffffffffffffff8)\n                                                 )) & 0xfffffffffffffff8));" do (compound_statement "{\n                *(undefined8 *)(((ulong)(pcVar5 + 8) & 0xfffffffffffffff8) + uVar9) = 0;\n                uVar9 = uVar9 + 8;\n              }" { (expression_statement "*(undefined8 *)(((ulong)(pcVar5 + 8) & 0xfffffffffffffff8) + uVar9) = 0;" (assignment_expression "*(undefined8 *)(((ulong)(pcVar5 + 8) & 0xfffffffffffffff8) + uVar9) = 0" (pointer_expression "*(undefined8 *)(((ulong)(pcVar5 + 8) & 0xfffffffffffffff8) + uVar9)" * (cast_expression "(undefined8 *)(((ulong)(pcVar5 + 8) & 0xfffffffffffffff8) + uVar9)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(((ulong)(pcVar5 + 8) & 0xfffffffffffffff8) + uVar9)" ( (binary_expression "((ulong)(pcVar5 + 8) & 0xfffffffffffffff8) + uVar9" (parenthesized_expression "((ulong)(pcVar5 + 8) & 0xfffffffffffffff8)" ( (binary_expression "(ulong)(pcVar5 + 8) & 0xfffffffffffffff8" (call_expression "(ulong)(pcVar5 + 8)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(pcVar5 + 8)" ( (binary_expression "pcVar5 + 8" identifier + number_literal) ))) & number_literal) )) + identifier) )))) = number_literal) ;) (expression_statement "uVar9 = uVar9 + 8;" (assignment_expression "uVar9 = uVar9 + 8" identifier = (binary_expression "uVar9 + 8" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar9 < ((ulong)(pcVar5 + (uVar8 - ((ulong)(pcVar5 + 8) & 0xfffffffffffffff8)\n                                                 )) & 0xfffffffffffffff8))" ( (binary_expression "uVar9 < ((ulong)(pcVar5 + (uVar8 - ((ulong)(pcVar5 + 8) & 0xfffffffffffffff8)\n                                                 )) & 0xfffffffffffffff8)" identifier < (parenthesized_expression "((ulong)(pcVar5 + (uVar8 - ((ulong)(pcVar5 + 8) & 0xfffffffffffffff8)\n                                                 )) & 0xfffffffffffffff8)" ( (binary_expression "(ulong)(pcVar5 + (uVar8 - ((ulong)(pcVar5 + 8) & 0xfffffffffffffff8)\n                                                 )) & 0xfffffffffffffff8" (call_expression "(ulong)(pcVar5 + (uVar8 - ((ulong)(pcVar5 + 8) & 0xfffffffffffffff8)\n                                                 ))" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(pcVar5 + (uVar8 - ((ulong)(pcVar5 + 8) & 0xfffffffffffffff8)\n                                                 ))" ( (binary_expression "pcVar5 + (uVar8 - ((ulong)(pcVar5 + 8) & 0xfffffffffffffff8)\n                                                 )" identifier + (parenthesized_expression "(uVar8 - ((ulong)(pcVar5 + 8) & 0xfffffffffffffff8)\n                                                 )" ( (binary_expression "uVar8 - ((ulong)(pcVar5 + 8) & 0xfffffffffffffff8)" identifier - (parenthesized_expression "((ulong)(pcVar5 + 8) & 0xfffffffffffffff8)" ( (binary_expression "(ulong)(pcVar5 + 8) & 0xfffffffffffffff8" (call_expression "(ulong)(pcVar5 + 8)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(pcVar5 + 8)" ( (binary_expression "pcVar5 + 8" identifier + number_literal) ))) & number_literal) ))) ))) ))) & number_literal) ))) )) ;) (return_statement "return iVar4;" return identifier ;) })) }))) }))) })) (return_statement "return iVar4;" return identifier ;) })) (labeled_statement "LAB_00126f8e:\n    input_line_pointer = input_line_pointer + 1;" statement_identifier : (expression_statement "input_line_pointer = input_line_pointer + 1;" (assignment_expression "input_line_pointer = input_line_pointer + 1" identifier = (binary_expression "input_line_pointer + 1" identifier + number_literal)) ;)) }) while (parenthesized_expression "( true )" ( true )) ;) })))
(translation_unit "int FUN_00126ea0(undefined4 param_1,undefined4 *param_2)\n\n{\n  byte bVar1;\n  byte *pbVar2;\n  int iVar3;\n  undefined8 uVar4;\n  char cVar5;\n  uint uVar6;\n  ulong uVar7;\n  ulong uVar8;\n  undefined8 *puVar9;\n  undefined4 *puVar10;\n  byte *pbVar11;\n  int iVar12;\n  \n  switch(param_1) {\n  case 0x44:\n  case 0x52:\n  case 100:\n  case 0x72:\n    iVar3 = 8;\n    break;\n  default:\n    uVar4 = dcgettext(0,"unknown floating type type \'%c\'",5);\n    FUN_00126580(uVar4,param_1);\n    return -1;\n  case 0x46:\n  case 0x53:\n  case 0x66:\n  case 0x73:\n    iVar3 = 4;\n    break;\n  case 0x50:\n  case 0x58:\n  case 0x70:\n  case 0x78:\n    iVar3 = 0xc;\n  }\n  iVar12 = 0;\n  do {\n    bVar1 = *DAT_00175a40;\n    uVar7 = (ulong)bVar1;\n    cVar5 = _hex_value[uVar7];\n    while (cVar5 != 'c') {\n      if ((char)uVar7 == '_') goto LAB_00126f8e;\n      if (iVar3 <= iVar12) {\n        uVar4 = dcgettext(0,"floating point constant too large",5);\n        FUN_001263b0(uVar4);\n        return -1;\n      }\n      cVar5 = cVar5 * '\x10';\n      pbVar11 = DAT_00175a40 + 1;\n      bVar1 = DAT_00175a40[1];\n      if (bVar1 == 0x5f) {\n        pbVar2 = DAT_00175a40 + 2;\n        do {\n          pbVar11 = pbVar2;\n          bVar1 = *pbVar11;\n          pbVar2 = pbVar11 + 1;\n        } while (bVar1 == 0x5f);\n      }\n      DAT_00175a40 = pbVar11;\n      if (_hex_value[bVar1] != 'c') {\n        cVar5 = _hex_value[bVar1] + cVar5;\n        DAT_00175a40 = pbVar11 + 1;\n      }\n      if (DAT_0016c4c8 == 0) {\n        *(char *)((long)param_2 + (long)(iVar3 - iVar12) + -1) = cVar5;\n      }\n      else {\n        *(char *)((long)param_2 + (long)iVar12) = cVar5;\n      }\n      iVar12 = iVar12 + 1;\n      bVar1 = *DAT_00175a40;\n      uVar7 = (ulong)bVar1;\n      cVar5 = _hex_value[uVar7];\n    }\n    if (bVar1 != 0x5f) {\n      if (iVar12 < iVar3) {\n        uVar6 = iVar3 - iVar12;\n        uVar7 = (ulong)(int)uVar6;\n        if (DAT_0016c4c8 == 0) {\n          if (7 < uVar7) {\n            uVar8 = 0;\n            do {\n              *(undefined8 *)((long)param_2 + uVar8) = 0;\n              uVar8 = uVar8 + 8;\n            } while (uVar8 < (uVar7 & 0xfffffffffffffff8));\n            param_2 = (undefined4 *)(uVar8 + (long)param_2);\n          }\n          if ((uVar7 & 4) != 0) {\n            *param_2 = 0;\n            param_2 = param_2 + 1;\n          }\n          puVar10 = param_2;\n          if ((uVar6 & 2) != 0) {\n            puVar10 = (undefined4 *)((long)param_2 + 2);\n            *(undefined2 *)param_2 = 0;\n          }\n          if ((uVar6 & 1) != 0) {\n            *(undefined1 *)puVar10 = 0;\n            return iVar3;\n          }\n        }\n        else {\n          puVar9 = (undefined8 *)((long)iVar12 + (long)param_2);\n          if (uVar7 < 8) {\n            if ((uVar7 & 4) != 0) {\n              *(undefined4 *)puVar9 = 0;\n              *(undefined4 *)((long)puVar9 + (uVar7 - 4)) = 0;\n              return iVar3;\n            }\n            if ((uVar7 != 0) && (*(undefined1 *)puVar9 = 0, (uVar6 & 2) != 0)) {\n              *(undefined2 *)((long)puVar9 + (uVar7 - 2)) = 0;\n              return iVar3;\n            }\n          }\n          else {\n            *puVar9 = 0;\n            *(undefined8 *)((long)puVar9 + (uVar7 - 8)) = 0;\n            uVar7 = (ulong)((long)puVar9 + (uVar7 - ((ulong)(puVar9 + 1) & 0xfffffffffffffff8))) &\n                    0xfffffffffffffff8;\n            if (7 < uVar7) {\n              uVar8 = 0;\n              do {\n                *(undefined8 *)(((ulong)(puVar9 + 1) & 0xfffffffffffffff8) + uVar8) = 0;\n                uVar8 = uVar8 + 8;\n              } while (uVar8 < uVar7);\n              return iVar3;\n            }\n          }\n        }\n      }\n      return iVar3;\n    }\nLAB_00126f8e:\n    DAT_00175a40 = DAT_00175a40 + 1;\n  } while( true );\n}\n\n" (function_definition "int FUN_00126ea0(undefined4 param_1,undefined4 *param_2)\n\n{\n  byte bVar1;\n  byte *pbVar2;\n  int iVar3;\n  undefined8 uVar4;\n  char cVar5;\n  uint uVar6;\n  ulong uVar7;\n  ulong uVar8;\n  undefined8 *puVar9;\n  undefined4 *puVar10;\n  byte *pbVar11;\n  int iVar12;\n  \n  switch(param_1) {\n  case 0x44:\n  case 0x52:\n  case 100:\n  case 0x72:\n    iVar3 = 8;\n    break;\n  default:\n    uVar4 = dcgettext(0,"unknown floating type type \'%c\'",5);\n    FUN_00126580(uVar4,param_1);\n    return -1;\n  case 0x46:\n  case 0x53:\n  case 0x66:\n  case 0x73:\n    iVar3 = 4;\n    break;\n  case 0x50:\n  case 0x58:\n  case 0x70:\n  case 0x78:\n    iVar3 = 0xc;\n  }\n  iVar12 = 0;\n  do {\n    bVar1 = *DAT_00175a40;\n    uVar7 = (ulong)bVar1;\n    cVar5 = _hex_value[uVar7];\n    while (cVar5 != 'c') {\n      if ((char)uVar7 == '_') goto LAB_00126f8e;\n      if (iVar3 <= iVar12) {\n        uVar4 = dcgettext(0,"floating point constant too large",5);\n        FUN_001263b0(uVar4);\n        return -1;\n      }\n      cVar5 = cVar5 * '\x10';\n      pbVar11 = DAT_00175a40 + 1;\n      bVar1 = DAT_00175a40[1];\n      if (bVar1 == 0x5f) {\n        pbVar2 = DAT_00175a40 + 2;\n        do {\n          pbVar11 = pbVar2;\n          bVar1 = *pbVar11;\n          pbVar2 = pbVar11 + 1;\n        } while (bVar1 == 0x5f);\n      }\n      DAT_00175a40 = pbVar11;\n      if (_hex_value[bVar1] != 'c') {\n        cVar5 = _hex_value[bVar1] + cVar5;\n        DAT_00175a40 = pbVar11 + 1;\n      }\n      if (DAT_0016c4c8 == 0) {\n        *(char *)((long)param_2 + (long)(iVar3 - iVar12) + -1) = cVar5;\n      }\n      else {\n        *(char *)((long)param_2 + (long)iVar12) = cVar5;\n      }\n      iVar12 = iVar12 + 1;\n      bVar1 = *DAT_00175a40;\n      uVar7 = (ulong)bVar1;\n      cVar5 = _hex_value[uVar7];\n    }\n    if (bVar1 != 0x5f) {\n      if (iVar12 < iVar3) {\n        uVar6 = iVar3 - iVar12;\n        uVar7 = (ulong)(int)uVar6;\n        if (DAT_0016c4c8 == 0) {\n          if (7 < uVar7) {\n            uVar8 = 0;\n            do {\n              *(undefined8 *)((long)param_2 + uVar8) = 0;\n              uVar8 = uVar8 + 8;\n            } while (uVar8 < (uVar7 & 0xfffffffffffffff8));\n            param_2 = (undefined4 *)(uVar8 + (long)param_2);\n          }\n          if ((uVar7 & 4) != 0) {\n            *param_2 = 0;\n            param_2 = param_2 + 1;\n          }\n          puVar10 = param_2;\n          if ((uVar6 & 2) != 0) {\n            puVar10 = (undefined4 *)((long)param_2 + 2);\n            *(undefined2 *)param_2 = 0;\n          }\n          if ((uVar6 & 1) != 0) {\n            *(undefined1 *)puVar10 = 0;\n            return iVar3;\n          }\n        }\n        else {\n          puVar9 = (undefined8 *)((long)iVar12 + (long)param_2);\n          if (uVar7 < 8) {\n            if ((uVar7 & 4) != 0) {\n              *(undefined4 *)puVar9 = 0;\n              *(undefined4 *)((long)puVar9 + (uVar7 - 4)) = 0;\n              return iVar3;\n            }\n            if ((uVar7 != 0) && (*(undefined1 *)puVar9 = 0, (uVar6 & 2) != 0)) {\n              *(undefined2 *)((long)puVar9 + (uVar7 - 2)) = 0;\n              return iVar3;\n            }\n          }\n          else {\n            *puVar9 = 0;\n            *(undefined8 *)((long)puVar9 + (uVar7 - 8)) = 0;\n            uVar7 = (ulong)((long)puVar9 + (uVar7 - ((ulong)(puVar9 + 1) & 0xfffffffffffffff8))) &\n                    0xfffffffffffffff8;\n            if (7 < uVar7) {\n              uVar8 = 0;\n              do {\n                *(undefined8 *)(((ulong)(puVar9 + 1) & 0xfffffffffffffff8) + uVar8) = 0;\n                uVar8 = uVar8 + 8;\n              } while (uVar8 < uVar7);\n              return iVar3;\n            }\n          }\n        }\n      }\n      return iVar3;\n    }\nLAB_00126f8e:\n    DAT_00175a40 = DAT_00175a40 + 1;\n  } while( true );\n}" primitive_type (function_declarator "FUN_00126ea0(undefined4 param_1,undefined4 *param_2)" identifier (parameter_list "(undefined4 param_1,undefined4 *param_2)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "undefined4 *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) ))) (compound_statement "{\n  byte bVar1;\n  byte *pbVar2;\n  int iVar3;\n  undefined8 uVar4;\n  char cVar5;\n  uint uVar6;\n  ulong uVar7;\n  ulong uVar8;\n  undefined8 *puVar9;\n  undefined4 *puVar10;\n  byte *pbVar11;\n  int iVar12;\n  \n  switch(param_1) {\n  case 0x44:\n  case 0x52:\n  case 100:\n  case 0x72:\n    iVar3 = 8;\n    break;\n  default:\n    uVar4 = dcgettext(0,"unknown floating type type \'%c\'",5);\n    FUN_00126580(uVar4,param_1);\n    return -1;\n  case 0x46:\n  case 0x53:\n  case 0x66:\n  case 0x73:\n    iVar3 = 4;\n    break;\n  case 0x50:\n  case 0x58:\n  case 0x70:\n  case 0x78:\n    iVar3 = 0xc;\n  }\n  iVar12 = 0;\n  do {\n    bVar1 = *DAT_00175a40;\n    uVar7 = (ulong)bVar1;\n    cVar5 = _hex_value[uVar7];\n    while (cVar5 != 'c') {\n      if ((char)uVar7 == '_') goto LAB_00126f8e;\n      if (iVar3 <= iVar12) {\n        uVar4 = dcgettext(0,"floating point constant too large",5);\n        FUN_001263b0(uVar4);\n        return -1;\n      }\n      cVar5 = cVar5 * '\x10';\n      pbVar11 = DAT_00175a40 + 1;\n      bVar1 = DAT_00175a40[1];\n      if (bVar1 == 0x5f) {\n        pbVar2 = DAT_00175a40 + 2;\n        do {\n          pbVar11 = pbVar2;\n          bVar1 = *pbVar11;\n          pbVar2 = pbVar11 + 1;\n        } while (bVar1 == 0x5f);\n      }\n      DAT_00175a40 = pbVar11;\n      if (_hex_value[bVar1] != 'c') {\n        cVar5 = _hex_value[bVar1] + cVar5;\n        DAT_00175a40 = pbVar11 + 1;\n      }\n      if (DAT_0016c4c8 == 0) {\n        *(char *)((long)param_2 + (long)(iVar3 - iVar12) + -1) = cVar5;\n      }\n      else {\n        *(char *)((long)param_2 + (long)iVar12) = cVar5;\n      }\n      iVar12 = iVar12 + 1;\n      bVar1 = *DAT_00175a40;\n      uVar7 = (ulong)bVar1;\n      cVar5 = _hex_value[uVar7];\n    }\n    if (bVar1 != 0x5f) {\n      if (iVar12 < iVar3) {\n        uVar6 = iVar3 - iVar12;\n        uVar7 = (ulong)(int)uVar6;\n        if (DAT_0016c4c8 == 0) {\n          if (7 < uVar7) {\n            uVar8 = 0;\n            do {\n              *(undefined8 *)((long)param_2 + uVar8) = 0;\n              uVar8 = uVar8 + 8;\n            } while (uVar8 < (uVar7 & 0xfffffffffffffff8));\n            param_2 = (undefined4 *)(uVar8 + (long)param_2);\n          }\n          if ((uVar7 & 4) != 0) {\n            *param_2 = 0;\n            param_2 = param_2 + 1;\n          }\n          puVar10 = param_2;\n          if ((uVar6 & 2) != 0) {\n            puVar10 = (undefined4 *)((long)param_2 + 2);\n            *(undefined2 *)param_2 = 0;\n          }\n          if ((uVar6 & 1) != 0) {\n            *(undefined1 *)puVar10 = 0;\n            return iVar3;\n          }\n        }\n        else {\n          puVar9 = (undefined8 *)((long)iVar12 + (long)param_2);\n          if (uVar7 < 8) {\n            if ((uVar7 & 4) != 0) {\n              *(undefined4 *)puVar9 = 0;\n              *(undefined4 *)((long)puVar9 + (uVar7 - 4)) = 0;\n              return iVar3;\n            }\n            if ((uVar7 != 0) && (*(undefined1 *)puVar9 = 0, (uVar6 & 2) != 0)) {\n              *(undefined2 *)((long)puVar9 + (uVar7 - 2)) = 0;\n              return iVar3;\n            }\n          }\n          else {\n            *puVar9 = 0;\n            *(undefined8 *)((long)puVar9 + (uVar7 - 8)) = 0;\n            uVar7 = (ulong)((long)puVar9 + (uVar7 - ((ulong)(puVar9 + 1) & 0xfffffffffffffff8))) &\n                    0xfffffffffffffff8;\n            if (7 < uVar7) {\n              uVar8 = 0;\n              do {\n                *(undefined8 *)(((ulong)(puVar9 + 1) & 0xfffffffffffffff8) + uVar8) = 0;\n                uVar8 = uVar8 + 8;\n              } while (uVar8 < uVar7);\n              return iVar3;\n            }\n          }\n        }\n      }\n      return iVar3;\n    }\nLAB_00126f8e:\n    DAT_00175a40 = DAT_00175a40 + 1;\n  } while( true );\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "byte *pbVar2;" type_identifier (pointer_declarator "*pbVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "undefined8 uVar4;" type_identifier identifier ;) (declaration "char cVar5;" primitive_type identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "ulong uVar7;" type_identifier identifier ;) (declaration "ulong uVar8;" type_identifier identifier ;) (declaration "undefined8 *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "undefined4 *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "byte *pbVar11;" type_identifier (pointer_declarator "*pbVar11" * identifier) ;) (declaration "int iVar12;" primitive_type identifier ;) (switch_statement "switch(param_1) {\n  case 0x44:\n  case 0x52:\n  case 100:\n  case 0x72:\n    iVar3 = 8;\n    break;\n  default:\n    uVar4 = dcgettext(0,"unknown floating type type \'%c\'",5);\n    FUN_00126580(uVar4,param_1);\n    return -1;\n  case 0x46:\n  case 0x53:\n  case 0x66:\n  case 0x73:\n    iVar3 = 4;\n    break;\n  case 0x50:\n  case 0x58:\n  case 0x70:\n  case 0x78:\n    iVar3 = 0xc;\n  }" switch (parenthesized_expression "(param_1)" ( identifier )) (compound_statement "{\n  case 0x44:\n  case 0x52:\n  case 100:\n  case 0x72:\n    iVar3 = 8;\n    break;\n  default:\n    uVar4 = dcgettext(0,"unknown floating type type \'%c\'",5);\n    FUN_00126580(uVar4,param_1);\n    return -1;\n  case 0x46:\n  case 0x53:\n  case 0x66:\n  case 0x73:\n    iVar3 = 4;\n    break;\n  case 0x50:\n  case 0x58:\n  case 0x70:\n  case 0x78:\n    iVar3 = 0xc;\n  }" { (case_statement "case 0x44:" case number_literal :) (case_statement "case 0x52:" case number_literal :) (case_statement "case 100:" case number_literal :) (case_statement "case 0x72:\n    iVar3 = 8;\n    break;" case number_literal : (expression_statement "iVar3 = 8;" (assignment_expression "iVar3 = 8" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "default:\n    uVar4 = dcgettext(0,"unknown floating type type \'%c\'",5);\n    FUN_00126580(uVar4,param_1);\n    return -1;" default : (expression_statement "uVar4 = dcgettext(0,"unknown floating type type \'%c\'",5);" (assignment_expression "uVar4 = dcgettext(0,"unknown floating type type \'%c\'",5)" identifier = (call_expression "dcgettext(0,"unknown floating type type \'%c\'",5)" identifier (argument_list "(0,"unknown floating type type \'%c\'",5)" ( number_literal , (string_literal ""unknown floating type type \'%c\'"" " string_content escape_sequence string_content escape_sequence ") , number_literal )))) ;) (expression_statement "FUN_00126580(uVar4,param_1);" (call_expression "FUN_00126580(uVar4,param_1)" identifier (argument_list "(uVar4,param_1)" ( identifier , identifier ))) ;) (return_statement "return -1;" return number_literal ;)) (case_statement "case 0x46:" case number_literal :) (case_statement "case 0x53:" case number_literal :) (case_statement "case 0x66:" case number_literal :) (case_statement "case 0x73:\n    iVar3 = 4;\n    break;" case number_literal : (expression_statement "iVar3 = 4;" (assignment_expression "iVar3 = 4" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0x50:" case number_literal :) (case_statement "case 0x58:" case number_literal :) (case_statement "case 0x70:" case number_literal :) (case_statement "case 0x78:\n    iVar3 = 0xc;" case number_literal : (expression_statement "iVar3 = 0xc;" (assignment_expression "iVar3 = 0xc" identifier = number_literal) ;)) })) (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" identifier = number_literal) ;) (do_statement "do {\n    bVar1 = *DAT_00175a40;\n    uVar7 = (ulong)bVar1;\n    cVar5 = _hex_value[uVar7];\n    while (cVar5 != 'c') {\n      if ((char)uVar7 == '_') goto LAB_00126f8e;\n      if (iVar3 <= iVar12) {\n        uVar4 = dcgettext(0,"floating point constant too large",5);\n        FUN_001263b0(uVar4);\n        return -1;\n      }\n      cVar5 = cVar5 * '\x10';\n      pbVar11 = DAT_00175a40 + 1;\n      bVar1 = DAT_00175a40[1];\n      if (bVar1 == 0x5f) {\n        pbVar2 = DAT_00175a40 + 2;\n        do {\n          pbVar11 = pbVar2;\n          bVar1 = *pbVar11;\n          pbVar2 = pbVar11 + 1;\n        } while (bVar1 == 0x5f);\n      }\n      DAT_00175a40 = pbVar11;\n      if (_hex_value[bVar1] != 'c') {\n        cVar5 = _hex_value[bVar1] + cVar5;\n        DAT_00175a40 = pbVar11 + 1;\n      }\n      if (DAT_0016c4c8 == 0) {\n        *(char *)((long)param_2 + (long)(iVar3 - iVar12) + -1) = cVar5;\n      }\n      else {\n        *(char *)((long)param_2 + (long)iVar12) = cVar5;\n      }\n      iVar12 = iVar12 + 1;\n      bVar1 = *DAT_00175a40;\n      uVar7 = (ulong)bVar1;\n      cVar5 = _hex_value[uVar7];\n    }\n    if (bVar1 != 0x5f) {\n      if (iVar12 < iVar3) {\n        uVar6 = iVar3 - iVar12;\n        uVar7 = (ulong)(int)uVar6;\n        if (DAT_0016c4c8 == 0) {\n          if (7 < uVar7) {\n            uVar8 = 0;\n            do {\n              *(undefined8 *)((long)param_2 + uVar8) = 0;\n              uVar8 = uVar8 + 8;\n            } while (uVar8 < (uVar7 & 0xfffffffffffffff8));\n            param_2 = (undefined4 *)(uVar8 + (long)param_2);\n          }\n          if ((uVar7 & 4) != 0) {\n            *param_2 = 0;\n            param_2 = param_2 + 1;\n          }\n          puVar10 = param_2;\n          if ((uVar6 & 2) != 0) {\n            puVar10 = (undefined4 *)((long)param_2 + 2);\n            *(undefined2 *)param_2 = 0;\n          }\n          if ((uVar6 & 1) != 0) {\n            *(undefined1 *)puVar10 = 0;\n            return iVar3;\n          }\n        }\n        else {\n          puVar9 = (undefined8 *)((long)iVar12 + (long)param_2);\n          if (uVar7 < 8) {\n            if ((uVar7 & 4) != 0) {\n              *(undefined4 *)puVar9 = 0;\n              *(undefined4 *)((long)puVar9 + (uVar7 - 4)) = 0;\n              return iVar3;\n            }\n            if ((uVar7 != 0) && (*(undefined1 *)puVar9 = 0, (uVar6 & 2) != 0)) {\n              *(undefined2 *)((long)puVar9 + (uVar7 - 2)) = 0;\n              return iVar3;\n            }\n          }\n          else {\n            *puVar9 = 0;\n            *(undefined8 *)((long)puVar9 + (uVar7 - 8)) = 0;\n            uVar7 = (ulong)((long)puVar9 + (uVar7 - ((ulong)(puVar9 + 1) & 0xfffffffffffffff8))) &\n                    0xfffffffffffffff8;\n            if (7 < uVar7) {\n              uVar8 = 0;\n              do {\n                *(undefined8 *)(((ulong)(puVar9 + 1) & 0xfffffffffffffff8) + uVar8) = 0;\n                uVar8 = uVar8 + 8;\n              } while (uVar8 < uVar7);\n              return iVar3;\n            }\n          }\n        }\n      }\n      return iVar3;\n    }\nLAB_00126f8e:\n    DAT_00175a40 = DAT_00175a40 + 1;\n  } while( true );" do (compound_statement "{\n    bVar1 = *DAT_00175a40;\n    uVar7 = (ulong)bVar1;\n    cVar5 = _hex_value[uVar7];\n    while (cVar5 != 'c') {\n      if ((char)uVar7 == '_') goto LAB_00126f8e;\n      if (iVar3 <= iVar12) {\n        uVar4 = dcgettext(0,"floating point constant too large",5);\n        FUN_001263b0(uVar4);\n        return -1;\n      }\n      cVar5 = cVar5 * '\x10';\n      pbVar11 = DAT_00175a40 + 1;\n      bVar1 = DAT_00175a40[1];\n      if (bVar1 == 0x5f) {\n        pbVar2 = DAT_00175a40 + 2;\n        do {\n          pbVar11 = pbVar2;\n          bVar1 = *pbVar11;\n          pbVar2 = pbVar11 + 1;\n        } while (bVar1 == 0x5f);\n      }\n      DAT_00175a40 = pbVar11;\n      if (_hex_value[bVar1] != 'c') {\n        cVar5 = _hex_value[bVar1] + cVar5;\n        DAT_00175a40 = pbVar11 + 1;\n      }\n      if (DAT_0016c4c8 == 0) {\n        *(char *)((long)param_2 + (long)(iVar3 - iVar12) + -1) = cVar5;\n      }\n      else {\n        *(char *)((long)param_2 + (long)iVar12) = cVar5;\n      }\n      iVar12 = iVar12 + 1;\n      bVar1 = *DAT_00175a40;\n      uVar7 = (ulong)bVar1;\n      cVar5 = _hex_value[uVar7];\n    }\n    if (bVar1 != 0x5f) {\n      if (iVar12 < iVar3) {\n        uVar6 = iVar3 - iVar12;\n        uVar7 = (ulong)(int)uVar6;\n        if (DAT_0016c4c8 == 0) {\n          if (7 < uVar7) {\n            uVar8 = 0;\n            do {\n              *(undefined8 *)((long)param_2 + uVar8) = 0;\n              uVar8 = uVar8 + 8;\n            } while (uVar8 < (uVar7 & 0xfffffffffffffff8));\n            param_2 = (undefined4 *)(uVar8 + (long)param_2);\n          }\n          if ((uVar7 & 4) != 0) {\n            *param_2 = 0;\n            param_2 = param_2 + 1;\n          }\n          puVar10 = param_2;\n          if ((uVar6 & 2) != 0) {\n            puVar10 = (undefined4 *)((long)param_2 + 2);\n            *(undefined2 *)param_2 = 0;\n          }\n          if ((uVar6 & 1) != 0) {\n            *(undefined1 *)puVar10 = 0;\n            return iVar3;\n          }\n        }\n        else {\n          puVar9 = (undefined8 *)((long)iVar12 + (long)param_2);\n          if (uVar7 < 8) {\n            if ((uVar7 & 4) != 0) {\n              *(undefined4 *)puVar9 = 0;\n              *(undefined4 *)((long)puVar9 + (uVar7 - 4)) = 0;\n              return iVar3;\n            }\n            if ((uVar7 != 0) && (*(undefined1 *)puVar9 = 0, (uVar6 & 2) != 0)) {\n              *(undefined2 *)((long)puVar9 + (uVar7 - 2)) = 0;\n              return iVar3;\n            }\n          }\n          else {\n            *puVar9 = 0;\n            *(undefined8 *)((long)puVar9 + (uVar7 - 8)) = 0;\n            uVar7 = (ulong)((long)puVar9 + (uVar7 - ((ulong)(puVar9 + 1) & 0xfffffffffffffff8))) &\n                    0xfffffffffffffff8;\n            if (7 < uVar7) {\n              uVar8 = 0;\n              do {\n                *(undefined8 *)(((ulong)(puVar9 + 1) & 0xfffffffffffffff8) + uVar8) = 0;\n                uVar8 = uVar8 + 8;\n              } while (uVar8 < uVar7);\n              return iVar3;\n            }\n          }\n        }\n      }\n      return iVar3;\n    }\nLAB_00126f8e:\n    DAT_00175a40 = DAT_00175a40 + 1;\n  }" { (expression_statement "bVar1 = *DAT_00175a40;" (assignment_expression "bVar1 = *DAT_00175a40" identifier = (pointer_expression "*DAT_00175a40" * identifier)) ;) (expression_statement "uVar7 = (ulong)bVar1;" (assignment_expression "uVar7 = (ulong)bVar1" identifier = (cast_expression "(ulong)bVar1" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (expression_statement "cVar5 = _hex_value[uVar7];" (assignment_expression "cVar5 = _hex_value[uVar7]" identifier = (subscript_expression "_hex_value[uVar7]" identifier [ identifier ])) ;) (while_statement "while (cVar5 != 'c') {\n      if ((char)uVar7 == '_') goto LAB_00126f8e;\n      if (iVar3 <= iVar12) {\n        uVar4 = dcgettext(0,"floating point constant too large",5);\n        FUN_001263b0(uVar4);\n        return -1;\n      }\n      cVar5 = cVar5 * '\x10';\n      pbVar11 = DAT_00175a40 + 1;\n      bVar1 = DAT_00175a40[1];\n      if (bVar1 == 0x5f) {\n        pbVar2 = DAT_00175a40 + 2;\n        do {\n          pbVar11 = pbVar2;\n          bVar1 = *pbVar11;\n          pbVar2 = pbVar11 + 1;\n        } while (bVar1 == 0x5f);\n      }\n      DAT_00175a40 = pbVar11;\n      if (_hex_value[bVar1] != 'c') {\n        cVar5 = _hex_value[bVar1] + cVar5;\n        DAT_00175a40 = pbVar11 + 1;\n      }\n      if (DAT_0016c4c8 == 0) {\n        *(char *)((long)param_2 + (long)(iVar3 - iVar12) + -1) = cVar5;\n      }\n      else {\n        *(char *)((long)param_2 + (long)iVar12) = cVar5;\n      }\n      iVar12 = iVar12 + 1;\n      bVar1 = *DAT_00175a40;\n      uVar7 = (ulong)bVar1;\n      cVar5 = _hex_value[uVar7];\n    }" while (parenthesized_expression "(cVar5 != 'c')" ( (binary_expression "cVar5 != 'c'" identifier != (char_literal "'c'" ' character ')) )) (compound_statement "{\n      if ((char)uVar7 == '_') goto LAB_00126f8e;\n      if (iVar3 <= iVar12) {\n        uVar4 = dcgettext(0,"floating point constant too large",5);\n        FUN_001263b0(uVar4);\n        return -1;\n      }\n      cVar5 = cVar5 * '\x10';\n      pbVar11 = DAT_00175a40 + 1;\n      bVar1 = DAT_00175a40[1];\n      if (bVar1 == 0x5f) {\n        pbVar2 = DAT_00175a40 + 2;\n        do {\n          pbVar11 = pbVar2;\n          bVar1 = *pbVar11;\n          pbVar2 = pbVar11 + 1;\n        } while (bVar1 == 0x5f);\n      }\n      DAT_00175a40 = pbVar11;\n      if (_hex_value[bVar1] != 'c') {\n        cVar5 = _hex_value[bVar1] + cVar5;\n        DAT_00175a40 = pbVar11 + 1;\n      }\n      if (DAT_0016c4c8 == 0) {\n        *(char *)((long)param_2 + (long)(iVar3 - iVar12) + -1) = cVar5;\n      }\n      else {\n        *(char *)((long)param_2 + (long)iVar12) = cVar5;\n      }\n      iVar12 = iVar12 + 1;\n      bVar1 = *DAT_00175a40;\n      uVar7 = (ulong)bVar1;\n      cVar5 = _hex_value[uVar7];\n    }" { (if_statement "if ((char)uVar7 == '_') goto LAB_00126f8e;" if (parenthesized_expression "((char)uVar7 == '_')" ( (binary_expression "(char)uVar7 == '_'" (cast_expression "(char)uVar7" ( (type_descriptor "char" primitive_type) ) identifier) == (char_literal "'_'" ' character ')) )) (goto_statement "goto LAB_00126f8e;" goto statement_identifier ;)) (if_statement "if (iVar3 <= iVar12) {\n        uVar4 = dcgettext(0,"floating point constant too large",5);\n        FUN_001263b0(uVar4);\n        return -1;\n      }" if (parenthesized_expression "(iVar3 <= iVar12)" ( (binary_expression "iVar3 <= iVar12" identifier <= identifier) )) (compound_statement "{\n        uVar4 = dcgettext(0,"floating point constant too large",5);\n        FUN_001263b0(uVar4);\n        return -1;\n      }" { (expression_statement "uVar4 = dcgettext(0,"floating point constant too large",5);" (assignment_expression "uVar4 = dcgettext(0,"floating point constant too large",5)" identifier = (call_expression "dcgettext(0,"floating point constant too large",5)" identifier (argument_list "(0,"floating point constant too large",5)" ( number_literal , (string_literal ""floating point constant too large"" " string_content ") , number_literal )))) ;) (expression_statement "FUN_001263b0(uVar4);" (call_expression "FUN_001263b0(uVar4)" identifier (argument_list "(uVar4)" ( identifier ))) ;) (return_statement "return -1;" return number_literal ;) })) (expression_statement "cVar5 = cVar5 * '\x10';" (assignment_expression "cVar5 = cVar5 * '\x10'" identifier = (binary_expression "cVar5 * '\x10'" identifier * (char_literal "'\x10'" ' escape_sequence '))) ;) (expression_statement "pbVar11 = DAT_00175a40 + 1;" (assignment_expression "pbVar11 = DAT_00175a40 + 1" identifier = (binary_expression "DAT_00175a40 + 1" identifier + number_literal)) ;) (expression_statement "bVar1 = DAT_00175a40[1];" (assignment_expression "bVar1 = DAT_00175a40[1]" identifier = (subscript_expression "DAT_00175a40[1]" identifier [ number_literal ])) ;) (if_statement "if (bVar1 == 0x5f) {\n        pbVar2 = DAT_00175a40 + 2;\n        do {\n          pbVar11 = pbVar2;\n          bVar1 = *pbVar11;\n          pbVar2 = pbVar11 + 1;\n        } while (bVar1 == 0x5f);\n      }" if (parenthesized_expression "(bVar1 == 0x5f)" ( (binary_expression "bVar1 == 0x5f" identifier == number_literal) )) (compound_statement "{\n        pbVar2 = DAT_00175a40 + 2;\n        do {\n          pbVar11 = pbVar2;\n          bVar1 = *pbVar11;\n          pbVar2 = pbVar11 + 1;\n        } while (bVar1 == 0x5f);\n      }" { (expression_statement "pbVar2 = DAT_00175a40 + 2;" (assignment_expression "pbVar2 = DAT_00175a40 + 2" identifier = (binary_expression "DAT_00175a40 + 2" identifier + number_literal)) ;) (do_statement "do {\n          pbVar11 = pbVar2;\n          bVar1 = *pbVar11;\n          pbVar2 = pbVar11 + 1;\n        } while (bVar1 == 0x5f);" do (compound_statement "{\n          pbVar11 = pbVar2;\n          bVar1 = *pbVar11;\n          pbVar2 = pbVar11 + 1;\n        }" { (expression_statement "pbVar11 = pbVar2;" (assignment_expression "pbVar11 = pbVar2" identifier = identifier) ;) (expression_statement "bVar1 = *pbVar11;" (assignment_expression "bVar1 = *pbVar11" identifier = (pointer_expression "*pbVar11" * identifier)) ;) (expression_statement "pbVar2 = pbVar11 + 1;" (assignment_expression "pbVar2 = pbVar11 + 1" identifier = (binary_expression "pbVar11 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(bVar1 == 0x5f)" ( (binary_expression "bVar1 == 0x5f" identifier == number_literal) )) ;) })) (expression_statement "DAT_00175a40 = pbVar11;" (assignment_expression "DAT_00175a40 = pbVar11" identifier = identifier) ;) (if_statement "if (_hex_value[bVar1] != 'c') {\n        cVar5 = _hex_value[bVar1] + cVar5;\n        DAT_00175a40 = pbVar11 + 1;\n      }" if (parenthesized_expression "(_hex_value[bVar1] != 'c')" ( (binary_expression "_hex_value[bVar1] != 'c'" (subscript_expression "_hex_value[bVar1]" identifier [ identifier ]) != (char_literal "'c'" ' character ')) )) (compound_statement "{\n        cVar5 = _hex_value[bVar1] + cVar5;\n        DAT_00175a40 = pbVar11 + 1;\n      }" { (expression_statement "cVar5 = _hex_value[bVar1] + cVar5;" (assignment_expression "cVar5 = _hex_value[bVar1] + cVar5" identifier = (binary_expression "_hex_value[bVar1] + cVar5" (subscript_expression "_hex_value[bVar1]" identifier [ identifier ]) + identifier)) ;) (expression_statement "DAT_00175a40 = pbVar11 + 1;" (assignment_expression "DAT_00175a40 = pbVar11 + 1" identifier = (binary_expression "pbVar11 + 1" identifier + number_literal)) ;) })) (if_statement "if (DAT_0016c4c8 == 0) {\n        *(char *)((long)param_2 + (long)(iVar3 - iVar12) + -1) = cVar5;\n      }\n      else {\n        *(char *)((long)param_2 + (long)iVar12) = cVar5;\n      }" if (parenthesized_expression "(DAT_0016c4c8 == 0)" ( (binary_expression "DAT_0016c4c8 == 0" identifier == number_literal) )) (compound_statement "{\n        *(char *)((long)param_2 + (long)(iVar3 - iVar12) + -1) = cVar5;\n      }" { (expression_statement "*(char *)((long)param_2 + (long)(iVar3 - iVar12) + -1) = cVar5;" (assignment_expression "*(char *)((long)param_2 + (long)(iVar3 - iVar12) + -1) = cVar5" (pointer_expression "*(char *)((long)param_2 + (long)(iVar3 - iVar12) + -1)" * (cast_expression "(char *)((long)param_2 + (long)(iVar3 - iVar12) + -1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_2 + (long)(iVar3 - iVar12) + -1)" ( (binary_expression "(long)param_2 + (long)(iVar3 - iVar12) + -1" (binary_expression "(long)param_2 + (long)(iVar3 - iVar12)" (cast_expression "(long)param_2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (cast_expression "(long)(iVar3 - iVar12)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(iVar3 - iVar12)" ( (binary_expression "iVar3 - iVar12" identifier - identifier) )))) + number_literal) )))) = identifier) ;) }) (else_clause "else {\n        *(char *)((long)param_2 + (long)iVar12) = cVar5;\n      }" else (compound_statement "{\n        *(char *)((long)param_2 + (long)iVar12) = cVar5;\n      }" { (expression_statement "*(char *)((long)param_2 + (long)iVar12) = cVar5;" (assignment_expression "*(char *)((long)param_2 + (long)iVar12) = cVar5" (pointer_expression "*(char *)((long)param_2 + (long)iVar12)" * (cast_expression "(char *)((long)param_2 + (long)iVar12)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_2 + (long)iVar12)" ( (binary_expression "(long)param_2 + (long)iVar12" (cast_expression "(long)param_2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (cast_expression "(long)iVar12" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )))) = identifier) ;) }))) (expression_statement "iVar12 = iVar12 + 1;" (assignment_expression "iVar12 = iVar12 + 1" identifier = (binary_expression "iVar12 + 1" identifier + number_literal)) ;) (expression_statement "bVar1 = *DAT_00175a40;" (assignment_expression "bVar1 = *DAT_00175a40" identifier = (pointer_expression "*DAT_00175a40" * identifier)) ;) (expression_statement "uVar7 = (ulong)bVar1;" (assignment_expression "uVar7 = (ulong)bVar1" identifier = (cast_expression "(ulong)bVar1" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (expression_statement "cVar5 = _hex_value[uVar7];" (assignment_expression "cVar5 = _hex_value[uVar7]" identifier = (subscript_expression "_hex_value[uVar7]" identifier [ identifier ])) ;) })) (if_statement "if (bVar1 != 0x5f) {\n      if (iVar12 < iVar3) {\n        uVar6 = iVar3 - iVar12;\n        uVar7 = (ulong)(int)uVar6;\n        if (DAT_0016c4c8 == 0) {\n          if (7 < uVar7) {\n            uVar8 = 0;\n            do {\n              *(undefined8 *)((long)param_2 + uVar8) = 0;\n              uVar8 = uVar8 + 8;\n            } while (uVar8 < (uVar7 & 0xfffffffffffffff8));\n            param_2 = (undefined4 *)(uVar8 + (long)param_2);\n          }\n          if ((uVar7 & 4) != 0) {\n            *param_2 = 0;\n            param_2 = param_2 + 1;\n          }\n          puVar10 = param_2;\n          if ((uVar6 & 2) != 0) {\n            puVar10 = (undefined4 *)((long)param_2 + 2);\n            *(undefined2 *)param_2 = 0;\n          }\n          if ((uVar6 & 1) != 0) {\n            *(undefined1 *)puVar10 = 0;\n            return iVar3;\n          }\n        }\n        else {\n          puVar9 = (undefined8 *)((long)iVar12 + (long)param_2);\n          if (uVar7 < 8) {\n            if ((uVar7 & 4) != 0) {\n              *(undefined4 *)puVar9 = 0;\n              *(undefined4 *)((long)puVar9 + (uVar7 - 4)) = 0;\n              return iVar3;\n            }\n            if ((uVar7 != 0) && (*(undefined1 *)puVar9 = 0, (uVar6 & 2) != 0)) {\n              *(undefined2 *)((long)puVar9 + (uVar7 - 2)) = 0;\n              return iVar3;\n            }\n          }\n          else {\n            *puVar9 = 0;\n            *(undefined8 *)((long)puVar9 + (uVar7 - 8)) = 0;\n            uVar7 = (ulong)((long)puVar9 + (uVar7 - ((ulong)(puVar9 + 1) & 0xfffffffffffffff8))) &\n                    0xfffffffffffffff8;\n            if (7 < uVar7) {\n              uVar8 = 0;\n              do {\n                *(undefined8 *)(((ulong)(puVar9 + 1) & 0xfffffffffffffff8) + uVar8) = 0;\n                uVar8 = uVar8 + 8;\n              } while (uVar8 < uVar7);\n              return iVar3;\n            }\n          }\n        }\n      }\n      return iVar3;\n    }" if (parenthesized_expression "(bVar1 != 0x5f)" ( (binary_expression "bVar1 != 0x5f" identifier != number_literal) )) (compound_statement "{\n      if (iVar12 < iVar3) {\n        uVar6 = iVar3 - iVar12;\n        uVar7 = (ulong)(int)uVar6;\n        if (DAT_0016c4c8 == 0) {\n          if (7 < uVar7) {\n            uVar8 = 0;\n            do {\n              *(undefined8 *)((long)param_2 + uVar8) = 0;\n              uVar8 = uVar8 + 8;\n            } while (uVar8 < (uVar7 & 0xfffffffffffffff8));\n            param_2 = (undefined4 *)(uVar8 + (long)param_2);\n          }\n          if ((uVar7 & 4) != 0) {\n            *param_2 = 0;\n            param_2 = param_2 + 1;\n          }\n          puVar10 = param_2;\n          if ((uVar6 & 2) != 0) {\n            puVar10 = (undefined4 *)((long)param_2 + 2);\n            *(undefined2 *)param_2 = 0;\n          }\n          if ((uVar6 & 1) != 0) {\n            *(undefined1 *)puVar10 = 0;\n            return iVar3;\n          }\n        }\n        else {\n          puVar9 = (undefined8 *)((long)iVar12 + (long)param_2);\n          if (uVar7 < 8) {\n            if ((uVar7 & 4) != 0) {\n              *(undefined4 *)puVar9 = 0;\n              *(undefined4 *)((long)puVar9 + (uVar7 - 4)) = 0;\n              return iVar3;\n            }\n            if ((uVar7 != 0) && (*(undefined1 *)puVar9 = 0, (uVar6 & 2) != 0)) {\n              *(undefined2 *)((long)puVar9 + (uVar7 - 2)) = 0;\n              return iVar3;\n            }\n          }\n          else {\n            *puVar9 = 0;\n            *(undefined8 *)((long)puVar9 + (uVar7 - 8)) = 0;\n            uVar7 = (ulong)((long)puVar9 + (uVar7 - ((ulong)(puVar9 + 1) & 0xfffffffffffffff8))) &\n                    0xfffffffffffffff8;\n            if (7 < uVar7) {\n              uVar8 = 0;\n              do {\n                *(undefined8 *)(((ulong)(puVar9 + 1) & 0xfffffffffffffff8) + uVar8) = 0;\n                uVar8 = uVar8 + 8;\n              } while (uVar8 < uVar7);\n              return iVar3;\n            }\n          }\n        }\n      }\n      return iVar3;\n    }" { (if_statement "if (iVar12 < iVar3) {\n        uVar6 = iVar3 - iVar12;\n        uVar7 = (ulong)(int)uVar6;\n        if (DAT_0016c4c8 == 0) {\n          if (7 < uVar7) {\n            uVar8 = 0;\n            do {\n              *(undefined8 *)((long)param_2 + uVar8) = 0;\n              uVar8 = uVar8 + 8;\n            } while (uVar8 < (uVar7 & 0xfffffffffffffff8));\n            param_2 = (undefined4 *)(uVar8 + (long)param_2);\n          }\n          if ((uVar7 & 4) != 0) {\n            *param_2 = 0;\n            param_2 = param_2 + 1;\n          }\n          puVar10 = param_2;\n          if ((uVar6 & 2) != 0) {\n            puVar10 = (undefined4 *)((long)param_2 + 2);\n            *(undefined2 *)param_2 = 0;\n          }\n          if ((uVar6 & 1) != 0) {\n            *(undefined1 *)puVar10 = 0;\n            return iVar3;\n          }\n        }\n        else {\n          puVar9 = (undefined8 *)((long)iVar12 + (long)param_2);\n          if (uVar7 < 8) {\n            if ((uVar7 & 4) != 0) {\n              *(undefined4 *)puVar9 = 0;\n              *(undefined4 *)((long)puVar9 + (uVar7 - 4)) = 0;\n              return iVar3;\n            }\n            if ((uVar7 != 0) && (*(undefined1 *)puVar9 = 0, (uVar6 & 2) != 0)) {\n              *(undefined2 *)((long)puVar9 + (uVar7 - 2)) = 0;\n              return iVar3;\n            }\n          }\n          else {\n            *puVar9 = 0;\n            *(undefined8 *)((long)puVar9 + (uVar7 - 8)) = 0;\n            uVar7 = (ulong)((long)puVar9 + (uVar7 - ((ulong)(puVar9 + 1) & 0xfffffffffffffff8))) &\n                    0xfffffffffffffff8;\n            if (7 < uVar7) {\n              uVar8 = 0;\n              do {\n                *(undefined8 *)(((ulong)(puVar9 + 1) & 0xfffffffffffffff8) + uVar8) = 0;\n                uVar8 = uVar8 + 8;\n              } while (uVar8 < uVar7);\n              return iVar3;\n            }\n          }\n        }\n      }" if (parenthesized_expression "(iVar12 < iVar3)" ( (binary_expression "iVar12 < iVar3" identifier < identifier) )) (compound_statement "{\n        uVar6 = iVar3 - iVar12;\n        uVar7 = (ulong)(int)uVar6;\n        if (DAT_0016c4c8 == 0) {\n          if (7 < uVar7) {\n            uVar8 = 0;\n            do {\n              *(undefined8 *)((long)param_2 + uVar8) = 0;\n              uVar8 = uVar8 + 8;\n            } while (uVar8 < (uVar7 & 0xfffffffffffffff8));\n            param_2 = (undefined4 *)(uVar8 + (long)param_2);\n          }\n          if ((uVar7 & 4) != 0) {\n            *param_2 = 0;\n            param_2 = param_2 + 1;\n          }\n          puVar10 = param_2;\n          if ((uVar6 & 2) != 0) {\n            puVar10 = (undefined4 *)((long)param_2 + 2);\n            *(undefined2 *)param_2 = 0;\n          }\n          if ((uVar6 & 1) != 0) {\n            *(undefined1 *)puVar10 = 0;\n            return iVar3;\n          }\n        }\n        else {\n          puVar9 = (undefined8 *)((long)iVar12 + (long)param_2);\n          if (uVar7 < 8) {\n            if ((uVar7 & 4) != 0) {\n              *(undefined4 *)puVar9 = 0;\n              *(undefined4 *)((long)puVar9 + (uVar7 - 4)) = 0;\n              return iVar3;\n            }\n            if ((uVar7 != 0) && (*(undefined1 *)puVar9 = 0, (uVar6 & 2) != 0)) {\n              *(undefined2 *)((long)puVar9 + (uVar7 - 2)) = 0;\n              return iVar3;\n            }\n          }\n          else {\n            *puVar9 = 0;\n            *(undefined8 *)((long)puVar9 + (uVar7 - 8)) = 0;\n            uVar7 = (ulong)((long)puVar9 + (uVar7 - ((ulong)(puVar9 + 1) & 0xfffffffffffffff8))) &\n                    0xfffffffffffffff8;\n            if (7 < uVar7) {\n              uVar8 = 0;\n              do {\n                *(undefined8 *)(((ulong)(puVar9 + 1) & 0xfffffffffffffff8) + uVar8) = 0;\n                uVar8 = uVar8 + 8;\n              } while (uVar8 < uVar7);\n              return iVar3;\n            }\n          }\n        }\n      }" { (expression_statement "uVar6 = iVar3 - iVar12;" (assignment_expression "uVar6 = iVar3 - iVar12" identifier = (binary_expression "iVar3 - iVar12" identifier - identifier)) ;) (expression_statement "uVar7 = (ulong)(int)uVar6;" (assignment_expression "uVar7 = (ulong)(int)uVar6" identifier = (cast_expression "(ulong)(int)uVar6" ( (type_descriptor "ulong" type_identifier) ) (cast_expression "(int)uVar6" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if (DAT_0016c4c8 == 0) {\n          if (7 < uVar7) {\n            uVar8 = 0;\n            do {\n              *(undefined8 *)((long)param_2 + uVar8) = 0;\n              uVar8 = uVar8 + 8;\n            } while (uVar8 < (uVar7 & 0xfffffffffffffff8));\n            param_2 = (undefined4 *)(uVar8 + (long)param_2);\n          }\n          if ((uVar7 & 4) != 0) {\n            *param_2 = 0;\n            param_2 = param_2 + 1;\n          }\n          puVar10 = param_2;\n          if ((uVar6 & 2) != 0) {\n            puVar10 = (undefined4 *)((long)param_2 + 2);\n            *(undefined2 *)param_2 = 0;\n          }\n          if ((uVar6 & 1) != 0) {\n            *(undefined1 *)puVar10 = 0;\n            return iVar3;\n          }\n        }\n        else {\n          puVar9 = (undefined8 *)((long)iVar12 + (long)param_2);\n          if (uVar7 < 8) {\n            if ((uVar7 & 4) != 0) {\n              *(undefined4 *)puVar9 = 0;\n              *(undefined4 *)((long)puVar9 + (uVar7 - 4)) = 0;\n              return iVar3;\n            }\n            if ((uVar7 != 0) && (*(undefined1 *)puVar9 = 0, (uVar6 & 2) != 0)) {\n              *(undefined2 *)((long)puVar9 + (uVar7 - 2)) = 0;\n              return iVar3;\n            }\n          }\n          else {\n            *puVar9 = 0;\n            *(undefined8 *)((long)puVar9 + (uVar7 - 8)) = 0;\n            uVar7 = (ulong)((long)puVar9 + (uVar7 - ((ulong)(puVar9 + 1) & 0xfffffffffffffff8))) &\n                    0xfffffffffffffff8;\n            if (7 < uVar7) {\n              uVar8 = 0;\n              do {\n                *(undefined8 *)(((ulong)(puVar9 + 1) & 0xfffffffffffffff8) + uVar8) = 0;\n                uVar8 = uVar8 + 8;\n              } while (uVar8 < uVar7);\n              return iVar3;\n            }\n          }\n        }" if (parenthesized_expression "(DAT_0016c4c8 == 0)" ( (binary_expression "DAT_0016c4c8 == 0" identifier == number_literal) )) (compound_statement "{\n          if (7 < uVar7) {\n            uVar8 = 0;\n            do {\n              *(undefined8 *)((long)param_2 + uVar8) = 0;\n              uVar8 = uVar8 + 8;\n            } while (uVar8 < (uVar7 & 0xfffffffffffffff8));\n            param_2 = (undefined4 *)(uVar8 + (long)param_2);\n          }\n          if ((uVar7 & 4) != 0) {\n            *param_2 = 0;\n            param_2 = param_2 + 1;\n          }\n          puVar10 = param_2;\n          if ((uVar6 & 2) != 0) {\n            puVar10 = (undefined4 *)((long)param_2 + 2);\n            *(undefined2 *)param_2 = 0;\n          }\n          if ((uVar6 & 1) != 0) {\n            *(undefined1 *)puVar10 = 0;\n            return iVar3;\n          }\n        }" { (if_statement "if (7 < uVar7) {\n            uVar8 = 0;\n            do {\n              *(undefined8 *)((long)param_2 + uVar8) = 0;\n              uVar8 = uVar8 + 8;\n            } while (uVar8 < (uVar7 & 0xfffffffffffffff8));\n            param_2 = (undefined4 *)(uVar8 + (long)param_2);\n          }" if (parenthesized_expression "(7 < uVar7)" ( (binary_expression "7 < uVar7" number_literal < identifier) )) (compound_statement "{\n            uVar8 = 0;\n            do {\n              *(undefined8 *)((long)param_2 + uVar8) = 0;\n              uVar8 = uVar8 + 8;\n            } while (uVar8 < (uVar7 & 0xfffffffffffffff8));\n            param_2 = (undefined4 *)(uVar8 + (long)param_2);\n          }" { (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;) (do_statement "do {\n              *(undefined8 *)((long)param_2 + uVar8) = 0;\n              uVar8 = uVar8 + 8;\n            } while (uVar8 < (uVar7 & 0xfffffffffffffff8));" do (compound_statement "{\n              *(undefined8 *)((long)param_2 + uVar8) = 0;\n              uVar8 = uVar8 + 8;\n            }" { (expression_statement "*(undefined8 *)((long)param_2 + uVar8) = 0;" (assignment_expression "*(undefined8 *)((long)param_2 + uVar8) = 0" (pointer_expression "*(undefined8 *)((long)param_2 + uVar8)" * (cast_expression "(undefined8 *)((long)param_2 + uVar8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_2 + uVar8)" ( (binary_expression "(long)param_2 + uVar8" (cast_expression "(long)param_2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) )))) = number_literal) ;) (expression_statement "uVar8 = uVar8 + 8;" (assignment_expression "uVar8 = uVar8 + 8" identifier = (binary_expression "uVar8 + 8" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar8 < (uVar7 & 0xfffffffffffffff8))" ( (binary_expression "uVar8 < (uVar7 & 0xfffffffffffffff8)" identifier < (parenthesized_expression "(uVar7 & 0xfffffffffffffff8)" ( (binary_expression "uVar7 & 0xfffffffffffffff8" identifier & number_literal) ))) )) ;) (expression_statement "param_2 = (undefined4 *)(uVar8 + (long)param_2);" (assignment_expression "param_2 = (undefined4 *)(uVar8 + (long)param_2)" identifier = (cast_expression "(undefined4 *)(uVar8 + (long)param_2)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar8 + (long)param_2)" ( (binary_expression "uVar8 + (long)param_2" identifier + (cast_expression "(long)param_2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )))) ;) })) (if_statement "if ((uVar7 & 4) != 0) {\n            *param_2 = 0;\n            param_2 = param_2 + 1;\n          }" if (parenthesized_expression "((uVar7 & 4) != 0)" ( (binary_expression "(uVar7 & 4) != 0" (parenthesized_expression "(uVar7 & 4)" ( (binary_expression "uVar7 & 4" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n            *param_2 = 0;\n            param_2 = param_2 + 1;\n          }" { (expression_statement "*param_2 = 0;" (assignment_expression "*param_2 = 0" (pointer_expression "*param_2" * identifier) = number_literal) ;) (expression_statement "param_2 = param_2 + 1;" (assignment_expression "param_2 = param_2 + 1" identifier = (binary_expression "param_2 + 1" identifier + number_literal)) ;) })) (expression_statement "puVar10 = param_2;" (assignment_expression "puVar10 = param_2" identifier = identifier) ;) (if_statement "if ((uVar6 & 2) != 0) {\n            puVar10 = (undefined4 *)((long)param_2 + 2);\n            *(undefined2 *)param_2 = 0;\n          }" if (parenthesized_expression "((uVar6 & 2) != 0)" ( (binary_expression "(uVar6 & 2) != 0" (parenthesized_expression "(uVar6 & 2)" ( (binary_expression "uVar6 & 2" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n            puVar10 = (undefined4 *)((long)param_2 + 2);\n            *(undefined2 *)param_2 = 0;\n          }" { (expression_statement "puVar10 = (undefined4 *)((long)param_2 + 2);" (assignment_expression "puVar10 = (undefined4 *)((long)param_2 + 2)" identifier = (cast_expression "(undefined4 *)((long)param_2 + 2)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_2 + 2)" ( (binary_expression "(long)param_2 + 2" (cast_expression "(long)param_2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) ;) (expression_statement "*(undefined2 *)param_2 = 0;" (assignment_expression "*(undefined2 *)param_2 = 0" (pointer_expression "*(undefined2 *)param_2" * (cast_expression "(undefined2 *)param_2" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) })) (if_statement "if ((uVar6 & 1) != 0) {\n            *(undefined1 *)puVar10 = 0;\n            return iVar3;\n          }" if (parenthesized_expression "((uVar6 & 1) != 0)" ( (binary_expression "(uVar6 & 1) != 0" (parenthesized_expression "(uVar6 & 1)" ( (binary_expression "uVar6 & 1" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n            *(undefined1 *)puVar10 = 0;\n            return iVar3;\n          }" { (expression_statement "*(undefined1 *)puVar10 = 0;" (assignment_expression "*(undefined1 *)puVar10 = 0" (pointer_expression "*(undefined1 *)puVar10" * (cast_expression "(undefined1 *)puVar10" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (return_statement "return iVar3;" return identifier ;) })) }) (else_clause "else {\n          puVar9 = (undefined8 *)((long)iVar12 + (long)param_2);\n          if (uVar7 < 8) {\n            if ((uVar7 & 4) != 0) {\n              *(undefined4 *)puVar9 = 0;\n              *(undefined4 *)((long)puVar9 + (uVar7 - 4)) = 0;\n              return iVar3;\n            }\n            if ((uVar7 != 0) && (*(undefined1 *)puVar9 = 0, (uVar6 & 2) != 0)) {\n              *(undefined2 *)((long)puVar9 + (uVar7 - 2)) = 0;\n              return iVar3;\n            }\n          }\n          else {\n            *puVar9 = 0;\n            *(undefined8 *)((long)puVar9 + (uVar7 - 8)) = 0;\n            uVar7 = (ulong)((long)puVar9 + (uVar7 - ((ulong)(puVar9 + 1) & 0xfffffffffffffff8))) &\n                    0xfffffffffffffff8;\n            if (7 < uVar7) {\n              uVar8 = 0;\n              do {\n                *(undefined8 *)(((ulong)(puVar9 + 1) & 0xfffffffffffffff8) + uVar8) = 0;\n                uVar8 = uVar8 + 8;\n              } while (uVar8 < uVar7);\n              return iVar3;\n            }\n          }\n        }" else (compound_statement "{\n          puVar9 = (undefined8 *)((long)iVar12 + (long)param_2);\n          if (uVar7 < 8) {\n            if ((uVar7 & 4) != 0) {\n              *(undefined4 *)puVar9 = 0;\n              *(undefined4 *)((long)puVar9 + (uVar7 - 4)) = 0;\n              return iVar3;\n            }\n            if ((uVar7 != 0) && (*(undefined1 *)puVar9 = 0, (uVar6 & 2) != 0)) {\n              *(undefined2 *)((long)puVar9 + (uVar7 - 2)) = 0;\n              return iVar3;\n            }\n          }\n          else {\n            *puVar9 = 0;\n            *(undefined8 *)((long)puVar9 + (uVar7 - 8)) = 0;\n            uVar7 = (ulong)((long)puVar9 + (uVar7 - ((ulong)(puVar9 + 1) & 0xfffffffffffffff8))) &\n                    0xfffffffffffffff8;\n            if (7 < uVar7) {\n              uVar8 = 0;\n              do {\n                *(undefined8 *)(((ulong)(puVar9 + 1) & 0xfffffffffffffff8) + uVar8) = 0;\n                uVar8 = uVar8 + 8;\n              } while (uVar8 < uVar7);\n              return iVar3;\n            }\n          }\n        }" { (expression_statement "puVar9 = (undefined8 *)((long)iVar12 + (long)param_2);" (assignment_expression "puVar9 = (undefined8 *)((long)iVar12 + (long)param_2)" identifier = (cast_expression "(undefined8 *)((long)iVar12 + (long)param_2)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)iVar12 + (long)param_2)" ( (binary_expression "(long)iVar12 + (long)param_2" (cast_expression "(long)iVar12" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (cast_expression "(long)param_2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )))) ;) (if_statement "if (uVar7 < 8) {\n            if ((uVar7 & 4) != 0) {\n              *(undefined4 *)puVar9 = 0;\n              *(undefined4 *)((long)puVar9 + (uVar7 - 4)) = 0;\n              return iVar3;\n            }\n            if ((uVar7 != 0) && (*(undefined1 *)puVar9 = 0, (uVar6 & 2) != 0)) {\n              *(undefined2 *)((long)puVar9 + (uVar7 - 2)) = 0;\n              return iVar3;\n            }\n          }\n          else {\n            *puVar9 = 0;\n            *(undefined8 *)((long)puVar9 + (uVar7 - 8)) = 0;\n            uVar7 = (ulong)((long)puVar9 + (uVar7 - ((ulong)(puVar9 + 1) & 0xfffffffffffffff8))) &\n                    0xfffffffffffffff8;\n            if (7 < uVar7) {\n              uVar8 = 0;\n              do {\n                *(undefined8 *)(((ulong)(puVar9 + 1) & 0xfffffffffffffff8) + uVar8) = 0;\n                uVar8 = uVar8 + 8;\n              } while (uVar8 < uVar7);\n              return iVar3;\n            }\n          }" if (parenthesized_expression "(uVar7 < 8)" ( (binary_expression "uVar7 < 8" identifier < number_literal) )) (compound_statement "{\n            if ((uVar7 & 4) != 0) {\n              *(undefined4 *)puVar9 = 0;\n              *(undefined4 *)((long)puVar9 + (uVar7 - 4)) = 0;\n              return iVar3;\n            }\n            if ((uVar7 != 0) && (*(undefined1 *)puVar9 = 0, (uVar6 & 2) != 0)) {\n              *(undefined2 *)((long)puVar9 + (uVar7 - 2)) = 0;\n              return iVar3;\n            }\n          }" { (if_statement "if ((uVar7 & 4) != 0) {\n              *(undefined4 *)puVar9 = 0;\n              *(undefined4 *)((long)puVar9 + (uVar7 - 4)) = 0;\n              return iVar3;\n            }" if (parenthesized_expression "((uVar7 & 4) != 0)" ( (binary_expression "(uVar7 & 4) != 0" (parenthesized_expression "(uVar7 & 4)" ( (binary_expression "uVar7 & 4" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n              *(undefined4 *)puVar9 = 0;\n              *(undefined4 *)((long)puVar9 + (uVar7 - 4)) = 0;\n              return iVar3;\n            }" { (expression_statement "*(undefined4 *)puVar9 = 0;" (assignment_expression "*(undefined4 *)puVar9 = 0" (pointer_expression "*(undefined4 *)puVar9" * (cast_expression "(undefined4 *)puVar9" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (expression_statement "*(undefined4 *)((long)puVar9 + (uVar7 - 4)) = 0;" (assignment_expression "*(undefined4 *)((long)puVar9 + (uVar7 - 4)) = 0" (pointer_expression "*(undefined4 *)((long)puVar9 + (uVar7 - 4))" * (cast_expression "(undefined4 *)((long)puVar9 + (uVar7 - 4))" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar9 + (uVar7 - 4))" ( (binary_expression "(long)puVar9 + (uVar7 - 4)" (cast_expression "(long)puVar9" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (parenthesized_expression "(uVar7 - 4)" ( (binary_expression "uVar7 - 4" identifier - number_literal) ))) )))) = number_literal) ;) (return_statement "return iVar3;" return identifier ;) })) (if_statement "if ((uVar7 != 0) && (*(undefined1 *)puVar9 = 0, (uVar6 & 2) != 0)) {\n              *(undefined2 *)((long)puVar9 + (uVar7 - 2)) = 0;\n              return iVar3;\n            }" if (parenthesized_expression "((uVar7 != 0) && (*(undefined1 *)puVar9 = 0, (uVar6 & 2) != 0))" ( (binary_expression "(uVar7 != 0) && (*(undefined1 *)puVar9 = 0, (uVar6 & 2) != 0)" (parenthesized_expression "(uVar7 != 0)" ( (binary_expression "uVar7 != 0" identifier != number_literal) )) && (parenthesized_expression "(*(undefined1 *)puVar9 = 0, (uVar6 & 2) != 0)" ( (comma_expression "*(undefined1 *)puVar9 = 0, (uVar6 & 2) != 0" (assignment_expression "*(undefined1 *)puVar9 = 0" (pointer_expression "*(undefined1 *)puVar9" * (cast_expression "(undefined1 *)puVar9" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) , (binary_expression "(uVar6 & 2) != 0" (parenthesized_expression "(uVar6 & 2)" ( (binary_expression "uVar6 & 2" identifier & number_literal) )) != number_literal)) ))) )) (compound_statement "{\n              *(undefined2 *)((long)puVar9 + (uVar7 - 2)) = 0;\n              return iVar3;\n            }" { (expression_statement "*(undefined2 *)((long)puVar9 + (uVar7 - 2)) = 0;" (assignment_expression "*(undefined2 *)((long)puVar9 + (uVar7 - 2)) = 0" (pointer_expression "*(undefined2 *)((long)puVar9 + (uVar7 - 2))" * (cast_expression "(undefined2 *)((long)puVar9 + (uVar7 - 2))" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar9 + (uVar7 - 2))" ( (binary_expression "(long)puVar9 + (uVar7 - 2)" (cast_expression "(long)puVar9" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (parenthesized_expression "(uVar7 - 2)" ( (binary_expression "uVar7 - 2" identifier - number_literal) ))) )))) = number_literal) ;) (return_statement "return iVar3;" return identifier ;) })) }) (else_clause "else {\n            *puVar9 = 0;\n            *(undefined8 *)((long)puVar9 + (uVar7 - 8)) = 0;\n            uVar7 = (ulong)((long)puVar9 + (uVar7 - ((ulong)(puVar9 + 1) & 0xfffffffffffffff8))) &\n                    0xfffffffffffffff8;\n            if (7 < uVar7) {\n              uVar8 = 0;\n              do {\n                *(undefined8 *)(((ulong)(puVar9 + 1) & 0xfffffffffffffff8) + uVar8) = 0;\n                uVar8 = uVar8 + 8;\n              } while (uVar8 < uVar7);\n              return iVar3;\n            }\n          }" else (compound_statement "{\n            *puVar9 = 0;\n            *(undefined8 *)((long)puVar9 + (uVar7 - 8)) = 0;\n            uVar7 = (ulong)((long)puVar9 + (uVar7 - ((ulong)(puVar9 + 1) & 0xfffffffffffffff8))) &\n                    0xfffffffffffffff8;\n            if (7 < uVar7) {\n              uVar8 = 0;\n              do {\n                *(undefined8 *)(((ulong)(puVar9 + 1) & 0xfffffffffffffff8) + uVar8) = 0;\n                uVar8 = uVar8 + 8;\n              } while (uVar8 < uVar7);\n              return iVar3;\n            }\n          }" { (expression_statement "*puVar9 = 0;" (assignment_expression "*puVar9 = 0" (pointer_expression "*puVar9" * identifier) = number_literal) ;) (expression_statement "*(undefined8 *)((long)puVar9 + (uVar7 - 8)) = 0;" (assignment_expression "*(undefined8 *)((long)puVar9 + (uVar7 - 8)) = 0" (pointer_expression "*(undefined8 *)((long)puVar9 + (uVar7 - 8))" * (cast_expression "(undefined8 *)((long)puVar9 + (uVar7 - 8))" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar9 + (uVar7 - 8))" ( (binary_expression "(long)puVar9 + (uVar7 - 8)" (cast_expression "(long)puVar9" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (parenthesized_expression "(uVar7 - 8)" ( (binary_expression "uVar7 - 8" identifier - number_literal) ))) )))) = number_literal) ;) (expression_statement "uVar7 = (ulong)((long)puVar9 + (uVar7 - ((ulong)(puVar9 + 1) & 0xfffffffffffffff8))) &\n                    0xfffffffffffffff8;" (assignment_expression "uVar7 = (ulong)((long)puVar9 + (uVar7 - ((ulong)(puVar9 + 1) & 0xfffffffffffffff8))) &\n                    0xfffffffffffffff8" identifier = (binary_expression "(ulong)((long)puVar9 + (uVar7 - ((ulong)(puVar9 + 1) & 0xfffffffffffffff8))) &\n                    0xfffffffffffffff8" (call_expression "(ulong)((long)puVar9 + (uVar7 - ((ulong)(puVar9 + 1) & 0xfffffffffffffff8)))" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((long)puVar9 + (uVar7 - ((ulong)(puVar9 + 1) & 0xfffffffffffffff8)))" ( (binary_expression "(long)puVar9 + (uVar7 - ((ulong)(puVar9 + 1) & 0xfffffffffffffff8))" (cast_expression "(long)puVar9" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (parenthesized_expression "(uVar7 - ((ulong)(puVar9 + 1) & 0xfffffffffffffff8))" ( (binary_expression "uVar7 - ((ulong)(puVar9 + 1) & 0xfffffffffffffff8)" identifier - (parenthesized_expression "((ulong)(puVar9 + 1) & 0xfffffffffffffff8)" ( (binary_expression "(ulong)(puVar9 + 1) & 0xfffffffffffffff8" (call_expression "(ulong)(puVar9 + 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(puVar9 + 1)" ( (binary_expression "puVar9 + 1" identifier + number_literal) ))) & number_literal) ))) ))) ))) & number_literal)) ;) (if_statement "if (7 < uVar7) {\n              uVar8 = 0;\n              do {\n                *(undefined8 *)(((ulong)(puVar9 + 1) & 0xfffffffffffffff8) + uVar8) = 0;\n                uVar8 = uVar8 + 8;\n              } while (uVar8 < uVar7);\n              return iVar3;\n            }" if (parenthesized_expression "(7 < uVar7)" ( (binary_expression "7 < uVar7" number_literal < identifier) )) (compound_statement "{\n              uVar8 = 0;\n              do {\n                *(undefined8 *)(((ulong)(puVar9 + 1) & 0xfffffffffffffff8) + uVar8) = 0;\n                uVar8 = uVar8 + 8;\n              } while (uVar8 < uVar7);\n              return iVar3;\n            }" { (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;) (do_statement "do {\n                *(undefined8 *)(((ulong)(puVar9 + 1) & 0xfffffffffffffff8) + uVar8) = 0;\n                uVar8 = uVar8 + 8;\n              } while (uVar8 < uVar7);" do (compound_statement "{\n                *(undefined8 *)(((ulong)(puVar9 + 1) & 0xfffffffffffffff8) + uVar8) = 0;\n                uVar8 = uVar8 + 8;\n              }" { (expression_statement "*(undefined8 *)(((ulong)(puVar9 + 1) & 0xfffffffffffffff8) + uVar8) = 0;" (assignment_expression "*(undefined8 *)(((ulong)(puVar9 + 1) & 0xfffffffffffffff8) + uVar8) = 0" (pointer_expression "*(undefined8 *)(((ulong)(puVar9 + 1) & 0xfffffffffffffff8) + uVar8)" * (cast_expression "(undefined8 *)(((ulong)(puVar9 + 1) & 0xfffffffffffffff8) + uVar8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(((ulong)(puVar9 + 1) & 0xfffffffffffffff8) + uVar8)" ( (binary_expression "((ulong)(puVar9 + 1) & 0xfffffffffffffff8) + uVar8" (parenthesized_expression "((ulong)(puVar9 + 1) & 0xfffffffffffffff8)" ( (binary_expression "(ulong)(puVar9 + 1) & 0xfffffffffffffff8" (call_expression "(ulong)(puVar9 + 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(puVar9 + 1)" ( (binary_expression "puVar9 + 1" identifier + number_literal) ))) & number_literal) )) + identifier) )))) = number_literal) ;) (expression_statement "uVar8 = uVar8 + 8;" (assignment_expression "uVar8 = uVar8 + 8" identifier = (binary_expression "uVar8 + 8" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar8 < uVar7)" ( (binary_expression "uVar8 < uVar7" identifier < identifier) )) ;) (return_statement "return iVar3;" return identifier ;) })) }))) }))) })) (return_statement "return iVar3;" return identifier ;) })) (labeled_statement "LAB_00126f8e:\n    DAT_00175a40 = DAT_00175a40 + 1;" statement_identifier : (expression_statement "DAT_00175a40 = DAT_00175a40 + 1;" (assignment_expression "DAT_00175a40 = DAT_00175a40 + 1" identifier = (binary_expression "DAT_00175a40 + 1" identifier + number_literal)) ;)) }) while (parenthesized_expression "( true )" ( true )) ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (switch_statement switch (parenthesized_expression ( IDENT )) (compound_statement { (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT : (expression_statement (assignment_expression IDENT = LIT) ;) (break_statement break ;)) (case_statement default : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence string_content escape_sequence ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (return_statement return LIT ;)) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT : (expression_statement (assignment_expression IDENT = LIT) ;) (break_statement break ;)) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT : (expression_statement (assignment_expression IDENT = LIT) ;)) })) (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ IDENT ])) ;) (while_statement while (parenthesized_expression ( (binary_expression IDENT != (char_literal ' character ')) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) == (char_literal ' character ')) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT * (char_literal ' escape_sequence '))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT == LIT) )) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ IDENT ]) != (char_literal ' character ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ IDENT ]) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (parenthesized_expression ( (binary_expression IDENT - IDENT) )))) + LIT) )))) = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) )))) = IDENT) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ IDENT ])) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT - IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT < (parenthesized_expression ( (binary_expression IDENT & LIT) ))) )) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) )))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = LIT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = LIT) ;) (return_statement return IDENT ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + (parenthesized_expression ( (binary_expression IDENT - LIT) ))) )))) = LIT) ;) (return_statement return IDENT ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = LIT) , (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + (parenthesized_expression ( (binary_expression IDENT - LIT) ))) )))) = LIT) ;) (return_statement return IDENT ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + (parenthesized_expression ( (binary_expression IDENT - LIT) ))) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + (parenthesized_expression ( (binary_expression IDENT - (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + LIT) ))) & LIT) ))) ))) ))) & LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + LIT) ))) & LIT) )) + IDENT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT < IDENT) )) ;) (return_statement return IDENT ;) })) }))) }))) })) (return_statement return IDENT ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) }) while (parenthesized_expression ( BOOL )) ;) })))
(function_definition "int FUN_00126ea0(undefined4 param_1,undefined4 *param_2)\n\n{\n  byte bVar1;\n  byte *pbVar2;\n  int iVar3;\n  undefined8 uVar4;\n  char cVar5;\n  uint uVar6;\n  ulong uVar7;\n  ulong uVar8;\n  undefined8 *puVar9;\n  undefined4 *puVar10;\n  byte *pbVar11;\n  int iVar12;\n  \n  switch(param_1) {\n  case 0x44:\n  case 0x52:\n  case 100:\n  case 0x72:\n    iVar3 = 8;\n    break;\n  default:\n    uVar4 = dcgettext(0,"unknown floating type type \'%c\'",5);\n    FUN_00126580(uVar4,param_1);\n    return -1;\n  case 0x46:\n  case 0x53:\n  case 0x66:\n  case 0x73:\n    iVar3 = 4;\n    break;\n  case 0x50:\n  case 0x58:\n  case 0x70:\n  case 0x78:\n    iVar3 = 0xc;\n  }\n  iVar12 = 0;\n  do {\n    bVar1 = *DAT_00175a40;\n    uVar7 = (ulong)bVar1;\n    cVar5 = _hex_value[uVar7];\n    while (cVar5 != 'c') {\n      if ((char)uVar7 == '_') goto LAB_00126f8e;\n      if (iVar3 <= iVar12) {\n        uVar4 = dcgettext(0,"floating point constant too large",5);\n        FUN_001263b0(uVar4);\n        return -1;\n      }\n      cVar5 = cVar5 * '\x10';\n      pbVar11 = DAT_00175a40 + 1;\n      bVar1 = DAT_00175a40[1];\n      if (bVar1 == 0x5f) {\n        pbVar2 = DAT_00175a40 + 2;\n        do {\n          pbVar11 = pbVar2;\n          bVar1 = *pbVar11;\n          pbVar2 = pbVar11 + 1;\n        } while (bVar1 == 0x5f);\n      }\n      DAT_00175a40 = pbVar11;\n      if (_hex_value[bVar1] != 'c') {\n        cVar5 = _hex_value[bVar1] + cVar5;\n        DAT_00175a40 = pbVar11 + 1;\n      }\n      if (DAT_0016c4c8 == 0) {\n        *(char *)((long)param_2 + (long)(iVar3 - iVar12) + -1) = cVar5;\n      }\n      else {\n        *(char *)((long)param_2 + (long)iVar12) = cVar5;\n      }\n      iVar12 = iVar12 + 1;\n      bVar1 = *DAT_00175a40;\n      uVar7 = (ulong)bVar1;\n      cVar5 = _hex_value[uVar7];\n    }\n    if (bVar1 != 0x5f) {\n      if (iVar12 < iVar3) {\n        uVar6 = iVar3 - iVar12;\n        uVar7 = (ulong)(int)uVar6;\n        if (DAT_0016c4c8 == 0) {\n          if (7 < uVar7) {\n            uVar8 = 0;\n            do {\n              *(undefined8 *)((long)param_2 + uVar8) = 0;\n              uVar8 = uVar8 + 8;\n            } while (uVar8 < (uVar7 & 0xfffffffffffffff8));\n            param_2 = (undefined4 *)(uVar8 + (long)param_2);\n          }\n          if ((uVar7 & 4) != 0) {\n            *param_2 = 0;\n            param_2 = param_2 + 1;\n          }\n          puVar10 = param_2;\n          if ((uVar6 & 2) != 0) {\n            puVar10 = (undefined4 *)((long)param_2 + 2);\n            *(undefined2 *)param_2 = 0;\n          }\n          if ((uVar6 & 1) != 0) {\n            *(undefined1 *)puVar10 = 0;\n            return iVar3;\n          }\n        }\n        else {\n          puVar9 = (undefined8 *)((long)iVar12 + (long)param_2);\n          if (uVar7 < 8) {\n            if ((uVar7 & 4) != 0) {\n              *(undefined4 *)puVar9 = 0;\n              *(undefined4 *)((long)puVar9 + (uVar7 - 4)) = 0;\n              return iVar3;\n            }\n            if ((uVar7 != 0) && (*(undefined1 *)puVar9 = 0, (uVar6 & 2) != 0)) {\n              *(undefined2 *)((long)puVar9 + (uVar7 - 2)) = 0;\n              return iVar3;\n            }\n          }\n          else {\n            *puVar9 = 0;\n            *(undefined8 *)((long)puVar9 + (uVar7 - 8)) = 0;\n            uVar7 = (ulong)((long)puVar9 + (uVar7 - ((ulong)(puVar9 + 1) & 0xfffffffffffffff8))) &\n                    0xfffffffffffffff8;\n            if (7 < uVar7) {\n              uVar8 = 0;\n              do {\n                *(undefined8 *)(((ulong)(puVar9 + 1) & 0xfffffffffffffff8) + uVar8) = 0;\n                uVar8 = uVar8 + 8;\n              } while (uVar8 < uVar7);\n              return iVar3;\n            }\n          }\n        }\n      }\n      return iVar3;\n    }\nLAB_00126f8e:\n    DAT_00175a40 = DAT_00175a40 + 1;\n  } while( true );\n}" (primitive_type "int") (function_declarator "FUN_00126ea0(undefined4 param_1,undefined4 *param_2)" (identifier "FUN_00126ea0") (parameter_list "(undefined4 param_1,undefined4 *param_2)" (( "(") (parameter_declaration "undefined4 param_1" (type_identifier "undefined4") (identifier "param_1")) (, ",") (parameter_declaration "undefined4 *param_2" (type_identifier "undefined4") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) () ")"))) (compound_statement "{\n  byte bVar1;\n  byte *pbVar2;\n  int iVar3;\n  undefined8 uVar4;\n  char cVar5;\n  uint uVar6;\n  ulong uVar7;\n  ulong uVar8;\n  undefined8 *puVar9;\n  undefined4 *puVar10;\n  byte *pbVar11;\n  int iVar12;\n  \n  switch(param_1) {\n  case 0x44:\n  case 0x52:\n  case 100:\n  case 0x72:\n    iVar3 = 8;\n    break;\n  default:\n    uVar4 = dcgettext(0,"unknown floating type type \'%c\'",5);\n    FUN_00126580(uVar4,param_1);\n    return -1;\n  case 0x46:\n  case 0x53:\n  case 0x66:\n  case 0x73:\n    iVar3 = 4;\n    break;\n  case 0x50:\n  case 0x58:\n  case 0x70:\n  case 0x78:\n    iVar3 = 0xc;\n  }\n  iVar12 = 0;\n  do {\n    bVar1 = *DAT_00175a40;\n    uVar7 = (ulong)bVar1;\n    cVar5 = _hex_value[uVar7];\n    while (cVar5 != 'c') {\n      if ((char)uVar7 == '_') goto LAB_00126f8e;\n      if (iVar3 <= iVar12) {\n        uVar4 = dcgettext(0,"floating point constant too large",5);\n        FUN_001263b0(uVar4);\n        return -1;\n      }\n      cVar5 = cVar5 * '\x10';\n      pbVar11 = DAT_00175a40 + 1;\n      bVar1 = DAT_00175a40[1];\n      if (bVar1 == 0x5f) {\n        pbVar2 = DAT_00175a40 + 2;\n        do {\n          pbVar11 = pbVar2;\n          bVar1 = *pbVar11;\n          pbVar2 = pbVar11 + 1;\n        } while (bVar1 == 0x5f);\n      }\n      DAT_00175a40 = pbVar11;\n      if (_hex_value[bVar1] != 'c') {\n        cVar5 = _hex_value[bVar1] + cVar5;\n        DAT_00175a40 = pbVar11 + 1;\n      }\n      if (DAT_0016c4c8 == 0) {\n        *(char *)((long)param_2 + (long)(iVar3 - iVar12) + -1) = cVar5;\n      }\n      else {\n        *(char *)((long)param_2 + (long)iVar12) = cVar5;\n      }\n      iVar12 = iVar12 + 1;\n      bVar1 = *DAT_00175a40;\n      uVar7 = (ulong)bVar1;\n      cVar5 = _hex_value[uVar7];\n    }\n    if (bVar1 != 0x5f) {\n      if (iVar12 < iVar3) {\n        uVar6 = iVar3 - iVar12;\n        uVar7 = (ulong)(int)uVar6;\n        if (DAT_0016c4c8 == 0) {\n          if (7 < uVar7) {\n            uVar8 = 0;\n            do {\n              *(undefined8 *)((long)param_2 + uVar8) = 0;\n              uVar8 = uVar8 + 8;\n            } while (uVar8 < (uVar7 & 0xfffffffffffffff8));\n            param_2 = (undefined4 *)(uVar8 + (long)param_2);\n          }\n          if ((uVar7 & 4) != 0) {\n            *param_2 = 0;\n            param_2 = param_2 + 1;\n          }\n          puVar10 = param_2;\n          if ((uVar6 & 2) != 0) {\n            puVar10 = (undefined4 *)((long)param_2 + 2);\n            *(undefined2 *)param_2 = 0;\n          }\n          if ((uVar6 & 1) != 0) {\n            *(undefined1 *)puVar10 = 0;\n            return iVar3;\n          }\n        }\n        else {\n          puVar9 = (undefined8 *)((long)iVar12 + (long)param_2);\n          if (uVar7 < 8) {\n            if ((uVar7 & 4) != 0) {\n              *(undefined4 *)puVar9 = 0;\n              *(undefined4 *)((long)puVar9 + (uVar7 - 4)) = 0;\n              return iVar3;\n            }\n            if ((uVar7 != 0) && (*(undefined1 *)puVar9 = 0, (uVar6 & 2) != 0)) {\n              *(undefined2 *)((long)puVar9 + (uVar7 - 2)) = 0;\n              return iVar3;\n            }\n          }\n          else {\n            *puVar9 = 0;\n            *(undefined8 *)((long)puVar9 + (uVar7 - 8)) = 0;\n            uVar7 = (ulong)((long)puVar9 + (uVar7 - ((ulong)(puVar9 + 1) & 0xfffffffffffffff8))) &\n                    0xfffffffffffffff8;\n            if (7 < uVar7) {\n              uVar8 = 0;\n              do {\n                *(undefined8 *)(((ulong)(puVar9 + 1) & 0xfffffffffffffff8) + uVar8) = 0;\n                uVar8 = uVar8 + 8;\n              } while (uVar8 < uVar7);\n              return iVar3;\n            }\n          }\n        }\n      }\n      return iVar3;\n    }\nLAB_00126f8e:\n    DAT_00175a40 = DAT_00175a40 + 1;\n  } while( true );\n}" ({ "{") (declaration "byte bVar1;" (type_identifier "byte") (identifier "bVar1") (; ";")) (declaration "byte *pbVar2;" (type_identifier "byte") (pointer_declarator "*pbVar2" (* "*") (identifier "pbVar2")) (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "undefined8 uVar4;" (type_identifier "undefined8") (identifier "uVar4") (; ";")) (declaration "char cVar5;" (primitive_type "char") (identifier "cVar5") (; ";")) (declaration "uint uVar6;" (type_identifier "uint") (identifier "uVar6") (; ";")) (declaration "ulong uVar7;" (type_identifier "ulong") (identifier "uVar7") (; ";")) (declaration "ulong uVar8;" (type_identifier "ulong") (identifier "uVar8") (; ";")) (declaration "undefined8 *puVar9;" (type_identifier "undefined8") (pointer_declarator "*puVar9" (* "*") (identifier "puVar9")) (; ";")) (declaration "undefined4 *puVar10;" (type_identifier "undefined4") (pointer_declarator "*puVar10" (* "*") (identifier "puVar10")) (; ";")) (declaration "byte *pbVar11;" (type_identifier "byte") (pointer_declarator "*pbVar11" (* "*") (identifier "pbVar11")) (; ";")) (declaration "int iVar12;" (primitive_type "int") (identifier "iVar12") (; ";")) (switch_statement "switch(param_1) {\n  case 0x44:\n  case 0x52:\n  case 100:\n  case 0x72:\n    iVar3 = 8;\n    break;\n  default:\n    uVar4 = dcgettext(0,"unknown floating type type \'%c\'",5);\n    FUN_00126580(uVar4,param_1);\n    return -1;\n  case 0x46:\n  case 0x53:\n  case 0x66:\n  case 0x73:\n    iVar3 = 4;\n    break;\n  case 0x50:\n  case 0x58:\n  case 0x70:\n  case 0x78:\n    iVar3 = 0xc;\n  }" (switch "switch") (parenthesized_expression "(param_1)" (( "(") (identifier "param_1") () ")")) (compound_statement "{\n  case 0x44:\n  case 0x52:\n  case 100:\n  case 0x72:\n    iVar3 = 8;\n    break;\n  default:\n    uVar4 = dcgettext(0,"unknown floating type type \'%c\'",5);\n    FUN_00126580(uVar4,param_1);\n    return -1;\n  case 0x46:\n  case 0x53:\n  case 0x66:\n  case 0x73:\n    iVar3 = 4;\n    break;\n  case 0x50:\n  case 0x58:\n  case 0x70:\n  case 0x78:\n    iVar3 = 0xc;\n  }" ({ "{") (case_statement "case 0x44:" (case "case") (number_literal "0x44") (: ":")) (case_statement "case 0x52:" (case "case") (number_literal "0x52") (: ":")) (case_statement "case 100:" (case "case") (number_literal "100") (: ":")) (case_statement "case 0x72:\n    iVar3 = 8;\n    break;" (case "case") (number_literal "0x72") (: ":") (expression_statement "iVar3 = 8;" (assignment_expression "iVar3 = 8" (identifier "iVar3") (= "=") (number_literal "8")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "default:\n    uVar4 = dcgettext(0,"unknown floating type type \'%c\'",5);\n    FUN_00126580(uVar4,param_1);\n    return -1;" (default "default") (: ":") (expression_statement "uVar4 = dcgettext(0,"unknown floating type type \'%c\'",5);" (assignment_expression "uVar4 = dcgettext(0,"unknown floating type type \'%c\'",5)" (identifier "uVar4") (= "=") (call_expression "dcgettext(0,"unknown floating type type \'%c\'",5)" (identifier "dcgettext") (argument_list "(0,"unknown floating type type \'%c\'",5)" (( "(") (number_literal "0") (, ",") (string_literal ""unknown floating type type \'%c\'"" (" """) (string_content "unknown floating type type ") (escape_sequence "\'") (string_content "%c") (escape_sequence "\'") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_00126580(uVar4,param_1);" (call_expression "FUN_00126580(uVar4,param_1)" (identifier "FUN_00126580") (argument_list "(uVar4,param_1)" (( "(") (identifier "uVar4") (, ",") (identifier "param_1") () ")"))) (; ";")) (return_statement "return -1;" (return "return") (number_literal "-1") (; ";"))) (case_statement "case 0x46:" (case "case") (number_literal "0x46") (: ":")) (case_statement "case 0x53:" (case "case") (number_literal "0x53") (: ":")) (case_statement "case 0x66:" (case "case") (number_literal "0x66") (: ":")) (case_statement "case 0x73:\n    iVar3 = 4;\n    break;" (case "case") (number_literal "0x73") (: ":") (expression_statement "iVar3 = 4;" (assignment_expression "iVar3 = 4" (identifier "iVar3") (= "=") (number_literal "4")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x50:" (case "case") (number_literal "0x50") (: ":")) (case_statement "case 0x58:" (case "case") (number_literal "0x58") (: ":")) (case_statement "case 0x70:" (case "case") (number_literal "0x70") (: ":")) (case_statement "case 0x78:\n    iVar3 = 0xc;" (case "case") (number_literal "0x78") (: ":") (expression_statement "iVar3 = 0xc;" (assignment_expression "iVar3 = 0xc" (identifier "iVar3") (= "=") (number_literal "0xc")) (; ";"))) (} "}"))) (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" (identifier "iVar12") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n    bVar1 = *DAT_00175a40;\n    uVar7 = (ulong)bVar1;\n    cVar5 = _hex_value[uVar7];\n    while (cVar5 != 'c') {\n      if ((char)uVar7 == '_') goto LAB_00126f8e;\n      if (iVar3 <= iVar12) {\n        uVar4 = dcgettext(0,"floating point constant too large",5);\n        FUN_001263b0(uVar4);\n        return -1;\n      }\n      cVar5 = cVar5 * '\x10';\n      pbVar11 = DAT_00175a40 + 1;\n      bVar1 = DAT_00175a40[1];\n      if (bVar1 == 0x5f) {\n        pbVar2 = DAT_00175a40 + 2;\n        do {\n          pbVar11 = pbVar2;\n          bVar1 = *pbVar11;\n          pbVar2 = pbVar11 + 1;\n        } while (bVar1 == 0x5f);\n      }\n      DAT_00175a40 = pbVar11;\n      if (_hex_value[bVar1] != 'c') {\n        cVar5 = _hex_value[bVar1] + cVar5;\n        DAT_00175a40 = pbVar11 + 1;\n      }\n      if (DAT_0016c4c8 == 0) {\n        *(char *)((long)param_2 + (long)(iVar3 - iVar12) + -1) = cVar5;\n      }\n      else {\n        *(char *)((long)param_2 + (long)iVar12) = cVar5;\n      }\n      iVar12 = iVar12 + 1;\n      bVar1 = *DAT_00175a40;\n      uVar7 = (ulong)bVar1;\n      cVar5 = _hex_value[uVar7];\n    }\n    if (bVar1 != 0x5f) {\n      if (iVar12 < iVar3) {\n        uVar6 = iVar3 - iVar12;\n        uVar7 = (ulong)(int)uVar6;\n        if (DAT_0016c4c8 == 0) {\n          if (7 < uVar7) {\n            uVar8 = 0;\n            do {\n              *(undefined8 *)((long)param_2 + uVar8) = 0;\n              uVar8 = uVar8 + 8;\n            } while (uVar8 < (uVar7 & 0xfffffffffffffff8));\n            param_2 = (undefined4 *)(uVar8 + (long)param_2);\n          }\n          if ((uVar7 & 4) != 0) {\n            *param_2 = 0;\n            param_2 = param_2 + 1;\n          }\n          puVar10 = param_2;\n          if ((uVar6 & 2) != 0) {\n            puVar10 = (undefined4 *)((long)param_2 + 2);\n            *(undefined2 *)param_2 = 0;\n          }\n          if ((uVar6 & 1) != 0) {\n            *(undefined1 *)puVar10 = 0;\n            return iVar3;\n          }\n        }\n        else {\n          puVar9 = (undefined8 *)((long)iVar12 + (long)param_2);\n          if (uVar7 < 8) {\n            if ((uVar7 & 4) != 0) {\n              *(undefined4 *)puVar9 = 0;\n              *(undefined4 *)((long)puVar9 + (uVar7 - 4)) = 0;\n              return iVar3;\n            }\n            if ((uVar7 != 0) && (*(undefined1 *)puVar9 = 0, (uVar6 & 2) != 0)) {\n              *(undefined2 *)((long)puVar9 + (uVar7 - 2)) = 0;\n              return iVar3;\n            }\n          }\n          else {\n            *puVar9 = 0;\n            *(undefined8 *)((long)puVar9 + (uVar7 - 8)) = 0;\n            uVar7 = (ulong)((long)puVar9 + (uVar7 - ((ulong)(puVar9 + 1) & 0xfffffffffffffff8))) &\n                    0xfffffffffffffff8;\n            if (7 < uVar7) {\n              uVar8 = 0;\n              do {\n                *(undefined8 *)(((ulong)(puVar9 + 1) & 0xfffffffffffffff8) + uVar8) = 0;\n                uVar8 = uVar8 + 8;\n              } while (uVar8 < uVar7);\n              return iVar3;\n            }\n          }\n        }\n      }\n      return iVar3;\n    }\nLAB_00126f8e:\n    DAT_00175a40 = DAT_00175a40 + 1;\n  } while( true );" (do "do") (compound_statement "{\n    bVar1 = *DAT_00175a40;\n    uVar7 = (ulong)bVar1;\n    cVar5 = _hex_value[uVar7];\n    while (cVar5 != 'c') {\n      if ((char)uVar7 == '_') goto LAB_00126f8e;\n      if (iVar3 <= iVar12) {\n        uVar4 = dcgettext(0,"floating point constant too large",5);\n        FUN_001263b0(uVar4);\n        return -1;\n      }\n      cVar5 = cVar5 * '\x10';\n      pbVar11 = DAT_00175a40 + 1;\n      bVar1 = DAT_00175a40[1];\n      if (bVar1 == 0x5f) {\n        pbVar2 = DAT_00175a40 + 2;\n        do {\n          pbVar11 = pbVar2;\n          bVar1 = *pbVar11;\n          pbVar2 = pbVar11 + 1;\n        } while (bVar1 == 0x5f);\n      }\n      DAT_00175a40 = pbVar11;\n      if (_hex_value[bVar1] != 'c') {\n        cVar5 = _hex_value[bVar1] + cVar5;\n        DAT_00175a40 = pbVar11 + 1;\n      }\n      if (DAT_0016c4c8 == 0) {\n        *(char *)((long)param_2 + (long)(iVar3 - iVar12) + -1) = cVar5;\n      }\n      else {\n        *(char *)((long)param_2 + (long)iVar12) = cVar5;\n      }\n      iVar12 = iVar12 + 1;\n      bVar1 = *DAT_00175a40;\n      uVar7 = (ulong)bVar1;\n      cVar5 = _hex_value[uVar7];\n    }\n    if (bVar1 != 0x5f) {\n      if (iVar12 < iVar3) {\n        uVar6 = iVar3 - iVar12;\n        uVar7 = (ulong)(int)uVar6;\n        if (DAT_0016c4c8 == 0) {\n          if (7 < uVar7) {\n            uVar8 = 0;\n            do {\n              *(undefined8 *)((long)param_2 + uVar8) = 0;\n              uVar8 = uVar8 + 8;\n            } while (uVar8 < (uVar7 & 0xfffffffffffffff8));\n            param_2 = (undefined4 *)(uVar8 + (long)param_2);\n          }\n          if ((uVar7 & 4) != 0) {\n            *param_2 = 0;\n            param_2 = param_2 + 1;\n          }\n          puVar10 = param_2;\n          if ((uVar6 & 2) != 0) {\n            puVar10 = (undefined4 *)((long)param_2 + 2);\n            *(undefined2 *)param_2 = 0;\n          }\n          if ((uVar6 & 1) != 0) {\n            *(undefined1 *)puVar10 = 0;\n            return iVar3;\n          }\n        }\n        else {\n          puVar9 = (undefined8 *)((long)iVar12 + (long)param_2);\n          if (uVar7 < 8) {\n            if ((uVar7 & 4) != 0) {\n              *(undefined4 *)puVar9 = 0;\n              *(undefined4 *)((long)puVar9 + (uVar7 - 4)) = 0;\n              return iVar3;\n            }\n            if ((uVar7 != 0) && (*(undefined1 *)puVar9 = 0, (uVar6 & 2) != 0)) {\n              *(undefined2 *)((long)puVar9 + (uVar7 - 2)) = 0;\n              return iVar3;\n            }\n          }\n          else {\n            *puVar9 = 0;\n            *(undefined8 *)((long)puVar9 + (uVar7 - 8)) = 0;\n            uVar7 = (ulong)((long)puVar9 + (uVar7 - ((ulong)(puVar9 + 1) & 0xfffffffffffffff8))) &\n                    0xfffffffffffffff8;\n            if (7 < uVar7) {\n              uVar8 = 0;\n              do {\n                *(undefined8 *)(((ulong)(puVar9 + 1) & 0xfffffffffffffff8) + uVar8) = 0;\n                uVar8 = uVar8 + 8;\n              } while (uVar8 < uVar7);\n              return iVar3;\n            }\n          }\n        }\n      }\n      return iVar3;\n    }\nLAB_00126f8e:\n    DAT_00175a40 = DAT_00175a40 + 1;\n  }" ({ "{") (expression_statement "bVar1 = *DAT_00175a40;" (assignment_expression "bVar1 = *DAT_00175a40" (identifier "bVar1") (= "=") (pointer_expression "*DAT_00175a40" (* "*") (identifier "DAT_00175a40"))) (; ";")) (expression_statement "uVar7 = (ulong)bVar1;" (assignment_expression "uVar7 = (ulong)bVar1" (identifier "uVar7") (= "=") (cast_expression "(ulong)bVar1" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar1"))) (; ";")) (expression_statement "cVar5 = _hex_value[uVar7];" (assignment_expression "cVar5 = _hex_value[uVar7]" (identifier "cVar5") (= "=") (subscript_expression "_hex_value[uVar7]" (identifier "_hex_value") ([ "[") (identifier "uVar7") (] "]"))) (; ";")) (while_statement "while (cVar5 != 'c') {\n      if ((char)uVar7 == '_') goto LAB_00126f8e;\n      if (iVar3 <= iVar12) {\n        uVar4 = dcgettext(0,"floating point constant too large",5);\n        FUN_001263b0(uVar4);\n        return -1;\n      }\n      cVar5 = cVar5 * '\x10';\n      pbVar11 = DAT_00175a40 + 1;\n      bVar1 = DAT_00175a40[1];\n      if (bVar1 == 0x5f) {\n        pbVar2 = DAT_00175a40 + 2;\n        do {\n          pbVar11 = pbVar2;\n          bVar1 = *pbVar11;\n          pbVar2 = pbVar11 + 1;\n        } while (bVar1 == 0x5f);\n      }\n      DAT_00175a40 = pbVar11;\n      if (_hex_value[bVar1] != 'c') {\n        cVar5 = _hex_value[bVar1] + cVar5;\n        DAT_00175a40 = pbVar11 + 1;\n      }\n      if (DAT_0016c4c8 == 0) {\n        *(char *)((long)param_2 + (long)(iVar3 - iVar12) + -1) = cVar5;\n      }\n      else {\n        *(char *)((long)param_2 + (long)iVar12) = cVar5;\n      }\n      iVar12 = iVar12 + 1;\n      bVar1 = *DAT_00175a40;\n      uVar7 = (ulong)bVar1;\n      cVar5 = _hex_value[uVar7];\n    }" (while "while") (parenthesized_expression "(cVar5 != 'c')" (( "(") (binary_expression "cVar5 != 'c'" (identifier "cVar5") (!= "!=") (char_literal "'c'" (' "'") (character "c") (' "'"))) () ")")) (compound_statement "{\n      if ((char)uVar7 == '_') goto LAB_00126f8e;\n      if (iVar3 <= iVar12) {\n        uVar4 = dcgettext(0,"floating point constant too large",5);\n        FUN_001263b0(uVar4);\n        return -1;\n      }\n      cVar5 = cVar5 * '\x10';\n      pbVar11 = DAT_00175a40 + 1;\n      bVar1 = DAT_00175a40[1];\n      if (bVar1 == 0x5f) {\n        pbVar2 = DAT_00175a40 + 2;\n        do {\n          pbVar11 = pbVar2;\n          bVar1 = *pbVar11;\n          pbVar2 = pbVar11 + 1;\n        } while (bVar1 == 0x5f);\n      }\n      DAT_00175a40 = pbVar11;\n      if (_hex_value[bVar1] != 'c') {\n        cVar5 = _hex_value[bVar1] + cVar5;\n        DAT_00175a40 = pbVar11 + 1;\n      }\n      if (DAT_0016c4c8 == 0) {\n        *(char *)((long)param_2 + (long)(iVar3 - iVar12) + -1) = cVar5;\n      }\n      else {\n        *(char *)((long)param_2 + (long)iVar12) = cVar5;\n      }\n      iVar12 = iVar12 + 1;\n      bVar1 = *DAT_00175a40;\n      uVar7 = (ulong)bVar1;\n      cVar5 = _hex_value[uVar7];\n    }" ({ "{") (if_statement "if ((char)uVar7 == '_') goto LAB_00126f8e;" (if "if") (parenthesized_expression "((char)uVar7 == '_')" (( "(") (binary_expression "(char)uVar7 == '_'" (cast_expression "(char)uVar7" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "uVar7")) (== "==") (char_literal "'_'" (' "'") (character "_") (' "'"))) () ")")) (goto_statement "goto LAB_00126f8e;" (goto "goto") (statement_identifier "LAB_00126f8e") (; ";"))) (if_statement "if (iVar3 <= iVar12) {\n        uVar4 = dcgettext(0,"floating point constant too large",5);\n        FUN_001263b0(uVar4);\n        return -1;\n      }" (if "if") (parenthesized_expression "(iVar3 <= iVar12)" (( "(") (binary_expression "iVar3 <= iVar12" (identifier "iVar3") (<= "<=") (identifier "iVar12")) () ")")) (compound_statement "{\n        uVar4 = dcgettext(0,"floating point constant too large",5);\n        FUN_001263b0(uVar4);\n        return -1;\n      }" ({ "{") (expression_statement "uVar4 = dcgettext(0,"floating point constant too large",5);" (assignment_expression "uVar4 = dcgettext(0,"floating point constant too large",5)" (identifier "uVar4") (= "=") (call_expression "dcgettext(0,"floating point constant too large",5)" (identifier "dcgettext") (argument_list "(0,"floating point constant too large",5)" (( "(") (number_literal "0") (, ",") (string_literal ""floating point constant too large"" (" """) (string_content "floating point constant too large") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_001263b0(uVar4);" (call_expression "FUN_001263b0(uVar4)" (identifier "FUN_001263b0") (argument_list "(uVar4)" (( "(") (identifier "uVar4") () ")"))) (; ";")) (return_statement "return -1;" (return "return") (number_literal "-1") (; ";")) (} "}"))) (expression_statement "cVar5 = cVar5 * '\x10';" (assignment_expression "cVar5 = cVar5 * '\x10'" (identifier "cVar5") (= "=") (binary_expression "cVar5 * '\x10'" (identifier "cVar5") (* "*") (char_literal "'\x10'" (' "'") (escape_sequence "\x10") (' "'")))) (; ";")) (expression_statement "pbVar11 = DAT_00175a40 + 1;" (assignment_expression "pbVar11 = DAT_00175a40 + 1" (identifier "pbVar11") (= "=") (binary_expression "DAT_00175a40 + 1" (identifier "DAT_00175a40") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "bVar1 = DAT_00175a40[1];" (assignment_expression "bVar1 = DAT_00175a40[1]" (identifier "bVar1") (= "=") (subscript_expression "DAT_00175a40[1]" (identifier "DAT_00175a40") ([ "[") (number_literal "1") (] "]"))) (; ";")) (if_statement "if (bVar1 == 0x5f) {\n        pbVar2 = DAT_00175a40 + 2;\n        do {\n          pbVar11 = pbVar2;\n          bVar1 = *pbVar11;\n          pbVar2 = pbVar11 + 1;\n        } while (bVar1 == 0x5f);\n      }" (if "if") (parenthesized_expression "(bVar1 == 0x5f)" (( "(") (binary_expression "bVar1 == 0x5f" (identifier "bVar1") (== "==") (number_literal "0x5f")) () ")")) (compound_statement "{\n        pbVar2 = DAT_00175a40 + 2;\n        do {\n          pbVar11 = pbVar2;\n          bVar1 = *pbVar11;\n          pbVar2 = pbVar11 + 1;\n        } while (bVar1 == 0x5f);\n      }" ({ "{") (expression_statement "pbVar2 = DAT_00175a40 + 2;" (assignment_expression "pbVar2 = DAT_00175a40 + 2" (identifier "pbVar2") (= "=") (binary_expression "DAT_00175a40 + 2" (identifier "DAT_00175a40") (+ "+") (number_literal "2"))) (; ";")) (do_statement "do {\n          pbVar11 = pbVar2;\n          bVar1 = *pbVar11;\n          pbVar2 = pbVar11 + 1;\n        } while (bVar1 == 0x5f);" (do "do") (compound_statement "{\n          pbVar11 = pbVar2;\n          bVar1 = *pbVar11;\n          pbVar2 = pbVar11 + 1;\n        }" ({ "{") (expression_statement "pbVar11 = pbVar2;" (assignment_expression "pbVar11 = pbVar2" (identifier "pbVar11") (= "=") (identifier "pbVar2")) (; ";")) (expression_statement "bVar1 = *pbVar11;" (assignment_expression "bVar1 = *pbVar11" (identifier "bVar1") (= "=") (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11"))) (; ";")) (expression_statement "pbVar2 = pbVar11 + 1;" (assignment_expression "pbVar2 = pbVar11 + 1" (identifier "pbVar2") (= "=") (binary_expression "pbVar11 + 1" (identifier "pbVar11") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar1 == 0x5f)" (( "(") (binary_expression "bVar1 == 0x5f" (identifier "bVar1") (== "==") (number_literal "0x5f")) () ")")) (; ";")) (} "}"))) (expression_statement "DAT_00175a40 = pbVar11;" (assignment_expression "DAT_00175a40 = pbVar11" (identifier "DAT_00175a40") (= "=") (identifier "pbVar11")) (; ";")) (if_statement "if (_hex_value[bVar1] != 'c') {\n        cVar5 = _hex_value[bVar1] + cVar5;\n        DAT_00175a40 = pbVar11 + 1;\n      }" (if "if") (parenthesized_expression "(_hex_value[bVar1] != 'c')" (( "(") (binary_expression "_hex_value[bVar1] != 'c'" (subscript_expression "_hex_value[bVar1]" (identifier "_hex_value") ([ "[") (identifier "bVar1") (] "]")) (!= "!=") (char_literal "'c'" (' "'") (character "c") (' "'"))) () ")")) (compound_statement "{\n        cVar5 = _hex_value[bVar1] + cVar5;\n        DAT_00175a40 = pbVar11 + 1;\n      }" ({ "{") (expression_statement "cVar5 = _hex_value[bVar1] + cVar5;" (assignment_expression "cVar5 = _hex_value[bVar1] + cVar5" (identifier "cVar5") (= "=") (binary_expression "_hex_value[bVar1] + cVar5" (subscript_expression "_hex_value[bVar1]" (identifier "_hex_value") ([ "[") (identifier "bVar1") (] "]")) (+ "+") (identifier "cVar5"))) (; ";")) (expression_statement "DAT_00175a40 = pbVar11 + 1;" (assignment_expression "DAT_00175a40 = pbVar11 + 1" (identifier "DAT_00175a40") (= "=") (binary_expression "pbVar11 + 1" (identifier "pbVar11") (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (if_statement "if (DAT_0016c4c8 == 0) {\n        *(char *)((long)param_2 + (long)(iVar3 - iVar12) + -1) = cVar5;\n      }\n      else {\n        *(char *)((long)param_2 + (long)iVar12) = cVar5;\n      }" (if "if") (parenthesized_expression "(DAT_0016c4c8 == 0)" (( "(") (binary_expression "DAT_0016c4c8 == 0" (identifier "DAT_0016c4c8") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        *(char *)((long)param_2 + (long)(iVar3 - iVar12) + -1) = cVar5;\n      }" ({ "{") (expression_statement "*(char *)((long)param_2 + (long)(iVar3 - iVar12) + -1) = cVar5;" (assignment_expression "*(char *)((long)param_2 + (long)(iVar3 - iVar12) + -1) = cVar5" (pointer_expression "*(char *)((long)param_2 + (long)(iVar3 - iVar12) + -1)" (* "*") (cast_expression "(char *)((long)param_2 + (long)(iVar3 - iVar12) + -1)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_2 + (long)(iVar3 - iVar12) + -1)" (( "(") (binary_expression "(long)param_2 + (long)(iVar3 - iVar12) + -1" (binary_expression "(long)param_2 + (long)(iVar3 - iVar12)" (cast_expression "(long)param_2" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_2")) (+ "+") (cast_expression "(long)(iVar3 - iVar12)" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (parenthesized_expression "(iVar3 - iVar12)" (( "(") (binary_expression "iVar3 - iVar12" (identifier "iVar3") (- "-") (identifier "iVar12")) () ")")))) (+ "+") (number_literal "-1")) () ")")))) (= "=") (identifier "cVar5")) (; ";")) (} "}")) (else_clause "else {\n        *(char *)((long)param_2 + (long)iVar12) = cVar5;\n      }" (else "else") (compound_statement "{\n        *(char *)((long)param_2 + (long)iVar12) = cVar5;\n      }" ({ "{") (expression_statement "*(char *)((long)param_2 + (long)iVar12) = cVar5;" (assignment_expression "*(char *)((long)param_2 + (long)iVar12) = cVar5" (pointer_expression "*(char *)((long)param_2 + (long)iVar12)" (* "*") (cast_expression "(char *)((long)param_2 + (long)iVar12)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_2 + (long)iVar12)" (( "(") (binary_expression "(long)param_2 + (long)iVar12" (cast_expression "(long)param_2" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_2")) (+ "+") (cast_expression "(long)iVar12" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "iVar12"))) () ")")))) (= "=") (identifier "cVar5")) (; ";")) (} "}")))) (expression_statement "iVar12 = iVar12 + 1;" (assignment_expression "iVar12 = iVar12 + 1" (identifier "iVar12") (= "=") (binary_expression "iVar12 + 1" (identifier "iVar12") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "bVar1 = *DAT_00175a40;" (assignment_expression "bVar1 = *DAT_00175a40" (identifier "bVar1") (= "=") (pointer_expression "*DAT_00175a40" (* "*") (identifier "DAT_00175a40"))) (; ";")) (expression_statement "uVar7 = (ulong)bVar1;" (assignment_expression "uVar7 = (ulong)bVar1" (identifier "uVar7") (= "=") (cast_expression "(ulong)bVar1" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar1"))) (; ";")) (expression_statement "cVar5 = _hex_value[uVar7];" (assignment_expression "cVar5 = _hex_value[uVar7]" (identifier "cVar5") (= "=") (subscript_expression "_hex_value[uVar7]" (identifier "_hex_value") ([ "[") (identifier "uVar7") (] "]"))) (; ";")) (} "}"))) (if_statement "if (bVar1 != 0x5f) {\n      if (iVar12 < iVar3) {\n        uVar6 = iVar3 - iVar12;\n        uVar7 = (ulong)(int)uVar6;\n        if (DAT_0016c4c8 == 0) {\n          if (7 < uVar7) {\n            uVar8 = 0;\n            do {\n              *(undefined8 *)((long)param_2 + uVar8) = 0;\n              uVar8 = uVar8 + 8;\n            } while (uVar8 < (uVar7 & 0xfffffffffffffff8));\n            param_2 = (undefined4 *)(uVar8 + (long)param_2);\n          }\n          if ((uVar7 & 4) != 0) {\n            *param_2 = 0;\n            param_2 = param_2 + 1;\n          }\n          puVar10 = param_2;\n          if ((uVar6 & 2) != 0) {\n            puVar10 = (undefined4 *)((long)param_2 + 2);\n            *(undefined2 *)param_2 = 0;\n          }\n          if ((uVar6 & 1) != 0) {\n            *(undefined1 *)puVar10 = 0;\n            return iVar3;\n          }\n        }\n        else {\n          puVar9 = (undefined8 *)((long)iVar12 + (long)param_2);\n          if (uVar7 < 8) {\n            if ((uVar7 & 4) != 0) {\n              *(undefined4 *)puVar9 = 0;\n              *(undefined4 *)((long)puVar9 + (uVar7 - 4)) = 0;\n              return iVar3;\n            }\n            if ((uVar7 != 0) && (*(undefined1 *)puVar9 = 0, (uVar6 & 2) != 0)) {\n              *(undefined2 *)((long)puVar9 + (uVar7 - 2)) = 0;\n              return iVar3;\n            }\n          }\n          else {\n            *puVar9 = 0;\n            *(undefined8 *)((long)puVar9 + (uVar7 - 8)) = 0;\n            uVar7 = (ulong)((long)puVar9 + (uVar7 - ((ulong)(puVar9 + 1) & 0xfffffffffffffff8))) &\n                    0xfffffffffffffff8;\n            if (7 < uVar7) {\n              uVar8 = 0;\n              do {\n                *(undefined8 *)(((ulong)(puVar9 + 1) & 0xfffffffffffffff8) + uVar8) = 0;\n                uVar8 = uVar8 + 8;\n              } while (uVar8 < uVar7);\n              return iVar3;\n            }\n          }\n        }\n      }\n      return iVar3;\n    }" (if "if") (parenthesized_expression "(bVar1 != 0x5f)" (( "(") (binary_expression "bVar1 != 0x5f" (identifier "bVar1") (!= "!=") (number_literal "0x5f")) () ")")) (compound_statement "{\n      if (iVar12 < iVar3) {\n        uVar6 = iVar3 - iVar12;\n        uVar7 = (ulong)(int)uVar6;\n        if (DAT_0016c4c8 == 0) {\n          if (7 < uVar7) {\n            uVar8 = 0;\n            do {\n              *(undefined8 *)((long)param_2 + uVar8) = 0;\n              uVar8 = uVar8 + 8;\n            } while (uVar8 < (uVar7 & 0xfffffffffffffff8));\n            param_2 = (undefined4 *)(uVar8 + (long)param_2);\n          }\n          if ((uVar7 & 4) != 0) {\n            *param_2 = 0;\n            param_2 = param_2 + 1;\n          }\n          puVar10 = param_2;\n          if ((uVar6 & 2) != 0) {\n            puVar10 = (undefined4 *)((long)param_2 + 2);\n            *(undefined2 *)param_2 = 0;\n          }\n          if ((uVar6 & 1) != 0) {\n            *(undefined1 *)puVar10 = 0;\n            return iVar3;\n          }\n        }\n        else {\n          puVar9 = (undefined8 *)((long)iVar12 + (long)param_2);\n          if (uVar7 < 8) {\n            if ((uVar7 & 4) != 0) {\n              *(undefined4 *)puVar9 = 0;\n              *(undefined4 *)((long)puVar9 + (uVar7 - 4)) = 0;\n              return iVar3;\n            }\n            if ((uVar7 != 0) && (*(undefined1 *)puVar9 = 0, (uVar6 & 2) != 0)) {\n              *(undefined2 *)((long)puVar9 + (uVar7 - 2)) = 0;\n              return iVar3;\n            }\n          }\n          else {\n            *puVar9 = 0;\n            *(undefined8 *)((long)puVar9 + (uVar7 - 8)) = 0;\n            uVar7 = (ulong)((long)puVar9 + (uVar7 - ((ulong)(puVar9 + 1) & 0xfffffffffffffff8))) &\n                    0xfffffffffffffff8;\n            if (7 < uVar7) {\n              uVar8 = 0;\n              do {\n                *(undefined8 *)(((ulong)(puVar9 + 1) & 0xfffffffffffffff8) + uVar8) = 0;\n                uVar8 = uVar8 + 8;\n              } while (uVar8 < uVar7);\n              return iVar3;\n            }\n          }\n        }\n      }\n      return iVar3;\n    }" ({ "{") (if_statement "if (iVar12 < iVar3) {\n        uVar6 = iVar3 - iVar12;\n        uVar7 = (ulong)(int)uVar6;\n        if (DAT_0016c4c8 == 0) {\n          if (7 < uVar7) {\n            uVar8 = 0;\n            do {\n              *(undefined8 *)((long)param_2 + uVar8) = 0;\n              uVar8 = uVar8 + 8;\n            } while (uVar8 < (uVar7 & 0xfffffffffffffff8));\n            param_2 = (undefined4 *)(uVar8 + (long)param_2);\n          }\n          if ((uVar7 & 4) != 0) {\n            *param_2 = 0;\n            param_2 = param_2 + 1;\n          }\n          puVar10 = param_2;\n          if ((uVar6 & 2) != 0) {\n            puVar10 = (undefined4 *)((long)param_2 + 2);\n            *(undefined2 *)param_2 = 0;\n          }\n          if ((uVar6 & 1) != 0) {\n            *(undefined1 *)puVar10 = 0;\n            return iVar3;\n          }\n        }\n        else {\n          puVar9 = (undefined8 *)((long)iVar12 + (long)param_2);\n          if (uVar7 < 8) {\n            if ((uVar7 & 4) != 0) {\n              *(undefined4 *)puVar9 = 0;\n              *(undefined4 *)((long)puVar9 + (uVar7 - 4)) = 0;\n              return iVar3;\n            }\n            if ((uVar7 != 0) && (*(undefined1 *)puVar9 = 0, (uVar6 & 2) != 0)) {\n              *(undefined2 *)((long)puVar9 + (uVar7 - 2)) = 0;\n              return iVar3;\n            }\n          }\n          else {\n            *puVar9 = 0;\n            *(undefined8 *)((long)puVar9 + (uVar7 - 8)) = 0;\n            uVar7 = (ulong)((long)puVar9 + (uVar7 - ((ulong)(puVar9 + 1) & 0xfffffffffffffff8))) &\n                    0xfffffffffffffff8;\n            if (7 < uVar7) {\n              uVar8 = 0;\n              do {\n                *(undefined8 *)(((ulong)(puVar9 + 1) & 0xfffffffffffffff8) + uVar8) = 0;\n                uVar8 = uVar8 + 8;\n              } while (uVar8 < uVar7);\n              return iVar3;\n            }\n          }\n        }\n      }" (if "if") (parenthesized_expression "(iVar12 < iVar3)" (( "(") (binary_expression "iVar12 < iVar3" (identifier "iVar12") (< "<") (identifier "iVar3")) () ")")) (compound_statement "{\n        uVar6 = iVar3 - iVar12;\n        uVar7 = (ulong)(int)uVar6;\n        if (DAT_0016c4c8 == 0) {\n          if (7 < uVar7) {\n            uVar8 = 0;\n            do {\n              *(undefined8 *)((long)param_2 + uVar8) = 0;\n              uVar8 = uVar8 + 8;\n            } while (uVar8 < (uVar7 & 0xfffffffffffffff8));\n            param_2 = (undefined4 *)(uVar8 + (long)param_2);\n          }\n          if ((uVar7 & 4) != 0) {\n            *param_2 = 0;\n            param_2 = param_2 + 1;\n          }\n          puVar10 = param_2;\n          if ((uVar6 & 2) != 0) {\n            puVar10 = (undefined4 *)((long)param_2 + 2);\n            *(undefined2 *)param_2 = 0;\n          }\n          if ((uVar6 & 1) != 0) {\n            *(undefined1 *)puVar10 = 0;\n            return iVar3;\n          }\n        }\n        else {\n          puVar9 = (undefined8 *)((long)iVar12 + (long)param_2);\n          if (uVar7 < 8) {\n            if ((uVar7 & 4) != 0) {\n              *(undefined4 *)puVar9 = 0;\n              *(undefined4 *)((long)puVar9 + (uVar7 - 4)) = 0;\n              return iVar3;\n            }\n            if ((uVar7 != 0) && (*(undefined1 *)puVar9 = 0, (uVar6 & 2) != 0)) {\n              *(undefined2 *)((long)puVar9 + (uVar7 - 2)) = 0;\n              return iVar3;\n            }\n          }\n          else {\n            *puVar9 = 0;\n            *(undefined8 *)((long)puVar9 + (uVar7 - 8)) = 0;\n            uVar7 = (ulong)((long)puVar9 + (uVar7 - ((ulong)(puVar9 + 1) & 0xfffffffffffffff8))) &\n                    0xfffffffffffffff8;\n            if (7 < uVar7) {\n              uVar8 = 0;\n              do {\n                *(undefined8 *)(((ulong)(puVar9 + 1) & 0xfffffffffffffff8) + uVar8) = 0;\n                uVar8 = uVar8 + 8;\n              } while (uVar8 < uVar7);\n              return iVar3;\n            }\n          }\n        }\n      }" ({ "{") (expression_statement "uVar6 = iVar3 - iVar12;" (assignment_expression "uVar6 = iVar3 - iVar12" (identifier "uVar6") (= "=") (binary_expression "iVar3 - iVar12" (identifier "iVar3") (- "-") (identifier "iVar12"))) (; ";")) (expression_statement "uVar7 = (ulong)(int)uVar6;" (assignment_expression "uVar7 = (ulong)(int)uVar6" (identifier "uVar7") (= "=") (cast_expression "(ulong)(int)uVar6" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (cast_expression "(int)uVar6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar6")))) (; ";")) (if_statement "if (DAT_0016c4c8 == 0) {\n          if (7 < uVar7) {\n            uVar8 = 0;\n            do {\n              *(undefined8 *)((long)param_2 + uVar8) = 0;\n              uVar8 = uVar8 + 8;\n            } while (uVar8 < (uVar7 & 0xfffffffffffffff8));\n            param_2 = (undefined4 *)(uVar8 + (long)param_2);\n          }\n          if ((uVar7 & 4) != 0) {\n            *param_2 = 0;\n            param_2 = param_2 + 1;\n          }\n          puVar10 = param_2;\n          if ((uVar6 & 2) != 0) {\n            puVar10 = (undefined4 *)((long)param_2 + 2);\n            *(undefined2 *)param_2 = 0;\n          }\n          if ((uVar6 & 1) != 0) {\n            *(undefined1 *)puVar10 = 0;\n            return iVar3;\n          }\n        }\n        else {\n          puVar9 = (undefined8 *)((long)iVar12 + (long)param_2);\n          if (uVar7 < 8) {\n            if ((uVar7 & 4) != 0) {\n              *(undefined4 *)puVar9 = 0;\n              *(undefined4 *)((long)puVar9 + (uVar7 - 4)) = 0;\n              return iVar3;\n            }\n            if ((uVar7 != 0) && (*(undefined1 *)puVar9 = 0, (uVar6 & 2) != 0)) {\n              *(undefined2 *)((long)puVar9 + (uVar7 - 2)) = 0;\n              return iVar3;\n            }\n          }\n          else {\n            *puVar9 = 0;\n            *(undefined8 *)((long)puVar9 + (uVar7 - 8)) = 0;\n            uVar7 = (ulong)((long)puVar9 + (uVar7 - ((ulong)(puVar9 + 1) & 0xfffffffffffffff8))) &\n                    0xfffffffffffffff8;\n            if (7 < uVar7) {\n              uVar8 = 0;\n              do {\n                *(undefined8 *)(((ulong)(puVar9 + 1) & 0xfffffffffffffff8) + uVar8) = 0;\n                uVar8 = uVar8 + 8;\n              } while (uVar8 < uVar7);\n              return iVar3;\n            }\n          }\n        }" (if "if") (parenthesized_expression "(DAT_0016c4c8 == 0)" (( "(") (binary_expression "DAT_0016c4c8 == 0" (identifier "DAT_0016c4c8") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          if (7 < uVar7) {\n            uVar8 = 0;\n            do {\n              *(undefined8 *)((long)param_2 + uVar8) = 0;\n              uVar8 = uVar8 + 8;\n            } while (uVar8 < (uVar7 & 0xfffffffffffffff8));\n            param_2 = (undefined4 *)(uVar8 + (long)param_2);\n          }\n          if ((uVar7 & 4) != 0) {\n            *param_2 = 0;\n            param_2 = param_2 + 1;\n          }\n          puVar10 = param_2;\n          if ((uVar6 & 2) != 0) {\n            puVar10 = (undefined4 *)((long)param_2 + 2);\n            *(undefined2 *)param_2 = 0;\n          }\n          if ((uVar6 & 1) != 0) {\n            *(undefined1 *)puVar10 = 0;\n            return iVar3;\n          }\n        }" ({ "{") (if_statement "if (7 < uVar7) {\n            uVar8 = 0;\n            do {\n              *(undefined8 *)((long)param_2 + uVar8) = 0;\n              uVar8 = uVar8 + 8;\n            } while (uVar8 < (uVar7 & 0xfffffffffffffff8));\n            param_2 = (undefined4 *)(uVar8 + (long)param_2);\n          }" (if "if") (parenthesized_expression "(7 < uVar7)" (( "(") (binary_expression "7 < uVar7" (number_literal "7") (< "<") (identifier "uVar7")) () ")")) (compound_statement "{\n            uVar8 = 0;\n            do {\n              *(undefined8 *)((long)param_2 + uVar8) = 0;\n              uVar8 = uVar8 + 8;\n            } while (uVar8 < (uVar7 & 0xfffffffffffffff8));\n            param_2 = (undefined4 *)(uVar8 + (long)param_2);\n          }" ({ "{") (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" (identifier "uVar8") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n              *(undefined8 *)((long)param_2 + uVar8) = 0;\n              uVar8 = uVar8 + 8;\n            } while (uVar8 < (uVar7 & 0xfffffffffffffff8));" (do "do") (compound_statement "{\n              *(undefined8 *)((long)param_2 + uVar8) = 0;\n              uVar8 = uVar8 + 8;\n            }" ({ "{") (expression_statement "*(undefined8 *)((long)param_2 + uVar8) = 0;" (assignment_expression "*(undefined8 *)((long)param_2 + uVar8) = 0" (pointer_expression "*(undefined8 *)((long)param_2 + uVar8)" (* "*") (cast_expression "(undefined8 *)((long)param_2 + uVar8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_2 + uVar8)" (( "(") (binary_expression "(long)param_2 + uVar8" (cast_expression "(long)param_2" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_2")) (+ "+") (identifier "uVar8")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar8 = uVar8 + 8;" (assignment_expression "uVar8 = uVar8 + 8" (identifier "uVar8") (= "=") (binary_expression "uVar8 + 8" (identifier "uVar8") (+ "+") (number_literal "8"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar8 < (uVar7 & 0xfffffffffffffff8))" (( "(") (binary_expression "uVar8 < (uVar7 & 0xfffffffffffffff8)" (identifier "uVar8") (< "<") (parenthesized_expression "(uVar7 & 0xfffffffffffffff8)" (( "(") (binary_expression "uVar7 & 0xfffffffffffffff8" (identifier "uVar7") (& "&") (number_literal "0xfffffffffffffff8")) () ")"))) () ")")) (; ";")) (expression_statement "param_2 = (undefined4 *)(uVar8 + (long)param_2);" (assignment_expression "param_2 = (undefined4 *)(uVar8 + (long)param_2)" (identifier "param_2") (= "=") (cast_expression "(undefined4 *)(uVar8 + (long)param_2)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar8 + (long)param_2)" (( "(") (binary_expression "uVar8 + (long)param_2" (identifier "uVar8") (+ "+") (cast_expression "(long)param_2" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_2"))) () ")")))) (; ";")) (} "}"))) (if_statement "if ((uVar7 & 4) != 0) {\n            *param_2 = 0;\n            param_2 = param_2 + 1;\n          }" (if "if") (parenthesized_expression "((uVar7 & 4) != 0)" (( "(") (binary_expression "(uVar7 & 4) != 0" (parenthesized_expression "(uVar7 & 4)" (( "(") (binary_expression "uVar7 & 4" (identifier "uVar7") (& "&") (number_literal "4")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            *param_2 = 0;\n            param_2 = param_2 + 1;\n          }" ({ "{") (expression_statement "*param_2 = 0;" (assignment_expression "*param_2 = 0" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_2 = param_2 + 1;" (assignment_expression "param_2 = param_2 + 1" (identifier "param_2") (= "=") (binary_expression "param_2 + 1" (identifier "param_2") (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (expression_statement "puVar10 = param_2;" (assignment_expression "puVar10 = param_2" (identifier "puVar10") (= "=") (identifier "param_2")) (; ";")) (if_statement "if ((uVar6 & 2) != 0) {\n            puVar10 = (undefined4 *)((long)param_2 + 2);\n            *(undefined2 *)param_2 = 0;\n          }" (if "if") (parenthesized_expression "((uVar6 & 2) != 0)" (( "(") (binary_expression "(uVar6 & 2) != 0" (parenthesized_expression "(uVar6 & 2)" (( "(") (binary_expression "uVar6 & 2" (identifier "uVar6") (& "&") (number_literal "2")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            puVar10 = (undefined4 *)((long)param_2 + 2);\n            *(undefined2 *)param_2 = 0;\n          }" ({ "{") (expression_statement "puVar10 = (undefined4 *)((long)param_2 + 2);" (assignment_expression "puVar10 = (undefined4 *)((long)param_2 + 2)" (identifier "puVar10") (= "=") (cast_expression "(undefined4 *)((long)param_2 + 2)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_2 + 2)" (( "(") (binary_expression "(long)param_2 + 2" (cast_expression "(long)param_2" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_2")) (+ "+") (number_literal "2")) () ")")))) (; ";")) (expression_statement "*(undefined2 *)param_2 = 0;" (assignment_expression "*(undefined2 *)param_2 = 0" (pointer_expression "*(undefined2 *)param_2" (* "*") (cast_expression "(undefined2 *)param_2" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_2"))) (= "=") (number_literal "0")) (; ";")) (} "}"))) (if_statement "if ((uVar6 & 1) != 0) {\n            *(undefined1 *)puVar10 = 0;\n            return iVar3;\n          }" (if "if") (parenthesized_expression "((uVar6 & 1) != 0)" (( "(") (binary_expression "(uVar6 & 1) != 0" (parenthesized_expression "(uVar6 & 1)" (( "(") (binary_expression "uVar6 & 1" (identifier "uVar6") (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            *(undefined1 *)puVar10 = 0;\n            return iVar3;\n          }" ({ "{") (expression_statement "*(undefined1 *)puVar10 = 0;" (assignment_expression "*(undefined1 *)puVar10 = 0" (pointer_expression "*(undefined1 *)puVar10" (* "*") (cast_expression "(undefined1 *)puVar10" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar10"))) (= "=") (number_literal "0")) (; ";")) (return_statement "return iVar3;" (return "return") (identifier "iVar3") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n          puVar9 = (undefined8 *)((long)iVar12 + (long)param_2);\n          if (uVar7 < 8) {\n            if ((uVar7 & 4) != 0) {\n              *(undefined4 *)puVar9 = 0;\n              *(undefined4 *)((long)puVar9 + (uVar7 - 4)) = 0;\n              return iVar3;\n            }\n            if ((uVar7 != 0) && (*(undefined1 *)puVar9 = 0, (uVar6 & 2) != 0)) {\n              *(undefined2 *)((long)puVar9 + (uVar7 - 2)) = 0;\n              return iVar3;\n            }\n          }\n          else {\n            *puVar9 = 0;\n            *(undefined8 *)((long)puVar9 + (uVar7 - 8)) = 0;\n            uVar7 = (ulong)((long)puVar9 + (uVar7 - ((ulong)(puVar9 + 1) & 0xfffffffffffffff8))) &\n                    0xfffffffffffffff8;\n            if (7 < uVar7) {\n              uVar8 = 0;\n              do {\n                *(undefined8 *)(((ulong)(puVar9 + 1) & 0xfffffffffffffff8) + uVar8) = 0;\n                uVar8 = uVar8 + 8;\n              } while (uVar8 < uVar7);\n              return iVar3;\n            }\n          }\n        }" (else "else") (compound_statement "{\n          puVar9 = (undefined8 *)((long)iVar12 + (long)param_2);\n          if (uVar7 < 8) {\n            if ((uVar7 & 4) != 0) {\n              *(undefined4 *)puVar9 = 0;\n              *(undefined4 *)((long)puVar9 + (uVar7 - 4)) = 0;\n              return iVar3;\n            }\n            if ((uVar7 != 0) && (*(undefined1 *)puVar9 = 0, (uVar6 & 2) != 0)) {\n              *(undefined2 *)((long)puVar9 + (uVar7 - 2)) = 0;\n              return iVar3;\n            }\n          }\n          else {\n            *puVar9 = 0;\n            *(undefined8 *)((long)puVar9 + (uVar7 - 8)) = 0;\n            uVar7 = (ulong)((long)puVar9 + (uVar7 - ((ulong)(puVar9 + 1) & 0xfffffffffffffff8))) &\n                    0xfffffffffffffff8;\n            if (7 < uVar7) {\n              uVar8 = 0;\n              do {\n                *(undefined8 *)(((ulong)(puVar9 + 1) & 0xfffffffffffffff8) + uVar8) = 0;\n                uVar8 = uVar8 + 8;\n              } while (uVar8 < uVar7);\n              return iVar3;\n            }\n          }\n        }" ({ "{") (expression_statement "puVar9 = (undefined8 *)((long)iVar12 + (long)param_2);" (assignment_expression "puVar9 = (undefined8 *)((long)iVar12 + (long)param_2)" (identifier "puVar9") (= "=") (cast_expression "(undefined8 *)((long)iVar12 + (long)param_2)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)iVar12 + (long)param_2)" (( "(") (binary_expression "(long)iVar12 + (long)param_2" (cast_expression "(long)iVar12" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "iVar12")) (+ "+") (cast_expression "(long)param_2" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_2"))) () ")")))) (; ";")) (if_statement "if (uVar7 < 8) {\n            if ((uVar7 & 4) != 0) {\n              *(undefined4 *)puVar9 = 0;\n              *(undefined4 *)((long)puVar9 + (uVar7 - 4)) = 0;\n              return iVar3;\n            }\n            if ((uVar7 != 0) && (*(undefined1 *)puVar9 = 0, (uVar6 & 2) != 0)) {\n              *(undefined2 *)((long)puVar9 + (uVar7 - 2)) = 0;\n              return iVar3;\n            }\n          }\n          else {\n            *puVar9 = 0;\n            *(undefined8 *)((long)puVar9 + (uVar7 - 8)) = 0;\n            uVar7 = (ulong)((long)puVar9 + (uVar7 - ((ulong)(puVar9 + 1) & 0xfffffffffffffff8))) &\n                    0xfffffffffffffff8;\n            if (7 < uVar7) {\n              uVar8 = 0;\n              do {\n                *(undefined8 *)(((ulong)(puVar9 + 1) & 0xfffffffffffffff8) + uVar8) = 0;\n                uVar8 = uVar8 + 8;\n              } while (uVar8 < uVar7);\n              return iVar3;\n            }\n          }" (if "if") (parenthesized_expression "(uVar7 < 8)" (( "(") (binary_expression "uVar7 < 8" (identifier "uVar7") (< "<") (number_literal "8")) () ")")) (compound_statement "{\n            if ((uVar7 & 4) != 0) {\n              *(undefined4 *)puVar9 = 0;\n              *(undefined4 *)((long)puVar9 + (uVar7 - 4)) = 0;\n              return iVar3;\n            }\n            if ((uVar7 != 0) && (*(undefined1 *)puVar9 = 0, (uVar6 & 2) != 0)) {\n              *(undefined2 *)((long)puVar9 + (uVar7 - 2)) = 0;\n              return iVar3;\n            }\n          }" ({ "{") (if_statement "if ((uVar7 & 4) != 0) {\n              *(undefined4 *)puVar9 = 0;\n              *(undefined4 *)((long)puVar9 + (uVar7 - 4)) = 0;\n              return iVar3;\n            }" (if "if") (parenthesized_expression "((uVar7 & 4) != 0)" (( "(") (binary_expression "(uVar7 & 4) != 0" (parenthesized_expression "(uVar7 & 4)" (( "(") (binary_expression "uVar7 & 4" (identifier "uVar7") (& "&") (number_literal "4")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n              *(undefined4 *)puVar9 = 0;\n              *(undefined4 *)((long)puVar9 + (uVar7 - 4)) = 0;\n              return iVar3;\n            }" ({ "{") (expression_statement "*(undefined4 *)puVar9 = 0;" (assignment_expression "*(undefined4 *)puVar9 = 0" (pointer_expression "*(undefined4 *)puVar9" (* "*") (cast_expression "(undefined4 *)puVar9" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar9"))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)((long)puVar9 + (uVar7 - 4)) = 0;" (assignment_expression "*(undefined4 *)((long)puVar9 + (uVar7 - 4)) = 0" (pointer_expression "*(undefined4 *)((long)puVar9 + (uVar7 - 4))" (* "*") (cast_expression "(undefined4 *)((long)puVar9 + (uVar7 - 4))" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)puVar9 + (uVar7 - 4))" (( "(") (binary_expression "(long)puVar9 + (uVar7 - 4)" (cast_expression "(long)puVar9" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar9")) (+ "+") (parenthesized_expression "(uVar7 - 4)" (( "(") (binary_expression "uVar7 - 4" (identifier "uVar7") (- "-") (number_literal "4")) () ")"))) () ")")))) (= "=") (number_literal "0")) (; ";")) (return_statement "return iVar3;" (return "return") (identifier "iVar3") (; ";")) (} "}"))) (if_statement "if ((uVar7 != 0) && (*(undefined1 *)puVar9 = 0, (uVar6 & 2) != 0)) {\n              *(undefined2 *)((long)puVar9 + (uVar7 - 2)) = 0;\n              return iVar3;\n            }" (if "if") (parenthesized_expression "((uVar7 != 0) && (*(undefined1 *)puVar9 = 0, (uVar6 & 2) != 0))" (( "(") (binary_expression "(uVar7 != 0) && (*(undefined1 *)puVar9 = 0, (uVar6 & 2) != 0)" (parenthesized_expression "(uVar7 != 0)" (( "(") (binary_expression "uVar7 != 0" (identifier "uVar7") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(*(undefined1 *)puVar9 = 0, (uVar6 & 2) != 0)" (( "(") (comma_expression "*(undefined1 *)puVar9 = 0, (uVar6 & 2) != 0" (assignment_expression "*(undefined1 *)puVar9 = 0" (pointer_expression "*(undefined1 *)puVar9" (* "*") (cast_expression "(undefined1 *)puVar9" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar9"))) (= "=") (number_literal "0")) (, ",") (binary_expression "(uVar6 & 2) != 0" (parenthesized_expression "(uVar6 & 2)" (( "(") (binary_expression "uVar6 & 2" (identifier "uVar6") (& "&") (number_literal "2")) () ")")) (!= "!=") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n              *(undefined2 *)((long)puVar9 + (uVar7 - 2)) = 0;\n              return iVar3;\n            }" ({ "{") (expression_statement "*(undefined2 *)((long)puVar9 + (uVar7 - 2)) = 0;" (assignment_expression "*(undefined2 *)((long)puVar9 + (uVar7 - 2)) = 0" (pointer_expression "*(undefined2 *)((long)puVar9 + (uVar7 - 2))" (* "*") (cast_expression "(undefined2 *)((long)puVar9 + (uVar7 - 2))" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)puVar9 + (uVar7 - 2))" (( "(") (binary_expression "(long)puVar9 + (uVar7 - 2)" (cast_expression "(long)puVar9" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar9")) (+ "+") (parenthesized_expression "(uVar7 - 2)" (( "(") (binary_expression "uVar7 - 2" (identifier "uVar7") (- "-") (number_literal "2")) () ")"))) () ")")))) (= "=") (number_literal "0")) (; ";")) (return_statement "return iVar3;" (return "return") (identifier "iVar3") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n            *puVar9 = 0;\n            *(undefined8 *)((long)puVar9 + (uVar7 - 8)) = 0;\n            uVar7 = (ulong)((long)puVar9 + (uVar7 - ((ulong)(puVar9 + 1) & 0xfffffffffffffff8))) &\n                    0xfffffffffffffff8;\n            if (7 < uVar7) {\n              uVar8 = 0;\n              do {\n                *(undefined8 *)(((ulong)(puVar9 + 1) & 0xfffffffffffffff8) + uVar8) = 0;\n                uVar8 = uVar8 + 8;\n              } while (uVar8 < uVar7);\n              return iVar3;\n            }\n          }" (else "else") (compound_statement "{\n            *puVar9 = 0;\n            *(undefined8 *)((long)puVar9 + (uVar7 - 8)) = 0;\n            uVar7 = (ulong)((long)puVar9 + (uVar7 - ((ulong)(puVar9 + 1) & 0xfffffffffffffff8))) &\n                    0xfffffffffffffff8;\n            if (7 < uVar7) {\n              uVar8 = 0;\n              do {\n                *(undefined8 *)(((ulong)(puVar9 + 1) & 0xfffffffffffffff8) + uVar8) = 0;\n                uVar8 = uVar8 + 8;\n              } while (uVar8 < uVar7);\n              return iVar3;\n            }\n          }" ({ "{") (expression_statement "*puVar9 = 0;" (assignment_expression "*puVar9 = 0" (pointer_expression "*puVar9" (* "*") (identifier "puVar9")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined8 *)((long)puVar9 + (uVar7 - 8)) = 0;" (assignment_expression "*(undefined8 *)((long)puVar9 + (uVar7 - 8)) = 0" (pointer_expression "*(undefined8 *)((long)puVar9 + (uVar7 - 8))" (* "*") (cast_expression "(undefined8 *)((long)puVar9 + (uVar7 - 8))" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)puVar9 + (uVar7 - 8))" (( "(") (binary_expression "(long)puVar9 + (uVar7 - 8)" (cast_expression "(long)puVar9" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar9")) (+ "+") (parenthesized_expression "(uVar7 - 8)" (( "(") (binary_expression "uVar7 - 8" (identifier "uVar7") (- "-") (number_literal "8")) () ")"))) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar7 = (ulong)((long)puVar9 + (uVar7 - ((ulong)(puVar9 + 1) & 0xfffffffffffffff8))) &\n                    0xfffffffffffffff8;" (assignment_expression "uVar7 = (ulong)((long)puVar9 + (uVar7 - ((ulong)(puVar9 + 1) & 0xfffffffffffffff8))) &\n                    0xfffffffffffffff8" (identifier "uVar7") (= "=") (binary_expression "(ulong)((long)puVar9 + (uVar7 - ((ulong)(puVar9 + 1) & 0xfffffffffffffff8))) &\n                    0xfffffffffffffff8" (call_expression "(ulong)((long)puVar9 + (uVar7 - ((ulong)(puVar9 + 1) & 0xfffffffffffffff8)))" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "((long)puVar9 + (uVar7 - ((ulong)(puVar9 + 1) & 0xfffffffffffffff8)))" (( "(") (binary_expression "(long)puVar9 + (uVar7 - ((ulong)(puVar9 + 1) & 0xfffffffffffffff8))" (cast_expression "(long)puVar9" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar9")) (+ "+") (parenthesized_expression "(uVar7 - ((ulong)(puVar9 + 1) & 0xfffffffffffffff8))" (( "(") (binary_expression "uVar7 - ((ulong)(puVar9 + 1) & 0xfffffffffffffff8)" (identifier "uVar7") (- "-") (parenthesized_expression "((ulong)(puVar9 + 1) & 0xfffffffffffffff8)" (( "(") (binary_expression "(ulong)(puVar9 + 1) & 0xfffffffffffffff8" (call_expression "(ulong)(puVar9 + 1)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(puVar9 + 1)" (( "(") (binary_expression "puVar9 + 1" (identifier "puVar9") (+ "+") (number_literal "1")) () ")"))) (& "&") (number_literal "0xfffffffffffffff8")) () ")"))) () ")"))) () ")"))) (& "&") (number_literal "0xfffffffffffffff8"))) (; ";")) (if_statement "if (7 < uVar7) {\n              uVar8 = 0;\n              do {\n                *(undefined8 *)(((ulong)(puVar9 + 1) & 0xfffffffffffffff8) + uVar8) = 0;\n                uVar8 = uVar8 + 8;\n              } while (uVar8 < uVar7);\n              return iVar3;\n            }" (if "if") (parenthesized_expression "(7 < uVar7)" (( "(") (binary_expression "7 < uVar7" (number_literal "7") (< "<") (identifier "uVar7")) () ")")) (compound_statement "{\n              uVar8 = 0;\n              do {\n                *(undefined8 *)(((ulong)(puVar9 + 1) & 0xfffffffffffffff8) + uVar8) = 0;\n                uVar8 = uVar8 + 8;\n              } while (uVar8 < uVar7);\n              return iVar3;\n            }" ({ "{") (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" (identifier "uVar8") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n                *(undefined8 *)(((ulong)(puVar9 + 1) & 0xfffffffffffffff8) + uVar8) = 0;\n                uVar8 = uVar8 + 8;\n              } while (uVar8 < uVar7);" (do "do") (compound_statement "{\n                *(undefined8 *)(((ulong)(puVar9 + 1) & 0xfffffffffffffff8) + uVar8) = 0;\n                uVar8 = uVar8 + 8;\n              }" ({ "{") (expression_statement "*(undefined8 *)(((ulong)(puVar9 + 1) & 0xfffffffffffffff8) + uVar8) = 0;" (assignment_expression "*(undefined8 *)(((ulong)(puVar9 + 1) & 0xfffffffffffffff8) + uVar8) = 0" (pointer_expression "*(undefined8 *)(((ulong)(puVar9 + 1) & 0xfffffffffffffff8) + uVar8)" (* "*") (cast_expression "(undefined8 *)(((ulong)(puVar9 + 1) & 0xfffffffffffffff8) + uVar8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(((ulong)(puVar9 + 1) & 0xfffffffffffffff8) + uVar8)" (( "(") (binary_expression "((ulong)(puVar9 + 1) & 0xfffffffffffffff8) + uVar8" (parenthesized_expression "((ulong)(puVar9 + 1) & 0xfffffffffffffff8)" (( "(") (binary_expression "(ulong)(puVar9 + 1) & 0xfffffffffffffff8" (call_expression "(ulong)(puVar9 + 1)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(puVar9 + 1)" (( "(") (binary_expression "puVar9 + 1" (identifier "puVar9") (+ "+") (number_literal "1")) () ")"))) (& "&") (number_literal "0xfffffffffffffff8")) () ")")) (+ "+") (identifier "uVar8")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar8 = uVar8 + 8;" (assignment_expression "uVar8 = uVar8 + 8" (identifier "uVar8") (= "=") (binary_expression "uVar8 + 8" (identifier "uVar8") (+ "+") (number_literal "8"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar8 < uVar7)" (( "(") (binary_expression "uVar8 < uVar7" (identifier "uVar8") (< "<") (identifier "uVar7")) () ")")) (; ";")) (return_statement "return iVar3;" (return "return") (identifier "iVar3") (; ";")) (} "}"))) (} "}")))) (} "}")))) (} "}"))) (return_statement "return iVar3;" (return "return") (identifier "iVar3") (; ";")) (} "}"))) (labeled_statement "LAB_00126f8e:\n    DAT_00175a40 = DAT_00175a40 + 1;" (statement_identifier "LAB_00126f8e") (: ":") (expression_statement "DAT_00175a40 = DAT_00175a40 + 1;" (assignment_expression "DAT_00175a40 = DAT_00175a40 + 1" (identifier "DAT_00175a40") (= "=") (binary_expression "DAT_00175a40 + 1" (identifier "DAT_00175a40") (+ "+") (number_literal "1"))) (; ";"))) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";")) (} "}")))

int function_1(int float_type,char *var_12)

{
  char *pcVar1;
  type_1 var_8;
  type_1 *pbVar3;
  int var_4;
  char *var_15;
  char var_3;
  type_2 var_14;
  type_3 var_11;
  type_3 var_13;
  type_1 *var_9;
  int var_5;
  
  switch(float_type) {
  case 0x44:
  case 0x52:
  case 100:
  case 0x72:
    var_4 = 8;
    break;
  default:
    var_15 = (char *)var_1(0,"unknown floating type type \'%c\'",5);
    var_2(var_15,float_type);
    return -1;
  case 0x46:
  case 0x53:
  case 0x66:
  case 0x73:
    var_4 = 4;
    break;
  case 0x50:
  case 0x58:
  case 0x70:
  case 0x78:
    var_4 = 0xc;
  }
  var_5 = 0;
  do {
    var_8 = *var_7;
    var_11 = (type_3)var_8;
    var_3 = _hex_value[var_11];
    while (var_3 != 'c') {
      if ((char)var_11 == '_') goto LAB_00126f8e;
      if (var_4 <= var_5) {
        var_15 = (char *)var_1(0,"floating point constant too large",5);
        var_6(var_15);
        return -1;
      }
      var_3 = var_3 * '\x10';
      var_9 = (type_1 *)(var_7 + 1);
      var_8 = var_7[1];
      if (var_8 == 0x5f) {
        pbVar3 = (type_1 *)(var_7 + 2);
        do {
          var_9 = pbVar3;
          var_8 = *var_9;
          pbVar3 = var_9 + 1;
        } while (var_8 == 0x5f);
      }
      var_7 = (char *)var_9;
      if (_hex_value[var_8] != 'c') {
        var_3 = _hex_value[var_8] + var_3;
        var_7 = (char *)(var_9 + 1);
      }
      if (var_10 == 0) {
        var_12[(long)(var_4 - var_5) + -1] = var_3;
      }
      else {
        var_12[var_5] = var_3;
      }
      var_5 = var_5 + 1;
      var_8 = *var_7;
      var_11 = (type_3)var_8;
      var_3 = _hex_value[var_11];
    }
    if (var_8 != 0x5f) {
      if (var_5 < var_4) {
        var_14 = var_4 - var_5;
        var_11 = (type_3)(int)var_14;
        if (var_10 == 0) {
          if (7 < var_11) {
            var_13 = 0;
            do {
              var_15 = var_12 + var_13;
              var_15[0] = '\0';
              var_15[1] = '\0';
              var_15[2] = '\0';
              var_15[3] = '\0';
              var_15[4] = '\0';
              var_15[5] = '\0';
              var_15[6] = '\0';
              var_15[7] = '\0';
              var_13 = var_13 + 8;
            } while (var_13 < (var_11 & 0xfffffffffffffff8));
            var_12 = var_12 + var_13;
          }
          if ((var_11 & 4) != 0) {
            var_12[0] = '\0';
            var_12[1] = '\0';
            var_12[2] = '\0';
            var_12[3] = '\0';
            var_12 = var_12 + 4;
          }
          var_15 = var_12;
          if ((var_14 & 2) != 0) {
            var_15 = var_12 + 2;
            var_12[0] = '\0';
            var_12[1] = '\0';
          }
          if ((var_14 & 1) != 0) {
            *var_15 = '\0';
            return var_4;
          }
        }
        else {
          var_15 = var_12 + var_5;
          if (var_11 < 8) {
            if ((var_11 & 4) != 0) {
              var_15[0] = '\0';
              var_15[1] = '\0';
              var_15[2] = '\0';
              var_15[3] = '\0';
              var_15 = var_15 + (var_11 - 4);
              var_15[0] = '\0';
              var_15[1] = '\0';
              var_15[2] = '\0';
              var_15[3] = '\0';
              return var_4;
            }
            if ((var_11 != 0) && (*var_15 = '\0', (var_14 & 2) != 0)) {
              (var_15 + (var_11 - 2))[0] = '\0';
              (var_15 + (var_11 - 2))[1] = '\0';
              return var_4;
            }
          }
          else {
            var_15[0] = '\0';
            var_15[1] = '\0';
            var_15[2] = '\0';
            var_15[3] = '\0';
            var_15[4] = '\0';
            var_15[5] = '\0';
            var_15[6] = '\0';
            var_15[7] = '\0';
            pcVar1 = var_15 + (var_11 - 8);
            pcVar1[0] = '\0';
            pcVar1[1] = '\0';
            pcVar1[2] = '\0';
            pcVar1[3] = '\0';
            pcVar1[4] = '\0';
            pcVar1[5] = '\0';
            pcVar1[6] = '\0';
            pcVar1[7] = '\0';
            if (7 < ((type_3)(var_15 + (var_11 - ((type_3)(var_15 + 8) & 0xfffffffffffffff8))) &
                    0xfffffffffffffff8)) {
              var_13 = 0;
              do {
                *(type_4 *)(((type_3)(var_15 + 8) & 0xfffffffffffffff8) + var_13) = 0;
                var_13 = var_13 + 8;
              } while (var_13 < ((type_3)(var_15 + (var_11 - ((type_3)(var_15 + 8) & 0xfffffffffffffff8)
                                                 )) & 0xfffffffffffffff8));
              return var_4;
            }
          }
        }
      }
      return var_4;
    }
LAB_00126f8e:
    var_7 = var_7 + 1;
  } while( true );
}


(translation_unit (function_definition type: (primitive_type) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))))) body: (compound_statement (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (switch_statement condition: (parenthesized_expression (identifier)) body: (compound_statement (case_statement value: (number_literal)) (case_statement value: (number_literal)) (case_statement value: (number_literal)) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (break_statement)) (case_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (string_literal (string_content) (escape_sequence) (string_content) (escape_sequence)) (number_literal))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))) (return_statement (number_literal))) (case_statement value: (number_literal)) (case_statement value: (number_literal)) (case_statement value: (number_literal)) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (break_statement)) (case_statement value: (number_literal)) (case_statement value: (number_literal)) (case_statement value: (number_literal)) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (identifier)))) (while_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (character)))) body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (char_literal (character)))) consequence: (goto_statement label: (statement_identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (string_literal (string_content)) (number_literal))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (return_statement (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (char_literal (escape_sequence))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (identifier)) right: (char_literal (character)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (subscript_expression argument: (identifier) index: (identifier)) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))))) right: (number_literal))))) right: (identifier)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (identifier)))))) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (identifier)) right: (identifier))))) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (identifier))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (number_literal))) (return_statement (identifier))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (identifier))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (identifier)) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) right: (number_literal))) (return_statement (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (number_literal)) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (identifier)) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) right: (number_literal))) (return_statement (identifier))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (identifier)) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (identifier)) right: (parenthesized_expression (binary_expression left: (identifier) right: (parenthesized_expression (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))) right: (number_literal)))))))) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))) right: (number_literal))) right: (identifier))))) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))) (return_statement (identifier)))))))))))) (return_statement (identifier)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))))) condition: (parenthesized_expression (true))))))

int MASKED(undefined4 param_1,undefined4 *param_2)

{
  byte bVar1;
  byte *pbVar2;
  int iVar3;
  undefined8 uVar4;
  char cVar5;
  uint uVar6;
  ulong uVar7;
  ulong uVar8;
  undefined8 *puVar9;
  undefined4 *puVar10;
  byte *pbVar11;
  int iVar12;
  
  switch(param_1) {
  case 0x44:
  case 0x52:
  case 100:
  case 0x72:
    iVar3 = 8;
    break;
  default:
    uVar4 = dcgettext(0,"unknown floating type type \'%c\'",5);
    FUN_00126580(uVar4,param_1);
    return -1;
  case 0x46:
  case 0x53:
  case 0x66:
  case 0x73:
    iVar3 = 4;
    break;
  case 0x50:
  case 0x58:
  case 0x70:
  case 0x78:
    iVar3 = 0xc;
  }
  iVar12 = 0;
  do {
    bVar1 = *DAT_00175a40;
    uVar7 = (ulong)bVar1;
    cVar5 = _hex_value[uVar7];
    while (cVar5 != 'c') {
      if ((char)uVar7 == '_') goto LAB_00126f8e;
      if (iVar3 <= iVar12) {
        uVar4 = dcgettext(0,"floating point constant too large",5);
        FUN_001263b0(uVar4);
        return -1;
      }
      cVar5 = cVar5 * '\x10';
      pbVar11 = DAT_00175a40 + 1;
      bVar1 = DAT_00175a40[1];
      if (bVar1 == 0x5f) {
        pbVar2 = DAT_00175a40 + 2;
        do {
          pbVar11 = pbVar2;
          bVar1 = *pbVar11;
          pbVar2 = pbVar11 + 1;
        } while (bVar1 == 0x5f);
      }
      DAT_00175a40 = pbVar11;
      if (_hex_value[bVar1] != 'c') {
        cVar5 = _hex_value[bVar1] + cVar5;
        DAT_00175a40 = pbVar11 + 1;
      }
      if (DAT_0016c4c8 == 0) {
        *(char *)((long)param_2 + (long)(iVar3 - iVar12) + -1) = cVar5;
      }
      else {
        *(char *)((long)param_2 + (long)iVar12) = cVar5;
      }
      iVar12 = iVar12 + 1;
      bVar1 = *DAT_00175a40;
      uVar7 = (ulong)bVar1;
      cVar5 = _hex_value[uVar7];
    }
    if (bVar1 != 0x5f) {
      if (iVar12 < iVar3) {
        uVar6 = iVar3 - iVar12;
        uVar7 = (ulong)(int)uVar6;
        if (DAT_0016c4c8 == 0) {
          if (7 < uVar7) {
            uVar8 = 0;
            do {
              *(undefined8 *)((long)param_2 + uVar8) = 0;
              uVar8 = uVar8 + 8;
            } while (uVar8 < (uVar7 & 0xfffffffffffffff8));
            param_2 = (undefined4 *)(uVar8 + (long)param_2);
          }
          if ((uVar7 & 4) != 0) {
            *param_2 = 0;
            param_2 = param_2 + 1;
          }
          puVar10 = param_2;
          if ((uVar6 & 2) != 0) {
            puVar10 = (undefined4 *)((long)param_2 + 2);
            *(undefined2 *)param_2 = 0;
          }
          if ((uVar6 & 1) != 0) {
            *(undefined1 *)puVar10 = 0;
            return iVar3;
          }
        }
        else {
          puVar9 = (undefined8 *)((long)iVar12 + (long)param_2);
          if (uVar7 < 8) {
            if ((uVar7 & 4) != 0) {
              *(undefined4 *)puVar9 = 0;
              *(undefined4 *)((long)puVar9 + (uVar7 - 4)) = 0;
              return iVar3;
            }
            if ((uVar7 != 0) && (*(undefined1 *)puVar9 = 0, (uVar6 & 2) != 0)) {
              *(undefined2 *)((long)puVar9 + (uVar7 - 2)) = 0;
              return iVar3;
            }
          }
          else {
            *puVar9 = 0;
            *(undefined8 *)((long)puVar9 + (uVar7 - 8)) = 0;
            uVar7 = (ulong)((long)puVar9 + (uVar7 - ((ulong)(puVar9 + 1) & 0xfffffffffffffff8))) &
                    0xfffffffffffffff8;
            if (7 < uVar7) {
              uVar8 = 0;
              do {
                *(undefined8 *)(((ulong)(puVar9 + 1) & 0xfffffffffffffff8) + uVar8) = 0;
                uVar8 = uVar8 + 8;
              } while (uVar8 < uVar7);
              return iVar3;
            }
          }
        }
      }
      return iVar3;
    }
LAB_00126f8e:
    DAT_00175a40 = DAT_00175a40 + 1;
  } while( true );
}

