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

int config_read(parser_t *parser,char **tokens,uint flags,char *delims)

{
}



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

int __regparm3 FUN_000b7e95(undefined4 *param_1,undefined1 *param_2,uint param_3,byte *param_4)

{
  int iVar1;
  byte bVar2;
  int iVar3;
  size_t sVar4;
  byte *pbVar5;
  int iVar6;
  byte *pbVar7;
  char *pcVar8;
  __ssize_t _Var9;
  byte bVar10;
  char cVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  byte *__s;
  undefined1 *puVar15;
  uint uVar16;
  undefined1 *puVar17;
  byte bVar18;
  undefined1 *local_64;
  byte local_4d;
  
  bVar18 = 0;
  if (param_1 == (undefined4 *)0x0) {
    return 0;
  }
  local_4d = 0;
  if ((param_3 & 0x800000) != 0) {
    local_4d = *param_4;
    param_4 = param_4 + 1;
  }
  uVar12 = param_3 & 0xff;
  uVar16 = param_3 >> 8 & 0xff;
  iVar1 = uVar12 * 4;
  uVar13 = param_3 & 0x20000;
  uVar14 = param_3 & 0x400000;
  iVar3 = iVar1;
  puVar15 = param_2;
code_r0x000b7f52:
  do {
    for (; iVar3 != 0; iVar3 = iVar3 + -1) {
      *puVar15 = 0;
      puVar15 = puVar15 + (uint)bVar18 * -2 + 1;
    }
    iVar3 = __getdelim((char **)(param_1 + 2),param_1 + 4,10,(FILE *)*param_1);
    if (iVar3 < 1) {
      if (iVar3 != 0) {
        return 0;
      }
      __s = (byte *)param_1[2];
    }
    else {
      local_64 = (undefined1 *)param_1[2];
      param_1[6] = param_1[6] + 1;
      cVar11 = local_64[iVar3 + -1];
      while( true ) {
        iVar6 = iVar3;
        if (cVar11 == '\n') {
          iVar6 = iVar3 + -1;
          if (iVar6 == 0) goto LAB_000b81a6;
          cVar11 = local_64[iVar3 + -2];
        }
        if (cVar11 != '\\') {
          local_64 = local_64 + iVar6;
          goto LAB_000b81a6;
        }
        iVar6 = iVar6 + -1;
        _Var9 = __getdelim((char **)(param_1 + 3),param_1 + 5,10,(FILE *)*param_1);
        if (_Var9 < 1) break;
        iVar3 = iVar6 + _Var9;
        if ((uint)param_1[4] < iVar3 + 1U) {
          param_1[4] = iVar3 + 1U;
          local_64 = (undefined1 *)FUN_0001a2be();
          param_1[2] = local_64;
        }
        puVar15 = (undefined1 *)param_1[3];
        puVar17 = local_64 + iVar6;
        for (; _Var9 != 0; _Var9 = _Var9 + -1) {
          *puVar17 = *puVar15;
          puVar15 = puVar15 + (uint)bVar18 * -2 + 1;
          puVar17 = puVar17 + (uint)bVar18 * -2 + 1;
        }
        param_1[6] = param_1[6] + 1;
        cVar11 = local_64[iVar3 + -1];
      }
      local_64 = local_64 + iVar6;
LAB_000b81a6:
      *local_64 = 0;
      __s = (byte *)param_1[2];
    }
    if (uVar13 != 0) {
      sVar4 = strspn((char *)__s,(char *)(param_4 + 1));
      __s = __s + sVar4;
    }
    pbVar5 = __s;
    if ((param_3 & 0x1000000) != 0) {
      pbVar5 = (byte *)FUN_00019041();
    }
    bVar10 = *pbVar5;
    iVar3 = iVar1;
    puVar15 = param_2;
  } while (((bVar10 == 0) || (bVar10 == *param_4)) || (bVar10 == local_4d));
  pbVar5 = param_4 + 1;
  iVar3 = 0;
  do {
    iVar6 = iVar3;
    *(byte **)(param_2 + iVar6 * 4) = __s;
    if ((iVar6 == uVar12 - 1) && ((param_3 & 0x40000) != 0)) {
      if (uVar14 != 0) {
        bVar10 = *param_4;
        pbVar7 = (byte *)strchrnul((char *)__s,(uint)bVar10);
        if (uVar13 != 0) goto LAB_000b80a9;
        bVar2 = *pbVar7;
        goto LAB_000b801c;
      }
      pbVar7 = (byte *)strchrnul((char *)__s,0);
      if (uVar13 != 0) {
LAB_000b80a9:
        while (pcVar8 = strchr((char *)pbVar5,(uint)pbVar7[-1]), pcVar8 != (char *)0x0) {
          pbVar7 = pbVar7 + -1;
        }
        goto LAB_000b8008;
      }
      bVar2 = *pbVar7;
LAB_000b80e2:
      __s = pbVar7;
      if (bVar2 == 0) goto LAB_000b80e8;
      __s = pbVar7 + 1;
      *pbVar7 = 0;
      if ((param_3 & 0x10000) != 0) goto LAB_000b8134;
    }
    else {
      pbVar7 = pbVar5;
      if ((*param_4 != 0) && (pbVar7 = param_4, uVar14 == 0)) {
        pbVar7 = pbVar5;
      }
      sVar4 = strcspn((char *)__s,(char *)pbVar7);
      pbVar7 = __s + sVar4;
LAB_000b8008:
      bVar2 = *pbVar7;
      if (uVar14 == 0) goto LAB_000b80e2;
      bVar10 = *param_4;
LAB_000b801c:
      if (bVar10 != bVar2) goto LAB_000b80e2;
      *pbVar7 = 0;
      __s = pbVar7;
LAB_000b80e8:
      if ((param_3 & 0x10000) == 0) break;
LAB_000b8134:
      sVar4 = strspn((char *)__s,(char *)pbVar5);
      __s = __s + sVar4;
    }
    if (((*__s == 0) || (*__s == *param_4)) || (iVar3 = iVar6 + 1, (int)uVar12 <= iVar6 + 1)) break;
  } while( true );
  iVar6 = iVar6 + 1;
  if ((int)uVar16 <= iVar6) {
    return iVar6;
  }
  FUN_0001930a("bad line %u: %d tokens found, %d needed",param_1[6],iVar6,uVar16);
  iVar3 = iVar1;
  if ((param_3 & 0x100000) != 0) {
                    /* WARNING: Subroutine does not return */
    FUN_00019401();
  }
  goto code_r0x000b7f52;
}


PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
SUB ESP,0x5c
CALL 0x00017650
ADD EBX,0x23b7f
TEST EAX,EAX
JNZ 0x000b7eb9
XOR EBP,EBP
MOV EAX,EBP
ADD ESP,0x5c
POP EBX
POP ESI
POP EDI
POP EBP
RET 0x4
MOV EBP,EDX
MOV byte ptr [ESP + 0x1f],0x0
TEST ECX,0x800000
JNZ 0x000b821d
MOV dword ptr [ESP + 0x24],EBP
MOV dword ptr [ESP + 0xc],EAX
MOVZX EDX,CL
MOV dword ptr [ESP + 0x20],EDX
MOVZX EDI,CH
MOV dword ptr [ESP + 0x38],EDI
LEA ESI,[EDX*0x4 + 0x0]
MOV dword ptr [ESP + 0x28],ESI
MOV EDX,ECX
AND EDX,0x20000
MOV dword ptr [ESP + 0x10],EDX
MOV EDX,ECX
AND EDX,0x1000000
MOV dword ptr [ESP + 0x2c],EDX
MOV EDI,ECX
AND EDI,0x40000
MOV dword ptr [ESP + 0x30],EDI
MOV ESI,ECX
AND ESI,0x400000
MOV dword ptr [ESP + 0x14],ESI
MOV EDX,ECX
AND EDX,0x10000
MOV dword ptr [ESP + 0x18],EDX
AND ECX,0x100000
MOV dword ptr [ESP + 0x34],ECX
LEA ECX,[EAX + 0x10]
MOV dword ptr [ESP + 0x44],ECX
LEA ECX,[EAX + 0x8]
MOV dword ptr [ESP + 0x40],ECX
ADD EAX,0x14
MOV dword ptr [ESP + 0x48],EAX
XOR EAX,EAX
MOV EDI,dword ptr [ESP + 0x24]
MOV ECX,dword ptr [ESP + 0x28]
STOSB.REP ES:EDI
MOV EDI,dword ptr [ESP + 0xc]
PUSH dword ptr [EDI]
PUSH 0xa
PUSH dword ptr [ESP + 0x4c]
PUSH dword ptr [ESP + 0x4c]
CALL 0x00016670
MOV EBP,EAX
ADD ESP,0x10
TEST EAX,EAX
JG 0x000b802e
JNZ 0x000b7eab
MOV EAX,dword ptr [ESP + 0xc]
MOV ESI,dword ptr [EAX + 0x8]
MOV EBP,dword ptr [ESP + 0x10]
TEST EBP,EBP
JZ 0x000b7f9f
SUB ESP,0x8
MOV EAX,dword ptr [ESP + 0x78]
INC EAX
PUSH EAX
PUSH ESI
CALL 0x00017520
ADD ESP,0x10
ADD ESI,EAX
MOV EAX,ESI
MOV EDI,dword ptr [ESP + 0x2c]
TEST EDI,EDI
JZ 0x000b7fae
CALL 0x00019041
MOV AL,byte ptr [EAX]
TEST AL,AL
JZ 0x000b7f48
MOV ECX,dword ptr [ESP + 0x70]
CMP AL,byte ptr [ECX]
JZ 0x000b7f48
CMP AL,byte ptr [ESP + 0x1f]
JZ 0x000b7f48
MOV EAX,dword ptr [ESP + 0x20]
DEC EAX
MOV dword ptr [ESP + 0x3c],EAX
XOR EBP,EBP
LEA EDI,[ECX + 0x1]
MOV dword ptr [ESP + 0x8],EDI
MOV EDI,ESI
MOV EAX,dword ptr [ESP + 0x24]
MOV dword ptr [EAX + EBP*0x4],EDI
CMP EBP,dword ptr [ESP + 0x3c]
JZ 0x000b806f
MOV EAX,dword ptr [ESP + 0x70]
CMP byte ptr [EAX],0x0
JNZ 0x000b816c
MOV EAX,dword ptr [ESP + 0x8]
SUB ESP,0x8
PUSH EAX
PUSH EDI
CALL 0x000161d0
ADD ESP,0x10
LEA ESI,[EDI + EAX*0x1]
MOV AL,byte ptr [ESI]
MOV EDI,dword ptr [ESP + 0x14]
TEST EDI,EDI
JZ 0x000b80e2
MOV EDI,dword ptr [ESP + 0x70]
MOV DL,byte ptr [EDI]
CMP DL,AL
JNZ 0x000b80e2
MOV byte ptr [ESI],0x0
MOV EDI,ESI
JMP 0x000b80e8
MOV EAX,EDI
MOV ECX,dword ptr [EDI + 0x8]
MOV dword ptr [ESP + 0x8],ECX
ADD EAX,0xc
MOV dword ptr [ESP + 0x3c],EAX
MOV EAX,dword ptr [ESP + 0xc]
INC dword ptr [EAX + 0x18]
MOV EAX,EBP
MOV DL,byte ptr [ECX + EBP*0x1 + -0x1]
CMP DL,0xa
JNZ 0x000b805d
DEC EAX
JZ 0x000b81a6
MOV DL,byte ptr [ECX + EBP*0x1 + -0x2]
MOV EBP,EAX
CMP DL,0x5c
JZ 0x000b8181
ADD dword ptr [ESP + 0x8],EAX
JMP 0x000b81a6
MOV ECX,dword ptr [ESP + 0x30]
TEST ECX,ECX
JZ 0x000b7fe7
MOV EAX,dword ptr [ESP + 0x14]
TEST EAX,EAX
JZ 0x000b80c8
MOV EAX,dword ptr [ESP + 0x70]
MOVZX EAX,byte ptr [EAX]
SUB ESP,0x8
MOV byte ptr [ESP + 0x54],AL
PUSH EAX
PUSH EDI
CALL 0x00016d50
ADD ESP,0x10
MOV ESI,EAX
MOV EAX,dword ptr [ESP + 0x10]
TEST EAX,EAX
JZ 0x000b8161
SUB ESP,0x8
MOVZX EAX,byte ptr [ESI + -0x1]
PUSH EAX
PUSH dword ptr [ESP + 0x14]
CALL 0x00016ad0
ADD ESP,0x10
TEST EAX,EAX
JZ 0x000b8008
DEC ESI
JMP 0x000b80a9
SUB ESP,0x8
PUSH 0x0
PUSH EDI
CALL 0x00016d50
ADD ESP,0x10
MOV ESI,EAX
MOV EAX,dword ptr [ESP + 0x10]
TEST EAX,EAX
JNZ 0x000b80a9
MOV AL,byte ptr [ESI]
TEST AL,AL
JNZ 0x000b8126
MOV EDI,ESI
MOV EDX,dword ptr [ESP + 0x18]
TEST EDX,EDX
JNZ 0x000b8134
INC EBP
MOV EAX,dword ptr [ESP + 0x38]
CMP EAX,EBP
JLE 0x000b7ead
PUSH EAX
PUSH EBP
MOV EAX,dword ptr [ESP + 0x14]
PUSH dword ptr [EAX + 0x18]
LEA EAX,[EBX + 0xfffecae4]
PUSH EAX
CALL 0x0001930a
ADD ESP,0x10
MOV ECX,dword ptr [ESP + 0x34]
TEST ECX,ECX
JZ 0x000b7f48
CALL 0x00019401
LEA EDI,[ESI + 0x1]
MOV byte ptr [ESI],0x0
MOV ESI,dword ptr [ESP + 0x18]
TEST ESI,ESI
JZ 0x000b8146
SUB ESP,0x8
PUSH dword ptr [ESP + 0x10]
PUSH EDI
CALL 0x00017520
ADD ESP,0x10
ADD EDI,EAX
INC EBP
MOV AL,byte ptr [EDI]
TEST AL,AL
JZ 0x000b80f1
MOV ECX,dword ptr [ESP + 0x70]
CMP AL,byte ptr [ECX]
JZ 0x000b80f1
CMP dword ptr [ESP + 0x20],EBP
JG 0x000b7fd6
JMP 0x000b80f1
MOV AL,byte ptr [ESI]
MOV DL,byte ptr [ESP + 0x4c]
JMP 0x000b801c
MOV EDX,dword ptr [ESP + 0x14]
TEST EDX,EDX
JNZ 0x000b7ff8
MOV EAX,dword ptr [ESP + 0x8]
JMP 0x000b7ff8
LEA ESI,[EBP + -0x1]
MOV EAX,dword ptr [ESP + 0xc]
PUSH dword ptr [EAX]
PUSH 0xa
PUSH dword ptr [ESP + 0x50]
PUSH dword ptr [ESP + 0x48]
CALL 0x00016670
MOV ECX,EAX
ADD ESP,0x10
TEST EAX,EAX
JG 0x000b81c5
ADD dword ptr [ESP + 0x8],ESI
MOV EAX,dword ptr [ESP + 0x8]
MOV byte ptr [EAX],0x0
MOV EAX,dword ptr [ESP + 0xc]
MOV ESI,dword ptr [EAX + 0x8]
MOV EBP,dword ptr [ESP + 0x10]
TEST EBP,EBP
JZ 0x000b7f9f
JMP 0x000b7f8b
LEA EBP,[ESI + EAX*0x1]
LEA EDX,[EBP + 0x1]
MOV EDI,dword ptr [ESP + 0xc]
CMP dword ptr [EDI + 0x10],EDX
JNC 0x000b81ef
MOV dword ptr [ESP + 0x4c],EAX
MOV dword ptr [EDI + 0x10],EDX
MOV EAX,dword ptr [ESP + 0x8]
CALL 0x0001a2be
MOV dword ptr [ESP + 0x8],EAX
MOV dword ptr [EDI + 0x8],EAX
MOV ECX,dword ptr [ESP + 0x4c]
MOV EAX,dword ptr [ESP + 0x8]
ADD EAX,ESI
MOV EDX,dword ptr [ESP + 0xc]
MOV ESI,dword ptr [EDX + 0xc]
MOV EDI,EAX
MOVSB.REP ES:EDI,ESI
MOV EAX,EDX
MOV ECX,dword ptr [ESP + 0x8]
INC dword ptr [EAX + 0x18]
MOV EAX,EBP
MOV DL,byte ptr [ECX + EBP*0x1 + -0x1]
CMP DL,0xa
JNZ 0x000b805d
JMP 0x000b8050
MOV EDI,dword ptr [ESP + 0x70]
MOV DL,byte ptr [EDI]
MOV byte ptr [ESP + 0x1f],DL
LEA EDX,[EDI + 0x1]
MOV dword ptr [ESP + 0x70],EDX
JMP 0x000b7ecc
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nint __regparm3 FUN_000b7e95(undefined4 *param_1,undefined1 *param_2,uint param_3,byte *param_4)\n\n{\n  int iVar1;\n  byte bVar2;\n  int iVar3;\n  size_t sVar4;\n  byte *pbVar5;\n  int iVar6;\n  byte *pbVar7;\n  char *pcVar8;\n  __ssize_t _Var9;\n  byte bVar10;\n  char cVar11;\n  uint uVar12;\n  uint uVar13;\n  uint uVar14;\n  byte *__s;\n  undefined1 *puVar15;\n  uint uVar16;\n  undefined1 *puVar17;\n  byte bVar18;\n  undefined1 *local_64;\n  byte local_4d;\n  \n  bVar18 = 0;\n  if (param_1 == (undefined4 *)0x0) {\n    return 0;\n  }\n  local_4d = 0;\n  if ((param_3 & 0x800000) != 0) {\n    local_4d = *param_4;\n    param_4 = param_4 + 1;\n  }\n  uVar12 = param_3 & 0xff;\n  uVar16 = param_3 >> 8 & 0xff;\n  iVar1 = uVar12 * 4;\n  uVar13 = param_3 & 0x20000;\n  uVar14 = param_3 & 0x400000;\n  iVar3 = iVar1;\n  puVar15 = param_2;\ncode_r0x000b7f52:\n  do {\n    for (; iVar3 != 0; iVar3 = iVar3 + -1) {\n      *puVar15 = 0;\n      puVar15 = puVar15 + (uint)bVar18 * -2 + 1;\n    }\n    iVar3 = __getdelim((char **)(param_1 + 2),param_1 + 4,10,(FILE *)*param_1);\n    if (iVar3 < 1) {\n      if (iVar3 != 0) {\n        return 0;\n      }\n      __s = (byte *)param_1[2];\n    }\n    else {\n      local_64 = (undefined1 *)param_1[2];\n      param_1[6] = param_1[6] + 1;\n      cVar11 = local_64[iVar3 + -1];\n      while( true ) {\n        iVar6 = iVar3;\n        if (cVar11 == '\n') {\n          iVar6 = iVar3 + -1;\n          if (iVar6 == 0) goto LAB_000b81a6;\n          cVar11 = local_64[iVar3 + -2];\n        }\n        if (cVar11 != '\\') {\n          local_64 = local_64 + iVar6;\n          goto LAB_000b81a6;\n        }\n        iVar6 = iVar6 + -1;\n        _Var9 = __getdelim((char **)(param_1 + 3),param_1 + 5,10,(FILE *)*param_1);\n        if (_Var9 < 1) break;\n        iVar3 = iVar6 + _Var9;\n        if ((uint)param_1[4] < iVar3 + 1U) {\n          param_1[4] = iVar3 + 1U;\n          local_64 = (undefined1 *)FUN_0001a2be();\n          param_1[2] = local_64;\n        }\n        puVar15 = (undefined1 *)param_1[3];\n        puVar17 = local_64 + iVar6;\n        for (; _Var9 != 0; _Var9 = _Var9 + -1) {\n          *puVar17 = *puVar15;\n          puVar15 = puVar15 + (uint)bVar18 * -2 + 1;\n          puVar17 = puVar17 + (uint)bVar18 * -2 + 1;\n        }\n        param_1[6] = param_1[6] + 1;\n        cVar11 = local_64[iVar3 + -1];\n      }\n      local_64 = local_64 + iVar6;\nLAB_000b81a6:\n      *local_64 = 0;\n      __s = (byte *)param_1[2];\n    }\n    if (uVar13 != 0) {\n      sVar4 = strspn((char *)__s,(char *)(param_4 + 1));\n      __s = __s + sVar4;\n    }\n    pbVar5 = __s;\n    if ((param_3 & 0x1000000) != 0) {\n      pbVar5 = (byte *)FUN_00019041();\n    }\n    bVar10 = *pbVar5;\n    iVar3 = iVar1;\n    puVar15 = param_2;\n  } while (((bVar10 == 0) || (bVar10 == *param_4)) || (bVar10 == local_4d));\n  pbVar5 = param_4 + 1;\n  iVar3 = 0;\n  do {\n    iVar6 = iVar3;\n    *(byte **)(param_2 + iVar6 * 4) = __s;\n    if ((iVar6 == uVar12 - 1) && ((param_3 & 0x40000) != 0)) {\n      if (uVar14 != 0) {\n        bVar10 = *param_4;\n        pbVar7 = (byte *)strchrnul((char *)__s,(uint)bVar10);\n        if (uVar13 != 0) goto LAB_000b80a9;\n        bVar2 = *pbVar7;\n        goto LAB_000b801c;\n      }\n      pbVar7 = (byte *)strchrnul((char *)__s,0);\n      if (uVar13 != 0) {\nLAB_000b80a9:\n        while (pcVar8 = strchr((char *)pbVar5,(uint)pbVar7[-1]), pcVar8 != (char *)0x0) {\n          pbVar7 = pbVar7 + -1;\n        }\n        goto LAB_000b8008;\n      }\n      bVar2 = *pbVar7;\nLAB_000b80e2:\n      __s = pbVar7;\n      if (bVar2 == 0) goto LAB_000b80e8;\n      __s = pbVar7 + 1;\n      *pbVar7 = 0;\n      if ((param_3 & 0x10000) != 0) goto LAB_000b8134;\n    }\n    else {\n      pbVar7 = pbVar5;\n      if ((*param_4 != 0) && (pbVar7 = param_4, uVar14 == 0)) {\n        pbVar7 = pbVar5;\n      }\n      sVar4 = strcspn((char *)__s,(char *)pbVar7);\n      pbVar7 = __s + sVar4;\nLAB_000b8008:\n      bVar2 = *pbVar7;\n      if (uVar14 == 0) goto LAB_000b80e2;\n      bVar10 = *param_4;\nLAB_000b801c:\n      if (bVar10 != bVar2) goto LAB_000b80e2;\n      *pbVar7 = 0;\n      __s = pbVar7;\nLAB_000b80e8:\n      if ((param_3 & 0x10000) == 0) break;\nLAB_000b8134:\n      sVar4 = strspn((char *)__s,(char *)pbVar5);\n      __s = __s + sVar4;\n    }\n    if (((*__s == 0) || (*__s == *param_4)) || (iVar3 = iVar6 + 1, (int)uVar12 <= iVar6 + 1)) break;\n  } while( true );\n  iVar6 = iVar6 + 1;\n  if ((int)uVar16 <= iVar6) {\n    return iVar6;\n  }\n  FUN_0001930a("bad line %u: %d tokens found, %d needed",param_1[6],iVar6,uVar16);\n  iVar3 = iVar1;\n  if ((param_3 & 0x100000) != 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_00019401();\n  }\n  goto code_r0x000b7f52;\n}\n\n" comment (function_definition "int __regparm3 FUN_000b7e95(undefined4 *param_1,undefined1 *param_2,uint param_3,byte *param_4)\n\n{\n  int iVar1;\n  byte bVar2;\n  int iVar3;\n  size_t sVar4;\n  byte *pbVar5;\n  int iVar6;\n  byte *pbVar7;\n  char *pcVar8;\n  __ssize_t _Var9;\n  byte bVar10;\n  char cVar11;\n  uint uVar12;\n  uint uVar13;\n  uint uVar14;\n  byte *__s;\n  undefined1 *puVar15;\n  uint uVar16;\n  undefined1 *puVar17;\n  byte bVar18;\n  undefined1 *local_64;\n  byte local_4d;\n  \n  bVar18 = 0;\n  if (param_1 == (undefined4 *)0x0) {\n    return 0;\n  }\n  local_4d = 0;\n  if ((param_3 & 0x800000) != 0) {\n    local_4d = *param_4;\n    param_4 = param_4 + 1;\n  }\n  uVar12 = param_3 & 0xff;\n  uVar16 = param_3 >> 8 & 0xff;\n  iVar1 = uVar12 * 4;\n  uVar13 = param_3 & 0x20000;\n  uVar14 = param_3 & 0x400000;\n  iVar3 = iVar1;\n  puVar15 = param_2;\ncode_r0x000b7f52:\n  do {\n    for (; iVar3 != 0; iVar3 = iVar3 + -1) {\n      *puVar15 = 0;\n      puVar15 = puVar15 + (uint)bVar18 * -2 + 1;\n    }\n    iVar3 = __getdelim((char **)(param_1 + 2),param_1 + 4,10,(FILE *)*param_1);\n    if (iVar3 < 1) {\n      if (iVar3 != 0) {\n        return 0;\n      }\n      __s = (byte *)param_1[2];\n    }\n    else {\n      local_64 = (undefined1 *)param_1[2];\n      param_1[6] = param_1[6] + 1;\n      cVar11 = local_64[iVar3 + -1];\n      while( true ) {\n        iVar6 = iVar3;\n        if (cVar11 == '\n') {\n          iVar6 = iVar3 + -1;\n          if (iVar6 == 0) goto LAB_000b81a6;\n          cVar11 = local_64[iVar3 + -2];\n        }\n        if (cVar11 != '\\') {\n          local_64 = local_64 + iVar6;\n          goto LAB_000b81a6;\n        }\n        iVar6 = iVar6 + -1;\n        _Var9 = __getdelim((char **)(param_1 + 3),param_1 + 5,10,(FILE *)*param_1);\n        if (_Var9 < 1) break;\n        iVar3 = iVar6 + _Var9;\n        if ((uint)param_1[4] < iVar3 + 1U) {\n          param_1[4] = iVar3 + 1U;\n          local_64 = (undefined1 *)FUN_0001a2be();\n          param_1[2] = local_64;\n        }\n        puVar15 = (undefined1 *)param_1[3];\n        puVar17 = local_64 + iVar6;\n        for (; _Var9 != 0; _Var9 = _Var9 + -1) {\n          *puVar17 = *puVar15;\n          puVar15 = puVar15 + (uint)bVar18 * -2 + 1;\n          puVar17 = puVar17 + (uint)bVar18 * -2 + 1;\n        }\n        param_1[6] = param_1[6] + 1;\n        cVar11 = local_64[iVar3 + -1];\n      }\n      local_64 = local_64 + iVar6;\nLAB_000b81a6:\n      *local_64 = 0;\n      __s = (byte *)param_1[2];\n    }\n    if (uVar13 != 0) {\n      sVar4 = strspn((char *)__s,(char *)(param_4 + 1));\n      __s = __s + sVar4;\n    }\n    pbVar5 = __s;\n    if ((param_3 & 0x1000000) != 0) {\n      pbVar5 = (byte *)FUN_00019041();\n    }\n    bVar10 = *pbVar5;\n    iVar3 = iVar1;\n    puVar15 = param_2;\n  } while (((bVar10 == 0) || (bVar10 == *param_4)) || (bVar10 == local_4d));\n  pbVar5 = param_4 + 1;\n  iVar3 = 0;\n  do {\n    iVar6 = iVar3;\n    *(byte **)(param_2 + iVar6 * 4) = __s;\n    if ((iVar6 == uVar12 - 1) && ((param_3 & 0x40000) != 0)) {\n      if (uVar14 != 0) {\n        bVar10 = *param_4;\n        pbVar7 = (byte *)strchrnul((char *)__s,(uint)bVar10);\n        if (uVar13 != 0) goto LAB_000b80a9;\n        bVar2 = *pbVar7;\n        goto LAB_000b801c;\n      }\n      pbVar7 = (byte *)strchrnul((char *)__s,0);\n      if (uVar13 != 0) {\nLAB_000b80a9:\n        while (pcVar8 = strchr((char *)pbVar5,(uint)pbVar7[-1]), pcVar8 != (char *)0x0) {\n          pbVar7 = pbVar7 + -1;\n        }\n        goto LAB_000b8008;\n      }\n      bVar2 = *pbVar7;\nLAB_000b80e2:\n      __s = pbVar7;\n      if (bVar2 == 0) goto LAB_000b80e8;\n      __s = pbVar7 + 1;\n      *pbVar7 = 0;\n      if ((param_3 & 0x10000) != 0) goto LAB_000b8134;\n    }\n    else {\n      pbVar7 = pbVar5;\n      if ((*param_4 != 0) && (pbVar7 = param_4, uVar14 == 0)) {\n        pbVar7 = pbVar5;\n      }\n      sVar4 = strcspn((char *)__s,(char *)pbVar7);\n      pbVar7 = __s + sVar4;\nLAB_000b8008:\n      bVar2 = *pbVar7;\n      if (uVar14 == 0) goto LAB_000b80e2;\n      bVar10 = *param_4;\nLAB_000b801c:\n      if (bVar10 != bVar2) goto LAB_000b80e2;\n      *pbVar7 = 0;\n      __s = pbVar7;\nLAB_000b80e8:\n      if ((param_3 & 0x10000) == 0) break;\nLAB_000b8134:\n      sVar4 = strspn((char *)__s,(char *)pbVar5);\n      __s = __s + sVar4;\n    }\n    if (((*__s == 0) || (*__s == *param_4)) || (iVar3 = iVar6 + 1, (int)uVar12 <= iVar6 + 1)) break;\n  } while( true );\n  iVar6 = iVar6 + 1;\n  if ((int)uVar16 <= iVar6) {\n    return iVar6;\n  }\n  FUN_0001930a("bad line %u: %d tokens found, %d needed",param_1[6],iVar6,uVar16);\n  iVar3 = iVar1;\n  if ((param_3 & 0x100000) != 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_00019401();\n  }\n  goto code_r0x000b7f52;\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "FUN_000b7e95(undefined4 *param_1,undefined1 *param_2,uint param_3,byte *param_4)" identifier (parameter_list "(undefined4 *param_1,undefined1 *param_2,uint param_3,byte *param_4)" ( (parameter_declaration "undefined4 *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "undefined1 *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "uint param_3" type_identifier identifier) , (parameter_declaration "byte *param_4" type_identifier (pointer_declarator "*param_4" * identifier)) ))) (compound_statement "{\n  int iVar1;\n  byte bVar2;\n  int iVar3;\n  size_t sVar4;\n  byte *pbVar5;\n  int iVar6;\n  byte *pbVar7;\n  char *pcVar8;\n  __ssize_t _Var9;\n  byte bVar10;\n  char cVar11;\n  uint uVar12;\n  uint uVar13;\n  uint uVar14;\n  byte *__s;\n  undefined1 *puVar15;\n  uint uVar16;\n  undefined1 *puVar17;\n  byte bVar18;\n  undefined1 *local_64;\n  byte local_4d;\n  \n  bVar18 = 0;\n  if (param_1 == (undefined4 *)0x0) {\n    return 0;\n  }\n  local_4d = 0;\n  if ((param_3 & 0x800000) != 0) {\n    local_4d = *param_4;\n    param_4 = param_4 + 1;\n  }\n  uVar12 = param_3 & 0xff;\n  uVar16 = param_3 >> 8 & 0xff;\n  iVar1 = uVar12 * 4;\n  uVar13 = param_3 & 0x20000;\n  uVar14 = param_3 & 0x400000;\n  iVar3 = iVar1;\n  puVar15 = param_2;\ncode_r0x000b7f52:\n  do {\n    for (; iVar3 != 0; iVar3 = iVar3 + -1) {\n      *puVar15 = 0;\n      puVar15 = puVar15 + (uint)bVar18 * -2 + 1;\n    }\n    iVar3 = __getdelim((char **)(param_1 + 2),param_1 + 4,10,(FILE *)*param_1);\n    if (iVar3 < 1) {\n      if (iVar3 != 0) {\n        return 0;\n      }\n      __s = (byte *)param_1[2];\n    }\n    else {\n      local_64 = (undefined1 *)param_1[2];\n      param_1[6] = param_1[6] + 1;\n      cVar11 = local_64[iVar3 + -1];\n      while( true ) {\n        iVar6 = iVar3;\n        if (cVar11 == '\n') {\n          iVar6 = iVar3 + -1;\n          if (iVar6 == 0) goto LAB_000b81a6;\n          cVar11 = local_64[iVar3 + -2];\n        }\n        if (cVar11 != '\\') {\n          local_64 = local_64 + iVar6;\n          goto LAB_000b81a6;\n        }\n        iVar6 = iVar6 + -1;\n        _Var9 = __getdelim((char **)(param_1 + 3),param_1 + 5,10,(FILE *)*param_1);\n        if (_Var9 < 1) break;\n        iVar3 = iVar6 + _Var9;\n        if ((uint)param_1[4] < iVar3 + 1U) {\n          param_1[4] = iVar3 + 1U;\n          local_64 = (undefined1 *)FUN_0001a2be();\n          param_1[2] = local_64;\n        }\n        puVar15 = (undefined1 *)param_1[3];\n        puVar17 = local_64 + iVar6;\n        for (; _Var9 != 0; _Var9 = _Var9 + -1) {\n          *puVar17 = *puVar15;\n          puVar15 = puVar15 + (uint)bVar18 * -2 + 1;\n          puVar17 = puVar17 + (uint)bVar18 * -2 + 1;\n        }\n        param_1[6] = param_1[6] + 1;\n        cVar11 = local_64[iVar3 + -1];\n      }\n      local_64 = local_64 + iVar6;\nLAB_000b81a6:\n      *local_64 = 0;\n      __s = (byte *)param_1[2];\n    }\n    if (uVar13 != 0) {\n      sVar4 = strspn((char *)__s,(char *)(param_4 + 1));\n      __s = __s + sVar4;\n    }\n    pbVar5 = __s;\n    if ((param_3 & 0x1000000) != 0) {\n      pbVar5 = (byte *)FUN_00019041();\n    }\n    bVar10 = *pbVar5;\n    iVar3 = iVar1;\n    puVar15 = param_2;\n  } while (((bVar10 == 0) || (bVar10 == *param_4)) || (bVar10 == local_4d));\n  pbVar5 = param_4 + 1;\n  iVar3 = 0;\n  do {\n    iVar6 = iVar3;\n    *(byte **)(param_2 + iVar6 * 4) = __s;\n    if ((iVar6 == uVar12 - 1) && ((param_3 & 0x40000) != 0)) {\n      if (uVar14 != 0) {\n        bVar10 = *param_4;\n        pbVar7 = (byte *)strchrnul((char *)__s,(uint)bVar10);\n        if (uVar13 != 0) goto LAB_000b80a9;\n        bVar2 = *pbVar7;\n        goto LAB_000b801c;\n      }\n      pbVar7 = (byte *)strchrnul((char *)__s,0);\n      if (uVar13 != 0) {\nLAB_000b80a9:\n        while (pcVar8 = strchr((char *)pbVar5,(uint)pbVar7[-1]), pcVar8 != (char *)0x0) {\n          pbVar7 = pbVar7 + -1;\n        }\n        goto LAB_000b8008;\n      }\n      bVar2 = *pbVar7;\nLAB_000b80e2:\n      __s = pbVar7;\n      if (bVar2 == 0) goto LAB_000b80e8;\n      __s = pbVar7 + 1;\n      *pbVar7 = 0;\n      if ((param_3 & 0x10000) != 0) goto LAB_000b8134;\n    }\n    else {\n      pbVar7 = pbVar5;\n      if ((*param_4 != 0) && (pbVar7 = param_4, uVar14 == 0)) {\n        pbVar7 = pbVar5;\n      }\n      sVar4 = strcspn((char *)__s,(char *)pbVar7);\n      pbVar7 = __s + sVar4;\nLAB_000b8008:\n      bVar2 = *pbVar7;\n      if (uVar14 == 0) goto LAB_000b80e2;\n      bVar10 = *param_4;\nLAB_000b801c:\n      if (bVar10 != bVar2) goto LAB_000b80e2;\n      *pbVar7 = 0;\n      __s = pbVar7;\nLAB_000b80e8:\n      if ((param_3 & 0x10000) == 0) break;\nLAB_000b8134:\n      sVar4 = strspn((char *)__s,(char *)pbVar5);\n      __s = __s + sVar4;\n    }\n    if (((*__s == 0) || (*__s == *param_4)) || (iVar3 = iVar6 + 1, (int)uVar12 <= iVar6 + 1)) break;\n  } while( true );\n  iVar6 = iVar6 + 1;\n  if ((int)uVar16 <= iVar6) {\n    return iVar6;\n  }\n  FUN_0001930a("bad line %u: %d tokens found, %d needed",param_1[6],iVar6,uVar16);\n  iVar3 = iVar1;\n  if ((param_3 & 0x100000) != 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_00019401();\n  }\n  goto code_r0x000b7f52;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "byte bVar2;" type_identifier identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "size_t sVar4;" primitive_type identifier ;) (declaration "byte *pbVar5;" type_identifier (pointer_declarator "*pbVar5" * identifier) ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "byte *pbVar7;" type_identifier (pointer_declarator "*pbVar7" * identifier) ;) (declaration "char *pcVar8;" primitive_type (pointer_declarator "*pcVar8" * identifier) ;) (declaration "__ssize_t _Var9;" type_identifier identifier ;) (declaration "byte bVar10;" type_identifier identifier ;) (declaration "char cVar11;" primitive_type identifier ;) (declaration "uint uVar12;" type_identifier identifier ;) (declaration "uint uVar13;" type_identifier identifier ;) (declaration "uint uVar14;" type_identifier identifier ;) (declaration "byte *__s;" type_identifier (pointer_declarator "*__s" * identifier) ;) (declaration "undefined1 *puVar15;" type_identifier (pointer_declarator "*puVar15" * identifier) ;) (declaration "uint uVar16;" type_identifier identifier ;) (declaration "undefined1 *puVar17;" type_identifier (pointer_declarator "*puVar17" * identifier) ;) (declaration "byte bVar18;" type_identifier identifier ;) (declaration "undefined1 *local_64;" type_identifier (pointer_declarator "*local_64" * identifier) ;) (declaration "byte local_4d;" type_identifier identifier ;) (expression_statement "bVar18 = 0;" (assignment_expression "bVar18 = 0" identifier = number_literal) ;) (if_statement "if (param_1 == (undefined4 *)0x0) {\n    return 0;\n  }" if (parenthesized_expression "(param_1 == (undefined4 *)0x0)" ( (binary_expression "param_1 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    return 0;\n  }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "local_4d = 0;" (assignment_expression "local_4d = 0" identifier = number_literal) ;) (if_statement "if ((param_3 & 0x800000) != 0) {\n    local_4d = *param_4;\n    param_4 = param_4 + 1;\n  }" if (parenthesized_expression "((param_3 & 0x800000) != 0)" ( (binary_expression "(param_3 & 0x800000) != 0" (parenthesized_expression "(param_3 & 0x800000)" ( (binary_expression "param_3 & 0x800000" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n    local_4d = *param_4;\n    param_4 = param_4 + 1;\n  }" { (expression_statement "local_4d = *param_4;" (assignment_expression "local_4d = *param_4" identifier = (pointer_expression "*param_4" * identifier)) ;) (expression_statement "param_4 = param_4 + 1;" (assignment_expression "param_4 = param_4 + 1" identifier = (binary_expression "param_4 + 1" identifier + number_literal)) ;) })) (expression_statement "uVar12 = param_3 & 0xff;" (assignment_expression "uVar12 = param_3 & 0xff" identifier = (binary_expression "param_3 & 0xff" identifier & number_literal)) ;) (expression_statement "uVar16 = param_3 >> 8 & 0xff;" (assignment_expression "uVar16 = param_3 >> 8 & 0xff" identifier = (binary_expression "param_3 >> 8 & 0xff" (binary_expression "param_3 >> 8" identifier >> number_literal) & number_literal)) ;) (expression_statement "iVar1 = uVar12 * 4;" (assignment_expression "iVar1 = uVar12 * 4" identifier = (binary_expression "uVar12 * 4" identifier * number_literal)) ;) (expression_statement "uVar13 = param_3 & 0x20000;" (assignment_expression "uVar13 = param_3 & 0x20000" identifier = (binary_expression "param_3 & 0x20000" identifier & number_literal)) ;) (expression_statement "uVar14 = param_3 & 0x400000;" (assignment_expression "uVar14 = param_3 & 0x400000" identifier = (binary_expression "param_3 & 0x400000" identifier & number_literal)) ;) (expression_statement "iVar3 = iVar1;" (assignment_expression "iVar3 = iVar1" identifier = identifier) ;) (expression_statement "puVar15 = param_2;" (assignment_expression "puVar15 = param_2" identifier = identifier) ;) (labeled_statement "code_r0x000b7f52:\n  do {\n    for (; iVar3 != 0; iVar3 = iVar3 + -1) {\n      *puVar15 = 0;\n      puVar15 = puVar15 + (uint)bVar18 * -2 + 1;\n    }\n    iVar3 = __getdelim((char **)(param_1 + 2),param_1 + 4,10,(FILE *)*param_1);\n    if (iVar3 < 1) {\n      if (iVar3 != 0) {\n        return 0;\n      }\n      __s = (byte *)param_1[2];\n    }\n    else {\n      local_64 = (undefined1 *)param_1[2];\n      param_1[6] = param_1[6] + 1;\n      cVar11 = local_64[iVar3 + -1];\n      while( true ) {\n        iVar6 = iVar3;\n        if (cVar11 == '\n') {\n          iVar6 = iVar3 + -1;\n          if (iVar6 == 0) goto LAB_000b81a6;\n          cVar11 = local_64[iVar3 + -2];\n        }\n        if (cVar11 != '\\') {\n          local_64 = local_64 + iVar6;\n          goto LAB_000b81a6;\n        }\n        iVar6 = iVar6 + -1;\n        _Var9 = __getdelim((char **)(param_1 + 3),param_1 + 5,10,(FILE *)*param_1);\n        if (_Var9 < 1) break;\n        iVar3 = iVar6 + _Var9;\n        if ((uint)param_1[4] < iVar3 + 1U) {\n          param_1[4] = iVar3 + 1U;\n          local_64 = (undefined1 *)FUN_0001a2be();\n          param_1[2] = local_64;\n        }\n        puVar15 = (undefined1 *)param_1[3];\n        puVar17 = local_64 + iVar6;\n        for (; _Var9 != 0; _Var9 = _Var9 + -1) {\n          *puVar17 = *puVar15;\n          puVar15 = puVar15 + (uint)bVar18 * -2 + 1;\n          puVar17 = puVar17 + (uint)bVar18 * -2 + 1;\n        }\n        param_1[6] = param_1[6] + 1;\n        cVar11 = local_64[iVar3 + -1];\n      }\n      local_64 = local_64 + iVar6;\nLAB_000b81a6:\n      *local_64 = 0;\n      __s = (byte *)param_1[2];\n    }\n    if (uVar13 != 0) {\n      sVar4 = strspn((char *)__s,(char *)(param_4 + 1));\n      __s = __s + sVar4;\n    }\n    pbVar5 = __s;\n    if ((param_3 & 0x1000000) != 0) {\n      pbVar5 = (byte *)FUN_00019041();\n    }\n    bVar10 = *pbVar5;\n    iVar3 = iVar1;\n    puVar15 = param_2;\n  } while (((bVar10 == 0) || (bVar10 == *param_4)) || (bVar10 == local_4d));" statement_identifier : (do_statement "do {\n    for (; iVar3 != 0; iVar3 = iVar3 + -1) {\n      *puVar15 = 0;\n      puVar15 = puVar15 + (uint)bVar18 * -2 + 1;\n    }\n    iVar3 = __getdelim((char **)(param_1 + 2),param_1 + 4,10,(FILE *)*param_1);\n    if (iVar3 < 1) {\n      if (iVar3 != 0) {\n        return 0;\n      }\n      __s = (byte *)param_1[2];\n    }\n    else {\n      local_64 = (undefined1 *)param_1[2];\n      param_1[6] = param_1[6] + 1;\n      cVar11 = local_64[iVar3 + -1];\n      while( true ) {\n        iVar6 = iVar3;\n        if (cVar11 == '\n') {\n          iVar6 = iVar3 + -1;\n          if (iVar6 == 0) goto LAB_000b81a6;\n          cVar11 = local_64[iVar3 + -2];\n        }\n        if (cVar11 != '\\') {\n          local_64 = local_64 + iVar6;\n          goto LAB_000b81a6;\n        }\n        iVar6 = iVar6 + -1;\n        _Var9 = __getdelim((char **)(param_1 + 3),param_1 + 5,10,(FILE *)*param_1);\n        if (_Var9 < 1) break;\n        iVar3 = iVar6 + _Var9;\n        if ((uint)param_1[4] < iVar3 + 1U) {\n          param_1[4] = iVar3 + 1U;\n          local_64 = (undefined1 *)FUN_0001a2be();\n          param_1[2] = local_64;\n        }\n        puVar15 = (undefined1 *)param_1[3];\n        puVar17 = local_64 + iVar6;\n        for (; _Var9 != 0; _Var9 = _Var9 + -1) {\n          *puVar17 = *puVar15;\n          puVar15 = puVar15 + (uint)bVar18 * -2 + 1;\n          puVar17 = puVar17 + (uint)bVar18 * -2 + 1;\n        }\n        param_1[6] = param_1[6] + 1;\n        cVar11 = local_64[iVar3 + -1];\n      }\n      local_64 = local_64 + iVar6;\nLAB_000b81a6:\n      *local_64 = 0;\n      __s = (byte *)param_1[2];\n    }\n    if (uVar13 != 0) {\n      sVar4 = strspn((char *)__s,(char *)(param_4 + 1));\n      __s = __s + sVar4;\n    }\n    pbVar5 = __s;\n    if ((param_3 & 0x1000000) != 0) {\n      pbVar5 = (byte *)FUN_00019041();\n    }\n    bVar10 = *pbVar5;\n    iVar3 = iVar1;\n    puVar15 = param_2;\n  } while (((bVar10 == 0) || (bVar10 == *param_4)) || (bVar10 == local_4d));" do (compound_statement "{\n    for (; iVar3 != 0; iVar3 = iVar3 + -1) {\n      *puVar15 = 0;\n      puVar15 = puVar15 + (uint)bVar18 * -2 + 1;\n    }\n    iVar3 = __getdelim((char **)(param_1 + 2),param_1 + 4,10,(FILE *)*param_1);\n    if (iVar3 < 1) {\n      if (iVar3 != 0) {\n        return 0;\n      }\n      __s = (byte *)param_1[2];\n    }\n    else {\n      local_64 = (undefined1 *)param_1[2];\n      param_1[6] = param_1[6] + 1;\n      cVar11 = local_64[iVar3 + -1];\n      while( true ) {\n        iVar6 = iVar3;\n        if (cVar11 == '\n') {\n          iVar6 = iVar3 + -1;\n          if (iVar6 == 0) goto LAB_000b81a6;\n          cVar11 = local_64[iVar3 + -2];\n        }\n        if (cVar11 != '\\') {\n          local_64 = local_64 + iVar6;\n          goto LAB_000b81a6;\n        }\n        iVar6 = iVar6 + -1;\n        _Var9 = __getdelim((char **)(param_1 + 3),param_1 + 5,10,(FILE *)*param_1);\n        if (_Var9 < 1) break;\n        iVar3 = iVar6 + _Var9;\n        if ((uint)param_1[4] < iVar3 + 1U) {\n          param_1[4] = iVar3 + 1U;\n          local_64 = (undefined1 *)FUN_0001a2be();\n          param_1[2] = local_64;\n        }\n        puVar15 = (undefined1 *)param_1[3];\n        puVar17 = local_64 + iVar6;\n        for (; _Var9 != 0; _Var9 = _Var9 + -1) {\n          *puVar17 = *puVar15;\n          puVar15 = puVar15 + (uint)bVar18 * -2 + 1;\n          puVar17 = puVar17 + (uint)bVar18 * -2 + 1;\n        }\n        param_1[6] = param_1[6] + 1;\n        cVar11 = local_64[iVar3 + -1];\n      }\n      local_64 = local_64 + iVar6;\nLAB_000b81a6:\n      *local_64 = 0;\n      __s = (byte *)param_1[2];\n    }\n    if (uVar13 != 0) {\n      sVar4 = strspn((char *)__s,(char *)(param_4 + 1));\n      __s = __s + sVar4;\n    }\n    pbVar5 = __s;\n    if ((param_3 & 0x1000000) != 0) {\n      pbVar5 = (byte *)FUN_00019041();\n    }\n    bVar10 = *pbVar5;\n    iVar3 = iVar1;\n    puVar15 = param_2;\n  }" { (for_statement "for (; iVar3 != 0; iVar3 = iVar3 + -1) {\n      *puVar15 = 0;\n      puVar15 = puVar15 + (uint)bVar18 * -2 + 1;\n    }" for ( ; (binary_expression "iVar3 != 0" identifier != number_literal) ; (assignment_expression "iVar3 = iVar3 + -1" identifier = (binary_expression "iVar3 + -1" identifier + number_literal)) ) (compound_statement "{\n      *puVar15 = 0;\n      puVar15 = puVar15 + (uint)bVar18 * -2 + 1;\n    }" { (expression_statement "*puVar15 = 0;" (assignment_expression "*puVar15 = 0" (pointer_expression "*puVar15" * identifier) = number_literal) ;) (expression_statement "puVar15 = puVar15 + (uint)bVar18 * -2 + 1;" (assignment_expression "puVar15 = puVar15 + (uint)bVar18 * -2 + 1" identifier = (binary_expression "puVar15 + (uint)bVar18 * -2 + 1" (binary_expression "puVar15 + (uint)bVar18 * -2" identifier + (binary_expression "(uint)bVar18 * -2" (cast_expression "(uint)bVar18" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) })) (expression_statement "iVar3 = __getdelim((char **)(param_1 + 2),param_1 + 4,10,(FILE *)*param_1);" (assignment_expression "iVar3 = __getdelim((char **)(param_1 + 2),param_1 + 4,10,(FILE *)*param_1)" identifier = (call_expression "__getdelim((char **)(param_1 + 2),param_1 + 4,10,(FILE *)*param_1)" identifier (argument_list "((char **)(param_1 + 2),param_1 + 4,10,(FILE *)*param_1)" ( (cast_expression "(char **)(param_1 + 2)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 2)" ( (binary_expression "param_1 + 2" identifier + number_literal) ))) , (binary_expression "param_1 + 4" identifier + number_literal) , number_literal , (cast_expression "(FILE *)*param_1" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier)) )))) ;) (if_statement "if (iVar3 < 1) {\n      if (iVar3 != 0) {\n        return 0;\n      }\n      __s = (byte *)param_1[2];\n    }\n    else {\n      local_64 = (undefined1 *)param_1[2];\n      param_1[6] = param_1[6] + 1;\n      cVar11 = local_64[iVar3 + -1];\n      while( true ) {\n        iVar6 = iVar3;\n        if (cVar11 == '\n') {\n          iVar6 = iVar3 + -1;\n          if (iVar6 == 0) goto LAB_000b81a6;\n          cVar11 = local_64[iVar3 + -2];\n        }\n        if (cVar11 != '\\') {\n          local_64 = local_64 + iVar6;\n          goto LAB_000b81a6;\n        }\n        iVar6 = iVar6 + -1;\n        _Var9 = __getdelim((char **)(param_1 + 3),param_1 + 5,10,(FILE *)*param_1);\n        if (_Var9 < 1) break;\n        iVar3 = iVar6 + _Var9;\n        if ((uint)param_1[4] < iVar3 + 1U) {\n          param_1[4] = iVar3 + 1U;\n          local_64 = (undefined1 *)FUN_0001a2be();\n          param_1[2] = local_64;\n        }\n        puVar15 = (undefined1 *)param_1[3];\n        puVar17 = local_64 + iVar6;\n        for (; _Var9 != 0; _Var9 = _Var9 + -1) {\n          *puVar17 = *puVar15;\n          puVar15 = puVar15 + (uint)bVar18 * -2 + 1;\n          puVar17 = puVar17 + (uint)bVar18 * -2 + 1;\n        }\n        param_1[6] = param_1[6] + 1;\n        cVar11 = local_64[iVar3 + -1];\n      }\n      local_64 = local_64 + iVar6;\nLAB_000b81a6:\n      *local_64 = 0;\n      __s = (byte *)param_1[2];\n    }" if (parenthesized_expression "(iVar3 < 1)" ( (binary_expression "iVar3 < 1" identifier < number_literal) )) (compound_statement "{\n      if (iVar3 != 0) {\n        return 0;\n      }\n      __s = (byte *)param_1[2];\n    }" { (if_statement "if (iVar3 != 0) {\n        return 0;\n      }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n        return 0;\n      }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "__s = (byte *)param_1[2];" (assignment_expression "__s = (byte *)param_1[2]" identifier = (cast_expression "(byte *)param_1[2]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[2]" identifier [ number_literal ]))) ;) }) (else_clause "else {\n      local_64 = (undefined1 *)param_1[2];\n      param_1[6] = param_1[6] + 1;\n      cVar11 = local_64[iVar3 + -1];\n      while( true ) {\n        iVar6 = iVar3;\n        if (cVar11 == '\n') {\n          iVar6 = iVar3 + -1;\n          if (iVar6 == 0) goto LAB_000b81a6;\n          cVar11 = local_64[iVar3 + -2];\n        }\n        if (cVar11 != '\\') {\n          local_64 = local_64 + iVar6;\n          goto LAB_000b81a6;\n        }\n        iVar6 = iVar6 + -1;\n        _Var9 = __getdelim((char **)(param_1 + 3),param_1 + 5,10,(FILE *)*param_1);\n        if (_Var9 < 1) break;\n        iVar3 = iVar6 + _Var9;\n        if ((uint)param_1[4] < iVar3 + 1U) {\n          param_1[4] = iVar3 + 1U;\n          local_64 = (undefined1 *)FUN_0001a2be();\n          param_1[2] = local_64;\n        }\n        puVar15 = (undefined1 *)param_1[3];\n        puVar17 = local_64 + iVar6;\n        for (; _Var9 != 0; _Var9 = _Var9 + -1) {\n          *puVar17 = *puVar15;\n          puVar15 = puVar15 + (uint)bVar18 * -2 + 1;\n          puVar17 = puVar17 + (uint)bVar18 * -2 + 1;\n        }\n        param_1[6] = param_1[6] + 1;\n        cVar11 = local_64[iVar3 + -1];\n      }\n      local_64 = local_64 + iVar6;\nLAB_000b81a6:\n      *local_64 = 0;\n      __s = (byte *)param_1[2];\n    }" else (compound_statement "{\n      local_64 = (undefined1 *)param_1[2];\n      param_1[6] = param_1[6] + 1;\n      cVar11 = local_64[iVar3 + -1];\n      while( true ) {\n        iVar6 = iVar3;\n        if (cVar11 == '\n') {\n          iVar6 = iVar3 + -1;\n          if (iVar6 == 0) goto LAB_000b81a6;\n          cVar11 = local_64[iVar3 + -2];\n        }\n        if (cVar11 != '\\') {\n          local_64 = local_64 + iVar6;\n          goto LAB_000b81a6;\n        }\n        iVar6 = iVar6 + -1;\n        _Var9 = __getdelim((char **)(param_1 + 3),param_1 + 5,10,(FILE *)*param_1);\n        if (_Var9 < 1) break;\n        iVar3 = iVar6 + _Var9;\n        if ((uint)param_1[4] < iVar3 + 1U) {\n          param_1[4] = iVar3 + 1U;\n          local_64 = (undefined1 *)FUN_0001a2be();\n          param_1[2] = local_64;\n        }\n        puVar15 = (undefined1 *)param_1[3];\n        puVar17 = local_64 + iVar6;\n        for (; _Var9 != 0; _Var9 = _Var9 + -1) {\n          *puVar17 = *puVar15;\n          puVar15 = puVar15 + (uint)bVar18 * -2 + 1;\n          puVar17 = puVar17 + (uint)bVar18 * -2 + 1;\n        }\n        param_1[6] = param_1[6] + 1;\n        cVar11 = local_64[iVar3 + -1];\n      }\n      local_64 = local_64 + iVar6;\nLAB_000b81a6:\n      *local_64 = 0;\n      __s = (byte *)param_1[2];\n    }" { (expression_statement "local_64 = (undefined1 *)param_1[2];" (assignment_expression "local_64 = (undefined1 *)param_1[2]" identifier = (cast_expression "(undefined1 *)param_1[2]" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[2]" identifier [ number_literal ]))) ;) (expression_statement "param_1[6] = param_1[6] + 1;" (assignment_expression "param_1[6] = param_1[6] + 1" (subscript_expression "param_1[6]" identifier [ number_literal ]) = (binary_expression "param_1[6] + 1" (subscript_expression "param_1[6]" identifier [ number_literal ]) + number_literal)) ;) (expression_statement "cVar11 = local_64[iVar3 + -1];" (assignment_expression "cVar11 = local_64[iVar3 + -1]" identifier = (subscript_expression "local_64[iVar3 + -1]" identifier [ (binary_expression "iVar3 + -1" identifier + number_literal) ])) ;) (while_statement "while( true ) {\n        iVar6 = iVar3;\n        if (cVar11 == '\n') {\n          iVar6 = iVar3 + -1;\n          if (iVar6 == 0) goto LAB_000b81a6;\n          cVar11 = local_64[iVar3 + -2];\n        }\n        if (cVar11 != '\\') {\n          local_64 = local_64 + iVar6;\n          goto LAB_000b81a6;\n        }\n        iVar6 = iVar6 + -1;\n        _Var9 = __getdelim((char **)(param_1 + 3),param_1 + 5,10,(FILE *)*param_1);\n        if (_Var9 < 1) break;\n        iVar3 = iVar6 + _Var9;\n        if ((uint)param_1[4] < iVar3 + 1U) {\n          param_1[4] = iVar3 + 1U;\n          local_64 = (undefined1 *)FUN_0001a2be();\n          param_1[2] = local_64;\n        }\n        puVar15 = (undefined1 *)param_1[3];\n        puVar17 = local_64 + iVar6;\n        for (; _Var9 != 0; _Var9 = _Var9 + -1) {\n          *puVar17 = *puVar15;\n          puVar15 = puVar15 + (uint)bVar18 * -2 + 1;\n          puVar17 = puVar17 + (uint)bVar18 * -2 + 1;\n        }\n        param_1[6] = param_1[6] + 1;\n        cVar11 = local_64[iVar3 + -1];\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        iVar6 = iVar3;\n        if (cVar11 == '\n') {\n          iVar6 = iVar3 + -1;\n          if (iVar6 == 0) goto LAB_000b81a6;\n          cVar11 = local_64[iVar3 + -2];\n        }\n        if (cVar11 != '\\') {\n          local_64 = local_64 + iVar6;\n          goto LAB_000b81a6;\n        }\n        iVar6 = iVar6 + -1;\n        _Var9 = __getdelim((char **)(param_1 + 3),param_1 + 5,10,(FILE *)*param_1);\n        if (_Var9 < 1) break;\n        iVar3 = iVar6 + _Var9;\n        if ((uint)param_1[4] < iVar3 + 1U) {\n          param_1[4] = iVar3 + 1U;\n          local_64 = (undefined1 *)FUN_0001a2be();\n          param_1[2] = local_64;\n        }\n        puVar15 = (undefined1 *)param_1[3];\n        puVar17 = local_64 + iVar6;\n        for (; _Var9 != 0; _Var9 = _Var9 + -1) {\n          *puVar17 = *puVar15;\n          puVar15 = puVar15 + (uint)bVar18 * -2 + 1;\n          puVar17 = puVar17 + (uint)bVar18 * -2 + 1;\n        }\n        param_1[6] = param_1[6] + 1;\n        cVar11 = local_64[iVar3 + -1];\n      }" { (expression_statement "iVar6 = iVar3;" (assignment_expression "iVar6 = iVar3" identifier = identifier) ;) (if_statement "if (cVar11 == '\n') {\n          iVar6 = iVar3 + -1;\n          if (iVar6 == 0) goto LAB_000b81a6;\n          cVar11 = local_64[iVar3 + -2];\n        }" if (parenthesized_expression "(cVar11 == '\n')" ( (binary_expression "cVar11 == '\n'" identifier == (char_literal "'\n'" ' escape_sequence ')) )) (compound_statement "{\n          iVar6 = iVar3 + -1;\n          if (iVar6 == 0) goto LAB_000b81a6;\n          cVar11 = local_64[iVar3 + -2];\n        }" { (expression_statement "iVar6 = iVar3 + -1;" (assignment_expression "iVar6 = iVar3 + -1" identifier = (binary_expression "iVar3 + -1" identifier + number_literal)) ;) (if_statement "if (iVar6 == 0) goto LAB_000b81a6;" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000b81a6;" goto statement_identifier ;)) (expression_statement "cVar11 = local_64[iVar3 + -2];" (assignment_expression "cVar11 = local_64[iVar3 + -2]" identifier = (subscript_expression "local_64[iVar3 + -2]" identifier [ (binary_expression "iVar3 + -2" identifier + number_literal) ])) ;) })) (if_statement "if (cVar11 != '\\') {\n          local_64 = local_64 + iVar6;\n          goto LAB_000b81a6;\n        }" if (parenthesized_expression "(cVar11 != '\\')" ( (binary_expression "cVar11 != '\\'" identifier != (char_literal "'\\'" ' escape_sequence ')) )) (compound_statement "{\n          local_64 = local_64 + iVar6;\n          goto LAB_000b81a6;\n        }" { (expression_statement "local_64 = local_64 + iVar6;" (assignment_expression "local_64 = local_64 + iVar6" identifier = (binary_expression "local_64 + iVar6" identifier + identifier)) ;) (goto_statement "goto LAB_000b81a6;" goto statement_identifier ;) })) (expression_statement "iVar6 = iVar6 + -1;" (assignment_expression "iVar6 = iVar6 + -1" identifier = (binary_expression "iVar6 + -1" identifier + number_literal)) ;) (expression_statement "_Var9 = __getdelim((char **)(param_1 + 3),param_1 + 5,10,(FILE *)*param_1);" (assignment_expression "_Var9 = __getdelim((char **)(param_1 + 3),param_1 + 5,10,(FILE *)*param_1)" identifier = (call_expression "__getdelim((char **)(param_1 + 3),param_1 + 5,10,(FILE *)*param_1)" identifier (argument_list "((char **)(param_1 + 3),param_1 + 5,10,(FILE *)*param_1)" ( (cast_expression "(char **)(param_1 + 3)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 3)" ( (binary_expression "param_1 + 3" identifier + number_literal) ))) , (binary_expression "param_1 + 5" identifier + number_literal) , number_literal , (cast_expression "(FILE *)*param_1" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier)) )))) ;) (if_statement "if (_Var9 < 1) break;" if (parenthesized_expression "(_Var9 < 1)" ( (binary_expression "_Var9 < 1" identifier < number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar3 = iVar6 + _Var9;" (assignment_expression "iVar3 = iVar6 + _Var9" identifier = (binary_expression "iVar6 + _Var9" identifier + identifier)) ;) (if_statement "if ((uint)param_1[4] < iVar3 + 1U) {\n          param_1[4] = iVar3 + 1U;\n          local_64 = (undefined1 *)FUN_0001a2be();\n          param_1[2] = local_64;\n        }" if (parenthesized_expression "((uint)param_1[4] < iVar3 + 1U)" ( (binary_expression "(uint)param_1[4] < iVar3 + 1U" (cast_expression "(uint)param_1[4]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_1[4]" identifier [ number_literal ])) < (binary_expression "iVar3 + 1U" identifier + number_literal)) )) (compound_statement "{\n          param_1[4] = iVar3 + 1U;\n          local_64 = (undefined1 *)FUN_0001a2be();\n          param_1[2] = local_64;\n        }" { (expression_statement "param_1[4] = iVar3 + 1U;" (assignment_expression "param_1[4] = iVar3 + 1U" (subscript_expression "param_1[4]" identifier [ number_literal ]) = (binary_expression "iVar3 + 1U" identifier + number_literal)) ;) (expression_statement "local_64 = (undefined1 *)FUN_0001a2be();" (assignment_expression "local_64 = (undefined1 *)FUN_0001a2be()" identifier = (cast_expression "(undefined1 *)FUN_0001a2be()" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0001a2be()" identifier (argument_list "()" ( ))))) ;) (expression_statement "param_1[2] = local_64;" (assignment_expression "param_1[2] = local_64" (subscript_expression "param_1[2]" identifier [ number_literal ]) = identifier) ;) })) (expression_statement "puVar15 = (undefined1 *)param_1[3];" (assignment_expression "puVar15 = (undefined1 *)param_1[3]" identifier = (cast_expression "(undefined1 *)param_1[3]" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[3]" identifier [ number_literal ]))) ;) (expression_statement "puVar17 = local_64 + iVar6;" (assignment_expression "puVar17 = local_64 + iVar6" identifier = (binary_expression "local_64 + iVar6" identifier + identifier)) ;) (for_statement "for (; _Var9 != 0; _Var9 = _Var9 + -1) {\n          *puVar17 = *puVar15;\n          puVar15 = puVar15 + (uint)bVar18 * -2 + 1;\n          puVar17 = puVar17 + (uint)bVar18 * -2 + 1;\n        }" for ( ; (binary_expression "_Var9 != 0" identifier != number_literal) ; (assignment_expression "_Var9 = _Var9 + -1" identifier = (binary_expression "_Var9 + -1" identifier + number_literal)) ) (compound_statement "{\n          *puVar17 = *puVar15;\n          puVar15 = puVar15 + (uint)bVar18 * -2 + 1;\n          puVar17 = puVar17 + (uint)bVar18 * -2 + 1;\n        }" { (expression_statement "*puVar17 = *puVar15;" (assignment_expression "*puVar17 = *puVar15" (pointer_expression "*puVar17" * identifier) = (pointer_expression "*puVar15" * identifier)) ;) (expression_statement "puVar15 = puVar15 + (uint)bVar18 * -2 + 1;" (assignment_expression "puVar15 = puVar15 + (uint)bVar18 * -2 + 1" identifier = (binary_expression "puVar15 + (uint)bVar18 * -2 + 1" (binary_expression "puVar15 + (uint)bVar18 * -2" identifier + (binary_expression "(uint)bVar18 * -2" (cast_expression "(uint)bVar18" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "puVar17 = puVar17 + (uint)bVar18 * -2 + 1;" (assignment_expression "puVar17 = puVar17 + (uint)bVar18 * -2 + 1" identifier = (binary_expression "puVar17 + (uint)bVar18 * -2 + 1" (binary_expression "puVar17 + (uint)bVar18 * -2" identifier + (binary_expression "(uint)bVar18 * -2" (cast_expression "(uint)bVar18" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) })) (expression_statement "param_1[6] = param_1[6] + 1;" (assignment_expression "param_1[6] = param_1[6] + 1" (subscript_expression "param_1[6]" identifier [ number_literal ]) = (binary_expression "param_1[6] + 1" (subscript_expression "param_1[6]" identifier [ number_literal ]) + number_literal)) ;) (expression_statement "cVar11 = local_64[iVar3 + -1];" (assignment_expression "cVar11 = local_64[iVar3 + -1]" identifier = (subscript_expression "local_64[iVar3 + -1]" identifier [ (binary_expression "iVar3 + -1" identifier + number_literal) ])) ;) })) (expression_statement "local_64 = local_64 + iVar6;" (assignment_expression "local_64 = local_64 + iVar6" identifier = (binary_expression "local_64 + iVar6" identifier + identifier)) ;) (labeled_statement "LAB_000b81a6:\n      *local_64 = 0;" statement_identifier : (expression_statement "*local_64 = 0;" (assignment_expression "*local_64 = 0" (pointer_expression "*local_64" * identifier) = number_literal) ;)) (expression_statement "__s = (byte *)param_1[2];" (assignment_expression "__s = (byte *)param_1[2]" identifier = (cast_expression "(byte *)param_1[2]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[2]" identifier [ number_literal ]))) ;) }))) (if_statement "if (uVar13 != 0) {\n      sVar4 = strspn((char *)__s,(char *)(param_4 + 1));\n      __s = __s + sVar4;\n    }" if (parenthesized_expression "(uVar13 != 0)" ( (binary_expression "uVar13 != 0" identifier != number_literal) )) (compound_statement "{\n      sVar4 = strspn((char *)__s,(char *)(param_4 + 1));\n      __s = __s + sVar4;\n    }" { (expression_statement "sVar4 = strspn((char *)__s,(char *)(param_4 + 1));" (assignment_expression "sVar4 = strspn((char *)__s,(char *)(param_4 + 1))" identifier = (call_expression "strspn((char *)__s,(char *)(param_4 + 1))" identifier (argument_list "((char *)__s,(char *)(param_4 + 1))" ( (cast_expression "(char *)__s" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(char *)(param_4 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 1)" ( (binary_expression "param_4 + 1" identifier + number_literal) ))) )))) ;) (expression_statement "__s = __s + sVar4;" (assignment_expression "__s = __s + sVar4" identifier = (binary_expression "__s + sVar4" identifier + identifier)) ;) })) (expression_statement "pbVar5 = __s;" (assignment_expression "pbVar5 = __s" identifier = identifier) ;) (if_statement "if ((param_3 & 0x1000000) != 0) {\n      pbVar5 = (byte *)FUN_00019041();\n    }" if (parenthesized_expression "((param_3 & 0x1000000) != 0)" ( (binary_expression "(param_3 & 0x1000000) != 0" (parenthesized_expression "(param_3 & 0x1000000)" ( (binary_expression "param_3 & 0x1000000" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      pbVar5 = (byte *)FUN_00019041();\n    }" { (expression_statement "pbVar5 = (byte *)FUN_00019041();" (assignment_expression "pbVar5 = (byte *)FUN_00019041()" identifier = (cast_expression "(byte *)FUN_00019041()" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00019041()" identifier (argument_list "()" ( ))))) ;) })) (expression_statement "bVar10 = *pbVar5;" (assignment_expression "bVar10 = *pbVar5" identifier = (pointer_expression "*pbVar5" * identifier)) ;) (expression_statement "iVar3 = iVar1;" (assignment_expression "iVar3 = iVar1" identifier = identifier) ;) (expression_statement "puVar15 = param_2;" (assignment_expression "puVar15 = param_2" identifier = identifier) ;) }) while (parenthesized_expression "(((bVar10 == 0) || (bVar10 == *param_4)) || (bVar10 == local_4d))" ( (binary_expression "((bVar10 == 0) || (bVar10 == *param_4)) || (bVar10 == local_4d)" (parenthesized_expression "((bVar10 == 0) || (bVar10 == *param_4))" ( (binary_expression "(bVar10 == 0) || (bVar10 == *param_4)" (parenthesized_expression "(bVar10 == 0)" ( (binary_expression "bVar10 == 0" identifier == number_literal) )) || (parenthesized_expression "(bVar10 == *param_4)" ( (binary_expression "bVar10 == *param_4" identifier == (pointer_expression "*param_4" * identifier)) ))) )) || (parenthesized_expression "(bVar10 == local_4d)" ( (binary_expression "bVar10 == local_4d" identifier == identifier) ))) )) ;)) (expression_statement "pbVar5 = param_4 + 1;" (assignment_expression "pbVar5 = param_4 + 1" identifier = (binary_expression "param_4 + 1" identifier + number_literal)) ;) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) (do_statement "do {\n    iVar6 = iVar3;\n    *(byte **)(param_2 + iVar6 * 4) = __s;\n    if ((iVar6 == uVar12 - 1) && ((param_3 & 0x40000) != 0)) {\n      if (uVar14 != 0) {\n        bVar10 = *param_4;\n        pbVar7 = (byte *)strchrnul((char *)__s,(uint)bVar10);\n        if (uVar13 != 0) goto LAB_000b80a9;\n        bVar2 = *pbVar7;\n        goto LAB_000b801c;\n      }\n      pbVar7 = (byte *)strchrnul((char *)__s,0);\n      if (uVar13 != 0) {\nLAB_000b80a9:\n        while (pcVar8 = strchr((char *)pbVar5,(uint)pbVar7[-1]), pcVar8 != (char *)0x0) {\n          pbVar7 = pbVar7 + -1;\n        }\n        goto LAB_000b8008;\n      }\n      bVar2 = *pbVar7;\nLAB_000b80e2:\n      __s = pbVar7;\n      if (bVar2 == 0) goto LAB_000b80e8;\n      __s = pbVar7 + 1;\n      *pbVar7 = 0;\n      if ((param_3 & 0x10000) != 0) goto LAB_000b8134;\n    }\n    else {\n      pbVar7 = pbVar5;\n      if ((*param_4 != 0) && (pbVar7 = param_4, uVar14 == 0)) {\n        pbVar7 = pbVar5;\n      }\n      sVar4 = strcspn((char *)__s,(char *)pbVar7);\n      pbVar7 = __s + sVar4;\nLAB_000b8008:\n      bVar2 = *pbVar7;\n      if (uVar14 == 0) goto LAB_000b80e2;\n      bVar10 = *param_4;\nLAB_000b801c:\n      if (bVar10 != bVar2) goto LAB_000b80e2;\n      *pbVar7 = 0;\n      __s = pbVar7;\nLAB_000b80e8:\n      if ((param_3 & 0x10000) == 0) break;\nLAB_000b8134:\n      sVar4 = strspn((char *)__s,(char *)pbVar5);\n      __s = __s + sVar4;\n    }\n    if (((*__s == 0) || (*__s == *param_4)) || (iVar3 = iVar6 + 1, (int)uVar12 <= iVar6 + 1)) break;\n  } while( true );" do (compound_statement "{\n    iVar6 = iVar3;\n    *(byte **)(param_2 + iVar6 * 4) = __s;\n    if ((iVar6 == uVar12 - 1) && ((param_3 & 0x40000) != 0)) {\n      if (uVar14 != 0) {\n        bVar10 = *param_4;\n        pbVar7 = (byte *)strchrnul((char *)__s,(uint)bVar10);\n        if (uVar13 != 0) goto LAB_000b80a9;\n        bVar2 = *pbVar7;\n        goto LAB_000b801c;\n      }\n      pbVar7 = (byte *)strchrnul((char *)__s,0);\n      if (uVar13 != 0) {\nLAB_000b80a9:\n        while (pcVar8 = strchr((char *)pbVar5,(uint)pbVar7[-1]), pcVar8 != (char *)0x0) {\n          pbVar7 = pbVar7 + -1;\n        }\n        goto LAB_000b8008;\n      }\n      bVar2 = *pbVar7;\nLAB_000b80e2:\n      __s = pbVar7;\n      if (bVar2 == 0) goto LAB_000b80e8;\n      __s = pbVar7 + 1;\n      *pbVar7 = 0;\n      if ((param_3 & 0x10000) != 0) goto LAB_000b8134;\n    }\n    else {\n      pbVar7 = pbVar5;\n      if ((*param_4 != 0) && (pbVar7 = param_4, uVar14 == 0)) {\n        pbVar7 = pbVar5;\n      }\n      sVar4 = strcspn((char *)__s,(char *)pbVar7);\n      pbVar7 = __s + sVar4;\nLAB_000b8008:\n      bVar2 = *pbVar7;\n      if (uVar14 == 0) goto LAB_000b80e2;\n      bVar10 = *param_4;\nLAB_000b801c:\n      if (bVar10 != bVar2) goto LAB_000b80e2;\n      *pbVar7 = 0;\n      __s = pbVar7;\nLAB_000b80e8:\n      if ((param_3 & 0x10000) == 0) break;\nLAB_000b8134:\n      sVar4 = strspn((char *)__s,(char *)pbVar5);\n      __s = __s + sVar4;\n    }\n    if (((*__s == 0) || (*__s == *param_4)) || (iVar3 = iVar6 + 1, (int)uVar12 <= iVar6 + 1)) break;\n  }" { (expression_statement "iVar6 = iVar3;" (assignment_expression "iVar6 = iVar3" identifier = identifier) ;) (expression_statement "*(byte **)(param_2 + iVar6 * 4) = __s;" (assignment_expression "*(byte **)(param_2 + iVar6 * 4) = __s" (pointer_expression "*(byte **)(param_2 + iVar6 * 4)" * (cast_expression "(byte **)(param_2 + iVar6 * 4)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + iVar6 * 4)" ( (binary_expression "param_2 + iVar6 * 4" identifier + (binary_expression "iVar6 * 4" identifier * number_literal)) )))) = identifier) ;) (if_statement "if ((iVar6 == uVar12 - 1) && ((param_3 & 0x40000) != 0)) {\n      if (uVar14 != 0) {\n        bVar10 = *param_4;\n        pbVar7 = (byte *)strchrnul((char *)__s,(uint)bVar10);\n        if (uVar13 != 0) goto LAB_000b80a9;\n        bVar2 = *pbVar7;\n        goto LAB_000b801c;\n      }\n      pbVar7 = (byte *)strchrnul((char *)__s,0);\n      if (uVar13 != 0) {\nLAB_000b80a9:\n        while (pcVar8 = strchr((char *)pbVar5,(uint)pbVar7[-1]), pcVar8 != (char *)0x0) {\n          pbVar7 = pbVar7 + -1;\n        }\n        goto LAB_000b8008;\n      }\n      bVar2 = *pbVar7;\nLAB_000b80e2:\n      __s = pbVar7;\n      if (bVar2 == 0) goto LAB_000b80e8;\n      __s = pbVar7 + 1;\n      *pbVar7 = 0;\n      if ((param_3 & 0x10000) != 0) goto LAB_000b8134;\n    }\n    else {\n      pbVar7 = pbVar5;\n      if ((*param_4 != 0) && (pbVar7 = param_4, uVar14 == 0)) {\n        pbVar7 = pbVar5;\n      }\n      sVar4 = strcspn((char *)__s,(char *)pbVar7);\n      pbVar7 = __s + sVar4;\nLAB_000b8008:\n      bVar2 = *pbVar7;\n      if (uVar14 == 0) goto LAB_000b80e2;\n      bVar10 = *param_4;\nLAB_000b801c:\n      if (bVar10 != bVar2) goto LAB_000b80e2;\n      *pbVar7 = 0;\n      __s = pbVar7;\nLAB_000b80e8:\n      if ((param_3 & 0x10000) == 0) break;\nLAB_000b8134:\n      sVar4 = strspn((char *)__s,(char *)pbVar5);\n      __s = __s + sVar4;\n    }" if (parenthesized_expression "((iVar6 == uVar12 - 1) && ((param_3 & 0x40000) != 0))" ( (binary_expression "(iVar6 == uVar12 - 1) && ((param_3 & 0x40000) != 0)" (parenthesized_expression "(iVar6 == uVar12 - 1)" ( (binary_expression "iVar6 == uVar12 - 1" identifier == (binary_expression "uVar12 - 1" identifier - number_literal)) )) && (parenthesized_expression "((param_3 & 0x40000) != 0)" ( (binary_expression "(param_3 & 0x40000) != 0" (parenthesized_expression "(param_3 & 0x40000)" ( (binary_expression "param_3 & 0x40000" identifier & number_literal) )) != number_literal) ))) )) (compound_statement "{\n      if (uVar14 != 0) {\n        bVar10 = *param_4;\n        pbVar7 = (byte *)strchrnul((char *)__s,(uint)bVar10);\n        if (uVar13 != 0) goto LAB_000b80a9;\n        bVar2 = *pbVar7;\n        goto LAB_000b801c;\n      }\n      pbVar7 = (byte *)strchrnul((char *)__s,0);\n      if (uVar13 != 0) {\nLAB_000b80a9:\n        while (pcVar8 = strchr((char *)pbVar5,(uint)pbVar7[-1]), pcVar8 != (char *)0x0) {\n          pbVar7 = pbVar7 + -1;\n        }\n        goto LAB_000b8008;\n      }\n      bVar2 = *pbVar7;\nLAB_000b80e2:\n      __s = pbVar7;\n      if (bVar2 == 0) goto LAB_000b80e8;\n      __s = pbVar7 + 1;\n      *pbVar7 = 0;\n      if ((param_3 & 0x10000) != 0) goto LAB_000b8134;\n    }" { (if_statement "if (uVar14 != 0) {\n        bVar10 = *param_4;\n        pbVar7 = (byte *)strchrnul((char *)__s,(uint)bVar10);\n        if (uVar13 != 0) goto LAB_000b80a9;\n        bVar2 = *pbVar7;\n        goto LAB_000b801c;\n      }" if (parenthesized_expression "(uVar14 != 0)" ( (binary_expression "uVar14 != 0" identifier != number_literal) )) (compound_statement "{\n        bVar10 = *param_4;\n        pbVar7 = (byte *)strchrnul((char *)__s,(uint)bVar10);\n        if (uVar13 != 0) goto LAB_000b80a9;\n        bVar2 = *pbVar7;\n        goto LAB_000b801c;\n      }" { (expression_statement "bVar10 = *param_4;" (assignment_expression "bVar10 = *param_4" identifier = (pointer_expression "*param_4" * identifier)) ;) (expression_statement "pbVar7 = (byte *)strchrnul((char *)__s,(uint)bVar10);" (assignment_expression "pbVar7 = (byte *)strchrnul((char *)__s,(uint)bVar10)" identifier = (cast_expression "(byte *)strchrnul((char *)__s,(uint)bVar10)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "strchrnul((char *)__s,(uint)bVar10)" identifier (argument_list "((char *)__s,(uint)bVar10)" ( (cast_expression "(char *)__s" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(uint)bVar10" ( (type_descriptor "uint" type_identifier) ) identifier) ))))) ;) (if_statement "if (uVar13 != 0) goto LAB_000b80a9;" if (parenthesized_expression "(uVar13 != 0)" ( (binary_expression "uVar13 != 0" identifier != number_literal) )) (goto_statement "goto LAB_000b80a9;" goto statement_identifier ;)) (expression_statement "bVar2 = *pbVar7;" (assignment_expression "bVar2 = *pbVar7" identifier = (pointer_expression "*pbVar7" * identifier)) ;) (goto_statement "goto LAB_000b801c;" goto statement_identifier ;) })) (expression_statement "pbVar7 = (byte *)strchrnul((char *)__s,0);" (assignment_expression "pbVar7 = (byte *)strchrnul((char *)__s,0)" identifier = (cast_expression "(byte *)strchrnul((char *)__s,0)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "strchrnul((char *)__s,0)" identifier (argument_list "((char *)__s,0)" ( (cast_expression "(char *)__s" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , number_literal ))))) ;) (if_statement "if (uVar13 != 0) {\nLAB_000b80a9:\n        while (pcVar8 = strchr((char *)pbVar5,(uint)pbVar7[-1]), pcVar8 != (char *)0x0) {\n          pbVar7 = pbVar7 + -1;\n        }\n        goto LAB_000b8008;\n      }" if (parenthesized_expression "(uVar13 != 0)" ( (binary_expression "uVar13 != 0" identifier != number_literal) )) (compound_statement "{\nLAB_000b80a9:\n        while (pcVar8 = strchr((char *)pbVar5,(uint)pbVar7[-1]), pcVar8 != (char *)0x0) {\n          pbVar7 = pbVar7 + -1;\n        }\n        goto LAB_000b8008;\n      }" { (labeled_statement "LAB_000b80a9:\n        while (pcVar8 = strchr((char *)pbVar5,(uint)pbVar7[-1]), pcVar8 != (char *)0x0) {\n          pbVar7 = pbVar7 + -1;\n        }" statement_identifier : (while_statement "while (pcVar8 = strchr((char *)pbVar5,(uint)pbVar7[-1]), pcVar8 != (char *)0x0) {\n          pbVar7 = pbVar7 + -1;\n        }" while (parenthesized_expression "(pcVar8 = strchr((char *)pbVar5,(uint)pbVar7[-1]), pcVar8 != (char *)0x0)" ( (comma_expression "pcVar8 = strchr((char *)pbVar5,(uint)pbVar7[-1]), pcVar8 != (char *)0x0" (assignment_expression "pcVar8 = strchr((char *)pbVar5,(uint)pbVar7[-1])" identifier = (call_expression "strchr((char *)pbVar5,(uint)pbVar7[-1])" identifier (argument_list "((char *)pbVar5,(uint)pbVar7[-1])" ( (cast_expression "(char *)pbVar5" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(uint)pbVar7[-1]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pbVar7[-1]" identifier [ number_literal ])) )))) , (binary_expression "pcVar8 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) )) (compound_statement "{\n          pbVar7 = pbVar7 + -1;\n        }" { (expression_statement "pbVar7 = pbVar7 + -1;" (assignment_expression "pbVar7 = pbVar7 + -1" identifier = (binary_expression "pbVar7 + -1" identifier + number_literal)) ;) }))) (goto_statement "goto LAB_000b8008;" goto statement_identifier ;) })) (expression_statement "bVar2 = *pbVar7;" (assignment_expression "bVar2 = *pbVar7" identifier = (pointer_expression "*pbVar7" * identifier)) ;) (labeled_statement "LAB_000b80e2:\n      __s = pbVar7;" statement_identifier : (expression_statement "__s = pbVar7;" (assignment_expression "__s = pbVar7" identifier = identifier) ;)) (if_statement "if (bVar2 == 0) goto LAB_000b80e8;" if (parenthesized_expression "(bVar2 == 0)" ( (binary_expression "bVar2 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000b80e8;" goto statement_identifier ;)) (expression_statement "__s = pbVar7 + 1;" (assignment_expression "__s = pbVar7 + 1" identifier = (binary_expression "pbVar7 + 1" identifier + number_literal)) ;) (expression_statement "*pbVar7 = 0;" (assignment_expression "*pbVar7 = 0" (pointer_expression "*pbVar7" * identifier) = number_literal) ;) (if_statement "if ((param_3 & 0x10000) != 0) goto LAB_000b8134;" if (parenthesized_expression "((param_3 & 0x10000) != 0)" ( (binary_expression "(param_3 & 0x10000) != 0" (parenthesized_expression "(param_3 & 0x10000)" ( (binary_expression "param_3 & 0x10000" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_000b8134;" goto statement_identifier ;)) }) (else_clause "else {\n      pbVar7 = pbVar5;\n      if ((*param_4 != 0) && (pbVar7 = param_4, uVar14 == 0)) {\n        pbVar7 = pbVar5;\n      }\n      sVar4 = strcspn((char *)__s,(char *)pbVar7);\n      pbVar7 = __s + sVar4;\nLAB_000b8008:\n      bVar2 = *pbVar7;\n      if (uVar14 == 0) goto LAB_000b80e2;\n      bVar10 = *param_4;\nLAB_000b801c:\n      if (bVar10 != bVar2) goto LAB_000b80e2;\n      *pbVar7 = 0;\n      __s = pbVar7;\nLAB_000b80e8:\n      if ((param_3 & 0x10000) == 0) break;\nLAB_000b8134:\n      sVar4 = strspn((char *)__s,(char *)pbVar5);\n      __s = __s + sVar4;\n    }" else (compound_statement "{\n      pbVar7 = pbVar5;\n      if ((*param_4 != 0) && (pbVar7 = param_4, uVar14 == 0)) {\n        pbVar7 = pbVar5;\n      }\n      sVar4 = strcspn((char *)__s,(char *)pbVar7);\n      pbVar7 = __s + sVar4;\nLAB_000b8008:\n      bVar2 = *pbVar7;\n      if (uVar14 == 0) goto LAB_000b80e2;\n      bVar10 = *param_4;\nLAB_000b801c:\n      if (bVar10 != bVar2) goto LAB_000b80e2;\n      *pbVar7 = 0;\n      __s = pbVar7;\nLAB_000b80e8:\n      if ((param_3 & 0x10000) == 0) break;\nLAB_000b8134:\n      sVar4 = strspn((char *)__s,(char *)pbVar5);\n      __s = __s + sVar4;\n    }" { (expression_statement "pbVar7 = pbVar5;" (assignment_expression "pbVar7 = pbVar5" identifier = identifier) ;) (if_statement "if ((*param_4 != 0) && (pbVar7 = param_4, uVar14 == 0)) {\n        pbVar7 = pbVar5;\n      }" if (parenthesized_expression "((*param_4 != 0) && (pbVar7 = param_4, uVar14 == 0))" ( (binary_expression "(*param_4 != 0) && (pbVar7 = param_4, uVar14 == 0)" (parenthesized_expression "(*param_4 != 0)" ( (binary_expression "*param_4 != 0" (pointer_expression "*param_4" * identifier) != number_literal) )) && (parenthesized_expression "(pbVar7 = param_4, uVar14 == 0)" ( (comma_expression "pbVar7 = param_4, uVar14 == 0" (assignment_expression "pbVar7 = param_4" identifier = identifier) , (binary_expression "uVar14 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n        pbVar7 = pbVar5;\n      }" { (expression_statement "pbVar7 = pbVar5;" (assignment_expression "pbVar7 = pbVar5" identifier = identifier) ;) })) (expression_statement "sVar4 = strcspn((char *)__s,(char *)pbVar7);" (assignment_expression "sVar4 = strcspn((char *)__s,(char *)pbVar7)" identifier = (call_expression "strcspn((char *)__s,(char *)pbVar7)" identifier (argument_list "((char *)__s,(char *)pbVar7)" ( (cast_expression "(char *)__s" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(char *)pbVar7" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (expression_statement "pbVar7 = __s + sVar4;" (assignment_expression "pbVar7 = __s + sVar4" identifier = (binary_expression "__s + sVar4" identifier + identifier)) ;) (labeled_statement "LAB_000b8008:\n      bVar2 = *pbVar7;" statement_identifier : (expression_statement "bVar2 = *pbVar7;" (assignment_expression "bVar2 = *pbVar7" identifier = (pointer_expression "*pbVar7" * identifier)) ;)) (if_statement "if (uVar14 == 0) goto LAB_000b80e2;" if (parenthesized_expression "(uVar14 == 0)" ( (binary_expression "uVar14 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000b80e2;" goto statement_identifier ;)) (expression_statement "bVar10 = *param_4;" (assignment_expression "bVar10 = *param_4" identifier = (pointer_expression "*param_4" * identifier)) ;) (labeled_statement "LAB_000b801c:\n      if (bVar10 != bVar2) goto LAB_000b80e2;" statement_identifier : (if_statement "if (bVar10 != bVar2) goto LAB_000b80e2;" if (parenthesized_expression "(bVar10 != bVar2)" ( (binary_expression "bVar10 != bVar2" identifier != identifier) )) (goto_statement "goto LAB_000b80e2;" goto statement_identifier ;))) (expression_statement "*pbVar7 = 0;" (assignment_expression "*pbVar7 = 0" (pointer_expression "*pbVar7" * identifier) = number_literal) ;) (expression_statement "__s = pbVar7;" (assignment_expression "__s = pbVar7" identifier = identifier) ;) (labeled_statement "LAB_000b80e8:\n      if ((param_3 & 0x10000) == 0) break;" statement_identifier : (if_statement "if ((param_3 & 0x10000) == 0) break;" if (parenthesized_expression "((param_3 & 0x10000) == 0)" ( (binary_expression "(param_3 & 0x10000) == 0" (parenthesized_expression "(param_3 & 0x10000)" ( (binary_expression "param_3 & 0x10000" identifier & number_literal) )) == number_literal) )) (break_statement "break;" break ;))) (labeled_statement "LAB_000b8134:\n      sVar4 = strspn((char *)__s,(char *)pbVar5);" statement_identifier : (expression_statement "sVar4 = strspn((char *)__s,(char *)pbVar5);" (assignment_expression "sVar4 = strspn((char *)__s,(char *)pbVar5)" identifier = (call_expression "strspn((char *)__s,(char *)pbVar5)" identifier (argument_list "((char *)__s,(char *)pbVar5)" ( (cast_expression "(char *)__s" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(char *)pbVar5" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;)) (expression_statement "__s = __s + sVar4;" (assignment_expression "__s = __s + sVar4" identifier = (binary_expression "__s + sVar4" identifier + identifier)) ;) }))) (if_statement "if (((*__s == 0) || (*__s == *param_4)) || (iVar3 = iVar6 + 1, (int)uVar12 <= iVar6 + 1)) break;" if (parenthesized_expression "(((*__s == 0) || (*__s == *param_4)) || (iVar3 = iVar6 + 1, (int)uVar12 <= iVar6 + 1))" ( (binary_expression "((*__s == 0) || (*__s == *param_4)) || (iVar3 = iVar6 + 1, (int)uVar12 <= iVar6 + 1)" (parenthesized_expression "((*__s == 0) || (*__s == *param_4))" ( (binary_expression "(*__s == 0) || (*__s == *param_4)" (parenthesized_expression "(*__s == 0)" ( (binary_expression "*__s == 0" (pointer_expression "*__s" * identifier) == number_literal) )) || (parenthesized_expression "(*__s == *param_4)" ( (binary_expression "*__s == *param_4" (pointer_expression "*__s" * identifier) == (pointer_expression "*param_4" * identifier)) ))) )) || (parenthesized_expression "(iVar3 = iVar6 + 1, (int)uVar12 <= iVar6 + 1)" ( (comma_expression "iVar3 = iVar6 + 1, (int)uVar12 <= iVar6 + 1" (assignment_expression "iVar3 = iVar6 + 1" identifier = (binary_expression "iVar6 + 1" identifier + number_literal)) , (binary_expression "(int)uVar12 <= iVar6 + 1" (cast_expression "(int)uVar12" ( (type_descriptor "int" primitive_type) ) identifier) <= (binary_expression "iVar6 + 1" identifier + number_literal))) ))) )) (break_statement "break;" break ;)) }) while (parenthesized_expression "( true )" ( true )) ;) (expression_statement "iVar6 = iVar6 + 1;" (assignment_expression "iVar6 = iVar6 + 1" identifier = (binary_expression "iVar6 + 1" identifier + number_literal)) ;) (if_statement "if ((int)uVar16 <= iVar6) {\n    return iVar6;\n  }" if (parenthesized_expression "((int)uVar16 <= iVar6)" ( (binary_expression "(int)uVar16 <= iVar6" (cast_expression "(int)uVar16" ( (type_descriptor "int" primitive_type) ) identifier) <= identifier) )) (compound_statement "{\n    return iVar6;\n  }" { (return_statement "return iVar6;" return identifier ;) })) (expression_statement "FUN_0001930a("bad line %u: %d tokens found, %d needed",param_1[6],iVar6,uVar16);" (call_expression "FUN_0001930a("bad line %u: %d tokens found, %d needed",param_1[6],iVar6,uVar16)" identifier (argument_list "("bad line %u: %d tokens found, %d needed",param_1[6],iVar6,uVar16)" ( (string_literal ""bad line %u: %d tokens found, %d needed"" " string_content ") , (subscript_expression "param_1[6]" identifier [ number_literal ]) , identifier , identifier ))) ;) (expression_statement "iVar3 = iVar1;" (assignment_expression "iVar3 = iVar1" identifier = identifier) ;) (if_statement "if ((param_3 & 0x100000) != 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_00019401();\n  }" if (parenthesized_expression "((param_3 & 0x100000) != 0)" ( (binary_expression "(param_3 & 0x100000) != 0" (parenthesized_expression "(param_3 & 0x100000)" ( (binary_expression "param_3 & 0x100000" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    FUN_00019401();\n  }" { comment (expression_statement "FUN_00019401();" (call_expression "FUN_00019401()" identifier (argument_list "()" ( ))) ;) })) (goto_statement "goto code_r0x000b7f52;" goto statement_identifier ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nint config_read(parser_t *parser,char **tokens,uint flags,char *delims)\n\n{\n}\n\n" comment (function_definition "int config_read(parser_t *parser,char **tokens,uint flags,char *delims)\n\n{\n}" primitive_type (function_declarator "config_read(parser_t *parser,char **tokens,uint flags,char *delims)" identifier (parameter_list "(parser_t *parser,char **tokens,uint flags,char *delims)" ( (parameter_declaration "parser_t *parser" type_identifier (pointer_declarator "*parser" * identifier)) , (parameter_declaration "char **tokens" primitive_type (pointer_declarator "**tokens" * (pointer_declarator "*tokens" * identifier))) , (parameter_declaration "uint flags" type_identifier identifier) , (parameter_declaration "char *delims" primitive_type (pointer_declarator "*delims" * identifier)) ))) (compound_statement "{\n}" { })))
(translation_unit "int __regparm3 FUN_000b7e95(undefined4 *param_1,undefined1 *param_2,uint param_3,byte *param_4)\n\n{\n  int iVar1;\n  byte bVar2;\n  int iVar3;\n  size_t sVar4;\n  byte *pbVar5;\n  int iVar6;\n  byte *pbVar7;\n  char *pcVar8;\n  __ssize_t _Var9;\n  byte bVar10;\n  char cVar11;\n  uint uVar12;\n  uint uVar13;\n  uint uVar14;\n  byte *__s;\n  undefined1 *puVar15;\n  uint uVar16;\n  undefined1 *puVar17;\n  byte bVar18;\n  undefined1 *local_64;\n  byte local_4d;\n  \n  bVar18 = 0;\n  if (param_1 == (undefined4 *)0x0) {\n    return 0;\n  }\n  local_4d = 0;\n  if ((param_3 & 0x800000) != 0) {\n    local_4d = *param_4;\n    param_4 = param_4 + 1;\n  }\n  uVar12 = param_3 & 0xff;\n  uVar16 = param_3 >> 8 & 0xff;\n  iVar1 = uVar12 * 4;\n  uVar13 = param_3 & 0x20000;\n  uVar14 = param_3 & 0x400000;\n  iVar3 = iVar1;\n  puVar15 = param_2;\ncode_r0x000b7f52:\n  do {\n    for (; iVar3 != 0; iVar3 = iVar3 + -1) {\n      *puVar15 = 0;\n      puVar15 = puVar15 + (uint)bVar18 * -2 + 1;\n    }\n    iVar3 = __getdelim((char **)(param_1 + 2),param_1 + 4,10,(FILE *)*param_1);\n    if (iVar3 < 1) {\n      if (iVar3 != 0) {\n        return 0;\n      }\n      __s = (byte *)param_1[2];\n    }\n    else {\n      local_64 = (undefined1 *)param_1[2];\n      param_1[6] = param_1[6] + 1;\n      cVar11 = local_64[iVar3 + -1];\n      while( true ) {\n        iVar6 = iVar3;\n        if (cVar11 == '\n') {\n          iVar6 = iVar3 + -1;\n          if (iVar6 == 0) goto LAB_000b81a6;\n          cVar11 = local_64[iVar3 + -2];\n        }\n        if (cVar11 != '\\') {\n          local_64 = local_64 + iVar6;\n          goto LAB_000b81a6;\n        }\n        iVar6 = iVar6 + -1;\n        _Var9 = __getdelim((char **)(param_1 + 3),param_1 + 5,10,(FILE *)*param_1);\n        if (_Var9 < 1) break;\n        iVar3 = iVar6 + _Var9;\n        if ((uint)param_1[4] < iVar3 + 1U) {\n          param_1[4] = iVar3 + 1U;\n          local_64 = (undefined1 *)FUN_0001a2be();\n          param_1[2] = local_64;\n        }\n        puVar15 = (undefined1 *)param_1[3];\n        puVar17 = local_64 + iVar6;\n        for (; _Var9 != 0; _Var9 = _Var9 + -1) {\n          *puVar17 = *puVar15;\n          puVar15 = puVar15 + (uint)bVar18 * -2 + 1;\n          puVar17 = puVar17 + (uint)bVar18 * -2 + 1;\n        }\n        param_1[6] = param_1[6] + 1;\n        cVar11 = local_64[iVar3 + -1];\n      }\n      local_64 = local_64 + iVar6;\nLAB_000b81a6:\n      *local_64 = 0;\n      __s = (byte *)param_1[2];\n    }\n    if (uVar13 != 0) {\n      sVar4 = strspn((char *)__s,(char *)(param_4 + 1));\n      __s = __s + sVar4;\n    }\n    pbVar5 = __s;\n    if ((param_3 & 0x1000000) != 0) {\n      pbVar5 = (byte *)FUN_00019041();\n    }\n    bVar10 = *pbVar5;\n    iVar3 = iVar1;\n    puVar15 = param_2;\n  } while (((bVar10 == 0) || (bVar10 == *param_4)) || (bVar10 == local_4d));\n  pbVar5 = param_4 + 1;\n  iVar3 = 0;\n  do {\n    iVar6 = iVar3;\n    *(byte **)(param_2 + iVar6 * 4) = __s;\n    if ((iVar6 == uVar12 - 1) && ((param_3 & 0x40000) != 0)) {\n      if (uVar14 != 0) {\n        bVar10 = *param_4;\n        pbVar7 = (byte *)strchrnul((char *)__s,(uint)bVar10);\n        if (uVar13 != 0) goto LAB_000b80a9;\n        bVar2 = *pbVar7;\n        goto LAB_000b801c;\n      }\n      pbVar7 = (byte *)strchrnul((char *)__s,0);\n      if (uVar13 != 0) {\nLAB_000b80a9:\n        while (pcVar8 = strchr((char *)pbVar5,(uint)pbVar7[-1]), pcVar8 != (char *)0x0) {\n          pbVar7 = pbVar7 + -1;\n        }\n        goto LAB_000b8008;\n      }\n      bVar2 = *pbVar7;\nLAB_000b80e2:\n      __s = pbVar7;\n      if (bVar2 == 0) goto LAB_000b80e8;\n      __s = pbVar7 + 1;\n      *pbVar7 = 0;\n      if ((param_3 & 0x10000) != 0) goto LAB_000b8134;\n    }\n    else {\n      pbVar7 = pbVar5;\n      if ((*param_4 != 0) && (pbVar7 = param_4, uVar14 == 0)) {\n        pbVar7 = pbVar5;\n      }\n      sVar4 = strcspn((char *)__s,(char *)pbVar7);\n      pbVar7 = __s + sVar4;\nLAB_000b8008:\n      bVar2 = *pbVar7;\n      if (uVar14 == 0) goto LAB_000b80e2;\n      bVar10 = *param_4;\nLAB_000b801c:\n      if (bVar10 != bVar2) goto LAB_000b80e2;\n      *pbVar7 = 0;\n      __s = pbVar7;\nLAB_000b80e8:\n      if ((param_3 & 0x10000) == 0) break;\nLAB_000b8134:\n      sVar4 = strspn((char *)__s,(char *)pbVar5);\n      __s = __s + sVar4;\n    }\n    if (((*__s == 0) || (*__s == *param_4)) || (iVar3 = iVar6 + 1, (int)uVar12 <= iVar6 + 1)) break;\n  } while( true );\n  iVar6 = iVar6 + 1;\n  if ((int)uVar16 <= iVar6) {\n    return iVar6;\n  }\n  FUN_0001930a("bad line %u: %d tokens found, %d needed",param_1[6],iVar6,uVar16);\n  iVar3 = iVar1;\n  if ((param_3 & 0x100000) != 0) {\n                    \n    FUN_00019401();\n  }\n  goto code_r0x000b7f52;\n}\n\n" (function_definition "int __regparm3 FUN_000b7e95(undefined4 *param_1,undefined1 *param_2,uint param_3,byte *param_4)\n\n{\n  int iVar1;\n  byte bVar2;\n  int iVar3;\n  size_t sVar4;\n  byte *pbVar5;\n  int iVar6;\n  byte *pbVar7;\n  char *pcVar8;\n  __ssize_t _Var9;\n  byte bVar10;\n  char cVar11;\n  uint uVar12;\n  uint uVar13;\n  uint uVar14;\n  byte *__s;\n  undefined1 *puVar15;\n  uint uVar16;\n  undefined1 *puVar17;\n  byte bVar18;\n  undefined1 *local_64;\n  byte local_4d;\n  \n  bVar18 = 0;\n  if (param_1 == (undefined4 *)0x0) {\n    return 0;\n  }\n  local_4d = 0;\n  if ((param_3 & 0x800000) != 0) {\n    local_4d = *param_4;\n    param_4 = param_4 + 1;\n  }\n  uVar12 = param_3 & 0xff;\n  uVar16 = param_3 >> 8 & 0xff;\n  iVar1 = uVar12 * 4;\n  uVar13 = param_3 & 0x20000;\n  uVar14 = param_3 & 0x400000;\n  iVar3 = iVar1;\n  puVar15 = param_2;\ncode_r0x000b7f52:\n  do {\n    for (; iVar3 != 0; iVar3 = iVar3 + -1) {\n      *puVar15 = 0;\n      puVar15 = puVar15 + (uint)bVar18 * -2 + 1;\n    }\n    iVar3 = __getdelim((char **)(param_1 + 2),param_1 + 4,10,(FILE *)*param_1);\n    if (iVar3 < 1) {\n      if (iVar3 != 0) {\n        return 0;\n      }\n      __s = (byte *)param_1[2];\n    }\n    else {\n      local_64 = (undefined1 *)param_1[2];\n      param_1[6] = param_1[6] + 1;\n      cVar11 = local_64[iVar3 + -1];\n      while( true ) {\n        iVar6 = iVar3;\n        if (cVar11 == '\n') {\n          iVar6 = iVar3 + -1;\n          if (iVar6 == 0) goto LAB_000b81a6;\n          cVar11 = local_64[iVar3 + -2];\n        }\n        if (cVar11 != '\\') {\n          local_64 = local_64 + iVar6;\n          goto LAB_000b81a6;\n        }\n        iVar6 = iVar6 + -1;\n        _Var9 = __getdelim((char **)(param_1 + 3),param_1 + 5,10,(FILE *)*param_1);\n        if (_Var9 < 1) break;\n        iVar3 = iVar6 + _Var9;\n        if ((uint)param_1[4] < iVar3 + 1U) {\n          param_1[4] = iVar3 + 1U;\n          local_64 = (undefined1 *)FUN_0001a2be();\n          param_1[2] = local_64;\n        }\n        puVar15 = (undefined1 *)param_1[3];\n        puVar17 = local_64 + iVar6;\n        for (; _Var9 != 0; _Var9 = _Var9 + -1) {\n          *puVar17 = *puVar15;\n          puVar15 = puVar15 + (uint)bVar18 * -2 + 1;\n          puVar17 = puVar17 + (uint)bVar18 * -2 + 1;\n        }\n        param_1[6] = param_1[6] + 1;\n        cVar11 = local_64[iVar3 + -1];\n      }\n      local_64 = local_64 + iVar6;\nLAB_000b81a6:\n      *local_64 = 0;\n      __s = (byte *)param_1[2];\n    }\n    if (uVar13 != 0) {\n      sVar4 = strspn((char *)__s,(char *)(param_4 + 1));\n      __s = __s + sVar4;\n    }\n    pbVar5 = __s;\n    if ((param_3 & 0x1000000) != 0) {\n      pbVar5 = (byte *)FUN_00019041();\n    }\n    bVar10 = *pbVar5;\n    iVar3 = iVar1;\n    puVar15 = param_2;\n  } while (((bVar10 == 0) || (bVar10 == *param_4)) || (bVar10 == local_4d));\n  pbVar5 = param_4 + 1;\n  iVar3 = 0;\n  do {\n    iVar6 = iVar3;\n    *(byte **)(param_2 + iVar6 * 4) = __s;\n    if ((iVar6 == uVar12 - 1) && ((param_3 & 0x40000) != 0)) {\n      if (uVar14 != 0) {\n        bVar10 = *param_4;\n        pbVar7 = (byte *)strchrnul((char *)__s,(uint)bVar10);\n        if (uVar13 != 0) goto LAB_000b80a9;\n        bVar2 = *pbVar7;\n        goto LAB_000b801c;\n      }\n      pbVar7 = (byte *)strchrnul((char *)__s,0);\n      if (uVar13 != 0) {\nLAB_000b80a9:\n        while (pcVar8 = strchr((char *)pbVar5,(uint)pbVar7[-1]), pcVar8 != (char *)0x0) {\n          pbVar7 = pbVar7 + -1;\n        }\n        goto LAB_000b8008;\n      }\n      bVar2 = *pbVar7;\nLAB_000b80e2:\n      __s = pbVar7;\n      if (bVar2 == 0) goto LAB_000b80e8;\n      __s = pbVar7 + 1;\n      *pbVar7 = 0;\n      if ((param_3 & 0x10000) != 0) goto LAB_000b8134;\n    }\n    else {\n      pbVar7 = pbVar5;\n      if ((*param_4 != 0) && (pbVar7 = param_4, uVar14 == 0)) {\n        pbVar7 = pbVar5;\n      }\n      sVar4 = strcspn((char *)__s,(char *)pbVar7);\n      pbVar7 = __s + sVar4;\nLAB_000b8008:\n      bVar2 = *pbVar7;\n      if (uVar14 == 0) goto LAB_000b80e2;\n      bVar10 = *param_4;\nLAB_000b801c:\n      if (bVar10 != bVar2) goto LAB_000b80e2;\n      *pbVar7 = 0;\n      __s = pbVar7;\nLAB_000b80e8:\n      if ((param_3 & 0x10000) == 0) break;\nLAB_000b8134:\n      sVar4 = strspn((char *)__s,(char *)pbVar5);\n      __s = __s + sVar4;\n    }\n    if (((*__s == 0) || (*__s == *param_4)) || (iVar3 = iVar6 + 1, (int)uVar12 <= iVar6 + 1)) break;\n  } while( true );\n  iVar6 = iVar6 + 1;\n  if ((int)uVar16 <= iVar6) {\n    return iVar6;\n  }\n  FUN_0001930a("bad line %u: %d tokens found, %d needed",param_1[6],iVar6,uVar16);\n  iVar3 = iVar1;\n  if ((param_3 & 0x100000) != 0) {\n                    \n    FUN_00019401();\n  }\n  goto code_r0x000b7f52;\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "FUN_000b7e95(undefined4 *param_1,undefined1 *param_2,uint param_3,byte *param_4)" identifier (parameter_list "(undefined4 *param_1,undefined1 *param_2,uint param_3,byte *param_4)" ( (parameter_declaration "undefined4 *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "undefined1 *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "uint param_3" type_identifier identifier) , (parameter_declaration "byte *param_4" type_identifier (pointer_declarator "*param_4" * identifier)) ))) (compound_statement "{\n  int iVar1;\n  byte bVar2;\n  int iVar3;\n  size_t sVar4;\n  byte *pbVar5;\n  int iVar6;\n  byte *pbVar7;\n  char *pcVar8;\n  __ssize_t _Var9;\n  byte bVar10;\n  char cVar11;\n  uint uVar12;\n  uint uVar13;\n  uint uVar14;\n  byte *__s;\n  undefined1 *puVar15;\n  uint uVar16;\n  undefined1 *puVar17;\n  byte bVar18;\n  undefined1 *local_64;\n  byte local_4d;\n  \n  bVar18 = 0;\n  if (param_1 == (undefined4 *)0x0) {\n    return 0;\n  }\n  local_4d = 0;\n  if ((param_3 & 0x800000) != 0) {\n    local_4d = *param_4;\n    param_4 = param_4 + 1;\n  }\n  uVar12 = param_3 & 0xff;\n  uVar16 = param_3 >> 8 & 0xff;\n  iVar1 = uVar12 * 4;\n  uVar13 = param_3 & 0x20000;\n  uVar14 = param_3 & 0x400000;\n  iVar3 = iVar1;\n  puVar15 = param_2;\ncode_r0x000b7f52:\n  do {\n    for (; iVar3 != 0; iVar3 = iVar3 + -1) {\n      *puVar15 = 0;\n      puVar15 = puVar15 + (uint)bVar18 * -2 + 1;\n    }\n    iVar3 = __getdelim((char **)(param_1 + 2),param_1 + 4,10,(FILE *)*param_1);\n    if (iVar3 < 1) {\n      if (iVar3 != 0) {\n        return 0;\n      }\n      __s = (byte *)param_1[2];\n    }\n    else {\n      local_64 = (undefined1 *)param_1[2];\n      param_1[6] = param_1[6] + 1;\n      cVar11 = local_64[iVar3 + -1];\n      while( true ) {\n        iVar6 = iVar3;\n        if (cVar11 == '\n') {\n          iVar6 = iVar3 + -1;\n          if (iVar6 == 0) goto LAB_000b81a6;\n          cVar11 = local_64[iVar3 + -2];\n        }\n        if (cVar11 != '\\') {\n          local_64 = local_64 + iVar6;\n          goto LAB_000b81a6;\n        }\n        iVar6 = iVar6 + -1;\n        _Var9 = __getdelim((char **)(param_1 + 3),param_1 + 5,10,(FILE *)*param_1);\n        if (_Var9 < 1) break;\n        iVar3 = iVar6 + _Var9;\n        if ((uint)param_1[4] < iVar3 + 1U) {\n          param_1[4] = iVar3 + 1U;\n          local_64 = (undefined1 *)FUN_0001a2be();\n          param_1[2] = local_64;\n        }\n        puVar15 = (undefined1 *)param_1[3];\n        puVar17 = local_64 + iVar6;\n        for (; _Var9 != 0; _Var9 = _Var9 + -1) {\n          *puVar17 = *puVar15;\n          puVar15 = puVar15 + (uint)bVar18 * -2 + 1;\n          puVar17 = puVar17 + (uint)bVar18 * -2 + 1;\n        }\n        param_1[6] = param_1[6] + 1;\n        cVar11 = local_64[iVar3 + -1];\n      }\n      local_64 = local_64 + iVar6;\nLAB_000b81a6:\n      *local_64 = 0;\n      __s = (byte *)param_1[2];\n    }\n    if (uVar13 != 0) {\n      sVar4 = strspn((char *)__s,(char *)(param_4 + 1));\n      __s = __s + sVar4;\n    }\n    pbVar5 = __s;\n    if ((param_3 & 0x1000000) != 0) {\n      pbVar5 = (byte *)FUN_00019041();\n    }\n    bVar10 = *pbVar5;\n    iVar3 = iVar1;\n    puVar15 = param_2;\n  } while (((bVar10 == 0) || (bVar10 == *param_4)) || (bVar10 == local_4d));\n  pbVar5 = param_4 + 1;\n  iVar3 = 0;\n  do {\n    iVar6 = iVar3;\n    *(byte **)(param_2 + iVar6 * 4) = __s;\n    if ((iVar6 == uVar12 - 1) && ((param_3 & 0x40000) != 0)) {\n      if (uVar14 != 0) {\n        bVar10 = *param_4;\n        pbVar7 = (byte *)strchrnul((char *)__s,(uint)bVar10);\n        if (uVar13 != 0) goto LAB_000b80a9;\n        bVar2 = *pbVar7;\n        goto LAB_000b801c;\n      }\n      pbVar7 = (byte *)strchrnul((char *)__s,0);\n      if (uVar13 != 0) {\nLAB_000b80a9:\n        while (pcVar8 = strchr((char *)pbVar5,(uint)pbVar7[-1]), pcVar8 != (char *)0x0) {\n          pbVar7 = pbVar7 + -1;\n        }\n        goto LAB_000b8008;\n      }\n      bVar2 = *pbVar7;\nLAB_000b80e2:\n      __s = pbVar7;\n      if (bVar2 == 0) goto LAB_000b80e8;\n      __s = pbVar7 + 1;\n      *pbVar7 = 0;\n      if ((param_3 & 0x10000) != 0) goto LAB_000b8134;\n    }\n    else {\n      pbVar7 = pbVar5;\n      if ((*param_4 != 0) && (pbVar7 = param_4, uVar14 == 0)) {\n        pbVar7 = pbVar5;\n      }\n      sVar4 = strcspn((char *)__s,(char *)pbVar7);\n      pbVar7 = __s + sVar4;\nLAB_000b8008:\n      bVar2 = *pbVar7;\n      if (uVar14 == 0) goto LAB_000b80e2;\n      bVar10 = *param_4;\nLAB_000b801c:\n      if (bVar10 != bVar2) goto LAB_000b80e2;\n      *pbVar7 = 0;\n      __s = pbVar7;\nLAB_000b80e8:\n      if ((param_3 & 0x10000) == 0) break;\nLAB_000b8134:\n      sVar4 = strspn((char *)__s,(char *)pbVar5);\n      __s = __s + sVar4;\n    }\n    if (((*__s == 0) || (*__s == *param_4)) || (iVar3 = iVar6 + 1, (int)uVar12 <= iVar6 + 1)) break;\n  } while( true );\n  iVar6 = iVar6 + 1;\n  if ((int)uVar16 <= iVar6) {\n    return iVar6;\n  }\n  FUN_0001930a("bad line %u: %d tokens found, %d needed",param_1[6],iVar6,uVar16);\n  iVar3 = iVar1;\n  if ((param_3 & 0x100000) != 0) {\n                    \n    FUN_00019401();\n  }\n  goto code_r0x000b7f52;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "byte bVar2;" type_identifier identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "size_t sVar4;" primitive_type identifier ;) (declaration "byte *pbVar5;" type_identifier (pointer_declarator "*pbVar5" * identifier) ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "byte *pbVar7;" type_identifier (pointer_declarator "*pbVar7" * identifier) ;) (declaration "char *pcVar8;" primitive_type (pointer_declarator "*pcVar8" * identifier) ;) (declaration "__ssize_t _Var9;" type_identifier identifier ;) (declaration "byte bVar10;" type_identifier identifier ;) (declaration "char cVar11;" primitive_type identifier ;) (declaration "uint uVar12;" type_identifier identifier ;) (declaration "uint uVar13;" type_identifier identifier ;) (declaration "uint uVar14;" type_identifier identifier ;) (declaration "byte *__s;" type_identifier (pointer_declarator "*__s" * identifier) ;) (declaration "undefined1 *puVar15;" type_identifier (pointer_declarator "*puVar15" * identifier) ;) (declaration "uint uVar16;" type_identifier identifier ;) (declaration "undefined1 *puVar17;" type_identifier (pointer_declarator "*puVar17" * identifier) ;) (declaration "byte bVar18;" type_identifier identifier ;) (declaration "undefined1 *local_64;" type_identifier (pointer_declarator "*local_64" * identifier) ;) (declaration "byte local_4d;" type_identifier identifier ;) (expression_statement "bVar18 = 0;" (assignment_expression "bVar18 = 0" identifier = number_literal) ;) (if_statement "if (param_1 == (undefined4 *)0x0) {\n    return 0;\n  }" if (parenthesized_expression "(param_1 == (undefined4 *)0x0)" ( (binary_expression "param_1 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    return 0;\n  }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "local_4d = 0;" (assignment_expression "local_4d = 0" identifier = number_literal) ;) (if_statement "if ((param_3 & 0x800000) != 0) {\n    local_4d = *param_4;\n    param_4 = param_4 + 1;\n  }" if (parenthesized_expression "((param_3 & 0x800000) != 0)" ( (binary_expression "(param_3 & 0x800000) != 0" (parenthesized_expression "(param_3 & 0x800000)" ( (binary_expression "param_3 & 0x800000" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n    local_4d = *param_4;\n    param_4 = param_4 + 1;\n  }" { (expression_statement "local_4d = *param_4;" (assignment_expression "local_4d = *param_4" identifier = (pointer_expression "*param_4" * identifier)) ;) (expression_statement "param_4 = param_4 + 1;" (assignment_expression "param_4 = param_4 + 1" identifier = (binary_expression "param_4 + 1" identifier + number_literal)) ;) })) (expression_statement "uVar12 = param_3 & 0xff;" (assignment_expression "uVar12 = param_3 & 0xff" identifier = (binary_expression "param_3 & 0xff" identifier & number_literal)) ;) (expression_statement "uVar16 = param_3 >> 8 & 0xff;" (assignment_expression "uVar16 = param_3 >> 8 & 0xff" identifier = (binary_expression "param_3 >> 8 & 0xff" (binary_expression "param_3 >> 8" identifier >> number_literal) & number_literal)) ;) (expression_statement "iVar1 = uVar12 * 4;" (assignment_expression "iVar1 = uVar12 * 4" identifier = (binary_expression "uVar12 * 4" identifier * number_literal)) ;) (expression_statement "uVar13 = param_3 & 0x20000;" (assignment_expression "uVar13 = param_3 & 0x20000" identifier = (binary_expression "param_3 & 0x20000" identifier & number_literal)) ;) (expression_statement "uVar14 = param_3 & 0x400000;" (assignment_expression "uVar14 = param_3 & 0x400000" identifier = (binary_expression "param_3 & 0x400000" identifier & number_literal)) ;) (expression_statement "iVar3 = iVar1;" (assignment_expression "iVar3 = iVar1" identifier = identifier) ;) (expression_statement "puVar15 = param_2;" (assignment_expression "puVar15 = param_2" identifier = identifier) ;) (labeled_statement "code_r0x000b7f52:\n  do {\n    for (; iVar3 != 0; iVar3 = iVar3 + -1) {\n      *puVar15 = 0;\n      puVar15 = puVar15 + (uint)bVar18 * -2 + 1;\n    }\n    iVar3 = __getdelim((char **)(param_1 + 2),param_1 + 4,10,(FILE *)*param_1);\n    if (iVar3 < 1) {\n      if (iVar3 != 0) {\n        return 0;\n      }\n      __s = (byte *)param_1[2];\n    }\n    else {\n      local_64 = (undefined1 *)param_1[2];\n      param_1[6] = param_1[6] + 1;\n      cVar11 = local_64[iVar3 + -1];\n      while( true ) {\n        iVar6 = iVar3;\n        if (cVar11 == '\n') {\n          iVar6 = iVar3 + -1;\n          if (iVar6 == 0) goto LAB_000b81a6;\n          cVar11 = local_64[iVar3 + -2];\n        }\n        if (cVar11 != '\\') {\n          local_64 = local_64 + iVar6;\n          goto LAB_000b81a6;\n        }\n        iVar6 = iVar6 + -1;\n        _Var9 = __getdelim((char **)(param_1 + 3),param_1 + 5,10,(FILE *)*param_1);\n        if (_Var9 < 1) break;\n        iVar3 = iVar6 + _Var9;\n        if ((uint)param_1[4] < iVar3 + 1U) {\n          param_1[4] = iVar3 + 1U;\n          local_64 = (undefined1 *)FUN_0001a2be();\n          param_1[2] = local_64;\n        }\n        puVar15 = (undefined1 *)param_1[3];\n        puVar17 = local_64 + iVar6;\n        for (; _Var9 != 0; _Var9 = _Var9 + -1) {\n          *puVar17 = *puVar15;\n          puVar15 = puVar15 + (uint)bVar18 * -2 + 1;\n          puVar17 = puVar17 + (uint)bVar18 * -2 + 1;\n        }\n        param_1[6] = param_1[6] + 1;\n        cVar11 = local_64[iVar3 + -1];\n      }\n      local_64 = local_64 + iVar6;\nLAB_000b81a6:\n      *local_64 = 0;\n      __s = (byte *)param_1[2];\n    }\n    if (uVar13 != 0) {\n      sVar4 = strspn((char *)__s,(char *)(param_4 + 1));\n      __s = __s + sVar4;\n    }\n    pbVar5 = __s;\n    if ((param_3 & 0x1000000) != 0) {\n      pbVar5 = (byte *)FUN_00019041();\n    }\n    bVar10 = *pbVar5;\n    iVar3 = iVar1;\n    puVar15 = param_2;\n  } while (((bVar10 == 0) || (bVar10 == *param_4)) || (bVar10 == local_4d));" statement_identifier : (do_statement "do {\n    for (; iVar3 != 0; iVar3 = iVar3 + -1) {\n      *puVar15 = 0;\n      puVar15 = puVar15 + (uint)bVar18 * -2 + 1;\n    }\n    iVar3 = __getdelim((char **)(param_1 + 2),param_1 + 4,10,(FILE *)*param_1);\n    if (iVar3 < 1) {\n      if (iVar3 != 0) {\n        return 0;\n      }\n      __s = (byte *)param_1[2];\n    }\n    else {\n      local_64 = (undefined1 *)param_1[2];\n      param_1[6] = param_1[6] + 1;\n      cVar11 = local_64[iVar3 + -1];\n      while( true ) {\n        iVar6 = iVar3;\n        if (cVar11 == '\n') {\n          iVar6 = iVar3 + -1;\n          if (iVar6 == 0) goto LAB_000b81a6;\n          cVar11 = local_64[iVar3 + -2];\n        }\n        if (cVar11 != '\\') {\n          local_64 = local_64 + iVar6;\n          goto LAB_000b81a6;\n        }\n        iVar6 = iVar6 + -1;\n        _Var9 = __getdelim((char **)(param_1 + 3),param_1 + 5,10,(FILE *)*param_1);\n        if (_Var9 < 1) break;\n        iVar3 = iVar6 + _Var9;\n        if ((uint)param_1[4] < iVar3 + 1U) {\n          param_1[4] = iVar3 + 1U;\n          local_64 = (undefined1 *)FUN_0001a2be();\n          param_1[2] = local_64;\n        }\n        puVar15 = (undefined1 *)param_1[3];\n        puVar17 = local_64 + iVar6;\n        for (; _Var9 != 0; _Var9 = _Var9 + -1) {\n          *puVar17 = *puVar15;\n          puVar15 = puVar15 + (uint)bVar18 * -2 + 1;\n          puVar17 = puVar17 + (uint)bVar18 * -2 + 1;\n        }\n        param_1[6] = param_1[6] + 1;\n        cVar11 = local_64[iVar3 + -1];\n      }\n      local_64 = local_64 + iVar6;\nLAB_000b81a6:\n      *local_64 = 0;\n      __s = (byte *)param_1[2];\n    }\n    if (uVar13 != 0) {\n      sVar4 = strspn((char *)__s,(char *)(param_4 + 1));\n      __s = __s + sVar4;\n    }\n    pbVar5 = __s;\n    if ((param_3 & 0x1000000) != 0) {\n      pbVar5 = (byte *)FUN_00019041();\n    }\n    bVar10 = *pbVar5;\n    iVar3 = iVar1;\n    puVar15 = param_2;\n  } while (((bVar10 == 0) || (bVar10 == *param_4)) || (bVar10 == local_4d));" do (compound_statement "{\n    for (; iVar3 != 0; iVar3 = iVar3 + -1) {\n      *puVar15 = 0;\n      puVar15 = puVar15 + (uint)bVar18 * -2 + 1;\n    }\n    iVar3 = __getdelim((char **)(param_1 + 2),param_1 + 4,10,(FILE *)*param_1);\n    if (iVar3 < 1) {\n      if (iVar3 != 0) {\n        return 0;\n      }\n      __s = (byte *)param_1[2];\n    }\n    else {\n      local_64 = (undefined1 *)param_1[2];\n      param_1[6] = param_1[6] + 1;\n      cVar11 = local_64[iVar3 + -1];\n      while( true ) {\n        iVar6 = iVar3;\n        if (cVar11 == '\n') {\n          iVar6 = iVar3 + -1;\n          if (iVar6 == 0) goto LAB_000b81a6;\n          cVar11 = local_64[iVar3 + -2];\n        }\n        if (cVar11 != '\\') {\n          local_64 = local_64 + iVar6;\n          goto LAB_000b81a6;\n        }\n        iVar6 = iVar6 + -1;\n        _Var9 = __getdelim((char **)(param_1 + 3),param_1 + 5,10,(FILE *)*param_1);\n        if (_Var9 < 1) break;\n        iVar3 = iVar6 + _Var9;\n        if ((uint)param_1[4] < iVar3 + 1U) {\n          param_1[4] = iVar3 + 1U;\n          local_64 = (undefined1 *)FUN_0001a2be();\n          param_1[2] = local_64;\n        }\n        puVar15 = (undefined1 *)param_1[3];\n        puVar17 = local_64 + iVar6;\n        for (; _Var9 != 0; _Var9 = _Var9 + -1) {\n          *puVar17 = *puVar15;\n          puVar15 = puVar15 + (uint)bVar18 * -2 + 1;\n          puVar17 = puVar17 + (uint)bVar18 * -2 + 1;\n        }\n        param_1[6] = param_1[6] + 1;\n        cVar11 = local_64[iVar3 + -1];\n      }\n      local_64 = local_64 + iVar6;\nLAB_000b81a6:\n      *local_64 = 0;\n      __s = (byte *)param_1[2];\n    }\n    if (uVar13 != 0) {\n      sVar4 = strspn((char *)__s,(char *)(param_4 + 1));\n      __s = __s + sVar4;\n    }\n    pbVar5 = __s;\n    if ((param_3 & 0x1000000) != 0) {\n      pbVar5 = (byte *)FUN_00019041();\n    }\n    bVar10 = *pbVar5;\n    iVar3 = iVar1;\n    puVar15 = param_2;\n  }" { (for_statement "for (; iVar3 != 0; iVar3 = iVar3 + -1) {\n      *puVar15 = 0;\n      puVar15 = puVar15 + (uint)bVar18 * -2 + 1;\n    }" for ( ; (binary_expression "iVar3 != 0" identifier != number_literal) ; (assignment_expression "iVar3 = iVar3 + -1" identifier = (binary_expression "iVar3 + -1" identifier + number_literal)) ) (compound_statement "{\n      *puVar15 = 0;\n      puVar15 = puVar15 + (uint)bVar18 * -2 + 1;\n    }" { (expression_statement "*puVar15 = 0;" (assignment_expression "*puVar15 = 0" (pointer_expression "*puVar15" * identifier) = number_literal) ;) (expression_statement "puVar15 = puVar15 + (uint)bVar18 * -2 + 1;" (assignment_expression "puVar15 = puVar15 + (uint)bVar18 * -2 + 1" identifier = (binary_expression "puVar15 + (uint)bVar18 * -2 + 1" (binary_expression "puVar15 + (uint)bVar18 * -2" identifier + (binary_expression "(uint)bVar18 * -2" (cast_expression "(uint)bVar18" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) })) (expression_statement "iVar3 = __getdelim((char **)(param_1 + 2),param_1 + 4,10,(FILE *)*param_1);" (assignment_expression "iVar3 = __getdelim((char **)(param_1 + 2),param_1 + 4,10,(FILE *)*param_1)" identifier = (call_expression "__getdelim((char **)(param_1 + 2),param_1 + 4,10,(FILE *)*param_1)" identifier (argument_list "((char **)(param_1 + 2),param_1 + 4,10,(FILE *)*param_1)" ( (cast_expression "(char **)(param_1 + 2)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 2)" ( (binary_expression "param_1 + 2" identifier + number_literal) ))) , (binary_expression "param_1 + 4" identifier + number_literal) , number_literal , (cast_expression "(FILE *)*param_1" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier)) )))) ;) (if_statement "if (iVar3 < 1) {\n      if (iVar3 != 0) {\n        return 0;\n      }\n      __s = (byte *)param_1[2];\n    }\n    else {\n      local_64 = (undefined1 *)param_1[2];\n      param_1[6] = param_1[6] + 1;\n      cVar11 = local_64[iVar3 + -1];\n      while( true ) {\n        iVar6 = iVar3;\n        if (cVar11 == '\n') {\n          iVar6 = iVar3 + -1;\n          if (iVar6 == 0) goto LAB_000b81a6;\n          cVar11 = local_64[iVar3 + -2];\n        }\n        if (cVar11 != '\\') {\n          local_64 = local_64 + iVar6;\n          goto LAB_000b81a6;\n        }\n        iVar6 = iVar6 + -1;\n        _Var9 = __getdelim((char **)(param_1 + 3),param_1 + 5,10,(FILE *)*param_1);\n        if (_Var9 < 1) break;\n        iVar3 = iVar6 + _Var9;\n        if ((uint)param_1[4] < iVar3 + 1U) {\n          param_1[4] = iVar3 + 1U;\n          local_64 = (undefined1 *)FUN_0001a2be();\n          param_1[2] = local_64;\n        }\n        puVar15 = (undefined1 *)param_1[3];\n        puVar17 = local_64 + iVar6;\n        for (; _Var9 != 0; _Var9 = _Var9 + -1) {\n          *puVar17 = *puVar15;\n          puVar15 = puVar15 + (uint)bVar18 * -2 + 1;\n          puVar17 = puVar17 + (uint)bVar18 * -2 + 1;\n        }\n        param_1[6] = param_1[6] + 1;\n        cVar11 = local_64[iVar3 + -1];\n      }\n      local_64 = local_64 + iVar6;\nLAB_000b81a6:\n      *local_64 = 0;\n      __s = (byte *)param_1[2];\n    }" if (parenthesized_expression "(iVar3 < 1)" ( (binary_expression "iVar3 < 1" identifier < number_literal) )) (compound_statement "{\n      if (iVar3 != 0) {\n        return 0;\n      }\n      __s = (byte *)param_1[2];\n    }" { (if_statement "if (iVar3 != 0) {\n        return 0;\n      }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n        return 0;\n      }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "__s = (byte *)param_1[2];" (assignment_expression "__s = (byte *)param_1[2]" identifier = (cast_expression "(byte *)param_1[2]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[2]" identifier [ number_literal ]))) ;) }) (else_clause "else {\n      local_64 = (undefined1 *)param_1[2];\n      param_1[6] = param_1[6] + 1;\n      cVar11 = local_64[iVar3 + -1];\n      while( true ) {\n        iVar6 = iVar3;\n        if (cVar11 == '\n') {\n          iVar6 = iVar3 + -1;\n          if (iVar6 == 0) goto LAB_000b81a6;\n          cVar11 = local_64[iVar3 + -2];\n        }\n        if (cVar11 != '\\') {\n          local_64 = local_64 + iVar6;\n          goto LAB_000b81a6;\n        }\n        iVar6 = iVar6 + -1;\n        _Var9 = __getdelim((char **)(param_1 + 3),param_1 + 5,10,(FILE *)*param_1);\n        if (_Var9 < 1) break;\n        iVar3 = iVar6 + _Var9;\n        if ((uint)param_1[4] < iVar3 + 1U) {\n          param_1[4] = iVar3 + 1U;\n          local_64 = (undefined1 *)FUN_0001a2be();\n          param_1[2] = local_64;\n        }\n        puVar15 = (undefined1 *)param_1[3];\n        puVar17 = local_64 + iVar6;\n        for (; _Var9 != 0; _Var9 = _Var9 + -1) {\n          *puVar17 = *puVar15;\n          puVar15 = puVar15 + (uint)bVar18 * -2 + 1;\n          puVar17 = puVar17 + (uint)bVar18 * -2 + 1;\n        }\n        param_1[6] = param_1[6] + 1;\n        cVar11 = local_64[iVar3 + -1];\n      }\n      local_64 = local_64 + iVar6;\nLAB_000b81a6:\n      *local_64 = 0;\n      __s = (byte *)param_1[2];\n    }" else (compound_statement "{\n      local_64 = (undefined1 *)param_1[2];\n      param_1[6] = param_1[6] + 1;\n      cVar11 = local_64[iVar3 + -1];\n      while( true ) {\n        iVar6 = iVar3;\n        if (cVar11 == '\n') {\n          iVar6 = iVar3 + -1;\n          if (iVar6 == 0) goto LAB_000b81a6;\n          cVar11 = local_64[iVar3 + -2];\n        }\n        if (cVar11 != '\\') {\n          local_64 = local_64 + iVar6;\n          goto LAB_000b81a6;\n        }\n        iVar6 = iVar6 + -1;\n        _Var9 = __getdelim((char **)(param_1 + 3),param_1 + 5,10,(FILE *)*param_1);\n        if (_Var9 < 1) break;\n        iVar3 = iVar6 + _Var9;\n        if ((uint)param_1[4] < iVar3 + 1U) {\n          param_1[4] = iVar3 + 1U;\n          local_64 = (undefined1 *)FUN_0001a2be();\n          param_1[2] = local_64;\n        }\n        puVar15 = (undefined1 *)param_1[3];\n        puVar17 = local_64 + iVar6;\n        for (; _Var9 != 0; _Var9 = _Var9 + -1) {\n          *puVar17 = *puVar15;\n          puVar15 = puVar15 + (uint)bVar18 * -2 + 1;\n          puVar17 = puVar17 + (uint)bVar18 * -2 + 1;\n        }\n        param_1[6] = param_1[6] + 1;\n        cVar11 = local_64[iVar3 + -1];\n      }\n      local_64 = local_64 + iVar6;\nLAB_000b81a6:\n      *local_64 = 0;\n      __s = (byte *)param_1[2];\n    }" { (expression_statement "local_64 = (undefined1 *)param_1[2];" (assignment_expression "local_64 = (undefined1 *)param_1[2]" identifier = (cast_expression "(undefined1 *)param_1[2]" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[2]" identifier [ number_literal ]))) ;) (expression_statement "param_1[6] = param_1[6] + 1;" (assignment_expression "param_1[6] = param_1[6] + 1" (subscript_expression "param_1[6]" identifier [ number_literal ]) = (binary_expression "param_1[6] + 1" (subscript_expression "param_1[6]" identifier [ number_literal ]) + number_literal)) ;) (expression_statement "cVar11 = local_64[iVar3 + -1];" (assignment_expression "cVar11 = local_64[iVar3 + -1]" identifier = (subscript_expression "local_64[iVar3 + -1]" identifier [ (binary_expression "iVar3 + -1" identifier + number_literal) ])) ;) (while_statement "while( true ) {\n        iVar6 = iVar3;\n        if (cVar11 == '\n') {\n          iVar6 = iVar3 + -1;\n          if (iVar6 == 0) goto LAB_000b81a6;\n          cVar11 = local_64[iVar3 + -2];\n        }\n        if (cVar11 != '\\') {\n          local_64 = local_64 + iVar6;\n          goto LAB_000b81a6;\n        }\n        iVar6 = iVar6 + -1;\n        _Var9 = __getdelim((char **)(param_1 + 3),param_1 + 5,10,(FILE *)*param_1);\n        if (_Var9 < 1) break;\n        iVar3 = iVar6 + _Var9;\n        if ((uint)param_1[4] < iVar3 + 1U) {\n          param_1[4] = iVar3 + 1U;\n          local_64 = (undefined1 *)FUN_0001a2be();\n          param_1[2] = local_64;\n        }\n        puVar15 = (undefined1 *)param_1[3];\n        puVar17 = local_64 + iVar6;\n        for (; _Var9 != 0; _Var9 = _Var9 + -1) {\n          *puVar17 = *puVar15;\n          puVar15 = puVar15 + (uint)bVar18 * -2 + 1;\n          puVar17 = puVar17 + (uint)bVar18 * -2 + 1;\n        }\n        param_1[6] = param_1[6] + 1;\n        cVar11 = local_64[iVar3 + -1];\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        iVar6 = iVar3;\n        if (cVar11 == '\n') {\n          iVar6 = iVar3 + -1;\n          if (iVar6 == 0) goto LAB_000b81a6;\n          cVar11 = local_64[iVar3 + -2];\n        }\n        if (cVar11 != '\\') {\n          local_64 = local_64 + iVar6;\n          goto LAB_000b81a6;\n        }\n        iVar6 = iVar6 + -1;\n        _Var9 = __getdelim((char **)(param_1 + 3),param_1 + 5,10,(FILE *)*param_1);\n        if (_Var9 < 1) break;\n        iVar3 = iVar6 + _Var9;\n        if ((uint)param_1[4] < iVar3 + 1U) {\n          param_1[4] = iVar3 + 1U;\n          local_64 = (undefined1 *)FUN_0001a2be();\n          param_1[2] = local_64;\n        }\n        puVar15 = (undefined1 *)param_1[3];\n        puVar17 = local_64 + iVar6;\n        for (; _Var9 != 0; _Var9 = _Var9 + -1) {\n          *puVar17 = *puVar15;\n          puVar15 = puVar15 + (uint)bVar18 * -2 + 1;\n          puVar17 = puVar17 + (uint)bVar18 * -2 + 1;\n        }\n        param_1[6] = param_1[6] + 1;\n        cVar11 = local_64[iVar3 + -1];\n      }" { (expression_statement "iVar6 = iVar3;" (assignment_expression "iVar6 = iVar3" identifier = identifier) ;) (if_statement "if (cVar11 == '\n') {\n          iVar6 = iVar3 + -1;\n          if (iVar6 == 0) goto LAB_000b81a6;\n          cVar11 = local_64[iVar3 + -2];\n        }" if (parenthesized_expression "(cVar11 == '\n')" ( (binary_expression "cVar11 == '\n'" identifier == (char_literal "'\n'" ' escape_sequence ')) )) (compound_statement "{\n          iVar6 = iVar3 + -1;\n          if (iVar6 == 0) goto LAB_000b81a6;\n          cVar11 = local_64[iVar3 + -2];\n        }" { (expression_statement "iVar6 = iVar3 + -1;" (assignment_expression "iVar6 = iVar3 + -1" identifier = (binary_expression "iVar3 + -1" identifier + number_literal)) ;) (if_statement "if (iVar6 == 0) goto LAB_000b81a6;" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000b81a6;" goto statement_identifier ;)) (expression_statement "cVar11 = local_64[iVar3 + -2];" (assignment_expression "cVar11 = local_64[iVar3 + -2]" identifier = (subscript_expression "local_64[iVar3 + -2]" identifier [ (binary_expression "iVar3 + -2" identifier + number_literal) ])) ;) })) (if_statement "if (cVar11 != '\\') {\n          local_64 = local_64 + iVar6;\n          goto LAB_000b81a6;\n        }" if (parenthesized_expression "(cVar11 != '\\')" ( (binary_expression "cVar11 != '\\'" identifier != (char_literal "'\\'" ' escape_sequence ')) )) (compound_statement "{\n          local_64 = local_64 + iVar6;\n          goto LAB_000b81a6;\n        }" { (expression_statement "local_64 = local_64 + iVar6;" (assignment_expression "local_64 = local_64 + iVar6" identifier = (binary_expression "local_64 + iVar6" identifier + identifier)) ;) (goto_statement "goto LAB_000b81a6;" goto statement_identifier ;) })) (expression_statement "iVar6 = iVar6 + -1;" (assignment_expression "iVar6 = iVar6 + -1" identifier = (binary_expression "iVar6 + -1" identifier + number_literal)) ;) (expression_statement "_Var9 = __getdelim((char **)(param_1 + 3),param_1 + 5,10,(FILE *)*param_1);" (assignment_expression "_Var9 = __getdelim((char **)(param_1 + 3),param_1 + 5,10,(FILE *)*param_1)" identifier = (call_expression "__getdelim((char **)(param_1 + 3),param_1 + 5,10,(FILE *)*param_1)" identifier (argument_list "((char **)(param_1 + 3),param_1 + 5,10,(FILE *)*param_1)" ( (cast_expression "(char **)(param_1 + 3)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 3)" ( (binary_expression "param_1 + 3" identifier + number_literal) ))) , (binary_expression "param_1 + 5" identifier + number_literal) , number_literal , (cast_expression "(FILE *)*param_1" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier)) )))) ;) (if_statement "if (_Var9 < 1) break;" if (parenthesized_expression "(_Var9 < 1)" ( (binary_expression "_Var9 < 1" identifier < number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar3 = iVar6 + _Var9;" (assignment_expression "iVar3 = iVar6 + _Var9" identifier = (binary_expression "iVar6 + _Var9" identifier + identifier)) ;) (if_statement "if ((uint)param_1[4] < iVar3 + 1U) {\n          param_1[4] = iVar3 + 1U;\n          local_64 = (undefined1 *)FUN_0001a2be();\n          param_1[2] = local_64;\n        }" if (parenthesized_expression "((uint)param_1[4] < iVar3 + 1U)" ( (binary_expression "(uint)param_1[4] < iVar3 + 1U" (cast_expression "(uint)param_1[4]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_1[4]" identifier [ number_literal ])) < (binary_expression "iVar3 + 1U" identifier + number_literal)) )) (compound_statement "{\n          param_1[4] = iVar3 + 1U;\n          local_64 = (undefined1 *)FUN_0001a2be();\n          param_1[2] = local_64;\n        }" { (expression_statement "param_1[4] = iVar3 + 1U;" (assignment_expression "param_1[4] = iVar3 + 1U" (subscript_expression "param_1[4]" identifier [ number_literal ]) = (binary_expression "iVar3 + 1U" identifier + number_literal)) ;) (expression_statement "local_64 = (undefined1 *)FUN_0001a2be();" (assignment_expression "local_64 = (undefined1 *)FUN_0001a2be()" identifier = (cast_expression "(undefined1 *)FUN_0001a2be()" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0001a2be()" identifier (argument_list "()" ( ))))) ;) (expression_statement "param_1[2] = local_64;" (assignment_expression "param_1[2] = local_64" (subscript_expression "param_1[2]" identifier [ number_literal ]) = identifier) ;) })) (expression_statement "puVar15 = (undefined1 *)param_1[3];" (assignment_expression "puVar15 = (undefined1 *)param_1[3]" identifier = (cast_expression "(undefined1 *)param_1[3]" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[3]" identifier [ number_literal ]))) ;) (expression_statement "puVar17 = local_64 + iVar6;" (assignment_expression "puVar17 = local_64 + iVar6" identifier = (binary_expression "local_64 + iVar6" identifier + identifier)) ;) (for_statement "for (; _Var9 != 0; _Var9 = _Var9 + -1) {\n          *puVar17 = *puVar15;\n          puVar15 = puVar15 + (uint)bVar18 * -2 + 1;\n          puVar17 = puVar17 + (uint)bVar18 * -2 + 1;\n        }" for ( ; (binary_expression "_Var9 != 0" identifier != number_literal) ; (assignment_expression "_Var9 = _Var9 + -1" identifier = (binary_expression "_Var9 + -1" identifier + number_literal)) ) (compound_statement "{\n          *puVar17 = *puVar15;\n          puVar15 = puVar15 + (uint)bVar18 * -2 + 1;\n          puVar17 = puVar17 + (uint)bVar18 * -2 + 1;\n        }" { (expression_statement "*puVar17 = *puVar15;" (assignment_expression "*puVar17 = *puVar15" (pointer_expression "*puVar17" * identifier) = (pointer_expression "*puVar15" * identifier)) ;) (expression_statement "puVar15 = puVar15 + (uint)bVar18 * -2 + 1;" (assignment_expression "puVar15 = puVar15 + (uint)bVar18 * -2 + 1" identifier = (binary_expression "puVar15 + (uint)bVar18 * -2 + 1" (binary_expression "puVar15 + (uint)bVar18 * -2" identifier + (binary_expression "(uint)bVar18 * -2" (cast_expression "(uint)bVar18" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "puVar17 = puVar17 + (uint)bVar18 * -2 + 1;" (assignment_expression "puVar17 = puVar17 + (uint)bVar18 * -2 + 1" identifier = (binary_expression "puVar17 + (uint)bVar18 * -2 + 1" (binary_expression "puVar17 + (uint)bVar18 * -2" identifier + (binary_expression "(uint)bVar18 * -2" (cast_expression "(uint)bVar18" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) })) (expression_statement "param_1[6] = param_1[6] + 1;" (assignment_expression "param_1[6] = param_1[6] + 1" (subscript_expression "param_1[6]" identifier [ number_literal ]) = (binary_expression "param_1[6] + 1" (subscript_expression "param_1[6]" identifier [ number_literal ]) + number_literal)) ;) (expression_statement "cVar11 = local_64[iVar3 + -1];" (assignment_expression "cVar11 = local_64[iVar3 + -1]" identifier = (subscript_expression "local_64[iVar3 + -1]" identifier [ (binary_expression "iVar3 + -1" identifier + number_literal) ])) ;) })) (expression_statement "local_64 = local_64 + iVar6;" (assignment_expression "local_64 = local_64 + iVar6" identifier = (binary_expression "local_64 + iVar6" identifier + identifier)) ;) (labeled_statement "LAB_000b81a6:\n      *local_64 = 0;" statement_identifier : (expression_statement "*local_64 = 0;" (assignment_expression "*local_64 = 0" (pointer_expression "*local_64" * identifier) = number_literal) ;)) (expression_statement "__s = (byte *)param_1[2];" (assignment_expression "__s = (byte *)param_1[2]" identifier = (cast_expression "(byte *)param_1[2]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[2]" identifier [ number_literal ]))) ;) }))) (if_statement "if (uVar13 != 0) {\n      sVar4 = strspn((char *)__s,(char *)(param_4 + 1));\n      __s = __s + sVar4;\n    }" if (parenthesized_expression "(uVar13 != 0)" ( (binary_expression "uVar13 != 0" identifier != number_literal) )) (compound_statement "{\n      sVar4 = strspn((char *)__s,(char *)(param_4 + 1));\n      __s = __s + sVar4;\n    }" { (expression_statement "sVar4 = strspn((char *)__s,(char *)(param_4 + 1));" (assignment_expression "sVar4 = strspn((char *)__s,(char *)(param_4 + 1))" identifier = (call_expression "strspn((char *)__s,(char *)(param_4 + 1))" identifier (argument_list "((char *)__s,(char *)(param_4 + 1))" ( (cast_expression "(char *)__s" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(char *)(param_4 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 1)" ( (binary_expression "param_4 + 1" identifier + number_literal) ))) )))) ;) (expression_statement "__s = __s + sVar4;" (assignment_expression "__s = __s + sVar4" identifier = (binary_expression "__s + sVar4" identifier + identifier)) ;) })) (expression_statement "pbVar5 = __s;" (assignment_expression "pbVar5 = __s" identifier = identifier) ;) (if_statement "if ((param_3 & 0x1000000) != 0) {\n      pbVar5 = (byte *)FUN_00019041();\n    }" if (parenthesized_expression "((param_3 & 0x1000000) != 0)" ( (binary_expression "(param_3 & 0x1000000) != 0" (parenthesized_expression "(param_3 & 0x1000000)" ( (binary_expression "param_3 & 0x1000000" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      pbVar5 = (byte *)FUN_00019041();\n    }" { (expression_statement "pbVar5 = (byte *)FUN_00019041();" (assignment_expression "pbVar5 = (byte *)FUN_00019041()" identifier = (cast_expression "(byte *)FUN_00019041()" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00019041()" identifier (argument_list "()" ( ))))) ;) })) (expression_statement "bVar10 = *pbVar5;" (assignment_expression "bVar10 = *pbVar5" identifier = (pointer_expression "*pbVar5" * identifier)) ;) (expression_statement "iVar3 = iVar1;" (assignment_expression "iVar3 = iVar1" identifier = identifier) ;) (expression_statement "puVar15 = param_2;" (assignment_expression "puVar15 = param_2" identifier = identifier) ;) }) while (parenthesized_expression "(((bVar10 == 0) || (bVar10 == *param_4)) || (bVar10 == local_4d))" ( (binary_expression "((bVar10 == 0) || (bVar10 == *param_4)) || (bVar10 == local_4d)" (parenthesized_expression "((bVar10 == 0) || (bVar10 == *param_4))" ( (binary_expression "(bVar10 == 0) || (bVar10 == *param_4)" (parenthesized_expression "(bVar10 == 0)" ( (binary_expression "bVar10 == 0" identifier == number_literal) )) || (parenthesized_expression "(bVar10 == *param_4)" ( (binary_expression "bVar10 == *param_4" identifier == (pointer_expression "*param_4" * identifier)) ))) )) || (parenthesized_expression "(bVar10 == local_4d)" ( (binary_expression "bVar10 == local_4d" identifier == identifier) ))) )) ;)) (expression_statement "pbVar5 = param_4 + 1;" (assignment_expression "pbVar5 = param_4 + 1" identifier = (binary_expression "param_4 + 1" identifier + number_literal)) ;) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) (do_statement "do {\n    iVar6 = iVar3;\n    *(byte **)(param_2 + iVar6 * 4) = __s;\n    if ((iVar6 == uVar12 - 1) && ((param_3 & 0x40000) != 0)) {\n      if (uVar14 != 0) {\n        bVar10 = *param_4;\n        pbVar7 = (byte *)strchrnul((char *)__s,(uint)bVar10);\n        if (uVar13 != 0) goto LAB_000b80a9;\n        bVar2 = *pbVar7;\n        goto LAB_000b801c;\n      }\n      pbVar7 = (byte *)strchrnul((char *)__s,0);\n      if (uVar13 != 0) {\nLAB_000b80a9:\n        while (pcVar8 = strchr((char *)pbVar5,(uint)pbVar7[-1]), pcVar8 != (char *)0x0) {\n          pbVar7 = pbVar7 + -1;\n        }\n        goto LAB_000b8008;\n      }\n      bVar2 = *pbVar7;\nLAB_000b80e2:\n      __s = pbVar7;\n      if (bVar2 == 0) goto LAB_000b80e8;\n      __s = pbVar7 + 1;\n      *pbVar7 = 0;\n      if ((param_3 & 0x10000) != 0) goto LAB_000b8134;\n    }\n    else {\n      pbVar7 = pbVar5;\n      if ((*param_4 != 0) && (pbVar7 = param_4, uVar14 == 0)) {\n        pbVar7 = pbVar5;\n      }\n      sVar4 = strcspn((char *)__s,(char *)pbVar7);\n      pbVar7 = __s + sVar4;\nLAB_000b8008:\n      bVar2 = *pbVar7;\n      if (uVar14 == 0) goto LAB_000b80e2;\n      bVar10 = *param_4;\nLAB_000b801c:\n      if (bVar10 != bVar2) goto LAB_000b80e2;\n      *pbVar7 = 0;\n      __s = pbVar7;\nLAB_000b80e8:\n      if ((param_3 & 0x10000) == 0) break;\nLAB_000b8134:\n      sVar4 = strspn((char *)__s,(char *)pbVar5);\n      __s = __s + sVar4;\n    }\n    if (((*__s == 0) || (*__s == *param_4)) || (iVar3 = iVar6 + 1, (int)uVar12 <= iVar6 + 1)) break;\n  } while( true );" do (compound_statement "{\n    iVar6 = iVar3;\n    *(byte **)(param_2 + iVar6 * 4) = __s;\n    if ((iVar6 == uVar12 - 1) && ((param_3 & 0x40000) != 0)) {\n      if (uVar14 != 0) {\n        bVar10 = *param_4;\n        pbVar7 = (byte *)strchrnul((char *)__s,(uint)bVar10);\n        if (uVar13 != 0) goto LAB_000b80a9;\n        bVar2 = *pbVar7;\n        goto LAB_000b801c;\n      }\n      pbVar7 = (byte *)strchrnul((char *)__s,0);\n      if (uVar13 != 0) {\nLAB_000b80a9:\n        while (pcVar8 = strchr((char *)pbVar5,(uint)pbVar7[-1]), pcVar8 != (char *)0x0) {\n          pbVar7 = pbVar7 + -1;\n        }\n        goto LAB_000b8008;\n      }\n      bVar2 = *pbVar7;\nLAB_000b80e2:\n      __s = pbVar7;\n      if (bVar2 == 0) goto LAB_000b80e8;\n      __s = pbVar7 + 1;\n      *pbVar7 = 0;\n      if ((param_3 & 0x10000) != 0) goto LAB_000b8134;\n    }\n    else {\n      pbVar7 = pbVar5;\n      if ((*param_4 != 0) && (pbVar7 = param_4, uVar14 == 0)) {\n        pbVar7 = pbVar5;\n      }\n      sVar4 = strcspn((char *)__s,(char *)pbVar7);\n      pbVar7 = __s + sVar4;\nLAB_000b8008:\n      bVar2 = *pbVar7;\n      if (uVar14 == 0) goto LAB_000b80e2;\n      bVar10 = *param_4;\nLAB_000b801c:\n      if (bVar10 != bVar2) goto LAB_000b80e2;\n      *pbVar7 = 0;\n      __s = pbVar7;\nLAB_000b80e8:\n      if ((param_3 & 0x10000) == 0) break;\nLAB_000b8134:\n      sVar4 = strspn((char *)__s,(char *)pbVar5);\n      __s = __s + sVar4;\n    }\n    if (((*__s == 0) || (*__s == *param_4)) || (iVar3 = iVar6 + 1, (int)uVar12 <= iVar6 + 1)) break;\n  }" { (expression_statement "iVar6 = iVar3;" (assignment_expression "iVar6 = iVar3" identifier = identifier) ;) (expression_statement "*(byte **)(param_2 + iVar6 * 4) = __s;" (assignment_expression "*(byte **)(param_2 + iVar6 * 4) = __s" (pointer_expression "*(byte **)(param_2 + iVar6 * 4)" * (cast_expression "(byte **)(param_2 + iVar6 * 4)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + iVar6 * 4)" ( (binary_expression "param_2 + iVar6 * 4" identifier + (binary_expression "iVar6 * 4" identifier * number_literal)) )))) = identifier) ;) (if_statement "if ((iVar6 == uVar12 - 1) && ((param_3 & 0x40000) != 0)) {\n      if (uVar14 != 0) {\n        bVar10 = *param_4;\n        pbVar7 = (byte *)strchrnul((char *)__s,(uint)bVar10);\n        if (uVar13 != 0) goto LAB_000b80a9;\n        bVar2 = *pbVar7;\n        goto LAB_000b801c;\n      }\n      pbVar7 = (byte *)strchrnul((char *)__s,0);\n      if (uVar13 != 0) {\nLAB_000b80a9:\n        while (pcVar8 = strchr((char *)pbVar5,(uint)pbVar7[-1]), pcVar8 != (char *)0x0) {\n          pbVar7 = pbVar7 + -1;\n        }\n        goto LAB_000b8008;\n      }\n      bVar2 = *pbVar7;\nLAB_000b80e2:\n      __s = pbVar7;\n      if (bVar2 == 0) goto LAB_000b80e8;\n      __s = pbVar7 + 1;\n      *pbVar7 = 0;\n      if ((param_3 & 0x10000) != 0) goto LAB_000b8134;\n    }\n    else {\n      pbVar7 = pbVar5;\n      if ((*param_4 != 0) && (pbVar7 = param_4, uVar14 == 0)) {\n        pbVar7 = pbVar5;\n      }\n      sVar4 = strcspn((char *)__s,(char *)pbVar7);\n      pbVar7 = __s + sVar4;\nLAB_000b8008:\n      bVar2 = *pbVar7;\n      if (uVar14 == 0) goto LAB_000b80e2;\n      bVar10 = *param_4;\nLAB_000b801c:\n      if (bVar10 != bVar2) goto LAB_000b80e2;\n      *pbVar7 = 0;\n      __s = pbVar7;\nLAB_000b80e8:\n      if ((param_3 & 0x10000) == 0) break;\nLAB_000b8134:\n      sVar4 = strspn((char *)__s,(char *)pbVar5);\n      __s = __s + sVar4;\n    }" if (parenthesized_expression "((iVar6 == uVar12 - 1) && ((param_3 & 0x40000) != 0))" ( (binary_expression "(iVar6 == uVar12 - 1) && ((param_3 & 0x40000) != 0)" (parenthesized_expression "(iVar6 == uVar12 - 1)" ( (binary_expression "iVar6 == uVar12 - 1" identifier == (binary_expression "uVar12 - 1" identifier - number_literal)) )) && (parenthesized_expression "((param_3 & 0x40000) != 0)" ( (binary_expression "(param_3 & 0x40000) != 0" (parenthesized_expression "(param_3 & 0x40000)" ( (binary_expression "param_3 & 0x40000" identifier & number_literal) )) != number_literal) ))) )) (compound_statement "{\n      if (uVar14 != 0) {\n        bVar10 = *param_4;\n        pbVar7 = (byte *)strchrnul((char *)__s,(uint)bVar10);\n        if (uVar13 != 0) goto LAB_000b80a9;\n        bVar2 = *pbVar7;\n        goto LAB_000b801c;\n      }\n      pbVar7 = (byte *)strchrnul((char *)__s,0);\n      if (uVar13 != 0) {\nLAB_000b80a9:\n        while (pcVar8 = strchr((char *)pbVar5,(uint)pbVar7[-1]), pcVar8 != (char *)0x0) {\n          pbVar7 = pbVar7 + -1;\n        }\n        goto LAB_000b8008;\n      }\n      bVar2 = *pbVar7;\nLAB_000b80e2:\n      __s = pbVar7;\n      if (bVar2 == 0) goto LAB_000b80e8;\n      __s = pbVar7 + 1;\n      *pbVar7 = 0;\n      if ((param_3 & 0x10000) != 0) goto LAB_000b8134;\n    }" { (if_statement "if (uVar14 != 0) {\n        bVar10 = *param_4;\n        pbVar7 = (byte *)strchrnul((char *)__s,(uint)bVar10);\n        if (uVar13 != 0) goto LAB_000b80a9;\n        bVar2 = *pbVar7;\n        goto LAB_000b801c;\n      }" if (parenthesized_expression "(uVar14 != 0)" ( (binary_expression "uVar14 != 0" identifier != number_literal) )) (compound_statement "{\n        bVar10 = *param_4;\n        pbVar7 = (byte *)strchrnul((char *)__s,(uint)bVar10);\n        if (uVar13 != 0) goto LAB_000b80a9;\n        bVar2 = *pbVar7;\n        goto LAB_000b801c;\n      }" { (expression_statement "bVar10 = *param_4;" (assignment_expression "bVar10 = *param_4" identifier = (pointer_expression "*param_4" * identifier)) ;) (expression_statement "pbVar7 = (byte *)strchrnul((char *)__s,(uint)bVar10);" (assignment_expression "pbVar7 = (byte *)strchrnul((char *)__s,(uint)bVar10)" identifier = (cast_expression "(byte *)strchrnul((char *)__s,(uint)bVar10)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "strchrnul((char *)__s,(uint)bVar10)" identifier (argument_list "((char *)__s,(uint)bVar10)" ( (cast_expression "(char *)__s" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(uint)bVar10" ( (type_descriptor "uint" type_identifier) ) identifier) ))))) ;) (if_statement "if (uVar13 != 0) goto LAB_000b80a9;" if (parenthesized_expression "(uVar13 != 0)" ( (binary_expression "uVar13 != 0" identifier != number_literal) )) (goto_statement "goto LAB_000b80a9;" goto statement_identifier ;)) (expression_statement "bVar2 = *pbVar7;" (assignment_expression "bVar2 = *pbVar7" identifier = (pointer_expression "*pbVar7" * identifier)) ;) (goto_statement "goto LAB_000b801c;" goto statement_identifier ;) })) (expression_statement "pbVar7 = (byte *)strchrnul((char *)__s,0);" (assignment_expression "pbVar7 = (byte *)strchrnul((char *)__s,0)" identifier = (cast_expression "(byte *)strchrnul((char *)__s,0)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "strchrnul((char *)__s,0)" identifier (argument_list "((char *)__s,0)" ( (cast_expression "(char *)__s" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , number_literal ))))) ;) (if_statement "if (uVar13 != 0) {\nLAB_000b80a9:\n        while (pcVar8 = strchr((char *)pbVar5,(uint)pbVar7[-1]), pcVar8 != (char *)0x0) {\n          pbVar7 = pbVar7 + -1;\n        }\n        goto LAB_000b8008;\n      }" if (parenthesized_expression "(uVar13 != 0)" ( (binary_expression "uVar13 != 0" identifier != number_literal) )) (compound_statement "{\nLAB_000b80a9:\n        while (pcVar8 = strchr((char *)pbVar5,(uint)pbVar7[-1]), pcVar8 != (char *)0x0) {\n          pbVar7 = pbVar7 + -1;\n        }\n        goto LAB_000b8008;\n      }" { (labeled_statement "LAB_000b80a9:\n        while (pcVar8 = strchr((char *)pbVar5,(uint)pbVar7[-1]), pcVar8 != (char *)0x0) {\n          pbVar7 = pbVar7 + -1;\n        }" statement_identifier : (while_statement "while (pcVar8 = strchr((char *)pbVar5,(uint)pbVar7[-1]), pcVar8 != (char *)0x0) {\n          pbVar7 = pbVar7 + -1;\n        }" while (parenthesized_expression "(pcVar8 = strchr((char *)pbVar5,(uint)pbVar7[-1]), pcVar8 != (char *)0x0)" ( (comma_expression "pcVar8 = strchr((char *)pbVar5,(uint)pbVar7[-1]), pcVar8 != (char *)0x0" (assignment_expression "pcVar8 = strchr((char *)pbVar5,(uint)pbVar7[-1])" identifier = (call_expression "strchr((char *)pbVar5,(uint)pbVar7[-1])" identifier (argument_list "((char *)pbVar5,(uint)pbVar7[-1])" ( (cast_expression "(char *)pbVar5" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(uint)pbVar7[-1]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pbVar7[-1]" identifier [ number_literal ])) )))) , (binary_expression "pcVar8 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) )) (compound_statement "{\n          pbVar7 = pbVar7 + -1;\n        }" { (expression_statement "pbVar7 = pbVar7 + -1;" (assignment_expression "pbVar7 = pbVar7 + -1" identifier = (binary_expression "pbVar7 + -1" identifier + number_literal)) ;) }))) (goto_statement "goto LAB_000b8008;" goto statement_identifier ;) })) (expression_statement "bVar2 = *pbVar7;" (assignment_expression "bVar2 = *pbVar7" identifier = (pointer_expression "*pbVar7" * identifier)) ;) (labeled_statement "LAB_000b80e2:\n      __s = pbVar7;" statement_identifier : (expression_statement "__s = pbVar7;" (assignment_expression "__s = pbVar7" identifier = identifier) ;)) (if_statement "if (bVar2 == 0) goto LAB_000b80e8;" if (parenthesized_expression "(bVar2 == 0)" ( (binary_expression "bVar2 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000b80e8;" goto statement_identifier ;)) (expression_statement "__s = pbVar7 + 1;" (assignment_expression "__s = pbVar7 + 1" identifier = (binary_expression "pbVar7 + 1" identifier + number_literal)) ;) (expression_statement "*pbVar7 = 0;" (assignment_expression "*pbVar7 = 0" (pointer_expression "*pbVar7" * identifier) = number_literal) ;) (if_statement "if ((param_3 & 0x10000) != 0) goto LAB_000b8134;" if (parenthesized_expression "((param_3 & 0x10000) != 0)" ( (binary_expression "(param_3 & 0x10000) != 0" (parenthesized_expression "(param_3 & 0x10000)" ( (binary_expression "param_3 & 0x10000" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_000b8134;" goto statement_identifier ;)) }) (else_clause "else {\n      pbVar7 = pbVar5;\n      if ((*param_4 != 0) && (pbVar7 = param_4, uVar14 == 0)) {\n        pbVar7 = pbVar5;\n      }\n      sVar4 = strcspn((char *)__s,(char *)pbVar7);\n      pbVar7 = __s + sVar4;\nLAB_000b8008:\n      bVar2 = *pbVar7;\n      if (uVar14 == 0) goto LAB_000b80e2;\n      bVar10 = *param_4;\nLAB_000b801c:\n      if (bVar10 != bVar2) goto LAB_000b80e2;\n      *pbVar7 = 0;\n      __s = pbVar7;\nLAB_000b80e8:\n      if ((param_3 & 0x10000) == 0) break;\nLAB_000b8134:\n      sVar4 = strspn((char *)__s,(char *)pbVar5);\n      __s = __s + sVar4;\n    }" else (compound_statement "{\n      pbVar7 = pbVar5;\n      if ((*param_4 != 0) && (pbVar7 = param_4, uVar14 == 0)) {\n        pbVar7 = pbVar5;\n      }\n      sVar4 = strcspn((char *)__s,(char *)pbVar7);\n      pbVar7 = __s + sVar4;\nLAB_000b8008:\n      bVar2 = *pbVar7;\n      if (uVar14 == 0) goto LAB_000b80e2;\n      bVar10 = *param_4;\nLAB_000b801c:\n      if (bVar10 != bVar2) goto LAB_000b80e2;\n      *pbVar7 = 0;\n      __s = pbVar7;\nLAB_000b80e8:\n      if ((param_3 & 0x10000) == 0) break;\nLAB_000b8134:\n      sVar4 = strspn((char *)__s,(char *)pbVar5);\n      __s = __s + sVar4;\n    }" { (expression_statement "pbVar7 = pbVar5;" (assignment_expression "pbVar7 = pbVar5" identifier = identifier) ;) (if_statement "if ((*param_4 != 0) && (pbVar7 = param_4, uVar14 == 0)) {\n        pbVar7 = pbVar5;\n      }" if (parenthesized_expression "((*param_4 != 0) && (pbVar7 = param_4, uVar14 == 0))" ( (binary_expression "(*param_4 != 0) && (pbVar7 = param_4, uVar14 == 0)" (parenthesized_expression "(*param_4 != 0)" ( (binary_expression "*param_4 != 0" (pointer_expression "*param_4" * identifier) != number_literal) )) && (parenthesized_expression "(pbVar7 = param_4, uVar14 == 0)" ( (comma_expression "pbVar7 = param_4, uVar14 == 0" (assignment_expression "pbVar7 = param_4" identifier = identifier) , (binary_expression "uVar14 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n        pbVar7 = pbVar5;\n      }" { (expression_statement "pbVar7 = pbVar5;" (assignment_expression "pbVar7 = pbVar5" identifier = identifier) ;) })) (expression_statement "sVar4 = strcspn((char *)__s,(char *)pbVar7);" (assignment_expression "sVar4 = strcspn((char *)__s,(char *)pbVar7)" identifier = (call_expression "strcspn((char *)__s,(char *)pbVar7)" identifier (argument_list "((char *)__s,(char *)pbVar7)" ( (cast_expression "(char *)__s" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(char *)pbVar7" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (expression_statement "pbVar7 = __s + sVar4;" (assignment_expression "pbVar7 = __s + sVar4" identifier = (binary_expression "__s + sVar4" identifier + identifier)) ;) (labeled_statement "LAB_000b8008:\n      bVar2 = *pbVar7;" statement_identifier : (expression_statement "bVar2 = *pbVar7;" (assignment_expression "bVar2 = *pbVar7" identifier = (pointer_expression "*pbVar7" * identifier)) ;)) (if_statement "if (uVar14 == 0) goto LAB_000b80e2;" if (parenthesized_expression "(uVar14 == 0)" ( (binary_expression "uVar14 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000b80e2;" goto statement_identifier ;)) (expression_statement "bVar10 = *param_4;" (assignment_expression "bVar10 = *param_4" identifier = (pointer_expression "*param_4" * identifier)) ;) (labeled_statement "LAB_000b801c:\n      if (bVar10 != bVar2) goto LAB_000b80e2;" statement_identifier : (if_statement "if (bVar10 != bVar2) goto LAB_000b80e2;" if (parenthesized_expression "(bVar10 != bVar2)" ( (binary_expression "bVar10 != bVar2" identifier != identifier) )) (goto_statement "goto LAB_000b80e2;" goto statement_identifier ;))) (expression_statement "*pbVar7 = 0;" (assignment_expression "*pbVar7 = 0" (pointer_expression "*pbVar7" * identifier) = number_literal) ;) (expression_statement "__s = pbVar7;" (assignment_expression "__s = pbVar7" identifier = identifier) ;) (labeled_statement "LAB_000b80e8:\n      if ((param_3 & 0x10000) == 0) break;" statement_identifier : (if_statement "if ((param_3 & 0x10000) == 0) break;" if (parenthesized_expression "((param_3 & 0x10000) == 0)" ( (binary_expression "(param_3 & 0x10000) == 0" (parenthesized_expression "(param_3 & 0x10000)" ( (binary_expression "param_3 & 0x10000" identifier & number_literal) )) == number_literal) )) (break_statement "break;" break ;))) (labeled_statement "LAB_000b8134:\n      sVar4 = strspn((char *)__s,(char *)pbVar5);" statement_identifier : (expression_statement "sVar4 = strspn((char *)__s,(char *)pbVar5);" (assignment_expression "sVar4 = strspn((char *)__s,(char *)pbVar5)" identifier = (call_expression "strspn((char *)__s,(char *)pbVar5)" identifier (argument_list "((char *)__s,(char *)pbVar5)" ( (cast_expression "(char *)__s" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(char *)pbVar5" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;)) (expression_statement "__s = __s + sVar4;" (assignment_expression "__s = __s + sVar4" identifier = (binary_expression "__s + sVar4" identifier + identifier)) ;) }))) (if_statement "if (((*__s == 0) || (*__s == *param_4)) || (iVar3 = iVar6 + 1, (int)uVar12 <= iVar6 + 1)) break;" if (parenthesized_expression "(((*__s == 0) || (*__s == *param_4)) || (iVar3 = iVar6 + 1, (int)uVar12 <= iVar6 + 1))" ( (binary_expression "((*__s == 0) || (*__s == *param_4)) || (iVar3 = iVar6 + 1, (int)uVar12 <= iVar6 + 1)" (parenthesized_expression "((*__s == 0) || (*__s == *param_4))" ( (binary_expression "(*__s == 0) || (*__s == *param_4)" (parenthesized_expression "(*__s == 0)" ( (binary_expression "*__s == 0" (pointer_expression "*__s" * identifier) == number_literal) )) || (parenthesized_expression "(*__s == *param_4)" ( (binary_expression "*__s == *param_4" (pointer_expression "*__s" * identifier) == (pointer_expression "*param_4" * identifier)) ))) )) || (parenthesized_expression "(iVar3 = iVar6 + 1, (int)uVar12 <= iVar6 + 1)" ( (comma_expression "iVar3 = iVar6 + 1, (int)uVar12 <= iVar6 + 1" (assignment_expression "iVar3 = iVar6 + 1" identifier = (binary_expression "iVar6 + 1" identifier + number_literal)) , (binary_expression "(int)uVar12 <= iVar6 + 1" (cast_expression "(int)uVar12" ( (type_descriptor "int" primitive_type) ) identifier) <= (binary_expression "iVar6 + 1" identifier + number_literal))) ))) )) (break_statement "break;" break ;)) }) while (parenthesized_expression "( true )" ( true )) ;) (expression_statement "iVar6 = iVar6 + 1;" (assignment_expression "iVar6 = iVar6 + 1" identifier = (binary_expression "iVar6 + 1" identifier + number_literal)) ;) (if_statement "if ((int)uVar16 <= iVar6) {\n    return iVar6;\n  }" if (parenthesized_expression "((int)uVar16 <= iVar6)" ( (binary_expression "(int)uVar16 <= iVar6" (cast_expression "(int)uVar16" ( (type_descriptor "int" primitive_type) ) identifier) <= identifier) )) (compound_statement "{\n    return iVar6;\n  }" { (return_statement "return iVar6;" return identifier ;) })) (expression_statement "FUN_0001930a("bad line %u: %d tokens found, %d needed",param_1[6],iVar6,uVar16);" (call_expression "FUN_0001930a("bad line %u: %d tokens found, %d needed",param_1[6],iVar6,uVar16)" identifier (argument_list "("bad line %u: %d tokens found, %d needed",param_1[6],iVar6,uVar16)" ( (string_literal ""bad line %u: %d tokens found, %d needed"" " string_content ") , (subscript_expression "param_1[6]" identifier [ number_literal ]) , identifier , identifier ))) ;) (expression_statement "iVar3 = iVar1;" (assignment_expression "iVar3 = iVar1" identifier = identifier) ;) (if_statement "if ((param_3 & 0x100000) != 0) {\n                    \n    FUN_00019401();\n  }" if (parenthesized_expression "((param_3 & 0x100000) != 0)" ( (binary_expression "(param_3 & 0x100000) != 0" (parenthesized_expression "(param_3 & 0x100000)" ( (binary_expression "param_3 & 0x100000" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                    \n    FUN_00019401();\n  }" { (expression_statement "FUN_00019401();" (call_expression "FUN_00019401()" identifier (argument_list "()" ( ))) ;) })) (goto_statement "goto code_r0x000b7f52;" goto statement_identifier ;) })))
(translation_unit (function_definition TYPE (ERROR IDENT) (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT >> LIT) & LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT * LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (labeled_statement statement_identifier : (do_statement do (compound_statement { (for_statement for ( ; (binary_expression IDENT != LIT) ; (assignment_expression IDENT = (binary_expression IDENT + LIT)) ) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))) , (binary_expression IDENT + LIT) , LIT , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (subscript_expression IDENT [ LIT ]) + LIT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ (binary_expression IDENT + LIT) ])) ;) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ (binary_expression IDENT + LIT) ])) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))) , (binary_expression IDENT + LIT) , LIT , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) < (binary_expression IDENT + LIT)) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (for_statement for ( ; (binary_expression IDENT != LIT) ; (assignment_expression IDENT = (binary_expression IDENT + LIT)) ) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (subscript_expression IDENT [ LIT ]) + LIT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ (binary_expression IDENT + LIT) ])) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * IDENT)) ))) )) || (parenthesized_expression ( (binary_expression IDENT == IDENT) ))) )) ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) )))) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (binary_expression IDENT - LIT)) )) && (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) , (cast_expression ( (type_descriptor TYPE) ) IDENT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) , LIT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (labeled_statement statement_identifier : (while_statement while (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) , (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) )))) , (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }))) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression IDENT == LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (goto_statement goto statement_identifier ;))) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (break_statement break ;))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) )))) ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) || (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT)) ))) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (binary_expression IDENT + LIT)) , (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) <= (binary_expression IDENT + LIT))) ))) )) (break_statement break ;)) }) while (parenthesized_expression ( BOOL )) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) <= IDENT) )) (compound_statement { (return_statement return IDENT ;) })) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , (subscript_expression IDENT [ LIT ]) , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (goto_statement goto statement_identifier ;) })))
(function_definition "int __regparm3 FUN_000b7e95(undefined4 *param_1,undefined1 *param_2,uint param_3,byte *param_4)\n\n{\n  int iVar1;\n  byte bVar2;\n  int iVar3;\n  size_t sVar4;\n  byte *pbVar5;\n  int iVar6;\n  byte *pbVar7;\n  char *pcVar8;\n  __ssize_t _Var9;\n  byte bVar10;\n  char cVar11;\n  uint uVar12;\n  uint uVar13;\n  uint uVar14;\n  byte *__s;\n  undefined1 *puVar15;\n  uint uVar16;\n  undefined1 *puVar17;\n  byte bVar18;\n  undefined1 *local_64;\n  byte local_4d;\n  \n  bVar18 = 0;\n  if (param_1 == (undefined4 *)0x0) {\n    return 0;\n  }\n  local_4d = 0;\n  if ((param_3 & 0x800000) != 0) {\n    local_4d = *param_4;\n    param_4 = param_4 + 1;\n  }\n  uVar12 = param_3 & 0xff;\n  uVar16 = param_3 >> 8 & 0xff;\n  iVar1 = uVar12 * 4;\n  uVar13 = param_3 & 0x20000;\n  uVar14 = param_3 & 0x400000;\n  iVar3 = iVar1;\n  puVar15 = param_2;\ncode_r0x000b7f52:\n  do {\n    for (; iVar3 != 0; iVar3 = iVar3 + -1) {\n      *puVar15 = 0;\n      puVar15 = puVar15 + (uint)bVar18 * -2 + 1;\n    }\n    iVar3 = __getdelim((char **)(param_1 + 2),param_1 + 4,10,(FILE *)*param_1);\n    if (iVar3 < 1) {\n      if (iVar3 != 0) {\n        return 0;\n      }\n      __s = (byte *)param_1[2];\n    }\n    else {\n      local_64 = (undefined1 *)param_1[2];\n      param_1[6] = param_1[6] + 1;\n      cVar11 = local_64[iVar3 + -1];\n      while( true ) {\n        iVar6 = iVar3;\n        if (cVar11 == '\n') {\n          iVar6 = iVar3 + -1;\n          if (iVar6 == 0) goto LAB_000b81a6;\n          cVar11 = local_64[iVar3 + -2];\n        }\n        if (cVar11 != '\\') {\n          local_64 = local_64 + iVar6;\n          goto LAB_000b81a6;\n        }\n        iVar6 = iVar6 + -1;\n        _Var9 = __getdelim((char **)(param_1 + 3),param_1 + 5,10,(FILE *)*param_1);\n        if (_Var9 < 1) break;\n        iVar3 = iVar6 + _Var9;\n        if ((uint)param_1[4] < iVar3 + 1U) {\n          param_1[4] = iVar3 + 1U;\n          local_64 = (undefined1 *)FUN_0001a2be();\n          param_1[2] = local_64;\n        }\n        puVar15 = (undefined1 *)param_1[3];\n        puVar17 = local_64 + iVar6;\n        for (; _Var9 != 0; _Var9 = _Var9 + -1) {\n          *puVar17 = *puVar15;\n          puVar15 = puVar15 + (uint)bVar18 * -2 + 1;\n          puVar17 = puVar17 + (uint)bVar18 * -2 + 1;\n        }\n        param_1[6] = param_1[6] + 1;\n        cVar11 = local_64[iVar3 + -1];\n      }\n      local_64 = local_64 + iVar6;\nLAB_000b81a6:\n      *local_64 = 0;\n      __s = (byte *)param_1[2];\n    }\n    if (uVar13 != 0) {\n      sVar4 = strspn((char *)__s,(char *)(param_4 + 1));\n      __s = __s + sVar4;\n    }\n    pbVar5 = __s;\n    if ((param_3 & 0x1000000) != 0) {\n      pbVar5 = (byte *)FUN_00019041();\n    }\n    bVar10 = *pbVar5;\n    iVar3 = iVar1;\n    puVar15 = param_2;\n  } while (((bVar10 == 0) || (bVar10 == *param_4)) || (bVar10 == local_4d));\n  pbVar5 = param_4 + 1;\n  iVar3 = 0;\n  do {\n    iVar6 = iVar3;\n    *(byte **)(param_2 + iVar6 * 4) = __s;\n    if ((iVar6 == uVar12 - 1) && ((param_3 & 0x40000) != 0)) {\n      if (uVar14 != 0) {\n        bVar10 = *param_4;\n        pbVar7 = (byte *)strchrnul((char *)__s,(uint)bVar10);\n        if (uVar13 != 0) goto LAB_000b80a9;\n        bVar2 = *pbVar7;\n        goto LAB_000b801c;\n      }\n      pbVar7 = (byte *)strchrnul((char *)__s,0);\n      if (uVar13 != 0) {\nLAB_000b80a9:\n        while (pcVar8 = strchr((char *)pbVar5,(uint)pbVar7[-1]), pcVar8 != (char *)0x0) {\n          pbVar7 = pbVar7 + -1;\n        }\n        goto LAB_000b8008;\n      }\n      bVar2 = *pbVar7;\nLAB_000b80e2:\n      __s = pbVar7;\n      if (bVar2 == 0) goto LAB_000b80e8;\n      __s = pbVar7 + 1;\n      *pbVar7 = 0;\n      if ((param_3 & 0x10000) != 0) goto LAB_000b8134;\n    }\n    else {\n      pbVar7 = pbVar5;\n      if ((*param_4 != 0) && (pbVar7 = param_4, uVar14 == 0)) {\n        pbVar7 = pbVar5;\n      }\n      sVar4 = strcspn((char *)__s,(char *)pbVar7);\n      pbVar7 = __s + sVar4;\nLAB_000b8008:\n      bVar2 = *pbVar7;\n      if (uVar14 == 0) goto LAB_000b80e2;\n      bVar10 = *param_4;\nLAB_000b801c:\n      if (bVar10 != bVar2) goto LAB_000b80e2;\n      *pbVar7 = 0;\n      __s = pbVar7;\nLAB_000b80e8:\n      if ((param_3 & 0x10000) == 0) break;\nLAB_000b8134:\n      sVar4 = strspn((char *)__s,(char *)pbVar5);\n      __s = __s + sVar4;\n    }\n    if (((*__s == 0) || (*__s == *param_4)) || (iVar3 = iVar6 + 1, (int)uVar12 <= iVar6 + 1)) break;\n  } while( true );\n  iVar6 = iVar6 + 1;\n  if ((int)uVar16 <= iVar6) {\n    return iVar6;\n  }\n  FUN_0001930a("bad line %u: %d tokens found, %d needed",param_1[6],iVar6,uVar16);\n  iVar3 = iVar1;\n  if ((param_3 & 0x100000) != 0) {\n                    \n    FUN_00019401();\n  }\n  goto code_r0x000b7f52;\n}" (primitive_type "int") (ERROR "__regparm3" (identifier "__regparm3")) (function_declarator "FUN_000b7e95(undefined4 *param_1,undefined1 *param_2,uint param_3,byte *param_4)" (identifier "FUN_000b7e95") (parameter_list "(undefined4 *param_1,undefined1 *param_2,uint param_3,byte *param_4)" (( "(") (parameter_declaration "undefined4 *param_1" (type_identifier "undefined4") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "undefined1 *param_2" (type_identifier "undefined1") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) (, ",") (parameter_declaration "uint param_3" (type_identifier "uint") (identifier "param_3")) (, ",") (parameter_declaration "byte *param_4" (type_identifier "byte") (pointer_declarator "*param_4" (* "*") (identifier "param_4"))) () ")"))) (compound_statement "{\n  int iVar1;\n  byte bVar2;\n  int iVar3;\n  size_t sVar4;\n  byte *pbVar5;\n  int iVar6;\n  byte *pbVar7;\n  char *pcVar8;\n  __ssize_t _Var9;\n  byte bVar10;\n  char cVar11;\n  uint uVar12;\n  uint uVar13;\n  uint uVar14;\n  byte *__s;\n  undefined1 *puVar15;\n  uint uVar16;\n  undefined1 *puVar17;\n  byte bVar18;\n  undefined1 *local_64;\n  byte local_4d;\n  \n  bVar18 = 0;\n  if (param_1 == (undefined4 *)0x0) {\n    return 0;\n  }\n  local_4d = 0;\n  if ((param_3 & 0x800000) != 0) {\n    local_4d = *param_4;\n    param_4 = param_4 + 1;\n  }\n  uVar12 = param_3 & 0xff;\n  uVar16 = param_3 >> 8 & 0xff;\n  iVar1 = uVar12 * 4;\n  uVar13 = param_3 & 0x20000;\n  uVar14 = param_3 & 0x400000;\n  iVar3 = iVar1;\n  puVar15 = param_2;\ncode_r0x000b7f52:\n  do {\n    for (; iVar3 != 0; iVar3 = iVar3 + -1) {\n      *puVar15 = 0;\n      puVar15 = puVar15 + (uint)bVar18 * -2 + 1;\n    }\n    iVar3 = __getdelim((char **)(param_1 + 2),param_1 + 4,10,(FILE *)*param_1);\n    if (iVar3 < 1) {\n      if (iVar3 != 0) {\n        return 0;\n      }\n      __s = (byte *)param_1[2];\n    }\n    else {\n      local_64 = (undefined1 *)param_1[2];\n      param_1[6] = param_1[6] + 1;\n      cVar11 = local_64[iVar3 + -1];\n      while( true ) {\n        iVar6 = iVar3;\n        if (cVar11 == '\n') {\n          iVar6 = iVar3 + -1;\n          if (iVar6 == 0) goto LAB_000b81a6;\n          cVar11 = local_64[iVar3 + -2];\n        }\n        if (cVar11 != '\\') {\n          local_64 = local_64 + iVar6;\n          goto LAB_000b81a6;\n        }\n        iVar6 = iVar6 + -1;\n        _Var9 = __getdelim((char **)(param_1 + 3),param_1 + 5,10,(FILE *)*param_1);\n        if (_Var9 < 1) break;\n        iVar3 = iVar6 + _Var9;\n        if ((uint)param_1[4] < iVar3 + 1U) {\n          param_1[4] = iVar3 + 1U;\n          local_64 = (undefined1 *)FUN_0001a2be();\n          param_1[2] = local_64;\n        }\n        puVar15 = (undefined1 *)param_1[3];\n        puVar17 = local_64 + iVar6;\n        for (; _Var9 != 0; _Var9 = _Var9 + -1) {\n          *puVar17 = *puVar15;\n          puVar15 = puVar15 + (uint)bVar18 * -2 + 1;\n          puVar17 = puVar17 + (uint)bVar18 * -2 + 1;\n        }\n        param_1[6] = param_1[6] + 1;\n        cVar11 = local_64[iVar3 + -1];\n      }\n      local_64 = local_64 + iVar6;\nLAB_000b81a6:\n      *local_64 = 0;\n      __s = (byte *)param_1[2];\n    }\n    if (uVar13 != 0) {\n      sVar4 = strspn((char *)__s,(char *)(param_4 + 1));\n      __s = __s + sVar4;\n    }\n    pbVar5 = __s;\n    if ((param_3 & 0x1000000) != 0) {\n      pbVar5 = (byte *)FUN_00019041();\n    }\n    bVar10 = *pbVar5;\n    iVar3 = iVar1;\n    puVar15 = param_2;\n  } while (((bVar10 == 0) || (bVar10 == *param_4)) || (bVar10 == local_4d));\n  pbVar5 = param_4 + 1;\n  iVar3 = 0;\n  do {\n    iVar6 = iVar3;\n    *(byte **)(param_2 + iVar6 * 4) = __s;\n    if ((iVar6 == uVar12 - 1) && ((param_3 & 0x40000) != 0)) {\n      if (uVar14 != 0) {\n        bVar10 = *param_4;\n        pbVar7 = (byte *)strchrnul((char *)__s,(uint)bVar10);\n        if (uVar13 != 0) goto LAB_000b80a9;\n        bVar2 = *pbVar7;\n        goto LAB_000b801c;\n      }\n      pbVar7 = (byte *)strchrnul((char *)__s,0);\n      if (uVar13 != 0) {\nLAB_000b80a9:\n        while (pcVar8 = strchr((char *)pbVar5,(uint)pbVar7[-1]), pcVar8 != (char *)0x0) {\n          pbVar7 = pbVar7 + -1;\n        }\n        goto LAB_000b8008;\n      }\n      bVar2 = *pbVar7;\nLAB_000b80e2:\n      __s = pbVar7;\n      if (bVar2 == 0) goto LAB_000b80e8;\n      __s = pbVar7 + 1;\n      *pbVar7 = 0;\n      if ((param_3 & 0x10000) != 0) goto LAB_000b8134;\n    }\n    else {\n      pbVar7 = pbVar5;\n      if ((*param_4 != 0) && (pbVar7 = param_4, uVar14 == 0)) {\n        pbVar7 = pbVar5;\n      }\n      sVar4 = strcspn((char *)__s,(char *)pbVar7);\n      pbVar7 = __s + sVar4;\nLAB_000b8008:\n      bVar2 = *pbVar7;\n      if (uVar14 == 0) goto LAB_000b80e2;\n      bVar10 = *param_4;\nLAB_000b801c:\n      if (bVar10 != bVar2) goto LAB_000b80e2;\n      *pbVar7 = 0;\n      __s = pbVar7;\nLAB_000b80e8:\n      if ((param_3 & 0x10000) == 0) break;\nLAB_000b8134:\n      sVar4 = strspn((char *)__s,(char *)pbVar5);\n      __s = __s + sVar4;\n    }\n    if (((*__s == 0) || (*__s == *param_4)) || (iVar3 = iVar6 + 1, (int)uVar12 <= iVar6 + 1)) break;\n  } while( true );\n  iVar6 = iVar6 + 1;\n  if ((int)uVar16 <= iVar6) {\n    return iVar6;\n  }\n  FUN_0001930a("bad line %u: %d tokens found, %d needed",param_1[6],iVar6,uVar16);\n  iVar3 = iVar1;\n  if ((param_3 & 0x100000) != 0) {\n                    \n    FUN_00019401();\n  }\n  goto code_r0x000b7f52;\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (declaration "byte bVar2;" (type_identifier "byte") (identifier "bVar2") (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "size_t sVar4;" (primitive_type "size_t") (identifier "sVar4") (; ";")) (declaration "byte *pbVar5;" (type_identifier "byte") (pointer_declarator "*pbVar5" (* "*") (identifier "pbVar5")) (; ";")) (declaration "int iVar6;" (primitive_type "int") (identifier "iVar6") (; ";")) (declaration "byte *pbVar7;" (type_identifier "byte") (pointer_declarator "*pbVar7" (* "*") (identifier "pbVar7")) (; ";")) (declaration "char *pcVar8;" (primitive_type "char") (pointer_declarator "*pcVar8" (* "*") (identifier "pcVar8")) (; ";")) (declaration "__ssize_t _Var9;" (type_identifier "__ssize_t") (identifier "_Var9") (; ";")) (declaration "byte bVar10;" (type_identifier "byte") (identifier "bVar10") (; ";")) (declaration "char cVar11;" (primitive_type "char") (identifier "cVar11") (; ";")) (declaration "uint uVar12;" (type_identifier "uint") (identifier "uVar12") (; ";")) (declaration "uint uVar13;" (type_identifier "uint") (identifier "uVar13") (; ";")) (declaration "uint uVar14;" (type_identifier "uint") (identifier "uVar14") (; ";")) (declaration "byte *__s;" (type_identifier "byte") (pointer_declarator "*__s" (* "*") (identifier "__s")) (; ";")) (declaration "undefined1 *puVar15;" (type_identifier "undefined1") (pointer_declarator "*puVar15" (* "*") (identifier "puVar15")) (; ";")) (declaration "uint uVar16;" (type_identifier "uint") (identifier "uVar16") (; ";")) (declaration "undefined1 *puVar17;" (type_identifier "undefined1") (pointer_declarator "*puVar17" (* "*") (identifier "puVar17")) (; ";")) (declaration "byte bVar18;" (type_identifier "byte") (identifier "bVar18") (; ";")) (declaration "undefined1 *local_64;" (type_identifier "undefined1") (pointer_declarator "*local_64" (* "*") (identifier "local_64")) (; ";")) (declaration "byte local_4d;" (type_identifier "byte") (identifier "local_4d") (; ";")) (expression_statement "bVar18 = 0;" (assignment_expression "bVar18 = 0" (identifier "bVar18") (= "=") (number_literal "0")) (; ";")) (if_statement "if (param_1 == (undefined4 *)0x0) {\n    return 0;\n  }" (if "if") (parenthesized_expression "(param_1 == (undefined4 *)0x0)" (( "(") (binary_expression "param_1 == (undefined4 *)0x0" (identifier "param_1") (== "==") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    return 0;\n  }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "local_4d = 0;" (assignment_expression "local_4d = 0" (identifier "local_4d") (= "=") (number_literal "0")) (; ";")) (if_statement "if ((param_3 & 0x800000) != 0) {\n    local_4d = *param_4;\n    param_4 = param_4 + 1;\n  }" (if "if") (parenthesized_expression "((param_3 & 0x800000) != 0)" (( "(") (binary_expression "(param_3 & 0x800000) != 0" (parenthesized_expression "(param_3 & 0x800000)" (( "(") (binary_expression "param_3 & 0x800000" (identifier "param_3") (& "&") (number_literal "0x800000")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    local_4d = *param_4;\n    param_4 = param_4 + 1;\n  }" ({ "{") (expression_statement "local_4d = *param_4;" (assignment_expression "local_4d = *param_4" (identifier "local_4d") (= "=") (pointer_expression "*param_4" (* "*") (identifier "param_4"))) (; ";")) (expression_statement "param_4 = param_4 + 1;" (assignment_expression "param_4 = param_4 + 1" (identifier "param_4") (= "=") (binary_expression "param_4 + 1" (identifier "param_4") (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (expression_statement "uVar12 = param_3 & 0xff;" (assignment_expression "uVar12 = param_3 & 0xff" (identifier "uVar12") (= "=") (binary_expression "param_3 & 0xff" (identifier "param_3") (& "&") (number_literal "0xff"))) (; ";")) (expression_statement "uVar16 = param_3 >> 8 & 0xff;" (assignment_expression "uVar16 = param_3 >> 8 & 0xff" (identifier "uVar16") (= "=") (binary_expression "param_3 >> 8 & 0xff" (binary_expression "param_3 >> 8" (identifier "param_3") (>> ">>") (number_literal "8")) (& "&") (number_literal "0xff"))) (; ";")) (expression_statement "iVar1 = uVar12 * 4;" (assignment_expression "iVar1 = uVar12 * 4" (identifier "iVar1") (= "=") (binary_expression "uVar12 * 4" (identifier "uVar12") (* "*") (number_literal "4"))) (; ";")) (expression_statement "uVar13 = param_3 & 0x20000;" (assignment_expression "uVar13 = param_3 & 0x20000" (identifier "uVar13") (= "=") (binary_expression "param_3 & 0x20000" (identifier "param_3") (& "&") (number_literal "0x20000"))) (; ";")) (expression_statement "uVar14 = param_3 & 0x400000;" (assignment_expression "uVar14 = param_3 & 0x400000" (identifier "uVar14") (= "=") (binary_expression "param_3 & 0x400000" (identifier "param_3") (& "&") (number_literal "0x400000"))) (; ";")) (expression_statement "iVar3 = iVar1;" (assignment_expression "iVar3 = iVar1" (identifier "iVar3") (= "=") (identifier "iVar1")) (; ";")) (expression_statement "puVar15 = param_2;" (assignment_expression "puVar15 = param_2" (identifier "puVar15") (= "=") (identifier "param_2")) (; ";")) (labeled_statement "code_r0x000b7f52:\n  do {\n    for (; iVar3 != 0; iVar3 = iVar3 + -1) {\n      *puVar15 = 0;\n      puVar15 = puVar15 + (uint)bVar18 * -2 + 1;\n    }\n    iVar3 = __getdelim((char **)(param_1 + 2),param_1 + 4,10,(FILE *)*param_1);\n    if (iVar3 < 1) {\n      if (iVar3 != 0) {\n        return 0;\n      }\n      __s = (byte *)param_1[2];\n    }\n    else {\n      local_64 = (undefined1 *)param_1[2];\n      param_1[6] = param_1[6] + 1;\n      cVar11 = local_64[iVar3 + -1];\n      while( true ) {\n        iVar6 = iVar3;\n        if (cVar11 == '\n') {\n          iVar6 = iVar3 + -1;\n          if (iVar6 == 0) goto LAB_000b81a6;\n          cVar11 = local_64[iVar3 + -2];\n        }\n        if (cVar11 != '\\') {\n          local_64 = local_64 + iVar6;\n          goto LAB_000b81a6;\n        }\n        iVar6 = iVar6 + -1;\n        _Var9 = __getdelim((char **)(param_1 + 3),param_1 + 5,10,(FILE *)*param_1);\n        if (_Var9 < 1) break;\n        iVar3 = iVar6 + _Var9;\n        if ((uint)param_1[4] < iVar3 + 1U) {\n          param_1[4] = iVar3 + 1U;\n          local_64 = (undefined1 *)FUN_0001a2be();\n          param_1[2] = local_64;\n        }\n        puVar15 = (undefined1 *)param_1[3];\n        puVar17 = local_64 + iVar6;\n        for (; _Var9 != 0; _Var9 = _Var9 + -1) {\n          *puVar17 = *puVar15;\n          puVar15 = puVar15 + (uint)bVar18 * -2 + 1;\n          puVar17 = puVar17 + (uint)bVar18 * -2 + 1;\n        }\n        param_1[6] = param_1[6] + 1;\n        cVar11 = local_64[iVar3 + -1];\n      }\n      local_64 = local_64 + iVar6;\nLAB_000b81a6:\n      *local_64 = 0;\n      __s = (byte *)param_1[2];\n    }\n    if (uVar13 != 0) {\n      sVar4 = strspn((char *)__s,(char *)(param_4 + 1));\n      __s = __s + sVar4;\n    }\n    pbVar5 = __s;\n    if ((param_3 & 0x1000000) != 0) {\n      pbVar5 = (byte *)FUN_00019041();\n    }\n    bVar10 = *pbVar5;\n    iVar3 = iVar1;\n    puVar15 = param_2;\n  } while (((bVar10 == 0) || (bVar10 == *param_4)) || (bVar10 == local_4d));" (statement_identifier "code_r0x000b7f52") (: ":") (do_statement "do {\n    for (; iVar3 != 0; iVar3 = iVar3 + -1) {\n      *puVar15 = 0;\n      puVar15 = puVar15 + (uint)bVar18 * -2 + 1;\n    }\n    iVar3 = __getdelim((char **)(param_1 + 2),param_1 + 4,10,(FILE *)*param_1);\n    if (iVar3 < 1) {\n      if (iVar3 != 0) {\n        return 0;\n      }\n      __s = (byte *)param_1[2];\n    }\n    else {\n      local_64 = (undefined1 *)param_1[2];\n      param_1[6] = param_1[6] + 1;\n      cVar11 = local_64[iVar3 + -1];\n      while( true ) {\n        iVar6 = iVar3;\n        if (cVar11 == '\n') {\n          iVar6 = iVar3 + -1;\n          if (iVar6 == 0) goto LAB_000b81a6;\n          cVar11 = local_64[iVar3 + -2];\n        }\n        if (cVar11 != '\\') {\n          local_64 = local_64 + iVar6;\n          goto LAB_000b81a6;\n        }\n        iVar6 = iVar6 + -1;\n        _Var9 = __getdelim((char **)(param_1 + 3),param_1 + 5,10,(FILE *)*param_1);\n        if (_Var9 < 1) break;\n        iVar3 = iVar6 + _Var9;\n        if ((uint)param_1[4] < iVar3 + 1U) {\n          param_1[4] = iVar3 + 1U;\n          local_64 = (undefined1 *)FUN_0001a2be();\n          param_1[2] = local_64;\n        }\n        puVar15 = (undefined1 *)param_1[3];\n        puVar17 = local_64 + iVar6;\n        for (; _Var9 != 0; _Var9 = _Var9 + -1) {\n          *puVar17 = *puVar15;\n          puVar15 = puVar15 + (uint)bVar18 * -2 + 1;\n          puVar17 = puVar17 + (uint)bVar18 * -2 + 1;\n        }\n        param_1[6] = param_1[6] + 1;\n        cVar11 = local_64[iVar3 + -1];\n      }\n      local_64 = local_64 + iVar6;\nLAB_000b81a6:\n      *local_64 = 0;\n      __s = (byte *)param_1[2];\n    }\n    if (uVar13 != 0) {\n      sVar4 = strspn((char *)__s,(char *)(param_4 + 1));\n      __s = __s + sVar4;\n    }\n    pbVar5 = __s;\n    if ((param_3 & 0x1000000) != 0) {\n      pbVar5 = (byte *)FUN_00019041();\n    }\n    bVar10 = *pbVar5;\n    iVar3 = iVar1;\n    puVar15 = param_2;\n  } while (((bVar10 == 0) || (bVar10 == *param_4)) || (bVar10 == local_4d));" (do "do") (compound_statement "{\n    for (; iVar3 != 0; iVar3 = iVar3 + -1) {\n      *puVar15 = 0;\n      puVar15 = puVar15 + (uint)bVar18 * -2 + 1;\n    }\n    iVar3 = __getdelim((char **)(param_1 + 2),param_1 + 4,10,(FILE *)*param_1);\n    if (iVar3 < 1) {\n      if (iVar3 != 0) {\n        return 0;\n      }\n      __s = (byte *)param_1[2];\n    }\n    else {\n      local_64 = (undefined1 *)param_1[2];\n      param_1[6] = param_1[6] + 1;\n      cVar11 = local_64[iVar3 + -1];\n      while( true ) {\n        iVar6 = iVar3;\n        if (cVar11 == '\n') {\n          iVar6 = iVar3 + -1;\n          if (iVar6 == 0) goto LAB_000b81a6;\n          cVar11 = local_64[iVar3 + -2];\n        }\n        if (cVar11 != '\\') {\n          local_64 = local_64 + iVar6;\n          goto LAB_000b81a6;\n        }\n        iVar6 = iVar6 + -1;\n        _Var9 = __getdelim((char **)(param_1 + 3),param_1 + 5,10,(FILE *)*param_1);\n        if (_Var9 < 1) break;\n        iVar3 = iVar6 + _Var9;\n        if ((uint)param_1[4] < iVar3 + 1U) {\n          param_1[4] = iVar3 + 1U;\n          local_64 = (undefined1 *)FUN_0001a2be();\n          param_1[2] = local_64;\n        }\n        puVar15 = (undefined1 *)param_1[3];\n        puVar17 = local_64 + iVar6;\n        for (; _Var9 != 0; _Var9 = _Var9 + -1) {\n          *puVar17 = *puVar15;\n          puVar15 = puVar15 + (uint)bVar18 * -2 + 1;\n          puVar17 = puVar17 + (uint)bVar18 * -2 + 1;\n        }\n        param_1[6] = param_1[6] + 1;\n        cVar11 = local_64[iVar3 + -1];\n      }\n      local_64 = local_64 + iVar6;\nLAB_000b81a6:\n      *local_64 = 0;\n      __s = (byte *)param_1[2];\n    }\n    if (uVar13 != 0) {\n      sVar4 = strspn((char *)__s,(char *)(param_4 + 1));\n      __s = __s + sVar4;\n    }\n    pbVar5 = __s;\n    if ((param_3 & 0x1000000) != 0) {\n      pbVar5 = (byte *)FUN_00019041();\n    }\n    bVar10 = *pbVar5;\n    iVar3 = iVar1;\n    puVar15 = param_2;\n  }" ({ "{") (for_statement "for (; iVar3 != 0; iVar3 = iVar3 + -1) {\n      *puVar15 = 0;\n      puVar15 = puVar15 + (uint)bVar18 * -2 + 1;\n    }" (for "for") (( "(") (; ";") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) (; ";") (assignment_expression "iVar3 = iVar3 + -1" (identifier "iVar3") (= "=") (binary_expression "iVar3 + -1" (identifier "iVar3") (+ "+") (number_literal "-1"))) () ")") (compound_statement "{\n      *puVar15 = 0;\n      puVar15 = puVar15 + (uint)bVar18 * -2 + 1;\n    }" ({ "{") (expression_statement "*puVar15 = 0;" (assignment_expression "*puVar15 = 0" (pointer_expression "*puVar15" (* "*") (identifier "puVar15")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar15 = puVar15 + (uint)bVar18 * -2 + 1;" (assignment_expression "puVar15 = puVar15 + (uint)bVar18 * -2 + 1" (identifier "puVar15") (= "=") (binary_expression "puVar15 + (uint)bVar18 * -2 + 1" (binary_expression "puVar15 + (uint)bVar18 * -2" (identifier "puVar15") (+ "+") (binary_expression "(uint)bVar18 * -2" (cast_expression "(uint)bVar18" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar18")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (expression_statement "iVar3 = __getdelim((char **)(param_1 + 2),param_1 + 4,10,(FILE *)*param_1);" (assignment_expression "iVar3 = __getdelim((char **)(param_1 + 2),param_1 + 4,10,(FILE *)*param_1)" (identifier "iVar3") (= "=") (call_expression "__getdelim((char **)(param_1 + 2),param_1 + 4,10,(FILE *)*param_1)" (identifier "__getdelim") (argument_list "((char **)(param_1 + 2),param_1 + 4,10,(FILE *)*param_1)" (( "(") (cast_expression "(char **)(param_1 + 2)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 2)" (( "(") (binary_expression "param_1 + 2" (identifier "param_1") (+ "+") (number_literal "2")) () ")"))) (, ",") (binary_expression "param_1 + 4" (identifier "param_1") (+ "+") (number_literal "4")) (, ",") (number_literal "10") (, ",") (cast_expression "(FILE *)*param_1" (( "(") (type_descriptor "FILE *" (type_identifier "FILE") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) () ")")))) (; ";")) (if_statement "if (iVar3 < 1) {\n      if (iVar3 != 0) {\n        return 0;\n      }\n      __s = (byte *)param_1[2];\n    }\n    else {\n      local_64 = (undefined1 *)param_1[2];\n      param_1[6] = param_1[6] + 1;\n      cVar11 = local_64[iVar3 + -1];\n      while( true ) {\n        iVar6 = iVar3;\n        if (cVar11 == '\n') {\n          iVar6 = iVar3 + -1;\n          if (iVar6 == 0) goto LAB_000b81a6;\n          cVar11 = local_64[iVar3 + -2];\n        }\n        if (cVar11 != '\\') {\n          local_64 = local_64 + iVar6;\n          goto LAB_000b81a6;\n        }\n        iVar6 = iVar6 + -1;\n        _Var9 = __getdelim((char **)(param_1 + 3),param_1 + 5,10,(FILE *)*param_1);\n        if (_Var9 < 1) break;\n        iVar3 = iVar6 + _Var9;\n        if ((uint)param_1[4] < iVar3 + 1U) {\n          param_1[4] = iVar3 + 1U;\n          local_64 = (undefined1 *)FUN_0001a2be();\n          param_1[2] = local_64;\n        }\n        puVar15 = (undefined1 *)param_1[3];\n        puVar17 = local_64 + iVar6;\n        for (; _Var9 != 0; _Var9 = _Var9 + -1) {\n          *puVar17 = *puVar15;\n          puVar15 = puVar15 + (uint)bVar18 * -2 + 1;\n          puVar17 = puVar17 + (uint)bVar18 * -2 + 1;\n        }\n        param_1[6] = param_1[6] + 1;\n        cVar11 = local_64[iVar3 + -1];\n      }\n      local_64 = local_64 + iVar6;\nLAB_000b81a6:\n      *local_64 = 0;\n      __s = (byte *)param_1[2];\n    }" (if "if") (parenthesized_expression "(iVar3 < 1)" (( "(") (binary_expression "iVar3 < 1" (identifier "iVar3") (< "<") (number_literal "1")) () ")")) (compound_statement "{\n      if (iVar3 != 0) {\n        return 0;\n      }\n      __s = (byte *)param_1[2];\n    }" ({ "{") (if_statement "if (iVar3 != 0) {\n        return 0;\n      }" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        return 0;\n      }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "__s = (byte *)param_1[2];" (assignment_expression "__s = (byte *)param_1[2]" (identifier "__s") (= "=") (cast_expression "(byte *)param_1[2]" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")))) (; ";")) (} "}")) (else_clause "else {\n      local_64 = (undefined1 *)param_1[2];\n      param_1[6] = param_1[6] + 1;\n      cVar11 = local_64[iVar3 + -1];\n      while( true ) {\n        iVar6 = iVar3;\n        if (cVar11 == '\n') {\n          iVar6 = iVar3 + -1;\n          if (iVar6 == 0) goto LAB_000b81a6;\n          cVar11 = local_64[iVar3 + -2];\n        }\n        if (cVar11 != '\\') {\n          local_64 = local_64 + iVar6;\n          goto LAB_000b81a6;\n        }\n        iVar6 = iVar6 + -1;\n        _Var9 = __getdelim((char **)(param_1 + 3),param_1 + 5,10,(FILE *)*param_1);\n        if (_Var9 < 1) break;\n        iVar3 = iVar6 + _Var9;\n        if ((uint)param_1[4] < iVar3 + 1U) {\n          param_1[4] = iVar3 + 1U;\n          local_64 = (undefined1 *)FUN_0001a2be();\n          param_1[2] = local_64;\n        }\n        puVar15 = (undefined1 *)param_1[3];\n        puVar17 = local_64 + iVar6;\n        for (; _Var9 != 0; _Var9 = _Var9 + -1) {\n          *puVar17 = *puVar15;\n          puVar15 = puVar15 + (uint)bVar18 * -2 + 1;\n          puVar17 = puVar17 + (uint)bVar18 * -2 + 1;\n        }\n        param_1[6] = param_1[6] + 1;\n        cVar11 = local_64[iVar3 + -1];\n      }\n      local_64 = local_64 + iVar6;\nLAB_000b81a6:\n      *local_64 = 0;\n      __s = (byte *)param_1[2];\n    }" (else "else") (compound_statement "{\n      local_64 = (undefined1 *)param_1[2];\n      param_1[6] = param_1[6] + 1;\n      cVar11 = local_64[iVar3 + -1];\n      while( true ) {\n        iVar6 = iVar3;\n        if (cVar11 == '\n') {\n          iVar6 = iVar3 + -1;\n          if (iVar6 == 0) goto LAB_000b81a6;\n          cVar11 = local_64[iVar3 + -2];\n        }\n        if (cVar11 != '\\') {\n          local_64 = local_64 + iVar6;\n          goto LAB_000b81a6;\n        }\n        iVar6 = iVar6 + -1;\n        _Var9 = __getdelim((char **)(param_1 + 3),param_1 + 5,10,(FILE *)*param_1);\n        if (_Var9 < 1) break;\n        iVar3 = iVar6 + _Var9;\n        if ((uint)param_1[4] < iVar3 + 1U) {\n          param_1[4] = iVar3 + 1U;\n          local_64 = (undefined1 *)FUN_0001a2be();\n          param_1[2] = local_64;\n        }\n        puVar15 = (undefined1 *)param_1[3];\n        puVar17 = local_64 + iVar6;\n        for (; _Var9 != 0; _Var9 = _Var9 + -1) {\n          *puVar17 = *puVar15;\n          puVar15 = puVar15 + (uint)bVar18 * -2 + 1;\n          puVar17 = puVar17 + (uint)bVar18 * -2 + 1;\n        }\n        param_1[6] = param_1[6] + 1;\n        cVar11 = local_64[iVar3 + -1];\n      }\n      local_64 = local_64 + iVar6;\nLAB_000b81a6:\n      *local_64 = 0;\n      __s = (byte *)param_1[2];\n    }" ({ "{") (expression_statement "local_64 = (undefined1 *)param_1[2];" (assignment_expression "local_64 = (undefined1 *)param_1[2]" (identifier "local_64") (= "=") (cast_expression "(undefined1 *)param_1[2]" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")))) (; ";")) (expression_statement "param_1[6] = param_1[6] + 1;" (assignment_expression "param_1[6] = param_1[6] + 1" (subscript_expression "param_1[6]" (identifier "param_1") ([ "[") (number_literal "6") (] "]")) (= "=") (binary_expression "param_1[6] + 1" (subscript_expression "param_1[6]" (identifier "param_1") ([ "[") (number_literal "6") (] "]")) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "cVar11 = local_64[iVar3 + -1];" (assignment_expression "cVar11 = local_64[iVar3 + -1]" (identifier "cVar11") (= "=") (subscript_expression "local_64[iVar3 + -1]" (identifier "local_64") ([ "[") (binary_expression "iVar3 + -1" (identifier "iVar3") (+ "+") (number_literal "-1")) (] "]"))) (; ";")) (while_statement "while( true ) {\n        iVar6 = iVar3;\n        if (cVar11 == '\n') {\n          iVar6 = iVar3 + -1;\n          if (iVar6 == 0) goto LAB_000b81a6;\n          cVar11 = local_64[iVar3 + -2];\n        }\n        if (cVar11 != '\\') {\n          local_64 = local_64 + iVar6;\n          goto LAB_000b81a6;\n        }\n        iVar6 = iVar6 + -1;\n        _Var9 = __getdelim((char **)(param_1 + 3),param_1 + 5,10,(FILE *)*param_1);\n        if (_Var9 < 1) break;\n        iVar3 = iVar6 + _Var9;\n        if ((uint)param_1[4] < iVar3 + 1U) {\n          param_1[4] = iVar3 + 1U;\n          local_64 = (undefined1 *)FUN_0001a2be();\n          param_1[2] = local_64;\n        }\n        puVar15 = (undefined1 *)param_1[3];\n        puVar17 = local_64 + iVar6;\n        for (; _Var9 != 0; _Var9 = _Var9 + -1) {\n          *puVar17 = *puVar15;\n          puVar15 = puVar15 + (uint)bVar18 * -2 + 1;\n          puVar17 = puVar17 + (uint)bVar18 * -2 + 1;\n        }\n        param_1[6] = param_1[6] + 1;\n        cVar11 = local_64[iVar3 + -1];\n      }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n        iVar6 = iVar3;\n        if (cVar11 == '\n') {\n          iVar6 = iVar3 + -1;\n          if (iVar6 == 0) goto LAB_000b81a6;\n          cVar11 = local_64[iVar3 + -2];\n        }\n        if (cVar11 != '\\') {\n          local_64 = local_64 + iVar6;\n          goto LAB_000b81a6;\n        }\n        iVar6 = iVar6 + -1;\n        _Var9 = __getdelim((char **)(param_1 + 3),param_1 + 5,10,(FILE *)*param_1);\n        if (_Var9 < 1) break;\n        iVar3 = iVar6 + _Var9;\n        if ((uint)param_1[4] < iVar3 + 1U) {\n          param_1[4] = iVar3 + 1U;\n          local_64 = (undefined1 *)FUN_0001a2be();\n          param_1[2] = local_64;\n        }\n        puVar15 = (undefined1 *)param_1[3];\n        puVar17 = local_64 + iVar6;\n        for (; _Var9 != 0; _Var9 = _Var9 + -1) {\n          *puVar17 = *puVar15;\n          puVar15 = puVar15 + (uint)bVar18 * -2 + 1;\n          puVar17 = puVar17 + (uint)bVar18 * -2 + 1;\n        }\n        param_1[6] = param_1[6] + 1;\n        cVar11 = local_64[iVar3 + -1];\n      }" ({ "{") (expression_statement "iVar6 = iVar3;" (assignment_expression "iVar6 = iVar3" (identifier "iVar6") (= "=") (identifier "iVar3")) (; ";")) (if_statement "if (cVar11 == '\n') {\n          iVar6 = iVar3 + -1;\n          if (iVar6 == 0) goto LAB_000b81a6;\n          cVar11 = local_64[iVar3 + -2];\n        }" (if "if") (parenthesized_expression "(cVar11 == '\n')" (( "(") (binary_expression "cVar11 == '\n'" (identifier "cVar11") (== "==") (char_literal "'\n'" (' "'") (escape_sequence "\n") (' "'"))) () ")")) (compound_statement "{\n          iVar6 = iVar3 + -1;\n          if (iVar6 == 0) goto LAB_000b81a6;\n          cVar11 = local_64[iVar3 + -2];\n        }" ({ "{") (expression_statement "iVar6 = iVar3 + -1;" (assignment_expression "iVar6 = iVar3 + -1" (identifier "iVar6") (= "=") (binary_expression "iVar3 + -1" (identifier "iVar3") (+ "+") (number_literal "-1"))) (; ";")) (if_statement "if (iVar6 == 0) goto LAB_000b81a6;" (if "if") (parenthesized_expression "(iVar6 == 0)" (( "(") (binary_expression "iVar6 == 0" (identifier "iVar6") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_000b81a6;" (goto "goto") (statement_identifier "LAB_000b81a6") (; ";"))) (expression_statement "cVar11 = local_64[iVar3 + -2];" (assignment_expression "cVar11 = local_64[iVar3 + -2]" (identifier "cVar11") (= "=") (subscript_expression "local_64[iVar3 + -2]" (identifier "local_64") ([ "[") (binary_expression "iVar3 + -2" (identifier "iVar3") (+ "+") (number_literal "-2")) (] "]"))) (; ";")) (} "}"))) (if_statement "if (cVar11 != '\\') {\n          local_64 = local_64 + iVar6;\n          goto LAB_000b81a6;\n        }" (if "if") (parenthesized_expression "(cVar11 != '\\')" (( "(") (binary_expression "cVar11 != '\\'" (identifier "cVar11") (!= "!=") (char_literal "'\\'" (' "'") (escape_sequence "\\") (' "'"))) () ")")) (compound_statement "{\n          local_64 = local_64 + iVar6;\n          goto LAB_000b81a6;\n        }" ({ "{") (expression_statement "local_64 = local_64 + iVar6;" (assignment_expression "local_64 = local_64 + iVar6" (identifier "local_64") (= "=") (binary_expression "local_64 + iVar6" (identifier "local_64") (+ "+") (identifier "iVar6"))) (; ";")) (goto_statement "goto LAB_000b81a6;" (goto "goto") (statement_identifier "LAB_000b81a6") (; ";")) (} "}"))) (expression_statement "iVar6 = iVar6 + -1;" (assignment_expression "iVar6 = iVar6 + -1" (identifier "iVar6") (= "=") (binary_expression "iVar6 + -1" (identifier "iVar6") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "_Var9 = __getdelim((char **)(param_1 + 3),param_1 + 5,10,(FILE *)*param_1);" (assignment_expression "_Var9 = __getdelim((char **)(param_1 + 3),param_1 + 5,10,(FILE *)*param_1)" (identifier "_Var9") (= "=") (call_expression "__getdelim((char **)(param_1 + 3),param_1 + 5,10,(FILE *)*param_1)" (identifier "__getdelim") (argument_list "((char **)(param_1 + 3),param_1 + 5,10,(FILE *)*param_1)" (( "(") (cast_expression "(char **)(param_1 + 3)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 3)" (( "(") (binary_expression "param_1 + 3" (identifier "param_1") (+ "+") (number_literal "3")) () ")"))) (, ",") (binary_expression "param_1 + 5" (identifier "param_1") (+ "+") (number_literal "5")) (, ",") (number_literal "10") (, ",") (cast_expression "(FILE *)*param_1" (( "(") (type_descriptor "FILE *" (type_identifier "FILE") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) () ")")))) (; ";")) (if_statement "if (_Var9 < 1) break;" (if "if") (parenthesized_expression "(_Var9 < 1)" (( "(") (binary_expression "_Var9 < 1" (identifier "_Var9") (< "<") (number_literal "1")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar3 = iVar6 + _Var9;" (assignment_expression "iVar3 = iVar6 + _Var9" (identifier "iVar3") (= "=") (binary_expression "iVar6 + _Var9" (identifier "iVar6") (+ "+") (identifier "_Var9"))) (; ";")) (if_statement "if ((uint)param_1[4] < iVar3 + 1U) {\n          param_1[4] = iVar3 + 1U;\n          local_64 = (undefined1 *)FUN_0001a2be();\n          param_1[2] = local_64;\n        }" (if "if") (parenthesized_expression "((uint)param_1[4] < iVar3 + 1U)" (( "(") (binary_expression "(uint)param_1[4] < iVar3 + 1U" (cast_expression "(uint)param_1[4]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "param_1[4]" (identifier "param_1") ([ "[") (number_literal "4") (] "]"))) (< "<") (binary_expression "iVar3 + 1U" (identifier "iVar3") (+ "+") (number_literal "1U"))) () ")")) (compound_statement "{\n          param_1[4] = iVar3 + 1U;\n          local_64 = (undefined1 *)FUN_0001a2be();\n          param_1[2] = local_64;\n        }" ({ "{") (expression_statement "param_1[4] = iVar3 + 1U;" (assignment_expression "param_1[4] = iVar3 + 1U" (subscript_expression "param_1[4]" (identifier "param_1") ([ "[") (number_literal "4") (] "]")) (= "=") (binary_expression "iVar3 + 1U" (identifier "iVar3") (+ "+") (number_literal "1U"))) (; ";")) (expression_statement "local_64 = (undefined1 *)FUN_0001a2be();" (assignment_expression "local_64 = (undefined1 *)FUN_0001a2be()" (identifier "local_64") (= "=") (cast_expression "(undefined1 *)FUN_0001a2be()" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0001a2be()" (identifier "FUN_0001a2be") (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "param_1[2] = local_64;" (assignment_expression "param_1[2] = local_64" (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "local_64")) (; ";")) (} "}"))) (expression_statement "puVar15 = (undefined1 *)param_1[3];" (assignment_expression "puVar15 = (undefined1 *)param_1[3]" (identifier "puVar15") (= "=") (cast_expression "(undefined1 *)param_1[3]" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[3]" (identifier "param_1") ([ "[") (number_literal "3") (] "]")))) (; ";")) (expression_statement "puVar17 = local_64 + iVar6;" (assignment_expression "puVar17 = local_64 + iVar6" (identifier "puVar17") (= "=") (binary_expression "local_64 + iVar6" (identifier "local_64") (+ "+") (identifier "iVar6"))) (; ";")) (for_statement "for (; _Var9 != 0; _Var9 = _Var9 + -1) {\n          *puVar17 = *puVar15;\n          puVar15 = puVar15 + (uint)bVar18 * -2 + 1;\n          puVar17 = puVar17 + (uint)bVar18 * -2 + 1;\n        }" (for "for") (( "(") (; ";") (binary_expression "_Var9 != 0" (identifier "_Var9") (!= "!=") (number_literal "0")) (; ";") (assignment_expression "_Var9 = _Var9 + -1" (identifier "_Var9") (= "=") (binary_expression "_Var9 + -1" (identifier "_Var9") (+ "+") (number_literal "-1"))) () ")") (compound_statement "{\n          *puVar17 = *puVar15;\n          puVar15 = puVar15 + (uint)bVar18 * -2 + 1;\n          puVar17 = puVar17 + (uint)bVar18 * -2 + 1;\n        }" ({ "{") (expression_statement "*puVar17 = *puVar15;" (assignment_expression "*puVar17 = *puVar15" (pointer_expression "*puVar17" (* "*") (identifier "puVar17")) (= "=") (pointer_expression "*puVar15" (* "*") (identifier "puVar15"))) (; ";")) (expression_statement "puVar15 = puVar15 + (uint)bVar18 * -2 + 1;" (assignment_expression "puVar15 = puVar15 + (uint)bVar18 * -2 + 1" (identifier "puVar15") (= "=") (binary_expression "puVar15 + (uint)bVar18 * -2 + 1" (binary_expression "puVar15 + (uint)bVar18 * -2" (identifier "puVar15") (+ "+") (binary_expression "(uint)bVar18 * -2" (cast_expression "(uint)bVar18" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar18")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "puVar17 = puVar17 + (uint)bVar18 * -2 + 1;" (assignment_expression "puVar17 = puVar17 + (uint)bVar18 * -2 + 1" (identifier "puVar17") (= "=") (binary_expression "puVar17 + (uint)bVar18 * -2 + 1" (binary_expression "puVar17 + (uint)bVar18 * -2" (identifier "puVar17") (+ "+") (binary_expression "(uint)bVar18 * -2" (cast_expression "(uint)bVar18" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar18")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (expression_statement "param_1[6] = param_1[6] + 1;" (assignment_expression "param_1[6] = param_1[6] + 1" (subscript_expression "param_1[6]" (identifier "param_1") ([ "[") (number_literal "6") (] "]")) (= "=") (binary_expression "param_1[6] + 1" (subscript_expression "param_1[6]" (identifier "param_1") ([ "[") (number_literal "6") (] "]")) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "cVar11 = local_64[iVar3 + -1];" (assignment_expression "cVar11 = local_64[iVar3 + -1]" (identifier "cVar11") (= "=") (subscript_expression "local_64[iVar3 + -1]" (identifier "local_64") ([ "[") (binary_expression "iVar3 + -1" (identifier "iVar3") (+ "+") (number_literal "-1")) (] "]"))) (; ";")) (} "}"))) (expression_statement "local_64 = local_64 + iVar6;" (assignment_expression "local_64 = local_64 + iVar6" (identifier "local_64") (= "=") (binary_expression "local_64 + iVar6" (identifier "local_64") (+ "+") (identifier "iVar6"))) (; ";")) (labeled_statement "LAB_000b81a6:\n      *local_64 = 0;" (statement_identifier "LAB_000b81a6") (: ":") (expression_statement "*local_64 = 0;" (assignment_expression "*local_64 = 0" (pointer_expression "*local_64" (* "*") (identifier "local_64")) (= "=") (number_literal "0")) (; ";"))) (expression_statement "__s = (byte *)param_1[2];" (assignment_expression "__s = (byte *)param_1[2]" (identifier "__s") (= "=") (cast_expression "(byte *)param_1[2]" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")))) (; ";")) (} "}")))) (if_statement "if (uVar13 != 0) {\n      sVar4 = strspn((char *)__s,(char *)(param_4 + 1));\n      __s = __s + sVar4;\n    }" (if "if") (parenthesized_expression "(uVar13 != 0)" (( "(") (binary_expression "uVar13 != 0" (identifier "uVar13") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      sVar4 = strspn((char *)__s,(char *)(param_4 + 1));\n      __s = __s + sVar4;\n    }" ({ "{") (expression_statement "sVar4 = strspn((char *)__s,(char *)(param_4 + 1));" (assignment_expression "sVar4 = strspn((char *)__s,(char *)(param_4 + 1))" (identifier "sVar4") (= "=") (call_expression "strspn((char *)__s,(char *)(param_4 + 1))" (identifier "strspn") (argument_list "((char *)__s,(char *)(param_4 + 1))" (( "(") (cast_expression "(char *)__s" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "__s")) (, ",") (cast_expression "(char *)(param_4 + 1)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 1)" (( "(") (binary_expression "param_4 + 1" (identifier "param_4") (+ "+") (number_literal "1")) () ")"))) () ")")))) (; ";")) (expression_statement "__s = __s + sVar4;" (assignment_expression "__s = __s + sVar4" (identifier "__s") (= "=") (binary_expression "__s + sVar4" (identifier "__s") (+ "+") (identifier "sVar4"))) (; ";")) (} "}"))) (expression_statement "pbVar5 = __s;" (assignment_expression "pbVar5 = __s" (identifier "pbVar5") (= "=") (identifier "__s")) (; ";")) (if_statement "if ((param_3 & 0x1000000) != 0) {\n      pbVar5 = (byte *)FUN_00019041();\n    }" (if "if") (parenthesized_expression "((param_3 & 0x1000000) != 0)" (( "(") (binary_expression "(param_3 & 0x1000000) != 0" (parenthesized_expression "(param_3 & 0x1000000)" (( "(") (binary_expression "param_3 & 0x1000000" (identifier "param_3") (& "&") (number_literal "0x1000000")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      pbVar5 = (byte *)FUN_00019041();\n    }" ({ "{") (expression_statement "pbVar5 = (byte *)FUN_00019041();" (assignment_expression "pbVar5 = (byte *)FUN_00019041()" (identifier "pbVar5") (= "=") (cast_expression "(byte *)FUN_00019041()" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00019041()" (identifier "FUN_00019041") (argument_list "()" (( "(") () ")"))))) (; ";")) (} "}"))) (expression_statement "bVar10 = *pbVar5;" (assignment_expression "bVar10 = *pbVar5" (identifier "bVar10") (= "=") (pointer_expression "*pbVar5" (* "*") (identifier "pbVar5"))) (; ";")) (expression_statement "iVar3 = iVar1;" (assignment_expression "iVar3 = iVar1" (identifier "iVar3") (= "=") (identifier "iVar1")) (; ";")) (expression_statement "puVar15 = param_2;" (assignment_expression "puVar15 = param_2" (identifier "puVar15") (= "=") (identifier "param_2")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(((bVar10 == 0) || (bVar10 == *param_4)) || (bVar10 == local_4d))" (( "(") (binary_expression "((bVar10 == 0) || (bVar10 == *param_4)) || (bVar10 == local_4d)" (parenthesized_expression "((bVar10 == 0) || (bVar10 == *param_4))" (( "(") (binary_expression "(bVar10 == 0) || (bVar10 == *param_4)" (parenthesized_expression "(bVar10 == 0)" (( "(") (binary_expression "bVar10 == 0" (identifier "bVar10") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(bVar10 == *param_4)" (( "(") (binary_expression "bVar10 == *param_4" (identifier "bVar10") (== "==") (pointer_expression "*param_4" (* "*") (identifier "param_4"))) () ")"))) () ")")) (|| "||") (parenthesized_expression "(bVar10 == local_4d)" (( "(") (binary_expression "bVar10 == local_4d" (identifier "bVar10") (== "==") (identifier "local_4d")) () ")"))) () ")")) (; ";"))) (expression_statement "pbVar5 = param_4 + 1;" (assignment_expression "pbVar5 = param_4 + 1" (identifier "pbVar5") (= "=") (binary_expression "param_4 + 1" (identifier "param_4") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" (identifier "iVar3") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n    iVar6 = iVar3;\n    *(byte **)(param_2 + iVar6 * 4) = __s;\n    if ((iVar6 == uVar12 - 1) && ((param_3 & 0x40000) != 0)) {\n      if (uVar14 != 0) {\n        bVar10 = *param_4;\n        pbVar7 = (byte *)strchrnul((char *)__s,(uint)bVar10);\n        if (uVar13 != 0) goto LAB_000b80a9;\n        bVar2 = *pbVar7;\n        goto LAB_000b801c;\n      }\n      pbVar7 = (byte *)strchrnul((char *)__s,0);\n      if (uVar13 != 0) {\nLAB_000b80a9:\n        while (pcVar8 = strchr((char *)pbVar5,(uint)pbVar7[-1]), pcVar8 != (char *)0x0) {\n          pbVar7 = pbVar7 + -1;\n        }\n        goto LAB_000b8008;\n      }\n      bVar2 = *pbVar7;\nLAB_000b80e2:\n      __s = pbVar7;\n      if (bVar2 == 0) goto LAB_000b80e8;\n      __s = pbVar7 + 1;\n      *pbVar7 = 0;\n      if ((param_3 & 0x10000) != 0) goto LAB_000b8134;\n    }\n    else {\n      pbVar7 = pbVar5;\n      if ((*param_4 != 0) && (pbVar7 = param_4, uVar14 == 0)) {\n        pbVar7 = pbVar5;\n      }\n      sVar4 = strcspn((char *)__s,(char *)pbVar7);\n      pbVar7 = __s + sVar4;\nLAB_000b8008:\n      bVar2 = *pbVar7;\n      if (uVar14 == 0) goto LAB_000b80e2;\n      bVar10 = *param_4;\nLAB_000b801c:\n      if (bVar10 != bVar2) goto LAB_000b80e2;\n      *pbVar7 = 0;\n      __s = pbVar7;\nLAB_000b80e8:\n      if ((param_3 & 0x10000) == 0) break;\nLAB_000b8134:\n      sVar4 = strspn((char *)__s,(char *)pbVar5);\n      __s = __s + sVar4;\n    }\n    if (((*__s == 0) || (*__s == *param_4)) || (iVar3 = iVar6 + 1, (int)uVar12 <= iVar6 + 1)) break;\n  } while( true );" (do "do") (compound_statement "{\n    iVar6 = iVar3;\n    *(byte **)(param_2 + iVar6 * 4) = __s;\n    if ((iVar6 == uVar12 - 1) && ((param_3 & 0x40000) != 0)) {\n      if (uVar14 != 0) {\n        bVar10 = *param_4;\n        pbVar7 = (byte *)strchrnul((char *)__s,(uint)bVar10);\n        if (uVar13 != 0) goto LAB_000b80a9;\n        bVar2 = *pbVar7;\n        goto LAB_000b801c;\n      }\n      pbVar7 = (byte *)strchrnul((char *)__s,0);\n      if (uVar13 != 0) {\nLAB_000b80a9:\n        while (pcVar8 = strchr((char *)pbVar5,(uint)pbVar7[-1]), pcVar8 != (char *)0x0) {\n          pbVar7 = pbVar7 + -1;\n        }\n        goto LAB_000b8008;\n      }\n      bVar2 = *pbVar7;\nLAB_000b80e2:\n      __s = pbVar7;\n      if (bVar2 == 0) goto LAB_000b80e8;\n      __s = pbVar7 + 1;\n      *pbVar7 = 0;\n      if ((param_3 & 0x10000) != 0) goto LAB_000b8134;\n    }\n    else {\n      pbVar7 = pbVar5;\n      if ((*param_4 != 0) && (pbVar7 = param_4, uVar14 == 0)) {\n        pbVar7 = pbVar5;\n      }\n      sVar4 = strcspn((char *)__s,(char *)pbVar7);\n      pbVar7 = __s + sVar4;\nLAB_000b8008:\n      bVar2 = *pbVar7;\n      if (uVar14 == 0) goto LAB_000b80e2;\n      bVar10 = *param_4;\nLAB_000b801c:\n      if (bVar10 != bVar2) goto LAB_000b80e2;\n      *pbVar7 = 0;\n      __s = pbVar7;\nLAB_000b80e8:\n      if ((param_3 & 0x10000) == 0) break;\nLAB_000b8134:\n      sVar4 = strspn((char *)__s,(char *)pbVar5);\n      __s = __s + sVar4;\n    }\n    if (((*__s == 0) || (*__s == *param_4)) || (iVar3 = iVar6 + 1, (int)uVar12 <= iVar6 + 1)) break;\n  }" ({ "{") (expression_statement "iVar6 = iVar3;" (assignment_expression "iVar6 = iVar3" (identifier "iVar6") (= "=") (identifier "iVar3")) (; ";")) (expression_statement "*(byte **)(param_2 + iVar6 * 4) = __s;" (assignment_expression "*(byte **)(param_2 + iVar6 * 4) = __s" (pointer_expression "*(byte **)(param_2 + iVar6 * 4)" (* "*") (cast_expression "(byte **)(param_2 + iVar6 * 4)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_2 + iVar6 * 4)" (( "(") (binary_expression "param_2 + iVar6 * 4" (identifier "param_2") (+ "+") (binary_expression "iVar6 * 4" (identifier "iVar6") (* "*") (number_literal "4"))) () ")")))) (= "=") (identifier "__s")) (; ";")) (if_statement "if ((iVar6 == uVar12 - 1) && ((param_3 & 0x40000) != 0)) {\n      if (uVar14 != 0) {\n        bVar10 = *param_4;\n        pbVar7 = (byte *)strchrnul((char *)__s,(uint)bVar10);\n        if (uVar13 != 0) goto LAB_000b80a9;\n        bVar2 = *pbVar7;\n        goto LAB_000b801c;\n      }\n      pbVar7 = (byte *)strchrnul((char *)__s,0);\n      if (uVar13 != 0) {\nLAB_000b80a9:\n        while (pcVar8 = strchr((char *)pbVar5,(uint)pbVar7[-1]), pcVar8 != (char *)0x0) {\n          pbVar7 = pbVar7 + -1;\n        }\n        goto LAB_000b8008;\n      }\n      bVar2 = *pbVar7;\nLAB_000b80e2:\n      __s = pbVar7;\n      if (bVar2 == 0) goto LAB_000b80e8;\n      __s = pbVar7 + 1;\n      *pbVar7 = 0;\n      if ((param_3 & 0x10000) != 0) goto LAB_000b8134;\n    }\n    else {\n      pbVar7 = pbVar5;\n      if ((*param_4 != 0) && (pbVar7 = param_4, uVar14 == 0)) {\n        pbVar7 = pbVar5;\n      }\n      sVar4 = strcspn((char *)__s,(char *)pbVar7);\n      pbVar7 = __s + sVar4;\nLAB_000b8008:\n      bVar2 = *pbVar7;\n      if (uVar14 == 0) goto LAB_000b80e2;\n      bVar10 = *param_4;\nLAB_000b801c:\n      if (bVar10 != bVar2) goto LAB_000b80e2;\n      *pbVar7 = 0;\n      __s = pbVar7;\nLAB_000b80e8:\n      if ((param_3 & 0x10000) == 0) break;\nLAB_000b8134:\n      sVar4 = strspn((char *)__s,(char *)pbVar5);\n      __s = __s + sVar4;\n    }" (if "if") (parenthesized_expression "((iVar6 == uVar12 - 1) && ((param_3 & 0x40000) != 0))" (( "(") (binary_expression "(iVar6 == uVar12 - 1) && ((param_3 & 0x40000) != 0)" (parenthesized_expression "(iVar6 == uVar12 - 1)" (( "(") (binary_expression "iVar6 == uVar12 - 1" (identifier "iVar6") (== "==") (binary_expression "uVar12 - 1" (identifier "uVar12") (- "-") (number_literal "1"))) () ")")) (&& "&&") (parenthesized_expression "((param_3 & 0x40000) != 0)" (( "(") (binary_expression "(param_3 & 0x40000) != 0" (parenthesized_expression "(param_3 & 0x40000)" (( "(") (binary_expression "param_3 & 0x40000" (identifier "param_3") (& "&") (number_literal "0x40000")) () ")")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n      if (uVar14 != 0) {\n        bVar10 = *param_4;\n        pbVar7 = (byte *)strchrnul((char *)__s,(uint)bVar10);\n        if (uVar13 != 0) goto LAB_000b80a9;\n        bVar2 = *pbVar7;\n        goto LAB_000b801c;\n      }\n      pbVar7 = (byte *)strchrnul((char *)__s,0);\n      if (uVar13 != 0) {\nLAB_000b80a9:\n        while (pcVar8 = strchr((char *)pbVar5,(uint)pbVar7[-1]), pcVar8 != (char *)0x0) {\n          pbVar7 = pbVar7 + -1;\n        }\n        goto LAB_000b8008;\n      }\n      bVar2 = *pbVar7;\nLAB_000b80e2:\n      __s = pbVar7;\n      if (bVar2 == 0) goto LAB_000b80e8;\n      __s = pbVar7 + 1;\n      *pbVar7 = 0;\n      if ((param_3 & 0x10000) != 0) goto LAB_000b8134;\n    }" ({ "{") (if_statement "if (uVar14 != 0) {\n        bVar10 = *param_4;\n        pbVar7 = (byte *)strchrnul((char *)__s,(uint)bVar10);\n        if (uVar13 != 0) goto LAB_000b80a9;\n        bVar2 = *pbVar7;\n        goto LAB_000b801c;\n      }" (if "if") (parenthesized_expression "(uVar14 != 0)" (( "(") (binary_expression "uVar14 != 0" (identifier "uVar14") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        bVar10 = *param_4;\n        pbVar7 = (byte *)strchrnul((char *)__s,(uint)bVar10);\n        if (uVar13 != 0) goto LAB_000b80a9;\n        bVar2 = *pbVar7;\n        goto LAB_000b801c;\n      }" ({ "{") (expression_statement "bVar10 = *param_4;" (assignment_expression "bVar10 = *param_4" (identifier "bVar10") (= "=") (pointer_expression "*param_4" (* "*") (identifier "param_4"))) (; ";")) (expression_statement "pbVar7 = (byte *)strchrnul((char *)__s,(uint)bVar10);" (assignment_expression "pbVar7 = (byte *)strchrnul((char *)__s,(uint)bVar10)" (identifier "pbVar7") (= "=") (cast_expression "(byte *)strchrnul((char *)__s,(uint)bVar10)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "strchrnul((char *)__s,(uint)bVar10)" (identifier "strchrnul") (argument_list "((char *)__s,(uint)bVar10)" (( "(") (cast_expression "(char *)__s" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "__s")) (, ",") (cast_expression "(uint)bVar10" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar10")) () ")"))))) (; ";")) (if_statement "if (uVar13 != 0) goto LAB_000b80a9;" (if "if") (parenthesized_expression "(uVar13 != 0)" (( "(") (binary_expression "uVar13 != 0" (identifier "uVar13") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_000b80a9;" (goto "goto") (statement_identifier "LAB_000b80a9") (; ";"))) (expression_statement "bVar2 = *pbVar7;" (assignment_expression "bVar2 = *pbVar7" (identifier "bVar2") (= "=") (pointer_expression "*pbVar7" (* "*") (identifier "pbVar7"))) (; ";")) (goto_statement "goto LAB_000b801c;" (goto "goto") (statement_identifier "LAB_000b801c") (; ";")) (} "}"))) (expression_statement "pbVar7 = (byte *)strchrnul((char *)__s,0);" (assignment_expression "pbVar7 = (byte *)strchrnul((char *)__s,0)" (identifier "pbVar7") (= "=") (cast_expression "(byte *)strchrnul((char *)__s,0)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "strchrnul((char *)__s,0)" (identifier "strchrnul") (argument_list "((char *)__s,0)" (( "(") (cast_expression "(char *)__s" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "__s")) (, ",") (number_literal "0") () ")"))))) (; ";")) (if_statement "if (uVar13 != 0) {\nLAB_000b80a9:\n        while (pcVar8 = strchr((char *)pbVar5,(uint)pbVar7[-1]), pcVar8 != (char *)0x0) {\n          pbVar7 = pbVar7 + -1;\n        }\n        goto LAB_000b8008;\n      }" (if "if") (parenthesized_expression "(uVar13 != 0)" (( "(") (binary_expression "uVar13 != 0" (identifier "uVar13") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\nLAB_000b80a9:\n        while (pcVar8 = strchr((char *)pbVar5,(uint)pbVar7[-1]), pcVar8 != (char *)0x0) {\n          pbVar7 = pbVar7 + -1;\n        }\n        goto LAB_000b8008;\n      }" ({ "{") (labeled_statement "LAB_000b80a9:\n        while (pcVar8 = strchr((char *)pbVar5,(uint)pbVar7[-1]), pcVar8 != (char *)0x0) {\n          pbVar7 = pbVar7 + -1;\n        }" (statement_identifier "LAB_000b80a9") (: ":") (while_statement "while (pcVar8 = strchr((char *)pbVar5,(uint)pbVar7[-1]), pcVar8 != (char *)0x0) {\n          pbVar7 = pbVar7 + -1;\n        }" (while "while") (parenthesized_expression "(pcVar8 = strchr((char *)pbVar5,(uint)pbVar7[-1]), pcVar8 != (char *)0x0)" (( "(") (comma_expression "pcVar8 = strchr((char *)pbVar5,(uint)pbVar7[-1]), pcVar8 != (char *)0x0" (assignment_expression "pcVar8 = strchr((char *)pbVar5,(uint)pbVar7[-1])" (identifier "pcVar8") (= "=") (call_expression "strchr((char *)pbVar5,(uint)pbVar7[-1])" (identifier "strchr") (argument_list "((char *)pbVar5,(uint)pbVar7[-1])" (( "(") (cast_expression "(char *)pbVar5" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pbVar5")) (, ",") (cast_expression "(uint)pbVar7[-1]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "pbVar7[-1]" (identifier "pbVar7") ([ "[") (number_literal "-1") (] "]"))) () ")")))) (, ",") (binary_expression "pcVar8 != (char *)0x0" (identifier "pcVar8") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) () ")")) (compound_statement "{\n          pbVar7 = pbVar7 + -1;\n        }" ({ "{") (expression_statement "pbVar7 = pbVar7 + -1;" (assignment_expression "pbVar7 = pbVar7 + -1" (identifier "pbVar7") (= "=") (binary_expression "pbVar7 + -1" (identifier "pbVar7") (+ "+") (number_literal "-1"))) (; ";")) (} "}")))) (goto_statement "goto LAB_000b8008;" (goto "goto") (statement_identifier "LAB_000b8008") (; ";")) (} "}"))) (expression_statement "bVar2 = *pbVar7;" (assignment_expression "bVar2 = *pbVar7" (identifier "bVar2") (= "=") (pointer_expression "*pbVar7" (* "*") (identifier "pbVar7"))) (; ";")) (labeled_statement "LAB_000b80e2:\n      __s = pbVar7;" (statement_identifier "LAB_000b80e2") (: ":") (expression_statement "__s = pbVar7;" (assignment_expression "__s = pbVar7" (identifier "__s") (= "=") (identifier "pbVar7")) (; ";"))) (if_statement "if (bVar2 == 0) goto LAB_000b80e8;" (if "if") (parenthesized_expression "(bVar2 == 0)" (( "(") (binary_expression "bVar2 == 0" (identifier "bVar2") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_000b80e8;" (goto "goto") (statement_identifier "LAB_000b80e8") (; ";"))) (expression_statement "__s = pbVar7 + 1;" (assignment_expression "__s = pbVar7 + 1" (identifier "__s") (= "=") (binary_expression "pbVar7 + 1" (identifier "pbVar7") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*pbVar7 = 0;" (assignment_expression "*pbVar7 = 0" (pointer_expression "*pbVar7" (* "*") (identifier "pbVar7")) (= "=") (number_literal "0")) (; ";")) (if_statement "if ((param_3 & 0x10000) != 0) goto LAB_000b8134;" (if "if") (parenthesized_expression "((param_3 & 0x10000) != 0)" (( "(") (binary_expression "(param_3 & 0x10000) != 0" (parenthesized_expression "(param_3 & 0x10000)" (( "(") (binary_expression "param_3 & 0x10000" (identifier "param_3") (& "&") (number_literal "0x10000")) () ")")) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_000b8134;" (goto "goto") (statement_identifier "LAB_000b8134") (; ";"))) (} "}")) (else_clause "else {\n      pbVar7 = pbVar5;\n      if ((*param_4 != 0) && (pbVar7 = param_4, uVar14 == 0)) {\n        pbVar7 = pbVar5;\n      }\n      sVar4 = strcspn((char *)__s,(char *)pbVar7);\n      pbVar7 = __s + sVar4;\nLAB_000b8008:\n      bVar2 = *pbVar7;\n      if (uVar14 == 0) goto LAB_000b80e2;\n      bVar10 = *param_4;\nLAB_000b801c:\n      if (bVar10 != bVar2) goto LAB_000b80e2;\n      *pbVar7 = 0;\n      __s = pbVar7;\nLAB_000b80e8:\n      if ((param_3 & 0x10000) == 0) break;\nLAB_000b8134:\n      sVar4 = strspn((char *)__s,(char *)pbVar5);\n      __s = __s + sVar4;\n    }" (else "else") (compound_statement "{\n      pbVar7 = pbVar5;\n      if ((*param_4 != 0) && (pbVar7 = param_4, uVar14 == 0)) {\n        pbVar7 = pbVar5;\n      }\n      sVar4 = strcspn((char *)__s,(char *)pbVar7);\n      pbVar7 = __s + sVar4;\nLAB_000b8008:\n      bVar2 = *pbVar7;\n      if (uVar14 == 0) goto LAB_000b80e2;\n      bVar10 = *param_4;\nLAB_000b801c:\n      if (bVar10 != bVar2) goto LAB_000b80e2;\n      *pbVar7 = 0;\n      __s = pbVar7;\nLAB_000b80e8:\n      if ((param_3 & 0x10000) == 0) break;\nLAB_000b8134:\n      sVar4 = strspn((char *)__s,(char *)pbVar5);\n      __s = __s + sVar4;\n    }" ({ "{") (expression_statement "pbVar7 = pbVar5;" (assignment_expression "pbVar7 = pbVar5" (identifier "pbVar7") (= "=") (identifier "pbVar5")) (; ";")) (if_statement "if ((*param_4 != 0) && (pbVar7 = param_4, uVar14 == 0)) {\n        pbVar7 = pbVar5;\n      }" (if "if") (parenthesized_expression "((*param_4 != 0) && (pbVar7 = param_4, uVar14 == 0))" (( "(") (binary_expression "(*param_4 != 0) && (pbVar7 = param_4, uVar14 == 0)" (parenthesized_expression "(*param_4 != 0)" (( "(") (binary_expression "*param_4 != 0" (pointer_expression "*param_4" (* "*") (identifier "param_4")) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(pbVar7 = param_4, uVar14 == 0)" (( "(") (comma_expression "pbVar7 = param_4, uVar14 == 0" (assignment_expression "pbVar7 = param_4" (identifier "pbVar7") (= "=") (identifier "param_4")) (, ",") (binary_expression "uVar14 == 0" (identifier "uVar14") (== "==") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n        pbVar7 = pbVar5;\n      }" ({ "{") (expression_statement "pbVar7 = pbVar5;" (assignment_expression "pbVar7 = pbVar5" (identifier "pbVar7") (= "=") (identifier "pbVar5")) (; ";")) (} "}"))) (expression_statement "sVar4 = strcspn((char *)__s,(char *)pbVar7);" (assignment_expression "sVar4 = strcspn((char *)__s,(char *)pbVar7)" (identifier "sVar4") (= "=") (call_expression "strcspn((char *)__s,(char *)pbVar7)" (identifier "strcspn") (argument_list "((char *)__s,(char *)pbVar7)" (( "(") (cast_expression "(char *)__s" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "__s")) (, ",") (cast_expression "(char *)pbVar7" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pbVar7")) () ")")))) (; ";")) (expression_statement "pbVar7 = __s + sVar4;" (assignment_expression "pbVar7 = __s + sVar4" (identifier "pbVar7") (= "=") (binary_expression "__s + sVar4" (identifier "__s") (+ "+") (identifier "sVar4"))) (; ";")) (labeled_statement "LAB_000b8008:\n      bVar2 = *pbVar7;" (statement_identifier "LAB_000b8008") (: ":") (expression_statement "bVar2 = *pbVar7;" (assignment_expression "bVar2 = *pbVar7" (identifier "bVar2") (= "=") (pointer_expression "*pbVar7" (* "*") (identifier "pbVar7"))) (; ";"))) (if_statement "if (uVar14 == 0) goto LAB_000b80e2;" (if "if") (parenthesized_expression "(uVar14 == 0)" (( "(") (binary_expression "uVar14 == 0" (identifier "uVar14") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_000b80e2;" (goto "goto") (statement_identifier "LAB_000b80e2") (; ";"))) (expression_statement "bVar10 = *param_4;" (assignment_expression "bVar10 = *param_4" (identifier "bVar10") (= "=") (pointer_expression "*param_4" (* "*") (identifier "param_4"))) (; ";")) (labeled_statement "LAB_000b801c:\n      if (bVar10 != bVar2) goto LAB_000b80e2;" (statement_identifier "LAB_000b801c") (: ":") (if_statement "if (bVar10 != bVar2) goto LAB_000b80e2;" (if "if") (parenthesized_expression "(bVar10 != bVar2)" (( "(") (binary_expression "bVar10 != bVar2" (identifier "bVar10") (!= "!=") (identifier "bVar2")) () ")")) (goto_statement "goto LAB_000b80e2;" (goto "goto") (statement_identifier "LAB_000b80e2") (; ";")))) (expression_statement "*pbVar7 = 0;" (assignment_expression "*pbVar7 = 0" (pointer_expression "*pbVar7" (* "*") (identifier "pbVar7")) (= "=") (number_literal "0")) (; ";")) (expression_statement "__s = pbVar7;" (assignment_expression "__s = pbVar7" (identifier "__s") (= "=") (identifier "pbVar7")) (; ";")) (labeled_statement "LAB_000b80e8:\n      if ((param_3 & 0x10000) == 0) break;" (statement_identifier "LAB_000b80e8") (: ":") (if_statement "if ((param_3 & 0x10000) == 0) break;" (if "if") (parenthesized_expression "((param_3 & 0x10000) == 0)" (( "(") (binary_expression "(param_3 & 0x10000) == 0" (parenthesized_expression "(param_3 & 0x10000)" (( "(") (binary_expression "param_3 & 0x10000" (identifier "param_3") (& "&") (number_literal "0x10000")) () ")")) (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";")))) (labeled_statement "LAB_000b8134:\n      sVar4 = strspn((char *)__s,(char *)pbVar5);" (statement_identifier "LAB_000b8134") (: ":") (expression_statement "sVar4 = strspn((char *)__s,(char *)pbVar5);" (assignment_expression "sVar4 = strspn((char *)__s,(char *)pbVar5)" (identifier "sVar4") (= "=") (call_expression "strspn((char *)__s,(char *)pbVar5)" (identifier "strspn") (argument_list "((char *)__s,(char *)pbVar5)" (( "(") (cast_expression "(char *)__s" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "__s")) (, ",") (cast_expression "(char *)pbVar5" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pbVar5")) () ")")))) (; ";"))) (expression_statement "__s = __s + sVar4;" (assignment_expression "__s = __s + sVar4" (identifier "__s") (= "=") (binary_expression "__s + sVar4" (identifier "__s") (+ "+") (identifier "sVar4"))) (; ";")) (} "}")))) (if_statement "if (((*__s == 0) || (*__s == *param_4)) || (iVar3 = iVar6 + 1, (int)uVar12 <= iVar6 + 1)) break;" (if "if") (parenthesized_expression "(((*__s == 0) || (*__s == *param_4)) || (iVar3 = iVar6 + 1, (int)uVar12 <= iVar6 + 1))" (( "(") (binary_expression "((*__s == 0) || (*__s == *param_4)) || (iVar3 = iVar6 + 1, (int)uVar12 <= iVar6 + 1)" (parenthesized_expression "((*__s == 0) || (*__s == *param_4))" (( "(") (binary_expression "(*__s == 0) || (*__s == *param_4)" (parenthesized_expression "(*__s == 0)" (( "(") (binary_expression "*__s == 0" (pointer_expression "*__s" (* "*") (identifier "__s")) (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(*__s == *param_4)" (( "(") (binary_expression "*__s == *param_4" (pointer_expression "*__s" (* "*") (identifier "__s")) (== "==") (pointer_expression "*param_4" (* "*") (identifier "param_4"))) () ")"))) () ")")) (|| "||") (parenthesized_expression "(iVar3 = iVar6 + 1, (int)uVar12 <= iVar6 + 1)" (( "(") (comma_expression "iVar3 = iVar6 + 1, (int)uVar12 <= iVar6 + 1" (assignment_expression "iVar3 = iVar6 + 1" (identifier "iVar3") (= "=") (binary_expression "iVar6 + 1" (identifier "iVar6") (+ "+") (number_literal "1"))) (, ",") (binary_expression "(int)uVar12 <= iVar6 + 1" (cast_expression "(int)uVar12" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar12")) (<= "<=") (binary_expression "iVar6 + 1" (identifier "iVar6") (+ "+") (number_literal "1")))) () ")"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";")) (expression_statement "iVar6 = iVar6 + 1;" (assignment_expression "iVar6 = iVar6 + 1" (identifier "iVar6") (= "=") (binary_expression "iVar6 + 1" (identifier "iVar6") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if ((int)uVar16 <= iVar6) {\n    return iVar6;\n  }" (if "if") (parenthesized_expression "((int)uVar16 <= iVar6)" (( "(") (binary_expression "(int)uVar16 <= iVar6" (cast_expression "(int)uVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar16")) (<= "<=") (identifier "iVar6")) () ")")) (compound_statement "{\n    return iVar6;\n  }" ({ "{") (return_statement "return iVar6;" (return "return") (identifier "iVar6") (; ";")) (} "}"))) (expression_statement "FUN_0001930a("bad line %u: %d tokens found, %d needed",param_1[6],iVar6,uVar16);" (call_expression "FUN_0001930a("bad line %u: %d tokens found, %d needed",param_1[6],iVar6,uVar16)" (identifier "FUN_0001930a") (argument_list "("bad line %u: %d tokens found, %d needed",param_1[6],iVar6,uVar16)" (( "(") (string_literal ""bad line %u: %d tokens found, %d needed"" (" """) (string_content "bad line %u: %d tokens found, %d needed") (" """)) (, ",") (subscript_expression "param_1[6]" (identifier "param_1") ([ "[") (number_literal "6") (] "]")) (, ",") (identifier "iVar6") (, ",") (identifier "uVar16") () ")"))) (; ";")) (expression_statement "iVar3 = iVar1;" (assignment_expression "iVar3 = iVar1" (identifier "iVar3") (= "=") (identifier "iVar1")) (; ";")) (if_statement "if ((param_3 & 0x100000) != 0) {\n                    \n    FUN_00019401();\n  }" (if "if") (parenthesized_expression "((param_3 & 0x100000) != 0)" (( "(") (binary_expression "(param_3 & 0x100000) != 0" (parenthesized_expression "(param_3 & 0x100000)" (( "(") (binary_expression "param_3 & 0x100000" (identifier "param_3") (& "&") (number_literal "0x100000")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                    \n    FUN_00019401();\n  }" ({ "{") (expression_statement "FUN_00019401();" (call_expression "FUN_00019401()" (identifier "FUN_00019401") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (goto_statement "goto code_r0x000b7f52;" (goto "goto") (statement_identifier "code_r0x000b7f52") (; ";")) (} "}")))

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

int function_1(type_1 *parser,char **tokens,type_2 flags,char *delims)

{
}


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

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

int __regparm3 MASKED(undefined4 *param_1,undefined1 *param_2,uint param_3,byte *param_4)

{
  int iVar1;
  byte bVar2;
  int iVar3;
  size_t sVar4;
  byte *pbVar5;
  int iVar6;
  byte *pbVar7;
  char *pcVar8;
  __ssize_t _Var9;
  byte bVar10;
  char cVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  byte *__s;
  undefined1 *puVar15;
  uint uVar16;
  undefined1 *puVar17;
  byte bVar18;
  undefined1 *local_64;
  byte local_4d;
  
  bVar18 = 0;
  if (param_1 == (undefined4 *)0x0) {
    return 0;
  }
  local_4d = 0;
  if ((param_3 & 0x800000) != 0) {
    local_4d = *param_4;
    param_4 = param_4 + 1;
  }
  uVar12 = param_3 & 0xff;
  uVar16 = param_3 >> 8 & 0xff;
  iVar1 = uVar12 * 4;
  uVar13 = param_3 & 0x20000;
  uVar14 = param_3 & 0x400000;
  iVar3 = iVar1;
  puVar15 = param_2;
code_r0x000b7f52:
  do {
    for (; iVar3 != 0; iVar3 = iVar3 + -1) {
      *puVar15 = 0;
      puVar15 = puVar15 + (uint)bVar18 * -2 + 1;
    }
    iVar3 = __getdelim((char **)(param_1 + 2),param_1 + 4,10,(FILE *)*param_1);
    if (iVar3 < 1) {
      if (iVar3 != 0) {
        return 0;
      }
      __s = (byte *)param_1[2];
    }
    else {
      local_64 = (undefined1 *)param_1[2];
      param_1[6] = param_1[6] + 1;
      cVar11 = local_64[iVar3 + -1];
      while( true ) {
        iVar6 = iVar3;
        if (cVar11 == '\n') {
          iVar6 = iVar3 + -1;
          if (iVar6 == 0) goto LAB_000b81a6;
          cVar11 = local_64[iVar3 + -2];
        }
        if (cVar11 != '\\') {
          local_64 = local_64 + iVar6;
          goto LAB_000b81a6;
        }
        iVar6 = iVar6 + -1;
        _Var9 = __getdelim((char **)(param_1 + 3),param_1 + 5,10,(FILE *)*param_1);
        if (_Var9 < 1) break;
        iVar3 = iVar6 + _Var9;
        if ((uint)param_1[4] < iVar3 + 1U) {
          param_1[4] = iVar3 + 1U;
          local_64 = (undefined1 *)FUN_0001a2be();
          param_1[2] = local_64;
        }
        puVar15 = (undefined1 *)param_1[3];
        puVar17 = local_64 + iVar6;
        for (; _Var9 != 0; _Var9 = _Var9 + -1) {
          *puVar17 = *puVar15;
          puVar15 = puVar15 + (uint)bVar18 * -2 + 1;
          puVar17 = puVar17 + (uint)bVar18 * -2 + 1;
        }
        param_1[6] = param_1[6] + 1;
        cVar11 = local_64[iVar3 + -1];
      }
      local_64 = local_64 + iVar6;
LAB_000b81a6:
      *local_64 = 0;
      __s = (byte *)param_1[2];
    }
    if (uVar13 != 0) {
      sVar4 = strspn((char *)__s,(char *)(param_4 + 1));
      __s = __s + sVar4;
    }
    pbVar5 = __s;
    if ((param_3 & 0x1000000) != 0) {
      pbVar5 = (byte *)FUN_00019041();
    }
    bVar10 = *pbVar5;
    iVar3 = iVar1;
    puVar15 = param_2;
  } while (((bVar10 == 0) || (bVar10 == *param_4)) || (bVar10 == local_4d));
  pbVar5 = param_4 + 1;
  iVar3 = 0;
  do {
    iVar6 = iVar3;
    *(byte **)(param_2 + iVar6 * 4) = __s;
    if ((iVar6 == uVar12 - 1) && ((param_3 & 0x40000) != 0)) {
      if (uVar14 != 0) {
        bVar10 = *param_4;
        pbVar7 = (byte *)strchrnul((char *)__s,(uint)bVar10);
        if (uVar13 != 0) goto LAB_000b80a9;
        bVar2 = *pbVar7;
        goto LAB_000b801c;
      }
      pbVar7 = (byte *)strchrnul((char *)__s,0);
      if (uVar13 != 0) {
LAB_000b80a9:
        while (pcVar8 = strchr((char *)pbVar5,(uint)pbVar7[-1]), pcVar8 != (char *)0x0) {
          pbVar7 = pbVar7 + -1;
        }
        goto LAB_000b8008;
      }
      bVar2 = *pbVar7;
LAB_000b80e2:
      __s = pbVar7;
      if (bVar2 == 0) goto LAB_000b80e8;
      __s = pbVar7 + 1;
      *pbVar7 = 0;
      if ((param_3 & 0x10000) != 0) goto LAB_000b8134;
    }
    else {
      pbVar7 = pbVar5;
      if ((*param_4 != 0) && (pbVar7 = param_4, uVar14 == 0)) {
        pbVar7 = pbVar5;
      }
      sVar4 = strcspn((char *)__s,(char *)pbVar7);
      pbVar7 = __s + sVar4;
LAB_000b8008:
      bVar2 = *pbVar7;
      if (uVar14 == 0) goto LAB_000b80e2;
      bVar10 = *param_4;
LAB_000b801c:
      if (bVar10 != bVar2) goto LAB_000b80e2;
      *pbVar7 = 0;
      __s = pbVar7;
LAB_000b80e8:
      if ((param_3 & 0x10000) == 0) break;
LAB_000b8134:
      sVar4 = strspn((char *)__s,(char *)pbVar5);
      __s = __s + sVar4;
    }
    if (((*__s == 0) || (*__s == *param_4)) || (iVar3 = iVar6 + 1, (int)uVar12 <= iVar6 + 1)) break;
  } while( true );
  iVar6 = iVar6 + 1;
  if ((int)uVar16 <= iVar6) {
    return iVar6;
  }
  FUN_0001930a("bad line %u: %d tokens found, %d needed",param_1[6],iVar6,uVar16);
  iVar3 = iVar1;
  if ((param_3 & 0x100000) != 0) {
                    /* WARNING: Subroutine does not return */
    FUN_00019401();
  }
  goto code_r0x000b7f52;
}

