
void d_print_mod(d_print_info *dpi,int options,demangle_component *mod)

{
  void *pvVar1;
  size_t sVar2;
  size_t sVar3;
  demangle_component *dc;
  char cVar4;
  char *pcVar5;
  
  switch(mod->type) {
  case DEMANGLE_COMPONENT_TYPED_NAME:
    mod = (mod->u).s_fixed.length;
  case DEMANGLE_COMPONENT_TEMPLATE:
  case DEMANGLE_COMPONENT_TEMPLATE_PARAM:
  case DEMANGLE_COMPONENT_FUNCTION_PARAM:
  case DEMANGLE_COMPONENT_CTOR:
  case DEMANGLE_COMPONENT_DTOR:
  case DEMANGLE_COMPONENT_VTABLE:
  case DEMANGLE_COMPONENT_VTT:
  case DEMANGLE_COMPONENT_CONSTRUCTION_VTABLE:
  case DEMANGLE_COMPONENT_TYPEINFO:
  case DEMANGLE_COMPONENT_TYPEINFO_NAME:
  case DEMANGLE_COMPONENT_TYPEINFO_FN:
  case DEMANGLE_COMPONENT_THUNK:
  case DEMANGLE_COMPONENT_VIRTUAL_THUNK:
  case DEMANGLE_COMPONENT_COVARIANT_THUNK:
  case DEMANGLE_COMPONENT_JAVA_CLASS:
  case DEMANGLE_COMPONENT_GUARD:
  case DEMANGLE_COMPONENT_TLS_INIT:
  case DEMANGLE_COMPONENT_TLS_WRAPPER:
  case DEMANGLE_COMPONENT_REFTEMP:
  case DEMANGLE_COMPONENT_HIDDEN_ALIAS:
  case DEMANGLE_COMPONENT_SUB_STD:
  case DEMANGLE_COMPONENT_BUILTIN_TYPE:
  case DEMANGLE_COMPONENT_VENDOR_TYPE:
  case DEMANGLE_COMPONENT_FUNCTION_TYPE:
  case DEMANGLE_COMPONENT_ARRAY_TYPE:
  case DEMANGLE_COMPONENT_FIXED_TYPE:
  case DEMANGLE_COMPONENT_ARGLIST:
  case DEMANGLE_COMPONENT_TEMPLATE_ARGLIST:
  case DEMANGLE_COMPONENT_INITIALIZER_LIST:
  case DEMANGLE_COMPONENT_OPERATOR:
  case DEMANGLE_COMPONENT_EXTENDED_OPERATOR:
  case DEMANGLE_COMPONENT_CAST:
  case DEMANGLE_COMPONENT_CONVERSION:
  case DEMANGLE_COMPONENT_NULLARY:
  case DEMANGLE_COMPONENT_UNARY:
  case DEMANGLE_COMPONENT_BINARY:
  case DEMANGLE_COMPONENT_BINARY_ARGS:
  case DEMANGLE_COMPONENT_TRINARY:
  case DEMANGLE_COMPONENT_TRINARY_ARG1:
  case DEMANGLE_COMPONENT_TRINARY_ARG2:
  case DEMANGLE_COMPONENT_LITERAL:
  case DEMANGLE_COMPONENT_LITERAL_NEG:
  case DEMANGLE_COMPONENT_JAVA_RESOURCE:
  case DEMANGLE_COMPONENT_COMPOUND_NAME:
  case DEMANGLE_COMPONENT_CHARACTER:
  case DEMANGLE_COMPONENT_NUMBER:
  case DEMANGLE_COMPONENT_DECLTYPE:
  case DEMANGLE_COMPONENT_GLOBAL_CONSTRUCTORS:
  case DEMANGLE_COMPONENT_GLOBAL_DESTRUCTORS:
  case DEMANGLE_COMPONENT_LAMBDA:
  case DEMANGLE_COMPONENT_DEFAULT_ARG:
  case DEMANGLE_COMPONENT_UNNAMED_TYPE:
  case DEMANGLE_COMPONENT_TRANSACTION_CLONE:
  case DEMANGLE_COMPONENT_NONTRANSACTION_CLONE:
  case DEMANGLE_COMPONENT_PACK_EXPANSION:
  case DEMANGLE_COMPONENT_TAGGED_NAME:
  case DEMANGLE_COMPONENT_CLONE:
switchD_002e52d3_caseD_4:
    d_print_comp(dpi,options,mod);
    return;
  case DEMANGLE_COMPONENT_RESTRICT:
  case DEMANGLE_COMPONENT_RESTRICT_THIS:
    pcVar5 = " restrict";
    cVar4 = ' ';
    sVar3 = dpi->len;
    while( true ) {
      pcVar5 = pcVar5 + 1;
      if (sVar3 == 0xff) {
        pvVar1 = dpi->opaque;
        dpi->buf[0xff] = '\0';
        (*dpi->callback)(dpi->buf,0xff,pvVar1);
        dpi->flush_count = dpi->flush_count + 1;
        sVar2 = 1;
        sVar3 = 0;
      }
      else {
        sVar2 = sVar3 + 1;
      }
      dpi->len = sVar2;
      dpi->buf[sVar3] = cVar4;
      dpi->last_char = cVar4;
      if (pcVar5 == "") break;
      cVar4 = *pcVar5;
      sVar3 = sVar2;
    }
    break;
  case DEMANGLE_COMPONENT_VOLATILE:
  case DEMANGLE_COMPONENT_VOLATILE_THIS:
    pcVar5 = "volatile";
    cVar4 = ' ';
    sVar3 = dpi->len;
    while( true ) {
      if (sVar3 == 0xff) {
        pvVar1 = dpi->opaque;
        dpi->buf[0xff] = '\0';
        (*dpi->callback)(dpi->buf,0xff,pvVar1);
        dpi->flush_count = dpi->flush_count + 1;
        sVar2 = 1;
        sVar3 = 0;
      }
      else {
        sVar2 = sVar3 + 1;
      }
      dpi->len = sVar2;
      dpi->buf[sVar3] = cVar4;
      dpi->last_char = cVar4;
      if (pcVar5 == "") break;
      cVar4 = *pcVar5;
      pcVar5 = pcVar5 + 1;
      sVar3 = sVar2;
    }
    break;
  case DEMANGLE_COMPONENT_CONST:
  case DEMANGLE_COMPONENT_CONST_THIS:
    pcVar5 = " const";
    cVar4 = ' ';
    sVar3 = dpi->len;
    while( true ) {
      if (sVar3 == 0xff) {
        pvVar1 = dpi->opaque;
        dpi->buf[0xff] = '\0';
        (*dpi->callback)(dpi->buf,0xff,pvVar1);
        dpi->flush_count = dpi->flush_count + 1;
        sVar2 = 1;
        sVar3 = 0;
      }
      else {
        sVar2 = sVar3 + 1;
      }
      pcVar5 = pcVar5 + 1;
      dpi->len = sVar2;
      dpi->buf[sVar3] = cVar4;
      dpi->last_char = cVar4;
      if (pcVar5 == "") break;
      cVar4 = *pcVar5;
      sVar3 = sVar2;
    }
    break;
  case DEMANGLE_COMPONENT_REFERENCE_THIS:
    if (dpi->len == 0xff) {
      dpi->buf[0xff] = '\0';
      (*dpi->callback)(dpi->buf,0xff,dpi->opaque);
      dpi->flush_count = dpi->flush_count + 1;
      dpi->len = 0;
    }
    sVar2 = dpi->len;
    sVar3 = sVar2 + 1;
    dpi->len = sVar3;
    dpi->buf[sVar2] = ' ';
    dpi->last_char = ' ';
    goto LAB_002e5807;
  case DEMANGLE_COMPONENT_RVALUE_REFERENCE_THIS:
    if (dpi->len == 0xff) {
      dpi->buf[0xff] = '\0';
      (*dpi->callback)(dpi->buf,0xff,dpi->opaque);
      dpi->flush_count = dpi->flush_count + 1;
      dpi->len = 0;
    }
    sVar2 = dpi->len;
    sVar3 = sVar2 + 1;
    dpi->len = sVar3;
    dpi->buf[sVar2] = ' ';
    dpi->last_char = ' ';
    goto LAB_002e5867;
  case DEMANGLE_COMPONENT_VENDOR_TYPE_QUAL:
    if (dpi->len == 0xff) {
      dpi->buf[0xff] = '\0';
      (*dpi->callback)(dpi->buf,0xff,dpi->opaque);
      dpi->flush_count = dpi->flush_count + 1;
      dpi->len = 0;
    }
    sVar3 = dpi->len;
    dpi->len = sVar3 + 1;
    dpi->buf[sVar3] = ' ';
    dpi->last_char = ' ';
    mod = (mod->u).s_extended_operator.name;
    goto switchD_002e52d3_caseD_4;
  case DEMANGLE_COMPONENT_POINTER:
    if ((options & 4U) == 0) {
      if (dpi->len == 0xff) {
        dpi->buf[0xff] = '\0';
        (*dpi->callback)(dpi->buf,0xff,dpi->opaque);
        dpi->flush_count = dpi->flush_count + 1;
        dpi->len = 0;
      }
      sVar3 = dpi->len;
      dpi->len = sVar3 + 1;
      dpi->buf[sVar3] = '*';
      dpi->last_char = '*';
    }
    break;
  case DEMANGLE_COMPONENT_REFERENCE:
    sVar3 = dpi->len;
LAB_002e5807:
    sVar2 = sVar3 + 1;
    if (sVar3 == 0xff) {
      pvVar1 = dpi->opaque;
      dpi->buf[0xff] = '\0';
      (*dpi->callback)(dpi->buf,0xff,pvVar1);
      dpi->flush_count = dpi->flush_count + 1;
      sVar2 = 1;
      sVar3 = 0;
    }
    dpi->len = sVar2;
    dpi->buf[sVar3] = '&';
    dpi->last_char = '&';
    break;
  case DEMANGLE_COMPONENT_RVALUE_REFERENCE:
    sVar3 = dpi->len;
LAB_002e5867:
    pcVar5 = "&&";
    cVar4 = '&';
    while( true ) {
      if (sVar3 == 0xff) {
        pvVar1 = dpi->opaque;
        dpi->buf[0xff] = '\0';
        (*dpi->callback)(dpi->buf,0xff,pvVar1);
        dpi->flush_count = dpi->flush_count + 1;
        sVar2 = 1;
        sVar3 = 0;
      }
      else {
        sVar2 = sVar3 + 1;
      }
      pcVar5 = pcVar5 + 1;
      dpi->len = sVar2;
      dpi->buf[sVar3] = cVar4;
      dpi->last_char = cVar4;
      if (pcVar5 == "") break;
      cVar4 = *pcVar5;
      sVar3 = sVar2;
    }
    break;
  case DEMANGLE_COMPONENT_COMPLEX:
    pcVar5 = "complex ";
    cVar4 = 'c';
    sVar3 = dpi->len;
    while( true ) {
      if (sVar3 == 0xff) {
        pvVar1 = dpi->opaque;
        dpi->buf[0xff] = '\0';
        (*dpi->callback)(dpi->buf,0xff,pvVar1);
        dpi->flush_count = dpi->flush_count + 1;
        sVar2 = 1;
        sVar3 = 0;
      }
      else {
        sVar2 = sVar3 + 1;
      }
      pcVar5 = pcVar5 + 1;
      dpi->len = sVar2;
      dpi->buf[sVar3] = cVar4;
      dpi->last_char = cVar4;
      if (pcVar5 == "") break;
      cVar4 = *pcVar5;
      sVar3 = sVar2;
    }
    break;
  case DEMANGLE_COMPONENT_IMAGINARY:
    pcVar5 = "imaginary ";
    cVar4 = 'i';
    sVar3 = dpi->len;
    while( true ) {
      pcVar5 = pcVar5 + 1;
      if (sVar3 == 0xff) {
        pvVar1 = dpi->opaque;
        dpi->buf[0xff] = '\0';
        (*dpi->callback)(dpi->buf,0xff,pvVar1);
        dpi->flush_count = dpi->flush_count + 1;
        sVar2 = 1;
        sVar3 = 0;
      }
      else {
        sVar2 = sVar3 + 1;
      }
      dpi->len = sVar2;
      dpi->buf[sVar3] = cVar4;
      dpi->last_char = cVar4;
      if (pcVar5 == "") break;
      cVar4 = *pcVar5;
      sVar3 = sVar2;
    }
    break;
  case DEMANGLE_COMPONENT_PTRMEM_TYPE:
    if (dpi->last_char != '(') {
      sVar2 = dpi->len;
      sVar3 = sVar2 + 1;
      if (sVar2 == 0xff) {
        pvVar1 = dpi->opaque;
        dpi->buf[0xff] = '\0';
        (*dpi->callback)(dpi->buf,0xff,pvVar1);
        dpi->flush_count = dpi->flush_count + 1;
        sVar3 = 1;
        sVar2 = 0;
      }
      dpi->len = sVar3;
      dpi->buf[sVar2] = ' ';
      dpi->last_char = ' ';
    }
    pcVar5 = "::*";
    cVar4 = ':';
    d_print_comp(dpi,options,(mod->u).s_fixed.length);
    sVar3 = dpi->len;
    while( true ) {
      if (sVar3 == 0xff) {
        pvVar1 = dpi->opaque;
        dpi->buf[0xff] = '\0';
        (*dpi->callback)(dpi->buf,0xff,pvVar1);
        dpi->flush_count = dpi->flush_count + 1;
        sVar2 = 1;
        sVar3 = 0;
      }
      else {
        sVar2 = sVar3 + 1;
      }
      pcVar5 = pcVar5 + 1;
      dpi->len = sVar2;
      dpi->buf[sVar3] = cVar4;
      dpi->last_char = cVar4;
      if (pcVar5 == "") break;
      cVar4 = *pcVar5;
      sVar3 = sVar2;
    }
    break;
  case DEMANGLE_COMPONENT_VECTOR_TYPE:
    pcVar5 = " __vector(";
    cVar4 = ' ';
    sVar3 = dpi->len;
    while( true ) {
      pcVar5 = pcVar5 + 1;
      if (sVar3 == 0xff) {
        pvVar1 = dpi->opaque;
        dpi->buf[0xff] = '\0';
        (*dpi->callback)(dpi->buf,0xff,pvVar1);
        dpi->flush_count = dpi->flush_count + 1;
        sVar2 = 1;
        sVar3 = 0;
      }
      else {
        sVar2 = sVar3 + 1;
      }
      dpi->len = sVar2;
      dpi->buf[sVar3] = cVar4;
      dpi->last_char = cVar4;
      if (pcVar5 == "") break;
      cVar4 = *pcVar5;
      sVar3 = sVar2;
    }
    dc = (mod->u).s_fixed.length;
    goto LAB_002e5aba;
  case DEMANGLE_COMPONENT_TRANSACTION_SAFE:
    pcVar5 = " transaction_safe";
    cVar4 = ' ';
    sVar3 = dpi->len;
    while( true ) {
      pcVar5 = pcVar5 + 1;
      if (sVar3 == 0xff) {
        pvVar1 = dpi->opaque;
        dpi->buf[0xff] = '\0';
        (*dpi->callback)(dpi->buf,0xff,pvVar1);
        dpi->flush_count = dpi->flush_count + 1;
        sVar2 = 1;
        sVar3 = 0;
      }
      else {
        sVar2 = sVar3 + 1;
      }
      dpi->len = sVar2;
      dpi->buf[sVar3] = cVar4;
      dpi->last_char = cVar4;
      if (pcVar5 == "") break;
      cVar4 = *pcVar5;
      sVar3 = sVar2;
    }
    break;
  case DEMANGLE_COMPONENT_NOEXCEPT:
    pcVar5 = " noexcept";
    cVar4 = ' ';
    sVar3 = dpi->len;
    while( true ) {
      pcVar5 = pcVar5 + 1;
      if (sVar3 == 0xff) {
        pvVar1 = dpi->opaque;
        dpi->buf[0xff] = '\0';
        (*dpi->callback)(dpi->buf,0xff,pvVar1);
        dpi->flush_count = dpi->flush_count + 1;
        sVar2 = 1;
        sVar3 = 0;
      }
      else {
        sVar2 = sVar3 + 1;
      }
      dpi->len = sVar2;
      dpi->buf[sVar3] = cVar4;
      dpi->last_char = cVar4;
      if (pcVar5 == "") break;
      cVar4 = *pcVar5;
      sVar3 = sVar2;
    }
    goto LAB_002e5a60;
  case DEMANGLE_COMPONENT_THROW_SPEC:
    pcVar5 = " throw";
    cVar4 = ' ';
    sVar3 = dpi->len;
    while( true ) {
      if (sVar3 == 0xff) {
        pvVar1 = dpi->opaque;
        dpi->buf[0xff] = '\0';
        (*dpi->callback)(dpi->buf,0xff,pvVar1);
        dpi->flush_count = dpi->flush_count + 1;
        sVar2 = 1;
        sVar3 = 0;
      }
      else {
        sVar2 = sVar3 + 1;
      }
      pcVar5 = pcVar5 + 1;
      dpi->len = sVar2;
      dpi->buf[sVar3] = cVar4;
      dpi->last_char = cVar4;
      if (pcVar5 == "") break;
      cVar4 = *pcVar5;
      sVar3 = sVar2;
    }
LAB_002e5a60:
    dc = (mod->u).s_extended_operator.name;
    if (dc != (demangle_component *)0x0) {
      sVar3 = sVar2 + 1;
      if (sVar2 == 0xff) {
        pvVar1 = dpi->opaque;
        dpi->buf[0xff] = '\0';
        (*dpi->callback)(dpi->buf,0xff,pvVar1);
        dpi->flush_count = dpi->flush_count + 1;
        dc = (mod->u).s_extended_operator.name;
        sVar2 = 0;
        sVar3 = 1;
      }
      dpi->len = sVar3;
      dpi->buf[sVar2] = '(';
      dpi->last_char = '(';
LAB_002e5aba:
      d_print_comp(dpi,options,dc);
      sVar2 = dpi->len;
      sVar3 = sVar2 + 1;
      if (sVar2 == 0xff) {
        pvVar1 = dpi->opaque;
        dpi->buf[0xff] = '\0';
        (*dpi->callback)(dpi->buf,0xff,pvVar1);
        dpi->flush_count = dpi->flush_count + 1;
        sVar3 = 1;
        sVar2 = 0;
      }
      dpi->len = sVar3;
      dpi->buf[sVar2] = ')';
      dpi->last_char = ')';
      return;
    }
    break;
  default:
    d_print_comp(dpi,options,mod);
    return;
  }
  return;
}



void FUN_002e52a0(long param_1,ulong param_2,int *param_3)

{
  long lVar1;
  long lVar2;
  long lVar3;
  undefined *puVar4;
  undefined1 uVar5;
  ulong uVar6;
  char *pcVar7;
  char cVar8;
  
  if (0x4c < *param_3 - 3U) {
    FUN_002e5210();
    return;
  }
  uVar6 = param_2 & 0xffffffff;
  switch(*param_3) {
  case 3:
    param_3 = *(int **)(param_3 + 2);
  default:
switchD_002e52d3_caseD_4:
    FUN_002e5210(param_1,param_2,param_3);
    return;
  case 0x19:
  case 0x1c:
    pcVar7 = " restrict";
    cVar8 = ' ';
    lVar3 = *(long *)(param_1 + 0x100);
    while( true ) {
      pcVar7 = pcVar7 + 1;
      if (lVar3 == 0xff) {
        *(undefined1 *)(param_1 + 0xff) = 0;
        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));
        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;
        lVar1 = 1;
        lVar3 = 0;
      }
      else {
        lVar1 = lVar3 + 1;
      }
      *(long *)(param_1 + 0x100) = lVar1;
      *(char *)(param_1 + lVar3) = cVar8;
      *(char *)(param_1 + 0x108) = cVar8;
      if (pcVar7 == "") break;
      cVar8 = *pcVar7;
      lVar3 = lVar1;
    }
    break;
  case 0x1a:
  case 0x1d:
    pcVar7 = "volatile";
    cVar8 = ' ';
    lVar3 = *(long *)(param_1 + 0x100);
    while( true ) {
      if (lVar3 == 0xff) {
        *(undefined1 *)(param_1 + 0xff) = 0;
        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));
        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;
        lVar1 = 1;
        lVar3 = 0;
      }
      else {
        lVar1 = lVar3 + 1;
      }
      *(long *)(param_1 + 0x100) = lVar1;
      *(char *)(param_1 + lVar3) = cVar8;
      *(char *)(param_1 + 0x108) = cVar8;
      if (pcVar7 == "") break;
      cVar8 = *pcVar7;
      pcVar7 = pcVar7 + 1;
      lVar3 = lVar1;
    }
    break;
  case 0x1b:
  case 0x1e:
    pcVar7 = " const";
    cVar8 = ' ';
    lVar3 = *(long *)(param_1 + 0x100);
    while( true ) {
      if (lVar3 == 0xff) {
        *(undefined1 *)(param_1 + 0xff) = 0;
        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));
        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;
        lVar1 = 1;
        lVar3 = 0;
      }
      else {
        lVar1 = lVar3 + 1;
      }
      pcVar7 = pcVar7 + 1;
      *(long *)(param_1 + 0x100) = lVar1;
      *(char *)(param_1 + lVar3) = cVar8;
      *(char *)(param_1 + 0x108) = cVar8;
      if (pcVar7 == "") break;
      cVar8 = *pcVar7;
      lVar3 = lVar1;
    }
    break;
  case 0x1f:
    if (*(long *)(param_1 + 0x100) == 0xff) {
      *(undefined1 *)(param_1 + 0xff) = 0;
      (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));
      *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;
      *(undefined8 *)(param_1 + 0x100) = 0;
    }
    lVar1 = *(long *)(param_1 + 0x100);
    lVar3 = lVar1 + 1;
    *(long *)(param_1 + 0x100) = lVar3;
    *(undefined1 *)(param_1 + lVar1) = 0x20;
    *(undefined1 *)(param_1 + 0x108) = 0x20;
    goto LAB_002e5807;
  case 0x20:
    if (*(long *)(param_1 + 0x100) == 0xff) {
      *(undefined1 *)(param_1 + 0xff) = 0;
      (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));
      *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;
      *(undefined8 *)(param_1 + 0x100) = 0;
    }
    lVar1 = *(long *)(param_1 + 0x100);
    lVar3 = lVar1 + 1;
    *(long *)(param_1 + 0x100) = lVar3;
    *(undefined1 *)(param_1 + lVar1) = 0x20;
    *(undefined1 *)(param_1 + 0x108) = 0x20;
    goto LAB_002e5867;
  case 0x21:
    if (*(long *)(param_1 + 0x100) == 0xff) {
      *(undefined1 *)(param_1 + 0xff) = 0;
      (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));
      *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;
      *(undefined8 *)(param_1 + 0x100) = 0;
    }
    lVar3 = *(long *)(param_1 + 0x100);
    *(long *)(param_1 + 0x100) = lVar3 + 1;
    *(undefined1 *)(param_1 + lVar3) = 0x20;
    *(undefined1 *)(param_1 + 0x108) = 0x20;
    param_3 = *(int **)(param_3 + 4);
    param_2 = uVar6;
    goto switchD_002e52d3_caseD_4;
  case 0x22:
    if ((param_2 & 4) == 0) {
      if (*(long *)(param_1 + 0x100) == 0xff) {
        *(undefined1 *)(param_1 + 0xff) = 0;
        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));
        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;
        *(undefined8 *)(param_1 + 0x100) = 0;
      }
      lVar3 = *(long *)(param_1 + 0x100);
      *(long *)(param_1 + 0x100) = lVar3 + 1;
      *(undefined1 *)(param_1 + lVar3) = 0x2a;
      *(undefined1 *)(param_1 + 0x108) = 0x2a;
    }
    break;
  case 0x23:
    lVar3 = *(long *)(param_1 + 0x100);
LAB_002e5807:
    lVar1 = lVar3 + 1;
    if (lVar3 == 0xff) {
      *(undefined1 *)(param_1 + 0xff) = 0;
      (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));
      *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;
      lVar1 = 1;
      lVar3 = 0;
    }
    *(long *)(param_1 + 0x100) = lVar1;
    *(undefined1 *)(param_1 + lVar3) = 0x26;
    *(undefined1 *)(param_1 + 0x108) = 0x26;
    break;
  case 0x24:
    lVar3 = *(long *)(param_1 + 0x100);
LAB_002e5867:
    puVar4 = &DAT_003a6db5;
    uVar5 = 0x26;
    while( true ) {
      if (lVar3 == 0xff) {
        *(undefined1 *)(param_1 + 0xff) = 0;
        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));
        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;
        lVar1 = 1;
        lVar3 = 0;
      }
      else {
        lVar1 = lVar3 + 1;
      }
      puVar4 = puVar4 + 1;
      *(long *)(param_1 + 0x100) = lVar1;
      *(undefined1 *)(param_1 + lVar3) = uVar5;
      *(undefined1 *)(param_1 + 0x108) = uVar5;
      if (puVar4 == &DAT_003a6db7) break;
      uVar5 = *puVar4;
      lVar3 = lVar1;
    }
    break;
  case 0x25:
    pcVar7 = "complex ";
    cVar8 = 'c';
    lVar3 = *(long *)(param_1 + 0x100);
    while( true ) {
      if (lVar3 == 0xff) {
        *(undefined1 *)(param_1 + 0xff) = 0;
        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));
        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;
        lVar1 = 1;
        lVar3 = 0;
      }
      else {
        lVar1 = lVar3 + 1;
      }
      pcVar7 = pcVar7 + 1;
      *(long *)(param_1 + 0x100) = lVar1;
      *(char *)(param_1 + lVar3) = cVar8;
      *(char *)(param_1 + 0x108) = cVar8;
      if (pcVar7 == "") break;
      cVar8 = *pcVar7;
      lVar3 = lVar1;
    }
    break;
  case 0x26:
    pcVar7 = "imaginary ";
    cVar8 = 'i';
    lVar3 = *(long *)(param_1 + 0x100);
    while( true ) {
      pcVar7 = pcVar7 + 1;
      if (lVar3 == 0xff) {
        *(undefined1 *)(param_1 + 0xff) = 0;
        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));
        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;
        lVar1 = 1;
        lVar3 = 0;
      }
      else {
        lVar1 = lVar3 + 1;
      }
      *(long *)(param_1 + 0x100) = lVar1;
      *(char *)(param_1 + lVar3) = cVar8;
      *(char *)(param_1 + 0x108) = cVar8;
      if (pcVar7 == "") break;
      cVar8 = *pcVar7;
      lVar3 = lVar1;
    }
    break;
  case 0x2b:
    if (*(char *)(param_1 + 0x108) != '(') {
      lVar1 = *(long *)(param_1 + 0x100);
      lVar3 = lVar1 + 1;
      if (lVar1 == 0xff) {
        *(undefined1 *)(param_1 + 0xff) = 0;
        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));
        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;
        lVar3 = 1;
        lVar1 = 0;
      }
      *(long *)(param_1 + 0x100) = lVar3;
      *(undefined1 *)(param_1 + lVar1) = 0x20;
      *(undefined1 *)(param_1 + 0x108) = 0x20;
    }
    puVar4 = &DAT_003a9d5a;
    uVar5 = 0x3a;
    FUN_002e5210(param_1,uVar6,*(undefined8 *)(param_3 + 2));
    lVar3 = *(long *)(param_1 + 0x100);
    while( true ) {
      if (lVar3 == 0xff) {
        *(undefined1 *)(param_1 + 0xff) = 0;
        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));
        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;
        lVar1 = 1;
        lVar3 = 0;
      }
      else {
        lVar1 = lVar3 + 1;
      }
      puVar4 = puVar4 + 1;
      *(long *)(param_1 + 0x100) = lVar1;
      *(undefined1 *)(param_1 + lVar3) = uVar5;
      *(undefined1 *)(param_1 + 0x108) = uVar5;
      if (puVar4 == &DAT_003a9d5d) break;
      uVar5 = *puVar4;
      lVar3 = lVar1;
    }
    break;
  case 0x2d:
    pcVar7 = " __vector(";
    cVar8 = ' ';
    lVar3 = *(long *)(param_1 + 0x100);
    while( true ) {
      pcVar7 = pcVar7 + 1;
      if (lVar3 == 0xff) {
        *(undefined1 *)(param_1 + 0xff) = 0;
        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));
        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;
        lVar1 = 1;
        lVar3 = 0;
      }
      else {
        lVar1 = lVar3 + 1;
      }
      *(long *)(param_1 + 0x100) = lVar1;
      *(char *)(param_1 + lVar3) = cVar8;
      *(char *)(param_1 + 0x108) = cVar8;
      if (pcVar7 == "") break;
      cVar8 = *pcVar7;
      lVar3 = lVar1;
    }
    lVar3 = *(long *)(param_3 + 2);
    goto LAB_002e5aba;
  case 0x4c:
    pcVar7 = " transaction_safe";
    cVar8 = ' ';
    lVar3 = *(long *)(param_1 + 0x100);
    while( true ) {
      pcVar7 = pcVar7 + 1;
      if (lVar3 == 0xff) {
        *(undefined1 *)(param_1 + 0xff) = 0;
        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));
        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;
        lVar1 = 1;
        lVar3 = 0;
      }
      else {
        lVar1 = lVar3 + 1;
      }
      *(long *)(param_1 + 0x100) = lVar1;
      *(char *)(param_1 + lVar3) = cVar8;
      *(char *)(param_1 + 0x108) = cVar8;
      if (pcVar7 == "") break;
      cVar8 = *pcVar7;
      lVar3 = lVar1;
    }
    break;
  case 0x4e:
    pcVar7 = " noexcept";
    cVar8 = ' ';
    lVar3 = *(long *)(param_1 + 0x100);
    while( true ) {
      pcVar7 = pcVar7 + 1;
      if (lVar3 == 0xff) {
        *(undefined1 *)(param_1 + 0xff) = 0;
        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));
        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;
        lVar1 = 1;
        lVar3 = 0;
      }
      else {
        lVar1 = lVar3 + 1;
      }
      *(long *)(param_1 + 0x100) = lVar1;
      *(char *)(param_1 + lVar3) = cVar8;
      *(char *)(param_1 + 0x108) = cVar8;
      if (pcVar7 == "") break;
      cVar8 = *pcVar7;
      lVar3 = lVar1;
    }
    goto LAB_002e5a60;
  case 0x4f:
    pcVar7 = " throw";
    cVar8 = ' ';
    lVar3 = *(long *)(param_1 + 0x100);
    while( true ) {
      if (lVar3 == 0xff) {
        *(undefined1 *)(param_1 + 0xff) = 0;
        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));
        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;
        lVar1 = 1;
        lVar3 = 0;
      }
      else {
        lVar1 = lVar3 + 1;
      }
      pcVar7 = pcVar7 + 1;
      *(long *)(param_1 + 0x100) = lVar1;
      *(char *)(param_1 + lVar3) = cVar8;
      *(char *)(param_1 + 0x108) = cVar8;
      if (pcVar7 == "") break;
      cVar8 = *pcVar7;
      lVar3 = lVar1;
    }
LAB_002e5a60:
    lVar3 = *(long *)(param_3 + 4);
    if (lVar3 != 0) {
      lVar2 = lVar1 + 1;
      if (lVar1 == 0xff) {
        *(undefined1 *)(param_1 + 0xff) = 0;
        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));
        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;
        lVar3 = *(long *)(param_3 + 4);
        lVar1 = 0;
        lVar2 = 1;
      }
      *(long *)(param_1 + 0x100) = lVar2;
      *(undefined1 *)(param_1 + lVar1) = 0x28;
      *(undefined1 *)(param_1 + 0x108) = 0x28;
LAB_002e5aba:
      FUN_002e5210(param_1,uVar6,lVar3);
      lVar1 = *(long *)(param_1 + 0x100);
      lVar3 = lVar1 + 1;
      if (lVar1 == 0xff) {
        *(undefined1 *)(param_1 + 0xff) = 0;
        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));
        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;
        lVar3 = 1;
        lVar1 = 0;
      }
      *(long *)(param_1 + 0x100) = lVar3;
      *(undefined1 *)(param_1 + lVar1) = 0x29;
      *(undefined1 *)(param_1 + 0x108) = 0x29;
      return;
    }
  }
  return;
}


MOV EAX,dword ptr [RDX]
SUB EAX,0x3
CMP EAX,0x4c
JA 0x002e5bd8
PUSH R15
LEA RCX,[0x3a9654]
PUSH R14
PUSH R13
PUSH R12
MOV R12D,ESI
PUSH RBP
MOV RBP,RDX
PUSH RBX
MOV RBX,RDI
SUB RSP,0x8
MOVSXD RAX,dword ptr [RCX + RAX*0x4]
ADD RAX,RCX
JMP RAX
CMP byte ptr [RDI + 0x108],0x28
JZ 0x002e532e
MOV RAX,qword ptr [RDI + 0x100]
LEA RDX,[RAX + 0x1]
CMP RAX,0xff
JNZ 0x002e531c
MOV RDX,qword ptr [RDI + 0x118]
MOV byte ptr [RDI + 0xff],0x0
MOV ESI,0xff
CALL qword ptr [RDI + 0x110]
ADD qword ptr [RBX + 0x140],0x1
MOV EDX,0x1
XOR EAX,EAX
MOV qword ptr [RBX + 0x100],RDX
MOV byte ptr [RBX + RAX*0x1],0x20
MOV byte ptr [RBX + 0x108],0x20
MOV RDX,qword ptr [RBP + 0x8]
MOV ESI,R12D
MOV RDI,RBX
LEA RBP,[0x3a9d5a]
LEA R13,[RBP + 0x3]
MOV R12D,0x3a
CALL 0x002e5210
MOV RAX,qword ptr [RBX + 0x100]
JMP 0x002e538b
MOV RDX,RAX
ADD RAX,0x1
ADD RBP,0x1
MOV qword ptr [RBX + 0x100],RAX
MOV byte ptr [RBX + RDX*0x1],R12B
MOV byte ptr [RBX + 0x108],R12B
CMP R13,RBP
JZ 0x002e5850
MOVZX R12D,byte ptr [RBP]
CMP RAX,0xff
JNZ 0x002e5360
MOV RDX,qword ptr [RBX + 0x118]
MOV byte ptr [RBX + 0xff],0x0
MOV ESI,0xff
MOV RDI,RBX
CALL qword ptr [RBX + 0x110]
ADD qword ptr [RBX + 0x140],0x1
MOV EAX,0x1
XOR EDX,EDX
JMP 0x002e5367
MOV RDX,qword ptr [RDX + 0x8]
ADD RSP,0x8
POP RBX
POP RBP
POP R12
POP R13
POP R14
POP R15
JMP 0x002e5210
CMP qword ptr [RDI + 0x100],0xff
JZ 0x002e5ba0
MOV RDX,qword ptr [RBX + 0x100]
LEA RAX,[RDX + 0x1]
MOV qword ptr [RBX + 0x100],RAX
MOV byte ptr [RBX + RDX*0x1],0x20
MOV byte ptr [RBX + 0x108],0x20
JMP 0x002e5807
CMP qword ptr [RDI + 0x100],0xff
JZ 0x002e5b68
MOV RDX,qword ptr [RBX + 0x100]
LEA RAX,[RDX + 0x1]
MOV qword ptr [RBX + 0x100],RAX
MOV byte ptr [RBX + RDX*0x1],0x20
MOV byte ptr [RBX + 0x108],0x20
JMP 0x002e5867
CMP qword ptr [RDI + 0x100],0xff
JZ 0x002e5b30
MOV RAX,qword ptr [RBX + 0x100]
MOV ESI,R12D
MOV RDI,RBX
LEA RDX,[RAX + 0x1]
MOV qword ptr [RBX + 0x100],RDX
MOV byte ptr [RBX + RAX*0x1],0x20
MOV byte ptr [RBX + 0x108],0x20
MOV RDX,qword ptr [RBP + 0x10]
JMP 0x002e53c4
AND R12D,0x4
JNZ 0x002e5850
CMP qword ptr [RDI + 0x100],0xff
JNZ 0x002e54d3
MOV byte ptr [RDI + 0xff],0x0
MOV RDX,qword ptr [RDI + 0x118]
MOV ESI,0xff
CALL qword ptr [RDI + 0x110]
ADD qword ptr [RBX + 0x140],0x1
MOV qword ptr [RBX + 0x100],0x0
MOV RAX,qword ptr [RBX + 0x100]
LEA RDX,[RAX + 0x1]
MOV qword ptr [RBX + 0x100],RDX
MOV byte ptr [RBX + RAX*0x1],0x2a
MOV byte ptr [RBX + 0x108],0x2a
JMP 0x002e5850
LEA R13,[0x3a9d5f]
MOV RAX,qword ptr [RDI + 0x100]
MOV R14D,0x20
LEA R15,[R13 + 0x9]
JMP 0x002e5543
MOV RDX,RAX
ADD RAX,0x1
MOV qword ptr [RBX + 0x100],RAX
MOV byte ptr [RBX + RDX*0x1],R14B
MOV byte ptr [RBX + 0x108],R14B
CMP R15,R13
JZ 0x002e5b28
MOVZX R14D,byte ptr [R13]
ADD R13,0x1
CMP RAX,0xff
JNZ 0x002e5518
MOV RDX,qword ptr [RBX + 0x118]
MOV byte ptr [RBX + 0xff],0x0
MOV ESI,0xff
MOV RDI,RBX
CALL qword ptr [RBX + 0x110]
ADD qword ptr [RBX + 0x140],0x1
MOV EAX,0x1
XOR EDX,EDX
JMP 0x002e551f
LEA RBP,[0x3a9d46]
MOV RAX,qword ptr [RDI + 0x100]
MOV R12D,0x63
LEA R13,[RBP + 0x8]
JMP 0x002e55cb
MOV RDX,RAX
ADD RAX,0x1
ADD RBP,0x1
MOV qword ptr [RBX + 0x100],RAX
MOV byte ptr [RBX + RDX*0x1],R12B
MOV byte ptr [RBX + 0x108],R12B
CMP RBP,R13
JZ 0x002e5850
MOVZX R12D,byte ptr [RBP]
CMP RAX,0xff
JNZ 0x002e55a0
MOV RDX,qword ptr [RBX + 0x118]
MOV byte ptr [RBX + 0xff],0x0
MOV ESI,0xff
MOV RDI,RBX
CALL qword ptr [RBX + 0x110]
ADD qword ptr [RBX + 0x140],0x1
MOV EAX,0x1
XOR EDX,EDX
JMP 0x002e55a7
LEA RBP,[0x3a9d50]
MOV RAX,qword ptr [RDI + 0x100]
MOV R12D,0x69
LEA R13,[RBP + 0x9]
JMP 0x002e564b
MOV RDX,RAX
ADD RAX,0x1
MOV qword ptr [RBX + 0x100],RAX
MOV byte ptr [RBX + RDX*0x1],R12B
MOV byte ptr [RBX + 0x108],R12B
CMP R13,RBP
JZ 0x002e5850
MOVZX R12D,byte ptr [RBP]
ADD RBP,0x1
CMP RAX,0xff
JNZ 0x002e5620
MOV RDX,qword ptr [RBX + 0x118]
MOV byte ptr [RBX + 0xff],0x0
MOV ESI,0xff
MOV RDI,RBX
CALL qword ptr [RBX + 0x110]
ADD qword ptr [RBX + 0x140],0x1
MOV EAX,0x1
XOR EDX,EDX
JMP 0x002e5627
LEA RBP,[0x3a9d13]
MOV RAX,qword ptr [RDI + 0x100]
MOV R12D,0x20
LEA R13,[RBP + 0x8]
JMP 0x002e56cb
MOV RDX,RAX
ADD RAX,0x1
MOV qword ptr [RBX + 0x100],RAX
MOV byte ptr [RBX + RDX*0x1],R12B
MOV byte ptr [RBX + 0x108],R12B
CMP R13,RBP
JZ 0x002e5850
MOVZX R12D,byte ptr [RBP]
ADD RBP,0x1
CMP RAX,0xff
JNZ 0x002e56a0
MOV RDX,qword ptr [RBX + 0x118]
MOV byte ptr [RBX + 0xff],0x0
MOV ESI,0xff
MOV RDI,RBX
CALL qword ptr [RBX + 0x110]
ADD qword ptr [RBX + 0x140],0x1
MOV EAX,0x1
XOR EDX,EDX
JMP 0x002e56a7
LEA RBP,[0x3a868a]
MOV RAX,qword ptr [RDI + 0x100]
MOV R12D,0x20
LEA R13,[RBP + 0x8]
JMP 0x002e574b
MOV RDX,RAX
ADD RAX,0x1
MOV qword ptr [RBX + 0x100],RAX
MOV byte ptr [RBX + RDX*0x1],R12B
MOV byte ptr [RBX + 0x108],R12B
CMP R13,RBP
JZ 0x002e5850
MOVZX R12D,byte ptr [RBP]
ADD RBP,0x1
CMP RAX,0xff
JNZ 0x002e5720
MOV RDX,qword ptr [RBX + 0x118]
MOV byte ptr [RBX + 0xff],0x0
MOV ESI,0xff
MOV RDI,RBX
CALL qword ptr [RBX + 0x110]
ADD qword ptr [RBX + 0x140],0x1
MOV EAX,0x1
XOR EDX,EDX
JMP 0x002e5727
LEA RBP,[0x3a9d1c]
MOV RAX,qword ptr [RDI + 0x100]
MOV R12D,0x20
LEA R13,[RBP + 0x6]
JMP 0x002e57cb
MOV RDX,RAX
ADD RAX,0x1
ADD RBP,0x1
MOV qword ptr [RBX + 0x100],RAX
MOV byte ptr [RBX + RDX*0x1],R12B
MOV byte ptr [RBX + 0x108],R12B
CMP RBP,R13
JZ 0x002e5850
MOVZX R12D,byte ptr [RBP]
CMP RAX,0xff
JNZ 0x002e57a0
MOV RDX,qword ptr [RBX + 0x118]
MOV byte ptr [RBX + 0xff],0x0
MOV ESI,0xff
MOV RDI,RBX
CALL qword ptr [RBX + 0x110]
ADD qword ptr [RBX + 0x140],0x1
MOV EAX,0x1
XOR EDX,EDX
JMP 0x002e57a7
MOV RAX,qword ptr [RDI + 0x100]
LEA RDX,[RAX + 0x1]
CMP RAX,0xff
JNZ 0x002e583e
MOV RDX,qword ptr [RBX + 0x118]
MOV byte ptr [RBX + 0xff],0x0
MOV ESI,0xff
MOV RDI,RBX
CALL qword ptr [RBX + 0x110]
ADD qword ptr [RBX + 0x140],0x1
MOV EDX,0x1
XOR EAX,EAX
MOV qword ptr [RBX + 0x100],RDX
MOV byte ptr [RBX + RAX*0x1],0x26
MOV byte ptr [RBX + 0x108],0x26
ADD RSP,0x8
POP RBX
POP RBP
POP R12
POP R13
POP R14
POP R15
RET
MOV RAX,qword ptr [RDI + 0x100]
LEA RBP,[0x3a6db5]
MOV R12D,0x26
LEA R13,[RBP + 0x2]
JMP 0x002e58a7
MOV RDX,RAX
ADD RAX,0x1
ADD RBP,0x1
MOV qword ptr [RBX + 0x100],RAX
MOV byte ptr [RBX + RDX*0x1],R12B
MOV byte ptr [RBX + 0x108],R12B
CMP R13,RBP
JZ 0x002e5850
MOVZX R12D,byte ptr [RBP]
CMP RAX,0xff
JNZ 0x002e5880
MOV RDX,qword ptr [RBX + 0x118]
MOV byte ptr [RBX + 0xff],0x0
MOV ESI,0xff
MOV RDI,RBX
CALL qword ptr [RBX + 0x110]
ADD qword ptr [RBX + 0x140],0x1
MOV EAX,0x1
XOR EDX,EDX
JMP 0x002e5887
LEA R13,[0x3a9d36]
MOV RAX,qword ptr [RDI + 0x100]
MOV R14D,0x20
LEA R15,[R13 + 0x8]
JMP 0x002e592b
MOV RDX,RAX
ADD RAX,0x1
MOV qword ptr [RBX + 0x100],RAX
MOV byte ptr [RBX + RDX*0x1],R14B
MOV byte ptr [RBX + 0x108],R14B
CMP R15,R13
JZ 0x002e5a60
MOVZX R14D,byte ptr [R13]
ADD R13,0x1
CMP RAX,0xff
JNZ 0x002e5900
MOV RDX,qword ptr [RBX + 0x118]
MOV byte ptr [RBX + 0xff],0x0
MOV ESI,0xff
MOV RDI,RBX
CALL qword ptr [RBX + 0x110]
ADD qword ptr [RBX + 0x140],0x1
MOV EAX,0x1
XOR EDX,EDX
JMP 0x002e5907
LEA R13,[0x3a9d3f]
MOV RAX,qword ptr [RDI + 0x100]
MOV R14D,0x20
LEA R15,[R13 + 0x6]
JMP 0x002e59ab
MOV RDX,RAX
ADD RAX,0x1
ADD R13,0x1
MOV qword ptr [RBX + 0x100],RAX
MOV byte ptr [RBX + RDX*0x1],R14B
MOV byte ptr [RBX + 0x108],R14B
CMP R13,R15
JZ 0x002e5a60
MOVZX R14D,byte ptr [R13]
CMP RAX,0xff
JNZ 0x002e5980
MOV RDX,qword ptr [RBX + 0x118]
MOV byte ptr [RBX + 0xff],0x0
MOV ESI,0xff
MOV RDI,RBX
CALL qword ptr [RBX + 0x110]
ADD qword ptr [RBX + 0x140],0x1
MOV EAX,0x1
XOR EDX,EDX
JMP 0x002e5987
LEA RBP,[0x3a9d24]
MOV RAX,qword ptr [RDI + 0x100]
MOV R12D,0x20
LEA R13,[RBP + 0x10]
JMP 0x002e5a2b
MOV RDX,RAX
ADD RAX,0x1
MOV qword ptr [RBX + 0x100],RAX
MOV byte ptr [RBX + RDX*0x1],R12B
MOV byte ptr [RBX + 0x108],R12B
CMP R13,RBP
JZ 0x002e5850
MOVZX R12D,byte ptr [RBP]
ADD RBP,0x1
CMP RAX,0xff
JNZ 0x002e5a00
MOV RDX,qword ptr [RBX + 0x118]
MOV byte ptr [RBX + 0xff],0x0
MOV ESI,0xff
MOV RDI,RBX
CALL qword ptr [RBX + 0x110]
ADD qword ptr [RBX + 0x140],0x1
MOV EAX,0x1
XOR EDX,EDX
JMP 0x002e5a07
MOV RDX,qword ptr [RBP + 0x10]
TEST RDX,RDX
JZ 0x002e5850
LEA RCX,[RAX + 0x1]
CMP RAX,0xff
JNZ 0x002e5aa8
MOV RDX,qword ptr [RBX + 0x118]
MOV byte ptr [RBX + 0xff],0x0
MOV ESI,0xff
MOV RDI,RBX
CALL qword ptr [RBX + 0x110]
ADD qword ptr [RBX + 0x140],0x1
MOV RDX,qword ptr [RBP + 0x10]
XOR EAX,EAX
MOV ECX,0x1
MOV qword ptr [RBX + 0x100],RCX
MOV byte ptr [RBX + RAX*0x1],0x28
MOV byte ptr [RBX + 0x108],0x28
MOV ESI,R12D
MOV RDI,RBX
CALL 0x002e5210
MOV RAX,qword ptr [RBX + 0x100]
LEA RDX,[RAX + 0x1]
CMP RAX,0xff
JNZ 0x002e5b03
MOV RDX,qword ptr [RBX + 0x118]
MOV byte ptr [RBX + 0xff],0x0
MOV ESI,0xff
MOV RDI,RBX
CALL qword ptr [RBX + 0x110]
ADD qword ptr [RBX + 0x140],0x1
MOV EDX,0x1
XOR EAX,EAX
MOV qword ptr [RBX + 0x100],RDX
MOV byte ptr [RBX + RAX*0x1],0x29
MOV byte ptr [RBX + 0x108],0x29
ADD RSP,0x8
POP RBX
POP RBP
POP R12
POP R13
POP R14
POP R15
RET
MOV RDX,qword ptr [RBP + 0x8]
JMP 0x002e5aba
MOV byte ptr [RDI + 0xff],0x0
MOV RDX,qword ptr [RDI + 0x118]
MOV ESI,0xff
CALL qword ptr [RDI + 0x110]
ADD qword ptr [RBX + 0x140],0x1
MOV qword ptr [RBX + 0x100],0x0
JMP 0x002e5461
MOV byte ptr [RDI + 0xff],0x0
MOV RDX,qword ptr [RDI + 0x118]
MOV ESI,0xff
CALL qword ptr [RDI + 0x110]
ADD qword ptr [RBX + 0x140],0x1
MOV qword ptr [RBX + 0x100],0x0
JMP 0x002e5429
MOV byte ptr [RDI + 0xff],0x0
MOV RDX,qword ptr [RDI + 0x118]
MOV ESI,0xff
CALL qword ptr [RDI + 0x110]
ADD qword ptr [RBX + 0x140],0x1
MOV qword ptr [RBX + 0x100],0x0
JMP 0x002e53f1
JMP 0x002e5210
(translation_unit "void FUN_002e52a0(long param_1,ulong param_2,int *param_3)\n\n{\n  long lVar1;\n  long lVar2;\n  long lVar3;\n  undefined *puVar4;\n  undefined1 uVar5;\n  ulong uVar6;\n  char *pcVar7;\n  char cVar8;\n  \n  if (0x4c < *param_3 - 3U) {\n    FUN_002e5210();\n    return;\n  }\n  uVar6 = param_2 & 0xffffffff;\n  switch(*param_3) {\n  case 3:\n    param_3 = *(int **)(param_3 + 2);\n  default:\nswitchD_002e52d3_caseD_4:\n    FUN_002e5210(param_1,param_2,param_3);\n    return;\n  case 0x19:\n  case 0x1c:\n    pcVar7 = " restrict";\n    cVar8 = ' ';\n    lVar3 = *(long *)(param_1 + 0x100);\n    while( true ) {\n      pcVar7 = pcVar7 + 1;\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }\n    break;\n  case 0x1a:\n  case 0x1d:\n    pcVar7 = "volatile";\n    cVar8 = ' ';\n    lVar3 = *(long *)(param_1 + 0x100);\n    while( true ) {\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      pcVar7 = pcVar7 + 1;\n      lVar3 = lVar1;\n    }\n    break;\n  case 0x1b:\n  case 0x1e:\n    pcVar7 = " const";\n    cVar8 = ' ';\n    lVar3 = *(long *)(param_1 + 0x100);\n    while( true ) {\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      pcVar7 = pcVar7 + 1;\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }\n    break;\n  case 0x1f:\n    if (*(long *)(param_1 + 0x100) == 0xff) {\n      *(undefined1 *)(param_1 + 0xff) = 0;\n      (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n      *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n      *(undefined8 *)(param_1 + 0x100) = 0;\n    }\n    lVar1 = *(long *)(param_1 + 0x100);\n    lVar3 = lVar1 + 1;\n    *(long *)(param_1 + 0x100) = lVar3;\n    *(undefined1 *)(param_1 + lVar1) = 0x20;\n    *(undefined1 *)(param_1 + 0x108) = 0x20;\n    goto LAB_002e5807;\n  case 0x20:\n    if (*(long *)(param_1 + 0x100) == 0xff) {\n      *(undefined1 *)(param_1 + 0xff) = 0;\n      (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n      *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n      *(undefined8 *)(param_1 + 0x100) = 0;\n    }\n    lVar1 = *(long *)(param_1 + 0x100);\n    lVar3 = lVar1 + 1;\n    *(long *)(param_1 + 0x100) = lVar3;\n    *(undefined1 *)(param_1 + lVar1) = 0x20;\n    *(undefined1 *)(param_1 + 0x108) = 0x20;\n    goto LAB_002e5867;\n  case 0x21:\n    if (*(long *)(param_1 + 0x100) == 0xff) {\n      *(undefined1 *)(param_1 + 0xff) = 0;\n      (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n      *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n      *(undefined8 *)(param_1 + 0x100) = 0;\n    }\n    lVar3 = *(long *)(param_1 + 0x100);\n    *(long *)(param_1 + 0x100) = lVar3 + 1;\n    *(undefined1 *)(param_1 + lVar3) = 0x20;\n    *(undefined1 *)(param_1 + 0x108) = 0x20;\n    param_3 = *(int **)(param_3 + 4);\n    param_2 = uVar6;\n    goto switchD_002e52d3_caseD_4;\n  case 0x22:\n    if ((param_2 & 4) == 0) {\n      if (*(long *)(param_1 + 0x100) == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        *(undefined8 *)(param_1 + 0x100) = 0;\n      }\n      lVar3 = *(long *)(param_1 + 0x100);\n      *(long *)(param_1 + 0x100) = lVar3 + 1;\n      *(undefined1 *)(param_1 + lVar3) = 0x2a;\n      *(undefined1 *)(param_1 + 0x108) = 0x2a;\n    }\n    break;\n  case 0x23:\n    lVar3 = *(long *)(param_1 + 0x100);\nLAB_002e5807:\n    lVar1 = lVar3 + 1;\n    if (lVar3 == 0xff) {\n      *(undefined1 *)(param_1 + 0xff) = 0;\n      (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n      *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n      lVar1 = 1;\n      lVar3 = 0;\n    }\n    *(long *)(param_1 + 0x100) = lVar1;\n    *(undefined1 *)(param_1 + lVar3) = 0x26;\n    *(undefined1 *)(param_1 + 0x108) = 0x26;\n    break;\n  case 0x24:\n    lVar3 = *(long *)(param_1 + 0x100);\nLAB_002e5867:\n    puVar4 = &DAT_003a6db5;\n    uVar5 = 0x26;\n    while( true ) {\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      puVar4 = puVar4 + 1;\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(undefined1 *)(param_1 + lVar3) = uVar5;\n      *(undefined1 *)(param_1 + 0x108) = uVar5;\n      if (puVar4 == &DAT_003a6db7) break;\n      uVar5 = *puVar4;\n      lVar3 = lVar1;\n    }\n    break;\n  case 0x25:\n    pcVar7 = "complex ";\n    cVar8 = 'c';\n    lVar3 = *(long *)(param_1 + 0x100);\n    while( true ) {\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      pcVar7 = pcVar7 + 1;\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }\n    break;\n  case 0x26:\n    pcVar7 = "imaginary ";\n    cVar8 = 'i';\n    lVar3 = *(long *)(param_1 + 0x100);\n    while( true ) {\n      pcVar7 = pcVar7 + 1;\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }\n    break;\n  case 0x2b:\n    if (*(char *)(param_1 + 0x108) != '(') {\n      lVar1 = *(long *)(param_1 + 0x100);\n      lVar3 = lVar1 + 1;\n      if (lVar1 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar3 = 1;\n        lVar1 = 0;\n      }\n      *(long *)(param_1 + 0x100) = lVar3;\n      *(undefined1 *)(param_1 + lVar1) = 0x20;\n      *(undefined1 *)(param_1 + 0x108) = 0x20;\n    }\n    puVar4 = &DAT_003a9d5a;\n    uVar5 = 0x3a;\n    FUN_002e5210(param_1,uVar6,*(undefined8 *)(param_3 + 2));\n    lVar3 = *(long *)(param_1 + 0x100);\n    while( true ) {\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      puVar4 = puVar4 + 1;\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(undefined1 *)(param_1 + lVar3) = uVar5;\n      *(undefined1 *)(param_1 + 0x108) = uVar5;\n      if (puVar4 == &DAT_003a9d5d) break;\n      uVar5 = *puVar4;\n      lVar3 = lVar1;\n    }\n    break;\n  case 0x2d:\n    pcVar7 = " __vector(";\n    cVar8 = ' ';\n    lVar3 = *(long *)(param_1 + 0x100);\n    while( true ) {\n      pcVar7 = pcVar7 + 1;\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }\n    lVar3 = *(long *)(param_3 + 2);\n    goto LAB_002e5aba;\n  case 0x4c:\n    pcVar7 = " transaction_safe";\n    cVar8 = ' ';\n    lVar3 = *(long *)(param_1 + 0x100);\n    while( true ) {\n      pcVar7 = pcVar7 + 1;\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }\n    break;\n  case 0x4e:\n    pcVar7 = " noexcept";\n    cVar8 = ' ';\n    lVar3 = *(long *)(param_1 + 0x100);\n    while( true ) {\n      pcVar7 = pcVar7 + 1;\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }\n    goto LAB_002e5a60;\n  case 0x4f:\n    pcVar7 = " throw";\n    cVar8 = ' ';\n    lVar3 = *(long *)(param_1 + 0x100);\n    while( true ) {\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      pcVar7 = pcVar7 + 1;\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }\nLAB_002e5a60:\n    lVar3 = *(long *)(param_3 + 4);\n    if (lVar3 != 0) {\n      lVar2 = lVar1 + 1;\n      if (lVar1 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar3 = *(long *)(param_3 + 4);\n        lVar1 = 0;\n        lVar2 = 1;\n      }\n      *(long *)(param_1 + 0x100) = lVar2;\n      *(undefined1 *)(param_1 + lVar1) = 0x28;\n      *(undefined1 *)(param_1 + 0x108) = 0x28;\nLAB_002e5aba:\n      FUN_002e5210(param_1,uVar6,lVar3);\n      lVar1 = *(long *)(param_1 + 0x100);\n      lVar3 = lVar1 + 1;\n      if (lVar1 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar3 = 1;\n        lVar1 = 0;\n      }\n      *(long *)(param_1 + 0x100) = lVar3;\n      *(undefined1 *)(param_1 + lVar1) = 0x29;\n      *(undefined1 *)(param_1 + 0x108) = 0x29;\n      return;\n    }\n  }\n  return;\n}\n\n" (function_definition "void FUN_002e52a0(long param_1,ulong param_2,int *param_3)\n\n{\n  long lVar1;\n  long lVar2;\n  long lVar3;\n  undefined *puVar4;\n  undefined1 uVar5;\n  ulong uVar6;\n  char *pcVar7;\n  char cVar8;\n  \n  if (0x4c < *param_3 - 3U) {\n    FUN_002e5210();\n    return;\n  }\n  uVar6 = param_2 & 0xffffffff;\n  switch(*param_3) {\n  case 3:\n    param_3 = *(int **)(param_3 + 2);\n  default:\nswitchD_002e52d3_caseD_4:\n    FUN_002e5210(param_1,param_2,param_3);\n    return;\n  case 0x19:\n  case 0x1c:\n    pcVar7 = " restrict";\n    cVar8 = ' ';\n    lVar3 = *(long *)(param_1 + 0x100);\n    while( true ) {\n      pcVar7 = pcVar7 + 1;\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }\n    break;\n  case 0x1a:\n  case 0x1d:\n    pcVar7 = "volatile";\n    cVar8 = ' ';\n    lVar3 = *(long *)(param_1 + 0x100);\n    while( true ) {\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      pcVar7 = pcVar7 + 1;\n      lVar3 = lVar1;\n    }\n    break;\n  case 0x1b:\n  case 0x1e:\n    pcVar7 = " const";\n    cVar8 = ' ';\n    lVar3 = *(long *)(param_1 + 0x100);\n    while( true ) {\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      pcVar7 = pcVar7 + 1;\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }\n    break;\n  case 0x1f:\n    if (*(long *)(param_1 + 0x100) == 0xff) {\n      *(undefined1 *)(param_1 + 0xff) = 0;\n      (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n      *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n      *(undefined8 *)(param_1 + 0x100) = 0;\n    }\n    lVar1 = *(long *)(param_1 + 0x100);\n    lVar3 = lVar1 + 1;\n    *(long *)(param_1 + 0x100) = lVar3;\n    *(undefined1 *)(param_1 + lVar1) = 0x20;\n    *(undefined1 *)(param_1 + 0x108) = 0x20;\n    goto LAB_002e5807;\n  case 0x20:\n    if (*(long *)(param_1 + 0x100) == 0xff) {\n      *(undefined1 *)(param_1 + 0xff) = 0;\n      (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n      *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n      *(undefined8 *)(param_1 + 0x100) = 0;\n    }\n    lVar1 = *(long *)(param_1 + 0x100);\n    lVar3 = lVar1 + 1;\n    *(long *)(param_1 + 0x100) = lVar3;\n    *(undefined1 *)(param_1 + lVar1) = 0x20;\n    *(undefined1 *)(param_1 + 0x108) = 0x20;\n    goto LAB_002e5867;\n  case 0x21:\n    if (*(long *)(param_1 + 0x100) == 0xff) {\n      *(undefined1 *)(param_1 + 0xff) = 0;\n      (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n      *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n      *(undefined8 *)(param_1 + 0x100) = 0;\n    }\n    lVar3 = *(long *)(param_1 + 0x100);\n    *(long *)(param_1 + 0x100) = lVar3 + 1;\n    *(undefined1 *)(param_1 + lVar3) = 0x20;\n    *(undefined1 *)(param_1 + 0x108) = 0x20;\n    param_3 = *(int **)(param_3 + 4);\n    param_2 = uVar6;\n    goto switchD_002e52d3_caseD_4;\n  case 0x22:\n    if ((param_2 & 4) == 0) {\n      if (*(long *)(param_1 + 0x100) == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        *(undefined8 *)(param_1 + 0x100) = 0;\n      }\n      lVar3 = *(long *)(param_1 + 0x100);\n      *(long *)(param_1 + 0x100) = lVar3 + 1;\n      *(undefined1 *)(param_1 + lVar3) = 0x2a;\n      *(undefined1 *)(param_1 + 0x108) = 0x2a;\n    }\n    break;\n  case 0x23:\n    lVar3 = *(long *)(param_1 + 0x100);\nLAB_002e5807:\n    lVar1 = lVar3 + 1;\n    if (lVar3 == 0xff) {\n      *(undefined1 *)(param_1 + 0xff) = 0;\n      (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n      *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n      lVar1 = 1;\n      lVar3 = 0;\n    }\n    *(long *)(param_1 + 0x100) = lVar1;\n    *(undefined1 *)(param_1 + lVar3) = 0x26;\n    *(undefined1 *)(param_1 + 0x108) = 0x26;\n    break;\n  case 0x24:\n    lVar3 = *(long *)(param_1 + 0x100);\nLAB_002e5867:\n    puVar4 = &DAT_003a6db5;\n    uVar5 = 0x26;\n    while( true ) {\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      puVar4 = puVar4 + 1;\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(undefined1 *)(param_1 + lVar3) = uVar5;\n      *(undefined1 *)(param_1 + 0x108) = uVar5;\n      if (puVar4 == &DAT_003a6db7) break;\n      uVar5 = *puVar4;\n      lVar3 = lVar1;\n    }\n    break;\n  case 0x25:\n    pcVar7 = "complex ";\n    cVar8 = 'c';\n    lVar3 = *(long *)(param_1 + 0x100);\n    while( true ) {\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      pcVar7 = pcVar7 + 1;\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }\n    break;\n  case 0x26:\n    pcVar7 = "imaginary ";\n    cVar8 = 'i';\n    lVar3 = *(long *)(param_1 + 0x100);\n    while( true ) {\n      pcVar7 = pcVar7 + 1;\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }\n    break;\n  case 0x2b:\n    if (*(char *)(param_1 + 0x108) != '(') {\n      lVar1 = *(long *)(param_1 + 0x100);\n      lVar3 = lVar1 + 1;\n      if (lVar1 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar3 = 1;\n        lVar1 = 0;\n      }\n      *(long *)(param_1 + 0x100) = lVar3;\n      *(undefined1 *)(param_1 + lVar1) = 0x20;\n      *(undefined1 *)(param_1 + 0x108) = 0x20;\n    }\n    puVar4 = &DAT_003a9d5a;\n    uVar5 = 0x3a;\n    FUN_002e5210(param_1,uVar6,*(undefined8 *)(param_3 + 2));\n    lVar3 = *(long *)(param_1 + 0x100);\n    while( true ) {\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      puVar4 = puVar4 + 1;\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(undefined1 *)(param_1 + lVar3) = uVar5;\n      *(undefined1 *)(param_1 + 0x108) = uVar5;\n      if (puVar4 == &DAT_003a9d5d) break;\n      uVar5 = *puVar4;\n      lVar3 = lVar1;\n    }\n    break;\n  case 0x2d:\n    pcVar7 = " __vector(";\n    cVar8 = ' ';\n    lVar3 = *(long *)(param_1 + 0x100);\n    while( true ) {\n      pcVar7 = pcVar7 + 1;\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }\n    lVar3 = *(long *)(param_3 + 2);\n    goto LAB_002e5aba;\n  case 0x4c:\n    pcVar7 = " transaction_safe";\n    cVar8 = ' ';\n    lVar3 = *(long *)(param_1 + 0x100);\n    while( true ) {\n      pcVar7 = pcVar7 + 1;\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }\n    break;\n  case 0x4e:\n    pcVar7 = " noexcept";\n    cVar8 = ' ';\n    lVar3 = *(long *)(param_1 + 0x100);\n    while( true ) {\n      pcVar7 = pcVar7 + 1;\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }\n    goto LAB_002e5a60;\n  case 0x4f:\n    pcVar7 = " throw";\n    cVar8 = ' ';\n    lVar3 = *(long *)(param_1 + 0x100);\n    while( true ) {\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      pcVar7 = pcVar7 + 1;\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }\nLAB_002e5a60:\n    lVar3 = *(long *)(param_3 + 4);\n    if (lVar3 != 0) {\n      lVar2 = lVar1 + 1;\n      if (lVar1 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar3 = *(long *)(param_3 + 4);\n        lVar1 = 0;\n        lVar2 = 1;\n      }\n      *(long *)(param_1 + 0x100) = lVar2;\n      *(undefined1 *)(param_1 + lVar1) = 0x28;\n      *(undefined1 *)(param_1 + 0x108) = 0x28;\nLAB_002e5aba:\n      FUN_002e5210(param_1,uVar6,lVar3);\n      lVar1 = *(long *)(param_1 + 0x100);\n      lVar3 = lVar1 + 1;\n      if (lVar1 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar3 = 1;\n        lVar1 = 0;\n      }\n      *(long *)(param_1 + 0x100) = lVar3;\n      *(undefined1 *)(param_1 + lVar1) = 0x29;\n      *(undefined1 *)(param_1 + 0x108) = 0x29;\n      return;\n    }\n  }\n  return;\n}" primitive_type (function_declarator "FUN_002e52a0(long param_1,ulong param_2,int *param_3)" identifier (parameter_list "(long param_1,ulong param_2,int *param_3)" ( (parameter_declaration "long param_1" (sized_type_specifier "long" long) identifier) , (parameter_declaration "ulong param_2" type_identifier identifier) , (parameter_declaration "int *param_3" primitive_type (pointer_declarator "*param_3" * identifier)) ))) (compound_statement "{\n  long lVar1;\n  long lVar2;\n  long lVar3;\n  undefined *puVar4;\n  undefined1 uVar5;\n  ulong uVar6;\n  char *pcVar7;\n  char cVar8;\n  \n  if (0x4c < *param_3 - 3U) {\n    FUN_002e5210();\n    return;\n  }\n  uVar6 = param_2 & 0xffffffff;\n  switch(*param_3) {\n  case 3:\n    param_3 = *(int **)(param_3 + 2);\n  default:\nswitchD_002e52d3_caseD_4:\n    FUN_002e5210(param_1,param_2,param_3);\n    return;\n  case 0x19:\n  case 0x1c:\n    pcVar7 = " restrict";\n    cVar8 = ' ';\n    lVar3 = *(long *)(param_1 + 0x100);\n    while( true ) {\n      pcVar7 = pcVar7 + 1;\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }\n    break;\n  case 0x1a:\n  case 0x1d:\n    pcVar7 = "volatile";\n    cVar8 = ' ';\n    lVar3 = *(long *)(param_1 + 0x100);\n    while( true ) {\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      pcVar7 = pcVar7 + 1;\n      lVar3 = lVar1;\n    }\n    break;\n  case 0x1b:\n  case 0x1e:\n    pcVar7 = " const";\n    cVar8 = ' ';\n    lVar3 = *(long *)(param_1 + 0x100);\n    while( true ) {\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      pcVar7 = pcVar7 + 1;\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }\n    break;\n  case 0x1f:\n    if (*(long *)(param_1 + 0x100) == 0xff) {\n      *(undefined1 *)(param_1 + 0xff) = 0;\n      (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n      *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n      *(undefined8 *)(param_1 + 0x100) = 0;\n    }\n    lVar1 = *(long *)(param_1 + 0x100);\n    lVar3 = lVar1 + 1;\n    *(long *)(param_1 + 0x100) = lVar3;\n    *(undefined1 *)(param_1 + lVar1) = 0x20;\n    *(undefined1 *)(param_1 + 0x108) = 0x20;\n    goto LAB_002e5807;\n  case 0x20:\n    if (*(long *)(param_1 + 0x100) == 0xff) {\n      *(undefined1 *)(param_1 + 0xff) = 0;\n      (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n      *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n      *(undefined8 *)(param_1 + 0x100) = 0;\n    }\n    lVar1 = *(long *)(param_1 + 0x100);\n    lVar3 = lVar1 + 1;\n    *(long *)(param_1 + 0x100) = lVar3;\n    *(undefined1 *)(param_1 + lVar1) = 0x20;\n    *(undefined1 *)(param_1 + 0x108) = 0x20;\n    goto LAB_002e5867;\n  case 0x21:\n    if (*(long *)(param_1 + 0x100) == 0xff) {\n      *(undefined1 *)(param_1 + 0xff) = 0;\n      (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n      *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n      *(undefined8 *)(param_1 + 0x100) = 0;\n    }\n    lVar3 = *(long *)(param_1 + 0x100);\n    *(long *)(param_1 + 0x100) = lVar3 + 1;\n    *(undefined1 *)(param_1 + lVar3) = 0x20;\n    *(undefined1 *)(param_1 + 0x108) = 0x20;\n    param_3 = *(int **)(param_3 + 4);\n    param_2 = uVar6;\n    goto switchD_002e52d3_caseD_4;\n  case 0x22:\n    if ((param_2 & 4) == 0) {\n      if (*(long *)(param_1 + 0x100) == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        *(undefined8 *)(param_1 + 0x100) = 0;\n      }\n      lVar3 = *(long *)(param_1 + 0x100);\n      *(long *)(param_1 + 0x100) = lVar3 + 1;\n      *(undefined1 *)(param_1 + lVar3) = 0x2a;\n      *(undefined1 *)(param_1 + 0x108) = 0x2a;\n    }\n    break;\n  case 0x23:\n    lVar3 = *(long *)(param_1 + 0x100);\nLAB_002e5807:\n    lVar1 = lVar3 + 1;\n    if (lVar3 == 0xff) {\n      *(undefined1 *)(param_1 + 0xff) = 0;\n      (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n      *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n      lVar1 = 1;\n      lVar3 = 0;\n    }\n    *(long *)(param_1 + 0x100) = lVar1;\n    *(undefined1 *)(param_1 + lVar3) = 0x26;\n    *(undefined1 *)(param_1 + 0x108) = 0x26;\n    break;\n  case 0x24:\n    lVar3 = *(long *)(param_1 + 0x100);\nLAB_002e5867:\n    puVar4 = &DAT_003a6db5;\n    uVar5 = 0x26;\n    while( true ) {\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      puVar4 = puVar4 + 1;\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(undefined1 *)(param_1 + lVar3) = uVar5;\n      *(undefined1 *)(param_1 + 0x108) = uVar5;\n      if (puVar4 == &DAT_003a6db7) break;\n      uVar5 = *puVar4;\n      lVar3 = lVar1;\n    }\n    break;\n  case 0x25:\n    pcVar7 = "complex ";\n    cVar8 = 'c';\n    lVar3 = *(long *)(param_1 + 0x100);\n    while( true ) {\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      pcVar7 = pcVar7 + 1;\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }\n    break;\n  case 0x26:\n    pcVar7 = "imaginary ";\n    cVar8 = 'i';\n    lVar3 = *(long *)(param_1 + 0x100);\n    while( true ) {\n      pcVar7 = pcVar7 + 1;\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }\n    break;\n  case 0x2b:\n    if (*(char *)(param_1 + 0x108) != '(') {\n      lVar1 = *(long *)(param_1 + 0x100);\n      lVar3 = lVar1 + 1;\n      if (lVar1 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar3 = 1;\n        lVar1 = 0;\n      }\n      *(long *)(param_1 + 0x100) = lVar3;\n      *(undefined1 *)(param_1 + lVar1) = 0x20;\n      *(undefined1 *)(param_1 + 0x108) = 0x20;\n    }\n    puVar4 = &DAT_003a9d5a;\n    uVar5 = 0x3a;\n    FUN_002e5210(param_1,uVar6,*(undefined8 *)(param_3 + 2));\n    lVar3 = *(long *)(param_1 + 0x100);\n    while( true ) {\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      puVar4 = puVar4 + 1;\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(undefined1 *)(param_1 + lVar3) = uVar5;\n      *(undefined1 *)(param_1 + 0x108) = uVar5;\n      if (puVar4 == &DAT_003a9d5d) break;\n      uVar5 = *puVar4;\n      lVar3 = lVar1;\n    }\n    break;\n  case 0x2d:\n    pcVar7 = " __vector(";\n    cVar8 = ' ';\n    lVar3 = *(long *)(param_1 + 0x100);\n    while( true ) {\n      pcVar7 = pcVar7 + 1;\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }\n    lVar3 = *(long *)(param_3 + 2);\n    goto LAB_002e5aba;\n  case 0x4c:\n    pcVar7 = " transaction_safe";\n    cVar8 = ' ';\n    lVar3 = *(long *)(param_1 + 0x100);\n    while( true ) {\n      pcVar7 = pcVar7 + 1;\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }\n    break;\n  case 0x4e:\n    pcVar7 = " noexcept";\n    cVar8 = ' ';\n    lVar3 = *(long *)(param_1 + 0x100);\n    while( true ) {\n      pcVar7 = pcVar7 + 1;\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }\n    goto LAB_002e5a60;\n  case 0x4f:\n    pcVar7 = " throw";\n    cVar8 = ' ';\n    lVar3 = *(long *)(param_1 + 0x100);\n    while( true ) {\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      pcVar7 = pcVar7 + 1;\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }\nLAB_002e5a60:\n    lVar3 = *(long *)(param_3 + 4);\n    if (lVar3 != 0) {\n      lVar2 = lVar1 + 1;\n      if (lVar1 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar3 = *(long *)(param_3 + 4);\n        lVar1 = 0;\n        lVar2 = 1;\n      }\n      *(long *)(param_1 + 0x100) = lVar2;\n      *(undefined1 *)(param_1 + lVar1) = 0x28;\n      *(undefined1 *)(param_1 + 0x108) = 0x28;\nLAB_002e5aba:\n      FUN_002e5210(param_1,uVar6,lVar3);\n      lVar1 = *(long *)(param_1 + 0x100);\n      lVar3 = lVar1 + 1;\n      if (lVar1 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar3 = 1;\n        lVar1 = 0;\n      }\n      *(long *)(param_1 + 0x100) = lVar3;\n      *(undefined1 *)(param_1 + lVar1) = 0x29;\n      *(undefined1 *)(param_1 + 0x108) = 0x29;\n      return;\n    }\n  }\n  return;\n}" { (declaration "long lVar1;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar2;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar3;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "undefined1 uVar5;" type_identifier identifier ;) (declaration "ulong uVar6;" type_identifier identifier ;) (declaration "char *pcVar7;" primitive_type (pointer_declarator "*pcVar7" * identifier) ;) (declaration "char cVar8;" primitive_type identifier ;) (if_statement "if (0x4c < *param_3 - 3U) {\n    FUN_002e5210();\n    return;\n  }" if (parenthesized_expression "(0x4c < *param_3 - 3U)" ( (binary_expression "0x4c < *param_3 - 3U" number_literal < (binary_expression "*param_3 - 3U" (pointer_expression "*param_3" * identifier) - number_literal)) )) (compound_statement "{\n    FUN_002e5210();\n    return;\n  }" { (expression_statement "FUN_002e5210();" (call_expression "FUN_002e5210()" identifier (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) (expression_statement "uVar6 = param_2 & 0xffffffff;" (assignment_expression "uVar6 = param_2 & 0xffffffff" identifier = (binary_expression "param_2 & 0xffffffff" identifier & number_literal)) ;) (switch_statement "switch(*param_3) {\n  case 3:\n    param_3 = *(int **)(param_3 + 2);\n  default:\nswitchD_002e52d3_caseD_4:\n    FUN_002e5210(param_1,param_2,param_3);\n    return;\n  case 0x19:\n  case 0x1c:\n    pcVar7 = " restrict";\n    cVar8 = ' ';\n    lVar3 = *(long *)(param_1 + 0x100);\n    while( true ) {\n      pcVar7 = pcVar7 + 1;\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }\n    break;\n  case 0x1a:\n  case 0x1d:\n    pcVar7 = "volatile";\n    cVar8 = ' ';\n    lVar3 = *(long *)(param_1 + 0x100);\n    while( true ) {\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      pcVar7 = pcVar7 + 1;\n      lVar3 = lVar1;\n    }\n    break;\n  case 0x1b:\n  case 0x1e:\n    pcVar7 = " const";\n    cVar8 = ' ';\n    lVar3 = *(long *)(param_1 + 0x100);\n    while( true ) {\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      pcVar7 = pcVar7 + 1;\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }\n    break;\n  case 0x1f:\n    if (*(long *)(param_1 + 0x100) == 0xff) {\n      *(undefined1 *)(param_1 + 0xff) = 0;\n      (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n      *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n      *(undefined8 *)(param_1 + 0x100) = 0;\n    }\n    lVar1 = *(long *)(param_1 + 0x100);\n    lVar3 = lVar1 + 1;\n    *(long *)(param_1 + 0x100) = lVar3;\n    *(undefined1 *)(param_1 + lVar1) = 0x20;\n    *(undefined1 *)(param_1 + 0x108) = 0x20;\n    goto LAB_002e5807;\n  case 0x20:\n    if (*(long *)(param_1 + 0x100) == 0xff) {\n      *(undefined1 *)(param_1 + 0xff) = 0;\n      (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n      *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n      *(undefined8 *)(param_1 + 0x100) = 0;\n    }\n    lVar1 = *(long *)(param_1 + 0x100);\n    lVar3 = lVar1 + 1;\n    *(long *)(param_1 + 0x100) = lVar3;\n    *(undefined1 *)(param_1 + lVar1) = 0x20;\n    *(undefined1 *)(param_1 + 0x108) = 0x20;\n    goto LAB_002e5867;\n  case 0x21:\n    if (*(long *)(param_1 + 0x100) == 0xff) {\n      *(undefined1 *)(param_1 + 0xff) = 0;\n      (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n      *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n      *(undefined8 *)(param_1 + 0x100) = 0;\n    }\n    lVar3 = *(long *)(param_1 + 0x100);\n    *(long *)(param_1 + 0x100) = lVar3 + 1;\n    *(undefined1 *)(param_1 + lVar3) = 0x20;\n    *(undefined1 *)(param_1 + 0x108) = 0x20;\n    param_3 = *(int **)(param_3 + 4);\n    param_2 = uVar6;\n    goto switchD_002e52d3_caseD_4;\n  case 0x22:\n    if ((param_2 & 4) == 0) {\n      if (*(long *)(param_1 + 0x100) == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        *(undefined8 *)(param_1 + 0x100) = 0;\n      }\n      lVar3 = *(long *)(param_1 + 0x100);\n      *(long *)(param_1 + 0x100) = lVar3 + 1;\n      *(undefined1 *)(param_1 + lVar3) = 0x2a;\n      *(undefined1 *)(param_1 + 0x108) = 0x2a;\n    }\n    break;\n  case 0x23:\n    lVar3 = *(long *)(param_1 + 0x100);\nLAB_002e5807:\n    lVar1 = lVar3 + 1;\n    if (lVar3 == 0xff) {\n      *(undefined1 *)(param_1 + 0xff) = 0;\n      (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n      *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n      lVar1 = 1;\n      lVar3 = 0;\n    }\n    *(long *)(param_1 + 0x100) = lVar1;\n    *(undefined1 *)(param_1 + lVar3) = 0x26;\n    *(undefined1 *)(param_1 + 0x108) = 0x26;\n    break;\n  case 0x24:\n    lVar3 = *(long *)(param_1 + 0x100);\nLAB_002e5867:\n    puVar4 = &DAT_003a6db5;\n    uVar5 = 0x26;\n    while( true ) {\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      puVar4 = puVar4 + 1;\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(undefined1 *)(param_1 + lVar3) = uVar5;\n      *(undefined1 *)(param_1 + 0x108) = uVar5;\n      if (puVar4 == &DAT_003a6db7) break;\n      uVar5 = *puVar4;\n      lVar3 = lVar1;\n    }\n    break;\n  case 0x25:\n    pcVar7 = "complex ";\n    cVar8 = 'c';\n    lVar3 = *(long *)(param_1 + 0x100);\n    while( true ) {\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      pcVar7 = pcVar7 + 1;\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }\n    break;\n  case 0x26:\n    pcVar7 = "imaginary ";\n    cVar8 = 'i';\n    lVar3 = *(long *)(param_1 + 0x100);\n    while( true ) {\n      pcVar7 = pcVar7 + 1;\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }\n    break;\n  case 0x2b:\n    if (*(char *)(param_1 + 0x108) != '(') {\n      lVar1 = *(long *)(param_1 + 0x100);\n      lVar3 = lVar1 + 1;\n      if (lVar1 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar3 = 1;\n        lVar1 = 0;\n      }\n      *(long *)(param_1 + 0x100) = lVar3;\n      *(undefined1 *)(param_1 + lVar1) = 0x20;\n      *(undefined1 *)(param_1 + 0x108) = 0x20;\n    }\n    puVar4 = &DAT_003a9d5a;\n    uVar5 = 0x3a;\n    FUN_002e5210(param_1,uVar6,*(undefined8 *)(param_3 + 2));\n    lVar3 = *(long *)(param_1 + 0x100);\n    while( true ) {\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      puVar4 = puVar4 + 1;\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(undefined1 *)(param_1 + lVar3) = uVar5;\n      *(undefined1 *)(param_1 + 0x108) = uVar5;\n      if (puVar4 == &DAT_003a9d5d) break;\n      uVar5 = *puVar4;\n      lVar3 = lVar1;\n    }\n    break;\n  case 0x2d:\n    pcVar7 = " __vector(";\n    cVar8 = ' ';\n    lVar3 = *(long *)(param_1 + 0x100);\n    while( true ) {\n      pcVar7 = pcVar7 + 1;\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }\n    lVar3 = *(long *)(param_3 + 2);\n    goto LAB_002e5aba;\n  case 0x4c:\n    pcVar7 = " transaction_safe";\n    cVar8 = ' ';\n    lVar3 = *(long *)(param_1 + 0x100);\n    while( true ) {\n      pcVar7 = pcVar7 + 1;\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }\n    break;\n  case 0x4e:\n    pcVar7 = " noexcept";\n    cVar8 = ' ';\n    lVar3 = *(long *)(param_1 + 0x100);\n    while( true ) {\n      pcVar7 = pcVar7 + 1;\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }\n    goto LAB_002e5a60;\n  case 0x4f:\n    pcVar7 = " throw";\n    cVar8 = ' ';\n    lVar3 = *(long *)(param_1 + 0x100);\n    while( true ) {\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      pcVar7 = pcVar7 + 1;\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }\nLAB_002e5a60:\n    lVar3 = *(long *)(param_3 + 4);\n    if (lVar3 != 0) {\n      lVar2 = lVar1 + 1;\n      if (lVar1 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar3 = *(long *)(param_3 + 4);\n        lVar1 = 0;\n        lVar2 = 1;\n      }\n      *(long *)(param_1 + 0x100) = lVar2;\n      *(undefined1 *)(param_1 + lVar1) = 0x28;\n      *(undefined1 *)(param_1 + 0x108) = 0x28;\nLAB_002e5aba:\n      FUN_002e5210(param_1,uVar6,lVar3);\n      lVar1 = *(long *)(param_1 + 0x100);\n      lVar3 = lVar1 + 1;\n      if (lVar1 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar3 = 1;\n        lVar1 = 0;\n      }\n      *(long *)(param_1 + 0x100) = lVar3;\n      *(undefined1 *)(param_1 + lVar1) = 0x29;\n      *(undefined1 *)(param_1 + 0x108) = 0x29;\n      return;\n    }\n  }" switch (parenthesized_expression "(*param_3)" ( (pointer_expression "*param_3" * identifier) )) (compound_statement "{\n  case 3:\n    param_3 = *(int **)(param_3 + 2);\n  default:\nswitchD_002e52d3_caseD_4:\n    FUN_002e5210(param_1,param_2,param_3);\n    return;\n  case 0x19:\n  case 0x1c:\n    pcVar7 = " restrict";\n    cVar8 = ' ';\n    lVar3 = *(long *)(param_1 + 0x100);\n    while( true ) {\n      pcVar7 = pcVar7 + 1;\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }\n    break;\n  case 0x1a:\n  case 0x1d:\n    pcVar7 = "volatile";\n    cVar8 = ' ';\n    lVar3 = *(long *)(param_1 + 0x100);\n    while( true ) {\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      pcVar7 = pcVar7 + 1;\n      lVar3 = lVar1;\n    }\n    break;\n  case 0x1b:\n  case 0x1e:\n    pcVar7 = " const";\n    cVar8 = ' ';\n    lVar3 = *(long *)(param_1 + 0x100);\n    while( true ) {\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      pcVar7 = pcVar7 + 1;\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }\n    break;\n  case 0x1f:\n    if (*(long *)(param_1 + 0x100) == 0xff) {\n      *(undefined1 *)(param_1 + 0xff) = 0;\n      (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n      *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n      *(undefined8 *)(param_1 + 0x100) = 0;\n    }\n    lVar1 = *(long *)(param_1 + 0x100);\n    lVar3 = lVar1 + 1;\n    *(long *)(param_1 + 0x100) = lVar3;\n    *(undefined1 *)(param_1 + lVar1) = 0x20;\n    *(undefined1 *)(param_1 + 0x108) = 0x20;\n    goto LAB_002e5807;\n  case 0x20:\n    if (*(long *)(param_1 + 0x100) == 0xff) {\n      *(undefined1 *)(param_1 + 0xff) = 0;\n      (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n      *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n      *(undefined8 *)(param_1 + 0x100) = 0;\n    }\n    lVar1 = *(long *)(param_1 + 0x100);\n    lVar3 = lVar1 + 1;\n    *(long *)(param_1 + 0x100) = lVar3;\n    *(undefined1 *)(param_1 + lVar1) = 0x20;\n    *(undefined1 *)(param_1 + 0x108) = 0x20;\n    goto LAB_002e5867;\n  case 0x21:\n    if (*(long *)(param_1 + 0x100) == 0xff) {\n      *(undefined1 *)(param_1 + 0xff) = 0;\n      (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n      *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n      *(undefined8 *)(param_1 + 0x100) = 0;\n    }\n    lVar3 = *(long *)(param_1 + 0x100);\n    *(long *)(param_1 + 0x100) = lVar3 + 1;\n    *(undefined1 *)(param_1 + lVar3) = 0x20;\n    *(undefined1 *)(param_1 + 0x108) = 0x20;\n    param_3 = *(int **)(param_3 + 4);\n    param_2 = uVar6;\n    goto switchD_002e52d3_caseD_4;\n  case 0x22:\n    if ((param_2 & 4) == 0) {\n      if (*(long *)(param_1 + 0x100) == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        *(undefined8 *)(param_1 + 0x100) = 0;\n      }\n      lVar3 = *(long *)(param_1 + 0x100);\n      *(long *)(param_1 + 0x100) = lVar3 + 1;\n      *(undefined1 *)(param_1 + lVar3) = 0x2a;\n      *(undefined1 *)(param_1 + 0x108) = 0x2a;\n    }\n    break;\n  case 0x23:\n    lVar3 = *(long *)(param_1 + 0x100);\nLAB_002e5807:\n    lVar1 = lVar3 + 1;\n    if (lVar3 == 0xff) {\n      *(undefined1 *)(param_1 + 0xff) = 0;\n      (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n      *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n      lVar1 = 1;\n      lVar3 = 0;\n    }\n    *(long *)(param_1 + 0x100) = lVar1;\n    *(undefined1 *)(param_1 + lVar3) = 0x26;\n    *(undefined1 *)(param_1 + 0x108) = 0x26;\n    break;\n  case 0x24:\n    lVar3 = *(long *)(param_1 + 0x100);\nLAB_002e5867:\n    puVar4 = &DAT_003a6db5;\n    uVar5 = 0x26;\n    while( true ) {\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      puVar4 = puVar4 + 1;\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(undefined1 *)(param_1 + lVar3) = uVar5;\n      *(undefined1 *)(param_1 + 0x108) = uVar5;\n      if (puVar4 == &DAT_003a6db7) break;\n      uVar5 = *puVar4;\n      lVar3 = lVar1;\n    }\n    break;\n  case 0x25:\n    pcVar7 = "complex ";\n    cVar8 = 'c';\n    lVar3 = *(long *)(param_1 + 0x100);\n    while( true ) {\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      pcVar7 = pcVar7 + 1;\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }\n    break;\n  case 0x26:\n    pcVar7 = "imaginary ";\n    cVar8 = 'i';\n    lVar3 = *(long *)(param_1 + 0x100);\n    while( true ) {\n      pcVar7 = pcVar7 + 1;\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }\n    break;\n  case 0x2b:\n    if (*(char *)(param_1 + 0x108) != '(') {\n      lVar1 = *(long *)(param_1 + 0x100);\n      lVar3 = lVar1 + 1;\n      if (lVar1 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar3 = 1;\n        lVar1 = 0;\n      }\n      *(long *)(param_1 + 0x100) = lVar3;\n      *(undefined1 *)(param_1 + lVar1) = 0x20;\n      *(undefined1 *)(param_1 + 0x108) = 0x20;\n    }\n    puVar4 = &DAT_003a9d5a;\n    uVar5 = 0x3a;\n    FUN_002e5210(param_1,uVar6,*(undefined8 *)(param_3 + 2));\n    lVar3 = *(long *)(param_1 + 0x100);\n    while( true ) {\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      puVar4 = puVar4 + 1;\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(undefined1 *)(param_1 + lVar3) = uVar5;\n      *(undefined1 *)(param_1 + 0x108) = uVar5;\n      if (puVar4 == &DAT_003a9d5d) break;\n      uVar5 = *puVar4;\n      lVar3 = lVar1;\n    }\n    break;\n  case 0x2d:\n    pcVar7 = " __vector(";\n    cVar8 = ' ';\n    lVar3 = *(long *)(param_1 + 0x100);\n    while( true ) {\n      pcVar7 = pcVar7 + 1;\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }\n    lVar3 = *(long *)(param_3 + 2);\n    goto LAB_002e5aba;\n  case 0x4c:\n    pcVar7 = " transaction_safe";\n    cVar8 = ' ';\n    lVar3 = *(long *)(param_1 + 0x100);\n    while( true ) {\n      pcVar7 = pcVar7 + 1;\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }\n    break;\n  case 0x4e:\n    pcVar7 = " noexcept";\n    cVar8 = ' ';\n    lVar3 = *(long *)(param_1 + 0x100);\n    while( true ) {\n      pcVar7 = pcVar7 + 1;\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }\n    goto LAB_002e5a60;\n  case 0x4f:\n    pcVar7 = " throw";\n    cVar8 = ' ';\n    lVar3 = *(long *)(param_1 + 0x100);\n    while( true ) {\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      pcVar7 = pcVar7 + 1;\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }\nLAB_002e5a60:\n    lVar3 = *(long *)(param_3 + 4);\n    if (lVar3 != 0) {\n      lVar2 = lVar1 + 1;\n      if (lVar1 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar3 = *(long *)(param_3 + 4);\n        lVar1 = 0;\n        lVar2 = 1;\n      }\n      *(long *)(param_1 + 0x100) = lVar2;\n      *(undefined1 *)(param_1 + lVar1) = 0x28;\n      *(undefined1 *)(param_1 + 0x108) = 0x28;\nLAB_002e5aba:\n      FUN_002e5210(param_1,uVar6,lVar3);\n      lVar1 = *(long *)(param_1 + 0x100);\n      lVar3 = lVar1 + 1;\n      if (lVar1 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar3 = 1;\n        lVar1 = 0;\n      }\n      *(long *)(param_1 + 0x100) = lVar3;\n      *(undefined1 *)(param_1 + lVar1) = 0x29;\n      *(undefined1 *)(param_1 + 0x108) = 0x29;\n      return;\n    }\n  }" { (case_statement "case 3:\n    param_3 = *(int **)(param_3 + 2);" case number_literal : (expression_statement "param_3 = *(int **)(param_3 + 2);" (assignment_expression "param_3 = *(int **)(param_3 + 2)" identifier = (pointer_expression "*(int **)(param_3 + 2)" * (cast_expression "(int **)(param_3 + 2)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_3 + 2)" ( (binary_expression "param_3 + 2" identifier + number_literal) ))))) ;)) (case_statement "default:\nswitchD_002e52d3_caseD_4:\n    FUN_002e5210(param_1,param_2,param_3);\n    return;" default : (labeled_statement "switchD_002e52d3_caseD_4:\n    FUN_002e5210(param_1,param_2,param_3);" statement_identifier : (expression_statement "FUN_002e5210(param_1,param_2,param_3);" (call_expression "FUN_002e5210(param_1,param_2,param_3)" identifier (argument_list "(param_1,param_2,param_3)" ( identifier , identifier , identifier ))) ;)) (return_statement "return;" return ;)) (case_statement "case 0x19:" case number_literal :) (case_statement "case 0x1c:\n    pcVar7 = " restrict";\n    cVar8 = ' ';\n    lVar3 = *(long *)(param_1 + 0x100);\n    while( true ) {\n      pcVar7 = pcVar7 + 1;\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }\n    break;" case number_literal : (expression_statement "pcVar7 = " restrict";" (assignment_expression "pcVar7 = " restrict"" identifier = (string_literal "" restrict"" " string_content ")) ;) (expression_statement "cVar8 = ' ';" (assignment_expression "cVar8 = ' '" identifier = (char_literal "' '" ' character ')) ;) (expression_statement "lVar3 = *(long *)(param_1 + 0x100);" (assignment_expression "lVar3 = *(long *)(param_1 + 0x100)" identifier = (pointer_expression "*(long *)(param_1 + 0x100)" * (cast_expression "(long *)(param_1 + 0x100)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x100)" ( (binary_expression "param_1 + 0x100" identifier + number_literal) ))))) ;) (while_statement "while( true ) {\n      pcVar7 = pcVar7 + 1;\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      pcVar7 = pcVar7 + 1;\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }" { (expression_statement "pcVar7 = pcVar7 + 1;" (assignment_expression "pcVar7 = pcVar7 + 1" identifier = (binary_expression "pcVar7 + 1" identifier + number_literal)) ;) (if_statement "if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }" if (parenthesized_expression "(lVar3 == 0xff)" ( (binary_expression "lVar3 == 0xff" identifier == number_literal) )) (compound_statement "{\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }" { (expression_statement "*(undefined1 *)(param_1 + 0xff) = 0;" (assignment_expression "*(undefined1 *)(param_1 + 0xff) = 0" (pointer_expression "*(undefined1 *)(param_1 + 0xff)" * (cast_expression "(undefined1 *)(param_1 + 0xff)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xff)" ( (binary_expression "param_1 + 0xff" identifier + number_literal) )))) = number_literal) ;) (expression_statement "(**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));" (call_expression "(**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118))" (parenthesized_expression "(**(code **)(param_1 + 0x110))" ( (pointer_expression "**(code **)(param_1 + 0x110)" * (pointer_expression "*(code **)(param_1 + 0x110)" * (cast_expression "(code **)(param_1 + 0x110)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x110)" ( (binary_expression "param_1 + 0x110" identifier + number_literal) ))))) )) (argument_list "(param_1,0xff,*(undefined8 *)(param_1 + 0x118))" ( identifier , number_literal , (pointer_expression "*(undefined8 *)(param_1 + 0x118)" * (cast_expression "(undefined8 *)(param_1 + 0x118)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x118)" ( (binary_expression "param_1 + 0x118" identifier + number_literal) )))) ))) ;) (expression_statement "*(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;" (assignment_expression "*(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1" (pointer_expression "*(long *)(param_1 + 0x140)" * (cast_expression "(long *)(param_1 + 0x140)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x140)" ( (binary_expression "param_1 + 0x140" identifier + number_literal) )))) = (binary_expression "*(long *)(param_1 + 0x140) + 1" (pointer_expression "*(long *)(param_1 + 0x140)" * (cast_expression "(long *)(param_1 + 0x140)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x140)" ( (binary_expression "param_1 + 0x140" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "lVar1 = 1;" (assignment_expression "lVar1 = 1" identifier = number_literal) ;) (expression_statement "lVar3 = 0;" (assignment_expression "lVar3 = 0" identifier = number_literal) ;) }) (else_clause "else {\n        lVar1 = lVar3 + 1;\n      }" else (compound_statement "{\n        lVar1 = lVar3 + 1;\n      }" { (expression_statement "lVar1 = lVar3 + 1;" (assignment_expression "lVar1 = lVar3 + 1" identifier = (binary_expression "lVar3 + 1" identifier + number_literal)) ;) }))) (expression_statement "*(long *)(param_1 + 0x100) = lVar1;" (assignment_expression "*(long *)(param_1 + 0x100) = lVar1" (pointer_expression "*(long *)(param_1 + 0x100)" * (cast_expression "(long *)(param_1 + 0x100)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x100)" ( (binary_expression "param_1 + 0x100" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(char *)(param_1 + lVar3) = cVar8;" (assignment_expression "*(char *)(param_1 + lVar3) = cVar8" (pointer_expression "*(char *)(param_1 + lVar3)" * (cast_expression "(char *)(param_1 + lVar3)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + lVar3)" ( (binary_expression "param_1 + lVar3" identifier + identifier) )))) = identifier) ;) (expression_statement "*(char *)(param_1 + 0x108) = cVar8;" (assignment_expression "*(char *)(param_1 + 0x108) = cVar8" (pointer_expression "*(char *)(param_1 + 0x108)" * (cast_expression "(char *)(param_1 + 0x108)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x108)" ( (binary_expression "param_1 + 0x108" identifier + number_literal) )))) = identifier) ;) (if_statement "if (pcVar7 == "") break;" if (parenthesized_expression "(pcVar7 == "")" ( (binary_expression "pcVar7 == """ identifier == (string_literal """" " ")) )) (break_statement "break;" break ;)) (expression_statement "cVar8 = *pcVar7;" (assignment_expression "cVar8 = *pcVar7" identifier = (pointer_expression "*pcVar7" * identifier)) ;) (expression_statement "lVar3 = lVar1;" (assignment_expression "lVar3 = lVar1" identifier = identifier) ;) })) (break_statement "break;" break ;)) (case_statement "case 0x1a:" case number_literal :) (case_statement "case 0x1d:\n    pcVar7 = "volatile";\n    cVar8 = ' ';\n    lVar3 = *(long *)(param_1 + 0x100);\n    while( true ) {\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      pcVar7 = pcVar7 + 1;\n      lVar3 = lVar1;\n    }\n    break;" case number_literal : (expression_statement "pcVar7 = "volatile";" (assignment_expression "pcVar7 = "volatile"" identifier = (string_literal ""volatile"" " string_content ")) ;) (expression_statement "cVar8 = ' ';" (assignment_expression "cVar8 = ' '" identifier = (char_literal "' '" ' character ')) ;) (expression_statement "lVar3 = *(long *)(param_1 + 0x100);" (assignment_expression "lVar3 = *(long *)(param_1 + 0x100)" identifier = (pointer_expression "*(long *)(param_1 + 0x100)" * (cast_expression "(long *)(param_1 + 0x100)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x100)" ( (binary_expression "param_1 + 0x100" identifier + number_literal) ))))) ;) (while_statement "while( true ) {\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      pcVar7 = pcVar7 + 1;\n      lVar3 = lVar1;\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      pcVar7 = pcVar7 + 1;\n      lVar3 = lVar1;\n    }" { (if_statement "if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }" if (parenthesized_expression "(lVar3 == 0xff)" ( (binary_expression "lVar3 == 0xff" identifier == number_literal) )) (compound_statement "{\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }" { (expression_statement "*(undefined1 *)(param_1 + 0xff) = 0;" (assignment_expression "*(undefined1 *)(param_1 + 0xff) = 0" (pointer_expression "*(undefined1 *)(param_1 + 0xff)" * (cast_expression "(undefined1 *)(param_1 + 0xff)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xff)" ( (binary_expression "param_1 + 0xff" identifier + number_literal) )))) = number_literal) ;) (expression_statement "(**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));" (call_expression "(**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118))" (parenthesized_expression "(**(code **)(param_1 + 0x110))" ( (pointer_expression "**(code **)(param_1 + 0x110)" * (pointer_expression "*(code **)(param_1 + 0x110)" * (cast_expression "(code **)(param_1 + 0x110)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x110)" ( (binary_expression "param_1 + 0x110" identifier + number_literal) ))))) )) (argument_list "(param_1,0xff,*(undefined8 *)(param_1 + 0x118))" ( identifier , number_literal , (pointer_expression "*(undefined8 *)(param_1 + 0x118)" * (cast_expression "(undefined8 *)(param_1 + 0x118)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x118)" ( (binary_expression "param_1 + 0x118" identifier + number_literal) )))) ))) ;) (expression_statement "*(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;" (assignment_expression "*(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1" (pointer_expression "*(long *)(param_1 + 0x140)" * (cast_expression "(long *)(param_1 + 0x140)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x140)" ( (binary_expression "param_1 + 0x140" identifier + number_literal) )))) = (binary_expression "*(long *)(param_1 + 0x140) + 1" (pointer_expression "*(long *)(param_1 + 0x140)" * (cast_expression "(long *)(param_1 + 0x140)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x140)" ( (binary_expression "param_1 + 0x140" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "lVar1 = 1;" (assignment_expression "lVar1 = 1" identifier = number_literal) ;) (expression_statement "lVar3 = 0;" (assignment_expression "lVar3 = 0" identifier = number_literal) ;) }) (else_clause "else {\n        lVar1 = lVar3 + 1;\n      }" else (compound_statement "{\n        lVar1 = lVar3 + 1;\n      }" { (expression_statement "lVar1 = lVar3 + 1;" (assignment_expression "lVar1 = lVar3 + 1" identifier = (binary_expression "lVar3 + 1" identifier + number_literal)) ;) }))) (expression_statement "*(long *)(param_1 + 0x100) = lVar1;" (assignment_expression "*(long *)(param_1 + 0x100) = lVar1" (pointer_expression "*(long *)(param_1 + 0x100)" * (cast_expression "(long *)(param_1 + 0x100)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x100)" ( (binary_expression "param_1 + 0x100" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(char *)(param_1 + lVar3) = cVar8;" (assignment_expression "*(char *)(param_1 + lVar3) = cVar8" (pointer_expression "*(char *)(param_1 + lVar3)" * (cast_expression "(char *)(param_1 + lVar3)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + lVar3)" ( (binary_expression "param_1 + lVar3" identifier + identifier) )))) = identifier) ;) (expression_statement "*(char *)(param_1 + 0x108) = cVar8;" (assignment_expression "*(char *)(param_1 + 0x108) = cVar8" (pointer_expression "*(char *)(param_1 + 0x108)" * (cast_expression "(char *)(param_1 + 0x108)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x108)" ( (binary_expression "param_1 + 0x108" identifier + number_literal) )))) = identifier) ;) (if_statement "if (pcVar7 == "") break;" if (parenthesized_expression "(pcVar7 == "")" ( (binary_expression "pcVar7 == """ identifier == (string_literal """" " ")) )) (break_statement "break;" break ;)) (expression_statement "cVar8 = *pcVar7;" (assignment_expression "cVar8 = *pcVar7" identifier = (pointer_expression "*pcVar7" * identifier)) ;) (expression_statement "pcVar7 = pcVar7 + 1;" (assignment_expression "pcVar7 = pcVar7 + 1" identifier = (binary_expression "pcVar7 + 1" identifier + number_literal)) ;) (expression_statement "lVar3 = lVar1;" (assignment_expression "lVar3 = lVar1" identifier = identifier) ;) })) (break_statement "break;" break ;)) (case_statement "case 0x1b:" case number_literal :) (case_statement "case 0x1e:\n    pcVar7 = " const";\n    cVar8 = ' ';\n    lVar3 = *(long *)(param_1 + 0x100);\n    while( true ) {\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      pcVar7 = pcVar7 + 1;\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }\n    break;" case number_literal : (expression_statement "pcVar7 = " const";" (assignment_expression "pcVar7 = " const"" identifier = (string_literal "" const"" " string_content ")) ;) (expression_statement "cVar8 = ' ';" (assignment_expression "cVar8 = ' '" identifier = (char_literal "' '" ' character ')) ;) (expression_statement "lVar3 = *(long *)(param_1 + 0x100);" (assignment_expression "lVar3 = *(long *)(param_1 + 0x100)" identifier = (pointer_expression "*(long *)(param_1 + 0x100)" * (cast_expression "(long *)(param_1 + 0x100)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x100)" ( (binary_expression "param_1 + 0x100" identifier + number_literal) ))))) ;) (while_statement "while( true ) {\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      pcVar7 = pcVar7 + 1;\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      pcVar7 = pcVar7 + 1;\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }" { (if_statement "if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }" if (parenthesized_expression "(lVar3 == 0xff)" ( (binary_expression "lVar3 == 0xff" identifier == number_literal) )) (compound_statement "{\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }" { (expression_statement "*(undefined1 *)(param_1 + 0xff) = 0;" (assignment_expression "*(undefined1 *)(param_1 + 0xff) = 0" (pointer_expression "*(undefined1 *)(param_1 + 0xff)" * (cast_expression "(undefined1 *)(param_1 + 0xff)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xff)" ( (binary_expression "param_1 + 0xff" identifier + number_literal) )))) = number_literal) ;) (expression_statement "(**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));" (call_expression "(**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118))" (parenthesized_expression "(**(code **)(param_1 + 0x110))" ( (pointer_expression "**(code **)(param_1 + 0x110)" * (pointer_expression "*(code **)(param_1 + 0x110)" * (cast_expression "(code **)(param_1 + 0x110)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x110)" ( (binary_expression "param_1 + 0x110" identifier + number_literal) ))))) )) (argument_list "(param_1,0xff,*(undefined8 *)(param_1 + 0x118))" ( identifier , number_literal , (pointer_expression "*(undefined8 *)(param_1 + 0x118)" * (cast_expression "(undefined8 *)(param_1 + 0x118)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x118)" ( (binary_expression "param_1 + 0x118" identifier + number_literal) )))) ))) ;) (expression_statement "*(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;" (assignment_expression "*(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1" (pointer_expression "*(long *)(param_1 + 0x140)" * (cast_expression "(long *)(param_1 + 0x140)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x140)" ( (binary_expression "param_1 + 0x140" identifier + number_literal) )))) = (binary_expression "*(long *)(param_1 + 0x140) + 1" (pointer_expression "*(long *)(param_1 + 0x140)" * (cast_expression "(long *)(param_1 + 0x140)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x140)" ( (binary_expression "param_1 + 0x140" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "lVar1 = 1;" (assignment_expression "lVar1 = 1" identifier = number_literal) ;) (expression_statement "lVar3 = 0;" (assignment_expression "lVar3 = 0" identifier = number_literal) ;) }) (else_clause "else {\n        lVar1 = lVar3 + 1;\n      }" else (compound_statement "{\n        lVar1 = lVar3 + 1;\n      }" { (expression_statement "lVar1 = lVar3 + 1;" (assignment_expression "lVar1 = lVar3 + 1" identifier = (binary_expression "lVar3 + 1" identifier + number_literal)) ;) }))) (expression_statement "pcVar7 = pcVar7 + 1;" (assignment_expression "pcVar7 = pcVar7 + 1" identifier = (binary_expression "pcVar7 + 1" identifier + number_literal)) ;) (expression_statement "*(long *)(param_1 + 0x100) = lVar1;" (assignment_expression "*(long *)(param_1 + 0x100) = lVar1" (pointer_expression "*(long *)(param_1 + 0x100)" * (cast_expression "(long *)(param_1 + 0x100)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x100)" ( (binary_expression "param_1 + 0x100" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(char *)(param_1 + lVar3) = cVar8;" (assignment_expression "*(char *)(param_1 + lVar3) = cVar8" (pointer_expression "*(char *)(param_1 + lVar3)" * (cast_expression "(char *)(param_1 + lVar3)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + lVar3)" ( (binary_expression "param_1 + lVar3" identifier + identifier) )))) = identifier) ;) (expression_statement "*(char *)(param_1 + 0x108) = cVar8;" (assignment_expression "*(char *)(param_1 + 0x108) = cVar8" (pointer_expression "*(char *)(param_1 + 0x108)" * (cast_expression "(char *)(param_1 + 0x108)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x108)" ( (binary_expression "param_1 + 0x108" identifier + number_literal) )))) = identifier) ;) (if_statement "if (pcVar7 == "") break;" if (parenthesized_expression "(pcVar7 == "")" ( (binary_expression "pcVar7 == """ identifier == (string_literal """" " ")) )) (break_statement "break;" break ;)) (expression_statement "cVar8 = *pcVar7;" (assignment_expression "cVar8 = *pcVar7" identifier = (pointer_expression "*pcVar7" * identifier)) ;) (expression_statement "lVar3 = lVar1;" (assignment_expression "lVar3 = lVar1" identifier = identifier) ;) })) (break_statement "break;" break ;)) (case_statement "case 0x1f:\n    if (*(long *)(param_1 + 0x100) == 0xff) {\n      *(undefined1 *)(param_1 + 0xff) = 0;\n      (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n      *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n      *(undefined8 *)(param_1 + 0x100) = 0;\n    }\n    lVar1 = *(long *)(param_1 + 0x100);\n    lVar3 = lVar1 + 1;\n    *(long *)(param_1 + 0x100) = lVar3;\n    *(undefined1 *)(param_1 + lVar1) = 0x20;\n    *(undefined1 *)(param_1 + 0x108) = 0x20;\n    goto LAB_002e5807;" case number_literal : (if_statement "if (*(long *)(param_1 + 0x100) == 0xff) {\n      *(undefined1 *)(param_1 + 0xff) = 0;\n      (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n      *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n      *(undefined8 *)(param_1 + 0x100) = 0;\n    }" if (parenthesized_expression "(*(long *)(param_1 + 0x100) == 0xff)" ( (binary_expression "*(long *)(param_1 + 0x100) == 0xff" (pointer_expression "*(long *)(param_1 + 0x100)" * (cast_expression "(long *)(param_1 + 0x100)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x100)" ( (binary_expression "param_1 + 0x100" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n      *(undefined1 *)(param_1 + 0xff) = 0;\n      (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n      *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n      *(undefined8 *)(param_1 + 0x100) = 0;\n    }" { (expression_statement "*(undefined1 *)(param_1 + 0xff) = 0;" (assignment_expression "*(undefined1 *)(param_1 + 0xff) = 0" (pointer_expression "*(undefined1 *)(param_1 + 0xff)" * (cast_expression "(undefined1 *)(param_1 + 0xff)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xff)" ( (binary_expression "param_1 + 0xff" identifier + number_literal) )))) = number_literal) ;) (expression_statement "(**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));" (call_expression "(**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118))" (parenthesized_expression "(**(code **)(param_1 + 0x110))" ( (pointer_expression "**(code **)(param_1 + 0x110)" * (pointer_expression "*(code **)(param_1 + 0x110)" * (cast_expression "(code **)(param_1 + 0x110)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x110)" ( (binary_expression "param_1 + 0x110" identifier + number_literal) ))))) )) (argument_list "(param_1,0xff,*(undefined8 *)(param_1 + 0x118))" ( identifier , number_literal , (pointer_expression "*(undefined8 *)(param_1 + 0x118)" * (cast_expression "(undefined8 *)(param_1 + 0x118)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x118)" ( (binary_expression "param_1 + 0x118" identifier + number_literal) )))) ))) ;) (expression_statement "*(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;" (assignment_expression "*(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1" (pointer_expression "*(long *)(param_1 + 0x140)" * (cast_expression "(long *)(param_1 + 0x140)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x140)" ( (binary_expression "param_1 + 0x140" identifier + number_literal) )))) = (binary_expression "*(long *)(param_1 + 0x140) + 1" (pointer_expression "*(long *)(param_1 + 0x140)" * (cast_expression "(long *)(param_1 + 0x140)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x140)" ( (binary_expression "param_1 + 0x140" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "*(undefined8 *)(param_1 + 0x100) = 0;" (assignment_expression "*(undefined8 *)(param_1 + 0x100) = 0" (pointer_expression "*(undefined8 *)(param_1 + 0x100)" * (cast_expression "(undefined8 *)(param_1 + 0x100)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x100)" ( (binary_expression "param_1 + 0x100" identifier + number_literal) )))) = number_literal) ;) })) (expression_statement "lVar1 = *(long *)(param_1 + 0x100);" (assignment_expression "lVar1 = *(long *)(param_1 + 0x100)" identifier = (pointer_expression "*(long *)(param_1 + 0x100)" * (cast_expression "(long *)(param_1 + 0x100)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x100)" ( (binary_expression "param_1 + 0x100" identifier + number_literal) ))))) ;) (expression_statement "lVar3 = lVar1 + 1;" (assignment_expression "lVar3 = lVar1 + 1" identifier = (binary_expression "lVar1 + 1" identifier + number_literal)) ;) (expression_statement "*(long *)(param_1 + 0x100) = lVar3;" (assignment_expression "*(long *)(param_1 + 0x100) = lVar3" (pointer_expression "*(long *)(param_1 + 0x100)" * (cast_expression "(long *)(param_1 + 0x100)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x100)" ( (binary_expression "param_1 + 0x100" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 *)(param_1 + lVar1) = 0x20;" (assignment_expression "*(undefined1 *)(param_1 + lVar1) = 0x20" (pointer_expression "*(undefined1 *)(param_1 + lVar1)" * (cast_expression "(undefined1 *)(param_1 + lVar1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + lVar1)" ( (binary_expression "param_1 + lVar1" identifier + identifier) )))) = number_literal) ;) (expression_statement "*(undefined1 *)(param_1 + 0x108) = 0x20;" (assignment_expression "*(undefined1 *)(param_1 + 0x108) = 0x20" (pointer_expression "*(undefined1 *)(param_1 + 0x108)" * (cast_expression "(undefined1 *)(param_1 + 0x108)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x108)" ( (binary_expression "param_1 + 0x108" identifier + number_literal) )))) = number_literal) ;) (goto_statement "goto LAB_002e5807;" goto statement_identifier ;)) (case_statement "case 0x20:\n    if (*(long *)(param_1 + 0x100) == 0xff) {\n      *(undefined1 *)(param_1 + 0xff) = 0;\n      (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n      *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n      *(undefined8 *)(param_1 + 0x100) = 0;\n    }\n    lVar1 = *(long *)(param_1 + 0x100);\n    lVar3 = lVar1 + 1;\n    *(long *)(param_1 + 0x100) = lVar3;\n    *(undefined1 *)(param_1 + lVar1) = 0x20;\n    *(undefined1 *)(param_1 + 0x108) = 0x20;\n    goto LAB_002e5867;" case number_literal : (if_statement "if (*(long *)(param_1 + 0x100) == 0xff) {\n      *(undefined1 *)(param_1 + 0xff) = 0;\n      (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n      *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n      *(undefined8 *)(param_1 + 0x100) = 0;\n    }" if (parenthesized_expression "(*(long *)(param_1 + 0x100) == 0xff)" ( (binary_expression "*(long *)(param_1 + 0x100) == 0xff" (pointer_expression "*(long *)(param_1 + 0x100)" * (cast_expression "(long *)(param_1 + 0x100)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x100)" ( (binary_expression "param_1 + 0x100" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n      *(undefined1 *)(param_1 + 0xff) = 0;\n      (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n      *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n      *(undefined8 *)(param_1 + 0x100) = 0;\n    }" { (expression_statement "*(undefined1 *)(param_1 + 0xff) = 0;" (assignment_expression "*(undefined1 *)(param_1 + 0xff) = 0" (pointer_expression "*(undefined1 *)(param_1 + 0xff)" * (cast_expression "(undefined1 *)(param_1 + 0xff)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xff)" ( (binary_expression "param_1 + 0xff" identifier + number_literal) )))) = number_literal) ;) (expression_statement "(**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));" (call_expression "(**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118))" (parenthesized_expression "(**(code **)(param_1 + 0x110))" ( (pointer_expression "**(code **)(param_1 + 0x110)" * (pointer_expression "*(code **)(param_1 + 0x110)" * (cast_expression "(code **)(param_1 + 0x110)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x110)" ( (binary_expression "param_1 + 0x110" identifier + number_literal) ))))) )) (argument_list "(param_1,0xff,*(undefined8 *)(param_1 + 0x118))" ( identifier , number_literal , (pointer_expression "*(undefined8 *)(param_1 + 0x118)" * (cast_expression "(undefined8 *)(param_1 + 0x118)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x118)" ( (binary_expression "param_1 + 0x118" identifier + number_literal) )))) ))) ;) (expression_statement "*(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;" (assignment_expression "*(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1" (pointer_expression "*(long *)(param_1 + 0x140)" * (cast_expression "(long *)(param_1 + 0x140)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x140)" ( (binary_expression "param_1 + 0x140" identifier + number_literal) )))) = (binary_expression "*(long *)(param_1 + 0x140) + 1" (pointer_expression "*(long *)(param_1 + 0x140)" * (cast_expression "(long *)(param_1 + 0x140)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x140)" ( (binary_expression "param_1 + 0x140" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "*(undefined8 *)(param_1 + 0x100) = 0;" (assignment_expression "*(undefined8 *)(param_1 + 0x100) = 0" (pointer_expression "*(undefined8 *)(param_1 + 0x100)" * (cast_expression "(undefined8 *)(param_1 + 0x100)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x100)" ( (binary_expression "param_1 + 0x100" identifier + number_literal) )))) = number_literal) ;) })) (expression_statement "lVar1 = *(long *)(param_1 + 0x100);" (assignment_expression "lVar1 = *(long *)(param_1 + 0x100)" identifier = (pointer_expression "*(long *)(param_1 + 0x100)" * (cast_expression "(long *)(param_1 + 0x100)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x100)" ( (binary_expression "param_1 + 0x100" identifier + number_literal) ))))) ;) (expression_statement "lVar3 = lVar1 + 1;" (assignment_expression "lVar3 = lVar1 + 1" identifier = (binary_expression "lVar1 + 1" identifier + number_literal)) ;) (expression_statement "*(long *)(param_1 + 0x100) = lVar3;" (assignment_expression "*(long *)(param_1 + 0x100) = lVar3" (pointer_expression "*(long *)(param_1 + 0x100)" * (cast_expression "(long *)(param_1 + 0x100)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x100)" ( (binary_expression "param_1 + 0x100" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 *)(param_1 + lVar1) = 0x20;" (assignment_expression "*(undefined1 *)(param_1 + lVar1) = 0x20" (pointer_expression "*(undefined1 *)(param_1 + lVar1)" * (cast_expression "(undefined1 *)(param_1 + lVar1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + lVar1)" ( (binary_expression "param_1 + lVar1" identifier + identifier) )))) = number_literal) ;) (expression_statement "*(undefined1 *)(param_1 + 0x108) = 0x20;" (assignment_expression "*(undefined1 *)(param_1 + 0x108) = 0x20" (pointer_expression "*(undefined1 *)(param_1 + 0x108)" * (cast_expression "(undefined1 *)(param_1 + 0x108)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x108)" ( (binary_expression "param_1 + 0x108" identifier + number_literal) )))) = number_literal) ;) (goto_statement "goto LAB_002e5867;" goto statement_identifier ;)) (case_statement "case 0x21:\n    if (*(long *)(param_1 + 0x100) == 0xff) {\n      *(undefined1 *)(param_1 + 0xff) = 0;\n      (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n      *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n      *(undefined8 *)(param_1 + 0x100) = 0;\n    }\n    lVar3 = *(long *)(param_1 + 0x100);\n    *(long *)(param_1 + 0x100) = lVar3 + 1;\n    *(undefined1 *)(param_1 + lVar3) = 0x20;\n    *(undefined1 *)(param_1 + 0x108) = 0x20;\n    param_3 = *(int **)(param_3 + 4);\n    param_2 = uVar6;\n    goto switchD_002e52d3_caseD_4;" case number_literal : (if_statement "if (*(long *)(param_1 + 0x100) == 0xff) {\n      *(undefined1 *)(param_1 + 0xff) = 0;\n      (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n      *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n      *(undefined8 *)(param_1 + 0x100) = 0;\n    }" if (parenthesized_expression "(*(long *)(param_1 + 0x100) == 0xff)" ( (binary_expression "*(long *)(param_1 + 0x100) == 0xff" (pointer_expression "*(long *)(param_1 + 0x100)" * (cast_expression "(long *)(param_1 + 0x100)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x100)" ( (binary_expression "param_1 + 0x100" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n      *(undefined1 *)(param_1 + 0xff) = 0;\n      (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n      *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n      *(undefined8 *)(param_1 + 0x100) = 0;\n    }" { (expression_statement "*(undefined1 *)(param_1 + 0xff) = 0;" (assignment_expression "*(undefined1 *)(param_1 + 0xff) = 0" (pointer_expression "*(undefined1 *)(param_1 + 0xff)" * (cast_expression "(undefined1 *)(param_1 + 0xff)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xff)" ( (binary_expression "param_1 + 0xff" identifier + number_literal) )))) = number_literal) ;) (expression_statement "(**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));" (call_expression "(**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118))" (parenthesized_expression "(**(code **)(param_1 + 0x110))" ( (pointer_expression "**(code **)(param_1 + 0x110)" * (pointer_expression "*(code **)(param_1 + 0x110)" * (cast_expression "(code **)(param_1 + 0x110)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x110)" ( (binary_expression "param_1 + 0x110" identifier + number_literal) ))))) )) (argument_list "(param_1,0xff,*(undefined8 *)(param_1 + 0x118))" ( identifier , number_literal , (pointer_expression "*(undefined8 *)(param_1 + 0x118)" * (cast_expression "(undefined8 *)(param_1 + 0x118)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x118)" ( (binary_expression "param_1 + 0x118" identifier + number_literal) )))) ))) ;) (expression_statement "*(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;" (assignment_expression "*(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1" (pointer_expression "*(long *)(param_1 + 0x140)" * (cast_expression "(long *)(param_1 + 0x140)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x140)" ( (binary_expression "param_1 + 0x140" identifier + number_literal) )))) = (binary_expression "*(long *)(param_1 + 0x140) + 1" (pointer_expression "*(long *)(param_1 + 0x140)" * (cast_expression "(long *)(param_1 + 0x140)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x140)" ( (binary_expression "param_1 + 0x140" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "*(undefined8 *)(param_1 + 0x100) = 0;" (assignment_expression "*(undefined8 *)(param_1 + 0x100) = 0" (pointer_expression "*(undefined8 *)(param_1 + 0x100)" * (cast_expression "(undefined8 *)(param_1 + 0x100)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x100)" ( (binary_expression "param_1 + 0x100" identifier + number_literal) )))) = number_literal) ;) })) (expression_statement "lVar3 = *(long *)(param_1 + 0x100);" (assignment_expression "lVar3 = *(long *)(param_1 + 0x100)" identifier = (pointer_expression "*(long *)(param_1 + 0x100)" * (cast_expression "(long *)(param_1 + 0x100)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x100)" ( (binary_expression "param_1 + 0x100" identifier + number_literal) ))))) ;) (expression_statement "*(long *)(param_1 + 0x100) = lVar3 + 1;" (assignment_expression "*(long *)(param_1 + 0x100) = lVar3 + 1" (pointer_expression "*(long *)(param_1 + 0x100)" * (cast_expression "(long *)(param_1 + 0x100)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x100)" ( (binary_expression "param_1 + 0x100" identifier + number_literal) )))) = (binary_expression "lVar3 + 1" identifier + number_literal)) ;) (expression_statement "*(undefined1 *)(param_1 + lVar3) = 0x20;" (assignment_expression "*(undefined1 *)(param_1 + lVar3) = 0x20" (pointer_expression "*(undefined1 *)(param_1 + lVar3)" * (cast_expression "(undefined1 *)(param_1 + lVar3)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + lVar3)" ( (binary_expression "param_1 + lVar3" identifier + identifier) )))) = number_literal) ;) (expression_statement "*(undefined1 *)(param_1 + 0x108) = 0x20;" (assignment_expression "*(undefined1 *)(param_1 + 0x108) = 0x20" (pointer_expression "*(undefined1 *)(param_1 + 0x108)" * (cast_expression "(undefined1 *)(param_1 + 0x108)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x108)" ( (binary_expression "param_1 + 0x108" identifier + number_literal) )))) = number_literal) ;) (expression_statement "param_3 = *(int **)(param_3 + 4);" (assignment_expression "param_3 = *(int **)(param_3 + 4)" identifier = (pointer_expression "*(int **)(param_3 + 4)" * (cast_expression "(int **)(param_3 + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_3 + 4)" ( (binary_expression "param_3 + 4" identifier + number_literal) ))))) ;) (expression_statement "param_2 = uVar6;" (assignment_expression "param_2 = uVar6" identifier = identifier) ;) (goto_statement "goto switchD_002e52d3_caseD_4;" goto statement_identifier ;)) (case_statement "case 0x22:\n    if ((param_2 & 4) == 0) {\n      if (*(long *)(param_1 + 0x100) == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        *(undefined8 *)(param_1 + 0x100) = 0;\n      }\n      lVar3 = *(long *)(param_1 + 0x100);\n      *(long *)(param_1 + 0x100) = lVar3 + 1;\n      *(undefined1 *)(param_1 + lVar3) = 0x2a;\n      *(undefined1 *)(param_1 + 0x108) = 0x2a;\n    }\n    break;" case number_literal : (if_statement "if ((param_2 & 4) == 0) {\n      if (*(long *)(param_1 + 0x100) == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        *(undefined8 *)(param_1 + 0x100) = 0;\n      }\n      lVar3 = *(long *)(param_1 + 0x100);\n      *(long *)(param_1 + 0x100) = lVar3 + 1;\n      *(undefined1 *)(param_1 + lVar3) = 0x2a;\n      *(undefined1 *)(param_1 + 0x108) = 0x2a;\n    }" if (parenthesized_expression "((param_2 & 4) == 0)" ( (binary_expression "(param_2 & 4) == 0" (parenthesized_expression "(param_2 & 4)" ( (binary_expression "param_2 & 4" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n      if (*(long *)(param_1 + 0x100) == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        *(undefined8 *)(param_1 + 0x100) = 0;\n      }\n      lVar3 = *(long *)(param_1 + 0x100);\n      *(long *)(param_1 + 0x100) = lVar3 + 1;\n      *(undefined1 *)(param_1 + lVar3) = 0x2a;\n      *(undefined1 *)(param_1 + 0x108) = 0x2a;\n    }" { (if_statement "if (*(long *)(param_1 + 0x100) == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        *(undefined8 *)(param_1 + 0x100) = 0;\n      }" if (parenthesized_expression "(*(long *)(param_1 + 0x100) == 0xff)" ( (binary_expression "*(long *)(param_1 + 0x100) == 0xff" (pointer_expression "*(long *)(param_1 + 0x100)" * (cast_expression "(long *)(param_1 + 0x100)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x100)" ( (binary_expression "param_1 + 0x100" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        *(undefined8 *)(param_1 + 0x100) = 0;\n      }" { (expression_statement "*(undefined1 *)(param_1 + 0xff) = 0;" (assignment_expression "*(undefined1 *)(param_1 + 0xff) = 0" (pointer_expression "*(undefined1 *)(param_1 + 0xff)" * (cast_expression "(undefined1 *)(param_1 + 0xff)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xff)" ( (binary_expression "param_1 + 0xff" identifier + number_literal) )))) = number_literal) ;) (expression_statement "(**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));" (call_expression "(**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118))" (parenthesized_expression "(**(code **)(param_1 + 0x110))" ( (pointer_expression "**(code **)(param_1 + 0x110)" * (pointer_expression "*(code **)(param_1 + 0x110)" * (cast_expression "(code **)(param_1 + 0x110)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x110)" ( (binary_expression "param_1 + 0x110" identifier + number_literal) ))))) )) (argument_list "(param_1,0xff,*(undefined8 *)(param_1 + 0x118))" ( identifier , number_literal , (pointer_expression "*(undefined8 *)(param_1 + 0x118)" * (cast_expression "(undefined8 *)(param_1 + 0x118)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x118)" ( (binary_expression "param_1 + 0x118" identifier + number_literal) )))) ))) ;) (expression_statement "*(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;" (assignment_expression "*(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1" (pointer_expression "*(long *)(param_1 + 0x140)" * (cast_expression "(long *)(param_1 + 0x140)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x140)" ( (binary_expression "param_1 + 0x140" identifier + number_literal) )))) = (binary_expression "*(long *)(param_1 + 0x140) + 1" (pointer_expression "*(long *)(param_1 + 0x140)" * (cast_expression "(long *)(param_1 + 0x140)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x140)" ( (binary_expression "param_1 + 0x140" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "*(undefined8 *)(param_1 + 0x100) = 0;" (assignment_expression "*(undefined8 *)(param_1 + 0x100) = 0" (pointer_expression "*(undefined8 *)(param_1 + 0x100)" * (cast_expression "(undefined8 *)(param_1 + 0x100)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x100)" ( (binary_expression "param_1 + 0x100" identifier + number_literal) )))) = number_literal) ;) })) (expression_statement "lVar3 = *(long *)(param_1 + 0x100);" (assignment_expression "lVar3 = *(long *)(param_1 + 0x100)" identifier = (pointer_expression "*(long *)(param_1 + 0x100)" * (cast_expression "(long *)(param_1 + 0x100)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x100)" ( (binary_expression "param_1 + 0x100" identifier + number_literal) ))))) ;) (expression_statement "*(long *)(param_1 + 0x100) = lVar3 + 1;" (assignment_expression "*(long *)(param_1 + 0x100) = lVar3 + 1" (pointer_expression "*(long *)(param_1 + 0x100)" * (cast_expression "(long *)(param_1 + 0x100)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x100)" ( (binary_expression "param_1 + 0x100" identifier + number_literal) )))) = (binary_expression "lVar3 + 1" identifier + number_literal)) ;) (expression_statement "*(undefined1 *)(param_1 + lVar3) = 0x2a;" (assignment_expression "*(undefined1 *)(param_1 + lVar3) = 0x2a" (pointer_expression "*(undefined1 *)(param_1 + lVar3)" * (cast_expression "(undefined1 *)(param_1 + lVar3)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + lVar3)" ( (binary_expression "param_1 + lVar3" identifier + identifier) )))) = number_literal) ;) (expression_statement "*(undefined1 *)(param_1 + 0x108) = 0x2a;" (assignment_expression "*(undefined1 *)(param_1 + 0x108) = 0x2a" (pointer_expression "*(undefined1 *)(param_1 + 0x108)" * (cast_expression "(undefined1 *)(param_1 + 0x108)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x108)" ( (binary_expression "param_1 + 0x108" identifier + number_literal) )))) = number_literal) ;) })) (break_statement "break;" break ;)) (case_statement "case 0x23:\n    lVar3 = *(long *)(param_1 + 0x100);\nLAB_002e5807:\n    lVar1 = lVar3 + 1;\n    if (lVar3 == 0xff) {\n      *(undefined1 *)(param_1 + 0xff) = 0;\n      (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n      *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n      lVar1 = 1;\n      lVar3 = 0;\n    }\n    *(long *)(param_1 + 0x100) = lVar1;\n    *(undefined1 *)(param_1 + lVar3) = 0x26;\n    *(undefined1 *)(param_1 + 0x108) = 0x26;\n    break;" case number_literal : (expression_statement "lVar3 = *(long *)(param_1 + 0x100);" (assignment_expression "lVar3 = *(long *)(param_1 + 0x100)" identifier = (pointer_expression "*(long *)(param_1 + 0x100)" * (cast_expression "(long *)(param_1 + 0x100)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x100)" ( (binary_expression "param_1 + 0x100" identifier + number_literal) ))))) ;) (labeled_statement "LAB_002e5807:\n    lVar1 = lVar3 + 1;" statement_identifier : (expression_statement "lVar1 = lVar3 + 1;" (assignment_expression "lVar1 = lVar3 + 1" identifier = (binary_expression "lVar3 + 1" identifier + number_literal)) ;)) (if_statement "if (lVar3 == 0xff) {\n      *(undefined1 *)(param_1 + 0xff) = 0;\n      (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n      *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n      lVar1 = 1;\n      lVar3 = 0;\n    }" if (parenthesized_expression "(lVar3 == 0xff)" ( (binary_expression "lVar3 == 0xff" identifier == number_literal) )) (compound_statement "{\n      *(undefined1 *)(param_1 + 0xff) = 0;\n      (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n      *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n      lVar1 = 1;\n      lVar3 = 0;\n    }" { (expression_statement "*(undefined1 *)(param_1 + 0xff) = 0;" (assignment_expression "*(undefined1 *)(param_1 + 0xff) = 0" (pointer_expression "*(undefined1 *)(param_1 + 0xff)" * (cast_expression "(undefined1 *)(param_1 + 0xff)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xff)" ( (binary_expression "param_1 + 0xff" identifier + number_literal) )))) = number_literal) ;) (expression_statement "(**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));" (call_expression "(**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118))" (parenthesized_expression "(**(code **)(param_1 + 0x110))" ( (pointer_expression "**(code **)(param_1 + 0x110)" * (pointer_expression "*(code **)(param_1 + 0x110)" * (cast_expression "(code **)(param_1 + 0x110)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x110)" ( (binary_expression "param_1 + 0x110" identifier + number_literal) ))))) )) (argument_list "(param_1,0xff,*(undefined8 *)(param_1 + 0x118))" ( identifier , number_literal , (pointer_expression "*(undefined8 *)(param_1 + 0x118)" * (cast_expression "(undefined8 *)(param_1 + 0x118)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x118)" ( (binary_expression "param_1 + 0x118" identifier + number_literal) )))) ))) ;) (expression_statement "*(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;" (assignment_expression "*(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1" (pointer_expression "*(long *)(param_1 + 0x140)" * (cast_expression "(long *)(param_1 + 0x140)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x140)" ( (binary_expression "param_1 + 0x140" identifier + number_literal) )))) = (binary_expression "*(long *)(param_1 + 0x140) + 1" (pointer_expression "*(long *)(param_1 + 0x140)" * (cast_expression "(long *)(param_1 + 0x140)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x140)" ( (binary_expression "param_1 + 0x140" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "lVar1 = 1;" (assignment_expression "lVar1 = 1" identifier = number_literal) ;) (expression_statement "lVar3 = 0;" (assignment_expression "lVar3 = 0" identifier = number_literal) ;) })) (expression_statement "*(long *)(param_1 + 0x100) = lVar1;" (assignment_expression "*(long *)(param_1 + 0x100) = lVar1" (pointer_expression "*(long *)(param_1 + 0x100)" * (cast_expression "(long *)(param_1 + 0x100)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x100)" ( (binary_expression "param_1 + 0x100" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 *)(param_1 + lVar3) = 0x26;" (assignment_expression "*(undefined1 *)(param_1 + lVar3) = 0x26" (pointer_expression "*(undefined1 *)(param_1 + lVar3)" * (cast_expression "(undefined1 *)(param_1 + lVar3)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + lVar3)" ( (binary_expression "param_1 + lVar3" identifier + identifier) )))) = number_literal) ;) (expression_statement "*(undefined1 *)(param_1 + 0x108) = 0x26;" (assignment_expression "*(undefined1 *)(param_1 + 0x108) = 0x26" (pointer_expression "*(undefined1 *)(param_1 + 0x108)" * (cast_expression "(undefined1 *)(param_1 + 0x108)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x108)" ( (binary_expression "param_1 + 0x108" identifier + number_literal) )))) = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0x24:\n    lVar3 = *(long *)(param_1 + 0x100);\nLAB_002e5867:\n    puVar4 = &DAT_003a6db5;\n    uVar5 = 0x26;\n    while( true ) {\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      puVar4 = puVar4 + 1;\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(undefined1 *)(param_1 + lVar3) = uVar5;\n      *(undefined1 *)(param_1 + 0x108) = uVar5;\n      if (puVar4 == &DAT_003a6db7) break;\n      uVar5 = *puVar4;\n      lVar3 = lVar1;\n    }\n    break;" case number_literal : (expression_statement "lVar3 = *(long *)(param_1 + 0x100);" (assignment_expression "lVar3 = *(long *)(param_1 + 0x100)" identifier = (pointer_expression "*(long *)(param_1 + 0x100)" * (cast_expression "(long *)(param_1 + 0x100)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x100)" ( (binary_expression "param_1 + 0x100" identifier + number_literal) ))))) ;) (labeled_statement "LAB_002e5867:\n    puVar4 = &DAT_003a6db5;" statement_identifier : (expression_statement "puVar4 = &DAT_003a6db5;" (assignment_expression "puVar4 = &DAT_003a6db5" identifier = (pointer_expression "&DAT_003a6db5" & identifier)) ;)) (expression_statement "uVar5 = 0x26;" (assignment_expression "uVar5 = 0x26" identifier = number_literal) ;) (while_statement "while( true ) {\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      puVar4 = puVar4 + 1;\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(undefined1 *)(param_1 + lVar3) = uVar5;\n      *(undefined1 *)(param_1 + 0x108) = uVar5;\n      if (puVar4 == &DAT_003a6db7) break;\n      uVar5 = *puVar4;\n      lVar3 = lVar1;\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      puVar4 = puVar4 + 1;\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(undefined1 *)(param_1 + lVar3) = uVar5;\n      *(undefined1 *)(param_1 + 0x108) = uVar5;\n      if (puVar4 == &DAT_003a6db7) break;\n      uVar5 = *puVar4;\n      lVar3 = lVar1;\n    }" { (if_statement "if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }" if (parenthesized_expression "(lVar3 == 0xff)" ( (binary_expression "lVar3 == 0xff" identifier == number_literal) )) (compound_statement "{\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }" { (expression_statement "*(undefined1 *)(param_1 + 0xff) = 0;" (assignment_expression "*(undefined1 *)(param_1 + 0xff) = 0" (pointer_expression "*(undefined1 *)(param_1 + 0xff)" * (cast_expression "(undefined1 *)(param_1 + 0xff)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xff)" ( (binary_expression "param_1 + 0xff" identifier + number_literal) )))) = number_literal) ;) (expression_statement "(**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));" (call_expression "(**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118))" (parenthesized_expression "(**(code **)(param_1 + 0x110))" ( (pointer_expression "**(code **)(param_1 + 0x110)" * (pointer_expression "*(code **)(param_1 + 0x110)" * (cast_expression "(code **)(param_1 + 0x110)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x110)" ( (binary_expression "param_1 + 0x110" identifier + number_literal) ))))) )) (argument_list "(param_1,0xff,*(undefined8 *)(param_1 + 0x118))" ( identifier , number_literal , (pointer_expression "*(undefined8 *)(param_1 + 0x118)" * (cast_expression "(undefined8 *)(param_1 + 0x118)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x118)" ( (binary_expression "param_1 + 0x118" identifier + number_literal) )))) ))) ;) (expression_statement "*(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;" (assignment_expression "*(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1" (pointer_expression "*(long *)(param_1 + 0x140)" * (cast_expression "(long *)(param_1 + 0x140)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x140)" ( (binary_expression "param_1 + 0x140" identifier + number_literal) )))) = (binary_expression "*(long *)(param_1 + 0x140) + 1" (pointer_expression "*(long *)(param_1 + 0x140)" * (cast_expression "(long *)(param_1 + 0x140)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x140)" ( (binary_expression "param_1 + 0x140" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "lVar1 = 1;" (assignment_expression "lVar1 = 1" identifier = number_literal) ;) (expression_statement "lVar3 = 0;" (assignment_expression "lVar3 = 0" identifier = number_literal) ;) }) (else_clause "else {\n        lVar1 = lVar3 + 1;\n      }" else (compound_statement "{\n        lVar1 = lVar3 + 1;\n      }" { (expression_statement "lVar1 = lVar3 + 1;" (assignment_expression "lVar1 = lVar3 + 1" identifier = (binary_expression "lVar3 + 1" identifier + number_literal)) ;) }))) (expression_statement "puVar4 = puVar4 + 1;" (assignment_expression "puVar4 = puVar4 + 1" identifier = (binary_expression "puVar4 + 1" identifier + number_literal)) ;) (expression_statement "*(long *)(param_1 + 0x100) = lVar1;" (assignment_expression "*(long *)(param_1 + 0x100) = lVar1" (pointer_expression "*(long *)(param_1 + 0x100)" * (cast_expression "(long *)(param_1 + 0x100)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x100)" ( (binary_expression "param_1 + 0x100" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 *)(param_1 + lVar3) = uVar5;" (assignment_expression "*(undefined1 *)(param_1 + lVar3) = uVar5" (pointer_expression "*(undefined1 *)(param_1 + lVar3)" * (cast_expression "(undefined1 *)(param_1 + lVar3)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + lVar3)" ( (binary_expression "param_1 + lVar3" identifier + identifier) )))) = identifier) ;) (expression_statement "*(undefined1 *)(param_1 + 0x108) = uVar5;" (assignment_expression "*(undefined1 *)(param_1 + 0x108) = uVar5" (pointer_expression "*(undefined1 *)(param_1 + 0x108)" * (cast_expression "(undefined1 *)(param_1 + 0x108)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x108)" ( (binary_expression "param_1 + 0x108" identifier + number_literal) )))) = identifier) ;) (if_statement "if (puVar4 == &DAT_003a6db7) break;" if (parenthesized_expression "(puVar4 == &DAT_003a6db7)" ( (binary_expression "puVar4 == &DAT_003a6db7" identifier == (pointer_expression "&DAT_003a6db7" & identifier)) )) (break_statement "break;" break ;)) (expression_statement "uVar5 = *puVar4;" (assignment_expression "uVar5 = *puVar4" identifier = (pointer_expression "*puVar4" * identifier)) ;) (expression_statement "lVar3 = lVar1;" (assignment_expression "lVar3 = lVar1" identifier = identifier) ;) })) (break_statement "break;" break ;)) (case_statement "case 0x25:\n    pcVar7 = "complex ";\n    cVar8 = 'c';\n    lVar3 = *(long *)(param_1 + 0x100);\n    while( true ) {\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      pcVar7 = pcVar7 + 1;\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }\n    break;" case number_literal : (expression_statement "pcVar7 = "complex ";" (assignment_expression "pcVar7 = "complex "" identifier = (string_literal ""complex "" " string_content ")) ;) (expression_statement "cVar8 = 'c';" (assignment_expression "cVar8 = 'c'" identifier = (char_literal "'c'" ' character ')) ;) (expression_statement "lVar3 = *(long *)(param_1 + 0x100);" (assignment_expression "lVar3 = *(long *)(param_1 + 0x100)" identifier = (pointer_expression "*(long *)(param_1 + 0x100)" * (cast_expression "(long *)(param_1 + 0x100)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x100)" ( (binary_expression "param_1 + 0x100" identifier + number_literal) ))))) ;) (while_statement "while( true ) {\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      pcVar7 = pcVar7 + 1;\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      pcVar7 = pcVar7 + 1;\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }" { (if_statement "if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }" if (parenthesized_expression "(lVar3 == 0xff)" ( (binary_expression "lVar3 == 0xff" identifier == number_literal) )) (compound_statement "{\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }" { (expression_statement "*(undefined1 *)(param_1 + 0xff) = 0;" (assignment_expression "*(undefined1 *)(param_1 + 0xff) = 0" (pointer_expression "*(undefined1 *)(param_1 + 0xff)" * (cast_expression "(undefined1 *)(param_1 + 0xff)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xff)" ( (binary_expression "param_1 + 0xff" identifier + number_literal) )))) = number_literal) ;) (expression_statement "(**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));" (call_expression "(**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118))" (parenthesized_expression "(**(code **)(param_1 + 0x110))" ( (pointer_expression "**(code **)(param_1 + 0x110)" * (pointer_expression "*(code **)(param_1 + 0x110)" * (cast_expression "(code **)(param_1 + 0x110)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x110)" ( (binary_expression "param_1 + 0x110" identifier + number_literal) ))))) )) (argument_list "(param_1,0xff,*(undefined8 *)(param_1 + 0x118))" ( identifier , number_literal , (pointer_expression "*(undefined8 *)(param_1 + 0x118)" * (cast_expression "(undefined8 *)(param_1 + 0x118)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x118)" ( (binary_expression "param_1 + 0x118" identifier + number_literal) )))) ))) ;) (expression_statement "*(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;" (assignment_expression "*(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1" (pointer_expression "*(long *)(param_1 + 0x140)" * (cast_expression "(long *)(param_1 + 0x140)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x140)" ( (binary_expression "param_1 + 0x140" identifier + number_literal) )))) = (binary_expression "*(long *)(param_1 + 0x140) + 1" (pointer_expression "*(long *)(param_1 + 0x140)" * (cast_expression "(long *)(param_1 + 0x140)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x140)" ( (binary_expression "param_1 + 0x140" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "lVar1 = 1;" (assignment_expression "lVar1 = 1" identifier = number_literal) ;) (expression_statement "lVar3 = 0;" (assignment_expression "lVar3 = 0" identifier = number_literal) ;) }) (else_clause "else {\n        lVar1 = lVar3 + 1;\n      }" else (compound_statement "{\n        lVar1 = lVar3 + 1;\n      }" { (expression_statement "lVar1 = lVar3 + 1;" (assignment_expression "lVar1 = lVar3 + 1" identifier = (binary_expression "lVar3 + 1" identifier + number_literal)) ;) }))) (expression_statement "pcVar7 = pcVar7 + 1;" (assignment_expression "pcVar7 = pcVar7 + 1" identifier = (binary_expression "pcVar7 + 1" identifier + number_literal)) ;) (expression_statement "*(long *)(param_1 + 0x100) = lVar1;" (assignment_expression "*(long *)(param_1 + 0x100) = lVar1" (pointer_expression "*(long *)(param_1 + 0x100)" * (cast_expression "(long *)(param_1 + 0x100)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x100)" ( (binary_expression "param_1 + 0x100" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(char *)(param_1 + lVar3) = cVar8;" (assignment_expression "*(char *)(param_1 + lVar3) = cVar8" (pointer_expression "*(char *)(param_1 + lVar3)" * (cast_expression "(char *)(param_1 + lVar3)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + lVar3)" ( (binary_expression "param_1 + lVar3" identifier + identifier) )))) = identifier) ;) (expression_statement "*(char *)(param_1 + 0x108) = cVar8;" (assignment_expression "*(char *)(param_1 + 0x108) = cVar8" (pointer_expression "*(char *)(param_1 + 0x108)" * (cast_expression "(char *)(param_1 + 0x108)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x108)" ( (binary_expression "param_1 + 0x108" identifier + number_literal) )))) = identifier) ;) (if_statement "if (pcVar7 == "") break;" if (parenthesized_expression "(pcVar7 == "")" ( (binary_expression "pcVar7 == """ identifier == (string_literal """" " ")) )) (break_statement "break;" break ;)) (expression_statement "cVar8 = *pcVar7;" (assignment_expression "cVar8 = *pcVar7" identifier = (pointer_expression "*pcVar7" * identifier)) ;) (expression_statement "lVar3 = lVar1;" (assignment_expression "lVar3 = lVar1" identifier = identifier) ;) })) (break_statement "break;" break ;)) (case_statement "case 0x26:\n    pcVar7 = "imaginary ";\n    cVar8 = 'i';\n    lVar3 = *(long *)(param_1 + 0x100);\n    while( true ) {\n      pcVar7 = pcVar7 + 1;\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }\n    break;" case number_literal : (expression_statement "pcVar7 = "imaginary ";" (assignment_expression "pcVar7 = "imaginary "" identifier = (string_literal ""imaginary "" " string_content ")) ;) (expression_statement "cVar8 = 'i';" (assignment_expression "cVar8 = 'i'" identifier = (char_literal "'i'" ' character ')) ;) (expression_statement "lVar3 = *(long *)(param_1 + 0x100);" (assignment_expression "lVar3 = *(long *)(param_1 + 0x100)" identifier = (pointer_expression "*(long *)(param_1 + 0x100)" * (cast_expression "(long *)(param_1 + 0x100)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x100)" ( (binary_expression "param_1 + 0x100" identifier + number_literal) ))))) ;) (while_statement "while( true ) {\n      pcVar7 = pcVar7 + 1;\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      pcVar7 = pcVar7 + 1;\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }" { (expression_statement "pcVar7 = pcVar7 + 1;" (assignment_expression "pcVar7 = pcVar7 + 1" identifier = (binary_expression "pcVar7 + 1" identifier + number_literal)) ;) (if_statement "if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }" if (parenthesized_expression "(lVar3 == 0xff)" ( (binary_expression "lVar3 == 0xff" identifier == number_literal) )) (compound_statement "{\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }" { (expression_statement "*(undefined1 *)(param_1 + 0xff) = 0;" (assignment_expression "*(undefined1 *)(param_1 + 0xff) = 0" (pointer_expression "*(undefined1 *)(param_1 + 0xff)" * (cast_expression "(undefined1 *)(param_1 + 0xff)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xff)" ( (binary_expression "param_1 + 0xff" identifier + number_literal) )))) = number_literal) ;) (expression_statement "(**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));" (call_expression "(**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118))" (parenthesized_expression "(**(code **)(param_1 + 0x110))" ( (pointer_expression "**(code **)(param_1 + 0x110)" * (pointer_expression "*(code **)(param_1 + 0x110)" * (cast_expression "(code **)(param_1 + 0x110)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x110)" ( (binary_expression "param_1 + 0x110" identifier + number_literal) ))))) )) (argument_list "(param_1,0xff,*(undefined8 *)(param_1 + 0x118))" ( identifier , number_literal , (pointer_expression "*(undefined8 *)(param_1 + 0x118)" * (cast_expression "(undefined8 *)(param_1 + 0x118)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x118)" ( (binary_expression "param_1 + 0x118" identifier + number_literal) )))) ))) ;) (expression_statement "*(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;" (assignment_expression "*(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1" (pointer_expression "*(long *)(param_1 + 0x140)" * (cast_expression "(long *)(param_1 + 0x140)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x140)" ( (binary_expression "param_1 + 0x140" identifier + number_literal) )))) = (binary_expression "*(long *)(param_1 + 0x140) + 1" (pointer_expression "*(long *)(param_1 + 0x140)" * (cast_expression "(long *)(param_1 + 0x140)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x140)" ( (binary_expression "param_1 + 0x140" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "lVar1 = 1;" (assignment_expression "lVar1 = 1" identifier = number_literal) ;) (expression_statement "lVar3 = 0;" (assignment_expression "lVar3 = 0" identifier = number_literal) ;) }) (else_clause "else {\n        lVar1 = lVar3 + 1;\n      }" else (compound_statement "{\n        lVar1 = lVar3 + 1;\n      }" { (expression_statement "lVar1 = lVar3 + 1;" (assignment_expression "lVar1 = lVar3 + 1" identifier = (binary_expression "lVar3 + 1" identifier + number_literal)) ;) }))) (expression_statement "*(long *)(param_1 + 0x100) = lVar1;" (assignment_expression "*(long *)(param_1 + 0x100) = lVar1" (pointer_expression "*(long *)(param_1 + 0x100)" * (cast_expression "(long *)(param_1 + 0x100)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x100)" ( (binary_expression "param_1 + 0x100" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(char *)(param_1 + lVar3) = cVar8;" (assignment_expression "*(char *)(param_1 + lVar3) = cVar8" (pointer_expression "*(char *)(param_1 + lVar3)" * (cast_expression "(char *)(param_1 + lVar3)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + lVar3)" ( (binary_expression "param_1 + lVar3" identifier + identifier) )))) = identifier) ;) (expression_statement "*(char *)(param_1 + 0x108) = cVar8;" (assignment_expression "*(char *)(param_1 + 0x108) = cVar8" (pointer_expression "*(char *)(param_1 + 0x108)" * (cast_expression "(char *)(param_1 + 0x108)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x108)" ( (binary_expression "param_1 + 0x108" identifier + number_literal) )))) = identifier) ;) (if_statement "if (pcVar7 == "") break;" if (parenthesized_expression "(pcVar7 == "")" ( (binary_expression "pcVar7 == """ identifier == (string_literal """" " ")) )) (break_statement "break;" break ;)) (expression_statement "cVar8 = *pcVar7;" (assignment_expression "cVar8 = *pcVar7" identifier = (pointer_expression "*pcVar7" * identifier)) ;) (expression_statement "lVar3 = lVar1;" (assignment_expression "lVar3 = lVar1" identifier = identifier) ;) })) (break_statement "break;" break ;)) (case_statement "case 0x2b:\n    if (*(char *)(param_1 + 0x108) != '(') {\n      lVar1 = *(long *)(param_1 + 0x100);\n      lVar3 = lVar1 + 1;\n      if (lVar1 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar3 = 1;\n        lVar1 = 0;\n      }\n      *(long *)(param_1 + 0x100) = lVar3;\n      *(undefined1 *)(param_1 + lVar1) = 0x20;\n      *(undefined1 *)(param_1 + 0x108) = 0x20;\n    }\n    puVar4 = &DAT_003a9d5a;\n    uVar5 = 0x3a;\n    FUN_002e5210(param_1,uVar6,*(undefined8 *)(param_3 + 2));\n    lVar3 = *(long *)(param_1 + 0x100);\n    while( true ) {\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      puVar4 = puVar4 + 1;\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(undefined1 *)(param_1 + lVar3) = uVar5;\n      *(undefined1 *)(param_1 + 0x108) = uVar5;\n      if (puVar4 == &DAT_003a9d5d) break;\n      uVar5 = *puVar4;\n      lVar3 = lVar1;\n    }\n    break;" case number_literal : (if_statement "if (*(char *)(param_1 + 0x108) != '(') {\n      lVar1 = *(long *)(param_1 + 0x100);\n      lVar3 = lVar1 + 1;\n      if (lVar1 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar3 = 1;\n        lVar1 = 0;\n      }\n      *(long *)(param_1 + 0x100) = lVar3;\n      *(undefined1 *)(param_1 + lVar1) = 0x20;\n      *(undefined1 *)(param_1 + 0x108) = 0x20;\n    }" if (parenthesized_expression "(*(char *)(param_1 + 0x108) != '(')" ( (binary_expression "*(char *)(param_1 + 0x108) != '('" (pointer_expression "*(char *)(param_1 + 0x108)" * (cast_expression "(char *)(param_1 + 0x108)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x108)" ( (binary_expression "param_1 + 0x108" identifier + number_literal) )))) != (char_literal "'('" ' character ')) )) (compound_statement "{\n      lVar1 = *(long *)(param_1 + 0x100);\n      lVar3 = lVar1 + 1;\n      if (lVar1 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar3 = 1;\n        lVar1 = 0;\n      }\n      *(long *)(param_1 + 0x100) = lVar3;\n      *(undefined1 *)(param_1 + lVar1) = 0x20;\n      *(undefined1 *)(param_1 + 0x108) = 0x20;\n    }" { (expression_statement "lVar1 = *(long *)(param_1 + 0x100);" (assignment_expression "lVar1 = *(long *)(param_1 + 0x100)" identifier = (pointer_expression "*(long *)(param_1 + 0x100)" * (cast_expression "(long *)(param_1 + 0x100)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x100)" ( (binary_expression "param_1 + 0x100" identifier + number_literal) ))))) ;) (expression_statement "lVar3 = lVar1 + 1;" (assignment_expression "lVar3 = lVar1 + 1" identifier = (binary_expression "lVar1 + 1" identifier + number_literal)) ;) (if_statement "if (lVar1 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar3 = 1;\n        lVar1 = 0;\n      }" if (parenthesized_expression "(lVar1 == 0xff)" ( (binary_expression "lVar1 == 0xff" identifier == number_literal) )) (compound_statement "{\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar3 = 1;\n        lVar1 = 0;\n      }" { (expression_statement "*(undefined1 *)(param_1 + 0xff) = 0;" (assignment_expression "*(undefined1 *)(param_1 + 0xff) = 0" (pointer_expression "*(undefined1 *)(param_1 + 0xff)" * (cast_expression "(undefined1 *)(param_1 + 0xff)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xff)" ( (binary_expression "param_1 + 0xff" identifier + number_literal) )))) = number_literal) ;) (expression_statement "(**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));" (call_expression "(**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118))" (parenthesized_expression "(**(code **)(param_1 + 0x110))" ( (pointer_expression "**(code **)(param_1 + 0x110)" * (pointer_expression "*(code **)(param_1 + 0x110)" * (cast_expression "(code **)(param_1 + 0x110)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x110)" ( (binary_expression "param_1 + 0x110" identifier + number_literal) ))))) )) (argument_list "(param_1,0xff,*(undefined8 *)(param_1 + 0x118))" ( identifier , number_literal , (pointer_expression "*(undefined8 *)(param_1 + 0x118)" * (cast_expression "(undefined8 *)(param_1 + 0x118)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x118)" ( (binary_expression "param_1 + 0x118" identifier + number_literal) )))) ))) ;) (expression_statement "*(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;" (assignment_expression "*(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1" (pointer_expression "*(long *)(param_1 + 0x140)" * (cast_expression "(long *)(param_1 + 0x140)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x140)" ( (binary_expression "param_1 + 0x140" identifier + number_literal) )))) = (binary_expression "*(long *)(param_1 + 0x140) + 1" (pointer_expression "*(long *)(param_1 + 0x140)" * (cast_expression "(long *)(param_1 + 0x140)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x140)" ( (binary_expression "param_1 + 0x140" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "lVar3 = 1;" (assignment_expression "lVar3 = 1" identifier = number_literal) ;) (expression_statement "lVar1 = 0;" (assignment_expression "lVar1 = 0" identifier = number_literal) ;) })) (expression_statement "*(long *)(param_1 + 0x100) = lVar3;" (assignment_expression "*(long *)(param_1 + 0x100) = lVar3" (pointer_expression "*(long *)(param_1 + 0x100)" * (cast_expression "(long *)(param_1 + 0x100)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x100)" ( (binary_expression "param_1 + 0x100" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 *)(param_1 + lVar1) = 0x20;" (assignment_expression "*(undefined1 *)(param_1 + lVar1) = 0x20" (pointer_expression "*(undefined1 *)(param_1 + lVar1)" * (cast_expression "(undefined1 *)(param_1 + lVar1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + lVar1)" ( (binary_expression "param_1 + lVar1" identifier + identifier) )))) = number_literal) ;) (expression_statement "*(undefined1 *)(param_1 + 0x108) = 0x20;" (assignment_expression "*(undefined1 *)(param_1 + 0x108) = 0x20" (pointer_expression "*(undefined1 *)(param_1 + 0x108)" * (cast_expression "(undefined1 *)(param_1 + 0x108)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x108)" ( (binary_expression "param_1 + 0x108" identifier + number_literal) )))) = number_literal) ;) })) (expression_statement "puVar4 = &DAT_003a9d5a;" (assignment_expression "puVar4 = &DAT_003a9d5a" identifier = (pointer_expression "&DAT_003a9d5a" & identifier)) ;) (expression_statement "uVar5 = 0x3a;" (assignment_expression "uVar5 = 0x3a" identifier = number_literal) ;) (expression_statement "FUN_002e5210(param_1,uVar6,*(undefined8 *)(param_3 + 2));" (call_expression "FUN_002e5210(param_1,uVar6,*(undefined8 *)(param_3 + 2))" identifier (argument_list "(param_1,uVar6,*(undefined8 *)(param_3 + 2))" ( identifier , identifier , (pointer_expression "*(undefined8 *)(param_3 + 2)" * (cast_expression "(undefined8 *)(param_3 + 2)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 2)" ( (binary_expression "param_3 + 2" identifier + number_literal) )))) ))) ;) (expression_statement "lVar3 = *(long *)(param_1 + 0x100);" (assignment_expression "lVar3 = *(long *)(param_1 + 0x100)" identifier = (pointer_expression "*(long *)(param_1 + 0x100)" * (cast_expression "(long *)(param_1 + 0x100)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x100)" ( (binary_expression "param_1 + 0x100" identifier + number_literal) ))))) ;) (while_statement "while( true ) {\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      puVar4 = puVar4 + 1;\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(undefined1 *)(param_1 + lVar3) = uVar5;\n      *(undefined1 *)(param_1 + 0x108) = uVar5;\n      if (puVar4 == &DAT_003a9d5d) break;\n      uVar5 = *puVar4;\n      lVar3 = lVar1;\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      puVar4 = puVar4 + 1;\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(undefined1 *)(param_1 + lVar3) = uVar5;\n      *(undefined1 *)(param_1 + 0x108) = uVar5;\n      if (puVar4 == &DAT_003a9d5d) break;\n      uVar5 = *puVar4;\n      lVar3 = lVar1;\n    }" { (if_statement "if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }" if (parenthesized_expression "(lVar3 == 0xff)" ( (binary_expression "lVar3 == 0xff" identifier == number_literal) )) (compound_statement "{\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }" { (expression_statement "*(undefined1 *)(param_1 + 0xff) = 0;" (assignment_expression "*(undefined1 *)(param_1 + 0xff) = 0" (pointer_expression "*(undefined1 *)(param_1 + 0xff)" * (cast_expression "(undefined1 *)(param_1 + 0xff)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xff)" ( (binary_expression "param_1 + 0xff" identifier + number_literal) )))) = number_literal) ;) (expression_statement "(**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));" (call_expression "(**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118))" (parenthesized_expression "(**(code **)(param_1 + 0x110))" ( (pointer_expression "**(code **)(param_1 + 0x110)" * (pointer_expression "*(code **)(param_1 + 0x110)" * (cast_expression "(code **)(param_1 + 0x110)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x110)" ( (binary_expression "param_1 + 0x110" identifier + number_literal) ))))) )) (argument_list "(param_1,0xff,*(undefined8 *)(param_1 + 0x118))" ( identifier , number_literal , (pointer_expression "*(undefined8 *)(param_1 + 0x118)" * (cast_expression "(undefined8 *)(param_1 + 0x118)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x118)" ( (binary_expression "param_1 + 0x118" identifier + number_literal) )))) ))) ;) (expression_statement "*(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;" (assignment_expression "*(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1" (pointer_expression "*(long *)(param_1 + 0x140)" * (cast_expression "(long *)(param_1 + 0x140)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x140)" ( (binary_expression "param_1 + 0x140" identifier + number_literal) )))) = (binary_expression "*(long *)(param_1 + 0x140) + 1" (pointer_expression "*(long *)(param_1 + 0x140)" * (cast_expression "(long *)(param_1 + 0x140)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x140)" ( (binary_expression "param_1 + 0x140" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "lVar1 = 1;" (assignment_expression "lVar1 = 1" identifier = number_literal) ;) (expression_statement "lVar3 = 0;" (assignment_expression "lVar3 = 0" identifier = number_literal) ;) }) (else_clause "else {\n        lVar1 = lVar3 + 1;\n      }" else (compound_statement "{\n        lVar1 = lVar3 + 1;\n      }" { (expression_statement "lVar1 = lVar3 + 1;" (assignment_expression "lVar1 = lVar3 + 1" identifier = (binary_expression "lVar3 + 1" identifier + number_literal)) ;) }))) (expression_statement "puVar4 = puVar4 + 1;" (assignment_expression "puVar4 = puVar4 + 1" identifier = (binary_expression "puVar4 + 1" identifier + number_literal)) ;) (expression_statement "*(long *)(param_1 + 0x100) = lVar1;" (assignment_expression "*(long *)(param_1 + 0x100) = lVar1" (pointer_expression "*(long *)(param_1 + 0x100)" * (cast_expression "(long *)(param_1 + 0x100)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x100)" ( (binary_expression "param_1 + 0x100" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 *)(param_1 + lVar3) = uVar5;" (assignment_expression "*(undefined1 *)(param_1 + lVar3) = uVar5" (pointer_expression "*(undefined1 *)(param_1 + lVar3)" * (cast_expression "(undefined1 *)(param_1 + lVar3)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + lVar3)" ( (binary_expression "param_1 + lVar3" identifier + identifier) )))) = identifier) ;) (expression_statement "*(undefined1 *)(param_1 + 0x108) = uVar5;" (assignment_expression "*(undefined1 *)(param_1 + 0x108) = uVar5" (pointer_expression "*(undefined1 *)(param_1 + 0x108)" * (cast_expression "(undefined1 *)(param_1 + 0x108)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x108)" ( (binary_expression "param_1 + 0x108" identifier + number_literal) )))) = identifier) ;) (if_statement "if (puVar4 == &DAT_003a9d5d) break;" if (parenthesized_expression "(puVar4 == &DAT_003a9d5d)" ( (binary_expression "puVar4 == &DAT_003a9d5d" identifier == (pointer_expression "&DAT_003a9d5d" & identifier)) )) (break_statement "break;" break ;)) (expression_statement "uVar5 = *puVar4;" (assignment_expression "uVar5 = *puVar4" identifier = (pointer_expression "*puVar4" * identifier)) ;) (expression_statement "lVar3 = lVar1;" (assignment_expression "lVar3 = lVar1" identifier = identifier) ;) })) (break_statement "break;" break ;)) (case_statement "case 0x2d:\n    pcVar7 = " __vector(";\n    cVar8 = ' ';\n    lVar3 = *(long *)(param_1 + 0x100);\n    while( true ) {\n      pcVar7 = pcVar7 + 1;\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }\n    lVar3 = *(long *)(param_3 + 2);\n    goto LAB_002e5aba;" case number_literal : (expression_statement "pcVar7 = " __vector(";" (assignment_expression "pcVar7 = " __vector("" identifier = (string_literal "" __vector("" " string_content ")) ;) (expression_statement "cVar8 = ' ';" (assignment_expression "cVar8 = ' '" identifier = (char_literal "' '" ' character ')) ;) (expression_statement "lVar3 = *(long *)(param_1 + 0x100);" (assignment_expression "lVar3 = *(long *)(param_1 + 0x100)" identifier = (pointer_expression "*(long *)(param_1 + 0x100)" * (cast_expression "(long *)(param_1 + 0x100)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x100)" ( (binary_expression "param_1 + 0x100" identifier + number_literal) ))))) ;) (while_statement "while( true ) {\n      pcVar7 = pcVar7 + 1;\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      pcVar7 = pcVar7 + 1;\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }" { (expression_statement "pcVar7 = pcVar7 + 1;" (assignment_expression "pcVar7 = pcVar7 + 1" identifier = (binary_expression "pcVar7 + 1" identifier + number_literal)) ;) (if_statement "if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }" if (parenthesized_expression "(lVar3 == 0xff)" ( (binary_expression "lVar3 == 0xff" identifier == number_literal) )) (compound_statement "{\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }" { (expression_statement "*(undefined1 *)(param_1 + 0xff) = 0;" (assignment_expression "*(undefined1 *)(param_1 + 0xff) = 0" (pointer_expression "*(undefined1 *)(param_1 + 0xff)" * (cast_expression "(undefined1 *)(param_1 + 0xff)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xff)" ( (binary_expression "param_1 + 0xff" identifier + number_literal) )))) = number_literal) ;) (expression_statement "(**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));" (call_expression "(**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118))" (parenthesized_expression "(**(code **)(param_1 + 0x110))" ( (pointer_expression "**(code **)(param_1 + 0x110)" * (pointer_expression "*(code **)(param_1 + 0x110)" * (cast_expression "(code **)(param_1 + 0x110)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x110)" ( (binary_expression "param_1 + 0x110" identifier + number_literal) ))))) )) (argument_list "(param_1,0xff,*(undefined8 *)(param_1 + 0x118))" ( identifier , number_literal , (pointer_expression "*(undefined8 *)(param_1 + 0x118)" * (cast_expression "(undefined8 *)(param_1 + 0x118)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x118)" ( (binary_expression "param_1 + 0x118" identifier + number_literal) )))) ))) ;) (expression_statement "*(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;" (assignment_expression "*(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1" (pointer_expression "*(long *)(param_1 + 0x140)" * (cast_expression "(long *)(param_1 + 0x140)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x140)" ( (binary_expression "param_1 + 0x140" identifier + number_literal) )))) = (binary_expression "*(long *)(param_1 + 0x140) + 1" (pointer_expression "*(long *)(param_1 + 0x140)" * (cast_expression "(long *)(param_1 + 0x140)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x140)" ( (binary_expression "param_1 + 0x140" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "lVar1 = 1;" (assignment_expression "lVar1 = 1" identifier = number_literal) ;) (expression_statement "lVar3 = 0;" (assignment_expression "lVar3 = 0" identifier = number_literal) ;) }) (else_clause "else {\n        lVar1 = lVar3 + 1;\n      }" else (compound_statement "{\n        lVar1 = lVar3 + 1;\n      }" { (expression_statement "lVar1 = lVar3 + 1;" (assignment_expression "lVar1 = lVar3 + 1" identifier = (binary_expression "lVar3 + 1" identifier + number_literal)) ;) }))) (expression_statement "*(long *)(param_1 + 0x100) = lVar1;" (assignment_expression "*(long *)(param_1 + 0x100) = lVar1" (pointer_expression "*(long *)(param_1 + 0x100)" * (cast_expression "(long *)(param_1 + 0x100)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x100)" ( (binary_expression "param_1 + 0x100" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(char *)(param_1 + lVar3) = cVar8;" (assignment_expression "*(char *)(param_1 + lVar3) = cVar8" (pointer_expression "*(char *)(param_1 + lVar3)" * (cast_expression "(char *)(param_1 + lVar3)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + lVar3)" ( (binary_expression "param_1 + lVar3" identifier + identifier) )))) = identifier) ;) (expression_statement "*(char *)(param_1 + 0x108) = cVar8;" (assignment_expression "*(char *)(param_1 + 0x108) = cVar8" (pointer_expression "*(char *)(param_1 + 0x108)" * (cast_expression "(char *)(param_1 + 0x108)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x108)" ( (binary_expression "param_1 + 0x108" identifier + number_literal) )))) = identifier) ;) (if_statement "if (pcVar7 == "") break;" if (parenthesized_expression "(pcVar7 == "")" ( (binary_expression "pcVar7 == """ identifier == (string_literal """" " ")) )) (break_statement "break;" break ;)) (expression_statement "cVar8 = *pcVar7;" (assignment_expression "cVar8 = *pcVar7" identifier = (pointer_expression "*pcVar7" * identifier)) ;) (expression_statement "lVar3 = lVar1;" (assignment_expression "lVar3 = lVar1" identifier = identifier) ;) })) (expression_statement "lVar3 = *(long *)(param_3 + 2);" (assignment_expression "lVar3 = *(long *)(param_3 + 2)" identifier = (pointer_expression "*(long *)(param_3 + 2)" * (cast_expression "(long *)(param_3 + 2)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 2)" ( (binary_expression "param_3 + 2" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_002e5aba;" goto statement_identifier ;)) (case_statement "case 0x4c:\n    pcVar7 = " transaction_safe";\n    cVar8 = ' ';\n    lVar3 = *(long *)(param_1 + 0x100);\n    while( true ) {\n      pcVar7 = pcVar7 + 1;\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }\n    break;" case number_literal : (expression_statement "pcVar7 = " transaction_safe";" (assignment_expression "pcVar7 = " transaction_safe"" identifier = (string_literal "" transaction_safe"" " string_content ")) ;) (expression_statement "cVar8 = ' ';" (assignment_expression "cVar8 = ' '" identifier = (char_literal "' '" ' character ')) ;) (expression_statement "lVar3 = *(long *)(param_1 + 0x100);" (assignment_expression "lVar3 = *(long *)(param_1 + 0x100)" identifier = (pointer_expression "*(long *)(param_1 + 0x100)" * (cast_expression "(long *)(param_1 + 0x100)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x100)" ( (binary_expression "param_1 + 0x100" identifier + number_literal) ))))) ;) (while_statement "while( true ) {\n      pcVar7 = pcVar7 + 1;\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      pcVar7 = pcVar7 + 1;\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }" { (expression_statement "pcVar7 = pcVar7 + 1;" (assignment_expression "pcVar7 = pcVar7 + 1" identifier = (binary_expression "pcVar7 + 1" identifier + number_literal)) ;) (if_statement "if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }" if (parenthesized_expression "(lVar3 == 0xff)" ( (binary_expression "lVar3 == 0xff" identifier == number_literal) )) (compound_statement "{\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }" { (expression_statement "*(undefined1 *)(param_1 + 0xff) = 0;" (assignment_expression "*(undefined1 *)(param_1 + 0xff) = 0" (pointer_expression "*(undefined1 *)(param_1 + 0xff)" * (cast_expression "(undefined1 *)(param_1 + 0xff)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xff)" ( (binary_expression "param_1 + 0xff" identifier + number_literal) )))) = number_literal) ;) (expression_statement "(**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));" (call_expression "(**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118))" (parenthesized_expression "(**(code **)(param_1 + 0x110))" ( (pointer_expression "**(code **)(param_1 + 0x110)" * (pointer_expression "*(code **)(param_1 + 0x110)" * (cast_expression "(code **)(param_1 + 0x110)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x110)" ( (binary_expression "param_1 + 0x110" identifier + number_literal) ))))) )) (argument_list "(param_1,0xff,*(undefined8 *)(param_1 + 0x118))" ( identifier , number_literal , (pointer_expression "*(undefined8 *)(param_1 + 0x118)" * (cast_expression "(undefined8 *)(param_1 + 0x118)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x118)" ( (binary_expression "param_1 + 0x118" identifier + number_literal) )))) ))) ;) (expression_statement "*(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;" (assignment_expression "*(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1" (pointer_expression "*(long *)(param_1 + 0x140)" * (cast_expression "(long *)(param_1 + 0x140)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x140)" ( (binary_expression "param_1 + 0x140" identifier + number_literal) )))) = (binary_expression "*(long *)(param_1 + 0x140) + 1" (pointer_expression "*(long *)(param_1 + 0x140)" * (cast_expression "(long *)(param_1 + 0x140)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x140)" ( (binary_expression "param_1 + 0x140" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "lVar1 = 1;" (assignment_expression "lVar1 = 1" identifier = number_literal) ;) (expression_statement "lVar3 = 0;" (assignment_expression "lVar3 = 0" identifier = number_literal) ;) }) (else_clause "else {\n        lVar1 = lVar3 + 1;\n      }" else (compound_statement "{\n        lVar1 = lVar3 + 1;\n      }" { (expression_statement "lVar1 = lVar3 + 1;" (assignment_expression "lVar1 = lVar3 + 1" identifier = (binary_expression "lVar3 + 1" identifier + number_literal)) ;) }))) (expression_statement "*(long *)(param_1 + 0x100) = lVar1;" (assignment_expression "*(long *)(param_1 + 0x100) = lVar1" (pointer_expression "*(long *)(param_1 + 0x100)" * (cast_expression "(long *)(param_1 + 0x100)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x100)" ( (binary_expression "param_1 + 0x100" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(char *)(param_1 + lVar3) = cVar8;" (assignment_expression "*(char *)(param_1 + lVar3) = cVar8" (pointer_expression "*(char *)(param_1 + lVar3)" * (cast_expression "(char *)(param_1 + lVar3)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + lVar3)" ( (binary_expression "param_1 + lVar3" identifier + identifier) )))) = identifier) ;) (expression_statement "*(char *)(param_1 + 0x108) = cVar8;" (assignment_expression "*(char *)(param_1 + 0x108) = cVar8" (pointer_expression "*(char *)(param_1 + 0x108)" * (cast_expression "(char *)(param_1 + 0x108)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x108)" ( (binary_expression "param_1 + 0x108" identifier + number_literal) )))) = identifier) ;) (if_statement "if (pcVar7 == "") break;" if (parenthesized_expression "(pcVar7 == "")" ( (binary_expression "pcVar7 == """ identifier == (string_literal """" " ")) )) (break_statement "break;" break ;)) (expression_statement "cVar8 = *pcVar7;" (assignment_expression "cVar8 = *pcVar7" identifier = (pointer_expression "*pcVar7" * identifier)) ;) (expression_statement "lVar3 = lVar1;" (assignment_expression "lVar3 = lVar1" identifier = identifier) ;) })) (break_statement "break;" break ;)) (case_statement "case 0x4e:\n    pcVar7 = " noexcept";\n    cVar8 = ' ';\n    lVar3 = *(long *)(param_1 + 0x100);\n    while( true ) {\n      pcVar7 = pcVar7 + 1;\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }\n    goto LAB_002e5a60;" case number_literal : (expression_statement "pcVar7 = " noexcept";" (assignment_expression "pcVar7 = " noexcept"" identifier = (string_literal "" noexcept"" " string_content ")) ;) (expression_statement "cVar8 = ' ';" (assignment_expression "cVar8 = ' '" identifier = (char_literal "' '" ' character ')) ;) (expression_statement "lVar3 = *(long *)(param_1 + 0x100);" (assignment_expression "lVar3 = *(long *)(param_1 + 0x100)" identifier = (pointer_expression "*(long *)(param_1 + 0x100)" * (cast_expression "(long *)(param_1 + 0x100)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x100)" ( (binary_expression "param_1 + 0x100" identifier + number_literal) ))))) ;) (while_statement "while( true ) {\n      pcVar7 = pcVar7 + 1;\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      pcVar7 = pcVar7 + 1;\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }" { (expression_statement "pcVar7 = pcVar7 + 1;" (assignment_expression "pcVar7 = pcVar7 + 1" identifier = (binary_expression "pcVar7 + 1" identifier + number_literal)) ;) (if_statement "if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }" if (parenthesized_expression "(lVar3 == 0xff)" ( (binary_expression "lVar3 == 0xff" identifier == number_literal) )) (compound_statement "{\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }" { (expression_statement "*(undefined1 *)(param_1 + 0xff) = 0;" (assignment_expression "*(undefined1 *)(param_1 + 0xff) = 0" (pointer_expression "*(undefined1 *)(param_1 + 0xff)" * (cast_expression "(undefined1 *)(param_1 + 0xff)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xff)" ( (binary_expression "param_1 + 0xff" identifier + number_literal) )))) = number_literal) ;) (expression_statement "(**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));" (call_expression "(**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118))" (parenthesized_expression "(**(code **)(param_1 + 0x110))" ( (pointer_expression "**(code **)(param_1 + 0x110)" * (pointer_expression "*(code **)(param_1 + 0x110)" * (cast_expression "(code **)(param_1 + 0x110)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x110)" ( (binary_expression "param_1 + 0x110" identifier + number_literal) ))))) )) (argument_list "(param_1,0xff,*(undefined8 *)(param_1 + 0x118))" ( identifier , number_literal , (pointer_expression "*(undefined8 *)(param_1 + 0x118)" * (cast_expression "(undefined8 *)(param_1 + 0x118)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x118)" ( (binary_expression "param_1 + 0x118" identifier + number_literal) )))) ))) ;) (expression_statement "*(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;" (assignment_expression "*(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1" (pointer_expression "*(long *)(param_1 + 0x140)" * (cast_expression "(long *)(param_1 + 0x140)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x140)" ( (binary_expression "param_1 + 0x140" identifier + number_literal) )))) = (binary_expression "*(long *)(param_1 + 0x140) + 1" (pointer_expression "*(long *)(param_1 + 0x140)" * (cast_expression "(long *)(param_1 + 0x140)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x140)" ( (binary_expression "param_1 + 0x140" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "lVar1 = 1;" (assignment_expression "lVar1 = 1" identifier = number_literal) ;) (expression_statement "lVar3 = 0;" (assignment_expression "lVar3 = 0" identifier = number_literal) ;) }) (else_clause "else {\n        lVar1 = lVar3 + 1;\n      }" else (compound_statement "{\n        lVar1 = lVar3 + 1;\n      }" { (expression_statement "lVar1 = lVar3 + 1;" (assignment_expression "lVar1 = lVar3 + 1" identifier = (binary_expression "lVar3 + 1" identifier + number_literal)) ;) }))) (expression_statement "*(long *)(param_1 + 0x100) = lVar1;" (assignment_expression "*(long *)(param_1 + 0x100) = lVar1" (pointer_expression "*(long *)(param_1 + 0x100)" * (cast_expression "(long *)(param_1 + 0x100)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x100)" ( (binary_expression "param_1 + 0x100" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(char *)(param_1 + lVar3) = cVar8;" (assignment_expression "*(char *)(param_1 + lVar3) = cVar8" (pointer_expression "*(char *)(param_1 + lVar3)" * (cast_expression "(char *)(param_1 + lVar3)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + lVar3)" ( (binary_expression "param_1 + lVar3" identifier + identifier) )))) = identifier) ;) (expression_statement "*(char *)(param_1 + 0x108) = cVar8;" (assignment_expression "*(char *)(param_1 + 0x108) = cVar8" (pointer_expression "*(char *)(param_1 + 0x108)" * (cast_expression "(char *)(param_1 + 0x108)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x108)" ( (binary_expression "param_1 + 0x108" identifier + number_literal) )))) = identifier) ;) (if_statement "if (pcVar7 == "") break;" if (parenthesized_expression "(pcVar7 == "")" ( (binary_expression "pcVar7 == """ identifier == (string_literal """" " ")) )) (break_statement "break;" break ;)) (expression_statement "cVar8 = *pcVar7;" (assignment_expression "cVar8 = *pcVar7" identifier = (pointer_expression "*pcVar7" * identifier)) ;) (expression_statement "lVar3 = lVar1;" (assignment_expression "lVar3 = lVar1" identifier = identifier) ;) })) (goto_statement "goto LAB_002e5a60;" goto statement_identifier ;)) (case_statement "case 0x4f:\n    pcVar7 = " throw";\n    cVar8 = ' ';\n    lVar3 = *(long *)(param_1 + 0x100);\n    while( true ) {\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      pcVar7 = pcVar7 + 1;\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }\nLAB_002e5a60:\n    lVar3 = *(long *)(param_3 + 4);\n    if (lVar3 != 0) {\n      lVar2 = lVar1 + 1;\n      if (lVar1 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar3 = *(long *)(param_3 + 4);\n        lVar1 = 0;\n        lVar2 = 1;\n      }\n      *(long *)(param_1 + 0x100) = lVar2;\n      *(undefined1 *)(param_1 + lVar1) = 0x28;\n      *(undefined1 *)(param_1 + 0x108) = 0x28;\nLAB_002e5aba:\n      FUN_002e5210(param_1,uVar6,lVar3);\n      lVar1 = *(long *)(param_1 + 0x100);\n      lVar3 = lVar1 + 1;\n      if (lVar1 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar3 = 1;\n        lVar1 = 0;\n      }\n      *(long *)(param_1 + 0x100) = lVar3;\n      *(undefined1 *)(param_1 + lVar1) = 0x29;\n      *(undefined1 *)(param_1 + 0x108) = 0x29;\n      return;\n    }" case number_literal : (expression_statement "pcVar7 = " throw";" (assignment_expression "pcVar7 = " throw"" identifier = (string_literal "" throw"" " string_content ")) ;) (expression_statement "cVar8 = ' ';" (assignment_expression "cVar8 = ' '" identifier = (char_literal "' '" ' character ')) ;) (expression_statement "lVar3 = *(long *)(param_1 + 0x100);" (assignment_expression "lVar3 = *(long *)(param_1 + 0x100)" identifier = (pointer_expression "*(long *)(param_1 + 0x100)" * (cast_expression "(long *)(param_1 + 0x100)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x100)" ( (binary_expression "param_1 + 0x100" identifier + number_literal) ))))) ;) (while_statement "while( true ) {\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      pcVar7 = pcVar7 + 1;\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      pcVar7 = pcVar7 + 1;\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }" { (if_statement "if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }" if (parenthesized_expression "(lVar3 == 0xff)" ( (binary_expression "lVar3 == 0xff" identifier == number_literal) )) (compound_statement "{\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }" { (expression_statement "*(undefined1 *)(param_1 + 0xff) = 0;" (assignment_expression "*(undefined1 *)(param_1 + 0xff) = 0" (pointer_expression "*(undefined1 *)(param_1 + 0xff)" * (cast_expression "(undefined1 *)(param_1 + 0xff)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xff)" ( (binary_expression "param_1 + 0xff" identifier + number_literal) )))) = number_literal) ;) (expression_statement "(**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));" (call_expression "(**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118))" (parenthesized_expression "(**(code **)(param_1 + 0x110))" ( (pointer_expression "**(code **)(param_1 + 0x110)" * (pointer_expression "*(code **)(param_1 + 0x110)" * (cast_expression "(code **)(param_1 + 0x110)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x110)" ( (binary_expression "param_1 + 0x110" identifier + number_literal) ))))) )) (argument_list "(param_1,0xff,*(undefined8 *)(param_1 + 0x118))" ( identifier , number_literal , (pointer_expression "*(undefined8 *)(param_1 + 0x118)" * (cast_expression "(undefined8 *)(param_1 + 0x118)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x118)" ( (binary_expression "param_1 + 0x118" identifier + number_literal) )))) ))) ;) (expression_statement "*(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;" (assignment_expression "*(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1" (pointer_expression "*(long *)(param_1 + 0x140)" * (cast_expression "(long *)(param_1 + 0x140)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x140)" ( (binary_expression "param_1 + 0x140" identifier + number_literal) )))) = (binary_expression "*(long *)(param_1 + 0x140) + 1" (pointer_expression "*(long *)(param_1 + 0x140)" * (cast_expression "(long *)(param_1 + 0x140)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x140)" ( (binary_expression "param_1 + 0x140" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "lVar1 = 1;" (assignment_expression "lVar1 = 1" identifier = number_literal) ;) (expression_statement "lVar3 = 0;" (assignment_expression "lVar3 = 0" identifier = number_literal) ;) }) (else_clause "else {\n        lVar1 = lVar3 + 1;\n      }" else (compound_statement "{\n        lVar1 = lVar3 + 1;\n      }" { (expression_statement "lVar1 = lVar3 + 1;" (assignment_expression "lVar1 = lVar3 + 1" identifier = (binary_expression "lVar3 + 1" identifier + number_literal)) ;) }))) (expression_statement "pcVar7 = pcVar7 + 1;" (assignment_expression "pcVar7 = pcVar7 + 1" identifier = (binary_expression "pcVar7 + 1" identifier + number_literal)) ;) (expression_statement "*(long *)(param_1 + 0x100) = lVar1;" (assignment_expression "*(long *)(param_1 + 0x100) = lVar1" (pointer_expression "*(long *)(param_1 + 0x100)" * (cast_expression "(long *)(param_1 + 0x100)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x100)" ( (binary_expression "param_1 + 0x100" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(char *)(param_1 + lVar3) = cVar8;" (assignment_expression "*(char *)(param_1 + lVar3) = cVar8" (pointer_expression "*(char *)(param_1 + lVar3)" * (cast_expression "(char *)(param_1 + lVar3)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + lVar3)" ( (binary_expression "param_1 + lVar3" identifier + identifier) )))) = identifier) ;) (expression_statement "*(char *)(param_1 + 0x108) = cVar8;" (assignment_expression "*(char *)(param_1 + 0x108) = cVar8" (pointer_expression "*(char *)(param_1 + 0x108)" * (cast_expression "(char *)(param_1 + 0x108)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x108)" ( (binary_expression "param_1 + 0x108" identifier + number_literal) )))) = identifier) ;) (if_statement "if (pcVar7 == "") break;" if (parenthesized_expression "(pcVar7 == "")" ( (binary_expression "pcVar7 == """ identifier == (string_literal """" " ")) )) (break_statement "break;" break ;)) (expression_statement "cVar8 = *pcVar7;" (assignment_expression "cVar8 = *pcVar7" identifier = (pointer_expression "*pcVar7" * identifier)) ;) (expression_statement "lVar3 = lVar1;" (assignment_expression "lVar3 = lVar1" identifier = identifier) ;) })) (labeled_statement "LAB_002e5a60:\n    lVar3 = *(long *)(param_3 + 4);" statement_identifier : (expression_statement "lVar3 = *(long *)(param_3 + 4);" (assignment_expression "lVar3 = *(long *)(param_3 + 4)" identifier = (pointer_expression "*(long *)(param_3 + 4)" * (cast_expression "(long *)(param_3 + 4)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 4)" ( (binary_expression "param_3 + 4" identifier + number_literal) ))))) ;)) (if_statement "if (lVar3 != 0) {\n      lVar2 = lVar1 + 1;\n      if (lVar1 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar3 = *(long *)(param_3 + 4);\n        lVar1 = 0;\n        lVar2 = 1;\n      }\n      *(long *)(param_1 + 0x100) = lVar2;\n      *(undefined1 *)(param_1 + lVar1) = 0x28;\n      *(undefined1 *)(param_1 + 0x108) = 0x28;\nLAB_002e5aba:\n      FUN_002e5210(param_1,uVar6,lVar3);\n      lVar1 = *(long *)(param_1 + 0x100);\n      lVar3 = lVar1 + 1;\n      if (lVar1 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar3 = 1;\n        lVar1 = 0;\n      }\n      *(long *)(param_1 + 0x100) = lVar3;\n      *(undefined1 *)(param_1 + lVar1) = 0x29;\n      *(undefined1 *)(param_1 + 0x108) = 0x29;\n      return;\n    }" if (parenthesized_expression "(lVar3 != 0)" ( (binary_expression "lVar3 != 0" identifier != number_literal) )) (compound_statement "{\n      lVar2 = lVar1 + 1;\n      if (lVar1 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar3 = *(long *)(param_3 + 4);\n        lVar1 = 0;\n        lVar2 = 1;\n      }\n      *(long *)(param_1 + 0x100) = lVar2;\n      *(undefined1 *)(param_1 + lVar1) = 0x28;\n      *(undefined1 *)(param_1 + 0x108) = 0x28;\nLAB_002e5aba:\n      FUN_002e5210(param_1,uVar6,lVar3);\n      lVar1 = *(long *)(param_1 + 0x100);\n      lVar3 = lVar1 + 1;\n      if (lVar1 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar3 = 1;\n        lVar1 = 0;\n      }\n      *(long *)(param_1 + 0x100) = lVar3;\n      *(undefined1 *)(param_1 + lVar1) = 0x29;\n      *(undefined1 *)(param_1 + 0x108) = 0x29;\n      return;\n    }" { (expression_statement "lVar2 = lVar1 + 1;" (assignment_expression "lVar2 = lVar1 + 1" identifier = (binary_expression "lVar1 + 1" identifier + number_literal)) ;) (if_statement "if (lVar1 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar3 = *(long *)(param_3 + 4);\n        lVar1 = 0;\n        lVar2 = 1;\n      }" if (parenthesized_expression "(lVar1 == 0xff)" ( (binary_expression "lVar1 == 0xff" identifier == number_literal) )) (compound_statement "{\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar3 = *(long *)(param_3 + 4);\n        lVar1 = 0;\n        lVar2 = 1;\n      }" { (expression_statement "*(undefined1 *)(param_1 + 0xff) = 0;" (assignment_expression "*(undefined1 *)(param_1 + 0xff) = 0" (pointer_expression "*(undefined1 *)(param_1 + 0xff)" * (cast_expression "(undefined1 *)(param_1 + 0xff)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xff)" ( (binary_expression "param_1 + 0xff" identifier + number_literal) )))) = number_literal) ;) (expression_statement "(**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));" (call_expression "(**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118))" (parenthesized_expression "(**(code **)(param_1 + 0x110))" ( (pointer_expression "**(code **)(param_1 + 0x110)" * (pointer_expression "*(code **)(param_1 + 0x110)" * (cast_expression "(code **)(param_1 + 0x110)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x110)" ( (binary_expression "param_1 + 0x110" identifier + number_literal) ))))) )) (argument_list "(param_1,0xff,*(undefined8 *)(param_1 + 0x118))" ( identifier , number_literal , (pointer_expression "*(undefined8 *)(param_1 + 0x118)" * (cast_expression "(undefined8 *)(param_1 + 0x118)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x118)" ( (binary_expression "param_1 + 0x118" identifier + number_literal) )))) ))) ;) (expression_statement "*(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;" (assignment_expression "*(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1" (pointer_expression "*(long *)(param_1 + 0x140)" * (cast_expression "(long *)(param_1 + 0x140)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x140)" ( (binary_expression "param_1 + 0x140" identifier + number_literal) )))) = (binary_expression "*(long *)(param_1 + 0x140) + 1" (pointer_expression "*(long *)(param_1 + 0x140)" * (cast_expression "(long *)(param_1 + 0x140)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x140)" ( (binary_expression "param_1 + 0x140" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "lVar3 = *(long *)(param_3 + 4);" (assignment_expression "lVar3 = *(long *)(param_3 + 4)" identifier = (pointer_expression "*(long *)(param_3 + 4)" * (cast_expression "(long *)(param_3 + 4)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 4)" ( (binary_expression "param_3 + 4" identifier + number_literal) ))))) ;) (expression_statement "lVar1 = 0;" (assignment_expression "lVar1 = 0" identifier = number_literal) ;) (expression_statement "lVar2 = 1;" (assignment_expression "lVar2 = 1" identifier = number_literal) ;) })) (expression_statement "*(long *)(param_1 + 0x100) = lVar2;" (assignment_expression "*(long *)(param_1 + 0x100) = lVar2" (pointer_expression "*(long *)(param_1 + 0x100)" * (cast_expression "(long *)(param_1 + 0x100)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x100)" ( (binary_expression "param_1 + 0x100" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 *)(param_1 + lVar1) = 0x28;" (assignment_expression "*(undefined1 *)(param_1 + lVar1) = 0x28" (pointer_expression "*(undefined1 *)(param_1 + lVar1)" * (cast_expression "(undefined1 *)(param_1 + lVar1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + lVar1)" ( (binary_expression "param_1 + lVar1" identifier + identifier) )))) = number_literal) ;) (expression_statement "*(undefined1 *)(param_1 + 0x108) = 0x28;" (assignment_expression "*(undefined1 *)(param_1 + 0x108) = 0x28" (pointer_expression "*(undefined1 *)(param_1 + 0x108)" * (cast_expression "(undefined1 *)(param_1 + 0x108)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x108)" ( (binary_expression "param_1 + 0x108" identifier + number_literal) )))) = number_literal) ;) (labeled_statement "LAB_002e5aba:\n      FUN_002e5210(param_1,uVar6,lVar3);" statement_identifier : (expression_statement "FUN_002e5210(param_1,uVar6,lVar3);" (call_expression "FUN_002e5210(param_1,uVar6,lVar3)" identifier (argument_list "(param_1,uVar6,lVar3)" ( identifier , identifier , identifier ))) ;)) (expression_statement "lVar1 = *(long *)(param_1 + 0x100);" (assignment_expression "lVar1 = *(long *)(param_1 + 0x100)" identifier = (pointer_expression "*(long *)(param_1 + 0x100)" * (cast_expression "(long *)(param_1 + 0x100)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x100)" ( (binary_expression "param_1 + 0x100" identifier + number_literal) ))))) ;) (expression_statement "lVar3 = lVar1 + 1;" (assignment_expression "lVar3 = lVar1 + 1" identifier = (binary_expression "lVar1 + 1" identifier + number_literal)) ;) (if_statement "if (lVar1 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar3 = 1;\n        lVar1 = 0;\n      }" if (parenthesized_expression "(lVar1 == 0xff)" ( (binary_expression "lVar1 == 0xff" identifier == number_literal) )) (compound_statement "{\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar3 = 1;\n        lVar1 = 0;\n      }" { (expression_statement "*(undefined1 *)(param_1 + 0xff) = 0;" (assignment_expression "*(undefined1 *)(param_1 + 0xff) = 0" (pointer_expression "*(undefined1 *)(param_1 + 0xff)" * (cast_expression "(undefined1 *)(param_1 + 0xff)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xff)" ( (binary_expression "param_1 + 0xff" identifier + number_literal) )))) = number_literal) ;) (expression_statement "(**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));" (call_expression "(**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118))" (parenthesized_expression "(**(code **)(param_1 + 0x110))" ( (pointer_expression "**(code **)(param_1 + 0x110)" * (pointer_expression "*(code **)(param_1 + 0x110)" * (cast_expression "(code **)(param_1 + 0x110)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x110)" ( (binary_expression "param_1 + 0x110" identifier + number_literal) ))))) )) (argument_list "(param_1,0xff,*(undefined8 *)(param_1 + 0x118))" ( identifier , number_literal , (pointer_expression "*(undefined8 *)(param_1 + 0x118)" * (cast_expression "(undefined8 *)(param_1 + 0x118)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x118)" ( (binary_expression "param_1 + 0x118" identifier + number_literal) )))) ))) ;) (expression_statement "*(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;" (assignment_expression "*(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1" (pointer_expression "*(long *)(param_1 + 0x140)" * (cast_expression "(long *)(param_1 + 0x140)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x140)" ( (binary_expression "param_1 + 0x140" identifier + number_literal) )))) = (binary_expression "*(long *)(param_1 + 0x140) + 1" (pointer_expression "*(long *)(param_1 + 0x140)" * (cast_expression "(long *)(param_1 + 0x140)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x140)" ( (binary_expression "param_1 + 0x140" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "lVar3 = 1;" (assignment_expression "lVar3 = 1" identifier = number_literal) ;) (expression_statement "lVar1 = 0;" (assignment_expression "lVar1 = 0" identifier = number_literal) ;) })) (expression_statement "*(long *)(param_1 + 0x100) = lVar3;" (assignment_expression "*(long *)(param_1 + 0x100) = lVar3" (pointer_expression "*(long *)(param_1 + 0x100)" * (cast_expression "(long *)(param_1 + 0x100)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x100)" ( (binary_expression "param_1 + 0x100" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 *)(param_1 + lVar1) = 0x29;" (assignment_expression "*(undefined1 *)(param_1 + lVar1) = 0x29" (pointer_expression "*(undefined1 *)(param_1 + lVar1)" * (cast_expression "(undefined1 *)(param_1 + lVar1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + lVar1)" ( (binary_expression "param_1 + lVar1" identifier + identifier) )))) = number_literal) ;) (expression_statement "*(undefined1 *)(param_1 + 0x108) = 0x29;" (assignment_expression "*(undefined1 *)(param_1 + 0x108) = 0x29" (pointer_expression "*(undefined1 *)(param_1 + 0x108)" * (cast_expression "(undefined1 *)(param_1 + 0x108)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x108)" ( (binary_expression "param_1 + 0x108" identifier + number_literal) )))) = number_literal) ;) (return_statement "return;" return ;) }))) })) (return_statement "return;" return ;) })))
(translation_unit "void d_print_mod(d_print_info *dpi,int options,demangle_component *mod)\n\n{\n  void *pvVar1;\n  size_t sVar2;\n  size_t sVar3;\n  demangle_component *dc;\n  char cVar4;\n  char *pcVar5;\n  \n  switch(mod->type) {\n  case DEMANGLE_COMPONENT_TYPED_NAME:\n    mod = (mod->u).s_fixed.length;\n  case DEMANGLE_COMPONENT_TEMPLATE:\n  case DEMANGLE_COMPONENT_TEMPLATE_PARAM:\n  case DEMANGLE_COMPONENT_FUNCTION_PARAM:\n  case DEMANGLE_COMPONENT_CTOR:\n  case DEMANGLE_COMPONENT_DTOR:\n  case DEMANGLE_COMPONENT_VTABLE:\n  case DEMANGLE_COMPONENT_VTT:\n  case DEMANGLE_COMPONENT_CONSTRUCTION_VTABLE:\n  case DEMANGLE_COMPONENT_TYPEINFO:\n  case DEMANGLE_COMPONENT_TYPEINFO_NAME:\n  case DEMANGLE_COMPONENT_TYPEINFO_FN:\n  case DEMANGLE_COMPONENT_THUNK:\n  case DEMANGLE_COMPONENT_VIRTUAL_THUNK:\n  case DEMANGLE_COMPONENT_COVARIANT_THUNK:\n  case DEMANGLE_COMPONENT_JAVA_CLASS:\n  case DEMANGLE_COMPONENT_GUARD:\n  case DEMANGLE_COMPONENT_TLS_INIT:\n  case DEMANGLE_COMPONENT_TLS_WRAPPER:\n  case DEMANGLE_COMPONENT_REFTEMP:\n  case DEMANGLE_COMPONENT_HIDDEN_ALIAS:\n  case DEMANGLE_COMPONENT_SUB_STD:\n  case DEMANGLE_COMPONENT_BUILTIN_TYPE:\n  case DEMANGLE_COMPONENT_VENDOR_TYPE:\n  case DEMANGLE_COMPONENT_FUNCTION_TYPE:\n  case DEMANGLE_COMPONENT_ARRAY_TYPE:\n  case DEMANGLE_COMPONENT_FIXED_TYPE:\n  case DEMANGLE_COMPONENT_ARGLIST:\n  case DEMANGLE_COMPONENT_TEMPLATE_ARGLIST:\n  case DEMANGLE_COMPONENT_INITIALIZER_LIST:\n  case DEMANGLE_COMPONENT_OPERATOR:\n  case DEMANGLE_COMPONENT_EXTENDED_OPERATOR:\n  case DEMANGLE_COMPONENT_CAST:\n  case DEMANGLE_COMPONENT_CONVERSION:\n  case DEMANGLE_COMPONENT_NULLARY:\n  case DEMANGLE_COMPONENT_UNARY:\n  case DEMANGLE_COMPONENT_BINARY:\n  case DEMANGLE_COMPONENT_BINARY_ARGS:\n  case DEMANGLE_COMPONENT_TRINARY:\n  case DEMANGLE_COMPONENT_TRINARY_ARG1:\n  case DEMANGLE_COMPONENT_TRINARY_ARG2:\n  case DEMANGLE_COMPONENT_LITERAL:\n  case DEMANGLE_COMPONENT_LITERAL_NEG:\n  case DEMANGLE_COMPONENT_JAVA_RESOURCE:\n  case DEMANGLE_COMPONENT_COMPOUND_NAME:\n  case DEMANGLE_COMPONENT_CHARACTER:\n  case DEMANGLE_COMPONENT_NUMBER:\n  case DEMANGLE_COMPONENT_DECLTYPE:\n  case DEMANGLE_COMPONENT_GLOBAL_CONSTRUCTORS:\n  case DEMANGLE_COMPONENT_GLOBAL_DESTRUCTORS:\n  case DEMANGLE_COMPONENT_LAMBDA:\n  case DEMANGLE_COMPONENT_DEFAULT_ARG:\n  case DEMANGLE_COMPONENT_UNNAMED_TYPE:\n  case DEMANGLE_COMPONENT_TRANSACTION_CLONE:\n  case DEMANGLE_COMPONENT_NONTRANSACTION_CLONE:\n  case DEMANGLE_COMPONENT_PACK_EXPANSION:\n  case DEMANGLE_COMPONENT_TAGGED_NAME:\n  case DEMANGLE_COMPONENT_CLONE:\nswitchD_002e52d3_caseD_4:\n    d_print_comp(dpi,options,mod);\n    return;\n  case DEMANGLE_COMPONENT_RESTRICT:\n  case DEMANGLE_COMPONENT_RESTRICT_THIS:\n    pcVar5 = " restrict";\n    cVar4 = ' ';\n    sVar3 = dpi->len;\n    while( true ) {\n      pcVar5 = pcVar5 + 1;\n      if (sVar3 == 0xff) {\n        pvVar1 = dpi->opaque;\n        dpi->buf[0xff] = '\0';\n        (*dpi->callback)(dpi->buf,0xff,pvVar1);\n        dpi->flush_count = dpi->flush_count + 1;\n        sVar2 = 1;\n        sVar3 = 0;\n      }\n      else {\n        sVar2 = sVar3 + 1;\n      }\n      dpi->len = sVar2;\n      dpi->buf[sVar3] = cVar4;\n      dpi->last_char = cVar4;\n      if (pcVar5 == "") break;\n      cVar4 = *pcVar5;\n      sVar3 = sVar2;\n    }\n    break;\n  case DEMANGLE_COMPONENT_VOLATILE:\n  case DEMANGLE_COMPONENT_VOLATILE_THIS:\n    pcVar5 = "volatile";\n    cVar4 = ' ';\n    sVar3 = dpi->len;\n    while( true ) {\n      if (sVar3 == 0xff) {\n        pvVar1 = dpi->opaque;\n        dpi->buf[0xff] = '\0';\n        (*dpi->callback)(dpi->buf,0xff,pvVar1);\n        dpi->flush_count = dpi->flush_count + 1;\n        sVar2 = 1;\n        sVar3 = 0;\n      }\n      else {\n        sVar2 = sVar3 + 1;\n      }\n      dpi->len = sVar2;\n      dpi->buf[sVar3] = cVar4;\n      dpi->last_char = cVar4;\n      if (pcVar5 == "") break;\n      cVar4 = *pcVar5;\n      pcVar5 = pcVar5 + 1;\n      sVar3 = sVar2;\n    }\n    break;\n  case DEMANGLE_COMPONENT_CONST:\n  case DEMANGLE_COMPONENT_CONST_THIS:\n    pcVar5 = " const";\n    cVar4 = ' ';\n    sVar3 = dpi->len;\n    while( true ) {\n      if (sVar3 == 0xff) {\n        pvVar1 = dpi->opaque;\n        dpi->buf[0xff] = '\0';\n        (*dpi->callback)(dpi->buf,0xff,pvVar1);\n        dpi->flush_count = dpi->flush_count + 1;\n        sVar2 = 1;\n        sVar3 = 0;\n      }\n      else {\n        sVar2 = sVar3 + 1;\n      }\n      pcVar5 = pcVar5 + 1;\n      dpi->len = sVar2;\n      dpi->buf[sVar3] = cVar4;\n      dpi->last_char = cVar4;\n      if (pcVar5 == "") break;\n      cVar4 = *pcVar5;\n      sVar3 = sVar2;\n    }\n    break;\n  case DEMANGLE_COMPONENT_REFERENCE_THIS:\n    if (dpi->len == 0xff) {\n      dpi->buf[0xff] = '\0';\n      (*dpi->callback)(dpi->buf,0xff,dpi->opaque);\n      dpi->flush_count = dpi->flush_count + 1;\n      dpi->len = 0;\n    }\n    sVar2 = dpi->len;\n    sVar3 = sVar2 + 1;\n    dpi->len = sVar3;\n    dpi->buf[sVar2] = ' ';\n    dpi->last_char = ' ';\n    goto LAB_002e5807;\n  case DEMANGLE_COMPONENT_RVALUE_REFERENCE_THIS:\n    if (dpi->len == 0xff) {\n      dpi->buf[0xff] = '\0';\n      (*dpi->callback)(dpi->buf,0xff,dpi->opaque);\n      dpi->flush_count = dpi->flush_count + 1;\n      dpi->len = 0;\n    }\n    sVar2 = dpi->len;\n    sVar3 = sVar2 + 1;\n    dpi->len = sVar3;\n    dpi->buf[sVar2] = ' ';\n    dpi->last_char = ' ';\n    goto LAB_002e5867;\n  case DEMANGLE_COMPONENT_VENDOR_TYPE_QUAL:\n    if (dpi->len == 0xff) {\n      dpi->buf[0xff] = '\0';\n      (*dpi->callback)(dpi->buf,0xff,dpi->opaque);\n      dpi->flush_count = dpi->flush_count + 1;\n      dpi->len = 0;\n    }\n    sVar3 = dpi->len;\n    dpi->len = sVar3 + 1;\n    dpi->buf[sVar3] = ' ';\n    dpi->last_char = ' ';\n    mod = (mod->u).s_extended_operator.name;\n    goto switchD_002e52d3_caseD_4;\n  case DEMANGLE_COMPONENT_POINTER:\n    if ((options & 4U) == 0) {\n      if (dpi->len == 0xff) {\n        dpi->buf[0xff] = '\0';\n        (*dpi->callback)(dpi->buf,0xff,dpi->opaque);\n        dpi->flush_count = dpi->flush_count + 1;\n        dpi->len = 0;\n      }\n      sVar3 = dpi->len;\n      dpi->len = sVar3 + 1;\n      dpi->buf[sVar3] = '*';\n      dpi->last_char = '*';\n    }\n    break;\n  case DEMANGLE_COMPONENT_REFERENCE:\n    sVar3 = dpi->len;\nLAB_002e5807:\n    sVar2 = sVar3 + 1;\n    if (sVar3 == 0xff) {\n      pvVar1 = dpi->opaque;\n      dpi->buf[0xff] = '\0';\n      (*dpi->callback)(dpi->buf,0xff,pvVar1);\n      dpi->flush_count = dpi->flush_count + 1;\n      sVar2 = 1;\n      sVar3 = 0;\n    }\n    dpi->len = sVar2;\n    dpi->buf[sVar3] = '&';\n    dpi->last_char = '&';\n    break;\n  case DEMANGLE_COMPONENT_RVALUE_REFERENCE:\n    sVar3 = dpi->len;\nLAB_002e5867:\n    pcVar5 = "&&";\n    cVar4 = '&';\n    while( true ) {\n      if (sVar3 == 0xff) {\n        pvVar1 = dpi->opaque;\n        dpi->buf[0xff] = '\0';\n        (*dpi->callback)(dpi->buf,0xff,pvVar1);\n        dpi->flush_count = dpi->flush_count + 1;\n        sVar2 = 1;\n        sVar3 = 0;\n      }\n      else {\n        sVar2 = sVar3 + 1;\n      }\n      pcVar5 = pcVar5 + 1;\n      dpi->len = sVar2;\n      dpi->buf[sVar3] = cVar4;\n      dpi->last_char = cVar4;\n      if (pcVar5 == "") break;\n      cVar4 = *pcVar5;\n      sVar3 = sVar2;\n    }\n    break;\n  case DEMANGLE_COMPONENT_COMPLEX:\n    pcVar5 = "complex ";\n    cVar4 = 'c';\n    sVar3 = dpi->len;\n    while( true ) {\n      if (sVar3 == 0xff) {\n        pvVar1 = dpi->opaque;\n        dpi->buf[0xff] = '\0';\n        (*dpi->callback)(dpi->buf,0xff,pvVar1);\n        dpi->flush_count = dpi->flush_count + 1;\n        sVar2 = 1;\n        sVar3 = 0;\n      }\n      else {\n        sVar2 = sVar3 + 1;\n      }\n      pcVar5 = pcVar5 + 1;\n      dpi->len = sVar2;\n      dpi->buf[sVar3] = cVar4;\n      dpi->last_char = cVar4;\n      if (pcVar5 == "") break;\n      cVar4 = *pcVar5;\n      sVar3 = sVar2;\n    }\n    break;\n  case DEMANGLE_COMPONENT_IMAGINARY:\n    pcVar5 = "imaginary ";\n    cVar4 = 'i';\n    sVar3 = dpi->len;\n    while( true ) {\n      pcVar5 = pcVar5 + 1;\n      if (sVar3 == 0xff) {\n        pvVar1 = dpi->opaque;\n        dpi->buf[0xff] = '\0';\n        (*dpi->callback)(dpi->buf,0xff,pvVar1);\n        dpi->flush_count = dpi->flush_count + 1;\n        sVar2 = 1;\n        sVar3 = 0;\n      }\n      else {\n        sVar2 = sVar3 + 1;\n      }\n      dpi->len = sVar2;\n      dpi->buf[sVar3] = cVar4;\n      dpi->last_char = cVar4;\n      if (pcVar5 == "") break;\n      cVar4 = *pcVar5;\n      sVar3 = sVar2;\n    }\n    break;\n  case DEMANGLE_COMPONENT_PTRMEM_TYPE:\n    if (dpi->last_char != '(') {\n      sVar2 = dpi->len;\n      sVar3 = sVar2 + 1;\n      if (sVar2 == 0xff) {\n        pvVar1 = dpi->opaque;\n        dpi->buf[0xff] = '\0';\n        (*dpi->callback)(dpi->buf,0xff,pvVar1);\n        dpi->flush_count = dpi->flush_count + 1;\n        sVar3 = 1;\n        sVar2 = 0;\n      }\n      dpi->len = sVar3;\n      dpi->buf[sVar2] = ' ';\n      dpi->last_char = ' ';\n    }\n    pcVar5 = "::*";\n    cVar4 = ':';\n    d_print_comp(dpi,options,(mod->u).s_fixed.length);\n    sVar3 = dpi->len;\n    while( true ) {\n      if (sVar3 == 0xff) {\n        pvVar1 = dpi->opaque;\n        dpi->buf[0xff] = '\0';\n        (*dpi->callback)(dpi->buf,0xff,pvVar1);\n        dpi->flush_count = dpi->flush_count + 1;\n        sVar2 = 1;\n        sVar3 = 0;\n      }\n      else {\n        sVar2 = sVar3 + 1;\n      }\n      pcVar5 = pcVar5 + 1;\n      dpi->len = sVar2;\n      dpi->buf[sVar3] = cVar4;\n      dpi->last_char = cVar4;\n      if (pcVar5 == "") break;\n      cVar4 = *pcVar5;\n      sVar3 = sVar2;\n    }\n    break;\n  case DEMANGLE_COMPONENT_VECTOR_TYPE:\n    pcVar5 = " __vector(";\n    cVar4 = ' ';\n    sVar3 = dpi->len;\n    while( true ) {\n      pcVar5 = pcVar5 + 1;\n      if (sVar3 == 0xff) {\n        pvVar1 = dpi->opaque;\n        dpi->buf[0xff] = '\0';\n        (*dpi->callback)(dpi->buf,0xff,pvVar1);\n        dpi->flush_count = dpi->flush_count + 1;\n        sVar2 = 1;\n        sVar3 = 0;\n      }\n      else {\n        sVar2 = sVar3 + 1;\n      }\n      dpi->len = sVar2;\n      dpi->buf[sVar3] = cVar4;\n      dpi->last_char = cVar4;\n      if (pcVar5 == "") break;\n      cVar4 = *pcVar5;\n      sVar3 = sVar2;\n    }\n    dc = (mod->u).s_fixed.length;\n    goto LAB_002e5aba;\n  case DEMANGLE_COMPONENT_TRANSACTION_SAFE:\n    pcVar5 = " transaction_safe";\n    cVar4 = ' ';\n    sVar3 = dpi->len;\n    while( true ) {\n      pcVar5 = pcVar5 + 1;\n      if (sVar3 == 0xff) {\n        pvVar1 = dpi->opaque;\n        dpi->buf[0xff] = '\0';\n        (*dpi->callback)(dpi->buf,0xff,pvVar1);\n        dpi->flush_count = dpi->flush_count + 1;\n        sVar2 = 1;\n        sVar3 = 0;\n      }\n      else {\n        sVar2 = sVar3 + 1;\n      }\n      dpi->len = sVar2;\n      dpi->buf[sVar3] = cVar4;\n      dpi->last_char = cVar4;\n      if (pcVar5 == "") break;\n      cVar4 = *pcVar5;\n      sVar3 = sVar2;\n    }\n    break;\n  case DEMANGLE_COMPONENT_NOEXCEPT:\n    pcVar5 = " noexcept";\n    cVar4 = ' ';\n    sVar3 = dpi->len;\n    while( true ) {\n      pcVar5 = pcVar5 + 1;\n      if (sVar3 == 0xff) {\n        pvVar1 = dpi->opaque;\n        dpi->buf[0xff] = '\0';\n        (*dpi->callback)(dpi->buf,0xff,pvVar1);\n        dpi->flush_count = dpi->flush_count + 1;\n        sVar2 = 1;\n        sVar3 = 0;\n      }\n      else {\n        sVar2 = sVar3 + 1;\n      }\n      dpi->len = sVar2;\n      dpi->buf[sVar3] = cVar4;\n      dpi->last_char = cVar4;\n      if (pcVar5 == "") break;\n      cVar4 = *pcVar5;\n      sVar3 = sVar2;\n    }\n    goto LAB_002e5a60;\n  case DEMANGLE_COMPONENT_THROW_SPEC:\n    pcVar5 = " throw";\n    cVar4 = ' ';\n    sVar3 = dpi->len;\n    while( true ) {\n      if (sVar3 == 0xff) {\n        pvVar1 = dpi->opaque;\n        dpi->buf[0xff] = '\0';\n        (*dpi->callback)(dpi->buf,0xff,pvVar1);\n        dpi->flush_count = dpi->flush_count + 1;\n        sVar2 = 1;\n        sVar3 = 0;\n      }\n      else {\n        sVar2 = sVar3 + 1;\n      }\n      pcVar5 = pcVar5 + 1;\n      dpi->len = sVar2;\n      dpi->buf[sVar3] = cVar4;\n      dpi->last_char = cVar4;\n      if (pcVar5 == "") break;\n      cVar4 = *pcVar5;\n      sVar3 = sVar2;\n    }\nLAB_002e5a60:\n    dc = (mod->u).s_extended_operator.name;\n    if (dc != (demangle_component *)0x0) {\n      sVar3 = sVar2 + 1;\n      if (sVar2 == 0xff) {\n        pvVar1 = dpi->opaque;\n        dpi->buf[0xff] = '\0';\n        (*dpi->callback)(dpi->buf,0xff,pvVar1);\n        dpi->flush_count = dpi->flush_count + 1;\n        dc = (mod->u).s_extended_operator.name;\n        sVar2 = 0;\n        sVar3 = 1;\n      }\n      dpi->len = sVar3;\n      dpi->buf[sVar2] = '(';\n      dpi->last_char = '(';\nLAB_002e5aba:\n      d_print_comp(dpi,options,dc);\n      sVar2 = dpi->len;\n      sVar3 = sVar2 + 1;\n      if (sVar2 == 0xff) {\n        pvVar1 = dpi->opaque;\n        dpi->buf[0xff] = '\0';\n        (*dpi->callback)(dpi->buf,0xff,pvVar1);\n        dpi->flush_count = dpi->flush_count + 1;\n        sVar3 = 1;\n        sVar2 = 0;\n      }\n      dpi->len = sVar3;\n      dpi->buf[sVar2] = ')';\n      dpi->last_char = ')';\n      return;\n    }\n    break;\n  default:\n    d_print_comp(dpi,options,mod);\n    return;\n  }\n  return;\n}\n\n" (function_definition "void d_print_mod(d_print_info *dpi,int options,demangle_component *mod)\n\n{\n  void *pvVar1;\n  size_t sVar2;\n  size_t sVar3;\n  demangle_component *dc;\n  char cVar4;\n  char *pcVar5;\n  \n  switch(mod->type) {\n  case DEMANGLE_COMPONENT_TYPED_NAME:\n    mod = (mod->u).s_fixed.length;\n  case DEMANGLE_COMPONENT_TEMPLATE:\n  case DEMANGLE_COMPONENT_TEMPLATE_PARAM:\n  case DEMANGLE_COMPONENT_FUNCTION_PARAM:\n  case DEMANGLE_COMPONENT_CTOR:\n  case DEMANGLE_COMPONENT_DTOR:\n  case DEMANGLE_COMPONENT_VTABLE:\n  case DEMANGLE_COMPONENT_VTT:\n  case DEMANGLE_COMPONENT_CONSTRUCTION_VTABLE:\n  case DEMANGLE_COMPONENT_TYPEINFO:\n  case DEMANGLE_COMPONENT_TYPEINFO_NAME:\n  case DEMANGLE_COMPONENT_TYPEINFO_FN:\n  case DEMANGLE_COMPONENT_THUNK:\n  case DEMANGLE_COMPONENT_VIRTUAL_THUNK:\n  case DEMANGLE_COMPONENT_COVARIANT_THUNK:\n  case DEMANGLE_COMPONENT_JAVA_CLASS:\n  case DEMANGLE_COMPONENT_GUARD:\n  case DEMANGLE_COMPONENT_TLS_INIT:\n  case DEMANGLE_COMPONENT_TLS_WRAPPER:\n  case DEMANGLE_COMPONENT_REFTEMP:\n  case DEMANGLE_COMPONENT_HIDDEN_ALIAS:\n  case DEMANGLE_COMPONENT_SUB_STD:\n  case DEMANGLE_COMPONENT_BUILTIN_TYPE:\n  case DEMANGLE_COMPONENT_VENDOR_TYPE:\n  case DEMANGLE_COMPONENT_FUNCTION_TYPE:\n  case DEMANGLE_COMPONENT_ARRAY_TYPE:\n  case DEMANGLE_COMPONENT_FIXED_TYPE:\n  case DEMANGLE_COMPONENT_ARGLIST:\n  case DEMANGLE_COMPONENT_TEMPLATE_ARGLIST:\n  case DEMANGLE_COMPONENT_INITIALIZER_LIST:\n  case DEMANGLE_COMPONENT_OPERATOR:\n  case DEMANGLE_COMPONENT_EXTENDED_OPERATOR:\n  case DEMANGLE_COMPONENT_CAST:\n  case DEMANGLE_COMPONENT_CONVERSION:\n  case DEMANGLE_COMPONENT_NULLARY:\n  case DEMANGLE_COMPONENT_UNARY:\n  case DEMANGLE_COMPONENT_BINARY:\n  case DEMANGLE_COMPONENT_BINARY_ARGS:\n  case DEMANGLE_COMPONENT_TRINARY:\n  case DEMANGLE_COMPONENT_TRINARY_ARG1:\n  case DEMANGLE_COMPONENT_TRINARY_ARG2:\n  case DEMANGLE_COMPONENT_LITERAL:\n  case DEMANGLE_COMPONENT_LITERAL_NEG:\n  case DEMANGLE_COMPONENT_JAVA_RESOURCE:\n  case DEMANGLE_COMPONENT_COMPOUND_NAME:\n  case DEMANGLE_COMPONENT_CHARACTER:\n  case DEMANGLE_COMPONENT_NUMBER:\n  case DEMANGLE_COMPONENT_DECLTYPE:\n  case DEMANGLE_COMPONENT_GLOBAL_CONSTRUCTORS:\n  case DEMANGLE_COMPONENT_GLOBAL_DESTRUCTORS:\n  case DEMANGLE_COMPONENT_LAMBDA:\n  case DEMANGLE_COMPONENT_DEFAULT_ARG:\n  case DEMANGLE_COMPONENT_UNNAMED_TYPE:\n  case DEMANGLE_COMPONENT_TRANSACTION_CLONE:\n  case DEMANGLE_COMPONENT_NONTRANSACTION_CLONE:\n  case DEMANGLE_COMPONENT_PACK_EXPANSION:\n  case DEMANGLE_COMPONENT_TAGGED_NAME:\n  case DEMANGLE_COMPONENT_CLONE:\nswitchD_002e52d3_caseD_4:\n    d_print_comp(dpi,options,mod);\n    return;\n  case DEMANGLE_COMPONENT_RESTRICT:\n  case DEMANGLE_COMPONENT_RESTRICT_THIS:\n    pcVar5 = " restrict";\n    cVar4 = ' ';\n    sVar3 = dpi->len;\n    while( true ) {\n      pcVar5 = pcVar5 + 1;\n      if (sVar3 == 0xff) {\n        pvVar1 = dpi->opaque;\n        dpi->buf[0xff] = '\0';\n        (*dpi->callback)(dpi->buf,0xff,pvVar1);\n        dpi->flush_count = dpi->flush_count + 1;\n        sVar2 = 1;\n        sVar3 = 0;\n      }\n      else {\n        sVar2 = sVar3 + 1;\n      }\n      dpi->len = sVar2;\n      dpi->buf[sVar3] = cVar4;\n      dpi->last_char = cVar4;\n      if (pcVar5 == "") break;\n      cVar4 = *pcVar5;\n      sVar3 = sVar2;\n    }\n    break;\n  case DEMANGLE_COMPONENT_VOLATILE:\n  case DEMANGLE_COMPONENT_VOLATILE_THIS:\n    pcVar5 = "volatile";\n    cVar4 = ' ';\n    sVar3 = dpi->len;\n    while( true ) {\n      if (sVar3 == 0xff) {\n        pvVar1 = dpi->opaque;\n        dpi->buf[0xff] = '\0';\n        (*dpi->callback)(dpi->buf,0xff,pvVar1);\n        dpi->flush_count = dpi->flush_count + 1;\n        sVar2 = 1;\n        sVar3 = 0;\n      }\n      else {\n        sVar2 = sVar3 + 1;\n      }\n      dpi->len = sVar2;\n      dpi->buf[sVar3] = cVar4;\n      dpi->last_char = cVar4;\n      if (pcVar5 == "") break;\n      cVar4 = *pcVar5;\n      pcVar5 = pcVar5 + 1;\n      sVar3 = sVar2;\n    }\n    break;\n  case DEMANGLE_COMPONENT_CONST:\n  case DEMANGLE_COMPONENT_CONST_THIS:\n    pcVar5 = " const";\n    cVar4 = ' ';\n    sVar3 = dpi->len;\n    while( true ) {\n      if (sVar3 == 0xff) {\n        pvVar1 = dpi->opaque;\n        dpi->buf[0xff] = '\0';\n        (*dpi->callback)(dpi->buf,0xff,pvVar1);\n        dpi->flush_count = dpi->flush_count + 1;\n        sVar2 = 1;\n        sVar3 = 0;\n      }\n      else {\n        sVar2 = sVar3 + 1;\n      }\n      pcVar5 = pcVar5 + 1;\n      dpi->len = sVar2;\n      dpi->buf[sVar3] = cVar4;\n      dpi->last_char = cVar4;\n      if (pcVar5 == "") break;\n      cVar4 = *pcVar5;\n      sVar3 = sVar2;\n    }\n    break;\n  case DEMANGLE_COMPONENT_REFERENCE_THIS:\n    if (dpi->len == 0xff) {\n      dpi->buf[0xff] = '\0';\n      (*dpi->callback)(dpi->buf,0xff,dpi->opaque);\n      dpi->flush_count = dpi->flush_count + 1;\n      dpi->len = 0;\n    }\n    sVar2 = dpi->len;\n    sVar3 = sVar2 + 1;\n    dpi->len = sVar3;\n    dpi->buf[sVar2] = ' ';\n    dpi->last_char = ' ';\n    goto LAB_002e5807;\n  case DEMANGLE_COMPONENT_RVALUE_REFERENCE_THIS:\n    if (dpi->len == 0xff) {\n      dpi->buf[0xff] = '\0';\n      (*dpi->callback)(dpi->buf,0xff,dpi->opaque);\n      dpi->flush_count = dpi->flush_count + 1;\n      dpi->len = 0;\n    }\n    sVar2 = dpi->len;\n    sVar3 = sVar2 + 1;\n    dpi->len = sVar3;\n    dpi->buf[sVar2] = ' ';\n    dpi->last_char = ' ';\n    goto LAB_002e5867;\n  case DEMANGLE_COMPONENT_VENDOR_TYPE_QUAL:\n    if (dpi->len == 0xff) {\n      dpi->buf[0xff] = '\0';\n      (*dpi->callback)(dpi->buf,0xff,dpi->opaque);\n      dpi->flush_count = dpi->flush_count + 1;\n      dpi->len = 0;\n    }\n    sVar3 = dpi->len;\n    dpi->len = sVar3 + 1;\n    dpi->buf[sVar3] = ' ';\n    dpi->last_char = ' ';\n    mod = (mod->u).s_extended_operator.name;\n    goto switchD_002e52d3_caseD_4;\n  case DEMANGLE_COMPONENT_POINTER:\n    if ((options & 4U) == 0) {\n      if (dpi->len == 0xff) {\n        dpi->buf[0xff] = '\0';\n        (*dpi->callback)(dpi->buf,0xff,dpi->opaque);\n        dpi->flush_count = dpi->flush_count + 1;\n        dpi->len = 0;\n      }\n      sVar3 = dpi->len;\n      dpi->len = sVar3 + 1;\n      dpi->buf[sVar3] = '*';\n      dpi->last_char = '*';\n    }\n    break;\n  case DEMANGLE_COMPONENT_REFERENCE:\n    sVar3 = dpi->len;\nLAB_002e5807:\n    sVar2 = sVar3 + 1;\n    if (sVar3 == 0xff) {\n      pvVar1 = dpi->opaque;\n      dpi->buf[0xff] = '\0';\n      (*dpi->callback)(dpi->buf,0xff,pvVar1);\n      dpi->flush_count = dpi->flush_count + 1;\n      sVar2 = 1;\n      sVar3 = 0;\n    }\n    dpi->len = sVar2;\n    dpi->buf[sVar3] = '&';\n    dpi->last_char = '&';\n    break;\n  case DEMANGLE_COMPONENT_RVALUE_REFERENCE:\n    sVar3 = dpi->len;\nLAB_002e5867:\n    pcVar5 = "&&";\n    cVar4 = '&';\n    while( true ) {\n      if (sVar3 == 0xff) {\n        pvVar1 = dpi->opaque;\n        dpi->buf[0xff] = '\0';\n        (*dpi->callback)(dpi->buf,0xff,pvVar1);\n        dpi->flush_count = dpi->flush_count + 1;\n        sVar2 = 1;\n        sVar3 = 0;\n      }\n      else {\n        sVar2 = sVar3 + 1;\n      }\n      pcVar5 = pcVar5 + 1;\n      dpi->len = sVar2;\n      dpi->buf[sVar3] = cVar4;\n      dpi->last_char = cVar4;\n      if (pcVar5 == "") break;\n      cVar4 = *pcVar5;\n      sVar3 = sVar2;\n    }\n    break;\n  case DEMANGLE_COMPONENT_COMPLEX:\n    pcVar5 = "complex ";\n    cVar4 = 'c';\n    sVar3 = dpi->len;\n    while( true ) {\n      if (sVar3 == 0xff) {\n        pvVar1 = dpi->opaque;\n        dpi->buf[0xff] = '\0';\n        (*dpi->callback)(dpi->buf,0xff,pvVar1);\n        dpi->flush_count = dpi->flush_count + 1;\n        sVar2 = 1;\n        sVar3 = 0;\n      }\n      else {\n        sVar2 = sVar3 + 1;\n      }\n      pcVar5 = pcVar5 + 1;\n      dpi->len = sVar2;\n      dpi->buf[sVar3] = cVar4;\n      dpi->last_char = cVar4;\n      if (pcVar5 == "") break;\n      cVar4 = *pcVar5;\n      sVar3 = sVar2;\n    }\n    break;\n  case DEMANGLE_COMPONENT_IMAGINARY:\n    pcVar5 = "imaginary ";\n    cVar4 = 'i';\n    sVar3 = dpi->len;\n    while( true ) {\n      pcVar5 = pcVar5 + 1;\n      if (sVar3 == 0xff) {\n        pvVar1 = dpi->opaque;\n        dpi->buf[0xff] = '\0';\n        (*dpi->callback)(dpi->buf,0xff,pvVar1);\n        dpi->flush_count = dpi->flush_count + 1;\n        sVar2 = 1;\n        sVar3 = 0;\n      }\n      else {\n        sVar2 = sVar3 + 1;\n      }\n      dpi->len = sVar2;\n      dpi->buf[sVar3] = cVar4;\n      dpi->last_char = cVar4;\n      if (pcVar5 == "") break;\n      cVar4 = *pcVar5;\n      sVar3 = sVar2;\n    }\n    break;\n  case DEMANGLE_COMPONENT_PTRMEM_TYPE:\n    if (dpi->last_char != '(') {\n      sVar2 = dpi->len;\n      sVar3 = sVar2 + 1;\n      if (sVar2 == 0xff) {\n        pvVar1 = dpi->opaque;\n        dpi->buf[0xff] = '\0';\n        (*dpi->callback)(dpi->buf,0xff,pvVar1);\n        dpi->flush_count = dpi->flush_count + 1;\n        sVar3 = 1;\n        sVar2 = 0;\n      }\n      dpi->len = sVar3;\n      dpi->buf[sVar2] = ' ';\n      dpi->last_char = ' ';\n    }\n    pcVar5 = "::*";\n    cVar4 = ':';\n    d_print_comp(dpi,options,(mod->u).s_fixed.length);\n    sVar3 = dpi->len;\n    while( true ) {\n      if (sVar3 == 0xff) {\n        pvVar1 = dpi->opaque;\n        dpi->buf[0xff] = '\0';\n        (*dpi->callback)(dpi->buf,0xff,pvVar1);\n        dpi->flush_count = dpi->flush_count + 1;\n        sVar2 = 1;\n        sVar3 = 0;\n      }\n      else {\n        sVar2 = sVar3 + 1;\n      }\n      pcVar5 = pcVar5 + 1;\n      dpi->len = sVar2;\n      dpi->buf[sVar3] = cVar4;\n      dpi->last_char = cVar4;\n      if (pcVar5 == "") break;\n      cVar4 = *pcVar5;\n      sVar3 = sVar2;\n    }\n    break;\n  case DEMANGLE_COMPONENT_VECTOR_TYPE:\n    pcVar5 = " __vector(";\n    cVar4 = ' ';\n    sVar3 = dpi->len;\n    while( true ) {\n      pcVar5 = pcVar5 + 1;\n      if (sVar3 == 0xff) {\n        pvVar1 = dpi->opaque;\n        dpi->buf[0xff] = '\0';\n        (*dpi->callback)(dpi->buf,0xff,pvVar1);\n        dpi->flush_count = dpi->flush_count + 1;\n        sVar2 = 1;\n        sVar3 = 0;\n      }\n      else {\n        sVar2 = sVar3 + 1;\n      }\n      dpi->len = sVar2;\n      dpi->buf[sVar3] = cVar4;\n      dpi->last_char = cVar4;\n      if (pcVar5 == "") break;\n      cVar4 = *pcVar5;\n      sVar3 = sVar2;\n    }\n    dc = (mod->u).s_fixed.length;\n    goto LAB_002e5aba;\n  case DEMANGLE_COMPONENT_TRANSACTION_SAFE:\n    pcVar5 = " transaction_safe";\n    cVar4 = ' ';\n    sVar3 = dpi->len;\n    while( true ) {\n      pcVar5 = pcVar5 + 1;\n      if (sVar3 == 0xff) {\n        pvVar1 = dpi->opaque;\n        dpi->buf[0xff] = '\0';\n        (*dpi->callback)(dpi->buf,0xff,pvVar1);\n        dpi->flush_count = dpi->flush_count + 1;\n        sVar2 = 1;\n        sVar3 = 0;\n      }\n      else {\n        sVar2 = sVar3 + 1;\n      }\n      dpi->len = sVar2;\n      dpi->buf[sVar3] = cVar4;\n      dpi->last_char = cVar4;\n      if (pcVar5 == "") break;\n      cVar4 = *pcVar5;\n      sVar3 = sVar2;\n    }\n    break;\n  case DEMANGLE_COMPONENT_NOEXCEPT:\n    pcVar5 = " noexcept";\n    cVar4 = ' ';\n    sVar3 = dpi->len;\n    while( true ) {\n      pcVar5 = pcVar5 + 1;\n      if (sVar3 == 0xff) {\n        pvVar1 = dpi->opaque;\n        dpi->buf[0xff] = '\0';\n        (*dpi->callback)(dpi->buf,0xff,pvVar1);\n        dpi->flush_count = dpi->flush_count + 1;\n        sVar2 = 1;\n        sVar3 = 0;\n      }\n      else {\n        sVar2 = sVar3 + 1;\n      }\n      dpi->len = sVar2;\n      dpi->buf[sVar3] = cVar4;\n      dpi->last_char = cVar4;\n      if (pcVar5 == "") break;\n      cVar4 = *pcVar5;\n      sVar3 = sVar2;\n    }\n    goto LAB_002e5a60;\n  case DEMANGLE_COMPONENT_THROW_SPEC:\n    pcVar5 = " throw";\n    cVar4 = ' ';\n    sVar3 = dpi->len;\n    while( true ) {\n      if (sVar3 == 0xff) {\n        pvVar1 = dpi->opaque;\n        dpi->buf[0xff] = '\0';\n        (*dpi->callback)(dpi->buf,0xff,pvVar1);\n        dpi->flush_count = dpi->flush_count + 1;\n        sVar2 = 1;\n        sVar3 = 0;\n      }\n      else {\n        sVar2 = sVar3 + 1;\n      }\n      pcVar5 = pcVar5 + 1;\n      dpi->len = sVar2;\n      dpi->buf[sVar3] = cVar4;\n      dpi->last_char = cVar4;\n      if (pcVar5 == "") break;\n      cVar4 = *pcVar5;\n      sVar3 = sVar2;\n    }\nLAB_002e5a60:\n    dc = (mod->u).s_extended_operator.name;\n    if (dc != (demangle_component *)0x0) {\n      sVar3 = sVar2 + 1;\n      if (sVar2 == 0xff) {\n        pvVar1 = dpi->opaque;\n        dpi->buf[0xff] = '\0';\n        (*dpi->callback)(dpi->buf,0xff,pvVar1);\n        dpi->flush_count = dpi->flush_count + 1;\n        dc = (mod->u).s_extended_operator.name;\n        sVar2 = 0;\n        sVar3 = 1;\n      }\n      dpi->len = sVar3;\n      dpi->buf[sVar2] = '(';\n      dpi->last_char = '(';\nLAB_002e5aba:\n      d_print_comp(dpi,options,dc);\n      sVar2 = dpi->len;\n      sVar3 = sVar2 + 1;\n      if (sVar2 == 0xff) {\n        pvVar1 = dpi->opaque;\n        dpi->buf[0xff] = '\0';\n        (*dpi->callback)(dpi->buf,0xff,pvVar1);\n        dpi->flush_count = dpi->flush_count + 1;\n        sVar3 = 1;\n        sVar2 = 0;\n      }\n      dpi->len = sVar3;\n      dpi->buf[sVar2] = ')';\n      dpi->last_char = ')';\n      return;\n    }\n    break;\n  default:\n    d_print_comp(dpi,options,mod);\n    return;\n  }\n  return;\n}" primitive_type (function_declarator "d_print_mod(d_print_info *dpi,int options,demangle_component *mod)" identifier (parameter_list "(d_print_info *dpi,int options,demangle_component *mod)" ( (parameter_declaration "d_print_info *dpi" type_identifier (pointer_declarator "*dpi" * identifier)) , (parameter_declaration "int options" primitive_type identifier) , (parameter_declaration "demangle_component *mod" type_identifier (pointer_declarator "*mod" * identifier)) ))) (compound_statement "{\n  void *pvVar1;\n  size_t sVar2;\n  size_t sVar3;\n  demangle_component *dc;\n  char cVar4;\n  char *pcVar5;\n  \n  switch(mod->type) {\n  case DEMANGLE_COMPONENT_TYPED_NAME:\n    mod = (mod->u).s_fixed.length;\n  case DEMANGLE_COMPONENT_TEMPLATE:\n  case DEMANGLE_COMPONENT_TEMPLATE_PARAM:\n  case DEMANGLE_COMPONENT_FUNCTION_PARAM:\n  case DEMANGLE_COMPONENT_CTOR:\n  case DEMANGLE_COMPONENT_DTOR:\n  case DEMANGLE_COMPONENT_VTABLE:\n  case DEMANGLE_COMPONENT_VTT:\n  case DEMANGLE_COMPONENT_CONSTRUCTION_VTABLE:\n  case DEMANGLE_COMPONENT_TYPEINFO:\n  case DEMANGLE_COMPONENT_TYPEINFO_NAME:\n  case DEMANGLE_COMPONENT_TYPEINFO_FN:\n  case DEMANGLE_COMPONENT_THUNK:\n  case DEMANGLE_COMPONENT_VIRTUAL_THUNK:\n  case DEMANGLE_COMPONENT_COVARIANT_THUNK:\n  case DEMANGLE_COMPONENT_JAVA_CLASS:\n  case DEMANGLE_COMPONENT_GUARD:\n  case DEMANGLE_COMPONENT_TLS_INIT:\n  case DEMANGLE_COMPONENT_TLS_WRAPPER:\n  case DEMANGLE_COMPONENT_REFTEMP:\n  case DEMANGLE_COMPONENT_HIDDEN_ALIAS:\n  case DEMANGLE_COMPONENT_SUB_STD:\n  case DEMANGLE_COMPONENT_BUILTIN_TYPE:\n  case DEMANGLE_COMPONENT_VENDOR_TYPE:\n  case DEMANGLE_COMPONENT_FUNCTION_TYPE:\n  case DEMANGLE_COMPONENT_ARRAY_TYPE:\n  case DEMANGLE_COMPONENT_FIXED_TYPE:\n  case DEMANGLE_COMPONENT_ARGLIST:\n  case DEMANGLE_COMPONENT_TEMPLATE_ARGLIST:\n  case DEMANGLE_COMPONENT_INITIALIZER_LIST:\n  case DEMANGLE_COMPONENT_OPERATOR:\n  case DEMANGLE_COMPONENT_EXTENDED_OPERATOR:\n  case DEMANGLE_COMPONENT_CAST:\n  case DEMANGLE_COMPONENT_CONVERSION:\n  case DEMANGLE_COMPONENT_NULLARY:\n  case DEMANGLE_COMPONENT_UNARY:\n  case DEMANGLE_COMPONENT_BINARY:\n  case DEMANGLE_COMPONENT_BINARY_ARGS:\n  case DEMANGLE_COMPONENT_TRINARY:\n  case DEMANGLE_COMPONENT_TRINARY_ARG1:\n  case DEMANGLE_COMPONENT_TRINARY_ARG2:\n  case DEMANGLE_COMPONENT_LITERAL:\n  case DEMANGLE_COMPONENT_LITERAL_NEG:\n  case DEMANGLE_COMPONENT_JAVA_RESOURCE:\n  case DEMANGLE_COMPONENT_COMPOUND_NAME:\n  case DEMANGLE_COMPONENT_CHARACTER:\n  case DEMANGLE_COMPONENT_NUMBER:\n  case DEMANGLE_COMPONENT_DECLTYPE:\n  case DEMANGLE_COMPONENT_GLOBAL_CONSTRUCTORS:\n  case DEMANGLE_COMPONENT_GLOBAL_DESTRUCTORS:\n  case DEMANGLE_COMPONENT_LAMBDA:\n  case DEMANGLE_COMPONENT_DEFAULT_ARG:\n  case DEMANGLE_COMPONENT_UNNAMED_TYPE:\n  case DEMANGLE_COMPONENT_TRANSACTION_CLONE:\n  case DEMANGLE_COMPONENT_NONTRANSACTION_CLONE:\n  case DEMANGLE_COMPONENT_PACK_EXPANSION:\n  case DEMANGLE_COMPONENT_TAGGED_NAME:\n  case DEMANGLE_COMPONENT_CLONE:\nswitchD_002e52d3_caseD_4:\n    d_print_comp(dpi,options,mod);\n    return;\n  case DEMANGLE_COMPONENT_RESTRICT:\n  case DEMANGLE_COMPONENT_RESTRICT_THIS:\n    pcVar5 = " restrict";\n    cVar4 = ' ';\n    sVar3 = dpi->len;\n    while( true ) {\n      pcVar5 = pcVar5 + 1;\n      if (sVar3 == 0xff) {\n        pvVar1 = dpi->opaque;\n        dpi->buf[0xff] = '\0';\n        (*dpi->callback)(dpi->buf,0xff,pvVar1);\n        dpi->flush_count = dpi->flush_count + 1;\n        sVar2 = 1;\n        sVar3 = 0;\n      }\n      else {\n        sVar2 = sVar3 + 1;\n      }\n      dpi->len = sVar2;\n      dpi->buf[sVar3] = cVar4;\n      dpi->last_char = cVar4;\n      if (pcVar5 == "") break;\n      cVar4 = *pcVar5;\n      sVar3 = sVar2;\n    }\n    break;\n  case DEMANGLE_COMPONENT_VOLATILE:\n  case DEMANGLE_COMPONENT_VOLATILE_THIS:\n    pcVar5 = "volatile";\n    cVar4 = ' ';\n    sVar3 = dpi->len;\n    while( true ) {\n      if (sVar3 == 0xff) {\n        pvVar1 = dpi->opaque;\n        dpi->buf[0xff] = '\0';\n        (*dpi->callback)(dpi->buf,0xff,pvVar1);\n        dpi->flush_count = dpi->flush_count + 1;\n        sVar2 = 1;\n        sVar3 = 0;\n      }\n      else {\n        sVar2 = sVar3 + 1;\n      }\n      dpi->len = sVar2;\n      dpi->buf[sVar3] = cVar4;\n      dpi->last_char = cVar4;\n      if (pcVar5 == "") break;\n      cVar4 = *pcVar5;\n      pcVar5 = pcVar5 + 1;\n      sVar3 = sVar2;\n    }\n    break;\n  case DEMANGLE_COMPONENT_CONST:\n  case DEMANGLE_COMPONENT_CONST_THIS:\n    pcVar5 = " const";\n    cVar4 = ' ';\n    sVar3 = dpi->len;\n    while( true ) {\n      if (sVar3 == 0xff) {\n        pvVar1 = dpi->opaque;\n        dpi->buf[0xff] = '\0';\n        (*dpi->callback)(dpi->buf,0xff,pvVar1);\n        dpi->flush_count = dpi->flush_count + 1;\n        sVar2 = 1;\n        sVar3 = 0;\n      }\n      else {\n        sVar2 = sVar3 + 1;\n      }\n      pcVar5 = pcVar5 + 1;\n      dpi->len = sVar2;\n      dpi->buf[sVar3] = cVar4;\n      dpi->last_char = cVar4;\n      if (pcVar5 == "") break;\n      cVar4 = *pcVar5;\n      sVar3 = sVar2;\n    }\n    break;\n  case DEMANGLE_COMPONENT_REFERENCE_THIS:\n    if (dpi->len == 0xff) {\n      dpi->buf[0xff] = '\0';\n      (*dpi->callback)(dpi->buf,0xff,dpi->opaque);\n      dpi->flush_count = dpi->flush_count + 1;\n      dpi->len = 0;\n    }\n    sVar2 = dpi->len;\n    sVar3 = sVar2 + 1;\n    dpi->len = sVar3;\n    dpi->buf[sVar2] = ' ';\n    dpi->last_char = ' ';\n    goto LAB_002e5807;\n  case DEMANGLE_COMPONENT_RVALUE_REFERENCE_THIS:\n    if (dpi->len == 0xff) {\n      dpi->buf[0xff] = '\0';\n      (*dpi->callback)(dpi->buf,0xff,dpi->opaque);\n      dpi->flush_count = dpi->flush_count + 1;\n      dpi->len = 0;\n    }\n    sVar2 = dpi->len;\n    sVar3 = sVar2 + 1;\n    dpi->len = sVar3;\n    dpi->buf[sVar2] = ' ';\n    dpi->last_char = ' ';\n    goto LAB_002e5867;\n  case DEMANGLE_COMPONENT_VENDOR_TYPE_QUAL:\n    if (dpi->len == 0xff) {\n      dpi->buf[0xff] = '\0';\n      (*dpi->callback)(dpi->buf,0xff,dpi->opaque);\n      dpi->flush_count = dpi->flush_count + 1;\n      dpi->len = 0;\n    }\n    sVar3 = dpi->len;\n    dpi->len = sVar3 + 1;\n    dpi->buf[sVar3] = ' ';\n    dpi->last_char = ' ';\n    mod = (mod->u).s_extended_operator.name;\n    goto switchD_002e52d3_caseD_4;\n  case DEMANGLE_COMPONENT_POINTER:\n    if ((options & 4U) == 0) {\n      if (dpi->len == 0xff) {\n        dpi->buf[0xff] = '\0';\n        (*dpi->callback)(dpi->buf,0xff,dpi->opaque);\n        dpi->flush_count = dpi->flush_count + 1;\n        dpi->len = 0;\n      }\n      sVar3 = dpi->len;\n      dpi->len = sVar3 + 1;\n      dpi->buf[sVar3] = '*';\n      dpi->last_char = '*';\n    }\n    break;\n  case DEMANGLE_COMPONENT_REFERENCE:\n    sVar3 = dpi->len;\nLAB_002e5807:\n    sVar2 = sVar3 + 1;\n    if (sVar3 == 0xff) {\n      pvVar1 = dpi->opaque;\n      dpi->buf[0xff] = '\0';\n      (*dpi->callback)(dpi->buf,0xff,pvVar1);\n      dpi->flush_count = dpi->flush_count + 1;\n      sVar2 = 1;\n      sVar3 = 0;\n    }\n    dpi->len = sVar2;\n    dpi->buf[sVar3] = '&';\n    dpi->last_char = '&';\n    break;\n  case DEMANGLE_COMPONENT_RVALUE_REFERENCE:\n    sVar3 = dpi->len;\nLAB_002e5867:\n    pcVar5 = "&&";\n    cVar4 = '&';\n    while( true ) {\n      if (sVar3 == 0xff) {\n        pvVar1 = dpi->opaque;\n        dpi->buf[0xff] = '\0';\n        (*dpi->callback)(dpi->buf,0xff,pvVar1);\n        dpi->flush_count = dpi->flush_count + 1;\n        sVar2 = 1;\n        sVar3 = 0;\n      }\n      else {\n        sVar2 = sVar3 + 1;\n      }\n      pcVar5 = pcVar5 + 1;\n      dpi->len = sVar2;\n      dpi->buf[sVar3] = cVar4;\n      dpi->last_char = cVar4;\n      if (pcVar5 == "") break;\n      cVar4 = *pcVar5;\n      sVar3 = sVar2;\n    }\n    break;\n  case DEMANGLE_COMPONENT_COMPLEX:\n    pcVar5 = "complex ";\n    cVar4 = 'c';\n    sVar3 = dpi->len;\n    while( true ) {\n      if (sVar3 == 0xff) {\n        pvVar1 = dpi->opaque;\n        dpi->buf[0xff] = '\0';\n        (*dpi->callback)(dpi->buf,0xff,pvVar1);\n        dpi->flush_count = dpi->flush_count + 1;\n        sVar2 = 1;\n        sVar3 = 0;\n      }\n      else {\n        sVar2 = sVar3 + 1;\n      }\n      pcVar5 = pcVar5 + 1;\n      dpi->len = sVar2;\n      dpi->buf[sVar3] = cVar4;\n      dpi->last_char = cVar4;\n      if (pcVar5 == "") break;\n      cVar4 = *pcVar5;\n      sVar3 = sVar2;\n    }\n    break;\n  case DEMANGLE_COMPONENT_IMAGINARY:\n    pcVar5 = "imaginary ";\n    cVar4 = 'i';\n    sVar3 = dpi->len;\n    while( true ) {\n      pcVar5 = pcVar5 + 1;\n      if (sVar3 == 0xff) {\n        pvVar1 = dpi->opaque;\n        dpi->buf[0xff] = '\0';\n        (*dpi->callback)(dpi->buf,0xff,pvVar1);\n        dpi->flush_count = dpi->flush_count + 1;\n        sVar2 = 1;\n        sVar3 = 0;\n      }\n      else {\n        sVar2 = sVar3 + 1;\n      }\n      dpi->len = sVar2;\n      dpi->buf[sVar3] = cVar4;\n      dpi->last_char = cVar4;\n      if (pcVar5 == "") break;\n      cVar4 = *pcVar5;\n      sVar3 = sVar2;\n    }\n    break;\n  case DEMANGLE_COMPONENT_PTRMEM_TYPE:\n    if (dpi->last_char != '(') {\n      sVar2 = dpi->len;\n      sVar3 = sVar2 + 1;\n      if (sVar2 == 0xff) {\n        pvVar1 = dpi->opaque;\n        dpi->buf[0xff] = '\0';\n        (*dpi->callback)(dpi->buf,0xff,pvVar1);\n        dpi->flush_count = dpi->flush_count + 1;\n        sVar3 = 1;\n        sVar2 = 0;\n      }\n      dpi->len = sVar3;\n      dpi->buf[sVar2] = ' ';\n      dpi->last_char = ' ';\n    }\n    pcVar5 = "::*";\n    cVar4 = ':';\n    d_print_comp(dpi,options,(mod->u).s_fixed.length);\n    sVar3 = dpi->len;\n    while( true ) {\n      if (sVar3 == 0xff) {\n        pvVar1 = dpi->opaque;\n        dpi->buf[0xff] = '\0';\n        (*dpi->callback)(dpi->buf,0xff,pvVar1);\n        dpi->flush_count = dpi->flush_count + 1;\n        sVar2 = 1;\n        sVar3 = 0;\n      }\n      else {\n        sVar2 = sVar3 + 1;\n      }\n      pcVar5 = pcVar5 + 1;\n      dpi->len = sVar2;\n      dpi->buf[sVar3] = cVar4;\n      dpi->last_char = cVar4;\n      if (pcVar5 == "") break;\n      cVar4 = *pcVar5;\n      sVar3 = sVar2;\n    }\n    break;\n  case DEMANGLE_COMPONENT_VECTOR_TYPE:\n    pcVar5 = " __vector(";\n    cVar4 = ' ';\n    sVar3 = dpi->len;\n    while( true ) {\n      pcVar5 = pcVar5 + 1;\n      if (sVar3 == 0xff) {\n        pvVar1 = dpi->opaque;\n        dpi->buf[0xff] = '\0';\n        (*dpi->callback)(dpi->buf,0xff,pvVar1);\n        dpi->flush_count = dpi->flush_count + 1;\n        sVar2 = 1;\n        sVar3 = 0;\n      }\n      else {\n        sVar2 = sVar3 + 1;\n      }\n      dpi->len = sVar2;\n      dpi->buf[sVar3] = cVar4;\n      dpi->last_char = cVar4;\n      if (pcVar5 == "") break;\n      cVar4 = *pcVar5;\n      sVar3 = sVar2;\n    }\n    dc = (mod->u).s_fixed.length;\n    goto LAB_002e5aba;\n  case DEMANGLE_COMPONENT_TRANSACTION_SAFE:\n    pcVar5 = " transaction_safe";\n    cVar4 = ' ';\n    sVar3 = dpi->len;\n    while( true ) {\n      pcVar5 = pcVar5 + 1;\n      if (sVar3 == 0xff) {\n        pvVar1 = dpi->opaque;\n        dpi->buf[0xff] = '\0';\n        (*dpi->callback)(dpi->buf,0xff,pvVar1);\n        dpi->flush_count = dpi->flush_count + 1;\n        sVar2 = 1;\n        sVar3 = 0;\n      }\n      else {\n        sVar2 = sVar3 + 1;\n      }\n      dpi->len = sVar2;\n      dpi->buf[sVar3] = cVar4;\n      dpi->last_char = cVar4;\n      if (pcVar5 == "") break;\n      cVar4 = *pcVar5;\n      sVar3 = sVar2;\n    }\n    break;\n  case DEMANGLE_COMPONENT_NOEXCEPT:\n    pcVar5 = " noexcept";\n    cVar4 = ' ';\n    sVar3 = dpi->len;\n    while( true ) {\n      pcVar5 = pcVar5 + 1;\n      if (sVar3 == 0xff) {\n        pvVar1 = dpi->opaque;\n        dpi->buf[0xff] = '\0';\n        (*dpi->callback)(dpi->buf,0xff,pvVar1);\n        dpi->flush_count = dpi->flush_count + 1;\n        sVar2 = 1;\n        sVar3 = 0;\n      }\n      else {\n        sVar2 = sVar3 + 1;\n      }\n      dpi->len = sVar2;\n      dpi->buf[sVar3] = cVar4;\n      dpi->last_char = cVar4;\n      if (pcVar5 == "") break;\n      cVar4 = *pcVar5;\n      sVar3 = sVar2;\n    }\n    goto LAB_002e5a60;\n  case DEMANGLE_COMPONENT_THROW_SPEC:\n    pcVar5 = " throw";\n    cVar4 = ' ';\n    sVar3 = dpi->len;\n    while( true ) {\n      if (sVar3 == 0xff) {\n        pvVar1 = dpi->opaque;\n        dpi->buf[0xff] = '\0';\n        (*dpi->callback)(dpi->buf,0xff,pvVar1);\n        dpi->flush_count = dpi->flush_count + 1;\n        sVar2 = 1;\n        sVar3 = 0;\n      }\n      else {\n        sVar2 = sVar3 + 1;\n      }\n      pcVar5 = pcVar5 + 1;\n      dpi->len = sVar2;\n      dpi->buf[sVar3] = cVar4;\n      dpi->last_char = cVar4;\n      if (pcVar5 == "") break;\n      cVar4 = *pcVar5;\n      sVar3 = sVar2;\n    }\nLAB_002e5a60:\n    dc = (mod->u).s_extended_operator.name;\n    if (dc != (demangle_component *)0x0) {\n      sVar3 = sVar2 + 1;\n      if (sVar2 == 0xff) {\n        pvVar1 = dpi->opaque;\n        dpi->buf[0xff] = '\0';\n        (*dpi->callback)(dpi->buf,0xff,pvVar1);\n        dpi->flush_count = dpi->flush_count + 1;\n        dc = (mod->u).s_extended_operator.name;\n        sVar2 = 0;\n        sVar3 = 1;\n      }\n      dpi->len = sVar3;\n      dpi->buf[sVar2] = '(';\n      dpi->last_char = '(';\nLAB_002e5aba:\n      d_print_comp(dpi,options,dc);\n      sVar2 = dpi->len;\n      sVar3 = sVar2 + 1;\n      if (sVar2 == 0xff) {\n        pvVar1 = dpi->opaque;\n        dpi->buf[0xff] = '\0';\n        (*dpi->callback)(dpi->buf,0xff,pvVar1);\n        dpi->flush_count = dpi->flush_count + 1;\n        sVar3 = 1;\n        sVar2 = 0;\n      }\n      dpi->len = sVar3;\n      dpi->buf[sVar2] = ')';\n      dpi->last_char = ')';\n      return;\n    }\n    break;\n  default:\n    d_print_comp(dpi,options,mod);\n    return;\n  }\n  return;\n}" { (declaration "void *pvVar1;" primitive_type (pointer_declarator "*pvVar1" * identifier) ;) (declaration "size_t sVar2;" primitive_type identifier ;) (declaration "size_t sVar3;" primitive_type identifier ;) (declaration "demangle_component *dc;" type_identifier (pointer_declarator "*dc" * identifier) ;) (declaration "char cVar4;" primitive_type identifier ;) (declaration "char *pcVar5;" primitive_type (pointer_declarator "*pcVar5" * identifier) ;) (switch_statement "switch(mod->type) {\n  case DEMANGLE_COMPONENT_TYPED_NAME:\n    mod = (mod->u).s_fixed.length;\n  case DEMANGLE_COMPONENT_TEMPLATE:\n  case DEMANGLE_COMPONENT_TEMPLATE_PARAM:\n  case DEMANGLE_COMPONENT_FUNCTION_PARAM:\n  case DEMANGLE_COMPONENT_CTOR:\n  case DEMANGLE_COMPONENT_DTOR:\n  case DEMANGLE_COMPONENT_VTABLE:\n  case DEMANGLE_COMPONENT_VTT:\n  case DEMANGLE_COMPONENT_CONSTRUCTION_VTABLE:\n  case DEMANGLE_COMPONENT_TYPEINFO:\n  case DEMANGLE_COMPONENT_TYPEINFO_NAME:\n  case DEMANGLE_COMPONENT_TYPEINFO_FN:\n  case DEMANGLE_COMPONENT_THUNK:\n  case DEMANGLE_COMPONENT_VIRTUAL_THUNK:\n  case DEMANGLE_COMPONENT_COVARIANT_THUNK:\n  case DEMANGLE_COMPONENT_JAVA_CLASS:\n  case DEMANGLE_COMPONENT_GUARD:\n  case DEMANGLE_COMPONENT_TLS_INIT:\n  case DEMANGLE_COMPONENT_TLS_WRAPPER:\n  case DEMANGLE_COMPONENT_REFTEMP:\n  case DEMANGLE_COMPONENT_HIDDEN_ALIAS:\n  case DEMANGLE_COMPONENT_SUB_STD:\n  case DEMANGLE_COMPONENT_BUILTIN_TYPE:\n  case DEMANGLE_COMPONENT_VENDOR_TYPE:\n  case DEMANGLE_COMPONENT_FUNCTION_TYPE:\n  case DEMANGLE_COMPONENT_ARRAY_TYPE:\n  case DEMANGLE_COMPONENT_FIXED_TYPE:\n  case DEMANGLE_COMPONENT_ARGLIST:\n  case DEMANGLE_COMPONENT_TEMPLATE_ARGLIST:\n  case DEMANGLE_COMPONENT_INITIALIZER_LIST:\n  case DEMANGLE_COMPONENT_OPERATOR:\n  case DEMANGLE_COMPONENT_EXTENDED_OPERATOR:\n  case DEMANGLE_COMPONENT_CAST:\n  case DEMANGLE_COMPONENT_CONVERSION:\n  case DEMANGLE_COMPONENT_NULLARY:\n  case DEMANGLE_COMPONENT_UNARY:\n  case DEMANGLE_COMPONENT_BINARY:\n  case DEMANGLE_COMPONENT_BINARY_ARGS:\n  case DEMANGLE_COMPONENT_TRINARY:\n  case DEMANGLE_COMPONENT_TRINARY_ARG1:\n  case DEMANGLE_COMPONENT_TRINARY_ARG2:\n  case DEMANGLE_COMPONENT_LITERAL:\n  case DEMANGLE_COMPONENT_LITERAL_NEG:\n  case DEMANGLE_COMPONENT_JAVA_RESOURCE:\n  case DEMANGLE_COMPONENT_COMPOUND_NAME:\n  case DEMANGLE_COMPONENT_CHARACTER:\n  case DEMANGLE_COMPONENT_NUMBER:\n  case DEMANGLE_COMPONENT_DECLTYPE:\n  case DEMANGLE_COMPONENT_GLOBAL_CONSTRUCTORS:\n  case DEMANGLE_COMPONENT_GLOBAL_DESTRUCTORS:\n  case DEMANGLE_COMPONENT_LAMBDA:\n  case DEMANGLE_COMPONENT_DEFAULT_ARG:\n  case DEMANGLE_COMPONENT_UNNAMED_TYPE:\n  case DEMANGLE_COMPONENT_TRANSACTION_CLONE:\n  case DEMANGLE_COMPONENT_NONTRANSACTION_CLONE:\n  case DEMANGLE_COMPONENT_PACK_EXPANSION:\n  case DEMANGLE_COMPONENT_TAGGED_NAME:\n  case DEMANGLE_COMPONENT_CLONE:\nswitchD_002e52d3_caseD_4:\n    d_print_comp(dpi,options,mod);\n    return;\n  case DEMANGLE_COMPONENT_RESTRICT:\n  case DEMANGLE_COMPONENT_RESTRICT_THIS:\n    pcVar5 = " restrict";\n    cVar4 = ' ';\n    sVar3 = dpi->len;\n    while( true ) {\n      pcVar5 = pcVar5 + 1;\n      if (sVar3 == 0xff) {\n        pvVar1 = dpi->opaque;\n        dpi->buf[0xff] = '\0';\n        (*dpi->callback)(dpi->buf,0xff,pvVar1);\n        dpi->flush_count = dpi->flush_count + 1;\n        sVar2 = 1;\n        sVar3 = 0;\n      }\n      else {\n        sVar2 = sVar3 + 1;\n      }\n      dpi->len = sVar2;\n      dpi->buf[sVar3] = cVar4;\n      dpi->last_char = cVar4;\n      if (pcVar5 == "") break;\n      cVar4 = *pcVar5;\n      sVar3 = sVar2;\n    }\n    break;\n  case DEMANGLE_COMPONENT_VOLATILE:\n  case DEMANGLE_COMPONENT_VOLATILE_THIS:\n    pcVar5 = "volatile";\n    cVar4 = ' ';\n    sVar3 = dpi->len;\n    while( true ) {\n      if (sVar3 == 0xff) {\n        pvVar1 = dpi->opaque;\n        dpi->buf[0xff] = '\0';\n        (*dpi->callback)(dpi->buf,0xff,pvVar1);\n        dpi->flush_count = dpi->flush_count + 1;\n        sVar2 = 1;\n        sVar3 = 0;\n      }\n      else {\n        sVar2 = sVar3 + 1;\n      }\n      dpi->len = sVar2;\n      dpi->buf[sVar3] = cVar4;\n      dpi->last_char = cVar4;\n      if (pcVar5 == "") break;\n      cVar4 = *pcVar5;\n      pcVar5 = pcVar5 + 1;\n      sVar3 = sVar2;\n    }\n    break;\n  case DEMANGLE_COMPONENT_CONST:\n  case DEMANGLE_COMPONENT_CONST_THIS:\n    pcVar5 = " const";\n    cVar4 = ' ';\n    sVar3 = dpi->len;\n    while( true ) {\n      if (sVar3 == 0xff) {\n        pvVar1 = dpi->opaque;\n        dpi->buf[0xff] = '\0';\n        (*dpi->callback)(dpi->buf,0xff,pvVar1);\n        dpi->flush_count = dpi->flush_count + 1;\n        sVar2 = 1;\n        sVar3 = 0;\n      }\n      else {\n        sVar2 = sVar3 + 1;\n      }\n      pcVar5 = pcVar5 + 1;\n      dpi->len = sVar2;\n      dpi->buf[sVar3] = cVar4;\n      dpi->last_char = cVar4;\n      if (pcVar5 == "") break;\n      cVar4 = *pcVar5;\n      sVar3 = sVar2;\n    }\n    break;\n  case DEMANGLE_COMPONENT_REFERENCE_THIS:\n    if (dpi->len == 0xff) {\n      dpi->buf[0xff] = '\0';\n      (*dpi->callback)(dpi->buf,0xff,dpi->opaque);\n      dpi->flush_count = dpi->flush_count + 1;\n      dpi->len = 0;\n    }\n    sVar2 = dpi->len;\n    sVar3 = sVar2 + 1;\n    dpi->len = sVar3;\n    dpi->buf[sVar2] = ' ';\n    dpi->last_char = ' ';\n    goto LAB_002e5807;\n  case DEMANGLE_COMPONENT_RVALUE_REFERENCE_THIS:\n    if (dpi->len == 0xff) {\n      dpi->buf[0xff] = '\0';\n      (*dpi->callback)(dpi->buf,0xff,dpi->opaque);\n      dpi->flush_count = dpi->flush_count + 1;\n      dpi->len = 0;\n    }\n    sVar2 = dpi->len;\n    sVar3 = sVar2 + 1;\n    dpi->len = sVar3;\n    dpi->buf[sVar2] = ' ';\n    dpi->last_char = ' ';\n    goto LAB_002e5867;\n  case DEMANGLE_COMPONENT_VENDOR_TYPE_QUAL:\n    if (dpi->len == 0xff) {\n      dpi->buf[0xff] = '\0';\n      (*dpi->callback)(dpi->buf,0xff,dpi->opaque);\n      dpi->flush_count = dpi->flush_count + 1;\n      dpi->len = 0;\n    }\n    sVar3 = dpi->len;\n    dpi->len = sVar3 + 1;\n    dpi->buf[sVar3] = ' ';\n    dpi->last_char = ' ';\n    mod = (mod->u).s_extended_operator.name;\n    goto switchD_002e52d3_caseD_4;\n  case DEMANGLE_COMPONENT_POINTER:\n    if ((options & 4U) == 0) {\n      if (dpi->len == 0xff) {\n        dpi->buf[0xff] = '\0';\n        (*dpi->callback)(dpi->buf,0xff,dpi->opaque);\n        dpi->flush_count = dpi->flush_count + 1;\n        dpi->len = 0;\n      }\n      sVar3 = dpi->len;\n      dpi->len = sVar3 + 1;\n      dpi->buf[sVar3] = '*';\n      dpi->last_char = '*';\n    }\n    break;\n  case DEMANGLE_COMPONENT_REFERENCE:\n    sVar3 = dpi->len;\nLAB_002e5807:\n    sVar2 = sVar3 + 1;\n    if (sVar3 == 0xff) {\n      pvVar1 = dpi->opaque;\n      dpi->buf[0xff] = '\0';\n      (*dpi->callback)(dpi->buf,0xff,pvVar1);\n      dpi->flush_count = dpi->flush_count + 1;\n      sVar2 = 1;\n      sVar3 = 0;\n    }\n    dpi->len = sVar2;\n    dpi->buf[sVar3] = '&';\n    dpi->last_char = '&';\n    break;\n  case DEMANGLE_COMPONENT_RVALUE_REFERENCE:\n    sVar3 = dpi->len;\nLAB_002e5867:\n    pcVar5 = "&&";\n    cVar4 = '&';\n    while( true ) {\n      if (sVar3 == 0xff) {\n        pvVar1 = dpi->opaque;\n        dpi->buf[0xff] = '\0';\n        (*dpi->callback)(dpi->buf,0xff,pvVar1);\n        dpi->flush_count = dpi->flush_count + 1;\n        sVar2 = 1;\n        sVar3 = 0;\n      }\n      else {\n        sVar2 = sVar3 + 1;\n      }\n      pcVar5 = pcVar5 + 1;\n      dpi->len = sVar2;\n      dpi->buf[sVar3] = cVar4;\n      dpi->last_char = cVar4;\n      if (pcVar5 == "") break;\n      cVar4 = *pcVar5;\n      sVar3 = sVar2;\n    }\n    break;\n  case DEMANGLE_COMPONENT_COMPLEX:\n    pcVar5 = "complex ";\n    cVar4 = 'c';\n    sVar3 = dpi->len;\n    while( true ) {\n      if (sVar3 == 0xff) {\n        pvVar1 = dpi->opaque;\n        dpi->buf[0xff] = '\0';\n        (*dpi->callback)(dpi->buf,0xff,pvVar1);\n        dpi->flush_count = dpi->flush_count + 1;\n        sVar2 = 1;\n        sVar3 = 0;\n      }\n      else {\n        sVar2 = sVar3 + 1;\n      }\n      pcVar5 = pcVar5 + 1;\n      dpi->len = sVar2;\n      dpi->buf[sVar3] = cVar4;\n      dpi->last_char = cVar4;\n      if (pcVar5 == "") break;\n      cVar4 = *pcVar5;\n      sVar3 = sVar2;\n    }\n    break;\n  case DEMANGLE_COMPONENT_IMAGINARY:\n    pcVar5 = "imaginary ";\n    cVar4 = 'i';\n    sVar3 = dpi->len;\n    while( true ) {\n      pcVar5 = pcVar5 + 1;\n      if (sVar3 == 0xff) {\n        pvVar1 = dpi->opaque;\n        dpi->buf[0xff] = '\0';\n        (*dpi->callback)(dpi->buf,0xff,pvVar1);\n        dpi->flush_count = dpi->flush_count + 1;\n        sVar2 = 1;\n        sVar3 = 0;\n      }\n      else {\n        sVar2 = sVar3 + 1;\n      }\n      dpi->len = sVar2;\n      dpi->buf[sVar3] = cVar4;\n      dpi->last_char = cVar4;\n      if (pcVar5 == "") break;\n      cVar4 = *pcVar5;\n      sVar3 = sVar2;\n    }\n    break;\n  case DEMANGLE_COMPONENT_PTRMEM_TYPE:\n    if (dpi->last_char != '(') {\n      sVar2 = dpi->len;\n      sVar3 = sVar2 + 1;\n      if (sVar2 == 0xff) {\n        pvVar1 = dpi->opaque;\n        dpi->buf[0xff] = '\0';\n        (*dpi->callback)(dpi->buf,0xff,pvVar1);\n        dpi->flush_count = dpi->flush_count + 1;\n        sVar3 = 1;\n        sVar2 = 0;\n      }\n      dpi->len = sVar3;\n      dpi->buf[sVar2] = ' ';\n      dpi->last_char = ' ';\n    }\n    pcVar5 = "::*";\n    cVar4 = ':';\n    d_print_comp(dpi,options,(mod->u).s_fixed.length);\n    sVar3 = dpi->len;\n    while( true ) {\n      if (sVar3 == 0xff) {\n        pvVar1 = dpi->opaque;\n        dpi->buf[0xff] = '\0';\n        (*dpi->callback)(dpi->buf,0xff,pvVar1);\n        dpi->flush_count = dpi->flush_count + 1;\n        sVar2 = 1;\n        sVar3 = 0;\n      }\n      else {\n        sVar2 = sVar3 + 1;\n      }\n      pcVar5 = pcVar5 + 1;\n      dpi->len = sVar2;\n      dpi->buf[sVar3] = cVar4;\n      dpi->last_char = cVar4;\n      if (pcVar5 == "") break;\n      cVar4 = *pcVar5;\n      sVar3 = sVar2;\n    }\n    break;\n  case DEMANGLE_COMPONENT_VECTOR_TYPE:\n    pcVar5 = " __vector(";\n    cVar4 = ' ';\n    sVar3 = dpi->len;\n    while( true ) {\n      pcVar5 = pcVar5 + 1;\n      if (sVar3 == 0xff) {\n        pvVar1 = dpi->opaque;\n        dpi->buf[0xff] = '\0';\n        (*dpi->callback)(dpi->buf,0xff,pvVar1);\n        dpi->flush_count = dpi->flush_count + 1;\n        sVar2 = 1;\n        sVar3 = 0;\n      }\n      else {\n        sVar2 = sVar3 + 1;\n      }\n      dpi->len = sVar2;\n      dpi->buf[sVar3] = cVar4;\n      dpi->last_char = cVar4;\n      if (pcVar5 == "") break;\n      cVar4 = *pcVar5;\n      sVar3 = sVar2;\n    }\n    dc = (mod->u).s_fixed.length;\n    goto LAB_002e5aba;\n  case DEMANGLE_COMPONENT_TRANSACTION_SAFE:\n    pcVar5 = " transaction_safe";\n    cVar4 = ' ';\n    sVar3 = dpi->len;\n    while( true ) {\n      pcVar5 = pcVar5 + 1;\n      if (sVar3 == 0xff) {\n        pvVar1 = dpi->opaque;\n        dpi->buf[0xff] = '\0';\n        (*dpi->callback)(dpi->buf,0xff,pvVar1);\n        dpi->flush_count = dpi->flush_count + 1;\n        sVar2 = 1;\n        sVar3 = 0;\n      }\n      else {\n        sVar2 = sVar3 + 1;\n      }\n      dpi->len = sVar2;\n      dpi->buf[sVar3] = cVar4;\n      dpi->last_char = cVar4;\n      if (pcVar5 == "") break;\n      cVar4 = *pcVar5;\n      sVar3 = sVar2;\n    }\n    break;\n  case DEMANGLE_COMPONENT_NOEXCEPT:\n    pcVar5 = " noexcept";\n    cVar4 = ' ';\n    sVar3 = dpi->len;\n    while( true ) {\n      pcVar5 = pcVar5 + 1;\n      if (sVar3 == 0xff) {\n        pvVar1 = dpi->opaque;\n        dpi->buf[0xff] = '\0';\n        (*dpi->callback)(dpi->buf,0xff,pvVar1);\n        dpi->flush_count = dpi->flush_count + 1;\n        sVar2 = 1;\n        sVar3 = 0;\n      }\n      else {\n        sVar2 = sVar3 + 1;\n      }\n      dpi->len = sVar2;\n      dpi->buf[sVar3] = cVar4;\n      dpi->last_char = cVar4;\n      if (pcVar5 == "") break;\n      cVar4 = *pcVar5;\n      sVar3 = sVar2;\n    }\n    goto LAB_002e5a60;\n  case DEMANGLE_COMPONENT_THROW_SPEC:\n    pcVar5 = " throw";\n    cVar4 = ' ';\n    sVar3 = dpi->len;\n    while( true ) {\n      if (sVar3 == 0xff) {\n        pvVar1 = dpi->opaque;\n        dpi->buf[0xff] = '\0';\n        (*dpi->callback)(dpi->buf,0xff,pvVar1);\n        dpi->flush_count = dpi->flush_count + 1;\n        sVar2 = 1;\n        sVar3 = 0;\n      }\n      else {\n        sVar2 = sVar3 + 1;\n      }\n      pcVar5 = pcVar5 + 1;\n      dpi->len = sVar2;\n      dpi->buf[sVar3] = cVar4;\n      dpi->last_char = cVar4;\n      if (pcVar5 == "") break;\n      cVar4 = *pcVar5;\n      sVar3 = sVar2;\n    }\nLAB_002e5a60:\n    dc = (mod->u).s_extended_operator.name;\n    if (dc != (demangle_component *)0x0) {\n      sVar3 = sVar2 + 1;\n      if (sVar2 == 0xff) {\n        pvVar1 = dpi->opaque;\n        dpi->buf[0xff] = '\0';\n        (*dpi->callback)(dpi->buf,0xff,pvVar1);\n        dpi->flush_count = dpi->flush_count + 1;\n        dc = (mod->u).s_extended_operator.name;\n        sVar2 = 0;\n        sVar3 = 1;\n      }\n      dpi->len = sVar3;\n      dpi->buf[sVar2] = '(';\n      dpi->last_char = '(';\nLAB_002e5aba:\n      d_print_comp(dpi,options,dc);\n      sVar2 = dpi->len;\n      sVar3 = sVar2 + 1;\n      if (sVar2 == 0xff) {\n        pvVar1 = dpi->opaque;\n        dpi->buf[0xff] = '\0';\n        (*dpi->callback)(dpi->buf,0xff,pvVar1);\n        dpi->flush_count = dpi->flush_count + 1;\n        sVar3 = 1;\n        sVar2 = 0;\n      }\n      dpi->len = sVar3;\n      dpi->buf[sVar2] = ')';\n      dpi->last_char = ')';\n      return;\n    }\n    break;\n  default:\n    d_print_comp(dpi,options,mod);\n    return;\n  }" switch (parenthesized_expression "(mod->type)" ( (field_expression "mod->type" identifier -> field_identifier) )) (compound_statement "{\n  case DEMANGLE_COMPONENT_TYPED_NAME:\n    mod = (mod->u).s_fixed.length;\n  case DEMANGLE_COMPONENT_TEMPLATE:\n  case DEMANGLE_COMPONENT_TEMPLATE_PARAM:\n  case DEMANGLE_COMPONENT_FUNCTION_PARAM:\n  case DEMANGLE_COMPONENT_CTOR:\n  case DEMANGLE_COMPONENT_DTOR:\n  case DEMANGLE_COMPONENT_VTABLE:\n  case DEMANGLE_COMPONENT_VTT:\n  case DEMANGLE_COMPONENT_CONSTRUCTION_VTABLE:\n  case DEMANGLE_COMPONENT_TYPEINFO:\n  case DEMANGLE_COMPONENT_TYPEINFO_NAME:\n  case DEMANGLE_COMPONENT_TYPEINFO_FN:\n  case DEMANGLE_COMPONENT_THUNK:\n  case DEMANGLE_COMPONENT_VIRTUAL_THUNK:\n  case DEMANGLE_COMPONENT_COVARIANT_THUNK:\n  case DEMANGLE_COMPONENT_JAVA_CLASS:\n  case DEMANGLE_COMPONENT_GUARD:\n  case DEMANGLE_COMPONENT_TLS_INIT:\n  case DEMANGLE_COMPONENT_TLS_WRAPPER:\n  case DEMANGLE_COMPONENT_REFTEMP:\n  case DEMANGLE_COMPONENT_HIDDEN_ALIAS:\n  case DEMANGLE_COMPONENT_SUB_STD:\n  case DEMANGLE_COMPONENT_BUILTIN_TYPE:\n  case DEMANGLE_COMPONENT_VENDOR_TYPE:\n  case DEMANGLE_COMPONENT_FUNCTION_TYPE:\n  case DEMANGLE_COMPONENT_ARRAY_TYPE:\n  case DEMANGLE_COMPONENT_FIXED_TYPE:\n  case DEMANGLE_COMPONENT_ARGLIST:\n  case DEMANGLE_COMPONENT_TEMPLATE_ARGLIST:\n  case DEMANGLE_COMPONENT_INITIALIZER_LIST:\n  case DEMANGLE_COMPONENT_OPERATOR:\n  case DEMANGLE_COMPONENT_EXTENDED_OPERATOR:\n  case DEMANGLE_COMPONENT_CAST:\n  case DEMANGLE_COMPONENT_CONVERSION:\n  case DEMANGLE_COMPONENT_NULLARY:\n  case DEMANGLE_COMPONENT_UNARY:\n  case DEMANGLE_COMPONENT_BINARY:\n  case DEMANGLE_COMPONENT_BINARY_ARGS:\n  case DEMANGLE_COMPONENT_TRINARY:\n  case DEMANGLE_COMPONENT_TRINARY_ARG1:\n  case DEMANGLE_COMPONENT_TRINARY_ARG2:\n  case DEMANGLE_COMPONENT_LITERAL:\n  case DEMANGLE_COMPONENT_LITERAL_NEG:\n  case DEMANGLE_COMPONENT_JAVA_RESOURCE:\n  case DEMANGLE_COMPONENT_COMPOUND_NAME:\n  case DEMANGLE_COMPONENT_CHARACTER:\n  case DEMANGLE_COMPONENT_NUMBER:\n  case DEMANGLE_COMPONENT_DECLTYPE:\n  case DEMANGLE_COMPONENT_GLOBAL_CONSTRUCTORS:\n  case DEMANGLE_COMPONENT_GLOBAL_DESTRUCTORS:\n  case DEMANGLE_COMPONENT_LAMBDA:\n  case DEMANGLE_COMPONENT_DEFAULT_ARG:\n  case DEMANGLE_COMPONENT_UNNAMED_TYPE:\n  case DEMANGLE_COMPONENT_TRANSACTION_CLONE:\n  case DEMANGLE_COMPONENT_NONTRANSACTION_CLONE:\n  case DEMANGLE_COMPONENT_PACK_EXPANSION:\n  case DEMANGLE_COMPONENT_TAGGED_NAME:\n  case DEMANGLE_COMPONENT_CLONE:\nswitchD_002e52d3_caseD_4:\n    d_print_comp(dpi,options,mod);\n    return;\n  case DEMANGLE_COMPONENT_RESTRICT:\n  case DEMANGLE_COMPONENT_RESTRICT_THIS:\n    pcVar5 = " restrict";\n    cVar4 = ' ';\n    sVar3 = dpi->len;\n    while( true ) {\n      pcVar5 = pcVar5 + 1;\n      if (sVar3 == 0xff) {\n        pvVar1 = dpi->opaque;\n        dpi->buf[0xff] = '\0';\n        (*dpi->callback)(dpi->buf,0xff,pvVar1);\n        dpi->flush_count = dpi->flush_count + 1;\n        sVar2 = 1;\n        sVar3 = 0;\n      }\n      else {\n        sVar2 = sVar3 + 1;\n      }\n      dpi->len = sVar2;\n      dpi->buf[sVar3] = cVar4;\n      dpi->last_char = cVar4;\n      if (pcVar5 == "") break;\n      cVar4 = *pcVar5;\n      sVar3 = sVar2;\n    }\n    break;\n  case DEMANGLE_COMPONENT_VOLATILE:\n  case DEMANGLE_COMPONENT_VOLATILE_THIS:\n    pcVar5 = "volatile";\n    cVar4 = ' ';\n    sVar3 = dpi->len;\n    while( true ) {\n      if (sVar3 == 0xff) {\n        pvVar1 = dpi->opaque;\n        dpi->buf[0xff] = '\0';\n        (*dpi->callback)(dpi->buf,0xff,pvVar1);\n        dpi->flush_count = dpi->flush_count + 1;\n        sVar2 = 1;\n        sVar3 = 0;\n      }\n      else {\n        sVar2 = sVar3 + 1;\n      }\n      dpi->len = sVar2;\n      dpi->buf[sVar3] = cVar4;\n      dpi->last_char = cVar4;\n      if (pcVar5 == "") break;\n      cVar4 = *pcVar5;\n      pcVar5 = pcVar5 + 1;\n      sVar3 = sVar2;\n    }\n    break;\n  case DEMANGLE_COMPONENT_CONST:\n  case DEMANGLE_COMPONENT_CONST_THIS:\n    pcVar5 = " const";\n    cVar4 = ' ';\n    sVar3 = dpi->len;\n    while( true ) {\n      if (sVar3 == 0xff) {\n        pvVar1 = dpi->opaque;\n        dpi->buf[0xff] = '\0';\n        (*dpi->callback)(dpi->buf,0xff,pvVar1);\n        dpi->flush_count = dpi->flush_count + 1;\n        sVar2 = 1;\n        sVar3 = 0;\n      }\n      else {\n        sVar2 = sVar3 + 1;\n      }\n      pcVar5 = pcVar5 + 1;\n      dpi->len = sVar2;\n      dpi->buf[sVar3] = cVar4;\n      dpi->last_char = cVar4;\n      if (pcVar5 == "") break;\n      cVar4 = *pcVar5;\n      sVar3 = sVar2;\n    }\n    break;\n  case DEMANGLE_COMPONENT_REFERENCE_THIS:\n    if (dpi->len == 0xff) {\n      dpi->buf[0xff] = '\0';\n      (*dpi->callback)(dpi->buf,0xff,dpi->opaque);\n      dpi->flush_count = dpi->flush_count + 1;\n      dpi->len = 0;\n    }\n    sVar2 = dpi->len;\n    sVar3 = sVar2 + 1;\n    dpi->len = sVar3;\n    dpi->buf[sVar2] = ' ';\n    dpi->last_char = ' ';\n    goto LAB_002e5807;\n  case DEMANGLE_COMPONENT_RVALUE_REFERENCE_THIS:\n    if (dpi->len == 0xff) {\n      dpi->buf[0xff] = '\0';\n      (*dpi->callback)(dpi->buf,0xff,dpi->opaque);\n      dpi->flush_count = dpi->flush_count + 1;\n      dpi->len = 0;\n    }\n    sVar2 = dpi->len;\n    sVar3 = sVar2 + 1;\n    dpi->len = sVar3;\n    dpi->buf[sVar2] = ' ';\n    dpi->last_char = ' ';\n    goto LAB_002e5867;\n  case DEMANGLE_COMPONENT_VENDOR_TYPE_QUAL:\n    if (dpi->len == 0xff) {\n      dpi->buf[0xff] = '\0';\n      (*dpi->callback)(dpi->buf,0xff,dpi->opaque);\n      dpi->flush_count = dpi->flush_count + 1;\n      dpi->len = 0;\n    }\n    sVar3 = dpi->len;\n    dpi->len = sVar3 + 1;\n    dpi->buf[sVar3] = ' ';\n    dpi->last_char = ' ';\n    mod = (mod->u).s_extended_operator.name;\n    goto switchD_002e52d3_caseD_4;\n  case DEMANGLE_COMPONENT_POINTER:\n    if ((options & 4U) == 0) {\n      if (dpi->len == 0xff) {\n        dpi->buf[0xff] = '\0';\n        (*dpi->callback)(dpi->buf,0xff,dpi->opaque);\n        dpi->flush_count = dpi->flush_count + 1;\n        dpi->len = 0;\n      }\n      sVar3 = dpi->len;\n      dpi->len = sVar3 + 1;\n      dpi->buf[sVar3] = '*';\n      dpi->last_char = '*';\n    }\n    break;\n  case DEMANGLE_COMPONENT_REFERENCE:\n    sVar3 = dpi->len;\nLAB_002e5807:\n    sVar2 = sVar3 + 1;\n    if (sVar3 == 0xff) {\n      pvVar1 = dpi->opaque;\n      dpi->buf[0xff] = '\0';\n      (*dpi->callback)(dpi->buf,0xff,pvVar1);\n      dpi->flush_count = dpi->flush_count + 1;\n      sVar2 = 1;\n      sVar3 = 0;\n    }\n    dpi->len = sVar2;\n    dpi->buf[sVar3] = '&';\n    dpi->last_char = '&';\n    break;\n  case DEMANGLE_COMPONENT_RVALUE_REFERENCE:\n    sVar3 = dpi->len;\nLAB_002e5867:\n    pcVar5 = "&&";\n    cVar4 = '&';\n    while( true ) {\n      if (sVar3 == 0xff) {\n        pvVar1 = dpi->opaque;\n        dpi->buf[0xff] = '\0';\n        (*dpi->callback)(dpi->buf,0xff,pvVar1);\n        dpi->flush_count = dpi->flush_count + 1;\n        sVar2 = 1;\n        sVar3 = 0;\n      }\n      else {\n        sVar2 = sVar3 + 1;\n      }\n      pcVar5 = pcVar5 + 1;\n      dpi->len = sVar2;\n      dpi->buf[sVar3] = cVar4;\n      dpi->last_char = cVar4;\n      if (pcVar5 == "") break;\n      cVar4 = *pcVar5;\n      sVar3 = sVar2;\n    }\n    break;\n  case DEMANGLE_COMPONENT_COMPLEX:\n    pcVar5 = "complex ";\n    cVar4 = 'c';\n    sVar3 = dpi->len;\n    while( true ) {\n      if (sVar3 == 0xff) {\n        pvVar1 = dpi->opaque;\n        dpi->buf[0xff] = '\0';\n        (*dpi->callback)(dpi->buf,0xff,pvVar1);\n        dpi->flush_count = dpi->flush_count + 1;\n        sVar2 = 1;\n        sVar3 = 0;\n      }\n      else {\n        sVar2 = sVar3 + 1;\n      }\n      pcVar5 = pcVar5 + 1;\n      dpi->len = sVar2;\n      dpi->buf[sVar3] = cVar4;\n      dpi->last_char = cVar4;\n      if (pcVar5 == "") break;\n      cVar4 = *pcVar5;\n      sVar3 = sVar2;\n    }\n    break;\n  case DEMANGLE_COMPONENT_IMAGINARY:\n    pcVar5 = "imaginary ";\n    cVar4 = 'i';\n    sVar3 = dpi->len;\n    while( true ) {\n      pcVar5 = pcVar5 + 1;\n      if (sVar3 == 0xff) {\n        pvVar1 = dpi->opaque;\n        dpi->buf[0xff] = '\0';\n        (*dpi->callback)(dpi->buf,0xff,pvVar1);\n        dpi->flush_count = dpi->flush_count + 1;\n        sVar2 = 1;\n        sVar3 = 0;\n      }\n      else {\n        sVar2 = sVar3 + 1;\n      }\n      dpi->len = sVar2;\n      dpi->buf[sVar3] = cVar4;\n      dpi->last_char = cVar4;\n      if (pcVar5 == "") break;\n      cVar4 = *pcVar5;\n      sVar3 = sVar2;\n    }\n    break;\n  case DEMANGLE_COMPONENT_PTRMEM_TYPE:\n    if (dpi->last_char != '(') {\n      sVar2 = dpi->len;\n      sVar3 = sVar2 + 1;\n      if (sVar2 == 0xff) {\n        pvVar1 = dpi->opaque;\n        dpi->buf[0xff] = '\0';\n        (*dpi->callback)(dpi->buf,0xff,pvVar1);\n        dpi->flush_count = dpi->flush_count + 1;\n        sVar3 = 1;\n        sVar2 = 0;\n      }\n      dpi->len = sVar3;\n      dpi->buf[sVar2] = ' ';\n      dpi->last_char = ' ';\n    }\n    pcVar5 = "::*";\n    cVar4 = ':';\n    d_print_comp(dpi,options,(mod->u).s_fixed.length);\n    sVar3 = dpi->len;\n    while( true ) {\n      if (sVar3 == 0xff) {\n        pvVar1 = dpi->opaque;\n        dpi->buf[0xff] = '\0';\n        (*dpi->callback)(dpi->buf,0xff,pvVar1);\n        dpi->flush_count = dpi->flush_count + 1;\n        sVar2 = 1;\n        sVar3 = 0;\n      }\n      else {\n        sVar2 = sVar3 + 1;\n      }\n      pcVar5 = pcVar5 + 1;\n      dpi->len = sVar2;\n      dpi->buf[sVar3] = cVar4;\n      dpi->last_char = cVar4;\n      if (pcVar5 == "") break;\n      cVar4 = *pcVar5;\n      sVar3 = sVar2;\n    }\n    break;\n  case DEMANGLE_COMPONENT_VECTOR_TYPE:\n    pcVar5 = " __vector(";\n    cVar4 = ' ';\n    sVar3 = dpi->len;\n    while( true ) {\n      pcVar5 = pcVar5 + 1;\n      if (sVar3 == 0xff) {\n        pvVar1 = dpi->opaque;\n        dpi->buf[0xff] = '\0';\n        (*dpi->callback)(dpi->buf,0xff,pvVar1);\n        dpi->flush_count = dpi->flush_count + 1;\n        sVar2 = 1;\n        sVar3 = 0;\n      }\n      else {\n        sVar2 = sVar3 + 1;\n      }\n      dpi->len = sVar2;\n      dpi->buf[sVar3] = cVar4;\n      dpi->last_char = cVar4;\n      if (pcVar5 == "") break;\n      cVar4 = *pcVar5;\n      sVar3 = sVar2;\n    }\n    dc = (mod->u).s_fixed.length;\n    goto LAB_002e5aba;\n  case DEMANGLE_COMPONENT_TRANSACTION_SAFE:\n    pcVar5 = " transaction_safe";\n    cVar4 = ' ';\n    sVar3 = dpi->len;\n    while( true ) {\n      pcVar5 = pcVar5 + 1;\n      if (sVar3 == 0xff) {\n        pvVar1 = dpi->opaque;\n        dpi->buf[0xff] = '\0';\n        (*dpi->callback)(dpi->buf,0xff,pvVar1);\n        dpi->flush_count = dpi->flush_count + 1;\n        sVar2 = 1;\n        sVar3 = 0;\n      }\n      else {\n        sVar2 = sVar3 + 1;\n      }\n      dpi->len = sVar2;\n      dpi->buf[sVar3] = cVar4;\n      dpi->last_char = cVar4;\n      if (pcVar5 == "") break;\n      cVar4 = *pcVar5;\n      sVar3 = sVar2;\n    }\n    break;\n  case DEMANGLE_COMPONENT_NOEXCEPT:\n    pcVar5 = " noexcept";\n    cVar4 = ' ';\n    sVar3 = dpi->len;\n    while( true ) {\n      pcVar5 = pcVar5 + 1;\n      if (sVar3 == 0xff) {\n        pvVar1 = dpi->opaque;\n        dpi->buf[0xff] = '\0';\n        (*dpi->callback)(dpi->buf,0xff,pvVar1);\n        dpi->flush_count = dpi->flush_count + 1;\n        sVar2 = 1;\n        sVar3 = 0;\n      }\n      else {\n        sVar2 = sVar3 + 1;\n      }\n      dpi->len = sVar2;\n      dpi->buf[sVar3] = cVar4;\n      dpi->last_char = cVar4;\n      if (pcVar5 == "") break;\n      cVar4 = *pcVar5;\n      sVar3 = sVar2;\n    }\n    goto LAB_002e5a60;\n  case DEMANGLE_COMPONENT_THROW_SPEC:\n    pcVar5 = " throw";\n    cVar4 = ' ';\n    sVar3 = dpi->len;\n    while( true ) {\n      if (sVar3 == 0xff) {\n        pvVar1 = dpi->opaque;\n        dpi->buf[0xff] = '\0';\n        (*dpi->callback)(dpi->buf,0xff,pvVar1);\n        dpi->flush_count = dpi->flush_count + 1;\n        sVar2 = 1;\n        sVar3 = 0;\n      }\n      else {\n        sVar2 = sVar3 + 1;\n      }\n      pcVar5 = pcVar5 + 1;\n      dpi->len = sVar2;\n      dpi->buf[sVar3] = cVar4;\n      dpi->last_char = cVar4;\n      if (pcVar5 == "") break;\n      cVar4 = *pcVar5;\n      sVar3 = sVar2;\n    }\nLAB_002e5a60:\n    dc = (mod->u).s_extended_operator.name;\n    if (dc != (demangle_component *)0x0) {\n      sVar3 = sVar2 + 1;\n      if (sVar2 == 0xff) {\n        pvVar1 = dpi->opaque;\n        dpi->buf[0xff] = '\0';\n        (*dpi->callback)(dpi->buf,0xff,pvVar1);\n        dpi->flush_count = dpi->flush_count + 1;\n        dc = (mod->u).s_extended_operator.name;\n        sVar2 = 0;\n        sVar3 = 1;\n      }\n      dpi->len = sVar3;\n      dpi->buf[sVar2] = '(';\n      dpi->last_char = '(';\nLAB_002e5aba:\n      d_print_comp(dpi,options,dc);\n      sVar2 = dpi->len;\n      sVar3 = sVar2 + 1;\n      if (sVar2 == 0xff) {\n        pvVar1 = dpi->opaque;\n        dpi->buf[0xff] = '\0';\n        (*dpi->callback)(dpi->buf,0xff,pvVar1);\n        dpi->flush_count = dpi->flush_count + 1;\n        sVar3 = 1;\n        sVar2 = 0;\n      }\n      dpi->len = sVar3;\n      dpi->buf[sVar2] = ')';\n      dpi->last_char = ')';\n      return;\n    }\n    break;\n  default:\n    d_print_comp(dpi,options,mod);\n    return;\n  }" { (case_statement "case DEMANGLE_COMPONENT_TYPED_NAME:\n    mod = (mod->u).s_fixed.length;" case identifier : (expression_statement "mod = (mod->u).s_fixed.length;" (assignment_expression "mod = (mod->u).s_fixed.length" identifier = (field_expression "(mod->u).s_fixed.length" (field_expression "(mod->u).s_fixed" (parenthesized_expression "(mod->u)" ( (field_expression "mod->u" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;)) (case_statement "case DEMANGLE_COMPONENT_TEMPLATE:" case identifier :) (case_statement "case DEMANGLE_COMPONENT_TEMPLATE_PARAM:" case identifier :) (case_statement "case DEMANGLE_COMPONENT_FUNCTION_PARAM:" case identifier :) (case_statement "case DEMANGLE_COMPONENT_CTOR:" case identifier :) (case_statement "case DEMANGLE_COMPONENT_DTOR:" case identifier :) (case_statement "case DEMANGLE_COMPONENT_VTABLE:" case identifier :) (case_statement "case DEMANGLE_COMPONENT_VTT:" case identifier :) (case_statement "case DEMANGLE_COMPONENT_CONSTRUCTION_VTABLE:" case identifier :) (case_statement "case DEMANGLE_COMPONENT_TYPEINFO:" case identifier :) (case_statement "case DEMANGLE_COMPONENT_TYPEINFO_NAME:" case identifier :) (case_statement "case DEMANGLE_COMPONENT_TYPEINFO_FN:" case identifier :) (case_statement "case DEMANGLE_COMPONENT_THUNK:" case identifier :) (case_statement "case DEMANGLE_COMPONENT_VIRTUAL_THUNK:" case identifier :) (case_statement "case DEMANGLE_COMPONENT_COVARIANT_THUNK:" case identifier :) (case_statement "case DEMANGLE_COMPONENT_JAVA_CLASS:" case identifier :) (case_statement "case DEMANGLE_COMPONENT_GUARD:" case identifier :) (case_statement "case DEMANGLE_COMPONENT_TLS_INIT:" case identifier :) (case_statement "case DEMANGLE_COMPONENT_TLS_WRAPPER:" case identifier :) (case_statement "case DEMANGLE_COMPONENT_REFTEMP:" case identifier :) (case_statement "case DEMANGLE_COMPONENT_HIDDEN_ALIAS:" case identifier :) (case_statement "case DEMANGLE_COMPONENT_SUB_STD:" case identifier :) (case_statement "case DEMANGLE_COMPONENT_BUILTIN_TYPE:" case identifier :) (case_statement "case DEMANGLE_COMPONENT_VENDOR_TYPE:" case identifier :) (case_statement "case DEMANGLE_COMPONENT_FUNCTION_TYPE:" case identifier :) (case_statement "case DEMANGLE_COMPONENT_ARRAY_TYPE:" case identifier :) (case_statement "case DEMANGLE_COMPONENT_FIXED_TYPE:" case identifier :) (case_statement "case DEMANGLE_COMPONENT_ARGLIST:" case identifier :) (case_statement "case DEMANGLE_COMPONENT_TEMPLATE_ARGLIST:" case identifier :) (case_statement "case DEMANGLE_COMPONENT_INITIALIZER_LIST:" case identifier :) (case_statement "case DEMANGLE_COMPONENT_OPERATOR:" case identifier :) (case_statement "case DEMANGLE_COMPONENT_EXTENDED_OPERATOR:" case identifier :) (case_statement "case DEMANGLE_COMPONENT_CAST:" case identifier :) (case_statement "case DEMANGLE_COMPONENT_CONVERSION:" case identifier :) (case_statement "case DEMANGLE_COMPONENT_NULLARY:" case identifier :) (case_statement "case DEMANGLE_COMPONENT_UNARY:" case identifier :) (case_statement "case DEMANGLE_COMPONENT_BINARY:" case identifier :) (case_statement "case DEMANGLE_COMPONENT_BINARY_ARGS:" case identifier :) (case_statement "case DEMANGLE_COMPONENT_TRINARY:" case identifier :) (case_statement "case DEMANGLE_COMPONENT_TRINARY_ARG1:" case identifier :) (case_statement "case DEMANGLE_COMPONENT_TRINARY_ARG2:" case identifier :) (case_statement "case DEMANGLE_COMPONENT_LITERAL:" case identifier :) (case_statement "case DEMANGLE_COMPONENT_LITERAL_NEG:" case identifier :) (case_statement "case DEMANGLE_COMPONENT_JAVA_RESOURCE:" case identifier :) (case_statement "case DEMANGLE_COMPONENT_COMPOUND_NAME:" case identifier :) (case_statement "case DEMANGLE_COMPONENT_CHARACTER:" case identifier :) (case_statement "case DEMANGLE_COMPONENT_NUMBER:" case identifier :) (case_statement "case DEMANGLE_COMPONENT_DECLTYPE:" case identifier :) (case_statement "case DEMANGLE_COMPONENT_GLOBAL_CONSTRUCTORS:" case identifier :) (case_statement "case DEMANGLE_COMPONENT_GLOBAL_DESTRUCTORS:" case identifier :) (case_statement "case DEMANGLE_COMPONENT_LAMBDA:" case identifier :) (case_statement "case DEMANGLE_COMPONENT_DEFAULT_ARG:" case identifier :) (case_statement "case DEMANGLE_COMPONENT_UNNAMED_TYPE:" case identifier :) (case_statement "case DEMANGLE_COMPONENT_TRANSACTION_CLONE:" case identifier :) (case_statement "case DEMANGLE_COMPONENT_NONTRANSACTION_CLONE:" case identifier :) (case_statement "case DEMANGLE_COMPONENT_PACK_EXPANSION:" case identifier :) (case_statement "case DEMANGLE_COMPONENT_TAGGED_NAME:" case identifier :) (case_statement "case DEMANGLE_COMPONENT_CLONE:\nswitchD_002e52d3_caseD_4:\n    d_print_comp(dpi,options,mod);\n    return;" case identifier : (labeled_statement "switchD_002e52d3_caseD_4:\n    d_print_comp(dpi,options,mod);" statement_identifier : (expression_statement "d_print_comp(dpi,options,mod);" (call_expression "d_print_comp(dpi,options,mod)" identifier (argument_list "(dpi,options,mod)" ( identifier , identifier , identifier ))) ;)) (return_statement "return;" return ;)) (case_statement "case DEMANGLE_COMPONENT_RESTRICT:" case identifier :) (case_statement "case DEMANGLE_COMPONENT_RESTRICT_THIS:\n    pcVar5 = " restrict";\n    cVar4 = ' ';\n    sVar3 = dpi->len;\n    while( true ) {\n      pcVar5 = pcVar5 + 1;\n      if (sVar3 == 0xff) {\n        pvVar1 = dpi->opaque;\n        dpi->buf[0xff] = '\0';\n        (*dpi->callback)(dpi->buf,0xff,pvVar1);\n        dpi->flush_count = dpi->flush_count + 1;\n        sVar2 = 1;\n        sVar3 = 0;\n      }\n      else {\n        sVar2 = sVar3 + 1;\n      }\n      dpi->len = sVar2;\n      dpi->buf[sVar3] = cVar4;\n      dpi->last_char = cVar4;\n      if (pcVar5 == "") break;\n      cVar4 = *pcVar5;\n      sVar3 = sVar2;\n    }\n    break;" case identifier : (expression_statement "pcVar5 = " restrict";" (assignment_expression "pcVar5 = " restrict"" identifier = (string_literal "" restrict"" " string_content ")) ;) (expression_statement "cVar4 = ' ';" (assignment_expression "cVar4 = ' '" identifier = (char_literal "' '" ' character ')) ;) (expression_statement "sVar3 = dpi->len;" (assignment_expression "sVar3 = dpi->len" identifier = (field_expression "dpi->len" identifier -> field_identifier)) ;) (while_statement "while( true ) {\n      pcVar5 = pcVar5 + 1;\n      if (sVar3 == 0xff) {\n        pvVar1 = dpi->opaque;\n        dpi->buf[0xff] = '\0';\n        (*dpi->callback)(dpi->buf,0xff,pvVar1);\n        dpi->flush_count = dpi->flush_count + 1;\n        sVar2 = 1;\n        sVar3 = 0;\n      }\n      else {\n        sVar2 = sVar3 + 1;\n      }\n      dpi->len = sVar2;\n      dpi->buf[sVar3] = cVar4;\n      dpi->last_char = cVar4;\n      if (pcVar5 == "") break;\n      cVar4 = *pcVar5;\n      sVar3 = sVar2;\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      pcVar5 = pcVar5 + 1;\n      if (sVar3 == 0xff) {\n        pvVar1 = dpi->opaque;\n        dpi->buf[0xff] = '\0';\n        (*dpi->callback)(dpi->buf,0xff,pvVar1);\n        dpi->flush_count = dpi->flush_count + 1;\n        sVar2 = 1;\n        sVar3 = 0;\n      }\n      else {\n        sVar2 = sVar3 + 1;\n      }\n      dpi->len = sVar2;\n      dpi->buf[sVar3] = cVar4;\n      dpi->last_char = cVar4;\n      if (pcVar5 == "") break;\n      cVar4 = *pcVar5;\n      sVar3 = sVar2;\n    }" { (expression_statement "pcVar5 = pcVar5 + 1;" (assignment_expression "pcVar5 = pcVar5 + 1" identifier = (binary_expression "pcVar5 + 1" identifier + number_literal)) ;) (if_statement "if (sVar3 == 0xff) {\n        pvVar1 = dpi->opaque;\n        dpi->buf[0xff] = '\0';\n        (*dpi->callback)(dpi->buf,0xff,pvVar1);\n        dpi->flush_count = dpi->flush_count + 1;\n        sVar2 = 1;\n        sVar3 = 0;\n      }\n      else {\n        sVar2 = sVar3 + 1;\n      }" if (parenthesized_expression "(sVar3 == 0xff)" ( (binary_expression "sVar3 == 0xff" identifier == number_literal) )) (compound_statement "{\n        pvVar1 = dpi->opaque;\n        dpi->buf[0xff] = '\0';\n        (*dpi->callback)(dpi->buf,0xff,pvVar1);\n        dpi->flush_count = dpi->flush_count + 1;\n        sVar2 = 1;\n        sVar3 = 0;\n      }" { (expression_statement "pvVar1 = dpi->opaque;" (assignment_expression "pvVar1 = dpi->opaque" identifier = (field_expression "dpi->opaque" identifier -> field_identifier)) ;) (expression_statement "dpi->buf[0xff] = '\0';" (assignment_expression "dpi->buf[0xff] = '\0'" (subscript_expression "dpi->buf[0xff]" (field_expression "dpi->buf" identifier -> field_identifier) [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "(*dpi->callback)(dpi->buf,0xff,pvVar1);" (call_expression "(*dpi->callback)(dpi->buf,0xff,pvVar1)" (parenthesized_expression "(*dpi->callback)" ( (pointer_expression "*dpi->callback" * (field_expression "dpi->callback" identifier -> field_identifier)) )) (argument_list "(dpi->buf,0xff,pvVar1)" ( (field_expression "dpi->buf" identifier -> field_identifier) , number_literal , identifier ))) ;) (expression_statement "dpi->flush_count = dpi->flush_count + 1;" (assignment_expression "dpi->flush_count = dpi->flush_count + 1" (field_expression "dpi->flush_count" identifier -> field_identifier) = (binary_expression "dpi->flush_count + 1" (field_expression "dpi->flush_count" identifier -> field_identifier) + number_literal)) ;) (expression_statement "sVar2 = 1;" (assignment_expression "sVar2 = 1" identifier = number_literal) ;) (expression_statement "sVar3 = 0;" (assignment_expression "sVar3 = 0" identifier = number_literal) ;) }) (else_clause "else {\n        sVar2 = sVar3 + 1;\n      }" else (compound_statement "{\n        sVar2 = sVar3 + 1;\n      }" { (expression_statement "sVar2 = sVar3 + 1;" (assignment_expression "sVar2 = sVar3 + 1" identifier = (binary_expression "sVar3 + 1" identifier + number_literal)) ;) }))) (expression_statement "dpi->len = sVar2;" (assignment_expression "dpi->len = sVar2" (field_expression "dpi->len" identifier -> field_identifier) = identifier) ;) (expression_statement "dpi->buf[sVar3] = cVar4;" (assignment_expression "dpi->buf[sVar3] = cVar4" (subscript_expression "dpi->buf[sVar3]" (field_expression "dpi->buf" identifier -> field_identifier) [ identifier ]) = identifier) ;) (expression_statement "dpi->last_char = cVar4;" (assignment_expression "dpi->last_char = cVar4" (field_expression "dpi->last_char" identifier -> field_identifier) = identifier) ;) (if_statement "if (pcVar5 == "") break;" if (parenthesized_expression "(pcVar5 == "")" ( (binary_expression "pcVar5 == """ identifier == (string_literal """" " ")) )) (break_statement "break;" break ;)) (expression_statement "cVar4 = *pcVar5;" (assignment_expression "cVar4 = *pcVar5" identifier = (pointer_expression "*pcVar5" * identifier)) ;) (expression_statement "sVar3 = sVar2;" (assignment_expression "sVar3 = sVar2" identifier = identifier) ;) })) (break_statement "break;" break ;)) (case_statement "case DEMANGLE_COMPONENT_VOLATILE:" case identifier :) (case_statement "case DEMANGLE_COMPONENT_VOLATILE_THIS:\n    pcVar5 = "volatile";\n    cVar4 = ' ';\n    sVar3 = dpi->len;\n    while( true ) {\n      if (sVar3 == 0xff) {\n        pvVar1 = dpi->opaque;\n        dpi->buf[0xff] = '\0';\n        (*dpi->callback)(dpi->buf,0xff,pvVar1);\n        dpi->flush_count = dpi->flush_count + 1;\n        sVar2 = 1;\n        sVar3 = 0;\n      }\n      else {\n        sVar2 = sVar3 + 1;\n      }\n      dpi->len = sVar2;\n      dpi->buf[sVar3] = cVar4;\n      dpi->last_char = cVar4;\n      if (pcVar5 == "") break;\n      cVar4 = *pcVar5;\n      pcVar5 = pcVar5 + 1;\n      sVar3 = sVar2;\n    }\n    break;" case identifier : (expression_statement "pcVar5 = "volatile";" (assignment_expression "pcVar5 = "volatile"" identifier = (string_literal ""volatile"" " string_content ")) ;) (expression_statement "cVar4 = ' ';" (assignment_expression "cVar4 = ' '" identifier = (char_literal "' '" ' character ')) ;) (expression_statement "sVar3 = dpi->len;" (assignment_expression "sVar3 = dpi->len" identifier = (field_expression "dpi->len" identifier -> field_identifier)) ;) (while_statement "while( true ) {\n      if (sVar3 == 0xff) {\n        pvVar1 = dpi->opaque;\n        dpi->buf[0xff] = '\0';\n        (*dpi->callback)(dpi->buf,0xff,pvVar1);\n        dpi->flush_count = dpi->flush_count + 1;\n        sVar2 = 1;\n        sVar3 = 0;\n      }\n      else {\n        sVar2 = sVar3 + 1;\n      }\n      dpi->len = sVar2;\n      dpi->buf[sVar3] = cVar4;\n      dpi->last_char = cVar4;\n      if (pcVar5 == "") break;\n      cVar4 = *pcVar5;\n      pcVar5 = pcVar5 + 1;\n      sVar3 = sVar2;\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      if (sVar3 == 0xff) {\n        pvVar1 = dpi->opaque;\n        dpi->buf[0xff] = '\0';\n        (*dpi->callback)(dpi->buf,0xff,pvVar1);\n        dpi->flush_count = dpi->flush_count + 1;\n        sVar2 = 1;\n        sVar3 = 0;\n      }\n      else {\n        sVar2 = sVar3 + 1;\n      }\n      dpi->len = sVar2;\n      dpi->buf[sVar3] = cVar4;\n      dpi->last_char = cVar4;\n      if (pcVar5 == "") break;\n      cVar4 = *pcVar5;\n      pcVar5 = pcVar5 + 1;\n      sVar3 = sVar2;\n    }" { (if_statement "if (sVar3 == 0xff) {\n        pvVar1 = dpi->opaque;\n        dpi->buf[0xff] = '\0';\n        (*dpi->callback)(dpi->buf,0xff,pvVar1);\n        dpi->flush_count = dpi->flush_count + 1;\n        sVar2 = 1;\n        sVar3 = 0;\n      }\n      else {\n        sVar2 = sVar3 + 1;\n      }" if (parenthesized_expression "(sVar3 == 0xff)" ( (binary_expression "sVar3 == 0xff" identifier == number_literal) )) (compound_statement "{\n        pvVar1 = dpi->opaque;\n        dpi->buf[0xff] = '\0';\n        (*dpi->callback)(dpi->buf,0xff,pvVar1);\n        dpi->flush_count = dpi->flush_count + 1;\n        sVar2 = 1;\n        sVar3 = 0;\n      }" { (expression_statement "pvVar1 = dpi->opaque;" (assignment_expression "pvVar1 = dpi->opaque" identifier = (field_expression "dpi->opaque" identifier -> field_identifier)) ;) (expression_statement "dpi->buf[0xff] = '\0';" (assignment_expression "dpi->buf[0xff] = '\0'" (subscript_expression "dpi->buf[0xff]" (field_expression "dpi->buf" identifier -> field_identifier) [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "(*dpi->callback)(dpi->buf,0xff,pvVar1);" (call_expression "(*dpi->callback)(dpi->buf,0xff,pvVar1)" (parenthesized_expression "(*dpi->callback)" ( (pointer_expression "*dpi->callback" * (field_expression "dpi->callback" identifier -> field_identifier)) )) (argument_list "(dpi->buf,0xff,pvVar1)" ( (field_expression "dpi->buf" identifier -> field_identifier) , number_literal , identifier ))) ;) (expression_statement "dpi->flush_count = dpi->flush_count + 1;" (assignment_expression "dpi->flush_count = dpi->flush_count + 1" (field_expression "dpi->flush_count" identifier -> field_identifier) = (binary_expression "dpi->flush_count + 1" (field_expression "dpi->flush_count" identifier -> field_identifier) + number_literal)) ;) (expression_statement "sVar2 = 1;" (assignment_expression "sVar2 = 1" identifier = number_literal) ;) (expression_statement "sVar3 = 0;" (assignment_expression "sVar3 = 0" identifier = number_literal) ;) }) (else_clause "else {\n        sVar2 = sVar3 + 1;\n      }" else (compound_statement "{\n        sVar2 = sVar3 + 1;\n      }" { (expression_statement "sVar2 = sVar3 + 1;" (assignment_expression "sVar2 = sVar3 + 1" identifier = (binary_expression "sVar3 + 1" identifier + number_literal)) ;) }))) (expression_statement "dpi->len = sVar2;" (assignment_expression "dpi->len = sVar2" (field_expression "dpi->len" identifier -> field_identifier) = identifier) ;) (expression_statement "dpi->buf[sVar3] = cVar4;" (assignment_expression "dpi->buf[sVar3] = cVar4" (subscript_expression "dpi->buf[sVar3]" (field_expression "dpi->buf" identifier -> field_identifier) [ identifier ]) = identifier) ;) (expression_statement "dpi->last_char = cVar4;" (assignment_expression "dpi->last_char = cVar4" (field_expression "dpi->last_char" identifier -> field_identifier) = identifier) ;) (if_statement "if (pcVar5 == "") break;" if (parenthesized_expression "(pcVar5 == "")" ( (binary_expression "pcVar5 == """ identifier == (string_literal """" " ")) )) (break_statement "break;" break ;)) (expression_statement "cVar4 = *pcVar5;" (assignment_expression "cVar4 = *pcVar5" identifier = (pointer_expression "*pcVar5" * identifier)) ;) (expression_statement "pcVar5 = pcVar5 + 1;" (assignment_expression "pcVar5 = pcVar5 + 1" identifier = (binary_expression "pcVar5 + 1" identifier + number_literal)) ;) (expression_statement "sVar3 = sVar2;" (assignment_expression "sVar3 = sVar2" identifier = identifier) ;) })) (break_statement "break;" break ;)) (case_statement "case DEMANGLE_COMPONENT_CONST:" case identifier :) (case_statement "case DEMANGLE_COMPONENT_CONST_THIS:\n    pcVar5 = " const";\n    cVar4 = ' ';\n    sVar3 = dpi->len;\n    while( true ) {\n      if (sVar3 == 0xff) {\n        pvVar1 = dpi->opaque;\n        dpi->buf[0xff] = '\0';\n        (*dpi->callback)(dpi->buf,0xff,pvVar1);\n        dpi->flush_count = dpi->flush_count + 1;\n        sVar2 = 1;\n        sVar3 = 0;\n      }\n      else {\n        sVar2 = sVar3 + 1;\n      }\n      pcVar5 = pcVar5 + 1;\n      dpi->len = sVar2;\n      dpi->buf[sVar3] = cVar4;\n      dpi->last_char = cVar4;\n      if (pcVar5 == "") break;\n      cVar4 = *pcVar5;\n      sVar3 = sVar2;\n    }\n    break;" case identifier : (expression_statement "pcVar5 = " const";" (assignment_expression "pcVar5 = " const"" identifier = (string_literal "" const"" " string_content ")) ;) (expression_statement "cVar4 = ' ';" (assignment_expression "cVar4 = ' '" identifier = (char_literal "' '" ' character ')) ;) (expression_statement "sVar3 = dpi->len;" (assignment_expression "sVar3 = dpi->len" identifier = (field_expression "dpi->len" identifier -> field_identifier)) ;) (while_statement "while( true ) {\n      if (sVar3 == 0xff) {\n        pvVar1 = dpi->opaque;\n        dpi->buf[0xff] = '\0';\n        (*dpi->callback)(dpi->buf,0xff,pvVar1);\n        dpi->flush_count = dpi->flush_count + 1;\n        sVar2 = 1;\n        sVar3 = 0;\n      }\n      else {\n        sVar2 = sVar3 + 1;\n      }\n      pcVar5 = pcVar5 + 1;\n      dpi->len = sVar2;\n      dpi->buf[sVar3] = cVar4;\n      dpi->last_char = cVar4;\n      if (pcVar5 == "") break;\n      cVar4 = *pcVar5;\n      sVar3 = sVar2;\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      if (sVar3 == 0xff) {\n        pvVar1 = dpi->opaque;\n        dpi->buf[0xff] = '\0';\n        (*dpi->callback)(dpi->buf,0xff,pvVar1);\n        dpi->flush_count = dpi->flush_count + 1;\n        sVar2 = 1;\n        sVar3 = 0;\n      }\n      else {\n        sVar2 = sVar3 + 1;\n      }\n      pcVar5 = pcVar5 + 1;\n      dpi->len = sVar2;\n      dpi->buf[sVar3] = cVar4;\n      dpi->last_char = cVar4;\n      if (pcVar5 == "") break;\n      cVar4 = *pcVar5;\n      sVar3 = sVar2;\n    }" { (if_statement "if (sVar3 == 0xff) {\n        pvVar1 = dpi->opaque;\n        dpi->buf[0xff] = '\0';\n        (*dpi->callback)(dpi->buf,0xff,pvVar1);\n        dpi->flush_count = dpi->flush_count + 1;\n        sVar2 = 1;\n        sVar3 = 0;\n      }\n      else {\n        sVar2 = sVar3 + 1;\n      }" if (parenthesized_expression "(sVar3 == 0xff)" ( (binary_expression "sVar3 == 0xff" identifier == number_literal) )) (compound_statement "{\n        pvVar1 = dpi->opaque;\n        dpi->buf[0xff] = '\0';\n        (*dpi->callback)(dpi->buf,0xff,pvVar1);\n        dpi->flush_count = dpi->flush_count + 1;\n        sVar2 = 1;\n        sVar3 = 0;\n      }" { (expression_statement "pvVar1 = dpi->opaque;" (assignment_expression "pvVar1 = dpi->opaque" identifier = (field_expression "dpi->opaque" identifier -> field_identifier)) ;) (expression_statement "dpi->buf[0xff] = '\0';" (assignment_expression "dpi->buf[0xff] = '\0'" (subscript_expression "dpi->buf[0xff]" (field_expression "dpi->buf" identifier -> field_identifier) [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "(*dpi->callback)(dpi->buf,0xff,pvVar1);" (call_expression "(*dpi->callback)(dpi->buf,0xff,pvVar1)" (parenthesized_expression "(*dpi->callback)" ( (pointer_expression "*dpi->callback" * (field_expression "dpi->callback" identifier -> field_identifier)) )) (argument_list "(dpi->buf,0xff,pvVar1)" ( (field_expression "dpi->buf" identifier -> field_identifier) , number_literal , identifier ))) ;) (expression_statement "dpi->flush_count = dpi->flush_count + 1;" (assignment_expression "dpi->flush_count = dpi->flush_count + 1" (field_expression "dpi->flush_count" identifier -> field_identifier) = (binary_expression "dpi->flush_count + 1" (field_expression "dpi->flush_count" identifier -> field_identifier) + number_literal)) ;) (expression_statement "sVar2 = 1;" (assignment_expression "sVar2 = 1" identifier = number_literal) ;) (expression_statement "sVar3 = 0;" (assignment_expression "sVar3 = 0" identifier = number_literal) ;) }) (else_clause "else {\n        sVar2 = sVar3 + 1;\n      }" else (compound_statement "{\n        sVar2 = sVar3 + 1;\n      }" { (expression_statement "sVar2 = sVar3 + 1;" (assignment_expression "sVar2 = sVar3 + 1" identifier = (binary_expression "sVar3 + 1" identifier + number_literal)) ;) }))) (expression_statement "pcVar5 = pcVar5 + 1;" (assignment_expression "pcVar5 = pcVar5 + 1" identifier = (binary_expression "pcVar5 + 1" identifier + number_literal)) ;) (expression_statement "dpi->len = sVar2;" (assignment_expression "dpi->len = sVar2" (field_expression "dpi->len" identifier -> field_identifier) = identifier) ;) (expression_statement "dpi->buf[sVar3] = cVar4;" (assignment_expression "dpi->buf[sVar3] = cVar4" (subscript_expression "dpi->buf[sVar3]" (field_expression "dpi->buf" identifier -> field_identifier) [ identifier ]) = identifier) ;) (expression_statement "dpi->last_char = cVar4;" (assignment_expression "dpi->last_char = cVar4" (field_expression "dpi->last_char" identifier -> field_identifier) = identifier) ;) (if_statement "if (pcVar5 == "") break;" if (parenthesized_expression "(pcVar5 == "")" ( (binary_expression "pcVar5 == """ identifier == (string_literal """" " ")) )) (break_statement "break;" break ;)) (expression_statement "cVar4 = *pcVar5;" (assignment_expression "cVar4 = *pcVar5" identifier = (pointer_expression "*pcVar5" * identifier)) ;) (expression_statement "sVar3 = sVar2;" (assignment_expression "sVar3 = sVar2" identifier = identifier) ;) })) (break_statement "break;" break ;)) (case_statement "case DEMANGLE_COMPONENT_REFERENCE_THIS:\n    if (dpi->len == 0xff) {\n      dpi->buf[0xff] = '\0';\n      (*dpi->callback)(dpi->buf,0xff,dpi->opaque);\n      dpi->flush_count = dpi->flush_count + 1;\n      dpi->len = 0;\n    }\n    sVar2 = dpi->len;\n    sVar3 = sVar2 + 1;\n    dpi->len = sVar3;\n    dpi->buf[sVar2] = ' ';\n    dpi->last_char = ' ';\n    goto LAB_002e5807;" case identifier : (if_statement "if (dpi->len == 0xff) {\n      dpi->buf[0xff] = '\0';\n      (*dpi->callback)(dpi->buf,0xff,dpi->opaque);\n      dpi->flush_count = dpi->flush_count + 1;\n      dpi->len = 0;\n    }" if (parenthesized_expression "(dpi->len == 0xff)" ( (binary_expression "dpi->len == 0xff" (field_expression "dpi->len" identifier -> field_identifier) == number_literal) )) (compound_statement "{\n      dpi->buf[0xff] = '\0';\n      (*dpi->callback)(dpi->buf,0xff,dpi->opaque);\n      dpi->flush_count = dpi->flush_count + 1;\n      dpi->len = 0;\n    }" { (expression_statement "dpi->buf[0xff] = '\0';" (assignment_expression "dpi->buf[0xff] = '\0'" (subscript_expression "dpi->buf[0xff]" (field_expression "dpi->buf" identifier -> field_identifier) [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "(*dpi->callback)(dpi->buf,0xff,dpi->opaque);" (call_expression "(*dpi->callback)(dpi->buf,0xff,dpi->opaque)" (parenthesized_expression "(*dpi->callback)" ( (pointer_expression "*dpi->callback" * (field_expression "dpi->callback" identifier -> field_identifier)) )) (argument_list "(dpi->buf,0xff,dpi->opaque)" ( (field_expression "dpi->buf" identifier -> field_identifier) , number_literal , (field_expression "dpi->opaque" identifier -> field_identifier) ))) ;) (expression_statement "dpi->flush_count = dpi->flush_count + 1;" (assignment_expression "dpi->flush_count = dpi->flush_count + 1" (field_expression "dpi->flush_count" identifier -> field_identifier) = (binary_expression "dpi->flush_count + 1" (field_expression "dpi->flush_count" identifier -> field_identifier) + number_literal)) ;) (expression_statement "dpi->len = 0;" (assignment_expression "dpi->len = 0" (field_expression "dpi->len" identifier -> field_identifier) = number_literal) ;) })) (expression_statement "sVar2 = dpi->len;" (assignment_expression "sVar2 = dpi->len" identifier = (field_expression "dpi->len" identifier -> field_identifier)) ;) (expression_statement "sVar3 = sVar2 + 1;" (assignment_expression "sVar3 = sVar2 + 1" identifier = (binary_expression "sVar2 + 1" identifier + number_literal)) ;) (expression_statement "dpi->len = sVar3;" (assignment_expression "dpi->len = sVar3" (field_expression "dpi->len" identifier -> field_identifier) = identifier) ;) (expression_statement "dpi->buf[sVar2] = ' ';" (assignment_expression "dpi->buf[sVar2] = ' '" (subscript_expression "dpi->buf[sVar2]" (field_expression "dpi->buf" identifier -> field_identifier) [ identifier ]) = (char_literal "' '" ' character ')) ;) (expression_statement "dpi->last_char = ' ';" (assignment_expression "dpi->last_char = ' '" (field_expression "dpi->last_char" identifier -> field_identifier) = (char_literal "' '" ' character ')) ;) (goto_statement "goto LAB_002e5807;" goto statement_identifier ;)) (case_statement "case DEMANGLE_COMPONENT_RVALUE_REFERENCE_THIS:\n    if (dpi->len == 0xff) {\n      dpi->buf[0xff] = '\0';\n      (*dpi->callback)(dpi->buf,0xff,dpi->opaque);\n      dpi->flush_count = dpi->flush_count + 1;\n      dpi->len = 0;\n    }\n    sVar2 = dpi->len;\n    sVar3 = sVar2 + 1;\n    dpi->len = sVar3;\n    dpi->buf[sVar2] = ' ';\n    dpi->last_char = ' ';\n    goto LAB_002e5867;" case identifier : (if_statement "if (dpi->len == 0xff) {\n      dpi->buf[0xff] = '\0';\n      (*dpi->callback)(dpi->buf,0xff,dpi->opaque);\n      dpi->flush_count = dpi->flush_count + 1;\n      dpi->len = 0;\n    }" if (parenthesized_expression "(dpi->len == 0xff)" ( (binary_expression "dpi->len == 0xff" (field_expression "dpi->len" identifier -> field_identifier) == number_literal) )) (compound_statement "{\n      dpi->buf[0xff] = '\0';\n      (*dpi->callback)(dpi->buf,0xff,dpi->opaque);\n      dpi->flush_count = dpi->flush_count + 1;\n      dpi->len = 0;\n    }" { (expression_statement "dpi->buf[0xff] = '\0';" (assignment_expression "dpi->buf[0xff] = '\0'" (subscript_expression "dpi->buf[0xff]" (field_expression "dpi->buf" identifier -> field_identifier) [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "(*dpi->callback)(dpi->buf,0xff,dpi->opaque);" (call_expression "(*dpi->callback)(dpi->buf,0xff,dpi->opaque)" (parenthesized_expression "(*dpi->callback)" ( (pointer_expression "*dpi->callback" * (field_expression "dpi->callback" identifier -> field_identifier)) )) (argument_list "(dpi->buf,0xff,dpi->opaque)" ( (field_expression "dpi->buf" identifier -> field_identifier) , number_literal , (field_expression "dpi->opaque" identifier -> field_identifier) ))) ;) (expression_statement "dpi->flush_count = dpi->flush_count + 1;" (assignment_expression "dpi->flush_count = dpi->flush_count + 1" (field_expression "dpi->flush_count" identifier -> field_identifier) = (binary_expression "dpi->flush_count + 1" (field_expression "dpi->flush_count" identifier -> field_identifier) + number_literal)) ;) (expression_statement "dpi->len = 0;" (assignment_expression "dpi->len = 0" (field_expression "dpi->len" identifier -> field_identifier) = number_literal) ;) })) (expression_statement "sVar2 = dpi->len;" (assignment_expression "sVar2 = dpi->len" identifier = (field_expression "dpi->len" identifier -> field_identifier)) ;) (expression_statement "sVar3 = sVar2 + 1;" (assignment_expression "sVar3 = sVar2 + 1" identifier = (binary_expression "sVar2 + 1" identifier + number_literal)) ;) (expression_statement "dpi->len = sVar3;" (assignment_expression "dpi->len = sVar3" (field_expression "dpi->len" identifier -> field_identifier) = identifier) ;) (expression_statement "dpi->buf[sVar2] = ' ';" (assignment_expression "dpi->buf[sVar2] = ' '" (subscript_expression "dpi->buf[sVar2]" (field_expression "dpi->buf" identifier -> field_identifier) [ identifier ]) = (char_literal "' '" ' character ')) ;) (expression_statement "dpi->last_char = ' ';" (assignment_expression "dpi->last_char = ' '" (field_expression "dpi->last_char" identifier -> field_identifier) = (char_literal "' '" ' character ')) ;) (goto_statement "goto LAB_002e5867;" goto statement_identifier ;)) (case_statement "case DEMANGLE_COMPONENT_VENDOR_TYPE_QUAL:\n    if (dpi->len == 0xff) {\n      dpi->buf[0xff] = '\0';\n      (*dpi->callback)(dpi->buf,0xff,dpi->opaque);\n      dpi->flush_count = dpi->flush_count + 1;\n      dpi->len = 0;\n    }\n    sVar3 = dpi->len;\n    dpi->len = sVar3 + 1;\n    dpi->buf[sVar3] = ' ';\n    dpi->last_char = ' ';\n    mod = (mod->u).s_extended_operator.name;\n    goto switchD_002e52d3_caseD_4;" case identifier : (if_statement "if (dpi->len == 0xff) {\n      dpi->buf[0xff] = '\0';\n      (*dpi->callback)(dpi->buf,0xff,dpi->opaque);\n      dpi->flush_count = dpi->flush_count + 1;\n      dpi->len = 0;\n    }" if (parenthesized_expression "(dpi->len == 0xff)" ( (binary_expression "dpi->len == 0xff" (field_expression "dpi->len" identifier -> field_identifier) == number_literal) )) (compound_statement "{\n      dpi->buf[0xff] = '\0';\n      (*dpi->callback)(dpi->buf,0xff,dpi->opaque);\n      dpi->flush_count = dpi->flush_count + 1;\n      dpi->len = 0;\n    }" { (expression_statement "dpi->buf[0xff] = '\0';" (assignment_expression "dpi->buf[0xff] = '\0'" (subscript_expression "dpi->buf[0xff]" (field_expression "dpi->buf" identifier -> field_identifier) [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "(*dpi->callback)(dpi->buf,0xff,dpi->opaque);" (call_expression "(*dpi->callback)(dpi->buf,0xff,dpi->opaque)" (parenthesized_expression "(*dpi->callback)" ( (pointer_expression "*dpi->callback" * (field_expression "dpi->callback" identifier -> field_identifier)) )) (argument_list "(dpi->buf,0xff,dpi->opaque)" ( (field_expression "dpi->buf" identifier -> field_identifier) , number_literal , (field_expression "dpi->opaque" identifier -> field_identifier) ))) ;) (expression_statement "dpi->flush_count = dpi->flush_count + 1;" (assignment_expression "dpi->flush_count = dpi->flush_count + 1" (field_expression "dpi->flush_count" identifier -> field_identifier) = (binary_expression "dpi->flush_count + 1" (field_expression "dpi->flush_count" identifier -> field_identifier) + number_literal)) ;) (expression_statement "dpi->len = 0;" (assignment_expression "dpi->len = 0" (field_expression "dpi->len" identifier -> field_identifier) = number_literal) ;) })) (expression_statement "sVar3 = dpi->len;" (assignment_expression "sVar3 = dpi->len" identifier = (field_expression "dpi->len" identifier -> field_identifier)) ;) (expression_statement "dpi->len = sVar3 + 1;" (assignment_expression "dpi->len = sVar3 + 1" (field_expression "dpi->len" identifier -> field_identifier) = (binary_expression "sVar3 + 1" identifier + number_literal)) ;) (expression_statement "dpi->buf[sVar3] = ' ';" (assignment_expression "dpi->buf[sVar3] = ' '" (subscript_expression "dpi->buf[sVar3]" (field_expression "dpi->buf" identifier -> field_identifier) [ identifier ]) = (char_literal "' '" ' character ')) ;) (expression_statement "dpi->last_char = ' ';" (assignment_expression "dpi->last_char = ' '" (field_expression "dpi->last_char" identifier -> field_identifier) = (char_literal "' '" ' character ')) ;) (expression_statement "mod = (mod->u).s_extended_operator.name;" (assignment_expression "mod = (mod->u).s_extended_operator.name" identifier = (field_expression "(mod->u).s_extended_operator.name" (field_expression "(mod->u).s_extended_operator" (parenthesized_expression "(mod->u)" ( (field_expression "mod->u" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;) (goto_statement "goto switchD_002e52d3_caseD_4;" goto statement_identifier ;)) (case_statement "case DEMANGLE_COMPONENT_POINTER:\n    if ((options & 4U) == 0) {\n      if (dpi->len == 0xff) {\n        dpi->buf[0xff] = '\0';\n        (*dpi->callback)(dpi->buf,0xff,dpi->opaque);\n        dpi->flush_count = dpi->flush_count + 1;\n        dpi->len = 0;\n      }\n      sVar3 = dpi->len;\n      dpi->len = sVar3 + 1;\n      dpi->buf[sVar3] = '*';\n      dpi->last_char = '*';\n    }\n    break;" case identifier : (if_statement "if ((options & 4U) == 0) {\n      if (dpi->len == 0xff) {\n        dpi->buf[0xff] = '\0';\n        (*dpi->callback)(dpi->buf,0xff,dpi->opaque);\n        dpi->flush_count = dpi->flush_count + 1;\n        dpi->len = 0;\n      }\n      sVar3 = dpi->len;\n      dpi->len = sVar3 + 1;\n      dpi->buf[sVar3] = '*';\n      dpi->last_char = '*';\n    }" if (parenthesized_expression "((options & 4U) == 0)" ( (binary_expression "(options & 4U) == 0" (parenthesized_expression "(options & 4U)" ( (binary_expression "options & 4U" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n      if (dpi->len == 0xff) {\n        dpi->buf[0xff] = '\0';\n        (*dpi->callback)(dpi->buf,0xff,dpi->opaque);\n        dpi->flush_count = dpi->flush_count + 1;\n        dpi->len = 0;\n      }\n      sVar3 = dpi->len;\n      dpi->len = sVar3 + 1;\n      dpi->buf[sVar3] = '*';\n      dpi->last_char = '*';\n    }" { (if_statement "if (dpi->len == 0xff) {\n        dpi->buf[0xff] = '\0';\n        (*dpi->callback)(dpi->buf,0xff,dpi->opaque);\n        dpi->flush_count = dpi->flush_count + 1;\n        dpi->len = 0;\n      }" if (parenthesized_expression "(dpi->len == 0xff)" ( (binary_expression "dpi->len == 0xff" (field_expression "dpi->len" identifier -> field_identifier) == number_literal) )) (compound_statement "{\n        dpi->buf[0xff] = '\0';\n        (*dpi->callback)(dpi->buf,0xff,dpi->opaque);\n        dpi->flush_count = dpi->flush_count + 1;\n        dpi->len = 0;\n      }" { (expression_statement "dpi->buf[0xff] = '\0';" (assignment_expression "dpi->buf[0xff] = '\0'" (subscript_expression "dpi->buf[0xff]" (field_expression "dpi->buf" identifier -> field_identifier) [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "(*dpi->callback)(dpi->buf,0xff,dpi->opaque);" (call_expression "(*dpi->callback)(dpi->buf,0xff,dpi->opaque)" (parenthesized_expression "(*dpi->callback)" ( (pointer_expression "*dpi->callback" * (field_expression "dpi->callback" identifier -> field_identifier)) )) (argument_list "(dpi->buf,0xff,dpi->opaque)" ( (field_expression "dpi->buf" identifier -> field_identifier) , number_literal , (field_expression "dpi->opaque" identifier -> field_identifier) ))) ;) (expression_statement "dpi->flush_count = dpi->flush_count + 1;" (assignment_expression "dpi->flush_count = dpi->flush_count + 1" (field_expression "dpi->flush_count" identifier -> field_identifier) = (binary_expression "dpi->flush_count + 1" (field_expression "dpi->flush_count" identifier -> field_identifier) + number_literal)) ;) (expression_statement "dpi->len = 0;" (assignment_expression "dpi->len = 0" (field_expression "dpi->len" identifier -> field_identifier) = number_literal) ;) })) (expression_statement "sVar3 = dpi->len;" (assignment_expression "sVar3 = dpi->len" identifier = (field_expression "dpi->len" identifier -> field_identifier)) ;) (expression_statement "dpi->len = sVar3 + 1;" (assignment_expression "dpi->len = sVar3 + 1" (field_expression "dpi->len" identifier -> field_identifier) = (binary_expression "sVar3 + 1" identifier + number_literal)) ;) (expression_statement "dpi->buf[sVar3] = '*';" (assignment_expression "dpi->buf[sVar3] = '*'" (subscript_expression "dpi->buf[sVar3]" (field_expression "dpi->buf" identifier -> field_identifier) [ identifier ]) = (char_literal "'*'" ' character ')) ;) (expression_statement "dpi->last_char = '*';" (assignment_expression "dpi->last_char = '*'" (field_expression "dpi->last_char" identifier -> field_identifier) = (char_literal "'*'" ' character ')) ;) })) (break_statement "break;" break ;)) (case_statement "case DEMANGLE_COMPONENT_REFERENCE:\n    sVar3 = dpi->len;\nLAB_002e5807:\n    sVar2 = sVar3 + 1;\n    if (sVar3 == 0xff) {\n      pvVar1 = dpi->opaque;\n      dpi->buf[0xff] = '\0';\n      (*dpi->callback)(dpi->buf,0xff,pvVar1);\n      dpi->flush_count = dpi->flush_count + 1;\n      sVar2 = 1;\n      sVar3 = 0;\n    }\n    dpi->len = sVar2;\n    dpi->buf[sVar3] = '&';\n    dpi->last_char = '&';\n    break;" case identifier : (expression_statement "sVar3 = dpi->len;" (assignment_expression "sVar3 = dpi->len" identifier = (field_expression "dpi->len" identifier -> field_identifier)) ;) (labeled_statement "LAB_002e5807:\n    sVar2 = sVar3 + 1;" statement_identifier : (expression_statement "sVar2 = sVar3 + 1;" (assignment_expression "sVar2 = sVar3 + 1" identifier = (binary_expression "sVar3 + 1" identifier + number_literal)) ;)) (if_statement "if (sVar3 == 0xff) {\n      pvVar1 = dpi->opaque;\n      dpi->buf[0xff] = '\0';\n      (*dpi->callback)(dpi->buf,0xff,pvVar1);\n      dpi->flush_count = dpi->flush_count + 1;\n      sVar2 = 1;\n      sVar3 = 0;\n    }" if (parenthesized_expression "(sVar3 == 0xff)" ( (binary_expression "sVar3 == 0xff" identifier == number_literal) )) (compound_statement "{\n      pvVar1 = dpi->opaque;\n      dpi->buf[0xff] = '\0';\n      (*dpi->callback)(dpi->buf,0xff,pvVar1);\n      dpi->flush_count = dpi->flush_count + 1;\n      sVar2 = 1;\n      sVar3 = 0;\n    }" { (expression_statement "pvVar1 = dpi->opaque;" (assignment_expression "pvVar1 = dpi->opaque" identifier = (field_expression "dpi->opaque" identifier -> field_identifier)) ;) (expression_statement "dpi->buf[0xff] = '\0';" (assignment_expression "dpi->buf[0xff] = '\0'" (subscript_expression "dpi->buf[0xff]" (field_expression "dpi->buf" identifier -> field_identifier) [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "(*dpi->callback)(dpi->buf,0xff,pvVar1);" (call_expression "(*dpi->callback)(dpi->buf,0xff,pvVar1)" (parenthesized_expression "(*dpi->callback)" ( (pointer_expression "*dpi->callback" * (field_expression "dpi->callback" identifier -> field_identifier)) )) (argument_list "(dpi->buf,0xff,pvVar1)" ( (field_expression "dpi->buf" identifier -> field_identifier) , number_literal , identifier ))) ;) (expression_statement "dpi->flush_count = dpi->flush_count + 1;" (assignment_expression "dpi->flush_count = dpi->flush_count + 1" (field_expression "dpi->flush_count" identifier -> field_identifier) = (binary_expression "dpi->flush_count + 1" (field_expression "dpi->flush_count" identifier -> field_identifier) + number_literal)) ;) (expression_statement "sVar2 = 1;" (assignment_expression "sVar2 = 1" identifier = number_literal) ;) (expression_statement "sVar3 = 0;" (assignment_expression "sVar3 = 0" identifier = number_literal) ;) })) (expression_statement "dpi->len = sVar2;" (assignment_expression "dpi->len = sVar2" (field_expression "dpi->len" identifier -> field_identifier) = identifier) ;) (expression_statement "dpi->buf[sVar3] = '&';" (assignment_expression "dpi->buf[sVar3] = '&'" (subscript_expression "dpi->buf[sVar3]" (field_expression "dpi->buf" identifier -> field_identifier) [ identifier ]) = (char_literal "'&'" ' character ')) ;) (expression_statement "dpi->last_char = '&';" (assignment_expression "dpi->last_char = '&'" (field_expression "dpi->last_char" identifier -> field_identifier) = (char_literal "'&'" ' character ')) ;) (break_statement "break;" break ;)) (case_statement "case DEMANGLE_COMPONENT_RVALUE_REFERENCE:\n    sVar3 = dpi->len;\nLAB_002e5867:\n    pcVar5 = "&&";\n    cVar4 = '&';\n    while( true ) {\n      if (sVar3 == 0xff) {\n        pvVar1 = dpi->opaque;\n        dpi->buf[0xff] = '\0';\n        (*dpi->callback)(dpi->buf,0xff,pvVar1);\n        dpi->flush_count = dpi->flush_count + 1;\n        sVar2 = 1;\n        sVar3 = 0;\n      }\n      else {\n        sVar2 = sVar3 + 1;\n      }\n      pcVar5 = pcVar5 + 1;\n      dpi->len = sVar2;\n      dpi->buf[sVar3] = cVar4;\n      dpi->last_char = cVar4;\n      if (pcVar5 == "") break;\n      cVar4 = *pcVar5;\n      sVar3 = sVar2;\n    }\n    break;" case identifier : (expression_statement "sVar3 = dpi->len;" (assignment_expression "sVar3 = dpi->len" identifier = (field_expression "dpi->len" identifier -> field_identifier)) ;) (labeled_statement "LAB_002e5867:\n    pcVar5 = "&&";" statement_identifier : (expression_statement "pcVar5 = "&&";" (assignment_expression "pcVar5 = "&&"" identifier = (string_literal ""&&"" " string_content ")) ;)) (expression_statement "cVar4 = '&';" (assignment_expression "cVar4 = '&'" identifier = (char_literal "'&'" ' character ')) ;) (while_statement "while( true ) {\n      if (sVar3 == 0xff) {\n        pvVar1 = dpi->opaque;\n        dpi->buf[0xff] = '\0';\n        (*dpi->callback)(dpi->buf,0xff,pvVar1);\n        dpi->flush_count = dpi->flush_count + 1;\n        sVar2 = 1;\n        sVar3 = 0;\n      }\n      else {\n        sVar2 = sVar3 + 1;\n      }\n      pcVar5 = pcVar5 + 1;\n      dpi->len = sVar2;\n      dpi->buf[sVar3] = cVar4;\n      dpi->last_char = cVar4;\n      if (pcVar5 == "") break;\n      cVar4 = *pcVar5;\n      sVar3 = sVar2;\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      if (sVar3 == 0xff) {\n        pvVar1 = dpi->opaque;\n        dpi->buf[0xff] = '\0';\n        (*dpi->callback)(dpi->buf,0xff,pvVar1);\n        dpi->flush_count = dpi->flush_count + 1;\n        sVar2 = 1;\n        sVar3 = 0;\n      }\n      else {\n        sVar2 = sVar3 + 1;\n      }\n      pcVar5 = pcVar5 + 1;\n      dpi->len = sVar2;\n      dpi->buf[sVar3] = cVar4;\n      dpi->last_char = cVar4;\n      if (pcVar5 == "") break;\n      cVar4 = *pcVar5;\n      sVar3 = sVar2;\n    }" { (if_statement "if (sVar3 == 0xff) {\n        pvVar1 = dpi->opaque;\n        dpi->buf[0xff] = '\0';\n        (*dpi->callback)(dpi->buf,0xff,pvVar1);\n        dpi->flush_count = dpi->flush_count + 1;\n        sVar2 = 1;\n        sVar3 = 0;\n      }\n      else {\n        sVar2 = sVar3 + 1;\n      }" if (parenthesized_expression "(sVar3 == 0xff)" ( (binary_expression "sVar3 == 0xff" identifier == number_literal) )) (compound_statement "{\n        pvVar1 = dpi->opaque;\n        dpi->buf[0xff] = '\0';\n        (*dpi->callback)(dpi->buf,0xff,pvVar1);\n        dpi->flush_count = dpi->flush_count + 1;\n        sVar2 = 1;\n        sVar3 = 0;\n      }" { (expression_statement "pvVar1 = dpi->opaque;" (assignment_expression "pvVar1 = dpi->opaque" identifier = (field_expression "dpi->opaque" identifier -> field_identifier)) ;) (expression_statement "dpi->buf[0xff] = '\0';" (assignment_expression "dpi->buf[0xff] = '\0'" (subscript_expression "dpi->buf[0xff]" (field_expression "dpi->buf" identifier -> field_identifier) [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "(*dpi->callback)(dpi->buf,0xff,pvVar1);" (call_expression "(*dpi->callback)(dpi->buf,0xff,pvVar1)" (parenthesized_expression "(*dpi->callback)" ( (pointer_expression "*dpi->callback" * (field_expression "dpi->callback" identifier -> field_identifier)) )) (argument_list "(dpi->buf,0xff,pvVar1)" ( (field_expression "dpi->buf" identifier -> field_identifier) , number_literal , identifier ))) ;) (expression_statement "dpi->flush_count = dpi->flush_count + 1;" (assignment_expression "dpi->flush_count = dpi->flush_count + 1" (field_expression "dpi->flush_count" identifier -> field_identifier) = (binary_expression "dpi->flush_count + 1" (field_expression "dpi->flush_count" identifier -> field_identifier) + number_literal)) ;) (expression_statement "sVar2 = 1;" (assignment_expression "sVar2 = 1" identifier = number_literal) ;) (expression_statement "sVar3 = 0;" (assignment_expression "sVar3 = 0" identifier = number_literal) ;) }) (else_clause "else {\n        sVar2 = sVar3 + 1;\n      }" else (compound_statement "{\n        sVar2 = sVar3 + 1;\n      }" { (expression_statement "sVar2 = sVar3 + 1;" (assignment_expression "sVar2 = sVar3 + 1" identifier = (binary_expression "sVar3 + 1" identifier + number_literal)) ;) }))) (expression_statement "pcVar5 = pcVar5 + 1;" (assignment_expression "pcVar5 = pcVar5 + 1" identifier = (binary_expression "pcVar5 + 1" identifier + number_literal)) ;) (expression_statement "dpi->len = sVar2;" (assignment_expression "dpi->len = sVar2" (field_expression "dpi->len" identifier -> field_identifier) = identifier) ;) (expression_statement "dpi->buf[sVar3] = cVar4;" (assignment_expression "dpi->buf[sVar3] = cVar4" (subscript_expression "dpi->buf[sVar3]" (field_expression "dpi->buf" identifier -> field_identifier) [ identifier ]) = identifier) ;) (expression_statement "dpi->last_char = cVar4;" (assignment_expression "dpi->last_char = cVar4" (field_expression "dpi->last_char" identifier -> field_identifier) = identifier) ;) (if_statement "if (pcVar5 == "") break;" if (parenthesized_expression "(pcVar5 == "")" ( (binary_expression "pcVar5 == """ identifier == (string_literal """" " ")) )) (break_statement "break;" break ;)) (expression_statement "cVar4 = *pcVar5;" (assignment_expression "cVar4 = *pcVar5" identifier = (pointer_expression "*pcVar5" * identifier)) ;) (expression_statement "sVar3 = sVar2;" (assignment_expression "sVar3 = sVar2" identifier = identifier) ;) })) (break_statement "break;" break ;)) (case_statement "case DEMANGLE_COMPONENT_COMPLEX:\n    pcVar5 = "complex ";\n    cVar4 = 'c';\n    sVar3 = dpi->len;\n    while( true ) {\n      if (sVar3 == 0xff) {\n        pvVar1 = dpi->opaque;\n        dpi->buf[0xff] = '\0';\n        (*dpi->callback)(dpi->buf,0xff,pvVar1);\n        dpi->flush_count = dpi->flush_count + 1;\n        sVar2 = 1;\n        sVar3 = 0;\n      }\n      else {\n        sVar2 = sVar3 + 1;\n      }\n      pcVar5 = pcVar5 + 1;\n      dpi->len = sVar2;\n      dpi->buf[sVar3] = cVar4;\n      dpi->last_char = cVar4;\n      if (pcVar5 == "") break;\n      cVar4 = *pcVar5;\n      sVar3 = sVar2;\n    }\n    break;" case identifier : (expression_statement "pcVar5 = "complex ";" (assignment_expression "pcVar5 = "complex "" identifier = (string_literal ""complex "" " string_content ")) ;) (expression_statement "cVar4 = 'c';" (assignment_expression "cVar4 = 'c'" identifier = (char_literal "'c'" ' character ')) ;) (expression_statement "sVar3 = dpi->len;" (assignment_expression "sVar3 = dpi->len" identifier = (field_expression "dpi->len" identifier -> field_identifier)) ;) (while_statement "while( true ) {\n      if (sVar3 == 0xff) {\n        pvVar1 = dpi->opaque;\n        dpi->buf[0xff] = '\0';\n        (*dpi->callback)(dpi->buf,0xff,pvVar1);\n        dpi->flush_count = dpi->flush_count + 1;\n        sVar2 = 1;\n        sVar3 = 0;\n      }\n      else {\n        sVar2 = sVar3 + 1;\n      }\n      pcVar5 = pcVar5 + 1;\n      dpi->len = sVar2;\n      dpi->buf[sVar3] = cVar4;\n      dpi->last_char = cVar4;\n      if (pcVar5 == "") break;\n      cVar4 = *pcVar5;\n      sVar3 = sVar2;\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      if (sVar3 == 0xff) {\n        pvVar1 = dpi->opaque;\n        dpi->buf[0xff] = '\0';\n        (*dpi->callback)(dpi->buf,0xff,pvVar1);\n        dpi->flush_count = dpi->flush_count + 1;\n        sVar2 = 1;\n        sVar3 = 0;\n      }\n      else {\n        sVar2 = sVar3 + 1;\n      }\n      pcVar5 = pcVar5 + 1;\n      dpi->len = sVar2;\n      dpi->buf[sVar3] = cVar4;\n      dpi->last_char = cVar4;\n      if (pcVar5 == "") break;\n      cVar4 = *pcVar5;\n      sVar3 = sVar2;\n    }" { (if_statement "if (sVar3 == 0xff) {\n        pvVar1 = dpi->opaque;\n        dpi->buf[0xff] = '\0';\n        (*dpi->callback)(dpi->buf,0xff,pvVar1);\n        dpi->flush_count = dpi->flush_count + 1;\n        sVar2 = 1;\n        sVar3 = 0;\n      }\n      else {\n        sVar2 = sVar3 + 1;\n      }" if (parenthesized_expression "(sVar3 == 0xff)" ( (binary_expression "sVar3 == 0xff" identifier == number_literal) )) (compound_statement "{\n        pvVar1 = dpi->opaque;\n        dpi->buf[0xff] = '\0';\n        (*dpi->callback)(dpi->buf,0xff,pvVar1);\n        dpi->flush_count = dpi->flush_count + 1;\n        sVar2 = 1;\n        sVar3 = 0;\n      }" { (expression_statement "pvVar1 = dpi->opaque;" (assignment_expression "pvVar1 = dpi->opaque" identifier = (field_expression "dpi->opaque" identifier -> field_identifier)) ;) (expression_statement "dpi->buf[0xff] = '\0';" (assignment_expression "dpi->buf[0xff] = '\0'" (subscript_expression "dpi->buf[0xff]" (field_expression "dpi->buf" identifier -> field_identifier) [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "(*dpi->callback)(dpi->buf,0xff,pvVar1);" (call_expression "(*dpi->callback)(dpi->buf,0xff,pvVar1)" (parenthesized_expression "(*dpi->callback)" ( (pointer_expression "*dpi->callback" * (field_expression "dpi->callback" identifier -> field_identifier)) )) (argument_list "(dpi->buf,0xff,pvVar1)" ( (field_expression "dpi->buf" identifier -> field_identifier) , number_literal , identifier ))) ;) (expression_statement "dpi->flush_count = dpi->flush_count + 1;" (assignment_expression "dpi->flush_count = dpi->flush_count + 1" (field_expression "dpi->flush_count" identifier -> field_identifier) = (binary_expression "dpi->flush_count + 1" (field_expression "dpi->flush_count" identifier -> field_identifier) + number_literal)) ;) (expression_statement "sVar2 = 1;" (assignment_expression "sVar2 = 1" identifier = number_literal) ;) (expression_statement "sVar3 = 0;" (assignment_expression "sVar3 = 0" identifier = number_literal) ;) }) (else_clause "else {\n        sVar2 = sVar3 + 1;\n      }" else (compound_statement "{\n        sVar2 = sVar3 + 1;\n      }" { (expression_statement "sVar2 = sVar3 + 1;" (assignment_expression "sVar2 = sVar3 + 1" identifier = (binary_expression "sVar3 + 1" identifier + number_literal)) ;) }))) (expression_statement "pcVar5 = pcVar5 + 1;" (assignment_expression "pcVar5 = pcVar5 + 1" identifier = (binary_expression "pcVar5 + 1" identifier + number_literal)) ;) (expression_statement "dpi->len = sVar2;" (assignment_expression "dpi->len = sVar2" (field_expression "dpi->len" identifier -> field_identifier) = identifier) ;) (expression_statement "dpi->buf[sVar3] = cVar4;" (assignment_expression "dpi->buf[sVar3] = cVar4" (subscript_expression "dpi->buf[sVar3]" (field_expression "dpi->buf" identifier -> field_identifier) [ identifier ]) = identifier) ;) (expression_statement "dpi->last_char = cVar4;" (assignment_expression "dpi->last_char = cVar4" (field_expression "dpi->last_char" identifier -> field_identifier) = identifier) ;) (if_statement "if (pcVar5 == "") break;" if (parenthesized_expression "(pcVar5 == "")" ( (binary_expression "pcVar5 == """ identifier == (string_literal """" " ")) )) (break_statement "break;" break ;)) (expression_statement "cVar4 = *pcVar5;" (assignment_expression "cVar4 = *pcVar5" identifier = (pointer_expression "*pcVar5" * identifier)) ;) (expression_statement "sVar3 = sVar2;" (assignment_expression "sVar3 = sVar2" identifier = identifier) ;) })) (break_statement "break;" break ;)) (case_statement "case DEMANGLE_COMPONENT_IMAGINARY:\n    pcVar5 = "imaginary ";\n    cVar4 = 'i';\n    sVar3 = dpi->len;\n    while( true ) {\n      pcVar5 = pcVar5 + 1;\n      if (sVar3 == 0xff) {\n        pvVar1 = dpi->opaque;\n        dpi->buf[0xff] = '\0';\n        (*dpi->callback)(dpi->buf,0xff,pvVar1);\n        dpi->flush_count = dpi->flush_count + 1;\n        sVar2 = 1;\n        sVar3 = 0;\n      }\n      else {\n        sVar2 = sVar3 + 1;\n      }\n      dpi->len = sVar2;\n      dpi->buf[sVar3] = cVar4;\n      dpi->last_char = cVar4;\n      if (pcVar5 == "") break;\n      cVar4 = *pcVar5;\n      sVar3 = sVar2;\n    }\n    break;" case identifier : (expression_statement "pcVar5 = "imaginary ";" (assignment_expression "pcVar5 = "imaginary "" identifier = (string_literal ""imaginary "" " string_content ")) ;) (expression_statement "cVar4 = 'i';" (assignment_expression "cVar4 = 'i'" identifier = (char_literal "'i'" ' character ')) ;) (expression_statement "sVar3 = dpi->len;" (assignment_expression "sVar3 = dpi->len" identifier = (field_expression "dpi->len" identifier -> field_identifier)) ;) (while_statement "while( true ) {\n      pcVar5 = pcVar5 + 1;\n      if (sVar3 == 0xff) {\n        pvVar1 = dpi->opaque;\n        dpi->buf[0xff] = '\0';\n        (*dpi->callback)(dpi->buf,0xff,pvVar1);\n        dpi->flush_count = dpi->flush_count + 1;\n        sVar2 = 1;\n        sVar3 = 0;\n      }\n      else {\n        sVar2 = sVar3 + 1;\n      }\n      dpi->len = sVar2;\n      dpi->buf[sVar3] = cVar4;\n      dpi->last_char = cVar4;\n      if (pcVar5 == "") break;\n      cVar4 = *pcVar5;\n      sVar3 = sVar2;\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      pcVar5 = pcVar5 + 1;\n      if (sVar3 == 0xff) {\n        pvVar1 = dpi->opaque;\n        dpi->buf[0xff] = '\0';\n        (*dpi->callback)(dpi->buf,0xff,pvVar1);\n        dpi->flush_count = dpi->flush_count + 1;\n        sVar2 = 1;\n        sVar3 = 0;\n      }\n      else {\n        sVar2 = sVar3 + 1;\n      }\n      dpi->len = sVar2;\n      dpi->buf[sVar3] = cVar4;\n      dpi->last_char = cVar4;\n      if (pcVar5 == "") break;\n      cVar4 = *pcVar5;\n      sVar3 = sVar2;\n    }" { (expression_statement "pcVar5 = pcVar5 + 1;" (assignment_expression "pcVar5 = pcVar5 + 1" identifier = (binary_expression "pcVar5 + 1" identifier + number_literal)) ;) (if_statement "if (sVar3 == 0xff) {\n        pvVar1 = dpi->opaque;\n        dpi->buf[0xff] = '\0';\n        (*dpi->callback)(dpi->buf,0xff,pvVar1);\n        dpi->flush_count = dpi->flush_count + 1;\n        sVar2 = 1;\n        sVar3 = 0;\n      }\n      else {\n        sVar2 = sVar3 + 1;\n      }" if (parenthesized_expression "(sVar3 == 0xff)" ( (binary_expression "sVar3 == 0xff" identifier == number_literal) )) (compound_statement "{\n        pvVar1 = dpi->opaque;\n        dpi->buf[0xff] = '\0';\n        (*dpi->callback)(dpi->buf,0xff,pvVar1);\n        dpi->flush_count = dpi->flush_count + 1;\n        sVar2 = 1;\n        sVar3 = 0;\n      }" { (expression_statement "pvVar1 = dpi->opaque;" (assignment_expression "pvVar1 = dpi->opaque" identifier = (field_expression "dpi->opaque" identifier -> field_identifier)) ;) (expression_statement "dpi->buf[0xff] = '\0';" (assignment_expression "dpi->buf[0xff] = '\0'" (subscript_expression "dpi->buf[0xff]" (field_expression "dpi->buf" identifier -> field_identifier) [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "(*dpi->callback)(dpi->buf,0xff,pvVar1);" (call_expression "(*dpi->callback)(dpi->buf,0xff,pvVar1)" (parenthesized_expression "(*dpi->callback)" ( (pointer_expression "*dpi->callback" * (field_expression "dpi->callback" identifier -> field_identifier)) )) (argument_list "(dpi->buf,0xff,pvVar1)" ( (field_expression "dpi->buf" identifier -> field_identifier) , number_literal , identifier ))) ;) (expression_statement "dpi->flush_count = dpi->flush_count + 1;" (assignment_expression "dpi->flush_count = dpi->flush_count + 1" (field_expression "dpi->flush_count" identifier -> field_identifier) = (binary_expression "dpi->flush_count + 1" (field_expression "dpi->flush_count" identifier -> field_identifier) + number_literal)) ;) (expression_statement "sVar2 = 1;" (assignment_expression "sVar2 = 1" identifier = number_literal) ;) (expression_statement "sVar3 = 0;" (assignment_expression "sVar3 = 0" identifier = number_literal) ;) }) (else_clause "else {\n        sVar2 = sVar3 + 1;\n      }" else (compound_statement "{\n        sVar2 = sVar3 + 1;\n      }" { (expression_statement "sVar2 = sVar3 + 1;" (assignment_expression "sVar2 = sVar3 + 1" identifier = (binary_expression "sVar3 + 1" identifier + number_literal)) ;) }))) (expression_statement "dpi->len = sVar2;" (assignment_expression "dpi->len = sVar2" (field_expression "dpi->len" identifier -> field_identifier) = identifier) ;) (expression_statement "dpi->buf[sVar3] = cVar4;" (assignment_expression "dpi->buf[sVar3] = cVar4" (subscript_expression "dpi->buf[sVar3]" (field_expression "dpi->buf" identifier -> field_identifier) [ identifier ]) = identifier) ;) (expression_statement "dpi->last_char = cVar4;" (assignment_expression "dpi->last_char = cVar4" (field_expression "dpi->last_char" identifier -> field_identifier) = identifier) ;) (if_statement "if (pcVar5 == "") break;" if (parenthesized_expression "(pcVar5 == "")" ( (binary_expression "pcVar5 == """ identifier == (string_literal """" " ")) )) (break_statement "break;" break ;)) (expression_statement "cVar4 = *pcVar5;" (assignment_expression "cVar4 = *pcVar5" identifier = (pointer_expression "*pcVar5" * identifier)) ;) (expression_statement "sVar3 = sVar2;" (assignment_expression "sVar3 = sVar2" identifier = identifier) ;) })) (break_statement "break;" break ;)) (case_statement "case DEMANGLE_COMPONENT_PTRMEM_TYPE:\n    if (dpi->last_char != '(') {\n      sVar2 = dpi->len;\n      sVar3 = sVar2 + 1;\n      if (sVar2 == 0xff) {\n        pvVar1 = dpi->opaque;\n        dpi->buf[0xff] = '\0';\n        (*dpi->callback)(dpi->buf,0xff,pvVar1);\n        dpi->flush_count = dpi->flush_count + 1;\n        sVar3 = 1;\n        sVar2 = 0;\n      }\n      dpi->len = sVar3;\n      dpi->buf[sVar2] = ' ';\n      dpi->last_char = ' ';\n    }\n    pcVar5 = "::*";\n    cVar4 = ':';\n    d_print_comp(dpi,options,(mod->u).s_fixed.length);\n    sVar3 = dpi->len;\n    while( true ) {\n      if (sVar3 == 0xff) {\n        pvVar1 = dpi->opaque;\n        dpi->buf[0xff] = '\0';\n        (*dpi->callback)(dpi->buf,0xff,pvVar1);\n        dpi->flush_count = dpi->flush_count + 1;\n        sVar2 = 1;\n        sVar3 = 0;\n      }\n      else {\n        sVar2 = sVar3 + 1;\n      }\n      pcVar5 = pcVar5 + 1;\n      dpi->len = sVar2;\n      dpi->buf[sVar3] = cVar4;\n      dpi->last_char = cVar4;\n      if (pcVar5 == "") break;\n      cVar4 = *pcVar5;\n      sVar3 = sVar2;\n    }\n    break;" case identifier : (if_statement "if (dpi->last_char != '(') {\n      sVar2 = dpi->len;\n      sVar3 = sVar2 + 1;\n      if (sVar2 == 0xff) {\n        pvVar1 = dpi->opaque;\n        dpi->buf[0xff] = '\0';\n        (*dpi->callback)(dpi->buf,0xff,pvVar1);\n        dpi->flush_count = dpi->flush_count + 1;\n        sVar3 = 1;\n        sVar2 = 0;\n      }\n      dpi->len = sVar3;\n      dpi->buf[sVar2] = ' ';\n      dpi->last_char = ' ';\n    }" if (parenthesized_expression "(dpi->last_char != '(')" ( (binary_expression "dpi->last_char != '('" (field_expression "dpi->last_char" identifier -> field_identifier) != (char_literal "'('" ' character ')) )) (compound_statement "{\n      sVar2 = dpi->len;\n      sVar3 = sVar2 + 1;\n      if (sVar2 == 0xff) {\n        pvVar1 = dpi->opaque;\n        dpi->buf[0xff] = '\0';\n        (*dpi->callback)(dpi->buf,0xff,pvVar1);\n        dpi->flush_count = dpi->flush_count + 1;\n        sVar3 = 1;\n        sVar2 = 0;\n      }\n      dpi->len = sVar3;\n      dpi->buf[sVar2] = ' ';\n      dpi->last_char = ' ';\n    }" { (expression_statement "sVar2 = dpi->len;" (assignment_expression "sVar2 = dpi->len" identifier = (field_expression "dpi->len" identifier -> field_identifier)) ;) (expression_statement "sVar3 = sVar2 + 1;" (assignment_expression "sVar3 = sVar2 + 1" identifier = (binary_expression "sVar2 + 1" identifier + number_literal)) ;) (if_statement "if (sVar2 == 0xff) {\n        pvVar1 = dpi->opaque;\n        dpi->buf[0xff] = '\0';\n        (*dpi->callback)(dpi->buf,0xff,pvVar1);\n        dpi->flush_count = dpi->flush_count + 1;\n        sVar3 = 1;\n        sVar2 = 0;\n      }" if (parenthesized_expression "(sVar2 == 0xff)" ( (binary_expression "sVar2 == 0xff" identifier == number_literal) )) (compound_statement "{\n        pvVar1 = dpi->opaque;\n        dpi->buf[0xff] = '\0';\n        (*dpi->callback)(dpi->buf,0xff,pvVar1);\n        dpi->flush_count = dpi->flush_count + 1;\n        sVar3 = 1;\n        sVar2 = 0;\n      }" { (expression_statement "pvVar1 = dpi->opaque;" (assignment_expression "pvVar1 = dpi->opaque" identifier = (field_expression "dpi->opaque" identifier -> field_identifier)) ;) (expression_statement "dpi->buf[0xff] = '\0';" (assignment_expression "dpi->buf[0xff] = '\0'" (subscript_expression "dpi->buf[0xff]" (field_expression "dpi->buf" identifier -> field_identifier) [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "(*dpi->callback)(dpi->buf,0xff,pvVar1);" (call_expression "(*dpi->callback)(dpi->buf,0xff,pvVar1)" (parenthesized_expression "(*dpi->callback)" ( (pointer_expression "*dpi->callback" * (field_expression "dpi->callback" identifier -> field_identifier)) )) (argument_list "(dpi->buf,0xff,pvVar1)" ( (field_expression "dpi->buf" identifier -> field_identifier) , number_literal , identifier ))) ;) (expression_statement "dpi->flush_count = dpi->flush_count + 1;" (assignment_expression "dpi->flush_count = dpi->flush_count + 1" (field_expression "dpi->flush_count" identifier -> field_identifier) = (binary_expression "dpi->flush_count + 1" (field_expression "dpi->flush_count" identifier -> field_identifier) + number_literal)) ;) (expression_statement "sVar3 = 1;" (assignment_expression "sVar3 = 1" identifier = number_literal) ;) (expression_statement "sVar2 = 0;" (assignment_expression "sVar2 = 0" identifier = number_literal) ;) })) (expression_statement "dpi->len = sVar3;" (assignment_expression "dpi->len = sVar3" (field_expression "dpi->len" identifier -> field_identifier) = identifier) ;) (expression_statement "dpi->buf[sVar2] = ' ';" (assignment_expression "dpi->buf[sVar2] = ' '" (subscript_expression "dpi->buf[sVar2]" (field_expression "dpi->buf" identifier -> field_identifier) [ identifier ]) = (char_literal "' '" ' character ')) ;) (expression_statement "dpi->last_char = ' ';" (assignment_expression "dpi->last_char = ' '" (field_expression "dpi->last_char" identifier -> field_identifier) = (char_literal "' '" ' character ')) ;) })) (expression_statement "pcVar5 = "::*";" (assignment_expression "pcVar5 = "::*"" identifier = (string_literal ""::*"" " string_content ")) ;) (expression_statement "cVar4 = ':';" (assignment_expression "cVar4 = ':'" identifier = (char_literal "':'" ' character ')) ;) (expression_statement "d_print_comp(dpi,options,(mod->u).s_fixed.length);" (call_expression "d_print_comp(dpi,options,(mod->u).s_fixed.length)" identifier (argument_list "(dpi,options,(mod->u).s_fixed.length)" ( identifier , identifier , (field_expression "(mod->u).s_fixed.length" (field_expression "(mod->u).s_fixed" (parenthesized_expression "(mod->u)" ( (field_expression "mod->u" identifier -> field_identifier) )) . field_identifier) . field_identifier) ))) ;) (expression_statement "sVar3 = dpi->len;" (assignment_expression "sVar3 = dpi->len" identifier = (field_expression "dpi->len" identifier -> field_identifier)) ;) (while_statement "while( true ) {\n      if (sVar3 == 0xff) {\n        pvVar1 = dpi->opaque;\n        dpi->buf[0xff] = '\0';\n        (*dpi->callback)(dpi->buf,0xff,pvVar1);\n        dpi->flush_count = dpi->flush_count + 1;\n        sVar2 = 1;\n        sVar3 = 0;\n      }\n      else {\n        sVar2 = sVar3 + 1;\n      }\n      pcVar5 = pcVar5 + 1;\n      dpi->len = sVar2;\n      dpi->buf[sVar3] = cVar4;\n      dpi->last_char = cVar4;\n      if (pcVar5 == "") break;\n      cVar4 = *pcVar5;\n      sVar3 = sVar2;\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      if (sVar3 == 0xff) {\n        pvVar1 = dpi->opaque;\n        dpi->buf[0xff] = '\0';\n        (*dpi->callback)(dpi->buf,0xff,pvVar1);\n        dpi->flush_count = dpi->flush_count + 1;\n        sVar2 = 1;\n        sVar3 = 0;\n      }\n      else {\n        sVar2 = sVar3 + 1;\n      }\n      pcVar5 = pcVar5 + 1;\n      dpi->len = sVar2;\n      dpi->buf[sVar3] = cVar4;\n      dpi->last_char = cVar4;\n      if (pcVar5 == "") break;\n      cVar4 = *pcVar5;\n      sVar3 = sVar2;\n    }" { (if_statement "if (sVar3 == 0xff) {\n        pvVar1 = dpi->opaque;\n        dpi->buf[0xff] = '\0';\n        (*dpi->callback)(dpi->buf,0xff,pvVar1);\n        dpi->flush_count = dpi->flush_count + 1;\n        sVar2 = 1;\n        sVar3 = 0;\n      }\n      else {\n        sVar2 = sVar3 + 1;\n      }" if (parenthesized_expression "(sVar3 == 0xff)" ( (binary_expression "sVar3 == 0xff" identifier == number_literal) )) (compound_statement "{\n        pvVar1 = dpi->opaque;\n        dpi->buf[0xff] = '\0';\n        (*dpi->callback)(dpi->buf,0xff,pvVar1);\n        dpi->flush_count = dpi->flush_count + 1;\n        sVar2 = 1;\n        sVar3 = 0;\n      }" { (expression_statement "pvVar1 = dpi->opaque;" (assignment_expression "pvVar1 = dpi->opaque" identifier = (field_expression "dpi->opaque" identifier -> field_identifier)) ;) (expression_statement "dpi->buf[0xff] = '\0';" (assignment_expression "dpi->buf[0xff] = '\0'" (subscript_expression "dpi->buf[0xff]" (field_expression "dpi->buf" identifier -> field_identifier) [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "(*dpi->callback)(dpi->buf,0xff,pvVar1);" (call_expression "(*dpi->callback)(dpi->buf,0xff,pvVar1)" (parenthesized_expression "(*dpi->callback)" ( (pointer_expression "*dpi->callback" * (field_expression "dpi->callback" identifier -> field_identifier)) )) (argument_list "(dpi->buf,0xff,pvVar1)" ( (field_expression "dpi->buf" identifier -> field_identifier) , number_literal , identifier ))) ;) (expression_statement "dpi->flush_count = dpi->flush_count + 1;" (assignment_expression "dpi->flush_count = dpi->flush_count + 1" (field_expression "dpi->flush_count" identifier -> field_identifier) = (binary_expression "dpi->flush_count + 1" (field_expression "dpi->flush_count" identifier -> field_identifier) + number_literal)) ;) (expression_statement "sVar2 = 1;" (assignment_expression "sVar2 = 1" identifier = number_literal) ;) (expression_statement "sVar3 = 0;" (assignment_expression "sVar3 = 0" identifier = number_literal) ;) }) (else_clause "else {\n        sVar2 = sVar3 + 1;\n      }" else (compound_statement "{\n        sVar2 = sVar3 + 1;\n      }" { (expression_statement "sVar2 = sVar3 + 1;" (assignment_expression "sVar2 = sVar3 + 1" identifier = (binary_expression "sVar3 + 1" identifier + number_literal)) ;) }))) (expression_statement "pcVar5 = pcVar5 + 1;" (assignment_expression "pcVar5 = pcVar5 + 1" identifier = (binary_expression "pcVar5 + 1" identifier + number_literal)) ;) (expression_statement "dpi->len = sVar2;" (assignment_expression "dpi->len = sVar2" (field_expression "dpi->len" identifier -> field_identifier) = identifier) ;) (expression_statement "dpi->buf[sVar3] = cVar4;" (assignment_expression "dpi->buf[sVar3] = cVar4" (subscript_expression "dpi->buf[sVar3]" (field_expression "dpi->buf" identifier -> field_identifier) [ identifier ]) = identifier) ;) (expression_statement "dpi->last_char = cVar4;" (assignment_expression "dpi->last_char = cVar4" (field_expression "dpi->last_char" identifier -> field_identifier) = identifier) ;) (if_statement "if (pcVar5 == "") break;" if (parenthesized_expression "(pcVar5 == "")" ( (binary_expression "pcVar5 == """ identifier == (string_literal """" " ")) )) (break_statement "break;" break ;)) (expression_statement "cVar4 = *pcVar5;" (assignment_expression "cVar4 = *pcVar5" identifier = (pointer_expression "*pcVar5" * identifier)) ;) (expression_statement "sVar3 = sVar2;" (assignment_expression "sVar3 = sVar2" identifier = identifier) ;) })) (break_statement "break;" break ;)) (case_statement "case DEMANGLE_COMPONENT_VECTOR_TYPE:\n    pcVar5 = " __vector(";\n    cVar4 = ' ';\n    sVar3 = dpi->len;\n    while( true ) {\n      pcVar5 = pcVar5 + 1;\n      if (sVar3 == 0xff) {\n        pvVar1 = dpi->opaque;\n        dpi->buf[0xff] = '\0';\n        (*dpi->callback)(dpi->buf,0xff,pvVar1);\n        dpi->flush_count = dpi->flush_count + 1;\n        sVar2 = 1;\n        sVar3 = 0;\n      }\n      else {\n        sVar2 = sVar3 + 1;\n      }\n      dpi->len = sVar2;\n      dpi->buf[sVar3] = cVar4;\n      dpi->last_char = cVar4;\n      if (pcVar5 == "") break;\n      cVar4 = *pcVar5;\n      sVar3 = sVar2;\n    }\n    dc = (mod->u).s_fixed.length;\n    goto LAB_002e5aba;" case identifier : (expression_statement "pcVar5 = " __vector(";" (assignment_expression "pcVar5 = " __vector("" identifier = (string_literal "" __vector("" " string_content ")) ;) (expression_statement "cVar4 = ' ';" (assignment_expression "cVar4 = ' '" identifier = (char_literal "' '" ' character ')) ;) (expression_statement "sVar3 = dpi->len;" (assignment_expression "sVar3 = dpi->len" identifier = (field_expression "dpi->len" identifier -> field_identifier)) ;) (while_statement "while( true ) {\n      pcVar5 = pcVar5 + 1;\n      if (sVar3 == 0xff) {\n        pvVar1 = dpi->opaque;\n        dpi->buf[0xff] = '\0';\n        (*dpi->callback)(dpi->buf,0xff,pvVar1);\n        dpi->flush_count = dpi->flush_count + 1;\n        sVar2 = 1;\n        sVar3 = 0;\n      }\n      else {\n        sVar2 = sVar3 + 1;\n      }\n      dpi->len = sVar2;\n      dpi->buf[sVar3] = cVar4;\n      dpi->last_char = cVar4;\n      if (pcVar5 == "") break;\n      cVar4 = *pcVar5;\n      sVar3 = sVar2;\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      pcVar5 = pcVar5 + 1;\n      if (sVar3 == 0xff) {\n        pvVar1 = dpi->opaque;\n        dpi->buf[0xff] = '\0';\n        (*dpi->callback)(dpi->buf,0xff,pvVar1);\n        dpi->flush_count = dpi->flush_count + 1;\n        sVar2 = 1;\n        sVar3 = 0;\n      }\n      else {\n        sVar2 = sVar3 + 1;\n      }\n      dpi->len = sVar2;\n      dpi->buf[sVar3] = cVar4;\n      dpi->last_char = cVar4;\n      if (pcVar5 == "") break;\n      cVar4 = *pcVar5;\n      sVar3 = sVar2;\n    }" { (expression_statement "pcVar5 = pcVar5 + 1;" (assignment_expression "pcVar5 = pcVar5 + 1" identifier = (binary_expression "pcVar5 + 1" identifier + number_literal)) ;) (if_statement "if (sVar3 == 0xff) {\n        pvVar1 = dpi->opaque;\n        dpi->buf[0xff] = '\0';\n        (*dpi->callback)(dpi->buf,0xff,pvVar1);\n        dpi->flush_count = dpi->flush_count + 1;\n        sVar2 = 1;\n        sVar3 = 0;\n      }\n      else {\n        sVar2 = sVar3 + 1;\n      }" if (parenthesized_expression "(sVar3 == 0xff)" ( (binary_expression "sVar3 == 0xff" identifier == number_literal) )) (compound_statement "{\n        pvVar1 = dpi->opaque;\n        dpi->buf[0xff] = '\0';\n        (*dpi->callback)(dpi->buf,0xff,pvVar1);\n        dpi->flush_count = dpi->flush_count + 1;\n        sVar2 = 1;\n        sVar3 = 0;\n      }" { (expression_statement "pvVar1 = dpi->opaque;" (assignment_expression "pvVar1 = dpi->opaque" identifier = (field_expression "dpi->opaque" identifier -> field_identifier)) ;) (expression_statement "dpi->buf[0xff] = '\0';" (assignment_expression "dpi->buf[0xff] = '\0'" (subscript_expression "dpi->buf[0xff]" (field_expression "dpi->buf" identifier -> field_identifier) [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "(*dpi->callback)(dpi->buf,0xff,pvVar1);" (call_expression "(*dpi->callback)(dpi->buf,0xff,pvVar1)" (parenthesized_expression "(*dpi->callback)" ( (pointer_expression "*dpi->callback" * (field_expression "dpi->callback" identifier -> field_identifier)) )) (argument_list "(dpi->buf,0xff,pvVar1)" ( (field_expression "dpi->buf" identifier -> field_identifier) , number_literal , identifier ))) ;) (expression_statement "dpi->flush_count = dpi->flush_count + 1;" (assignment_expression "dpi->flush_count = dpi->flush_count + 1" (field_expression "dpi->flush_count" identifier -> field_identifier) = (binary_expression "dpi->flush_count + 1" (field_expression "dpi->flush_count" identifier -> field_identifier) + number_literal)) ;) (expression_statement "sVar2 = 1;" (assignment_expression "sVar2 = 1" identifier = number_literal) ;) (expression_statement "sVar3 = 0;" (assignment_expression "sVar3 = 0" identifier = number_literal) ;) }) (else_clause "else {\n        sVar2 = sVar3 + 1;\n      }" else (compound_statement "{\n        sVar2 = sVar3 + 1;\n      }" { (expression_statement "sVar2 = sVar3 + 1;" (assignment_expression "sVar2 = sVar3 + 1" identifier = (binary_expression "sVar3 + 1" identifier + number_literal)) ;) }))) (expression_statement "dpi->len = sVar2;" (assignment_expression "dpi->len = sVar2" (field_expression "dpi->len" identifier -> field_identifier) = identifier) ;) (expression_statement "dpi->buf[sVar3] = cVar4;" (assignment_expression "dpi->buf[sVar3] = cVar4" (subscript_expression "dpi->buf[sVar3]" (field_expression "dpi->buf" identifier -> field_identifier) [ identifier ]) = identifier) ;) (expression_statement "dpi->last_char = cVar4;" (assignment_expression "dpi->last_char = cVar4" (field_expression "dpi->last_char" identifier -> field_identifier) = identifier) ;) (if_statement "if (pcVar5 == "") break;" if (parenthesized_expression "(pcVar5 == "")" ( (binary_expression "pcVar5 == """ identifier == (string_literal """" " ")) )) (break_statement "break;" break ;)) (expression_statement "cVar4 = *pcVar5;" (assignment_expression "cVar4 = *pcVar5" identifier = (pointer_expression "*pcVar5" * identifier)) ;) (expression_statement "sVar3 = sVar2;" (assignment_expression "sVar3 = sVar2" identifier = identifier) ;) })) (expression_statement "dc = (mod->u).s_fixed.length;" (assignment_expression "dc = (mod->u).s_fixed.length" identifier = (field_expression "(mod->u).s_fixed.length" (field_expression "(mod->u).s_fixed" (parenthesized_expression "(mod->u)" ( (field_expression "mod->u" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;) (goto_statement "goto LAB_002e5aba;" goto statement_identifier ;)) (case_statement "case DEMANGLE_COMPONENT_TRANSACTION_SAFE:\n    pcVar5 = " transaction_safe";\n    cVar4 = ' ';\n    sVar3 = dpi->len;\n    while( true ) {\n      pcVar5 = pcVar5 + 1;\n      if (sVar3 == 0xff) {\n        pvVar1 = dpi->opaque;\n        dpi->buf[0xff] = '\0';\n        (*dpi->callback)(dpi->buf,0xff,pvVar1);\n        dpi->flush_count = dpi->flush_count + 1;\n        sVar2 = 1;\n        sVar3 = 0;\n      }\n      else {\n        sVar2 = sVar3 + 1;\n      }\n      dpi->len = sVar2;\n      dpi->buf[sVar3] = cVar4;\n      dpi->last_char = cVar4;\n      if (pcVar5 == "") break;\n      cVar4 = *pcVar5;\n      sVar3 = sVar2;\n    }\n    break;" case identifier : (expression_statement "pcVar5 = " transaction_safe";" (assignment_expression "pcVar5 = " transaction_safe"" identifier = (string_literal "" transaction_safe"" " string_content ")) ;) (expression_statement "cVar4 = ' ';" (assignment_expression "cVar4 = ' '" identifier = (char_literal "' '" ' character ')) ;) (expression_statement "sVar3 = dpi->len;" (assignment_expression "sVar3 = dpi->len" identifier = (field_expression "dpi->len" identifier -> field_identifier)) ;) (while_statement "while( true ) {\n      pcVar5 = pcVar5 + 1;\n      if (sVar3 == 0xff) {\n        pvVar1 = dpi->opaque;\n        dpi->buf[0xff] = '\0';\n        (*dpi->callback)(dpi->buf,0xff,pvVar1);\n        dpi->flush_count = dpi->flush_count + 1;\n        sVar2 = 1;\n        sVar3 = 0;\n      }\n      else {\n        sVar2 = sVar3 + 1;\n      }\n      dpi->len = sVar2;\n      dpi->buf[sVar3] = cVar4;\n      dpi->last_char = cVar4;\n      if (pcVar5 == "") break;\n      cVar4 = *pcVar5;\n      sVar3 = sVar2;\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      pcVar5 = pcVar5 + 1;\n      if (sVar3 == 0xff) {\n        pvVar1 = dpi->opaque;\n        dpi->buf[0xff] = '\0';\n        (*dpi->callback)(dpi->buf,0xff,pvVar1);\n        dpi->flush_count = dpi->flush_count + 1;\n        sVar2 = 1;\n        sVar3 = 0;\n      }\n      else {\n        sVar2 = sVar3 + 1;\n      }\n      dpi->len = sVar2;\n      dpi->buf[sVar3] = cVar4;\n      dpi->last_char = cVar4;\n      if (pcVar5 == "") break;\n      cVar4 = *pcVar5;\n      sVar3 = sVar2;\n    }" { (expression_statement "pcVar5 = pcVar5 + 1;" (assignment_expression "pcVar5 = pcVar5 + 1" identifier = (binary_expression "pcVar5 + 1" identifier + number_literal)) ;) (if_statement "if (sVar3 == 0xff) {\n        pvVar1 = dpi->opaque;\n        dpi->buf[0xff] = '\0';\n        (*dpi->callback)(dpi->buf,0xff,pvVar1);\n        dpi->flush_count = dpi->flush_count + 1;\n        sVar2 = 1;\n        sVar3 = 0;\n      }\n      else {\n        sVar2 = sVar3 + 1;\n      }" if (parenthesized_expression "(sVar3 == 0xff)" ( (binary_expression "sVar3 == 0xff" identifier == number_literal) )) (compound_statement "{\n        pvVar1 = dpi->opaque;\n        dpi->buf[0xff] = '\0';\n        (*dpi->callback)(dpi->buf,0xff,pvVar1);\n        dpi->flush_count = dpi->flush_count + 1;\n        sVar2 = 1;\n        sVar3 = 0;\n      }" { (expression_statement "pvVar1 = dpi->opaque;" (assignment_expression "pvVar1 = dpi->opaque" identifier = (field_expression "dpi->opaque" identifier -> field_identifier)) ;) (expression_statement "dpi->buf[0xff] = '\0';" (assignment_expression "dpi->buf[0xff] = '\0'" (subscript_expression "dpi->buf[0xff]" (field_expression "dpi->buf" identifier -> field_identifier) [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "(*dpi->callback)(dpi->buf,0xff,pvVar1);" (call_expression "(*dpi->callback)(dpi->buf,0xff,pvVar1)" (parenthesized_expression "(*dpi->callback)" ( (pointer_expression "*dpi->callback" * (field_expression "dpi->callback" identifier -> field_identifier)) )) (argument_list "(dpi->buf,0xff,pvVar1)" ( (field_expression "dpi->buf" identifier -> field_identifier) , number_literal , identifier ))) ;) (expression_statement "dpi->flush_count = dpi->flush_count + 1;" (assignment_expression "dpi->flush_count = dpi->flush_count + 1" (field_expression "dpi->flush_count" identifier -> field_identifier) = (binary_expression "dpi->flush_count + 1" (field_expression "dpi->flush_count" identifier -> field_identifier) + number_literal)) ;) (expression_statement "sVar2 = 1;" (assignment_expression "sVar2 = 1" identifier = number_literal) ;) (expression_statement "sVar3 = 0;" (assignment_expression "sVar3 = 0" identifier = number_literal) ;) }) (else_clause "else {\n        sVar2 = sVar3 + 1;\n      }" else (compound_statement "{\n        sVar2 = sVar3 + 1;\n      }" { (expression_statement "sVar2 = sVar3 + 1;" (assignment_expression "sVar2 = sVar3 + 1" identifier = (binary_expression "sVar3 + 1" identifier + number_literal)) ;) }))) (expression_statement "dpi->len = sVar2;" (assignment_expression "dpi->len = sVar2" (field_expression "dpi->len" identifier -> field_identifier) = identifier) ;) (expression_statement "dpi->buf[sVar3] = cVar4;" (assignment_expression "dpi->buf[sVar3] = cVar4" (subscript_expression "dpi->buf[sVar3]" (field_expression "dpi->buf" identifier -> field_identifier) [ identifier ]) = identifier) ;) (expression_statement "dpi->last_char = cVar4;" (assignment_expression "dpi->last_char = cVar4" (field_expression "dpi->last_char" identifier -> field_identifier) = identifier) ;) (if_statement "if (pcVar5 == "") break;" if (parenthesized_expression "(pcVar5 == "")" ( (binary_expression "pcVar5 == """ identifier == (string_literal """" " ")) )) (break_statement "break;" break ;)) (expression_statement "cVar4 = *pcVar5;" (assignment_expression "cVar4 = *pcVar5" identifier = (pointer_expression "*pcVar5" * identifier)) ;) (expression_statement "sVar3 = sVar2;" (assignment_expression "sVar3 = sVar2" identifier = identifier) ;) })) (break_statement "break;" break ;)) (case_statement "case DEMANGLE_COMPONENT_NOEXCEPT:\n    pcVar5 = " noexcept";\n    cVar4 = ' ';\n    sVar3 = dpi->len;\n    while( true ) {\n      pcVar5 = pcVar5 + 1;\n      if (sVar3 == 0xff) {\n        pvVar1 = dpi->opaque;\n        dpi->buf[0xff] = '\0';\n        (*dpi->callback)(dpi->buf,0xff,pvVar1);\n        dpi->flush_count = dpi->flush_count + 1;\n        sVar2 = 1;\n        sVar3 = 0;\n      }\n      else {\n        sVar2 = sVar3 + 1;\n      }\n      dpi->len = sVar2;\n      dpi->buf[sVar3] = cVar4;\n      dpi->last_char = cVar4;\n      if (pcVar5 == "") break;\n      cVar4 = *pcVar5;\n      sVar3 = sVar2;\n    }\n    goto LAB_002e5a60;" case identifier : (expression_statement "pcVar5 = " noexcept";" (assignment_expression "pcVar5 = " noexcept"" identifier = (string_literal "" noexcept"" " string_content ")) ;) (expression_statement "cVar4 = ' ';" (assignment_expression "cVar4 = ' '" identifier = (char_literal "' '" ' character ')) ;) (expression_statement "sVar3 = dpi->len;" (assignment_expression "sVar3 = dpi->len" identifier = (field_expression "dpi->len" identifier -> field_identifier)) ;) (while_statement "while( true ) {\n      pcVar5 = pcVar5 + 1;\n      if (sVar3 == 0xff) {\n        pvVar1 = dpi->opaque;\n        dpi->buf[0xff] = '\0';\n        (*dpi->callback)(dpi->buf,0xff,pvVar1);\n        dpi->flush_count = dpi->flush_count + 1;\n        sVar2 = 1;\n        sVar3 = 0;\n      }\n      else {\n        sVar2 = sVar3 + 1;\n      }\n      dpi->len = sVar2;\n      dpi->buf[sVar3] = cVar4;\n      dpi->last_char = cVar4;\n      if (pcVar5 == "") break;\n      cVar4 = *pcVar5;\n      sVar3 = sVar2;\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      pcVar5 = pcVar5 + 1;\n      if (sVar3 == 0xff) {\n        pvVar1 = dpi->opaque;\n        dpi->buf[0xff] = '\0';\n        (*dpi->callback)(dpi->buf,0xff,pvVar1);\n        dpi->flush_count = dpi->flush_count + 1;\n        sVar2 = 1;\n        sVar3 = 0;\n      }\n      else {\n        sVar2 = sVar3 + 1;\n      }\n      dpi->len = sVar2;\n      dpi->buf[sVar3] = cVar4;\n      dpi->last_char = cVar4;\n      if (pcVar5 == "") break;\n      cVar4 = *pcVar5;\n      sVar3 = sVar2;\n    }" { (expression_statement "pcVar5 = pcVar5 + 1;" (assignment_expression "pcVar5 = pcVar5 + 1" identifier = (binary_expression "pcVar5 + 1" identifier + number_literal)) ;) (if_statement "if (sVar3 == 0xff) {\n        pvVar1 = dpi->opaque;\n        dpi->buf[0xff] = '\0';\n        (*dpi->callback)(dpi->buf,0xff,pvVar1);\n        dpi->flush_count = dpi->flush_count + 1;\n        sVar2 = 1;\n        sVar3 = 0;\n      }\n      else {\n        sVar2 = sVar3 + 1;\n      }" if (parenthesized_expression "(sVar3 == 0xff)" ( (binary_expression "sVar3 == 0xff" identifier == number_literal) )) (compound_statement "{\n        pvVar1 = dpi->opaque;\n        dpi->buf[0xff] = '\0';\n        (*dpi->callback)(dpi->buf,0xff,pvVar1);\n        dpi->flush_count = dpi->flush_count + 1;\n        sVar2 = 1;\n        sVar3 = 0;\n      }" { (expression_statement "pvVar1 = dpi->opaque;" (assignment_expression "pvVar1 = dpi->opaque" identifier = (field_expression "dpi->opaque" identifier -> field_identifier)) ;) (expression_statement "dpi->buf[0xff] = '\0';" (assignment_expression "dpi->buf[0xff] = '\0'" (subscript_expression "dpi->buf[0xff]" (field_expression "dpi->buf" identifier -> field_identifier) [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "(*dpi->callback)(dpi->buf,0xff,pvVar1);" (call_expression "(*dpi->callback)(dpi->buf,0xff,pvVar1)" (parenthesized_expression "(*dpi->callback)" ( (pointer_expression "*dpi->callback" * (field_expression "dpi->callback" identifier -> field_identifier)) )) (argument_list "(dpi->buf,0xff,pvVar1)" ( (field_expression "dpi->buf" identifier -> field_identifier) , number_literal , identifier ))) ;) (expression_statement "dpi->flush_count = dpi->flush_count + 1;" (assignment_expression "dpi->flush_count = dpi->flush_count + 1" (field_expression "dpi->flush_count" identifier -> field_identifier) = (binary_expression "dpi->flush_count + 1" (field_expression "dpi->flush_count" identifier -> field_identifier) + number_literal)) ;) (expression_statement "sVar2 = 1;" (assignment_expression "sVar2 = 1" identifier = number_literal) ;) (expression_statement "sVar3 = 0;" (assignment_expression "sVar3 = 0" identifier = number_literal) ;) }) (else_clause "else {\n        sVar2 = sVar3 + 1;\n      }" else (compound_statement "{\n        sVar2 = sVar3 + 1;\n      }" { (expression_statement "sVar2 = sVar3 + 1;" (assignment_expression "sVar2 = sVar3 + 1" identifier = (binary_expression "sVar3 + 1" identifier + number_literal)) ;) }))) (expression_statement "dpi->len = sVar2;" (assignment_expression "dpi->len = sVar2" (field_expression "dpi->len" identifier -> field_identifier) = identifier) ;) (expression_statement "dpi->buf[sVar3] = cVar4;" (assignment_expression "dpi->buf[sVar3] = cVar4" (subscript_expression "dpi->buf[sVar3]" (field_expression "dpi->buf" identifier -> field_identifier) [ identifier ]) = identifier) ;) (expression_statement "dpi->last_char = cVar4;" (assignment_expression "dpi->last_char = cVar4" (field_expression "dpi->last_char" identifier -> field_identifier) = identifier) ;) (if_statement "if (pcVar5 == "") break;" if (parenthesized_expression "(pcVar5 == "")" ( (binary_expression "pcVar5 == """ identifier == (string_literal """" " ")) )) (break_statement "break;" break ;)) (expression_statement "cVar4 = *pcVar5;" (assignment_expression "cVar4 = *pcVar5" identifier = (pointer_expression "*pcVar5" * identifier)) ;) (expression_statement "sVar3 = sVar2;" (assignment_expression "sVar3 = sVar2" identifier = identifier) ;) })) (goto_statement "goto LAB_002e5a60;" goto statement_identifier ;)) (case_statement "case DEMANGLE_COMPONENT_THROW_SPEC:\n    pcVar5 = " throw";\n    cVar4 = ' ';\n    sVar3 = dpi->len;\n    while( true ) {\n      if (sVar3 == 0xff) {\n        pvVar1 = dpi->opaque;\n        dpi->buf[0xff] = '\0';\n        (*dpi->callback)(dpi->buf,0xff,pvVar1);\n        dpi->flush_count = dpi->flush_count + 1;\n        sVar2 = 1;\n        sVar3 = 0;\n      }\n      else {\n        sVar2 = sVar3 + 1;\n      }\n      pcVar5 = pcVar5 + 1;\n      dpi->len = sVar2;\n      dpi->buf[sVar3] = cVar4;\n      dpi->last_char = cVar4;\n      if (pcVar5 == "") break;\n      cVar4 = *pcVar5;\n      sVar3 = sVar2;\n    }\nLAB_002e5a60:\n    dc = (mod->u).s_extended_operator.name;\n    if (dc != (demangle_component *)0x0) {\n      sVar3 = sVar2 + 1;\n      if (sVar2 == 0xff) {\n        pvVar1 = dpi->opaque;\n        dpi->buf[0xff] = '\0';\n        (*dpi->callback)(dpi->buf,0xff,pvVar1);\n        dpi->flush_count = dpi->flush_count + 1;\n        dc = (mod->u).s_extended_operator.name;\n        sVar2 = 0;\n        sVar3 = 1;\n      }\n      dpi->len = sVar3;\n      dpi->buf[sVar2] = '(';\n      dpi->last_char = '(';\nLAB_002e5aba:\n      d_print_comp(dpi,options,dc);\n      sVar2 = dpi->len;\n      sVar3 = sVar2 + 1;\n      if (sVar2 == 0xff) {\n        pvVar1 = dpi->opaque;\n        dpi->buf[0xff] = '\0';\n        (*dpi->callback)(dpi->buf,0xff,pvVar1);\n        dpi->flush_count = dpi->flush_count + 1;\n        sVar3 = 1;\n        sVar2 = 0;\n      }\n      dpi->len = sVar3;\n      dpi->buf[sVar2] = ')';\n      dpi->last_char = ')';\n      return;\n    }\n    break;" case identifier : (expression_statement "pcVar5 = " throw";" (assignment_expression "pcVar5 = " throw"" identifier = (string_literal "" throw"" " string_content ")) ;) (expression_statement "cVar4 = ' ';" (assignment_expression "cVar4 = ' '" identifier = (char_literal "' '" ' character ')) ;) (expression_statement "sVar3 = dpi->len;" (assignment_expression "sVar3 = dpi->len" identifier = (field_expression "dpi->len" identifier -> field_identifier)) ;) (while_statement "while( true ) {\n      if (sVar3 == 0xff) {\n        pvVar1 = dpi->opaque;\n        dpi->buf[0xff] = '\0';\n        (*dpi->callback)(dpi->buf,0xff,pvVar1);\n        dpi->flush_count = dpi->flush_count + 1;\n        sVar2 = 1;\n        sVar3 = 0;\n      }\n      else {\n        sVar2 = sVar3 + 1;\n      }\n      pcVar5 = pcVar5 + 1;\n      dpi->len = sVar2;\n      dpi->buf[sVar3] = cVar4;\n      dpi->last_char = cVar4;\n      if (pcVar5 == "") break;\n      cVar4 = *pcVar5;\n      sVar3 = sVar2;\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      if (sVar3 == 0xff) {\n        pvVar1 = dpi->opaque;\n        dpi->buf[0xff] = '\0';\n        (*dpi->callback)(dpi->buf,0xff,pvVar1);\n        dpi->flush_count = dpi->flush_count + 1;\n        sVar2 = 1;\n        sVar3 = 0;\n      }\n      else {\n        sVar2 = sVar3 + 1;\n      }\n      pcVar5 = pcVar5 + 1;\n      dpi->len = sVar2;\n      dpi->buf[sVar3] = cVar4;\n      dpi->last_char = cVar4;\n      if (pcVar5 == "") break;\n      cVar4 = *pcVar5;\n      sVar3 = sVar2;\n    }" { (if_statement "if (sVar3 == 0xff) {\n        pvVar1 = dpi->opaque;\n        dpi->buf[0xff] = '\0';\n        (*dpi->callback)(dpi->buf,0xff,pvVar1);\n        dpi->flush_count = dpi->flush_count + 1;\n        sVar2 = 1;\n        sVar3 = 0;\n      }\n      else {\n        sVar2 = sVar3 + 1;\n      }" if (parenthesized_expression "(sVar3 == 0xff)" ( (binary_expression "sVar3 == 0xff" identifier == number_literal) )) (compound_statement "{\n        pvVar1 = dpi->opaque;\n        dpi->buf[0xff] = '\0';\n        (*dpi->callback)(dpi->buf,0xff,pvVar1);\n        dpi->flush_count = dpi->flush_count + 1;\n        sVar2 = 1;\n        sVar3 = 0;\n      }" { (expression_statement "pvVar1 = dpi->opaque;" (assignment_expression "pvVar1 = dpi->opaque" identifier = (field_expression "dpi->opaque" identifier -> field_identifier)) ;) (expression_statement "dpi->buf[0xff] = '\0';" (assignment_expression "dpi->buf[0xff] = '\0'" (subscript_expression "dpi->buf[0xff]" (field_expression "dpi->buf" identifier -> field_identifier) [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "(*dpi->callback)(dpi->buf,0xff,pvVar1);" (call_expression "(*dpi->callback)(dpi->buf,0xff,pvVar1)" (parenthesized_expression "(*dpi->callback)" ( (pointer_expression "*dpi->callback" * (field_expression "dpi->callback" identifier -> field_identifier)) )) (argument_list "(dpi->buf,0xff,pvVar1)" ( (field_expression "dpi->buf" identifier -> field_identifier) , number_literal , identifier ))) ;) (expression_statement "dpi->flush_count = dpi->flush_count + 1;" (assignment_expression "dpi->flush_count = dpi->flush_count + 1" (field_expression "dpi->flush_count" identifier -> field_identifier) = (binary_expression "dpi->flush_count + 1" (field_expression "dpi->flush_count" identifier -> field_identifier) + number_literal)) ;) (expression_statement "sVar2 = 1;" (assignment_expression "sVar2 = 1" identifier = number_literal) ;) (expression_statement "sVar3 = 0;" (assignment_expression "sVar3 = 0" identifier = number_literal) ;) }) (else_clause "else {\n        sVar2 = sVar3 + 1;\n      }" else (compound_statement "{\n        sVar2 = sVar3 + 1;\n      }" { (expression_statement "sVar2 = sVar3 + 1;" (assignment_expression "sVar2 = sVar3 + 1" identifier = (binary_expression "sVar3 + 1" identifier + number_literal)) ;) }))) (expression_statement "pcVar5 = pcVar5 + 1;" (assignment_expression "pcVar5 = pcVar5 + 1" identifier = (binary_expression "pcVar5 + 1" identifier + number_literal)) ;) (expression_statement "dpi->len = sVar2;" (assignment_expression "dpi->len = sVar2" (field_expression "dpi->len" identifier -> field_identifier) = identifier) ;) (expression_statement "dpi->buf[sVar3] = cVar4;" (assignment_expression "dpi->buf[sVar3] = cVar4" (subscript_expression "dpi->buf[sVar3]" (field_expression "dpi->buf" identifier -> field_identifier) [ identifier ]) = identifier) ;) (expression_statement "dpi->last_char = cVar4;" (assignment_expression "dpi->last_char = cVar4" (field_expression "dpi->last_char" identifier -> field_identifier) = identifier) ;) (if_statement "if (pcVar5 == "") break;" if (parenthesized_expression "(pcVar5 == "")" ( (binary_expression "pcVar5 == """ identifier == (string_literal """" " ")) )) (break_statement "break;" break ;)) (expression_statement "cVar4 = *pcVar5;" (assignment_expression "cVar4 = *pcVar5" identifier = (pointer_expression "*pcVar5" * identifier)) ;) (expression_statement "sVar3 = sVar2;" (assignment_expression "sVar3 = sVar2" identifier = identifier) ;) })) (labeled_statement "LAB_002e5a60:\n    dc = (mod->u).s_extended_operator.name;" statement_identifier : (expression_statement "dc = (mod->u).s_extended_operator.name;" (assignment_expression "dc = (mod->u).s_extended_operator.name" identifier = (field_expression "(mod->u).s_extended_operator.name" (field_expression "(mod->u).s_extended_operator" (parenthesized_expression "(mod->u)" ( (field_expression "mod->u" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;)) (if_statement "if (dc != (demangle_component *)0x0) {\n      sVar3 = sVar2 + 1;\n      if (sVar2 == 0xff) {\n        pvVar1 = dpi->opaque;\n        dpi->buf[0xff] = '\0';\n        (*dpi->callback)(dpi->buf,0xff,pvVar1);\n        dpi->flush_count = dpi->flush_count + 1;\n        dc = (mod->u).s_extended_operator.name;\n        sVar2 = 0;\n        sVar3 = 1;\n      }\n      dpi->len = sVar3;\n      dpi->buf[sVar2] = '(';\n      dpi->last_char = '(';\nLAB_002e5aba:\n      d_print_comp(dpi,options,dc);\n      sVar2 = dpi->len;\n      sVar3 = sVar2 + 1;\n      if (sVar2 == 0xff) {\n        pvVar1 = dpi->opaque;\n        dpi->buf[0xff] = '\0';\n        (*dpi->callback)(dpi->buf,0xff,pvVar1);\n        dpi->flush_count = dpi->flush_count + 1;\n        sVar3 = 1;\n        sVar2 = 0;\n      }\n      dpi->len = sVar3;\n      dpi->buf[sVar2] = ')';\n      dpi->last_char = ')';\n      return;\n    }" if (parenthesized_expression "(dc != (demangle_component *)0x0)" ( (binary_expression "dc != (demangle_component *)0x0" identifier != (cast_expression "(demangle_component *)0x0" ( (type_descriptor "demangle_component *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      sVar3 = sVar2 + 1;\n      if (sVar2 == 0xff) {\n        pvVar1 = dpi->opaque;\n        dpi->buf[0xff] = '\0';\n        (*dpi->callback)(dpi->buf,0xff,pvVar1);\n        dpi->flush_count = dpi->flush_count + 1;\n        dc = (mod->u).s_extended_operator.name;\n        sVar2 = 0;\n        sVar3 = 1;\n      }\n      dpi->len = sVar3;\n      dpi->buf[sVar2] = '(';\n      dpi->last_char = '(';\nLAB_002e5aba:\n      d_print_comp(dpi,options,dc);\n      sVar2 = dpi->len;\n      sVar3 = sVar2 + 1;\n      if (sVar2 == 0xff) {\n        pvVar1 = dpi->opaque;\n        dpi->buf[0xff] = '\0';\n        (*dpi->callback)(dpi->buf,0xff,pvVar1);\n        dpi->flush_count = dpi->flush_count + 1;\n        sVar3 = 1;\n        sVar2 = 0;\n      }\n      dpi->len = sVar3;\n      dpi->buf[sVar2] = ')';\n      dpi->last_char = ')';\n      return;\n    }" { (expression_statement "sVar3 = sVar2 + 1;" (assignment_expression "sVar3 = sVar2 + 1" identifier = (binary_expression "sVar2 + 1" identifier + number_literal)) ;) (if_statement "if (sVar2 == 0xff) {\n        pvVar1 = dpi->opaque;\n        dpi->buf[0xff] = '\0';\n        (*dpi->callback)(dpi->buf,0xff,pvVar1);\n        dpi->flush_count = dpi->flush_count + 1;\n        dc = (mod->u).s_extended_operator.name;\n        sVar2 = 0;\n        sVar3 = 1;\n      }" if (parenthesized_expression "(sVar2 == 0xff)" ( (binary_expression "sVar2 == 0xff" identifier == number_literal) )) (compound_statement "{\n        pvVar1 = dpi->opaque;\n        dpi->buf[0xff] = '\0';\n        (*dpi->callback)(dpi->buf,0xff,pvVar1);\n        dpi->flush_count = dpi->flush_count + 1;\n        dc = (mod->u).s_extended_operator.name;\n        sVar2 = 0;\n        sVar3 = 1;\n      }" { (expression_statement "pvVar1 = dpi->opaque;" (assignment_expression "pvVar1 = dpi->opaque" identifier = (field_expression "dpi->opaque" identifier -> field_identifier)) ;) (expression_statement "dpi->buf[0xff] = '\0';" (assignment_expression "dpi->buf[0xff] = '\0'" (subscript_expression "dpi->buf[0xff]" (field_expression "dpi->buf" identifier -> field_identifier) [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "(*dpi->callback)(dpi->buf,0xff,pvVar1);" (call_expression "(*dpi->callback)(dpi->buf,0xff,pvVar1)" (parenthesized_expression "(*dpi->callback)" ( (pointer_expression "*dpi->callback" * (field_expression "dpi->callback" identifier -> field_identifier)) )) (argument_list "(dpi->buf,0xff,pvVar1)" ( (field_expression "dpi->buf" identifier -> field_identifier) , number_literal , identifier ))) ;) (expression_statement "dpi->flush_count = dpi->flush_count + 1;" (assignment_expression "dpi->flush_count = dpi->flush_count + 1" (field_expression "dpi->flush_count" identifier -> field_identifier) = (binary_expression "dpi->flush_count + 1" (field_expression "dpi->flush_count" identifier -> field_identifier) + number_literal)) ;) (expression_statement "dc = (mod->u).s_extended_operator.name;" (assignment_expression "dc = (mod->u).s_extended_operator.name" identifier = (field_expression "(mod->u).s_extended_operator.name" (field_expression "(mod->u).s_extended_operator" (parenthesized_expression "(mod->u)" ( (field_expression "mod->u" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;) (expression_statement "sVar2 = 0;" (assignment_expression "sVar2 = 0" identifier = number_literal) ;) (expression_statement "sVar3 = 1;" (assignment_expression "sVar3 = 1" identifier = number_literal) ;) })) (expression_statement "dpi->len = sVar3;" (assignment_expression "dpi->len = sVar3" (field_expression "dpi->len" identifier -> field_identifier) = identifier) ;) (expression_statement "dpi->buf[sVar2] = '(';" (assignment_expression "dpi->buf[sVar2] = '('" (subscript_expression "dpi->buf[sVar2]" (field_expression "dpi->buf" identifier -> field_identifier) [ identifier ]) = (char_literal "'('" ' character ')) ;) (expression_statement "dpi->last_char = '(';" (assignment_expression "dpi->last_char = '('" (field_expression "dpi->last_char" identifier -> field_identifier) = (char_literal "'('" ' character ')) ;) (labeled_statement "LAB_002e5aba:\n      d_print_comp(dpi,options,dc);" statement_identifier : (expression_statement "d_print_comp(dpi,options,dc);" (call_expression "d_print_comp(dpi,options,dc)" identifier (argument_list "(dpi,options,dc)" ( identifier , identifier , identifier ))) ;)) (expression_statement "sVar2 = dpi->len;" (assignment_expression "sVar2 = dpi->len" identifier = (field_expression "dpi->len" identifier -> field_identifier)) ;) (expression_statement "sVar3 = sVar2 + 1;" (assignment_expression "sVar3 = sVar2 + 1" identifier = (binary_expression "sVar2 + 1" identifier + number_literal)) ;) (if_statement "if (sVar2 == 0xff) {\n        pvVar1 = dpi->opaque;\n        dpi->buf[0xff] = '\0';\n        (*dpi->callback)(dpi->buf,0xff,pvVar1);\n        dpi->flush_count = dpi->flush_count + 1;\n        sVar3 = 1;\n        sVar2 = 0;\n      }" if (parenthesized_expression "(sVar2 == 0xff)" ( (binary_expression "sVar2 == 0xff" identifier == number_literal) )) (compound_statement "{\n        pvVar1 = dpi->opaque;\n        dpi->buf[0xff] = '\0';\n        (*dpi->callback)(dpi->buf,0xff,pvVar1);\n        dpi->flush_count = dpi->flush_count + 1;\n        sVar3 = 1;\n        sVar2 = 0;\n      }" { (expression_statement "pvVar1 = dpi->opaque;" (assignment_expression "pvVar1 = dpi->opaque" identifier = (field_expression "dpi->opaque" identifier -> field_identifier)) ;) (expression_statement "dpi->buf[0xff] = '\0';" (assignment_expression "dpi->buf[0xff] = '\0'" (subscript_expression "dpi->buf[0xff]" (field_expression "dpi->buf" identifier -> field_identifier) [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "(*dpi->callback)(dpi->buf,0xff,pvVar1);" (call_expression "(*dpi->callback)(dpi->buf,0xff,pvVar1)" (parenthesized_expression "(*dpi->callback)" ( (pointer_expression "*dpi->callback" * (field_expression "dpi->callback" identifier -> field_identifier)) )) (argument_list "(dpi->buf,0xff,pvVar1)" ( (field_expression "dpi->buf" identifier -> field_identifier) , number_literal , identifier ))) ;) (expression_statement "dpi->flush_count = dpi->flush_count + 1;" (assignment_expression "dpi->flush_count = dpi->flush_count + 1" (field_expression "dpi->flush_count" identifier -> field_identifier) = (binary_expression "dpi->flush_count + 1" (field_expression "dpi->flush_count" identifier -> field_identifier) + number_literal)) ;) (expression_statement "sVar3 = 1;" (assignment_expression "sVar3 = 1" identifier = number_literal) ;) (expression_statement "sVar2 = 0;" (assignment_expression "sVar2 = 0" identifier = number_literal) ;) })) (expression_statement "dpi->len = sVar3;" (assignment_expression "dpi->len = sVar3" (field_expression "dpi->len" identifier -> field_identifier) = identifier) ;) (expression_statement "dpi->buf[sVar2] = ')';" (assignment_expression "dpi->buf[sVar2] = ')'" (subscript_expression "dpi->buf[sVar2]" (field_expression "dpi->buf" identifier -> field_identifier) [ identifier ]) = (char_literal "')'" ' character ')) ;) (expression_statement "dpi->last_char = ')';" (assignment_expression "dpi->last_char = ')'" (field_expression "dpi->last_char" identifier -> field_identifier) = (char_literal "')'" ' character ')) ;) (return_statement "return;" return ;) })) (break_statement "break;" break ;)) (case_statement "default:\n    d_print_comp(dpi,options,mod);\n    return;" default : (expression_statement "d_print_comp(dpi,options,mod);" (call_expression "d_print_comp(dpi,options,mod)" identifier (argument_list "(dpi,options,mod)" ( identifier , identifier , identifier ))) ;) (return_statement "return;" return ;)) })) (return_statement "return;" return ;) })))
(translation_unit "void FUN_002e52a0(long param_1,ulong param_2,int *param_3)\n\n{\n  long lVar1;\n  long lVar2;\n  long lVar3;\n  undefined *puVar4;\n  undefined1 uVar5;\n  ulong uVar6;\n  char *pcVar7;\n  char cVar8;\n  \n  if (0x4c < *param_3 - 3U) {\n    FUN_002e5210();\n    return;\n  }\n  uVar6 = param_2 & 0xffffffff;\n  switch(*param_3) {\n  case 3:\n    param_3 = *(int **)(param_3 + 2);\n  default:\nswitchD_002e52d3_caseD_4:\n    FUN_002e5210(param_1,param_2,param_3);\n    return;\n  case 0x19:\n  case 0x1c:\n    pcVar7 = " restrict";\n    cVar8 = ' ';\n    lVar3 = *(long *)(param_1 + 0x100);\n    while( true ) {\n      pcVar7 = pcVar7 + 1;\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }\n    break;\n  case 0x1a:\n  case 0x1d:\n    pcVar7 = "volatile";\n    cVar8 = ' ';\n    lVar3 = *(long *)(param_1 + 0x100);\n    while( true ) {\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      pcVar7 = pcVar7 + 1;\n      lVar3 = lVar1;\n    }\n    break;\n  case 0x1b:\n  case 0x1e:\n    pcVar7 = " const";\n    cVar8 = ' ';\n    lVar3 = *(long *)(param_1 + 0x100);\n    while( true ) {\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      pcVar7 = pcVar7 + 1;\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }\n    break;\n  case 0x1f:\n    if (*(long *)(param_1 + 0x100) == 0xff) {\n      *(undefined1 *)(param_1 + 0xff) = 0;\n      (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n      *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n      *(undefined8 *)(param_1 + 0x100) = 0;\n    }\n    lVar1 = *(long *)(param_1 + 0x100);\n    lVar3 = lVar1 + 1;\n    *(long *)(param_1 + 0x100) = lVar3;\n    *(undefined1 *)(param_1 + lVar1) = 0x20;\n    *(undefined1 *)(param_1 + 0x108) = 0x20;\n    goto LAB_002e5807;\n  case 0x20:\n    if (*(long *)(param_1 + 0x100) == 0xff) {\n      *(undefined1 *)(param_1 + 0xff) = 0;\n      (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n      *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n      *(undefined8 *)(param_1 + 0x100) = 0;\n    }\n    lVar1 = *(long *)(param_1 + 0x100);\n    lVar3 = lVar1 + 1;\n    *(long *)(param_1 + 0x100) = lVar3;\n    *(undefined1 *)(param_1 + lVar1) = 0x20;\n    *(undefined1 *)(param_1 + 0x108) = 0x20;\n    goto LAB_002e5867;\n  case 0x21:\n    if (*(long *)(param_1 + 0x100) == 0xff) {\n      *(undefined1 *)(param_1 + 0xff) = 0;\n      (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n      *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n      *(undefined8 *)(param_1 + 0x100) = 0;\n    }\n    lVar3 = *(long *)(param_1 + 0x100);\n    *(long *)(param_1 + 0x100) = lVar3 + 1;\n    *(undefined1 *)(param_1 + lVar3) = 0x20;\n    *(undefined1 *)(param_1 + 0x108) = 0x20;\n    param_3 = *(int **)(param_3 + 4);\n    param_2 = uVar6;\n    goto switchD_002e52d3_caseD_4;\n  case 0x22:\n    if ((param_2 & 4) == 0) {\n      if (*(long *)(param_1 + 0x100) == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        *(undefined8 *)(param_1 + 0x100) = 0;\n      }\n      lVar3 = *(long *)(param_1 + 0x100);\n      *(long *)(param_1 + 0x100) = lVar3 + 1;\n      *(undefined1 *)(param_1 + lVar3) = 0x2a;\n      *(undefined1 *)(param_1 + 0x108) = 0x2a;\n    }\n    break;\n  case 0x23:\n    lVar3 = *(long *)(param_1 + 0x100);\nLAB_002e5807:\n    lVar1 = lVar3 + 1;\n    if (lVar3 == 0xff) {\n      *(undefined1 *)(param_1 + 0xff) = 0;\n      (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n      *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n      lVar1 = 1;\n      lVar3 = 0;\n    }\n    *(long *)(param_1 + 0x100) = lVar1;\n    *(undefined1 *)(param_1 + lVar3) = 0x26;\n    *(undefined1 *)(param_1 + 0x108) = 0x26;\n    break;\n  case 0x24:\n    lVar3 = *(long *)(param_1 + 0x100);\nLAB_002e5867:\n    puVar4 = &DAT_003a6db5;\n    uVar5 = 0x26;\n    while( true ) {\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      puVar4 = puVar4 + 1;\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(undefined1 *)(param_1 + lVar3) = uVar5;\n      *(undefined1 *)(param_1 + 0x108) = uVar5;\n      if (puVar4 == &DAT_003a6db7) break;\n      uVar5 = *puVar4;\n      lVar3 = lVar1;\n    }\n    break;\n  case 0x25:\n    pcVar7 = "complex ";\n    cVar8 = 'c';\n    lVar3 = *(long *)(param_1 + 0x100);\n    while( true ) {\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      pcVar7 = pcVar7 + 1;\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }\n    break;\n  case 0x26:\n    pcVar7 = "imaginary ";\n    cVar8 = 'i';\n    lVar3 = *(long *)(param_1 + 0x100);\n    while( true ) {\n      pcVar7 = pcVar7 + 1;\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }\n    break;\n  case 0x2b:\n    if (*(char *)(param_1 + 0x108) != '(') {\n      lVar1 = *(long *)(param_1 + 0x100);\n      lVar3 = lVar1 + 1;\n      if (lVar1 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar3 = 1;\n        lVar1 = 0;\n      }\n      *(long *)(param_1 + 0x100) = lVar3;\n      *(undefined1 *)(param_1 + lVar1) = 0x20;\n      *(undefined1 *)(param_1 + 0x108) = 0x20;\n    }\n    puVar4 = &DAT_003a9d5a;\n    uVar5 = 0x3a;\n    FUN_002e5210(param_1,uVar6,*(undefined8 *)(param_3 + 2));\n    lVar3 = *(long *)(param_1 + 0x100);\n    while( true ) {\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      puVar4 = puVar4 + 1;\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(undefined1 *)(param_1 + lVar3) = uVar5;\n      *(undefined1 *)(param_1 + 0x108) = uVar5;\n      if (puVar4 == &DAT_003a9d5d) break;\n      uVar5 = *puVar4;\n      lVar3 = lVar1;\n    }\n    break;\n  case 0x2d:\n    pcVar7 = " __vector(";\n    cVar8 = ' ';\n    lVar3 = *(long *)(param_1 + 0x100);\n    while( true ) {\n      pcVar7 = pcVar7 + 1;\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }\n    lVar3 = *(long *)(param_3 + 2);\n    goto LAB_002e5aba;\n  case 0x4c:\n    pcVar7 = " transaction_safe";\n    cVar8 = ' ';\n    lVar3 = *(long *)(param_1 + 0x100);\n    while( true ) {\n      pcVar7 = pcVar7 + 1;\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }\n    break;\n  case 0x4e:\n    pcVar7 = " noexcept";\n    cVar8 = ' ';\n    lVar3 = *(long *)(param_1 + 0x100);\n    while( true ) {\n      pcVar7 = pcVar7 + 1;\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }\n    goto LAB_002e5a60;\n  case 0x4f:\n    pcVar7 = " throw";\n    cVar8 = ' ';\n    lVar3 = *(long *)(param_1 + 0x100);\n    while( true ) {\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      pcVar7 = pcVar7 + 1;\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }\nLAB_002e5a60:\n    lVar3 = *(long *)(param_3 + 4);\n    if (lVar3 != 0) {\n      lVar2 = lVar1 + 1;\n      if (lVar1 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar3 = *(long *)(param_3 + 4);\n        lVar1 = 0;\n        lVar2 = 1;\n      }\n      *(long *)(param_1 + 0x100) = lVar2;\n      *(undefined1 *)(param_1 + lVar1) = 0x28;\n      *(undefined1 *)(param_1 + 0x108) = 0x28;\nLAB_002e5aba:\n      FUN_002e5210(param_1,uVar6,lVar3);\n      lVar1 = *(long *)(param_1 + 0x100);\n      lVar3 = lVar1 + 1;\n      if (lVar1 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar3 = 1;\n        lVar1 = 0;\n      }\n      *(long *)(param_1 + 0x100) = lVar3;\n      *(undefined1 *)(param_1 + lVar1) = 0x29;\n      *(undefined1 *)(param_1 + 0x108) = 0x29;\n      return;\n    }\n  }\n  return;\n}\n\n" (function_definition "void FUN_002e52a0(long param_1,ulong param_2,int *param_3)\n\n{\n  long lVar1;\n  long lVar2;\n  long lVar3;\n  undefined *puVar4;\n  undefined1 uVar5;\n  ulong uVar6;\n  char *pcVar7;\n  char cVar8;\n  \n  if (0x4c < *param_3 - 3U) {\n    FUN_002e5210();\n    return;\n  }\n  uVar6 = param_2 & 0xffffffff;\n  switch(*param_3) {\n  case 3:\n    param_3 = *(int **)(param_3 + 2);\n  default:\nswitchD_002e52d3_caseD_4:\n    FUN_002e5210(param_1,param_2,param_3);\n    return;\n  case 0x19:\n  case 0x1c:\n    pcVar7 = " restrict";\n    cVar8 = ' ';\n    lVar3 = *(long *)(param_1 + 0x100);\n    while( true ) {\n      pcVar7 = pcVar7 + 1;\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }\n    break;\n  case 0x1a:\n  case 0x1d:\n    pcVar7 = "volatile";\n    cVar8 = ' ';\n    lVar3 = *(long *)(param_1 + 0x100);\n    while( true ) {\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      pcVar7 = pcVar7 + 1;\n      lVar3 = lVar1;\n    }\n    break;\n  case 0x1b:\n  case 0x1e:\n    pcVar7 = " const";\n    cVar8 = ' ';\n    lVar3 = *(long *)(param_1 + 0x100);\n    while( true ) {\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      pcVar7 = pcVar7 + 1;\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }\n    break;\n  case 0x1f:\n    if (*(long *)(param_1 + 0x100) == 0xff) {\n      *(undefined1 *)(param_1 + 0xff) = 0;\n      (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n      *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n      *(undefined8 *)(param_1 + 0x100) = 0;\n    }\n    lVar1 = *(long *)(param_1 + 0x100);\n    lVar3 = lVar1 + 1;\n    *(long *)(param_1 + 0x100) = lVar3;\n    *(undefined1 *)(param_1 + lVar1) = 0x20;\n    *(undefined1 *)(param_1 + 0x108) = 0x20;\n    goto LAB_002e5807;\n  case 0x20:\n    if (*(long *)(param_1 + 0x100) == 0xff) {\n      *(undefined1 *)(param_1 + 0xff) = 0;\n      (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n      *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n      *(undefined8 *)(param_1 + 0x100) = 0;\n    }\n    lVar1 = *(long *)(param_1 + 0x100);\n    lVar3 = lVar1 + 1;\n    *(long *)(param_1 + 0x100) = lVar3;\n    *(undefined1 *)(param_1 + lVar1) = 0x20;\n    *(undefined1 *)(param_1 + 0x108) = 0x20;\n    goto LAB_002e5867;\n  case 0x21:\n    if (*(long *)(param_1 + 0x100) == 0xff) {\n      *(undefined1 *)(param_1 + 0xff) = 0;\n      (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n      *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n      *(undefined8 *)(param_1 + 0x100) = 0;\n    }\n    lVar3 = *(long *)(param_1 + 0x100);\n    *(long *)(param_1 + 0x100) = lVar3 + 1;\n    *(undefined1 *)(param_1 + lVar3) = 0x20;\n    *(undefined1 *)(param_1 + 0x108) = 0x20;\n    param_3 = *(int **)(param_3 + 4);\n    param_2 = uVar6;\n    goto switchD_002e52d3_caseD_4;\n  case 0x22:\n    if ((param_2 & 4) == 0) {\n      if (*(long *)(param_1 + 0x100) == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        *(undefined8 *)(param_1 + 0x100) = 0;\n      }\n      lVar3 = *(long *)(param_1 + 0x100);\n      *(long *)(param_1 + 0x100) = lVar3 + 1;\n      *(undefined1 *)(param_1 + lVar3) = 0x2a;\n      *(undefined1 *)(param_1 + 0x108) = 0x2a;\n    }\n    break;\n  case 0x23:\n    lVar3 = *(long *)(param_1 + 0x100);\nLAB_002e5807:\n    lVar1 = lVar3 + 1;\n    if (lVar3 == 0xff) {\n      *(undefined1 *)(param_1 + 0xff) = 0;\n      (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n      *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n      lVar1 = 1;\n      lVar3 = 0;\n    }\n    *(long *)(param_1 + 0x100) = lVar1;\n    *(undefined1 *)(param_1 + lVar3) = 0x26;\n    *(undefined1 *)(param_1 + 0x108) = 0x26;\n    break;\n  case 0x24:\n    lVar3 = *(long *)(param_1 + 0x100);\nLAB_002e5867:\n    puVar4 = &DAT_003a6db5;\n    uVar5 = 0x26;\n    while( true ) {\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      puVar4 = puVar4 + 1;\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(undefined1 *)(param_1 + lVar3) = uVar5;\n      *(undefined1 *)(param_1 + 0x108) = uVar5;\n      if (puVar4 == &DAT_003a6db7) break;\n      uVar5 = *puVar4;\n      lVar3 = lVar1;\n    }\n    break;\n  case 0x25:\n    pcVar7 = "complex ";\n    cVar8 = 'c';\n    lVar3 = *(long *)(param_1 + 0x100);\n    while( true ) {\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      pcVar7 = pcVar7 + 1;\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }\n    break;\n  case 0x26:\n    pcVar7 = "imaginary ";\n    cVar8 = 'i';\n    lVar3 = *(long *)(param_1 + 0x100);\n    while( true ) {\n      pcVar7 = pcVar7 + 1;\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }\n    break;\n  case 0x2b:\n    if (*(char *)(param_1 + 0x108) != '(') {\n      lVar1 = *(long *)(param_1 + 0x100);\n      lVar3 = lVar1 + 1;\n      if (lVar1 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar3 = 1;\n        lVar1 = 0;\n      }\n      *(long *)(param_1 + 0x100) = lVar3;\n      *(undefined1 *)(param_1 + lVar1) = 0x20;\n      *(undefined1 *)(param_1 + 0x108) = 0x20;\n    }\n    puVar4 = &DAT_003a9d5a;\n    uVar5 = 0x3a;\n    FUN_002e5210(param_1,uVar6,*(undefined8 *)(param_3 + 2));\n    lVar3 = *(long *)(param_1 + 0x100);\n    while( true ) {\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      puVar4 = puVar4 + 1;\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(undefined1 *)(param_1 + lVar3) = uVar5;\n      *(undefined1 *)(param_1 + 0x108) = uVar5;\n      if (puVar4 == &DAT_003a9d5d) break;\n      uVar5 = *puVar4;\n      lVar3 = lVar1;\n    }\n    break;\n  case 0x2d:\n    pcVar7 = " __vector(";\n    cVar8 = ' ';\n    lVar3 = *(long *)(param_1 + 0x100);\n    while( true ) {\n      pcVar7 = pcVar7 + 1;\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }\n    lVar3 = *(long *)(param_3 + 2);\n    goto LAB_002e5aba;\n  case 0x4c:\n    pcVar7 = " transaction_safe";\n    cVar8 = ' ';\n    lVar3 = *(long *)(param_1 + 0x100);\n    while( true ) {\n      pcVar7 = pcVar7 + 1;\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }\n    break;\n  case 0x4e:\n    pcVar7 = " noexcept";\n    cVar8 = ' ';\n    lVar3 = *(long *)(param_1 + 0x100);\n    while( true ) {\n      pcVar7 = pcVar7 + 1;\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }\n    goto LAB_002e5a60;\n  case 0x4f:\n    pcVar7 = " throw";\n    cVar8 = ' ';\n    lVar3 = *(long *)(param_1 + 0x100);\n    while( true ) {\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      pcVar7 = pcVar7 + 1;\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }\nLAB_002e5a60:\n    lVar3 = *(long *)(param_3 + 4);\n    if (lVar3 != 0) {\n      lVar2 = lVar1 + 1;\n      if (lVar1 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar3 = *(long *)(param_3 + 4);\n        lVar1 = 0;\n        lVar2 = 1;\n      }\n      *(long *)(param_1 + 0x100) = lVar2;\n      *(undefined1 *)(param_1 + lVar1) = 0x28;\n      *(undefined1 *)(param_1 + 0x108) = 0x28;\nLAB_002e5aba:\n      FUN_002e5210(param_1,uVar6,lVar3);\n      lVar1 = *(long *)(param_1 + 0x100);\n      lVar3 = lVar1 + 1;\n      if (lVar1 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar3 = 1;\n        lVar1 = 0;\n      }\n      *(long *)(param_1 + 0x100) = lVar3;\n      *(undefined1 *)(param_1 + lVar1) = 0x29;\n      *(undefined1 *)(param_1 + 0x108) = 0x29;\n      return;\n    }\n  }\n  return;\n}" primitive_type (function_declarator "FUN_002e52a0(long param_1,ulong param_2,int *param_3)" identifier (parameter_list "(long param_1,ulong param_2,int *param_3)" ( (parameter_declaration "long param_1" (sized_type_specifier "long" long) identifier) , (parameter_declaration "ulong param_2" type_identifier identifier) , (parameter_declaration "int *param_3" primitive_type (pointer_declarator "*param_3" * identifier)) ))) (compound_statement "{\n  long lVar1;\n  long lVar2;\n  long lVar3;\n  undefined *puVar4;\n  undefined1 uVar5;\n  ulong uVar6;\n  char *pcVar7;\n  char cVar8;\n  \n  if (0x4c < *param_3 - 3U) {\n    FUN_002e5210();\n    return;\n  }\n  uVar6 = param_2 & 0xffffffff;\n  switch(*param_3) {\n  case 3:\n    param_3 = *(int **)(param_3 + 2);\n  default:\nswitchD_002e52d3_caseD_4:\n    FUN_002e5210(param_1,param_2,param_3);\n    return;\n  case 0x19:\n  case 0x1c:\n    pcVar7 = " restrict";\n    cVar8 = ' ';\n    lVar3 = *(long *)(param_1 + 0x100);\n    while( true ) {\n      pcVar7 = pcVar7 + 1;\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }\n    break;\n  case 0x1a:\n  case 0x1d:\n    pcVar7 = "volatile";\n    cVar8 = ' ';\n    lVar3 = *(long *)(param_1 + 0x100);\n    while( true ) {\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      pcVar7 = pcVar7 + 1;\n      lVar3 = lVar1;\n    }\n    break;\n  case 0x1b:\n  case 0x1e:\n    pcVar7 = " const";\n    cVar8 = ' ';\n    lVar3 = *(long *)(param_1 + 0x100);\n    while( true ) {\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      pcVar7 = pcVar7 + 1;\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }\n    break;\n  case 0x1f:\n    if (*(long *)(param_1 + 0x100) == 0xff) {\n      *(undefined1 *)(param_1 + 0xff) = 0;\n      (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n      *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n      *(undefined8 *)(param_1 + 0x100) = 0;\n    }\n    lVar1 = *(long *)(param_1 + 0x100);\n    lVar3 = lVar1 + 1;\n    *(long *)(param_1 + 0x100) = lVar3;\n    *(undefined1 *)(param_1 + lVar1) = 0x20;\n    *(undefined1 *)(param_1 + 0x108) = 0x20;\n    goto LAB_002e5807;\n  case 0x20:\n    if (*(long *)(param_1 + 0x100) == 0xff) {\n      *(undefined1 *)(param_1 + 0xff) = 0;\n      (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n      *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n      *(undefined8 *)(param_1 + 0x100) = 0;\n    }\n    lVar1 = *(long *)(param_1 + 0x100);\n    lVar3 = lVar1 + 1;\n    *(long *)(param_1 + 0x100) = lVar3;\n    *(undefined1 *)(param_1 + lVar1) = 0x20;\n    *(undefined1 *)(param_1 + 0x108) = 0x20;\n    goto LAB_002e5867;\n  case 0x21:\n    if (*(long *)(param_1 + 0x100) == 0xff) {\n      *(undefined1 *)(param_1 + 0xff) = 0;\n      (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n      *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n      *(undefined8 *)(param_1 + 0x100) = 0;\n    }\n    lVar3 = *(long *)(param_1 + 0x100);\n    *(long *)(param_1 + 0x100) = lVar3 + 1;\n    *(undefined1 *)(param_1 + lVar3) = 0x20;\n    *(undefined1 *)(param_1 + 0x108) = 0x20;\n    param_3 = *(int **)(param_3 + 4);\n    param_2 = uVar6;\n    goto switchD_002e52d3_caseD_4;\n  case 0x22:\n    if ((param_2 & 4) == 0) {\n      if (*(long *)(param_1 + 0x100) == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        *(undefined8 *)(param_1 + 0x100) = 0;\n      }\n      lVar3 = *(long *)(param_1 + 0x100);\n      *(long *)(param_1 + 0x100) = lVar3 + 1;\n      *(undefined1 *)(param_1 + lVar3) = 0x2a;\n      *(undefined1 *)(param_1 + 0x108) = 0x2a;\n    }\n    break;\n  case 0x23:\n    lVar3 = *(long *)(param_1 + 0x100);\nLAB_002e5807:\n    lVar1 = lVar3 + 1;\n    if (lVar3 == 0xff) {\n      *(undefined1 *)(param_1 + 0xff) = 0;\n      (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n      *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n      lVar1 = 1;\n      lVar3 = 0;\n    }\n    *(long *)(param_1 + 0x100) = lVar1;\n    *(undefined1 *)(param_1 + lVar3) = 0x26;\n    *(undefined1 *)(param_1 + 0x108) = 0x26;\n    break;\n  case 0x24:\n    lVar3 = *(long *)(param_1 + 0x100);\nLAB_002e5867:\n    puVar4 = &DAT_003a6db5;\n    uVar5 = 0x26;\n    while( true ) {\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      puVar4 = puVar4 + 1;\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(undefined1 *)(param_1 + lVar3) = uVar5;\n      *(undefined1 *)(param_1 + 0x108) = uVar5;\n      if (puVar4 == &DAT_003a6db7) break;\n      uVar5 = *puVar4;\n      lVar3 = lVar1;\n    }\n    break;\n  case 0x25:\n    pcVar7 = "complex ";\n    cVar8 = 'c';\n    lVar3 = *(long *)(param_1 + 0x100);\n    while( true ) {\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      pcVar7 = pcVar7 + 1;\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }\n    break;\n  case 0x26:\n    pcVar7 = "imaginary ";\n    cVar8 = 'i';\n    lVar3 = *(long *)(param_1 + 0x100);\n    while( true ) {\n      pcVar7 = pcVar7 + 1;\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }\n    break;\n  case 0x2b:\n    if (*(char *)(param_1 + 0x108) != '(') {\n      lVar1 = *(long *)(param_1 + 0x100);\n      lVar3 = lVar1 + 1;\n      if (lVar1 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar3 = 1;\n        lVar1 = 0;\n      }\n      *(long *)(param_1 + 0x100) = lVar3;\n      *(undefined1 *)(param_1 + lVar1) = 0x20;\n      *(undefined1 *)(param_1 + 0x108) = 0x20;\n    }\n    puVar4 = &DAT_003a9d5a;\n    uVar5 = 0x3a;\n    FUN_002e5210(param_1,uVar6,*(undefined8 *)(param_3 + 2));\n    lVar3 = *(long *)(param_1 + 0x100);\n    while( true ) {\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      puVar4 = puVar4 + 1;\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(undefined1 *)(param_1 + lVar3) = uVar5;\n      *(undefined1 *)(param_1 + 0x108) = uVar5;\n      if (puVar4 == &DAT_003a9d5d) break;\n      uVar5 = *puVar4;\n      lVar3 = lVar1;\n    }\n    break;\n  case 0x2d:\n    pcVar7 = " __vector(";\n    cVar8 = ' ';\n    lVar3 = *(long *)(param_1 + 0x100);\n    while( true ) {\n      pcVar7 = pcVar7 + 1;\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }\n    lVar3 = *(long *)(param_3 + 2);\n    goto LAB_002e5aba;\n  case 0x4c:\n    pcVar7 = " transaction_safe";\n    cVar8 = ' ';\n    lVar3 = *(long *)(param_1 + 0x100);\n    while( true ) {\n      pcVar7 = pcVar7 + 1;\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }\n    break;\n  case 0x4e:\n    pcVar7 = " noexcept";\n    cVar8 = ' ';\n    lVar3 = *(long *)(param_1 + 0x100);\n    while( true ) {\n      pcVar7 = pcVar7 + 1;\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }\n    goto LAB_002e5a60;\n  case 0x4f:\n    pcVar7 = " throw";\n    cVar8 = ' ';\n    lVar3 = *(long *)(param_1 + 0x100);\n    while( true ) {\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      pcVar7 = pcVar7 + 1;\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }\nLAB_002e5a60:\n    lVar3 = *(long *)(param_3 + 4);\n    if (lVar3 != 0) {\n      lVar2 = lVar1 + 1;\n      if (lVar1 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar3 = *(long *)(param_3 + 4);\n        lVar1 = 0;\n        lVar2 = 1;\n      }\n      *(long *)(param_1 + 0x100) = lVar2;\n      *(undefined1 *)(param_1 + lVar1) = 0x28;\n      *(undefined1 *)(param_1 + 0x108) = 0x28;\nLAB_002e5aba:\n      FUN_002e5210(param_1,uVar6,lVar3);\n      lVar1 = *(long *)(param_1 + 0x100);\n      lVar3 = lVar1 + 1;\n      if (lVar1 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar3 = 1;\n        lVar1 = 0;\n      }\n      *(long *)(param_1 + 0x100) = lVar3;\n      *(undefined1 *)(param_1 + lVar1) = 0x29;\n      *(undefined1 *)(param_1 + 0x108) = 0x29;\n      return;\n    }\n  }\n  return;\n}" { (declaration "long lVar1;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar2;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar3;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "undefined1 uVar5;" type_identifier identifier ;) (declaration "ulong uVar6;" type_identifier identifier ;) (declaration "char *pcVar7;" primitive_type (pointer_declarator "*pcVar7" * identifier) ;) (declaration "char cVar8;" primitive_type identifier ;) (if_statement "if (0x4c < *param_3 - 3U) {\n    FUN_002e5210();\n    return;\n  }" if (parenthesized_expression "(0x4c < *param_3 - 3U)" ( (binary_expression "0x4c < *param_3 - 3U" number_literal < (binary_expression "*param_3 - 3U" (pointer_expression "*param_3" * identifier) - number_literal)) )) (compound_statement "{\n    FUN_002e5210();\n    return;\n  }" { (expression_statement "FUN_002e5210();" (call_expression "FUN_002e5210()" identifier (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) (expression_statement "uVar6 = param_2 & 0xffffffff;" (assignment_expression "uVar6 = param_2 & 0xffffffff" identifier = (binary_expression "param_2 & 0xffffffff" identifier & number_literal)) ;) (switch_statement "switch(*param_3) {\n  case 3:\n    param_3 = *(int **)(param_3 + 2);\n  default:\nswitchD_002e52d3_caseD_4:\n    FUN_002e5210(param_1,param_2,param_3);\n    return;\n  case 0x19:\n  case 0x1c:\n    pcVar7 = " restrict";\n    cVar8 = ' ';\n    lVar3 = *(long *)(param_1 + 0x100);\n    while( true ) {\n      pcVar7 = pcVar7 + 1;\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }\n    break;\n  case 0x1a:\n  case 0x1d:\n    pcVar7 = "volatile";\n    cVar8 = ' ';\n    lVar3 = *(long *)(param_1 + 0x100);\n    while( true ) {\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      pcVar7 = pcVar7 + 1;\n      lVar3 = lVar1;\n    }\n    break;\n  case 0x1b:\n  case 0x1e:\n    pcVar7 = " const";\n    cVar8 = ' ';\n    lVar3 = *(long *)(param_1 + 0x100);\n    while( true ) {\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      pcVar7 = pcVar7 + 1;\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }\n    break;\n  case 0x1f:\n    if (*(long *)(param_1 + 0x100) == 0xff) {\n      *(undefined1 *)(param_1 + 0xff) = 0;\n      (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n      *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n      *(undefined8 *)(param_1 + 0x100) = 0;\n    }\n    lVar1 = *(long *)(param_1 + 0x100);\n    lVar3 = lVar1 + 1;\n    *(long *)(param_1 + 0x100) = lVar3;\n    *(undefined1 *)(param_1 + lVar1) = 0x20;\n    *(undefined1 *)(param_1 + 0x108) = 0x20;\n    goto LAB_002e5807;\n  case 0x20:\n    if (*(long *)(param_1 + 0x100) == 0xff) {\n      *(undefined1 *)(param_1 + 0xff) = 0;\n      (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n      *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n      *(undefined8 *)(param_1 + 0x100) = 0;\n    }\n    lVar1 = *(long *)(param_1 + 0x100);\n    lVar3 = lVar1 + 1;\n    *(long *)(param_1 + 0x100) = lVar3;\n    *(undefined1 *)(param_1 + lVar1) = 0x20;\n    *(undefined1 *)(param_1 + 0x108) = 0x20;\n    goto LAB_002e5867;\n  case 0x21:\n    if (*(long *)(param_1 + 0x100) == 0xff) {\n      *(undefined1 *)(param_1 + 0xff) = 0;\n      (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n      *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n      *(undefined8 *)(param_1 + 0x100) = 0;\n    }\n    lVar3 = *(long *)(param_1 + 0x100);\n    *(long *)(param_1 + 0x100) = lVar3 + 1;\n    *(undefined1 *)(param_1 + lVar3) = 0x20;\n    *(undefined1 *)(param_1 + 0x108) = 0x20;\n    param_3 = *(int **)(param_3 + 4);\n    param_2 = uVar6;\n    goto switchD_002e52d3_caseD_4;\n  case 0x22:\n    if ((param_2 & 4) == 0) {\n      if (*(long *)(param_1 + 0x100) == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        *(undefined8 *)(param_1 + 0x100) = 0;\n      }\n      lVar3 = *(long *)(param_1 + 0x100);\n      *(long *)(param_1 + 0x100) = lVar3 + 1;\n      *(undefined1 *)(param_1 + lVar3) = 0x2a;\n      *(undefined1 *)(param_1 + 0x108) = 0x2a;\n    }\n    break;\n  case 0x23:\n    lVar3 = *(long *)(param_1 + 0x100);\nLAB_002e5807:\n    lVar1 = lVar3 + 1;\n    if (lVar3 == 0xff) {\n      *(undefined1 *)(param_1 + 0xff) = 0;\n      (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n      *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n      lVar1 = 1;\n      lVar3 = 0;\n    }\n    *(long *)(param_1 + 0x100) = lVar1;\n    *(undefined1 *)(param_1 + lVar3) = 0x26;\n    *(undefined1 *)(param_1 + 0x108) = 0x26;\n    break;\n  case 0x24:\n    lVar3 = *(long *)(param_1 + 0x100);\nLAB_002e5867:\n    puVar4 = &DAT_003a6db5;\n    uVar5 = 0x26;\n    while( true ) {\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      puVar4 = puVar4 + 1;\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(undefined1 *)(param_1 + lVar3) = uVar5;\n      *(undefined1 *)(param_1 + 0x108) = uVar5;\n      if (puVar4 == &DAT_003a6db7) break;\n      uVar5 = *puVar4;\n      lVar3 = lVar1;\n    }\n    break;\n  case 0x25:\n    pcVar7 = "complex ";\n    cVar8 = 'c';\n    lVar3 = *(long *)(param_1 + 0x100);\n    while( true ) {\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      pcVar7 = pcVar7 + 1;\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }\n    break;\n  case 0x26:\n    pcVar7 = "imaginary ";\n    cVar8 = 'i';\n    lVar3 = *(long *)(param_1 + 0x100);\n    while( true ) {\n      pcVar7 = pcVar7 + 1;\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }\n    break;\n  case 0x2b:\n    if (*(char *)(param_1 + 0x108) != '(') {\n      lVar1 = *(long *)(param_1 + 0x100);\n      lVar3 = lVar1 + 1;\n      if (lVar1 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar3 = 1;\n        lVar1 = 0;\n      }\n      *(long *)(param_1 + 0x100) = lVar3;\n      *(undefined1 *)(param_1 + lVar1) = 0x20;\n      *(undefined1 *)(param_1 + 0x108) = 0x20;\n    }\n    puVar4 = &DAT_003a9d5a;\n    uVar5 = 0x3a;\n    FUN_002e5210(param_1,uVar6,*(undefined8 *)(param_3 + 2));\n    lVar3 = *(long *)(param_1 + 0x100);\n    while( true ) {\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      puVar4 = puVar4 + 1;\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(undefined1 *)(param_1 + lVar3) = uVar5;\n      *(undefined1 *)(param_1 + 0x108) = uVar5;\n      if (puVar4 == &DAT_003a9d5d) break;\n      uVar5 = *puVar4;\n      lVar3 = lVar1;\n    }\n    break;\n  case 0x2d:\n    pcVar7 = " __vector(";\n    cVar8 = ' ';\n    lVar3 = *(long *)(param_1 + 0x100);\n    while( true ) {\n      pcVar7 = pcVar7 + 1;\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }\n    lVar3 = *(long *)(param_3 + 2);\n    goto LAB_002e5aba;\n  case 0x4c:\n    pcVar7 = " transaction_safe";\n    cVar8 = ' ';\n    lVar3 = *(long *)(param_1 + 0x100);\n    while( true ) {\n      pcVar7 = pcVar7 + 1;\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }\n    break;\n  case 0x4e:\n    pcVar7 = " noexcept";\n    cVar8 = ' ';\n    lVar3 = *(long *)(param_1 + 0x100);\n    while( true ) {\n      pcVar7 = pcVar7 + 1;\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }\n    goto LAB_002e5a60;\n  case 0x4f:\n    pcVar7 = " throw";\n    cVar8 = ' ';\n    lVar3 = *(long *)(param_1 + 0x100);\n    while( true ) {\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      pcVar7 = pcVar7 + 1;\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }\nLAB_002e5a60:\n    lVar3 = *(long *)(param_3 + 4);\n    if (lVar3 != 0) {\n      lVar2 = lVar1 + 1;\n      if (lVar1 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar3 = *(long *)(param_3 + 4);\n        lVar1 = 0;\n        lVar2 = 1;\n      }\n      *(long *)(param_1 + 0x100) = lVar2;\n      *(undefined1 *)(param_1 + lVar1) = 0x28;\n      *(undefined1 *)(param_1 + 0x108) = 0x28;\nLAB_002e5aba:\n      FUN_002e5210(param_1,uVar6,lVar3);\n      lVar1 = *(long *)(param_1 + 0x100);\n      lVar3 = lVar1 + 1;\n      if (lVar1 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar3 = 1;\n        lVar1 = 0;\n      }\n      *(long *)(param_1 + 0x100) = lVar3;\n      *(undefined1 *)(param_1 + lVar1) = 0x29;\n      *(undefined1 *)(param_1 + 0x108) = 0x29;\n      return;\n    }\n  }" switch (parenthesized_expression "(*param_3)" ( (pointer_expression "*param_3" * identifier) )) (compound_statement "{\n  case 3:\n    param_3 = *(int **)(param_3 + 2);\n  default:\nswitchD_002e52d3_caseD_4:\n    FUN_002e5210(param_1,param_2,param_3);\n    return;\n  case 0x19:\n  case 0x1c:\n    pcVar7 = " restrict";\n    cVar8 = ' ';\n    lVar3 = *(long *)(param_1 + 0x100);\n    while( true ) {\n      pcVar7 = pcVar7 + 1;\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }\n    break;\n  case 0x1a:\n  case 0x1d:\n    pcVar7 = "volatile";\n    cVar8 = ' ';\n    lVar3 = *(long *)(param_1 + 0x100);\n    while( true ) {\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      pcVar7 = pcVar7 + 1;\n      lVar3 = lVar1;\n    }\n    break;\n  case 0x1b:\n  case 0x1e:\n    pcVar7 = " const";\n    cVar8 = ' ';\n    lVar3 = *(long *)(param_1 + 0x100);\n    while( true ) {\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      pcVar7 = pcVar7 + 1;\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }\n    break;\n  case 0x1f:\n    if (*(long *)(param_1 + 0x100) == 0xff) {\n      *(undefined1 *)(param_1 + 0xff) = 0;\n      (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n      *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n      *(undefined8 *)(param_1 + 0x100) = 0;\n    }\n    lVar1 = *(long *)(param_1 + 0x100);\n    lVar3 = lVar1 + 1;\n    *(long *)(param_1 + 0x100) = lVar3;\n    *(undefined1 *)(param_1 + lVar1) = 0x20;\n    *(undefined1 *)(param_1 + 0x108) = 0x20;\n    goto LAB_002e5807;\n  case 0x20:\n    if (*(long *)(param_1 + 0x100) == 0xff) {\n      *(undefined1 *)(param_1 + 0xff) = 0;\n      (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n      *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n      *(undefined8 *)(param_1 + 0x100) = 0;\n    }\n    lVar1 = *(long *)(param_1 + 0x100);\n    lVar3 = lVar1 + 1;\n    *(long *)(param_1 + 0x100) = lVar3;\n    *(undefined1 *)(param_1 + lVar1) = 0x20;\n    *(undefined1 *)(param_1 + 0x108) = 0x20;\n    goto LAB_002e5867;\n  case 0x21:\n    if (*(long *)(param_1 + 0x100) == 0xff) {\n      *(undefined1 *)(param_1 + 0xff) = 0;\n      (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n      *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n      *(undefined8 *)(param_1 + 0x100) = 0;\n    }\n    lVar3 = *(long *)(param_1 + 0x100);\n    *(long *)(param_1 + 0x100) = lVar3 + 1;\n    *(undefined1 *)(param_1 + lVar3) = 0x20;\n    *(undefined1 *)(param_1 + 0x108) = 0x20;\n    param_3 = *(int **)(param_3 + 4);\n    param_2 = uVar6;\n    goto switchD_002e52d3_caseD_4;\n  case 0x22:\n    if ((param_2 & 4) == 0) {\n      if (*(long *)(param_1 + 0x100) == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        *(undefined8 *)(param_1 + 0x100) = 0;\n      }\n      lVar3 = *(long *)(param_1 + 0x100);\n      *(long *)(param_1 + 0x100) = lVar3 + 1;\n      *(undefined1 *)(param_1 + lVar3) = 0x2a;\n      *(undefined1 *)(param_1 + 0x108) = 0x2a;\n    }\n    break;\n  case 0x23:\n    lVar3 = *(long *)(param_1 + 0x100);\nLAB_002e5807:\n    lVar1 = lVar3 + 1;\n    if (lVar3 == 0xff) {\n      *(undefined1 *)(param_1 + 0xff) = 0;\n      (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n      *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n      lVar1 = 1;\n      lVar3 = 0;\n    }\n    *(long *)(param_1 + 0x100) = lVar1;\n    *(undefined1 *)(param_1 + lVar3) = 0x26;\n    *(undefined1 *)(param_1 + 0x108) = 0x26;\n    break;\n  case 0x24:\n    lVar3 = *(long *)(param_1 + 0x100);\nLAB_002e5867:\n    puVar4 = &DAT_003a6db5;\n    uVar5 = 0x26;\n    while( true ) {\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      puVar4 = puVar4 + 1;\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(undefined1 *)(param_1 + lVar3) = uVar5;\n      *(undefined1 *)(param_1 + 0x108) = uVar5;\n      if (puVar4 == &DAT_003a6db7) break;\n      uVar5 = *puVar4;\n      lVar3 = lVar1;\n    }\n    break;\n  case 0x25:\n    pcVar7 = "complex ";\n    cVar8 = 'c';\n    lVar3 = *(long *)(param_1 + 0x100);\n    while( true ) {\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      pcVar7 = pcVar7 + 1;\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }\n    break;\n  case 0x26:\n    pcVar7 = "imaginary ";\n    cVar8 = 'i';\n    lVar3 = *(long *)(param_1 + 0x100);\n    while( true ) {\n      pcVar7 = pcVar7 + 1;\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }\n    break;\n  case 0x2b:\n    if (*(char *)(param_1 + 0x108) != '(') {\n      lVar1 = *(long *)(param_1 + 0x100);\n      lVar3 = lVar1 + 1;\n      if (lVar1 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar3 = 1;\n        lVar1 = 0;\n      }\n      *(long *)(param_1 + 0x100) = lVar3;\n      *(undefined1 *)(param_1 + lVar1) = 0x20;\n      *(undefined1 *)(param_1 + 0x108) = 0x20;\n    }\n    puVar4 = &DAT_003a9d5a;\n    uVar5 = 0x3a;\n    FUN_002e5210(param_1,uVar6,*(undefined8 *)(param_3 + 2));\n    lVar3 = *(long *)(param_1 + 0x100);\n    while( true ) {\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      puVar4 = puVar4 + 1;\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(undefined1 *)(param_1 + lVar3) = uVar5;\n      *(undefined1 *)(param_1 + 0x108) = uVar5;\n      if (puVar4 == &DAT_003a9d5d) break;\n      uVar5 = *puVar4;\n      lVar3 = lVar1;\n    }\n    break;\n  case 0x2d:\n    pcVar7 = " __vector(";\n    cVar8 = ' ';\n    lVar3 = *(long *)(param_1 + 0x100);\n    while( true ) {\n      pcVar7 = pcVar7 + 1;\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }\n    lVar3 = *(long *)(param_3 + 2);\n    goto LAB_002e5aba;\n  case 0x4c:\n    pcVar7 = " transaction_safe";\n    cVar8 = ' ';\n    lVar3 = *(long *)(param_1 + 0x100);\n    while( true ) {\n      pcVar7 = pcVar7 + 1;\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }\n    break;\n  case 0x4e:\n    pcVar7 = " noexcept";\n    cVar8 = ' ';\n    lVar3 = *(long *)(param_1 + 0x100);\n    while( true ) {\n      pcVar7 = pcVar7 + 1;\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }\n    goto LAB_002e5a60;\n  case 0x4f:\n    pcVar7 = " throw";\n    cVar8 = ' ';\n    lVar3 = *(long *)(param_1 + 0x100);\n    while( true ) {\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      pcVar7 = pcVar7 + 1;\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }\nLAB_002e5a60:\n    lVar3 = *(long *)(param_3 + 4);\n    if (lVar3 != 0) {\n      lVar2 = lVar1 + 1;\n      if (lVar1 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar3 = *(long *)(param_3 + 4);\n        lVar1 = 0;\n        lVar2 = 1;\n      }\n      *(long *)(param_1 + 0x100) = lVar2;\n      *(undefined1 *)(param_1 + lVar1) = 0x28;\n      *(undefined1 *)(param_1 + 0x108) = 0x28;\nLAB_002e5aba:\n      FUN_002e5210(param_1,uVar6,lVar3);\n      lVar1 = *(long *)(param_1 + 0x100);\n      lVar3 = lVar1 + 1;\n      if (lVar1 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar3 = 1;\n        lVar1 = 0;\n      }\n      *(long *)(param_1 + 0x100) = lVar3;\n      *(undefined1 *)(param_1 + lVar1) = 0x29;\n      *(undefined1 *)(param_1 + 0x108) = 0x29;\n      return;\n    }\n  }" { (case_statement "case 3:\n    param_3 = *(int **)(param_3 + 2);" case number_literal : (expression_statement "param_3 = *(int **)(param_3 + 2);" (assignment_expression "param_3 = *(int **)(param_3 + 2)" identifier = (pointer_expression "*(int **)(param_3 + 2)" * (cast_expression "(int **)(param_3 + 2)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_3 + 2)" ( (binary_expression "param_3 + 2" identifier + number_literal) ))))) ;)) (case_statement "default:\nswitchD_002e52d3_caseD_4:\n    FUN_002e5210(param_1,param_2,param_3);\n    return;" default : (labeled_statement "switchD_002e52d3_caseD_4:\n    FUN_002e5210(param_1,param_2,param_3);" statement_identifier : (expression_statement "FUN_002e5210(param_1,param_2,param_3);" (call_expression "FUN_002e5210(param_1,param_2,param_3)" identifier (argument_list "(param_1,param_2,param_3)" ( identifier , identifier , identifier ))) ;)) (return_statement "return;" return ;)) (case_statement "case 0x19:" case number_literal :) (case_statement "case 0x1c:\n    pcVar7 = " restrict";\n    cVar8 = ' ';\n    lVar3 = *(long *)(param_1 + 0x100);\n    while( true ) {\n      pcVar7 = pcVar7 + 1;\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }\n    break;" case number_literal : (expression_statement "pcVar7 = " restrict";" (assignment_expression "pcVar7 = " restrict"" identifier = (string_literal "" restrict"" " string_content ")) ;) (expression_statement "cVar8 = ' ';" (assignment_expression "cVar8 = ' '" identifier = (char_literal "' '" ' character ')) ;) (expression_statement "lVar3 = *(long *)(param_1 + 0x100);" (assignment_expression "lVar3 = *(long *)(param_1 + 0x100)" identifier = (pointer_expression "*(long *)(param_1 + 0x100)" * (cast_expression "(long *)(param_1 + 0x100)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x100)" ( (binary_expression "param_1 + 0x100" identifier + number_literal) ))))) ;) (while_statement "while( true ) {\n      pcVar7 = pcVar7 + 1;\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      pcVar7 = pcVar7 + 1;\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }" { (expression_statement "pcVar7 = pcVar7 + 1;" (assignment_expression "pcVar7 = pcVar7 + 1" identifier = (binary_expression "pcVar7 + 1" identifier + number_literal)) ;) (if_statement "if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }" if (parenthesized_expression "(lVar3 == 0xff)" ( (binary_expression "lVar3 == 0xff" identifier == number_literal) )) (compound_statement "{\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }" { (expression_statement "*(undefined1 *)(param_1 + 0xff) = 0;" (assignment_expression "*(undefined1 *)(param_1 + 0xff) = 0" (pointer_expression "*(undefined1 *)(param_1 + 0xff)" * (cast_expression "(undefined1 *)(param_1 + 0xff)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xff)" ( (binary_expression "param_1 + 0xff" identifier + number_literal) )))) = number_literal) ;) (expression_statement "(**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));" (call_expression "(**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118))" (parenthesized_expression "(**(code **)(param_1 + 0x110))" ( (pointer_expression "**(code **)(param_1 + 0x110)" * (pointer_expression "*(code **)(param_1 + 0x110)" * (cast_expression "(code **)(param_1 + 0x110)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x110)" ( (binary_expression "param_1 + 0x110" identifier + number_literal) ))))) )) (argument_list "(param_1,0xff,*(undefined8 *)(param_1 + 0x118))" ( identifier , number_literal , (pointer_expression "*(undefined8 *)(param_1 + 0x118)" * (cast_expression "(undefined8 *)(param_1 + 0x118)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x118)" ( (binary_expression "param_1 + 0x118" identifier + number_literal) )))) ))) ;) (expression_statement "*(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;" (assignment_expression "*(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1" (pointer_expression "*(long *)(param_1 + 0x140)" * (cast_expression "(long *)(param_1 + 0x140)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x140)" ( (binary_expression "param_1 + 0x140" identifier + number_literal) )))) = (binary_expression "*(long *)(param_1 + 0x140) + 1" (pointer_expression "*(long *)(param_1 + 0x140)" * (cast_expression "(long *)(param_1 + 0x140)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x140)" ( (binary_expression "param_1 + 0x140" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "lVar1 = 1;" (assignment_expression "lVar1 = 1" identifier = number_literal) ;) (expression_statement "lVar3 = 0;" (assignment_expression "lVar3 = 0" identifier = number_literal) ;) }) (else_clause "else {\n        lVar1 = lVar3 + 1;\n      }" else (compound_statement "{\n        lVar1 = lVar3 + 1;\n      }" { (expression_statement "lVar1 = lVar3 + 1;" (assignment_expression "lVar1 = lVar3 + 1" identifier = (binary_expression "lVar3 + 1" identifier + number_literal)) ;) }))) (expression_statement "*(long *)(param_1 + 0x100) = lVar1;" (assignment_expression "*(long *)(param_1 + 0x100) = lVar1" (pointer_expression "*(long *)(param_1 + 0x100)" * (cast_expression "(long *)(param_1 + 0x100)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x100)" ( (binary_expression "param_1 + 0x100" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(char *)(param_1 + lVar3) = cVar8;" (assignment_expression "*(char *)(param_1 + lVar3) = cVar8" (pointer_expression "*(char *)(param_1 + lVar3)" * (cast_expression "(char *)(param_1 + lVar3)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + lVar3)" ( (binary_expression "param_1 + lVar3" identifier + identifier) )))) = identifier) ;) (expression_statement "*(char *)(param_1 + 0x108) = cVar8;" (assignment_expression "*(char *)(param_1 + 0x108) = cVar8" (pointer_expression "*(char *)(param_1 + 0x108)" * (cast_expression "(char *)(param_1 + 0x108)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x108)" ( (binary_expression "param_1 + 0x108" identifier + number_literal) )))) = identifier) ;) (if_statement "if (pcVar7 == "") break;" if (parenthesized_expression "(pcVar7 == "")" ( (binary_expression "pcVar7 == """ identifier == (string_literal """" " ")) )) (break_statement "break;" break ;)) (expression_statement "cVar8 = *pcVar7;" (assignment_expression "cVar8 = *pcVar7" identifier = (pointer_expression "*pcVar7" * identifier)) ;) (expression_statement "lVar3 = lVar1;" (assignment_expression "lVar3 = lVar1" identifier = identifier) ;) })) (break_statement "break;" break ;)) (case_statement "case 0x1a:" case number_literal :) (case_statement "case 0x1d:\n    pcVar7 = "volatile";\n    cVar8 = ' ';\n    lVar3 = *(long *)(param_1 + 0x100);\n    while( true ) {\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      pcVar7 = pcVar7 + 1;\n      lVar3 = lVar1;\n    }\n    break;" case number_literal : (expression_statement "pcVar7 = "volatile";" (assignment_expression "pcVar7 = "volatile"" identifier = (string_literal ""volatile"" " string_content ")) ;) (expression_statement "cVar8 = ' ';" (assignment_expression "cVar8 = ' '" identifier = (char_literal "' '" ' character ')) ;) (expression_statement "lVar3 = *(long *)(param_1 + 0x100);" (assignment_expression "lVar3 = *(long *)(param_1 + 0x100)" identifier = (pointer_expression "*(long *)(param_1 + 0x100)" * (cast_expression "(long *)(param_1 + 0x100)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x100)" ( (binary_expression "param_1 + 0x100" identifier + number_literal) ))))) ;) (while_statement "while( true ) {\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      pcVar7 = pcVar7 + 1;\n      lVar3 = lVar1;\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      pcVar7 = pcVar7 + 1;\n      lVar3 = lVar1;\n    }" { (if_statement "if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }" if (parenthesized_expression "(lVar3 == 0xff)" ( (binary_expression "lVar3 == 0xff" identifier == number_literal) )) (compound_statement "{\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }" { (expression_statement "*(undefined1 *)(param_1 + 0xff) = 0;" (assignment_expression "*(undefined1 *)(param_1 + 0xff) = 0" (pointer_expression "*(undefined1 *)(param_1 + 0xff)" * (cast_expression "(undefined1 *)(param_1 + 0xff)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xff)" ( (binary_expression "param_1 + 0xff" identifier + number_literal) )))) = number_literal) ;) (expression_statement "(**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));" (call_expression "(**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118))" (parenthesized_expression "(**(code **)(param_1 + 0x110))" ( (pointer_expression "**(code **)(param_1 + 0x110)" * (pointer_expression "*(code **)(param_1 + 0x110)" * (cast_expression "(code **)(param_1 + 0x110)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x110)" ( (binary_expression "param_1 + 0x110" identifier + number_literal) ))))) )) (argument_list "(param_1,0xff,*(undefined8 *)(param_1 + 0x118))" ( identifier , number_literal , (pointer_expression "*(undefined8 *)(param_1 + 0x118)" * (cast_expression "(undefined8 *)(param_1 + 0x118)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x118)" ( (binary_expression "param_1 + 0x118" identifier + number_literal) )))) ))) ;) (expression_statement "*(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;" (assignment_expression "*(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1" (pointer_expression "*(long *)(param_1 + 0x140)" * (cast_expression "(long *)(param_1 + 0x140)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x140)" ( (binary_expression "param_1 + 0x140" identifier + number_literal) )))) = (binary_expression "*(long *)(param_1 + 0x140) + 1" (pointer_expression "*(long *)(param_1 + 0x140)" * (cast_expression "(long *)(param_1 + 0x140)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x140)" ( (binary_expression "param_1 + 0x140" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "lVar1 = 1;" (assignment_expression "lVar1 = 1" identifier = number_literal) ;) (expression_statement "lVar3 = 0;" (assignment_expression "lVar3 = 0" identifier = number_literal) ;) }) (else_clause "else {\n        lVar1 = lVar3 + 1;\n      }" else (compound_statement "{\n        lVar1 = lVar3 + 1;\n      }" { (expression_statement "lVar1 = lVar3 + 1;" (assignment_expression "lVar1 = lVar3 + 1" identifier = (binary_expression "lVar3 + 1" identifier + number_literal)) ;) }))) (expression_statement "*(long *)(param_1 + 0x100) = lVar1;" (assignment_expression "*(long *)(param_1 + 0x100) = lVar1" (pointer_expression "*(long *)(param_1 + 0x100)" * (cast_expression "(long *)(param_1 + 0x100)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x100)" ( (binary_expression "param_1 + 0x100" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(char *)(param_1 + lVar3) = cVar8;" (assignment_expression "*(char *)(param_1 + lVar3) = cVar8" (pointer_expression "*(char *)(param_1 + lVar3)" * (cast_expression "(char *)(param_1 + lVar3)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + lVar3)" ( (binary_expression "param_1 + lVar3" identifier + identifier) )))) = identifier) ;) (expression_statement "*(char *)(param_1 + 0x108) = cVar8;" (assignment_expression "*(char *)(param_1 + 0x108) = cVar8" (pointer_expression "*(char *)(param_1 + 0x108)" * (cast_expression "(char *)(param_1 + 0x108)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x108)" ( (binary_expression "param_1 + 0x108" identifier + number_literal) )))) = identifier) ;) (if_statement "if (pcVar7 == "") break;" if (parenthesized_expression "(pcVar7 == "")" ( (binary_expression "pcVar7 == """ identifier == (string_literal """" " ")) )) (break_statement "break;" break ;)) (expression_statement "cVar8 = *pcVar7;" (assignment_expression "cVar8 = *pcVar7" identifier = (pointer_expression "*pcVar7" * identifier)) ;) (expression_statement "pcVar7 = pcVar7 + 1;" (assignment_expression "pcVar7 = pcVar7 + 1" identifier = (binary_expression "pcVar7 + 1" identifier + number_literal)) ;) (expression_statement "lVar3 = lVar1;" (assignment_expression "lVar3 = lVar1" identifier = identifier) ;) })) (break_statement "break;" break ;)) (case_statement "case 0x1b:" case number_literal :) (case_statement "case 0x1e:\n    pcVar7 = " const";\n    cVar8 = ' ';\n    lVar3 = *(long *)(param_1 + 0x100);\n    while( true ) {\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      pcVar7 = pcVar7 + 1;\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }\n    break;" case number_literal : (expression_statement "pcVar7 = " const";" (assignment_expression "pcVar7 = " const"" identifier = (string_literal "" const"" " string_content ")) ;) (expression_statement "cVar8 = ' ';" (assignment_expression "cVar8 = ' '" identifier = (char_literal "' '" ' character ')) ;) (expression_statement "lVar3 = *(long *)(param_1 + 0x100);" (assignment_expression "lVar3 = *(long *)(param_1 + 0x100)" identifier = (pointer_expression "*(long *)(param_1 + 0x100)" * (cast_expression "(long *)(param_1 + 0x100)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x100)" ( (binary_expression "param_1 + 0x100" identifier + number_literal) ))))) ;) (while_statement "while( true ) {\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      pcVar7 = pcVar7 + 1;\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      pcVar7 = pcVar7 + 1;\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }" { (if_statement "if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }" if (parenthesized_expression "(lVar3 == 0xff)" ( (binary_expression "lVar3 == 0xff" identifier == number_literal) )) (compound_statement "{\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }" { (expression_statement "*(undefined1 *)(param_1 + 0xff) = 0;" (assignment_expression "*(undefined1 *)(param_1 + 0xff) = 0" (pointer_expression "*(undefined1 *)(param_1 + 0xff)" * (cast_expression "(undefined1 *)(param_1 + 0xff)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xff)" ( (binary_expression "param_1 + 0xff" identifier + number_literal) )))) = number_literal) ;) (expression_statement "(**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));" (call_expression "(**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118))" (parenthesized_expression "(**(code **)(param_1 + 0x110))" ( (pointer_expression "**(code **)(param_1 + 0x110)" * (pointer_expression "*(code **)(param_1 + 0x110)" * (cast_expression "(code **)(param_1 + 0x110)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x110)" ( (binary_expression "param_1 + 0x110" identifier + number_literal) ))))) )) (argument_list "(param_1,0xff,*(undefined8 *)(param_1 + 0x118))" ( identifier , number_literal , (pointer_expression "*(undefined8 *)(param_1 + 0x118)" * (cast_expression "(undefined8 *)(param_1 + 0x118)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x118)" ( (binary_expression "param_1 + 0x118" identifier + number_literal) )))) ))) ;) (expression_statement "*(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;" (assignment_expression "*(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1" (pointer_expression "*(long *)(param_1 + 0x140)" * (cast_expression "(long *)(param_1 + 0x140)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x140)" ( (binary_expression "param_1 + 0x140" identifier + number_literal) )))) = (binary_expression "*(long *)(param_1 + 0x140) + 1" (pointer_expression "*(long *)(param_1 + 0x140)" * (cast_expression "(long *)(param_1 + 0x140)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x140)" ( (binary_expression "param_1 + 0x140" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "lVar1 = 1;" (assignment_expression "lVar1 = 1" identifier = number_literal) ;) (expression_statement "lVar3 = 0;" (assignment_expression "lVar3 = 0" identifier = number_literal) ;) }) (else_clause "else {\n        lVar1 = lVar3 + 1;\n      }" else (compound_statement "{\n        lVar1 = lVar3 + 1;\n      }" { (expression_statement "lVar1 = lVar3 + 1;" (assignment_expression "lVar1 = lVar3 + 1" identifier = (binary_expression "lVar3 + 1" identifier + number_literal)) ;) }))) (expression_statement "pcVar7 = pcVar7 + 1;" (assignment_expression "pcVar7 = pcVar7 + 1" identifier = (binary_expression "pcVar7 + 1" identifier + number_literal)) ;) (expression_statement "*(long *)(param_1 + 0x100) = lVar1;" (assignment_expression "*(long *)(param_1 + 0x100) = lVar1" (pointer_expression "*(long *)(param_1 + 0x100)" * (cast_expression "(long *)(param_1 + 0x100)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x100)" ( (binary_expression "param_1 + 0x100" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(char *)(param_1 + lVar3) = cVar8;" (assignment_expression "*(char *)(param_1 + lVar3) = cVar8" (pointer_expression "*(char *)(param_1 + lVar3)" * (cast_expression "(char *)(param_1 + lVar3)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + lVar3)" ( (binary_expression "param_1 + lVar3" identifier + identifier) )))) = identifier) ;) (expression_statement "*(char *)(param_1 + 0x108) = cVar8;" (assignment_expression "*(char *)(param_1 + 0x108) = cVar8" (pointer_expression "*(char *)(param_1 + 0x108)" * (cast_expression "(char *)(param_1 + 0x108)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x108)" ( (binary_expression "param_1 + 0x108" identifier + number_literal) )))) = identifier) ;) (if_statement "if (pcVar7 == "") break;" if (parenthesized_expression "(pcVar7 == "")" ( (binary_expression "pcVar7 == """ identifier == (string_literal """" " ")) )) (break_statement "break;" break ;)) (expression_statement "cVar8 = *pcVar7;" (assignment_expression "cVar8 = *pcVar7" identifier = (pointer_expression "*pcVar7" * identifier)) ;) (expression_statement "lVar3 = lVar1;" (assignment_expression "lVar3 = lVar1" identifier = identifier) ;) })) (break_statement "break;" break ;)) (case_statement "case 0x1f:\n    if (*(long *)(param_1 + 0x100) == 0xff) {\n      *(undefined1 *)(param_1 + 0xff) = 0;\n      (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n      *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n      *(undefined8 *)(param_1 + 0x100) = 0;\n    }\n    lVar1 = *(long *)(param_1 + 0x100);\n    lVar3 = lVar1 + 1;\n    *(long *)(param_1 + 0x100) = lVar3;\n    *(undefined1 *)(param_1 + lVar1) = 0x20;\n    *(undefined1 *)(param_1 + 0x108) = 0x20;\n    goto LAB_002e5807;" case number_literal : (if_statement "if (*(long *)(param_1 + 0x100) == 0xff) {\n      *(undefined1 *)(param_1 + 0xff) = 0;\n      (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n      *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n      *(undefined8 *)(param_1 + 0x100) = 0;\n    }" if (parenthesized_expression "(*(long *)(param_1 + 0x100) == 0xff)" ( (binary_expression "*(long *)(param_1 + 0x100) == 0xff" (pointer_expression "*(long *)(param_1 + 0x100)" * (cast_expression "(long *)(param_1 + 0x100)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x100)" ( (binary_expression "param_1 + 0x100" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n      *(undefined1 *)(param_1 + 0xff) = 0;\n      (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n      *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n      *(undefined8 *)(param_1 + 0x100) = 0;\n    }" { (expression_statement "*(undefined1 *)(param_1 + 0xff) = 0;" (assignment_expression "*(undefined1 *)(param_1 + 0xff) = 0" (pointer_expression "*(undefined1 *)(param_1 + 0xff)" * (cast_expression "(undefined1 *)(param_1 + 0xff)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xff)" ( (binary_expression "param_1 + 0xff" identifier + number_literal) )))) = number_literal) ;) (expression_statement "(**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));" (call_expression "(**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118))" (parenthesized_expression "(**(code **)(param_1 + 0x110))" ( (pointer_expression "**(code **)(param_1 + 0x110)" * (pointer_expression "*(code **)(param_1 + 0x110)" * (cast_expression "(code **)(param_1 + 0x110)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x110)" ( (binary_expression "param_1 + 0x110" identifier + number_literal) ))))) )) (argument_list "(param_1,0xff,*(undefined8 *)(param_1 + 0x118))" ( identifier , number_literal , (pointer_expression "*(undefined8 *)(param_1 + 0x118)" * (cast_expression "(undefined8 *)(param_1 + 0x118)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x118)" ( (binary_expression "param_1 + 0x118" identifier + number_literal) )))) ))) ;) (expression_statement "*(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;" (assignment_expression "*(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1" (pointer_expression "*(long *)(param_1 + 0x140)" * (cast_expression "(long *)(param_1 + 0x140)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x140)" ( (binary_expression "param_1 + 0x140" identifier + number_literal) )))) = (binary_expression "*(long *)(param_1 + 0x140) + 1" (pointer_expression "*(long *)(param_1 + 0x140)" * (cast_expression "(long *)(param_1 + 0x140)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x140)" ( (binary_expression "param_1 + 0x140" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "*(undefined8 *)(param_1 + 0x100) = 0;" (assignment_expression "*(undefined8 *)(param_1 + 0x100) = 0" (pointer_expression "*(undefined8 *)(param_1 + 0x100)" * (cast_expression "(undefined8 *)(param_1 + 0x100)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x100)" ( (binary_expression "param_1 + 0x100" identifier + number_literal) )))) = number_literal) ;) })) (expression_statement "lVar1 = *(long *)(param_1 + 0x100);" (assignment_expression "lVar1 = *(long *)(param_1 + 0x100)" identifier = (pointer_expression "*(long *)(param_1 + 0x100)" * (cast_expression "(long *)(param_1 + 0x100)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x100)" ( (binary_expression "param_1 + 0x100" identifier + number_literal) ))))) ;) (expression_statement "lVar3 = lVar1 + 1;" (assignment_expression "lVar3 = lVar1 + 1" identifier = (binary_expression "lVar1 + 1" identifier + number_literal)) ;) (expression_statement "*(long *)(param_1 + 0x100) = lVar3;" (assignment_expression "*(long *)(param_1 + 0x100) = lVar3" (pointer_expression "*(long *)(param_1 + 0x100)" * (cast_expression "(long *)(param_1 + 0x100)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x100)" ( (binary_expression "param_1 + 0x100" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 *)(param_1 + lVar1) = 0x20;" (assignment_expression "*(undefined1 *)(param_1 + lVar1) = 0x20" (pointer_expression "*(undefined1 *)(param_1 + lVar1)" * (cast_expression "(undefined1 *)(param_1 + lVar1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + lVar1)" ( (binary_expression "param_1 + lVar1" identifier + identifier) )))) = number_literal) ;) (expression_statement "*(undefined1 *)(param_1 + 0x108) = 0x20;" (assignment_expression "*(undefined1 *)(param_1 + 0x108) = 0x20" (pointer_expression "*(undefined1 *)(param_1 + 0x108)" * (cast_expression "(undefined1 *)(param_1 + 0x108)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x108)" ( (binary_expression "param_1 + 0x108" identifier + number_literal) )))) = number_literal) ;) (goto_statement "goto LAB_002e5807;" goto statement_identifier ;)) (case_statement "case 0x20:\n    if (*(long *)(param_1 + 0x100) == 0xff) {\n      *(undefined1 *)(param_1 + 0xff) = 0;\n      (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n      *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n      *(undefined8 *)(param_1 + 0x100) = 0;\n    }\n    lVar1 = *(long *)(param_1 + 0x100);\n    lVar3 = lVar1 + 1;\n    *(long *)(param_1 + 0x100) = lVar3;\n    *(undefined1 *)(param_1 + lVar1) = 0x20;\n    *(undefined1 *)(param_1 + 0x108) = 0x20;\n    goto LAB_002e5867;" case number_literal : (if_statement "if (*(long *)(param_1 + 0x100) == 0xff) {\n      *(undefined1 *)(param_1 + 0xff) = 0;\n      (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n      *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n      *(undefined8 *)(param_1 + 0x100) = 0;\n    }" if (parenthesized_expression "(*(long *)(param_1 + 0x100) == 0xff)" ( (binary_expression "*(long *)(param_1 + 0x100) == 0xff" (pointer_expression "*(long *)(param_1 + 0x100)" * (cast_expression "(long *)(param_1 + 0x100)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x100)" ( (binary_expression "param_1 + 0x100" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n      *(undefined1 *)(param_1 + 0xff) = 0;\n      (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n      *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n      *(undefined8 *)(param_1 + 0x100) = 0;\n    }" { (expression_statement "*(undefined1 *)(param_1 + 0xff) = 0;" (assignment_expression "*(undefined1 *)(param_1 + 0xff) = 0" (pointer_expression "*(undefined1 *)(param_1 + 0xff)" * (cast_expression "(undefined1 *)(param_1 + 0xff)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xff)" ( (binary_expression "param_1 + 0xff" identifier + number_literal) )))) = number_literal) ;) (expression_statement "(**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));" (call_expression "(**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118))" (parenthesized_expression "(**(code **)(param_1 + 0x110))" ( (pointer_expression "**(code **)(param_1 + 0x110)" * (pointer_expression "*(code **)(param_1 + 0x110)" * (cast_expression "(code **)(param_1 + 0x110)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x110)" ( (binary_expression "param_1 + 0x110" identifier + number_literal) ))))) )) (argument_list "(param_1,0xff,*(undefined8 *)(param_1 + 0x118))" ( identifier , number_literal , (pointer_expression "*(undefined8 *)(param_1 + 0x118)" * (cast_expression "(undefined8 *)(param_1 + 0x118)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x118)" ( (binary_expression "param_1 + 0x118" identifier + number_literal) )))) ))) ;) (expression_statement "*(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;" (assignment_expression "*(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1" (pointer_expression "*(long *)(param_1 + 0x140)" * (cast_expression "(long *)(param_1 + 0x140)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x140)" ( (binary_expression "param_1 + 0x140" identifier + number_literal) )))) = (binary_expression "*(long *)(param_1 + 0x140) + 1" (pointer_expression "*(long *)(param_1 + 0x140)" * (cast_expression "(long *)(param_1 + 0x140)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x140)" ( (binary_expression "param_1 + 0x140" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "*(undefined8 *)(param_1 + 0x100) = 0;" (assignment_expression "*(undefined8 *)(param_1 + 0x100) = 0" (pointer_expression "*(undefined8 *)(param_1 + 0x100)" * (cast_expression "(undefined8 *)(param_1 + 0x100)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x100)" ( (binary_expression "param_1 + 0x100" identifier + number_literal) )))) = number_literal) ;) })) (expression_statement "lVar1 = *(long *)(param_1 + 0x100);" (assignment_expression "lVar1 = *(long *)(param_1 + 0x100)" identifier = (pointer_expression "*(long *)(param_1 + 0x100)" * (cast_expression "(long *)(param_1 + 0x100)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x100)" ( (binary_expression "param_1 + 0x100" identifier + number_literal) ))))) ;) (expression_statement "lVar3 = lVar1 + 1;" (assignment_expression "lVar3 = lVar1 + 1" identifier = (binary_expression "lVar1 + 1" identifier + number_literal)) ;) (expression_statement "*(long *)(param_1 + 0x100) = lVar3;" (assignment_expression "*(long *)(param_1 + 0x100) = lVar3" (pointer_expression "*(long *)(param_1 + 0x100)" * (cast_expression "(long *)(param_1 + 0x100)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x100)" ( (binary_expression "param_1 + 0x100" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 *)(param_1 + lVar1) = 0x20;" (assignment_expression "*(undefined1 *)(param_1 + lVar1) = 0x20" (pointer_expression "*(undefined1 *)(param_1 + lVar1)" * (cast_expression "(undefined1 *)(param_1 + lVar1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + lVar1)" ( (binary_expression "param_1 + lVar1" identifier + identifier) )))) = number_literal) ;) (expression_statement "*(undefined1 *)(param_1 + 0x108) = 0x20;" (assignment_expression "*(undefined1 *)(param_1 + 0x108) = 0x20" (pointer_expression "*(undefined1 *)(param_1 + 0x108)" * (cast_expression "(undefined1 *)(param_1 + 0x108)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x108)" ( (binary_expression "param_1 + 0x108" identifier + number_literal) )))) = number_literal) ;) (goto_statement "goto LAB_002e5867;" goto statement_identifier ;)) (case_statement "case 0x21:\n    if (*(long *)(param_1 + 0x100) == 0xff) {\n      *(undefined1 *)(param_1 + 0xff) = 0;\n      (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n      *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n      *(undefined8 *)(param_1 + 0x100) = 0;\n    }\n    lVar3 = *(long *)(param_1 + 0x100);\n    *(long *)(param_1 + 0x100) = lVar3 + 1;\n    *(undefined1 *)(param_1 + lVar3) = 0x20;\n    *(undefined1 *)(param_1 + 0x108) = 0x20;\n    param_3 = *(int **)(param_3 + 4);\n    param_2 = uVar6;\n    goto switchD_002e52d3_caseD_4;" case number_literal : (if_statement "if (*(long *)(param_1 + 0x100) == 0xff) {\n      *(undefined1 *)(param_1 + 0xff) = 0;\n      (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n      *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n      *(undefined8 *)(param_1 + 0x100) = 0;\n    }" if (parenthesized_expression "(*(long *)(param_1 + 0x100) == 0xff)" ( (binary_expression "*(long *)(param_1 + 0x100) == 0xff" (pointer_expression "*(long *)(param_1 + 0x100)" * (cast_expression "(long *)(param_1 + 0x100)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x100)" ( (binary_expression "param_1 + 0x100" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n      *(undefined1 *)(param_1 + 0xff) = 0;\n      (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n      *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n      *(undefined8 *)(param_1 + 0x100) = 0;\n    }" { (expression_statement "*(undefined1 *)(param_1 + 0xff) = 0;" (assignment_expression "*(undefined1 *)(param_1 + 0xff) = 0" (pointer_expression "*(undefined1 *)(param_1 + 0xff)" * (cast_expression "(undefined1 *)(param_1 + 0xff)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xff)" ( (binary_expression "param_1 + 0xff" identifier + number_literal) )))) = number_literal) ;) (expression_statement "(**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));" (call_expression "(**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118))" (parenthesized_expression "(**(code **)(param_1 + 0x110))" ( (pointer_expression "**(code **)(param_1 + 0x110)" * (pointer_expression "*(code **)(param_1 + 0x110)" * (cast_expression "(code **)(param_1 + 0x110)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x110)" ( (binary_expression "param_1 + 0x110" identifier + number_literal) ))))) )) (argument_list "(param_1,0xff,*(undefined8 *)(param_1 + 0x118))" ( identifier , number_literal , (pointer_expression "*(undefined8 *)(param_1 + 0x118)" * (cast_expression "(undefined8 *)(param_1 + 0x118)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x118)" ( (binary_expression "param_1 + 0x118" identifier + number_literal) )))) ))) ;) (expression_statement "*(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;" (assignment_expression "*(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1" (pointer_expression "*(long *)(param_1 + 0x140)" * (cast_expression "(long *)(param_1 + 0x140)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x140)" ( (binary_expression "param_1 + 0x140" identifier + number_literal) )))) = (binary_expression "*(long *)(param_1 + 0x140) + 1" (pointer_expression "*(long *)(param_1 + 0x140)" * (cast_expression "(long *)(param_1 + 0x140)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x140)" ( (binary_expression "param_1 + 0x140" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "*(undefined8 *)(param_1 + 0x100) = 0;" (assignment_expression "*(undefined8 *)(param_1 + 0x100) = 0" (pointer_expression "*(undefined8 *)(param_1 + 0x100)" * (cast_expression "(undefined8 *)(param_1 + 0x100)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x100)" ( (binary_expression "param_1 + 0x100" identifier + number_literal) )))) = number_literal) ;) })) (expression_statement "lVar3 = *(long *)(param_1 + 0x100);" (assignment_expression "lVar3 = *(long *)(param_1 + 0x100)" identifier = (pointer_expression "*(long *)(param_1 + 0x100)" * (cast_expression "(long *)(param_1 + 0x100)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x100)" ( (binary_expression "param_1 + 0x100" identifier + number_literal) ))))) ;) (expression_statement "*(long *)(param_1 + 0x100) = lVar3 + 1;" (assignment_expression "*(long *)(param_1 + 0x100) = lVar3 + 1" (pointer_expression "*(long *)(param_1 + 0x100)" * (cast_expression "(long *)(param_1 + 0x100)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x100)" ( (binary_expression "param_1 + 0x100" identifier + number_literal) )))) = (binary_expression "lVar3 + 1" identifier + number_literal)) ;) (expression_statement "*(undefined1 *)(param_1 + lVar3) = 0x20;" (assignment_expression "*(undefined1 *)(param_1 + lVar3) = 0x20" (pointer_expression "*(undefined1 *)(param_1 + lVar3)" * (cast_expression "(undefined1 *)(param_1 + lVar3)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + lVar3)" ( (binary_expression "param_1 + lVar3" identifier + identifier) )))) = number_literal) ;) (expression_statement "*(undefined1 *)(param_1 + 0x108) = 0x20;" (assignment_expression "*(undefined1 *)(param_1 + 0x108) = 0x20" (pointer_expression "*(undefined1 *)(param_1 + 0x108)" * (cast_expression "(undefined1 *)(param_1 + 0x108)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x108)" ( (binary_expression "param_1 + 0x108" identifier + number_literal) )))) = number_literal) ;) (expression_statement "param_3 = *(int **)(param_3 + 4);" (assignment_expression "param_3 = *(int **)(param_3 + 4)" identifier = (pointer_expression "*(int **)(param_3 + 4)" * (cast_expression "(int **)(param_3 + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_3 + 4)" ( (binary_expression "param_3 + 4" identifier + number_literal) ))))) ;) (expression_statement "param_2 = uVar6;" (assignment_expression "param_2 = uVar6" identifier = identifier) ;) (goto_statement "goto switchD_002e52d3_caseD_4;" goto statement_identifier ;)) (case_statement "case 0x22:\n    if ((param_2 & 4) == 0) {\n      if (*(long *)(param_1 + 0x100) == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        *(undefined8 *)(param_1 + 0x100) = 0;\n      }\n      lVar3 = *(long *)(param_1 + 0x100);\n      *(long *)(param_1 + 0x100) = lVar3 + 1;\n      *(undefined1 *)(param_1 + lVar3) = 0x2a;\n      *(undefined1 *)(param_1 + 0x108) = 0x2a;\n    }\n    break;" case number_literal : (if_statement "if ((param_2 & 4) == 0) {\n      if (*(long *)(param_1 + 0x100) == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        *(undefined8 *)(param_1 + 0x100) = 0;\n      }\n      lVar3 = *(long *)(param_1 + 0x100);\n      *(long *)(param_1 + 0x100) = lVar3 + 1;\n      *(undefined1 *)(param_1 + lVar3) = 0x2a;\n      *(undefined1 *)(param_1 + 0x108) = 0x2a;\n    }" if (parenthesized_expression "((param_2 & 4) == 0)" ( (binary_expression "(param_2 & 4) == 0" (parenthesized_expression "(param_2 & 4)" ( (binary_expression "param_2 & 4" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n      if (*(long *)(param_1 + 0x100) == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        *(undefined8 *)(param_1 + 0x100) = 0;\n      }\n      lVar3 = *(long *)(param_1 + 0x100);\n      *(long *)(param_1 + 0x100) = lVar3 + 1;\n      *(undefined1 *)(param_1 + lVar3) = 0x2a;\n      *(undefined1 *)(param_1 + 0x108) = 0x2a;\n    }" { (if_statement "if (*(long *)(param_1 + 0x100) == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        *(undefined8 *)(param_1 + 0x100) = 0;\n      }" if (parenthesized_expression "(*(long *)(param_1 + 0x100) == 0xff)" ( (binary_expression "*(long *)(param_1 + 0x100) == 0xff" (pointer_expression "*(long *)(param_1 + 0x100)" * (cast_expression "(long *)(param_1 + 0x100)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x100)" ( (binary_expression "param_1 + 0x100" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        *(undefined8 *)(param_1 + 0x100) = 0;\n      }" { (expression_statement "*(undefined1 *)(param_1 + 0xff) = 0;" (assignment_expression "*(undefined1 *)(param_1 + 0xff) = 0" (pointer_expression "*(undefined1 *)(param_1 + 0xff)" * (cast_expression "(undefined1 *)(param_1 + 0xff)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xff)" ( (binary_expression "param_1 + 0xff" identifier + number_literal) )))) = number_literal) ;) (expression_statement "(**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));" (call_expression "(**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118))" (parenthesized_expression "(**(code **)(param_1 + 0x110))" ( (pointer_expression "**(code **)(param_1 + 0x110)" * (pointer_expression "*(code **)(param_1 + 0x110)" * (cast_expression "(code **)(param_1 + 0x110)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x110)" ( (binary_expression "param_1 + 0x110" identifier + number_literal) ))))) )) (argument_list "(param_1,0xff,*(undefined8 *)(param_1 + 0x118))" ( identifier , number_literal , (pointer_expression "*(undefined8 *)(param_1 + 0x118)" * (cast_expression "(undefined8 *)(param_1 + 0x118)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x118)" ( (binary_expression "param_1 + 0x118" identifier + number_literal) )))) ))) ;) (expression_statement "*(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;" (assignment_expression "*(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1" (pointer_expression "*(long *)(param_1 + 0x140)" * (cast_expression "(long *)(param_1 + 0x140)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x140)" ( (binary_expression "param_1 + 0x140" identifier + number_literal) )))) = (binary_expression "*(long *)(param_1 + 0x140) + 1" (pointer_expression "*(long *)(param_1 + 0x140)" * (cast_expression "(long *)(param_1 + 0x140)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x140)" ( (binary_expression "param_1 + 0x140" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "*(undefined8 *)(param_1 + 0x100) = 0;" (assignment_expression "*(undefined8 *)(param_1 + 0x100) = 0" (pointer_expression "*(undefined8 *)(param_1 + 0x100)" * (cast_expression "(undefined8 *)(param_1 + 0x100)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x100)" ( (binary_expression "param_1 + 0x100" identifier + number_literal) )))) = number_literal) ;) })) (expression_statement "lVar3 = *(long *)(param_1 + 0x100);" (assignment_expression "lVar3 = *(long *)(param_1 + 0x100)" identifier = (pointer_expression "*(long *)(param_1 + 0x100)" * (cast_expression "(long *)(param_1 + 0x100)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x100)" ( (binary_expression "param_1 + 0x100" identifier + number_literal) ))))) ;) (expression_statement "*(long *)(param_1 + 0x100) = lVar3 + 1;" (assignment_expression "*(long *)(param_1 + 0x100) = lVar3 + 1" (pointer_expression "*(long *)(param_1 + 0x100)" * (cast_expression "(long *)(param_1 + 0x100)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x100)" ( (binary_expression "param_1 + 0x100" identifier + number_literal) )))) = (binary_expression "lVar3 + 1" identifier + number_literal)) ;) (expression_statement "*(undefined1 *)(param_1 + lVar3) = 0x2a;" (assignment_expression "*(undefined1 *)(param_1 + lVar3) = 0x2a" (pointer_expression "*(undefined1 *)(param_1 + lVar3)" * (cast_expression "(undefined1 *)(param_1 + lVar3)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + lVar3)" ( (binary_expression "param_1 + lVar3" identifier + identifier) )))) = number_literal) ;) (expression_statement "*(undefined1 *)(param_1 + 0x108) = 0x2a;" (assignment_expression "*(undefined1 *)(param_1 + 0x108) = 0x2a" (pointer_expression "*(undefined1 *)(param_1 + 0x108)" * (cast_expression "(undefined1 *)(param_1 + 0x108)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x108)" ( (binary_expression "param_1 + 0x108" identifier + number_literal) )))) = number_literal) ;) })) (break_statement "break;" break ;)) (case_statement "case 0x23:\n    lVar3 = *(long *)(param_1 + 0x100);\nLAB_002e5807:\n    lVar1 = lVar3 + 1;\n    if (lVar3 == 0xff) {\n      *(undefined1 *)(param_1 + 0xff) = 0;\n      (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n      *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n      lVar1 = 1;\n      lVar3 = 0;\n    }\n    *(long *)(param_1 + 0x100) = lVar1;\n    *(undefined1 *)(param_1 + lVar3) = 0x26;\n    *(undefined1 *)(param_1 + 0x108) = 0x26;\n    break;" case number_literal : (expression_statement "lVar3 = *(long *)(param_1 + 0x100);" (assignment_expression "lVar3 = *(long *)(param_1 + 0x100)" identifier = (pointer_expression "*(long *)(param_1 + 0x100)" * (cast_expression "(long *)(param_1 + 0x100)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x100)" ( (binary_expression "param_1 + 0x100" identifier + number_literal) ))))) ;) (labeled_statement "LAB_002e5807:\n    lVar1 = lVar3 + 1;" statement_identifier : (expression_statement "lVar1 = lVar3 + 1;" (assignment_expression "lVar1 = lVar3 + 1" identifier = (binary_expression "lVar3 + 1" identifier + number_literal)) ;)) (if_statement "if (lVar3 == 0xff) {\n      *(undefined1 *)(param_1 + 0xff) = 0;\n      (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n      *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n      lVar1 = 1;\n      lVar3 = 0;\n    }" if (parenthesized_expression "(lVar3 == 0xff)" ( (binary_expression "lVar3 == 0xff" identifier == number_literal) )) (compound_statement "{\n      *(undefined1 *)(param_1 + 0xff) = 0;\n      (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n      *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n      lVar1 = 1;\n      lVar3 = 0;\n    }" { (expression_statement "*(undefined1 *)(param_1 + 0xff) = 0;" (assignment_expression "*(undefined1 *)(param_1 + 0xff) = 0" (pointer_expression "*(undefined1 *)(param_1 + 0xff)" * (cast_expression "(undefined1 *)(param_1 + 0xff)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xff)" ( (binary_expression "param_1 + 0xff" identifier + number_literal) )))) = number_literal) ;) (expression_statement "(**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));" (call_expression "(**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118))" (parenthesized_expression "(**(code **)(param_1 + 0x110))" ( (pointer_expression "**(code **)(param_1 + 0x110)" * (pointer_expression "*(code **)(param_1 + 0x110)" * (cast_expression "(code **)(param_1 + 0x110)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x110)" ( (binary_expression "param_1 + 0x110" identifier + number_literal) ))))) )) (argument_list "(param_1,0xff,*(undefined8 *)(param_1 + 0x118))" ( identifier , number_literal , (pointer_expression "*(undefined8 *)(param_1 + 0x118)" * (cast_expression "(undefined8 *)(param_1 + 0x118)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x118)" ( (binary_expression "param_1 + 0x118" identifier + number_literal) )))) ))) ;) (expression_statement "*(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;" (assignment_expression "*(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1" (pointer_expression "*(long *)(param_1 + 0x140)" * (cast_expression "(long *)(param_1 + 0x140)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x140)" ( (binary_expression "param_1 + 0x140" identifier + number_literal) )))) = (binary_expression "*(long *)(param_1 + 0x140) + 1" (pointer_expression "*(long *)(param_1 + 0x140)" * (cast_expression "(long *)(param_1 + 0x140)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x140)" ( (binary_expression "param_1 + 0x140" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "lVar1 = 1;" (assignment_expression "lVar1 = 1" identifier = number_literal) ;) (expression_statement "lVar3 = 0;" (assignment_expression "lVar3 = 0" identifier = number_literal) ;) })) (expression_statement "*(long *)(param_1 + 0x100) = lVar1;" (assignment_expression "*(long *)(param_1 + 0x100) = lVar1" (pointer_expression "*(long *)(param_1 + 0x100)" * (cast_expression "(long *)(param_1 + 0x100)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x100)" ( (binary_expression "param_1 + 0x100" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 *)(param_1 + lVar3) = 0x26;" (assignment_expression "*(undefined1 *)(param_1 + lVar3) = 0x26" (pointer_expression "*(undefined1 *)(param_1 + lVar3)" * (cast_expression "(undefined1 *)(param_1 + lVar3)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + lVar3)" ( (binary_expression "param_1 + lVar3" identifier + identifier) )))) = number_literal) ;) (expression_statement "*(undefined1 *)(param_1 + 0x108) = 0x26;" (assignment_expression "*(undefined1 *)(param_1 + 0x108) = 0x26" (pointer_expression "*(undefined1 *)(param_1 + 0x108)" * (cast_expression "(undefined1 *)(param_1 + 0x108)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x108)" ( (binary_expression "param_1 + 0x108" identifier + number_literal) )))) = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0x24:\n    lVar3 = *(long *)(param_1 + 0x100);\nLAB_002e5867:\n    puVar4 = &DAT_003a6db5;\n    uVar5 = 0x26;\n    while( true ) {\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      puVar4 = puVar4 + 1;\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(undefined1 *)(param_1 + lVar3) = uVar5;\n      *(undefined1 *)(param_1 + 0x108) = uVar5;\n      if (puVar4 == &DAT_003a6db7) break;\n      uVar5 = *puVar4;\n      lVar3 = lVar1;\n    }\n    break;" case number_literal : (expression_statement "lVar3 = *(long *)(param_1 + 0x100);" (assignment_expression "lVar3 = *(long *)(param_1 + 0x100)" identifier = (pointer_expression "*(long *)(param_1 + 0x100)" * (cast_expression "(long *)(param_1 + 0x100)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x100)" ( (binary_expression "param_1 + 0x100" identifier + number_literal) ))))) ;) (labeled_statement "LAB_002e5867:\n    puVar4 = &DAT_003a6db5;" statement_identifier : (expression_statement "puVar4 = &DAT_003a6db5;" (assignment_expression "puVar4 = &DAT_003a6db5" identifier = (pointer_expression "&DAT_003a6db5" & identifier)) ;)) (expression_statement "uVar5 = 0x26;" (assignment_expression "uVar5 = 0x26" identifier = number_literal) ;) (while_statement "while( true ) {\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      puVar4 = puVar4 + 1;\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(undefined1 *)(param_1 + lVar3) = uVar5;\n      *(undefined1 *)(param_1 + 0x108) = uVar5;\n      if (puVar4 == &DAT_003a6db7) break;\n      uVar5 = *puVar4;\n      lVar3 = lVar1;\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      puVar4 = puVar4 + 1;\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(undefined1 *)(param_1 + lVar3) = uVar5;\n      *(undefined1 *)(param_1 + 0x108) = uVar5;\n      if (puVar4 == &DAT_003a6db7) break;\n      uVar5 = *puVar4;\n      lVar3 = lVar1;\n    }" { (if_statement "if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }" if (parenthesized_expression "(lVar3 == 0xff)" ( (binary_expression "lVar3 == 0xff" identifier == number_literal) )) (compound_statement "{\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }" { (expression_statement "*(undefined1 *)(param_1 + 0xff) = 0;" (assignment_expression "*(undefined1 *)(param_1 + 0xff) = 0" (pointer_expression "*(undefined1 *)(param_1 + 0xff)" * (cast_expression "(undefined1 *)(param_1 + 0xff)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xff)" ( (binary_expression "param_1 + 0xff" identifier + number_literal) )))) = number_literal) ;) (expression_statement "(**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));" (call_expression "(**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118))" (parenthesized_expression "(**(code **)(param_1 + 0x110))" ( (pointer_expression "**(code **)(param_1 + 0x110)" * (pointer_expression "*(code **)(param_1 + 0x110)" * (cast_expression "(code **)(param_1 + 0x110)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x110)" ( (binary_expression "param_1 + 0x110" identifier + number_literal) ))))) )) (argument_list "(param_1,0xff,*(undefined8 *)(param_1 + 0x118))" ( identifier , number_literal , (pointer_expression "*(undefined8 *)(param_1 + 0x118)" * (cast_expression "(undefined8 *)(param_1 + 0x118)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x118)" ( (binary_expression "param_1 + 0x118" identifier + number_literal) )))) ))) ;) (expression_statement "*(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;" (assignment_expression "*(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1" (pointer_expression "*(long *)(param_1 + 0x140)" * (cast_expression "(long *)(param_1 + 0x140)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x140)" ( (binary_expression "param_1 + 0x140" identifier + number_literal) )))) = (binary_expression "*(long *)(param_1 + 0x140) + 1" (pointer_expression "*(long *)(param_1 + 0x140)" * (cast_expression "(long *)(param_1 + 0x140)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x140)" ( (binary_expression "param_1 + 0x140" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "lVar1 = 1;" (assignment_expression "lVar1 = 1" identifier = number_literal) ;) (expression_statement "lVar3 = 0;" (assignment_expression "lVar3 = 0" identifier = number_literal) ;) }) (else_clause "else {\n        lVar1 = lVar3 + 1;\n      }" else (compound_statement "{\n        lVar1 = lVar3 + 1;\n      }" { (expression_statement "lVar1 = lVar3 + 1;" (assignment_expression "lVar1 = lVar3 + 1" identifier = (binary_expression "lVar3 + 1" identifier + number_literal)) ;) }))) (expression_statement "puVar4 = puVar4 + 1;" (assignment_expression "puVar4 = puVar4 + 1" identifier = (binary_expression "puVar4 + 1" identifier + number_literal)) ;) (expression_statement "*(long *)(param_1 + 0x100) = lVar1;" (assignment_expression "*(long *)(param_1 + 0x100) = lVar1" (pointer_expression "*(long *)(param_1 + 0x100)" * (cast_expression "(long *)(param_1 + 0x100)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x100)" ( (binary_expression "param_1 + 0x100" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 *)(param_1 + lVar3) = uVar5;" (assignment_expression "*(undefined1 *)(param_1 + lVar3) = uVar5" (pointer_expression "*(undefined1 *)(param_1 + lVar3)" * (cast_expression "(undefined1 *)(param_1 + lVar3)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + lVar3)" ( (binary_expression "param_1 + lVar3" identifier + identifier) )))) = identifier) ;) (expression_statement "*(undefined1 *)(param_1 + 0x108) = uVar5;" (assignment_expression "*(undefined1 *)(param_1 + 0x108) = uVar5" (pointer_expression "*(undefined1 *)(param_1 + 0x108)" * (cast_expression "(undefined1 *)(param_1 + 0x108)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x108)" ( (binary_expression "param_1 + 0x108" identifier + number_literal) )))) = identifier) ;) (if_statement "if (puVar4 == &DAT_003a6db7) break;" if (parenthesized_expression "(puVar4 == &DAT_003a6db7)" ( (binary_expression "puVar4 == &DAT_003a6db7" identifier == (pointer_expression "&DAT_003a6db7" & identifier)) )) (break_statement "break;" break ;)) (expression_statement "uVar5 = *puVar4;" (assignment_expression "uVar5 = *puVar4" identifier = (pointer_expression "*puVar4" * identifier)) ;) (expression_statement "lVar3 = lVar1;" (assignment_expression "lVar3 = lVar1" identifier = identifier) ;) })) (break_statement "break;" break ;)) (case_statement "case 0x25:\n    pcVar7 = "complex ";\n    cVar8 = 'c';\n    lVar3 = *(long *)(param_1 + 0x100);\n    while( true ) {\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      pcVar7 = pcVar7 + 1;\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }\n    break;" case number_literal : (expression_statement "pcVar7 = "complex ";" (assignment_expression "pcVar7 = "complex "" identifier = (string_literal ""complex "" " string_content ")) ;) (expression_statement "cVar8 = 'c';" (assignment_expression "cVar8 = 'c'" identifier = (char_literal "'c'" ' character ')) ;) (expression_statement "lVar3 = *(long *)(param_1 + 0x100);" (assignment_expression "lVar3 = *(long *)(param_1 + 0x100)" identifier = (pointer_expression "*(long *)(param_1 + 0x100)" * (cast_expression "(long *)(param_1 + 0x100)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x100)" ( (binary_expression "param_1 + 0x100" identifier + number_literal) ))))) ;) (while_statement "while( true ) {\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      pcVar7 = pcVar7 + 1;\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      pcVar7 = pcVar7 + 1;\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }" { (if_statement "if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }" if (parenthesized_expression "(lVar3 == 0xff)" ( (binary_expression "lVar3 == 0xff" identifier == number_literal) )) (compound_statement "{\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }" { (expression_statement "*(undefined1 *)(param_1 + 0xff) = 0;" (assignment_expression "*(undefined1 *)(param_1 + 0xff) = 0" (pointer_expression "*(undefined1 *)(param_1 + 0xff)" * (cast_expression "(undefined1 *)(param_1 + 0xff)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xff)" ( (binary_expression "param_1 + 0xff" identifier + number_literal) )))) = number_literal) ;) (expression_statement "(**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));" (call_expression "(**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118))" (parenthesized_expression "(**(code **)(param_1 + 0x110))" ( (pointer_expression "**(code **)(param_1 + 0x110)" * (pointer_expression "*(code **)(param_1 + 0x110)" * (cast_expression "(code **)(param_1 + 0x110)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x110)" ( (binary_expression "param_1 + 0x110" identifier + number_literal) ))))) )) (argument_list "(param_1,0xff,*(undefined8 *)(param_1 + 0x118))" ( identifier , number_literal , (pointer_expression "*(undefined8 *)(param_1 + 0x118)" * (cast_expression "(undefined8 *)(param_1 + 0x118)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x118)" ( (binary_expression "param_1 + 0x118" identifier + number_literal) )))) ))) ;) (expression_statement "*(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;" (assignment_expression "*(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1" (pointer_expression "*(long *)(param_1 + 0x140)" * (cast_expression "(long *)(param_1 + 0x140)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x140)" ( (binary_expression "param_1 + 0x140" identifier + number_literal) )))) = (binary_expression "*(long *)(param_1 + 0x140) + 1" (pointer_expression "*(long *)(param_1 + 0x140)" * (cast_expression "(long *)(param_1 + 0x140)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x140)" ( (binary_expression "param_1 + 0x140" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "lVar1 = 1;" (assignment_expression "lVar1 = 1" identifier = number_literal) ;) (expression_statement "lVar3 = 0;" (assignment_expression "lVar3 = 0" identifier = number_literal) ;) }) (else_clause "else {\n        lVar1 = lVar3 + 1;\n      }" else (compound_statement "{\n        lVar1 = lVar3 + 1;\n      }" { (expression_statement "lVar1 = lVar3 + 1;" (assignment_expression "lVar1 = lVar3 + 1" identifier = (binary_expression "lVar3 + 1" identifier + number_literal)) ;) }))) (expression_statement "pcVar7 = pcVar7 + 1;" (assignment_expression "pcVar7 = pcVar7 + 1" identifier = (binary_expression "pcVar7 + 1" identifier + number_literal)) ;) (expression_statement "*(long *)(param_1 + 0x100) = lVar1;" (assignment_expression "*(long *)(param_1 + 0x100) = lVar1" (pointer_expression "*(long *)(param_1 + 0x100)" * (cast_expression "(long *)(param_1 + 0x100)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x100)" ( (binary_expression "param_1 + 0x100" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(char *)(param_1 + lVar3) = cVar8;" (assignment_expression "*(char *)(param_1 + lVar3) = cVar8" (pointer_expression "*(char *)(param_1 + lVar3)" * (cast_expression "(char *)(param_1 + lVar3)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + lVar3)" ( (binary_expression "param_1 + lVar3" identifier + identifier) )))) = identifier) ;) (expression_statement "*(char *)(param_1 + 0x108) = cVar8;" (assignment_expression "*(char *)(param_1 + 0x108) = cVar8" (pointer_expression "*(char *)(param_1 + 0x108)" * (cast_expression "(char *)(param_1 + 0x108)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x108)" ( (binary_expression "param_1 + 0x108" identifier + number_literal) )))) = identifier) ;) (if_statement "if (pcVar7 == "") break;" if (parenthesized_expression "(pcVar7 == "")" ( (binary_expression "pcVar7 == """ identifier == (string_literal """" " ")) )) (break_statement "break;" break ;)) (expression_statement "cVar8 = *pcVar7;" (assignment_expression "cVar8 = *pcVar7" identifier = (pointer_expression "*pcVar7" * identifier)) ;) (expression_statement "lVar3 = lVar1;" (assignment_expression "lVar3 = lVar1" identifier = identifier) ;) })) (break_statement "break;" break ;)) (case_statement "case 0x26:\n    pcVar7 = "imaginary ";\n    cVar8 = 'i';\n    lVar3 = *(long *)(param_1 + 0x100);\n    while( true ) {\n      pcVar7 = pcVar7 + 1;\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }\n    break;" case number_literal : (expression_statement "pcVar7 = "imaginary ";" (assignment_expression "pcVar7 = "imaginary "" identifier = (string_literal ""imaginary "" " string_content ")) ;) (expression_statement "cVar8 = 'i';" (assignment_expression "cVar8 = 'i'" identifier = (char_literal "'i'" ' character ')) ;) (expression_statement "lVar3 = *(long *)(param_1 + 0x100);" (assignment_expression "lVar3 = *(long *)(param_1 + 0x100)" identifier = (pointer_expression "*(long *)(param_1 + 0x100)" * (cast_expression "(long *)(param_1 + 0x100)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x100)" ( (binary_expression "param_1 + 0x100" identifier + number_literal) ))))) ;) (while_statement "while( true ) {\n      pcVar7 = pcVar7 + 1;\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      pcVar7 = pcVar7 + 1;\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }" { (expression_statement "pcVar7 = pcVar7 + 1;" (assignment_expression "pcVar7 = pcVar7 + 1" identifier = (binary_expression "pcVar7 + 1" identifier + number_literal)) ;) (if_statement "if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }" if (parenthesized_expression "(lVar3 == 0xff)" ( (binary_expression "lVar3 == 0xff" identifier == number_literal) )) (compound_statement "{\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }" { (expression_statement "*(undefined1 *)(param_1 + 0xff) = 0;" (assignment_expression "*(undefined1 *)(param_1 + 0xff) = 0" (pointer_expression "*(undefined1 *)(param_1 + 0xff)" * (cast_expression "(undefined1 *)(param_1 + 0xff)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xff)" ( (binary_expression "param_1 + 0xff" identifier + number_literal) )))) = number_literal) ;) (expression_statement "(**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));" (call_expression "(**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118))" (parenthesized_expression "(**(code **)(param_1 + 0x110))" ( (pointer_expression "**(code **)(param_1 + 0x110)" * (pointer_expression "*(code **)(param_1 + 0x110)" * (cast_expression "(code **)(param_1 + 0x110)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x110)" ( (binary_expression "param_1 + 0x110" identifier + number_literal) ))))) )) (argument_list "(param_1,0xff,*(undefined8 *)(param_1 + 0x118))" ( identifier , number_literal , (pointer_expression "*(undefined8 *)(param_1 + 0x118)" * (cast_expression "(undefined8 *)(param_1 + 0x118)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x118)" ( (binary_expression "param_1 + 0x118" identifier + number_literal) )))) ))) ;) (expression_statement "*(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;" (assignment_expression "*(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1" (pointer_expression "*(long *)(param_1 + 0x140)" * (cast_expression "(long *)(param_1 + 0x140)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x140)" ( (binary_expression "param_1 + 0x140" identifier + number_literal) )))) = (binary_expression "*(long *)(param_1 + 0x140) + 1" (pointer_expression "*(long *)(param_1 + 0x140)" * (cast_expression "(long *)(param_1 + 0x140)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x140)" ( (binary_expression "param_1 + 0x140" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "lVar1 = 1;" (assignment_expression "lVar1 = 1" identifier = number_literal) ;) (expression_statement "lVar3 = 0;" (assignment_expression "lVar3 = 0" identifier = number_literal) ;) }) (else_clause "else {\n        lVar1 = lVar3 + 1;\n      }" else (compound_statement "{\n        lVar1 = lVar3 + 1;\n      }" { (expression_statement "lVar1 = lVar3 + 1;" (assignment_expression "lVar1 = lVar3 + 1" identifier = (binary_expression "lVar3 + 1" identifier + number_literal)) ;) }))) (expression_statement "*(long *)(param_1 + 0x100) = lVar1;" (assignment_expression "*(long *)(param_1 + 0x100) = lVar1" (pointer_expression "*(long *)(param_1 + 0x100)" * (cast_expression "(long *)(param_1 + 0x100)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x100)" ( (binary_expression "param_1 + 0x100" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(char *)(param_1 + lVar3) = cVar8;" (assignment_expression "*(char *)(param_1 + lVar3) = cVar8" (pointer_expression "*(char *)(param_1 + lVar3)" * (cast_expression "(char *)(param_1 + lVar3)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + lVar3)" ( (binary_expression "param_1 + lVar3" identifier + identifier) )))) = identifier) ;) (expression_statement "*(char *)(param_1 + 0x108) = cVar8;" (assignment_expression "*(char *)(param_1 + 0x108) = cVar8" (pointer_expression "*(char *)(param_1 + 0x108)" * (cast_expression "(char *)(param_1 + 0x108)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x108)" ( (binary_expression "param_1 + 0x108" identifier + number_literal) )))) = identifier) ;) (if_statement "if (pcVar7 == "") break;" if (parenthesized_expression "(pcVar7 == "")" ( (binary_expression "pcVar7 == """ identifier == (string_literal """" " ")) )) (break_statement "break;" break ;)) (expression_statement "cVar8 = *pcVar7;" (assignment_expression "cVar8 = *pcVar7" identifier = (pointer_expression "*pcVar7" * identifier)) ;) (expression_statement "lVar3 = lVar1;" (assignment_expression "lVar3 = lVar1" identifier = identifier) ;) })) (break_statement "break;" break ;)) (case_statement "case 0x2b:\n    if (*(char *)(param_1 + 0x108) != '(') {\n      lVar1 = *(long *)(param_1 + 0x100);\n      lVar3 = lVar1 + 1;\n      if (lVar1 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar3 = 1;\n        lVar1 = 0;\n      }\n      *(long *)(param_1 + 0x100) = lVar3;\n      *(undefined1 *)(param_1 + lVar1) = 0x20;\n      *(undefined1 *)(param_1 + 0x108) = 0x20;\n    }\n    puVar4 = &DAT_003a9d5a;\n    uVar5 = 0x3a;\n    FUN_002e5210(param_1,uVar6,*(undefined8 *)(param_3 + 2));\n    lVar3 = *(long *)(param_1 + 0x100);\n    while( true ) {\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      puVar4 = puVar4 + 1;\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(undefined1 *)(param_1 + lVar3) = uVar5;\n      *(undefined1 *)(param_1 + 0x108) = uVar5;\n      if (puVar4 == &DAT_003a9d5d) break;\n      uVar5 = *puVar4;\n      lVar3 = lVar1;\n    }\n    break;" case number_literal : (if_statement "if (*(char *)(param_1 + 0x108) != '(') {\n      lVar1 = *(long *)(param_1 + 0x100);\n      lVar3 = lVar1 + 1;\n      if (lVar1 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar3 = 1;\n        lVar1 = 0;\n      }\n      *(long *)(param_1 + 0x100) = lVar3;\n      *(undefined1 *)(param_1 + lVar1) = 0x20;\n      *(undefined1 *)(param_1 + 0x108) = 0x20;\n    }" if (parenthesized_expression "(*(char *)(param_1 + 0x108) != '(')" ( (binary_expression "*(char *)(param_1 + 0x108) != '('" (pointer_expression "*(char *)(param_1 + 0x108)" * (cast_expression "(char *)(param_1 + 0x108)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x108)" ( (binary_expression "param_1 + 0x108" identifier + number_literal) )))) != (char_literal "'('" ' character ')) )) (compound_statement "{\n      lVar1 = *(long *)(param_1 + 0x100);\n      lVar3 = lVar1 + 1;\n      if (lVar1 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar3 = 1;\n        lVar1 = 0;\n      }\n      *(long *)(param_1 + 0x100) = lVar3;\n      *(undefined1 *)(param_1 + lVar1) = 0x20;\n      *(undefined1 *)(param_1 + 0x108) = 0x20;\n    }" { (expression_statement "lVar1 = *(long *)(param_1 + 0x100);" (assignment_expression "lVar1 = *(long *)(param_1 + 0x100)" identifier = (pointer_expression "*(long *)(param_1 + 0x100)" * (cast_expression "(long *)(param_1 + 0x100)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x100)" ( (binary_expression "param_1 + 0x100" identifier + number_literal) ))))) ;) (expression_statement "lVar3 = lVar1 + 1;" (assignment_expression "lVar3 = lVar1 + 1" identifier = (binary_expression "lVar1 + 1" identifier + number_literal)) ;) (if_statement "if (lVar1 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar3 = 1;\n        lVar1 = 0;\n      }" if (parenthesized_expression "(lVar1 == 0xff)" ( (binary_expression "lVar1 == 0xff" identifier == number_literal) )) (compound_statement "{\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar3 = 1;\n        lVar1 = 0;\n      }" { (expression_statement "*(undefined1 *)(param_1 + 0xff) = 0;" (assignment_expression "*(undefined1 *)(param_1 + 0xff) = 0" (pointer_expression "*(undefined1 *)(param_1 + 0xff)" * (cast_expression "(undefined1 *)(param_1 + 0xff)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xff)" ( (binary_expression "param_1 + 0xff" identifier + number_literal) )))) = number_literal) ;) (expression_statement "(**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));" (call_expression "(**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118))" (parenthesized_expression "(**(code **)(param_1 + 0x110))" ( (pointer_expression "**(code **)(param_1 + 0x110)" * (pointer_expression "*(code **)(param_1 + 0x110)" * (cast_expression "(code **)(param_1 + 0x110)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x110)" ( (binary_expression "param_1 + 0x110" identifier + number_literal) ))))) )) (argument_list "(param_1,0xff,*(undefined8 *)(param_1 + 0x118))" ( identifier , number_literal , (pointer_expression "*(undefined8 *)(param_1 + 0x118)" * (cast_expression "(undefined8 *)(param_1 + 0x118)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x118)" ( (binary_expression "param_1 + 0x118" identifier + number_literal) )))) ))) ;) (expression_statement "*(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;" (assignment_expression "*(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1" (pointer_expression "*(long *)(param_1 + 0x140)" * (cast_expression "(long *)(param_1 + 0x140)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x140)" ( (binary_expression "param_1 + 0x140" identifier + number_literal) )))) = (binary_expression "*(long *)(param_1 + 0x140) + 1" (pointer_expression "*(long *)(param_1 + 0x140)" * (cast_expression "(long *)(param_1 + 0x140)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x140)" ( (binary_expression "param_1 + 0x140" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "lVar3 = 1;" (assignment_expression "lVar3 = 1" identifier = number_literal) ;) (expression_statement "lVar1 = 0;" (assignment_expression "lVar1 = 0" identifier = number_literal) ;) })) (expression_statement "*(long *)(param_1 + 0x100) = lVar3;" (assignment_expression "*(long *)(param_1 + 0x100) = lVar3" (pointer_expression "*(long *)(param_1 + 0x100)" * (cast_expression "(long *)(param_1 + 0x100)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x100)" ( (binary_expression "param_1 + 0x100" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 *)(param_1 + lVar1) = 0x20;" (assignment_expression "*(undefined1 *)(param_1 + lVar1) = 0x20" (pointer_expression "*(undefined1 *)(param_1 + lVar1)" * (cast_expression "(undefined1 *)(param_1 + lVar1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + lVar1)" ( (binary_expression "param_1 + lVar1" identifier + identifier) )))) = number_literal) ;) (expression_statement "*(undefined1 *)(param_1 + 0x108) = 0x20;" (assignment_expression "*(undefined1 *)(param_1 + 0x108) = 0x20" (pointer_expression "*(undefined1 *)(param_1 + 0x108)" * (cast_expression "(undefined1 *)(param_1 + 0x108)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x108)" ( (binary_expression "param_1 + 0x108" identifier + number_literal) )))) = number_literal) ;) })) (expression_statement "puVar4 = &DAT_003a9d5a;" (assignment_expression "puVar4 = &DAT_003a9d5a" identifier = (pointer_expression "&DAT_003a9d5a" & identifier)) ;) (expression_statement "uVar5 = 0x3a;" (assignment_expression "uVar5 = 0x3a" identifier = number_literal) ;) (expression_statement "FUN_002e5210(param_1,uVar6,*(undefined8 *)(param_3 + 2));" (call_expression "FUN_002e5210(param_1,uVar6,*(undefined8 *)(param_3 + 2))" identifier (argument_list "(param_1,uVar6,*(undefined8 *)(param_3 + 2))" ( identifier , identifier , (pointer_expression "*(undefined8 *)(param_3 + 2)" * (cast_expression "(undefined8 *)(param_3 + 2)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 2)" ( (binary_expression "param_3 + 2" identifier + number_literal) )))) ))) ;) (expression_statement "lVar3 = *(long *)(param_1 + 0x100);" (assignment_expression "lVar3 = *(long *)(param_1 + 0x100)" identifier = (pointer_expression "*(long *)(param_1 + 0x100)" * (cast_expression "(long *)(param_1 + 0x100)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x100)" ( (binary_expression "param_1 + 0x100" identifier + number_literal) ))))) ;) (while_statement "while( true ) {\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      puVar4 = puVar4 + 1;\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(undefined1 *)(param_1 + lVar3) = uVar5;\n      *(undefined1 *)(param_1 + 0x108) = uVar5;\n      if (puVar4 == &DAT_003a9d5d) break;\n      uVar5 = *puVar4;\n      lVar3 = lVar1;\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      puVar4 = puVar4 + 1;\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(undefined1 *)(param_1 + lVar3) = uVar5;\n      *(undefined1 *)(param_1 + 0x108) = uVar5;\n      if (puVar4 == &DAT_003a9d5d) break;\n      uVar5 = *puVar4;\n      lVar3 = lVar1;\n    }" { (if_statement "if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }" if (parenthesized_expression "(lVar3 == 0xff)" ( (binary_expression "lVar3 == 0xff" identifier == number_literal) )) (compound_statement "{\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }" { (expression_statement "*(undefined1 *)(param_1 + 0xff) = 0;" (assignment_expression "*(undefined1 *)(param_1 + 0xff) = 0" (pointer_expression "*(undefined1 *)(param_1 + 0xff)" * (cast_expression "(undefined1 *)(param_1 + 0xff)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xff)" ( (binary_expression "param_1 + 0xff" identifier + number_literal) )))) = number_literal) ;) (expression_statement "(**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));" (call_expression "(**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118))" (parenthesized_expression "(**(code **)(param_1 + 0x110))" ( (pointer_expression "**(code **)(param_1 + 0x110)" * (pointer_expression "*(code **)(param_1 + 0x110)" * (cast_expression "(code **)(param_1 + 0x110)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x110)" ( (binary_expression "param_1 + 0x110" identifier + number_literal) ))))) )) (argument_list "(param_1,0xff,*(undefined8 *)(param_1 + 0x118))" ( identifier , number_literal , (pointer_expression "*(undefined8 *)(param_1 + 0x118)" * (cast_expression "(undefined8 *)(param_1 + 0x118)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x118)" ( (binary_expression "param_1 + 0x118" identifier + number_literal) )))) ))) ;) (expression_statement "*(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;" (assignment_expression "*(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1" (pointer_expression "*(long *)(param_1 + 0x140)" * (cast_expression "(long *)(param_1 + 0x140)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x140)" ( (binary_expression "param_1 + 0x140" identifier + number_literal) )))) = (binary_expression "*(long *)(param_1 + 0x140) + 1" (pointer_expression "*(long *)(param_1 + 0x140)" * (cast_expression "(long *)(param_1 + 0x140)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x140)" ( (binary_expression "param_1 + 0x140" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "lVar1 = 1;" (assignment_expression "lVar1 = 1" identifier = number_literal) ;) (expression_statement "lVar3 = 0;" (assignment_expression "lVar3 = 0" identifier = number_literal) ;) }) (else_clause "else {\n        lVar1 = lVar3 + 1;\n      }" else (compound_statement "{\n        lVar1 = lVar3 + 1;\n      }" { (expression_statement "lVar1 = lVar3 + 1;" (assignment_expression "lVar1 = lVar3 + 1" identifier = (binary_expression "lVar3 + 1" identifier + number_literal)) ;) }))) (expression_statement "puVar4 = puVar4 + 1;" (assignment_expression "puVar4 = puVar4 + 1" identifier = (binary_expression "puVar4 + 1" identifier + number_literal)) ;) (expression_statement "*(long *)(param_1 + 0x100) = lVar1;" (assignment_expression "*(long *)(param_1 + 0x100) = lVar1" (pointer_expression "*(long *)(param_1 + 0x100)" * (cast_expression "(long *)(param_1 + 0x100)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x100)" ( (binary_expression "param_1 + 0x100" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 *)(param_1 + lVar3) = uVar5;" (assignment_expression "*(undefined1 *)(param_1 + lVar3) = uVar5" (pointer_expression "*(undefined1 *)(param_1 + lVar3)" * (cast_expression "(undefined1 *)(param_1 + lVar3)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + lVar3)" ( (binary_expression "param_1 + lVar3" identifier + identifier) )))) = identifier) ;) (expression_statement "*(undefined1 *)(param_1 + 0x108) = uVar5;" (assignment_expression "*(undefined1 *)(param_1 + 0x108) = uVar5" (pointer_expression "*(undefined1 *)(param_1 + 0x108)" * (cast_expression "(undefined1 *)(param_1 + 0x108)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x108)" ( (binary_expression "param_1 + 0x108" identifier + number_literal) )))) = identifier) ;) (if_statement "if (puVar4 == &DAT_003a9d5d) break;" if (parenthesized_expression "(puVar4 == &DAT_003a9d5d)" ( (binary_expression "puVar4 == &DAT_003a9d5d" identifier == (pointer_expression "&DAT_003a9d5d" & identifier)) )) (break_statement "break;" break ;)) (expression_statement "uVar5 = *puVar4;" (assignment_expression "uVar5 = *puVar4" identifier = (pointer_expression "*puVar4" * identifier)) ;) (expression_statement "lVar3 = lVar1;" (assignment_expression "lVar3 = lVar1" identifier = identifier) ;) })) (break_statement "break;" break ;)) (case_statement "case 0x2d:\n    pcVar7 = " __vector(";\n    cVar8 = ' ';\n    lVar3 = *(long *)(param_1 + 0x100);\n    while( true ) {\n      pcVar7 = pcVar7 + 1;\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }\n    lVar3 = *(long *)(param_3 + 2);\n    goto LAB_002e5aba;" case number_literal : (expression_statement "pcVar7 = " __vector(";" (assignment_expression "pcVar7 = " __vector("" identifier = (string_literal "" __vector("" " string_content ")) ;) (expression_statement "cVar8 = ' ';" (assignment_expression "cVar8 = ' '" identifier = (char_literal "' '" ' character ')) ;) (expression_statement "lVar3 = *(long *)(param_1 + 0x100);" (assignment_expression "lVar3 = *(long *)(param_1 + 0x100)" identifier = (pointer_expression "*(long *)(param_1 + 0x100)" * (cast_expression "(long *)(param_1 + 0x100)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x100)" ( (binary_expression "param_1 + 0x100" identifier + number_literal) ))))) ;) (while_statement "while( true ) {\n      pcVar7 = pcVar7 + 1;\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      pcVar7 = pcVar7 + 1;\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }" { (expression_statement "pcVar7 = pcVar7 + 1;" (assignment_expression "pcVar7 = pcVar7 + 1" identifier = (binary_expression "pcVar7 + 1" identifier + number_literal)) ;) (if_statement "if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }" if (parenthesized_expression "(lVar3 == 0xff)" ( (binary_expression "lVar3 == 0xff" identifier == number_literal) )) (compound_statement "{\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }" { (expression_statement "*(undefined1 *)(param_1 + 0xff) = 0;" (assignment_expression "*(undefined1 *)(param_1 + 0xff) = 0" (pointer_expression "*(undefined1 *)(param_1 + 0xff)" * (cast_expression "(undefined1 *)(param_1 + 0xff)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xff)" ( (binary_expression "param_1 + 0xff" identifier + number_literal) )))) = number_literal) ;) (expression_statement "(**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));" (call_expression "(**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118))" (parenthesized_expression "(**(code **)(param_1 + 0x110))" ( (pointer_expression "**(code **)(param_1 + 0x110)" * (pointer_expression "*(code **)(param_1 + 0x110)" * (cast_expression "(code **)(param_1 + 0x110)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x110)" ( (binary_expression "param_1 + 0x110" identifier + number_literal) ))))) )) (argument_list "(param_1,0xff,*(undefined8 *)(param_1 + 0x118))" ( identifier , number_literal , (pointer_expression "*(undefined8 *)(param_1 + 0x118)" * (cast_expression "(undefined8 *)(param_1 + 0x118)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x118)" ( (binary_expression "param_1 + 0x118" identifier + number_literal) )))) ))) ;) (expression_statement "*(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;" (assignment_expression "*(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1" (pointer_expression "*(long *)(param_1 + 0x140)" * (cast_expression "(long *)(param_1 + 0x140)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x140)" ( (binary_expression "param_1 + 0x140" identifier + number_literal) )))) = (binary_expression "*(long *)(param_1 + 0x140) + 1" (pointer_expression "*(long *)(param_1 + 0x140)" * (cast_expression "(long *)(param_1 + 0x140)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x140)" ( (binary_expression "param_1 + 0x140" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "lVar1 = 1;" (assignment_expression "lVar1 = 1" identifier = number_literal) ;) (expression_statement "lVar3 = 0;" (assignment_expression "lVar3 = 0" identifier = number_literal) ;) }) (else_clause "else {\n        lVar1 = lVar3 + 1;\n      }" else (compound_statement "{\n        lVar1 = lVar3 + 1;\n      }" { (expression_statement "lVar1 = lVar3 + 1;" (assignment_expression "lVar1 = lVar3 + 1" identifier = (binary_expression "lVar3 + 1" identifier + number_literal)) ;) }))) (expression_statement "*(long *)(param_1 + 0x100) = lVar1;" (assignment_expression "*(long *)(param_1 + 0x100) = lVar1" (pointer_expression "*(long *)(param_1 + 0x100)" * (cast_expression "(long *)(param_1 + 0x100)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x100)" ( (binary_expression "param_1 + 0x100" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(char *)(param_1 + lVar3) = cVar8;" (assignment_expression "*(char *)(param_1 + lVar3) = cVar8" (pointer_expression "*(char *)(param_1 + lVar3)" * (cast_expression "(char *)(param_1 + lVar3)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + lVar3)" ( (binary_expression "param_1 + lVar3" identifier + identifier) )))) = identifier) ;) (expression_statement "*(char *)(param_1 + 0x108) = cVar8;" (assignment_expression "*(char *)(param_1 + 0x108) = cVar8" (pointer_expression "*(char *)(param_1 + 0x108)" * (cast_expression "(char *)(param_1 + 0x108)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x108)" ( (binary_expression "param_1 + 0x108" identifier + number_literal) )))) = identifier) ;) (if_statement "if (pcVar7 == "") break;" if (parenthesized_expression "(pcVar7 == "")" ( (binary_expression "pcVar7 == """ identifier == (string_literal """" " ")) )) (break_statement "break;" break ;)) (expression_statement "cVar8 = *pcVar7;" (assignment_expression "cVar8 = *pcVar7" identifier = (pointer_expression "*pcVar7" * identifier)) ;) (expression_statement "lVar3 = lVar1;" (assignment_expression "lVar3 = lVar1" identifier = identifier) ;) })) (expression_statement "lVar3 = *(long *)(param_3 + 2);" (assignment_expression "lVar3 = *(long *)(param_3 + 2)" identifier = (pointer_expression "*(long *)(param_3 + 2)" * (cast_expression "(long *)(param_3 + 2)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 2)" ( (binary_expression "param_3 + 2" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_002e5aba;" goto statement_identifier ;)) (case_statement "case 0x4c:\n    pcVar7 = " transaction_safe";\n    cVar8 = ' ';\n    lVar3 = *(long *)(param_1 + 0x100);\n    while( true ) {\n      pcVar7 = pcVar7 + 1;\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }\n    break;" case number_literal : (expression_statement "pcVar7 = " transaction_safe";" (assignment_expression "pcVar7 = " transaction_safe"" identifier = (string_literal "" transaction_safe"" " string_content ")) ;) (expression_statement "cVar8 = ' ';" (assignment_expression "cVar8 = ' '" identifier = (char_literal "' '" ' character ')) ;) (expression_statement "lVar3 = *(long *)(param_1 + 0x100);" (assignment_expression "lVar3 = *(long *)(param_1 + 0x100)" identifier = (pointer_expression "*(long *)(param_1 + 0x100)" * (cast_expression "(long *)(param_1 + 0x100)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x100)" ( (binary_expression "param_1 + 0x100" identifier + number_literal) ))))) ;) (while_statement "while( true ) {\n      pcVar7 = pcVar7 + 1;\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      pcVar7 = pcVar7 + 1;\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }" { (expression_statement "pcVar7 = pcVar7 + 1;" (assignment_expression "pcVar7 = pcVar7 + 1" identifier = (binary_expression "pcVar7 + 1" identifier + number_literal)) ;) (if_statement "if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }" if (parenthesized_expression "(lVar3 == 0xff)" ( (binary_expression "lVar3 == 0xff" identifier == number_literal) )) (compound_statement "{\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }" { (expression_statement "*(undefined1 *)(param_1 + 0xff) = 0;" (assignment_expression "*(undefined1 *)(param_1 + 0xff) = 0" (pointer_expression "*(undefined1 *)(param_1 + 0xff)" * (cast_expression "(undefined1 *)(param_1 + 0xff)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xff)" ( (binary_expression "param_1 + 0xff" identifier + number_literal) )))) = number_literal) ;) (expression_statement "(**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));" (call_expression "(**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118))" (parenthesized_expression "(**(code **)(param_1 + 0x110))" ( (pointer_expression "**(code **)(param_1 + 0x110)" * (pointer_expression "*(code **)(param_1 + 0x110)" * (cast_expression "(code **)(param_1 + 0x110)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x110)" ( (binary_expression "param_1 + 0x110" identifier + number_literal) ))))) )) (argument_list "(param_1,0xff,*(undefined8 *)(param_1 + 0x118))" ( identifier , number_literal , (pointer_expression "*(undefined8 *)(param_1 + 0x118)" * (cast_expression "(undefined8 *)(param_1 + 0x118)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x118)" ( (binary_expression "param_1 + 0x118" identifier + number_literal) )))) ))) ;) (expression_statement "*(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;" (assignment_expression "*(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1" (pointer_expression "*(long *)(param_1 + 0x140)" * (cast_expression "(long *)(param_1 + 0x140)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x140)" ( (binary_expression "param_1 + 0x140" identifier + number_literal) )))) = (binary_expression "*(long *)(param_1 + 0x140) + 1" (pointer_expression "*(long *)(param_1 + 0x140)" * (cast_expression "(long *)(param_1 + 0x140)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x140)" ( (binary_expression "param_1 + 0x140" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "lVar1 = 1;" (assignment_expression "lVar1 = 1" identifier = number_literal) ;) (expression_statement "lVar3 = 0;" (assignment_expression "lVar3 = 0" identifier = number_literal) ;) }) (else_clause "else {\n        lVar1 = lVar3 + 1;\n      }" else (compound_statement "{\n        lVar1 = lVar3 + 1;\n      }" { (expression_statement "lVar1 = lVar3 + 1;" (assignment_expression "lVar1 = lVar3 + 1" identifier = (binary_expression "lVar3 + 1" identifier + number_literal)) ;) }))) (expression_statement "*(long *)(param_1 + 0x100) = lVar1;" (assignment_expression "*(long *)(param_1 + 0x100) = lVar1" (pointer_expression "*(long *)(param_1 + 0x100)" * (cast_expression "(long *)(param_1 + 0x100)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x100)" ( (binary_expression "param_1 + 0x100" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(char *)(param_1 + lVar3) = cVar8;" (assignment_expression "*(char *)(param_1 + lVar3) = cVar8" (pointer_expression "*(char *)(param_1 + lVar3)" * (cast_expression "(char *)(param_1 + lVar3)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + lVar3)" ( (binary_expression "param_1 + lVar3" identifier + identifier) )))) = identifier) ;) (expression_statement "*(char *)(param_1 + 0x108) = cVar8;" (assignment_expression "*(char *)(param_1 + 0x108) = cVar8" (pointer_expression "*(char *)(param_1 + 0x108)" * (cast_expression "(char *)(param_1 + 0x108)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x108)" ( (binary_expression "param_1 + 0x108" identifier + number_literal) )))) = identifier) ;) (if_statement "if (pcVar7 == "") break;" if (parenthesized_expression "(pcVar7 == "")" ( (binary_expression "pcVar7 == """ identifier == (string_literal """" " ")) )) (break_statement "break;" break ;)) (expression_statement "cVar8 = *pcVar7;" (assignment_expression "cVar8 = *pcVar7" identifier = (pointer_expression "*pcVar7" * identifier)) ;) (expression_statement "lVar3 = lVar1;" (assignment_expression "lVar3 = lVar1" identifier = identifier) ;) })) (break_statement "break;" break ;)) (case_statement "case 0x4e:\n    pcVar7 = " noexcept";\n    cVar8 = ' ';\n    lVar3 = *(long *)(param_1 + 0x100);\n    while( true ) {\n      pcVar7 = pcVar7 + 1;\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }\n    goto LAB_002e5a60;" case number_literal : (expression_statement "pcVar7 = " noexcept";" (assignment_expression "pcVar7 = " noexcept"" identifier = (string_literal "" noexcept"" " string_content ")) ;) (expression_statement "cVar8 = ' ';" (assignment_expression "cVar8 = ' '" identifier = (char_literal "' '" ' character ')) ;) (expression_statement "lVar3 = *(long *)(param_1 + 0x100);" (assignment_expression "lVar3 = *(long *)(param_1 + 0x100)" identifier = (pointer_expression "*(long *)(param_1 + 0x100)" * (cast_expression "(long *)(param_1 + 0x100)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x100)" ( (binary_expression "param_1 + 0x100" identifier + number_literal) ))))) ;) (while_statement "while( true ) {\n      pcVar7 = pcVar7 + 1;\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      pcVar7 = pcVar7 + 1;\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }" { (expression_statement "pcVar7 = pcVar7 + 1;" (assignment_expression "pcVar7 = pcVar7 + 1" identifier = (binary_expression "pcVar7 + 1" identifier + number_literal)) ;) (if_statement "if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }" if (parenthesized_expression "(lVar3 == 0xff)" ( (binary_expression "lVar3 == 0xff" identifier == number_literal) )) (compound_statement "{\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }" { (expression_statement "*(undefined1 *)(param_1 + 0xff) = 0;" (assignment_expression "*(undefined1 *)(param_1 + 0xff) = 0" (pointer_expression "*(undefined1 *)(param_1 + 0xff)" * (cast_expression "(undefined1 *)(param_1 + 0xff)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xff)" ( (binary_expression "param_1 + 0xff" identifier + number_literal) )))) = number_literal) ;) (expression_statement "(**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));" (call_expression "(**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118))" (parenthesized_expression "(**(code **)(param_1 + 0x110))" ( (pointer_expression "**(code **)(param_1 + 0x110)" * (pointer_expression "*(code **)(param_1 + 0x110)" * (cast_expression "(code **)(param_1 + 0x110)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x110)" ( (binary_expression "param_1 + 0x110" identifier + number_literal) ))))) )) (argument_list "(param_1,0xff,*(undefined8 *)(param_1 + 0x118))" ( identifier , number_literal , (pointer_expression "*(undefined8 *)(param_1 + 0x118)" * (cast_expression "(undefined8 *)(param_1 + 0x118)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x118)" ( (binary_expression "param_1 + 0x118" identifier + number_literal) )))) ))) ;) (expression_statement "*(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;" (assignment_expression "*(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1" (pointer_expression "*(long *)(param_1 + 0x140)" * (cast_expression "(long *)(param_1 + 0x140)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x140)" ( (binary_expression "param_1 + 0x140" identifier + number_literal) )))) = (binary_expression "*(long *)(param_1 + 0x140) + 1" (pointer_expression "*(long *)(param_1 + 0x140)" * (cast_expression "(long *)(param_1 + 0x140)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x140)" ( (binary_expression "param_1 + 0x140" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "lVar1 = 1;" (assignment_expression "lVar1 = 1" identifier = number_literal) ;) (expression_statement "lVar3 = 0;" (assignment_expression "lVar3 = 0" identifier = number_literal) ;) }) (else_clause "else {\n        lVar1 = lVar3 + 1;\n      }" else (compound_statement "{\n        lVar1 = lVar3 + 1;\n      }" { (expression_statement "lVar1 = lVar3 + 1;" (assignment_expression "lVar1 = lVar3 + 1" identifier = (binary_expression "lVar3 + 1" identifier + number_literal)) ;) }))) (expression_statement "*(long *)(param_1 + 0x100) = lVar1;" (assignment_expression "*(long *)(param_1 + 0x100) = lVar1" (pointer_expression "*(long *)(param_1 + 0x100)" * (cast_expression "(long *)(param_1 + 0x100)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x100)" ( (binary_expression "param_1 + 0x100" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(char *)(param_1 + lVar3) = cVar8;" (assignment_expression "*(char *)(param_1 + lVar3) = cVar8" (pointer_expression "*(char *)(param_1 + lVar3)" * (cast_expression "(char *)(param_1 + lVar3)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + lVar3)" ( (binary_expression "param_1 + lVar3" identifier + identifier) )))) = identifier) ;) (expression_statement "*(char *)(param_1 + 0x108) = cVar8;" (assignment_expression "*(char *)(param_1 + 0x108) = cVar8" (pointer_expression "*(char *)(param_1 + 0x108)" * (cast_expression "(char *)(param_1 + 0x108)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x108)" ( (binary_expression "param_1 + 0x108" identifier + number_literal) )))) = identifier) ;) (if_statement "if (pcVar7 == "") break;" if (parenthesized_expression "(pcVar7 == "")" ( (binary_expression "pcVar7 == """ identifier == (string_literal """" " ")) )) (break_statement "break;" break ;)) (expression_statement "cVar8 = *pcVar7;" (assignment_expression "cVar8 = *pcVar7" identifier = (pointer_expression "*pcVar7" * identifier)) ;) (expression_statement "lVar3 = lVar1;" (assignment_expression "lVar3 = lVar1" identifier = identifier) ;) })) (goto_statement "goto LAB_002e5a60;" goto statement_identifier ;)) (case_statement "case 0x4f:\n    pcVar7 = " throw";\n    cVar8 = ' ';\n    lVar3 = *(long *)(param_1 + 0x100);\n    while( true ) {\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      pcVar7 = pcVar7 + 1;\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }\nLAB_002e5a60:\n    lVar3 = *(long *)(param_3 + 4);\n    if (lVar3 != 0) {\n      lVar2 = lVar1 + 1;\n      if (lVar1 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar3 = *(long *)(param_3 + 4);\n        lVar1 = 0;\n        lVar2 = 1;\n      }\n      *(long *)(param_1 + 0x100) = lVar2;\n      *(undefined1 *)(param_1 + lVar1) = 0x28;\n      *(undefined1 *)(param_1 + 0x108) = 0x28;\nLAB_002e5aba:\n      FUN_002e5210(param_1,uVar6,lVar3);\n      lVar1 = *(long *)(param_1 + 0x100);\n      lVar3 = lVar1 + 1;\n      if (lVar1 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar3 = 1;\n        lVar1 = 0;\n      }\n      *(long *)(param_1 + 0x100) = lVar3;\n      *(undefined1 *)(param_1 + lVar1) = 0x29;\n      *(undefined1 *)(param_1 + 0x108) = 0x29;\n      return;\n    }" case number_literal : (expression_statement "pcVar7 = " throw";" (assignment_expression "pcVar7 = " throw"" identifier = (string_literal "" throw"" " string_content ")) ;) (expression_statement "cVar8 = ' ';" (assignment_expression "cVar8 = ' '" identifier = (char_literal "' '" ' character ')) ;) (expression_statement "lVar3 = *(long *)(param_1 + 0x100);" (assignment_expression "lVar3 = *(long *)(param_1 + 0x100)" identifier = (pointer_expression "*(long *)(param_1 + 0x100)" * (cast_expression "(long *)(param_1 + 0x100)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x100)" ( (binary_expression "param_1 + 0x100" identifier + number_literal) ))))) ;) (while_statement "while( true ) {\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      pcVar7 = pcVar7 + 1;\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      pcVar7 = pcVar7 + 1;\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }" { (if_statement "if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }" if (parenthesized_expression "(lVar3 == 0xff)" ( (binary_expression "lVar3 == 0xff" identifier == number_literal) )) (compound_statement "{\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }" { (expression_statement "*(undefined1 *)(param_1 + 0xff) = 0;" (assignment_expression "*(undefined1 *)(param_1 + 0xff) = 0" (pointer_expression "*(undefined1 *)(param_1 + 0xff)" * (cast_expression "(undefined1 *)(param_1 + 0xff)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xff)" ( (binary_expression "param_1 + 0xff" identifier + number_literal) )))) = number_literal) ;) (expression_statement "(**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));" (call_expression "(**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118))" (parenthesized_expression "(**(code **)(param_1 + 0x110))" ( (pointer_expression "**(code **)(param_1 + 0x110)" * (pointer_expression "*(code **)(param_1 + 0x110)" * (cast_expression "(code **)(param_1 + 0x110)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x110)" ( (binary_expression "param_1 + 0x110" identifier + number_literal) ))))) )) (argument_list "(param_1,0xff,*(undefined8 *)(param_1 + 0x118))" ( identifier , number_literal , (pointer_expression "*(undefined8 *)(param_1 + 0x118)" * (cast_expression "(undefined8 *)(param_1 + 0x118)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x118)" ( (binary_expression "param_1 + 0x118" identifier + number_literal) )))) ))) ;) (expression_statement "*(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;" (assignment_expression "*(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1" (pointer_expression "*(long *)(param_1 + 0x140)" * (cast_expression "(long *)(param_1 + 0x140)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x140)" ( (binary_expression "param_1 + 0x140" identifier + number_literal) )))) = (binary_expression "*(long *)(param_1 + 0x140) + 1" (pointer_expression "*(long *)(param_1 + 0x140)" * (cast_expression "(long *)(param_1 + 0x140)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x140)" ( (binary_expression "param_1 + 0x140" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "lVar1 = 1;" (assignment_expression "lVar1 = 1" identifier = number_literal) ;) (expression_statement "lVar3 = 0;" (assignment_expression "lVar3 = 0" identifier = number_literal) ;) }) (else_clause "else {\n        lVar1 = lVar3 + 1;\n      }" else (compound_statement "{\n        lVar1 = lVar3 + 1;\n      }" { (expression_statement "lVar1 = lVar3 + 1;" (assignment_expression "lVar1 = lVar3 + 1" identifier = (binary_expression "lVar3 + 1" identifier + number_literal)) ;) }))) (expression_statement "pcVar7 = pcVar7 + 1;" (assignment_expression "pcVar7 = pcVar7 + 1" identifier = (binary_expression "pcVar7 + 1" identifier + number_literal)) ;) (expression_statement "*(long *)(param_1 + 0x100) = lVar1;" (assignment_expression "*(long *)(param_1 + 0x100) = lVar1" (pointer_expression "*(long *)(param_1 + 0x100)" * (cast_expression "(long *)(param_1 + 0x100)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x100)" ( (binary_expression "param_1 + 0x100" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(char *)(param_1 + lVar3) = cVar8;" (assignment_expression "*(char *)(param_1 + lVar3) = cVar8" (pointer_expression "*(char *)(param_1 + lVar3)" * (cast_expression "(char *)(param_1 + lVar3)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + lVar3)" ( (binary_expression "param_1 + lVar3" identifier + identifier) )))) = identifier) ;) (expression_statement "*(char *)(param_1 + 0x108) = cVar8;" (assignment_expression "*(char *)(param_1 + 0x108) = cVar8" (pointer_expression "*(char *)(param_1 + 0x108)" * (cast_expression "(char *)(param_1 + 0x108)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x108)" ( (binary_expression "param_1 + 0x108" identifier + number_literal) )))) = identifier) ;) (if_statement "if (pcVar7 == "") break;" if (parenthesized_expression "(pcVar7 == "")" ( (binary_expression "pcVar7 == """ identifier == (string_literal """" " ")) )) (break_statement "break;" break ;)) (expression_statement "cVar8 = *pcVar7;" (assignment_expression "cVar8 = *pcVar7" identifier = (pointer_expression "*pcVar7" * identifier)) ;) (expression_statement "lVar3 = lVar1;" (assignment_expression "lVar3 = lVar1" identifier = identifier) ;) })) (labeled_statement "LAB_002e5a60:\n    lVar3 = *(long *)(param_3 + 4);" statement_identifier : (expression_statement "lVar3 = *(long *)(param_3 + 4);" (assignment_expression "lVar3 = *(long *)(param_3 + 4)" identifier = (pointer_expression "*(long *)(param_3 + 4)" * (cast_expression "(long *)(param_3 + 4)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 4)" ( (binary_expression "param_3 + 4" identifier + number_literal) ))))) ;)) (if_statement "if (lVar3 != 0) {\n      lVar2 = lVar1 + 1;\n      if (lVar1 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar3 = *(long *)(param_3 + 4);\n        lVar1 = 0;\n        lVar2 = 1;\n      }\n      *(long *)(param_1 + 0x100) = lVar2;\n      *(undefined1 *)(param_1 + lVar1) = 0x28;\n      *(undefined1 *)(param_1 + 0x108) = 0x28;\nLAB_002e5aba:\n      FUN_002e5210(param_1,uVar6,lVar3);\n      lVar1 = *(long *)(param_1 + 0x100);\n      lVar3 = lVar1 + 1;\n      if (lVar1 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar3 = 1;\n        lVar1 = 0;\n      }\n      *(long *)(param_1 + 0x100) = lVar3;\n      *(undefined1 *)(param_1 + lVar1) = 0x29;\n      *(undefined1 *)(param_1 + 0x108) = 0x29;\n      return;\n    }" if (parenthesized_expression "(lVar3 != 0)" ( (binary_expression "lVar3 != 0" identifier != number_literal) )) (compound_statement "{\n      lVar2 = lVar1 + 1;\n      if (lVar1 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar3 = *(long *)(param_3 + 4);\n        lVar1 = 0;\n        lVar2 = 1;\n      }\n      *(long *)(param_1 + 0x100) = lVar2;\n      *(undefined1 *)(param_1 + lVar1) = 0x28;\n      *(undefined1 *)(param_1 + 0x108) = 0x28;\nLAB_002e5aba:\n      FUN_002e5210(param_1,uVar6,lVar3);\n      lVar1 = *(long *)(param_1 + 0x100);\n      lVar3 = lVar1 + 1;\n      if (lVar1 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar3 = 1;\n        lVar1 = 0;\n      }\n      *(long *)(param_1 + 0x100) = lVar3;\n      *(undefined1 *)(param_1 + lVar1) = 0x29;\n      *(undefined1 *)(param_1 + 0x108) = 0x29;\n      return;\n    }" { (expression_statement "lVar2 = lVar1 + 1;" (assignment_expression "lVar2 = lVar1 + 1" identifier = (binary_expression "lVar1 + 1" identifier + number_literal)) ;) (if_statement "if (lVar1 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar3 = *(long *)(param_3 + 4);\n        lVar1 = 0;\n        lVar2 = 1;\n      }" if (parenthesized_expression "(lVar1 == 0xff)" ( (binary_expression "lVar1 == 0xff" identifier == number_literal) )) (compound_statement "{\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar3 = *(long *)(param_3 + 4);\n        lVar1 = 0;\n        lVar2 = 1;\n      }" { (expression_statement "*(undefined1 *)(param_1 + 0xff) = 0;" (assignment_expression "*(undefined1 *)(param_1 + 0xff) = 0" (pointer_expression "*(undefined1 *)(param_1 + 0xff)" * (cast_expression "(undefined1 *)(param_1 + 0xff)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xff)" ( (binary_expression "param_1 + 0xff" identifier + number_literal) )))) = number_literal) ;) (expression_statement "(**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));" (call_expression "(**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118))" (parenthesized_expression "(**(code **)(param_1 + 0x110))" ( (pointer_expression "**(code **)(param_1 + 0x110)" * (pointer_expression "*(code **)(param_1 + 0x110)" * (cast_expression "(code **)(param_1 + 0x110)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x110)" ( (binary_expression "param_1 + 0x110" identifier + number_literal) ))))) )) (argument_list "(param_1,0xff,*(undefined8 *)(param_1 + 0x118))" ( identifier , number_literal , (pointer_expression "*(undefined8 *)(param_1 + 0x118)" * (cast_expression "(undefined8 *)(param_1 + 0x118)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x118)" ( (binary_expression "param_1 + 0x118" identifier + number_literal) )))) ))) ;) (expression_statement "*(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;" (assignment_expression "*(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1" (pointer_expression "*(long *)(param_1 + 0x140)" * (cast_expression "(long *)(param_1 + 0x140)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x140)" ( (binary_expression "param_1 + 0x140" identifier + number_literal) )))) = (binary_expression "*(long *)(param_1 + 0x140) + 1" (pointer_expression "*(long *)(param_1 + 0x140)" * (cast_expression "(long *)(param_1 + 0x140)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x140)" ( (binary_expression "param_1 + 0x140" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "lVar3 = *(long *)(param_3 + 4);" (assignment_expression "lVar3 = *(long *)(param_3 + 4)" identifier = (pointer_expression "*(long *)(param_3 + 4)" * (cast_expression "(long *)(param_3 + 4)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 4)" ( (binary_expression "param_3 + 4" identifier + number_literal) ))))) ;) (expression_statement "lVar1 = 0;" (assignment_expression "lVar1 = 0" identifier = number_literal) ;) (expression_statement "lVar2 = 1;" (assignment_expression "lVar2 = 1" identifier = number_literal) ;) })) (expression_statement "*(long *)(param_1 + 0x100) = lVar2;" (assignment_expression "*(long *)(param_1 + 0x100) = lVar2" (pointer_expression "*(long *)(param_1 + 0x100)" * (cast_expression "(long *)(param_1 + 0x100)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x100)" ( (binary_expression "param_1 + 0x100" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 *)(param_1 + lVar1) = 0x28;" (assignment_expression "*(undefined1 *)(param_1 + lVar1) = 0x28" (pointer_expression "*(undefined1 *)(param_1 + lVar1)" * (cast_expression "(undefined1 *)(param_1 + lVar1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + lVar1)" ( (binary_expression "param_1 + lVar1" identifier + identifier) )))) = number_literal) ;) (expression_statement "*(undefined1 *)(param_1 + 0x108) = 0x28;" (assignment_expression "*(undefined1 *)(param_1 + 0x108) = 0x28" (pointer_expression "*(undefined1 *)(param_1 + 0x108)" * (cast_expression "(undefined1 *)(param_1 + 0x108)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x108)" ( (binary_expression "param_1 + 0x108" identifier + number_literal) )))) = number_literal) ;) (labeled_statement "LAB_002e5aba:\n      FUN_002e5210(param_1,uVar6,lVar3);" statement_identifier : (expression_statement "FUN_002e5210(param_1,uVar6,lVar3);" (call_expression "FUN_002e5210(param_1,uVar6,lVar3)" identifier (argument_list "(param_1,uVar6,lVar3)" ( identifier , identifier , identifier ))) ;)) (expression_statement "lVar1 = *(long *)(param_1 + 0x100);" (assignment_expression "lVar1 = *(long *)(param_1 + 0x100)" identifier = (pointer_expression "*(long *)(param_1 + 0x100)" * (cast_expression "(long *)(param_1 + 0x100)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x100)" ( (binary_expression "param_1 + 0x100" identifier + number_literal) ))))) ;) (expression_statement "lVar3 = lVar1 + 1;" (assignment_expression "lVar3 = lVar1 + 1" identifier = (binary_expression "lVar1 + 1" identifier + number_literal)) ;) (if_statement "if (lVar1 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar3 = 1;\n        lVar1 = 0;\n      }" if (parenthesized_expression "(lVar1 == 0xff)" ( (binary_expression "lVar1 == 0xff" identifier == number_literal) )) (compound_statement "{\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar3 = 1;\n        lVar1 = 0;\n      }" { (expression_statement "*(undefined1 *)(param_1 + 0xff) = 0;" (assignment_expression "*(undefined1 *)(param_1 + 0xff) = 0" (pointer_expression "*(undefined1 *)(param_1 + 0xff)" * (cast_expression "(undefined1 *)(param_1 + 0xff)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xff)" ( (binary_expression "param_1 + 0xff" identifier + number_literal) )))) = number_literal) ;) (expression_statement "(**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));" (call_expression "(**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118))" (parenthesized_expression "(**(code **)(param_1 + 0x110))" ( (pointer_expression "**(code **)(param_1 + 0x110)" * (pointer_expression "*(code **)(param_1 + 0x110)" * (cast_expression "(code **)(param_1 + 0x110)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x110)" ( (binary_expression "param_1 + 0x110" identifier + number_literal) ))))) )) (argument_list "(param_1,0xff,*(undefined8 *)(param_1 + 0x118))" ( identifier , number_literal , (pointer_expression "*(undefined8 *)(param_1 + 0x118)" * (cast_expression "(undefined8 *)(param_1 + 0x118)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x118)" ( (binary_expression "param_1 + 0x118" identifier + number_literal) )))) ))) ;) (expression_statement "*(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;" (assignment_expression "*(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1" (pointer_expression "*(long *)(param_1 + 0x140)" * (cast_expression "(long *)(param_1 + 0x140)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x140)" ( (binary_expression "param_1 + 0x140" identifier + number_literal) )))) = (binary_expression "*(long *)(param_1 + 0x140) + 1" (pointer_expression "*(long *)(param_1 + 0x140)" * (cast_expression "(long *)(param_1 + 0x140)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x140)" ( (binary_expression "param_1 + 0x140" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "lVar3 = 1;" (assignment_expression "lVar3 = 1" identifier = number_literal) ;) (expression_statement "lVar1 = 0;" (assignment_expression "lVar1 = 0" identifier = number_literal) ;) })) (expression_statement "*(long *)(param_1 + 0x100) = lVar3;" (assignment_expression "*(long *)(param_1 + 0x100) = lVar3" (pointer_expression "*(long *)(param_1 + 0x100)" * (cast_expression "(long *)(param_1 + 0x100)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x100)" ( (binary_expression "param_1 + 0x100" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 *)(param_1 + lVar1) = 0x29;" (assignment_expression "*(undefined1 *)(param_1 + lVar1) = 0x29" (pointer_expression "*(undefined1 *)(param_1 + lVar1)" * (cast_expression "(undefined1 *)(param_1 + lVar1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + lVar1)" ( (binary_expression "param_1 + lVar1" identifier + identifier) )))) = number_literal) ;) (expression_statement "*(undefined1 *)(param_1 + 0x108) = 0x29;" (assignment_expression "*(undefined1 *)(param_1 + 0x108) = 0x29" (pointer_expression "*(undefined1 *)(param_1 + 0x108)" * (cast_expression "(undefined1 *)(param_1 + 0x108)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x108)" ( (binary_expression "param_1 + 0x108" identifier + number_literal) )))) = number_literal) ;) (return_statement "return;" return ;) }))) })) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration (sized_type_specifier long) IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration (sized_type_specifier long) IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (binary_expression (pointer_expression * IDENT) - LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (return_statement return ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) (switch_statement switch (parenthesized_expression ( (pointer_expression * IDENT) )) (compound_statement { (case_statement case LIT : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) (case_statement default : (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;)) (return_statement return ;)) (case_statement case LIT :) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (expression_statement (assignment_expression IDENT = (char_literal ' character ')) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (while_statement while (parenthesized_expression ( BOOL )) (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 (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (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 (sized_type_specifier long) (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 == (string_literal " ")) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (break_statement break ;)) (case_statement case LIT :) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (expression_statement (assignment_expression IDENT = (char_literal ' character ')) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (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 (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (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 (sized_type_specifier long) (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 == (string_literal " ")) )) (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) ;) })) (break_statement break ;)) (case_statement case LIT :) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (expression_statement (assignment_expression IDENT = (char_literal ' character ')) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (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 (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (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 (sized_type_specifier long) (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 == (string_literal " ")) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (break_statement break ;)) (case_statement case LIT : (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (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 (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + 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 (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (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) ;) (goto_statement goto statement_identifier ;)) (case_statement case LIT : (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (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 (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + 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 (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (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) ;) (goto_statement goto statement_identifier ;)) (case_statement case LIT : (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (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 (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + 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 (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (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 IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;)) (case_statement case LIT : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (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 (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + 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 (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (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) ;) })) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (labeled_statement statement_identifier : (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 (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (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 (sized_type_specifier long) (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) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;)) (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 (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (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 (sized_type_specifier long) (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 == (pointer_expression & IDENT)) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (expression_statement (assignment_expression IDENT = (char_literal ' character ')) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (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 (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (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 (sized_type_specifier long) (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 == (string_literal " ")) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (expression_statement (assignment_expression IDENT = (char_literal ' character ')) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (while_statement while (parenthesized_expression ( BOOL )) (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 (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (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 (sized_type_specifier long) (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 == (string_literal " ")) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (break_statement break ;)) (case_statement case LIT : (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != (char_literal ' character ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (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 (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (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 (sized_type_specifier long) (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 & IDENT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (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 (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (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 (sized_type_specifier long) (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 == (pointer_expression & IDENT)) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (expression_statement (assignment_expression IDENT = (char_literal ' character ')) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (while_statement while (parenthesized_expression ( BOOL )) (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 (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (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 (sized_type_specifier long) (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 == (string_literal " ")) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (goto_statement goto statement_identifier ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (expression_statement (assignment_expression IDENT = (char_literal ' character ')) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (while_statement while (parenthesized_expression ( BOOL )) (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 (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (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 (sized_type_specifier long) (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 == (string_literal " ")) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (expression_statement (assignment_expression IDENT = (char_literal ' character ')) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (while_statement while (parenthesized_expression ( BOOL )) (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 (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (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 (sized_type_specifier long) (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 == (string_literal " ")) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (goto_statement goto statement_identifier ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (expression_statement (assignment_expression IDENT = (char_literal ' character ')) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (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 (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (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 (sized_type_specifier long) (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 == (string_literal " ")) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (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 + 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 (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (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) ;) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (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 (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (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 (sized_type_specifier long) (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) ;) (return_statement return ;) }))) })) (return_statement return ;) })))
(function_definition "void FUN_002e52a0(long param_1,ulong param_2,int *param_3)\n\n{\n  long lVar1;\n  long lVar2;\n  long lVar3;\n  undefined *puVar4;\n  undefined1 uVar5;\n  ulong uVar6;\n  char *pcVar7;\n  char cVar8;\n  \n  if (0x4c < *param_3 - 3U) {\n    FUN_002e5210();\n    return;\n  }\n  uVar6 = param_2 & 0xffffffff;\n  switch(*param_3) {\n  case 3:\n    param_3 = *(int **)(param_3 + 2);\n  default:\nswitchD_002e52d3_caseD_4:\n    FUN_002e5210(param_1,param_2,param_3);\n    return;\n  case 0x19:\n  case 0x1c:\n    pcVar7 = " restrict";\n    cVar8 = ' ';\n    lVar3 = *(long *)(param_1 + 0x100);\n    while( true ) {\n      pcVar7 = pcVar7 + 1;\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }\n    break;\n  case 0x1a:\n  case 0x1d:\n    pcVar7 = "volatile";\n    cVar8 = ' ';\n    lVar3 = *(long *)(param_1 + 0x100);\n    while( true ) {\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      pcVar7 = pcVar7 + 1;\n      lVar3 = lVar1;\n    }\n    break;\n  case 0x1b:\n  case 0x1e:\n    pcVar7 = " const";\n    cVar8 = ' ';\n    lVar3 = *(long *)(param_1 + 0x100);\n    while( true ) {\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      pcVar7 = pcVar7 + 1;\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }\n    break;\n  case 0x1f:\n    if (*(long *)(param_1 + 0x100) == 0xff) {\n      *(undefined1 *)(param_1 + 0xff) = 0;\n      (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n      *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n      *(undefined8 *)(param_1 + 0x100) = 0;\n    }\n    lVar1 = *(long *)(param_1 + 0x100);\n    lVar3 = lVar1 + 1;\n    *(long *)(param_1 + 0x100) = lVar3;\n    *(undefined1 *)(param_1 + lVar1) = 0x20;\n    *(undefined1 *)(param_1 + 0x108) = 0x20;\n    goto LAB_002e5807;\n  case 0x20:\n    if (*(long *)(param_1 + 0x100) == 0xff) {\n      *(undefined1 *)(param_1 + 0xff) = 0;\n      (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n      *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n      *(undefined8 *)(param_1 + 0x100) = 0;\n    }\n    lVar1 = *(long *)(param_1 + 0x100);\n    lVar3 = lVar1 + 1;\n    *(long *)(param_1 + 0x100) = lVar3;\n    *(undefined1 *)(param_1 + lVar1) = 0x20;\n    *(undefined1 *)(param_1 + 0x108) = 0x20;\n    goto LAB_002e5867;\n  case 0x21:\n    if (*(long *)(param_1 + 0x100) == 0xff) {\n      *(undefined1 *)(param_1 + 0xff) = 0;\n      (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n      *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n      *(undefined8 *)(param_1 + 0x100) = 0;\n    }\n    lVar3 = *(long *)(param_1 + 0x100);\n    *(long *)(param_1 + 0x100) = lVar3 + 1;\n    *(undefined1 *)(param_1 + lVar3) = 0x20;\n    *(undefined1 *)(param_1 + 0x108) = 0x20;\n    param_3 = *(int **)(param_3 + 4);\n    param_2 = uVar6;\n    goto switchD_002e52d3_caseD_4;\n  case 0x22:\n    if ((param_2 & 4) == 0) {\n      if (*(long *)(param_1 + 0x100) == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        *(undefined8 *)(param_1 + 0x100) = 0;\n      }\n      lVar3 = *(long *)(param_1 + 0x100);\n      *(long *)(param_1 + 0x100) = lVar3 + 1;\n      *(undefined1 *)(param_1 + lVar3) = 0x2a;\n      *(undefined1 *)(param_1 + 0x108) = 0x2a;\n    }\n    break;\n  case 0x23:\n    lVar3 = *(long *)(param_1 + 0x100);\nLAB_002e5807:\n    lVar1 = lVar3 + 1;\n    if (lVar3 == 0xff) {\n      *(undefined1 *)(param_1 + 0xff) = 0;\n      (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n      *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n      lVar1 = 1;\n      lVar3 = 0;\n    }\n    *(long *)(param_1 + 0x100) = lVar1;\n    *(undefined1 *)(param_1 + lVar3) = 0x26;\n    *(undefined1 *)(param_1 + 0x108) = 0x26;\n    break;\n  case 0x24:\n    lVar3 = *(long *)(param_1 + 0x100);\nLAB_002e5867:\n    puVar4 = &DAT_003a6db5;\n    uVar5 = 0x26;\n    while( true ) {\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      puVar4 = puVar4 + 1;\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(undefined1 *)(param_1 + lVar3) = uVar5;\n      *(undefined1 *)(param_1 + 0x108) = uVar5;\n      if (puVar4 == &DAT_003a6db7) break;\n      uVar5 = *puVar4;\n      lVar3 = lVar1;\n    }\n    break;\n  case 0x25:\n    pcVar7 = "complex ";\n    cVar8 = 'c';\n    lVar3 = *(long *)(param_1 + 0x100);\n    while( true ) {\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      pcVar7 = pcVar7 + 1;\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }\n    break;\n  case 0x26:\n    pcVar7 = "imaginary ";\n    cVar8 = 'i';\n    lVar3 = *(long *)(param_1 + 0x100);\n    while( true ) {\n      pcVar7 = pcVar7 + 1;\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }\n    break;\n  case 0x2b:\n    if (*(char *)(param_1 + 0x108) != '(') {\n      lVar1 = *(long *)(param_1 + 0x100);\n      lVar3 = lVar1 + 1;\n      if (lVar1 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar3 = 1;\n        lVar1 = 0;\n      }\n      *(long *)(param_1 + 0x100) = lVar3;\n      *(undefined1 *)(param_1 + lVar1) = 0x20;\n      *(undefined1 *)(param_1 + 0x108) = 0x20;\n    }\n    puVar4 = &DAT_003a9d5a;\n    uVar5 = 0x3a;\n    FUN_002e5210(param_1,uVar6,*(undefined8 *)(param_3 + 2));\n    lVar3 = *(long *)(param_1 + 0x100);\n    while( true ) {\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      puVar4 = puVar4 + 1;\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(undefined1 *)(param_1 + lVar3) = uVar5;\n      *(undefined1 *)(param_1 + 0x108) = uVar5;\n      if (puVar4 == &DAT_003a9d5d) break;\n      uVar5 = *puVar4;\n      lVar3 = lVar1;\n    }\n    break;\n  case 0x2d:\n    pcVar7 = " __vector(";\n    cVar8 = ' ';\n    lVar3 = *(long *)(param_1 + 0x100);\n    while( true ) {\n      pcVar7 = pcVar7 + 1;\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }\n    lVar3 = *(long *)(param_3 + 2);\n    goto LAB_002e5aba;\n  case 0x4c:\n    pcVar7 = " transaction_safe";\n    cVar8 = ' ';\n    lVar3 = *(long *)(param_1 + 0x100);\n    while( true ) {\n      pcVar7 = pcVar7 + 1;\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }\n    break;\n  case 0x4e:\n    pcVar7 = " noexcept";\n    cVar8 = ' ';\n    lVar3 = *(long *)(param_1 + 0x100);\n    while( true ) {\n      pcVar7 = pcVar7 + 1;\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }\n    goto LAB_002e5a60;\n  case 0x4f:\n    pcVar7 = " throw";\n    cVar8 = ' ';\n    lVar3 = *(long *)(param_1 + 0x100);\n    while( true ) {\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      pcVar7 = pcVar7 + 1;\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }\nLAB_002e5a60:\n    lVar3 = *(long *)(param_3 + 4);\n    if (lVar3 != 0) {\n      lVar2 = lVar1 + 1;\n      if (lVar1 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar3 = *(long *)(param_3 + 4);\n        lVar1 = 0;\n        lVar2 = 1;\n      }\n      *(long *)(param_1 + 0x100) = lVar2;\n      *(undefined1 *)(param_1 + lVar1) = 0x28;\n      *(undefined1 *)(param_1 + 0x108) = 0x28;\nLAB_002e5aba:\n      FUN_002e5210(param_1,uVar6,lVar3);\n      lVar1 = *(long *)(param_1 + 0x100);\n      lVar3 = lVar1 + 1;\n      if (lVar1 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar3 = 1;\n        lVar1 = 0;\n      }\n      *(long *)(param_1 + 0x100) = lVar3;\n      *(undefined1 *)(param_1 + lVar1) = 0x29;\n      *(undefined1 *)(param_1 + 0x108) = 0x29;\n      return;\n    }\n  }\n  return;\n}" (primitive_type "void") (function_declarator "FUN_002e52a0(long param_1,ulong param_2,int *param_3)" (identifier "FUN_002e52a0") (parameter_list "(long param_1,ulong param_2,int *param_3)" (( "(") (parameter_declaration "long param_1" (sized_type_specifier "long" (long "long")) (identifier "param_1")) (, ",") (parameter_declaration "ulong param_2" (type_identifier "ulong") (identifier "param_2")) (, ",") (parameter_declaration "int *param_3" (primitive_type "int") (pointer_declarator "*param_3" (* "*") (identifier "param_3"))) () ")"))) (compound_statement "{\n  long lVar1;\n  long lVar2;\n  long lVar3;\n  undefined *puVar4;\n  undefined1 uVar5;\n  ulong uVar6;\n  char *pcVar7;\n  char cVar8;\n  \n  if (0x4c < *param_3 - 3U) {\n    FUN_002e5210();\n    return;\n  }\n  uVar6 = param_2 & 0xffffffff;\n  switch(*param_3) {\n  case 3:\n    param_3 = *(int **)(param_3 + 2);\n  default:\nswitchD_002e52d3_caseD_4:\n    FUN_002e5210(param_1,param_2,param_3);\n    return;\n  case 0x19:\n  case 0x1c:\n    pcVar7 = " restrict";\n    cVar8 = ' ';\n    lVar3 = *(long *)(param_1 + 0x100);\n    while( true ) {\n      pcVar7 = pcVar7 + 1;\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }\n    break;\n  case 0x1a:\n  case 0x1d:\n    pcVar7 = "volatile";\n    cVar8 = ' ';\n    lVar3 = *(long *)(param_1 + 0x100);\n    while( true ) {\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      pcVar7 = pcVar7 + 1;\n      lVar3 = lVar1;\n    }\n    break;\n  case 0x1b:\n  case 0x1e:\n    pcVar7 = " const";\n    cVar8 = ' ';\n    lVar3 = *(long *)(param_1 + 0x100);\n    while( true ) {\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      pcVar7 = pcVar7 + 1;\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }\n    break;\n  case 0x1f:\n    if (*(long *)(param_1 + 0x100) == 0xff) {\n      *(undefined1 *)(param_1 + 0xff) = 0;\n      (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n      *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n      *(undefined8 *)(param_1 + 0x100) = 0;\n    }\n    lVar1 = *(long *)(param_1 + 0x100);\n    lVar3 = lVar1 + 1;\n    *(long *)(param_1 + 0x100) = lVar3;\n    *(undefined1 *)(param_1 + lVar1) = 0x20;\n    *(undefined1 *)(param_1 + 0x108) = 0x20;\n    goto LAB_002e5807;\n  case 0x20:\n    if (*(long *)(param_1 + 0x100) == 0xff) {\n      *(undefined1 *)(param_1 + 0xff) = 0;\n      (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n      *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n      *(undefined8 *)(param_1 + 0x100) = 0;\n    }\n    lVar1 = *(long *)(param_1 + 0x100);\n    lVar3 = lVar1 + 1;\n    *(long *)(param_1 + 0x100) = lVar3;\n    *(undefined1 *)(param_1 + lVar1) = 0x20;\n    *(undefined1 *)(param_1 + 0x108) = 0x20;\n    goto LAB_002e5867;\n  case 0x21:\n    if (*(long *)(param_1 + 0x100) == 0xff) {\n      *(undefined1 *)(param_1 + 0xff) = 0;\n      (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n      *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n      *(undefined8 *)(param_1 + 0x100) = 0;\n    }\n    lVar3 = *(long *)(param_1 + 0x100);\n    *(long *)(param_1 + 0x100) = lVar3 + 1;\n    *(undefined1 *)(param_1 + lVar3) = 0x20;\n    *(undefined1 *)(param_1 + 0x108) = 0x20;\n    param_3 = *(int **)(param_3 + 4);\n    param_2 = uVar6;\n    goto switchD_002e52d3_caseD_4;\n  case 0x22:\n    if ((param_2 & 4) == 0) {\n      if (*(long *)(param_1 + 0x100) == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        *(undefined8 *)(param_1 + 0x100) = 0;\n      }\n      lVar3 = *(long *)(param_1 + 0x100);\n      *(long *)(param_1 + 0x100) = lVar3 + 1;\n      *(undefined1 *)(param_1 + lVar3) = 0x2a;\n      *(undefined1 *)(param_1 + 0x108) = 0x2a;\n    }\n    break;\n  case 0x23:\n    lVar3 = *(long *)(param_1 + 0x100);\nLAB_002e5807:\n    lVar1 = lVar3 + 1;\n    if (lVar3 == 0xff) {\n      *(undefined1 *)(param_1 + 0xff) = 0;\n      (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n      *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n      lVar1 = 1;\n      lVar3 = 0;\n    }\n    *(long *)(param_1 + 0x100) = lVar1;\n    *(undefined1 *)(param_1 + lVar3) = 0x26;\n    *(undefined1 *)(param_1 + 0x108) = 0x26;\n    break;\n  case 0x24:\n    lVar3 = *(long *)(param_1 + 0x100);\nLAB_002e5867:\n    puVar4 = &DAT_003a6db5;\n    uVar5 = 0x26;\n    while( true ) {\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      puVar4 = puVar4 + 1;\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(undefined1 *)(param_1 + lVar3) = uVar5;\n      *(undefined1 *)(param_1 + 0x108) = uVar5;\n      if (puVar4 == &DAT_003a6db7) break;\n      uVar5 = *puVar4;\n      lVar3 = lVar1;\n    }\n    break;\n  case 0x25:\n    pcVar7 = "complex ";\n    cVar8 = 'c';\n    lVar3 = *(long *)(param_1 + 0x100);\n    while( true ) {\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      pcVar7 = pcVar7 + 1;\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }\n    break;\n  case 0x26:\n    pcVar7 = "imaginary ";\n    cVar8 = 'i';\n    lVar3 = *(long *)(param_1 + 0x100);\n    while( true ) {\n      pcVar7 = pcVar7 + 1;\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }\n    break;\n  case 0x2b:\n    if (*(char *)(param_1 + 0x108) != '(') {\n      lVar1 = *(long *)(param_1 + 0x100);\n      lVar3 = lVar1 + 1;\n      if (lVar1 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar3 = 1;\n        lVar1 = 0;\n      }\n      *(long *)(param_1 + 0x100) = lVar3;\n      *(undefined1 *)(param_1 + lVar1) = 0x20;\n      *(undefined1 *)(param_1 + 0x108) = 0x20;\n    }\n    puVar4 = &DAT_003a9d5a;\n    uVar5 = 0x3a;\n    FUN_002e5210(param_1,uVar6,*(undefined8 *)(param_3 + 2));\n    lVar3 = *(long *)(param_1 + 0x100);\n    while( true ) {\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      puVar4 = puVar4 + 1;\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(undefined1 *)(param_1 + lVar3) = uVar5;\n      *(undefined1 *)(param_1 + 0x108) = uVar5;\n      if (puVar4 == &DAT_003a9d5d) break;\n      uVar5 = *puVar4;\n      lVar3 = lVar1;\n    }\n    break;\n  case 0x2d:\n    pcVar7 = " __vector(";\n    cVar8 = ' ';\n    lVar3 = *(long *)(param_1 + 0x100);\n    while( true ) {\n      pcVar7 = pcVar7 + 1;\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }\n    lVar3 = *(long *)(param_3 + 2);\n    goto LAB_002e5aba;\n  case 0x4c:\n    pcVar7 = " transaction_safe";\n    cVar8 = ' ';\n    lVar3 = *(long *)(param_1 + 0x100);\n    while( true ) {\n      pcVar7 = pcVar7 + 1;\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }\n    break;\n  case 0x4e:\n    pcVar7 = " noexcept";\n    cVar8 = ' ';\n    lVar3 = *(long *)(param_1 + 0x100);\n    while( true ) {\n      pcVar7 = pcVar7 + 1;\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }\n    goto LAB_002e5a60;\n  case 0x4f:\n    pcVar7 = " throw";\n    cVar8 = ' ';\n    lVar3 = *(long *)(param_1 + 0x100);\n    while( true ) {\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      pcVar7 = pcVar7 + 1;\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }\nLAB_002e5a60:\n    lVar3 = *(long *)(param_3 + 4);\n    if (lVar3 != 0) {\n      lVar2 = lVar1 + 1;\n      if (lVar1 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar3 = *(long *)(param_3 + 4);\n        lVar1 = 0;\n        lVar2 = 1;\n      }\n      *(long *)(param_1 + 0x100) = lVar2;\n      *(undefined1 *)(param_1 + lVar1) = 0x28;\n      *(undefined1 *)(param_1 + 0x108) = 0x28;\nLAB_002e5aba:\n      FUN_002e5210(param_1,uVar6,lVar3);\n      lVar1 = *(long *)(param_1 + 0x100);\n      lVar3 = lVar1 + 1;\n      if (lVar1 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar3 = 1;\n        lVar1 = 0;\n      }\n      *(long *)(param_1 + 0x100) = lVar3;\n      *(undefined1 *)(param_1 + lVar1) = 0x29;\n      *(undefined1 *)(param_1 + 0x108) = 0x29;\n      return;\n    }\n  }\n  return;\n}" ({ "{") (declaration "long lVar1;" (sized_type_specifier "long" (long "long")) (identifier "lVar1") (; ";")) (declaration "long lVar2;" (sized_type_specifier "long" (long "long")) (identifier "lVar2") (; ";")) (declaration "long lVar3;" (sized_type_specifier "long" (long "long")) (identifier "lVar3") (; ";")) (declaration "undefined *puVar4;" (type_identifier "undefined") (pointer_declarator "*puVar4" (* "*") (identifier "puVar4")) (; ";")) (declaration "undefined1 uVar5;" (type_identifier "undefined1") (identifier "uVar5") (; ";")) (declaration "ulong uVar6;" (type_identifier "ulong") (identifier "uVar6") (; ";")) (declaration "char *pcVar7;" (primitive_type "char") (pointer_declarator "*pcVar7" (* "*") (identifier "pcVar7")) (; ";")) (declaration "char cVar8;" (primitive_type "char") (identifier "cVar8") (; ";")) (if_statement "if (0x4c < *param_3 - 3U) {\n    FUN_002e5210();\n    return;\n  }" (if "if") (parenthesized_expression "(0x4c < *param_3 - 3U)" (( "(") (binary_expression "0x4c < *param_3 - 3U" (number_literal "0x4c") (< "<") (binary_expression "*param_3 - 3U" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (- "-") (number_literal "3U"))) () ")")) (compound_statement "{\n    FUN_002e5210();\n    return;\n  }" ({ "{") (expression_statement "FUN_002e5210();" (call_expression "FUN_002e5210()" (identifier "FUN_002e5210") (argument_list "()" (( "(") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "uVar6 = param_2 & 0xffffffff;" (assignment_expression "uVar6 = param_2 & 0xffffffff" (identifier "uVar6") (= "=") (binary_expression "param_2 & 0xffffffff" (identifier "param_2") (& "&") (number_literal "0xffffffff"))) (; ";")) (switch_statement "switch(*param_3) {\n  case 3:\n    param_3 = *(int **)(param_3 + 2);\n  default:\nswitchD_002e52d3_caseD_4:\n    FUN_002e5210(param_1,param_2,param_3);\n    return;\n  case 0x19:\n  case 0x1c:\n    pcVar7 = " restrict";\n    cVar8 = ' ';\n    lVar3 = *(long *)(param_1 + 0x100);\n    while( true ) {\n      pcVar7 = pcVar7 + 1;\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }\n    break;\n  case 0x1a:\n  case 0x1d:\n    pcVar7 = "volatile";\n    cVar8 = ' ';\n    lVar3 = *(long *)(param_1 + 0x100);\n    while( true ) {\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      pcVar7 = pcVar7 + 1;\n      lVar3 = lVar1;\n    }\n    break;\n  case 0x1b:\n  case 0x1e:\n    pcVar7 = " const";\n    cVar8 = ' ';\n    lVar3 = *(long *)(param_1 + 0x100);\n    while( true ) {\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      pcVar7 = pcVar7 + 1;\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }\n    break;\n  case 0x1f:\n    if (*(long *)(param_1 + 0x100) == 0xff) {\n      *(undefined1 *)(param_1 + 0xff) = 0;\n      (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n      *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n      *(undefined8 *)(param_1 + 0x100) = 0;\n    }\n    lVar1 = *(long *)(param_1 + 0x100);\n    lVar3 = lVar1 + 1;\n    *(long *)(param_1 + 0x100) = lVar3;\n    *(undefined1 *)(param_1 + lVar1) = 0x20;\n    *(undefined1 *)(param_1 + 0x108) = 0x20;\n    goto LAB_002e5807;\n  case 0x20:\n    if (*(long *)(param_1 + 0x100) == 0xff) {\n      *(undefined1 *)(param_1 + 0xff) = 0;\n      (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n      *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n      *(undefined8 *)(param_1 + 0x100) = 0;\n    }\n    lVar1 = *(long *)(param_1 + 0x100);\n    lVar3 = lVar1 + 1;\n    *(long *)(param_1 + 0x100) = lVar3;\n    *(undefined1 *)(param_1 + lVar1) = 0x20;\n    *(undefined1 *)(param_1 + 0x108) = 0x20;\n    goto LAB_002e5867;\n  case 0x21:\n    if (*(long *)(param_1 + 0x100) == 0xff) {\n      *(undefined1 *)(param_1 + 0xff) = 0;\n      (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n      *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n      *(undefined8 *)(param_1 + 0x100) = 0;\n    }\n    lVar3 = *(long *)(param_1 + 0x100);\n    *(long *)(param_1 + 0x100) = lVar3 + 1;\n    *(undefined1 *)(param_1 + lVar3) = 0x20;\n    *(undefined1 *)(param_1 + 0x108) = 0x20;\n    param_3 = *(int **)(param_3 + 4);\n    param_2 = uVar6;\n    goto switchD_002e52d3_caseD_4;\n  case 0x22:\n    if ((param_2 & 4) == 0) {\n      if (*(long *)(param_1 + 0x100) == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        *(undefined8 *)(param_1 + 0x100) = 0;\n      }\n      lVar3 = *(long *)(param_1 + 0x100);\n      *(long *)(param_1 + 0x100) = lVar3 + 1;\n      *(undefined1 *)(param_1 + lVar3) = 0x2a;\n      *(undefined1 *)(param_1 + 0x108) = 0x2a;\n    }\n    break;\n  case 0x23:\n    lVar3 = *(long *)(param_1 + 0x100);\nLAB_002e5807:\n    lVar1 = lVar3 + 1;\n    if (lVar3 == 0xff) {\n      *(undefined1 *)(param_1 + 0xff) = 0;\n      (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n      *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n      lVar1 = 1;\n      lVar3 = 0;\n    }\n    *(long *)(param_1 + 0x100) = lVar1;\n    *(undefined1 *)(param_1 + lVar3) = 0x26;\n    *(undefined1 *)(param_1 + 0x108) = 0x26;\n    break;\n  case 0x24:\n    lVar3 = *(long *)(param_1 + 0x100);\nLAB_002e5867:\n    puVar4 = &DAT_003a6db5;\n    uVar5 = 0x26;\n    while( true ) {\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      puVar4 = puVar4 + 1;\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(undefined1 *)(param_1 + lVar3) = uVar5;\n      *(undefined1 *)(param_1 + 0x108) = uVar5;\n      if (puVar4 == &DAT_003a6db7) break;\n      uVar5 = *puVar4;\n      lVar3 = lVar1;\n    }\n    break;\n  case 0x25:\n    pcVar7 = "complex ";\n    cVar8 = 'c';\n    lVar3 = *(long *)(param_1 + 0x100);\n    while( true ) {\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      pcVar7 = pcVar7 + 1;\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }\n    break;\n  case 0x26:\n    pcVar7 = "imaginary ";\n    cVar8 = 'i';\n    lVar3 = *(long *)(param_1 + 0x100);\n    while( true ) {\n      pcVar7 = pcVar7 + 1;\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }\n    break;\n  case 0x2b:\n    if (*(char *)(param_1 + 0x108) != '(') {\n      lVar1 = *(long *)(param_1 + 0x100);\n      lVar3 = lVar1 + 1;\n      if (lVar1 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar3 = 1;\n        lVar1 = 0;\n      }\n      *(long *)(param_1 + 0x100) = lVar3;\n      *(undefined1 *)(param_1 + lVar1) = 0x20;\n      *(undefined1 *)(param_1 + 0x108) = 0x20;\n    }\n    puVar4 = &DAT_003a9d5a;\n    uVar5 = 0x3a;\n    FUN_002e5210(param_1,uVar6,*(undefined8 *)(param_3 + 2));\n    lVar3 = *(long *)(param_1 + 0x100);\n    while( true ) {\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      puVar4 = puVar4 + 1;\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(undefined1 *)(param_1 + lVar3) = uVar5;\n      *(undefined1 *)(param_1 + 0x108) = uVar5;\n      if (puVar4 == &DAT_003a9d5d) break;\n      uVar5 = *puVar4;\n      lVar3 = lVar1;\n    }\n    break;\n  case 0x2d:\n    pcVar7 = " __vector(";\n    cVar8 = ' ';\n    lVar3 = *(long *)(param_1 + 0x100);\n    while( true ) {\n      pcVar7 = pcVar7 + 1;\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }\n    lVar3 = *(long *)(param_3 + 2);\n    goto LAB_002e5aba;\n  case 0x4c:\n    pcVar7 = " transaction_safe";\n    cVar8 = ' ';\n    lVar3 = *(long *)(param_1 + 0x100);\n    while( true ) {\n      pcVar7 = pcVar7 + 1;\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }\n    break;\n  case 0x4e:\n    pcVar7 = " noexcept";\n    cVar8 = ' ';\n    lVar3 = *(long *)(param_1 + 0x100);\n    while( true ) {\n      pcVar7 = pcVar7 + 1;\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }\n    goto LAB_002e5a60;\n  case 0x4f:\n    pcVar7 = " throw";\n    cVar8 = ' ';\n    lVar3 = *(long *)(param_1 + 0x100);\n    while( true ) {\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      pcVar7 = pcVar7 + 1;\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }\nLAB_002e5a60:\n    lVar3 = *(long *)(param_3 + 4);\n    if (lVar3 != 0) {\n      lVar2 = lVar1 + 1;\n      if (lVar1 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar3 = *(long *)(param_3 + 4);\n        lVar1 = 0;\n        lVar2 = 1;\n      }\n      *(long *)(param_1 + 0x100) = lVar2;\n      *(undefined1 *)(param_1 + lVar1) = 0x28;\n      *(undefined1 *)(param_1 + 0x108) = 0x28;\nLAB_002e5aba:\n      FUN_002e5210(param_1,uVar6,lVar3);\n      lVar1 = *(long *)(param_1 + 0x100);\n      lVar3 = lVar1 + 1;\n      if (lVar1 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar3 = 1;\n        lVar1 = 0;\n      }\n      *(long *)(param_1 + 0x100) = lVar3;\n      *(undefined1 *)(param_1 + lVar1) = 0x29;\n      *(undefined1 *)(param_1 + 0x108) = 0x29;\n      return;\n    }\n  }" (switch "switch") (parenthesized_expression "(*param_3)" (( "(") (pointer_expression "*param_3" (* "*") (identifier "param_3")) () ")")) (compound_statement "{\n  case 3:\n    param_3 = *(int **)(param_3 + 2);\n  default:\nswitchD_002e52d3_caseD_4:\n    FUN_002e5210(param_1,param_2,param_3);\n    return;\n  case 0x19:\n  case 0x1c:\n    pcVar7 = " restrict";\n    cVar8 = ' ';\n    lVar3 = *(long *)(param_1 + 0x100);\n    while( true ) {\n      pcVar7 = pcVar7 + 1;\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }\n    break;\n  case 0x1a:\n  case 0x1d:\n    pcVar7 = "volatile";\n    cVar8 = ' ';\n    lVar3 = *(long *)(param_1 + 0x100);\n    while( true ) {\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      pcVar7 = pcVar7 + 1;\n      lVar3 = lVar1;\n    }\n    break;\n  case 0x1b:\n  case 0x1e:\n    pcVar7 = " const";\n    cVar8 = ' ';\n    lVar3 = *(long *)(param_1 + 0x100);\n    while( true ) {\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      pcVar7 = pcVar7 + 1;\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }\n    break;\n  case 0x1f:\n    if (*(long *)(param_1 + 0x100) == 0xff) {\n      *(undefined1 *)(param_1 + 0xff) = 0;\n      (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n      *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n      *(undefined8 *)(param_1 + 0x100) = 0;\n    }\n    lVar1 = *(long *)(param_1 + 0x100);\n    lVar3 = lVar1 + 1;\n    *(long *)(param_1 + 0x100) = lVar3;\n    *(undefined1 *)(param_1 + lVar1) = 0x20;\n    *(undefined1 *)(param_1 + 0x108) = 0x20;\n    goto LAB_002e5807;\n  case 0x20:\n    if (*(long *)(param_1 + 0x100) == 0xff) {\n      *(undefined1 *)(param_1 + 0xff) = 0;\n      (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n      *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n      *(undefined8 *)(param_1 + 0x100) = 0;\n    }\n    lVar1 = *(long *)(param_1 + 0x100);\n    lVar3 = lVar1 + 1;\n    *(long *)(param_1 + 0x100) = lVar3;\n    *(undefined1 *)(param_1 + lVar1) = 0x20;\n    *(undefined1 *)(param_1 + 0x108) = 0x20;\n    goto LAB_002e5867;\n  case 0x21:\n    if (*(long *)(param_1 + 0x100) == 0xff) {\n      *(undefined1 *)(param_1 + 0xff) = 0;\n      (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n      *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n      *(undefined8 *)(param_1 + 0x100) = 0;\n    }\n    lVar3 = *(long *)(param_1 + 0x100);\n    *(long *)(param_1 + 0x100) = lVar3 + 1;\n    *(undefined1 *)(param_1 + lVar3) = 0x20;\n    *(undefined1 *)(param_1 + 0x108) = 0x20;\n    param_3 = *(int **)(param_3 + 4);\n    param_2 = uVar6;\n    goto switchD_002e52d3_caseD_4;\n  case 0x22:\n    if ((param_2 & 4) == 0) {\n      if (*(long *)(param_1 + 0x100) == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        *(undefined8 *)(param_1 + 0x100) = 0;\n      }\n      lVar3 = *(long *)(param_1 + 0x100);\n      *(long *)(param_1 + 0x100) = lVar3 + 1;\n      *(undefined1 *)(param_1 + lVar3) = 0x2a;\n      *(undefined1 *)(param_1 + 0x108) = 0x2a;\n    }\n    break;\n  case 0x23:\n    lVar3 = *(long *)(param_1 + 0x100);\nLAB_002e5807:\n    lVar1 = lVar3 + 1;\n    if (lVar3 == 0xff) {\n      *(undefined1 *)(param_1 + 0xff) = 0;\n      (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n      *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n      lVar1 = 1;\n      lVar3 = 0;\n    }\n    *(long *)(param_1 + 0x100) = lVar1;\n    *(undefined1 *)(param_1 + lVar3) = 0x26;\n    *(undefined1 *)(param_1 + 0x108) = 0x26;\n    break;\n  case 0x24:\n    lVar3 = *(long *)(param_1 + 0x100);\nLAB_002e5867:\n    puVar4 = &DAT_003a6db5;\n    uVar5 = 0x26;\n    while( true ) {\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      puVar4 = puVar4 + 1;\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(undefined1 *)(param_1 + lVar3) = uVar5;\n      *(undefined1 *)(param_1 + 0x108) = uVar5;\n      if (puVar4 == &DAT_003a6db7) break;\n      uVar5 = *puVar4;\n      lVar3 = lVar1;\n    }\n    break;\n  case 0x25:\n    pcVar7 = "complex ";\n    cVar8 = 'c';\n    lVar3 = *(long *)(param_1 + 0x100);\n    while( true ) {\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      pcVar7 = pcVar7 + 1;\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }\n    break;\n  case 0x26:\n    pcVar7 = "imaginary ";\n    cVar8 = 'i';\n    lVar3 = *(long *)(param_1 + 0x100);\n    while( true ) {\n      pcVar7 = pcVar7 + 1;\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }\n    break;\n  case 0x2b:\n    if (*(char *)(param_1 + 0x108) != '(') {\n      lVar1 = *(long *)(param_1 + 0x100);\n      lVar3 = lVar1 + 1;\n      if (lVar1 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar3 = 1;\n        lVar1 = 0;\n      }\n      *(long *)(param_1 + 0x100) = lVar3;\n      *(undefined1 *)(param_1 + lVar1) = 0x20;\n      *(undefined1 *)(param_1 + 0x108) = 0x20;\n    }\n    puVar4 = &DAT_003a9d5a;\n    uVar5 = 0x3a;\n    FUN_002e5210(param_1,uVar6,*(undefined8 *)(param_3 + 2));\n    lVar3 = *(long *)(param_1 + 0x100);\n    while( true ) {\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      puVar4 = puVar4 + 1;\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(undefined1 *)(param_1 + lVar3) = uVar5;\n      *(undefined1 *)(param_1 + 0x108) = uVar5;\n      if (puVar4 == &DAT_003a9d5d) break;\n      uVar5 = *puVar4;\n      lVar3 = lVar1;\n    }\n    break;\n  case 0x2d:\n    pcVar7 = " __vector(";\n    cVar8 = ' ';\n    lVar3 = *(long *)(param_1 + 0x100);\n    while( true ) {\n      pcVar7 = pcVar7 + 1;\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }\n    lVar3 = *(long *)(param_3 + 2);\n    goto LAB_002e5aba;\n  case 0x4c:\n    pcVar7 = " transaction_safe";\n    cVar8 = ' ';\n    lVar3 = *(long *)(param_1 + 0x100);\n    while( true ) {\n      pcVar7 = pcVar7 + 1;\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }\n    break;\n  case 0x4e:\n    pcVar7 = " noexcept";\n    cVar8 = ' ';\n    lVar3 = *(long *)(param_1 + 0x100);\n    while( true ) {\n      pcVar7 = pcVar7 + 1;\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }\n    goto LAB_002e5a60;\n  case 0x4f:\n    pcVar7 = " throw";\n    cVar8 = ' ';\n    lVar3 = *(long *)(param_1 + 0x100);\n    while( true ) {\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      pcVar7 = pcVar7 + 1;\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }\nLAB_002e5a60:\n    lVar3 = *(long *)(param_3 + 4);\n    if (lVar3 != 0) {\n      lVar2 = lVar1 + 1;\n      if (lVar1 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar3 = *(long *)(param_3 + 4);\n        lVar1 = 0;\n        lVar2 = 1;\n      }\n      *(long *)(param_1 + 0x100) = lVar2;\n      *(undefined1 *)(param_1 + lVar1) = 0x28;\n      *(undefined1 *)(param_1 + 0x108) = 0x28;\nLAB_002e5aba:\n      FUN_002e5210(param_1,uVar6,lVar3);\n      lVar1 = *(long *)(param_1 + 0x100);\n      lVar3 = lVar1 + 1;\n      if (lVar1 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar3 = 1;\n        lVar1 = 0;\n      }\n      *(long *)(param_1 + 0x100) = lVar3;\n      *(undefined1 *)(param_1 + lVar1) = 0x29;\n      *(undefined1 *)(param_1 + 0x108) = 0x29;\n      return;\n    }\n  }" ({ "{") (case_statement "case 3:\n    param_3 = *(int **)(param_3 + 2);" (case "case") (number_literal "3") (: ":") (expression_statement "param_3 = *(int **)(param_3 + 2);" (assignment_expression "param_3 = *(int **)(param_3 + 2)" (identifier "param_3") (= "=") (pointer_expression "*(int **)(param_3 + 2)" (* "*") (cast_expression "(int **)(param_3 + 2)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_3 + 2)" (( "(") (binary_expression "param_3 + 2" (identifier "param_3") (+ "+") (number_literal "2")) () ")"))))) (; ";"))) (case_statement "default:\nswitchD_002e52d3_caseD_4:\n    FUN_002e5210(param_1,param_2,param_3);\n    return;" (default "default") (: ":") (labeled_statement "switchD_002e52d3_caseD_4:\n    FUN_002e5210(param_1,param_2,param_3);" (statement_identifier "switchD_002e52d3_caseD_4") (: ":") (expression_statement "FUN_002e5210(param_1,param_2,param_3);" (call_expression "FUN_002e5210(param_1,param_2,param_3)" (identifier "FUN_002e5210") (argument_list "(param_1,param_2,param_3)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (identifier "param_3") () ")"))) (; ";"))) (return_statement "return;" (return "return") (; ";"))) (case_statement "case 0x19:" (case "case") (number_literal "0x19") (: ":")) (case_statement "case 0x1c:\n    pcVar7 = " restrict";\n    cVar8 = ' ';\n    lVar3 = *(long *)(param_1 + 0x100);\n    while( true ) {\n      pcVar7 = pcVar7 + 1;\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }\n    break;" (case "case") (number_literal "0x1c") (: ":") (expression_statement "pcVar7 = " restrict";" (assignment_expression "pcVar7 = " restrict"" (identifier "pcVar7") (= "=") (string_literal "" restrict"" (" """) (string_content " restrict") (" """))) (; ";")) (expression_statement "cVar8 = ' ';" (assignment_expression "cVar8 = ' '" (identifier "cVar8") (= "=") (char_literal "' '" (' "'") (character " ") (' "'"))) (; ";")) (expression_statement "lVar3 = *(long *)(param_1 + 0x100);" (assignment_expression "lVar3 = *(long *)(param_1 + 0x100)" (identifier "lVar3") (= "=") (pointer_expression "*(long *)(param_1 + 0x100)" (* "*") (cast_expression "(long *)(param_1 + 0x100)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x100)" (( "(") (binary_expression "param_1 + 0x100" (identifier "param_1") (+ "+") (number_literal "0x100")) () ")"))))) (; ";")) (while_statement "while( true ) {\n      pcVar7 = pcVar7 + 1;\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n      pcVar7 = pcVar7 + 1;\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }" ({ "{") (expression_statement "pcVar7 = pcVar7 + 1;" (assignment_expression "pcVar7 = pcVar7 + 1" (identifier "pcVar7") (= "=") (binary_expression "pcVar7 + 1" (identifier "pcVar7") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }" (if "if") (parenthesized_expression "(lVar3 == 0xff)" (( "(") (binary_expression "lVar3 == 0xff" (identifier "lVar3") (== "==") (number_literal "0xff")) () ")")) (compound_statement "{\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }" ({ "{") (expression_statement "*(undefined1 *)(param_1 + 0xff) = 0;" (assignment_expression "*(undefined1 *)(param_1 + 0xff) = 0" (pointer_expression "*(undefined1 *)(param_1 + 0xff)" (* "*") (cast_expression "(undefined1 *)(param_1 + 0xff)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xff)" (( "(") (binary_expression "param_1 + 0xff" (identifier "param_1") (+ "+") (number_literal "0xff")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "(**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));" (call_expression "(**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118))" (parenthesized_expression "(**(code **)(param_1 + 0x110))" (( "(") (pointer_expression "**(code **)(param_1 + 0x110)" (* "*") (pointer_expression "*(code **)(param_1 + 0x110)" (* "*") (cast_expression "(code **)(param_1 + 0x110)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x110)" (( "(") (binary_expression "param_1 + 0x110" (identifier "param_1") (+ "+") (number_literal "0x110")) () ")"))))) () ")")) (argument_list "(param_1,0xff,*(undefined8 *)(param_1 + 0x118))" (( "(") (identifier "param_1") (, ",") (number_literal "0xff") (, ",") (pointer_expression "*(undefined8 *)(param_1 + 0x118)" (* "*") (cast_expression "(undefined8 *)(param_1 + 0x118)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x118)" (( "(") (binary_expression "param_1 + 0x118" (identifier "param_1") (+ "+") (number_literal "0x118")) () ")")))) () ")"))) (; ";")) (expression_statement "*(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;" (assignment_expression "*(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1" (pointer_expression "*(long *)(param_1 + 0x140)" (* "*") (cast_expression "(long *)(param_1 + 0x140)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x140)" (( "(") (binary_expression "param_1 + 0x140" (identifier "param_1") (+ "+") (number_literal "0x140")) () ")")))) (= "=") (binary_expression "*(long *)(param_1 + 0x140) + 1" (pointer_expression "*(long *)(param_1 + 0x140)" (* "*") (cast_expression "(long *)(param_1 + 0x140)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x140)" (( "(") (binary_expression "param_1 + 0x140" (identifier "param_1") (+ "+") (number_literal "0x140")) () ")")))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "lVar1 = 1;" (assignment_expression "lVar1 = 1" (identifier "lVar1") (= "=") (number_literal "1")) (; ";")) (expression_statement "lVar3 = 0;" (assignment_expression "lVar3 = 0" (identifier "lVar3") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n        lVar1 = lVar3 + 1;\n      }" (else "else") (compound_statement "{\n        lVar1 = lVar3 + 1;\n      }" ({ "{") (expression_statement "lVar1 = lVar3 + 1;" (assignment_expression "lVar1 = lVar3 + 1" (identifier "lVar1") (= "=") (binary_expression "lVar3 + 1" (identifier "lVar3") (+ "+") (number_literal "1"))) (; ";")) (} "}")))) (expression_statement "*(long *)(param_1 + 0x100) = lVar1;" (assignment_expression "*(long *)(param_1 + 0x100) = lVar1" (pointer_expression "*(long *)(param_1 + 0x100)" (* "*") (cast_expression "(long *)(param_1 + 0x100)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x100)" (( "(") (binary_expression "param_1 + 0x100" (identifier "param_1") (+ "+") (number_literal "0x100")) () ")")))) (= "=") (identifier "lVar1")) (; ";")) (expression_statement "*(char *)(param_1 + lVar3) = cVar8;" (assignment_expression "*(char *)(param_1 + lVar3) = cVar8" (pointer_expression "*(char *)(param_1 + lVar3)" (* "*") (cast_expression "(char *)(param_1 + lVar3)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + lVar3)" (( "(") (binary_expression "param_1 + lVar3" (identifier "param_1") (+ "+") (identifier "lVar3")) () ")")))) (= "=") (identifier "cVar8")) (; ";")) (expression_statement "*(char *)(param_1 + 0x108) = cVar8;" (assignment_expression "*(char *)(param_1 + 0x108) = cVar8" (pointer_expression "*(char *)(param_1 + 0x108)" (* "*") (cast_expression "(char *)(param_1 + 0x108)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x108)" (( "(") (binary_expression "param_1 + 0x108" (identifier "param_1") (+ "+") (number_literal "0x108")) () ")")))) (= "=") (identifier "cVar8")) (; ";")) (if_statement "if (pcVar7 == "") break;" (if "if") (parenthesized_expression "(pcVar7 == "")" (( "(") (binary_expression "pcVar7 == """ (identifier "pcVar7") (== "==") (string_literal """" (" """) (" """))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "cVar8 = *pcVar7;" (assignment_expression "cVar8 = *pcVar7" (identifier "cVar8") (= "=") (pointer_expression "*pcVar7" (* "*") (identifier "pcVar7"))) (; ";")) (expression_statement "lVar3 = lVar1;" (assignment_expression "lVar3 = lVar1" (identifier "lVar3") (= "=") (identifier "lVar1")) (; ";")) (} "}"))) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x1a:" (case "case") (number_literal "0x1a") (: ":")) (case_statement "case 0x1d:\n    pcVar7 = "volatile";\n    cVar8 = ' ';\n    lVar3 = *(long *)(param_1 + 0x100);\n    while( true ) {\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      pcVar7 = pcVar7 + 1;\n      lVar3 = lVar1;\n    }\n    break;" (case "case") (number_literal "0x1d") (: ":") (expression_statement "pcVar7 = "volatile";" (assignment_expression "pcVar7 = "volatile"" (identifier "pcVar7") (= "=") (string_literal ""volatile"" (" """) (string_content "volatile") (" """))) (; ";")) (expression_statement "cVar8 = ' ';" (assignment_expression "cVar8 = ' '" (identifier "cVar8") (= "=") (char_literal "' '" (' "'") (character " ") (' "'"))) (; ";")) (expression_statement "lVar3 = *(long *)(param_1 + 0x100);" (assignment_expression "lVar3 = *(long *)(param_1 + 0x100)" (identifier "lVar3") (= "=") (pointer_expression "*(long *)(param_1 + 0x100)" (* "*") (cast_expression "(long *)(param_1 + 0x100)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x100)" (( "(") (binary_expression "param_1 + 0x100" (identifier "param_1") (+ "+") (number_literal "0x100")) () ")"))))) (; ";")) (while_statement "while( true ) {\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      pcVar7 = pcVar7 + 1;\n      lVar3 = lVar1;\n    }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      pcVar7 = pcVar7 + 1;\n      lVar3 = lVar1;\n    }" ({ "{") (if_statement "if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }" (if "if") (parenthesized_expression "(lVar3 == 0xff)" (( "(") (binary_expression "lVar3 == 0xff" (identifier "lVar3") (== "==") (number_literal "0xff")) () ")")) (compound_statement "{\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }" ({ "{") (expression_statement "*(undefined1 *)(param_1 + 0xff) = 0;" (assignment_expression "*(undefined1 *)(param_1 + 0xff) = 0" (pointer_expression "*(undefined1 *)(param_1 + 0xff)" (* "*") (cast_expression "(undefined1 *)(param_1 + 0xff)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xff)" (( "(") (binary_expression "param_1 + 0xff" (identifier "param_1") (+ "+") (number_literal "0xff")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "(**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));" (call_expression "(**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118))" (parenthesized_expression "(**(code **)(param_1 + 0x110))" (( "(") (pointer_expression "**(code **)(param_1 + 0x110)" (* "*") (pointer_expression "*(code **)(param_1 + 0x110)" (* "*") (cast_expression "(code **)(param_1 + 0x110)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x110)" (( "(") (binary_expression "param_1 + 0x110" (identifier "param_1") (+ "+") (number_literal "0x110")) () ")"))))) () ")")) (argument_list "(param_1,0xff,*(undefined8 *)(param_1 + 0x118))" (( "(") (identifier "param_1") (, ",") (number_literal "0xff") (, ",") (pointer_expression "*(undefined8 *)(param_1 + 0x118)" (* "*") (cast_expression "(undefined8 *)(param_1 + 0x118)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x118)" (( "(") (binary_expression "param_1 + 0x118" (identifier "param_1") (+ "+") (number_literal "0x118")) () ")")))) () ")"))) (; ";")) (expression_statement "*(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;" (assignment_expression "*(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1" (pointer_expression "*(long *)(param_1 + 0x140)" (* "*") (cast_expression "(long *)(param_1 + 0x140)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x140)" (( "(") (binary_expression "param_1 + 0x140" (identifier "param_1") (+ "+") (number_literal "0x140")) () ")")))) (= "=") (binary_expression "*(long *)(param_1 + 0x140) + 1" (pointer_expression "*(long *)(param_1 + 0x140)" (* "*") (cast_expression "(long *)(param_1 + 0x140)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x140)" (( "(") (binary_expression "param_1 + 0x140" (identifier "param_1") (+ "+") (number_literal "0x140")) () ")")))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "lVar1 = 1;" (assignment_expression "lVar1 = 1" (identifier "lVar1") (= "=") (number_literal "1")) (; ";")) (expression_statement "lVar3 = 0;" (assignment_expression "lVar3 = 0" (identifier "lVar3") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n        lVar1 = lVar3 + 1;\n      }" (else "else") (compound_statement "{\n        lVar1 = lVar3 + 1;\n      }" ({ "{") (expression_statement "lVar1 = lVar3 + 1;" (assignment_expression "lVar1 = lVar3 + 1" (identifier "lVar1") (= "=") (binary_expression "lVar3 + 1" (identifier "lVar3") (+ "+") (number_literal "1"))) (; ";")) (} "}")))) (expression_statement "*(long *)(param_1 + 0x100) = lVar1;" (assignment_expression "*(long *)(param_1 + 0x100) = lVar1" (pointer_expression "*(long *)(param_1 + 0x100)" (* "*") (cast_expression "(long *)(param_1 + 0x100)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x100)" (( "(") (binary_expression "param_1 + 0x100" (identifier "param_1") (+ "+") (number_literal "0x100")) () ")")))) (= "=") (identifier "lVar1")) (; ";")) (expression_statement "*(char *)(param_1 + lVar3) = cVar8;" (assignment_expression "*(char *)(param_1 + lVar3) = cVar8" (pointer_expression "*(char *)(param_1 + lVar3)" (* "*") (cast_expression "(char *)(param_1 + lVar3)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + lVar3)" (( "(") (binary_expression "param_1 + lVar3" (identifier "param_1") (+ "+") (identifier "lVar3")) () ")")))) (= "=") (identifier "cVar8")) (; ";")) (expression_statement "*(char *)(param_1 + 0x108) = cVar8;" (assignment_expression "*(char *)(param_1 + 0x108) = cVar8" (pointer_expression "*(char *)(param_1 + 0x108)" (* "*") (cast_expression "(char *)(param_1 + 0x108)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x108)" (( "(") (binary_expression "param_1 + 0x108" (identifier "param_1") (+ "+") (number_literal "0x108")) () ")")))) (= "=") (identifier "cVar8")) (; ";")) (if_statement "if (pcVar7 == "") break;" (if "if") (parenthesized_expression "(pcVar7 == "")" (( "(") (binary_expression "pcVar7 == """ (identifier "pcVar7") (== "==") (string_literal """" (" """) (" """))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "cVar8 = *pcVar7;" (assignment_expression "cVar8 = *pcVar7" (identifier "cVar8") (= "=") (pointer_expression "*pcVar7" (* "*") (identifier "pcVar7"))) (; ";")) (expression_statement "pcVar7 = pcVar7 + 1;" (assignment_expression "pcVar7 = pcVar7 + 1" (identifier "pcVar7") (= "=") (binary_expression "pcVar7 + 1" (identifier "pcVar7") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "lVar3 = lVar1;" (assignment_expression "lVar3 = lVar1" (identifier "lVar3") (= "=") (identifier "lVar1")) (; ";")) (} "}"))) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x1b:" (case "case") (number_literal "0x1b") (: ":")) (case_statement "case 0x1e:\n    pcVar7 = " const";\n    cVar8 = ' ';\n    lVar3 = *(long *)(param_1 + 0x100);\n    while( true ) {\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      pcVar7 = pcVar7 + 1;\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }\n    break;" (case "case") (number_literal "0x1e") (: ":") (expression_statement "pcVar7 = " const";" (assignment_expression "pcVar7 = " const"" (identifier "pcVar7") (= "=") (string_literal "" const"" (" """) (string_content " const") (" """))) (; ";")) (expression_statement "cVar8 = ' ';" (assignment_expression "cVar8 = ' '" (identifier "cVar8") (= "=") (char_literal "' '" (' "'") (character " ") (' "'"))) (; ";")) (expression_statement "lVar3 = *(long *)(param_1 + 0x100);" (assignment_expression "lVar3 = *(long *)(param_1 + 0x100)" (identifier "lVar3") (= "=") (pointer_expression "*(long *)(param_1 + 0x100)" (* "*") (cast_expression "(long *)(param_1 + 0x100)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x100)" (( "(") (binary_expression "param_1 + 0x100" (identifier "param_1") (+ "+") (number_literal "0x100")) () ")"))))) (; ";")) (while_statement "while( true ) {\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      pcVar7 = pcVar7 + 1;\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      pcVar7 = pcVar7 + 1;\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }" ({ "{") (if_statement "if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }" (if "if") (parenthesized_expression "(lVar3 == 0xff)" (( "(") (binary_expression "lVar3 == 0xff" (identifier "lVar3") (== "==") (number_literal "0xff")) () ")")) (compound_statement "{\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }" ({ "{") (expression_statement "*(undefined1 *)(param_1 + 0xff) = 0;" (assignment_expression "*(undefined1 *)(param_1 + 0xff) = 0" (pointer_expression "*(undefined1 *)(param_1 + 0xff)" (* "*") (cast_expression "(undefined1 *)(param_1 + 0xff)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xff)" (( "(") (binary_expression "param_1 + 0xff" (identifier "param_1") (+ "+") (number_literal "0xff")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "(**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));" (call_expression "(**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118))" (parenthesized_expression "(**(code **)(param_1 + 0x110))" (( "(") (pointer_expression "**(code **)(param_1 + 0x110)" (* "*") (pointer_expression "*(code **)(param_1 + 0x110)" (* "*") (cast_expression "(code **)(param_1 + 0x110)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x110)" (( "(") (binary_expression "param_1 + 0x110" (identifier "param_1") (+ "+") (number_literal "0x110")) () ")"))))) () ")")) (argument_list "(param_1,0xff,*(undefined8 *)(param_1 + 0x118))" (( "(") (identifier "param_1") (, ",") (number_literal "0xff") (, ",") (pointer_expression "*(undefined8 *)(param_1 + 0x118)" (* "*") (cast_expression "(undefined8 *)(param_1 + 0x118)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x118)" (( "(") (binary_expression "param_1 + 0x118" (identifier "param_1") (+ "+") (number_literal "0x118")) () ")")))) () ")"))) (; ";")) (expression_statement "*(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;" (assignment_expression "*(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1" (pointer_expression "*(long *)(param_1 + 0x140)" (* "*") (cast_expression "(long *)(param_1 + 0x140)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x140)" (( "(") (binary_expression "param_1 + 0x140" (identifier "param_1") (+ "+") (number_literal "0x140")) () ")")))) (= "=") (binary_expression "*(long *)(param_1 + 0x140) + 1" (pointer_expression "*(long *)(param_1 + 0x140)" (* "*") (cast_expression "(long *)(param_1 + 0x140)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x140)" (( "(") (binary_expression "param_1 + 0x140" (identifier "param_1") (+ "+") (number_literal "0x140")) () ")")))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "lVar1 = 1;" (assignment_expression "lVar1 = 1" (identifier "lVar1") (= "=") (number_literal "1")) (; ";")) (expression_statement "lVar3 = 0;" (assignment_expression "lVar3 = 0" (identifier "lVar3") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n        lVar1 = lVar3 + 1;\n      }" (else "else") (compound_statement "{\n        lVar1 = lVar3 + 1;\n      }" ({ "{") (expression_statement "lVar1 = lVar3 + 1;" (assignment_expression "lVar1 = lVar3 + 1" (identifier "lVar1") (= "=") (binary_expression "lVar3 + 1" (identifier "lVar3") (+ "+") (number_literal "1"))) (; ";")) (} "}")))) (expression_statement "pcVar7 = pcVar7 + 1;" (assignment_expression "pcVar7 = pcVar7 + 1" (identifier "pcVar7") (= "=") (binary_expression "pcVar7 + 1" (identifier "pcVar7") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*(long *)(param_1 + 0x100) = lVar1;" (assignment_expression "*(long *)(param_1 + 0x100) = lVar1" (pointer_expression "*(long *)(param_1 + 0x100)" (* "*") (cast_expression "(long *)(param_1 + 0x100)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x100)" (( "(") (binary_expression "param_1 + 0x100" (identifier "param_1") (+ "+") (number_literal "0x100")) () ")")))) (= "=") (identifier "lVar1")) (; ";")) (expression_statement "*(char *)(param_1 + lVar3) = cVar8;" (assignment_expression "*(char *)(param_1 + lVar3) = cVar8" (pointer_expression "*(char *)(param_1 + lVar3)" (* "*") (cast_expression "(char *)(param_1 + lVar3)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + lVar3)" (( "(") (binary_expression "param_1 + lVar3" (identifier "param_1") (+ "+") (identifier "lVar3")) () ")")))) (= "=") (identifier "cVar8")) (; ";")) (expression_statement "*(char *)(param_1 + 0x108) = cVar8;" (assignment_expression "*(char *)(param_1 + 0x108) = cVar8" (pointer_expression "*(char *)(param_1 + 0x108)" (* "*") (cast_expression "(char *)(param_1 + 0x108)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x108)" (( "(") (binary_expression "param_1 + 0x108" (identifier "param_1") (+ "+") (number_literal "0x108")) () ")")))) (= "=") (identifier "cVar8")) (; ";")) (if_statement "if (pcVar7 == "") break;" (if "if") (parenthesized_expression "(pcVar7 == "")" (( "(") (binary_expression "pcVar7 == """ (identifier "pcVar7") (== "==") (string_literal """" (" """) (" """))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "cVar8 = *pcVar7;" (assignment_expression "cVar8 = *pcVar7" (identifier "cVar8") (= "=") (pointer_expression "*pcVar7" (* "*") (identifier "pcVar7"))) (; ";")) (expression_statement "lVar3 = lVar1;" (assignment_expression "lVar3 = lVar1" (identifier "lVar3") (= "=") (identifier "lVar1")) (; ";")) (} "}"))) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x1f:\n    if (*(long *)(param_1 + 0x100) == 0xff) {\n      *(undefined1 *)(param_1 + 0xff) = 0;\n      (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n      *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n      *(undefined8 *)(param_1 + 0x100) = 0;\n    }\n    lVar1 = *(long *)(param_1 + 0x100);\n    lVar3 = lVar1 + 1;\n    *(long *)(param_1 + 0x100) = lVar3;\n    *(undefined1 *)(param_1 + lVar1) = 0x20;\n    *(undefined1 *)(param_1 + 0x108) = 0x20;\n    goto LAB_002e5807;" (case "case") (number_literal "0x1f") (: ":") (if_statement "if (*(long *)(param_1 + 0x100) == 0xff) {\n      *(undefined1 *)(param_1 + 0xff) = 0;\n      (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n      *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n      *(undefined8 *)(param_1 + 0x100) = 0;\n    }" (if "if") (parenthesized_expression "(*(long *)(param_1 + 0x100) == 0xff)" (( "(") (binary_expression "*(long *)(param_1 + 0x100) == 0xff" (pointer_expression "*(long *)(param_1 + 0x100)" (* "*") (cast_expression "(long *)(param_1 + 0x100)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x100)" (( "(") (binary_expression "param_1 + 0x100" (identifier "param_1") (+ "+") (number_literal "0x100")) () ")")))) (== "==") (number_literal "0xff")) () ")")) (compound_statement "{\n      *(undefined1 *)(param_1 + 0xff) = 0;\n      (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n      *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n      *(undefined8 *)(param_1 + 0x100) = 0;\n    }" ({ "{") (expression_statement "*(undefined1 *)(param_1 + 0xff) = 0;" (assignment_expression "*(undefined1 *)(param_1 + 0xff) = 0" (pointer_expression "*(undefined1 *)(param_1 + 0xff)" (* "*") (cast_expression "(undefined1 *)(param_1 + 0xff)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xff)" (( "(") (binary_expression "param_1 + 0xff" (identifier "param_1") (+ "+") (number_literal "0xff")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "(**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));" (call_expression "(**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118))" (parenthesized_expression "(**(code **)(param_1 + 0x110))" (( "(") (pointer_expression "**(code **)(param_1 + 0x110)" (* "*") (pointer_expression "*(code **)(param_1 + 0x110)" (* "*") (cast_expression "(code **)(param_1 + 0x110)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x110)" (( "(") (binary_expression "param_1 + 0x110" (identifier "param_1") (+ "+") (number_literal "0x110")) () ")"))))) () ")")) (argument_list "(param_1,0xff,*(undefined8 *)(param_1 + 0x118))" (( "(") (identifier "param_1") (, ",") (number_literal "0xff") (, ",") (pointer_expression "*(undefined8 *)(param_1 + 0x118)" (* "*") (cast_expression "(undefined8 *)(param_1 + 0x118)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x118)" (( "(") (binary_expression "param_1 + 0x118" (identifier "param_1") (+ "+") (number_literal "0x118")) () ")")))) () ")"))) (; ";")) (expression_statement "*(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;" (assignment_expression "*(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1" (pointer_expression "*(long *)(param_1 + 0x140)" (* "*") (cast_expression "(long *)(param_1 + 0x140)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x140)" (( "(") (binary_expression "param_1 + 0x140" (identifier "param_1") (+ "+") (number_literal "0x140")) () ")")))) (= "=") (binary_expression "*(long *)(param_1 + 0x140) + 1" (pointer_expression "*(long *)(param_1 + 0x140)" (* "*") (cast_expression "(long *)(param_1 + 0x140)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x140)" (( "(") (binary_expression "param_1 + 0x140" (identifier "param_1") (+ "+") (number_literal "0x140")) () ")")))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*(undefined8 *)(param_1 + 0x100) = 0;" (assignment_expression "*(undefined8 *)(param_1 + 0x100) = 0" (pointer_expression "*(undefined8 *)(param_1 + 0x100)" (* "*") (cast_expression "(undefined8 *)(param_1 + 0x100)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x100)" (( "(") (binary_expression "param_1 + 0x100" (identifier "param_1") (+ "+") (number_literal "0x100")) () ")")))) (= "=") (number_literal "0")) (; ";")) (} "}"))) (expression_statement "lVar1 = *(long *)(param_1 + 0x100);" (assignment_expression "lVar1 = *(long *)(param_1 + 0x100)" (identifier "lVar1") (= "=") (pointer_expression "*(long *)(param_1 + 0x100)" (* "*") (cast_expression "(long *)(param_1 + 0x100)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x100)" (( "(") (binary_expression "param_1 + 0x100" (identifier "param_1") (+ "+") (number_literal "0x100")) () ")"))))) (; ";")) (expression_statement "lVar3 = lVar1 + 1;" (assignment_expression "lVar3 = lVar1 + 1" (identifier "lVar3") (= "=") (binary_expression "lVar1 + 1" (identifier "lVar1") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*(long *)(param_1 + 0x100) = lVar3;" (assignment_expression "*(long *)(param_1 + 0x100) = lVar3" (pointer_expression "*(long *)(param_1 + 0x100)" (* "*") (cast_expression "(long *)(param_1 + 0x100)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x100)" (( "(") (binary_expression "param_1 + 0x100" (identifier "param_1") (+ "+") (number_literal "0x100")) () ")")))) (= "=") (identifier "lVar3")) (; ";")) (expression_statement "*(undefined1 *)(param_1 + lVar1) = 0x20;" (assignment_expression "*(undefined1 *)(param_1 + lVar1) = 0x20" (pointer_expression "*(undefined1 *)(param_1 + lVar1)" (* "*") (cast_expression "(undefined1 *)(param_1 + lVar1)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + lVar1)" (( "(") (binary_expression "param_1 + lVar1" (identifier "param_1") (+ "+") (identifier "lVar1")) () ")")))) (= "=") (number_literal "0x20")) (; ";")) (expression_statement "*(undefined1 *)(param_1 + 0x108) = 0x20;" (assignment_expression "*(undefined1 *)(param_1 + 0x108) = 0x20" (pointer_expression "*(undefined1 *)(param_1 + 0x108)" (* "*") (cast_expression "(undefined1 *)(param_1 + 0x108)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x108)" (( "(") (binary_expression "param_1 + 0x108" (identifier "param_1") (+ "+") (number_literal "0x108")) () ")")))) (= "=") (number_literal "0x20")) (; ";")) (goto_statement "goto LAB_002e5807;" (goto "goto") (statement_identifier "LAB_002e5807") (; ";"))) (case_statement "case 0x20:\n    if (*(long *)(param_1 + 0x100) == 0xff) {\n      *(undefined1 *)(param_1 + 0xff) = 0;\n      (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n      *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n      *(undefined8 *)(param_1 + 0x100) = 0;\n    }\n    lVar1 = *(long *)(param_1 + 0x100);\n    lVar3 = lVar1 + 1;\n    *(long *)(param_1 + 0x100) = lVar3;\n    *(undefined1 *)(param_1 + lVar1) = 0x20;\n    *(undefined1 *)(param_1 + 0x108) = 0x20;\n    goto LAB_002e5867;" (case "case") (number_literal "0x20") (: ":") (if_statement "if (*(long *)(param_1 + 0x100) == 0xff) {\n      *(undefined1 *)(param_1 + 0xff) = 0;\n      (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n      *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n      *(undefined8 *)(param_1 + 0x100) = 0;\n    }" (if "if") (parenthesized_expression "(*(long *)(param_1 + 0x100) == 0xff)" (( "(") (binary_expression "*(long *)(param_1 + 0x100) == 0xff" (pointer_expression "*(long *)(param_1 + 0x100)" (* "*") (cast_expression "(long *)(param_1 + 0x100)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x100)" (( "(") (binary_expression "param_1 + 0x100" (identifier "param_1") (+ "+") (number_literal "0x100")) () ")")))) (== "==") (number_literal "0xff")) () ")")) (compound_statement "{\n      *(undefined1 *)(param_1 + 0xff) = 0;\n      (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n      *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n      *(undefined8 *)(param_1 + 0x100) = 0;\n    }" ({ "{") (expression_statement "*(undefined1 *)(param_1 + 0xff) = 0;" (assignment_expression "*(undefined1 *)(param_1 + 0xff) = 0" (pointer_expression "*(undefined1 *)(param_1 + 0xff)" (* "*") (cast_expression "(undefined1 *)(param_1 + 0xff)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xff)" (( "(") (binary_expression "param_1 + 0xff" (identifier "param_1") (+ "+") (number_literal "0xff")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "(**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));" (call_expression "(**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118))" (parenthesized_expression "(**(code **)(param_1 + 0x110))" (( "(") (pointer_expression "**(code **)(param_1 + 0x110)" (* "*") (pointer_expression "*(code **)(param_1 + 0x110)" (* "*") (cast_expression "(code **)(param_1 + 0x110)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x110)" (( "(") (binary_expression "param_1 + 0x110" (identifier "param_1") (+ "+") (number_literal "0x110")) () ")"))))) () ")")) (argument_list "(param_1,0xff,*(undefined8 *)(param_1 + 0x118))" (( "(") (identifier "param_1") (, ",") (number_literal "0xff") (, ",") (pointer_expression "*(undefined8 *)(param_1 + 0x118)" (* "*") (cast_expression "(undefined8 *)(param_1 + 0x118)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x118)" (( "(") (binary_expression "param_1 + 0x118" (identifier "param_1") (+ "+") (number_literal "0x118")) () ")")))) () ")"))) (; ";")) (expression_statement "*(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;" (assignment_expression "*(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1" (pointer_expression "*(long *)(param_1 + 0x140)" (* "*") (cast_expression "(long *)(param_1 + 0x140)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x140)" (( "(") (binary_expression "param_1 + 0x140" (identifier "param_1") (+ "+") (number_literal "0x140")) () ")")))) (= "=") (binary_expression "*(long *)(param_1 + 0x140) + 1" (pointer_expression "*(long *)(param_1 + 0x140)" (* "*") (cast_expression "(long *)(param_1 + 0x140)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x140)" (( "(") (binary_expression "param_1 + 0x140" (identifier "param_1") (+ "+") (number_literal "0x140")) () ")")))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*(undefined8 *)(param_1 + 0x100) = 0;" (assignment_expression "*(undefined8 *)(param_1 + 0x100) = 0" (pointer_expression "*(undefined8 *)(param_1 + 0x100)" (* "*") (cast_expression "(undefined8 *)(param_1 + 0x100)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x100)" (( "(") (binary_expression "param_1 + 0x100" (identifier "param_1") (+ "+") (number_literal "0x100")) () ")")))) (= "=") (number_literal "0")) (; ";")) (} "}"))) (expression_statement "lVar1 = *(long *)(param_1 + 0x100);" (assignment_expression "lVar1 = *(long *)(param_1 + 0x100)" (identifier "lVar1") (= "=") (pointer_expression "*(long *)(param_1 + 0x100)" (* "*") (cast_expression "(long *)(param_1 + 0x100)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x100)" (( "(") (binary_expression "param_1 + 0x100" (identifier "param_1") (+ "+") (number_literal "0x100")) () ")"))))) (; ";")) (expression_statement "lVar3 = lVar1 + 1;" (assignment_expression "lVar3 = lVar1 + 1" (identifier "lVar3") (= "=") (binary_expression "lVar1 + 1" (identifier "lVar1") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*(long *)(param_1 + 0x100) = lVar3;" (assignment_expression "*(long *)(param_1 + 0x100) = lVar3" (pointer_expression "*(long *)(param_1 + 0x100)" (* "*") (cast_expression "(long *)(param_1 + 0x100)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x100)" (( "(") (binary_expression "param_1 + 0x100" (identifier "param_1") (+ "+") (number_literal "0x100")) () ")")))) (= "=") (identifier "lVar3")) (; ";")) (expression_statement "*(undefined1 *)(param_1 + lVar1) = 0x20;" (assignment_expression "*(undefined1 *)(param_1 + lVar1) = 0x20" (pointer_expression "*(undefined1 *)(param_1 + lVar1)" (* "*") (cast_expression "(undefined1 *)(param_1 + lVar1)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + lVar1)" (( "(") (binary_expression "param_1 + lVar1" (identifier "param_1") (+ "+") (identifier "lVar1")) () ")")))) (= "=") (number_literal "0x20")) (; ";")) (expression_statement "*(undefined1 *)(param_1 + 0x108) = 0x20;" (assignment_expression "*(undefined1 *)(param_1 + 0x108) = 0x20" (pointer_expression "*(undefined1 *)(param_1 + 0x108)" (* "*") (cast_expression "(undefined1 *)(param_1 + 0x108)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x108)" (( "(") (binary_expression "param_1 + 0x108" (identifier "param_1") (+ "+") (number_literal "0x108")) () ")")))) (= "=") (number_literal "0x20")) (; ";")) (goto_statement "goto LAB_002e5867;" (goto "goto") (statement_identifier "LAB_002e5867") (; ";"))) (case_statement "case 0x21:\n    if (*(long *)(param_1 + 0x100) == 0xff) {\n      *(undefined1 *)(param_1 + 0xff) = 0;\n      (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n      *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n      *(undefined8 *)(param_1 + 0x100) = 0;\n    }\n    lVar3 = *(long *)(param_1 + 0x100);\n    *(long *)(param_1 + 0x100) = lVar3 + 1;\n    *(undefined1 *)(param_1 + lVar3) = 0x20;\n    *(undefined1 *)(param_1 + 0x108) = 0x20;\n    param_3 = *(int **)(param_3 + 4);\n    param_2 = uVar6;\n    goto switchD_002e52d3_caseD_4;" (case "case") (number_literal "0x21") (: ":") (if_statement "if (*(long *)(param_1 + 0x100) == 0xff) {\n      *(undefined1 *)(param_1 + 0xff) = 0;\n      (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n      *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n      *(undefined8 *)(param_1 + 0x100) = 0;\n    }" (if "if") (parenthesized_expression "(*(long *)(param_1 + 0x100) == 0xff)" (( "(") (binary_expression "*(long *)(param_1 + 0x100) == 0xff" (pointer_expression "*(long *)(param_1 + 0x100)" (* "*") (cast_expression "(long *)(param_1 + 0x100)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x100)" (( "(") (binary_expression "param_1 + 0x100" (identifier "param_1") (+ "+") (number_literal "0x100")) () ")")))) (== "==") (number_literal "0xff")) () ")")) (compound_statement "{\n      *(undefined1 *)(param_1 + 0xff) = 0;\n      (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n      *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n      *(undefined8 *)(param_1 + 0x100) = 0;\n    }" ({ "{") (expression_statement "*(undefined1 *)(param_1 + 0xff) = 0;" (assignment_expression "*(undefined1 *)(param_1 + 0xff) = 0" (pointer_expression "*(undefined1 *)(param_1 + 0xff)" (* "*") (cast_expression "(undefined1 *)(param_1 + 0xff)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xff)" (( "(") (binary_expression "param_1 + 0xff" (identifier "param_1") (+ "+") (number_literal "0xff")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "(**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));" (call_expression "(**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118))" (parenthesized_expression "(**(code **)(param_1 + 0x110))" (( "(") (pointer_expression "**(code **)(param_1 + 0x110)" (* "*") (pointer_expression "*(code **)(param_1 + 0x110)" (* "*") (cast_expression "(code **)(param_1 + 0x110)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x110)" (( "(") (binary_expression "param_1 + 0x110" (identifier "param_1") (+ "+") (number_literal "0x110")) () ")"))))) () ")")) (argument_list "(param_1,0xff,*(undefined8 *)(param_1 + 0x118))" (( "(") (identifier "param_1") (, ",") (number_literal "0xff") (, ",") (pointer_expression "*(undefined8 *)(param_1 + 0x118)" (* "*") (cast_expression "(undefined8 *)(param_1 + 0x118)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x118)" (( "(") (binary_expression "param_1 + 0x118" (identifier "param_1") (+ "+") (number_literal "0x118")) () ")")))) () ")"))) (; ";")) (expression_statement "*(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;" (assignment_expression "*(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1" (pointer_expression "*(long *)(param_1 + 0x140)" (* "*") (cast_expression "(long *)(param_1 + 0x140)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x140)" (( "(") (binary_expression "param_1 + 0x140" (identifier "param_1") (+ "+") (number_literal "0x140")) () ")")))) (= "=") (binary_expression "*(long *)(param_1 + 0x140) + 1" (pointer_expression "*(long *)(param_1 + 0x140)" (* "*") (cast_expression "(long *)(param_1 + 0x140)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x140)" (( "(") (binary_expression "param_1 + 0x140" (identifier "param_1") (+ "+") (number_literal "0x140")) () ")")))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*(undefined8 *)(param_1 + 0x100) = 0;" (assignment_expression "*(undefined8 *)(param_1 + 0x100) = 0" (pointer_expression "*(undefined8 *)(param_1 + 0x100)" (* "*") (cast_expression "(undefined8 *)(param_1 + 0x100)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x100)" (( "(") (binary_expression "param_1 + 0x100" (identifier "param_1") (+ "+") (number_literal "0x100")) () ")")))) (= "=") (number_literal "0")) (; ";")) (} "}"))) (expression_statement "lVar3 = *(long *)(param_1 + 0x100);" (assignment_expression "lVar3 = *(long *)(param_1 + 0x100)" (identifier "lVar3") (= "=") (pointer_expression "*(long *)(param_1 + 0x100)" (* "*") (cast_expression "(long *)(param_1 + 0x100)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x100)" (( "(") (binary_expression "param_1 + 0x100" (identifier "param_1") (+ "+") (number_literal "0x100")) () ")"))))) (; ";")) (expression_statement "*(long *)(param_1 + 0x100) = lVar3 + 1;" (assignment_expression "*(long *)(param_1 + 0x100) = lVar3 + 1" (pointer_expression "*(long *)(param_1 + 0x100)" (* "*") (cast_expression "(long *)(param_1 + 0x100)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x100)" (( "(") (binary_expression "param_1 + 0x100" (identifier "param_1") (+ "+") (number_literal "0x100")) () ")")))) (= "=") (binary_expression "lVar3 + 1" (identifier "lVar3") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*(undefined1 *)(param_1 + lVar3) = 0x20;" (assignment_expression "*(undefined1 *)(param_1 + lVar3) = 0x20" (pointer_expression "*(undefined1 *)(param_1 + lVar3)" (* "*") (cast_expression "(undefined1 *)(param_1 + lVar3)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + lVar3)" (( "(") (binary_expression "param_1 + lVar3" (identifier "param_1") (+ "+") (identifier "lVar3")) () ")")))) (= "=") (number_literal "0x20")) (; ";")) (expression_statement "*(undefined1 *)(param_1 + 0x108) = 0x20;" (assignment_expression "*(undefined1 *)(param_1 + 0x108) = 0x20" (pointer_expression "*(undefined1 *)(param_1 + 0x108)" (* "*") (cast_expression "(undefined1 *)(param_1 + 0x108)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x108)" (( "(") (binary_expression "param_1 + 0x108" (identifier "param_1") (+ "+") (number_literal "0x108")) () ")")))) (= "=") (number_literal "0x20")) (; ";")) (expression_statement "param_3 = *(int **)(param_3 + 4);" (assignment_expression "param_3 = *(int **)(param_3 + 4)" (identifier "param_3") (= "=") (pointer_expression "*(int **)(param_3 + 4)" (* "*") (cast_expression "(int **)(param_3 + 4)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_3 + 4)" (( "(") (binary_expression "param_3 + 4" (identifier "param_3") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "param_2 = uVar6;" (assignment_expression "param_2 = uVar6" (identifier "param_2") (= "=") (identifier "uVar6")) (; ";")) (goto_statement "goto switchD_002e52d3_caseD_4;" (goto "goto") (statement_identifier "switchD_002e52d3_caseD_4") (; ";"))) (case_statement "case 0x22:\n    if ((param_2 & 4) == 0) {\n      if (*(long *)(param_1 + 0x100) == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        *(undefined8 *)(param_1 + 0x100) = 0;\n      }\n      lVar3 = *(long *)(param_1 + 0x100);\n      *(long *)(param_1 + 0x100) = lVar3 + 1;\n      *(undefined1 *)(param_1 + lVar3) = 0x2a;\n      *(undefined1 *)(param_1 + 0x108) = 0x2a;\n    }\n    break;" (case "case") (number_literal "0x22") (: ":") (if_statement "if ((param_2 & 4) == 0) {\n      if (*(long *)(param_1 + 0x100) == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        *(undefined8 *)(param_1 + 0x100) = 0;\n      }\n      lVar3 = *(long *)(param_1 + 0x100);\n      *(long *)(param_1 + 0x100) = lVar3 + 1;\n      *(undefined1 *)(param_1 + lVar3) = 0x2a;\n      *(undefined1 *)(param_1 + 0x108) = 0x2a;\n    }" (if "if") (parenthesized_expression "((param_2 & 4) == 0)" (( "(") (binary_expression "(param_2 & 4) == 0" (parenthesized_expression "(param_2 & 4)" (( "(") (binary_expression "param_2 & 4" (identifier "param_2") (& "&") (number_literal "4")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      if (*(long *)(param_1 + 0x100) == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        *(undefined8 *)(param_1 + 0x100) = 0;\n      }\n      lVar3 = *(long *)(param_1 + 0x100);\n      *(long *)(param_1 + 0x100) = lVar3 + 1;\n      *(undefined1 *)(param_1 + lVar3) = 0x2a;\n      *(undefined1 *)(param_1 + 0x108) = 0x2a;\n    }" ({ "{") (if_statement "if (*(long *)(param_1 + 0x100) == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        *(undefined8 *)(param_1 + 0x100) = 0;\n      }" (if "if") (parenthesized_expression "(*(long *)(param_1 + 0x100) == 0xff)" (( "(") (binary_expression "*(long *)(param_1 + 0x100) == 0xff" (pointer_expression "*(long *)(param_1 + 0x100)" (* "*") (cast_expression "(long *)(param_1 + 0x100)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x100)" (( "(") (binary_expression "param_1 + 0x100" (identifier "param_1") (+ "+") (number_literal "0x100")) () ")")))) (== "==") (number_literal "0xff")) () ")")) (compound_statement "{\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        *(undefined8 *)(param_1 + 0x100) = 0;\n      }" ({ "{") (expression_statement "*(undefined1 *)(param_1 + 0xff) = 0;" (assignment_expression "*(undefined1 *)(param_1 + 0xff) = 0" (pointer_expression "*(undefined1 *)(param_1 + 0xff)" (* "*") (cast_expression "(undefined1 *)(param_1 + 0xff)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xff)" (( "(") (binary_expression "param_1 + 0xff" (identifier "param_1") (+ "+") (number_literal "0xff")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "(**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));" (call_expression "(**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118))" (parenthesized_expression "(**(code **)(param_1 + 0x110))" (( "(") (pointer_expression "**(code **)(param_1 + 0x110)" (* "*") (pointer_expression "*(code **)(param_1 + 0x110)" (* "*") (cast_expression "(code **)(param_1 + 0x110)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x110)" (( "(") (binary_expression "param_1 + 0x110" (identifier "param_1") (+ "+") (number_literal "0x110")) () ")"))))) () ")")) (argument_list "(param_1,0xff,*(undefined8 *)(param_1 + 0x118))" (( "(") (identifier "param_1") (, ",") (number_literal "0xff") (, ",") (pointer_expression "*(undefined8 *)(param_1 + 0x118)" (* "*") (cast_expression "(undefined8 *)(param_1 + 0x118)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x118)" (( "(") (binary_expression "param_1 + 0x118" (identifier "param_1") (+ "+") (number_literal "0x118")) () ")")))) () ")"))) (; ";")) (expression_statement "*(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;" (assignment_expression "*(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1" (pointer_expression "*(long *)(param_1 + 0x140)" (* "*") (cast_expression "(long *)(param_1 + 0x140)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x140)" (( "(") (binary_expression "param_1 + 0x140" (identifier "param_1") (+ "+") (number_literal "0x140")) () ")")))) (= "=") (binary_expression "*(long *)(param_1 + 0x140) + 1" (pointer_expression "*(long *)(param_1 + 0x140)" (* "*") (cast_expression "(long *)(param_1 + 0x140)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x140)" (( "(") (binary_expression "param_1 + 0x140" (identifier "param_1") (+ "+") (number_literal "0x140")) () ")")))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*(undefined8 *)(param_1 + 0x100) = 0;" (assignment_expression "*(undefined8 *)(param_1 + 0x100) = 0" (pointer_expression "*(undefined8 *)(param_1 + 0x100)" (* "*") (cast_expression "(undefined8 *)(param_1 + 0x100)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x100)" (( "(") (binary_expression "param_1 + 0x100" (identifier "param_1") (+ "+") (number_literal "0x100")) () ")")))) (= "=") (number_literal "0")) (; ";")) (} "}"))) (expression_statement "lVar3 = *(long *)(param_1 + 0x100);" (assignment_expression "lVar3 = *(long *)(param_1 + 0x100)" (identifier "lVar3") (= "=") (pointer_expression "*(long *)(param_1 + 0x100)" (* "*") (cast_expression "(long *)(param_1 + 0x100)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x100)" (( "(") (binary_expression "param_1 + 0x100" (identifier "param_1") (+ "+") (number_literal "0x100")) () ")"))))) (; ";")) (expression_statement "*(long *)(param_1 + 0x100) = lVar3 + 1;" (assignment_expression "*(long *)(param_1 + 0x100) = lVar3 + 1" (pointer_expression "*(long *)(param_1 + 0x100)" (* "*") (cast_expression "(long *)(param_1 + 0x100)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x100)" (( "(") (binary_expression "param_1 + 0x100" (identifier "param_1") (+ "+") (number_literal "0x100")) () ")")))) (= "=") (binary_expression "lVar3 + 1" (identifier "lVar3") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*(undefined1 *)(param_1 + lVar3) = 0x2a;" (assignment_expression "*(undefined1 *)(param_1 + lVar3) = 0x2a" (pointer_expression "*(undefined1 *)(param_1 + lVar3)" (* "*") (cast_expression "(undefined1 *)(param_1 + lVar3)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + lVar3)" (( "(") (binary_expression "param_1 + lVar3" (identifier "param_1") (+ "+") (identifier "lVar3")) () ")")))) (= "=") (number_literal "0x2a")) (; ";")) (expression_statement "*(undefined1 *)(param_1 + 0x108) = 0x2a;" (assignment_expression "*(undefined1 *)(param_1 + 0x108) = 0x2a" (pointer_expression "*(undefined1 *)(param_1 + 0x108)" (* "*") (cast_expression "(undefined1 *)(param_1 + 0x108)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x108)" (( "(") (binary_expression "param_1 + 0x108" (identifier "param_1") (+ "+") (number_literal "0x108")) () ")")))) (= "=") (number_literal "0x2a")) (; ";")) (} "}"))) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x23:\n    lVar3 = *(long *)(param_1 + 0x100);\nLAB_002e5807:\n    lVar1 = lVar3 + 1;\n    if (lVar3 == 0xff) {\n      *(undefined1 *)(param_1 + 0xff) = 0;\n      (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n      *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n      lVar1 = 1;\n      lVar3 = 0;\n    }\n    *(long *)(param_1 + 0x100) = lVar1;\n    *(undefined1 *)(param_1 + lVar3) = 0x26;\n    *(undefined1 *)(param_1 + 0x108) = 0x26;\n    break;" (case "case") (number_literal "0x23") (: ":") (expression_statement "lVar3 = *(long *)(param_1 + 0x100);" (assignment_expression "lVar3 = *(long *)(param_1 + 0x100)" (identifier "lVar3") (= "=") (pointer_expression "*(long *)(param_1 + 0x100)" (* "*") (cast_expression "(long *)(param_1 + 0x100)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x100)" (( "(") (binary_expression "param_1 + 0x100" (identifier "param_1") (+ "+") (number_literal "0x100")) () ")"))))) (; ";")) (labeled_statement "LAB_002e5807:\n    lVar1 = lVar3 + 1;" (statement_identifier "LAB_002e5807") (: ":") (expression_statement "lVar1 = lVar3 + 1;" (assignment_expression "lVar1 = lVar3 + 1" (identifier "lVar1") (= "=") (binary_expression "lVar3 + 1" (identifier "lVar3") (+ "+") (number_literal "1"))) (; ";"))) (if_statement "if (lVar3 == 0xff) {\n      *(undefined1 *)(param_1 + 0xff) = 0;\n      (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n      *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n      lVar1 = 1;\n      lVar3 = 0;\n    }" (if "if") (parenthesized_expression "(lVar3 == 0xff)" (( "(") (binary_expression "lVar3 == 0xff" (identifier "lVar3") (== "==") (number_literal "0xff")) () ")")) (compound_statement "{\n      *(undefined1 *)(param_1 + 0xff) = 0;\n      (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n      *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n      lVar1 = 1;\n      lVar3 = 0;\n    }" ({ "{") (expression_statement "*(undefined1 *)(param_1 + 0xff) = 0;" (assignment_expression "*(undefined1 *)(param_1 + 0xff) = 0" (pointer_expression "*(undefined1 *)(param_1 + 0xff)" (* "*") (cast_expression "(undefined1 *)(param_1 + 0xff)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xff)" (( "(") (binary_expression "param_1 + 0xff" (identifier "param_1") (+ "+") (number_literal "0xff")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "(**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));" (call_expression "(**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118))" (parenthesized_expression "(**(code **)(param_1 + 0x110))" (( "(") (pointer_expression "**(code **)(param_1 + 0x110)" (* "*") (pointer_expression "*(code **)(param_1 + 0x110)" (* "*") (cast_expression "(code **)(param_1 + 0x110)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x110)" (( "(") (binary_expression "param_1 + 0x110" (identifier "param_1") (+ "+") (number_literal "0x110")) () ")"))))) () ")")) (argument_list "(param_1,0xff,*(undefined8 *)(param_1 + 0x118))" (( "(") (identifier "param_1") (, ",") (number_literal "0xff") (, ",") (pointer_expression "*(undefined8 *)(param_1 + 0x118)" (* "*") (cast_expression "(undefined8 *)(param_1 + 0x118)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x118)" (( "(") (binary_expression "param_1 + 0x118" (identifier "param_1") (+ "+") (number_literal "0x118")) () ")")))) () ")"))) (; ";")) (expression_statement "*(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;" (assignment_expression "*(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1" (pointer_expression "*(long *)(param_1 + 0x140)" (* "*") (cast_expression "(long *)(param_1 + 0x140)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x140)" (( "(") (binary_expression "param_1 + 0x140" (identifier "param_1") (+ "+") (number_literal "0x140")) () ")")))) (= "=") (binary_expression "*(long *)(param_1 + 0x140) + 1" (pointer_expression "*(long *)(param_1 + 0x140)" (* "*") (cast_expression "(long *)(param_1 + 0x140)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x140)" (( "(") (binary_expression "param_1 + 0x140" (identifier "param_1") (+ "+") (number_literal "0x140")) () ")")))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "lVar1 = 1;" (assignment_expression "lVar1 = 1" (identifier "lVar1") (= "=") (number_literal "1")) (; ";")) (expression_statement "lVar3 = 0;" (assignment_expression "lVar3 = 0" (identifier "lVar3") (= "=") (number_literal "0")) (; ";")) (} "}"))) (expression_statement "*(long *)(param_1 + 0x100) = lVar1;" (assignment_expression "*(long *)(param_1 + 0x100) = lVar1" (pointer_expression "*(long *)(param_1 + 0x100)" (* "*") (cast_expression "(long *)(param_1 + 0x100)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x100)" (( "(") (binary_expression "param_1 + 0x100" (identifier "param_1") (+ "+") (number_literal "0x100")) () ")")))) (= "=") (identifier "lVar1")) (; ";")) (expression_statement "*(undefined1 *)(param_1 + lVar3) = 0x26;" (assignment_expression "*(undefined1 *)(param_1 + lVar3) = 0x26" (pointer_expression "*(undefined1 *)(param_1 + lVar3)" (* "*") (cast_expression "(undefined1 *)(param_1 + lVar3)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + lVar3)" (( "(") (binary_expression "param_1 + lVar3" (identifier "param_1") (+ "+") (identifier "lVar3")) () ")")))) (= "=") (number_literal "0x26")) (; ";")) (expression_statement "*(undefined1 *)(param_1 + 0x108) = 0x26;" (assignment_expression "*(undefined1 *)(param_1 + 0x108) = 0x26" (pointer_expression "*(undefined1 *)(param_1 + 0x108)" (* "*") (cast_expression "(undefined1 *)(param_1 + 0x108)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x108)" (( "(") (binary_expression "param_1 + 0x108" (identifier "param_1") (+ "+") (number_literal "0x108")) () ")")))) (= "=") (number_literal "0x26")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x24:\n    lVar3 = *(long *)(param_1 + 0x100);\nLAB_002e5867:\n    puVar4 = &DAT_003a6db5;\n    uVar5 = 0x26;\n    while( true ) {\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      puVar4 = puVar4 + 1;\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(undefined1 *)(param_1 + lVar3) = uVar5;\n      *(undefined1 *)(param_1 + 0x108) = uVar5;\n      if (puVar4 == &DAT_003a6db7) break;\n      uVar5 = *puVar4;\n      lVar3 = lVar1;\n    }\n    break;" (case "case") (number_literal "0x24") (: ":") (expression_statement "lVar3 = *(long *)(param_1 + 0x100);" (assignment_expression "lVar3 = *(long *)(param_1 + 0x100)" (identifier "lVar3") (= "=") (pointer_expression "*(long *)(param_1 + 0x100)" (* "*") (cast_expression "(long *)(param_1 + 0x100)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x100)" (( "(") (binary_expression "param_1 + 0x100" (identifier "param_1") (+ "+") (number_literal "0x100")) () ")"))))) (; ";")) (labeled_statement "LAB_002e5867:\n    puVar4 = &DAT_003a6db5;" (statement_identifier "LAB_002e5867") (: ":") (expression_statement "puVar4 = &DAT_003a6db5;" (assignment_expression "puVar4 = &DAT_003a6db5" (identifier "puVar4") (= "=") (pointer_expression "&DAT_003a6db5" (& "&") (identifier "DAT_003a6db5"))) (; ";"))) (expression_statement "uVar5 = 0x26;" (assignment_expression "uVar5 = 0x26" (identifier "uVar5") (= "=") (number_literal "0x26")) (; ";")) (while_statement "while( true ) {\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      puVar4 = puVar4 + 1;\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(undefined1 *)(param_1 + lVar3) = uVar5;\n      *(undefined1 *)(param_1 + 0x108) = uVar5;\n      if (puVar4 == &DAT_003a6db7) break;\n      uVar5 = *puVar4;\n      lVar3 = lVar1;\n    }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      puVar4 = puVar4 + 1;\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(undefined1 *)(param_1 + lVar3) = uVar5;\n      *(undefined1 *)(param_1 + 0x108) = uVar5;\n      if (puVar4 == &DAT_003a6db7) break;\n      uVar5 = *puVar4;\n      lVar3 = lVar1;\n    }" ({ "{") (if_statement "if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }" (if "if") (parenthesized_expression "(lVar3 == 0xff)" (( "(") (binary_expression "lVar3 == 0xff" (identifier "lVar3") (== "==") (number_literal "0xff")) () ")")) (compound_statement "{\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }" ({ "{") (expression_statement "*(undefined1 *)(param_1 + 0xff) = 0;" (assignment_expression "*(undefined1 *)(param_1 + 0xff) = 0" (pointer_expression "*(undefined1 *)(param_1 + 0xff)" (* "*") (cast_expression "(undefined1 *)(param_1 + 0xff)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xff)" (( "(") (binary_expression "param_1 + 0xff" (identifier "param_1") (+ "+") (number_literal "0xff")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "(**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));" (call_expression "(**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118))" (parenthesized_expression "(**(code **)(param_1 + 0x110))" (( "(") (pointer_expression "**(code **)(param_1 + 0x110)" (* "*") (pointer_expression "*(code **)(param_1 + 0x110)" (* "*") (cast_expression "(code **)(param_1 + 0x110)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x110)" (( "(") (binary_expression "param_1 + 0x110" (identifier "param_1") (+ "+") (number_literal "0x110")) () ")"))))) () ")")) (argument_list "(param_1,0xff,*(undefined8 *)(param_1 + 0x118))" (( "(") (identifier "param_1") (, ",") (number_literal "0xff") (, ",") (pointer_expression "*(undefined8 *)(param_1 + 0x118)" (* "*") (cast_expression "(undefined8 *)(param_1 + 0x118)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x118)" (( "(") (binary_expression "param_1 + 0x118" (identifier "param_1") (+ "+") (number_literal "0x118")) () ")")))) () ")"))) (; ";")) (expression_statement "*(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;" (assignment_expression "*(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1" (pointer_expression "*(long *)(param_1 + 0x140)" (* "*") (cast_expression "(long *)(param_1 + 0x140)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x140)" (( "(") (binary_expression "param_1 + 0x140" (identifier "param_1") (+ "+") (number_literal "0x140")) () ")")))) (= "=") (binary_expression "*(long *)(param_1 + 0x140) + 1" (pointer_expression "*(long *)(param_1 + 0x140)" (* "*") (cast_expression "(long *)(param_1 + 0x140)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x140)" (( "(") (binary_expression "param_1 + 0x140" (identifier "param_1") (+ "+") (number_literal "0x140")) () ")")))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "lVar1 = 1;" (assignment_expression "lVar1 = 1" (identifier "lVar1") (= "=") (number_literal "1")) (; ";")) (expression_statement "lVar3 = 0;" (assignment_expression "lVar3 = 0" (identifier "lVar3") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n        lVar1 = lVar3 + 1;\n      }" (else "else") (compound_statement "{\n        lVar1 = lVar3 + 1;\n      }" ({ "{") (expression_statement "lVar1 = lVar3 + 1;" (assignment_expression "lVar1 = lVar3 + 1" (identifier "lVar1") (= "=") (binary_expression "lVar3 + 1" (identifier "lVar3") (+ "+") (number_literal "1"))) (; ";")) (} "}")))) (expression_statement "puVar4 = puVar4 + 1;" (assignment_expression "puVar4 = puVar4 + 1" (identifier "puVar4") (= "=") (binary_expression "puVar4 + 1" (identifier "puVar4") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*(long *)(param_1 + 0x100) = lVar1;" (assignment_expression "*(long *)(param_1 + 0x100) = lVar1" (pointer_expression "*(long *)(param_1 + 0x100)" (* "*") (cast_expression "(long *)(param_1 + 0x100)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x100)" (( "(") (binary_expression "param_1 + 0x100" (identifier "param_1") (+ "+") (number_literal "0x100")) () ")")))) (= "=") (identifier "lVar1")) (; ";")) (expression_statement "*(undefined1 *)(param_1 + lVar3) = uVar5;" (assignment_expression "*(undefined1 *)(param_1 + lVar3) = uVar5" (pointer_expression "*(undefined1 *)(param_1 + lVar3)" (* "*") (cast_expression "(undefined1 *)(param_1 + lVar3)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + lVar3)" (( "(") (binary_expression "param_1 + lVar3" (identifier "param_1") (+ "+") (identifier "lVar3")) () ")")))) (= "=") (identifier "uVar5")) (; ";")) (expression_statement "*(undefined1 *)(param_1 + 0x108) = uVar5;" (assignment_expression "*(undefined1 *)(param_1 + 0x108) = uVar5" (pointer_expression "*(undefined1 *)(param_1 + 0x108)" (* "*") (cast_expression "(undefined1 *)(param_1 + 0x108)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x108)" (( "(") (binary_expression "param_1 + 0x108" (identifier "param_1") (+ "+") (number_literal "0x108")) () ")")))) (= "=") (identifier "uVar5")) (; ";")) (if_statement "if (puVar4 == &DAT_003a6db7) break;" (if "if") (parenthesized_expression "(puVar4 == &DAT_003a6db7)" (( "(") (binary_expression "puVar4 == &DAT_003a6db7" (identifier "puVar4") (== "==") (pointer_expression "&DAT_003a6db7" (& "&") (identifier "DAT_003a6db7"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "uVar5 = *puVar4;" (assignment_expression "uVar5 = *puVar4" (identifier "uVar5") (= "=") (pointer_expression "*puVar4" (* "*") (identifier "puVar4"))) (; ";")) (expression_statement "lVar3 = lVar1;" (assignment_expression "lVar3 = lVar1" (identifier "lVar3") (= "=") (identifier "lVar1")) (; ";")) (} "}"))) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x25:\n    pcVar7 = "complex ";\n    cVar8 = 'c';\n    lVar3 = *(long *)(param_1 + 0x100);\n    while( true ) {\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      pcVar7 = pcVar7 + 1;\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }\n    break;" (case "case") (number_literal "0x25") (: ":") (expression_statement "pcVar7 = "complex ";" (assignment_expression "pcVar7 = "complex "" (identifier "pcVar7") (= "=") (string_literal ""complex "" (" """) (string_content "complex ") (" """))) (; ";")) (expression_statement "cVar8 = 'c';" (assignment_expression "cVar8 = 'c'" (identifier "cVar8") (= "=") (char_literal "'c'" (' "'") (character "c") (' "'"))) (; ";")) (expression_statement "lVar3 = *(long *)(param_1 + 0x100);" (assignment_expression "lVar3 = *(long *)(param_1 + 0x100)" (identifier "lVar3") (= "=") (pointer_expression "*(long *)(param_1 + 0x100)" (* "*") (cast_expression "(long *)(param_1 + 0x100)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x100)" (( "(") (binary_expression "param_1 + 0x100" (identifier "param_1") (+ "+") (number_literal "0x100")) () ")"))))) (; ";")) (while_statement "while( true ) {\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      pcVar7 = pcVar7 + 1;\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      pcVar7 = pcVar7 + 1;\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }" ({ "{") (if_statement "if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }" (if "if") (parenthesized_expression "(lVar3 == 0xff)" (( "(") (binary_expression "lVar3 == 0xff" (identifier "lVar3") (== "==") (number_literal "0xff")) () ")")) (compound_statement "{\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }" ({ "{") (expression_statement "*(undefined1 *)(param_1 + 0xff) = 0;" (assignment_expression "*(undefined1 *)(param_1 + 0xff) = 0" (pointer_expression "*(undefined1 *)(param_1 + 0xff)" (* "*") (cast_expression "(undefined1 *)(param_1 + 0xff)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xff)" (( "(") (binary_expression "param_1 + 0xff" (identifier "param_1") (+ "+") (number_literal "0xff")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "(**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));" (call_expression "(**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118))" (parenthesized_expression "(**(code **)(param_1 + 0x110))" (( "(") (pointer_expression "**(code **)(param_1 + 0x110)" (* "*") (pointer_expression "*(code **)(param_1 + 0x110)" (* "*") (cast_expression "(code **)(param_1 + 0x110)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x110)" (( "(") (binary_expression "param_1 + 0x110" (identifier "param_1") (+ "+") (number_literal "0x110")) () ")"))))) () ")")) (argument_list "(param_1,0xff,*(undefined8 *)(param_1 + 0x118))" (( "(") (identifier "param_1") (, ",") (number_literal "0xff") (, ",") (pointer_expression "*(undefined8 *)(param_1 + 0x118)" (* "*") (cast_expression "(undefined8 *)(param_1 + 0x118)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x118)" (( "(") (binary_expression "param_1 + 0x118" (identifier "param_1") (+ "+") (number_literal "0x118")) () ")")))) () ")"))) (; ";")) (expression_statement "*(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;" (assignment_expression "*(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1" (pointer_expression "*(long *)(param_1 + 0x140)" (* "*") (cast_expression "(long *)(param_1 + 0x140)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x140)" (( "(") (binary_expression "param_1 + 0x140" (identifier "param_1") (+ "+") (number_literal "0x140")) () ")")))) (= "=") (binary_expression "*(long *)(param_1 + 0x140) + 1" (pointer_expression "*(long *)(param_1 + 0x140)" (* "*") (cast_expression "(long *)(param_1 + 0x140)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x140)" (( "(") (binary_expression "param_1 + 0x140" (identifier "param_1") (+ "+") (number_literal "0x140")) () ")")))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "lVar1 = 1;" (assignment_expression "lVar1 = 1" (identifier "lVar1") (= "=") (number_literal "1")) (; ";")) (expression_statement "lVar3 = 0;" (assignment_expression "lVar3 = 0" (identifier "lVar3") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n        lVar1 = lVar3 + 1;\n      }" (else "else") (compound_statement "{\n        lVar1 = lVar3 + 1;\n      }" ({ "{") (expression_statement "lVar1 = lVar3 + 1;" (assignment_expression "lVar1 = lVar3 + 1" (identifier "lVar1") (= "=") (binary_expression "lVar3 + 1" (identifier "lVar3") (+ "+") (number_literal "1"))) (; ";")) (} "}")))) (expression_statement "pcVar7 = pcVar7 + 1;" (assignment_expression "pcVar7 = pcVar7 + 1" (identifier "pcVar7") (= "=") (binary_expression "pcVar7 + 1" (identifier "pcVar7") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*(long *)(param_1 + 0x100) = lVar1;" (assignment_expression "*(long *)(param_1 + 0x100) = lVar1" (pointer_expression "*(long *)(param_1 + 0x100)" (* "*") (cast_expression "(long *)(param_1 + 0x100)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x100)" (( "(") (binary_expression "param_1 + 0x100" (identifier "param_1") (+ "+") (number_literal "0x100")) () ")")))) (= "=") (identifier "lVar1")) (; ";")) (expression_statement "*(char *)(param_1 + lVar3) = cVar8;" (assignment_expression "*(char *)(param_1 + lVar3) = cVar8" (pointer_expression "*(char *)(param_1 + lVar3)" (* "*") (cast_expression "(char *)(param_1 + lVar3)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + lVar3)" (( "(") (binary_expression "param_1 + lVar3" (identifier "param_1") (+ "+") (identifier "lVar3")) () ")")))) (= "=") (identifier "cVar8")) (; ";")) (expression_statement "*(char *)(param_1 + 0x108) = cVar8;" (assignment_expression "*(char *)(param_1 + 0x108) = cVar8" (pointer_expression "*(char *)(param_1 + 0x108)" (* "*") (cast_expression "(char *)(param_1 + 0x108)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x108)" (( "(") (binary_expression "param_1 + 0x108" (identifier "param_1") (+ "+") (number_literal "0x108")) () ")")))) (= "=") (identifier "cVar8")) (; ";")) (if_statement "if (pcVar7 == "") break;" (if "if") (parenthesized_expression "(pcVar7 == "")" (( "(") (binary_expression "pcVar7 == """ (identifier "pcVar7") (== "==") (string_literal """" (" """) (" """))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "cVar8 = *pcVar7;" (assignment_expression "cVar8 = *pcVar7" (identifier "cVar8") (= "=") (pointer_expression "*pcVar7" (* "*") (identifier "pcVar7"))) (; ";")) (expression_statement "lVar3 = lVar1;" (assignment_expression "lVar3 = lVar1" (identifier "lVar3") (= "=") (identifier "lVar1")) (; ";")) (} "}"))) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x26:\n    pcVar7 = "imaginary ";\n    cVar8 = 'i';\n    lVar3 = *(long *)(param_1 + 0x100);\n    while( true ) {\n      pcVar7 = pcVar7 + 1;\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }\n    break;" (case "case") (number_literal "0x26") (: ":") (expression_statement "pcVar7 = "imaginary ";" (assignment_expression "pcVar7 = "imaginary "" (identifier "pcVar7") (= "=") (string_literal ""imaginary "" (" """) (string_content "imaginary ") (" """))) (; ";")) (expression_statement "cVar8 = 'i';" (assignment_expression "cVar8 = 'i'" (identifier "cVar8") (= "=") (char_literal "'i'" (' "'") (character "i") (' "'"))) (; ";")) (expression_statement "lVar3 = *(long *)(param_1 + 0x100);" (assignment_expression "lVar3 = *(long *)(param_1 + 0x100)" (identifier "lVar3") (= "=") (pointer_expression "*(long *)(param_1 + 0x100)" (* "*") (cast_expression "(long *)(param_1 + 0x100)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x100)" (( "(") (binary_expression "param_1 + 0x100" (identifier "param_1") (+ "+") (number_literal "0x100")) () ")"))))) (; ";")) (while_statement "while( true ) {\n      pcVar7 = pcVar7 + 1;\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n      pcVar7 = pcVar7 + 1;\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }" ({ "{") (expression_statement "pcVar7 = pcVar7 + 1;" (assignment_expression "pcVar7 = pcVar7 + 1" (identifier "pcVar7") (= "=") (binary_expression "pcVar7 + 1" (identifier "pcVar7") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }" (if "if") (parenthesized_expression "(lVar3 == 0xff)" (( "(") (binary_expression "lVar3 == 0xff" (identifier "lVar3") (== "==") (number_literal "0xff")) () ")")) (compound_statement "{\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }" ({ "{") (expression_statement "*(undefined1 *)(param_1 + 0xff) = 0;" (assignment_expression "*(undefined1 *)(param_1 + 0xff) = 0" (pointer_expression "*(undefined1 *)(param_1 + 0xff)" (* "*") (cast_expression "(undefined1 *)(param_1 + 0xff)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xff)" (( "(") (binary_expression "param_1 + 0xff" (identifier "param_1") (+ "+") (number_literal "0xff")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "(**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));" (call_expression "(**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118))" (parenthesized_expression "(**(code **)(param_1 + 0x110))" (( "(") (pointer_expression "**(code **)(param_1 + 0x110)" (* "*") (pointer_expression "*(code **)(param_1 + 0x110)" (* "*") (cast_expression "(code **)(param_1 + 0x110)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x110)" (( "(") (binary_expression "param_1 + 0x110" (identifier "param_1") (+ "+") (number_literal "0x110")) () ")"))))) () ")")) (argument_list "(param_1,0xff,*(undefined8 *)(param_1 + 0x118))" (( "(") (identifier "param_1") (, ",") (number_literal "0xff") (, ",") (pointer_expression "*(undefined8 *)(param_1 + 0x118)" (* "*") (cast_expression "(undefined8 *)(param_1 + 0x118)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x118)" (( "(") (binary_expression "param_1 + 0x118" (identifier "param_1") (+ "+") (number_literal "0x118")) () ")")))) () ")"))) (; ";")) (expression_statement "*(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;" (assignment_expression "*(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1" (pointer_expression "*(long *)(param_1 + 0x140)" (* "*") (cast_expression "(long *)(param_1 + 0x140)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x140)" (( "(") (binary_expression "param_1 + 0x140" (identifier "param_1") (+ "+") (number_literal "0x140")) () ")")))) (= "=") (binary_expression "*(long *)(param_1 + 0x140) + 1" (pointer_expression "*(long *)(param_1 + 0x140)" (* "*") (cast_expression "(long *)(param_1 + 0x140)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x140)" (( "(") (binary_expression "param_1 + 0x140" (identifier "param_1") (+ "+") (number_literal "0x140")) () ")")))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "lVar1 = 1;" (assignment_expression "lVar1 = 1" (identifier "lVar1") (= "=") (number_literal "1")) (; ";")) (expression_statement "lVar3 = 0;" (assignment_expression "lVar3 = 0" (identifier "lVar3") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n        lVar1 = lVar3 + 1;\n      }" (else "else") (compound_statement "{\n        lVar1 = lVar3 + 1;\n      }" ({ "{") (expression_statement "lVar1 = lVar3 + 1;" (assignment_expression "lVar1 = lVar3 + 1" (identifier "lVar1") (= "=") (binary_expression "lVar3 + 1" (identifier "lVar3") (+ "+") (number_literal "1"))) (; ";")) (} "}")))) (expression_statement "*(long *)(param_1 + 0x100) = lVar1;" (assignment_expression "*(long *)(param_1 + 0x100) = lVar1" (pointer_expression "*(long *)(param_1 + 0x100)" (* "*") (cast_expression "(long *)(param_1 + 0x100)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x100)" (( "(") (binary_expression "param_1 + 0x100" (identifier "param_1") (+ "+") (number_literal "0x100")) () ")")))) (= "=") (identifier "lVar1")) (; ";")) (expression_statement "*(char *)(param_1 + lVar3) = cVar8;" (assignment_expression "*(char *)(param_1 + lVar3) = cVar8" (pointer_expression "*(char *)(param_1 + lVar3)" (* "*") (cast_expression "(char *)(param_1 + lVar3)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + lVar3)" (( "(") (binary_expression "param_1 + lVar3" (identifier "param_1") (+ "+") (identifier "lVar3")) () ")")))) (= "=") (identifier "cVar8")) (; ";")) (expression_statement "*(char *)(param_1 + 0x108) = cVar8;" (assignment_expression "*(char *)(param_1 + 0x108) = cVar8" (pointer_expression "*(char *)(param_1 + 0x108)" (* "*") (cast_expression "(char *)(param_1 + 0x108)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x108)" (( "(") (binary_expression "param_1 + 0x108" (identifier "param_1") (+ "+") (number_literal "0x108")) () ")")))) (= "=") (identifier "cVar8")) (; ";")) (if_statement "if (pcVar7 == "") break;" (if "if") (parenthesized_expression "(pcVar7 == "")" (( "(") (binary_expression "pcVar7 == """ (identifier "pcVar7") (== "==") (string_literal """" (" """) (" """))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "cVar8 = *pcVar7;" (assignment_expression "cVar8 = *pcVar7" (identifier "cVar8") (= "=") (pointer_expression "*pcVar7" (* "*") (identifier "pcVar7"))) (; ";")) (expression_statement "lVar3 = lVar1;" (assignment_expression "lVar3 = lVar1" (identifier "lVar3") (= "=") (identifier "lVar1")) (; ";")) (} "}"))) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x2b:\n    if (*(char *)(param_1 + 0x108) != '(') {\n      lVar1 = *(long *)(param_1 + 0x100);\n      lVar3 = lVar1 + 1;\n      if (lVar1 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar3 = 1;\n        lVar1 = 0;\n      }\n      *(long *)(param_1 + 0x100) = lVar3;\n      *(undefined1 *)(param_1 + lVar1) = 0x20;\n      *(undefined1 *)(param_1 + 0x108) = 0x20;\n    }\n    puVar4 = &DAT_003a9d5a;\n    uVar5 = 0x3a;\n    FUN_002e5210(param_1,uVar6,*(undefined8 *)(param_3 + 2));\n    lVar3 = *(long *)(param_1 + 0x100);\n    while( true ) {\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      puVar4 = puVar4 + 1;\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(undefined1 *)(param_1 + lVar3) = uVar5;\n      *(undefined1 *)(param_1 + 0x108) = uVar5;\n      if (puVar4 == &DAT_003a9d5d) break;\n      uVar5 = *puVar4;\n      lVar3 = lVar1;\n    }\n    break;" (case "case") (number_literal "0x2b") (: ":") (if_statement "if (*(char *)(param_1 + 0x108) != '(') {\n      lVar1 = *(long *)(param_1 + 0x100);\n      lVar3 = lVar1 + 1;\n      if (lVar1 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar3 = 1;\n        lVar1 = 0;\n      }\n      *(long *)(param_1 + 0x100) = lVar3;\n      *(undefined1 *)(param_1 + lVar1) = 0x20;\n      *(undefined1 *)(param_1 + 0x108) = 0x20;\n    }" (if "if") (parenthesized_expression "(*(char *)(param_1 + 0x108) != '(')" (( "(") (binary_expression "*(char *)(param_1 + 0x108) != '('" (pointer_expression "*(char *)(param_1 + 0x108)" (* "*") (cast_expression "(char *)(param_1 + 0x108)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x108)" (( "(") (binary_expression "param_1 + 0x108" (identifier "param_1") (+ "+") (number_literal "0x108")) () ")")))) (!= "!=") (char_literal "'('" (' "'") (character "(") (' "'"))) () ")")) (compound_statement "{\n      lVar1 = *(long *)(param_1 + 0x100);\n      lVar3 = lVar1 + 1;\n      if (lVar1 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar3 = 1;\n        lVar1 = 0;\n      }\n      *(long *)(param_1 + 0x100) = lVar3;\n      *(undefined1 *)(param_1 + lVar1) = 0x20;\n      *(undefined1 *)(param_1 + 0x108) = 0x20;\n    }" ({ "{") (expression_statement "lVar1 = *(long *)(param_1 + 0x100);" (assignment_expression "lVar1 = *(long *)(param_1 + 0x100)" (identifier "lVar1") (= "=") (pointer_expression "*(long *)(param_1 + 0x100)" (* "*") (cast_expression "(long *)(param_1 + 0x100)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x100)" (( "(") (binary_expression "param_1 + 0x100" (identifier "param_1") (+ "+") (number_literal "0x100")) () ")"))))) (; ";")) (expression_statement "lVar3 = lVar1 + 1;" (assignment_expression "lVar3 = lVar1 + 1" (identifier "lVar3") (= "=") (binary_expression "lVar1 + 1" (identifier "lVar1") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (lVar1 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar3 = 1;\n        lVar1 = 0;\n      }" (if "if") (parenthesized_expression "(lVar1 == 0xff)" (( "(") (binary_expression "lVar1 == 0xff" (identifier "lVar1") (== "==") (number_literal "0xff")) () ")")) (compound_statement "{\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar3 = 1;\n        lVar1 = 0;\n      }" ({ "{") (expression_statement "*(undefined1 *)(param_1 + 0xff) = 0;" (assignment_expression "*(undefined1 *)(param_1 + 0xff) = 0" (pointer_expression "*(undefined1 *)(param_1 + 0xff)" (* "*") (cast_expression "(undefined1 *)(param_1 + 0xff)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xff)" (( "(") (binary_expression "param_1 + 0xff" (identifier "param_1") (+ "+") (number_literal "0xff")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "(**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));" (call_expression "(**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118))" (parenthesized_expression "(**(code **)(param_1 + 0x110))" (( "(") (pointer_expression "**(code **)(param_1 + 0x110)" (* "*") (pointer_expression "*(code **)(param_1 + 0x110)" (* "*") (cast_expression "(code **)(param_1 + 0x110)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x110)" (( "(") (binary_expression "param_1 + 0x110" (identifier "param_1") (+ "+") (number_literal "0x110")) () ")"))))) () ")")) (argument_list "(param_1,0xff,*(undefined8 *)(param_1 + 0x118))" (( "(") (identifier "param_1") (, ",") (number_literal "0xff") (, ",") (pointer_expression "*(undefined8 *)(param_1 + 0x118)" (* "*") (cast_expression "(undefined8 *)(param_1 + 0x118)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x118)" (( "(") (binary_expression "param_1 + 0x118" (identifier "param_1") (+ "+") (number_literal "0x118")) () ")")))) () ")"))) (; ";")) (expression_statement "*(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;" (assignment_expression "*(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1" (pointer_expression "*(long *)(param_1 + 0x140)" (* "*") (cast_expression "(long *)(param_1 + 0x140)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x140)" (( "(") (binary_expression "param_1 + 0x140" (identifier "param_1") (+ "+") (number_literal "0x140")) () ")")))) (= "=") (binary_expression "*(long *)(param_1 + 0x140) + 1" (pointer_expression "*(long *)(param_1 + 0x140)" (* "*") (cast_expression "(long *)(param_1 + 0x140)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x140)" (( "(") (binary_expression "param_1 + 0x140" (identifier "param_1") (+ "+") (number_literal "0x140")) () ")")))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "lVar3 = 1;" (assignment_expression "lVar3 = 1" (identifier "lVar3") (= "=") (number_literal "1")) (; ";")) (expression_statement "lVar1 = 0;" (assignment_expression "lVar1 = 0" (identifier "lVar1") (= "=") (number_literal "0")) (; ";")) (} "}"))) (expression_statement "*(long *)(param_1 + 0x100) = lVar3;" (assignment_expression "*(long *)(param_1 + 0x100) = lVar3" (pointer_expression "*(long *)(param_1 + 0x100)" (* "*") (cast_expression "(long *)(param_1 + 0x100)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x100)" (( "(") (binary_expression "param_1 + 0x100" (identifier "param_1") (+ "+") (number_literal "0x100")) () ")")))) (= "=") (identifier "lVar3")) (; ";")) (expression_statement "*(undefined1 *)(param_1 + lVar1) = 0x20;" (assignment_expression "*(undefined1 *)(param_1 + lVar1) = 0x20" (pointer_expression "*(undefined1 *)(param_1 + lVar1)" (* "*") (cast_expression "(undefined1 *)(param_1 + lVar1)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + lVar1)" (( "(") (binary_expression "param_1 + lVar1" (identifier "param_1") (+ "+") (identifier "lVar1")) () ")")))) (= "=") (number_literal "0x20")) (; ";")) (expression_statement "*(undefined1 *)(param_1 + 0x108) = 0x20;" (assignment_expression "*(undefined1 *)(param_1 + 0x108) = 0x20" (pointer_expression "*(undefined1 *)(param_1 + 0x108)" (* "*") (cast_expression "(undefined1 *)(param_1 + 0x108)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x108)" (( "(") (binary_expression "param_1 + 0x108" (identifier "param_1") (+ "+") (number_literal "0x108")) () ")")))) (= "=") (number_literal "0x20")) (; ";")) (} "}"))) (expression_statement "puVar4 = &DAT_003a9d5a;" (assignment_expression "puVar4 = &DAT_003a9d5a" (identifier "puVar4") (= "=") (pointer_expression "&DAT_003a9d5a" (& "&") (identifier "DAT_003a9d5a"))) (; ";")) (expression_statement "uVar5 = 0x3a;" (assignment_expression "uVar5 = 0x3a" (identifier "uVar5") (= "=") (number_literal "0x3a")) (; ";")) (expression_statement "FUN_002e5210(param_1,uVar6,*(undefined8 *)(param_3 + 2));" (call_expression "FUN_002e5210(param_1,uVar6,*(undefined8 *)(param_3 + 2))" (identifier "FUN_002e5210") (argument_list "(param_1,uVar6,*(undefined8 *)(param_3 + 2))" (( "(") (identifier "param_1") (, ",") (identifier "uVar6") (, ",") (pointer_expression "*(undefined8 *)(param_3 + 2)" (* "*") (cast_expression "(undefined8 *)(param_3 + 2)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 2)" (( "(") (binary_expression "param_3 + 2" (identifier "param_3") (+ "+") (number_literal "2")) () ")")))) () ")"))) (; ";")) (expression_statement "lVar3 = *(long *)(param_1 + 0x100);" (assignment_expression "lVar3 = *(long *)(param_1 + 0x100)" (identifier "lVar3") (= "=") (pointer_expression "*(long *)(param_1 + 0x100)" (* "*") (cast_expression "(long *)(param_1 + 0x100)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x100)" (( "(") (binary_expression "param_1 + 0x100" (identifier "param_1") (+ "+") (number_literal "0x100")) () ")"))))) (; ";")) (while_statement "while( true ) {\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      puVar4 = puVar4 + 1;\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(undefined1 *)(param_1 + lVar3) = uVar5;\n      *(undefined1 *)(param_1 + 0x108) = uVar5;\n      if (puVar4 == &DAT_003a9d5d) break;\n      uVar5 = *puVar4;\n      lVar3 = lVar1;\n    }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      puVar4 = puVar4 + 1;\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(undefined1 *)(param_1 + lVar3) = uVar5;\n      *(undefined1 *)(param_1 + 0x108) = uVar5;\n      if (puVar4 == &DAT_003a9d5d) break;\n      uVar5 = *puVar4;\n      lVar3 = lVar1;\n    }" ({ "{") (if_statement "if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }" (if "if") (parenthesized_expression "(lVar3 == 0xff)" (( "(") (binary_expression "lVar3 == 0xff" (identifier "lVar3") (== "==") (number_literal "0xff")) () ")")) (compound_statement "{\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }" ({ "{") (expression_statement "*(undefined1 *)(param_1 + 0xff) = 0;" (assignment_expression "*(undefined1 *)(param_1 + 0xff) = 0" (pointer_expression "*(undefined1 *)(param_1 + 0xff)" (* "*") (cast_expression "(undefined1 *)(param_1 + 0xff)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xff)" (( "(") (binary_expression "param_1 + 0xff" (identifier "param_1") (+ "+") (number_literal "0xff")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "(**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));" (call_expression "(**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118))" (parenthesized_expression "(**(code **)(param_1 + 0x110))" (( "(") (pointer_expression "**(code **)(param_1 + 0x110)" (* "*") (pointer_expression "*(code **)(param_1 + 0x110)" (* "*") (cast_expression "(code **)(param_1 + 0x110)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x110)" (( "(") (binary_expression "param_1 + 0x110" (identifier "param_1") (+ "+") (number_literal "0x110")) () ")"))))) () ")")) (argument_list "(param_1,0xff,*(undefined8 *)(param_1 + 0x118))" (( "(") (identifier "param_1") (, ",") (number_literal "0xff") (, ",") (pointer_expression "*(undefined8 *)(param_1 + 0x118)" (* "*") (cast_expression "(undefined8 *)(param_1 + 0x118)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x118)" (( "(") (binary_expression "param_1 + 0x118" (identifier "param_1") (+ "+") (number_literal "0x118")) () ")")))) () ")"))) (; ";")) (expression_statement "*(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;" (assignment_expression "*(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1" (pointer_expression "*(long *)(param_1 + 0x140)" (* "*") (cast_expression "(long *)(param_1 + 0x140)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x140)" (( "(") (binary_expression "param_1 + 0x140" (identifier "param_1") (+ "+") (number_literal "0x140")) () ")")))) (= "=") (binary_expression "*(long *)(param_1 + 0x140) + 1" (pointer_expression "*(long *)(param_1 + 0x140)" (* "*") (cast_expression "(long *)(param_1 + 0x140)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x140)" (( "(") (binary_expression "param_1 + 0x140" (identifier "param_1") (+ "+") (number_literal "0x140")) () ")")))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "lVar1 = 1;" (assignment_expression "lVar1 = 1" (identifier "lVar1") (= "=") (number_literal "1")) (; ";")) (expression_statement "lVar3 = 0;" (assignment_expression "lVar3 = 0" (identifier "lVar3") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n        lVar1 = lVar3 + 1;\n      }" (else "else") (compound_statement "{\n        lVar1 = lVar3 + 1;\n      }" ({ "{") (expression_statement "lVar1 = lVar3 + 1;" (assignment_expression "lVar1 = lVar3 + 1" (identifier "lVar1") (= "=") (binary_expression "lVar3 + 1" (identifier "lVar3") (+ "+") (number_literal "1"))) (; ";")) (} "}")))) (expression_statement "puVar4 = puVar4 + 1;" (assignment_expression "puVar4 = puVar4 + 1" (identifier "puVar4") (= "=") (binary_expression "puVar4 + 1" (identifier "puVar4") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*(long *)(param_1 + 0x100) = lVar1;" (assignment_expression "*(long *)(param_1 + 0x100) = lVar1" (pointer_expression "*(long *)(param_1 + 0x100)" (* "*") (cast_expression "(long *)(param_1 + 0x100)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x100)" (( "(") (binary_expression "param_1 + 0x100" (identifier "param_1") (+ "+") (number_literal "0x100")) () ")")))) (= "=") (identifier "lVar1")) (; ";")) (expression_statement "*(undefined1 *)(param_1 + lVar3) = uVar5;" (assignment_expression "*(undefined1 *)(param_1 + lVar3) = uVar5" (pointer_expression "*(undefined1 *)(param_1 + lVar3)" (* "*") (cast_expression "(undefined1 *)(param_1 + lVar3)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + lVar3)" (( "(") (binary_expression "param_1 + lVar3" (identifier "param_1") (+ "+") (identifier "lVar3")) () ")")))) (= "=") (identifier "uVar5")) (; ";")) (expression_statement "*(undefined1 *)(param_1 + 0x108) = uVar5;" (assignment_expression "*(undefined1 *)(param_1 + 0x108) = uVar5" (pointer_expression "*(undefined1 *)(param_1 + 0x108)" (* "*") (cast_expression "(undefined1 *)(param_1 + 0x108)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x108)" (( "(") (binary_expression "param_1 + 0x108" (identifier "param_1") (+ "+") (number_literal "0x108")) () ")")))) (= "=") (identifier "uVar5")) (; ";")) (if_statement "if (puVar4 == &DAT_003a9d5d) break;" (if "if") (parenthesized_expression "(puVar4 == &DAT_003a9d5d)" (( "(") (binary_expression "puVar4 == &DAT_003a9d5d" (identifier "puVar4") (== "==") (pointer_expression "&DAT_003a9d5d" (& "&") (identifier "DAT_003a9d5d"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "uVar5 = *puVar4;" (assignment_expression "uVar5 = *puVar4" (identifier "uVar5") (= "=") (pointer_expression "*puVar4" (* "*") (identifier "puVar4"))) (; ";")) (expression_statement "lVar3 = lVar1;" (assignment_expression "lVar3 = lVar1" (identifier "lVar3") (= "=") (identifier "lVar1")) (; ";")) (} "}"))) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x2d:\n    pcVar7 = " __vector(";\n    cVar8 = ' ';\n    lVar3 = *(long *)(param_1 + 0x100);\n    while( true ) {\n      pcVar7 = pcVar7 + 1;\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }\n    lVar3 = *(long *)(param_3 + 2);\n    goto LAB_002e5aba;" (case "case") (number_literal "0x2d") (: ":") (expression_statement "pcVar7 = " __vector(";" (assignment_expression "pcVar7 = " __vector("" (identifier "pcVar7") (= "=") (string_literal "" __vector("" (" """) (string_content " __vector(") (" """))) (; ";")) (expression_statement "cVar8 = ' ';" (assignment_expression "cVar8 = ' '" (identifier "cVar8") (= "=") (char_literal "' '" (' "'") (character " ") (' "'"))) (; ";")) (expression_statement "lVar3 = *(long *)(param_1 + 0x100);" (assignment_expression "lVar3 = *(long *)(param_1 + 0x100)" (identifier "lVar3") (= "=") (pointer_expression "*(long *)(param_1 + 0x100)" (* "*") (cast_expression "(long *)(param_1 + 0x100)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x100)" (( "(") (binary_expression "param_1 + 0x100" (identifier "param_1") (+ "+") (number_literal "0x100")) () ")"))))) (; ";")) (while_statement "while( true ) {\n      pcVar7 = pcVar7 + 1;\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n      pcVar7 = pcVar7 + 1;\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }" ({ "{") (expression_statement "pcVar7 = pcVar7 + 1;" (assignment_expression "pcVar7 = pcVar7 + 1" (identifier "pcVar7") (= "=") (binary_expression "pcVar7 + 1" (identifier "pcVar7") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }" (if "if") (parenthesized_expression "(lVar3 == 0xff)" (( "(") (binary_expression "lVar3 == 0xff" (identifier "lVar3") (== "==") (number_literal "0xff")) () ")")) (compound_statement "{\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }" ({ "{") (expression_statement "*(undefined1 *)(param_1 + 0xff) = 0;" (assignment_expression "*(undefined1 *)(param_1 + 0xff) = 0" (pointer_expression "*(undefined1 *)(param_1 + 0xff)" (* "*") (cast_expression "(undefined1 *)(param_1 + 0xff)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xff)" (( "(") (binary_expression "param_1 + 0xff" (identifier "param_1") (+ "+") (number_literal "0xff")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "(**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));" (call_expression "(**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118))" (parenthesized_expression "(**(code **)(param_1 + 0x110))" (( "(") (pointer_expression "**(code **)(param_1 + 0x110)" (* "*") (pointer_expression "*(code **)(param_1 + 0x110)" (* "*") (cast_expression "(code **)(param_1 + 0x110)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x110)" (( "(") (binary_expression "param_1 + 0x110" (identifier "param_1") (+ "+") (number_literal "0x110")) () ")"))))) () ")")) (argument_list "(param_1,0xff,*(undefined8 *)(param_1 + 0x118))" (( "(") (identifier "param_1") (, ",") (number_literal "0xff") (, ",") (pointer_expression "*(undefined8 *)(param_1 + 0x118)" (* "*") (cast_expression "(undefined8 *)(param_1 + 0x118)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x118)" (( "(") (binary_expression "param_1 + 0x118" (identifier "param_1") (+ "+") (number_literal "0x118")) () ")")))) () ")"))) (; ";")) (expression_statement "*(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;" (assignment_expression "*(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1" (pointer_expression "*(long *)(param_1 + 0x140)" (* "*") (cast_expression "(long *)(param_1 + 0x140)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x140)" (( "(") (binary_expression "param_1 + 0x140" (identifier "param_1") (+ "+") (number_literal "0x140")) () ")")))) (= "=") (binary_expression "*(long *)(param_1 + 0x140) + 1" (pointer_expression "*(long *)(param_1 + 0x140)" (* "*") (cast_expression "(long *)(param_1 + 0x140)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x140)" (( "(") (binary_expression "param_1 + 0x140" (identifier "param_1") (+ "+") (number_literal "0x140")) () ")")))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "lVar1 = 1;" (assignment_expression "lVar1 = 1" (identifier "lVar1") (= "=") (number_literal "1")) (; ";")) (expression_statement "lVar3 = 0;" (assignment_expression "lVar3 = 0" (identifier "lVar3") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n        lVar1 = lVar3 + 1;\n      }" (else "else") (compound_statement "{\n        lVar1 = lVar3 + 1;\n      }" ({ "{") (expression_statement "lVar1 = lVar3 + 1;" (assignment_expression "lVar1 = lVar3 + 1" (identifier "lVar1") (= "=") (binary_expression "lVar3 + 1" (identifier "lVar3") (+ "+") (number_literal "1"))) (; ";")) (} "}")))) (expression_statement "*(long *)(param_1 + 0x100) = lVar1;" (assignment_expression "*(long *)(param_1 + 0x100) = lVar1" (pointer_expression "*(long *)(param_1 + 0x100)" (* "*") (cast_expression "(long *)(param_1 + 0x100)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x100)" (( "(") (binary_expression "param_1 + 0x100" (identifier "param_1") (+ "+") (number_literal "0x100")) () ")")))) (= "=") (identifier "lVar1")) (; ";")) (expression_statement "*(char *)(param_1 + lVar3) = cVar8;" (assignment_expression "*(char *)(param_1 + lVar3) = cVar8" (pointer_expression "*(char *)(param_1 + lVar3)" (* "*") (cast_expression "(char *)(param_1 + lVar3)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + lVar3)" (( "(") (binary_expression "param_1 + lVar3" (identifier "param_1") (+ "+") (identifier "lVar3")) () ")")))) (= "=") (identifier "cVar8")) (; ";")) (expression_statement "*(char *)(param_1 + 0x108) = cVar8;" (assignment_expression "*(char *)(param_1 + 0x108) = cVar8" (pointer_expression "*(char *)(param_1 + 0x108)" (* "*") (cast_expression "(char *)(param_1 + 0x108)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x108)" (( "(") (binary_expression "param_1 + 0x108" (identifier "param_1") (+ "+") (number_literal "0x108")) () ")")))) (= "=") (identifier "cVar8")) (; ";")) (if_statement "if (pcVar7 == "") break;" (if "if") (parenthesized_expression "(pcVar7 == "")" (( "(") (binary_expression "pcVar7 == """ (identifier "pcVar7") (== "==") (string_literal """" (" """) (" """))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "cVar8 = *pcVar7;" (assignment_expression "cVar8 = *pcVar7" (identifier "cVar8") (= "=") (pointer_expression "*pcVar7" (* "*") (identifier "pcVar7"))) (; ";")) (expression_statement "lVar3 = lVar1;" (assignment_expression "lVar3 = lVar1" (identifier "lVar3") (= "=") (identifier "lVar1")) (; ";")) (} "}"))) (expression_statement "lVar3 = *(long *)(param_3 + 2);" (assignment_expression "lVar3 = *(long *)(param_3 + 2)" (identifier "lVar3") (= "=") (pointer_expression "*(long *)(param_3 + 2)" (* "*") (cast_expression "(long *)(param_3 + 2)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 2)" (( "(") (binary_expression "param_3 + 2" (identifier "param_3") (+ "+") (number_literal "2")) () ")"))))) (; ";")) (goto_statement "goto LAB_002e5aba;" (goto "goto") (statement_identifier "LAB_002e5aba") (; ";"))) (case_statement "case 0x4c:\n    pcVar7 = " transaction_safe";\n    cVar8 = ' ';\n    lVar3 = *(long *)(param_1 + 0x100);\n    while( true ) {\n      pcVar7 = pcVar7 + 1;\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }\n    break;" (case "case") (number_literal "0x4c") (: ":") (expression_statement "pcVar7 = " transaction_safe";" (assignment_expression "pcVar7 = " transaction_safe"" (identifier "pcVar7") (= "=") (string_literal "" transaction_safe"" (" """) (string_content " transaction_safe") (" """))) (; ";")) (expression_statement "cVar8 = ' ';" (assignment_expression "cVar8 = ' '" (identifier "cVar8") (= "=") (char_literal "' '" (' "'") (character " ") (' "'"))) (; ";")) (expression_statement "lVar3 = *(long *)(param_1 + 0x100);" (assignment_expression "lVar3 = *(long *)(param_1 + 0x100)" (identifier "lVar3") (= "=") (pointer_expression "*(long *)(param_1 + 0x100)" (* "*") (cast_expression "(long *)(param_1 + 0x100)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x100)" (( "(") (binary_expression "param_1 + 0x100" (identifier "param_1") (+ "+") (number_literal "0x100")) () ")"))))) (; ";")) (while_statement "while( true ) {\n      pcVar7 = pcVar7 + 1;\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n      pcVar7 = pcVar7 + 1;\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }" ({ "{") (expression_statement "pcVar7 = pcVar7 + 1;" (assignment_expression "pcVar7 = pcVar7 + 1" (identifier "pcVar7") (= "=") (binary_expression "pcVar7 + 1" (identifier "pcVar7") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }" (if "if") (parenthesized_expression "(lVar3 == 0xff)" (( "(") (binary_expression "lVar3 == 0xff" (identifier "lVar3") (== "==") (number_literal "0xff")) () ")")) (compound_statement "{\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }" ({ "{") (expression_statement "*(undefined1 *)(param_1 + 0xff) = 0;" (assignment_expression "*(undefined1 *)(param_1 + 0xff) = 0" (pointer_expression "*(undefined1 *)(param_1 + 0xff)" (* "*") (cast_expression "(undefined1 *)(param_1 + 0xff)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xff)" (( "(") (binary_expression "param_1 + 0xff" (identifier "param_1") (+ "+") (number_literal "0xff")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "(**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));" (call_expression "(**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118))" (parenthesized_expression "(**(code **)(param_1 + 0x110))" (( "(") (pointer_expression "**(code **)(param_1 + 0x110)" (* "*") (pointer_expression "*(code **)(param_1 + 0x110)" (* "*") (cast_expression "(code **)(param_1 + 0x110)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x110)" (( "(") (binary_expression "param_1 + 0x110" (identifier "param_1") (+ "+") (number_literal "0x110")) () ")"))))) () ")")) (argument_list "(param_1,0xff,*(undefined8 *)(param_1 + 0x118))" (( "(") (identifier "param_1") (, ",") (number_literal "0xff") (, ",") (pointer_expression "*(undefined8 *)(param_1 + 0x118)" (* "*") (cast_expression "(undefined8 *)(param_1 + 0x118)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x118)" (( "(") (binary_expression "param_1 + 0x118" (identifier "param_1") (+ "+") (number_literal "0x118")) () ")")))) () ")"))) (; ";")) (expression_statement "*(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;" (assignment_expression "*(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1" (pointer_expression "*(long *)(param_1 + 0x140)" (* "*") (cast_expression "(long *)(param_1 + 0x140)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x140)" (( "(") (binary_expression "param_1 + 0x140" (identifier "param_1") (+ "+") (number_literal "0x140")) () ")")))) (= "=") (binary_expression "*(long *)(param_1 + 0x140) + 1" (pointer_expression "*(long *)(param_1 + 0x140)" (* "*") (cast_expression "(long *)(param_1 + 0x140)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x140)" (( "(") (binary_expression "param_1 + 0x140" (identifier "param_1") (+ "+") (number_literal "0x140")) () ")")))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "lVar1 = 1;" (assignment_expression "lVar1 = 1" (identifier "lVar1") (= "=") (number_literal "1")) (; ";")) (expression_statement "lVar3 = 0;" (assignment_expression "lVar3 = 0" (identifier "lVar3") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n        lVar1 = lVar3 + 1;\n      }" (else "else") (compound_statement "{\n        lVar1 = lVar3 + 1;\n      }" ({ "{") (expression_statement "lVar1 = lVar3 + 1;" (assignment_expression "lVar1 = lVar3 + 1" (identifier "lVar1") (= "=") (binary_expression "lVar3 + 1" (identifier "lVar3") (+ "+") (number_literal "1"))) (; ";")) (} "}")))) (expression_statement "*(long *)(param_1 + 0x100) = lVar1;" (assignment_expression "*(long *)(param_1 + 0x100) = lVar1" (pointer_expression "*(long *)(param_1 + 0x100)" (* "*") (cast_expression "(long *)(param_1 + 0x100)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x100)" (( "(") (binary_expression "param_1 + 0x100" (identifier "param_1") (+ "+") (number_literal "0x100")) () ")")))) (= "=") (identifier "lVar1")) (; ";")) (expression_statement "*(char *)(param_1 + lVar3) = cVar8;" (assignment_expression "*(char *)(param_1 + lVar3) = cVar8" (pointer_expression "*(char *)(param_1 + lVar3)" (* "*") (cast_expression "(char *)(param_1 + lVar3)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + lVar3)" (( "(") (binary_expression "param_1 + lVar3" (identifier "param_1") (+ "+") (identifier "lVar3")) () ")")))) (= "=") (identifier "cVar8")) (; ";")) (expression_statement "*(char *)(param_1 + 0x108) = cVar8;" (assignment_expression "*(char *)(param_1 + 0x108) = cVar8" (pointer_expression "*(char *)(param_1 + 0x108)" (* "*") (cast_expression "(char *)(param_1 + 0x108)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x108)" (( "(") (binary_expression "param_1 + 0x108" (identifier "param_1") (+ "+") (number_literal "0x108")) () ")")))) (= "=") (identifier "cVar8")) (; ";")) (if_statement "if (pcVar7 == "") break;" (if "if") (parenthesized_expression "(pcVar7 == "")" (( "(") (binary_expression "pcVar7 == """ (identifier "pcVar7") (== "==") (string_literal """" (" """) (" """))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "cVar8 = *pcVar7;" (assignment_expression "cVar8 = *pcVar7" (identifier "cVar8") (= "=") (pointer_expression "*pcVar7" (* "*") (identifier "pcVar7"))) (; ";")) (expression_statement "lVar3 = lVar1;" (assignment_expression "lVar3 = lVar1" (identifier "lVar3") (= "=") (identifier "lVar1")) (; ";")) (} "}"))) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x4e:\n    pcVar7 = " noexcept";\n    cVar8 = ' ';\n    lVar3 = *(long *)(param_1 + 0x100);\n    while( true ) {\n      pcVar7 = pcVar7 + 1;\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }\n    goto LAB_002e5a60;" (case "case") (number_literal "0x4e") (: ":") (expression_statement "pcVar7 = " noexcept";" (assignment_expression "pcVar7 = " noexcept"" (identifier "pcVar7") (= "=") (string_literal "" noexcept"" (" """) (string_content " noexcept") (" """))) (; ";")) (expression_statement "cVar8 = ' ';" (assignment_expression "cVar8 = ' '" (identifier "cVar8") (= "=") (char_literal "' '" (' "'") (character " ") (' "'"))) (; ";")) (expression_statement "lVar3 = *(long *)(param_1 + 0x100);" (assignment_expression "lVar3 = *(long *)(param_1 + 0x100)" (identifier "lVar3") (= "=") (pointer_expression "*(long *)(param_1 + 0x100)" (* "*") (cast_expression "(long *)(param_1 + 0x100)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x100)" (( "(") (binary_expression "param_1 + 0x100" (identifier "param_1") (+ "+") (number_literal "0x100")) () ")"))))) (; ";")) (while_statement "while( true ) {\n      pcVar7 = pcVar7 + 1;\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n      pcVar7 = pcVar7 + 1;\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }" ({ "{") (expression_statement "pcVar7 = pcVar7 + 1;" (assignment_expression "pcVar7 = pcVar7 + 1" (identifier "pcVar7") (= "=") (binary_expression "pcVar7 + 1" (identifier "pcVar7") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }" (if "if") (parenthesized_expression "(lVar3 == 0xff)" (( "(") (binary_expression "lVar3 == 0xff" (identifier "lVar3") (== "==") (number_literal "0xff")) () ")")) (compound_statement "{\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }" ({ "{") (expression_statement "*(undefined1 *)(param_1 + 0xff) = 0;" (assignment_expression "*(undefined1 *)(param_1 + 0xff) = 0" (pointer_expression "*(undefined1 *)(param_1 + 0xff)" (* "*") (cast_expression "(undefined1 *)(param_1 + 0xff)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xff)" (( "(") (binary_expression "param_1 + 0xff" (identifier "param_1") (+ "+") (number_literal "0xff")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "(**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));" (call_expression "(**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118))" (parenthesized_expression "(**(code **)(param_1 + 0x110))" (( "(") (pointer_expression "**(code **)(param_1 + 0x110)" (* "*") (pointer_expression "*(code **)(param_1 + 0x110)" (* "*") (cast_expression "(code **)(param_1 + 0x110)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x110)" (( "(") (binary_expression "param_1 + 0x110" (identifier "param_1") (+ "+") (number_literal "0x110")) () ")"))))) () ")")) (argument_list "(param_1,0xff,*(undefined8 *)(param_1 + 0x118))" (( "(") (identifier "param_1") (, ",") (number_literal "0xff") (, ",") (pointer_expression "*(undefined8 *)(param_1 + 0x118)" (* "*") (cast_expression "(undefined8 *)(param_1 + 0x118)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x118)" (( "(") (binary_expression "param_1 + 0x118" (identifier "param_1") (+ "+") (number_literal "0x118")) () ")")))) () ")"))) (; ";")) (expression_statement "*(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;" (assignment_expression "*(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1" (pointer_expression "*(long *)(param_1 + 0x140)" (* "*") (cast_expression "(long *)(param_1 + 0x140)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x140)" (( "(") (binary_expression "param_1 + 0x140" (identifier "param_1") (+ "+") (number_literal "0x140")) () ")")))) (= "=") (binary_expression "*(long *)(param_1 + 0x140) + 1" (pointer_expression "*(long *)(param_1 + 0x140)" (* "*") (cast_expression "(long *)(param_1 + 0x140)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x140)" (( "(") (binary_expression "param_1 + 0x140" (identifier "param_1") (+ "+") (number_literal "0x140")) () ")")))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "lVar1 = 1;" (assignment_expression "lVar1 = 1" (identifier "lVar1") (= "=") (number_literal "1")) (; ";")) (expression_statement "lVar3 = 0;" (assignment_expression "lVar3 = 0" (identifier "lVar3") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n        lVar1 = lVar3 + 1;\n      }" (else "else") (compound_statement "{\n        lVar1 = lVar3 + 1;\n      }" ({ "{") (expression_statement "lVar1 = lVar3 + 1;" (assignment_expression "lVar1 = lVar3 + 1" (identifier "lVar1") (= "=") (binary_expression "lVar3 + 1" (identifier "lVar3") (+ "+") (number_literal "1"))) (; ";")) (} "}")))) (expression_statement "*(long *)(param_1 + 0x100) = lVar1;" (assignment_expression "*(long *)(param_1 + 0x100) = lVar1" (pointer_expression "*(long *)(param_1 + 0x100)" (* "*") (cast_expression "(long *)(param_1 + 0x100)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x100)" (( "(") (binary_expression "param_1 + 0x100" (identifier "param_1") (+ "+") (number_literal "0x100")) () ")")))) (= "=") (identifier "lVar1")) (; ";")) (expression_statement "*(char *)(param_1 + lVar3) = cVar8;" (assignment_expression "*(char *)(param_1 + lVar3) = cVar8" (pointer_expression "*(char *)(param_1 + lVar3)" (* "*") (cast_expression "(char *)(param_1 + lVar3)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + lVar3)" (( "(") (binary_expression "param_1 + lVar3" (identifier "param_1") (+ "+") (identifier "lVar3")) () ")")))) (= "=") (identifier "cVar8")) (; ";")) (expression_statement "*(char *)(param_1 + 0x108) = cVar8;" (assignment_expression "*(char *)(param_1 + 0x108) = cVar8" (pointer_expression "*(char *)(param_1 + 0x108)" (* "*") (cast_expression "(char *)(param_1 + 0x108)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x108)" (( "(") (binary_expression "param_1 + 0x108" (identifier "param_1") (+ "+") (number_literal "0x108")) () ")")))) (= "=") (identifier "cVar8")) (; ";")) (if_statement "if (pcVar7 == "") break;" (if "if") (parenthesized_expression "(pcVar7 == "")" (( "(") (binary_expression "pcVar7 == """ (identifier "pcVar7") (== "==") (string_literal """" (" """) (" """))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "cVar8 = *pcVar7;" (assignment_expression "cVar8 = *pcVar7" (identifier "cVar8") (= "=") (pointer_expression "*pcVar7" (* "*") (identifier "pcVar7"))) (; ";")) (expression_statement "lVar3 = lVar1;" (assignment_expression "lVar3 = lVar1" (identifier "lVar3") (= "=") (identifier "lVar1")) (; ";")) (} "}"))) (goto_statement "goto LAB_002e5a60;" (goto "goto") (statement_identifier "LAB_002e5a60") (; ";"))) (case_statement "case 0x4f:\n    pcVar7 = " throw";\n    cVar8 = ' ';\n    lVar3 = *(long *)(param_1 + 0x100);\n    while( true ) {\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      pcVar7 = pcVar7 + 1;\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }\nLAB_002e5a60:\n    lVar3 = *(long *)(param_3 + 4);\n    if (lVar3 != 0) {\n      lVar2 = lVar1 + 1;\n      if (lVar1 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar3 = *(long *)(param_3 + 4);\n        lVar1 = 0;\n        lVar2 = 1;\n      }\n      *(long *)(param_1 + 0x100) = lVar2;\n      *(undefined1 *)(param_1 + lVar1) = 0x28;\n      *(undefined1 *)(param_1 + 0x108) = 0x28;\nLAB_002e5aba:\n      FUN_002e5210(param_1,uVar6,lVar3);\n      lVar1 = *(long *)(param_1 + 0x100);\n      lVar3 = lVar1 + 1;\n      if (lVar1 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar3 = 1;\n        lVar1 = 0;\n      }\n      *(long *)(param_1 + 0x100) = lVar3;\n      *(undefined1 *)(param_1 + lVar1) = 0x29;\n      *(undefined1 *)(param_1 + 0x108) = 0x29;\n      return;\n    }" (case "case") (number_literal "0x4f") (: ":") (expression_statement "pcVar7 = " throw";" (assignment_expression "pcVar7 = " throw"" (identifier "pcVar7") (= "=") (string_literal "" throw"" (" """) (string_content " throw") (" """))) (; ";")) (expression_statement "cVar8 = ' ';" (assignment_expression "cVar8 = ' '" (identifier "cVar8") (= "=") (char_literal "' '" (' "'") (character " ") (' "'"))) (; ";")) (expression_statement "lVar3 = *(long *)(param_1 + 0x100);" (assignment_expression "lVar3 = *(long *)(param_1 + 0x100)" (identifier "lVar3") (= "=") (pointer_expression "*(long *)(param_1 + 0x100)" (* "*") (cast_expression "(long *)(param_1 + 0x100)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x100)" (( "(") (binary_expression "param_1 + 0x100" (identifier "param_1") (+ "+") (number_literal "0x100")) () ")"))))) (; ";")) (while_statement "while( true ) {\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      pcVar7 = pcVar7 + 1;\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n      if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }\n      pcVar7 = pcVar7 + 1;\n      *(long *)(param_1 + 0x100) = lVar1;\n      *(char *)(param_1 + lVar3) = cVar8;\n      *(char *)(param_1 + 0x108) = cVar8;\n      if (pcVar7 == "") break;\n      cVar8 = *pcVar7;\n      lVar3 = lVar1;\n    }" ({ "{") (if_statement "if (lVar3 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }\n      else {\n        lVar1 = lVar3 + 1;\n      }" (if "if") (parenthesized_expression "(lVar3 == 0xff)" (( "(") (binary_expression "lVar3 == 0xff" (identifier "lVar3") (== "==") (number_literal "0xff")) () ")")) (compound_statement "{\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar1 = 1;\n        lVar3 = 0;\n      }" ({ "{") (expression_statement "*(undefined1 *)(param_1 + 0xff) = 0;" (assignment_expression "*(undefined1 *)(param_1 + 0xff) = 0" (pointer_expression "*(undefined1 *)(param_1 + 0xff)" (* "*") (cast_expression "(undefined1 *)(param_1 + 0xff)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xff)" (( "(") (binary_expression "param_1 + 0xff" (identifier "param_1") (+ "+") (number_literal "0xff")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "(**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));" (call_expression "(**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118))" (parenthesized_expression "(**(code **)(param_1 + 0x110))" (( "(") (pointer_expression "**(code **)(param_1 + 0x110)" (* "*") (pointer_expression "*(code **)(param_1 + 0x110)" (* "*") (cast_expression "(code **)(param_1 + 0x110)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x110)" (( "(") (binary_expression "param_1 + 0x110" (identifier "param_1") (+ "+") (number_literal "0x110")) () ")"))))) () ")")) (argument_list "(param_1,0xff,*(undefined8 *)(param_1 + 0x118))" (( "(") (identifier "param_1") (, ",") (number_literal "0xff") (, ",") (pointer_expression "*(undefined8 *)(param_1 + 0x118)" (* "*") (cast_expression "(undefined8 *)(param_1 + 0x118)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x118)" (( "(") (binary_expression "param_1 + 0x118" (identifier "param_1") (+ "+") (number_literal "0x118")) () ")")))) () ")"))) (; ";")) (expression_statement "*(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;" (assignment_expression "*(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1" (pointer_expression "*(long *)(param_1 + 0x140)" (* "*") (cast_expression "(long *)(param_1 + 0x140)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x140)" (( "(") (binary_expression "param_1 + 0x140" (identifier "param_1") (+ "+") (number_literal "0x140")) () ")")))) (= "=") (binary_expression "*(long *)(param_1 + 0x140) + 1" (pointer_expression "*(long *)(param_1 + 0x140)" (* "*") (cast_expression "(long *)(param_1 + 0x140)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x140)" (( "(") (binary_expression "param_1 + 0x140" (identifier "param_1") (+ "+") (number_literal "0x140")) () ")")))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "lVar1 = 1;" (assignment_expression "lVar1 = 1" (identifier "lVar1") (= "=") (number_literal "1")) (; ";")) (expression_statement "lVar3 = 0;" (assignment_expression "lVar3 = 0" (identifier "lVar3") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n        lVar1 = lVar3 + 1;\n      }" (else "else") (compound_statement "{\n        lVar1 = lVar3 + 1;\n      }" ({ "{") (expression_statement "lVar1 = lVar3 + 1;" (assignment_expression "lVar1 = lVar3 + 1" (identifier "lVar1") (= "=") (binary_expression "lVar3 + 1" (identifier "lVar3") (+ "+") (number_literal "1"))) (; ";")) (} "}")))) (expression_statement "pcVar7 = pcVar7 + 1;" (assignment_expression "pcVar7 = pcVar7 + 1" (identifier "pcVar7") (= "=") (binary_expression "pcVar7 + 1" (identifier "pcVar7") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*(long *)(param_1 + 0x100) = lVar1;" (assignment_expression "*(long *)(param_1 + 0x100) = lVar1" (pointer_expression "*(long *)(param_1 + 0x100)" (* "*") (cast_expression "(long *)(param_1 + 0x100)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x100)" (( "(") (binary_expression "param_1 + 0x100" (identifier "param_1") (+ "+") (number_literal "0x100")) () ")")))) (= "=") (identifier "lVar1")) (; ";")) (expression_statement "*(char *)(param_1 + lVar3) = cVar8;" (assignment_expression "*(char *)(param_1 + lVar3) = cVar8" (pointer_expression "*(char *)(param_1 + lVar3)" (* "*") (cast_expression "(char *)(param_1 + lVar3)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + lVar3)" (( "(") (binary_expression "param_1 + lVar3" (identifier "param_1") (+ "+") (identifier "lVar3")) () ")")))) (= "=") (identifier "cVar8")) (; ";")) (expression_statement "*(char *)(param_1 + 0x108) = cVar8;" (assignment_expression "*(char *)(param_1 + 0x108) = cVar8" (pointer_expression "*(char *)(param_1 + 0x108)" (* "*") (cast_expression "(char *)(param_1 + 0x108)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x108)" (( "(") (binary_expression "param_1 + 0x108" (identifier "param_1") (+ "+") (number_literal "0x108")) () ")")))) (= "=") (identifier "cVar8")) (; ";")) (if_statement "if (pcVar7 == "") break;" (if "if") (parenthesized_expression "(pcVar7 == "")" (( "(") (binary_expression "pcVar7 == """ (identifier "pcVar7") (== "==") (string_literal """" (" """) (" """))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "cVar8 = *pcVar7;" (assignment_expression "cVar8 = *pcVar7" (identifier "cVar8") (= "=") (pointer_expression "*pcVar7" (* "*") (identifier "pcVar7"))) (; ";")) (expression_statement "lVar3 = lVar1;" (assignment_expression "lVar3 = lVar1" (identifier "lVar3") (= "=") (identifier "lVar1")) (; ";")) (} "}"))) (labeled_statement "LAB_002e5a60:\n    lVar3 = *(long *)(param_3 + 4);" (statement_identifier "LAB_002e5a60") (: ":") (expression_statement "lVar3 = *(long *)(param_3 + 4);" (assignment_expression "lVar3 = *(long *)(param_3 + 4)" (identifier "lVar3") (= "=") (pointer_expression "*(long *)(param_3 + 4)" (* "*") (cast_expression "(long *)(param_3 + 4)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 4)" (( "(") (binary_expression "param_3 + 4" (identifier "param_3") (+ "+") (number_literal "4")) () ")"))))) (; ";"))) (if_statement "if (lVar3 != 0) {\n      lVar2 = lVar1 + 1;\n      if (lVar1 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar3 = *(long *)(param_3 + 4);\n        lVar1 = 0;\n        lVar2 = 1;\n      }\n      *(long *)(param_1 + 0x100) = lVar2;\n      *(undefined1 *)(param_1 + lVar1) = 0x28;\n      *(undefined1 *)(param_1 + 0x108) = 0x28;\nLAB_002e5aba:\n      FUN_002e5210(param_1,uVar6,lVar3);\n      lVar1 = *(long *)(param_1 + 0x100);\n      lVar3 = lVar1 + 1;\n      if (lVar1 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar3 = 1;\n        lVar1 = 0;\n      }\n      *(long *)(param_1 + 0x100) = lVar3;\n      *(undefined1 *)(param_1 + lVar1) = 0x29;\n      *(undefined1 *)(param_1 + 0x108) = 0x29;\n      return;\n    }" (if "if") (parenthesized_expression "(lVar3 != 0)" (( "(") (binary_expression "lVar3 != 0" (identifier "lVar3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      lVar2 = lVar1 + 1;\n      if (lVar1 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar3 = *(long *)(param_3 + 4);\n        lVar1 = 0;\n        lVar2 = 1;\n      }\n      *(long *)(param_1 + 0x100) = lVar2;\n      *(undefined1 *)(param_1 + lVar1) = 0x28;\n      *(undefined1 *)(param_1 + 0x108) = 0x28;\nLAB_002e5aba:\n      FUN_002e5210(param_1,uVar6,lVar3);\n      lVar1 = *(long *)(param_1 + 0x100);\n      lVar3 = lVar1 + 1;\n      if (lVar1 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar3 = 1;\n        lVar1 = 0;\n      }\n      *(long *)(param_1 + 0x100) = lVar3;\n      *(undefined1 *)(param_1 + lVar1) = 0x29;\n      *(undefined1 *)(param_1 + 0x108) = 0x29;\n      return;\n    }" ({ "{") (expression_statement "lVar2 = lVar1 + 1;" (assignment_expression "lVar2 = lVar1 + 1" (identifier "lVar2") (= "=") (binary_expression "lVar1 + 1" (identifier "lVar1") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (lVar1 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar3 = *(long *)(param_3 + 4);\n        lVar1 = 0;\n        lVar2 = 1;\n      }" (if "if") (parenthesized_expression "(lVar1 == 0xff)" (( "(") (binary_expression "lVar1 == 0xff" (identifier "lVar1") (== "==") (number_literal "0xff")) () ")")) (compound_statement "{\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar3 = *(long *)(param_3 + 4);\n        lVar1 = 0;\n        lVar2 = 1;\n      }" ({ "{") (expression_statement "*(undefined1 *)(param_1 + 0xff) = 0;" (assignment_expression "*(undefined1 *)(param_1 + 0xff) = 0" (pointer_expression "*(undefined1 *)(param_1 + 0xff)" (* "*") (cast_expression "(undefined1 *)(param_1 + 0xff)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xff)" (( "(") (binary_expression "param_1 + 0xff" (identifier "param_1") (+ "+") (number_literal "0xff")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "(**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));" (call_expression "(**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118))" (parenthesized_expression "(**(code **)(param_1 + 0x110))" (( "(") (pointer_expression "**(code **)(param_1 + 0x110)" (* "*") (pointer_expression "*(code **)(param_1 + 0x110)" (* "*") (cast_expression "(code **)(param_1 + 0x110)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x110)" (( "(") (binary_expression "param_1 + 0x110" (identifier "param_1") (+ "+") (number_literal "0x110")) () ")"))))) () ")")) (argument_list "(param_1,0xff,*(undefined8 *)(param_1 + 0x118))" (( "(") (identifier "param_1") (, ",") (number_literal "0xff") (, ",") (pointer_expression "*(undefined8 *)(param_1 + 0x118)" (* "*") (cast_expression "(undefined8 *)(param_1 + 0x118)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x118)" (( "(") (binary_expression "param_1 + 0x118" (identifier "param_1") (+ "+") (number_literal "0x118")) () ")")))) () ")"))) (; ";")) (expression_statement "*(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;" (assignment_expression "*(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1" (pointer_expression "*(long *)(param_1 + 0x140)" (* "*") (cast_expression "(long *)(param_1 + 0x140)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x140)" (( "(") (binary_expression "param_1 + 0x140" (identifier "param_1") (+ "+") (number_literal "0x140")) () ")")))) (= "=") (binary_expression "*(long *)(param_1 + 0x140) + 1" (pointer_expression "*(long *)(param_1 + 0x140)" (* "*") (cast_expression "(long *)(param_1 + 0x140)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x140)" (( "(") (binary_expression "param_1 + 0x140" (identifier "param_1") (+ "+") (number_literal "0x140")) () ")")))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "lVar3 = *(long *)(param_3 + 4);" (assignment_expression "lVar3 = *(long *)(param_3 + 4)" (identifier "lVar3") (= "=") (pointer_expression "*(long *)(param_3 + 4)" (* "*") (cast_expression "(long *)(param_3 + 4)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 4)" (( "(") (binary_expression "param_3 + 4" (identifier "param_3") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "lVar1 = 0;" (assignment_expression "lVar1 = 0" (identifier "lVar1") (= "=") (number_literal "0")) (; ";")) (expression_statement "lVar2 = 1;" (assignment_expression "lVar2 = 1" (identifier "lVar2") (= "=") (number_literal "1")) (; ";")) (} "}"))) (expression_statement "*(long *)(param_1 + 0x100) = lVar2;" (assignment_expression "*(long *)(param_1 + 0x100) = lVar2" (pointer_expression "*(long *)(param_1 + 0x100)" (* "*") (cast_expression "(long *)(param_1 + 0x100)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x100)" (( "(") (binary_expression "param_1 + 0x100" (identifier "param_1") (+ "+") (number_literal "0x100")) () ")")))) (= "=") (identifier "lVar2")) (; ";")) (expression_statement "*(undefined1 *)(param_1 + lVar1) = 0x28;" (assignment_expression "*(undefined1 *)(param_1 + lVar1) = 0x28" (pointer_expression "*(undefined1 *)(param_1 + lVar1)" (* "*") (cast_expression "(undefined1 *)(param_1 + lVar1)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + lVar1)" (( "(") (binary_expression "param_1 + lVar1" (identifier "param_1") (+ "+") (identifier "lVar1")) () ")")))) (= "=") (number_literal "0x28")) (; ";")) (expression_statement "*(undefined1 *)(param_1 + 0x108) = 0x28;" (assignment_expression "*(undefined1 *)(param_1 + 0x108) = 0x28" (pointer_expression "*(undefined1 *)(param_1 + 0x108)" (* "*") (cast_expression "(undefined1 *)(param_1 + 0x108)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x108)" (( "(") (binary_expression "param_1 + 0x108" (identifier "param_1") (+ "+") (number_literal "0x108")) () ")")))) (= "=") (number_literal "0x28")) (; ";")) (labeled_statement "LAB_002e5aba:\n      FUN_002e5210(param_1,uVar6,lVar3);" (statement_identifier "LAB_002e5aba") (: ":") (expression_statement "FUN_002e5210(param_1,uVar6,lVar3);" (call_expression "FUN_002e5210(param_1,uVar6,lVar3)" (identifier "FUN_002e5210") (argument_list "(param_1,uVar6,lVar3)" (( "(") (identifier "param_1") (, ",") (identifier "uVar6") (, ",") (identifier "lVar3") () ")"))) (; ";"))) (expression_statement "lVar1 = *(long *)(param_1 + 0x100);" (assignment_expression "lVar1 = *(long *)(param_1 + 0x100)" (identifier "lVar1") (= "=") (pointer_expression "*(long *)(param_1 + 0x100)" (* "*") (cast_expression "(long *)(param_1 + 0x100)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x100)" (( "(") (binary_expression "param_1 + 0x100" (identifier "param_1") (+ "+") (number_literal "0x100")) () ")"))))) (; ";")) (expression_statement "lVar3 = lVar1 + 1;" (assignment_expression "lVar3 = lVar1 + 1" (identifier "lVar3") (= "=") (binary_expression "lVar1 + 1" (identifier "lVar1") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (lVar1 == 0xff) {\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar3 = 1;\n        lVar1 = 0;\n      }" (if "if") (parenthesized_expression "(lVar1 == 0xff)" (( "(") (binary_expression "lVar1 == 0xff" (identifier "lVar1") (== "==") (number_literal "0xff")) () ")")) (compound_statement "{\n        *(undefined1 *)(param_1 + 0xff) = 0;\n        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));\n        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;\n        lVar3 = 1;\n        lVar1 = 0;\n      }" ({ "{") (expression_statement "*(undefined1 *)(param_1 + 0xff) = 0;" (assignment_expression "*(undefined1 *)(param_1 + 0xff) = 0" (pointer_expression "*(undefined1 *)(param_1 + 0xff)" (* "*") (cast_expression "(undefined1 *)(param_1 + 0xff)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xff)" (( "(") (binary_expression "param_1 + 0xff" (identifier "param_1") (+ "+") (number_literal "0xff")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "(**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));" (call_expression "(**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118))" (parenthesized_expression "(**(code **)(param_1 + 0x110))" (( "(") (pointer_expression "**(code **)(param_1 + 0x110)" (* "*") (pointer_expression "*(code **)(param_1 + 0x110)" (* "*") (cast_expression "(code **)(param_1 + 0x110)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x110)" (( "(") (binary_expression "param_1 + 0x110" (identifier "param_1") (+ "+") (number_literal "0x110")) () ")"))))) () ")")) (argument_list "(param_1,0xff,*(undefined8 *)(param_1 + 0x118))" (( "(") (identifier "param_1") (, ",") (number_literal "0xff") (, ",") (pointer_expression "*(undefined8 *)(param_1 + 0x118)" (* "*") (cast_expression "(undefined8 *)(param_1 + 0x118)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x118)" (( "(") (binary_expression "param_1 + 0x118" (identifier "param_1") (+ "+") (number_literal "0x118")) () ")")))) () ")"))) (; ";")) (expression_statement "*(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;" (assignment_expression "*(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1" (pointer_expression "*(long *)(param_1 + 0x140)" (* "*") (cast_expression "(long *)(param_1 + 0x140)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x140)" (( "(") (binary_expression "param_1 + 0x140" (identifier "param_1") (+ "+") (number_literal "0x140")) () ")")))) (= "=") (binary_expression "*(long *)(param_1 + 0x140) + 1" (pointer_expression "*(long *)(param_1 + 0x140)" (* "*") (cast_expression "(long *)(param_1 + 0x140)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x140)" (( "(") (binary_expression "param_1 + 0x140" (identifier "param_1") (+ "+") (number_literal "0x140")) () ")")))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "lVar3 = 1;" (assignment_expression "lVar3 = 1" (identifier "lVar3") (= "=") (number_literal "1")) (; ";")) (expression_statement "lVar1 = 0;" (assignment_expression "lVar1 = 0" (identifier "lVar1") (= "=") (number_literal "0")) (; ";")) (} "}"))) (expression_statement "*(long *)(param_1 + 0x100) = lVar3;" (assignment_expression "*(long *)(param_1 + 0x100) = lVar3" (pointer_expression "*(long *)(param_1 + 0x100)" (* "*") (cast_expression "(long *)(param_1 + 0x100)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x100)" (( "(") (binary_expression "param_1 + 0x100" (identifier "param_1") (+ "+") (number_literal "0x100")) () ")")))) (= "=") (identifier "lVar3")) (; ";")) (expression_statement "*(undefined1 *)(param_1 + lVar1) = 0x29;" (assignment_expression "*(undefined1 *)(param_1 + lVar1) = 0x29" (pointer_expression "*(undefined1 *)(param_1 + lVar1)" (* "*") (cast_expression "(undefined1 *)(param_1 + lVar1)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + lVar1)" (( "(") (binary_expression "param_1 + lVar1" (identifier "param_1") (+ "+") (identifier "lVar1")) () ")")))) (= "=") (number_literal "0x29")) (; ";")) (expression_statement "*(undefined1 *)(param_1 + 0x108) = 0x29;" (assignment_expression "*(undefined1 *)(param_1 + 0x108) = 0x29" (pointer_expression "*(undefined1 *)(param_1 + 0x108)" (* "*") (cast_expression "(undefined1 *)(param_1 + 0x108)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x108)" (( "(") (binary_expression "param_1 + 0x108" (identifier "param_1") (+ "+") (number_literal "0x108")) () ")")))) (= "=") (number_literal "0x29")) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}")))) (} "}"))) (return_statement "return;" (return "return") (; ";")) (} "}")))

void function_1(type_1 *dpi,int var_5,type_2 *mod)

{
  void *pvVar1;
  size_t var_4;
  size_t var_3;
  type_2 *var_6;
  char cVar4;
  char *var_2;
  
  switch(mod->type) {
  case DEMANGLE_COMPONENT_TYPED_NAME:
    mod = (mod->u).s_fixed.length;
  case DEMANGLE_COMPONENT_TEMPLATE:
  case DEMANGLE_COMPONENT_TEMPLATE_PARAM:
  case DEMANGLE_COMPONENT_FUNCTION_PARAM:
  case DEMANGLE_COMPONENT_CTOR:
  case DEMANGLE_COMPONENT_DTOR:
  case DEMANGLE_COMPONENT_VTABLE:
  case DEMANGLE_COMPONENT_VTT:
  case DEMANGLE_COMPONENT_CONSTRUCTION_VTABLE:
  case DEMANGLE_COMPONENT_TYPEINFO:
  case DEMANGLE_COMPONENT_TYPEINFO_NAME:
  case DEMANGLE_COMPONENT_TYPEINFO_FN:
  case DEMANGLE_COMPONENT_THUNK:
  case DEMANGLE_COMPONENT_VIRTUAL_THUNK:
  case DEMANGLE_COMPONENT_COVARIANT_THUNK:
  case DEMANGLE_COMPONENT_JAVA_CLASS:
  case DEMANGLE_COMPONENT_GUARD:
  case DEMANGLE_COMPONENT_TLS_INIT:
  case DEMANGLE_COMPONENT_TLS_WRAPPER:
  case DEMANGLE_COMPONENT_REFTEMP:
  case DEMANGLE_COMPONENT_HIDDEN_ALIAS:
  case DEMANGLE_COMPONENT_SUB_STD:
  case DEMANGLE_COMPONENT_BUILTIN_TYPE:
  case DEMANGLE_COMPONENT_VENDOR_TYPE:
  case DEMANGLE_COMPONENT_FUNCTION_TYPE:
  case DEMANGLE_COMPONENT_ARRAY_TYPE:
  case DEMANGLE_COMPONENT_FIXED_TYPE:
  case DEMANGLE_COMPONENT_ARGLIST:
  case DEMANGLE_COMPONENT_TEMPLATE_ARGLIST:
  case DEMANGLE_COMPONENT_INITIALIZER_LIST:
  case DEMANGLE_COMPONENT_OPERATOR:
  case DEMANGLE_COMPONENT_EXTENDED_OPERATOR:
  case DEMANGLE_COMPONENT_CAST:
  case DEMANGLE_COMPONENT_CONVERSION:
  case DEMANGLE_COMPONENT_NULLARY:
  case DEMANGLE_COMPONENT_UNARY:
  case DEMANGLE_COMPONENT_BINARY:
  case DEMANGLE_COMPONENT_BINARY_ARGS:
  case DEMANGLE_COMPONENT_TRINARY:
  case DEMANGLE_COMPONENT_TRINARY_ARG1:
  case DEMANGLE_COMPONENT_TRINARY_ARG2:
  case DEMANGLE_COMPONENT_LITERAL:
  case DEMANGLE_COMPONENT_LITERAL_NEG:
  case DEMANGLE_COMPONENT_JAVA_RESOURCE:
  case DEMANGLE_COMPONENT_COMPOUND_NAME:
  case DEMANGLE_COMPONENT_CHARACTER:
  case DEMANGLE_COMPONENT_NUMBER:
  case DEMANGLE_COMPONENT_DECLTYPE:
  case DEMANGLE_COMPONENT_GLOBAL_CONSTRUCTORS:
  case DEMANGLE_COMPONENT_GLOBAL_DESTRUCTORS:
  case DEMANGLE_COMPONENT_LAMBDA:
  case DEMANGLE_COMPONENT_DEFAULT_ARG:
  case DEMANGLE_COMPONENT_UNNAMED_TYPE:
  case DEMANGLE_COMPONENT_TRANSACTION_CLONE:
  case DEMANGLE_COMPONENT_NONTRANSACTION_CLONE:
  case DEMANGLE_COMPONENT_PACK_EXPANSION:
  case DEMANGLE_COMPONENT_TAGGED_NAME:
  case DEMANGLE_COMPONENT_CLONE:
switchD_002e52d3_caseD_4:
    var_1(dpi,var_5,mod);
    return;
  case DEMANGLE_COMPONENT_RESTRICT:
  case DEMANGLE_COMPONENT_RESTRICT_THIS:
    var_2 = " restrict";
    cVar4 = ' ';
    var_3 = dpi->len;
    while( true ) {
      var_2 = var_2 + 1;
      if (var_3 == 0xff) {
        pvVar1 = dpi->opaque;
        dpi->buf[0xff] = '\0';
        (*dpi->callback)(dpi->buf,0xff,pvVar1);
        dpi->flush_count = dpi->flush_count + 1;
        var_4 = 1;
        var_3 = 0;
      }
      else {
        var_4 = var_3 + 1;
      }
      dpi->len = var_4;
      dpi->buf[var_3] = cVar4;
      dpi->last_char = cVar4;
      if (var_2 == "") break;
      cVar4 = *var_2;
      var_3 = var_4;
    }
    break;
  case DEMANGLE_COMPONENT_VOLATILE:
  case DEMANGLE_COMPONENT_VOLATILE_THIS:
    var_2 = "volatile";
    cVar4 = ' ';
    var_3 = dpi->len;
    while( true ) {
      if (var_3 == 0xff) {
        pvVar1 = dpi->opaque;
        dpi->buf[0xff] = '\0';
        (*dpi->callback)(dpi->buf,0xff,pvVar1);
        dpi->flush_count = dpi->flush_count + 1;
        var_4 = 1;
        var_3 = 0;
      }
      else {
        var_4 = var_3 + 1;
      }
      dpi->len = var_4;
      dpi->buf[var_3] = cVar4;
      dpi->last_char = cVar4;
      if (var_2 == "") break;
      cVar4 = *var_2;
      var_2 = var_2 + 1;
      var_3 = var_4;
    }
    break;
  case DEMANGLE_COMPONENT_CONST:
  case DEMANGLE_COMPONENT_CONST_THIS:
    var_2 = " const";
    cVar4 = ' ';
    var_3 = dpi->len;
    while( true ) {
      if (var_3 == 0xff) {
        pvVar1 = dpi->opaque;
        dpi->buf[0xff] = '\0';
        (*dpi->callback)(dpi->buf,0xff,pvVar1);
        dpi->flush_count = dpi->flush_count + 1;
        var_4 = 1;
        var_3 = 0;
      }
      else {
        var_4 = var_3 + 1;
      }
      var_2 = var_2 + 1;
      dpi->len = var_4;
      dpi->buf[var_3] = cVar4;
      dpi->last_char = cVar4;
      if (var_2 == "") break;
      cVar4 = *var_2;
      var_3 = var_4;
    }
    break;
  case DEMANGLE_COMPONENT_REFERENCE_THIS:
    if (dpi->len == 0xff) {
      dpi->buf[0xff] = '\0';
      (*dpi->callback)(dpi->buf,0xff,dpi->opaque);
      dpi->flush_count = dpi->flush_count + 1;
      dpi->len = 0;
    }
    var_4 = dpi->len;
    var_3 = var_4 + 1;
    dpi->len = var_3;
    dpi->buf[var_4] = ' ';
    dpi->last_char = ' ';
    goto LAB_002e5807;
  case DEMANGLE_COMPONENT_RVALUE_REFERENCE_THIS:
    if (dpi->len == 0xff) {
      dpi->buf[0xff] = '\0';
      (*dpi->callback)(dpi->buf,0xff,dpi->opaque);
      dpi->flush_count = dpi->flush_count + 1;
      dpi->len = 0;
    }
    var_4 = dpi->len;
    var_3 = var_4 + 1;
    dpi->len = var_3;
    dpi->buf[var_4] = ' ';
    dpi->last_char = ' ';
    goto LAB_002e5867;
  case DEMANGLE_COMPONENT_VENDOR_TYPE_QUAL:
    if (dpi->len == 0xff) {
      dpi->buf[0xff] = '\0';
      (*dpi->callback)(dpi->buf,0xff,dpi->opaque);
      dpi->flush_count = dpi->flush_count + 1;
      dpi->len = 0;
    }
    var_3 = dpi->len;
    dpi->len = var_3 + 1;
    dpi->buf[var_3] = ' ';
    dpi->last_char = ' ';
    mod = (mod->u).s_extended_operator.name;
    goto switchD_002e52d3_caseD_4;
  case DEMANGLE_COMPONENT_POINTER:
    if ((var_5 & 4U) == 0) {
      if (dpi->len == 0xff) {
        dpi->buf[0xff] = '\0';
        (*dpi->callback)(dpi->buf,0xff,dpi->opaque);
        dpi->flush_count = dpi->flush_count + 1;
        dpi->len = 0;
      }
      var_3 = dpi->len;
      dpi->len = var_3 + 1;
      dpi->buf[var_3] = '*';
      dpi->last_char = '*';
    }
    break;
  case DEMANGLE_COMPONENT_REFERENCE:
    var_3 = dpi->len;
LAB_002e5807:
    var_4 = var_3 + 1;
    if (var_3 == 0xff) {
      pvVar1 = dpi->opaque;
      dpi->buf[0xff] = '\0';
      (*dpi->callback)(dpi->buf,0xff,pvVar1);
      dpi->flush_count = dpi->flush_count + 1;
      var_4 = 1;
      var_3 = 0;
    }
    dpi->len = var_4;
    dpi->buf[var_3] = '&';
    dpi->last_char = '&';
    break;
  case DEMANGLE_COMPONENT_RVALUE_REFERENCE:
    var_3 = dpi->len;
LAB_002e5867:
    var_2 = "&&";
    cVar4 = '&';
    while( true ) {
      if (var_3 == 0xff) {
        pvVar1 = dpi->opaque;
        dpi->buf[0xff] = '\0';
        (*dpi->callback)(dpi->buf,0xff,pvVar1);
        dpi->flush_count = dpi->flush_count + 1;
        var_4 = 1;
        var_3 = 0;
      }
      else {
        var_4 = var_3 + 1;
      }
      var_2 = var_2 + 1;
      dpi->len = var_4;
      dpi->buf[var_3] = cVar4;
      dpi->last_char = cVar4;
      if (var_2 == "") break;
      cVar4 = *var_2;
      var_3 = var_4;
    }
    break;
  case DEMANGLE_COMPONENT_COMPLEX:
    var_2 = "complex ";
    cVar4 = 'c';
    var_3 = dpi->len;
    while( true ) {
      if (var_3 == 0xff) {
        pvVar1 = dpi->opaque;
        dpi->buf[0xff] = '\0';
        (*dpi->callback)(dpi->buf,0xff,pvVar1);
        dpi->flush_count = dpi->flush_count + 1;
        var_4 = 1;
        var_3 = 0;
      }
      else {
        var_4 = var_3 + 1;
      }
      var_2 = var_2 + 1;
      dpi->len = var_4;
      dpi->buf[var_3] = cVar4;
      dpi->last_char = cVar4;
      if (var_2 == "") break;
      cVar4 = *var_2;
      var_3 = var_4;
    }
    break;
  case DEMANGLE_COMPONENT_IMAGINARY:
    var_2 = "imaginary ";
    cVar4 = 'i';
    var_3 = dpi->len;
    while( true ) {
      var_2 = var_2 + 1;
      if (var_3 == 0xff) {
        pvVar1 = dpi->opaque;
        dpi->buf[0xff] = '\0';
        (*dpi->callback)(dpi->buf,0xff,pvVar1);
        dpi->flush_count = dpi->flush_count + 1;
        var_4 = 1;
        var_3 = 0;
      }
      else {
        var_4 = var_3 + 1;
      }
      dpi->len = var_4;
      dpi->buf[var_3] = cVar4;
      dpi->last_char = cVar4;
      if (var_2 == "") break;
      cVar4 = *var_2;
      var_3 = var_4;
    }
    break;
  case DEMANGLE_COMPONENT_PTRMEM_TYPE:
    if (dpi->last_char != '(') {
      var_4 = dpi->len;
      var_3 = var_4 + 1;
      if (var_4 == 0xff) {
        pvVar1 = dpi->opaque;
        dpi->buf[0xff] = '\0';
        (*dpi->callback)(dpi->buf,0xff,pvVar1);
        dpi->flush_count = dpi->flush_count + 1;
        var_3 = 1;
        var_4 = 0;
      }
      dpi->len = var_3;
      dpi->buf[var_4] = ' ';
      dpi->last_char = ' ';
    }
    var_2 = "::*";
    cVar4 = ':';
    var_1(dpi,var_5,(mod->u).s_fixed.length);
    var_3 = dpi->len;
    while( true ) {
      if (var_3 == 0xff) {
        pvVar1 = dpi->opaque;
        dpi->buf[0xff] = '\0';
        (*dpi->callback)(dpi->buf,0xff,pvVar1);
        dpi->flush_count = dpi->flush_count + 1;
        var_4 = 1;
        var_3 = 0;
      }
      else {
        var_4 = var_3 + 1;
      }
      var_2 = var_2 + 1;
      dpi->len = var_4;
      dpi->buf[var_3] = cVar4;
      dpi->last_char = cVar4;
      if (var_2 == "") break;
      cVar4 = *var_2;
      var_3 = var_4;
    }
    break;
  case DEMANGLE_COMPONENT_VECTOR_TYPE:
    var_2 = " __vector(";
    cVar4 = ' ';
    var_3 = dpi->len;
    while( true ) {
      var_2 = var_2 + 1;
      if (var_3 == 0xff) {
        pvVar1 = dpi->opaque;
        dpi->buf[0xff] = '\0';
        (*dpi->callback)(dpi->buf,0xff,pvVar1);
        dpi->flush_count = dpi->flush_count + 1;
        var_4 = 1;
        var_3 = 0;
      }
      else {
        var_4 = var_3 + 1;
      }
      dpi->len = var_4;
      dpi->buf[var_3] = cVar4;
      dpi->last_char = cVar4;
      if (var_2 == "") break;
      cVar4 = *var_2;
      var_3 = var_4;
    }
    var_6 = (mod->u).s_fixed.length;
    goto LAB_002e5aba;
  case DEMANGLE_COMPONENT_TRANSACTION_SAFE:
    var_2 = " transaction_safe";
    cVar4 = ' ';
    var_3 = dpi->len;
    while( true ) {
      var_2 = var_2 + 1;
      if (var_3 == 0xff) {
        pvVar1 = dpi->opaque;
        dpi->buf[0xff] = '\0';
        (*dpi->callback)(dpi->buf,0xff,pvVar1);
        dpi->flush_count = dpi->flush_count + 1;
        var_4 = 1;
        var_3 = 0;
      }
      else {
        var_4 = var_3 + 1;
      }
      dpi->len = var_4;
      dpi->buf[var_3] = cVar4;
      dpi->last_char = cVar4;
      if (var_2 == "") break;
      cVar4 = *var_2;
      var_3 = var_4;
    }
    break;
  case DEMANGLE_COMPONENT_NOEXCEPT:
    var_2 = " noexcept";
    cVar4 = ' ';
    var_3 = dpi->len;
    while( true ) {
      var_2 = var_2 + 1;
      if (var_3 == 0xff) {
        pvVar1 = dpi->opaque;
        dpi->buf[0xff] = '\0';
        (*dpi->callback)(dpi->buf,0xff,pvVar1);
        dpi->flush_count = dpi->flush_count + 1;
        var_4 = 1;
        var_3 = 0;
      }
      else {
        var_4 = var_3 + 1;
      }
      dpi->len = var_4;
      dpi->buf[var_3] = cVar4;
      dpi->last_char = cVar4;
      if (var_2 == "") break;
      cVar4 = *var_2;
      var_3 = var_4;
    }
    goto LAB_002e5a60;
  case DEMANGLE_COMPONENT_THROW_SPEC:
    var_2 = " throw";
    cVar4 = ' ';
    var_3 = dpi->len;
    while( true ) {
      if (var_3 == 0xff) {
        pvVar1 = dpi->opaque;
        dpi->buf[0xff] = '\0';
        (*dpi->callback)(dpi->buf,0xff,pvVar1);
        dpi->flush_count = dpi->flush_count + 1;
        var_4 = 1;
        var_3 = 0;
      }
      else {
        var_4 = var_3 + 1;
      }
      var_2 = var_2 + 1;
      dpi->len = var_4;
      dpi->buf[var_3] = cVar4;
      dpi->last_char = cVar4;
      if (var_2 == "") break;
      cVar4 = *var_2;
      var_3 = var_4;
    }
LAB_002e5a60:
    var_6 = (mod->u).s_extended_operator.name;
    if (var_6 != (type_2 *)0x0) {
      var_3 = var_4 + 1;
      if (var_4 == 0xff) {
        pvVar1 = dpi->opaque;
        dpi->buf[0xff] = '\0';
        (*dpi->callback)(dpi->buf,0xff,pvVar1);
        dpi->flush_count = dpi->flush_count + 1;
        var_6 = (mod->u).s_extended_operator.name;
        var_4 = 0;
        var_3 = 1;
      }
      dpi->len = var_3;
      dpi->buf[var_4] = '(';
      dpi->last_char = '(';
LAB_002e5aba:
      var_1(dpi,var_5,var_6);
      var_4 = dpi->len;
      var_3 = var_4 + 1;
      if (var_4 == 0xff) {
        pvVar1 = dpi->opaque;
        dpi->buf[0xff] = '\0';
        (*dpi->callback)(dpi->buf,0xff,pvVar1);
        dpi->flush_count = dpi->flush_count + 1;
        var_3 = 1;
        var_4 = 0;
      }
      dpi->len = var_3;
      dpi->buf[var_4] = ')';
      dpi->last_char = ')';
      return;
    }
    break;
  default:
    var_1(dpi,var_5,mod);
    return;
  }
  return;
}


(translation_unit (function_definition type: (primitive_type) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (sized_type_specifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))))) body: (compound_statement (declaration type: (sized_type_specifier) declarator: (identifier)) (declaration type: (sized_type_specifier) declarator: (identifier)) (declaration type: (sized_type_specifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal)))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (return_statement))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (switch_statement condition: (parenthesized_expression (pointer_expression argument: (identifier))) body: (compound_statement (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (case_statement (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier))))) (return_statement)) (case_statement value: (number_literal)) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (string_literal (string_content)))) (expression_statement (assignment_expression left: (identifier) right: (char_literal (character)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (while_statement condition: (parenthesized_expression (true)) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (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: (sized_type_specifier) 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: (sized_type_specifier) 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: (sized_type_specifier) 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))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (string_literal))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (break_statement)) (case_statement value: (number_literal)) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (string_literal (string_content)))) (expression_statement (assignment_expression left: (identifier) right: (char_literal (character)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) 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: (sized_type_specifier) 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: (sized_type_specifier) 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: (sized_type_specifier) 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))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (string_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))))) (break_statement)) (case_statement value: (number_literal)) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (string_literal (string_content)))) (expression_statement (assignment_expression left: (identifier) right: (char_literal (character)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) 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: (sized_type_specifier) 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: (sized_type_specifier) 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: (sized_type_specifier) 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))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (string_literal))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (break_statement)) (case_statement value: (number_literal) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (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: (sized_type_specifier) 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: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) 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: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) 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))) (goto_statement label: (statement_identifier))) (case_statement value: (number_literal) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (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: (sized_type_specifier) 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: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) 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: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) 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))) (goto_statement label: (statement_identifier))) (case_statement value: (number_literal) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (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: (sized_type_specifier) 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: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) 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: (sized_type_specifier) 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: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (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: (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: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (goto_statement label: (statement_identifier))) (case_statement value: (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 (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (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: (sized_type_specifier) 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: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) 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: (sized_type_specifier) 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: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (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: (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))))) (break_statement)) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (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: (sized_type_specifier) 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: (sized_type_specifier) 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: (sized_type_specifier) 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))) (break_statement)) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier))))) (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: (sized_type_specifier) 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: (sized_type_specifier) 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: (sized_type_specifier) 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: (pointer_expression argument: (identifier)))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (break_statement)) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (string_literal (string_content)))) (expression_statement (assignment_expression left: (identifier) right: (char_literal (character)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) 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: (sized_type_specifier) 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: (sized_type_specifier) 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: (sized_type_specifier) 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))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (string_literal))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (break_statement)) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (string_literal (string_content)))) (expression_statement (assignment_expression left: (identifier) right: (char_literal (character)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (while_statement condition: (parenthesized_expression (true)) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (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: (sized_type_specifier) 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: (sized_type_specifier) 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: (sized_type_specifier) 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))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (string_literal))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (break_statement)) (case_statement value: (number_literal) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (char_literal (character)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (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: (sized_type_specifier) 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: (sized_type_specifier) 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: (sized_type_specifier) 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: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) 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: (sized_type_specifier) 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: (sized_type_specifier) 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: (sized_type_specifier) 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: (pointer_expression argument: (identifier)))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (break_statement)) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (string_literal (string_content)))) (expression_statement (assignment_expression left: (identifier) right: (char_literal (character)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (while_statement condition: (parenthesized_expression (true)) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (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: (sized_type_specifier) 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: (sized_type_specifier) 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: (sized_type_specifier) 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))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (string_literal))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (goto_statement label: (statement_identifier))) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (string_literal (string_content)))) (expression_statement (assignment_expression left: (identifier) right: (char_literal (character)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (while_statement condition: (parenthesized_expression (true)) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (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: (sized_type_specifier) 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: (sized_type_specifier) 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: (sized_type_specifier) 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))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (string_literal))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (break_statement)) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (string_literal (string_content)))) (expression_statement (assignment_expression left: (identifier) right: (char_literal (character)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (while_statement condition: (parenthesized_expression (true)) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (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: (sized_type_specifier) 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: (sized_type_specifier) 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: (sized_type_specifier) 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))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (string_literal))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (goto_statement label: (statement_identifier))) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (string_literal (string_content)))) (expression_statement (assignment_expression left: (identifier) right: (char_literal (character)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) 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: (sized_type_specifier) 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: (sized_type_specifier) 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: (sized_type_specifier) 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))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (string_literal))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) 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: (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: (sized_type_specifier) 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: (sized_type_specifier) 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: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) 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: (sized_type_specifier) 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))) (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (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: (sized_type_specifier) 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: (sized_type_specifier) 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: (sized_type_specifier) 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))) (return_statement)))))) (return_statement))))

void MASKED(long param_1,ulong param_2,int *param_3)

{
  long lVar1;
  long lVar2;
  long lVar3;
  undefined *puVar4;
  undefined1 uVar5;
  ulong uVar6;
  char *pcVar7;
  char cVar8;
  
  if (0x4c < *param_3 - 3U) {
    FUN_002e5210();
    return;
  }
  uVar6 = param_2 & 0xffffffff;
  switch(*param_3) {
  case 3:
    param_3 = *(int **)(param_3 + 2);
  default:
switchD_002e52d3_caseD_4:
    FUN_002e5210(param_1,param_2,param_3);
    return;
  case 0x19:
  case 0x1c:
    pcVar7 = " restrict";
    cVar8 = ' ';
    lVar3 = *(long *)(param_1 + 0x100);
    while( true ) {
      pcVar7 = pcVar7 + 1;
      if (lVar3 == 0xff) {
        *(undefined1 *)(param_1 + 0xff) = 0;
        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));
        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;
        lVar1 = 1;
        lVar3 = 0;
      }
      else {
        lVar1 = lVar3 + 1;
      }
      *(long *)(param_1 + 0x100) = lVar1;
      *(char *)(param_1 + lVar3) = cVar8;
      *(char *)(param_1 + 0x108) = cVar8;
      if (pcVar7 == "") break;
      cVar8 = *pcVar7;
      lVar3 = lVar1;
    }
    break;
  case 0x1a:
  case 0x1d:
    pcVar7 = "volatile";
    cVar8 = ' ';
    lVar3 = *(long *)(param_1 + 0x100);
    while( true ) {
      if (lVar3 == 0xff) {
        *(undefined1 *)(param_1 + 0xff) = 0;
        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));
        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;
        lVar1 = 1;
        lVar3 = 0;
      }
      else {
        lVar1 = lVar3 + 1;
      }
      *(long *)(param_1 + 0x100) = lVar1;
      *(char *)(param_1 + lVar3) = cVar8;
      *(char *)(param_1 + 0x108) = cVar8;
      if (pcVar7 == "") break;
      cVar8 = *pcVar7;
      pcVar7 = pcVar7 + 1;
      lVar3 = lVar1;
    }
    break;
  case 0x1b:
  case 0x1e:
    pcVar7 = " const";
    cVar8 = ' ';
    lVar3 = *(long *)(param_1 + 0x100);
    while( true ) {
      if (lVar3 == 0xff) {
        *(undefined1 *)(param_1 + 0xff) = 0;
        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));
        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;
        lVar1 = 1;
        lVar3 = 0;
      }
      else {
        lVar1 = lVar3 + 1;
      }
      pcVar7 = pcVar7 + 1;
      *(long *)(param_1 + 0x100) = lVar1;
      *(char *)(param_1 + lVar3) = cVar8;
      *(char *)(param_1 + 0x108) = cVar8;
      if (pcVar7 == "") break;
      cVar8 = *pcVar7;
      lVar3 = lVar1;
    }
    break;
  case 0x1f:
    if (*(long *)(param_1 + 0x100) == 0xff) {
      *(undefined1 *)(param_1 + 0xff) = 0;
      (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));
      *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;
      *(undefined8 *)(param_1 + 0x100) = 0;
    }
    lVar1 = *(long *)(param_1 + 0x100);
    lVar3 = lVar1 + 1;
    *(long *)(param_1 + 0x100) = lVar3;
    *(undefined1 *)(param_1 + lVar1) = 0x20;
    *(undefined1 *)(param_1 + 0x108) = 0x20;
    goto LAB_002e5807;
  case 0x20:
    if (*(long *)(param_1 + 0x100) == 0xff) {
      *(undefined1 *)(param_1 + 0xff) = 0;
      (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));
      *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;
      *(undefined8 *)(param_1 + 0x100) = 0;
    }
    lVar1 = *(long *)(param_1 + 0x100);
    lVar3 = lVar1 + 1;
    *(long *)(param_1 + 0x100) = lVar3;
    *(undefined1 *)(param_1 + lVar1) = 0x20;
    *(undefined1 *)(param_1 + 0x108) = 0x20;
    goto LAB_002e5867;
  case 0x21:
    if (*(long *)(param_1 + 0x100) == 0xff) {
      *(undefined1 *)(param_1 + 0xff) = 0;
      (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));
      *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;
      *(undefined8 *)(param_1 + 0x100) = 0;
    }
    lVar3 = *(long *)(param_1 + 0x100);
    *(long *)(param_1 + 0x100) = lVar3 + 1;
    *(undefined1 *)(param_1 + lVar3) = 0x20;
    *(undefined1 *)(param_1 + 0x108) = 0x20;
    param_3 = *(int **)(param_3 + 4);
    param_2 = uVar6;
    goto switchD_002e52d3_caseD_4;
  case 0x22:
    if ((param_2 & 4) == 0) {
      if (*(long *)(param_1 + 0x100) == 0xff) {
        *(undefined1 *)(param_1 + 0xff) = 0;
        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));
        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;
        *(undefined8 *)(param_1 + 0x100) = 0;
      }
      lVar3 = *(long *)(param_1 + 0x100);
      *(long *)(param_1 + 0x100) = lVar3 + 1;
      *(undefined1 *)(param_1 + lVar3) = 0x2a;
      *(undefined1 *)(param_1 + 0x108) = 0x2a;
    }
    break;
  case 0x23:
    lVar3 = *(long *)(param_1 + 0x100);
LAB_002e5807:
    lVar1 = lVar3 + 1;
    if (lVar3 == 0xff) {
      *(undefined1 *)(param_1 + 0xff) = 0;
      (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));
      *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;
      lVar1 = 1;
      lVar3 = 0;
    }
    *(long *)(param_1 + 0x100) = lVar1;
    *(undefined1 *)(param_1 + lVar3) = 0x26;
    *(undefined1 *)(param_1 + 0x108) = 0x26;
    break;
  case 0x24:
    lVar3 = *(long *)(param_1 + 0x100);
LAB_002e5867:
    puVar4 = &DAT_003a6db5;
    uVar5 = 0x26;
    while( true ) {
      if (lVar3 == 0xff) {
        *(undefined1 *)(param_1 + 0xff) = 0;
        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));
        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;
        lVar1 = 1;
        lVar3 = 0;
      }
      else {
        lVar1 = lVar3 + 1;
      }
      puVar4 = puVar4 + 1;
      *(long *)(param_1 + 0x100) = lVar1;
      *(undefined1 *)(param_1 + lVar3) = uVar5;
      *(undefined1 *)(param_1 + 0x108) = uVar5;
      if (puVar4 == &DAT_003a6db7) break;
      uVar5 = *puVar4;
      lVar3 = lVar1;
    }
    break;
  case 0x25:
    pcVar7 = "complex ";
    cVar8 = 'c';
    lVar3 = *(long *)(param_1 + 0x100);
    while( true ) {
      if (lVar3 == 0xff) {
        *(undefined1 *)(param_1 + 0xff) = 0;
        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));
        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;
        lVar1 = 1;
        lVar3 = 0;
      }
      else {
        lVar1 = lVar3 + 1;
      }
      pcVar7 = pcVar7 + 1;
      *(long *)(param_1 + 0x100) = lVar1;
      *(char *)(param_1 + lVar3) = cVar8;
      *(char *)(param_1 + 0x108) = cVar8;
      if (pcVar7 == "") break;
      cVar8 = *pcVar7;
      lVar3 = lVar1;
    }
    break;
  case 0x26:
    pcVar7 = "imaginary ";
    cVar8 = 'i';
    lVar3 = *(long *)(param_1 + 0x100);
    while( true ) {
      pcVar7 = pcVar7 + 1;
      if (lVar3 == 0xff) {
        *(undefined1 *)(param_1 + 0xff) = 0;
        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));
        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;
        lVar1 = 1;
        lVar3 = 0;
      }
      else {
        lVar1 = lVar3 + 1;
      }
      *(long *)(param_1 + 0x100) = lVar1;
      *(char *)(param_1 + lVar3) = cVar8;
      *(char *)(param_1 + 0x108) = cVar8;
      if (pcVar7 == "") break;
      cVar8 = *pcVar7;
      lVar3 = lVar1;
    }
    break;
  case 0x2b:
    if (*(char *)(param_1 + 0x108) != '(') {
      lVar1 = *(long *)(param_1 + 0x100);
      lVar3 = lVar1 + 1;
      if (lVar1 == 0xff) {
        *(undefined1 *)(param_1 + 0xff) = 0;
        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));
        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;
        lVar3 = 1;
        lVar1 = 0;
      }
      *(long *)(param_1 + 0x100) = lVar3;
      *(undefined1 *)(param_1 + lVar1) = 0x20;
      *(undefined1 *)(param_1 + 0x108) = 0x20;
    }
    puVar4 = &DAT_003a9d5a;
    uVar5 = 0x3a;
    FUN_002e5210(param_1,uVar6,*(undefined8 *)(param_3 + 2));
    lVar3 = *(long *)(param_1 + 0x100);
    while( true ) {
      if (lVar3 == 0xff) {
        *(undefined1 *)(param_1 + 0xff) = 0;
        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));
        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;
        lVar1 = 1;
        lVar3 = 0;
      }
      else {
        lVar1 = lVar3 + 1;
      }
      puVar4 = puVar4 + 1;
      *(long *)(param_1 + 0x100) = lVar1;
      *(undefined1 *)(param_1 + lVar3) = uVar5;
      *(undefined1 *)(param_1 + 0x108) = uVar5;
      if (puVar4 == &DAT_003a9d5d) break;
      uVar5 = *puVar4;
      lVar3 = lVar1;
    }
    break;
  case 0x2d:
    pcVar7 = " __vector(";
    cVar8 = ' ';
    lVar3 = *(long *)(param_1 + 0x100);
    while( true ) {
      pcVar7 = pcVar7 + 1;
      if (lVar3 == 0xff) {
        *(undefined1 *)(param_1 + 0xff) = 0;
        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));
        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;
        lVar1 = 1;
        lVar3 = 0;
      }
      else {
        lVar1 = lVar3 + 1;
      }
      *(long *)(param_1 + 0x100) = lVar1;
      *(char *)(param_1 + lVar3) = cVar8;
      *(char *)(param_1 + 0x108) = cVar8;
      if (pcVar7 == "") break;
      cVar8 = *pcVar7;
      lVar3 = lVar1;
    }
    lVar3 = *(long *)(param_3 + 2);
    goto LAB_002e5aba;
  case 0x4c:
    pcVar7 = " transaction_safe";
    cVar8 = ' ';
    lVar3 = *(long *)(param_1 + 0x100);
    while( true ) {
      pcVar7 = pcVar7 + 1;
      if (lVar3 == 0xff) {
        *(undefined1 *)(param_1 + 0xff) = 0;
        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));
        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;
        lVar1 = 1;
        lVar3 = 0;
      }
      else {
        lVar1 = lVar3 + 1;
      }
      *(long *)(param_1 + 0x100) = lVar1;
      *(char *)(param_1 + lVar3) = cVar8;
      *(char *)(param_1 + 0x108) = cVar8;
      if (pcVar7 == "") break;
      cVar8 = *pcVar7;
      lVar3 = lVar1;
    }
    break;
  case 0x4e:
    pcVar7 = " noexcept";
    cVar8 = ' ';
    lVar3 = *(long *)(param_1 + 0x100);
    while( true ) {
      pcVar7 = pcVar7 + 1;
      if (lVar3 == 0xff) {
        *(undefined1 *)(param_1 + 0xff) = 0;
        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));
        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;
        lVar1 = 1;
        lVar3 = 0;
      }
      else {
        lVar1 = lVar3 + 1;
      }
      *(long *)(param_1 + 0x100) = lVar1;
      *(char *)(param_1 + lVar3) = cVar8;
      *(char *)(param_1 + 0x108) = cVar8;
      if (pcVar7 == "") break;
      cVar8 = *pcVar7;
      lVar3 = lVar1;
    }
    goto LAB_002e5a60;
  case 0x4f:
    pcVar7 = " throw";
    cVar8 = ' ';
    lVar3 = *(long *)(param_1 + 0x100);
    while( true ) {
      if (lVar3 == 0xff) {
        *(undefined1 *)(param_1 + 0xff) = 0;
        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));
        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;
        lVar1 = 1;
        lVar3 = 0;
      }
      else {
        lVar1 = lVar3 + 1;
      }
      pcVar7 = pcVar7 + 1;
      *(long *)(param_1 + 0x100) = lVar1;
      *(char *)(param_1 + lVar3) = cVar8;
      *(char *)(param_1 + 0x108) = cVar8;
      if (pcVar7 == "") break;
      cVar8 = *pcVar7;
      lVar3 = lVar1;
    }
LAB_002e5a60:
    lVar3 = *(long *)(param_3 + 4);
    if (lVar3 != 0) {
      lVar2 = lVar1 + 1;
      if (lVar1 == 0xff) {
        *(undefined1 *)(param_1 + 0xff) = 0;
        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));
        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;
        lVar3 = *(long *)(param_3 + 4);
        lVar1 = 0;
        lVar2 = 1;
      }
      *(long *)(param_1 + 0x100) = lVar2;
      *(undefined1 *)(param_1 + lVar1) = 0x28;
      *(undefined1 *)(param_1 + 0x108) = 0x28;
LAB_002e5aba:
      FUN_002e5210(param_1,uVar6,lVar3);
      lVar1 = *(long *)(param_1 + 0x100);
      lVar3 = lVar1 + 1;
      if (lVar1 == 0xff) {
        *(undefined1 *)(param_1 + 0xff) = 0;
        (**(code **)(param_1 + 0x110))(param_1,0xff,*(undefined8 *)(param_1 + 0x118));
        *(long *)(param_1 + 0x140) = *(long *)(param_1 + 0x140) + 1;
        lVar3 = 1;
        lVar1 = 0;
      }
      *(long *)(param_1 + 0x100) = lVar3;
      *(undefined1 *)(param_1 + lVar1) = 0x29;
      *(undefined1 *)(param_1 + 0x108) = 0x29;
      return;
    }
  }
  return;
}

