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

int __regparm3 syncJournal(Pager *pPager,int newHdr)

{
  int iVar1;
  int iVar2;
  PCache *pPVar3;
  PgHdr *pPVar4;
  undefined4 uVar5;
  longlong lVar6;
  bool bVar7;
  uint uVar8;
  int iVar9;
  uint uVar10;
  sqlite3_file *psVar11;
  sqlite3_io_methods *psVar12;
  int in_GS_OFFSET;
  longlong lVar13;
  int local_54;
  int local_50;
  u8 aMagic [8];
  u8 zHeader [12];
  
  iVar2 = pPager->errCode;
  iVar1 = *(int *)(in_GS_OFFSET + 0x14);
  iVar9 = iVar2;
  if ((iVar2 != 0) ||
     ((pPager->pWal == (Wal *)0x0 && (iVar9 = pager_wait_on_lock(pPager,4), iVar9 != 0))))
  goto LAB_0006a356;
  if (pPager->noSync == '\0') {
    if ((pPager->jfd->pMethods == (sqlite3_io_methods *)0x0) || (pPager->journalMode == '\x04')) {
LAB_0006a320:
      uVar5 = *(undefined4 *)((int)&pPager->journalOff + 4);
      *(int *)&pPager->journalHdr = (int)pPager->journalOff;
      *(undefined4 *)((int)&pPager->journalHdr + 4) = uVar5;
    }
    else {
      uVar8 = (*pPager->fd->pMethods->xDeviceCharacteristics)(pPager->fd);
      if ((uVar8 & 0x200) == 0) {
        zHeader[0] = aJournalMagic[0];
        zHeader[1] = aJournalMagic[1];
        zHeader[2] = aJournalMagic[2];
        zHeader[3] = aJournalMagic[3];
        zHeader[4] = aJournalMagic[4];
        zHeader[5] = aJournalMagic[5];
        zHeader[6] = aJournalMagic[6];
        zHeader[7] = aJournalMagic[7];
        uVar10 = pPager->nRec;
        local_50 = *(int *)((int)&pPager->journalOff + 4);
        zHeader._8_4_ =
             uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 | uVar10 << 0x18;
        local_54 = (int)pPager->journalOff;
        if (local_50 != 0 || local_54 != 0) {
          uVar10 = pPager->sectorSize;
          lVar13 = __divdi3(local_54 + -1,local_50 + -1 + (uint)(local_54 != 0),uVar10,0);
          lVar6 = (lVar13 + 1U & 0xffffffff) * (ulonglong)uVar10;
          local_54 = (int)lVar6;
          local_50 = (int)((ulonglong)lVar6 >> 0x20) + uVar10 * (int)(lVar13 + 1U >> 0x20);
        }
        iVar9 = (*pPager->jfd->pMethods->xRead)(pPager->jfd,aMagic,8,CONCAT44(local_50,local_54));
        if (iVar9 == 0) {
          if ((aMagic._0_4_ != aJournalMagic._0_4_) ||
             (bVar7 = false, aMagic._4_4_ != aJournalMagic._4_4_)) {
            bVar7 = true;
          }
          psVar11 = pPager->jfd;
          psVar12 = psVar11->pMethods;
          if (!bVar7) {
            iVar9 = (*psVar12->xWrite)(psVar11,"",1,CONCAT44(local_50,local_54));
            goto LAB_0006a303;
          }
        }
        else {
LAB_0006a303:
          if ((iVar9 != 0) && (iVar9 != 0x20a)) goto LAB_0006a356;
          psVar11 = pPager->jfd;
          psVar12 = psVar11->pMethods;
        }
        if (pPager->fullSync != '\0') {
          if ((uVar8 & 0x400) == 0) {
            if (pPager->syncFlags != 0) {
              iVar9 = (*psVar12->xSync)(psVar11,(uint)pPager->syncFlags);
              if (iVar9 != 0) goto LAB_0006a356;
              psVar11 = pPager->jfd;
              psVar12 = psVar11->pMethods;
            }
            iVar9 = (*psVar12->xWrite)(psVar11,zHeader,0xc,pPager->journalHdr);
            if (iVar9 != 0) goto LAB_0006a356;
            goto LAB_0006a382;
          }
          iVar9 = (*psVar12->xWrite)(psVar11,zHeader,0xc,pPager->journalHdr);
          goto joined_r0x0006a4d6;
        }
        iVar9 = (*psVar12->xWrite)(psVar11,zHeader,0xc,pPager->journalHdr);
        if (iVar9 != 0) goto LAB_0006a356;
        if ((uVar8 & 0x400) == 0) goto LAB_0006a382;
      }
      else {
        if ((uVar8 & 0x400) != 0) goto LAB_0006a320;
LAB_0006a382:
        uVar10 = (uint)pPager->syncFlags;
        if (pPager->syncFlags == 3) {
          uVar10 = 0x13;
        }
        else if (uVar10 == 0) goto LAB_0006a3aa;
        iVar9 = (*pPager->jfd->pMethods->xSync)(pPager->jfd,uVar10);
joined_r0x0006a4d6:
        if (iVar9 != 0) goto LAB_0006a356;
      }
LAB_0006a3aa:
      uVar5 = *(undefined4 *)((int)&pPager->journalOff + 4);
      *(int *)&pPager->journalHdr = (int)pPager->journalOff;
      *(undefined4 *)((int)&pPager->journalHdr + 4) = uVar5;
      if (((uVar8 & 0x200) == 0) && ((newHdr & 1U) != 0)) {
        pPager->nRec = 0;
        iVar9 = writeJournalHdr(pPager);
        if (iVar9 != 0) goto LAB_0006a356;
      }
    }
  }
  pPVar3 = pPager->pPCache;
  for (pPVar4 = pPVar3->pDirty; pPVar4 != (PgHdr *)0x0; pPVar4 = pPVar4->pDirtyNext) {
    pPVar4->flags = pPVar4->flags & 0xfff7;
  }
  pPVar3->pSynced = pPVar3->pDirtyTail;
  pPager->eState = '\x04';
  iVar9 = iVar2;
LAB_0006a356:
  if (iVar1 != *(int *)(in_GS_OFFSET + 0x14)) {
                    /* WARNING: Subroutine does not return */
    __stack_chk_fail_local();
  }
  return iVar9;
}



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

int __regparm3 FUN_0006a1a0(int param_1,uint param_2)

{
  int iVar1;
  uint uVar2;
  longlong lVar3;
  bool bVar4;
  char cVar5;
  uint uVar6;
  int iVar7;
  int *piVar8;
  int in_GS_OFFSET;
  longlong lVar9;
  int local_54;
  int local_50;
  int local_34;
  int local_30;
  int local_2c;
  int local_28;
  uint local_24;
  int local_20;
  undefined4 uStack_14;
  
  uStack_14 = 0x6a1ab;
  iVar1 = *(int *)(param_1 + 0x28);
  local_20 = *(int *)(in_GS_OFFSET + 0x14);
  iVar7 = iVar1;
  if ((iVar1 != 0) || ((*(int *)(param_1 + 0xd4) == 0 && (iVar7 = FUN_000273d0(), iVar7 != 0))))
  goto LAB_0006a356;
  if (*(char *)(param_1 + 7) == '\0') {
    if ((**(int **)(param_1 + 0x40) == 0) || (*(char *)(param_1 + 5) == '\x04')) {
LAB_0006a320:
      *(undefined4 *)(param_1 + 0x50) = *(undefined4 *)(param_1 + 0x48);
      *(undefined4 *)(param_1 + 0x54) = *(undefined4 *)(param_1 + 0x4c);
    }
    else {
      uVar6 = (**(code **)(**(int **)(param_1 + 0x3c) + 0x30))(*(int **)(param_1 + 0x3c));
      if ((uVar6 & 0x200) == 0) {
        local_2c = DAT_000b4d30;
        local_28 = DAT_000b4d34;
        uVar2 = *(uint *)(param_1 + 0x2c);
        local_50 = *(int *)(param_1 + 0x4c);
        local_24 = uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18;
        local_54 = *(int *)(param_1 + 0x48);
        if (local_50 != 0 || local_54 != 0) {
          uVar2 = *(uint *)(param_1 + 0x90);
          lVar9 = FUN_000a9510(local_54 + -1,local_50 + -1 + (uint)(local_54 != 0),uVar2,0);
          lVar3 = (lVar9 + 1U & 0xffffffff) * (ulonglong)uVar2;
          local_54 = (int)lVar3;
          local_50 = (int)((ulonglong)lVar3 >> 0x20) + uVar2 * (int)(lVar9 + 1U >> 0x20);
        }
        iVar7 = (**(code **)(**(int **)(param_1 + 0x40) + 8))
                          (*(int **)(param_1 + 0x40),&local_34,8,local_54,local_50);
        if (iVar7 == 0) {
          if ((local_34 != DAT_000b4d30) || (bVar4 = false, local_30 != DAT_000b4d34)) {
            bVar4 = true;
          }
          piVar8 = *(int **)(param_1 + 0x40);
          iVar7 = *piVar8;
          if (!bVar4) {
            iVar7 = (**(code **)(iVar7 + 0xc))(piVar8,&DAT_000b1224,1,local_54,local_50);
            goto LAB_0006a303;
          }
        }
        else {
LAB_0006a303:
          if ((iVar7 != 0) && (iVar7 != 0x20a)) goto LAB_0006a356;
          piVar8 = *(int **)(param_1 + 0x40);
          iVar7 = *piVar8;
        }
        if (*(char *)(param_1 + 8) != '\0') {
          if ((uVar6 & 0x400) == 0) {
            if (*(char *)(param_1 + 10) != '\0') {
              iVar7 = (**(code **)(iVar7 + 0x14))(piVar8,*(char *)(param_1 + 10));
              if (iVar7 != 0) goto LAB_0006a356;
              piVar8 = *(int **)(param_1 + 0x40);
              iVar7 = *piVar8;
            }
            iVar7 = (**(code **)(iVar7 + 0xc))
                              (piVar8,&local_2c,0xc,*(undefined4 *)(param_1 + 0x50),
                               *(undefined4 *)(param_1 + 0x54));
            if (iVar7 != 0) goto LAB_0006a356;
            goto LAB_0006a382;
          }
          iVar7 = (**(code **)(iVar7 + 0xc))
                            (piVar8,&local_2c,0xc,*(undefined4 *)(param_1 + 0x50),
                             *(undefined4 *)(param_1 + 0x54));
          goto joined_r0x0006a4d6;
        }
        iVar7 = (**(code **)(iVar7 + 0xc))
                          (piVar8,&local_2c,0xc,*(undefined4 *)(param_1 + 0x50),
                           *(undefined4 *)(param_1 + 0x54));
        if (iVar7 != 0) goto LAB_0006a356;
        if ((uVar6 & 0x400) == 0) goto LAB_0006a382;
      }
      else {
        if ((uVar6 & 0x400) != 0) goto LAB_0006a320;
LAB_0006a382:
        cVar5 = *(char *)(param_1 + 10);
        if (cVar5 == '\x03') {
          cVar5 = '\x13';
        }
        else if (cVar5 == '\0') goto LAB_0006a3aa;
        iVar7 = (**(code **)(**(int **)(param_1 + 0x40) + 0x14))(*(int **)(param_1 + 0x40),cVar5);
joined_r0x0006a4d6:
        if (iVar7 != 0) goto LAB_0006a356;
      }
LAB_0006a3aa:
      *(undefined4 *)(param_1 + 0x50) = *(undefined4 *)(param_1 + 0x48);
      *(undefined4 *)(param_1 + 0x54) = *(undefined4 *)(param_1 + 0x4c);
      if (((uVar6 & 0x200) == 0) && ((param_2 & 1) != 0)) {
        *(undefined4 *)(param_1 + 0x2c) = 0;
        iVar7 = FUN_0005f0c0();
        if (iVar7 != 0) goto LAB_0006a356;
      }
    }
  }
  piVar8 = *(int **)(param_1 + 0xd0);
  for (iVar7 = *piVar8; iVar7 != 0; iVar7 = *(int *)(iVar7 + 0x20)) {
    *(ushort *)(iVar7 + 0x1c) = *(ushort *)(iVar7 + 0x1c) & 0xfff7;
  }
  piVar8[2] = piVar8[1];
  *(undefined1 *)(param_1 + 0x10) = 4;
  iVar7 = iVar1;
LAB_0006a356:
  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {
                    /* WARNING: Subroutine does not return */
    FUN_000a9ea0();
  }
  return iVar7;
}


PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
MOV ESI,EAX
CALL 0x0001d810
ADD EBX,0x73e55
SUB ESP,0x4c
MOV EDI,dword ptr [ESI + 0x28]
MOV EAX,GS:[0x14]
MOV dword ptr [ESP + 0x3c],EAX
XOR EAX,EAX
TEST EDI,EDI
JNZ 0x0006a356
MOV ECX,dword ptr [ESI + 0xd4]
MOV EBP,EDX
TEST ECX,ECX
JZ 0x0006a3f0
CMP byte ptr [ESI + 0x7],0x0
JNZ 0x0006a32c
MOV EAX,dword ptr [ESI + 0x40]
MOV EDX,dword ptr [EAX]
TEST EDX,EDX
JZ 0x0006a320
CMP byte ptr [ESI + 0x5],0x4
JZ 0x0006a320
MOV EAX,dword ptr [ESI + 0x3c]
SUB ESP,0xc
MOV EDX,dword ptr [EAX]
PUSH EAX
CALL dword ptr [EDX + 0x30]
MOV dword ptr [ESP + 0x20],EAX
ADD ESP,0x10
AND EAX,0x200
MOV dword ptr [ESP + 0x14],EAX
JNZ 0x0006a378
MOV EAX,dword ptr [EBX + 0xfffd6d30]
MOV EDX,dword ptr [EBX + 0xfffd6d34]
MOV dword ptr [ESP + 0x30],EAX
MOV EAX,dword ptr [ESI + 0x2c]
MOV dword ptr [ESP + 0x34],EDX
MOV EDX,dword ptr [ESI + 0x4c]
BSWAP EAX
MOV dword ptr [ESP + 0x38],EAX
MOV EAX,dword ptr [ESI + 0x48]
MOV ECX,EDX
MOV dword ptr [ESP + 0xc],ECX
OR ECX,EAX
MOV dword ptr [ESP + 0x8],EAX
JZ 0x0006a29c
MOV EAX,dword ptr [ESI + 0x90]
XOR EDX,EDX
MOV dword ptr [ESP + 0x1c],EDX
MOV EDX,dword ptr [ESP + 0xc]
MOV dword ptr [ESP + 0x18],EAX
MOV EAX,dword ptr [ESP + 0x8]
PUSH dword ptr [ESP + 0x1c]
PUSH dword ptr [ESP + 0x1c]
ADD EAX,-0x1
ADC EDX,-0x1
PUSH EDX
PUSH EAX
CALL 0x000a9510
ADD ESP,0x10
MOV ECX,dword ptr [ESP + 0x18]
ADD EAX,0x1
ADC EDX,0x0
IMUL ECX,EDX
MUL dword ptr [ESP + 0x18]
MOV dword ptr [ESP + 0xc],EDX
ADD dword ptr [ESP + 0xc],ECX
MOV dword ptr [ESP + 0x8],EAX
MOV EAX,dword ptr [ESI + 0x40]
SUB ESP,0xc
MOV ECX,dword ptr [EAX]
PUSH dword ptr [ESP + 0x18]
PUSH dword ptr [ESP + 0x18]
PUSH 0x8
LEA EDX,[ESP + 0x40]
PUSH EDX
MOV dword ptr [ESP + 0x34],EDX
PUSH EAX
CALL dword ptr [ECX + 0x8]
ADD ESP,0x20
TEST EAX,EAX
JNZ 0x0006a303
MOV EAX,dword ptr [EBX + 0xfffd6d30]
CMP dword ptr [ESP + 0x28],EAX
MOV EDX,dword ptr [ESP + 0x18]
JZ 0x0006a44d
MOV ECX,0x1
MOV EAX,dword ptr [ESI + 0x40]
TEST ECX,ECX
MOV EDX,dword ptr [EAX]
JNZ 0x0006a415
LEA ECX,[EBX + 0xfffd3224]
SUB ESP,0xc
PUSH dword ptr [ESP + 0x18]
PUSH dword ptr [ESP + 0x18]
PUSH 0x1
PUSH ECX
PUSH EAX
CALL dword ptr [EDX + 0xc]
ADD ESP,0x20
TEST EAX,EAX
JZ 0x0006a410
CMP EAX,0x20a
JZ 0x0006a410
MOV EDI,EAX
JMP 0x0006a356
MOV EAX,dword ptr [ESI + 0x48]
MOV EDX,dword ptr [ESI + 0x4c]
MOV dword ptr [ESI + 0x50],EAX
MOV dword ptr [ESI + 0x54],EDX
MOV EDX,dword ptr [ESI + 0xd0]
MOV EAX,dword ptr [EDX]
TEST EAX,EAX
JZ 0x0006a34c
NOP
LEA ESI,[ESI]
AND word ptr [EAX + 0x1c],0xfff7
MOV EAX,dword ptr [EAX + 0x20]
TEST EAX,EAX
JNZ 0x0006a340
MOV EAX,dword ptr [EDX + 0x4]
MOV dword ptr [EDX + 0x8],EAX
MOV byte ptr [ESI + 0x10],0x4
MOV ECX,dword ptr [ESP + 0x3c]
XOR ECX,dword ptr GS:[0x14]
MOV EAX,EDI
JNZ 0x0006a4e1
ADD ESP,0x4c
POP EBX
POP ESI
POP EDI
POP EBP
RET
TEST dword ptr [ESP + 0x10],0x400
JNZ 0x0006a320
MOVZX EAX,byte ptr [ESI + 0xa]
MOV EDX,dword ptr [ESI + 0x40]
CMP AL,0x3
JZ 0x0006a463
TEST EAX,EAX
JZ 0x0006a3aa
SUB ESP,0x8
MOV ECX,dword ptr [EDX]
PUSH EAX
PUSH EDX
CALL dword ptr [ECX + 0x14]
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x0006a316
MOV EAX,dword ptr [ESI + 0x48]
MOV EDX,dword ptr [ESI + 0x4c]
MOV dword ptr [ESI + 0x50],EAX
MOV EAX,dword ptr [ESP + 0x14]
MOV dword ptr [ESI + 0x54],EDX
TEST EAX,EAX
JNZ 0x0006a32c
AND EBP,0x1
JZ 0x0006a32c
MOV dword ptr [ESI + 0x2c],0x0
MOV EAX,ESI
CALL 0x0005f0c0
TEST EAX,EAX
JZ 0x0006a32c
MOV EDI,EAX
JMP 0x0006a356
MOV EDX,0x4
MOV EAX,ESI
CALL 0x000273d0
TEST EAX,EAX
JZ 0x0006a1db
JMP 0x0006a316
MOV EAX,dword ptr [ESI + 0x40]
MOV EDX,dword ptr [EAX]
CMP byte ptr [ESI + 0x8],0x0
JNZ 0x0006a46d
SUB ESP,0xc
PUSH dword ptr [ESI + 0x54]
PUSH dword ptr [ESI + 0x50]
PUSH 0xc
LEA ECX,[ESP + 0x48]
PUSH ECX
PUSH EAX
CALL dword ptr [EDX + 0xc]
ADD ESP,0x20
TEST EAX,EAX
JNZ 0x0006a316
TEST dword ptr [ESP + 0x10],0x400
JZ 0x0006a382
JMP 0x0006a3aa
MOV EAX,dword ptr [EBX + 0xfffd6d34]
XOR ECX,ECX
CMP dword ptr [EDX + 0x4],EAX
JNZ 0x0006a2d6
JMP 0x0006a2db
MOV EAX,0x13
JMP 0x0006a395
TEST dword ptr [ESP + 0x10],0x400
JNZ 0x0006a4bd
MOVZX ECX,byte ptr [ESI + 0xa]
TEST ECX,ECX
JZ 0x0006a497
SUB ESP,0x8
PUSH ECX
PUSH EAX
CALL dword ptr [EDX + 0x14]
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x0006a316
MOV EAX,dword ptr [ESI + 0x40]
MOV EDX,dword ptr [EAX]
SUB ESP,0xc
PUSH dword ptr [ESI + 0x54]
PUSH dword ptr [ESI + 0x50]
PUSH 0xc
LEA ECX,[ESP + 0x48]
PUSH ECX
PUSH EAX
CALL dword ptr [EDX + 0xc]
ADD ESP,0x20
TEST EAX,EAX
JZ 0x0006a382
MOV EDI,EAX
JMP 0x0006a356
SUB ESP,0xc
PUSH dword ptr [ESI + 0x54]
PUSH dword ptr [ESI + 0x50]
PUSH 0xc
LEA ECX,[ESP + 0x48]
PUSH ECX
PUSH EAX
CALL dword ptr [EDX + 0xc]
ADD ESP,0x20
TEST EAX,EAX
JZ 0x0006a3aa
JMP 0x0006a316
CALL 0x000a9ea0
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nint __regparm3 FUN_0006a1a0(int param_1,uint param_2)\n\n{\n  int iVar1;\n  uint uVar2;\n  longlong lVar3;\n  bool bVar4;\n  char cVar5;\n  uint uVar6;\n  int iVar7;\n  int *piVar8;\n  int in_GS_OFFSET;\n  longlong lVar9;\n  int local_54;\n  int local_50;\n  int local_34;\n  int local_30;\n  int local_2c;\n  int local_28;\n  uint local_24;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x6a1ab;\n  iVar1 = *(int *)(param_1 + 0x28);\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  iVar7 = iVar1;\n  if ((iVar1 != 0) || ((*(int *)(param_1 + 0xd4) == 0 && (iVar7 = FUN_000273d0(), iVar7 != 0))))\n  goto LAB_0006a356;\n  if (*(char *)(param_1 + 7) == '\0') {\n    if ((**(int **)(param_1 + 0x40) == 0) || (*(char *)(param_1 + 5) == '\x04')) {\nLAB_0006a320:\n      *(undefined4 *)(param_1 + 0x50) = *(undefined4 *)(param_1 + 0x48);\n      *(undefined4 *)(param_1 + 0x54) = *(undefined4 *)(param_1 + 0x4c);\n    }\n    else {\n      uVar6 = (**(code **)(**(int **)(param_1 + 0x3c) + 0x30))(*(int **)(param_1 + 0x3c));\n      if ((uVar6 & 0x200) == 0) {\n        local_2c = DAT_000b4d30;\n        local_28 = DAT_000b4d34;\n        uVar2 = *(uint *)(param_1 + 0x2c);\n        local_50 = *(int *)(param_1 + 0x4c);\n        local_24 = uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18;\n        local_54 = *(int *)(param_1 + 0x48);\n        if (local_50 != 0 || local_54 != 0) {\n          uVar2 = *(uint *)(param_1 + 0x90);\n          lVar9 = FUN_000a9510(local_54 + -1,local_50 + -1 + (uint)(local_54 != 0),uVar2,0);\n          lVar3 = (lVar9 + 1U & 0xffffffff) * (ulonglong)uVar2;\n          local_54 = (int)lVar3;\n          local_50 = (int)((ulonglong)lVar3 >> 0x20) + uVar2 * (int)(lVar9 + 1U >> 0x20);\n        }\n        iVar7 = (**(code **)(**(int **)(param_1 + 0x40) + 8))\n                          (*(int **)(param_1 + 0x40),&local_34,8,local_54,local_50);\n        if (iVar7 == 0) {\n          if ((local_34 != DAT_000b4d30) || (bVar4 = false, local_30 != DAT_000b4d34)) {\n            bVar4 = true;\n          }\n          piVar8 = *(int **)(param_1 + 0x40);\n          iVar7 = *piVar8;\n          if (!bVar4) {\n            iVar7 = (**(code **)(iVar7 + 0xc))(piVar8,&DAT_000b1224,1,local_54,local_50);\n            goto LAB_0006a303;\n          }\n        }\n        else {\nLAB_0006a303:\n          if ((iVar7 != 0) && (iVar7 != 0x20a)) goto LAB_0006a356;\n          piVar8 = *(int **)(param_1 + 0x40);\n          iVar7 = *piVar8;\n        }\n        if (*(char *)(param_1 + 8) != '\0') {\n          if ((uVar6 & 0x400) == 0) {\n            if (*(char *)(param_1 + 10) != '\0') {\n              iVar7 = (**(code **)(iVar7 + 0x14))(piVar8,*(char *)(param_1 + 10));\n              if (iVar7 != 0) goto LAB_0006a356;\n              piVar8 = *(int **)(param_1 + 0x40);\n              iVar7 = *piVar8;\n            }\n            iVar7 = (**(code **)(iVar7 + 0xc))\n                              (piVar8,&local_2c,0xc,*(undefined4 *)(param_1 + 0x50),\n                               *(undefined4 *)(param_1 + 0x54));\n            if (iVar7 != 0) goto LAB_0006a356;\n            goto LAB_0006a382;\n          }\n          iVar7 = (**(code **)(iVar7 + 0xc))\n                            (piVar8,&local_2c,0xc,*(undefined4 *)(param_1 + 0x50),\n                             *(undefined4 *)(param_1 + 0x54));\n          goto joined_r0x0006a4d6;\n        }\n        iVar7 = (**(code **)(iVar7 + 0xc))\n                          (piVar8,&local_2c,0xc,*(undefined4 *)(param_1 + 0x50),\n                           *(undefined4 *)(param_1 + 0x54));\n        if (iVar7 != 0) goto LAB_0006a356;\n        if ((uVar6 & 0x400) == 0) goto LAB_0006a382;\n      }\n      else {\n        if ((uVar6 & 0x400) != 0) goto LAB_0006a320;\nLAB_0006a382:\n        cVar5 = *(char *)(param_1 + 10);\n        if (cVar5 == '\x03') {\n          cVar5 = '\x13';\n        }\n        else if (cVar5 == '\0') goto LAB_0006a3aa;\n        iVar7 = (**(code **)(**(int **)(param_1 + 0x40) + 0x14))(*(int **)(param_1 + 0x40),cVar5);\njoined_r0x0006a4d6:\n        if (iVar7 != 0) goto LAB_0006a356;\n      }\nLAB_0006a3aa:\n      *(undefined4 *)(param_1 + 0x50) = *(undefined4 *)(param_1 + 0x48);\n      *(undefined4 *)(param_1 + 0x54) = *(undefined4 *)(param_1 + 0x4c);\n      if (((uVar6 & 0x200) == 0) && ((param_2 & 1) != 0)) {\n        *(undefined4 *)(param_1 + 0x2c) = 0;\n        iVar7 = FUN_0005f0c0();\n        if (iVar7 != 0) goto LAB_0006a356;\n      }\n    }\n  }\n  piVar8 = *(int **)(param_1 + 0xd0);\n  for (iVar7 = *piVar8; iVar7 != 0; iVar7 = *(int *)(iVar7 + 0x20)) {\n    *(ushort *)(iVar7 + 0x1c) = *(ushort *)(iVar7 + 0x1c) & 0xfff7;\n  }\n  piVar8[2] = piVar8[1];\n  *(undefined1 *)(param_1 + 0x10) = 4;\n  iVar7 = iVar1;\nLAB_0006a356:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_000a9ea0();\n  }\n  return iVar7;\n}\n\n" comment (function_definition "int __regparm3 FUN_0006a1a0(int param_1,uint param_2)\n\n{\n  int iVar1;\n  uint uVar2;\n  longlong lVar3;\n  bool bVar4;\n  char cVar5;\n  uint uVar6;\n  int iVar7;\n  int *piVar8;\n  int in_GS_OFFSET;\n  longlong lVar9;\n  int local_54;\n  int local_50;\n  int local_34;\n  int local_30;\n  int local_2c;\n  int local_28;\n  uint local_24;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x6a1ab;\n  iVar1 = *(int *)(param_1 + 0x28);\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  iVar7 = iVar1;\n  if ((iVar1 != 0) || ((*(int *)(param_1 + 0xd4) == 0 && (iVar7 = FUN_000273d0(), iVar7 != 0))))\n  goto LAB_0006a356;\n  if (*(char *)(param_1 + 7) == '\0') {\n    if ((**(int **)(param_1 + 0x40) == 0) || (*(char *)(param_1 + 5) == '\x04')) {\nLAB_0006a320:\n      *(undefined4 *)(param_1 + 0x50) = *(undefined4 *)(param_1 + 0x48);\n      *(undefined4 *)(param_1 + 0x54) = *(undefined4 *)(param_1 + 0x4c);\n    }\n    else {\n      uVar6 = (**(code **)(**(int **)(param_1 + 0x3c) + 0x30))(*(int **)(param_1 + 0x3c));\n      if ((uVar6 & 0x200) == 0) {\n        local_2c = DAT_000b4d30;\n        local_28 = DAT_000b4d34;\n        uVar2 = *(uint *)(param_1 + 0x2c);\n        local_50 = *(int *)(param_1 + 0x4c);\n        local_24 = uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18;\n        local_54 = *(int *)(param_1 + 0x48);\n        if (local_50 != 0 || local_54 != 0) {\n          uVar2 = *(uint *)(param_1 + 0x90);\n          lVar9 = FUN_000a9510(local_54 + -1,local_50 + -1 + (uint)(local_54 != 0),uVar2,0);\n          lVar3 = (lVar9 + 1U & 0xffffffff) * (ulonglong)uVar2;\n          local_54 = (int)lVar3;\n          local_50 = (int)((ulonglong)lVar3 >> 0x20) + uVar2 * (int)(lVar9 + 1U >> 0x20);\n        }\n        iVar7 = (**(code **)(**(int **)(param_1 + 0x40) + 8))\n                          (*(int **)(param_1 + 0x40),&local_34,8,local_54,local_50);\n        if (iVar7 == 0) {\n          if ((local_34 != DAT_000b4d30) || (bVar4 = false, local_30 != DAT_000b4d34)) {\n            bVar4 = true;\n          }\n          piVar8 = *(int **)(param_1 + 0x40);\n          iVar7 = *piVar8;\n          if (!bVar4) {\n            iVar7 = (**(code **)(iVar7 + 0xc))(piVar8,&DAT_000b1224,1,local_54,local_50);\n            goto LAB_0006a303;\n          }\n        }\n        else {\nLAB_0006a303:\n          if ((iVar7 != 0) && (iVar7 != 0x20a)) goto LAB_0006a356;\n          piVar8 = *(int **)(param_1 + 0x40);\n          iVar7 = *piVar8;\n        }\n        if (*(char *)(param_1 + 8) != '\0') {\n          if ((uVar6 & 0x400) == 0) {\n            if (*(char *)(param_1 + 10) != '\0') {\n              iVar7 = (**(code **)(iVar7 + 0x14))(piVar8,*(char *)(param_1 + 10));\n              if (iVar7 != 0) goto LAB_0006a356;\n              piVar8 = *(int **)(param_1 + 0x40);\n              iVar7 = *piVar8;\n            }\n            iVar7 = (**(code **)(iVar7 + 0xc))\n                              (piVar8,&local_2c,0xc,*(undefined4 *)(param_1 + 0x50),\n                               *(undefined4 *)(param_1 + 0x54));\n            if (iVar7 != 0) goto LAB_0006a356;\n            goto LAB_0006a382;\n          }\n          iVar7 = (**(code **)(iVar7 + 0xc))\n                            (piVar8,&local_2c,0xc,*(undefined4 *)(param_1 + 0x50),\n                             *(undefined4 *)(param_1 + 0x54));\n          goto joined_r0x0006a4d6;\n        }\n        iVar7 = (**(code **)(iVar7 + 0xc))\n                          (piVar8,&local_2c,0xc,*(undefined4 *)(param_1 + 0x50),\n                           *(undefined4 *)(param_1 + 0x54));\n        if (iVar7 != 0) goto LAB_0006a356;\n        if ((uVar6 & 0x400) == 0) goto LAB_0006a382;\n      }\n      else {\n        if ((uVar6 & 0x400) != 0) goto LAB_0006a320;\nLAB_0006a382:\n        cVar5 = *(char *)(param_1 + 10);\n        if (cVar5 == '\x03') {\n          cVar5 = '\x13';\n        }\n        else if (cVar5 == '\0') goto LAB_0006a3aa;\n        iVar7 = (**(code **)(**(int **)(param_1 + 0x40) + 0x14))(*(int **)(param_1 + 0x40),cVar5);\njoined_r0x0006a4d6:\n        if (iVar7 != 0) goto LAB_0006a356;\n      }\nLAB_0006a3aa:\n      *(undefined4 *)(param_1 + 0x50) = *(undefined4 *)(param_1 + 0x48);\n      *(undefined4 *)(param_1 + 0x54) = *(undefined4 *)(param_1 + 0x4c);\n      if (((uVar6 & 0x200) == 0) && ((param_2 & 1) != 0)) {\n        *(undefined4 *)(param_1 + 0x2c) = 0;\n        iVar7 = FUN_0005f0c0();\n        if (iVar7 != 0) goto LAB_0006a356;\n      }\n    }\n  }\n  piVar8 = *(int **)(param_1 + 0xd0);\n  for (iVar7 = *piVar8; iVar7 != 0; iVar7 = *(int *)(iVar7 + 0x20)) {\n    *(ushort *)(iVar7 + 0x1c) = *(ushort *)(iVar7 + 0x1c) & 0xfff7;\n  }\n  piVar8[2] = piVar8[1];\n  *(undefined1 *)(param_1 + 0x10) = 4;\n  iVar7 = iVar1;\nLAB_0006a356:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_000a9ea0();\n  }\n  return iVar7;\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "FUN_0006a1a0(int param_1,uint param_2)" identifier (parameter_list "(int param_1,uint param_2)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "uint param_2" type_identifier identifier) ))) (compound_statement "{\n  int iVar1;\n  uint uVar2;\n  longlong lVar3;\n  bool bVar4;\n  char cVar5;\n  uint uVar6;\n  int iVar7;\n  int *piVar8;\n  int in_GS_OFFSET;\n  longlong lVar9;\n  int local_54;\n  int local_50;\n  int local_34;\n  int local_30;\n  int local_2c;\n  int local_28;\n  uint local_24;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x6a1ab;\n  iVar1 = *(int *)(param_1 + 0x28);\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  iVar7 = iVar1;\n  if ((iVar1 != 0) || ((*(int *)(param_1 + 0xd4) == 0 && (iVar7 = FUN_000273d0(), iVar7 != 0))))\n  goto LAB_0006a356;\n  if (*(char *)(param_1 + 7) == '\0') {\n    if ((**(int **)(param_1 + 0x40) == 0) || (*(char *)(param_1 + 5) == '\x04')) {\nLAB_0006a320:\n      *(undefined4 *)(param_1 + 0x50) = *(undefined4 *)(param_1 + 0x48);\n      *(undefined4 *)(param_1 + 0x54) = *(undefined4 *)(param_1 + 0x4c);\n    }\n    else {\n      uVar6 = (**(code **)(**(int **)(param_1 + 0x3c) + 0x30))(*(int **)(param_1 + 0x3c));\n      if ((uVar6 & 0x200) == 0) {\n        local_2c = DAT_000b4d30;\n        local_28 = DAT_000b4d34;\n        uVar2 = *(uint *)(param_1 + 0x2c);\n        local_50 = *(int *)(param_1 + 0x4c);\n        local_24 = uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18;\n        local_54 = *(int *)(param_1 + 0x48);\n        if (local_50 != 0 || local_54 != 0) {\n          uVar2 = *(uint *)(param_1 + 0x90);\n          lVar9 = FUN_000a9510(local_54 + -1,local_50 + -1 + (uint)(local_54 != 0),uVar2,0);\n          lVar3 = (lVar9 + 1U & 0xffffffff) * (ulonglong)uVar2;\n          local_54 = (int)lVar3;\n          local_50 = (int)((ulonglong)lVar3 >> 0x20) + uVar2 * (int)(lVar9 + 1U >> 0x20);\n        }\n        iVar7 = (**(code **)(**(int **)(param_1 + 0x40) + 8))\n                          (*(int **)(param_1 + 0x40),&local_34,8,local_54,local_50);\n        if (iVar7 == 0) {\n          if ((local_34 != DAT_000b4d30) || (bVar4 = false, local_30 != DAT_000b4d34)) {\n            bVar4 = true;\n          }\n          piVar8 = *(int **)(param_1 + 0x40);\n          iVar7 = *piVar8;\n          if (!bVar4) {\n            iVar7 = (**(code **)(iVar7 + 0xc))(piVar8,&DAT_000b1224,1,local_54,local_50);\n            goto LAB_0006a303;\n          }\n        }\n        else {\nLAB_0006a303:\n          if ((iVar7 != 0) && (iVar7 != 0x20a)) goto LAB_0006a356;\n          piVar8 = *(int **)(param_1 + 0x40);\n          iVar7 = *piVar8;\n        }\n        if (*(char *)(param_1 + 8) != '\0') {\n          if ((uVar6 & 0x400) == 0) {\n            if (*(char *)(param_1 + 10) != '\0') {\n              iVar7 = (**(code **)(iVar7 + 0x14))(piVar8,*(char *)(param_1 + 10));\n              if (iVar7 != 0) goto LAB_0006a356;\n              piVar8 = *(int **)(param_1 + 0x40);\n              iVar7 = *piVar8;\n            }\n            iVar7 = (**(code **)(iVar7 + 0xc))\n                              (piVar8,&local_2c,0xc,*(undefined4 *)(param_1 + 0x50),\n                               *(undefined4 *)(param_1 + 0x54));\n            if (iVar7 != 0) goto LAB_0006a356;\n            goto LAB_0006a382;\n          }\n          iVar7 = (**(code **)(iVar7 + 0xc))\n                            (piVar8,&local_2c,0xc,*(undefined4 *)(param_1 + 0x50),\n                             *(undefined4 *)(param_1 + 0x54));\n          goto joined_r0x0006a4d6;\n        }\n        iVar7 = (**(code **)(iVar7 + 0xc))\n                          (piVar8,&local_2c,0xc,*(undefined4 *)(param_1 + 0x50),\n                           *(undefined4 *)(param_1 + 0x54));\n        if (iVar7 != 0) goto LAB_0006a356;\n        if ((uVar6 & 0x400) == 0) goto LAB_0006a382;\n      }\n      else {\n        if ((uVar6 & 0x400) != 0) goto LAB_0006a320;\nLAB_0006a382:\n        cVar5 = *(char *)(param_1 + 10);\n        if (cVar5 == '\x03') {\n          cVar5 = '\x13';\n        }\n        else if (cVar5 == '\0') goto LAB_0006a3aa;\n        iVar7 = (**(code **)(**(int **)(param_1 + 0x40) + 0x14))(*(int **)(param_1 + 0x40),cVar5);\njoined_r0x0006a4d6:\n        if (iVar7 != 0) goto LAB_0006a356;\n      }\nLAB_0006a3aa:\n      *(undefined4 *)(param_1 + 0x50) = *(undefined4 *)(param_1 + 0x48);\n      *(undefined4 *)(param_1 + 0x54) = *(undefined4 *)(param_1 + 0x4c);\n      if (((uVar6 & 0x200) == 0) && ((param_2 & 1) != 0)) {\n        *(undefined4 *)(param_1 + 0x2c) = 0;\n        iVar7 = FUN_0005f0c0();\n        if (iVar7 != 0) goto LAB_0006a356;\n      }\n    }\n  }\n  piVar8 = *(int **)(param_1 + 0xd0);\n  for (iVar7 = *piVar8; iVar7 != 0; iVar7 = *(int *)(iVar7 + 0x20)) {\n    *(ushort *)(iVar7 + 0x1c) = *(ushort *)(iVar7 + 0x1c) & 0xfff7;\n  }\n  piVar8[2] = piVar8[1];\n  *(undefined1 *)(param_1 + 0x10) = 4;\n  iVar7 = iVar1;\nLAB_0006a356:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_000a9ea0();\n  }\n  return iVar7;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "longlong lVar3;" type_identifier identifier ;) (declaration "bool bVar4;" primitive_type identifier ;) (declaration "char cVar5;" primitive_type identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "int *piVar8;" primitive_type (pointer_declarator "*piVar8" * identifier) ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "longlong lVar9;" type_identifier identifier ;) (declaration "int local_54;" primitive_type identifier ;) (declaration "int local_50;" primitive_type identifier ;) (declaration "int local_34;" primitive_type identifier ;) (declaration "int local_30;" primitive_type identifier ;) (declaration "int local_2c;" primitive_type identifier ;) (declaration "int local_28;" primitive_type identifier ;) (declaration "uint local_24;" type_identifier identifier ;) (declaration "int local_20;" primitive_type identifier ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "uStack_14 = 0x6a1ab;" (assignment_expression "uStack_14 = 0x6a1ab" identifier = number_literal) ;) (expression_statement "iVar1 = *(int *)(param_1 + 0x28);" (assignment_expression "iVar1 = *(int *)(param_1 + 0x28)" identifier = (pointer_expression "*(int *)(param_1 + 0x28)" * (cast_expression "(int *)(param_1 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "local_20 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_20 = *(int *)(in_GS_OFFSET + 0x14)" identifier = (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) ;) (expression_statement "iVar7 = iVar1;" (assignment_expression "iVar7 = iVar1" identifier = identifier) ;) (if_statement "if ((iVar1 != 0) || ((*(int *)(param_1 + 0xd4) == 0 && (iVar7 = FUN_000273d0(), iVar7 != 0))))\n  goto LAB_0006a356;" if (parenthesized_expression "((iVar1 != 0) || ((*(int *)(param_1 + 0xd4) == 0 && (iVar7 = FUN_000273d0(), iVar7 != 0))))" ( (binary_expression "(iVar1 != 0) || ((*(int *)(param_1 + 0xd4) == 0 && (iVar7 = FUN_000273d0(), iVar7 != 0)))" (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) || (parenthesized_expression "((*(int *)(param_1 + 0xd4) == 0 && (iVar7 = FUN_000273d0(), iVar7 != 0)))" ( (parenthesized_expression "(*(int *)(param_1 + 0xd4) == 0 && (iVar7 = FUN_000273d0(), iVar7 != 0))" ( (binary_expression "*(int *)(param_1 + 0xd4) == 0 && (iVar7 = FUN_000273d0(), iVar7 != 0)" (binary_expression "*(int *)(param_1 + 0xd4) == 0" (pointer_expression "*(int *)(param_1 + 0xd4)" * (cast_expression "(int *)(param_1 + 0xd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xd4)" ( (binary_expression "param_1 + 0xd4" identifier + number_literal) )))) == number_literal) && (parenthesized_expression "(iVar7 = FUN_000273d0(), iVar7 != 0)" ( (comma_expression "iVar7 = FUN_000273d0(), iVar7 != 0" (assignment_expression "iVar7 = FUN_000273d0()" identifier = (call_expression "FUN_000273d0()" identifier (argument_list "()" ( )))) , (binary_expression "iVar7 != 0" identifier != number_literal)) ))) )) ))) )) (goto_statement "goto LAB_0006a356;" goto statement_identifier ;)) (if_statement "if (*(char *)(param_1 + 7) == '\0') {\n    if ((**(int **)(param_1 + 0x40) == 0) || (*(char *)(param_1 + 5) == '\x04')) {\nLAB_0006a320:\n      *(undefined4 *)(param_1 + 0x50) = *(undefined4 *)(param_1 + 0x48);\n      *(undefined4 *)(param_1 + 0x54) = *(undefined4 *)(param_1 + 0x4c);\n    }\n    else {\n      uVar6 = (**(code **)(**(int **)(param_1 + 0x3c) + 0x30))(*(int **)(param_1 + 0x3c));\n      if ((uVar6 & 0x200) == 0) {\n        local_2c = DAT_000b4d30;\n        local_28 = DAT_000b4d34;\n        uVar2 = *(uint *)(param_1 + 0x2c);\n        local_50 = *(int *)(param_1 + 0x4c);\n        local_24 = uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18;\n        local_54 = *(int *)(param_1 + 0x48);\n        if (local_50 != 0 || local_54 != 0) {\n          uVar2 = *(uint *)(param_1 + 0x90);\n          lVar9 = FUN_000a9510(local_54 + -1,local_50 + -1 + (uint)(local_54 != 0),uVar2,0);\n          lVar3 = (lVar9 + 1U & 0xffffffff) * (ulonglong)uVar2;\n          local_54 = (int)lVar3;\n          local_50 = (int)((ulonglong)lVar3 >> 0x20) + uVar2 * (int)(lVar9 + 1U >> 0x20);\n        }\n        iVar7 = (**(code **)(**(int **)(param_1 + 0x40) + 8))\n                          (*(int **)(param_1 + 0x40),&local_34,8,local_54,local_50);\n        if (iVar7 == 0) {\n          if ((local_34 != DAT_000b4d30) || (bVar4 = false, local_30 != DAT_000b4d34)) {\n            bVar4 = true;\n          }\n          piVar8 = *(int **)(param_1 + 0x40);\n          iVar7 = *piVar8;\n          if (!bVar4) {\n            iVar7 = (**(code **)(iVar7 + 0xc))(piVar8,&DAT_000b1224,1,local_54,local_50);\n            goto LAB_0006a303;\n          }\n        }\n        else {\nLAB_0006a303:\n          if ((iVar7 != 0) && (iVar7 != 0x20a)) goto LAB_0006a356;\n          piVar8 = *(int **)(param_1 + 0x40);\n          iVar7 = *piVar8;\n        }\n        if (*(char *)(param_1 + 8) != '\0') {\n          if ((uVar6 & 0x400) == 0) {\n            if (*(char *)(param_1 + 10) != '\0') {\n              iVar7 = (**(code **)(iVar7 + 0x14))(piVar8,*(char *)(param_1 + 10));\n              if (iVar7 != 0) goto LAB_0006a356;\n              piVar8 = *(int **)(param_1 + 0x40);\n              iVar7 = *piVar8;\n            }\n            iVar7 = (**(code **)(iVar7 + 0xc))\n                              (piVar8,&local_2c,0xc,*(undefined4 *)(param_1 + 0x50),\n                               *(undefined4 *)(param_1 + 0x54));\n            if (iVar7 != 0) goto LAB_0006a356;\n            goto LAB_0006a382;\n          }\n          iVar7 = (**(code **)(iVar7 + 0xc))\n                            (piVar8,&local_2c,0xc,*(undefined4 *)(param_1 + 0x50),\n                             *(undefined4 *)(param_1 + 0x54));\n          goto joined_r0x0006a4d6;\n        }\n        iVar7 = (**(code **)(iVar7 + 0xc))\n                          (piVar8,&local_2c,0xc,*(undefined4 *)(param_1 + 0x50),\n                           *(undefined4 *)(param_1 + 0x54));\n        if (iVar7 != 0) goto LAB_0006a356;\n        if ((uVar6 & 0x400) == 0) goto LAB_0006a382;\n      }\n      else {\n        if ((uVar6 & 0x400) != 0) goto LAB_0006a320;\nLAB_0006a382:\n        cVar5 = *(char *)(param_1 + 10);\n        if (cVar5 == '\x03') {\n          cVar5 = '\x13';\n        }\n        else if (cVar5 == '\0') goto LAB_0006a3aa;\n        iVar7 = (**(code **)(**(int **)(param_1 + 0x40) + 0x14))(*(int **)(param_1 + 0x40),cVar5);\njoined_r0x0006a4d6:\n        if (iVar7 != 0) goto LAB_0006a356;\n      }\nLAB_0006a3aa:\n      *(undefined4 *)(param_1 + 0x50) = *(undefined4 *)(param_1 + 0x48);\n      *(undefined4 *)(param_1 + 0x54) = *(undefined4 *)(param_1 + 0x4c);\n      if (((uVar6 & 0x200) == 0) && ((param_2 & 1) != 0)) {\n        *(undefined4 *)(param_1 + 0x2c) = 0;\n        iVar7 = FUN_0005f0c0();\n        if (iVar7 != 0) goto LAB_0006a356;\n      }\n    }\n  }" if (parenthesized_expression "(*(char *)(param_1 + 7) == '\0')" ( (binary_expression "*(char *)(param_1 + 7) == '\0'" (pointer_expression "*(char *)(param_1 + 7)" * (cast_expression "(char *)(param_1 + 7)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 7)" ( (binary_expression "param_1 + 7" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    if ((**(int **)(param_1 + 0x40) == 0) || (*(char *)(param_1 + 5) == '\x04')) {\nLAB_0006a320:\n      *(undefined4 *)(param_1 + 0x50) = *(undefined4 *)(param_1 + 0x48);\n      *(undefined4 *)(param_1 + 0x54) = *(undefined4 *)(param_1 + 0x4c);\n    }\n    else {\n      uVar6 = (**(code **)(**(int **)(param_1 + 0x3c) + 0x30))(*(int **)(param_1 + 0x3c));\n      if ((uVar6 & 0x200) == 0) {\n        local_2c = DAT_000b4d30;\n        local_28 = DAT_000b4d34;\n        uVar2 = *(uint *)(param_1 + 0x2c);\n        local_50 = *(int *)(param_1 + 0x4c);\n        local_24 = uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18;\n        local_54 = *(int *)(param_1 + 0x48);\n        if (local_50 != 0 || local_54 != 0) {\n          uVar2 = *(uint *)(param_1 + 0x90);\n          lVar9 = FUN_000a9510(local_54 + -1,local_50 + -1 + (uint)(local_54 != 0),uVar2,0);\n          lVar3 = (lVar9 + 1U & 0xffffffff) * (ulonglong)uVar2;\n          local_54 = (int)lVar3;\n          local_50 = (int)((ulonglong)lVar3 >> 0x20) + uVar2 * (int)(lVar9 + 1U >> 0x20);\n        }\n        iVar7 = (**(code **)(**(int **)(param_1 + 0x40) + 8))\n                          (*(int **)(param_1 + 0x40),&local_34,8,local_54,local_50);\n        if (iVar7 == 0) {\n          if ((local_34 != DAT_000b4d30) || (bVar4 = false, local_30 != DAT_000b4d34)) {\n            bVar4 = true;\n          }\n          piVar8 = *(int **)(param_1 + 0x40);\n          iVar7 = *piVar8;\n          if (!bVar4) {\n            iVar7 = (**(code **)(iVar7 + 0xc))(piVar8,&DAT_000b1224,1,local_54,local_50);\n            goto LAB_0006a303;\n          }\n        }\n        else {\nLAB_0006a303:\n          if ((iVar7 != 0) && (iVar7 != 0x20a)) goto LAB_0006a356;\n          piVar8 = *(int **)(param_1 + 0x40);\n          iVar7 = *piVar8;\n        }\n        if (*(char *)(param_1 + 8) != '\0') {\n          if ((uVar6 & 0x400) == 0) {\n            if (*(char *)(param_1 + 10) != '\0') {\n              iVar7 = (**(code **)(iVar7 + 0x14))(piVar8,*(char *)(param_1 + 10));\n              if (iVar7 != 0) goto LAB_0006a356;\n              piVar8 = *(int **)(param_1 + 0x40);\n              iVar7 = *piVar8;\n            }\n            iVar7 = (**(code **)(iVar7 + 0xc))\n                              (piVar8,&local_2c,0xc,*(undefined4 *)(param_1 + 0x50),\n                               *(undefined4 *)(param_1 + 0x54));\n            if (iVar7 != 0) goto LAB_0006a356;\n            goto LAB_0006a382;\n          }\n          iVar7 = (**(code **)(iVar7 + 0xc))\n                            (piVar8,&local_2c,0xc,*(undefined4 *)(param_1 + 0x50),\n                             *(undefined4 *)(param_1 + 0x54));\n          goto joined_r0x0006a4d6;\n        }\n        iVar7 = (**(code **)(iVar7 + 0xc))\n                          (piVar8,&local_2c,0xc,*(undefined4 *)(param_1 + 0x50),\n                           *(undefined4 *)(param_1 + 0x54));\n        if (iVar7 != 0) goto LAB_0006a356;\n        if ((uVar6 & 0x400) == 0) goto LAB_0006a382;\n      }\n      else {\n        if ((uVar6 & 0x400) != 0) goto LAB_0006a320;\nLAB_0006a382:\n        cVar5 = *(char *)(param_1 + 10);\n        if (cVar5 == '\x03') {\n          cVar5 = '\x13';\n        }\n        else if (cVar5 == '\0') goto LAB_0006a3aa;\n        iVar7 = (**(code **)(**(int **)(param_1 + 0x40) + 0x14))(*(int **)(param_1 + 0x40),cVar5);\njoined_r0x0006a4d6:\n        if (iVar7 != 0) goto LAB_0006a356;\n      }\nLAB_0006a3aa:\n      *(undefined4 *)(param_1 + 0x50) = *(undefined4 *)(param_1 + 0x48);\n      *(undefined4 *)(param_1 + 0x54) = *(undefined4 *)(param_1 + 0x4c);\n      if (((uVar6 & 0x200) == 0) && ((param_2 & 1) != 0)) {\n        *(undefined4 *)(param_1 + 0x2c) = 0;\n        iVar7 = FUN_0005f0c0();\n        if (iVar7 != 0) goto LAB_0006a356;\n      }\n    }\n  }" { (if_statement "if ((**(int **)(param_1 + 0x40) == 0) || (*(char *)(param_1 + 5) == '\x04')) {\nLAB_0006a320:\n      *(undefined4 *)(param_1 + 0x50) = *(undefined4 *)(param_1 + 0x48);\n      *(undefined4 *)(param_1 + 0x54) = *(undefined4 *)(param_1 + 0x4c);\n    }\n    else {\n      uVar6 = (**(code **)(**(int **)(param_1 + 0x3c) + 0x30))(*(int **)(param_1 + 0x3c));\n      if ((uVar6 & 0x200) == 0) {\n        local_2c = DAT_000b4d30;\n        local_28 = DAT_000b4d34;\n        uVar2 = *(uint *)(param_1 + 0x2c);\n        local_50 = *(int *)(param_1 + 0x4c);\n        local_24 = uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18;\n        local_54 = *(int *)(param_1 + 0x48);\n        if (local_50 != 0 || local_54 != 0) {\n          uVar2 = *(uint *)(param_1 + 0x90);\n          lVar9 = FUN_000a9510(local_54 + -1,local_50 + -1 + (uint)(local_54 != 0),uVar2,0);\n          lVar3 = (lVar9 + 1U & 0xffffffff) * (ulonglong)uVar2;\n          local_54 = (int)lVar3;\n          local_50 = (int)((ulonglong)lVar3 >> 0x20) + uVar2 * (int)(lVar9 + 1U >> 0x20);\n        }\n        iVar7 = (**(code **)(**(int **)(param_1 + 0x40) + 8))\n                          (*(int **)(param_1 + 0x40),&local_34,8,local_54,local_50);\n        if (iVar7 == 0) {\n          if ((local_34 != DAT_000b4d30) || (bVar4 = false, local_30 != DAT_000b4d34)) {\n            bVar4 = true;\n          }\n          piVar8 = *(int **)(param_1 + 0x40);\n          iVar7 = *piVar8;\n          if (!bVar4) {\n            iVar7 = (**(code **)(iVar7 + 0xc))(piVar8,&DAT_000b1224,1,local_54,local_50);\n            goto LAB_0006a303;\n          }\n        }\n        else {\nLAB_0006a303:\n          if ((iVar7 != 0) && (iVar7 != 0x20a)) goto LAB_0006a356;\n          piVar8 = *(int **)(param_1 + 0x40);\n          iVar7 = *piVar8;\n        }\n        if (*(char *)(param_1 + 8) != '\0') {\n          if ((uVar6 & 0x400) == 0) {\n            if (*(char *)(param_1 + 10) != '\0') {\n              iVar7 = (**(code **)(iVar7 + 0x14))(piVar8,*(char *)(param_1 + 10));\n              if (iVar7 != 0) goto LAB_0006a356;\n              piVar8 = *(int **)(param_1 + 0x40);\n              iVar7 = *piVar8;\n            }\n            iVar7 = (**(code **)(iVar7 + 0xc))\n                              (piVar8,&local_2c,0xc,*(undefined4 *)(param_1 + 0x50),\n                               *(undefined4 *)(param_1 + 0x54));\n            if (iVar7 != 0) goto LAB_0006a356;\n            goto LAB_0006a382;\n          }\n          iVar7 = (**(code **)(iVar7 + 0xc))\n                            (piVar8,&local_2c,0xc,*(undefined4 *)(param_1 + 0x50),\n                             *(undefined4 *)(param_1 + 0x54));\n          goto joined_r0x0006a4d6;\n        }\n        iVar7 = (**(code **)(iVar7 + 0xc))\n                          (piVar8,&local_2c,0xc,*(undefined4 *)(param_1 + 0x50),\n                           *(undefined4 *)(param_1 + 0x54));\n        if (iVar7 != 0) goto LAB_0006a356;\n        if ((uVar6 & 0x400) == 0) goto LAB_0006a382;\n      }\n      else {\n        if ((uVar6 & 0x400) != 0) goto LAB_0006a320;\nLAB_0006a382:\n        cVar5 = *(char *)(param_1 + 10);\n        if (cVar5 == '\x03') {\n          cVar5 = '\x13';\n        }\n        else if (cVar5 == '\0') goto LAB_0006a3aa;\n        iVar7 = (**(code **)(**(int **)(param_1 + 0x40) + 0x14))(*(int **)(param_1 + 0x40),cVar5);\njoined_r0x0006a4d6:\n        if (iVar7 != 0) goto LAB_0006a356;\n      }\nLAB_0006a3aa:\n      *(undefined4 *)(param_1 + 0x50) = *(undefined4 *)(param_1 + 0x48);\n      *(undefined4 *)(param_1 + 0x54) = *(undefined4 *)(param_1 + 0x4c);\n      if (((uVar6 & 0x200) == 0) && ((param_2 & 1) != 0)) {\n        *(undefined4 *)(param_1 + 0x2c) = 0;\n        iVar7 = FUN_0005f0c0();\n        if (iVar7 != 0) goto LAB_0006a356;\n      }\n    }" if (parenthesized_expression "((**(int **)(param_1 + 0x40) == 0) || (*(char *)(param_1 + 5) == '\x04'))" ( (binary_expression "(**(int **)(param_1 + 0x40) == 0) || (*(char *)(param_1 + 5) == '\x04')" (parenthesized_expression "(**(int **)(param_1 + 0x40) == 0)" ( (binary_expression "**(int **)(param_1 + 0x40) == 0" (pointer_expression "**(int **)(param_1 + 0x40)" * (pointer_expression "*(int **)(param_1 + 0x40)" * (cast_expression "(int **)(param_1 + 0x40)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x40)" ( (binary_expression "param_1 + 0x40" identifier + number_literal) ))))) == number_literal) )) || (parenthesized_expression "(*(char *)(param_1 + 5) == '\x04')" ( (binary_expression "*(char *)(param_1 + 5) == '\x04'" (pointer_expression "*(char *)(param_1 + 5)" * (cast_expression "(char *)(param_1 + 5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 5)" ( (binary_expression "param_1 + 5" identifier + number_literal) )))) == (char_literal "'\x04'" ' escape_sequence ')) ))) )) (compound_statement "{\nLAB_0006a320:\n      *(undefined4 *)(param_1 + 0x50) = *(undefined4 *)(param_1 + 0x48);\n      *(undefined4 *)(param_1 + 0x54) = *(undefined4 *)(param_1 + 0x4c);\n    }" { (labeled_statement "LAB_0006a320:\n      *(undefined4 *)(param_1 + 0x50) = *(undefined4 *)(param_1 + 0x48);" statement_identifier : (expression_statement "*(undefined4 *)(param_1 + 0x50) = *(undefined4 *)(param_1 + 0x48);" (assignment_expression "*(undefined4 *)(param_1 + 0x50) = *(undefined4 *)(param_1 + 0x48)" (pointer_expression "*(undefined4 *)(param_1 + 0x50)" * (cast_expression "(undefined4 *)(param_1 + 0x50)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x50)" ( (binary_expression "param_1 + 0x50" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(param_1 + 0x48)" * (cast_expression "(undefined4 *)(param_1 + 0x48)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x48)" ( (binary_expression "param_1 + 0x48" identifier + number_literal) ))))) ;)) (expression_statement "*(undefined4 *)(param_1 + 0x54) = *(undefined4 *)(param_1 + 0x4c);" (assignment_expression "*(undefined4 *)(param_1 + 0x54) = *(undefined4 *)(param_1 + 0x4c)" (pointer_expression "*(undefined4 *)(param_1 + 0x54)" * (cast_expression "(undefined4 *)(param_1 + 0x54)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x54)" ( (binary_expression "param_1 + 0x54" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(param_1 + 0x4c)" * (cast_expression "(undefined4 *)(param_1 + 0x4c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x4c)" ( (binary_expression "param_1 + 0x4c" identifier + number_literal) ))))) ;) }) (else_clause "else {\n      uVar6 = (**(code **)(**(int **)(param_1 + 0x3c) + 0x30))(*(int **)(param_1 + 0x3c));\n      if ((uVar6 & 0x200) == 0) {\n        local_2c = DAT_000b4d30;\n        local_28 = DAT_000b4d34;\n        uVar2 = *(uint *)(param_1 + 0x2c);\n        local_50 = *(int *)(param_1 + 0x4c);\n        local_24 = uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18;\n        local_54 = *(int *)(param_1 + 0x48);\n        if (local_50 != 0 || local_54 != 0) {\n          uVar2 = *(uint *)(param_1 + 0x90);\n          lVar9 = FUN_000a9510(local_54 + -1,local_50 + -1 + (uint)(local_54 != 0),uVar2,0);\n          lVar3 = (lVar9 + 1U & 0xffffffff) * (ulonglong)uVar2;\n          local_54 = (int)lVar3;\n          local_50 = (int)((ulonglong)lVar3 >> 0x20) + uVar2 * (int)(lVar9 + 1U >> 0x20);\n        }\n        iVar7 = (**(code **)(**(int **)(param_1 + 0x40) + 8))\n                          (*(int **)(param_1 + 0x40),&local_34,8,local_54,local_50);\n        if (iVar7 == 0) {\n          if ((local_34 != DAT_000b4d30) || (bVar4 = false, local_30 != DAT_000b4d34)) {\n            bVar4 = true;\n          }\n          piVar8 = *(int **)(param_1 + 0x40);\n          iVar7 = *piVar8;\n          if (!bVar4) {\n            iVar7 = (**(code **)(iVar7 + 0xc))(piVar8,&DAT_000b1224,1,local_54,local_50);\n            goto LAB_0006a303;\n          }\n        }\n        else {\nLAB_0006a303:\n          if ((iVar7 != 0) && (iVar7 != 0x20a)) goto LAB_0006a356;\n          piVar8 = *(int **)(param_1 + 0x40);\n          iVar7 = *piVar8;\n        }\n        if (*(char *)(param_1 + 8) != '\0') {\n          if ((uVar6 & 0x400) == 0) {\n            if (*(char *)(param_1 + 10) != '\0') {\n              iVar7 = (**(code **)(iVar7 + 0x14))(piVar8,*(char *)(param_1 + 10));\n              if (iVar7 != 0) goto LAB_0006a356;\n              piVar8 = *(int **)(param_1 + 0x40);\n              iVar7 = *piVar8;\n            }\n            iVar7 = (**(code **)(iVar7 + 0xc))\n                              (piVar8,&local_2c,0xc,*(undefined4 *)(param_1 + 0x50),\n                               *(undefined4 *)(param_1 + 0x54));\n            if (iVar7 != 0) goto LAB_0006a356;\n            goto LAB_0006a382;\n          }\n          iVar7 = (**(code **)(iVar7 + 0xc))\n                            (piVar8,&local_2c,0xc,*(undefined4 *)(param_1 + 0x50),\n                             *(undefined4 *)(param_1 + 0x54));\n          goto joined_r0x0006a4d6;\n        }\n        iVar7 = (**(code **)(iVar7 + 0xc))\n                          (piVar8,&local_2c,0xc,*(undefined4 *)(param_1 + 0x50),\n                           *(undefined4 *)(param_1 + 0x54));\n        if (iVar7 != 0) goto LAB_0006a356;\n        if ((uVar6 & 0x400) == 0) goto LAB_0006a382;\n      }\n      else {\n        if ((uVar6 & 0x400) != 0) goto LAB_0006a320;\nLAB_0006a382:\n        cVar5 = *(char *)(param_1 + 10);\n        if (cVar5 == '\x03') {\n          cVar5 = '\x13';\n        }\n        else if (cVar5 == '\0') goto LAB_0006a3aa;\n        iVar7 = (**(code **)(**(int **)(param_1 + 0x40) + 0x14))(*(int **)(param_1 + 0x40),cVar5);\njoined_r0x0006a4d6:\n        if (iVar7 != 0) goto LAB_0006a356;\n      }\nLAB_0006a3aa:\n      *(undefined4 *)(param_1 + 0x50) = *(undefined4 *)(param_1 + 0x48);\n      *(undefined4 *)(param_1 + 0x54) = *(undefined4 *)(param_1 + 0x4c);\n      if (((uVar6 & 0x200) == 0) && ((param_2 & 1) != 0)) {\n        *(undefined4 *)(param_1 + 0x2c) = 0;\n        iVar7 = FUN_0005f0c0();\n        if (iVar7 != 0) goto LAB_0006a356;\n      }\n    }" else (compound_statement "{\n      uVar6 = (**(code **)(**(int **)(param_1 + 0x3c) + 0x30))(*(int **)(param_1 + 0x3c));\n      if ((uVar6 & 0x200) == 0) {\n        local_2c = DAT_000b4d30;\n        local_28 = DAT_000b4d34;\n        uVar2 = *(uint *)(param_1 + 0x2c);\n        local_50 = *(int *)(param_1 + 0x4c);\n        local_24 = uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18;\n        local_54 = *(int *)(param_1 + 0x48);\n        if (local_50 != 0 || local_54 != 0) {\n          uVar2 = *(uint *)(param_1 + 0x90);\n          lVar9 = FUN_000a9510(local_54 + -1,local_50 + -1 + (uint)(local_54 != 0),uVar2,0);\n          lVar3 = (lVar9 + 1U & 0xffffffff) * (ulonglong)uVar2;\n          local_54 = (int)lVar3;\n          local_50 = (int)((ulonglong)lVar3 >> 0x20) + uVar2 * (int)(lVar9 + 1U >> 0x20);\n        }\n        iVar7 = (**(code **)(**(int **)(param_1 + 0x40) + 8))\n                          (*(int **)(param_1 + 0x40),&local_34,8,local_54,local_50);\n        if (iVar7 == 0) {\n          if ((local_34 != DAT_000b4d30) || (bVar4 = false, local_30 != DAT_000b4d34)) {\n            bVar4 = true;\n          }\n          piVar8 = *(int **)(param_1 + 0x40);\n          iVar7 = *piVar8;\n          if (!bVar4) {\n            iVar7 = (**(code **)(iVar7 + 0xc))(piVar8,&DAT_000b1224,1,local_54,local_50);\n            goto LAB_0006a303;\n          }\n        }\n        else {\nLAB_0006a303:\n          if ((iVar7 != 0) && (iVar7 != 0x20a)) goto LAB_0006a356;\n          piVar8 = *(int **)(param_1 + 0x40);\n          iVar7 = *piVar8;\n        }\n        if (*(char *)(param_1 + 8) != '\0') {\n          if ((uVar6 & 0x400) == 0) {\n            if (*(char *)(param_1 + 10) != '\0') {\n              iVar7 = (**(code **)(iVar7 + 0x14))(piVar8,*(char *)(param_1 + 10));\n              if (iVar7 != 0) goto LAB_0006a356;\n              piVar8 = *(int **)(param_1 + 0x40);\n              iVar7 = *piVar8;\n            }\n            iVar7 = (**(code **)(iVar7 + 0xc))\n                              (piVar8,&local_2c,0xc,*(undefined4 *)(param_1 + 0x50),\n                               *(undefined4 *)(param_1 + 0x54));\n            if (iVar7 != 0) goto LAB_0006a356;\n            goto LAB_0006a382;\n          }\n          iVar7 = (**(code **)(iVar7 + 0xc))\n                            (piVar8,&local_2c,0xc,*(undefined4 *)(param_1 + 0x50),\n                             *(undefined4 *)(param_1 + 0x54));\n          goto joined_r0x0006a4d6;\n        }\n        iVar7 = (**(code **)(iVar7 + 0xc))\n                          (piVar8,&local_2c,0xc,*(undefined4 *)(param_1 + 0x50),\n                           *(undefined4 *)(param_1 + 0x54));\n        if (iVar7 != 0) goto LAB_0006a356;\n        if ((uVar6 & 0x400) == 0) goto LAB_0006a382;\n      }\n      else {\n        if ((uVar6 & 0x400) != 0) goto LAB_0006a320;\nLAB_0006a382:\n        cVar5 = *(char *)(param_1 + 10);\n        if (cVar5 == '\x03') {\n          cVar5 = '\x13';\n        }\n        else if (cVar5 == '\0') goto LAB_0006a3aa;\n        iVar7 = (**(code **)(**(int **)(param_1 + 0x40) + 0x14))(*(int **)(param_1 + 0x40),cVar5);\njoined_r0x0006a4d6:\n        if (iVar7 != 0) goto LAB_0006a356;\n      }\nLAB_0006a3aa:\n      *(undefined4 *)(param_1 + 0x50) = *(undefined4 *)(param_1 + 0x48);\n      *(undefined4 *)(param_1 + 0x54) = *(undefined4 *)(param_1 + 0x4c);\n      if (((uVar6 & 0x200) == 0) && ((param_2 & 1) != 0)) {\n        *(undefined4 *)(param_1 + 0x2c) = 0;\n        iVar7 = FUN_0005f0c0();\n        if (iVar7 != 0) goto LAB_0006a356;\n      }\n    }" { (expression_statement "uVar6 = (**(code **)(**(int **)(param_1 + 0x3c) + 0x30))(*(int **)(param_1 + 0x3c));" (assignment_expression "uVar6 = (**(code **)(**(int **)(param_1 + 0x3c) + 0x30))(*(int **)(param_1 + 0x3c))" identifier = (call_expression "(**(code **)(**(int **)(param_1 + 0x3c) + 0x30))(*(int **)(param_1 + 0x3c))" (parenthesized_expression "(**(code **)(**(int **)(param_1 + 0x3c) + 0x30))" ( (pointer_expression "**(code **)(**(int **)(param_1 + 0x3c) + 0x30)" * (pointer_expression "*(code **)(**(int **)(param_1 + 0x3c) + 0x30)" * (cast_expression "(code **)(**(int **)(param_1 + 0x3c) + 0x30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)(param_1 + 0x3c) + 0x30)" ( (binary_expression "**(int **)(param_1 + 0x3c) + 0x30" (pointer_expression "**(int **)(param_1 + 0x3c)" * (pointer_expression "*(int **)(param_1 + 0x3c)" * (cast_expression "(int **)(param_1 + 0x3c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x3c)" ( (binary_expression "param_1 + 0x3c" identifier + number_literal) ))))) + number_literal) ))))) )) (argument_list "(*(int **)(param_1 + 0x3c))" ( (pointer_expression "*(int **)(param_1 + 0x3c)" * (cast_expression "(int **)(param_1 + 0x3c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x3c)" ( (binary_expression "param_1 + 0x3c" identifier + number_literal) )))) )))) ;) (if_statement "if ((uVar6 & 0x200) == 0) {\n        local_2c = DAT_000b4d30;\n        local_28 = DAT_000b4d34;\n        uVar2 = *(uint *)(param_1 + 0x2c);\n        local_50 = *(int *)(param_1 + 0x4c);\n        local_24 = uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18;\n        local_54 = *(int *)(param_1 + 0x48);\n        if (local_50 != 0 || local_54 != 0) {\n          uVar2 = *(uint *)(param_1 + 0x90);\n          lVar9 = FUN_000a9510(local_54 + -1,local_50 + -1 + (uint)(local_54 != 0),uVar2,0);\n          lVar3 = (lVar9 + 1U & 0xffffffff) * (ulonglong)uVar2;\n          local_54 = (int)lVar3;\n          local_50 = (int)((ulonglong)lVar3 >> 0x20) + uVar2 * (int)(lVar9 + 1U >> 0x20);\n        }\n        iVar7 = (**(code **)(**(int **)(param_1 + 0x40) + 8))\n                          (*(int **)(param_1 + 0x40),&local_34,8,local_54,local_50);\n        if (iVar7 == 0) {\n          if ((local_34 != DAT_000b4d30) || (bVar4 = false, local_30 != DAT_000b4d34)) {\n            bVar4 = true;\n          }\n          piVar8 = *(int **)(param_1 + 0x40);\n          iVar7 = *piVar8;\n          if (!bVar4) {\n            iVar7 = (**(code **)(iVar7 + 0xc))(piVar8,&DAT_000b1224,1,local_54,local_50);\n            goto LAB_0006a303;\n          }\n        }\n        else {\nLAB_0006a303:\n          if ((iVar7 != 0) && (iVar7 != 0x20a)) goto LAB_0006a356;\n          piVar8 = *(int **)(param_1 + 0x40);\n          iVar7 = *piVar8;\n        }\n        if (*(char *)(param_1 + 8) != '\0') {\n          if ((uVar6 & 0x400) == 0) {\n            if (*(char *)(param_1 + 10) != '\0') {\n              iVar7 = (**(code **)(iVar7 + 0x14))(piVar8,*(char *)(param_1 + 10));\n              if (iVar7 != 0) goto LAB_0006a356;\n              piVar8 = *(int **)(param_1 + 0x40);\n              iVar7 = *piVar8;\n            }\n            iVar7 = (**(code **)(iVar7 + 0xc))\n                              (piVar8,&local_2c,0xc,*(undefined4 *)(param_1 + 0x50),\n                               *(undefined4 *)(param_1 + 0x54));\n            if (iVar7 != 0) goto LAB_0006a356;\n            goto LAB_0006a382;\n          }\n          iVar7 = (**(code **)(iVar7 + 0xc))\n                            (piVar8,&local_2c,0xc,*(undefined4 *)(param_1 + 0x50),\n                             *(undefined4 *)(param_1 + 0x54));\n          goto joined_r0x0006a4d6;\n        }\n        iVar7 = (**(code **)(iVar7 + 0xc))\n                          (piVar8,&local_2c,0xc,*(undefined4 *)(param_1 + 0x50),\n                           *(undefined4 *)(param_1 + 0x54));\n        if (iVar7 != 0) goto LAB_0006a356;\n        if ((uVar6 & 0x400) == 0) goto LAB_0006a382;\n      }\n      else {\n        if ((uVar6 & 0x400) != 0) goto LAB_0006a320;\nLAB_0006a382:\n        cVar5 = *(char *)(param_1 + 10);\n        if (cVar5 == '\x03') {\n          cVar5 = '\x13';\n        }\n        else if (cVar5 == '\0') goto LAB_0006a3aa;\n        iVar7 = (**(code **)(**(int **)(param_1 + 0x40) + 0x14))(*(int **)(param_1 + 0x40),cVar5);\njoined_r0x0006a4d6:\n        if (iVar7 != 0) goto LAB_0006a356;\n      }" if (parenthesized_expression "((uVar6 & 0x200) == 0)" ( (binary_expression "(uVar6 & 0x200) == 0" (parenthesized_expression "(uVar6 & 0x200)" ( (binary_expression "uVar6 & 0x200" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        local_2c = DAT_000b4d30;\n        local_28 = DAT_000b4d34;\n        uVar2 = *(uint *)(param_1 + 0x2c);\n        local_50 = *(int *)(param_1 + 0x4c);\n        local_24 = uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18;\n        local_54 = *(int *)(param_1 + 0x48);\n        if (local_50 != 0 || local_54 != 0) {\n          uVar2 = *(uint *)(param_1 + 0x90);\n          lVar9 = FUN_000a9510(local_54 + -1,local_50 + -1 + (uint)(local_54 != 0),uVar2,0);\n          lVar3 = (lVar9 + 1U & 0xffffffff) * (ulonglong)uVar2;\n          local_54 = (int)lVar3;\n          local_50 = (int)((ulonglong)lVar3 >> 0x20) + uVar2 * (int)(lVar9 + 1U >> 0x20);\n        }\n        iVar7 = (**(code **)(**(int **)(param_1 + 0x40) + 8))\n                          (*(int **)(param_1 + 0x40),&local_34,8,local_54,local_50);\n        if (iVar7 == 0) {\n          if ((local_34 != DAT_000b4d30) || (bVar4 = false, local_30 != DAT_000b4d34)) {\n            bVar4 = true;\n          }\n          piVar8 = *(int **)(param_1 + 0x40);\n          iVar7 = *piVar8;\n          if (!bVar4) {\n            iVar7 = (**(code **)(iVar7 + 0xc))(piVar8,&DAT_000b1224,1,local_54,local_50);\n            goto LAB_0006a303;\n          }\n        }\n        else {\nLAB_0006a303:\n          if ((iVar7 != 0) && (iVar7 != 0x20a)) goto LAB_0006a356;\n          piVar8 = *(int **)(param_1 + 0x40);\n          iVar7 = *piVar8;\n        }\n        if (*(char *)(param_1 + 8) != '\0') {\n          if ((uVar6 & 0x400) == 0) {\n            if (*(char *)(param_1 + 10) != '\0') {\n              iVar7 = (**(code **)(iVar7 + 0x14))(piVar8,*(char *)(param_1 + 10));\n              if (iVar7 != 0) goto LAB_0006a356;\n              piVar8 = *(int **)(param_1 + 0x40);\n              iVar7 = *piVar8;\n            }\n            iVar7 = (**(code **)(iVar7 + 0xc))\n                              (piVar8,&local_2c,0xc,*(undefined4 *)(param_1 + 0x50),\n                               *(undefined4 *)(param_1 + 0x54));\n            if (iVar7 != 0) goto LAB_0006a356;\n            goto LAB_0006a382;\n          }\n          iVar7 = (**(code **)(iVar7 + 0xc))\n                            (piVar8,&local_2c,0xc,*(undefined4 *)(param_1 + 0x50),\n                             *(undefined4 *)(param_1 + 0x54));\n          goto joined_r0x0006a4d6;\n        }\n        iVar7 = (**(code **)(iVar7 + 0xc))\n                          (piVar8,&local_2c,0xc,*(undefined4 *)(param_1 + 0x50),\n                           *(undefined4 *)(param_1 + 0x54));\n        if (iVar7 != 0) goto LAB_0006a356;\n        if ((uVar6 & 0x400) == 0) goto LAB_0006a382;\n      }" { (expression_statement "local_2c = DAT_000b4d30;" (assignment_expression "local_2c = DAT_000b4d30" identifier = identifier) ;) (expression_statement "local_28 = DAT_000b4d34;" (assignment_expression "local_28 = DAT_000b4d34" identifier = identifier) ;) (expression_statement "uVar2 = *(uint *)(param_1 + 0x2c);" (assignment_expression "uVar2 = *(uint *)(param_1 + 0x2c)" identifier = (pointer_expression "*(uint *)(param_1 + 0x2c)" * (cast_expression "(uint *)(param_1 + 0x2c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2c)" ( (binary_expression "param_1 + 0x2c" identifier + number_literal) ))))) ;) (expression_statement "local_50 = *(int *)(param_1 + 0x4c);" (assignment_expression "local_50 = *(int *)(param_1 + 0x4c)" identifier = (pointer_expression "*(int *)(param_1 + 0x4c)" * (cast_expression "(int *)(param_1 + 0x4c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x4c)" ( (binary_expression "param_1 + 0x4c" identifier + number_literal) ))))) ;) (expression_statement "local_24 = uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18;" (assignment_expression "local_24 = uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18" identifier = (binary_expression "uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18" (binary_expression "uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8" (binary_expression "uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8" (binary_expression "uVar2 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar2 & 0xff0000) >> 8" (parenthesized_expression "(uVar2 & 0xff0000)" ( (binary_expression "uVar2 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar2 & 0xff00) << 8" (parenthesized_expression "(uVar2 & 0xff00)" ( (binary_expression "uVar2 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar2 << 0x18" identifier << number_literal))) ;) (expression_statement "local_54 = *(int *)(param_1 + 0x48);" (assignment_expression "local_54 = *(int *)(param_1 + 0x48)" identifier = (pointer_expression "*(int *)(param_1 + 0x48)" * (cast_expression "(int *)(param_1 + 0x48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x48)" ( (binary_expression "param_1 + 0x48" identifier + number_literal) ))))) ;) (if_statement "if (local_50 != 0 || local_54 != 0) {\n          uVar2 = *(uint *)(param_1 + 0x90);\n          lVar9 = FUN_000a9510(local_54 + -1,local_50 + -1 + (uint)(local_54 != 0),uVar2,0);\n          lVar3 = (lVar9 + 1U & 0xffffffff) * (ulonglong)uVar2;\n          local_54 = (int)lVar3;\n          local_50 = (int)((ulonglong)lVar3 >> 0x20) + uVar2 * (int)(lVar9 + 1U >> 0x20);\n        }" if (parenthesized_expression "(local_50 != 0 || local_54 != 0)" ( (binary_expression "local_50 != 0 || local_54 != 0" (binary_expression "local_50 != 0" identifier != number_literal) || (binary_expression "local_54 != 0" identifier != number_literal)) )) (compound_statement "{\n          uVar2 = *(uint *)(param_1 + 0x90);\n          lVar9 = FUN_000a9510(local_54 + -1,local_50 + -1 + (uint)(local_54 != 0),uVar2,0);\n          lVar3 = (lVar9 + 1U & 0xffffffff) * (ulonglong)uVar2;\n          local_54 = (int)lVar3;\n          local_50 = (int)((ulonglong)lVar3 >> 0x20) + uVar2 * (int)(lVar9 + 1U >> 0x20);\n        }" { (expression_statement "uVar2 = *(uint *)(param_1 + 0x90);" (assignment_expression "uVar2 = *(uint *)(param_1 + 0x90)" identifier = (pointer_expression "*(uint *)(param_1 + 0x90)" * (cast_expression "(uint *)(param_1 + 0x90)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x90)" ( (binary_expression "param_1 + 0x90" identifier + number_literal) ))))) ;) (expression_statement "lVar9 = FUN_000a9510(local_54 + -1,local_50 + -1 + (uint)(local_54 != 0),uVar2,0);" (assignment_expression "lVar9 = FUN_000a9510(local_54 + -1,local_50 + -1 + (uint)(local_54 != 0),uVar2,0)" identifier = (call_expression "FUN_000a9510(local_54 + -1,local_50 + -1 + (uint)(local_54 != 0),uVar2,0)" identifier (argument_list "(local_54 + -1,local_50 + -1 + (uint)(local_54 != 0),uVar2,0)" ( (binary_expression "local_54 + -1" identifier + number_literal) , (binary_expression "local_50 + -1 + (uint)(local_54 != 0)" (binary_expression "local_50 + -1" identifier + number_literal) + (call_expression "(uint)(local_54 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_54 != 0)" ( (binary_expression "local_54 != 0" identifier != number_literal) )))) , identifier , number_literal )))) ;) (expression_statement "lVar3 = (lVar9 + 1U & 0xffffffff) * (ulonglong)uVar2;" (assignment_expression "lVar3 = (lVar9 + 1U & 0xffffffff) * (ulonglong)uVar2" identifier = (binary_expression "(lVar9 + 1U & 0xffffffff) * (ulonglong)uVar2" (parenthesized_expression "(lVar9 + 1U & 0xffffffff)" ( (binary_expression "lVar9 + 1U & 0xffffffff" (binary_expression "lVar9 + 1U" identifier + number_literal) & number_literal) )) * (cast_expression "(ulonglong)uVar2" ( (type_descriptor "ulonglong" type_identifier) ) identifier))) ;) (expression_statement "local_54 = (int)lVar3;" (assignment_expression "local_54 = (int)lVar3" identifier = (cast_expression "(int)lVar3" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "local_50 = (int)((ulonglong)lVar3 >> 0x20) + uVar2 * (int)(lVar9 + 1U >> 0x20);" (assignment_expression "local_50 = (int)((ulonglong)lVar3 >> 0x20) + uVar2 * (int)(lVar9 + 1U >> 0x20)" identifier = (binary_expression "(int)((ulonglong)lVar3 >> 0x20) + uVar2 * (int)(lVar9 + 1U >> 0x20)" (cast_expression "(int)((ulonglong)lVar3 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)lVar3 >> 0x20)" ( (binary_expression "(ulonglong)lVar3 >> 0x20" (cast_expression "(ulonglong)lVar3" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) + (binary_expression "uVar2 * (int)(lVar9 + 1U >> 0x20)" identifier * (cast_expression "(int)(lVar9 + 1U >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(lVar9 + 1U >> 0x20)" ( (binary_expression "lVar9 + 1U >> 0x20" (binary_expression "lVar9 + 1U" identifier + number_literal) >> number_literal) )))))) ;) })) (expression_statement "iVar7 = (**(code **)(**(int **)(param_1 + 0x40) + 8))\n                          (*(int **)(param_1 + 0x40),&local_34,8,local_54,local_50);" (assignment_expression "iVar7 = (**(code **)(**(int **)(param_1 + 0x40) + 8))\n                          (*(int **)(param_1 + 0x40),&local_34,8,local_54,local_50)" identifier = (call_expression "(**(code **)(**(int **)(param_1 + 0x40) + 8))\n                          (*(int **)(param_1 + 0x40),&local_34,8,local_54,local_50)" (parenthesized_expression "(**(code **)(**(int **)(param_1 + 0x40) + 8))" ( (pointer_expression "**(code **)(**(int **)(param_1 + 0x40) + 8)" * (pointer_expression "*(code **)(**(int **)(param_1 + 0x40) + 8)" * (cast_expression "(code **)(**(int **)(param_1 + 0x40) + 8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)(param_1 + 0x40) + 8)" ( (binary_expression "**(int **)(param_1 + 0x40) + 8" (pointer_expression "**(int **)(param_1 + 0x40)" * (pointer_expression "*(int **)(param_1 + 0x40)" * (cast_expression "(int **)(param_1 + 0x40)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x40)" ( (binary_expression "param_1 + 0x40" identifier + number_literal) ))))) + number_literal) ))))) )) (argument_list "(*(int **)(param_1 + 0x40),&local_34,8,local_54,local_50)" ( (pointer_expression "*(int **)(param_1 + 0x40)" * (cast_expression "(int **)(param_1 + 0x40)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x40)" ( (binary_expression "param_1 + 0x40" identifier + number_literal) )))) , (pointer_expression "&local_34" & identifier) , number_literal , identifier , identifier )))) ;) (if_statement "if (iVar7 == 0) {\n          if ((local_34 != DAT_000b4d30) || (bVar4 = false, local_30 != DAT_000b4d34)) {\n            bVar4 = true;\n          }\n          piVar8 = *(int **)(param_1 + 0x40);\n          iVar7 = *piVar8;\n          if (!bVar4) {\n            iVar7 = (**(code **)(iVar7 + 0xc))(piVar8,&DAT_000b1224,1,local_54,local_50);\n            goto LAB_0006a303;\n          }\n        }\n        else {\nLAB_0006a303:\n          if ((iVar7 != 0) && (iVar7 != 0x20a)) goto LAB_0006a356;\n          piVar8 = *(int **)(param_1 + 0x40);\n          iVar7 = *piVar8;\n        }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n          if ((local_34 != DAT_000b4d30) || (bVar4 = false, local_30 != DAT_000b4d34)) {\n            bVar4 = true;\n          }\n          piVar8 = *(int **)(param_1 + 0x40);\n          iVar7 = *piVar8;\n          if (!bVar4) {\n            iVar7 = (**(code **)(iVar7 + 0xc))(piVar8,&DAT_000b1224,1,local_54,local_50);\n            goto LAB_0006a303;\n          }\n        }" { (if_statement "if ((local_34 != DAT_000b4d30) || (bVar4 = false, local_30 != DAT_000b4d34)) {\n            bVar4 = true;\n          }" if (parenthesized_expression "((local_34 != DAT_000b4d30) || (bVar4 = false, local_30 != DAT_000b4d34))" ( (binary_expression "(local_34 != DAT_000b4d30) || (bVar4 = false, local_30 != DAT_000b4d34)" (parenthesized_expression "(local_34 != DAT_000b4d30)" ( (binary_expression "local_34 != DAT_000b4d30" identifier != identifier) )) || (parenthesized_expression "(bVar4 = false, local_30 != DAT_000b4d34)" ( (comma_expression "bVar4 = false, local_30 != DAT_000b4d34" (assignment_expression "bVar4 = false" identifier = false) , (binary_expression "local_30 != DAT_000b4d34" identifier != identifier)) ))) )) (compound_statement "{\n            bVar4 = true;\n          }" { (expression_statement "bVar4 = true;" (assignment_expression "bVar4 = true" identifier = true) ;) })) (expression_statement "piVar8 = *(int **)(param_1 + 0x40);" (assignment_expression "piVar8 = *(int **)(param_1 + 0x40)" identifier = (pointer_expression "*(int **)(param_1 + 0x40)" * (cast_expression "(int **)(param_1 + 0x40)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x40)" ( (binary_expression "param_1 + 0x40" identifier + number_literal) ))))) ;) (expression_statement "iVar7 = *piVar8;" (assignment_expression "iVar7 = *piVar8" identifier = (pointer_expression "*piVar8" * identifier)) ;) (if_statement "if (!bVar4) {\n            iVar7 = (**(code **)(iVar7 + 0xc))(piVar8,&DAT_000b1224,1,local_54,local_50);\n            goto LAB_0006a303;\n          }" if (parenthesized_expression "(!bVar4)" ( (unary_expression "!bVar4" ! identifier) )) (compound_statement "{\n            iVar7 = (**(code **)(iVar7 + 0xc))(piVar8,&DAT_000b1224,1,local_54,local_50);\n            goto LAB_0006a303;\n          }" { (expression_statement "iVar7 = (**(code **)(iVar7 + 0xc))(piVar8,&DAT_000b1224,1,local_54,local_50);" (assignment_expression "iVar7 = (**(code **)(iVar7 + 0xc))(piVar8,&DAT_000b1224,1,local_54,local_50)" identifier = (call_expression "(**(code **)(iVar7 + 0xc))(piVar8,&DAT_000b1224,1,local_54,local_50)" (parenthesized_expression "(**(code **)(iVar7 + 0xc))" ( (pointer_expression "**(code **)(iVar7 + 0xc)" * (pointer_expression "*(code **)(iVar7 + 0xc)" * (cast_expression "(code **)(iVar7 + 0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar7 + 0xc)" ( (binary_expression "iVar7 + 0xc" identifier + number_literal) ))))) )) (argument_list "(piVar8,&DAT_000b1224,1,local_54,local_50)" ( identifier , (pointer_expression "&DAT_000b1224" & identifier) , number_literal , identifier , identifier )))) ;) (goto_statement "goto LAB_0006a303;" goto statement_identifier ;) })) }) (else_clause "else {\nLAB_0006a303:\n          if ((iVar7 != 0) && (iVar7 != 0x20a)) goto LAB_0006a356;\n          piVar8 = *(int **)(param_1 + 0x40);\n          iVar7 = *piVar8;\n        }" else (compound_statement "{\nLAB_0006a303:\n          if ((iVar7 != 0) && (iVar7 != 0x20a)) goto LAB_0006a356;\n          piVar8 = *(int **)(param_1 + 0x40);\n          iVar7 = *piVar8;\n        }" { (labeled_statement "LAB_0006a303:\n          if ((iVar7 != 0) && (iVar7 != 0x20a)) goto LAB_0006a356;" statement_identifier : (if_statement "if ((iVar7 != 0) && (iVar7 != 0x20a)) goto LAB_0006a356;" if (parenthesized_expression "((iVar7 != 0) && (iVar7 != 0x20a))" ( (binary_expression "(iVar7 != 0) && (iVar7 != 0x20a)" (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) && (parenthesized_expression "(iVar7 != 0x20a)" ( (binary_expression "iVar7 != 0x20a" identifier != number_literal) ))) )) (goto_statement "goto LAB_0006a356;" goto statement_identifier ;))) (expression_statement "piVar8 = *(int **)(param_1 + 0x40);" (assignment_expression "piVar8 = *(int **)(param_1 + 0x40)" identifier = (pointer_expression "*(int **)(param_1 + 0x40)" * (cast_expression "(int **)(param_1 + 0x40)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x40)" ( (binary_expression "param_1 + 0x40" identifier + number_literal) ))))) ;) (expression_statement "iVar7 = *piVar8;" (assignment_expression "iVar7 = *piVar8" identifier = (pointer_expression "*piVar8" * identifier)) ;) }))) (if_statement "if (*(char *)(param_1 + 8) != '\0') {\n          if ((uVar6 & 0x400) == 0) {\n            if (*(char *)(param_1 + 10) != '\0') {\n              iVar7 = (**(code **)(iVar7 + 0x14))(piVar8,*(char *)(param_1 + 10));\n              if (iVar7 != 0) goto LAB_0006a356;\n              piVar8 = *(int **)(param_1 + 0x40);\n              iVar7 = *piVar8;\n            }\n            iVar7 = (**(code **)(iVar7 + 0xc))\n                              (piVar8,&local_2c,0xc,*(undefined4 *)(param_1 + 0x50),\n                               *(undefined4 *)(param_1 + 0x54));\n            if (iVar7 != 0) goto LAB_0006a356;\n            goto LAB_0006a382;\n          }\n          iVar7 = (**(code **)(iVar7 + 0xc))\n                            (piVar8,&local_2c,0xc,*(undefined4 *)(param_1 + 0x50),\n                             *(undefined4 *)(param_1 + 0x54));\n          goto joined_r0x0006a4d6;\n        }" if (parenthesized_expression "(*(char *)(param_1 + 8) != '\0')" ( (binary_expression "*(char *)(param_1 + 8) != '\0'" (pointer_expression "*(char *)(param_1 + 8)" * (cast_expression "(char *)(param_1 + 8)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          if ((uVar6 & 0x400) == 0) {\n            if (*(char *)(param_1 + 10) != '\0') {\n              iVar7 = (**(code **)(iVar7 + 0x14))(piVar8,*(char *)(param_1 + 10));\n              if (iVar7 != 0) goto LAB_0006a356;\n              piVar8 = *(int **)(param_1 + 0x40);\n              iVar7 = *piVar8;\n            }\n            iVar7 = (**(code **)(iVar7 + 0xc))\n                              (piVar8,&local_2c,0xc,*(undefined4 *)(param_1 + 0x50),\n                               *(undefined4 *)(param_1 + 0x54));\n            if (iVar7 != 0) goto LAB_0006a356;\n            goto LAB_0006a382;\n          }\n          iVar7 = (**(code **)(iVar7 + 0xc))\n                            (piVar8,&local_2c,0xc,*(undefined4 *)(param_1 + 0x50),\n                             *(undefined4 *)(param_1 + 0x54));\n          goto joined_r0x0006a4d6;\n        }" { (if_statement "if ((uVar6 & 0x400) == 0) {\n            if (*(char *)(param_1 + 10) != '\0') {\n              iVar7 = (**(code **)(iVar7 + 0x14))(piVar8,*(char *)(param_1 + 10));\n              if (iVar7 != 0) goto LAB_0006a356;\n              piVar8 = *(int **)(param_1 + 0x40);\n              iVar7 = *piVar8;\n            }\n            iVar7 = (**(code **)(iVar7 + 0xc))\n                              (piVar8,&local_2c,0xc,*(undefined4 *)(param_1 + 0x50),\n                               *(undefined4 *)(param_1 + 0x54));\n            if (iVar7 != 0) goto LAB_0006a356;\n            goto LAB_0006a382;\n          }" if (parenthesized_expression "((uVar6 & 0x400) == 0)" ( (binary_expression "(uVar6 & 0x400) == 0" (parenthesized_expression "(uVar6 & 0x400)" ( (binary_expression "uVar6 & 0x400" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n            if (*(char *)(param_1 + 10) != '\0') {\n              iVar7 = (**(code **)(iVar7 + 0x14))(piVar8,*(char *)(param_1 + 10));\n              if (iVar7 != 0) goto LAB_0006a356;\n              piVar8 = *(int **)(param_1 + 0x40);\n              iVar7 = *piVar8;\n            }\n            iVar7 = (**(code **)(iVar7 + 0xc))\n                              (piVar8,&local_2c,0xc,*(undefined4 *)(param_1 + 0x50),\n                               *(undefined4 *)(param_1 + 0x54));\n            if (iVar7 != 0) goto LAB_0006a356;\n            goto LAB_0006a382;\n          }" { (if_statement "if (*(char *)(param_1 + 10) != '\0') {\n              iVar7 = (**(code **)(iVar7 + 0x14))(piVar8,*(char *)(param_1 + 10));\n              if (iVar7 != 0) goto LAB_0006a356;\n              piVar8 = *(int **)(param_1 + 0x40);\n              iVar7 = *piVar8;\n            }" if (parenthesized_expression "(*(char *)(param_1 + 10) != '\0')" ( (binary_expression "*(char *)(param_1 + 10) != '\0'" (pointer_expression "*(char *)(param_1 + 10)" * (cast_expression "(char *)(param_1 + 10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 10)" ( (binary_expression "param_1 + 10" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n              iVar7 = (**(code **)(iVar7 + 0x14))(piVar8,*(char *)(param_1 + 10));\n              if (iVar7 != 0) goto LAB_0006a356;\n              piVar8 = *(int **)(param_1 + 0x40);\n              iVar7 = *piVar8;\n            }" { (expression_statement "iVar7 = (**(code **)(iVar7 + 0x14))(piVar8,*(char *)(param_1 + 10));" (assignment_expression "iVar7 = (**(code **)(iVar7 + 0x14))(piVar8,*(char *)(param_1 + 10))" identifier = (call_expression "(**(code **)(iVar7 + 0x14))(piVar8,*(char *)(param_1 + 10))" (parenthesized_expression "(**(code **)(iVar7 + 0x14))" ( (pointer_expression "**(code **)(iVar7 + 0x14)" * (pointer_expression "*(code **)(iVar7 + 0x14)" * (cast_expression "(code **)(iVar7 + 0x14)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar7 + 0x14)" ( (binary_expression "iVar7 + 0x14" identifier + number_literal) ))))) )) (argument_list "(piVar8,*(char *)(param_1 + 10))" ( identifier , (pointer_expression "*(char *)(param_1 + 10)" * (cast_expression "(char *)(param_1 + 10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 10)" ( (binary_expression "param_1 + 10" identifier + number_literal) )))) )))) ;) (if_statement "if (iVar7 != 0) goto LAB_0006a356;" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0006a356;" goto statement_identifier ;)) (expression_statement "piVar8 = *(int **)(param_1 + 0x40);" (assignment_expression "piVar8 = *(int **)(param_1 + 0x40)" identifier = (pointer_expression "*(int **)(param_1 + 0x40)" * (cast_expression "(int **)(param_1 + 0x40)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x40)" ( (binary_expression "param_1 + 0x40" identifier + number_literal) ))))) ;) (expression_statement "iVar7 = *piVar8;" (assignment_expression "iVar7 = *piVar8" identifier = (pointer_expression "*piVar8" * identifier)) ;) })) (expression_statement "iVar7 = (**(code **)(iVar7 + 0xc))\n                              (piVar8,&local_2c,0xc,*(undefined4 *)(param_1 + 0x50),\n                               *(undefined4 *)(param_1 + 0x54));" (assignment_expression "iVar7 = (**(code **)(iVar7 + 0xc))\n                              (piVar8,&local_2c,0xc,*(undefined4 *)(param_1 + 0x50),\n                               *(undefined4 *)(param_1 + 0x54))" identifier = (call_expression "(**(code **)(iVar7 + 0xc))\n                              (piVar8,&local_2c,0xc,*(undefined4 *)(param_1 + 0x50),\n                               *(undefined4 *)(param_1 + 0x54))" (parenthesized_expression "(**(code **)(iVar7 + 0xc))" ( (pointer_expression "**(code **)(iVar7 + 0xc)" * (pointer_expression "*(code **)(iVar7 + 0xc)" * (cast_expression "(code **)(iVar7 + 0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar7 + 0xc)" ( (binary_expression "iVar7 + 0xc" identifier + number_literal) ))))) )) (argument_list "(piVar8,&local_2c,0xc,*(undefined4 *)(param_1 + 0x50),\n                               *(undefined4 *)(param_1 + 0x54))" ( identifier , (pointer_expression "&local_2c" & identifier) , number_literal , (pointer_expression "*(undefined4 *)(param_1 + 0x50)" * (cast_expression "(undefined4 *)(param_1 + 0x50)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x50)" ( (binary_expression "param_1 + 0x50" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)(param_1 + 0x54)" * (cast_expression "(undefined4 *)(param_1 + 0x54)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x54)" ( (binary_expression "param_1 + 0x54" identifier + number_literal) )))) )))) ;) (if_statement "if (iVar7 != 0) goto LAB_0006a356;" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0006a356;" goto statement_identifier ;)) (goto_statement "goto LAB_0006a382;" goto statement_identifier ;) })) (expression_statement "iVar7 = (**(code **)(iVar7 + 0xc))\n                            (piVar8,&local_2c,0xc,*(undefined4 *)(param_1 + 0x50),\n                             *(undefined4 *)(param_1 + 0x54));" (assignment_expression "iVar7 = (**(code **)(iVar7 + 0xc))\n                            (piVar8,&local_2c,0xc,*(undefined4 *)(param_1 + 0x50),\n                             *(undefined4 *)(param_1 + 0x54))" identifier = (call_expression "(**(code **)(iVar7 + 0xc))\n                            (piVar8,&local_2c,0xc,*(undefined4 *)(param_1 + 0x50),\n                             *(undefined4 *)(param_1 + 0x54))" (parenthesized_expression "(**(code **)(iVar7 + 0xc))" ( (pointer_expression "**(code **)(iVar7 + 0xc)" * (pointer_expression "*(code **)(iVar7 + 0xc)" * (cast_expression "(code **)(iVar7 + 0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar7 + 0xc)" ( (binary_expression "iVar7 + 0xc" identifier + number_literal) ))))) )) (argument_list "(piVar8,&local_2c,0xc,*(undefined4 *)(param_1 + 0x50),\n                             *(undefined4 *)(param_1 + 0x54))" ( identifier , (pointer_expression "&local_2c" & identifier) , number_literal , (pointer_expression "*(undefined4 *)(param_1 + 0x50)" * (cast_expression "(undefined4 *)(param_1 + 0x50)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x50)" ( (binary_expression "param_1 + 0x50" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)(param_1 + 0x54)" * (cast_expression "(undefined4 *)(param_1 + 0x54)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x54)" ( (binary_expression "param_1 + 0x54" identifier + number_literal) )))) )))) ;) (goto_statement "goto joined_r0x0006a4d6;" goto statement_identifier ;) })) (expression_statement "iVar7 = (**(code **)(iVar7 + 0xc))\n                          (piVar8,&local_2c,0xc,*(undefined4 *)(param_1 + 0x50),\n                           *(undefined4 *)(param_1 + 0x54));" (assignment_expression "iVar7 = (**(code **)(iVar7 + 0xc))\n                          (piVar8,&local_2c,0xc,*(undefined4 *)(param_1 + 0x50),\n                           *(undefined4 *)(param_1 + 0x54))" identifier = (call_expression "(**(code **)(iVar7 + 0xc))\n                          (piVar8,&local_2c,0xc,*(undefined4 *)(param_1 + 0x50),\n                           *(undefined4 *)(param_1 + 0x54))" (parenthesized_expression "(**(code **)(iVar7 + 0xc))" ( (pointer_expression "**(code **)(iVar7 + 0xc)" * (pointer_expression "*(code **)(iVar7 + 0xc)" * (cast_expression "(code **)(iVar7 + 0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar7 + 0xc)" ( (binary_expression "iVar7 + 0xc" identifier + number_literal) ))))) )) (argument_list "(piVar8,&local_2c,0xc,*(undefined4 *)(param_1 + 0x50),\n                           *(undefined4 *)(param_1 + 0x54))" ( identifier , (pointer_expression "&local_2c" & identifier) , number_literal , (pointer_expression "*(undefined4 *)(param_1 + 0x50)" * (cast_expression "(undefined4 *)(param_1 + 0x50)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x50)" ( (binary_expression "param_1 + 0x50" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)(param_1 + 0x54)" * (cast_expression "(undefined4 *)(param_1 + 0x54)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x54)" ( (binary_expression "param_1 + 0x54" identifier + number_literal) )))) )))) ;) (if_statement "if (iVar7 != 0) goto LAB_0006a356;" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0006a356;" goto statement_identifier ;)) (if_statement "if ((uVar6 & 0x400) == 0) goto LAB_0006a382;" if (parenthesized_expression "((uVar6 & 0x400) == 0)" ( (binary_expression "(uVar6 & 0x400) == 0" (parenthesized_expression "(uVar6 & 0x400)" ( (binary_expression "uVar6 & 0x400" identifier & number_literal) )) == number_literal) )) (goto_statement "goto LAB_0006a382;" goto statement_identifier ;)) }) (else_clause "else {\n        if ((uVar6 & 0x400) != 0) goto LAB_0006a320;\nLAB_0006a382:\n        cVar5 = *(char *)(param_1 + 10);\n        if (cVar5 == '\x03') {\n          cVar5 = '\x13';\n        }\n        else if (cVar5 == '\0') goto LAB_0006a3aa;\n        iVar7 = (**(code **)(**(int **)(param_1 + 0x40) + 0x14))(*(int **)(param_1 + 0x40),cVar5);\njoined_r0x0006a4d6:\n        if (iVar7 != 0) goto LAB_0006a356;\n      }" else (compound_statement "{\n        if ((uVar6 & 0x400) != 0) goto LAB_0006a320;\nLAB_0006a382:\n        cVar5 = *(char *)(param_1 + 10);\n        if (cVar5 == '\x03') {\n          cVar5 = '\x13';\n        }\n        else if (cVar5 == '\0') goto LAB_0006a3aa;\n        iVar7 = (**(code **)(**(int **)(param_1 + 0x40) + 0x14))(*(int **)(param_1 + 0x40),cVar5);\njoined_r0x0006a4d6:\n        if (iVar7 != 0) goto LAB_0006a356;\n      }" { (if_statement "if ((uVar6 & 0x400) != 0) goto LAB_0006a320;" if (parenthesized_expression "((uVar6 & 0x400) != 0)" ( (binary_expression "(uVar6 & 0x400) != 0" (parenthesized_expression "(uVar6 & 0x400)" ( (binary_expression "uVar6 & 0x400" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_0006a320;" goto statement_identifier ;)) (labeled_statement "LAB_0006a382:\n        cVar5 = *(char *)(param_1 + 10);" statement_identifier : (expression_statement "cVar5 = *(char *)(param_1 + 10);" (assignment_expression "cVar5 = *(char *)(param_1 + 10)" identifier = (pointer_expression "*(char *)(param_1 + 10)" * (cast_expression "(char *)(param_1 + 10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 10)" ( (binary_expression "param_1 + 10" identifier + number_literal) ))))) ;)) (if_statement "if (cVar5 == '\x03') {\n          cVar5 = '\x13';\n        }\n        else if (cVar5 == '\0') goto LAB_0006a3aa;" if (parenthesized_expression "(cVar5 == '\x03')" ( (binary_expression "cVar5 == '\x03'" identifier == (char_literal "'\x03'" ' escape_sequence ')) )) (compound_statement "{\n          cVar5 = '\x13';\n        }" { (expression_statement "cVar5 = '\x13';" (assignment_expression "cVar5 = '\x13'" identifier = (char_literal "'\x13'" ' escape_sequence ')) ;) }) (else_clause "else if (cVar5 == '\0') goto LAB_0006a3aa;" else (if_statement "if (cVar5 == '\0') goto LAB_0006a3aa;" if (parenthesized_expression "(cVar5 == '\0')" ( (binary_expression "cVar5 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_0006a3aa;" goto statement_identifier ;)))) (expression_statement "iVar7 = (**(code **)(**(int **)(param_1 + 0x40) + 0x14))(*(int **)(param_1 + 0x40),cVar5);" (assignment_expression "iVar7 = (**(code **)(**(int **)(param_1 + 0x40) + 0x14))(*(int **)(param_1 + 0x40),cVar5)" identifier = (call_expression "(**(code **)(**(int **)(param_1 + 0x40) + 0x14))(*(int **)(param_1 + 0x40),cVar5)" (parenthesized_expression "(**(code **)(**(int **)(param_1 + 0x40) + 0x14))" ( (pointer_expression "**(code **)(**(int **)(param_1 + 0x40) + 0x14)" * (pointer_expression "*(code **)(**(int **)(param_1 + 0x40) + 0x14)" * (cast_expression "(code **)(**(int **)(param_1 + 0x40) + 0x14)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)(param_1 + 0x40) + 0x14)" ( (binary_expression "**(int **)(param_1 + 0x40) + 0x14" (pointer_expression "**(int **)(param_1 + 0x40)" * (pointer_expression "*(int **)(param_1 + 0x40)" * (cast_expression "(int **)(param_1 + 0x40)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x40)" ( (binary_expression "param_1 + 0x40" identifier + number_literal) ))))) + number_literal) ))))) )) (argument_list "(*(int **)(param_1 + 0x40),cVar5)" ( (pointer_expression "*(int **)(param_1 + 0x40)" * (cast_expression "(int **)(param_1 + 0x40)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x40)" ( (binary_expression "param_1 + 0x40" identifier + number_literal) )))) , identifier )))) ;) (labeled_statement "joined_r0x0006a4d6:\n        if (iVar7 != 0) goto LAB_0006a356;" statement_identifier : (if_statement "if (iVar7 != 0) goto LAB_0006a356;" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0006a356;" goto statement_identifier ;))) }))) (labeled_statement "LAB_0006a3aa:\n      *(undefined4 *)(param_1 + 0x50) = *(undefined4 *)(param_1 + 0x48);" statement_identifier : (expression_statement "*(undefined4 *)(param_1 + 0x50) = *(undefined4 *)(param_1 + 0x48);" (assignment_expression "*(undefined4 *)(param_1 + 0x50) = *(undefined4 *)(param_1 + 0x48)" (pointer_expression "*(undefined4 *)(param_1 + 0x50)" * (cast_expression "(undefined4 *)(param_1 + 0x50)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x50)" ( (binary_expression "param_1 + 0x50" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(param_1 + 0x48)" * (cast_expression "(undefined4 *)(param_1 + 0x48)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x48)" ( (binary_expression "param_1 + 0x48" identifier + number_literal) ))))) ;)) (expression_statement "*(undefined4 *)(param_1 + 0x54) = *(undefined4 *)(param_1 + 0x4c);" (assignment_expression "*(undefined4 *)(param_1 + 0x54) = *(undefined4 *)(param_1 + 0x4c)" (pointer_expression "*(undefined4 *)(param_1 + 0x54)" * (cast_expression "(undefined4 *)(param_1 + 0x54)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x54)" ( (binary_expression "param_1 + 0x54" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(param_1 + 0x4c)" * (cast_expression "(undefined4 *)(param_1 + 0x4c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x4c)" ( (binary_expression "param_1 + 0x4c" identifier + number_literal) ))))) ;) (if_statement "if (((uVar6 & 0x200) == 0) && ((param_2 & 1) != 0)) {\n        *(undefined4 *)(param_1 + 0x2c) = 0;\n        iVar7 = FUN_0005f0c0();\n        if (iVar7 != 0) goto LAB_0006a356;\n      }" if (parenthesized_expression "(((uVar6 & 0x200) == 0) && ((param_2 & 1) != 0))" ( (binary_expression "((uVar6 & 0x200) == 0) && ((param_2 & 1) != 0)" (parenthesized_expression "((uVar6 & 0x200) == 0)" ( (binary_expression "(uVar6 & 0x200) == 0" (parenthesized_expression "(uVar6 & 0x200)" ( (binary_expression "uVar6 & 0x200" identifier & number_literal) )) == number_literal) )) && (parenthesized_expression "((param_2 & 1) != 0)" ( (binary_expression "(param_2 & 1) != 0" (parenthesized_expression "(param_2 & 1)" ( (binary_expression "param_2 & 1" identifier & number_literal) )) != number_literal) ))) )) (compound_statement "{\n        *(undefined4 *)(param_1 + 0x2c) = 0;\n        iVar7 = FUN_0005f0c0();\n        if (iVar7 != 0) goto LAB_0006a356;\n      }" { (expression_statement "*(undefined4 *)(param_1 + 0x2c) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x2c) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x2c)" * (cast_expression "(undefined4 *)(param_1 + 0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2c)" ( (binary_expression "param_1 + 0x2c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar7 = FUN_0005f0c0();" (assignment_expression "iVar7 = FUN_0005f0c0()" identifier = (call_expression "FUN_0005f0c0()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar7 != 0) goto LAB_0006a356;" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0006a356;" goto statement_identifier ;)) })) }))) })) (expression_statement "piVar8 = *(int **)(param_1 + 0xd0);" (assignment_expression "piVar8 = *(int **)(param_1 + 0xd0)" identifier = (pointer_expression "*(int **)(param_1 + 0xd0)" * (cast_expression "(int **)(param_1 + 0xd0)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0xd0)" ( (binary_expression "param_1 + 0xd0" identifier + number_literal) ))))) ;) (for_statement "for (iVar7 = *piVar8; iVar7 != 0; iVar7 = *(int *)(iVar7 + 0x20)) {\n    *(ushort *)(iVar7 + 0x1c) = *(ushort *)(iVar7 + 0x1c) & 0xfff7;\n  }" for ( (assignment_expression "iVar7 = *piVar8" identifier = (pointer_expression "*piVar8" * identifier)) ; (binary_expression "iVar7 != 0" identifier != number_literal) ; (assignment_expression "iVar7 = *(int *)(iVar7 + 0x20)" identifier = (pointer_expression "*(int *)(iVar7 + 0x20)" * (cast_expression "(int *)(iVar7 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x20)" ( (binary_expression "iVar7 + 0x20" identifier + number_literal) ))))) ) (compound_statement "{\n    *(ushort *)(iVar7 + 0x1c) = *(ushort *)(iVar7 + 0x1c) & 0xfff7;\n  }" { (expression_statement "*(ushort *)(iVar7 + 0x1c) = *(ushort *)(iVar7 + 0x1c) & 0xfff7;" (assignment_expression "*(ushort *)(iVar7 + 0x1c) = *(ushort *)(iVar7 + 0x1c) & 0xfff7" (pointer_expression "*(ushort *)(iVar7 + 0x1c)" * (cast_expression "(ushort *)(iVar7 + 0x1c)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x1c)" ( (binary_expression "iVar7 + 0x1c" identifier + number_literal) )))) = (binary_expression "*(ushort *)(iVar7 + 0x1c) & 0xfff7" (pointer_expression "*(ushort *)(iVar7 + 0x1c)" * (cast_expression "(ushort *)(iVar7 + 0x1c)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x1c)" ( (binary_expression "iVar7 + 0x1c" identifier + number_literal) )))) & number_literal)) ;) })) (expression_statement "piVar8[2] = piVar8[1];" (assignment_expression "piVar8[2] = piVar8[1]" (subscript_expression "piVar8[2]" identifier [ number_literal ]) = (subscript_expression "piVar8[1]" identifier [ number_literal ])) ;) (expression_statement "*(undefined1 *)(param_1 + 0x10) = 4;" (assignment_expression "*(undefined1 *)(param_1 + 0x10) = 4" (pointer_expression "*(undefined1 *)(param_1 + 0x10)" * (cast_expression "(undefined1 *)(param_1 + 0x10)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar7 = iVar1;" (assignment_expression "iVar7 = iVar1" identifier = identifier) ;) (labeled_statement "LAB_0006a356:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_000a9ea0();\n  }" statement_identifier : (if_statement "if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_000a9ea0();\n  }" if (parenthesized_expression "(local_20 != *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "local_20 != *(int *)(in_GS_OFFSET + 0x14)" identifier != (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    FUN_000a9ea0();\n  }" { comment (expression_statement "FUN_000a9ea0();" (call_expression "FUN_000a9ea0()" identifier (argument_list "()" ( ))) ;) }))) (return_statement "return iVar7;" return identifier ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nint __regparm3 syncJournal(Pager *pPager,int newHdr)\n\n{\n  int iVar1;\n  int iVar2;\n  PCache *pPVar3;\n  PgHdr *pPVar4;\n  undefined4 uVar5;\n  longlong lVar6;\n  bool bVar7;\n  uint uVar8;\n  int iVar9;\n  uint uVar10;\n  sqlite3_file *psVar11;\n  sqlite3_io_methods *psVar12;\n  int in_GS_OFFSET;\n  longlong lVar13;\n  int local_54;\n  int local_50;\n  u8 aMagic [8];\n  u8 zHeader [12];\n  \n  iVar2 = pPager->errCode;\n  iVar1 = *(int *)(in_GS_OFFSET + 0x14);\n  iVar9 = iVar2;\n  if ((iVar2 != 0) ||\n     ((pPager->pWal == (Wal *)0x0 && (iVar9 = pager_wait_on_lock(pPager,4), iVar9 != 0))))\n  goto LAB_0006a356;\n  if (pPager->noSync == '\0') {\n    if ((pPager->jfd->pMethods == (sqlite3_io_methods *)0x0) || (pPager->journalMode == '\x04')) {\nLAB_0006a320:\n      uVar5 = *(undefined4 *)((int)&pPager->journalOff + 4);\n      *(int *)&pPager->journalHdr = (int)pPager->journalOff;\n      *(undefined4 *)((int)&pPager->journalHdr + 4) = uVar5;\n    }\n    else {\n      uVar8 = (*pPager->fd->pMethods->xDeviceCharacteristics)(pPager->fd);\n      if ((uVar8 & 0x200) == 0) {\n        zHeader[0] = aJournalMagic[0];\n        zHeader[1] = aJournalMagic[1];\n        zHeader[2] = aJournalMagic[2];\n        zHeader[3] = aJournalMagic[3];\n        zHeader[4] = aJournalMagic[4];\n        zHeader[5] = aJournalMagic[5];\n        zHeader[6] = aJournalMagic[6];\n        zHeader[7] = aJournalMagic[7];\n        uVar10 = pPager->nRec;\n        local_50 = *(int *)((int)&pPager->journalOff + 4);\n        zHeader._8_4_ =\n             uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 | uVar10 << 0x18;\n        local_54 = (int)pPager->journalOff;\n        if (local_50 != 0 || local_54 != 0) {\n          uVar10 = pPager->sectorSize;\n          lVar13 = __divdi3(local_54 + -1,local_50 + -1 + (uint)(local_54 != 0),uVar10,0);\n          lVar6 = (lVar13 + 1U & 0xffffffff) * (ulonglong)uVar10;\n          local_54 = (int)lVar6;\n          local_50 = (int)((ulonglong)lVar6 >> 0x20) + uVar10 * (int)(lVar13 + 1U >> 0x20);\n        }\n        iVar9 = (*pPager->jfd->pMethods->xRead)(pPager->jfd,aMagic,8,CONCAT44(local_50,local_54));\n        if (iVar9 == 0) {\n          if ((aMagic._0_4_ != aJournalMagic._0_4_) ||\n             (bVar7 = false, aMagic._4_4_ != aJournalMagic._4_4_)) {\n            bVar7 = true;\n          }\n          psVar11 = pPager->jfd;\n          psVar12 = psVar11->pMethods;\n          if (!bVar7) {\n            iVar9 = (*psVar12->xWrite)(psVar11,"",1,CONCAT44(local_50,local_54));\n            goto LAB_0006a303;\n          }\n        }\n        else {\nLAB_0006a303:\n          if ((iVar9 != 0) && (iVar9 != 0x20a)) goto LAB_0006a356;\n          psVar11 = pPager->jfd;\n          psVar12 = psVar11->pMethods;\n        }\n        if (pPager->fullSync != '\0') {\n          if ((uVar8 & 0x400) == 0) {\n            if (pPager->syncFlags != 0) {\n              iVar9 = (*psVar12->xSync)(psVar11,(uint)pPager->syncFlags);\n              if (iVar9 != 0) goto LAB_0006a356;\n              psVar11 = pPager->jfd;\n              psVar12 = psVar11->pMethods;\n            }\n            iVar9 = (*psVar12->xWrite)(psVar11,zHeader,0xc,pPager->journalHdr);\n            if (iVar9 != 0) goto LAB_0006a356;\n            goto LAB_0006a382;\n          }\n          iVar9 = (*psVar12->xWrite)(psVar11,zHeader,0xc,pPager->journalHdr);\n          goto joined_r0x0006a4d6;\n        }\n        iVar9 = (*psVar12->xWrite)(psVar11,zHeader,0xc,pPager->journalHdr);\n        if (iVar9 != 0) goto LAB_0006a356;\n        if ((uVar8 & 0x400) == 0) goto LAB_0006a382;\n      }\n      else {\n        if ((uVar8 & 0x400) != 0) goto LAB_0006a320;\nLAB_0006a382:\n        uVar10 = (uint)pPager->syncFlags;\n        if (pPager->syncFlags == 3) {\n          uVar10 = 0x13;\n        }\n        else if (uVar10 == 0) goto LAB_0006a3aa;\n        iVar9 = (*pPager->jfd->pMethods->xSync)(pPager->jfd,uVar10);\njoined_r0x0006a4d6:\n        if (iVar9 != 0) goto LAB_0006a356;\n      }\nLAB_0006a3aa:\n      uVar5 = *(undefined4 *)((int)&pPager->journalOff + 4);\n      *(int *)&pPager->journalHdr = (int)pPager->journalOff;\n      *(undefined4 *)((int)&pPager->journalHdr + 4) = uVar5;\n      if (((uVar8 & 0x200) == 0) && ((newHdr & 1U) != 0)) {\n        pPager->nRec = 0;\n        iVar9 = writeJournalHdr(pPager);\n        if (iVar9 != 0) goto LAB_0006a356;\n      }\n    }\n  }\n  pPVar3 = pPager->pPCache;\n  for (pPVar4 = pPVar3->pDirty; pPVar4 != (PgHdr *)0x0; pPVar4 = pPVar4->pDirtyNext) {\n    pPVar4->flags = pPVar4->flags & 0xfff7;\n  }\n  pPVar3->pSynced = pPVar3->pDirtyTail;\n  pPager->eState = '\x04';\n  iVar9 = iVar2;\nLAB_0006a356:\n  if (iVar1 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail_local();\n  }\n  return iVar9;\n}\n\n" comment (function_definition "int __regparm3 syncJournal(Pager *pPager,int newHdr)\n\n{\n  int iVar1;\n  int iVar2;\n  PCache *pPVar3;\n  PgHdr *pPVar4;\n  undefined4 uVar5;\n  longlong lVar6;\n  bool bVar7;\n  uint uVar8;\n  int iVar9;\n  uint uVar10;\n  sqlite3_file *psVar11;\n  sqlite3_io_methods *psVar12;\n  int in_GS_OFFSET;\n  longlong lVar13;\n  int local_54;\n  int local_50;\n  u8 aMagic [8];\n  u8 zHeader [12];\n  \n  iVar2 = pPager->errCode;\n  iVar1 = *(int *)(in_GS_OFFSET + 0x14);\n  iVar9 = iVar2;\n  if ((iVar2 != 0) ||\n     ((pPager->pWal == (Wal *)0x0 && (iVar9 = pager_wait_on_lock(pPager,4), iVar9 != 0))))\n  goto LAB_0006a356;\n  if (pPager->noSync == '\0') {\n    if ((pPager->jfd->pMethods == (sqlite3_io_methods *)0x0) || (pPager->journalMode == '\x04')) {\nLAB_0006a320:\n      uVar5 = *(undefined4 *)((int)&pPager->journalOff + 4);\n      *(int *)&pPager->journalHdr = (int)pPager->journalOff;\n      *(undefined4 *)((int)&pPager->journalHdr + 4) = uVar5;\n    }\n    else {\n      uVar8 = (*pPager->fd->pMethods->xDeviceCharacteristics)(pPager->fd);\n      if ((uVar8 & 0x200) == 0) {\n        zHeader[0] = aJournalMagic[0];\n        zHeader[1] = aJournalMagic[1];\n        zHeader[2] = aJournalMagic[2];\n        zHeader[3] = aJournalMagic[3];\n        zHeader[4] = aJournalMagic[4];\n        zHeader[5] = aJournalMagic[5];\n        zHeader[6] = aJournalMagic[6];\n        zHeader[7] = aJournalMagic[7];\n        uVar10 = pPager->nRec;\n        local_50 = *(int *)((int)&pPager->journalOff + 4);\n        zHeader._8_4_ =\n             uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 | uVar10 << 0x18;\n        local_54 = (int)pPager->journalOff;\n        if (local_50 != 0 || local_54 != 0) {\n          uVar10 = pPager->sectorSize;\n          lVar13 = __divdi3(local_54 + -1,local_50 + -1 + (uint)(local_54 != 0),uVar10,0);\n          lVar6 = (lVar13 + 1U & 0xffffffff) * (ulonglong)uVar10;\n          local_54 = (int)lVar6;\n          local_50 = (int)((ulonglong)lVar6 >> 0x20) + uVar10 * (int)(lVar13 + 1U >> 0x20);\n        }\n        iVar9 = (*pPager->jfd->pMethods->xRead)(pPager->jfd,aMagic,8,CONCAT44(local_50,local_54));\n        if (iVar9 == 0) {\n          if ((aMagic._0_4_ != aJournalMagic._0_4_) ||\n             (bVar7 = false, aMagic._4_4_ != aJournalMagic._4_4_)) {\n            bVar7 = true;\n          }\n          psVar11 = pPager->jfd;\n          psVar12 = psVar11->pMethods;\n          if (!bVar7) {\n            iVar9 = (*psVar12->xWrite)(psVar11,"",1,CONCAT44(local_50,local_54));\n            goto LAB_0006a303;\n          }\n        }\n        else {\nLAB_0006a303:\n          if ((iVar9 != 0) && (iVar9 != 0x20a)) goto LAB_0006a356;\n          psVar11 = pPager->jfd;\n          psVar12 = psVar11->pMethods;\n        }\n        if (pPager->fullSync != '\0') {\n          if ((uVar8 & 0x400) == 0) {\n            if (pPager->syncFlags != 0) {\n              iVar9 = (*psVar12->xSync)(psVar11,(uint)pPager->syncFlags);\n              if (iVar9 != 0) goto LAB_0006a356;\n              psVar11 = pPager->jfd;\n              psVar12 = psVar11->pMethods;\n            }\n            iVar9 = (*psVar12->xWrite)(psVar11,zHeader,0xc,pPager->journalHdr);\n            if (iVar9 != 0) goto LAB_0006a356;\n            goto LAB_0006a382;\n          }\n          iVar9 = (*psVar12->xWrite)(psVar11,zHeader,0xc,pPager->journalHdr);\n          goto joined_r0x0006a4d6;\n        }\n        iVar9 = (*psVar12->xWrite)(psVar11,zHeader,0xc,pPager->journalHdr);\n        if (iVar9 != 0) goto LAB_0006a356;\n        if ((uVar8 & 0x400) == 0) goto LAB_0006a382;\n      }\n      else {\n        if ((uVar8 & 0x400) != 0) goto LAB_0006a320;\nLAB_0006a382:\n        uVar10 = (uint)pPager->syncFlags;\n        if (pPager->syncFlags == 3) {\n          uVar10 = 0x13;\n        }\n        else if (uVar10 == 0) goto LAB_0006a3aa;\n        iVar9 = (*pPager->jfd->pMethods->xSync)(pPager->jfd,uVar10);\njoined_r0x0006a4d6:\n        if (iVar9 != 0) goto LAB_0006a356;\n      }\nLAB_0006a3aa:\n      uVar5 = *(undefined4 *)((int)&pPager->journalOff + 4);\n      *(int *)&pPager->journalHdr = (int)pPager->journalOff;\n      *(undefined4 *)((int)&pPager->journalHdr + 4) = uVar5;\n      if (((uVar8 & 0x200) == 0) && ((newHdr & 1U) != 0)) {\n        pPager->nRec = 0;\n        iVar9 = writeJournalHdr(pPager);\n        if (iVar9 != 0) goto LAB_0006a356;\n      }\n    }\n  }\n  pPVar3 = pPager->pPCache;\n  for (pPVar4 = pPVar3->pDirty; pPVar4 != (PgHdr *)0x0; pPVar4 = pPVar4->pDirtyNext) {\n    pPVar4->flags = pPVar4->flags & 0xfff7;\n  }\n  pPVar3->pSynced = pPVar3->pDirtyTail;\n  pPager->eState = '\x04';\n  iVar9 = iVar2;\nLAB_0006a356:\n  if (iVar1 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail_local();\n  }\n  return iVar9;\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "syncJournal(Pager *pPager,int newHdr)" identifier (parameter_list "(Pager *pPager,int newHdr)" ( (parameter_declaration "Pager *pPager" type_identifier (pointer_declarator "*pPager" * identifier)) , (parameter_declaration "int newHdr" primitive_type identifier) ))) (compound_statement "{\n  int iVar1;\n  int iVar2;\n  PCache *pPVar3;\n  PgHdr *pPVar4;\n  undefined4 uVar5;\n  longlong lVar6;\n  bool bVar7;\n  uint uVar8;\n  int iVar9;\n  uint uVar10;\n  sqlite3_file *psVar11;\n  sqlite3_io_methods *psVar12;\n  int in_GS_OFFSET;\n  longlong lVar13;\n  int local_54;\n  int local_50;\n  u8 aMagic [8];\n  u8 zHeader [12];\n  \n  iVar2 = pPager->errCode;\n  iVar1 = *(int *)(in_GS_OFFSET + 0x14);\n  iVar9 = iVar2;\n  if ((iVar2 != 0) ||\n     ((pPager->pWal == (Wal *)0x0 && (iVar9 = pager_wait_on_lock(pPager,4), iVar9 != 0))))\n  goto LAB_0006a356;\n  if (pPager->noSync == '\0') {\n    if ((pPager->jfd->pMethods == (sqlite3_io_methods *)0x0) || (pPager->journalMode == '\x04')) {\nLAB_0006a320:\n      uVar5 = *(undefined4 *)((int)&pPager->journalOff + 4);\n      *(int *)&pPager->journalHdr = (int)pPager->journalOff;\n      *(undefined4 *)((int)&pPager->journalHdr + 4) = uVar5;\n    }\n    else {\n      uVar8 = (*pPager->fd->pMethods->xDeviceCharacteristics)(pPager->fd);\n      if ((uVar8 & 0x200) == 0) {\n        zHeader[0] = aJournalMagic[0];\n        zHeader[1] = aJournalMagic[1];\n        zHeader[2] = aJournalMagic[2];\n        zHeader[3] = aJournalMagic[3];\n        zHeader[4] = aJournalMagic[4];\n        zHeader[5] = aJournalMagic[5];\n        zHeader[6] = aJournalMagic[6];\n        zHeader[7] = aJournalMagic[7];\n        uVar10 = pPager->nRec;\n        local_50 = *(int *)((int)&pPager->journalOff + 4);\n        zHeader._8_4_ =\n             uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 | uVar10 << 0x18;\n        local_54 = (int)pPager->journalOff;\n        if (local_50 != 0 || local_54 != 0) {\n          uVar10 = pPager->sectorSize;\n          lVar13 = __divdi3(local_54 + -1,local_50 + -1 + (uint)(local_54 != 0),uVar10,0);\n          lVar6 = (lVar13 + 1U & 0xffffffff) * (ulonglong)uVar10;\n          local_54 = (int)lVar6;\n          local_50 = (int)((ulonglong)lVar6 >> 0x20) + uVar10 * (int)(lVar13 + 1U >> 0x20);\n        }\n        iVar9 = (*pPager->jfd->pMethods->xRead)(pPager->jfd,aMagic,8,CONCAT44(local_50,local_54));\n        if (iVar9 == 0) {\n          if ((aMagic._0_4_ != aJournalMagic._0_4_) ||\n             (bVar7 = false, aMagic._4_4_ != aJournalMagic._4_4_)) {\n            bVar7 = true;\n          }\n          psVar11 = pPager->jfd;\n          psVar12 = psVar11->pMethods;\n          if (!bVar7) {\n            iVar9 = (*psVar12->xWrite)(psVar11,"",1,CONCAT44(local_50,local_54));\n            goto LAB_0006a303;\n          }\n        }\n        else {\nLAB_0006a303:\n          if ((iVar9 != 0) && (iVar9 != 0x20a)) goto LAB_0006a356;\n          psVar11 = pPager->jfd;\n          psVar12 = psVar11->pMethods;\n        }\n        if (pPager->fullSync != '\0') {\n          if ((uVar8 & 0x400) == 0) {\n            if (pPager->syncFlags != 0) {\n              iVar9 = (*psVar12->xSync)(psVar11,(uint)pPager->syncFlags);\n              if (iVar9 != 0) goto LAB_0006a356;\n              psVar11 = pPager->jfd;\n              psVar12 = psVar11->pMethods;\n            }\n            iVar9 = (*psVar12->xWrite)(psVar11,zHeader,0xc,pPager->journalHdr);\n            if (iVar9 != 0) goto LAB_0006a356;\n            goto LAB_0006a382;\n          }\n          iVar9 = (*psVar12->xWrite)(psVar11,zHeader,0xc,pPager->journalHdr);\n          goto joined_r0x0006a4d6;\n        }\n        iVar9 = (*psVar12->xWrite)(psVar11,zHeader,0xc,pPager->journalHdr);\n        if (iVar9 != 0) goto LAB_0006a356;\n        if ((uVar8 & 0x400) == 0) goto LAB_0006a382;\n      }\n      else {\n        if ((uVar8 & 0x400) != 0) goto LAB_0006a320;\nLAB_0006a382:\n        uVar10 = (uint)pPager->syncFlags;\n        if (pPager->syncFlags == 3) {\n          uVar10 = 0x13;\n        }\n        else if (uVar10 == 0) goto LAB_0006a3aa;\n        iVar9 = (*pPager->jfd->pMethods->xSync)(pPager->jfd,uVar10);\njoined_r0x0006a4d6:\n        if (iVar9 != 0) goto LAB_0006a356;\n      }\nLAB_0006a3aa:\n      uVar5 = *(undefined4 *)((int)&pPager->journalOff + 4);\n      *(int *)&pPager->journalHdr = (int)pPager->journalOff;\n      *(undefined4 *)((int)&pPager->journalHdr + 4) = uVar5;\n      if (((uVar8 & 0x200) == 0) && ((newHdr & 1U) != 0)) {\n        pPager->nRec = 0;\n        iVar9 = writeJournalHdr(pPager);\n        if (iVar9 != 0) goto LAB_0006a356;\n      }\n    }\n  }\n  pPVar3 = pPager->pPCache;\n  for (pPVar4 = pPVar3->pDirty; pPVar4 != (PgHdr *)0x0; pPVar4 = pPVar4->pDirtyNext) {\n    pPVar4->flags = pPVar4->flags & 0xfff7;\n  }\n  pPVar3->pSynced = pPVar3->pDirtyTail;\n  pPager->eState = '\x04';\n  iVar9 = iVar2;\nLAB_0006a356:\n  if (iVar1 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail_local();\n  }\n  return iVar9;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "PCache *pPVar3;" type_identifier (pointer_declarator "*pPVar3" * identifier) ;) (declaration "PgHdr *pPVar4;" type_identifier (pointer_declarator "*pPVar4" * identifier) ;) (declaration "undefined4 uVar5;" type_identifier identifier ;) (declaration "longlong lVar6;" type_identifier identifier ;) (declaration "bool bVar7;" primitive_type identifier ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "sqlite3_file *psVar11;" type_identifier (pointer_declarator "*psVar11" * identifier) ;) (declaration "sqlite3_io_methods *psVar12;" type_identifier (pointer_declarator "*psVar12" * identifier) ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "longlong lVar13;" type_identifier identifier ;) (declaration "int local_54;" primitive_type identifier ;) (declaration "int local_50;" primitive_type identifier ;) (declaration "u8 aMagic [8];" type_identifier (array_declarator "aMagic [8]" identifier [ number_literal ]) ;) (declaration "u8 zHeader [12];" type_identifier (array_declarator "zHeader [12]" identifier [ number_literal ]) ;) (expression_statement "iVar2 = pPager->errCode;" (assignment_expression "iVar2 = pPager->errCode" identifier = (field_expression "pPager->errCode" identifier -> field_identifier)) ;) (expression_statement "iVar1 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "iVar1 = *(int *)(in_GS_OFFSET + 0x14)" identifier = (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) ;) (expression_statement "iVar9 = iVar2;" (assignment_expression "iVar9 = iVar2" identifier = identifier) ;) (if_statement "if ((iVar2 != 0) ||\n     ((pPager->pWal == (Wal *)0x0 && (iVar9 = pager_wait_on_lock(pPager,4), iVar9 != 0))))\n  goto LAB_0006a356;" if (parenthesized_expression "((iVar2 != 0) ||\n     ((pPager->pWal == (Wal *)0x0 && (iVar9 = pager_wait_on_lock(pPager,4), iVar9 != 0))))" ( (binary_expression "(iVar2 != 0) ||\n     ((pPager->pWal == (Wal *)0x0 && (iVar9 = pager_wait_on_lock(pPager,4), iVar9 != 0)))" (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) || (parenthesized_expression "((pPager->pWal == (Wal *)0x0 && (iVar9 = pager_wait_on_lock(pPager,4), iVar9 != 0)))" ( (parenthesized_expression "(pPager->pWal == (Wal *)0x0 && (iVar9 = pager_wait_on_lock(pPager,4), iVar9 != 0))" ( (binary_expression "pPager->pWal == (Wal *)0x0 && (iVar9 = pager_wait_on_lock(pPager,4), iVar9 != 0)" (binary_expression "pPager->pWal == (Wal *)0x0" (field_expression "pPager->pWal" identifier -> field_identifier) == (cast_expression "(Wal *)0x0" ( (type_descriptor "Wal *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) && (parenthesized_expression "(iVar9 = pager_wait_on_lock(pPager,4), iVar9 != 0)" ( (comma_expression "iVar9 = pager_wait_on_lock(pPager,4), iVar9 != 0" (assignment_expression "iVar9 = pager_wait_on_lock(pPager,4)" identifier = (call_expression "pager_wait_on_lock(pPager,4)" identifier (argument_list "(pPager,4)" ( identifier , number_literal )))) , (binary_expression "iVar9 != 0" identifier != number_literal)) ))) )) ))) )) (goto_statement "goto LAB_0006a356;" goto statement_identifier ;)) (if_statement "if (pPager->noSync == '\0') {\n    if ((pPager->jfd->pMethods == (sqlite3_io_methods *)0x0) || (pPager->journalMode == '\x04')) {\nLAB_0006a320:\n      uVar5 = *(undefined4 *)((int)&pPager->journalOff + 4);\n      *(int *)&pPager->journalHdr = (int)pPager->journalOff;\n      *(undefined4 *)((int)&pPager->journalHdr + 4) = uVar5;\n    }\n    else {\n      uVar8 = (*pPager->fd->pMethods->xDeviceCharacteristics)(pPager->fd);\n      if ((uVar8 & 0x200) == 0) {\n        zHeader[0] = aJournalMagic[0];\n        zHeader[1] = aJournalMagic[1];\n        zHeader[2] = aJournalMagic[2];\n        zHeader[3] = aJournalMagic[3];\n        zHeader[4] = aJournalMagic[4];\n        zHeader[5] = aJournalMagic[5];\n        zHeader[6] = aJournalMagic[6];\n        zHeader[7] = aJournalMagic[7];\n        uVar10 = pPager->nRec;\n        local_50 = *(int *)((int)&pPager->journalOff + 4);\n        zHeader._8_4_ =\n             uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 | uVar10 << 0x18;\n        local_54 = (int)pPager->journalOff;\n        if (local_50 != 0 || local_54 != 0) {\n          uVar10 = pPager->sectorSize;\n          lVar13 = __divdi3(local_54 + -1,local_50 + -1 + (uint)(local_54 != 0),uVar10,0);\n          lVar6 = (lVar13 + 1U & 0xffffffff) * (ulonglong)uVar10;\n          local_54 = (int)lVar6;\n          local_50 = (int)((ulonglong)lVar6 >> 0x20) + uVar10 * (int)(lVar13 + 1U >> 0x20);\n        }\n        iVar9 = (*pPager->jfd->pMethods->xRead)(pPager->jfd,aMagic,8,CONCAT44(local_50,local_54));\n        if (iVar9 == 0) {\n          if ((aMagic._0_4_ != aJournalMagic._0_4_) ||\n             (bVar7 = false, aMagic._4_4_ != aJournalMagic._4_4_)) {\n            bVar7 = true;\n          }\n          psVar11 = pPager->jfd;\n          psVar12 = psVar11->pMethods;\n          if (!bVar7) {\n            iVar9 = (*psVar12->xWrite)(psVar11,"",1,CONCAT44(local_50,local_54));\n            goto LAB_0006a303;\n          }\n        }\n        else {\nLAB_0006a303:\n          if ((iVar9 != 0) && (iVar9 != 0x20a)) goto LAB_0006a356;\n          psVar11 = pPager->jfd;\n          psVar12 = psVar11->pMethods;\n        }\n        if (pPager->fullSync != '\0') {\n          if ((uVar8 & 0x400) == 0) {\n            if (pPager->syncFlags != 0) {\n              iVar9 = (*psVar12->xSync)(psVar11,(uint)pPager->syncFlags);\n              if (iVar9 != 0) goto LAB_0006a356;\n              psVar11 = pPager->jfd;\n              psVar12 = psVar11->pMethods;\n            }\n            iVar9 = (*psVar12->xWrite)(psVar11,zHeader,0xc,pPager->journalHdr);\n            if (iVar9 != 0) goto LAB_0006a356;\n            goto LAB_0006a382;\n          }\n          iVar9 = (*psVar12->xWrite)(psVar11,zHeader,0xc,pPager->journalHdr);\n          goto joined_r0x0006a4d6;\n        }\n        iVar9 = (*psVar12->xWrite)(psVar11,zHeader,0xc,pPager->journalHdr);\n        if (iVar9 != 0) goto LAB_0006a356;\n        if ((uVar8 & 0x400) == 0) goto LAB_0006a382;\n      }\n      else {\n        if ((uVar8 & 0x400) != 0) goto LAB_0006a320;\nLAB_0006a382:\n        uVar10 = (uint)pPager->syncFlags;\n        if (pPager->syncFlags == 3) {\n          uVar10 = 0x13;\n        }\n        else if (uVar10 == 0) goto LAB_0006a3aa;\n        iVar9 = (*pPager->jfd->pMethods->xSync)(pPager->jfd,uVar10);\njoined_r0x0006a4d6:\n        if (iVar9 != 0) goto LAB_0006a356;\n      }\nLAB_0006a3aa:\n      uVar5 = *(undefined4 *)((int)&pPager->journalOff + 4);\n      *(int *)&pPager->journalHdr = (int)pPager->journalOff;\n      *(undefined4 *)((int)&pPager->journalHdr + 4) = uVar5;\n      if (((uVar8 & 0x200) == 0) && ((newHdr & 1U) != 0)) {\n        pPager->nRec = 0;\n        iVar9 = writeJournalHdr(pPager);\n        if (iVar9 != 0) goto LAB_0006a356;\n      }\n    }\n  }" if (parenthesized_expression "(pPager->noSync == '\0')" ( (binary_expression "pPager->noSync == '\0'" (field_expression "pPager->noSync" identifier -> field_identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    if ((pPager->jfd->pMethods == (sqlite3_io_methods *)0x0) || (pPager->journalMode == '\x04')) {\nLAB_0006a320:\n      uVar5 = *(undefined4 *)((int)&pPager->journalOff + 4);\n      *(int *)&pPager->journalHdr = (int)pPager->journalOff;\n      *(undefined4 *)((int)&pPager->journalHdr + 4) = uVar5;\n    }\n    else {\n      uVar8 = (*pPager->fd->pMethods->xDeviceCharacteristics)(pPager->fd);\n      if ((uVar8 & 0x200) == 0) {\n        zHeader[0] = aJournalMagic[0];\n        zHeader[1] = aJournalMagic[1];\n        zHeader[2] = aJournalMagic[2];\n        zHeader[3] = aJournalMagic[3];\n        zHeader[4] = aJournalMagic[4];\n        zHeader[5] = aJournalMagic[5];\n        zHeader[6] = aJournalMagic[6];\n        zHeader[7] = aJournalMagic[7];\n        uVar10 = pPager->nRec;\n        local_50 = *(int *)((int)&pPager->journalOff + 4);\n        zHeader._8_4_ =\n             uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 | uVar10 << 0x18;\n        local_54 = (int)pPager->journalOff;\n        if (local_50 != 0 || local_54 != 0) {\n          uVar10 = pPager->sectorSize;\n          lVar13 = __divdi3(local_54 + -1,local_50 + -1 + (uint)(local_54 != 0),uVar10,0);\n          lVar6 = (lVar13 + 1U & 0xffffffff) * (ulonglong)uVar10;\n          local_54 = (int)lVar6;\n          local_50 = (int)((ulonglong)lVar6 >> 0x20) + uVar10 * (int)(lVar13 + 1U >> 0x20);\n        }\n        iVar9 = (*pPager->jfd->pMethods->xRead)(pPager->jfd,aMagic,8,CONCAT44(local_50,local_54));\n        if (iVar9 == 0) {\n          if ((aMagic._0_4_ != aJournalMagic._0_4_) ||\n             (bVar7 = false, aMagic._4_4_ != aJournalMagic._4_4_)) {\n            bVar7 = true;\n          }\n          psVar11 = pPager->jfd;\n          psVar12 = psVar11->pMethods;\n          if (!bVar7) {\n            iVar9 = (*psVar12->xWrite)(psVar11,"",1,CONCAT44(local_50,local_54));\n            goto LAB_0006a303;\n          }\n        }\n        else {\nLAB_0006a303:\n          if ((iVar9 != 0) && (iVar9 != 0x20a)) goto LAB_0006a356;\n          psVar11 = pPager->jfd;\n          psVar12 = psVar11->pMethods;\n        }\n        if (pPager->fullSync != '\0') {\n          if ((uVar8 & 0x400) == 0) {\n            if (pPager->syncFlags != 0) {\n              iVar9 = (*psVar12->xSync)(psVar11,(uint)pPager->syncFlags);\n              if (iVar9 != 0) goto LAB_0006a356;\n              psVar11 = pPager->jfd;\n              psVar12 = psVar11->pMethods;\n            }\n            iVar9 = (*psVar12->xWrite)(psVar11,zHeader,0xc,pPager->journalHdr);\n            if (iVar9 != 0) goto LAB_0006a356;\n            goto LAB_0006a382;\n          }\n          iVar9 = (*psVar12->xWrite)(psVar11,zHeader,0xc,pPager->journalHdr);\n          goto joined_r0x0006a4d6;\n        }\n        iVar9 = (*psVar12->xWrite)(psVar11,zHeader,0xc,pPager->journalHdr);\n        if (iVar9 != 0) goto LAB_0006a356;\n        if ((uVar8 & 0x400) == 0) goto LAB_0006a382;\n      }\n      else {\n        if ((uVar8 & 0x400) != 0) goto LAB_0006a320;\nLAB_0006a382:\n        uVar10 = (uint)pPager->syncFlags;\n        if (pPager->syncFlags == 3) {\n          uVar10 = 0x13;\n        }\n        else if (uVar10 == 0) goto LAB_0006a3aa;\n        iVar9 = (*pPager->jfd->pMethods->xSync)(pPager->jfd,uVar10);\njoined_r0x0006a4d6:\n        if (iVar9 != 0) goto LAB_0006a356;\n      }\nLAB_0006a3aa:\n      uVar5 = *(undefined4 *)((int)&pPager->journalOff + 4);\n      *(int *)&pPager->journalHdr = (int)pPager->journalOff;\n      *(undefined4 *)((int)&pPager->journalHdr + 4) = uVar5;\n      if (((uVar8 & 0x200) == 0) && ((newHdr & 1U) != 0)) {\n        pPager->nRec = 0;\n        iVar9 = writeJournalHdr(pPager);\n        if (iVar9 != 0) goto LAB_0006a356;\n      }\n    }\n  }" { (if_statement "if ((pPager->jfd->pMethods == (sqlite3_io_methods *)0x0) || (pPager->journalMode == '\x04')) {\nLAB_0006a320:\n      uVar5 = *(undefined4 *)((int)&pPager->journalOff + 4);\n      *(int *)&pPager->journalHdr = (int)pPager->journalOff;\n      *(undefined4 *)((int)&pPager->journalHdr + 4) = uVar5;\n    }\n    else {\n      uVar8 = (*pPager->fd->pMethods->xDeviceCharacteristics)(pPager->fd);\n      if ((uVar8 & 0x200) == 0) {\n        zHeader[0] = aJournalMagic[0];\n        zHeader[1] = aJournalMagic[1];\n        zHeader[2] = aJournalMagic[2];\n        zHeader[3] = aJournalMagic[3];\n        zHeader[4] = aJournalMagic[4];\n        zHeader[5] = aJournalMagic[5];\n        zHeader[6] = aJournalMagic[6];\n        zHeader[7] = aJournalMagic[7];\n        uVar10 = pPager->nRec;\n        local_50 = *(int *)((int)&pPager->journalOff + 4);\n        zHeader._8_4_ =\n             uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 | uVar10 << 0x18;\n        local_54 = (int)pPager->journalOff;\n        if (local_50 != 0 || local_54 != 0) {\n          uVar10 = pPager->sectorSize;\n          lVar13 = __divdi3(local_54 + -1,local_50 + -1 + (uint)(local_54 != 0),uVar10,0);\n          lVar6 = (lVar13 + 1U & 0xffffffff) * (ulonglong)uVar10;\n          local_54 = (int)lVar6;\n          local_50 = (int)((ulonglong)lVar6 >> 0x20) + uVar10 * (int)(lVar13 + 1U >> 0x20);\n        }\n        iVar9 = (*pPager->jfd->pMethods->xRead)(pPager->jfd,aMagic,8,CONCAT44(local_50,local_54));\n        if (iVar9 == 0) {\n          if ((aMagic._0_4_ != aJournalMagic._0_4_) ||\n             (bVar7 = false, aMagic._4_4_ != aJournalMagic._4_4_)) {\n            bVar7 = true;\n          }\n          psVar11 = pPager->jfd;\n          psVar12 = psVar11->pMethods;\n          if (!bVar7) {\n            iVar9 = (*psVar12->xWrite)(psVar11,"",1,CONCAT44(local_50,local_54));\n            goto LAB_0006a303;\n          }\n        }\n        else {\nLAB_0006a303:\n          if ((iVar9 != 0) && (iVar9 != 0x20a)) goto LAB_0006a356;\n          psVar11 = pPager->jfd;\n          psVar12 = psVar11->pMethods;\n        }\n        if (pPager->fullSync != '\0') {\n          if ((uVar8 & 0x400) == 0) {\n            if (pPager->syncFlags != 0) {\n              iVar9 = (*psVar12->xSync)(psVar11,(uint)pPager->syncFlags);\n              if (iVar9 != 0) goto LAB_0006a356;\n              psVar11 = pPager->jfd;\n              psVar12 = psVar11->pMethods;\n            }\n            iVar9 = (*psVar12->xWrite)(psVar11,zHeader,0xc,pPager->journalHdr);\n            if (iVar9 != 0) goto LAB_0006a356;\n            goto LAB_0006a382;\n          }\n          iVar9 = (*psVar12->xWrite)(psVar11,zHeader,0xc,pPager->journalHdr);\n          goto joined_r0x0006a4d6;\n        }\n        iVar9 = (*psVar12->xWrite)(psVar11,zHeader,0xc,pPager->journalHdr);\n        if (iVar9 != 0) goto LAB_0006a356;\n        if ((uVar8 & 0x400) == 0) goto LAB_0006a382;\n      }\n      else {\n        if ((uVar8 & 0x400) != 0) goto LAB_0006a320;\nLAB_0006a382:\n        uVar10 = (uint)pPager->syncFlags;\n        if (pPager->syncFlags == 3) {\n          uVar10 = 0x13;\n        }\n        else if (uVar10 == 0) goto LAB_0006a3aa;\n        iVar9 = (*pPager->jfd->pMethods->xSync)(pPager->jfd,uVar10);\njoined_r0x0006a4d6:\n        if (iVar9 != 0) goto LAB_0006a356;\n      }\nLAB_0006a3aa:\n      uVar5 = *(undefined4 *)((int)&pPager->journalOff + 4);\n      *(int *)&pPager->journalHdr = (int)pPager->journalOff;\n      *(undefined4 *)((int)&pPager->journalHdr + 4) = uVar5;\n      if (((uVar8 & 0x200) == 0) && ((newHdr & 1U) != 0)) {\n        pPager->nRec = 0;\n        iVar9 = writeJournalHdr(pPager);\n        if (iVar9 != 0) goto LAB_0006a356;\n      }\n    }" if (parenthesized_expression "((pPager->jfd->pMethods == (sqlite3_io_methods *)0x0) || (pPager->journalMode == '\x04'))" ( (binary_expression "(pPager->jfd->pMethods == (sqlite3_io_methods *)0x0) || (pPager->journalMode == '\x04')" (parenthesized_expression "(pPager->jfd->pMethods == (sqlite3_io_methods *)0x0)" ( (binary_expression "pPager->jfd->pMethods == (sqlite3_io_methods *)0x0" (field_expression "pPager->jfd->pMethods" (field_expression "pPager->jfd" identifier -> field_identifier) -> field_identifier) == (cast_expression "(sqlite3_io_methods *)0x0" ( (type_descriptor "sqlite3_io_methods *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(pPager->journalMode == '\x04')" ( (binary_expression "pPager->journalMode == '\x04'" (field_expression "pPager->journalMode" identifier -> field_identifier) == (char_literal "'\x04'" ' escape_sequence ')) ))) )) (compound_statement "{\nLAB_0006a320:\n      uVar5 = *(undefined4 *)((int)&pPager->journalOff + 4);\n      *(int *)&pPager->journalHdr = (int)pPager->journalOff;\n      *(undefined4 *)((int)&pPager->journalHdr + 4) = uVar5;\n    }" { (labeled_statement "LAB_0006a320:\n      uVar5 = *(undefined4 *)((int)&pPager->journalOff + 4);" statement_identifier : (expression_statement "uVar5 = *(undefined4 *)((int)&pPager->journalOff + 4);" (assignment_expression "uVar5 = *(undefined4 *)((int)&pPager->journalOff + 4)" identifier = (pointer_expression "*(undefined4 *)((int)&pPager->journalOff + 4)" * (cast_expression "(undefined4 *)((int)&pPager->journalOff + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pPager->journalOff + 4)" ( (binary_expression "(int)&pPager->journalOff + 4" (cast_expression "(int)&pPager->journalOff" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pPager->journalOff" & (field_expression "pPager->journalOff" identifier -> field_identifier))) + number_literal) ))))) ;)) (expression_statement "*(int *)&pPager->journalHdr = (int)pPager->journalOff;" (assignment_expression "*(int *)&pPager->journalHdr = (int)pPager->journalOff" (pointer_expression "*(int *)&pPager->journalHdr" * (cast_expression "(int *)&pPager->journalHdr" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pPager->journalHdr" & (field_expression "pPager->journalHdr" identifier -> field_identifier)))) = (cast_expression "(int)pPager->journalOff" ( (type_descriptor "int" primitive_type) ) (field_expression "pPager->journalOff" identifier -> field_identifier))) ;) (expression_statement "*(undefined4 *)((int)&pPager->journalHdr + 4) = uVar5;" (assignment_expression "*(undefined4 *)((int)&pPager->journalHdr + 4) = uVar5" (pointer_expression "*(undefined4 *)((int)&pPager->journalHdr + 4)" * (cast_expression "(undefined4 *)((int)&pPager->journalHdr + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pPager->journalHdr + 4)" ( (binary_expression "(int)&pPager->journalHdr + 4" (cast_expression "(int)&pPager->journalHdr" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pPager->journalHdr" & (field_expression "pPager->journalHdr" identifier -> field_identifier))) + number_literal) )))) = identifier) ;) }) (else_clause "else {\n      uVar8 = (*pPager->fd->pMethods->xDeviceCharacteristics)(pPager->fd);\n      if ((uVar8 & 0x200) == 0) {\n        zHeader[0] = aJournalMagic[0];\n        zHeader[1] = aJournalMagic[1];\n        zHeader[2] = aJournalMagic[2];\n        zHeader[3] = aJournalMagic[3];\n        zHeader[4] = aJournalMagic[4];\n        zHeader[5] = aJournalMagic[5];\n        zHeader[6] = aJournalMagic[6];\n        zHeader[7] = aJournalMagic[7];\n        uVar10 = pPager->nRec;\n        local_50 = *(int *)((int)&pPager->journalOff + 4);\n        zHeader._8_4_ =\n             uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 | uVar10 << 0x18;\n        local_54 = (int)pPager->journalOff;\n        if (local_50 != 0 || local_54 != 0) {\n          uVar10 = pPager->sectorSize;\n          lVar13 = __divdi3(local_54 + -1,local_50 + -1 + (uint)(local_54 != 0),uVar10,0);\n          lVar6 = (lVar13 + 1U & 0xffffffff) * (ulonglong)uVar10;\n          local_54 = (int)lVar6;\n          local_50 = (int)((ulonglong)lVar6 >> 0x20) + uVar10 * (int)(lVar13 + 1U >> 0x20);\n        }\n        iVar9 = (*pPager->jfd->pMethods->xRead)(pPager->jfd,aMagic,8,CONCAT44(local_50,local_54));\n        if (iVar9 == 0) {\n          if ((aMagic._0_4_ != aJournalMagic._0_4_) ||\n             (bVar7 = false, aMagic._4_4_ != aJournalMagic._4_4_)) {\n            bVar7 = true;\n          }\n          psVar11 = pPager->jfd;\n          psVar12 = psVar11->pMethods;\n          if (!bVar7) {\n            iVar9 = (*psVar12->xWrite)(psVar11,"",1,CONCAT44(local_50,local_54));\n            goto LAB_0006a303;\n          }\n        }\n        else {\nLAB_0006a303:\n          if ((iVar9 != 0) && (iVar9 != 0x20a)) goto LAB_0006a356;\n          psVar11 = pPager->jfd;\n          psVar12 = psVar11->pMethods;\n        }\n        if (pPager->fullSync != '\0') {\n          if ((uVar8 & 0x400) == 0) {\n            if (pPager->syncFlags != 0) {\n              iVar9 = (*psVar12->xSync)(psVar11,(uint)pPager->syncFlags);\n              if (iVar9 != 0) goto LAB_0006a356;\n              psVar11 = pPager->jfd;\n              psVar12 = psVar11->pMethods;\n            }\n            iVar9 = (*psVar12->xWrite)(psVar11,zHeader,0xc,pPager->journalHdr);\n            if (iVar9 != 0) goto LAB_0006a356;\n            goto LAB_0006a382;\n          }\n          iVar9 = (*psVar12->xWrite)(psVar11,zHeader,0xc,pPager->journalHdr);\n          goto joined_r0x0006a4d6;\n        }\n        iVar9 = (*psVar12->xWrite)(psVar11,zHeader,0xc,pPager->journalHdr);\n        if (iVar9 != 0) goto LAB_0006a356;\n        if ((uVar8 & 0x400) == 0) goto LAB_0006a382;\n      }\n      else {\n        if ((uVar8 & 0x400) != 0) goto LAB_0006a320;\nLAB_0006a382:\n        uVar10 = (uint)pPager->syncFlags;\n        if (pPager->syncFlags == 3) {\n          uVar10 = 0x13;\n        }\n        else if (uVar10 == 0) goto LAB_0006a3aa;\n        iVar9 = (*pPager->jfd->pMethods->xSync)(pPager->jfd,uVar10);\njoined_r0x0006a4d6:\n        if (iVar9 != 0) goto LAB_0006a356;\n      }\nLAB_0006a3aa:\n      uVar5 = *(undefined4 *)((int)&pPager->journalOff + 4);\n      *(int *)&pPager->journalHdr = (int)pPager->journalOff;\n      *(undefined4 *)((int)&pPager->journalHdr + 4) = uVar5;\n      if (((uVar8 & 0x200) == 0) && ((newHdr & 1U) != 0)) {\n        pPager->nRec = 0;\n        iVar9 = writeJournalHdr(pPager);\n        if (iVar9 != 0) goto LAB_0006a356;\n      }\n    }" else (compound_statement "{\n      uVar8 = (*pPager->fd->pMethods->xDeviceCharacteristics)(pPager->fd);\n      if ((uVar8 & 0x200) == 0) {\n        zHeader[0] = aJournalMagic[0];\n        zHeader[1] = aJournalMagic[1];\n        zHeader[2] = aJournalMagic[2];\n        zHeader[3] = aJournalMagic[3];\n        zHeader[4] = aJournalMagic[4];\n        zHeader[5] = aJournalMagic[5];\n        zHeader[6] = aJournalMagic[6];\n        zHeader[7] = aJournalMagic[7];\n        uVar10 = pPager->nRec;\n        local_50 = *(int *)((int)&pPager->journalOff + 4);\n        zHeader._8_4_ =\n             uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 | uVar10 << 0x18;\n        local_54 = (int)pPager->journalOff;\n        if (local_50 != 0 || local_54 != 0) {\n          uVar10 = pPager->sectorSize;\n          lVar13 = __divdi3(local_54 + -1,local_50 + -1 + (uint)(local_54 != 0),uVar10,0);\n          lVar6 = (lVar13 + 1U & 0xffffffff) * (ulonglong)uVar10;\n          local_54 = (int)lVar6;\n          local_50 = (int)((ulonglong)lVar6 >> 0x20) + uVar10 * (int)(lVar13 + 1U >> 0x20);\n        }\n        iVar9 = (*pPager->jfd->pMethods->xRead)(pPager->jfd,aMagic,8,CONCAT44(local_50,local_54));\n        if (iVar9 == 0) {\n          if ((aMagic._0_4_ != aJournalMagic._0_4_) ||\n             (bVar7 = false, aMagic._4_4_ != aJournalMagic._4_4_)) {\n            bVar7 = true;\n          }\n          psVar11 = pPager->jfd;\n          psVar12 = psVar11->pMethods;\n          if (!bVar7) {\n            iVar9 = (*psVar12->xWrite)(psVar11,"",1,CONCAT44(local_50,local_54));\n            goto LAB_0006a303;\n          }\n        }\n        else {\nLAB_0006a303:\n          if ((iVar9 != 0) && (iVar9 != 0x20a)) goto LAB_0006a356;\n          psVar11 = pPager->jfd;\n          psVar12 = psVar11->pMethods;\n        }\n        if (pPager->fullSync != '\0') {\n          if ((uVar8 & 0x400) == 0) {\n            if (pPager->syncFlags != 0) {\n              iVar9 = (*psVar12->xSync)(psVar11,(uint)pPager->syncFlags);\n              if (iVar9 != 0) goto LAB_0006a356;\n              psVar11 = pPager->jfd;\n              psVar12 = psVar11->pMethods;\n            }\n            iVar9 = (*psVar12->xWrite)(psVar11,zHeader,0xc,pPager->journalHdr);\n            if (iVar9 != 0) goto LAB_0006a356;\n            goto LAB_0006a382;\n          }\n          iVar9 = (*psVar12->xWrite)(psVar11,zHeader,0xc,pPager->journalHdr);\n          goto joined_r0x0006a4d6;\n        }\n        iVar9 = (*psVar12->xWrite)(psVar11,zHeader,0xc,pPager->journalHdr);\n        if (iVar9 != 0) goto LAB_0006a356;\n        if ((uVar8 & 0x400) == 0) goto LAB_0006a382;\n      }\n      else {\n        if ((uVar8 & 0x400) != 0) goto LAB_0006a320;\nLAB_0006a382:\n        uVar10 = (uint)pPager->syncFlags;\n        if (pPager->syncFlags == 3) {\n          uVar10 = 0x13;\n        }\n        else if (uVar10 == 0) goto LAB_0006a3aa;\n        iVar9 = (*pPager->jfd->pMethods->xSync)(pPager->jfd,uVar10);\njoined_r0x0006a4d6:\n        if (iVar9 != 0) goto LAB_0006a356;\n      }\nLAB_0006a3aa:\n      uVar5 = *(undefined4 *)((int)&pPager->journalOff + 4);\n      *(int *)&pPager->journalHdr = (int)pPager->journalOff;\n      *(undefined4 *)((int)&pPager->journalHdr + 4) = uVar5;\n      if (((uVar8 & 0x200) == 0) && ((newHdr & 1U) != 0)) {\n        pPager->nRec = 0;\n        iVar9 = writeJournalHdr(pPager);\n        if (iVar9 != 0) goto LAB_0006a356;\n      }\n    }" { (expression_statement "uVar8 = (*pPager->fd->pMethods->xDeviceCharacteristics)(pPager->fd);" (assignment_expression "uVar8 = (*pPager->fd->pMethods->xDeviceCharacteristics)(pPager->fd)" identifier = (call_expression "(*pPager->fd->pMethods->xDeviceCharacteristics)(pPager->fd)" (parenthesized_expression "(*pPager->fd->pMethods->xDeviceCharacteristics)" ( (pointer_expression "*pPager->fd->pMethods->xDeviceCharacteristics" * (field_expression "pPager->fd->pMethods->xDeviceCharacteristics" (field_expression "pPager->fd->pMethods" (field_expression "pPager->fd" identifier -> field_identifier) -> field_identifier) -> field_identifier)) )) (argument_list "(pPager->fd)" ( (field_expression "pPager->fd" identifier -> field_identifier) )))) ;) (if_statement "if ((uVar8 & 0x200) == 0) {\n        zHeader[0] = aJournalMagic[0];\n        zHeader[1] = aJournalMagic[1];\n        zHeader[2] = aJournalMagic[2];\n        zHeader[3] = aJournalMagic[3];\n        zHeader[4] = aJournalMagic[4];\n        zHeader[5] = aJournalMagic[5];\n        zHeader[6] = aJournalMagic[6];\n        zHeader[7] = aJournalMagic[7];\n        uVar10 = pPager->nRec;\n        local_50 = *(int *)((int)&pPager->journalOff + 4);\n        zHeader._8_4_ =\n             uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 | uVar10 << 0x18;\n        local_54 = (int)pPager->journalOff;\n        if (local_50 != 0 || local_54 != 0) {\n          uVar10 = pPager->sectorSize;\n          lVar13 = __divdi3(local_54 + -1,local_50 + -1 + (uint)(local_54 != 0),uVar10,0);\n          lVar6 = (lVar13 + 1U & 0xffffffff) * (ulonglong)uVar10;\n          local_54 = (int)lVar6;\n          local_50 = (int)((ulonglong)lVar6 >> 0x20) + uVar10 * (int)(lVar13 + 1U >> 0x20);\n        }\n        iVar9 = (*pPager->jfd->pMethods->xRead)(pPager->jfd,aMagic,8,CONCAT44(local_50,local_54));\n        if (iVar9 == 0) {\n          if ((aMagic._0_4_ != aJournalMagic._0_4_) ||\n             (bVar7 = false, aMagic._4_4_ != aJournalMagic._4_4_)) {\n            bVar7 = true;\n          }\n          psVar11 = pPager->jfd;\n          psVar12 = psVar11->pMethods;\n          if (!bVar7) {\n            iVar9 = (*psVar12->xWrite)(psVar11,"",1,CONCAT44(local_50,local_54));\n            goto LAB_0006a303;\n          }\n        }\n        else {\nLAB_0006a303:\n          if ((iVar9 != 0) && (iVar9 != 0x20a)) goto LAB_0006a356;\n          psVar11 = pPager->jfd;\n          psVar12 = psVar11->pMethods;\n        }\n        if (pPager->fullSync != '\0') {\n          if ((uVar8 & 0x400) == 0) {\n            if (pPager->syncFlags != 0) {\n              iVar9 = (*psVar12->xSync)(psVar11,(uint)pPager->syncFlags);\n              if (iVar9 != 0) goto LAB_0006a356;\n              psVar11 = pPager->jfd;\n              psVar12 = psVar11->pMethods;\n            }\n            iVar9 = (*psVar12->xWrite)(psVar11,zHeader,0xc,pPager->journalHdr);\n            if (iVar9 != 0) goto LAB_0006a356;\n            goto LAB_0006a382;\n          }\n          iVar9 = (*psVar12->xWrite)(psVar11,zHeader,0xc,pPager->journalHdr);\n          goto joined_r0x0006a4d6;\n        }\n        iVar9 = (*psVar12->xWrite)(psVar11,zHeader,0xc,pPager->journalHdr);\n        if (iVar9 != 0) goto LAB_0006a356;\n        if ((uVar8 & 0x400) == 0) goto LAB_0006a382;\n      }\n      else {\n        if ((uVar8 & 0x400) != 0) goto LAB_0006a320;\nLAB_0006a382:\n        uVar10 = (uint)pPager->syncFlags;\n        if (pPager->syncFlags == 3) {\n          uVar10 = 0x13;\n        }\n        else if (uVar10 == 0) goto LAB_0006a3aa;\n        iVar9 = (*pPager->jfd->pMethods->xSync)(pPager->jfd,uVar10);\njoined_r0x0006a4d6:\n        if (iVar9 != 0) goto LAB_0006a356;\n      }" if (parenthesized_expression "((uVar8 & 0x200) == 0)" ( (binary_expression "(uVar8 & 0x200) == 0" (parenthesized_expression "(uVar8 & 0x200)" ( (binary_expression "uVar8 & 0x200" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        zHeader[0] = aJournalMagic[0];\n        zHeader[1] = aJournalMagic[1];\n        zHeader[2] = aJournalMagic[2];\n        zHeader[3] = aJournalMagic[3];\n        zHeader[4] = aJournalMagic[4];\n        zHeader[5] = aJournalMagic[5];\n        zHeader[6] = aJournalMagic[6];\n        zHeader[7] = aJournalMagic[7];\n        uVar10 = pPager->nRec;\n        local_50 = *(int *)((int)&pPager->journalOff + 4);\n        zHeader._8_4_ =\n             uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 | uVar10 << 0x18;\n        local_54 = (int)pPager->journalOff;\n        if (local_50 != 0 || local_54 != 0) {\n          uVar10 = pPager->sectorSize;\n          lVar13 = __divdi3(local_54 + -1,local_50 + -1 + (uint)(local_54 != 0),uVar10,0);\n          lVar6 = (lVar13 + 1U & 0xffffffff) * (ulonglong)uVar10;\n          local_54 = (int)lVar6;\n          local_50 = (int)((ulonglong)lVar6 >> 0x20) + uVar10 * (int)(lVar13 + 1U >> 0x20);\n        }\n        iVar9 = (*pPager->jfd->pMethods->xRead)(pPager->jfd,aMagic,8,CONCAT44(local_50,local_54));\n        if (iVar9 == 0) {\n          if ((aMagic._0_4_ != aJournalMagic._0_4_) ||\n             (bVar7 = false, aMagic._4_4_ != aJournalMagic._4_4_)) {\n            bVar7 = true;\n          }\n          psVar11 = pPager->jfd;\n          psVar12 = psVar11->pMethods;\n          if (!bVar7) {\n            iVar9 = (*psVar12->xWrite)(psVar11,"",1,CONCAT44(local_50,local_54));\n            goto LAB_0006a303;\n          }\n        }\n        else {\nLAB_0006a303:\n          if ((iVar9 != 0) && (iVar9 != 0x20a)) goto LAB_0006a356;\n          psVar11 = pPager->jfd;\n          psVar12 = psVar11->pMethods;\n        }\n        if (pPager->fullSync != '\0') {\n          if ((uVar8 & 0x400) == 0) {\n            if (pPager->syncFlags != 0) {\n              iVar9 = (*psVar12->xSync)(psVar11,(uint)pPager->syncFlags);\n              if (iVar9 != 0) goto LAB_0006a356;\n              psVar11 = pPager->jfd;\n              psVar12 = psVar11->pMethods;\n            }\n            iVar9 = (*psVar12->xWrite)(psVar11,zHeader,0xc,pPager->journalHdr);\n            if (iVar9 != 0) goto LAB_0006a356;\n            goto LAB_0006a382;\n          }\n          iVar9 = (*psVar12->xWrite)(psVar11,zHeader,0xc,pPager->journalHdr);\n          goto joined_r0x0006a4d6;\n        }\n        iVar9 = (*psVar12->xWrite)(psVar11,zHeader,0xc,pPager->journalHdr);\n        if (iVar9 != 0) goto LAB_0006a356;\n        if ((uVar8 & 0x400) == 0) goto LAB_0006a382;\n      }" { (expression_statement "zHeader[0] = aJournalMagic[0];" (assignment_expression "zHeader[0] = aJournalMagic[0]" (subscript_expression "zHeader[0]" identifier [ number_literal ]) = (subscript_expression "aJournalMagic[0]" identifier [ number_literal ])) ;) (expression_statement "zHeader[1] = aJournalMagic[1];" (assignment_expression "zHeader[1] = aJournalMagic[1]" (subscript_expression "zHeader[1]" identifier [ number_literal ]) = (subscript_expression "aJournalMagic[1]" identifier [ number_literal ])) ;) (expression_statement "zHeader[2] = aJournalMagic[2];" (assignment_expression "zHeader[2] = aJournalMagic[2]" (subscript_expression "zHeader[2]" identifier [ number_literal ]) = (subscript_expression "aJournalMagic[2]" identifier [ number_literal ])) ;) (expression_statement "zHeader[3] = aJournalMagic[3];" (assignment_expression "zHeader[3] = aJournalMagic[3]" (subscript_expression "zHeader[3]" identifier [ number_literal ]) = (subscript_expression "aJournalMagic[3]" identifier [ number_literal ])) ;) (expression_statement "zHeader[4] = aJournalMagic[4];" (assignment_expression "zHeader[4] = aJournalMagic[4]" (subscript_expression "zHeader[4]" identifier [ number_literal ]) = (subscript_expression "aJournalMagic[4]" identifier [ number_literal ])) ;) (expression_statement "zHeader[5] = aJournalMagic[5];" (assignment_expression "zHeader[5] = aJournalMagic[5]" (subscript_expression "zHeader[5]" identifier [ number_literal ]) = (subscript_expression "aJournalMagic[5]" identifier [ number_literal ])) ;) (expression_statement "zHeader[6] = aJournalMagic[6];" (assignment_expression "zHeader[6] = aJournalMagic[6]" (subscript_expression "zHeader[6]" identifier [ number_literal ]) = (subscript_expression "aJournalMagic[6]" identifier [ number_literal ])) ;) (expression_statement "zHeader[7] = aJournalMagic[7];" (assignment_expression "zHeader[7] = aJournalMagic[7]" (subscript_expression "zHeader[7]" identifier [ number_literal ]) = (subscript_expression "aJournalMagic[7]" identifier [ number_literal ])) ;) (expression_statement "uVar10 = pPager->nRec;" (assignment_expression "uVar10 = pPager->nRec" identifier = (field_expression "pPager->nRec" identifier -> field_identifier)) ;) (expression_statement "local_50 = *(int *)((int)&pPager->journalOff + 4);" (assignment_expression "local_50 = *(int *)((int)&pPager->journalOff + 4)" identifier = (pointer_expression "*(int *)((int)&pPager->journalOff + 4)" * (cast_expression "(int *)((int)&pPager->journalOff + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pPager->journalOff + 4)" ( (binary_expression "(int)&pPager->journalOff + 4" (cast_expression "(int)&pPager->journalOff" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pPager->journalOff" & (field_expression "pPager->journalOff" identifier -> field_identifier))) + number_literal) ))))) ;) (expression_statement "zHeader._8_4_ =\n             uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 | uVar10 << 0x18;" (assignment_expression "zHeader._8_4_ =\n             uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 | uVar10 << 0x18" (field_expression "zHeader._8_4_" identifier . field_identifier) = (binary_expression "uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 | uVar10 << 0x18" (binary_expression "uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8" (binary_expression "uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8" (binary_expression "uVar10 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar10 & 0xff0000) >> 8" (parenthesized_expression "(uVar10 & 0xff0000)" ( (binary_expression "uVar10 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar10 & 0xff00) << 8" (parenthesized_expression "(uVar10 & 0xff00)" ( (binary_expression "uVar10 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar10 << 0x18" identifier << number_literal))) ;) (expression_statement "local_54 = (int)pPager->journalOff;" (assignment_expression "local_54 = (int)pPager->journalOff" identifier = (cast_expression "(int)pPager->journalOff" ( (type_descriptor "int" primitive_type) ) (field_expression "pPager->journalOff" identifier -> field_identifier))) ;) (if_statement "if (local_50 != 0 || local_54 != 0) {\n          uVar10 = pPager->sectorSize;\n          lVar13 = __divdi3(local_54 + -1,local_50 + -1 + (uint)(local_54 != 0),uVar10,0);\n          lVar6 = (lVar13 + 1U & 0xffffffff) * (ulonglong)uVar10;\n          local_54 = (int)lVar6;\n          local_50 = (int)((ulonglong)lVar6 >> 0x20) + uVar10 * (int)(lVar13 + 1U >> 0x20);\n        }" if (parenthesized_expression "(local_50 != 0 || local_54 != 0)" ( (binary_expression "local_50 != 0 || local_54 != 0" (binary_expression "local_50 != 0" identifier != number_literal) || (binary_expression "local_54 != 0" identifier != number_literal)) )) (compound_statement "{\n          uVar10 = pPager->sectorSize;\n          lVar13 = __divdi3(local_54 + -1,local_50 + -1 + (uint)(local_54 != 0),uVar10,0);\n          lVar6 = (lVar13 + 1U & 0xffffffff) * (ulonglong)uVar10;\n          local_54 = (int)lVar6;\n          local_50 = (int)((ulonglong)lVar6 >> 0x20) + uVar10 * (int)(lVar13 + 1U >> 0x20);\n        }" { (expression_statement "uVar10 = pPager->sectorSize;" (assignment_expression "uVar10 = pPager->sectorSize" identifier = (field_expression "pPager->sectorSize" identifier -> field_identifier)) ;) (expression_statement "lVar13 = __divdi3(local_54 + -1,local_50 + -1 + (uint)(local_54 != 0),uVar10,0);" (assignment_expression "lVar13 = __divdi3(local_54 + -1,local_50 + -1 + (uint)(local_54 != 0),uVar10,0)" identifier = (call_expression "__divdi3(local_54 + -1,local_50 + -1 + (uint)(local_54 != 0),uVar10,0)" identifier (argument_list "(local_54 + -1,local_50 + -1 + (uint)(local_54 != 0),uVar10,0)" ( (binary_expression "local_54 + -1" identifier + number_literal) , (binary_expression "local_50 + -1 + (uint)(local_54 != 0)" (binary_expression "local_50 + -1" identifier + number_literal) + (call_expression "(uint)(local_54 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_54 != 0)" ( (binary_expression "local_54 != 0" identifier != number_literal) )))) , identifier , number_literal )))) ;) (expression_statement "lVar6 = (lVar13 + 1U & 0xffffffff) * (ulonglong)uVar10;" (assignment_expression "lVar6 = (lVar13 + 1U & 0xffffffff) * (ulonglong)uVar10" identifier = (binary_expression "(lVar13 + 1U & 0xffffffff) * (ulonglong)uVar10" (parenthesized_expression "(lVar13 + 1U & 0xffffffff)" ( (binary_expression "lVar13 + 1U & 0xffffffff" (binary_expression "lVar13 + 1U" identifier + number_literal) & number_literal) )) * (cast_expression "(ulonglong)uVar10" ( (type_descriptor "ulonglong" type_identifier) ) identifier))) ;) (expression_statement "local_54 = (int)lVar6;" (assignment_expression "local_54 = (int)lVar6" identifier = (cast_expression "(int)lVar6" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "local_50 = (int)((ulonglong)lVar6 >> 0x20) + uVar10 * (int)(lVar13 + 1U >> 0x20);" (assignment_expression "local_50 = (int)((ulonglong)lVar6 >> 0x20) + uVar10 * (int)(lVar13 + 1U >> 0x20)" identifier = (binary_expression "(int)((ulonglong)lVar6 >> 0x20) + uVar10 * (int)(lVar13 + 1U >> 0x20)" (cast_expression "(int)((ulonglong)lVar6 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)lVar6 >> 0x20)" ( (binary_expression "(ulonglong)lVar6 >> 0x20" (cast_expression "(ulonglong)lVar6" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) + (binary_expression "uVar10 * (int)(lVar13 + 1U >> 0x20)" identifier * (cast_expression "(int)(lVar13 + 1U >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(lVar13 + 1U >> 0x20)" ( (binary_expression "lVar13 + 1U >> 0x20" (binary_expression "lVar13 + 1U" identifier + number_literal) >> number_literal) )))))) ;) })) (expression_statement "iVar9 = (*pPager->jfd->pMethods->xRead)(pPager->jfd,aMagic,8,CONCAT44(local_50,local_54));" (assignment_expression "iVar9 = (*pPager->jfd->pMethods->xRead)(pPager->jfd,aMagic,8,CONCAT44(local_50,local_54))" identifier = (call_expression "(*pPager->jfd->pMethods->xRead)(pPager->jfd,aMagic,8,CONCAT44(local_50,local_54))" (parenthesized_expression "(*pPager->jfd->pMethods->xRead)" ( (pointer_expression "*pPager->jfd->pMethods->xRead" * (field_expression "pPager->jfd->pMethods->xRead" (field_expression "pPager->jfd->pMethods" (field_expression "pPager->jfd" identifier -> field_identifier) -> field_identifier) -> field_identifier)) )) (argument_list "(pPager->jfd,aMagic,8,CONCAT44(local_50,local_54))" ( (field_expression "pPager->jfd" identifier -> field_identifier) , identifier , number_literal , (call_expression "CONCAT44(local_50,local_54)" identifier (argument_list "(local_50,local_54)" ( identifier , identifier ))) )))) ;) (if_statement "if (iVar9 == 0) {\n          if ((aMagic._0_4_ != aJournalMagic._0_4_) ||\n             (bVar7 = false, aMagic._4_4_ != aJournalMagic._4_4_)) {\n            bVar7 = true;\n          }\n          psVar11 = pPager->jfd;\n          psVar12 = psVar11->pMethods;\n          if (!bVar7) {\n            iVar9 = (*psVar12->xWrite)(psVar11,"",1,CONCAT44(local_50,local_54));\n            goto LAB_0006a303;\n          }\n        }\n        else {\nLAB_0006a303:\n          if ((iVar9 != 0) && (iVar9 != 0x20a)) goto LAB_0006a356;\n          psVar11 = pPager->jfd;\n          psVar12 = psVar11->pMethods;\n        }" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (compound_statement "{\n          if ((aMagic._0_4_ != aJournalMagic._0_4_) ||\n             (bVar7 = false, aMagic._4_4_ != aJournalMagic._4_4_)) {\n            bVar7 = true;\n          }\n          psVar11 = pPager->jfd;\n          psVar12 = psVar11->pMethods;\n          if (!bVar7) {\n            iVar9 = (*psVar12->xWrite)(psVar11,"",1,CONCAT44(local_50,local_54));\n            goto LAB_0006a303;\n          }\n        }" { (if_statement "if ((aMagic._0_4_ != aJournalMagic._0_4_) ||\n             (bVar7 = false, aMagic._4_4_ != aJournalMagic._4_4_)) {\n            bVar7 = true;\n          }" if (parenthesized_expression "((aMagic._0_4_ != aJournalMagic._0_4_) ||\n             (bVar7 = false, aMagic._4_4_ != aJournalMagic._4_4_))" ( (binary_expression "(aMagic._0_4_ != aJournalMagic._0_4_) ||\n             (bVar7 = false, aMagic._4_4_ != aJournalMagic._4_4_)" (parenthesized_expression "(aMagic._0_4_ != aJournalMagic._0_4_)" ( (binary_expression "aMagic._0_4_ != aJournalMagic._0_4_" (field_expression "aMagic._0_4_" identifier . field_identifier) != (field_expression "aJournalMagic._0_4_" identifier . field_identifier)) )) || (parenthesized_expression "(bVar7 = false, aMagic._4_4_ != aJournalMagic._4_4_)" ( (comma_expression "bVar7 = false, aMagic._4_4_ != aJournalMagic._4_4_" (assignment_expression "bVar7 = false" identifier = false) , (binary_expression "aMagic._4_4_ != aJournalMagic._4_4_" (field_expression "aMagic._4_4_" identifier . field_identifier) != (field_expression "aJournalMagic._4_4_" identifier . field_identifier))) ))) )) (compound_statement "{\n            bVar7 = true;\n          }" { (expression_statement "bVar7 = true;" (assignment_expression "bVar7 = true" identifier = true) ;) })) (expression_statement "psVar11 = pPager->jfd;" (assignment_expression "psVar11 = pPager->jfd" identifier = (field_expression "pPager->jfd" identifier -> field_identifier)) ;) (expression_statement "psVar12 = psVar11->pMethods;" (assignment_expression "psVar12 = psVar11->pMethods" identifier = (field_expression "psVar11->pMethods" identifier -> field_identifier)) ;) (if_statement "if (!bVar7) {\n            iVar9 = (*psVar12->xWrite)(psVar11,"",1,CONCAT44(local_50,local_54));\n            goto LAB_0006a303;\n          }" if (parenthesized_expression "(!bVar7)" ( (unary_expression "!bVar7" ! identifier) )) (compound_statement "{\n            iVar9 = (*psVar12->xWrite)(psVar11,"",1,CONCAT44(local_50,local_54));\n            goto LAB_0006a303;\n          }" { (expression_statement "iVar9 = (*psVar12->xWrite)(psVar11,"",1,CONCAT44(local_50,local_54));" (assignment_expression "iVar9 = (*psVar12->xWrite)(psVar11,"",1,CONCAT44(local_50,local_54))" identifier = (call_expression "(*psVar12->xWrite)(psVar11,"",1,CONCAT44(local_50,local_54))" (parenthesized_expression "(*psVar12->xWrite)" ( (pointer_expression "*psVar12->xWrite" * (field_expression "psVar12->xWrite" identifier -> field_identifier)) )) (argument_list "(psVar11,"",1,CONCAT44(local_50,local_54))" ( identifier , (string_literal """" " ") , number_literal , (call_expression "CONCAT44(local_50,local_54)" identifier (argument_list "(local_50,local_54)" ( identifier , identifier ))) )))) ;) (goto_statement "goto LAB_0006a303;" goto statement_identifier ;) })) }) (else_clause "else {\nLAB_0006a303:\n          if ((iVar9 != 0) && (iVar9 != 0x20a)) goto LAB_0006a356;\n          psVar11 = pPager->jfd;\n          psVar12 = psVar11->pMethods;\n        }" else (compound_statement "{\nLAB_0006a303:\n          if ((iVar9 != 0) && (iVar9 != 0x20a)) goto LAB_0006a356;\n          psVar11 = pPager->jfd;\n          psVar12 = psVar11->pMethods;\n        }" { (labeled_statement "LAB_0006a303:\n          if ((iVar9 != 0) && (iVar9 != 0x20a)) goto LAB_0006a356;" statement_identifier : (if_statement "if ((iVar9 != 0) && (iVar9 != 0x20a)) goto LAB_0006a356;" if (parenthesized_expression "((iVar9 != 0) && (iVar9 != 0x20a))" ( (binary_expression "(iVar9 != 0) && (iVar9 != 0x20a)" (parenthesized_expression "(iVar9 != 0)" ( (binary_expression "iVar9 != 0" identifier != number_literal) )) && (parenthesized_expression "(iVar9 != 0x20a)" ( (binary_expression "iVar9 != 0x20a" identifier != number_literal) ))) )) (goto_statement "goto LAB_0006a356;" goto statement_identifier ;))) (expression_statement "psVar11 = pPager->jfd;" (assignment_expression "psVar11 = pPager->jfd" identifier = (field_expression "pPager->jfd" identifier -> field_identifier)) ;) (expression_statement "psVar12 = psVar11->pMethods;" (assignment_expression "psVar12 = psVar11->pMethods" identifier = (field_expression "psVar11->pMethods" identifier -> field_identifier)) ;) }))) (if_statement "if (pPager->fullSync != '\0') {\n          if ((uVar8 & 0x400) == 0) {\n            if (pPager->syncFlags != 0) {\n              iVar9 = (*psVar12->xSync)(psVar11,(uint)pPager->syncFlags);\n              if (iVar9 != 0) goto LAB_0006a356;\n              psVar11 = pPager->jfd;\n              psVar12 = psVar11->pMethods;\n            }\n            iVar9 = (*psVar12->xWrite)(psVar11,zHeader,0xc,pPager->journalHdr);\n            if (iVar9 != 0) goto LAB_0006a356;\n            goto LAB_0006a382;\n          }\n          iVar9 = (*psVar12->xWrite)(psVar11,zHeader,0xc,pPager->journalHdr);\n          goto joined_r0x0006a4d6;\n        }" if (parenthesized_expression "(pPager->fullSync != '\0')" ( (binary_expression "pPager->fullSync != '\0'" (field_expression "pPager->fullSync" identifier -> field_identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          if ((uVar8 & 0x400) == 0) {\n            if (pPager->syncFlags != 0) {\n              iVar9 = (*psVar12->xSync)(psVar11,(uint)pPager->syncFlags);\n              if (iVar9 != 0) goto LAB_0006a356;\n              psVar11 = pPager->jfd;\n              psVar12 = psVar11->pMethods;\n            }\n            iVar9 = (*psVar12->xWrite)(psVar11,zHeader,0xc,pPager->journalHdr);\n            if (iVar9 != 0) goto LAB_0006a356;\n            goto LAB_0006a382;\n          }\n          iVar9 = (*psVar12->xWrite)(psVar11,zHeader,0xc,pPager->journalHdr);\n          goto joined_r0x0006a4d6;\n        }" { (if_statement "if ((uVar8 & 0x400) == 0) {\n            if (pPager->syncFlags != 0) {\n              iVar9 = (*psVar12->xSync)(psVar11,(uint)pPager->syncFlags);\n              if (iVar9 != 0) goto LAB_0006a356;\n              psVar11 = pPager->jfd;\n              psVar12 = psVar11->pMethods;\n            }\n            iVar9 = (*psVar12->xWrite)(psVar11,zHeader,0xc,pPager->journalHdr);\n            if (iVar9 != 0) goto LAB_0006a356;\n            goto LAB_0006a382;\n          }" if (parenthesized_expression "((uVar8 & 0x400) == 0)" ( (binary_expression "(uVar8 & 0x400) == 0" (parenthesized_expression "(uVar8 & 0x400)" ( (binary_expression "uVar8 & 0x400" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n            if (pPager->syncFlags != 0) {\n              iVar9 = (*psVar12->xSync)(psVar11,(uint)pPager->syncFlags);\n              if (iVar9 != 0) goto LAB_0006a356;\n              psVar11 = pPager->jfd;\n              psVar12 = psVar11->pMethods;\n            }\n            iVar9 = (*psVar12->xWrite)(psVar11,zHeader,0xc,pPager->journalHdr);\n            if (iVar9 != 0) goto LAB_0006a356;\n            goto LAB_0006a382;\n          }" { (if_statement "if (pPager->syncFlags != 0) {\n              iVar9 = (*psVar12->xSync)(psVar11,(uint)pPager->syncFlags);\n              if (iVar9 != 0) goto LAB_0006a356;\n              psVar11 = pPager->jfd;\n              psVar12 = psVar11->pMethods;\n            }" if (parenthesized_expression "(pPager->syncFlags != 0)" ( (binary_expression "pPager->syncFlags != 0" (field_expression "pPager->syncFlags" identifier -> field_identifier) != number_literal) )) (compound_statement "{\n              iVar9 = (*psVar12->xSync)(psVar11,(uint)pPager->syncFlags);\n              if (iVar9 != 0) goto LAB_0006a356;\n              psVar11 = pPager->jfd;\n              psVar12 = psVar11->pMethods;\n            }" { (expression_statement "iVar9 = (*psVar12->xSync)(psVar11,(uint)pPager->syncFlags);" (assignment_expression "iVar9 = (*psVar12->xSync)(psVar11,(uint)pPager->syncFlags)" identifier = (call_expression "(*psVar12->xSync)(psVar11,(uint)pPager->syncFlags)" (parenthesized_expression "(*psVar12->xSync)" ( (pointer_expression "*psVar12->xSync" * (field_expression "psVar12->xSync" identifier -> field_identifier)) )) (argument_list "(psVar11,(uint)pPager->syncFlags)" ( identifier , (cast_expression "(uint)pPager->syncFlags" ( (type_descriptor "uint" type_identifier) ) (field_expression "pPager->syncFlags" identifier -> field_identifier)) )))) ;) (if_statement "if (iVar9 != 0) goto LAB_0006a356;" if (parenthesized_expression "(iVar9 != 0)" ( (binary_expression "iVar9 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0006a356;" goto statement_identifier ;)) (expression_statement "psVar11 = pPager->jfd;" (assignment_expression "psVar11 = pPager->jfd" identifier = (field_expression "pPager->jfd" identifier -> field_identifier)) ;) (expression_statement "psVar12 = psVar11->pMethods;" (assignment_expression "psVar12 = psVar11->pMethods" identifier = (field_expression "psVar11->pMethods" identifier -> field_identifier)) ;) })) (expression_statement "iVar9 = (*psVar12->xWrite)(psVar11,zHeader,0xc,pPager->journalHdr);" (assignment_expression "iVar9 = (*psVar12->xWrite)(psVar11,zHeader,0xc,pPager->journalHdr)" identifier = (call_expression "(*psVar12->xWrite)(psVar11,zHeader,0xc,pPager->journalHdr)" (parenthesized_expression "(*psVar12->xWrite)" ( (pointer_expression "*psVar12->xWrite" * (field_expression "psVar12->xWrite" identifier -> field_identifier)) )) (argument_list "(psVar11,zHeader,0xc,pPager->journalHdr)" ( identifier , identifier , number_literal , (field_expression "pPager->journalHdr" identifier -> field_identifier) )))) ;) (if_statement "if (iVar9 != 0) goto LAB_0006a356;" if (parenthesized_expression "(iVar9 != 0)" ( (binary_expression "iVar9 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0006a356;" goto statement_identifier ;)) (goto_statement "goto LAB_0006a382;" goto statement_identifier ;) })) (expression_statement "iVar9 = (*psVar12->xWrite)(psVar11,zHeader,0xc,pPager->journalHdr);" (assignment_expression "iVar9 = (*psVar12->xWrite)(psVar11,zHeader,0xc,pPager->journalHdr)" identifier = (call_expression "(*psVar12->xWrite)(psVar11,zHeader,0xc,pPager->journalHdr)" (parenthesized_expression "(*psVar12->xWrite)" ( (pointer_expression "*psVar12->xWrite" * (field_expression "psVar12->xWrite" identifier -> field_identifier)) )) (argument_list "(psVar11,zHeader,0xc,pPager->journalHdr)" ( identifier , identifier , number_literal , (field_expression "pPager->journalHdr" identifier -> field_identifier) )))) ;) (goto_statement "goto joined_r0x0006a4d6;" goto statement_identifier ;) })) (expression_statement "iVar9 = (*psVar12->xWrite)(psVar11,zHeader,0xc,pPager->journalHdr);" (assignment_expression "iVar9 = (*psVar12->xWrite)(psVar11,zHeader,0xc,pPager->journalHdr)" identifier = (call_expression "(*psVar12->xWrite)(psVar11,zHeader,0xc,pPager->journalHdr)" (parenthesized_expression "(*psVar12->xWrite)" ( (pointer_expression "*psVar12->xWrite" * (field_expression "psVar12->xWrite" identifier -> field_identifier)) )) (argument_list "(psVar11,zHeader,0xc,pPager->journalHdr)" ( identifier , identifier , number_literal , (field_expression "pPager->journalHdr" identifier -> field_identifier) )))) ;) (if_statement "if (iVar9 != 0) goto LAB_0006a356;" if (parenthesized_expression "(iVar9 != 0)" ( (binary_expression "iVar9 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0006a356;" goto statement_identifier ;)) (if_statement "if ((uVar8 & 0x400) == 0) goto LAB_0006a382;" if (parenthesized_expression "((uVar8 & 0x400) == 0)" ( (binary_expression "(uVar8 & 0x400) == 0" (parenthesized_expression "(uVar8 & 0x400)" ( (binary_expression "uVar8 & 0x400" identifier & number_literal) )) == number_literal) )) (goto_statement "goto LAB_0006a382;" goto statement_identifier ;)) }) (else_clause "else {\n        if ((uVar8 & 0x400) != 0) goto LAB_0006a320;\nLAB_0006a382:\n        uVar10 = (uint)pPager->syncFlags;\n        if (pPager->syncFlags == 3) {\n          uVar10 = 0x13;\n        }\n        else if (uVar10 == 0) goto LAB_0006a3aa;\n        iVar9 = (*pPager->jfd->pMethods->xSync)(pPager->jfd,uVar10);\njoined_r0x0006a4d6:\n        if (iVar9 != 0) goto LAB_0006a356;\n      }" else (compound_statement "{\n        if ((uVar8 & 0x400) != 0) goto LAB_0006a320;\nLAB_0006a382:\n        uVar10 = (uint)pPager->syncFlags;\n        if (pPager->syncFlags == 3) {\n          uVar10 = 0x13;\n        }\n        else if (uVar10 == 0) goto LAB_0006a3aa;\n        iVar9 = (*pPager->jfd->pMethods->xSync)(pPager->jfd,uVar10);\njoined_r0x0006a4d6:\n        if (iVar9 != 0) goto LAB_0006a356;\n      }" { (if_statement "if ((uVar8 & 0x400) != 0) goto LAB_0006a320;" if (parenthesized_expression "((uVar8 & 0x400) != 0)" ( (binary_expression "(uVar8 & 0x400) != 0" (parenthesized_expression "(uVar8 & 0x400)" ( (binary_expression "uVar8 & 0x400" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_0006a320;" goto statement_identifier ;)) (labeled_statement "LAB_0006a382:\n        uVar10 = (uint)pPager->syncFlags;" statement_identifier : (expression_statement "uVar10 = (uint)pPager->syncFlags;" (assignment_expression "uVar10 = (uint)pPager->syncFlags" identifier = (cast_expression "(uint)pPager->syncFlags" ( (type_descriptor "uint" type_identifier) ) (field_expression "pPager->syncFlags" identifier -> field_identifier))) ;)) (if_statement "if (pPager->syncFlags == 3) {\n          uVar10 = 0x13;\n        }\n        else if (uVar10 == 0) goto LAB_0006a3aa;" if (parenthesized_expression "(pPager->syncFlags == 3)" ( (binary_expression "pPager->syncFlags == 3" (field_expression "pPager->syncFlags" identifier -> field_identifier) == number_literal) )) (compound_statement "{\n          uVar10 = 0x13;\n        }" { (expression_statement "uVar10 = 0x13;" (assignment_expression "uVar10 = 0x13" identifier = number_literal) ;) }) (else_clause "else if (uVar10 == 0) goto LAB_0006a3aa;" else (if_statement "if (uVar10 == 0) goto LAB_0006a3aa;" if (parenthesized_expression "(uVar10 == 0)" ( (binary_expression "uVar10 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0006a3aa;" goto statement_identifier ;)))) (expression_statement "iVar9 = (*pPager->jfd->pMethods->xSync)(pPager->jfd,uVar10);" (assignment_expression "iVar9 = (*pPager->jfd->pMethods->xSync)(pPager->jfd,uVar10)" identifier = (call_expression "(*pPager->jfd->pMethods->xSync)(pPager->jfd,uVar10)" (parenthesized_expression "(*pPager->jfd->pMethods->xSync)" ( (pointer_expression "*pPager->jfd->pMethods->xSync" * (field_expression "pPager->jfd->pMethods->xSync" (field_expression "pPager->jfd->pMethods" (field_expression "pPager->jfd" identifier -> field_identifier) -> field_identifier) -> field_identifier)) )) (argument_list "(pPager->jfd,uVar10)" ( (field_expression "pPager->jfd" identifier -> field_identifier) , identifier )))) ;) (labeled_statement "joined_r0x0006a4d6:\n        if (iVar9 != 0) goto LAB_0006a356;" statement_identifier : (if_statement "if (iVar9 != 0) goto LAB_0006a356;" if (parenthesized_expression "(iVar9 != 0)" ( (binary_expression "iVar9 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0006a356;" goto statement_identifier ;))) }))) (labeled_statement "LAB_0006a3aa:\n      uVar5 = *(undefined4 *)((int)&pPager->journalOff + 4);" statement_identifier : (expression_statement "uVar5 = *(undefined4 *)((int)&pPager->journalOff + 4);" (assignment_expression "uVar5 = *(undefined4 *)((int)&pPager->journalOff + 4)" identifier = (pointer_expression "*(undefined4 *)((int)&pPager->journalOff + 4)" * (cast_expression "(undefined4 *)((int)&pPager->journalOff + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pPager->journalOff + 4)" ( (binary_expression "(int)&pPager->journalOff + 4" (cast_expression "(int)&pPager->journalOff" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pPager->journalOff" & (field_expression "pPager->journalOff" identifier -> field_identifier))) + number_literal) ))))) ;)) (expression_statement "*(int *)&pPager->journalHdr = (int)pPager->journalOff;" (assignment_expression "*(int *)&pPager->journalHdr = (int)pPager->journalOff" (pointer_expression "*(int *)&pPager->journalHdr" * (cast_expression "(int *)&pPager->journalHdr" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pPager->journalHdr" & (field_expression "pPager->journalHdr" identifier -> field_identifier)))) = (cast_expression "(int)pPager->journalOff" ( (type_descriptor "int" primitive_type) ) (field_expression "pPager->journalOff" identifier -> field_identifier))) ;) (expression_statement "*(undefined4 *)((int)&pPager->journalHdr + 4) = uVar5;" (assignment_expression "*(undefined4 *)((int)&pPager->journalHdr + 4) = uVar5" (pointer_expression "*(undefined4 *)((int)&pPager->journalHdr + 4)" * (cast_expression "(undefined4 *)((int)&pPager->journalHdr + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pPager->journalHdr + 4)" ( (binary_expression "(int)&pPager->journalHdr + 4" (cast_expression "(int)&pPager->journalHdr" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pPager->journalHdr" & (field_expression "pPager->journalHdr" identifier -> field_identifier))) + number_literal) )))) = identifier) ;) (if_statement "if (((uVar8 & 0x200) == 0) && ((newHdr & 1U) != 0)) {\n        pPager->nRec = 0;\n        iVar9 = writeJournalHdr(pPager);\n        if (iVar9 != 0) goto LAB_0006a356;\n      }" if (parenthesized_expression "(((uVar8 & 0x200) == 0) && ((newHdr & 1U) != 0))" ( (binary_expression "((uVar8 & 0x200) == 0) && ((newHdr & 1U) != 0)" (parenthesized_expression "((uVar8 & 0x200) == 0)" ( (binary_expression "(uVar8 & 0x200) == 0" (parenthesized_expression "(uVar8 & 0x200)" ( (binary_expression "uVar8 & 0x200" identifier & number_literal) )) == number_literal) )) && (parenthesized_expression "((newHdr & 1U) != 0)" ( (binary_expression "(newHdr & 1U) != 0" (parenthesized_expression "(newHdr & 1U)" ( (binary_expression "newHdr & 1U" identifier & number_literal) )) != number_literal) ))) )) (compound_statement "{\n        pPager->nRec = 0;\n        iVar9 = writeJournalHdr(pPager);\n        if (iVar9 != 0) goto LAB_0006a356;\n      }" { (expression_statement "pPager->nRec = 0;" (assignment_expression "pPager->nRec = 0" (field_expression "pPager->nRec" identifier -> field_identifier) = number_literal) ;) (expression_statement "iVar9 = writeJournalHdr(pPager);" (assignment_expression "iVar9 = writeJournalHdr(pPager)" identifier = (call_expression "writeJournalHdr(pPager)" identifier (argument_list "(pPager)" ( identifier )))) ;) (if_statement "if (iVar9 != 0) goto LAB_0006a356;" if (parenthesized_expression "(iVar9 != 0)" ( (binary_expression "iVar9 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0006a356;" goto statement_identifier ;)) })) }))) })) (expression_statement "pPVar3 = pPager->pPCache;" (assignment_expression "pPVar3 = pPager->pPCache" identifier = (field_expression "pPager->pPCache" identifier -> field_identifier)) ;) (for_statement "for (pPVar4 = pPVar3->pDirty; pPVar4 != (PgHdr *)0x0; pPVar4 = pPVar4->pDirtyNext) {\n    pPVar4->flags = pPVar4->flags & 0xfff7;\n  }" for ( (assignment_expression "pPVar4 = pPVar3->pDirty" identifier = (field_expression "pPVar3->pDirty" identifier -> field_identifier)) ; (binary_expression "pPVar4 != (PgHdr *)0x0" identifier != (cast_expression "(PgHdr *)0x0" ( (type_descriptor "PgHdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "pPVar4 = pPVar4->pDirtyNext" identifier = (field_expression "pPVar4->pDirtyNext" identifier -> field_identifier)) ) (compound_statement "{\n    pPVar4->flags = pPVar4->flags & 0xfff7;\n  }" { (expression_statement "pPVar4->flags = pPVar4->flags & 0xfff7;" (assignment_expression "pPVar4->flags = pPVar4->flags & 0xfff7" (field_expression "pPVar4->flags" identifier -> field_identifier) = (binary_expression "pPVar4->flags & 0xfff7" (field_expression "pPVar4->flags" identifier -> field_identifier) & number_literal)) ;) })) (expression_statement "pPVar3->pSynced = pPVar3->pDirtyTail;" (assignment_expression "pPVar3->pSynced = pPVar3->pDirtyTail" (field_expression "pPVar3->pSynced" identifier -> field_identifier) = (field_expression "pPVar3->pDirtyTail" identifier -> field_identifier)) ;) (expression_statement "pPager->eState = '\x04';" (assignment_expression "pPager->eState = '\x04'" (field_expression "pPager->eState" identifier -> field_identifier) = (char_literal "'\x04'" ' escape_sequence ')) ;) (expression_statement "iVar9 = iVar2;" (assignment_expression "iVar9 = iVar2" identifier = identifier) ;) (labeled_statement "LAB_0006a356:\n  if (iVar1 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail_local();\n  }" statement_identifier : (if_statement "if (iVar1 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail_local();\n  }" if (parenthesized_expression "(iVar1 != *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "iVar1 != *(int *)(in_GS_OFFSET + 0x14)" identifier != (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail_local();\n  }" { comment (expression_statement "__stack_chk_fail_local();" (call_expression "__stack_chk_fail_local()" identifier (argument_list "()" ( ))) ;) }))) (return_statement "return iVar9;" return identifier ;) })))
(translation_unit "int __regparm3 FUN_0006a1a0(int param_1,uint param_2)\n\n{\n  int iVar1;\n  uint uVar2;\n  longlong lVar3;\n  bool bVar4;\n  char cVar5;\n  uint uVar6;\n  int iVar7;\n  int *piVar8;\n  int in_GS_OFFSET;\n  longlong lVar9;\n  int local_54;\n  int local_50;\n  int local_34;\n  int local_30;\n  int local_2c;\n  int local_28;\n  uint local_24;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x6a1ab;\n  iVar1 = *(int *)(param_1 + 0x28);\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  iVar7 = iVar1;\n  if ((iVar1 != 0) || ((*(int *)(param_1 + 0xd4) == 0 && (iVar7 = FUN_000273d0(), iVar7 != 0))))\n  goto LAB_0006a356;\n  if (*(char *)(param_1 + 7) == '\0') {\n    if ((**(int **)(param_1 + 0x40) == 0) || (*(char *)(param_1 + 5) == '\x04')) {\nLAB_0006a320:\n      *(undefined4 *)(param_1 + 0x50) = *(undefined4 *)(param_1 + 0x48);\n      *(undefined4 *)(param_1 + 0x54) = *(undefined4 *)(param_1 + 0x4c);\n    }\n    else {\n      uVar6 = (**(code **)(**(int **)(param_1 + 0x3c) + 0x30))(*(int **)(param_1 + 0x3c));\n      if ((uVar6 & 0x200) == 0) {\n        local_2c = DAT_000b4d30;\n        local_28 = DAT_000b4d34;\n        uVar2 = *(uint *)(param_1 + 0x2c);\n        local_50 = *(int *)(param_1 + 0x4c);\n        local_24 = uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18;\n        local_54 = *(int *)(param_1 + 0x48);\n        if (local_50 != 0 || local_54 != 0) {\n          uVar2 = *(uint *)(param_1 + 0x90);\n          lVar9 = FUN_000a9510(local_54 + -1,local_50 + -1 + (uint)(local_54 != 0),uVar2,0);\n          lVar3 = (lVar9 + 1U & 0xffffffff) * (ulonglong)uVar2;\n          local_54 = (int)lVar3;\n          local_50 = (int)((ulonglong)lVar3 >> 0x20) + uVar2 * (int)(lVar9 + 1U >> 0x20);\n        }\n        iVar7 = (**(code **)(**(int **)(param_1 + 0x40) + 8))\n                          (*(int **)(param_1 + 0x40),&local_34,8,local_54,local_50);\n        if (iVar7 == 0) {\n          if ((local_34 != DAT_000b4d30) || (bVar4 = false, local_30 != DAT_000b4d34)) {\n            bVar4 = true;\n          }\n          piVar8 = *(int **)(param_1 + 0x40);\n          iVar7 = *piVar8;\n          if (!bVar4) {\n            iVar7 = (**(code **)(iVar7 + 0xc))(piVar8,&DAT_000b1224,1,local_54,local_50);\n            goto LAB_0006a303;\n          }\n        }\n        else {\nLAB_0006a303:\n          if ((iVar7 != 0) && (iVar7 != 0x20a)) goto LAB_0006a356;\n          piVar8 = *(int **)(param_1 + 0x40);\n          iVar7 = *piVar8;\n        }\n        if (*(char *)(param_1 + 8) != '\0') {\n          if ((uVar6 & 0x400) == 0) {\n            if (*(char *)(param_1 + 10) != '\0') {\n              iVar7 = (**(code **)(iVar7 + 0x14))(piVar8,*(char *)(param_1 + 10));\n              if (iVar7 != 0) goto LAB_0006a356;\n              piVar8 = *(int **)(param_1 + 0x40);\n              iVar7 = *piVar8;\n            }\n            iVar7 = (**(code **)(iVar7 + 0xc))\n                              (piVar8,&local_2c,0xc,*(undefined4 *)(param_1 + 0x50),\n                               *(undefined4 *)(param_1 + 0x54));\n            if (iVar7 != 0) goto LAB_0006a356;\n            goto LAB_0006a382;\n          }\n          iVar7 = (**(code **)(iVar7 + 0xc))\n                            (piVar8,&local_2c,0xc,*(undefined4 *)(param_1 + 0x50),\n                             *(undefined4 *)(param_1 + 0x54));\n          goto joined_r0x0006a4d6;\n        }\n        iVar7 = (**(code **)(iVar7 + 0xc))\n                          (piVar8,&local_2c,0xc,*(undefined4 *)(param_1 + 0x50),\n                           *(undefined4 *)(param_1 + 0x54));\n        if (iVar7 != 0) goto LAB_0006a356;\n        if ((uVar6 & 0x400) == 0) goto LAB_0006a382;\n      }\n      else {\n        if ((uVar6 & 0x400) != 0) goto LAB_0006a320;\nLAB_0006a382:\n        cVar5 = *(char *)(param_1 + 10);\n        if (cVar5 == '\x03') {\n          cVar5 = '\x13';\n        }\n        else if (cVar5 == '\0') goto LAB_0006a3aa;\n        iVar7 = (**(code **)(**(int **)(param_1 + 0x40) + 0x14))(*(int **)(param_1 + 0x40),cVar5);\njoined_r0x0006a4d6:\n        if (iVar7 != 0) goto LAB_0006a356;\n      }\nLAB_0006a3aa:\n      *(undefined4 *)(param_1 + 0x50) = *(undefined4 *)(param_1 + 0x48);\n      *(undefined4 *)(param_1 + 0x54) = *(undefined4 *)(param_1 + 0x4c);\n      if (((uVar6 & 0x200) == 0) && ((param_2 & 1) != 0)) {\n        *(undefined4 *)(param_1 + 0x2c) = 0;\n        iVar7 = FUN_0005f0c0();\n        if (iVar7 != 0) goto LAB_0006a356;\n      }\n    }\n  }\n  piVar8 = *(int **)(param_1 + 0xd0);\n  for (iVar7 = *piVar8; iVar7 != 0; iVar7 = *(int *)(iVar7 + 0x20)) {\n    *(ushort *)(iVar7 + 0x1c) = *(ushort *)(iVar7 + 0x1c) & 0xfff7;\n  }\n  piVar8[2] = piVar8[1];\n  *(undefined1 *)(param_1 + 0x10) = 4;\n  iVar7 = iVar1;\nLAB_0006a356:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_000a9ea0();\n  }\n  return iVar7;\n}\n\n" (function_definition "int __regparm3 FUN_0006a1a0(int param_1,uint param_2)\n\n{\n  int iVar1;\n  uint uVar2;\n  longlong lVar3;\n  bool bVar4;\n  char cVar5;\n  uint uVar6;\n  int iVar7;\n  int *piVar8;\n  int in_GS_OFFSET;\n  longlong lVar9;\n  int local_54;\n  int local_50;\n  int local_34;\n  int local_30;\n  int local_2c;\n  int local_28;\n  uint local_24;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x6a1ab;\n  iVar1 = *(int *)(param_1 + 0x28);\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  iVar7 = iVar1;\n  if ((iVar1 != 0) || ((*(int *)(param_1 + 0xd4) == 0 && (iVar7 = FUN_000273d0(), iVar7 != 0))))\n  goto LAB_0006a356;\n  if (*(char *)(param_1 + 7) == '\0') {\n    if ((**(int **)(param_1 + 0x40) == 0) || (*(char *)(param_1 + 5) == '\x04')) {\nLAB_0006a320:\n      *(undefined4 *)(param_1 + 0x50) = *(undefined4 *)(param_1 + 0x48);\n      *(undefined4 *)(param_1 + 0x54) = *(undefined4 *)(param_1 + 0x4c);\n    }\n    else {\n      uVar6 = (**(code **)(**(int **)(param_1 + 0x3c) + 0x30))(*(int **)(param_1 + 0x3c));\n      if ((uVar6 & 0x200) == 0) {\n        local_2c = DAT_000b4d30;\n        local_28 = DAT_000b4d34;\n        uVar2 = *(uint *)(param_1 + 0x2c);\n        local_50 = *(int *)(param_1 + 0x4c);\n        local_24 = uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18;\n        local_54 = *(int *)(param_1 + 0x48);\n        if (local_50 != 0 || local_54 != 0) {\n          uVar2 = *(uint *)(param_1 + 0x90);\n          lVar9 = FUN_000a9510(local_54 + -1,local_50 + -1 + (uint)(local_54 != 0),uVar2,0);\n          lVar3 = (lVar9 + 1U & 0xffffffff) * (ulonglong)uVar2;\n          local_54 = (int)lVar3;\n          local_50 = (int)((ulonglong)lVar3 >> 0x20) + uVar2 * (int)(lVar9 + 1U >> 0x20);\n        }\n        iVar7 = (**(code **)(**(int **)(param_1 + 0x40) + 8))\n                          (*(int **)(param_1 + 0x40),&local_34,8,local_54,local_50);\n        if (iVar7 == 0) {\n          if ((local_34 != DAT_000b4d30) || (bVar4 = false, local_30 != DAT_000b4d34)) {\n            bVar4 = true;\n          }\n          piVar8 = *(int **)(param_1 + 0x40);\n          iVar7 = *piVar8;\n          if (!bVar4) {\n            iVar7 = (**(code **)(iVar7 + 0xc))(piVar8,&DAT_000b1224,1,local_54,local_50);\n            goto LAB_0006a303;\n          }\n        }\n        else {\nLAB_0006a303:\n          if ((iVar7 != 0) && (iVar7 != 0x20a)) goto LAB_0006a356;\n          piVar8 = *(int **)(param_1 + 0x40);\n          iVar7 = *piVar8;\n        }\n        if (*(char *)(param_1 + 8) != '\0') {\n          if ((uVar6 & 0x400) == 0) {\n            if (*(char *)(param_1 + 10) != '\0') {\n              iVar7 = (**(code **)(iVar7 + 0x14))(piVar8,*(char *)(param_1 + 10));\n              if (iVar7 != 0) goto LAB_0006a356;\n              piVar8 = *(int **)(param_1 + 0x40);\n              iVar7 = *piVar8;\n            }\n            iVar7 = (**(code **)(iVar7 + 0xc))\n                              (piVar8,&local_2c,0xc,*(undefined4 *)(param_1 + 0x50),\n                               *(undefined4 *)(param_1 + 0x54));\n            if (iVar7 != 0) goto LAB_0006a356;\n            goto LAB_0006a382;\n          }\n          iVar7 = (**(code **)(iVar7 + 0xc))\n                            (piVar8,&local_2c,0xc,*(undefined4 *)(param_1 + 0x50),\n                             *(undefined4 *)(param_1 + 0x54));\n          goto joined_r0x0006a4d6;\n        }\n        iVar7 = (**(code **)(iVar7 + 0xc))\n                          (piVar8,&local_2c,0xc,*(undefined4 *)(param_1 + 0x50),\n                           *(undefined4 *)(param_1 + 0x54));\n        if (iVar7 != 0) goto LAB_0006a356;\n        if ((uVar6 & 0x400) == 0) goto LAB_0006a382;\n      }\n      else {\n        if ((uVar6 & 0x400) != 0) goto LAB_0006a320;\nLAB_0006a382:\n        cVar5 = *(char *)(param_1 + 10);\n        if (cVar5 == '\x03') {\n          cVar5 = '\x13';\n        }\n        else if (cVar5 == '\0') goto LAB_0006a3aa;\n        iVar7 = (**(code **)(**(int **)(param_1 + 0x40) + 0x14))(*(int **)(param_1 + 0x40),cVar5);\njoined_r0x0006a4d6:\n        if (iVar7 != 0) goto LAB_0006a356;\n      }\nLAB_0006a3aa:\n      *(undefined4 *)(param_1 + 0x50) = *(undefined4 *)(param_1 + 0x48);\n      *(undefined4 *)(param_1 + 0x54) = *(undefined4 *)(param_1 + 0x4c);\n      if (((uVar6 & 0x200) == 0) && ((param_2 & 1) != 0)) {\n        *(undefined4 *)(param_1 + 0x2c) = 0;\n        iVar7 = FUN_0005f0c0();\n        if (iVar7 != 0) goto LAB_0006a356;\n      }\n    }\n  }\n  piVar8 = *(int **)(param_1 + 0xd0);\n  for (iVar7 = *piVar8; iVar7 != 0; iVar7 = *(int *)(iVar7 + 0x20)) {\n    *(ushort *)(iVar7 + 0x1c) = *(ushort *)(iVar7 + 0x1c) & 0xfff7;\n  }\n  piVar8[2] = piVar8[1];\n  *(undefined1 *)(param_1 + 0x10) = 4;\n  iVar7 = iVar1;\nLAB_0006a356:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_000a9ea0();\n  }\n  return iVar7;\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "FUN_0006a1a0(int param_1,uint param_2)" identifier (parameter_list "(int param_1,uint param_2)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "uint param_2" type_identifier identifier) ))) (compound_statement "{\n  int iVar1;\n  uint uVar2;\n  longlong lVar3;\n  bool bVar4;\n  char cVar5;\n  uint uVar6;\n  int iVar7;\n  int *piVar8;\n  int in_GS_OFFSET;\n  longlong lVar9;\n  int local_54;\n  int local_50;\n  int local_34;\n  int local_30;\n  int local_2c;\n  int local_28;\n  uint local_24;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x6a1ab;\n  iVar1 = *(int *)(param_1 + 0x28);\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  iVar7 = iVar1;\n  if ((iVar1 != 0) || ((*(int *)(param_1 + 0xd4) == 0 && (iVar7 = FUN_000273d0(), iVar7 != 0))))\n  goto LAB_0006a356;\n  if (*(char *)(param_1 + 7) == '\0') {\n    if ((**(int **)(param_1 + 0x40) == 0) || (*(char *)(param_1 + 5) == '\x04')) {\nLAB_0006a320:\n      *(undefined4 *)(param_1 + 0x50) = *(undefined4 *)(param_1 + 0x48);\n      *(undefined4 *)(param_1 + 0x54) = *(undefined4 *)(param_1 + 0x4c);\n    }\n    else {\n      uVar6 = (**(code **)(**(int **)(param_1 + 0x3c) + 0x30))(*(int **)(param_1 + 0x3c));\n      if ((uVar6 & 0x200) == 0) {\n        local_2c = DAT_000b4d30;\n        local_28 = DAT_000b4d34;\n        uVar2 = *(uint *)(param_1 + 0x2c);\n        local_50 = *(int *)(param_1 + 0x4c);\n        local_24 = uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18;\n        local_54 = *(int *)(param_1 + 0x48);\n        if (local_50 != 0 || local_54 != 0) {\n          uVar2 = *(uint *)(param_1 + 0x90);\n          lVar9 = FUN_000a9510(local_54 + -1,local_50 + -1 + (uint)(local_54 != 0),uVar2,0);\n          lVar3 = (lVar9 + 1U & 0xffffffff) * (ulonglong)uVar2;\n          local_54 = (int)lVar3;\n          local_50 = (int)((ulonglong)lVar3 >> 0x20) + uVar2 * (int)(lVar9 + 1U >> 0x20);\n        }\n        iVar7 = (**(code **)(**(int **)(param_1 + 0x40) + 8))\n                          (*(int **)(param_1 + 0x40),&local_34,8,local_54,local_50);\n        if (iVar7 == 0) {\n          if ((local_34 != DAT_000b4d30) || (bVar4 = false, local_30 != DAT_000b4d34)) {\n            bVar4 = true;\n          }\n          piVar8 = *(int **)(param_1 + 0x40);\n          iVar7 = *piVar8;\n          if (!bVar4) {\n            iVar7 = (**(code **)(iVar7 + 0xc))(piVar8,&DAT_000b1224,1,local_54,local_50);\n            goto LAB_0006a303;\n          }\n        }\n        else {\nLAB_0006a303:\n          if ((iVar7 != 0) && (iVar7 != 0x20a)) goto LAB_0006a356;\n          piVar8 = *(int **)(param_1 + 0x40);\n          iVar7 = *piVar8;\n        }\n        if (*(char *)(param_1 + 8) != '\0') {\n          if ((uVar6 & 0x400) == 0) {\n            if (*(char *)(param_1 + 10) != '\0') {\n              iVar7 = (**(code **)(iVar7 + 0x14))(piVar8,*(char *)(param_1 + 10));\n              if (iVar7 != 0) goto LAB_0006a356;\n              piVar8 = *(int **)(param_1 + 0x40);\n              iVar7 = *piVar8;\n            }\n            iVar7 = (**(code **)(iVar7 + 0xc))\n                              (piVar8,&local_2c,0xc,*(undefined4 *)(param_1 + 0x50),\n                               *(undefined4 *)(param_1 + 0x54));\n            if (iVar7 != 0) goto LAB_0006a356;\n            goto LAB_0006a382;\n          }\n          iVar7 = (**(code **)(iVar7 + 0xc))\n                            (piVar8,&local_2c,0xc,*(undefined4 *)(param_1 + 0x50),\n                             *(undefined4 *)(param_1 + 0x54));\n          goto joined_r0x0006a4d6;\n        }\n        iVar7 = (**(code **)(iVar7 + 0xc))\n                          (piVar8,&local_2c,0xc,*(undefined4 *)(param_1 + 0x50),\n                           *(undefined4 *)(param_1 + 0x54));\n        if (iVar7 != 0) goto LAB_0006a356;\n        if ((uVar6 & 0x400) == 0) goto LAB_0006a382;\n      }\n      else {\n        if ((uVar6 & 0x400) != 0) goto LAB_0006a320;\nLAB_0006a382:\n        cVar5 = *(char *)(param_1 + 10);\n        if (cVar5 == '\x03') {\n          cVar5 = '\x13';\n        }\n        else if (cVar5 == '\0') goto LAB_0006a3aa;\n        iVar7 = (**(code **)(**(int **)(param_1 + 0x40) + 0x14))(*(int **)(param_1 + 0x40),cVar5);\njoined_r0x0006a4d6:\n        if (iVar7 != 0) goto LAB_0006a356;\n      }\nLAB_0006a3aa:\n      *(undefined4 *)(param_1 + 0x50) = *(undefined4 *)(param_1 + 0x48);\n      *(undefined4 *)(param_1 + 0x54) = *(undefined4 *)(param_1 + 0x4c);\n      if (((uVar6 & 0x200) == 0) && ((param_2 & 1) != 0)) {\n        *(undefined4 *)(param_1 + 0x2c) = 0;\n        iVar7 = FUN_0005f0c0();\n        if (iVar7 != 0) goto LAB_0006a356;\n      }\n    }\n  }\n  piVar8 = *(int **)(param_1 + 0xd0);\n  for (iVar7 = *piVar8; iVar7 != 0; iVar7 = *(int *)(iVar7 + 0x20)) {\n    *(ushort *)(iVar7 + 0x1c) = *(ushort *)(iVar7 + 0x1c) & 0xfff7;\n  }\n  piVar8[2] = piVar8[1];\n  *(undefined1 *)(param_1 + 0x10) = 4;\n  iVar7 = iVar1;\nLAB_0006a356:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_000a9ea0();\n  }\n  return iVar7;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "longlong lVar3;" type_identifier identifier ;) (declaration "bool bVar4;" primitive_type identifier ;) (declaration "char cVar5;" primitive_type identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "int *piVar8;" primitive_type (pointer_declarator "*piVar8" * identifier) ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "longlong lVar9;" type_identifier identifier ;) (declaration "int local_54;" primitive_type identifier ;) (declaration "int local_50;" primitive_type identifier ;) (declaration "int local_34;" primitive_type identifier ;) (declaration "int local_30;" primitive_type identifier ;) (declaration "int local_2c;" primitive_type identifier ;) (declaration "int local_28;" primitive_type identifier ;) (declaration "uint local_24;" type_identifier identifier ;) (declaration "int local_20;" primitive_type identifier ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "uStack_14 = 0x6a1ab;" (assignment_expression "uStack_14 = 0x6a1ab" identifier = number_literal) ;) (expression_statement "iVar1 = *(int *)(param_1 + 0x28);" (assignment_expression "iVar1 = *(int *)(param_1 + 0x28)" identifier = (pointer_expression "*(int *)(param_1 + 0x28)" * (cast_expression "(int *)(param_1 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "local_20 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_20 = *(int *)(in_GS_OFFSET + 0x14)" identifier = (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) ;) (expression_statement "iVar7 = iVar1;" (assignment_expression "iVar7 = iVar1" identifier = identifier) ;) (if_statement "if ((iVar1 != 0) || ((*(int *)(param_1 + 0xd4) == 0 && (iVar7 = FUN_000273d0(), iVar7 != 0))))\n  goto LAB_0006a356;" if (parenthesized_expression "((iVar1 != 0) || ((*(int *)(param_1 + 0xd4) == 0 && (iVar7 = FUN_000273d0(), iVar7 != 0))))" ( (binary_expression "(iVar1 != 0) || ((*(int *)(param_1 + 0xd4) == 0 && (iVar7 = FUN_000273d0(), iVar7 != 0)))" (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) || (parenthesized_expression "((*(int *)(param_1 + 0xd4) == 0 && (iVar7 = FUN_000273d0(), iVar7 != 0)))" ( (parenthesized_expression "(*(int *)(param_1 + 0xd4) == 0 && (iVar7 = FUN_000273d0(), iVar7 != 0))" ( (binary_expression "*(int *)(param_1 + 0xd4) == 0 && (iVar7 = FUN_000273d0(), iVar7 != 0)" (binary_expression "*(int *)(param_1 + 0xd4) == 0" (pointer_expression "*(int *)(param_1 + 0xd4)" * (cast_expression "(int *)(param_1 + 0xd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xd4)" ( (binary_expression "param_1 + 0xd4" identifier + number_literal) )))) == number_literal) && (parenthesized_expression "(iVar7 = FUN_000273d0(), iVar7 != 0)" ( (comma_expression "iVar7 = FUN_000273d0(), iVar7 != 0" (assignment_expression "iVar7 = FUN_000273d0()" identifier = (call_expression "FUN_000273d0()" identifier (argument_list "()" ( )))) , (binary_expression "iVar7 != 0" identifier != number_literal)) ))) )) ))) )) (goto_statement "goto LAB_0006a356;" goto statement_identifier ;)) (if_statement "if (*(char *)(param_1 + 7) == '\0') {\n    if ((**(int **)(param_1 + 0x40) == 0) || (*(char *)(param_1 + 5) == '\x04')) {\nLAB_0006a320:\n      *(undefined4 *)(param_1 + 0x50) = *(undefined4 *)(param_1 + 0x48);\n      *(undefined4 *)(param_1 + 0x54) = *(undefined4 *)(param_1 + 0x4c);\n    }\n    else {\n      uVar6 = (**(code **)(**(int **)(param_1 + 0x3c) + 0x30))(*(int **)(param_1 + 0x3c));\n      if ((uVar6 & 0x200) == 0) {\n        local_2c = DAT_000b4d30;\n        local_28 = DAT_000b4d34;\n        uVar2 = *(uint *)(param_1 + 0x2c);\n        local_50 = *(int *)(param_1 + 0x4c);\n        local_24 = uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18;\n        local_54 = *(int *)(param_1 + 0x48);\n        if (local_50 != 0 || local_54 != 0) {\n          uVar2 = *(uint *)(param_1 + 0x90);\n          lVar9 = FUN_000a9510(local_54 + -1,local_50 + -1 + (uint)(local_54 != 0),uVar2,0);\n          lVar3 = (lVar9 + 1U & 0xffffffff) * (ulonglong)uVar2;\n          local_54 = (int)lVar3;\n          local_50 = (int)((ulonglong)lVar3 >> 0x20) + uVar2 * (int)(lVar9 + 1U >> 0x20);\n        }\n        iVar7 = (**(code **)(**(int **)(param_1 + 0x40) + 8))\n                          (*(int **)(param_1 + 0x40),&local_34,8,local_54,local_50);\n        if (iVar7 == 0) {\n          if ((local_34 != DAT_000b4d30) || (bVar4 = false, local_30 != DAT_000b4d34)) {\n            bVar4 = true;\n          }\n          piVar8 = *(int **)(param_1 + 0x40);\n          iVar7 = *piVar8;\n          if (!bVar4) {\n            iVar7 = (**(code **)(iVar7 + 0xc))(piVar8,&DAT_000b1224,1,local_54,local_50);\n            goto LAB_0006a303;\n          }\n        }\n        else {\nLAB_0006a303:\n          if ((iVar7 != 0) && (iVar7 != 0x20a)) goto LAB_0006a356;\n          piVar8 = *(int **)(param_1 + 0x40);\n          iVar7 = *piVar8;\n        }\n        if (*(char *)(param_1 + 8) != '\0') {\n          if ((uVar6 & 0x400) == 0) {\n            if (*(char *)(param_1 + 10) != '\0') {\n              iVar7 = (**(code **)(iVar7 + 0x14))(piVar8,*(char *)(param_1 + 10));\n              if (iVar7 != 0) goto LAB_0006a356;\n              piVar8 = *(int **)(param_1 + 0x40);\n              iVar7 = *piVar8;\n            }\n            iVar7 = (**(code **)(iVar7 + 0xc))\n                              (piVar8,&local_2c,0xc,*(undefined4 *)(param_1 + 0x50),\n                               *(undefined4 *)(param_1 + 0x54));\n            if (iVar7 != 0) goto LAB_0006a356;\n            goto LAB_0006a382;\n          }\n          iVar7 = (**(code **)(iVar7 + 0xc))\n                            (piVar8,&local_2c,0xc,*(undefined4 *)(param_1 + 0x50),\n                             *(undefined4 *)(param_1 + 0x54));\n          goto joined_r0x0006a4d6;\n        }\n        iVar7 = (**(code **)(iVar7 + 0xc))\n                          (piVar8,&local_2c,0xc,*(undefined4 *)(param_1 + 0x50),\n                           *(undefined4 *)(param_1 + 0x54));\n        if (iVar7 != 0) goto LAB_0006a356;\n        if ((uVar6 & 0x400) == 0) goto LAB_0006a382;\n      }\n      else {\n        if ((uVar6 & 0x400) != 0) goto LAB_0006a320;\nLAB_0006a382:\n        cVar5 = *(char *)(param_1 + 10);\n        if (cVar5 == '\x03') {\n          cVar5 = '\x13';\n        }\n        else if (cVar5 == '\0') goto LAB_0006a3aa;\n        iVar7 = (**(code **)(**(int **)(param_1 + 0x40) + 0x14))(*(int **)(param_1 + 0x40),cVar5);\njoined_r0x0006a4d6:\n        if (iVar7 != 0) goto LAB_0006a356;\n      }\nLAB_0006a3aa:\n      *(undefined4 *)(param_1 + 0x50) = *(undefined4 *)(param_1 + 0x48);\n      *(undefined4 *)(param_1 + 0x54) = *(undefined4 *)(param_1 + 0x4c);\n      if (((uVar6 & 0x200) == 0) && ((param_2 & 1) != 0)) {\n        *(undefined4 *)(param_1 + 0x2c) = 0;\n        iVar7 = FUN_0005f0c0();\n        if (iVar7 != 0) goto LAB_0006a356;\n      }\n    }\n  }" if (parenthesized_expression "(*(char *)(param_1 + 7) == '\0')" ( (binary_expression "*(char *)(param_1 + 7) == '\0'" (pointer_expression "*(char *)(param_1 + 7)" * (cast_expression "(char *)(param_1 + 7)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 7)" ( (binary_expression "param_1 + 7" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    if ((**(int **)(param_1 + 0x40) == 0) || (*(char *)(param_1 + 5) == '\x04')) {\nLAB_0006a320:\n      *(undefined4 *)(param_1 + 0x50) = *(undefined4 *)(param_1 + 0x48);\n      *(undefined4 *)(param_1 + 0x54) = *(undefined4 *)(param_1 + 0x4c);\n    }\n    else {\n      uVar6 = (**(code **)(**(int **)(param_1 + 0x3c) + 0x30))(*(int **)(param_1 + 0x3c));\n      if ((uVar6 & 0x200) == 0) {\n        local_2c = DAT_000b4d30;\n        local_28 = DAT_000b4d34;\n        uVar2 = *(uint *)(param_1 + 0x2c);\n        local_50 = *(int *)(param_1 + 0x4c);\n        local_24 = uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18;\n        local_54 = *(int *)(param_1 + 0x48);\n        if (local_50 != 0 || local_54 != 0) {\n          uVar2 = *(uint *)(param_1 + 0x90);\n          lVar9 = FUN_000a9510(local_54 + -1,local_50 + -1 + (uint)(local_54 != 0),uVar2,0);\n          lVar3 = (lVar9 + 1U & 0xffffffff) * (ulonglong)uVar2;\n          local_54 = (int)lVar3;\n          local_50 = (int)((ulonglong)lVar3 >> 0x20) + uVar2 * (int)(lVar9 + 1U >> 0x20);\n        }\n        iVar7 = (**(code **)(**(int **)(param_1 + 0x40) + 8))\n                          (*(int **)(param_1 + 0x40),&local_34,8,local_54,local_50);\n        if (iVar7 == 0) {\n          if ((local_34 != DAT_000b4d30) || (bVar4 = false, local_30 != DAT_000b4d34)) {\n            bVar4 = true;\n          }\n          piVar8 = *(int **)(param_1 + 0x40);\n          iVar7 = *piVar8;\n          if (!bVar4) {\n            iVar7 = (**(code **)(iVar7 + 0xc))(piVar8,&DAT_000b1224,1,local_54,local_50);\n            goto LAB_0006a303;\n          }\n        }\n        else {\nLAB_0006a303:\n          if ((iVar7 != 0) && (iVar7 != 0x20a)) goto LAB_0006a356;\n          piVar8 = *(int **)(param_1 + 0x40);\n          iVar7 = *piVar8;\n        }\n        if (*(char *)(param_1 + 8) != '\0') {\n          if ((uVar6 & 0x400) == 0) {\n            if (*(char *)(param_1 + 10) != '\0') {\n              iVar7 = (**(code **)(iVar7 + 0x14))(piVar8,*(char *)(param_1 + 10));\n              if (iVar7 != 0) goto LAB_0006a356;\n              piVar8 = *(int **)(param_1 + 0x40);\n              iVar7 = *piVar8;\n            }\n            iVar7 = (**(code **)(iVar7 + 0xc))\n                              (piVar8,&local_2c,0xc,*(undefined4 *)(param_1 + 0x50),\n                               *(undefined4 *)(param_1 + 0x54));\n            if (iVar7 != 0) goto LAB_0006a356;\n            goto LAB_0006a382;\n          }\n          iVar7 = (**(code **)(iVar7 + 0xc))\n                            (piVar8,&local_2c,0xc,*(undefined4 *)(param_1 + 0x50),\n                             *(undefined4 *)(param_1 + 0x54));\n          goto joined_r0x0006a4d6;\n        }\n        iVar7 = (**(code **)(iVar7 + 0xc))\n                          (piVar8,&local_2c,0xc,*(undefined4 *)(param_1 + 0x50),\n                           *(undefined4 *)(param_1 + 0x54));\n        if (iVar7 != 0) goto LAB_0006a356;\n        if ((uVar6 & 0x400) == 0) goto LAB_0006a382;\n      }\n      else {\n        if ((uVar6 & 0x400) != 0) goto LAB_0006a320;\nLAB_0006a382:\n        cVar5 = *(char *)(param_1 + 10);\n        if (cVar5 == '\x03') {\n          cVar5 = '\x13';\n        }\n        else if (cVar5 == '\0') goto LAB_0006a3aa;\n        iVar7 = (**(code **)(**(int **)(param_1 + 0x40) + 0x14))(*(int **)(param_1 + 0x40),cVar5);\njoined_r0x0006a4d6:\n        if (iVar7 != 0) goto LAB_0006a356;\n      }\nLAB_0006a3aa:\n      *(undefined4 *)(param_1 + 0x50) = *(undefined4 *)(param_1 + 0x48);\n      *(undefined4 *)(param_1 + 0x54) = *(undefined4 *)(param_1 + 0x4c);\n      if (((uVar6 & 0x200) == 0) && ((param_2 & 1) != 0)) {\n        *(undefined4 *)(param_1 + 0x2c) = 0;\n        iVar7 = FUN_0005f0c0();\n        if (iVar7 != 0) goto LAB_0006a356;\n      }\n    }\n  }" { (if_statement "if ((**(int **)(param_1 + 0x40) == 0) || (*(char *)(param_1 + 5) == '\x04')) {\nLAB_0006a320:\n      *(undefined4 *)(param_1 + 0x50) = *(undefined4 *)(param_1 + 0x48);\n      *(undefined4 *)(param_1 + 0x54) = *(undefined4 *)(param_1 + 0x4c);\n    }\n    else {\n      uVar6 = (**(code **)(**(int **)(param_1 + 0x3c) + 0x30))(*(int **)(param_1 + 0x3c));\n      if ((uVar6 & 0x200) == 0) {\n        local_2c = DAT_000b4d30;\n        local_28 = DAT_000b4d34;\n        uVar2 = *(uint *)(param_1 + 0x2c);\n        local_50 = *(int *)(param_1 + 0x4c);\n        local_24 = uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18;\n        local_54 = *(int *)(param_1 + 0x48);\n        if (local_50 != 0 || local_54 != 0) {\n          uVar2 = *(uint *)(param_1 + 0x90);\n          lVar9 = FUN_000a9510(local_54 + -1,local_50 + -1 + (uint)(local_54 != 0),uVar2,0);\n          lVar3 = (lVar9 + 1U & 0xffffffff) * (ulonglong)uVar2;\n          local_54 = (int)lVar3;\n          local_50 = (int)((ulonglong)lVar3 >> 0x20) + uVar2 * (int)(lVar9 + 1U >> 0x20);\n        }\n        iVar7 = (**(code **)(**(int **)(param_1 + 0x40) + 8))\n                          (*(int **)(param_1 + 0x40),&local_34,8,local_54,local_50);\n        if (iVar7 == 0) {\n          if ((local_34 != DAT_000b4d30) || (bVar4 = false, local_30 != DAT_000b4d34)) {\n            bVar4 = true;\n          }\n          piVar8 = *(int **)(param_1 + 0x40);\n          iVar7 = *piVar8;\n          if (!bVar4) {\n            iVar7 = (**(code **)(iVar7 + 0xc))(piVar8,&DAT_000b1224,1,local_54,local_50);\n            goto LAB_0006a303;\n          }\n        }\n        else {\nLAB_0006a303:\n          if ((iVar7 != 0) && (iVar7 != 0x20a)) goto LAB_0006a356;\n          piVar8 = *(int **)(param_1 + 0x40);\n          iVar7 = *piVar8;\n        }\n        if (*(char *)(param_1 + 8) != '\0') {\n          if ((uVar6 & 0x400) == 0) {\n            if (*(char *)(param_1 + 10) != '\0') {\n              iVar7 = (**(code **)(iVar7 + 0x14))(piVar8,*(char *)(param_1 + 10));\n              if (iVar7 != 0) goto LAB_0006a356;\n              piVar8 = *(int **)(param_1 + 0x40);\n              iVar7 = *piVar8;\n            }\n            iVar7 = (**(code **)(iVar7 + 0xc))\n                              (piVar8,&local_2c,0xc,*(undefined4 *)(param_1 + 0x50),\n                               *(undefined4 *)(param_1 + 0x54));\n            if (iVar7 != 0) goto LAB_0006a356;\n            goto LAB_0006a382;\n          }\n          iVar7 = (**(code **)(iVar7 + 0xc))\n                            (piVar8,&local_2c,0xc,*(undefined4 *)(param_1 + 0x50),\n                             *(undefined4 *)(param_1 + 0x54));\n          goto joined_r0x0006a4d6;\n        }\n        iVar7 = (**(code **)(iVar7 + 0xc))\n                          (piVar8,&local_2c,0xc,*(undefined4 *)(param_1 + 0x50),\n                           *(undefined4 *)(param_1 + 0x54));\n        if (iVar7 != 0) goto LAB_0006a356;\n        if ((uVar6 & 0x400) == 0) goto LAB_0006a382;\n      }\n      else {\n        if ((uVar6 & 0x400) != 0) goto LAB_0006a320;\nLAB_0006a382:\n        cVar5 = *(char *)(param_1 + 10);\n        if (cVar5 == '\x03') {\n          cVar5 = '\x13';\n        }\n        else if (cVar5 == '\0') goto LAB_0006a3aa;\n        iVar7 = (**(code **)(**(int **)(param_1 + 0x40) + 0x14))(*(int **)(param_1 + 0x40),cVar5);\njoined_r0x0006a4d6:\n        if (iVar7 != 0) goto LAB_0006a356;\n      }\nLAB_0006a3aa:\n      *(undefined4 *)(param_1 + 0x50) = *(undefined4 *)(param_1 + 0x48);\n      *(undefined4 *)(param_1 + 0x54) = *(undefined4 *)(param_1 + 0x4c);\n      if (((uVar6 & 0x200) == 0) && ((param_2 & 1) != 0)) {\n        *(undefined4 *)(param_1 + 0x2c) = 0;\n        iVar7 = FUN_0005f0c0();\n        if (iVar7 != 0) goto LAB_0006a356;\n      }\n    }" if (parenthesized_expression "((**(int **)(param_1 + 0x40) == 0) || (*(char *)(param_1 + 5) == '\x04'))" ( (binary_expression "(**(int **)(param_1 + 0x40) == 0) || (*(char *)(param_1 + 5) == '\x04')" (parenthesized_expression "(**(int **)(param_1 + 0x40) == 0)" ( (binary_expression "**(int **)(param_1 + 0x40) == 0" (pointer_expression "**(int **)(param_1 + 0x40)" * (pointer_expression "*(int **)(param_1 + 0x40)" * (cast_expression "(int **)(param_1 + 0x40)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x40)" ( (binary_expression "param_1 + 0x40" identifier + number_literal) ))))) == number_literal) )) || (parenthesized_expression "(*(char *)(param_1 + 5) == '\x04')" ( (binary_expression "*(char *)(param_1 + 5) == '\x04'" (pointer_expression "*(char *)(param_1 + 5)" * (cast_expression "(char *)(param_1 + 5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 5)" ( (binary_expression "param_1 + 5" identifier + number_literal) )))) == (char_literal "'\x04'" ' escape_sequence ')) ))) )) (compound_statement "{\nLAB_0006a320:\n      *(undefined4 *)(param_1 + 0x50) = *(undefined4 *)(param_1 + 0x48);\n      *(undefined4 *)(param_1 + 0x54) = *(undefined4 *)(param_1 + 0x4c);\n    }" { (labeled_statement "LAB_0006a320:\n      *(undefined4 *)(param_1 + 0x50) = *(undefined4 *)(param_1 + 0x48);" statement_identifier : (expression_statement "*(undefined4 *)(param_1 + 0x50) = *(undefined4 *)(param_1 + 0x48);" (assignment_expression "*(undefined4 *)(param_1 + 0x50) = *(undefined4 *)(param_1 + 0x48)" (pointer_expression "*(undefined4 *)(param_1 + 0x50)" * (cast_expression "(undefined4 *)(param_1 + 0x50)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x50)" ( (binary_expression "param_1 + 0x50" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(param_1 + 0x48)" * (cast_expression "(undefined4 *)(param_1 + 0x48)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x48)" ( (binary_expression "param_1 + 0x48" identifier + number_literal) ))))) ;)) (expression_statement "*(undefined4 *)(param_1 + 0x54) = *(undefined4 *)(param_1 + 0x4c);" (assignment_expression "*(undefined4 *)(param_1 + 0x54) = *(undefined4 *)(param_1 + 0x4c)" (pointer_expression "*(undefined4 *)(param_1 + 0x54)" * (cast_expression "(undefined4 *)(param_1 + 0x54)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x54)" ( (binary_expression "param_1 + 0x54" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(param_1 + 0x4c)" * (cast_expression "(undefined4 *)(param_1 + 0x4c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x4c)" ( (binary_expression "param_1 + 0x4c" identifier + number_literal) ))))) ;) }) (else_clause "else {\n      uVar6 = (**(code **)(**(int **)(param_1 + 0x3c) + 0x30))(*(int **)(param_1 + 0x3c));\n      if ((uVar6 & 0x200) == 0) {\n        local_2c = DAT_000b4d30;\n        local_28 = DAT_000b4d34;\n        uVar2 = *(uint *)(param_1 + 0x2c);\n        local_50 = *(int *)(param_1 + 0x4c);\n        local_24 = uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18;\n        local_54 = *(int *)(param_1 + 0x48);\n        if (local_50 != 0 || local_54 != 0) {\n          uVar2 = *(uint *)(param_1 + 0x90);\n          lVar9 = FUN_000a9510(local_54 + -1,local_50 + -1 + (uint)(local_54 != 0),uVar2,0);\n          lVar3 = (lVar9 + 1U & 0xffffffff) * (ulonglong)uVar2;\n          local_54 = (int)lVar3;\n          local_50 = (int)((ulonglong)lVar3 >> 0x20) + uVar2 * (int)(lVar9 + 1U >> 0x20);\n        }\n        iVar7 = (**(code **)(**(int **)(param_1 + 0x40) + 8))\n                          (*(int **)(param_1 + 0x40),&local_34,8,local_54,local_50);\n        if (iVar7 == 0) {\n          if ((local_34 != DAT_000b4d30) || (bVar4 = false, local_30 != DAT_000b4d34)) {\n            bVar4 = true;\n          }\n          piVar8 = *(int **)(param_1 + 0x40);\n          iVar7 = *piVar8;\n          if (!bVar4) {\n            iVar7 = (**(code **)(iVar7 + 0xc))(piVar8,&DAT_000b1224,1,local_54,local_50);\n            goto LAB_0006a303;\n          }\n        }\n        else {\nLAB_0006a303:\n          if ((iVar7 != 0) && (iVar7 != 0x20a)) goto LAB_0006a356;\n          piVar8 = *(int **)(param_1 + 0x40);\n          iVar7 = *piVar8;\n        }\n        if (*(char *)(param_1 + 8) != '\0') {\n          if ((uVar6 & 0x400) == 0) {\n            if (*(char *)(param_1 + 10) != '\0') {\n              iVar7 = (**(code **)(iVar7 + 0x14))(piVar8,*(char *)(param_1 + 10));\n              if (iVar7 != 0) goto LAB_0006a356;\n              piVar8 = *(int **)(param_1 + 0x40);\n              iVar7 = *piVar8;\n            }\n            iVar7 = (**(code **)(iVar7 + 0xc))\n                              (piVar8,&local_2c,0xc,*(undefined4 *)(param_1 + 0x50),\n                               *(undefined4 *)(param_1 + 0x54));\n            if (iVar7 != 0) goto LAB_0006a356;\n            goto LAB_0006a382;\n          }\n          iVar7 = (**(code **)(iVar7 + 0xc))\n                            (piVar8,&local_2c,0xc,*(undefined4 *)(param_1 + 0x50),\n                             *(undefined4 *)(param_1 + 0x54));\n          goto joined_r0x0006a4d6;\n        }\n        iVar7 = (**(code **)(iVar7 + 0xc))\n                          (piVar8,&local_2c,0xc,*(undefined4 *)(param_1 + 0x50),\n                           *(undefined4 *)(param_1 + 0x54));\n        if (iVar7 != 0) goto LAB_0006a356;\n        if ((uVar6 & 0x400) == 0) goto LAB_0006a382;\n      }\n      else {\n        if ((uVar6 & 0x400) != 0) goto LAB_0006a320;\nLAB_0006a382:\n        cVar5 = *(char *)(param_1 + 10);\n        if (cVar5 == '\x03') {\n          cVar5 = '\x13';\n        }\n        else if (cVar5 == '\0') goto LAB_0006a3aa;\n        iVar7 = (**(code **)(**(int **)(param_1 + 0x40) + 0x14))(*(int **)(param_1 + 0x40),cVar5);\njoined_r0x0006a4d6:\n        if (iVar7 != 0) goto LAB_0006a356;\n      }\nLAB_0006a3aa:\n      *(undefined4 *)(param_1 + 0x50) = *(undefined4 *)(param_1 + 0x48);\n      *(undefined4 *)(param_1 + 0x54) = *(undefined4 *)(param_1 + 0x4c);\n      if (((uVar6 & 0x200) == 0) && ((param_2 & 1) != 0)) {\n        *(undefined4 *)(param_1 + 0x2c) = 0;\n        iVar7 = FUN_0005f0c0();\n        if (iVar7 != 0) goto LAB_0006a356;\n      }\n    }" else (compound_statement "{\n      uVar6 = (**(code **)(**(int **)(param_1 + 0x3c) + 0x30))(*(int **)(param_1 + 0x3c));\n      if ((uVar6 & 0x200) == 0) {\n        local_2c = DAT_000b4d30;\n        local_28 = DAT_000b4d34;\n        uVar2 = *(uint *)(param_1 + 0x2c);\n        local_50 = *(int *)(param_1 + 0x4c);\n        local_24 = uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18;\n        local_54 = *(int *)(param_1 + 0x48);\n        if (local_50 != 0 || local_54 != 0) {\n          uVar2 = *(uint *)(param_1 + 0x90);\n          lVar9 = FUN_000a9510(local_54 + -1,local_50 + -1 + (uint)(local_54 != 0),uVar2,0);\n          lVar3 = (lVar9 + 1U & 0xffffffff) * (ulonglong)uVar2;\n          local_54 = (int)lVar3;\n          local_50 = (int)((ulonglong)lVar3 >> 0x20) + uVar2 * (int)(lVar9 + 1U >> 0x20);\n        }\n        iVar7 = (**(code **)(**(int **)(param_1 + 0x40) + 8))\n                          (*(int **)(param_1 + 0x40),&local_34,8,local_54,local_50);\n        if (iVar7 == 0) {\n          if ((local_34 != DAT_000b4d30) || (bVar4 = false, local_30 != DAT_000b4d34)) {\n            bVar4 = true;\n          }\n          piVar8 = *(int **)(param_1 + 0x40);\n          iVar7 = *piVar8;\n          if (!bVar4) {\n            iVar7 = (**(code **)(iVar7 + 0xc))(piVar8,&DAT_000b1224,1,local_54,local_50);\n            goto LAB_0006a303;\n          }\n        }\n        else {\nLAB_0006a303:\n          if ((iVar7 != 0) && (iVar7 != 0x20a)) goto LAB_0006a356;\n          piVar8 = *(int **)(param_1 + 0x40);\n          iVar7 = *piVar8;\n        }\n        if (*(char *)(param_1 + 8) != '\0') {\n          if ((uVar6 & 0x400) == 0) {\n            if (*(char *)(param_1 + 10) != '\0') {\n              iVar7 = (**(code **)(iVar7 + 0x14))(piVar8,*(char *)(param_1 + 10));\n              if (iVar7 != 0) goto LAB_0006a356;\n              piVar8 = *(int **)(param_1 + 0x40);\n              iVar7 = *piVar8;\n            }\n            iVar7 = (**(code **)(iVar7 + 0xc))\n                              (piVar8,&local_2c,0xc,*(undefined4 *)(param_1 + 0x50),\n                               *(undefined4 *)(param_1 + 0x54));\n            if (iVar7 != 0) goto LAB_0006a356;\n            goto LAB_0006a382;\n          }\n          iVar7 = (**(code **)(iVar7 + 0xc))\n                            (piVar8,&local_2c,0xc,*(undefined4 *)(param_1 + 0x50),\n                             *(undefined4 *)(param_1 + 0x54));\n          goto joined_r0x0006a4d6;\n        }\n        iVar7 = (**(code **)(iVar7 + 0xc))\n                          (piVar8,&local_2c,0xc,*(undefined4 *)(param_1 + 0x50),\n                           *(undefined4 *)(param_1 + 0x54));\n        if (iVar7 != 0) goto LAB_0006a356;\n        if ((uVar6 & 0x400) == 0) goto LAB_0006a382;\n      }\n      else {\n        if ((uVar6 & 0x400) != 0) goto LAB_0006a320;\nLAB_0006a382:\n        cVar5 = *(char *)(param_1 + 10);\n        if (cVar5 == '\x03') {\n          cVar5 = '\x13';\n        }\n        else if (cVar5 == '\0') goto LAB_0006a3aa;\n        iVar7 = (**(code **)(**(int **)(param_1 + 0x40) + 0x14))(*(int **)(param_1 + 0x40),cVar5);\njoined_r0x0006a4d6:\n        if (iVar7 != 0) goto LAB_0006a356;\n      }\nLAB_0006a3aa:\n      *(undefined4 *)(param_1 + 0x50) = *(undefined4 *)(param_1 + 0x48);\n      *(undefined4 *)(param_1 + 0x54) = *(undefined4 *)(param_1 + 0x4c);\n      if (((uVar6 & 0x200) == 0) && ((param_2 & 1) != 0)) {\n        *(undefined4 *)(param_1 + 0x2c) = 0;\n        iVar7 = FUN_0005f0c0();\n        if (iVar7 != 0) goto LAB_0006a356;\n      }\n    }" { (expression_statement "uVar6 = (**(code **)(**(int **)(param_1 + 0x3c) + 0x30))(*(int **)(param_1 + 0x3c));" (assignment_expression "uVar6 = (**(code **)(**(int **)(param_1 + 0x3c) + 0x30))(*(int **)(param_1 + 0x3c))" identifier = (call_expression "(**(code **)(**(int **)(param_1 + 0x3c) + 0x30))(*(int **)(param_1 + 0x3c))" (parenthesized_expression "(**(code **)(**(int **)(param_1 + 0x3c) + 0x30))" ( (pointer_expression "**(code **)(**(int **)(param_1 + 0x3c) + 0x30)" * (pointer_expression "*(code **)(**(int **)(param_1 + 0x3c) + 0x30)" * (cast_expression "(code **)(**(int **)(param_1 + 0x3c) + 0x30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)(param_1 + 0x3c) + 0x30)" ( (binary_expression "**(int **)(param_1 + 0x3c) + 0x30" (pointer_expression "**(int **)(param_1 + 0x3c)" * (pointer_expression "*(int **)(param_1 + 0x3c)" * (cast_expression "(int **)(param_1 + 0x3c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x3c)" ( (binary_expression "param_1 + 0x3c" identifier + number_literal) ))))) + number_literal) ))))) )) (argument_list "(*(int **)(param_1 + 0x3c))" ( (pointer_expression "*(int **)(param_1 + 0x3c)" * (cast_expression "(int **)(param_1 + 0x3c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x3c)" ( (binary_expression "param_1 + 0x3c" identifier + number_literal) )))) )))) ;) (if_statement "if ((uVar6 & 0x200) == 0) {\n        local_2c = DAT_000b4d30;\n        local_28 = DAT_000b4d34;\n        uVar2 = *(uint *)(param_1 + 0x2c);\n        local_50 = *(int *)(param_1 + 0x4c);\n        local_24 = uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18;\n        local_54 = *(int *)(param_1 + 0x48);\n        if (local_50 != 0 || local_54 != 0) {\n          uVar2 = *(uint *)(param_1 + 0x90);\n          lVar9 = FUN_000a9510(local_54 + -1,local_50 + -1 + (uint)(local_54 != 0),uVar2,0);\n          lVar3 = (lVar9 + 1U & 0xffffffff) * (ulonglong)uVar2;\n          local_54 = (int)lVar3;\n          local_50 = (int)((ulonglong)lVar3 >> 0x20) + uVar2 * (int)(lVar9 + 1U >> 0x20);\n        }\n        iVar7 = (**(code **)(**(int **)(param_1 + 0x40) + 8))\n                          (*(int **)(param_1 + 0x40),&local_34,8,local_54,local_50);\n        if (iVar7 == 0) {\n          if ((local_34 != DAT_000b4d30) || (bVar4 = false, local_30 != DAT_000b4d34)) {\n            bVar4 = true;\n          }\n          piVar8 = *(int **)(param_1 + 0x40);\n          iVar7 = *piVar8;\n          if (!bVar4) {\n            iVar7 = (**(code **)(iVar7 + 0xc))(piVar8,&DAT_000b1224,1,local_54,local_50);\n            goto LAB_0006a303;\n          }\n        }\n        else {\nLAB_0006a303:\n          if ((iVar7 != 0) && (iVar7 != 0x20a)) goto LAB_0006a356;\n          piVar8 = *(int **)(param_1 + 0x40);\n          iVar7 = *piVar8;\n        }\n        if (*(char *)(param_1 + 8) != '\0') {\n          if ((uVar6 & 0x400) == 0) {\n            if (*(char *)(param_1 + 10) != '\0') {\n              iVar7 = (**(code **)(iVar7 + 0x14))(piVar8,*(char *)(param_1 + 10));\n              if (iVar7 != 0) goto LAB_0006a356;\n              piVar8 = *(int **)(param_1 + 0x40);\n              iVar7 = *piVar8;\n            }\n            iVar7 = (**(code **)(iVar7 + 0xc))\n                              (piVar8,&local_2c,0xc,*(undefined4 *)(param_1 + 0x50),\n                               *(undefined4 *)(param_1 + 0x54));\n            if (iVar7 != 0) goto LAB_0006a356;\n            goto LAB_0006a382;\n          }\n          iVar7 = (**(code **)(iVar7 + 0xc))\n                            (piVar8,&local_2c,0xc,*(undefined4 *)(param_1 + 0x50),\n                             *(undefined4 *)(param_1 + 0x54));\n          goto joined_r0x0006a4d6;\n        }\n        iVar7 = (**(code **)(iVar7 + 0xc))\n                          (piVar8,&local_2c,0xc,*(undefined4 *)(param_1 + 0x50),\n                           *(undefined4 *)(param_1 + 0x54));\n        if (iVar7 != 0) goto LAB_0006a356;\n        if ((uVar6 & 0x400) == 0) goto LAB_0006a382;\n      }\n      else {\n        if ((uVar6 & 0x400) != 0) goto LAB_0006a320;\nLAB_0006a382:\n        cVar5 = *(char *)(param_1 + 10);\n        if (cVar5 == '\x03') {\n          cVar5 = '\x13';\n        }\n        else if (cVar5 == '\0') goto LAB_0006a3aa;\n        iVar7 = (**(code **)(**(int **)(param_1 + 0x40) + 0x14))(*(int **)(param_1 + 0x40),cVar5);\njoined_r0x0006a4d6:\n        if (iVar7 != 0) goto LAB_0006a356;\n      }" if (parenthesized_expression "((uVar6 & 0x200) == 0)" ( (binary_expression "(uVar6 & 0x200) == 0" (parenthesized_expression "(uVar6 & 0x200)" ( (binary_expression "uVar6 & 0x200" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        local_2c = DAT_000b4d30;\n        local_28 = DAT_000b4d34;\n        uVar2 = *(uint *)(param_1 + 0x2c);\n        local_50 = *(int *)(param_1 + 0x4c);\n        local_24 = uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18;\n        local_54 = *(int *)(param_1 + 0x48);\n        if (local_50 != 0 || local_54 != 0) {\n          uVar2 = *(uint *)(param_1 + 0x90);\n          lVar9 = FUN_000a9510(local_54 + -1,local_50 + -1 + (uint)(local_54 != 0),uVar2,0);\n          lVar3 = (lVar9 + 1U & 0xffffffff) * (ulonglong)uVar2;\n          local_54 = (int)lVar3;\n          local_50 = (int)((ulonglong)lVar3 >> 0x20) + uVar2 * (int)(lVar9 + 1U >> 0x20);\n        }\n        iVar7 = (**(code **)(**(int **)(param_1 + 0x40) + 8))\n                          (*(int **)(param_1 + 0x40),&local_34,8,local_54,local_50);\n        if (iVar7 == 0) {\n          if ((local_34 != DAT_000b4d30) || (bVar4 = false, local_30 != DAT_000b4d34)) {\n            bVar4 = true;\n          }\n          piVar8 = *(int **)(param_1 + 0x40);\n          iVar7 = *piVar8;\n          if (!bVar4) {\n            iVar7 = (**(code **)(iVar7 + 0xc))(piVar8,&DAT_000b1224,1,local_54,local_50);\n            goto LAB_0006a303;\n          }\n        }\n        else {\nLAB_0006a303:\n          if ((iVar7 != 0) && (iVar7 != 0x20a)) goto LAB_0006a356;\n          piVar8 = *(int **)(param_1 + 0x40);\n          iVar7 = *piVar8;\n        }\n        if (*(char *)(param_1 + 8) != '\0') {\n          if ((uVar6 & 0x400) == 0) {\n            if (*(char *)(param_1 + 10) != '\0') {\n              iVar7 = (**(code **)(iVar7 + 0x14))(piVar8,*(char *)(param_1 + 10));\n              if (iVar7 != 0) goto LAB_0006a356;\n              piVar8 = *(int **)(param_1 + 0x40);\n              iVar7 = *piVar8;\n            }\n            iVar7 = (**(code **)(iVar7 + 0xc))\n                              (piVar8,&local_2c,0xc,*(undefined4 *)(param_1 + 0x50),\n                               *(undefined4 *)(param_1 + 0x54));\n            if (iVar7 != 0) goto LAB_0006a356;\n            goto LAB_0006a382;\n          }\n          iVar7 = (**(code **)(iVar7 + 0xc))\n                            (piVar8,&local_2c,0xc,*(undefined4 *)(param_1 + 0x50),\n                             *(undefined4 *)(param_1 + 0x54));\n          goto joined_r0x0006a4d6;\n        }\n        iVar7 = (**(code **)(iVar7 + 0xc))\n                          (piVar8,&local_2c,0xc,*(undefined4 *)(param_1 + 0x50),\n                           *(undefined4 *)(param_1 + 0x54));\n        if (iVar7 != 0) goto LAB_0006a356;\n        if ((uVar6 & 0x400) == 0) goto LAB_0006a382;\n      }" { (expression_statement "local_2c = DAT_000b4d30;" (assignment_expression "local_2c = DAT_000b4d30" identifier = identifier) ;) (expression_statement "local_28 = DAT_000b4d34;" (assignment_expression "local_28 = DAT_000b4d34" identifier = identifier) ;) (expression_statement "uVar2 = *(uint *)(param_1 + 0x2c);" (assignment_expression "uVar2 = *(uint *)(param_1 + 0x2c)" identifier = (pointer_expression "*(uint *)(param_1 + 0x2c)" * (cast_expression "(uint *)(param_1 + 0x2c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2c)" ( (binary_expression "param_1 + 0x2c" identifier + number_literal) ))))) ;) (expression_statement "local_50 = *(int *)(param_1 + 0x4c);" (assignment_expression "local_50 = *(int *)(param_1 + 0x4c)" identifier = (pointer_expression "*(int *)(param_1 + 0x4c)" * (cast_expression "(int *)(param_1 + 0x4c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x4c)" ( (binary_expression "param_1 + 0x4c" identifier + number_literal) ))))) ;) (expression_statement "local_24 = uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18;" (assignment_expression "local_24 = uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18" identifier = (binary_expression "uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18" (binary_expression "uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8" (binary_expression "uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8" (binary_expression "uVar2 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar2 & 0xff0000) >> 8" (parenthesized_expression "(uVar2 & 0xff0000)" ( (binary_expression "uVar2 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar2 & 0xff00) << 8" (parenthesized_expression "(uVar2 & 0xff00)" ( (binary_expression "uVar2 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar2 << 0x18" identifier << number_literal))) ;) (expression_statement "local_54 = *(int *)(param_1 + 0x48);" (assignment_expression "local_54 = *(int *)(param_1 + 0x48)" identifier = (pointer_expression "*(int *)(param_1 + 0x48)" * (cast_expression "(int *)(param_1 + 0x48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x48)" ( (binary_expression "param_1 + 0x48" identifier + number_literal) ))))) ;) (if_statement "if (local_50 != 0 || local_54 != 0) {\n          uVar2 = *(uint *)(param_1 + 0x90);\n          lVar9 = FUN_000a9510(local_54 + -1,local_50 + -1 + (uint)(local_54 != 0),uVar2,0);\n          lVar3 = (lVar9 + 1U & 0xffffffff) * (ulonglong)uVar2;\n          local_54 = (int)lVar3;\n          local_50 = (int)((ulonglong)lVar3 >> 0x20) + uVar2 * (int)(lVar9 + 1U >> 0x20);\n        }" if (parenthesized_expression "(local_50 != 0 || local_54 != 0)" ( (binary_expression "local_50 != 0 || local_54 != 0" (binary_expression "local_50 != 0" identifier != number_literal) || (binary_expression "local_54 != 0" identifier != number_literal)) )) (compound_statement "{\n          uVar2 = *(uint *)(param_1 + 0x90);\n          lVar9 = FUN_000a9510(local_54 + -1,local_50 + -1 + (uint)(local_54 != 0),uVar2,0);\n          lVar3 = (lVar9 + 1U & 0xffffffff) * (ulonglong)uVar2;\n          local_54 = (int)lVar3;\n          local_50 = (int)((ulonglong)lVar3 >> 0x20) + uVar2 * (int)(lVar9 + 1U >> 0x20);\n        }" { (expression_statement "uVar2 = *(uint *)(param_1 + 0x90);" (assignment_expression "uVar2 = *(uint *)(param_1 + 0x90)" identifier = (pointer_expression "*(uint *)(param_1 + 0x90)" * (cast_expression "(uint *)(param_1 + 0x90)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x90)" ( (binary_expression "param_1 + 0x90" identifier + number_literal) ))))) ;) (expression_statement "lVar9 = FUN_000a9510(local_54 + -1,local_50 + -1 + (uint)(local_54 != 0),uVar2,0);" (assignment_expression "lVar9 = FUN_000a9510(local_54 + -1,local_50 + -1 + (uint)(local_54 != 0),uVar2,0)" identifier = (call_expression "FUN_000a9510(local_54 + -1,local_50 + -1 + (uint)(local_54 != 0),uVar2,0)" identifier (argument_list "(local_54 + -1,local_50 + -1 + (uint)(local_54 != 0),uVar2,0)" ( (binary_expression "local_54 + -1" identifier + number_literal) , (binary_expression "local_50 + -1 + (uint)(local_54 != 0)" (binary_expression "local_50 + -1" identifier + number_literal) + (call_expression "(uint)(local_54 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_54 != 0)" ( (binary_expression "local_54 != 0" identifier != number_literal) )))) , identifier , number_literal )))) ;) (expression_statement "lVar3 = (lVar9 + 1U & 0xffffffff) * (ulonglong)uVar2;" (assignment_expression "lVar3 = (lVar9 + 1U & 0xffffffff) * (ulonglong)uVar2" identifier = (binary_expression "(lVar9 + 1U & 0xffffffff) * (ulonglong)uVar2" (parenthesized_expression "(lVar9 + 1U & 0xffffffff)" ( (binary_expression "lVar9 + 1U & 0xffffffff" (binary_expression "lVar9 + 1U" identifier + number_literal) & number_literal) )) * (cast_expression "(ulonglong)uVar2" ( (type_descriptor "ulonglong" type_identifier) ) identifier))) ;) (expression_statement "local_54 = (int)lVar3;" (assignment_expression "local_54 = (int)lVar3" identifier = (cast_expression "(int)lVar3" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "local_50 = (int)((ulonglong)lVar3 >> 0x20) + uVar2 * (int)(lVar9 + 1U >> 0x20);" (assignment_expression "local_50 = (int)((ulonglong)lVar3 >> 0x20) + uVar2 * (int)(lVar9 + 1U >> 0x20)" identifier = (binary_expression "(int)((ulonglong)lVar3 >> 0x20) + uVar2 * (int)(lVar9 + 1U >> 0x20)" (cast_expression "(int)((ulonglong)lVar3 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)lVar3 >> 0x20)" ( (binary_expression "(ulonglong)lVar3 >> 0x20" (cast_expression "(ulonglong)lVar3" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) + (binary_expression "uVar2 * (int)(lVar9 + 1U >> 0x20)" identifier * (cast_expression "(int)(lVar9 + 1U >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(lVar9 + 1U >> 0x20)" ( (binary_expression "lVar9 + 1U >> 0x20" (binary_expression "lVar9 + 1U" identifier + number_literal) >> number_literal) )))))) ;) })) (expression_statement "iVar7 = (**(code **)(**(int **)(param_1 + 0x40) + 8))\n                          (*(int **)(param_1 + 0x40),&local_34,8,local_54,local_50);" (assignment_expression "iVar7 = (**(code **)(**(int **)(param_1 + 0x40) + 8))\n                          (*(int **)(param_1 + 0x40),&local_34,8,local_54,local_50)" identifier = (call_expression "(**(code **)(**(int **)(param_1 + 0x40) + 8))\n                          (*(int **)(param_1 + 0x40),&local_34,8,local_54,local_50)" (parenthesized_expression "(**(code **)(**(int **)(param_1 + 0x40) + 8))" ( (pointer_expression "**(code **)(**(int **)(param_1 + 0x40) + 8)" * (pointer_expression "*(code **)(**(int **)(param_1 + 0x40) + 8)" * (cast_expression "(code **)(**(int **)(param_1 + 0x40) + 8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)(param_1 + 0x40) + 8)" ( (binary_expression "**(int **)(param_1 + 0x40) + 8" (pointer_expression "**(int **)(param_1 + 0x40)" * (pointer_expression "*(int **)(param_1 + 0x40)" * (cast_expression "(int **)(param_1 + 0x40)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x40)" ( (binary_expression "param_1 + 0x40" identifier + number_literal) ))))) + number_literal) ))))) )) (argument_list "(*(int **)(param_1 + 0x40),&local_34,8,local_54,local_50)" ( (pointer_expression "*(int **)(param_1 + 0x40)" * (cast_expression "(int **)(param_1 + 0x40)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x40)" ( (binary_expression "param_1 + 0x40" identifier + number_literal) )))) , (pointer_expression "&local_34" & identifier) , number_literal , identifier , identifier )))) ;) (if_statement "if (iVar7 == 0) {\n          if ((local_34 != DAT_000b4d30) || (bVar4 = false, local_30 != DAT_000b4d34)) {\n            bVar4 = true;\n          }\n          piVar8 = *(int **)(param_1 + 0x40);\n          iVar7 = *piVar8;\n          if (!bVar4) {\n            iVar7 = (**(code **)(iVar7 + 0xc))(piVar8,&DAT_000b1224,1,local_54,local_50);\n            goto LAB_0006a303;\n          }\n        }\n        else {\nLAB_0006a303:\n          if ((iVar7 != 0) && (iVar7 != 0x20a)) goto LAB_0006a356;\n          piVar8 = *(int **)(param_1 + 0x40);\n          iVar7 = *piVar8;\n        }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n          if ((local_34 != DAT_000b4d30) || (bVar4 = false, local_30 != DAT_000b4d34)) {\n            bVar4 = true;\n          }\n          piVar8 = *(int **)(param_1 + 0x40);\n          iVar7 = *piVar8;\n          if (!bVar4) {\n            iVar7 = (**(code **)(iVar7 + 0xc))(piVar8,&DAT_000b1224,1,local_54,local_50);\n            goto LAB_0006a303;\n          }\n        }" { (if_statement "if ((local_34 != DAT_000b4d30) || (bVar4 = false, local_30 != DAT_000b4d34)) {\n            bVar4 = true;\n          }" if (parenthesized_expression "((local_34 != DAT_000b4d30) || (bVar4 = false, local_30 != DAT_000b4d34))" ( (binary_expression "(local_34 != DAT_000b4d30) || (bVar4 = false, local_30 != DAT_000b4d34)" (parenthesized_expression "(local_34 != DAT_000b4d30)" ( (binary_expression "local_34 != DAT_000b4d30" identifier != identifier) )) || (parenthesized_expression "(bVar4 = false, local_30 != DAT_000b4d34)" ( (comma_expression "bVar4 = false, local_30 != DAT_000b4d34" (assignment_expression "bVar4 = false" identifier = false) , (binary_expression "local_30 != DAT_000b4d34" identifier != identifier)) ))) )) (compound_statement "{\n            bVar4 = true;\n          }" { (expression_statement "bVar4 = true;" (assignment_expression "bVar4 = true" identifier = true) ;) })) (expression_statement "piVar8 = *(int **)(param_1 + 0x40);" (assignment_expression "piVar8 = *(int **)(param_1 + 0x40)" identifier = (pointer_expression "*(int **)(param_1 + 0x40)" * (cast_expression "(int **)(param_1 + 0x40)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x40)" ( (binary_expression "param_1 + 0x40" identifier + number_literal) ))))) ;) (expression_statement "iVar7 = *piVar8;" (assignment_expression "iVar7 = *piVar8" identifier = (pointer_expression "*piVar8" * identifier)) ;) (if_statement "if (!bVar4) {\n            iVar7 = (**(code **)(iVar7 + 0xc))(piVar8,&DAT_000b1224,1,local_54,local_50);\n            goto LAB_0006a303;\n          }" if (parenthesized_expression "(!bVar4)" ( (unary_expression "!bVar4" ! identifier) )) (compound_statement "{\n            iVar7 = (**(code **)(iVar7 + 0xc))(piVar8,&DAT_000b1224,1,local_54,local_50);\n            goto LAB_0006a303;\n          }" { (expression_statement "iVar7 = (**(code **)(iVar7 + 0xc))(piVar8,&DAT_000b1224,1,local_54,local_50);" (assignment_expression "iVar7 = (**(code **)(iVar7 + 0xc))(piVar8,&DAT_000b1224,1,local_54,local_50)" identifier = (call_expression "(**(code **)(iVar7 + 0xc))(piVar8,&DAT_000b1224,1,local_54,local_50)" (parenthesized_expression "(**(code **)(iVar7 + 0xc))" ( (pointer_expression "**(code **)(iVar7 + 0xc)" * (pointer_expression "*(code **)(iVar7 + 0xc)" * (cast_expression "(code **)(iVar7 + 0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar7 + 0xc)" ( (binary_expression "iVar7 + 0xc" identifier + number_literal) ))))) )) (argument_list "(piVar8,&DAT_000b1224,1,local_54,local_50)" ( identifier , (pointer_expression "&DAT_000b1224" & identifier) , number_literal , identifier , identifier )))) ;) (goto_statement "goto LAB_0006a303;" goto statement_identifier ;) })) }) (else_clause "else {\nLAB_0006a303:\n          if ((iVar7 != 0) && (iVar7 != 0x20a)) goto LAB_0006a356;\n          piVar8 = *(int **)(param_1 + 0x40);\n          iVar7 = *piVar8;\n        }" else (compound_statement "{\nLAB_0006a303:\n          if ((iVar7 != 0) && (iVar7 != 0x20a)) goto LAB_0006a356;\n          piVar8 = *(int **)(param_1 + 0x40);\n          iVar7 = *piVar8;\n        }" { (labeled_statement "LAB_0006a303:\n          if ((iVar7 != 0) && (iVar7 != 0x20a)) goto LAB_0006a356;" statement_identifier : (if_statement "if ((iVar7 != 0) && (iVar7 != 0x20a)) goto LAB_0006a356;" if (parenthesized_expression "((iVar7 != 0) && (iVar7 != 0x20a))" ( (binary_expression "(iVar7 != 0) && (iVar7 != 0x20a)" (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) && (parenthesized_expression "(iVar7 != 0x20a)" ( (binary_expression "iVar7 != 0x20a" identifier != number_literal) ))) )) (goto_statement "goto LAB_0006a356;" goto statement_identifier ;))) (expression_statement "piVar8 = *(int **)(param_1 + 0x40);" (assignment_expression "piVar8 = *(int **)(param_1 + 0x40)" identifier = (pointer_expression "*(int **)(param_1 + 0x40)" * (cast_expression "(int **)(param_1 + 0x40)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x40)" ( (binary_expression "param_1 + 0x40" identifier + number_literal) ))))) ;) (expression_statement "iVar7 = *piVar8;" (assignment_expression "iVar7 = *piVar8" identifier = (pointer_expression "*piVar8" * identifier)) ;) }))) (if_statement "if (*(char *)(param_1 + 8) != '\0') {\n          if ((uVar6 & 0x400) == 0) {\n            if (*(char *)(param_1 + 10) != '\0') {\n              iVar7 = (**(code **)(iVar7 + 0x14))(piVar8,*(char *)(param_1 + 10));\n              if (iVar7 != 0) goto LAB_0006a356;\n              piVar8 = *(int **)(param_1 + 0x40);\n              iVar7 = *piVar8;\n            }\n            iVar7 = (**(code **)(iVar7 + 0xc))\n                              (piVar8,&local_2c,0xc,*(undefined4 *)(param_1 + 0x50),\n                               *(undefined4 *)(param_1 + 0x54));\n            if (iVar7 != 0) goto LAB_0006a356;\n            goto LAB_0006a382;\n          }\n          iVar7 = (**(code **)(iVar7 + 0xc))\n                            (piVar8,&local_2c,0xc,*(undefined4 *)(param_1 + 0x50),\n                             *(undefined4 *)(param_1 + 0x54));\n          goto joined_r0x0006a4d6;\n        }" if (parenthesized_expression "(*(char *)(param_1 + 8) != '\0')" ( (binary_expression "*(char *)(param_1 + 8) != '\0'" (pointer_expression "*(char *)(param_1 + 8)" * (cast_expression "(char *)(param_1 + 8)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          if ((uVar6 & 0x400) == 0) {\n            if (*(char *)(param_1 + 10) != '\0') {\n              iVar7 = (**(code **)(iVar7 + 0x14))(piVar8,*(char *)(param_1 + 10));\n              if (iVar7 != 0) goto LAB_0006a356;\n              piVar8 = *(int **)(param_1 + 0x40);\n              iVar7 = *piVar8;\n            }\n            iVar7 = (**(code **)(iVar7 + 0xc))\n                              (piVar8,&local_2c,0xc,*(undefined4 *)(param_1 + 0x50),\n                               *(undefined4 *)(param_1 + 0x54));\n            if (iVar7 != 0) goto LAB_0006a356;\n            goto LAB_0006a382;\n          }\n          iVar7 = (**(code **)(iVar7 + 0xc))\n                            (piVar8,&local_2c,0xc,*(undefined4 *)(param_1 + 0x50),\n                             *(undefined4 *)(param_1 + 0x54));\n          goto joined_r0x0006a4d6;\n        }" { (if_statement "if ((uVar6 & 0x400) == 0) {\n            if (*(char *)(param_1 + 10) != '\0') {\n              iVar7 = (**(code **)(iVar7 + 0x14))(piVar8,*(char *)(param_1 + 10));\n              if (iVar7 != 0) goto LAB_0006a356;\n              piVar8 = *(int **)(param_1 + 0x40);\n              iVar7 = *piVar8;\n            }\n            iVar7 = (**(code **)(iVar7 + 0xc))\n                              (piVar8,&local_2c,0xc,*(undefined4 *)(param_1 + 0x50),\n                               *(undefined4 *)(param_1 + 0x54));\n            if (iVar7 != 0) goto LAB_0006a356;\n            goto LAB_0006a382;\n          }" if (parenthesized_expression "((uVar6 & 0x400) == 0)" ( (binary_expression "(uVar6 & 0x400) == 0" (parenthesized_expression "(uVar6 & 0x400)" ( (binary_expression "uVar6 & 0x400" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n            if (*(char *)(param_1 + 10) != '\0') {\n              iVar7 = (**(code **)(iVar7 + 0x14))(piVar8,*(char *)(param_1 + 10));\n              if (iVar7 != 0) goto LAB_0006a356;\n              piVar8 = *(int **)(param_1 + 0x40);\n              iVar7 = *piVar8;\n            }\n            iVar7 = (**(code **)(iVar7 + 0xc))\n                              (piVar8,&local_2c,0xc,*(undefined4 *)(param_1 + 0x50),\n                               *(undefined4 *)(param_1 + 0x54));\n            if (iVar7 != 0) goto LAB_0006a356;\n            goto LAB_0006a382;\n          }" { (if_statement "if (*(char *)(param_1 + 10) != '\0') {\n              iVar7 = (**(code **)(iVar7 + 0x14))(piVar8,*(char *)(param_1 + 10));\n              if (iVar7 != 0) goto LAB_0006a356;\n              piVar8 = *(int **)(param_1 + 0x40);\n              iVar7 = *piVar8;\n            }" if (parenthesized_expression "(*(char *)(param_1 + 10) != '\0')" ( (binary_expression "*(char *)(param_1 + 10) != '\0'" (pointer_expression "*(char *)(param_1 + 10)" * (cast_expression "(char *)(param_1 + 10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 10)" ( (binary_expression "param_1 + 10" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n              iVar7 = (**(code **)(iVar7 + 0x14))(piVar8,*(char *)(param_1 + 10));\n              if (iVar7 != 0) goto LAB_0006a356;\n              piVar8 = *(int **)(param_1 + 0x40);\n              iVar7 = *piVar8;\n            }" { (expression_statement "iVar7 = (**(code **)(iVar7 + 0x14))(piVar8,*(char *)(param_1 + 10));" (assignment_expression "iVar7 = (**(code **)(iVar7 + 0x14))(piVar8,*(char *)(param_1 + 10))" identifier = (call_expression "(**(code **)(iVar7 + 0x14))(piVar8,*(char *)(param_1 + 10))" (parenthesized_expression "(**(code **)(iVar7 + 0x14))" ( (pointer_expression "**(code **)(iVar7 + 0x14)" * (pointer_expression "*(code **)(iVar7 + 0x14)" * (cast_expression "(code **)(iVar7 + 0x14)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar7 + 0x14)" ( (binary_expression "iVar7 + 0x14" identifier + number_literal) ))))) )) (argument_list "(piVar8,*(char *)(param_1 + 10))" ( identifier , (pointer_expression "*(char *)(param_1 + 10)" * (cast_expression "(char *)(param_1 + 10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 10)" ( (binary_expression "param_1 + 10" identifier + number_literal) )))) )))) ;) (if_statement "if (iVar7 != 0) goto LAB_0006a356;" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0006a356;" goto statement_identifier ;)) (expression_statement "piVar8 = *(int **)(param_1 + 0x40);" (assignment_expression "piVar8 = *(int **)(param_1 + 0x40)" identifier = (pointer_expression "*(int **)(param_1 + 0x40)" * (cast_expression "(int **)(param_1 + 0x40)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x40)" ( (binary_expression "param_1 + 0x40" identifier + number_literal) ))))) ;) (expression_statement "iVar7 = *piVar8;" (assignment_expression "iVar7 = *piVar8" identifier = (pointer_expression "*piVar8" * identifier)) ;) })) (expression_statement "iVar7 = (**(code **)(iVar7 + 0xc))\n                              (piVar8,&local_2c,0xc,*(undefined4 *)(param_1 + 0x50),\n                               *(undefined4 *)(param_1 + 0x54));" (assignment_expression "iVar7 = (**(code **)(iVar7 + 0xc))\n                              (piVar8,&local_2c,0xc,*(undefined4 *)(param_1 + 0x50),\n                               *(undefined4 *)(param_1 + 0x54))" identifier = (call_expression "(**(code **)(iVar7 + 0xc))\n                              (piVar8,&local_2c,0xc,*(undefined4 *)(param_1 + 0x50),\n                               *(undefined4 *)(param_1 + 0x54))" (parenthesized_expression "(**(code **)(iVar7 + 0xc))" ( (pointer_expression "**(code **)(iVar7 + 0xc)" * (pointer_expression "*(code **)(iVar7 + 0xc)" * (cast_expression "(code **)(iVar7 + 0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar7 + 0xc)" ( (binary_expression "iVar7 + 0xc" identifier + number_literal) ))))) )) (argument_list "(piVar8,&local_2c,0xc,*(undefined4 *)(param_1 + 0x50),\n                               *(undefined4 *)(param_1 + 0x54))" ( identifier , (pointer_expression "&local_2c" & identifier) , number_literal , (pointer_expression "*(undefined4 *)(param_1 + 0x50)" * (cast_expression "(undefined4 *)(param_1 + 0x50)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x50)" ( (binary_expression "param_1 + 0x50" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)(param_1 + 0x54)" * (cast_expression "(undefined4 *)(param_1 + 0x54)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x54)" ( (binary_expression "param_1 + 0x54" identifier + number_literal) )))) )))) ;) (if_statement "if (iVar7 != 0) goto LAB_0006a356;" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0006a356;" goto statement_identifier ;)) (goto_statement "goto LAB_0006a382;" goto statement_identifier ;) })) (expression_statement "iVar7 = (**(code **)(iVar7 + 0xc))\n                            (piVar8,&local_2c,0xc,*(undefined4 *)(param_1 + 0x50),\n                             *(undefined4 *)(param_1 + 0x54));" (assignment_expression "iVar7 = (**(code **)(iVar7 + 0xc))\n                            (piVar8,&local_2c,0xc,*(undefined4 *)(param_1 + 0x50),\n                             *(undefined4 *)(param_1 + 0x54))" identifier = (call_expression "(**(code **)(iVar7 + 0xc))\n                            (piVar8,&local_2c,0xc,*(undefined4 *)(param_1 + 0x50),\n                             *(undefined4 *)(param_1 + 0x54))" (parenthesized_expression "(**(code **)(iVar7 + 0xc))" ( (pointer_expression "**(code **)(iVar7 + 0xc)" * (pointer_expression "*(code **)(iVar7 + 0xc)" * (cast_expression "(code **)(iVar7 + 0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar7 + 0xc)" ( (binary_expression "iVar7 + 0xc" identifier + number_literal) ))))) )) (argument_list "(piVar8,&local_2c,0xc,*(undefined4 *)(param_1 + 0x50),\n                             *(undefined4 *)(param_1 + 0x54))" ( identifier , (pointer_expression "&local_2c" & identifier) , number_literal , (pointer_expression "*(undefined4 *)(param_1 + 0x50)" * (cast_expression "(undefined4 *)(param_1 + 0x50)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x50)" ( (binary_expression "param_1 + 0x50" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)(param_1 + 0x54)" * (cast_expression "(undefined4 *)(param_1 + 0x54)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x54)" ( (binary_expression "param_1 + 0x54" identifier + number_literal) )))) )))) ;) (goto_statement "goto joined_r0x0006a4d6;" goto statement_identifier ;) })) (expression_statement "iVar7 = (**(code **)(iVar7 + 0xc))\n                          (piVar8,&local_2c,0xc,*(undefined4 *)(param_1 + 0x50),\n                           *(undefined4 *)(param_1 + 0x54));" (assignment_expression "iVar7 = (**(code **)(iVar7 + 0xc))\n                          (piVar8,&local_2c,0xc,*(undefined4 *)(param_1 + 0x50),\n                           *(undefined4 *)(param_1 + 0x54))" identifier = (call_expression "(**(code **)(iVar7 + 0xc))\n                          (piVar8,&local_2c,0xc,*(undefined4 *)(param_1 + 0x50),\n                           *(undefined4 *)(param_1 + 0x54))" (parenthesized_expression "(**(code **)(iVar7 + 0xc))" ( (pointer_expression "**(code **)(iVar7 + 0xc)" * (pointer_expression "*(code **)(iVar7 + 0xc)" * (cast_expression "(code **)(iVar7 + 0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar7 + 0xc)" ( (binary_expression "iVar7 + 0xc" identifier + number_literal) ))))) )) (argument_list "(piVar8,&local_2c,0xc,*(undefined4 *)(param_1 + 0x50),\n                           *(undefined4 *)(param_1 + 0x54))" ( identifier , (pointer_expression "&local_2c" & identifier) , number_literal , (pointer_expression "*(undefined4 *)(param_1 + 0x50)" * (cast_expression "(undefined4 *)(param_1 + 0x50)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x50)" ( (binary_expression "param_1 + 0x50" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)(param_1 + 0x54)" * (cast_expression "(undefined4 *)(param_1 + 0x54)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x54)" ( (binary_expression "param_1 + 0x54" identifier + number_literal) )))) )))) ;) (if_statement "if (iVar7 != 0) goto LAB_0006a356;" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0006a356;" goto statement_identifier ;)) (if_statement "if ((uVar6 & 0x400) == 0) goto LAB_0006a382;" if (parenthesized_expression "((uVar6 & 0x400) == 0)" ( (binary_expression "(uVar6 & 0x400) == 0" (parenthesized_expression "(uVar6 & 0x400)" ( (binary_expression "uVar6 & 0x400" identifier & number_literal) )) == number_literal) )) (goto_statement "goto LAB_0006a382;" goto statement_identifier ;)) }) (else_clause "else {\n        if ((uVar6 & 0x400) != 0) goto LAB_0006a320;\nLAB_0006a382:\n        cVar5 = *(char *)(param_1 + 10);\n        if (cVar5 == '\x03') {\n          cVar5 = '\x13';\n        }\n        else if (cVar5 == '\0') goto LAB_0006a3aa;\n        iVar7 = (**(code **)(**(int **)(param_1 + 0x40) + 0x14))(*(int **)(param_1 + 0x40),cVar5);\njoined_r0x0006a4d6:\n        if (iVar7 != 0) goto LAB_0006a356;\n      }" else (compound_statement "{\n        if ((uVar6 & 0x400) != 0) goto LAB_0006a320;\nLAB_0006a382:\n        cVar5 = *(char *)(param_1 + 10);\n        if (cVar5 == '\x03') {\n          cVar5 = '\x13';\n        }\n        else if (cVar5 == '\0') goto LAB_0006a3aa;\n        iVar7 = (**(code **)(**(int **)(param_1 + 0x40) + 0x14))(*(int **)(param_1 + 0x40),cVar5);\njoined_r0x0006a4d6:\n        if (iVar7 != 0) goto LAB_0006a356;\n      }" { (if_statement "if ((uVar6 & 0x400) != 0) goto LAB_0006a320;" if (parenthesized_expression "((uVar6 & 0x400) != 0)" ( (binary_expression "(uVar6 & 0x400) != 0" (parenthesized_expression "(uVar6 & 0x400)" ( (binary_expression "uVar6 & 0x400" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_0006a320;" goto statement_identifier ;)) (labeled_statement "LAB_0006a382:\n        cVar5 = *(char *)(param_1 + 10);" statement_identifier : (expression_statement "cVar5 = *(char *)(param_1 + 10);" (assignment_expression "cVar5 = *(char *)(param_1 + 10)" identifier = (pointer_expression "*(char *)(param_1 + 10)" * (cast_expression "(char *)(param_1 + 10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 10)" ( (binary_expression "param_1 + 10" identifier + number_literal) ))))) ;)) (if_statement "if (cVar5 == '\x03') {\n          cVar5 = '\x13';\n        }\n        else if (cVar5 == '\0') goto LAB_0006a3aa;" if (parenthesized_expression "(cVar5 == '\x03')" ( (binary_expression "cVar5 == '\x03'" identifier == (char_literal "'\x03'" ' escape_sequence ')) )) (compound_statement "{\n          cVar5 = '\x13';\n        }" { (expression_statement "cVar5 = '\x13';" (assignment_expression "cVar5 = '\x13'" identifier = (char_literal "'\x13'" ' escape_sequence ')) ;) }) (else_clause "else if (cVar5 == '\0') goto LAB_0006a3aa;" else (if_statement "if (cVar5 == '\0') goto LAB_0006a3aa;" if (parenthesized_expression "(cVar5 == '\0')" ( (binary_expression "cVar5 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_0006a3aa;" goto statement_identifier ;)))) (expression_statement "iVar7 = (**(code **)(**(int **)(param_1 + 0x40) + 0x14))(*(int **)(param_1 + 0x40),cVar5);" (assignment_expression "iVar7 = (**(code **)(**(int **)(param_1 + 0x40) + 0x14))(*(int **)(param_1 + 0x40),cVar5)" identifier = (call_expression "(**(code **)(**(int **)(param_1 + 0x40) + 0x14))(*(int **)(param_1 + 0x40),cVar5)" (parenthesized_expression "(**(code **)(**(int **)(param_1 + 0x40) + 0x14))" ( (pointer_expression "**(code **)(**(int **)(param_1 + 0x40) + 0x14)" * (pointer_expression "*(code **)(**(int **)(param_1 + 0x40) + 0x14)" * (cast_expression "(code **)(**(int **)(param_1 + 0x40) + 0x14)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)(param_1 + 0x40) + 0x14)" ( (binary_expression "**(int **)(param_1 + 0x40) + 0x14" (pointer_expression "**(int **)(param_1 + 0x40)" * (pointer_expression "*(int **)(param_1 + 0x40)" * (cast_expression "(int **)(param_1 + 0x40)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x40)" ( (binary_expression "param_1 + 0x40" identifier + number_literal) ))))) + number_literal) ))))) )) (argument_list "(*(int **)(param_1 + 0x40),cVar5)" ( (pointer_expression "*(int **)(param_1 + 0x40)" * (cast_expression "(int **)(param_1 + 0x40)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x40)" ( (binary_expression "param_1 + 0x40" identifier + number_literal) )))) , identifier )))) ;) (labeled_statement "joined_r0x0006a4d6:\n        if (iVar7 != 0) goto LAB_0006a356;" statement_identifier : (if_statement "if (iVar7 != 0) goto LAB_0006a356;" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0006a356;" goto statement_identifier ;))) }))) (labeled_statement "LAB_0006a3aa:\n      *(undefined4 *)(param_1 + 0x50) = *(undefined4 *)(param_1 + 0x48);" statement_identifier : (expression_statement "*(undefined4 *)(param_1 + 0x50) = *(undefined4 *)(param_1 + 0x48);" (assignment_expression "*(undefined4 *)(param_1 + 0x50) = *(undefined4 *)(param_1 + 0x48)" (pointer_expression "*(undefined4 *)(param_1 + 0x50)" * (cast_expression "(undefined4 *)(param_1 + 0x50)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x50)" ( (binary_expression "param_1 + 0x50" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(param_1 + 0x48)" * (cast_expression "(undefined4 *)(param_1 + 0x48)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x48)" ( (binary_expression "param_1 + 0x48" identifier + number_literal) ))))) ;)) (expression_statement "*(undefined4 *)(param_1 + 0x54) = *(undefined4 *)(param_1 + 0x4c);" (assignment_expression "*(undefined4 *)(param_1 + 0x54) = *(undefined4 *)(param_1 + 0x4c)" (pointer_expression "*(undefined4 *)(param_1 + 0x54)" * (cast_expression "(undefined4 *)(param_1 + 0x54)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x54)" ( (binary_expression "param_1 + 0x54" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(param_1 + 0x4c)" * (cast_expression "(undefined4 *)(param_1 + 0x4c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x4c)" ( (binary_expression "param_1 + 0x4c" identifier + number_literal) ))))) ;) (if_statement "if (((uVar6 & 0x200) == 0) && ((param_2 & 1) != 0)) {\n        *(undefined4 *)(param_1 + 0x2c) = 0;\n        iVar7 = FUN_0005f0c0();\n        if (iVar7 != 0) goto LAB_0006a356;\n      }" if (parenthesized_expression "(((uVar6 & 0x200) == 0) && ((param_2 & 1) != 0))" ( (binary_expression "((uVar6 & 0x200) == 0) && ((param_2 & 1) != 0)" (parenthesized_expression "((uVar6 & 0x200) == 0)" ( (binary_expression "(uVar6 & 0x200) == 0" (parenthesized_expression "(uVar6 & 0x200)" ( (binary_expression "uVar6 & 0x200" identifier & number_literal) )) == number_literal) )) && (parenthesized_expression "((param_2 & 1) != 0)" ( (binary_expression "(param_2 & 1) != 0" (parenthesized_expression "(param_2 & 1)" ( (binary_expression "param_2 & 1" identifier & number_literal) )) != number_literal) ))) )) (compound_statement "{\n        *(undefined4 *)(param_1 + 0x2c) = 0;\n        iVar7 = FUN_0005f0c0();\n        if (iVar7 != 0) goto LAB_0006a356;\n      }" { (expression_statement "*(undefined4 *)(param_1 + 0x2c) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x2c) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x2c)" * (cast_expression "(undefined4 *)(param_1 + 0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2c)" ( (binary_expression "param_1 + 0x2c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar7 = FUN_0005f0c0();" (assignment_expression "iVar7 = FUN_0005f0c0()" identifier = (call_expression "FUN_0005f0c0()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar7 != 0) goto LAB_0006a356;" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0006a356;" goto statement_identifier ;)) })) }))) })) (expression_statement "piVar8 = *(int **)(param_1 + 0xd0);" (assignment_expression "piVar8 = *(int **)(param_1 + 0xd0)" identifier = (pointer_expression "*(int **)(param_1 + 0xd0)" * (cast_expression "(int **)(param_1 + 0xd0)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0xd0)" ( (binary_expression "param_1 + 0xd0" identifier + number_literal) ))))) ;) (for_statement "for (iVar7 = *piVar8; iVar7 != 0; iVar7 = *(int *)(iVar7 + 0x20)) {\n    *(ushort *)(iVar7 + 0x1c) = *(ushort *)(iVar7 + 0x1c) & 0xfff7;\n  }" for ( (assignment_expression "iVar7 = *piVar8" identifier = (pointer_expression "*piVar8" * identifier)) ; (binary_expression "iVar7 != 0" identifier != number_literal) ; (assignment_expression "iVar7 = *(int *)(iVar7 + 0x20)" identifier = (pointer_expression "*(int *)(iVar7 + 0x20)" * (cast_expression "(int *)(iVar7 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x20)" ( (binary_expression "iVar7 + 0x20" identifier + number_literal) ))))) ) (compound_statement "{\n    *(ushort *)(iVar7 + 0x1c) = *(ushort *)(iVar7 + 0x1c) & 0xfff7;\n  }" { (expression_statement "*(ushort *)(iVar7 + 0x1c) = *(ushort *)(iVar7 + 0x1c) & 0xfff7;" (assignment_expression "*(ushort *)(iVar7 + 0x1c) = *(ushort *)(iVar7 + 0x1c) & 0xfff7" (pointer_expression "*(ushort *)(iVar7 + 0x1c)" * (cast_expression "(ushort *)(iVar7 + 0x1c)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x1c)" ( (binary_expression "iVar7 + 0x1c" identifier + number_literal) )))) = (binary_expression "*(ushort *)(iVar7 + 0x1c) & 0xfff7" (pointer_expression "*(ushort *)(iVar7 + 0x1c)" * (cast_expression "(ushort *)(iVar7 + 0x1c)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x1c)" ( (binary_expression "iVar7 + 0x1c" identifier + number_literal) )))) & number_literal)) ;) })) (expression_statement "piVar8[2] = piVar8[1];" (assignment_expression "piVar8[2] = piVar8[1]" (subscript_expression "piVar8[2]" identifier [ number_literal ]) = (subscript_expression "piVar8[1]" identifier [ number_literal ])) ;) (expression_statement "*(undefined1 *)(param_1 + 0x10) = 4;" (assignment_expression "*(undefined1 *)(param_1 + 0x10) = 4" (pointer_expression "*(undefined1 *)(param_1 + 0x10)" * (cast_expression "(undefined1 *)(param_1 + 0x10)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar7 = iVar1;" (assignment_expression "iVar7 = iVar1" identifier = identifier) ;) (labeled_statement "LAB_0006a356:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_000a9ea0();\n  }" statement_identifier : (if_statement "if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_000a9ea0();\n  }" if (parenthesized_expression "(local_20 != *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "local_20 != *(int *)(in_GS_OFFSET + 0x14)" identifier != (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n                    \n    FUN_000a9ea0();\n  }" { (expression_statement "FUN_000a9ea0();" (call_expression "FUN_000a9ea0()" identifier (argument_list "()" ( ))) ;) }))) (return_statement "return iVar7;" return identifier ;) })))
(translation_unit (function_definition TYPE (ERROR IDENT) (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE 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 IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) || (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) , (binary_expression IDENT != LIT)) ))) )) ))) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' escape_sequence ')) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) == LIT) )) || (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' escape_sequence ')) ))) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) + LIT) ))))) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression (binary_expression IDENT >> LIT) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression IDENT << LIT))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT != LIT) || (binary_expression IDENT != LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , (binary_expression (binary_expression IDENT + LIT) + (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT != LIT) )))) , IDENT , LIT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) & LIT) )) * (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) + (binary_expression IDENT * (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) >> LIT) )))))) ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) + LIT) ))))) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (pointer_expression & IDENT) , LIT , IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != IDENT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = BOOL) , (binary_expression IDENT != IDENT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = BOOL) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (unary_expression ! IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , (pointer_expression & IDENT) , LIT , IDENT , IDENT )))) ;) (goto_statement goto statement_identifier ;) })) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (binary_expression IDENT != LIT) ))) )) (goto_statement goto statement_identifier ;))) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != (char_literal ' escape_sequence ')) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , (pointer_expression & IDENT) , LIT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , (pointer_expression & IDENT) , LIT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , (pointer_expression & IDENT) , LIT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (char_literal ' escape_sequence ')) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)))) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) + LIT) ))))) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT )))) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;))) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) && (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 *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) })) }))) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (for_statement for ( (assignment_expression IDENT = (pointer_expression * IDENT)) ; (binary_expression IDENT != LIT) ; (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (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 IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT)) ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) }))) (return_statement return IDENT ;) })))
(function_definition "int __regparm3 FUN_0006a1a0(int param_1,uint param_2)\n\n{\n  int iVar1;\n  uint uVar2;\n  longlong lVar3;\n  bool bVar4;\n  char cVar5;\n  uint uVar6;\n  int iVar7;\n  int *piVar8;\n  int in_GS_OFFSET;\n  longlong lVar9;\n  int local_54;\n  int local_50;\n  int local_34;\n  int local_30;\n  int local_2c;\n  int local_28;\n  uint local_24;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x6a1ab;\n  iVar1 = *(int *)(param_1 + 0x28);\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  iVar7 = iVar1;\n  if ((iVar1 != 0) || ((*(int *)(param_1 + 0xd4) == 0 && (iVar7 = FUN_000273d0(), iVar7 != 0))))\n  goto LAB_0006a356;\n  if (*(char *)(param_1 + 7) == '\0') {\n    if ((**(int **)(param_1 + 0x40) == 0) || (*(char *)(param_1 + 5) == '\x04')) {\nLAB_0006a320:\n      *(undefined4 *)(param_1 + 0x50) = *(undefined4 *)(param_1 + 0x48);\n      *(undefined4 *)(param_1 + 0x54) = *(undefined4 *)(param_1 + 0x4c);\n    }\n    else {\n      uVar6 = (**(code **)(**(int **)(param_1 + 0x3c) + 0x30))(*(int **)(param_1 + 0x3c));\n      if ((uVar6 & 0x200) == 0) {\n        local_2c = DAT_000b4d30;\n        local_28 = DAT_000b4d34;\n        uVar2 = *(uint *)(param_1 + 0x2c);\n        local_50 = *(int *)(param_1 + 0x4c);\n        local_24 = uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18;\n        local_54 = *(int *)(param_1 + 0x48);\n        if (local_50 != 0 || local_54 != 0) {\n          uVar2 = *(uint *)(param_1 + 0x90);\n          lVar9 = FUN_000a9510(local_54 + -1,local_50 + -1 + (uint)(local_54 != 0),uVar2,0);\n          lVar3 = (lVar9 + 1U & 0xffffffff) * (ulonglong)uVar2;\n          local_54 = (int)lVar3;\n          local_50 = (int)((ulonglong)lVar3 >> 0x20) + uVar2 * (int)(lVar9 + 1U >> 0x20);\n        }\n        iVar7 = (**(code **)(**(int **)(param_1 + 0x40) + 8))\n                          (*(int **)(param_1 + 0x40),&local_34,8,local_54,local_50);\n        if (iVar7 == 0) {\n          if ((local_34 != DAT_000b4d30) || (bVar4 = false, local_30 != DAT_000b4d34)) {\n            bVar4 = true;\n          }\n          piVar8 = *(int **)(param_1 + 0x40);\n          iVar7 = *piVar8;\n          if (!bVar4) {\n            iVar7 = (**(code **)(iVar7 + 0xc))(piVar8,&DAT_000b1224,1,local_54,local_50);\n            goto LAB_0006a303;\n          }\n        }\n        else {\nLAB_0006a303:\n          if ((iVar7 != 0) && (iVar7 != 0x20a)) goto LAB_0006a356;\n          piVar8 = *(int **)(param_1 + 0x40);\n          iVar7 = *piVar8;\n        }\n        if (*(char *)(param_1 + 8) != '\0') {\n          if ((uVar6 & 0x400) == 0) {\n            if (*(char *)(param_1 + 10) != '\0') {\n              iVar7 = (**(code **)(iVar7 + 0x14))(piVar8,*(char *)(param_1 + 10));\n              if (iVar7 != 0) goto LAB_0006a356;\n              piVar8 = *(int **)(param_1 + 0x40);\n              iVar7 = *piVar8;\n            }\n            iVar7 = (**(code **)(iVar7 + 0xc))\n                              (piVar8,&local_2c,0xc,*(undefined4 *)(param_1 + 0x50),\n                               *(undefined4 *)(param_1 + 0x54));\n            if (iVar7 != 0) goto LAB_0006a356;\n            goto LAB_0006a382;\n          }\n          iVar7 = (**(code **)(iVar7 + 0xc))\n                            (piVar8,&local_2c,0xc,*(undefined4 *)(param_1 + 0x50),\n                             *(undefined4 *)(param_1 + 0x54));\n          goto joined_r0x0006a4d6;\n        }\n        iVar7 = (**(code **)(iVar7 + 0xc))\n                          (piVar8,&local_2c,0xc,*(undefined4 *)(param_1 + 0x50),\n                           *(undefined4 *)(param_1 + 0x54));\n        if (iVar7 != 0) goto LAB_0006a356;\n        if ((uVar6 & 0x400) == 0) goto LAB_0006a382;\n      }\n      else {\n        if ((uVar6 & 0x400) != 0) goto LAB_0006a320;\nLAB_0006a382:\n        cVar5 = *(char *)(param_1 + 10);\n        if (cVar5 == '\x03') {\n          cVar5 = '\x13';\n        }\n        else if (cVar5 == '\0') goto LAB_0006a3aa;\n        iVar7 = (**(code **)(**(int **)(param_1 + 0x40) + 0x14))(*(int **)(param_1 + 0x40),cVar5);\njoined_r0x0006a4d6:\n        if (iVar7 != 0) goto LAB_0006a356;\n      }\nLAB_0006a3aa:\n      *(undefined4 *)(param_1 + 0x50) = *(undefined4 *)(param_1 + 0x48);\n      *(undefined4 *)(param_1 + 0x54) = *(undefined4 *)(param_1 + 0x4c);\n      if (((uVar6 & 0x200) == 0) && ((param_2 & 1) != 0)) {\n        *(undefined4 *)(param_1 + 0x2c) = 0;\n        iVar7 = FUN_0005f0c0();\n        if (iVar7 != 0) goto LAB_0006a356;\n      }\n    }\n  }\n  piVar8 = *(int **)(param_1 + 0xd0);\n  for (iVar7 = *piVar8; iVar7 != 0; iVar7 = *(int *)(iVar7 + 0x20)) {\n    *(ushort *)(iVar7 + 0x1c) = *(ushort *)(iVar7 + 0x1c) & 0xfff7;\n  }\n  piVar8[2] = piVar8[1];\n  *(undefined1 *)(param_1 + 0x10) = 4;\n  iVar7 = iVar1;\nLAB_0006a356:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_000a9ea0();\n  }\n  return iVar7;\n}" (primitive_type "int") (ERROR "__regparm3" (identifier "__regparm3")) (function_declarator "FUN_0006a1a0(int param_1,uint param_2)" (identifier "FUN_0006a1a0") (parameter_list "(int param_1,uint param_2)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) (, ",") (parameter_declaration "uint param_2" (type_identifier "uint") (identifier "param_2")) () ")"))) (compound_statement "{\n  int iVar1;\n  uint uVar2;\n  longlong lVar3;\n  bool bVar4;\n  char cVar5;\n  uint uVar6;\n  int iVar7;\n  int *piVar8;\n  int in_GS_OFFSET;\n  longlong lVar9;\n  int local_54;\n  int local_50;\n  int local_34;\n  int local_30;\n  int local_2c;\n  int local_28;\n  uint local_24;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x6a1ab;\n  iVar1 = *(int *)(param_1 + 0x28);\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  iVar7 = iVar1;\n  if ((iVar1 != 0) || ((*(int *)(param_1 + 0xd4) == 0 && (iVar7 = FUN_000273d0(), iVar7 != 0))))\n  goto LAB_0006a356;\n  if (*(char *)(param_1 + 7) == '\0') {\n    if ((**(int **)(param_1 + 0x40) == 0) || (*(char *)(param_1 + 5) == '\x04')) {\nLAB_0006a320:\n      *(undefined4 *)(param_1 + 0x50) = *(undefined4 *)(param_1 + 0x48);\n      *(undefined4 *)(param_1 + 0x54) = *(undefined4 *)(param_1 + 0x4c);\n    }\n    else {\n      uVar6 = (**(code **)(**(int **)(param_1 + 0x3c) + 0x30))(*(int **)(param_1 + 0x3c));\n      if ((uVar6 & 0x200) == 0) {\n        local_2c = DAT_000b4d30;\n        local_28 = DAT_000b4d34;\n        uVar2 = *(uint *)(param_1 + 0x2c);\n        local_50 = *(int *)(param_1 + 0x4c);\n        local_24 = uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18;\n        local_54 = *(int *)(param_1 + 0x48);\n        if (local_50 != 0 || local_54 != 0) {\n          uVar2 = *(uint *)(param_1 + 0x90);\n          lVar9 = FUN_000a9510(local_54 + -1,local_50 + -1 + (uint)(local_54 != 0),uVar2,0);\n          lVar3 = (lVar9 + 1U & 0xffffffff) * (ulonglong)uVar2;\n          local_54 = (int)lVar3;\n          local_50 = (int)((ulonglong)lVar3 >> 0x20) + uVar2 * (int)(lVar9 + 1U >> 0x20);\n        }\n        iVar7 = (**(code **)(**(int **)(param_1 + 0x40) + 8))\n                          (*(int **)(param_1 + 0x40),&local_34,8,local_54,local_50);\n        if (iVar7 == 0) {\n          if ((local_34 != DAT_000b4d30) || (bVar4 = false, local_30 != DAT_000b4d34)) {\n            bVar4 = true;\n          }\n          piVar8 = *(int **)(param_1 + 0x40);\n          iVar7 = *piVar8;\n          if (!bVar4) {\n            iVar7 = (**(code **)(iVar7 + 0xc))(piVar8,&DAT_000b1224,1,local_54,local_50);\n            goto LAB_0006a303;\n          }\n        }\n        else {\nLAB_0006a303:\n          if ((iVar7 != 0) && (iVar7 != 0x20a)) goto LAB_0006a356;\n          piVar8 = *(int **)(param_1 + 0x40);\n          iVar7 = *piVar8;\n        }\n        if (*(char *)(param_1 + 8) != '\0') {\n          if ((uVar6 & 0x400) == 0) {\n            if (*(char *)(param_1 + 10) != '\0') {\n              iVar7 = (**(code **)(iVar7 + 0x14))(piVar8,*(char *)(param_1 + 10));\n              if (iVar7 != 0) goto LAB_0006a356;\n              piVar8 = *(int **)(param_1 + 0x40);\n              iVar7 = *piVar8;\n            }\n            iVar7 = (**(code **)(iVar7 + 0xc))\n                              (piVar8,&local_2c,0xc,*(undefined4 *)(param_1 + 0x50),\n                               *(undefined4 *)(param_1 + 0x54));\n            if (iVar7 != 0) goto LAB_0006a356;\n            goto LAB_0006a382;\n          }\n          iVar7 = (**(code **)(iVar7 + 0xc))\n                            (piVar8,&local_2c,0xc,*(undefined4 *)(param_1 + 0x50),\n                             *(undefined4 *)(param_1 + 0x54));\n          goto joined_r0x0006a4d6;\n        }\n        iVar7 = (**(code **)(iVar7 + 0xc))\n                          (piVar8,&local_2c,0xc,*(undefined4 *)(param_1 + 0x50),\n                           *(undefined4 *)(param_1 + 0x54));\n        if (iVar7 != 0) goto LAB_0006a356;\n        if ((uVar6 & 0x400) == 0) goto LAB_0006a382;\n      }\n      else {\n        if ((uVar6 & 0x400) != 0) goto LAB_0006a320;\nLAB_0006a382:\n        cVar5 = *(char *)(param_1 + 10);\n        if (cVar5 == '\x03') {\n          cVar5 = '\x13';\n        }\n        else if (cVar5 == '\0') goto LAB_0006a3aa;\n        iVar7 = (**(code **)(**(int **)(param_1 + 0x40) + 0x14))(*(int **)(param_1 + 0x40),cVar5);\njoined_r0x0006a4d6:\n        if (iVar7 != 0) goto LAB_0006a356;\n      }\nLAB_0006a3aa:\n      *(undefined4 *)(param_1 + 0x50) = *(undefined4 *)(param_1 + 0x48);\n      *(undefined4 *)(param_1 + 0x54) = *(undefined4 *)(param_1 + 0x4c);\n      if (((uVar6 & 0x200) == 0) && ((param_2 & 1) != 0)) {\n        *(undefined4 *)(param_1 + 0x2c) = 0;\n        iVar7 = FUN_0005f0c0();\n        if (iVar7 != 0) goto LAB_0006a356;\n      }\n    }\n  }\n  piVar8 = *(int **)(param_1 + 0xd0);\n  for (iVar7 = *piVar8; iVar7 != 0; iVar7 = *(int *)(iVar7 + 0x20)) {\n    *(ushort *)(iVar7 + 0x1c) = *(ushort *)(iVar7 + 0x1c) & 0xfff7;\n  }\n  piVar8[2] = piVar8[1];\n  *(undefined1 *)(param_1 + 0x10) = 4;\n  iVar7 = iVar1;\nLAB_0006a356:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_000a9ea0();\n  }\n  return iVar7;\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (declaration "uint uVar2;" (type_identifier "uint") (identifier "uVar2") (; ";")) (declaration "longlong lVar3;" (type_identifier "longlong") (identifier "lVar3") (; ";")) (declaration "bool bVar4;" (primitive_type "bool") (identifier "bVar4") (; ";")) (declaration "char cVar5;" (primitive_type "char") (identifier "cVar5") (; ";")) (declaration "uint uVar6;" (type_identifier "uint") (identifier "uVar6") (; ";")) (declaration "int iVar7;" (primitive_type "int") (identifier "iVar7") (; ";")) (declaration "int *piVar8;" (primitive_type "int") (pointer_declarator "*piVar8" (* "*") (identifier "piVar8")) (; ";")) (declaration "int in_GS_OFFSET;" (primitive_type "int") (identifier "in_GS_OFFSET") (; ";")) (declaration "longlong lVar9;" (type_identifier "longlong") (identifier "lVar9") (; ";")) (declaration "int local_54;" (primitive_type "int") (identifier "local_54") (; ";")) (declaration "int local_50;" (primitive_type "int") (identifier "local_50") (; ";")) (declaration "int local_34;" (primitive_type "int") (identifier "local_34") (; ";")) (declaration "int local_30;" (primitive_type "int") (identifier "local_30") (; ";")) (declaration "int local_2c;" (primitive_type "int") (identifier "local_2c") (; ";")) (declaration "int local_28;" (primitive_type "int") (identifier "local_28") (; ";")) (declaration "uint local_24;" (type_identifier "uint") (identifier "local_24") (; ";")) (declaration "int local_20;" (primitive_type "int") (identifier "local_20") (; ";")) (declaration "undefined4 uStack_14;" (type_identifier "undefined4") (identifier "uStack_14") (; ";")) (expression_statement "uStack_14 = 0x6a1ab;" (assignment_expression "uStack_14 = 0x6a1ab" (identifier "uStack_14") (= "=") (number_literal "0x6a1ab")) (; ";")) (expression_statement "iVar1 = *(int *)(param_1 + 0x28);" (assignment_expression "iVar1 = *(int *)(param_1 + 0x28)" (identifier "iVar1") (= "=") (pointer_expression "*(int *)(param_1 + 0x28)" (* "*") (cast_expression "(int *)(param_1 + 0x28)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x28)" (( "(") (binary_expression "param_1 + 0x28" (identifier "param_1") (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (expression_statement "local_20 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_20 = *(int *)(in_GS_OFFSET + 0x14)" (identifier "local_20") (= "=") (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" (* "*") (cast_expression "(int *)(in_GS_OFFSET + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_GS_OFFSET + 0x14)" (( "(") (binary_expression "in_GS_OFFSET + 0x14" (identifier "in_GS_OFFSET") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (expression_statement "iVar7 = iVar1;" (assignment_expression "iVar7 = iVar1" (identifier "iVar7") (= "=") (identifier "iVar1")) (; ";")) (if_statement "if ((iVar1 != 0) || ((*(int *)(param_1 + 0xd4) == 0 && (iVar7 = FUN_000273d0(), iVar7 != 0))))\n  goto LAB_0006a356;" (if "if") (parenthesized_expression "((iVar1 != 0) || ((*(int *)(param_1 + 0xd4) == 0 && (iVar7 = FUN_000273d0(), iVar7 != 0))))" (( "(") (binary_expression "(iVar1 != 0) || ((*(int *)(param_1 + 0xd4) == 0 && (iVar7 = FUN_000273d0(), iVar7 != 0)))" (parenthesized_expression "(iVar1 != 0)" (( "(") (binary_expression "iVar1 != 0" (identifier "iVar1") (!= "!=") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "((*(int *)(param_1 + 0xd4) == 0 && (iVar7 = FUN_000273d0(), iVar7 != 0)))" (( "(") (parenthesized_expression "(*(int *)(param_1 + 0xd4) == 0 && (iVar7 = FUN_000273d0(), iVar7 != 0))" (( "(") (binary_expression "*(int *)(param_1 + 0xd4) == 0 && (iVar7 = FUN_000273d0(), iVar7 != 0)" (binary_expression "*(int *)(param_1 + 0xd4) == 0" (pointer_expression "*(int *)(param_1 + 0xd4)" (* "*") (cast_expression "(int *)(param_1 + 0xd4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xd4)" (( "(") (binary_expression "param_1 + 0xd4" (identifier "param_1") (+ "+") (number_literal "0xd4")) () ")")))) (== "==") (number_literal "0")) (&& "&&") (parenthesized_expression "(iVar7 = FUN_000273d0(), iVar7 != 0)" (( "(") (comma_expression "iVar7 = FUN_000273d0(), iVar7 != 0" (assignment_expression "iVar7 = FUN_000273d0()" (identifier "iVar7") (= "=") (call_expression "FUN_000273d0()" (identifier "FUN_000273d0") (argument_list "()" (( "(") () ")")))) (, ",") (binary_expression "iVar7 != 0" (identifier "iVar7") (!= "!=") (number_literal "0"))) () ")"))) () ")")) () ")"))) () ")")) (goto_statement "goto LAB_0006a356;" (goto "goto") (statement_identifier "LAB_0006a356") (; ";"))) (if_statement "if (*(char *)(param_1 + 7) == '\0') {\n    if ((**(int **)(param_1 + 0x40) == 0) || (*(char *)(param_1 + 5) == '\x04')) {\nLAB_0006a320:\n      *(undefined4 *)(param_1 + 0x50) = *(undefined4 *)(param_1 + 0x48);\n      *(undefined4 *)(param_1 + 0x54) = *(undefined4 *)(param_1 + 0x4c);\n    }\n    else {\n      uVar6 = (**(code **)(**(int **)(param_1 + 0x3c) + 0x30))(*(int **)(param_1 + 0x3c));\n      if ((uVar6 & 0x200) == 0) {\n        local_2c = DAT_000b4d30;\n        local_28 = DAT_000b4d34;\n        uVar2 = *(uint *)(param_1 + 0x2c);\n        local_50 = *(int *)(param_1 + 0x4c);\n        local_24 = uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18;\n        local_54 = *(int *)(param_1 + 0x48);\n        if (local_50 != 0 || local_54 != 0) {\n          uVar2 = *(uint *)(param_1 + 0x90);\n          lVar9 = FUN_000a9510(local_54 + -1,local_50 + -1 + (uint)(local_54 != 0),uVar2,0);\n          lVar3 = (lVar9 + 1U & 0xffffffff) * (ulonglong)uVar2;\n          local_54 = (int)lVar3;\n          local_50 = (int)((ulonglong)lVar3 >> 0x20) + uVar2 * (int)(lVar9 + 1U >> 0x20);\n        }\n        iVar7 = (**(code **)(**(int **)(param_1 + 0x40) + 8))\n                          (*(int **)(param_1 + 0x40),&local_34,8,local_54,local_50);\n        if (iVar7 == 0) {\n          if ((local_34 != DAT_000b4d30) || (bVar4 = false, local_30 != DAT_000b4d34)) {\n            bVar4 = true;\n          }\n          piVar8 = *(int **)(param_1 + 0x40);\n          iVar7 = *piVar8;\n          if (!bVar4) {\n            iVar7 = (**(code **)(iVar7 + 0xc))(piVar8,&DAT_000b1224,1,local_54,local_50);\n            goto LAB_0006a303;\n          }\n        }\n        else {\nLAB_0006a303:\n          if ((iVar7 != 0) && (iVar7 != 0x20a)) goto LAB_0006a356;\n          piVar8 = *(int **)(param_1 + 0x40);\n          iVar7 = *piVar8;\n        }\n        if (*(char *)(param_1 + 8) != '\0') {\n          if ((uVar6 & 0x400) == 0) {\n            if (*(char *)(param_1 + 10) != '\0') {\n              iVar7 = (**(code **)(iVar7 + 0x14))(piVar8,*(char *)(param_1 + 10));\n              if (iVar7 != 0) goto LAB_0006a356;\n              piVar8 = *(int **)(param_1 + 0x40);\n              iVar7 = *piVar8;\n            }\n            iVar7 = (**(code **)(iVar7 + 0xc))\n                              (piVar8,&local_2c,0xc,*(undefined4 *)(param_1 + 0x50),\n                               *(undefined4 *)(param_1 + 0x54));\n            if (iVar7 != 0) goto LAB_0006a356;\n            goto LAB_0006a382;\n          }\n          iVar7 = (**(code **)(iVar7 + 0xc))\n                            (piVar8,&local_2c,0xc,*(undefined4 *)(param_1 + 0x50),\n                             *(undefined4 *)(param_1 + 0x54));\n          goto joined_r0x0006a4d6;\n        }\n        iVar7 = (**(code **)(iVar7 + 0xc))\n                          (piVar8,&local_2c,0xc,*(undefined4 *)(param_1 + 0x50),\n                           *(undefined4 *)(param_1 + 0x54));\n        if (iVar7 != 0) goto LAB_0006a356;\n        if ((uVar6 & 0x400) == 0) goto LAB_0006a382;\n      }\n      else {\n        if ((uVar6 & 0x400) != 0) goto LAB_0006a320;\nLAB_0006a382:\n        cVar5 = *(char *)(param_1 + 10);\n        if (cVar5 == '\x03') {\n          cVar5 = '\x13';\n        }\n        else if (cVar5 == '\0') goto LAB_0006a3aa;\n        iVar7 = (**(code **)(**(int **)(param_1 + 0x40) + 0x14))(*(int **)(param_1 + 0x40),cVar5);\njoined_r0x0006a4d6:\n        if (iVar7 != 0) goto LAB_0006a356;\n      }\nLAB_0006a3aa:\n      *(undefined4 *)(param_1 + 0x50) = *(undefined4 *)(param_1 + 0x48);\n      *(undefined4 *)(param_1 + 0x54) = *(undefined4 *)(param_1 + 0x4c);\n      if (((uVar6 & 0x200) == 0) && ((param_2 & 1) != 0)) {\n        *(undefined4 *)(param_1 + 0x2c) = 0;\n        iVar7 = FUN_0005f0c0();\n        if (iVar7 != 0) goto LAB_0006a356;\n      }\n    }\n  }" (if "if") (parenthesized_expression "(*(char *)(param_1 + 7) == '\0')" (( "(") (binary_expression "*(char *)(param_1 + 7) == '\0'" (pointer_expression "*(char *)(param_1 + 7)" (* "*") (cast_expression "(char *)(param_1 + 7)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 7)" (( "(") (binary_expression "param_1 + 7" (identifier "param_1") (+ "+") (number_literal "7")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n    if ((**(int **)(param_1 + 0x40) == 0) || (*(char *)(param_1 + 5) == '\x04')) {\nLAB_0006a320:\n      *(undefined4 *)(param_1 + 0x50) = *(undefined4 *)(param_1 + 0x48);\n      *(undefined4 *)(param_1 + 0x54) = *(undefined4 *)(param_1 + 0x4c);\n    }\n    else {\n      uVar6 = (**(code **)(**(int **)(param_1 + 0x3c) + 0x30))(*(int **)(param_1 + 0x3c));\n      if ((uVar6 & 0x200) == 0) {\n        local_2c = DAT_000b4d30;\n        local_28 = DAT_000b4d34;\n        uVar2 = *(uint *)(param_1 + 0x2c);\n        local_50 = *(int *)(param_1 + 0x4c);\n        local_24 = uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18;\n        local_54 = *(int *)(param_1 + 0x48);\n        if (local_50 != 0 || local_54 != 0) {\n          uVar2 = *(uint *)(param_1 + 0x90);\n          lVar9 = FUN_000a9510(local_54 + -1,local_50 + -1 + (uint)(local_54 != 0),uVar2,0);\n          lVar3 = (lVar9 + 1U & 0xffffffff) * (ulonglong)uVar2;\n          local_54 = (int)lVar3;\n          local_50 = (int)((ulonglong)lVar3 >> 0x20) + uVar2 * (int)(lVar9 + 1U >> 0x20);\n        }\n        iVar7 = (**(code **)(**(int **)(param_1 + 0x40) + 8))\n                          (*(int **)(param_1 + 0x40),&local_34,8,local_54,local_50);\n        if (iVar7 == 0) {\n          if ((local_34 != DAT_000b4d30) || (bVar4 = false, local_30 != DAT_000b4d34)) {\n            bVar4 = true;\n          }\n          piVar8 = *(int **)(param_1 + 0x40);\n          iVar7 = *piVar8;\n          if (!bVar4) {\n            iVar7 = (**(code **)(iVar7 + 0xc))(piVar8,&DAT_000b1224,1,local_54,local_50);\n            goto LAB_0006a303;\n          }\n        }\n        else {\nLAB_0006a303:\n          if ((iVar7 != 0) && (iVar7 != 0x20a)) goto LAB_0006a356;\n          piVar8 = *(int **)(param_1 + 0x40);\n          iVar7 = *piVar8;\n        }\n        if (*(char *)(param_1 + 8) != '\0') {\n          if ((uVar6 & 0x400) == 0) {\n            if (*(char *)(param_1 + 10) != '\0') {\n              iVar7 = (**(code **)(iVar7 + 0x14))(piVar8,*(char *)(param_1 + 10));\n              if (iVar7 != 0) goto LAB_0006a356;\n              piVar8 = *(int **)(param_1 + 0x40);\n              iVar7 = *piVar8;\n            }\n            iVar7 = (**(code **)(iVar7 + 0xc))\n                              (piVar8,&local_2c,0xc,*(undefined4 *)(param_1 + 0x50),\n                               *(undefined4 *)(param_1 + 0x54));\n            if (iVar7 != 0) goto LAB_0006a356;\n            goto LAB_0006a382;\n          }\n          iVar7 = (**(code **)(iVar7 + 0xc))\n                            (piVar8,&local_2c,0xc,*(undefined4 *)(param_1 + 0x50),\n                             *(undefined4 *)(param_1 + 0x54));\n          goto joined_r0x0006a4d6;\n        }\n        iVar7 = (**(code **)(iVar7 + 0xc))\n                          (piVar8,&local_2c,0xc,*(undefined4 *)(param_1 + 0x50),\n                           *(undefined4 *)(param_1 + 0x54));\n        if (iVar7 != 0) goto LAB_0006a356;\n        if ((uVar6 & 0x400) == 0) goto LAB_0006a382;\n      }\n      else {\n        if ((uVar6 & 0x400) != 0) goto LAB_0006a320;\nLAB_0006a382:\n        cVar5 = *(char *)(param_1 + 10);\n        if (cVar5 == '\x03') {\n          cVar5 = '\x13';\n        }\n        else if (cVar5 == '\0') goto LAB_0006a3aa;\n        iVar7 = (**(code **)(**(int **)(param_1 + 0x40) + 0x14))(*(int **)(param_1 + 0x40),cVar5);\njoined_r0x0006a4d6:\n        if (iVar7 != 0) goto LAB_0006a356;\n      }\nLAB_0006a3aa:\n      *(undefined4 *)(param_1 + 0x50) = *(undefined4 *)(param_1 + 0x48);\n      *(undefined4 *)(param_1 + 0x54) = *(undefined4 *)(param_1 + 0x4c);\n      if (((uVar6 & 0x200) == 0) && ((param_2 & 1) != 0)) {\n        *(undefined4 *)(param_1 + 0x2c) = 0;\n        iVar7 = FUN_0005f0c0();\n        if (iVar7 != 0) goto LAB_0006a356;\n      }\n    }\n  }" ({ "{") (if_statement "if ((**(int **)(param_1 + 0x40) == 0) || (*(char *)(param_1 + 5) == '\x04')) {\nLAB_0006a320:\n      *(undefined4 *)(param_1 + 0x50) = *(undefined4 *)(param_1 + 0x48);\n      *(undefined4 *)(param_1 + 0x54) = *(undefined4 *)(param_1 + 0x4c);\n    }\n    else {\n      uVar6 = (**(code **)(**(int **)(param_1 + 0x3c) + 0x30))(*(int **)(param_1 + 0x3c));\n      if ((uVar6 & 0x200) == 0) {\n        local_2c = DAT_000b4d30;\n        local_28 = DAT_000b4d34;\n        uVar2 = *(uint *)(param_1 + 0x2c);\n        local_50 = *(int *)(param_1 + 0x4c);\n        local_24 = uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18;\n        local_54 = *(int *)(param_1 + 0x48);\n        if (local_50 != 0 || local_54 != 0) {\n          uVar2 = *(uint *)(param_1 + 0x90);\n          lVar9 = FUN_000a9510(local_54 + -1,local_50 + -1 + (uint)(local_54 != 0),uVar2,0);\n          lVar3 = (lVar9 + 1U & 0xffffffff) * (ulonglong)uVar2;\n          local_54 = (int)lVar3;\n          local_50 = (int)((ulonglong)lVar3 >> 0x20) + uVar2 * (int)(lVar9 + 1U >> 0x20);\n        }\n        iVar7 = (**(code **)(**(int **)(param_1 + 0x40) + 8))\n                          (*(int **)(param_1 + 0x40),&local_34,8,local_54,local_50);\n        if (iVar7 == 0) {\n          if ((local_34 != DAT_000b4d30) || (bVar4 = false, local_30 != DAT_000b4d34)) {\n            bVar4 = true;\n          }\n          piVar8 = *(int **)(param_1 + 0x40);\n          iVar7 = *piVar8;\n          if (!bVar4) {\n            iVar7 = (**(code **)(iVar7 + 0xc))(piVar8,&DAT_000b1224,1,local_54,local_50);\n            goto LAB_0006a303;\n          }\n        }\n        else {\nLAB_0006a303:\n          if ((iVar7 != 0) && (iVar7 != 0x20a)) goto LAB_0006a356;\n          piVar8 = *(int **)(param_1 + 0x40);\n          iVar7 = *piVar8;\n        }\n        if (*(char *)(param_1 + 8) != '\0') {\n          if ((uVar6 & 0x400) == 0) {\n            if (*(char *)(param_1 + 10) != '\0') {\n              iVar7 = (**(code **)(iVar7 + 0x14))(piVar8,*(char *)(param_1 + 10));\n              if (iVar7 != 0) goto LAB_0006a356;\n              piVar8 = *(int **)(param_1 + 0x40);\n              iVar7 = *piVar8;\n            }\n            iVar7 = (**(code **)(iVar7 + 0xc))\n                              (piVar8,&local_2c,0xc,*(undefined4 *)(param_1 + 0x50),\n                               *(undefined4 *)(param_1 + 0x54));\n            if (iVar7 != 0) goto LAB_0006a356;\n            goto LAB_0006a382;\n          }\n          iVar7 = (**(code **)(iVar7 + 0xc))\n                            (piVar8,&local_2c,0xc,*(undefined4 *)(param_1 + 0x50),\n                             *(undefined4 *)(param_1 + 0x54));\n          goto joined_r0x0006a4d6;\n        }\n        iVar7 = (**(code **)(iVar7 + 0xc))\n                          (piVar8,&local_2c,0xc,*(undefined4 *)(param_1 + 0x50),\n                           *(undefined4 *)(param_1 + 0x54));\n        if (iVar7 != 0) goto LAB_0006a356;\n        if ((uVar6 & 0x400) == 0) goto LAB_0006a382;\n      }\n      else {\n        if ((uVar6 & 0x400) != 0) goto LAB_0006a320;\nLAB_0006a382:\n        cVar5 = *(char *)(param_1 + 10);\n        if (cVar5 == '\x03') {\n          cVar5 = '\x13';\n        }\n        else if (cVar5 == '\0') goto LAB_0006a3aa;\n        iVar7 = (**(code **)(**(int **)(param_1 + 0x40) + 0x14))(*(int **)(param_1 + 0x40),cVar5);\njoined_r0x0006a4d6:\n        if (iVar7 != 0) goto LAB_0006a356;\n      }\nLAB_0006a3aa:\n      *(undefined4 *)(param_1 + 0x50) = *(undefined4 *)(param_1 + 0x48);\n      *(undefined4 *)(param_1 + 0x54) = *(undefined4 *)(param_1 + 0x4c);\n      if (((uVar6 & 0x200) == 0) && ((param_2 & 1) != 0)) {\n        *(undefined4 *)(param_1 + 0x2c) = 0;\n        iVar7 = FUN_0005f0c0();\n        if (iVar7 != 0) goto LAB_0006a356;\n      }\n    }" (if "if") (parenthesized_expression "((**(int **)(param_1 + 0x40) == 0) || (*(char *)(param_1 + 5) == '\x04'))" (( "(") (binary_expression "(**(int **)(param_1 + 0x40) == 0) || (*(char *)(param_1 + 5) == '\x04')" (parenthesized_expression "(**(int **)(param_1 + 0x40) == 0)" (( "(") (binary_expression "**(int **)(param_1 + 0x40) == 0" (pointer_expression "**(int **)(param_1 + 0x40)" (* "*") (pointer_expression "*(int **)(param_1 + 0x40)" (* "*") (cast_expression "(int **)(param_1 + 0x40)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x40)" (( "(") (binary_expression "param_1 + 0x40" (identifier "param_1") (+ "+") (number_literal "0x40")) () ")"))))) (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(*(char *)(param_1 + 5) == '\x04')" (( "(") (binary_expression "*(char *)(param_1 + 5) == '\x04'" (pointer_expression "*(char *)(param_1 + 5)" (* "*") (cast_expression "(char *)(param_1 + 5)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 5)" (( "(") (binary_expression "param_1 + 5" (identifier "param_1") (+ "+") (number_literal "5")) () ")")))) (== "==") (char_literal "'\x04'" (' "'") (escape_sequence "\x04") (' "'"))) () ")"))) () ")")) (compound_statement "{\nLAB_0006a320:\n      *(undefined4 *)(param_1 + 0x50) = *(undefined4 *)(param_1 + 0x48);\n      *(undefined4 *)(param_1 + 0x54) = *(undefined4 *)(param_1 + 0x4c);\n    }" ({ "{") (labeled_statement "LAB_0006a320:\n      *(undefined4 *)(param_1 + 0x50) = *(undefined4 *)(param_1 + 0x48);" (statement_identifier "LAB_0006a320") (: ":") (expression_statement "*(undefined4 *)(param_1 + 0x50) = *(undefined4 *)(param_1 + 0x48);" (assignment_expression "*(undefined4 *)(param_1 + 0x50) = *(undefined4 *)(param_1 + 0x48)" (pointer_expression "*(undefined4 *)(param_1 + 0x50)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x50)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x50)" (( "(") (binary_expression "param_1 + 0x50" (identifier "param_1") (+ "+") (number_literal "0x50")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(param_1 + 0x48)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x48)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x48)" (( "(") (binary_expression "param_1 + 0x48" (identifier "param_1") (+ "+") (number_literal "0x48")) () ")"))))) (; ";"))) (expression_statement "*(undefined4 *)(param_1 + 0x54) = *(undefined4 *)(param_1 + 0x4c);" (assignment_expression "*(undefined4 *)(param_1 + 0x54) = *(undefined4 *)(param_1 + 0x4c)" (pointer_expression "*(undefined4 *)(param_1 + 0x54)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x54)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x54)" (( "(") (binary_expression "param_1 + 0x54" (identifier "param_1") (+ "+") (number_literal "0x54")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(param_1 + 0x4c)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x4c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x4c)" (( "(") (binary_expression "param_1 + 0x4c" (identifier "param_1") (+ "+") (number_literal "0x4c")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n      uVar6 = (**(code **)(**(int **)(param_1 + 0x3c) + 0x30))(*(int **)(param_1 + 0x3c));\n      if ((uVar6 & 0x200) == 0) {\n        local_2c = DAT_000b4d30;\n        local_28 = DAT_000b4d34;\n        uVar2 = *(uint *)(param_1 + 0x2c);\n        local_50 = *(int *)(param_1 + 0x4c);\n        local_24 = uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18;\n        local_54 = *(int *)(param_1 + 0x48);\n        if (local_50 != 0 || local_54 != 0) {\n          uVar2 = *(uint *)(param_1 + 0x90);\n          lVar9 = FUN_000a9510(local_54 + -1,local_50 + -1 + (uint)(local_54 != 0),uVar2,0);\n          lVar3 = (lVar9 + 1U & 0xffffffff) * (ulonglong)uVar2;\n          local_54 = (int)lVar3;\n          local_50 = (int)((ulonglong)lVar3 >> 0x20) + uVar2 * (int)(lVar9 + 1U >> 0x20);\n        }\n        iVar7 = (**(code **)(**(int **)(param_1 + 0x40) + 8))\n                          (*(int **)(param_1 + 0x40),&local_34,8,local_54,local_50);\n        if (iVar7 == 0) {\n          if ((local_34 != DAT_000b4d30) || (bVar4 = false, local_30 != DAT_000b4d34)) {\n            bVar4 = true;\n          }\n          piVar8 = *(int **)(param_1 + 0x40);\n          iVar7 = *piVar8;\n          if (!bVar4) {\n            iVar7 = (**(code **)(iVar7 + 0xc))(piVar8,&DAT_000b1224,1,local_54,local_50);\n            goto LAB_0006a303;\n          }\n        }\n        else {\nLAB_0006a303:\n          if ((iVar7 != 0) && (iVar7 != 0x20a)) goto LAB_0006a356;\n          piVar8 = *(int **)(param_1 + 0x40);\n          iVar7 = *piVar8;\n        }\n        if (*(char *)(param_1 + 8) != '\0') {\n          if ((uVar6 & 0x400) == 0) {\n            if (*(char *)(param_1 + 10) != '\0') {\n              iVar7 = (**(code **)(iVar7 + 0x14))(piVar8,*(char *)(param_1 + 10));\n              if (iVar7 != 0) goto LAB_0006a356;\n              piVar8 = *(int **)(param_1 + 0x40);\n              iVar7 = *piVar8;\n            }\n            iVar7 = (**(code **)(iVar7 + 0xc))\n                              (piVar8,&local_2c,0xc,*(undefined4 *)(param_1 + 0x50),\n                               *(undefined4 *)(param_1 + 0x54));\n            if (iVar7 != 0) goto LAB_0006a356;\n            goto LAB_0006a382;\n          }\n          iVar7 = (**(code **)(iVar7 + 0xc))\n                            (piVar8,&local_2c,0xc,*(undefined4 *)(param_1 + 0x50),\n                             *(undefined4 *)(param_1 + 0x54));\n          goto joined_r0x0006a4d6;\n        }\n        iVar7 = (**(code **)(iVar7 + 0xc))\n                          (piVar8,&local_2c,0xc,*(undefined4 *)(param_1 + 0x50),\n                           *(undefined4 *)(param_1 + 0x54));\n        if (iVar7 != 0) goto LAB_0006a356;\n        if ((uVar6 & 0x400) == 0) goto LAB_0006a382;\n      }\n      else {\n        if ((uVar6 & 0x400) != 0) goto LAB_0006a320;\nLAB_0006a382:\n        cVar5 = *(char *)(param_1 + 10);\n        if (cVar5 == '\x03') {\n          cVar5 = '\x13';\n        }\n        else if (cVar5 == '\0') goto LAB_0006a3aa;\n        iVar7 = (**(code **)(**(int **)(param_1 + 0x40) + 0x14))(*(int **)(param_1 + 0x40),cVar5);\njoined_r0x0006a4d6:\n        if (iVar7 != 0) goto LAB_0006a356;\n      }\nLAB_0006a3aa:\n      *(undefined4 *)(param_1 + 0x50) = *(undefined4 *)(param_1 + 0x48);\n      *(undefined4 *)(param_1 + 0x54) = *(undefined4 *)(param_1 + 0x4c);\n      if (((uVar6 & 0x200) == 0) && ((param_2 & 1) != 0)) {\n        *(undefined4 *)(param_1 + 0x2c) = 0;\n        iVar7 = FUN_0005f0c0();\n        if (iVar7 != 0) goto LAB_0006a356;\n      }\n    }" (else "else") (compound_statement "{\n      uVar6 = (**(code **)(**(int **)(param_1 + 0x3c) + 0x30))(*(int **)(param_1 + 0x3c));\n      if ((uVar6 & 0x200) == 0) {\n        local_2c = DAT_000b4d30;\n        local_28 = DAT_000b4d34;\n        uVar2 = *(uint *)(param_1 + 0x2c);\n        local_50 = *(int *)(param_1 + 0x4c);\n        local_24 = uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18;\n        local_54 = *(int *)(param_1 + 0x48);\n        if (local_50 != 0 || local_54 != 0) {\n          uVar2 = *(uint *)(param_1 + 0x90);\n          lVar9 = FUN_000a9510(local_54 + -1,local_50 + -1 + (uint)(local_54 != 0),uVar2,0);\n          lVar3 = (lVar9 + 1U & 0xffffffff) * (ulonglong)uVar2;\n          local_54 = (int)lVar3;\n          local_50 = (int)((ulonglong)lVar3 >> 0x20) + uVar2 * (int)(lVar9 + 1U >> 0x20);\n        }\n        iVar7 = (**(code **)(**(int **)(param_1 + 0x40) + 8))\n                          (*(int **)(param_1 + 0x40),&local_34,8,local_54,local_50);\n        if (iVar7 == 0) {\n          if ((local_34 != DAT_000b4d30) || (bVar4 = false, local_30 != DAT_000b4d34)) {\n            bVar4 = true;\n          }\n          piVar8 = *(int **)(param_1 + 0x40);\n          iVar7 = *piVar8;\n          if (!bVar4) {\n            iVar7 = (**(code **)(iVar7 + 0xc))(piVar8,&DAT_000b1224,1,local_54,local_50);\n            goto LAB_0006a303;\n          }\n        }\n        else {\nLAB_0006a303:\n          if ((iVar7 != 0) && (iVar7 != 0x20a)) goto LAB_0006a356;\n          piVar8 = *(int **)(param_1 + 0x40);\n          iVar7 = *piVar8;\n        }\n        if (*(char *)(param_1 + 8) != '\0') {\n          if ((uVar6 & 0x400) == 0) {\n            if (*(char *)(param_1 + 10) != '\0') {\n              iVar7 = (**(code **)(iVar7 + 0x14))(piVar8,*(char *)(param_1 + 10));\n              if (iVar7 != 0) goto LAB_0006a356;\n              piVar8 = *(int **)(param_1 + 0x40);\n              iVar7 = *piVar8;\n            }\n            iVar7 = (**(code **)(iVar7 + 0xc))\n                              (piVar8,&local_2c,0xc,*(undefined4 *)(param_1 + 0x50),\n                               *(undefined4 *)(param_1 + 0x54));\n            if (iVar7 != 0) goto LAB_0006a356;\n            goto LAB_0006a382;\n          }\n          iVar7 = (**(code **)(iVar7 + 0xc))\n                            (piVar8,&local_2c,0xc,*(undefined4 *)(param_1 + 0x50),\n                             *(undefined4 *)(param_1 + 0x54));\n          goto joined_r0x0006a4d6;\n        }\n        iVar7 = (**(code **)(iVar7 + 0xc))\n                          (piVar8,&local_2c,0xc,*(undefined4 *)(param_1 + 0x50),\n                           *(undefined4 *)(param_1 + 0x54));\n        if (iVar7 != 0) goto LAB_0006a356;\n        if ((uVar6 & 0x400) == 0) goto LAB_0006a382;\n      }\n      else {\n        if ((uVar6 & 0x400) != 0) goto LAB_0006a320;\nLAB_0006a382:\n        cVar5 = *(char *)(param_1 + 10);\n        if (cVar5 == '\x03') {\n          cVar5 = '\x13';\n        }\n        else if (cVar5 == '\0') goto LAB_0006a3aa;\n        iVar7 = (**(code **)(**(int **)(param_1 + 0x40) + 0x14))(*(int **)(param_1 + 0x40),cVar5);\njoined_r0x0006a4d6:\n        if (iVar7 != 0) goto LAB_0006a356;\n      }\nLAB_0006a3aa:\n      *(undefined4 *)(param_1 + 0x50) = *(undefined4 *)(param_1 + 0x48);\n      *(undefined4 *)(param_1 + 0x54) = *(undefined4 *)(param_1 + 0x4c);\n      if (((uVar6 & 0x200) == 0) && ((param_2 & 1) != 0)) {\n        *(undefined4 *)(param_1 + 0x2c) = 0;\n        iVar7 = FUN_0005f0c0();\n        if (iVar7 != 0) goto LAB_0006a356;\n      }\n    }" ({ "{") (expression_statement "uVar6 = (**(code **)(**(int **)(param_1 + 0x3c) + 0x30))(*(int **)(param_1 + 0x3c));" (assignment_expression "uVar6 = (**(code **)(**(int **)(param_1 + 0x3c) + 0x30))(*(int **)(param_1 + 0x3c))" (identifier "uVar6") (= "=") (call_expression "(**(code **)(**(int **)(param_1 + 0x3c) + 0x30))(*(int **)(param_1 + 0x3c))" (parenthesized_expression "(**(code **)(**(int **)(param_1 + 0x3c) + 0x30))" (( "(") (pointer_expression "**(code **)(**(int **)(param_1 + 0x3c) + 0x30)" (* "*") (pointer_expression "*(code **)(**(int **)(param_1 + 0x3c) + 0x30)" (* "*") (cast_expression "(code **)(**(int **)(param_1 + 0x3c) + 0x30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(**(int **)(param_1 + 0x3c) + 0x30)" (( "(") (binary_expression "**(int **)(param_1 + 0x3c) + 0x30" (pointer_expression "**(int **)(param_1 + 0x3c)" (* "*") (pointer_expression "*(int **)(param_1 + 0x3c)" (* "*") (cast_expression "(int **)(param_1 + 0x3c)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x3c)" (( "(") (binary_expression "param_1 + 0x3c" (identifier "param_1") (+ "+") (number_literal "0x3c")) () ")"))))) (+ "+") (number_literal "0x30")) () ")"))))) () ")")) (argument_list "(*(int **)(param_1 + 0x3c))" (( "(") (pointer_expression "*(int **)(param_1 + 0x3c)" (* "*") (cast_expression "(int **)(param_1 + 0x3c)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x3c)" (( "(") (binary_expression "param_1 + 0x3c" (identifier "param_1") (+ "+") (number_literal "0x3c")) () ")")))) () ")")))) (; ";")) (if_statement "if ((uVar6 & 0x200) == 0) {\n        local_2c = DAT_000b4d30;\n        local_28 = DAT_000b4d34;\n        uVar2 = *(uint *)(param_1 + 0x2c);\n        local_50 = *(int *)(param_1 + 0x4c);\n        local_24 = uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18;\n        local_54 = *(int *)(param_1 + 0x48);\n        if (local_50 != 0 || local_54 != 0) {\n          uVar2 = *(uint *)(param_1 + 0x90);\n          lVar9 = FUN_000a9510(local_54 + -1,local_50 + -1 + (uint)(local_54 != 0),uVar2,0);\n          lVar3 = (lVar9 + 1U & 0xffffffff) * (ulonglong)uVar2;\n          local_54 = (int)lVar3;\n          local_50 = (int)((ulonglong)lVar3 >> 0x20) + uVar2 * (int)(lVar9 + 1U >> 0x20);\n        }\n        iVar7 = (**(code **)(**(int **)(param_1 + 0x40) + 8))\n                          (*(int **)(param_1 + 0x40),&local_34,8,local_54,local_50);\n        if (iVar7 == 0) {\n          if ((local_34 != DAT_000b4d30) || (bVar4 = false, local_30 != DAT_000b4d34)) {\n            bVar4 = true;\n          }\n          piVar8 = *(int **)(param_1 + 0x40);\n          iVar7 = *piVar8;\n          if (!bVar4) {\n            iVar7 = (**(code **)(iVar7 + 0xc))(piVar8,&DAT_000b1224,1,local_54,local_50);\n            goto LAB_0006a303;\n          }\n        }\n        else {\nLAB_0006a303:\n          if ((iVar7 != 0) && (iVar7 != 0x20a)) goto LAB_0006a356;\n          piVar8 = *(int **)(param_1 + 0x40);\n          iVar7 = *piVar8;\n        }\n        if (*(char *)(param_1 + 8) != '\0') {\n          if ((uVar6 & 0x400) == 0) {\n            if (*(char *)(param_1 + 10) != '\0') {\n              iVar7 = (**(code **)(iVar7 + 0x14))(piVar8,*(char *)(param_1 + 10));\n              if (iVar7 != 0) goto LAB_0006a356;\n              piVar8 = *(int **)(param_1 + 0x40);\n              iVar7 = *piVar8;\n            }\n            iVar7 = (**(code **)(iVar7 + 0xc))\n                              (piVar8,&local_2c,0xc,*(undefined4 *)(param_1 + 0x50),\n                               *(undefined4 *)(param_1 + 0x54));\n            if (iVar7 != 0) goto LAB_0006a356;\n            goto LAB_0006a382;\n          }\n          iVar7 = (**(code **)(iVar7 + 0xc))\n                            (piVar8,&local_2c,0xc,*(undefined4 *)(param_1 + 0x50),\n                             *(undefined4 *)(param_1 + 0x54));\n          goto joined_r0x0006a4d6;\n        }\n        iVar7 = (**(code **)(iVar7 + 0xc))\n                          (piVar8,&local_2c,0xc,*(undefined4 *)(param_1 + 0x50),\n                           *(undefined4 *)(param_1 + 0x54));\n        if (iVar7 != 0) goto LAB_0006a356;\n        if ((uVar6 & 0x400) == 0) goto LAB_0006a382;\n      }\n      else {\n        if ((uVar6 & 0x400) != 0) goto LAB_0006a320;\nLAB_0006a382:\n        cVar5 = *(char *)(param_1 + 10);\n        if (cVar5 == '\x03') {\n          cVar5 = '\x13';\n        }\n        else if (cVar5 == '\0') goto LAB_0006a3aa;\n        iVar7 = (**(code **)(**(int **)(param_1 + 0x40) + 0x14))(*(int **)(param_1 + 0x40),cVar5);\njoined_r0x0006a4d6:\n        if (iVar7 != 0) goto LAB_0006a356;\n      }" (if "if") (parenthesized_expression "((uVar6 & 0x200) == 0)" (( "(") (binary_expression "(uVar6 & 0x200) == 0" (parenthesized_expression "(uVar6 & 0x200)" (( "(") (binary_expression "uVar6 & 0x200" (identifier "uVar6") (& "&") (number_literal "0x200")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        local_2c = DAT_000b4d30;\n        local_28 = DAT_000b4d34;\n        uVar2 = *(uint *)(param_1 + 0x2c);\n        local_50 = *(int *)(param_1 + 0x4c);\n        local_24 = uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18;\n        local_54 = *(int *)(param_1 + 0x48);\n        if (local_50 != 0 || local_54 != 0) {\n          uVar2 = *(uint *)(param_1 + 0x90);\n          lVar9 = FUN_000a9510(local_54 + -1,local_50 + -1 + (uint)(local_54 != 0),uVar2,0);\n          lVar3 = (lVar9 + 1U & 0xffffffff) * (ulonglong)uVar2;\n          local_54 = (int)lVar3;\n          local_50 = (int)((ulonglong)lVar3 >> 0x20) + uVar2 * (int)(lVar9 + 1U >> 0x20);\n        }\n        iVar7 = (**(code **)(**(int **)(param_1 + 0x40) + 8))\n                          (*(int **)(param_1 + 0x40),&local_34,8,local_54,local_50);\n        if (iVar7 == 0) {\n          if ((local_34 != DAT_000b4d30) || (bVar4 = false, local_30 != DAT_000b4d34)) {\n            bVar4 = true;\n          }\n          piVar8 = *(int **)(param_1 + 0x40);\n          iVar7 = *piVar8;\n          if (!bVar4) {\n            iVar7 = (**(code **)(iVar7 + 0xc))(piVar8,&DAT_000b1224,1,local_54,local_50);\n            goto LAB_0006a303;\n          }\n        }\n        else {\nLAB_0006a303:\n          if ((iVar7 != 0) && (iVar7 != 0x20a)) goto LAB_0006a356;\n          piVar8 = *(int **)(param_1 + 0x40);\n          iVar7 = *piVar8;\n        }\n        if (*(char *)(param_1 + 8) != '\0') {\n          if ((uVar6 & 0x400) == 0) {\n            if (*(char *)(param_1 + 10) != '\0') {\n              iVar7 = (**(code **)(iVar7 + 0x14))(piVar8,*(char *)(param_1 + 10));\n              if (iVar7 != 0) goto LAB_0006a356;\n              piVar8 = *(int **)(param_1 + 0x40);\n              iVar7 = *piVar8;\n            }\n            iVar7 = (**(code **)(iVar7 + 0xc))\n                              (piVar8,&local_2c,0xc,*(undefined4 *)(param_1 + 0x50),\n                               *(undefined4 *)(param_1 + 0x54));\n            if (iVar7 != 0) goto LAB_0006a356;\n            goto LAB_0006a382;\n          }\n          iVar7 = (**(code **)(iVar7 + 0xc))\n                            (piVar8,&local_2c,0xc,*(undefined4 *)(param_1 + 0x50),\n                             *(undefined4 *)(param_1 + 0x54));\n          goto joined_r0x0006a4d6;\n        }\n        iVar7 = (**(code **)(iVar7 + 0xc))\n                          (piVar8,&local_2c,0xc,*(undefined4 *)(param_1 + 0x50),\n                           *(undefined4 *)(param_1 + 0x54));\n        if (iVar7 != 0) goto LAB_0006a356;\n        if ((uVar6 & 0x400) == 0) goto LAB_0006a382;\n      }" ({ "{") (expression_statement "local_2c = DAT_000b4d30;" (assignment_expression "local_2c = DAT_000b4d30" (identifier "local_2c") (= "=") (identifier "DAT_000b4d30")) (; ";")) (expression_statement "local_28 = DAT_000b4d34;" (assignment_expression "local_28 = DAT_000b4d34" (identifier "local_28") (= "=") (identifier "DAT_000b4d34")) (; ";")) (expression_statement "uVar2 = *(uint *)(param_1 + 0x2c);" (assignment_expression "uVar2 = *(uint *)(param_1 + 0x2c)" (identifier "uVar2") (= "=") (pointer_expression "*(uint *)(param_1 + 0x2c)" (* "*") (cast_expression "(uint *)(param_1 + 0x2c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2c)" (( "(") (binary_expression "param_1 + 0x2c" (identifier "param_1") (+ "+") (number_literal "0x2c")) () ")"))))) (; ";")) (expression_statement "local_50 = *(int *)(param_1 + 0x4c);" (assignment_expression "local_50 = *(int *)(param_1 + 0x4c)" (identifier "local_50") (= "=") (pointer_expression "*(int *)(param_1 + 0x4c)" (* "*") (cast_expression "(int *)(param_1 + 0x4c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x4c)" (( "(") (binary_expression "param_1 + 0x4c" (identifier "param_1") (+ "+") (number_literal "0x4c")) () ")"))))) (; ";")) (expression_statement "local_24 = uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18;" (assignment_expression "local_24 = uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18" (identifier "local_24") (= "=") (binary_expression "uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18" (binary_expression "uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8" (binary_expression "uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8" (binary_expression "uVar2 >> 0x18" (identifier "uVar2") (>> ">>") (number_literal "0x18")) (| "|") (binary_expression "(uVar2 & 0xff0000) >> 8" (parenthesized_expression "(uVar2 & 0xff0000)" (( "(") (binary_expression "uVar2 & 0xff0000" (identifier "uVar2") (& "&") (number_literal "0xff0000")) () ")")) (>> ">>") (number_literal "8"))) (| "|") (binary_expression "(uVar2 & 0xff00) << 8" (parenthesized_expression "(uVar2 & 0xff00)" (( "(") (binary_expression "uVar2 & 0xff00" (identifier "uVar2") (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (binary_expression "uVar2 << 0x18" (identifier "uVar2") (<< "<<") (number_literal "0x18")))) (; ";")) (expression_statement "local_54 = *(int *)(param_1 + 0x48);" (assignment_expression "local_54 = *(int *)(param_1 + 0x48)" (identifier "local_54") (= "=") (pointer_expression "*(int *)(param_1 + 0x48)" (* "*") (cast_expression "(int *)(param_1 + 0x48)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x48)" (( "(") (binary_expression "param_1 + 0x48" (identifier "param_1") (+ "+") (number_literal "0x48")) () ")"))))) (; ";")) (if_statement "if (local_50 != 0 || local_54 != 0) {\n          uVar2 = *(uint *)(param_1 + 0x90);\n          lVar9 = FUN_000a9510(local_54 + -1,local_50 + -1 + (uint)(local_54 != 0),uVar2,0);\n          lVar3 = (lVar9 + 1U & 0xffffffff) * (ulonglong)uVar2;\n          local_54 = (int)lVar3;\n          local_50 = (int)((ulonglong)lVar3 >> 0x20) + uVar2 * (int)(lVar9 + 1U >> 0x20);\n        }" (if "if") (parenthesized_expression "(local_50 != 0 || local_54 != 0)" (( "(") (binary_expression "local_50 != 0 || local_54 != 0" (binary_expression "local_50 != 0" (identifier "local_50") (!= "!=") (number_literal "0")) (|| "||") (binary_expression "local_54 != 0" (identifier "local_54") (!= "!=") (number_literal "0"))) () ")")) (compound_statement "{\n          uVar2 = *(uint *)(param_1 + 0x90);\n          lVar9 = FUN_000a9510(local_54 + -1,local_50 + -1 + (uint)(local_54 != 0),uVar2,0);\n          lVar3 = (lVar9 + 1U & 0xffffffff) * (ulonglong)uVar2;\n          local_54 = (int)lVar3;\n          local_50 = (int)((ulonglong)lVar3 >> 0x20) + uVar2 * (int)(lVar9 + 1U >> 0x20);\n        }" ({ "{") (expression_statement "uVar2 = *(uint *)(param_1 + 0x90);" (assignment_expression "uVar2 = *(uint *)(param_1 + 0x90)" (identifier "uVar2") (= "=") (pointer_expression "*(uint *)(param_1 + 0x90)" (* "*") (cast_expression "(uint *)(param_1 + 0x90)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x90)" (( "(") (binary_expression "param_1 + 0x90" (identifier "param_1") (+ "+") (number_literal "0x90")) () ")"))))) (; ";")) (expression_statement "lVar9 = FUN_000a9510(local_54 + -1,local_50 + -1 + (uint)(local_54 != 0),uVar2,0);" (assignment_expression "lVar9 = FUN_000a9510(local_54 + -1,local_50 + -1 + (uint)(local_54 != 0),uVar2,0)" (identifier "lVar9") (= "=") (call_expression "FUN_000a9510(local_54 + -1,local_50 + -1 + (uint)(local_54 != 0),uVar2,0)" (identifier "FUN_000a9510") (argument_list "(local_54 + -1,local_50 + -1 + (uint)(local_54 != 0),uVar2,0)" (( "(") (binary_expression "local_54 + -1" (identifier "local_54") (+ "+") (number_literal "-1")) (, ",") (binary_expression "local_50 + -1 + (uint)(local_54 != 0)" (binary_expression "local_50 + -1" (identifier "local_50") (+ "+") (number_literal "-1")) (+ "+") (call_expression "(uint)(local_54 != 0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(local_54 != 0)" (( "(") (binary_expression "local_54 != 0" (identifier "local_54") (!= "!=") (number_literal "0")) () ")")))) (, ",") (identifier "uVar2") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "lVar3 = (lVar9 + 1U & 0xffffffff) * (ulonglong)uVar2;" (assignment_expression "lVar3 = (lVar9 + 1U & 0xffffffff) * (ulonglong)uVar2" (identifier "lVar3") (= "=") (binary_expression "(lVar9 + 1U & 0xffffffff) * (ulonglong)uVar2" (parenthesized_expression "(lVar9 + 1U & 0xffffffff)" (( "(") (binary_expression "lVar9 + 1U & 0xffffffff" (binary_expression "lVar9 + 1U" (identifier "lVar9") (+ "+") (number_literal "1U")) (& "&") (number_literal "0xffffffff")) () ")")) (* "*") (cast_expression "(ulonglong)uVar2" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar2")))) (; ";")) (expression_statement "local_54 = (int)lVar3;" (assignment_expression "local_54 = (int)lVar3" (identifier "local_54") (= "=") (cast_expression "(int)lVar3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "lVar3"))) (; ";")) (expression_statement "local_50 = (int)((ulonglong)lVar3 >> 0x20) + uVar2 * (int)(lVar9 + 1U >> 0x20);" (assignment_expression "local_50 = (int)((ulonglong)lVar3 >> 0x20) + uVar2 * (int)(lVar9 + 1U >> 0x20)" (identifier "local_50") (= "=") (binary_expression "(int)((ulonglong)lVar3 >> 0x20) + uVar2 * (int)(lVar9 + 1U >> 0x20)" (cast_expression "(int)((ulonglong)lVar3 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)lVar3 >> 0x20)" (( "(") (binary_expression "(ulonglong)lVar3 >> 0x20" (cast_expression "(ulonglong)lVar3" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "lVar3")) (>> ">>") (number_literal "0x20")) () ")"))) (+ "+") (binary_expression "uVar2 * (int)(lVar9 + 1U >> 0x20)" (identifier "uVar2") (* "*") (cast_expression "(int)(lVar9 + 1U >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(lVar9 + 1U >> 0x20)" (( "(") (binary_expression "lVar9 + 1U >> 0x20" (binary_expression "lVar9 + 1U" (identifier "lVar9") (+ "+") (number_literal "1U")) (>> ">>") (number_literal "0x20")) () ")")))))) (; ";")) (} "}"))) (expression_statement "iVar7 = (**(code **)(**(int **)(param_1 + 0x40) + 8))\n                          (*(int **)(param_1 + 0x40),&local_34,8,local_54,local_50);" (assignment_expression "iVar7 = (**(code **)(**(int **)(param_1 + 0x40) + 8))\n                          (*(int **)(param_1 + 0x40),&local_34,8,local_54,local_50)" (identifier "iVar7") (= "=") (call_expression "(**(code **)(**(int **)(param_1 + 0x40) + 8))\n                          (*(int **)(param_1 + 0x40),&local_34,8,local_54,local_50)" (parenthesized_expression "(**(code **)(**(int **)(param_1 + 0x40) + 8))" (( "(") (pointer_expression "**(code **)(**(int **)(param_1 + 0x40) + 8)" (* "*") (pointer_expression "*(code **)(**(int **)(param_1 + 0x40) + 8)" (* "*") (cast_expression "(code **)(**(int **)(param_1 + 0x40) + 8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(**(int **)(param_1 + 0x40) + 8)" (( "(") (binary_expression "**(int **)(param_1 + 0x40) + 8" (pointer_expression "**(int **)(param_1 + 0x40)" (* "*") (pointer_expression "*(int **)(param_1 + 0x40)" (* "*") (cast_expression "(int **)(param_1 + 0x40)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x40)" (( "(") (binary_expression "param_1 + 0x40" (identifier "param_1") (+ "+") (number_literal "0x40")) () ")"))))) (+ "+") (number_literal "8")) () ")"))))) () ")")) (argument_list "(*(int **)(param_1 + 0x40),&local_34,8,local_54,local_50)" (( "(") (pointer_expression "*(int **)(param_1 + 0x40)" (* "*") (cast_expression "(int **)(param_1 + 0x40)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x40)" (( "(") (binary_expression "param_1 + 0x40" (identifier "param_1") (+ "+") (number_literal "0x40")) () ")")))) (, ",") (pointer_expression "&local_34" (& "&") (identifier "local_34")) (, ",") (number_literal "8") (, ",") (identifier "local_54") (, ",") (identifier "local_50") () ")")))) (; ";")) (if_statement "if (iVar7 == 0) {\n          if ((local_34 != DAT_000b4d30) || (bVar4 = false, local_30 != DAT_000b4d34)) {\n            bVar4 = true;\n          }\n          piVar8 = *(int **)(param_1 + 0x40);\n          iVar7 = *piVar8;\n          if (!bVar4) {\n            iVar7 = (**(code **)(iVar7 + 0xc))(piVar8,&DAT_000b1224,1,local_54,local_50);\n            goto LAB_0006a303;\n          }\n        }\n        else {\nLAB_0006a303:\n          if ((iVar7 != 0) && (iVar7 != 0x20a)) goto LAB_0006a356;\n          piVar8 = *(int **)(param_1 + 0x40);\n          iVar7 = *piVar8;\n        }" (if "if") (parenthesized_expression "(iVar7 == 0)" (( "(") (binary_expression "iVar7 == 0" (identifier "iVar7") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          if ((local_34 != DAT_000b4d30) || (bVar4 = false, local_30 != DAT_000b4d34)) {\n            bVar4 = true;\n          }\n          piVar8 = *(int **)(param_1 + 0x40);\n          iVar7 = *piVar8;\n          if (!bVar4) {\n            iVar7 = (**(code **)(iVar7 + 0xc))(piVar8,&DAT_000b1224,1,local_54,local_50);\n            goto LAB_0006a303;\n          }\n        }" ({ "{") (if_statement "if ((local_34 != DAT_000b4d30) || (bVar4 = false, local_30 != DAT_000b4d34)) {\n            bVar4 = true;\n          }" (if "if") (parenthesized_expression "((local_34 != DAT_000b4d30) || (bVar4 = false, local_30 != DAT_000b4d34))" (( "(") (binary_expression "(local_34 != DAT_000b4d30) || (bVar4 = false, local_30 != DAT_000b4d34)" (parenthesized_expression "(local_34 != DAT_000b4d30)" (( "(") (binary_expression "local_34 != DAT_000b4d30" (identifier "local_34") (!= "!=") (identifier "DAT_000b4d30")) () ")")) (|| "||") (parenthesized_expression "(bVar4 = false, local_30 != DAT_000b4d34)" (( "(") (comma_expression "bVar4 = false, local_30 != DAT_000b4d34" (assignment_expression "bVar4 = false" (identifier "bVar4") (= "=") (false "false")) (, ",") (binary_expression "local_30 != DAT_000b4d34" (identifier "local_30") (!= "!=") (identifier "DAT_000b4d34"))) () ")"))) () ")")) (compound_statement "{\n            bVar4 = true;\n          }" ({ "{") (expression_statement "bVar4 = true;" (assignment_expression "bVar4 = true" (identifier "bVar4") (= "=") (true "true")) (; ";")) (} "}"))) (expression_statement "piVar8 = *(int **)(param_1 + 0x40);" (assignment_expression "piVar8 = *(int **)(param_1 + 0x40)" (identifier "piVar8") (= "=") (pointer_expression "*(int **)(param_1 + 0x40)" (* "*") (cast_expression "(int **)(param_1 + 0x40)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x40)" (( "(") (binary_expression "param_1 + 0x40" (identifier "param_1") (+ "+") (number_literal "0x40")) () ")"))))) (; ";")) (expression_statement "iVar7 = *piVar8;" (assignment_expression "iVar7 = *piVar8" (identifier "iVar7") (= "=") (pointer_expression "*piVar8" (* "*") (identifier "piVar8"))) (; ";")) (if_statement "if (!bVar4) {\n            iVar7 = (**(code **)(iVar7 + 0xc))(piVar8,&DAT_000b1224,1,local_54,local_50);\n            goto LAB_0006a303;\n          }" (if "if") (parenthesized_expression "(!bVar4)" (( "(") (unary_expression "!bVar4" (! "!") (identifier "bVar4")) () ")")) (compound_statement "{\n            iVar7 = (**(code **)(iVar7 + 0xc))(piVar8,&DAT_000b1224,1,local_54,local_50);\n            goto LAB_0006a303;\n          }" ({ "{") (expression_statement "iVar7 = (**(code **)(iVar7 + 0xc))(piVar8,&DAT_000b1224,1,local_54,local_50);" (assignment_expression "iVar7 = (**(code **)(iVar7 + 0xc))(piVar8,&DAT_000b1224,1,local_54,local_50)" (identifier "iVar7") (= "=") (call_expression "(**(code **)(iVar7 + 0xc))(piVar8,&DAT_000b1224,1,local_54,local_50)" (parenthesized_expression "(**(code **)(iVar7 + 0xc))" (( "(") (pointer_expression "**(code **)(iVar7 + 0xc)" (* "*") (pointer_expression "*(code **)(iVar7 + 0xc)" (* "*") (cast_expression "(code **)(iVar7 + 0xc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar7 + 0xc)" (( "(") (binary_expression "iVar7 + 0xc" (identifier "iVar7") (+ "+") (number_literal "0xc")) () ")"))))) () ")")) (argument_list "(piVar8,&DAT_000b1224,1,local_54,local_50)" (( "(") (identifier "piVar8") (, ",") (pointer_expression "&DAT_000b1224" (& "&") (identifier "DAT_000b1224")) (, ",") (number_literal "1") (, ",") (identifier "local_54") (, ",") (identifier "local_50") () ")")))) (; ";")) (goto_statement "goto LAB_0006a303;" (goto "goto") (statement_identifier "LAB_0006a303") (; ";")) (} "}"))) (} "}")) (else_clause "else {\nLAB_0006a303:\n          if ((iVar7 != 0) && (iVar7 != 0x20a)) goto LAB_0006a356;\n          piVar8 = *(int **)(param_1 + 0x40);\n          iVar7 = *piVar8;\n        }" (else "else") (compound_statement "{\nLAB_0006a303:\n          if ((iVar7 != 0) && (iVar7 != 0x20a)) goto LAB_0006a356;\n          piVar8 = *(int **)(param_1 + 0x40);\n          iVar7 = *piVar8;\n        }" ({ "{") (labeled_statement "LAB_0006a303:\n          if ((iVar7 != 0) && (iVar7 != 0x20a)) goto LAB_0006a356;" (statement_identifier "LAB_0006a303") (: ":") (if_statement "if ((iVar7 != 0) && (iVar7 != 0x20a)) goto LAB_0006a356;" (if "if") (parenthesized_expression "((iVar7 != 0) && (iVar7 != 0x20a))" (( "(") (binary_expression "(iVar7 != 0) && (iVar7 != 0x20a)" (parenthesized_expression "(iVar7 != 0)" (( "(") (binary_expression "iVar7 != 0" (identifier "iVar7") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(iVar7 != 0x20a)" (( "(") (binary_expression "iVar7 != 0x20a" (identifier "iVar7") (!= "!=") (number_literal "0x20a")) () ")"))) () ")")) (goto_statement "goto LAB_0006a356;" (goto "goto") (statement_identifier "LAB_0006a356") (; ";")))) (expression_statement "piVar8 = *(int **)(param_1 + 0x40);" (assignment_expression "piVar8 = *(int **)(param_1 + 0x40)" (identifier "piVar8") (= "=") (pointer_expression "*(int **)(param_1 + 0x40)" (* "*") (cast_expression "(int **)(param_1 + 0x40)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x40)" (( "(") (binary_expression "param_1 + 0x40" (identifier "param_1") (+ "+") (number_literal "0x40")) () ")"))))) (; ";")) (expression_statement "iVar7 = *piVar8;" (assignment_expression "iVar7 = *piVar8" (identifier "iVar7") (= "=") (pointer_expression "*piVar8" (* "*") (identifier "piVar8"))) (; ";")) (} "}")))) (if_statement "if (*(char *)(param_1 + 8) != '\0') {\n          if ((uVar6 & 0x400) == 0) {\n            if (*(char *)(param_1 + 10) != '\0') {\n              iVar7 = (**(code **)(iVar7 + 0x14))(piVar8,*(char *)(param_1 + 10));\n              if (iVar7 != 0) goto LAB_0006a356;\n              piVar8 = *(int **)(param_1 + 0x40);\n              iVar7 = *piVar8;\n            }\n            iVar7 = (**(code **)(iVar7 + 0xc))\n                              (piVar8,&local_2c,0xc,*(undefined4 *)(param_1 + 0x50),\n                               *(undefined4 *)(param_1 + 0x54));\n            if (iVar7 != 0) goto LAB_0006a356;\n            goto LAB_0006a382;\n          }\n          iVar7 = (**(code **)(iVar7 + 0xc))\n                            (piVar8,&local_2c,0xc,*(undefined4 *)(param_1 + 0x50),\n                             *(undefined4 *)(param_1 + 0x54));\n          goto joined_r0x0006a4d6;\n        }" (if "if") (parenthesized_expression "(*(char *)(param_1 + 8) != '\0')" (( "(") (binary_expression "*(char *)(param_1 + 8) != '\0'" (pointer_expression "*(char *)(param_1 + 8)" (* "*") (cast_expression "(char *)(param_1 + 8)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n          if ((uVar6 & 0x400) == 0) {\n            if (*(char *)(param_1 + 10) != '\0') {\n              iVar7 = (**(code **)(iVar7 + 0x14))(piVar8,*(char *)(param_1 + 10));\n              if (iVar7 != 0) goto LAB_0006a356;\n              piVar8 = *(int **)(param_1 + 0x40);\n              iVar7 = *piVar8;\n            }\n            iVar7 = (**(code **)(iVar7 + 0xc))\n                              (piVar8,&local_2c,0xc,*(undefined4 *)(param_1 + 0x50),\n                               *(undefined4 *)(param_1 + 0x54));\n            if (iVar7 != 0) goto LAB_0006a356;\n            goto LAB_0006a382;\n          }\n          iVar7 = (**(code **)(iVar7 + 0xc))\n                            (piVar8,&local_2c,0xc,*(undefined4 *)(param_1 + 0x50),\n                             *(undefined4 *)(param_1 + 0x54));\n          goto joined_r0x0006a4d6;\n        }" ({ "{") (if_statement "if ((uVar6 & 0x400) == 0) {\n            if (*(char *)(param_1 + 10) != '\0') {\n              iVar7 = (**(code **)(iVar7 + 0x14))(piVar8,*(char *)(param_1 + 10));\n              if (iVar7 != 0) goto LAB_0006a356;\n              piVar8 = *(int **)(param_1 + 0x40);\n              iVar7 = *piVar8;\n            }\n            iVar7 = (**(code **)(iVar7 + 0xc))\n                              (piVar8,&local_2c,0xc,*(undefined4 *)(param_1 + 0x50),\n                               *(undefined4 *)(param_1 + 0x54));\n            if (iVar7 != 0) goto LAB_0006a356;\n            goto LAB_0006a382;\n          }" (if "if") (parenthesized_expression "((uVar6 & 0x400) == 0)" (( "(") (binary_expression "(uVar6 & 0x400) == 0" (parenthesized_expression "(uVar6 & 0x400)" (( "(") (binary_expression "uVar6 & 0x400" (identifier "uVar6") (& "&") (number_literal "0x400")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            if (*(char *)(param_1 + 10) != '\0') {\n              iVar7 = (**(code **)(iVar7 + 0x14))(piVar8,*(char *)(param_1 + 10));\n              if (iVar7 != 0) goto LAB_0006a356;\n              piVar8 = *(int **)(param_1 + 0x40);\n              iVar7 = *piVar8;\n            }\n            iVar7 = (**(code **)(iVar7 + 0xc))\n                              (piVar8,&local_2c,0xc,*(undefined4 *)(param_1 + 0x50),\n                               *(undefined4 *)(param_1 + 0x54));\n            if (iVar7 != 0) goto LAB_0006a356;\n            goto LAB_0006a382;\n          }" ({ "{") (if_statement "if (*(char *)(param_1 + 10) != '\0') {\n              iVar7 = (**(code **)(iVar7 + 0x14))(piVar8,*(char *)(param_1 + 10));\n              if (iVar7 != 0) goto LAB_0006a356;\n              piVar8 = *(int **)(param_1 + 0x40);\n              iVar7 = *piVar8;\n            }" (if "if") (parenthesized_expression "(*(char *)(param_1 + 10) != '\0')" (( "(") (binary_expression "*(char *)(param_1 + 10) != '\0'" (pointer_expression "*(char *)(param_1 + 10)" (* "*") (cast_expression "(char *)(param_1 + 10)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 10)" (( "(") (binary_expression "param_1 + 10" (identifier "param_1") (+ "+") (number_literal "10")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n              iVar7 = (**(code **)(iVar7 + 0x14))(piVar8,*(char *)(param_1 + 10));\n              if (iVar7 != 0) goto LAB_0006a356;\n              piVar8 = *(int **)(param_1 + 0x40);\n              iVar7 = *piVar8;\n            }" ({ "{") (expression_statement "iVar7 = (**(code **)(iVar7 + 0x14))(piVar8,*(char *)(param_1 + 10));" (assignment_expression "iVar7 = (**(code **)(iVar7 + 0x14))(piVar8,*(char *)(param_1 + 10))" (identifier "iVar7") (= "=") (call_expression "(**(code **)(iVar7 + 0x14))(piVar8,*(char *)(param_1 + 10))" (parenthesized_expression "(**(code **)(iVar7 + 0x14))" (( "(") (pointer_expression "**(code **)(iVar7 + 0x14)" (* "*") (pointer_expression "*(code **)(iVar7 + 0x14)" (* "*") (cast_expression "(code **)(iVar7 + 0x14)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar7 + 0x14)" (( "(") (binary_expression "iVar7 + 0x14" (identifier "iVar7") (+ "+") (number_literal "0x14")) () ")"))))) () ")")) (argument_list "(piVar8,*(char *)(param_1 + 10))" (( "(") (identifier "piVar8") (, ",") (pointer_expression "*(char *)(param_1 + 10)" (* "*") (cast_expression "(char *)(param_1 + 10)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 10)" (( "(") (binary_expression "param_1 + 10" (identifier "param_1") (+ "+") (number_literal "10")) () ")")))) () ")")))) (; ";")) (if_statement "if (iVar7 != 0) goto LAB_0006a356;" (if "if") (parenthesized_expression "(iVar7 != 0)" (( "(") (binary_expression "iVar7 != 0" (identifier "iVar7") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0006a356;" (goto "goto") (statement_identifier "LAB_0006a356") (; ";"))) (expression_statement "piVar8 = *(int **)(param_1 + 0x40);" (assignment_expression "piVar8 = *(int **)(param_1 + 0x40)" (identifier "piVar8") (= "=") (pointer_expression "*(int **)(param_1 + 0x40)" (* "*") (cast_expression "(int **)(param_1 + 0x40)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x40)" (( "(") (binary_expression "param_1 + 0x40" (identifier "param_1") (+ "+") (number_literal "0x40")) () ")"))))) (; ";")) (expression_statement "iVar7 = *piVar8;" (assignment_expression "iVar7 = *piVar8" (identifier "iVar7") (= "=") (pointer_expression "*piVar8" (* "*") (identifier "piVar8"))) (; ";")) (} "}"))) (expression_statement "iVar7 = (**(code **)(iVar7 + 0xc))\n                              (piVar8,&local_2c,0xc,*(undefined4 *)(param_1 + 0x50),\n                               *(undefined4 *)(param_1 + 0x54));" (assignment_expression "iVar7 = (**(code **)(iVar7 + 0xc))\n                              (piVar8,&local_2c,0xc,*(undefined4 *)(param_1 + 0x50),\n                               *(undefined4 *)(param_1 + 0x54))" (identifier "iVar7") (= "=") (call_expression "(**(code **)(iVar7 + 0xc))\n                              (piVar8,&local_2c,0xc,*(undefined4 *)(param_1 + 0x50),\n                               *(undefined4 *)(param_1 + 0x54))" (parenthesized_expression "(**(code **)(iVar7 + 0xc))" (( "(") (pointer_expression "**(code **)(iVar7 + 0xc)" (* "*") (pointer_expression "*(code **)(iVar7 + 0xc)" (* "*") (cast_expression "(code **)(iVar7 + 0xc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar7 + 0xc)" (( "(") (binary_expression "iVar7 + 0xc" (identifier "iVar7") (+ "+") (number_literal "0xc")) () ")"))))) () ")")) (argument_list "(piVar8,&local_2c,0xc,*(undefined4 *)(param_1 + 0x50),\n                               *(undefined4 *)(param_1 + 0x54))" (( "(") (identifier "piVar8") (, ",") (pointer_expression "&local_2c" (& "&") (identifier "local_2c")) (, ",") (number_literal "0xc") (, ",") (pointer_expression "*(undefined4 *)(param_1 + 0x50)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x50)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x50)" (( "(") (binary_expression "param_1 + 0x50" (identifier "param_1") (+ "+") (number_literal "0x50")) () ")")))) (, ",") (pointer_expression "*(undefined4 *)(param_1 + 0x54)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x54)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x54)" (( "(") (binary_expression "param_1 + 0x54" (identifier "param_1") (+ "+") (number_literal "0x54")) () ")")))) () ")")))) (; ";")) (if_statement "if (iVar7 != 0) goto LAB_0006a356;" (if "if") (parenthesized_expression "(iVar7 != 0)" (( "(") (binary_expression "iVar7 != 0" (identifier "iVar7") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0006a356;" (goto "goto") (statement_identifier "LAB_0006a356") (; ";"))) (goto_statement "goto LAB_0006a382;" (goto "goto") (statement_identifier "LAB_0006a382") (; ";")) (} "}"))) (expression_statement "iVar7 = (**(code **)(iVar7 + 0xc))\n                            (piVar8,&local_2c,0xc,*(undefined4 *)(param_1 + 0x50),\n                             *(undefined4 *)(param_1 + 0x54));" (assignment_expression "iVar7 = (**(code **)(iVar7 + 0xc))\n                            (piVar8,&local_2c,0xc,*(undefined4 *)(param_1 + 0x50),\n                             *(undefined4 *)(param_1 + 0x54))" (identifier "iVar7") (= "=") (call_expression "(**(code **)(iVar7 + 0xc))\n                            (piVar8,&local_2c,0xc,*(undefined4 *)(param_1 + 0x50),\n                             *(undefined4 *)(param_1 + 0x54))" (parenthesized_expression "(**(code **)(iVar7 + 0xc))" (( "(") (pointer_expression "**(code **)(iVar7 + 0xc)" (* "*") (pointer_expression "*(code **)(iVar7 + 0xc)" (* "*") (cast_expression "(code **)(iVar7 + 0xc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar7 + 0xc)" (( "(") (binary_expression "iVar7 + 0xc" (identifier "iVar7") (+ "+") (number_literal "0xc")) () ")"))))) () ")")) (argument_list "(piVar8,&local_2c,0xc,*(undefined4 *)(param_1 + 0x50),\n                             *(undefined4 *)(param_1 + 0x54))" (( "(") (identifier "piVar8") (, ",") (pointer_expression "&local_2c" (& "&") (identifier "local_2c")) (, ",") (number_literal "0xc") (, ",") (pointer_expression "*(undefined4 *)(param_1 + 0x50)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x50)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x50)" (( "(") (binary_expression "param_1 + 0x50" (identifier "param_1") (+ "+") (number_literal "0x50")) () ")")))) (, ",") (pointer_expression "*(undefined4 *)(param_1 + 0x54)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x54)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x54)" (( "(") (binary_expression "param_1 + 0x54" (identifier "param_1") (+ "+") (number_literal "0x54")) () ")")))) () ")")))) (; ";")) (goto_statement "goto joined_r0x0006a4d6;" (goto "goto") (statement_identifier "joined_r0x0006a4d6") (; ";")) (} "}"))) (expression_statement "iVar7 = (**(code **)(iVar7 + 0xc))\n                          (piVar8,&local_2c,0xc,*(undefined4 *)(param_1 + 0x50),\n                           *(undefined4 *)(param_1 + 0x54));" (assignment_expression "iVar7 = (**(code **)(iVar7 + 0xc))\n                          (piVar8,&local_2c,0xc,*(undefined4 *)(param_1 + 0x50),\n                           *(undefined4 *)(param_1 + 0x54))" (identifier "iVar7") (= "=") (call_expression "(**(code **)(iVar7 + 0xc))\n                          (piVar8,&local_2c,0xc,*(undefined4 *)(param_1 + 0x50),\n                           *(undefined4 *)(param_1 + 0x54))" (parenthesized_expression "(**(code **)(iVar7 + 0xc))" (( "(") (pointer_expression "**(code **)(iVar7 + 0xc)" (* "*") (pointer_expression "*(code **)(iVar7 + 0xc)" (* "*") (cast_expression "(code **)(iVar7 + 0xc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar7 + 0xc)" (( "(") (binary_expression "iVar7 + 0xc" (identifier "iVar7") (+ "+") (number_literal "0xc")) () ")"))))) () ")")) (argument_list "(piVar8,&local_2c,0xc,*(undefined4 *)(param_1 + 0x50),\n                           *(undefined4 *)(param_1 + 0x54))" (( "(") (identifier "piVar8") (, ",") (pointer_expression "&local_2c" (& "&") (identifier "local_2c")) (, ",") (number_literal "0xc") (, ",") (pointer_expression "*(undefined4 *)(param_1 + 0x50)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x50)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x50)" (( "(") (binary_expression "param_1 + 0x50" (identifier "param_1") (+ "+") (number_literal "0x50")) () ")")))) (, ",") (pointer_expression "*(undefined4 *)(param_1 + 0x54)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x54)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x54)" (( "(") (binary_expression "param_1 + 0x54" (identifier "param_1") (+ "+") (number_literal "0x54")) () ")")))) () ")")))) (; ";")) (if_statement "if (iVar7 != 0) goto LAB_0006a356;" (if "if") (parenthesized_expression "(iVar7 != 0)" (( "(") (binary_expression "iVar7 != 0" (identifier "iVar7") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0006a356;" (goto "goto") (statement_identifier "LAB_0006a356") (; ";"))) (if_statement "if ((uVar6 & 0x400) == 0) goto LAB_0006a382;" (if "if") (parenthesized_expression "((uVar6 & 0x400) == 0)" (( "(") (binary_expression "(uVar6 & 0x400) == 0" (parenthesized_expression "(uVar6 & 0x400)" (( "(") (binary_expression "uVar6 & 0x400" (identifier "uVar6") (& "&") (number_literal "0x400")) () ")")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0006a382;" (goto "goto") (statement_identifier "LAB_0006a382") (; ";"))) (} "}")) (else_clause "else {\n        if ((uVar6 & 0x400) != 0) goto LAB_0006a320;\nLAB_0006a382:\n        cVar5 = *(char *)(param_1 + 10);\n        if (cVar5 == '\x03') {\n          cVar5 = '\x13';\n        }\n        else if (cVar5 == '\0') goto LAB_0006a3aa;\n        iVar7 = (**(code **)(**(int **)(param_1 + 0x40) + 0x14))(*(int **)(param_1 + 0x40),cVar5);\njoined_r0x0006a4d6:\n        if (iVar7 != 0) goto LAB_0006a356;\n      }" (else "else") (compound_statement "{\n        if ((uVar6 & 0x400) != 0) goto LAB_0006a320;\nLAB_0006a382:\n        cVar5 = *(char *)(param_1 + 10);\n        if (cVar5 == '\x03') {\n          cVar5 = '\x13';\n        }\n        else if (cVar5 == '\0') goto LAB_0006a3aa;\n        iVar7 = (**(code **)(**(int **)(param_1 + 0x40) + 0x14))(*(int **)(param_1 + 0x40),cVar5);\njoined_r0x0006a4d6:\n        if (iVar7 != 0) goto LAB_0006a356;\n      }" ({ "{") (if_statement "if ((uVar6 & 0x400) != 0) goto LAB_0006a320;" (if "if") (parenthesized_expression "((uVar6 & 0x400) != 0)" (( "(") (binary_expression "(uVar6 & 0x400) != 0" (parenthesized_expression "(uVar6 & 0x400)" (( "(") (binary_expression "uVar6 & 0x400" (identifier "uVar6") (& "&") (number_literal "0x400")) () ")")) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0006a320;" (goto "goto") (statement_identifier "LAB_0006a320") (; ";"))) (labeled_statement "LAB_0006a382:\n        cVar5 = *(char *)(param_1 + 10);" (statement_identifier "LAB_0006a382") (: ":") (expression_statement "cVar5 = *(char *)(param_1 + 10);" (assignment_expression "cVar5 = *(char *)(param_1 + 10)" (identifier "cVar5") (= "=") (pointer_expression "*(char *)(param_1 + 10)" (* "*") (cast_expression "(char *)(param_1 + 10)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 10)" (( "(") (binary_expression "param_1 + 10" (identifier "param_1") (+ "+") (number_literal "10")) () ")"))))) (; ";"))) (if_statement "if (cVar5 == '\x03') {\n          cVar5 = '\x13';\n        }\n        else if (cVar5 == '\0') goto LAB_0006a3aa;" (if "if") (parenthesized_expression "(cVar5 == '\x03')" (( "(") (binary_expression "cVar5 == '\x03'" (identifier "cVar5") (== "==") (char_literal "'\x03'" (' "'") (escape_sequence "\x03") (' "'"))) () ")")) (compound_statement "{\n          cVar5 = '\x13';\n        }" ({ "{") (expression_statement "cVar5 = '\x13';" (assignment_expression "cVar5 = '\x13'" (identifier "cVar5") (= "=") (char_literal "'\x13'" (' "'") (escape_sequence "\x13") (' "'"))) (; ";")) (} "}")) (else_clause "else if (cVar5 == '\0') goto LAB_0006a3aa;" (else "else") (if_statement "if (cVar5 == '\0') goto LAB_0006a3aa;" (if "if") (parenthesized_expression "(cVar5 == '\0')" (( "(") (binary_expression "cVar5 == '\0'" (identifier "cVar5") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto LAB_0006a3aa;" (goto "goto") (statement_identifier "LAB_0006a3aa") (; ";"))))) (expression_statement "iVar7 = (**(code **)(**(int **)(param_1 + 0x40) + 0x14))(*(int **)(param_1 + 0x40),cVar5);" (assignment_expression "iVar7 = (**(code **)(**(int **)(param_1 + 0x40) + 0x14))(*(int **)(param_1 + 0x40),cVar5)" (identifier "iVar7") (= "=") (call_expression "(**(code **)(**(int **)(param_1 + 0x40) + 0x14))(*(int **)(param_1 + 0x40),cVar5)" (parenthesized_expression "(**(code **)(**(int **)(param_1 + 0x40) + 0x14))" (( "(") (pointer_expression "**(code **)(**(int **)(param_1 + 0x40) + 0x14)" (* "*") (pointer_expression "*(code **)(**(int **)(param_1 + 0x40) + 0x14)" (* "*") (cast_expression "(code **)(**(int **)(param_1 + 0x40) + 0x14)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(**(int **)(param_1 + 0x40) + 0x14)" (( "(") (binary_expression "**(int **)(param_1 + 0x40) + 0x14" (pointer_expression "**(int **)(param_1 + 0x40)" (* "*") (pointer_expression "*(int **)(param_1 + 0x40)" (* "*") (cast_expression "(int **)(param_1 + 0x40)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x40)" (( "(") (binary_expression "param_1 + 0x40" (identifier "param_1") (+ "+") (number_literal "0x40")) () ")"))))) (+ "+") (number_literal "0x14")) () ")"))))) () ")")) (argument_list "(*(int **)(param_1 + 0x40),cVar5)" (( "(") (pointer_expression "*(int **)(param_1 + 0x40)" (* "*") (cast_expression "(int **)(param_1 + 0x40)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x40)" (( "(") (binary_expression "param_1 + 0x40" (identifier "param_1") (+ "+") (number_literal "0x40")) () ")")))) (, ",") (identifier "cVar5") () ")")))) (; ";")) (labeled_statement "joined_r0x0006a4d6:\n        if (iVar7 != 0) goto LAB_0006a356;" (statement_identifier "joined_r0x0006a4d6") (: ":") (if_statement "if (iVar7 != 0) goto LAB_0006a356;" (if "if") (parenthesized_expression "(iVar7 != 0)" (( "(") (binary_expression "iVar7 != 0" (identifier "iVar7") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0006a356;" (goto "goto") (statement_identifier "LAB_0006a356") (; ";")))) (} "}")))) (labeled_statement "LAB_0006a3aa:\n      *(undefined4 *)(param_1 + 0x50) = *(undefined4 *)(param_1 + 0x48);" (statement_identifier "LAB_0006a3aa") (: ":") (expression_statement "*(undefined4 *)(param_1 + 0x50) = *(undefined4 *)(param_1 + 0x48);" (assignment_expression "*(undefined4 *)(param_1 + 0x50) = *(undefined4 *)(param_1 + 0x48)" (pointer_expression "*(undefined4 *)(param_1 + 0x50)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x50)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x50)" (( "(") (binary_expression "param_1 + 0x50" (identifier "param_1") (+ "+") (number_literal "0x50")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(param_1 + 0x48)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x48)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x48)" (( "(") (binary_expression "param_1 + 0x48" (identifier "param_1") (+ "+") (number_literal "0x48")) () ")"))))) (; ";"))) (expression_statement "*(undefined4 *)(param_1 + 0x54) = *(undefined4 *)(param_1 + 0x4c);" (assignment_expression "*(undefined4 *)(param_1 + 0x54) = *(undefined4 *)(param_1 + 0x4c)" (pointer_expression "*(undefined4 *)(param_1 + 0x54)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x54)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x54)" (( "(") (binary_expression "param_1 + 0x54" (identifier "param_1") (+ "+") (number_literal "0x54")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(param_1 + 0x4c)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x4c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x4c)" (( "(") (binary_expression "param_1 + 0x4c" (identifier "param_1") (+ "+") (number_literal "0x4c")) () ")"))))) (; ";")) (if_statement "if (((uVar6 & 0x200) == 0) && ((param_2 & 1) != 0)) {\n        *(undefined4 *)(param_1 + 0x2c) = 0;\n        iVar7 = FUN_0005f0c0();\n        if (iVar7 != 0) goto LAB_0006a356;\n      }" (if "if") (parenthesized_expression "(((uVar6 & 0x200) == 0) && ((param_2 & 1) != 0))" (( "(") (binary_expression "((uVar6 & 0x200) == 0) && ((param_2 & 1) != 0)" (parenthesized_expression "((uVar6 & 0x200) == 0)" (( "(") (binary_expression "(uVar6 & 0x200) == 0" (parenthesized_expression "(uVar6 & 0x200)" (( "(") (binary_expression "uVar6 & 0x200" (identifier "uVar6") (& "&") (number_literal "0x200")) () ")")) (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "((param_2 & 1) != 0)" (( "(") (binary_expression "(param_2 & 1) != 0" (parenthesized_expression "(param_2 & 1)" (( "(") (binary_expression "param_2 & 1" (identifier "param_2") (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n        *(undefined4 *)(param_1 + 0x2c) = 0;\n        iVar7 = FUN_0005f0c0();\n        if (iVar7 != 0) goto LAB_0006a356;\n      }" ({ "{") (expression_statement "*(undefined4 *)(param_1 + 0x2c) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x2c) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x2c)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x2c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2c)" (( "(") (binary_expression "param_1 + 0x2c" (identifier "param_1") (+ "+") (number_literal "0x2c")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar7 = FUN_0005f0c0();" (assignment_expression "iVar7 = FUN_0005f0c0()" (identifier "iVar7") (= "=") (call_expression "FUN_0005f0c0()" (identifier "FUN_0005f0c0") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar7 != 0) goto LAB_0006a356;" (if "if") (parenthesized_expression "(iVar7 != 0)" (( "(") (binary_expression "iVar7 != 0" (identifier "iVar7") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0006a356;" (goto "goto") (statement_identifier "LAB_0006a356") (; ";"))) (} "}"))) (} "}")))) (} "}"))) (expression_statement "piVar8 = *(int **)(param_1 + 0xd0);" (assignment_expression "piVar8 = *(int **)(param_1 + 0xd0)" (identifier "piVar8") (= "=") (pointer_expression "*(int **)(param_1 + 0xd0)" (* "*") (cast_expression "(int **)(param_1 + 0xd0)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0xd0)" (( "(") (binary_expression "param_1 + 0xd0" (identifier "param_1") (+ "+") (number_literal "0xd0")) () ")"))))) (; ";")) (for_statement "for (iVar7 = *piVar8; iVar7 != 0; iVar7 = *(int *)(iVar7 + 0x20)) {\n    *(ushort *)(iVar7 + 0x1c) = *(ushort *)(iVar7 + 0x1c) & 0xfff7;\n  }" (for "for") (( "(") (assignment_expression "iVar7 = *piVar8" (identifier "iVar7") (= "=") (pointer_expression "*piVar8" (* "*") (identifier "piVar8"))) (; ";") (binary_expression "iVar7 != 0" (identifier "iVar7") (!= "!=") (number_literal "0")) (; ";") (assignment_expression "iVar7 = *(int *)(iVar7 + 0x20)" (identifier "iVar7") (= "=") (pointer_expression "*(int *)(iVar7 + 0x20)" (* "*") (cast_expression "(int *)(iVar7 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0x20)" (( "(") (binary_expression "iVar7 + 0x20" (identifier "iVar7") (+ "+") (number_literal "0x20")) () ")"))))) () ")") (compound_statement "{\n    *(ushort *)(iVar7 + 0x1c) = *(ushort *)(iVar7 + 0x1c) & 0xfff7;\n  }" ({ "{") (expression_statement "*(ushort *)(iVar7 + 0x1c) = *(ushort *)(iVar7 + 0x1c) & 0xfff7;" (assignment_expression "*(ushort *)(iVar7 + 0x1c) = *(ushort *)(iVar7 + 0x1c) & 0xfff7" (pointer_expression "*(ushort *)(iVar7 + 0x1c)" (* "*") (cast_expression "(ushort *)(iVar7 + 0x1c)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0x1c)" (( "(") (binary_expression "iVar7 + 0x1c" (identifier "iVar7") (+ "+") (number_literal "0x1c")) () ")")))) (= "=") (binary_expression "*(ushort *)(iVar7 + 0x1c) & 0xfff7" (pointer_expression "*(ushort *)(iVar7 + 0x1c)" (* "*") (cast_expression "(ushort *)(iVar7 + 0x1c)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0x1c)" (( "(") (binary_expression "iVar7 + 0x1c" (identifier "iVar7") (+ "+") (number_literal "0x1c")) () ")")))) (& "&") (number_literal "0xfff7"))) (; ";")) (} "}"))) (expression_statement "piVar8[2] = piVar8[1];" (assignment_expression "piVar8[2] = piVar8[1]" (subscript_expression "piVar8[2]" (identifier "piVar8") ([ "[") (number_literal "2") (] "]")) (= "=") (subscript_expression "piVar8[1]" (identifier "piVar8") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "*(undefined1 *)(param_1 + 0x10) = 4;" (assignment_expression "*(undefined1 *)(param_1 + 0x10) = 4" (pointer_expression "*(undefined1 *)(param_1 + 0x10)" (* "*") (cast_expression "(undefined1 *)(param_1 + 0x10)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x10)" (( "(") (binary_expression "param_1 + 0x10" (identifier "param_1") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (number_literal "4")) (; ";")) (expression_statement "iVar7 = iVar1;" (assignment_expression "iVar7 = iVar1" (identifier "iVar7") (= "=") (identifier "iVar1")) (; ";")) (labeled_statement "LAB_0006a356:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_000a9ea0();\n  }" (statement_identifier "LAB_0006a356") (: ":") (if_statement "if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_000a9ea0();\n  }" (if "if") (parenthesized_expression "(local_20 != *(int *)(in_GS_OFFSET + 0x14))" (( "(") (binary_expression "local_20 != *(int *)(in_GS_OFFSET + 0x14)" (identifier "local_20") (!= "!=") (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" (* "*") (cast_expression "(int *)(in_GS_OFFSET + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_GS_OFFSET + 0x14)" (( "(") (binary_expression "in_GS_OFFSET + 0x14" (identifier "in_GS_OFFSET") (+ "+") (number_literal "0x14")) () ")"))))) () ")")) (compound_statement "{\n                    \n    FUN_000a9ea0();\n  }" ({ "{") (expression_statement "FUN_000a9ea0();" (call_expression "FUN_000a9ea0()" (identifier "FUN_000a9ea0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))) (return_statement "return iVar7;" (return "return") (identifier "iVar7") (; ";")) (} "}")))

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

int __regparm3 function_1(type_1 *pPager,int var_12)

{
  int var_15;
  int var_2;
  type_2 *pPVar3;
  type_3 *var_14;
  type_4 uVar5;
  type_5 lVar6;
  bool bVar7;
  type_6 var_5;
  int var_4;
  type_6 var_6;
  type_7 *psVar11;
  type_8 *psVar12;
  int var_1;
  type_5 var_10;
  int var_8;
  int var_7;
  type_9 aMagic [8];
  type_9 zHeader [12];
  
  var_2 = pPager->errCode;
  var_15 = *(int *)(var_1 + 0x14);
  var_4 = var_2;
  if ((var_2 != 0) ||
     ((pPager->pWal == (type_10 *)0x0 && (var_4 = var_3(pPager,4), var_4 != 0))))
  goto LAB_0006a356;
  if (pPager->noSync == '\0') {
    if ((pPager->jfd->pMethods == (type_8 *)0x0) || (pPager->journalMode == '\x04')) {
LAB_0006a320:
      uVar5 = *(type_4 *)((int)&pPager->journalOff + 4);
      *(int *)&pPager->journalHdr = (int)pPager->journalOff;
      *(type_4 *)((int)&pPager->journalHdr + 4) = uVar5;
    }
    else {
      var_5 = (*pPager->fd->pMethods->xDeviceCharacteristics)(pPager->fd);
      if ((var_5 & 0x200) == 0) {
        zHeader[0] = aJournalMagic[0];
        zHeader[1] = aJournalMagic[1];
        zHeader[2] = aJournalMagic[2];
        zHeader[3] = aJournalMagic[3];
        zHeader[4] = aJournalMagic[4];
        zHeader[5] = aJournalMagic[5];
        zHeader[6] = aJournalMagic[6];
        zHeader[7] = aJournalMagic[7];
        var_6 = pPager->nRec;
        var_7 = *(int *)((int)&pPager->journalOff + 4);
        zHeader._8_4_ =
             var_6 >> 0x18 | (var_6 & 0xff0000) >> 8 | (var_6 & 0xff00) << 8 | var_6 << 0x18;
        var_8 = (int)pPager->journalOff;
        if (var_7 != 0 || var_8 != 0) {
          var_6 = pPager->sectorSize;
          var_10 = var_9(var_8 + -1,var_7 + -1 + (type_6)(var_8 != 0),var_6,0);
          lVar6 = (var_10 + 1U & 0xffffffff) * (type_11)var_6;
          var_8 = (int)lVar6;
          var_7 = (int)((type_11)lVar6 >> 0x20) + var_6 * (int)(var_10 + 1U >> 0x20);
        }
        var_4 = (*pPager->jfd->pMethods->xRead)(pPager->jfd,aMagic,8,var_11(var_7,var_8));
        if (var_4 == 0) {
          if ((aMagic._0_4_ != aJournalMagic._0_4_) ||
             (bVar7 = false, aMagic._4_4_ != aJournalMagic._4_4_)) {
            bVar7 = true;
          }
          psVar11 = pPager->jfd;
          psVar12 = psVar11->pMethods;
          if (!bVar7) {
            var_4 = (*psVar12->xWrite)(psVar11,"",1,var_11(var_7,var_8));
            goto LAB_0006a303;
          }
        }
        else {
LAB_0006a303:
          if ((var_4 != 0) && (var_4 != 0x20a)) goto LAB_0006a356;
          psVar11 = pPager->jfd;
          psVar12 = psVar11->pMethods;
        }
        if (pPager->fullSync != '\0') {
          if ((var_5 & 0x400) == 0) {
            if (pPager->syncFlags != 0) {
              var_4 = (*psVar12->xSync)(psVar11,(type_6)pPager->syncFlags);
              if (var_4 != 0) goto LAB_0006a356;
              psVar11 = pPager->jfd;
              psVar12 = psVar11->pMethods;
            }
            var_4 = (*psVar12->xWrite)(psVar11,zHeader,0xc,pPager->journalHdr);
            if (var_4 != 0) goto LAB_0006a356;
            goto LAB_0006a382;
          }
          var_4 = (*psVar12->xWrite)(psVar11,zHeader,0xc,pPager->journalHdr);
          goto joined_r0x0006a4d6;
        }
        var_4 = (*psVar12->xWrite)(psVar11,zHeader,0xc,pPager->journalHdr);
        if (var_4 != 0) goto LAB_0006a356;
        if ((var_5 & 0x400) == 0) goto LAB_0006a382;
      }
      else {
        if ((var_5 & 0x400) != 0) goto LAB_0006a320;
LAB_0006a382:
        var_6 = (type_6)pPager->syncFlags;
        if (pPager->syncFlags == 3) {
          var_6 = 0x13;
        }
        else if (var_6 == 0) goto LAB_0006a3aa;
        var_4 = (*pPager->jfd->pMethods->xSync)(pPager->jfd,var_6);
joined_r0x0006a4d6:
        if (var_4 != 0) goto LAB_0006a356;
      }
LAB_0006a3aa:
      uVar5 = *(type_4 *)((int)&pPager->journalOff + 4);
      *(int *)&pPager->journalHdr = (int)pPager->journalOff;
      *(type_4 *)((int)&pPager->journalHdr + 4) = uVar5;
      if (((var_5 & 0x200) == 0) && ((var_12 & 1U) != 0)) {
        pPager->nRec = 0;
        var_4 = var_13(pPager);
        if (var_4 != 0) goto LAB_0006a356;
      }
    }
  }
  pPVar3 = pPager->pPCache;
  for (var_14 = pPVar3->pDirty; var_14 != (type_3 *)0x0; var_14 = var_14->pDirtyNext) {
    var_14->flags = var_14->flags & 0xfff7;
  }
  pPVar3->pSynced = pPVar3->pDirtyTail;
  pPager->eState = '\x04';
  var_4 = var_2;
LAB_0006a356:
  if (var_15 != *(int *)(var_1 + 0x14)) {
                    /* WARNING: Subroutine does not return */
    var_16();
  }
  return var_4;
}


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

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

int __regparm3 MASKED(int param_1,uint param_2)

{
  int iVar1;
  uint uVar2;
  longlong lVar3;
  bool bVar4;
  char cVar5;
  uint uVar6;
  int iVar7;
  int *piVar8;
  int in_GS_OFFSET;
  longlong lVar9;
  int local_54;
  int local_50;
  int local_34;
  int local_30;
  int local_2c;
  int local_28;
  uint local_24;
  int local_20;
  undefined4 uStack_14;
  
  uStack_14 = 0x6a1ab;
  iVar1 = *(int *)(param_1 + 0x28);
  local_20 = *(int *)(in_GS_OFFSET + 0x14);
  iVar7 = iVar1;
  if ((iVar1 != 0) || ((*(int *)(param_1 + 0xd4) == 0 && (iVar7 = FUN_000273d0(), iVar7 != 0))))
  goto LAB_0006a356;
  if (*(char *)(param_1 + 7) == '\0') {
    if ((**(int **)(param_1 + 0x40) == 0) || (*(char *)(param_1 + 5) == '\x04')) {
LAB_0006a320:
      *(undefined4 *)(param_1 + 0x50) = *(undefined4 *)(param_1 + 0x48);
      *(undefined4 *)(param_1 + 0x54) = *(undefined4 *)(param_1 + 0x4c);
    }
    else {
      uVar6 = (**(code **)(**(int **)(param_1 + 0x3c) + 0x30))(*(int **)(param_1 + 0x3c));
      if ((uVar6 & 0x200) == 0) {
        local_2c = DAT_000b4d30;
        local_28 = DAT_000b4d34;
        uVar2 = *(uint *)(param_1 + 0x2c);
        local_50 = *(int *)(param_1 + 0x4c);
        local_24 = uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18;
        local_54 = *(int *)(param_1 + 0x48);
        if (local_50 != 0 || local_54 != 0) {
          uVar2 = *(uint *)(param_1 + 0x90);
          lVar9 = FUN_000a9510(local_54 + -1,local_50 + -1 + (uint)(local_54 != 0),uVar2,0);
          lVar3 = (lVar9 + 1U & 0xffffffff) * (ulonglong)uVar2;
          local_54 = (int)lVar3;
          local_50 = (int)((ulonglong)lVar3 >> 0x20) + uVar2 * (int)(lVar9 + 1U >> 0x20);
        }
        iVar7 = (**(code **)(**(int **)(param_1 + 0x40) + 8))
                          (*(int **)(param_1 + 0x40),&local_34,8,local_54,local_50);
        if (iVar7 == 0) {
          if ((local_34 != DAT_000b4d30) || (bVar4 = false, local_30 != DAT_000b4d34)) {
            bVar4 = true;
          }
          piVar8 = *(int **)(param_1 + 0x40);
          iVar7 = *piVar8;
          if (!bVar4) {
            iVar7 = (**(code **)(iVar7 + 0xc))(piVar8,&DAT_000b1224,1,local_54,local_50);
            goto LAB_0006a303;
          }
        }
        else {
LAB_0006a303:
          if ((iVar7 != 0) && (iVar7 != 0x20a)) goto LAB_0006a356;
          piVar8 = *(int **)(param_1 + 0x40);
          iVar7 = *piVar8;
        }
        if (*(char *)(param_1 + 8) != '\0') {
          if ((uVar6 & 0x400) == 0) {
            if (*(char *)(param_1 + 10) != '\0') {
              iVar7 = (**(code **)(iVar7 + 0x14))(piVar8,*(char *)(param_1 + 10));
              if (iVar7 != 0) goto LAB_0006a356;
              piVar8 = *(int **)(param_1 + 0x40);
              iVar7 = *piVar8;
            }
            iVar7 = (**(code **)(iVar7 + 0xc))
                              (piVar8,&local_2c,0xc,*(undefined4 *)(param_1 + 0x50),
                               *(undefined4 *)(param_1 + 0x54));
            if (iVar7 != 0) goto LAB_0006a356;
            goto LAB_0006a382;
          }
          iVar7 = (**(code **)(iVar7 + 0xc))
                            (piVar8,&local_2c,0xc,*(undefined4 *)(param_1 + 0x50),
                             *(undefined4 *)(param_1 + 0x54));
          goto joined_r0x0006a4d6;
        }
        iVar7 = (**(code **)(iVar7 + 0xc))
                          (piVar8,&local_2c,0xc,*(undefined4 *)(param_1 + 0x50),
                           *(undefined4 *)(param_1 + 0x54));
        if (iVar7 != 0) goto LAB_0006a356;
        if ((uVar6 & 0x400) == 0) goto LAB_0006a382;
      }
      else {
        if ((uVar6 & 0x400) != 0) goto LAB_0006a320;
LAB_0006a382:
        cVar5 = *(char *)(param_1 + 10);
        if (cVar5 == '\x03') {
          cVar5 = '\x13';
        }
        else if (cVar5 == '\0') goto LAB_0006a3aa;
        iVar7 = (**(code **)(**(int **)(param_1 + 0x40) + 0x14))(*(int **)(param_1 + 0x40),cVar5);
joined_r0x0006a4d6:
        if (iVar7 != 0) goto LAB_0006a356;
      }
LAB_0006a3aa:
      *(undefined4 *)(param_1 + 0x50) = *(undefined4 *)(param_1 + 0x48);
      *(undefined4 *)(param_1 + 0x54) = *(undefined4 *)(param_1 + 0x4c);
      if (((uVar6 & 0x200) == 0) && ((param_2 & 1) != 0)) {
        *(undefined4 *)(param_1 + 0x2c) = 0;
        iVar7 = FUN_0005f0c0();
        if (iVar7 != 0) goto LAB_0006a356;
      }
    }
  }
  piVar8 = *(int **)(param_1 + 0xd0);
  for (iVar7 = *piVar8; iVar7 != 0; iVar7 = *(int *)(iVar7 + 0x20)) {
    *(ushort *)(iVar7 + 0x1c) = *(ushort *)(iVar7 + 0x1c) & 0xfff7;
  }
  piVar8[2] = piVar8[1];
  *(undefined1 *)(param_1 + 0x10) = 4;
  iVar7 = iVar1;
LAB_0006a356:
  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {
                    /* WARNING: Subroutine does not return */
    FUN_000a9ea0();
  }
  return iVar7;
}

