
void d_print_mod_list(d_print_info *dpi,int options,d_print_mod *mods,int suffix)

{
  int iVar1;
  int *piVar2;
  uint *puVar3;
  uint uVar4;
  d_print_mod *pdVar5;
  d_print_info *dpi_00;
  size_t sVar6;
  demangle_component_type dVar7;
  size_t sVar8;
  int *extraout_ECX;
  size_t sVar9;
  char cVar10;
  char *pcVar11;
  char *pcVar12;
  int unaff_EDI;
  int options_00;
  d_print_template *pdVar13;
  undefined8 uVar14;
  d_print_info *dpi_01;
  demangle_component *in_stack_ffffffbc;
  demangle_component *dc;
  char buf [25];
  
  uVar14 = __x86_get_pc_thunk_di();
  dpi_01 = (d_print_info *)((ulonglong)uVar14 >> 0x20);
  dpi_00 = (d_print_info *)uVar14;
  options_00 = unaff_EDI + 0x19ede9;
  if (extraout_ECX != (int *)0x0) {
    iVar1 = dpi_00->demangle_failure;
    piVar2 = extraout_ECX;
    while (iVar1 == 0) {
      if (piVar2[2] == 0) {
        puVar3 = (uint *)piVar2[1];
        uVar4 = *puVar3;
        if (dpi != (d_print_info *)0x0) goto LAB_001a0258;
        if (uVar4 != 0x4c) {
          if (uVar4 < 0x4d) {
            if (4 < uVar4 - 0x1c) goto LAB_001a0258;
          }
          else if (1 < uVar4 - 0x4e) {
LAB_001a0258:
            pdVar13 = dpi_00->templates;
            piVar2[2] = 1;
            dpi_00->templates = (d_print_template *)piVar2[3];
            if (uVar4 == 0x29) {
              d_print_function_type
                        (dpi_00,(int)dpi_01,(demangle_component *)(puVar3 + 3),
                         (d_print_mod *)*piVar2);
              dpi_00->templates = pdVar13;
              return;
            }
            if (uVar4 == 0x2a) {
              d_print_array_type(dpi_00,(int)dpi_01,(demangle_component *)(puVar3 + 2),
                                 (d_print_mod *)*piVar2);
              dpi_00->templates = pdVar13;
              return;
            }
            if (uVar4 == 2) {
              pdVar5 = dpi_00->modifiers;
              dpi_00->modifiers = (d_print_mod *)0x0;
              d_print_comp(dpi_01,options_00,in_stack_ffffffbc);
              dpi_00->modifiers = pdVar5;
              sVar6 = dpi_00->len;
              if (((uint)dpi_01 & 4) == 0) {
                pcVar12 = (char *)(options_00 + -0xd471f);
                pcVar11 = (char *)(options_00 + -0xd471d);
                cVar10 = ':';
                while( true ) {
                  if (sVar6 == 0xff) {
                    dpi_00->buf[0xff] = '\0';
                    (*dpi_00->callback)(dpi_00->buf,0xff,dpi_00->opaque);
                    dpi_00->flush_count = dpi_00->flush_count + 1;
                    sVar9 = 1;
                    sVar6 = 0;
                  }
                  else {
                    sVar9 = sVar6 + 1;
                  }
                  pcVar12 = pcVar12 + 1;
                  dpi_00->len = sVar9;
                  dpi_00->buf[sVar6] = cVar10;
                  dpi_00->last_char = cVar10;
                  if (pcVar12 == pcVar11) break;
                  cVar10 = *pcVar12;
                  sVar6 = sVar9;
                }
              }
              else {
                sVar9 = sVar6 + 1;
                if (sVar6 == 0xff) {
                  dpi_00->buf[0xff] = '\0';
                  (*dpi_00->callback)(dpi_00->buf,0xff,dpi_00->opaque);
                  dpi_00->flush_count = dpi_00->flush_count + 1;
                  sVar9 = 1;
                  sVar6 = 0;
                }
                dpi_00->len = sVar9;
                dpi_00->buf[sVar6] = '.';
                dpi_00->last_char = '.';
              }
              dc = *(demangle_component **)(piVar2[1] + 0xc);
              dVar7 = dc->type;
              if (dVar7 == DEMANGLE_COMPONENT_DEFAULT_ARG) {
                cVar10 = '{';
                pcVar11 = (char *)(options_00 + -0xd472d);
                pcVar12 = (char *)(options_00 + -0xd4721);
                sVar6 = dpi_00->len;
                while( true ) {
                  if (sVar6 == 0xff) {
                    dpi_00->buf[0xff] = '\0';
                    (*dpi_00->callback)(dpi_00->buf,0xff,dpi_00->opaque);
                    dpi_00->flush_count = dpi_00->flush_count + 1;
                    sVar9 = 1;
                    sVar6 = 0;
                  }
                  else {
                    sVar9 = sVar6 + 1;
                  }
                  dpi_00->len = sVar9;
                  dpi_00->buf[sVar6] = cVar10;
                  dpi_00->last_char = cVar10;
                  if (pcVar11 == pcVar12) break;
                  cVar10 = *pcVar11;
                  pcVar11 = pcVar11 + 1;
                  sVar6 = sVar9;
                }
                pcVar11 = buf;
                sprintf(pcVar11,(char *)(options_00 + -0xd6197),
                        (byte *)((int)&((dc->u).s_extended_operator.name)->type + 1));
                sVar8 = strlen(pcVar11);
                sVar6 = dpi_00->len;
                if (sVar8 != 0) {
                  pcVar12 = pcVar11 + sVar8;
                  sVar9 = sVar6;
                  do {
                    cVar10 = *pcVar11;
                    if (sVar9 == 0xff) {
                      dpi_00->buf[0xff] = '\0';
                      (*dpi_00->callback)(dpi_00->buf,0xff,dpi_00->opaque);
                      dpi_00->flush_count = dpi_00->flush_count + 1;
                      sVar6 = 1;
                      sVar9 = 0;
                    }
                    else {
                      sVar6 = sVar9 + 1;
                    }
                    pcVar11 = pcVar11 + 1;
                    dpi_00->len = sVar6;
                    dpi_00->buf[sVar9] = cVar10;
                    dpi_00->last_char = cVar10;
                    sVar9 = sVar6;
                  } while (pcVar12 != pcVar11);
                }
                pcVar12 = (char *)(options_00 + -0xd4720);
                cVar10 = '}';
                pcVar11 = (char *)(options_00 + -0xd471d);
                do {
                  if (sVar6 == 0xff) {
                    options_00 = CONCAT31((int3)((uint)options_00 >> 8),cVar10);
                    dpi_00->buf[0xff] = '\0';
                    (*dpi_00->callback)(dpi_00->buf,0xff,dpi_00->opaque);
                    dpi_00->flush_count = dpi_00->flush_count + 1;
                    sVar9 = 1;
                    sVar6 = 0;
                    cVar10 = (char)options_00;
                  }
                  else {
                    sVar9 = sVar6 + 1;
                  }
                  pcVar12 = pcVar12 + 1;
                  dpi_00->len = sVar9;
                  dpi_00->buf[sVar6] = cVar10;
                  dpi_00->last_char = cVar10;
                  if (pcVar11 == pcVar12) goto LAB_001a03d9;
                  cVar10 = *pcVar12;
                  sVar6 = sVar9;
                } while( true );
              }
              do {
                if (dVar7 != DEMANGLE_COMPONENT_TRANSACTION_SAFE) {
                  if (dVar7 < DEMANGLE_COMPONENT_CLONE) {
                    if (4 < dVar7 - DEMANGLE_COMPONENT_RESTRICT_THIS) {
LAB_001a036d:
                      d_print_comp(dpi_01,options_00,dc);
                      dpi_00->templates = pdVar13;
                      return;
                    }
                  }
                  else if (1 < dVar7 - DEMANGLE_COMPONENT_NOEXCEPT) goto LAB_001a036d;
                }
LAB_001a03d9:
                dc = (dc->u).s_fixed.length;
                dVar7 = dc->type;
              } while( true );
            }
            d_print_mod(dpi_01,options_00,in_stack_ffffffbc);
            dpi_00->templates = pdVar13;
          }
        }
      }
      piVar2 = (int *)*piVar2;
      if (piVar2 == (int *)0x0) {
        return;
      }
      iVar1 = dpi_00->demangle_failure;
    }
  }
  return;
}



void FUN_001a0210(int param_1)

{
  char *pcVar1;
  char cVar2;
  undefined4 uVar3;
  int *piVar4;
  undefined4 uVar5;
  int iVar6;
  int iVar7;
  uint uVar8;
  size_t sVar9;
  int *extraout_ECX;
  int iVar10;
  undefined1 uVar11;
  undefined1 *puVar12;
  char *__s;
  int unaff_EDI;
  ulonglong uVar13;
  uint *local_44;
  char local_35 [37];
  
  uVar13 = FUN_00058c4a();
  iVar6 = (int)uVar13;
  if (extraout_ECX != (int *)0x0) {
    iVar7 = *(int *)(iVar6 + 0x118);
    piVar4 = extraout_ECX;
    while (iVar7 == 0) {
      if (piVar4[2] == 0) {
        uVar8 = *(uint *)piVar4[1];
        if (param_1 != 0) goto LAB_001a0258;
        if (uVar8 != 0x4c) {
          if (uVar8 < 0x4d) {
            if (4 < uVar8 - 0x1c) goto LAB_001a0258;
          }
          else if (1 < uVar8 - 0x4e) {
LAB_001a0258:
            uVar3 = *(undefined4 *)(iVar6 + 0x110);
            piVar4[2] = 1;
            *(int *)(iVar6 + 0x110) = piVar4[3];
            if (uVar8 == 0x29) {
              FUN_0019fef0(*piVar4);
              *(undefined4 *)(iVar6 + 0x110) = uVar3;
              return;
            }
            if (uVar8 == 0x2a) {
              FUN_001a0610(*piVar4);
              *(undefined4 *)(iVar6 + 0x110) = uVar3;
              return;
            }
            if (uVar8 == 2) {
              uVar5 = *(undefined4 *)(iVar6 + 0x114);
              *(undefined4 *)(iVar6 + 0x114) = 0;
              FUN_0019a610();
              *(undefined4 *)(iVar6 + 0x114) = uVar5;
              iVar7 = *(int *)(iVar6 + 0x100);
              if ((uVar13 & 0x400000000) == 0) {
                puVar12 = (undefined1 *)(unaff_EDI + 0xca6ca);
                uVar11 = 0x3a;
                while( true ) {
                  if (iVar7 == 0xff) {
                    *(undefined1 *)(iVar6 + 0xff) = 0;
                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));
                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;
                    iVar10 = 1;
                    iVar7 = 0;
                  }
                  else {
                    iVar10 = iVar7 + 1;
                  }
                  puVar12 = puVar12 + 1;
                  *(int *)(iVar6 + 0x100) = iVar10;
                  *(undefined1 *)(iVar6 + iVar7) = uVar11;
                  *(undefined1 *)(iVar6 + 0x104) = uVar11;
                  if (puVar12 == (undefined1 *)(unaff_EDI + 0xca6cc)) break;
                  uVar11 = *puVar12;
                  iVar7 = iVar10;
                }
              }
              else {
                iVar10 = iVar7 + 1;
                if (iVar7 == 0xff) {
                  *(undefined1 *)(iVar6 + 0xff) = 0;
                  (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));
                  *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;
                  iVar10 = 1;
                  iVar7 = 0;
                }
                *(int *)(iVar6 + 0x100) = iVar10;
                *(undefined1 *)(iVar6 + iVar7) = 0x2e;
                *(undefined1 *)(iVar6 + 0x104) = 0x2e;
              }
              local_44 = *(uint **)(piVar4[1] + 0xc);
              uVar8 = *local_44;
              if (uVar8 == 0x46) {
                uVar11 = 0x7b;
                puVar12 = (undefined1 *)(unaff_EDI + 0xca6bc);
                iVar7 = *(int *)(iVar6 + 0x100);
                while( true ) {
                  if (iVar7 == 0xff) {
                    *(undefined1 *)(iVar6 + 0xff) = 0;
                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));
                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;
                    iVar10 = 1;
                    iVar7 = 0;
                  }
                  else {
                    iVar10 = iVar7 + 1;
                  }
                  *(int *)(iVar6 + 0x100) = iVar10;
                  *(undefined1 *)(iVar6 + iVar7) = uVar11;
                  *(undefined1 *)(iVar6 + 0x104) = uVar11;
                  if (puVar12 == (undefined1 *)(unaff_EDI + 0xca6c8)) break;
                  uVar11 = *puVar12;
                  puVar12 = puVar12 + 1;
                  iVar7 = iVar10;
                }
                __s = local_35;
                sprintf(__s,(char *)(unaff_EDI + 0xc8c52),local_44[3] + 1);
                sVar9 = strlen(__s);
                iVar7 = *(int *)(iVar6 + 0x100);
                if (sVar9 != 0) {
                  pcVar1 = __s + sVar9;
                  iVar10 = iVar7;
                  do {
                    cVar2 = *__s;
                    if (iVar10 == 0xff) {
                      *(undefined1 *)(iVar6 + 0xff) = 0;
                      (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));
                      *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;
                      iVar7 = 1;
                      iVar10 = 0;
                    }
                    else {
                      iVar7 = iVar10 + 1;
                    }
                    __s = __s + 1;
                    *(int *)(iVar6 + 0x100) = iVar7;
                    *(char *)(iVar6 + iVar10) = cVar2;
                    *(char *)(iVar6 + 0x104) = cVar2;
                    iVar10 = iVar7;
                  } while (pcVar1 != __s);
                }
                puVar12 = (undefined1 *)(unaff_EDI + 0xca6c9);
                uVar11 = 0x7d;
                do {
                  if (iVar7 == 0xff) {
                    *(undefined1 *)(iVar6 + 0xff) = 0;
                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));
                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;
                    iVar10 = 1;
                    iVar7 = 0;
                  }
                  else {
                    iVar10 = iVar7 + 1;
                  }
                  puVar12 = puVar12 + 1;
                  *(int *)(iVar6 + 0x100) = iVar10;
                  *(undefined1 *)(iVar6 + iVar7) = uVar11;
                  *(undefined1 *)(iVar6 + 0x104) = uVar11;
                  if ((undefined1 *)(unaff_EDI + 0xca6cc) == puVar12) goto LAB_001a03d9;
                  uVar11 = *puVar12;
                  iVar7 = iVar10;
                } while( true );
              }
              do {
                if (uVar8 != 0x4c) {
                  if (uVar8 < 0x4d) {
                    if (4 < uVar8 - 0x1c) {
LAB_001a036d:
                      FUN_0019a610();
                      *(undefined4 *)(iVar6 + 0x110) = uVar3;
                      return;
                    }
                  }
                  else if (1 < uVar8 - 0x4e) goto LAB_001a036d;
                }
LAB_001a03d9:
                local_44 = (uint *)local_44[2];
                uVar8 = *local_44;
              } while( true );
            }
            FUN_0019f570();
            *(undefined4 *)(iVar6 + 0x110) = uVar3;
          }
        }
      }
      piVar4 = (int *)*piVar4;
      if (piVar4 == (int *)0x0) {
        return;
      }
      iVar7 = *(int *)(iVar6 + 0x118);
    }
  }
  return;
}


PUSH EBP
PUSH EDI
CALL 0x00058c4a
ADD EDI,0x19ede9
PUSH ESI
PUSH EBX
SUB ESP,0x3c
MOV dword ptr [ESP],EDX
MOV EBP,dword ptr [ESP + 0x50]
MOV dword ptr [ESP + 0x4],EDI
TEST ECX,ECX
JZ 0x001a0381
MOV EBX,ECX
MOV ECX,dword ptr [EAX + 0x118]
MOV ESI,EAX
TEST ECX,ECX
JZ 0x001a02ad
JMP 0x001a0381
LEA EDX,[EAX + -0x1c]
CMP EDX,0x4
JBE 0x001a0295
MOV EDX,dword ptr [EBX + 0xc]
MOV EDI,dword ptr [ESI + 0x110]
MOV dword ptr [EBX + 0x8],0x1
MOV dword ptr [ESI + 0x110],EDX
CMP EAX,0x29
JZ 0x001a0389
CMP EAX,0x2a
JZ 0x001a03ad
CMP EAX,0x2
JZ 0x001a02ce
MOV EDX,dword ptr [ESP]
MOV EAX,ESI
CALL 0x0019f570
MOV dword ptr [ESI + 0x110],EDI
MOV EBX,dword ptr [EBX]
TEST EBX,EBX
JZ 0x001a0381
MOV EDX,dword ptr [ESI + 0x118]
TEST EDX,EDX
JNZ 0x001a0381
MOV EAX,dword ptr [EBX + 0x8]
TEST EAX,EAX
JNZ 0x001a0295
MOV ECX,dword ptr [EBX + 0x4]
MOV EAX,dword ptr [ECX]
TEST EBP,EBP
JNZ 0x001a0258
CMP EAX,0x4c
JZ 0x001a0295
JBE 0x001a0250
LEA EDX,[EAX + -0x4e]
CMP EDX,0x1
JA 0x001a0258
JMP 0x001a0295
MOV EBP,dword ptr [ESI + 0x114]
MOV ECX,dword ptr [ECX + 0x8]
MOV EAX,ESI
MOV dword ptr [ESI + 0x114],0x0
MOV EDX,dword ptr [ESP]
CALL 0x0019a610
MOV dword ptr [ESI + 0x114],EBP
MOV EAX,dword ptr [ESI + 0x100]
TEST byte ptr [ESP],0x4
JZ 0x001a03eb
LEA EDX,[EAX + 0x1]
CMP EAX,0xff
JNZ 0x001a0338
SUB ESP,0x4
MOV byte ptr [ESI + 0xff],0x0
PUSH dword ptr [ESI + 0x10c]
PUSH 0xff
PUSH ESI
CALL dword ptr [ESI + 0x108]
ADD dword ptr [ESI + 0x128],0x1
MOV EDX,0x1
XOR EAX,EAX
ADD ESP,0x10
MOV dword ptr [ESI + 0x100],EDX
MOV byte ptr [ESI + EAX*0x1],0x2e
MOV byte ptr [ESI + 0x104],0x2e
MOV EAX,dword ptr [EBX + 0x4]
MOV EAX,dword ptr [EAX + 0xc]
MOV dword ptr [ESP + 0x8],EAX
MOV EAX,dword ptr [EAX]
CMP EAX,0x46
JZ 0x001a0472
CMP EAX,0x4c
JZ 0x001a03d9
JA 0x001a03d1
SUB EAX,0x1c
CMP EAX,0x4
JBE 0x001a03d9
MOV ECX,dword ptr [ESP + 0x8]
MOV EDX,dword ptr [ESP]
MOV EAX,ESI
CALL 0x0019a610
MOV dword ptr [ESI + 0x110],EDI
ADD ESP,0x3c
POP EBX
POP ESI
POP EDI
POP EBP
RET
SUB ESP,0xc
PUSH dword ptr [EBX]
MOV EAX,ESI
ADD ECX,0xc
MOV EDX,dword ptr [ESP + 0x10]
CALL 0x0019fef0
ADD ESP,0x10
MOV dword ptr [ESI + 0x110],EDI
ADD ESP,0x3c
POP EBX
POP ESI
POP EDI
POP EBP
RET
SUB ESP,0xc
PUSH dword ptr [EBX]
MOV EAX,ESI
ADD ECX,0x8
MOV EDX,dword ptr [ESP + 0x10]
CALL 0x001a0610
ADD ESP,0x10
MOV dword ptr [ESI + 0x110],EDI
ADD ESP,0x3c
POP EBX
POP ESI
POP EDI
POP EBP
RET
SUB EAX,0x4e
CMP EAX,0x1
JA 0x001a036d
MOV EAX,dword ptr [ESP + 0x8]
MOV EAX,dword ptr [EAX + 0x8]
MOV dword ptr [ESP + 0x8],EAX
MOV EAX,dword ptr [EAX]
JMP 0x001a035e
MOV ECX,dword ptr [ESP + 0x4]
MOV dword ptr [ESP + 0x8],EDI
MOV dword ptr [ESP + 0xc],EBX
LEA EBP,[ECX + 0xfff2b8e1]
MOV ECX,0x3a
LEA EDX,[EBP + 0x2]
MOV EBX,ECX
MOV EDI,EDX
JMP 0x001a042f
MOV EDX,EAX
ADD EAX,0x1
ADD EBP,0x1
MOV dword ptr [ESI + 0x100],EAX
MOV byte ptr [ESI + EDX*0x1],BL
MOV byte ptr [ESI + 0x104],BL
CMP EBP,EDI
JZ 0x001a0465
MOVZX EBX,byte ptr [EBP]
CMP EAX,0xff
JNZ 0x001a0410
SUB ESP,0x4
MOV byte ptr [ESI + 0xff],0x0
PUSH dword ptr [ESI + 0x10c]
PUSH 0xff
PUSH ESI
CALL dword ptr [ESI + 0x108]
ADD dword ptr [ESI + 0x128],0x1
MOV EAX,0x1
XOR EDX,EDX
ADD ESP,0x10
JMP 0x001a0415
MOV EDI,dword ptr [ESP + 0x8]
MOV EBX,dword ptr [ESP + 0xc]
JMP 0x001a0349
MOV ECX,dword ptr [ESP + 0x4]
MOV EAX,dword ptr [ESI + 0x100]
MOV EDX,0x7b
LEA EBX,[ECX + 0xfff2b8d3]
LEA EBP,[ECX + 0xfff2b8df]
JMP 0x001a04ad
MOV ECX,EAX
ADD EAX,0x1
MOV dword ptr [ESI + 0x100],EAX
MOV byte ptr [ESI + ECX*0x1],DL
MOV byte ptr [ESI + 0x104],DL
CMP EBX,EBP
JZ 0x001a04ec
MOVZX EDX,byte ptr [EBX]
ADD EBX,0x1
CMP EAX,0xff
JNZ 0x001a048f
MOV byte ptr [ESP + 0xc],DL
SUB ESP,0x4
MOV byte ptr [ESI + 0xff],0x0
PUSH dword ptr [ESI + 0x10c]
PUSH 0xff
PUSH ESI
CALL dword ptr [ESI + 0x108]
ADD dword ptr [ESI + 0x128],0x1
MOV EAX,0x1
XOR ECX,ECX
MOVZX EDX,byte ptr [ESP + 0x1c]
ADD ESP,0x10
JMP 0x001a0494
SUB ESP,0x4
MOV EAX,dword ptr [ESP + 0xc]
MOV EAX,dword ptr [EAX + 0xc]
MOV dword ptr [ESP + 0x10],EAX
ADD EAX,0x1
PUSH EAX
MOV ECX,dword ptr [ESP + 0xc]
LEA EAX,[ECX + 0xfff29e69]
MOV EBX,ECX
PUSH EAX
LEA EBP,[ESP + 0x23]
PUSH EBP
MOV dword ptr [ESP + 0x14],ECX
CALL 0x000280c0
MOV EBX,dword ptr [ESP + 0x14]
MOV dword ptr [ESP],EBP
CALL 0x000285f0
ADD ESP,0x10
MOV EDX,dword ptr [ESI + 0x100]
TEST EAX,EAX
JZ 0x001a0598
LEA ECX,[EBP + EAX*0x1]
MOV dword ptr [ESP + 0xc],EDI
MOV EDI,ECX
JMP 0x001a0559
MOV EAX,EDX
ADD EDX,0x1
ADD EBP,0x1
MOV dword ptr [ESI + 0x100],EDX
MOV byte ptr [ESI + EAX*0x1],BL
MOV byte ptr [ESI + 0x104],BL
CMP EDI,EBP
JZ 0x001a0594
MOVZX EBX,byte ptr [EBP]
CMP EDX,0xff
JNZ 0x001a053e
SUB ESP,0x4
MOV byte ptr [ESI + 0xff],0x0
PUSH dword ptr [ESI + 0x10c]
PUSH 0xff
PUSH ESI
CALL dword ptr [ESI + 0x108]
ADD dword ptr [ESI + 0x128],0x1
MOV EDX,0x1
XOR EAX,EAX
ADD ESP,0x10
JMP 0x001a0543
MOV EDI,dword ptr [ESP + 0xc]
MOV EAX,dword ptr [ESP + 0x4]
LEA EBX,[EAX + 0xfff2b8e0]
MOV EAX,0x7d
LEA EBP,[EBX + 0x3]
JMP 0x001a05ce
MOV ECX,EDX
ADD EDX,0x1
ADD EBX,0x1
MOV dword ptr [ESI + 0x100],EDX
MOV byte ptr [ESI + ECX*0x1],AL
MOV byte ptr [ESI + 0x104],AL
CMP EBP,EBX
JZ 0x001a03d9
MOVZX EAX,byte ptr [EBX]
CMP EDX,0xff
JNZ 0x001a05ac
MOV byte ptr [ESP + 0x4],AL
SUB ESP,0x4
MOV byte ptr [ESI + 0xff],0x0
PUSH dword ptr [ESI + 0x10c]
PUSH 0xff
PUSH ESI
CALL dword ptr [ESI + 0x108]
ADD dword ptr [ESI + 0x128],0x1
MOV EDX,0x1
XOR ECX,ECX
MOVZX EAX,byte ptr [ESP + 0x14]
ADD ESP,0x10
JMP 0x001a05b1
(translation_unit "void FUN_001a0210(int param_1)\n\n{\n  char *pcVar1;\n  char cVar2;\n  undefined4 uVar3;\n  int *piVar4;\n  undefined4 uVar5;\n  int iVar6;\n  int iVar7;\n  uint uVar8;\n  size_t sVar9;\n  int *extraout_ECX;\n  int iVar10;\n  undefined1 uVar11;\n  undefined1 *puVar12;\n  char *__s;\n  int unaff_EDI;\n  ulonglong uVar13;\n  uint *local_44;\n  char local_35 [37];\n  \n  uVar13 = FUN_00058c4a();\n  iVar6 = (int)uVar13;\n  if (extraout_ECX != (int *)0x0) {\n    iVar7 = *(int *)(iVar6 + 0x118);\n    piVar4 = extraout_ECX;\n    while (iVar7 == 0) {\n      if (piVar4[2] == 0) {\n        uVar8 = *(uint *)piVar4[1];\n        if (param_1 != 0) goto LAB_001a0258;\n        if (uVar8 != 0x4c) {\n          if (uVar8 < 0x4d) {\n            if (4 < uVar8 - 0x1c) goto LAB_001a0258;\n          }\n          else if (1 < uVar8 - 0x4e) {\nLAB_001a0258:\n            uVar3 = *(undefined4 *)(iVar6 + 0x110);\n            piVar4[2] = 1;\n            *(int *)(iVar6 + 0x110) = piVar4[3];\n            if (uVar8 == 0x29) {\n              FUN_0019fef0(*piVar4);\n              *(undefined4 *)(iVar6 + 0x110) = uVar3;\n              return;\n            }\n            if (uVar8 == 0x2a) {\n              FUN_001a0610(*piVar4);\n              *(undefined4 *)(iVar6 + 0x110) = uVar3;\n              return;\n            }\n            if (uVar8 == 2) {\n              uVar5 = *(undefined4 *)(iVar6 + 0x114);\n              *(undefined4 *)(iVar6 + 0x114) = 0;\n              FUN_0019a610();\n              *(undefined4 *)(iVar6 + 0x114) = uVar5;\n              iVar7 = *(int *)(iVar6 + 0x100);\n              if ((uVar13 & 0x400000000) == 0) {\n                puVar12 = (undefined1 *)(unaff_EDI + 0xca6ca);\n                uVar11 = 0x3a;\n                while( true ) {\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  puVar12 = puVar12 + 1;\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if (puVar12 == (undefined1 *)(unaff_EDI + 0xca6cc)) break;\n                  uVar11 = *puVar12;\n                  iVar7 = iVar10;\n                }\n              }\n              else {\n                iVar10 = iVar7 + 1;\n                if (iVar7 == 0xff) {\n                  *(undefined1 *)(iVar6 + 0xff) = 0;\n                  (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                  *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                  iVar10 = 1;\n                  iVar7 = 0;\n                }\n                *(int *)(iVar6 + 0x100) = iVar10;\n                *(undefined1 *)(iVar6 + iVar7) = 0x2e;\n                *(undefined1 *)(iVar6 + 0x104) = 0x2e;\n              }\n              local_44 = *(uint **)(piVar4[1] + 0xc);\n              uVar8 = *local_44;\n              if (uVar8 == 0x46) {\n                uVar11 = 0x7b;\n                puVar12 = (undefined1 *)(unaff_EDI + 0xca6bc);\n                iVar7 = *(int *)(iVar6 + 0x100);\n                while( true ) {\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if (puVar12 == (undefined1 *)(unaff_EDI + 0xca6c8)) break;\n                  uVar11 = *puVar12;\n                  puVar12 = puVar12 + 1;\n                  iVar7 = iVar10;\n                }\n                __s = local_35;\n                sprintf(__s,(char *)(unaff_EDI + 0xc8c52),local_44[3] + 1);\n                sVar9 = strlen(__s);\n                iVar7 = *(int *)(iVar6 + 0x100);\n                if (sVar9 != 0) {\n                  pcVar1 = __s + sVar9;\n                  iVar10 = iVar7;\n                  do {\n                    cVar2 = *__s;\n                    if (iVar10 == 0xff) {\n                      *(undefined1 *)(iVar6 + 0xff) = 0;\n                      (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                      *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                      iVar7 = 1;\n                      iVar10 = 0;\n                    }\n                    else {\n                      iVar7 = iVar10 + 1;\n                    }\n                    __s = __s + 1;\n                    *(int *)(iVar6 + 0x100) = iVar7;\n                    *(char *)(iVar6 + iVar10) = cVar2;\n                    *(char *)(iVar6 + 0x104) = cVar2;\n                    iVar10 = iVar7;\n                  } while (pcVar1 != __s);\n                }\n                puVar12 = (undefined1 *)(unaff_EDI + 0xca6c9);\n                uVar11 = 0x7d;\n                do {\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  puVar12 = puVar12 + 1;\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if ((undefined1 *)(unaff_EDI + 0xca6cc) == puVar12) goto LAB_001a03d9;\n                  uVar11 = *puVar12;\n                  iVar7 = iVar10;\n                } while( true );\n              }\n              do {\n                if (uVar8 != 0x4c) {\n                  if (uVar8 < 0x4d) {\n                    if (4 < uVar8 - 0x1c) {\nLAB_001a036d:\n                      FUN_0019a610();\n                      *(undefined4 *)(iVar6 + 0x110) = uVar3;\n                      return;\n                    }\n                  }\n                  else if (1 < uVar8 - 0x4e) goto LAB_001a036d;\n                }\nLAB_001a03d9:\n                local_44 = (uint *)local_44[2];\n                uVar8 = *local_44;\n              } while( true );\n            }\n            FUN_0019f570();\n            *(undefined4 *)(iVar6 + 0x110) = uVar3;\n          }\n        }\n      }\n      piVar4 = (int *)*piVar4;\n      if (piVar4 == (int *)0x0) {\n        return;\n      }\n      iVar7 = *(int *)(iVar6 + 0x118);\n    }\n  }\n  return;\n}\n\n" (function_definition "void FUN_001a0210(int param_1)\n\n{\n  char *pcVar1;\n  char cVar2;\n  undefined4 uVar3;\n  int *piVar4;\n  undefined4 uVar5;\n  int iVar6;\n  int iVar7;\n  uint uVar8;\n  size_t sVar9;\n  int *extraout_ECX;\n  int iVar10;\n  undefined1 uVar11;\n  undefined1 *puVar12;\n  char *__s;\n  int unaff_EDI;\n  ulonglong uVar13;\n  uint *local_44;\n  char local_35 [37];\n  \n  uVar13 = FUN_00058c4a();\n  iVar6 = (int)uVar13;\n  if (extraout_ECX != (int *)0x0) {\n    iVar7 = *(int *)(iVar6 + 0x118);\n    piVar4 = extraout_ECX;\n    while (iVar7 == 0) {\n      if (piVar4[2] == 0) {\n        uVar8 = *(uint *)piVar4[1];\n        if (param_1 != 0) goto LAB_001a0258;\n        if (uVar8 != 0x4c) {\n          if (uVar8 < 0x4d) {\n            if (4 < uVar8 - 0x1c) goto LAB_001a0258;\n          }\n          else if (1 < uVar8 - 0x4e) {\nLAB_001a0258:\n            uVar3 = *(undefined4 *)(iVar6 + 0x110);\n            piVar4[2] = 1;\n            *(int *)(iVar6 + 0x110) = piVar4[3];\n            if (uVar8 == 0x29) {\n              FUN_0019fef0(*piVar4);\n              *(undefined4 *)(iVar6 + 0x110) = uVar3;\n              return;\n            }\n            if (uVar8 == 0x2a) {\n              FUN_001a0610(*piVar4);\n              *(undefined4 *)(iVar6 + 0x110) = uVar3;\n              return;\n            }\n            if (uVar8 == 2) {\n              uVar5 = *(undefined4 *)(iVar6 + 0x114);\n              *(undefined4 *)(iVar6 + 0x114) = 0;\n              FUN_0019a610();\n              *(undefined4 *)(iVar6 + 0x114) = uVar5;\n              iVar7 = *(int *)(iVar6 + 0x100);\n              if ((uVar13 & 0x400000000) == 0) {\n                puVar12 = (undefined1 *)(unaff_EDI + 0xca6ca);\n                uVar11 = 0x3a;\n                while( true ) {\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  puVar12 = puVar12 + 1;\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if (puVar12 == (undefined1 *)(unaff_EDI + 0xca6cc)) break;\n                  uVar11 = *puVar12;\n                  iVar7 = iVar10;\n                }\n              }\n              else {\n                iVar10 = iVar7 + 1;\n                if (iVar7 == 0xff) {\n                  *(undefined1 *)(iVar6 + 0xff) = 0;\n                  (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                  *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                  iVar10 = 1;\n                  iVar7 = 0;\n                }\n                *(int *)(iVar6 + 0x100) = iVar10;\n                *(undefined1 *)(iVar6 + iVar7) = 0x2e;\n                *(undefined1 *)(iVar6 + 0x104) = 0x2e;\n              }\n              local_44 = *(uint **)(piVar4[1] + 0xc);\n              uVar8 = *local_44;\n              if (uVar8 == 0x46) {\n                uVar11 = 0x7b;\n                puVar12 = (undefined1 *)(unaff_EDI + 0xca6bc);\n                iVar7 = *(int *)(iVar6 + 0x100);\n                while( true ) {\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if (puVar12 == (undefined1 *)(unaff_EDI + 0xca6c8)) break;\n                  uVar11 = *puVar12;\n                  puVar12 = puVar12 + 1;\n                  iVar7 = iVar10;\n                }\n                __s = local_35;\n                sprintf(__s,(char *)(unaff_EDI + 0xc8c52),local_44[3] + 1);\n                sVar9 = strlen(__s);\n                iVar7 = *(int *)(iVar6 + 0x100);\n                if (sVar9 != 0) {\n                  pcVar1 = __s + sVar9;\n                  iVar10 = iVar7;\n                  do {\n                    cVar2 = *__s;\n                    if (iVar10 == 0xff) {\n                      *(undefined1 *)(iVar6 + 0xff) = 0;\n                      (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                      *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                      iVar7 = 1;\n                      iVar10 = 0;\n                    }\n                    else {\n                      iVar7 = iVar10 + 1;\n                    }\n                    __s = __s + 1;\n                    *(int *)(iVar6 + 0x100) = iVar7;\n                    *(char *)(iVar6 + iVar10) = cVar2;\n                    *(char *)(iVar6 + 0x104) = cVar2;\n                    iVar10 = iVar7;\n                  } while (pcVar1 != __s);\n                }\n                puVar12 = (undefined1 *)(unaff_EDI + 0xca6c9);\n                uVar11 = 0x7d;\n                do {\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  puVar12 = puVar12 + 1;\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if ((undefined1 *)(unaff_EDI + 0xca6cc) == puVar12) goto LAB_001a03d9;\n                  uVar11 = *puVar12;\n                  iVar7 = iVar10;\n                } while( true );\n              }\n              do {\n                if (uVar8 != 0x4c) {\n                  if (uVar8 < 0x4d) {\n                    if (4 < uVar8 - 0x1c) {\nLAB_001a036d:\n                      FUN_0019a610();\n                      *(undefined4 *)(iVar6 + 0x110) = uVar3;\n                      return;\n                    }\n                  }\n                  else if (1 < uVar8 - 0x4e) goto LAB_001a036d;\n                }\nLAB_001a03d9:\n                local_44 = (uint *)local_44[2];\n                uVar8 = *local_44;\n              } while( true );\n            }\n            FUN_0019f570();\n            *(undefined4 *)(iVar6 + 0x110) = uVar3;\n          }\n        }\n      }\n      piVar4 = (int *)*piVar4;\n      if (piVar4 == (int *)0x0) {\n        return;\n      }\n      iVar7 = *(int *)(iVar6 + 0x118);\n    }\n  }\n  return;\n}" primitive_type (function_declarator "FUN_001a0210(int param_1)" identifier (parameter_list "(int param_1)" ( (parameter_declaration "int param_1" primitive_type identifier) ))) (compound_statement "{\n  char *pcVar1;\n  char cVar2;\n  undefined4 uVar3;\n  int *piVar4;\n  undefined4 uVar5;\n  int iVar6;\n  int iVar7;\n  uint uVar8;\n  size_t sVar9;\n  int *extraout_ECX;\n  int iVar10;\n  undefined1 uVar11;\n  undefined1 *puVar12;\n  char *__s;\n  int unaff_EDI;\n  ulonglong uVar13;\n  uint *local_44;\n  char local_35 [37];\n  \n  uVar13 = FUN_00058c4a();\n  iVar6 = (int)uVar13;\n  if (extraout_ECX != (int *)0x0) {\n    iVar7 = *(int *)(iVar6 + 0x118);\n    piVar4 = extraout_ECX;\n    while (iVar7 == 0) {\n      if (piVar4[2] == 0) {\n        uVar8 = *(uint *)piVar4[1];\n        if (param_1 != 0) goto LAB_001a0258;\n        if (uVar8 != 0x4c) {\n          if (uVar8 < 0x4d) {\n            if (4 < uVar8 - 0x1c) goto LAB_001a0258;\n          }\n          else if (1 < uVar8 - 0x4e) {\nLAB_001a0258:\n            uVar3 = *(undefined4 *)(iVar6 + 0x110);\n            piVar4[2] = 1;\n            *(int *)(iVar6 + 0x110) = piVar4[3];\n            if (uVar8 == 0x29) {\n              FUN_0019fef0(*piVar4);\n              *(undefined4 *)(iVar6 + 0x110) = uVar3;\n              return;\n            }\n            if (uVar8 == 0x2a) {\n              FUN_001a0610(*piVar4);\n              *(undefined4 *)(iVar6 + 0x110) = uVar3;\n              return;\n            }\n            if (uVar8 == 2) {\n              uVar5 = *(undefined4 *)(iVar6 + 0x114);\n              *(undefined4 *)(iVar6 + 0x114) = 0;\n              FUN_0019a610();\n              *(undefined4 *)(iVar6 + 0x114) = uVar5;\n              iVar7 = *(int *)(iVar6 + 0x100);\n              if ((uVar13 & 0x400000000) == 0) {\n                puVar12 = (undefined1 *)(unaff_EDI + 0xca6ca);\n                uVar11 = 0x3a;\n                while( true ) {\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  puVar12 = puVar12 + 1;\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if (puVar12 == (undefined1 *)(unaff_EDI + 0xca6cc)) break;\n                  uVar11 = *puVar12;\n                  iVar7 = iVar10;\n                }\n              }\n              else {\n                iVar10 = iVar7 + 1;\n                if (iVar7 == 0xff) {\n                  *(undefined1 *)(iVar6 + 0xff) = 0;\n                  (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                  *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                  iVar10 = 1;\n                  iVar7 = 0;\n                }\n                *(int *)(iVar6 + 0x100) = iVar10;\n                *(undefined1 *)(iVar6 + iVar7) = 0x2e;\n                *(undefined1 *)(iVar6 + 0x104) = 0x2e;\n              }\n              local_44 = *(uint **)(piVar4[1] + 0xc);\n              uVar8 = *local_44;\n              if (uVar8 == 0x46) {\n                uVar11 = 0x7b;\n                puVar12 = (undefined1 *)(unaff_EDI + 0xca6bc);\n                iVar7 = *(int *)(iVar6 + 0x100);\n                while( true ) {\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if (puVar12 == (undefined1 *)(unaff_EDI + 0xca6c8)) break;\n                  uVar11 = *puVar12;\n                  puVar12 = puVar12 + 1;\n                  iVar7 = iVar10;\n                }\n                __s = local_35;\n                sprintf(__s,(char *)(unaff_EDI + 0xc8c52),local_44[3] + 1);\n                sVar9 = strlen(__s);\n                iVar7 = *(int *)(iVar6 + 0x100);\n                if (sVar9 != 0) {\n                  pcVar1 = __s + sVar9;\n                  iVar10 = iVar7;\n                  do {\n                    cVar2 = *__s;\n                    if (iVar10 == 0xff) {\n                      *(undefined1 *)(iVar6 + 0xff) = 0;\n                      (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                      *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                      iVar7 = 1;\n                      iVar10 = 0;\n                    }\n                    else {\n                      iVar7 = iVar10 + 1;\n                    }\n                    __s = __s + 1;\n                    *(int *)(iVar6 + 0x100) = iVar7;\n                    *(char *)(iVar6 + iVar10) = cVar2;\n                    *(char *)(iVar6 + 0x104) = cVar2;\n                    iVar10 = iVar7;\n                  } while (pcVar1 != __s);\n                }\n                puVar12 = (undefined1 *)(unaff_EDI + 0xca6c9);\n                uVar11 = 0x7d;\n                do {\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  puVar12 = puVar12 + 1;\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if ((undefined1 *)(unaff_EDI + 0xca6cc) == puVar12) goto LAB_001a03d9;\n                  uVar11 = *puVar12;\n                  iVar7 = iVar10;\n                } while( true );\n              }\n              do {\n                if (uVar8 != 0x4c) {\n                  if (uVar8 < 0x4d) {\n                    if (4 < uVar8 - 0x1c) {\nLAB_001a036d:\n                      FUN_0019a610();\n                      *(undefined4 *)(iVar6 + 0x110) = uVar3;\n                      return;\n                    }\n                  }\n                  else if (1 < uVar8 - 0x4e) goto LAB_001a036d;\n                }\nLAB_001a03d9:\n                local_44 = (uint *)local_44[2];\n                uVar8 = *local_44;\n              } while( true );\n            }\n            FUN_0019f570();\n            *(undefined4 *)(iVar6 + 0x110) = uVar3;\n          }\n        }\n      }\n      piVar4 = (int *)*piVar4;\n      if (piVar4 == (int *)0x0) {\n        return;\n      }\n      iVar7 = *(int *)(iVar6 + 0x118);\n    }\n  }\n  return;\n}" { (declaration "char *pcVar1;" primitive_type (pointer_declarator "*pcVar1" * identifier) ;) (declaration "char cVar2;" primitive_type identifier ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (declaration "int *piVar4;" primitive_type (pointer_declarator "*piVar4" * identifier) ;) (declaration "undefined4 uVar5;" type_identifier identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "size_t sVar9;" primitive_type identifier ;) (declaration "int *extraout_ECX;" primitive_type (pointer_declarator "*extraout_ECX" * identifier) ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "undefined1 uVar11;" type_identifier identifier ;) (declaration "undefined1 *puVar12;" type_identifier (pointer_declarator "*puVar12" * identifier) ;) (declaration "char *__s;" primitive_type (pointer_declarator "*__s" * identifier) ;) (declaration "int unaff_EDI;" primitive_type identifier ;) (declaration "ulonglong uVar13;" type_identifier identifier ;) (declaration "uint *local_44;" type_identifier (pointer_declarator "*local_44" * identifier) ;) (declaration "char local_35 [37];" primitive_type (array_declarator "local_35 [37]" identifier [ number_literal ]) ;) (expression_statement "uVar13 = FUN_00058c4a();" (assignment_expression "uVar13 = FUN_00058c4a()" identifier = (call_expression "FUN_00058c4a()" identifier (argument_list "()" ( )))) ;) (expression_statement "iVar6 = (int)uVar13;" (assignment_expression "iVar6 = (int)uVar13" identifier = (cast_expression "(int)uVar13" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (if_statement "if (extraout_ECX != (int *)0x0) {\n    iVar7 = *(int *)(iVar6 + 0x118);\n    piVar4 = extraout_ECX;\n    while (iVar7 == 0) {\n      if (piVar4[2] == 0) {\n        uVar8 = *(uint *)piVar4[1];\n        if (param_1 != 0) goto LAB_001a0258;\n        if (uVar8 != 0x4c) {\n          if (uVar8 < 0x4d) {\n            if (4 < uVar8 - 0x1c) goto LAB_001a0258;\n          }\n          else if (1 < uVar8 - 0x4e) {\nLAB_001a0258:\n            uVar3 = *(undefined4 *)(iVar6 + 0x110);\n            piVar4[2] = 1;\n            *(int *)(iVar6 + 0x110) = piVar4[3];\n            if (uVar8 == 0x29) {\n              FUN_0019fef0(*piVar4);\n              *(undefined4 *)(iVar6 + 0x110) = uVar3;\n              return;\n            }\n            if (uVar8 == 0x2a) {\n              FUN_001a0610(*piVar4);\n              *(undefined4 *)(iVar6 + 0x110) = uVar3;\n              return;\n            }\n            if (uVar8 == 2) {\n              uVar5 = *(undefined4 *)(iVar6 + 0x114);\n              *(undefined4 *)(iVar6 + 0x114) = 0;\n              FUN_0019a610();\n              *(undefined4 *)(iVar6 + 0x114) = uVar5;\n              iVar7 = *(int *)(iVar6 + 0x100);\n              if ((uVar13 & 0x400000000) == 0) {\n                puVar12 = (undefined1 *)(unaff_EDI + 0xca6ca);\n                uVar11 = 0x3a;\n                while( true ) {\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  puVar12 = puVar12 + 1;\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if (puVar12 == (undefined1 *)(unaff_EDI + 0xca6cc)) break;\n                  uVar11 = *puVar12;\n                  iVar7 = iVar10;\n                }\n              }\n              else {\n                iVar10 = iVar7 + 1;\n                if (iVar7 == 0xff) {\n                  *(undefined1 *)(iVar6 + 0xff) = 0;\n                  (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                  *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                  iVar10 = 1;\n                  iVar7 = 0;\n                }\n                *(int *)(iVar6 + 0x100) = iVar10;\n                *(undefined1 *)(iVar6 + iVar7) = 0x2e;\n                *(undefined1 *)(iVar6 + 0x104) = 0x2e;\n              }\n              local_44 = *(uint **)(piVar4[1] + 0xc);\n              uVar8 = *local_44;\n              if (uVar8 == 0x46) {\n                uVar11 = 0x7b;\n                puVar12 = (undefined1 *)(unaff_EDI + 0xca6bc);\n                iVar7 = *(int *)(iVar6 + 0x100);\n                while( true ) {\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if (puVar12 == (undefined1 *)(unaff_EDI + 0xca6c8)) break;\n                  uVar11 = *puVar12;\n                  puVar12 = puVar12 + 1;\n                  iVar7 = iVar10;\n                }\n                __s = local_35;\n                sprintf(__s,(char *)(unaff_EDI + 0xc8c52),local_44[3] + 1);\n                sVar9 = strlen(__s);\n                iVar7 = *(int *)(iVar6 + 0x100);\n                if (sVar9 != 0) {\n                  pcVar1 = __s + sVar9;\n                  iVar10 = iVar7;\n                  do {\n                    cVar2 = *__s;\n                    if (iVar10 == 0xff) {\n                      *(undefined1 *)(iVar6 + 0xff) = 0;\n                      (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                      *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                      iVar7 = 1;\n                      iVar10 = 0;\n                    }\n                    else {\n                      iVar7 = iVar10 + 1;\n                    }\n                    __s = __s + 1;\n                    *(int *)(iVar6 + 0x100) = iVar7;\n                    *(char *)(iVar6 + iVar10) = cVar2;\n                    *(char *)(iVar6 + 0x104) = cVar2;\n                    iVar10 = iVar7;\n                  } while (pcVar1 != __s);\n                }\n                puVar12 = (undefined1 *)(unaff_EDI + 0xca6c9);\n                uVar11 = 0x7d;\n                do {\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  puVar12 = puVar12 + 1;\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if ((undefined1 *)(unaff_EDI + 0xca6cc) == puVar12) goto LAB_001a03d9;\n                  uVar11 = *puVar12;\n                  iVar7 = iVar10;\n                } while( true );\n              }\n              do {\n                if (uVar8 != 0x4c) {\n                  if (uVar8 < 0x4d) {\n                    if (4 < uVar8 - 0x1c) {\nLAB_001a036d:\n                      FUN_0019a610();\n                      *(undefined4 *)(iVar6 + 0x110) = uVar3;\n                      return;\n                    }\n                  }\n                  else if (1 < uVar8 - 0x4e) goto LAB_001a036d;\n                }\nLAB_001a03d9:\n                local_44 = (uint *)local_44[2];\n                uVar8 = *local_44;\n              } while( true );\n            }\n            FUN_0019f570();\n            *(undefined4 *)(iVar6 + 0x110) = uVar3;\n          }\n        }\n      }\n      piVar4 = (int *)*piVar4;\n      if (piVar4 == (int *)0x0) {\n        return;\n      }\n      iVar7 = *(int *)(iVar6 + 0x118);\n    }\n  }" if (parenthesized_expression "(extraout_ECX != (int *)0x0)" ( (binary_expression "extraout_ECX != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    iVar7 = *(int *)(iVar6 + 0x118);\n    piVar4 = extraout_ECX;\n    while (iVar7 == 0) {\n      if (piVar4[2] == 0) {\n        uVar8 = *(uint *)piVar4[1];\n        if (param_1 != 0) goto LAB_001a0258;\n        if (uVar8 != 0x4c) {\n          if (uVar8 < 0x4d) {\n            if (4 < uVar8 - 0x1c) goto LAB_001a0258;\n          }\n          else if (1 < uVar8 - 0x4e) {\nLAB_001a0258:\n            uVar3 = *(undefined4 *)(iVar6 + 0x110);\n            piVar4[2] = 1;\n            *(int *)(iVar6 + 0x110) = piVar4[3];\n            if (uVar8 == 0x29) {\n              FUN_0019fef0(*piVar4);\n              *(undefined4 *)(iVar6 + 0x110) = uVar3;\n              return;\n            }\n            if (uVar8 == 0x2a) {\n              FUN_001a0610(*piVar4);\n              *(undefined4 *)(iVar6 + 0x110) = uVar3;\n              return;\n            }\n            if (uVar8 == 2) {\n              uVar5 = *(undefined4 *)(iVar6 + 0x114);\n              *(undefined4 *)(iVar6 + 0x114) = 0;\n              FUN_0019a610();\n              *(undefined4 *)(iVar6 + 0x114) = uVar5;\n              iVar7 = *(int *)(iVar6 + 0x100);\n              if ((uVar13 & 0x400000000) == 0) {\n                puVar12 = (undefined1 *)(unaff_EDI + 0xca6ca);\n                uVar11 = 0x3a;\n                while( true ) {\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  puVar12 = puVar12 + 1;\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if (puVar12 == (undefined1 *)(unaff_EDI + 0xca6cc)) break;\n                  uVar11 = *puVar12;\n                  iVar7 = iVar10;\n                }\n              }\n              else {\n                iVar10 = iVar7 + 1;\n                if (iVar7 == 0xff) {\n                  *(undefined1 *)(iVar6 + 0xff) = 0;\n                  (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                  *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                  iVar10 = 1;\n                  iVar7 = 0;\n                }\n                *(int *)(iVar6 + 0x100) = iVar10;\n                *(undefined1 *)(iVar6 + iVar7) = 0x2e;\n                *(undefined1 *)(iVar6 + 0x104) = 0x2e;\n              }\n              local_44 = *(uint **)(piVar4[1] + 0xc);\n              uVar8 = *local_44;\n              if (uVar8 == 0x46) {\n                uVar11 = 0x7b;\n                puVar12 = (undefined1 *)(unaff_EDI + 0xca6bc);\n                iVar7 = *(int *)(iVar6 + 0x100);\n                while( true ) {\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if (puVar12 == (undefined1 *)(unaff_EDI + 0xca6c8)) break;\n                  uVar11 = *puVar12;\n                  puVar12 = puVar12 + 1;\n                  iVar7 = iVar10;\n                }\n                __s = local_35;\n                sprintf(__s,(char *)(unaff_EDI + 0xc8c52),local_44[3] + 1);\n                sVar9 = strlen(__s);\n                iVar7 = *(int *)(iVar6 + 0x100);\n                if (sVar9 != 0) {\n                  pcVar1 = __s + sVar9;\n                  iVar10 = iVar7;\n                  do {\n                    cVar2 = *__s;\n                    if (iVar10 == 0xff) {\n                      *(undefined1 *)(iVar6 + 0xff) = 0;\n                      (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                      *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                      iVar7 = 1;\n                      iVar10 = 0;\n                    }\n                    else {\n                      iVar7 = iVar10 + 1;\n                    }\n                    __s = __s + 1;\n                    *(int *)(iVar6 + 0x100) = iVar7;\n                    *(char *)(iVar6 + iVar10) = cVar2;\n                    *(char *)(iVar6 + 0x104) = cVar2;\n                    iVar10 = iVar7;\n                  } while (pcVar1 != __s);\n                }\n                puVar12 = (undefined1 *)(unaff_EDI + 0xca6c9);\n                uVar11 = 0x7d;\n                do {\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  puVar12 = puVar12 + 1;\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if ((undefined1 *)(unaff_EDI + 0xca6cc) == puVar12) goto LAB_001a03d9;\n                  uVar11 = *puVar12;\n                  iVar7 = iVar10;\n                } while( true );\n              }\n              do {\n                if (uVar8 != 0x4c) {\n                  if (uVar8 < 0x4d) {\n                    if (4 < uVar8 - 0x1c) {\nLAB_001a036d:\n                      FUN_0019a610();\n                      *(undefined4 *)(iVar6 + 0x110) = uVar3;\n                      return;\n                    }\n                  }\n                  else if (1 < uVar8 - 0x4e) goto LAB_001a036d;\n                }\nLAB_001a03d9:\n                local_44 = (uint *)local_44[2];\n                uVar8 = *local_44;\n              } while( true );\n            }\n            FUN_0019f570();\n            *(undefined4 *)(iVar6 + 0x110) = uVar3;\n          }\n        }\n      }\n      piVar4 = (int *)*piVar4;\n      if (piVar4 == (int *)0x0) {\n        return;\n      }\n      iVar7 = *(int *)(iVar6 + 0x118);\n    }\n  }" { (expression_statement "iVar7 = *(int *)(iVar6 + 0x118);" (assignment_expression "iVar7 = *(int *)(iVar6 + 0x118)" identifier = (pointer_expression "*(int *)(iVar6 + 0x118)" * (cast_expression "(int *)(iVar6 + 0x118)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x118)" ( (binary_expression "iVar6 + 0x118" identifier + number_literal) ))))) ;) (expression_statement "piVar4 = extraout_ECX;" (assignment_expression "piVar4 = extraout_ECX" identifier = identifier) ;) (while_statement "while (iVar7 == 0) {\n      if (piVar4[2] == 0) {\n        uVar8 = *(uint *)piVar4[1];\n        if (param_1 != 0) goto LAB_001a0258;\n        if (uVar8 != 0x4c) {\n          if (uVar8 < 0x4d) {\n            if (4 < uVar8 - 0x1c) goto LAB_001a0258;\n          }\n          else if (1 < uVar8 - 0x4e) {\nLAB_001a0258:\n            uVar3 = *(undefined4 *)(iVar6 + 0x110);\n            piVar4[2] = 1;\n            *(int *)(iVar6 + 0x110) = piVar4[3];\n            if (uVar8 == 0x29) {\n              FUN_0019fef0(*piVar4);\n              *(undefined4 *)(iVar6 + 0x110) = uVar3;\n              return;\n            }\n            if (uVar8 == 0x2a) {\n              FUN_001a0610(*piVar4);\n              *(undefined4 *)(iVar6 + 0x110) = uVar3;\n              return;\n            }\n            if (uVar8 == 2) {\n              uVar5 = *(undefined4 *)(iVar6 + 0x114);\n              *(undefined4 *)(iVar6 + 0x114) = 0;\n              FUN_0019a610();\n              *(undefined4 *)(iVar6 + 0x114) = uVar5;\n              iVar7 = *(int *)(iVar6 + 0x100);\n              if ((uVar13 & 0x400000000) == 0) {\n                puVar12 = (undefined1 *)(unaff_EDI + 0xca6ca);\n                uVar11 = 0x3a;\n                while( true ) {\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  puVar12 = puVar12 + 1;\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if (puVar12 == (undefined1 *)(unaff_EDI + 0xca6cc)) break;\n                  uVar11 = *puVar12;\n                  iVar7 = iVar10;\n                }\n              }\n              else {\n                iVar10 = iVar7 + 1;\n                if (iVar7 == 0xff) {\n                  *(undefined1 *)(iVar6 + 0xff) = 0;\n                  (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                  *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                  iVar10 = 1;\n                  iVar7 = 0;\n                }\n                *(int *)(iVar6 + 0x100) = iVar10;\n                *(undefined1 *)(iVar6 + iVar7) = 0x2e;\n                *(undefined1 *)(iVar6 + 0x104) = 0x2e;\n              }\n              local_44 = *(uint **)(piVar4[1] + 0xc);\n              uVar8 = *local_44;\n              if (uVar8 == 0x46) {\n                uVar11 = 0x7b;\n                puVar12 = (undefined1 *)(unaff_EDI + 0xca6bc);\n                iVar7 = *(int *)(iVar6 + 0x100);\n                while( true ) {\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if (puVar12 == (undefined1 *)(unaff_EDI + 0xca6c8)) break;\n                  uVar11 = *puVar12;\n                  puVar12 = puVar12 + 1;\n                  iVar7 = iVar10;\n                }\n                __s = local_35;\n                sprintf(__s,(char *)(unaff_EDI + 0xc8c52),local_44[3] + 1);\n                sVar9 = strlen(__s);\n                iVar7 = *(int *)(iVar6 + 0x100);\n                if (sVar9 != 0) {\n                  pcVar1 = __s + sVar9;\n                  iVar10 = iVar7;\n                  do {\n                    cVar2 = *__s;\n                    if (iVar10 == 0xff) {\n                      *(undefined1 *)(iVar6 + 0xff) = 0;\n                      (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                      *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                      iVar7 = 1;\n                      iVar10 = 0;\n                    }\n                    else {\n                      iVar7 = iVar10 + 1;\n                    }\n                    __s = __s + 1;\n                    *(int *)(iVar6 + 0x100) = iVar7;\n                    *(char *)(iVar6 + iVar10) = cVar2;\n                    *(char *)(iVar6 + 0x104) = cVar2;\n                    iVar10 = iVar7;\n                  } while (pcVar1 != __s);\n                }\n                puVar12 = (undefined1 *)(unaff_EDI + 0xca6c9);\n                uVar11 = 0x7d;\n                do {\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  puVar12 = puVar12 + 1;\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if ((undefined1 *)(unaff_EDI + 0xca6cc) == puVar12) goto LAB_001a03d9;\n                  uVar11 = *puVar12;\n                  iVar7 = iVar10;\n                } while( true );\n              }\n              do {\n                if (uVar8 != 0x4c) {\n                  if (uVar8 < 0x4d) {\n                    if (4 < uVar8 - 0x1c) {\nLAB_001a036d:\n                      FUN_0019a610();\n                      *(undefined4 *)(iVar6 + 0x110) = uVar3;\n                      return;\n                    }\n                  }\n                  else if (1 < uVar8 - 0x4e) goto LAB_001a036d;\n                }\nLAB_001a03d9:\n                local_44 = (uint *)local_44[2];\n                uVar8 = *local_44;\n              } while( true );\n            }\n            FUN_0019f570();\n            *(undefined4 *)(iVar6 + 0x110) = uVar3;\n          }\n        }\n      }\n      piVar4 = (int *)*piVar4;\n      if (piVar4 == (int *)0x0) {\n        return;\n      }\n      iVar7 = *(int *)(iVar6 + 0x118);\n    }" while (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n      if (piVar4[2] == 0) {\n        uVar8 = *(uint *)piVar4[1];\n        if (param_1 != 0) goto LAB_001a0258;\n        if (uVar8 != 0x4c) {\n          if (uVar8 < 0x4d) {\n            if (4 < uVar8 - 0x1c) goto LAB_001a0258;\n          }\n          else if (1 < uVar8 - 0x4e) {\nLAB_001a0258:\n            uVar3 = *(undefined4 *)(iVar6 + 0x110);\n            piVar4[2] = 1;\n            *(int *)(iVar6 + 0x110) = piVar4[3];\n            if (uVar8 == 0x29) {\n              FUN_0019fef0(*piVar4);\n              *(undefined4 *)(iVar6 + 0x110) = uVar3;\n              return;\n            }\n            if (uVar8 == 0x2a) {\n              FUN_001a0610(*piVar4);\n              *(undefined4 *)(iVar6 + 0x110) = uVar3;\n              return;\n            }\n            if (uVar8 == 2) {\n              uVar5 = *(undefined4 *)(iVar6 + 0x114);\n              *(undefined4 *)(iVar6 + 0x114) = 0;\n              FUN_0019a610();\n              *(undefined4 *)(iVar6 + 0x114) = uVar5;\n              iVar7 = *(int *)(iVar6 + 0x100);\n              if ((uVar13 & 0x400000000) == 0) {\n                puVar12 = (undefined1 *)(unaff_EDI + 0xca6ca);\n                uVar11 = 0x3a;\n                while( true ) {\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  puVar12 = puVar12 + 1;\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if (puVar12 == (undefined1 *)(unaff_EDI + 0xca6cc)) break;\n                  uVar11 = *puVar12;\n                  iVar7 = iVar10;\n                }\n              }\n              else {\n                iVar10 = iVar7 + 1;\n                if (iVar7 == 0xff) {\n                  *(undefined1 *)(iVar6 + 0xff) = 0;\n                  (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                  *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                  iVar10 = 1;\n                  iVar7 = 0;\n                }\n                *(int *)(iVar6 + 0x100) = iVar10;\n                *(undefined1 *)(iVar6 + iVar7) = 0x2e;\n                *(undefined1 *)(iVar6 + 0x104) = 0x2e;\n              }\n              local_44 = *(uint **)(piVar4[1] + 0xc);\n              uVar8 = *local_44;\n              if (uVar8 == 0x46) {\n                uVar11 = 0x7b;\n                puVar12 = (undefined1 *)(unaff_EDI + 0xca6bc);\n                iVar7 = *(int *)(iVar6 + 0x100);\n                while( true ) {\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if (puVar12 == (undefined1 *)(unaff_EDI + 0xca6c8)) break;\n                  uVar11 = *puVar12;\n                  puVar12 = puVar12 + 1;\n                  iVar7 = iVar10;\n                }\n                __s = local_35;\n                sprintf(__s,(char *)(unaff_EDI + 0xc8c52),local_44[3] + 1);\n                sVar9 = strlen(__s);\n                iVar7 = *(int *)(iVar6 + 0x100);\n                if (sVar9 != 0) {\n                  pcVar1 = __s + sVar9;\n                  iVar10 = iVar7;\n                  do {\n                    cVar2 = *__s;\n                    if (iVar10 == 0xff) {\n                      *(undefined1 *)(iVar6 + 0xff) = 0;\n                      (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                      *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                      iVar7 = 1;\n                      iVar10 = 0;\n                    }\n                    else {\n                      iVar7 = iVar10 + 1;\n                    }\n                    __s = __s + 1;\n                    *(int *)(iVar6 + 0x100) = iVar7;\n                    *(char *)(iVar6 + iVar10) = cVar2;\n                    *(char *)(iVar6 + 0x104) = cVar2;\n                    iVar10 = iVar7;\n                  } while (pcVar1 != __s);\n                }\n                puVar12 = (undefined1 *)(unaff_EDI + 0xca6c9);\n                uVar11 = 0x7d;\n                do {\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  puVar12 = puVar12 + 1;\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if ((undefined1 *)(unaff_EDI + 0xca6cc) == puVar12) goto LAB_001a03d9;\n                  uVar11 = *puVar12;\n                  iVar7 = iVar10;\n                } while( true );\n              }\n              do {\n                if (uVar8 != 0x4c) {\n                  if (uVar8 < 0x4d) {\n                    if (4 < uVar8 - 0x1c) {\nLAB_001a036d:\n                      FUN_0019a610();\n                      *(undefined4 *)(iVar6 + 0x110) = uVar3;\n                      return;\n                    }\n                  }\n                  else if (1 < uVar8 - 0x4e) goto LAB_001a036d;\n                }\nLAB_001a03d9:\n                local_44 = (uint *)local_44[2];\n                uVar8 = *local_44;\n              } while( true );\n            }\n            FUN_0019f570();\n            *(undefined4 *)(iVar6 + 0x110) = uVar3;\n          }\n        }\n      }\n      piVar4 = (int *)*piVar4;\n      if (piVar4 == (int *)0x0) {\n        return;\n      }\n      iVar7 = *(int *)(iVar6 + 0x118);\n    }" { (if_statement "if (piVar4[2] == 0) {\n        uVar8 = *(uint *)piVar4[1];\n        if (param_1 != 0) goto LAB_001a0258;\n        if (uVar8 != 0x4c) {\n          if (uVar8 < 0x4d) {\n            if (4 < uVar8 - 0x1c) goto LAB_001a0258;\n          }\n          else if (1 < uVar8 - 0x4e) {\nLAB_001a0258:\n            uVar3 = *(undefined4 *)(iVar6 + 0x110);\n            piVar4[2] = 1;\n            *(int *)(iVar6 + 0x110) = piVar4[3];\n            if (uVar8 == 0x29) {\n              FUN_0019fef0(*piVar4);\n              *(undefined4 *)(iVar6 + 0x110) = uVar3;\n              return;\n            }\n            if (uVar8 == 0x2a) {\n              FUN_001a0610(*piVar4);\n              *(undefined4 *)(iVar6 + 0x110) = uVar3;\n              return;\n            }\n            if (uVar8 == 2) {\n              uVar5 = *(undefined4 *)(iVar6 + 0x114);\n              *(undefined4 *)(iVar6 + 0x114) = 0;\n              FUN_0019a610();\n              *(undefined4 *)(iVar6 + 0x114) = uVar5;\n              iVar7 = *(int *)(iVar6 + 0x100);\n              if ((uVar13 & 0x400000000) == 0) {\n                puVar12 = (undefined1 *)(unaff_EDI + 0xca6ca);\n                uVar11 = 0x3a;\n                while( true ) {\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  puVar12 = puVar12 + 1;\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if (puVar12 == (undefined1 *)(unaff_EDI + 0xca6cc)) break;\n                  uVar11 = *puVar12;\n                  iVar7 = iVar10;\n                }\n              }\n              else {\n                iVar10 = iVar7 + 1;\n                if (iVar7 == 0xff) {\n                  *(undefined1 *)(iVar6 + 0xff) = 0;\n                  (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                  *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                  iVar10 = 1;\n                  iVar7 = 0;\n                }\n                *(int *)(iVar6 + 0x100) = iVar10;\n                *(undefined1 *)(iVar6 + iVar7) = 0x2e;\n                *(undefined1 *)(iVar6 + 0x104) = 0x2e;\n              }\n              local_44 = *(uint **)(piVar4[1] + 0xc);\n              uVar8 = *local_44;\n              if (uVar8 == 0x46) {\n                uVar11 = 0x7b;\n                puVar12 = (undefined1 *)(unaff_EDI + 0xca6bc);\n                iVar7 = *(int *)(iVar6 + 0x100);\n                while( true ) {\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if (puVar12 == (undefined1 *)(unaff_EDI + 0xca6c8)) break;\n                  uVar11 = *puVar12;\n                  puVar12 = puVar12 + 1;\n                  iVar7 = iVar10;\n                }\n                __s = local_35;\n                sprintf(__s,(char *)(unaff_EDI + 0xc8c52),local_44[3] + 1);\n                sVar9 = strlen(__s);\n                iVar7 = *(int *)(iVar6 + 0x100);\n                if (sVar9 != 0) {\n                  pcVar1 = __s + sVar9;\n                  iVar10 = iVar7;\n                  do {\n                    cVar2 = *__s;\n                    if (iVar10 == 0xff) {\n                      *(undefined1 *)(iVar6 + 0xff) = 0;\n                      (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                      *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                      iVar7 = 1;\n                      iVar10 = 0;\n                    }\n                    else {\n                      iVar7 = iVar10 + 1;\n                    }\n                    __s = __s + 1;\n                    *(int *)(iVar6 + 0x100) = iVar7;\n                    *(char *)(iVar6 + iVar10) = cVar2;\n                    *(char *)(iVar6 + 0x104) = cVar2;\n                    iVar10 = iVar7;\n                  } while (pcVar1 != __s);\n                }\n                puVar12 = (undefined1 *)(unaff_EDI + 0xca6c9);\n                uVar11 = 0x7d;\n                do {\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  puVar12 = puVar12 + 1;\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if ((undefined1 *)(unaff_EDI + 0xca6cc) == puVar12) goto LAB_001a03d9;\n                  uVar11 = *puVar12;\n                  iVar7 = iVar10;\n                } while( true );\n              }\n              do {\n                if (uVar8 != 0x4c) {\n                  if (uVar8 < 0x4d) {\n                    if (4 < uVar8 - 0x1c) {\nLAB_001a036d:\n                      FUN_0019a610();\n                      *(undefined4 *)(iVar6 + 0x110) = uVar3;\n                      return;\n                    }\n                  }\n                  else if (1 < uVar8 - 0x4e) goto LAB_001a036d;\n                }\nLAB_001a03d9:\n                local_44 = (uint *)local_44[2];\n                uVar8 = *local_44;\n              } while( true );\n            }\n            FUN_0019f570();\n            *(undefined4 *)(iVar6 + 0x110) = uVar3;\n          }\n        }\n      }" if (parenthesized_expression "(piVar4[2] == 0)" ( (binary_expression "piVar4[2] == 0" (subscript_expression "piVar4[2]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n        uVar8 = *(uint *)piVar4[1];\n        if (param_1 != 0) goto LAB_001a0258;\n        if (uVar8 != 0x4c) {\n          if (uVar8 < 0x4d) {\n            if (4 < uVar8 - 0x1c) goto LAB_001a0258;\n          }\n          else if (1 < uVar8 - 0x4e) {\nLAB_001a0258:\n            uVar3 = *(undefined4 *)(iVar6 + 0x110);\n            piVar4[2] = 1;\n            *(int *)(iVar6 + 0x110) = piVar4[3];\n            if (uVar8 == 0x29) {\n              FUN_0019fef0(*piVar4);\n              *(undefined4 *)(iVar6 + 0x110) = uVar3;\n              return;\n            }\n            if (uVar8 == 0x2a) {\n              FUN_001a0610(*piVar4);\n              *(undefined4 *)(iVar6 + 0x110) = uVar3;\n              return;\n            }\n            if (uVar8 == 2) {\n              uVar5 = *(undefined4 *)(iVar6 + 0x114);\n              *(undefined4 *)(iVar6 + 0x114) = 0;\n              FUN_0019a610();\n              *(undefined4 *)(iVar6 + 0x114) = uVar5;\n              iVar7 = *(int *)(iVar6 + 0x100);\n              if ((uVar13 & 0x400000000) == 0) {\n                puVar12 = (undefined1 *)(unaff_EDI + 0xca6ca);\n                uVar11 = 0x3a;\n                while( true ) {\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  puVar12 = puVar12 + 1;\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if (puVar12 == (undefined1 *)(unaff_EDI + 0xca6cc)) break;\n                  uVar11 = *puVar12;\n                  iVar7 = iVar10;\n                }\n              }\n              else {\n                iVar10 = iVar7 + 1;\n                if (iVar7 == 0xff) {\n                  *(undefined1 *)(iVar6 + 0xff) = 0;\n                  (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                  *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                  iVar10 = 1;\n                  iVar7 = 0;\n                }\n                *(int *)(iVar6 + 0x100) = iVar10;\n                *(undefined1 *)(iVar6 + iVar7) = 0x2e;\n                *(undefined1 *)(iVar6 + 0x104) = 0x2e;\n              }\n              local_44 = *(uint **)(piVar4[1] + 0xc);\n              uVar8 = *local_44;\n              if (uVar8 == 0x46) {\n                uVar11 = 0x7b;\n                puVar12 = (undefined1 *)(unaff_EDI + 0xca6bc);\n                iVar7 = *(int *)(iVar6 + 0x100);\n                while( true ) {\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if (puVar12 == (undefined1 *)(unaff_EDI + 0xca6c8)) break;\n                  uVar11 = *puVar12;\n                  puVar12 = puVar12 + 1;\n                  iVar7 = iVar10;\n                }\n                __s = local_35;\n                sprintf(__s,(char *)(unaff_EDI + 0xc8c52),local_44[3] + 1);\n                sVar9 = strlen(__s);\n                iVar7 = *(int *)(iVar6 + 0x100);\n                if (sVar9 != 0) {\n                  pcVar1 = __s + sVar9;\n                  iVar10 = iVar7;\n                  do {\n                    cVar2 = *__s;\n                    if (iVar10 == 0xff) {\n                      *(undefined1 *)(iVar6 + 0xff) = 0;\n                      (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                      *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                      iVar7 = 1;\n                      iVar10 = 0;\n                    }\n                    else {\n                      iVar7 = iVar10 + 1;\n                    }\n                    __s = __s + 1;\n                    *(int *)(iVar6 + 0x100) = iVar7;\n                    *(char *)(iVar6 + iVar10) = cVar2;\n                    *(char *)(iVar6 + 0x104) = cVar2;\n                    iVar10 = iVar7;\n                  } while (pcVar1 != __s);\n                }\n                puVar12 = (undefined1 *)(unaff_EDI + 0xca6c9);\n                uVar11 = 0x7d;\n                do {\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  puVar12 = puVar12 + 1;\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if ((undefined1 *)(unaff_EDI + 0xca6cc) == puVar12) goto LAB_001a03d9;\n                  uVar11 = *puVar12;\n                  iVar7 = iVar10;\n                } while( true );\n              }\n              do {\n                if (uVar8 != 0x4c) {\n                  if (uVar8 < 0x4d) {\n                    if (4 < uVar8 - 0x1c) {\nLAB_001a036d:\n                      FUN_0019a610();\n                      *(undefined4 *)(iVar6 + 0x110) = uVar3;\n                      return;\n                    }\n                  }\n                  else if (1 < uVar8 - 0x4e) goto LAB_001a036d;\n                }\nLAB_001a03d9:\n                local_44 = (uint *)local_44[2];\n                uVar8 = *local_44;\n              } while( true );\n            }\n            FUN_0019f570();\n            *(undefined4 *)(iVar6 + 0x110) = uVar3;\n          }\n        }\n      }" { (expression_statement "uVar8 = *(uint *)piVar4[1];" (assignment_expression "uVar8 = *(uint *)piVar4[1]" identifier = (pointer_expression "*(uint *)piVar4[1]" * (cast_expression "(uint *)piVar4[1]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar4[1]" identifier [ number_literal ])))) ;) (if_statement "if (param_1 != 0) goto LAB_001a0258;" if (parenthesized_expression "(param_1 != 0)" ( (binary_expression "param_1 != 0" identifier != number_literal) )) (goto_statement "goto LAB_001a0258;" goto statement_identifier ;)) (if_statement "if (uVar8 != 0x4c) {\n          if (uVar8 < 0x4d) {\n            if (4 < uVar8 - 0x1c) goto LAB_001a0258;\n          }\n          else if (1 < uVar8 - 0x4e) {\nLAB_001a0258:\n            uVar3 = *(undefined4 *)(iVar6 + 0x110);\n            piVar4[2] = 1;\n            *(int *)(iVar6 + 0x110) = piVar4[3];\n            if (uVar8 == 0x29) {\n              FUN_0019fef0(*piVar4);\n              *(undefined4 *)(iVar6 + 0x110) = uVar3;\n              return;\n            }\n            if (uVar8 == 0x2a) {\n              FUN_001a0610(*piVar4);\n              *(undefined4 *)(iVar6 + 0x110) = uVar3;\n              return;\n            }\n            if (uVar8 == 2) {\n              uVar5 = *(undefined4 *)(iVar6 + 0x114);\n              *(undefined4 *)(iVar6 + 0x114) = 0;\n              FUN_0019a610();\n              *(undefined4 *)(iVar6 + 0x114) = uVar5;\n              iVar7 = *(int *)(iVar6 + 0x100);\n              if ((uVar13 & 0x400000000) == 0) {\n                puVar12 = (undefined1 *)(unaff_EDI + 0xca6ca);\n                uVar11 = 0x3a;\n                while( true ) {\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  puVar12 = puVar12 + 1;\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if (puVar12 == (undefined1 *)(unaff_EDI + 0xca6cc)) break;\n                  uVar11 = *puVar12;\n                  iVar7 = iVar10;\n                }\n              }\n              else {\n                iVar10 = iVar7 + 1;\n                if (iVar7 == 0xff) {\n                  *(undefined1 *)(iVar6 + 0xff) = 0;\n                  (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                  *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                  iVar10 = 1;\n                  iVar7 = 0;\n                }\n                *(int *)(iVar6 + 0x100) = iVar10;\n                *(undefined1 *)(iVar6 + iVar7) = 0x2e;\n                *(undefined1 *)(iVar6 + 0x104) = 0x2e;\n              }\n              local_44 = *(uint **)(piVar4[1] + 0xc);\n              uVar8 = *local_44;\n              if (uVar8 == 0x46) {\n                uVar11 = 0x7b;\n                puVar12 = (undefined1 *)(unaff_EDI + 0xca6bc);\n                iVar7 = *(int *)(iVar6 + 0x100);\n                while( true ) {\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if (puVar12 == (undefined1 *)(unaff_EDI + 0xca6c8)) break;\n                  uVar11 = *puVar12;\n                  puVar12 = puVar12 + 1;\n                  iVar7 = iVar10;\n                }\n                __s = local_35;\n                sprintf(__s,(char *)(unaff_EDI + 0xc8c52),local_44[3] + 1);\n                sVar9 = strlen(__s);\n                iVar7 = *(int *)(iVar6 + 0x100);\n                if (sVar9 != 0) {\n                  pcVar1 = __s + sVar9;\n                  iVar10 = iVar7;\n                  do {\n                    cVar2 = *__s;\n                    if (iVar10 == 0xff) {\n                      *(undefined1 *)(iVar6 + 0xff) = 0;\n                      (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                      *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                      iVar7 = 1;\n                      iVar10 = 0;\n                    }\n                    else {\n                      iVar7 = iVar10 + 1;\n                    }\n                    __s = __s + 1;\n                    *(int *)(iVar6 + 0x100) = iVar7;\n                    *(char *)(iVar6 + iVar10) = cVar2;\n                    *(char *)(iVar6 + 0x104) = cVar2;\n                    iVar10 = iVar7;\n                  } while (pcVar1 != __s);\n                }\n                puVar12 = (undefined1 *)(unaff_EDI + 0xca6c9);\n                uVar11 = 0x7d;\n                do {\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  puVar12 = puVar12 + 1;\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if ((undefined1 *)(unaff_EDI + 0xca6cc) == puVar12) goto LAB_001a03d9;\n                  uVar11 = *puVar12;\n                  iVar7 = iVar10;\n                } while( true );\n              }\n              do {\n                if (uVar8 != 0x4c) {\n                  if (uVar8 < 0x4d) {\n                    if (4 < uVar8 - 0x1c) {\nLAB_001a036d:\n                      FUN_0019a610();\n                      *(undefined4 *)(iVar6 + 0x110) = uVar3;\n                      return;\n                    }\n                  }\n                  else if (1 < uVar8 - 0x4e) goto LAB_001a036d;\n                }\nLAB_001a03d9:\n                local_44 = (uint *)local_44[2];\n                uVar8 = *local_44;\n              } while( true );\n            }\n            FUN_0019f570();\n            *(undefined4 *)(iVar6 + 0x110) = uVar3;\n          }\n        }" if (parenthesized_expression "(uVar8 != 0x4c)" ( (binary_expression "uVar8 != 0x4c" identifier != number_literal) )) (compound_statement "{\n          if (uVar8 < 0x4d) {\n            if (4 < uVar8 - 0x1c) goto LAB_001a0258;\n          }\n          else if (1 < uVar8 - 0x4e) {\nLAB_001a0258:\n            uVar3 = *(undefined4 *)(iVar6 + 0x110);\n            piVar4[2] = 1;\n            *(int *)(iVar6 + 0x110) = piVar4[3];\n            if (uVar8 == 0x29) {\n              FUN_0019fef0(*piVar4);\n              *(undefined4 *)(iVar6 + 0x110) = uVar3;\n              return;\n            }\n            if (uVar8 == 0x2a) {\n              FUN_001a0610(*piVar4);\n              *(undefined4 *)(iVar6 + 0x110) = uVar3;\n              return;\n            }\n            if (uVar8 == 2) {\n              uVar5 = *(undefined4 *)(iVar6 + 0x114);\n              *(undefined4 *)(iVar6 + 0x114) = 0;\n              FUN_0019a610();\n              *(undefined4 *)(iVar6 + 0x114) = uVar5;\n              iVar7 = *(int *)(iVar6 + 0x100);\n              if ((uVar13 & 0x400000000) == 0) {\n                puVar12 = (undefined1 *)(unaff_EDI + 0xca6ca);\n                uVar11 = 0x3a;\n                while( true ) {\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  puVar12 = puVar12 + 1;\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if (puVar12 == (undefined1 *)(unaff_EDI + 0xca6cc)) break;\n                  uVar11 = *puVar12;\n                  iVar7 = iVar10;\n                }\n              }\n              else {\n                iVar10 = iVar7 + 1;\n                if (iVar7 == 0xff) {\n                  *(undefined1 *)(iVar6 + 0xff) = 0;\n                  (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                  *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                  iVar10 = 1;\n                  iVar7 = 0;\n                }\n                *(int *)(iVar6 + 0x100) = iVar10;\n                *(undefined1 *)(iVar6 + iVar7) = 0x2e;\n                *(undefined1 *)(iVar6 + 0x104) = 0x2e;\n              }\n              local_44 = *(uint **)(piVar4[1] + 0xc);\n              uVar8 = *local_44;\n              if (uVar8 == 0x46) {\n                uVar11 = 0x7b;\n                puVar12 = (undefined1 *)(unaff_EDI + 0xca6bc);\n                iVar7 = *(int *)(iVar6 + 0x100);\n                while( true ) {\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if (puVar12 == (undefined1 *)(unaff_EDI + 0xca6c8)) break;\n                  uVar11 = *puVar12;\n                  puVar12 = puVar12 + 1;\n                  iVar7 = iVar10;\n                }\n                __s = local_35;\n                sprintf(__s,(char *)(unaff_EDI + 0xc8c52),local_44[3] + 1);\n                sVar9 = strlen(__s);\n                iVar7 = *(int *)(iVar6 + 0x100);\n                if (sVar9 != 0) {\n                  pcVar1 = __s + sVar9;\n                  iVar10 = iVar7;\n                  do {\n                    cVar2 = *__s;\n                    if (iVar10 == 0xff) {\n                      *(undefined1 *)(iVar6 + 0xff) = 0;\n                      (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                      *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                      iVar7 = 1;\n                      iVar10 = 0;\n                    }\n                    else {\n                      iVar7 = iVar10 + 1;\n                    }\n                    __s = __s + 1;\n                    *(int *)(iVar6 + 0x100) = iVar7;\n                    *(char *)(iVar6 + iVar10) = cVar2;\n                    *(char *)(iVar6 + 0x104) = cVar2;\n                    iVar10 = iVar7;\n                  } while (pcVar1 != __s);\n                }\n                puVar12 = (undefined1 *)(unaff_EDI + 0xca6c9);\n                uVar11 = 0x7d;\n                do {\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  puVar12 = puVar12 + 1;\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if ((undefined1 *)(unaff_EDI + 0xca6cc) == puVar12) goto LAB_001a03d9;\n                  uVar11 = *puVar12;\n                  iVar7 = iVar10;\n                } while( true );\n              }\n              do {\n                if (uVar8 != 0x4c) {\n                  if (uVar8 < 0x4d) {\n                    if (4 < uVar8 - 0x1c) {\nLAB_001a036d:\n                      FUN_0019a610();\n                      *(undefined4 *)(iVar6 + 0x110) = uVar3;\n                      return;\n                    }\n                  }\n                  else if (1 < uVar8 - 0x4e) goto LAB_001a036d;\n                }\nLAB_001a03d9:\n                local_44 = (uint *)local_44[2];\n                uVar8 = *local_44;\n              } while( true );\n            }\n            FUN_0019f570();\n            *(undefined4 *)(iVar6 + 0x110) = uVar3;\n          }\n        }" { (if_statement "if (uVar8 < 0x4d) {\n            if (4 < uVar8 - 0x1c) goto LAB_001a0258;\n          }\n          else if (1 < uVar8 - 0x4e) {\nLAB_001a0258:\n            uVar3 = *(undefined4 *)(iVar6 + 0x110);\n            piVar4[2] = 1;\n            *(int *)(iVar6 + 0x110) = piVar4[3];\n            if (uVar8 == 0x29) {\n              FUN_0019fef0(*piVar4);\n              *(undefined4 *)(iVar6 + 0x110) = uVar3;\n              return;\n            }\n            if (uVar8 == 0x2a) {\n              FUN_001a0610(*piVar4);\n              *(undefined4 *)(iVar6 + 0x110) = uVar3;\n              return;\n            }\n            if (uVar8 == 2) {\n              uVar5 = *(undefined4 *)(iVar6 + 0x114);\n              *(undefined4 *)(iVar6 + 0x114) = 0;\n              FUN_0019a610();\n              *(undefined4 *)(iVar6 + 0x114) = uVar5;\n              iVar7 = *(int *)(iVar6 + 0x100);\n              if ((uVar13 & 0x400000000) == 0) {\n                puVar12 = (undefined1 *)(unaff_EDI + 0xca6ca);\n                uVar11 = 0x3a;\n                while( true ) {\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  puVar12 = puVar12 + 1;\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if (puVar12 == (undefined1 *)(unaff_EDI + 0xca6cc)) break;\n                  uVar11 = *puVar12;\n                  iVar7 = iVar10;\n                }\n              }\n              else {\n                iVar10 = iVar7 + 1;\n                if (iVar7 == 0xff) {\n                  *(undefined1 *)(iVar6 + 0xff) = 0;\n                  (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                  *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                  iVar10 = 1;\n                  iVar7 = 0;\n                }\n                *(int *)(iVar6 + 0x100) = iVar10;\n                *(undefined1 *)(iVar6 + iVar7) = 0x2e;\n                *(undefined1 *)(iVar6 + 0x104) = 0x2e;\n              }\n              local_44 = *(uint **)(piVar4[1] + 0xc);\n              uVar8 = *local_44;\n              if (uVar8 == 0x46) {\n                uVar11 = 0x7b;\n                puVar12 = (undefined1 *)(unaff_EDI + 0xca6bc);\n                iVar7 = *(int *)(iVar6 + 0x100);\n                while( true ) {\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if (puVar12 == (undefined1 *)(unaff_EDI + 0xca6c8)) break;\n                  uVar11 = *puVar12;\n                  puVar12 = puVar12 + 1;\n                  iVar7 = iVar10;\n                }\n                __s = local_35;\n                sprintf(__s,(char *)(unaff_EDI + 0xc8c52),local_44[3] + 1);\n                sVar9 = strlen(__s);\n                iVar7 = *(int *)(iVar6 + 0x100);\n                if (sVar9 != 0) {\n                  pcVar1 = __s + sVar9;\n                  iVar10 = iVar7;\n                  do {\n                    cVar2 = *__s;\n                    if (iVar10 == 0xff) {\n                      *(undefined1 *)(iVar6 + 0xff) = 0;\n                      (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                      *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                      iVar7 = 1;\n                      iVar10 = 0;\n                    }\n                    else {\n                      iVar7 = iVar10 + 1;\n                    }\n                    __s = __s + 1;\n                    *(int *)(iVar6 + 0x100) = iVar7;\n                    *(char *)(iVar6 + iVar10) = cVar2;\n                    *(char *)(iVar6 + 0x104) = cVar2;\n                    iVar10 = iVar7;\n                  } while (pcVar1 != __s);\n                }\n                puVar12 = (undefined1 *)(unaff_EDI + 0xca6c9);\n                uVar11 = 0x7d;\n                do {\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  puVar12 = puVar12 + 1;\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if ((undefined1 *)(unaff_EDI + 0xca6cc) == puVar12) goto LAB_001a03d9;\n                  uVar11 = *puVar12;\n                  iVar7 = iVar10;\n                } while( true );\n              }\n              do {\n                if (uVar8 != 0x4c) {\n                  if (uVar8 < 0x4d) {\n                    if (4 < uVar8 - 0x1c) {\nLAB_001a036d:\n                      FUN_0019a610();\n                      *(undefined4 *)(iVar6 + 0x110) = uVar3;\n                      return;\n                    }\n                  }\n                  else if (1 < uVar8 - 0x4e) goto LAB_001a036d;\n                }\nLAB_001a03d9:\n                local_44 = (uint *)local_44[2];\n                uVar8 = *local_44;\n              } while( true );\n            }\n            FUN_0019f570();\n            *(undefined4 *)(iVar6 + 0x110) = uVar3;\n          }" if (parenthesized_expression "(uVar8 < 0x4d)" ( (binary_expression "uVar8 < 0x4d" identifier < number_literal) )) (compound_statement "{\n            if (4 < uVar8 - 0x1c) goto LAB_001a0258;\n          }" { (if_statement "if (4 < uVar8 - 0x1c) goto LAB_001a0258;" if (parenthesized_expression "(4 < uVar8 - 0x1c)" ( (binary_expression "4 < uVar8 - 0x1c" number_literal < (binary_expression "uVar8 - 0x1c" identifier - number_literal)) )) (goto_statement "goto LAB_001a0258;" goto statement_identifier ;)) }) (else_clause "else if (1 < uVar8 - 0x4e) {\nLAB_001a0258:\n            uVar3 = *(undefined4 *)(iVar6 + 0x110);\n            piVar4[2] = 1;\n            *(int *)(iVar6 + 0x110) = piVar4[3];\n            if (uVar8 == 0x29) {\n              FUN_0019fef0(*piVar4);\n              *(undefined4 *)(iVar6 + 0x110) = uVar3;\n              return;\n            }\n            if (uVar8 == 0x2a) {\n              FUN_001a0610(*piVar4);\n              *(undefined4 *)(iVar6 + 0x110) = uVar3;\n              return;\n            }\n            if (uVar8 == 2) {\n              uVar5 = *(undefined4 *)(iVar6 + 0x114);\n              *(undefined4 *)(iVar6 + 0x114) = 0;\n              FUN_0019a610();\n              *(undefined4 *)(iVar6 + 0x114) = uVar5;\n              iVar7 = *(int *)(iVar6 + 0x100);\n              if ((uVar13 & 0x400000000) == 0) {\n                puVar12 = (undefined1 *)(unaff_EDI + 0xca6ca);\n                uVar11 = 0x3a;\n                while( true ) {\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  puVar12 = puVar12 + 1;\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if (puVar12 == (undefined1 *)(unaff_EDI + 0xca6cc)) break;\n                  uVar11 = *puVar12;\n                  iVar7 = iVar10;\n                }\n              }\n              else {\n                iVar10 = iVar7 + 1;\n                if (iVar7 == 0xff) {\n                  *(undefined1 *)(iVar6 + 0xff) = 0;\n                  (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                  *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                  iVar10 = 1;\n                  iVar7 = 0;\n                }\n                *(int *)(iVar6 + 0x100) = iVar10;\n                *(undefined1 *)(iVar6 + iVar7) = 0x2e;\n                *(undefined1 *)(iVar6 + 0x104) = 0x2e;\n              }\n              local_44 = *(uint **)(piVar4[1] + 0xc);\n              uVar8 = *local_44;\n              if (uVar8 == 0x46) {\n                uVar11 = 0x7b;\n                puVar12 = (undefined1 *)(unaff_EDI + 0xca6bc);\n                iVar7 = *(int *)(iVar6 + 0x100);\n                while( true ) {\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if (puVar12 == (undefined1 *)(unaff_EDI + 0xca6c8)) break;\n                  uVar11 = *puVar12;\n                  puVar12 = puVar12 + 1;\n                  iVar7 = iVar10;\n                }\n                __s = local_35;\n                sprintf(__s,(char *)(unaff_EDI + 0xc8c52),local_44[3] + 1);\n                sVar9 = strlen(__s);\n                iVar7 = *(int *)(iVar6 + 0x100);\n                if (sVar9 != 0) {\n                  pcVar1 = __s + sVar9;\n                  iVar10 = iVar7;\n                  do {\n                    cVar2 = *__s;\n                    if (iVar10 == 0xff) {\n                      *(undefined1 *)(iVar6 + 0xff) = 0;\n                      (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                      *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                      iVar7 = 1;\n                      iVar10 = 0;\n                    }\n                    else {\n                      iVar7 = iVar10 + 1;\n                    }\n                    __s = __s + 1;\n                    *(int *)(iVar6 + 0x100) = iVar7;\n                    *(char *)(iVar6 + iVar10) = cVar2;\n                    *(char *)(iVar6 + 0x104) = cVar2;\n                    iVar10 = iVar7;\n                  } while (pcVar1 != __s);\n                }\n                puVar12 = (undefined1 *)(unaff_EDI + 0xca6c9);\n                uVar11 = 0x7d;\n                do {\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  puVar12 = puVar12 + 1;\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if ((undefined1 *)(unaff_EDI + 0xca6cc) == puVar12) goto LAB_001a03d9;\n                  uVar11 = *puVar12;\n                  iVar7 = iVar10;\n                } while( true );\n              }\n              do {\n                if (uVar8 != 0x4c) {\n                  if (uVar8 < 0x4d) {\n                    if (4 < uVar8 - 0x1c) {\nLAB_001a036d:\n                      FUN_0019a610();\n                      *(undefined4 *)(iVar6 + 0x110) = uVar3;\n                      return;\n                    }\n                  }\n                  else if (1 < uVar8 - 0x4e) goto LAB_001a036d;\n                }\nLAB_001a03d9:\n                local_44 = (uint *)local_44[2];\n                uVar8 = *local_44;\n              } while( true );\n            }\n            FUN_0019f570();\n            *(undefined4 *)(iVar6 + 0x110) = uVar3;\n          }" else (if_statement "if (1 < uVar8 - 0x4e) {\nLAB_001a0258:\n            uVar3 = *(undefined4 *)(iVar6 + 0x110);\n            piVar4[2] = 1;\n            *(int *)(iVar6 + 0x110) = piVar4[3];\n            if (uVar8 == 0x29) {\n              FUN_0019fef0(*piVar4);\n              *(undefined4 *)(iVar6 + 0x110) = uVar3;\n              return;\n            }\n            if (uVar8 == 0x2a) {\n              FUN_001a0610(*piVar4);\n              *(undefined4 *)(iVar6 + 0x110) = uVar3;\n              return;\n            }\n            if (uVar8 == 2) {\n              uVar5 = *(undefined4 *)(iVar6 + 0x114);\n              *(undefined4 *)(iVar6 + 0x114) = 0;\n              FUN_0019a610();\n              *(undefined4 *)(iVar6 + 0x114) = uVar5;\n              iVar7 = *(int *)(iVar6 + 0x100);\n              if ((uVar13 & 0x400000000) == 0) {\n                puVar12 = (undefined1 *)(unaff_EDI + 0xca6ca);\n                uVar11 = 0x3a;\n                while( true ) {\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  puVar12 = puVar12 + 1;\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if (puVar12 == (undefined1 *)(unaff_EDI + 0xca6cc)) break;\n                  uVar11 = *puVar12;\n                  iVar7 = iVar10;\n                }\n              }\n              else {\n                iVar10 = iVar7 + 1;\n                if (iVar7 == 0xff) {\n                  *(undefined1 *)(iVar6 + 0xff) = 0;\n                  (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                  *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                  iVar10 = 1;\n                  iVar7 = 0;\n                }\n                *(int *)(iVar6 + 0x100) = iVar10;\n                *(undefined1 *)(iVar6 + iVar7) = 0x2e;\n                *(undefined1 *)(iVar6 + 0x104) = 0x2e;\n              }\n              local_44 = *(uint **)(piVar4[1] + 0xc);\n              uVar8 = *local_44;\n              if (uVar8 == 0x46) {\n                uVar11 = 0x7b;\n                puVar12 = (undefined1 *)(unaff_EDI + 0xca6bc);\n                iVar7 = *(int *)(iVar6 + 0x100);\n                while( true ) {\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if (puVar12 == (undefined1 *)(unaff_EDI + 0xca6c8)) break;\n                  uVar11 = *puVar12;\n                  puVar12 = puVar12 + 1;\n                  iVar7 = iVar10;\n                }\n                __s = local_35;\n                sprintf(__s,(char *)(unaff_EDI + 0xc8c52),local_44[3] + 1);\n                sVar9 = strlen(__s);\n                iVar7 = *(int *)(iVar6 + 0x100);\n                if (sVar9 != 0) {\n                  pcVar1 = __s + sVar9;\n                  iVar10 = iVar7;\n                  do {\n                    cVar2 = *__s;\n                    if (iVar10 == 0xff) {\n                      *(undefined1 *)(iVar6 + 0xff) = 0;\n                      (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                      *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                      iVar7 = 1;\n                      iVar10 = 0;\n                    }\n                    else {\n                      iVar7 = iVar10 + 1;\n                    }\n                    __s = __s + 1;\n                    *(int *)(iVar6 + 0x100) = iVar7;\n                    *(char *)(iVar6 + iVar10) = cVar2;\n                    *(char *)(iVar6 + 0x104) = cVar2;\n                    iVar10 = iVar7;\n                  } while (pcVar1 != __s);\n                }\n                puVar12 = (undefined1 *)(unaff_EDI + 0xca6c9);\n                uVar11 = 0x7d;\n                do {\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  puVar12 = puVar12 + 1;\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if ((undefined1 *)(unaff_EDI + 0xca6cc) == puVar12) goto LAB_001a03d9;\n                  uVar11 = *puVar12;\n                  iVar7 = iVar10;\n                } while( true );\n              }\n              do {\n                if (uVar8 != 0x4c) {\n                  if (uVar8 < 0x4d) {\n                    if (4 < uVar8 - 0x1c) {\nLAB_001a036d:\n                      FUN_0019a610();\n                      *(undefined4 *)(iVar6 + 0x110) = uVar3;\n                      return;\n                    }\n                  }\n                  else if (1 < uVar8 - 0x4e) goto LAB_001a036d;\n                }\nLAB_001a03d9:\n                local_44 = (uint *)local_44[2];\n                uVar8 = *local_44;\n              } while( true );\n            }\n            FUN_0019f570();\n            *(undefined4 *)(iVar6 + 0x110) = uVar3;\n          }" if (parenthesized_expression "(1 < uVar8 - 0x4e)" ( (binary_expression "1 < uVar8 - 0x4e" number_literal < (binary_expression "uVar8 - 0x4e" identifier - number_literal)) )) (compound_statement "{\nLAB_001a0258:\n            uVar3 = *(undefined4 *)(iVar6 + 0x110);\n            piVar4[2] = 1;\n            *(int *)(iVar6 + 0x110) = piVar4[3];\n            if (uVar8 == 0x29) {\n              FUN_0019fef0(*piVar4);\n              *(undefined4 *)(iVar6 + 0x110) = uVar3;\n              return;\n            }\n            if (uVar8 == 0x2a) {\n              FUN_001a0610(*piVar4);\n              *(undefined4 *)(iVar6 + 0x110) = uVar3;\n              return;\n            }\n            if (uVar8 == 2) {\n              uVar5 = *(undefined4 *)(iVar6 + 0x114);\n              *(undefined4 *)(iVar6 + 0x114) = 0;\n              FUN_0019a610();\n              *(undefined4 *)(iVar6 + 0x114) = uVar5;\n              iVar7 = *(int *)(iVar6 + 0x100);\n              if ((uVar13 & 0x400000000) == 0) {\n                puVar12 = (undefined1 *)(unaff_EDI + 0xca6ca);\n                uVar11 = 0x3a;\n                while( true ) {\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  puVar12 = puVar12 + 1;\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if (puVar12 == (undefined1 *)(unaff_EDI + 0xca6cc)) break;\n                  uVar11 = *puVar12;\n                  iVar7 = iVar10;\n                }\n              }\n              else {\n                iVar10 = iVar7 + 1;\n                if (iVar7 == 0xff) {\n                  *(undefined1 *)(iVar6 + 0xff) = 0;\n                  (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                  *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                  iVar10 = 1;\n                  iVar7 = 0;\n                }\n                *(int *)(iVar6 + 0x100) = iVar10;\n                *(undefined1 *)(iVar6 + iVar7) = 0x2e;\n                *(undefined1 *)(iVar6 + 0x104) = 0x2e;\n              }\n              local_44 = *(uint **)(piVar4[1] + 0xc);\n              uVar8 = *local_44;\n              if (uVar8 == 0x46) {\n                uVar11 = 0x7b;\n                puVar12 = (undefined1 *)(unaff_EDI + 0xca6bc);\n                iVar7 = *(int *)(iVar6 + 0x100);\n                while( true ) {\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if (puVar12 == (undefined1 *)(unaff_EDI + 0xca6c8)) break;\n                  uVar11 = *puVar12;\n                  puVar12 = puVar12 + 1;\n                  iVar7 = iVar10;\n                }\n                __s = local_35;\n                sprintf(__s,(char *)(unaff_EDI + 0xc8c52),local_44[3] + 1);\n                sVar9 = strlen(__s);\n                iVar7 = *(int *)(iVar6 + 0x100);\n                if (sVar9 != 0) {\n                  pcVar1 = __s + sVar9;\n                  iVar10 = iVar7;\n                  do {\n                    cVar2 = *__s;\n                    if (iVar10 == 0xff) {\n                      *(undefined1 *)(iVar6 + 0xff) = 0;\n                      (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                      *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                      iVar7 = 1;\n                      iVar10 = 0;\n                    }\n                    else {\n                      iVar7 = iVar10 + 1;\n                    }\n                    __s = __s + 1;\n                    *(int *)(iVar6 + 0x100) = iVar7;\n                    *(char *)(iVar6 + iVar10) = cVar2;\n                    *(char *)(iVar6 + 0x104) = cVar2;\n                    iVar10 = iVar7;\n                  } while (pcVar1 != __s);\n                }\n                puVar12 = (undefined1 *)(unaff_EDI + 0xca6c9);\n                uVar11 = 0x7d;\n                do {\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  puVar12 = puVar12 + 1;\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if ((undefined1 *)(unaff_EDI + 0xca6cc) == puVar12) goto LAB_001a03d9;\n                  uVar11 = *puVar12;\n                  iVar7 = iVar10;\n                } while( true );\n              }\n              do {\n                if (uVar8 != 0x4c) {\n                  if (uVar8 < 0x4d) {\n                    if (4 < uVar8 - 0x1c) {\nLAB_001a036d:\n                      FUN_0019a610();\n                      *(undefined4 *)(iVar6 + 0x110) = uVar3;\n                      return;\n                    }\n                  }\n                  else if (1 < uVar8 - 0x4e) goto LAB_001a036d;\n                }\nLAB_001a03d9:\n                local_44 = (uint *)local_44[2];\n                uVar8 = *local_44;\n              } while( true );\n            }\n            FUN_0019f570();\n            *(undefined4 *)(iVar6 + 0x110) = uVar3;\n          }" { (labeled_statement "LAB_001a0258:\n            uVar3 = *(undefined4 *)(iVar6 + 0x110);" statement_identifier : (expression_statement "uVar3 = *(undefined4 *)(iVar6 + 0x110);" (assignment_expression "uVar3 = *(undefined4 *)(iVar6 + 0x110)" identifier = (pointer_expression "*(undefined4 *)(iVar6 + 0x110)" * (cast_expression "(undefined4 *)(iVar6 + 0x110)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x110)" ( (binary_expression "iVar6 + 0x110" identifier + number_literal) ))))) ;)) (expression_statement "piVar4[2] = 1;" (assignment_expression "piVar4[2] = 1" (subscript_expression "piVar4[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(int *)(iVar6 + 0x110) = piVar4[3];" (assignment_expression "*(int *)(iVar6 + 0x110) = piVar4[3]" (pointer_expression "*(int *)(iVar6 + 0x110)" * (cast_expression "(int *)(iVar6 + 0x110)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x110)" ( (binary_expression "iVar6 + 0x110" identifier + number_literal) )))) = (subscript_expression "piVar4[3]" identifier [ number_literal ])) ;) (if_statement "if (uVar8 == 0x29) {\n              FUN_0019fef0(*piVar4);\n              *(undefined4 *)(iVar6 + 0x110) = uVar3;\n              return;\n            }" if (parenthesized_expression "(uVar8 == 0x29)" ( (binary_expression "uVar8 == 0x29" identifier == number_literal) )) (compound_statement "{\n              FUN_0019fef0(*piVar4);\n              *(undefined4 *)(iVar6 + 0x110) = uVar3;\n              return;\n            }" { (expression_statement "FUN_0019fef0(*piVar4);" (call_expression "FUN_0019fef0(*piVar4)" identifier (argument_list "(*piVar4)" ( (pointer_expression "*piVar4" * identifier) ))) ;) (expression_statement "*(undefined4 *)(iVar6 + 0x110) = uVar3;" (assignment_expression "*(undefined4 *)(iVar6 + 0x110) = uVar3" (pointer_expression "*(undefined4 *)(iVar6 + 0x110)" * (cast_expression "(undefined4 *)(iVar6 + 0x110)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x110)" ( (binary_expression "iVar6 + 0x110" identifier + number_literal) )))) = identifier) ;) (return_statement "return;" return ;) })) (if_statement "if (uVar8 == 0x2a) {\n              FUN_001a0610(*piVar4);\n              *(undefined4 *)(iVar6 + 0x110) = uVar3;\n              return;\n            }" if (parenthesized_expression "(uVar8 == 0x2a)" ( (binary_expression "uVar8 == 0x2a" identifier == number_literal) )) (compound_statement "{\n              FUN_001a0610(*piVar4);\n              *(undefined4 *)(iVar6 + 0x110) = uVar3;\n              return;\n            }" { (expression_statement "FUN_001a0610(*piVar4);" (call_expression "FUN_001a0610(*piVar4)" identifier (argument_list "(*piVar4)" ( (pointer_expression "*piVar4" * identifier) ))) ;) (expression_statement "*(undefined4 *)(iVar6 + 0x110) = uVar3;" (assignment_expression "*(undefined4 *)(iVar6 + 0x110) = uVar3" (pointer_expression "*(undefined4 *)(iVar6 + 0x110)" * (cast_expression "(undefined4 *)(iVar6 + 0x110)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x110)" ( (binary_expression "iVar6 + 0x110" identifier + number_literal) )))) = identifier) ;) (return_statement "return;" return ;) })) (if_statement "if (uVar8 == 2) {\n              uVar5 = *(undefined4 *)(iVar6 + 0x114);\n              *(undefined4 *)(iVar6 + 0x114) = 0;\n              FUN_0019a610();\n              *(undefined4 *)(iVar6 + 0x114) = uVar5;\n              iVar7 = *(int *)(iVar6 + 0x100);\n              if ((uVar13 & 0x400000000) == 0) {\n                puVar12 = (undefined1 *)(unaff_EDI + 0xca6ca);\n                uVar11 = 0x3a;\n                while( true ) {\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  puVar12 = puVar12 + 1;\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if (puVar12 == (undefined1 *)(unaff_EDI + 0xca6cc)) break;\n                  uVar11 = *puVar12;\n                  iVar7 = iVar10;\n                }\n              }\n              else {\n                iVar10 = iVar7 + 1;\n                if (iVar7 == 0xff) {\n                  *(undefined1 *)(iVar6 + 0xff) = 0;\n                  (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                  *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                  iVar10 = 1;\n                  iVar7 = 0;\n                }\n                *(int *)(iVar6 + 0x100) = iVar10;\n                *(undefined1 *)(iVar6 + iVar7) = 0x2e;\n                *(undefined1 *)(iVar6 + 0x104) = 0x2e;\n              }\n              local_44 = *(uint **)(piVar4[1] + 0xc);\n              uVar8 = *local_44;\n              if (uVar8 == 0x46) {\n                uVar11 = 0x7b;\n                puVar12 = (undefined1 *)(unaff_EDI + 0xca6bc);\n                iVar7 = *(int *)(iVar6 + 0x100);\n                while( true ) {\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if (puVar12 == (undefined1 *)(unaff_EDI + 0xca6c8)) break;\n                  uVar11 = *puVar12;\n                  puVar12 = puVar12 + 1;\n                  iVar7 = iVar10;\n                }\n                __s = local_35;\n                sprintf(__s,(char *)(unaff_EDI + 0xc8c52),local_44[3] + 1);\n                sVar9 = strlen(__s);\n                iVar7 = *(int *)(iVar6 + 0x100);\n                if (sVar9 != 0) {\n                  pcVar1 = __s + sVar9;\n                  iVar10 = iVar7;\n                  do {\n                    cVar2 = *__s;\n                    if (iVar10 == 0xff) {\n                      *(undefined1 *)(iVar6 + 0xff) = 0;\n                      (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                      *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                      iVar7 = 1;\n                      iVar10 = 0;\n                    }\n                    else {\n                      iVar7 = iVar10 + 1;\n                    }\n                    __s = __s + 1;\n                    *(int *)(iVar6 + 0x100) = iVar7;\n                    *(char *)(iVar6 + iVar10) = cVar2;\n                    *(char *)(iVar6 + 0x104) = cVar2;\n                    iVar10 = iVar7;\n                  } while (pcVar1 != __s);\n                }\n                puVar12 = (undefined1 *)(unaff_EDI + 0xca6c9);\n                uVar11 = 0x7d;\n                do {\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  puVar12 = puVar12 + 1;\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if ((undefined1 *)(unaff_EDI + 0xca6cc) == puVar12) goto LAB_001a03d9;\n                  uVar11 = *puVar12;\n                  iVar7 = iVar10;\n                } while( true );\n              }\n              do {\n                if (uVar8 != 0x4c) {\n                  if (uVar8 < 0x4d) {\n                    if (4 < uVar8 - 0x1c) {\nLAB_001a036d:\n                      FUN_0019a610();\n                      *(undefined4 *)(iVar6 + 0x110) = uVar3;\n                      return;\n                    }\n                  }\n                  else if (1 < uVar8 - 0x4e) goto LAB_001a036d;\n                }\nLAB_001a03d9:\n                local_44 = (uint *)local_44[2];\n                uVar8 = *local_44;\n              } while( true );\n            }" if (parenthesized_expression "(uVar8 == 2)" ( (binary_expression "uVar8 == 2" identifier == number_literal) )) (compound_statement "{\n              uVar5 = *(undefined4 *)(iVar6 + 0x114);\n              *(undefined4 *)(iVar6 + 0x114) = 0;\n              FUN_0019a610();\n              *(undefined4 *)(iVar6 + 0x114) = uVar5;\n              iVar7 = *(int *)(iVar6 + 0x100);\n              if ((uVar13 & 0x400000000) == 0) {\n                puVar12 = (undefined1 *)(unaff_EDI + 0xca6ca);\n                uVar11 = 0x3a;\n                while( true ) {\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  puVar12 = puVar12 + 1;\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if (puVar12 == (undefined1 *)(unaff_EDI + 0xca6cc)) break;\n                  uVar11 = *puVar12;\n                  iVar7 = iVar10;\n                }\n              }\n              else {\n                iVar10 = iVar7 + 1;\n                if (iVar7 == 0xff) {\n                  *(undefined1 *)(iVar6 + 0xff) = 0;\n                  (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                  *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                  iVar10 = 1;\n                  iVar7 = 0;\n                }\n                *(int *)(iVar6 + 0x100) = iVar10;\n                *(undefined1 *)(iVar6 + iVar7) = 0x2e;\n                *(undefined1 *)(iVar6 + 0x104) = 0x2e;\n              }\n              local_44 = *(uint **)(piVar4[1] + 0xc);\n              uVar8 = *local_44;\n              if (uVar8 == 0x46) {\n                uVar11 = 0x7b;\n                puVar12 = (undefined1 *)(unaff_EDI + 0xca6bc);\n                iVar7 = *(int *)(iVar6 + 0x100);\n                while( true ) {\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if (puVar12 == (undefined1 *)(unaff_EDI + 0xca6c8)) break;\n                  uVar11 = *puVar12;\n                  puVar12 = puVar12 + 1;\n                  iVar7 = iVar10;\n                }\n                __s = local_35;\n                sprintf(__s,(char *)(unaff_EDI + 0xc8c52),local_44[3] + 1);\n                sVar9 = strlen(__s);\n                iVar7 = *(int *)(iVar6 + 0x100);\n                if (sVar9 != 0) {\n                  pcVar1 = __s + sVar9;\n                  iVar10 = iVar7;\n                  do {\n                    cVar2 = *__s;\n                    if (iVar10 == 0xff) {\n                      *(undefined1 *)(iVar6 + 0xff) = 0;\n                      (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                      *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                      iVar7 = 1;\n                      iVar10 = 0;\n                    }\n                    else {\n                      iVar7 = iVar10 + 1;\n                    }\n                    __s = __s + 1;\n                    *(int *)(iVar6 + 0x100) = iVar7;\n                    *(char *)(iVar6 + iVar10) = cVar2;\n                    *(char *)(iVar6 + 0x104) = cVar2;\n                    iVar10 = iVar7;\n                  } while (pcVar1 != __s);\n                }\n                puVar12 = (undefined1 *)(unaff_EDI + 0xca6c9);\n                uVar11 = 0x7d;\n                do {\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  puVar12 = puVar12 + 1;\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if ((undefined1 *)(unaff_EDI + 0xca6cc) == puVar12) goto LAB_001a03d9;\n                  uVar11 = *puVar12;\n                  iVar7 = iVar10;\n                } while( true );\n              }\n              do {\n                if (uVar8 != 0x4c) {\n                  if (uVar8 < 0x4d) {\n                    if (4 < uVar8 - 0x1c) {\nLAB_001a036d:\n                      FUN_0019a610();\n                      *(undefined4 *)(iVar6 + 0x110) = uVar3;\n                      return;\n                    }\n                  }\n                  else if (1 < uVar8 - 0x4e) goto LAB_001a036d;\n                }\nLAB_001a03d9:\n                local_44 = (uint *)local_44[2];\n                uVar8 = *local_44;\n              } while( true );\n            }" { (expression_statement "uVar5 = *(undefined4 *)(iVar6 + 0x114);" (assignment_expression "uVar5 = *(undefined4 *)(iVar6 + 0x114)" identifier = (pointer_expression "*(undefined4 *)(iVar6 + 0x114)" * (cast_expression "(undefined4 *)(iVar6 + 0x114)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x114)" ( (binary_expression "iVar6 + 0x114" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(iVar6 + 0x114) = 0;" (assignment_expression "*(undefined4 *)(iVar6 + 0x114) = 0" (pointer_expression "*(undefined4 *)(iVar6 + 0x114)" * (cast_expression "(undefined4 *)(iVar6 + 0x114)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x114)" ( (binary_expression "iVar6 + 0x114" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_0019a610();" (call_expression "FUN_0019a610()" identifier (argument_list "()" ( ))) ;) (expression_statement "*(undefined4 *)(iVar6 + 0x114) = uVar5;" (assignment_expression "*(undefined4 *)(iVar6 + 0x114) = uVar5" (pointer_expression "*(undefined4 *)(iVar6 + 0x114)" * (cast_expression "(undefined4 *)(iVar6 + 0x114)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x114)" ( (binary_expression "iVar6 + 0x114" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar7 = *(int *)(iVar6 + 0x100);" (assignment_expression "iVar7 = *(int *)(iVar6 + 0x100)" identifier = (pointer_expression "*(int *)(iVar6 + 0x100)" * (cast_expression "(int *)(iVar6 + 0x100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x100)" ( (binary_expression "iVar6 + 0x100" identifier + number_literal) ))))) ;) (if_statement "if ((uVar13 & 0x400000000) == 0) {\n                puVar12 = (undefined1 *)(unaff_EDI + 0xca6ca);\n                uVar11 = 0x3a;\n                while( true ) {\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  puVar12 = puVar12 + 1;\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if (puVar12 == (undefined1 *)(unaff_EDI + 0xca6cc)) break;\n                  uVar11 = *puVar12;\n                  iVar7 = iVar10;\n                }\n              }\n              else {\n                iVar10 = iVar7 + 1;\n                if (iVar7 == 0xff) {\n                  *(undefined1 *)(iVar6 + 0xff) = 0;\n                  (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                  *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                  iVar10 = 1;\n                  iVar7 = 0;\n                }\n                *(int *)(iVar6 + 0x100) = iVar10;\n                *(undefined1 *)(iVar6 + iVar7) = 0x2e;\n                *(undefined1 *)(iVar6 + 0x104) = 0x2e;\n              }" if (parenthesized_expression "((uVar13 & 0x400000000) == 0)" ( (binary_expression "(uVar13 & 0x400000000) == 0" (parenthesized_expression "(uVar13 & 0x400000000)" ( (binary_expression "uVar13 & 0x400000000" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n                puVar12 = (undefined1 *)(unaff_EDI + 0xca6ca);\n                uVar11 = 0x3a;\n                while( true ) {\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  puVar12 = puVar12 + 1;\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if (puVar12 == (undefined1 *)(unaff_EDI + 0xca6cc)) break;\n                  uVar11 = *puVar12;\n                  iVar7 = iVar10;\n                }\n              }" { (expression_statement "puVar12 = (undefined1 *)(unaff_EDI + 0xca6ca);" (assignment_expression "puVar12 = (undefined1 *)(unaff_EDI + 0xca6ca)" identifier = (cast_expression "(undefined1 *)(unaff_EDI + 0xca6ca)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xca6ca)" ( (binary_expression "unaff_EDI + 0xca6ca" identifier + number_literal) )))) ;) (expression_statement "uVar11 = 0x3a;" (assignment_expression "uVar11 = 0x3a" identifier = number_literal) ;) (while_statement "while( true ) {\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  puVar12 = puVar12 + 1;\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if (puVar12 == (undefined1 *)(unaff_EDI + 0xca6cc)) break;\n                  uVar11 = *puVar12;\n                  iVar7 = iVar10;\n                }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  puVar12 = puVar12 + 1;\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if (puVar12 == (undefined1 *)(unaff_EDI + 0xca6cc)) break;\n                  uVar11 = *puVar12;\n                  iVar7 = iVar10;\n                }" { (if_statement "if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }" if (parenthesized_expression "(iVar7 == 0xff)" ( (binary_expression "iVar7 == 0xff" identifier == number_literal) )) (compound_statement "{\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }" { (expression_statement "*(undefined1 *)(iVar6 + 0xff) = 0;" (assignment_expression "*(undefined1 *)(iVar6 + 0xff) = 0" (pointer_expression "*(undefined1 *)(iVar6 + 0xff)" * (cast_expression "(undefined1 *)(iVar6 + 0xff)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0xff)" ( (binary_expression "iVar6 + 0xff" identifier + number_literal) )))) = number_literal) ;) (expression_statement "(**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));" (call_expression "(**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c))" (parenthesized_expression "(**(code **)(iVar6 + 0x108))" ( (pointer_expression "**(code **)(iVar6 + 0x108)" * (pointer_expression "*(code **)(iVar6 + 0x108)" * (cast_expression "(code **)(iVar6 + 0x108)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar6 + 0x108)" ( (binary_expression "iVar6 + 0x108" identifier + number_literal) ))))) )) (argument_list "(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c))" ( identifier , number_literal , (pointer_expression "*(undefined4 *)(iVar6 + 0x10c)" * (cast_expression "(undefined4 *)(iVar6 + 0x10c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x10c)" ( (binary_expression "iVar6 + 0x10c" identifier + number_literal) )))) ))) ;) (expression_statement "*(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;" (assignment_expression "*(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1" (pointer_expression "*(int *)(iVar6 + 0x128)" * (cast_expression "(int *)(iVar6 + 0x128)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x128)" ( (binary_expression "iVar6 + 0x128" identifier + number_literal) )))) = (binary_expression "*(int *)(iVar6 + 0x128) + 1" (pointer_expression "*(int *)(iVar6 + 0x128)" * (cast_expression "(int *)(iVar6 + 0x128)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x128)" ( (binary_expression "iVar6 + 0x128" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "iVar10 = 1;" (assignment_expression "iVar10 = 1" identifier = number_literal) ;) (expression_statement "iVar7 = 0;" (assignment_expression "iVar7 = 0" identifier = number_literal) ;) }) (else_clause "else {\n                    iVar10 = iVar7 + 1;\n                  }" else (compound_statement "{\n                    iVar10 = iVar7 + 1;\n                  }" { (expression_statement "iVar10 = iVar7 + 1;" (assignment_expression "iVar10 = iVar7 + 1" identifier = (binary_expression "iVar7 + 1" identifier + number_literal)) ;) }))) (expression_statement "puVar12 = puVar12 + 1;" (assignment_expression "puVar12 = puVar12 + 1" identifier = (binary_expression "puVar12 + 1" identifier + number_literal)) ;) (expression_statement "*(int *)(iVar6 + 0x100) = iVar10;" (assignment_expression "*(int *)(iVar6 + 0x100) = iVar10" (pointer_expression "*(int *)(iVar6 + 0x100)" * (cast_expression "(int *)(iVar6 + 0x100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x100)" ( (binary_expression "iVar6 + 0x100" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 *)(iVar6 + iVar7) = uVar11;" (assignment_expression "*(undefined1 *)(iVar6 + iVar7) = uVar11" (pointer_expression "*(undefined1 *)(iVar6 + iVar7)" * (cast_expression "(undefined1 *)(iVar6 + iVar7)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + iVar7)" ( (binary_expression "iVar6 + iVar7" identifier + identifier) )))) = identifier) ;) (expression_statement "*(undefined1 *)(iVar6 + 0x104) = uVar11;" (assignment_expression "*(undefined1 *)(iVar6 + 0x104) = uVar11" (pointer_expression "*(undefined1 *)(iVar6 + 0x104)" * (cast_expression "(undefined1 *)(iVar6 + 0x104)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x104)" ( (binary_expression "iVar6 + 0x104" identifier + number_literal) )))) = identifier) ;) (if_statement "if (puVar12 == (undefined1 *)(unaff_EDI + 0xca6cc)) break;" if (parenthesized_expression "(puVar12 == (undefined1 *)(unaff_EDI + 0xca6cc))" ( (binary_expression "puVar12 == (undefined1 *)(unaff_EDI + 0xca6cc)" identifier == (cast_expression "(undefined1 *)(unaff_EDI + 0xca6cc)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xca6cc)" ( (binary_expression "unaff_EDI + 0xca6cc" identifier + number_literal) )))) )) (break_statement "break;" break ;)) (expression_statement "uVar11 = *puVar12;" (assignment_expression "uVar11 = *puVar12" identifier = (pointer_expression "*puVar12" * identifier)) ;) (expression_statement "iVar7 = iVar10;" (assignment_expression "iVar7 = iVar10" identifier = identifier) ;) })) }) (else_clause "else {\n                iVar10 = iVar7 + 1;\n                if (iVar7 == 0xff) {\n                  *(undefined1 *)(iVar6 + 0xff) = 0;\n                  (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                  *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                  iVar10 = 1;\n                  iVar7 = 0;\n                }\n                *(int *)(iVar6 + 0x100) = iVar10;\n                *(undefined1 *)(iVar6 + iVar7) = 0x2e;\n                *(undefined1 *)(iVar6 + 0x104) = 0x2e;\n              }" else (compound_statement "{\n                iVar10 = iVar7 + 1;\n                if (iVar7 == 0xff) {\n                  *(undefined1 *)(iVar6 + 0xff) = 0;\n                  (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                  *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                  iVar10 = 1;\n                  iVar7 = 0;\n                }\n                *(int *)(iVar6 + 0x100) = iVar10;\n                *(undefined1 *)(iVar6 + iVar7) = 0x2e;\n                *(undefined1 *)(iVar6 + 0x104) = 0x2e;\n              }" { (expression_statement "iVar10 = iVar7 + 1;" (assignment_expression "iVar10 = iVar7 + 1" identifier = (binary_expression "iVar7 + 1" identifier + number_literal)) ;) (if_statement "if (iVar7 == 0xff) {\n                  *(undefined1 *)(iVar6 + 0xff) = 0;\n                  (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                  *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                  iVar10 = 1;\n                  iVar7 = 0;\n                }" if (parenthesized_expression "(iVar7 == 0xff)" ( (binary_expression "iVar7 == 0xff" identifier == number_literal) )) (compound_statement "{\n                  *(undefined1 *)(iVar6 + 0xff) = 0;\n                  (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                  *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                  iVar10 = 1;\n                  iVar7 = 0;\n                }" { (expression_statement "*(undefined1 *)(iVar6 + 0xff) = 0;" (assignment_expression "*(undefined1 *)(iVar6 + 0xff) = 0" (pointer_expression "*(undefined1 *)(iVar6 + 0xff)" * (cast_expression "(undefined1 *)(iVar6 + 0xff)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0xff)" ( (binary_expression "iVar6 + 0xff" identifier + number_literal) )))) = number_literal) ;) (expression_statement "(**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));" (call_expression "(**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c))" (parenthesized_expression "(**(code **)(iVar6 + 0x108))" ( (pointer_expression "**(code **)(iVar6 + 0x108)" * (pointer_expression "*(code **)(iVar6 + 0x108)" * (cast_expression "(code **)(iVar6 + 0x108)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar6 + 0x108)" ( (binary_expression "iVar6 + 0x108" identifier + number_literal) ))))) )) (argument_list "(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c))" ( identifier , number_literal , (pointer_expression "*(undefined4 *)(iVar6 + 0x10c)" * (cast_expression "(undefined4 *)(iVar6 + 0x10c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x10c)" ( (binary_expression "iVar6 + 0x10c" identifier + number_literal) )))) ))) ;) (expression_statement "*(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;" (assignment_expression "*(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1" (pointer_expression "*(int *)(iVar6 + 0x128)" * (cast_expression "(int *)(iVar6 + 0x128)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x128)" ( (binary_expression "iVar6 + 0x128" identifier + number_literal) )))) = (binary_expression "*(int *)(iVar6 + 0x128) + 1" (pointer_expression "*(int *)(iVar6 + 0x128)" * (cast_expression "(int *)(iVar6 + 0x128)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x128)" ( (binary_expression "iVar6 + 0x128" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "iVar10 = 1;" (assignment_expression "iVar10 = 1" identifier = number_literal) ;) (expression_statement "iVar7 = 0;" (assignment_expression "iVar7 = 0" identifier = number_literal) ;) })) (expression_statement "*(int *)(iVar6 + 0x100) = iVar10;" (assignment_expression "*(int *)(iVar6 + 0x100) = iVar10" (pointer_expression "*(int *)(iVar6 + 0x100)" * (cast_expression "(int *)(iVar6 + 0x100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x100)" ( (binary_expression "iVar6 + 0x100" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 *)(iVar6 + iVar7) = 0x2e;" (assignment_expression "*(undefined1 *)(iVar6 + iVar7) = 0x2e" (pointer_expression "*(undefined1 *)(iVar6 + iVar7)" * (cast_expression "(undefined1 *)(iVar6 + iVar7)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + iVar7)" ( (binary_expression "iVar6 + iVar7" identifier + identifier) )))) = number_literal) ;) (expression_statement "*(undefined1 *)(iVar6 + 0x104) = 0x2e;" (assignment_expression "*(undefined1 *)(iVar6 + 0x104) = 0x2e" (pointer_expression "*(undefined1 *)(iVar6 + 0x104)" * (cast_expression "(undefined1 *)(iVar6 + 0x104)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x104)" ( (binary_expression "iVar6 + 0x104" identifier + number_literal) )))) = number_literal) ;) }))) (expression_statement "local_44 = *(uint **)(piVar4[1] + 0xc);" (assignment_expression "local_44 = *(uint **)(piVar4[1] + 0xc)" identifier = (pointer_expression "*(uint **)(piVar4[1] + 0xc)" * (cast_expression "(uint **)(piVar4[1] + 0xc)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(piVar4[1] + 0xc)" ( (binary_expression "piVar4[1] + 0xc" (subscript_expression "piVar4[1]" identifier [ number_literal ]) + number_literal) ))))) ;) (expression_statement "uVar8 = *local_44;" (assignment_expression "uVar8 = *local_44" identifier = (pointer_expression "*local_44" * identifier)) ;) (if_statement "if (uVar8 == 0x46) {\n                uVar11 = 0x7b;\n                puVar12 = (undefined1 *)(unaff_EDI + 0xca6bc);\n                iVar7 = *(int *)(iVar6 + 0x100);\n                while( true ) {\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if (puVar12 == (undefined1 *)(unaff_EDI + 0xca6c8)) break;\n                  uVar11 = *puVar12;\n                  puVar12 = puVar12 + 1;\n                  iVar7 = iVar10;\n                }\n                __s = local_35;\n                sprintf(__s,(char *)(unaff_EDI + 0xc8c52),local_44[3] + 1);\n                sVar9 = strlen(__s);\n                iVar7 = *(int *)(iVar6 + 0x100);\n                if (sVar9 != 0) {\n                  pcVar1 = __s + sVar9;\n                  iVar10 = iVar7;\n                  do {\n                    cVar2 = *__s;\n                    if (iVar10 == 0xff) {\n                      *(undefined1 *)(iVar6 + 0xff) = 0;\n                      (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                      *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                      iVar7 = 1;\n                      iVar10 = 0;\n                    }\n                    else {\n                      iVar7 = iVar10 + 1;\n                    }\n                    __s = __s + 1;\n                    *(int *)(iVar6 + 0x100) = iVar7;\n                    *(char *)(iVar6 + iVar10) = cVar2;\n                    *(char *)(iVar6 + 0x104) = cVar2;\n                    iVar10 = iVar7;\n                  } while (pcVar1 != __s);\n                }\n                puVar12 = (undefined1 *)(unaff_EDI + 0xca6c9);\n                uVar11 = 0x7d;\n                do {\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  puVar12 = puVar12 + 1;\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if ((undefined1 *)(unaff_EDI + 0xca6cc) == puVar12) goto LAB_001a03d9;\n                  uVar11 = *puVar12;\n                  iVar7 = iVar10;\n                } while( true );\n              }" if (parenthesized_expression "(uVar8 == 0x46)" ( (binary_expression "uVar8 == 0x46" identifier == number_literal) )) (compound_statement "{\n                uVar11 = 0x7b;\n                puVar12 = (undefined1 *)(unaff_EDI + 0xca6bc);\n                iVar7 = *(int *)(iVar6 + 0x100);\n                while( true ) {\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if (puVar12 == (undefined1 *)(unaff_EDI + 0xca6c8)) break;\n                  uVar11 = *puVar12;\n                  puVar12 = puVar12 + 1;\n                  iVar7 = iVar10;\n                }\n                __s = local_35;\n                sprintf(__s,(char *)(unaff_EDI + 0xc8c52),local_44[3] + 1);\n                sVar9 = strlen(__s);\n                iVar7 = *(int *)(iVar6 + 0x100);\n                if (sVar9 != 0) {\n                  pcVar1 = __s + sVar9;\n                  iVar10 = iVar7;\n                  do {\n                    cVar2 = *__s;\n                    if (iVar10 == 0xff) {\n                      *(undefined1 *)(iVar6 + 0xff) = 0;\n                      (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                      *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                      iVar7 = 1;\n                      iVar10 = 0;\n                    }\n                    else {\n                      iVar7 = iVar10 + 1;\n                    }\n                    __s = __s + 1;\n                    *(int *)(iVar6 + 0x100) = iVar7;\n                    *(char *)(iVar6 + iVar10) = cVar2;\n                    *(char *)(iVar6 + 0x104) = cVar2;\n                    iVar10 = iVar7;\n                  } while (pcVar1 != __s);\n                }\n                puVar12 = (undefined1 *)(unaff_EDI + 0xca6c9);\n                uVar11 = 0x7d;\n                do {\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  puVar12 = puVar12 + 1;\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if ((undefined1 *)(unaff_EDI + 0xca6cc) == puVar12) goto LAB_001a03d9;\n                  uVar11 = *puVar12;\n                  iVar7 = iVar10;\n                } while( true );\n              }" { (expression_statement "uVar11 = 0x7b;" (assignment_expression "uVar11 = 0x7b" identifier = number_literal) ;) (expression_statement "puVar12 = (undefined1 *)(unaff_EDI + 0xca6bc);" (assignment_expression "puVar12 = (undefined1 *)(unaff_EDI + 0xca6bc)" identifier = (cast_expression "(undefined1 *)(unaff_EDI + 0xca6bc)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xca6bc)" ( (binary_expression "unaff_EDI + 0xca6bc" identifier + number_literal) )))) ;) (expression_statement "iVar7 = *(int *)(iVar6 + 0x100);" (assignment_expression "iVar7 = *(int *)(iVar6 + 0x100)" identifier = (pointer_expression "*(int *)(iVar6 + 0x100)" * (cast_expression "(int *)(iVar6 + 0x100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x100)" ( (binary_expression "iVar6 + 0x100" identifier + number_literal) ))))) ;) (while_statement "while( true ) {\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if (puVar12 == (undefined1 *)(unaff_EDI + 0xca6c8)) break;\n                  uVar11 = *puVar12;\n                  puVar12 = puVar12 + 1;\n                  iVar7 = iVar10;\n                }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if (puVar12 == (undefined1 *)(unaff_EDI + 0xca6c8)) break;\n                  uVar11 = *puVar12;\n                  puVar12 = puVar12 + 1;\n                  iVar7 = iVar10;\n                }" { (if_statement "if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }" if (parenthesized_expression "(iVar7 == 0xff)" ( (binary_expression "iVar7 == 0xff" identifier == number_literal) )) (compound_statement "{\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }" { (expression_statement "*(undefined1 *)(iVar6 + 0xff) = 0;" (assignment_expression "*(undefined1 *)(iVar6 + 0xff) = 0" (pointer_expression "*(undefined1 *)(iVar6 + 0xff)" * (cast_expression "(undefined1 *)(iVar6 + 0xff)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0xff)" ( (binary_expression "iVar6 + 0xff" identifier + number_literal) )))) = number_literal) ;) (expression_statement "(**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));" (call_expression "(**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c))" (parenthesized_expression "(**(code **)(iVar6 + 0x108))" ( (pointer_expression "**(code **)(iVar6 + 0x108)" * (pointer_expression "*(code **)(iVar6 + 0x108)" * (cast_expression "(code **)(iVar6 + 0x108)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar6 + 0x108)" ( (binary_expression "iVar6 + 0x108" identifier + number_literal) ))))) )) (argument_list "(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c))" ( identifier , number_literal , (pointer_expression "*(undefined4 *)(iVar6 + 0x10c)" * (cast_expression "(undefined4 *)(iVar6 + 0x10c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x10c)" ( (binary_expression "iVar6 + 0x10c" identifier + number_literal) )))) ))) ;) (expression_statement "*(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;" (assignment_expression "*(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1" (pointer_expression "*(int *)(iVar6 + 0x128)" * (cast_expression "(int *)(iVar6 + 0x128)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x128)" ( (binary_expression "iVar6 + 0x128" identifier + number_literal) )))) = (binary_expression "*(int *)(iVar6 + 0x128) + 1" (pointer_expression "*(int *)(iVar6 + 0x128)" * (cast_expression "(int *)(iVar6 + 0x128)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x128)" ( (binary_expression "iVar6 + 0x128" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "iVar10 = 1;" (assignment_expression "iVar10 = 1" identifier = number_literal) ;) (expression_statement "iVar7 = 0;" (assignment_expression "iVar7 = 0" identifier = number_literal) ;) }) (else_clause "else {\n                    iVar10 = iVar7 + 1;\n                  }" else (compound_statement "{\n                    iVar10 = iVar7 + 1;\n                  }" { (expression_statement "iVar10 = iVar7 + 1;" (assignment_expression "iVar10 = iVar7 + 1" identifier = (binary_expression "iVar7 + 1" identifier + number_literal)) ;) }))) (expression_statement "*(int *)(iVar6 + 0x100) = iVar10;" (assignment_expression "*(int *)(iVar6 + 0x100) = iVar10" (pointer_expression "*(int *)(iVar6 + 0x100)" * (cast_expression "(int *)(iVar6 + 0x100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x100)" ( (binary_expression "iVar6 + 0x100" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 *)(iVar6 + iVar7) = uVar11;" (assignment_expression "*(undefined1 *)(iVar6 + iVar7) = uVar11" (pointer_expression "*(undefined1 *)(iVar6 + iVar7)" * (cast_expression "(undefined1 *)(iVar6 + iVar7)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + iVar7)" ( (binary_expression "iVar6 + iVar7" identifier + identifier) )))) = identifier) ;) (expression_statement "*(undefined1 *)(iVar6 + 0x104) = uVar11;" (assignment_expression "*(undefined1 *)(iVar6 + 0x104) = uVar11" (pointer_expression "*(undefined1 *)(iVar6 + 0x104)" * (cast_expression "(undefined1 *)(iVar6 + 0x104)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x104)" ( (binary_expression "iVar6 + 0x104" identifier + number_literal) )))) = identifier) ;) (if_statement "if (puVar12 == (undefined1 *)(unaff_EDI + 0xca6c8)) break;" if (parenthesized_expression "(puVar12 == (undefined1 *)(unaff_EDI + 0xca6c8))" ( (binary_expression "puVar12 == (undefined1 *)(unaff_EDI + 0xca6c8)" identifier == (cast_expression "(undefined1 *)(unaff_EDI + 0xca6c8)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xca6c8)" ( (binary_expression "unaff_EDI + 0xca6c8" identifier + number_literal) )))) )) (break_statement "break;" break ;)) (expression_statement "uVar11 = *puVar12;" (assignment_expression "uVar11 = *puVar12" identifier = (pointer_expression "*puVar12" * identifier)) ;) (expression_statement "puVar12 = puVar12 + 1;" (assignment_expression "puVar12 = puVar12 + 1" identifier = (binary_expression "puVar12 + 1" identifier + number_literal)) ;) (expression_statement "iVar7 = iVar10;" (assignment_expression "iVar7 = iVar10" identifier = identifier) ;) })) (expression_statement "__s = local_35;" (assignment_expression "__s = local_35" identifier = identifier) ;) (expression_statement "sprintf(__s,(char *)(unaff_EDI + 0xc8c52),local_44[3] + 1);" (call_expression "sprintf(__s,(char *)(unaff_EDI + 0xc8c52),local_44[3] + 1)" identifier (argument_list "(__s,(char *)(unaff_EDI + 0xc8c52),local_44[3] + 1)" ( identifier , (cast_expression "(char *)(unaff_EDI + 0xc8c52)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xc8c52)" ( (binary_expression "unaff_EDI + 0xc8c52" identifier + number_literal) ))) , (binary_expression "local_44[3] + 1" (subscript_expression "local_44[3]" identifier [ number_literal ]) + number_literal) ))) ;) (expression_statement "sVar9 = strlen(__s);" (assignment_expression "sVar9 = strlen(__s)" identifier = (call_expression "strlen(__s)" identifier (argument_list "(__s)" ( identifier )))) ;) (expression_statement "iVar7 = *(int *)(iVar6 + 0x100);" (assignment_expression "iVar7 = *(int *)(iVar6 + 0x100)" identifier = (pointer_expression "*(int *)(iVar6 + 0x100)" * (cast_expression "(int *)(iVar6 + 0x100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x100)" ( (binary_expression "iVar6 + 0x100" identifier + number_literal) ))))) ;) (if_statement "if (sVar9 != 0) {\n                  pcVar1 = __s + sVar9;\n                  iVar10 = iVar7;\n                  do {\n                    cVar2 = *__s;\n                    if (iVar10 == 0xff) {\n                      *(undefined1 *)(iVar6 + 0xff) = 0;\n                      (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                      *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                      iVar7 = 1;\n                      iVar10 = 0;\n                    }\n                    else {\n                      iVar7 = iVar10 + 1;\n                    }\n                    __s = __s + 1;\n                    *(int *)(iVar6 + 0x100) = iVar7;\n                    *(char *)(iVar6 + iVar10) = cVar2;\n                    *(char *)(iVar6 + 0x104) = cVar2;\n                    iVar10 = iVar7;\n                  } while (pcVar1 != __s);\n                }" if (parenthesized_expression "(sVar9 != 0)" ( (binary_expression "sVar9 != 0" identifier != number_literal) )) (compound_statement "{\n                  pcVar1 = __s + sVar9;\n                  iVar10 = iVar7;\n                  do {\n                    cVar2 = *__s;\n                    if (iVar10 == 0xff) {\n                      *(undefined1 *)(iVar6 + 0xff) = 0;\n                      (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                      *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                      iVar7 = 1;\n                      iVar10 = 0;\n                    }\n                    else {\n                      iVar7 = iVar10 + 1;\n                    }\n                    __s = __s + 1;\n                    *(int *)(iVar6 + 0x100) = iVar7;\n                    *(char *)(iVar6 + iVar10) = cVar2;\n                    *(char *)(iVar6 + 0x104) = cVar2;\n                    iVar10 = iVar7;\n                  } while (pcVar1 != __s);\n                }" { (expression_statement "pcVar1 = __s + sVar9;" (assignment_expression "pcVar1 = __s + sVar9" identifier = (binary_expression "__s + sVar9" identifier + identifier)) ;) (expression_statement "iVar10 = iVar7;" (assignment_expression "iVar10 = iVar7" identifier = identifier) ;) (do_statement "do {\n                    cVar2 = *__s;\n                    if (iVar10 == 0xff) {\n                      *(undefined1 *)(iVar6 + 0xff) = 0;\n                      (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                      *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                      iVar7 = 1;\n                      iVar10 = 0;\n                    }\n                    else {\n                      iVar7 = iVar10 + 1;\n                    }\n                    __s = __s + 1;\n                    *(int *)(iVar6 + 0x100) = iVar7;\n                    *(char *)(iVar6 + iVar10) = cVar2;\n                    *(char *)(iVar6 + 0x104) = cVar2;\n                    iVar10 = iVar7;\n                  } while (pcVar1 != __s);" do (compound_statement "{\n                    cVar2 = *__s;\n                    if (iVar10 == 0xff) {\n                      *(undefined1 *)(iVar6 + 0xff) = 0;\n                      (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                      *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                      iVar7 = 1;\n                      iVar10 = 0;\n                    }\n                    else {\n                      iVar7 = iVar10 + 1;\n                    }\n                    __s = __s + 1;\n                    *(int *)(iVar6 + 0x100) = iVar7;\n                    *(char *)(iVar6 + iVar10) = cVar2;\n                    *(char *)(iVar6 + 0x104) = cVar2;\n                    iVar10 = iVar7;\n                  }" { (expression_statement "cVar2 = *__s;" (assignment_expression "cVar2 = *__s" identifier = (pointer_expression "*__s" * identifier)) ;) (if_statement "if (iVar10 == 0xff) {\n                      *(undefined1 *)(iVar6 + 0xff) = 0;\n                      (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                      *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                      iVar7 = 1;\n                      iVar10 = 0;\n                    }\n                    else {\n                      iVar7 = iVar10 + 1;\n                    }" if (parenthesized_expression "(iVar10 == 0xff)" ( (binary_expression "iVar10 == 0xff" identifier == number_literal) )) (compound_statement "{\n                      *(undefined1 *)(iVar6 + 0xff) = 0;\n                      (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                      *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                      iVar7 = 1;\n                      iVar10 = 0;\n                    }" { (expression_statement "*(undefined1 *)(iVar6 + 0xff) = 0;" (assignment_expression "*(undefined1 *)(iVar6 + 0xff) = 0" (pointer_expression "*(undefined1 *)(iVar6 + 0xff)" * (cast_expression "(undefined1 *)(iVar6 + 0xff)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0xff)" ( (binary_expression "iVar6 + 0xff" identifier + number_literal) )))) = number_literal) ;) (expression_statement "(**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));" (call_expression "(**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c))" (parenthesized_expression "(**(code **)(iVar6 + 0x108))" ( (pointer_expression "**(code **)(iVar6 + 0x108)" * (pointer_expression "*(code **)(iVar6 + 0x108)" * (cast_expression "(code **)(iVar6 + 0x108)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar6 + 0x108)" ( (binary_expression "iVar6 + 0x108" identifier + number_literal) ))))) )) (argument_list "(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c))" ( identifier , number_literal , (pointer_expression "*(undefined4 *)(iVar6 + 0x10c)" * (cast_expression "(undefined4 *)(iVar6 + 0x10c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x10c)" ( (binary_expression "iVar6 + 0x10c" identifier + number_literal) )))) ))) ;) (expression_statement "*(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;" (assignment_expression "*(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1" (pointer_expression "*(int *)(iVar6 + 0x128)" * (cast_expression "(int *)(iVar6 + 0x128)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x128)" ( (binary_expression "iVar6 + 0x128" identifier + number_literal) )))) = (binary_expression "*(int *)(iVar6 + 0x128) + 1" (pointer_expression "*(int *)(iVar6 + 0x128)" * (cast_expression "(int *)(iVar6 + 0x128)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x128)" ( (binary_expression "iVar6 + 0x128" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "iVar7 = 1;" (assignment_expression "iVar7 = 1" identifier = number_literal) ;) (expression_statement "iVar10 = 0;" (assignment_expression "iVar10 = 0" identifier = number_literal) ;) }) (else_clause "else {\n                      iVar7 = iVar10 + 1;\n                    }" else (compound_statement "{\n                      iVar7 = iVar10 + 1;\n                    }" { (expression_statement "iVar7 = iVar10 + 1;" (assignment_expression "iVar7 = iVar10 + 1" identifier = (binary_expression "iVar10 + 1" identifier + number_literal)) ;) }))) (expression_statement "__s = __s + 1;" (assignment_expression "__s = __s + 1" identifier = (binary_expression "__s + 1" identifier + number_literal)) ;) (expression_statement "*(int *)(iVar6 + 0x100) = iVar7;" (assignment_expression "*(int *)(iVar6 + 0x100) = iVar7" (pointer_expression "*(int *)(iVar6 + 0x100)" * (cast_expression "(int *)(iVar6 + 0x100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x100)" ( (binary_expression "iVar6 + 0x100" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(char *)(iVar6 + iVar10) = cVar2;" (assignment_expression "*(char *)(iVar6 + iVar10) = cVar2" (pointer_expression "*(char *)(iVar6 + iVar10)" * (cast_expression "(char *)(iVar6 + iVar10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + iVar10)" ( (binary_expression "iVar6 + iVar10" identifier + identifier) )))) = identifier) ;) (expression_statement "*(char *)(iVar6 + 0x104) = cVar2;" (assignment_expression "*(char *)(iVar6 + 0x104) = cVar2" (pointer_expression "*(char *)(iVar6 + 0x104)" * (cast_expression "(char *)(iVar6 + 0x104)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x104)" ( (binary_expression "iVar6 + 0x104" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar10 = iVar7;" (assignment_expression "iVar10 = iVar7" identifier = identifier) ;) }) while (parenthesized_expression "(pcVar1 != __s)" ( (binary_expression "pcVar1 != __s" identifier != identifier) )) ;) })) (expression_statement "puVar12 = (undefined1 *)(unaff_EDI + 0xca6c9);" (assignment_expression "puVar12 = (undefined1 *)(unaff_EDI + 0xca6c9)" identifier = (cast_expression "(undefined1 *)(unaff_EDI + 0xca6c9)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xca6c9)" ( (binary_expression "unaff_EDI + 0xca6c9" identifier + number_literal) )))) ;) (expression_statement "uVar11 = 0x7d;" (assignment_expression "uVar11 = 0x7d" identifier = number_literal) ;) (do_statement "do {\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  puVar12 = puVar12 + 1;\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if ((undefined1 *)(unaff_EDI + 0xca6cc) == puVar12) goto LAB_001a03d9;\n                  uVar11 = *puVar12;\n                  iVar7 = iVar10;\n                } while( true );" do (compound_statement "{\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  puVar12 = puVar12 + 1;\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if ((undefined1 *)(unaff_EDI + 0xca6cc) == puVar12) goto LAB_001a03d9;\n                  uVar11 = *puVar12;\n                  iVar7 = iVar10;\n                }" { (if_statement "if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }" if (parenthesized_expression "(iVar7 == 0xff)" ( (binary_expression "iVar7 == 0xff" identifier == number_literal) )) (compound_statement "{\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }" { (expression_statement "*(undefined1 *)(iVar6 + 0xff) = 0;" (assignment_expression "*(undefined1 *)(iVar6 + 0xff) = 0" (pointer_expression "*(undefined1 *)(iVar6 + 0xff)" * (cast_expression "(undefined1 *)(iVar6 + 0xff)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0xff)" ( (binary_expression "iVar6 + 0xff" identifier + number_literal) )))) = number_literal) ;) (expression_statement "(**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));" (call_expression "(**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c))" (parenthesized_expression "(**(code **)(iVar6 + 0x108))" ( (pointer_expression "**(code **)(iVar6 + 0x108)" * (pointer_expression "*(code **)(iVar6 + 0x108)" * (cast_expression "(code **)(iVar6 + 0x108)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar6 + 0x108)" ( (binary_expression "iVar6 + 0x108" identifier + number_literal) ))))) )) (argument_list "(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c))" ( identifier , number_literal , (pointer_expression "*(undefined4 *)(iVar6 + 0x10c)" * (cast_expression "(undefined4 *)(iVar6 + 0x10c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x10c)" ( (binary_expression "iVar6 + 0x10c" identifier + number_literal) )))) ))) ;) (expression_statement "*(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;" (assignment_expression "*(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1" (pointer_expression "*(int *)(iVar6 + 0x128)" * (cast_expression "(int *)(iVar6 + 0x128)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x128)" ( (binary_expression "iVar6 + 0x128" identifier + number_literal) )))) = (binary_expression "*(int *)(iVar6 + 0x128) + 1" (pointer_expression "*(int *)(iVar6 + 0x128)" * (cast_expression "(int *)(iVar6 + 0x128)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x128)" ( (binary_expression "iVar6 + 0x128" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "iVar10 = 1;" (assignment_expression "iVar10 = 1" identifier = number_literal) ;) (expression_statement "iVar7 = 0;" (assignment_expression "iVar7 = 0" identifier = number_literal) ;) }) (else_clause "else {\n                    iVar10 = iVar7 + 1;\n                  }" else (compound_statement "{\n                    iVar10 = iVar7 + 1;\n                  }" { (expression_statement "iVar10 = iVar7 + 1;" (assignment_expression "iVar10 = iVar7 + 1" identifier = (binary_expression "iVar7 + 1" identifier + number_literal)) ;) }))) (expression_statement "puVar12 = puVar12 + 1;" (assignment_expression "puVar12 = puVar12 + 1" identifier = (binary_expression "puVar12 + 1" identifier + number_literal)) ;) (expression_statement "*(int *)(iVar6 + 0x100) = iVar10;" (assignment_expression "*(int *)(iVar6 + 0x100) = iVar10" (pointer_expression "*(int *)(iVar6 + 0x100)" * (cast_expression "(int *)(iVar6 + 0x100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x100)" ( (binary_expression "iVar6 + 0x100" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 *)(iVar6 + iVar7) = uVar11;" (assignment_expression "*(undefined1 *)(iVar6 + iVar7) = uVar11" (pointer_expression "*(undefined1 *)(iVar6 + iVar7)" * (cast_expression "(undefined1 *)(iVar6 + iVar7)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + iVar7)" ( (binary_expression "iVar6 + iVar7" identifier + identifier) )))) = identifier) ;) (expression_statement "*(undefined1 *)(iVar6 + 0x104) = uVar11;" (assignment_expression "*(undefined1 *)(iVar6 + 0x104) = uVar11" (pointer_expression "*(undefined1 *)(iVar6 + 0x104)" * (cast_expression "(undefined1 *)(iVar6 + 0x104)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x104)" ( (binary_expression "iVar6 + 0x104" identifier + number_literal) )))) = identifier) ;) (if_statement "if ((undefined1 *)(unaff_EDI + 0xca6cc) == puVar12) goto LAB_001a03d9;" if (parenthesized_expression "((undefined1 *)(unaff_EDI + 0xca6cc) == puVar12)" ( (binary_expression "(undefined1 *)(unaff_EDI + 0xca6cc) == puVar12" (cast_expression "(undefined1 *)(unaff_EDI + 0xca6cc)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xca6cc)" ( (binary_expression "unaff_EDI + 0xca6cc" identifier + number_literal) ))) == identifier) )) (goto_statement "goto LAB_001a03d9;" goto statement_identifier ;)) (expression_statement "uVar11 = *puVar12;" (assignment_expression "uVar11 = *puVar12" identifier = (pointer_expression "*puVar12" * identifier)) ;) (expression_statement "iVar7 = iVar10;" (assignment_expression "iVar7 = iVar10" identifier = identifier) ;) }) while (parenthesized_expression "( true )" ( true )) ;) })) (do_statement "do {\n                if (uVar8 != 0x4c) {\n                  if (uVar8 < 0x4d) {\n                    if (4 < uVar8 - 0x1c) {\nLAB_001a036d:\n                      FUN_0019a610();\n                      *(undefined4 *)(iVar6 + 0x110) = uVar3;\n                      return;\n                    }\n                  }\n                  else if (1 < uVar8 - 0x4e) goto LAB_001a036d;\n                }\nLAB_001a03d9:\n                local_44 = (uint *)local_44[2];\n                uVar8 = *local_44;\n              } while( true );" do (compound_statement "{\n                if (uVar8 != 0x4c) {\n                  if (uVar8 < 0x4d) {\n                    if (4 < uVar8 - 0x1c) {\nLAB_001a036d:\n                      FUN_0019a610();\n                      *(undefined4 *)(iVar6 + 0x110) = uVar3;\n                      return;\n                    }\n                  }\n                  else if (1 < uVar8 - 0x4e) goto LAB_001a036d;\n                }\nLAB_001a03d9:\n                local_44 = (uint *)local_44[2];\n                uVar8 = *local_44;\n              }" { (if_statement "if (uVar8 != 0x4c) {\n                  if (uVar8 < 0x4d) {\n                    if (4 < uVar8 - 0x1c) {\nLAB_001a036d:\n                      FUN_0019a610();\n                      *(undefined4 *)(iVar6 + 0x110) = uVar3;\n                      return;\n                    }\n                  }\n                  else if (1 < uVar8 - 0x4e) goto LAB_001a036d;\n                }" if (parenthesized_expression "(uVar8 != 0x4c)" ( (binary_expression "uVar8 != 0x4c" identifier != number_literal) )) (compound_statement "{\n                  if (uVar8 < 0x4d) {\n                    if (4 < uVar8 - 0x1c) {\nLAB_001a036d:\n                      FUN_0019a610();\n                      *(undefined4 *)(iVar6 + 0x110) = uVar3;\n                      return;\n                    }\n                  }\n                  else if (1 < uVar8 - 0x4e) goto LAB_001a036d;\n                }" { (if_statement "if (uVar8 < 0x4d) {\n                    if (4 < uVar8 - 0x1c) {\nLAB_001a036d:\n                      FUN_0019a610();\n                      *(undefined4 *)(iVar6 + 0x110) = uVar3;\n                      return;\n                    }\n                  }\n                  else if (1 < uVar8 - 0x4e) goto LAB_001a036d;" if (parenthesized_expression "(uVar8 < 0x4d)" ( (binary_expression "uVar8 < 0x4d" identifier < number_literal) )) (compound_statement "{\n                    if (4 < uVar8 - 0x1c) {\nLAB_001a036d:\n                      FUN_0019a610();\n                      *(undefined4 *)(iVar6 + 0x110) = uVar3;\n                      return;\n                    }\n                  }" { (if_statement "if (4 < uVar8 - 0x1c) {\nLAB_001a036d:\n                      FUN_0019a610();\n                      *(undefined4 *)(iVar6 + 0x110) = uVar3;\n                      return;\n                    }" if (parenthesized_expression "(4 < uVar8 - 0x1c)" ( (binary_expression "4 < uVar8 - 0x1c" number_literal < (binary_expression "uVar8 - 0x1c" identifier - number_literal)) )) (compound_statement "{\nLAB_001a036d:\n                      FUN_0019a610();\n                      *(undefined4 *)(iVar6 + 0x110) = uVar3;\n                      return;\n                    }" { (labeled_statement "LAB_001a036d:\n                      FUN_0019a610();" statement_identifier : (expression_statement "FUN_0019a610();" (call_expression "FUN_0019a610()" identifier (argument_list "()" ( ))) ;)) (expression_statement "*(undefined4 *)(iVar6 + 0x110) = uVar3;" (assignment_expression "*(undefined4 *)(iVar6 + 0x110) = uVar3" (pointer_expression "*(undefined4 *)(iVar6 + 0x110)" * (cast_expression "(undefined4 *)(iVar6 + 0x110)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x110)" ( (binary_expression "iVar6 + 0x110" identifier + number_literal) )))) = identifier) ;) (return_statement "return;" return ;) })) }) (else_clause "else if (1 < uVar8 - 0x4e) goto LAB_001a036d;" else (if_statement "if (1 < uVar8 - 0x4e) goto LAB_001a036d;" if (parenthesized_expression "(1 < uVar8 - 0x4e)" ( (binary_expression "1 < uVar8 - 0x4e" number_literal < (binary_expression "uVar8 - 0x4e" identifier - number_literal)) )) (goto_statement "goto LAB_001a036d;" goto statement_identifier ;)))) })) (labeled_statement "LAB_001a03d9:\n                local_44 = (uint *)local_44[2];" statement_identifier : (expression_statement "local_44 = (uint *)local_44[2];" (assignment_expression "local_44 = (uint *)local_44[2]" identifier = (cast_expression "(uint *)local_44[2]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_44[2]" identifier [ number_literal ]))) ;)) (expression_statement "uVar8 = *local_44;" (assignment_expression "uVar8 = *local_44" identifier = (pointer_expression "*local_44" * identifier)) ;) }) while (parenthesized_expression "( true )" ( true )) ;) })) (expression_statement "FUN_0019f570();" (call_expression "FUN_0019f570()" identifier (argument_list "()" ( ))) ;) (expression_statement "*(undefined4 *)(iVar6 + 0x110) = uVar3;" (assignment_expression "*(undefined4 *)(iVar6 + 0x110) = uVar3" (pointer_expression "*(undefined4 *)(iVar6 + 0x110)" * (cast_expression "(undefined4 *)(iVar6 + 0x110)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x110)" ( (binary_expression "iVar6 + 0x110" identifier + number_literal) )))) = identifier) ;) })))) })) })) (expression_statement "piVar4 = (int *)*piVar4;" (assignment_expression "piVar4 = (int *)*piVar4" identifier = (cast_expression "(int *)*piVar4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar4" * identifier))) ;) (if_statement "if (piVar4 == (int *)0x0) {\n        return;\n      }" if (parenthesized_expression "(piVar4 == (int *)0x0)" ( (binary_expression "piVar4 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        return;\n      }" { (return_statement "return;" return ;) })) (expression_statement "iVar7 = *(int *)(iVar6 + 0x118);" (assignment_expression "iVar7 = *(int *)(iVar6 + 0x118)" identifier = (pointer_expression "*(int *)(iVar6 + 0x118)" * (cast_expression "(int *)(iVar6 + 0x118)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x118)" ( (binary_expression "iVar6 + 0x118" identifier + number_literal) ))))) ;) })) })) (return_statement "return;" return ;) })))
(translation_unit "void d_print_mod_list(d_print_info *dpi,int options,d_print_mod *mods,int suffix)\n\n{\n  int iVar1;\n  int *piVar2;\n  uint *puVar3;\n  uint uVar4;\n  d_print_mod *pdVar5;\n  d_print_info *dpi_00;\n  size_t sVar6;\n  demangle_component_type dVar7;\n  size_t sVar8;\n  int *extraout_ECX;\n  size_t sVar9;\n  char cVar10;\n  char *pcVar11;\n  char *pcVar12;\n  int unaff_EDI;\n  int options_00;\n  d_print_template *pdVar13;\n  undefined8 uVar14;\n  d_print_info *dpi_01;\n  demangle_component *in_stack_ffffffbc;\n  demangle_component *dc;\n  char buf [25];\n  \n  uVar14 = __x86_get_pc_thunk_di();\n  dpi_01 = (d_print_info *)((ulonglong)uVar14 >> 0x20);\n  dpi_00 = (d_print_info *)uVar14;\n  options_00 = unaff_EDI + 0x19ede9;\n  if (extraout_ECX != (int *)0x0) {\n    iVar1 = dpi_00->demangle_failure;\n    piVar2 = extraout_ECX;\n    while (iVar1 == 0) {\n      if (piVar2[2] == 0) {\n        puVar3 = (uint *)piVar2[1];\n        uVar4 = *puVar3;\n        if (dpi != (d_print_info *)0x0) goto LAB_001a0258;\n        if (uVar4 != 0x4c) {\n          if (uVar4 < 0x4d) {\n            if (4 < uVar4 - 0x1c) goto LAB_001a0258;\n          }\n          else if (1 < uVar4 - 0x4e) {\nLAB_001a0258:\n            pdVar13 = dpi_00->templates;\n            piVar2[2] = 1;\n            dpi_00->templates = (d_print_template *)piVar2[3];\n            if (uVar4 == 0x29) {\n              d_print_function_type\n                        (dpi_00,(int)dpi_01,(demangle_component *)(puVar3 + 3),\n                         (d_print_mod *)*piVar2);\n              dpi_00->templates = pdVar13;\n              return;\n            }\n            if (uVar4 == 0x2a) {\n              d_print_array_type(dpi_00,(int)dpi_01,(demangle_component *)(puVar3 + 2),\n                                 (d_print_mod *)*piVar2);\n              dpi_00->templates = pdVar13;\n              return;\n            }\n            if (uVar4 == 2) {\n              pdVar5 = dpi_00->modifiers;\n              dpi_00->modifiers = (d_print_mod *)0x0;\n              d_print_comp(dpi_01,options_00,in_stack_ffffffbc);\n              dpi_00->modifiers = pdVar5;\n              sVar6 = dpi_00->len;\n              if (((uint)dpi_01 & 4) == 0) {\n                pcVar12 = (char *)(options_00 + -0xd471f);\n                pcVar11 = (char *)(options_00 + -0xd471d);\n                cVar10 = ':';\n                while( true ) {\n                  if (sVar6 == 0xff) {\n                    dpi_00->buf[0xff] = '\0';\n                    (*dpi_00->callback)(dpi_00->buf,0xff,dpi_00->opaque);\n                    dpi_00->flush_count = dpi_00->flush_count + 1;\n                    sVar9 = 1;\n                    sVar6 = 0;\n                  }\n                  else {\n                    sVar9 = sVar6 + 1;\n                  }\n                  pcVar12 = pcVar12 + 1;\n                  dpi_00->len = sVar9;\n                  dpi_00->buf[sVar6] = cVar10;\n                  dpi_00->last_char = cVar10;\n                  if (pcVar12 == pcVar11) break;\n                  cVar10 = *pcVar12;\n                  sVar6 = sVar9;\n                }\n              }\n              else {\n                sVar9 = sVar6 + 1;\n                if (sVar6 == 0xff) {\n                  dpi_00->buf[0xff] = '\0';\n                  (*dpi_00->callback)(dpi_00->buf,0xff,dpi_00->opaque);\n                  dpi_00->flush_count = dpi_00->flush_count + 1;\n                  sVar9 = 1;\n                  sVar6 = 0;\n                }\n                dpi_00->len = sVar9;\n                dpi_00->buf[sVar6] = '.';\n                dpi_00->last_char = '.';\n              }\n              dc = *(demangle_component **)(piVar2[1] + 0xc);\n              dVar7 = dc->type;\n              if (dVar7 == DEMANGLE_COMPONENT_DEFAULT_ARG) {\n                cVar10 = '{';\n                pcVar11 = (char *)(options_00 + -0xd472d);\n                pcVar12 = (char *)(options_00 + -0xd4721);\n                sVar6 = dpi_00->len;\n                while( true ) {\n                  if (sVar6 == 0xff) {\n                    dpi_00->buf[0xff] = '\0';\n                    (*dpi_00->callback)(dpi_00->buf,0xff,dpi_00->opaque);\n                    dpi_00->flush_count = dpi_00->flush_count + 1;\n                    sVar9 = 1;\n                    sVar6 = 0;\n                  }\n                  else {\n                    sVar9 = sVar6 + 1;\n                  }\n                  dpi_00->len = sVar9;\n                  dpi_00->buf[sVar6] = cVar10;\n                  dpi_00->last_char = cVar10;\n                  if (pcVar11 == pcVar12) break;\n                  cVar10 = *pcVar11;\n                  pcVar11 = pcVar11 + 1;\n                  sVar6 = sVar9;\n                }\n                pcVar11 = buf;\n                sprintf(pcVar11,(char *)(options_00 + -0xd6197),\n                        (byte *)((int)&((dc->u).s_extended_operator.name)->type + 1));\n                sVar8 = strlen(pcVar11);\n                sVar6 = dpi_00->len;\n                if (sVar8 != 0) {\n                  pcVar12 = pcVar11 + sVar8;\n                  sVar9 = sVar6;\n                  do {\n                    cVar10 = *pcVar11;\n                    if (sVar9 == 0xff) {\n                      dpi_00->buf[0xff] = '\0';\n                      (*dpi_00->callback)(dpi_00->buf,0xff,dpi_00->opaque);\n                      dpi_00->flush_count = dpi_00->flush_count + 1;\n                      sVar6 = 1;\n                      sVar9 = 0;\n                    }\n                    else {\n                      sVar6 = sVar9 + 1;\n                    }\n                    pcVar11 = pcVar11 + 1;\n                    dpi_00->len = sVar6;\n                    dpi_00->buf[sVar9] = cVar10;\n                    dpi_00->last_char = cVar10;\n                    sVar9 = sVar6;\n                  } while (pcVar12 != pcVar11);\n                }\n                pcVar12 = (char *)(options_00 + -0xd4720);\n                cVar10 = '}';\n                pcVar11 = (char *)(options_00 + -0xd471d);\n                do {\n                  if (sVar6 == 0xff) {\n                    options_00 = CONCAT31((int3)((uint)options_00 >> 8),cVar10);\n                    dpi_00->buf[0xff] = '\0';\n                    (*dpi_00->callback)(dpi_00->buf,0xff,dpi_00->opaque);\n                    dpi_00->flush_count = dpi_00->flush_count + 1;\n                    sVar9 = 1;\n                    sVar6 = 0;\n                    cVar10 = (char)options_00;\n                  }\n                  else {\n                    sVar9 = sVar6 + 1;\n                  }\n                  pcVar12 = pcVar12 + 1;\n                  dpi_00->len = sVar9;\n                  dpi_00->buf[sVar6] = cVar10;\n                  dpi_00->last_char = cVar10;\n                  if (pcVar11 == pcVar12) goto LAB_001a03d9;\n                  cVar10 = *pcVar12;\n                  sVar6 = sVar9;\n                } while( true );\n              }\n              do {\n                if (dVar7 != DEMANGLE_COMPONENT_TRANSACTION_SAFE) {\n                  if (dVar7 < DEMANGLE_COMPONENT_CLONE) {\n                    if (4 < dVar7 - DEMANGLE_COMPONENT_RESTRICT_THIS) {\nLAB_001a036d:\n                      d_print_comp(dpi_01,options_00,dc);\n                      dpi_00->templates = pdVar13;\n                      return;\n                    }\n                  }\n                  else if (1 < dVar7 - DEMANGLE_COMPONENT_NOEXCEPT) goto LAB_001a036d;\n                }\nLAB_001a03d9:\n                dc = (dc->u).s_fixed.length;\n                dVar7 = dc->type;\n              } while( true );\n            }\n            d_print_mod(dpi_01,options_00,in_stack_ffffffbc);\n            dpi_00->templates = pdVar13;\n          }\n        }\n      }\n      piVar2 = (int *)*piVar2;\n      if (piVar2 == (int *)0x0) {\n        return;\n      }\n      iVar1 = dpi_00->demangle_failure;\n    }\n  }\n  return;\n}\n\n" (function_definition "void d_print_mod_list(d_print_info *dpi,int options,d_print_mod *mods,int suffix)\n\n{\n  int iVar1;\n  int *piVar2;\n  uint *puVar3;\n  uint uVar4;\n  d_print_mod *pdVar5;\n  d_print_info *dpi_00;\n  size_t sVar6;\n  demangle_component_type dVar7;\n  size_t sVar8;\n  int *extraout_ECX;\n  size_t sVar9;\n  char cVar10;\n  char *pcVar11;\n  char *pcVar12;\n  int unaff_EDI;\n  int options_00;\n  d_print_template *pdVar13;\n  undefined8 uVar14;\n  d_print_info *dpi_01;\n  demangle_component *in_stack_ffffffbc;\n  demangle_component *dc;\n  char buf [25];\n  \n  uVar14 = __x86_get_pc_thunk_di();\n  dpi_01 = (d_print_info *)((ulonglong)uVar14 >> 0x20);\n  dpi_00 = (d_print_info *)uVar14;\n  options_00 = unaff_EDI + 0x19ede9;\n  if (extraout_ECX != (int *)0x0) {\n    iVar1 = dpi_00->demangle_failure;\n    piVar2 = extraout_ECX;\n    while (iVar1 == 0) {\n      if (piVar2[2] == 0) {\n        puVar3 = (uint *)piVar2[1];\n        uVar4 = *puVar3;\n        if (dpi != (d_print_info *)0x0) goto LAB_001a0258;\n        if (uVar4 != 0x4c) {\n          if (uVar4 < 0x4d) {\n            if (4 < uVar4 - 0x1c) goto LAB_001a0258;\n          }\n          else if (1 < uVar4 - 0x4e) {\nLAB_001a0258:\n            pdVar13 = dpi_00->templates;\n            piVar2[2] = 1;\n            dpi_00->templates = (d_print_template *)piVar2[3];\n            if (uVar4 == 0x29) {\n              d_print_function_type\n                        (dpi_00,(int)dpi_01,(demangle_component *)(puVar3 + 3),\n                         (d_print_mod *)*piVar2);\n              dpi_00->templates = pdVar13;\n              return;\n            }\n            if (uVar4 == 0x2a) {\n              d_print_array_type(dpi_00,(int)dpi_01,(demangle_component *)(puVar3 + 2),\n                                 (d_print_mod *)*piVar2);\n              dpi_00->templates = pdVar13;\n              return;\n            }\n            if (uVar4 == 2) {\n              pdVar5 = dpi_00->modifiers;\n              dpi_00->modifiers = (d_print_mod *)0x0;\n              d_print_comp(dpi_01,options_00,in_stack_ffffffbc);\n              dpi_00->modifiers = pdVar5;\n              sVar6 = dpi_00->len;\n              if (((uint)dpi_01 & 4) == 0) {\n                pcVar12 = (char *)(options_00 + -0xd471f);\n                pcVar11 = (char *)(options_00 + -0xd471d);\n                cVar10 = ':';\n                while( true ) {\n                  if (sVar6 == 0xff) {\n                    dpi_00->buf[0xff] = '\0';\n                    (*dpi_00->callback)(dpi_00->buf,0xff,dpi_00->opaque);\n                    dpi_00->flush_count = dpi_00->flush_count + 1;\n                    sVar9 = 1;\n                    sVar6 = 0;\n                  }\n                  else {\n                    sVar9 = sVar6 + 1;\n                  }\n                  pcVar12 = pcVar12 + 1;\n                  dpi_00->len = sVar9;\n                  dpi_00->buf[sVar6] = cVar10;\n                  dpi_00->last_char = cVar10;\n                  if (pcVar12 == pcVar11) break;\n                  cVar10 = *pcVar12;\n                  sVar6 = sVar9;\n                }\n              }\n              else {\n                sVar9 = sVar6 + 1;\n                if (sVar6 == 0xff) {\n                  dpi_00->buf[0xff] = '\0';\n                  (*dpi_00->callback)(dpi_00->buf,0xff,dpi_00->opaque);\n                  dpi_00->flush_count = dpi_00->flush_count + 1;\n                  sVar9 = 1;\n                  sVar6 = 0;\n                }\n                dpi_00->len = sVar9;\n                dpi_00->buf[sVar6] = '.';\n                dpi_00->last_char = '.';\n              }\n              dc = *(demangle_component **)(piVar2[1] + 0xc);\n              dVar7 = dc->type;\n              if (dVar7 == DEMANGLE_COMPONENT_DEFAULT_ARG) {\n                cVar10 = '{';\n                pcVar11 = (char *)(options_00 + -0xd472d);\n                pcVar12 = (char *)(options_00 + -0xd4721);\n                sVar6 = dpi_00->len;\n                while( true ) {\n                  if (sVar6 == 0xff) {\n                    dpi_00->buf[0xff] = '\0';\n                    (*dpi_00->callback)(dpi_00->buf,0xff,dpi_00->opaque);\n                    dpi_00->flush_count = dpi_00->flush_count + 1;\n                    sVar9 = 1;\n                    sVar6 = 0;\n                  }\n                  else {\n                    sVar9 = sVar6 + 1;\n                  }\n                  dpi_00->len = sVar9;\n                  dpi_00->buf[sVar6] = cVar10;\n                  dpi_00->last_char = cVar10;\n                  if (pcVar11 == pcVar12) break;\n                  cVar10 = *pcVar11;\n                  pcVar11 = pcVar11 + 1;\n                  sVar6 = sVar9;\n                }\n                pcVar11 = buf;\n                sprintf(pcVar11,(char *)(options_00 + -0xd6197),\n                        (byte *)((int)&((dc->u).s_extended_operator.name)->type + 1));\n                sVar8 = strlen(pcVar11);\n                sVar6 = dpi_00->len;\n                if (sVar8 != 0) {\n                  pcVar12 = pcVar11 + sVar8;\n                  sVar9 = sVar6;\n                  do {\n                    cVar10 = *pcVar11;\n                    if (sVar9 == 0xff) {\n                      dpi_00->buf[0xff] = '\0';\n                      (*dpi_00->callback)(dpi_00->buf,0xff,dpi_00->opaque);\n                      dpi_00->flush_count = dpi_00->flush_count + 1;\n                      sVar6 = 1;\n                      sVar9 = 0;\n                    }\n                    else {\n                      sVar6 = sVar9 + 1;\n                    }\n                    pcVar11 = pcVar11 + 1;\n                    dpi_00->len = sVar6;\n                    dpi_00->buf[sVar9] = cVar10;\n                    dpi_00->last_char = cVar10;\n                    sVar9 = sVar6;\n                  } while (pcVar12 != pcVar11);\n                }\n                pcVar12 = (char *)(options_00 + -0xd4720);\n                cVar10 = '}';\n                pcVar11 = (char *)(options_00 + -0xd471d);\n                do {\n                  if (sVar6 == 0xff) {\n                    options_00 = CONCAT31((int3)((uint)options_00 >> 8),cVar10);\n                    dpi_00->buf[0xff] = '\0';\n                    (*dpi_00->callback)(dpi_00->buf,0xff,dpi_00->opaque);\n                    dpi_00->flush_count = dpi_00->flush_count + 1;\n                    sVar9 = 1;\n                    sVar6 = 0;\n                    cVar10 = (char)options_00;\n                  }\n                  else {\n                    sVar9 = sVar6 + 1;\n                  }\n                  pcVar12 = pcVar12 + 1;\n                  dpi_00->len = sVar9;\n                  dpi_00->buf[sVar6] = cVar10;\n                  dpi_00->last_char = cVar10;\n                  if (pcVar11 == pcVar12) goto LAB_001a03d9;\n                  cVar10 = *pcVar12;\n                  sVar6 = sVar9;\n                } while( true );\n              }\n              do {\n                if (dVar7 != DEMANGLE_COMPONENT_TRANSACTION_SAFE) {\n                  if (dVar7 < DEMANGLE_COMPONENT_CLONE) {\n                    if (4 < dVar7 - DEMANGLE_COMPONENT_RESTRICT_THIS) {\nLAB_001a036d:\n                      d_print_comp(dpi_01,options_00,dc);\n                      dpi_00->templates = pdVar13;\n                      return;\n                    }\n                  }\n                  else if (1 < dVar7 - DEMANGLE_COMPONENT_NOEXCEPT) goto LAB_001a036d;\n                }\nLAB_001a03d9:\n                dc = (dc->u).s_fixed.length;\n                dVar7 = dc->type;\n              } while( true );\n            }\n            d_print_mod(dpi_01,options_00,in_stack_ffffffbc);\n            dpi_00->templates = pdVar13;\n          }\n        }\n      }\n      piVar2 = (int *)*piVar2;\n      if (piVar2 == (int *)0x0) {\n        return;\n      }\n      iVar1 = dpi_00->demangle_failure;\n    }\n  }\n  return;\n}" primitive_type (function_declarator "d_print_mod_list(d_print_info *dpi,int options,d_print_mod *mods,int suffix)" identifier (parameter_list "(d_print_info *dpi,int options,d_print_mod *mods,int suffix)" ( (parameter_declaration "d_print_info *dpi" type_identifier (pointer_declarator "*dpi" * identifier)) , (parameter_declaration "int options" primitive_type identifier) , (parameter_declaration "d_print_mod *mods" type_identifier (pointer_declarator "*mods" * identifier)) , (parameter_declaration "int suffix" primitive_type identifier) ))) (compound_statement "{\n  int iVar1;\n  int *piVar2;\n  uint *puVar3;\n  uint uVar4;\n  d_print_mod *pdVar5;\n  d_print_info *dpi_00;\n  size_t sVar6;\n  demangle_component_type dVar7;\n  size_t sVar8;\n  int *extraout_ECX;\n  size_t sVar9;\n  char cVar10;\n  char *pcVar11;\n  char *pcVar12;\n  int unaff_EDI;\n  int options_00;\n  d_print_template *pdVar13;\n  undefined8 uVar14;\n  d_print_info *dpi_01;\n  demangle_component *in_stack_ffffffbc;\n  demangle_component *dc;\n  char buf [25];\n  \n  uVar14 = __x86_get_pc_thunk_di();\n  dpi_01 = (d_print_info *)((ulonglong)uVar14 >> 0x20);\n  dpi_00 = (d_print_info *)uVar14;\n  options_00 = unaff_EDI + 0x19ede9;\n  if (extraout_ECX != (int *)0x0) {\n    iVar1 = dpi_00->demangle_failure;\n    piVar2 = extraout_ECX;\n    while (iVar1 == 0) {\n      if (piVar2[2] == 0) {\n        puVar3 = (uint *)piVar2[1];\n        uVar4 = *puVar3;\n        if (dpi != (d_print_info *)0x0) goto LAB_001a0258;\n        if (uVar4 != 0x4c) {\n          if (uVar4 < 0x4d) {\n            if (4 < uVar4 - 0x1c) goto LAB_001a0258;\n          }\n          else if (1 < uVar4 - 0x4e) {\nLAB_001a0258:\n            pdVar13 = dpi_00->templates;\n            piVar2[2] = 1;\n            dpi_00->templates = (d_print_template *)piVar2[3];\n            if (uVar4 == 0x29) {\n              d_print_function_type\n                        (dpi_00,(int)dpi_01,(demangle_component *)(puVar3 + 3),\n                         (d_print_mod *)*piVar2);\n              dpi_00->templates = pdVar13;\n              return;\n            }\n            if (uVar4 == 0x2a) {\n              d_print_array_type(dpi_00,(int)dpi_01,(demangle_component *)(puVar3 + 2),\n                                 (d_print_mod *)*piVar2);\n              dpi_00->templates = pdVar13;\n              return;\n            }\n            if (uVar4 == 2) {\n              pdVar5 = dpi_00->modifiers;\n              dpi_00->modifiers = (d_print_mod *)0x0;\n              d_print_comp(dpi_01,options_00,in_stack_ffffffbc);\n              dpi_00->modifiers = pdVar5;\n              sVar6 = dpi_00->len;\n              if (((uint)dpi_01 & 4) == 0) {\n                pcVar12 = (char *)(options_00 + -0xd471f);\n                pcVar11 = (char *)(options_00 + -0xd471d);\n                cVar10 = ':';\n                while( true ) {\n                  if (sVar6 == 0xff) {\n                    dpi_00->buf[0xff] = '\0';\n                    (*dpi_00->callback)(dpi_00->buf,0xff,dpi_00->opaque);\n                    dpi_00->flush_count = dpi_00->flush_count + 1;\n                    sVar9 = 1;\n                    sVar6 = 0;\n                  }\n                  else {\n                    sVar9 = sVar6 + 1;\n                  }\n                  pcVar12 = pcVar12 + 1;\n                  dpi_00->len = sVar9;\n                  dpi_00->buf[sVar6] = cVar10;\n                  dpi_00->last_char = cVar10;\n                  if (pcVar12 == pcVar11) break;\n                  cVar10 = *pcVar12;\n                  sVar6 = sVar9;\n                }\n              }\n              else {\n                sVar9 = sVar6 + 1;\n                if (sVar6 == 0xff) {\n                  dpi_00->buf[0xff] = '\0';\n                  (*dpi_00->callback)(dpi_00->buf,0xff,dpi_00->opaque);\n                  dpi_00->flush_count = dpi_00->flush_count + 1;\n                  sVar9 = 1;\n                  sVar6 = 0;\n                }\n                dpi_00->len = sVar9;\n                dpi_00->buf[sVar6] = '.';\n                dpi_00->last_char = '.';\n              }\n              dc = *(demangle_component **)(piVar2[1] + 0xc);\n              dVar7 = dc->type;\n              if (dVar7 == DEMANGLE_COMPONENT_DEFAULT_ARG) {\n                cVar10 = '{';\n                pcVar11 = (char *)(options_00 + -0xd472d);\n                pcVar12 = (char *)(options_00 + -0xd4721);\n                sVar6 = dpi_00->len;\n                while( true ) {\n                  if (sVar6 == 0xff) {\n                    dpi_00->buf[0xff] = '\0';\n                    (*dpi_00->callback)(dpi_00->buf,0xff,dpi_00->opaque);\n                    dpi_00->flush_count = dpi_00->flush_count + 1;\n                    sVar9 = 1;\n                    sVar6 = 0;\n                  }\n                  else {\n                    sVar9 = sVar6 + 1;\n                  }\n                  dpi_00->len = sVar9;\n                  dpi_00->buf[sVar6] = cVar10;\n                  dpi_00->last_char = cVar10;\n                  if (pcVar11 == pcVar12) break;\n                  cVar10 = *pcVar11;\n                  pcVar11 = pcVar11 + 1;\n                  sVar6 = sVar9;\n                }\n                pcVar11 = buf;\n                sprintf(pcVar11,(char *)(options_00 + -0xd6197),\n                        (byte *)((int)&((dc->u).s_extended_operator.name)->type + 1));\n                sVar8 = strlen(pcVar11);\n                sVar6 = dpi_00->len;\n                if (sVar8 != 0) {\n                  pcVar12 = pcVar11 + sVar8;\n                  sVar9 = sVar6;\n                  do {\n                    cVar10 = *pcVar11;\n                    if (sVar9 == 0xff) {\n                      dpi_00->buf[0xff] = '\0';\n                      (*dpi_00->callback)(dpi_00->buf,0xff,dpi_00->opaque);\n                      dpi_00->flush_count = dpi_00->flush_count + 1;\n                      sVar6 = 1;\n                      sVar9 = 0;\n                    }\n                    else {\n                      sVar6 = sVar9 + 1;\n                    }\n                    pcVar11 = pcVar11 + 1;\n                    dpi_00->len = sVar6;\n                    dpi_00->buf[sVar9] = cVar10;\n                    dpi_00->last_char = cVar10;\n                    sVar9 = sVar6;\n                  } while (pcVar12 != pcVar11);\n                }\n                pcVar12 = (char *)(options_00 + -0xd4720);\n                cVar10 = '}';\n                pcVar11 = (char *)(options_00 + -0xd471d);\n                do {\n                  if (sVar6 == 0xff) {\n                    options_00 = CONCAT31((int3)((uint)options_00 >> 8),cVar10);\n                    dpi_00->buf[0xff] = '\0';\n                    (*dpi_00->callback)(dpi_00->buf,0xff,dpi_00->opaque);\n                    dpi_00->flush_count = dpi_00->flush_count + 1;\n                    sVar9 = 1;\n                    sVar6 = 0;\n                    cVar10 = (char)options_00;\n                  }\n                  else {\n                    sVar9 = sVar6 + 1;\n                  }\n                  pcVar12 = pcVar12 + 1;\n                  dpi_00->len = sVar9;\n                  dpi_00->buf[sVar6] = cVar10;\n                  dpi_00->last_char = cVar10;\n                  if (pcVar11 == pcVar12) goto LAB_001a03d9;\n                  cVar10 = *pcVar12;\n                  sVar6 = sVar9;\n                } while( true );\n              }\n              do {\n                if (dVar7 != DEMANGLE_COMPONENT_TRANSACTION_SAFE) {\n                  if (dVar7 < DEMANGLE_COMPONENT_CLONE) {\n                    if (4 < dVar7 - DEMANGLE_COMPONENT_RESTRICT_THIS) {\nLAB_001a036d:\n                      d_print_comp(dpi_01,options_00,dc);\n                      dpi_00->templates = pdVar13;\n                      return;\n                    }\n                  }\n                  else if (1 < dVar7 - DEMANGLE_COMPONENT_NOEXCEPT) goto LAB_001a036d;\n                }\nLAB_001a03d9:\n                dc = (dc->u).s_fixed.length;\n                dVar7 = dc->type;\n              } while( true );\n            }\n            d_print_mod(dpi_01,options_00,in_stack_ffffffbc);\n            dpi_00->templates = pdVar13;\n          }\n        }\n      }\n      piVar2 = (int *)*piVar2;\n      if (piVar2 == (int *)0x0) {\n        return;\n      }\n      iVar1 = dpi_00->demangle_failure;\n    }\n  }\n  return;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "int *piVar2;" primitive_type (pointer_declarator "*piVar2" * identifier) ;) (declaration "uint *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "d_print_mod *pdVar5;" type_identifier (pointer_declarator "*pdVar5" * identifier) ;) (declaration "d_print_info *dpi_00;" type_identifier (pointer_declarator "*dpi_00" * identifier) ;) (declaration "size_t sVar6;" primitive_type identifier ;) (declaration "demangle_component_type dVar7;" type_identifier identifier ;) (declaration "size_t sVar8;" primitive_type identifier ;) (declaration "int *extraout_ECX;" primitive_type (pointer_declarator "*extraout_ECX" * identifier) ;) (declaration "size_t sVar9;" primitive_type identifier ;) (declaration "char cVar10;" primitive_type identifier ;) (declaration "char *pcVar11;" primitive_type (pointer_declarator "*pcVar11" * identifier) ;) (declaration "char *pcVar12;" primitive_type (pointer_declarator "*pcVar12" * identifier) ;) (declaration "int unaff_EDI;" primitive_type identifier ;) (declaration "int options_00;" primitive_type identifier ;) (declaration "d_print_template *pdVar13;" type_identifier (pointer_declarator "*pdVar13" * identifier) ;) (declaration "undefined8 uVar14;" type_identifier identifier ;) (declaration "d_print_info *dpi_01;" type_identifier (pointer_declarator "*dpi_01" * identifier) ;) (declaration "demangle_component *in_stack_ffffffbc;" type_identifier (pointer_declarator "*in_stack_ffffffbc" * identifier) ;) (declaration "demangle_component *dc;" type_identifier (pointer_declarator "*dc" * identifier) ;) (declaration "char buf [25];" primitive_type (array_declarator "buf [25]" identifier [ number_literal ]) ;) (expression_statement "uVar14 = __x86_get_pc_thunk_di();" (assignment_expression "uVar14 = __x86_get_pc_thunk_di()" identifier = (call_expression "__x86_get_pc_thunk_di()" identifier (argument_list "()" ( )))) ;) (expression_statement "dpi_01 = (d_print_info *)((ulonglong)uVar14 >> 0x20);" (assignment_expression "dpi_01 = (d_print_info *)((ulonglong)uVar14 >> 0x20)" identifier = (cast_expression "(d_print_info *)((ulonglong)uVar14 >> 0x20)" ( (type_descriptor "d_print_info *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((ulonglong)uVar14 >> 0x20)" ( (binary_expression "(ulonglong)uVar14 >> 0x20" (cast_expression "(ulonglong)uVar14" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "dpi_00 = (d_print_info *)uVar14;" (assignment_expression "dpi_00 = (d_print_info *)uVar14" identifier = (cast_expression "(d_print_info *)uVar14" ( (type_descriptor "d_print_info *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "options_00 = unaff_EDI + 0x19ede9;" (assignment_expression "options_00 = unaff_EDI + 0x19ede9" identifier = (binary_expression "unaff_EDI + 0x19ede9" identifier + number_literal)) ;) (if_statement "if (extraout_ECX != (int *)0x0) {\n    iVar1 = dpi_00->demangle_failure;\n    piVar2 = extraout_ECX;\n    while (iVar1 == 0) {\n      if (piVar2[2] == 0) {\n        puVar3 = (uint *)piVar2[1];\n        uVar4 = *puVar3;\n        if (dpi != (d_print_info *)0x0) goto LAB_001a0258;\n        if (uVar4 != 0x4c) {\n          if (uVar4 < 0x4d) {\n            if (4 < uVar4 - 0x1c) goto LAB_001a0258;\n          }\n          else if (1 < uVar4 - 0x4e) {\nLAB_001a0258:\n            pdVar13 = dpi_00->templates;\n            piVar2[2] = 1;\n            dpi_00->templates = (d_print_template *)piVar2[3];\n            if (uVar4 == 0x29) {\n              d_print_function_type\n                        (dpi_00,(int)dpi_01,(demangle_component *)(puVar3 + 3),\n                         (d_print_mod *)*piVar2);\n              dpi_00->templates = pdVar13;\n              return;\n            }\n            if (uVar4 == 0x2a) {\n              d_print_array_type(dpi_00,(int)dpi_01,(demangle_component *)(puVar3 + 2),\n                                 (d_print_mod *)*piVar2);\n              dpi_00->templates = pdVar13;\n              return;\n            }\n            if (uVar4 == 2) {\n              pdVar5 = dpi_00->modifiers;\n              dpi_00->modifiers = (d_print_mod *)0x0;\n              d_print_comp(dpi_01,options_00,in_stack_ffffffbc);\n              dpi_00->modifiers = pdVar5;\n              sVar6 = dpi_00->len;\n              if (((uint)dpi_01 & 4) == 0) {\n                pcVar12 = (char *)(options_00 + -0xd471f);\n                pcVar11 = (char *)(options_00 + -0xd471d);\n                cVar10 = ':';\n                while( true ) {\n                  if (sVar6 == 0xff) {\n                    dpi_00->buf[0xff] = '\0';\n                    (*dpi_00->callback)(dpi_00->buf,0xff,dpi_00->opaque);\n                    dpi_00->flush_count = dpi_00->flush_count + 1;\n                    sVar9 = 1;\n                    sVar6 = 0;\n                  }\n                  else {\n                    sVar9 = sVar6 + 1;\n                  }\n                  pcVar12 = pcVar12 + 1;\n                  dpi_00->len = sVar9;\n                  dpi_00->buf[sVar6] = cVar10;\n                  dpi_00->last_char = cVar10;\n                  if (pcVar12 == pcVar11) break;\n                  cVar10 = *pcVar12;\n                  sVar6 = sVar9;\n                }\n              }\n              else {\n                sVar9 = sVar6 + 1;\n                if (sVar6 == 0xff) {\n                  dpi_00->buf[0xff] = '\0';\n                  (*dpi_00->callback)(dpi_00->buf,0xff,dpi_00->opaque);\n                  dpi_00->flush_count = dpi_00->flush_count + 1;\n                  sVar9 = 1;\n                  sVar6 = 0;\n                }\n                dpi_00->len = sVar9;\n                dpi_00->buf[sVar6] = '.';\n                dpi_00->last_char = '.';\n              }\n              dc = *(demangle_component **)(piVar2[1] + 0xc);\n              dVar7 = dc->type;\n              if (dVar7 == DEMANGLE_COMPONENT_DEFAULT_ARG) {\n                cVar10 = '{';\n                pcVar11 = (char *)(options_00 + -0xd472d);\n                pcVar12 = (char *)(options_00 + -0xd4721);\n                sVar6 = dpi_00->len;\n                while( true ) {\n                  if (sVar6 == 0xff) {\n                    dpi_00->buf[0xff] = '\0';\n                    (*dpi_00->callback)(dpi_00->buf,0xff,dpi_00->opaque);\n                    dpi_00->flush_count = dpi_00->flush_count + 1;\n                    sVar9 = 1;\n                    sVar6 = 0;\n                  }\n                  else {\n                    sVar9 = sVar6 + 1;\n                  }\n                  dpi_00->len = sVar9;\n                  dpi_00->buf[sVar6] = cVar10;\n                  dpi_00->last_char = cVar10;\n                  if (pcVar11 == pcVar12) break;\n                  cVar10 = *pcVar11;\n                  pcVar11 = pcVar11 + 1;\n                  sVar6 = sVar9;\n                }\n                pcVar11 = buf;\n                sprintf(pcVar11,(char *)(options_00 + -0xd6197),\n                        (byte *)((int)&((dc->u).s_extended_operator.name)->type + 1));\n                sVar8 = strlen(pcVar11);\n                sVar6 = dpi_00->len;\n                if (sVar8 != 0) {\n                  pcVar12 = pcVar11 + sVar8;\n                  sVar9 = sVar6;\n                  do {\n                    cVar10 = *pcVar11;\n                    if (sVar9 == 0xff) {\n                      dpi_00->buf[0xff] = '\0';\n                      (*dpi_00->callback)(dpi_00->buf,0xff,dpi_00->opaque);\n                      dpi_00->flush_count = dpi_00->flush_count + 1;\n                      sVar6 = 1;\n                      sVar9 = 0;\n                    }\n                    else {\n                      sVar6 = sVar9 + 1;\n                    }\n                    pcVar11 = pcVar11 + 1;\n                    dpi_00->len = sVar6;\n                    dpi_00->buf[sVar9] = cVar10;\n                    dpi_00->last_char = cVar10;\n                    sVar9 = sVar6;\n                  } while (pcVar12 != pcVar11);\n                }\n                pcVar12 = (char *)(options_00 + -0xd4720);\n                cVar10 = '}';\n                pcVar11 = (char *)(options_00 + -0xd471d);\n                do {\n                  if (sVar6 == 0xff) {\n                    options_00 = CONCAT31((int3)((uint)options_00 >> 8),cVar10);\n                    dpi_00->buf[0xff] = '\0';\n                    (*dpi_00->callback)(dpi_00->buf,0xff,dpi_00->opaque);\n                    dpi_00->flush_count = dpi_00->flush_count + 1;\n                    sVar9 = 1;\n                    sVar6 = 0;\n                    cVar10 = (char)options_00;\n                  }\n                  else {\n                    sVar9 = sVar6 + 1;\n                  }\n                  pcVar12 = pcVar12 + 1;\n                  dpi_00->len = sVar9;\n                  dpi_00->buf[sVar6] = cVar10;\n                  dpi_00->last_char = cVar10;\n                  if (pcVar11 == pcVar12) goto LAB_001a03d9;\n                  cVar10 = *pcVar12;\n                  sVar6 = sVar9;\n                } while( true );\n              }\n              do {\n                if (dVar7 != DEMANGLE_COMPONENT_TRANSACTION_SAFE) {\n                  if (dVar7 < DEMANGLE_COMPONENT_CLONE) {\n                    if (4 < dVar7 - DEMANGLE_COMPONENT_RESTRICT_THIS) {\nLAB_001a036d:\n                      d_print_comp(dpi_01,options_00,dc);\n                      dpi_00->templates = pdVar13;\n                      return;\n                    }\n                  }\n                  else if (1 < dVar7 - DEMANGLE_COMPONENT_NOEXCEPT) goto LAB_001a036d;\n                }\nLAB_001a03d9:\n                dc = (dc->u).s_fixed.length;\n                dVar7 = dc->type;\n              } while( true );\n            }\n            d_print_mod(dpi_01,options_00,in_stack_ffffffbc);\n            dpi_00->templates = pdVar13;\n          }\n        }\n      }\n      piVar2 = (int *)*piVar2;\n      if (piVar2 == (int *)0x0) {\n        return;\n      }\n      iVar1 = dpi_00->demangle_failure;\n    }\n  }" if (parenthesized_expression "(extraout_ECX != (int *)0x0)" ( (binary_expression "extraout_ECX != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    iVar1 = dpi_00->demangle_failure;\n    piVar2 = extraout_ECX;\n    while (iVar1 == 0) {\n      if (piVar2[2] == 0) {\n        puVar3 = (uint *)piVar2[1];\n        uVar4 = *puVar3;\n        if (dpi != (d_print_info *)0x0) goto LAB_001a0258;\n        if (uVar4 != 0x4c) {\n          if (uVar4 < 0x4d) {\n            if (4 < uVar4 - 0x1c) goto LAB_001a0258;\n          }\n          else if (1 < uVar4 - 0x4e) {\nLAB_001a0258:\n            pdVar13 = dpi_00->templates;\n            piVar2[2] = 1;\n            dpi_00->templates = (d_print_template *)piVar2[3];\n            if (uVar4 == 0x29) {\n              d_print_function_type\n                        (dpi_00,(int)dpi_01,(demangle_component *)(puVar3 + 3),\n                         (d_print_mod *)*piVar2);\n              dpi_00->templates = pdVar13;\n              return;\n            }\n            if (uVar4 == 0x2a) {\n              d_print_array_type(dpi_00,(int)dpi_01,(demangle_component *)(puVar3 + 2),\n                                 (d_print_mod *)*piVar2);\n              dpi_00->templates = pdVar13;\n              return;\n            }\n            if (uVar4 == 2) {\n              pdVar5 = dpi_00->modifiers;\n              dpi_00->modifiers = (d_print_mod *)0x0;\n              d_print_comp(dpi_01,options_00,in_stack_ffffffbc);\n              dpi_00->modifiers = pdVar5;\n              sVar6 = dpi_00->len;\n              if (((uint)dpi_01 & 4) == 0) {\n                pcVar12 = (char *)(options_00 + -0xd471f);\n                pcVar11 = (char *)(options_00 + -0xd471d);\n                cVar10 = ':';\n                while( true ) {\n                  if (sVar6 == 0xff) {\n                    dpi_00->buf[0xff] = '\0';\n                    (*dpi_00->callback)(dpi_00->buf,0xff,dpi_00->opaque);\n                    dpi_00->flush_count = dpi_00->flush_count + 1;\n                    sVar9 = 1;\n                    sVar6 = 0;\n                  }\n                  else {\n                    sVar9 = sVar6 + 1;\n                  }\n                  pcVar12 = pcVar12 + 1;\n                  dpi_00->len = sVar9;\n                  dpi_00->buf[sVar6] = cVar10;\n                  dpi_00->last_char = cVar10;\n                  if (pcVar12 == pcVar11) break;\n                  cVar10 = *pcVar12;\n                  sVar6 = sVar9;\n                }\n              }\n              else {\n                sVar9 = sVar6 + 1;\n                if (sVar6 == 0xff) {\n                  dpi_00->buf[0xff] = '\0';\n                  (*dpi_00->callback)(dpi_00->buf,0xff,dpi_00->opaque);\n                  dpi_00->flush_count = dpi_00->flush_count + 1;\n                  sVar9 = 1;\n                  sVar6 = 0;\n                }\n                dpi_00->len = sVar9;\n                dpi_00->buf[sVar6] = '.';\n                dpi_00->last_char = '.';\n              }\n              dc = *(demangle_component **)(piVar2[1] + 0xc);\n              dVar7 = dc->type;\n              if (dVar7 == DEMANGLE_COMPONENT_DEFAULT_ARG) {\n                cVar10 = '{';\n                pcVar11 = (char *)(options_00 + -0xd472d);\n                pcVar12 = (char *)(options_00 + -0xd4721);\n                sVar6 = dpi_00->len;\n                while( true ) {\n                  if (sVar6 == 0xff) {\n                    dpi_00->buf[0xff] = '\0';\n                    (*dpi_00->callback)(dpi_00->buf,0xff,dpi_00->opaque);\n                    dpi_00->flush_count = dpi_00->flush_count + 1;\n                    sVar9 = 1;\n                    sVar6 = 0;\n                  }\n                  else {\n                    sVar9 = sVar6 + 1;\n                  }\n                  dpi_00->len = sVar9;\n                  dpi_00->buf[sVar6] = cVar10;\n                  dpi_00->last_char = cVar10;\n                  if (pcVar11 == pcVar12) break;\n                  cVar10 = *pcVar11;\n                  pcVar11 = pcVar11 + 1;\n                  sVar6 = sVar9;\n                }\n                pcVar11 = buf;\n                sprintf(pcVar11,(char *)(options_00 + -0xd6197),\n                        (byte *)((int)&((dc->u).s_extended_operator.name)->type + 1));\n                sVar8 = strlen(pcVar11);\n                sVar6 = dpi_00->len;\n                if (sVar8 != 0) {\n                  pcVar12 = pcVar11 + sVar8;\n                  sVar9 = sVar6;\n                  do {\n                    cVar10 = *pcVar11;\n                    if (sVar9 == 0xff) {\n                      dpi_00->buf[0xff] = '\0';\n                      (*dpi_00->callback)(dpi_00->buf,0xff,dpi_00->opaque);\n                      dpi_00->flush_count = dpi_00->flush_count + 1;\n                      sVar6 = 1;\n                      sVar9 = 0;\n                    }\n                    else {\n                      sVar6 = sVar9 + 1;\n                    }\n                    pcVar11 = pcVar11 + 1;\n                    dpi_00->len = sVar6;\n                    dpi_00->buf[sVar9] = cVar10;\n                    dpi_00->last_char = cVar10;\n                    sVar9 = sVar6;\n                  } while (pcVar12 != pcVar11);\n                }\n                pcVar12 = (char *)(options_00 + -0xd4720);\n                cVar10 = '}';\n                pcVar11 = (char *)(options_00 + -0xd471d);\n                do {\n                  if (sVar6 == 0xff) {\n                    options_00 = CONCAT31((int3)((uint)options_00 >> 8),cVar10);\n                    dpi_00->buf[0xff] = '\0';\n                    (*dpi_00->callback)(dpi_00->buf,0xff,dpi_00->opaque);\n                    dpi_00->flush_count = dpi_00->flush_count + 1;\n                    sVar9 = 1;\n                    sVar6 = 0;\n                    cVar10 = (char)options_00;\n                  }\n                  else {\n                    sVar9 = sVar6 + 1;\n                  }\n                  pcVar12 = pcVar12 + 1;\n                  dpi_00->len = sVar9;\n                  dpi_00->buf[sVar6] = cVar10;\n                  dpi_00->last_char = cVar10;\n                  if (pcVar11 == pcVar12) goto LAB_001a03d9;\n                  cVar10 = *pcVar12;\n                  sVar6 = sVar9;\n                } while( true );\n              }\n              do {\n                if (dVar7 != DEMANGLE_COMPONENT_TRANSACTION_SAFE) {\n                  if (dVar7 < DEMANGLE_COMPONENT_CLONE) {\n                    if (4 < dVar7 - DEMANGLE_COMPONENT_RESTRICT_THIS) {\nLAB_001a036d:\n                      d_print_comp(dpi_01,options_00,dc);\n                      dpi_00->templates = pdVar13;\n                      return;\n                    }\n                  }\n                  else if (1 < dVar7 - DEMANGLE_COMPONENT_NOEXCEPT) goto LAB_001a036d;\n                }\nLAB_001a03d9:\n                dc = (dc->u).s_fixed.length;\n                dVar7 = dc->type;\n              } while( true );\n            }\n            d_print_mod(dpi_01,options_00,in_stack_ffffffbc);\n            dpi_00->templates = pdVar13;\n          }\n        }\n      }\n      piVar2 = (int *)*piVar2;\n      if (piVar2 == (int *)0x0) {\n        return;\n      }\n      iVar1 = dpi_00->demangle_failure;\n    }\n  }" { (expression_statement "iVar1 = dpi_00->demangle_failure;" (assignment_expression "iVar1 = dpi_00->demangle_failure" identifier = (field_expression "dpi_00->demangle_failure" identifier -> field_identifier)) ;) (expression_statement "piVar2 = extraout_ECX;" (assignment_expression "piVar2 = extraout_ECX" identifier = identifier) ;) (while_statement "while (iVar1 == 0) {\n      if (piVar2[2] == 0) {\n        puVar3 = (uint *)piVar2[1];\n        uVar4 = *puVar3;\n        if (dpi != (d_print_info *)0x0) goto LAB_001a0258;\n        if (uVar4 != 0x4c) {\n          if (uVar4 < 0x4d) {\n            if (4 < uVar4 - 0x1c) goto LAB_001a0258;\n          }\n          else if (1 < uVar4 - 0x4e) {\nLAB_001a0258:\n            pdVar13 = dpi_00->templates;\n            piVar2[2] = 1;\n            dpi_00->templates = (d_print_template *)piVar2[3];\n            if (uVar4 == 0x29) {\n              d_print_function_type\n                        (dpi_00,(int)dpi_01,(demangle_component *)(puVar3 + 3),\n                         (d_print_mod *)*piVar2);\n              dpi_00->templates = pdVar13;\n              return;\n            }\n            if (uVar4 == 0x2a) {\n              d_print_array_type(dpi_00,(int)dpi_01,(demangle_component *)(puVar3 + 2),\n                                 (d_print_mod *)*piVar2);\n              dpi_00->templates = pdVar13;\n              return;\n            }\n            if (uVar4 == 2) {\n              pdVar5 = dpi_00->modifiers;\n              dpi_00->modifiers = (d_print_mod *)0x0;\n              d_print_comp(dpi_01,options_00,in_stack_ffffffbc);\n              dpi_00->modifiers = pdVar5;\n              sVar6 = dpi_00->len;\n              if (((uint)dpi_01 & 4) == 0) {\n                pcVar12 = (char *)(options_00 + -0xd471f);\n                pcVar11 = (char *)(options_00 + -0xd471d);\n                cVar10 = ':';\n                while( true ) {\n                  if (sVar6 == 0xff) {\n                    dpi_00->buf[0xff] = '\0';\n                    (*dpi_00->callback)(dpi_00->buf,0xff,dpi_00->opaque);\n                    dpi_00->flush_count = dpi_00->flush_count + 1;\n                    sVar9 = 1;\n                    sVar6 = 0;\n                  }\n                  else {\n                    sVar9 = sVar6 + 1;\n                  }\n                  pcVar12 = pcVar12 + 1;\n                  dpi_00->len = sVar9;\n                  dpi_00->buf[sVar6] = cVar10;\n                  dpi_00->last_char = cVar10;\n                  if (pcVar12 == pcVar11) break;\n                  cVar10 = *pcVar12;\n                  sVar6 = sVar9;\n                }\n              }\n              else {\n                sVar9 = sVar6 + 1;\n                if (sVar6 == 0xff) {\n                  dpi_00->buf[0xff] = '\0';\n                  (*dpi_00->callback)(dpi_00->buf,0xff,dpi_00->opaque);\n                  dpi_00->flush_count = dpi_00->flush_count + 1;\n                  sVar9 = 1;\n                  sVar6 = 0;\n                }\n                dpi_00->len = sVar9;\n                dpi_00->buf[sVar6] = '.';\n                dpi_00->last_char = '.';\n              }\n              dc = *(demangle_component **)(piVar2[1] + 0xc);\n              dVar7 = dc->type;\n              if (dVar7 == DEMANGLE_COMPONENT_DEFAULT_ARG) {\n                cVar10 = '{';\n                pcVar11 = (char *)(options_00 + -0xd472d);\n                pcVar12 = (char *)(options_00 + -0xd4721);\n                sVar6 = dpi_00->len;\n                while( true ) {\n                  if (sVar6 == 0xff) {\n                    dpi_00->buf[0xff] = '\0';\n                    (*dpi_00->callback)(dpi_00->buf,0xff,dpi_00->opaque);\n                    dpi_00->flush_count = dpi_00->flush_count + 1;\n                    sVar9 = 1;\n                    sVar6 = 0;\n                  }\n                  else {\n                    sVar9 = sVar6 + 1;\n                  }\n                  dpi_00->len = sVar9;\n                  dpi_00->buf[sVar6] = cVar10;\n                  dpi_00->last_char = cVar10;\n                  if (pcVar11 == pcVar12) break;\n                  cVar10 = *pcVar11;\n                  pcVar11 = pcVar11 + 1;\n                  sVar6 = sVar9;\n                }\n                pcVar11 = buf;\n                sprintf(pcVar11,(char *)(options_00 + -0xd6197),\n                        (byte *)((int)&((dc->u).s_extended_operator.name)->type + 1));\n                sVar8 = strlen(pcVar11);\n                sVar6 = dpi_00->len;\n                if (sVar8 != 0) {\n                  pcVar12 = pcVar11 + sVar8;\n                  sVar9 = sVar6;\n                  do {\n                    cVar10 = *pcVar11;\n                    if (sVar9 == 0xff) {\n                      dpi_00->buf[0xff] = '\0';\n                      (*dpi_00->callback)(dpi_00->buf,0xff,dpi_00->opaque);\n                      dpi_00->flush_count = dpi_00->flush_count + 1;\n                      sVar6 = 1;\n                      sVar9 = 0;\n                    }\n                    else {\n                      sVar6 = sVar9 + 1;\n                    }\n                    pcVar11 = pcVar11 + 1;\n                    dpi_00->len = sVar6;\n                    dpi_00->buf[sVar9] = cVar10;\n                    dpi_00->last_char = cVar10;\n                    sVar9 = sVar6;\n                  } while (pcVar12 != pcVar11);\n                }\n                pcVar12 = (char *)(options_00 + -0xd4720);\n                cVar10 = '}';\n                pcVar11 = (char *)(options_00 + -0xd471d);\n                do {\n                  if (sVar6 == 0xff) {\n                    options_00 = CONCAT31((int3)((uint)options_00 >> 8),cVar10);\n                    dpi_00->buf[0xff] = '\0';\n                    (*dpi_00->callback)(dpi_00->buf,0xff,dpi_00->opaque);\n                    dpi_00->flush_count = dpi_00->flush_count + 1;\n                    sVar9 = 1;\n                    sVar6 = 0;\n                    cVar10 = (char)options_00;\n                  }\n                  else {\n                    sVar9 = sVar6 + 1;\n                  }\n                  pcVar12 = pcVar12 + 1;\n                  dpi_00->len = sVar9;\n                  dpi_00->buf[sVar6] = cVar10;\n                  dpi_00->last_char = cVar10;\n                  if (pcVar11 == pcVar12) goto LAB_001a03d9;\n                  cVar10 = *pcVar12;\n                  sVar6 = sVar9;\n                } while( true );\n              }\n              do {\n                if (dVar7 != DEMANGLE_COMPONENT_TRANSACTION_SAFE) {\n                  if (dVar7 < DEMANGLE_COMPONENT_CLONE) {\n                    if (4 < dVar7 - DEMANGLE_COMPONENT_RESTRICT_THIS) {\nLAB_001a036d:\n                      d_print_comp(dpi_01,options_00,dc);\n                      dpi_00->templates = pdVar13;\n                      return;\n                    }\n                  }\n                  else if (1 < dVar7 - DEMANGLE_COMPONENT_NOEXCEPT) goto LAB_001a036d;\n                }\nLAB_001a03d9:\n                dc = (dc->u).s_fixed.length;\n                dVar7 = dc->type;\n              } while( true );\n            }\n            d_print_mod(dpi_01,options_00,in_stack_ffffffbc);\n            dpi_00->templates = pdVar13;\n          }\n        }\n      }\n      piVar2 = (int *)*piVar2;\n      if (piVar2 == (int *)0x0) {\n        return;\n      }\n      iVar1 = dpi_00->demangle_failure;\n    }" while (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (compound_statement "{\n      if (piVar2[2] == 0) {\n        puVar3 = (uint *)piVar2[1];\n        uVar4 = *puVar3;\n        if (dpi != (d_print_info *)0x0) goto LAB_001a0258;\n        if (uVar4 != 0x4c) {\n          if (uVar4 < 0x4d) {\n            if (4 < uVar4 - 0x1c) goto LAB_001a0258;\n          }\n          else if (1 < uVar4 - 0x4e) {\nLAB_001a0258:\n            pdVar13 = dpi_00->templates;\n            piVar2[2] = 1;\n            dpi_00->templates = (d_print_template *)piVar2[3];\n            if (uVar4 == 0x29) {\n              d_print_function_type\n                        (dpi_00,(int)dpi_01,(demangle_component *)(puVar3 + 3),\n                         (d_print_mod *)*piVar2);\n              dpi_00->templates = pdVar13;\n              return;\n            }\n            if (uVar4 == 0x2a) {\n              d_print_array_type(dpi_00,(int)dpi_01,(demangle_component *)(puVar3 + 2),\n                                 (d_print_mod *)*piVar2);\n              dpi_00->templates = pdVar13;\n              return;\n            }\n            if (uVar4 == 2) {\n              pdVar5 = dpi_00->modifiers;\n              dpi_00->modifiers = (d_print_mod *)0x0;\n              d_print_comp(dpi_01,options_00,in_stack_ffffffbc);\n              dpi_00->modifiers = pdVar5;\n              sVar6 = dpi_00->len;\n              if (((uint)dpi_01 & 4) == 0) {\n                pcVar12 = (char *)(options_00 + -0xd471f);\n                pcVar11 = (char *)(options_00 + -0xd471d);\n                cVar10 = ':';\n                while( true ) {\n                  if (sVar6 == 0xff) {\n                    dpi_00->buf[0xff] = '\0';\n                    (*dpi_00->callback)(dpi_00->buf,0xff,dpi_00->opaque);\n                    dpi_00->flush_count = dpi_00->flush_count + 1;\n                    sVar9 = 1;\n                    sVar6 = 0;\n                  }\n                  else {\n                    sVar9 = sVar6 + 1;\n                  }\n                  pcVar12 = pcVar12 + 1;\n                  dpi_00->len = sVar9;\n                  dpi_00->buf[sVar6] = cVar10;\n                  dpi_00->last_char = cVar10;\n                  if (pcVar12 == pcVar11) break;\n                  cVar10 = *pcVar12;\n                  sVar6 = sVar9;\n                }\n              }\n              else {\n                sVar9 = sVar6 + 1;\n                if (sVar6 == 0xff) {\n                  dpi_00->buf[0xff] = '\0';\n                  (*dpi_00->callback)(dpi_00->buf,0xff,dpi_00->opaque);\n                  dpi_00->flush_count = dpi_00->flush_count + 1;\n                  sVar9 = 1;\n                  sVar6 = 0;\n                }\n                dpi_00->len = sVar9;\n                dpi_00->buf[sVar6] = '.';\n                dpi_00->last_char = '.';\n              }\n              dc = *(demangle_component **)(piVar2[1] + 0xc);\n              dVar7 = dc->type;\n              if (dVar7 == DEMANGLE_COMPONENT_DEFAULT_ARG) {\n                cVar10 = '{';\n                pcVar11 = (char *)(options_00 + -0xd472d);\n                pcVar12 = (char *)(options_00 + -0xd4721);\n                sVar6 = dpi_00->len;\n                while( true ) {\n                  if (sVar6 == 0xff) {\n                    dpi_00->buf[0xff] = '\0';\n                    (*dpi_00->callback)(dpi_00->buf,0xff,dpi_00->opaque);\n                    dpi_00->flush_count = dpi_00->flush_count + 1;\n                    sVar9 = 1;\n                    sVar6 = 0;\n                  }\n                  else {\n                    sVar9 = sVar6 + 1;\n                  }\n                  dpi_00->len = sVar9;\n                  dpi_00->buf[sVar6] = cVar10;\n                  dpi_00->last_char = cVar10;\n                  if (pcVar11 == pcVar12) break;\n                  cVar10 = *pcVar11;\n                  pcVar11 = pcVar11 + 1;\n                  sVar6 = sVar9;\n                }\n                pcVar11 = buf;\n                sprintf(pcVar11,(char *)(options_00 + -0xd6197),\n                        (byte *)((int)&((dc->u).s_extended_operator.name)->type + 1));\n                sVar8 = strlen(pcVar11);\n                sVar6 = dpi_00->len;\n                if (sVar8 != 0) {\n                  pcVar12 = pcVar11 + sVar8;\n                  sVar9 = sVar6;\n                  do {\n                    cVar10 = *pcVar11;\n                    if (sVar9 == 0xff) {\n                      dpi_00->buf[0xff] = '\0';\n                      (*dpi_00->callback)(dpi_00->buf,0xff,dpi_00->opaque);\n                      dpi_00->flush_count = dpi_00->flush_count + 1;\n                      sVar6 = 1;\n                      sVar9 = 0;\n                    }\n                    else {\n                      sVar6 = sVar9 + 1;\n                    }\n                    pcVar11 = pcVar11 + 1;\n                    dpi_00->len = sVar6;\n                    dpi_00->buf[sVar9] = cVar10;\n                    dpi_00->last_char = cVar10;\n                    sVar9 = sVar6;\n                  } while (pcVar12 != pcVar11);\n                }\n                pcVar12 = (char *)(options_00 + -0xd4720);\n                cVar10 = '}';\n                pcVar11 = (char *)(options_00 + -0xd471d);\n                do {\n                  if (sVar6 == 0xff) {\n                    options_00 = CONCAT31((int3)((uint)options_00 >> 8),cVar10);\n                    dpi_00->buf[0xff] = '\0';\n                    (*dpi_00->callback)(dpi_00->buf,0xff,dpi_00->opaque);\n                    dpi_00->flush_count = dpi_00->flush_count + 1;\n                    sVar9 = 1;\n                    sVar6 = 0;\n                    cVar10 = (char)options_00;\n                  }\n                  else {\n                    sVar9 = sVar6 + 1;\n                  }\n                  pcVar12 = pcVar12 + 1;\n                  dpi_00->len = sVar9;\n                  dpi_00->buf[sVar6] = cVar10;\n                  dpi_00->last_char = cVar10;\n                  if (pcVar11 == pcVar12) goto LAB_001a03d9;\n                  cVar10 = *pcVar12;\n                  sVar6 = sVar9;\n                } while( true );\n              }\n              do {\n                if (dVar7 != DEMANGLE_COMPONENT_TRANSACTION_SAFE) {\n                  if (dVar7 < DEMANGLE_COMPONENT_CLONE) {\n                    if (4 < dVar7 - DEMANGLE_COMPONENT_RESTRICT_THIS) {\nLAB_001a036d:\n                      d_print_comp(dpi_01,options_00,dc);\n                      dpi_00->templates = pdVar13;\n                      return;\n                    }\n                  }\n                  else if (1 < dVar7 - DEMANGLE_COMPONENT_NOEXCEPT) goto LAB_001a036d;\n                }\nLAB_001a03d9:\n                dc = (dc->u).s_fixed.length;\n                dVar7 = dc->type;\n              } while( true );\n            }\n            d_print_mod(dpi_01,options_00,in_stack_ffffffbc);\n            dpi_00->templates = pdVar13;\n          }\n        }\n      }\n      piVar2 = (int *)*piVar2;\n      if (piVar2 == (int *)0x0) {\n        return;\n      }\n      iVar1 = dpi_00->demangle_failure;\n    }" { (if_statement "if (piVar2[2] == 0) {\n        puVar3 = (uint *)piVar2[1];\n        uVar4 = *puVar3;\n        if (dpi != (d_print_info *)0x0) goto LAB_001a0258;\n        if (uVar4 != 0x4c) {\n          if (uVar4 < 0x4d) {\n            if (4 < uVar4 - 0x1c) goto LAB_001a0258;\n          }\n          else if (1 < uVar4 - 0x4e) {\nLAB_001a0258:\n            pdVar13 = dpi_00->templates;\n            piVar2[2] = 1;\n            dpi_00->templates = (d_print_template *)piVar2[3];\n            if (uVar4 == 0x29) {\n              d_print_function_type\n                        (dpi_00,(int)dpi_01,(demangle_component *)(puVar3 + 3),\n                         (d_print_mod *)*piVar2);\n              dpi_00->templates = pdVar13;\n              return;\n            }\n            if (uVar4 == 0x2a) {\n              d_print_array_type(dpi_00,(int)dpi_01,(demangle_component *)(puVar3 + 2),\n                                 (d_print_mod *)*piVar2);\n              dpi_00->templates = pdVar13;\n              return;\n            }\n            if (uVar4 == 2) {\n              pdVar5 = dpi_00->modifiers;\n              dpi_00->modifiers = (d_print_mod *)0x0;\n              d_print_comp(dpi_01,options_00,in_stack_ffffffbc);\n              dpi_00->modifiers = pdVar5;\n              sVar6 = dpi_00->len;\n              if (((uint)dpi_01 & 4) == 0) {\n                pcVar12 = (char *)(options_00 + -0xd471f);\n                pcVar11 = (char *)(options_00 + -0xd471d);\n                cVar10 = ':';\n                while( true ) {\n                  if (sVar6 == 0xff) {\n                    dpi_00->buf[0xff] = '\0';\n                    (*dpi_00->callback)(dpi_00->buf,0xff,dpi_00->opaque);\n                    dpi_00->flush_count = dpi_00->flush_count + 1;\n                    sVar9 = 1;\n                    sVar6 = 0;\n                  }\n                  else {\n                    sVar9 = sVar6 + 1;\n                  }\n                  pcVar12 = pcVar12 + 1;\n                  dpi_00->len = sVar9;\n                  dpi_00->buf[sVar6] = cVar10;\n                  dpi_00->last_char = cVar10;\n                  if (pcVar12 == pcVar11) break;\n                  cVar10 = *pcVar12;\n                  sVar6 = sVar9;\n                }\n              }\n              else {\n                sVar9 = sVar6 + 1;\n                if (sVar6 == 0xff) {\n                  dpi_00->buf[0xff] = '\0';\n                  (*dpi_00->callback)(dpi_00->buf,0xff,dpi_00->opaque);\n                  dpi_00->flush_count = dpi_00->flush_count + 1;\n                  sVar9 = 1;\n                  sVar6 = 0;\n                }\n                dpi_00->len = sVar9;\n                dpi_00->buf[sVar6] = '.';\n                dpi_00->last_char = '.';\n              }\n              dc = *(demangle_component **)(piVar2[1] + 0xc);\n              dVar7 = dc->type;\n              if (dVar7 == DEMANGLE_COMPONENT_DEFAULT_ARG) {\n                cVar10 = '{';\n                pcVar11 = (char *)(options_00 + -0xd472d);\n                pcVar12 = (char *)(options_00 + -0xd4721);\n                sVar6 = dpi_00->len;\n                while( true ) {\n                  if (sVar6 == 0xff) {\n                    dpi_00->buf[0xff] = '\0';\n                    (*dpi_00->callback)(dpi_00->buf,0xff,dpi_00->opaque);\n                    dpi_00->flush_count = dpi_00->flush_count + 1;\n                    sVar9 = 1;\n                    sVar6 = 0;\n                  }\n                  else {\n                    sVar9 = sVar6 + 1;\n                  }\n                  dpi_00->len = sVar9;\n                  dpi_00->buf[sVar6] = cVar10;\n                  dpi_00->last_char = cVar10;\n                  if (pcVar11 == pcVar12) break;\n                  cVar10 = *pcVar11;\n                  pcVar11 = pcVar11 + 1;\n                  sVar6 = sVar9;\n                }\n                pcVar11 = buf;\n                sprintf(pcVar11,(char *)(options_00 + -0xd6197),\n                        (byte *)((int)&((dc->u).s_extended_operator.name)->type + 1));\n                sVar8 = strlen(pcVar11);\n                sVar6 = dpi_00->len;\n                if (sVar8 != 0) {\n                  pcVar12 = pcVar11 + sVar8;\n                  sVar9 = sVar6;\n                  do {\n                    cVar10 = *pcVar11;\n                    if (sVar9 == 0xff) {\n                      dpi_00->buf[0xff] = '\0';\n                      (*dpi_00->callback)(dpi_00->buf,0xff,dpi_00->opaque);\n                      dpi_00->flush_count = dpi_00->flush_count + 1;\n                      sVar6 = 1;\n                      sVar9 = 0;\n                    }\n                    else {\n                      sVar6 = sVar9 + 1;\n                    }\n                    pcVar11 = pcVar11 + 1;\n                    dpi_00->len = sVar6;\n                    dpi_00->buf[sVar9] = cVar10;\n                    dpi_00->last_char = cVar10;\n                    sVar9 = sVar6;\n                  } while (pcVar12 != pcVar11);\n                }\n                pcVar12 = (char *)(options_00 + -0xd4720);\n                cVar10 = '}';\n                pcVar11 = (char *)(options_00 + -0xd471d);\n                do {\n                  if (sVar6 == 0xff) {\n                    options_00 = CONCAT31((int3)((uint)options_00 >> 8),cVar10);\n                    dpi_00->buf[0xff] = '\0';\n                    (*dpi_00->callback)(dpi_00->buf,0xff,dpi_00->opaque);\n                    dpi_00->flush_count = dpi_00->flush_count + 1;\n                    sVar9 = 1;\n                    sVar6 = 0;\n                    cVar10 = (char)options_00;\n                  }\n                  else {\n                    sVar9 = sVar6 + 1;\n                  }\n                  pcVar12 = pcVar12 + 1;\n                  dpi_00->len = sVar9;\n                  dpi_00->buf[sVar6] = cVar10;\n                  dpi_00->last_char = cVar10;\n                  if (pcVar11 == pcVar12) goto LAB_001a03d9;\n                  cVar10 = *pcVar12;\n                  sVar6 = sVar9;\n                } while( true );\n              }\n              do {\n                if (dVar7 != DEMANGLE_COMPONENT_TRANSACTION_SAFE) {\n                  if (dVar7 < DEMANGLE_COMPONENT_CLONE) {\n                    if (4 < dVar7 - DEMANGLE_COMPONENT_RESTRICT_THIS) {\nLAB_001a036d:\n                      d_print_comp(dpi_01,options_00,dc);\n                      dpi_00->templates = pdVar13;\n                      return;\n                    }\n                  }\n                  else if (1 < dVar7 - DEMANGLE_COMPONENT_NOEXCEPT) goto LAB_001a036d;\n                }\nLAB_001a03d9:\n                dc = (dc->u).s_fixed.length;\n                dVar7 = dc->type;\n              } while( true );\n            }\n            d_print_mod(dpi_01,options_00,in_stack_ffffffbc);\n            dpi_00->templates = pdVar13;\n          }\n        }\n      }" if (parenthesized_expression "(piVar2[2] == 0)" ( (binary_expression "piVar2[2] == 0" (subscript_expression "piVar2[2]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n        puVar3 = (uint *)piVar2[1];\n        uVar4 = *puVar3;\n        if (dpi != (d_print_info *)0x0) goto LAB_001a0258;\n        if (uVar4 != 0x4c) {\n          if (uVar4 < 0x4d) {\n            if (4 < uVar4 - 0x1c) goto LAB_001a0258;\n          }\n          else if (1 < uVar4 - 0x4e) {\nLAB_001a0258:\n            pdVar13 = dpi_00->templates;\n            piVar2[2] = 1;\n            dpi_00->templates = (d_print_template *)piVar2[3];\n            if (uVar4 == 0x29) {\n              d_print_function_type\n                        (dpi_00,(int)dpi_01,(demangle_component *)(puVar3 + 3),\n                         (d_print_mod *)*piVar2);\n              dpi_00->templates = pdVar13;\n              return;\n            }\n            if (uVar4 == 0x2a) {\n              d_print_array_type(dpi_00,(int)dpi_01,(demangle_component *)(puVar3 + 2),\n                                 (d_print_mod *)*piVar2);\n              dpi_00->templates = pdVar13;\n              return;\n            }\n            if (uVar4 == 2) {\n              pdVar5 = dpi_00->modifiers;\n              dpi_00->modifiers = (d_print_mod *)0x0;\n              d_print_comp(dpi_01,options_00,in_stack_ffffffbc);\n              dpi_00->modifiers = pdVar5;\n              sVar6 = dpi_00->len;\n              if (((uint)dpi_01 & 4) == 0) {\n                pcVar12 = (char *)(options_00 + -0xd471f);\n                pcVar11 = (char *)(options_00 + -0xd471d);\n                cVar10 = ':';\n                while( true ) {\n                  if (sVar6 == 0xff) {\n                    dpi_00->buf[0xff] = '\0';\n                    (*dpi_00->callback)(dpi_00->buf,0xff,dpi_00->opaque);\n                    dpi_00->flush_count = dpi_00->flush_count + 1;\n                    sVar9 = 1;\n                    sVar6 = 0;\n                  }\n                  else {\n                    sVar9 = sVar6 + 1;\n                  }\n                  pcVar12 = pcVar12 + 1;\n                  dpi_00->len = sVar9;\n                  dpi_00->buf[sVar6] = cVar10;\n                  dpi_00->last_char = cVar10;\n                  if (pcVar12 == pcVar11) break;\n                  cVar10 = *pcVar12;\n                  sVar6 = sVar9;\n                }\n              }\n              else {\n                sVar9 = sVar6 + 1;\n                if (sVar6 == 0xff) {\n                  dpi_00->buf[0xff] = '\0';\n                  (*dpi_00->callback)(dpi_00->buf,0xff,dpi_00->opaque);\n                  dpi_00->flush_count = dpi_00->flush_count + 1;\n                  sVar9 = 1;\n                  sVar6 = 0;\n                }\n                dpi_00->len = sVar9;\n                dpi_00->buf[sVar6] = '.';\n                dpi_00->last_char = '.';\n              }\n              dc = *(demangle_component **)(piVar2[1] + 0xc);\n              dVar7 = dc->type;\n              if (dVar7 == DEMANGLE_COMPONENT_DEFAULT_ARG) {\n                cVar10 = '{';\n                pcVar11 = (char *)(options_00 + -0xd472d);\n                pcVar12 = (char *)(options_00 + -0xd4721);\n                sVar6 = dpi_00->len;\n                while( true ) {\n                  if (sVar6 == 0xff) {\n                    dpi_00->buf[0xff] = '\0';\n                    (*dpi_00->callback)(dpi_00->buf,0xff,dpi_00->opaque);\n                    dpi_00->flush_count = dpi_00->flush_count + 1;\n                    sVar9 = 1;\n                    sVar6 = 0;\n                  }\n                  else {\n                    sVar9 = sVar6 + 1;\n                  }\n                  dpi_00->len = sVar9;\n                  dpi_00->buf[sVar6] = cVar10;\n                  dpi_00->last_char = cVar10;\n                  if (pcVar11 == pcVar12) break;\n                  cVar10 = *pcVar11;\n                  pcVar11 = pcVar11 + 1;\n                  sVar6 = sVar9;\n                }\n                pcVar11 = buf;\n                sprintf(pcVar11,(char *)(options_00 + -0xd6197),\n                        (byte *)((int)&((dc->u).s_extended_operator.name)->type + 1));\n                sVar8 = strlen(pcVar11);\n                sVar6 = dpi_00->len;\n                if (sVar8 != 0) {\n                  pcVar12 = pcVar11 + sVar8;\n                  sVar9 = sVar6;\n                  do {\n                    cVar10 = *pcVar11;\n                    if (sVar9 == 0xff) {\n                      dpi_00->buf[0xff] = '\0';\n                      (*dpi_00->callback)(dpi_00->buf,0xff,dpi_00->opaque);\n                      dpi_00->flush_count = dpi_00->flush_count + 1;\n                      sVar6 = 1;\n                      sVar9 = 0;\n                    }\n                    else {\n                      sVar6 = sVar9 + 1;\n                    }\n                    pcVar11 = pcVar11 + 1;\n                    dpi_00->len = sVar6;\n                    dpi_00->buf[sVar9] = cVar10;\n                    dpi_00->last_char = cVar10;\n                    sVar9 = sVar6;\n                  } while (pcVar12 != pcVar11);\n                }\n                pcVar12 = (char *)(options_00 + -0xd4720);\n                cVar10 = '}';\n                pcVar11 = (char *)(options_00 + -0xd471d);\n                do {\n                  if (sVar6 == 0xff) {\n                    options_00 = CONCAT31((int3)((uint)options_00 >> 8),cVar10);\n                    dpi_00->buf[0xff] = '\0';\n                    (*dpi_00->callback)(dpi_00->buf,0xff,dpi_00->opaque);\n                    dpi_00->flush_count = dpi_00->flush_count + 1;\n                    sVar9 = 1;\n                    sVar6 = 0;\n                    cVar10 = (char)options_00;\n                  }\n                  else {\n                    sVar9 = sVar6 + 1;\n                  }\n                  pcVar12 = pcVar12 + 1;\n                  dpi_00->len = sVar9;\n                  dpi_00->buf[sVar6] = cVar10;\n                  dpi_00->last_char = cVar10;\n                  if (pcVar11 == pcVar12) goto LAB_001a03d9;\n                  cVar10 = *pcVar12;\n                  sVar6 = sVar9;\n                } while( true );\n              }\n              do {\n                if (dVar7 != DEMANGLE_COMPONENT_TRANSACTION_SAFE) {\n                  if (dVar7 < DEMANGLE_COMPONENT_CLONE) {\n                    if (4 < dVar7 - DEMANGLE_COMPONENT_RESTRICT_THIS) {\nLAB_001a036d:\n                      d_print_comp(dpi_01,options_00,dc);\n                      dpi_00->templates = pdVar13;\n                      return;\n                    }\n                  }\n                  else if (1 < dVar7 - DEMANGLE_COMPONENT_NOEXCEPT) goto LAB_001a036d;\n                }\nLAB_001a03d9:\n                dc = (dc->u).s_fixed.length;\n                dVar7 = dc->type;\n              } while( true );\n            }\n            d_print_mod(dpi_01,options_00,in_stack_ffffffbc);\n            dpi_00->templates = pdVar13;\n          }\n        }\n      }" { (expression_statement "puVar3 = (uint *)piVar2[1];" (assignment_expression "puVar3 = (uint *)piVar2[1]" identifier = (cast_expression "(uint *)piVar2[1]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar2[1]" identifier [ number_literal ]))) ;) (expression_statement "uVar4 = *puVar3;" (assignment_expression "uVar4 = *puVar3" identifier = (pointer_expression "*puVar3" * identifier)) ;) (if_statement "if (dpi != (d_print_info *)0x0) goto LAB_001a0258;" if (parenthesized_expression "(dpi != (d_print_info *)0x0)" ( (binary_expression "dpi != (d_print_info *)0x0" identifier != (cast_expression "(d_print_info *)0x0" ( (type_descriptor "d_print_info *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_001a0258;" goto statement_identifier ;)) (if_statement "if (uVar4 != 0x4c) {\n          if (uVar4 < 0x4d) {\n            if (4 < uVar4 - 0x1c) goto LAB_001a0258;\n          }\n          else if (1 < uVar4 - 0x4e) {\nLAB_001a0258:\n            pdVar13 = dpi_00->templates;\n            piVar2[2] = 1;\n            dpi_00->templates = (d_print_template *)piVar2[3];\n            if (uVar4 == 0x29) {\n              d_print_function_type\n                        (dpi_00,(int)dpi_01,(demangle_component *)(puVar3 + 3),\n                         (d_print_mod *)*piVar2);\n              dpi_00->templates = pdVar13;\n              return;\n            }\n            if (uVar4 == 0x2a) {\n              d_print_array_type(dpi_00,(int)dpi_01,(demangle_component *)(puVar3 + 2),\n                                 (d_print_mod *)*piVar2);\n              dpi_00->templates = pdVar13;\n              return;\n            }\n            if (uVar4 == 2) {\n              pdVar5 = dpi_00->modifiers;\n              dpi_00->modifiers = (d_print_mod *)0x0;\n              d_print_comp(dpi_01,options_00,in_stack_ffffffbc);\n              dpi_00->modifiers = pdVar5;\n              sVar6 = dpi_00->len;\n              if (((uint)dpi_01 & 4) == 0) {\n                pcVar12 = (char *)(options_00 + -0xd471f);\n                pcVar11 = (char *)(options_00 + -0xd471d);\n                cVar10 = ':';\n                while( true ) {\n                  if (sVar6 == 0xff) {\n                    dpi_00->buf[0xff] = '\0';\n                    (*dpi_00->callback)(dpi_00->buf,0xff,dpi_00->opaque);\n                    dpi_00->flush_count = dpi_00->flush_count + 1;\n                    sVar9 = 1;\n                    sVar6 = 0;\n                  }\n                  else {\n                    sVar9 = sVar6 + 1;\n                  }\n                  pcVar12 = pcVar12 + 1;\n                  dpi_00->len = sVar9;\n                  dpi_00->buf[sVar6] = cVar10;\n                  dpi_00->last_char = cVar10;\n                  if (pcVar12 == pcVar11) break;\n                  cVar10 = *pcVar12;\n                  sVar6 = sVar9;\n                }\n              }\n              else {\n                sVar9 = sVar6 + 1;\n                if (sVar6 == 0xff) {\n                  dpi_00->buf[0xff] = '\0';\n                  (*dpi_00->callback)(dpi_00->buf,0xff,dpi_00->opaque);\n                  dpi_00->flush_count = dpi_00->flush_count + 1;\n                  sVar9 = 1;\n                  sVar6 = 0;\n                }\n                dpi_00->len = sVar9;\n                dpi_00->buf[sVar6] = '.';\n                dpi_00->last_char = '.';\n              }\n              dc = *(demangle_component **)(piVar2[1] + 0xc);\n              dVar7 = dc->type;\n              if (dVar7 == DEMANGLE_COMPONENT_DEFAULT_ARG) {\n                cVar10 = '{';\n                pcVar11 = (char *)(options_00 + -0xd472d);\n                pcVar12 = (char *)(options_00 + -0xd4721);\n                sVar6 = dpi_00->len;\n                while( true ) {\n                  if (sVar6 == 0xff) {\n                    dpi_00->buf[0xff] = '\0';\n                    (*dpi_00->callback)(dpi_00->buf,0xff,dpi_00->opaque);\n                    dpi_00->flush_count = dpi_00->flush_count + 1;\n                    sVar9 = 1;\n                    sVar6 = 0;\n                  }\n                  else {\n                    sVar9 = sVar6 + 1;\n                  }\n                  dpi_00->len = sVar9;\n                  dpi_00->buf[sVar6] = cVar10;\n                  dpi_00->last_char = cVar10;\n                  if (pcVar11 == pcVar12) break;\n                  cVar10 = *pcVar11;\n                  pcVar11 = pcVar11 + 1;\n                  sVar6 = sVar9;\n                }\n                pcVar11 = buf;\n                sprintf(pcVar11,(char *)(options_00 + -0xd6197),\n                        (byte *)((int)&((dc->u).s_extended_operator.name)->type + 1));\n                sVar8 = strlen(pcVar11);\n                sVar6 = dpi_00->len;\n                if (sVar8 != 0) {\n                  pcVar12 = pcVar11 + sVar8;\n                  sVar9 = sVar6;\n                  do {\n                    cVar10 = *pcVar11;\n                    if (sVar9 == 0xff) {\n                      dpi_00->buf[0xff] = '\0';\n                      (*dpi_00->callback)(dpi_00->buf,0xff,dpi_00->opaque);\n                      dpi_00->flush_count = dpi_00->flush_count + 1;\n                      sVar6 = 1;\n                      sVar9 = 0;\n                    }\n                    else {\n                      sVar6 = sVar9 + 1;\n                    }\n                    pcVar11 = pcVar11 + 1;\n                    dpi_00->len = sVar6;\n                    dpi_00->buf[sVar9] = cVar10;\n                    dpi_00->last_char = cVar10;\n                    sVar9 = sVar6;\n                  } while (pcVar12 != pcVar11);\n                }\n                pcVar12 = (char *)(options_00 + -0xd4720);\n                cVar10 = '}';\n                pcVar11 = (char *)(options_00 + -0xd471d);\n                do {\n                  if (sVar6 == 0xff) {\n                    options_00 = CONCAT31((int3)((uint)options_00 >> 8),cVar10);\n                    dpi_00->buf[0xff] = '\0';\n                    (*dpi_00->callback)(dpi_00->buf,0xff,dpi_00->opaque);\n                    dpi_00->flush_count = dpi_00->flush_count + 1;\n                    sVar9 = 1;\n                    sVar6 = 0;\n                    cVar10 = (char)options_00;\n                  }\n                  else {\n                    sVar9 = sVar6 + 1;\n                  }\n                  pcVar12 = pcVar12 + 1;\n                  dpi_00->len = sVar9;\n                  dpi_00->buf[sVar6] = cVar10;\n                  dpi_00->last_char = cVar10;\n                  if (pcVar11 == pcVar12) goto LAB_001a03d9;\n                  cVar10 = *pcVar12;\n                  sVar6 = sVar9;\n                } while( true );\n              }\n              do {\n                if (dVar7 != DEMANGLE_COMPONENT_TRANSACTION_SAFE) {\n                  if (dVar7 < DEMANGLE_COMPONENT_CLONE) {\n                    if (4 < dVar7 - DEMANGLE_COMPONENT_RESTRICT_THIS) {\nLAB_001a036d:\n                      d_print_comp(dpi_01,options_00,dc);\n                      dpi_00->templates = pdVar13;\n                      return;\n                    }\n                  }\n                  else if (1 < dVar7 - DEMANGLE_COMPONENT_NOEXCEPT) goto LAB_001a036d;\n                }\nLAB_001a03d9:\n                dc = (dc->u).s_fixed.length;\n                dVar7 = dc->type;\n              } while( true );\n            }\n            d_print_mod(dpi_01,options_00,in_stack_ffffffbc);\n            dpi_00->templates = pdVar13;\n          }\n        }" if (parenthesized_expression "(uVar4 != 0x4c)" ( (binary_expression "uVar4 != 0x4c" identifier != number_literal) )) (compound_statement "{\n          if (uVar4 < 0x4d) {\n            if (4 < uVar4 - 0x1c) goto LAB_001a0258;\n          }\n          else if (1 < uVar4 - 0x4e) {\nLAB_001a0258:\n            pdVar13 = dpi_00->templates;\n            piVar2[2] = 1;\n            dpi_00->templates = (d_print_template *)piVar2[3];\n            if (uVar4 == 0x29) {\n              d_print_function_type\n                        (dpi_00,(int)dpi_01,(demangle_component *)(puVar3 + 3),\n                         (d_print_mod *)*piVar2);\n              dpi_00->templates = pdVar13;\n              return;\n            }\n            if (uVar4 == 0x2a) {\n              d_print_array_type(dpi_00,(int)dpi_01,(demangle_component *)(puVar3 + 2),\n                                 (d_print_mod *)*piVar2);\n              dpi_00->templates = pdVar13;\n              return;\n            }\n            if (uVar4 == 2) {\n              pdVar5 = dpi_00->modifiers;\n              dpi_00->modifiers = (d_print_mod *)0x0;\n              d_print_comp(dpi_01,options_00,in_stack_ffffffbc);\n              dpi_00->modifiers = pdVar5;\n              sVar6 = dpi_00->len;\n              if (((uint)dpi_01 & 4) == 0) {\n                pcVar12 = (char *)(options_00 + -0xd471f);\n                pcVar11 = (char *)(options_00 + -0xd471d);\n                cVar10 = ':';\n                while( true ) {\n                  if (sVar6 == 0xff) {\n                    dpi_00->buf[0xff] = '\0';\n                    (*dpi_00->callback)(dpi_00->buf,0xff,dpi_00->opaque);\n                    dpi_00->flush_count = dpi_00->flush_count + 1;\n                    sVar9 = 1;\n                    sVar6 = 0;\n                  }\n                  else {\n                    sVar9 = sVar6 + 1;\n                  }\n                  pcVar12 = pcVar12 + 1;\n                  dpi_00->len = sVar9;\n                  dpi_00->buf[sVar6] = cVar10;\n                  dpi_00->last_char = cVar10;\n                  if (pcVar12 == pcVar11) break;\n                  cVar10 = *pcVar12;\n                  sVar6 = sVar9;\n                }\n              }\n              else {\n                sVar9 = sVar6 + 1;\n                if (sVar6 == 0xff) {\n                  dpi_00->buf[0xff] = '\0';\n                  (*dpi_00->callback)(dpi_00->buf,0xff,dpi_00->opaque);\n                  dpi_00->flush_count = dpi_00->flush_count + 1;\n                  sVar9 = 1;\n                  sVar6 = 0;\n                }\n                dpi_00->len = sVar9;\n                dpi_00->buf[sVar6] = '.';\n                dpi_00->last_char = '.';\n              }\n              dc = *(demangle_component **)(piVar2[1] + 0xc);\n              dVar7 = dc->type;\n              if (dVar7 == DEMANGLE_COMPONENT_DEFAULT_ARG) {\n                cVar10 = '{';\n                pcVar11 = (char *)(options_00 + -0xd472d);\n                pcVar12 = (char *)(options_00 + -0xd4721);\n                sVar6 = dpi_00->len;\n                while( true ) {\n                  if (sVar6 == 0xff) {\n                    dpi_00->buf[0xff] = '\0';\n                    (*dpi_00->callback)(dpi_00->buf,0xff,dpi_00->opaque);\n                    dpi_00->flush_count = dpi_00->flush_count + 1;\n                    sVar9 = 1;\n                    sVar6 = 0;\n                  }\n                  else {\n                    sVar9 = sVar6 + 1;\n                  }\n                  dpi_00->len = sVar9;\n                  dpi_00->buf[sVar6] = cVar10;\n                  dpi_00->last_char = cVar10;\n                  if (pcVar11 == pcVar12) break;\n                  cVar10 = *pcVar11;\n                  pcVar11 = pcVar11 + 1;\n                  sVar6 = sVar9;\n                }\n                pcVar11 = buf;\n                sprintf(pcVar11,(char *)(options_00 + -0xd6197),\n                        (byte *)((int)&((dc->u).s_extended_operator.name)->type + 1));\n                sVar8 = strlen(pcVar11);\n                sVar6 = dpi_00->len;\n                if (sVar8 != 0) {\n                  pcVar12 = pcVar11 + sVar8;\n                  sVar9 = sVar6;\n                  do {\n                    cVar10 = *pcVar11;\n                    if (sVar9 == 0xff) {\n                      dpi_00->buf[0xff] = '\0';\n                      (*dpi_00->callback)(dpi_00->buf,0xff,dpi_00->opaque);\n                      dpi_00->flush_count = dpi_00->flush_count + 1;\n                      sVar6 = 1;\n                      sVar9 = 0;\n                    }\n                    else {\n                      sVar6 = sVar9 + 1;\n                    }\n                    pcVar11 = pcVar11 + 1;\n                    dpi_00->len = sVar6;\n                    dpi_00->buf[sVar9] = cVar10;\n                    dpi_00->last_char = cVar10;\n                    sVar9 = sVar6;\n                  } while (pcVar12 != pcVar11);\n                }\n                pcVar12 = (char *)(options_00 + -0xd4720);\n                cVar10 = '}';\n                pcVar11 = (char *)(options_00 + -0xd471d);\n                do {\n                  if (sVar6 == 0xff) {\n                    options_00 = CONCAT31((int3)((uint)options_00 >> 8),cVar10);\n                    dpi_00->buf[0xff] = '\0';\n                    (*dpi_00->callback)(dpi_00->buf,0xff,dpi_00->opaque);\n                    dpi_00->flush_count = dpi_00->flush_count + 1;\n                    sVar9 = 1;\n                    sVar6 = 0;\n                    cVar10 = (char)options_00;\n                  }\n                  else {\n                    sVar9 = sVar6 + 1;\n                  }\n                  pcVar12 = pcVar12 + 1;\n                  dpi_00->len = sVar9;\n                  dpi_00->buf[sVar6] = cVar10;\n                  dpi_00->last_char = cVar10;\n                  if (pcVar11 == pcVar12) goto LAB_001a03d9;\n                  cVar10 = *pcVar12;\n                  sVar6 = sVar9;\n                } while( true );\n              }\n              do {\n                if (dVar7 != DEMANGLE_COMPONENT_TRANSACTION_SAFE) {\n                  if (dVar7 < DEMANGLE_COMPONENT_CLONE) {\n                    if (4 < dVar7 - DEMANGLE_COMPONENT_RESTRICT_THIS) {\nLAB_001a036d:\n                      d_print_comp(dpi_01,options_00,dc);\n                      dpi_00->templates = pdVar13;\n                      return;\n                    }\n                  }\n                  else if (1 < dVar7 - DEMANGLE_COMPONENT_NOEXCEPT) goto LAB_001a036d;\n                }\nLAB_001a03d9:\n                dc = (dc->u).s_fixed.length;\n                dVar7 = dc->type;\n              } while( true );\n            }\n            d_print_mod(dpi_01,options_00,in_stack_ffffffbc);\n            dpi_00->templates = pdVar13;\n          }\n        }" { (if_statement "if (uVar4 < 0x4d) {\n            if (4 < uVar4 - 0x1c) goto LAB_001a0258;\n          }\n          else if (1 < uVar4 - 0x4e) {\nLAB_001a0258:\n            pdVar13 = dpi_00->templates;\n            piVar2[2] = 1;\n            dpi_00->templates = (d_print_template *)piVar2[3];\n            if (uVar4 == 0x29) {\n              d_print_function_type\n                        (dpi_00,(int)dpi_01,(demangle_component *)(puVar3 + 3),\n                         (d_print_mod *)*piVar2);\n              dpi_00->templates = pdVar13;\n              return;\n            }\n            if (uVar4 == 0x2a) {\n              d_print_array_type(dpi_00,(int)dpi_01,(demangle_component *)(puVar3 + 2),\n                                 (d_print_mod *)*piVar2);\n              dpi_00->templates = pdVar13;\n              return;\n            }\n            if (uVar4 == 2) {\n              pdVar5 = dpi_00->modifiers;\n              dpi_00->modifiers = (d_print_mod *)0x0;\n              d_print_comp(dpi_01,options_00,in_stack_ffffffbc);\n              dpi_00->modifiers = pdVar5;\n              sVar6 = dpi_00->len;\n              if (((uint)dpi_01 & 4) == 0) {\n                pcVar12 = (char *)(options_00 + -0xd471f);\n                pcVar11 = (char *)(options_00 + -0xd471d);\n                cVar10 = ':';\n                while( true ) {\n                  if (sVar6 == 0xff) {\n                    dpi_00->buf[0xff] = '\0';\n                    (*dpi_00->callback)(dpi_00->buf,0xff,dpi_00->opaque);\n                    dpi_00->flush_count = dpi_00->flush_count + 1;\n                    sVar9 = 1;\n                    sVar6 = 0;\n                  }\n                  else {\n                    sVar9 = sVar6 + 1;\n                  }\n                  pcVar12 = pcVar12 + 1;\n                  dpi_00->len = sVar9;\n                  dpi_00->buf[sVar6] = cVar10;\n                  dpi_00->last_char = cVar10;\n                  if (pcVar12 == pcVar11) break;\n                  cVar10 = *pcVar12;\n                  sVar6 = sVar9;\n                }\n              }\n              else {\n                sVar9 = sVar6 + 1;\n                if (sVar6 == 0xff) {\n                  dpi_00->buf[0xff] = '\0';\n                  (*dpi_00->callback)(dpi_00->buf,0xff,dpi_00->opaque);\n                  dpi_00->flush_count = dpi_00->flush_count + 1;\n                  sVar9 = 1;\n                  sVar6 = 0;\n                }\n                dpi_00->len = sVar9;\n                dpi_00->buf[sVar6] = '.';\n                dpi_00->last_char = '.';\n              }\n              dc = *(demangle_component **)(piVar2[1] + 0xc);\n              dVar7 = dc->type;\n              if (dVar7 == DEMANGLE_COMPONENT_DEFAULT_ARG) {\n                cVar10 = '{';\n                pcVar11 = (char *)(options_00 + -0xd472d);\n                pcVar12 = (char *)(options_00 + -0xd4721);\n                sVar6 = dpi_00->len;\n                while( true ) {\n                  if (sVar6 == 0xff) {\n                    dpi_00->buf[0xff] = '\0';\n                    (*dpi_00->callback)(dpi_00->buf,0xff,dpi_00->opaque);\n                    dpi_00->flush_count = dpi_00->flush_count + 1;\n                    sVar9 = 1;\n                    sVar6 = 0;\n                  }\n                  else {\n                    sVar9 = sVar6 + 1;\n                  }\n                  dpi_00->len = sVar9;\n                  dpi_00->buf[sVar6] = cVar10;\n                  dpi_00->last_char = cVar10;\n                  if (pcVar11 == pcVar12) break;\n                  cVar10 = *pcVar11;\n                  pcVar11 = pcVar11 + 1;\n                  sVar6 = sVar9;\n                }\n                pcVar11 = buf;\n                sprintf(pcVar11,(char *)(options_00 + -0xd6197),\n                        (byte *)((int)&((dc->u).s_extended_operator.name)->type + 1));\n                sVar8 = strlen(pcVar11);\n                sVar6 = dpi_00->len;\n                if (sVar8 != 0) {\n                  pcVar12 = pcVar11 + sVar8;\n                  sVar9 = sVar6;\n                  do {\n                    cVar10 = *pcVar11;\n                    if (sVar9 == 0xff) {\n                      dpi_00->buf[0xff] = '\0';\n                      (*dpi_00->callback)(dpi_00->buf,0xff,dpi_00->opaque);\n                      dpi_00->flush_count = dpi_00->flush_count + 1;\n                      sVar6 = 1;\n                      sVar9 = 0;\n                    }\n                    else {\n                      sVar6 = sVar9 + 1;\n                    }\n                    pcVar11 = pcVar11 + 1;\n                    dpi_00->len = sVar6;\n                    dpi_00->buf[sVar9] = cVar10;\n                    dpi_00->last_char = cVar10;\n                    sVar9 = sVar6;\n                  } while (pcVar12 != pcVar11);\n                }\n                pcVar12 = (char *)(options_00 + -0xd4720);\n                cVar10 = '}';\n                pcVar11 = (char *)(options_00 + -0xd471d);\n                do {\n                  if (sVar6 == 0xff) {\n                    options_00 = CONCAT31((int3)((uint)options_00 >> 8),cVar10);\n                    dpi_00->buf[0xff] = '\0';\n                    (*dpi_00->callback)(dpi_00->buf,0xff,dpi_00->opaque);\n                    dpi_00->flush_count = dpi_00->flush_count + 1;\n                    sVar9 = 1;\n                    sVar6 = 0;\n                    cVar10 = (char)options_00;\n                  }\n                  else {\n                    sVar9 = sVar6 + 1;\n                  }\n                  pcVar12 = pcVar12 + 1;\n                  dpi_00->len = sVar9;\n                  dpi_00->buf[sVar6] = cVar10;\n                  dpi_00->last_char = cVar10;\n                  if (pcVar11 == pcVar12) goto LAB_001a03d9;\n                  cVar10 = *pcVar12;\n                  sVar6 = sVar9;\n                } while( true );\n              }\n              do {\n                if (dVar7 != DEMANGLE_COMPONENT_TRANSACTION_SAFE) {\n                  if (dVar7 < DEMANGLE_COMPONENT_CLONE) {\n                    if (4 < dVar7 - DEMANGLE_COMPONENT_RESTRICT_THIS) {\nLAB_001a036d:\n                      d_print_comp(dpi_01,options_00,dc);\n                      dpi_00->templates = pdVar13;\n                      return;\n                    }\n                  }\n                  else if (1 < dVar7 - DEMANGLE_COMPONENT_NOEXCEPT) goto LAB_001a036d;\n                }\nLAB_001a03d9:\n                dc = (dc->u).s_fixed.length;\n                dVar7 = dc->type;\n              } while( true );\n            }\n            d_print_mod(dpi_01,options_00,in_stack_ffffffbc);\n            dpi_00->templates = pdVar13;\n          }" if (parenthesized_expression "(uVar4 < 0x4d)" ( (binary_expression "uVar4 < 0x4d" identifier < number_literal) )) (compound_statement "{\n            if (4 < uVar4 - 0x1c) goto LAB_001a0258;\n          }" { (if_statement "if (4 < uVar4 - 0x1c) goto LAB_001a0258;" if (parenthesized_expression "(4 < uVar4 - 0x1c)" ( (binary_expression "4 < uVar4 - 0x1c" number_literal < (binary_expression "uVar4 - 0x1c" identifier - number_literal)) )) (goto_statement "goto LAB_001a0258;" goto statement_identifier ;)) }) (else_clause "else if (1 < uVar4 - 0x4e) {\nLAB_001a0258:\n            pdVar13 = dpi_00->templates;\n            piVar2[2] = 1;\n            dpi_00->templates = (d_print_template *)piVar2[3];\n            if (uVar4 == 0x29) {\n              d_print_function_type\n                        (dpi_00,(int)dpi_01,(demangle_component *)(puVar3 + 3),\n                         (d_print_mod *)*piVar2);\n              dpi_00->templates = pdVar13;\n              return;\n            }\n            if (uVar4 == 0x2a) {\n              d_print_array_type(dpi_00,(int)dpi_01,(demangle_component *)(puVar3 + 2),\n                                 (d_print_mod *)*piVar2);\n              dpi_00->templates = pdVar13;\n              return;\n            }\n            if (uVar4 == 2) {\n              pdVar5 = dpi_00->modifiers;\n              dpi_00->modifiers = (d_print_mod *)0x0;\n              d_print_comp(dpi_01,options_00,in_stack_ffffffbc);\n              dpi_00->modifiers = pdVar5;\n              sVar6 = dpi_00->len;\n              if (((uint)dpi_01 & 4) == 0) {\n                pcVar12 = (char *)(options_00 + -0xd471f);\n                pcVar11 = (char *)(options_00 + -0xd471d);\n                cVar10 = ':';\n                while( true ) {\n                  if (sVar6 == 0xff) {\n                    dpi_00->buf[0xff] = '\0';\n                    (*dpi_00->callback)(dpi_00->buf,0xff,dpi_00->opaque);\n                    dpi_00->flush_count = dpi_00->flush_count + 1;\n                    sVar9 = 1;\n                    sVar6 = 0;\n                  }\n                  else {\n                    sVar9 = sVar6 + 1;\n                  }\n                  pcVar12 = pcVar12 + 1;\n                  dpi_00->len = sVar9;\n                  dpi_00->buf[sVar6] = cVar10;\n                  dpi_00->last_char = cVar10;\n                  if (pcVar12 == pcVar11) break;\n                  cVar10 = *pcVar12;\n                  sVar6 = sVar9;\n                }\n              }\n              else {\n                sVar9 = sVar6 + 1;\n                if (sVar6 == 0xff) {\n                  dpi_00->buf[0xff] = '\0';\n                  (*dpi_00->callback)(dpi_00->buf,0xff,dpi_00->opaque);\n                  dpi_00->flush_count = dpi_00->flush_count + 1;\n                  sVar9 = 1;\n                  sVar6 = 0;\n                }\n                dpi_00->len = sVar9;\n                dpi_00->buf[sVar6] = '.';\n                dpi_00->last_char = '.';\n              }\n              dc = *(demangle_component **)(piVar2[1] + 0xc);\n              dVar7 = dc->type;\n              if (dVar7 == DEMANGLE_COMPONENT_DEFAULT_ARG) {\n                cVar10 = '{';\n                pcVar11 = (char *)(options_00 + -0xd472d);\n                pcVar12 = (char *)(options_00 + -0xd4721);\n                sVar6 = dpi_00->len;\n                while( true ) {\n                  if (sVar6 == 0xff) {\n                    dpi_00->buf[0xff] = '\0';\n                    (*dpi_00->callback)(dpi_00->buf,0xff,dpi_00->opaque);\n                    dpi_00->flush_count = dpi_00->flush_count + 1;\n                    sVar9 = 1;\n                    sVar6 = 0;\n                  }\n                  else {\n                    sVar9 = sVar6 + 1;\n                  }\n                  dpi_00->len = sVar9;\n                  dpi_00->buf[sVar6] = cVar10;\n                  dpi_00->last_char = cVar10;\n                  if (pcVar11 == pcVar12) break;\n                  cVar10 = *pcVar11;\n                  pcVar11 = pcVar11 + 1;\n                  sVar6 = sVar9;\n                }\n                pcVar11 = buf;\n                sprintf(pcVar11,(char *)(options_00 + -0xd6197),\n                        (byte *)((int)&((dc->u).s_extended_operator.name)->type + 1));\n                sVar8 = strlen(pcVar11);\n                sVar6 = dpi_00->len;\n                if (sVar8 != 0) {\n                  pcVar12 = pcVar11 + sVar8;\n                  sVar9 = sVar6;\n                  do {\n                    cVar10 = *pcVar11;\n                    if (sVar9 == 0xff) {\n                      dpi_00->buf[0xff] = '\0';\n                      (*dpi_00->callback)(dpi_00->buf,0xff,dpi_00->opaque);\n                      dpi_00->flush_count = dpi_00->flush_count + 1;\n                      sVar6 = 1;\n                      sVar9 = 0;\n                    }\n                    else {\n                      sVar6 = sVar9 + 1;\n                    }\n                    pcVar11 = pcVar11 + 1;\n                    dpi_00->len = sVar6;\n                    dpi_00->buf[sVar9] = cVar10;\n                    dpi_00->last_char = cVar10;\n                    sVar9 = sVar6;\n                  } while (pcVar12 != pcVar11);\n                }\n                pcVar12 = (char *)(options_00 + -0xd4720);\n                cVar10 = '}';\n                pcVar11 = (char *)(options_00 + -0xd471d);\n                do {\n                  if (sVar6 == 0xff) {\n                    options_00 = CONCAT31((int3)((uint)options_00 >> 8),cVar10);\n                    dpi_00->buf[0xff] = '\0';\n                    (*dpi_00->callback)(dpi_00->buf,0xff,dpi_00->opaque);\n                    dpi_00->flush_count = dpi_00->flush_count + 1;\n                    sVar9 = 1;\n                    sVar6 = 0;\n                    cVar10 = (char)options_00;\n                  }\n                  else {\n                    sVar9 = sVar6 + 1;\n                  }\n                  pcVar12 = pcVar12 + 1;\n                  dpi_00->len = sVar9;\n                  dpi_00->buf[sVar6] = cVar10;\n                  dpi_00->last_char = cVar10;\n                  if (pcVar11 == pcVar12) goto LAB_001a03d9;\n                  cVar10 = *pcVar12;\n                  sVar6 = sVar9;\n                } while( true );\n              }\n              do {\n                if (dVar7 != DEMANGLE_COMPONENT_TRANSACTION_SAFE) {\n                  if (dVar7 < DEMANGLE_COMPONENT_CLONE) {\n                    if (4 < dVar7 - DEMANGLE_COMPONENT_RESTRICT_THIS) {\nLAB_001a036d:\n                      d_print_comp(dpi_01,options_00,dc);\n                      dpi_00->templates = pdVar13;\n                      return;\n                    }\n                  }\n                  else if (1 < dVar7 - DEMANGLE_COMPONENT_NOEXCEPT) goto LAB_001a036d;\n                }\nLAB_001a03d9:\n                dc = (dc->u).s_fixed.length;\n                dVar7 = dc->type;\n              } while( true );\n            }\n            d_print_mod(dpi_01,options_00,in_stack_ffffffbc);\n            dpi_00->templates = pdVar13;\n          }" else (if_statement "if (1 < uVar4 - 0x4e) {\nLAB_001a0258:\n            pdVar13 = dpi_00->templates;\n            piVar2[2] = 1;\n            dpi_00->templates = (d_print_template *)piVar2[3];\n            if (uVar4 == 0x29) {\n              d_print_function_type\n                        (dpi_00,(int)dpi_01,(demangle_component *)(puVar3 + 3),\n                         (d_print_mod *)*piVar2);\n              dpi_00->templates = pdVar13;\n              return;\n            }\n            if (uVar4 == 0x2a) {\n              d_print_array_type(dpi_00,(int)dpi_01,(demangle_component *)(puVar3 + 2),\n                                 (d_print_mod *)*piVar2);\n              dpi_00->templates = pdVar13;\n              return;\n            }\n            if (uVar4 == 2) {\n              pdVar5 = dpi_00->modifiers;\n              dpi_00->modifiers = (d_print_mod *)0x0;\n              d_print_comp(dpi_01,options_00,in_stack_ffffffbc);\n              dpi_00->modifiers = pdVar5;\n              sVar6 = dpi_00->len;\n              if (((uint)dpi_01 & 4) == 0) {\n                pcVar12 = (char *)(options_00 + -0xd471f);\n                pcVar11 = (char *)(options_00 + -0xd471d);\n                cVar10 = ':';\n                while( true ) {\n                  if (sVar6 == 0xff) {\n                    dpi_00->buf[0xff] = '\0';\n                    (*dpi_00->callback)(dpi_00->buf,0xff,dpi_00->opaque);\n                    dpi_00->flush_count = dpi_00->flush_count + 1;\n                    sVar9 = 1;\n                    sVar6 = 0;\n                  }\n                  else {\n                    sVar9 = sVar6 + 1;\n                  }\n                  pcVar12 = pcVar12 + 1;\n                  dpi_00->len = sVar9;\n                  dpi_00->buf[sVar6] = cVar10;\n                  dpi_00->last_char = cVar10;\n                  if (pcVar12 == pcVar11) break;\n                  cVar10 = *pcVar12;\n                  sVar6 = sVar9;\n                }\n              }\n              else {\n                sVar9 = sVar6 + 1;\n                if (sVar6 == 0xff) {\n                  dpi_00->buf[0xff] = '\0';\n                  (*dpi_00->callback)(dpi_00->buf,0xff,dpi_00->opaque);\n                  dpi_00->flush_count = dpi_00->flush_count + 1;\n                  sVar9 = 1;\n                  sVar6 = 0;\n                }\n                dpi_00->len = sVar9;\n                dpi_00->buf[sVar6] = '.';\n                dpi_00->last_char = '.';\n              }\n              dc = *(demangle_component **)(piVar2[1] + 0xc);\n              dVar7 = dc->type;\n              if (dVar7 == DEMANGLE_COMPONENT_DEFAULT_ARG) {\n                cVar10 = '{';\n                pcVar11 = (char *)(options_00 + -0xd472d);\n                pcVar12 = (char *)(options_00 + -0xd4721);\n                sVar6 = dpi_00->len;\n                while( true ) {\n                  if (sVar6 == 0xff) {\n                    dpi_00->buf[0xff] = '\0';\n                    (*dpi_00->callback)(dpi_00->buf,0xff,dpi_00->opaque);\n                    dpi_00->flush_count = dpi_00->flush_count + 1;\n                    sVar9 = 1;\n                    sVar6 = 0;\n                  }\n                  else {\n                    sVar9 = sVar6 + 1;\n                  }\n                  dpi_00->len = sVar9;\n                  dpi_00->buf[sVar6] = cVar10;\n                  dpi_00->last_char = cVar10;\n                  if (pcVar11 == pcVar12) break;\n                  cVar10 = *pcVar11;\n                  pcVar11 = pcVar11 + 1;\n                  sVar6 = sVar9;\n                }\n                pcVar11 = buf;\n                sprintf(pcVar11,(char *)(options_00 + -0xd6197),\n                        (byte *)((int)&((dc->u).s_extended_operator.name)->type + 1));\n                sVar8 = strlen(pcVar11);\n                sVar6 = dpi_00->len;\n                if (sVar8 != 0) {\n                  pcVar12 = pcVar11 + sVar8;\n                  sVar9 = sVar6;\n                  do {\n                    cVar10 = *pcVar11;\n                    if (sVar9 == 0xff) {\n                      dpi_00->buf[0xff] = '\0';\n                      (*dpi_00->callback)(dpi_00->buf,0xff,dpi_00->opaque);\n                      dpi_00->flush_count = dpi_00->flush_count + 1;\n                      sVar6 = 1;\n                      sVar9 = 0;\n                    }\n                    else {\n                      sVar6 = sVar9 + 1;\n                    }\n                    pcVar11 = pcVar11 + 1;\n                    dpi_00->len = sVar6;\n                    dpi_00->buf[sVar9] = cVar10;\n                    dpi_00->last_char = cVar10;\n                    sVar9 = sVar6;\n                  } while (pcVar12 != pcVar11);\n                }\n                pcVar12 = (char *)(options_00 + -0xd4720);\n                cVar10 = '}';\n                pcVar11 = (char *)(options_00 + -0xd471d);\n                do {\n                  if (sVar6 == 0xff) {\n                    options_00 = CONCAT31((int3)((uint)options_00 >> 8),cVar10);\n                    dpi_00->buf[0xff] = '\0';\n                    (*dpi_00->callback)(dpi_00->buf,0xff,dpi_00->opaque);\n                    dpi_00->flush_count = dpi_00->flush_count + 1;\n                    sVar9 = 1;\n                    sVar6 = 0;\n                    cVar10 = (char)options_00;\n                  }\n                  else {\n                    sVar9 = sVar6 + 1;\n                  }\n                  pcVar12 = pcVar12 + 1;\n                  dpi_00->len = sVar9;\n                  dpi_00->buf[sVar6] = cVar10;\n                  dpi_00->last_char = cVar10;\n                  if (pcVar11 == pcVar12) goto LAB_001a03d9;\n                  cVar10 = *pcVar12;\n                  sVar6 = sVar9;\n                } while( true );\n              }\n              do {\n                if (dVar7 != DEMANGLE_COMPONENT_TRANSACTION_SAFE) {\n                  if (dVar7 < DEMANGLE_COMPONENT_CLONE) {\n                    if (4 < dVar7 - DEMANGLE_COMPONENT_RESTRICT_THIS) {\nLAB_001a036d:\n                      d_print_comp(dpi_01,options_00,dc);\n                      dpi_00->templates = pdVar13;\n                      return;\n                    }\n                  }\n                  else if (1 < dVar7 - DEMANGLE_COMPONENT_NOEXCEPT) goto LAB_001a036d;\n                }\nLAB_001a03d9:\n                dc = (dc->u).s_fixed.length;\n                dVar7 = dc->type;\n              } while( true );\n            }\n            d_print_mod(dpi_01,options_00,in_stack_ffffffbc);\n            dpi_00->templates = pdVar13;\n          }" if (parenthesized_expression "(1 < uVar4 - 0x4e)" ( (binary_expression "1 < uVar4 - 0x4e" number_literal < (binary_expression "uVar4 - 0x4e" identifier - number_literal)) )) (compound_statement "{\nLAB_001a0258:\n            pdVar13 = dpi_00->templates;\n            piVar2[2] = 1;\n            dpi_00->templates = (d_print_template *)piVar2[3];\n            if (uVar4 == 0x29) {\n              d_print_function_type\n                        (dpi_00,(int)dpi_01,(demangle_component *)(puVar3 + 3),\n                         (d_print_mod *)*piVar2);\n              dpi_00->templates = pdVar13;\n              return;\n            }\n            if (uVar4 == 0x2a) {\n              d_print_array_type(dpi_00,(int)dpi_01,(demangle_component *)(puVar3 + 2),\n                                 (d_print_mod *)*piVar2);\n              dpi_00->templates = pdVar13;\n              return;\n            }\n            if (uVar4 == 2) {\n              pdVar5 = dpi_00->modifiers;\n              dpi_00->modifiers = (d_print_mod *)0x0;\n              d_print_comp(dpi_01,options_00,in_stack_ffffffbc);\n              dpi_00->modifiers = pdVar5;\n              sVar6 = dpi_00->len;\n              if (((uint)dpi_01 & 4) == 0) {\n                pcVar12 = (char *)(options_00 + -0xd471f);\n                pcVar11 = (char *)(options_00 + -0xd471d);\n                cVar10 = ':';\n                while( true ) {\n                  if (sVar6 == 0xff) {\n                    dpi_00->buf[0xff] = '\0';\n                    (*dpi_00->callback)(dpi_00->buf,0xff,dpi_00->opaque);\n                    dpi_00->flush_count = dpi_00->flush_count + 1;\n                    sVar9 = 1;\n                    sVar6 = 0;\n                  }\n                  else {\n                    sVar9 = sVar6 + 1;\n                  }\n                  pcVar12 = pcVar12 + 1;\n                  dpi_00->len = sVar9;\n                  dpi_00->buf[sVar6] = cVar10;\n                  dpi_00->last_char = cVar10;\n                  if (pcVar12 == pcVar11) break;\n                  cVar10 = *pcVar12;\n                  sVar6 = sVar9;\n                }\n              }\n              else {\n                sVar9 = sVar6 + 1;\n                if (sVar6 == 0xff) {\n                  dpi_00->buf[0xff] = '\0';\n                  (*dpi_00->callback)(dpi_00->buf,0xff,dpi_00->opaque);\n                  dpi_00->flush_count = dpi_00->flush_count + 1;\n                  sVar9 = 1;\n                  sVar6 = 0;\n                }\n                dpi_00->len = sVar9;\n                dpi_00->buf[sVar6] = '.';\n                dpi_00->last_char = '.';\n              }\n              dc = *(demangle_component **)(piVar2[1] + 0xc);\n              dVar7 = dc->type;\n              if (dVar7 == DEMANGLE_COMPONENT_DEFAULT_ARG) {\n                cVar10 = '{';\n                pcVar11 = (char *)(options_00 + -0xd472d);\n                pcVar12 = (char *)(options_00 + -0xd4721);\n                sVar6 = dpi_00->len;\n                while( true ) {\n                  if (sVar6 == 0xff) {\n                    dpi_00->buf[0xff] = '\0';\n                    (*dpi_00->callback)(dpi_00->buf,0xff,dpi_00->opaque);\n                    dpi_00->flush_count = dpi_00->flush_count + 1;\n                    sVar9 = 1;\n                    sVar6 = 0;\n                  }\n                  else {\n                    sVar9 = sVar6 + 1;\n                  }\n                  dpi_00->len = sVar9;\n                  dpi_00->buf[sVar6] = cVar10;\n                  dpi_00->last_char = cVar10;\n                  if (pcVar11 == pcVar12) break;\n                  cVar10 = *pcVar11;\n                  pcVar11 = pcVar11 + 1;\n                  sVar6 = sVar9;\n                }\n                pcVar11 = buf;\n                sprintf(pcVar11,(char *)(options_00 + -0xd6197),\n                        (byte *)((int)&((dc->u).s_extended_operator.name)->type + 1));\n                sVar8 = strlen(pcVar11);\n                sVar6 = dpi_00->len;\n                if (sVar8 != 0) {\n                  pcVar12 = pcVar11 + sVar8;\n                  sVar9 = sVar6;\n                  do {\n                    cVar10 = *pcVar11;\n                    if (sVar9 == 0xff) {\n                      dpi_00->buf[0xff] = '\0';\n                      (*dpi_00->callback)(dpi_00->buf,0xff,dpi_00->opaque);\n                      dpi_00->flush_count = dpi_00->flush_count + 1;\n                      sVar6 = 1;\n                      sVar9 = 0;\n                    }\n                    else {\n                      sVar6 = sVar9 + 1;\n                    }\n                    pcVar11 = pcVar11 + 1;\n                    dpi_00->len = sVar6;\n                    dpi_00->buf[sVar9] = cVar10;\n                    dpi_00->last_char = cVar10;\n                    sVar9 = sVar6;\n                  } while (pcVar12 != pcVar11);\n                }\n                pcVar12 = (char *)(options_00 + -0xd4720);\n                cVar10 = '}';\n                pcVar11 = (char *)(options_00 + -0xd471d);\n                do {\n                  if (sVar6 == 0xff) {\n                    options_00 = CONCAT31((int3)((uint)options_00 >> 8),cVar10);\n                    dpi_00->buf[0xff] = '\0';\n                    (*dpi_00->callback)(dpi_00->buf,0xff,dpi_00->opaque);\n                    dpi_00->flush_count = dpi_00->flush_count + 1;\n                    sVar9 = 1;\n                    sVar6 = 0;\n                    cVar10 = (char)options_00;\n                  }\n                  else {\n                    sVar9 = sVar6 + 1;\n                  }\n                  pcVar12 = pcVar12 + 1;\n                  dpi_00->len = sVar9;\n                  dpi_00->buf[sVar6] = cVar10;\n                  dpi_00->last_char = cVar10;\n                  if (pcVar11 == pcVar12) goto LAB_001a03d9;\n                  cVar10 = *pcVar12;\n                  sVar6 = sVar9;\n                } while( true );\n              }\n              do {\n                if (dVar7 != DEMANGLE_COMPONENT_TRANSACTION_SAFE) {\n                  if (dVar7 < DEMANGLE_COMPONENT_CLONE) {\n                    if (4 < dVar7 - DEMANGLE_COMPONENT_RESTRICT_THIS) {\nLAB_001a036d:\n                      d_print_comp(dpi_01,options_00,dc);\n                      dpi_00->templates = pdVar13;\n                      return;\n                    }\n                  }\n                  else if (1 < dVar7 - DEMANGLE_COMPONENT_NOEXCEPT) goto LAB_001a036d;\n                }\nLAB_001a03d9:\n                dc = (dc->u).s_fixed.length;\n                dVar7 = dc->type;\n              } while( true );\n            }\n            d_print_mod(dpi_01,options_00,in_stack_ffffffbc);\n            dpi_00->templates = pdVar13;\n          }" { (labeled_statement "LAB_001a0258:\n            pdVar13 = dpi_00->templates;" statement_identifier : (expression_statement "pdVar13 = dpi_00->templates;" (assignment_expression "pdVar13 = dpi_00->templates" identifier = (field_expression "dpi_00->templates" identifier -> field_identifier)) ;)) (expression_statement "piVar2[2] = 1;" (assignment_expression "piVar2[2] = 1" (subscript_expression "piVar2[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "dpi_00->templates = (d_print_template *)piVar2[3];" (assignment_expression "dpi_00->templates = (d_print_template *)piVar2[3]" (field_expression "dpi_00->templates" identifier -> field_identifier) = (cast_expression "(d_print_template *)piVar2[3]" ( (type_descriptor "d_print_template *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar2[3]" identifier [ number_literal ]))) ;) (if_statement "if (uVar4 == 0x29) {\n              d_print_function_type\n                        (dpi_00,(int)dpi_01,(demangle_component *)(puVar3 + 3),\n                         (d_print_mod *)*piVar2);\n              dpi_00->templates = pdVar13;\n              return;\n            }" if (parenthesized_expression "(uVar4 == 0x29)" ( (binary_expression "uVar4 == 0x29" identifier == number_literal) )) (compound_statement "{\n              d_print_function_type\n                        (dpi_00,(int)dpi_01,(demangle_component *)(puVar3 + 3),\n                         (d_print_mod *)*piVar2);\n              dpi_00->templates = pdVar13;\n              return;\n            }" { (expression_statement "d_print_function_type\n                        (dpi_00,(int)dpi_01,(demangle_component *)(puVar3 + 3),\n                         (d_print_mod *)*piVar2);" (call_expression "d_print_function_type\n                        (dpi_00,(int)dpi_01,(demangle_component *)(puVar3 + 3),\n                         (d_print_mod *)*piVar2)" identifier (argument_list "(dpi_00,(int)dpi_01,(demangle_component *)(puVar3 + 3),\n                         (d_print_mod *)*piVar2)" ( identifier , (cast_expression "(int)dpi_01" ( (type_descriptor "int" primitive_type) ) identifier) , (cast_expression "(demangle_component *)(puVar3 + 3)" ( (type_descriptor "demangle_component *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + 3)" ( (binary_expression "puVar3 + 3" identifier + number_literal) ))) , (cast_expression "(d_print_mod *)*piVar2" ( (type_descriptor "d_print_mod *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar2" * identifier)) ))) ;) (expression_statement "dpi_00->templates = pdVar13;" (assignment_expression "dpi_00->templates = pdVar13" (field_expression "dpi_00->templates" identifier -> field_identifier) = identifier) ;) (return_statement "return;" return ;) })) (if_statement "if (uVar4 == 0x2a) {\n              d_print_array_type(dpi_00,(int)dpi_01,(demangle_component *)(puVar3 + 2),\n                                 (d_print_mod *)*piVar2);\n              dpi_00->templates = pdVar13;\n              return;\n            }" if (parenthesized_expression "(uVar4 == 0x2a)" ( (binary_expression "uVar4 == 0x2a" identifier == number_literal) )) (compound_statement "{\n              d_print_array_type(dpi_00,(int)dpi_01,(demangle_component *)(puVar3 + 2),\n                                 (d_print_mod *)*piVar2);\n              dpi_00->templates = pdVar13;\n              return;\n            }" { (expression_statement "d_print_array_type(dpi_00,(int)dpi_01,(demangle_component *)(puVar3 + 2),\n                                 (d_print_mod *)*piVar2);" (call_expression "d_print_array_type(dpi_00,(int)dpi_01,(demangle_component *)(puVar3 + 2),\n                                 (d_print_mod *)*piVar2)" identifier (argument_list "(dpi_00,(int)dpi_01,(demangle_component *)(puVar3 + 2),\n                                 (d_print_mod *)*piVar2)" ( identifier , (cast_expression "(int)dpi_01" ( (type_descriptor "int" primitive_type) ) identifier) , (cast_expression "(demangle_component *)(puVar3 + 2)" ( (type_descriptor "demangle_component *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + 2)" ( (binary_expression "puVar3 + 2" identifier + number_literal) ))) , (cast_expression "(d_print_mod *)*piVar2" ( (type_descriptor "d_print_mod *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar2" * identifier)) ))) ;) (expression_statement "dpi_00->templates = pdVar13;" (assignment_expression "dpi_00->templates = pdVar13" (field_expression "dpi_00->templates" identifier -> field_identifier) = identifier) ;) (return_statement "return;" return ;) })) (if_statement "if (uVar4 == 2) {\n              pdVar5 = dpi_00->modifiers;\n              dpi_00->modifiers = (d_print_mod *)0x0;\n              d_print_comp(dpi_01,options_00,in_stack_ffffffbc);\n              dpi_00->modifiers = pdVar5;\n              sVar6 = dpi_00->len;\n              if (((uint)dpi_01 & 4) == 0) {\n                pcVar12 = (char *)(options_00 + -0xd471f);\n                pcVar11 = (char *)(options_00 + -0xd471d);\n                cVar10 = ':';\n                while( true ) {\n                  if (sVar6 == 0xff) {\n                    dpi_00->buf[0xff] = '\0';\n                    (*dpi_00->callback)(dpi_00->buf,0xff,dpi_00->opaque);\n                    dpi_00->flush_count = dpi_00->flush_count + 1;\n                    sVar9 = 1;\n                    sVar6 = 0;\n                  }\n                  else {\n                    sVar9 = sVar6 + 1;\n                  }\n                  pcVar12 = pcVar12 + 1;\n                  dpi_00->len = sVar9;\n                  dpi_00->buf[sVar6] = cVar10;\n                  dpi_00->last_char = cVar10;\n                  if (pcVar12 == pcVar11) break;\n                  cVar10 = *pcVar12;\n                  sVar6 = sVar9;\n                }\n              }\n              else {\n                sVar9 = sVar6 + 1;\n                if (sVar6 == 0xff) {\n                  dpi_00->buf[0xff] = '\0';\n                  (*dpi_00->callback)(dpi_00->buf,0xff,dpi_00->opaque);\n                  dpi_00->flush_count = dpi_00->flush_count + 1;\n                  sVar9 = 1;\n                  sVar6 = 0;\n                }\n                dpi_00->len = sVar9;\n                dpi_00->buf[sVar6] = '.';\n                dpi_00->last_char = '.';\n              }\n              dc = *(demangle_component **)(piVar2[1] + 0xc);\n              dVar7 = dc->type;\n              if (dVar7 == DEMANGLE_COMPONENT_DEFAULT_ARG) {\n                cVar10 = '{';\n                pcVar11 = (char *)(options_00 + -0xd472d);\n                pcVar12 = (char *)(options_00 + -0xd4721);\n                sVar6 = dpi_00->len;\n                while( true ) {\n                  if (sVar6 == 0xff) {\n                    dpi_00->buf[0xff] = '\0';\n                    (*dpi_00->callback)(dpi_00->buf,0xff,dpi_00->opaque);\n                    dpi_00->flush_count = dpi_00->flush_count + 1;\n                    sVar9 = 1;\n                    sVar6 = 0;\n                  }\n                  else {\n                    sVar9 = sVar6 + 1;\n                  }\n                  dpi_00->len = sVar9;\n                  dpi_00->buf[sVar6] = cVar10;\n                  dpi_00->last_char = cVar10;\n                  if (pcVar11 == pcVar12) break;\n                  cVar10 = *pcVar11;\n                  pcVar11 = pcVar11 + 1;\n                  sVar6 = sVar9;\n                }\n                pcVar11 = buf;\n                sprintf(pcVar11,(char *)(options_00 + -0xd6197),\n                        (byte *)((int)&((dc->u).s_extended_operator.name)->type + 1));\n                sVar8 = strlen(pcVar11);\n                sVar6 = dpi_00->len;\n                if (sVar8 != 0) {\n                  pcVar12 = pcVar11 + sVar8;\n                  sVar9 = sVar6;\n                  do {\n                    cVar10 = *pcVar11;\n                    if (sVar9 == 0xff) {\n                      dpi_00->buf[0xff] = '\0';\n                      (*dpi_00->callback)(dpi_00->buf,0xff,dpi_00->opaque);\n                      dpi_00->flush_count = dpi_00->flush_count + 1;\n                      sVar6 = 1;\n                      sVar9 = 0;\n                    }\n                    else {\n                      sVar6 = sVar9 + 1;\n                    }\n                    pcVar11 = pcVar11 + 1;\n                    dpi_00->len = sVar6;\n                    dpi_00->buf[sVar9] = cVar10;\n                    dpi_00->last_char = cVar10;\n                    sVar9 = sVar6;\n                  } while (pcVar12 != pcVar11);\n                }\n                pcVar12 = (char *)(options_00 + -0xd4720);\n                cVar10 = '}';\n                pcVar11 = (char *)(options_00 + -0xd471d);\n                do {\n                  if (sVar6 == 0xff) {\n                    options_00 = CONCAT31((int3)((uint)options_00 >> 8),cVar10);\n                    dpi_00->buf[0xff] = '\0';\n                    (*dpi_00->callback)(dpi_00->buf,0xff,dpi_00->opaque);\n                    dpi_00->flush_count = dpi_00->flush_count + 1;\n                    sVar9 = 1;\n                    sVar6 = 0;\n                    cVar10 = (char)options_00;\n                  }\n                  else {\n                    sVar9 = sVar6 + 1;\n                  }\n                  pcVar12 = pcVar12 + 1;\n                  dpi_00->len = sVar9;\n                  dpi_00->buf[sVar6] = cVar10;\n                  dpi_00->last_char = cVar10;\n                  if (pcVar11 == pcVar12) goto LAB_001a03d9;\n                  cVar10 = *pcVar12;\n                  sVar6 = sVar9;\n                } while( true );\n              }\n              do {\n                if (dVar7 != DEMANGLE_COMPONENT_TRANSACTION_SAFE) {\n                  if (dVar7 < DEMANGLE_COMPONENT_CLONE) {\n                    if (4 < dVar7 - DEMANGLE_COMPONENT_RESTRICT_THIS) {\nLAB_001a036d:\n                      d_print_comp(dpi_01,options_00,dc);\n                      dpi_00->templates = pdVar13;\n                      return;\n                    }\n                  }\n                  else if (1 < dVar7 - DEMANGLE_COMPONENT_NOEXCEPT) goto LAB_001a036d;\n                }\nLAB_001a03d9:\n                dc = (dc->u).s_fixed.length;\n                dVar7 = dc->type;\n              } while( true );\n            }" if (parenthesized_expression "(uVar4 == 2)" ( (binary_expression "uVar4 == 2" identifier == number_literal) )) (compound_statement "{\n              pdVar5 = dpi_00->modifiers;\n              dpi_00->modifiers = (d_print_mod *)0x0;\n              d_print_comp(dpi_01,options_00,in_stack_ffffffbc);\n              dpi_00->modifiers = pdVar5;\n              sVar6 = dpi_00->len;\n              if (((uint)dpi_01 & 4) == 0) {\n                pcVar12 = (char *)(options_00 + -0xd471f);\n                pcVar11 = (char *)(options_00 + -0xd471d);\n                cVar10 = ':';\n                while( true ) {\n                  if (sVar6 == 0xff) {\n                    dpi_00->buf[0xff] = '\0';\n                    (*dpi_00->callback)(dpi_00->buf,0xff,dpi_00->opaque);\n                    dpi_00->flush_count = dpi_00->flush_count + 1;\n                    sVar9 = 1;\n                    sVar6 = 0;\n                  }\n                  else {\n                    sVar9 = sVar6 + 1;\n                  }\n                  pcVar12 = pcVar12 + 1;\n                  dpi_00->len = sVar9;\n                  dpi_00->buf[sVar6] = cVar10;\n                  dpi_00->last_char = cVar10;\n                  if (pcVar12 == pcVar11) break;\n                  cVar10 = *pcVar12;\n                  sVar6 = sVar9;\n                }\n              }\n              else {\n                sVar9 = sVar6 + 1;\n                if (sVar6 == 0xff) {\n                  dpi_00->buf[0xff] = '\0';\n                  (*dpi_00->callback)(dpi_00->buf,0xff,dpi_00->opaque);\n                  dpi_00->flush_count = dpi_00->flush_count + 1;\n                  sVar9 = 1;\n                  sVar6 = 0;\n                }\n                dpi_00->len = sVar9;\n                dpi_00->buf[sVar6] = '.';\n                dpi_00->last_char = '.';\n              }\n              dc = *(demangle_component **)(piVar2[1] + 0xc);\n              dVar7 = dc->type;\n              if (dVar7 == DEMANGLE_COMPONENT_DEFAULT_ARG) {\n                cVar10 = '{';\n                pcVar11 = (char *)(options_00 + -0xd472d);\n                pcVar12 = (char *)(options_00 + -0xd4721);\n                sVar6 = dpi_00->len;\n                while( true ) {\n                  if (sVar6 == 0xff) {\n                    dpi_00->buf[0xff] = '\0';\n                    (*dpi_00->callback)(dpi_00->buf,0xff,dpi_00->opaque);\n                    dpi_00->flush_count = dpi_00->flush_count + 1;\n                    sVar9 = 1;\n                    sVar6 = 0;\n                  }\n                  else {\n                    sVar9 = sVar6 + 1;\n                  }\n                  dpi_00->len = sVar9;\n                  dpi_00->buf[sVar6] = cVar10;\n                  dpi_00->last_char = cVar10;\n                  if (pcVar11 == pcVar12) break;\n                  cVar10 = *pcVar11;\n                  pcVar11 = pcVar11 + 1;\n                  sVar6 = sVar9;\n                }\n                pcVar11 = buf;\n                sprintf(pcVar11,(char *)(options_00 + -0xd6197),\n                        (byte *)((int)&((dc->u).s_extended_operator.name)->type + 1));\n                sVar8 = strlen(pcVar11);\n                sVar6 = dpi_00->len;\n                if (sVar8 != 0) {\n                  pcVar12 = pcVar11 + sVar8;\n                  sVar9 = sVar6;\n                  do {\n                    cVar10 = *pcVar11;\n                    if (sVar9 == 0xff) {\n                      dpi_00->buf[0xff] = '\0';\n                      (*dpi_00->callback)(dpi_00->buf,0xff,dpi_00->opaque);\n                      dpi_00->flush_count = dpi_00->flush_count + 1;\n                      sVar6 = 1;\n                      sVar9 = 0;\n                    }\n                    else {\n                      sVar6 = sVar9 + 1;\n                    }\n                    pcVar11 = pcVar11 + 1;\n                    dpi_00->len = sVar6;\n                    dpi_00->buf[sVar9] = cVar10;\n                    dpi_00->last_char = cVar10;\n                    sVar9 = sVar6;\n                  } while (pcVar12 != pcVar11);\n                }\n                pcVar12 = (char *)(options_00 + -0xd4720);\n                cVar10 = '}';\n                pcVar11 = (char *)(options_00 + -0xd471d);\n                do {\n                  if (sVar6 == 0xff) {\n                    options_00 = CONCAT31((int3)((uint)options_00 >> 8),cVar10);\n                    dpi_00->buf[0xff] = '\0';\n                    (*dpi_00->callback)(dpi_00->buf,0xff,dpi_00->opaque);\n                    dpi_00->flush_count = dpi_00->flush_count + 1;\n                    sVar9 = 1;\n                    sVar6 = 0;\n                    cVar10 = (char)options_00;\n                  }\n                  else {\n                    sVar9 = sVar6 + 1;\n                  }\n                  pcVar12 = pcVar12 + 1;\n                  dpi_00->len = sVar9;\n                  dpi_00->buf[sVar6] = cVar10;\n                  dpi_00->last_char = cVar10;\n                  if (pcVar11 == pcVar12) goto LAB_001a03d9;\n                  cVar10 = *pcVar12;\n                  sVar6 = sVar9;\n                } while( true );\n              }\n              do {\n                if (dVar7 != DEMANGLE_COMPONENT_TRANSACTION_SAFE) {\n                  if (dVar7 < DEMANGLE_COMPONENT_CLONE) {\n                    if (4 < dVar7 - DEMANGLE_COMPONENT_RESTRICT_THIS) {\nLAB_001a036d:\n                      d_print_comp(dpi_01,options_00,dc);\n                      dpi_00->templates = pdVar13;\n                      return;\n                    }\n                  }\n                  else if (1 < dVar7 - DEMANGLE_COMPONENT_NOEXCEPT) goto LAB_001a036d;\n                }\nLAB_001a03d9:\n                dc = (dc->u).s_fixed.length;\n                dVar7 = dc->type;\n              } while( true );\n            }" { (expression_statement "pdVar5 = dpi_00->modifiers;" (assignment_expression "pdVar5 = dpi_00->modifiers" identifier = (field_expression "dpi_00->modifiers" identifier -> field_identifier)) ;) (expression_statement "dpi_00->modifiers = (d_print_mod *)0x0;" (assignment_expression "dpi_00->modifiers = (d_print_mod *)0x0" (field_expression "dpi_00->modifiers" identifier -> field_identifier) = (cast_expression "(d_print_mod *)0x0" ( (type_descriptor "d_print_mod *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "d_print_comp(dpi_01,options_00,in_stack_ffffffbc);" (call_expression "d_print_comp(dpi_01,options_00,in_stack_ffffffbc)" identifier (argument_list "(dpi_01,options_00,in_stack_ffffffbc)" ( identifier , identifier , identifier ))) ;) (expression_statement "dpi_00->modifiers = pdVar5;" (assignment_expression "dpi_00->modifiers = pdVar5" (field_expression "dpi_00->modifiers" identifier -> field_identifier) = identifier) ;) (expression_statement "sVar6 = dpi_00->len;" (assignment_expression "sVar6 = dpi_00->len" identifier = (field_expression "dpi_00->len" identifier -> field_identifier)) ;) (if_statement "if (((uint)dpi_01 & 4) == 0) {\n                pcVar12 = (char *)(options_00 + -0xd471f);\n                pcVar11 = (char *)(options_00 + -0xd471d);\n                cVar10 = ':';\n                while( true ) {\n                  if (sVar6 == 0xff) {\n                    dpi_00->buf[0xff] = '\0';\n                    (*dpi_00->callback)(dpi_00->buf,0xff,dpi_00->opaque);\n                    dpi_00->flush_count = dpi_00->flush_count + 1;\n                    sVar9 = 1;\n                    sVar6 = 0;\n                  }\n                  else {\n                    sVar9 = sVar6 + 1;\n                  }\n                  pcVar12 = pcVar12 + 1;\n                  dpi_00->len = sVar9;\n                  dpi_00->buf[sVar6] = cVar10;\n                  dpi_00->last_char = cVar10;\n                  if (pcVar12 == pcVar11) break;\n                  cVar10 = *pcVar12;\n                  sVar6 = sVar9;\n                }\n              }\n              else {\n                sVar9 = sVar6 + 1;\n                if (sVar6 == 0xff) {\n                  dpi_00->buf[0xff] = '\0';\n                  (*dpi_00->callback)(dpi_00->buf,0xff,dpi_00->opaque);\n                  dpi_00->flush_count = dpi_00->flush_count + 1;\n                  sVar9 = 1;\n                  sVar6 = 0;\n                }\n                dpi_00->len = sVar9;\n                dpi_00->buf[sVar6] = '.';\n                dpi_00->last_char = '.';\n              }" if (parenthesized_expression "(((uint)dpi_01 & 4) == 0)" ( (binary_expression "((uint)dpi_01 & 4) == 0" (parenthesized_expression "((uint)dpi_01 & 4)" ( (binary_expression "(uint)dpi_01 & 4" (cast_expression "(uint)dpi_01" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n                pcVar12 = (char *)(options_00 + -0xd471f);\n                pcVar11 = (char *)(options_00 + -0xd471d);\n                cVar10 = ':';\n                while( true ) {\n                  if (sVar6 == 0xff) {\n                    dpi_00->buf[0xff] = '\0';\n                    (*dpi_00->callback)(dpi_00->buf,0xff,dpi_00->opaque);\n                    dpi_00->flush_count = dpi_00->flush_count + 1;\n                    sVar9 = 1;\n                    sVar6 = 0;\n                  }\n                  else {\n                    sVar9 = sVar6 + 1;\n                  }\n                  pcVar12 = pcVar12 + 1;\n                  dpi_00->len = sVar9;\n                  dpi_00->buf[sVar6] = cVar10;\n                  dpi_00->last_char = cVar10;\n                  if (pcVar12 == pcVar11) break;\n                  cVar10 = *pcVar12;\n                  sVar6 = sVar9;\n                }\n              }" { (expression_statement "pcVar12 = (char *)(options_00 + -0xd471f);" (assignment_expression "pcVar12 = (char *)(options_00 + -0xd471f)" identifier = (cast_expression "(char *)(options_00 + -0xd471f)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(options_00 + -0xd471f)" ( (binary_expression "options_00 + -0xd471f" identifier + number_literal) )))) ;) (expression_statement "pcVar11 = (char *)(options_00 + -0xd471d);" (assignment_expression "pcVar11 = (char *)(options_00 + -0xd471d)" identifier = (cast_expression "(char *)(options_00 + -0xd471d)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(options_00 + -0xd471d)" ( (binary_expression "options_00 + -0xd471d" identifier + number_literal) )))) ;) (expression_statement "cVar10 = ':';" (assignment_expression "cVar10 = ':'" identifier = (char_literal "':'" ' character ')) ;) (while_statement "while( true ) {\n                  if (sVar6 == 0xff) {\n                    dpi_00->buf[0xff] = '\0';\n                    (*dpi_00->callback)(dpi_00->buf,0xff,dpi_00->opaque);\n                    dpi_00->flush_count = dpi_00->flush_count + 1;\n                    sVar9 = 1;\n                    sVar6 = 0;\n                  }\n                  else {\n                    sVar9 = sVar6 + 1;\n                  }\n                  pcVar12 = pcVar12 + 1;\n                  dpi_00->len = sVar9;\n                  dpi_00->buf[sVar6] = cVar10;\n                  dpi_00->last_char = cVar10;\n                  if (pcVar12 == pcVar11) break;\n                  cVar10 = *pcVar12;\n                  sVar6 = sVar9;\n                }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n                  if (sVar6 == 0xff) {\n                    dpi_00->buf[0xff] = '\0';\n                    (*dpi_00->callback)(dpi_00->buf,0xff,dpi_00->opaque);\n                    dpi_00->flush_count = dpi_00->flush_count + 1;\n                    sVar9 = 1;\n                    sVar6 = 0;\n                  }\n                  else {\n                    sVar9 = sVar6 + 1;\n                  }\n                  pcVar12 = pcVar12 + 1;\n                  dpi_00->len = sVar9;\n                  dpi_00->buf[sVar6] = cVar10;\n                  dpi_00->last_char = cVar10;\n                  if (pcVar12 == pcVar11) break;\n                  cVar10 = *pcVar12;\n                  sVar6 = sVar9;\n                }" { (if_statement "if (sVar6 == 0xff) {\n                    dpi_00->buf[0xff] = '\0';\n                    (*dpi_00->callback)(dpi_00->buf,0xff,dpi_00->opaque);\n                    dpi_00->flush_count = dpi_00->flush_count + 1;\n                    sVar9 = 1;\n                    sVar6 = 0;\n                  }\n                  else {\n                    sVar9 = sVar6 + 1;\n                  }" if (parenthesized_expression "(sVar6 == 0xff)" ( (binary_expression "sVar6 == 0xff" identifier == number_literal) )) (compound_statement "{\n                    dpi_00->buf[0xff] = '\0';\n                    (*dpi_00->callback)(dpi_00->buf,0xff,dpi_00->opaque);\n                    dpi_00->flush_count = dpi_00->flush_count + 1;\n                    sVar9 = 1;\n                    sVar6 = 0;\n                  }" { (expression_statement "dpi_00->buf[0xff] = '\0';" (assignment_expression "dpi_00->buf[0xff] = '\0'" (subscript_expression "dpi_00->buf[0xff]" (field_expression "dpi_00->buf" identifier -> field_identifier) [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "(*dpi_00->callback)(dpi_00->buf,0xff,dpi_00->opaque);" (call_expression "(*dpi_00->callback)(dpi_00->buf,0xff,dpi_00->opaque)" (parenthesized_expression "(*dpi_00->callback)" ( (pointer_expression "*dpi_00->callback" * (field_expression "dpi_00->callback" identifier -> field_identifier)) )) (argument_list "(dpi_00->buf,0xff,dpi_00->opaque)" ( (field_expression "dpi_00->buf" identifier -> field_identifier) , number_literal , (field_expression "dpi_00->opaque" identifier -> field_identifier) ))) ;) (expression_statement "dpi_00->flush_count = dpi_00->flush_count + 1;" (assignment_expression "dpi_00->flush_count = dpi_00->flush_count + 1" (field_expression "dpi_00->flush_count" identifier -> field_identifier) = (binary_expression "dpi_00->flush_count + 1" (field_expression "dpi_00->flush_count" identifier -> field_identifier) + number_literal)) ;) (expression_statement "sVar9 = 1;" (assignment_expression "sVar9 = 1" identifier = number_literal) ;) (expression_statement "sVar6 = 0;" (assignment_expression "sVar6 = 0" identifier = number_literal) ;) }) (else_clause "else {\n                    sVar9 = sVar6 + 1;\n                  }" else (compound_statement "{\n                    sVar9 = sVar6 + 1;\n                  }" { (expression_statement "sVar9 = sVar6 + 1;" (assignment_expression "sVar9 = sVar6 + 1" identifier = (binary_expression "sVar6 + 1" identifier + number_literal)) ;) }))) (expression_statement "pcVar12 = pcVar12 + 1;" (assignment_expression "pcVar12 = pcVar12 + 1" identifier = (binary_expression "pcVar12 + 1" identifier + number_literal)) ;) (expression_statement "dpi_00->len = sVar9;" (assignment_expression "dpi_00->len = sVar9" (field_expression "dpi_00->len" identifier -> field_identifier) = identifier) ;) (expression_statement "dpi_00->buf[sVar6] = cVar10;" (assignment_expression "dpi_00->buf[sVar6] = cVar10" (subscript_expression "dpi_00->buf[sVar6]" (field_expression "dpi_00->buf" identifier -> field_identifier) [ identifier ]) = identifier) ;) (expression_statement "dpi_00->last_char = cVar10;" (assignment_expression "dpi_00->last_char = cVar10" (field_expression "dpi_00->last_char" identifier -> field_identifier) = identifier) ;) (if_statement "if (pcVar12 == pcVar11) break;" if (parenthesized_expression "(pcVar12 == pcVar11)" ( (binary_expression "pcVar12 == pcVar11" identifier == identifier) )) (break_statement "break;" break ;)) (expression_statement "cVar10 = *pcVar12;" (assignment_expression "cVar10 = *pcVar12" identifier = (pointer_expression "*pcVar12" * identifier)) ;) (expression_statement "sVar6 = sVar9;" (assignment_expression "sVar6 = sVar9" identifier = identifier) ;) })) }) (else_clause "else {\n                sVar9 = sVar6 + 1;\n                if (sVar6 == 0xff) {\n                  dpi_00->buf[0xff] = '\0';\n                  (*dpi_00->callback)(dpi_00->buf,0xff,dpi_00->opaque);\n                  dpi_00->flush_count = dpi_00->flush_count + 1;\n                  sVar9 = 1;\n                  sVar6 = 0;\n                }\n                dpi_00->len = sVar9;\n                dpi_00->buf[sVar6] = '.';\n                dpi_00->last_char = '.';\n              }" else (compound_statement "{\n                sVar9 = sVar6 + 1;\n                if (sVar6 == 0xff) {\n                  dpi_00->buf[0xff] = '\0';\n                  (*dpi_00->callback)(dpi_00->buf,0xff,dpi_00->opaque);\n                  dpi_00->flush_count = dpi_00->flush_count + 1;\n                  sVar9 = 1;\n                  sVar6 = 0;\n                }\n                dpi_00->len = sVar9;\n                dpi_00->buf[sVar6] = '.';\n                dpi_00->last_char = '.';\n              }" { (expression_statement "sVar9 = sVar6 + 1;" (assignment_expression "sVar9 = sVar6 + 1" identifier = (binary_expression "sVar6 + 1" identifier + number_literal)) ;) (if_statement "if (sVar6 == 0xff) {\n                  dpi_00->buf[0xff] = '\0';\n                  (*dpi_00->callback)(dpi_00->buf,0xff,dpi_00->opaque);\n                  dpi_00->flush_count = dpi_00->flush_count + 1;\n                  sVar9 = 1;\n                  sVar6 = 0;\n                }" if (parenthesized_expression "(sVar6 == 0xff)" ( (binary_expression "sVar6 == 0xff" identifier == number_literal) )) (compound_statement "{\n                  dpi_00->buf[0xff] = '\0';\n                  (*dpi_00->callback)(dpi_00->buf,0xff,dpi_00->opaque);\n                  dpi_00->flush_count = dpi_00->flush_count + 1;\n                  sVar9 = 1;\n                  sVar6 = 0;\n                }" { (expression_statement "dpi_00->buf[0xff] = '\0';" (assignment_expression "dpi_00->buf[0xff] = '\0'" (subscript_expression "dpi_00->buf[0xff]" (field_expression "dpi_00->buf" identifier -> field_identifier) [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "(*dpi_00->callback)(dpi_00->buf,0xff,dpi_00->opaque);" (call_expression "(*dpi_00->callback)(dpi_00->buf,0xff,dpi_00->opaque)" (parenthesized_expression "(*dpi_00->callback)" ( (pointer_expression "*dpi_00->callback" * (field_expression "dpi_00->callback" identifier -> field_identifier)) )) (argument_list "(dpi_00->buf,0xff,dpi_00->opaque)" ( (field_expression "dpi_00->buf" identifier -> field_identifier) , number_literal , (field_expression "dpi_00->opaque" identifier -> field_identifier) ))) ;) (expression_statement "dpi_00->flush_count = dpi_00->flush_count + 1;" (assignment_expression "dpi_00->flush_count = dpi_00->flush_count + 1" (field_expression "dpi_00->flush_count" identifier -> field_identifier) = (binary_expression "dpi_00->flush_count + 1" (field_expression "dpi_00->flush_count" identifier -> field_identifier) + number_literal)) ;) (expression_statement "sVar9 = 1;" (assignment_expression "sVar9 = 1" identifier = number_literal) ;) (expression_statement "sVar6 = 0;" (assignment_expression "sVar6 = 0" identifier = number_literal) ;) })) (expression_statement "dpi_00->len = sVar9;" (assignment_expression "dpi_00->len = sVar9" (field_expression "dpi_00->len" identifier -> field_identifier) = identifier) ;) (expression_statement "dpi_00->buf[sVar6] = '.';" (assignment_expression "dpi_00->buf[sVar6] = '.'" (subscript_expression "dpi_00->buf[sVar6]" (field_expression "dpi_00->buf" identifier -> field_identifier) [ identifier ]) = (char_literal "'.'" ' character ')) ;) (expression_statement "dpi_00->last_char = '.';" (assignment_expression "dpi_00->last_char = '.'" (field_expression "dpi_00->last_char" identifier -> field_identifier) = (char_literal "'.'" ' character ')) ;) }))) (expression_statement "dc = *(demangle_component **)(piVar2[1] + 0xc);" (assignment_expression "dc = *(demangle_component **)(piVar2[1] + 0xc)" identifier = (pointer_expression "*(demangle_component **)(piVar2[1] + 0xc)" * (cast_expression "(demangle_component **)(piVar2[1] + 0xc)" ( (type_descriptor "demangle_component **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(piVar2[1] + 0xc)" ( (binary_expression "piVar2[1] + 0xc" (subscript_expression "piVar2[1]" identifier [ number_literal ]) + number_literal) ))))) ;) (expression_statement "dVar7 = dc->type;" (assignment_expression "dVar7 = dc->type" identifier = (field_expression "dc->type" identifier -> field_identifier)) ;) (if_statement "if (dVar7 == DEMANGLE_COMPONENT_DEFAULT_ARG) {\n                cVar10 = '{';\n                pcVar11 = (char *)(options_00 + -0xd472d);\n                pcVar12 = (char *)(options_00 + -0xd4721);\n                sVar6 = dpi_00->len;\n                while( true ) {\n                  if (sVar6 == 0xff) {\n                    dpi_00->buf[0xff] = '\0';\n                    (*dpi_00->callback)(dpi_00->buf,0xff,dpi_00->opaque);\n                    dpi_00->flush_count = dpi_00->flush_count + 1;\n                    sVar9 = 1;\n                    sVar6 = 0;\n                  }\n                  else {\n                    sVar9 = sVar6 + 1;\n                  }\n                  dpi_00->len = sVar9;\n                  dpi_00->buf[sVar6] = cVar10;\n                  dpi_00->last_char = cVar10;\n                  if (pcVar11 == pcVar12) break;\n                  cVar10 = *pcVar11;\n                  pcVar11 = pcVar11 + 1;\n                  sVar6 = sVar9;\n                }\n                pcVar11 = buf;\n                sprintf(pcVar11,(char *)(options_00 + -0xd6197),\n                        (byte *)((int)&((dc->u).s_extended_operator.name)->type + 1));\n                sVar8 = strlen(pcVar11);\n                sVar6 = dpi_00->len;\n                if (sVar8 != 0) {\n                  pcVar12 = pcVar11 + sVar8;\n                  sVar9 = sVar6;\n                  do {\n                    cVar10 = *pcVar11;\n                    if (sVar9 == 0xff) {\n                      dpi_00->buf[0xff] = '\0';\n                      (*dpi_00->callback)(dpi_00->buf,0xff,dpi_00->opaque);\n                      dpi_00->flush_count = dpi_00->flush_count + 1;\n                      sVar6 = 1;\n                      sVar9 = 0;\n                    }\n                    else {\n                      sVar6 = sVar9 + 1;\n                    }\n                    pcVar11 = pcVar11 + 1;\n                    dpi_00->len = sVar6;\n                    dpi_00->buf[sVar9] = cVar10;\n                    dpi_00->last_char = cVar10;\n                    sVar9 = sVar6;\n                  } while (pcVar12 != pcVar11);\n                }\n                pcVar12 = (char *)(options_00 + -0xd4720);\n                cVar10 = '}';\n                pcVar11 = (char *)(options_00 + -0xd471d);\n                do {\n                  if (sVar6 == 0xff) {\n                    options_00 = CONCAT31((int3)((uint)options_00 >> 8),cVar10);\n                    dpi_00->buf[0xff] = '\0';\n                    (*dpi_00->callback)(dpi_00->buf,0xff,dpi_00->opaque);\n                    dpi_00->flush_count = dpi_00->flush_count + 1;\n                    sVar9 = 1;\n                    sVar6 = 0;\n                    cVar10 = (char)options_00;\n                  }\n                  else {\n                    sVar9 = sVar6 + 1;\n                  }\n                  pcVar12 = pcVar12 + 1;\n                  dpi_00->len = sVar9;\n                  dpi_00->buf[sVar6] = cVar10;\n                  dpi_00->last_char = cVar10;\n                  if (pcVar11 == pcVar12) goto LAB_001a03d9;\n                  cVar10 = *pcVar12;\n                  sVar6 = sVar9;\n                } while( true );\n              }" if (parenthesized_expression "(dVar7 == DEMANGLE_COMPONENT_DEFAULT_ARG)" ( (binary_expression "dVar7 == DEMANGLE_COMPONENT_DEFAULT_ARG" identifier == identifier) )) (compound_statement "{\n                cVar10 = '{';\n                pcVar11 = (char *)(options_00 + -0xd472d);\n                pcVar12 = (char *)(options_00 + -0xd4721);\n                sVar6 = dpi_00->len;\n                while( true ) {\n                  if (sVar6 == 0xff) {\n                    dpi_00->buf[0xff] = '\0';\n                    (*dpi_00->callback)(dpi_00->buf,0xff,dpi_00->opaque);\n                    dpi_00->flush_count = dpi_00->flush_count + 1;\n                    sVar9 = 1;\n                    sVar6 = 0;\n                  }\n                  else {\n                    sVar9 = sVar6 + 1;\n                  }\n                  dpi_00->len = sVar9;\n                  dpi_00->buf[sVar6] = cVar10;\n                  dpi_00->last_char = cVar10;\n                  if (pcVar11 == pcVar12) break;\n                  cVar10 = *pcVar11;\n                  pcVar11 = pcVar11 + 1;\n                  sVar6 = sVar9;\n                }\n                pcVar11 = buf;\n                sprintf(pcVar11,(char *)(options_00 + -0xd6197),\n                        (byte *)((int)&((dc->u).s_extended_operator.name)->type + 1));\n                sVar8 = strlen(pcVar11);\n                sVar6 = dpi_00->len;\n                if (sVar8 != 0) {\n                  pcVar12 = pcVar11 + sVar8;\n                  sVar9 = sVar6;\n                  do {\n                    cVar10 = *pcVar11;\n                    if (sVar9 == 0xff) {\n                      dpi_00->buf[0xff] = '\0';\n                      (*dpi_00->callback)(dpi_00->buf,0xff,dpi_00->opaque);\n                      dpi_00->flush_count = dpi_00->flush_count + 1;\n                      sVar6 = 1;\n                      sVar9 = 0;\n                    }\n                    else {\n                      sVar6 = sVar9 + 1;\n                    }\n                    pcVar11 = pcVar11 + 1;\n                    dpi_00->len = sVar6;\n                    dpi_00->buf[sVar9] = cVar10;\n                    dpi_00->last_char = cVar10;\n                    sVar9 = sVar6;\n                  } while (pcVar12 != pcVar11);\n                }\n                pcVar12 = (char *)(options_00 + -0xd4720);\n                cVar10 = '}';\n                pcVar11 = (char *)(options_00 + -0xd471d);\n                do {\n                  if (sVar6 == 0xff) {\n                    options_00 = CONCAT31((int3)((uint)options_00 >> 8),cVar10);\n                    dpi_00->buf[0xff] = '\0';\n                    (*dpi_00->callback)(dpi_00->buf,0xff,dpi_00->opaque);\n                    dpi_00->flush_count = dpi_00->flush_count + 1;\n                    sVar9 = 1;\n                    sVar6 = 0;\n                    cVar10 = (char)options_00;\n                  }\n                  else {\n                    sVar9 = sVar6 + 1;\n                  }\n                  pcVar12 = pcVar12 + 1;\n                  dpi_00->len = sVar9;\n                  dpi_00->buf[sVar6] = cVar10;\n                  dpi_00->last_char = cVar10;\n                  if (pcVar11 == pcVar12) goto LAB_001a03d9;\n                  cVar10 = *pcVar12;\n                  sVar6 = sVar9;\n                } while( true );\n              }" { (expression_statement "cVar10 = '{';" (assignment_expression "cVar10 = '{'" identifier = (char_literal "'{'" ' character ')) ;) (expression_statement "pcVar11 = (char *)(options_00 + -0xd472d);" (assignment_expression "pcVar11 = (char *)(options_00 + -0xd472d)" identifier = (cast_expression "(char *)(options_00 + -0xd472d)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(options_00 + -0xd472d)" ( (binary_expression "options_00 + -0xd472d" identifier + number_literal) )))) ;) (expression_statement "pcVar12 = (char *)(options_00 + -0xd4721);" (assignment_expression "pcVar12 = (char *)(options_00 + -0xd4721)" identifier = (cast_expression "(char *)(options_00 + -0xd4721)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(options_00 + -0xd4721)" ( (binary_expression "options_00 + -0xd4721" identifier + number_literal) )))) ;) (expression_statement "sVar6 = dpi_00->len;" (assignment_expression "sVar6 = dpi_00->len" identifier = (field_expression "dpi_00->len" identifier -> field_identifier)) ;) (while_statement "while( true ) {\n                  if (sVar6 == 0xff) {\n                    dpi_00->buf[0xff] = '\0';\n                    (*dpi_00->callback)(dpi_00->buf,0xff,dpi_00->opaque);\n                    dpi_00->flush_count = dpi_00->flush_count + 1;\n                    sVar9 = 1;\n                    sVar6 = 0;\n                  }\n                  else {\n                    sVar9 = sVar6 + 1;\n                  }\n                  dpi_00->len = sVar9;\n                  dpi_00->buf[sVar6] = cVar10;\n                  dpi_00->last_char = cVar10;\n                  if (pcVar11 == pcVar12) break;\n                  cVar10 = *pcVar11;\n                  pcVar11 = pcVar11 + 1;\n                  sVar6 = sVar9;\n                }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n                  if (sVar6 == 0xff) {\n                    dpi_00->buf[0xff] = '\0';\n                    (*dpi_00->callback)(dpi_00->buf,0xff,dpi_00->opaque);\n                    dpi_00->flush_count = dpi_00->flush_count + 1;\n                    sVar9 = 1;\n                    sVar6 = 0;\n                  }\n                  else {\n                    sVar9 = sVar6 + 1;\n                  }\n                  dpi_00->len = sVar9;\n                  dpi_00->buf[sVar6] = cVar10;\n                  dpi_00->last_char = cVar10;\n                  if (pcVar11 == pcVar12) break;\n                  cVar10 = *pcVar11;\n                  pcVar11 = pcVar11 + 1;\n                  sVar6 = sVar9;\n                }" { (if_statement "if (sVar6 == 0xff) {\n                    dpi_00->buf[0xff] = '\0';\n                    (*dpi_00->callback)(dpi_00->buf,0xff,dpi_00->opaque);\n                    dpi_00->flush_count = dpi_00->flush_count + 1;\n                    sVar9 = 1;\n                    sVar6 = 0;\n                  }\n                  else {\n                    sVar9 = sVar6 + 1;\n                  }" if (parenthesized_expression "(sVar6 == 0xff)" ( (binary_expression "sVar6 == 0xff" identifier == number_literal) )) (compound_statement "{\n                    dpi_00->buf[0xff] = '\0';\n                    (*dpi_00->callback)(dpi_00->buf,0xff,dpi_00->opaque);\n                    dpi_00->flush_count = dpi_00->flush_count + 1;\n                    sVar9 = 1;\n                    sVar6 = 0;\n                  }" { (expression_statement "dpi_00->buf[0xff] = '\0';" (assignment_expression "dpi_00->buf[0xff] = '\0'" (subscript_expression "dpi_00->buf[0xff]" (field_expression "dpi_00->buf" identifier -> field_identifier) [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "(*dpi_00->callback)(dpi_00->buf,0xff,dpi_00->opaque);" (call_expression "(*dpi_00->callback)(dpi_00->buf,0xff,dpi_00->opaque)" (parenthesized_expression "(*dpi_00->callback)" ( (pointer_expression "*dpi_00->callback" * (field_expression "dpi_00->callback" identifier -> field_identifier)) )) (argument_list "(dpi_00->buf,0xff,dpi_00->opaque)" ( (field_expression "dpi_00->buf" identifier -> field_identifier) , number_literal , (field_expression "dpi_00->opaque" identifier -> field_identifier) ))) ;) (expression_statement "dpi_00->flush_count = dpi_00->flush_count + 1;" (assignment_expression "dpi_00->flush_count = dpi_00->flush_count + 1" (field_expression "dpi_00->flush_count" identifier -> field_identifier) = (binary_expression "dpi_00->flush_count + 1" (field_expression "dpi_00->flush_count" identifier -> field_identifier) + number_literal)) ;) (expression_statement "sVar9 = 1;" (assignment_expression "sVar9 = 1" identifier = number_literal) ;) (expression_statement "sVar6 = 0;" (assignment_expression "sVar6 = 0" identifier = number_literal) ;) }) (else_clause "else {\n                    sVar9 = sVar6 + 1;\n                  }" else (compound_statement "{\n                    sVar9 = sVar6 + 1;\n                  }" { (expression_statement "sVar9 = sVar6 + 1;" (assignment_expression "sVar9 = sVar6 + 1" identifier = (binary_expression "sVar6 + 1" identifier + number_literal)) ;) }))) (expression_statement "dpi_00->len = sVar9;" (assignment_expression "dpi_00->len = sVar9" (field_expression "dpi_00->len" identifier -> field_identifier) = identifier) ;) (expression_statement "dpi_00->buf[sVar6] = cVar10;" (assignment_expression "dpi_00->buf[sVar6] = cVar10" (subscript_expression "dpi_00->buf[sVar6]" (field_expression "dpi_00->buf" identifier -> field_identifier) [ identifier ]) = identifier) ;) (expression_statement "dpi_00->last_char = cVar10;" (assignment_expression "dpi_00->last_char = cVar10" (field_expression "dpi_00->last_char" identifier -> field_identifier) = identifier) ;) (if_statement "if (pcVar11 == pcVar12) break;" if (parenthesized_expression "(pcVar11 == pcVar12)" ( (binary_expression "pcVar11 == pcVar12" identifier == identifier) )) (break_statement "break;" break ;)) (expression_statement "cVar10 = *pcVar11;" (assignment_expression "cVar10 = *pcVar11" identifier = (pointer_expression "*pcVar11" * identifier)) ;) (expression_statement "pcVar11 = pcVar11 + 1;" (assignment_expression "pcVar11 = pcVar11 + 1" identifier = (binary_expression "pcVar11 + 1" identifier + number_literal)) ;) (expression_statement "sVar6 = sVar9;" (assignment_expression "sVar6 = sVar9" identifier = identifier) ;) })) (expression_statement "pcVar11 = buf;" (assignment_expression "pcVar11 = buf" identifier = identifier) ;) (expression_statement "sprintf(pcVar11,(char *)(options_00 + -0xd6197),\n                        (byte *)((int)&((dc->u).s_extended_operator.name)->type + 1));" (call_expression "sprintf(pcVar11,(char *)(options_00 + -0xd6197),\n                        (byte *)((int)&((dc->u).s_extended_operator.name)->type + 1))" identifier (argument_list "(pcVar11,(char *)(options_00 + -0xd6197),\n                        (byte *)((int)&((dc->u).s_extended_operator.name)->type + 1))" ( identifier , (cast_expression "(char *)(options_00 + -0xd6197)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(options_00 + -0xd6197)" ( (binary_expression "options_00 + -0xd6197" identifier + number_literal) ))) , (cast_expression "(byte *)((int)&((dc->u).s_extended_operator.name)->type + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&((dc->u).s_extended_operator.name)->type + 1)" ( (binary_expression "(int)&((dc->u).s_extended_operator.name)->type + 1" (cast_expression "(int)&((dc->u).s_extended_operator.name)->type" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&((dc->u).s_extended_operator.name)->type" & (field_expression "((dc->u).s_extended_operator.name)->type" (parenthesized_expression "((dc->u).s_extended_operator.name)" ( (field_expression "(dc->u).s_extended_operator.name" (field_expression "(dc->u).s_extended_operator" (parenthesized_expression "(dc->u)" ( (field_expression "dc->u" identifier -> field_identifier) )) . field_identifier) . field_identifier) )) -> field_identifier))) + number_literal) ))) ))) ;) (expression_statement "sVar8 = strlen(pcVar11);" (assignment_expression "sVar8 = strlen(pcVar11)" identifier = (call_expression "strlen(pcVar11)" identifier (argument_list "(pcVar11)" ( identifier )))) ;) (expression_statement "sVar6 = dpi_00->len;" (assignment_expression "sVar6 = dpi_00->len" identifier = (field_expression "dpi_00->len" identifier -> field_identifier)) ;) (if_statement "if (sVar8 != 0) {\n                  pcVar12 = pcVar11 + sVar8;\n                  sVar9 = sVar6;\n                  do {\n                    cVar10 = *pcVar11;\n                    if (sVar9 == 0xff) {\n                      dpi_00->buf[0xff] = '\0';\n                      (*dpi_00->callback)(dpi_00->buf,0xff,dpi_00->opaque);\n                      dpi_00->flush_count = dpi_00->flush_count + 1;\n                      sVar6 = 1;\n                      sVar9 = 0;\n                    }\n                    else {\n                      sVar6 = sVar9 + 1;\n                    }\n                    pcVar11 = pcVar11 + 1;\n                    dpi_00->len = sVar6;\n                    dpi_00->buf[sVar9] = cVar10;\n                    dpi_00->last_char = cVar10;\n                    sVar9 = sVar6;\n                  } while (pcVar12 != pcVar11);\n                }" if (parenthesized_expression "(sVar8 != 0)" ( (binary_expression "sVar8 != 0" identifier != number_literal) )) (compound_statement "{\n                  pcVar12 = pcVar11 + sVar8;\n                  sVar9 = sVar6;\n                  do {\n                    cVar10 = *pcVar11;\n                    if (sVar9 == 0xff) {\n                      dpi_00->buf[0xff] = '\0';\n                      (*dpi_00->callback)(dpi_00->buf,0xff,dpi_00->opaque);\n                      dpi_00->flush_count = dpi_00->flush_count + 1;\n                      sVar6 = 1;\n                      sVar9 = 0;\n                    }\n                    else {\n                      sVar6 = sVar9 + 1;\n                    }\n                    pcVar11 = pcVar11 + 1;\n                    dpi_00->len = sVar6;\n                    dpi_00->buf[sVar9] = cVar10;\n                    dpi_00->last_char = cVar10;\n                    sVar9 = sVar6;\n                  } while (pcVar12 != pcVar11);\n                }" { (expression_statement "pcVar12 = pcVar11 + sVar8;" (assignment_expression "pcVar12 = pcVar11 + sVar8" identifier = (binary_expression "pcVar11 + sVar8" identifier + identifier)) ;) (expression_statement "sVar9 = sVar6;" (assignment_expression "sVar9 = sVar6" identifier = identifier) ;) (do_statement "do {\n                    cVar10 = *pcVar11;\n                    if (sVar9 == 0xff) {\n                      dpi_00->buf[0xff] = '\0';\n                      (*dpi_00->callback)(dpi_00->buf,0xff,dpi_00->opaque);\n                      dpi_00->flush_count = dpi_00->flush_count + 1;\n                      sVar6 = 1;\n                      sVar9 = 0;\n                    }\n                    else {\n                      sVar6 = sVar9 + 1;\n                    }\n                    pcVar11 = pcVar11 + 1;\n                    dpi_00->len = sVar6;\n                    dpi_00->buf[sVar9] = cVar10;\n                    dpi_00->last_char = cVar10;\n                    sVar9 = sVar6;\n                  } while (pcVar12 != pcVar11);" do (compound_statement "{\n                    cVar10 = *pcVar11;\n                    if (sVar9 == 0xff) {\n                      dpi_00->buf[0xff] = '\0';\n                      (*dpi_00->callback)(dpi_00->buf,0xff,dpi_00->opaque);\n                      dpi_00->flush_count = dpi_00->flush_count + 1;\n                      sVar6 = 1;\n                      sVar9 = 0;\n                    }\n                    else {\n                      sVar6 = sVar9 + 1;\n                    }\n                    pcVar11 = pcVar11 + 1;\n                    dpi_00->len = sVar6;\n                    dpi_00->buf[sVar9] = cVar10;\n                    dpi_00->last_char = cVar10;\n                    sVar9 = sVar6;\n                  }" { (expression_statement "cVar10 = *pcVar11;" (assignment_expression "cVar10 = *pcVar11" identifier = (pointer_expression "*pcVar11" * identifier)) ;) (if_statement "if (sVar9 == 0xff) {\n                      dpi_00->buf[0xff] = '\0';\n                      (*dpi_00->callback)(dpi_00->buf,0xff,dpi_00->opaque);\n                      dpi_00->flush_count = dpi_00->flush_count + 1;\n                      sVar6 = 1;\n                      sVar9 = 0;\n                    }\n                    else {\n                      sVar6 = sVar9 + 1;\n                    }" if (parenthesized_expression "(sVar9 == 0xff)" ( (binary_expression "sVar9 == 0xff" identifier == number_literal) )) (compound_statement "{\n                      dpi_00->buf[0xff] = '\0';\n                      (*dpi_00->callback)(dpi_00->buf,0xff,dpi_00->opaque);\n                      dpi_00->flush_count = dpi_00->flush_count + 1;\n                      sVar6 = 1;\n                      sVar9 = 0;\n                    }" { (expression_statement "dpi_00->buf[0xff] = '\0';" (assignment_expression "dpi_00->buf[0xff] = '\0'" (subscript_expression "dpi_00->buf[0xff]" (field_expression "dpi_00->buf" identifier -> field_identifier) [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "(*dpi_00->callback)(dpi_00->buf,0xff,dpi_00->opaque);" (call_expression "(*dpi_00->callback)(dpi_00->buf,0xff,dpi_00->opaque)" (parenthesized_expression "(*dpi_00->callback)" ( (pointer_expression "*dpi_00->callback" * (field_expression "dpi_00->callback" identifier -> field_identifier)) )) (argument_list "(dpi_00->buf,0xff,dpi_00->opaque)" ( (field_expression "dpi_00->buf" identifier -> field_identifier) , number_literal , (field_expression "dpi_00->opaque" identifier -> field_identifier) ))) ;) (expression_statement "dpi_00->flush_count = dpi_00->flush_count + 1;" (assignment_expression "dpi_00->flush_count = dpi_00->flush_count + 1" (field_expression "dpi_00->flush_count" identifier -> field_identifier) = (binary_expression "dpi_00->flush_count + 1" (field_expression "dpi_00->flush_count" identifier -> field_identifier) + number_literal)) ;) (expression_statement "sVar6 = 1;" (assignment_expression "sVar6 = 1" identifier = number_literal) ;) (expression_statement "sVar9 = 0;" (assignment_expression "sVar9 = 0" identifier = number_literal) ;) }) (else_clause "else {\n                      sVar6 = sVar9 + 1;\n                    }" else (compound_statement "{\n                      sVar6 = sVar9 + 1;\n                    }" { (expression_statement "sVar6 = sVar9 + 1;" (assignment_expression "sVar6 = sVar9 + 1" identifier = (binary_expression "sVar9 + 1" identifier + number_literal)) ;) }))) (expression_statement "pcVar11 = pcVar11 + 1;" (assignment_expression "pcVar11 = pcVar11 + 1" identifier = (binary_expression "pcVar11 + 1" identifier + number_literal)) ;) (expression_statement "dpi_00->len = sVar6;" (assignment_expression "dpi_00->len = sVar6" (field_expression "dpi_00->len" identifier -> field_identifier) = identifier) ;) (expression_statement "dpi_00->buf[sVar9] = cVar10;" (assignment_expression "dpi_00->buf[sVar9] = cVar10" (subscript_expression "dpi_00->buf[sVar9]" (field_expression "dpi_00->buf" identifier -> field_identifier) [ identifier ]) = identifier) ;) (expression_statement "dpi_00->last_char = cVar10;" (assignment_expression "dpi_00->last_char = cVar10" (field_expression "dpi_00->last_char" identifier -> field_identifier) = identifier) ;) (expression_statement "sVar9 = sVar6;" (assignment_expression "sVar9 = sVar6" identifier = identifier) ;) }) while (parenthesized_expression "(pcVar12 != pcVar11)" ( (binary_expression "pcVar12 != pcVar11" identifier != identifier) )) ;) })) (expression_statement "pcVar12 = (char *)(options_00 + -0xd4720);" (assignment_expression "pcVar12 = (char *)(options_00 + -0xd4720)" identifier = (cast_expression "(char *)(options_00 + -0xd4720)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(options_00 + -0xd4720)" ( (binary_expression "options_00 + -0xd4720" identifier + number_literal) )))) ;) (expression_statement "cVar10 = '}';" (assignment_expression "cVar10 = '}'" identifier = (char_literal "'}'" ' character ')) ;) (expression_statement "pcVar11 = (char *)(options_00 + -0xd471d);" (assignment_expression "pcVar11 = (char *)(options_00 + -0xd471d)" identifier = (cast_expression "(char *)(options_00 + -0xd471d)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(options_00 + -0xd471d)" ( (binary_expression "options_00 + -0xd471d" identifier + number_literal) )))) ;) (do_statement "do {\n                  if (sVar6 == 0xff) {\n                    options_00 = CONCAT31((int3)((uint)options_00 >> 8),cVar10);\n                    dpi_00->buf[0xff] = '\0';\n                    (*dpi_00->callback)(dpi_00->buf,0xff,dpi_00->opaque);\n                    dpi_00->flush_count = dpi_00->flush_count + 1;\n                    sVar9 = 1;\n                    sVar6 = 0;\n                    cVar10 = (char)options_00;\n                  }\n                  else {\n                    sVar9 = sVar6 + 1;\n                  }\n                  pcVar12 = pcVar12 + 1;\n                  dpi_00->len = sVar9;\n                  dpi_00->buf[sVar6] = cVar10;\n                  dpi_00->last_char = cVar10;\n                  if (pcVar11 == pcVar12) goto LAB_001a03d9;\n                  cVar10 = *pcVar12;\n                  sVar6 = sVar9;\n                } while( true );" do (compound_statement "{\n                  if (sVar6 == 0xff) {\n                    options_00 = CONCAT31((int3)((uint)options_00 >> 8),cVar10);\n                    dpi_00->buf[0xff] = '\0';\n                    (*dpi_00->callback)(dpi_00->buf,0xff,dpi_00->opaque);\n                    dpi_00->flush_count = dpi_00->flush_count + 1;\n                    sVar9 = 1;\n                    sVar6 = 0;\n                    cVar10 = (char)options_00;\n                  }\n                  else {\n                    sVar9 = sVar6 + 1;\n                  }\n                  pcVar12 = pcVar12 + 1;\n                  dpi_00->len = sVar9;\n                  dpi_00->buf[sVar6] = cVar10;\n                  dpi_00->last_char = cVar10;\n                  if (pcVar11 == pcVar12) goto LAB_001a03d9;\n                  cVar10 = *pcVar12;\n                  sVar6 = sVar9;\n                }" { (if_statement "if (sVar6 == 0xff) {\n                    options_00 = CONCAT31((int3)((uint)options_00 >> 8),cVar10);\n                    dpi_00->buf[0xff] = '\0';\n                    (*dpi_00->callback)(dpi_00->buf,0xff,dpi_00->opaque);\n                    dpi_00->flush_count = dpi_00->flush_count + 1;\n                    sVar9 = 1;\n                    sVar6 = 0;\n                    cVar10 = (char)options_00;\n                  }\n                  else {\n                    sVar9 = sVar6 + 1;\n                  }" if (parenthesized_expression "(sVar6 == 0xff)" ( (binary_expression "sVar6 == 0xff" identifier == number_literal) )) (compound_statement "{\n                    options_00 = CONCAT31((int3)((uint)options_00 >> 8),cVar10);\n                    dpi_00->buf[0xff] = '\0';\n                    (*dpi_00->callback)(dpi_00->buf,0xff,dpi_00->opaque);\n                    dpi_00->flush_count = dpi_00->flush_count + 1;\n                    sVar9 = 1;\n                    sVar6 = 0;\n                    cVar10 = (char)options_00;\n                  }" { (expression_statement "options_00 = CONCAT31((int3)((uint)options_00 >> 8),cVar10);" (assignment_expression "options_00 = CONCAT31((int3)((uint)options_00 >> 8),cVar10)" identifier = (call_expression "CONCAT31((int3)((uint)options_00 >> 8),cVar10)" identifier (argument_list "((int3)((uint)options_00 >> 8),cVar10)" ( (call_expression "(int3)((uint)options_00 >> 8)" (parenthesized_expression "(int3)" ( identifier )) (argument_list "((uint)options_00 >> 8)" ( (binary_expression "(uint)options_00 >> 8" (cast_expression "(uint)options_00" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) ))) , identifier )))) ;) (expression_statement "dpi_00->buf[0xff] = '\0';" (assignment_expression "dpi_00->buf[0xff] = '\0'" (subscript_expression "dpi_00->buf[0xff]" (field_expression "dpi_00->buf" identifier -> field_identifier) [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "(*dpi_00->callback)(dpi_00->buf,0xff,dpi_00->opaque);" (call_expression "(*dpi_00->callback)(dpi_00->buf,0xff,dpi_00->opaque)" (parenthesized_expression "(*dpi_00->callback)" ( (pointer_expression "*dpi_00->callback" * (field_expression "dpi_00->callback" identifier -> field_identifier)) )) (argument_list "(dpi_00->buf,0xff,dpi_00->opaque)" ( (field_expression "dpi_00->buf" identifier -> field_identifier) , number_literal , (field_expression "dpi_00->opaque" identifier -> field_identifier) ))) ;) (expression_statement "dpi_00->flush_count = dpi_00->flush_count + 1;" (assignment_expression "dpi_00->flush_count = dpi_00->flush_count + 1" (field_expression "dpi_00->flush_count" identifier -> field_identifier) = (binary_expression "dpi_00->flush_count + 1" (field_expression "dpi_00->flush_count" identifier -> field_identifier) + number_literal)) ;) (expression_statement "sVar9 = 1;" (assignment_expression "sVar9 = 1" identifier = number_literal) ;) (expression_statement "sVar6 = 0;" (assignment_expression "sVar6 = 0" identifier = number_literal) ;) (expression_statement "cVar10 = (char)options_00;" (assignment_expression "cVar10 = (char)options_00" identifier = (cast_expression "(char)options_00" ( (type_descriptor "char" primitive_type) ) identifier)) ;) }) (else_clause "else {\n                    sVar9 = sVar6 + 1;\n                  }" else (compound_statement "{\n                    sVar9 = sVar6 + 1;\n                  }" { (expression_statement "sVar9 = sVar6 + 1;" (assignment_expression "sVar9 = sVar6 + 1" identifier = (binary_expression "sVar6 + 1" identifier + number_literal)) ;) }))) (expression_statement "pcVar12 = pcVar12 + 1;" (assignment_expression "pcVar12 = pcVar12 + 1" identifier = (binary_expression "pcVar12 + 1" identifier + number_literal)) ;) (expression_statement "dpi_00->len = sVar9;" (assignment_expression "dpi_00->len = sVar9" (field_expression "dpi_00->len" identifier -> field_identifier) = identifier) ;) (expression_statement "dpi_00->buf[sVar6] = cVar10;" (assignment_expression "dpi_00->buf[sVar6] = cVar10" (subscript_expression "dpi_00->buf[sVar6]" (field_expression "dpi_00->buf" identifier -> field_identifier) [ identifier ]) = identifier) ;) (expression_statement "dpi_00->last_char = cVar10;" (assignment_expression "dpi_00->last_char = cVar10" (field_expression "dpi_00->last_char" identifier -> field_identifier) = identifier) ;) (if_statement "if (pcVar11 == pcVar12) goto LAB_001a03d9;" if (parenthesized_expression "(pcVar11 == pcVar12)" ( (binary_expression "pcVar11 == pcVar12" identifier == identifier) )) (goto_statement "goto LAB_001a03d9;" goto statement_identifier ;)) (expression_statement "cVar10 = *pcVar12;" (assignment_expression "cVar10 = *pcVar12" identifier = (pointer_expression "*pcVar12" * identifier)) ;) (expression_statement "sVar6 = sVar9;" (assignment_expression "sVar6 = sVar9" identifier = identifier) ;) }) while (parenthesized_expression "( true )" ( true )) ;) })) (do_statement "do {\n                if (dVar7 != DEMANGLE_COMPONENT_TRANSACTION_SAFE) {\n                  if (dVar7 < DEMANGLE_COMPONENT_CLONE) {\n                    if (4 < dVar7 - DEMANGLE_COMPONENT_RESTRICT_THIS) {\nLAB_001a036d:\n                      d_print_comp(dpi_01,options_00,dc);\n                      dpi_00->templates = pdVar13;\n                      return;\n                    }\n                  }\n                  else if (1 < dVar7 - DEMANGLE_COMPONENT_NOEXCEPT) goto LAB_001a036d;\n                }\nLAB_001a03d9:\n                dc = (dc->u).s_fixed.length;\n                dVar7 = dc->type;\n              } while( true );" do (compound_statement "{\n                if (dVar7 != DEMANGLE_COMPONENT_TRANSACTION_SAFE) {\n                  if (dVar7 < DEMANGLE_COMPONENT_CLONE) {\n                    if (4 < dVar7 - DEMANGLE_COMPONENT_RESTRICT_THIS) {\nLAB_001a036d:\n                      d_print_comp(dpi_01,options_00,dc);\n                      dpi_00->templates = pdVar13;\n                      return;\n                    }\n                  }\n                  else if (1 < dVar7 - DEMANGLE_COMPONENT_NOEXCEPT) goto LAB_001a036d;\n                }\nLAB_001a03d9:\n                dc = (dc->u).s_fixed.length;\n                dVar7 = dc->type;\n              }" { (if_statement "if (dVar7 != DEMANGLE_COMPONENT_TRANSACTION_SAFE) {\n                  if (dVar7 < DEMANGLE_COMPONENT_CLONE) {\n                    if (4 < dVar7 - DEMANGLE_COMPONENT_RESTRICT_THIS) {\nLAB_001a036d:\n                      d_print_comp(dpi_01,options_00,dc);\n                      dpi_00->templates = pdVar13;\n                      return;\n                    }\n                  }\n                  else if (1 < dVar7 - DEMANGLE_COMPONENT_NOEXCEPT) goto LAB_001a036d;\n                }" if (parenthesized_expression "(dVar7 != DEMANGLE_COMPONENT_TRANSACTION_SAFE)" ( (binary_expression "dVar7 != DEMANGLE_COMPONENT_TRANSACTION_SAFE" identifier != identifier) )) (compound_statement "{\n                  if (dVar7 < DEMANGLE_COMPONENT_CLONE) {\n                    if (4 < dVar7 - DEMANGLE_COMPONENT_RESTRICT_THIS) {\nLAB_001a036d:\n                      d_print_comp(dpi_01,options_00,dc);\n                      dpi_00->templates = pdVar13;\n                      return;\n                    }\n                  }\n                  else if (1 < dVar7 - DEMANGLE_COMPONENT_NOEXCEPT) goto LAB_001a036d;\n                }" { (if_statement "if (dVar7 < DEMANGLE_COMPONENT_CLONE) {\n                    if (4 < dVar7 - DEMANGLE_COMPONENT_RESTRICT_THIS) {\nLAB_001a036d:\n                      d_print_comp(dpi_01,options_00,dc);\n                      dpi_00->templates = pdVar13;\n                      return;\n                    }\n                  }\n                  else if (1 < dVar7 - DEMANGLE_COMPONENT_NOEXCEPT) goto LAB_001a036d;" if (parenthesized_expression "(dVar7 < DEMANGLE_COMPONENT_CLONE)" ( (binary_expression "dVar7 < DEMANGLE_COMPONENT_CLONE" identifier < identifier) )) (compound_statement "{\n                    if (4 < dVar7 - DEMANGLE_COMPONENT_RESTRICT_THIS) {\nLAB_001a036d:\n                      d_print_comp(dpi_01,options_00,dc);\n                      dpi_00->templates = pdVar13;\n                      return;\n                    }\n                  }" { (if_statement "if (4 < dVar7 - DEMANGLE_COMPONENT_RESTRICT_THIS) {\nLAB_001a036d:\n                      d_print_comp(dpi_01,options_00,dc);\n                      dpi_00->templates = pdVar13;\n                      return;\n                    }" if (parenthesized_expression "(4 < dVar7 - DEMANGLE_COMPONENT_RESTRICT_THIS)" ( (binary_expression "4 < dVar7 - DEMANGLE_COMPONENT_RESTRICT_THIS" number_literal < (binary_expression "dVar7 - DEMANGLE_COMPONENT_RESTRICT_THIS" identifier - identifier)) )) (compound_statement "{\nLAB_001a036d:\n                      d_print_comp(dpi_01,options_00,dc);\n                      dpi_00->templates = pdVar13;\n                      return;\n                    }" { (labeled_statement "LAB_001a036d:\n                      d_print_comp(dpi_01,options_00,dc);" statement_identifier : (expression_statement "d_print_comp(dpi_01,options_00,dc);" (call_expression "d_print_comp(dpi_01,options_00,dc)" identifier (argument_list "(dpi_01,options_00,dc)" ( identifier , identifier , identifier ))) ;)) (expression_statement "dpi_00->templates = pdVar13;" (assignment_expression "dpi_00->templates = pdVar13" (field_expression "dpi_00->templates" identifier -> field_identifier) = identifier) ;) (return_statement "return;" return ;) })) }) (else_clause "else if (1 < dVar7 - DEMANGLE_COMPONENT_NOEXCEPT) goto LAB_001a036d;" else (if_statement "if (1 < dVar7 - DEMANGLE_COMPONENT_NOEXCEPT) goto LAB_001a036d;" if (parenthesized_expression "(1 < dVar7 - DEMANGLE_COMPONENT_NOEXCEPT)" ( (binary_expression "1 < dVar7 - DEMANGLE_COMPONENT_NOEXCEPT" number_literal < (binary_expression "dVar7 - DEMANGLE_COMPONENT_NOEXCEPT" identifier - identifier)) )) (goto_statement "goto LAB_001a036d;" goto statement_identifier ;)))) })) (labeled_statement "LAB_001a03d9:\n                dc = (dc->u).s_fixed.length;" statement_identifier : (expression_statement "dc = (dc->u).s_fixed.length;" (assignment_expression "dc = (dc->u).s_fixed.length" identifier = (field_expression "(dc->u).s_fixed.length" (field_expression "(dc->u).s_fixed" (parenthesized_expression "(dc->u)" ( (field_expression "dc->u" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;)) (expression_statement "dVar7 = dc->type;" (assignment_expression "dVar7 = dc->type" identifier = (field_expression "dc->type" identifier -> field_identifier)) ;) }) while (parenthesized_expression "( true )" ( true )) ;) })) (expression_statement "d_print_mod(dpi_01,options_00,in_stack_ffffffbc);" (call_expression "d_print_mod(dpi_01,options_00,in_stack_ffffffbc)" identifier (argument_list "(dpi_01,options_00,in_stack_ffffffbc)" ( identifier , identifier , identifier ))) ;) (expression_statement "dpi_00->templates = pdVar13;" (assignment_expression "dpi_00->templates = pdVar13" (field_expression "dpi_00->templates" identifier -> field_identifier) = identifier) ;) })))) })) })) (expression_statement "piVar2 = (int *)*piVar2;" (assignment_expression "piVar2 = (int *)*piVar2" identifier = (cast_expression "(int *)*piVar2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar2" * identifier))) ;) (if_statement "if (piVar2 == (int *)0x0) {\n        return;\n      }" if (parenthesized_expression "(piVar2 == (int *)0x0)" ( (binary_expression "piVar2 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        return;\n      }" { (return_statement "return;" return ;) })) (expression_statement "iVar1 = dpi_00->demangle_failure;" (assignment_expression "iVar1 = dpi_00->demangle_failure" identifier = (field_expression "dpi_00->demangle_failure" identifier -> field_identifier)) ;) })) })) (return_statement "return;" return ;) })))
(translation_unit "void FUN_001a0210(int param_1)\n\n{\n  char *pcVar1;\n  char cVar2;\n  undefined4 uVar3;\n  int *piVar4;\n  undefined4 uVar5;\n  int iVar6;\n  int iVar7;\n  uint uVar8;\n  size_t sVar9;\n  int *extraout_ECX;\n  int iVar10;\n  undefined1 uVar11;\n  undefined1 *puVar12;\n  char *__s;\n  int unaff_EDI;\n  ulonglong uVar13;\n  uint *local_44;\n  char local_35 [37];\n  \n  uVar13 = FUN_00058c4a();\n  iVar6 = (int)uVar13;\n  if (extraout_ECX != (int *)0x0) {\n    iVar7 = *(int *)(iVar6 + 0x118);\n    piVar4 = extraout_ECX;\n    while (iVar7 == 0) {\n      if (piVar4[2] == 0) {\n        uVar8 = *(uint *)piVar4[1];\n        if (param_1 != 0) goto LAB_001a0258;\n        if (uVar8 != 0x4c) {\n          if (uVar8 < 0x4d) {\n            if (4 < uVar8 - 0x1c) goto LAB_001a0258;\n          }\n          else if (1 < uVar8 - 0x4e) {\nLAB_001a0258:\n            uVar3 = *(undefined4 *)(iVar6 + 0x110);\n            piVar4[2] = 1;\n            *(int *)(iVar6 + 0x110) = piVar4[3];\n            if (uVar8 == 0x29) {\n              FUN_0019fef0(*piVar4);\n              *(undefined4 *)(iVar6 + 0x110) = uVar3;\n              return;\n            }\n            if (uVar8 == 0x2a) {\n              FUN_001a0610(*piVar4);\n              *(undefined4 *)(iVar6 + 0x110) = uVar3;\n              return;\n            }\n            if (uVar8 == 2) {\n              uVar5 = *(undefined4 *)(iVar6 + 0x114);\n              *(undefined4 *)(iVar6 + 0x114) = 0;\n              FUN_0019a610();\n              *(undefined4 *)(iVar6 + 0x114) = uVar5;\n              iVar7 = *(int *)(iVar6 + 0x100);\n              if ((uVar13 & 0x400000000) == 0) {\n                puVar12 = (undefined1 *)(unaff_EDI + 0xca6ca);\n                uVar11 = 0x3a;\n                while( true ) {\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  puVar12 = puVar12 + 1;\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if (puVar12 == (undefined1 *)(unaff_EDI + 0xca6cc)) break;\n                  uVar11 = *puVar12;\n                  iVar7 = iVar10;\n                }\n              }\n              else {\n                iVar10 = iVar7 + 1;\n                if (iVar7 == 0xff) {\n                  *(undefined1 *)(iVar6 + 0xff) = 0;\n                  (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                  *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                  iVar10 = 1;\n                  iVar7 = 0;\n                }\n                *(int *)(iVar6 + 0x100) = iVar10;\n                *(undefined1 *)(iVar6 + iVar7) = 0x2e;\n                *(undefined1 *)(iVar6 + 0x104) = 0x2e;\n              }\n              local_44 = *(uint **)(piVar4[1] + 0xc);\n              uVar8 = *local_44;\n              if (uVar8 == 0x46) {\n                uVar11 = 0x7b;\n                puVar12 = (undefined1 *)(unaff_EDI + 0xca6bc);\n                iVar7 = *(int *)(iVar6 + 0x100);\n                while( true ) {\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if (puVar12 == (undefined1 *)(unaff_EDI + 0xca6c8)) break;\n                  uVar11 = *puVar12;\n                  puVar12 = puVar12 + 1;\n                  iVar7 = iVar10;\n                }\n                __s = local_35;\n                sprintf(__s,(char *)(unaff_EDI + 0xc8c52),local_44[3] + 1);\n                sVar9 = strlen(__s);\n                iVar7 = *(int *)(iVar6 + 0x100);\n                if (sVar9 != 0) {\n                  pcVar1 = __s + sVar9;\n                  iVar10 = iVar7;\n                  do {\n                    cVar2 = *__s;\n                    if (iVar10 == 0xff) {\n                      *(undefined1 *)(iVar6 + 0xff) = 0;\n                      (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                      *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                      iVar7 = 1;\n                      iVar10 = 0;\n                    }\n                    else {\n                      iVar7 = iVar10 + 1;\n                    }\n                    __s = __s + 1;\n                    *(int *)(iVar6 + 0x100) = iVar7;\n                    *(char *)(iVar6 + iVar10) = cVar2;\n                    *(char *)(iVar6 + 0x104) = cVar2;\n                    iVar10 = iVar7;\n                  } while (pcVar1 != __s);\n                }\n                puVar12 = (undefined1 *)(unaff_EDI + 0xca6c9);\n                uVar11 = 0x7d;\n                do {\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  puVar12 = puVar12 + 1;\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if ((undefined1 *)(unaff_EDI + 0xca6cc) == puVar12) goto LAB_001a03d9;\n                  uVar11 = *puVar12;\n                  iVar7 = iVar10;\n                } while( true );\n              }\n              do {\n                if (uVar8 != 0x4c) {\n                  if (uVar8 < 0x4d) {\n                    if (4 < uVar8 - 0x1c) {\nLAB_001a036d:\n                      FUN_0019a610();\n                      *(undefined4 *)(iVar6 + 0x110) = uVar3;\n                      return;\n                    }\n                  }\n                  else if (1 < uVar8 - 0x4e) goto LAB_001a036d;\n                }\nLAB_001a03d9:\n                local_44 = (uint *)local_44[2];\n                uVar8 = *local_44;\n              } while( true );\n            }\n            FUN_0019f570();\n            *(undefined4 *)(iVar6 + 0x110) = uVar3;\n          }\n        }\n      }\n      piVar4 = (int *)*piVar4;\n      if (piVar4 == (int *)0x0) {\n        return;\n      }\n      iVar7 = *(int *)(iVar6 + 0x118);\n    }\n  }\n  return;\n}\n\n" (function_definition "void FUN_001a0210(int param_1)\n\n{\n  char *pcVar1;\n  char cVar2;\n  undefined4 uVar3;\n  int *piVar4;\n  undefined4 uVar5;\n  int iVar6;\n  int iVar7;\n  uint uVar8;\n  size_t sVar9;\n  int *extraout_ECX;\n  int iVar10;\n  undefined1 uVar11;\n  undefined1 *puVar12;\n  char *__s;\n  int unaff_EDI;\n  ulonglong uVar13;\n  uint *local_44;\n  char local_35 [37];\n  \n  uVar13 = FUN_00058c4a();\n  iVar6 = (int)uVar13;\n  if (extraout_ECX != (int *)0x0) {\n    iVar7 = *(int *)(iVar6 + 0x118);\n    piVar4 = extraout_ECX;\n    while (iVar7 == 0) {\n      if (piVar4[2] == 0) {\n        uVar8 = *(uint *)piVar4[1];\n        if (param_1 != 0) goto LAB_001a0258;\n        if (uVar8 != 0x4c) {\n          if (uVar8 < 0x4d) {\n            if (4 < uVar8 - 0x1c) goto LAB_001a0258;\n          }\n          else if (1 < uVar8 - 0x4e) {\nLAB_001a0258:\n            uVar3 = *(undefined4 *)(iVar6 + 0x110);\n            piVar4[2] = 1;\n            *(int *)(iVar6 + 0x110) = piVar4[3];\n            if (uVar8 == 0x29) {\n              FUN_0019fef0(*piVar4);\n              *(undefined4 *)(iVar6 + 0x110) = uVar3;\n              return;\n            }\n            if (uVar8 == 0x2a) {\n              FUN_001a0610(*piVar4);\n              *(undefined4 *)(iVar6 + 0x110) = uVar3;\n              return;\n            }\n            if (uVar8 == 2) {\n              uVar5 = *(undefined4 *)(iVar6 + 0x114);\n              *(undefined4 *)(iVar6 + 0x114) = 0;\n              FUN_0019a610();\n              *(undefined4 *)(iVar6 + 0x114) = uVar5;\n              iVar7 = *(int *)(iVar6 + 0x100);\n              if ((uVar13 & 0x400000000) == 0) {\n                puVar12 = (undefined1 *)(unaff_EDI + 0xca6ca);\n                uVar11 = 0x3a;\n                while( true ) {\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  puVar12 = puVar12 + 1;\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if (puVar12 == (undefined1 *)(unaff_EDI + 0xca6cc)) break;\n                  uVar11 = *puVar12;\n                  iVar7 = iVar10;\n                }\n              }\n              else {\n                iVar10 = iVar7 + 1;\n                if (iVar7 == 0xff) {\n                  *(undefined1 *)(iVar6 + 0xff) = 0;\n                  (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                  *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                  iVar10 = 1;\n                  iVar7 = 0;\n                }\n                *(int *)(iVar6 + 0x100) = iVar10;\n                *(undefined1 *)(iVar6 + iVar7) = 0x2e;\n                *(undefined1 *)(iVar6 + 0x104) = 0x2e;\n              }\n              local_44 = *(uint **)(piVar4[1] + 0xc);\n              uVar8 = *local_44;\n              if (uVar8 == 0x46) {\n                uVar11 = 0x7b;\n                puVar12 = (undefined1 *)(unaff_EDI + 0xca6bc);\n                iVar7 = *(int *)(iVar6 + 0x100);\n                while( true ) {\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if (puVar12 == (undefined1 *)(unaff_EDI + 0xca6c8)) break;\n                  uVar11 = *puVar12;\n                  puVar12 = puVar12 + 1;\n                  iVar7 = iVar10;\n                }\n                __s = local_35;\n                sprintf(__s,(char *)(unaff_EDI + 0xc8c52),local_44[3] + 1);\n                sVar9 = strlen(__s);\n                iVar7 = *(int *)(iVar6 + 0x100);\n                if (sVar9 != 0) {\n                  pcVar1 = __s + sVar9;\n                  iVar10 = iVar7;\n                  do {\n                    cVar2 = *__s;\n                    if (iVar10 == 0xff) {\n                      *(undefined1 *)(iVar6 + 0xff) = 0;\n                      (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                      *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                      iVar7 = 1;\n                      iVar10 = 0;\n                    }\n                    else {\n                      iVar7 = iVar10 + 1;\n                    }\n                    __s = __s + 1;\n                    *(int *)(iVar6 + 0x100) = iVar7;\n                    *(char *)(iVar6 + iVar10) = cVar2;\n                    *(char *)(iVar6 + 0x104) = cVar2;\n                    iVar10 = iVar7;\n                  } while (pcVar1 != __s);\n                }\n                puVar12 = (undefined1 *)(unaff_EDI + 0xca6c9);\n                uVar11 = 0x7d;\n                do {\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  puVar12 = puVar12 + 1;\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if ((undefined1 *)(unaff_EDI + 0xca6cc) == puVar12) goto LAB_001a03d9;\n                  uVar11 = *puVar12;\n                  iVar7 = iVar10;\n                } while( true );\n              }\n              do {\n                if (uVar8 != 0x4c) {\n                  if (uVar8 < 0x4d) {\n                    if (4 < uVar8 - 0x1c) {\nLAB_001a036d:\n                      FUN_0019a610();\n                      *(undefined4 *)(iVar6 + 0x110) = uVar3;\n                      return;\n                    }\n                  }\n                  else if (1 < uVar8 - 0x4e) goto LAB_001a036d;\n                }\nLAB_001a03d9:\n                local_44 = (uint *)local_44[2];\n                uVar8 = *local_44;\n              } while( true );\n            }\n            FUN_0019f570();\n            *(undefined4 *)(iVar6 + 0x110) = uVar3;\n          }\n        }\n      }\n      piVar4 = (int *)*piVar4;\n      if (piVar4 == (int *)0x0) {\n        return;\n      }\n      iVar7 = *(int *)(iVar6 + 0x118);\n    }\n  }\n  return;\n}" primitive_type (function_declarator "FUN_001a0210(int param_1)" identifier (parameter_list "(int param_1)" ( (parameter_declaration "int param_1" primitive_type identifier) ))) (compound_statement "{\n  char *pcVar1;\n  char cVar2;\n  undefined4 uVar3;\n  int *piVar4;\n  undefined4 uVar5;\n  int iVar6;\n  int iVar7;\n  uint uVar8;\n  size_t sVar9;\n  int *extraout_ECX;\n  int iVar10;\n  undefined1 uVar11;\n  undefined1 *puVar12;\n  char *__s;\n  int unaff_EDI;\n  ulonglong uVar13;\n  uint *local_44;\n  char local_35 [37];\n  \n  uVar13 = FUN_00058c4a();\n  iVar6 = (int)uVar13;\n  if (extraout_ECX != (int *)0x0) {\n    iVar7 = *(int *)(iVar6 + 0x118);\n    piVar4 = extraout_ECX;\n    while (iVar7 == 0) {\n      if (piVar4[2] == 0) {\n        uVar8 = *(uint *)piVar4[1];\n        if (param_1 != 0) goto LAB_001a0258;\n        if (uVar8 != 0x4c) {\n          if (uVar8 < 0x4d) {\n            if (4 < uVar8 - 0x1c) goto LAB_001a0258;\n          }\n          else if (1 < uVar8 - 0x4e) {\nLAB_001a0258:\n            uVar3 = *(undefined4 *)(iVar6 + 0x110);\n            piVar4[2] = 1;\n            *(int *)(iVar6 + 0x110) = piVar4[3];\n            if (uVar8 == 0x29) {\n              FUN_0019fef0(*piVar4);\n              *(undefined4 *)(iVar6 + 0x110) = uVar3;\n              return;\n            }\n            if (uVar8 == 0x2a) {\n              FUN_001a0610(*piVar4);\n              *(undefined4 *)(iVar6 + 0x110) = uVar3;\n              return;\n            }\n            if (uVar8 == 2) {\n              uVar5 = *(undefined4 *)(iVar6 + 0x114);\n              *(undefined4 *)(iVar6 + 0x114) = 0;\n              FUN_0019a610();\n              *(undefined4 *)(iVar6 + 0x114) = uVar5;\n              iVar7 = *(int *)(iVar6 + 0x100);\n              if ((uVar13 & 0x400000000) == 0) {\n                puVar12 = (undefined1 *)(unaff_EDI + 0xca6ca);\n                uVar11 = 0x3a;\n                while( true ) {\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  puVar12 = puVar12 + 1;\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if (puVar12 == (undefined1 *)(unaff_EDI + 0xca6cc)) break;\n                  uVar11 = *puVar12;\n                  iVar7 = iVar10;\n                }\n              }\n              else {\n                iVar10 = iVar7 + 1;\n                if (iVar7 == 0xff) {\n                  *(undefined1 *)(iVar6 + 0xff) = 0;\n                  (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                  *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                  iVar10 = 1;\n                  iVar7 = 0;\n                }\n                *(int *)(iVar6 + 0x100) = iVar10;\n                *(undefined1 *)(iVar6 + iVar7) = 0x2e;\n                *(undefined1 *)(iVar6 + 0x104) = 0x2e;\n              }\n              local_44 = *(uint **)(piVar4[1] + 0xc);\n              uVar8 = *local_44;\n              if (uVar8 == 0x46) {\n                uVar11 = 0x7b;\n                puVar12 = (undefined1 *)(unaff_EDI + 0xca6bc);\n                iVar7 = *(int *)(iVar6 + 0x100);\n                while( true ) {\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if (puVar12 == (undefined1 *)(unaff_EDI + 0xca6c8)) break;\n                  uVar11 = *puVar12;\n                  puVar12 = puVar12 + 1;\n                  iVar7 = iVar10;\n                }\n                __s = local_35;\n                sprintf(__s,(char *)(unaff_EDI + 0xc8c52),local_44[3] + 1);\n                sVar9 = strlen(__s);\n                iVar7 = *(int *)(iVar6 + 0x100);\n                if (sVar9 != 0) {\n                  pcVar1 = __s + sVar9;\n                  iVar10 = iVar7;\n                  do {\n                    cVar2 = *__s;\n                    if (iVar10 == 0xff) {\n                      *(undefined1 *)(iVar6 + 0xff) = 0;\n                      (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                      *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                      iVar7 = 1;\n                      iVar10 = 0;\n                    }\n                    else {\n                      iVar7 = iVar10 + 1;\n                    }\n                    __s = __s + 1;\n                    *(int *)(iVar6 + 0x100) = iVar7;\n                    *(char *)(iVar6 + iVar10) = cVar2;\n                    *(char *)(iVar6 + 0x104) = cVar2;\n                    iVar10 = iVar7;\n                  } while (pcVar1 != __s);\n                }\n                puVar12 = (undefined1 *)(unaff_EDI + 0xca6c9);\n                uVar11 = 0x7d;\n                do {\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  puVar12 = puVar12 + 1;\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if ((undefined1 *)(unaff_EDI + 0xca6cc) == puVar12) goto LAB_001a03d9;\n                  uVar11 = *puVar12;\n                  iVar7 = iVar10;\n                } while( true );\n              }\n              do {\n                if (uVar8 != 0x4c) {\n                  if (uVar8 < 0x4d) {\n                    if (4 < uVar8 - 0x1c) {\nLAB_001a036d:\n                      FUN_0019a610();\n                      *(undefined4 *)(iVar6 + 0x110) = uVar3;\n                      return;\n                    }\n                  }\n                  else if (1 < uVar8 - 0x4e) goto LAB_001a036d;\n                }\nLAB_001a03d9:\n                local_44 = (uint *)local_44[2];\n                uVar8 = *local_44;\n              } while( true );\n            }\n            FUN_0019f570();\n            *(undefined4 *)(iVar6 + 0x110) = uVar3;\n          }\n        }\n      }\n      piVar4 = (int *)*piVar4;\n      if (piVar4 == (int *)0x0) {\n        return;\n      }\n      iVar7 = *(int *)(iVar6 + 0x118);\n    }\n  }\n  return;\n}" { (declaration "char *pcVar1;" primitive_type (pointer_declarator "*pcVar1" * identifier) ;) (declaration "char cVar2;" primitive_type identifier ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (declaration "int *piVar4;" primitive_type (pointer_declarator "*piVar4" * identifier) ;) (declaration "undefined4 uVar5;" type_identifier identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "size_t sVar9;" primitive_type identifier ;) (declaration "int *extraout_ECX;" primitive_type (pointer_declarator "*extraout_ECX" * identifier) ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "undefined1 uVar11;" type_identifier identifier ;) (declaration "undefined1 *puVar12;" type_identifier (pointer_declarator "*puVar12" * identifier) ;) (declaration "char *__s;" primitive_type (pointer_declarator "*__s" * identifier) ;) (declaration "int unaff_EDI;" primitive_type identifier ;) (declaration "ulonglong uVar13;" type_identifier identifier ;) (declaration "uint *local_44;" type_identifier (pointer_declarator "*local_44" * identifier) ;) (declaration "char local_35 [37];" primitive_type (array_declarator "local_35 [37]" identifier [ number_literal ]) ;) (expression_statement "uVar13 = FUN_00058c4a();" (assignment_expression "uVar13 = FUN_00058c4a()" identifier = (call_expression "FUN_00058c4a()" identifier (argument_list "()" ( )))) ;) (expression_statement "iVar6 = (int)uVar13;" (assignment_expression "iVar6 = (int)uVar13" identifier = (cast_expression "(int)uVar13" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (if_statement "if (extraout_ECX != (int *)0x0) {\n    iVar7 = *(int *)(iVar6 + 0x118);\n    piVar4 = extraout_ECX;\n    while (iVar7 == 0) {\n      if (piVar4[2] == 0) {\n        uVar8 = *(uint *)piVar4[1];\n        if (param_1 != 0) goto LAB_001a0258;\n        if (uVar8 != 0x4c) {\n          if (uVar8 < 0x4d) {\n            if (4 < uVar8 - 0x1c) goto LAB_001a0258;\n          }\n          else if (1 < uVar8 - 0x4e) {\nLAB_001a0258:\n            uVar3 = *(undefined4 *)(iVar6 + 0x110);\n            piVar4[2] = 1;\n            *(int *)(iVar6 + 0x110) = piVar4[3];\n            if (uVar8 == 0x29) {\n              FUN_0019fef0(*piVar4);\n              *(undefined4 *)(iVar6 + 0x110) = uVar3;\n              return;\n            }\n            if (uVar8 == 0x2a) {\n              FUN_001a0610(*piVar4);\n              *(undefined4 *)(iVar6 + 0x110) = uVar3;\n              return;\n            }\n            if (uVar8 == 2) {\n              uVar5 = *(undefined4 *)(iVar6 + 0x114);\n              *(undefined4 *)(iVar6 + 0x114) = 0;\n              FUN_0019a610();\n              *(undefined4 *)(iVar6 + 0x114) = uVar5;\n              iVar7 = *(int *)(iVar6 + 0x100);\n              if ((uVar13 & 0x400000000) == 0) {\n                puVar12 = (undefined1 *)(unaff_EDI + 0xca6ca);\n                uVar11 = 0x3a;\n                while( true ) {\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  puVar12 = puVar12 + 1;\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if (puVar12 == (undefined1 *)(unaff_EDI + 0xca6cc)) break;\n                  uVar11 = *puVar12;\n                  iVar7 = iVar10;\n                }\n              }\n              else {\n                iVar10 = iVar7 + 1;\n                if (iVar7 == 0xff) {\n                  *(undefined1 *)(iVar6 + 0xff) = 0;\n                  (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                  *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                  iVar10 = 1;\n                  iVar7 = 0;\n                }\n                *(int *)(iVar6 + 0x100) = iVar10;\n                *(undefined1 *)(iVar6 + iVar7) = 0x2e;\n                *(undefined1 *)(iVar6 + 0x104) = 0x2e;\n              }\n              local_44 = *(uint **)(piVar4[1] + 0xc);\n              uVar8 = *local_44;\n              if (uVar8 == 0x46) {\n                uVar11 = 0x7b;\n                puVar12 = (undefined1 *)(unaff_EDI + 0xca6bc);\n                iVar7 = *(int *)(iVar6 + 0x100);\n                while( true ) {\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if (puVar12 == (undefined1 *)(unaff_EDI + 0xca6c8)) break;\n                  uVar11 = *puVar12;\n                  puVar12 = puVar12 + 1;\n                  iVar7 = iVar10;\n                }\n                __s = local_35;\n                sprintf(__s,(char *)(unaff_EDI + 0xc8c52),local_44[3] + 1);\n                sVar9 = strlen(__s);\n                iVar7 = *(int *)(iVar6 + 0x100);\n                if (sVar9 != 0) {\n                  pcVar1 = __s + sVar9;\n                  iVar10 = iVar7;\n                  do {\n                    cVar2 = *__s;\n                    if (iVar10 == 0xff) {\n                      *(undefined1 *)(iVar6 + 0xff) = 0;\n                      (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                      *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                      iVar7 = 1;\n                      iVar10 = 0;\n                    }\n                    else {\n                      iVar7 = iVar10 + 1;\n                    }\n                    __s = __s + 1;\n                    *(int *)(iVar6 + 0x100) = iVar7;\n                    *(char *)(iVar6 + iVar10) = cVar2;\n                    *(char *)(iVar6 + 0x104) = cVar2;\n                    iVar10 = iVar7;\n                  } while (pcVar1 != __s);\n                }\n                puVar12 = (undefined1 *)(unaff_EDI + 0xca6c9);\n                uVar11 = 0x7d;\n                do {\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  puVar12 = puVar12 + 1;\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if ((undefined1 *)(unaff_EDI + 0xca6cc) == puVar12) goto LAB_001a03d9;\n                  uVar11 = *puVar12;\n                  iVar7 = iVar10;\n                } while( true );\n              }\n              do {\n                if (uVar8 != 0x4c) {\n                  if (uVar8 < 0x4d) {\n                    if (4 < uVar8 - 0x1c) {\nLAB_001a036d:\n                      FUN_0019a610();\n                      *(undefined4 *)(iVar6 + 0x110) = uVar3;\n                      return;\n                    }\n                  }\n                  else if (1 < uVar8 - 0x4e) goto LAB_001a036d;\n                }\nLAB_001a03d9:\n                local_44 = (uint *)local_44[2];\n                uVar8 = *local_44;\n              } while( true );\n            }\n            FUN_0019f570();\n            *(undefined4 *)(iVar6 + 0x110) = uVar3;\n          }\n        }\n      }\n      piVar4 = (int *)*piVar4;\n      if (piVar4 == (int *)0x0) {\n        return;\n      }\n      iVar7 = *(int *)(iVar6 + 0x118);\n    }\n  }" if (parenthesized_expression "(extraout_ECX != (int *)0x0)" ( (binary_expression "extraout_ECX != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    iVar7 = *(int *)(iVar6 + 0x118);\n    piVar4 = extraout_ECX;\n    while (iVar7 == 0) {\n      if (piVar4[2] == 0) {\n        uVar8 = *(uint *)piVar4[1];\n        if (param_1 != 0) goto LAB_001a0258;\n        if (uVar8 != 0x4c) {\n          if (uVar8 < 0x4d) {\n            if (4 < uVar8 - 0x1c) goto LAB_001a0258;\n          }\n          else if (1 < uVar8 - 0x4e) {\nLAB_001a0258:\n            uVar3 = *(undefined4 *)(iVar6 + 0x110);\n            piVar4[2] = 1;\n            *(int *)(iVar6 + 0x110) = piVar4[3];\n            if (uVar8 == 0x29) {\n              FUN_0019fef0(*piVar4);\n              *(undefined4 *)(iVar6 + 0x110) = uVar3;\n              return;\n            }\n            if (uVar8 == 0x2a) {\n              FUN_001a0610(*piVar4);\n              *(undefined4 *)(iVar6 + 0x110) = uVar3;\n              return;\n            }\n            if (uVar8 == 2) {\n              uVar5 = *(undefined4 *)(iVar6 + 0x114);\n              *(undefined4 *)(iVar6 + 0x114) = 0;\n              FUN_0019a610();\n              *(undefined4 *)(iVar6 + 0x114) = uVar5;\n              iVar7 = *(int *)(iVar6 + 0x100);\n              if ((uVar13 & 0x400000000) == 0) {\n                puVar12 = (undefined1 *)(unaff_EDI + 0xca6ca);\n                uVar11 = 0x3a;\n                while( true ) {\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  puVar12 = puVar12 + 1;\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if (puVar12 == (undefined1 *)(unaff_EDI + 0xca6cc)) break;\n                  uVar11 = *puVar12;\n                  iVar7 = iVar10;\n                }\n              }\n              else {\n                iVar10 = iVar7 + 1;\n                if (iVar7 == 0xff) {\n                  *(undefined1 *)(iVar6 + 0xff) = 0;\n                  (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                  *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                  iVar10 = 1;\n                  iVar7 = 0;\n                }\n                *(int *)(iVar6 + 0x100) = iVar10;\n                *(undefined1 *)(iVar6 + iVar7) = 0x2e;\n                *(undefined1 *)(iVar6 + 0x104) = 0x2e;\n              }\n              local_44 = *(uint **)(piVar4[1] + 0xc);\n              uVar8 = *local_44;\n              if (uVar8 == 0x46) {\n                uVar11 = 0x7b;\n                puVar12 = (undefined1 *)(unaff_EDI + 0xca6bc);\n                iVar7 = *(int *)(iVar6 + 0x100);\n                while( true ) {\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if (puVar12 == (undefined1 *)(unaff_EDI + 0xca6c8)) break;\n                  uVar11 = *puVar12;\n                  puVar12 = puVar12 + 1;\n                  iVar7 = iVar10;\n                }\n                __s = local_35;\n                sprintf(__s,(char *)(unaff_EDI + 0xc8c52),local_44[3] + 1);\n                sVar9 = strlen(__s);\n                iVar7 = *(int *)(iVar6 + 0x100);\n                if (sVar9 != 0) {\n                  pcVar1 = __s + sVar9;\n                  iVar10 = iVar7;\n                  do {\n                    cVar2 = *__s;\n                    if (iVar10 == 0xff) {\n                      *(undefined1 *)(iVar6 + 0xff) = 0;\n                      (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                      *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                      iVar7 = 1;\n                      iVar10 = 0;\n                    }\n                    else {\n                      iVar7 = iVar10 + 1;\n                    }\n                    __s = __s + 1;\n                    *(int *)(iVar6 + 0x100) = iVar7;\n                    *(char *)(iVar6 + iVar10) = cVar2;\n                    *(char *)(iVar6 + 0x104) = cVar2;\n                    iVar10 = iVar7;\n                  } while (pcVar1 != __s);\n                }\n                puVar12 = (undefined1 *)(unaff_EDI + 0xca6c9);\n                uVar11 = 0x7d;\n                do {\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  puVar12 = puVar12 + 1;\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if ((undefined1 *)(unaff_EDI + 0xca6cc) == puVar12) goto LAB_001a03d9;\n                  uVar11 = *puVar12;\n                  iVar7 = iVar10;\n                } while( true );\n              }\n              do {\n                if (uVar8 != 0x4c) {\n                  if (uVar8 < 0x4d) {\n                    if (4 < uVar8 - 0x1c) {\nLAB_001a036d:\n                      FUN_0019a610();\n                      *(undefined4 *)(iVar6 + 0x110) = uVar3;\n                      return;\n                    }\n                  }\n                  else if (1 < uVar8 - 0x4e) goto LAB_001a036d;\n                }\nLAB_001a03d9:\n                local_44 = (uint *)local_44[2];\n                uVar8 = *local_44;\n              } while( true );\n            }\n            FUN_0019f570();\n            *(undefined4 *)(iVar6 + 0x110) = uVar3;\n          }\n        }\n      }\n      piVar4 = (int *)*piVar4;\n      if (piVar4 == (int *)0x0) {\n        return;\n      }\n      iVar7 = *(int *)(iVar6 + 0x118);\n    }\n  }" { (expression_statement "iVar7 = *(int *)(iVar6 + 0x118);" (assignment_expression "iVar7 = *(int *)(iVar6 + 0x118)" identifier = (pointer_expression "*(int *)(iVar6 + 0x118)" * (cast_expression "(int *)(iVar6 + 0x118)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x118)" ( (binary_expression "iVar6 + 0x118" identifier + number_literal) ))))) ;) (expression_statement "piVar4 = extraout_ECX;" (assignment_expression "piVar4 = extraout_ECX" identifier = identifier) ;) (while_statement "while (iVar7 == 0) {\n      if (piVar4[2] == 0) {\n        uVar8 = *(uint *)piVar4[1];\n        if (param_1 != 0) goto LAB_001a0258;\n        if (uVar8 != 0x4c) {\n          if (uVar8 < 0x4d) {\n            if (4 < uVar8 - 0x1c) goto LAB_001a0258;\n          }\n          else if (1 < uVar8 - 0x4e) {\nLAB_001a0258:\n            uVar3 = *(undefined4 *)(iVar6 + 0x110);\n            piVar4[2] = 1;\n            *(int *)(iVar6 + 0x110) = piVar4[3];\n            if (uVar8 == 0x29) {\n              FUN_0019fef0(*piVar4);\n              *(undefined4 *)(iVar6 + 0x110) = uVar3;\n              return;\n            }\n            if (uVar8 == 0x2a) {\n              FUN_001a0610(*piVar4);\n              *(undefined4 *)(iVar6 + 0x110) = uVar3;\n              return;\n            }\n            if (uVar8 == 2) {\n              uVar5 = *(undefined4 *)(iVar6 + 0x114);\n              *(undefined4 *)(iVar6 + 0x114) = 0;\n              FUN_0019a610();\n              *(undefined4 *)(iVar6 + 0x114) = uVar5;\n              iVar7 = *(int *)(iVar6 + 0x100);\n              if ((uVar13 & 0x400000000) == 0) {\n                puVar12 = (undefined1 *)(unaff_EDI + 0xca6ca);\n                uVar11 = 0x3a;\n                while( true ) {\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  puVar12 = puVar12 + 1;\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if (puVar12 == (undefined1 *)(unaff_EDI + 0xca6cc)) break;\n                  uVar11 = *puVar12;\n                  iVar7 = iVar10;\n                }\n              }\n              else {\n                iVar10 = iVar7 + 1;\n                if (iVar7 == 0xff) {\n                  *(undefined1 *)(iVar6 + 0xff) = 0;\n                  (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                  *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                  iVar10 = 1;\n                  iVar7 = 0;\n                }\n                *(int *)(iVar6 + 0x100) = iVar10;\n                *(undefined1 *)(iVar6 + iVar7) = 0x2e;\n                *(undefined1 *)(iVar6 + 0x104) = 0x2e;\n              }\n              local_44 = *(uint **)(piVar4[1] + 0xc);\n              uVar8 = *local_44;\n              if (uVar8 == 0x46) {\n                uVar11 = 0x7b;\n                puVar12 = (undefined1 *)(unaff_EDI + 0xca6bc);\n                iVar7 = *(int *)(iVar6 + 0x100);\n                while( true ) {\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if (puVar12 == (undefined1 *)(unaff_EDI + 0xca6c8)) break;\n                  uVar11 = *puVar12;\n                  puVar12 = puVar12 + 1;\n                  iVar7 = iVar10;\n                }\n                __s = local_35;\n                sprintf(__s,(char *)(unaff_EDI + 0xc8c52),local_44[3] + 1);\n                sVar9 = strlen(__s);\n                iVar7 = *(int *)(iVar6 + 0x100);\n                if (sVar9 != 0) {\n                  pcVar1 = __s + sVar9;\n                  iVar10 = iVar7;\n                  do {\n                    cVar2 = *__s;\n                    if (iVar10 == 0xff) {\n                      *(undefined1 *)(iVar6 + 0xff) = 0;\n                      (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                      *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                      iVar7 = 1;\n                      iVar10 = 0;\n                    }\n                    else {\n                      iVar7 = iVar10 + 1;\n                    }\n                    __s = __s + 1;\n                    *(int *)(iVar6 + 0x100) = iVar7;\n                    *(char *)(iVar6 + iVar10) = cVar2;\n                    *(char *)(iVar6 + 0x104) = cVar2;\n                    iVar10 = iVar7;\n                  } while (pcVar1 != __s);\n                }\n                puVar12 = (undefined1 *)(unaff_EDI + 0xca6c9);\n                uVar11 = 0x7d;\n                do {\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  puVar12 = puVar12 + 1;\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if ((undefined1 *)(unaff_EDI + 0xca6cc) == puVar12) goto LAB_001a03d9;\n                  uVar11 = *puVar12;\n                  iVar7 = iVar10;\n                } while( true );\n              }\n              do {\n                if (uVar8 != 0x4c) {\n                  if (uVar8 < 0x4d) {\n                    if (4 < uVar8 - 0x1c) {\nLAB_001a036d:\n                      FUN_0019a610();\n                      *(undefined4 *)(iVar6 + 0x110) = uVar3;\n                      return;\n                    }\n                  }\n                  else if (1 < uVar8 - 0x4e) goto LAB_001a036d;\n                }\nLAB_001a03d9:\n                local_44 = (uint *)local_44[2];\n                uVar8 = *local_44;\n              } while( true );\n            }\n            FUN_0019f570();\n            *(undefined4 *)(iVar6 + 0x110) = uVar3;\n          }\n        }\n      }\n      piVar4 = (int *)*piVar4;\n      if (piVar4 == (int *)0x0) {\n        return;\n      }\n      iVar7 = *(int *)(iVar6 + 0x118);\n    }" while (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n      if (piVar4[2] == 0) {\n        uVar8 = *(uint *)piVar4[1];\n        if (param_1 != 0) goto LAB_001a0258;\n        if (uVar8 != 0x4c) {\n          if (uVar8 < 0x4d) {\n            if (4 < uVar8 - 0x1c) goto LAB_001a0258;\n          }\n          else if (1 < uVar8 - 0x4e) {\nLAB_001a0258:\n            uVar3 = *(undefined4 *)(iVar6 + 0x110);\n            piVar4[2] = 1;\n            *(int *)(iVar6 + 0x110) = piVar4[3];\n            if (uVar8 == 0x29) {\n              FUN_0019fef0(*piVar4);\n              *(undefined4 *)(iVar6 + 0x110) = uVar3;\n              return;\n            }\n            if (uVar8 == 0x2a) {\n              FUN_001a0610(*piVar4);\n              *(undefined4 *)(iVar6 + 0x110) = uVar3;\n              return;\n            }\n            if (uVar8 == 2) {\n              uVar5 = *(undefined4 *)(iVar6 + 0x114);\n              *(undefined4 *)(iVar6 + 0x114) = 0;\n              FUN_0019a610();\n              *(undefined4 *)(iVar6 + 0x114) = uVar5;\n              iVar7 = *(int *)(iVar6 + 0x100);\n              if ((uVar13 & 0x400000000) == 0) {\n                puVar12 = (undefined1 *)(unaff_EDI + 0xca6ca);\n                uVar11 = 0x3a;\n                while( true ) {\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  puVar12 = puVar12 + 1;\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if (puVar12 == (undefined1 *)(unaff_EDI + 0xca6cc)) break;\n                  uVar11 = *puVar12;\n                  iVar7 = iVar10;\n                }\n              }\n              else {\n                iVar10 = iVar7 + 1;\n                if (iVar7 == 0xff) {\n                  *(undefined1 *)(iVar6 + 0xff) = 0;\n                  (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                  *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                  iVar10 = 1;\n                  iVar7 = 0;\n                }\n                *(int *)(iVar6 + 0x100) = iVar10;\n                *(undefined1 *)(iVar6 + iVar7) = 0x2e;\n                *(undefined1 *)(iVar6 + 0x104) = 0x2e;\n              }\n              local_44 = *(uint **)(piVar4[1] + 0xc);\n              uVar8 = *local_44;\n              if (uVar8 == 0x46) {\n                uVar11 = 0x7b;\n                puVar12 = (undefined1 *)(unaff_EDI + 0xca6bc);\n                iVar7 = *(int *)(iVar6 + 0x100);\n                while( true ) {\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if (puVar12 == (undefined1 *)(unaff_EDI + 0xca6c8)) break;\n                  uVar11 = *puVar12;\n                  puVar12 = puVar12 + 1;\n                  iVar7 = iVar10;\n                }\n                __s = local_35;\n                sprintf(__s,(char *)(unaff_EDI + 0xc8c52),local_44[3] + 1);\n                sVar9 = strlen(__s);\n                iVar7 = *(int *)(iVar6 + 0x100);\n                if (sVar9 != 0) {\n                  pcVar1 = __s + sVar9;\n                  iVar10 = iVar7;\n                  do {\n                    cVar2 = *__s;\n                    if (iVar10 == 0xff) {\n                      *(undefined1 *)(iVar6 + 0xff) = 0;\n                      (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                      *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                      iVar7 = 1;\n                      iVar10 = 0;\n                    }\n                    else {\n                      iVar7 = iVar10 + 1;\n                    }\n                    __s = __s + 1;\n                    *(int *)(iVar6 + 0x100) = iVar7;\n                    *(char *)(iVar6 + iVar10) = cVar2;\n                    *(char *)(iVar6 + 0x104) = cVar2;\n                    iVar10 = iVar7;\n                  } while (pcVar1 != __s);\n                }\n                puVar12 = (undefined1 *)(unaff_EDI + 0xca6c9);\n                uVar11 = 0x7d;\n                do {\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  puVar12 = puVar12 + 1;\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if ((undefined1 *)(unaff_EDI + 0xca6cc) == puVar12) goto LAB_001a03d9;\n                  uVar11 = *puVar12;\n                  iVar7 = iVar10;\n                } while( true );\n              }\n              do {\n                if (uVar8 != 0x4c) {\n                  if (uVar8 < 0x4d) {\n                    if (4 < uVar8 - 0x1c) {\nLAB_001a036d:\n                      FUN_0019a610();\n                      *(undefined4 *)(iVar6 + 0x110) = uVar3;\n                      return;\n                    }\n                  }\n                  else if (1 < uVar8 - 0x4e) goto LAB_001a036d;\n                }\nLAB_001a03d9:\n                local_44 = (uint *)local_44[2];\n                uVar8 = *local_44;\n              } while( true );\n            }\n            FUN_0019f570();\n            *(undefined4 *)(iVar6 + 0x110) = uVar3;\n          }\n        }\n      }\n      piVar4 = (int *)*piVar4;\n      if (piVar4 == (int *)0x0) {\n        return;\n      }\n      iVar7 = *(int *)(iVar6 + 0x118);\n    }" { (if_statement "if (piVar4[2] == 0) {\n        uVar8 = *(uint *)piVar4[1];\n        if (param_1 != 0) goto LAB_001a0258;\n        if (uVar8 != 0x4c) {\n          if (uVar8 < 0x4d) {\n            if (4 < uVar8 - 0x1c) goto LAB_001a0258;\n          }\n          else if (1 < uVar8 - 0x4e) {\nLAB_001a0258:\n            uVar3 = *(undefined4 *)(iVar6 + 0x110);\n            piVar4[2] = 1;\n            *(int *)(iVar6 + 0x110) = piVar4[3];\n            if (uVar8 == 0x29) {\n              FUN_0019fef0(*piVar4);\n              *(undefined4 *)(iVar6 + 0x110) = uVar3;\n              return;\n            }\n            if (uVar8 == 0x2a) {\n              FUN_001a0610(*piVar4);\n              *(undefined4 *)(iVar6 + 0x110) = uVar3;\n              return;\n            }\n            if (uVar8 == 2) {\n              uVar5 = *(undefined4 *)(iVar6 + 0x114);\n              *(undefined4 *)(iVar6 + 0x114) = 0;\n              FUN_0019a610();\n              *(undefined4 *)(iVar6 + 0x114) = uVar5;\n              iVar7 = *(int *)(iVar6 + 0x100);\n              if ((uVar13 & 0x400000000) == 0) {\n                puVar12 = (undefined1 *)(unaff_EDI + 0xca6ca);\n                uVar11 = 0x3a;\n                while( true ) {\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  puVar12 = puVar12 + 1;\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if (puVar12 == (undefined1 *)(unaff_EDI + 0xca6cc)) break;\n                  uVar11 = *puVar12;\n                  iVar7 = iVar10;\n                }\n              }\n              else {\n                iVar10 = iVar7 + 1;\n                if (iVar7 == 0xff) {\n                  *(undefined1 *)(iVar6 + 0xff) = 0;\n                  (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                  *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                  iVar10 = 1;\n                  iVar7 = 0;\n                }\n                *(int *)(iVar6 + 0x100) = iVar10;\n                *(undefined1 *)(iVar6 + iVar7) = 0x2e;\n                *(undefined1 *)(iVar6 + 0x104) = 0x2e;\n              }\n              local_44 = *(uint **)(piVar4[1] + 0xc);\n              uVar8 = *local_44;\n              if (uVar8 == 0x46) {\n                uVar11 = 0x7b;\n                puVar12 = (undefined1 *)(unaff_EDI + 0xca6bc);\n                iVar7 = *(int *)(iVar6 + 0x100);\n                while( true ) {\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if (puVar12 == (undefined1 *)(unaff_EDI + 0xca6c8)) break;\n                  uVar11 = *puVar12;\n                  puVar12 = puVar12 + 1;\n                  iVar7 = iVar10;\n                }\n                __s = local_35;\n                sprintf(__s,(char *)(unaff_EDI + 0xc8c52),local_44[3] + 1);\n                sVar9 = strlen(__s);\n                iVar7 = *(int *)(iVar6 + 0x100);\n                if (sVar9 != 0) {\n                  pcVar1 = __s + sVar9;\n                  iVar10 = iVar7;\n                  do {\n                    cVar2 = *__s;\n                    if (iVar10 == 0xff) {\n                      *(undefined1 *)(iVar6 + 0xff) = 0;\n                      (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                      *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                      iVar7 = 1;\n                      iVar10 = 0;\n                    }\n                    else {\n                      iVar7 = iVar10 + 1;\n                    }\n                    __s = __s + 1;\n                    *(int *)(iVar6 + 0x100) = iVar7;\n                    *(char *)(iVar6 + iVar10) = cVar2;\n                    *(char *)(iVar6 + 0x104) = cVar2;\n                    iVar10 = iVar7;\n                  } while (pcVar1 != __s);\n                }\n                puVar12 = (undefined1 *)(unaff_EDI + 0xca6c9);\n                uVar11 = 0x7d;\n                do {\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  puVar12 = puVar12 + 1;\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if ((undefined1 *)(unaff_EDI + 0xca6cc) == puVar12) goto LAB_001a03d9;\n                  uVar11 = *puVar12;\n                  iVar7 = iVar10;\n                } while( true );\n              }\n              do {\n                if (uVar8 != 0x4c) {\n                  if (uVar8 < 0x4d) {\n                    if (4 < uVar8 - 0x1c) {\nLAB_001a036d:\n                      FUN_0019a610();\n                      *(undefined4 *)(iVar6 + 0x110) = uVar3;\n                      return;\n                    }\n                  }\n                  else if (1 < uVar8 - 0x4e) goto LAB_001a036d;\n                }\nLAB_001a03d9:\n                local_44 = (uint *)local_44[2];\n                uVar8 = *local_44;\n              } while( true );\n            }\n            FUN_0019f570();\n            *(undefined4 *)(iVar6 + 0x110) = uVar3;\n          }\n        }\n      }" if (parenthesized_expression "(piVar4[2] == 0)" ( (binary_expression "piVar4[2] == 0" (subscript_expression "piVar4[2]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n        uVar8 = *(uint *)piVar4[1];\n        if (param_1 != 0) goto LAB_001a0258;\n        if (uVar8 != 0x4c) {\n          if (uVar8 < 0x4d) {\n            if (4 < uVar8 - 0x1c) goto LAB_001a0258;\n          }\n          else if (1 < uVar8 - 0x4e) {\nLAB_001a0258:\n            uVar3 = *(undefined4 *)(iVar6 + 0x110);\n            piVar4[2] = 1;\n            *(int *)(iVar6 + 0x110) = piVar4[3];\n            if (uVar8 == 0x29) {\n              FUN_0019fef0(*piVar4);\n              *(undefined4 *)(iVar6 + 0x110) = uVar3;\n              return;\n            }\n            if (uVar8 == 0x2a) {\n              FUN_001a0610(*piVar4);\n              *(undefined4 *)(iVar6 + 0x110) = uVar3;\n              return;\n            }\n            if (uVar8 == 2) {\n              uVar5 = *(undefined4 *)(iVar6 + 0x114);\n              *(undefined4 *)(iVar6 + 0x114) = 0;\n              FUN_0019a610();\n              *(undefined4 *)(iVar6 + 0x114) = uVar5;\n              iVar7 = *(int *)(iVar6 + 0x100);\n              if ((uVar13 & 0x400000000) == 0) {\n                puVar12 = (undefined1 *)(unaff_EDI + 0xca6ca);\n                uVar11 = 0x3a;\n                while( true ) {\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  puVar12 = puVar12 + 1;\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if (puVar12 == (undefined1 *)(unaff_EDI + 0xca6cc)) break;\n                  uVar11 = *puVar12;\n                  iVar7 = iVar10;\n                }\n              }\n              else {\n                iVar10 = iVar7 + 1;\n                if (iVar7 == 0xff) {\n                  *(undefined1 *)(iVar6 + 0xff) = 0;\n                  (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                  *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                  iVar10 = 1;\n                  iVar7 = 0;\n                }\n                *(int *)(iVar6 + 0x100) = iVar10;\n                *(undefined1 *)(iVar6 + iVar7) = 0x2e;\n                *(undefined1 *)(iVar6 + 0x104) = 0x2e;\n              }\n              local_44 = *(uint **)(piVar4[1] + 0xc);\n              uVar8 = *local_44;\n              if (uVar8 == 0x46) {\n                uVar11 = 0x7b;\n                puVar12 = (undefined1 *)(unaff_EDI + 0xca6bc);\n                iVar7 = *(int *)(iVar6 + 0x100);\n                while( true ) {\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if (puVar12 == (undefined1 *)(unaff_EDI + 0xca6c8)) break;\n                  uVar11 = *puVar12;\n                  puVar12 = puVar12 + 1;\n                  iVar7 = iVar10;\n                }\n                __s = local_35;\n                sprintf(__s,(char *)(unaff_EDI + 0xc8c52),local_44[3] + 1);\n                sVar9 = strlen(__s);\n                iVar7 = *(int *)(iVar6 + 0x100);\n                if (sVar9 != 0) {\n                  pcVar1 = __s + sVar9;\n                  iVar10 = iVar7;\n                  do {\n                    cVar2 = *__s;\n                    if (iVar10 == 0xff) {\n                      *(undefined1 *)(iVar6 + 0xff) = 0;\n                      (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                      *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                      iVar7 = 1;\n                      iVar10 = 0;\n                    }\n                    else {\n                      iVar7 = iVar10 + 1;\n                    }\n                    __s = __s + 1;\n                    *(int *)(iVar6 + 0x100) = iVar7;\n                    *(char *)(iVar6 + iVar10) = cVar2;\n                    *(char *)(iVar6 + 0x104) = cVar2;\n                    iVar10 = iVar7;\n                  } while (pcVar1 != __s);\n                }\n                puVar12 = (undefined1 *)(unaff_EDI + 0xca6c9);\n                uVar11 = 0x7d;\n                do {\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  puVar12 = puVar12 + 1;\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if ((undefined1 *)(unaff_EDI + 0xca6cc) == puVar12) goto LAB_001a03d9;\n                  uVar11 = *puVar12;\n                  iVar7 = iVar10;\n                } while( true );\n              }\n              do {\n                if (uVar8 != 0x4c) {\n                  if (uVar8 < 0x4d) {\n                    if (4 < uVar8 - 0x1c) {\nLAB_001a036d:\n                      FUN_0019a610();\n                      *(undefined4 *)(iVar6 + 0x110) = uVar3;\n                      return;\n                    }\n                  }\n                  else if (1 < uVar8 - 0x4e) goto LAB_001a036d;\n                }\nLAB_001a03d9:\n                local_44 = (uint *)local_44[2];\n                uVar8 = *local_44;\n              } while( true );\n            }\n            FUN_0019f570();\n            *(undefined4 *)(iVar6 + 0x110) = uVar3;\n          }\n        }\n      }" { (expression_statement "uVar8 = *(uint *)piVar4[1];" (assignment_expression "uVar8 = *(uint *)piVar4[1]" identifier = (pointer_expression "*(uint *)piVar4[1]" * (cast_expression "(uint *)piVar4[1]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar4[1]" identifier [ number_literal ])))) ;) (if_statement "if (param_1 != 0) goto LAB_001a0258;" if (parenthesized_expression "(param_1 != 0)" ( (binary_expression "param_1 != 0" identifier != number_literal) )) (goto_statement "goto LAB_001a0258;" goto statement_identifier ;)) (if_statement "if (uVar8 != 0x4c) {\n          if (uVar8 < 0x4d) {\n            if (4 < uVar8 - 0x1c) goto LAB_001a0258;\n          }\n          else if (1 < uVar8 - 0x4e) {\nLAB_001a0258:\n            uVar3 = *(undefined4 *)(iVar6 + 0x110);\n            piVar4[2] = 1;\n            *(int *)(iVar6 + 0x110) = piVar4[3];\n            if (uVar8 == 0x29) {\n              FUN_0019fef0(*piVar4);\n              *(undefined4 *)(iVar6 + 0x110) = uVar3;\n              return;\n            }\n            if (uVar8 == 0x2a) {\n              FUN_001a0610(*piVar4);\n              *(undefined4 *)(iVar6 + 0x110) = uVar3;\n              return;\n            }\n            if (uVar8 == 2) {\n              uVar5 = *(undefined4 *)(iVar6 + 0x114);\n              *(undefined4 *)(iVar6 + 0x114) = 0;\n              FUN_0019a610();\n              *(undefined4 *)(iVar6 + 0x114) = uVar5;\n              iVar7 = *(int *)(iVar6 + 0x100);\n              if ((uVar13 & 0x400000000) == 0) {\n                puVar12 = (undefined1 *)(unaff_EDI + 0xca6ca);\n                uVar11 = 0x3a;\n                while( true ) {\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  puVar12 = puVar12 + 1;\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if (puVar12 == (undefined1 *)(unaff_EDI + 0xca6cc)) break;\n                  uVar11 = *puVar12;\n                  iVar7 = iVar10;\n                }\n              }\n              else {\n                iVar10 = iVar7 + 1;\n                if (iVar7 == 0xff) {\n                  *(undefined1 *)(iVar6 + 0xff) = 0;\n                  (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                  *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                  iVar10 = 1;\n                  iVar7 = 0;\n                }\n                *(int *)(iVar6 + 0x100) = iVar10;\n                *(undefined1 *)(iVar6 + iVar7) = 0x2e;\n                *(undefined1 *)(iVar6 + 0x104) = 0x2e;\n              }\n              local_44 = *(uint **)(piVar4[1] + 0xc);\n              uVar8 = *local_44;\n              if (uVar8 == 0x46) {\n                uVar11 = 0x7b;\n                puVar12 = (undefined1 *)(unaff_EDI + 0xca6bc);\n                iVar7 = *(int *)(iVar6 + 0x100);\n                while( true ) {\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if (puVar12 == (undefined1 *)(unaff_EDI + 0xca6c8)) break;\n                  uVar11 = *puVar12;\n                  puVar12 = puVar12 + 1;\n                  iVar7 = iVar10;\n                }\n                __s = local_35;\n                sprintf(__s,(char *)(unaff_EDI + 0xc8c52),local_44[3] + 1);\n                sVar9 = strlen(__s);\n                iVar7 = *(int *)(iVar6 + 0x100);\n                if (sVar9 != 0) {\n                  pcVar1 = __s + sVar9;\n                  iVar10 = iVar7;\n                  do {\n                    cVar2 = *__s;\n                    if (iVar10 == 0xff) {\n                      *(undefined1 *)(iVar6 + 0xff) = 0;\n                      (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                      *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                      iVar7 = 1;\n                      iVar10 = 0;\n                    }\n                    else {\n                      iVar7 = iVar10 + 1;\n                    }\n                    __s = __s + 1;\n                    *(int *)(iVar6 + 0x100) = iVar7;\n                    *(char *)(iVar6 + iVar10) = cVar2;\n                    *(char *)(iVar6 + 0x104) = cVar2;\n                    iVar10 = iVar7;\n                  } while (pcVar1 != __s);\n                }\n                puVar12 = (undefined1 *)(unaff_EDI + 0xca6c9);\n                uVar11 = 0x7d;\n                do {\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  puVar12 = puVar12 + 1;\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if ((undefined1 *)(unaff_EDI + 0xca6cc) == puVar12) goto LAB_001a03d9;\n                  uVar11 = *puVar12;\n                  iVar7 = iVar10;\n                } while( true );\n              }\n              do {\n                if (uVar8 != 0x4c) {\n                  if (uVar8 < 0x4d) {\n                    if (4 < uVar8 - 0x1c) {\nLAB_001a036d:\n                      FUN_0019a610();\n                      *(undefined4 *)(iVar6 + 0x110) = uVar3;\n                      return;\n                    }\n                  }\n                  else if (1 < uVar8 - 0x4e) goto LAB_001a036d;\n                }\nLAB_001a03d9:\n                local_44 = (uint *)local_44[2];\n                uVar8 = *local_44;\n              } while( true );\n            }\n            FUN_0019f570();\n            *(undefined4 *)(iVar6 + 0x110) = uVar3;\n          }\n        }" if (parenthesized_expression "(uVar8 != 0x4c)" ( (binary_expression "uVar8 != 0x4c" identifier != number_literal) )) (compound_statement "{\n          if (uVar8 < 0x4d) {\n            if (4 < uVar8 - 0x1c) goto LAB_001a0258;\n          }\n          else if (1 < uVar8 - 0x4e) {\nLAB_001a0258:\n            uVar3 = *(undefined4 *)(iVar6 + 0x110);\n            piVar4[2] = 1;\n            *(int *)(iVar6 + 0x110) = piVar4[3];\n            if (uVar8 == 0x29) {\n              FUN_0019fef0(*piVar4);\n              *(undefined4 *)(iVar6 + 0x110) = uVar3;\n              return;\n            }\n            if (uVar8 == 0x2a) {\n              FUN_001a0610(*piVar4);\n              *(undefined4 *)(iVar6 + 0x110) = uVar3;\n              return;\n            }\n            if (uVar8 == 2) {\n              uVar5 = *(undefined4 *)(iVar6 + 0x114);\n              *(undefined4 *)(iVar6 + 0x114) = 0;\n              FUN_0019a610();\n              *(undefined4 *)(iVar6 + 0x114) = uVar5;\n              iVar7 = *(int *)(iVar6 + 0x100);\n              if ((uVar13 & 0x400000000) == 0) {\n                puVar12 = (undefined1 *)(unaff_EDI + 0xca6ca);\n                uVar11 = 0x3a;\n                while( true ) {\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  puVar12 = puVar12 + 1;\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if (puVar12 == (undefined1 *)(unaff_EDI + 0xca6cc)) break;\n                  uVar11 = *puVar12;\n                  iVar7 = iVar10;\n                }\n              }\n              else {\n                iVar10 = iVar7 + 1;\n                if (iVar7 == 0xff) {\n                  *(undefined1 *)(iVar6 + 0xff) = 0;\n                  (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                  *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                  iVar10 = 1;\n                  iVar7 = 0;\n                }\n                *(int *)(iVar6 + 0x100) = iVar10;\n                *(undefined1 *)(iVar6 + iVar7) = 0x2e;\n                *(undefined1 *)(iVar6 + 0x104) = 0x2e;\n              }\n              local_44 = *(uint **)(piVar4[1] + 0xc);\n              uVar8 = *local_44;\n              if (uVar8 == 0x46) {\n                uVar11 = 0x7b;\n                puVar12 = (undefined1 *)(unaff_EDI + 0xca6bc);\n                iVar7 = *(int *)(iVar6 + 0x100);\n                while( true ) {\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if (puVar12 == (undefined1 *)(unaff_EDI + 0xca6c8)) break;\n                  uVar11 = *puVar12;\n                  puVar12 = puVar12 + 1;\n                  iVar7 = iVar10;\n                }\n                __s = local_35;\n                sprintf(__s,(char *)(unaff_EDI + 0xc8c52),local_44[3] + 1);\n                sVar9 = strlen(__s);\n                iVar7 = *(int *)(iVar6 + 0x100);\n                if (sVar9 != 0) {\n                  pcVar1 = __s + sVar9;\n                  iVar10 = iVar7;\n                  do {\n                    cVar2 = *__s;\n                    if (iVar10 == 0xff) {\n                      *(undefined1 *)(iVar6 + 0xff) = 0;\n                      (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                      *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                      iVar7 = 1;\n                      iVar10 = 0;\n                    }\n                    else {\n                      iVar7 = iVar10 + 1;\n                    }\n                    __s = __s + 1;\n                    *(int *)(iVar6 + 0x100) = iVar7;\n                    *(char *)(iVar6 + iVar10) = cVar2;\n                    *(char *)(iVar6 + 0x104) = cVar2;\n                    iVar10 = iVar7;\n                  } while (pcVar1 != __s);\n                }\n                puVar12 = (undefined1 *)(unaff_EDI + 0xca6c9);\n                uVar11 = 0x7d;\n                do {\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  puVar12 = puVar12 + 1;\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if ((undefined1 *)(unaff_EDI + 0xca6cc) == puVar12) goto LAB_001a03d9;\n                  uVar11 = *puVar12;\n                  iVar7 = iVar10;\n                } while( true );\n              }\n              do {\n                if (uVar8 != 0x4c) {\n                  if (uVar8 < 0x4d) {\n                    if (4 < uVar8 - 0x1c) {\nLAB_001a036d:\n                      FUN_0019a610();\n                      *(undefined4 *)(iVar6 + 0x110) = uVar3;\n                      return;\n                    }\n                  }\n                  else if (1 < uVar8 - 0x4e) goto LAB_001a036d;\n                }\nLAB_001a03d9:\n                local_44 = (uint *)local_44[2];\n                uVar8 = *local_44;\n              } while( true );\n            }\n            FUN_0019f570();\n            *(undefined4 *)(iVar6 + 0x110) = uVar3;\n          }\n        }" { (if_statement "if (uVar8 < 0x4d) {\n            if (4 < uVar8 - 0x1c) goto LAB_001a0258;\n          }\n          else if (1 < uVar8 - 0x4e) {\nLAB_001a0258:\n            uVar3 = *(undefined4 *)(iVar6 + 0x110);\n            piVar4[2] = 1;\n            *(int *)(iVar6 + 0x110) = piVar4[3];\n            if (uVar8 == 0x29) {\n              FUN_0019fef0(*piVar4);\n              *(undefined4 *)(iVar6 + 0x110) = uVar3;\n              return;\n            }\n            if (uVar8 == 0x2a) {\n              FUN_001a0610(*piVar4);\n              *(undefined4 *)(iVar6 + 0x110) = uVar3;\n              return;\n            }\n            if (uVar8 == 2) {\n              uVar5 = *(undefined4 *)(iVar6 + 0x114);\n              *(undefined4 *)(iVar6 + 0x114) = 0;\n              FUN_0019a610();\n              *(undefined4 *)(iVar6 + 0x114) = uVar5;\n              iVar7 = *(int *)(iVar6 + 0x100);\n              if ((uVar13 & 0x400000000) == 0) {\n                puVar12 = (undefined1 *)(unaff_EDI + 0xca6ca);\n                uVar11 = 0x3a;\n                while( true ) {\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  puVar12 = puVar12 + 1;\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if (puVar12 == (undefined1 *)(unaff_EDI + 0xca6cc)) break;\n                  uVar11 = *puVar12;\n                  iVar7 = iVar10;\n                }\n              }\n              else {\n                iVar10 = iVar7 + 1;\n                if (iVar7 == 0xff) {\n                  *(undefined1 *)(iVar6 + 0xff) = 0;\n                  (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                  *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                  iVar10 = 1;\n                  iVar7 = 0;\n                }\n                *(int *)(iVar6 + 0x100) = iVar10;\n                *(undefined1 *)(iVar6 + iVar7) = 0x2e;\n                *(undefined1 *)(iVar6 + 0x104) = 0x2e;\n              }\n              local_44 = *(uint **)(piVar4[1] + 0xc);\n              uVar8 = *local_44;\n              if (uVar8 == 0x46) {\n                uVar11 = 0x7b;\n                puVar12 = (undefined1 *)(unaff_EDI + 0xca6bc);\n                iVar7 = *(int *)(iVar6 + 0x100);\n                while( true ) {\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if (puVar12 == (undefined1 *)(unaff_EDI + 0xca6c8)) break;\n                  uVar11 = *puVar12;\n                  puVar12 = puVar12 + 1;\n                  iVar7 = iVar10;\n                }\n                __s = local_35;\n                sprintf(__s,(char *)(unaff_EDI + 0xc8c52),local_44[3] + 1);\n                sVar9 = strlen(__s);\n                iVar7 = *(int *)(iVar6 + 0x100);\n                if (sVar9 != 0) {\n                  pcVar1 = __s + sVar9;\n                  iVar10 = iVar7;\n                  do {\n                    cVar2 = *__s;\n                    if (iVar10 == 0xff) {\n                      *(undefined1 *)(iVar6 + 0xff) = 0;\n                      (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                      *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                      iVar7 = 1;\n                      iVar10 = 0;\n                    }\n                    else {\n                      iVar7 = iVar10 + 1;\n                    }\n                    __s = __s + 1;\n                    *(int *)(iVar6 + 0x100) = iVar7;\n                    *(char *)(iVar6 + iVar10) = cVar2;\n                    *(char *)(iVar6 + 0x104) = cVar2;\n                    iVar10 = iVar7;\n                  } while (pcVar1 != __s);\n                }\n                puVar12 = (undefined1 *)(unaff_EDI + 0xca6c9);\n                uVar11 = 0x7d;\n                do {\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  puVar12 = puVar12 + 1;\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if ((undefined1 *)(unaff_EDI + 0xca6cc) == puVar12) goto LAB_001a03d9;\n                  uVar11 = *puVar12;\n                  iVar7 = iVar10;\n                } while( true );\n              }\n              do {\n                if (uVar8 != 0x4c) {\n                  if (uVar8 < 0x4d) {\n                    if (4 < uVar8 - 0x1c) {\nLAB_001a036d:\n                      FUN_0019a610();\n                      *(undefined4 *)(iVar6 + 0x110) = uVar3;\n                      return;\n                    }\n                  }\n                  else if (1 < uVar8 - 0x4e) goto LAB_001a036d;\n                }\nLAB_001a03d9:\n                local_44 = (uint *)local_44[2];\n                uVar8 = *local_44;\n              } while( true );\n            }\n            FUN_0019f570();\n            *(undefined4 *)(iVar6 + 0x110) = uVar3;\n          }" if (parenthesized_expression "(uVar8 < 0x4d)" ( (binary_expression "uVar8 < 0x4d" identifier < number_literal) )) (compound_statement "{\n            if (4 < uVar8 - 0x1c) goto LAB_001a0258;\n          }" { (if_statement "if (4 < uVar8 - 0x1c) goto LAB_001a0258;" if (parenthesized_expression "(4 < uVar8 - 0x1c)" ( (binary_expression "4 < uVar8 - 0x1c" number_literal < (binary_expression "uVar8 - 0x1c" identifier - number_literal)) )) (goto_statement "goto LAB_001a0258;" goto statement_identifier ;)) }) (else_clause "else if (1 < uVar8 - 0x4e) {\nLAB_001a0258:\n            uVar3 = *(undefined4 *)(iVar6 + 0x110);\n            piVar4[2] = 1;\n            *(int *)(iVar6 + 0x110) = piVar4[3];\n            if (uVar8 == 0x29) {\n              FUN_0019fef0(*piVar4);\n              *(undefined4 *)(iVar6 + 0x110) = uVar3;\n              return;\n            }\n            if (uVar8 == 0x2a) {\n              FUN_001a0610(*piVar4);\n              *(undefined4 *)(iVar6 + 0x110) = uVar3;\n              return;\n            }\n            if (uVar8 == 2) {\n              uVar5 = *(undefined4 *)(iVar6 + 0x114);\n              *(undefined4 *)(iVar6 + 0x114) = 0;\n              FUN_0019a610();\n              *(undefined4 *)(iVar6 + 0x114) = uVar5;\n              iVar7 = *(int *)(iVar6 + 0x100);\n              if ((uVar13 & 0x400000000) == 0) {\n                puVar12 = (undefined1 *)(unaff_EDI + 0xca6ca);\n                uVar11 = 0x3a;\n                while( true ) {\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  puVar12 = puVar12 + 1;\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if (puVar12 == (undefined1 *)(unaff_EDI + 0xca6cc)) break;\n                  uVar11 = *puVar12;\n                  iVar7 = iVar10;\n                }\n              }\n              else {\n                iVar10 = iVar7 + 1;\n                if (iVar7 == 0xff) {\n                  *(undefined1 *)(iVar6 + 0xff) = 0;\n                  (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                  *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                  iVar10 = 1;\n                  iVar7 = 0;\n                }\n                *(int *)(iVar6 + 0x100) = iVar10;\n                *(undefined1 *)(iVar6 + iVar7) = 0x2e;\n                *(undefined1 *)(iVar6 + 0x104) = 0x2e;\n              }\n              local_44 = *(uint **)(piVar4[1] + 0xc);\n              uVar8 = *local_44;\n              if (uVar8 == 0x46) {\n                uVar11 = 0x7b;\n                puVar12 = (undefined1 *)(unaff_EDI + 0xca6bc);\n                iVar7 = *(int *)(iVar6 + 0x100);\n                while( true ) {\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if (puVar12 == (undefined1 *)(unaff_EDI + 0xca6c8)) break;\n                  uVar11 = *puVar12;\n                  puVar12 = puVar12 + 1;\n                  iVar7 = iVar10;\n                }\n                __s = local_35;\n                sprintf(__s,(char *)(unaff_EDI + 0xc8c52),local_44[3] + 1);\n                sVar9 = strlen(__s);\n                iVar7 = *(int *)(iVar6 + 0x100);\n                if (sVar9 != 0) {\n                  pcVar1 = __s + sVar9;\n                  iVar10 = iVar7;\n                  do {\n                    cVar2 = *__s;\n                    if (iVar10 == 0xff) {\n                      *(undefined1 *)(iVar6 + 0xff) = 0;\n                      (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                      *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                      iVar7 = 1;\n                      iVar10 = 0;\n                    }\n                    else {\n                      iVar7 = iVar10 + 1;\n                    }\n                    __s = __s + 1;\n                    *(int *)(iVar6 + 0x100) = iVar7;\n                    *(char *)(iVar6 + iVar10) = cVar2;\n                    *(char *)(iVar6 + 0x104) = cVar2;\n                    iVar10 = iVar7;\n                  } while (pcVar1 != __s);\n                }\n                puVar12 = (undefined1 *)(unaff_EDI + 0xca6c9);\n                uVar11 = 0x7d;\n                do {\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  puVar12 = puVar12 + 1;\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if ((undefined1 *)(unaff_EDI + 0xca6cc) == puVar12) goto LAB_001a03d9;\n                  uVar11 = *puVar12;\n                  iVar7 = iVar10;\n                } while( true );\n              }\n              do {\n                if (uVar8 != 0x4c) {\n                  if (uVar8 < 0x4d) {\n                    if (4 < uVar8 - 0x1c) {\nLAB_001a036d:\n                      FUN_0019a610();\n                      *(undefined4 *)(iVar6 + 0x110) = uVar3;\n                      return;\n                    }\n                  }\n                  else if (1 < uVar8 - 0x4e) goto LAB_001a036d;\n                }\nLAB_001a03d9:\n                local_44 = (uint *)local_44[2];\n                uVar8 = *local_44;\n              } while( true );\n            }\n            FUN_0019f570();\n            *(undefined4 *)(iVar6 + 0x110) = uVar3;\n          }" else (if_statement "if (1 < uVar8 - 0x4e) {\nLAB_001a0258:\n            uVar3 = *(undefined4 *)(iVar6 + 0x110);\n            piVar4[2] = 1;\n            *(int *)(iVar6 + 0x110) = piVar4[3];\n            if (uVar8 == 0x29) {\n              FUN_0019fef0(*piVar4);\n              *(undefined4 *)(iVar6 + 0x110) = uVar3;\n              return;\n            }\n            if (uVar8 == 0x2a) {\n              FUN_001a0610(*piVar4);\n              *(undefined4 *)(iVar6 + 0x110) = uVar3;\n              return;\n            }\n            if (uVar8 == 2) {\n              uVar5 = *(undefined4 *)(iVar6 + 0x114);\n              *(undefined4 *)(iVar6 + 0x114) = 0;\n              FUN_0019a610();\n              *(undefined4 *)(iVar6 + 0x114) = uVar5;\n              iVar7 = *(int *)(iVar6 + 0x100);\n              if ((uVar13 & 0x400000000) == 0) {\n                puVar12 = (undefined1 *)(unaff_EDI + 0xca6ca);\n                uVar11 = 0x3a;\n                while( true ) {\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  puVar12 = puVar12 + 1;\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if (puVar12 == (undefined1 *)(unaff_EDI + 0xca6cc)) break;\n                  uVar11 = *puVar12;\n                  iVar7 = iVar10;\n                }\n              }\n              else {\n                iVar10 = iVar7 + 1;\n                if (iVar7 == 0xff) {\n                  *(undefined1 *)(iVar6 + 0xff) = 0;\n                  (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                  *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                  iVar10 = 1;\n                  iVar7 = 0;\n                }\n                *(int *)(iVar6 + 0x100) = iVar10;\n                *(undefined1 *)(iVar6 + iVar7) = 0x2e;\n                *(undefined1 *)(iVar6 + 0x104) = 0x2e;\n              }\n              local_44 = *(uint **)(piVar4[1] + 0xc);\n              uVar8 = *local_44;\n              if (uVar8 == 0x46) {\n                uVar11 = 0x7b;\n                puVar12 = (undefined1 *)(unaff_EDI + 0xca6bc);\n                iVar7 = *(int *)(iVar6 + 0x100);\n                while( true ) {\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if (puVar12 == (undefined1 *)(unaff_EDI + 0xca6c8)) break;\n                  uVar11 = *puVar12;\n                  puVar12 = puVar12 + 1;\n                  iVar7 = iVar10;\n                }\n                __s = local_35;\n                sprintf(__s,(char *)(unaff_EDI + 0xc8c52),local_44[3] + 1);\n                sVar9 = strlen(__s);\n                iVar7 = *(int *)(iVar6 + 0x100);\n                if (sVar9 != 0) {\n                  pcVar1 = __s + sVar9;\n                  iVar10 = iVar7;\n                  do {\n                    cVar2 = *__s;\n                    if (iVar10 == 0xff) {\n                      *(undefined1 *)(iVar6 + 0xff) = 0;\n                      (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                      *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                      iVar7 = 1;\n                      iVar10 = 0;\n                    }\n                    else {\n                      iVar7 = iVar10 + 1;\n                    }\n                    __s = __s + 1;\n                    *(int *)(iVar6 + 0x100) = iVar7;\n                    *(char *)(iVar6 + iVar10) = cVar2;\n                    *(char *)(iVar6 + 0x104) = cVar2;\n                    iVar10 = iVar7;\n                  } while (pcVar1 != __s);\n                }\n                puVar12 = (undefined1 *)(unaff_EDI + 0xca6c9);\n                uVar11 = 0x7d;\n                do {\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  puVar12 = puVar12 + 1;\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if ((undefined1 *)(unaff_EDI + 0xca6cc) == puVar12) goto LAB_001a03d9;\n                  uVar11 = *puVar12;\n                  iVar7 = iVar10;\n                } while( true );\n              }\n              do {\n                if (uVar8 != 0x4c) {\n                  if (uVar8 < 0x4d) {\n                    if (4 < uVar8 - 0x1c) {\nLAB_001a036d:\n                      FUN_0019a610();\n                      *(undefined4 *)(iVar6 + 0x110) = uVar3;\n                      return;\n                    }\n                  }\n                  else if (1 < uVar8 - 0x4e) goto LAB_001a036d;\n                }\nLAB_001a03d9:\n                local_44 = (uint *)local_44[2];\n                uVar8 = *local_44;\n              } while( true );\n            }\n            FUN_0019f570();\n            *(undefined4 *)(iVar6 + 0x110) = uVar3;\n          }" if (parenthesized_expression "(1 < uVar8 - 0x4e)" ( (binary_expression "1 < uVar8 - 0x4e" number_literal < (binary_expression "uVar8 - 0x4e" identifier - number_literal)) )) (compound_statement "{\nLAB_001a0258:\n            uVar3 = *(undefined4 *)(iVar6 + 0x110);\n            piVar4[2] = 1;\n            *(int *)(iVar6 + 0x110) = piVar4[3];\n            if (uVar8 == 0x29) {\n              FUN_0019fef0(*piVar4);\n              *(undefined4 *)(iVar6 + 0x110) = uVar3;\n              return;\n            }\n            if (uVar8 == 0x2a) {\n              FUN_001a0610(*piVar4);\n              *(undefined4 *)(iVar6 + 0x110) = uVar3;\n              return;\n            }\n            if (uVar8 == 2) {\n              uVar5 = *(undefined4 *)(iVar6 + 0x114);\n              *(undefined4 *)(iVar6 + 0x114) = 0;\n              FUN_0019a610();\n              *(undefined4 *)(iVar6 + 0x114) = uVar5;\n              iVar7 = *(int *)(iVar6 + 0x100);\n              if ((uVar13 & 0x400000000) == 0) {\n                puVar12 = (undefined1 *)(unaff_EDI + 0xca6ca);\n                uVar11 = 0x3a;\n                while( true ) {\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  puVar12 = puVar12 + 1;\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if (puVar12 == (undefined1 *)(unaff_EDI + 0xca6cc)) break;\n                  uVar11 = *puVar12;\n                  iVar7 = iVar10;\n                }\n              }\n              else {\n                iVar10 = iVar7 + 1;\n                if (iVar7 == 0xff) {\n                  *(undefined1 *)(iVar6 + 0xff) = 0;\n                  (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                  *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                  iVar10 = 1;\n                  iVar7 = 0;\n                }\n                *(int *)(iVar6 + 0x100) = iVar10;\n                *(undefined1 *)(iVar6 + iVar7) = 0x2e;\n                *(undefined1 *)(iVar6 + 0x104) = 0x2e;\n              }\n              local_44 = *(uint **)(piVar4[1] + 0xc);\n              uVar8 = *local_44;\n              if (uVar8 == 0x46) {\n                uVar11 = 0x7b;\n                puVar12 = (undefined1 *)(unaff_EDI + 0xca6bc);\n                iVar7 = *(int *)(iVar6 + 0x100);\n                while( true ) {\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if (puVar12 == (undefined1 *)(unaff_EDI + 0xca6c8)) break;\n                  uVar11 = *puVar12;\n                  puVar12 = puVar12 + 1;\n                  iVar7 = iVar10;\n                }\n                __s = local_35;\n                sprintf(__s,(char *)(unaff_EDI + 0xc8c52),local_44[3] + 1);\n                sVar9 = strlen(__s);\n                iVar7 = *(int *)(iVar6 + 0x100);\n                if (sVar9 != 0) {\n                  pcVar1 = __s + sVar9;\n                  iVar10 = iVar7;\n                  do {\n                    cVar2 = *__s;\n                    if (iVar10 == 0xff) {\n                      *(undefined1 *)(iVar6 + 0xff) = 0;\n                      (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                      *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                      iVar7 = 1;\n                      iVar10 = 0;\n                    }\n                    else {\n                      iVar7 = iVar10 + 1;\n                    }\n                    __s = __s + 1;\n                    *(int *)(iVar6 + 0x100) = iVar7;\n                    *(char *)(iVar6 + iVar10) = cVar2;\n                    *(char *)(iVar6 + 0x104) = cVar2;\n                    iVar10 = iVar7;\n                  } while (pcVar1 != __s);\n                }\n                puVar12 = (undefined1 *)(unaff_EDI + 0xca6c9);\n                uVar11 = 0x7d;\n                do {\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  puVar12 = puVar12 + 1;\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if ((undefined1 *)(unaff_EDI + 0xca6cc) == puVar12) goto LAB_001a03d9;\n                  uVar11 = *puVar12;\n                  iVar7 = iVar10;\n                } while( true );\n              }\n              do {\n                if (uVar8 != 0x4c) {\n                  if (uVar8 < 0x4d) {\n                    if (4 < uVar8 - 0x1c) {\nLAB_001a036d:\n                      FUN_0019a610();\n                      *(undefined4 *)(iVar6 + 0x110) = uVar3;\n                      return;\n                    }\n                  }\n                  else if (1 < uVar8 - 0x4e) goto LAB_001a036d;\n                }\nLAB_001a03d9:\n                local_44 = (uint *)local_44[2];\n                uVar8 = *local_44;\n              } while( true );\n            }\n            FUN_0019f570();\n            *(undefined4 *)(iVar6 + 0x110) = uVar3;\n          }" { (labeled_statement "LAB_001a0258:\n            uVar3 = *(undefined4 *)(iVar6 + 0x110);" statement_identifier : (expression_statement "uVar3 = *(undefined4 *)(iVar6 + 0x110);" (assignment_expression "uVar3 = *(undefined4 *)(iVar6 + 0x110)" identifier = (pointer_expression "*(undefined4 *)(iVar6 + 0x110)" * (cast_expression "(undefined4 *)(iVar6 + 0x110)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x110)" ( (binary_expression "iVar6 + 0x110" identifier + number_literal) ))))) ;)) (expression_statement "piVar4[2] = 1;" (assignment_expression "piVar4[2] = 1" (subscript_expression "piVar4[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(int *)(iVar6 + 0x110) = piVar4[3];" (assignment_expression "*(int *)(iVar6 + 0x110) = piVar4[3]" (pointer_expression "*(int *)(iVar6 + 0x110)" * (cast_expression "(int *)(iVar6 + 0x110)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x110)" ( (binary_expression "iVar6 + 0x110" identifier + number_literal) )))) = (subscript_expression "piVar4[3]" identifier [ number_literal ])) ;) (if_statement "if (uVar8 == 0x29) {\n              FUN_0019fef0(*piVar4);\n              *(undefined4 *)(iVar6 + 0x110) = uVar3;\n              return;\n            }" if (parenthesized_expression "(uVar8 == 0x29)" ( (binary_expression "uVar8 == 0x29" identifier == number_literal) )) (compound_statement "{\n              FUN_0019fef0(*piVar4);\n              *(undefined4 *)(iVar6 + 0x110) = uVar3;\n              return;\n            }" { (expression_statement "FUN_0019fef0(*piVar4);" (call_expression "FUN_0019fef0(*piVar4)" identifier (argument_list "(*piVar4)" ( (pointer_expression "*piVar4" * identifier) ))) ;) (expression_statement "*(undefined4 *)(iVar6 + 0x110) = uVar3;" (assignment_expression "*(undefined4 *)(iVar6 + 0x110) = uVar3" (pointer_expression "*(undefined4 *)(iVar6 + 0x110)" * (cast_expression "(undefined4 *)(iVar6 + 0x110)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x110)" ( (binary_expression "iVar6 + 0x110" identifier + number_literal) )))) = identifier) ;) (return_statement "return;" return ;) })) (if_statement "if (uVar8 == 0x2a) {\n              FUN_001a0610(*piVar4);\n              *(undefined4 *)(iVar6 + 0x110) = uVar3;\n              return;\n            }" if (parenthesized_expression "(uVar8 == 0x2a)" ( (binary_expression "uVar8 == 0x2a" identifier == number_literal) )) (compound_statement "{\n              FUN_001a0610(*piVar4);\n              *(undefined4 *)(iVar6 + 0x110) = uVar3;\n              return;\n            }" { (expression_statement "FUN_001a0610(*piVar4);" (call_expression "FUN_001a0610(*piVar4)" identifier (argument_list "(*piVar4)" ( (pointer_expression "*piVar4" * identifier) ))) ;) (expression_statement "*(undefined4 *)(iVar6 + 0x110) = uVar3;" (assignment_expression "*(undefined4 *)(iVar6 + 0x110) = uVar3" (pointer_expression "*(undefined4 *)(iVar6 + 0x110)" * (cast_expression "(undefined4 *)(iVar6 + 0x110)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x110)" ( (binary_expression "iVar6 + 0x110" identifier + number_literal) )))) = identifier) ;) (return_statement "return;" return ;) })) (if_statement "if (uVar8 == 2) {\n              uVar5 = *(undefined4 *)(iVar6 + 0x114);\n              *(undefined4 *)(iVar6 + 0x114) = 0;\n              FUN_0019a610();\n              *(undefined4 *)(iVar6 + 0x114) = uVar5;\n              iVar7 = *(int *)(iVar6 + 0x100);\n              if ((uVar13 & 0x400000000) == 0) {\n                puVar12 = (undefined1 *)(unaff_EDI + 0xca6ca);\n                uVar11 = 0x3a;\n                while( true ) {\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  puVar12 = puVar12 + 1;\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if (puVar12 == (undefined1 *)(unaff_EDI + 0xca6cc)) break;\n                  uVar11 = *puVar12;\n                  iVar7 = iVar10;\n                }\n              }\n              else {\n                iVar10 = iVar7 + 1;\n                if (iVar7 == 0xff) {\n                  *(undefined1 *)(iVar6 + 0xff) = 0;\n                  (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                  *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                  iVar10 = 1;\n                  iVar7 = 0;\n                }\n                *(int *)(iVar6 + 0x100) = iVar10;\n                *(undefined1 *)(iVar6 + iVar7) = 0x2e;\n                *(undefined1 *)(iVar6 + 0x104) = 0x2e;\n              }\n              local_44 = *(uint **)(piVar4[1] + 0xc);\n              uVar8 = *local_44;\n              if (uVar8 == 0x46) {\n                uVar11 = 0x7b;\n                puVar12 = (undefined1 *)(unaff_EDI + 0xca6bc);\n                iVar7 = *(int *)(iVar6 + 0x100);\n                while( true ) {\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if (puVar12 == (undefined1 *)(unaff_EDI + 0xca6c8)) break;\n                  uVar11 = *puVar12;\n                  puVar12 = puVar12 + 1;\n                  iVar7 = iVar10;\n                }\n                __s = local_35;\n                sprintf(__s,(char *)(unaff_EDI + 0xc8c52),local_44[3] + 1);\n                sVar9 = strlen(__s);\n                iVar7 = *(int *)(iVar6 + 0x100);\n                if (sVar9 != 0) {\n                  pcVar1 = __s + sVar9;\n                  iVar10 = iVar7;\n                  do {\n                    cVar2 = *__s;\n                    if (iVar10 == 0xff) {\n                      *(undefined1 *)(iVar6 + 0xff) = 0;\n                      (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                      *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                      iVar7 = 1;\n                      iVar10 = 0;\n                    }\n                    else {\n                      iVar7 = iVar10 + 1;\n                    }\n                    __s = __s + 1;\n                    *(int *)(iVar6 + 0x100) = iVar7;\n                    *(char *)(iVar6 + iVar10) = cVar2;\n                    *(char *)(iVar6 + 0x104) = cVar2;\n                    iVar10 = iVar7;\n                  } while (pcVar1 != __s);\n                }\n                puVar12 = (undefined1 *)(unaff_EDI + 0xca6c9);\n                uVar11 = 0x7d;\n                do {\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  puVar12 = puVar12 + 1;\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if ((undefined1 *)(unaff_EDI + 0xca6cc) == puVar12) goto LAB_001a03d9;\n                  uVar11 = *puVar12;\n                  iVar7 = iVar10;\n                } while( true );\n              }\n              do {\n                if (uVar8 != 0x4c) {\n                  if (uVar8 < 0x4d) {\n                    if (4 < uVar8 - 0x1c) {\nLAB_001a036d:\n                      FUN_0019a610();\n                      *(undefined4 *)(iVar6 + 0x110) = uVar3;\n                      return;\n                    }\n                  }\n                  else if (1 < uVar8 - 0x4e) goto LAB_001a036d;\n                }\nLAB_001a03d9:\n                local_44 = (uint *)local_44[2];\n                uVar8 = *local_44;\n              } while( true );\n            }" if (parenthesized_expression "(uVar8 == 2)" ( (binary_expression "uVar8 == 2" identifier == number_literal) )) (compound_statement "{\n              uVar5 = *(undefined4 *)(iVar6 + 0x114);\n              *(undefined4 *)(iVar6 + 0x114) = 0;\n              FUN_0019a610();\n              *(undefined4 *)(iVar6 + 0x114) = uVar5;\n              iVar7 = *(int *)(iVar6 + 0x100);\n              if ((uVar13 & 0x400000000) == 0) {\n                puVar12 = (undefined1 *)(unaff_EDI + 0xca6ca);\n                uVar11 = 0x3a;\n                while( true ) {\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  puVar12 = puVar12 + 1;\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if (puVar12 == (undefined1 *)(unaff_EDI + 0xca6cc)) break;\n                  uVar11 = *puVar12;\n                  iVar7 = iVar10;\n                }\n              }\n              else {\n                iVar10 = iVar7 + 1;\n                if (iVar7 == 0xff) {\n                  *(undefined1 *)(iVar6 + 0xff) = 0;\n                  (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                  *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                  iVar10 = 1;\n                  iVar7 = 0;\n                }\n                *(int *)(iVar6 + 0x100) = iVar10;\n                *(undefined1 *)(iVar6 + iVar7) = 0x2e;\n                *(undefined1 *)(iVar6 + 0x104) = 0x2e;\n              }\n              local_44 = *(uint **)(piVar4[1] + 0xc);\n              uVar8 = *local_44;\n              if (uVar8 == 0x46) {\n                uVar11 = 0x7b;\n                puVar12 = (undefined1 *)(unaff_EDI + 0xca6bc);\n                iVar7 = *(int *)(iVar6 + 0x100);\n                while( true ) {\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if (puVar12 == (undefined1 *)(unaff_EDI + 0xca6c8)) break;\n                  uVar11 = *puVar12;\n                  puVar12 = puVar12 + 1;\n                  iVar7 = iVar10;\n                }\n                __s = local_35;\n                sprintf(__s,(char *)(unaff_EDI + 0xc8c52),local_44[3] + 1);\n                sVar9 = strlen(__s);\n                iVar7 = *(int *)(iVar6 + 0x100);\n                if (sVar9 != 0) {\n                  pcVar1 = __s + sVar9;\n                  iVar10 = iVar7;\n                  do {\n                    cVar2 = *__s;\n                    if (iVar10 == 0xff) {\n                      *(undefined1 *)(iVar6 + 0xff) = 0;\n                      (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                      *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                      iVar7 = 1;\n                      iVar10 = 0;\n                    }\n                    else {\n                      iVar7 = iVar10 + 1;\n                    }\n                    __s = __s + 1;\n                    *(int *)(iVar6 + 0x100) = iVar7;\n                    *(char *)(iVar6 + iVar10) = cVar2;\n                    *(char *)(iVar6 + 0x104) = cVar2;\n                    iVar10 = iVar7;\n                  } while (pcVar1 != __s);\n                }\n                puVar12 = (undefined1 *)(unaff_EDI + 0xca6c9);\n                uVar11 = 0x7d;\n                do {\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  puVar12 = puVar12 + 1;\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if ((undefined1 *)(unaff_EDI + 0xca6cc) == puVar12) goto LAB_001a03d9;\n                  uVar11 = *puVar12;\n                  iVar7 = iVar10;\n                } while( true );\n              }\n              do {\n                if (uVar8 != 0x4c) {\n                  if (uVar8 < 0x4d) {\n                    if (4 < uVar8 - 0x1c) {\nLAB_001a036d:\n                      FUN_0019a610();\n                      *(undefined4 *)(iVar6 + 0x110) = uVar3;\n                      return;\n                    }\n                  }\n                  else if (1 < uVar8 - 0x4e) goto LAB_001a036d;\n                }\nLAB_001a03d9:\n                local_44 = (uint *)local_44[2];\n                uVar8 = *local_44;\n              } while( true );\n            }" { (expression_statement "uVar5 = *(undefined4 *)(iVar6 + 0x114);" (assignment_expression "uVar5 = *(undefined4 *)(iVar6 + 0x114)" identifier = (pointer_expression "*(undefined4 *)(iVar6 + 0x114)" * (cast_expression "(undefined4 *)(iVar6 + 0x114)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x114)" ( (binary_expression "iVar6 + 0x114" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(iVar6 + 0x114) = 0;" (assignment_expression "*(undefined4 *)(iVar6 + 0x114) = 0" (pointer_expression "*(undefined4 *)(iVar6 + 0x114)" * (cast_expression "(undefined4 *)(iVar6 + 0x114)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x114)" ( (binary_expression "iVar6 + 0x114" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_0019a610();" (call_expression "FUN_0019a610()" identifier (argument_list "()" ( ))) ;) (expression_statement "*(undefined4 *)(iVar6 + 0x114) = uVar5;" (assignment_expression "*(undefined4 *)(iVar6 + 0x114) = uVar5" (pointer_expression "*(undefined4 *)(iVar6 + 0x114)" * (cast_expression "(undefined4 *)(iVar6 + 0x114)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x114)" ( (binary_expression "iVar6 + 0x114" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar7 = *(int *)(iVar6 + 0x100);" (assignment_expression "iVar7 = *(int *)(iVar6 + 0x100)" identifier = (pointer_expression "*(int *)(iVar6 + 0x100)" * (cast_expression "(int *)(iVar6 + 0x100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x100)" ( (binary_expression "iVar6 + 0x100" identifier + number_literal) ))))) ;) (if_statement "if ((uVar13 & 0x400000000) == 0) {\n                puVar12 = (undefined1 *)(unaff_EDI + 0xca6ca);\n                uVar11 = 0x3a;\n                while( true ) {\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  puVar12 = puVar12 + 1;\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if (puVar12 == (undefined1 *)(unaff_EDI + 0xca6cc)) break;\n                  uVar11 = *puVar12;\n                  iVar7 = iVar10;\n                }\n              }\n              else {\n                iVar10 = iVar7 + 1;\n                if (iVar7 == 0xff) {\n                  *(undefined1 *)(iVar6 + 0xff) = 0;\n                  (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                  *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                  iVar10 = 1;\n                  iVar7 = 0;\n                }\n                *(int *)(iVar6 + 0x100) = iVar10;\n                *(undefined1 *)(iVar6 + iVar7) = 0x2e;\n                *(undefined1 *)(iVar6 + 0x104) = 0x2e;\n              }" if (parenthesized_expression "((uVar13 & 0x400000000) == 0)" ( (binary_expression "(uVar13 & 0x400000000) == 0" (parenthesized_expression "(uVar13 & 0x400000000)" ( (binary_expression "uVar13 & 0x400000000" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n                puVar12 = (undefined1 *)(unaff_EDI + 0xca6ca);\n                uVar11 = 0x3a;\n                while( true ) {\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  puVar12 = puVar12 + 1;\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if (puVar12 == (undefined1 *)(unaff_EDI + 0xca6cc)) break;\n                  uVar11 = *puVar12;\n                  iVar7 = iVar10;\n                }\n              }" { (expression_statement "puVar12 = (undefined1 *)(unaff_EDI + 0xca6ca);" (assignment_expression "puVar12 = (undefined1 *)(unaff_EDI + 0xca6ca)" identifier = (cast_expression "(undefined1 *)(unaff_EDI + 0xca6ca)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xca6ca)" ( (binary_expression "unaff_EDI + 0xca6ca" identifier + number_literal) )))) ;) (expression_statement "uVar11 = 0x3a;" (assignment_expression "uVar11 = 0x3a" identifier = number_literal) ;) (while_statement "while( true ) {\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  puVar12 = puVar12 + 1;\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if (puVar12 == (undefined1 *)(unaff_EDI + 0xca6cc)) break;\n                  uVar11 = *puVar12;\n                  iVar7 = iVar10;\n                }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  puVar12 = puVar12 + 1;\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if (puVar12 == (undefined1 *)(unaff_EDI + 0xca6cc)) break;\n                  uVar11 = *puVar12;\n                  iVar7 = iVar10;\n                }" { (if_statement "if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }" if (parenthesized_expression "(iVar7 == 0xff)" ( (binary_expression "iVar7 == 0xff" identifier == number_literal) )) (compound_statement "{\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }" { (expression_statement "*(undefined1 *)(iVar6 + 0xff) = 0;" (assignment_expression "*(undefined1 *)(iVar6 + 0xff) = 0" (pointer_expression "*(undefined1 *)(iVar6 + 0xff)" * (cast_expression "(undefined1 *)(iVar6 + 0xff)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0xff)" ( (binary_expression "iVar6 + 0xff" identifier + number_literal) )))) = number_literal) ;) (expression_statement "(**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));" (call_expression "(**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c))" (parenthesized_expression "(**(code **)(iVar6 + 0x108))" ( (pointer_expression "**(code **)(iVar6 + 0x108)" * (pointer_expression "*(code **)(iVar6 + 0x108)" * (cast_expression "(code **)(iVar6 + 0x108)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar6 + 0x108)" ( (binary_expression "iVar6 + 0x108" identifier + number_literal) ))))) )) (argument_list "(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c))" ( identifier , number_literal , (pointer_expression "*(undefined4 *)(iVar6 + 0x10c)" * (cast_expression "(undefined4 *)(iVar6 + 0x10c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x10c)" ( (binary_expression "iVar6 + 0x10c" identifier + number_literal) )))) ))) ;) (expression_statement "*(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;" (assignment_expression "*(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1" (pointer_expression "*(int *)(iVar6 + 0x128)" * (cast_expression "(int *)(iVar6 + 0x128)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x128)" ( (binary_expression "iVar6 + 0x128" identifier + number_literal) )))) = (binary_expression "*(int *)(iVar6 + 0x128) + 1" (pointer_expression "*(int *)(iVar6 + 0x128)" * (cast_expression "(int *)(iVar6 + 0x128)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x128)" ( (binary_expression "iVar6 + 0x128" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "iVar10 = 1;" (assignment_expression "iVar10 = 1" identifier = number_literal) ;) (expression_statement "iVar7 = 0;" (assignment_expression "iVar7 = 0" identifier = number_literal) ;) }) (else_clause "else {\n                    iVar10 = iVar7 + 1;\n                  }" else (compound_statement "{\n                    iVar10 = iVar7 + 1;\n                  }" { (expression_statement "iVar10 = iVar7 + 1;" (assignment_expression "iVar10 = iVar7 + 1" identifier = (binary_expression "iVar7 + 1" identifier + number_literal)) ;) }))) (expression_statement "puVar12 = puVar12 + 1;" (assignment_expression "puVar12 = puVar12 + 1" identifier = (binary_expression "puVar12 + 1" identifier + number_literal)) ;) (expression_statement "*(int *)(iVar6 + 0x100) = iVar10;" (assignment_expression "*(int *)(iVar6 + 0x100) = iVar10" (pointer_expression "*(int *)(iVar6 + 0x100)" * (cast_expression "(int *)(iVar6 + 0x100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x100)" ( (binary_expression "iVar6 + 0x100" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 *)(iVar6 + iVar7) = uVar11;" (assignment_expression "*(undefined1 *)(iVar6 + iVar7) = uVar11" (pointer_expression "*(undefined1 *)(iVar6 + iVar7)" * (cast_expression "(undefined1 *)(iVar6 + iVar7)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + iVar7)" ( (binary_expression "iVar6 + iVar7" identifier + identifier) )))) = identifier) ;) (expression_statement "*(undefined1 *)(iVar6 + 0x104) = uVar11;" (assignment_expression "*(undefined1 *)(iVar6 + 0x104) = uVar11" (pointer_expression "*(undefined1 *)(iVar6 + 0x104)" * (cast_expression "(undefined1 *)(iVar6 + 0x104)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x104)" ( (binary_expression "iVar6 + 0x104" identifier + number_literal) )))) = identifier) ;) (if_statement "if (puVar12 == (undefined1 *)(unaff_EDI + 0xca6cc)) break;" if (parenthesized_expression "(puVar12 == (undefined1 *)(unaff_EDI + 0xca6cc))" ( (binary_expression "puVar12 == (undefined1 *)(unaff_EDI + 0xca6cc)" identifier == (cast_expression "(undefined1 *)(unaff_EDI + 0xca6cc)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xca6cc)" ( (binary_expression "unaff_EDI + 0xca6cc" identifier + number_literal) )))) )) (break_statement "break;" break ;)) (expression_statement "uVar11 = *puVar12;" (assignment_expression "uVar11 = *puVar12" identifier = (pointer_expression "*puVar12" * identifier)) ;) (expression_statement "iVar7 = iVar10;" (assignment_expression "iVar7 = iVar10" identifier = identifier) ;) })) }) (else_clause "else {\n                iVar10 = iVar7 + 1;\n                if (iVar7 == 0xff) {\n                  *(undefined1 *)(iVar6 + 0xff) = 0;\n                  (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                  *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                  iVar10 = 1;\n                  iVar7 = 0;\n                }\n                *(int *)(iVar6 + 0x100) = iVar10;\n                *(undefined1 *)(iVar6 + iVar7) = 0x2e;\n                *(undefined1 *)(iVar6 + 0x104) = 0x2e;\n              }" else (compound_statement "{\n                iVar10 = iVar7 + 1;\n                if (iVar7 == 0xff) {\n                  *(undefined1 *)(iVar6 + 0xff) = 0;\n                  (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                  *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                  iVar10 = 1;\n                  iVar7 = 0;\n                }\n                *(int *)(iVar6 + 0x100) = iVar10;\n                *(undefined1 *)(iVar6 + iVar7) = 0x2e;\n                *(undefined1 *)(iVar6 + 0x104) = 0x2e;\n              }" { (expression_statement "iVar10 = iVar7 + 1;" (assignment_expression "iVar10 = iVar7 + 1" identifier = (binary_expression "iVar7 + 1" identifier + number_literal)) ;) (if_statement "if (iVar7 == 0xff) {\n                  *(undefined1 *)(iVar6 + 0xff) = 0;\n                  (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                  *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                  iVar10 = 1;\n                  iVar7 = 0;\n                }" if (parenthesized_expression "(iVar7 == 0xff)" ( (binary_expression "iVar7 == 0xff" identifier == number_literal) )) (compound_statement "{\n                  *(undefined1 *)(iVar6 + 0xff) = 0;\n                  (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                  *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                  iVar10 = 1;\n                  iVar7 = 0;\n                }" { (expression_statement "*(undefined1 *)(iVar6 + 0xff) = 0;" (assignment_expression "*(undefined1 *)(iVar6 + 0xff) = 0" (pointer_expression "*(undefined1 *)(iVar6 + 0xff)" * (cast_expression "(undefined1 *)(iVar6 + 0xff)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0xff)" ( (binary_expression "iVar6 + 0xff" identifier + number_literal) )))) = number_literal) ;) (expression_statement "(**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));" (call_expression "(**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c))" (parenthesized_expression "(**(code **)(iVar6 + 0x108))" ( (pointer_expression "**(code **)(iVar6 + 0x108)" * (pointer_expression "*(code **)(iVar6 + 0x108)" * (cast_expression "(code **)(iVar6 + 0x108)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar6 + 0x108)" ( (binary_expression "iVar6 + 0x108" identifier + number_literal) ))))) )) (argument_list "(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c))" ( identifier , number_literal , (pointer_expression "*(undefined4 *)(iVar6 + 0x10c)" * (cast_expression "(undefined4 *)(iVar6 + 0x10c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x10c)" ( (binary_expression "iVar6 + 0x10c" identifier + number_literal) )))) ))) ;) (expression_statement "*(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;" (assignment_expression "*(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1" (pointer_expression "*(int *)(iVar6 + 0x128)" * (cast_expression "(int *)(iVar6 + 0x128)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x128)" ( (binary_expression "iVar6 + 0x128" identifier + number_literal) )))) = (binary_expression "*(int *)(iVar6 + 0x128) + 1" (pointer_expression "*(int *)(iVar6 + 0x128)" * (cast_expression "(int *)(iVar6 + 0x128)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x128)" ( (binary_expression "iVar6 + 0x128" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "iVar10 = 1;" (assignment_expression "iVar10 = 1" identifier = number_literal) ;) (expression_statement "iVar7 = 0;" (assignment_expression "iVar7 = 0" identifier = number_literal) ;) })) (expression_statement "*(int *)(iVar6 + 0x100) = iVar10;" (assignment_expression "*(int *)(iVar6 + 0x100) = iVar10" (pointer_expression "*(int *)(iVar6 + 0x100)" * (cast_expression "(int *)(iVar6 + 0x100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x100)" ( (binary_expression "iVar6 + 0x100" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 *)(iVar6 + iVar7) = 0x2e;" (assignment_expression "*(undefined1 *)(iVar6 + iVar7) = 0x2e" (pointer_expression "*(undefined1 *)(iVar6 + iVar7)" * (cast_expression "(undefined1 *)(iVar6 + iVar7)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + iVar7)" ( (binary_expression "iVar6 + iVar7" identifier + identifier) )))) = number_literal) ;) (expression_statement "*(undefined1 *)(iVar6 + 0x104) = 0x2e;" (assignment_expression "*(undefined1 *)(iVar6 + 0x104) = 0x2e" (pointer_expression "*(undefined1 *)(iVar6 + 0x104)" * (cast_expression "(undefined1 *)(iVar6 + 0x104)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x104)" ( (binary_expression "iVar6 + 0x104" identifier + number_literal) )))) = number_literal) ;) }))) (expression_statement "local_44 = *(uint **)(piVar4[1] + 0xc);" (assignment_expression "local_44 = *(uint **)(piVar4[1] + 0xc)" identifier = (pointer_expression "*(uint **)(piVar4[1] + 0xc)" * (cast_expression "(uint **)(piVar4[1] + 0xc)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(piVar4[1] + 0xc)" ( (binary_expression "piVar4[1] + 0xc" (subscript_expression "piVar4[1]" identifier [ number_literal ]) + number_literal) ))))) ;) (expression_statement "uVar8 = *local_44;" (assignment_expression "uVar8 = *local_44" identifier = (pointer_expression "*local_44" * identifier)) ;) (if_statement "if (uVar8 == 0x46) {\n                uVar11 = 0x7b;\n                puVar12 = (undefined1 *)(unaff_EDI + 0xca6bc);\n                iVar7 = *(int *)(iVar6 + 0x100);\n                while( true ) {\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if (puVar12 == (undefined1 *)(unaff_EDI + 0xca6c8)) break;\n                  uVar11 = *puVar12;\n                  puVar12 = puVar12 + 1;\n                  iVar7 = iVar10;\n                }\n                __s = local_35;\n                sprintf(__s,(char *)(unaff_EDI + 0xc8c52),local_44[3] + 1);\n                sVar9 = strlen(__s);\n                iVar7 = *(int *)(iVar6 + 0x100);\n                if (sVar9 != 0) {\n                  pcVar1 = __s + sVar9;\n                  iVar10 = iVar7;\n                  do {\n                    cVar2 = *__s;\n                    if (iVar10 == 0xff) {\n                      *(undefined1 *)(iVar6 + 0xff) = 0;\n                      (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                      *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                      iVar7 = 1;\n                      iVar10 = 0;\n                    }\n                    else {\n                      iVar7 = iVar10 + 1;\n                    }\n                    __s = __s + 1;\n                    *(int *)(iVar6 + 0x100) = iVar7;\n                    *(char *)(iVar6 + iVar10) = cVar2;\n                    *(char *)(iVar6 + 0x104) = cVar2;\n                    iVar10 = iVar7;\n                  } while (pcVar1 != __s);\n                }\n                puVar12 = (undefined1 *)(unaff_EDI + 0xca6c9);\n                uVar11 = 0x7d;\n                do {\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  puVar12 = puVar12 + 1;\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if ((undefined1 *)(unaff_EDI + 0xca6cc) == puVar12) goto LAB_001a03d9;\n                  uVar11 = *puVar12;\n                  iVar7 = iVar10;\n                } while( true );\n              }" if (parenthesized_expression "(uVar8 == 0x46)" ( (binary_expression "uVar8 == 0x46" identifier == number_literal) )) (compound_statement "{\n                uVar11 = 0x7b;\n                puVar12 = (undefined1 *)(unaff_EDI + 0xca6bc);\n                iVar7 = *(int *)(iVar6 + 0x100);\n                while( true ) {\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if (puVar12 == (undefined1 *)(unaff_EDI + 0xca6c8)) break;\n                  uVar11 = *puVar12;\n                  puVar12 = puVar12 + 1;\n                  iVar7 = iVar10;\n                }\n                __s = local_35;\n                sprintf(__s,(char *)(unaff_EDI + 0xc8c52),local_44[3] + 1);\n                sVar9 = strlen(__s);\n                iVar7 = *(int *)(iVar6 + 0x100);\n                if (sVar9 != 0) {\n                  pcVar1 = __s + sVar9;\n                  iVar10 = iVar7;\n                  do {\n                    cVar2 = *__s;\n                    if (iVar10 == 0xff) {\n                      *(undefined1 *)(iVar6 + 0xff) = 0;\n                      (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                      *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                      iVar7 = 1;\n                      iVar10 = 0;\n                    }\n                    else {\n                      iVar7 = iVar10 + 1;\n                    }\n                    __s = __s + 1;\n                    *(int *)(iVar6 + 0x100) = iVar7;\n                    *(char *)(iVar6 + iVar10) = cVar2;\n                    *(char *)(iVar6 + 0x104) = cVar2;\n                    iVar10 = iVar7;\n                  } while (pcVar1 != __s);\n                }\n                puVar12 = (undefined1 *)(unaff_EDI + 0xca6c9);\n                uVar11 = 0x7d;\n                do {\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  puVar12 = puVar12 + 1;\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if ((undefined1 *)(unaff_EDI + 0xca6cc) == puVar12) goto LAB_001a03d9;\n                  uVar11 = *puVar12;\n                  iVar7 = iVar10;\n                } while( true );\n              }" { (expression_statement "uVar11 = 0x7b;" (assignment_expression "uVar11 = 0x7b" identifier = number_literal) ;) (expression_statement "puVar12 = (undefined1 *)(unaff_EDI + 0xca6bc);" (assignment_expression "puVar12 = (undefined1 *)(unaff_EDI + 0xca6bc)" identifier = (cast_expression "(undefined1 *)(unaff_EDI + 0xca6bc)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xca6bc)" ( (binary_expression "unaff_EDI + 0xca6bc" identifier + number_literal) )))) ;) (expression_statement "iVar7 = *(int *)(iVar6 + 0x100);" (assignment_expression "iVar7 = *(int *)(iVar6 + 0x100)" identifier = (pointer_expression "*(int *)(iVar6 + 0x100)" * (cast_expression "(int *)(iVar6 + 0x100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x100)" ( (binary_expression "iVar6 + 0x100" identifier + number_literal) ))))) ;) (while_statement "while( true ) {\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if (puVar12 == (undefined1 *)(unaff_EDI + 0xca6c8)) break;\n                  uVar11 = *puVar12;\n                  puVar12 = puVar12 + 1;\n                  iVar7 = iVar10;\n                }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if (puVar12 == (undefined1 *)(unaff_EDI + 0xca6c8)) break;\n                  uVar11 = *puVar12;\n                  puVar12 = puVar12 + 1;\n                  iVar7 = iVar10;\n                }" { (if_statement "if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }" if (parenthesized_expression "(iVar7 == 0xff)" ( (binary_expression "iVar7 == 0xff" identifier == number_literal) )) (compound_statement "{\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }" { (expression_statement "*(undefined1 *)(iVar6 + 0xff) = 0;" (assignment_expression "*(undefined1 *)(iVar6 + 0xff) = 0" (pointer_expression "*(undefined1 *)(iVar6 + 0xff)" * (cast_expression "(undefined1 *)(iVar6 + 0xff)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0xff)" ( (binary_expression "iVar6 + 0xff" identifier + number_literal) )))) = number_literal) ;) (expression_statement "(**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));" (call_expression "(**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c))" (parenthesized_expression "(**(code **)(iVar6 + 0x108))" ( (pointer_expression "**(code **)(iVar6 + 0x108)" * (pointer_expression "*(code **)(iVar6 + 0x108)" * (cast_expression "(code **)(iVar6 + 0x108)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar6 + 0x108)" ( (binary_expression "iVar6 + 0x108" identifier + number_literal) ))))) )) (argument_list "(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c))" ( identifier , number_literal , (pointer_expression "*(undefined4 *)(iVar6 + 0x10c)" * (cast_expression "(undefined4 *)(iVar6 + 0x10c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x10c)" ( (binary_expression "iVar6 + 0x10c" identifier + number_literal) )))) ))) ;) (expression_statement "*(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;" (assignment_expression "*(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1" (pointer_expression "*(int *)(iVar6 + 0x128)" * (cast_expression "(int *)(iVar6 + 0x128)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x128)" ( (binary_expression "iVar6 + 0x128" identifier + number_literal) )))) = (binary_expression "*(int *)(iVar6 + 0x128) + 1" (pointer_expression "*(int *)(iVar6 + 0x128)" * (cast_expression "(int *)(iVar6 + 0x128)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x128)" ( (binary_expression "iVar6 + 0x128" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "iVar10 = 1;" (assignment_expression "iVar10 = 1" identifier = number_literal) ;) (expression_statement "iVar7 = 0;" (assignment_expression "iVar7 = 0" identifier = number_literal) ;) }) (else_clause "else {\n                    iVar10 = iVar7 + 1;\n                  }" else (compound_statement "{\n                    iVar10 = iVar7 + 1;\n                  }" { (expression_statement "iVar10 = iVar7 + 1;" (assignment_expression "iVar10 = iVar7 + 1" identifier = (binary_expression "iVar7 + 1" identifier + number_literal)) ;) }))) (expression_statement "*(int *)(iVar6 + 0x100) = iVar10;" (assignment_expression "*(int *)(iVar6 + 0x100) = iVar10" (pointer_expression "*(int *)(iVar6 + 0x100)" * (cast_expression "(int *)(iVar6 + 0x100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x100)" ( (binary_expression "iVar6 + 0x100" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 *)(iVar6 + iVar7) = uVar11;" (assignment_expression "*(undefined1 *)(iVar6 + iVar7) = uVar11" (pointer_expression "*(undefined1 *)(iVar6 + iVar7)" * (cast_expression "(undefined1 *)(iVar6 + iVar7)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + iVar7)" ( (binary_expression "iVar6 + iVar7" identifier + identifier) )))) = identifier) ;) (expression_statement "*(undefined1 *)(iVar6 + 0x104) = uVar11;" (assignment_expression "*(undefined1 *)(iVar6 + 0x104) = uVar11" (pointer_expression "*(undefined1 *)(iVar6 + 0x104)" * (cast_expression "(undefined1 *)(iVar6 + 0x104)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x104)" ( (binary_expression "iVar6 + 0x104" identifier + number_literal) )))) = identifier) ;) (if_statement "if (puVar12 == (undefined1 *)(unaff_EDI + 0xca6c8)) break;" if (parenthesized_expression "(puVar12 == (undefined1 *)(unaff_EDI + 0xca6c8))" ( (binary_expression "puVar12 == (undefined1 *)(unaff_EDI + 0xca6c8)" identifier == (cast_expression "(undefined1 *)(unaff_EDI + 0xca6c8)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xca6c8)" ( (binary_expression "unaff_EDI + 0xca6c8" identifier + number_literal) )))) )) (break_statement "break;" break ;)) (expression_statement "uVar11 = *puVar12;" (assignment_expression "uVar11 = *puVar12" identifier = (pointer_expression "*puVar12" * identifier)) ;) (expression_statement "puVar12 = puVar12 + 1;" (assignment_expression "puVar12 = puVar12 + 1" identifier = (binary_expression "puVar12 + 1" identifier + number_literal)) ;) (expression_statement "iVar7 = iVar10;" (assignment_expression "iVar7 = iVar10" identifier = identifier) ;) })) (expression_statement "__s = local_35;" (assignment_expression "__s = local_35" identifier = identifier) ;) (expression_statement "sprintf(__s,(char *)(unaff_EDI + 0xc8c52),local_44[3] + 1);" (call_expression "sprintf(__s,(char *)(unaff_EDI + 0xc8c52),local_44[3] + 1)" identifier (argument_list "(__s,(char *)(unaff_EDI + 0xc8c52),local_44[3] + 1)" ( identifier , (cast_expression "(char *)(unaff_EDI + 0xc8c52)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xc8c52)" ( (binary_expression "unaff_EDI + 0xc8c52" identifier + number_literal) ))) , (binary_expression "local_44[3] + 1" (subscript_expression "local_44[3]" identifier [ number_literal ]) + number_literal) ))) ;) (expression_statement "sVar9 = strlen(__s);" (assignment_expression "sVar9 = strlen(__s)" identifier = (call_expression "strlen(__s)" identifier (argument_list "(__s)" ( identifier )))) ;) (expression_statement "iVar7 = *(int *)(iVar6 + 0x100);" (assignment_expression "iVar7 = *(int *)(iVar6 + 0x100)" identifier = (pointer_expression "*(int *)(iVar6 + 0x100)" * (cast_expression "(int *)(iVar6 + 0x100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x100)" ( (binary_expression "iVar6 + 0x100" identifier + number_literal) ))))) ;) (if_statement "if (sVar9 != 0) {\n                  pcVar1 = __s + sVar9;\n                  iVar10 = iVar7;\n                  do {\n                    cVar2 = *__s;\n                    if (iVar10 == 0xff) {\n                      *(undefined1 *)(iVar6 + 0xff) = 0;\n                      (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                      *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                      iVar7 = 1;\n                      iVar10 = 0;\n                    }\n                    else {\n                      iVar7 = iVar10 + 1;\n                    }\n                    __s = __s + 1;\n                    *(int *)(iVar6 + 0x100) = iVar7;\n                    *(char *)(iVar6 + iVar10) = cVar2;\n                    *(char *)(iVar6 + 0x104) = cVar2;\n                    iVar10 = iVar7;\n                  } while (pcVar1 != __s);\n                }" if (parenthesized_expression "(sVar9 != 0)" ( (binary_expression "sVar9 != 0" identifier != number_literal) )) (compound_statement "{\n                  pcVar1 = __s + sVar9;\n                  iVar10 = iVar7;\n                  do {\n                    cVar2 = *__s;\n                    if (iVar10 == 0xff) {\n                      *(undefined1 *)(iVar6 + 0xff) = 0;\n                      (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                      *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                      iVar7 = 1;\n                      iVar10 = 0;\n                    }\n                    else {\n                      iVar7 = iVar10 + 1;\n                    }\n                    __s = __s + 1;\n                    *(int *)(iVar6 + 0x100) = iVar7;\n                    *(char *)(iVar6 + iVar10) = cVar2;\n                    *(char *)(iVar6 + 0x104) = cVar2;\n                    iVar10 = iVar7;\n                  } while (pcVar1 != __s);\n                }" { (expression_statement "pcVar1 = __s + sVar9;" (assignment_expression "pcVar1 = __s + sVar9" identifier = (binary_expression "__s + sVar9" identifier + identifier)) ;) (expression_statement "iVar10 = iVar7;" (assignment_expression "iVar10 = iVar7" identifier = identifier) ;) (do_statement "do {\n                    cVar2 = *__s;\n                    if (iVar10 == 0xff) {\n                      *(undefined1 *)(iVar6 + 0xff) = 0;\n                      (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                      *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                      iVar7 = 1;\n                      iVar10 = 0;\n                    }\n                    else {\n                      iVar7 = iVar10 + 1;\n                    }\n                    __s = __s + 1;\n                    *(int *)(iVar6 + 0x100) = iVar7;\n                    *(char *)(iVar6 + iVar10) = cVar2;\n                    *(char *)(iVar6 + 0x104) = cVar2;\n                    iVar10 = iVar7;\n                  } while (pcVar1 != __s);" do (compound_statement "{\n                    cVar2 = *__s;\n                    if (iVar10 == 0xff) {\n                      *(undefined1 *)(iVar6 + 0xff) = 0;\n                      (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                      *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                      iVar7 = 1;\n                      iVar10 = 0;\n                    }\n                    else {\n                      iVar7 = iVar10 + 1;\n                    }\n                    __s = __s + 1;\n                    *(int *)(iVar6 + 0x100) = iVar7;\n                    *(char *)(iVar6 + iVar10) = cVar2;\n                    *(char *)(iVar6 + 0x104) = cVar2;\n                    iVar10 = iVar7;\n                  }" { (expression_statement "cVar2 = *__s;" (assignment_expression "cVar2 = *__s" identifier = (pointer_expression "*__s" * identifier)) ;) (if_statement "if (iVar10 == 0xff) {\n                      *(undefined1 *)(iVar6 + 0xff) = 0;\n                      (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                      *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                      iVar7 = 1;\n                      iVar10 = 0;\n                    }\n                    else {\n                      iVar7 = iVar10 + 1;\n                    }" if (parenthesized_expression "(iVar10 == 0xff)" ( (binary_expression "iVar10 == 0xff" identifier == number_literal) )) (compound_statement "{\n                      *(undefined1 *)(iVar6 + 0xff) = 0;\n                      (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                      *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                      iVar7 = 1;\n                      iVar10 = 0;\n                    }" { (expression_statement "*(undefined1 *)(iVar6 + 0xff) = 0;" (assignment_expression "*(undefined1 *)(iVar6 + 0xff) = 0" (pointer_expression "*(undefined1 *)(iVar6 + 0xff)" * (cast_expression "(undefined1 *)(iVar6 + 0xff)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0xff)" ( (binary_expression "iVar6 + 0xff" identifier + number_literal) )))) = number_literal) ;) (expression_statement "(**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));" (call_expression "(**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c))" (parenthesized_expression "(**(code **)(iVar6 + 0x108))" ( (pointer_expression "**(code **)(iVar6 + 0x108)" * (pointer_expression "*(code **)(iVar6 + 0x108)" * (cast_expression "(code **)(iVar6 + 0x108)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar6 + 0x108)" ( (binary_expression "iVar6 + 0x108" identifier + number_literal) ))))) )) (argument_list "(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c))" ( identifier , number_literal , (pointer_expression "*(undefined4 *)(iVar6 + 0x10c)" * (cast_expression "(undefined4 *)(iVar6 + 0x10c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x10c)" ( (binary_expression "iVar6 + 0x10c" identifier + number_literal) )))) ))) ;) (expression_statement "*(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;" (assignment_expression "*(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1" (pointer_expression "*(int *)(iVar6 + 0x128)" * (cast_expression "(int *)(iVar6 + 0x128)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x128)" ( (binary_expression "iVar6 + 0x128" identifier + number_literal) )))) = (binary_expression "*(int *)(iVar6 + 0x128) + 1" (pointer_expression "*(int *)(iVar6 + 0x128)" * (cast_expression "(int *)(iVar6 + 0x128)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x128)" ( (binary_expression "iVar6 + 0x128" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "iVar7 = 1;" (assignment_expression "iVar7 = 1" identifier = number_literal) ;) (expression_statement "iVar10 = 0;" (assignment_expression "iVar10 = 0" identifier = number_literal) ;) }) (else_clause "else {\n                      iVar7 = iVar10 + 1;\n                    }" else (compound_statement "{\n                      iVar7 = iVar10 + 1;\n                    }" { (expression_statement "iVar7 = iVar10 + 1;" (assignment_expression "iVar7 = iVar10 + 1" identifier = (binary_expression "iVar10 + 1" identifier + number_literal)) ;) }))) (expression_statement "__s = __s + 1;" (assignment_expression "__s = __s + 1" identifier = (binary_expression "__s + 1" identifier + number_literal)) ;) (expression_statement "*(int *)(iVar6 + 0x100) = iVar7;" (assignment_expression "*(int *)(iVar6 + 0x100) = iVar7" (pointer_expression "*(int *)(iVar6 + 0x100)" * (cast_expression "(int *)(iVar6 + 0x100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x100)" ( (binary_expression "iVar6 + 0x100" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(char *)(iVar6 + iVar10) = cVar2;" (assignment_expression "*(char *)(iVar6 + iVar10) = cVar2" (pointer_expression "*(char *)(iVar6 + iVar10)" * (cast_expression "(char *)(iVar6 + iVar10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + iVar10)" ( (binary_expression "iVar6 + iVar10" identifier + identifier) )))) = identifier) ;) (expression_statement "*(char *)(iVar6 + 0x104) = cVar2;" (assignment_expression "*(char *)(iVar6 + 0x104) = cVar2" (pointer_expression "*(char *)(iVar6 + 0x104)" * (cast_expression "(char *)(iVar6 + 0x104)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x104)" ( (binary_expression "iVar6 + 0x104" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar10 = iVar7;" (assignment_expression "iVar10 = iVar7" identifier = identifier) ;) }) while (parenthesized_expression "(pcVar1 != __s)" ( (binary_expression "pcVar1 != __s" identifier != identifier) )) ;) })) (expression_statement "puVar12 = (undefined1 *)(unaff_EDI + 0xca6c9);" (assignment_expression "puVar12 = (undefined1 *)(unaff_EDI + 0xca6c9)" identifier = (cast_expression "(undefined1 *)(unaff_EDI + 0xca6c9)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xca6c9)" ( (binary_expression "unaff_EDI + 0xca6c9" identifier + number_literal) )))) ;) (expression_statement "uVar11 = 0x7d;" (assignment_expression "uVar11 = 0x7d" identifier = number_literal) ;) (do_statement "do {\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  puVar12 = puVar12 + 1;\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if ((undefined1 *)(unaff_EDI + 0xca6cc) == puVar12) goto LAB_001a03d9;\n                  uVar11 = *puVar12;\n                  iVar7 = iVar10;\n                } while( true );" do (compound_statement "{\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  puVar12 = puVar12 + 1;\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if ((undefined1 *)(unaff_EDI + 0xca6cc) == puVar12) goto LAB_001a03d9;\n                  uVar11 = *puVar12;\n                  iVar7 = iVar10;\n                }" { (if_statement "if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }" if (parenthesized_expression "(iVar7 == 0xff)" ( (binary_expression "iVar7 == 0xff" identifier == number_literal) )) (compound_statement "{\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }" { (expression_statement "*(undefined1 *)(iVar6 + 0xff) = 0;" (assignment_expression "*(undefined1 *)(iVar6 + 0xff) = 0" (pointer_expression "*(undefined1 *)(iVar6 + 0xff)" * (cast_expression "(undefined1 *)(iVar6 + 0xff)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0xff)" ( (binary_expression "iVar6 + 0xff" identifier + number_literal) )))) = number_literal) ;) (expression_statement "(**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));" (call_expression "(**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c))" (parenthesized_expression "(**(code **)(iVar6 + 0x108))" ( (pointer_expression "**(code **)(iVar6 + 0x108)" * (pointer_expression "*(code **)(iVar6 + 0x108)" * (cast_expression "(code **)(iVar6 + 0x108)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar6 + 0x108)" ( (binary_expression "iVar6 + 0x108" identifier + number_literal) ))))) )) (argument_list "(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c))" ( identifier , number_literal , (pointer_expression "*(undefined4 *)(iVar6 + 0x10c)" * (cast_expression "(undefined4 *)(iVar6 + 0x10c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x10c)" ( (binary_expression "iVar6 + 0x10c" identifier + number_literal) )))) ))) ;) (expression_statement "*(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;" (assignment_expression "*(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1" (pointer_expression "*(int *)(iVar6 + 0x128)" * (cast_expression "(int *)(iVar6 + 0x128)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x128)" ( (binary_expression "iVar6 + 0x128" identifier + number_literal) )))) = (binary_expression "*(int *)(iVar6 + 0x128) + 1" (pointer_expression "*(int *)(iVar6 + 0x128)" * (cast_expression "(int *)(iVar6 + 0x128)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x128)" ( (binary_expression "iVar6 + 0x128" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "iVar10 = 1;" (assignment_expression "iVar10 = 1" identifier = number_literal) ;) (expression_statement "iVar7 = 0;" (assignment_expression "iVar7 = 0" identifier = number_literal) ;) }) (else_clause "else {\n                    iVar10 = iVar7 + 1;\n                  }" else (compound_statement "{\n                    iVar10 = iVar7 + 1;\n                  }" { (expression_statement "iVar10 = iVar7 + 1;" (assignment_expression "iVar10 = iVar7 + 1" identifier = (binary_expression "iVar7 + 1" identifier + number_literal)) ;) }))) (expression_statement "puVar12 = puVar12 + 1;" (assignment_expression "puVar12 = puVar12 + 1" identifier = (binary_expression "puVar12 + 1" identifier + number_literal)) ;) (expression_statement "*(int *)(iVar6 + 0x100) = iVar10;" (assignment_expression "*(int *)(iVar6 + 0x100) = iVar10" (pointer_expression "*(int *)(iVar6 + 0x100)" * (cast_expression "(int *)(iVar6 + 0x100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x100)" ( (binary_expression "iVar6 + 0x100" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 *)(iVar6 + iVar7) = uVar11;" (assignment_expression "*(undefined1 *)(iVar6 + iVar7) = uVar11" (pointer_expression "*(undefined1 *)(iVar6 + iVar7)" * (cast_expression "(undefined1 *)(iVar6 + iVar7)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + iVar7)" ( (binary_expression "iVar6 + iVar7" identifier + identifier) )))) = identifier) ;) (expression_statement "*(undefined1 *)(iVar6 + 0x104) = uVar11;" (assignment_expression "*(undefined1 *)(iVar6 + 0x104) = uVar11" (pointer_expression "*(undefined1 *)(iVar6 + 0x104)" * (cast_expression "(undefined1 *)(iVar6 + 0x104)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x104)" ( (binary_expression "iVar6 + 0x104" identifier + number_literal) )))) = identifier) ;) (if_statement "if ((undefined1 *)(unaff_EDI + 0xca6cc) == puVar12) goto LAB_001a03d9;" if (parenthesized_expression "((undefined1 *)(unaff_EDI + 0xca6cc) == puVar12)" ( (binary_expression "(undefined1 *)(unaff_EDI + 0xca6cc) == puVar12" (cast_expression "(undefined1 *)(unaff_EDI + 0xca6cc)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0xca6cc)" ( (binary_expression "unaff_EDI + 0xca6cc" identifier + number_literal) ))) == identifier) )) (goto_statement "goto LAB_001a03d9;" goto statement_identifier ;)) (expression_statement "uVar11 = *puVar12;" (assignment_expression "uVar11 = *puVar12" identifier = (pointer_expression "*puVar12" * identifier)) ;) (expression_statement "iVar7 = iVar10;" (assignment_expression "iVar7 = iVar10" identifier = identifier) ;) }) while (parenthesized_expression "( true )" ( true )) ;) })) (do_statement "do {\n                if (uVar8 != 0x4c) {\n                  if (uVar8 < 0x4d) {\n                    if (4 < uVar8 - 0x1c) {\nLAB_001a036d:\n                      FUN_0019a610();\n                      *(undefined4 *)(iVar6 + 0x110) = uVar3;\n                      return;\n                    }\n                  }\n                  else if (1 < uVar8 - 0x4e) goto LAB_001a036d;\n                }\nLAB_001a03d9:\n                local_44 = (uint *)local_44[2];\n                uVar8 = *local_44;\n              } while( true );" do (compound_statement "{\n                if (uVar8 != 0x4c) {\n                  if (uVar8 < 0x4d) {\n                    if (4 < uVar8 - 0x1c) {\nLAB_001a036d:\n                      FUN_0019a610();\n                      *(undefined4 *)(iVar6 + 0x110) = uVar3;\n                      return;\n                    }\n                  }\n                  else if (1 < uVar8 - 0x4e) goto LAB_001a036d;\n                }\nLAB_001a03d9:\n                local_44 = (uint *)local_44[2];\n                uVar8 = *local_44;\n              }" { (if_statement "if (uVar8 != 0x4c) {\n                  if (uVar8 < 0x4d) {\n                    if (4 < uVar8 - 0x1c) {\nLAB_001a036d:\n                      FUN_0019a610();\n                      *(undefined4 *)(iVar6 + 0x110) = uVar3;\n                      return;\n                    }\n                  }\n                  else if (1 < uVar8 - 0x4e) goto LAB_001a036d;\n                }" if (parenthesized_expression "(uVar8 != 0x4c)" ( (binary_expression "uVar8 != 0x4c" identifier != number_literal) )) (compound_statement "{\n                  if (uVar8 < 0x4d) {\n                    if (4 < uVar8 - 0x1c) {\nLAB_001a036d:\n                      FUN_0019a610();\n                      *(undefined4 *)(iVar6 + 0x110) = uVar3;\n                      return;\n                    }\n                  }\n                  else if (1 < uVar8 - 0x4e) goto LAB_001a036d;\n                }" { (if_statement "if (uVar8 < 0x4d) {\n                    if (4 < uVar8 - 0x1c) {\nLAB_001a036d:\n                      FUN_0019a610();\n                      *(undefined4 *)(iVar6 + 0x110) = uVar3;\n                      return;\n                    }\n                  }\n                  else if (1 < uVar8 - 0x4e) goto LAB_001a036d;" if (parenthesized_expression "(uVar8 < 0x4d)" ( (binary_expression "uVar8 < 0x4d" identifier < number_literal) )) (compound_statement "{\n                    if (4 < uVar8 - 0x1c) {\nLAB_001a036d:\n                      FUN_0019a610();\n                      *(undefined4 *)(iVar6 + 0x110) = uVar3;\n                      return;\n                    }\n                  }" { (if_statement "if (4 < uVar8 - 0x1c) {\nLAB_001a036d:\n                      FUN_0019a610();\n                      *(undefined4 *)(iVar6 + 0x110) = uVar3;\n                      return;\n                    }" if (parenthesized_expression "(4 < uVar8 - 0x1c)" ( (binary_expression "4 < uVar8 - 0x1c" number_literal < (binary_expression "uVar8 - 0x1c" identifier - number_literal)) )) (compound_statement "{\nLAB_001a036d:\n                      FUN_0019a610();\n                      *(undefined4 *)(iVar6 + 0x110) = uVar3;\n                      return;\n                    }" { (labeled_statement "LAB_001a036d:\n                      FUN_0019a610();" statement_identifier : (expression_statement "FUN_0019a610();" (call_expression "FUN_0019a610()" identifier (argument_list "()" ( ))) ;)) (expression_statement "*(undefined4 *)(iVar6 + 0x110) = uVar3;" (assignment_expression "*(undefined4 *)(iVar6 + 0x110) = uVar3" (pointer_expression "*(undefined4 *)(iVar6 + 0x110)" * (cast_expression "(undefined4 *)(iVar6 + 0x110)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x110)" ( (binary_expression "iVar6 + 0x110" identifier + number_literal) )))) = identifier) ;) (return_statement "return;" return ;) })) }) (else_clause "else if (1 < uVar8 - 0x4e) goto LAB_001a036d;" else (if_statement "if (1 < uVar8 - 0x4e) goto LAB_001a036d;" if (parenthesized_expression "(1 < uVar8 - 0x4e)" ( (binary_expression "1 < uVar8 - 0x4e" number_literal < (binary_expression "uVar8 - 0x4e" identifier - number_literal)) )) (goto_statement "goto LAB_001a036d;" goto statement_identifier ;)))) })) (labeled_statement "LAB_001a03d9:\n                local_44 = (uint *)local_44[2];" statement_identifier : (expression_statement "local_44 = (uint *)local_44[2];" (assignment_expression "local_44 = (uint *)local_44[2]" identifier = (cast_expression "(uint *)local_44[2]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_44[2]" identifier [ number_literal ]))) ;)) (expression_statement "uVar8 = *local_44;" (assignment_expression "uVar8 = *local_44" identifier = (pointer_expression "*local_44" * identifier)) ;) }) while (parenthesized_expression "( true )" ( true )) ;) })) (expression_statement "FUN_0019f570();" (call_expression "FUN_0019f570()" identifier (argument_list "()" ( ))) ;) (expression_statement "*(undefined4 *)(iVar6 + 0x110) = uVar3;" (assignment_expression "*(undefined4 *)(iVar6 + 0x110) = uVar3" (pointer_expression "*(undefined4 *)(iVar6 + 0x110)" * (cast_expression "(undefined4 *)(iVar6 + 0x110)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x110)" ( (binary_expression "iVar6 + 0x110" identifier + number_literal) )))) = identifier) ;) })))) })) })) (expression_statement "piVar4 = (int *)*piVar4;" (assignment_expression "piVar4 = (int *)*piVar4" identifier = (cast_expression "(int *)*piVar4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar4" * identifier))) ;) (if_statement "if (piVar4 == (int *)0x0) {\n        return;\n      }" if (parenthesized_expression "(piVar4 == (int *)0x0)" ( (binary_expression "piVar4 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        return;\n      }" { (return_statement "return;" return ;) })) (expression_statement "iVar7 = *(int *)(iVar6 + 0x118);" (assignment_expression "iVar7 = *(int *)(iVar6 + 0x118)" identifier = (pointer_expression "*(int *)(iVar6 + 0x118)" * (cast_expression "(int *)(iVar6 + 0x118)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x118)" ( (binary_expression "iVar6 + 0x118" identifier + number_literal) ))))) ;) })) })) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (while_statement while (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression LIT < (binary_expression IDENT - LIT)) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression LIT < (binary_expression IDENT - LIT)) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * IDENT) ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (return_statement return ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * IDENT) ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (return_statement return ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , LIT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , LIT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) }))) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (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) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , LIT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }))) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))) , (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , LIT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , LIT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))) == IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( BOOL )) ;) })) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression LIT < (binary_expression IDENT - LIT)) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( ))) ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (return_statement return ;) })) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression LIT < (binary_expression IDENT - LIT)) )) (goto_statement goto statement_identifier ;)))) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) }) while (parenthesized_expression ( BOOL )) ;) })) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) })))) })) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (return_statement return ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) })) })) (return_statement return ;) })))
(function_definition "void FUN_001a0210(int param_1)\n\n{\n  char *pcVar1;\n  char cVar2;\n  undefined4 uVar3;\n  int *piVar4;\n  undefined4 uVar5;\n  int iVar6;\n  int iVar7;\n  uint uVar8;\n  size_t sVar9;\n  int *extraout_ECX;\n  int iVar10;\n  undefined1 uVar11;\n  undefined1 *puVar12;\n  char *__s;\n  int unaff_EDI;\n  ulonglong uVar13;\n  uint *local_44;\n  char local_35 [37];\n  \n  uVar13 = FUN_00058c4a();\n  iVar6 = (int)uVar13;\n  if (extraout_ECX != (int *)0x0) {\n    iVar7 = *(int *)(iVar6 + 0x118);\n    piVar4 = extraout_ECX;\n    while (iVar7 == 0) {\n      if (piVar4[2] == 0) {\n        uVar8 = *(uint *)piVar4[1];\n        if (param_1 != 0) goto LAB_001a0258;\n        if (uVar8 != 0x4c) {\n          if (uVar8 < 0x4d) {\n            if (4 < uVar8 - 0x1c) goto LAB_001a0258;\n          }\n          else if (1 < uVar8 - 0x4e) {\nLAB_001a0258:\n            uVar3 = *(undefined4 *)(iVar6 + 0x110);\n            piVar4[2] = 1;\n            *(int *)(iVar6 + 0x110) = piVar4[3];\n            if (uVar8 == 0x29) {\n              FUN_0019fef0(*piVar4);\n              *(undefined4 *)(iVar6 + 0x110) = uVar3;\n              return;\n            }\n            if (uVar8 == 0x2a) {\n              FUN_001a0610(*piVar4);\n              *(undefined4 *)(iVar6 + 0x110) = uVar3;\n              return;\n            }\n            if (uVar8 == 2) {\n              uVar5 = *(undefined4 *)(iVar6 + 0x114);\n              *(undefined4 *)(iVar6 + 0x114) = 0;\n              FUN_0019a610();\n              *(undefined4 *)(iVar6 + 0x114) = uVar5;\n              iVar7 = *(int *)(iVar6 + 0x100);\n              if ((uVar13 & 0x400000000) == 0) {\n                puVar12 = (undefined1 *)(unaff_EDI + 0xca6ca);\n                uVar11 = 0x3a;\n                while( true ) {\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  puVar12 = puVar12 + 1;\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if (puVar12 == (undefined1 *)(unaff_EDI + 0xca6cc)) break;\n                  uVar11 = *puVar12;\n                  iVar7 = iVar10;\n                }\n              }\n              else {\n                iVar10 = iVar7 + 1;\n                if (iVar7 == 0xff) {\n                  *(undefined1 *)(iVar6 + 0xff) = 0;\n                  (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                  *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                  iVar10 = 1;\n                  iVar7 = 0;\n                }\n                *(int *)(iVar6 + 0x100) = iVar10;\n                *(undefined1 *)(iVar6 + iVar7) = 0x2e;\n                *(undefined1 *)(iVar6 + 0x104) = 0x2e;\n              }\n              local_44 = *(uint **)(piVar4[1] + 0xc);\n              uVar8 = *local_44;\n              if (uVar8 == 0x46) {\n                uVar11 = 0x7b;\n                puVar12 = (undefined1 *)(unaff_EDI + 0xca6bc);\n                iVar7 = *(int *)(iVar6 + 0x100);\n                while( true ) {\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if (puVar12 == (undefined1 *)(unaff_EDI + 0xca6c8)) break;\n                  uVar11 = *puVar12;\n                  puVar12 = puVar12 + 1;\n                  iVar7 = iVar10;\n                }\n                __s = local_35;\n                sprintf(__s,(char *)(unaff_EDI + 0xc8c52),local_44[3] + 1);\n                sVar9 = strlen(__s);\n                iVar7 = *(int *)(iVar6 + 0x100);\n                if (sVar9 != 0) {\n                  pcVar1 = __s + sVar9;\n                  iVar10 = iVar7;\n                  do {\n                    cVar2 = *__s;\n                    if (iVar10 == 0xff) {\n                      *(undefined1 *)(iVar6 + 0xff) = 0;\n                      (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                      *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                      iVar7 = 1;\n                      iVar10 = 0;\n                    }\n                    else {\n                      iVar7 = iVar10 + 1;\n                    }\n                    __s = __s + 1;\n                    *(int *)(iVar6 + 0x100) = iVar7;\n                    *(char *)(iVar6 + iVar10) = cVar2;\n                    *(char *)(iVar6 + 0x104) = cVar2;\n                    iVar10 = iVar7;\n                  } while (pcVar1 != __s);\n                }\n                puVar12 = (undefined1 *)(unaff_EDI + 0xca6c9);\n                uVar11 = 0x7d;\n                do {\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  puVar12 = puVar12 + 1;\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if ((undefined1 *)(unaff_EDI + 0xca6cc) == puVar12) goto LAB_001a03d9;\n                  uVar11 = *puVar12;\n                  iVar7 = iVar10;\n                } while( true );\n              }\n              do {\n                if (uVar8 != 0x4c) {\n                  if (uVar8 < 0x4d) {\n                    if (4 < uVar8 - 0x1c) {\nLAB_001a036d:\n                      FUN_0019a610();\n                      *(undefined4 *)(iVar6 + 0x110) = uVar3;\n                      return;\n                    }\n                  }\n                  else if (1 < uVar8 - 0x4e) goto LAB_001a036d;\n                }\nLAB_001a03d9:\n                local_44 = (uint *)local_44[2];\n                uVar8 = *local_44;\n              } while( true );\n            }\n            FUN_0019f570();\n            *(undefined4 *)(iVar6 + 0x110) = uVar3;\n          }\n        }\n      }\n      piVar4 = (int *)*piVar4;\n      if (piVar4 == (int *)0x0) {\n        return;\n      }\n      iVar7 = *(int *)(iVar6 + 0x118);\n    }\n  }\n  return;\n}" (primitive_type "void") (function_declarator "FUN_001a0210(int param_1)" (identifier "FUN_001a0210") (parameter_list "(int param_1)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) () ")"))) (compound_statement "{\n  char *pcVar1;\n  char cVar2;\n  undefined4 uVar3;\n  int *piVar4;\n  undefined4 uVar5;\n  int iVar6;\n  int iVar7;\n  uint uVar8;\n  size_t sVar9;\n  int *extraout_ECX;\n  int iVar10;\n  undefined1 uVar11;\n  undefined1 *puVar12;\n  char *__s;\n  int unaff_EDI;\n  ulonglong uVar13;\n  uint *local_44;\n  char local_35 [37];\n  \n  uVar13 = FUN_00058c4a();\n  iVar6 = (int)uVar13;\n  if (extraout_ECX != (int *)0x0) {\n    iVar7 = *(int *)(iVar6 + 0x118);\n    piVar4 = extraout_ECX;\n    while (iVar7 == 0) {\n      if (piVar4[2] == 0) {\n        uVar8 = *(uint *)piVar4[1];\n        if (param_1 != 0) goto LAB_001a0258;\n        if (uVar8 != 0x4c) {\n          if (uVar8 < 0x4d) {\n            if (4 < uVar8 - 0x1c) goto LAB_001a0258;\n          }\n          else if (1 < uVar8 - 0x4e) {\nLAB_001a0258:\n            uVar3 = *(undefined4 *)(iVar6 + 0x110);\n            piVar4[2] = 1;\n            *(int *)(iVar6 + 0x110) = piVar4[3];\n            if (uVar8 == 0x29) {\n              FUN_0019fef0(*piVar4);\n              *(undefined4 *)(iVar6 + 0x110) = uVar3;\n              return;\n            }\n            if (uVar8 == 0x2a) {\n              FUN_001a0610(*piVar4);\n              *(undefined4 *)(iVar6 + 0x110) = uVar3;\n              return;\n            }\n            if (uVar8 == 2) {\n              uVar5 = *(undefined4 *)(iVar6 + 0x114);\n              *(undefined4 *)(iVar6 + 0x114) = 0;\n              FUN_0019a610();\n              *(undefined4 *)(iVar6 + 0x114) = uVar5;\n              iVar7 = *(int *)(iVar6 + 0x100);\n              if ((uVar13 & 0x400000000) == 0) {\n                puVar12 = (undefined1 *)(unaff_EDI + 0xca6ca);\n                uVar11 = 0x3a;\n                while( true ) {\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  puVar12 = puVar12 + 1;\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if (puVar12 == (undefined1 *)(unaff_EDI + 0xca6cc)) break;\n                  uVar11 = *puVar12;\n                  iVar7 = iVar10;\n                }\n              }\n              else {\n                iVar10 = iVar7 + 1;\n                if (iVar7 == 0xff) {\n                  *(undefined1 *)(iVar6 + 0xff) = 0;\n                  (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                  *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                  iVar10 = 1;\n                  iVar7 = 0;\n                }\n                *(int *)(iVar6 + 0x100) = iVar10;\n                *(undefined1 *)(iVar6 + iVar7) = 0x2e;\n                *(undefined1 *)(iVar6 + 0x104) = 0x2e;\n              }\n              local_44 = *(uint **)(piVar4[1] + 0xc);\n              uVar8 = *local_44;\n              if (uVar8 == 0x46) {\n                uVar11 = 0x7b;\n                puVar12 = (undefined1 *)(unaff_EDI + 0xca6bc);\n                iVar7 = *(int *)(iVar6 + 0x100);\n                while( true ) {\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if (puVar12 == (undefined1 *)(unaff_EDI + 0xca6c8)) break;\n                  uVar11 = *puVar12;\n                  puVar12 = puVar12 + 1;\n                  iVar7 = iVar10;\n                }\n                __s = local_35;\n                sprintf(__s,(char *)(unaff_EDI + 0xc8c52),local_44[3] + 1);\n                sVar9 = strlen(__s);\n                iVar7 = *(int *)(iVar6 + 0x100);\n                if (sVar9 != 0) {\n                  pcVar1 = __s + sVar9;\n                  iVar10 = iVar7;\n                  do {\n                    cVar2 = *__s;\n                    if (iVar10 == 0xff) {\n                      *(undefined1 *)(iVar6 + 0xff) = 0;\n                      (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                      *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                      iVar7 = 1;\n                      iVar10 = 0;\n                    }\n                    else {\n                      iVar7 = iVar10 + 1;\n                    }\n                    __s = __s + 1;\n                    *(int *)(iVar6 + 0x100) = iVar7;\n                    *(char *)(iVar6 + iVar10) = cVar2;\n                    *(char *)(iVar6 + 0x104) = cVar2;\n                    iVar10 = iVar7;\n                  } while (pcVar1 != __s);\n                }\n                puVar12 = (undefined1 *)(unaff_EDI + 0xca6c9);\n                uVar11 = 0x7d;\n                do {\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  puVar12 = puVar12 + 1;\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if ((undefined1 *)(unaff_EDI + 0xca6cc) == puVar12) goto LAB_001a03d9;\n                  uVar11 = *puVar12;\n                  iVar7 = iVar10;\n                } while( true );\n              }\n              do {\n                if (uVar8 != 0x4c) {\n                  if (uVar8 < 0x4d) {\n                    if (4 < uVar8 - 0x1c) {\nLAB_001a036d:\n                      FUN_0019a610();\n                      *(undefined4 *)(iVar6 + 0x110) = uVar3;\n                      return;\n                    }\n                  }\n                  else if (1 < uVar8 - 0x4e) goto LAB_001a036d;\n                }\nLAB_001a03d9:\n                local_44 = (uint *)local_44[2];\n                uVar8 = *local_44;\n              } while( true );\n            }\n            FUN_0019f570();\n            *(undefined4 *)(iVar6 + 0x110) = uVar3;\n          }\n        }\n      }\n      piVar4 = (int *)*piVar4;\n      if (piVar4 == (int *)0x0) {\n        return;\n      }\n      iVar7 = *(int *)(iVar6 + 0x118);\n    }\n  }\n  return;\n}" ({ "{") (declaration "char *pcVar1;" (primitive_type "char") (pointer_declarator "*pcVar1" (* "*") (identifier "pcVar1")) (; ";")) (declaration "char cVar2;" (primitive_type "char") (identifier "cVar2") (; ";")) (declaration "undefined4 uVar3;" (type_identifier "undefined4") (identifier "uVar3") (; ";")) (declaration "int *piVar4;" (primitive_type "int") (pointer_declarator "*piVar4" (* "*") (identifier "piVar4")) (; ";")) (declaration "undefined4 uVar5;" (type_identifier "undefined4") (identifier "uVar5") (; ";")) (declaration "int iVar6;" (primitive_type "int") (identifier "iVar6") (; ";")) (declaration "int iVar7;" (primitive_type "int") (identifier "iVar7") (; ";")) (declaration "uint uVar8;" (type_identifier "uint") (identifier "uVar8") (; ";")) (declaration "size_t sVar9;" (primitive_type "size_t") (identifier "sVar9") (; ";")) (declaration "int *extraout_ECX;" (primitive_type "int") (pointer_declarator "*extraout_ECX" (* "*") (identifier "extraout_ECX")) (; ";")) (declaration "int iVar10;" (primitive_type "int") (identifier "iVar10") (; ";")) (declaration "undefined1 uVar11;" (type_identifier "undefined1") (identifier "uVar11") (; ";")) (declaration "undefined1 *puVar12;" (type_identifier "undefined1") (pointer_declarator "*puVar12" (* "*") (identifier "puVar12")) (; ";")) (declaration "char *__s;" (primitive_type "char") (pointer_declarator "*__s" (* "*") (identifier "__s")) (; ";")) (declaration "int unaff_EDI;" (primitive_type "int") (identifier "unaff_EDI") (; ";")) (declaration "ulonglong uVar13;" (type_identifier "ulonglong") (identifier "uVar13") (; ";")) (declaration "uint *local_44;" (type_identifier "uint") (pointer_declarator "*local_44" (* "*") (identifier "local_44")) (; ";")) (declaration "char local_35 [37];" (primitive_type "char") (array_declarator "local_35 [37]" (identifier "local_35") ([ "[") (number_literal "37") (] "]")) (; ";")) (expression_statement "uVar13 = FUN_00058c4a();" (assignment_expression "uVar13 = FUN_00058c4a()" (identifier "uVar13") (= "=") (call_expression "FUN_00058c4a()" (identifier "FUN_00058c4a") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "iVar6 = (int)uVar13;" (assignment_expression "iVar6 = (int)uVar13" (identifier "iVar6") (= "=") (cast_expression "(int)uVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar13"))) (; ";")) (if_statement "if (extraout_ECX != (int *)0x0) {\n    iVar7 = *(int *)(iVar6 + 0x118);\n    piVar4 = extraout_ECX;\n    while (iVar7 == 0) {\n      if (piVar4[2] == 0) {\n        uVar8 = *(uint *)piVar4[1];\n        if (param_1 != 0) goto LAB_001a0258;\n        if (uVar8 != 0x4c) {\n          if (uVar8 < 0x4d) {\n            if (4 < uVar8 - 0x1c) goto LAB_001a0258;\n          }\n          else if (1 < uVar8 - 0x4e) {\nLAB_001a0258:\n            uVar3 = *(undefined4 *)(iVar6 + 0x110);\n            piVar4[2] = 1;\n            *(int *)(iVar6 + 0x110) = piVar4[3];\n            if (uVar8 == 0x29) {\n              FUN_0019fef0(*piVar4);\n              *(undefined4 *)(iVar6 + 0x110) = uVar3;\n              return;\n            }\n            if (uVar8 == 0x2a) {\n              FUN_001a0610(*piVar4);\n              *(undefined4 *)(iVar6 + 0x110) = uVar3;\n              return;\n            }\n            if (uVar8 == 2) {\n              uVar5 = *(undefined4 *)(iVar6 + 0x114);\n              *(undefined4 *)(iVar6 + 0x114) = 0;\n              FUN_0019a610();\n              *(undefined4 *)(iVar6 + 0x114) = uVar5;\n              iVar7 = *(int *)(iVar6 + 0x100);\n              if ((uVar13 & 0x400000000) == 0) {\n                puVar12 = (undefined1 *)(unaff_EDI + 0xca6ca);\n                uVar11 = 0x3a;\n                while( true ) {\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  puVar12 = puVar12 + 1;\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if (puVar12 == (undefined1 *)(unaff_EDI + 0xca6cc)) break;\n                  uVar11 = *puVar12;\n                  iVar7 = iVar10;\n                }\n              }\n              else {\n                iVar10 = iVar7 + 1;\n                if (iVar7 == 0xff) {\n                  *(undefined1 *)(iVar6 + 0xff) = 0;\n                  (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                  *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                  iVar10 = 1;\n                  iVar7 = 0;\n                }\n                *(int *)(iVar6 + 0x100) = iVar10;\n                *(undefined1 *)(iVar6 + iVar7) = 0x2e;\n                *(undefined1 *)(iVar6 + 0x104) = 0x2e;\n              }\n              local_44 = *(uint **)(piVar4[1] + 0xc);\n              uVar8 = *local_44;\n              if (uVar8 == 0x46) {\n                uVar11 = 0x7b;\n                puVar12 = (undefined1 *)(unaff_EDI + 0xca6bc);\n                iVar7 = *(int *)(iVar6 + 0x100);\n                while( true ) {\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if (puVar12 == (undefined1 *)(unaff_EDI + 0xca6c8)) break;\n                  uVar11 = *puVar12;\n                  puVar12 = puVar12 + 1;\n                  iVar7 = iVar10;\n                }\n                __s = local_35;\n                sprintf(__s,(char *)(unaff_EDI + 0xc8c52),local_44[3] + 1);\n                sVar9 = strlen(__s);\n                iVar7 = *(int *)(iVar6 + 0x100);\n                if (sVar9 != 0) {\n                  pcVar1 = __s + sVar9;\n                  iVar10 = iVar7;\n                  do {\n                    cVar2 = *__s;\n                    if (iVar10 == 0xff) {\n                      *(undefined1 *)(iVar6 + 0xff) = 0;\n                      (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                      *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                      iVar7 = 1;\n                      iVar10 = 0;\n                    }\n                    else {\n                      iVar7 = iVar10 + 1;\n                    }\n                    __s = __s + 1;\n                    *(int *)(iVar6 + 0x100) = iVar7;\n                    *(char *)(iVar6 + iVar10) = cVar2;\n                    *(char *)(iVar6 + 0x104) = cVar2;\n                    iVar10 = iVar7;\n                  } while (pcVar1 != __s);\n                }\n                puVar12 = (undefined1 *)(unaff_EDI + 0xca6c9);\n                uVar11 = 0x7d;\n                do {\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  puVar12 = puVar12 + 1;\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if ((undefined1 *)(unaff_EDI + 0xca6cc) == puVar12) goto LAB_001a03d9;\n                  uVar11 = *puVar12;\n                  iVar7 = iVar10;\n                } while( true );\n              }\n              do {\n                if (uVar8 != 0x4c) {\n                  if (uVar8 < 0x4d) {\n                    if (4 < uVar8 - 0x1c) {\nLAB_001a036d:\n                      FUN_0019a610();\n                      *(undefined4 *)(iVar6 + 0x110) = uVar3;\n                      return;\n                    }\n                  }\n                  else if (1 < uVar8 - 0x4e) goto LAB_001a036d;\n                }\nLAB_001a03d9:\n                local_44 = (uint *)local_44[2];\n                uVar8 = *local_44;\n              } while( true );\n            }\n            FUN_0019f570();\n            *(undefined4 *)(iVar6 + 0x110) = uVar3;\n          }\n        }\n      }\n      piVar4 = (int *)*piVar4;\n      if (piVar4 == (int *)0x0) {\n        return;\n      }\n      iVar7 = *(int *)(iVar6 + 0x118);\n    }\n  }" (if "if") (parenthesized_expression "(extraout_ECX != (int *)0x0)" (( "(") (binary_expression "extraout_ECX != (int *)0x0" (identifier "extraout_ECX") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    iVar7 = *(int *)(iVar6 + 0x118);\n    piVar4 = extraout_ECX;\n    while (iVar7 == 0) {\n      if (piVar4[2] == 0) {\n        uVar8 = *(uint *)piVar4[1];\n        if (param_1 != 0) goto LAB_001a0258;\n        if (uVar8 != 0x4c) {\n          if (uVar8 < 0x4d) {\n            if (4 < uVar8 - 0x1c) goto LAB_001a0258;\n          }\n          else if (1 < uVar8 - 0x4e) {\nLAB_001a0258:\n            uVar3 = *(undefined4 *)(iVar6 + 0x110);\n            piVar4[2] = 1;\n            *(int *)(iVar6 + 0x110) = piVar4[3];\n            if (uVar8 == 0x29) {\n              FUN_0019fef0(*piVar4);\n              *(undefined4 *)(iVar6 + 0x110) = uVar3;\n              return;\n            }\n            if (uVar8 == 0x2a) {\n              FUN_001a0610(*piVar4);\n              *(undefined4 *)(iVar6 + 0x110) = uVar3;\n              return;\n            }\n            if (uVar8 == 2) {\n              uVar5 = *(undefined4 *)(iVar6 + 0x114);\n              *(undefined4 *)(iVar6 + 0x114) = 0;\n              FUN_0019a610();\n              *(undefined4 *)(iVar6 + 0x114) = uVar5;\n              iVar7 = *(int *)(iVar6 + 0x100);\n              if ((uVar13 & 0x400000000) == 0) {\n                puVar12 = (undefined1 *)(unaff_EDI + 0xca6ca);\n                uVar11 = 0x3a;\n                while( true ) {\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  puVar12 = puVar12 + 1;\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if (puVar12 == (undefined1 *)(unaff_EDI + 0xca6cc)) break;\n                  uVar11 = *puVar12;\n                  iVar7 = iVar10;\n                }\n              }\n              else {\n                iVar10 = iVar7 + 1;\n                if (iVar7 == 0xff) {\n                  *(undefined1 *)(iVar6 + 0xff) = 0;\n                  (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                  *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                  iVar10 = 1;\n                  iVar7 = 0;\n                }\n                *(int *)(iVar6 + 0x100) = iVar10;\n                *(undefined1 *)(iVar6 + iVar7) = 0x2e;\n                *(undefined1 *)(iVar6 + 0x104) = 0x2e;\n              }\n              local_44 = *(uint **)(piVar4[1] + 0xc);\n              uVar8 = *local_44;\n              if (uVar8 == 0x46) {\n                uVar11 = 0x7b;\n                puVar12 = (undefined1 *)(unaff_EDI + 0xca6bc);\n                iVar7 = *(int *)(iVar6 + 0x100);\n                while( true ) {\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if (puVar12 == (undefined1 *)(unaff_EDI + 0xca6c8)) break;\n                  uVar11 = *puVar12;\n                  puVar12 = puVar12 + 1;\n                  iVar7 = iVar10;\n                }\n                __s = local_35;\n                sprintf(__s,(char *)(unaff_EDI + 0xc8c52),local_44[3] + 1);\n                sVar9 = strlen(__s);\n                iVar7 = *(int *)(iVar6 + 0x100);\n                if (sVar9 != 0) {\n                  pcVar1 = __s + sVar9;\n                  iVar10 = iVar7;\n                  do {\n                    cVar2 = *__s;\n                    if (iVar10 == 0xff) {\n                      *(undefined1 *)(iVar6 + 0xff) = 0;\n                      (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                      *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                      iVar7 = 1;\n                      iVar10 = 0;\n                    }\n                    else {\n                      iVar7 = iVar10 + 1;\n                    }\n                    __s = __s + 1;\n                    *(int *)(iVar6 + 0x100) = iVar7;\n                    *(char *)(iVar6 + iVar10) = cVar2;\n                    *(char *)(iVar6 + 0x104) = cVar2;\n                    iVar10 = iVar7;\n                  } while (pcVar1 != __s);\n                }\n                puVar12 = (undefined1 *)(unaff_EDI + 0xca6c9);\n                uVar11 = 0x7d;\n                do {\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  puVar12 = puVar12 + 1;\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if ((undefined1 *)(unaff_EDI + 0xca6cc) == puVar12) goto LAB_001a03d9;\n                  uVar11 = *puVar12;\n                  iVar7 = iVar10;\n                } while( true );\n              }\n              do {\n                if (uVar8 != 0x4c) {\n                  if (uVar8 < 0x4d) {\n                    if (4 < uVar8 - 0x1c) {\nLAB_001a036d:\n                      FUN_0019a610();\n                      *(undefined4 *)(iVar6 + 0x110) = uVar3;\n                      return;\n                    }\n                  }\n                  else if (1 < uVar8 - 0x4e) goto LAB_001a036d;\n                }\nLAB_001a03d9:\n                local_44 = (uint *)local_44[2];\n                uVar8 = *local_44;\n              } while( true );\n            }\n            FUN_0019f570();\n            *(undefined4 *)(iVar6 + 0x110) = uVar3;\n          }\n        }\n      }\n      piVar4 = (int *)*piVar4;\n      if (piVar4 == (int *)0x0) {\n        return;\n      }\n      iVar7 = *(int *)(iVar6 + 0x118);\n    }\n  }" ({ "{") (expression_statement "iVar7 = *(int *)(iVar6 + 0x118);" (assignment_expression "iVar7 = *(int *)(iVar6 + 0x118)" (identifier "iVar7") (= "=") (pointer_expression "*(int *)(iVar6 + 0x118)" (* "*") (cast_expression "(int *)(iVar6 + 0x118)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x118)" (( "(") (binary_expression "iVar6 + 0x118" (identifier "iVar6") (+ "+") (number_literal "0x118")) () ")"))))) (; ";")) (expression_statement "piVar4 = extraout_ECX;" (assignment_expression "piVar4 = extraout_ECX" (identifier "piVar4") (= "=") (identifier "extraout_ECX")) (; ";")) (while_statement "while (iVar7 == 0) {\n      if (piVar4[2] == 0) {\n        uVar8 = *(uint *)piVar4[1];\n        if (param_1 != 0) goto LAB_001a0258;\n        if (uVar8 != 0x4c) {\n          if (uVar8 < 0x4d) {\n            if (4 < uVar8 - 0x1c) goto LAB_001a0258;\n          }\n          else if (1 < uVar8 - 0x4e) {\nLAB_001a0258:\n            uVar3 = *(undefined4 *)(iVar6 + 0x110);\n            piVar4[2] = 1;\n            *(int *)(iVar6 + 0x110) = piVar4[3];\n            if (uVar8 == 0x29) {\n              FUN_0019fef0(*piVar4);\n              *(undefined4 *)(iVar6 + 0x110) = uVar3;\n              return;\n            }\n            if (uVar8 == 0x2a) {\n              FUN_001a0610(*piVar4);\n              *(undefined4 *)(iVar6 + 0x110) = uVar3;\n              return;\n            }\n            if (uVar8 == 2) {\n              uVar5 = *(undefined4 *)(iVar6 + 0x114);\n              *(undefined4 *)(iVar6 + 0x114) = 0;\n              FUN_0019a610();\n              *(undefined4 *)(iVar6 + 0x114) = uVar5;\n              iVar7 = *(int *)(iVar6 + 0x100);\n              if ((uVar13 & 0x400000000) == 0) {\n                puVar12 = (undefined1 *)(unaff_EDI + 0xca6ca);\n                uVar11 = 0x3a;\n                while( true ) {\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  puVar12 = puVar12 + 1;\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if (puVar12 == (undefined1 *)(unaff_EDI + 0xca6cc)) break;\n                  uVar11 = *puVar12;\n                  iVar7 = iVar10;\n                }\n              }\n              else {\n                iVar10 = iVar7 + 1;\n                if (iVar7 == 0xff) {\n                  *(undefined1 *)(iVar6 + 0xff) = 0;\n                  (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                  *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                  iVar10 = 1;\n                  iVar7 = 0;\n                }\n                *(int *)(iVar6 + 0x100) = iVar10;\n                *(undefined1 *)(iVar6 + iVar7) = 0x2e;\n                *(undefined1 *)(iVar6 + 0x104) = 0x2e;\n              }\n              local_44 = *(uint **)(piVar4[1] + 0xc);\n              uVar8 = *local_44;\n              if (uVar8 == 0x46) {\n                uVar11 = 0x7b;\n                puVar12 = (undefined1 *)(unaff_EDI + 0xca6bc);\n                iVar7 = *(int *)(iVar6 + 0x100);\n                while( true ) {\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if (puVar12 == (undefined1 *)(unaff_EDI + 0xca6c8)) break;\n                  uVar11 = *puVar12;\n                  puVar12 = puVar12 + 1;\n                  iVar7 = iVar10;\n                }\n                __s = local_35;\n                sprintf(__s,(char *)(unaff_EDI + 0xc8c52),local_44[3] + 1);\n                sVar9 = strlen(__s);\n                iVar7 = *(int *)(iVar6 + 0x100);\n                if (sVar9 != 0) {\n                  pcVar1 = __s + sVar9;\n                  iVar10 = iVar7;\n                  do {\n                    cVar2 = *__s;\n                    if (iVar10 == 0xff) {\n                      *(undefined1 *)(iVar6 + 0xff) = 0;\n                      (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                      *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                      iVar7 = 1;\n                      iVar10 = 0;\n                    }\n                    else {\n                      iVar7 = iVar10 + 1;\n                    }\n                    __s = __s + 1;\n                    *(int *)(iVar6 + 0x100) = iVar7;\n                    *(char *)(iVar6 + iVar10) = cVar2;\n                    *(char *)(iVar6 + 0x104) = cVar2;\n                    iVar10 = iVar7;\n                  } while (pcVar1 != __s);\n                }\n                puVar12 = (undefined1 *)(unaff_EDI + 0xca6c9);\n                uVar11 = 0x7d;\n                do {\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  puVar12 = puVar12 + 1;\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if ((undefined1 *)(unaff_EDI + 0xca6cc) == puVar12) goto LAB_001a03d9;\n                  uVar11 = *puVar12;\n                  iVar7 = iVar10;\n                } while( true );\n              }\n              do {\n                if (uVar8 != 0x4c) {\n                  if (uVar8 < 0x4d) {\n                    if (4 < uVar8 - 0x1c) {\nLAB_001a036d:\n                      FUN_0019a610();\n                      *(undefined4 *)(iVar6 + 0x110) = uVar3;\n                      return;\n                    }\n                  }\n                  else if (1 < uVar8 - 0x4e) goto LAB_001a036d;\n                }\nLAB_001a03d9:\n                local_44 = (uint *)local_44[2];\n                uVar8 = *local_44;\n              } while( true );\n            }\n            FUN_0019f570();\n            *(undefined4 *)(iVar6 + 0x110) = uVar3;\n          }\n        }\n      }\n      piVar4 = (int *)*piVar4;\n      if (piVar4 == (int *)0x0) {\n        return;\n      }\n      iVar7 = *(int *)(iVar6 + 0x118);\n    }" (while "while") (parenthesized_expression "(iVar7 == 0)" (( "(") (binary_expression "iVar7 == 0" (identifier "iVar7") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      if (piVar4[2] == 0) {\n        uVar8 = *(uint *)piVar4[1];\n        if (param_1 != 0) goto LAB_001a0258;\n        if (uVar8 != 0x4c) {\n          if (uVar8 < 0x4d) {\n            if (4 < uVar8 - 0x1c) goto LAB_001a0258;\n          }\n          else if (1 < uVar8 - 0x4e) {\nLAB_001a0258:\n            uVar3 = *(undefined4 *)(iVar6 + 0x110);\n            piVar4[2] = 1;\n            *(int *)(iVar6 + 0x110) = piVar4[3];\n            if (uVar8 == 0x29) {\n              FUN_0019fef0(*piVar4);\n              *(undefined4 *)(iVar6 + 0x110) = uVar3;\n              return;\n            }\n            if (uVar8 == 0x2a) {\n              FUN_001a0610(*piVar4);\n              *(undefined4 *)(iVar6 + 0x110) = uVar3;\n              return;\n            }\n            if (uVar8 == 2) {\n              uVar5 = *(undefined4 *)(iVar6 + 0x114);\n              *(undefined4 *)(iVar6 + 0x114) = 0;\n              FUN_0019a610();\n              *(undefined4 *)(iVar6 + 0x114) = uVar5;\n              iVar7 = *(int *)(iVar6 + 0x100);\n              if ((uVar13 & 0x400000000) == 0) {\n                puVar12 = (undefined1 *)(unaff_EDI + 0xca6ca);\n                uVar11 = 0x3a;\n                while( true ) {\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  puVar12 = puVar12 + 1;\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if (puVar12 == (undefined1 *)(unaff_EDI + 0xca6cc)) break;\n                  uVar11 = *puVar12;\n                  iVar7 = iVar10;\n                }\n              }\n              else {\n                iVar10 = iVar7 + 1;\n                if (iVar7 == 0xff) {\n                  *(undefined1 *)(iVar6 + 0xff) = 0;\n                  (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                  *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                  iVar10 = 1;\n                  iVar7 = 0;\n                }\n                *(int *)(iVar6 + 0x100) = iVar10;\n                *(undefined1 *)(iVar6 + iVar7) = 0x2e;\n                *(undefined1 *)(iVar6 + 0x104) = 0x2e;\n              }\n              local_44 = *(uint **)(piVar4[1] + 0xc);\n              uVar8 = *local_44;\n              if (uVar8 == 0x46) {\n                uVar11 = 0x7b;\n                puVar12 = (undefined1 *)(unaff_EDI + 0xca6bc);\n                iVar7 = *(int *)(iVar6 + 0x100);\n                while( true ) {\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if (puVar12 == (undefined1 *)(unaff_EDI + 0xca6c8)) break;\n                  uVar11 = *puVar12;\n                  puVar12 = puVar12 + 1;\n                  iVar7 = iVar10;\n                }\n                __s = local_35;\n                sprintf(__s,(char *)(unaff_EDI + 0xc8c52),local_44[3] + 1);\n                sVar9 = strlen(__s);\n                iVar7 = *(int *)(iVar6 + 0x100);\n                if (sVar9 != 0) {\n                  pcVar1 = __s + sVar9;\n                  iVar10 = iVar7;\n                  do {\n                    cVar2 = *__s;\n                    if (iVar10 == 0xff) {\n                      *(undefined1 *)(iVar6 + 0xff) = 0;\n                      (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                      *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                      iVar7 = 1;\n                      iVar10 = 0;\n                    }\n                    else {\n                      iVar7 = iVar10 + 1;\n                    }\n                    __s = __s + 1;\n                    *(int *)(iVar6 + 0x100) = iVar7;\n                    *(char *)(iVar6 + iVar10) = cVar2;\n                    *(char *)(iVar6 + 0x104) = cVar2;\n                    iVar10 = iVar7;\n                  } while (pcVar1 != __s);\n                }\n                puVar12 = (undefined1 *)(unaff_EDI + 0xca6c9);\n                uVar11 = 0x7d;\n                do {\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  puVar12 = puVar12 + 1;\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if ((undefined1 *)(unaff_EDI + 0xca6cc) == puVar12) goto LAB_001a03d9;\n                  uVar11 = *puVar12;\n                  iVar7 = iVar10;\n                } while( true );\n              }\n              do {\n                if (uVar8 != 0x4c) {\n                  if (uVar8 < 0x4d) {\n                    if (4 < uVar8 - 0x1c) {\nLAB_001a036d:\n                      FUN_0019a610();\n                      *(undefined4 *)(iVar6 + 0x110) = uVar3;\n                      return;\n                    }\n                  }\n                  else if (1 < uVar8 - 0x4e) goto LAB_001a036d;\n                }\nLAB_001a03d9:\n                local_44 = (uint *)local_44[2];\n                uVar8 = *local_44;\n              } while( true );\n            }\n            FUN_0019f570();\n            *(undefined4 *)(iVar6 + 0x110) = uVar3;\n          }\n        }\n      }\n      piVar4 = (int *)*piVar4;\n      if (piVar4 == (int *)0x0) {\n        return;\n      }\n      iVar7 = *(int *)(iVar6 + 0x118);\n    }" ({ "{") (if_statement "if (piVar4[2] == 0) {\n        uVar8 = *(uint *)piVar4[1];\n        if (param_1 != 0) goto LAB_001a0258;\n        if (uVar8 != 0x4c) {\n          if (uVar8 < 0x4d) {\n            if (4 < uVar8 - 0x1c) goto LAB_001a0258;\n          }\n          else if (1 < uVar8 - 0x4e) {\nLAB_001a0258:\n            uVar3 = *(undefined4 *)(iVar6 + 0x110);\n            piVar4[2] = 1;\n            *(int *)(iVar6 + 0x110) = piVar4[3];\n            if (uVar8 == 0x29) {\n              FUN_0019fef0(*piVar4);\n              *(undefined4 *)(iVar6 + 0x110) = uVar3;\n              return;\n            }\n            if (uVar8 == 0x2a) {\n              FUN_001a0610(*piVar4);\n              *(undefined4 *)(iVar6 + 0x110) = uVar3;\n              return;\n            }\n            if (uVar8 == 2) {\n              uVar5 = *(undefined4 *)(iVar6 + 0x114);\n              *(undefined4 *)(iVar6 + 0x114) = 0;\n              FUN_0019a610();\n              *(undefined4 *)(iVar6 + 0x114) = uVar5;\n              iVar7 = *(int *)(iVar6 + 0x100);\n              if ((uVar13 & 0x400000000) == 0) {\n                puVar12 = (undefined1 *)(unaff_EDI + 0xca6ca);\n                uVar11 = 0x3a;\n                while( true ) {\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  puVar12 = puVar12 + 1;\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if (puVar12 == (undefined1 *)(unaff_EDI + 0xca6cc)) break;\n                  uVar11 = *puVar12;\n                  iVar7 = iVar10;\n                }\n              }\n              else {\n                iVar10 = iVar7 + 1;\n                if (iVar7 == 0xff) {\n                  *(undefined1 *)(iVar6 + 0xff) = 0;\n                  (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                  *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                  iVar10 = 1;\n                  iVar7 = 0;\n                }\n                *(int *)(iVar6 + 0x100) = iVar10;\n                *(undefined1 *)(iVar6 + iVar7) = 0x2e;\n                *(undefined1 *)(iVar6 + 0x104) = 0x2e;\n              }\n              local_44 = *(uint **)(piVar4[1] + 0xc);\n              uVar8 = *local_44;\n              if (uVar8 == 0x46) {\n                uVar11 = 0x7b;\n                puVar12 = (undefined1 *)(unaff_EDI + 0xca6bc);\n                iVar7 = *(int *)(iVar6 + 0x100);\n                while( true ) {\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if (puVar12 == (undefined1 *)(unaff_EDI + 0xca6c8)) break;\n                  uVar11 = *puVar12;\n                  puVar12 = puVar12 + 1;\n                  iVar7 = iVar10;\n                }\n                __s = local_35;\n                sprintf(__s,(char *)(unaff_EDI + 0xc8c52),local_44[3] + 1);\n                sVar9 = strlen(__s);\n                iVar7 = *(int *)(iVar6 + 0x100);\n                if (sVar9 != 0) {\n                  pcVar1 = __s + sVar9;\n                  iVar10 = iVar7;\n                  do {\n                    cVar2 = *__s;\n                    if (iVar10 == 0xff) {\n                      *(undefined1 *)(iVar6 + 0xff) = 0;\n                      (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                      *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                      iVar7 = 1;\n                      iVar10 = 0;\n                    }\n                    else {\n                      iVar7 = iVar10 + 1;\n                    }\n                    __s = __s + 1;\n                    *(int *)(iVar6 + 0x100) = iVar7;\n                    *(char *)(iVar6 + iVar10) = cVar2;\n                    *(char *)(iVar6 + 0x104) = cVar2;\n                    iVar10 = iVar7;\n                  } while (pcVar1 != __s);\n                }\n                puVar12 = (undefined1 *)(unaff_EDI + 0xca6c9);\n                uVar11 = 0x7d;\n                do {\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  puVar12 = puVar12 + 1;\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if ((undefined1 *)(unaff_EDI + 0xca6cc) == puVar12) goto LAB_001a03d9;\n                  uVar11 = *puVar12;\n                  iVar7 = iVar10;\n                } while( true );\n              }\n              do {\n                if (uVar8 != 0x4c) {\n                  if (uVar8 < 0x4d) {\n                    if (4 < uVar8 - 0x1c) {\nLAB_001a036d:\n                      FUN_0019a610();\n                      *(undefined4 *)(iVar6 + 0x110) = uVar3;\n                      return;\n                    }\n                  }\n                  else if (1 < uVar8 - 0x4e) goto LAB_001a036d;\n                }\nLAB_001a03d9:\n                local_44 = (uint *)local_44[2];\n                uVar8 = *local_44;\n              } while( true );\n            }\n            FUN_0019f570();\n            *(undefined4 *)(iVar6 + 0x110) = uVar3;\n          }\n        }\n      }" (if "if") (parenthesized_expression "(piVar4[2] == 0)" (( "(") (binary_expression "piVar4[2] == 0" (subscript_expression "piVar4[2]" (identifier "piVar4") ([ "[") (number_literal "2") (] "]")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        uVar8 = *(uint *)piVar4[1];\n        if (param_1 != 0) goto LAB_001a0258;\n        if (uVar8 != 0x4c) {\n          if (uVar8 < 0x4d) {\n            if (4 < uVar8 - 0x1c) goto LAB_001a0258;\n          }\n          else if (1 < uVar8 - 0x4e) {\nLAB_001a0258:\n            uVar3 = *(undefined4 *)(iVar6 + 0x110);\n            piVar4[2] = 1;\n            *(int *)(iVar6 + 0x110) = piVar4[3];\n            if (uVar8 == 0x29) {\n              FUN_0019fef0(*piVar4);\n              *(undefined4 *)(iVar6 + 0x110) = uVar3;\n              return;\n            }\n            if (uVar8 == 0x2a) {\n              FUN_001a0610(*piVar4);\n              *(undefined4 *)(iVar6 + 0x110) = uVar3;\n              return;\n            }\n            if (uVar8 == 2) {\n              uVar5 = *(undefined4 *)(iVar6 + 0x114);\n              *(undefined4 *)(iVar6 + 0x114) = 0;\n              FUN_0019a610();\n              *(undefined4 *)(iVar6 + 0x114) = uVar5;\n              iVar7 = *(int *)(iVar6 + 0x100);\n              if ((uVar13 & 0x400000000) == 0) {\n                puVar12 = (undefined1 *)(unaff_EDI + 0xca6ca);\n                uVar11 = 0x3a;\n                while( true ) {\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  puVar12 = puVar12 + 1;\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if (puVar12 == (undefined1 *)(unaff_EDI + 0xca6cc)) break;\n                  uVar11 = *puVar12;\n                  iVar7 = iVar10;\n                }\n              }\n              else {\n                iVar10 = iVar7 + 1;\n                if (iVar7 == 0xff) {\n                  *(undefined1 *)(iVar6 + 0xff) = 0;\n                  (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                  *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                  iVar10 = 1;\n                  iVar7 = 0;\n                }\n                *(int *)(iVar6 + 0x100) = iVar10;\n                *(undefined1 *)(iVar6 + iVar7) = 0x2e;\n                *(undefined1 *)(iVar6 + 0x104) = 0x2e;\n              }\n              local_44 = *(uint **)(piVar4[1] + 0xc);\n              uVar8 = *local_44;\n              if (uVar8 == 0x46) {\n                uVar11 = 0x7b;\n                puVar12 = (undefined1 *)(unaff_EDI + 0xca6bc);\n                iVar7 = *(int *)(iVar6 + 0x100);\n                while( true ) {\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if (puVar12 == (undefined1 *)(unaff_EDI + 0xca6c8)) break;\n                  uVar11 = *puVar12;\n                  puVar12 = puVar12 + 1;\n                  iVar7 = iVar10;\n                }\n                __s = local_35;\n                sprintf(__s,(char *)(unaff_EDI + 0xc8c52),local_44[3] + 1);\n                sVar9 = strlen(__s);\n                iVar7 = *(int *)(iVar6 + 0x100);\n                if (sVar9 != 0) {\n                  pcVar1 = __s + sVar9;\n                  iVar10 = iVar7;\n                  do {\n                    cVar2 = *__s;\n                    if (iVar10 == 0xff) {\n                      *(undefined1 *)(iVar6 + 0xff) = 0;\n                      (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                      *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                      iVar7 = 1;\n                      iVar10 = 0;\n                    }\n                    else {\n                      iVar7 = iVar10 + 1;\n                    }\n                    __s = __s + 1;\n                    *(int *)(iVar6 + 0x100) = iVar7;\n                    *(char *)(iVar6 + iVar10) = cVar2;\n                    *(char *)(iVar6 + 0x104) = cVar2;\n                    iVar10 = iVar7;\n                  } while (pcVar1 != __s);\n                }\n                puVar12 = (undefined1 *)(unaff_EDI + 0xca6c9);\n                uVar11 = 0x7d;\n                do {\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  puVar12 = puVar12 + 1;\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if ((undefined1 *)(unaff_EDI + 0xca6cc) == puVar12) goto LAB_001a03d9;\n                  uVar11 = *puVar12;\n                  iVar7 = iVar10;\n                } while( true );\n              }\n              do {\n                if (uVar8 != 0x4c) {\n                  if (uVar8 < 0x4d) {\n                    if (4 < uVar8 - 0x1c) {\nLAB_001a036d:\n                      FUN_0019a610();\n                      *(undefined4 *)(iVar6 + 0x110) = uVar3;\n                      return;\n                    }\n                  }\n                  else if (1 < uVar8 - 0x4e) goto LAB_001a036d;\n                }\nLAB_001a03d9:\n                local_44 = (uint *)local_44[2];\n                uVar8 = *local_44;\n              } while( true );\n            }\n            FUN_0019f570();\n            *(undefined4 *)(iVar6 + 0x110) = uVar3;\n          }\n        }\n      }" ({ "{") (expression_statement "uVar8 = *(uint *)piVar4[1];" (assignment_expression "uVar8 = *(uint *)piVar4[1]" (identifier "uVar8") (= "=") (pointer_expression "*(uint *)piVar4[1]" (* "*") (cast_expression "(uint *)piVar4[1]" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar4[1]" (identifier "piVar4") ([ "[") (number_literal "1") (] "]"))))) (; ";")) (if_statement "if (param_1 != 0) goto LAB_001a0258;" (if "if") (parenthesized_expression "(param_1 != 0)" (( "(") (binary_expression "param_1 != 0" (identifier "param_1") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_001a0258;" (goto "goto") (statement_identifier "LAB_001a0258") (; ";"))) (if_statement "if (uVar8 != 0x4c) {\n          if (uVar8 < 0x4d) {\n            if (4 < uVar8 - 0x1c) goto LAB_001a0258;\n          }\n          else if (1 < uVar8 - 0x4e) {\nLAB_001a0258:\n            uVar3 = *(undefined4 *)(iVar6 + 0x110);\n            piVar4[2] = 1;\n            *(int *)(iVar6 + 0x110) = piVar4[3];\n            if (uVar8 == 0x29) {\n              FUN_0019fef0(*piVar4);\n              *(undefined4 *)(iVar6 + 0x110) = uVar3;\n              return;\n            }\n            if (uVar8 == 0x2a) {\n              FUN_001a0610(*piVar4);\n              *(undefined4 *)(iVar6 + 0x110) = uVar3;\n              return;\n            }\n            if (uVar8 == 2) {\n              uVar5 = *(undefined4 *)(iVar6 + 0x114);\n              *(undefined4 *)(iVar6 + 0x114) = 0;\n              FUN_0019a610();\n              *(undefined4 *)(iVar6 + 0x114) = uVar5;\n              iVar7 = *(int *)(iVar6 + 0x100);\n              if ((uVar13 & 0x400000000) == 0) {\n                puVar12 = (undefined1 *)(unaff_EDI + 0xca6ca);\n                uVar11 = 0x3a;\n                while( true ) {\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  puVar12 = puVar12 + 1;\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if (puVar12 == (undefined1 *)(unaff_EDI + 0xca6cc)) break;\n                  uVar11 = *puVar12;\n                  iVar7 = iVar10;\n                }\n              }\n              else {\n                iVar10 = iVar7 + 1;\n                if (iVar7 == 0xff) {\n                  *(undefined1 *)(iVar6 + 0xff) = 0;\n                  (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                  *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                  iVar10 = 1;\n                  iVar7 = 0;\n                }\n                *(int *)(iVar6 + 0x100) = iVar10;\n                *(undefined1 *)(iVar6 + iVar7) = 0x2e;\n                *(undefined1 *)(iVar6 + 0x104) = 0x2e;\n              }\n              local_44 = *(uint **)(piVar4[1] + 0xc);\n              uVar8 = *local_44;\n              if (uVar8 == 0x46) {\n                uVar11 = 0x7b;\n                puVar12 = (undefined1 *)(unaff_EDI + 0xca6bc);\n                iVar7 = *(int *)(iVar6 + 0x100);\n                while( true ) {\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if (puVar12 == (undefined1 *)(unaff_EDI + 0xca6c8)) break;\n                  uVar11 = *puVar12;\n                  puVar12 = puVar12 + 1;\n                  iVar7 = iVar10;\n                }\n                __s = local_35;\n                sprintf(__s,(char *)(unaff_EDI + 0xc8c52),local_44[3] + 1);\n                sVar9 = strlen(__s);\n                iVar7 = *(int *)(iVar6 + 0x100);\n                if (sVar9 != 0) {\n                  pcVar1 = __s + sVar9;\n                  iVar10 = iVar7;\n                  do {\n                    cVar2 = *__s;\n                    if (iVar10 == 0xff) {\n                      *(undefined1 *)(iVar6 + 0xff) = 0;\n                      (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                      *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                      iVar7 = 1;\n                      iVar10 = 0;\n                    }\n                    else {\n                      iVar7 = iVar10 + 1;\n                    }\n                    __s = __s + 1;\n                    *(int *)(iVar6 + 0x100) = iVar7;\n                    *(char *)(iVar6 + iVar10) = cVar2;\n                    *(char *)(iVar6 + 0x104) = cVar2;\n                    iVar10 = iVar7;\n                  } while (pcVar1 != __s);\n                }\n                puVar12 = (undefined1 *)(unaff_EDI + 0xca6c9);\n                uVar11 = 0x7d;\n                do {\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  puVar12 = puVar12 + 1;\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if ((undefined1 *)(unaff_EDI + 0xca6cc) == puVar12) goto LAB_001a03d9;\n                  uVar11 = *puVar12;\n                  iVar7 = iVar10;\n                } while( true );\n              }\n              do {\n                if (uVar8 != 0x4c) {\n                  if (uVar8 < 0x4d) {\n                    if (4 < uVar8 - 0x1c) {\nLAB_001a036d:\n                      FUN_0019a610();\n                      *(undefined4 *)(iVar6 + 0x110) = uVar3;\n                      return;\n                    }\n                  }\n                  else if (1 < uVar8 - 0x4e) goto LAB_001a036d;\n                }\nLAB_001a03d9:\n                local_44 = (uint *)local_44[2];\n                uVar8 = *local_44;\n              } while( true );\n            }\n            FUN_0019f570();\n            *(undefined4 *)(iVar6 + 0x110) = uVar3;\n          }\n        }" (if "if") (parenthesized_expression "(uVar8 != 0x4c)" (( "(") (binary_expression "uVar8 != 0x4c" (identifier "uVar8") (!= "!=") (number_literal "0x4c")) () ")")) (compound_statement "{\n          if (uVar8 < 0x4d) {\n            if (4 < uVar8 - 0x1c) goto LAB_001a0258;\n          }\n          else if (1 < uVar8 - 0x4e) {\nLAB_001a0258:\n            uVar3 = *(undefined4 *)(iVar6 + 0x110);\n            piVar4[2] = 1;\n            *(int *)(iVar6 + 0x110) = piVar4[3];\n            if (uVar8 == 0x29) {\n              FUN_0019fef0(*piVar4);\n              *(undefined4 *)(iVar6 + 0x110) = uVar3;\n              return;\n            }\n            if (uVar8 == 0x2a) {\n              FUN_001a0610(*piVar4);\n              *(undefined4 *)(iVar6 + 0x110) = uVar3;\n              return;\n            }\n            if (uVar8 == 2) {\n              uVar5 = *(undefined4 *)(iVar6 + 0x114);\n              *(undefined4 *)(iVar6 + 0x114) = 0;\n              FUN_0019a610();\n              *(undefined4 *)(iVar6 + 0x114) = uVar5;\n              iVar7 = *(int *)(iVar6 + 0x100);\n              if ((uVar13 & 0x400000000) == 0) {\n                puVar12 = (undefined1 *)(unaff_EDI + 0xca6ca);\n                uVar11 = 0x3a;\n                while( true ) {\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  puVar12 = puVar12 + 1;\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if (puVar12 == (undefined1 *)(unaff_EDI + 0xca6cc)) break;\n                  uVar11 = *puVar12;\n                  iVar7 = iVar10;\n                }\n              }\n              else {\n                iVar10 = iVar7 + 1;\n                if (iVar7 == 0xff) {\n                  *(undefined1 *)(iVar6 + 0xff) = 0;\n                  (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                  *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                  iVar10 = 1;\n                  iVar7 = 0;\n                }\n                *(int *)(iVar6 + 0x100) = iVar10;\n                *(undefined1 *)(iVar6 + iVar7) = 0x2e;\n                *(undefined1 *)(iVar6 + 0x104) = 0x2e;\n              }\n              local_44 = *(uint **)(piVar4[1] + 0xc);\n              uVar8 = *local_44;\n              if (uVar8 == 0x46) {\n                uVar11 = 0x7b;\n                puVar12 = (undefined1 *)(unaff_EDI + 0xca6bc);\n                iVar7 = *(int *)(iVar6 + 0x100);\n                while( true ) {\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if (puVar12 == (undefined1 *)(unaff_EDI + 0xca6c8)) break;\n                  uVar11 = *puVar12;\n                  puVar12 = puVar12 + 1;\n                  iVar7 = iVar10;\n                }\n                __s = local_35;\n                sprintf(__s,(char *)(unaff_EDI + 0xc8c52),local_44[3] + 1);\n                sVar9 = strlen(__s);\n                iVar7 = *(int *)(iVar6 + 0x100);\n                if (sVar9 != 0) {\n                  pcVar1 = __s + sVar9;\n                  iVar10 = iVar7;\n                  do {\n                    cVar2 = *__s;\n                    if (iVar10 == 0xff) {\n                      *(undefined1 *)(iVar6 + 0xff) = 0;\n                      (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                      *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                      iVar7 = 1;\n                      iVar10 = 0;\n                    }\n                    else {\n                      iVar7 = iVar10 + 1;\n                    }\n                    __s = __s + 1;\n                    *(int *)(iVar6 + 0x100) = iVar7;\n                    *(char *)(iVar6 + iVar10) = cVar2;\n                    *(char *)(iVar6 + 0x104) = cVar2;\n                    iVar10 = iVar7;\n                  } while (pcVar1 != __s);\n                }\n                puVar12 = (undefined1 *)(unaff_EDI + 0xca6c9);\n                uVar11 = 0x7d;\n                do {\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  puVar12 = puVar12 + 1;\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if ((undefined1 *)(unaff_EDI + 0xca6cc) == puVar12) goto LAB_001a03d9;\n                  uVar11 = *puVar12;\n                  iVar7 = iVar10;\n                } while( true );\n              }\n              do {\n                if (uVar8 != 0x4c) {\n                  if (uVar8 < 0x4d) {\n                    if (4 < uVar8 - 0x1c) {\nLAB_001a036d:\n                      FUN_0019a610();\n                      *(undefined4 *)(iVar6 + 0x110) = uVar3;\n                      return;\n                    }\n                  }\n                  else if (1 < uVar8 - 0x4e) goto LAB_001a036d;\n                }\nLAB_001a03d9:\n                local_44 = (uint *)local_44[2];\n                uVar8 = *local_44;\n              } while( true );\n            }\n            FUN_0019f570();\n            *(undefined4 *)(iVar6 + 0x110) = uVar3;\n          }\n        }" ({ "{") (if_statement "if (uVar8 < 0x4d) {\n            if (4 < uVar8 - 0x1c) goto LAB_001a0258;\n          }\n          else if (1 < uVar8 - 0x4e) {\nLAB_001a0258:\n            uVar3 = *(undefined4 *)(iVar6 + 0x110);\n            piVar4[2] = 1;\n            *(int *)(iVar6 + 0x110) = piVar4[3];\n            if (uVar8 == 0x29) {\n              FUN_0019fef0(*piVar4);\n              *(undefined4 *)(iVar6 + 0x110) = uVar3;\n              return;\n            }\n            if (uVar8 == 0x2a) {\n              FUN_001a0610(*piVar4);\n              *(undefined4 *)(iVar6 + 0x110) = uVar3;\n              return;\n            }\n            if (uVar8 == 2) {\n              uVar5 = *(undefined4 *)(iVar6 + 0x114);\n              *(undefined4 *)(iVar6 + 0x114) = 0;\n              FUN_0019a610();\n              *(undefined4 *)(iVar6 + 0x114) = uVar5;\n              iVar7 = *(int *)(iVar6 + 0x100);\n              if ((uVar13 & 0x400000000) == 0) {\n                puVar12 = (undefined1 *)(unaff_EDI + 0xca6ca);\n                uVar11 = 0x3a;\n                while( true ) {\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  puVar12 = puVar12 + 1;\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if (puVar12 == (undefined1 *)(unaff_EDI + 0xca6cc)) break;\n                  uVar11 = *puVar12;\n                  iVar7 = iVar10;\n                }\n              }\n              else {\n                iVar10 = iVar7 + 1;\n                if (iVar7 == 0xff) {\n                  *(undefined1 *)(iVar6 + 0xff) = 0;\n                  (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                  *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                  iVar10 = 1;\n                  iVar7 = 0;\n                }\n                *(int *)(iVar6 + 0x100) = iVar10;\n                *(undefined1 *)(iVar6 + iVar7) = 0x2e;\n                *(undefined1 *)(iVar6 + 0x104) = 0x2e;\n              }\n              local_44 = *(uint **)(piVar4[1] + 0xc);\n              uVar8 = *local_44;\n              if (uVar8 == 0x46) {\n                uVar11 = 0x7b;\n                puVar12 = (undefined1 *)(unaff_EDI + 0xca6bc);\n                iVar7 = *(int *)(iVar6 + 0x100);\n                while( true ) {\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if (puVar12 == (undefined1 *)(unaff_EDI + 0xca6c8)) break;\n                  uVar11 = *puVar12;\n                  puVar12 = puVar12 + 1;\n                  iVar7 = iVar10;\n                }\n                __s = local_35;\n                sprintf(__s,(char *)(unaff_EDI + 0xc8c52),local_44[3] + 1);\n                sVar9 = strlen(__s);\n                iVar7 = *(int *)(iVar6 + 0x100);\n                if (sVar9 != 0) {\n                  pcVar1 = __s + sVar9;\n                  iVar10 = iVar7;\n                  do {\n                    cVar2 = *__s;\n                    if (iVar10 == 0xff) {\n                      *(undefined1 *)(iVar6 + 0xff) = 0;\n                      (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                      *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                      iVar7 = 1;\n                      iVar10 = 0;\n                    }\n                    else {\n                      iVar7 = iVar10 + 1;\n                    }\n                    __s = __s + 1;\n                    *(int *)(iVar6 + 0x100) = iVar7;\n                    *(char *)(iVar6 + iVar10) = cVar2;\n                    *(char *)(iVar6 + 0x104) = cVar2;\n                    iVar10 = iVar7;\n                  } while (pcVar1 != __s);\n                }\n                puVar12 = (undefined1 *)(unaff_EDI + 0xca6c9);\n                uVar11 = 0x7d;\n                do {\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  puVar12 = puVar12 + 1;\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if ((undefined1 *)(unaff_EDI + 0xca6cc) == puVar12) goto LAB_001a03d9;\n                  uVar11 = *puVar12;\n                  iVar7 = iVar10;\n                } while( true );\n              }\n              do {\n                if (uVar8 != 0x4c) {\n                  if (uVar8 < 0x4d) {\n                    if (4 < uVar8 - 0x1c) {\nLAB_001a036d:\n                      FUN_0019a610();\n                      *(undefined4 *)(iVar6 + 0x110) = uVar3;\n                      return;\n                    }\n                  }\n                  else if (1 < uVar8 - 0x4e) goto LAB_001a036d;\n                }\nLAB_001a03d9:\n                local_44 = (uint *)local_44[2];\n                uVar8 = *local_44;\n              } while( true );\n            }\n            FUN_0019f570();\n            *(undefined4 *)(iVar6 + 0x110) = uVar3;\n          }" (if "if") (parenthesized_expression "(uVar8 < 0x4d)" (( "(") (binary_expression "uVar8 < 0x4d" (identifier "uVar8") (< "<") (number_literal "0x4d")) () ")")) (compound_statement "{\n            if (4 < uVar8 - 0x1c) goto LAB_001a0258;\n          }" ({ "{") (if_statement "if (4 < uVar8 - 0x1c) goto LAB_001a0258;" (if "if") (parenthesized_expression "(4 < uVar8 - 0x1c)" (( "(") (binary_expression "4 < uVar8 - 0x1c" (number_literal "4") (< "<") (binary_expression "uVar8 - 0x1c" (identifier "uVar8") (- "-") (number_literal "0x1c"))) () ")")) (goto_statement "goto LAB_001a0258;" (goto "goto") (statement_identifier "LAB_001a0258") (; ";"))) (} "}")) (else_clause "else if (1 < uVar8 - 0x4e) {\nLAB_001a0258:\n            uVar3 = *(undefined4 *)(iVar6 + 0x110);\n            piVar4[2] = 1;\n            *(int *)(iVar6 + 0x110) = piVar4[3];\n            if (uVar8 == 0x29) {\n              FUN_0019fef0(*piVar4);\n              *(undefined4 *)(iVar6 + 0x110) = uVar3;\n              return;\n            }\n            if (uVar8 == 0x2a) {\n              FUN_001a0610(*piVar4);\n              *(undefined4 *)(iVar6 + 0x110) = uVar3;\n              return;\n            }\n            if (uVar8 == 2) {\n              uVar5 = *(undefined4 *)(iVar6 + 0x114);\n              *(undefined4 *)(iVar6 + 0x114) = 0;\n              FUN_0019a610();\n              *(undefined4 *)(iVar6 + 0x114) = uVar5;\n              iVar7 = *(int *)(iVar6 + 0x100);\n              if ((uVar13 & 0x400000000) == 0) {\n                puVar12 = (undefined1 *)(unaff_EDI + 0xca6ca);\n                uVar11 = 0x3a;\n                while( true ) {\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  puVar12 = puVar12 + 1;\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if (puVar12 == (undefined1 *)(unaff_EDI + 0xca6cc)) break;\n                  uVar11 = *puVar12;\n                  iVar7 = iVar10;\n                }\n              }\n              else {\n                iVar10 = iVar7 + 1;\n                if (iVar7 == 0xff) {\n                  *(undefined1 *)(iVar6 + 0xff) = 0;\n                  (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                  *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                  iVar10 = 1;\n                  iVar7 = 0;\n                }\n                *(int *)(iVar6 + 0x100) = iVar10;\n                *(undefined1 *)(iVar6 + iVar7) = 0x2e;\n                *(undefined1 *)(iVar6 + 0x104) = 0x2e;\n              }\n              local_44 = *(uint **)(piVar4[1] + 0xc);\n              uVar8 = *local_44;\n              if (uVar8 == 0x46) {\n                uVar11 = 0x7b;\n                puVar12 = (undefined1 *)(unaff_EDI + 0xca6bc);\n                iVar7 = *(int *)(iVar6 + 0x100);\n                while( true ) {\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if (puVar12 == (undefined1 *)(unaff_EDI + 0xca6c8)) break;\n                  uVar11 = *puVar12;\n                  puVar12 = puVar12 + 1;\n                  iVar7 = iVar10;\n                }\n                __s = local_35;\n                sprintf(__s,(char *)(unaff_EDI + 0xc8c52),local_44[3] + 1);\n                sVar9 = strlen(__s);\n                iVar7 = *(int *)(iVar6 + 0x100);\n                if (sVar9 != 0) {\n                  pcVar1 = __s + sVar9;\n                  iVar10 = iVar7;\n                  do {\n                    cVar2 = *__s;\n                    if (iVar10 == 0xff) {\n                      *(undefined1 *)(iVar6 + 0xff) = 0;\n                      (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                      *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                      iVar7 = 1;\n                      iVar10 = 0;\n                    }\n                    else {\n                      iVar7 = iVar10 + 1;\n                    }\n                    __s = __s + 1;\n                    *(int *)(iVar6 + 0x100) = iVar7;\n                    *(char *)(iVar6 + iVar10) = cVar2;\n                    *(char *)(iVar6 + 0x104) = cVar2;\n                    iVar10 = iVar7;\n                  } while (pcVar1 != __s);\n                }\n                puVar12 = (undefined1 *)(unaff_EDI + 0xca6c9);\n                uVar11 = 0x7d;\n                do {\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  puVar12 = puVar12 + 1;\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if ((undefined1 *)(unaff_EDI + 0xca6cc) == puVar12) goto LAB_001a03d9;\n                  uVar11 = *puVar12;\n                  iVar7 = iVar10;\n                } while( true );\n              }\n              do {\n                if (uVar8 != 0x4c) {\n                  if (uVar8 < 0x4d) {\n                    if (4 < uVar8 - 0x1c) {\nLAB_001a036d:\n                      FUN_0019a610();\n                      *(undefined4 *)(iVar6 + 0x110) = uVar3;\n                      return;\n                    }\n                  }\n                  else if (1 < uVar8 - 0x4e) goto LAB_001a036d;\n                }\nLAB_001a03d9:\n                local_44 = (uint *)local_44[2];\n                uVar8 = *local_44;\n              } while( true );\n            }\n            FUN_0019f570();\n            *(undefined4 *)(iVar6 + 0x110) = uVar3;\n          }" (else "else") (if_statement "if (1 < uVar8 - 0x4e) {\nLAB_001a0258:\n            uVar3 = *(undefined4 *)(iVar6 + 0x110);\n            piVar4[2] = 1;\n            *(int *)(iVar6 + 0x110) = piVar4[3];\n            if (uVar8 == 0x29) {\n              FUN_0019fef0(*piVar4);\n              *(undefined4 *)(iVar6 + 0x110) = uVar3;\n              return;\n            }\n            if (uVar8 == 0x2a) {\n              FUN_001a0610(*piVar4);\n              *(undefined4 *)(iVar6 + 0x110) = uVar3;\n              return;\n            }\n            if (uVar8 == 2) {\n              uVar5 = *(undefined4 *)(iVar6 + 0x114);\n              *(undefined4 *)(iVar6 + 0x114) = 0;\n              FUN_0019a610();\n              *(undefined4 *)(iVar6 + 0x114) = uVar5;\n              iVar7 = *(int *)(iVar6 + 0x100);\n              if ((uVar13 & 0x400000000) == 0) {\n                puVar12 = (undefined1 *)(unaff_EDI + 0xca6ca);\n                uVar11 = 0x3a;\n                while( true ) {\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  puVar12 = puVar12 + 1;\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if (puVar12 == (undefined1 *)(unaff_EDI + 0xca6cc)) break;\n                  uVar11 = *puVar12;\n                  iVar7 = iVar10;\n                }\n              }\n              else {\n                iVar10 = iVar7 + 1;\n                if (iVar7 == 0xff) {\n                  *(undefined1 *)(iVar6 + 0xff) = 0;\n                  (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                  *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                  iVar10 = 1;\n                  iVar7 = 0;\n                }\n                *(int *)(iVar6 + 0x100) = iVar10;\n                *(undefined1 *)(iVar6 + iVar7) = 0x2e;\n                *(undefined1 *)(iVar6 + 0x104) = 0x2e;\n              }\n              local_44 = *(uint **)(piVar4[1] + 0xc);\n              uVar8 = *local_44;\n              if (uVar8 == 0x46) {\n                uVar11 = 0x7b;\n                puVar12 = (undefined1 *)(unaff_EDI + 0xca6bc);\n                iVar7 = *(int *)(iVar6 + 0x100);\n                while( true ) {\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if (puVar12 == (undefined1 *)(unaff_EDI + 0xca6c8)) break;\n                  uVar11 = *puVar12;\n                  puVar12 = puVar12 + 1;\n                  iVar7 = iVar10;\n                }\n                __s = local_35;\n                sprintf(__s,(char *)(unaff_EDI + 0xc8c52),local_44[3] + 1);\n                sVar9 = strlen(__s);\n                iVar7 = *(int *)(iVar6 + 0x100);\n                if (sVar9 != 0) {\n                  pcVar1 = __s + sVar9;\n                  iVar10 = iVar7;\n                  do {\n                    cVar2 = *__s;\n                    if (iVar10 == 0xff) {\n                      *(undefined1 *)(iVar6 + 0xff) = 0;\n                      (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                      *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                      iVar7 = 1;\n                      iVar10 = 0;\n                    }\n                    else {\n                      iVar7 = iVar10 + 1;\n                    }\n                    __s = __s + 1;\n                    *(int *)(iVar6 + 0x100) = iVar7;\n                    *(char *)(iVar6 + iVar10) = cVar2;\n                    *(char *)(iVar6 + 0x104) = cVar2;\n                    iVar10 = iVar7;\n                  } while (pcVar1 != __s);\n                }\n                puVar12 = (undefined1 *)(unaff_EDI + 0xca6c9);\n                uVar11 = 0x7d;\n                do {\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  puVar12 = puVar12 + 1;\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if ((undefined1 *)(unaff_EDI + 0xca6cc) == puVar12) goto LAB_001a03d9;\n                  uVar11 = *puVar12;\n                  iVar7 = iVar10;\n                } while( true );\n              }\n              do {\n                if (uVar8 != 0x4c) {\n                  if (uVar8 < 0x4d) {\n                    if (4 < uVar8 - 0x1c) {\nLAB_001a036d:\n                      FUN_0019a610();\n                      *(undefined4 *)(iVar6 + 0x110) = uVar3;\n                      return;\n                    }\n                  }\n                  else if (1 < uVar8 - 0x4e) goto LAB_001a036d;\n                }\nLAB_001a03d9:\n                local_44 = (uint *)local_44[2];\n                uVar8 = *local_44;\n              } while( true );\n            }\n            FUN_0019f570();\n            *(undefined4 *)(iVar6 + 0x110) = uVar3;\n          }" (if "if") (parenthesized_expression "(1 < uVar8 - 0x4e)" (( "(") (binary_expression "1 < uVar8 - 0x4e" (number_literal "1") (< "<") (binary_expression "uVar8 - 0x4e" (identifier "uVar8") (- "-") (number_literal "0x4e"))) () ")")) (compound_statement "{\nLAB_001a0258:\n            uVar3 = *(undefined4 *)(iVar6 + 0x110);\n            piVar4[2] = 1;\n            *(int *)(iVar6 + 0x110) = piVar4[3];\n            if (uVar8 == 0x29) {\n              FUN_0019fef0(*piVar4);\n              *(undefined4 *)(iVar6 + 0x110) = uVar3;\n              return;\n            }\n            if (uVar8 == 0x2a) {\n              FUN_001a0610(*piVar4);\n              *(undefined4 *)(iVar6 + 0x110) = uVar3;\n              return;\n            }\n            if (uVar8 == 2) {\n              uVar5 = *(undefined4 *)(iVar6 + 0x114);\n              *(undefined4 *)(iVar6 + 0x114) = 0;\n              FUN_0019a610();\n              *(undefined4 *)(iVar6 + 0x114) = uVar5;\n              iVar7 = *(int *)(iVar6 + 0x100);\n              if ((uVar13 & 0x400000000) == 0) {\n                puVar12 = (undefined1 *)(unaff_EDI + 0xca6ca);\n                uVar11 = 0x3a;\n                while( true ) {\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  puVar12 = puVar12 + 1;\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if (puVar12 == (undefined1 *)(unaff_EDI + 0xca6cc)) break;\n                  uVar11 = *puVar12;\n                  iVar7 = iVar10;\n                }\n              }\n              else {\n                iVar10 = iVar7 + 1;\n                if (iVar7 == 0xff) {\n                  *(undefined1 *)(iVar6 + 0xff) = 0;\n                  (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                  *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                  iVar10 = 1;\n                  iVar7 = 0;\n                }\n                *(int *)(iVar6 + 0x100) = iVar10;\n                *(undefined1 *)(iVar6 + iVar7) = 0x2e;\n                *(undefined1 *)(iVar6 + 0x104) = 0x2e;\n              }\n              local_44 = *(uint **)(piVar4[1] + 0xc);\n              uVar8 = *local_44;\n              if (uVar8 == 0x46) {\n                uVar11 = 0x7b;\n                puVar12 = (undefined1 *)(unaff_EDI + 0xca6bc);\n                iVar7 = *(int *)(iVar6 + 0x100);\n                while( true ) {\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if (puVar12 == (undefined1 *)(unaff_EDI + 0xca6c8)) break;\n                  uVar11 = *puVar12;\n                  puVar12 = puVar12 + 1;\n                  iVar7 = iVar10;\n                }\n                __s = local_35;\n                sprintf(__s,(char *)(unaff_EDI + 0xc8c52),local_44[3] + 1);\n                sVar9 = strlen(__s);\n                iVar7 = *(int *)(iVar6 + 0x100);\n                if (sVar9 != 0) {\n                  pcVar1 = __s + sVar9;\n                  iVar10 = iVar7;\n                  do {\n                    cVar2 = *__s;\n                    if (iVar10 == 0xff) {\n                      *(undefined1 *)(iVar6 + 0xff) = 0;\n                      (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                      *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                      iVar7 = 1;\n                      iVar10 = 0;\n                    }\n                    else {\n                      iVar7 = iVar10 + 1;\n                    }\n                    __s = __s + 1;\n                    *(int *)(iVar6 + 0x100) = iVar7;\n                    *(char *)(iVar6 + iVar10) = cVar2;\n                    *(char *)(iVar6 + 0x104) = cVar2;\n                    iVar10 = iVar7;\n                  } while (pcVar1 != __s);\n                }\n                puVar12 = (undefined1 *)(unaff_EDI + 0xca6c9);\n                uVar11 = 0x7d;\n                do {\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  puVar12 = puVar12 + 1;\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if ((undefined1 *)(unaff_EDI + 0xca6cc) == puVar12) goto LAB_001a03d9;\n                  uVar11 = *puVar12;\n                  iVar7 = iVar10;\n                } while( true );\n              }\n              do {\n                if (uVar8 != 0x4c) {\n                  if (uVar8 < 0x4d) {\n                    if (4 < uVar8 - 0x1c) {\nLAB_001a036d:\n                      FUN_0019a610();\n                      *(undefined4 *)(iVar6 + 0x110) = uVar3;\n                      return;\n                    }\n                  }\n                  else if (1 < uVar8 - 0x4e) goto LAB_001a036d;\n                }\nLAB_001a03d9:\n                local_44 = (uint *)local_44[2];\n                uVar8 = *local_44;\n              } while( true );\n            }\n            FUN_0019f570();\n            *(undefined4 *)(iVar6 + 0x110) = uVar3;\n          }" ({ "{") (labeled_statement "LAB_001a0258:\n            uVar3 = *(undefined4 *)(iVar6 + 0x110);" (statement_identifier "LAB_001a0258") (: ":") (expression_statement "uVar3 = *(undefined4 *)(iVar6 + 0x110);" (assignment_expression "uVar3 = *(undefined4 *)(iVar6 + 0x110)" (identifier "uVar3") (= "=") (pointer_expression "*(undefined4 *)(iVar6 + 0x110)" (* "*") (cast_expression "(undefined4 *)(iVar6 + 0x110)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x110)" (( "(") (binary_expression "iVar6 + 0x110" (identifier "iVar6") (+ "+") (number_literal "0x110")) () ")"))))) (; ";"))) (expression_statement "piVar4[2] = 1;" (assignment_expression "piVar4[2] = 1" (subscript_expression "piVar4[2]" (identifier "piVar4") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "1")) (; ";")) (expression_statement "*(int *)(iVar6 + 0x110) = piVar4[3];" (assignment_expression "*(int *)(iVar6 + 0x110) = piVar4[3]" (pointer_expression "*(int *)(iVar6 + 0x110)" (* "*") (cast_expression "(int *)(iVar6 + 0x110)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x110)" (( "(") (binary_expression "iVar6 + 0x110" (identifier "iVar6") (+ "+") (number_literal "0x110")) () ")")))) (= "=") (subscript_expression "piVar4[3]" (identifier "piVar4") ([ "[") (number_literal "3") (] "]"))) (; ";")) (if_statement "if (uVar8 == 0x29) {\n              FUN_0019fef0(*piVar4);\n              *(undefined4 *)(iVar6 + 0x110) = uVar3;\n              return;\n            }" (if "if") (parenthesized_expression "(uVar8 == 0x29)" (( "(") (binary_expression "uVar8 == 0x29" (identifier "uVar8") (== "==") (number_literal "0x29")) () ")")) (compound_statement "{\n              FUN_0019fef0(*piVar4);\n              *(undefined4 *)(iVar6 + 0x110) = uVar3;\n              return;\n            }" ({ "{") (expression_statement "FUN_0019fef0(*piVar4);" (call_expression "FUN_0019fef0(*piVar4)" (identifier "FUN_0019fef0") (argument_list "(*piVar4)" (( "(") (pointer_expression "*piVar4" (* "*") (identifier "piVar4")) () ")"))) (; ";")) (expression_statement "*(undefined4 *)(iVar6 + 0x110) = uVar3;" (assignment_expression "*(undefined4 *)(iVar6 + 0x110) = uVar3" (pointer_expression "*(undefined4 *)(iVar6 + 0x110)" (* "*") (cast_expression "(undefined4 *)(iVar6 + 0x110)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x110)" (( "(") (binary_expression "iVar6 + 0x110" (identifier "iVar6") (+ "+") (number_literal "0x110")) () ")")))) (= "=") (identifier "uVar3")) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (if_statement "if (uVar8 == 0x2a) {\n              FUN_001a0610(*piVar4);\n              *(undefined4 *)(iVar6 + 0x110) = uVar3;\n              return;\n            }" (if "if") (parenthesized_expression "(uVar8 == 0x2a)" (( "(") (binary_expression "uVar8 == 0x2a" (identifier "uVar8") (== "==") (number_literal "0x2a")) () ")")) (compound_statement "{\n              FUN_001a0610(*piVar4);\n              *(undefined4 *)(iVar6 + 0x110) = uVar3;\n              return;\n            }" ({ "{") (expression_statement "FUN_001a0610(*piVar4);" (call_expression "FUN_001a0610(*piVar4)" (identifier "FUN_001a0610") (argument_list "(*piVar4)" (( "(") (pointer_expression "*piVar4" (* "*") (identifier "piVar4")) () ")"))) (; ";")) (expression_statement "*(undefined4 *)(iVar6 + 0x110) = uVar3;" (assignment_expression "*(undefined4 *)(iVar6 + 0x110) = uVar3" (pointer_expression "*(undefined4 *)(iVar6 + 0x110)" (* "*") (cast_expression "(undefined4 *)(iVar6 + 0x110)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x110)" (( "(") (binary_expression "iVar6 + 0x110" (identifier "iVar6") (+ "+") (number_literal "0x110")) () ")")))) (= "=") (identifier "uVar3")) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (if_statement "if (uVar8 == 2) {\n              uVar5 = *(undefined4 *)(iVar6 + 0x114);\n              *(undefined4 *)(iVar6 + 0x114) = 0;\n              FUN_0019a610();\n              *(undefined4 *)(iVar6 + 0x114) = uVar5;\n              iVar7 = *(int *)(iVar6 + 0x100);\n              if ((uVar13 & 0x400000000) == 0) {\n                puVar12 = (undefined1 *)(unaff_EDI + 0xca6ca);\n                uVar11 = 0x3a;\n                while( true ) {\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  puVar12 = puVar12 + 1;\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if (puVar12 == (undefined1 *)(unaff_EDI + 0xca6cc)) break;\n                  uVar11 = *puVar12;\n                  iVar7 = iVar10;\n                }\n              }\n              else {\n                iVar10 = iVar7 + 1;\n                if (iVar7 == 0xff) {\n                  *(undefined1 *)(iVar6 + 0xff) = 0;\n                  (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                  *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                  iVar10 = 1;\n                  iVar7 = 0;\n                }\n                *(int *)(iVar6 + 0x100) = iVar10;\n                *(undefined1 *)(iVar6 + iVar7) = 0x2e;\n                *(undefined1 *)(iVar6 + 0x104) = 0x2e;\n              }\n              local_44 = *(uint **)(piVar4[1] + 0xc);\n              uVar8 = *local_44;\n              if (uVar8 == 0x46) {\n                uVar11 = 0x7b;\n                puVar12 = (undefined1 *)(unaff_EDI + 0xca6bc);\n                iVar7 = *(int *)(iVar6 + 0x100);\n                while( true ) {\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if (puVar12 == (undefined1 *)(unaff_EDI + 0xca6c8)) break;\n                  uVar11 = *puVar12;\n                  puVar12 = puVar12 + 1;\n                  iVar7 = iVar10;\n                }\n                __s = local_35;\n                sprintf(__s,(char *)(unaff_EDI + 0xc8c52),local_44[3] + 1);\n                sVar9 = strlen(__s);\n                iVar7 = *(int *)(iVar6 + 0x100);\n                if (sVar9 != 0) {\n                  pcVar1 = __s + sVar9;\n                  iVar10 = iVar7;\n                  do {\n                    cVar2 = *__s;\n                    if (iVar10 == 0xff) {\n                      *(undefined1 *)(iVar6 + 0xff) = 0;\n                      (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                      *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                      iVar7 = 1;\n                      iVar10 = 0;\n                    }\n                    else {\n                      iVar7 = iVar10 + 1;\n                    }\n                    __s = __s + 1;\n                    *(int *)(iVar6 + 0x100) = iVar7;\n                    *(char *)(iVar6 + iVar10) = cVar2;\n                    *(char *)(iVar6 + 0x104) = cVar2;\n                    iVar10 = iVar7;\n                  } while (pcVar1 != __s);\n                }\n                puVar12 = (undefined1 *)(unaff_EDI + 0xca6c9);\n                uVar11 = 0x7d;\n                do {\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  puVar12 = puVar12 + 1;\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if ((undefined1 *)(unaff_EDI + 0xca6cc) == puVar12) goto LAB_001a03d9;\n                  uVar11 = *puVar12;\n                  iVar7 = iVar10;\n                } while( true );\n              }\n              do {\n                if (uVar8 != 0x4c) {\n                  if (uVar8 < 0x4d) {\n                    if (4 < uVar8 - 0x1c) {\nLAB_001a036d:\n                      FUN_0019a610();\n                      *(undefined4 *)(iVar6 + 0x110) = uVar3;\n                      return;\n                    }\n                  }\n                  else if (1 < uVar8 - 0x4e) goto LAB_001a036d;\n                }\nLAB_001a03d9:\n                local_44 = (uint *)local_44[2];\n                uVar8 = *local_44;\n              } while( true );\n            }" (if "if") (parenthesized_expression "(uVar8 == 2)" (( "(") (binary_expression "uVar8 == 2" (identifier "uVar8") (== "==") (number_literal "2")) () ")")) (compound_statement "{\n              uVar5 = *(undefined4 *)(iVar6 + 0x114);\n              *(undefined4 *)(iVar6 + 0x114) = 0;\n              FUN_0019a610();\n              *(undefined4 *)(iVar6 + 0x114) = uVar5;\n              iVar7 = *(int *)(iVar6 + 0x100);\n              if ((uVar13 & 0x400000000) == 0) {\n                puVar12 = (undefined1 *)(unaff_EDI + 0xca6ca);\n                uVar11 = 0x3a;\n                while( true ) {\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  puVar12 = puVar12 + 1;\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if (puVar12 == (undefined1 *)(unaff_EDI + 0xca6cc)) break;\n                  uVar11 = *puVar12;\n                  iVar7 = iVar10;\n                }\n              }\n              else {\n                iVar10 = iVar7 + 1;\n                if (iVar7 == 0xff) {\n                  *(undefined1 *)(iVar6 + 0xff) = 0;\n                  (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                  *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                  iVar10 = 1;\n                  iVar7 = 0;\n                }\n                *(int *)(iVar6 + 0x100) = iVar10;\n                *(undefined1 *)(iVar6 + iVar7) = 0x2e;\n                *(undefined1 *)(iVar6 + 0x104) = 0x2e;\n              }\n              local_44 = *(uint **)(piVar4[1] + 0xc);\n              uVar8 = *local_44;\n              if (uVar8 == 0x46) {\n                uVar11 = 0x7b;\n                puVar12 = (undefined1 *)(unaff_EDI + 0xca6bc);\n                iVar7 = *(int *)(iVar6 + 0x100);\n                while( true ) {\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if (puVar12 == (undefined1 *)(unaff_EDI + 0xca6c8)) break;\n                  uVar11 = *puVar12;\n                  puVar12 = puVar12 + 1;\n                  iVar7 = iVar10;\n                }\n                __s = local_35;\n                sprintf(__s,(char *)(unaff_EDI + 0xc8c52),local_44[3] + 1);\n                sVar9 = strlen(__s);\n                iVar7 = *(int *)(iVar6 + 0x100);\n                if (sVar9 != 0) {\n                  pcVar1 = __s + sVar9;\n                  iVar10 = iVar7;\n                  do {\n                    cVar2 = *__s;\n                    if (iVar10 == 0xff) {\n                      *(undefined1 *)(iVar6 + 0xff) = 0;\n                      (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                      *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                      iVar7 = 1;\n                      iVar10 = 0;\n                    }\n                    else {\n                      iVar7 = iVar10 + 1;\n                    }\n                    __s = __s + 1;\n                    *(int *)(iVar6 + 0x100) = iVar7;\n                    *(char *)(iVar6 + iVar10) = cVar2;\n                    *(char *)(iVar6 + 0x104) = cVar2;\n                    iVar10 = iVar7;\n                  } while (pcVar1 != __s);\n                }\n                puVar12 = (undefined1 *)(unaff_EDI + 0xca6c9);\n                uVar11 = 0x7d;\n                do {\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  puVar12 = puVar12 + 1;\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if ((undefined1 *)(unaff_EDI + 0xca6cc) == puVar12) goto LAB_001a03d9;\n                  uVar11 = *puVar12;\n                  iVar7 = iVar10;\n                } while( true );\n              }\n              do {\n                if (uVar8 != 0x4c) {\n                  if (uVar8 < 0x4d) {\n                    if (4 < uVar8 - 0x1c) {\nLAB_001a036d:\n                      FUN_0019a610();\n                      *(undefined4 *)(iVar6 + 0x110) = uVar3;\n                      return;\n                    }\n                  }\n                  else if (1 < uVar8 - 0x4e) goto LAB_001a036d;\n                }\nLAB_001a03d9:\n                local_44 = (uint *)local_44[2];\n                uVar8 = *local_44;\n              } while( true );\n            }" ({ "{") (expression_statement "uVar5 = *(undefined4 *)(iVar6 + 0x114);" (assignment_expression "uVar5 = *(undefined4 *)(iVar6 + 0x114)" (identifier "uVar5") (= "=") (pointer_expression "*(undefined4 *)(iVar6 + 0x114)" (* "*") (cast_expression "(undefined4 *)(iVar6 + 0x114)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x114)" (( "(") (binary_expression "iVar6 + 0x114" (identifier "iVar6") (+ "+") (number_literal "0x114")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(iVar6 + 0x114) = 0;" (assignment_expression "*(undefined4 *)(iVar6 + 0x114) = 0" (pointer_expression "*(undefined4 *)(iVar6 + 0x114)" (* "*") (cast_expression "(undefined4 *)(iVar6 + 0x114)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x114)" (( "(") (binary_expression "iVar6 + 0x114" (identifier "iVar6") (+ "+") (number_literal "0x114")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "FUN_0019a610();" (call_expression "FUN_0019a610()" (identifier "FUN_0019a610") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "*(undefined4 *)(iVar6 + 0x114) = uVar5;" (assignment_expression "*(undefined4 *)(iVar6 + 0x114) = uVar5" (pointer_expression "*(undefined4 *)(iVar6 + 0x114)" (* "*") (cast_expression "(undefined4 *)(iVar6 + 0x114)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x114)" (( "(") (binary_expression "iVar6 + 0x114" (identifier "iVar6") (+ "+") (number_literal "0x114")) () ")")))) (= "=") (identifier "uVar5")) (; ";")) (expression_statement "iVar7 = *(int *)(iVar6 + 0x100);" (assignment_expression "iVar7 = *(int *)(iVar6 + 0x100)" (identifier "iVar7") (= "=") (pointer_expression "*(int *)(iVar6 + 0x100)" (* "*") (cast_expression "(int *)(iVar6 + 0x100)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x100)" (( "(") (binary_expression "iVar6 + 0x100" (identifier "iVar6") (+ "+") (number_literal "0x100")) () ")"))))) (; ";")) (if_statement "if ((uVar13 & 0x400000000) == 0) {\n                puVar12 = (undefined1 *)(unaff_EDI + 0xca6ca);\n                uVar11 = 0x3a;\n                while( true ) {\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  puVar12 = puVar12 + 1;\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if (puVar12 == (undefined1 *)(unaff_EDI + 0xca6cc)) break;\n                  uVar11 = *puVar12;\n                  iVar7 = iVar10;\n                }\n              }\n              else {\n                iVar10 = iVar7 + 1;\n                if (iVar7 == 0xff) {\n                  *(undefined1 *)(iVar6 + 0xff) = 0;\n                  (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                  *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                  iVar10 = 1;\n                  iVar7 = 0;\n                }\n                *(int *)(iVar6 + 0x100) = iVar10;\n                *(undefined1 *)(iVar6 + iVar7) = 0x2e;\n                *(undefined1 *)(iVar6 + 0x104) = 0x2e;\n              }" (if "if") (parenthesized_expression "((uVar13 & 0x400000000) == 0)" (( "(") (binary_expression "(uVar13 & 0x400000000) == 0" (parenthesized_expression "(uVar13 & 0x400000000)" (( "(") (binary_expression "uVar13 & 0x400000000" (identifier "uVar13") (& "&") (number_literal "0x400000000")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                puVar12 = (undefined1 *)(unaff_EDI + 0xca6ca);\n                uVar11 = 0x3a;\n                while( true ) {\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  puVar12 = puVar12 + 1;\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if (puVar12 == (undefined1 *)(unaff_EDI + 0xca6cc)) break;\n                  uVar11 = *puVar12;\n                  iVar7 = iVar10;\n                }\n              }" ({ "{") (expression_statement "puVar12 = (undefined1 *)(unaff_EDI + 0xca6ca);" (assignment_expression "puVar12 = (undefined1 *)(unaff_EDI + 0xca6ca)" (identifier "puVar12") (= "=") (cast_expression "(undefined1 *)(unaff_EDI + 0xca6ca)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0xca6ca)" (( "(") (binary_expression "unaff_EDI + 0xca6ca" (identifier "unaff_EDI") (+ "+") (number_literal "0xca6ca")) () ")")))) (; ";")) (expression_statement "uVar11 = 0x3a;" (assignment_expression "uVar11 = 0x3a" (identifier "uVar11") (= "=") (number_literal "0x3a")) (; ";")) (while_statement "while( true ) {\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  puVar12 = puVar12 + 1;\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if (puVar12 == (undefined1 *)(unaff_EDI + 0xca6cc)) break;\n                  uVar11 = *puVar12;\n                  iVar7 = iVar10;\n                }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  puVar12 = puVar12 + 1;\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if (puVar12 == (undefined1 *)(unaff_EDI + 0xca6cc)) break;\n                  uVar11 = *puVar12;\n                  iVar7 = iVar10;\n                }" ({ "{") (if_statement "if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }" (if "if") (parenthesized_expression "(iVar7 == 0xff)" (( "(") (binary_expression "iVar7 == 0xff" (identifier "iVar7") (== "==") (number_literal "0xff")) () ")")) (compound_statement "{\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }" ({ "{") (expression_statement "*(undefined1 *)(iVar6 + 0xff) = 0;" (assignment_expression "*(undefined1 *)(iVar6 + 0xff) = 0" (pointer_expression "*(undefined1 *)(iVar6 + 0xff)" (* "*") (cast_expression "(undefined1 *)(iVar6 + 0xff)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0xff)" (( "(") (binary_expression "iVar6 + 0xff" (identifier "iVar6") (+ "+") (number_literal "0xff")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "(**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));" (call_expression "(**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c))" (parenthesized_expression "(**(code **)(iVar6 + 0x108))" (( "(") (pointer_expression "**(code **)(iVar6 + 0x108)" (* "*") (pointer_expression "*(code **)(iVar6 + 0x108)" (* "*") (cast_expression "(code **)(iVar6 + 0x108)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar6 + 0x108)" (( "(") (binary_expression "iVar6 + 0x108" (identifier "iVar6") (+ "+") (number_literal "0x108")) () ")"))))) () ")")) (argument_list "(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c))" (( "(") (identifier "iVar6") (, ",") (number_literal "0xff") (, ",") (pointer_expression "*(undefined4 *)(iVar6 + 0x10c)" (* "*") (cast_expression "(undefined4 *)(iVar6 + 0x10c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x10c)" (( "(") (binary_expression "iVar6 + 0x10c" (identifier "iVar6") (+ "+") (number_literal "0x10c")) () ")")))) () ")"))) (; ";")) (expression_statement "*(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;" (assignment_expression "*(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1" (pointer_expression "*(int *)(iVar6 + 0x128)" (* "*") (cast_expression "(int *)(iVar6 + 0x128)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x128)" (( "(") (binary_expression "iVar6 + 0x128" (identifier "iVar6") (+ "+") (number_literal "0x128")) () ")")))) (= "=") (binary_expression "*(int *)(iVar6 + 0x128) + 1" (pointer_expression "*(int *)(iVar6 + 0x128)" (* "*") (cast_expression "(int *)(iVar6 + 0x128)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x128)" (( "(") (binary_expression "iVar6 + 0x128" (identifier "iVar6") (+ "+") (number_literal "0x128")) () ")")))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar10 = 1;" (assignment_expression "iVar10 = 1" (identifier "iVar10") (= "=") (number_literal "1")) (; ";")) (expression_statement "iVar7 = 0;" (assignment_expression "iVar7 = 0" (identifier "iVar7") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n                    iVar10 = iVar7 + 1;\n                  }" (else "else") (compound_statement "{\n                    iVar10 = iVar7 + 1;\n                  }" ({ "{") (expression_statement "iVar10 = iVar7 + 1;" (assignment_expression "iVar10 = iVar7 + 1" (identifier "iVar10") (= "=") (binary_expression "iVar7 + 1" (identifier "iVar7") (+ "+") (number_literal "1"))) (; ";")) (} "}")))) (expression_statement "puVar12 = puVar12 + 1;" (assignment_expression "puVar12 = puVar12 + 1" (identifier "puVar12") (= "=") (binary_expression "puVar12 + 1" (identifier "puVar12") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*(int *)(iVar6 + 0x100) = iVar10;" (assignment_expression "*(int *)(iVar6 + 0x100) = iVar10" (pointer_expression "*(int *)(iVar6 + 0x100)" (* "*") (cast_expression "(int *)(iVar6 + 0x100)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x100)" (( "(") (binary_expression "iVar6 + 0x100" (identifier "iVar6") (+ "+") (number_literal "0x100")) () ")")))) (= "=") (identifier "iVar10")) (; ";")) (expression_statement "*(undefined1 *)(iVar6 + iVar7) = uVar11;" (assignment_expression "*(undefined1 *)(iVar6 + iVar7) = uVar11" (pointer_expression "*(undefined1 *)(iVar6 + iVar7)" (* "*") (cast_expression "(undefined1 *)(iVar6 + iVar7)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + iVar7)" (( "(") (binary_expression "iVar6 + iVar7" (identifier "iVar6") (+ "+") (identifier "iVar7")) () ")")))) (= "=") (identifier "uVar11")) (; ";")) (expression_statement "*(undefined1 *)(iVar6 + 0x104) = uVar11;" (assignment_expression "*(undefined1 *)(iVar6 + 0x104) = uVar11" (pointer_expression "*(undefined1 *)(iVar6 + 0x104)" (* "*") (cast_expression "(undefined1 *)(iVar6 + 0x104)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x104)" (( "(") (binary_expression "iVar6 + 0x104" (identifier "iVar6") (+ "+") (number_literal "0x104")) () ")")))) (= "=") (identifier "uVar11")) (; ";")) (if_statement "if (puVar12 == (undefined1 *)(unaff_EDI + 0xca6cc)) break;" (if "if") (parenthesized_expression "(puVar12 == (undefined1 *)(unaff_EDI + 0xca6cc))" (( "(") (binary_expression "puVar12 == (undefined1 *)(unaff_EDI + 0xca6cc)" (identifier "puVar12") (== "==") (cast_expression "(undefined1 *)(unaff_EDI + 0xca6cc)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0xca6cc)" (( "(") (binary_expression "unaff_EDI + 0xca6cc" (identifier "unaff_EDI") (+ "+") (number_literal "0xca6cc")) () ")")))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "uVar11 = *puVar12;" (assignment_expression "uVar11 = *puVar12" (identifier "uVar11") (= "=") (pointer_expression "*puVar12" (* "*") (identifier "puVar12"))) (; ";")) (expression_statement "iVar7 = iVar10;" (assignment_expression "iVar7 = iVar10" (identifier "iVar7") (= "=") (identifier "iVar10")) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n                iVar10 = iVar7 + 1;\n                if (iVar7 == 0xff) {\n                  *(undefined1 *)(iVar6 + 0xff) = 0;\n                  (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                  *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                  iVar10 = 1;\n                  iVar7 = 0;\n                }\n                *(int *)(iVar6 + 0x100) = iVar10;\n                *(undefined1 *)(iVar6 + iVar7) = 0x2e;\n                *(undefined1 *)(iVar6 + 0x104) = 0x2e;\n              }" (else "else") (compound_statement "{\n                iVar10 = iVar7 + 1;\n                if (iVar7 == 0xff) {\n                  *(undefined1 *)(iVar6 + 0xff) = 0;\n                  (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                  *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                  iVar10 = 1;\n                  iVar7 = 0;\n                }\n                *(int *)(iVar6 + 0x100) = iVar10;\n                *(undefined1 *)(iVar6 + iVar7) = 0x2e;\n                *(undefined1 *)(iVar6 + 0x104) = 0x2e;\n              }" ({ "{") (expression_statement "iVar10 = iVar7 + 1;" (assignment_expression "iVar10 = iVar7 + 1" (identifier "iVar10") (= "=") (binary_expression "iVar7 + 1" (identifier "iVar7") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (iVar7 == 0xff) {\n                  *(undefined1 *)(iVar6 + 0xff) = 0;\n                  (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                  *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                  iVar10 = 1;\n                  iVar7 = 0;\n                }" (if "if") (parenthesized_expression "(iVar7 == 0xff)" (( "(") (binary_expression "iVar7 == 0xff" (identifier "iVar7") (== "==") (number_literal "0xff")) () ")")) (compound_statement "{\n                  *(undefined1 *)(iVar6 + 0xff) = 0;\n                  (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                  *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                  iVar10 = 1;\n                  iVar7 = 0;\n                }" ({ "{") (expression_statement "*(undefined1 *)(iVar6 + 0xff) = 0;" (assignment_expression "*(undefined1 *)(iVar6 + 0xff) = 0" (pointer_expression "*(undefined1 *)(iVar6 + 0xff)" (* "*") (cast_expression "(undefined1 *)(iVar6 + 0xff)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0xff)" (( "(") (binary_expression "iVar6 + 0xff" (identifier "iVar6") (+ "+") (number_literal "0xff")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "(**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));" (call_expression "(**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c))" (parenthesized_expression "(**(code **)(iVar6 + 0x108))" (( "(") (pointer_expression "**(code **)(iVar6 + 0x108)" (* "*") (pointer_expression "*(code **)(iVar6 + 0x108)" (* "*") (cast_expression "(code **)(iVar6 + 0x108)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar6 + 0x108)" (( "(") (binary_expression "iVar6 + 0x108" (identifier "iVar6") (+ "+") (number_literal "0x108")) () ")"))))) () ")")) (argument_list "(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c))" (( "(") (identifier "iVar6") (, ",") (number_literal "0xff") (, ",") (pointer_expression "*(undefined4 *)(iVar6 + 0x10c)" (* "*") (cast_expression "(undefined4 *)(iVar6 + 0x10c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x10c)" (( "(") (binary_expression "iVar6 + 0x10c" (identifier "iVar6") (+ "+") (number_literal "0x10c")) () ")")))) () ")"))) (; ";")) (expression_statement "*(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;" (assignment_expression "*(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1" (pointer_expression "*(int *)(iVar6 + 0x128)" (* "*") (cast_expression "(int *)(iVar6 + 0x128)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x128)" (( "(") (binary_expression "iVar6 + 0x128" (identifier "iVar6") (+ "+") (number_literal "0x128")) () ")")))) (= "=") (binary_expression "*(int *)(iVar6 + 0x128) + 1" (pointer_expression "*(int *)(iVar6 + 0x128)" (* "*") (cast_expression "(int *)(iVar6 + 0x128)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x128)" (( "(") (binary_expression "iVar6 + 0x128" (identifier "iVar6") (+ "+") (number_literal "0x128")) () ")")))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar10 = 1;" (assignment_expression "iVar10 = 1" (identifier "iVar10") (= "=") (number_literal "1")) (; ";")) (expression_statement "iVar7 = 0;" (assignment_expression "iVar7 = 0" (identifier "iVar7") (= "=") (number_literal "0")) (; ";")) (} "}"))) (expression_statement "*(int *)(iVar6 + 0x100) = iVar10;" (assignment_expression "*(int *)(iVar6 + 0x100) = iVar10" (pointer_expression "*(int *)(iVar6 + 0x100)" (* "*") (cast_expression "(int *)(iVar6 + 0x100)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x100)" (( "(") (binary_expression "iVar6 + 0x100" (identifier "iVar6") (+ "+") (number_literal "0x100")) () ")")))) (= "=") (identifier "iVar10")) (; ";")) (expression_statement "*(undefined1 *)(iVar6 + iVar7) = 0x2e;" (assignment_expression "*(undefined1 *)(iVar6 + iVar7) = 0x2e" (pointer_expression "*(undefined1 *)(iVar6 + iVar7)" (* "*") (cast_expression "(undefined1 *)(iVar6 + iVar7)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + iVar7)" (( "(") (binary_expression "iVar6 + iVar7" (identifier "iVar6") (+ "+") (identifier "iVar7")) () ")")))) (= "=") (number_literal "0x2e")) (; ";")) (expression_statement "*(undefined1 *)(iVar6 + 0x104) = 0x2e;" (assignment_expression "*(undefined1 *)(iVar6 + 0x104) = 0x2e" (pointer_expression "*(undefined1 *)(iVar6 + 0x104)" (* "*") (cast_expression "(undefined1 *)(iVar6 + 0x104)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x104)" (( "(") (binary_expression "iVar6 + 0x104" (identifier "iVar6") (+ "+") (number_literal "0x104")) () ")")))) (= "=") (number_literal "0x2e")) (; ";")) (} "}")))) (expression_statement "local_44 = *(uint **)(piVar4[1] + 0xc);" (assignment_expression "local_44 = *(uint **)(piVar4[1] + 0xc)" (identifier "local_44") (= "=") (pointer_expression "*(uint **)(piVar4[1] + 0xc)" (* "*") (cast_expression "(uint **)(piVar4[1] + 0xc)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(piVar4[1] + 0xc)" (( "(") (binary_expression "piVar4[1] + 0xc" (subscript_expression "piVar4[1]" (identifier "piVar4") ([ "[") (number_literal "1") (] "]")) (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (expression_statement "uVar8 = *local_44;" (assignment_expression "uVar8 = *local_44" (identifier "uVar8") (= "=") (pointer_expression "*local_44" (* "*") (identifier "local_44"))) (; ";")) (if_statement "if (uVar8 == 0x46) {\n                uVar11 = 0x7b;\n                puVar12 = (undefined1 *)(unaff_EDI + 0xca6bc);\n                iVar7 = *(int *)(iVar6 + 0x100);\n                while( true ) {\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if (puVar12 == (undefined1 *)(unaff_EDI + 0xca6c8)) break;\n                  uVar11 = *puVar12;\n                  puVar12 = puVar12 + 1;\n                  iVar7 = iVar10;\n                }\n                __s = local_35;\n                sprintf(__s,(char *)(unaff_EDI + 0xc8c52),local_44[3] + 1);\n                sVar9 = strlen(__s);\n                iVar7 = *(int *)(iVar6 + 0x100);\n                if (sVar9 != 0) {\n                  pcVar1 = __s + sVar9;\n                  iVar10 = iVar7;\n                  do {\n                    cVar2 = *__s;\n                    if (iVar10 == 0xff) {\n                      *(undefined1 *)(iVar6 + 0xff) = 0;\n                      (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                      *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                      iVar7 = 1;\n                      iVar10 = 0;\n                    }\n                    else {\n                      iVar7 = iVar10 + 1;\n                    }\n                    __s = __s + 1;\n                    *(int *)(iVar6 + 0x100) = iVar7;\n                    *(char *)(iVar6 + iVar10) = cVar2;\n                    *(char *)(iVar6 + 0x104) = cVar2;\n                    iVar10 = iVar7;\n                  } while (pcVar1 != __s);\n                }\n                puVar12 = (undefined1 *)(unaff_EDI + 0xca6c9);\n                uVar11 = 0x7d;\n                do {\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  puVar12 = puVar12 + 1;\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if ((undefined1 *)(unaff_EDI + 0xca6cc) == puVar12) goto LAB_001a03d9;\n                  uVar11 = *puVar12;\n                  iVar7 = iVar10;\n                } while( true );\n              }" (if "if") (parenthesized_expression "(uVar8 == 0x46)" (( "(") (binary_expression "uVar8 == 0x46" (identifier "uVar8") (== "==") (number_literal "0x46")) () ")")) (compound_statement "{\n                uVar11 = 0x7b;\n                puVar12 = (undefined1 *)(unaff_EDI + 0xca6bc);\n                iVar7 = *(int *)(iVar6 + 0x100);\n                while( true ) {\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if (puVar12 == (undefined1 *)(unaff_EDI + 0xca6c8)) break;\n                  uVar11 = *puVar12;\n                  puVar12 = puVar12 + 1;\n                  iVar7 = iVar10;\n                }\n                __s = local_35;\n                sprintf(__s,(char *)(unaff_EDI + 0xc8c52),local_44[3] + 1);\n                sVar9 = strlen(__s);\n                iVar7 = *(int *)(iVar6 + 0x100);\n                if (sVar9 != 0) {\n                  pcVar1 = __s + sVar9;\n                  iVar10 = iVar7;\n                  do {\n                    cVar2 = *__s;\n                    if (iVar10 == 0xff) {\n                      *(undefined1 *)(iVar6 + 0xff) = 0;\n                      (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                      *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                      iVar7 = 1;\n                      iVar10 = 0;\n                    }\n                    else {\n                      iVar7 = iVar10 + 1;\n                    }\n                    __s = __s + 1;\n                    *(int *)(iVar6 + 0x100) = iVar7;\n                    *(char *)(iVar6 + iVar10) = cVar2;\n                    *(char *)(iVar6 + 0x104) = cVar2;\n                    iVar10 = iVar7;\n                  } while (pcVar1 != __s);\n                }\n                puVar12 = (undefined1 *)(unaff_EDI + 0xca6c9);\n                uVar11 = 0x7d;\n                do {\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  puVar12 = puVar12 + 1;\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if ((undefined1 *)(unaff_EDI + 0xca6cc) == puVar12) goto LAB_001a03d9;\n                  uVar11 = *puVar12;\n                  iVar7 = iVar10;\n                } while( true );\n              }" ({ "{") (expression_statement "uVar11 = 0x7b;" (assignment_expression "uVar11 = 0x7b" (identifier "uVar11") (= "=") (number_literal "0x7b")) (; ";")) (expression_statement "puVar12 = (undefined1 *)(unaff_EDI + 0xca6bc);" (assignment_expression "puVar12 = (undefined1 *)(unaff_EDI + 0xca6bc)" (identifier "puVar12") (= "=") (cast_expression "(undefined1 *)(unaff_EDI + 0xca6bc)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0xca6bc)" (( "(") (binary_expression "unaff_EDI + 0xca6bc" (identifier "unaff_EDI") (+ "+") (number_literal "0xca6bc")) () ")")))) (; ";")) (expression_statement "iVar7 = *(int *)(iVar6 + 0x100);" (assignment_expression "iVar7 = *(int *)(iVar6 + 0x100)" (identifier "iVar7") (= "=") (pointer_expression "*(int *)(iVar6 + 0x100)" (* "*") (cast_expression "(int *)(iVar6 + 0x100)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x100)" (( "(") (binary_expression "iVar6 + 0x100" (identifier "iVar6") (+ "+") (number_literal "0x100")) () ")"))))) (; ";")) (while_statement "while( true ) {\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if (puVar12 == (undefined1 *)(unaff_EDI + 0xca6c8)) break;\n                  uVar11 = *puVar12;\n                  puVar12 = puVar12 + 1;\n                  iVar7 = iVar10;\n                }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if (puVar12 == (undefined1 *)(unaff_EDI + 0xca6c8)) break;\n                  uVar11 = *puVar12;\n                  puVar12 = puVar12 + 1;\n                  iVar7 = iVar10;\n                }" ({ "{") (if_statement "if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }" (if "if") (parenthesized_expression "(iVar7 == 0xff)" (( "(") (binary_expression "iVar7 == 0xff" (identifier "iVar7") (== "==") (number_literal "0xff")) () ")")) (compound_statement "{\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }" ({ "{") (expression_statement "*(undefined1 *)(iVar6 + 0xff) = 0;" (assignment_expression "*(undefined1 *)(iVar6 + 0xff) = 0" (pointer_expression "*(undefined1 *)(iVar6 + 0xff)" (* "*") (cast_expression "(undefined1 *)(iVar6 + 0xff)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0xff)" (( "(") (binary_expression "iVar6 + 0xff" (identifier "iVar6") (+ "+") (number_literal "0xff")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "(**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));" (call_expression "(**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c))" (parenthesized_expression "(**(code **)(iVar6 + 0x108))" (( "(") (pointer_expression "**(code **)(iVar6 + 0x108)" (* "*") (pointer_expression "*(code **)(iVar6 + 0x108)" (* "*") (cast_expression "(code **)(iVar6 + 0x108)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar6 + 0x108)" (( "(") (binary_expression "iVar6 + 0x108" (identifier "iVar6") (+ "+") (number_literal "0x108")) () ")"))))) () ")")) (argument_list "(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c))" (( "(") (identifier "iVar6") (, ",") (number_literal "0xff") (, ",") (pointer_expression "*(undefined4 *)(iVar6 + 0x10c)" (* "*") (cast_expression "(undefined4 *)(iVar6 + 0x10c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x10c)" (( "(") (binary_expression "iVar6 + 0x10c" (identifier "iVar6") (+ "+") (number_literal "0x10c")) () ")")))) () ")"))) (; ";")) (expression_statement "*(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;" (assignment_expression "*(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1" (pointer_expression "*(int *)(iVar6 + 0x128)" (* "*") (cast_expression "(int *)(iVar6 + 0x128)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x128)" (( "(") (binary_expression "iVar6 + 0x128" (identifier "iVar6") (+ "+") (number_literal "0x128")) () ")")))) (= "=") (binary_expression "*(int *)(iVar6 + 0x128) + 1" (pointer_expression "*(int *)(iVar6 + 0x128)" (* "*") (cast_expression "(int *)(iVar6 + 0x128)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x128)" (( "(") (binary_expression "iVar6 + 0x128" (identifier "iVar6") (+ "+") (number_literal "0x128")) () ")")))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar10 = 1;" (assignment_expression "iVar10 = 1" (identifier "iVar10") (= "=") (number_literal "1")) (; ";")) (expression_statement "iVar7 = 0;" (assignment_expression "iVar7 = 0" (identifier "iVar7") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n                    iVar10 = iVar7 + 1;\n                  }" (else "else") (compound_statement "{\n                    iVar10 = iVar7 + 1;\n                  }" ({ "{") (expression_statement "iVar10 = iVar7 + 1;" (assignment_expression "iVar10 = iVar7 + 1" (identifier "iVar10") (= "=") (binary_expression "iVar7 + 1" (identifier "iVar7") (+ "+") (number_literal "1"))) (; ";")) (} "}")))) (expression_statement "*(int *)(iVar6 + 0x100) = iVar10;" (assignment_expression "*(int *)(iVar6 + 0x100) = iVar10" (pointer_expression "*(int *)(iVar6 + 0x100)" (* "*") (cast_expression "(int *)(iVar6 + 0x100)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x100)" (( "(") (binary_expression "iVar6 + 0x100" (identifier "iVar6") (+ "+") (number_literal "0x100")) () ")")))) (= "=") (identifier "iVar10")) (; ";")) (expression_statement "*(undefined1 *)(iVar6 + iVar7) = uVar11;" (assignment_expression "*(undefined1 *)(iVar6 + iVar7) = uVar11" (pointer_expression "*(undefined1 *)(iVar6 + iVar7)" (* "*") (cast_expression "(undefined1 *)(iVar6 + iVar7)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + iVar7)" (( "(") (binary_expression "iVar6 + iVar7" (identifier "iVar6") (+ "+") (identifier "iVar7")) () ")")))) (= "=") (identifier "uVar11")) (; ";")) (expression_statement "*(undefined1 *)(iVar6 + 0x104) = uVar11;" (assignment_expression "*(undefined1 *)(iVar6 + 0x104) = uVar11" (pointer_expression "*(undefined1 *)(iVar6 + 0x104)" (* "*") (cast_expression "(undefined1 *)(iVar6 + 0x104)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x104)" (( "(") (binary_expression "iVar6 + 0x104" (identifier "iVar6") (+ "+") (number_literal "0x104")) () ")")))) (= "=") (identifier "uVar11")) (; ";")) (if_statement "if (puVar12 == (undefined1 *)(unaff_EDI + 0xca6c8)) break;" (if "if") (parenthesized_expression "(puVar12 == (undefined1 *)(unaff_EDI + 0xca6c8))" (( "(") (binary_expression "puVar12 == (undefined1 *)(unaff_EDI + 0xca6c8)" (identifier "puVar12") (== "==") (cast_expression "(undefined1 *)(unaff_EDI + 0xca6c8)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0xca6c8)" (( "(") (binary_expression "unaff_EDI + 0xca6c8" (identifier "unaff_EDI") (+ "+") (number_literal "0xca6c8")) () ")")))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "uVar11 = *puVar12;" (assignment_expression "uVar11 = *puVar12" (identifier "uVar11") (= "=") (pointer_expression "*puVar12" (* "*") (identifier "puVar12"))) (; ";")) (expression_statement "puVar12 = puVar12 + 1;" (assignment_expression "puVar12 = puVar12 + 1" (identifier "puVar12") (= "=") (binary_expression "puVar12 + 1" (identifier "puVar12") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar7 = iVar10;" (assignment_expression "iVar7 = iVar10" (identifier "iVar7") (= "=") (identifier "iVar10")) (; ";")) (} "}"))) (expression_statement "__s = local_35;" (assignment_expression "__s = local_35" (identifier "__s") (= "=") (identifier "local_35")) (; ";")) (expression_statement "sprintf(__s,(char *)(unaff_EDI + 0xc8c52),local_44[3] + 1);" (call_expression "sprintf(__s,(char *)(unaff_EDI + 0xc8c52),local_44[3] + 1)" (identifier "sprintf") (argument_list "(__s,(char *)(unaff_EDI + 0xc8c52),local_44[3] + 1)" (( "(") (identifier "__s") (, ",") (cast_expression "(char *)(unaff_EDI + 0xc8c52)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0xc8c52)" (( "(") (binary_expression "unaff_EDI + 0xc8c52" (identifier "unaff_EDI") (+ "+") (number_literal "0xc8c52")) () ")"))) (, ",") (binary_expression "local_44[3] + 1" (subscript_expression "local_44[3]" (identifier "local_44") ([ "[") (number_literal "3") (] "]")) (+ "+") (number_literal "1")) () ")"))) (; ";")) (expression_statement "sVar9 = strlen(__s);" (assignment_expression "sVar9 = strlen(__s)" (identifier "sVar9") (= "=") (call_expression "strlen(__s)" (identifier "strlen") (argument_list "(__s)" (( "(") (identifier "__s") () ")")))) (; ";")) (expression_statement "iVar7 = *(int *)(iVar6 + 0x100);" (assignment_expression "iVar7 = *(int *)(iVar6 + 0x100)" (identifier "iVar7") (= "=") (pointer_expression "*(int *)(iVar6 + 0x100)" (* "*") (cast_expression "(int *)(iVar6 + 0x100)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x100)" (( "(") (binary_expression "iVar6 + 0x100" (identifier "iVar6") (+ "+") (number_literal "0x100")) () ")"))))) (; ";")) (if_statement "if (sVar9 != 0) {\n                  pcVar1 = __s + sVar9;\n                  iVar10 = iVar7;\n                  do {\n                    cVar2 = *__s;\n                    if (iVar10 == 0xff) {\n                      *(undefined1 *)(iVar6 + 0xff) = 0;\n                      (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                      *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                      iVar7 = 1;\n                      iVar10 = 0;\n                    }\n                    else {\n                      iVar7 = iVar10 + 1;\n                    }\n                    __s = __s + 1;\n                    *(int *)(iVar6 + 0x100) = iVar7;\n                    *(char *)(iVar6 + iVar10) = cVar2;\n                    *(char *)(iVar6 + 0x104) = cVar2;\n                    iVar10 = iVar7;\n                  } while (pcVar1 != __s);\n                }" (if "if") (parenthesized_expression "(sVar9 != 0)" (( "(") (binary_expression "sVar9 != 0" (identifier "sVar9") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                  pcVar1 = __s + sVar9;\n                  iVar10 = iVar7;\n                  do {\n                    cVar2 = *__s;\n                    if (iVar10 == 0xff) {\n                      *(undefined1 *)(iVar6 + 0xff) = 0;\n                      (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                      *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                      iVar7 = 1;\n                      iVar10 = 0;\n                    }\n                    else {\n                      iVar7 = iVar10 + 1;\n                    }\n                    __s = __s + 1;\n                    *(int *)(iVar6 + 0x100) = iVar7;\n                    *(char *)(iVar6 + iVar10) = cVar2;\n                    *(char *)(iVar6 + 0x104) = cVar2;\n                    iVar10 = iVar7;\n                  } while (pcVar1 != __s);\n                }" ({ "{") (expression_statement "pcVar1 = __s + sVar9;" (assignment_expression "pcVar1 = __s + sVar9" (identifier "pcVar1") (= "=") (binary_expression "__s + sVar9" (identifier "__s") (+ "+") (identifier "sVar9"))) (; ";")) (expression_statement "iVar10 = iVar7;" (assignment_expression "iVar10 = iVar7" (identifier "iVar10") (= "=") (identifier "iVar7")) (; ";")) (do_statement "do {\n                    cVar2 = *__s;\n                    if (iVar10 == 0xff) {\n                      *(undefined1 *)(iVar6 + 0xff) = 0;\n                      (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                      *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                      iVar7 = 1;\n                      iVar10 = 0;\n                    }\n                    else {\n                      iVar7 = iVar10 + 1;\n                    }\n                    __s = __s + 1;\n                    *(int *)(iVar6 + 0x100) = iVar7;\n                    *(char *)(iVar6 + iVar10) = cVar2;\n                    *(char *)(iVar6 + 0x104) = cVar2;\n                    iVar10 = iVar7;\n                  } while (pcVar1 != __s);" (do "do") (compound_statement "{\n                    cVar2 = *__s;\n                    if (iVar10 == 0xff) {\n                      *(undefined1 *)(iVar6 + 0xff) = 0;\n                      (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                      *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                      iVar7 = 1;\n                      iVar10 = 0;\n                    }\n                    else {\n                      iVar7 = iVar10 + 1;\n                    }\n                    __s = __s + 1;\n                    *(int *)(iVar6 + 0x100) = iVar7;\n                    *(char *)(iVar6 + iVar10) = cVar2;\n                    *(char *)(iVar6 + 0x104) = cVar2;\n                    iVar10 = iVar7;\n                  }" ({ "{") (expression_statement "cVar2 = *__s;" (assignment_expression "cVar2 = *__s" (identifier "cVar2") (= "=") (pointer_expression "*__s" (* "*") (identifier "__s"))) (; ";")) (if_statement "if (iVar10 == 0xff) {\n                      *(undefined1 *)(iVar6 + 0xff) = 0;\n                      (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                      *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                      iVar7 = 1;\n                      iVar10 = 0;\n                    }\n                    else {\n                      iVar7 = iVar10 + 1;\n                    }" (if "if") (parenthesized_expression "(iVar10 == 0xff)" (( "(") (binary_expression "iVar10 == 0xff" (identifier "iVar10") (== "==") (number_literal "0xff")) () ")")) (compound_statement "{\n                      *(undefined1 *)(iVar6 + 0xff) = 0;\n                      (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                      *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                      iVar7 = 1;\n                      iVar10 = 0;\n                    }" ({ "{") (expression_statement "*(undefined1 *)(iVar6 + 0xff) = 0;" (assignment_expression "*(undefined1 *)(iVar6 + 0xff) = 0" (pointer_expression "*(undefined1 *)(iVar6 + 0xff)" (* "*") (cast_expression "(undefined1 *)(iVar6 + 0xff)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0xff)" (( "(") (binary_expression "iVar6 + 0xff" (identifier "iVar6") (+ "+") (number_literal "0xff")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "(**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));" (call_expression "(**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c))" (parenthesized_expression "(**(code **)(iVar6 + 0x108))" (( "(") (pointer_expression "**(code **)(iVar6 + 0x108)" (* "*") (pointer_expression "*(code **)(iVar6 + 0x108)" (* "*") (cast_expression "(code **)(iVar6 + 0x108)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar6 + 0x108)" (( "(") (binary_expression "iVar6 + 0x108" (identifier "iVar6") (+ "+") (number_literal "0x108")) () ")"))))) () ")")) (argument_list "(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c))" (( "(") (identifier "iVar6") (, ",") (number_literal "0xff") (, ",") (pointer_expression "*(undefined4 *)(iVar6 + 0x10c)" (* "*") (cast_expression "(undefined4 *)(iVar6 + 0x10c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x10c)" (( "(") (binary_expression "iVar6 + 0x10c" (identifier "iVar6") (+ "+") (number_literal "0x10c")) () ")")))) () ")"))) (; ";")) (expression_statement "*(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;" (assignment_expression "*(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1" (pointer_expression "*(int *)(iVar6 + 0x128)" (* "*") (cast_expression "(int *)(iVar6 + 0x128)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x128)" (( "(") (binary_expression "iVar6 + 0x128" (identifier "iVar6") (+ "+") (number_literal "0x128")) () ")")))) (= "=") (binary_expression "*(int *)(iVar6 + 0x128) + 1" (pointer_expression "*(int *)(iVar6 + 0x128)" (* "*") (cast_expression "(int *)(iVar6 + 0x128)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x128)" (( "(") (binary_expression "iVar6 + 0x128" (identifier "iVar6") (+ "+") (number_literal "0x128")) () ")")))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar7 = 1;" (assignment_expression "iVar7 = 1" (identifier "iVar7") (= "=") (number_literal "1")) (; ";")) (expression_statement "iVar10 = 0;" (assignment_expression "iVar10 = 0" (identifier "iVar10") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n                      iVar7 = iVar10 + 1;\n                    }" (else "else") (compound_statement "{\n                      iVar7 = iVar10 + 1;\n                    }" ({ "{") (expression_statement "iVar7 = iVar10 + 1;" (assignment_expression "iVar7 = iVar10 + 1" (identifier "iVar7") (= "=") (binary_expression "iVar10 + 1" (identifier "iVar10") (+ "+") (number_literal "1"))) (; ";")) (} "}")))) (expression_statement "__s = __s + 1;" (assignment_expression "__s = __s + 1" (identifier "__s") (= "=") (binary_expression "__s + 1" (identifier "__s") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*(int *)(iVar6 + 0x100) = iVar7;" (assignment_expression "*(int *)(iVar6 + 0x100) = iVar7" (pointer_expression "*(int *)(iVar6 + 0x100)" (* "*") (cast_expression "(int *)(iVar6 + 0x100)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x100)" (( "(") (binary_expression "iVar6 + 0x100" (identifier "iVar6") (+ "+") (number_literal "0x100")) () ")")))) (= "=") (identifier "iVar7")) (; ";")) (expression_statement "*(char *)(iVar6 + iVar10) = cVar2;" (assignment_expression "*(char *)(iVar6 + iVar10) = cVar2" (pointer_expression "*(char *)(iVar6 + iVar10)" (* "*") (cast_expression "(char *)(iVar6 + iVar10)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + iVar10)" (( "(") (binary_expression "iVar6 + iVar10" (identifier "iVar6") (+ "+") (identifier "iVar10")) () ")")))) (= "=") (identifier "cVar2")) (; ";")) (expression_statement "*(char *)(iVar6 + 0x104) = cVar2;" (assignment_expression "*(char *)(iVar6 + 0x104) = cVar2" (pointer_expression "*(char *)(iVar6 + 0x104)" (* "*") (cast_expression "(char *)(iVar6 + 0x104)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x104)" (( "(") (binary_expression "iVar6 + 0x104" (identifier "iVar6") (+ "+") (number_literal "0x104")) () ")")))) (= "=") (identifier "cVar2")) (; ";")) (expression_statement "iVar10 = iVar7;" (assignment_expression "iVar10 = iVar7" (identifier "iVar10") (= "=") (identifier "iVar7")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(pcVar1 != __s)" (( "(") (binary_expression "pcVar1 != __s" (identifier "pcVar1") (!= "!=") (identifier "__s")) () ")")) (; ";")) (} "}"))) (expression_statement "puVar12 = (undefined1 *)(unaff_EDI + 0xca6c9);" (assignment_expression "puVar12 = (undefined1 *)(unaff_EDI + 0xca6c9)" (identifier "puVar12") (= "=") (cast_expression "(undefined1 *)(unaff_EDI + 0xca6c9)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0xca6c9)" (( "(") (binary_expression "unaff_EDI + 0xca6c9" (identifier "unaff_EDI") (+ "+") (number_literal "0xca6c9")) () ")")))) (; ";")) (expression_statement "uVar11 = 0x7d;" (assignment_expression "uVar11 = 0x7d" (identifier "uVar11") (= "=") (number_literal "0x7d")) (; ";")) (do_statement "do {\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  puVar12 = puVar12 + 1;\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if ((undefined1 *)(unaff_EDI + 0xca6cc) == puVar12) goto LAB_001a03d9;\n                  uVar11 = *puVar12;\n                  iVar7 = iVar10;\n                } while( true );" (do "do") (compound_statement "{\n                  if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }\n                  puVar12 = puVar12 + 1;\n                  *(int *)(iVar6 + 0x100) = iVar10;\n                  *(undefined1 *)(iVar6 + iVar7) = uVar11;\n                  *(undefined1 *)(iVar6 + 0x104) = uVar11;\n                  if ((undefined1 *)(unaff_EDI + 0xca6cc) == puVar12) goto LAB_001a03d9;\n                  uVar11 = *puVar12;\n                  iVar7 = iVar10;\n                }" ({ "{") (if_statement "if (iVar7 == 0xff) {\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }\n                  else {\n                    iVar10 = iVar7 + 1;\n                  }" (if "if") (parenthesized_expression "(iVar7 == 0xff)" (( "(") (binary_expression "iVar7 == 0xff" (identifier "iVar7") (== "==") (number_literal "0xff")) () ")")) (compound_statement "{\n                    *(undefined1 *)(iVar6 + 0xff) = 0;\n                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));\n                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;\n                    iVar10 = 1;\n                    iVar7 = 0;\n                  }" ({ "{") (expression_statement "*(undefined1 *)(iVar6 + 0xff) = 0;" (assignment_expression "*(undefined1 *)(iVar6 + 0xff) = 0" (pointer_expression "*(undefined1 *)(iVar6 + 0xff)" (* "*") (cast_expression "(undefined1 *)(iVar6 + 0xff)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0xff)" (( "(") (binary_expression "iVar6 + 0xff" (identifier "iVar6") (+ "+") (number_literal "0xff")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "(**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));" (call_expression "(**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c))" (parenthesized_expression "(**(code **)(iVar6 + 0x108))" (( "(") (pointer_expression "**(code **)(iVar6 + 0x108)" (* "*") (pointer_expression "*(code **)(iVar6 + 0x108)" (* "*") (cast_expression "(code **)(iVar6 + 0x108)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar6 + 0x108)" (( "(") (binary_expression "iVar6 + 0x108" (identifier "iVar6") (+ "+") (number_literal "0x108")) () ")"))))) () ")")) (argument_list "(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c))" (( "(") (identifier "iVar6") (, ",") (number_literal "0xff") (, ",") (pointer_expression "*(undefined4 *)(iVar6 + 0x10c)" (* "*") (cast_expression "(undefined4 *)(iVar6 + 0x10c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x10c)" (( "(") (binary_expression "iVar6 + 0x10c" (identifier "iVar6") (+ "+") (number_literal "0x10c")) () ")")))) () ")"))) (; ";")) (expression_statement "*(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;" (assignment_expression "*(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1" (pointer_expression "*(int *)(iVar6 + 0x128)" (* "*") (cast_expression "(int *)(iVar6 + 0x128)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x128)" (( "(") (binary_expression "iVar6 + 0x128" (identifier "iVar6") (+ "+") (number_literal "0x128")) () ")")))) (= "=") (binary_expression "*(int *)(iVar6 + 0x128) + 1" (pointer_expression "*(int *)(iVar6 + 0x128)" (* "*") (cast_expression "(int *)(iVar6 + 0x128)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x128)" (( "(") (binary_expression "iVar6 + 0x128" (identifier "iVar6") (+ "+") (number_literal "0x128")) () ")")))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar10 = 1;" (assignment_expression "iVar10 = 1" (identifier "iVar10") (= "=") (number_literal "1")) (; ";")) (expression_statement "iVar7 = 0;" (assignment_expression "iVar7 = 0" (identifier "iVar7") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n                    iVar10 = iVar7 + 1;\n                  }" (else "else") (compound_statement "{\n                    iVar10 = iVar7 + 1;\n                  }" ({ "{") (expression_statement "iVar10 = iVar7 + 1;" (assignment_expression "iVar10 = iVar7 + 1" (identifier "iVar10") (= "=") (binary_expression "iVar7 + 1" (identifier "iVar7") (+ "+") (number_literal "1"))) (; ";")) (} "}")))) (expression_statement "puVar12 = puVar12 + 1;" (assignment_expression "puVar12 = puVar12 + 1" (identifier "puVar12") (= "=") (binary_expression "puVar12 + 1" (identifier "puVar12") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*(int *)(iVar6 + 0x100) = iVar10;" (assignment_expression "*(int *)(iVar6 + 0x100) = iVar10" (pointer_expression "*(int *)(iVar6 + 0x100)" (* "*") (cast_expression "(int *)(iVar6 + 0x100)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x100)" (( "(") (binary_expression "iVar6 + 0x100" (identifier "iVar6") (+ "+") (number_literal "0x100")) () ")")))) (= "=") (identifier "iVar10")) (; ";")) (expression_statement "*(undefined1 *)(iVar6 + iVar7) = uVar11;" (assignment_expression "*(undefined1 *)(iVar6 + iVar7) = uVar11" (pointer_expression "*(undefined1 *)(iVar6 + iVar7)" (* "*") (cast_expression "(undefined1 *)(iVar6 + iVar7)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + iVar7)" (( "(") (binary_expression "iVar6 + iVar7" (identifier "iVar6") (+ "+") (identifier "iVar7")) () ")")))) (= "=") (identifier "uVar11")) (; ";")) (expression_statement "*(undefined1 *)(iVar6 + 0x104) = uVar11;" (assignment_expression "*(undefined1 *)(iVar6 + 0x104) = uVar11" (pointer_expression "*(undefined1 *)(iVar6 + 0x104)" (* "*") (cast_expression "(undefined1 *)(iVar6 + 0x104)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x104)" (( "(") (binary_expression "iVar6 + 0x104" (identifier "iVar6") (+ "+") (number_literal "0x104")) () ")")))) (= "=") (identifier "uVar11")) (; ";")) (if_statement "if ((undefined1 *)(unaff_EDI + 0xca6cc) == puVar12) goto LAB_001a03d9;" (if "if") (parenthesized_expression "((undefined1 *)(unaff_EDI + 0xca6cc) == puVar12)" (( "(") (binary_expression "(undefined1 *)(unaff_EDI + 0xca6cc) == puVar12" (cast_expression "(undefined1 *)(unaff_EDI + 0xca6cc)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0xca6cc)" (( "(") (binary_expression "unaff_EDI + 0xca6cc" (identifier "unaff_EDI") (+ "+") (number_literal "0xca6cc")) () ")"))) (== "==") (identifier "puVar12")) () ")")) (goto_statement "goto LAB_001a03d9;" (goto "goto") (statement_identifier "LAB_001a03d9") (; ";"))) (expression_statement "uVar11 = *puVar12;" (assignment_expression "uVar11 = *puVar12" (identifier "uVar11") (= "=") (pointer_expression "*puVar12" (* "*") (identifier "puVar12"))) (; ";")) (expression_statement "iVar7 = iVar10;" (assignment_expression "iVar7 = iVar10" (identifier "iVar7") (= "=") (identifier "iVar10")) (; ";")) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";")) (} "}"))) (do_statement "do {\n                if (uVar8 != 0x4c) {\n                  if (uVar8 < 0x4d) {\n                    if (4 < uVar8 - 0x1c) {\nLAB_001a036d:\n                      FUN_0019a610();\n                      *(undefined4 *)(iVar6 + 0x110) = uVar3;\n                      return;\n                    }\n                  }\n                  else if (1 < uVar8 - 0x4e) goto LAB_001a036d;\n                }\nLAB_001a03d9:\n                local_44 = (uint *)local_44[2];\n                uVar8 = *local_44;\n              } while( true );" (do "do") (compound_statement "{\n                if (uVar8 != 0x4c) {\n                  if (uVar8 < 0x4d) {\n                    if (4 < uVar8 - 0x1c) {\nLAB_001a036d:\n                      FUN_0019a610();\n                      *(undefined4 *)(iVar6 + 0x110) = uVar3;\n                      return;\n                    }\n                  }\n                  else if (1 < uVar8 - 0x4e) goto LAB_001a036d;\n                }\nLAB_001a03d9:\n                local_44 = (uint *)local_44[2];\n                uVar8 = *local_44;\n              }" ({ "{") (if_statement "if (uVar8 != 0x4c) {\n                  if (uVar8 < 0x4d) {\n                    if (4 < uVar8 - 0x1c) {\nLAB_001a036d:\n                      FUN_0019a610();\n                      *(undefined4 *)(iVar6 + 0x110) = uVar3;\n                      return;\n                    }\n                  }\n                  else if (1 < uVar8 - 0x4e) goto LAB_001a036d;\n                }" (if "if") (parenthesized_expression "(uVar8 != 0x4c)" (( "(") (binary_expression "uVar8 != 0x4c" (identifier "uVar8") (!= "!=") (number_literal "0x4c")) () ")")) (compound_statement "{\n                  if (uVar8 < 0x4d) {\n                    if (4 < uVar8 - 0x1c) {\nLAB_001a036d:\n                      FUN_0019a610();\n                      *(undefined4 *)(iVar6 + 0x110) = uVar3;\n                      return;\n                    }\n                  }\n                  else if (1 < uVar8 - 0x4e) goto LAB_001a036d;\n                }" ({ "{") (if_statement "if (uVar8 < 0x4d) {\n                    if (4 < uVar8 - 0x1c) {\nLAB_001a036d:\n                      FUN_0019a610();\n                      *(undefined4 *)(iVar6 + 0x110) = uVar3;\n                      return;\n                    }\n                  }\n                  else if (1 < uVar8 - 0x4e) goto LAB_001a036d;" (if "if") (parenthesized_expression "(uVar8 < 0x4d)" (( "(") (binary_expression "uVar8 < 0x4d" (identifier "uVar8") (< "<") (number_literal "0x4d")) () ")")) (compound_statement "{\n                    if (4 < uVar8 - 0x1c) {\nLAB_001a036d:\n                      FUN_0019a610();\n                      *(undefined4 *)(iVar6 + 0x110) = uVar3;\n                      return;\n                    }\n                  }" ({ "{") (if_statement "if (4 < uVar8 - 0x1c) {\nLAB_001a036d:\n                      FUN_0019a610();\n                      *(undefined4 *)(iVar6 + 0x110) = uVar3;\n                      return;\n                    }" (if "if") (parenthesized_expression "(4 < uVar8 - 0x1c)" (( "(") (binary_expression "4 < uVar8 - 0x1c" (number_literal "4") (< "<") (binary_expression "uVar8 - 0x1c" (identifier "uVar8") (- "-") (number_literal "0x1c"))) () ")")) (compound_statement "{\nLAB_001a036d:\n                      FUN_0019a610();\n                      *(undefined4 *)(iVar6 + 0x110) = uVar3;\n                      return;\n                    }" ({ "{") (labeled_statement "LAB_001a036d:\n                      FUN_0019a610();" (statement_identifier "LAB_001a036d") (: ":") (expression_statement "FUN_0019a610();" (call_expression "FUN_0019a610()" (identifier "FUN_0019a610") (argument_list "()" (( "(") () ")"))) (; ";"))) (expression_statement "*(undefined4 *)(iVar6 + 0x110) = uVar3;" (assignment_expression "*(undefined4 *)(iVar6 + 0x110) = uVar3" (pointer_expression "*(undefined4 *)(iVar6 + 0x110)" (* "*") (cast_expression "(undefined4 *)(iVar6 + 0x110)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x110)" (( "(") (binary_expression "iVar6 + 0x110" (identifier "iVar6") (+ "+") (number_literal "0x110")) () ")")))) (= "=") (identifier "uVar3")) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (} "}")) (else_clause "else if (1 < uVar8 - 0x4e) goto LAB_001a036d;" (else "else") (if_statement "if (1 < uVar8 - 0x4e) goto LAB_001a036d;" (if "if") (parenthesized_expression "(1 < uVar8 - 0x4e)" (( "(") (binary_expression "1 < uVar8 - 0x4e" (number_literal "1") (< "<") (binary_expression "uVar8 - 0x4e" (identifier "uVar8") (- "-") (number_literal "0x4e"))) () ")")) (goto_statement "goto LAB_001a036d;" (goto "goto") (statement_identifier "LAB_001a036d") (; ";"))))) (} "}"))) (labeled_statement "LAB_001a03d9:\n                local_44 = (uint *)local_44[2];" (statement_identifier "LAB_001a03d9") (: ":") (expression_statement "local_44 = (uint *)local_44[2];" (assignment_expression "local_44 = (uint *)local_44[2]" (identifier "local_44") (= "=") (cast_expression "(uint *)local_44[2]" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "local_44[2]" (identifier "local_44") ([ "[") (number_literal "2") (] "]")))) (; ";"))) (expression_statement "uVar8 = *local_44;" (assignment_expression "uVar8 = *local_44" (identifier "uVar8") (= "=") (pointer_expression "*local_44" (* "*") (identifier "local_44"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";")) (} "}"))) (expression_statement "FUN_0019f570();" (call_expression "FUN_0019f570()" (identifier "FUN_0019f570") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "*(undefined4 *)(iVar6 + 0x110) = uVar3;" (assignment_expression "*(undefined4 *)(iVar6 + 0x110) = uVar3" (pointer_expression "*(undefined4 *)(iVar6 + 0x110)" (* "*") (cast_expression "(undefined4 *)(iVar6 + 0x110)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x110)" (( "(") (binary_expression "iVar6 + 0x110" (identifier "iVar6") (+ "+") (number_literal "0x110")) () ")")))) (= "=") (identifier "uVar3")) (; ";")) (} "}"))))) (} "}"))) (} "}"))) (expression_statement "piVar4 = (int *)*piVar4;" (assignment_expression "piVar4 = (int *)*piVar4" (identifier "piVar4") (= "=") (cast_expression "(int *)*piVar4" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar4" (* "*") (identifier "piVar4")))) (; ";")) (if_statement "if (piVar4 == (int *)0x0) {\n        return;\n      }" (if "if") (parenthesized_expression "(piVar4 == (int *)0x0)" (( "(") (binary_expression "piVar4 == (int *)0x0" (identifier "piVar4") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        return;\n      }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "iVar7 = *(int *)(iVar6 + 0x118);" (assignment_expression "iVar7 = *(int *)(iVar6 + 0x118)" (identifier "iVar7") (= "=") (pointer_expression "*(int *)(iVar6 + 0x118)" (* "*") (cast_expression "(int *)(iVar6 + 0x118)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x118)" (( "(") (binary_expression "iVar6 + 0x118" (identifier "iVar6") (+ "+") (number_literal "0x118")) () ")"))))) (; ";")) (} "}"))) (} "}"))) (return_statement "return;" (return "return") (; ";")) (} "}")))

void function_1(type_1 *var_5,int options,type_2 *mods,int suffix)

{
  int var_4;
  int *var_26;
  type_3 *var_8;
  type_3 var_6;
  type_2 *pdVar5;
  type_1 *dpi_00;
  size_t var_12;
  type_4 var_15;
  size_t var_19;
  int *var_3;
  size_t var_20;
  char cVar10;
  char *var_14;
  char *var_13;
  int var_2;
  int var_11;
  type_5 *pdVar13;
  type_6 uVar14;
  type_1 *dpi_01;
  type_7 *in_stack_ffffffbc;
  type_7 *dc;
  char buf [25];
  
  uVar14 = var_1();
  dpi_01 = (type_1 *)((type_8)uVar14 >> 0x20);
  dpi_00 = (type_1 *)uVar14;
  var_11 = var_2 + 0x19ede9;
  if (var_3 != (int *)0x0) {
    var_4 = dpi_00->demangle_failure;
    var_26 = var_3;
    while (var_4 == 0) {
      if (var_26[2] == 0) {
        var_8 = (type_3 *)var_26[1];
        var_6 = *var_8;
        if (var_5 != (type_1 *)0x0) goto LAB_001a0258;
        if (var_6 != 0x4c) {
          if (var_6 < 0x4d) {
            if (4 < var_6 - 0x1c) goto LAB_001a0258;
          }
          else if (1 < var_6 - 0x4e) {
LAB_001a0258:
            pdVar13 = dpi_00->templates;
            var_26[2] = 1;
            dpi_00->templates = (type_5 *)var_26[3];
            if (var_6 == 0x29) {
              var_7
                        (dpi_00,(int)dpi_01,(type_7 *)(var_8 + 3),
                         (type_2 *)*var_26);
              dpi_00->templates = pdVar13;
              return;
            }
            if (var_6 == 0x2a) {
              var_9(dpi_00,(int)dpi_01,(type_7 *)(var_8 + 2),
                                 (type_2 *)*var_26);
              dpi_00->templates = pdVar13;
              return;
            }
            if (var_6 == 2) {
              pdVar5 = dpi_00->modifiers;
              dpi_00->modifiers = (type_2 *)0x0;
              var_10(dpi_01,var_11,in_stack_ffffffbc);
              dpi_00->modifiers = pdVar5;
              var_12 = dpi_00->len;
              if (((type_3)dpi_01 & 4) == 0) {
                var_13 = (char *)(var_11 + -0xd471f);
                var_14 = (char *)(var_11 + -0xd471d);
                cVar10 = ':';
                while( true ) {
                  if (var_12 == 0xff) {
                    dpi_00->buf[0xff] = '\0';
                    (*dpi_00->callback)(dpi_00->buf,0xff,dpi_00->opaque);
                    dpi_00->flush_count = dpi_00->flush_count + 1;
                    var_20 = 1;
                    var_12 = 0;
                  }
                  else {
                    var_20 = var_12 + 1;
                  }
                  var_13 = var_13 + 1;
                  dpi_00->len = var_20;
                  dpi_00->buf[var_12] = cVar10;
                  dpi_00->last_char = cVar10;
                  if (var_13 == var_14) break;
                  cVar10 = *var_13;
                  var_12 = var_20;
                }
              }
              else {
                var_20 = var_12 + 1;
                if (var_12 == 0xff) {
                  dpi_00->buf[0xff] = '\0';
                  (*dpi_00->callback)(dpi_00->buf,0xff,dpi_00->opaque);
                  dpi_00->flush_count = dpi_00->flush_count + 1;
                  var_20 = 1;
                  var_12 = 0;
                }
                dpi_00->len = var_20;
                dpi_00->buf[var_12] = '.';
                dpi_00->last_char = '.';
              }
              dc = *(type_7 **)(var_26[1] + 0xc);
              var_15 = dc->type;
              if (var_15 == var_16) {
                cVar10 = '{';
                var_14 = (char *)(var_11 + -0xd472d);
                var_13 = (char *)(var_11 + -0xd4721);
                var_12 = dpi_00->len;
                while( true ) {
                  if (var_12 == 0xff) {
                    dpi_00->buf[0xff] = '\0';
                    (*dpi_00->callback)(dpi_00->buf,0xff,dpi_00->opaque);
                    dpi_00->flush_count = dpi_00->flush_count + 1;
                    var_20 = 1;
                    var_12 = 0;
                  }
                  else {
                    var_20 = var_12 + 1;
                  }
                  dpi_00->len = var_20;
                  dpi_00->buf[var_12] = cVar10;
                  dpi_00->last_char = cVar10;
                  if (var_14 == var_13) break;
                  cVar10 = *var_14;
                  var_14 = var_14 + 1;
                  var_12 = var_20;
                }
                var_14 = buf;
                var_17(var_14,(char *)(var_11 + -0xd6197),
                        (type_9 *)((int)&((dc->u).s_extended_operator.name)->type + 1));
                var_19 = var_18(var_14);
                var_12 = dpi_00->len;
                if (var_19 != 0) {
                  var_13 = var_14 + var_19;
                  var_20 = var_12;
                  do {
                    cVar10 = *var_14;
                    if (var_20 == 0xff) {
                      dpi_00->buf[0xff] = '\0';
                      (*dpi_00->callback)(dpi_00->buf,0xff,dpi_00->opaque);
                      dpi_00->flush_count = dpi_00->flush_count + 1;
                      var_12 = 1;
                      var_20 = 0;
                    }
                    else {
                      var_12 = var_20 + 1;
                    }
                    var_14 = var_14 + 1;
                    dpi_00->len = var_12;
                    dpi_00->buf[var_20] = cVar10;
                    dpi_00->last_char = cVar10;
                    var_20 = var_12;
                  } while (var_13 != var_14);
                }
                var_13 = (char *)(var_11 + -0xd4720);
                cVar10 = '}';
                var_14 = (char *)(var_11 + -0xd471d);
                do {
                  if (var_12 == 0xff) {
                    var_11 = var_21((int3)((type_3)var_11 >> 8),cVar10);
                    dpi_00->buf[0xff] = '\0';
                    (*dpi_00->callback)(dpi_00->buf,0xff,dpi_00->opaque);
                    dpi_00->flush_count = dpi_00->flush_count + 1;
                    var_20 = 1;
                    var_12 = 0;
                    cVar10 = (char)var_11;
                  }
                  else {
                    var_20 = var_12 + 1;
                  }
                  var_13 = var_13 + 1;
                  dpi_00->len = var_20;
                  dpi_00->buf[var_12] = cVar10;
                  dpi_00->last_char = cVar10;
                  if (var_14 == var_13) goto LAB_001a03d9;
                  cVar10 = *var_13;
                  var_12 = var_20;
                } while( true );
              }
              do {
                if (var_15 != var_22) {
                  if (var_15 < var_23) {
                    if (4 < var_15 - var_24) {
LAB_001a036d:
                      var_10(dpi_01,var_11,dc);
                      dpi_00->templates = pdVar13;
                      return;
                    }
                  }
                  else if (1 < var_15 - var_25) goto LAB_001a036d;
                }
LAB_001a03d9:
                dc = (dc->u).s_fixed.length;
                var_15 = dc->type;
              } while( true );
            }
            type_2(dpi_01,var_11,in_stack_ffffffbc);
            dpi_00->templates = pdVar13;
          }
        }
      }
      var_26 = (int *)*var_26;
      if (var_26 == (int *)0x0) {
        return;
      }
      var_4 = dpi_00->demangle_failure;
    }
  }
  return;
}


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

void MASKED(int param_1)

{
  char *pcVar1;
  char cVar2;
  undefined4 uVar3;
  int *piVar4;
  undefined4 uVar5;
  int iVar6;
  int iVar7;
  uint uVar8;
  size_t sVar9;
  int *extraout_ECX;
  int iVar10;
  undefined1 uVar11;
  undefined1 *puVar12;
  char *__s;
  int unaff_EDI;
  ulonglong uVar13;
  uint *local_44;
  char local_35 [37];
  
  uVar13 = FUN_00058c4a();
  iVar6 = (int)uVar13;
  if (extraout_ECX != (int *)0x0) {
    iVar7 = *(int *)(iVar6 + 0x118);
    piVar4 = extraout_ECX;
    while (iVar7 == 0) {
      if (piVar4[2] == 0) {
        uVar8 = *(uint *)piVar4[1];
        if (param_1 != 0) goto LAB_001a0258;
        if (uVar8 != 0x4c) {
          if (uVar8 < 0x4d) {
            if (4 < uVar8 - 0x1c) goto LAB_001a0258;
          }
          else if (1 < uVar8 - 0x4e) {
LAB_001a0258:
            uVar3 = *(undefined4 *)(iVar6 + 0x110);
            piVar4[2] = 1;
            *(int *)(iVar6 + 0x110) = piVar4[3];
            if (uVar8 == 0x29) {
              FUN_0019fef0(*piVar4);
              *(undefined4 *)(iVar6 + 0x110) = uVar3;
              return;
            }
            if (uVar8 == 0x2a) {
              FUN_001a0610(*piVar4);
              *(undefined4 *)(iVar6 + 0x110) = uVar3;
              return;
            }
            if (uVar8 == 2) {
              uVar5 = *(undefined4 *)(iVar6 + 0x114);
              *(undefined4 *)(iVar6 + 0x114) = 0;
              FUN_0019a610();
              *(undefined4 *)(iVar6 + 0x114) = uVar5;
              iVar7 = *(int *)(iVar6 + 0x100);
              if ((uVar13 & 0x400000000) == 0) {
                puVar12 = (undefined1 *)(unaff_EDI + 0xca6ca);
                uVar11 = 0x3a;
                while( true ) {
                  if (iVar7 == 0xff) {
                    *(undefined1 *)(iVar6 + 0xff) = 0;
                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));
                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;
                    iVar10 = 1;
                    iVar7 = 0;
                  }
                  else {
                    iVar10 = iVar7 + 1;
                  }
                  puVar12 = puVar12 + 1;
                  *(int *)(iVar6 + 0x100) = iVar10;
                  *(undefined1 *)(iVar6 + iVar7) = uVar11;
                  *(undefined1 *)(iVar6 + 0x104) = uVar11;
                  if (puVar12 == (undefined1 *)(unaff_EDI + 0xca6cc)) break;
                  uVar11 = *puVar12;
                  iVar7 = iVar10;
                }
              }
              else {
                iVar10 = iVar7 + 1;
                if (iVar7 == 0xff) {
                  *(undefined1 *)(iVar6 + 0xff) = 0;
                  (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));
                  *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;
                  iVar10 = 1;
                  iVar7 = 0;
                }
                *(int *)(iVar6 + 0x100) = iVar10;
                *(undefined1 *)(iVar6 + iVar7) = 0x2e;
                *(undefined1 *)(iVar6 + 0x104) = 0x2e;
              }
              local_44 = *(uint **)(piVar4[1] + 0xc);
              uVar8 = *local_44;
              if (uVar8 == 0x46) {
                uVar11 = 0x7b;
                puVar12 = (undefined1 *)(unaff_EDI + 0xca6bc);
                iVar7 = *(int *)(iVar6 + 0x100);
                while( true ) {
                  if (iVar7 == 0xff) {
                    *(undefined1 *)(iVar6 + 0xff) = 0;
                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));
                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;
                    iVar10 = 1;
                    iVar7 = 0;
                  }
                  else {
                    iVar10 = iVar7 + 1;
                  }
                  *(int *)(iVar6 + 0x100) = iVar10;
                  *(undefined1 *)(iVar6 + iVar7) = uVar11;
                  *(undefined1 *)(iVar6 + 0x104) = uVar11;
                  if (puVar12 == (undefined1 *)(unaff_EDI + 0xca6c8)) break;
                  uVar11 = *puVar12;
                  puVar12 = puVar12 + 1;
                  iVar7 = iVar10;
                }
                __s = local_35;
                sprintf(__s,(char *)(unaff_EDI + 0xc8c52),local_44[3] + 1);
                sVar9 = strlen(__s);
                iVar7 = *(int *)(iVar6 + 0x100);
                if (sVar9 != 0) {
                  pcVar1 = __s + sVar9;
                  iVar10 = iVar7;
                  do {
                    cVar2 = *__s;
                    if (iVar10 == 0xff) {
                      *(undefined1 *)(iVar6 + 0xff) = 0;
                      (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));
                      *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;
                      iVar7 = 1;
                      iVar10 = 0;
                    }
                    else {
                      iVar7 = iVar10 + 1;
                    }
                    __s = __s + 1;
                    *(int *)(iVar6 + 0x100) = iVar7;
                    *(char *)(iVar6 + iVar10) = cVar2;
                    *(char *)(iVar6 + 0x104) = cVar2;
                    iVar10 = iVar7;
                  } while (pcVar1 != __s);
                }
                puVar12 = (undefined1 *)(unaff_EDI + 0xca6c9);
                uVar11 = 0x7d;
                do {
                  if (iVar7 == 0xff) {
                    *(undefined1 *)(iVar6 + 0xff) = 0;
                    (**(code **)(iVar6 + 0x108))(iVar6,0xff,*(undefined4 *)(iVar6 + 0x10c));
                    *(int *)(iVar6 + 0x128) = *(int *)(iVar6 + 0x128) + 1;
                    iVar10 = 1;
                    iVar7 = 0;
                  }
                  else {
                    iVar10 = iVar7 + 1;
                  }
                  puVar12 = puVar12 + 1;
                  *(int *)(iVar6 + 0x100) = iVar10;
                  *(undefined1 *)(iVar6 + iVar7) = uVar11;
                  *(undefined1 *)(iVar6 + 0x104) = uVar11;
                  if ((undefined1 *)(unaff_EDI + 0xca6cc) == puVar12) goto LAB_001a03d9;
                  uVar11 = *puVar12;
                  iVar7 = iVar10;
                } while( true );
              }
              do {
                if (uVar8 != 0x4c) {
                  if (uVar8 < 0x4d) {
                    if (4 < uVar8 - 0x1c) {
LAB_001a036d:
                      FUN_0019a610();
                      *(undefined4 *)(iVar6 + 0x110) = uVar3;
                      return;
                    }
                  }
                  else if (1 < uVar8 - 0x4e) goto LAB_001a036d;
                }
LAB_001a03d9:
                local_44 = (uint *)local_44[2];
                uVar8 = *local_44;
              } while( true );
            }
            FUN_0019f570();
            *(undefined4 *)(iVar6 + 0x110) = uVar3;
          }
        }
      }
      piVar4 = (int *)*piVar4;
      if (piVar4 == (int *)0x0) {
        return;
      }
      iVar7 = *(int *)(iVar6 + 0x118);
    }
  }
  return;
}

