
int bb_parse_mode(char *s,uint current_mode)

{
  char *e;
  
                    /* WARNING: Subroutine does not return */
  __x86_get_pc_thunk_di();
}



uint FUN_000b8233(void)

{
  char *pcVar1;
  ulong uVar2;
  char *pcVar3;
  __mode_t __mask;
  char *pcVar4;
  char cVar5;
  char *pcVar6;
  uint uVar7;
  int iVar8;
  uint uVar9;
  uint uVar10;
  int unaff_EDI;
  int in_GS_OFFSET;
  undefined8 uVar11;
  char local_41;
  uint local_40;
  uint local_38;
  char *local_24;
  int local_20;
  
  uVar11 = FUN_00027c55();
  local_40 = (uint)((ulonglong)uVar11 >> 0x20);
  local_20 = *(int *)(in_GS_OFFSET + 0x14);
  local_41 = *(char *)uVar11;
  if ((byte)(local_41 - 0x30U) < 8) {
    uVar2 = strtoul((char *)uVar11,&local_24,8);
    local_40 = 0xffffffff;
    if ((*local_24 == '\0') && (uVar2 < 0x1000)) {
      local_40 = uVar2;
    }
  }
  else {
    while (local_41 != '\0') {
      local_40 = (uint)((ulonglong)uVar11 >> 0x20);
      pcVar3 = (char *)uVar11;
      if (local_41 != ',') {
        uVar9 = 0;
        pcVar1 = &UNK_0002082a + unaff_EDI;
        do {
          cVar5 = 'a';
          pcVar6 = pcVar1;
          while (cVar5 != local_41) {
            pcVar6 = pcVar6 + 1;
            cVar5 = *pcVar6;
            if (cVar5 == '\0') {
              local_38 = 0xfffff000;
              if (uVar9 != 0) {
                local_38 = ~uVar9;
              }
              goto LAB_000b8331;
            }
          }
          uVar9 = uVar9 | *(uint *)(unaff_EDI + 0x10305 + ((int)pcVar6 - (int)pcVar1) * 4);
          pcVar3 = pcVar3 + 1;
          local_41 = *pcVar3;
        } while (local_41 != '\0');
LAB_000b8305:
        local_40 = 0xffffffff;
        break;
      }
LAB_000b82a3:
      local_40 = (uint)((ulonglong)uVar11 >> 0x20);
      iVar8 = (int)uVar11;
      uVar11 = CONCAT44(local_40,iVar8 + 1);
      local_41 = *(char *)(iVar8 + 1);
    }
  }
LAB_000b82b5:
  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {
    return local_40;
  }
                    /* WARNING: Subroutine does not return */
  FUN_00017e20();
LAB_000b8331:
  if ((local_41 != '+') && (local_41 != '-')) {
    if (local_41 != '=') goto LAB_000b8305;
    local_40 = local_40 & local_38;
  }
  cVar5 = 'u';
  pcVar6 = &DAT_0002082b + unaff_EDI;
LAB_000b8354:
  if (pcVar3[1] != cVar5) goto LAB_000b8401;
  uVar7 = local_40 & *(uint *)(unaff_EDI + 0x10305 + ((int)pcVar6 - (int)pcVar1) * 4);
  uVar10 = uVar7 & 0x1ff;
  if ((uVar7 & 0x124) != 0) {
    uVar10 = uVar10 | 0x124;
  }
  if ((uVar10 & 0x92) != 0) {
    uVar10 = uVar10 | 0x92;
  }
  if ((uVar10 & 0x49) != 0) {
    uVar10 = uVar10 | 0x49;
  }
  pcVar3 = pcVar3 + 2;
LAB_000b83a3:
  if (uVar10 != 0) goto joined_r0x000b8458;
  goto LAB_000b83e5;
LAB_000b8401:
  pcVar6 = pcVar6 + 1;
  cVar5 = *pcVar6;
  if (cVar5 == '\0') goto code_r0x000b840c;
  goto LAB_000b8354;
code_r0x000b840c:
  pcVar3 = pcVar3 + 1;
  uVar10 = 0;
  pcVar6 = (char *)(unaff_EDI + 0x20823);
  do {
    cVar5 = *pcVar3;
    pcVar4 = pcVar6;
    if (cVar5 != 'r') {
      do {
        pcVar4 = pcVar4 + 1;
        if (*pcVar4 == '\0') goto LAB_000b83a3;
      } while (cVar5 != *pcVar4);
    }
    if (cVar5 == 'X') {
      if ((local_40 & 0x4049) != 0) {
        uVar10 = uVar10 | *(uint *)(unaff_EDI + 0x102ed + ((int)pcVar4 - (int)pcVar6) * 4);
      }
    }
    else {
      uVar10 = uVar10 | *(uint *)(unaff_EDI + 0x102ed + ((int)pcVar4 - (int)pcVar6) * 4);
    }
    pcVar3 = pcVar3 + 1;
  } while (*pcVar3 != '\0');
  if (uVar10 == 0) goto LAB_000b82b5;
joined_r0x000b8458:
  uVar7 = uVar9;
  if (uVar9 == 0) {
    __mask = umask(0);
    umask(__mask);
    uVar7 = ~__mask;
  }
  if (local_41 == '-') {
    local_40 = local_40 & ~(uVar10 & uVar7);
LAB_000b83e5:
    local_41 = *pcVar3;
  }
  else {
    local_40 = local_40 | uVar10 & uVar7;
    local_41 = *pcVar3;
  }
  if (local_41 == '\0') goto LAB_000b82b5;
  uVar11 = CONCAT44(local_40,pcVar3);
  if (local_41 == ',') goto LAB_000b82a3;
  goto LAB_000b8331;
}


PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
SUB ESP,0x3c
CALL 0x00027c55
ADD EDI,0x237e1
MOV dword ptr [ESP + 0x4],EDI
MOV dword ptr [ESP + 0xc],EDX
MOV EBX,dword ptr GS:[0x14]
MOV dword ptr [ESP + 0x2c],EBX
XOR EBX,EBX
MOV CL,byte ptr [EAX]
LEA EDX,[ECX + -0x30]
CMP DL,0x7
JA 0x000b8292
PUSH ECX
PUSH 0x8
LEA EDX,[ESP + 0x30]
PUSH EDX
PUSH EAX
MOV EBX,dword ptr [ESP + 0x14]
CALL 0x00016ac0
ADD ESP,0x10
MOV EDX,0xffffffff
MOV ECX,dword ptr [ESP + 0x28]
CMP byte ptr [ECX],0x0
JNZ 0x000b82b5
CMP EAX,0xfff
JA 0x000b82b5
MOV EDX,EAX
JMP 0x000b82b5
TEST CL,CL
JZ 0x000b82b1
MOV byte ptr [ESP + 0xb],CL
CMP byte ptr [ESP + 0xb],0x2c
JNZ 0x000b82d1
MOV EBP,EAX
LEA EAX,[EBP + 0x1]
MOV BL,byte ptr [EBP + 0x1]
MOV byte ptr [ESP + 0xb],BL
TEST BL,BL
JNZ 0x000b829a
MOV EDX,dword ptr [ESP + 0xc]
MOV EAX,EDX
MOV EBX,dword ptr [ESP + 0x2c]
XOR EBX,dword ptr GS:[0x14]
JNZ 0x000b82cc
ADD ESP,0x3c
POP EBX
POP ESI
POP EDI
POP EBP
RET
CALL 0x00017e20
XOR ESI,ESI
MOV EDI,dword ptr [ESP + 0x4]
LEA ECX,[EDI + 0xffffd049]
MOV dword ptr [ESP + 0x10],ECX
LEA EBX,[EDI + 0xfffecb24]
MOV CL,0x61
MOV EDX,dword ptr [ESP + 0x10]
CMP CL,byte ptr [ESP + 0xb]
JNZ 0x000b830c
SUB EDX,dword ptr [ESP + 0x10]
OR ESI,dword ptr [EBX + EDX*0x4]
INC EAX
MOV CL,byte ptr [EAX]
MOV byte ptr [ESP + 0xb],CL
TEST CL,CL
JNZ 0x000b82e7
MOV EDX,0xffffffff
JMP 0x000b82b5
INC EDX
MOV CL,byte ptr [EDX]
TEST CL,CL
JNZ 0x000b82ed
MOV dword ptr [ESP + 0x1c],ESI
MOV EDX,ESI
NOT EDX
MOV dword ptr [ESP + 0x14],0xfffff000
TEST ESI,ESI
JZ 0x000b832b
MOV dword ptr [ESP + 0x14],EDX
MOV EBP,EAX
MOV AL,byte ptr [ESP + 0xb]
CMP AL,0x2b
JZ 0x000b8345
CMP AL,0x2d
JZ 0x000b8345
CMP AL,0x3d
JNZ 0x000b8305
MOV EBX,dword ptr [ESP + 0x14]
AND dword ptr [ESP + 0xc],EBX
MOV DL,byte ptr [EBP + 0x1]
MOV CL,0x75
MOV EAX,dword ptr [ESP + 0x4]
LEA EAX,[EAX + 0xffffd04a]
CMP DL,CL
JNZ 0x000b8401
SUB EAX,dword ptr [ESP + 0x10]
MOV EDI,dword ptr [ESP + 0x4]
MOV EBX,dword ptr [ESP + 0xc]
AND EBX,dword ptr [EDI + EAX*0x4 + 0xfffecb24]
MOV EAX,EBX
MOV ESI,EBX
AND ESI,0x1ff
TEST EAX,0x124
JZ 0x000b8386
OR ESI,0x124
TEST ESI,0x92
JZ 0x000b8394
OR ESI,0x92
TEST ESI,0x49
JNZ 0x000b847b
ADD EBP,0x2
TEST ESI,ESI
JZ 0x000b83e5
MOV EAX,dword ptr [ESP + 0x1c]
MOV EDI,EAX
TEST EAX,EAX
JNZ 0x000b83d2
SUB ESP,0xc
PUSH 0x0
MOV EBX,dword ptr [ESP + 0x14]
CALL 0x00017420
MOV EDI,EAX
MOV dword ptr [ESP],EAX
MOV EBX,dword ptr [ESP + 0x14]
CALL 0x00017420
NOT EDI
ADD ESP,0x10
AND ESI,EDI
CMP byte ptr [ESP + 0xb],0x2d
JNZ 0x000b8463
NOT ESI
AND dword ptr [ESP + 0xc],ESI
MOV AL,byte ptr [EBP]
MOV byte ptr [ESP + 0xb],AL
TEST AL,AL
JZ 0x000b82b1
CMP AL,0x2c
JNZ 0x000b8331
JMP 0x000b82a3
INC EAX
MOV CL,byte ptr [EAX]
TEST CL,CL
JNZ 0x000b8354
INC EBP
MOV EAX,dword ptr [ESP + 0xc]
AND EAX,0x4049
MOV dword ptr [ESP + 0x18],EAX
XOR ESI,ESI
MOV EAX,dword ptr [ESP + 0x4]
LEA EBX,[EAX + 0xffffd042]
LEA EDI,[EAX + 0xfffecb0c]
MOV DL,byte ptr [EBP]
MOV CL,0x72
MOV EAX,EBX
CMP DL,CL
JNZ 0x000b8483
CMP DL,0x58
JZ 0x000b8494
SUB EAX,EBX
OR ESI,dword ptr [EDI + EAX*0x4]
INC EBP
CMP byte ptr [EBP],0x0
JNZ 0x000b842c
TEST ESI,ESI
JZ 0x000b82b1
MOV EAX,dword ptr [ESP + 0x1c]
MOV EDI,EAX
TEST EAX,EAX
JNZ 0x000b83d2
JMP 0x000b83b1
OR dword ptr [ESP + 0xc],ESI
MOV AL,byte ptr [EBP]
MOV byte ptr [ESP + 0xb],AL
TEST AL,AL
JZ 0x000b82b1
JMP 0x000b83f4
OR ESI,0x49
JMP 0x000b83a0
INC EAX
MOV CL,byte ptr [EAX]
TEST CL,CL
JZ 0x000b83a3
CMP DL,CL
JNZ 0x000b8483
JMP 0x000b8437
MOV EDX,dword ptr [ESP + 0x18]
TEST EDX,EDX
JZ 0x000b8441
SUB EAX,EBX
OR ESI,dword ptr [EDI + EAX*0x4]
JMP 0x000b8441
(translation_unit "uint FUN_000b8233(void)\n\n{\n  char *pcVar1;\n  ulong uVar2;\n  char *pcVar3;\n  __mode_t __mask;\n  char *pcVar4;\n  char cVar5;\n  char *pcVar6;\n  uint uVar7;\n  int iVar8;\n  uint uVar9;\n  uint uVar10;\n  int unaff_EDI;\n  int in_GS_OFFSET;\n  undefined8 uVar11;\n  char local_41;\n  uint local_40;\n  uint local_38;\n  char *local_24;\n  int local_20;\n  \n  uVar11 = FUN_00027c55();\n  local_40 = (uint)((ulonglong)uVar11 >> 0x20);\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  local_41 = *(char *)uVar11;\n  if ((byte)(local_41 - 0x30U) < 8) {\n    uVar2 = strtoul((char *)uVar11,&local_24,8);\n    local_40 = 0xffffffff;\n    if ((*local_24 == '\0') && (uVar2 < 0x1000)) {\n      local_40 = uVar2;\n    }\n  }\n  else {\n    while (local_41 != '\0') {\n      local_40 = (uint)((ulonglong)uVar11 >> 0x20);\n      pcVar3 = (char *)uVar11;\n      if (local_41 != ',') {\n        uVar9 = 0;\n        pcVar1 = &UNK_0002082a + unaff_EDI;\n        do {\n          cVar5 = 'a';\n          pcVar6 = pcVar1;\n          while (cVar5 != local_41) {\n            pcVar6 = pcVar6 + 1;\n            cVar5 = *pcVar6;\n            if (cVar5 == '\0') {\n              local_38 = 0xfffff000;\n              if (uVar9 != 0) {\n                local_38 = ~uVar9;\n              }\n              goto LAB_000b8331;\n            }\n          }\n          uVar9 = uVar9 | *(uint *)(unaff_EDI + 0x10305 + ((int)pcVar6 - (int)pcVar1) * 4);\n          pcVar3 = pcVar3 + 1;\n          local_41 = *pcVar3;\n        } while (local_41 != '\0');\nLAB_000b8305:\n        local_40 = 0xffffffff;\n        break;\n      }\nLAB_000b82a3:\n      local_40 = (uint)((ulonglong)uVar11 >> 0x20);\n      iVar8 = (int)uVar11;\n      uVar11 = CONCAT44(local_40,iVar8 + 1);\n      local_41 = *(char *)(iVar8 + 1);\n    }\n  }\nLAB_000b82b5:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return local_40;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_00017e20();\nLAB_000b8331:\n  if ((local_41 != '+') && (local_41 != '-')) {\n    if (local_41 != '=') goto LAB_000b8305;\n    local_40 = local_40 & local_38;\n  }\n  cVar5 = 'u';\n  pcVar6 = &DAT_0002082b + unaff_EDI;\nLAB_000b8354:\n  if (pcVar3[1] != cVar5) goto LAB_000b8401;\n  uVar7 = local_40 & *(uint *)(unaff_EDI + 0x10305 + ((int)pcVar6 - (int)pcVar1) * 4);\n  uVar10 = uVar7 & 0x1ff;\n  if ((uVar7 & 0x124) != 0) {\n    uVar10 = uVar10 | 0x124;\n  }\n  if ((uVar10 & 0x92) != 0) {\n    uVar10 = uVar10 | 0x92;\n  }\n  if ((uVar10 & 0x49) != 0) {\n    uVar10 = uVar10 | 0x49;\n  }\n  pcVar3 = pcVar3 + 2;\nLAB_000b83a3:\n  if (uVar10 != 0) goto joined_r0x000b8458;\n  goto LAB_000b83e5;\nLAB_000b8401:\n  pcVar6 = pcVar6 + 1;\n  cVar5 = *pcVar6;\n  if (cVar5 == '\0') goto code_r0x000b840c;\n  goto LAB_000b8354;\ncode_r0x000b840c:\n  pcVar3 = pcVar3 + 1;\n  uVar10 = 0;\n  pcVar6 = (char *)(unaff_EDI + 0x20823);\n  do {\n    cVar5 = *pcVar3;\n    pcVar4 = pcVar6;\n    if (cVar5 != 'r') {\n      do {\n        pcVar4 = pcVar4 + 1;\n        if (*pcVar4 == '\0') goto LAB_000b83a3;\n      } while (cVar5 != *pcVar4);\n    }\n    if (cVar5 == 'X') {\n      if ((local_40 & 0x4049) != 0) {\n        uVar10 = uVar10 | *(uint *)(unaff_EDI + 0x102ed + ((int)pcVar4 - (int)pcVar6) * 4);\n      }\n    }\n    else {\n      uVar10 = uVar10 | *(uint *)(unaff_EDI + 0x102ed + ((int)pcVar4 - (int)pcVar6) * 4);\n    }\n    pcVar3 = pcVar3 + 1;\n  } while (*pcVar3 != '\0');\n  if (uVar10 == 0) goto LAB_000b82b5;\njoined_r0x000b8458:\n  uVar7 = uVar9;\n  if (uVar9 == 0) {\n    __mask = umask(0);\n    umask(__mask);\n    uVar7 = ~__mask;\n  }\n  if (local_41 == '-') {\n    local_40 = local_40 & ~(uVar10 & uVar7);\nLAB_000b83e5:\n    local_41 = *pcVar3;\n  }\n  else {\n    local_40 = local_40 | uVar10 & uVar7;\n    local_41 = *pcVar3;\n  }\n  if (local_41 == '\0') goto LAB_000b82b5;\n  uVar11 = CONCAT44(local_40,pcVar3);\n  if (local_41 == ',') goto LAB_000b82a3;\n  goto LAB_000b8331;\n}\n\n" (function_definition "uint FUN_000b8233(void)\n\n{\n  char *pcVar1;\n  ulong uVar2;\n  char *pcVar3;\n  __mode_t __mask;\n  char *pcVar4;\n  char cVar5;\n  char *pcVar6;\n  uint uVar7;\n  int iVar8;\n  uint uVar9;\n  uint uVar10;\n  int unaff_EDI;\n  int in_GS_OFFSET;\n  undefined8 uVar11;\n  char local_41;\n  uint local_40;\n  uint local_38;\n  char *local_24;\n  int local_20;\n  \n  uVar11 = FUN_00027c55();\n  local_40 = (uint)((ulonglong)uVar11 >> 0x20);\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  local_41 = *(char *)uVar11;\n  if ((byte)(local_41 - 0x30U) < 8) {\n    uVar2 = strtoul((char *)uVar11,&local_24,8);\n    local_40 = 0xffffffff;\n    if ((*local_24 == '\0') && (uVar2 < 0x1000)) {\n      local_40 = uVar2;\n    }\n  }\n  else {\n    while (local_41 != '\0') {\n      local_40 = (uint)((ulonglong)uVar11 >> 0x20);\n      pcVar3 = (char *)uVar11;\n      if (local_41 != ',') {\n        uVar9 = 0;\n        pcVar1 = &UNK_0002082a + unaff_EDI;\n        do {\n          cVar5 = 'a';\n          pcVar6 = pcVar1;\n          while (cVar5 != local_41) {\n            pcVar6 = pcVar6 + 1;\n            cVar5 = *pcVar6;\n            if (cVar5 == '\0') {\n              local_38 = 0xfffff000;\n              if (uVar9 != 0) {\n                local_38 = ~uVar9;\n              }\n              goto LAB_000b8331;\n            }\n          }\n          uVar9 = uVar9 | *(uint *)(unaff_EDI + 0x10305 + ((int)pcVar6 - (int)pcVar1) * 4);\n          pcVar3 = pcVar3 + 1;\n          local_41 = *pcVar3;\n        } while (local_41 != '\0');\nLAB_000b8305:\n        local_40 = 0xffffffff;\n        break;\n      }\nLAB_000b82a3:\n      local_40 = (uint)((ulonglong)uVar11 >> 0x20);\n      iVar8 = (int)uVar11;\n      uVar11 = CONCAT44(local_40,iVar8 + 1);\n      local_41 = *(char *)(iVar8 + 1);\n    }\n  }\nLAB_000b82b5:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return local_40;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_00017e20();\nLAB_000b8331:\n  if ((local_41 != '+') && (local_41 != '-')) {\n    if (local_41 != '=') goto LAB_000b8305;\n    local_40 = local_40 & local_38;\n  }\n  cVar5 = 'u';\n  pcVar6 = &DAT_0002082b + unaff_EDI;\nLAB_000b8354:\n  if (pcVar3[1] != cVar5) goto LAB_000b8401;\n  uVar7 = local_40 & *(uint *)(unaff_EDI + 0x10305 + ((int)pcVar6 - (int)pcVar1) * 4);\n  uVar10 = uVar7 & 0x1ff;\n  if ((uVar7 & 0x124) != 0) {\n    uVar10 = uVar10 | 0x124;\n  }\n  if ((uVar10 & 0x92) != 0) {\n    uVar10 = uVar10 | 0x92;\n  }\n  if ((uVar10 & 0x49) != 0) {\n    uVar10 = uVar10 | 0x49;\n  }\n  pcVar3 = pcVar3 + 2;\nLAB_000b83a3:\n  if (uVar10 != 0) goto joined_r0x000b8458;\n  goto LAB_000b83e5;\nLAB_000b8401:\n  pcVar6 = pcVar6 + 1;\n  cVar5 = *pcVar6;\n  if (cVar5 == '\0') goto code_r0x000b840c;\n  goto LAB_000b8354;\ncode_r0x000b840c:\n  pcVar3 = pcVar3 + 1;\n  uVar10 = 0;\n  pcVar6 = (char *)(unaff_EDI + 0x20823);\n  do {\n    cVar5 = *pcVar3;\n    pcVar4 = pcVar6;\n    if (cVar5 != 'r') {\n      do {\n        pcVar4 = pcVar4 + 1;\n        if (*pcVar4 == '\0') goto LAB_000b83a3;\n      } while (cVar5 != *pcVar4);\n    }\n    if (cVar5 == 'X') {\n      if ((local_40 & 0x4049) != 0) {\n        uVar10 = uVar10 | *(uint *)(unaff_EDI + 0x102ed + ((int)pcVar4 - (int)pcVar6) * 4);\n      }\n    }\n    else {\n      uVar10 = uVar10 | *(uint *)(unaff_EDI + 0x102ed + ((int)pcVar4 - (int)pcVar6) * 4);\n    }\n    pcVar3 = pcVar3 + 1;\n  } while (*pcVar3 != '\0');\n  if (uVar10 == 0) goto LAB_000b82b5;\njoined_r0x000b8458:\n  uVar7 = uVar9;\n  if (uVar9 == 0) {\n    __mask = umask(0);\n    umask(__mask);\n    uVar7 = ~__mask;\n  }\n  if (local_41 == '-') {\n    local_40 = local_40 & ~(uVar10 & uVar7);\nLAB_000b83e5:\n    local_41 = *pcVar3;\n  }\n  else {\n    local_40 = local_40 | uVar10 & uVar7;\n    local_41 = *pcVar3;\n  }\n  if (local_41 == '\0') goto LAB_000b82b5;\n  uVar11 = CONCAT44(local_40,pcVar3);\n  if (local_41 == ',') goto LAB_000b82a3;\n  goto LAB_000b8331;\n}" type_identifier (function_declarator "FUN_000b8233(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  char *pcVar1;\n  ulong uVar2;\n  char *pcVar3;\n  __mode_t __mask;\n  char *pcVar4;\n  char cVar5;\n  char *pcVar6;\n  uint uVar7;\n  int iVar8;\n  uint uVar9;\n  uint uVar10;\n  int unaff_EDI;\n  int in_GS_OFFSET;\n  undefined8 uVar11;\n  char local_41;\n  uint local_40;\n  uint local_38;\n  char *local_24;\n  int local_20;\n  \n  uVar11 = FUN_00027c55();\n  local_40 = (uint)((ulonglong)uVar11 >> 0x20);\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  local_41 = *(char *)uVar11;\n  if ((byte)(local_41 - 0x30U) < 8) {\n    uVar2 = strtoul((char *)uVar11,&local_24,8);\n    local_40 = 0xffffffff;\n    if ((*local_24 == '\0') && (uVar2 < 0x1000)) {\n      local_40 = uVar2;\n    }\n  }\n  else {\n    while (local_41 != '\0') {\n      local_40 = (uint)((ulonglong)uVar11 >> 0x20);\n      pcVar3 = (char *)uVar11;\n      if (local_41 != ',') {\n        uVar9 = 0;\n        pcVar1 = &UNK_0002082a + unaff_EDI;\n        do {\n          cVar5 = 'a';\n          pcVar6 = pcVar1;\n          while (cVar5 != local_41) {\n            pcVar6 = pcVar6 + 1;\n            cVar5 = *pcVar6;\n            if (cVar5 == '\0') {\n              local_38 = 0xfffff000;\n              if (uVar9 != 0) {\n                local_38 = ~uVar9;\n              }\n              goto LAB_000b8331;\n            }\n          }\n          uVar9 = uVar9 | *(uint *)(unaff_EDI + 0x10305 + ((int)pcVar6 - (int)pcVar1) * 4);\n          pcVar3 = pcVar3 + 1;\n          local_41 = *pcVar3;\n        } while (local_41 != '\0');\nLAB_000b8305:\n        local_40 = 0xffffffff;\n        break;\n      }\nLAB_000b82a3:\n      local_40 = (uint)((ulonglong)uVar11 >> 0x20);\n      iVar8 = (int)uVar11;\n      uVar11 = CONCAT44(local_40,iVar8 + 1);\n      local_41 = *(char *)(iVar8 + 1);\n    }\n  }\nLAB_000b82b5:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return local_40;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_00017e20();\nLAB_000b8331:\n  if ((local_41 != '+') && (local_41 != '-')) {\n    if (local_41 != '=') goto LAB_000b8305;\n    local_40 = local_40 & local_38;\n  }\n  cVar5 = 'u';\n  pcVar6 = &DAT_0002082b + unaff_EDI;\nLAB_000b8354:\n  if (pcVar3[1] != cVar5) goto LAB_000b8401;\n  uVar7 = local_40 & *(uint *)(unaff_EDI + 0x10305 + ((int)pcVar6 - (int)pcVar1) * 4);\n  uVar10 = uVar7 & 0x1ff;\n  if ((uVar7 & 0x124) != 0) {\n    uVar10 = uVar10 | 0x124;\n  }\n  if ((uVar10 & 0x92) != 0) {\n    uVar10 = uVar10 | 0x92;\n  }\n  if ((uVar10 & 0x49) != 0) {\n    uVar10 = uVar10 | 0x49;\n  }\n  pcVar3 = pcVar3 + 2;\nLAB_000b83a3:\n  if (uVar10 != 0) goto joined_r0x000b8458;\n  goto LAB_000b83e5;\nLAB_000b8401:\n  pcVar6 = pcVar6 + 1;\n  cVar5 = *pcVar6;\n  if (cVar5 == '\0') goto code_r0x000b840c;\n  goto LAB_000b8354;\ncode_r0x000b840c:\n  pcVar3 = pcVar3 + 1;\n  uVar10 = 0;\n  pcVar6 = (char *)(unaff_EDI + 0x20823);\n  do {\n    cVar5 = *pcVar3;\n    pcVar4 = pcVar6;\n    if (cVar5 != 'r') {\n      do {\n        pcVar4 = pcVar4 + 1;\n        if (*pcVar4 == '\0') goto LAB_000b83a3;\n      } while (cVar5 != *pcVar4);\n    }\n    if (cVar5 == 'X') {\n      if ((local_40 & 0x4049) != 0) {\n        uVar10 = uVar10 | *(uint *)(unaff_EDI + 0x102ed + ((int)pcVar4 - (int)pcVar6) * 4);\n      }\n    }\n    else {\n      uVar10 = uVar10 | *(uint *)(unaff_EDI + 0x102ed + ((int)pcVar4 - (int)pcVar6) * 4);\n    }\n    pcVar3 = pcVar3 + 1;\n  } while (*pcVar3 != '\0');\n  if (uVar10 == 0) goto LAB_000b82b5;\njoined_r0x000b8458:\n  uVar7 = uVar9;\n  if (uVar9 == 0) {\n    __mask = umask(0);\n    umask(__mask);\n    uVar7 = ~__mask;\n  }\n  if (local_41 == '-') {\n    local_40 = local_40 & ~(uVar10 & uVar7);\nLAB_000b83e5:\n    local_41 = *pcVar3;\n  }\n  else {\n    local_40 = local_40 | uVar10 & uVar7;\n    local_41 = *pcVar3;\n  }\n  if (local_41 == '\0') goto LAB_000b82b5;\n  uVar11 = CONCAT44(local_40,pcVar3);\n  if (local_41 == ',') goto LAB_000b82a3;\n  goto LAB_000b8331;\n}" { (declaration "char *pcVar1;" primitive_type (pointer_declarator "*pcVar1" * identifier) ;) (declaration "ulong uVar2;" type_identifier identifier ;) (declaration "char *pcVar3;" primitive_type (pointer_declarator "*pcVar3" * identifier) ;) (declaration "__mode_t __mask;" type_identifier identifier ;) (declaration "char *pcVar4;" primitive_type (pointer_declarator "*pcVar4" * identifier) ;) (declaration "char cVar5;" primitive_type identifier ;) (declaration "char *pcVar6;" primitive_type (pointer_declarator "*pcVar6" * identifier) ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "int unaff_EDI;" primitive_type identifier ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "undefined8 uVar11;" type_identifier identifier ;) (declaration "char local_41;" primitive_type identifier ;) (declaration "uint local_40;" type_identifier identifier ;) (declaration "uint local_38;" type_identifier identifier ;) (declaration "char *local_24;" primitive_type (pointer_declarator "*local_24" * identifier) ;) (declaration "int local_20;" primitive_type identifier ;) (expression_statement "uVar11 = FUN_00027c55();" (assignment_expression "uVar11 = FUN_00027c55()" identifier = (call_expression "FUN_00027c55()" identifier (argument_list "()" ( )))) ;) (expression_statement "local_40 = (uint)((ulonglong)uVar11 >> 0x20);" (assignment_expression "local_40 = (uint)((ulonglong)uVar11 >> 0x20)" identifier = (call_expression "(uint)((ulonglong)uVar11 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)uVar11 >> 0x20)" ( (binary_expression "(ulonglong)uVar11 >> 0x20" (cast_expression "(ulonglong)uVar11" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_20 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_20 = *(int *)(in_GS_OFFSET + 0x14)" identifier = (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) ;) (expression_statement "local_41 = *(char *)uVar11;" (assignment_expression "local_41 = *(char *)uVar11" identifier = (pointer_expression "*(char *)uVar11" * (cast_expression "(char *)uVar11" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if ((byte)(local_41 - 0x30U) < 8) {\n    uVar2 = strtoul((char *)uVar11,&local_24,8);\n    local_40 = 0xffffffff;\n    if ((*local_24 == '\0') && (uVar2 < 0x1000)) {\n      local_40 = uVar2;\n    }\n  }\n  else {\n    while (local_41 != '\0') {\n      local_40 = (uint)((ulonglong)uVar11 >> 0x20);\n      pcVar3 = (char *)uVar11;\n      if (local_41 != ',') {\n        uVar9 = 0;\n        pcVar1 = &UNK_0002082a + unaff_EDI;\n        do {\n          cVar5 = 'a';\n          pcVar6 = pcVar1;\n          while (cVar5 != local_41) {\n            pcVar6 = pcVar6 + 1;\n            cVar5 = *pcVar6;\n            if (cVar5 == '\0') {\n              local_38 = 0xfffff000;\n              if (uVar9 != 0) {\n                local_38 = ~uVar9;\n              }\n              goto LAB_000b8331;\n            }\n          }\n          uVar9 = uVar9 | *(uint *)(unaff_EDI + 0x10305 + ((int)pcVar6 - (int)pcVar1) * 4);\n          pcVar3 = pcVar3 + 1;\n          local_41 = *pcVar3;\n        } while (local_41 != '\0');\nLAB_000b8305:\n        local_40 = 0xffffffff;\n        break;\n      }\nLAB_000b82a3:\n      local_40 = (uint)((ulonglong)uVar11 >> 0x20);\n      iVar8 = (int)uVar11;\n      uVar11 = CONCAT44(local_40,iVar8 + 1);\n      local_41 = *(char *)(iVar8 + 1);\n    }\n  }" if (parenthesized_expression "((byte)(local_41 - 0x30U) < 8)" ( (binary_expression "(byte)(local_41 - 0x30U) < 8" (call_expression "(byte)(local_41 - 0x30U)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(local_41 - 0x30U)" ( (binary_expression "local_41 - 0x30U" identifier - number_literal) ))) < number_literal) )) (compound_statement "{\n    uVar2 = strtoul((char *)uVar11,&local_24,8);\n    local_40 = 0xffffffff;\n    if ((*local_24 == '\0') && (uVar2 < 0x1000)) {\n      local_40 = uVar2;\n    }\n  }" { (expression_statement "uVar2 = strtoul((char *)uVar11,&local_24,8);" (assignment_expression "uVar2 = strtoul((char *)uVar11,&local_24,8)" identifier = (call_expression "strtoul((char *)uVar11,&local_24,8)" identifier (argument_list "((char *)uVar11,&local_24,8)" ( (cast_expression "(char *)uVar11" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (pointer_expression "&local_24" & identifier) , number_literal )))) ;) (expression_statement "local_40 = 0xffffffff;" (assignment_expression "local_40 = 0xffffffff" identifier = number_literal) ;) (if_statement "if ((*local_24 == '\0') && (uVar2 < 0x1000)) {\n      local_40 = uVar2;\n    }" if (parenthesized_expression "((*local_24 == '\0') && (uVar2 < 0x1000))" ( (binary_expression "(*local_24 == '\0') && (uVar2 < 0x1000)" (parenthesized_expression "(*local_24 == '\0')" ( (binary_expression "*local_24 == '\0'" (pointer_expression "*local_24" * identifier) == (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(uVar2 < 0x1000)" ( (binary_expression "uVar2 < 0x1000" identifier < number_literal) ))) )) (compound_statement "{\n      local_40 = uVar2;\n    }" { (expression_statement "local_40 = uVar2;" (assignment_expression "local_40 = uVar2" identifier = identifier) ;) })) }) (else_clause "else {\n    while (local_41 != '\0') {\n      local_40 = (uint)((ulonglong)uVar11 >> 0x20);\n      pcVar3 = (char *)uVar11;\n      if (local_41 != ',') {\n        uVar9 = 0;\n        pcVar1 = &UNK_0002082a + unaff_EDI;\n        do {\n          cVar5 = 'a';\n          pcVar6 = pcVar1;\n          while (cVar5 != local_41) {\n            pcVar6 = pcVar6 + 1;\n            cVar5 = *pcVar6;\n            if (cVar5 == '\0') {\n              local_38 = 0xfffff000;\n              if (uVar9 != 0) {\n                local_38 = ~uVar9;\n              }\n              goto LAB_000b8331;\n            }\n          }\n          uVar9 = uVar9 | *(uint *)(unaff_EDI + 0x10305 + ((int)pcVar6 - (int)pcVar1) * 4);\n          pcVar3 = pcVar3 + 1;\n          local_41 = *pcVar3;\n        } while (local_41 != '\0');\nLAB_000b8305:\n        local_40 = 0xffffffff;\n        break;\n      }\nLAB_000b82a3:\n      local_40 = (uint)((ulonglong)uVar11 >> 0x20);\n      iVar8 = (int)uVar11;\n      uVar11 = CONCAT44(local_40,iVar8 + 1);\n      local_41 = *(char *)(iVar8 + 1);\n    }\n  }" else (compound_statement "{\n    while (local_41 != '\0') {\n      local_40 = (uint)((ulonglong)uVar11 >> 0x20);\n      pcVar3 = (char *)uVar11;\n      if (local_41 != ',') {\n        uVar9 = 0;\n        pcVar1 = &UNK_0002082a + unaff_EDI;\n        do {\n          cVar5 = 'a';\n          pcVar6 = pcVar1;\n          while (cVar5 != local_41) {\n            pcVar6 = pcVar6 + 1;\n            cVar5 = *pcVar6;\n            if (cVar5 == '\0') {\n              local_38 = 0xfffff000;\n              if (uVar9 != 0) {\n                local_38 = ~uVar9;\n              }\n              goto LAB_000b8331;\n            }\n          }\n          uVar9 = uVar9 | *(uint *)(unaff_EDI + 0x10305 + ((int)pcVar6 - (int)pcVar1) * 4);\n          pcVar3 = pcVar3 + 1;\n          local_41 = *pcVar3;\n        } while (local_41 != '\0');\nLAB_000b8305:\n        local_40 = 0xffffffff;\n        break;\n      }\nLAB_000b82a3:\n      local_40 = (uint)((ulonglong)uVar11 >> 0x20);\n      iVar8 = (int)uVar11;\n      uVar11 = CONCAT44(local_40,iVar8 + 1);\n      local_41 = *(char *)(iVar8 + 1);\n    }\n  }" { (while_statement "while (local_41 != '\0') {\n      local_40 = (uint)((ulonglong)uVar11 >> 0x20);\n      pcVar3 = (char *)uVar11;\n      if (local_41 != ',') {\n        uVar9 = 0;\n        pcVar1 = &UNK_0002082a + unaff_EDI;\n        do {\n          cVar5 = 'a';\n          pcVar6 = pcVar1;\n          while (cVar5 != local_41) {\n            pcVar6 = pcVar6 + 1;\n            cVar5 = *pcVar6;\n            if (cVar5 == '\0') {\n              local_38 = 0xfffff000;\n              if (uVar9 != 0) {\n                local_38 = ~uVar9;\n              }\n              goto LAB_000b8331;\n            }\n          }\n          uVar9 = uVar9 | *(uint *)(unaff_EDI + 0x10305 + ((int)pcVar6 - (int)pcVar1) * 4);\n          pcVar3 = pcVar3 + 1;\n          local_41 = *pcVar3;\n        } while (local_41 != '\0');\nLAB_000b8305:\n        local_40 = 0xffffffff;\n        break;\n      }\nLAB_000b82a3:\n      local_40 = (uint)((ulonglong)uVar11 >> 0x20);\n      iVar8 = (int)uVar11;\n      uVar11 = CONCAT44(local_40,iVar8 + 1);\n      local_41 = *(char *)(iVar8 + 1);\n    }" while (parenthesized_expression "(local_41 != '\0')" ( (binary_expression "local_41 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      local_40 = (uint)((ulonglong)uVar11 >> 0x20);\n      pcVar3 = (char *)uVar11;\n      if (local_41 != ',') {\n        uVar9 = 0;\n        pcVar1 = &UNK_0002082a + unaff_EDI;\n        do {\n          cVar5 = 'a';\n          pcVar6 = pcVar1;\n          while (cVar5 != local_41) {\n            pcVar6 = pcVar6 + 1;\n            cVar5 = *pcVar6;\n            if (cVar5 == '\0') {\n              local_38 = 0xfffff000;\n              if (uVar9 != 0) {\n                local_38 = ~uVar9;\n              }\n              goto LAB_000b8331;\n            }\n          }\n          uVar9 = uVar9 | *(uint *)(unaff_EDI + 0x10305 + ((int)pcVar6 - (int)pcVar1) * 4);\n          pcVar3 = pcVar3 + 1;\n          local_41 = *pcVar3;\n        } while (local_41 != '\0');\nLAB_000b8305:\n        local_40 = 0xffffffff;\n        break;\n      }\nLAB_000b82a3:\n      local_40 = (uint)((ulonglong)uVar11 >> 0x20);\n      iVar8 = (int)uVar11;\n      uVar11 = CONCAT44(local_40,iVar8 + 1);\n      local_41 = *(char *)(iVar8 + 1);\n    }" { (expression_statement "local_40 = (uint)((ulonglong)uVar11 >> 0x20);" (assignment_expression "local_40 = (uint)((ulonglong)uVar11 >> 0x20)" identifier = (call_expression "(uint)((ulonglong)uVar11 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)uVar11 >> 0x20)" ( (binary_expression "(ulonglong)uVar11 >> 0x20" (cast_expression "(ulonglong)uVar11" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pcVar3 = (char *)uVar11;" (assignment_expression "pcVar3 = (char *)uVar11" identifier = (cast_expression "(char *)uVar11" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (local_41 != ',') {\n        uVar9 = 0;\n        pcVar1 = &UNK_0002082a + unaff_EDI;\n        do {\n          cVar5 = 'a';\n          pcVar6 = pcVar1;\n          while (cVar5 != local_41) {\n            pcVar6 = pcVar6 + 1;\n            cVar5 = *pcVar6;\n            if (cVar5 == '\0') {\n              local_38 = 0xfffff000;\n              if (uVar9 != 0) {\n                local_38 = ~uVar9;\n              }\n              goto LAB_000b8331;\n            }\n          }\n          uVar9 = uVar9 | *(uint *)(unaff_EDI + 0x10305 + ((int)pcVar6 - (int)pcVar1) * 4);\n          pcVar3 = pcVar3 + 1;\n          local_41 = *pcVar3;\n        } while (local_41 != '\0');\nLAB_000b8305:\n        local_40 = 0xffffffff;\n        break;\n      }" if (parenthesized_expression "(local_41 != ',')" ( (binary_expression "local_41 != ','" identifier != (char_literal "','" ' character ')) )) (compound_statement "{\n        uVar9 = 0;\n        pcVar1 = &UNK_0002082a + unaff_EDI;\n        do {\n          cVar5 = 'a';\n          pcVar6 = pcVar1;\n          while (cVar5 != local_41) {\n            pcVar6 = pcVar6 + 1;\n            cVar5 = *pcVar6;\n            if (cVar5 == '\0') {\n              local_38 = 0xfffff000;\n              if (uVar9 != 0) {\n                local_38 = ~uVar9;\n              }\n              goto LAB_000b8331;\n            }\n          }\n          uVar9 = uVar9 | *(uint *)(unaff_EDI + 0x10305 + ((int)pcVar6 - (int)pcVar1) * 4);\n          pcVar3 = pcVar3 + 1;\n          local_41 = *pcVar3;\n        } while (local_41 != '\0');\nLAB_000b8305:\n        local_40 = 0xffffffff;\n        break;\n      }" { (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" identifier = number_literal) ;) (expression_statement "pcVar1 = &UNK_0002082a + unaff_EDI;" (assignment_expression "pcVar1 = &UNK_0002082a + unaff_EDI" identifier = (binary_expression "&UNK_0002082a + unaff_EDI" (pointer_expression "&UNK_0002082a" & identifier) + identifier)) ;) (do_statement "do {\n          cVar5 = 'a';\n          pcVar6 = pcVar1;\n          while (cVar5 != local_41) {\n            pcVar6 = pcVar6 + 1;\n            cVar5 = *pcVar6;\n            if (cVar5 == '\0') {\n              local_38 = 0xfffff000;\n              if (uVar9 != 0) {\n                local_38 = ~uVar9;\n              }\n              goto LAB_000b8331;\n            }\n          }\n          uVar9 = uVar9 | *(uint *)(unaff_EDI + 0x10305 + ((int)pcVar6 - (int)pcVar1) * 4);\n          pcVar3 = pcVar3 + 1;\n          local_41 = *pcVar3;\n        } while (local_41 != '\0');" do (compound_statement "{\n          cVar5 = 'a';\n          pcVar6 = pcVar1;\n          while (cVar5 != local_41) {\n            pcVar6 = pcVar6 + 1;\n            cVar5 = *pcVar6;\n            if (cVar5 == '\0') {\n              local_38 = 0xfffff000;\n              if (uVar9 != 0) {\n                local_38 = ~uVar9;\n              }\n              goto LAB_000b8331;\n            }\n          }\n          uVar9 = uVar9 | *(uint *)(unaff_EDI + 0x10305 + ((int)pcVar6 - (int)pcVar1) * 4);\n          pcVar3 = pcVar3 + 1;\n          local_41 = *pcVar3;\n        }" { (expression_statement "cVar5 = 'a';" (assignment_expression "cVar5 = 'a'" identifier = (char_literal "'a'" ' character ')) ;) (expression_statement "pcVar6 = pcVar1;" (assignment_expression "pcVar6 = pcVar1" identifier = identifier) ;) (while_statement "while (cVar5 != local_41) {\n            pcVar6 = pcVar6 + 1;\n            cVar5 = *pcVar6;\n            if (cVar5 == '\0') {\n              local_38 = 0xfffff000;\n              if (uVar9 != 0) {\n                local_38 = ~uVar9;\n              }\n              goto LAB_000b8331;\n            }\n          }" while (parenthesized_expression "(cVar5 != local_41)" ( (binary_expression "cVar5 != local_41" identifier != identifier) )) (compound_statement "{\n            pcVar6 = pcVar6 + 1;\n            cVar5 = *pcVar6;\n            if (cVar5 == '\0') {\n              local_38 = 0xfffff000;\n              if (uVar9 != 0) {\n                local_38 = ~uVar9;\n              }\n              goto LAB_000b8331;\n            }\n          }" { (expression_statement "pcVar6 = pcVar6 + 1;" (assignment_expression "pcVar6 = pcVar6 + 1" identifier = (binary_expression "pcVar6 + 1" identifier + number_literal)) ;) (expression_statement "cVar5 = *pcVar6;" (assignment_expression "cVar5 = *pcVar6" identifier = (pointer_expression "*pcVar6" * identifier)) ;) (if_statement "if (cVar5 == '\0') {\n              local_38 = 0xfffff000;\n              if (uVar9 != 0) {\n                local_38 = ~uVar9;\n              }\n              goto LAB_000b8331;\n            }" if (parenthesized_expression "(cVar5 == '\0')" ( (binary_expression "cVar5 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n              local_38 = 0xfffff000;\n              if (uVar9 != 0) {\n                local_38 = ~uVar9;\n              }\n              goto LAB_000b8331;\n            }" { (expression_statement "local_38 = 0xfffff000;" (assignment_expression "local_38 = 0xfffff000" identifier = number_literal) ;) (if_statement "if (uVar9 != 0) {\n                local_38 = ~uVar9;\n              }" if (parenthesized_expression "(uVar9 != 0)" ( (binary_expression "uVar9 != 0" identifier != number_literal) )) (compound_statement "{\n                local_38 = ~uVar9;\n              }" { (expression_statement "local_38 = ~uVar9;" (assignment_expression "local_38 = ~uVar9" identifier = (unary_expression "~uVar9" ~ identifier)) ;) })) (goto_statement "goto LAB_000b8331;" goto statement_identifier ;) })) })) (expression_statement "uVar9 = uVar9 | *(uint *)(unaff_EDI + 0x10305 + ((int)pcVar6 - (int)pcVar1) * 4);" (assignment_expression "uVar9 = uVar9 | *(uint *)(unaff_EDI + 0x10305 + ((int)pcVar6 - (int)pcVar1) * 4)" identifier = (binary_expression "uVar9 | *(uint *)(unaff_EDI + 0x10305 + ((int)pcVar6 - (int)pcVar1) * 4)" identifier | (pointer_expression "*(uint *)(unaff_EDI + 0x10305 + ((int)pcVar6 - (int)pcVar1) * 4)" * (cast_expression "(uint *)(unaff_EDI + 0x10305 + ((int)pcVar6 - (int)pcVar1) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x10305 + ((int)pcVar6 - (int)pcVar1) * 4)" ( (binary_expression "unaff_EDI + 0x10305 + ((int)pcVar6 - (int)pcVar1) * 4" (binary_expression "unaff_EDI + 0x10305" identifier + number_literal) + (binary_expression "((int)pcVar6 - (int)pcVar1) * 4" (parenthesized_expression "((int)pcVar6 - (int)pcVar1)" ( (binary_expression "(int)pcVar6 - (int)pcVar1" (cast_expression "(int)pcVar6" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pcVar1" ( (type_descriptor "int" primitive_type) ) identifier)) )) * number_literal)) )))))) ;) (expression_statement "pcVar3 = pcVar3 + 1;" (assignment_expression "pcVar3 = pcVar3 + 1" identifier = (binary_expression "pcVar3 + 1" identifier + number_literal)) ;) (expression_statement "local_41 = *pcVar3;" (assignment_expression "local_41 = *pcVar3" identifier = (pointer_expression "*pcVar3" * identifier)) ;) }) while (parenthesized_expression "(local_41 != '\0')" ( (binary_expression "local_41 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (labeled_statement "LAB_000b8305:\n        local_40 = 0xffffffff;" statement_identifier : (expression_statement "local_40 = 0xffffffff;" (assignment_expression "local_40 = 0xffffffff" identifier = number_literal) ;)) (break_statement "break;" break ;) })) (labeled_statement "LAB_000b82a3:\n      local_40 = (uint)((ulonglong)uVar11 >> 0x20);" statement_identifier : (expression_statement "local_40 = (uint)((ulonglong)uVar11 >> 0x20);" (assignment_expression "local_40 = (uint)((ulonglong)uVar11 >> 0x20)" identifier = (call_expression "(uint)((ulonglong)uVar11 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)uVar11 >> 0x20)" ( (binary_expression "(ulonglong)uVar11 >> 0x20" (cast_expression "(ulonglong)uVar11" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;)) (expression_statement "iVar8 = (int)uVar11;" (assignment_expression "iVar8 = (int)uVar11" identifier = (cast_expression "(int)uVar11" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "uVar11 = CONCAT44(local_40,iVar8 + 1);" (assignment_expression "uVar11 = CONCAT44(local_40,iVar8 + 1)" identifier = (call_expression "CONCAT44(local_40,iVar8 + 1)" identifier (argument_list "(local_40,iVar8 + 1)" ( identifier , (binary_expression "iVar8 + 1" identifier + number_literal) )))) ;) (expression_statement "local_41 = *(char *)(iVar8 + 1);" (assignment_expression "local_41 = *(char *)(iVar8 + 1)" identifier = (pointer_expression "*(char *)(iVar8 + 1)" * (cast_expression "(char *)(iVar8 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 1)" ( (binary_expression "iVar8 + 1" identifier + number_literal) ))))) ;) })) }))) (labeled_statement "LAB_000b82b5:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return local_40;\n  }" statement_identifier : (if_statement "if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return local_40;\n  }" if (parenthesized_expression "(local_20 == *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "local_20 == *(int *)(in_GS_OFFSET + 0x14)" identifier == (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n    return local_40;\n  }" { (return_statement "return local_40;" return identifier ;) }))) comment (expression_statement "FUN_00017e20();" (call_expression "FUN_00017e20()" identifier (argument_list "()" ( ))) ;) (labeled_statement "LAB_000b8331:\n  if ((local_41 != '+') && (local_41 != '-')) {\n    if (local_41 != '=') goto LAB_000b8305;\n    local_40 = local_40 & local_38;\n  }" statement_identifier : (if_statement "if ((local_41 != '+') && (local_41 != '-')) {\n    if (local_41 != '=') goto LAB_000b8305;\n    local_40 = local_40 & local_38;\n  }" if (parenthesized_expression "((local_41 != '+') && (local_41 != '-'))" ( (binary_expression "(local_41 != '+') && (local_41 != '-')" (parenthesized_expression "(local_41 != '+')" ( (binary_expression "local_41 != '+'" identifier != (char_literal "'+'" ' character ')) )) && (parenthesized_expression "(local_41 != '-')" ( (binary_expression "local_41 != '-'" identifier != (char_literal "'-'" ' character ')) ))) )) (compound_statement "{\n    if (local_41 != '=') goto LAB_000b8305;\n    local_40 = local_40 & local_38;\n  }" { (if_statement "if (local_41 != '=') goto LAB_000b8305;" if (parenthesized_expression "(local_41 != '=')" ( (binary_expression "local_41 != '='" identifier != (char_literal "'='" ' character ')) )) (goto_statement "goto LAB_000b8305;" goto statement_identifier ;)) (expression_statement "local_40 = local_40 & local_38;" (assignment_expression "local_40 = local_40 & local_38" identifier = (binary_expression "local_40 & local_38" identifier & identifier)) ;) }))) (expression_statement "cVar5 = 'u';" (assignment_expression "cVar5 = 'u'" identifier = (char_literal "'u'" ' character ')) ;) (expression_statement "pcVar6 = &DAT_0002082b + unaff_EDI;" (assignment_expression "pcVar6 = &DAT_0002082b + unaff_EDI" identifier = (binary_expression "&DAT_0002082b + unaff_EDI" (pointer_expression "&DAT_0002082b" & identifier) + identifier)) ;) (labeled_statement "LAB_000b8354:\n  if (pcVar3[1] != cVar5) goto LAB_000b8401;" statement_identifier : (if_statement "if (pcVar3[1] != cVar5) goto LAB_000b8401;" if (parenthesized_expression "(pcVar3[1] != cVar5)" ( (binary_expression "pcVar3[1] != cVar5" (subscript_expression "pcVar3[1]" identifier [ number_literal ]) != identifier) )) (goto_statement "goto LAB_000b8401;" goto statement_identifier ;))) (expression_statement "uVar7 = local_40 & *(uint *)(unaff_EDI + 0x10305 + ((int)pcVar6 - (int)pcVar1) * 4);" (assignment_expression "uVar7 = local_40 & *(uint *)(unaff_EDI + 0x10305 + ((int)pcVar6 - (int)pcVar1) * 4)" identifier = (binary_expression "local_40 & *(uint *)(unaff_EDI + 0x10305 + ((int)pcVar6 - (int)pcVar1) * 4)" identifier & (pointer_expression "*(uint *)(unaff_EDI + 0x10305 + ((int)pcVar6 - (int)pcVar1) * 4)" * (cast_expression "(uint *)(unaff_EDI + 0x10305 + ((int)pcVar6 - (int)pcVar1) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x10305 + ((int)pcVar6 - (int)pcVar1) * 4)" ( (binary_expression "unaff_EDI + 0x10305 + ((int)pcVar6 - (int)pcVar1) * 4" (binary_expression "unaff_EDI + 0x10305" identifier + number_literal) + (binary_expression "((int)pcVar6 - (int)pcVar1) * 4" (parenthesized_expression "((int)pcVar6 - (int)pcVar1)" ( (binary_expression "(int)pcVar6 - (int)pcVar1" (cast_expression "(int)pcVar6" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pcVar1" ( (type_descriptor "int" primitive_type) ) identifier)) )) * number_literal)) )))))) ;) (expression_statement "uVar10 = uVar7 & 0x1ff;" (assignment_expression "uVar10 = uVar7 & 0x1ff" identifier = (binary_expression "uVar7 & 0x1ff" identifier & number_literal)) ;) (if_statement "if ((uVar7 & 0x124) != 0) {\n    uVar10 = uVar10 | 0x124;\n  }" if (parenthesized_expression "((uVar7 & 0x124) != 0)" ( (binary_expression "(uVar7 & 0x124) != 0" (parenthesized_expression "(uVar7 & 0x124)" ( (binary_expression "uVar7 & 0x124" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n    uVar10 = uVar10 | 0x124;\n  }" { (expression_statement "uVar10 = uVar10 | 0x124;" (assignment_expression "uVar10 = uVar10 | 0x124" identifier = (binary_expression "uVar10 | 0x124" identifier | number_literal)) ;) })) (if_statement "if ((uVar10 & 0x92) != 0) {\n    uVar10 = uVar10 | 0x92;\n  }" if (parenthesized_expression "((uVar10 & 0x92) != 0)" ( (binary_expression "(uVar10 & 0x92) != 0" (parenthesized_expression "(uVar10 & 0x92)" ( (binary_expression "uVar10 & 0x92" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n    uVar10 = uVar10 | 0x92;\n  }" { (expression_statement "uVar10 = uVar10 | 0x92;" (assignment_expression "uVar10 = uVar10 | 0x92" identifier = (binary_expression "uVar10 | 0x92" identifier | number_literal)) ;) })) (if_statement "if ((uVar10 & 0x49) != 0) {\n    uVar10 = uVar10 | 0x49;\n  }" if (parenthesized_expression "((uVar10 & 0x49) != 0)" ( (binary_expression "(uVar10 & 0x49) != 0" (parenthesized_expression "(uVar10 & 0x49)" ( (binary_expression "uVar10 & 0x49" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n    uVar10 = uVar10 | 0x49;\n  }" { (expression_statement "uVar10 = uVar10 | 0x49;" (assignment_expression "uVar10 = uVar10 | 0x49" identifier = (binary_expression "uVar10 | 0x49" identifier | number_literal)) ;) })) (expression_statement "pcVar3 = pcVar3 + 2;" (assignment_expression "pcVar3 = pcVar3 + 2" identifier = (binary_expression "pcVar3 + 2" identifier + number_literal)) ;) (labeled_statement "LAB_000b83a3:\n  if (uVar10 != 0) goto joined_r0x000b8458;" statement_identifier : (if_statement "if (uVar10 != 0) goto joined_r0x000b8458;" if (parenthesized_expression "(uVar10 != 0)" ( (binary_expression "uVar10 != 0" identifier != number_literal) )) (goto_statement "goto joined_r0x000b8458;" goto statement_identifier ;))) (goto_statement "goto LAB_000b83e5;" goto statement_identifier ;) (labeled_statement "LAB_000b8401:\n  pcVar6 = pcVar6 + 1;" statement_identifier : (expression_statement "pcVar6 = pcVar6 + 1;" (assignment_expression "pcVar6 = pcVar6 + 1" identifier = (binary_expression "pcVar6 + 1" identifier + number_literal)) ;)) (expression_statement "cVar5 = *pcVar6;" (assignment_expression "cVar5 = *pcVar6" identifier = (pointer_expression "*pcVar6" * identifier)) ;) (if_statement "if (cVar5 == '\0') goto code_r0x000b840c;" if (parenthesized_expression "(cVar5 == '\0')" ( (binary_expression "cVar5 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto code_r0x000b840c;" goto statement_identifier ;)) (goto_statement "goto LAB_000b8354;" goto statement_identifier ;) (labeled_statement "code_r0x000b840c:\n  pcVar3 = pcVar3 + 1;" statement_identifier : (expression_statement "pcVar3 = pcVar3 + 1;" (assignment_expression "pcVar3 = pcVar3 + 1" identifier = (binary_expression "pcVar3 + 1" identifier + number_literal)) ;)) (expression_statement "uVar10 = 0;" (assignment_expression "uVar10 = 0" identifier = number_literal) ;) (expression_statement "pcVar6 = (char *)(unaff_EDI + 0x20823);" (assignment_expression "pcVar6 = (char *)(unaff_EDI + 0x20823)" identifier = (cast_expression "(char *)(unaff_EDI + 0x20823)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x20823)" ( (binary_expression "unaff_EDI + 0x20823" identifier + number_literal) )))) ;) (do_statement "do {\n    cVar5 = *pcVar3;\n    pcVar4 = pcVar6;\n    if (cVar5 != 'r') {\n      do {\n        pcVar4 = pcVar4 + 1;\n        if (*pcVar4 == '\0') goto LAB_000b83a3;\n      } while (cVar5 != *pcVar4);\n    }\n    if (cVar5 == 'X') {\n      if ((local_40 & 0x4049) != 0) {\n        uVar10 = uVar10 | *(uint *)(unaff_EDI + 0x102ed + ((int)pcVar4 - (int)pcVar6) * 4);\n      }\n    }\n    else {\n      uVar10 = uVar10 | *(uint *)(unaff_EDI + 0x102ed + ((int)pcVar4 - (int)pcVar6) * 4);\n    }\n    pcVar3 = pcVar3 + 1;\n  } while (*pcVar3 != '\0');" do (compound_statement "{\n    cVar5 = *pcVar3;\n    pcVar4 = pcVar6;\n    if (cVar5 != 'r') {\n      do {\n        pcVar4 = pcVar4 + 1;\n        if (*pcVar4 == '\0') goto LAB_000b83a3;\n      } while (cVar5 != *pcVar4);\n    }\n    if (cVar5 == 'X') {\n      if ((local_40 & 0x4049) != 0) {\n        uVar10 = uVar10 | *(uint *)(unaff_EDI + 0x102ed + ((int)pcVar4 - (int)pcVar6) * 4);\n      }\n    }\n    else {\n      uVar10 = uVar10 | *(uint *)(unaff_EDI + 0x102ed + ((int)pcVar4 - (int)pcVar6) * 4);\n    }\n    pcVar3 = pcVar3 + 1;\n  }" { (expression_statement "cVar5 = *pcVar3;" (assignment_expression "cVar5 = *pcVar3" identifier = (pointer_expression "*pcVar3" * identifier)) ;) (expression_statement "pcVar4 = pcVar6;" (assignment_expression "pcVar4 = pcVar6" identifier = identifier) ;) (if_statement "if (cVar5 != 'r') {\n      do {\n        pcVar4 = pcVar4 + 1;\n        if (*pcVar4 == '\0') goto LAB_000b83a3;\n      } while (cVar5 != *pcVar4);\n    }" if (parenthesized_expression "(cVar5 != 'r')" ( (binary_expression "cVar5 != 'r'" identifier != (char_literal "'r'" ' character ')) )) (compound_statement "{\n      do {\n        pcVar4 = pcVar4 + 1;\n        if (*pcVar4 == '\0') goto LAB_000b83a3;\n      } while (cVar5 != *pcVar4);\n    }" { (do_statement "do {\n        pcVar4 = pcVar4 + 1;\n        if (*pcVar4 == '\0') goto LAB_000b83a3;\n      } while (cVar5 != *pcVar4);" do (compound_statement "{\n        pcVar4 = pcVar4 + 1;\n        if (*pcVar4 == '\0') goto LAB_000b83a3;\n      }" { (expression_statement "pcVar4 = pcVar4 + 1;" (assignment_expression "pcVar4 = pcVar4 + 1" identifier = (binary_expression "pcVar4 + 1" identifier + number_literal)) ;) (if_statement "if (*pcVar4 == '\0') goto LAB_000b83a3;" if (parenthesized_expression "(*pcVar4 == '\0')" ( (binary_expression "*pcVar4 == '\0'" (pointer_expression "*pcVar4" * identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_000b83a3;" goto statement_identifier ;)) }) while (parenthesized_expression "(cVar5 != *pcVar4)" ( (binary_expression "cVar5 != *pcVar4" identifier != (pointer_expression "*pcVar4" * identifier)) )) ;) })) (if_statement "if (cVar5 == 'X') {\n      if ((local_40 & 0x4049) != 0) {\n        uVar10 = uVar10 | *(uint *)(unaff_EDI + 0x102ed + ((int)pcVar4 - (int)pcVar6) * 4);\n      }\n    }\n    else {\n      uVar10 = uVar10 | *(uint *)(unaff_EDI + 0x102ed + ((int)pcVar4 - (int)pcVar6) * 4);\n    }" if (parenthesized_expression "(cVar5 == 'X')" ( (binary_expression "cVar5 == 'X'" identifier == (char_literal "'X'" ' character ')) )) (compound_statement "{\n      if ((local_40 & 0x4049) != 0) {\n        uVar10 = uVar10 | *(uint *)(unaff_EDI + 0x102ed + ((int)pcVar4 - (int)pcVar6) * 4);\n      }\n    }" { (if_statement "if ((local_40 & 0x4049) != 0) {\n        uVar10 = uVar10 | *(uint *)(unaff_EDI + 0x102ed + ((int)pcVar4 - (int)pcVar6) * 4);\n      }" if (parenthesized_expression "((local_40 & 0x4049) != 0)" ( (binary_expression "(local_40 & 0x4049) != 0" (parenthesized_expression "(local_40 & 0x4049)" ( (binary_expression "local_40 & 0x4049" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n        uVar10 = uVar10 | *(uint *)(unaff_EDI + 0x102ed + ((int)pcVar4 - (int)pcVar6) * 4);\n      }" { (expression_statement "uVar10 = uVar10 | *(uint *)(unaff_EDI + 0x102ed + ((int)pcVar4 - (int)pcVar6) * 4);" (assignment_expression "uVar10 = uVar10 | *(uint *)(unaff_EDI + 0x102ed + ((int)pcVar4 - (int)pcVar6) * 4)" identifier = (binary_expression "uVar10 | *(uint *)(unaff_EDI + 0x102ed + ((int)pcVar4 - (int)pcVar6) * 4)" identifier | (pointer_expression "*(uint *)(unaff_EDI + 0x102ed + ((int)pcVar4 - (int)pcVar6) * 4)" * (cast_expression "(uint *)(unaff_EDI + 0x102ed + ((int)pcVar4 - (int)pcVar6) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x102ed + ((int)pcVar4 - (int)pcVar6) * 4)" ( (binary_expression "unaff_EDI + 0x102ed + ((int)pcVar4 - (int)pcVar6) * 4" (binary_expression "unaff_EDI + 0x102ed" identifier + number_literal) + (binary_expression "((int)pcVar4 - (int)pcVar6) * 4" (parenthesized_expression "((int)pcVar4 - (int)pcVar6)" ( (binary_expression "(int)pcVar4 - (int)pcVar6" (cast_expression "(int)pcVar4" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pcVar6" ( (type_descriptor "int" primitive_type) ) identifier)) )) * number_literal)) )))))) ;) })) }) (else_clause "else {\n      uVar10 = uVar10 | *(uint *)(unaff_EDI + 0x102ed + ((int)pcVar4 - (int)pcVar6) * 4);\n    }" else (compound_statement "{\n      uVar10 = uVar10 | *(uint *)(unaff_EDI + 0x102ed + ((int)pcVar4 - (int)pcVar6) * 4);\n    }" { (expression_statement "uVar10 = uVar10 | *(uint *)(unaff_EDI + 0x102ed + ((int)pcVar4 - (int)pcVar6) * 4);" (assignment_expression "uVar10 = uVar10 | *(uint *)(unaff_EDI + 0x102ed + ((int)pcVar4 - (int)pcVar6) * 4)" identifier = (binary_expression "uVar10 | *(uint *)(unaff_EDI + 0x102ed + ((int)pcVar4 - (int)pcVar6) * 4)" identifier | (pointer_expression "*(uint *)(unaff_EDI + 0x102ed + ((int)pcVar4 - (int)pcVar6) * 4)" * (cast_expression "(uint *)(unaff_EDI + 0x102ed + ((int)pcVar4 - (int)pcVar6) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x102ed + ((int)pcVar4 - (int)pcVar6) * 4)" ( (binary_expression "unaff_EDI + 0x102ed + ((int)pcVar4 - (int)pcVar6) * 4" (binary_expression "unaff_EDI + 0x102ed" identifier + number_literal) + (binary_expression "((int)pcVar4 - (int)pcVar6) * 4" (parenthesized_expression "((int)pcVar4 - (int)pcVar6)" ( (binary_expression "(int)pcVar4 - (int)pcVar6" (cast_expression "(int)pcVar4" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pcVar6" ( (type_descriptor "int" primitive_type) ) identifier)) )) * number_literal)) )))))) ;) }))) (expression_statement "pcVar3 = pcVar3 + 1;" (assignment_expression "pcVar3 = pcVar3 + 1" identifier = (binary_expression "pcVar3 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(*pcVar3 != '\0')" ( (binary_expression "*pcVar3 != '\0'" (pointer_expression "*pcVar3" * identifier) != (char_literal "'\0'" ' escape_sequence ')) )) ;) (if_statement "if (uVar10 == 0) goto LAB_000b82b5;" if (parenthesized_expression "(uVar10 == 0)" ( (binary_expression "uVar10 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000b82b5;" goto statement_identifier ;)) (labeled_statement "joined_r0x000b8458:\n  uVar7 = uVar9;" statement_identifier : (expression_statement "uVar7 = uVar9;" (assignment_expression "uVar7 = uVar9" identifier = identifier) ;)) (if_statement "if (uVar9 == 0) {\n    __mask = umask(0);\n    umask(__mask);\n    uVar7 = ~__mask;\n  }" if (parenthesized_expression "(uVar9 == 0)" ( (binary_expression "uVar9 == 0" identifier == number_literal) )) (compound_statement "{\n    __mask = umask(0);\n    umask(__mask);\n    uVar7 = ~__mask;\n  }" { (expression_statement "__mask = umask(0);" (assignment_expression "__mask = umask(0)" identifier = (call_expression "umask(0)" identifier (argument_list "(0)" ( number_literal )))) ;) (expression_statement "umask(__mask);" (call_expression "umask(__mask)" identifier (argument_list "(__mask)" ( identifier ))) ;) (expression_statement "uVar7 = ~__mask;" (assignment_expression "uVar7 = ~__mask" identifier = (unary_expression "~__mask" ~ identifier)) ;) })) (if_statement "if (local_41 == '-') {\n    local_40 = local_40 & ~(uVar10 & uVar7);\nLAB_000b83e5:\n    local_41 = *pcVar3;\n  }\n  else {\n    local_40 = local_40 | uVar10 & uVar7;\n    local_41 = *pcVar3;\n  }" if (parenthesized_expression "(local_41 == '-')" ( (binary_expression "local_41 == '-'" identifier == (char_literal "'-'" ' character ')) )) (compound_statement "{\n    local_40 = local_40 & ~(uVar10 & uVar7);\nLAB_000b83e5:\n    local_41 = *pcVar3;\n  }" { (expression_statement "local_40 = local_40 & ~(uVar10 & uVar7);" (assignment_expression "local_40 = local_40 & ~(uVar10 & uVar7)" identifier = (binary_expression "local_40 & ~(uVar10 & uVar7)" identifier & (unary_expression "~(uVar10 & uVar7)" ~ (parenthesized_expression "(uVar10 & uVar7)" ( (binary_expression "uVar10 & uVar7" identifier & identifier) ))))) ;) (labeled_statement "LAB_000b83e5:\n    local_41 = *pcVar3;" statement_identifier : (expression_statement "local_41 = *pcVar3;" (assignment_expression "local_41 = *pcVar3" identifier = (pointer_expression "*pcVar3" * identifier)) ;)) }) (else_clause "else {\n    local_40 = local_40 | uVar10 & uVar7;\n    local_41 = *pcVar3;\n  }" else (compound_statement "{\n    local_40 = local_40 | uVar10 & uVar7;\n    local_41 = *pcVar3;\n  }" { (expression_statement "local_40 = local_40 | uVar10 & uVar7;" (assignment_expression "local_40 = local_40 | uVar10 & uVar7" identifier = (binary_expression "local_40 | uVar10 & uVar7" identifier | (binary_expression "uVar10 & uVar7" identifier & identifier))) ;) (expression_statement "local_41 = *pcVar3;" (assignment_expression "local_41 = *pcVar3" identifier = (pointer_expression "*pcVar3" * identifier)) ;) }))) (if_statement "if (local_41 == '\0') goto LAB_000b82b5;" if (parenthesized_expression "(local_41 == '\0')" ( (binary_expression "local_41 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_000b82b5;" goto statement_identifier ;)) (expression_statement "uVar11 = CONCAT44(local_40,pcVar3);" (assignment_expression "uVar11 = CONCAT44(local_40,pcVar3)" identifier = (call_expression "CONCAT44(local_40,pcVar3)" identifier (argument_list "(local_40,pcVar3)" ( identifier , identifier )))) ;) (if_statement "if (local_41 == ',') goto LAB_000b82a3;" if (parenthesized_expression "(local_41 == ',')" ( (binary_expression "local_41 == ','" identifier == (char_literal "','" ' character ')) )) (goto_statement "goto LAB_000b82a3;" goto statement_identifier ;)) (goto_statement "goto LAB_000b8331;" goto statement_identifier ;) })))
(translation_unit "int bb_parse_mode(char *s,uint current_mode)\n\n{\n  char *e;\n  \n                    /* WARNING: Subroutine does not return */\n  __x86_get_pc_thunk_di();\n}\n\n" (function_definition "int bb_parse_mode(char *s,uint current_mode)\n\n{\n  char *e;\n  \n                    /* WARNING: Subroutine does not return */\n  __x86_get_pc_thunk_di();\n}" primitive_type (function_declarator "bb_parse_mode(char *s,uint current_mode)" identifier (parameter_list "(char *s,uint current_mode)" ( (parameter_declaration "char *s" primitive_type (pointer_declarator "*s" * identifier)) , (parameter_declaration "uint current_mode" type_identifier identifier) ))) (compound_statement "{\n  char *e;\n  \n                    /* WARNING: Subroutine does not return */\n  __x86_get_pc_thunk_di();\n}" { (declaration "char *e;" primitive_type (pointer_declarator "*e" * identifier) ;) comment (expression_statement "__x86_get_pc_thunk_di();" (call_expression "__x86_get_pc_thunk_di()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit "uint FUN_000b8233(void)\n\n{\n  char *pcVar1;\n  ulong uVar2;\n  char *pcVar3;\n  __mode_t __mask;\n  char *pcVar4;\n  char cVar5;\n  char *pcVar6;\n  uint uVar7;\n  int iVar8;\n  uint uVar9;\n  uint uVar10;\n  int unaff_EDI;\n  int in_GS_OFFSET;\n  undefined8 uVar11;\n  char local_41;\n  uint local_40;\n  uint local_38;\n  char *local_24;\n  int local_20;\n  \n  uVar11 = FUN_00027c55();\n  local_40 = (uint)((ulonglong)uVar11 >> 0x20);\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  local_41 = *(char *)uVar11;\n  if ((byte)(local_41 - 0x30U) < 8) {\n    uVar2 = strtoul((char *)uVar11,&local_24,8);\n    local_40 = 0xffffffff;\n    if ((*local_24 == '\0') && (uVar2 < 0x1000)) {\n      local_40 = uVar2;\n    }\n  }\n  else {\n    while (local_41 != '\0') {\n      local_40 = (uint)((ulonglong)uVar11 >> 0x20);\n      pcVar3 = (char *)uVar11;\n      if (local_41 != ',') {\n        uVar9 = 0;\n        pcVar1 = &UNK_0002082a + unaff_EDI;\n        do {\n          cVar5 = 'a';\n          pcVar6 = pcVar1;\n          while (cVar5 != local_41) {\n            pcVar6 = pcVar6 + 1;\n            cVar5 = *pcVar6;\n            if (cVar5 == '\0') {\n              local_38 = 0xfffff000;\n              if (uVar9 != 0) {\n                local_38 = ~uVar9;\n              }\n              goto LAB_000b8331;\n            }\n          }\n          uVar9 = uVar9 | *(uint *)(unaff_EDI + 0x10305 + ((int)pcVar6 - (int)pcVar1) * 4);\n          pcVar3 = pcVar3 + 1;\n          local_41 = *pcVar3;\n        } while (local_41 != '\0');\nLAB_000b8305:\n        local_40 = 0xffffffff;\n        break;\n      }\nLAB_000b82a3:\n      local_40 = (uint)((ulonglong)uVar11 >> 0x20);\n      iVar8 = (int)uVar11;\n      uVar11 = CONCAT44(local_40,iVar8 + 1);\n      local_41 = *(char *)(iVar8 + 1);\n    }\n  }\nLAB_000b82b5:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return local_40;\n  }\n                    \n  FUN_00017e20();\nLAB_000b8331:\n  if ((local_41 != '+') && (local_41 != '-')) {\n    if (local_41 != '=') goto LAB_000b8305;\n    local_40 = local_40 & local_38;\n  }\n  cVar5 = 'u';\n  pcVar6 = &DAT_0002082b + unaff_EDI;\nLAB_000b8354:\n  if (pcVar3[1] != cVar5) goto LAB_000b8401;\n  uVar7 = local_40 & *(uint *)(unaff_EDI + 0x10305 + ((int)pcVar6 - (int)pcVar1) * 4);\n  uVar10 = uVar7 & 0x1ff;\n  if ((uVar7 & 0x124) != 0) {\n    uVar10 = uVar10 | 0x124;\n  }\n  if ((uVar10 & 0x92) != 0) {\n    uVar10 = uVar10 | 0x92;\n  }\n  if ((uVar10 & 0x49) != 0) {\n    uVar10 = uVar10 | 0x49;\n  }\n  pcVar3 = pcVar3 + 2;\nLAB_000b83a3:\n  if (uVar10 != 0) goto joined_r0x000b8458;\n  goto LAB_000b83e5;\nLAB_000b8401:\n  pcVar6 = pcVar6 + 1;\n  cVar5 = *pcVar6;\n  if (cVar5 == '\0') goto code_r0x000b840c;\n  goto LAB_000b8354;\ncode_r0x000b840c:\n  pcVar3 = pcVar3 + 1;\n  uVar10 = 0;\n  pcVar6 = (char *)(unaff_EDI + 0x20823);\n  do {\n    cVar5 = *pcVar3;\n    pcVar4 = pcVar6;\n    if (cVar5 != 'r') {\n      do {\n        pcVar4 = pcVar4 + 1;\n        if (*pcVar4 == '\0') goto LAB_000b83a3;\n      } while (cVar5 != *pcVar4);\n    }\n    if (cVar5 == 'X') {\n      if ((local_40 & 0x4049) != 0) {\n        uVar10 = uVar10 | *(uint *)(unaff_EDI + 0x102ed + ((int)pcVar4 - (int)pcVar6) * 4);\n      }\n    }\n    else {\n      uVar10 = uVar10 | *(uint *)(unaff_EDI + 0x102ed + ((int)pcVar4 - (int)pcVar6) * 4);\n    }\n    pcVar3 = pcVar3 + 1;\n  } while (*pcVar3 != '\0');\n  if (uVar10 == 0) goto LAB_000b82b5;\njoined_r0x000b8458:\n  uVar7 = uVar9;\n  if (uVar9 == 0) {\n    __mask = umask(0);\n    umask(__mask);\n    uVar7 = ~__mask;\n  }\n  if (local_41 == '-') {\n    local_40 = local_40 & ~(uVar10 & uVar7);\nLAB_000b83e5:\n    local_41 = *pcVar3;\n  }\n  else {\n    local_40 = local_40 | uVar10 & uVar7;\n    local_41 = *pcVar3;\n  }\n  if (local_41 == '\0') goto LAB_000b82b5;\n  uVar11 = CONCAT44(local_40,pcVar3);\n  if (local_41 == ',') goto LAB_000b82a3;\n  goto LAB_000b8331;\n}\n\n" (function_definition "uint FUN_000b8233(void)\n\n{\n  char *pcVar1;\n  ulong uVar2;\n  char *pcVar3;\n  __mode_t __mask;\n  char *pcVar4;\n  char cVar5;\n  char *pcVar6;\n  uint uVar7;\n  int iVar8;\n  uint uVar9;\n  uint uVar10;\n  int unaff_EDI;\n  int in_GS_OFFSET;\n  undefined8 uVar11;\n  char local_41;\n  uint local_40;\n  uint local_38;\n  char *local_24;\n  int local_20;\n  \n  uVar11 = FUN_00027c55();\n  local_40 = (uint)((ulonglong)uVar11 >> 0x20);\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  local_41 = *(char *)uVar11;\n  if ((byte)(local_41 - 0x30U) < 8) {\n    uVar2 = strtoul((char *)uVar11,&local_24,8);\n    local_40 = 0xffffffff;\n    if ((*local_24 == '\0') && (uVar2 < 0x1000)) {\n      local_40 = uVar2;\n    }\n  }\n  else {\n    while (local_41 != '\0') {\n      local_40 = (uint)((ulonglong)uVar11 >> 0x20);\n      pcVar3 = (char *)uVar11;\n      if (local_41 != ',') {\n        uVar9 = 0;\n        pcVar1 = &UNK_0002082a + unaff_EDI;\n        do {\n          cVar5 = 'a';\n          pcVar6 = pcVar1;\n          while (cVar5 != local_41) {\n            pcVar6 = pcVar6 + 1;\n            cVar5 = *pcVar6;\n            if (cVar5 == '\0') {\n              local_38 = 0xfffff000;\n              if (uVar9 != 0) {\n                local_38 = ~uVar9;\n              }\n              goto LAB_000b8331;\n            }\n          }\n          uVar9 = uVar9 | *(uint *)(unaff_EDI + 0x10305 + ((int)pcVar6 - (int)pcVar1) * 4);\n          pcVar3 = pcVar3 + 1;\n          local_41 = *pcVar3;\n        } while (local_41 != '\0');\nLAB_000b8305:\n        local_40 = 0xffffffff;\n        break;\n      }\nLAB_000b82a3:\n      local_40 = (uint)((ulonglong)uVar11 >> 0x20);\n      iVar8 = (int)uVar11;\n      uVar11 = CONCAT44(local_40,iVar8 + 1);\n      local_41 = *(char *)(iVar8 + 1);\n    }\n  }\nLAB_000b82b5:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return local_40;\n  }\n                    \n  FUN_00017e20();\nLAB_000b8331:\n  if ((local_41 != '+') && (local_41 != '-')) {\n    if (local_41 != '=') goto LAB_000b8305;\n    local_40 = local_40 & local_38;\n  }\n  cVar5 = 'u';\n  pcVar6 = &DAT_0002082b + unaff_EDI;\nLAB_000b8354:\n  if (pcVar3[1] != cVar5) goto LAB_000b8401;\n  uVar7 = local_40 & *(uint *)(unaff_EDI + 0x10305 + ((int)pcVar6 - (int)pcVar1) * 4);\n  uVar10 = uVar7 & 0x1ff;\n  if ((uVar7 & 0x124) != 0) {\n    uVar10 = uVar10 | 0x124;\n  }\n  if ((uVar10 & 0x92) != 0) {\n    uVar10 = uVar10 | 0x92;\n  }\n  if ((uVar10 & 0x49) != 0) {\n    uVar10 = uVar10 | 0x49;\n  }\n  pcVar3 = pcVar3 + 2;\nLAB_000b83a3:\n  if (uVar10 != 0) goto joined_r0x000b8458;\n  goto LAB_000b83e5;\nLAB_000b8401:\n  pcVar6 = pcVar6 + 1;\n  cVar5 = *pcVar6;\n  if (cVar5 == '\0') goto code_r0x000b840c;\n  goto LAB_000b8354;\ncode_r0x000b840c:\n  pcVar3 = pcVar3 + 1;\n  uVar10 = 0;\n  pcVar6 = (char *)(unaff_EDI + 0x20823);\n  do {\n    cVar5 = *pcVar3;\n    pcVar4 = pcVar6;\n    if (cVar5 != 'r') {\n      do {\n        pcVar4 = pcVar4 + 1;\n        if (*pcVar4 == '\0') goto LAB_000b83a3;\n      } while (cVar5 != *pcVar4);\n    }\n    if (cVar5 == 'X') {\n      if ((local_40 & 0x4049) != 0) {\n        uVar10 = uVar10 | *(uint *)(unaff_EDI + 0x102ed + ((int)pcVar4 - (int)pcVar6) * 4);\n      }\n    }\n    else {\n      uVar10 = uVar10 | *(uint *)(unaff_EDI + 0x102ed + ((int)pcVar4 - (int)pcVar6) * 4);\n    }\n    pcVar3 = pcVar3 + 1;\n  } while (*pcVar3 != '\0');\n  if (uVar10 == 0) goto LAB_000b82b5;\njoined_r0x000b8458:\n  uVar7 = uVar9;\n  if (uVar9 == 0) {\n    __mask = umask(0);\n    umask(__mask);\n    uVar7 = ~__mask;\n  }\n  if (local_41 == '-') {\n    local_40 = local_40 & ~(uVar10 & uVar7);\nLAB_000b83e5:\n    local_41 = *pcVar3;\n  }\n  else {\n    local_40 = local_40 | uVar10 & uVar7;\n    local_41 = *pcVar3;\n  }\n  if (local_41 == '\0') goto LAB_000b82b5;\n  uVar11 = CONCAT44(local_40,pcVar3);\n  if (local_41 == ',') goto LAB_000b82a3;\n  goto LAB_000b8331;\n}" type_identifier (function_declarator "FUN_000b8233(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  char *pcVar1;\n  ulong uVar2;\n  char *pcVar3;\n  __mode_t __mask;\n  char *pcVar4;\n  char cVar5;\n  char *pcVar6;\n  uint uVar7;\n  int iVar8;\n  uint uVar9;\n  uint uVar10;\n  int unaff_EDI;\n  int in_GS_OFFSET;\n  undefined8 uVar11;\n  char local_41;\n  uint local_40;\n  uint local_38;\n  char *local_24;\n  int local_20;\n  \n  uVar11 = FUN_00027c55();\n  local_40 = (uint)((ulonglong)uVar11 >> 0x20);\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  local_41 = *(char *)uVar11;\n  if ((byte)(local_41 - 0x30U) < 8) {\n    uVar2 = strtoul((char *)uVar11,&local_24,8);\n    local_40 = 0xffffffff;\n    if ((*local_24 == '\0') && (uVar2 < 0x1000)) {\n      local_40 = uVar2;\n    }\n  }\n  else {\n    while (local_41 != '\0') {\n      local_40 = (uint)((ulonglong)uVar11 >> 0x20);\n      pcVar3 = (char *)uVar11;\n      if (local_41 != ',') {\n        uVar9 = 0;\n        pcVar1 = &UNK_0002082a + unaff_EDI;\n        do {\n          cVar5 = 'a';\n          pcVar6 = pcVar1;\n          while (cVar5 != local_41) {\n            pcVar6 = pcVar6 + 1;\n            cVar5 = *pcVar6;\n            if (cVar5 == '\0') {\n              local_38 = 0xfffff000;\n              if (uVar9 != 0) {\n                local_38 = ~uVar9;\n              }\n              goto LAB_000b8331;\n            }\n          }\n          uVar9 = uVar9 | *(uint *)(unaff_EDI + 0x10305 + ((int)pcVar6 - (int)pcVar1) * 4);\n          pcVar3 = pcVar3 + 1;\n          local_41 = *pcVar3;\n        } while (local_41 != '\0');\nLAB_000b8305:\n        local_40 = 0xffffffff;\n        break;\n      }\nLAB_000b82a3:\n      local_40 = (uint)((ulonglong)uVar11 >> 0x20);\n      iVar8 = (int)uVar11;\n      uVar11 = CONCAT44(local_40,iVar8 + 1);\n      local_41 = *(char *)(iVar8 + 1);\n    }\n  }\nLAB_000b82b5:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return local_40;\n  }\n                    \n  FUN_00017e20();\nLAB_000b8331:\n  if ((local_41 != '+') && (local_41 != '-')) {\n    if (local_41 != '=') goto LAB_000b8305;\n    local_40 = local_40 & local_38;\n  }\n  cVar5 = 'u';\n  pcVar6 = &DAT_0002082b + unaff_EDI;\nLAB_000b8354:\n  if (pcVar3[1] != cVar5) goto LAB_000b8401;\n  uVar7 = local_40 & *(uint *)(unaff_EDI + 0x10305 + ((int)pcVar6 - (int)pcVar1) * 4);\n  uVar10 = uVar7 & 0x1ff;\n  if ((uVar7 & 0x124) != 0) {\n    uVar10 = uVar10 | 0x124;\n  }\n  if ((uVar10 & 0x92) != 0) {\n    uVar10 = uVar10 | 0x92;\n  }\n  if ((uVar10 & 0x49) != 0) {\n    uVar10 = uVar10 | 0x49;\n  }\n  pcVar3 = pcVar3 + 2;\nLAB_000b83a3:\n  if (uVar10 != 0) goto joined_r0x000b8458;\n  goto LAB_000b83e5;\nLAB_000b8401:\n  pcVar6 = pcVar6 + 1;\n  cVar5 = *pcVar6;\n  if (cVar5 == '\0') goto code_r0x000b840c;\n  goto LAB_000b8354;\ncode_r0x000b840c:\n  pcVar3 = pcVar3 + 1;\n  uVar10 = 0;\n  pcVar6 = (char *)(unaff_EDI + 0x20823);\n  do {\n    cVar5 = *pcVar3;\n    pcVar4 = pcVar6;\n    if (cVar5 != 'r') {\n      do {\n        pcVar4 = pcVar4 + 1;\n        if (*pcVar4 == '\0') goto LAB_000b83a3;\n      } while (cVar5 != *pcVar4);\n    }\n    if (cVar5 == 'X') {\n      if ((local_40 & 0x4049) != 0) {\n        uVar10 = uVar10 | *(uint *)(unaff_EDI + 0x102ed + ((int)pcVar4 - (int)pcVar6) * 4);\n      }\n    }\n    else {\n      uVar10 = uVar10 | *(uint *)(unaff_EDI + 0x102ed + ((int)pcVar4 - (int)pcVar6) * 4);\n    }\n    pcVar3 = pcVar3 + 1;\n  } while (*pcVar3 != '\0');\n  if (uVar10 == 0) goto LAB_000b82b5;\njoined_r0x000b8458:\n  uVar7 = uVar9;\n  if (uVar9 == 0) {\n    __mask = umask(0);\n    umask(__mask);\n    uVar7 = ~__mask;\n  }\n  if (local_41 == '-') {\n    local_40 = local_40 & ~(uVar10 & uVar7);\nLAB_000b83e5:\n    local_41 = *pcVar3;\n  }\n  else {\n    local_40 = local_40 | uVar10 & uVar7;\n    local_41 = *pcVar3;\n  }\n  if (local_41 == '\0') goto LAB_000b82b5;\n  uVar11 = CONCAT44(local_40,pcVar3);\n  if (local_41 == ',') goto LAB_000b82a3;\n  goto LAB_000b8331;\n}" { (declaration "char *pcVar1;" primitive_type (pointer_declarator "*pcVar1" * identifier) ;) (declaration "ulong uVar2;" type_identifier identifier ;) (declaration "char *pcVar3;" primitive_type (pointer_declarator "*pcVar3" * identifier) ;) (declaration "__mode_t __mask;" type_identifier identifier ;) (declaration "char *pcVar4;" primitive_type (pointer_declarator "*pcVar4" * identifier) ;) (declaration "char cVar5;" primitive_type identifier ;) (declaration "char *pcVar6;" primitive_type (pointer_declarator "*pcVar6" * identifier) ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "int unaff_EDI;" primitive_type identifier ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "undefined8 uVar11;" type_identifier identifier ;) (declaration "char local_41;" primitive_type identifier ;) (declaration "uint local_40;" type_identifier identifier ;) (declaration "uint local_38;" type_identifier identifier ;) (declaration "char *local_24;" primitive_type (pointer_declarator "*local_24" * identifier) ;) (declaration "int local_20;" primitive_type identifier ;) (expression_statement "uVar11 = FUN_00027c55();" (assignment_expression "uVar11 = FUN_00027c55()" identifier = (call_expression "FUN_00027c55()" identifier (argument_list "()" ( )))) ;) (expression_statement "local_40 = (uint)((ulonglong)uVar11 >> 0x20);" (assignment_expression "local_40 = (uint)((ulonglong)uVar11 >> 0x20)" identifier = (call_expression "(uint)((ulonglong)uVar11 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)uVar11 >> 0x20)" ( (binary_expression "(ulonglong)uVar11 >> 0x20" (cast_expression "(ulonglong)uVar11" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_20 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_20 = *(int *)(in_GS_OFFSET + 0x14)" identifier = (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) ;) (expression_statement "local_41 = *(char *)uVar11;" (assignment_expression "local_41 = *(char *)uVar11" identifier = (pointer_expression "*(char *)uVar11" * (cast_expression "(char *)uVar11" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if ((byte)(local_41 - 0x30U) < 8) {\n    uVar2 = strtoul((char *)uVar11,&local_24,8);\n    local_40 = 0xffffffff;\n    if ((*local_24 == '\0') && (uVar2 < 0x1000)) {\n      local_40 = uVar2;\n    }\n  }\n  else {\n    while (local_41 != '\0') {\n      local_40 = (uint)((ulonglong)uVar11 >> 0x20);\n      pcVar3 = (char *)uVar11;\n      if (local_41 != ',') {\n        uVar9 = 0;\n        pcVar1 = &UNK_0002082a + unaff_EDI;\n        do {\n          cVar5 = 'a';\n          pcVar6 = pcVar1;\n          while (cVar5 != local_41) {\n            pcVar6 = pcVar6 + 1;\n            cVar5 = *pcVar6;\n            if (cVar5 == '\0') {\n              local_38 = 0xfffff000;\n              if (uVar9 != 0) {\n                local_38 = ~uVar9;\n              }\n              goto LAB_000b8331;\n            }\n          }\n          uVar9 = uVar9 | *(uint *)(unaff_EDI + 0x10305 + ((int)pcVar6 - (int)pcVar1) * 4);\n          pcVar3 = pcVar3 + 1;\n          local_41 = *pcVar3;\n        } while (local_41 != '\0');\nLAB_000b8305:\n        local_40 = 0xffffffff;\n        break;\n      }\nLAB_000b82a3:\n      local_40 = (uint)((ulonglong)uVar11 >> 0x20);\n      iVar8 = (int)uVar11;\n      uVar11 = CONCAT44(local_40,iVar8 + 1);\n      local_41 = *(char *)(iVar8 + 1);\n    }\n  }" if (parenthesized_expression "((byte)(local_41 - 0x30U) < 8)" ( (binary_expression "(byte)(local_41 - 0x30U) < 8" (call_expression "(byte)(local_41 - 0x30U)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(local_41 - 0x30U)" ( (binary_expression "local_41 - 0x30U" identifier - number_literal) ))) < number_literal) )) (compound_statement "{\n    uVar2 = strtoul((char *)uVar11,&local_24,8);\n    local_40 = 0xffffffff;\n    if ((*local_24 == '\0') && (uVar2 < 0x1000)) {\n      local_40 = uVar2;\n    }\n  }" { (expression_statement "uVar2 = strtoul((char *)uVar11,&local_24,8);" (assignment_expression "uVar2 = strtoul((char *)uVar11,&local_24,8)" identifier = (call_expression "strtoul((char *)uVar11,&local_24,8)" identifier (argument_list "((char *)uVar11,&local_24,8)" ( (cast_expression "(char *)uVar11" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (pointer_expression "&local_24" & identifier) , number_literal )))) ;) (expression_statement "local_40 = 0xffffffff;" (assignment_expression "local_40 = 0xffffffff" identifier = number_literal) ;) (if_statement "if ((*local_24 == '\0') && (uVar2 < 0x1000)) {\n      local_40 = uVar2;\n    }" if (parenthesized_expression "((*local_24 == '\0') && (uVar2 < 0x1000))" ( (binary_expression "(*local_24 == '\0') && (uVar2 < 0x1000)" (parenthesized_expression "(*local_24 == '\0')" ( (binary_expression "*local_24 == '\0'" (pointer_expression "*local_24" * identifier) == (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(uVar2 < 0x1000)" ( (binary_expression "uVar2 < 0x1000" identifier < number_literal) ))) )) (compound_statement "{\n      local_40 = uVar2;\n    }" { (expression_statement "local_40 = uVar2;" (assignment_expression "local_40 = uVar2" identifier = identifier) ;) })) }) (else_clause "else {\n    while (local_41 != '\0') {\n      local_40 = (uint)((ulonglong)uVar11 >> 0x20);\n      pcVar3 = (char *)uVar11;\n      if (local_41 != ',') {\n        uVar9 = 0;\n        pcVar1 = &UNK_0002082a + unaff_EDI;\n        do {\n          cVar5 = 'a';\n          pcVar6 = pcVar1;\n          while (cVar5 != local_41) {\n            pcVar6 = pcVar6 + 1;\n            cVar5 = *pcVar6;\n            if (cVar5 == '\0') {\n              local_38 = 0xfffff000;\n              if (uVar9 != 0) {\n                local_38 = ~uVar9;\n              }\n              goto LAB_000b8331;\n            }\n          }\n          uVar9 = uVar9 | *(uint *)(unaff_EDI + 0x10305 + ((int)pcVar6 - (int)pcVar1) * 4);\n          pcVar3 = pcVar3 + 1;\n          local_41 = *pcVar3;\n        } while (local_41 != '\0');\nLAB_000b8305:\n        local_40 = 0xffffffff;\n        break;\n      }\nLAB_000b82a3:\n      local_40 = (uint)((ulonglong)uVar11 >> 0x20);\n      iVar8 = (int)uVar11;\n      uVar11 = CONCAT44(local_40,iVar8 + 1);\n      local_41 = *(char *)(iVar8 + 1);\n    }\n  }" else (compound_statement "{\n    while (local_41 != '\0') {\n      local_40 = (uint)((ulonglong)uVar11 >> 0x20);\n      pcVar3 = (char *)uVar11;\n      if (local_41 != ',') {\n        uVar9 = 0;\n        pcVar1 = &UNK_0002082a + unaff_EDI;\n        do {\n          cVar5 = 'a';\n          pcVar6 = pcVar1;\n          while (cVar5 != local_41) {\n            pcVar6 = pcVar6 + 1;\n            cVar5 = *pcVar6;\n            if (cVar5 == '\0') {\n              local_38 = 0xfffff000;\n              if (uVar9 != 0) {\n                local_38 = ~uVar9;\n              }\n              goto LAB_000b8331;\n            }\n          }\n          uVar9 = uVar9 | *(uint *)(unaff_EDI + 0x10305 + ((int)pcVar6 - (int)pcVar1) * 4);\n          pcVar3 = pcVar3 + 1;\n          local_41 = *pcVar3;\n        } while (local_41 != '\0');\nLAB_000b8305:\n        local_40 = 0xffffffff;\n        break;\n      }\nLAB_000b82a3:\n      local_40 = (uint)((ulonglong)uVar11 >> 0x20);\n      iVar8 = (int)uVar11;\n      uVar11 = CONCAT44(local_40,iVar8 + 1);\n      local_41 = *(char *)(iVar8 + 1);\n    }\n  }" { (while_statement "while (local_41 != '\0') {\n      local_40 = (uint)((ulonglong)uVar11 >> 0x20);\n      pcVar3 = (char *)uVar11;\n      if (local_41 != ',') {\n        uVar9 = 0;\n        pcVar1 = &UNK_0002082a + unaff_EDI;\n        do {\n          cVar5 = 'a';\n          pcVar6 = pcVar1;\n          while (cVar5 != local_41) {\n            pcVar6 = pcVar6 + 1;\n            cVar5 = *pcVar6;\n            if (cVar5 == '\0') {\n              local_38 = 0xfffff000;\n              if (uVar9 != 0) {\n                local_38 = ~uVar9;\n              }\n              goto LAB_000b8331;\n            }\n          }\n          uVar9 = uVar9 | *(uint *)(unaff_EDI + 0x10305 + ((int)pcVar6 - (int)pcVar1) * 4);\n          pcVar3 = pcVar3 + 1;\n          local_41 = *pcVar3;\n        } while (local_41 != '\0');\nLAB_000b8305:\n        local_40 = 0xffffffff;\n        break;\n      }\nLAB_000b82a3:\n      local_40 = (uint)((ulonglong)uVar11 >> 0x20);\n      iVar8 = (int)uVar11;\n      uVar11 = CONCAT44(local_40,iVar8 + 1);\n      local_41 = *(char *)(iVar8 + 1);\n    }" while (parenthesized_expression "(local_41 != '\0')" ( (binary_expression "local_41 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      local_40 = (uint)((ulonglong)uVar11 >> 0x20);\n      pcVar3 = (char *)uVar11;\n      if (local_41 != ',') {\n        uVar9 = 0;\n        pcVar1 = &UNK_0002082a + unaff_EDI;\n        do {\n          cVar5 = 'a';\n          pcVar6 = pcVar1;\n          while (cVar5 != local_41) {\n            pcVar6 = pcVar6 + 1;\n            cVar5 = *pcVar6;\n            if (cVar5 == '\0') {\n              local_38 = 0xfffff000;\n              if (uVar9 != 0) {\n                local_38 = ~uVar9;\n              }\n              goto LAB_000b8331;\n            }\n          }\n          uVar9 = uVar9 | *(uint *)(unaff_EDI + 0x10305 + ((int)pcVar6 - (int)pcVar1) * 4);\n          pcVar3 = pcVar3 + 1;\n          local_41 = *pcVar3;\n        } while (local_41 != '\0');\nLAB_000b8305:\n        local_40 = 0xffffffff;\n        break;\n      }\nLAB_000b82a3:\n      local_40 = (uint)((ulonglong)uVar11 >> 0x20);\n      iVar8 = (int)uVar11;\n      uVar11 = CONCAT44(local_40,iVar8 + 1);\n      local_41 = *(char *)(iVar8 + 1);\n    }" { (expression_statement "local_40 = (uint)((ulonglong)uVar11 >> 0x20);" (assignment_expression "local_40 = (uint)((ulonglong)uVar11 >> 0x20)" identifier = (call_expression "(uint)((ulonglong)uVar11 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)uVar11 >> 0x20)" ( (binary_expression "(ulonglong)uVar11 >> 0x20" (cast_expression "(ulonglong)uVar11" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pcVar3 = (char *)uVar11;" (assignment_expression "pcVar3 = (char *)uVar11" identifier = (cast_expression "(char *)uVar11" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (local_41 != ',') {\n        uVar9 = 0;\n        pcVar1 = &UNK_0002082a + unaff_EDI;\n        do {\n          cVar5 = 'a';\n          pcVar6 = pcVar1;\n          while (cVar5 != local_41) {\n            pcVar6 = pcVar6 + 1;\n            cVar5 = *pcVar6;\n            if (cVar5 == '\0') {\n              local_38 = 0xfffff000;\n              if (uVar9 != 0) {\n                local_38 = ~uVar9;\n              }\n              goto LAB_000b8331;\n            }\n          }\n          uVar9 = uVar9 | *(uint *)(unaff_EDI + 0x10305 + ((int)pcVar6 - (int)pcVar1) * 4);\n          pcVar3 = pcVar3 + 1;\n          local_41 = *pcVar3;\n        } while (local_41 != '\0');\nLAB_000b8305:\n        local_40 = 0xffffffff;\n        break;\n      }" if (parenthesized_expression "(local_41 != ',')" ( (binary_expression "local_41 != ','" identifier != (char_literal "','" ' character ')) )) (compound_statement "{\n        uVar9 = 0;\n        pcVar1 = &UNK_0002082a + unaff_EDI;\n        do {\n          cVar5 = 'a';\n          pcVar6 = pcVar1;\n          while (cVar5 != local_41) {\n            pcVar6 = pcVar6 + 1;\n            cVar5 = *pcVar6;\n            if (cVar5 == '\0') {\n              local_38 = 0xfffff000;\n              if (uVar9 != 0) {\n                local_38 = ~uVar9;\n              }\n              goto LAB_000b8331;\n            }\n          }\n          uVar9 = uVar9 | *(uint *)(unaff_EDI + 0x10305 + ((int)pcVar6 - (int)pcVar1) * 4);\n          pcVar3 = pcVar3 + 1;\n          local_41 = *pcVar3;\n        } while (local_41 != '\0');\nLAB_000b8305:\n        local_40 = 0xffffffff;\n        break;\n      }" { (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" identifier = number_literal) ;) (expression_statement "pcVar1 = &UNK_0002082a + unaff_EDI;" (assignment_expression "pcVar1 = &UNK_0002082a + unaff_EDI" identifier = (binary_expression "&UNK_0002082a + unaff_EDI" (pointer_expression "&UNK_0002082a" & identifier) + identifier)) ;) (do_statement "do {\n          cVar5 = 'a';\n          pcVar6 = pcVar1;\n          while (cVar5 != local_41) {\n            pcVar6 = pcVar6 + 1;\n            cVar5 = *pcVar6;\n            if (cVar5 == '\0') {\n              local_38 = 0xfffff000;\n              if (uVar9 != 0) {\n                local_38 = ~uVar9;\n              }\n              goto LAB_000b8331;\n            }\n          }\n          uVar9 = uVar9 | *(uint *)(unaff_EDI + 0x10305 + ((int)pcVar6 - (int)pcVar1) * 4);\n          pcVar3 = pcVar3 + 1;\n          local_41 = *pcVar3;\n        } while (local_41 != '\0');" do (compound_statement "{\n          cVar5 = 'a';\n          pcVar6 = pcVar1;\n          while (cVar5 != local_41) {\n            pcVar6 = pcVar6 + 1;\n            cVar5 = *pcVar6;\n            if (cVar5 == '\0') {\n              local_38 = 0xfffff000;\n              if (uVar9 != 0) {\n                local_38 = ~uVar9;\n              }\n              goto LAB_000b8331;\n            }\n          }\n          uVar9 = uVar9 | *(uint *)(unaff_EDI + 0x10305 + ((int)pcVar6 - (int)pcVar1) * 4);\n          pcVar3 = pcVar3 + 1;\n          local_41 = *pcVar3;\n        }" { (expression_statement "cVar5 = 'a';" (assignment_expression "cVar5 = 'a'" identifier = (char_literal "'a'" ' character ')) ;) (expression_statement "pcVar6 = pcVar1;" (assignment_expression "pcVar6 = pcVar1" identifier = identifier) ;) (while_statement "while (cVar5 != local_41) {\n            pcVar6 = pcVar6 + 1;\n            cVar5 = *pcVar6;\n            if (cVar5 == '\0') {\n              local_38 = 0xfffff000;\n              if (uVar9 != 0) {\n                local_38 = ~uVar9;\n              }\n              goto LAB_000b8331;\n            }\n          }" while (parenthesized_expression "(cVar5 != local_41)" ( (binary_expression "cVar5 != local_41" identifier != identifier) )) (compound_statement "{\n            pcVar6 = pcVar6 + 1;\n            cVar5 = *pcVar6;\n            if (cVar5 == '\0') {\n              local_38 = 0xfffff000;\n              if (uVar9 != 0) {\n                local_38 = ~uVar9;\n              }\n              goto LAB_000b8331;\n            }\n          }" { (expression_statement "pcVar6 = pcVar6 + 1;" (assignment_expression "pcVar6 = pcVar6 + 1" identifier = (binary_expression "pcVar6 + 1" identifier + number_literal)) ;) (expression_statement "cVar5 = *pcVar6;" (assignment_expression "cVar5 = *pcVar6" identifier = (pointer_expression "*pcVar6" * identifier)) ;) (if_statement "if (cVar5 == '\0') {\n              local_38 = 0xfffff000;\n              if (uVar9 != 0) {\n                local_38 = ~uVar9;\n              }\n              goto LAB_000b8331;\n            }" if (parenthesized_expression "(cVar5 == '\0')" ( (binary_expression "cVar5 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n              local_38 = 0xfffff000;\n              if (uVar9 != 0) {\n                local_38 = ~uVar9;\n              }\n              goto LAB_000b8331;\n            }" { (expression_statement "local_38 = 0xfffff000;" (assignment_expression "local_38 = 0xfffff000" identifier = number_literal) ;) (if_statement "if (uVar9 != 0) {\n                local_38 = ~uVar9;\n              }" if (parenthesized_expression "(uVar9 != 0)" ( (binary_expression "uVar9 != 0" identifier != number_literal) )) (compound_statement "{\n                local_38 = ~uVar9;\n              }" { (expression_statement "local_38 = ~uVar9;" (assignment_expression "local_38 = ~uVar9" identifier = (unary_expression "~uVar9" ~ identifier)) ;) })) (goto_statement "goto LAB_000b8331;" goto statement_identifier ;) })) })) (expression_statement "uVar9 = uVar9 | *(uint *)(unaff_EDI + 0x10305 + ((int)pcVar6 - (int)pcVar1) * 4);" (assignment_expression "uVar9 = uVar9 | *(uint *)(unaff_EDI + 0x10305 + ((int)pcVar6 - (int)pcVar1) * 4)" identifier = (binary_expression "uVar9 | *(uint *)(unaff_EDI + 0x10305 + ((int)pcVar6 - (int)pcVar1) * 4)" identifier | (pointer_expression "*(uint *)(unaff_EDI + 0x10305 + ((int)pcVar6 - (int)pcVar1) * 4)" * (cast_expression "(uint *)(unaff_EDI + 0x10305 + ((int)pcVar6 - (int)pcVar1) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x10305 + ((int)pcVar6 - (int)pcVar1) * 4)" ( (binary_expression "unaff_EDI + 0x10305 + ((int)pcVar6 - (int)pcVar1) * 4" (binary_expression "unaff_EDI + 0x10305" identifier + number_literal) + (binary_expression "((int)pcVar6 - (int)pcVar1) * 4" (parenthesized_expression "((int)pcVar6 - (int)pcVar1)" ( (binary_expression "(int)pcVar6 - (int)pcVar1" (cast_expression "(int)pcVar6" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pcVar1" ( (type_descriptor "int" primitive_type) ) identifier)) )) * number_literal)) )))))) ;) (expression_statement "pcVar3 = pcVar3 + 1;" (assignment_expression "pcVar3 = pcVar3 + 1" identifier = (binary_expression "pcVar3 + 1" identifier + number_literal)) ;) (expression_statement "local_41 = *pcVar3;" (assignment_expression "local_41 = *pcVar3" identifier = (pointer_expression "*pcVar3" * identifier)) ;) }) while (parenthesized_expression "(local_41 != '\0')" ( (binary_expression "local_41 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (labeled_statement "LAB_000b8305:\n        local_40 = 0xffffffff;" statement_identifier : (expression_statement "local_40 = 0xffffffff;" (assignment_expression "local_40 = 0xffffffff" identifier = number_literal) ;)) (break_statement "break;" break ;) })) (labeled_statement "LAB_000b82a3:\n      local_40 = (uint)((ulonglong)uVar11 >> 0x20);" statement_identifier : (expression_statement "local_40 = (uint)((ulonglong)uVar11 >> 0x20);" (assignment_expression "local_40 = (uint)((ulonglong)uVar11 >> 0x20)" identifier = (call_expression "(uint)((ulonglong)uVar11 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)uVar11 >> 0x20)" ( (binary_expression "(ulonglong)uVar11 >> 0x20" (cast_expression "(ulonglong)uVar11" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;)) (expression_statement "iVar8 = (int)uVar11;" (assignment_expression "iVar8 = (int)uVar11" identifier = (cast_expression "(int)uVar11" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "uVar11 = CONCAT44(local_40,iVar8 + 1);" (assignment_expression "uVar11 = CONCAT44(local_40,iVar8 + 1)" identifier = (call_expression "CONCAT44(local_40,iVar8 + 1)" identifier (argument_list "(local_40,iVar8 + 1)" ( identifier , (binary_expression "iVar8 + 1" identifier + number_literal) )))) ;) (expression_statement "local_41 = *(char *)(iVar8 + 1);" (assignment_expression "local_41 = *(char *)(iVar8 + 1)" identifier = (pointer_expression "*(char *)(iVar8 + 1)" * (cast_expression "(char *)(iVar8 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 1)" ( (binary_expression "iVar8 + 1" identifier + number_literal) ))))) ;) })) }))) (labeled_statement "LAB_000b82b5:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return local_40;\n  }" statement_identifier : (if_statement "if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return local_40;\n  }" if (parenthesized_expression "(local_20 == *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "local_20 == *(int *)(in_GS_OFFSET + 0x14)" identifier == (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n    return local_40;\n  }" { (return_statement "return local_40;" return identifier ;) }))) (expression_statement "FUN_00017e20();" (call_expression "FUN_00017e20()" identifier (argument_list "()" ( ))) ;) (labeled_statement "LAB_000b8331:\n  if ((local_41 != '+') && (local_41 != '-')) {\n    if (local_41 != '=') goto LAB_000b8305;\n    local_40 = local_40 & local_38;\n  }" statement_identifier : (if_statement "if ((local_41 != '+') && (local_41 != '-')) {\n    if (local_41 != '=') goto LAB_000b8305;\n    local_40 = local_40 & local_38;\n  }" if (parenthesized_expression "((local_41 != '+') && (local_41 != '-'))" ( (binary_expression "(local_41 != '+') && (local_41 != '-')" (parenthesized_expression "(local_41 != '+')" ( (binary_expression "local_41 != '+'" identifier != (char_literal "'+'" ' character ')) )) && (parenthesized_expression "(local_41 != '-')" ( (binary_expression "local_41 != '-'" identifier != (char_literal "'-'" ' character ')) ))) )) (compound_statement "{\n    if (local_41 != '=') goto LAB_000b8305;\n    local_40 = local_40 & local_38;\n  }" { (if_statement "if (local_41 != '=') goto LAB_000b8305;" if (parenthesized_expression "(local_41 != '=')" ( (binary_expression "local_41 != '='" identifier != (char_literal "'='" ' character ')) )) (goto_statement "goto LAB_000b8305;" goto statement_identifier ;)) (expression_statement "local_40 = local_40 & local_38;" (assignment_expression "local_40 = local_40 & local_38" identifier = (binary_expression "local_40 & local_38" identifier & identifier)) ;) }))) (expression_statement "cVar5 = 'u';" (assignment_expression "cVar5 = 'u'" identifier = (char_literal "'u'" ' character ')) ;) (expression_statement "pcVar6 = &DAT_0002082b + unaff_EDI;" (assignment_expression "pcVar6 = &DAT_0002082b + unaff_EDI" identifier = (binary_expression "&DAT_0002082b + unaff_EDI" (pointer_expression "&DAT_0002082b" & identifier) + identifier)) ;) (labeled_statement "LAB_000b8354:\n  if (pcVar3[1] != cVar5) goto LAB_000b8401;" statement_identifier : (if_statement "if (pcVar3[1] != cVar5) goto LAB_000b8401;" if (parenthesized_expression "(pcVar3[1] != cVar5)" ( (binary_expression "pcVar3[1] != cVar5" (subscript_expression "pcVar3[1]" identifier [ number_literal ]) != identifier) )) (goto_statement "goto LAB_000b8401;" goto statement_identifier ;))) (expression_statement "uVar7 = local_40 & *(uint *)(unaff_EDI + 0x10305 + ((int)pcVar6 - (int)pcVar1) * 4);" (assignment_expression "uVar7 = local_40 & *(uint *)(unaff_EDI + 0x10305 + ((int)pcVar6 - (int)pcVar1) * 4)" identifier = (binary_expression "local_40 & *(uint *)(unaff_EDI + 0x10305 + ((int)pcVar6 - (int)pcVar1) * 4)" identifier & (pointer_expression "*(uint *)(unaff_EDI + 0x10305 + ((int)pcVar6 - (int)pcVar1) * 4)" * (cast_expression "(uint *)(unaff_EDI + 0x10305 + ((int)pcVar6 - (int)pcVar1) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x10305 + ((int)pcVar6 - (int)pcVar1) * 4)" ( (binary_expression "unaff_EDI + 0x10305 + ((int)pcVar6 - (int)pcVar1) * 4" (binary_expression "unaff_EDI + 0x10305" identifier + number_literal) + (binary_expression "((int)pcVar6 - (int)pcVar1) * 4" (parenthesized_expression "((int)pcVar6 - (int)pcVar1)" ( (binary_expression "(int)pcVar6 - (int)pcVar1" (cast_expression "(int)pcVar6" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pcVar1" ( (type_descriptor "int" primitive_type) ) identifier)) )) * number_literal)) )))))) ;) (expression_statement "uVar10 = uVar7 & 0x1ff;" (assignment_expression "uVar10 = uVar7 & 0x1ff" identifier = (binary_expression "uVar7 & 0x1ff" identifier & number_literal)) ;) (if_statement "if ((uVar7 & 0x124) != 0) {\n    uVar10 = uVar10 | 0x124;\n  }" if (parenthesized_expression "((uVar7 & 0x124) != 0)" ( (binary_expression "(uVar7 & 0x124) != 0" (parenthesized_expression "(uVar7 & 0x124)" ( (binary_expression "uVar7 & 0x124" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n    uVar10 = uVar10 | 0x124;\n  }" { (expression_statement "uVar10 = uVar10 | 0x124;" (assignment_expression "uVar10 = uVar10 | 0x124" identifier = (binary_expression "uVar10 | 0x124" identifier | number_literal)) ;) })) (if_statement "if ((uVar10 & 0x92) != 0) {\n    uVar10 = uVar10 | 0x92;\n  }" if (parenthesized_expression "((uVar10 & 0x92) != 0)" ( (binary_expression "(uVar10 & 0x92) != 0" (parenthesized_expression "(uVar10 & 0x92)" ( (binary_expression "uVar10 & 0x92" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n    uVar10 = uVar10 | 0x92;\n  }" { (expression_statement "uVar10 = uVar10 | 0x92;" (assignment_expression "uVar10 = uVar10 | 0x92" identifier = (binary_expression "uVar10 | 0x92" identifier | number_literal)) ;) })) (if_statement "if ((uVar10 & 0x49) != 0) {\n    uVar10 = uVar10 | 0x49;\n  }" if (parenthesized_expression "((uVar10 & 0x49) != 0)" ( (binary_expression "(uVar10 & 0x49) != 0" (parenthesized_expression "(uVar10 & 0x49)" ( (binary_expression "uVar10 & 0x49" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n    uVar10 = uVar10 | 0x49;\n  }" { (expression_statement "uVar10 = uVar10 | 0x49;" (assignment_expression "uVar10 = uVar10 | 0x49" identifier = (binary_expression "uVar10 | 0x49" identifier | number_literal)) ;) })) (expression_statement "pcVar3 = pcVar3 + 2;" (assignment_expression "pcVar3 = pcVar3 + 2" identifier = (binary_expression "pcVar3 + 2" identifier + number_literal)) ;) (labeled_statement "LAB_000b83a3:\n  if (uVar10 != 0) goto joined_r0x000b8458;" statement_identifier : (if_statement "if (uVar10 != 0) goto joined_r0x000b8458;" if (parenthesized_expression "(uVar10 != 0)" ( (binary_expression "uVar10 != 0" identifier != number_literal) )) (goto_statement "goto joined_r0x000b8458;" goto statement_identifier ;))) (goto_statement "goto LAB_000b83e5;" goto statement_identifier ;) (labeled_statement "LAB_000b8401:\n  pcVar6 = pcVar6 + 1;" statement_identifier : (expression_statement "pcVar6 = pcVar6 + 1;" (assignment_expression "pcVar6 = pcVar6 + 1" identifier = (binary_expression "pcVar6 + 1" identifier + number_literal)) ;)) (expression_statement "cVar5 = *pcVar6;" (assignment_expression "cVar5 = *pcVar6" identifier = (pointer_expression "*pcVar6" * identifier)) ;) (if_statement "if (cVar5 == '\0') goto code_r0x000b840c;" if (parenthesized_expression "(cVar5 == '\0')" ( (binary_expression "cVar5 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto code_r0x000b840c;" goto statement_identifier ;)) (goto_statement "goto LAB_000b8354;" goto statement_identifier ;) (labeled_statement "code_r0x000b840c:\n  pcVar3 = pcVar3 + 1;" statement_identifier : (expression_statement "pcVar3 = pcVar3 + 1;" (assignment_expression "pcVar3 = pcVar3 + 1" identifier = (binary_expression "pcVar3 + 1" identifier + number_literal)) ;)) (expression_statement "uVar10 = 0;" (assignment_expression "uVar10 = 0" identifier = number_literal) ;) (expression_statement "pcVar6 = (char *)(unaff_EDI + 0x20823);" (assignment_expression "pcVar6 = (char *)(unaff_EDI + 0x20823)" identifier = (cast_expression "(char *)(unaff_EDI + 0x20823)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x20823)" ( (binary_expression "unaff_EDI + 0x20823" identifier + number_literal) )))) ;) (do_statement "do {\n    cVar5 = *pcVar3;\n    pcVar4 = pcVar6;\n    if (cVar5 != 'r') {\n      do {\n        pcVar4 = pcVar4 + 1;\n        if (*pcVar4 == '\0') goto LAB_000b83a3;\n      } while (cVar5 != *pcVar4);\n    }\n    if (cVar5 == 'X') {\n      if ((local_40 & 0x4049) != 0) {\n        uVar10 = uVar10 | *(uint *)(unaff_EDI + 0x102ed + ((int)pcVar4 - (int)pcVar6) * 4);\n      }\n    }\n    else {\n      uVar10 = uVar10 | *(uint *)(unaff_EDI + 0x102ed + ((int)pcVar4 - (int)pcVar6) * 4);\n    }\n    pcVar3 = pcVar3 + 1;\n  } while (*pcVar3 != '\0');" do (compound_statement "{\n    cVar5 = *pcVar3;\n    pcVar4 = pcVar6;\n    if (cVar5 != 'r') {\n      do {\n        pcVar4 = pcVar4 + 1;\n        if (*pcVar4 == '\0') goto LAB_000b83a3;\n      } while (cVar5 != *pcVar4);\n    }\n    if (cVar5 == 'X') {\n      if ((local_40 & 0x4049) != 0) {\n        uVar10 = uVar10 | *(uint *)(unaff_EDI + 0x102ed + ((int)pcVar4 - (int)pcVar6) * 4);\n      }\n    }\n    else {\n      uVar10 = uVar10 | *(uint *)(unaff_EDI + 0x102ed + ((int)pcVar4 - (int)pcVar6) * 4);\n    }\n    pcVar3 = pcVar3 + 1;\n  }" { (expression_statement "cVar5 = *pcVar3;" (assignment_expression "cVar5 = *pcVar3" identifier = (pointer_expression "*pcVar3" * identifier)) ;) (expression_statement "pcVar4 = pcVar6;" (assignment_expression "pcVar4 = pcVar6" identifier = identifier) ;) (if_statement "if (cVar5 != 'r') {\n      do {\n        pcVar4 = pcVar4 + 1;\n        if (*pcVar4 == '\0') goto LAB_000b83a3;\n      } while (cVar5 != *pcVar4);\n    }" if (parenthesized_expression "(cVar5 != 'r')" ( (binary_expression "cVar5 != 'r'" identifier != (char_literal "'r'" ' character ')) )) (compound_statement "{\n      do {\n        pcVar4 = pcVar4 + 1;\n        if (*pcVar4 == '\0') goto LAB_000b83a3;\n      } while (cVar5 != *pcVar4);\n    }" { (do_statement "do {\n        pcVar4 = pcVar4 + 1;\n        if (*pcVar4 == '\0') goto LAB_000b83a3;\n      } while (cVar5 != *pcVar4);" do (compound_statement "{\n        pcVar4 = pcVar4 + 1;\n        if (*pcVar4 == '\0') goto LAB_000b83a3;\n      }" { (expression_statement "pcVar4 = pcVar4 + 1;" (assignment_expression "pcVar4 = pcVar4 + 1" identifier = (binary_expression "pcVar4 + 1" identifier + number_literal)) ;) (if_statement "if (*pcVar4 == '\0') goto LAB_000b83a3;" if (parenthesized_expression "(*pcVar4 == '\0')" ( (binary_expression "*pcVar4 == '\0'" (pointer_expression "*pcVar4" * identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_000b83a3;" goto statement_identifier ;)) }) while (parenthesized_expression "(cVar5 != *pcVar4)" ( (binary_expression "cVar5 != *pcVar4" identifier != (pointer_expression "*pcVar4" * identifier)) )) ;) })) (if_statement "if (cVar5 == 'X') {\n      if ((local_40 & 0x4049) != 0) {\n        uVar10 = uVar10 | *(uint *)(unaff_EDI + 0x102ed + ((int)pcVar4 - (int)pcVar6) * 4);\n      }\n    }\n    else {\n      uVar10 = uVar10 | *(uint *)(unaff_EDI + 0x102ed + ((int)pcVar4 - (int)pcVar6) * 4);\n    }" if (parenthesized_expression "(cVar5 == 'X')" ( (binary_expression "cVar5 == 'X'" identifier == (char_literal "'X'" ' character ')) )) (compound_statement "{\n      if ((local_40 & 0x4049) != 0) {\n        uVar10 = uVar10 | *(uint *)(unaff_EDI + 0x102ed + ((int)pcVar4 - (int)pcVar6) * 4);\n      }\n    }" { (if_statement "if ((local_40 & 0x4049) != 0) {\n        uVar10 = uVar10 | *(uint *)(unaff_EDI + 0x102ed + ((int)pcVar4 - (int)pcVar6) * 4);\n      }" if (parenthesized_expression "((local_40 & 0x4049) != 0)" ( (binary_expression "(local_40 & 0x4049) != 0" (parenthesized_expression "(local_40 & 0x4049)" ( (binary_expression "local_40 & 0x4049" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n        uVar10 = uVar10 | *(uint *)(unaff_EDI + 0x102ed + ((int)pcVar4 - (int)pcVar6) * 4);\n      }" { (expression_statement "uVar10 = uVar10 | *(uint *)(unaff_EDI + 0x102ed + ((int)pcVar4 - (int)pcVar6) * 4);" (assignment_expression "uVar10 = uVar10 | *(uint *)(unaff_EDI + 0x102ed + ((int)pcVar4 - (int)pcVar6) * 4)" identifier = (binary_expression "uVar10 | *(uint *)(unaff_EDI + 0x102ed + ((int)pcVar4 - (int)pcVar6) * 4)" identifier | (pointer_expression "*(uint *)(unaff_EDI + 0x102ed + ((int)pcVar4 - (int)pcVar6) * 4)" * (cast_expression "(uint *)(unaff_EDI + 0x102ed + ((int)pcVar4 - (int)pcVar6) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x102ed + ((int)pcVar4 - (int)pcVar6) * 4)" ( (binary_expression "unaff_EDI + 0x102ed + ((int)pcVar4 - (int)pcVar6) * 4" (binary_expression "unaff_EDI + 0x102ed" identifier + number_literal) + (binary_expression "((int)pcVar4 - (int)pcVar6) * 4" (parenthesized_expression "((int)pcVar4 - (int)pcVar6)" ( (binary_expression "(int)pcVar4 - (int)pcVar6" (cast_expression "(int)pcVar4" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pcVar6" ( (type_descriptor "int" primitive_type) ) identifier)) )) * number_literal)) )))))) ;) })) }) (else_clause "else {\n      uVar10 = uVar10 | *(uint *)(unaff_EDI + 0x102ed + ((int)pcVar4 - (int)pcVar6) * 4);\n    }" else (compound_statement "{\n      uVar10 = uVar10 | *(uint *)(unaff_EDI + 0x102ed + ((int)pcVar4 - (int)pcVar6) * 4);\n    }" { (expression_statement "uVar10 = uVar10 | *(uint *)(unaff_EDI + 0x102ed + ((int)pcVar4 - (int)pcVar6) * 4);" (assignment_expression "uVar10 = uVar10 | *(uint *)(unaff_EDI + 0x102ed + ((int)pcVar4 - (int)pcVar6) * 4)" identifier = (binary_expression "uVar10 | *(uint *)(unaff_EDI + 0x102ed + ((int)pcVar4 - (int)pcVar6) * 4)" identifier | (pointer_expression "*(uint *)(unaff_EDI + 0x102ed + ((int)pcVar4 - (int)pcVar6) * 4)" * (cast_expression "(uint *)(unaff_EDI + 0x102ed + ((int)pcVar4 - (int)pcVar6) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x102ed + ((int)pcVar4 - (int)pcVar6) * 4)" ( (binary_expression "unaff_EDI + 0x102ed + ((int)pcVar4 - (int)pcVar6) * 4" (binary_expression "unaff_EDI + 0x102ed" identifier + number_literal) + (binary_expression "((int)pcVar4 - (int)pcVar6) * 4" (parenthesized_expression "((int)pcVar4 - (int)pcVar6)" ( (binary_expression "(int)pcVar4 - (int)pcVar6" (cast_expression "(int)pcVar4" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pcVar6" ( (type_descriptor "int" primitive_type) ) identifier)) )) * number_literal)) )))))) ;) }))) (expression_statement "pcVar3 = pcVar3 + 1;" (assignment_expression "pcVar3 = pcVar3 + 1" identifier = (binary_expression "pcVar3 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(*pcVar3 != '\0')" ( (binary_expression "*pcVar3 != '\0'" (pointer_expression "*pcVar3" * identifier) != (char_literal "'\0'" ' escape_sequence ')) )) ;) (if_statement "if (uVar10 == 0) goto LAB_000b82b5;" if (parenthesized_expression "(uVar10 == 0)" ( (binary_expression "uVar10 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000b82b5;" goto statement_identifier ;)) (labeled_statement "joined_r0x000b8458:\n  uVar7 = uVar9;" statement_identifier : (expression_statement "uVar7 = uVar9;" (assignment_expression "uVar7 = uVar9" identifier = identifier) ;)) (if_statement "if (uVar9 == 0) {\n    __mask = umask(0);\n    umask(__mask);\n    uVar7 = ~__mask;\n  }" if (parenthesized_expression "(uVar9 == 0)" ( (binary_expression "uVar9 == 0" identifier == number_literal) )) (compound_statement "{\n    __mask = umask(0);\n    umask(__mask);\n    uVar7 = ~__mask;\n  }" { (expression_statement "__mask = umask(0);" (assignment_expression "__mask = umask(0)" identifier = (call_expression "umask(0)" identifier (argument_list "(0)" ( number_literal )))) ;) (expression_statement "umask(__mask);" (call_expression "umask(__mask)" identifier (argument_list "(__mask)" ( identifier ))) ;) (expression_statement "uVar7 = ~__mask;" (assignment_expression "uVar7 = ~__mask" identifier = (unary_expression "~__mask" ~ identifier)) ;) })) (if_statement "if (local_41 == '-') {\n    local_40 = local_40 & ~(uVar10 & uVar7);\nLAB_000b83e5:\n    local_41 = *pcVar3;\n  }\n  else {\n    local_40 = local_40 | uVar10 & uVar7;\n    local_41 = *pcVar3;\n  }" if (parenthesized_expression "(local_41 == '-')" ( (binary_expression "local_41 == '-'" identifier == (char_literal "'-'" ' character ')) )) (compound_statement "{\n    local_40 = local_40 & ~(uVar10 & uVar7);\nLAB_000b83e5:\n    local_41 = *pcVar3;\n  }" { (expression_statement "local_40 = local_40 & ~(uVar10 & uVar7);" (assignment_expression "local_40 = local_40 & ~(uVar10 & uVar7)" identifier = (binary_expression "local_40 & ~(uVar10 & uVar7)" identifier & (unary_expression "~(uVar10 & uVar7)" ~ (parenthesized_expression "(uVar10 & uVar7)" ( (binary_expression "uVar10 & uVar7" identifier & identifier) ))))) ;) (labeled_statement "LAB_000b83e5:\n    local_41 = *pcVar3;" statement_identifier : (expression_statement "local_41 = *pcVar3;" (assignment_expression "local_41 = *pcVar3" identifier = (pointer_expression "*pcVar3" * identifier)) ;)) }) (else_clause "else {\n    local_40 = local_40 | uVar10 & uVar7;\n    local_41 = *pcVar3;\n  }" else (compound_statement "{\n    local_40 = local_40 | uVar10 & uVar7;\n    local_41 = *pcVar3;\n  }" { (expression_statement "local_40 = local_40 | uVar10 & uVar7;" (assignment_expression "local_40 = local_40 | uVar10 & uVar7" identifier = (binary_expression "local_40 | uVar10 & uVar7" identifier | (binary_expression "uVar10 & uVar7" identifier & identifier))) ;) (expression_statement "local_41 = *pcVar3;" (assignment_expression "local_41 = *pcVar3" identifier = (pointer_expression "*pcVar3" * identifier)) ;) }))) (if_statement "if (local_41 == '\0') goto LAB_000b82b5;" if (parenthesized_expression "(local_41 == '\0')" ( (binary_expression "local_41 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_000b82b5;" goto statement_identifier ;)) (expression_statement "uVar11 = CONCAT44(local_40,pcVar3);" (assignment_expression "uVar11 = CONCAT44(local_40,pcVar3)" identifier = (call_expression "CONCAT44(local_40,pcVar3)" identifier (argument_list "(local_40,pcVar3)" ( identifier , identifier )))) ;) (if_statement "if (local_41 == ',') goto LAB_000b82a3;" if (parenthesized_expression "(local_41 == ',')" ( (binary_expression "local_41 == ','" identifier == (char_literal "','" ' character ')) )) (goto_statement "goto LAB_000b82a3;" goto statement_identifier ;)) (goto_statement "goto LAB_000b8331;" goto statement_identifier ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE 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 ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT - LIT) ))) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) , (pointer_expression & IDENT) , LIT )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (char_literal ' escape_sequence ')) )) && (parenthesized_expression ( (binary_expression IDENT < LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) }) (else_clause else (compound_statement { (while_statement while (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' character ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression & IDENT) + IDENT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (char_literal ' character ')) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (while_statement while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (unary_expression ~ IDENT)) ;) })) (goto_statement goto statement_identifier ;) })) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT | (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) + (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) * LIT)) )))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (break_statement break ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) })) }))) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (return_statement return IDENT ;) }))) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != (char_literal ' character ')) )) && (parenthesized_expression ( (binary_expression IDENT != (char_literal ' character ')) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' character ')) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & IDENT)) ;) }))) (expression_statement (assignment_expression IDENT = (char_literal ' character ')) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression & IDENT) + IDENT)) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != IDENT) )) (goto_statement goto statement_identifier ;))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) + (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) * LIT)) )))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT | LIT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT | LIT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT | LIT)) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;))) (goto_statement goto statement_identifier ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' character ')) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) }) while (parenthesized_expression ( (binary_expression IDENT != (pointer_expression * IDENT)) )) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' character ')) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT | (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) + (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) * LIT)) )))))) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT | (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) + (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) * LIT)) )))))) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != (char_literal ' escape_sequence ')) )) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (unary_expression ~ IDENT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' character ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT & (unary_expression ~ (parenthesized_expression ( (binary_expression IDENT & IDENT) ))))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT | (binary_expression IDENT & IDENT))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' character ')) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })))
(function_definition "uint FUN_000b8233(void)\n\n{\n  char *pcVar1;\n  ulong uVar2;\n  char *pcVar3;\n  __mode_t __mask;\n  char *pcVar4;\n  char cVar5;\n  char *pcVar6;\n  uint uVar7;\n  int iVar8;\n  uint uVar9;\n  uint uVar10;\n  int unaff_EDI;\n  int in_GS_OFFSET;\n  undefined8 uVar11;\n  char local_41;\n  uint local_40;\n  uint local_38;\n  char *local_24;\n  int local_20;\n  \n  uVar11 = FUN_00027c55();\n  local_40 = (uint)((ulonglong)uVar11 >> 0x20);\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  local_41 = *(char *)uVar11;\n  if ((byte)(local_41 - 0x30U) < 8) {\n    uVar2 = strtoul((char *)uVar11,&local_24,8);\n    local_40 = 0xffffffff;\n    if ((*local_24 == '\0') && (uVar2 < 0x1000)) {\n      local_40 = uVar2;\n    }\n  }\n  else {\n    while (local_41 != '\0') {\n      local_40 = (uint)((ulonglong)uVar11 >> 0x20);\n      pcVar3 = (char *)uVar11;\n      if (local_41 != ',') {\n        uVar9 = 0;\n        pcVar1 = &UNK_0002082a + unaff_EDI;\n        do {\n          cVar5 = 'a';\n          pcVar6 = pcVar1;\n          while (cVar5 != local_41) {\n            pcVar6 = pcVar6 + 1;\n            cVar5 = *pcVar6;\n            if (cVar5 == '\0') {\n              local_38 = 0xfffff000;\n              if (uVar9 != 0) {\n                local_38 = ~uVar9;\n              }\n              goto LAB_000b8331;\n            }\n          }\n          uVar9 = uVar9 | *(uint *)(unaff_EDI + 0x10305 + ((int)pcVar6 - (int)pcVar1) * 4);\n          pcVar3 = pcVar3 + 1;\n          local_41 = *pcVar3;\n        } while (local_41 != '\0');\nLAB_000b8305:\n        local_40 = 0xffffffff;\n        break;\n      }\nLAB_000b82a3:\n      local_40 = (uint)((ulonglong)uVar11 >> 0x20);\n      iVar8 = (int)uVar11;\n      uVar11 = CONCAT44(local_40,iVar8 + 1);\n      local_41 = *(char *)(iVar8 + 1);\n    }\n  }\nLAB_000b82b5:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return local_40;\n  }\n                    \n  FUN_00017e20();\nLAB_000b8331:\n  if ((local_41 != '+') && (local_41 != '-')) {\n    if (local_41 != '=') goto LAB_000b8305;\n    local_40 = local_40 & local_38;\n  }\n  cVar5 = 'u';\n  pcVar6 = &DAT_0002082b + unaff_EDI;\nLAB_000b8354:\n  if (pcVar3[1] != cVar5) goto LAB_000b8401;\n  uVar7 = local_40 & *(uint *)(unaff_EDI + 0x10305 + ((int)pcVar6 - (int)pcVar1) * 4);\n  uVar10 = uVar7 & 0x1ff;\n  if ((uVar7 & 0x124) != 0) {\n    uVar10 = uVar10 | 0x124;\n  }\n  if ((uVar10 & 0x92) != 0) {\n    uVar10 = uVar10 | 0x92;\n  }\n  if ((uVar10 & 0x49) != 0) {\n    uVar10 = uVar10 | 0x49;\n  }\n  pcVar3 = pcVar3 + 2;\nLAB_000b83a3:\n  if (uVar10 != 0) goto joined_r0x000b8458;\n  goto LAB_000b83e5;\nLAB_000b8401:\n  pcVar6 = pcVar6 + 1;\n  cVar5 = *pcVar6;\n  if (cVar5 == '\0') goto code_r0x000b840c;\n  goto LAB_000b8354;\ncode_r0x000b840c:\n  pcVar3 = pcVar3 + 1;\n  uVar10 = 0;\n  pcVar6 = (char *)(unaff_EDI + 0x20823);\n  do {\n    cVar5 = *pcVar3;\n    pcVar4 = pcVar6;\n    if (cVar5 != 'r') {\n      do {\n        pcVar4 = pcVar4 + 1;\n        if (*pcVar4 == '\0') goto LAB_000b83a3;\n      } while (cVar5 != *pcVar4);\n    }\n    if (cVar5 == 'X') {\n      if ((local_40 & 0x4049) != 0) {\n        uVar10 = uVar10 | *(uint *)(unaff_EDI + 0x102ed + ((int)pcVar4 - (int)pcVar6) * 4);\n      }\n    }\n    else {\n      uVar10 = uVar10 | *(uint *)(unaff_EDI + 0x102ed + ((int)pcVar4 - (int)pcVar6) * 4);\n    }\n    pcVar3 = pcVar3 + 1;\n  } while (*pcVar3 != '\0');\n  if (uVar10 == 0) goto LAB_000b82b5;\njoined_r0x000b8458:\n  uVar7 = uVar9;\n  if (uVar9 == 0) {\n    __mask = umask(0);\n    umask(__mask);\n    uVar7 = ~__mask;\n  }\n  if (local_41 == '-') {\n    local_40 = local_40 & ~(uVar10 & uVar7);\nLAB_000b83e5:\n    local_41 = *pcVar3;\n  }\n  else {\n    local_40 = local_40 | uVar10 & uVar7;\n    local_41 = *pcVar3;\n  }\n  if (local_41 == '\0') goto LAB_000b82b5;\n  uVar11 = CONCAT44(local_40,pcVar3);\n  if (local_41 == ',') goto LAB_000b82a3;\n  goto LAB_000b8331;\n}" (type_identifier "uint") (function_declarator "FUN_000b8233(void)" (identifier "FUN_000b8233") (parameter_list "(void)" (( "(") (parameter_declaration "void" (primitive_type "void")) () ")"))) (compound_statement "{\n  char *pcVar1;\n  ulong uVar2;\n  char *pcVar3;\n  __mode_t __mask;\n  char *pcVar4;\n  char cVar5;\n  char *pcVar6;\n  uint uVar7;\n  int iVar8;\n  uint uVar9;\n  uint uVar10;\n  int unaff_EDI;\n  int in_GS_OFFSET;\n  undefined8 uVar11;\n  char local_41;\n  uint local_40;\n  uint local_38;\n  char *local_24;\n  int local_20;\n  \n  uVar11 = FUN_00027c55();\n  local_40 = (uint)((ulonglong)uVar11 >> 0x20);\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  local_41 = *(char *)uVar11;\n  if ((byte)(local_41 - 0x30U) < 8) {\n    uVar2 = strtoul((char *)uVar11,&local_24,8);\n    local_40 = 0xffffffff;\n    if ((*local_24 == '\0') && (uVar2 < 0x1000)) {\n      local_40 = uVar2;\n    }\n  }\n  else {\n    while (local_41 != '\0') {\n      local_40 = (uint)((ulonglong)uVar11 >> 0x20);\n      pcVar3 = (char *)uVar11;\n      if (local_41 != ',') {\n        uVar9 = 0;\n        pcVar1 = &UNK_0002082a + unaff_EDI;\n        do {\n          cVar5 = 'a';\n          pcVar6 = pcVar1;\n          while (cVar5 != local_41) {\n            pcVar6 = pcVar6 + 1;\n            cVar5 = *pcVar6;\n            if (cVar5 == '\0') {\n              local_38 = 0xfffff000;\n              if (uVar9 != 0) {\n                local_38 = ~uVar9;\n              }\n              goto LAB_000b8331;\n            }\n          }\n          uVar9 = uVar9 | *(uint *)(unaff_EDI + 0x10305 + ((int)pcVar6 - (int)pcVar1) * 4);\n          pcVar3 = pcVar3 + 1;\n          local_41 = *pcVar3;\n        } while (local_41 != '\0');\nLAB_000b8305:\n        local_40 = 0xffffffff;\n        break;\n      }\nLAB_000b82a3:\n      local_40 = (uint)((ulonglong)uVar11 >> 0x20);\n      iVar8 = (int)uVar11;\n      uVar11 = CONCAT44(local_40,iVar8 + 1);\n      local_41 = *(char *)(iVar8 + 1);\n    }\n  }\nLAB_000b82b5:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return local_40;\n  }\n                    \n  FUN_00017e20();\nLAB_000b8331:\n  if ((local_41 != '+') && (local_41 != '-')) {\n    if (local_41 != '=') goto LAB_000b8305;\n    local_40 = local_40 & local_38;\n  }\n  cVar5 = 'u';\n  pcVar6 = &DAT_0002082b + unaff_EDI;\nLAB_000b8354:\n  if (pcVar3[1] != cVar5) goto LAB_000b8401;\n  uVar7 = local_40 & *(uint *)(unaff_EDI + 0x10305 + ((int)pcVar6 - (int)pcVar1) * 4);\n  uVar10 = uVar7 & 0x1ff;\n  if ((uVar7 & 0x124) != 0) {\n    uVar10 = uVar10 | 0x124;\n  }\n  if ((uVar10 & 0x92) != 0) {\n    uVar10 = uVar10 | 0x92;\n  }\n  if ((uVar10 & 0x49) != 0) {\n    uVar10 = uVar10 | 0x49;\n  }\n  pcVar3 = pcVar3 + 2;\nLAB_000b83a3:\n  if (uVar10 != 0) goto joined_r0x000b8458;\n  goto LAB_000b83e5;\nLAB_000b8401:\n  pcVar6 = pcVar6 + 1;\n  cVar5 = *pcVar6;\n  if (cVar5 == '\0') goto code_r0x000b840c;\n  goto LAB_000b8354;\ncode_r0x000b840c:\n  pcVar3 = pcVar3 + 1;\n  uVar10 = 0;\n  pcVar6 = (char *)(unaff_EDI + 0x20823);\n  do {\n    cVar5 = *pcVar3;\n    pcVar4 = pcVar6;\n    if (cVar5 != 'r') {\n      do {\n        pcVar4 = pcVar4 + 1;\n        if (*pcVar4 == '\0') goto LAB_000b83a3;\n      } while (cVar5 != *pcVar4);\n    }\n    if (cVar5 == 'X') {\n      if ((local_40 & 0x4049) != 0) {\n        uVar10 = uVar10 | *(uint *)(unaff_EDI + 0x102ed + ((int)pcVar4 - (int)pcVar6) * 4);\n      }\n    }\n    else {\n      uVar10 = uVar10 | *(uint *)(unaff_EDI + 0x102ed + ((int)pcVar4 - (int)pcVar6) * 4);\n    }\n    pcVar3 = pcVar3 + 1;\n  } while (*pcVar3 != '\0');\n  if (uVar10 == 0) goto LAB_000b82b5;\njoined_r0x000b8458:\n  uVar7 = uVar9;\n  if (uVar9 == 0) {\n    __mask = umask(0);\n    umask(__mask);\n    uVar7 = ~__mask;\n  }\n  if (local_41 == '-') {\n    local_40 = local_40 & ~(uVar10 & uVar7);\nLAB_000b83e5:\n    local_41 = *pcVar3;\n  }\n  else {\n    local_40 = local_40 | uVar10 & uVar7;\n    local_41 = *pcVar3;\n  }\n  if (local_41 == '\0') goto LAB_000b82b5;\n  uVar11 = CONCAT44(local_40,pcVar3);\n  if (local_41 == ',') goto LAB_000b82a3;\n  goto LAB_000b8331;\n}" ({ "{") (declaration "char *pcVar1;" (primitive_type "char") (pointer_declarator "*pcVar1" (* "*") (identifier "pcVar1")) (; ";")) (declaration "ulong uVar2;" (type_identifier "ulong") (identifier "uVar2") (; ";")) (declaration "char *pcVar3;" (primitive_type "char") (pointer_declarator "*pcVar3" (* "*") (identifier "pcVar3")) (; ";")) (declaration "__mode_t __mask;" (type_identifier "__mode_t") (identifier "__mask") (; ";")) (declaration "char *pcVar4;" (primitive_type "char") (pointer_declarator "*pcVar4" (* "*") (identifier "pcVar4")) (; ";")) (declaration "char cVar5;" (primitive_type "char") (identifier "cVar5") (; ";")) (declaration "char *pcVar6;" (primitive_type "char") (pointer_declarator "*pcVar6" (* "*") (identifier "pcVar6")) (; ";")) (declaration "uint uVar7;" (type_identifier "uint") (identifier "uVar7") (; ";")) (declaration "int iVar8;" (primitive_type "int") (identifier "iVar8") (; ";")) (declaration "uint uVar9;" (type_identifier "uint") (identifier "uVar9") (; ";")) (declaration "uint uVar10;" (type_identifier "uint") (identifier "uVar10") (; ";")) (declaration "int unaff_EDI;" (primitive_type "int") (identifier "unaff_EDI") (; ";")) (declaration "int in_GS_OFFSET;" (primitive_type "int") (identifier "in_GS_OFFSET") (; ";")) (declaration "undefined8 uVar11;" (type_identifier "undefined8") (identifier "uVar11") (; ";")) (declaration "char local_41;" (primitive_type "char") (identifier "local_41") (; ";")) (declaration "uint local_40;" (type_identifier "uint") (identifier "local_40") (; ";")) (declaration "uint local_38;" (type_identifier "uint") (identifier "local_38") (; ";")) (declaration "char *local_24;" (primitive_type "char") (pointer_declarator "*local_24" (* "*") (identifier "local_24")) (; ";")) (declaration "int local_20;" (primitive_type "int") (identifier "local_20") (; ";")) (expression_statement "uVar11 = FUN_00027c55();" (assignment_expression "uVar11 = FUN_00027c55()" (identifier "uVar11") (= "=") (call_expression "FUN_00027c55()" (identifier "FUN_00027c55") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "local_40 = (uint)((ulonglong)uVar11 >> 0x20);" (assignment_expression "local_40 = (uint)((ulonglong)uVar11 >> 0x20)" (identifier "local_40") (= "=") (call_expression "(uint)((ulonglong)uVar11 >> 0x20)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((ulonglong)uVar11 >> 0x20)" (( "(") (binary_expression "(ulonglong)uVar11 >> 0x20" (cast_expression "(ulonglong)uVar11" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar11")) (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "local_20 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_20 = *(int *)(in_GS_OFFSET + 0x14)" (identifier "local_20") (= "=") (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" (* "*") (cast_expression "(int *)(in_GS_OFFSET + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_GS_OFFSET + 0x14)" (( "(") (binary_expression "in_GS_OFFSET + 0x14" (identifier "in_GS_OFFSET") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (expression_statement "local_41 = *(char *)uVar11;" (assignment_expression "local_41 = *(char *)uVar11" (identifier "local_41") (= "=") (pointer_expression "*(char *)uVar11" (* "*") (cast_expression "(char *)uVar11" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "uVar11")))) (; ";")) (if_statement "if ((byte)(local_41 - 0x30U) < 8) {\n    uVar2 = strtoul((char *)uVar11,&local_24,8);\n    local_40 = 0xffffffff;\n    if ((*local_24 == '\0') && (uVar2 < 0x1000)) {\n      local_40 = uVar2;\n    }\n  }\n  else {\n    while (local_41 != '\0') {\n      local_40 = (uint)((ulonglong)uVar11 >> 0x20);\n      pcVar3 = (char *)uVar11;\n      if (local_41 != ',') {\n        uVar9 = 0;\n        pcVar1 = &UNK_0002082a + unaff_EDI;\n        do {\n          cVar5 = 'a';\n          pcVar6 = pcVar1;\n          while (cVar5 != local_41) {\n            pcVar6 = pcVar6 + 1;\n            cVar5 = *pcVar6;\n            if (cVar5 == '\0') {\n              local_38 = 0xfffff000;\n              if (uVar9 != 0) {\n                local_38 = ~uVar9;\n              }\n              goto LAB_000b8331;\n            }\n          }\n          uVar9 = uVar9 | *(uint *)(unaff_EDI + 0x10305 + ((int)pcVar6 - (int)pcVar1) * 4);\n          pcVar3 = pcVar3 + 1;\n          local_41 = *pcVar3;\n        } while (local_41 != '\0');\nLAB_000b8305:\n        local_40 = 0xffffffff;\n        break;\n      }\nLAB_000b82a3:\n      local_40 = (uint)((ulonglong)uVar11 >> 0x20);\n      iVar8 = (int)uVar11;\n      uVar11 = CONCAT44(local_40,iVar8 + 1);\n      local_41 = *(char *)(iVar8 + 1);\n    }\n  }" (if "if") (parenthesized_expression "((byte)(local_41 - 0x30U) < 8)" (( "(") (binary_expression "(byte)(local_41 - 0x30U) < 8" (call_expression "(byte)(local_41 - 0x30U)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "(local_41 - 0x30U)" (( "(") (binary_expression "local_41 - 0x30U" (identifier "local_41") (- "-") (number_literal "0x30U")) () ")"))) (< "<") (number_literal "8")) () ")")) (compound_statement "{\n    uVar2 = strtoul((char *)uVar11,&local_24,8);\n    local_40 = 0xffffffff;\n    if ((*local_24 == '\0') && (uVar2 < 0x1000)) {\n      local_40 = uVar2;\n    }\n  }" ({ "{") (expression_statement "uVar2 = strtoul((char *)uVar11,&local_24,8);" (assignment_expression "uVar2 = strtoul((char *)uVar11,&local_24,8)" (identifier "uVar2") (= "=") (call_expression "strtoul((char *)uVar11,&local_24,8)" (identifier "strtoul") (argument_list "((char *)uVar11,&local_24,8)" (( "(") (cast_expression "(char *)uVar11" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "uVar11")) (, ",") (pointer_expression "&local_24" (& "&") (identifier "local_24")) (, ",") (number_literal "8") () ")")))) (; ";")) (expression_statement "local_40 = 0xffffffff;" (assignment_expression "local_40 = 0xffffffff" (identifier "local_40") (= "=") (number_literal "0xffffffff")) (; ";")) (if_statement "if ((*local_24 == '\0') && (uVar2 < 0x1000)) {\n      local_40 = uVar2;\n    }" (if "if") (parenthesized_expression "((*local_24 == '\0') && (uVar2 < 0x1000))" (( "(") (binary_expression "(*local_24 == '\0') && (uVar2 < 0x1000)" (parenthesized_expression "(*local_24 == '\0')" (( "(") (binary_expression "*local_24 == '\0'" (pointer_expression "*local_24" (* "*") (identifier "local_24")) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (&& "&&") (parenthesized_expression "(uVar2 < 0x1000)" (( "(") (binary_expression "uVar2 < 0x1000" (identifier "uVar2") (< "<") (number_literal "0x1000")) () ")"))) () ")")) (compound_statement "{\n      local_40 = uVar2;\n    }" ({ "{") (expression_statement "local_40 = uVar2;" (assignment_expression "local_40 = uVar2" (identifier "local_40") (= "=") (identifier "uVar2")) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n    while (local_41 != '\0') {\n      local_40 = (uint)((ulonglong)uVar11 >> 0x20);\n      pcVar3 = (char *)uVar11;\n      if (local_41 != ',') {\n        uVar9 = 0;\n        pcVar1 = &UNK_0002082a + unaff_EDI;\n        do {\n          cVar5 = 'a';\n          pcVar6 = pcVar1;\n          while (cVar5 != local_41) {\n            pcVar6 = pcVar6 + 1;\n            cVar5 = *pcVar6;\n            if (cVar5 == '\0') {\n              local_38 = 0xfffff000;\n              if (uVar9 != 0) {\n                local_38 = ~uVar9;\n              }\n              goto LAB_000b8331;\n            }\n          }\n          uVar9 = uVar9 | *(uint *)(unaff_EDI + 0x10305 + ((int)pcVar6 - (int)pcVar1) * 4);\n          pcVar3 = pcVar3 + 1;\n          local_41 = *pcVar3;\n        } while (local_41 != '\0');\nLAB_000b8305:\n        local_40 = 0xffffffff;\n        break;\n      }\nLAB_000b82a3:\n      local_40 = (uint)((ulonglong)uVar11 >> 0x20);\n      iVar8 = (int)uVar11;\n      uVar11 = CONCAT44(local_40,iVar8 + 1);\n      local_41 = *(char *)(iVar8 + 1);\n    }\n  }" (else "else") (compound_statement "{\n    while (local_41 != '\0') {\n      local_40 = (uint)((ulonglong)uVar11 >> 0x20);\n      pcVar3 = (char *)uVar11;\n      if (local_41 != ',') {\n        uVar9 = 0;\n        pcVar1 = &UNK_0002082a + unaff_EDI;\n        do {\n          cVar5 = 'a';\n          pcVar6 = pcVar1;\n          while (cVar5 != local_41) {\n            pcVar6 = pcVar6 + 1;\n            cVar5 = *pcVar6;\n            if (cVar5 == '\0') {\n              local_38 = 0xfffff000;\n              if (uVar9 != 0) {\n                local_38 = ~uVar9;\n              }\n              goto LAB_000b8331;\n            }\n          }\n          uVar9 = uVar9 | *(uint *)(unaff_EDI + 0x10305 + ((int)pcVar6 - (int)pcVar1) * 4);\n          pcVar3 = pcVar3 + 1;\n          local_41 = *pcVar3;\n        } while (local_41 != '\0');\nLAB_000b8305:\n        local_40 = 0xffffffff;\n        break;\n      }\nLAB_000b82a3:\n      local_40 = (uint)((ulonglong)uVar11 >> 0x20);\n      iVar8 = (int)uVar11;\n      uVar11 = CONCAT44(local_40,iVar8 + 1);\n      local_41 = *(char *)(iVar8 + 1);\n    }\n  }" ({ "{") (while_statement "while (local_41 != '\0') {\n      local_40 = (uint)((ulonglong)uVar11 >> 0x20);\n      pcVar3 = (char *)uVar11;\n      if (local_41 != ',') {\n        uVar9 = 0;\n        pcVar1 = &UNK_0002082a + unaff_EDI;\n        do {\n          cVar5 = 'a';\n          pcVar6 = pcVar1;\n          while (cVar5 != local_41) {\n            pcVar6 = pcVar6 + 1;\n            cVar5 = *pcVar6;\n            if (cVar5 == '\0') {\n              local_38 = 0xfffff000;\n              if (uVar9 != 0) {\n                local_38 = ~uVar9;\n              }\n              goto LAB_000b8331;\n            }\n          }\n          uVar9 = uVar9 | *(uint *)(unaff_EDI + 0x10305 + ((int)pcVar6 - (int)pcVar1) * 4);\n          pcVar3 = pcVar3 + 1;\n          local_41 = *pcVar3;\n        } while (local_41 != '\0');\nLAB_000b8305:\n        local_40 = 0xffffffff;\n        break;\n      }\nLAB_000b82a3:\n      local_40 = (uint)((ulonglong)uVar11 >> 0x20);\n      iVar8 = (int)uVar11;\n      uVar11 = CONCAT44(local_40,iVar8 + 1);\n      local_41 = *(char *)(iVar8 + 1);\n    }" (while "while") (parenthesized_expression "(local_41 != '\0')" (( "(") (binary_expression "local_41 != '\0'" (identifier "local_41") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      local_40 = (uint)((ulonglong)uVar11 >> 0x20);\n      pcVar3 = (char *)uVar11;\n      if (local_41 != ',') {\n        uVar9 = 0;\n        pcVar1 = &UNK_0002082a + unaff_EDI;\n        do {\n          cVar5 = 'a';\n          pcVar6 = pcVar1;\n          while (cVar5 != local_41) {\n            pcVar6 = pcVar6 + 1;\n            cVar5 = *pcVar6;\n            if (cVar5 == '\0') {\n              local_38 = 0xfffff000;\n              if (uVar9 != 0) {\n                local_38 = ~uVar9;\n              }\n              goto LAB_000b8331;\n            }\n          }\n          uVar9 = uVar9 | *(uint *)(unaff_EDI + 0x10305 + ((int)pcVar6 - (int)pcVar1) * 4);\n          pcVar3 = pcVar3 + 1;\n          local_41 = *pcVar3;\n        } while (local_41 != '\0');\nLAB_000b8305:\n        local_40 = 0xffffffff;\n        break;\n      }\nLAB_000b82a3:\n      local_40 = (uint)((ulonglong)uVar11 >> 0x20);\n      iVar8 = (int)uVar11;\n      uVar11 = CONCAT44(local_40,iVar8 + 1);\n      local_41 = *(char *)(iVar8 + 1);\n    }" ({ "{") (expression_statement "local_40 = (uint)((ulonglong)uVar11 >> 0x20);" (assignment_expression "local_40 = (uint)((ulonglong)uVar11 >> 0x20)" (identifier "local_40") (= "=") (call_expression "(uint)((ulonglong)uVar11 >> 0x20)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((ulonglong)uVar11 >> 0x20)" (( "(") (binary_expression "(ulonglong)uVar11 >> 0x20" (cast_expression "(ulonglong)uVar11" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar11")) (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "pcVar3 = (char *)uVar11;" (assignment_expression "pcVar3 = (char *)uVar11" (identifier "pcVar3") (= "=") (cast_expression "(char *)uVar11" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "uVar11"))) (; ";")) (if_statement "if (local_41 != ',') {\n        uVar9 = 0;\n        pcVar1 = &UNK_0002082a + unaff_EDI;\n        do {\n          cVar5 = 'a';\n          pcVar6 = pcVar1;\n          while (cVar5 != local_41) {\n            pcVar6 = pcVar6 + 1;\n            cVar5 = *pcVar6;\n            if (cVar5 == '\0') {\n              local_38 = 0xfffff000;\n              if (uVar9 != 0) {\n                local_38 = ~uVar9;\n              }\n              goto LAB_000b8331;\n            }\n          }\n          uVar9 = uVar9 | *(uint *)(unaff_EDI + 0x10305 + ((int)pcVar6 - (int)pcVar1) * 4);\n          pcVar3 = pcVar3 + 1;\n          local_41 = *pcVar3;\n        } while (local_41 != '\0');\nLAB_000b8305:\n        local_40 = 0xffffffff;\n        break;\n      }" (if "if") (parenthesized_expression "(local_41 != ',')" (( "(") (binary_expression "local_41 != ','" (identifier "local_41") (!= "!=") (char_literal "','" (' "'") (character ",") (' "'"))) () ")")) (compound_statement "{\n        uVar9 = 0;\n        pcVar1 = &UNK_0002082a + unaff_EDI;\n        do {\n          cVar5 = 'a';\n          pcVar6 = pcVar1;\n          while (cVar5 != local_41) {\n            pcVar6 = pcVar6 + 1;\n            cVar5 = *pcVar6;\n            if (cVar5 == '\0') {\n              local_38 = 0xfffff000;\n              if (uVar9 != 0) {\n                local_38 = ~uVar9;\n              }\n              goto LAB_000b8331;\n            }\n          }\n          uVar9 = uVar9 | *(uint *)(unaff_EDI + 0x10305 + ((int)pcVar6 - (int)pcVar1) * 4);\n          pcVar3 = pcVar3 + 1;\n          local_41 = *pcVar3;\n        } while (local_41 != '\0');\nLAB_000b8305:\n        local_40 = 0xffffffff;\n        break;\n      }" ({ "{") (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" (identifier "uVar9") (= "=") (number_literal "0")) (; ";")) (expression_statement "pcVar1 = &UNK_0002082a + unaff_EDI;" (assignment_expression "pcVar1 = &UNK_0002082a + unaff_EDI" (identifier "pcVar1") (= "=") (binary_expression "&UNK_0002082a + unaff_EDI" (pointer_expression "&UNK_0002082a" (& "&") (identifier "UNK_0002082a")) (+ "+") (identifier "unaff_EDI"))) (; ";")) (do_statement "do {\n          cVar5 = 'a';\n          pcVar6 = pcVar1;\n          while (cVar5 != local_41) {\n            pcVar6 = pcVar6 + 1;\n            cVar5 = *pcVar6;\n            if (cVar5 == '\0') {\n              local_38 = 0xfffff000;\n              if (uVar9 != 0) {\n                local_38 = ~uVar9;\n              }\n              goto LAB_000b8331;\n            }\n          }\n          uVar9 = uVar9 | *(uint *)(unaff_EDI + 0x10305 + ((int)pcVar6 - (int)pcVar1) * 4);\n          pcVar3 = pcVar3 + 1;\n          local_41 = *pcVar3;\n        } while (local_41 != '\0');" (do "do") (compound_statement "{\n          cVar5 = 'a';\n          pcVar6 = pcVar1;\n          while (cVar5 != local_41) {\n            pcVar6 = pcVar6 + 1;\n            cVar5 = *pcVar6;\n            if (cVar5 == '\0') {\n              local_38 = 0xfffff000;\n              if (uVar9 != 0) {\n                local_38 = ~uVar9;\n              }\n              goto LAB_000b8331;\n            }\n          }\n          uVar9 = uVar9 | *(uint *)(unaff_EDI + 0x10305 + ((int)pcVar6 - (int)pcVar1) * 4);\n          pcVar3 = pcVar3 + 1;\n          local_41 = *pcVar3;\n        }" ({ "{") (expression_statement "cVar5 = 'a';" (assignment_expression "cVar5 = 'a'" (identifier "cVar5") (= "=") (char_literal "'a'" (' "'") (character "a") (' "'"))) (; ";")) (expression_statement "pcVar6 = pcVar1;" (assignment_expression "pcVar6 = pcVar1" (identifier "pcVar6") (= "=") (identifier "pcVar1")) (; ";")) (while_statement "while (cVar5 != local_41) {\n            pcVar6 = pcVar6 + 1;\n            cVar5 = *pcVar6;\n            if (cVar5 == '\0') {\n              local_38 = 0xfffff000;\n              if (uVar9 != 0) {\n                local_38 = ~uVar9;\n              }\n              goto LAB_000b8331;\n            }\n          }" (while "while") (parenthesized_expression "(cVar5 != local_41)" (( "(") (binary_expression "cVar5 != local_41" (identifier "cVar5") (!= "!=") (identifier "local_41")) () ")")) (compound_statement "{\n            pcVar6 = pcVar6 + 1;\n            cVar5 = *pcVar6;\n            if (cVar5 == '\0') {\n              local_38 = 0xfffff000;\n              if (uVar9 != 0) {\n                local_38 = ~uVar9;\n              }\n              goto LAB_000b8331;\n            }\n          }" ({ "{") (expression_statement "pcVar6 = pcVar6 + 1;" (assignment_expression "pcVar6 = pcVar6 + 1" (identifier "pcVar6") (= "=") (binary_expression "pcVar6 + 1" (identifier "pcVar6") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "cVar5 = *pcVar6;" (assignment_expression "cVar5 = *pcVar6" (identifier "cVar5") (= "=") (pointer_expression "*pcVar6" (* "*") (identifier "pcVar6"))) (; ";")) (if_statement "if (cVar5 == '\0') {\n              local_38 = 0xfffff000;\n              if (uVar9 != 0) {\n                local_38 = ~uVar9;\n              }\n              goto LAB_000b8331;\n            }" (if "if") (parenthesized_expression "(cVar5 == '\0')" (( "(") (binary_expression "cVar5 == '\0'" (identifier "cVar5") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n              local_38 = 0xfffff000;\n              if (uVar9 != 0) {\n                local_38 = ~uVar9;\n              }\n              goto LAB_000b8331;\n            }" ({ "{") (expression_statement "local_38 = 0xfffff000;" (assignment_expression "local_38 = 0xfffff000" (identifier "local_38") (= "=") (number_literal "0xfffff000")) (; ";")) (if_statement "if (uVar9 != 0) {\n                local_38 = ~uVar9;\n              }" (if "if") (parenthesized_expression "(uVar9 != 0)" (( "(") (binary_expression "uVar9 != 0" (identifier "uVar9") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                local_38 = ~uVar9;\n              }" ({ "{") (expression_statement "local_38 = ~uVar9;" (assignment_expression "local_38 = ~uVar9" (identifier "local_38") (= "=") (unary_expression "~uVar9" (~ "~") (identifier "uVar9"))) (; ";")) (} "}"))) (goto_statement "goto LAB_000b8331;" (goto "goto") (statement_identifier "LAB_000b8331") (; ";")) (} "}"))) (} "}"))) (expression_statement "uVar9 = uVar9 | *(uint *)(unaff_EDI + 0x10305 + ((int)pcVar6 - (int)pcVar1) * 4);" (assignment_expression "uVar9 = uVar9 | *(uint *)(unaff_EDI + 0x10305 + ((int)pcVar6 - (int)pcVar1) * 4)" (identifier "uVar9") (= "=") (binary_expression "uVar9 | *(uint *)(unaff_EDI + 0x10305 + ((int)pcVar6 - (int)pcVar1) * 4)" (identifier "uVar9") (| "|") (pointer_expression "*(uint *)(unaff_EDI + 0x10305 + ((int)pcVar6 - (int)pcVar1) * 4)" (* "*") (cast_expression "(uint *)(unaff_EDI + 0x10305 + ((int)pcVar6 - (int)pcVar1) * 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0x10305 + ((int)pcVar6 - (int)pcVar1) * 4)" (( "(") (binary_expression "unaff_EDI + 0x10305 + ((int)pcVar6 - (int)pcVar1) * 4" (binary_expression "unaff_EDI + 0x10305" (identifier "unaff_EDI") (+ "+") (number_literal "0x10305")) (+ "+") (binary_expression "((int)pcVar6 - (int)pcVar1) * 4" (parenthesized_expression "((int)pcVar6 - (int)pcVar1)" (( "(") (binary_expression "(int)pcVar6 - (int)pcVar1" (cast_expression "(int)pcVar6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pcVar6")) (- "-") (cast_expression "(int)pcVar1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pcVar1"))) () ")")) (* "*") (number_literal "4"))) () ")")))))) (; ";")) (expression_statement "pcVar3 = pcVar3 + 1;" (assignment_expression "pcVar3 = pcVar3 + 1" (identifier "pcVar3") (= "=") (binary_expression "pcVar3 + 1" (identifier "pcVar3") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "local_41 = *pcVar3;" (assignment_expression "local_41 = *pcVar3" (identifier "local_41") (= "=") (pointer_expression "*pcVar3" (* "*") (identifier "pcVar3"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(local_41 != '\0')" (( "(") (binary_expression "local_41 != '\0'" (identifier "local_41") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (; ";")) (labeled_statement "LAB_000b8305:\n        local_40 = 0xffffffff;" (statement_identifier "LAB_000b8305") (: ":") (expression_statement "local_40 = 0xffffffff;" (assignment_expression "local_40 = 0xffffffff" (identifier "local_40") (= "=") (number_literal "0xffffffff")) (; ";"))) (break_statement "break;" (break "break") (; ";")) (} "}"))) (labeled_statement "LAB_000b82a3:\n      local_40 = (uint)((ulonglong)uVar11 >> 0x20);" (statement_identifier "LAB_000b82a3") (: ":") (expression_statement "local_40 = (uint)((ulonglong)uVar11 >> 0x20);" (assignment_expression "local_40 = (uint)((ulonglong)uVar11 >> 0x20)" (identifier "local_40") (= "=") (call_expression "(uint)((ulonglong)uVar11 >> 0x20)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((ulonglong)uVar11 >> 0x20)" (( "(") (binary_expression "(ulonglong)uVar11 >> 0x20" (cast_expression "(ulonglong)uVar11" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar11")) (>> ">>") (number_literal "0x20")) () ")")))) (; ";"))) (expression_statement "iVar8 = (int)uVar11;" (assignment_expression "iVar8 = (int)uVar11" (identifier "iVar8") (= "=") (cast_expression "(int)uVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar11"))) (; ";")) (expression_statement "uVar11 = CONCAT44(local_40,iVar8 + 1);" (assignment_expression "uVar11 = CONCAT44(local_40,iVar8 + 1)" (identifier "uVar11") (= "=") (call_expression "CONCAT44(local_40,iVar8 + 1)" (identifier "CONCAT44") (argument_list "(local_40,iVar8 + 1)" (( "(") (identifier "local_40") (, ",") (binary_expression "iVar8 + 1" (identifier "iVar8") (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "local_41 = *(char *)(iVar8 + 1);" (assignment_expression "local_41 = *(char *)(iVar8 + 1)" (identifier "local_41") (= "=") (pointer_expression "*(char *)(iVar8 + 1)" (* "*") (cast_expression "(char *)(iVar8 + 1)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 1)" (( "(") (binary_expression "iVar8 + 1" (identifier "iVar8") (+ "+") (number_literal "1")) () ")"))))) (; ";")) (} "}"))) (} "}")))) (labeled_statement "LAB_000b82b5:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return local_40;\n  }" (statement_identifier "LAB_000b82b5") (: ":") (if_statement "if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return local_40;\n  }" (if "if") (parenthesized_expression "(local_20 == *(int *)(in_GS_OFFSET + 0x14))" (( "(") (binary_expression "local_20 == *(int *)(in_GS_OFFSET + 0x14)" (identifier "local_20") (== "==") (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" (* "*") (cast_expression "(int *)(in_GS_OFFSET + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_GS_OFFSET + 0x14)" (( "(") (binary_expression "in_GS_OFFSET + 0x14" (identifier "in_GS_OFFSET") (+ "+") (number_literal "0x14")) () ")"))))) () ")")) (compound_statement "{\n    return local_40;\n  }" ({ "{") (return_statement "return local_40;" (return "return") (identifier "local_40") (; ";")) (} "}")))) (expression_statement "FUN_00017e20();" (call_expression "FUN_00017e20()" (identifier "FUN_00017e20") (argument_list "()" (( "(") () ")"))) (; ";")) (labeled_statement "LAB_000b8331:\n  if ((local_41 != '+') && (local_41 != '-')) {\n    if (local_41 != '=') goto LAB_000b8305;\n    local_40 = local_40 & local_38;\n  }" (statement_identifier "LAB_000b8331") (: ":") (if_statement "if ((local_41 != '+') && (local_41 != '-')) {\n    if (local_41 != '=') goto LAB_000b8305;\n    local_40 = local_40 & local_38;\n  }" (if "if") (parenthesized_expression "((local_41 != '+') && (local_41 != '-'))" (( "(") (binary_expression "(local_41 != '+') && (local_41 != '-')" (parenthesized_expression "(local_41 != '+')" (( "(") (binary_expression "local_41 != '+'" (identifier "local_41") (!= "!=") (char_literal "'+'" (' "'") (character "+") (' "'"))) () ")")) (&& "&&") (parenthesized_expression "(local_41 != '-')" (( "(") (binary_expression "local_41 != '-'" (identifier "local_41") (!= "!=") (char_literal "'-'" (' "'") (character "-") (' "'"))) () ")"))) () ")")) (compound_statement "{\n    if (local_41 != '=') goto LAB_000b8305;\n    local_40 = local_40 & local_38;\n  }" ({ "{") (if_statement "if (local_41 != '=') goto LAB_000b8305;" (if "if") (parenthesized_expression "(local_41 != '=')" (( "(") (binary_expression "local_41 != '='" (identifier "local_41") (!= "!=") (char_literal "'='" (' "'") (character "=") (' "'"))) () ")")) (goto_statement "goto LAB_000b8305;" (goto "goto") (statement_identifier "LAB_000b8305") (; ";"))) (expression_statement "local_40 = local_40 & local_38;" (assignment_expression "local_40 = local_40 & local_38" (identifier "local_40") (= "=") (binary_expression "local_40 & local_38" (identifier "local_40") (& "&") (identifier "local_38"))) (; ";")) (} "}")))) (expression_statement "cVar5 = 'u';" (assignment_expression "cVar5 = 'u'" (identifier "cVar5") (= "=") (char_literal "'u'" (' "'") (character "u") (' "'"))) (; ";")) (expression_statement "pcVar6 = &DAT_0002082b + unaff_EDI;" (assignment_expression "pcVar6 = &DAT_0002082b + unaff_EDI" (identifier "pcVar6") (= "=") (binary_expression "&DAT_0002082b + unaff_EDI" (pointer_expression "&DAT_0002082b" (& "&") (identifier "DAT_0002082b")) (+ "+") (identifier "unaff_EDI"))) (; ";")) (labeled_statement "LAB_000b8354:\n  if (pcVar3[1] != cVar5) goto LAB_000b8401;" (statement_identifier "LAB_000b8354") (: ":") (if_statement "if (pcVar3[1] != cVar5) goto LAB_000b8401;" (if "if") (parenthesized_expression "(pcVar3[1] != cVar5)" (( "(") (binary_expression "pcVar3[1] != cVar5" (subscript_expression "pcVar3[1]" (identifier "pcVar3") ([ "[") (number_literal "1") (] "]")) (!= "!=") (identifier "cVar5")) () ")")) (goto_statement "goto LAB_000b8401;" (goto "goto") (statement_identifier "LAB_000b8401") (; ";")))) (expression_statement "uVar7 = local_40 & *(uint *)(unaff_EDI + 0x10305 + ((int)pcVar6 - (int)pcVar1) * 4);" (assignment_expression "uVar7 = local_40 & *(uint *)(unaff_EDI + 0x10305 + ((int)pcVar6 - (int)pcVar1) * 4)" (identifier "uVar7") (= "=") (binary_expression "local_40 & *(uint *)(unaff_EDI + 0x10305 + ((int)pcVar6 - (int)pcVar1) * 4)" (identifier "local_40") (& "&") (pointer_expression "*(uint *)(unaff_EDI + 0x10305 + ((int)pcVar6 - (int)pcVar1) * 4)" (* "*") (cast_expression "(uint *)(unaff_EDI + 0x10305 + ((int)pcVar6 - (int)pcVar1) * 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0x10305 + ((int)pcVar6 - (int)pcVar1) * 4)" (( "(") (binary_expression "unaff_EDI + 0x10305 + ((int)pcVar6 - (int)pcVar1) * 4" (binary_expression "unaff_EDI + 0x10305" (identifier "unaff_EDI") (+ "+") (number_literal "0x10305")) (+ "+") (binary_expression "((int)pcVar6 - (int)pcVar1) * 4" (parenthesized_expression "((int)pcVar6 - (int)pcVar1)" (( "(") (binary_expression "(int)pcVar6 - (int)pcVar1" (cast_expression "(int)pcVar6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pcVar6")) (- "-") (cast_expression "(int)pcVar1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pcVar1"))) () ")")) (* "*") (number_literal "4"))) () ")")))))) (; ";")) (expression_statement "uVar10 = uVar7 & 0x1ff;" (assignment_expression "uVar10 = uVar7 & 0x1ff" (identifier "uVar10") (= "=") (binary_expression "uVar7 & 0x1ff" (identifier "uVar7") (& "&") (number_literal "0x1ff"))) (; ";")) (if_statement "if ((uVar7 & 0x124) != 0) {\n    uVar10 = uVar10 | 0x124;\n  }" (if "if") (parenthesized_expression "((uVar7 & 0x124) != 0)" (( "(") (binary_expression "(uVar7 & 0x124) != 0" (parenthesized_expression "(uVar7 & 0x124)" (( "(") (binary_expression "uVar7 & 0x124" (identifier "uVar7") (& "&") (number_literal "0x124")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    uVar10 = uVar10 | 0x124;\n  }" ({ "{") (expression_statement "uVar10 = uVar10 | 0x124;" (assignment_expression "uVar10 = uVar10 | 0x124" (identifier "uVar10") (= "=") (binary_expression "uVar10 | 0x124" (identifier "uVar10") (| "|") (number_literal "0x124"))) (; ";")) (} "}"))) (if_statement "if ((uVar10 & 0x92) != 0) {\n    uVar10 = uVar10 | 0x92;\n  }" (if "if") (parenthesized_expression "((uVar10 & 0x92) != 0)" (( "(") (binary_expression "(uVar10 & 0x92) != 0" (parenthesized_expression "(uVar10 & 0x92)" (( "(") (binary_expression "uVar10 & 0x92" (identifier "uVar10") (& "&") (number_literal "0x92")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    uVar10 = uVar10 | 0x92;\n  }" ({ "{") (expression_statement "uVar10 = uVar10 | 0x92;" (assignment_expression "uVar10 = uVar10 | 0x92" (identifier "uVar10") (= "=") (binary_expression "uVar10 | 0x92" (identifier "uVar10") (| "|") (number_literal "0x92"))) (; ";")) (} "}"))) (if_statement "if ((uVar10 & 0x49) != 0) {\n    uVar10 = uVar10 | 0x49;\n  }" (if "if") (parenthesized_expression "((uVar10 & 0x49) != 0)" (( "(") (binary_expression "(uVar10 & 0x49) != 0" (parenthesized_expression "(uVar10 & 0x49)" (( "(") (binary_expression "uVar10 & 0x49" (identifier "uVar10") (& "&") (number_literal "0x49")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    uVar10 = uVar10 | 0x49;\n  }" ({ "{") (expression_statement "uVar10 = uVar10 | 0x49;" (assignment_expression "uVar10 = uVar10 | 0x49" (identifier "uVar10") (= "=") (binary_expression "uVar10 | 0x49" (identifier "uVar10") (| "|") (number_literal "0x49"))) (; ";")) (} "}"))) (expression_statement "pcVar3 = pcVar3 + 2;" (assignment_expression "pcVar3 = pcVar3 + 2" (identifier "pcVar3") (= "=") (binary_expression "pcVar3 + 2" (identifier "pcVar3") (+ "+") (number_literal "2"))) (; ";")) (labeled_statement "LAB_000b83a3:\n  if (uVar10 != 0) goto joined_r0x000b8458;" (statement_identifier "LAB_000b83a3") (: ":") (if_statement "if (uVar10 != 0) goto joined_r0x000b8458;" (if "if") (parenthesized_expression "(uVar10 != 0)" (( "(") (binary_expression "uVar10 != 0" (identifier "uVar10") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto joined_r0x000b8458;" (goto "goto") (statement_identifier "joined_r0x000b8458") (; ";")))) (goto_statement "goto LAB_000b83e5;" (goto "goto") (statement_identifier "LAB_000b83e5") (; ";")) (labeled_statement "LAB_000b8401:\n  pcVar6 = pcVar6 + 1;" (statement_identifier "LAB_000b8401") (: ":") (expression_statement "pcVar6 = pcVar6 + 1;" (assignment_expression "pcVar6 = pcVar6 + 1" (identifier "pcVar6") (= "=") (binary_expression "pcVar6 + 1" (identifier "pcVar6") (+ "+") (number_literal "1"))) (; ";"))) (expression_statement "cVar5 = *pcVar6;" (assignment_expression "cVar5 = *pcVar6" (identifier "cVar5") (= "=") (pointer_expression "*pcVar6" (* "*") (identifier "pcVar6"))) (; ";")) (if_statement "if (cVar5 == '\0') goto code_r0x000b840c;" (if "if") (parenthesized_expression "(cVar5 == '\0')" (( "(") (binary_expression "cVar5 == '\0'" (identifier "cVar5") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto code_r0x000b840c;" (goto "goto") (statement_identifier "code_r0x000b840c") (; ";"))) (goto_statement "goto LAB_000b8354;" (goto "goto") (statement_identifier "LAB_000b8354") (; ";")) (labeled_statement "code_r0x000b840c:\n  pcVar3 = pcVar3 + 1;" (statement_identifier "code_r0x000b840c") (: ":") (expression_statement "pcVar3 = pcVar3 + 1;" (assignment_expression "pcVar3 = pcVar3 + 1" (identifier "pcVar3") (= "=") (binary_expression "pcVar3 + 1" (identifier "pcVar3") (+ "+") (number_literal "1"))) (; ";"))) (expression_statement "uVar10 = 0;" (assignment_expression "uVar10 = 0" (identifier "uVar10") (= "=") (number_literal "0")) (; ";")) (expression_statement "pcVar6 = (char *)(unaff_EDI + 0x20823);" (assignment_expression "pcVar6 = (char *)(unaff_EDI + 0x20823)" (identifier "pcVar6") (= "=") (cast_expression "(char *)(unaff_EDI + 0x20823)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0x20823)" (( "(") (binary_expression "unaff_EDI + 0x20823" (identifier "unaff_EDI") (+ "+") (number_literal "0x20823")) () ")")))) (; ";")) (do_statement "do {\n    cVar5 = *pcVar3;\n    pcVar4 = pcVar6;\n    if (cVar5 != 'r') {\n      do {\n        pcVar4 = pcVar4 + 1;\n        if (*pcVar4 == '\0') goto LAB_000b83a3;\n      } while (cVar5 != *pcVar4);\n    }\n    if (cVar5 == 'X') {\n      if ((local_40 & 0x4049) != 0) {\n        uVar10 = uVar10 | *(uint *)(unaff_EDI + 0x102ed + ((int)pcVar4 - (int)pcVar6) * 4);\n      }\n    }\n    else {\n      uVar10 = uVar10 | *(uint *)(unaff_EDI + 0x102ed + ((int)pcVar4 - (int)pcVar6) * 4);\n    }\n    pcVar3 = pcVar3 + 1;\n  } while (*pcVar3 != '\0');" (do "do") (compound_statement "{\n    cVar5 = *pcVar3;\n    pcVar4 = pcVar6;\n    if (cVar5 != 'r') {\n      do {\n        pcVar4 = pcVar4 + 1;\n        if (*pcVar4 == '\0') goto LAB_000b83a3;\n      } while (cVar5 != *pcVar4);\n    }\n    if (cVar5 == 'X') {\n      if ((local_40 & 0x4049) != 0) {\n        uVar10 = uVar10 | *(uint *)(unaff_EDI + 0x102ed + ((int)pcVar4 - (int)pcVar6) * 4);\n      }\n    }\n    else {\n      uVar10 = uVar10 | *(uint *)(unaff_EDI + 0x102ed + ((int)pcVar4 - (int)pcVar6) * 4);\n    }\n    pcVar3 = pcVar3 + 1;\n  }" ({ "{") (expression_statement "cVar5 = *pcVar3;" (assignment_expression "cVar5 = *pcVar3" (identifier "cVar5") (= "=") (pointer_expression "*pcVar3" (* "*") (identifier "pcVar3"))) (; ";")) (expression_statement "pcVar4 = pcVar6;" (assignment_expression "pcVar4 = pcVar6" (identifier "pcVar4") (= "=") (identifier "pcVar6")) (; ";")) (if_statement "if (cVar5 != 'r') {\n      do {\n        pcVar4 = pcVar4 + 1;\n        if (*pcVar4 == '\0') goto LAB_000b83a3;\n      } while (cVar5 != *pcVar4);\n    }" (if "if") (parenthesized_expression "(cVar5 != 'r')" (( "(") (binary_expression "cVar5 != 'r'" (identifier "cVar5") (!= "!=") (char_literal "'r'" (' "'") (character "r") (' "'"))) () ")")) (compound_statement "{\n      do {\n        pcVar4 = pcVar4 + 1;\n        if (*pcVar4 == '\0') goto LAB_000b83a3;\n      } while (cVar5 != *pcVar4);\n    }" ({ "{") (do_statement "do {\n        pcVar4 = pcVar4 + 1;\n        if (*pcVar4 == '\0') goto LAB_000b83a3;\n      } while (cVar5 != *pcVar4);" (do "do") (compound_statement "{\n        pcVar4 = pcVar4 + 1;\n        if (*pcVar4 == '\0') goto LAB_000b83a3;\n      }" ({ "{") (expression_statement "pcVar4 = pcVar4 + 1;" (assignment_expression "pcVar4 = pcVar4 + 1" (identifier "pcVar4") (= "=") (binary_expression "pcVar4 + 1" (identifier "pcVar4") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (*pcVar4 == '\0') goto LAB_000b83a3;" (if "if") (parenthesized_expression "(*pcVar4 == '\0')" (( "(") (binary_expression "*pcVar4 == '\0'" (pointer_expression "*pcVar4" (* "*") (identifier "pcVar4")) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto LAB_000b83a3;" (goto "goto") (statement_identifier "LAB_000b83a3") (; ";"))) (} "}")) (while "while") (parenthesized_expression "(cVar5 != *pcVar4)" (( "(") (binary_expression "cVar5 != *pcVar4" (identifier "cVar5") (!= "!=") (pointer_expression "*pcVar4" (* "*") (identifier "pcVar4"))) () ")")) (; ";")) (} "}"))) (if_statement "if (cVar5 == 'X') {\n      if ((local_40 & 0x4049) != 0) {\n        uVar10 = uVar10 | *(uint *)(unaff_EDI + 0x102ed + ((int)pcVar4 - (int)pcVar6) * 4);\n      }\n    }\n    else {\n      uVar10 = uVar10 | *(uint *)(unaff_EDI + 0x102ed + ((int)pcVar4 - (int)pcVar6) * 4);\n    }" (if "if") (parenthesized_expression "(cVar5 == 'X')" (( "(") (binary_expression "cVar5 == 'X'" (identifier "cVar5") (== "==") (char_literal "'X'" (' "'") (character "X") (' "'"))) () ")")) (compound_statement "{\n      if ((local_40 & 0x4049) != 0) {\n        uVar10 = uVar10 | *(uint *)(unaff_EDI + 0x102ed + ((int)pcVar4 - (int)pcVar6) * 4);\n      }\n    }" ({ "{") (if_statement "if ((local_40 & 0x4049) != 0) {\n        uVar10 = uVar10 | *(uint *)(unaff_EDI + 0x102ed + ((int)pcVar4 - (int)pcVar6) * 4);\n      }" (if "if") (parenthesized_expression "((local_40 & 0x4049) != 0)" (( "(") (binary_expression "(local_40 & 0x4049) != 0" (parenthesized_expression "(local_40 & 0x4049)" (( "(") (binary_expression "local_40 & 0x4049" (identifier "local_40") (& "&") (number_literal "0x4049")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        uVar10 = uVar10 | *(uint *)(unaff_EDI + 0x102ed + ((int)pcVar4 - (int)pcVar6) * 4);\n      }" ({ "{") (expression_statement "uVar10 = uVar10 | *(uint *)(unaff_EDI + 0x102ed + ((int)pcVar4 - (int)pcVar6) * 4);" (assignment_expression "uVar10 = uVar10 | *(uint *)(unaff_EDI + 0x102ed + ((int)pcVar4 - (int)pcVar6) * 4)" (identifier "uVar10") (= "=") (binary_expression "uVar10 | *(uint *)(unaff_EDI + 0x102ed + ((int)pcVar4 - (int)pcVar6) * 4)" (identifier "uVar10") (| "|") (pointer_expression "*(uint *)(unaff_EDI + 0x102ed + ((int)pcVar4 - (int)pcVar6) * 4)" (* "*") (cast_expression "(uint *)(unaff_EDI + 0x102ed + ((int)pcVar4 - (int)pcVar6) * 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0x102ed + ((int)pcVar4 - (int)pcVar6) * 4)" (( "(") (binary_expression "unaff_EDI + 0x102ed + ((int)pcVar4 - (int)pcVar6) * 4" (binary_expression "unaff_EDI + 0x102ed" (identifier "unaff_EDI") (+ "+") (number_literal "0x102ed")) (+ "+") (binary_expression "((int)pcVar4 - (int)pcVar6) * 4" (parenthesized_expression "((int)pcVar4 - (int)pcVar6)" (( "(") (binary_expression "(int)pcVar4 - (int)pcVar6" (cast_expression "(int)pcVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pcVar4")) (- "-") (cast_expression "(int)pcVar6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pcVar6"))) () ")")) (* "*") (number_literal "4"))) () ")")))))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n      uVar10 = uVar10 | *(uint *)(unaff_EDI + 0x102ed + ((int)pcVar4 - (int)pcVar6) * 4);\n    }" (else "else") (compound_statement "{\n      uVar10 = uVar10 | *(uint *)(unaff_EDI + 0x102ed + ((int)pcVar4 - (int)pcVar6) * 4);\n    }" ({ "{") (expression_statement "uVar10 = uVar10 | *(uint *)(unaff_EDI + 0x102ed + ((int)pcVar4 - (int)pcVar6) * 4);" (assignment_expression "uVar10 = uVar10 | *(uint *)(unaff_EDI + 0x102ed + ((int)pcVar4 - (int)pcVar6) * 4)" (identifier "uVar10") (= "=") (binary_expression "uVar10 | *(uint *)(unaff_EDI + 0x102ed + ((int)pcVar4 - (int)pcVar6) * 4)" (identifier "uVar10") (| "|") (pointer_expression "*(uint *)(unaff_EDI + 0x102ed + ((int)pcVar4 - (int)pcVar6) * 4)" (* "*") (cast_expression "(uint *)(unaff_EDI + 0x102ed + ((int)pcVar4 - (int)pcVar6) * 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0x102ed + ((int)pcVar4 - (int)pcVar6) * 4)" (( "(") (binary_expression "unaff_EDI + 0x102ed + ((int)pcVar4 - (int)pcVar6) * 4" (binary_expression "unaff_EDI + 0x102ed" (identifier "unaff_EDI") (+ "+") (number_literal "0x102ed")) (+ "+") (binary_expression "((int)pcVar4 - (int)pcVar6) * 4" (parenthesized_expression "((int)pcVar4 - (int)pcVar6)" (( "(") (binary_expression "(int)pcVar4 - (int)pcVar6" (cast_expression "(int)pcVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pcVar4")) (- "-") (cast_expression "(int)pcVar6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pcVar6"))) () ")")) (* "*") (number_literal "4"))) () ")")))))) (; ";")) (} "}")))) (expression_statement "pcVar3 = pcVar3 + 1;" (assignment_expression "pcVar3 = pcVar3 + 1" (identifier "pcVar3") (= "=") (binary_expression "pcVar3 + 1" (identifier "pcVar3") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(*pcVar3 != '\0')" (( "(") (binary_expression "*pcVar3 != '\0'" (pointer_expression "*pcVar3" (* "*") (identifier "pcVar3")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (; ";")) (if_statement "if (uVar10 == 0) goto LAB_000b82b5;" (if "if") (parenthesized_expression "(uVar10 == 0)" (( "(") (binary_expression "uVar10 == 0" (identifier "uVar10") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_000b82b5;" (goto "goto") (statement_identifier "LAB_000b82b5") (; ";"))) (labeled_statement "joined_r0x000b8458:\n  uVar7 = uVar9;" (statement_identifier "joined_r0x000b8458") (: ":") (expression_statement "uVar7 = uVar9;" (assignment_expression "uVar7 = uVar9" (identifier "uVar7") (= "=") (identifier "uVar9")) (; ";"))) (if_statement "if (uVar9 == 0) {\n    __mask = umask(0);\n    umask(__mask);\n    uVar7 = ~__mask;\n  }" (if "if") (parenthesized_expression "(uVar9 == 0)" (( "(") (binary_expression "uVar9 == 0" (identifier "uVar9") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    __mask = umask(0);\n    umask(__mask);\n    uVar7 = ~__mask;\n  }" ({ "{") (expression_statement "__mask = umask(0);" (assignment_expression "__mask = umask(0)" (identifier "__mask") (= "=") (call_expression "umask(0)" (identifier "umask") (argument_list "(0)" (( "(") (number_literal "0") () ")")))) (; ";")) (expression_statement "umask(__mask);" (call_expression "umask(__mask)" (identifier "umask") (argument_list "(__mask)" (( "(") (identifier "__mask") () ")"))) (; ";")) (expression_statement "uVar7 = ~__mask;" (assignment_expression "uVar7 = ~__mask" (identifier "uVar7") (= "=") (unary_expression "~__mask" (~ "~") (identifier "__mask"))) (; ";")) (} "}"))) (if_statement "if (local_41 == '-') {\n    local_40 = local_40 & ~(uVar10 & uVar7);\nLAB_000b83e5:\n    local_41 = *pcVar3;\n  }\n  else {\n    local_40 = local_40 | uVar10 & uVar7;\n    local_41 = *pcVar3;\n  }" (if "if") (parenthesized_expression "(local_41 == '-')" (( "(") (binary_expression "local_41 == '-'" (identifier "local_41") (== "==") (char_literal "'-'" (' "'") (character "-") (' "'"))) () ")")) (compound_statement "{\n    local_40 = local_40 & ~(uVar10 & uVar7);\nLAB_000b83e5:\n    local_41 = *pcVar3;\n  }" ({ "{") (expression_statement "local_40 = local_40 & ~(uVar10 & uVar7);" (assignment_expression "local_40 = local_40 & ~(uVar10 & uVar7)" (identifier "local_40") (= "=") (binary_expression "local_40 & ~(uVar10 & uVar7)" (identifier "local_40") (& "&") (unary_expression "~(uVar10 & uVar7)" (~ "~") (parenthesized_expression "(uVar10 & uVar7)" (( "(") (binary_expression "uVar10 & uVar7" (identifier "uVar10") (& "&") (identifier "uVar7")) () ")"))))) (; ";")) (labeled_statement "LAB_000b83e5:\n    local_41 = *pcVar3;" (statement_identifier "LAB_000b83e5") (: ":") (expression_statement "local_41 = *pcVar3;" (assignment_expression "local_41 = *pcVar3" (identifier "local_41") (= "=") (pointer_expression "*pcVar3" (* "*") (identifier "pcVar3"))) (; ";"))) (} "}")) (else_clause "else {\n    local_40 = local_40 | uVar10 & uVar7;\n    local_41 = *pcVar3;\n  }" (else "else") (compound_statement "{\n    local_40 = local_40 | uVar10 & uVar7;\n    local_41 = *pcVar3;\n  }" ({ "{") (expression_statement "local_40 = local_40 | uVar10 & uVar7;" (assignment_expression "local_40 = local_40 | uVar10 & uVar7" (identifier "local_40") (= "=") (binary_expression "local_40 | uVar10 & uVar7" (identifier "local_40") (| "|") (binary_expression "uVar10 & uVar7" (identifier "uVar10") (& "&") (identifier "uVar7")))) (; ";")) (expression_statement "local_41 = *pcVar3;" (assignment_expression "local_41 = *pcVar3" (identifier "local_41") (= "=") (pointer_expression "*pcVar3" (* "*") (identifier "pcVar3"))) (; ";")) (} "}")))) (if_statement "if (local_41 == '\0') goto LAB_000b82b5;" (if "if") (parenthesized_expression "(local_41 == '\0')" (( "(") (binary_expression "local_41 == '\0'" (identifier "local_41") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto LAB_000b82b5;" (goto "goto") (statement_identifier "LAB_000b82b5") (; ";"))) (expression_statement "uVar11 = CONCAT44(local_40,pcVar3);" (assignment_expression "uVar11 = CONCAT44(local_40,pcVar3)" (identifier "uVar11") (= "=") (call_expression "CONCAT44(local_40,pcVar3)" (identifier "CONCAT44") (argument_list "(local_40,pcVar3)" (( "(") (identifier "local_40") (, ",") (identifier "pcVar3") () ")")))) (; ";")) (if_statement "if (local_41 == ',') goto LAB_000b82a3;" (if "if") (parenthesized_expression "(local_41 == ',')" (( "(") (binary_expression "local_41 == ','" (identifier "local_41") (== "==") (char_literal "','" (' "'") (character ",") (' "'"))) () ")")) (goto_statement "goto LAB_000b82a3;" (goto "goto") (statement_identifier "LAB_000b82a3") (; ";"))) (goto_statement "goto LAB_000b8331;" (goto "goto") (statement_identifier "LAB_000b8331") (; ";")) (} "}")))

int function_1(char *s,type_1 current_mode)

{
  char *e;
  
                    /* WARNING: Subroutine does not return */
  var_1();
}


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

uint MASKED(void)

{
  char *pcVar1;
  ulong uVar2;
  char *pcVar3;
  __mode_t __mask;
  char *pcVar4;
  char cVar5;
  char *pcVar6;
  uint uVar7;
  int iVar8;
  uint uVar9;
  uint uVar10;
  int unaff_EDI;
  int in_GS_OFFSET;
  undefined8 uVar11;
  char local_41;
  uint local_40;
  uint local_38;
  char *local_24;
  int local_20;
  
  uVar11 = FUN_00027c55();
  local_40 = (uint)((ulonglong)uVar11 >> 0x20);
  local_20 = *(int *)(in_GS_OFFSET + 0x14);
  local_41 = *(char *)uVar11;
  if ((byte)(local_41 - 0x30U) < 8) {
    uVar2 = strtoul((char *)uVar11,&local_24,8);
    local_40 = 0xffffffff;
    if ((*local_24 == '\0') && (uVar2 < 0x1000)) {
      local_40 = uVar2;
    }
  }
  else {
    while (local_41 != '\0') {
      local_40 = (uint)((ulonglong)uVar11 >> 0x20);
      pcVar3 = (char *)uVar11;
      if (local_41 != ',') {
        uVar9 = 0;
        pcVar1 = &UNK_0002082a + unaff_EDI;
        do {
          cVar5 = 'a';
          pcVar6 = pcVar1;
          while (cVar5 != local_41) {
            pcVar6 = pcVar6 + 1;
            cVar5 = *pcVar6;
            if (cVar5 == '\0') {
              local_38 = 0xfffff000;
              if (uVar9 != 0) {
                local_38 = ~uVar9;
              }
              goto LAB_000b8331;
            }
          }
          uVar9 = uVar9 | *(uint *)(unaff_EDI + 0x10305 + ((int)pcVar6 - (int)pcVar1) * 4);
          pcVar3 = pcVar3 + 1;
          local_41 = *pcVar3;
        } while (local_41 != '\0');
LAB_000b8305:
        local_40 = 0xffffffff;
        break;
      }
LAB_000b82a3:
      local_40 = (uint)((ulonglong)uVar11 >> 0x20);
      iVar8 = (int)uVar11;
      uVar11 = CONCAT44(local_40,iVar8 + 1);
      local_41 = *(char *)(iVar8 + 1);
    }
  }
LAB_000b82b5:
  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {
    return local_40;
  }
                    /* WARNING: Subroutine does not return */
  FUN_00017e20();
LAB_000b8331:
  if ((local_41 != '+') && (local_41 != '-')) {
    if (local_41 != '=') goto LAB_000b8305;
    local_40 = local_40 & local_38;
  }
  cVar5 = 'u';
  pcVar6 = &DAT_0002082b + unaff_EDI;
LAB_000b8354:
  if (pcVar3[1] != cVar5) goto LAB_000b8401;
  uVar7 = local_40 & *(uint *)(unaff_EDI + 0x10305 + ((int)pcVar6 - (int)pcVar1) * 4);
  uVar10 = uVar7 & 0x1ff;
  if ((uVar7 & 0x124) != 0) {
    uVar10 = uVar10 | 0x124;
  }
  if ((uVar10 & 0x92) != 0) {
    uVar10 = uVar10 | 0x92;
  }
  if ((uVar10 & 0x49) != 0) {
    uVar10 = uVar10 | 0x49;
  }
  pcVar3 = pcVar3 + 2;
LAB_000b83a3:
  if (uVar10 != 0) goto joined_r0x000b8458;
  goto LAB_000b83e5;
LAB_000b8401:
  pcVar6 = pcVar6 + 1;
  cVar5 = *pcVar6;
  if (cVar5 == '\0') goto code_r0x000b840c;
  goto LAB_000b8354;
code_r0x000b840c:
  pcVar3 = pcVar3 + 1;
  uVar10 = 0;
  pcVar6 = (char *)(unaff_EDI + 0x20823);
  do {
    cVar5 = *pcVar3;
    pcVar4 = pcVar6;
    if (cVar5 != 'r') {
      do {
        pcVar4 = pcVar4 + 1;
        if (*pcVar4 == '\0') goto LAB_000b83a3;
      } while (cVar5 != *pcVar4);
    }
    if (cVar5 == 'X') {
      if ((local_40 & 0x4049) != 0) {
        uVar10 = uVar10 | *(uint *)(unaff_EDI + 0x102ed + ((int)pcVar4 - (int)pcVar6) * 4);
      }
    }
    else {
      uVar10 = uVar10 | *(uint *)(unaff_EDI + 0x102ed + ((int)pcVar4 - (int)pcVar6) * 4);
    }
    pcVar3 = pcVar3 + 1;
  } while (*pcVar3 != '\0');
  if (uVar10 == 0) goto LAB_000b82b5;
joined_r0x000b8458:
  uVar7 = uVar9;
  if (uVar9 == 0) {
    __mask = umask(0);
    umask(__mask);
    uVar7 = ~__mask;
  }
  if (local_41 == '-') {
    local_40 = local_40 & ~(uVar10 & uVar7);
LAB_000b83e5:
    local_41 = *pcVar3;
  }
  else {
    local_40 = local_40 | uVar10 & uVar7;
    local_41 = *pcVar3;
  }
  if (local_41 == '\0') goto LAB_000b82b5;
  uVar11 = CONCAT44(local_40,pcVar3);
  if (local_41 == ',') goto LAB_000b82a3;
  goto LAB_000b8331;
}

