
/* std::time_get<wchar_t, std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >
   >::get(std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >,
   std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >, std::ios_base&,
   std::_Ios_Iostate&, tm*, wchar_t const*, wchar_t const*) const */

void std::time_get<wchar_t,std::istreambuf_iterator<wchar_t,std::char_traits<wchar_t>>>::get
               (undefined4 *param_1,int *param_2,int *param_3,int param_4,int *param_5,int param_6,
               int param_7,uint *param_8,undefined4 param_9,undefined4 *param_10,
               undefined4 *param_11)

{
  bool bVar1;
  ctype *pcVar2;
  int iVar3;
  int iVar4;
  int iVar5;
  uint uVar6;
  int *piVar7;
  undefined4 *puVar8;
  code *pcVar9;
  undefined4 local_60;
  int local_5c;
  int local_58;
  undefined4 local_54;
  int *local_50;
  int local_4c;
  int *local_48;
  int local_44;
  int *local_40;
  int local_3c;
  code *local_38;
  int local_34;
  locale *local_30;
  undefined4 *local_2c;
  
  local_30 = (locale *)(param_7 + 0x6c);
  pcVar2 = use_facet<std::ctype<wchar_t>>(local_30);
  *param_8 = 0;
  local_38 = (code *)PTR_do_get_00433d80;
  if (param_10 != param_11) {
    local_2c = &local_60;
    do {
      iVar3 = param_4;
      if ((param_3 != (int *)0x0) && (param_4 == -1)) {
        if ((int *)param_3[2] < (int *)param_3[3]) {
          iVar3 = *(int *)param_3[2];
          if (iVar3 == -1) {
            param_3 = (int *)0x0;
          }
        }
        else {
          iVar3 = (**(code **)(*param_3 + 0x24))(param_3);
          if (iVar3 == -1) {
            param_3 = (int *)0x0;
          }
        }
      }
      if ((param_5 == (int *)0x0) || (param_6 != -1)) {
        bVar1 = param_6 == -1;
      }
      else {
        if ((int *)param_5[2] < (int *)param_5[3]) {
          iVar4 = *(int *)param_5[2];
          if (iVar4 == -1) {
            param_5 = (int *)0x0;
          }
        }
        else {
          iVar4 = (**(code **)(*param_5 + 0x24))(param_5);
          if (iVar4 == -1) {
            param_5 = (int *)0x0;
          }
        }
        bVar1 = iVar4 == -1;
      }
      if (bVar1 == (iVar3 == -1)) {
        *param_8 = 6;
        *param_1 = param_3;
        param_1[1] = param_4;
        return;
      }
      iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,*param_10,0);
      if (iVar3 == 0x25) {
        puVar8 = param_10 + 1;
        if (param_11 == puVar8) goto LAB_0034254c;
        iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,param_10[1],0);
        if ((iVar3 == 0x45) || (iVar3 == 0x4f)) {
          puVar8 = param_10 + 2;
          if (param_11 == puVar8) goto LAB_0034254c;
          local_34 = iVar3;
          iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,param_10[2],0);
          pcVar9 = *(code **)(*param_2 + 0x20);
          iVar4 = local_34;
          if (pcVar9 != local_38) goto LAB_0034243c;
          piVar7 = (int *)(*(code *)PTR_use_facet<std_ctype<wchar_t>>_00433ac8)(local_30);
          pcVar9 = *(code **)(*piVar7 + 0x28);
          *param_8 = 0;
          local_60 = (*pcVar9)(piVar7,0x25);
          if (local_34 == 0) goto LAB_003421b4;
          local_5c = local_34;
          local_54 = 0;
          local_58 = iVar3;
        }
        else {
          pcVar9 = *(code **)(*param_2 + 0x20);
          if (pcVar9 != local_38) {
            iVar4 = 0;
LAB_0034243c:
            param_10 = puVar8 + 1;
            (*pcVar9)(&local_40,param_2,param_3,param_4,param_5,param_6,param_7,param_8,param_9,
                      iVar3,iVar4);
            param_4 = local_3c;
            param_3 = local_40;
            goto LAB_00341f24;
          }
          local_34 = iVar3;
          piVar7 = (int *)(*(code *)PTR_use_facet<std_ctype<wchar_t>>_00433ac8)(local_30);
          pcVar9 = *(code **)(*piVar7 + 0x28);
          *param_8 = 0;
          local_60 = (*pcVar9)(piVar7,0x25);
          iVar3 = local_34;
LAB_003421b4:
          local_58 = 0;
          local_5c = iVar3;
        }
        local_4c = param_6;
        local_50 = param_5;
        _M_extract_via_format
                  (&local_40,param_2,param_3,param_4,param_5,param_6,param_7,param_8,param_9,
                   local_2c);
        param_4 = local_3c;
        param_3 = local_40;
        local_48 = local_40;
        local_44 = local_3c;
        iVar3 = local_3c;
        if ((local_40 != (int *)0x0) && (local_3c == -1)) {
          if ((int *)local_40[2] < (int *)local_40[3]) {
            iVar3 = *(int *)local_40[2];
          }
          else {
            iVar3 = (**(code **)(*local_40 + 0x24))(local_40);
          }
          if (iVar3 == -1) {
            param_3 = (int *)0x0;
          }
        }
        iVar4 = param_6;
        if ((param_5 != (int *)0x0) && (param_6 == -1)) {
          if ((int *)param_5[2] < (int *)param_5[3]) {
            iVar4 = *(int *)param_5[2];
          }
          else {
            iVar4 = (**(code **)(*param_5 + 0x24))(param_5);
          }
        }
        if ((iVar4 == -1) == (iVar3 == -1)) {
          *param_8 = *param_8 | 2;
        }
        param_10 = puVar8 + 1;
      }
      else {
        iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,*param_10);
        if (iVar3 == 0) {
          iVar4 = param_4;
          iVar3 = param_4;
          if (param_3 == (int *)0x0) {
LAB_00342380:
            iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,iVar4);
            iVar5 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);
            if (iVar5 != iVar4) {
              param_3 = (int *)0x0;
LAB_00341ed0:
              iVar3 = (**(code **)(*(int *)pcVar2 + 0x18))(pcVar2,iVar3);
              iVar4 = (**(code **)(*(int *)pcVar2 + 0x18))(pcVar2,*param_10);
              if (iVar4 != iVar3) {
LAB_0034254c:
                *param_8 = 4;
                *param_1 = param_3;
                param_1[1] = param_4;
                return;
              }
              goto LAB_00341f00;
            }
            param_3 = (int *)0x0;
            uVar6 = uRam00000008;
            if (uRam0000000c <= uRam00000008) goto LAB_003424f8;
LAB_00341f14:
            param_3[2] = uVar6 + 4;
          }
          else {
            if (param_4 == -1) {
              if ((int *)param_3[2] < (int *)param_3[3]) {
                iVar4 = *(int *)param_3[2];
              }
              else {
                iVar4 = (**(code **)(*param_3 + 0x24))(param_3,0xffffffff);
              }
              if (iVar4 == -1) goto LAB_00342380;
              iVar3 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2);
              iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);
              if (iVar3 != iVar4) {
                if ((int *)param_3[2] < (int *)param_3[3]) {
                  iVar3 = *(int *)param_3[2];
                  if (iVar3 == -1) {
                    param_3 = (int *)0x0;
                  }
                }
                else {
                  iVar3 = (**(code **)(*param_3 + 0x24))(param_3);
                  if (iVar3 == -1) {
                    param_3 = (int *)0x0;
                  }
                }
                goto LAB_00341ed0;
              }
            }
            else {
              iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2);
              iVar5 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);
              if (iVar5 != iVar4) goto LAB_00341ed0;
            }
LAB_00341f00:
            uVar6 = param_3[2];
            if ((uint)param_3[2] < (uint)param_3[3]) goto LAB_00341f14;
LAB_003424f8:
            (**(code **)(*param_3 + 0x28))(param_3);
          }
          param_10 = param_10 + 1;
          param_4 = -1;
        }
        else {
          do {
            param_10 = param_10 + 1;
            if (param_11 == param_10) break;
            iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,*param_10);
          } while (iVar3 != 0);
          iVar3 = param_4;
          if ((param_3 != (int *)0x0) && (param_4 == -1)) goto LAB_0034201c;
          while( true ) {
            bVar1 = param_4 == -1;
            iVar4 = param_6;
            if ((param_5 != (int *)0x0) && (param_6 == -1)) {
              if ((int *)param_5[2] < (int *)param_5[3]) {
                iVar4 = *(int *)param_5[2];
                if (iVar4 == -1) {
                  param_5 = (int *)0x0;
                }
              }
              else {
                iVar4 = (**(code **)(*param_5 + 0x24))(param_5);
                if (iVar4 == -1) {
                  param_5 = (int *)0x0;
                }
              }
            }
            param_4 = iVar3;
            if ((iVar4 == -1) == bVar1) break;
            if ((param_3 != (int *)0x0) && (iVar3 == -1)) {
              if ((int *)param_3[2] < (int *)param_3[3]) {
                iVar3 = *(int *)param_3[2];
                if (iVar3 == -1) {
                  param_3 = (int *)0x0;
                }
              }
              else {
                iVar3 = (**(code **)(*param_3 + 0x24))(param_3);
                if (iVar3 == -1) {
                  param_3 = (int *)0x0;
                }
              }
            }
            iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,iVar3);
            if (iVar3 == 0) break;
            if ((uint)param_3[2] < (uint)param_3[3]) {
              param_3[2] = param_3[2] + 4;
LAB_0034201c:
              piVar7 = (int *)param_3[2];
              if (piVar7 < (int *)param_3[3]) goto LAB_00342030;
LAB_003422d0:
              param_4 = (**(code **)(*param_3 + 0x24))(param_3);
            }
            else {
              (**(code **)(*param_3 + 0x28))(param_3);
              piVar7 = (int *)param_3[2];
              if ((int *)param_3[3] <= piVar7) goto LAB_003422d0;
LAB_00342030:
              param_4 = *piVar7;
            }
            iVar3 = -1;
            if (param_4 == -1) {
              param_3 = (int *)0x0;
            }
          }
        }
      }
LAB_00341f24:
    } while ((param_10 != param_11) && (*param_8 == 0));
  }
  *param_1 = param_3;
  param_1[1] = param_4;
  return;
}



void FUN_00341d6c(undefined4 *param_1,int *param_2,int *param_3,int param_4,int *param_5,int param_6
                 ,int param_7,uint *param_8,undefined4 param_9,undefined4 *param_10,
                 undefined4 *param_11)

{
  bool bVar1;
  ctype *pcVar2;
  int iVar3;
  int iVar4;
  int iVar5;
  uint uVar6;
  int *piVar7;
  undefined4 *puVar8;
  code *pcVar9;
  undefined4 local_60;
  int local_5c;
  int local_58;
  undefined4 local_54;
  int *local_50;
  int local_4c;
  int *local_48;
  int local_44;
  int *local_40;
  int local_3c;
  code *local_38;
  int local_34;
  locale *local_30;
  undefined4 *local_2c;
  
  local_30 = (locale *)(param_7 + 0x6c);
  pcVar2 = std::use_facet<std::ctype<wchar_t>>(local_30);
  *param_8 = 0;
  local_38 = (code *)PTR_do_get_00433d80;
  if (param_10 != param_11) {
    local_2c = &local_60;
    do {
      iVar3 = param_4;
      if ((param_3 != (int *)0x0) && (param_4 == -1)) {
        if ((int *)param_3[2] < (int *)param_3[3]) {
          iVar3 = *(int *)param_3[2];
          if (iVar3 == -1) {
            param_3 = (int *)0x0;
          }
        }
        else {
          iVar3 = (**(code **)(*param_3 + 0x24))(param_3);
          if (iVar3 == -1) {
            param_3 = (int *)0x0;
          }
        }
      }
      if ((param_5 == (int *)0x0) || (param_6 != -1)) {
        bVar1 = param_6 == -1;
      }
      else {
        if ((int *)param_5[2] < (int *)param_5[3]) {
          iVar4 = *(int *)param_5[2];
          if (iVar4 == -1) {
            param_5 = (int *)0x0;
          }
        }
        else {
          iVar4 = (**(code **)(*param_5 + 0x24))(param_5);
          if (iVar4 == -1) {
            param_5 = (int *)0x0;
          }
        }
        bVar1 = iVar4 == -1;
      }
      if (bVar1 == (iVar3 == -1)) {
        *param_8 = 6;
        *param_1 = param_3;
        param_1[1] = param_4;
        return;
      }
      iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,*param_10,0);
      if (iVar3 == 0x25) {
        puVar8 = param_10 + 1;
        if (param_11 == puVar8) goto LAB_0034254c;
        iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,param_10[1],0);
        if ((iVar3 == 0x45) || (iVar3 == 0x4f)) {
          puVar8 = param_10 + 2;
          if (param_11 == puVar8) goto LAB_0034254c;
          local_34 = iVar3;
          iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,param_10[2],0);
          pcVar9 = *(code **)(*param_2 + 0x20);
          iVar4 = local_34;
          if (pcVar9 != local_38) goto LAB_0034243c;
          piVar7 = (int *)(*(code *)PTR_use_facet<std_ctype<wchar_t>>_00433ac8)(local_30);
          pcVar9 = *(code **)(*piVar7 + 0x28);
          *param_8 = 0;
          local_60 = (*pcVar9)(piVar7,0x25);
          if (local_34 == 0) goto LAB_003421b4;
          local_5c = local_34;
          local_54 = 0;
          local_58 = iVar3;
        }
        else {
          pcVar9 = *(code **)(*param_2 + 0x20);
          if (pcVar9 != local_38) {
            iVar4 = 0;
LAB_0034243c:
            param_10 = puVar8 + 1;
            (*pcVar9)(&local_40,param_2,param_3,param_4,param_5,param_6,param_7,param_8,param_9,
                      iVar3,iVar4);
            param_4 = local_3c;
            param_3 = local_40;
            goto LAB_00341f24;
          }
          local_34 = iVar3;
          piVar7 = (int *)(*(code *)PTR_use_facet<std_ctype<wchar_t>>_00433ac8)(local_30);
          pcVar9 = *(code **)(*piVar7 + 0x28);
          *param_8 = 0;
          local_60 = (*pcVar9)(piVar7,0x25);
          iVar3 = local_34;
LAB_003421b4:
          local_58 = 0;
          local_5c = iVar3;
        }
        local_4c = param_6;
        local_50 = param_5;
        std::time_get<wchar_t,std::istreambuf_iterator<wchar_t,std::char_traits<wchar_t>>>::
        _M_extract_via_format
                  (&local_40,param_2,param_3,param_4,param_5,param_6,param_7,param_8,param_9,
                   local_2c);
        param_4 = local_3c;
        param_3 = local_40;
        local_48 = local_40;
        local_44 = local_3c;
        iVar3 = local_3c;
        if ((local_40 != (int *)0x0) && (local_3c == -1)) {
          if ((int *)local_40[2] < (int *)local_40[3]) {
            iVar3 = *(int *)local_40[2];
          }
          else {
            iVar3 = (**(code **)(*local_40 + 0x24))(local_40);
          }
          if (iVar3 == -1) {
            param_3 = (int *)0x0;
          }
        }
        iVar4 = param_6;
        if ((param_5 != (int *)0x0) && (param_6 == -1)) {
          if ((int *)param_5[2] < (int *)param_5[3]) {
            iVar4 = *(int *)param_5[2];
          }
          else {
            iVar4 = (**(code **)(*param_5 + 0x24))(param_5);
          }
        }
        if ((iVar4 == -1) == (iVar3 == -1)) {
          *param_8 = *param_8 | 2;
        }
        param_10 = puVar8 + 1;
      }
      else {
        iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,*param_10);
        if (iVar3 == 0) {
          iVar4 = param_4;
          iVar3 = param_4;
          if (param_3 == (int *)0x0) {
LAB_00342380:
            iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,iVar4);
            iVar5 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);
            if (iVar5 != iVar4) {
              param_3 = (int *)0x0;
LAB_00341ed0:
              iVar3 = (**(code **)(*(int *)pcVar2 + 0x18))(pcVar2,iVar3);
              iVar4 = (**(code **)(*(int *)pcVar2 + 0x18))(pcVar2,*param_10);
              if (iVar4 != iVar3) {
LAB_0034254c:
                *param_8 = 4;
                *param_1 = param_3;
                param_1[1] = param_4;
                return;
              }
              goto LAB_00341f00;
            }
            param_3 = (int *)0x0;
            uVar6 = uRam00000008;
            if (uRam0000000c <= uRam00000008) goto LAB_003424f8;
LAB_00341f14:
            param_3[2] = uVar6 + 4;
          }
          else {
            if (param_4 == -1) {
              if ((int *)param_3[2] < (int *)param_3[3]) {
                iVar4 = *(int *)param_3[2];
              }
              else {
                iVar4 = (**(code **)(*param_3 + 0x24))(param_3,0xffffffff);
              }
              if (iVar4 == -1) goto LAB_00342380;
              iVar3 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2);
              iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);
              if (iVar3 != iVar4) {
                if ((int *)param_3[2] < (int *)param_3[3]) {
                  iVar3 = *(int *)param_3[2];
                  if (iVar3 == -1) {
                    param_3 = (int *)0x0;
                  }
                }
                else {
                  iVar3 = (**(code **)(*param_3 + 0x24))(param_3);
                  if (iVar3 == -1) {
                    param_3 = (int *)0x0;
                  }
                }
                goto LAB_00341ed0;
              }
            }
            else {
              iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2);
              iVar5 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);
              if (iVar5 != iVar4) goto LAB_00341ed0;
            }
LAB_00341f00:
            uVar6 = param_3[2];
            if ((uint)param_3[2] < (uint)param_3[3]) goto LAB_00341f14;
LAB_003424f8:
            (**(code **)(*param_3 + 0x28))(param_3);
          }
          param_10 = param_10 + 1;
          param_4 = -1;
        }
        else {
          do {
            param_10 = param_10 + 1;
            if (param_11 == param_10) break;
            iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,*param_10);
          } while (iVar3 != 0);
          iVar3 = param_4;
          if ((param_3 != (int *)0x0) && (param_4 == -1)) goto LAB_0034201c;
          while( true ) {
            bVar1 = param_4 == -1;
            iVar4 = param_6;
            if ((param_5 != (int *)0x0) && (param_6 == -1)) {
              if ((int *)param_5[2] < (int *)param_5[3]) {
                iVar4 = *(int *)param_5[2];
                if (iVar4 == -1) {
                  param_5 = (int *)0x0;
                }
              }
              else {
                iVar4 = (**(code **)(*param_5 + 0x24))(param_5);
                if (iVar4 == -1) {
                  param_5 = (int *)0x0;
                }
              }
            }
            param_4 = iVar3;
            if ((iVar4 == -1) == bVar1) break;
            if ((param_3 != (int *)0x0) && (iVar3 == -1)) {
              if ((int *)param_3[2] < (int *)param_3[3]) {
                iVar3 = *(int *)param_3[2];
                if (iVar3 == -1) {
                  param_3 = (int *)0x0;
                }
              }
              else {
                iVar3 = (**(code **)(*param_3 + 0x24))(param_3);
                if (iVar3 == -1) {
                  param_3 = (int *)0x0;
                }
              }
            }
            iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,iVar3);
            if (iVar3 == 0) break;
            if ((uint)param_3[2] < (uint)param_3[3]) {
              param_3[2] = param_3[2] + 4;
LAB_0034201c:
              piVar7 = (int *)param_3[2];
              if (piVar7 < (int *)param_3[3]) goto LAB_00342030;
LAB_003422d0:
              param_4 = (**(code **)(*param_3 + 0x24))(param_3);
            }
            else {
              (**(code **)(*param_3 + 0x28))(param_3);
              piVar7 = (int *)param_3[2];
              if ((int *)param_3[3] <= piVar7) goto LAB_003422d0;
LAB_00342030:
              param_4 = *piVar7;
            }
            iVar3 = -1;
            if (param_4 == -1) {
              param_3 = (int *)0x0;
            }
          }
        }
      }
LAB_00341f24:
    } while ((param_10 != param_11) && (*param_8 == 0));
  }
  *param_1 = param_3;
  param_1[1] = param_4;
  return;
}


lui gp,0x10
addiu gp,gp,-0x7b9c
addu gp,gp,t9
addiu sp,sp,-0x98
lw t9,-0x6708(gp)
lw v0,0xb0(sp)
sw gp,0x30(sp)
sw s8,0x90(sp)
or s8,a2,zero
addiu v0,v0,0x6c
sw s5,0x84(sp)
sw s4,0x80(sp)
sw s2,0x78(sp)
sw s1,0x74(sp)
or s1,a3,zero
sw s0,0x70(sp)
sw a0,0x98(sp)
or a0,v0,zero
sw ra,0x94(sp)
sw s7,0x8c(sp)
sw s6,0x88(sp)
sw s3,0x7c(sp)
sw a1,0x9c(sp)
sw v0,0x68(sp)
sw a2,0xa0(sp)
sw a3,0xa4(sp)
lw s0,0xbc(sp)
lw s2,0xa8(sp)
bal 0x0032215c
_lw s4,0xac(sp)
or s5,v0,zero
lw v0,0xb4(sp)
lw gp,0x30(sp)
sw zero,0x0(v0)
lw v0,0xc0(sp)
beq s0,v0,0x00341f38
_lw v0,-0x6450(gp)
li s3,-0x1
addiu s6,sp,0x58
sw v0,0x60(sp)
addiu v0,sp,0x38
sw v0,0x6c(sp)
beq s8,zero,0x00341e24
_or v0,s1,zero
beq s1,s3,0x003420b8
_nop
addiu v0,v0,0x1
beq s2,zero,0x00341e38
_sltiu s7,v0,0x1
beq s4,s3,0x00342044
_nop
or v0,s4,zero
addiu v0,v0,0x1
sltiu v0,v0,0x1
beq v0,s7,0x00342074
_lw v1,0xb4(sp)
lw v0,0x0(s5)
or a2,zero,zero
lw a1,0x0(s0)
lw t9,0x30(v0)
jalr t9
_or a0,s5,zero
li a0,0x25
beq v0,a0,0x00342128
_li a1,0x20
lw v0,0x0(s5)
lw a2,0x0(s0)
lw t9,0x8(v0)
jalr t9
_or a0,s5,zero
bne v0,zero,0x00341f90
_nop
beq s8,zero,0x00342380
_or a1,s1,zero
beq s1,s3,0x003423b8
_nop
lw v0,0x0(s5)
lw t9,0x20(v0)
jalr t9
_or a0,s5,zero
or a0,s5,zero
lw a2,0x0(s5)
or s7,v0,zero
lw t9,0x20(a2)
jalr t9
_lw a1,0x0(s0)
beq v0,s7,0x00341f00
_nop
or a1,s1,zero
lw v0,0x0(s5)
lw t9,0x18(v0)
jalr t9
_or a0,s5,zero
or a0,s5,zero
lw a2,0x0(s5)
or s7,v0,zero
lw t9,0x18(a2)
jalr t9
_lw a1,0x0(s0)
bne v0,s7,0x0034254c
_lw v1,0xb4(sp)
lw v0,0x8(s8)
lw a0,0xc(s8)
sltu a0,v0,a0
beq a0,zero,0x003424f8
_addiu v0,v0,0x4
sw v0,0x8(s8)
addiu s0,s0,0x4
li s1,-0x1
lw v0,0xc0(sp)
beq s0,v0,0x00341f38
_lw v0,0xb4(sp)
lw v0,0x0(v0)
beq v0,zero,0x00341e14
_nop
lw v0,0x98(sp)
lw ra,0x94(sp)
lw s7,0x8c(sp)
lw s6,0x88(sp)
lw s5,0x84(sp)
lw s4,0x80(sp)
lw s3,0x7c(sp)
lw s2,0x78(sp)
lw s0,0x70(sp)
sw s8,0x0(v0)
sw s1,0x4(v0)
lw s8,0x90(sp)
lw s1,0x74(sp)
jr ra
_addiu sp,sp,0x98
lw v0,0x0(s5)
lw a2,0x0(s0)
lw t9,0x8(v0)
jalr t9
_or a0,s5,zero
beq v0,zero,0x00341fa0
_nop
lw v0,0xc0(sp)
addiu s0,s0,0x4
bne v0,s0,0x00341f74
_li a1,0x20
beq s8,zero,0x00341fb0
_or v0,s1,zero
beq s1,s3,0x0034201c
_nop
addiu v0,v0,0x1
beq s2,zero,0x00341fc4
_sltiu s7,v0,0x1
beq s4,s3,0x003420dc
_nop
or v0,s4,zero
addiu v0,v0,0x1
sltiu v0,v0,0x1
beq v0,s7,0x00341f20
_nop
beq s8,zero,0x00341fe8
_or a2,s1,zero
beq s1,s3,0x00342100
_nop
lw v0,0x0(s5)
li a1,0x20
lw t9,0x8(v0)
jalr t9
_or a0,s5,zero
beq v0,zero,0x00341f24
_lw v0,0xc0(sp)
lw v0,0x8(s8)
lw a0,0xc(s8)
sltu a0,v0,a0
beq a0,zero,0x003422ac
_addiu v0,v0,0x4
sw v0,0x8(s8)
lw a0,0x8(s8)
lw v0,0xc(s8)
sltu v0,a0,v0
beq v0,zero,0x003422d0
_nop
lw v0,0x0(a0)
nor a0,zero,v0
li s1,-0x1
b 0x00341fb0
_movz s8,zero,a0
lw a0,0x8(s2)
lw v0,0xc(s2)
sltu v0,a0,v0
beq v0,zero,0x0034252c
_nop
lw v0,0x0(a0)
nor a0,zero,v0
movz s2,zero,a0
addiu v0,v0,0x1
sltiu v0,v0,0x1
bne v0,s7,0x00341e4c
_lw v1,0xb4(sp)
li v0,0x6
lw ra,0x94(sp)
lw s7,0x8c(sp)
lw s6,0x88(sp)
lw s5,0x84(sp)
lw s4,0x80(sp)
lw s3,0x7c(sp)
lw s2,0x78(sp)
lw s0,0x70(sp)
sw v0,0x0(v1)
lw v0,0x98(sp)
sw s8,0x0(v0)
sw s1,0x4(v0)
lw s8,0x90(sp)
lw s1,0x74(sp)
jr ra
_addiu sp,sp,0x98
lw a0,0x8(s8)
lw v0,0xc(s8)
sltu v0,a0,v0
beq v0,zero,0x00342510
_nop
lw v0,0x0(a0)
nor a0,zero,v0
b 0x00341e24
_movz s8,zero,a0
lw a0,0x8(s2)
lw v0,0xc(s2)
sltu v0,a0,v0
beq v0,zero,0x003424a4
_nop
lw v0,0x0(a0)
nor a0,zero,v0
b 0x00341fc8
_movz s2,zero,a0
lw a0,0x8(s8)
lw v0,0xc(s8)
sltu v0,a0,v0
beq v0,zero,0x003424c0
_nop
lw a2,0x0(a0)
or v0,a2,zero
nor v0,zero,v0
b 0x00341fe8
_movz s8,zero,v0
lw v0,0xc0(sp)
addiu s7,s0,0x4
beq v0,s7,0x00342548
_or a2,zero,zero
lw v0,0x0(s5)
lw a1,0x4(s0)
lw t9,0x30(v0)
jalr t9
_or a0,s5,zero
li a0,0x45
lw gp,0x30(sp)
beq v0,a0,0x003422e8
_or t2,v0,zero
li v0,0x4f
beq t2,v0,0x003422e8
_lw v0,0x9c(sp)
lw v0,0x0(v0)
lw t9,0x20(v0)
lw v0,0x60(sp)
bne t9,v0,0x00342434
_lw a0,0x68(sp)
lw t9,-0x6708(gp)
jalr t9
_sw t2,0x64(sp)
li a1,0x25
or a0,v0,zero
lw v0,0x0(v0)
lw v1,0xb4(sp)
lw t9,0x28(v0)
jalr t9
_sw zero,0x0(v1)
lw t2,0x64(sp)
lw gp,0x30(sp)
sw v0,0x38(sp)
or a0,t2,zero
sw a0,0x3c(sp)
sw zero,0x40(sp)
lw v0,0x6c(sp)
or a2,s8,zero
lw t9,-0x6454(gp)
or a3,s1,zero
lw a1,0x9c(sp)
or a0,s6,zero
sw v0,0x24(sp)
lw v0,0xb8(sp)
sw s2,0x48(sp)
sw s4,0x4c(sp)
sw v0,0x20(sp)
lw v0,0xb4(sp)
sw s2,0x10(sp)
sw s4,0x14(sp)
sw v0,0x1c(sp)
lw v0,0xb0(sp)
bal 0x00340728
_sw v0,0x18(sp)
lw s0,0x58(sp)
lw s1,0x5c(sp)
or s8,s0,zero
sw s0,0x50(sp)
beq s0,zero,0x00342224
_sw s1,0x54(sp)
beq s1,s3,0x00342284
_nop
or v0,s1,zero
addiu v0,v0,0x1
beq s2,zero,0x0034223c
_sltiu s0,v0,0x1
beq s4,s3,0x00342268
_nop
or v0,s4,zero
addiu v0,v0,0x1
sltiu v0,v0,0x1
bne v0,s0,0x00342260
_lw v0,0xb4(sp)
lw v1,0xb4(sp)
lw v0,0x0(v0)
ori v0,v0,0x2
sw v0,0x0(v1)
b 0x00341f20
_addiu s0,s7,0x4
lw a0,0x8(s2)
lw v0,0xc(s2)
sltu v0,a0,v0
beq v0,zero,0x003425c0
_nop
b 0x00342240
_lw v0,0x0(a0)
lw a0,0x8(s0)
lw v0,0xc(s0)
sltu v0,a0,v0
beq v0,zero,0x003425a8
_nop
lw v0,0x0(a0)
nor v1,zero,v0
movz s0,zero,v1
b 0x00342228
_or s8,s0,zero
lw v0,0x0(s8)
lw t9,0x28(v0)
jalr t9
_or a0,s8,zero
lw a0,0x8(s8)
lw v0,0xc(s8)
sltu v0,a0,v0
bne v0,zero,0x00342030
_nop
lw v0,0x0(s8)
lw t9,0x24(v0)
jalr t9
_or a0,s8,zero
b 0x00342038
_nor a0,zero,v0
lw v0,0xc0(sp)
addiu s7,s0,0x8
beq v0,s7,0x00342548
_sw t2,0x64(sp)
lw v0,0x0(s5)
or a2,zero,zero
lw a1,0x8(s0)
lw t9,0x30(v0)
jalr t9
_or a0,s5,zero
lw v1,0x9c(sp)
or s0,v0,zero
lw gp,0x30(sp)
lw a0,0x0(v1)
lw v1,0x60(sp)
lw t9,0x20(a0)
bne t9,v1,0x0034243c
_lw t2,0x64(sp)
lw t9,-0x6708(gp)
lw a0,0x68(sp)
jalr t9
_sw t2,0x64(sp)
li a1,0x25
or a0,v0,zero
lw v0,0x0(v0)
lw v1,0xb4(sp)
lw t9,0x28(v0)
jalr t9
_sw zero,0x0(v1)
or a0,s0,zero
lw t2,0x64(sp)
lw gp,0x30(sp)
beq t2,zero,0x003421b4
_sw v0,0x38(sp)
sw t2,0x3c(sp)
sw s0,0x40(sp)
b 0x003421bc
_sw zero,0x44(sp)
lw v0,0x0(s5)
lw t9,0x20(v0)
jalr t9
_or a0,s5,zero
or a0,s5,zero
lw v1,0x0(s5)
or s7,v0,zero
lw t9,0x20(v1)
jalr t9
_lw a1,0x0(s0)
beq v0,s7,0x003424e0
_or a1,s1,zero
b 0x00341ed0
_or s8,zero,zero
lw a0,0x8(s8)
lw v0,0xc(s8)
sltu v0,a0,v0
beq v0,zero,0x00342590
_nop
lw a1,0x0(a0)
or v0,a1,zero
beq v0,s3,0x00342380
_nop
lw v0,0x0(s5)
lw t9,0x20(v0)
jalr t9
_or a0,s5,zero
or a0,s5,zero
lw a2,0x0(s5)
or s7,v0,zero
lw t9,0x20(a2)
jalr t9
_lw a1,0x0(s0)
beq s7,v0,0x00341f00
_nop
lw a0,0x8(s8)
lw v0,0xc(s8)
sltu v0,a0,v0
beq v0,zero,0x003425d8
_nop
lw a1,0x0(a0)
or v0,a1,zero
nor v0,zero,v0
b 0x00341ed0
_movz s8,zero,v0
or v0,t2,zero
or t2,zero,zero
sw v0,0x24(sp)
or a2,s8,zero
lw v0,0xb8(sp)
or a3,s1,zero
lw a1,0x9c(sp)
or a0,s6,zero
sw s8,0xa0(sp)
addiu s0,s7,0x4
sw v0,0x20(sp)
lw v0,0xb4(sp)
sw s1,0xa4(sp)
sw s2,0xa8(sp)
sw v0,0x1c(sp)
sw s4,0xac(sp)
sw t2,0x28(sp)
sw s2,0x10(sp)
sw s4,0x14(sp)
lw v0,0xb0(sp)
jalr t9
_sw v0,0x18(sp)
lw v1,0x58(sp)
lw s1,0x5c(sp)
sw v1,0xa0(sp)
or s8,v1,zero
b 0x00341f20
_sw s1,0xa4(sp)
lw v0,0x0(s2)
lw t9,0x24(v0)
jalr t9
_or a0,s2,zero
nor a0,zero,v0
b 0x00341fc8
_movz s2,zero,a0
lw v0,0x0(s8)
lw t9,0x24(v0)
jalr t9
_or a0,s8,zero
or a2,v0,zero
nor v0,zero,v0
b 0x00341fe8
_movz s8,zero,v0
or s8,zero,zero
lw v0,0x8(s8)
lw a0,0xc(s8)
sltu a0,v0,a0
bne a0,zero,0x00341f14
_addiu v0,v0,0x4
lw v0,0x0(s8)
lw t9,0x28(v0)
jalr t9
_or a0,s8,zero
b 0x00341f1c
_addiu s0,s0,0x4
lw v0,0x0(s8)
lw t9,0x24(v0)
jalr t9
_or a0,s8,zero
nor a0,zero,v0
b 0x00341e24
_movz s8,zero,a0
lw v0,0x0(s2)
lw t9,0x24(v0)
jalr t9
_or a0,s2,zero
nor a0,zero,v0
b 0x00342064
_movz s2,zero,a0
lw v1,0xb4(sp)
li v0,0x4
lw ra,0x94(sp)
lw s7,0x8c(sp)
lw s6,0x88(sp)
lw s5,0x84(sp)
lw s4,0x80(sp)
lw s3,0x7c(sp)
lw s2,0x78(sp)
lw s0,0x70(sp)
sw v0,0x0(v1)
lw v0,0x98(sp)
sw s8,0x0(v0)
sw s1,0x4(v0)
lw s8,0x90(sp)
lw s1,0x74(sp)
jr ra
_addiu sp,sp,0x98
lw v0,0x0(s8)
lw t9,0x24(v0)
jalr t9
_or a0,s8,zero
b 0x003423d4
_or a1,v0,zero
lw v0,0x0(s0)
lw t9,0x24(v0)
jalr t9
_or a0,s0,zero
b 0x003422a0
_nor v1,zero,v0
lw v0,0x0(s2)
lw t9,0x24(v0)
jalr t9
_or a0,s2,zero
b 0x00342244
_addiu v0,v0,0x1
lw v0,0x0(s8)
lw t9,0x24(v0)
jalr t9
_or a0,s8,zero
or a1,v0,zero
nor v0,zero,v0
b 0x00341ed0
_movz s8,zero,v0
(translation_unit "void FUN_00341d6c(undefined4 *param_1,int *param_2,int *param_3,int param_4,int *param_5,int param_6\n                 ,int param_7,uint *param_8,undefined4 param_9,undefined4 *param_10,\n                 undefined4 *param_11)\n\n{\n  bool bVar1;\n  ctype *pcVar2;\n  int iVar3;\n  int iVar4;\n  int iVar5;\n  uint uVar6;\n  int *piVar7;\n  undefined4 *puVar8;\n  code *pcVar9;\n  undefined4 local_60;\n  int local_5c;\n  int local_58;\n  undefined4 local_54;\n  int *local_50;\n  int local_4c;\n  int *local_48;\n  int local_44;\n  int *local_40;\n  int local_3c;\n  code *local_38;\n  int local_34;\n  locale *local_30;\n  undefined4 *local_2c;\n  \n  local_30 = (locale *)(param_7 + 0x6c);\n  pcVar2 = std::use_facet<std::ctype<wchar_t>>(local_30);\n  *param_8 = 0;\n  local_38 = (code *)PTR_do_get_00433d80;\n  if (param_10 != param_11) {\n    local_2c = &local_60;\n    do {\n      iVar3 = param_4;\n      if ((param_3 != (int *)0x0) && (param_4 == -1)) {\n        if ((int *)param_3[2] < (int *)param_3[3]) {\n          iVar3 = *(int *)param_3[2];\n          if (iVar3 == -1) {\n            param_3 = (int *)0x0;\n          }\n        }\n        else {\n          iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n          if (iVar3 == -1) {\n            param_3 = (int *)0x0;\n          }\n        }\n      }\n      if ((param_5 == (int *)0x0) || (param_6 != -1)) {\n        bVar1 = param_6 == -1;\n      }\n      else {\n        if ((int *)param_5[2] < (int *)param_5[3]) {\n          iVar4 = *(int *)param_5[2];\n          if (iVar4 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }\n        else {\n          iVar4 = (**(code **)(*param_5 + 0x24))(param_5);\n          if (iVar4 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }\n        bVar1 = iVar4 == -1;\n      }\n      if (bVar1 == (iVar3 == -1)) {\n        *param_8 = 6;\n        *param_1 = param_3;\n        param_1[1] = param_4;\n        return;\n      }\n      iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,*param_10,0);\n      if (iVar3 == 0x25) {\n        puVar8 = param_10 + 1;\n        if (param_11 == puVar8) goto LAB_0034254c;\n        iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,param_10[1],0);\n        if ((iVar3 == 0x45) || (iVar3 == 0x4f)) {\n          puVar8 = param_10 + 2;\n          if (param_11 == puVar8) goto LAB_0034254c;\n          local_34 = iVar3;\n          iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,param_10[2],0);\n          pcVar9 = *(code **)(*param_2 + 0x20);\n          iVar4 = local_34;\n          if (pcVar9 != local_38) goto LAB_0034243c;\n          piVar7 = (int *)(*(code *)PTR_use_facet<std_ctype<wchar_t>>_00433ac8)(local_30);\n          pcVar9 = *(code **)(*piVar7 + 0x28);\n          *param_8 = 0;\n          local_60 = (*pcVar9)(piVar7,0x25);\n          if (local_34 == 0) goto LAB_003421b4;\n          local_5c = local_34;\n          local_54 = 0;\n          local_58 = iVar3;\n        }\n        else {\n          pcVar9 = *(code **)(*param_2 + 0x20);\n          if (pcVar9 != local_38) {\n            iVar4 = 0;\nLAB_0034243c:\n            param_10 = puVar8 + 1;\n            (*pcVar9)(&local_40,param_2,param_3,param_4,param_5,param_6,param_7,param_8,param_9,\n                      iVar3,iVar4);\n            param_4 = local_3c;\n            param_3 = local_40;\n            goto LAB_00341f24;\n          }\n          local_34 = iVar3;\n          piVar7 = (int *)(*(code *)PTR_use_facet<std_ctype<wchar_t>>_00433ac8)(local_30);\n          pcVar9 = *(code **)(*piVar7 + 0x28);\n          *param_8 = 0;\n          local_60 = (*pcVar9)(piVar7,0x25);\n          iVar3 = local_34;\nLAB_003421b4:\n          local_58 = 0;\n          local_5c = iVar3;\n        }\n        local_4c = param_6;\n        local_50 = param_5;\n        std::time_get<wchar_t,std::istreambuf_iterator<wchar_t,std::char_traits<wchar_t>>>::\n        _M_extract_via_format\n                  (&local_40,param_2,param_3,param_4,param_5,param_6,param_7,param_8,param_9,\n                   local_2c);\n        param_4 = local_3c;\n        param_3 = local_40;\n        local_48 = local_40;\n        local_44 = local_3c;\n        iVar3 = local_3c;\n        if ((local_40 != (int *)0x0) && (local_3c == -1)) {\n          if ((int *)local_40[2] < (int *)local_40[3]) {\n            iVar3 = *(int *)local_40[2];\n          }\n          else {\n            iVar3 = (**(code **)(*local_40 + 0x24))(local_40);\n          }\n          if (iVar3 == -1) {\n            param_3 = (int *)0x0;\n          }\n        }\n        iVar4 = param_6;\n        if ((param_5 != (int *)0x0) && (param_6 == -1)) {\n          if ((int *)param_5[2] < (int *)param_5[3]) {\n            iVar4 = *(int *)param_5[2];\n          }\n          else {\n            iVar4 = (**(code **)(*param_5 + 0x24))(param_5);\n          }\n        }\n        if ((iVar4 == -1) == (iVar3 == -1)) {\n          *param_8 = *param_8 | 2;\n        }\n        param_10 = puVar8 + 1;\n      }\n      else {\n        iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,*param_10);\n        if (iVar3 == 0) {\n          iVar4 = param_4;\n          iVar3 = param_4;\n          if (param_3 == (int *)0x0) {\nLAB_00342380:\n            iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,iVar4);\n            iVar5 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n            if (iVar5 != iVar4) {\n              param_3 = (int *)0x0;\nLAB_00341ed0:\n              iVar3 = (**(code **)(*(int *)pcVar2 + 0x18))(pcVar2,iVar3);\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x18))(pcVar2,*param_10);\n              if (iVar4 != iVar3) {\nLAB_0034254c:\n                *param_8 = 4;\n                *param_1 = param_3;\n                param_1[1] = param_4;\n                return;\n              }\n              goto LAB_00341f00;\n            }\n            param_3 = (int *)0x0;\n            uVar6 = uRam00000008;\n            if (uRam0000000c <= uRam00000008) goto LAB_003424f8;\nLAB_00341f14:\n            param_3[2] = uVar6 + 4;\n          }\n          else {\n            if (param_4 == -1) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar4 = *(int *)param_3[2];\n              }\n              else {\n                iVar4 = (**(code **)(*param_3 + 0x24))(param_3,0xffffffff);\n              }\n              if (iVar4 == -1) goto LAB_00342380;\n              iVar3 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2);\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n              if (iVar3 != iVar4) {\n                if ((int *)param_3[2] < (int *)param_3[3]) {\n                  iVar3 = *(int *)param_3[2];\n                  if (iVar3 == -1) {\n                    param_3 = (int *)0x0;\n                  }\n                }\n                else {\n                  iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n                  if (iVar3 == -1) {\n                    param_3 = (int *)0x0;\n                  }\n                }\n                goto LAB_00341ed0;\n              }\n            }\n            else {\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2);\n              iVar5 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n              if (iVar5 != iVar4) goto LAB_00341ed0;\n            }\nLAB_00341f00:\n            uVar6 = param_3[2];\n            if ((uint)param_3[2] < (uint)param_3[3]) goto LAB_00341f14;\nLAB_003424f8:\n            (**(code **)(*param_3 + 0x28))(param_3);\n          }\n          param_10 = param_10 + 1;\n          param_4 = -1;\n        }\n        else {\n          do {\n            param_10 = param_10 + 1;\n            if (param_11 == param_10) break;\n            iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,*param_10);\n          } while (iVar3 != 0);\n          iVar3 = param_4;\n          if ((param_3 != (int *)0x0) && (param_4 == -1)) goto LAB_0034201c;\n          while( true ) {\n            bVar1 = param_4 == -1;\n            iVar4 = param_6;\n            if ((param_5 != (int *)0x0) && (param_6 == -1)) {\n              if ((int *)param_5[2] < (int *)param_5[3]) {\n                iVar4 = *(int *)param_5[2];\n                if (iVar4 == -1) {\n                  param_5 = (int *)0x0;\n                }\n              }\n              else {\n                iVar4 = (**(code **)(*param_5 + 0x24))(param_5);\n                if (iVar4 == -1) {\n                  param_5 = (int *)0x0;\n                }\n              }\n            }\n            param_4 = iVar3;\n            if ((iVar4 == -1) == bVar1) break;\n            if ((param_3 != (int *)0x0) && (iVar3 == -1)) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar3 = *(int *)param_3[2];\n                if (iVar3 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n              else {\n                iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n                if (iVar3 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n            }\n            iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,iVar3);\n            if (iVar3 == 0) break;\n            if ((uint)param_3[2] < (uint)param_3[3]) {\n              param_3[2] = param_3[2] + 4;\nLAB_0034201c:\n              piVar7 = (int *)param_3[2];\n              if (piVar7 < (int *)param_3[3]) goto LAB_00342030;\nLAB_003422d0:\n              param_4 = (**(code **)(*param_3 + 0x24))(param_3);\n            }\n            else {\n              (**(code **)(*param_3 + 0x28))(param_3);\n              piVar7 = (int *)param_3[2];\n              if ((int *)param_3[3] <= piVar7) goto LAB_003422d0;\nLAB_00342030:\n              param_4 = *piVar7;\n            }\n            iVar3 = -1;\n            if (param_4 == -1) {\n              param_3 = (int *)0x0;\n            }\n          }\n        }\n      }\nLAB_00341f24:\n    } while ((param_10 != param_11) && (*param_8 == 0));\n  }\n  *param_1 = param_3;\n  param_1[1] = param_4;\n  return;\n}\n\n" (function_definition "void FUN_00341d6c(undefined4 *param_1,int *param_2,int *param_3,int param_4,int *param_5,int param_6\n                 ,int param_7,uint *param_8,undefined4 param_9,undefined4 *param_10,\n                 undefined4 *param_11)\n\n{\n  bool bVar1;\n  ctype *pcVar2;\n  int iVar3;\n  int iVar4;\n  int iVar5;\n  uint uVar6;\n  int *piVar7;\n  undefined4 *puVar8;\n  code *pcVar9;\n  undefined4 local_60;\n  int local_5c;\n  int local_58;\n  undefined4 local_54;\n  int *local_50;\n  int local_4c;\n  int *local_48;\n  int local_44;\n  int *local_40;\n  int local_3c;\n  code *local_38;\n  int local_34;\n  locale *local_30;\n  undefined4 *local_2c;\n  \n  local_30 = (locale *)(param_7 + 0x6c);\n  pcVar2 = std::use_facet<std::ctype<wchar_t>>(local_30);\n  *param_8 = 0;\n  local_38 = (code *)PTR_do_get_00433d80;\n  if (param_10 != param_11) {\n    local_2c = &local_60;\n    do {\n      iVar3 = param_4;\n      if ((param_3 != (int *)0x0) && (param_4 == -1)) {\n        if ((int *)param_3[2] < (int *)param_3[3]) {\n          iVar3 = *(int *)param_3[2];\n          if (iVar3 == -1) {\n            param_3 = (int *)0x0;\n          }\n        }\n        else {\n          iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n          if (iVar3 == -1) {\n            param_3 = (int *)0x0;\n          }\n        }\n      }\n      if ((param_5 == (int *)0x0) || (param_6 != -1)) {\n        bVar1 = param_6 == -1;\n      }\n      else {\n        if ((int *)param_5[2] < (int *)param_5[3]) {\n          iVar4 = *(int *)param_5[2];\n          if (iVar4 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }\n        else {\n          iVar4 = (**(code **)(*param_5 + 0x24))(param_5);\n          if (iVar4 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }\n        bVar1 = iVar4 == -1;\n      }\n      if (bVar1 == (iVar3 == -1)) {\n        *param_8 = 6;\n        *param_1 = param_3;\n        param_1[1] = param_4;\n        return;\n      }\n      iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,*param_10,0);\n      if (iVar3 == 0x25) {\n        puVar8 = param_10 + 1;\n        if (param_11 == puVar8) goto LAB_0034254c;\n        iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,param_10[1],0);\n        if ((iVar3 == 0x45) || (iVar3 == 0x4f)) {\n          puVar8 = param_10 + 2;\n          if (param_11 == puVar8) goto LAB_0034254c;\n          local_34 = iVar3;\n          iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,param_10[2],0);\n          pcVar9 = *(code **)(*param_2 + 0x20);\n          iVar4 = local_34;\n          if (pcVar9 != local_38) goto LAB_0034243c;\n          piVar7 = (int *)(*(code *)PTR_use_facet<std_ctype<wchar_t>>_00433ac8)(local_30);\n          pcVar9 = *(code **)(*piVar7 + 0x28);\n          *param_8 = 0;\n          local_60 = (*pcVar9)(piVar7,0x25);\n          if (local_34 == 0) goto LAB_003421b4;\n          local_5c = local_34;\n          local_54 = 0;\n          local_58 = iVar3;\n        }\n        else {\n          pcVar9 = *(code **)(*param_2 + 0x20);\n          if (pcVar9 != local_38) {\n            iVar4 = 0;\nLAB_0034243c:\n            param_10 = puVar8 + 1;\n            (*pcVar9)(&local_40,param_2,param_3,param_4,param_5,param_6,param_7,param_8,param_9,\n                      iVar3,iVar4);\n            param_4 = local_3c;\n            param_3 = local_40;\n            goto LAB_00341f24;\n          }\n          local_34 = iVar3;\n          piVar7 = (int *)(*(code *)PTR_use_facet<std_ctype<wchar_t>>_00433ac8)(local_30);\n          pcVar9 = *(code **)(*piVar7 + 0x28);\n          *param_8 = 0;\n          local_60 = (*pcVar9)(piVar7,0x25);\n          iVar3 = local_34;\nLAB_003421b4:\n          local_58 = 0;\n          local_5c = iVar3;\n        }\n        local_4c = param_6;\n        local_50 = param_5;\n        std::time_get<wchar_t,std::istreambuf_iterator<wchar_t,std::char_traits<wchar_t>>>::\n        _M_extract_via_format\n                  (&local_40,param_2,param_3,param_4,param_5,param_6,param_7,param_8,param_9,\n                   local_2c);\n        param_4 = local_3c;\n        param_3 = local_40;\n        local_48 = local_40;\n        local_44 = local_3c;\n        iVar3 = local_3c;\n        if ((local_40 != (int *)0x0) && (local_3c == -1)) {\n          if ((int *)local_40[2] < (int *)local_40[3]) {\n            iVar3 = *(int *)local_40[2];\n          }\n          else {\n            iVar3 = (**(code **)(*local_40 + 0x24))(local_40);\n          }\n          if (iVar3 == -1) {\n            param_3 = (int *)0x0;\n          }\n        }\n        iVar4 = param_6;\n        if ((param_5 != (int *)0x0) && (param_6 == -1)) {\n          if ((int *)param_5[2] < (int *)param_5[3]) {\n            iVar4 = *(int *)param_5[2];\n          }\n          else {\n            iVar4 = (**(code **)(*param_5 + 0x24))(param_5);\n          }\n        }\n        if ((iVar4 == -1) == (iVar3 == -1)) {\n          *param_8 = *param_8 | 2;\n        }\n        param_10 = puVar8 + 1;\n      }\n      else {\n        iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,*param_10);\n        if (iVar3 == 0) {\n          iVar4 = param_4;\n          iVar3 = param_4;\n          if (param_3 == (int *)0x0) {\nLAB_00342380:\n            iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,iVar4);\n            iVar5 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n            if (iVar5 != iVar4) {\n              param_3 = (int *)0x0;\nLAB_00341ed0:\n              iVar3 = (**(code **)(*(int *)pcVar2 + 0x18))(pcVar2,iVar3);\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x18))(pcVar2,*param_10);\n              if (iVar4 != iVar3) {\nLAB_0034254c:\n                *param_8 = 4;\n                *param_1 = param_3;\n                param_1[1] = param_4;\n                return;\n              }\n              goto LAB_00341f00;\n            }\n            param_3 = (int *)0x0;\n            uVar6 = uRam00000008;\n            if (uRam0000000c <= uRam00000008) goto LAB_003424f8;\nLAB_00341f14:\n            param_3[2] = uVar6 + 4;\n          }\n          else {\n            if (param_4 == -1) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar4 = *(int *)param_3[2];\n              }\n              else {\n                iVar4 = (**(code **)(*param_3 + 0x24))(param_3,0xffffffff);\n              }\n              if (iVar4 == -1) goto LAB_00342380;\n              iVar3 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2);\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n              if (iVar3 != iVar4) {\n                if ((int *)param_3[2] < (int *)param_3[3]) {\n                  iVar3 = *(int *)param_3[2];\n                  if (iVar3 == -1) {\n                    param_3 = (int *)0x0;\n                  }\n                }\n                else {\n                  iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n                  if (iVar3 == -1) {\n                    param_3 = (int *)0x0;\n                  }\n                }\n                goto LAB_00341ed0;\n              }\n            }\n            else {\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2);\n              iVar5 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n              if (iVar5 != iVar4) goto LAB_00341ed0;\n            }\nLAB_00341f00:\n            uVar6 = param_3[2];\n            if ((uint)param_3[2] < (uint)param_3[3]) goto LAB_00341f14;\nLAB_003424f8:\n            (**(code **)(*param_3 + 0x28))(param_3);\n          }\n          param_10 = param_10 + 1;\n          param_4 = -1;\n        }\n        else {\n          do {\n            param_10 = param_10 + 1;\n            if (param_11 == param_10) break;\n            iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,*param_10);\n          } while (iVar3 != 0);\n          iVar3 = param_4;\n          if ((param_3 != (int *)0x0) && (param_4 == -1)) goto LAB_0034201c;\n          while( true ) {\n            bVar1 = param_4 == -1;\n            iVar4 = param_6;\n            if ((param_5 != (int *)0x0) && (param_6 == -1)) {\n              if ((int *)param_5[2] < (int *)param_5[3]) {\n                iVar4 = *(int *)param_5[2];\n                if (iVar4 == -1) {\n                  param_5 = (int *)0x0;\n                }\n              }\n              else {\n                iVar4 = (**(code **)(*param_5 + 0x24))(param_5);\n                if (iVar4 == -1) {\n                  param_5 = (int *)0x0;\n                }\n              }\n            }\n            param_4 = iVar3;\n            if ((iVar4 == -1) == bVar1) break;\n            if ((param_3 != (int *)0x0) && (iVar3 == -1)) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar3 = *(int *)param_3[2];\n                if (iVar3 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n              else {\n                iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n                if (iVar3 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n            }\n            iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,iVar3);\n            if (iVar3 == 0) break;\n            if ((uint)param_3[2] < (uint)param_3[3]) {\n              param_3[2] = param_3[2] + 4;\nLAB_0034201c:\n              piVar7 = (int *)param_3[2];\n              if (piVar7 < (int *)param_3[3]) goto LAB_00342030;\nLAB_003422d0:\n              param_4 = (**(code **)(*param_3 + 0x24))(param_3);\n            }\n            else {\n              (**(code **)(*param_3 + 0x28))(param_3);\n              piVar7 = (int *)param_3[2];\n              if ((int *)param_3[3] <= piVar7) goto LAB_003422d0;\nLAB_00342030:\n              param_4 = *piVar7;\n            }\n            iVar3 = -1;\n            if (param_4 == -1) {\n              param_3 = (int *)0x0;\n            }\n          }\n        }\n      }\nLAB_00341f24:\n    } while ((param_10 != param_11) && (*param_8 == 0));\n  }\n  *param_1 = param_3;\n  param_1[1] = param_4;\n  return;\n}" primitive_type (function_declarator "FUN_00341d6c(undefined4 *param_1,int *param_2,int *param_3,int param_4,int *param_5,int param_6\n                 ,int param_7,uint *param_8,undefined4 param_9,undefined4 *param_10,\n                 undefined4 *param_11)" identifier (parameter_list "(undefined4 *param_1,int *param_2,int *param_3,int param_4,int *param_5,int param_6\n                 ,int param_7,uint *param_8,undefined4 param_9,undefined4 *param_10,\n                 undefined4 *param_11)" ( (parameter_declaration "undefined4 *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "int *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "int *param_3" primitive_type (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "int param_4" primitive_type identifier) , (parameter_declaration "int *param_5" primitive_type (pointer_declarator "*param_5" * identifier)) , (parameter_declaration "int param_6" primitive_type identifier) , (parameter_declaration "int param_7" primitive_type identifier) , (parameter_declaration "uint *param_8" type_identifier (pointer_declarator "*param_8" * identifier)) , (parameter_declaration "undefined4 param_9" type_identifier identifier) , (parameter_declaration "undefined4 *param_10" type_identifier (pointer_declarator "*param_10" * identifier)) , (parameter_declaration "undefined4 *param_11" type_identifier (pointer_declarator "*param_11" * identifier)) ))) (compound_statement "{\n  bool bVar1;\n  ctype *pcVar2;\n  int iVar3;\n  int iVar4;\n  int iVar5;\n  uint uVar6;\n  int *piVar7;\n  undefined4 *puVar8;\n  code *pcVar9;\n  undefined4 local_60;\n  int local_5c;\n  int local_58;\n  undefined4 local_54;\n  int *local_50;\n  int local_4c;\n  int *local_48;\n  int local_44;\n  int *local_40;\n  int local_3c;\n  code *local_38;\n  int local_34;\n  locale *local_30;\n  undefined4 *local_2c;\n  \n  local_30 = (locale *)(param_7 + 0x6c);\n  pcVar2 = std::use_facet<std::ctype<wchar_t>>(local_30);\n  *param_8 = 0;\n  local_38 = (code *)PTR_do_get_00433d80;\n  if (param_10 != param_11) {\n    local_2c = &local_60;\n    do {\n      iVar3 = param_4;\n      if ((param_3 != (int *)0x0) && (param_4 == -1)) {\n        if ((int *)param_3[2] < (int *)param_3[3]) {\n          iVar3 = *(int *)param_3[2];\n          if (iVar3 == -1) {\n            param_3 = (int *)0x0;\n          }\n        }\n        else {\n          iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n          if (iVar3 == -1) {\n            param_3 = (int *)0x0;\n          }\n        }\n      }\n      if ((param_5 == (int *)0x0) || (param_6 != -1)) {\n        bVar1 = param_6 == -1;\n      }\n      else {\n        if ((int *)param_5[2] < (int *)param_5[3]) {\n          iVar4 = *(int *)param_5[2];\n          if (iVar4 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }\n        else {\n          iVar4 = (**(code **)(*param_5 + 0x24))(param_5);\n          if (iVar4 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }\n        bVar1 = iVar4 == -1;\n      }\n      if (bVar1 == (iVar3 == -1)) {\n        *param_8 = 6;\n        *param_1 = param_3;\n        param_1[1] = param_4;\n        return;\n      }\n      iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,*param_10,0);\n      if (iVar3 == 0x25) {\n        puVar8 = param_10 + 1;\n        if (param_11 == puVar8) goto LAB_0034254c;\n        iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,param_10[1],0);\n        if ((iVar3 == 0x45) || (iVar3 == 0x4f)) {\n          puVar8 = param_10 + 2;\n          if (param_11 == puVar8) goto LAB_0034254c;\n          local_34 = iVar3;\n          iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,param_10[2],0);\n          pcVar9 = *(code **)(*param_2 + 0x20);\n          iVar4 = local_34;\n          if (pcVar9 != local_38) goto LAB_0034243c;\n          piVar7 = (int *)(*(code *)PTR_use_facet<std_ctype<wchar_t>>_00433ac8)(local_30);\n          pcVar9 = *(code **)(*piVar7 + 0x28);\n          *param_8 = 0;\n          local_60 = (*pcVar9)(piVar7,0x25);\n          if (local_34 == 0) goto LAB_003421b4;\n          local_5c = local_34;\n          local_54 = 0;\n          local_58 = iVar3;\n        }\n        else {\n          pcVar9 = *(code **)(*param_2 + 0x20);\n          if (pcVar9 != local_38) {\n            iVar4 = 0;\nLAB_0034243c:\n            param_10 = puVar8 + 1;\n            (*pcVar9)(&local_40,param_2,param_3,param_4,param_5,param_6,param_7,param_8,param_9,\n                      iVar3,iVar4);\n            param_4 = local_3c;\n            param_3 = local_40;\n            goto LAB_00341f24;\n          }\n          local_34 = iVar3;\n          piVar7 = (int *)(*(code *)PTR_use_facet<std_ctype<wchar_t>>_00433ac8)(local_30);\n          pcVar9 = *(code **)(*piVar7 + 0x28);\n          *param_8 = 0;\n          local_60 = (*pcVar9)(piVar7,0x25);\n          iVar3 = local_34;\nLAB_003421b4:\n          local_58 = 0;\n          local_5c = iVar3;\n        }\n        local_4c = param_6;\n        local_50 = param_5;\n        std::time_get<wchar_t,std::istreambuf_iterator<wchar_t,std::char_traits<wchar_t>>>::\n        _M_extract_via_format\n                  (&local_40,param_2,param_3,param_4,param_5,param_6,param_7,param_8,param_9,\n                   local_2c);\n        param_4 = local_3c;\n        param_3 = local_40;\n        local_48 = local_40;\n        local_44 = local_3c;\n        iVar3 = local_3c;\n        if ((local_40 != (int *)0x0) && (local_3c == -1)) {\n          if ((int *)local_40[2] < (int *)local_40[3]) {\n            iVar3 = *(int *)local_40[2];\n          }\n          else {\n            iVar3 = (**(code **)(*local_40 + 0x24))(local_40);\n          }\n          if (iVar3 == -1) {\n            param_3 = (int *)0x0;\n          }\n        }\n        iVar4 = param_6;\n        if ((param_5 != (int *)0x0) && (param_6 == -1)) {\n          if ((int *)param_5[2] < (int *)param_5[3]) {\n            iVar4 = *(int *)param_5[2];\n          }\n          else {\n            iVar4 = (**(code **)(*param_5 + 0x24))(param_5);\n          }\n        }\n        if ((iVar4 == -1) == (iVar3 == -1)) {\n          *param_8 = *param_8 | 2;\n        }\n        param_10 = puVar8 + 1;\n      }\n      else {\n        iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,*param_10);\n        if (iVar3 == 0) {\n          iVar4 = param_4;\n          iVar3 = param_4;\n          if (param_3 == (int *)0x0) {\nLAB_00342380:\n            iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,iVar4);\n            iVar5 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n            if (iVar5 != iVar4) {\n              param_3 = (int *)0x0;\nLAB_00341ed0:\n              iVar3 = (**(code **)(*(int *)pcVar2 + 0x18))(pcVar2,iVar3);\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x18))(pcVar2,*param_10);\n              if (iVar4 != iVar3) {\nLAB_0034254c:\n                *param_8 = 4;\n                *param_1 = param_3;\n                param_1[1] = param_4;\n                return;\n              }\n              goto LAB_00341f00;\n            }\n            param_3 = (int *)0x0;\n            uVar6 = uRam00000008;\n            if (uRam0000000c <= uRam00000008) goto LAB_003424f8;\nLAB_00341f14:\n            param_3[2] = uVar6 + 4;\n          }\n          else {\n            if (param_4 == -1) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar4 = *(int *)param_3[2];\n              }\n              else {\n                iVar4 = (**(code **)(*param_3 + 0x24))(param_3,0xffffffff);\n              }\n              if (iVar4 == -1) goto LAB_00342380;\n              iVar3 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2);\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n              if (iVar3 != iVar4) {\n                if ((int *)param_3[2] < (int *)param_3[3]) {\n                  iVar3 = *(int *)param_3[2];\n                  if (iVar3 == -1) {\n                    param_3 = (int *)0x0;\n                  }\n                }\n                else {\n                  iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n                  if (iVar3 == -1) {\n                    param_3 = (int *)0x0;\n                  }\n                }\n                goto LAB_00341ed0;\n              }\n            }\n            else {\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2);\n              iVar5 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n              if (iVar5 != iVar4) goto LAB_00341ed0;\n            }\nLAB_00341f00:\n            uVar6 = param_3[2];\n            if ((uint)param_3[2] < (uint)param_3[3]) goto LAB_00341f14;\nLAB_003424f8:\n            (**(code **)(*param_3 + 0x28))(param_3);\n          }\n          param_10 = param_10 + 1;\n          param_4 = -1;\n        }\n        else {\n          do {\n            param_10 = param_10 + 1;\n            if (param_11 == param_10) break;\n            iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,*param_10);\n          } while (iVar3 != 0);\n          iVar3 = param_4;\n          if ((param_3 != (int *)0x0) && (param_4 == -1)) goto LAB_0034201c;\n          while( true ) {\n            bVar1 = param_4 == -1;\n            iVar4 = param_6;\n            if ((param_5 != (int *)0x0) && (param_6 == -1)) {\n              if ((int *)param_5[2] < (int *)param_5[3]) {\n                iVar4 = *(int *)param_5[2];\n                if (iVar4 == -1) {\n                  param_5 = (int *)0x0;\n                }\n              }\n              else {\n                iVar4 = (**(code **)(*param_5 + 0x24))(param_5);\n                if (iVar4 == -1) {\n                  param_5 = (int *)0x0;\n                }\n              }\n            }\n            param_4 = iVar3;\n            if ((iVar4 == -1) == bVar1) break;\n            if ((param_3 != (int *)0x0) && (iVar3 == -1)) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar3 = *(int *)param_3[2];\n                if (iVar3 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n              else {\n                iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n                if (iVar3 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n            }\n            iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,iVar3);\n            if (iVar3 == 0) break;\n            if ((uint)param_3[2] < (uint)param_3[3]) {\n              param_3[2] = param_3[2] + 4;\nLAB_0034201c:\n              piVar7 = (int *)param_3[2];\n              if (piVar7 < (int *)param_3[3]) goto LAB_00342030;\nLAB_003422d0:\n              param_4 = (**(code **)(*param_3 + 0x24))(param_3);\n            }\n            else {\n              (**(code **)(*param_3 + 0x28))(param_3);\n              piVar7 = (int *)param_3[2];\n              if ((int *)param_3[3] <= piVar7) goto LAB_003422d0;\nLAB_00342030:\n              param_4 = *piVar7;\n            }\n            iVar3 = -1;\n            if (param_4 == -1) {\n              param_3 = (int *)0x0;\n            }\n          }\n        }\n      }\nLAB_00341f24:\n    } while ((param_10 != param_11) && (*param_8 == 0));\n  }\n  *param_1 = param_3;\n  param_1[1] = param_4;\n  return;\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "ctype *pcVar2;" type_identifier (pointer_declarator "*pcVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "int *piVar7;" primitive_type (pointer_declarator "*piVar7" * identifier) ;) (declaration "undefined4 *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "code *pcVar9;" type_identifier (pointer_declarator "*pcVar9" * identifier) ;) (declaration "undefined4 local_60;" type_identifier identifier ;) (declaration "int local_5c;" primitive_type identifier ;) (declaration "int local_58;" primitive_type identifier ;) (declaration "undefined4 local_54;" type_identifier identifier ;) (declaration "int *local_50;" primitive_type (pointer_declarator "*local_50" * identifier) ;) (declaration "int local_4c;" primitive_type identifier ;) (declaration "int *local_48;" primitive_type (pointer_declarator "*local_48" * identifier) ;) (declaration "int local_44;" primitive_type identifier ;) (declaration "int *local_40;" primitive_type (pointer_declarator "*local_40" * identifier) ;) (declaration "int local_3c;" primitive_type identifier ;) (declaration "code *local_38;" type_identifier (pointer_declarator "*local_38" * identifier) ;) (declaration "int local_34;" primitive_type identifier ;) (declaration "locale *local_30;" type_identifier (pointer_declarator "*local_30" * identifier) ;) (declaration "undefined4 *local_2c;" type_identifier (pointer_declarator "*local_2c" * identifier) ;) (expression_statement "local_30 = (locale *)(param_7 + 0x6c);" (assignment_expression "local_30 = (locale *)(param_7 + 0x6c)" identifier = (cast_expression "(locale *)(param_7 + 0x6c)" ( (type_descriptor "locale *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_7 + 0x6c)" ( (binary_expression "param_7 + 0x6c" identifier + number_literal) )))) ;) (expression_statement "pcVar2 = std::use_facet<std::ctype<wchar_t>>(local_30);" (binary_expression "pcVar2 = std::use_facet<std::ctype<wchar_t>>(local_30)" (binary_expression "pcVar2 = std::use_facet<std" (assignment_expression "pcVar2 = std" identifier = identifier) (ERROR "::use_facet" : : identifier) < identifier) (ERROR "::ctype" : : identifier) < (binary_expression "wchar_t>>(local_30)" identifier >> (parenthesized_expression "(local_30)" ( identifier )))) ;) (expression_statement "*param_8 = 0;" (assignment_expression "*param_8 = 0" (pointer_expression "*param_8" * identifier) = number_literal) ;) (expression_statement "local_38 = (code *)PTR_do_get_00433d80;" (assignment_expression "local_38 = (code *)PTR_do_get_00433d80" identifier = (cast_expression "(code *)PTR_do_get_00433d80" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (param_10 != param_11) {\n    local_2c = &local_60;\n    do {\n      iVar3 = param_4;\n      if ((param_3 != (int *)0x0) && (param_4 == -1)) {\n        if ((int *)param_3[2] < (int *)param_3[3]) {\n          iVar3 = *(int *)param_3[2];\n          if (iVar3 == -1) {\n            param_3 = (int *)0x0;\n          }\n        }\n        else {\n          iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n          if (iVar3 == -1) {\n            param_3 = (int *)0x0;\n          }\n        }\n      }\n      if ((param_5 == (int *)0x0) || (param_6 != -1)) {\n        bVar1 = param_6 == -1;\n      }\n      else {\n        if ((int *)param_5[2] < (int *)param_5[3]) {\n          iVar4 = *(int *)param_5[2];\n          if (iVar4 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }\n        else {\n          iVar4 = (**(code **)(*param_5 + 0x24))(param_5);\n          if (iVar4 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }\n        bVar1 = iVar4 == -1;\n      }\n      if (bVar1 == (iVar3 == -1)) {\n        *param_8 = 6;\n        *param_1 = param_3;\n        param_1[1] = param_4;\n        return;\n      }\n      iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,*param_10,0);\n      if (iVar3 == 0x25) {\n        puVar8 = param_10 + 1;\n        if (param_11 == puVar8) goto LAB_0034254c;\n        iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,param_10[1],0);\n        if ((iVar3 == 0x45) || (iVar3 == 0x4f)) {\n          puVar8 = param_10 + 2;\n          if (param_11 == puVar8) goto LAB_0034254c;\n          local_34 = iVar3;\n          iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,param_10[2],0);\n          pcVar9 = *(code **)(*param_2 + 0x20);\n          iVar4 = local_34;\n          if (pcVar9 != local_38) goto LAB_0034243c;\n          piVar7 = (int *)(*(code *)PTR_use_facet<std_ctype<wchar_t>>_00433ac8)(local_30);\n          pcVar9 = *(code **)(*piVar7 + 0x28);\n          *param_8 = 0;\n          local_60 = (*pcVar9)(piVar7,0x25);\n          if (local_34 == 0) goto LAB_003421b4;\n          local_5c = local_34;\n          local_54 = 0;\n          local_58 = iVar3;\n        }\n        else {\n          pcVar9 = *(code **)(*param_2 + 0x20);\n          if (pcVar9 != local_38) {\n            iVar4 = 0;\nLAB_0034243c:\n            param_10 = puVar8 + 1;\n            (*pcVar9)(&local_40,param_2,param_3,param_4,param_5,param_6,param_7,param_8,param_9,\n                      iVar3,iVar4);\n            param_4 = local_3c;\n            param_3 = local_40;\n            goto LAB_00341f24;\n          }\n          local_34 = iVar3;\n          piVar7 = (int *)(*(code *)PTR_use_facet<std_ctype<wchar_t>>_00433ac8)(local_30);\n          pcVar9 = *(code **)(*piVar7 + 0x28);\n          *param_8 = 0;\n          local_60 = (*pcVar9)(piVar7,0x25);\n          iVar3 = local_34;\nLAB_003421b4:\n          local_58 = 0;\n          local_5c = iVar3;\n        }\n        local_4c = param_6;\n        local_50 = param_5;\n        std::time_get<wchar_t,std::istreambuf_iterator<wchar_t,std::char_traits<wchar_t>>>::\n        _M_extract_via_format\n                  (&local_40,param_2,param_3,param_4,param_5,param_6,param_7,param_8,param_9,\n                   local_2c);\n        param_4 = local_3c;\n        param_3 = local_40;\n        local_48 = local_40;\n        local_44 = local_3c;\n        iVar3 = local_3c;\n        if ((local_40 != (int *)0x0) && (local_3c == -1)) {\n          if ((int *)local_40[2] < (int *)local_40[3]) {\n            iVar3 = *(int *)local_40[2];\n          }\n          else {\n            iVar3 = (**(code **)(*local_40 + 0x24))(local_40);\n          }\n          if (iVar3 == -1) {\n            param_3 = (int *)0x0;\n          }\n        }\n        iVar4 = param_6;\n        if ((param_5 != (int *)0x0) && (param_6 == -1)) {\n          if ((int *)param_5[2] < (int *)param_5[3]) {\n            iVar4 = *(int *)param_5[2];\n          }\n          else {\n            iVar4 = (**(code **)(*param_5 + 0x24))(param_5);\n          }\n        }\n        if ((iVar4 == -1) == (iVar3 == -1)) {\n          *param_8 = *param_8 | 2;\n        }\n        param_10 = puVar8 + 1;\n      }\n      else {\n        iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,*param_10);\n        if (iVar3 == 0) {\n          iVar4 = param_4;\n          iVar3 = param_4;\n          if (param_3 == (int *)0x0) {\nLAB_00342380:\n            iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,iVar4);\n            iVar5 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n            if (iVar5 != iVar4) {\n              param_3 = (int *)0x0;\nLAB_00341ed0:\n              iVar3 = (**(code **)(*(int *)pcVar2 + 0x18))(pcVar2,iVar3);\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x18))(pcVar2,*param_10);\n              if (iVar4 != iVar3) {\nLAB_0034254c:\n                *param_8 = 4;\n                *param_1 = param_3;\n                param_1[1] = param_4;\n                return;\n              }\n              goto LAB_00341f00;\n            }\n            param_3 = (int *)0x0;\n            uVar6 = uRam00000008;\n            if (uRam0000000c <= uRam00000008) goto LAB_003424f8;\nLAB_00341f14:\n            param_3[2] = uVar6 + 4;\n          }\n          else {\n            if (param_4 == -1) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar4 = *(int *)param_3[2];\n              }\n              else {\n                iVar4 = (**(code **)(*param_3 + 0x24))(param_3,0xffffffff);\n              }\n              if (iVar4 == -1) goto LAB_00342380;\n              iVar3 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2);\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n              if (iVar3 != iVar4) {\n                if ((int *)param_3[2] < (int *)param_3[3]) {\n                  iVar3 = *(int *)param_3[2];\n                  if (iVar3 == -1) {\n                    param_3 = (int *)0x0;\n                  }\n                }\n                else {\n                  iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n                  if (iVar3 == -1) {\n                    param_3 = (int *)0x0;\n                  }\n                }\n                goto LAB_00341ed0;\n              }\n            }\n            else {\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2);\n              iVar5 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n              if (iVar5 != iVar4) goto LAB_00341ed0;\n            }\nLAB_00341f00:\n            uVar6 = param_3[2];\n            if ((uint)param_3[2] < (uint)param_3[3]) goto LAB_00341f14;\nLAB_003424f8:\n            (**(code **)(*param_3 + 0x28))(param_3);\n          }\n          param_10 = param_10 + 1;\n          param_4 = -1;\n        }\n        else {\n          do {\n            param_10 = param_10 + 1;\n            if (param_11 == param_10) break;\n            iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,*param_10);\n          } while (iVar3 != 0);\n          iVar3 = param_4;\n          if ((param_3 != (int *)0x0) && (param_4 == -1)) goto LAB_0034201c;\n          while( true ) {\n            bVar1 = param_4 == -1;\n            iVar4 = param_6;\n            if ((param_5 != (int *)0x0) && (param_6 == -1)) {\n              if ((int *)param_5[2] < (int *)param_5[3]) {\n                iVar4 = *(int *)param_5[2];\n                if (iVar4 == -1) {\n                  param_5 = (int *)0x0;\n                }\n              }\n              else {\n                iVar4 = (**(code **)(*param_5 + 0x24))(param_5);\n                if (iVar4 == -1) {\n                  param_5 = (int *)0x0;\n                }\n              }\n            }\n            param_4 = iVar3;\n            if ((iVar4 == -1) == bVar1) break;\n            if ((param_3 != (int *)0x0) && (iVar3 == -1)) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar3 = *(int *)param_3[2];\n                if (iVar3 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n              else {\n                iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n                if (iVar3 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n            }\n            iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,iVar3);\n            if (iVar3 == 0) break;\n            if ((uint)param_3[2] < (uint)param_3[3]) {\n              param_3[2] = param_3[2] + 4;\nLAB_0034201c:\n              piVar7 = (int *)param_3[2];\n              if (piVar7 < (int *)param_3[3]) goto LAB_00342030;\nLAB_003422d0:\n              param_4 = (**(code **)(*param_3 + 0x24))(param_3);\n            }\n            else {\n              (**(code **)(*param_3 + 0x28))(param_3);\n              piVar7 = (int *)param_3[2];\n              if ((int *)param_3[3] <= piVar7) goto LAB_003422d0;\nLAB_00342030:\n              param_4 = *piVar7;\n            }\n            iVar3 = -1;\n            if (param_4 == -1) {\n              param_3 = (int *)0x0;\n            }\n          }\n        }\n      }\nLAB_00341f24:\n    } while ((param_10 != param_11) && (*param_8 == 0));\n  }" if (parenthesized_expression "(param_10 != param_11)" ( (binary_expression "param_10 != param_11" identifier != identifier) )) (compound_statement "{\n    local_2c = &local_60;\n    do {\n      iVar3 = param_4;\n      if ((param_3 != (int *)0x0) && (param_4 == -1)) {\n        if ((int *)param_3[2] < (int *)param_3[3]) {\n          iVar3 = *(int *)param_3[2];\n          if (iVar3 == -1) {\n            param_3 = (int *)0x0;\n          }\n        }\n        else {\n          iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n          if (iVar3 == -1) {\n            param_3 = (int *)0x0;\n          }\n        }\n      }\n      if ((param_5 == (int *)0x0) || (param_6 != -1)) {\n        bVar1 = param_6 == -1;\n      }\n      else {\n        if ((int *)param_5[2] < (int *)param_5[3]) {\n          iVar4 = *(int *)param_5[2];\n          if (iVar4 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }\n        else {\n          iVar4 = (**(code **)(*param_5 + 0x24))(param_5);\n          if (iVar4 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }\n        bVar1 = iVar4 == -1;\n      }\n      if (bVar1 == (iVar3 == -1)) {\n        *param_8 = 6;\n        *param_1 = param_3;\n        param_1[1] = param_4;\n        return;\n      }\n      iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,*param_10,0);\n      if (iVar3 == 0x25) {\n        puVar8 = param_10 + 1;\n        if (param_11 == puVar8) goto LAB_0034254c;\n        iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,param_10[1],0);\n        if ((iVar3 == 0x45) || (iVar3 == 0x4f)) {\n          puVar8 = param_10 + 2;\n          if (param_11 == puVar8) goto LAB_0034254c;\n          local_34 = iVar3;\n          iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,param_10[2],0);\n          pcVar9 = *(code **)(*param_2 + 0x20);\n          iVar4 = local_34;\n          if (pcVar9 != local_38) goto LAB_0034243c;\n          piVar7 = (int *)(*(code *)PTR_use_facet<std_ctype<wchar_t>>_00433ac8)(local_30);\n          pcVar9 = *(code **)(*piVar7 + 0x28);\n          *param_8 = 0;\n          local_60 = (*pcVar9)(piVar7,0x25);\n          if (local_34 == 0) goto LAB_003421b4;\n          local_5c = local_34;\n          local_54 = 0;\n          local_58 = iVar3;\n        }\n        else {\n          pcVar9 = *(code **)(*param_2 + 0x20);\n          if (pcVar9 != local_38) {\n            iVar4 = 0;\nLAB_0034243c:\n            param_10 = puVar8 + 1;\n            (*pcVar9)(&local_40,param_2,param_3,param_4,param_5,param_6,param_7,param_8,param_9,\n                      iVar3,iVar4);\n            param_4 = local_3c;\n            param_3 = local_40;\n            goto LAB_00341f24;\n          }\n          local_34 = iVar3;\n          piVar7 = (int *)(*(code *)PTR_use_facet<std_ctype<wchar_t>>_00433ac8)(local_30);\n          pcVar9 = *(code **)(*piVar7 + 0x28);\n          *param_8 = 0;\n          local_60 = (*pcVar9)(piVar7,0x25);\n          iVar3 = local_34;\nLAB_003421b4:\n          local_58 = 0;\n          local_5c = iVar3;\n        }\n        local_4c = param_6;\n        local_50 = param_5;\n        std::time_get<wchar_t,std::istreambuf_iterator<wchar_t,std::char_traits<wchar_t>>>::\n        _M_extract_via_format\n                  (&local_40,param_2,param_3,param_4,param_5,param_6,param_7,param_8,param_9,\n                   local_2c);\n        param_4 = local_3c;\n        param_3 = local_40;\n        local_48 = local_40;\n        local_44 = local_3c;\n        iVar3 = local_3c;\n        if ((local_40 != (int *)0x0) && (local_3c == -1)) {\n          if ((int *)local_40[2] < (int *)local_40[3]) {\n            iVar3 = *(int *)local_40[2];\n          }\n          else {\n            iVar3 = (**(code **)(*local_40 + 0x24))(local_40);\n          }\n          if (iVar3 == -1) {\n            param_3 = (int *)0x0;\n          }\n        }\n        iVar4 = param_6;\n        if ((param_5 != (int *)0x0) && (param_6 == -1)) {\n          if ((int *)param_5[2] < (int *)param_5[3]) {\n            iVar4 = *(int *)param_5[2];\n          }\n          else {\n            iVar4 = (**(code **)(*param_5 + 0x24))(param_5);\n          }\n        }\n        if ((iVar4 == -1) == (iVar3 == -1)) {\n          *param_8 = *param_8 | 2;\n        }\n        param_10 = puVar8 + 1;\n      }\n      else {\n        iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,*param_10);\n        if (iVar3 == 0) {\n          iVar4 = param_4;\n          iVar3 = param_4;\n          if (param_3 == (int *)0x0) {\nLAB_00342380:\n            iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,iVar4);\n            iVar5 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n            if (iVar5 != iVar4) {\n              param_3 = (int *)0x0;\nLAB_00341ed0:\n              iVar3 = (**(code **)(*(int *)pcVar2 + 0x18))(pcVar2,iVar3);\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x18))(pcVar2,*param_10);\n              if (iVar4 != iVar3) {\nLAB_0034254c:\n                *param_8 = 4;\n                *param_1 = param_3;\n                param_1[1] = param_4;\n                return;\n              }\n              goto LAB_00341f00;\n            }\n            param_3 = (int *)0x0;\n            uVar6 = uRam00000008;\n            if (uRam0000000c <= uRam00000008) goto LAB_003424f8;\nLAB_00341f14:\n            param_3[2] = uVar6 + 4;\n          }\n          else {\n            if (param_4 == -1) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar4 = *(int *)param_3[2];\n              }\n              else {\n                iVar4 = (**(code **)(*param_3 + 0x24))(param_3,0xffffffff);\n              }\n              if (iVar4 == -1) goto LAB_00342380;\n              iVar3 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2);\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n              if (iVar3 != iVar4) {\n                if ((int *)param_3[2] < (int *)param_3[3]) {\n                  iVar3 = *(int *)param_3[2];\n                  if (iVar3 == -1) {\n                    param_3 = (int *)0x0;\n                  }\n                }\n                else {\n                  iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n                  if (iVar3 == -1) {\n                    param_3 = (int *)0x0;\n                  }\n                }\n                goto LAB_00341ed0;\n              }\n            }\n            else {\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2);\n              iVar5 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n              if (iVar5 != iVar4) goto LAB_00341ed0;\n            }\nLAB_00341f00:\n            uVar6 = param_3[2];\n            if ((uint)param_3[2] < (uint)param_3[3]) goto LAB_00341f14;\nLAB_003424f8:\n            (**(code **)(*param_3 + 0x28))(param_3);\n          }\n          param_10 = param_10 + 1;\n          param_4 = -1;\n        }\n        else {\n          do {\n            param_10 = param_10 + 1;\n            if (param_11 == param_10) break;\n            iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,*param_10);\n          } while (iVar3 != 0);\n          iVar3 = param_4;\n          if ((param_3 != (int *)0x0) && (param_4 == -1)) goto LAB_0034201c;\n          while( true ) {\n            bVar1 = param_4 == -1;\n            iVar4 = param_6;\n            if ((param_5 != (int *)0x0) && (param_6 == -1)) {\n              if ((int *)param_5[2] < (int *)param_5[3]) {\n                iVar4 = *(int *)param_5[2];\n                if (iVar4 == -1) {\n                  param_5 = (int *)0x0;\n                }\n              }\n              else {\n                iVar4 = (**(code **)(*param_5 + 0x24))(param_5);\n                if (iVar4 == -1) {\n                  param_5 = (int *)0x0;\n                }\n              }\n            }\n            param_4 = iVar3;\n            if ((iVar4 == -1) == bVar1) break;\n            if ((param_3 != (int *)0x0) && (iVar3 == -1)) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar3 = *(int *)param_3[2];\n                if (iVar3 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n              else {\n                iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n                if (iVar3 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n            }\n            iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,iVar3);\n            if (iVar3 == 0) break;\n            if ((uint)param_3[2] < (uint)param_3[3]) {\n              param_3[2] = param_3[2] + 4;\nLAB_0034201c:\n              piVar7 = (int *)param_3[2];\n              if (piVar7 < (int *)param_3[3]) goto LAB_00342030;\nLAB_003422d0:\n              param_4 = (**(code **)(*param_3 + 0x24))(param_3);\n            }\n            else {\n              (**(code **)(*param_3 + 0x28))(param_3);\n              piVar7 = (int *)param_3[2];\n              if ((int *)param_3[3] <= piVar7) goto LAB_003422d0;\nLAB_00342030:\n              param_4 = *piVar7;\n            }\n            iVar3 = -1;\n            if (param_4 == -1) {\n              param_3 = (int *)0x0;\n            }\n          }\n        }\n      }\nLAB_00341f24:\n    } while ((param_10 != param_11) && (*param_8 == 0));\n  }" { (expression_statement "local_2c = &local_60;" (assignment_expression "local_2c = &local_60" identifier = (pointer_expression "&local_60" & identifier)) ;) (do_statement "do {\n      iVar3 = param_4;\n      if ((param_3 != (int *)0x0) && (param_4 == -1)) {\n        if ((int *)param_3[2] < (int *)param_3[3]) {\n          iVar3 = *(int *)param_3[2];\n          if (iVar3 == -1) {\n            param_3 = (int *)0x0;\n          }\n        }\n        else {\n          iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n          if (iVar3 == -1) {\n            param_3 = (int *)0x0;\n          }\n        }\n      }\n      if ((param_5 == (int *)0x0) || (param_6 != -1)) {\n        bVar1 = param_6 == -1;\n      }\n      else {\n        if ((int *)param_5[2] < (int *)param_5[3]) {\n          iVar4 = *(int *)param_5[2];\n          if (iVar4 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }\n        else {\n          iVar4 = (**(code **)(*param_5 + 0x24))(param_5);\n          if (iVar4 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }\n        bVar1 = iVar4 == -1;\n      }\n      if (bVar1 == (iVar3 == -1)) {\n        *param_8 = 6;\n        *param_1 = param_3;\n        param_1[1] = param_4;\n        return;\n      }\n      iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,*param_10,0);\n      if (iVar3 == 0x25) {\n        puVar8 = param_10 + 1;\n        if (param_11 == puVar8) goto LAB_0034254c;\n        iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,param_10[1],0);\n        if ((iVar3 == 0x45) || (iVar3 == 0x4f)) {\n          puVar8 = param_10 + 2;\n          if (param_11 == puVar8) goto LAB_0034254c;\n          local_34 = iVar3;\n          iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,param_10[2],0);\n          pcVar9 = *(code **)(*param_2 + 0x20);\n          iVar4 = local_34;\n          if (pcVar9 != local_38) goto LAB_0034243c;\n          piVar7 = (int *)(*(code *)PTR_use_facet<std_ctype<wchar_t>>_00433ac8)(local_30);\n          pcVar9 = *(code **)(*piVar7 + 0x28);\n          *param_8 = 0;\n          local_60 = (*pcVar9)(piVar7,0x25);\n          if (local_34 == 0) goto LAB_003421b4;\n          local_5c = local_34;\n          local_54 = 0;\n          local_58 = iVar3;\n        }\n        else {\n          pcVar9 = *(code **)(*param_2 + 0x20);\n          if (pcVar9 != local_38) {\n            iVar4 = 0;\nLAB_0034243c:\n            param_10 = puVar8 + 1;\n            (*pcVar9)(&local_40,param_2,param_3,param_4,param_5,param_6,param_7,param_8,param_9,\n                      iVar3,iVar4);\n            param_4 = local_3c;\n            param_3 = local_40;\n            goto LAB_00341f24;\n          }\n          local_34 = iVar3;\n          piVar7 = (int *)(*(code *)PTR_use_facet<std_ctype<wchar_t>>_00433ac8)(local_30);\n          pcVar9 = *(code **)(*piVar7 + 0x28);\n          *param_8 = 0;\n          local_60 = (*pcVar9)(piVar7,0x25);\n          iVar3 = local_34;\nLAB_003421b4:\n          local_58 = 0;\n          local_5c = iVar3;\n        }\n        local_4c = param_6;\n        local_50 = param_5;\n        std::time_get<wchar_t,std::istreambuf_iterator<wchar_t,std::char_traits<wchar_t>>>::\n        _M_extract_via_format\n                  (&local_40,param_2,param_3,param_4,param_5,param_6,param_7,param_8,param_9,\n                   local_2c);\n        param_4 = local_3c;\n        param_3 = local_40;\n        local_48 = local_40;\n        local_44 = local_3c;\n        iVar3 = local_3c;\n        if ((local_40 != (int *)0x0) && (local_3c == -1)) {\n          if ((int *)local_40[2] < (int *)local_40[3]) {\n            iVar3 = *(int *)local_40[2];\n          }\n          else {\n            iVar3 = (**(code **)(*local_40 + 0x24))(local_40);\n          }\n          if (iVar3 == -1) {\n            param_3 = (int *)0x0;\n          }\n        }\n        iVar4 = param_6;\n        if ((param_5 != (int *)0x0) && (param_6 == -1)) {\n          if ((int *)param_5[2] < (int *)param_5[3]) {\n            iVar4 = *(int *)param_5[2];\n          }\n          else {\n            iVar4 = (**(code **)(*param_5 + 0x24))(param_5);\n          }\n        }\n        if ((iVar4 == -1) == (iVar3 == -1)) {\n          *param_8 = *param_8 | 2;\n        }\n        param_10 = puVar8 + 1;\n      }\n      else {\n        iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,*param_10);\n        if (iVar3 == 0) {\n          iVar4 = param_4;\n          iVar3 = param_4;\n          if (param_3 == (int *)0x0) {\nLAB_00342380:\n            iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,iVar4);\n            iVar5 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n            if (iVar5 != iVar4) {\n              param_3 = (int *)0x0;\nLAB_00341ed0:\n              iVar3 = (**(code **)(*(int *)pcVar2 + 0x18))(pcVar2,iVar3);\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x18))(pcVar2,*param_10);\n              if (iVar4 != iVar3) {\nLAB_0034254c:\n                *param_8 = 4;\n                *param_1 = param_3;\n                param_1[1] = param_4;\n                return;\n              }\n              goto LAB_00341f00;\n            }\n            param_3 = (int *)0x0;\n            uVar6 = uRam00000008;\n            if (uRam0000000c <= uRam00000008) goto LAB_003424f8;\nLAB_00341f14:\n            param_3[2] = uVar6 + 4;\n          }\n          else {\n            if (param_4 == -1) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar4 = *(int *)param_3[2];\n              }\n              else {\n                iVar4 = (**(code **)(*param_3 + 0x24))(param_3,0xffffffff);\n              }\n              if (iVar4 == -1) goto LAB_00342380;\n              iVar3 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2);\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n              if (iVar3 != iVar4) {\n                if ((int *)param_3[2] < (int *)param_3[3]) {\n                  iVar3 = *(int *)param_3[2];\n                  if (iVar3 == -1) {\n                    param_3 = (int *)0x0;\n                  }\n                }\n                else {\n                  iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n                  if (iVar3 == -1) {\n                    param_3 = (int *)0x0;\n                  }\n                }\n                goto LAB_00341ed0;\n              }\n            }\n            else {\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2);\n              iVar5 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n              if (iVar5 != iVar4) goto LAB_00341ed0;\n            }\nLAB_00341f00:\n            uVar6 = param_3[2];\n            if ((uint)param_3[2] < (uint)param_3[3]) goto LAB_00341f14;\nLAB_003424f8:\n            (**(code **)(*param_3 + 0x28))(param_3);\n          }\n          param_10 = param_10 + 1;\n          param_4 = -1;\n        }\n        else {\n          do {\n            param_10 = param_10 + 1;\n            if (param_11 == param_10) break;\n            iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,*param_10);\n          } while (iVar3 != 0);\n          iVar3 = param_4;\n          if ((param_3 != (int *)0x0) && (param_4 == -1)) goto LAB_0034201c;\n          while( true ) {\n            bVar1 = param_4 == -1;\n            iVar4 = param_6;\n            if ((param_5 != (int *)0x0) && (param_6 == -1)) {\n              if ((int *)param_5[2] < (int *)param_5[3]) {\n                iVar4 = *(int *)param_5[2];\n                if (iVar4 == -1) {\n                  param_5 = (int *)0x0;\n                }\n              }\n              else {\n                iVar4 = (**(code **)(*param_5 + 0x24))(param_5);\n                if (iVar4 == -1) {\n                  param_5 = (int *)0x0;\n                }\n              }\n            }\n            param_4 = iVar3;\n            if ((iVar4 == -1) == bVar1) break;\n            if ((param_3 != (int *)0x0) && (iVar3 == -1)) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar3 = *(int *)param_3[2];\n                if (iVar3 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n              else {\n                iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n                if (iVar3 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n            }\n            iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,iVar3);\n            if (iVar3 == 0) break;\n            if ((uint)param_3[2] < (uint)param_3[3]) {\n              param_3[2] = param_3[2] + 4;\nLAB_0034201c:\n              piVar7 = (int *)param_3[2];\n              if (piVar7 < (int *)param_3[3]) goto LAB_00342030;\nLAB_003422d0:\n              param_4 = (**(code **)(*param_3 + 0x24))(param_3);\n            }\n            else {\n              (**(code **)(*param_3 + 0x28))(param_3);\n              piVar7 = (int *)param_3[2];\n              if ((int *)param_3[3] <= piVar7) goto LAB_003422d0;\nLAB_00342030:\n              param_4 = *piVar7;\n            }\n            iVar3 = -1;\n            if (param_4 == -1) {\n              param_3 = (int *)0x0;\n            }\n          }\n        }\n      }\nLAB_00341f24:\n    } while ((param_10 != param_11) && (*param_8 == 0));" do (compound_statement "{\n      iVar3 = param_4;\n      if ((param_3 != (int *)0x0) && (param_4 == -1)) {\n        if ((int *)param_3[2] < (int *)param_3[3]) {\n          iVar3 = *(int *)param_3[2];\n          if (iVar3 == -1) {\n            param_3 = (int *)0x0;\n          }\n        }\n        else {\n          iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n          if (iVar3 == -1) {\n            param_3 = (int *)0x0;\n          }\n        }\n      }\n      if ((param_5 == (int *)0x0) || (param_6 != -1)) {\n        bVar1 = param_6 == -1;\n      }\n      else {\n        if ((int *)param_5[2] < (int *)param_5[3]) {\n          iVar4 = *(int *)param_5[2];\n          if (iVar4 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }\n        else {\n          iVar4 = (**(code **)(*param_5 + 0x24))(param_5);\n          if (iVar4 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }\n        bVar1 = iVar4 == -1;\n      }\n      if (bVar1 == (iVar3 == -1)) {\n        *param_8 = 6;\n        *param_1 = param_3;\n        param_1[1] = param_4;\n        return;\n      }\n      iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,*param_10,0);\n      if (iVar3 == 0x25) {\n        puVar8 = param_10 + 1;\n        if (param_11 == puVar8) goto LAB_0034254c;\n        iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,param_10[1],0);\n        if ((iVar3 == 0x45) || (iVar3 == 0x4f)) {\n          puVar8 = param_10 + 2;\n          if (param_11 == puVar8) goto LAB_0034254c;\n          local_34 = iVar3;\n          iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,param_10[2],0);\n          pcVar9 = *(code **)(*param_2 + 0x20);\n          iVar4 = local_34;\n          if (pcVar9 != local_38) goto LAB_0034243c;\n          piVar7 = (int *)(*(code *)PTR_use_facet<std_ctype<wchar_t>>_00433ac8)(local_30);\n          pcVar9 = *(code **)(*piVar7 + 0x28);\n          *param_8 = 0;\n          local_60 = (*pcVar9)(piVar7,0x25);\n          if (local_34 == 0) goto LAB_003421b4;\n          local_5c = local_34;\n          local_54 = 0;\n          local_58 = iVar3;\n        }\n        else {\n          pcVar9 = *(code **)(*param_2 + 0x20);\n          if (pcVar9 != local_38) {\n            iVar4 = 0;\nLAB_0034243c:\n            param_10 = puVar8 + 1;\n            (*pcVar9)(&local_40,param_2,param_3,param_4,param_5,param_6,param_7,param_8,param_9,\n                      iVar3,iVar4);\n            param_4 = local_3c;\n            param_3 = local_40;\n            goto LAB_00341f24;\n          }\n          local_34 = iVar3;\n          piVar7 = (int *)(*(code *)PTR_use_facet<std_ctype<wchar_t>>_00433ac8)(local_30);\n          pcVar9 = *(code **)(*piVar7 + 0x28);\n          *param_8 = 0;\n          local_60 = (*pcVar9)(piVar7,0x25);\n          iVar3 = local_34;\nLAB_003421b4:\n          local_58 = 0;\n          local_5c = iVar3;\n        }\n        local_4c = param_6;\n        local_50 = param_5;\n        std::time_get<wchar_t,std::istreambuf_iterator<wchar_t,std::char_traits<wchar_t>>>::\n        _M_extract_via_format\n                  (&local_40,param_2,param_3,param_4,param_5,param_6,param_7,param_8,param_9,\n                   local_2c);\n        param_4 = local_3c;\n        param_3 = local_40;\n        local_48 = local_40;\n        local_44 = local_3c;\n        iVar3 = local_3c;\n        if ((local_40 != (int *)0x0) && (local_3c == -1)) {\n          if ((int *)local_40[2] < (int *)local_40[3]) {\n            iVar3 = *(int *)local_40[2];\n          }\n          else {\n            iVar3 = (**(code **)(*local_40 + 0x24))(local_40);\n          }\n          if (iVar3 == -1) {\n            param_3 = (int *)0x0;\n          }\n        }\n        iVar4 = param_6;\n        if ((param_5 != (int *)0x0) && (param_6 == -1)) {\n          if ((int *)param_5[2] < (int *)param_5[3]) {\n            iVar4 = *(int *)param_5[2];\n          }\n          else {\n            iVar4 = (**(code **)(*param_5 + 0x24))(param_5);\n          }\n        }\n        if ((iVar4 == -1) == (iVar3 == -1)) {\n          *param_8 = *param_8 | 2;\n        }\n        param_10 = puVar8 + 1;\n      }\n      else {\n        iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,*param_10);\n        if (iVar3 == 0) {\n          iVar4 = param_4;\n          iVar3 = param_4;\n          if (param_3 == (int *)0x0) {\nLAB_00342380:\n            iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,iVar4);\n            iVar5 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n            if (iVar5 != iVar4) {\n              param_3 = (int *)0x0;\nLAB_00341ed0:\n              iVar3 = (**(code **)(*(int *)pcVar2 + 0x18))(pcVar2,iVar3);\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x18))(pcVar2,*param_10);\n              if (iVar4 != iVar3) {\nLAB_0034254c:\n                *param_8 = 4;\n                *param_1 = param_3;\n                param_1[1] = param_4;\n                return;\n              }\n              goto LAB_00341f00;\n            }\n            param_3 = (int *)0x0;\n            uVar6 = uRam00000008;\n            if (uRam0000000c <= uRam00000008) goto LAB_003424f8;\nLAB_00341f14:\n            param_3[2] = uVar6 + 4;\n          }\n          else {\n            if (param_4 == -1) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar4 = *(int *)param_3[2];\n              }\n              else {\n                iVar4 = (**(code **)(*param_3 + 0x24))(param_3,0xffffffff);\n              }\n              if (iVar4 == -1) goto LAB_00342380;\n              iVar3 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2);\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n              if (iVar3 != iVar4) {\n                if ((int *)param_3[2] < (int *)param_3[3]) {\n                  iVar3 = *(int *)param_3[2];\n                  if (iVar3 == -1) {\n                    param_3 = (int *)0x0;\n                  }\n                }\n                else {\n                  iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n                  if (iVar3 == -1) {\n                    param_3 = (int *)0x0;\n                  }\n                }\n                goto LAB_00341ed0;\n              }\n            }\n            else {\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2);\n              iVar5 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n              if (iVar5 != iVar4) goto LAB_00341ed0;\n            }\nLAB_00341f00:\n            uVar6 = param_3[2];\n            if ((uint)param_3[2] < (uint)param_3[3]) goto LAB_00341f14;\nLAB_003424f8:\n            (**(code **)(*param_3 + 0x28))(param_3);\n          }\n          param_10 = param_10 + 1;\n          param_4 = -1;\n        }\n        else {\n          do {\n            param_10 = param_10 + 1;\n            if (param_11 == param_10) break;\n            iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,*param_10);\n          } while (iVar3 != 0);\n          iVar3 = param_4;\n          if ((param_3 != (int *)0x0) && (param_4 == -1)) goto LAB_0034201c;\n          while( true ) {\n            bVar1 = param_4 == -1;\n            iVar4 = param_6;\n            if ((param_5 != (int *)0x0) && (param_6 == -1)) {\n              if ((int *)param_5[2] < (int *)param_5[3]) {\n                iVar4 = *(int *)param_5[2];\n                if (iVar4 == -1) {\n                  param_5 = (int *)0x0;\n                }\n              }\n              else {\n                iVar4 = (**(code **)(*param_5 + 0x24))(param_5);\n                if (iVar4 == -1) {\n                  param_5 = (int *)0x0;\n                }\n              }\n            }\n            param_4 = iVar3;\n            if ((iVar4 == -1) == bVar1) break;\n            if ((param_3 != (int *)0x0) && (iVar3 == -1)) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar3 = *(int *)param_3[2];\n                if (iVar3 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n              else {\n                iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n                if (iVar3 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n            }\n            iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,iVar3);\n            if (iVar3 == 0) break;\n            if ((uint)param_3[2] < (uint)param_3[3]) {\n              param_3[2] = param_3[2] + 4;\nLAB_0034201c:\n              piVar7 = (int *)param_3[2];\n              if (piVar7 < (int *)param_3[3]) goto LAB_00342030;\nLAB_003422d0:\n              param_4 = (**(code **)(*param_3 + 0x24))(param_3);\n            }\n            else {\n              (**(code **)(*param_3 + 0x28))(param_3);\n              piVar7 = (int *)param_3[2];\n              if ((int *)param_3[3] <= piVar7) goto LAB_003422d0;\nLAB_00342030:\n              param_4 = *piVar7;\n            }\n            iVar3 = -1;\n            if (param_4 == -1) {\n              param_3 = (int *)0x0;\n            }\n          }\n        }\n      }\nLAB_00341f24:\n    }" { (expression_statement "iVar3 = param_4;" (assignment_expression "iVar3 = param_4" identifier = identifier) ;) (if_statement "if ((param_3 != (int *)0x0) && (param_4 == -1)) {\n        if ((int *)param_3[2] < (int *)param_3[3]) {\n          iVar3 = *(int *)param_3[2];\n          if (iVar3 == -1) {\n            param_3 = (int *)0x0;\n          }\n        }\n        else {\n          iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n          if (iVar3 == -1) {\n            param_3 = (int *)0x0;\n          }\n        }\n      }" if (parenthesized_expression "((param_3 != (int *)0x0) && (param_4 == -1))" ( (binary_expression "(param_3 != (int *)0x0) && (param_4 == -1)" (parenthesized_expression "(param_3 != (int *)0x0)" ( (binary_expression "param_3 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(param_4 == -1)" ( (binary_expression "param_4 == -1" identifier == number_literal) ))) )) (compound_statement "{\n        if ((int *)param_3[2] < (int *)param_3[3]) {\n          iVar3 = *(int *)param_3[2];\n          if (iVar3 == -1) {\n            param_3 = (int *)0x0;\n          }\n        }\n        else {\n          iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n          if (iVar3 == -1) {\n            param_3 = (int *)0x0;\n          }\n        }\n      }" { (if_statement "if ((int *)param_3[2] < (int *)param_3[3]) {\n          iVar3 = *(int *)param_3[2];\n          if (iVar3 == -1) {\n            param_3 = (int *)0x0;\n          }\n        }\n        else {\n          iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n          if (iVar3 == -1) {\n            param_3 = (int *)0x0;\n          }\n        }" if (parenthesized_expression "((int *)param_3[2] < (int *)param_3[3])" ( (binary_expression "(int *)param_3[2] < (int *)param_3[3]" (cast_expression "(int *)param_3[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[2]" identifier [ number_literal ])) < (cast_expression "(int *)param_3[3]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[3]" identifier [ number_literal ]))) )) (compound_statement "{\n          iVar3 = *(int *)param_3[2];\n          if (iVar3 == -1) {\n            param_3 = (int *)0x0;\n          }\n        }" { (expression_statement "iVar3 = *(int *)param_3[2];" (assignment_expression "iVar3 = *(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 "*" *)) ) (subscript_expression "param_3[2]" identifier [ number_literal ])))) ;) (if_statement "if (iVar3 == -1) {\n            param_3 = (int *)0x0;\n          }" if (parenthesized_expression "(iVar3 == -1)" ( (binary_expression "iVar3 == -1" identifier == number_literal) )) (compound_statement "{\n            param_3 = (int *)0x0;\n          }" { (expression_statement "param_3 = (int *)0x0;" (assignment_expression "param_3 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) }) (else_clause "else {\n          iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n          if (iVar3 == -1) {\n            param_3 = (int *)0x0;\n          }\n        }" else (compound_statement "{\n          iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n          if (iVar3 == -1) {\n            param_3 = (int *)0x0;\n          }\n        }" { (expression_statement "iVar3 = (**(code **)(*param_3 + 0x24))(param_3);" (assignment_expression "iVar3 = (**(code **)(*param_3 + 0x24))(param_3)" identifier = (call_expression "(**(code **)(*param_3 + 0x24))(param_3)" (parenthesized_expression "(**(code **)(*param_3 + 0x24))" ( (pointer_expression "**(code **)(*param_3 + 0x24)" * (pointer_expression "*(code **)(*param_3 + 0x24)" * (cast_expression "(code **)(*param_3 + 0x24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_3 + 0x24)" ( (binary_expression "*param_3 + 0x24" (pointer_expression "*param_3" * identifier) + number_literal) ))))) )) (argument_list "(param_3)" ( identifier )))) ;) (if_statement "if (iVar3 == -1) {\n            param_3 = (int *)0x0;\n          }" if (parenthesized_expression "(iVar3 == -1)" ( (binary_expression "iVar3 == -1" identifier == number_literal) )) (compound_statement "{\n            param_3 = (int *)0x0;\n          }" { (expression_statement "param_3 = (int *)0x0;" (assignment_expression "param_3 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) }))) })) (if_statement "if ((param_5 == (int *)0x0) || (param_6 != -1)) {\n        bVar1 = param_6 == -1;\n      }\n      else {\n        if ((int *)param_5[2] < (int *)param_5[3]) {\n          iVar4 = *(int *)param_5[2];\n          if (iVar4 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }\n        else {\n          iVar4 = (**(code **)(*param_5 + 0x24))(param_5);\n          if (iVar4 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }\n        bVar1 = iVar4 == -1;\n      }" if (parenthesized_expression "((param_5 == (int *)0x0) || (param_6 != -1))" ( (binary_expression "(param_5 == (int *)0x0) || (param_6 != -1)" (parenthesized_expression "(param_5 == (int *)0x0)" ( (binary_expression "param_5 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(param_6 != -1)" ( (binary_expression "param_6 != -1" identifier != number_literal) ))) )) (compound_statement "{\n        bVar1 = param_6 == -1;\n      }" { (expression_statement "bVar1 = param_6 == -1;" (assignment_expression "bVar1 = param_6 == -1" identifier = (binary_expression "param_6 == -1" identifier == number_literal)) ;) }) (else_clause "else {\n        if ((int *)param_5[2] < (int *)param_5[3]) {\n          iVar4 = *(int *)param_5[2];\n          if (iVar4 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }\n        else {\n          iVar4 = (**(code **)(*param_5 + 0x24))(param_5);\n          if (iVar4 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }\n        bVar1 = iVar4 == -1;\n      }" else (compound_statement "{\n        if ((int *)param_5[2] < (int *)param_5[3]) {\n          iVar4 = *(int *)param_5[2];\n          if (iVar4 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }\n        else {\n          iVar4 = (**(code **)(*param_5 + 0x24))(param_5);\n          if (iVar4 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }\n        bVar1 = iVar4 == -1;\n      }" { (if_statement "if ((int *)param_5[2] < (int *)param_5[3]) {\n          iVar4 = *(int *)param_5[2];\n          if (iVar4 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }\n        else {\n          iVar4 = (**(code **)(*param_5 + 0x24))(param_5);\n          if (iVar4 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }" if (parenthesized_expression "((int *)param_5[2] < (int *)param_5[3])" ( (binary_expression "(int *)param_5[2] < (int *)param_5[3]" (cast_expression "(int *)param_5[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_5[2]" identifier [ number_literal ])) < (cast_expression "(int *)param_5[3]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_5[3]" identifier [ number_literal ]))) )) (compound_statement "{\n          iVar4 = *(int *)param_5[2];\n          if (iVar4 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }" { (expression_statement "iVar4 = *(int *)param_5[2];" (assignment_expression "iVar4 = *(int *)param_5[2]" identifier = (pointer_expression "*(int *)param_5[2]" * (cast_expression "(int *)param_5[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_5[2]" identifier [ number_literal ])))) ;) (if_statement "if (iVar4 == -1) {\n            param_5 = (int *)0x0;\n          }" if (parenthesized_expression "(iVar4 == -1)" ( (binary_expression "iVar4 == -1" identifier == number_literal) )) (compound_statement "{\n            param_5 = (int *)0x0;\n          }" { (expression_statement "param_5 = (int *)0x0;" (assignment_expression "param_5 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) }) (else_clause "else {\n          iVar4 = (**(code **)(*param_5 + 0x24))(param_5);\n          if (iVar4 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }" else (compound_statement "{\n          iVar4 = (**(code **)(*param_5 + 0x24))(param_5);\n          if (iVar4 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }" { (expression_statement "iVar4 = (**(code **)(*param_5 + 0x24))(param_5);" (assignment_expression "iVar4 = (**(code **)(*param_5 + 0x24))(param_5)" identifier = (call_expression "(**(code **)(*param_5 + 0x24))(param_5)" (parenthesized_expression "(**(code **)(*param_5 + 0x24))" ( (pointer_expression "**(code **)(*param_5 + 0x24)" * (pointer_expression "*(code **)(*param_5 + 0x24)" * (cast_expression "(code **)(*param_5 + 0x24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_5 + 0x24)" ( (binary_expression "*param_5 + 0x24" (pointer_expression "*param_5" * identifier) + number_literal) ))))) )) (argument_list "(param_5)" ( identifier )))) ;) (if_statement "if (iVar4 == -1) {\n            param_5 = (int *)0x0;\n          }" if (parenthesized_expression "(iVar4 == -1)" ( (binary_expression "iVar4 == -1" identifier == number_literal) )) (compound_statement "{\n            param_5 = (int *)0x0;\n          }" { (expression_statement "param_5 = (int *)0x0;" (assignment_expression "param_5 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) }))) (expression_statement "bVar1 = iVar4 == -1;" (assignment_expression "bVar1 = iVar4 == -1" identifier = (binary_expression "iVar4 == -1" identifier == number_literal)) ;) }))) (if_statement "if (bVar1 == (iVar3 == -1)) {\n        *param_8 = 6;\n        *param_1 = param_3;\n        param_1[1] = param_4;\n        return;\n      }" if (parenthesized_expression "(bVar1 == (iVar3 == -1))" ( (binary_expression "bVar1 == (iVar3 == -1)" identifier == (parenthesized_expression "(iVar3 == -1)" ( (binary_expression "iVar3 == -1" identifier == number_literal) ))) )) (compound_statement "{\n        *param_8 = 6;\n        *param_1 = param_3;\n        param_1[1] = param_4;\n        return;\n      }" { (expression_statement "*param_8 = 6;" (assignment_expression "*param_8 = 6" (pointer_expression "*param_8" * identifier) = number_literal) ;) (expression_statement "*param_1 = param_3;" (assignment_expression "*param_1 = param_3" (pointer_expression "*param_1" * identifier) = identifier) ;) (expression_statement "param_1[1] = param_4;" (assignment_expression "param_1[1] = param_4" (subscript_expression "param_1[1]" identifier [ number_literal ]) = identifier) ;) (return_statement "return;" return ;) })) (expression_statement "iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,*param_10,0);" (assignment_expression "iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,*param_10,0)" identifier = (call_expression "(**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,*param_10,0)" (parenthesized_expression "(**(code **)(*(int *)pcVar2 + 0x30))" ( (pointer_expression "**(code **)(*(int *)pcVar2 + 0x30)" * (pointer_expression "*(code **)(*(int *)pcVar2 + 0x30)" * (cast_expression "(code **)(*(int *)pcVar2 + 0x30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)pcVar2 + 0x30)" ( (binary_expression "*(int *)pcVar2 + 0x30" (pointer_expression "*(int *)pcVar2" * (cast_expression "(int *)pcVar2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) )) (argument_list "(pcVar2,*param_10,0)" ( identifier , (pointer_expression "*param_10" * identifier) , number_literal )))) ;) (if_statement "if (iVar3 == 0x25) {\n        puVar8 = param_10 + 1;\n        if (param_11 == puVar8) goto LAB_0034254c;\n        iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,param_10[1],0);\n        if ((iVar3 == 0x45) || (iVar3 == 0x4f)) {\n          puVar8 = param_10 + 2;\n          if (param_11 == puVar8) goto LAB_0034254c;\n          local_34 = iVar3;\n          iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,param_10[2],0);\n          pcVar9 = *(code **)(*param_2 + 0x20);\n          iVar4 = local_34;\n          if (pcVar9 != local_38) goto LAB_0034243c;\n          piVar7 = (int *)(*(code *)PTR_use_facet<std_ctype<wchar_t>>_00433ac8)(local_30);\n          pcVar9 = *(code **)(*piVar7 + 0x28);\n          *param_8 = 0;\n          local_60 = (*pcVar9)(piVar7,0x25);\n          if (local_34 == 0) goto LAB_003421b4;\n          local_5c = local_34;\n          local_54 = 0;\n          local_58 = iVar3;\n        }\n        else {\n          pcVar9 = *(code **)(*param_2 + 0x20);\n          if (pcVar9 != local_38) {\n            iVar4 = 0;\nLAB_0034243c:\n            param_10 = puVar8 + 1;\n            (*pcVar9)(&local_40,param_2,param_3,param_4,param_5,param_6,param_7,param_8,param_9,\n                      iVar3,iVar4);\n            param_4 = local_3c;\n            param_3 = local_40;\n            goto LAB_00341f24;\n          }\n          local_34 = iVar3;\n          piVar7 = (int *)(*(code *)PTR_use_facet<std_ctype<wchar_t>>_00433ac8)(local_30);\n          pcVar9 = *(code **)(*piVar7 + 0x28);\n          *param_8 = 0;\n          local_60 = (*pcVar9)(piVar7,0x25);\n          iVar3 = local_34;\nLAB_003421b4:\n          local_58 = 0;\n          local_5c = iVar3;\n        }\n        local_4c = param_6;\n        local_50 = param_5;\n        std::time_get<wchar_t,std::istreambuf_iterator<wchar_t,std::char_traits<wchar_t>>>::\n        _M_extract_via_format\n                  (&local_40,param_2,param_3,param_4,param_5,param_6,param_7,param_8,param_9,\n                   local_2c);\n        param_4 = local_3c;\n        param_3 = local_40;\n        local_48 = local_40;\n        local_44 = local_3c;\n        iVar3 = local_3c;\n        if ((local_40 != (int *)0x0) && (local_3c == -1)) {\n          if ((int *)local_40[2] < (int *)local_40[3]) {\n            iVar3 = *(int *)local_40[2];\n          }\n          else {\n            iVar3 = (**(code **)(*local_40 + 0x24))(local_40);\n          }\n          if (iVar3 == -1) {\n            param_3 = (int *)0x0;\n          }\n        }\n        iVar4 = param_6;\n        if ((param_5 != (int *)0x0) && (param_6 == -1)) {\n          if ((int *)param_5[2] < (int *)param_5[3]) {\n            iVar4 = *(int *)param_5[2];\n          }\n          else {\n            iVar4 = (**(code **)(*param_5 + 0x24))(param_5);\n          }\n        }\n        if ((iVar4 == -1) == (iVar3 == -1)) {\n          *param_8 = *param_8 | 2;\n        }\n        param_10 = puVar8 + 1;\n      }\n      else {\n        iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,*param_10);\n        if (iVar3 == 0) {\n          iVar4 = param_4;\n          iVar3 = param_4;\n          if (param_3 == (int *)0x0) {\nLAB_00342380:\n            iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,iVar4);\n            iVar5 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n            if (iVar5 != iVar4) {\n              param_3 = (int *)0x0;\nLAB_00341ed0:\n              iVar3 = (**(code **)(*(int *)pcVar2 + 0x18))(pcVar2,iVar3);\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x18))(pcVar2,*param_10);\n              if (iVar4 != iVar3) {\nLAB_0034254c:\n                *param_8 = 4;\n                *param_1 = param_3;\n                param_1[1] = param_4;\n                return;\n              }\n              goto LAB_00341f00;\n            }\n            param_3 = (int *)0x0;\n            uVar6 = uRam00000008;\n            if (uRam0000000c <= uRam00000008) goto LAB_003424f8;\nLAB_00341f14:\n            param_3[2] = uVar6 + 4;\n          }\n          else {\n            if (param_4 == -1) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar4 = *(int *)param_3[2];\n              }\n              else {\n                iVar4 = (**(code **)(*param_3 + 0x24))(param_3,0xffffffff);\n              }\n              if (iVar4 == -1) goto LAB_00342380;\n              iVar3 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2);\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n              if (iVar3 != iVar4) {\n                if ((int *)param_3[2] < (int *)param_3[3]) {\n                  iVar3 = *(int *)param_3[2];\n                  if (iVar3 == -1) {\n                    param_3 = (int *)0x0;\n                  }\n                }\n                else {\n                  iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n                  if (iVar3 == -1) {\n                    param_3 = (int *)0x0;\n                  }\n                }\n                goto LAB_00341ed0;\n              }\n            }\n            else {\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2);\n              iVar5 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n              if (iVar5 != iVar4) goto LAB_00341ed0;\n            }\nLAB_00341f00:\n            uVar6 = param_3[2];\n            if ((uint)param_3[2] < (uint)param_3[3]) goto LAB_00341f14;\nLAB_003424f8:\n            (**(code **)(*param_3 + 0x28))(param_3);\n          }\n          param_10 = param_10 + 1;\n          param_4 = -1;\n        }\n        else {\n          do {\n            param_10 = param_10 + 1;\n            if (param_11 == param_10) break;\n            iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,*param_10);\n          } while (iVar3 != 0);\n          iVar3 = param_4;\n          if ((param_3 != (int *)0x0) && (param_4 == -1)) goto LAB_0034201c;\n          while( true ) {\n            bVar1 = param_4 == -1;\n            iVar4 = param_6;\n            if ((param_5 != (int *)0x0) && (param_6 == -1)) {\n              if ((int *)param_5[2] < (int *)param_5[3]) {\n                iVar4 = *(int *)param_5[2];\n                if (iVar4 == -1) {\n                  param_5 = (int *)0x0;\n                }\n              }\n              else {\n                iVar4 = (**(code **)(*param_5 + 0x24))(param_5);\n                if (iVar4 == -1) {\n                  param_5 = (int *)0x0;\n                }\n              }\n            }\n            param_4 = iVar3;\n            if ((iVar4 == -1) == bVar1) break;\n            if ((param_3 != (int *)0x0) && (iVar3 == -1)) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar3 = *(int *)param_3[2];\n                if (iVar3 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n              else {\n                iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n                if (iVar3 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n            }\n            iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,iVar3);\n            if (iVar3 == 0) break;\n            if ((uint)param_3[2] < (uint)param_3[3]) {\n              param_3[2] = param_3[2] + 4;\nLAB_0034201c:\n              piVar7 = (int *)param_3[2];\n              if (piVar7 < (int *)param_3[3]) goto LAB_00342030;\nLAB_003422d0:\n              param_4 = (**(code **)(*param_3 + 0x24))(param_3);\n            }\n            else {\n              (**(code **)(*param_3 + 0x28))(param_3);\n              piVar7 = (int *)param_3[2];\n              if ((int *)param_3[3] <= piVar7) goto LAB_003422d0;\nLAB_00342030:\n              param_4 = *piVar7;\n            }\n            iVar3 = -1;\n            if (param_4 == -1) {\n              param_3 = (int *)0x0;\n            }\n          }\n        }\n      }" if (parenthesized_expression "(iVar3 == 0x25)" ( (binary_expression "iVar3 == 0x25" identifier == number_literal) )) (compound_statement "{\n        puVar8 = param_10 + 1;\n        if (param_11 == puVar8) goto LAB_0034254c;\n        iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,param_10[1],0);\n        if ((iVar3 == 0x45) || (iVar3 == 0x4f)) {\n          puVar8 = param_10 + 2;\n          if (param_11 == puVar8) goto LAB_0034254c;\n          local_34 = iVar3;\n          iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,param_10[2],0);\n          pcVar9 = *(code **)(*param_2 + 0x20);\n          iVar4 = local_34;\n          if (pcVar9 != local_38) goto LAB_0034243c;\n          piVar7 = (int *)(*(code *)PTR_use_facet<std_ctype<wchar_t>>_00433ac8)(local_30);\n          pcVar9 = *(code **)(*piVar7 + 0x28);\n          *param_8 = 0;\n          local_60 = (*pcVar9)(piVar7,0x25);\n          if (local_34 == 0) goto LAB_003421b4;\n          local_5c = local_34;\n          local_54 = 0;\n          local_58 = iVar3;\n        }\n        else {\n          pcVar9 = *(code **)(*param_2 + 0x20);\n          if (pcVar9 != local_38) {\n            iVar4 = 0;\nLAB_0034243c:\n            param_10 = puVar8 + 1;\n            (*pcVar9)(&local_40,param_2,param_3,param_4,param_5,param_6,param_7,param_8,param_9,\n                      iVar3,iVar4);\n            param_4 = local_3c;\n            param_3 = local_40;\n            goto LAB_00341f24;\n          }\n          local_34 = iVar3;\n          piVar7 = (int *)(*(code *)PTR_use_facet<std_ctype<wchar_t>>_00433ac8)(local_30);\n          pcVar9 = *(code **)(*piVar7 + 0x28);\n          *param_8 = 0;\n          local_60 = (*pcVar9)(piVar7,0x25);\n          iVar3 = local_34;\nLAB_003421b4:\n          local_58 = 0;\n          local_5c = iVar3;\n        }\n        local_4c = param_6;\n        local_50 = param_5;\n        std::time_get<wchar_t,std::istreambuf_iterator<wchar_t,std::char_traits<wchar_t>>>::\n        _M_extract_via_format\n                  (&local_40,param_2,param_3,param_4,param_5,param_6,param_7,param_8,param_9,\n                   local_2c);\n        param_4 = local_3c;\n        param_3 = local_40;\n        local_48 = local_40;\n        local_44 = local_3c;\n        iVar3 = local_3c;\n        if ((local_40 != (int *)0x0) && (local_3c == -1)) {\n          if ((int *)local_40[2] < (int *)local_40[3]) {\n            iVar3 = *(int *)local_40[2];\n          }\n          else {\n            iVar3 = (**(code **)(*local_40 + 0x24))(local_40);\n          }\n          if (iVar3 == -1) {\n            param_3 = (int *)0x0;\n          }\n        }\n        iVar4 = param_6;\n        if ((param_5 != (int *)0x0) && (param_6 == -1)) {\n          if ((int *)param_5[2] < (int *)param_5[3]) {\n            iVar4 = *(int *)param_5[2];\n          }\n          else {\n            iVar4 = (**(code **)(*param_5 + 0x24))(param_5);\n          }\n        }\n        if ((iVar4 == -1) == (iVar3 == -1)) {\n          *param_8 = *param_8 | 2;\n        }\n        param_10 = puVar8 + 1;\n      }" { (expression_statement "puVar8 = param_10 + 1;" (assignment_expression "puVar8 = param_10 + 1" identifier = (binary_expression "param_10 + 1" identifier + number_literal)) ;) (if_statement "if (param_11 == puVar8) goto LAB_0034254c;" if (parenthesized_expression "(param_11 == puVar8)" ( (binary_expression "param_11 == puVar8" identifier == identifier) )) (goto_statement "goto LAB_0034254c;" goto statement_identifier ;)) (expression_statement "iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,param_10[1],0);" (assignment_expression "iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,param_10[1],0)" identifier = (call_expression "(**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,param_10[1],0)" (parenthesized_expression "(**(code **)(*(int *)pcVar2 + 0x30))" ( (pointer_expression "**(code **)(*(int *)pcVar2 + 0x30)" * (pointer_expression "*(code **)(*(int *)pcVar2 + 0x30)" * (cast_expression "(code **)(*(int *)pcVar2 + 0x30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)pcVar2 + 0x30)" ( (binary_expression "*(int *)pcVar2 + 0x30" (pointer_expression "*(int *)pcVar2" * (cast_expression "(int *)pcVar2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) )) (argument_list "(pcVar2,param_10[1],0)" ( identifier , (subscript_expression "param_10[1]" identifier [ number_literal ]) , number_literal )))) ;) (if_statement "if ((iVar3 == 0x45) || (iVar3 == 0x4f)) {\n          puVar8 = param_10 + 2;\n          if (param_11 == puVar8) goto LAB_0034254c;\n          local_34 = iVar3;\n          iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,param_10[2],0);\n          pcVar9 = *(code **)(*param_2 + 0x20);\n          iVar4 = local_34;\n          if (pcVar9 != local_38) goto LAB_0034243c;\n          piVar7 = (int *)(*(code *)PTR_use_facet<std_ctype<wchar_t>>_00433ac8)(local_30);\n          pcVar9 = *(code **)(*piVar7 + 0x28);\n          *param_8 = 0;\n          local_60 = (*pcVar9)(piVar7,0x25);\n          if (local_34 == 0) goto LAB_003421b4;\n          local_5c = local_34;\n          local_54 = 0;\n          local_58 = iVar3;\n        }\n        else {\n          pcVar9 = *(code **)(*param_2 + 0x20);\n          if (pcVar9 != local_38) {\n            iVar4 = 0;\nLAB_0034243c:\n            param_10 = puVar8 + 1;\n            (*pcVar9)(&local_40,param_2,param_3,param_4,param_5,param_6,param_7,param_8,param_9,\n                      iVar3,iVar4);\n            param_4 = local_3c;\n            param_3 = local_40;\n            goto LAB_00341f24;\n          }\n          local_34 = iVar3;\n          piVar7 = (int *)(*(code *)PTR_use_facet<std_ctype<wchar_t>>_00433ac8)(local_30);\n          pcVar9 = *(code **)(*piVar7 + 0x28);\n          *param_8 = 0;\n          local_60 = (*pcVar9)(piVar7,0x25);\n          iVar3 = local_34;\nLAB_003421b4:\n          local_58 = 0;\n          local_5c = iVar3;\n        }" if (parenthesized_expression "((iVar3 == 0x45) || (iVar3 == 0x4f))" ( (binary_expression "(iVar3 == 0x45) || (iVar3 == 0x4f)" (parenthesized_expression "(iVar3 == 0x45)" ( (binary_expression "iVar3 == 0x45" identifier == number_literal) )) || (parenthesized_expression "(iVar3 == 0x4f)" ( (binary_expression "iVar3 == 0x4f" identifier == number_literal) ))) )) (compound_statement "{\n          puVar8 = param_10 + 2;\n          if (param_11 == puVar8) goto LAB_0034254c;\n          local_34 = iVar3;\n          iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,param_10[2],0);\n          pcVar9 = *(code **)(*param_2 + 0x20);\n          iVar4 = local_34;\n          if (pcVar9 != local_38) goto LAB_0034243c;\n          piVar7 = (int *)(*(code *)PTR_use_facet<std_ctype<wchar_t>>_00433ac8)(local_30);\n          pcVar9 = *(code **)(*piVar7 + 0x28);\n          *param_8 = 0;\n          local_60 = (*pcVar9)(piVar7,0x25);\n          if (local_34 == 0) goto LAB_003421b4;\n          local_5c = local_34;\n          local_54 = 0;\n          local_58 = iVar3;\n        }" { (expression_statement "puVar8 = param_10 + 2;" (assignment_expression "puVar8 = param_10 + 2" identifier = (binary_expression "param_10 + 2" identifier + number_literal)) ;) (if_statement "if (param_11 == puVar8) goto LAB_0034254c;" if (parenthesized_expression "(param_11 == puVar8)" ( (binary_expression "param_11 == puVar8" identifier == identifier) )) (goto_statement "goto LAB_0034254c;" goto statement_identifier ;)) (expression_statement "local_34 = iVar3;" (assignment_expression "local_34 = iVar3" identifier = identifier) ;) (expression_statement "iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,param_10[2],0);" (assignment_expression "iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,param_10[2],0)" identifier = (call_expression "(**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,param_10[2],0)" (parenthesized_expression "(**(code **)(*(int *)pcVar2 + 0x30))" ( (pointer_expression "**(code **)(*(int *)pcVar2 + 0x30)" * (pointer_expression "*(code **)(*(int *)pcVar2 + 0x30)" * (cast_expression "(code **)(*(int *)pcVar2 + 0x30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)pcVar2 + 0x30)" ( (binary_expression "*(int *)pcVar2 + 0x30" (pointer_expression "*(int *)pcVar2" * (cast_expression "(int *)pcVar2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) )) (argument_list "(pcVar2,param_10[2],0)" ( identifier , (subscript_expression "param_10[2]" identifier [ number_literal ]) , number_literal )))) ;) (expression_statement "pcVar9 = *(code **)(*param_2 + 0x20);" (assignment_expression "pcVar9 = *(code **)(*param_2 + 0x20)" identifier = (pointer_expression "*(code **)(*param_2 + 0x20)" * (cast_expression "(code **)(*param_2 + 0x20)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_2 + 0x20)" ( (binary_expression "*param_2 + 0x20" (pointer_expression "*param_2" * identifier) + number_literal) ))))) ;) (expression_statement "iVar4 = local_34;" (assignment_expression "iVar4 = local_34" identifier = identifier) ;) (if_statement "if (pcVar9 != local_38) goto LAB_0034243c;" if (parenthesized_expression "(pcVar9 != local_38)" ( (binary_expression "pcVar9 != local_38" identifier != identifier) )) (goto_statement "goto LAB_0034243c;" goto statement_identifier ;)) (expression_statement "piVar7 = (int *)(*(code *)PTR_use_facet<std_ctype<wchar_t>>_00433ac8)(local_30);" (assignment_expression "piVar7 = (int *)(*(code *)PTR_use_facet<std_ctype<wchar_t>>_00433ac8)(local_30)" identifier = (cast_expression "(int *)(*(code *)PTR_use_facet<std_ctype<wchar_t>>_00433ac8)(local_30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_use_facet<std_ctype<wchar_t>>_00433ac8)(local_30)" (parenthesized_expression "(*(code *)PTR_use_facet<std_ctype<wchar_t>>_00433ac8)" ( (binary_expression "*(code *)PTR_use_facet<std_ctype<wchar_t>>_00433ac8" (binary_expression "*(code *)PTR_use_facet<std_ctype" (pointer_expression "*(code *)PTR_use_facet" * (cast_expression "(code *)PTR_use_facet" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) < identifier) < (binary_expression "wchar_t>>_00433ac8" identifier >> identifier)) )) (argument_list "(local_30)" ( identifier ))))) ;) (expression_statement "pcVar9 = *(code **)(*piVar7 + 0x28);" (assignment_expression "pcVar9 = *(code **)(*piVar7 + 0x28)" identifier = (pointer_expression "*(code **)(*piVar7 + 0x28)" * (cast_expression "(code **)(*piVar7 + 0x28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar7 + 0x28)" ( (binary_expression "*piVar7 + 0x28" (pointer_expression "*piVar7" * identifier) + number_literal) ))))) ;) (expression_statement "*param_8 = 0;" (assignment_expression "*param_8 = 0" (pointer_expression "*param_8" * identifier) = number_literal) ;) (expression_statement "local_60 = (*pcVar9)(piVar7,0x25);" (assignment_expression "local_60 = (*pcVar9)(piVar7,0x25)" identifier = (call_expression "(*pcVar9)(piVar7,0x25)" (parenthesized_expression "(*pcVar9)" ( (pointer_expression "*pcVar9" * identifier) )) (argument_list "(piVar7,0x25)" ( identifier , number_literal )))) ;) (if_statement "if (local_34 == 0) goto LAB_003421b4;" if (parenthesized_expression "(local_34 == 0)" ( (binary_expression "local_34 == 0" identifier == number_literal) )) (goto_statement "goto LAB_003421b4;" goto statement_identifier ;)) (expression_statement "local_5c = local_34;" (assignment_expression "local_5c = local_34" identifier = identifier) ;) (expression_statement "local_54 = 0;" (assignment_expression "local_54 = 0" identifier = number_literal) ;) (expression_statement "local_58 = iVar3;" (assignment_expression "local_58 = iVar3" identifier = identifier) ;) }) (else_clause "else {\n          pcVar9 = *(code **)(*param_2 + 0x20);\n          if (pcVar9 != local_38) {\n            iVar4 = 0;\nLAB_0034243c:\n            param_10 = puVar8 + 1;\n            (*pcVar9)(&local_40,param_2,param_3,param_4,param_5,param_6,param_7,param_8,param_9,\n                      iVar3,iVar4);\n            param_4 = local_3c;\n            param_3 = local_40;\n            goto LAB_00341f24;\n          }\n          local_34 = iVar3;\n          piVar7 = (int *)(*(code *)PTR_use_facet<std_ctype<wchar_t>>_00433ac8)(local_30);\n          pcVar9 = *(code **)(*piVar7 + 0x28);\n          *param_8 = 0;\n          local_60 = (*pcVar9)(piVar7,0x25);\n          iVar3 = local_34;\nLAB_003421b4:\n          local_58 = 0;\n          local_5c = iVar3;\n        }" else (compound_statement "{\n          pcVar9 = *(code **)(*param_2 + 0x20);\n          if (pcVar9 != local_38) {\n            iVar4 = 0;\nLAB_0034243c:\n            param_10 = puVar8 + 1;\n            (*pcVar9)(&local_40,param_2,param_3,param_4,param_5,param_6,param_7,param_8,param_9,\n                      iVar3,iVar4);\n            param_4 = local_3c;\n            param_3 = local_40;\n            goto LAB_00341f24;\n          }\n          local_34 = iVar3;\n          piVar7 = (int *)(*(code *)PTR_use_facet<std_ctype<wchar_t>>_00433ac8)(local_30);\n          pcVar9 = *(code **)(*piVar7 + 0x28);\n          *param_8 = 0;\n          local_60 = (*pcVar9)(piVar7,0x25);\n          iVar3 = local_34;\nLAB_003421b4:\n          local_58 = 0;\n          local_5c = iVar3;\n        }" { (expression_statement "pcVar9 = *(code **)(*param_2 + 0x20);" (assignment_expression "pcVar9 = *(code **)(*param_2 + 0x20)" identifier = (pointer_expression "*(code **)(*param_2 + 0x20)" * (cast_expression "(code **)(*param_2 + 0x20)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_2 + 0x20)" ( (binary_expression "*param_2 + 0x20" (pointer_expression "*param_2" * identifier) + number_literal) ))))) ;) (if_statement "if (pcVar9 != local_38) {\n            iVar4 = 0;\nLAB_0034243c:\n            param_10 = puVar8 + 1;\n            (*pcVar9)(&local_40,param_2,param_3,param_4,param_5,param_6,param_7,param_8,param_9,\n                      iVar3,iVar4);\n            param_4 = local_3c;\n            param_3 = local_40;\n            goto LAB_00341f24;\n          }" if (parenthesized_expression "(pcVar9 != local_38)" ( (binary_expression "pcVar9 != local_38" identifier != identifier) )) (compound_statement "{\n            iVar4 = 0;\nLAB_0034243c:\n            param_10 = puVar8 + 1;\n            (*pcVar9)(&local_40,param_2,param_3,param_4,param_5,param_6,param_7,param_8,param_9,\n                      iVar3,iVar4);\n            param_4 = local_3c;\n            param_3 = local_40;\n            goto LAB_00341f24;\n          }" { (expression_statement "iVar4 = 0;" (assignment_expression "iVar4 = 0" identifier = number_literal) ;) (labeled_statement "LAB_0034243c:\n            param_10 = puVar8 + 1;" statement_identifier : (expression_statement "param_10 = puVar8 + 1;" (assignment_expression "param_10 = puVar8 + 1" identifier = (binary_expression "puVar8 + 1" identifier + number_literal)) ;)) (expression_statement "(*pcVar9)(&local_40,param_2,param_3,param_4,param_5,param_6,param_7,param_8,param_9,\n                      iVar3,iVar4);" (call_expression "(*pcVar9)(&local_40,param_2,param_3,param_4,param_5,param_6,param_7,param_8,param_9,\n                      iVar3,iVar4)" (parenthesized_expression "(*pcVar9)" ( (pointer_expression "*pcVar9" * identifier) )) (argument_list "(&local_40,param_2,param_3,param_4,param_5,param_6,param_7,param_8,param_9,\n                      iVar3,iVar4)" ( (pointer_expression "&local_40" & identifier) , identifier , identifier , identifier , identifier , identifier , identifier , identifier , identifier , identifier , identifier ))) ;) (expression_statement "param_4 = local_3c;" (assignment_expression "param_4 = local_3c" identifier = identifier) ;) (expression_statement "param_3 = local_40;" (assignment_expression "param_3 = local_40" identifier = identifier) ;) (goto_statement "goto LAB_00341f24;" goto statement_identifier ;) })) (expression_statement "local_34 = iVar3;" (assignment_expression "local_34 = iVar3" identifier = identifier) ;) (expression_statement "piVar7 = (int *)(*(code *)PTR_use_facet<std_ctype<wchar_t>>_00433ac8)(local_30);" (assignment_expression "piVar7 = (int *)(*(code *)PTR_use_facet<std_ctype<wchar_t>>_00433ac8)(local_30)" identifier = (cast_expression "(int *)(*(code *)PTR_use_facet<std_ctype<wchar_t>>_00433ac8)(local_30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_use_facet<std_ctype<wchar_t>>_00433ac8)(local_30)" (parenthesized_expression "(*(code *)PTR_use_facet<std_ctype<wchar_t>>_00433ac8)" ( (binary_expression "*(code *)PTR_use_facet<std_ctype<wchar_t>>_00433ac8" (binary_expression "*(code *)PTR_use_facet<std_ctype" (pointer_expression "*(code *)PTR_use_facet" * (cast_expression "(code *)PTR_use_facet" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) < identifier) < (binary_expression "wchar_t>>_00433ac8" identifier >> identifier)) )) (argument_list "(local_30)" ( identifier ))))) ;) (expression_statement "pcVar9 = *(code **)(*piVar7 + 0x28);" (assignment_expression "pcVar9 = *(code **)(*piVar7 + 0x28)" identifier = (pointer_expression "*(code **)(*piVar7 + 0x28)" * (cast_expression "(code **)(*piVar7 + 0x28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar7 + 0x28)" ( (binary_expression "*piVar7 + 0x28" (pointer_expression "*piVar7" * identifier) + number_literal) ))))) ;) (expression_statement "*param_8 = 0;" (assignment_expression "*param_8 = 0" (pointer_expression "*param_8" * identifier) = number_literal) ;) (expression_statement "local_60 = (*pcVar9)(piVar7,0x25);" (assignment_expression "local_60 = (*pcVar9)(piVar7,0x25)" identifier = (call_expression "(*pcVar9)(piVar7,0x25)" (parenthesized_expression "(*pcVar9)" ( (pointer_expression "*pcVar9" * identifier) )) (argument_list "(piVar7,0x25)" ( identifier , number_literal )))) ;) (expression_statement "iVar3 = local_34;" (assignment_expression "iVar3 = local_34" identifier = identifier) ;) (labeled_statement "LAB_003421b4:\n          local_58 = 0;" statement_identifier : (expression_statement "local_58 = 0;" (assignment_expression "local_58 = 0" identifier = number_literal) ;)) (expression_statement "local_5c = iVar3;" (assignment_expression "local_5c = iVar3" identifier = identifier) ;) }))) (expression_statement "local_4c = param_6;" (assignment_expression "local_4c = param_6" identifier = identifier) ;) (expression_statement "local_50 = param_5;" (assignment_expression "local_50 = param_5" identifier = identifier) ;) (labeled_statement "std::time_get<wchar_t,std::istreambuf_iterator<wchar_t,std::char_traits<wchar_t>>>::\n        _M_extract_via_format\n                  (&local_40,param_2,param_3,param_4,param_5,param_6,param_7,param_8,param_9,\n                   local_2c);" statement_identifier (ERROR "::time_get<wchar_t,std::istreambuf_iterator<wchar_t,std:" : : (comma_expression "time_get<wchar_t,std" (binary_expression "time_get<wchar_t" identifier < identifier) , identifier) : : (comma_expression "istreambuf_iterator<wchar_t,std" (binary_expression "istreambuf_iterator<wchar_t" identifier < identifier) , identifier) :) : (expression_statement "char_traits<wchar_t>>>::\n        _M_extract_via_format\n                  (&local_40,param_2,param_3,param_4,param_5,param_6,param_7,param_8,param_9,\n                   local_2c);" (binary_expression "char_traits<wchar_t>>>::\n        _M_extract_via_format\n                  (&local_40,param_2,param_3,param_4,param_5,param_6,param_7,param_8,param_9,\n                   local_2c)" identifier < (binary_expression "wchar_t>>>::\n        _M_extract_via_format\n                  (&local_40,param_2,param_3,param_4,param_5,param_6,param_7,param_8,param_9,\n                   local_2c)" identifier >> (ERROR ">::" > : :) (call_expression "_M_extract_via_format\n                  (&local_40,param_2,param_3,param_4,param_5,param_6,param_7,param_8,param_9,\n                   local_2c)" identifier (argument_list "(&local_40,param_2,param_3,param_4,param_5,param_6,param_7,param_8,param_9,\n                   local_2c)" ( (pointer_expression "&local_40" & identifier) , identifier , identifier , identifier , identifier , identifier , identifier , identifier , identifier , identifier ))))) ;)) (expression_statement "param_4 = local_3c;" (assignment_expression "param_4 = local_3c" identifier = identifier) ;) (expression_statement "param_3 = local_40;" (assignment_expression "param_3 = local_40" identifier = identifier) ;) (expression_statement "local_48 = local_40;" (assignment_expression "local_48 = local_40" identifier = identifier) ;) (expression_statement "local_44 = local_3c;" (assignment_expression "local_44 = local_3c" identifier = identifier) ;) (expression_statement "iVar3 = local_3c;" (assignment_expression "iVar3 = local_3c" identifier = identifier) ;) (if_statement "if ((local_40 != (int *)0x0) && (local_3c == -1)) {\n          if ((int *)local_40[2] < (int *)local_40[3]) {\n            iVar3 = *(int *)local_40[2];\n          }\n          else {\n            iVar3 = (**(code **)(*local_40 + 0x24))(local_40);\n          }\n          if (iVar3 == -1) {\n            param_3 = (int *)0x0;\n          }\n        }" if (parenthesized_expression "((local_40 != (int *)0x0) && (local_3c == -1))" ( (binary_expression "(local_40 != (int *)0x0) && (local_3c == -1)" (parenthesized_expression "(local_40 != (int *)0x0)" ( (binary_expression "local_40 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(local_3c == -1)" ( (binary_expression "local_3c == -1" identifier == number_literal) ))) )) (compound_statement "{\n          if ((int *)local_40[2] < (int *)local_40[3]) {\n            iVar3 = *(int *)local_40[2];\n          }\n          else {\n            iVar3 = (**(code **)(*local_40 + 0x24))(local_40);\n          }\n          if (iVar3 == -1) {\n            param_3 = (int *)0x0;\n          }\n        }" { (if_statement "if ((int *)local_40[2] < (int *)local_40[3]) {\n            iVar3 = *(int *)local_40[2];\n          }\n          else {\n            iVar3 = (**(code **)(*local_40 + 0x24))(local_40);\n          }" if (parenthesized_expression "((int *)local_40[2] < (int *)local_40[3])" ( (binary_expression "(int *)local_40[2] < (int *)local_40[3]" (cast_expression "(int *)local_40[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_40[2]" identifier [ number_literal ])) < (cast_expression "(int *)local_40[3]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_40[3]" identifier [ number_literal ]))) )) (compound_statement "{\n            iVar3 = *(int *)local_40[2];\n          }" { (expression_statement "iVar3 = *(int *)local_40[2];" (assignment_expression "iVar3 = *(int *)local_40[2]" identifier = (pointer_expression "*(int *)local_40[2]" * (cast_expression "(int *)local_40[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_40[2]" identifier [ number_literal ])))) ;) }) (else_clause "else {\n            iVar3 = (**(code **)(*local_40 + 0x24))(local_40);\n          }" else (compound_statement "{\n            iVar3 = (**(code **)(*local_40 + 0x24))(local_40);\n          }" { (expression_statement "iVar3 = (**(code **)(*local_40 + 0x24))(local_40);" (assignment_expression "iVar3 = (**(code **)(*local_40 + 0x24))(local_40)" identifier = (call_expression "(**(code **)(*local_40 + 0x24))(local_40)" (parenthesized_expression "(**(code **)(*local_40 + 0x24))" ( (pointer_expression "**(code **)(*local_40 + 0x24)" * (pointer_expression "*(code **)(*local_40 + 0x24)" * (cast_expression "(code **)(*local_40 + 0x24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*local_40 + 0x24)" ( (binary_expression "*local_40 + 0x24" (pointer_expression "*local_40" * identifier) + number_literal) ))))) )) (argument_list "(local_40)" ( identifier )))) ;) }))) (if_statement "if (iVar3 == -1) {\n            param_3 = (int *)0x0;\n          }" if (parenthesized_expression "(iVar3 == -1)" ( (binary_expression "iVar3 == -1" identifier == number_literal) )) (compound_statement "{\n            param_3 = (int *)0x0;\n          }" { (expression_statement "param_3 = (int *)0x0;" (assignment_expression "param_3 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) })) (expression_statement "iVar4 = param_6;" (assignment_expression "iVar4 = param_6" identifier = identifier) ;) (if_statement "if ((param_5 != (int *)0x0) && (param_6 == -1)) {\n          if ((int *)param_5[2] < (int *)param_5[3]) {\n            iVar4 = *(int *)param_5[2];\n          }\n          else {\n            iVar4 = (**(code **)(*param_5 + 0x24))(param_5);\n          }\n        }" if (parenthesized_expression "((param_5 != (int *)0x0) && (param_6 == -1))" ( (binary_expression "(param_5 != (int *)0x0) && (param_6 == -1)" (parenthesized_expression "(param_5 != (int *)0x0)" ( (binary_expression "param_5 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(param_6 == -1)" ( (binary_expression "param_6 == -1" identifier == number_literal) ))) )) (compound_statement "{\n          if ((int *)param_5[2] < (int *)param_5[3]) {\n            iVar4 = *(int *)param_5[2];\n          }\n          else {\n            iVar4 = (**(code **)(*param_5 + 0x24))(param_5);\n          }\n        }" { (if_statement "if ((int *)param_5[2] < (int *)param_5[3]) {\n            iVar4 = *(int *)param_5[2];\n          }\n          else {\n            iVar4 = (**(code **)(*param_5 + 0x24))(param_5);\n          }" if (parenthesized_expression "((int *)param_5[2] < (int *)param_5[3])" ( (binary_expression "(int *)param_5[2] < (int *)param_5[3]" (cast_expression "(int *)param_5[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_5[2]" identifier [ number_literal ])) < (cast_expression "(int *)param_5[3]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_5[3]" identifier [ number_literal ]))) )) (compound_statement "{\n            iVar4 = *(int *)param_5[2];\n          }" { (expression_statement "iVar4 = *(int *)param_5[2];" (assignment_expression "iVar4 = *(int *)param_5[2]" identifier = (pointer_expression "*(int *)param_5[2]" * (cast_expression "(int *)param_5[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_5[2]" identifier [ number_literal ])))) ;) }) (else_clause "else {\n            iVar4 = (**(code **)(*param_5 + 0x24))(param_5);\n          }" else (compound_statement "{\n            iVar4 = (**(code **)(*param_5 + 0x24))(param_5);\n          }" { (expression_statement "iVar4 = (**(code **)(*param_5 + 0x24))(param_5);" (assignment_expression "iVar4 = (**(code **)(*param_5 + 0x24))(param_5)" identifier = (call_expression "(**(code **)(*param_5 + 0x24))(param_5)" (parenthesized_expression "(**(code **)(*param_5 + 0x24))" ( (pointer_expression "**(code **)(*param_5 + 0x24)" * (pointer_expression "*(code **)(*param_5 + 0x24)" * (cast_expression "(code **)(*param_5 + 0x24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_5 + 0x24)" ( (binary_expression "*param_5 + 0x24" (pointer_expression "*param_5" * identifier) + number_literal) ))))) )) (argument_list "(param_5)" ( identifier )))) ;) }))) })) (if_statement "if ((iVar4 == -1) == (iVar3 == -1)) {\n          *param_8 = *param_8 | 2;\n        }" if (parenthesized_expression "((iVar4 == -1) == (iVar3 == -1))" ( (binary_expression "(iVar4 == -1) == (iVar3 == -1)" (parenthesized_expression "(iVar4 == -1)" ( (binary_expression "iVar4 == -1" identifier == number_literal) )) == (parenthesized_expression "(iVar3 == -1)" ( (binary_expression "iVar3 == -1" identifier == number_literal) ))) )) (compound_statement "{\n          *param_8 = *param_8 | 2;\n        }" { (expression_statement "*param_8 = *param_8 | 2;" (assignment_expression "*param_8 = *param_8 | 2" (pointer_expression "*param_8" * identifier) = (binary_expression "*param_8 | 2" (pointer_expression "*param_8" * identifier) | number_literal)) ;) })) (expression_statement "param_10 = puVar8 + 1;" (assignment_expression "param_10 = puVar8 + 1" identifier = (binary_expression "puVar8 + 1" identifier + number_literal)) ;) }) (else_clause "else {\n        iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,*param_10);\n        if (iVar3 == 0) {\n          iVar4 = param_4;\n          iVar3 = param_4;\n          if (param_3 == (int *)0x0) {\nLAB_00342380:\n            iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,iVar4);\n            iVar5 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n            if (iVar5 != iVar4) {\n              param_3 = (int *)0x0;\nLAB_00341ed0:\n              iVar3 = (**(code **)(*(int *)pcVar2 + 0x18))(pcVar2,iVar3);\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x18))(pcVar2,*param_10);\n              if (iVar4 != iVar3) {\nLAB_0034254c:\n                *param_8 = 4;\n                *param_1 = param_3;\n                param_1[1] = param_4;\n                return;\n              }\n              goto LAB_00341f00;\n            }\n            param_3 = (int *)0x0;\n            uVar6 = uRam00000008;\n            if (uRam0000000c <= uRam00000008) goto LAB_003424f8;\nLAB_00341f14:\n            param_3[2] = uVar6 + 4;\n          }\n          else {\n            if (param_4 == -1) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar4 = *(int *)param_3[2];\n              }\n              else {\n                iVar4 = (**(code **)(*param_3 + 0x24))(param_3,0xffffffff);\n              }\n              if (iVar4 == -1) goto LAB_00342380;\n              iVar3 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2);\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n              if (iVar3 != iVar4) {\n                if ((int *)param_3[2] < (int *)param_3[3]) {\n                  iVar3 = *(int *)param_3[2];\n                  if (iVar3 == -1) {\n                    param_3 = (int *)0x0;\n                  }\n                }\n                else {\n                  iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n                  if (iVar3 == -1) {\n                    param_3 = (int *)0x0;\n                  }\n                }\n                goto LAB_00341ed0;\n              }\n            }\n            else {\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2);\n              iVar5 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n              if (iVar5 != iVar4) goto LAB_00341ed0;\n            }\nLAB_00341f00:\n            uVar6 = param_3[2];\n            if ((uint)param_3[2] < (uint)param_3[3]) goto LAB_00341f14;\nLAB_003424f8:\n            (**(code **)(*param_3 + 0x28))(param_3);\n          }\n          param_10 = param_10 + 1;\n          param_4 = -1;\n        }\n        else {\n          do {\n            param_10 = param_10 + 1;\n            if (param_11 == param_10) break;\n            iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,*param_10);\n          } while (iVar3 != 0);\n          iVar3 = param_4;\n          if ((param_3 != (int *)0x0) && (param_4 == -1)) goto LAB_0034201c;\n          while( true ) {\n            bVar1 = param_4 == -1;\n            iVar4 = param_6;\n            if ((param_5 != (int *)0x0) && (param_6 == -1)) {\n              if ((int *)param_5[2] < (int *)param_5[3]) {\n                iVar4 = *(int *)param_5[2];\n                if (iVar4 == -1) {\n                  param_5 = (int *)0x0;\n                }\n              }\n              else {\n                iVar4 = (**(code **)(*param_5 + 0x24))(param_5);\n                if (iVar4 == -1) {\n                  param_5 = (int *)0x0;\n                }\n              }\n            }\n            param_4 = iVar3;\n            if ((iVar4 == -1) == bVar1) break;\n            if ((param_3 != (int *)0x0) && (iVar3 == -1)) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar3 = *(int *)param_3[2];\n                if (iVar3 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n              else {\n                iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n                if (iVar3 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n            }\n            iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,iVar3);\n            if (iVar3 == 0) break;\n            if ((uint)param_3[2] < (uint)param_3[3]) {\n              param_3[2] = param_3[2] + 4;\nLAB_0034201c:\n              piVar7 = (int *)param_3[2];\n              if (piVar7 < (int *)param_3[3]) goto LAB_00342030;\nLAB_003422d0:\n              param_4 = (**(code **)(*param_3 + 0x24))(param_3);\n            }\n            else {\n              (**(code **)(*param_3 + 0x28))(param_3);\n              piVar7 = (int *)param_3[2];\n              if ((int *)param_3[3] <= piVar7) goto LAB_003422d0;\nLAB_00342030:\n              param_4 = *piVar7;\n            }\n            iVar3 = -1;\n            if (param_4 == -1) {\n              param_3 = (int *)0x0;\n            }\n          }\n        }\n      }" else (compound_statement "{\n        iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,*param_10);\n        if (iVar3 == 0) {\n          iVar4 = param_4;\n          iVar3 = param_4;\n          if (param_3 == (int *)0x0) {\nLAB_00342380:\n            iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,iVar4);\n            iVar5 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n            if (iVar5 != iVar4) {\n              param_3 = (int *)0x0;\nLAB_00341ed0:\n              iVar3 = (**(code **)(*(int *)pcVar2 + 0x18))(pcVar2,iVar3);\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x18))(pcVar2,*param_10);\n              if (iVar4 != iVar3) {\nLAB_0034254c:\n                *param_8 = 4;\n                *param_1 = param_3;\n                param_1[1] = param_4;\n                return;\n              }\n              goto LAB_00341f00;\n            }\n            param_3 = (int *)0x0;\n            uVar6 = uRam00000008;\n            if (uRam0000000c <= uRam00000008) goto LAB_003424f8;\nLAB_00341f14:\n            param_3[2] = uVar6 + 4;\n          }\n          else {\n            if (param_4 == -1) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar4 = *(int *)param_3[2];\n              }\n              else {\n                iVar4 = (**(code **)(*param_3 + 0x24))(param_3,0xffffffff);\n              }\n              if (iVar4 == -1) goto LAB_00342380;\n              iVar3 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2);\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n              if (iVar3 != iVar4) {\n                if ((int *)param_3[2] < (int *)param_3[3]) {\n                  iVar3 = *(int *)param_3[2];\n                  if (iVar3 == -1) {\n                    param_3 = (int *)0x0;\n                  }\n                }\n                else {\n                  iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n                  if (iVar3 == -1) {\n                    param_3 = (int *)0x0;\n                  }\n                }\n                goto LAB_00341ed0;\n              }\n            }\n            else {\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2);\n              iVar5 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n              if (iVar5 != iVar4) goto LAB_00341ed0;\n            }\nLAB_00341f00:\n            uVar6 = param_3[2];\n            if ((uint)param_3[2] < (uint)param_3[3]) goto LAB_00341f14;\nLAB_003424f8:\n            (**(code **)(*param_3 + 0x28))(param_3);\n          }\n          param_10 = param_10 + 1;\n          param_4 = -1;\n        }\n        else {\n          do {\n            param_10 = param_10 + 1;\n            if (param_11 == param_10) break;\n            iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,*param_10);\n          } while (iVar3 != 0);\n          iVar3 = param_4;\n          if ((param_3 != (int *)0x0) && (param_4 == -1)) goto LAB_0034201c;\n          while( true ) {\n            bVar1 = param_4 == -1;\n            iVar4 = param_6;\n            if ((param_5 != (int *)0x0) && (param_6 == -1)) {\n              if ((int *)param_5[2] < (int *)param_5[3]) {\n                iVar4 = *(int *)param_5[2];\n                if (iVar4 == -1) {\n                  param_5 = (int *)0x0;\n                }\n              }\n              else {\n                iVar4 = (**(code **)(*param_5 + 0x24))(param_5);\n                if (iVar4 == -1) {\n                  param_5 = (int *)0x0;\n                }\n              }\n            }\n            param_4 = iVar3;\n            if ((iVar4 == -1) == bVar1) break;\n            if ((param_3 != (int *)0x0) && (iVar3 == -1)) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar3 = *(int *)param_3[2];\n                if (iVar3 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n              else {\n                iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n                if (iVar3 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n            }\n            iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,iVar3);\n            if (iVar3 == 0) break;\n            if ((uint)param_3[2] < (uint)param_3[3]) {\n              param_3[2] = param_3[2] + 4;\nLAB_0034201c:\n              piVar7 = (int *)param_3[2];\n              if (piVar7 < (int *)param_3[3]) goto LAB_00342030;\nLAB_003422d0:\n              param_4 = (**(code **)(*param_3 + 0x24))(param_3);\n            }\n            else {\n              (**(code **)(*param_3 + 0x28))(param_3);\n              piVar7 = (int *)param_3[2];\n              if ((int *)param_3[3] <= piVar7) goto LAB_003422d0;\nLAB_00342030:\n              param_4 = *piVar7;\n            }\n            iVar3 = -1;\n            if (param_4 == -1) {\n              param_3 = (int *)0x0;\n            }\n          }\n        }\n      }" { (expression_statement "iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,*param_10);" (assignment_expression "iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,*param_10)" identifier = (call_expression "(**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,*param_10)" (parenthesized_expression "(**(code **)(*(int *)pcVar2 + 8))" ( (pointer_expression "**(code **)(*(int *)pcVar2 + 8)" * (pointer_expression "*(code **)(*(int *)pcVar2 + 8)" * (cast_expression "(code **)(*(int *)pcVar2 + 8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)pcVar2 + 8)" ( (binary_expression "*(int *)pcVar2 + 8" (pointer_expression "*(int *)pcVar2" * (cast_expression "(int *)pcVar2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) )) (argument_list "(pcVar2,0x20,*param_10)" ( identifier , number_literal , (pointer_expression "*param_10" * identifier) )))) ;) (if_statement "if (iVar3 == 0) {\n          iVar4 = param_4;\n          iVar3 = param_4;\n          if (param_3 == (int *)0x0) {\nLAB_00342380:\n            iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,iVar4);\n            iVar5 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n            if (iVar5 != iVar4) {\n              param_3 = (int *)0x0;\nLAB_00341ed0:\n              iVar3 = (**(code **)(*(int *)pcVar2 + 0x18))(pcVar2,iVar3);\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x18))(pcVar2,*param_10);\n              if (iVar4 != iVar3) {\nLAB_0034254c:\n                *param_8 = 4;\n                *param_1 = param_3;\n                param_1[1] = param_4;\n                return;\n              }\n              goto LAB_00341f00;\n            }\n            param_3 = (int *)0x0;\n            uVar6 = uRam00000008;\n            if (uRam0000000c <= uRam00000008) goto LAB_003424f8;\nLAB_00341f14:\n            param_3[2] = uVar6 + 4;\n          }\n          else {\n            if (param_4 == -1) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar4 = *(int *)param_3[2];\n              }\n              else {\n                iVar4 = (**(code **)(*param_3 + 0x24))(param_3,0xffffffff);\n              }\n              if (iVar4 == -1) goto LAB_00342380;\n              iVar3 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2);\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n              if (iVar3 != iVar4) {\n                if ((int *)param_3[2] < (int *)param_3[3]) {\n                  iVar3 = *(int *)param_3[2];\n                  if (iVar3 == -1) {\n                    param_3 = (int *)0x0;\n                  }\n                }\n                else {\n                  iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n                  if (iVar3 == -1) {\n                    param_3 = (int *)0x0;\n                  }\n                }\n                goto LAB_00341ed0;\n              }\n            }\n            else {\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2);\n              iVar5 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n              if (iVar5 != iVar4) goto LAB_00341ed0;\n            }\nLAB_00341f00:\n            uVar6 = param_3[2];\n            if ((uint)param_3[2] < (uint)param_3[3]) goto LAB_00341f14;\nLAB_003424f8:\n            (**(code **)(*param_3 + 0x28))(param_3);\n          }\n          param_10 = param_10 + 1;\n          param_4 = -1;\n        }\n        else {\n          do {\n            param_10 = param_10 + 1;\n            if (param_11 == param_10) break;\n            iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,*param_10);\n          } while (iVar3 != 0);\n          iVar3 = param_4;\n          if ((param_3 != (int *)0x0) && (param_4 == -1)) goto LAB_0034201c;\n          while( true ) {\n            bVar1 = param_4 == -1;\n            iVar4 = param_6;\n            if ((param_5 != (int *)0x0) && (param_6 == -1)) {\n              if ((int *)param_5[2] < (int *)param_5[3]) {\n                iVar4 = *(int *)param_5[2];\n                if (iVar4 == -1) {\n                  param_5 = (int *)0x0;\n                }\n              }\n              else {\n                iVar4 = (**(code **)(*param_5 + 0x24))(param_5);\n                if (iVar4 == -1) {\n                  param_5 = (int *)0x0;\n                }\n              }\n            }\n            param_4 = iVar3;\n            if ((iVar4 == -1) == bVar1) break;\n            if ((param_3 != (int *)0x0) && (iVar3 == -1)) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar3 = *(int *)param_3[2];\n                if (iVar3 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n              else {\n                iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n                if (iVar3 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n            }\n            iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,iVar3);\n            if (iVar3 == 0) break;\n            if ((uint)param_3[2] < (uint)param_3[3]) {\n              param_3[2] = param_3[2] + 4;\nLAB_0034201c:\n              piVar7 = (int *)param_3[2];\n              if (piVar7 < (int *)param_3[3]) goto LAB_00342030;\nLAB_003422d0:\n              param_4 = (**(code **)(*param_3 + 0x24))(param_3);\n            }\n            else {\n              (**(code **)(*param_3 + 0x28))(param_3);\n              piVar7 = (int *)param_3[2];\n              if ((int *)param_3[3] <= piVar7) goto LAB_003422d0;\nLAB_00342030:\n              param_4 = *piVar7;\n            }\n            iVar3 = -1;\n            if (param_4 == -1) {\n              param_3 = (int *)0x0;\n            }\n          }\n        }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n          iVar4 = param_4;\n          iVar3 = param_4;\n          if (param_3 == (int *)0x0) {\nLAB_00342380:\n            iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,iVar4);\n            iVar5 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n            if (iVar5 != iVar4) {\n              param_3 = (int *)0x0;\nLAB_00341ed0:\n              iVar3 = (**(code **)(*(int *)pcVar2 + 0x18))(pcVar2,iVar3);\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x18))(pcVar2,*param_10);\n              if (iVar4 != iVar3) {\nLAB_0034254c:\n                *param_8 = 4;\n                *param_1 = param_3;\n                param_1[1] = param_4;\n                return;\n              }\n              goto LAB_00341f00;\n            }\n            param_3 = (int *)0x0;\n            uVar6 = uRam00000008;\n            if (uRam0000000c <= uRam00000008) goto LAB_003424f8;\nLAB_00341f14:\n            param_3[2] = uVar6 + 4;\n          }\n          else {\n            if (param_4 == -1) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar4 = *(int *)param_3[2];\n              }\n              else {\n                iVar4 = (**(code **)(*param_3 + 0x24))(param_3,0xffffffff);\n              }\n              if (iVar4 == -1) goto LAB_00342380;\n              iVar3 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2);\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n              if (iVar3 != iVar4) {\n                if ((int *)param_3[2] < (int *)param_3[3]) {\n                  iVar3 = *(int *)param_3[2];\n                  if (iVar3 == -1) {\n                    param_3 = (int *)0x0;\n                  }\n                }\n                else {\n                  iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n                  if (iVar3 == -1) {\n                    param_3 = (int *)0x0;\n                  }\n                }\n                goto LAB_00341ed0;\n              }\n            }\n            else {\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2);\n              iVar5 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n              if (iVar5 != iVar4) goto LAB_00341ed0;\n            }\nLAB_00341f00:\n            uVar6 = param_3[2];\n            if ((uint)param_3[2] < (uint)param_3[3]) goto LAB_00341f14;\nLAB_003424f8:\n            (**(code **)(*param_3 + 0x28))(param_3);\n          }\n          param_10 = param_10 + 1;\n          param_4 = -1;\n        }" { (expression_statement "iVar4 = param_4;" (assignment_expression "iVar4 = param_4" identifier = identifier) ;) (expression_statement "iVar3 = param_4;" (assignment_expression "iVar3 = param_4" identifier = identifier) ;) (if_statement "if (param_3 == (int *)0x0) {\nLAB_00342380:\n            iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,iVar4);\n            iVar5 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n            if (iVar5 != iVar4) {\n              param_3 = (int *)0x0;\nLAB_00341ed0:\n              iVar3 = (**(code **)(*(int *)pcVar2 + 0x18))(pcVar2,iVar3);\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x18))(pcVar2,*param_10);\n              if (iVar4 != iVar3) {\nLAB_0034254c:\n                *param_8 = 4;\n                *param_1 = param_3;\n                param_1[1] = param_4;\n                return;\n              }\n              goto LAB_00341f00;\n            }\n            param_3 = (int *)0x0;\n            uVar6 = uRam00000008;\n            if (uRam0000000c <= uRam00000008) goto LAB_003424f8;\nLAB_00341f14:\n            param_3[2] = uVar6 + 4;\n          }\n          else {\n            if (param_4 == -1) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar4 = *(int *)param_3[2];\n              }\n              else {\n                iVar4 = (**(code **)(*param_3 + 0x24))(param_3,0xffffffff);\n              }\n              if (iVar4 == -1) goto LAB_00342380;\n              iVar3 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2);\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n              if (iVar3 != iVar4) {\n                if ((int *)param_3[2] < (int *)param_3[3]) {\n                  iVar3 = *(int *)param_3[2];\n                  if (iVar3 == -1) {\n                    param_3 = (int *)0x0;\n                  }\n                }\n                else {\n                  iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n                  if (iVar3 == -1) {\n                    param_3 = (int *)0x0;\n                  }\n                }\n                goto LAB_00341ed0;\n              }\n            }\n            else {\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2);\n              iVar5 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n              if (iVar5 != iVar4) goto LAB_00341ed0;\n            }\nLAB_00341f00:\n            uVar6 = param_3[2];\n            if ((uint)param_3[2] < (uint)param_3[3]) goto LAB_00341f14;\nLAB_003424f8:\n            (**(code **)(*param_3 + 0x28))(param_3);\n          }" if (parenthesized_expression "(param_3 == (int *)0x0)" ( (binary_expression "param_3 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_00342380:\n            iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,iVar4);\n            iVar5 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n            if (iVar5 != iVar4) {\n              param_3 = (int *)0x0;\nLAB_00341ed0:\n              iVar3 = (**(code **)(*(int *)pcVar2 + 0x18))(pcVar2,iVar3);\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x18))(pcVar2,*param_10);\n              if (iVar4 != iVar3) {\nLAB_0034254c:\n                *param_8 = 4;\n                *param_1 = param_3;\n                param_1[1] = param_4;\n                return;\n              }\n              goto LAB_00341f00;\n            }\n            param_3 = (int *)0x0;\n            uVar6 = uRam00000008;\n            if (uRam0000000c <= uRam00000008) goto LAB_003424f8;\nLAB_00341f14:\n            param_3[2] = uVar6 + 4;\n          }" { (labeled_statement "LAB_00342380:\n            iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,iVar4);" statement_identifier : (expression_statement "iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,iVar4);" (assignment_expression "iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,iVar4)" identifier = (call_expression "(**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,iVar4)" (parenthesized_expression "(**(code **)(*(int *)pcVar2 + 0x20))" ( (pointer_expression "**(code **)(*(int *)pcVar2 + 0x20)" * (pointer_expression "*(code **)(*(int *)pcVar2 + 0x20)" * (cast_expression "(code **)(*(int *)pcVar2 + 0x20)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)pcVar2 + 0x20)" ( (binary_expression "*(int *)pcVar2 + 0x20" (pointer_expression "*(int *)pcVar2" * (cast_expression "(int *)pcVar2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) )) (argument_list "(pcVar2,iVar4)" ( identifier , identifier )))) ;)) (expression_statement "iVar5 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);" (assignment_expression "iVar5 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10)" identifier = (call_expression "(**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10)" (parenthesized_expression "(**(code **)(*(int *)pcVar2 + 0x20))" ( (pointer_expression "**(code **)(*(int *)pcVar2 + 0x20)" * (pointer_expression "*(code **)(*(int *)pcVar2 + 0x20)" * (cast_expression "(code **)(*(int *)pcVar2 + 0x20)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)pcVar2 + 0x20)" ( (binary_expression "*(int *)pcVar2 + 0x20" (pointer_expression "*(int *)pcVar2" * (cast_expression "(int *)pcVar2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) )) (argument_list "(pcVar2,*param_10)" ( identifier , (pointer_expression "*param_10" * identifier) )))) ;) (if_statement "if (iVar5 != iVar4) {\n              param_3 = (int *)0x0;\nLAB_00341ed0:\n              iVar3 = (**(code **)(*(int *)pcVar2 + 0x18))(pcVar2,iVar3);\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x18))(pcVar2,*param_10);\n              if (iVar4 != iVar3) {\nLAB_0034254c:\n                *param_8 = 4;\n                *param_1 = param_3;\n                param_1[1] = param_4;\n                return;\n              }\n              goto LAB_00341f00;\n            }" if (parenthesized_expression "(iVar5 != iVar4)" ( (binary_expression "iVar5 != iVar4" identifier != identifier) )) (compound_statement "{\n              param_3 = (int *)0x0;\nLAB_00341ed0:\n              iVar3 = (**(code **)(*(int *)pcVar2 + 0x18))(pcVar2,iVar3);\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x18))(pcVar2,*param_10);\n              if (iVar4 != iVar3) {\nLAB_0034254c:\n                *param_8 = 4;\n                *param_1 = param_3;\n                param_1[1] = param_4;\n                return;\n              }\n              goto LAB_00341f00;\n            }" { (expression_statement "param_3 = (int *)0x0;" (assignment_expression "param_3 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_00341ed0:\n              iVar3 = (**(code **)(*(int *)pcVar2 + 0x18))(pcVar2,iVar3);" statement_identifier : (expression_statement "iVar3 = (**(code **)(*(int *)pcVar2 + 0x18))(pcVar2,iVar3);" (assignment_expression "iVar3 = (**(code **)(*(int *)pcVar2 + 0x18))(pcVar2,iVar3)" identifier = (call_expression "(**(code **)(*(int *)pcVar2 + 0x18))(pcVar2,iVar3)" (parenthesized_expression "(**(code **)(*(int *)pcVar2 + 0x18))" ( (pointer_expression "**(code **)(*(int *)pcVar2 + 0x18)" * (pointer_expression "*(code **)(*(int *)pcVar2 + 0x18)" * (cast_expression "(code **)(*(int *)pcVar2 + 0x18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)pcVar2 + 0x18)" ( (binary_expression "*(int *)pcVar2 + 0x18" (pointer_expression "*(int *)pcVar2" * (cast_expression "(int *)pcVar2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) )) (argument_list "(pcVar2,iVar3)" ( identifier , identifier )))) ;)) (expression_statement "iVar4 = (**(code **)(*(int *)pcVar2 + 0x18))(pcVar2,*param_10);" (assignment_expression "iVar4 = (**(code **)(*(int *)pcVar2 + 0x18))(pcVar2,*param_10)" identifier = (call_expression "(**(code **)(*(int *)pcVar2 + 0x18))(pcVar2,*param_10)" (parenthesized_expression "(**(code **)(*(int *)pcVar2 + 0x18))" ( (pointer_expression "**(code **)(*(int *)pcVar2 + 0x18)" * (pointer_expression "*(code **)(*(int *)pcVar2 + 0x18)" * (cast_expression "(code **)(*(int *)pcVar2 + 0x18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)pcVar2 + 0x18)" ( (binary_expression "*(int *)pcVar2 + 0x18" (pointer_expression "*(int *)pcVar2" * (cast_expression "(int *)pcVar2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) )) (argument_list "(pcVar2,*param_10)" ( identifier , (pointer_expression "*param_10" * identifier) )))) ;) (if_statement "if (iVar4 != iVar3) {\nLAB_0034254c:\n                *param_8 = 4;\n                *param_1 = param_3;\n                param_1[1] = param_4;\n                return;\n              }" if (parenthesized_expression "(iVar4 != iVar3)" ( (binary_expression "iVar4 != iVar3" identifier != identifier) )) (compound_statement "{\nLAB_0034254c:\n                *param_8 = 4;\n                *param_1 = param_3;\n                param_1[1] = param_4;\n                return;\n              }" { (labeled_statement "LAB_0034254c:\n                *param_8 = 4;" statement_identifier : (expression_statement "*param_8 = 4;" (assignment_expression "*param_8 = 4" (pointer_expression "*param_8" * identifier) = number_literal) ;)) (expression_statement "*param_1 = param_3;" (assignment_expression "*param_1 = param_3" (pointer_expression "*param_1" * identifier) = identifier) ;) (expression_statement "param_1[1] = param_4;" (assignment_expression "param_1[1] = param_4" (subscript_expression "param_1[1]" identifier [ number_literal ]) = identifier) ;) (return_statement "return;" return ;) })) (goto_statement "goto LAB_00341f00;" goto statement_identifier ;) })) (expression_statement "param_3 = (int *)0x0;" (assignment_expression "param_3 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "uVar6 = uRam00000008;" (assignment_expression "uVar6 = uRam00000008" identifier = identifier) ;) (if_statement "if (uRam0000000c <= uRam00000008) goto LAB_003424f8;" if (parenthesized_expression "(uRam0000000c <= uRam00000008)" ( (binary_expression "uRam0000000c <= uRam00000008" identifier <= identifier) )) (goto_statement "goto LAB_003424f8;" goto statement_identifier ;)) (labeled_statement "LAB_00341f14:\n            param_3[2] = uVar6 + 4;" statement_identifier : (expression_statement "param_3[2] = uVar6 + 4;" (assignment_expression "param_3[2] = uVar6 + 4" (subscript_expression "param_3[2]" identifier [ number_literal ]) = (binary_expression "uVar6 + 4" identifier + number_literal)) ;)) }) (else_clause "else {\n            if (param_4 == -1) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar4 = *(int *)param_3[2];\n              }\n              else {\n                iVar4 = (**(code **)(*param_3 + 0x24))(param_3,0xffffffff);\n              }\n              if (iVar4 == -1) goto LAB_00342380;\n              iVar3 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2);\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n              if (iVar3 != iVar4) {\n                if ((int *)param_3[2] < (int *)param_3[3]) {\n                  iVar3 = *(int *)param_3[2];\n                  if (iVar3 == -1) {\n                    param_3 = (int *)0x0;\n                  }\n                }\n                else {\n                  iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n                  if (iVar3 == -1) {\n                    param_3 = (int *)0x0;\n                  }\n                }\n                goto LAB_00341ed0;\n              }\n            }\n            else {\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2);\n              iVar5 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n              if (iVar5 != iVar4) goto LAB_00341ed0;\n            }\nLAB_00341f00:\n            uVar6 = param_3[2];\n            if ((uint)param_3[2] < (uint)param_3[3]) goto LAB_00341f14;\nLAB_003424f8:\n            (**(code **)(*param_3 + 0x28))(param_3);\n          }" else (compound_statement "{\n            if (param_4 == -1) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar4 = *(int *)param_3[2];\n              }\n              else {\n                iVar4 = (**(code **)(*param_3 + 0x24))(param_3,0xffffffff);\n              }\n              if (iVar4 == -1) goto LAB_00342380;\n              iVar3 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2);\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n              if (iVar3 != iVar4) {\n                if ((int *)param_3[2] < (int *)param_3[3]) {\n                  iVar3 = *(int *)param_3[2];\n                  if (iVar3 == -1) {\n                    param_3 = (int *)0x0;\n                  }\n                }\n                else {\n                  iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n                  if (iVar3 == -1) {\n                    param_3 = (int *)0x0;\n                  }\n                }\n                goto LAB_00341ed0;\n              }\n            }\n            else {\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2);\n              iVar5 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n              if (iVar5 != iVar4) goto LAB_00341ed0;\n            }\nLAB_00341f00:\n            uVar6 = param_3[2];\n            if ((uint)param_3[2] < (uint)param_3[3]) goto LAB_00341f14;\nLAB_003424f8:\n            (**(code **)(*param_3 + 0x28))(param_3);\n          }" { (if_statement "if (param_4 == -1) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar4 = *(int *)param_3[2];\n              }\n              else {\n                iVar4 = (**(code **)(*param_3 + 0x24))(param_3,0xffffffff);\n              }\n              if (iVar4 == -1) goto LAB_00342380;\n              iVar3 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2);\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n              if (iVar3 != iVar4) {\n                if ((int *)param_3[2] < (int *)param_3[3]) {\n                  iVar3 = *(int *)param_3[2];\n                  if (iVar3 == -1) {\n                    param_3 = (int *)0x0;\n                  }\n                }\n                else {\n                  iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n                  if (iVar3 == -1) {\n                    param_3 = (int *)0x0;\n                  }\n                }\n                goto LAB_00341ed0;\n              }\n            }\n            else {\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2);\n              iVar5 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n              if (iVar5 != iVar4) goto LAB_00341ed0;\n            }" if (parenthesized_expression "(param_4 == -1)" ( (binary_expression "param_4 == -1" identifier == number_literal) )) (compound_statement "{\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar4 = *(int *)param_3[2];\n              }\n              else {\n                iVar4 = (**(code **)(*param_3 + 0x24))(param_3,0xffffffff);\n              }\n              if (iVar4 == -1) goto LAB_00342380;\n              iVar3 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2);\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n              if (iVar3 != iVar4) {\n                if ((int *)param_3[2] < (int *)param_3[3]) {\n                  iVar3 = *(int *)param_3[2];\n                  if (iVar3 == -1) {\n                    param_3 = (int *)0x0;\n                  }\n                }\n                else {\n                  iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n                  if (iVar3 == -1) {\n                    param_3 = (int *)0x0;\n                  }\n                }\n                goto LAB_00341ed0;\n              }\n            }" { (if_statement "if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar4 = *(int *)param_3[2];\n              }\n              else {\n                iVar4 = (**(code **)(*param_3 + 0x24))(param_3,0xffffffff);\n              }" if (parenthesized_expression "((int *)param_3[2] < (int *)param_3[3])" ( (binary_expression "(int *)param_3[2] < (int *)param_3[3]" (cast_expression "(int *)param_3[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[2]" identifier [ number_literal ])) < (cast_expression "(int *)param_3[3]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[3]" identifier [ number_literal ]))) )) (compound_statement "{\n                iVar4 = *(int *)param_3[2];\n              }" { (expression_statement "iVar4 = *(int *)param_3[2];" (assignment_expression "iVar4 = *(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 "*" *)) ) (subscript_expression "param_3[2]" identifier [ number_literal ])))) ;) }) (else_clause "else {\n                iVar4 = (**(code **)(*param_3 + 0x24))(param_3,0xffffffff);\n              }" else (compound_statement "{\n                iVar4 = (**(code **)(*param_3 + 0x24))(param_3,0xffffffff);\n              }" { (expression_statement "iVar4 = (**(code **)(*param_3 + 0x24))(param_3,0xffffffff);" (assignment_expression "iVar4 = (**(code **)(*param_3 + 0x24))(param_3,0xffffffff)" identifier = (call_expression "(**(code **)(*param_3 + 0x24))(param_3,0xffffffff)" (parenthesized_expression "(**(code **)(*param_3 + 0x24))" ( (pointer_expression "**(code **)(*param_3 + 0x24)" * (pointer_expression "*(code **)(*param_3 + 0x24)" * (cast_expression "(code **)(*param_3 + 0x24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_3 + 0x24)" ( (binary_expression "*param_3 + 0x24" (pointer_expression "*param_3" * identifier) + number_literal) ))))) )) (argument_list "(param_3,0xffffffff)" ( identifier , number_literal )))) ;) }))) (if_statement "if (iVar4 == -1) goto LAB_00342380;" if (parenthesized_expression "(iVar4 == -1)" ( (binary_expression "iVar4 == -1" identifier == number_literal) )) (goto_statement "goto LAB_00342380;" goto statement_identifier ;)) (expression_statement "iVar3 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2);" (assignment_expression "iVar3 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2)" identifier = (call_expression "(**(code **)(*(int *)pcVar2 + 0x20))(pcVar2)" (parenthesized_expression "(**(code **)(*(int *)pcVar2 + 0x20))" ( (pointer_expression "**(code **)(*(int *)pcVar2 + 0x20)" * (pointer_expression "*(code **)(*(int *)pcVar2 + 0x20)" * (cast_expression "(code **)(*(int *)pcVar2 + 0x20)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)pcVar2 + 0x20)" ( (binary_expression "*(int *)pcVar2 + 0x20" (pointer_expression "*(int *)pcVar2" * (cast_expression "(int *)pcVar2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) )) (argument_list "(pcVar2)" ( identifier )))) ;) (expression_statement "iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);" (assignment_expression "iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10)" identifier = (call_expression "(**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10)" (parenthesized_expression "(**(code **)(*(int *)pcVar2 + 0x20))" ( (pointer_expression "**(code **)(*(int *)pcVar2 + 0x20)" * (pointer_expression "*(code **)(*(int *)pcVar2 + 0x20)" * (cast_expression "(code **)(*(int *)pcVar2 + 0x20)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)pcVar2 + 0x20)" ( (binary_expression "*(int *)pcVar2 + 0x20" (pointer_expression "*(int *)pcVar2" * (cast_expression "(int *)pcVar2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) )) (argument_list "(pcVar2,*param_10)" ( identifier , (pointer_expression "*param_10" * identifier) )))) ;) (if_statement "if (iVar3 != iVar4) {\n                if ((int *)param_3[2] < (int *)param_3[3]) {\n                  iVar3 = *(int *)param_3[2];\n                  if (iVar3 == -1) {\n                    param_3 = (int *)0x0;\n                  }\n                }\n                else {\n                  iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n                  if (iVar3 == -1) {\n                    param_3 = (int *)0x0;\n                  }\n                }\n                goto LAB_00341ed0;\n              }" if (parenthesized_expression "(iVar3 != iVar4)" ( (binary_expression "iVar3 != iVar4" identifier != identifier) )) (compound_statement "{\n                if ((int *)param_3[2] < (int *)param_3[3]) {\n                  iVar3 = *(int *)param_3[2];\n                  if (iVar3 == -1) {\n                    param_3 = (int *)0x0;\n                  }\n                }\n                else {\n                  iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n                  if (iVar3 == -1) {\n                    param_3 = (int *)0x0;\n                  }\n                }\n                goto LAB_00341ed0;\n              }" { (if_statement "if ((int *)param_3[2] < (int *)param_3[3]) {\n                  iVar3 = *(int *)param_3[2];\n                  if (iVar3 == -1) {\n                    param_3 = (int *)0x0;\n                  }\n                }\n                else {\n                  iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n                  if (iVar3 == -1) {\n                    param_3 = (int *)0x0;\n                  }\n                }" if (parenthesized_expression "((int *)param_3[2] < (int *)param_3[3])" ( (binary_expression "(int *)param_3[2] < (int *)param_3[3]" (cast_expression "(int *)param_3[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[2]" identifier [ number_literal ])) < (cast_expression "(int *)param_3[3]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[3]" identifier [ number_literal ]))) )) (compound_statement "{\n                  iVar3 = *(int *)param_3[2];\n                  if (iVar3 == -1) {\n                    param_3 = (int *)0x0;\n                  }\n                }" { (expression_statement "iVar3 = *(int *)param_3[2];" (assignment_expression "iVar3 = *(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 "*" *)) ) (subscript_expression "param_3[2]" identifier [ number_literal ])))) ;) (if_statement "if (iVar3 == -1) {\n                    param_3 = (int *)0x0;\n                  }" if (parenthesized_expression "(iVar3 == -1)" ( (binary_expression "iVar3 == -1" identifier == number_literal) )) (compound_statement "{\n                    param_3 = (int *)0x0;\n                  }" { (expression_statement "param_3 = (int *)0x0;" (assignment_expression "param_3 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) }) (else_clause "else {\n                  iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n                  if (iVar3 == -1) {\n                    param_3 = (int *)0x0;\n                  }\n                }" else (compound_statement "{\n                  iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n                  if (iVar3 == -1) {\n                    param_3 = (int *)0x0;\n                  }\n                }" { (expression_statement "iVar3 = (**(code **)(*param_3 + 0x24))(param_3);" (assignment_expression "iVar3 = (**(code **)(*param_3 + 0x24))(param_3)" identifier = (call_expression "(**(code **)(*param_3 + 0x24))(param_3)" (parenthesized_expression "(**(code **)(*param_3 + 0x24))" ( (pointer_expression "**(code **)(*param_3 + 0x24)" * (pointer_expression "*(code **)(*param_3 + 0x24)" * (cast_expression "(code **)(*param_3 + 0x24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_3 + 0x24)" ( (binary_expression "*param_3 + 0x24" (pointer_expression "*param_3" * identifier) + number_literal) ))))) )) (argument_list "(param_3)" ( identifier )))) ;) (if_statement "if (iVar3 == -1) {\n                    param_3 = (int *)0x0;\n                  }" if (parenthesized_expression "(iVar3 == -1)" ( (binary_expression "iVar3 == -1" identifier == number_literal) )) (compound_statement "{\n                    param_3 = (int *)0x0;\n                  }" { (expression_statement "param_3 = (int *)0x0;" (assignment_expression "param_3 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) }))) (goto_statement "goto LAB_00341ed0;" goto statement_identifier ;) })) }) (else_clause "else {\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2);\n              iVar5 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n              if (iVar5 != iVar4) goto LAB_00341ed0;\n            }" else (compound_statement "{\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2);\n              iVar5 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n              if (iVar5 != iVar4) goto LAB_00341ed0;\n            }" { (expression_statement "iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2);" (assignment_expression "iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2)" identifier = (call_expression "(**(code **)(*(int *)pcVar2 + 0x20))(pcVar2)" (parenthesized_expression "(**(code **)(*(int *)pcVar2 + 0x20))" ( (pointer_expression "**(code **)(*(int *)pcVar2 + 0x20)" * (pointer_expression "*(code **)(*(int *)pcVar2 + 0x20)" * (cast_expression "(code **)(*(int *)pcVar2 + 0x20)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)pcVar2 + 0x20)" ( (binary_expression "*(int *)pcVar2 + 0x20" (pointer_expression "*(int *)pcVar2" * (cast_expression "(int *)pcVar2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) )) (argument_list "(pcVar2)" ( identifier )))) ;) (expression_statement "iVar5 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);" (assignment_expression "iVar5 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10)" identifier = (call_expression "(**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10)" (parenthesized_expression "(**(code **)(*(int *)pcVar2 + 0x20))" ( (pointer_expression "**(code **)(*(int *)pcVar2 + 0x20)" * (pointer_expression "*(code **)(*(int *)pcVar2 + 0x20)" * (cast_expression "(code **)(*(int *)pcVar2 + 0x20)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)pcVar2 + 0x20)" ( (binary_expression "*(int *)pcVar2 + 0x20" (pointer_expression "*(int *)pcVar2" * (cast_expression "(int *)pcVar2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) )) (argument_list "(pcVar2,*param_10)" ( identifier , (pointer_expression "*param_10" * identifier) )))) ;) (if_statement "if (iVar5 != iVar4) goto LAB_00341ed0;" if (parenthesized_expression "(iVar5 != iVar4)" ( (binary_expression "iVar5 != iVar4" identifier != identifier) )) (goto_statement "goto LAB_00341ed0;" goto statement_identifier ;)) }))) (labeled_statement "LAB_00341f00:\n            uVar6 = param_3[2];" statement_identifier : (expression_statement "uVar6 = param_3[2];" (assignment_expression "uVar6 = param_3[2]" identifier = (subscript_expression "param_3[2]" identifier [ number_literal ])) ;)) (if_statement "if ((uint)param_3[2] < (uint)param_3[3]) goto LAB_00341f14;" if (parenthesized_expression "((uint)param_3[2] < (uint)param_3[3])" ( (binary_expression "(uint)param_3[2] < (uint)param_3[3]" (cast_expression "(uint)param_3[2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_3[2]" identifier [ number_literal ])) < (cast_expression "(uint)param_3[3]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_3[3]" identifier [ number_literal ]))) )) (goto_statement "goto LAB_00341f14;" goto statement_identifier ;)) (labeled_statement "LAB_003424f8:\n            (**(code **)(*param_3 + 0x28))(param_3);" statement_identifier : (expression_statement "(**(code **)(*param_3 + 0x28))(param_3);" (call_expression "(**(code **)(*param_3 + 0x28))(param_3)" (parenthesized_expression "(**(code **)(*param_3 + 0x28))" ( (pointer_expression "**(code **)(*param_3 + 0x28)" * (pointer_expression "*(code **)(*param_3 + 0x28)" * (cast_expression "(code **)(*param_3 + 0x28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_3 + 0x28)" ( (binary_expression "*param_3 + 0x28" (pointer_expression "*param_3" * identifier) + number_literal) ))))) )) (argument_list "(param_3)" ( identifier ))) ;)) }))) (expression_statement "param_10 = param_10 + 1;" (assignment_expression "param_10 = param_10 + 1" identifier = (binary_expression "param_10 + 1" identifier + number_literal)) ;) (expression_statement "param_4 = -1;" (assignment_expression "param_4 = -1" identifier = number_literal) ;) }) (else_clause "else {\n          do {\n            param_10 = param_10 + 1;\n            if (param_11 == param_10) break;\n            iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,*param_10);\n          } while (iVar3 != 0);\n          iVar3 = param_4;\n          if ((param_3 != (int *)0x0) && (param_4 == -1)) goto LAB_0034201c;\n          while( true ) {\n            bVar1 = param_4 == -1;\n            iVar4 = param_6;\n            if ((param_5 != (int *)0x0) && (param_6 == -1)) {\n              if ((int *)param_5[2] < (int *)param_5[3]) {\n                iVar4 = *(int *)param_5[2];\n                if (iVar4 == -1) {\n                  param_5 = (int *)0x0;\n                }\n              }\n              else {\n                iVar4 = (**(code **)(*param_5 + 0x24))(param_5);\n                if (iVar4 == -1) {\n                  param_5 = (int *)0x0;\n                }\n              }\n            }\n            param_4 = iVar3;\n            if ((iVar4 == -1) == bVar1) break;\n            if ((param_3 != (int *)0x0) && (iVar3 == -1)) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar3 = *(int *)param_3[2];\n                if (iVar3 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n              else {\n                iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n                if (iVar3 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n            }\n            iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,iVar3);\n            if (iVar3 == 0) break;\n            if ((uint)param_3[2] < (uint)param_3[3]) {\n              param_3[2] = param_3[2] + 4;\nLAB_0034201c:\n              piVar7 = (int *)param_3[2];\n              if (piVar7 < (int *)param_3[3]) goto LAB_00342030;\nLAB_003422d0:\n              param_4 = (**(code **)(*param_3 + 0x24))(param_3);\n            }\n            else {\n              (**(code **)(*param_3 + 0x28))(param_3);\n              piVar7 = (int *)param_3[2];\n              if ((int *)param_3[3] <= piVar7) goto LAB_003422d0;\nLAB_00342030:\n              param_4 = *piVar7;\n            }\n            iVar3 = -1;\n            if (param_4 == -1) {\n              param_3 = (int *)0x0;\n            }\n          }\n        }" else (compound_statement "{\n          do {\n            param_10 = param_10 + 1;\n            if (param_11 == param_10) break;\n            iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,*param_10);\n          } while (iVar3 != 0);\n          iVar3 = param_4;\n          if ((param_3 != (int *)0x0) && (param_4 == -1)) goto LAB_0034201c;\n          while( true ) {\n            bVar1 = param_4 == -1;\n            iVar4 = param_6;\n            if ((param_5 != (int *)0x0) && (param_6 == -1)) {\n              if ((int *)param_5[2] < (int *)param_5[3]) {\n                iVar4 = *(int *)param_5[2];\n                if (iVar4 == -1) {\n                  param_5 = (int *)0x0;\n                }\n              }\n              else {\n                iVar4 = (**(code **)(*param_5 + 0x24))(param_5);\n                if (iVar4 == -1) {\n                  param_5 = (int *)0x0;\n                }\n              }\n            }\n            param_4 = iVar3;\n            if ((iVar4 == -1) == bVar1) break;\n            if ((param_3 != (int *)0x0) && (iVar3 == -1)) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar3 = *(int *)param_3[2];\n                if (iVar3 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n              else {\n                iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n                if (iVar3 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n            }\n            iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,iVar3);\n            if (iVar3 == 0) break;\n            if ((uint)param_3[2] < (uint)param_3[3]) {\n              param_3[2] = param_3[2] + 4;\nLAB_0034201c:\n              piVar7 = (int *)param_3[2];\n              if (piVar7 < (int *)param_3[3]) goto LAB_00342030;\nLAB_003422d0:\n              param_4 = (**(code **)(*param_3 + 0x24))(param_3);\n            }\n            else {\n              (**(code **)(*param_3 + 0x28))(param_3);\n              piVar7 = (int *)param_3[2];\n              if ((int *)param_3[3] <= piVar7) goto LAB_003422d0;\nLAB_00342030:\n              param_4 = *piVar7;\n            }\n            iVar3 = -1;\n            if (param_4 == -1) {\n              param_3 = (int *)0x0;\n            }\n          }\n        }" { (do_statement "do {\n            param_10 = param_10 + 1;\n            if (param_11 == param_10) break;\n            iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,*param_10);\n          } while (iVar3 != 0);" do (compound_statement "{\n            param_10 = param_10 + 1;\n            if (param_11 == param_10) break;\n            iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,*param_10);\n          }" { (expression_statement "param_10 = param_10 + 1;" (assignment_expression "param_10 = param_10 + 1" identifier = (binary_expression "param_10 + 1" identifier + number_literal)) ;) (if_statement "if (param_11 == param_10) break;" if (parenthesized_expression "(param_11 == param_10)" ( (binary_expression "param_11 == param_10" identifier == identifier) )) (break_statement "break;" break ;)) (expression_statement "iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,*param_10);" (assignment_expression "iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,*param_10)" identifier = (call_expression "(**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,*param_10)" (parenthesized_expression "(**(code **)(*(int *)pcVar2 + 8))" ( (pointer_expression "**(code **)(*(int *)pcVar2 + 8)" * (pointer_expression "*(code **)(*(int *)pcVar2 + 8)" * (cast_expression "(code **)(*(int *)pcVar2 + 8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)pcVar2 + 8)" ( (binary_expression "*(int *)pcVar2 + 8" (pointer_expression "*(int *)pcVar2" * (cast_expression "(int *)pcVar2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) )) (argument_list "(pcVar2,0x20,*param_10)" ( identifier , number_literal , (pointer_expression "*param_10" * identifier) )))) ;) }) while (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) ;) (expression_statement "iVar3 = param_4;" (assignment_expression "iVar3 = param_4" identifier = identifier) ;) (if_statement "if ((param_3 != (int *)0x0) && (param_4 == -1)) goto LAB_0034201c;" if (parenthesized_expression "((param_3 != (int *)0x0) && (param_4 == -1))" ( (binary_expression "(param_3 != (int *)0x0) && (param_4 == -1)" (parenthesized_expression "(param_3 != (int *)0x0)" ( (binary_expression "param_3 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(param_4 == -1)" ( (binary_expression "param_4 == -1" identifier == number_literal) ))) )) (goto_statement "goto LAB_0034201c;" goto statement_identifier ;)) (while_statement "while( true ) {\n            bVar1 = param_4 == -1;\n            iVar4 = param_6;\n            if ((param_5 != (int *)0x0) && (param_6 == -1)) {\n              if ((int *)param_5[2] < (int *)param_5[3]) {\n                iVar4 = *(int *)param_5[2];\n                if (iVar4 == -1) {\n                  param_5 = (int *)0x0;\n                }\n              }\n              else {\n                iVar4 = (**(code **)(*param_5 + 0x24))(param_5);\n                if (iVar4 == -1) {\n                  param_5 = (int *)0x0;\n                }\n              }\n            }\n            param_4 = iVar3;\n            if ((iVar4 == -1) == bVar1) break;\n            if ((param_3 != (int *)0x0) && (iVar3 == -1)) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar3 = *(int *)param_3[2];\n                if (iVar3 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n              else {\n                iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n                if (iVar3 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n            }\n            iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,iVar3);\n            if (iVar3 == 0) break;\n            if ((uint)param_3[2] < (uint)param_3[3]) {\n              param_3[2] = param_3[2] + 4;\nLAB_0034201c:\n              piVar7 = (int *)param_3[2];\n              if (piVar7 < (int *)param_3[3]) goto LAB_00342030;\nLAB_003422d0:\n              param_4 = (**(code **)(*param_3 + 0x24))(param_3);\n            }\n            else {\n              (**(code **)(*param_3 + 0x28))(param_3);\n              piVar7 = (int *)param_3[2];\n              if ((int *)param_3[3] <= piVar7) goto LAB_003422d0;\nLAB_00342030:\n              param_4 = *piVar7;\n            }\n            iVar3 = -1;\n            if (param_4 == -1) {\n              param_3 = (int *)0x0;\n            }\n          }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n            bVar1 = param_4 == -1;\n            iVar4 = param_6;\n            if ((param_5 != (int *)0x0) && (param_6 == -1)) {\n              if ((int *)param_5[2] < (int *)param_5[3]) {\n                iVar4 = *(int *)param_5[2];\n                if (iVar4 == -1) {\n                  param_5 = (int *)0x0;\n                }\n              }\n              else {\n                iVar4 = (**(code **)(*param_5 + 0x24))(param_5);\n                if (iVar4 == -1) {\n                  param_5 = (int *)0x0;\n                }\n              }\n            }\n            param_4 = iVar3;\n            if ((iVar4 == -1) == bVar1) break;\n            if ((param_3 != (int *)0x0) && (iVar3 == -1)) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar3 = *(int *)param_3[2];\n                if (iVar3 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n              else {\n                iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n                if (iVar3 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n            }\n            iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,iVar3);\n            if (iVar3 == 0) break;\n            if ((uint)param_3[2] < (uint)param_3[3]) {\n              param_3[2] = param_3[2] + 4;\nLAB_0034201c:\n              piVar7 = (int *)param_3[2];\n              if (piVar7 < (int *)param_3[3]) goto LAB_00342030;\nLAB_003422d0:\n              param_4 = (**(code **)(*param_3 + 0x24))(param_3);\n            }\n            else {\n              (**(code **)(*param_3 + 0x28))(param_3);\n              piVar7 = (int *)param_3[2];\n              if ((int *)param_3[3] <= piVar7) goto LAB_003422d0;\nLAB_00342030:\n              param_4 = *piVar7;\n            }\n            iVar3 = -1;\n            if (param_4 == -1) {\n              param_3 = (int *)0x0;\n            }\n          }" { (expression_statement "bVar1 = param_4 == -1;" (assignment_expression "bVar1 = param_4 == -1" identifier = (binary_expression "param_4 == -1" identifier == number_literal)) ;) (expression_statement "iVar4 = param_6;" (assignment_expression "iVar4 = param_6" identifier = identifier) ;) (if_statement "if ((param_5 != (int *)0x0) && (param_6 == -1)) {\n              if ((int *)param_5[2] < (int *)param_5[3]) {\n                iVar4 = *(int *)param_5[2];\n                if (iVar4 == -1) {\n                  param_5 = (int *)0x0;\n                }\n              }\n              else {\n                iVar4 = (**(code **)(*param_5 + 0x24))(param_5);\n                if (iVar4 == -1) {\n                  param_5 = (int *)0x0;\n                }\n              }\n            }" if (parenthesized_expression "((param_5 != (int *)0x0) && (param_6 == -1))" ( (binary_expression "(param_5 != (int *)0x0) && (param_6 == -1)" (parenthesized_expression "(param_5 != (int *)0x0)" ( (binary_expression "param_5 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(param_6 == -1)" ( (binary_expression "param_6 == -1" identifier == number_literal) ))) )) (compound_statement "{\n              if ((int *)param_5[2] < (int *)param_5[3]) {\n                iVar4 = *(int *)param_5[2];\n                if (iVar4 == -1) {\n                  param_5 = (int *)0x0;\n                }\n              }\n              else {\n                iVar4 = (**(code **)(*param_5 + 0x24))(param_5);\n                if (iVar4 == -1) {\n                  param_5 = (int *)0x0;\n                }\n              }\n            }" { (if_statement "if ((int *)param_5[2] < (int *)param_5[3]) {\n                iVar4 = *(int *)param_5[2];\n                if (iVar4 == -1) {\n                  param_5 = (int *)0x0;\n                }\n              }\n              else {\n                iVar4 = (**(code **)(*param_5 + 0x24))(param_5);\n                if (iVar4 == -1) {\n                  param_5 = (int *)0x0;\n                }\n              }" if (parenthesized_expression "((int *)param_5[2] < (int *)param_5[3])" ( (binary_expression "(int *)param_5[2] < (int *)param_5[3]" (cast_expression "(int *)param_5[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_5[2]" identifier [ number_literal ])) < (cast_expression "(int *)param_5[3]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_5[3]" identifier [ number_literal ]))) )) (compound_statement "{\n                iVar4 = *(int *)param_5[2];\n                if (iVar4 == -1) {\n                  param_5 = (int *)0x0;\n                }\n              }" { (expression_statement "iVar4 = *(int *)param_5[2];" (assignment_expression "iVar4 = *(int *)param_5[2]" identifier = (pointer_expression "*(int *)param_5[2]" * (cast_expression "(int *)param_5[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_5[2]" identifier [ number_literal ])))) ;) (if_statement "if (iVar4 == -1) {\n                  param_5 = (int *)0x0;\n                }" if (parenthesized_expression "(iVar4 == -1)" ( (binary_expression "iVar4 == -1" identifier == number_literal) )) (compound_statement "{\n                  param_5 = (int *)0x0;\n                }" { (expression_statement "param_5 = (int *)0x0;" (assignment_expression "param_5 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) }) (else_clause "else {\n                iVar4 = (**(code **)(*param_5 + 0x24))(param_5);\n                if (iVar4 == -1) {\n                  param_5 = (int *)0x0;\n                }\n              }" else (compound_statement "{\n                iVar4 = (**(code **)(*param_5 + 0x24))(param_5);\n                if (iVar4 == -1) {\n                  param_5 = (int *)0x0;\n                }\n              }" { (expression_statement "iVar4 = (**(code **)(*param_5 + 0x24))(param_5);" (assignment_expression "iVar4 = (**(code **)(*param_5 + 0x24))(param_5)" identifier = (call_expression "(**(code **)(*param_5 + 0x24))(param_5)" (parenthesized_expression "(**(code **)(*param_5 + 0x24))" ( (pointer_expression "**(code **)(*param_5 + 0x24)" * (pointer_expression "*(code **)(*param_5 + 0x24)" * (cast_expression "(code **)(*param_5 + 0x24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_5 + 0x24)" ( (binary_expression "*param_5 + 0x24" (pointer_expression "*param_5" * identifier) + number_literal) ))))) )) (argument_list "(param_5)" ( identifier )))) ;) (if_statement "if (iVar4 == -1) {\n                  param_5 = (int *)0x0;\n                }" if (parenthesized_expression "(iVar4 == -1)" ( (binary_expression "iVar4 == -1" identifier == number_literal) )) (compound_statement "{\n                  param_5 = (int *)0x0;\n                }" { (expression_statement "param_5 = (int *)0x0;" (assignment_expression "param_5 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) }))) })) (expression_statement "param_4 = iVar3;" (assignment_expression "param_4 = iVar3" identifier = identifier) ;) (if_statement "if ((iVar4 == -1) == bVar1) break;" if (parenthesized_expression "((iVar4 == -1) == bVar1)" ( (binary_expression "(iVar4 == -1) == bVar1" (parenthesized_expression "(iVar4 == -1)" ( (binary_expression "iVar4 == -1" identifier == number_literal) )) == identifier) )) (break_statement "break;" break ;)) (if_statement "if ((param_3 != (int *)0x0) && (iVar3 == -1)) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar3 = *(int *)param_3[2];\n                if (iVar3 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n              else {\n                iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n                if (iVar3 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n            }" if (parenthesized_expression "((param_3 != (int *)0x0) && (iVar3 == -1))" ( (binary_expression "(param_3 != (int *)0x0) && (iVar3 == -1)" (parenthesized_expression "(param_3 != (int *)0x0)" ( (binary_expression "param_3 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(iVar3 == -1)" ( (binary_expression "iVar3 == -1" identifier == number_literal) ))) )) (compound_statement "{\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar3 = *(int *)param_3[2];\n                if (iVar3 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n              else {\n                iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n                if (iVar3 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n            }" { (if_statement "if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar3 = *(int *)param_3[2];\n                if (iVar3 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n              else {\n                iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n                if (iVar3 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }" if (parenthesized_expression "((int *)param_3[2] < (int *)param_3[3])" ( (binary_expression "(int *)param_3[2] < (int *)param_3[3]" (cast_expression "(int *)param_3[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[2]" identifier [ number_literal ])) < (cast_expression "(int *)param_3[3]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[3]" identifier [ number_literal ]))) )) (compound_statement "{\n                iVar3 = *(int *)param_3[2];\n                if (iVar3 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }" { (expression_statement "iVar3 = *(int *)param_3[2];" (assignment_expression "iVar3 = *(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 "*" *)) ) (subscript_expression "param_3[2]" identifier [ number_literal ])))) ;) (if_statement "if (iVar3 == -1) {\n                  param_3 = (int *)0x0;\n                }" if (parenthesized_expression "(iVar3 == -1)" ( (binary_expression "iVar3 == -1" identifier == number_literal) )) (compound_statement "{\n                  param_3 = (int *)0x0;\n                }" { (expression_statement "param_3 = (int *)0x0;" (assignment_expression "param_3 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) }) (else_clause "else {\n                iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n                if (iVar3 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }" else (compound_statement "{\n                iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n                if (iVar3 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }" { (expression_statement "iVar3 = (**(code **)(*param_3 + 0x24))(param_3);" (assignment_expression "iVar3 = (**(code **)(*param_3 + 0x24))(param_3)" identifier = (call_expression "(**(code **)(*param_3 + 0x24))(param_3)" (parenthesized_expression "(**(code **)(*param_3 + 0x24))" ( (pointer_expression "**(code **)(*param_3 + 0x24)" * (pointer_expression "*(code **)(*param_3 + 0x24)" * (cast_expression "(code **)(*param_3 + 0x24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_3 + 0x24)" ( (binary_expression "*param_3 + 0x24" (pointer_expression "*param_3" * identifier) + number_literal) ))))) )) (argument_list "(param_3)" ( identifier )))) ;) (if_statement "if (iVar3 == -1) {\n                  param_3 = (int *)0x0;\n                }" if (parenthesized_expression "(iVar3 == -1)" ( (binary_expression "iVar3 == -1" identifier == number_literal) )) (compound_statement "{\n                  param_3 = (int *)0x0;\n                }" { (expression_statement "param_3 = (int *)0x0;" (assignment_expression "param_3 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) }))) })) (expression_statement "iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,iVar3);" (assignment_expression "iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,iVar3)" identifier = (call_expression "(**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,iVar3)" (parenthesized_expression "(**(code **)(*(int *)pcVar2 + 8))" ( (pointer_expression "**(code **)(*(int *)pcVar2 + 8)" * (pointer_expression "*(code **)(*(int *)pcVar2 + 8)" * (cast_expression "(code **)(*(int *)pcVar2 + 8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)pcVar2 + 8)" ( (binary_expression "*(int *)pcVar2 + 8" (pointer_expression "*(int *)pcVar2" * (cast_expression "(int *)pcVar2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) )) (argument_list "(pcVar2,0x20,iVar3)" ( identifier , number_literal , identifier )))) ;) (if_statement "if (iVar3 == 0) break;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (if_statement "if ((uint)param_3[2] < (uint)param_3[3]) {\n              param_3[2] = param_3[2] + 4;\nLAB_0034201c:\n              piVar7 = (int *)param_3[2];\n              if (piVar7 < (int *)param_3[3]) goto LAB_00342030;\nLAB_003422d0:\n              param_4 = (**(code **)(*param_3 + 0x24))(param_3);\n            }\n            else {\n              (**(code **)(*param_3 + 0x28))(param_3);\n              piVar7 = (int *)param_3[2];\n              if ((int *)param_3[3] <= piVar7) goto LAB_003422d0;\nLAB_00342030:\n              param_4 = *piVar7;\n            }" if (parenthesized_expression "((uint)param_3[2] < (uint)param_3[3])" ( (binary_expression "(uint)param_3[2] < (uint)param_3[3]" (cast_expression "(uint)param_3[2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_3[2]" identifier [ number_literal ])) < (cast_expression "(uint)param_3[3]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_3[3]" identifier [ number_literal ]))) )) (compound_statement "{\n              param_3[2] = param_3[2] + 4;\nLAB_0034201c:\n              piVar7 = (int *)param_3[2];\n              if (piVar7 < (int *)param_3[3]) goto LAB_00342030;\nLAB_003422d0:\n              param_4 = (**(code **)(*param_3 + 0x24))(param_3);\n            }" { (expression_statement "param_3[2] = param_3[2] + 4;" (assignment_expression "param_3[2] = param_3[2] + 4" (subscript_expression "param_3[2]" identifier [ number_literal ]) = (binary_expression "param_3[2] + 4" (subscript_expression "param_3[2]" identifier [ number_literal ]) + number_literal)) ;) (labeled_statement "LAB_0034201c:\n              piVar7 = (int *)param_3[2];" statement_identifier : (expression_statement "piVar7 = (int *)param_3[2];" (assignment_expression "piVar7 = (int *)param_3[2]" identifier = (cast_expression "(int *)param_3[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[2]" identifier [ number_literal ]))) ;)) (if_statement "if (piVar7 < (int *)param_3[3]) goto LAB_00342030;" if (parenthesized_expression "(piVar7 < (int *)param_3[3])" ( (binary_expression "piVar7 < (int *)param_3[3]" identifier < (cast_expression "(int *)param_3[3]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[3]" identifier [ number_literal ]))) )) (goto_statement "goto LAB_00342030;" goto statement_identifier ;)) (labeled_statement "LAB_003422d0:\n              param_4 = (**(code **)(*param_3 + 0x24))(param_3);" statement_identifier : (expression_statement "param_4 = (**(code **)(*param_3 + 0x24))(param_3);" (assignment_expression "param_4 = (**(code **)(*param_3 + 0x24))(param_3)" identifier = (call_expression "(**(code **)(*param_3 + 0x24))(param_3)" (parenthesized_expression "(**(code **)(*param_3 + 0x24))" ( (pointer_expression "**(code **)(*param_3 + 0x24)" * (pointer_expression "*(code **)(*param_3 + 0x24)" * (cast_expression "(code **)(*param_3 + 0x24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_3 + 0x24)" ( (binary_expression "*param_3 + 0x24" (pointer_expression "*param_3" * identifier) + number_literal) ))))) )) (argument_list "(param_3)" ( identifier )))) ;)) }) (else_clause "else {\n              (**(code **)(*param_3 + 0x28))(param_3);\n              piVar7 = (int *)param_3[2];\n              if ((int *)param_3[3] <= piVar7) goto LAB_003422d0;\nLAB_00342030:\n              param_4 = *piVar7;\n            }" else (compound_statement "{\n              (**(code **)(*param_3 + 0x28))(param_3);\n              piVar7 = (int *)param_3[2];\n              if ((int *)param_3[3] <= piVar7) goto LAB_003422d0;\nLAB_00342030:\n              param_4 = *piVar7;\n            }" { (expression_statement "(**(code **)(*param_3 + 0x28))(param_3);" (call_expression "(**(code **)(*param_3 + 0x28))(param_3)" (parenthesized_expression "(**(code **)(*param_3 + 0x28))" ( (pointer_expression "**(code **)(*param_3 + 0x28)" * (pointer_expression "*(code **)(*param_3 + 0x28)" * (cast_expression "(code **)(*param_3 + 0x28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_3 + 0x28)" ( (binary_expression "*param_3 + 0x28" (pointer_expression "*param_3" * identifier) + number_literal) ))))) )) (argument_list "(param_3)" ( identifier ))) ;) (expression_statement "piVar7 = (int *)param_3[2];" (assignment_expression "piVar7 = (int *)param_3[2]" identifier = (cast_expression "(int *)param_3[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[2]" identifier [ number_literal ]))) ;) (if_statement "if ((int *)param_3[3] <= piVar7) goto LAB_003422d0;" if (parenthesized_expression "((int *)param_3[3] <= piVar7)" ( (binary_expression "(int *)param_3[3] <= piVar7" (cast_expression "(int *)param_3[3]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[3]" identifier [ number_literal ])) <= identifier) )) (goto_statement "goto LAB_003422d0;" goto statement_identifier ;)) (labeled_statement "LAB_00342030:\n              param_4 = *piVar7;" statement_identifier : (expression_statement "param_4 = *piVar7;" (assignment_expression "param_4 = *piVar7" identifier = (pointer_expression "*piVar7" * identifier)) ;)) }))) (expression_statement "iVar3 = -1;" (assignment_expression "iVar3 = -1" identifier = number_literal) ;) (if_statement "if (param_4 == -1) {\n              param_3 = (int *)0x0;\n            }" if (parenthesized_expression "(param_4 == -1)" ( (binary_expression "param_4 == -1" identifier == number_literal) )) (compound_statement "{\n              param_3 = (int *)0x0;\n            }" { (expression_statement "param_3 = (int *)0x0;" (assignment_expression "param_3 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) })) }))) }))) (labeled_statement "LAB_00341f24:" statement_identifier : (expression_statement "" ;)) }) while (parenthesized_expression "((param_10 != param_11) && (*param_8 == 0))" ( (binary_expression "(param_10 != param_11) && (*param_8 == 0)" (parenthesized_expression "(param_10 != param_11)" ( (binary_expression "param_10 != param_11" identifier != identifier) )) && (parenthesized_expression "(*param_8 == 0)" ( (binary_expression "*param_8 == 0" (pointer_expression "*param_8" * identifier) == number_literal) ))) )) ;) })) (expression_statement "*param_1 = param_3;" (assignment_expression "*param_1 = param_3" (pointer_expression "*param_1" * identifier) = identifier) ;) (expression_statement "param_1[1] = param_4;" (assignment_expression "param_1[1] = param_4" (subscript_expression "param_1[1]" identifier [ number_literal ]) = identifier) ;) (return_statement "return;" return ;) })))
(translation_unit "/* std::time_get<wchar_t, std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >\n   >::get(std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >,\n   std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >, std::ios_base&,\n   std::_Ios_Iostate&, tm*, wchar_t const*, wchar_t const*) const */\n\nvoid std::time_get<wchar_t,std::istreambuf_iterator<wchar_t,std::char_traits<wchar_t>>>::get\n               (undefined4 *param_1,int *param_2,int *param_3,int param_4,int *param_5,int param_6,\n               int param_7,uint *param_8,undefined4 param_9,undefined4 *param_10,\n               undefined4 *param_11)\n\n{\n  bool bVar1;\n  ctype *pcVar2;\n  int iVar3;\n  int iVar4;\n  int iVar5;\n  uint uVar6;\n  int *piVar7;\n  undefined4 *puVar8;\n  code *pcVar9;\n  undefined4 local_60;\n  int local_5c;\n  int local_58;\n  undefined4 local_54;\n  int *local_50;\n  int local_4c;\n  int *local_48;\n  int local_44;\n  int *local_40;\n  int local_3c;\n  code *local_38;\n  int local_34;\n  locale *local_30;\n  undefined4 *local_2c;\n  \n  local_30 = (locale *)(param_7 + 0x6c);\n  pcVar2 = use_facet<std::ctype<wchar_t>>(local_30);\n  *param_8 = 0;\n  local_38 = (code *)PTR_do_get_00433d80;\n  if (param_10 != param_11) {\n    local_2c = &local_60;\n    do {\n      iVar3 = param_4;\n      if ((param_3 != (int *)0x0) && (param_4 == -1)) {\n        if ((int *)param_3[2] < (int *)param_3[3]) {\n          iVar3 = *(int *)param_3[2];\n          if (iVar3 == -1) {\n            param_3 = (int *)0x0;\n          }\n        }\n        else {\n          iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n          if (iVar3 == -1) {\n            param_3 = (int *)0x0;\n          }\n        }\n      }\n      if ((param_5 == (int *)0x0) || (param_6 != -1)) {\n        bVar1 = param_6 == -1;\n      }\n      else {\n        if ((int *)param_5[2] < (int *)param_5[3]) {\n          iVar4 = *(int *)param_5[2];\n          if (iVar4 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }\n        else {\n          iVar4 = (**(code **)(*param_5 + 0x24))(param_5);\n          if (iVar4 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }\n        bVar1 = iVar4 == -1;\n      }\n      if (bVar1 == (iVar3 == -1)) {\n        *param_8 = 6;\n        *param_1 = param_3;\n        param_1[1] = param_4;\n        return;\n      }\n      iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,*param_10,0);\n      if (iVar3 == 0x25) {\n        puVar8 = param_10 + 1;\n        if (param_11 == puVar8) goto LAB_0034254c;\n        iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,param_10[1],0);\n        if ((iVar3 == 0x45) || (iVar3 == 0x4f)) {\n          puVar8 = param_10 + 2;\n          if (param_11 == puVar8) goto LAB_0034254c;\n          local_34 = iVar3;\n          iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,param_10[2],0);\n          pcVar9 = *(code **)(*param_2 + 0x20);\n          iVar4 = local_34;\n          if (pcVar9 != local_38) goto LAB_0034243c;\n          piVar7 = (int *)(*(code *)PTR_use_facet<std_ctype<wchar_t>>_00433ac8)(local_30);\n          pcVar9 = *(code **)(*piVar7 + 0x28);\n          *param_8 = 0;\n          local_60 = (*pcVar9)(piVar7,0x25);\n          if (local_34 == 0) goto LAB_003421b4;\n          local_5c = local_34;\n          local_54 = 0;\n          local_58 = iVar3;\n        }\n        else {\n          pcVar9 = *(code **)(*param_2 + 0x20);\n          if (pcVar9 != local_38) {\n            iVar4 = 0;\nLAB_0034243c:\n            param_10 = puVar8 + 1;\n            (*pcVar9)(&local_40,param_2,param_3,param_4,param_5,param_6,param_7,param_8,param_9,\n                      iVar3,iVar4);\n            param_4 = local_3c;\n            param_3 = local_40;\n            goto LAB_00341f24;\n          }\n          local_34 = iVar3;\n          piVar7 = (int *)(*(code *)PTR_use_facet<std_ctype<wchar_t>>_00433ac8)(local_30);\n          pcVar9 = *(code **)(*piVar7 + 0x28);\n          *param_8 = 0;\n          local_60 = (*pcVar9)(piVar7,0x25);\n          iVar3 = local_34;\nLAB_003421b4:\n          local_58 = 0;\n          local_5c = iVar3;\n        }\n        local_4c = param_6;\n        local_50 = param_5;\n        _M_extract_via_format\n                  (&local_40,param_2,param_3,param_4,param_5,param_6,param_7,param_8,param_9,\n                   local_2c);\n        param_4 = local_3c;\n        param_3 = local_40;\n        local_48 = local_40;\n        local_44 = local_3c;\n        iVar3 = local_3c;\n        if ((local_40 != (int *)0x0) && (local_3c == -1)) {\n          if ((int *)local_40[2] < (int *)local_40[3]) {\n            iVar3 = *(int *)local_40[2];\n          }\n          else {\n            iVar3 = (**(code **)(*local_40 + 0x24))(local_40);\n          }\n          if (iVar3 == -1) {\n            param_3 = (int *)0x0;\n          }\n        }\n        iVar4 = param_6;\n        if ((param_5 != (int *)0x0) && (param_6 == -1)) {\n          if ((int *)param_5[2] < (int *)param_5[3]) {\n            iVar4 = *(int *)param_5[2];\n          }\n          else {\n            iVar4 = (**(code **)(*param_5 + 0x24))(param_5);\n          }\n        }\n        if ((iVar4 == -1) == (iVar3 == -1)) {\n          *param_8 = *param_8 | 2;\n        }\n        param_10 = puVar8 + 1;\n      }\n      else {\n        iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,*param_10);\n        if (iVar3 == 0) {\n          iVar4 = param_4;\n          iVar3 = param_4;\n          if (param_3 == (int *)0x0) {\nLAB_00342380:\n            iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,iVar4);\n            iVar5 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n            if (iVar5 != iVar4) {\n              param_3 = (int *)0x0;\nLAB_00341ed0:\n              iVar3 = (**(code **)(*(int *)pcVar2 + 0x18))(pcVar2,iVar3);\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x18))(pcVar2,*param_10);\n              if (iVar4 != iVar3) {\nLAB_0034254c:\n                *param_8 = 4;\n                *param_1 = param_3;\n                param_1[1] = param_4;\n                return;\n              }\n              goto LAB_00341f00;\n            }\n            param_3 = (int *)0x0;\n            uVar6 = uRam00000008;\n            if (uRam0000000c <= uRam00000008) goto LAB_003424f8;\nLAB_00341f14:\n            param_3[2] = uVar6 + 4;\n          }\n          else {\n            if (param_4 == -1) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar4 = *(int *)param_3[2];\n              }\n              else {\n                iVar4 = (**(code **)(*param_3 + 0x24))(param_3,0xffffffff);\n              }\n              if (iVar4 == -1) goto LAB_00342380;\n              iVar3 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2);\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n              if (iVar3 != iVar4) {\n                if ((int *)param_3[2] < (int *)param_3[3]) {\n                  iVar3 = *(int *)param_3[2];\n                  if (iVar3 == -1) {\n                    param_3 = (int *)0x0;\n                  }\n                }\n                else {\n                  iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n                  if (iVar3 == -1) {\n                    param_3 = (int *)0x0;\n                  }\n                }\n                goto LAB_00341ed0;\n              }\n            }\n            else {\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2);\n              iVar5 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n              if (iVar5 != iVar4) goto LAB_00341ed0;\n            }\nLAB_00341f00:\n            uVar6 = param_3[2];\n            if ((uint)param_3[2] < (uint)param_3[3]) goto LAB_00341f14;\nLAB_003424f8:\n            (**(code **)(*param_3 + 0x28))(param_3);\n          }\n          param_10 = param_10 + 1;\n          param_4 = -1;\n        }\n        else {\n          do {\n            param_10 = param_10 + 1;\n            if (param_11 == param_10) break;\n            iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,*param_10);\n          } while (iVar3 != 0);\n          iVar3 = param_4;\n          if ((param_3 != (int *)0x0) && (param_4 == -1)) goto LAB_0034201c;\n          while( true ) {\n            bVar1 = param_4 == -1;\n            iVar4 = param_6;\n            if ((param_5 != (int *)0x0) && (param_6 == -1)) {\n              if ((int *)param_5[2] < (int *)param_5[3]) {\n                iVar4 = *(int *)param_5[2];\n                if (iVar4 == -1) {\n                  param_5 = (int *)0x0;\n                }\n              }\n              else {\n                iVar4 = (**(code **)(*param_5 + 0x24))(param_5);\n                if (iVar4 == -1) {\n                  param_5 = (int *)0x0;\n                }\n              }\n            }\n            param_4 = iVar3;\n            if ((iVar4 == -1) == bVar1) break;\n            if ((param_3 != (int *)0x0) && (iVar3 == -1)) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar3 = *(int *)param_3[2];\n                if (iVar3 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n              else {\n                iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n                if (iVar3 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n            }\n            iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,iVar3);\n            if (iVar3 == 0) break;\n            if ((uint)param_3[2] < (uint)param_3[3]) {\n              param_3[2] = param_3[2] + 4;\nLAB_0034201c:\n              piVar7 = (int *)param_3[2];\n              if (piVar7 < (int *)param_3[3]) goto LAB_00342030;\nLAB_003422d0:\n              param_4 = (**(code **)(*param_3 + 0x24))(param_3);\n            }\n            else {\n              (**(code **)(*param_3 + 0x28))(param_3);\n              piVar7 = (int *)param_3[2];\n              if ((int *)param_3[3] <= piVar7) goto LAB_003422d0;\nLAB_00342030:\n              param_4 = *piVar7;\n            }\n            iVar3 = -1;\n            if (param_4 == -1) {\n              param_3 = (int *)0x0;\n            }\n          }\n        }\n      }\nLAB_00341f24:\n    } while ((param_10 != param_11) && (*param_8 == 0));\n  }\n  *param_1 = param_3;\n  param_1[1] = param_4;\n  return;\n}\n\n" comment (declaration "void std::time_get<wchar_t,std::istreambuf_iterator<wchar_t,std::char_traits<wchar_t>>>::get\n               (undefined4 *param_1,int *param_2,int *param_3,int param_4,int *param_5,int param_6,\n               int param_7,uint *param_8,undefined4 param_9,undefined4 *param_10,\n               undefined4 *param_11)\n\n{\n  bool bVar1;" primitive_type (ERROR "std::time_get<" identifier : : identifier <) identifier , (ERROR "std::istreambuf_iterator<" identifier : : identifier <) identifier , (ERROR "std::char_traits<wchar_t>>>::get\n               (undefined4 *param_1,int *param_2,int *param_3,int param_4,int *param_5,int param_6,\n               int param_7,uint *param_8,undefined4 param_9,undefined4 *param_10,\n               undefined4 *param_11)\n\n{\n  bool" identifier : : identifier < identifier >> > : : (function_declarator "get\n               (undefined4 *param_1,int *param_2,int *param_3,int param_4,int *param_5,int param_6,\n               int param_7,uint *param_8,undefined4 param_9,undefined4 *param_10,\n               undefined4 *param_11)" identifier (parameter_list "(undefined4 *param_1,int *param_2,int *param_3,int param_4,int *param_5,int param_6,\n               int param_7,uint *param_8,undefined4 param_9,undefined4 *param_10,\n               undefined4 *param_11)" ( (parameter_declaration "undefined4 *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "int *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "int *param_3" primitive_type (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "int param_4" primitive_type identifier) , (parameter_declaration "int *param_5" primitive_type (pointer_declarator "*param_5" * identifier)) , (parameter_declaration "int param_6" primitive_type identifier) , (parameter_declaration "int param_7" primitive_type identifier) , (parameter_declaration "uint *param_8" type_identifier (pointer_declarator "*param_8" * identifier)) , (parameter_declaration "undefined4 param_9" type_identifier identifier) , (parameter_declaration "undefined4 *param_10" type_identifier (pointer_declarator "*param_10" * identifier)) , (parameter_declaration "undefined4 *param_11" type_identifier (pointer_declarator "*param_11" * identifier)) ))) { primitive_type) identifier ;) (declaration "ctype *pcVar2;" type_identifier (pointer_declarator "*pcVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "int *piVar7;" primitive_type (pointer_declarator "*piVar7" * identifier) ;) (declaration "undefined4 *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "code *pcVar9;" type_identifier (pointer_declarator "*pcVar9" * identifier) ;) (declaration "undefined4 local_60;" type_identifier identifier ;) (declaration "int local_5c;" primitive_type identifier ;) (declaration "int local_58;" primitive_type identifier ;) (declaration "undefined4 local_54;" type_identifier identifier ;) (declaration "int *local_50;" primitive_type (pointer_declarator "*local_50" * identifier) ;) (declaration "int local_4c;" primitive_type identifier ;) (declaration "int *local_48;" primitive_type (pointer_declarator "*local_48" * identifier) ;) (declaration "int local_44;" primitive_type identifier ;) (declaration "int *local_40;" primitive_type (pointer_declarator "*local_40" * identifier) ;) (declaration "int local_3c;" primitive_type identifier ;) (declaration "code *local_38;" type_identifier (pointer_declarator "*local_38" * identifier) ;) (declaration "int local_34;" primitive_type identifier ;) (declaration "locale *local_30;" type_identifier (pointer_declarator "*local_30" * identifier) ;) (declaration "undefined4 *local_2c;" type_identifier (pointer_declarator "*local_2c" * identifier) ;) (expression_statement "local_30 = (locale *)(param_7 + 0x6c);" (assignment_expression "local_30 = (locale *)(param_7 + 0x6c)" identifier = (cast_expression "(locale *)(param_7 + 0x6c)" ( (type_descriptor "locale *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_7 + 0x6c)" ( (binary_expression "param_7 + 0x6c" identifier + number_literal) )))) ;) (expression_statement "pcVar2 = use_facet<std::ctype<wchar_t>>(local_30);" (update_expression "pcVar2 = use_facet<std::ctype<wchar_t>>(local_30)" (binary_expression "pcVar2 = use_facet<std::ctype<wchar_t>>(local_30)" (assignment_expression "pcVar2 = use_facet<std" identifier = (binary_expression "use_facet<std" identifier < identifier)) (ERROR "::ctype" : : identifier) < (binary_expression "wchar_t>>(local_30)" identifier >> (parenthesized_expression "(local_30)" ( identifier )))) --) ;) (expression_statement "*param_8 = 0;" (assignment_expression "*param_8 = 0" (pointer_expression "*param_8" * identifier) = number_literal) ;) (expression_statement "local_38 = (code *)PTR_do_get_00433d80;" (assignment_expression "local_38 = (code *)PTR_do_get_00433d80" identifier = (cast_expression "(code *)PTR_do_get_00433d80" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (param_10 != param_11) {\n    local_2c = &local_60;\n    do {\n      iVar3 = param_4;\n      if ((param_3 != (int *)0x0) && (param_4 == -1)) {\n        if ((int *)param_3[2] < (int *)param_3[3]) {\n          iVar3 = *(int *)param_3[2];\n          if (iVar3 == -1) {\n            param_3 = (int *)0x0;\n          }\n        }\n        else {\n          iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n          if (iVar3 == -1) {\n            param_3 = (int *)0x0;\n          }\n        }\n      }\n      if ((param_5 == (int *)0x0) || (param_6 != -1)) {\n        bVar1 = param_6 == -1;\n      }\n      else {\n        if ((int *)param_5[2] < (int *)param_5[3]) {\n          iVar4 = *(int *)param_5[2];\n          if (iVar4 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }\n        else {\n          iVar4 = (**(code **)(*param_5 + 0x24))(param_5);\n          if (iVar4 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }\n        bVar1 = iVar4 == -1;\n      }\n      if (bVar1 == (iVar3 == -1)) {\n        *param_8 = 6;\n        *param_1 = param_3;\n        param_1[1] = param_4;\n        return;\n      }\n      iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,*param_10,0);\n      if (iVar3 == 0x25) {\n        puVar8 = param_10 + 1;\n        if (param_11 == puVar8) goto LAB_0034254c;\n        iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,param_10[1],0);\n        if ((iVar3 == 0x45) || (iVar3 == 0x4f)) {\n          puVar8 = param_10 + 2;\n          if (param_11 == puVar8) goto LAB_0034254c;\n          local_34 = iVar3;\n          iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,param_10[2],0);\n          pcVar9 = *(code **)(*param_2 + 0x20);\n          iVar4 = local_34;\n          if (pcVar9 != local_38) goto LAB_0034243c;\n          piVar7 = (int *)(*(code *)PTR_use_facet<std_ctype<wchar_t>>_00433ac8)(local_30);\n          pcVar9 = *(code **)(*piVar7 + 0x28);\n          *param_8 = 0;\n          local_60 = (*pcVar9)(piVar7,0x25);\n          if (local_34 == 0) goto LAB_003421b4;\n          local_5c = local_34;\n          local_54 = 0;\n          local_58 = iVar3;\n        }\n        else {\n          pcVar9 = *(code **)(*param_2 + 0x20);\n          if (pcVar9 != local_38) {\n            iVar4 = 0;\nLAB_0034243c:\n            param_10 = puVar8 + 1;\n            (*pcVar9)(&local_40,param_2,param_3,param_4,param_5,param_6,param_7,param_8,param_9,\n                      iVar3,iVar4);\n            param_4 = local_3c;\n            param_3 = local_40;\n            goto LAB_00341f24;\n          }\n          local_34 = iVar3;\n          piVar7 = (int *)(*(code *)PTR_use_facet<std_ctype<wchar_t>>_00433ac8)(local_30);\n          pcVar9 = *(code **)(*piVar7 + 0x28);\n          *param_8 = 0;\n          local_60 = (*pcVar9)(piVar7,0x25);\n          iVar3 = local_34;\nLAB_003421b4:\n          local_58 = 0;\n          local_5c = iVar3;\n        }\n        local_4c = param_6;\n        local_50 = param_5;\n        _M_extract_via_format\n                  (&local_40,param_2,param_3,param_4,param_5,param_6,param_7,param_8,param_9,\n                   local_2c);\n        param_4 = local_3c;\n        param_3 = local_40;\n        local_48 = local_40;\n        local_44 = local_3c;\n        iVar3 = local_3c;\n        if ((local_40 != (int *)0x0) && (local_3c == -1)) {\n          if ((int *)local_40[2] < (int *)local_40[3]) {\n            iVar3 = *(int *)local_40[2];\n          }\n          else {\n            iVar3 = (**(code **)(*local_40 + 0x24))(local_40);\n          }\n          if (iVar3 == -1) {\n            param_3 = (int *)0x0;\n          }\n        }\n        iVar4 = param_6;\n        if ((param_5 != (int *)0x0) && (param_6 == -1)) {\n          if ((int *)param_5[2] < (int *)param_5[3]) {\n            iVar4 = *(int *)param_5[2];\n          }\n          else {\n            iVar4 = (**(code **)(*param_5 + 0x24))(param_5);\n          }\n        }\n        if ((iVar4 == -1) == (iVar3 == -1)) {\n          *param_8 = *param_8 | 2;\n        }\n        param_10 = puVar8 + 1;\n      }\n      else {\n        iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,*param_10);\n        if (iVar3 == 0) {\n          iVar4 = param_4;\n          iVar3 = param_4;\n          if (param_3 == (int *)0x0) {\nLAB_00342380:\n            iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,iVar4);\n            iVar5 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n            if (iVar5 != iVar4) {\n              param_3 = (int *)0x0;\nLAB_00341ed0:\n              iVar3 = (**(code **)(*(int *)pcVar2 + 0x18))(pcVar2,iVar3);\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x18))(pcVar2,*param_10);\n              if (iVar4 != iVar3) {\nLAB_0034254c:\n                *param_8 = 4;\n                *param_1 = param_3;\n                param_1[1] = param_4;\n                return;\n              }\n              goto LAB_00341f00;\n            }\n            param_3 = (int *)0x0;\n            uVar6 = uRam00000008;\n            if (uRam0000000c <= uRam00000008) goto LAB_003424f8;\nLAB_00341f14:\n            param_3[2] = uVar6 + 4;\n          }\n          else {\n            if (param_4 == -1) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar4 = *(int *)param_3[2];\n              }\n              else {\n                iVar4 = (**(code **)(*param_3 + 0x24))(param_3,0xffffffff);\n              }\n              if (iVar4 == -1) goto LAB_00342380;\n              iVar3 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2);\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n              if (iVar3 != iVar4) {\n                if ((int *)param_3[2] < (int *)param_3[3]) {\n                  iVar3 = *(int *)param_3[2];\n                  if (iVar3 == -1) {\n                    param_3 = (int *)0x0;\n                  }\n                }\n                else {\n                  iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n                  if (iVar3 == -1) {\n                    param_3 = (int *)0x0;\n                  }\n                }\n                goto LAB_00341ed0;\n              }\n            }\n            else {\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2);\n              iVar5 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n              if (iVar5 != iVar4) goto LAB_00341ed0;\n            }\nLAB_00341f00:\n            uVar6 = param_3[2];\n            if ((uint)param_3[2] < (uint)param_3[3]) goto LAB_00341f14;\nLAB_003424f8:\n            (**(code **)(*param_3 + 0x28))(param_3);\n          }\n          param_10 = param_10 + 1;\n          param_4 = -1;\n        }\n        else {\n          do {\n            param_10 = param_10 + 1;\n            if (param_11 == param_10) break;\n            iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,*param_10);\n          } while (iVar3 != 0);\n          iVar3 = param_4;\n          if ((param_3 != (int *)0x0) && (param_4 == -1)) goto LAB_0034201c;\n          while( true ) {\n            bVar1 = param_4 == -1;\n            iVar4 = param_6;\n            if ((param_5 != (int *)0x0) && (param_6 == -1)) {\n              if ((int *)param_5[2] < (int *)param_5[3]) {\n                iVar4 = *(int *)param_5[2];\n                if (iVar4 == -1) {\n                  param_5 = (int *)0x0;\n                }\n              }\n              else {\n                iVar4 = (**(code **)(*param_5 + 0x24))(param_5);\n                if (iVar4 == -1) {\n                  param_5 = (int *)0x0;\n                }\n              }\n            }\n            param_4 = iVar3;\n            if ((iVar4 == -1) == bVar1) break;\n            if ((param_3 != (int *)0x0) && (iVar3 == -1)) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar3 = *(int *)param_3[2];\n                if (iVar3 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n              else {\n                iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n                if (iVar3 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n            }\n            iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,iVar3);\n            if (iVar3 == 0) break;\n            if ((uint)param_3[2] < (uint)param_3[3]) {\n              param_3[2] = param_3[2] + 4;\nLAB_0034201c:\n              piVar7 = (int *)param_3[2];\n              if (piVar7 < (int *)param_3[3]) goto LAB_00342030;\nLAB_003422d0:\n              param_4 = (**(code **)(*param_3 + 0x24))(param_3);\n            }\n            else {\n              (**(code **)(*param_3 + 0x28))(param_3);\n              piVar7 = (int *)param_3[2];\n              if ((int *)param_3[3] <= piVar7) goto LAB_003422d0;\nLAB_00342030:\n              param_4 = *piVar7;\n            }\n            iVar3 = -1;\n            if (param_4 == -1) {\n              param_3 = (int *)0x0;\n            }\n          }\n        }\n      }\nLAB_00341f24:\n    } while ((param_10 != param_11) && (*param_8 == 0));\n  }" if (parenthesized_expression "(param_10 != param_11)" ( (binary_expression "param_10 != param_11" identifier != identifier) )) (compound_statement "{\n    local_2c = &local_60;\n    do {\n      iVar3 = param_4;\n      if ((param_3 != (int *)0x0) && (param_4 == -1)) {\n        if ((int *)param_3[2] < (int *)param_3[3]) {\n          iVar3 = *(int *)param_3[2];\n          if (iVar3 == -1) {\n            param_3 = (int *)0x0;\n          }\n        }\n        else {\n          iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n          if (iVar3 == -1) {\n            param_3 = (int *)0x0;\n          }\n        }\n      }\n      if ((param_5 == (int *)0x0) || (param_6 != -1)) {\n        bVar1 = param_6 == -1;\n      }\n      else {\n        if ((int *)param_5[2] < (int *)param_5[3]) {\n          iVar4 = *(int *)param_5[2];\n          if (iVar4 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }\n        else {\n          iVar4 = (**(code **)(*param_5 + 0x24))(param_5);\n          if (iVar4 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }\n        bVar1 = iVar4 == -1;\n      }\n      if (bVar1 == (iVar3 == -1)) {\n        *param_8 = 6;\n        *param_1 = param_3;\n        param_1[1] = param_4;\n        return;\n      }\n      iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,*param_10,0);\n      if (iVar3 == 0x25) {\n        puVar8 = param_10 + 1;\n        if (param_11 == puVar8) goto LAB_0034254c;\n        iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,param_10[1],0);\n        if ((iVar3 == 0x45) || (iVar3 == 0x4f)) {\n          puVar8 = param_10 + 2;\n          if (param_11 == puVar8) goto LAB_0034254c;\n          local_34 = iVar3;\n          iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,param_10[2],0);\n          pcVar9 = *(code **)(*param_2 + 0x20);\n          iVar4 = local_34;\n          if (pcVar9 != local_38) goto LAB_0034243c;\n          piVar7 = (int *)(*(code *)PTR_use_facet<std_ctype<wchar_t>>_00433ac8)(local_30);\n          pcVar9 = *(code **)(*piVar7 + 0x28);\n          *param_8 = 0;\n          local_60 = (*pcVar9)(piVar7,0x25);\n          if (local_34 == 0) goto LAB_003421b4;\n          local_5c = local_34;\n          local_54 = 0;\n          local_58 = iVar3;\n        }\n        else {\n          pcVar9 = *(code **)(*param_2 + 0x20);\n          if (pcVar9 != local_38) {\n            iVar4 = 0;\nLAB_0034243c:\n            param_10 = puVar8 + 1;\n            (*pcVar9)(&local_40,param_2,param_3,param_4,param_5,param_6,param_7,param_8,param_9,\n                      iVar3,iVar4);\n            param_4 = local_3c;\n            param_3 = local_40;\n            goto LAB_00341f24;\n          }\n          local_34 = iVar3;\n          piVar7 = (int *)(*(code *)PTR_use_facet<std_ctype<wchar_t>>_00433ac8)(local_30);\n          pcVar9 = *(code **)(*piVar7 + 0x28);\n          *param_8 = 0;\n          local_60 = (*pcVar9)(piVar7,0x25);\n          iVar3 = local_34;\nLAB_003421b4:\n          local_58 = 0;\n          local_5c = iVar3;\n        }\n        local_4c = param_6;\n        local_50 = param_5;\n        _M_extract_via_format\n                  (&local_40,param_2,param_3,param_4,param_5,param_6,param_7,param_8,param_9,\n                   local_2c);\n        param_4 = local_3c;\n        param_3 = local_40;\n        local_48 = local_40;\n        local_44 = local_3c;\n        iVar3 = local_3c;\n        if ((local_40 != (int *)0x0) && (local_3c == -1)) {\n          if ((int *)local_40[2] < (int *)local_40[3]) {\n            iVar3 = *(int *)local_40[2];\n          }\n          else {\n            iVar3 = (**(code **)(*local_40 + 0x24))(local_40);\n          }\n          if (iVar3 == -1) {\n            param_3 = (int *)0x0;\n          }\n        }\n        iVar4 = param_6;\n        if ((param_5 != (int *)0x0) && (param_6 == -1)) {\n          if ((int *)param_5[2] < (int *)param_5[3]) {\n            iVar4 = *(int *)param_5[2];\n          }\n          else {\n            iVar4 = (**(code **)(*param_5 + 0x24))(param_5);\n          }\n        }\n        if ((iVar4 == -1) == (iVar3 == -1)) {\n          *param_8 = *param_8 | 2;\n        }\n        param_10 = puVar8 + 1;\n      }\n      else {\n        iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,*param_10);\n        if (iVar3 == 0) {\n          iVar4 = param_4;\n          iVar3 = param_4;\n          if (param_3 == (int *)0x0) {\nLAB_00342380:\n            iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,iVar4);\n            iVar5 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n            if (iVar5 != iVar4) {\n              param_3 = (int *)0x0;\nLAB_00341ed0:\n              iVar3 = (**(code **)(*(int *)pcVar2 + 0x18))(pcVar2,iVar3);\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x18))(pcVar2,*param_10);\n              if (iVar4 != iVar3) {\nLAB_0034254c:\n                *param_8 = 4;\n                *param_1 = param_3;\n                param_1[1] = param_4;\n                return;\n              }\n              goto LAB_00341f00;\n            }\n            param_3 = (int *)0x0;\n            uVar6 = uRam00000008;\n            if (uRam0000000c <= uRam00000008) goto LAB_003424f8;\nLAB_00341f14:\n            param_3[2] = uVar6 + 4;\n          }\n          else {\n            if (param_4 == -1) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar4 = *(int *)param_3[2];\n              }\n              else {\n                iVar4 = (**(code **)(*param_3 + 0x24))(param_3,0xffffffff);\n              }\n              if (iVar4 == -1) goto LAB_00342380;\n              iVar3 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2);\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n              if (iVar3 != iVar4) {\n                if ((int *)param_3[2] < (int *)param_3[3]) {\n                  iVar3 = *(int *)param_3[2];\n                  if (iVar3 == -1) {\n                    param_3 = (int *)0x0;\n                  }\n                }\n                else {\n                  iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n                  if (iVar3 == -1) {\n                    param_3 = (int *)0x0;\n                  }\n                }\n                goto LAB_00341ed0;\n              }\n            }\n            else {\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2);\n              iVar5 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n              if (iVar5 != iVar4) goto LAB_00341ed0;\n            }\nLAB_00341f00:\n            uVar6 = param_3[2];\n            if ((uint)param_3[2] < (uint)param_3[3]) goto LAB_00341f14;\nLAB_003424f8:\n            (**(code **)(*param_3 + 0x28))(param_3);\n          }\n          param_10 = param_10 + 1;\n          param_4 = -1;\n        }\n        else {\n          do {\n            param_10 = param_10 + 1;\n            if (param_11 == param_10) break;\n            iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,*param_10);\n          } while (iVar3 != 0);\n          iVar3 = param_4;\n          if ((param_3 != (int *)0x0) && (param_4 == -1)) goto LAB_0034201c;\n          while( true ) {\n            bVar1 = param_4 == -1;\n            iVar4 = param_6;\n            if ((param_5 != (int *)0x0) && (param_6 == -1)) {\n              if ((int *)param_5[2] < (int *)param_5[3]) {\n                iVar4 = *(int *)param_5[2];\n                if (iVar4 == -1) {\n                  param_5 = (int *)0x0;\n                }\n              }\n              else {\n                iVar4 = (**(code **)(*param_5 + 0x24))(param_5);\n                if (iVar4 == -1) {\n                  param_5 = (int *)0x0;\n                }\n              }\n            }\n            param_4 = iVar3;\n            if ((iVar4 == -1) == bVar1) break;\n            if ((param_3 != (int *)0x0) && (iVar3 == -1)) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar3 = *(int *)param_3[2];\n                if (iVar3 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n              else {\n                iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n                if (iVar3 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n            }\n            iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,iVar3);\n            if (iVar3 == 0) break;\n            if ((uint)param_3[2] < (uint)param_3[3]) {\n              param_3[2] = param_3[2] + 4;\nLAB_0034201c:\n              piVar7 = (int *)param_3[2];\n              if (piVar7 < (int *)param_3[3]) goto LAB_00342030;\nLAB_003422d0:\n              param_4 = (**(code **)(*param_3 + 0x24))(param_3);\n            }\n            else {\n              (**(code **)(*param_3 + 0x28))(param_3);\n              piVar7 = (int *)param_3[2];\n              if ((int *)param_3[3] <= piVar7) goto LAB_003422d0;\nLAB_00342030:\n              param_4 = *piVar7;\n            }\n            iVar3 = -1;\n            if (param_4 == -1) {\n              param_3 = (int *)0x0;\n            }\n          }\n        }\n      }\nLAB_00341f24:\n    } while ((param_10 != param_11) && (*param_8 == 0));\n  }" { (expression_statement "local_2c = &local_60;" (assignment_expression "local_2c = &local_60" identifier = (pointer_expression "&local_60" & identifier)) ;) (do_statement "do {\n      iVar3 = param_4;\n      if ((param_3 != (int *)0x0) && (param_4 == -1)) {\n        if ((int *)param_3[2] < (int *)param_3[3]) {\n          iVar3 = *(int *)param_3[2];\n          if (iVar3 == -1) {\n            param_3 = (int *)0x0;\n          }\n        }\n        else {\n          iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n          if (iVar3 == -1) {\n            param_3 = (int *)0x0;\n          }\n        }\n      }\n      if ((param_5 == (int *)0x0) || (param_6 != -1)) {\n        bVar1 = param_6 == -1;\n      }\n      else {\n        if ((int *)param_5[2] < (int *)param_5[3]) {\n          iVar4 = *(int *)param_5[2];\n          if (iVar4 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }\n        else {\n          iVar4 = (**(code **)(*param_5 + 0x24))(param_5);\n          if (iVar4 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }\n        bVar1 = iVar4 == -1;\n      }\n      if (bVar1 == (iVar3 == -1)) {\n        *param_8 = 6;\n        *param_1 = param_3;\n        param_1[1] = param_4;\n        return;\n      }\n      iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,*param_10,0);\n      if (iVar3 == 0x25) {\n        puVar8 = param_10 + 1;\n        if (param_11 == puVar8) goto LAB_0034254c;\n        iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,param_10[1],0);\n        if ((iVar3 == 0x45) || (iVar3 == 0x4f)) {\n          puVar8 = param_10 + 2;\n          if (param_11 == puVar8) goto LAB_0034254c;\n          local_34 = iVar3;\n          iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,param_10[2],0);\n          pcVar9 = *(code **)(*param_2 + 0x20);\n          iVar4 = local_34;\n          if (pcVar9 != local_38) goto LAB_0034243c;\n          piVar7 = (int *)(*(code *)PTR_use_facet<std_ctype<wchar_t>>_00433ac8)(local_30);\n          pcVar9 = *(code **)(*piVar7 + 0x28);\n          *param_8 = 0;\n          local_60 = (*pcVar9)(piVar7,0x25);\n          if (local_34 == 0) goto LAB_003421b4;\n          local_5c = local_34;\n          local_54 = 0;\n          local_58 = iVar3;\n        }\n        else {\n          pcVar9 = *(code **)(*param_2 + 0x20);\n          if (pcVar9 != local_38) {\n            iVar4 = 0;\nLAB_0034243c:\n            param_10 = puVar8 + 1;\n            (*pcVar9)(&local_40,param_2,param_3,param_4,param_5,param_6,param_7,param_8,param_9,\n                      iVar3,iVar4);\n            param_4 = local_3c;\n            param_3 = local_40;\n            goto LAB_00341f24;\n          }\n          local_34 = iVar3;\n          piVar7 = (int *)(*(code *)PTR_use_facet<std_ctype<wchar_t>>_00433ac8)(local_30);\n          pcVar9 = *(code **)(*piVar7 + 0x28);\n          *param_8 = 0;\n          local_60 = (*pcVar9)(piVar7,0x25);\n          iVar3 = local_34;\nLAB_003421b4:\n          local_58 = 0;\n          local_5c = iVar3;\n        }\n        local_4c = param_6;\n        local_50 = param_5;\n        _M_extract_via_format\n                  (&local_40,param_2,param_3,param_4,param_5,param_6,param_7,param_8,param_9,\n                   local_2c);\n        param_4 = local_3c;\n        param_3 = local_40;\n        local_48 = local_40;\n        local_44 = local_3c;\n        iVar3 = local_3c;\n        if ((local_40 != (int *)0x0) && (local_3c == -1)) {\n          if ((int *)local_40[2] < (int *)local_40[3]) {\n            iVar3 = *(int *)local_40[2];\n          }\n          else {\n            iVar3 = (**(code **)(*local_40 + 0x24))(local_40);\n          }\n          if (iVar3 == -1) {\n            param_3 = (int *)0x0;\n          }\n        }\n        iVar4 = param_6;\n        if ((param_5 != (int *)0x0) && (param_6 == -1)) {\n          if ((int *)param_5[2] < (int *)param_5[3]) {\n            iVar4 = *(int *)param_5[2];\n          }\n          else {\n            iVar4 = (**(code **)(*param_5 + 0x24))(param_5);\n          }\n        }\n        if ((iVar4 == -1) == (iVar3 == -1)) {\n          *param_8 = *param_8 | 2;\n        }\n        param_10 = puVar8 + 1;\n      }\n      else {\n        iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,*param_10);\n        if (iVar3 == 0) {\n          iVar4 = param_4;\n          iVar3 = param_4;\n          if (param_3 == (int *)0x0) {\nLAB_00342380:\n            iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,iVar4);\n            iVar5 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n            if (iVar5 != iVar4) {\n              param_3 = (int *)0x0;\nLAB_00341ed0:\n              iVar3 = (**(code **)(*(int *)pcVar2 + 0x18))(pcVar2,iVar3);\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x18))(pcVar2,*param_10);\n              if (iVar4 != iVar3) {\nLAB_0034254c:\n                *param_8 = 4;\n                *param_1 = param_3;\n                param_1[1] = param_4;\n                return;\n              }\n              goto LAB_00341f00;\n            }\n            param_3 = (int *)0x0;\n            uVar6 = uRam00000008;\n            if (uRam0000000c <= uRam00000008) goto LAB_003424f8;\nLAB_00341f14:\n            param_3[2] = uVar6 + 4;\n          }\n          else {\n            if (param_4 == -1) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar4 = *(int *)param_3[2];\n              }\n              else {\n                iVar4 = (**(code **)(*param_3 + 0x24))(param_3,0xffffffff);\n              }\n              if (iVar4 == -1) goto LAB_00342380;\n              iVar3 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2);\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n              if (iVar3 != iVar4) {\n                if ((int *)param_3[2] < (int *)param_3[3]) {\n                  iVar3 = *(int *)param_3[2];\n                  if (iVar3 == -1) {\n                    param_3 = (int *)0x0;\n                  }\n                }\n                else {\n                  iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n                  if (iVar3 == -1) {\n                    param_3 = (int *)0x0;\n                  }\n                }\n                goto LAB_00341ed0;\n              }\n            }\n            else {\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2);\n              iVar5 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n              if (iVar5 != iVar4) goto LAB_00341ed0;\n            }\nLAB_00341f00:\n            uVar6 = param_3[2];\n            if ((uint)param_3[2] < (uint)param_3[3]) goto LAB_00341f14;\nLAB_003424f8:\n            (**(code **)(*param_3 + 0x28))(param_3);\n          }\n          param_10 = param_10 + 1;\n          param_4 = -1;\n        }\n        else {\n          do {\n            param_10 = param_10 + 1;\n            if (param_11 == param_10) break;\n            iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,*param_10);\n          } while (iVar3 != 0);\n          iVar3 = param_4;\n          if ((param_3 != (int *)0x0) && (param_4 == -1)) goto LAB_0034201c;\n          while( true ) {\n            bVar1 = param_4 == -1;\n            iVar4 = param_6;\n            if ((param_5 != (int *)0x0) && (param_6 == -1)) {\n              if ((int *)param_5[2] < (int *)param_5[3]) {\n                iVar4 = *(int *)param_5[2];\n                if (iVar4 == -1) {\n                  param_5 = (int *)0x0;\n                }\n              }\n              else {\n                iVar4 = (**(code **)(*param_5 + 0x24))(param_5);\n                if (iVar4 == -1) {\n                  param_5 = (int *)0x0;\n                }\n              }\n            }\n            param_4 = iVar3;\n            if ((iVar4 == -1) == bVar1) break;\n            if ((param_3 != (int *)0x0) && (iVar3 == -1)) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar3 = *(int *)param_3[2];\n                if (iVar3 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n              else {\n                iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n                if (iVar3 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n            }\n            iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,iVar3);\n            if (iVar3 == 0) break;\n            if ((uint)param_3[2] < (uint)param_3[3]) {\n              param_3[2] = param_3[2] + 4;\nLAB_0034201c:\n              piVar7 = (int *)param_3[2];\n              if (piVar7 < (int *)param_3[3]) goto LAB_00342030;\nLAB_003422d0:\n              param_4 = (**(code **)(*param_3 + 0x24))(param_3);\n            }\n            else {\n              (**(code **)(*param_3 + 0x28))(param_3);\n              piVar7 = (int *)param_3[2];\n              if ((int *)param_3[3] <= piVar7) goto LAB_003422d0;\nLAB_00342030:\n              param_4 = *piVar7;\n            }\n            iVar3 = -1;\n            if (param_4 == -1) {\n              param_3 = (int *)0x0;\n            }\n          }\n        }\n      }\nLAB_00341f24:\n    } while ((param_10 != param_11) && (*param_8 == 0));" do (compound_statement "{\n      iVar3 = param_4;\n      if ((param_3 != (int *)0x0) && (param_4 == -1)) {\n        if ((int *)param_3[2] < (int *)param_3[3]) {\n          iVar3 = *(int *)param_3[2];\n          if (iVar3 == -1) {\n            param_3 = (int *)0x0;\n          }\n        }\n        else {\n          iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n          if (iVar3 == -1) {\n            param_3 = (int *)0x0;\n          }\n        }\n      }\n      if ((param_5 == (int *)0x0) || (param_6 != -1)) {\n        bVar1 = param_6 == -1;\n      }\n      else {\n        if ((int *)param_5[2] < (int *)param_5[3]) {\n          iVar4 = *(int *)param_5[2];\n          if (iVar4 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }\n        else {\n          iVar4 = (**(code **)(*param_5 + 0x24))(param_5);\n          if (iVar4 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }\n        bVar1 = iVar4 == -1;\n      }\n      if (bVar1 == (iVar3 == -1)) {\n        *param_8 = 6;\n        *param_1 = param_3;\n        param_1[1] = param_4;\n        return;\n      }\n      iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,*param_10,0);\n      if (iVar3 == 0x25) {\n        puVar8 = param_10 + 1;\n        if (param_11 == puVar8) goto LAB_0034254c;\n        iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,param_10[1],0);\n        if ((iVar3 == 0x45) || (iVar3 == 0x4f)) {\n          puVar8 = param_10 + 2;\n          if (param_11 == puVar8) goto LAB_0034254c;\n          local_34 = iVar3;\n          iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,param_10[2],0);\n          pcVar9 = *(code **)(*param_2 + 0x20);\n          iVar4 = local_34;\n          if (pcVar9 != local_38) goto LAB_0034243c;\n          piVar7 = (int *)(*(code *)PTR_use_facet<std_ctype<wchar_t>>_00433ac8)(local_30);\n          pcVar9 = *(code **)(*piVar7 + 0x28);\n          *param_8 = 0;\n          local_60 = (*pcVar9)(piVar7,0x25);\n          if (local_34 == 0) goto LAB_003421b4;\n          local_5c = local_34;\n          local_54 = 0;\n          local_58 = iVar3;\n        }\n        else {\n          pcVar9 = *(code **)(*param_2 + 0x20);\n          if (pcVar9 != local_38) {\n            iVar4 = 0;\nLAB_0034243c:\n            param_10 = puVar8 + 1;\n            (*pcVar9)(&local_40,param_2,param_3,param_4,param_5,param_6,param_7,param_8,param_9,\n                      iVar3,iVar4);\n            param_4 = local_3c;\n            param_3 = local_40;\n            goto LAB_00341f24;\n          }\n          local_34 = iVar3;\n          piVar7 = (int *)(*(code *)PTR_use_facet<std_ctype<wchar_t>>_00433ac8)(local_30);\n          pcVar9 = *(code **)(*piVar7 + 0x28);\n          *param_8 = 0;\n          local_60 = (*pcVar9)(piVar7,0x25);\n          iVar3 = local_34;\nLAB_003421b4:\n          local_58 = 0;\n          local_5c = iVar3;\n        }\n        local_4c = param_6;\n        local_50 = param_5;\n        _M_extract_via_format\n                  (&local_40,param_2,param_3,param_4,param_5,param_6,param_7,param_8,param_9,\n                   local_2c);\n        param_4 = local_3c;\n        param_3 = local_40;\n        local_48 = local_40;\n        local_44 = local_3c;\n        iVar3 = local_3c;\n        if ((local_40 != (int *)0x0) && (local_3c == -1)) {\n          if ((int *)local_40[2] < (int *)local_40[3]) {\n            iVar3 = *(int *)local_40[2];\n          }\n          else {\n            iVar3 = (**(code **)(*local_40 + 0x24))(local_40);\n          }\n          if (iVar3 == -1) {\n            param_3 = (int *)0x0;\n          }\n        }\n        iVar4 = param_6;\n        if ((param_5 != (int *)0x0) && (param_6 == -1)) {\n          if ((int *)param_5[2] < (int *)param_5[3]) {\n            iVar4 = *(int *)param_5[2];\n          }\n          else {\n            iVar4 = (**(code **)(*param_5 + 0x24))(param_5);\n          }\n        }\n        if ((iVar4 == -1) == (iVar3 == -1)) {\n          *param_8 = *param_8 | 2;\n        }\n        param_10 = puVar8 + 1;\n      }\n      else {\n        iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,*param_10);\n        if (iVar3 == 0) {\n          iVar4 = param_4;\n          iVar3 = param_4;\n          if (param_3 == (int *)0x0) {\nLAB_00342380:\n            iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,iVar4);\n            iVar5 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n            if (iVar5 != iVar4) {\n              param_3 = (int *)0x0;\nLAB_00341ed0:\n              iVar3 = (**(code **)(*(int *)pcVar2 + 0x18))(pcVar2,iVar3);\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x18))(pcVar2,*param_10);\n              if (iVar4 != iVar3) {\nLAB_0034254c:\n                *param_8 = 4;\n                *param_1 = param_3;\n                param_1[1] = param_4;\n                return;\n              }\n              goto LAB_00341f00;\n            }\n            param_3 = (int *)0x0;\n            uVar6 = uRam00000008;\n            if (uRam0000000c <= uRam00000008) goto LAB_003424f8;\nLAB_00341f14:\n            param_3[2] = uVar6 + 4;\n          }\n          else {\n            if (param_4 == -1) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar4 = *(int *)param_3[2];\n              }\n              else {\n                iVar4 = (**(code **)(*param_3 + 0x24))(param_3,0xffffffff);\n              }\n              if (iVar4 == -1) goto LAB_00342380;\n              iVar3 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2);\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n              if (iVar3 != iVar4) {\n                if ((int *)param_3[2] < (int *)param_3[3]) {\n                  iVar3 = *(int *)param_3[2];\n                  if (iVar3 == -1) {\n                    param_3 = (int *)0x0;\n                  }\n                }\n                else {\n                  iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n                  if (iVar3 == -1) {\n                    param_3 = (int *)0x0;\n                  }\n                }\n                goto LAB_00341ed0;\n              }\n            }\n            else {\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2);\n              iVar5 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n              if (iVar5 != iVar4) goto LAB_00341ed0;\n            }\nLAB_00341f00:\n            uVar6 = param_3[2];\n            if ((uint)param_3[2] < (uint)param_3[3]) goto LAB_00341f14;\nLAB_003424f8:\n            (**(code **)(*param_3 + 0x28))(param_3);\n          }\n          param_10 = param_10 + 1;\n          param_4 = -1;\n        }\n        else {\n          do {\n            param_10 = param_10 + 1;\n            if (param_11 == param_10) break;\n            iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,*param_10);\n          } while (iVar3 != 0);\n          iVar3 = param_4;\n          if ((param_3 != (int *)0x0) && (param_4 == -1)) goto LAB_0034201c;\n          while( true ) {\n            bVar1 = param_4 == -1;\n            iVar4 = param_6;\n            if ((param_5 != (int *)0x0) && (param_6 == -1)) {\n              if ((int *)param_5[2] < (int *)param_5[3]) {\n                iVar4 = *(int *)param_5[2];\n                if (iVar4 == -1) {\n                  param_5 = (int *)0x0;\n                }\n              }\n              else {\n                iVar4 = (**(code **)(*param_5 + 0x24))(param_5);\n                if (iVar4 == -1) {\n                  param_5 = (int *)0x0;\n                }\n              }\n            }\n            param_4 = iVar3;\n            if ((iVar4 == -1) == bVar1) break;\n            if ((param_3 != (int *)0x0) && (iVar3 == -1)) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar3 = *(int *)param_3[2];\n                if (iVar3 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n              else {\n                iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n                if (iVar3 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n            }\n            iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,iVar3);\n            if (iVar3 == 0) break;\n            if ((uint)param_3[2] < (uint)param_3[3]) {\n              param_3[2] = param_3[2] + 4;\nLAB_0034201c:\n              piVar7 = (int *)param_3[2];\n              if (piVar7 < (int *)param_3[3]) goto LAB_00342030;\nLAB_003422d0:\n              param_4 = (**(code **)(*param_3 + 0x24))(param_3);\n            }\n            else {\n              (**(code **)(*param_3 + 0x28))(param_3);\n              piVar7 = (int *)param_3[2];\n              if ((int *)param_3[3] <= piVar7) goto LAB_003422d0;\nLAB_00342030:\n              param_4 = *piVar7;\n            }\n            iVar3 = -1;\n            if (param_4 == -1) {\n              param_3 = (int *)0x0;\n            }\n          }\n        }\n      }\nLAB_00341f24:\n    }" { (expression_statement "iVar3 = param_4;" (assignment_expression "iVar3 = param_4" identifier = identifier) ;) (if_statement "if ((param_3 != (int *)0x0) && (param_4 == -1)) {\n        if ((int *)param_3[2] < (int *)param_3[3]) {\n          iVar3 = *(int *)param_3[2];\n          if (iVar3 == -1) {\n            param_3 = (int *)0x0;\n          }\n        }\n        else {\n          iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n          if (iVar3 == -1) {\n            param_3 = (int *)0x0;\n          }\n        }\n      }" if (parenthesized_expression "((param_3 != (int *)0x0) && (param_4 == -1))" ( (binary_expression "(param_3 != (int *)0x0) && (param_4 == -1)" (parenthesized_expression "(param_3 != (int *)0x0)" ( (binary_expression "param_3 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(param_4 == -1)" ( (binary_expression "param_4 == -1" identifier == number_literal) ))) )) (compound_statement "{\n        if ((int *)param_3[2] < (int *)param_3[3]) {\n          iVar3 = *(int *)param_3[2];\n          if (iVar3 == -1) {\n            param_3 = (int *)0x0;\n          }\n        }\n        else {\n          iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n          if (iVar3 == -1) {\n            param_3 = (int *)0x0;\n          }\n        }\n      }" { (if_statement "if ((int *)param_3[2] < (int *)param_3[3]) {\n          iVar3 = *(int *)param_3[2];\n          if (iVar3 == -1) {\n            param_3 = (int *)0x0;\n          }\n        }\n        else {\n          iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n          if (iVar3 == -1) {\n            param_3 = (int *)0x0;\n          }\n        }" if (parenthesized_expression "((int *)param_3[2] < (int *)param_3[3])" ( (binary_expression "(int *)param_3[2] < (int *)param_3[3]" (cast_expression "(int *)param_3[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[2]" identifier [ number_literal ])) < (cast_expression "(int *)param_3[3]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[3]" identifier [ number_literal ]))) )) (compound_statement "{\n          iVar3 = *(int *)param_3[2];\n          if (iVar3 == -1) {\n            param_3 = (int *)0x0;\n          }\n        }" { (expression_statement "iVar3 = *(int *)param_3[2];" (assignment_expression "iVar3 = *(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 "*" *)) ) (subscript_expression "param_3[2]" identifier [ number_literal ])))) ;) (if_statement "if (iVar3 == -1) {\n            param_3 = (int *)0x0;\n          }" if (parenthesized_expression "(iVar3 == -1)" ( (binary_expression "iVar3 == -1" identifier == number_literal) )) (compound_statement "{\n            param_3 = (int *)0x0;\n          }" { (expression_statement "param_3 = (int *)0x0;" (assignment_expression "param_3 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) }) (else_clause "else {\n          iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n          if (iVar3 == -1) {\n            param_3 = (int *)0x0;\n          }\n        }" else (compound_statement "{\n          iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n          if (iVar3 == -1) {\n            param_3 = (int *)0x0;\n          }\n        }" { (expression_statement "iVar3 = (**(code **)(*param_3 + 0x24))(param_3);" (assignment_expression "iVar3 = (**(code **)(*param_3 + 0x24))(param_3)" identifier = (call_expression "(**(code **)(*param_3 + 0x24))(param_3)" (parenthesized_expression "(**(code **)(*param_3 + 0x24))" ( (pointer_expression "**(code **)(*param_3 + 0x24)" * (pointer_expression "*(code **)(*param_3 + 0x24)" * (cast_expression "(code **)(*param_3 + 0x24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_3 + 0x24)" ( (binary_expression "*param_3 + 0x24" (pointer_expression "*param_3" * identifier) + number_literal) ))))) )) (argument_list "(param_3)" ( identifier )))) ;) (if_statement "if (iVar3 == -1) {\n            param_3 = (int *)0x0;\n          }" if (parenthesized_expression "(iVar3 == -1)" ( (binary_expression "iVar3 == -1" identifier == number_literal) )) (compound_statement "{\n            param_3 = (int *)0x0;\n          }" { (expression_statement "param_3 = (int *)0x0;" (assignment_expression "param_3 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) }))) })) (if_statement "if ((param_5 == (int *)0x0) || (param_6 != -1)) {\n        bVar1 = param_6 == -1;\n      }\n      else {\n        if ((int *)param_5[2] < (int *)param_5[3]) {\n          iVar4 = *(int *)param_5[2];\n          if (iVar4 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }\n        else {\n          iVar4 = (**(code **)(*param_5 + 0x24))(param_5);\n          if (iVar4 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }\n        bVar1 = iVar4 == -1;\n      }" if (parenthesized_expression "((param_5 == (int *)0x0) || (param_6 != -1))" ( (binary_expression "(param_5 == (int *)0x0) || (param_6 != -1)" (parenthesized_expression "(param_5 == (int *)0x0)" ( (binary_expression "param_5 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(param_6 != -1)" ( (binary_expression "param_6 != -1" identifier != number_literal) ))) )) (compound_statement "{\n        bVar1 = param_6 == -1;\n      }" { (expression_statement "bVar1 = param_6 == -1;" (assignment_expression "bVar1 = param_6 == -1" identifier = (binary_expression "param_6 == -1" identifier == number_literal)) ;) }) (else_clause "else {\n        if ((int *)param_5[2] < (int *)param_5[3]) {\n          iVar4 = *(int *)param_5[2];\n          if (iVar4 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }\n        else {\n          iVar4 = (**(code **)(*param_5 + 0x24))(param_5);\n          if (iVar4 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }\n        bVar1 = iVar4 == -1;\n      }" else (compound_statement "{\n        if ((int *)param_5[2] < (int *)param_5[3]) {\n          iVar4 = *(int *)param_5[2];\n          if (iVar4 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }\n        else {\n          iVar4 = (**(code **)(*param_5 + 0x24))(param_5);\n          if (iVar4 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }\n        bVar1 = iVar4 == -1;\n      }" { (if_statement "if ((int *)param_5[2] < (int *)param_5[3]) {\n          iVar4 = *(int *)param_5[2];\n          if (iVar4 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }\n        else {\n          iVar4 = (**(code **)(*param_5 + 0x24))(param_5);\n          if (iVar4 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }" if (parenthesized_expression "((int *)param_5[2] < (int *)param_5[3])" ( (binary_expression "(int *)param_5[2] < (int *)param_5[3]" (cast_expression "(int *)param_5[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_5[2]" identifier [ number_literal ])) < (cast_expression "(int *)param_5[3]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_5[3]" identifier [ number_literal ]))) )) (compound_statement "{\n          iVar4 = *(int *)param_5[2];\n          if (iVar4 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }" { (expression_statement "iVar4 = *(int *)param_5[2];" (assignment_expression "iVar4 = *(int *)param_5[2]" identifier = (pointer_expression "*(int *)param_5[2]" * (cast_expression "(int *)param_5[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_5[2]" identifier [ number_literal ])))) ;) (if_statement "if (iVar4 == -1) {\n            param_5 = (int *)0x0;\n          }" if (parenthesized_expression "(iVar4 == -1)" ( (binary_expression "iVar4 == -1" identifier == number_literal) )) (compound_statement "{\n            param_5 = (int *)0x0;\n          }" { (expression_statement "param_5 = (int *)0x0;" (assignment_expression "param_5 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) }) (else_clause "else {\n          iVar4 = (**(code **)(*param_5 + 0x24))(param_5);\n          if (iVar4 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }" else (compound_statement "{\n          iVar4 = (**(code **)(*param_5 + 0x24))(param_5);\n          if (iVar4 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }" { (expression_statement "iVar4 = (**(code **)(*param_5 + 0x24))(param_5);" (assignment_expression "iVar4 = (**(code **)(*param_5 + 0x24))(param_5)" identifier = (call_expression "(**(code **)(*param_5 + 0x24))(param_5)" (parenthesized_expression "(**(code **)(*param_5 + 0x24))" ( (pointer_expression "**(code **)(*param_5 + 0x24)" * (pointer_expression "*(code **)(*param_5 + 0x24)" * (cast_expression "(code **)(*param_5 + 0x24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_5 + 0x24)" ( (binary_expression "*param_5 + 0x24" (pointer_expression "*param_5" * identifier) + number_literal) ))))) )) (argument_list "(param_5)" ( identifier )))) ;) (if_statement "if (iVar4 == -1) {\n            param_5 = (int *)0x0;\n          }" if (parenthesized_expression "(iVar4 == -1)" ( (binary_expression "iVar4 == -1" identifier == number_literal) )) (compound_statement "{\n            param_5 = (int *)0x0;\n          }" { (expression_statement "param_5 = (int *)0x0;" (assignment_expression "param_5 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) }))) (expression_statement "bVar1 = iVar4 == -1;" (assignment_expression "bVar1 = iVar4 == -1" identifier = (binary_expression "iVar4 == -1" identifier == number_literal)) ;) }))) (if_statement "if (bVar1 == (iVar3 == -1)) {\n        *param_8 = 6;\n        *param_1 = param_3;\n        param_1[1] = param_4;\n        return;\n      }" if (parenthesized_expression "(bVar1 == (iVar3 == -1))" ( (binary_expression "bVar1 == (iVar3 == -1)" identifier == (parenthesized_expression "(iVar3 == -1)" ( (binary_expression "iVar3 == -1" identifier == number_literal) ))) )) (compound_statement "{\n        *param_8 = 6;\n        *param_1 = param_3;\n        param_1[1] = param_4;\n        return;\n      }" { (expression_statement "*param_8 = 6;" (assignment_expression "*param_8 = 6" (pointer_expression "*param_8" * identifier) = number_literal) ;) (expression_statement "*param_1 = param_3;" (assignment_expression "*param_1 = param_3" (pointer_expression "*param_1" * identifier) = identifier) ;) (expression_statement "param_1[1] = param_4;" (assignment_expression "param_1[1] = param_4" (subscript_expression "param_1[1]" identifier [ number_literal ]) = identifier) ;) (return_statement "return;" return ;) })) (expression_statement "iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,*param_10,0);" (assignment_expression "iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,*param_10,0)" identifier = (call_expression "(**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,*param_10,0)" (parenthesized_expression "(**(code **)(*(int *)pcVar2 + 0x30))" ( (pointer_expression "**(code **)(*(int *)pcVar2 + 0x30)" * (pointer_expression "*(code **)(*(int *)pcVar2 + 0x30)" * (cast_expression "(code **)(*(int *)pcVar2 + 0x30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)pcVar2 + 0x30)" ( (binary_expression "*(int *)pcVar2 + 0x30" (pointer_expression "*(int *)pcVar2" * (cast_expression "(int *)pcVar2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) )) (argument_list "(pcVar2,*param_10,0)" ( identifier , (pointer_expression "*param_10" * identifier) , number_literal )))) ;) (if_statement "if (iVar3 == 0x25) {\n        puVar8 = param_10 + 1;\n        if (param_11 == puVar8) goto LAB_0034254c;\n        iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,param_10[1],0);\n        if ((iVar3 == 0x45) || (iVar3 == 0x4f)) {\n          puVar8 = param_10 + 2;\n          if (param_11 == puVar8) goto LAB_0034254c;\n          local_34 = iVar3;\n          iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,param_10[2],0);\n          pcVar9 = *(code **)(*param_2 + 0x20);\n          iVar4 = local_34;\n          if (pcVar9 != local_38) goto LAB_0034243c;\n          piVar7 = (int *)(*(code *)PTR_use_facet<std_ctype<wchar_t>>_00433ac8)(local_30);\n          pcVar9 = *(code **)(*piVar7 + 0x28);\n          *param_8 = 0;\n          local_60 = (*pcVar9)(piVar7,0x25);\n          if (local_34 == 0) goto LAB_003421b4;\n          local_5c = local_34;\n          local_54 = 0;\n          local_58 = iVar3;\n        }\n        else {\n          pcVar9 = *(code **)(*param_2 + 0x20);\n          if (pcVar9 != local_38) {\n            iVar4 = 0;\nLAB_0034243c:\n            param_10 = puVar8 + 1;\n            (*pcVar9)(&local_40,param_2,param_3,param_4,param_5,param_6,param_7,param_8,param_9,\n                      iVar3,iVar4);\n            param_4 = local_3c;\n            param_3 = local_40;\n            goto LAB_00341f24;\n          }\n          local_34 = iVar3;\n          piVar7 = (int *)(*(code *)PTR_use_facet<std_ctype<wchar_t>>_00433ac8)(local_30);\n          pcVar9 = *(code **)(*piVar7 + 0x28);\n          *param_8 = 0;\n          local_60 = (*pcVar9)(piVar7,0x25);\n          iVar3 = local_34;\nLAB_003421b4:\n          local_58 = 0;\n          local_5c = iVar3;\n        }\n        local_4c = param_6;\n        local_50 = param_5;\n        _M_extract_via_format\n                  (&local_40,param_2,param_3,param_4,param_5,param_6,param_7,param_8,param_9,\n                   local_2c);\n        param_4 = local_3c;\n        param_3 = local_40;\n        local_48 = local_40;\n        local_44 = local_3c;\n        iVar3 = local_3c;\n        if ((local_40 != (int *)0x0) && (local_3c == -1)) {\n          if ((int *)local_40[2] < (int *)local_40[3]) {\n            iVar3 = *(int *)local_40[2];\n          }\n          else {\n            iVar3 = (**(code **)(*local_40 + 0x24))(local_40);\n          }\n          if (iVar3 == -1) {\n            param_3 = (int *)0x0;\n          }\n        }\n        iVar4 = param_6;\n        if ((param_5 != (int *)0x0) && (param_6 == -1)) {\n          if ((int *)param_5[2] < (int *)param_5[3]) {\n            iVar4 = *(int *)param_5[2];\n          }\n          else {\n            iVar4 = (**(code **)(*param_5 + 0x24))(param_5);\n          }\n        }\n        if ((iVar4 == -1) == (iVar3 == -1)) {\n          *param_8 = *param_8 | 2;\n        }\n        param_10 = puVar8 + 1;\n      }\n      else {\n        iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,*param_10);\n        if (iVar3 == 0) {\n          iVar4 = param_4;\n          iVar3 = param_4;\n          if (param_3 == (int *)0x0) {\nLAB_00342380:\n            iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,iVar4);\n            iVar5 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n            if (iVar5 != iVar4) {\n              param_3 = (int *)0x0;\nLAB_00341ed0:\n              iVar3 = (**(code **)(*(int *)pcVar2 + 0x18))(pcVar2,iVar3);\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x18))(pcVar2,*param_10);\n              if (iVar4 != iVar3) {\nLAB_0034254c:\n                *param_8 = 4;\n                *param_1 = param_3;\n                param_1[1] = param_4;\n                return;\n              }\n              goto LAB_00341f00;\n            }\n            param_3 = (int *)0x0;\n            uVar6 = uRam00000008;\n            if (uRam0000000c <= uRam00000008) goto LAB_003424f8;\nLAB_00341f14:\n            param_3[2] = uVar6 + 4;\n          }\n          else {\n            if (param_4 == -1) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar4 = *(int *)param_3[2];\n              }\n              else {\n                iVar4 = (**(code **)(*param_3 + 0x24))(param_3,0xffffffff);\n              }\n              if (iVar4 == -1) goto LAB_00342380;\n              iVar3 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2);\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n              if (iVar3 != iVar4) {\n                if ((int *)param_3[2] < (int *)param_3[3]) {\n                  iVar3 = *(int *)param_3[2];\n                  if (iVar3 == -1) {\n                    param_3 = (int *)0x0;\n                  }\n                }\n                else {\n                  iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n                  if (iVar3 == -1) {\n                    param_3 = (int *)0x0;\n                  }\n                }\n                goto LAB_00341ed0;\n              }\n            }\n            else {\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2);\n              iVar5 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n              if (iVar5 != iVar4) goto LAB_00341ed0;\n            }\nLAB_00341f00:\n            uVar6 = param_3[2];\n            if ((uint)param_3[2] < (uint)param_3[3]) goto LAB_00341f14;\nLAB_003424f8:\n            (**(code **)(*param_3 + 0x28))(param_3);\n          }\n          param_10 = param_10 + 1;\n          param_4 = -1;\n        }\n        else {\n          do {\n            param_10 = param_10 + 1;\n            if (param_11 == param_10) break;\n            iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,*param_10);\n          } while (iVar3 != 0);\n          iVar3 = param_4;\n          if ((param_3 != (int *)0x0) && (param_4 == -1)) goto LAB_0034201c;\n          while( true ) {\n            bVar1 = param_4 == -1;\n            iVar4 = param_6;\n            if ((param_5 != (int *)0x0) && (param_6 == -1)) {\n              if ((int *)param_5[2] < (int *)param_5[3]) {\n                iVar4 = *(int *)param_5[2];\n                if (iVar4 == -1) {\n                  param_5 = (int *)0x0;\n                }\n              }\n              else {\n                iVar4 = (**(code **)(*param_5 + 0x24))(param_5);\n                if (iVar4 == -1) {\n                  param_5 = (int *)0x0;\n                }\n              }\n            }\n            param_4 = iVar3;\n            if ((iVar4 == -1) == bVar1) break;\n            if ((param_3 != (int *)0x0) && (iVar3 == -1)) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar3 = *(int *)param_3[2];\n                if (iVar3 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n              else {\n                iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n                if (iVar3 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n            }\n            iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,iVar3);\n            if (iVar3 == 0) break;\n            if ((uint)param_3[2] < (uint)param_3[3]) {\n              param_3[2] = param_3[2] + 4;\nLAB_0034201c:\n              piVar7 = (int *)param_3[2];\n              if (piVar7 < (int *)param_3[3]) goto LAB_00342030;\nLAB_003422d0:\n              param_4 = (**(code **)(*param_3 + 0x24))(param_3);\n            }\n            else {\n              (**(code **)(*param_3 + 0x28))(param_3);\n              piVar7 = (int *)param_3[2];\n              if ((int *)param_3[3] <= piVar7) goto LAB_003422d0;\nLAB_00342030:\n              param_4 = *piVar7;\n            }\n            iVar3 = -1;\n            if (param_4 == -1) {\n              param_3 = (int *)0x0;\n            }\n          }\n        }\n      }" if (parenthesized_expression "(iVar3 == 0x25)" ( (binary_expression "iVar3 == 0x25" identifier == number_literal) )) (compound_statement "{\n        puVar8 = param_10 + 1;\n        if (param_11 == puVar8) goto LAB_0034254c;\n        iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,param_10[1],0);\n        if ((iVar3 == 0x45) || (iVar3 == 0x4f)) {\n          puVar8 = param_10 + 2;\n          if (param_11 == puVar8) goto LAB_0034254c;\n          local_34 = iVar3;\n          iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,param_10[2],0);\n          pcVar9 = *(code **)(*param_2 + 0x20);\n          iVar4 = local_34;\n          if (pcVar9 != local_38) goto LAB_0034243c;\n          piVar7 = (int *)(*(code *)PTR_use_facet<std_ctype<wchar_t>>_00433ac8)(local_30);\n          pcVar9 = *(code **)(*piVar7 + 0x28);\n          *param_8 = 0;\n          local_60 = (*pcVar9)(piVar7,0x25);\n          if (local_34 == 0) goto LAB_003421b4;\n          local_5c = local_34;\n          local_54 = 0;\n          local_58 = iVar3;\n        }\n        else {\n          pcVar9 = *(code **)(*param_2 + 0x20);\n          if (pcVar9 != local_38) {\n            iVar4 = 0;\nLAB_0034243c:\n            param_10 = puVar8 + 1;\n            (*pcVar9)(&local_40,param_2,param_3,param_4,param_5,param_6,param_7,param_8,param_9,\n                      iVar3,iVar4);\n            param_4 = local_3c;\n            param_3 = local_40;\n            goto LAB_00341f24;\n          }\n          local_34 = iVar3;\n          piVar7 = (int *)(*(code *)PTR_use_facet<std_ctype<wchar_t>>_00433ac8)(local_30);\n          pcVar9 = *(code **)(*piVar7 + 0x28);\n          *param_8 = 0;\n          local_60 = (*pcVar9)(piVar7,0x25);\n          iVar3 = local_34;\nLAB_003421b4:\n          local_58 = 0;\n          local_5c = iVar3;\n        }\n        local_4c = param_6;\n        local_50 = param_5;\n        _M_extract_via_format\n                  (&local_40,param_2,param_3,param_4,param_5,param_6,param_7,param_8,param_9,\n                   local_2c);\n        param_4 = local_3c;\n        param_3 = local_40;\n        local_48 = local_40;\n        local_44 = local_3c;\n        iVar3 = local_3c;\n        if ((local_40 != (int *)0x0) && (local_3c == -1)) {\n          if ((int *)local_40[2] < (int *)local_40[3]) {\n            iVar3 = *(int *)local_40[2];\n          }\n          else {\n            iVar3 = (**(code **)(*local_40 + 0x24))(local_40);\n          }\n          if (iVar3 == -1) {\n            param_3 = (int *)0x0;\n          }\n        }\n        iVar4 = param_6;\n        if ((param_5 != (int *)0x0) && (param_6 == -1)) {\n          if ((int *)param_5[2] < (int *)param_5[3]) {\n            iVar4 = *(int *)param_5[2];\n          }\n          else {\n            iVar4 = (**(code **)(*param_5 + 0x24))(param_5);\n          }\n        }\n        if ((iVar4 == -1) == (iVar3 == -1)) {\n          *param_8 = *param_8 | 2;\n        }\n        param_10 = puVar8 + 1;\n      }" { (expression_statement "puVar8 = param_10 + 1;" (assignment_expression "puVar8 = param_10 + 1" identifier = (binary_expression "param_10 + 1" identifier + number_literal)) ;) (if_statement "if (param_11 == puVar8) goto LAB_0034254c;" if (parenthesized_expression "(param_11 == puVar8)" ( (binary_expression "param_11 == puVar8" identifier == identifier) )) (goto_statement "goto LAB_0034254c;" goto statement_identifier ;)) (expression_statement "iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,param_10[1],0);" (assignment_expression "iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,param_10[1],0)" identifier = (call_expression "(**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,param_10[1],0)" (parenthesized_expression "(**(code **)(*(int *)pcVar2 + 0x30))" ( (pointer_expression "**(code **)(*(int *)pcVar2 + 0x30)" * (pointer_expression "*(code **)(*(int *)pcVar2 + 0x30)" * (cast_expression "(code **)(*(int *)pcVar2 + 0x30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)pcVar2 + 0x30)" ( (binary_expression "*(int *)pcVar2 + 0x30" (pointer_expression "*(int *)pcVar2" * (cast_expression "(int *)pcVar2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) )) (argument_list "(pcVar2,param_10[1],0)" ( identifier , (subscript_expression "param_10[1]" identifier [ number_literal ]) , number_literal )))) ;) (if_statement "if ((iVar3 == 0x45) || (iVar3 == 0x4f)) {\n          puVar8 = param_10 + 2;\n          if (param_11 == puVar8) goto LAB_0034254c;\n          local_34 = iVar3;\n          iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,param_10[2],0);\n          pcVar9 = *(code **)(*param_2 + 0x20);\n          iVar4 = local_34;\n          if (pcVar9 != local_38) goto LAB_0034243c;\n          piVar7 = (int *)(*(code *)PTR_use_facet<std_ctype<wchar_t>>_00433ac8)(local_30);\n          pcVar9 = *(code **)(*piVar7 + 0x28);\n          *param_8 = 0;\n          local_60 = (*pcVar9)(piVar7,0x25);\n          if (local_34 == 0) goto LAB_003421b4;\n          local_5c = local_34;\n          local_54 = 0;\n          local_58 = iVar3;\n        }\n        else {\n          pcVar9 = *(code **)(*param_2 + 0x20);\n          if (pcVar9 != local_38) {\n            iVar4 = 0;\nLAB_0034243c:\n            param_10 = puVar8 + 1;\n            (*pcVar9)(&local_40,param_2,param_3,param_4,param_5,param_6,param_7,param_8,param_9,\n                      iVar3,iVar4);\n            param_4 = local_3c;\n            param_3 = local_40;\n            goto LAB_00341f24;\n          }\n          local_34 = iVar3;\n          piVar7 = (int *)(*(code *)PTR_use_facet<std_ctype<wchar_t>>_00433ac8)(local_30);\n          pcVar9 = *(code **)(*piVar7 + 0x28);\n          *param_8 = 0;\n          local_60 = (*pcVar9)(piVar7,0x25);\n          iVar3 = local_34;\nLAB_003421b4:\n          local_58 = 0;\n          local_5c = iVar3;\n        }" if (parenthesized_expression "((iVar3 == 0x45) || (iVar3 == 0x4f))" ( (binary_expression "(iVar3 == 0x45) || (iVar3 == 0x4f)" (parenthesized_expression "(iVar3 == 0x45)" ( (binary_expression "iVar3 == 0x45" identifier == number_literal) )) || (parenthesized_expression "(iVar3 == 0x4f)" ( (binary_expression "iVar3 == 0x4f" identifier == number_literal) ))) )) (compound_statement "{\n          puVar8 = param_10 + 2;\n          if (param_11 == puVar8) goto LAB_0034254c;\n          local_34 = iVar3;\n          iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,param_10[2],0);\n          pcVar9 = *(code **)(*param_2 + 0x20);\n          iVar4 = local_34;\n          if (pcVar9 != local_38) goto LAB_0034243c;\n          piVar7 = (int *)(*(code *)PTR_use_facet<std_ctype<wchar_t>>_00433ac8)(local_30);\n          pcVar9 = *(code **)(*piVar7 + 0x28);\n          *param_8 = 0;\n          local_60 = (*pcVar9)(piVar7,0x25);\n          if (local_34 == 0) goto LAB_003421b4;\n          local_5c = local_34;\n          local_54 = 0;\n          local_58 = iVar3;\n        }" { (expression_statement "puVar8 = param_10 + 2;" (assignment_expression "puVar8 = param_10 + 2" identifier = (binary_expression "param_10 + 2" identifier + number_literal)) ;) (if_statement "if (param_11 == puVar8) goto LAB_0034254c;" if (parenthesized_expression "(param_11 == puVar8)" ( (binary_expression "param_11 == puVar8" identifier == identifier) )) (goto_statement "goto LAB_0034254c;" goto statement_identifier ;)) (expression_statement "local_34 = iVar3;" (assignment_expression "local_34 = iVar3" identifier = identifier) ;) (expression_statement "iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,param_10[2],0);" (assignment_expression "iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,param_10[2],0)" identifier = (call_expression "(**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,param_10[2],0)" (parenthesized_expression "(**(code **)(*(int *)pcVar2 + 0x30))" ( (pointer_expression "**(code **)(*(int *)pcVar2 + 0x30)" * (pointer_expression "*(code **)(*(int *)pcVar2 + 0x30)" * (cast_expression "(code **)(*(int *)pcVar2 + 0x30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)pcVar2 + 0x30)" ( (binary_expression "*(int *)pcVar2 + 0x30" (pointer_expression "*(int *)pcVar2" * (cast_expression "(int *)pcVar2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) )) (argument_list "(pcVar2,param_10[2],0)" ( identifier , (subscript_expression "param_10[2]" identifier [ number_literal ]) , number_literal )))) ;) (expression_statement "pcVar9 = *(code **)(*param_2 + 0x20);" (assignment_expression "pcVar9 = *(code **)(*param_2 + 0x20)" identifier = (pointer_expression "*(code **)(*param_2 + 0x20)" * (cast_expression "(code **)(*param_2 + 0x20)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_2 + 0x20)" ( (binary_expression "*param_2 + 0x20" (pointer_expression "*param_2" * identifier) + number_literal) ))))) ;) (expression_statement "iVar4 = local_34;" (assignment_expression "iVar4 = local_34" identifier = identifier) ;) (if_statement "if (pcVar9 != local_38) goto LAB_0034243c;" if (parenthesized_expression "(pcVar9 != local_38)" ( (binary_expression "pcVar9 != local_38" identifier != identifier) )) (goto_statement "goto LAB_0034243c;" goto statement_identifier ;)) (expression_statement "piVar7 = (int *)(*(code *)PTR_use_facet<std_ctype<wchar_t>>_00433ac8)(local_30);" (assignment_expression "piVar7 = (int *)(*(code *)PTR_use_facet<std_ctype<wchar_t>>_00433ac8)(local_30)" identifier = (cast_expression "(int *)(*(code *)PTR_use_facet<std_ctype<wchar_t>>_00433ac8)(local_30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_use_facet<std_ctype<wchar_t>>_00433ac8)(local_30)" (parenthesized_expression "(*(code *)PTR_use_facet<std_ctype<wchar_t>>_00433ac8)" ( (binary_expression "*(code *)PTR_use_facet<std_ctype<wchar_t>>_00433ac8" (binary_expression "*(code *)PTR_use_facet<std_ctype" (pointer_expression "*(code *)PTR_use_facet" * (cast_expression "(code *)PTR_use_facet" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) < identifier) < (binary_expression "wchar_t>>_00433ac8" identifier >> identifier)) )) (argument_list "(local_30)" ( identifier ))))) ;) (expression_statement "pcVar9 = *(code **)(*piVar7 + 0x28);" (assignment_expression "pcVar9 = *(code **)(*piVar7 + 0x28)" identifier = (pointer_expression "*(code **)(*piVar7 + 0x28)" * (cast_expression "(code **)(*piVar7 + 0x28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar7 + 0x28)" ( (binary_expression "*piVar7 + 0x28" (pointer_expression "*piVar7" * identifier) + number_literal) ))))) ;) (expression_statement "*param_8 = 0;" (assignment_expression "*param_8 = 0" (pointer_expression "*param_8" * identifier) = number_literal) ;) (expression_statement "local_60 = (*pcVar9)(piVar7,0x25);" (assignment_expression "local_60 = (*pcVar9)(piVar7,0x25)" identifier = (call_expression "(*pcVar9)(piVar7,0x25)" (parenthesized_expression "(*pcVar9)" ( (pointer_expression "*pcVar9" * identifier) )) (argument_list "(piVar7,0x25)" ( identifier , number_literal )))) ;) (if_statement "if (local_34 == 0) goto LAB_003421b4;" if (parenthesized_expression "(local_34 == 0)" ( (binary_expression "local_34 == 0" identifier == number_literal) )) (goto_statement "goto LAB_003421b4;" goto statement_identifier ;)) (expression_statement "local_5c = local_34;" (assignment_expression "local_5c = local_34" identifier = identifier) ;) (expression_statement "local_54 = 0;" (assignment_expression "local_54 = 0" identifier = number_literal) ;) (expression_statement "local_58 = iVar3;" (assignment_expression "local_58 = iVar3" identifier = identifier) ;) }) (else_clause "else {\n          pcVar9 = *(code **)(*param_2 + 0x20);\n          if (pcVar9 != local_38) {\n            iVar4 = 0;\nLAB_0034243c:\n            param_10 = puVar8 + 1;\n            (*pcVar9)(&local_40,param_2,param_3,param_4,param_5,param_6,param_7,param_8,param_9,\n                      iVar3,iVar4);\n            param_4 = local_3c;\n            param_3 = local_40;\n            goto LAB_00341f24;\n          }\n          local_34 = iVar3;\n          piVar7 = (int *)(*(code *)PTR_use_facet<std_ctype<wchar_t>>_00433ac8)(local_30);\n          pcVar9 = *(code **)(*piVar7 + 0x28);\n          *param_8 = 0;\n          local_60 = (*pcVar9)(piVar7,0x25);\n          iVar3 = local_34;\nLAB_003421b4:\n          local_58 = 0;\n          local_5c = iVar3;\n        }" else (compound_statement "{\n          pcVar9 = *(code **)(*param_2 + 0x20);\n          if (pcVar9 != local_38) {\n            iVar4 = 0;\nLAB_0034243c:\n            param_10 = puVar8 + 1;\n            (*pcVar9)(&local_40,param_2,param_3,param_4,param_5,param_6,param_7,param_8,param_9,\n                      iVar3,iVar4);\n            param_4 = local_3c;\n            param_3 = local_40;\n            goto LAB_00341f24;\n          }\n          local_34 = iVar3;\n          piVar7 = (int *)(*(code *)PTR_use_facet<std_ctype<wchar_t>>_00433ac8)(local_30);\n          pcVar9 = *(code **)(*piVar7 + 0x28);\n          *param_8 = 0;\n          local_60 = (*pcVar9)(piVar7,0x25);\n          iVar3 = local_34;\nLAB_003421b4:\n          local_58 = 0;\n          local_5c = iVar3;\n        }" { (expression_statement "pcVar9 = *(code **)(*param_2 + 0x20);" (assignment_expression "pcVar9 = *(code **)(*param_2 + 0x20)" identifier = (pointer_expression "*(code **)(*param_2 + 0x20)" * (cast_expression "(code **)(*param_2 + 0x20)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_2 + 0x20)" ( (binary_expression "*param_2 + 0x20" (pointer_expression "*param_2" * identifier) + number_literal) ))))) ;) (if_statement "if (pcVar9 != local_38) {\n            iVar4 = 0;\nLAB_0034243c:\n            param_10 = puVar8 + 1;\n            (*pcVar9)(&local_40,param_2,param_3,param_4,param_5,param_6,param_7,param_8,param_9,\n                      iVar3,iVar4);\n            param_4 = local_3c;\n            param_3 = local_40;\n            goto LAB_00341f24;\n          }" if (parenthesized_expression "(pcVar9 != local_38)" ( (binary_expression "pcVar9 != local_38" identifier != identifier) )) (compound_statement "{\n            iVar4 = 0;\nLAB_0034243c:\n            param_10 = puVar8 + 1;\n            (*pcVar9)(&local_40,param_2,param_3,param_4,param_5,param_6,param_7,param_8,param_9,\n                      iVar3,iVar4);\n            param_4 = local_3c;\n            param_3 = local_40;\n            goto LAB_00341f24;\n          }" { (expression_statement "iVar4 = 0;" (assignment_expression "iVar4 = 0" identifier = number_literal) ;) (labeled_statement "LAB_0034243c:\n            param_10 = puVar8 + 1;" statement_identifier : (expression_statement "param_10 = puVar8 + 1;" (assignment_expression "param_10 = puVar8 + 1" identifier = (binary_expression "puVar8 + 1" identifier + number_literal)) ;)) (expression_statement "(*pcVar9)(&local_40,param_2,param_3,param_4,param_5,param_6,param_7,param_8,param_9,\n                      iVar3,iVar4);" (call_expression "(*pcVar9)(&local_40,param_2,param_3,param_4,param_5,param_6,param_7,param_8,param_9,\n                      iVar3,iVar4)" (parenthesized_expression "(*pcVar9)" ( (pointer_expression "*pcVar9" * identifier) )) (argument_list "(&local_40,param_2,param_3,param_4,param_5,param_6,param_7,param_8,param_9,\n                      iVar3,iVar4)" ( (pointer_expression "&local_40" & identifier) , identifier , identifier , identifier , identifier , identifier , identifier , identifier , identifier , identifier , identifier ))) ;) (expression_statement "param_4 = local_3c;" (assignment_expression "param_4 = local_3c" identifier = identifier) ;) (expression_statement "param_3 = local_40;" (assignment_expression "param_3 = local_40" identifier = identifier) ;) (goto_statement "goto LAB_00341f24;" goto statement_identifier ;) })) (expression_statement "local_34 = iVar3;" (assignment_expression "local_34 = iVar3" identifier = identifier) ;) (expression_statement "piVar7 = (int *)(*(code *)PTR_use_facet<std_ctype<wchar_t>>_00433ac8)(local_30);" (assignment_expression "piVar7 = (int *)(*(code *)PTR_use_facet<std_ctype<wchar_t>>_00433ac8)(local_30)" identifier = (cast_expression "(int *)(*(code *)PTR_use_facet<std_ctype<wchar_t>>_00433ac8)(local_30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_use_facet<std_ctype<wchar_t>>_00433ac8)(local_30)" (parenthesized_expression "(*(code *)PTR_use_facet<std_ctype<wchar_t>>_00433ac8)" ( (binary_expression "*(code *)PTR_use_facet<std_ctype<wchar_t>>_00433ac8" (binary_expression "*(code *)PTR_use_facet<std_ctype" (pointer_expression "*(code *)PTR_use_facet" * (cast_expression "(code *)PTR_use_facet" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) < identifier) < (binary_expression "wchar_t>>_00433ac8" identifier >> identifier)) )) (argument_list "(local_30)" ( identifier ))))) ;) (expression_statement "pcVar9 = *(code **)(*piVar7 + 0x28);" (assignment_expression "pcVar9 = *(code **)(*piVar7 + 0x28)" identifier = (pointer_expression "*(code **)(*piVar7 + 0x28)" * (cast_expression "(code **)(*piVar7 + 0x28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar7 + 0x28)" ( (binary_expression "*piVar7 + 0x28" (pointer_expression "*piVar7" * identifier) + number_literal) ))))) ;) (expression_statement "*param_8 = 0;" (assignment_expression "*param_8 = 0" (pointer_expression "*param_8" * identifier) = number_literal) ;) (expression_statement "local_60 = (*pcVar9)(piVar7,0x25);" (assignment_expression "local_60 = (*pcVar9)(piVar7,0x25)" identifier = (call_expression "(*pcVar9)(piVar7,0x25)" (parenthesized_expression "(*pcVar9)" ( (pointer_expression "*pcVar9" * identifier) )) (argument_list "(piVar7,0x25)" ( identifier , number_literal )))) ;) (expression_statement "iVar3 = local_34;" (assignment_expression "iVar3 = local_34" identifier = identifier) ;) (labeled_statement "LAB_003421b4:\n          local_58 = 0;" statement_identifier : (expression_statement "local_58 = 0;" (assignment_expression "local_58 = 0" identifier = number_literal) ;)) (expression_statement "local_5c = iVar3;" (assignment_expression "local_5c = iVar3" identifier = identifier) ;) }))) (expression_statement "local_4c = param_6;" (assignment_expression "local_4c = param_6" identifier = identifier) ;) (expression_statement "local_50 = param_5;" (assignment_expression "local_50 = param_5" identifier = identifier) ;) (expression_statement "_M_extract_via_format\n                  (&local_40,param_2,param_3,param_4,param_5,param_6,param_7,param_8,param_9,\n                   local_2c);" (call_expression "_M_extract_via_format\n                  (&local_40,param_2,param_3,param_4,param_5,param_6,param_7,param_8,param_9,\n                   local_2c)" identifier (argument_list "(&local_40,param_2,param_3,param_4,param_5,param_6,param_7,param_8,param_9,\n                   local_2c)" ( (pointer_expression "&local_40" & identifier) , identifier , identifier , identifier , identifier , identifier , identifier , identifier , identifier , identifier ))) ;) (expression_statement "param_4 = local_3c;" (assignment_expression "param_4 = local_3c" identifier = identifier) ;) (expression_statement "param_3 = local_40;" (assignment_expression "param_3 = local_40" identifier = identifier) ;) (expression_statement "local_48 = local_40;" (assignment_expression "local_48 = local_40" identifier = identifier) ;) (expression_statement "local_44 = local_3c;" (assignment_expression "local_44 = local_3c" identifier = identifier) ;) (expression_statement "iVar3 = local_3c;" (assignment_expression "iVar3 = local_3c" identifier = identifier) ;) (if_statement "if ((local_40 != (int *)0x0) && (local_3c == -1)) {\n          if ((int *)local_40[2] < (int *)local_40[3]) {\n            iVar3 = *(int *)local_40[2];\n          }\n          else {\n            iVar3 = (**(code **)(*local_40 + 0x24))(local_40);\n          }\n          if (iVar3 == -1) {\n            param_3 = (int *)0x0;\n          }\n        }" if (parenthesized_expression "((local_40 != (int *)0x0) && (local_3c == -1))" ( (binary_expression "(local_40 != (int *)0x0) && (local_3c == -1)" (parenthesized_expression "(local_40 != (int *)0x0)" ( (binary_expression "local_40 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(local_3c == -1)" ( (binary_expression "local_3c == -1" identifier == number_literal) ))) )) (compound_statement "{\n          if ((int *)local_40[2] < (int *)local_40[3]) {\n            iVar3 = *(int *)local_40[2];\n          }\n          else {\n            iVar3 = (**(code **)(*local_40 + 0x24))(local_40);\n          }\n          if (iVar3 == -1) {\n            param_3 = (int *)0x0;\n          }\n        }" { (if_statement "if ((int *)local_40[2] < (int *)local_40[3]) {\n            iVar3 = *(int *)local_40[2];\n          }\n          else {\n            iVar3 = (**(code **)(*local_40 + 0x24))(local_40);\n          }" if (parenthesized_expression "((int *)local_40[2] < (int *)local_40[3])" ( (binary_expression "(int *)local_40[2] < (int *)local_40[3]" (cast_expression "(int *)local_40[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_40[2]" identifier [ number_literal ])) < (cast_expression "(int *)local_40[3]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_40[3]" identifier [ number_literal ]))) )) (compound_statement "{\n            iVar3 = *(int *)local_40[2];\n          }" { (expression_statement "iVar3 = *(int *)local_40[2];" (assignment_expression "iVar3 = *(int *)local_40[2]" identifier = (pointer_expression "*(int *)local_40[2]" * (cast_expression "(int *)local_40[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_40[2]" identifier [ number_literal ])))) ;) }) (else_clause "else {\n            iVar3 = (**(code **)(*local_40 + 0x24))(local_40);\n          }" else (compound_statement "{\n            iVar3 = (**(code **)(*local_40 + 0x24))(local_40);\n          }" { (expression_statement "iVar3 = (**(code **)(*local_40 + 0x24))(local_40);" (assignment_expression "iVar3 = (**(code **)(*local_40 + 0x24))(local_40)" identifier = (call_expression "(**(code **)(*local_40 + 0x24))(local_40)" (parenthesized_expression "(**(code **)(*local_40 + 0x24))" ( (pointer_expression "**(code **)(*local_40 + 0x24)" * (pointer_expression "*(code **)(*local_40 + 0x24)" * (cast_expression "(code **)(*local_40 + 0x24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*local_40 + 0x24)" ( (binary_expression "*local_40 + 0x24" (pointer_expression "*local_40" * identifier) + number_literal) ))))) )) (argument_list "(local_40)" ( identifier )))) ;) }))) (if_statement "if (iVar3 == -1) {\n            param_3 = (int *)0x0;\n          }" if (parenthesized_expression "(iVar3 == -1)" ( (binary_expression "iVar3 == -1" identifier == number_literal) )) (compound_statement "{\n            param_3 = (int *)0x0;\n          }" { (expression_statement "param_3 = (int *)0x0;" (assignment_expression "param_3 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) })) (expression_statement "iVar4 = param_6;" (assignment_expression "iVar4 = param_6" identifier = identifier) ;) (if_statement "if ((param_5 != (int *)0x0) && (param_6 == -1)) {\n          if ((int *)param_5[2] < (int *)param_5[3]) {\n            iVar4 = *(int *)param_5[2];\n          }\n          else {\n            iVar4 = (**(code **)(*param_5 + 0x24))(param_5);\n          }\n        }" if (parenthesized_expression "((param_5 != (int *)0x0) && (param_6 == -1))" ( (binary_expression "(param_5 != (int *)0x0) && (param_6 == -1)" (parenthesized_expression "(param_5 != (int *)0x0)" ( (binary_expression "param_5 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(param_6 == -1)" ( (binary_expression "param_6 == -1" identifier == number_literal) ))) )) (compound_statement "{\n          if ((int *)param_5[2] < (int *)param_5[3]) {\n            iVar4 = *(int *)param_5[2];\n          }\n          else {\n            iVar4 = (**(code **)(*param_5 + 0x24))(param_5);\n          }\n        }" { (if_statement "if ((int *)param_5[2] < (int *)param_5[3]) {\n            iVar4 = *(int *)param_5[2];\n          }\n          else {\n            iVar4 = (**(code **)(*param_5 + 0x24))(param_5);\n          }" if (parenthesized_expression "((int *)param_5[2] < (int *)param_5[3])" ( (binary_expression "(int *)param_5[2] < (int *)param_5[3]" (cast_expression "(int *)param_5[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_5[2]" identifier [ number_literal ])) < (cast_expression "(int *)param_5[3]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_5[3]" identifier [ number_literal ]))) )) (compound_statement "{\n            iVar4 = *(int *)param_5[2];\n          }" { (expression_statement "iVar4 = *(int *)param_5[2];" (assignment_expression "iVar4 = *(int *)param_5[2]" identifier = (pointer_expression "*(int *)param_5[2]" * (cast_expression "(int *)param_5[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_5[2]" identifier [ number_literal ])))) ;) }) (else_clause "else {\n            iVar4 = (**(code **)(*param_5 + 0x24))(param_5);\n          }" else (compound_statement "{\n            iVar4 = (**(code **)(*param_5 + 0x24))(param_5);\n          }" { (expression_statement "iVar4 = (**(code **)(*param_5 + 0x24))(param_5);" (assignment_expression "iVar4 = (**(code **)(*param_5 + 0x24))(param_5)" identifier = (call_expression "(**(code **)(*param_5 + 0x24))(param_5)" (parenthesized_expression "(**(code **)(*param_5 + 0x24))" ( (pointer_expression "**(code **)(*param_5 + 0x24)" * (pointer_expression "*(code **)(*param_5 + 0x24)" * (cast_expression "(code **)(*param_5 + 0x24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_5 + 0x24)" ( (binary_expression "*param_5 + 0x24" (pointer_expression "*param_5" * identifier) + number_literal) ))))) )) (argument_list "(param_5)" ( identifier )))) ;) }))) })) (if_statement "if ((iVar4 == -1) == (iVar3 == -1)) {\n          *param_8 = *param_8 | 2;\n        }" if (parenthesized_expression "((iVar4 == -1) == (iVar3 == -1))" ( (binary_expression "(iVar4 == -1) == (iVar3 == -1)" (parenthesized_expression "(iVar4 == -1)" ( (binary_expression "iVar4 == -1" identifier == number_literal) )) == (parenthesized_expression "(iVar3 == -1)" ( (binary_expression "iVar3 == -1" identifier == number_literal) ))) )) (compound_statement "{\n          *param_8 = *param_8 | 2;\n        }" { (expression_statement "*param_8 = *param_8 | 2;" (assignment_expression "*param_8 = *param_8 | 2" (pointer_expression "*param_8" * identifier) = (binary_expression "*param_8 | 2" (pointer_expression "*param_8" * identifier) | number_literal)) ;) })) (expression_statement "param_10 = puVar8 + 1;" (assignment_expression "param_10 = puVar8 + 1" identifier = (binary_expression "puVar8 + 1" identifier + number_literal)) ;) }) (else_clause "else {\n        iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,*param_10);\n        if (iVar3 == 0) {\n          iVar4 = param_4;\n          iVar3 = param_4;\n          if (param_3 == (int *)0x0) {\nLAB_00342380:\n            iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,iVar4);\n            iVar5 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n            if (iVar5 != iVar4) {\n              param_3 = (int *)0x0;\nLAB_00341ed0:\n              iVar3 = (**(code **)(*(int *)pcVar2 + 0x18))(pcVar2,iVar3);\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x18))(pcVar2,*param_10);\n              if (iVar4 != iVar3) {\nLAB_0034254c:\n                *param_8 = 4;\n                *param_1 = param_3;\n                param_1[1] = param_4;\n                return;\n              }\n              goto LAB_00341f00;\n            }\n            param_3 = (int *)0x0;\n            uVar6 = uRam00000008;\n            if (uRam0000000c <= uRam00000008) goto LAB_003424f8;\nLAB_00341f14:\n            param_3[2] = uVar6 + 4;\n          }\n          else {\n            if (param_4 == -1) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar4 = *(int *)param_3[2];\n              }\n              else {\n                iVar4 = (**(code **)(*param_3 + 0x24))(param_3,0xffffffff);\n              }\n              if (iVar4 == -1) goto LAB_00342380;\n              iVar3 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2);\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n              if (iVar3 != iVar4) {\n                if ((int *)param_3[2] < (int *)param_3[3]) {\n                  iVar3 = *(int *)param_3[2];\n                  if (iVar3 == -1) {\n                    param_3 = (int *)0x0;\n                  }\n                }\n                else {\n                  iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n                  if (iVar3 == -1) {\n                    param_3 = (int *)0x0;\n                  }\n                }\n                goto LAB_00341ed0;\n              }\n            }\n            else {\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2);\n              iVar5 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n              if (iVar5 != iVar4) goto LAB_00341ed0;\n            }\nLAB_00341f00:\n            uVar6 = param_3[2];\n            if ((uint)param_3[2] < (uint)param_3[3]) goto LAB_00341f14;\nLAB_003424f8:\n            (**(code **)(*param_3 + 0x28))(param_3);\n          }\n          param_10 = param_10 + 1;\n          param_4 = -1;\n        }\n        else {\n          do {\n            param_10 = param_10 + 1;\n            if (param_11 == param_10) break;\n            iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,*param_10);\n          } while (iVar3 != 0);\n          iVar3 = param_4;\n          if ((param_3 != (int *)0x0) && (param_4 == -1)) goto LAB_0034201c;\n          while( true ) {\n            bVar1 = param_4 == -1;\n            iVar4 = param_6;\n            if ((param_5 != (int *)0x0) && (param_6 == -1)) {\n              if ((int *)param_5[2] < (int *)param_5[3]) {\n                iVar4 = *(int *)param_5[2];\n                if (iVar4 == -1) {\n                  param_5 = (int *)0x0;\n                }\n              }\n              else {\n                iVar4 = (**(code **)(*param_5 + 0x24))(param_5);\n                if (iVar4 == -1) {\n                  param_5 = (int *)0x0;\n                }\n              }\n            }\n            param_4 = iVar3;\n            if ((iVar4 == -1) == bVar1) break;\n            if ((param_3 != (int *)0x0) && (iVar3 == -1)) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar3 = *(int *)param_3[2];\n                if (iVar3 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n              else {\n                iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n                if (iVar3 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n            }\n            iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,iVar3);\n            if (iVar3 == 0) break;\n            if ((uint)param_3[2] < (uint)param_3[3]) {\n              param_3[2] = param_3[2] + 4;\nLAB_0034201c:\n              piVar7 = (int *)param_3[2];\n              if (piVar7 < (int *)param_3[3]) goto LAB_00342030;\nLAB_003422d0:\n              param_4 = (**(code **)(*param_3 + 0x24))(param_3);\n            }\n            else {\n              (**(code **)(*param_3 + 0x28))(param_3);\n              piVar7 = (int *)param_3[2];\n              if ((int *)param_3[3] <= piVar7) goto LAB_003422d0;\nLAB_00342030:\n              param_4 = *piVar7;\n            }\n            iVar3 = -1;\n            if (param_4 == -1) {\n              param_3 = (int *)0x0;\n            }\n          }\n        }\n      }" else (compound_statement "{\n        iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,*param_10);\n        if (iVar3 == 0) {\n          iVar4 = param_4;\n          iVar3 = param_4;\n          if (param_3 == (int *)0x0) {\nLAB_00342380:\n            iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,iVar4);\n            iVar5 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n            if (iVar5 != iVar4) {\n              param_3 = (int *)0x0;\nLAB_00341ed0:\n              iVar3 = (**(code **)(*(int *)pcVar2 + 0x18))(pcVar2,iVar3);\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x18))(pcVar2,*param_10);\n              if (iVar4 != iVar3) {\nLAB_0034254c:\n                *param_8 = 4;\n                *param_1 = param_3;\n                param_1[1] = param_4;\n                return;\n              }\n              goto LAB_00341f00;\n            }\n            param_3 = (int *)0x0;\n            uVar6 = uRam00000008;\n            if (uRam0000000c <= uRam00000008) goto LAB_003424f8;\nLAB_00341f14:\n            param_3[2] = uVar6 + 4;\n          }\n          else {\n            if (param_4 == -1) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar4 = *(int *)param_3[2];\n              }\n              else {\n                iVar4 = (**(code **)(*param_3 + 0x24))(param_3,0xffffffff);\n              }\n              if (iVar4 == -1) goto LAB_00342380;\n              iVar3 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2);\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n              if (iVar3 != iVar4) {\n                if ((int *)param_3[2] < (int *)param_3[3]) {\n                  iVar3 = *(int *)param_3[2];\n                  if (iVar3 == -1) {\n                    param_3 = (int *)0x0;\n                  }\n                }\n                else {\n                  iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n                  if (iVar3 == -1) {\n                    param_3 = (int *)0x0;\n                  }\n                }\n                goto LAB_00341ed0;\n              }\n            }\n            else {\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2);\n              iVar5 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n              if (iVar5 != iVar4) goto LAB_00341ed0;\n            }\nLAB_00341f00:\n            uVar6 = param_3[2];\n            if ((uint)param_3[2] < (uint)param_3[3]) goto LAB_00341f14;\nLAB_003424f8:\n            (**(code **)(*param_3 + 0x28))(param_3);\n          }\n          param_10 = param_10 + 1;\n          param_4 = -1;\n        }\n        else {\n          do {\n            param_10 = param_10 + 1;\n            if (param_11 == param_10) break;\n            iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,*param_10);\n          } while (iVar3 != 0);\n          iVar3 = param_4;\n          if ((param_3 != (int *)0x0) && (param_4 == -1)) goto LAB_0034201c;\n          while( true ) {\n            bVar1 = param_4 == -1;\n            iVar4 = param_6;\n            if ((param_5 != (int *)0x0) && (param_6 == -1)) {\n              if ((int *)param_5[2] < (int *)param_5[3]) {\n                iVar4 = *(int *)param_5[2];\n                if (iVar4 == -1) {\n                  param_5 = (int *)0x0;\n                }\n              }\n              else {\n                iVar4 = (**(code **)(*param_5 + 0x24))(param_5);\n                if (iVar4 == -1) {\n                  param_5 = (int *)0x0;\n                }\n              }\n            }\n            param_4 = iVar3;\n            if ((iVar4 == -1) == bVar1) break;\n            if ((param_3 != (int *)0x0) && (iVar3 == -1)) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar3 = *(int *)param_3[2];\n                if (iVar3 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n              else {\n                iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n                if (iVar3 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n            }\n            iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,iVar3);\n            if (iVar3 == 0) break;\n            if ((uint)param_3[2] < (uint)param_3[3]) {\n              param_3[2] = param_3[2] + 4;\nLAB_0034201c:\n              piVar7 = (int *)param_3[2];\n              if (piVar7 < (int *)param_3[3]) goto LAB_00342030;\nLAB_003422d0:\n              param_4 = (**(code **)(*param_3 + 0x24))(param_3);\n            }\n            else {\n              (**(code **)(*param_3 + 0x28))(param_3);\n              piVar7 = (int *)param_3[2];\n              if ((int *)param_3[3] <= piVar7) goto LAB_003422d0;\nLAB_00342030:\n              param_4 = *piVar7;\n            }\n            iVar3 = -1;\n            if (param_4 == -1) {\n              param_3 = (int *)0x0;\n            }\n          }\n        }\n      }" { (expression_statement "iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,*param_10);" (assignment_expression "iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,*param_10)" identifier = (call_expression "(**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,*param_10)" (parenthesized_expression "(**(code **)(*(int *)pcVar2 + 8))" ( (pointer_expression "**(code **)(*(int *)pcVar2 + 8)" * (pointer_expression "*(code **)(*(int *)pcVar2 + 8)" * (cast_expression "(code **)(*(int *)pcVar2 + 8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)pcVar2 + 8)" ( (binary_expression "*(int *)pcVar2 + 8" (pointer_expression "*(int *)pcVar2" * (cast_expression "(int *)pcVar2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) )) (argument_list "(pcVar2,0x20,*param_10)" ( identifier , number_literal , (pointer_expression "*param_10" * identifier) )))) ;) (if_statement "if (iVar3 == 0) {\n          iVar4 = param_4;\n          iVar3 = param_4;\n          if (param_3 == (int *)0x0) {\nLAB_00342380:\n            iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,iVar4);\n            iVar5 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n            if (iVar5 != iVar4) {\n              param_3 = (int *)0x0;\nLAB_00341ed0:\n              iVar3 = (**(code **)(*(int *)pcVar2 + 0x18))(pcVar2,iVar3);\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x18))(pcVar2,*param_10);\n              if (iVar4 != iVar3) {\nLAB_0034254c:\n                *param_8 = 4;\n                *param_1 = param_3;\n                param_1[1] = param_4;\n                return;\n              }\n              goto LAB_00341f00;\n            }\n            param_3 = (int *)0x0;\n            uVar6 = uRam00000008;\n            if (uRam0000000c <= uRam00000008) goto LAB_003424f8;\nLAB_00341f14:\n            param_3[2] = uVar6 + 4;\n          }\n          else {\n            if (param_4 == -1) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar4 = *(int *)param_3[2];\n              }\n              else {\n                iVar4 = (**(code **)(*param_3 + 0x24))(param_3,0xffffffff);\n              }\n              if (iVar4 == -1) goto LAB_00342380;\n              iVar3 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2);\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n              if (iVar3 != iVar4) {\n                if ((int *)param_3[2] < (int *)param_3[3]) {\n                  iVar3 = *(int *)param_3[2];\n                  if (iVar3 == -1) {\n                    param_3 = (int *)0x0;\n                  }\n                }\n                else {\n                  iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n                  if (iVar3 == -1) {\n                    param_3 = (int *)0x0;\n                  }\n                }\n                goto LAB_00341ed0;\n              }\n            }\n            else {\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2);\n              iVar5 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n              if (iVar5 != iVar4) goto LAB_00341ed0;\n            }\nLAB_00341f00:\n            uVar6 = param_3[2];\n            if ((uint)param_3[2] < (uint)param_3[3]) goto LAB_00341f14;\nLAB_003424f8:\n            (**(code **)(*param_3 + 0x28))(param_3);\n          }\n          param_10 = param_10 + 1;\n          param_4 = -1;\n        }\n        else {\n          do {\n            param_10 = param_10 + 1;\n            if (param_11 == param_10) break;\n            iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,*param_10);\n          } while (iVar3 != 0);\n          iVar3 = param_4;\n          if ((param_3 != (int *)0x0) && (param_4 == -1)) goto LAB_0034201c;\n          while( true ) {\n            bVar1 = param_4 == -1;\n            iVar4 = param_6;\n            if ((param_5 != (int *)0x0) && (param_6 == -1)) {\n              if ((int *)param_5[2] < (int *)param_5[3]) {\n                iVar4 = *(int *)param_5[2];\n                if (iVar4 == -1) {\n                  param_5 = (int *)0x0;\n                }\n              }\n              else {\n                iVar4 = (**(code **)(*param_5 + 0x24))(param_5);\n                if (iVar4 == -1) {\n                  param_5 = (int *)0x0;\n                }\n              }\n            }\n            param_4 = iVar3;\n            if ((iVar4 == -1) == bVar1) break;\n            if ((param_3 != (int *)0x0) && (iVar3 == -1)) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar3 = *(int *)param_3[2];\n                if (iVar3 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n              else {\n                iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n                if (iVar3 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n            }\n            iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,iVar3);\n            if (iVar3 == 0) break;\n            if ((uint)param_3[2] < (uint)param_3[3]) {\n              param_3[2] = param_3[2] + 4;\nLAB_0034201c:\n              piVar7 = (int *)param_3[2];\n              if (piVar7 < (int *)param_3[3]) goto LAB_00342030;\nLAB_003422d0:\n              param_4 = (**(code **)(*param_3 + 0x24))(param_3);\n            }\n            else {\n              (**(code **)(*param_3 + 0x28))(param_3);\n              piVar7 = (int *)param_3[2];\n              if ((int *)param_3[3] <= piVar7) goto LAB_003422d0;\nLAB_00342030:\n              param_4 = *piVar7;\n            }\n            iVar3 = -1;\n            if (param_4 == -1) {\n              param_3 = (int *)0x0;\n            }\n          }\n        }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n          iVar4 = param_4;\n          iVar3 = param_4;\n          if (param_3 == (int *)0x0) {\nLAB_00342380:\n            iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,iVar4);\n            iVar5 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n            if (iVar5 != iVar4) {\n              param_3 = (int *)0x0;\nLAB_00341ed0:\n              iVar3 = (**(code **)(*(int *)pcVar2 + 0x18))(pcVar2,iVar3);\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x18))(pcVar2,*param_10);\n              if (iVar4 != iVar3) {\nLAB_0034254c:\n                *param_8 = 4;\n                *param_1 = param_3;\n                param_1[1] = param_4;\n                return;\n              }\n              goto LAB_00341f00;\n            }\n            param_3 = (int *)0x0;\n            uVar6 = uRam00000008;\n            if (uRam0000000c <= uRam00000008) goto LAB_003424f8;\nLAB_00341f14:\n            param_3[2] = uVar6 + 4;\n          }\n          else {\n            if (param_4 == -1) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar4 = *(int *)param_3[2];\n              }\n              else {\n                iVar4 = (**(code **)(*param_3 + 0x24))(param_3,0xffffffff);\n              }\n              if (iVar4 == -1) goto LAB_00342380;\n              iVar3 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2);\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n              if (iVar3 != iVar4) {\n                if ((int *)param_3[2] < (int *)param_3[3]) {\n                  iVar3 = *(int *)param_3[2];\n                  if (iVar3 == -1) {\n                    param_3 = (int *)0x0;\n                  }\n                }\n                else {\n                  iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n                  if (iVar3 == -1) {\n                    param_3 = (int *)0x0;\n                  }\n                }\n                goto LAB_00341ed0;\n              }\n            }\n            else {\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2);\n              iVar5 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n              if (iVar5 != iVar4) goto LAB_00341ed0;\n            }\nLAB_00341f00:\n            uVar6 = param_3[2];\n            if ((uint)param_3[2] < (uint)param_3[3]) goto LAB_00341f14;\nLAB_003424f8:\n            (**(code **)(*param_3 + 0x28))(param_3);\n          }\n          param_10 = param_10 + 1;\n          param_4 = -1;\n        }" { (expression_statement "iVar4 = param_4;" (assignment_expression "iVar4 = param_4" identifier = identifier) ;) (expression_statement "iVar3 = param_4;" (assignment_expression "iVar3 = param_4" identifier = identifier) ;) (if_statement "if (param_3 == (int *)0x0) {\nLAB_00342380:\n            iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,iVar4);\n            iVar5 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n            if (iVar5 != iVar4) {\n              param_3 = (int *)0x0;\nLAB_00341ed0:\n              iVar3 = (**(code **)(*(int *)pcVar2 + 0x18))(pcVar2,iVar3);\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x18))(pcVar2,*param_10);\n              if (iVar4 != iVar3) {\nLAB_0034254c:\n                *param_8 = 4;\n                *param_1 = param_3;\n                param_1[1] = param_4;\n                return;\n              }\n              goto LAB_00341f00;\n            }\n            param_3 = (int *)0x0;\n            uVar6 = uRam00000008;\n            if (uRam0000000c <= uRam00000008) goto LAB_003424f8;\nLAB_00341f14:\n            param_3[2] = uVar6 + 4;\n          }\n          else {\n            if (param_4 == -1) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar4 = *(int *)param_3[2];\n              }\n              else {\n                iVar4 = (**(code **)(*param_3 + 0x24))(param_3,0xffffffff);\n              }\n              if (iVar4 == -1) goto LAB_00342380;\n              iVar3 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2);\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n              if (iVar3 != iVar4) {\n                if ((int *)param_3[2] < (int *)param_3[3]) {\n                  iVar3 = *(int *)param_3[2];\n                  if (iVar3 == -1) {\n                    param_3 = (int *)0x0;\n                  }\n                }\n                else {\n                  iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n                  if (iVar3 == -1) {\n                    param_3 = (int *)0x0;\n                  }\n                }\n                goto LAB_00341ed0;\n              }\n            }\n            else {\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2);\n              iVar5 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n              if (iVar5 != iVar4) goto LAB_00341ed0;\n            }\nLAB_00341f00:\n            uVar6 = param_3[2];\n            if ((uint)param_3[2] < (uint)param_3[3]) goto LAB_00341f14;\nLAB_003424f8:\n            (**(code **)(*param_3 + 0x28))(param_3);\n          }" if (parenthesized_expression "(param_3 == (int *)0x0)" ( (binary_expression "param_3 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_00342380:\n            iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,iVar4);\n            iVar5 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n            if (iVar5 != iVar4) {\n              param_3 = (int *)0x0;\nLAB_00341ed0:\n              iVar3 = (**(code **)(*(int *)pcVar2 + 0x18))(pcVar2,iVar3);\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x18))(pcVar2,*param_10);\n              if (iVar4 != iVar3) {\nLAB_0034254c:\n                *param_8 = 4;\n                *param_1 = param_3;\n                param_1[1] = param_4;\n                return;\n              }\n              goto LAB_00341f00;\n            }\n            param_3 = (int *)0x0;\n            uVar6 = uRam00000008;\n            if (uRam0000000c <= uRam00000008) goto LAB_003424f8;\nLAB_00341f14:\n            param_3[2] = uVar6 + 4;\n          }" { (labeled_statement "LAB_00342380:\n            iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,iVar4);" statement_identifier : (expression_statement "iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,iVar4);" (assignment_expression "iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,iVar4)" identifier = (call_expression "(**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,iVar4)" (parenthesized_expression "(**(code **)(*(int *)pcVar2 + 0x20))" ( (pointer_expression "**(code **)(*(int *)pcVar2 + 0x20)" * (pointer_expression "*(code **)(*(int *)pcVar2 + 0x20)" * (cast_expression "(code **)(*(int *)pcVar2 + 0x20)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)pcVar2 + 0x20)" ( (binary_expression "*(int *)pcVar2 + 0x20" (pointer_expression "*(int *)pcVar2" * (cast_expression "(int *)pcVar2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) )) (argument_list "(pcVar2,iVar4)" ( identifier , identifier )))) ;)) (expression_statement "iVar5 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);" (assignment_expression "iVar5 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10)" identifier = (call_expression "(**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10)" (parenthesized_expression "(**(code **)(*(int *)pcVar2 + 0x20))" ( (pointer_expression "**(code **)(*(int *)pcVar2 + 0x20)" * (pointer_expression "*(code **)(*(int *)pcVar2 + 0x20)" * (cast_expression "(code **)(*(int *)pcVar2 + 0x20)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)pcVar2 + 0x20)" ( (binary_expression "*(int *)pcVar2 + 0x20" (pointer_expression "*(int *)pcVar2" * (cast_expression "(int *)pcVar2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) )) (argument_list "(pcVar2,*param_10)" ( identifier , (pointer_expression "*param_10" * identifier) )))) ;) (if_statement "if (iVar5 != iVar4) {\n              param_3 = (int *)0x0;\nLAB_00341ed0:\n              iVar3 = (**(code **)(*(int *)pcVar2 + 0x18))(pcVar2,iVar3);\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x18))(pcVar2,*param_10);\n              if (iVar4 != iVar3) {\nLAB_0034254c:\n                *param_8 = 4;\n                *param_1 = param_3;\n                param_1[1] = param_4;\n                return;\n              }\n              goto LAB_00341f00;\n            }" if (parenthesized_expression "(iVar5 != iVar4)" ( (binary_expression "iVar5 != iVar4" identifier != identifier) )) (compound_statement "{\n              param_3 = (int *)0x0;\nLAB_00341ed0:\n              iVar3 = (**(code **)(*(int *)pcVar2 + 0x18))(pcVar2,iVar3);\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x18))(pcVar2,*param_10);\n              if (iVar4 != iVar3) {\nLAB_0034254c:\n                *param_8 = 4;\n                *param_1 = param_3;\n                param_1[1] = param_4;\n                return;\n              }\n              goto LAB_00341f00;\n            }" { (expression_statement "param_3 = (int *)0x0;" (assignment_expression "param_3 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_00341ed0:\n              iVar3 = (**(code **)(*(int *)pcVar2 + 0x18))(pcVar2,iVar3);" statement_identifier : (expression_statement "iVar3 = (**(code **)(*(int *)pcVar2 + 0x18))(pcVar2,iVar3);" (assignment_expression "iVar3 = (**(code **)(*(int *)pcVar2 + 0x18))(pcVar2,iVar3)" identifier = (call_expression "(**(code **)(*(int *)pcVar2 + 0x18))(pcVar2,iVar3)" (parenthesized_expression "(**(code **)(*(int *)pcVar2 + 0x18))" ( (pointer_expression "**(code **)(*(int *)pcVar2 + 0x18)" * (pointer_expression "*(code **)(*(int *)pcVar2 + 0x18)" * (cast_expression "(code **)(*(int *)pcVar2 + 0x18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)pcVar2 + 0x18)" ( (binary_expression "*(int *)pcVar2 + 0x18" (pointer_expression "*(int *)pcVar2" * (cast_expression "(int *)pcVar2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) )) (argument_list "(pcVar2,iVar3)" ( identifier , identifier )))) ;)) (expression_statement "iVar4 = (**(code **)(*(int *)pcVar2 + 0x18))(pcVar2,*param_10);" (assignment_expression "iVar4 = (**(code **)(*(int *)pcVar2 + 0x18))(pcVar2,*param_10)" identifier = (call_expression "(**(code **)(*(int *)pcVar2 + 0x18))(pcVar2,*param_10)" (parenthesized_expression "(**(code **)(*(int *)pcVar2 + 0x18))" ( (pointer_expression "**(code **)(*(int *)pcVar2 + 0x18)" * (pointer_expression "*(code **)(*(int *)pcVar2 + 0x18)" * (cast_expression "(code **)(*(int *)pcVar2 + 0x18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)pcVar2 + 0x18)" ( (binary_expression "*(int *)pcVar2 + 0x18" (pointer_expression "*(int *)pcVar2" * (cast_expression "(int *)pcVar2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) )) (argument_list "(pcVar2,*param_10)" ( identifier , (pointer_expression "*param_10" * identifier) )))) ;) (if_statement "if (iVar4 != iVar3) {\nLAB_0034254c:\n                *param_8 = 4;\n                *param_1 = param_3;\n                param_1[1] = param_4;\n                return;\n              }" if (parenthesized_expression "(iVar4 != iVar3)" ( (binary_expression "iVar4 != iVar3" identifier != identifier) )) (compound_statement "{\nLAB_0034254c:\n                *param_8 = 4;\n                *param_1 = param_3;\n                param_1[1] = param_4;\n                return;\n              }" { (labeled_statement "LAB_0034254c:\n                *param_8 = 4;" statement_identifier : (expression_statement "*param_8 = 4;" (assignment_expression "*param_8 = 4" (pointer_expression "*param_8" * identifier) = number_literal) ;)) (expression_statement "*param_1 = param_3;" (assignment_expression "*param_1 = param_3" (pointer_expression "*param_1" * identifier) = identifier) ;) (expression_statement "param_1[1] = param_4;" (assignment_expression "param_1[1] = param_4" (subscript_expression "param_1[1]" identifier [ number_literal ]) = identifier) ;) (return_statement "return;" return ;) })) (goto_statement "goto LAB_00341f00;" goto statement_identifier ;) })) (expression_statement "param_3 = (int *)0x0;" (assignment_expression "param_3 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "uVar6 = uRam00000008;" (assignment_expression "uVar6 = uRam00000008" identifier = identifier) ;) (if_statement "if (uRam0000000c <= uRam00000008) goto LAB_003424f8;" if (parenthesized_expression "(uRam0000000c <= uRam00000008)" ( (binary_expression "uRam0000000c <= uRam00000008" identifier <= identifier) )) (goto_statement "goto LAB_003424f8;" goto statement_identifier ;)) (labeled_statement "LAB_00341f14:\n            param_3[2] = uVar6 + 4;" statement_identifier : (expression_statement "param_3[2] = uVar6 + 4;" (assignment_expression "param_3[2] = uVar6 + 4" (subscript_expression "param_3[2]" identifier [ number_literal ]) = (binary_expression "uVar6 + 4" identifier + number_literal)) ;)) }) (else_clause "else {\n            if (param_4 == -1) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar4 = *(int *)param_3[2];\n              }\n              else {\n                iVar4 = (**(code **)(*param_3 + 0x24))(param_3,0xffffffff);\n              }\n              if (iVar4 == -1) goto LAB_00342380;\n              iVar3 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2);\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n              if (iVar3 != iVar4) {\n                if ((int *)param_3[2] < (int *)param_3[3]) {\n                  iVar3 = *(int *)param_3[2];\n                  if (iVar3 == -1) {\n                    param_3 = (int *)0x0;\n                  }\n                }\n                else {\n                  iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n                  if (iVar3 == -1) {\n                    param_3 = (int *)0x0;\n                  }\n                }\n                goto LAB_00341ed0;\n              }\n            }\n            else {\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2);\n              iVar5 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n              if (iVar5 != iVar4) goto LAB_00341ed0;\n            }\nLAB_00341f00:\n            uVar6 = param_3[2];\n            if ((uint)param_3[2] < (uint)param_3[3]) goto LAB_00341f14;\nLAB_003424f8:\n            (**(code **)(*param_3 + 0x28))(param_3);\n          }" else (compound_statement "{\n            if (param_4 == -1) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar4 = *(int *)param_3[2];\n              }\n              else {\n                iVar4 = (**(code **)(*param_3 + 0x24))(param_3,0xffffffff);\n              }\n              if (iVar4 == -1) goto LAB_00342380;\n              iVar3 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2);\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n              if (iVar3 != iVar4) {\n                if ((int *)param_3[2] < (int *)param_3[3]) {\n                  iVar3 = *(int *)param_3[2];\n                  if (iVar3 == -1) {\n                    param_3 = (int *)0x0;\n                  }\n                }\n                else {\n                  iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n                  if (iVar3 == -1) {\n                    param_3 = (int *)0x0;\n                  }\n                }\n                goto LAB_00341ed0;\n              }\n            }\n            else {\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2);\n              iVar5 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n              if (iVar5 != iVar4) goto LAB_00341ed0;\n            }\nLAB_00341f00:\n            uVar6 = param_3[2];\n            if ((uint)param_3[2] < (uint)param_3[3]) goto LAB_00341f14;\nLAB_003424f8:\n            (**(code **)(*param_3 + 0x28))(param_3);\n          }" { (if_statement "if (param_4 == -1) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar4 = *(int *)param_3[2];\n              }\n              else {\n                iVar4 = (**(code **)(*param_3 + 0x24))(param_3,0xffffffff);\n              }\n              if (iVar4 == -1) goto LAB_00342380;\n              iVar3 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2);\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n              if (iVar3 != iVar4) {\n                if ((int *)param_3[2] < (int *)param_3[3]) {\n                  iVar3 = *(int *)param_3[2];\n                  if (iVar3 == -1) {\n                    param_3 = (int *)0x0;\n                  }\n                }\n                else {\n                  iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n                  if (iVar3 == -1) {\n                    param_3 = (int *)0x0;\n                  }\n                }\n                goto LAB_00341ed0;\n              }\n            }\n            else {\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2);\n              iVar5 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n              if (iVar5 != iVar4) goto LAB_00341ed0;\n            }" if (parenthesized_expression "(param_4 == -1)" ( (binary_expression "param_4 == -1" identifier == number_literal) )) (compound_statement "{\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar4 = *(int *)param_3[2];\n              }\n              else {\n                iVar4 = (**(code **)(*param_3 + 0x24))(param_3,0xffffffff);\n              }\n              if (iVar4 == -1) goto LAB_00342380;\n              iVar3 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2);\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n              if (iVar3 != iVar4) {\n                if ((int *)param_3[2] < (int *)param_3[3]) {\n                  iVar3 = *(int *)param_3[2];\n                  if (iVar3 == -1) {\n                    param_3 = (int *)0x0;\n                  }\n                }\n                else {\n                  iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n                  if (iVar3 == -1) {\n                    param_3 = (int *)0x0;\n                  }\n                }\n                goto LAB_00341ed0;\n              }\n            }" { (if_statement "if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar4 = *(int *)param_3[2];\n              }\n              else {\n                iVar4 = (**(code **)(*param_3 + 0x24))(param_3,0xffffffff);\n              }" if (parenthesized_expression "((int *)param_3[2] < (int *)param_3[3])" ( (binary_expression "(int *)param_3[2] < (int *)param_3[3]" (cast_expression "(int *)param_3[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[2]" identifier [ number_literal ])) < (cast_expression "(int *)param_3[3]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[3]" identifier [ number_literal ]))) )) (compound_statement "{\n                iVar4 = *(int *)param_3[2];\n              }" { (expression_statement "iVar4 = *(int *)param_3[2];" (assignment_expression "iVar4 = *(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 "*" *)) ) (subscript_expression "param_3[2]" identifier [ number_literal ])))) ;) }) (else_clause "else {\n                iVar4 = (**(code **)(*param_3 + 0x24))(param_3,0xffffffff);\n              }" else (compound_statement "{\n                iVar4 = (**(code **)(*param_3 + 0x24))(param_3,0xffffffff);\n              }" { (expression_statement "iVar4 = (**(code **)(*param_3 + 0x24))(param_3,0xffffffff);" (assignment_expression "iVar4 = (**(code **)(*param_3 + 0x24))(param_3,0xffffffff)" identifier = (call_expression "(**(code **)(*param_3 + 0x24))(param_3,0xffffffff)" (parenthesized_expression "(**(code **)(*param_3 + 0x24))" ( (pointer_expression "**(code **)(*param_3 + 0x24)" * (pointer_expression "*(code **)(*param_3 + 0x24)" * (cast_expression "(code **)(*param_3 + 0x24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_3 + 0x24)" ( (binary_expression "*param_3 + 0x24" (pointer_expression "*param_3" * identifier) + number_literal) ))))) )) (argument_list "(param_3,0xffffffff)" ( identifier , number_literal )))) ;) }))) (if_statement "if (iVar4 == -1) goto LAB_00342380;" if (parenthesized_expression "(iVar4 == -1)" ( (binary_expression "iVar4 == -1" identifier == number_literal) )) (goto_statement "goto LAB_00342380;" goto statement_identifier ;)) (expression_statement "iVar3 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2);" (assignment_expression "iVar3 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2)" identifier = (call_expression "(**(code **)(*(int *)pcVar2 + 0x20))(pcVar2)" (parenthesized_expression "(**(code **)(*(int *)pcVar2 + 0x20))" ( (pointer_expression "**(code **)(*(int *)pcVar2 + 0x20)" * (pointer_expression "*(code **)(*(int *)pcVar2 + 0x20)" * (cast_expression "(code **)(*(int *)pcVar2 + 0x20)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)pcVar2 + 0x20)" ( (binary_expression "*(int *)pcVar2 + 0x20" (pointer_expression "*(int *)pcVar2" * (cast_expression "(int *)pcVar2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) )) (argument_list "(pcVar2)" ( identifier )))) ;) (expression_statement "iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);" (assignment_expression "iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10)" identifier = (call_expression "(**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10)" (parenthesized_expression "(**(code **)(*(int *)pcVar2 + 0x20))" ( (pointer_expression "**(code **)(*(int *)pcVar2 + 0x20)" * (pointer_expression "*(code **)(*(int *)pcVar2 + 0x20)" * (cast_expression "(code **)(*(int *)pcVar2 + 0x20)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)pcVar2 + 0x20)" ( (binary_expression "*(int *)pcVar2 + 0x20" (pointer_expression "*(int *)pcVar2" * (cast_expression "(int *)pcVar2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) )) (argument_list "(pcVar2,*param_10)" ( identifier , (pointer_expression "*param_10" * identifier) )))) ;) (if_statement "if (iVar3 != iVar4) {\n                if ((int *)param_3[2] < (int *)param_3[3]) {\n                  iVar3 = *(int *)param_3[2];\n                  if (iVar3 == -1) {\n                    param_3 = (int *)0x0;\n                  }\n                }\n                else {\n                  iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n                  if (iVar3 == -1) {\n                    param_3 = (int *)0x0;\n                  }\n                }\n                goto LAB_00341ed0;\n              }" if (parenthesized_expression "(iVar3 != iVar4)" ( (binary_expression "iVar3 != iVar4" identifier != identifier) )) (compound_statement "{\n                if ((int *)param_3[2] < (int *)param_3[3]) {\n                  iVar3 = *(int *)param_3[2];\n                  if (iVar3 == -1) {\n                    param_3 = (int *)0x0;\n                  }\n                }\n                else {\n                  iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n                  if (iVar3 == -1) {\n                    param_3 = (int *)0x0;\n                  }\n                }\n                goto LAB_00341ed0;\n              }" { (if_statement "if ((int *)param_3[2] < (int *)param_3[3]) {\n                  iVar3 = *(int *)param_3[2];\n                  if (iVar3 == -1) {\n                    param_3 = (int *)0x0;\n                  }\n                }\n                else {\n                  iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n                  if (iVar3 == -1) {\n                    param_3 = (int *)0x0;\n                  }\n                }" if (parenthesized_expression "((int *)param_3[2] < (int *)param_3[3])" ( (binary_expression "(int *)param_3[2] < (int *)param_3[3]" (cast_expression "(int *)param_3[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[2]" identifier [ number_literal ])) < (cast_expression "(int *)param_3[3]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[3]" identifier [ number_literal ]))) )) (compound_statement "{\n                  iVar3 = *(int *)param_3[2];\n                  if (iVar3 == -1) {\n                    param_3 = (int *)0x0;\n                  }\n                }" { (expression_statement "iVar3 = *(int *)param_3[2];" (assignment_expression "iVar3 = *(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 "*" *)) ) (subscript_expression "param_3[2]" identifier [ number_literal ])))) ;) (if_statement "if (iVar3 == -1) {\n                    param_3 = (int *)0x0;\n                  }" if (parenthesized_expression "(iVar3 == -1)" ( (binary_expression "iVar3 == -1" identifier == number_literal) )) (compound_statement "{\n                    param_3 = (int *)0x0;\n                  }" { (expression_statement "param_3 = (int *)0x0;" (assignment_expression "param_3 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) }) (else_clause "else {\n                  iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n                  if (iVar3 == -1) {\n                    param_3 = (int *)0x0;\n                  }\n                }" else (compound_statement "{\n                  iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n                  if (iVar3 == -1) {\n                    param_3 = (int *)0x0;\n                  }\n                }" { (expression_statement "iVar3 = (**(code **)(*param_3 + 0x24))(param_3);" (assignment_expression "iVar3 = (**(code **)(*param_3 + 0x24))(param_3)" identifier = (call_expression "(**(code **)(*param_3 + 0x24))(param_3)" (parenthesized_expression "(**(code **)(*param_3 + 0x24))" ( (pointer_expression "**(code **)(*param_3 + 0x24)" * (pointer_expression "*(code **)(*param_3 + 0x24)" * (cast_expression "(code **)(*param_3 + 0x24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_3 + 0x24)" ( (binary_expression "*param_3 + 0x24" (pointer_expression "*param_3" * identifier) + number_literal) ))))) )) (argument_list "(param_3)" ( identifier )))) ;) (if_statement "if (iVar3 == -1) {\n                    param_3 = (int *)0x0;\n                  }" if (parenthesized_expression "(iVar3 == -1)" ( (binary_expression "iVar3 == -1" identifier == number_literal) )) (compound_statement "{\n                    param_3 = (int *)0x0;\n                  }" { (expression_statement "param_3 = (int *)0x0;" (assignment_expression "param_3 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) }))) (goto_statement "goto LAB_00341ed0;" goto statement_identifier ;) })) }) (else_clause "else {\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2);\n              iVar5 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n              if (iVar5 != iVar4) goto LAB_00341ed0;\n            }" else (compound_statement "{\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2);\n              iVar5 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n              if (iVar5 != iVar4) goto LAB_00341ed0;\n            }" { (expression_statement "iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2);" (assignment_expression "iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2)" identifier = (call_expression "(**(code **)(*(int *)pcVar2 + 0x20))(pcVar2)" (parenthesized_expression "(**(code **)(*(int *)pcVar2 + 0x20))" ( (pointer_expression "**(code **)(*(int *)pcVar2 + 0x20)" * (pointer_expression "*(code **)(*(int *)pcVar2 + 0x20)" * (cast_expression "(code **)(*(int *)pcVar2 + 0x20)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)pcVar2 + 0x20)" ( (binary_expression "*(int *)pcVar2 + 0x20" (pointer_expression "*(int *)pcVar2" * (cast_expression "(int *)pcVar2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) )) (argument_list "(pcVar2)" ( identifier )))) ;) (expression_statement "iVar5 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);" (assignment_expression "iVar5 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10)" identifier = (call_expression "(**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10)" (parenthesized_expression "(**(code **)(*(int *)pcVar2 + 0x20))" ( (pointer_expression "**(code **)(*(int *)pcVar2 + 0x20)" * (pointer_expression "*(code **)(*(int *)pcVar2 + 0x20)" * (cast_expression "(code **)(*(int *)pcVar2 + 0x20)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)pcVar2 + 0x20)" ( (binary_expression "*(int *)pcVar2 + 0x20" (pointer_expression "*(int *)pcVar2" * (cast_expression "(int *)pcVar2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) )) (argument_list "(pcVar2,*param_10)" ( identifier , (pointer_expression "*param_10" * identifier) )))) ;) (if_statement "if (iVar5 != iVar4) goto LAB_00341ed0;" if (parenthesized_expression "(iVar5 != iVar4)" ( (binary_expression "iVar5 != iVar4" identifier != identifier) )) (goto_statement "goto LAB_00341ed0;" goto statement_identifier ;)) }))) (labeled_statement "LAB_00341f00:\n            uVar6 = param_3[2];" statement_identifier : (expression_statement "uVar6 = param_3[2];" (assignment_expression "uVar6 = param_3[2]" identifier = (subscript_expression "param_3[2]" identifier [ number_literal ])) ;)) (if_statement "if ((uint)param_3[2] < (uint)param_3[3]) goto LAB_00341f14;" if (parenthesized_expression "((uint)param_3[2] < (uint)param_3[3])" ( (binary_expression "(uint)param_3[2] < (uint)param_3[3]" (cast_expression "(uint)param_3[2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_3[2]" identifier [ number_literal ])) < (cast_expression "(uint)param_3[3]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_3[3]" identifier [ number_literal ]))) )) (goto_statement "goto LAB_00341f14;" goto statement_identifier ;)) (labeled_statement "LAB_003424f8:\n            (**(code **)(*param_3 + 0x28))(param_3);" statement_identifier : (expression_statement "(**(code **)(*param_3 + 0x28))(param_3);" (call_expression "(**(code **)(*param_3 + 0x28))(param_3)" (parenthesized_expression "(**(code **)(*param_3 + 0x28))" ( (pointer_expression "**(code **)(*param_3 + 0x28)" * (pointer_expression "*(code **)(*param_3 + 0x28)" * (cast_expression "(code **)(*param_3 + 0x28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_3 + 0x28)" ( (binary_expression "*param_3 + 0x28" (pointer_expression "*param_3" * identifier) + number_literal) ))))) )) (argument_list "(param_3)" ( identifier ))) ;)) }))) (expression_statement "param_10 = param_10 + 1;" (assignment_expression "param_10 = param_10 + 1" identifier = (binary_expression "param_10 + 1" identifier + number_literal)) ;) (expression_statement "param_4 = -1;" (assignment_expression "param_4 = -1" identifier = number_literal) ;) }) (else_clause "else {\n          do {\n            param_10 = param_10 + 1;\n            if (param_11 == param_10) break;\n            iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,*param_10);\n          } while (iVar3 != 0);\n          iVar3 = param_4;\n          if ((param_3 != (int *)0x0) && (param_4 == -1)) goto LAB_0034201c;\n          while( true ) {\n            bVar1 = param_4 == -1;\n            iVar4 = param_6;\n            if ((param_5 != (int *)0x0) && (param_6 == -1)) {\n              if ((int *)param_5[2] < (int *)param_5[3]) {\n                iVar4 = *(int *)param_5[2];\n                if (iVar4 == -1) {\n                  param_5 = (int *)0x0;\n                }\n              }\n              else {\n                iVar4 = (**(code **)(*param_5 + 0x24))(param_5);\n                if (iVar4 == -1) {\n                  param_5 = (int *)0x0;\n                }\n              }\n            }\n            param_4 = iVar3;\n            if ((iVar4 == -1) == bVar1) break;\n            if ((param_3 != (int *)0x0) && (iVar3 == -1)) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar3 = *(int *)param_3[2];\n                if (iVar3 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n              else {\n                iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n                if (iVar3 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n            }\n            iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,iVar3);\n            if (iVar3 == 0) break;\n            if ((uint)param_3[2] < (uint)param_3[3]) {\n              param_3[2] = param_3[2] + 4;\nLAB_0034201c:\n              piVar7 = (int *)param_3[2];\n              if (piVar7 < (int *)param_3[3]) goto LAB_00342030;\nLAB_003422d0:\n              param_4 = (**(code **)(*param_3 + 0x24))(param_3);\n            }\n            else {\n              (**(code **)(*param_3 + 0x28))(param_3);\n              piVar7 = (int *)param_3[2];\n              if ((int *)param_3[3] <= piVar7) goto LAB_003422d0;\nLAB_00342030:\n              param_4 = *piVar7;\n            }\n            iVar3 = -1;\n            if (param_4 == -1) {\n              param_3 = (int *)0x0;\n            }\n          }\n        }" else (compound_statement "{\n          do {\n            param_10 = param_10 + 1;\n            if (param_11 == param_10) break;\n            iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,*param_10);\n          } while (iVar3 != 0);\n          iVar3 = param_4;\n          if ((param_3 != (int *)0x0) && (param_4 == -1)) goto LAB_0034201c;\n          while( true ) {\n            bVar1 = param_4 == -1;\n            iVar4 = param_6;\n            if ((param_5 != (int *)0x0) && (param_6 == -1)) {\n              if ((int *)param_5[2] < (int *)param_5[3]) {\n                iVar4 = *(int *)param_5[2];\n                if (iVar4 == -1) {\n                  param_5 = (int *)0x0;\n                }\n              }\n              else {\n                iVar4 = (**(code **)(*param_5 + 0x24))(param_5);\n                if (iVar4 == -1) {\n                  param_5 = (int *)0x0;\n                }\n              }\n            }\n            param_4 = iVar3;\n            if ((iVar4 == -1) == bVar1) break;\n            if ((param_3 != (int *)0x0) && (iVar3 == -1)) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar3 = *(int *)param_3[2];\n                if (iVar3 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n              else {\n                iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n                if (iVar3 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n            }\n            iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,iVar3);\n            if (iVar3 == 0) break;\n            if ((uint)param_3[2] < (uint)param_3[3]) {\n              param_3[2] = param_3[2] + 4;\nLAB_0034201c:\n              piVar7 = (int *)param_3[2];\n              if (piVar7 < (int *)param_3[3]) goto LAB_00342030;\nLAB_003422d0:\n              param_4 = (**(code **)(*param_3 + 0x24))(param_3);\n            }\n            else {\n              (**(code **)(*param_3 + 0x28))(param_3);\n              piVar7 = (int *)param_3[2];\n              if ((int *)param_3[3] <= piVar7) goto LAB_003422d0;\nLAB_00342030:\n              param_4 = *piVar7;\n            }\n            iVar3 = -1;\n            if (param_4 == -1) {\n              param_3 = (int *)0x0;\n            }\n          }\n        }" { (do_statement "do {\n            param_10 = param_10 + 1;\n            if (param_11 == param_10) break;\n            iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,*param_10);\n          } while (iVar3 != 0);" do (compound_statement "{\n            param_10 = param_10 + 1;\n            if (param_11 == param_10) break;\n            iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,*param_10);\n          }" { (expression_statement "param_10 = param_10 + 1;" (assignment_expression "param_10 = param_10 + 1" identifier = (binary_expression "param_10 + 1" identifier + number_literal)) ;) (if_statement "if (param_11 == param_10) break;" if (parenthesized_expression "(param_11 == param_10)" ( (binary_expression "param_11 == param_10" identifier == identifier) )) (break_statement "break;" break ;)) (expression_statement "iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,*param_10);" (assignment_expression "iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,*param_10)" identifier = (call_expression "(**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,*param_10)" (parenthesized_expression "(**(code **)(*(int *)pcVar2 + 8))" ( (pointer_expression "**(code **)(*(int *)pcVar2 + 8)" * (pointer_expression "*(code **)(*(int *)pcVar2 + 8)" * (cast_expression "(code **)(*(int *)pcVar2 + 8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)pcVar2 + 8)" ( (binary_expression "*(int *)pcVar2 + 8" (pointer_expression "*(int *)pcVar2" * (cast_expression "(int *)pcVar2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) )) (argument_list "(pcVar2,0x20,*param_10)" ( identifier , number_literal , (pointer_expression "*param_10" * identifier) )))) ;) }) while (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) ;) (expression_statement "iVar3 = param_4;" (assignment_expression "iVar3 = param_4" identifier = identifier) ;) (if_statement "if ((param_3 != (int *)0x0) && (param_4 == -1)) goto LAB_0034201c;" if (parenthesized_expression "((param_3 != (int *)0x0) && (param_4 == -1))" ( (binary_expression "(param_3 != (int *)0x0) && (param_4 == -1)" (parenthesized_expression "(param_3 != (int *)0x0)" ( (binary_expression "param_3 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(param_4 == -1)" ( (binary_expression "param_4 == -1" identifier == number_literal) ))) )) (goto_statement "goto LAB_0034201c;" goto statement_identifier ;)) (while_statement "while( true ) {\n            bVar1 = param_4 == -1;\n            iVar4 = param_6;\n            if ((param_5 != (int *)0x0) && (param_6 == -1)) {\n              if ((int *)param_5[2] < (int *)param_5[3]) {\n                iVar4 = *(int *)param_5[2];\n                if (iVar4 == -1) {\n                  param_5 = (int *)0x0;\n                }\n              }\n              else {\n                iVar4 = (**(code **)(*param_5 + 0x24))(param_5);\n                if (iVar4 == -1) {\n                  param_5 = (int *)0x0;\n                }\n              }\n            }\n            param_4 = iVar3;\n            if ((iVar4 == -1) == bVar1) break;\n            if ((param_3 != (int *)0x0) && (iVar3 == -1)) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar3 = *(int *)param_3[2];\n                if (iVar3 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n              else {\n                iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n                if (iVar3 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n            }\n            iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,iVar3);\n            if (iVar3 == 0) break;\n            if ((uint)param_3[2] < (uint)param_3[3]) {\n              param_3[2] = param_3[2] + 4;\nLAB_0034201c:\n              piVar7 = (int *)param_3[2];\n              if (piVar7 < (int *)param_3[3]) goto LAB_00342030;\nLAB_003422d0:\n              param_4 = (**(code **)(*param_3 + 0x24))(param_3);\n            }\n            else {\n              (**(code **)(*param_3 + 0x28))(param_3);\n              piVar7 = (int *)param_3[2];\n              if ((int *)param_3[3] <= piVar7) goto LAB_003422d0;\nLAB_00342030:\n              param_4 = *piVar7;\n            }\n            iVar3 = -1;\n            if (param_4 == -1) {\n              param_3 = (int *)0x0;\n            }\n          }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n            bVar1 = param_4 == -1;\n            iVar4 = param_6;\n            if ((param_5 != (int *)0x0) && (param_6 == -1)) {\n              if ((int *)param_5[2] < (int *)param_5[3]) {\n                iVar4 = *(int *)param_5[2];\n                if (iVar4 == -1) {\n                  param_5 = (int *)0x0;\n                }\n              }\n              else {\n                iVar4 = (**(code **)(*param_5 + 0x24))(param_5);\n                if (iVar4 == -1) {\n                  param_5 = (int *)0x0;\n                }\n              }\n            }\n            param_4 = iVar3;\n            if ((iVar4 == -1) == bVar1) break;\n            if ((param_3 != (int *)0x0) && (iVar3 == -1)) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar3 = *(int *)param_3[2];\n                if (iVar3 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n              else {\n                iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n                if (iVar3 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n            }\n            iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,iVar3);\n            if (iVar3 == 0) break;\n            if ((uint)param_3[2] < (uint)param_3[3]) {\n              param_3[2] = param_3[2] + 4;\nLAB_0034201c:\n              piVar7 = (int *)param_3[2];\n              if (piVar7 < (int *)param_3[3]) goto LAB_00342030;\nLAB_003422d0:\n              param_4 = (**(code **)(*param_3 + 0x24))(param_3);\n            }\n            else {\n              (**(code **)(*param_3 + 0x28))(param_3);\n              piVar7 = (int *)param_3[2];\n              if ((int *)param_3[3] <= piVar7) goto LAB_003422d0;\nLAB_00342030:\n              param_4 = *piVar7;\n            }\n            iVar3 = -1;\n            if (param_4 == -1) {\n              param_3 = (int *)0x0;\n            }\n          }" { (expression_statement "bVar1 = param_4 == -1;" (assignment_expression "bVar1 = param_4 == -1" identifier = (binary_expression "param_4 == -1" identifier == number_literal)) ;) (expression_statement "iVar4 = param_6;" (assignment_expression "iVar4 = param_6" identifier = identifier) ;) (if_statement "if ((param_5 != (int *)0x0) && (param_6 == -1)) {\n              if ((int *)param_5[2] < (int *)param_5[3]) {\n                iVar4 = *(int *)param_5[2];\n                if (iVar4 == -1) {\n                  param_5 = (int *)0x0;\n                }\n              }\n              else {\n                iVar4 = (**(code **)(*param_5 + 0x24))(param_5);\n                if (iVar4 == -1) {\n                  param_5 = (int *)0x0;\n                }\n              }\n            }" if (parenthesized_expression "((param_5 != (int *)0x0) && (param_6 == -1))" ( (binary_expression "(param_5 != (int *)0x0) && (param_6 == -1)" (parenthesized_expression "(param_5 != (int *)0x0)" ( (binary_expression "param_5 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(param_6 == -1)" ( (binary_expression "param_6 == -1" identifier == number_literal) ))) )) (compound_statement "{\n              if ((int *)param_5[2] < (int *)param_5[3]) {\n                iVar4 = *(int *)param_5[2];\n                if (iVar4 == -1) {\n                  param_5 = (int *)0x0;\n                }\n              }\n              else {\n                iVar4 = (**(code **)(*param_5 + 0x24))(param_5);\n                if (iVar4 == -1) {\n                  param_5 = (int *)0x0;\n                }\n              }\n            }" { (if_statement "if ((int *)param_5[2] < (int *)param_5[3]) {\n                iVar4 = *(int *)param_5[2];\n                if (iVar4 == -1) {\n                  param_5 = (int *)0x0;\n                }\n              }\n              else {\n                iVar4 = (**(code **)(*param_5 + 0x24))(param_5);\n                if (iVar4 == -1) {\n                  param_5 = (int *)0x0;\n                }\n              }" if (parenthesized_expression "((int *)param_5[2] < (int *)param_5[3])" ( (binary_expression "(int *)param_5[2] < (int *)param_5[3]" (cast_expression "(int *)param_5[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_5[2]" identifier [ number_literal ])) < (cast_expression "(int *)param_5[3]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_5[3]" identifier [ number_literal ]))) )) (compound_statement "{\n                iVar4 = *(int *)param_5[2];\n                if (iVar4 == -1) {\n                  param_5 = (int *)0x0;\n                }\n              }" { (expression_statement "iVar4 = *(int *)param_5[2];" (assignment_expression "iVar4 = *(int *)param_5[2]" identifier = (pointer_expression "*(int *)param_5[2]" * (cast_expression "(int *)param_5[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_5[2]" identifier [ number_literal ])))) ;) (if_statement "if (iVar4 == -1) {\n                  param_5 = (int *)0x0;\n                }" if (parenthesized_expression "(iVar4 == -1)" ( (binary_expression "iVar4 == -1" identifier == number_literal) )) (compound_statement "{\n                  param_5 = (int *)0x0;\n                }" { (expression_statement "param_5 = (int *)0x0;" (assignment_expression "param_5 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) }) (else_clause "else {\n                iVar4 = (**(code **)(*param_5 + 0x24))(param_5);\n                if (iVar4 == -1) {\n                  param_5 = (int *)0x0;\n                }\n              }" else (compound_statement "{\n                iVar4 = (**(code **)(*param_5 + 0x24))(param_5);\n                if (iVar4 == -1) {\n                  param_5 = (int *)0x0;\n                }\n              }" { (expression_statement "iVar4 = (**(code **)(*param_5 + 0x24))(param_5);" (assignment_expression "iVar4 = (**(code **)(*param_5 + 0x24))(param_5)" identifier = (call_expression "(**(code **)(*param_5 + 0x24))(param_5)" (parenthesized_expression "(**(code **)(*param_5 + 0x24))" ( (pointer_expression "**(code **)(*param_5 + 0x24)" * (pointer_expression "*(code **)(*param_5 + 0x24)" * (cast_expression "(code **)(*param_5 + 0x24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_5 + 0x24)" ( (binary_expression "*param_5 + 0x24" (pointer_expression "*param_5" * identifier) + number_literal) ))))) )) (argument_list "(param_5)" ( identifier )))) ;) (if_statement "if (iVar4 == -1) {\n                  param_5 = (int *)0x0;\n                }" if (parenthesized_expression "(iVar4 == -1)" ( (binary_expression "iVar4 == -1" identifier == number_literal) )) (compound_statement "{\n                  param_5 = (int *)0x0;\n                }" { (expression_statement "param_5 = (int *)0x0;" (assignment_expression "param_5 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) }))) })) (expression_statement "param_4 = iVar3;" (assignment_expression "param_4 = iVar3" identifier = identifier) ;) (if_statement "if ((iVar4 == -1) == bVar1) break;" if (parenthesized_expression "((iVar4 == -1) == bVar1)" ( (binary_expression "(iVar4 == -1) == bVar1" (parenthesized_expression "(iVar4 == -1)" ( (binary_expression "iVar4 == -1" identifier == number_literal) )) == identifier) )) (break_statement "break;" break ;)) (if_statement "if ((param_3 != (int *)0x0) && (iVar3 == -1)) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar3 = *(int *)param_3[2];\n                if (iVar3 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n              else {\n                iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n                if (iVar3 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n            }" if (parenthesized_expression "((param_3 != (int *)0x0) && (iVar3 == -1))" ( (binary_expression "(param_3 != (int *)0x0) && (iVar3 == -1)" (parenthesized_expression "(param_3 != (int *)0x0)" ( (binary_expression "param_3 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(iVar3 == -1)" ( (binary_expression "iVar3 == -1" identifier == number_literal) ))) )) (compound_statement "{\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar3 = *(int *)param_3[2];\n                if (iVar3 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n              else {\n                iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n                if (iVar3 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n            }" { (if_statement "if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar3 = *(int *)param_3[2];\n                if (iVar3 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n              else {\n                iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n                if (iVar3 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }" if (parenthesized_expression "((int *)param_3[2] < (int *)param_3[3])" ( (binary_expression "(int *)param_3[2] < (int *)param_3[3]" (cast_expression "(int *)param_3[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[2]" identifier [ number_literal ])) < (cast_expression "(int *)param_3[3]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[3]" identifier [ number_literal ]))) )) (compound_statement "{\n                iVar3 = *(int *)param_3[2];\n                if (iVar3 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }" { (expression_statement "iVar3 = *(int *)param_3[2];" (assignment_expression "iVar3 = *(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 "*" *)) ) (subscript_expression "param_3[2]" identifier [ number_literal ])))) ;) (if_statement "if (iVar3 == -1) {\n                  param_3 = (int *)0x0;\n                }" if (parenthesized_expression "(iVar3 == -1)" ( (binary_expression "iVar3 == -1" identifier == number_literal) )) (compound_statement "{\n                  param_3 = (int *)0x0;\n                }" { (expression_statement "param_3 = (int *)0x0;" (assignment_expression "param_3 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) }) (else_clause "else {\n                iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n                if (iVar3 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }" else (compound_statement "{\n                iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n                if (iVar3 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }" { (expression_statement "iVar3 = (**(code **)(*param_3 + 0x24))(param_3);" (assignment_expression "iVar3 = (**(code **)(*param_3 + 0x24))(param_3)" identifier = (call_expression "(**(code **)(*param_3 + 0x24))(param_3)" (parenthesized_expression "(**(code **)(*param_3 + 0x24))" ( (pointer_expression "**(code **)(*param_3 + 0x24)" * (pointer_expression "*(code **)(*param_3 + 0x24)" * (cast_expression "(code **)(*param_3 + 0x24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_3 + 0x24)" ( (binary_expression "*param_3 + 0x24" (pointer_expression "*param_3" * identifier) + number_literal) ))))) )) (argument_list "(param_3)" ( identifier )))) ;) (if_statement "if (iVar3 == -1) {\n                  param_3 = (int *)0x0;\n                }" if (parenthesized_expression "(iVar3 == -1)" ( (binary_expression "iVar3 == -1" identifier == number_literal) )) (compound_statement "{\n                  param_3 = (int *)0x0;\n                }" { (expression_statement "param_3 = (int *)0x0;" (assignment_expression "param_3 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) }))) })) (expression_statement "iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,iVar3);" (assignment_expression "iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,iVar3)" identifier = (call_expression "(**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,iVar3)" (parenthesized_expression "(**(code **)(*(int *)pcVar2 + 8))" ( (pointer_expression "**(code **)(*(int *)pcVar2 + 8)" * (pointer_expression "*(code **)(*(int *)pcVar2 + 8)" * (cast_expression "(code **)(*(int *)pcVar2 + 8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)pcVar2 + 8)" ( (binary_expression "*(int *)pcVar2 + 8" (pointer_expression "*(int *)pcVar2" * (cast_expression "(int *)pcVar2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) )) (argument_list "(pcVar2,0x20,iVar3)" ( identifier , number_literal , identifier )))) ;) (if_statement "if (iVar3 == 0) break;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (if_statement "if ((uint)param_3[2] < (uint)param_3[3]) {\n              param_3[2] = param_3[2] + 4;\nLAB_0034201c:\n              piVar7 = (int *)param_3[2];\n              if (piVar7 < (int *)param_3[3]) goto LAB_00342030;\nLAB_003422d0:\n              param_4 = (**(code **)(*param_3 + 0x24))(param_3);\n            }\n            else {\n              (**(code **)(*param_3 + 0x28))(param_3);\n              piVar7 = (int *)param_3[2];\n              if ((int *)param_3[3] <= piVar7) goto LAB_003422d0;\nLAB_00342030:\n              param_4 = *piVar7;\n            }" if (parenthesized_expression "((uint)param_3[2] < (uint)param_3[3])" ( (binary_expression "(uint)param_3[2] < (uint)param_3[3]" (cast_expression "(uint)param_3[2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_3[2]" identifier [ number_literal ])) < (cast_expression "(uint)param_3[3]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_3[3]" identifier [ number_literal ]))) )) (compound_statement "{\n              param_3[2] = param_3[2] + 4;\nLAB_0034201c:\n              piVar7 = (int *)param_3[2];\n              if (piVar7 < (int *)param_3[3]) goto LAB_00342030;\nLAB_003422d0:\n              param_4 = (**(code **)(*param_3 + 0x24))(param_3);\n            }" { (expression_statement "param_3[2] = param_3[2] + 4;" (assignment_expression "param_3[2] = param_3[2] + 4" (subscript_expression "param_3[2]" identifier [ number_literal ]) = (binary_expression "param_3[2] + 4" (subscript_expression "param_3[2]" identifier [ number_literal ]) + number_literal)) ;) (labeled_statement "LAB_0034201c:\n              piVar7 = (int *)param_3[2];" statement_identifier : (expression_statement "piVar7 = (int *)param_3[2];" (assignment_expression "piVar7 = (int *)param_3[2]" identifier = (cast_expression "(int *)param_3[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[2]" identifier [ number_literal ]))) ;)) (if_statement "if (piVar7 < (int *)param_3[3]) goto LAB_00342030;" if (parenthesized_expression "(piVar7 < (int *)param_3[3])" ( (binary_expression "piVar7 < (int *)param_3[3]" identifier < (cast_expression "(int *)param_3[3]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[3]" identifier [ number_literal ]))) )) (goto_statement "goto LAB_00342030;" goto statement_identifier ;)) (labeled_statement "LAB_003422d0:\n              param_4 = (**(code **)(*param_3 + 0x24))(param_3);" statement_identifier : (expression_statement "param_4 = (**(code **)(*param_3 + 0x24))(param_3);" (assignment_expression "param_4 = (**(code **)(*param_3 + 0x24))(param_3)" identifier = (call_expression "(**(code **)(*param_3 + 0x24))(param_3)" (parenthesized_expression "(**(code **)(*param_3 + 0x24))" ( (pointer_expression "**(code **)(*param_3 + 0x24)" * (pointer_expression "*(code **)(*param_3 + 0x24)" * (cast_expression "(code **)(*param_3 + 0x24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_3 + 0x24)" ( (binary_expression "*param_3 + 0x24" (pointer_expression "*param_3" * identifier) + number_literal) ))))) )) (argument_list "(param_3)" ( identifier )))) ;)) }) (else_clause "else {\n              (**(code **)(*param_3 + 0x28))(param_3);\n              piVar7 = (int *)param_3[2];\n              if ((int *)param_3[3] <= piVar7) goto LAB_003422d0;\nLAB_00342030:\n              param_4 = *piVar7;\n            }" else (compound_statement "{\n              (**(code **)(*param_3 + 0x28))(param_3);\n              piVar7 = (int *)param_3[2];\n              if ((int *)param_3[3] <= piVar7) goto LAB_003422d0;\nLAB_00342030:\n              param_4 = *piVar7;\n            }" { (expression_statement "(**(code **)(*param_3 + 0x28))(param_3);" (call_expression "(**(code **)(*param_3 + 0x28))(param_3)" (parenthesized_expression "(**(code **)(*param_3 + 0x28))" ( (pointer_expression "**(code **)(*param_3 + 0x28)" * (pointer_expression "*(code **)(*param_3 + 0x28)" * (cast_expression "(code **)(*param_3 + 0x28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_3 + 0x28)" ( (binary_expression "*param_3 + 0x28" (pointer_expression "*param_3" * identifier) + number_literal) ))))) )) (argument_list "(param_3)" ( identifier ))) ;) (expression_statement "piVar7 = (int *)param_3[2];" (assignment_expression "piVar7 = (int *)param_3[2]" identifier = (cast_expression "(int *)param_3[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[2]" identifier [ number_literal ]))) ;) (if_statement "if ((int *)param_3[3] <= piVar7) goto LAB_003422d0;" if (parenthesized_expression "((int *)param_3[3] <= piVar7)" ( (binary_expression "(int *)param_3[3] <= piVar7" (cast_expression "(int *)param_3[3]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[3]" identifier [ number_literal ])) <= identifier) )) (goto_statement "goto LAB_003422d0;" goto statement_identifier ;)) (labeled_statement "LAB_00342030:\n              param_4 = *piVar7;" statement_identifier : (expression_statement "param_4 = *piVar7;" (assignment_expression "param_4 = *piVar7" identifier = (pointer_expression "*piVar7" * identifier)) ;)) }))) (expression_statement "iVar3 = -1;" (assignment_expression "iVar3 = -1" identifier = number_literal) ;) (if_statement "if (param_4 == -1) {\n              param_3 = (int *)0x0;\n            }" if (parenthesized_expression "(param_4 == -1)" ( (binary_expression "param_4 == -1" identifier == number_literal) )) (compound_statement "{\n              param_3 = (int *)0x0;\n            }" { (expression_statement "param_3 = (int *)0x0;" (assignment_expression "param_3 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) })) }))) }))) (labeled_statement "LAB_00341f24:" statement_identifier : (expression_statement "" ;)) }) while (parenthesized_expression "((param_10 != param_11) && (*param_8 == 0))" ( (binary_expression "(param_10 != param_11) && (*param_8 == 0)" (parenthesized_expression "(param_10 != param_11)" ( (binary_expression "param_10 != param_11" identifier != identifier) )) && (parenthesized_expression "(*param_8 == 0)" ( (binary_expression "*param_8 == 0" (pointer_expression "*param_8" * identifier) == number_literal) ))) )) ;) })) (expression_statement "*param_1 = param_3;" (assignment_expression "*param_1 = param_3" (pointer_expression "*param_1" * identifier) = identifier) ;) (expression_statement "param_1[1] = param_4;" (assignment_expression "param_1[1] = param_4" (subscript_expression "param_1[1]" identifier [ number_literal ]) = identifier) ;) (return_statement "return;" return ;) (ERROR "}" }))
(translation_unit "void FUN_00341d6c(undefined4 *param_1,int *param_2,int *param_3,int param_4,int *param_5,int param_6\n                 ,int param_7,uint *param_8,undefined4 param_9,undefined4 *param_10,\n                 undefined4 *param_11)\n\n{\n  bool bVar1;\n  ctype *pcVar2;\n  int iVar3;\n  int iVar4;\n  int iVar5;\n  uint uVar6;\n  int *piVar7;\n  undefined4 *puVar8;\n  code *pcVar9;\n  undefined4 local_60;\n  int local_5c;\n  int local_58;\n  undefined4 local_54;\n  int *local_50;\n  int local_4c;\n  int *local_48;\n  int local_44;\n  int *local_40;\n  int local_3c;\n  code *local_38;\n  int local_34;\n  locale *local_30;\n  undefined4 *local_2c;\n  \n  local_30 = (locale *)(param_7 + 0x6c);\n  pcVar2 = std::use_facet<std::ctype<wchar_t>>(local_30);\n  *param_8 = 0;\n  local_38 = (code *)PTR_do_get_00433d80;\n  if (param_10 != param_11) {\n    local_2c = &local_60;\n    do {\n      iVar3 = param_4;\n      if ((param_3 != (int *)0x0) && (param_4 == -1)) {\n        if ((int *)param_3[2] < (int *)param_3[3]) {\n          iVar3 = *(int *)param_3[2];\n          if (iVar3 == -1) {\n            param_3 = (int *)0x0;\n          }\n        }\n        else {\n          iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n          if (iVar3 == -1) {\n            param_3 = (int *)0x0;\n          }\n        }\n      }\n      if ((param_5 == (int *)0x0) || (param_6 != -1)) {\n        bVar1 = param_6 == -1;\n      }\n      else {\n        if ((int *)param_5[2] < (int *)param_5[3]) {\n          iVar4 = *(int *)param_5[2];\n          if (iVar4 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }\n        else {\n          iVar4 = (**(code **)(*param_5 + 0x24))(param_5);\n          if (iVar4 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }\n        bVar1 = iVar4 == -1;\n      }\n      if (bVar1 == (iVar3 == -1)) {\n        *param_8 = 6;\n        *param_1 = param_3;\n        param_1[1] = param_4;\n        return;\n      }\n      iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,*param_10,0);\n      if (iVar3 == 0x25) {\n        puVar8 = param_10 + 1;\n        if (param_11 == puVar8) goto LAB_0034254c;\n        iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,param_10[1],0);\n        if ((iVar3 == 0x45) || (iVar3 == 0x4f)) {\n          puVar8 = param_10 + 2;\n          if (param_11 == puVar8) goto LAB_0034254c;\n          local_34 = iVar3;\n          iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,param_10[2],0);\n          pcVar9 = *(code **)(*param_2 + 0x20);\n          iVar4 = local_34;\n          if (pcVar9 != local_38) goto LAB_0034243c;\n          piVar7 = (int *)(*(code *)PTR_use_facet<std_ctype<wchar_t>>_00433ac8)(local_30);\n          pcVar9 = *(code **)(*piVar7 + 0x28);\n          *param_8 = 0;\n          local_60 = (*pcVar9)(piVar7,0x25);\n          if (local_34 == 0) goto LAB_003421b4;\n          local_5c = local_34;\n          local_54 = 0;\n          local_58 = iVar3;\n        }\n        else {\n          pcVar9 = *(code **)(*param_2 + 0x20);\n          if (pcVar9 != local_38) {\n            iVar4 = 0;\nLAB_0034243c:\n            param_10 = puVar8 + 1;\n            (*pcVar9)(&local_40,param_2,param_3,param_4,param_5,param_6,param_7,param_8,param_9,\n                      iVar3,iVar4);\n            param_4 = local_3c;\n            param_3 = local_40;\n            goto LAB_00341f24;\n          }\n          local_34 = iVar3;\n          piVar7 = (int *)(*(code *)PTR_use_facet<std_ctype<wchar_t>>_00433ac8)(local_30);\n          pcVar9 = *(code **)(*piVar7 + 0x28);\n          *param_8 = 0;\n          local_60 = (*pcVar9)(piVar7,0x25);\n          iVar3 = local_34;\nLAB_003421b4:\n          local_58 = 0;\n          local_5c = iVar3;\n        }\n        local_4c = param_6;\n        local_50 = param_5;\n        std::time_get<wchar_t,std::istreambuf_iterator<wchar_t,std::char_traits<wchar_t>>>::\n        _M_extract_via_format\n                  (&local_40,param_2,param_3,param_4,param_5,param_6,param_7,param_8,param_9,\n                   local_2c);\n        param_4 = local_3c;\n        param_3 = local_40;\n        local_48 = local_40;\n        local_44 = local_3c;\n        iVar3 = local_3c;\n        if ((local_40 != (int *)0x0) && (local_3c == -1)) {\n          if ((int *)local_40[2] < (int *)local_40[3]) {\n            iVar3 = *(int *)local_40[2];\n          }\n          else {\n            iVar3 = (**(code **)(*local_40 + 0x24))(local_40);\n          }\n          if (iVar3 == -1) {\n            param_3 = (int *)0x0;\n          }\n        }\n        iVar4 = param_6;\n        if ((param_5 != (int *)0x0) && (param_6 == -1)) {\n          if ((int *)param_5[2] < (int *)param_5[3]) {\n            iVar4 = *(int *)param_5[2];\n          }\n          else {\n            iVar4 = (**(code **)(*param_5 + 0x24))(param_5);\n          }\n        }\n        if ((iVar4 == -1) == (iVar3 == -1)) {\n          *param_8 = *param_8 | 2;\n        }\n        param_10 = puVar8 + 1;\n      }\n      else {\n        iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,*param_10);\n        if (iVar3 == 0) {\n          iVar4 = param_4;\n          iVar3 = param_4;\n          if (param_3 == (int *)0x0) {\nLAB_00342380:\n            iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,iVar4);\n            iVar5 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n            if (iVar5 != iVar4) {\n              param_3 = (int *)0x0;\nLAB_00341ed0:\n              iVar3 = (**(code **)(*(int *)pcVar2 + 0x18))(pcVar2,iVar3);\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x18))(pcVar2,*param_10);\n              if (iVar4 != iVar3) {\nLAB_0034254c:\n                *param_8 = 4;\n                *param_1 = param_3;\n                param_1[1] = param_4;\n                return;\n              }\n              goto LAB_00341f00;\n            }\n            param_3 = (int *)0x0;\n            uVar6 = uRam00000008;\n            if (uRam0000000c <= uRam00000008) goto LAB_003424f8;\nLAB_00341f14:\n            param_3[2] = uVar6 + 4;\n          }\n          else {\n            if (param_4 == -1) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar4 = *(int *)param_3[2];\n              }\n              else {\n                iVar4 = (**(code **)(*param_3 + 0x24))(param_3,0xffffffff);\n              }\n              if (iVar4 == -1) goto LAB_00342380;\n              iVar3 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2);\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n              if (iVar3 != iVar4) {\n                if ((int *)param_3[2] < (int *)param_3[3]) {\n                  iVar3 = *(int *)param_3[2];\n                  if (iVar3 == -1) {\n                    param_3 = (int *)0x0;\n                  }\n                }\n                else {\n                  iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n                  if (iVar3 == -1) {\n                    param_3 = (int *)0x0;\n                  }\n                }\n                goto LAB_00341ed0;\n              }\n            }\n            else {\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2);\n              iVar5 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n              if (iVar5 != iVar4) goto LAB_00341ed0;\n            }\nLAB_00341f00:\n            uVar6 = param_3[2];\n            if ((uint)param_3[2] < (uint)param_3[3]) goto LAB_00341f14;\nLAB_003424f8:\n            (**(code **)(*param_3 + 0x28))(param_3);\n          }\n          param_10 = param_10 + 1;\n          param_4 = -1;\n        }\n        else {\n          do {\n            param_10 = param_10 + 1;\n            if (param_11 == param_10) break;\n            iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,*param_10);\n          } while (iVar3 != 0);\n          iVar3 = param_4;\n          if ((param_3 != (int *)0x0) && (param_4 == -1)) goto LAB_0034201c;\n          while( true ) {\n            bVar1 = param_4 == -1;\n            iVar4 = param_6;\n            if ((param_5 != (int *)0x0) && (param_6 == -1)) {\n              if ((int *)param_5[2] < (int *)param_5[3]) {\n                iVar4 = *(int *)param_5[2];\n                if (iVar4 == -1) {\n                  param_5 = (int *)0x0;\n                }\n              }\n              else {\n                iVar4 = (**(code **)(*param_5 + 0x24))(param_5);\n                if (iVar4 == -1) {\n                  param_5 = (int *)0x0;\n                }\n              }\n            }\n            param_4 = iVar3;\n            if ((iVar4 == -1) == bVar1) break;\n            if ((param_3 != (int *)0x0) && (iVar3 == -1)) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar3 = *(int *)param_3[2];\n                if (iVar3 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n              else {\n                iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n                if (iVar3 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n            }\n            iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,iVar3);\n            if (iVar3 == 0) break;\n            if ((uint)param_3[2] < (uint)param_3[3]) {\n              param_3[2] = param_3[2] + 4;\nLAB_0034201c:\n              piVar7 = (int *)param_3[2];\n              if (piVar7 < (int *)param_3[3]) goto LAB_00342030;\nLAB_003422d0:\n              param_4 = (**(code **)(*param_3 + 0x24))(param_3);\n            }\n            else {\n              (**(code **)(*param_3 + 0x28))(param_3);\n              piVar7 = (int *)param_3[2];\n              if ((int *)param_3[3] <= piVar7) goto LAB_003422d0;\nLAB_00342030:\n              param_4 = *piVar7;\n            }\n            iVar3 = -1;\n            if (param_4 == -1) {\n              param_3 = (int *)0x0;\n            }\n          }\n        }\n      }\nLAB_00341f24:\n    } while ((param_10 != param_11) && (*param_8 == 0));\n  }\n  *param_1 = param_3;\n  param_1[1] = param_4;\n  return;\n}\n\n" (function_definition "void FUN_00341d6c(undefined4 *param_1,int *param_2,int *param_3,int param_4,int *param_5,int param_6\n                 ,int param_7,uint *param_8,undefined4 param_9,undefined4 *param_10,\n                 undefined4 *param_11)\n\n{\n  bool bVar1;\n  ctype *pcVar2;\n  int iVar3;\n  int iVar4;\n  int iVar5;\n  uint uVar6;\n  int *piVar7;\n  undefined4 *puVar8;\n  code *pcVar9;\n  undefined4 local_60;\n  int local_5c;\n  int local_58;\n  undefined4 local_54;\n  int *local_50;\n  int local_4c;\n  int *local_48;\n  int local_44;\n  int *local_40;\n  int local_3c;\n  code *local_38;\n  int local_34;\n  locale *local_30;\n  undefined4 *local_2c;\n  \n  local_30 = (locale *)(param_7 + 0x6c);\n  pcVar2 = std::use_facet<std::ctype<wchar_t>>(local_30);\n  *param_8 = 0;\n  local_38 = (code *)PTR_do_get_00433d80;\n  if (param_10 != param_11) {\n    local_2c = &local_60;\n    do {\n      iVar3 = param_4;\n      if ((param_3 != (int *)0x0) && (param_4 == -1)) {\n        if ((int *)param_3[2] < (int *)param_3[3]) {\n          iVar3 = *(int *)param_3[2];\n          if (iVar3 == -1) {\n            param_3 = (int *)0x0;\n          }\n        }\n        else {\n          iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n          if (iVar3 == -1) {\n            param_3 = (int *)0x0;\n          }\n        }\n      }\n      if ((param_5 == (int *)0x0) || (param_6 != -1)) {\n        bVar1 = param_6 == -1;\n      }\n      else {\n        if ((int *)param_5[2] < (int *)param_5[3]) {\n          iVar4 = *(int *)param_5[2];\n          if (iVar4 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }\n        else {\n          iVar4 = (**(code **)(*param_5 + 0x24))(param_5);\n          if (iVar4 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }\n        bVar1 = iVar4 == -1;\n      }\n      if (bVar1 == (iVar3 == -1)) {\n        *param_8 = 6;\n        *param_1 = param_3;\n        param_1[1] = param_4;\n        return;\n      }\n      iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,*param_10,0);\n      if (iVar3 == 0x25) {\n        puVar8 = param_10 + 1;\n        if (param_11 == puVar8) goto LAB_0034254c;\n        iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,param_10[1],0);\n        if ((iVar3 == 0x45) || (iVar3 == 0x4f)) {\n          puVar8 = param_10 + 2;\n          if (param_11 == puVar8) goto LAB_0034254c;\n          local_34 = iVar3;\n          iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,param_10[2],0);\n          pcVar9 = *(code **)(*param_2 + 0x20);\n          iVar4 = local_34;\n          if (pcVar9 != local_38) goto LAB_0034243c;\n          piVar7 = (int *)(*(code *)PTR_use_facet<std_ctype<wchar_t>>_00433ac8)(local_30);\n          pcVar9 = *(code **)(*piVar7 + 0x28);\n          *param_8 = 0;\n          local_60 = (*pcVar9)(piVar7,0x25);\n          if (local_34 == 0) goto LAB_003421b4;\n          local_5c = local_34;\n          local_54 = 0;\n          local_58 = iVar3;\n        }\n        else {\n          pcVar9 = *(code **)(*param_2 + 0x20);\n          if (pcVar9 != local_38) {\n            iVar4 = 0;\nLAB_0034243c:\n            param_10 = puVar8 + 1;\n            (*pcVar9)(&local_40,param_2,param_3,param_4,param_5,param_6,param_7,param_8,param_9,\n                      iVar3,iVar4);\n            param_4 = local_3c;\n            param_3 = local_40;\n            goto LAB_00341f24;\n          }\n          local_34 = iVar3;\n          piVar7 = (int *)(*(code *)PTR_use_facet<std_ctype<wchar_t>>_00433ac8)(local_30);\n          pcVar9 = *(code **)(*piVar7 + 0x28);\n          *param_8 = 0;\n          local_60 = (*pcVar9)(piVar7,0x25);\n          iVar3 = local_34;\nLAB_003421b4:\n          local_58 = 0;\n          local_5c = iVar3;\n        }\n        local_4c = param_6;\n        local_50 = param_5;\n        std::time_get<wchar_t,std::istreambuf_iterator<wchar_t,std::char_traits<wchar_t>>>::\n        _M_extract_via_format\n                  (&local_40,param_2,param_3,param_4,param_5,param_6,param_7,param_8,param_9,\n                   local_2c);\n        param_4 = local_3c;\n        param_3 = local_40;\n        local_48 = local_40;\n        local_44 = local_3c;\n        iVar3 = local_3c;\n        if ((local_40 != (int *)0x0) && (local_3c == -1)) {\n          if ((int *)local_40[2] < (int *)local_40[3]) {\n            iVar3 = *(int *)local_40[2];\n          }\n          else {\n            iVar3 = (**(code **)(*local_40 + 0x24))(local_40);\n          }\n          if (iVar3 == -1) {\n            param_3 = (int *)0x0;\n          }\n        }\n        iVar4 = param_6;\n        if ((param_5 != (int *)0x0) && (param_6 == -1)) {\n          if ((int *)param_5[2] < (int *)param_5[3]) {\n            iVar4 = *(int *)param_5[2];\n          }\n          else {\n            iVar4 = (**(code **)(*param_5 + 0x24))(param_5);\n          }\n        }\n        if ((iVar4 == -1) == (iVar3 == -1)) {\n          *param_8 = *param_8 | 2;\n        }\n        param_10 = puVar8 + 1;\n      }\n      else {\n        iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,*param_10);\n        if (iVar3 == 0) {\n          iVar4 = param_4;\n          iVar3 = param_4;\n          if (param_3 == (int *)0x0) {\nLAB_00342380:\n            iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,iVar4);\n            iVar5 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n            if (iVar5 != iVar4) {\n              param_3 = (int *)0x0;\nLAB_00341ed0:\n              iVar3 = (**(code **)(*(int *)pcVar2 + 0x18))(pcVar2,iVar3);\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x18))(pcVar2,*param_10);\n              if (iVar4 != iVar3) {\nLAB_0034254c:\n                *param_8 = 4;\n                *param_1 = param_3;\n                param_1[1] = param_4;\n                return;\n              }\n              goto LAB_00341f00;\n            }\n            param_3 = (int *)0x0;\n            uVar6 = uRam00000008;\n            if (uRam0000000c <= uRam00000008) goto LAB_003424f8;\nLAB_00341f14:\n            param_3[2] = uVar6 + 4;\n          }\n          else {\n            if (param_4 == -1) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar4 = *(int *)param_3[2];\n              }\n              else {\n                iVar4 = (**(code **)(*param_3 + 0x24))(param_3,0xffffffff);\n              }\n              if (iVar4 == -1) goto LAB_00342380;\n              iVar3 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2);\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n              if (iVar3 != iVar4) {\n                if ((int *)param_3[2] < (int *)param_3[3]) {\n                  iVar3 = *(int *)param_3[2];\n                  if (iVar3 == -1) {\n                    param_3 = (int *)0x0;\n                  }\n                }\n                else {\n                  iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n                  if (iVar3 == -1) {\n                    param_3 = (int *)0x0;\n                  }\n                }\n                goto LAB_00341ed0;\n              }\n            }\n            else {\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2);\n              iVar5 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n              if (iVar5 != iVar4) goto LAB_00341ed0;\n            }\nLAB_00341f00:\n            uVar6 = param_3[2];\n            if ((uint)param_3[2] < (uint)param_3[3]) goto LAB_00341f14;\nLAB_003424f8:\n            (**(code **)(*param_3 + 0x28))(param_3);\n          }\n          param_10 = param_10 + 1;\n          param_4 = -1;\n        }\n        else {\n          do {\n            param_10 = param_10 + 1;\n            if (param_11 == param_10) break;\n            iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,*param_10);\n          } while (iVar3 != 0);\n          iVar3 = param_4;\n          if ((param_3 != (int *)0x0) && (param_4 == -1)) goto LAB_0034201c;\n          while( true ) {\n            bVar1 = param_4 == -1;\n            iVar4 = param_6;\n            if ((param_5 != (int *)0x0) && (param_6 == -1)) {\n              if ((int *)param_5[2] < (int *)param_5[3]) {\n                iVar4 = *(int *)param_5[2];\n                if (iVar4 == -1) {\n                  param_5 = (int *)0x0;\n                }\n              }\n              else {\n                iVar4 = (**(code **)(*param_5 + 0x24))(param_5);\n                if (iVar4 == -1) {\n                  param_5 = (int *)0x0;\n                }\n              }\n            }\n            param_4 = iVar3;\n            if ((iVar4 == -1) == bVar1) break;\n            if ((param_3 != (int *)0x0) && (iVar3 == -1)) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar3 = *(int *)param_3[2];\n                if (iVar3 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n              else {\n                iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n                if (iVar3 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n            }\n            iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,iVar3);\n            if (iVar3 == 0) break;\n            if ((uint)param_3[2] < (uint)param_3[3]) {\n              param_3[2] = param_3[2] + 4;\nLAB_0034201c:\n              piVar7 = (int *)param_3[2];\n              if (piVar7 < (int *)param_3[3]) goto LAB_00342030;\nLAB_003422d0:\n              param_4 = (**(code **)(*param_3 + 0x24))(param_3);\n            }\n            else {\n              (**(code **)(*param_3 + 0x28))(param_3);\n              piVar7 = (int *)param_3[2];\n              if ((int *)param_3[3] <= piVar7) goto LAB_003422d0;\nLAB_00342030:\n              param_4 = *piVar7;\n            }\n            iVar3 = -1;\n            if (param_4 == -1) {\n              param_3 = (int *)0x0;\n            }\n          }\n        }\n      }\nLAB_00341f24:\n    } while ((param_10 != param_11) && (*param_8 == 0));\n  }\n  *param_1 = param_3;\n  param_1[1] = param_4;\n  return;\n}" primitive_type (function_declarator "FUN_00341d6c(undefined4 *param_1,int *param_2,int *param_3,int param_4,int *param_5,int param_6\n                 ,int param_7,uint *param_8,undefined4 param_9,undefined4 *param_10,\n                 undefined4 *param_11)" identifier (parameter_list "(undefined4 *param_1,int *param_2,int *param_3,int param_4,int *param_5,int param_6\n                 ,int param_7,uint *param_8,undefined4 param_9,undefined4 *param_10,\n                 undefined4 *param_11)" ( (parameter_declaration "undefined4 *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "int *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "int *param_3" primitive_type (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "int param_4" primitive_type identifier) , (parameter_declaration "int *param_5" primitive_type (pointer_declarator "*param_5" * identifier)) , (parameter_declaration "int param_6" primitive_type identifier) , (parameter_declaration "int param_7" primitive_type identifier) , (parameter_declaration "uint *param_8" type_identifier (pointer_declarator "*param_8" * identifier)) , (parameter_declaration "undefined4 param_9" type_identifier identifier) , (parameter_declaration "undefined4 *param_10" type_identifier (pointer_declarator "*param_10" * identifier)) , (parameter_declaration "undefined4 *param_11" type_identifier (pointer_declarator "*param_11" * identifier)) ))) (compound_statement "{\n  bool bVar1;\n  ctype *pcVar2;\n  int iVar3;\n  int iVar4;\n  int iVar5;\n  uint uVar6;\n  int *piVar7;\n  undefined4 *puVar8;\n  code *pcVar9;\n  undefined4 local_60;\n  int local_5c;\n  int local_58;\n  undefined4 local_54;\n  int *local_50;\n  int local_4c;\n  int *local_48;\n  int local_44;\n  int *local_40;\n  int local_3c;\n  code *local_38;\n  int local_34;\n  locale *local_30;\n  undefined4 *local_2c;\n  \n  local_30 = (locale *)(param_7 + 0x6c);\n  pcVar2 = std::use_facet<std::ctype<wchar_t>>(local_30);\n  *param_8 = 0;\n  local_38 = (code *)PTR_do_get_00433d80;\n  if (param_10 != param_11) {\n    local_2c = &local_60;\n    do {\n      iVar3 = param_4;\n      if ((param_3 != (int *)0x0) && (param_4 == -1)) {\n        if ((int *)param_3[2] < (int *)param_3[3]) {\n          iVar3 = *(int *)param_3[2];\n          if (iVar3 == -1) {\n            param_3 = (int *)0x0;\n          }\n        }\n        else {\n          iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n          if (iVar3 == -1) {\n            param_3 = (int *)0x0;\n          }\n        }\n      }\n      if ((param_5 == (int *)0x0) || (param_6 != -1)) {\n        bVar1 = param_6 == -1;\n      }\n      else {\n        if ((int *)param_5[2] < (int *)param_5[3]) {\n          iVar4 = *(int *)param_5[2];\n          if (iVar4 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }\n        else {\n          iVar4 = (**(code **)(*param_5 + 0x24))(param_5);\n          if (iVar4 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }\n        bVar1 = iVar4 == -1;\n      }\n      if (bVar1 == (iVar3 == -1)) {\n        *param_8 = 6;\n        *param_1 = param_3;\n        param_1[1] = param_4;\n        return;\n      }\n      iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,*param_10,0);\n      if (iVar3 == 0x25) {\n        puVar8 = param_10 + 1;\n        if (param_11 == puVar8) goto LAB_0034254c;\n        iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,param_10[1],0);\n        if ((iVar3 == 0x45) || (iVar3 == 0x4f)) {\n          puVar8 = param_10 + 2;\n          if (param_11 == puVar8) goto LAB_0034254c;\n          local_34 = iVar3;\n          iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,param_10[2],0);\n          pcVar9 = *(code **)(*param_2 + 0x20);\n          iVar4 = local_34;\n          if (pcVar9 != local_38) goto LAB_0034243c;\n          piVar7 = (int *)(*(code *)PTR_use_facet<std_ctype<wchar_t>>_00433ac8)(local_30);\n          pcVar9 = *(code **)(*piVar7 + 0x28);\n          *param_8 = 0;\n          local_60 = (*pcVar9)(piVar7,0x25);\n          if (local_34 == 0) goto LAB_003421b4;\n          local_5c = local_34;\n          local_54 = 0;\n          local_58 = iVar3;\n        }\n        else {\n          pcVar9 = *(code **)(*param_2 + 0x20);\n          if (pcVar9 != local_38) {\n            iVar4 = 0;\nLAB_0034243c:\n            param_10 = puVar8 + 1;\n            (*pcVar9)(&local_40,param_2,param_3,param_4,param_5,param_6,param_7,param_8,param_9,\n                      iVar3,iVar4);\n            param_4 = local_3c;\n            param_3 = local_40;\n            goto LAB_00341f24;\n          }\n          local_34 = iVar3;\n          piVar7 = (int *)(*(code *)PTR_use_facet<std_ctype<wchar_t>>_00433ac8)(local_30);\n          pcVar9 = *(code **)(*piVar7 + 0x28);\n          *param_8 = 0;\n          local_60 = (*pcVar9)(piVar7,0x25);\n          iVar3 = local_34;\nLAB_003421b4:\n          local_58 = 0;\n          local_5c = iVar3;\n        }\n        local_4c = param_6;\n        local_50 = param_5;\n        std::time_get<wchar_t,std::istreambuf_iterator<wchar_t,std::char_traits<wchar_t>>>::\n        _M_extract_via_format\n                  (&local_40,param_2,param_3,param_4,param_5,param_6,param_7,param_8,param_9,\n                   local_2c);\n        param_4 = local_3c;\n        param_3 = local_40;\n        local_48 = local_40;\n        local_44 = local_3c;\n        iVar3 = local_3c;\n        if ((local_40 != (int *)0x0) && (local_3c == -1)) {\n          if ((int *)local_40[2] < (int *)local_40[3]) {\n            iVar3 = *(int *)local_40[2];\n          }\n          else {\n            iVar3 = (**(code **)(*local_40 + 0x24))(local_40);\n          }\n          if (iVar3 == -1) {\n            param_3 = (int *)0x0;\n          }\n        }\n        iVar4 = param_6;\n        if ((param_5 != (int *)0x0) && (param_6 == -1)) {\n          if ((int *)param_5[2] < (int *)param_5[3]) {\n            iVar4 = *(int *)param_5[2];\n          }\n          else {\n            iVar4 = (**(code **)(*param_5 + 0x24))(param_5);\n          }\n        }\n        if ((iVar4 == -1) == (iVar3 == -1)) {\n          *param_8 = *param_8 | 2;\n        }\n        param_10 = puVar8 + 1;\n      }\n      else {\n        iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,*param_10);\n        if (iVar3 == 0) {\n          iVar4 = param_4;\n          iVar3 = param_4;\n          if (param_3 == (int *)0x0) {\nLAB_00342380:\n            iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,iVar4);\n            iVar5 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n            if (iVar5 != iVar4) {\n              param_3 = (int *)0x0;\nLAB_00341ed0:\n              iVar3 = (**(code **)(*(int *)pcVar2 + 0x18))(pcVar2,iVar3);\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x18))(pcVar2,*param_10);\n              if (iVar4 != iVar3) {\nLAB_0034254c:\n                *param_8 = 4;\n                *param_1 = param_3;\n                param_1[1] = param_4;\n                return;\n              }\n              goto LAB_00341f00;\n            }\n            param_3 = (int *)0x0;\n            uVar6 = uRam00000008;\n            if (uRam0000000c <= uRam00000008) goto LAB_003424f8;\nLAB_00341f14:\n            param_3[2] = uVar6 + 4;\n          }\n          else {\n            if (param_4 == -1) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar4 = *(int *)param_3[2];\n              }\n              else {\n                iVar4 = (**(code **)(*param_3 + 0x24))(param_3,0xffffffff);\n              }\n              if (iVar4 == -1) goto LAB_00342380;\n              iVar3 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2);\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n              if (iVar3 != iVar4) {\n                if ((int *)param_3[2] < (int *)param_3[3]) {\n                  iVar3 = *(int *)param_3[2];\n                  if (iVar3 == -1) {\n                    param_3 = (int *)0x0;\n                  }\n                }\n                else {\n                  iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n                  if (iVar3 == -1) {\n                    param_3 = (int *)0x0;\n                  }\n                }\n                goto LAB_00341ed0;\n              }\n            }\n            else {\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2);\n              iVar5 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n              if (iVar5 != iVar4) goto LAB_00341ed0;\n            }\nLAB_00341f00:\n            uVar6 = param_3[2];\n            if ((uint)param_3[2] < (uint)param_3[3]) goto LAB_00341f14;\nLAB_003424f8:\n            (**(code **)(*param_3 + 0x28))(param_3);\n          }\n          param_10 = param_10 + 1;\n          param_4 = -1;\n        }\n        else {\n          do {\n            param_10 = param_10 + 1;\n            if (param_11 == param_10) break;\n            iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,*param_10);\n          } while (iVar3 != 0);\n          iVar3 = param_4;\n          if ((param_3 != (int *)0x0) && (param_4 == -1)) goto LAB_0034201c;\n          while( true ) {\n            bVar1 = param_4 == -1;\n            iVar4 = param_6;\n            if ((param_5 != (int *)0x0) && (param_6 == -1)) {\n              if ((int *)param_5[2] < (int *)param_5[3]) {\n                iVar4 = *(int *)param_5[2];\n                if (iVar4 == -1) {\n                  param_5 = (int *)0x0;\n                }\n              }\n              else {\n                iVar4 = (**(code **)(*param_5 + 0x24))(param_5);\n                if (iVar4 == -1) {\n                  param_5 = (int *)0x0;\n                }\n              }\n            }\n            param_4 = iVar3;\n            if ((iVar4 == -1) == bVar1) break;\n            if ((param_3 != (int *)0x0) && (iVar3 == -1)) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar3 = *(int *)param_3[2];\n                if (iVar3 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n              else {\n                iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n                if (iVar3 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n            }\n            iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,iVar3);\n            if (iVar3 == 0) break;\n            if ((uint)param_3[2] < (uint)param_3[3]) {\n              param_3[2] = param_3[2] + 4;\nLAB_0034201c:\n              piVar7 = (int *)param_3[2];\n              if (piVar7 < (int *)param_3[3]) goto LAB_00342030;\nLAB_003422d0:\n              param_4 = (**(code **)(*param_3 + 0x24))(param_3);\n            }\n            else {\n              (**(code **)(*param_3 + 0x28))(param_3);\n              piVar7 = (int *)param_3[2];\n              if ((int *)param_3[3] <= piVar7) goto LAB_003422d0;\nLAB_00342030:\n              param_4 = *piVar7;\n            }\n            iVar3 = -1;\n            if (param_4 == -1) {\n              param_3 = (int *)0x0;\n            }\n          }\n        }\n      }\nLAB_00341f24:\n    } while ((param_10 != param_11) && (*param_8 == 0));\n  }\n  *param_1 = param_3;\n  param_1[1] = param_4;\n  return;\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "ctype *pcVar2;" type_identifier (pointer_declarator "*pcVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "int *piVar7;" primitive_type (pointer_declarator "*piVar7" * identifier) ;) (declaration "undefined4 *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "code *pcVar9;" type_identifier (pointer_declarator "*pcVar9" * identifier) ;) (declaration "undefined4 local_60;" type_identifier identifier ;) (declaration "int local_5c;" primitive_type identifier ;) (declaration "int local_58;" primitive_type identifier ;) (declaration "undefined4 local_54;" type_identifier identifier ;) (declaration "int *local_50;" primitive_type (pointer_declarator "*local_50" * identifier) ;) (declaration "int local_4c;" primitive_type identifier ;) (declaration "int *local_48;" primitive_type (pointer_declarator "*local_48" * identifier) ;) (declaration "int local_44;" primitive_type identifier ;) (declaration "int *local_40;" primitive_type (pointer_declarator "*local_40" * identifier) ;) (declaration "int local_3c;" primitive_type identifier ;) (declaration "code *local_38;" type_identifier (pointer_declarator "*local_38" * identifier) ;) (declaration "int local_34;" primitive_type identifier ;) (declaration "locale *local_30;" type_identifier (pointer_declarator "*local_30" * identifier) ;) (declaration "undefined4 *local_2c;" type_identifier (pointer_declarator "*local_2c" * identifier) ;) (expression_statement "local_30 = (locale *)(param_7 + 0x6c);" (assignment_expression "local_30 = (locale *)(param_7 + 0x6c)" identifier = (cast_expression "(locale *)(param_7 + 0x6c)" ( (type_descriptor "locale *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_7 + 0x6c)" ( (binary_expression "param_7 + 0x6c" identifier + number_literal) )))) ;) (expression_statement "pcVar2 = std::use_facet<std::ctype<wchar_t>>(local_30);" (binary_expression "pcVar2 = std::use_facet<std::ctype<wchar_t>>(local_30)" (binary_expression "pcVar2 = std::use_facet<std" (assignment_expression "pcVar2 = std" identifier = identifier) (ERROR "::use_facet" : : identifier) < identifier) (ERROR "::ctype" : : identifier) < (binary_expression "wchar_t>>(local_30)" identifier >> (parenthesized_expression "(local_30)" ( identifier )))) ;) (expression_statement "*param_8 = 0;" (assignment_expression "*param_8 = 0" (pointer_expression "*param_8" * identifier) = number_literal) ;) (expression_statement "local_38 = (code *)PTR_do_get_00433d80;" (assignment_expression "local_38 = (code *)PTR_do_get_00433d80" identifier = (cast_expression "(code *)PTR_do_get_00433d80" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (param_10 != param_11) {\n    local_2c = &local_60;\n    do {\n      iVar3 = param_4;\n      if ((param_3 != (int *)0x0) && (param_4 == -1)) {\n        if ((int *)param_3[2] < (int *)param_3[3]) {\n          iVar3 = *(int *)param_3[2];\n          if (iVar3 == -1) {\n            param_3 = (int *)0x0;\n          }\n        }\n        else {\n          iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n          if (iVar3 == -1) {\n            param_3 = (int *)0x0;\n          }\n        }\n      }\n      if ((param_5 == (int *)0x0) || (param_6 != -1)) {\n        bVar1 = param_6 == -1;\n      }\n      else {\n        if ((int *)param_5[2] < (int *)param_5[3]) {\n          iVar4 = *(int *)param_5[2];\n          if (iVar4 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }\n        else {\n          iVar4 = (**(code **)(*param_5 + 0x24))(param_5);\n          if (iVar4 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }\n        bVar1 = iVar4 == -1;\n      }\n      if (bVar1 == (iVar3 == -1)) {\n        *param_8 = 6;\n        *param_1 = param_3;\n        param_1[1] = param_4;\n        return;\n      }\n      iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,*param_10,0);\n      if (iVar3 == 0x25) {\n        puVar8 = param_10 + 1;\n        if (param_11 == puVar8) goto LAB_0034254c;\n        iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,param_10[1],0);\n        if ((iVar3 == 0x45) || (iVar3 == 0x4f)) {\n          puVar8 = param_10 + 2;\n          if (param_11 == puVar8) goto LAB_0034254c;\n          local_34 = iVar3;\n          iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,param_10[2],0);\n          pcVar9 = *(code **)(*param_2 + 0x20);\n          iVar4 = local_34;\n          if (pcVar9 != local_38) goto LAB_0034243c;\n          piVar7 = (int *)(*(code *)PTR_use_facet<std_ctype<wchar_t>>_00433ac8)(local_30);\n          pcVar9 = *(code **)(*piVar7 + 0x28);\n          *param_8 = 0;\n          local_60 = (*pcVar9)(piVar7,0x25);\n          if (local_34 == 0) goto LAB_003421b4;\n          local_5c = local_34;\n          local_54 = 0;\n          local_58 = iVar3;\n        }\n        else {\n          pcVar9 = *(code **)(*param_2 + 0x20);\n          if (pcVar9 != local_38) {\n            iVar4 = 0;\nLAB_0034243c:\n            param_10 = puVar8 + 1;\n            (*pcVar9)(&local_40,param_2,param_3,param_4,param_5,param_6,param_7,param_8,param_9,\n                      iVar3,iVar4);\n            param_4 = local_3c;\n            param_3 = local_40;\n            goto LAB_00341f24;\n          }\n          local_34 = iVar3;\n          piVar7 = (int *)(*(code *)PTR_use_facet<std_ctype<wchar_t>>_00433ac8)(local_30);\n          pcVar9 = *(code **)(*piVar7 + 0x28);\n          *param_8 = 0;\n          local_60 = (*pcVar9)(piVar7,0x25);\n          iVar3 = local_34;\nLAB_003421b4:\n          local_58 = 0;\n          local_5c = iVar3;\n        }\n        local_4c = param_6;\n        local_50 = param_5;\n        std::time_get<wchar_t,std::istreambuf_iterator<wchar_t,std::char_traits<wchar_t>>>::\n        _M_extract_via_format\n                  (&local_40,param_2,param_3,param_4,param_5,param_6,param_7,param_8,param_9,\n                   local_2c);\n        param_4 = local_3c;\n        param_3 = local_40;\n        local_48 = local_40;\n        local_44 = local_3c;\n        iVar3 = local_3c;\n        if ((local_40 != (int *)0x0) && (local_3c == -1)) {\n          if ((int *)local_40[2] < (int *)local_40[3]) {\n            iVar3 = *(int *)local_40[2];\n          }\n          else {\n            iVar3 = (**(code **)(*local_40 + 0x24))(local_40);\n          }\n          if (iVar3 == -1) {\n            param_3 = (int *)0x0;\n          }\n        }\n        iVar4 = param_6;\n        if ((param_5 != (int *)0x0) && (param_6 == -1)) {\n          if ((int *)param_5[2] < (int *)param_5[3]) {\n            iVar4 = *(int *)param_5[2];\n          }\n          else {\n            iVar4 = (**(code **)(*param_5 + 0x24))(param_5);\n          }\n        }\n        if ((iVar4 == -1) == (iVar3 == -1)) {\n          *param_8 = *param_8 | 2;\n        }\n        param_10 = puVar8 + 1;\n      }\n      else {\n        iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,*param_10);\n        if (iVar3 == 0) {\n          iVar4 = param_4;\n          iVar3 = param_4;\n          if (param_3 == (int *)0x0) {\nLAB_00342380:\n            iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,iVar4);\n            iVar5 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n            if (iVar5 != iVar4) {\n              param_3 = (int *)0x0;\nLAB_00341ed0:\n              iVar3 = (**(code **)(*(int *)pcVar2 + 0x18))(pcVar2,iVar3);\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x18))(pcVar2,*param_10);\n              if (iVar4 != iVar3) {\nLAB_0034254c:\n                *param_8 = 4;\n                *param_1 = param_3;\n                param_1[1] = param_4;\n                return;\n              }\n              goto LAB_00341f00;\n            }\n            param_3 = (int *)0x0;\n            uVar6 = uRam00000008;\n            if (uRam0000000c <= uRam00000008) goto LAB_003424f8;\nLAB_00341f14:\n            param_3[2] = uVar6 + 4;\n          }\n          else {\n            if (param_4 == -1) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar4 = *(int *)param_3[2];\n              }\n              else {\n                iVar4 = (**(code **)(*param_3 + 0x24))(param_3,0xffffffff);\n              }\n              if (iVar4 == -1) goto LAB_00342380;\n              iVar3 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2);\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n              if (iVar3 != iVar4) {\n                if ((int *)param_3[2] < (int *)param_3[3]) {\n                  iVar3 = *(int *)param_3[2];\n                  if (iVar3 == -1) {\n                    param_3 = (int *)0x0;\n                  }\n                }\n                else {\n                  iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n                  if (iVar3 == -1) {\n                    param_3 = (int *)0x0;\n                  }\n                }\n                goto LAB_00341ed0;\n              }\n            }\n            else {\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2);\n              iVar5 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n              if (iVar5 != iVar4) goto LAB_00341ed0;\n            }\nLAB_00341f00:\n            uVar6 = param_3[2];\n            if ((uint)param_3[2] < (uint)param_3[3]) goto LAB_00341f14;\nLAB_003424f8:\n            (**(code **)(*param_3 + 0x28))(param_3);\n          }\n          param_10 = param_10 + 1;\n          param_4 = -1;\n        }\n        else {\n          do {\n            param_10 = param_10 + 1;\n            if (param_11 == param_10) break;\n            iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,*param_10);\n          } while (iVar3 != 0);\n          iVar3 = param_4;\n          if ((param_3 != (int *)0x0) && (param_4 == -1)) goto LAB_0034201c;\n          while( true ) {\n            bVar1 = param_4 == -1;\n            iVar4 = param_6;\n            if ((param_5 != (int *)0x0) && (param_6 == -1)) {\n              if ((int *)param_5[2] < (int *)param_5[3]) {\n                iVar4 = *(int *)param_5[2];\n                if (iVar4 == -1) {\n                  param_5 = (int *)0x0;\n                }\n              }\n              else {\n                iVar4 = (**(code **)(*param_5 + 0x24))(param_5);\n                if (iVar4 == -1) {\n                  param_5 = (int *)0x0;\n                }\n              }\n            }\n            param_4 = iVar3;\n            if ((iVar4 == -1) == bVar1) break;\n            if ((param_3 != (int *)0x0) && (iVar3 == -1)) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar3 = *(int *)param_3[2];\n                if (iVar3 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n              else {\n                iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n                if (iVar3 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n            }\n            iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,iVar3);\n            if (iVar3 == 0) break;\n            if ((uint)param_3[2] < (uint)param_3[3]) {\n              param_3[2] = param_3[2] + 4;\nLAB_0034201c:\n              piVar7 = (int *)param_3[2];\n              if (piVar7 < (int *)param_3[3]) goto LAB_00342030;\nLAB_003422d0:\n              param_4 = (**(code **)(*param_3 + 0x24))(param_3);\n            }\n            else {\n              (**(code **)(*param_3 + 0x28))(param_3);\n              piVar7 = (int *)param_3[2];\n              if ((int *)param_3[3] <= piVar7) goto LAB_003422d0;\nLAB_00342030:\n              param_4 = *piVar7;\n            }\n            iVar3 = -1;\n            if (param_4 == -1) {\n              param_3 = (int *)0x0;\n            }\n          }\n        }\n      }\nLAB_00341f24:\n    } while ((param_10 != param_11) && (*param_8 == 0));\n  }" if (parenthesized_expression "(param_10 != param_11)" ( (binary_expression "param_10 != param_11" identifier != identifier) )) (compound_statement "{\n    local_2c = &local_60;\n    do {\n      iVar3 = param_4;\n      if ((param_3 != (int *)0x0) && (param_4 == -1)) {\n        if ((int *)param_3[2] < (int *)param_3[3]) {\n          iVar3 = *(int *)param_3[2];\n          if (iVar3 == -1) {\n            param_3 = (int *)0x0;\n          }\n        }\n        else {\n          iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n          if (iVar3 == -1) {\n            param_3 = (int *)0x0;\n          }\n        }\n      }\n      if ((param_5 == (int *)0x0) || (param_6 != -1)) {\n        bVar1 = param_6 == -1;\n      }\n      else {\n        if ((int *)param_5[2] < (int *)param_5[3]) {\n          iVar4 = *(int *)param_5[2];\n          if (iVar4 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }\n        else {\n          iVar4 = (**(code **)(*param_5 + 0x24))(param_5);\n          if (iVar4 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }\n        bVar1 = iVar4 == -1;\n      }\n      if (bVar1 == (iVar3 == -1)) {\n        *param_8 = 6;\n        *param_1 = param_3;\n        param_1[1] = param_4;\n        return;\n      }\n      iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,*param_10,0);\n      if (iVar3 == 0x25) {\n        puVar8 = param_10 + 1;\n        if (param_11 == puVar8) goto LAB_0034254c;\n        iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,param_10[1],0);\n        if ((iVar3 == 0x45) || (iVar3 == 0x4f)) {\n          puVar8 = param_10 + 2;\n          if (param_11 == puVar8) goto LAB_0034254c;\n          local_34 = iVar3;\n          iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,param_10[2],0);\n          pcVar9 = *(code **)(*param_2 + 0x20);\n          iVar4 = local_34;\n          if (pcVar9 != local_38) goto LAB_0034243c;\n          piVar7 = (int *)(*(code *)PTR_use_facet<std_ctype<wchar_t>>_00433ac8)(local_30);\n          pcVar9 = *(code **)(*piVar7 + 0x28);\n          *param_8 = 0;\n          local_60 = (*pcVar9)(piVar7,0x25);\n          if (local_34 == 0) goto LAB_003421b4;\n          local_5c = local_34;\n          local_54 = 0;\n          local_58 = iVar3;\n        }\n        else {\n          pcVar9 = *(code **)(*param_2 + 0x20);\n          if (pcVar9 != local_38) {\n            iVar4 = 0;\nLAB_0034243c:\n            param_10 = puVar8 + 1;\n            (*pcVar9)(&local_40,param_2,param_3,param_4,param_5,param_6,param_7,param_8,param_9,\n                      iVar3,iVar4);\n            param_4 = local_3c;\n            param_3 = local_40;\n            goto LAB_00341f24;\n          }\n          local_34 = iVar3;\n          piVar7 = (int *)(*(code *)PTR_use_facet<std_ctype<wchar_t>>_00433ac8)(local_30);\n          pcVar9 = *(code **)(*piVar7 + 0x28);\n          *param_8 = 0;\n          local_60 = (*pcVar9)(piVar7,0x25);\n          iVar3 = local_34;\nLAB_003421b4:\n          local_58 = 0;\n          local_5c = iVar3;\n        }\n        local_4c = param_6;\n        local_50 = param_5;\n        std::time_get<wchar_t,std::istreambuf_iterator<wchar_t,std::char_traits<wchar_t>>>::\n        _M_extract_via_format\n                  (&local_40,param_2,param_3,param_4,param_5,param_6,param_7,param_8,param_9,\n                   local_2c);\n        param_4 = local_3c;\n        param_3 = local_40;\n        local_48 = local_40;\n        local_44 = local_3c;\n        iVar3 = local_3c;\n        if ((local_40 != (int *)0x0) && (local_3c == -1)) {\n          if ((int *)local_40[2] < (int *)local_40[3]) {\n            iVar3 = *(int *)local_40[2];\n          }\n          else {\n            iVar3 = (**(code **)(*local_40 + 0x24))(local_40);\n          }\n          if (iVar3 == -1) {\n            param_3 = (int *)0x0;\n          }\n        }\n        iVar4 = param_6;\n        if ((param_5 != (int *)0x0) && (param_6 == -1)) {\n          if ((int *)param_5[2] < (int *)param_5[3]) {\n            iVar4 = *(int *)param_5[2];\n          }\n          else {\n            iVar4 = (**(code **)(*param_5 + 0x24))(param_5);\n          }\n        }\n        if ((iVar4 == -1) == (iVar3 == -1)) {\n          *param_8 = *param_8 | 2;\n        }\n        param_10 = puVar8 + 1;\n      }\n      else {\n        iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,*param_10);\n        if (iVar3 == 0) {\n          iVar4 = param_4;\n          iVar3 = param_4;\n          if (param_3 == (int *)0x0) {\nLAB_00342380:\n            iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,iVar4);\n            iVar5 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n            if (iVar5 != iVar4) {\n              param_3 = (int *)0x0;\nLAB_00341ed0:\n              iVar3 = (**(code **)(*(int *)pcVar2 + 0x18))(pcVar2,iVar3);\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x18))(pcVar2,*param_10);\n              if (iVar4 != iVar3) {\nLAB_0034254c:\n                *param_8 = 4;\n                *param_1 = param_3;\n                param_1[1] = param_4;\n                return;\n              }\n              goto LAB_00341f00;\n            }\n            param_3 = (int *)0x0;\n            uVar6 = uRam00000008;\n            if (uRam0000000c <= uRam00000008) goto LAB_003424f8;\nLAB_00341f14:\n            param_3[2] = uVar6 + 4;\n          }\n          else {\n            if (param_4 == -1) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar4 = *(int *)param_3[2];\n              }\n              else {\n                iVar4 = (**(code **)(*param_3 + 0x24))(param_3,0xffffffff);\n              }\n              if (iVar4 == -1) goto LAB_00342380;\n              iVar3 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2);\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n              if (iVar3 != iVar4) {\n                if ((int *)param_3[2] < (int *)param_3[3]) {\n                  iVar3 = *(int *)param_3[2];\n                  if (iVar3 == -1) {\n                    param_3 = (int *)0x0;\n                  }\n                }\n                else {\n                  iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n                  if (iVar3 == -1) {\n                    param_3 = (int *)0x0;\n                  }\n                }\n                goto LAB_00341ed0;\n              }\n            }\n            else {\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2);\n              iVar5 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n              if (iVar5 != iVar4) goto LAB_00341ed0;\n            }\nLAB_00341f00:\n            uVar6 = param_3[2];\n            if ((uint)param_3[2] < (uint)param_3[3]) goto LAB_00341f14;\nLAB_003424f8:\n            (**(code **)(*param_3 + 0x28))(param_3);\n          }\n          param_10 = param_10 + 1;\n          param_4 = -1;\n        }\n        else {\n          do {\n            param_10 = param_10 + 1;\n            if (param_11 == param_10) break;\n            iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,*param_10);\n          } while (iVar3 != 0);\n          iVar3 = param_4;\n          if ((param_3 != (int *)0x0) && (param_4 == -1)) goto LAB_0034201c;\n          while( true ) {\n            bVar1 = param_4 == -1;\n            iVar4 = param_6;\n            if ((param_5 != (int *)0x0) && (param_6 == -1)) {\n              if ((int *)param_5[2] < (int *)param_5[3]) {\n                iVar4 = *(int *)param_5[2];\n                if (iVar4 == -1) {\n                  param_5 = (int *)0x0;\n                }\n              }\n              else {\n                iVar4 = (**(code **)(*param_5 + 0x24))(param_5);\n                if (iVar4 == -1) {\n                  param_5 = (int *)0x0;\n                }\n              }\n            }\n            param_4 = iVar3;\n            if ((iVar4 == -1) == bVar1) break;\n            if ((param_3 != (int *)0x0) && (iVar3 == -1)) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar3 = *(int *)param_3[2];\n                if (iVar3 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n              else {\n                iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n                if (iVar3 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n            }\n            iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,iVar3);\n            if (iVar3 == 0) break;\n            if ((uint)param_3[2] < (uint)param_3[3]) {\n              param_3[2] = param_3[2] + 4;\nLAB_0034201c:\n              piVar7 = (int *)param_3[2];\n              if (piVar7 < (int *)param_3[3]) goto LAB_00342030;\nLAB_003422d0:\n              param_4 = (**(code **)(*param_3 + 0x24))(param_3);\n            }\n            else {\n              (**(code **)(*param_3 + 0x28))(param_3);\n              piVar7 = (int *)param_3[2];\n              if ((int *)param_3[3] <= piVar7) goto LAB_003422d0;\nLAB_00342030:\n              param_4 = *piVar7;\n            }\n            iVar3 = -1;\n            if (param_4 == -1) {\n              param_3 = (int *)0x0;\n            }\n          }\n        }\n      }\nLAB_00341f24:\n    } while ((param_10 != param_11) && (*param_8 == 0));\n  }" { (expression_statement "local_2c = &local_60;" (assignment_expression "local_2c = &local_60" identifier = (pointer_expression "&local_60" & identifier)) ;) (do_statement "do {\n      iVar3 = param_4;\n      if ((param_3 != (int *)0x0) && (param_4 == -1)) {\n        if ((int *)param_3[2] < (int *)param_3[3]) {\n          iVar3 = *(int *)param_3[2];\n          if (iVar3 == -1) {\n            param_3 = (int *)0x0;\n          }\n        }\n        else {\n          iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n          if (iVar3 == -1) {\n            param_3 = (int *)0x0;\n          }\n        }\n      }\n      if ((param_5 == (int *)0x0) || (param_6 != -1)) {\n        bVar1 = param_6 == -1;\n      }\n      else {\n        if ((int *)param_5[2] < (int *)param_5[3]) {\n          iVar4 = *(int *)param_5[2];\n          if (iVar4 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }\n        else {\n          iVar4 = (**(code **)(*param_5 + 0x24))(param_5);\n          if (iVar4 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }\n        bVar1 = iVar4 == -1;\n      }\n      if (bVar1 == (iVar3 == -1)) {\n        *param_8 = 6;\n        *param_1 = param_3;\n        param_1[1] = param_4;\n        return;\n      }\n      iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,*param_10,0);\n      if (iVar3 == 0x25) {\n        puVar8 = param_10 + 1;\n        if (param_11 == puVar8) goto LAB_0034254c;\n        iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,param_10[1],0);\n        if ((iVar3 == 0x45) || (iVar3 == 0x4f)) {\n          puVar8 = param_10 + 2;\n          if (param_11 == puVar8) goto LAB_0034254c;\n          local_34 = iVar3;\n          iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,param_10[2],0);\n          pcVar9 = *(code **)(*param_2 + 0x20);\n          iVar4 = local_34;\n          if (pcVar9 != local_38) goto LAB_0034243c;\n          piVar7 = (int *)(*(code *)PTR_use_facet<std_ctype<wchar_t>>_00433ac8)(local_30);\n          pcVar9 = *(code **)(*piVar7 + 0x28);\n          *param_8 = 0;\n          local_60 = (*pcVar9)(piVar7,0x25);\n          if (local_34 == 0) goto LAB_003421b4;\n          local_5c = local_34;\n          local_54 = 0;\n          local_58 = iVar3;\n        }\n        else {\n          pcVar9 = *(code **)(*param_2 + 0x20);\n          if (pcVar9 != local_38) {\n            iVar4 = 0;\nLAB_0034243c:\n            param_10 = puVar8 + 1;\n            (*pcVar9)(&local_40,param_2,param_3,param_4,param_5,param_6,param_7,param_8,param_9,\n                      iVar3,iVar4);\n            param_4 = local_3c;\n            param_3 = local_40;\n            goto LAB_00341f24;\n          }\n          local_34 = iVar3;\n          piVar7 = (int *)(*(code *)PTR_use_facet<std_ctype<wchar_t>>_00433ac8)(local_30);\n          pcVar9 = *(code **)(*piVar7 + 0x28);\n          *param_8 = 0;\n          local_60 = (*pcVar9)(piVar7,0x25);\n          iVar3 = local_34;\nLAB_003421b4:\n          local_58 = 0;\n          local_5c = iVar3;\n        }\n        local_4c = param_6;\n        local_50 = param_5;\n        std::time_get<wchar_t,std::istreambuf_iterator<wchar_t,std::char_traits<wchar_t>>>::\n        _M_extract_via_format\n                  (&local_40,param_2,param_3,param_4,param_5,param_6,param_7,param_8,param_9,\n                   local_2c);\n        param_4 = local_3c;\n        param_3 = local_40;\n        local_48 = local_40;\n        local_44 = local_3c;\n        iVar3 = local_3c;\n        if ((local_40 != (int *)0x0) && (local_3c == -1)) {\n          if ((int *)local_40[2] < (int *)local_40[3]) {\n            iVar3 = *(int *)local_40[2];\n          }\n          else {\n            iVar3 = (**(code **)(*local_40 + 0x24))(local_40);\n          }\n          if (iVar3 == -1) {\n            param_3 = (int *)0x0;\n          }\n        }\n        iVar4 = param_6;\n        if ((param_5 != (int *)0x0) && (param_6 == -1)) {\n          if ((int *)param_5[2] < (int *)param_5[3]) {\n            iVar4 = *(int *)param_5[2];\n          }\n          else {\n            iVar4 = (**(code **)(*param_5 + 0x24))(param_5);\n          }\n        }\n        if ((iVar4 == -1) == (iVar3 == -1)) {\n          *param_8 = *param_8 | 2;\n        }\n        param_10 = puVar8 + 1;\n      }\n      else {\n        iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,*param_10);\n        if (iVar3 == 0) {\n          iVar4 = param_4;\n          iVar3 = param_4;\n          if (param_3 == (int *)0x0) {\nLAB_00342380:\n            iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,iVar4);\n            iVar5 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n            if (iVar5 != iVar4) {\n              param_3 = (int *)0x0;\nLAB_00341ed0:\n              iVar3 = (**(code **)(*(int *)pcVar2 + 0x18))(pcVar2,iVar3);\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x18))(pcVar2,*param_10);\n              if (iVar4 != iVar3) {\nLAB_0034254c:\n                *param_8 = 4;\n                *param_1 = param_3;\n                param_1[1] = param_4;\n                return;\n              }\n              goto LAB_00341f00;\n            }\n            param_3 = (int *)0x0;\n            uVar6 = uRam00000008;\n            if (uRam0000000c <= uRam00000008) goto LAB_003424f8;\nLAB_00341f14:\n            param_3[2] = uVar6 + 4;\n          }\n          else {\n            if (param_4 == -1) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar4 = *(int *)param_3[2];\n              }\n              else {\n                iVar4 = (**(code **)(*param_3 + 0x24))(param_3,0xffffffff);\n              }\n              if (iVar4 == -1) goto LAB_00342380;\n              iVar3 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2);\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n              if (iVar3 != iVar4) {\n                if ((int *)param_3[2] < (int *)param_3[3]) {\n                  iVar3 = *(int *)param_3[2];\n                  if (iVar3 == -1) {\n                    param_3 = (int *)0x0;\n                  }\n                }\n                else {\n                  iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n                  if (iVar3 == -1) {\n                    param_3 = (int *)0x0;\n                  }\n                }\n                goto LAB_00341ed0;\n              }\n            }\n            else {\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2);\n              iVar5 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n              if (iVar5 != iVar4) goto LAB_00341ed0;\n            }\nLAB_00341f00:\n            uVar6 = param_3[2];\n            if ((uint)param_3[2] < (uint)param_3[3]) goto LAB_00341f14;\nLAB_003424f8:\n            (**(code **)(*param_3 + 0x28))(param_3);\n          }\n          param_10 = param_10 + 1;\n          param_4 = -1;\n        }\n        else {\n          do {\n            param_10 = param_10 + 1;\n            if (param_11 == param_10) break;\n            iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,*param_10);\n          } while (iVar3 != 0);\n          iVar3 = param_4;\n          if ((param_3 != (int *)0x0) && (param_4 == -1)) goto LAB_0034201c;\n          while( true ) {\n            bVar1 = param_4 == -1;\n            iVar4 = param_6;\n            if ((param_5 != (int *)0x0) && (param_6 == -1)) {\n              if ((int *)param_5[2] < (int *)param_5[3]) {\n                iVar4 = *(int *)param_5[2];\n                if (iVar4 == -1) {\n                  param_5 = (int *)0x0;\n                }\n              }\n              else {\n                iVar4 = (**(code **)(*param_5 + 0x24))(param_5);\n                if (iVar4 == -1) {\n                  param_5 = (int *)0x0;\n                }\n              }\n            }\n            param_4 = iVar3;\n            if ((iVar4 == -1) == bVar1) break;\n            if ((param_3 != (int *)0x0) && (iVar3 == -1)) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar3 = *(int *)param_3[2];\n                if (iVar3 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n              else {\n                iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n                if (iVar3 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n            }\n            iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,iVar3);\n            if (iVar3 == 0) break;\n            if ((uint)param_3[2] < (uint)param_3[3]) {\n              param_3[2] = param_3[2] + 4;\nLAB_0034201c:\n              piVar7 = (int *)param_3[2];\n              if (piVar7 < (int *)param_3[3]) goto LAB_00342030;\nLAB_003422d0:\n              param_4 = (**(code **)(*param_3 + 0x24))(param_3);\n            }\n            else {\n              (**(code **)(*param_3 + 0x28))(param_3);\n              piVar7 = (int *)param_3[2];\n              if ((int *)param_3[3] <= piVar7) goto LAB_003422d0;\nLAB_00342030:\n              param_4 = *piVar7;\n            }\n            iVar3 = -1;\n            if (param_4 == -1) {\n              param_3 = (int *)0x0;\n            }\n          }\n        }\n      }\nLAB_00341f24:\n    } while ((param_10 != param_11) && (*param_8 == 0));" do (compound_statement "{\n      iVar3 = param_4;\n      if ((param_3 != (int *)0x0) && (param_4 == -1)) {\n        if ((int *)param_3[2] < (int *)param_3[3]) {\n          iVar3 = *(int *)param_3[2];\n          if (iVar3 == -1) {\n            param_3 = (int *)0x0;\n          }\n        }\n        else {\n          iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n          if (iVar3 == -1) {\n            param_3 = (int *)0x0;\n          }\n        }\n      }\n      if ((param_5 == (int *)0x0) || (param_6 != -1)) {\n        bVar1 = param_6 == -1;\n      }\n      else {\n        if ((int *)param_5[2] < (int *)param_5[3]) {\n          iVar4 = *(int *)param_5[2];\n          if (iVar4 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }\n        else {\n          iVar4 = (**(code **)(*param_5 + 0x24))(param_5);\n          if (iVar4 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }\n        bVar1 = iVar4 == -1;\n      }\n      if (bVar1 == (iVar3 == -1)) {\n        *param_8 = 6;\n        *param_1 = param_3;\n        param_1[1] = param_4;\n        return;\n      }\n      iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,*param_10,0);\n      if (iVar3 == 0x25) {\n        puVar8 = param_10 + 1;\n        if (param_11 == puVar8) goto LAB_0034254c;\n        iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,param_10[1],0);\n        if ((iVar3 == 0x45) || (iVar3 == 0x4f)) {\n          puVar8 = param_10 + 2;\n          if (param_11 == puVar8) goto LAB_0034254c;\n          local_34 = iVar3;\n          iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,param_10[2],0);\n          pcVar9 = *(code **)(*param_2 + 0x20);\n          iVar4 = local_34;\n          if (pcVar9 != local_38) goto LAB_0034243c;\n          piVar7 = (int *)(*(code *)PTR_use_facet<std_ctype<wchar_t>>_00433ac8)(local_30);\n          pcVar9 = *(code **)(*piVar7 + 0x28);\n          *param_8 = 0;\n          local_60 = (*pcVar9)(piVar7,0x25);\n          if (local_34 == 0) goto LAB_003421b4;\n          local_5c = local_34;\n          local_54 = 0;\n          local_58 = iVar3;\n        }\n        else {\n          pcVar9 = *(code **)(*param_2 + 0x20);\n          if (pcVar9 != local_38) {\n            iVar4 = 0;\nLAB_0034243c:\n            param_10 = puVar8 + 1;\n            (*pcVar9)(&local_40,param_2,param_3,param_4,param_5,param_6,param_7,param_8,param_9,\n                      iVar3,iVar4);\n            param_4 = local_3c;\n            param_3 = local_40;\n            goto LAB_00341f24;\n          }\n          local_34 = iVar3;\n          piVar7 = (int *)(*(code *)PTR_use_facet<std_ctype<wchar_t>>_00433ac8)(local_30);\n          pcVar9 = *(code **)(*piVar7 + 0x28);\n          *param_8 = 0;\n          local_60 = (*pcVar9)(piVar7,0x25);\n          iVar3 = local_34;\nLAB_003421b4:\n          local_58 = 0;\n          local_5c = iVar3;\n        }\n        local_4c = param_6;\n        local_50 = param_5;\n        std::time_get<wchar_t,std::istreambuf_iterator<wchar_t,std::char_traits<wchar_t>>>::\n        _M_extract_via_format\n                  (&local_40,param_2,param_3,param_4,param_5,param_6,param_7,param_8,param_9,\n                   local_2c);\n        param_4 = local_3c;\n        param_3 = local_40;\n        local_48 = local_40;\n        local_44 = local_3c;\n        iVar3 = local_3c;\n        if ((local_40 != (int *)0x0) && (local_3c == -1)) {\n          if ((int *)local_40[2] < (int *)local_40[3]) {\n            iVar3 = *(int *)local_40[2];\n          }\n          else {\n            iVar3 = (**(code **)(*local_40 + 0x24))(local_40);\n          }\n          if (iVar3 == -1) {\n            param_3 = (int *)0x0;\n          }\n        }\n        iVar4 = param_6;\n        if ((param_5 != (int *)0x0) && (param_6 == -1)) {\n          if ((int *)param_5[2] < (int *)param_5[3]) {\n            iVar4 = *(int *)param_5[2];\n          }\n          else {\n            iVar4 = (**(code **)(*param_5 + 0x24))(param_5);\n          }\n        }\n        if ((iVar4 == -1) == (iVar3 == -1)) {\n          *param_8 = *param_8 | 2;\n        }\n        param_10 = puVar8 + 1;\n      }\n      else {\n        iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,*param_10);\n        if (iVar3 == 0) {\n          iVar4 = param_4;\n          iVar3 = param_4;\n          if (param_3 == (int *)0x0) {\nLAB_00342380:\n            iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,iVar4);\n            iVar5 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n            if (iVar5 != iVar4) {\n              param_3 = (int *)0x0;\nLAB_00341ed0:\n              iVar3 = (**(code **)(*(int *)pcVar2 + 0x18))(pcVar2,iVar3);\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x18))(pcVar2,*param_10);\n              if (iVar4 != iVar3) {\nLAB_0034254c:\n                *param_8 = 4;\n                *param_1 = param_3;\n                param_1[1] = param_4;\n                return;\n              }\n              goto LAB_00341f00;\n            }\n            param_3 = (int *)0x0;\n            uVar6 = uRam00000008;\n            if (uRam0000000c <= uRam00000008) goto LAB_003424f8;\nLAB_00341f14:\n            param_3[2] = uVar6 + 4;\n          }\n          else {\n            if (param_4 == -1) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar4 = *(int *)param_3[2];\n              }\n              else {\n                iVar4 = (**(code **)(*param_3 + 0x24))(param_3,0xffffffff);\n              }\n              if (iVar4 == -1) goto LAB_00342380;\n              iVar3 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2);\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n              if (iVar3 != iVar4) {\n                if ((int *)param_3[2] < (int *)param_3[3]) {\n                  iVar3 = *(int *)param_3[2];\n                  if (iVar3 == -1) {\n                    param_3 = (int *)0x0;\n                  }\n                }\n                else {\n                  iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n                  if (iVar3 == -1) {\n                    param_3 = (int *)0x0;\n                  }\n                }\n                goto LAB_00341ed0;\n              }\n            }\n            else {\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2);\n              iVar5 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n              if (iVar5 != iVar4) goto LAB_00341ed0;\n            }\nLAB_00341f00:\n            uVar6 = param_3[2];\n            if ((uint)param_3[2] < (uint)param_3[3]) goto LAB_00341f14;\nLAB_003424f8:\n            (**(code **)(*param_3 + 0x28))(param_3);\n          }\n          param_10 = param_10 + 1;\n          param_4 = -1;\n        }\n        else {\n          do {\n            param_10 = param_10 + 1;\n            if (param_11 == param_10) break;\n            iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,*param_10);\n          } while (iVar3 != 0);\n          iVar3 = param_4;\n          if ((param_3 != (int *)0x0) && (param_4 == -1)) goto LAB_0034201c;\n          while( true ) {\n            bVar1 = param_4 == -1;\n            iVar4 = param_6;\n            if ((param_5 != (int *)0x0) && (param_6 == -1)) {\n              if ((int *)param_5[2] < (int *)param_5[3]) {\n                iVar4 = *(int *)param_5[2];\n                if (iVar4 == -1) {\n                  param_5 = (int *)0x0;\n                }\n              }\n              else {\n                iVar4 = (**(code **)(*param_5 + 0x24))(param_5);\n                if (iVar4 == -1) {\n                  param_5 = (int *)0x0;\n                }\n              }\n            }\n            param_4 = iVar3;\n            if ((iVar4 == -1) == bVar1) break;\n            if ((param_3 != (int *)0x0) && (iVar3 == -1)) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar3 = *(int *)param_3[2];\n                if (iVar3 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n              else {\n                iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n                if (iVar3 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n            }\n            iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,iVar3);\n            if (iVar3 == 0) break;\n            if ((uint)param_3[2] < (uint)param_3[3]) {\n              param_3[2] = param_3[2] + 4;\nLAB_0034201c:\n              piVar7 = (int *)param_3[2];\n              if (piVar7 < (int *)param_3[3]) goto LAB_00342030;\nLAB_003422d0:\n              param_4 = (**(code **)(*param_3 + 0x24))(param_3);\n            }\n            else {\n              (**(code **)(*param_3 + 0x28))(param_3);\n              piVar7 = (int *)param_3[2];\n              if ((int *)param_3[3] <= piVar7) goto LAB_003422d0;\nLAB_00342030:\n              param_4 = *piVar7;\n            }\n            iVar3 = -1;\n            if (param_4 == -1) {\n              param_3 = (int *)0x0;\n            }\n          }\n        }\n      }\nLAB_00341f24:\n    }" { (expression_statement "iVar3 = param_4;" (assignment_expression "iVar3 = param_4" identifier = identifier) ;) (if_statement "if ((param_3 != (int *)0x0) && (param_4 == -1)) {\n        if ((int *)param_3[2] < (int *)param_3[3]) {\n          iVar3 = *(int *)param_3[2];\n          if (iVar3 == -1) {\n            param_3 = (int *)0x0;\n          }\n        }\n        else {\n          iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n          if (iVar3 == -1) {\n            param_3 = (int *)0x0;\n          }\n        }\n      }" if (parenthesized_expression "((param_3 != (int *)0x0) && (param_4 == -1))" ( (binary_expression "(param_3 != (int *)0x0) && (param_4 == -1)" (parenthesized_expression "(param_3 != (int *)0x0)" ( (binary_expression "param_3 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(param_4 == -1)" ( (binary_expression "param_4 == -1" identifier == number_literal) ))) )) (compound_statement "{\n        if ((int *)param_3[2] < (int *)param_3[3]) {\n          iVar3 = *(int *)param_3[2];\n          if (iVar3 == -1) {\n            param_3 = (int *)0x0;\n          }\n        }\n        else {\n          iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n          if (iVar3 == -1) {\n            param_3 = (int *)0x0;\n          }\n        }\n      }" { (if_statement "if ((int *)param_3[2] < (int *)param_3[3]) {\n          iVar3 = *(int *)param_3[2];\n          if (iVar3 == -1) {\n            param_3 = (int *)0x0;\n          }\n        }\n        else {\n          iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n          if (iVar3 == -1) {\n            param_3 = (int *)0x0;\n          }\n        }" if (parenthesized_expression "((int *)param_3[2] < (int *)param_3[3])" ( (binary_expression "(int *)param_3[2] < (int *)param_3[3]" (cast_expression "(int *)param_3[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[2]" identifier [ number_literal ])) < (cast_expression "(int *)param_3[3]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[3]" identifier [ number_literal ]))) )) (compound_statement "{\n          iVar3 = *(int *)param_3[2];\n          if (iVar3 == -1) {\n            param_3 = (int *)0x0;\n          }\n        }" { (expression_statement "iVar3 = *(int *)param_3[2];" (assignment_expression "iVar3 = *(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 "*" *)) ) (subscript_expression "param_3[2]" identifier [ number_literal ])))) ;) (if_statement "if (iVar3 == -1) {\n            param_3 = (int *)0x0;\n          }" if (parenthesized_expression "(iVar3 == -1)" ( (binary_expression "iVar3 == -1" identifier == number_literal) )) (compound_statement "{\n            param_3 = (int *)0x0;\n          }" { (expression_statement "param_3 = (int *)0x0;" (assignment_expression "param_3 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) }) (else_clause "else {\n          iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n          if (iVar3 == -1) {\n            param_3 = (int *)0x0;\n          }\n        }" else (compound_statement "{\n          iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n          if (iVar3 == -1) {\n            param_3 = (int *)0x0;\n          }\n        }" { (expression_statement "iVar3 = (**(code **)(*param_3 + 0x24))(param_3);" (assignment_expression "iVar3 = (**(code **)(*param_3 + 0x24))(param_3)" identifier = (call_expression "(**(code **)(*param_3 + 0x24))(param_3)" (parenthesized_expression "(**(code **)(*param_3 + 0x24))" ( (pointer_expression "**(code **)(*param_3 + 0x24)" * (pointer_expression "*(code **)(*param_3 + 0x24)" * (cast_expression "(code **)(*param_3 + 0x24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_3 + 0x24)" ( (binary_expression "*param_3 + 0x24" (pointer_expression "*param_3" * identifier) + number_literal) ))))) )) (argument_list "(param_3)" ( identifier )))) ;) (if_statement "if (iVar3 == -1) {\n            param_3 = (int *)0x0;\n          }" if (parenthesized_expression "(iVar3 == -1)" ( (binary_expression "iVar3 == -1" identifier == number_literal) )) (compound_statement "{\n            param_3 = (int *)0x0;\n          }" { (expression_statement "param_3 = (int *)0x0;" (assignment_expression "param_3 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) }))) })) (if_statement "if ((param_5 == (int *)0x0) || (param_6 != -1)) {\n        bVar1 = param_6 == -1;\n      }\n      else {\n        if ((int *)param_5[2] < (int *)param_5[3]) {\n          iVar4 = *(int *)param_5[2];\n          if (iVar4 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }\n        else {\n          iVar4 = (**(code **)(*param_5 + 0x24))(param_5);\n          if (iVar4 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }\n        bVar1 = iVar4 == -1;\n      }" if (parenthesized_expression "((param_5 == (int *)0x0) || (param_6 != -1))" ( (binary_expression "(param_5 == (int *)0x0) || (param_6 != -1)" (parenthesized_expression "(param_5 == (int *)0x0)" ( (binary_expression "param_5 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(param_6 != -1)" ( (binary_expression "param_6 != -1" identifier != number_literal) ))) )) (compound_statement "{\n        bVar1 = param_6 == -1;\n      }" { (expression_statement "bVar1 = param_6 == -1;" (assignment_expression "bVar1 = param_6 == -1" identifier = (binary_expression "param_6 == -1" identifier == number_literal)) ;) }) (else_clause "else {\n        if ((int *)param_5[2] < (int *)param_5[3]) {\n          iVar4 = *(int *)param_5[2];\n          if (iVar4 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }\n        else {\n          iVar4 = (**(code **)(*param_5 + 0x24))(param_5);\n          if (iVar4 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }\n        bVar1 = iVar4 == -1;\n      }" else (compound_statement "{\n        if ((int *)param_5[2] < (int *)param_5[3]) {\n          iVar4 = *(int *)param_5[2];\n          if (iVar4 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }\n        else {\n          iVar4 = (**(code **)(*param_5 + 0x24))(param_5);\n          if (iVar4 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }\n        bVar1 = iVar4 == -1;\n      }" { (if_statement "if ((int *)param_5[2] < (int *)param_5[3]) {\n          iVar4 = *(int *)param_5[2];\n          if (iVar4 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }\n        else {\n          iVar4 = (**(code **)(*param_5 + 0x24))(param_5);\n          if (iVar4 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }" if (parenthesized_expression "((int *)param_5[2] < (int *)param_5[3])" ( (binary_expression "(int *)param_5[2] < (int *)param_5[3]" (cast_expression "(int *)param_5[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_5[2]" identifier [ number_literal ])) < (cast_expression "(int *)param_5[3]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_5[3]" identifier [ number_literal ]))) )) (compound_statement "{\n          iVar4 = *(int *)param_5[2];\n          if (iVar4 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }" { (expression_statement "iVar4 = *(int *)param_5[2];" (assignment_expression "iVar4 = *(int *)param_5[2]" identifier = (pointer_expression "*(int *)param_5[2]" * (cast_expression "(int *)param_5[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_5[2]" identifier [ number_literal ])))) ;) (if_statement "if (iVar4 == -1) {\n            param_5 = (int *)0x0;\n          }" if (parenthesized_expression "(iVar4 == -1)" ( (binary_expression "iVar4 == -1" identifier == number_literal) )) (compound_statement "{\n            param_5 = (int *)0x0;\n          }" { (expression_statement "param_5 = (int *)0x0;" (assignment_expression "param_5 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) }) (else_clause "else {\n          iVar4 = (**(code **)(*param_5 + 0x24))(param_5);\n          if (iVar4 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }" else (compound_statement "{\n          iVar4 = (**(code **)(*param_5 + 0x24))(param_5);\n          if (iVar4 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }" { (expression_statement "iVar4 = (**(code **)(*param_5 + 0x24))(param_5);" (assignment_expression "iVar4 = (**(code **)(*param_5 + 0x24))(param_5)" identifier = (call_expression "(**(code **)(*param_5 + 0x24))(param_5)" (parenthesized_expression "(**(code **)(*param_5 + 0x24))" ( (pointer_expression "**(code **)(*param_5 + 0x24)" * (pointer_expression "*(code **)(*param_5 + 0x24)" * (cast_expression "(code **)(*param_5 + 0x24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_5 + 0x24)" ( (binary_expression "*param_5 + 0x24" (pointer_expression "*param_5" * identifier) + number_literal) ))))) )) (argument_list "(param_5)" ( identifier )))) ;) (if_statement "if (iVar4 == -1) {\n            param_5 = (int *)0x0;\n          }" if (parenthesized_expression "(iVar4 == -1)" ( (binary_expression "iVar4 == -1" identifier == number_literal) )) (compound_statement "{\n            param_5 = (int *)0x0;\n          }" { (expression_statement "param_5 = (int *)0x0;" (assignment_expression "param_5 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) }))) (expression_statement "bVar1 = iVar4 == -1;" (assignment_expression "bVar1 = iVar4 == -1" identifier = (binary_expression "iVar4 == -1" identifier == number_literal)) ;) }))) (if_statement "if (bVar1 == (iVar3 == -1)) {\n        *param_8 = 6;\n        *param_1 = param_3;\n        param_1[1] = param_4;\n        return;\n      }" if (parenthesized_expression "(bVar1 == (iVar3 == -1))" ( (binary_expression "bVar1 == (iVar3 == -1)" identifier == (parenthesized_expression "(iVar3 == -1)" ( (binary_expression "iVar3 == -1" identifier == number_literal) ))) )) (compound_statement "{\n        *param_8 = 6;\n        *param_1 = param_3;\n        param_1[1] = param_4;\n        return;\n      }" { (expression_statement "*param_8 = 6;" (assignment_expression "*param_8 = 6" (pointer_expression "*param_8" * identifier) = number_literal) ;) (expression_statement "*param_1 = param_3;" (assignment_expression "*param_1 = param_3" (pointer_expression "*param_1" * identifier) = identifier) ;) (expression_statement "param_1[1] = param_4;" (assignment_expression "param_1[1] = param_4" (subscript_expression "param_1[1]" identifier [ number_literal ]) = identifier) ;) (return_statement "return;" return ;) })) (expression_statement "iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,*param_10,0);" (assignment_expression "iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,*param_10,0)" identifier = (call_expression "(**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,*param_10,0)" (parenthesized_expression "(**(code **)(*(int *)pcVar2 + 0x30))" ( (pointer_expression "**(code **)(*(int *)pcVar2 + 0x30)" * (pointer_expression "*(code **)(*(int *)pcVar2 + 0x30)" * (cast_expression "(code **)(*(int *)pcVar2 + 0x30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)pcVar2 + 0x30)" ( (binary_expression "*(int *)pcVar2 + 0x30" (pointer_expression "*(int *)pcVar2" * (cast_expression "(int *)pcVar2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) )) (argument_list "(pcVar2,*param_10,0)" ( identifier , (pointer_expression "*param_10" * identifier) , number_literal )))) ;) (if_statement "if (iVar3 == 0x25) {\n        puVar8 = param_10 + 1;\n        if (param_11 == puVar8) goto LAB_0034254c;\n        iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,param_10[1],0);\n        if ((iVar3 == 0x45) || (iVar3 == 0x4f)) {\n          puVar8 = param_10 + 2;\n          if (param_11 == puVar8) goto LAB_0034254c;\n          local_34 = iVar3;\n          iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,param_10[2],0);\n          pcVar9 = *(code **)(*param_2 + 0x20);\n          iVar4 = local_34;\n          if (pcVar9 != local_38) goto LAB_0034243c;\n          piVar7 = (int *)(*(code *)PTR_use_facet<std_ctype<wchar_t>>_00433ac8)(local_30);\n          pcVar9 = *(code **)(*piVar7 + 0x28);\n          *param_8 = 0;\n          local_60 = (*pcVar9)(piVar7,0x25);\n          if (local_34 == 0) goto LAB_003421b4;\n          local_5c = local_34;\n          local_54 = 0;\n          local_58 = iVar3;\n        }\n        else {\n          pcVar9 = *(code **)(*param_2 + 0x20);\n          if (pcVar9 != local_38) {\n            iVar4 = 0;\nLAB_0034243c:\n            param_10 = puVar8 + 1;\n            (*pcVar9)(&local_40,param_2,param_3,param_4,param_5,param_6,param_7,param_8,param_9,\n                      iVar3,iVar4);\n            param_4 = local_3c;\n            param_3 = local_40;\n            goto LAB_00341f24;\n          }\n          local_34 = iVar3;\n          piVar7 = (int *)(*(code *)PTR_use_facet<std_ctype<wchar_t>>_00433ac8)(local_30);\n          pcVar9 = *(code **)(*piVar7 + 0x28);\n          *param_8 = 0;\n          local_60 = (*pcVar9)(piVar7,0x25);\n          iVar3 = local_34;\nLAB_003421b4:\n          local_58 = 0;\n          local_5c = iVar3;\n        }\n        local_4c = param_6;\n        local_50 = param_5;\n        std::time_get<wchar_t,std::istreambuf_iterator<wchar_t,std::char_traits<wchar_t>>>::\n        _M_extract_via_format\n                  (&local_40,param_2,param_3,param_4,param_5,param_6,param_7,param_8,param_9,\n                   local_2c);\n        param_4 = local_3c;\n        param_3 = local_40;\n        local_48 = local_40;\n        local_44 = local_3c;\n        iVar3 = local_3c;\n        if ((local_40 != (int *)0x0) && (local_3c == -1)) {\n          if ((int *)local_40[2] < (int *)local_40[3]) {\n            iVar3 = *(int *)local_40[2];\n          }\n          else {\n            iVar3 = (**(code **)(*local_40 + 0x24))(local_40);\n          }\n          if (iVar3 == -1) {\n            param_3 = (int *)0x0;\n          }\n        }\n        iVar4 = param_6;\n        if ((param_5 != (int *)0x0) && (param_6 == -1)) {\n          if ((int *)param_5[2] < (int *)param_5[3]) {\n            iVar4 = *(int *)param_5[2];\n          }\n          else {\n            iVar4 = (**(code **)(*param_5 + 0x24))(param_5);\n          }\n        }\n        if ((iVar4 == -1) == (iVar3 == -1)) {\n          *param_8 = *param_8 | 2;\n        }\n        param_10 = puVar8 + 1;\n      }\n      else {\n        iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,*param_10);\n        if (iVar3 == 0) {\n          iVar4 = param_4;\n          iVar3 = param_4;\n          if (param_3 == (int *)0x0) {\nLAB_00342380:\n            iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,iVar4);\n            iVar5 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n            if (iVar5 != iVar4) {\n              param_3 = (int *)0x0;\nLAB_00341ed0:\n              iVar3 = (**(code **)(*(int *)pcVar2 + 0x18))(pcVar2,iVar3);\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x18))(pcVar2,*param_10);\n              if (iVar4 != iVar3) {\nLAB_0034254c:\n                *param_8 = 4;\n                *param_1 = param_3;\n                param_1[1] = param_4;\n                return;\n              }\n              goto LAB_00341f00;\n            }\n            param_3 = (int *)0x0;\n            uVar6 = uRam00000008;\n            if (uRam0000000c <= uRam00000008) goto LAB_003424f8;\nLAB_00341f14:\n            param_3[2] = uVar6 + 4;\n          }\n          else {\n            if (param_4 == -1) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar4 = *(int *)param_3[2];\n              }\n              else {\n                iVar4 = (**(code **)(*param_3 + 0x24))(param_3,0xffffffff);\n              }\n              if (iVar4 == -1) goto LAB_00342380;\n              iVar3 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2);\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n              if (iVar3 != iVar4) {\n                if ((int *)param_3[2] < (int *)param_3[3]) {\n                  iVar3 = *(int *)param_3[2];\n                  if (iVar3 == -1) {\n                    param_3 = (int *)0x0;\n                  }\n                }\n                else {\n                  iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n                  if (iVar3 == -1) {\n                    param_3 = (int *)0x0;\n                  }\n                }\n                goto LAB_00341ed0;\n              }\n            }\n            else {\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2);\n              iVar5 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n              if (iVar5 != iVar4) goto LAB_00341ed0;\n            }\nLAB_00341f00:\n            uVar6 = param_3[2];\n            if ((uint)param_3[2] < (uint)param_3[3]) goto LAB_00341f14;\nLAB_003424f8:\n            (**(code **)(*param_3 + 0x28))(param_3);\n          }\n          param_10 = param_10 + 1;\n          param_4 = -1;\n        }\n        else {\n          do {\n            param_10 = param_10 + 1;\n            if (param_11 == param_10) break;\n            iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,*param_10);\n          } while (iVar3 != 0);\n          iVar3 = param_4;\n          if ((param_3 != (int *)0x0) && (param_4 == -1)) goto LAB_0034201c;\n          while( true ) {\n            bVar1 = param_4 == -1;\n            iVar4 = param_6;\n            if ((param_5 != (int *)0x0) && (param_6 == -1)) {\n              if ((int *)param_5[2] < (int *)param_5[3]) {\n                iVar4 = *(int *)param_5[2];\n                if (iVar4 == -1) {\n                  param_5 = (int *)0x0;\n                }\n              }\n              else {\n                iVar4 = (**(code **)(*param_5 + 0x24))(param_5);\n                if (iVar4 == -1) {\n                  param_5 = (int *)0x0;\n                }\n              }\n            }\n            param_4 = iVar3;\n            if ((iVar4 == -1) == bVar1) break;\n            if ((param_3 != (int *)0x0) && (iVar3 == -1)) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar3 = *(int *)param_3[2];\n                if (iVar3 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n              else {\n                iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n                if (iVar3 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n            }\n            iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,iVar3);\n            if (iVar3 == 0) break;\n            if ((uint)param_3[2] < (uint)param_3[3]) {\n              param_3[2] = param_3[2] + 4;\nLAB_0034201c:\n              piVar7 = (int *)param_3[2];\n              if (piVar7 < (int *)param_3[3]) goto LAB_00342030;\nLAB_003422d0:\n              param_4 = (**(code **)(*param_3 + 0x24))(param_3);\n            }\n            else {\n              (**(code **)(*param_3 + 0x28))(param_3);\n              piVar7 = (int *)param_3[2];\n              if ((int *)param_3[3] <= piVar7) goto LAB_003422d0;\nLAB_00342030:\n              param_4 = *piVar7;\n            }\n            iVar3 = -1;\n            if (param_4 == -1) {\n              param_3 = (int *)0x0;\n            }\n          }\n        }\n      }" if (parenthesized_expression "(iVar3 == 0x25)" ( (binary_expression "iVar3 == 0x25" identifier == number_literal) )) (compound_statement "{\n        puVar8 = param_10 + 1;\n        if (param_11 == puVar8) goto LAB_0034254c;\n        iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,param_10[1],0);\n        if ((iVar3 == 0x45) || (iVar3 == 0x4f)) {\n          puVar8 = param_10 + 2;\n          if (param_11 == puVar8) goto LAB_0034254c;\n          local_34 = iVar3;\n          iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,param_10[2],0);\n          pcVar9 = *(code **)(*param_2 + 0x20);\n          iVar4 = local_34;\n          if (pcVar9 != local_38) goto LAB_0034243c;\n          piVar7 = (int *)(*(code *)PTR_use_facet<std_ctype<wchar_t>>_00433ac8)(local_30);\n          pcVar9 = *(code **)(*piVar7 + 0x28);\n          *param_8 = 0;\n          local_60 = (*pcVar9)(piVar7,0x25);\n          if (local_34 == 0) goto LAB_003421b4;\n          local_5c = local_34;\n          local_54 = 0;\n          local_58 = iVar3;\n        }\n        else {\n          pcVar9 = *(code **)(*param_2 + 0x20);\n          if (pcVar9 != local_38) {\n            iVar4 = 0;\nLAB_0034243c:\n            param_10 = puVar8 + 1;\n            (*pcVar9)(&local_40,param_2,param_3,param_4,param_5,param_6,param_7,param_8,param_9,\n                      iVar3,iVar4);\n            param_4 = local_3c;\n            param_3 = local_40;\n            goto LAB_00341f24;\n          }\n          local_34 = iVar3;\n          piVar7 = (int *)(*(code *)PTR_use_facet<std_ctype<wchar_t>>_00433ac8)(local_30);\n          pcVar9 = *(code **)(*piVar7 + 0x28);\n          *param_8 = 0;\n          local_60 = (*pcVar9)(piVar7,0x25);\n          iVar3 = local_34;\nLAB_003421b4:\n          local_58 = 0;\n          local_5c = iVar3;\n        }\n        local_4c = param_6;\n        local_50 = param_5;\n        std::time_get<wchar_t,std::istreambuf_iterator<wchar_t,std::char_traits<wchar_t>>>::\n        _M_extract_via_format\n                  (&local_40,param_2,param_3,param_4,param_5,param_6,param_7,param_8,param_9,\n                   local_2c);\n        param_4 = local_3c;\n        param_3 = local_40;\n        local_48 = local_40;\n        local_44 = local_3c;\n        iVar3 = local_3c;\n        if ((local_40 != (int *)0x0) && (local_3c == -1)) {\n          if ((int *)local_40[2] < (int *)local_40[3]) {\n            iVar3 = *(int *)local_40[2];\n          }\n          else {\n            iVar3 = (**(code **)(*local_40 + 0x24))(local_40);\n          }\n          if (iVar3 == -1) {\n            param_3 = (int *)0x0;\n          }\n        }\n        iVar4 = param_6;\n        if ((param_5 != (int *)0x0) && (param_6 == -1)) {\n          if ((int *)param_5[2] < (int *)param_5[3]) {\n            iVar4 = *(int *)param_5[2];\n          }\n          else {\n            iVar4 = (**(code **)(*param_5 + 0x24))(param_5);\n          }\n        }\n        if ((iVar4 == -1) == (iVar3 == -1)) {\n          *param_8 = *param_8 | 2;\n        }\n        param_10 = puVar8 + 1;\n      }" { (expression_statement "puVar8 = param_10 + 1;" (assignment_expression "puVar8 = param_10 + 1" identifier = (binary_expression "param_10 + 1" identifier + number_literal)) ;) (if_statement "if (param_11 == puVar8) goto LAB_0034254c;" if (parenthesized_expression "(param_11 == puVar8)" ( (binary_expression "param_11 == puVar8" identifier == identifier) )) (goto_statement "goto LAB_0034254c;" goto statement_identifier ;)) (expression_statement "iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,param_10[1],0);" (assignment_expression "iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,param_10[1],0)" identifier = (call_expression "(**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,param_10[1],0)" (parenthesized_expression "(**(code **)(*(int *)pcVar2 + 0x30))" ( (pointer_expression "**(code **)(*(int *)pcVar2 + 0x30)" * (pointer_expression "*(code **)(*(int *)pcVar2 + 0x30)" * (cast_expression "(code **)(*(int *)pcVar2 + 0x30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)pcVar2 + 0x30)" ( (binary_expression "*(int *)pcVar2 + 0x30" (pointer_expression "*(int *)pcVar2" * (cast_expression "(int *)pcVar2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) )) (argument_list "(pcVar2,param_10[1],0)" ( identifier , (subscript_expression "param_10[1]" identifier [ number_literal ]) , number_literal )))) ;) (if_statement "if ((iVar3 == 0x45) || (iVar3 == 0x4f)) {\n          puVar8 = param_10 + 2;\n          if (param_11 == puVar8) goto LAB_0034254c;\n          local_34 = iVar3;\n          iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,param_10[2],0);\n          pcVar9 = *(code **)(*param_2 + 0x20);\n          iVar4 = local_34;\n          if (pcVar9 != local_38) goto LAB_0034243c;\n          piVar7 = (int *)(*(code *)PTR_use_facet<std_ctype<wchar_t>>_00433ac8)(local_30);\n          pcVar9 = *(code **)(*piVar7 + 0x28);\n          *param_8 = 0;\n          local_60 = (*pcVar9)(piVar7,0x25);\n          if (local_34 == 0) goto LAB_003421b4;\n          local_5c = local_34;\n          local_54 = 0;\n          local_58 = iVar3;\n        }\n        else {\n          pcVar9 = *(code **)(*param_2 + 0x20);\n          if (pcVar9 != local_38) {\n            iVar4 = 0;\nLAB_0034243c:\n            param_10 = puVar8 + 1;\n            (*pcVar9)(&local_40,param_2,param_3,param_4,param_5,param_6,param_7,param_8,param_9,\n                      iVar3,iVar4);\n            param_4 = local_3c;\n            param_3 = local_40;\n            goto LAB_00341f24;\n          }\n          local_34 = iVar3;\n          piVar7 = (int *)(*(code *)PTR_use_facet<std_ctype<wchar_t>>_00433ac8)(local_30);\n          pcVar9 = *(code **)(*piVar7 + 0x28);\n          *param_8 = 0;\n          local_60 = (*pcVar9)(piVar7,0x25);\n          iVar3 = local_34;\nLAB_003421b4:\n          local_58 = 0;\n          local_5c = iVar3;\n        }" if (parenthesized_expression "((iVar3 == 0x45) || (iVar3 == 0x4f))" ( (binary_expression "(iVar3 == 0x45) || (iVar3 == 0x4f)" (parenthesized_expression "(iVar3 == 0x45)" ( (binary_expression "iVar3 == 0x45" identifier == number_literal) )) || (parenthesized_expression "(iVar3 == 0x4f)" ( (binary_expression "iVar3 == 0x4f" identifier == number_literal) ))) )) (compound_statement "{\n          puVar8 = param_10 + 2;\n          if (param_11 == puVar8) goto LAB_0034254c;\n          local_34 = iVar3;\n          iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,param_10[2],0);\n          pcVar9 = *(code **)(*param_2 + 0x20);\n          iVar4 = local_34;\n          if (pcVar9 != local_38) goto LAB_0034243c;\n          piVar7 = (int *)(*(code *)PTR_use_facet<std_ctype<wchar_t>>_00433ac8)(local_30);\n          pcVar9 = *(code **)(*piVar7 + 0x28);\n          *param_8 = 0;\n          local_60 = (*pcVar9)(piVar7,0x25);\n          if (local_34 == 0) goto LAB_003421b4;\n          local_5c = local_34;\n          local_54 = 0;\n          local_58 = iVar3;\n        }" { (expression_statement "puVar8 = param_10 + 2;" (assignment_expression "puVar8 = param_10 + 2" identifier = (binary_expression "param_10 + 2" identifier + number_literal)) ;) (if_statement "if (param_11 == puVar8) goto LAB_0034254c;" if (parenthesized_expression "(param_11 == puVar8)" ( (binary_expression "param_11 == puVar8" identifier == identifier) )) (goto_statement "goto LAB_0034254c;" goto statement_identifier ;)) (expression_statement "local_34 = iVar3;" (assignment_expression "local_34 = iVar3" identifier = identifier) ;) (expression_statement "iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,param_10[2],0);" (assignment_expression "iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,param_10[2],0)" identifier = (call_expression "(**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,param_10[2],0)" (parenthesized_expression "(**(code **)(*(int *)pcVar2 + 0x30))" ( (pointer_expression "**(code **)(*(int *)pcVar2 + 0x30)" * (pointer_expression "*(code **)(*(int *)pcVar2 + 0x30)" * (cast_expression "(code **)(*(int *)pcVar2 + 0x30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)pcVar2 + 0x30)" ( (binary_expression "*(int *)pcVar2 + 0x30" (pointer_expression "*(int *)pcVar2" * (cast_expression "(int *)pcVar2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) )) (argument_list "(pcVar2,param_10[2],0)" ( identifier , (subscript_expression "param_10[2]" identifier [ number_literal ]) , number_literal )))) ;) (expression_statement "pcVar9 = *(code **)(*param_2 + 0x20);" (assignment_expression "pcVar9 = *(code **)(*param_2 + 0x20)" identifier = (pointer_expression "*(code **)(*param_2 + 0x20)" * (cast_expression "(code **)(*param_2 + 0x20)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_2 + 0x20)" ( (binary_expression "*param_2 + 0x20" (pointer_expression "*param_2" * identifier) + number_literal) ))))) ;) (expression_statement "iVar4 = local_34;" (assignment_expression "iVar4 = local_34" identifier = identifier) ;) (if_statement "if (pcVar9 != local_38) goto LAB_0034243c;" if (parenthesized_expression "(pcVar9 != local_38)" ( (binary_expression "pcVar9 != local_38" identifier != identifier) )) (goto_statement "goto LAB_0034243c;" goto statement_identifier ;)) (expression_statement "piVar7 = (int *)(*(code *)PTR_use_facet<std_ctype<wchar_t>>_00433ac8)(local_30);" (assignment_expression "piVar7 = (int *)(*(code *)PTR_use_facet<std_ctype<wchar_t>>_00433ac8)(local_30)" identifier = (cast_expression "(int *)(*(code *)PTR_use_facet<std_ctype<wchar_t>>_00433ac8)(local_30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_use_facet<std_ctype<wchar_t>>_00433ac8)(local_30)" (parenthesized_expression "(*(code *)PTR_use_facet<std_ctype<wchar_t>>_00433ac8)" ( (binary_expression "*(code *)PTR_use_facet<std_ctype<wchar_t>>_00433ac8" (binary_expression "*(code *)PTR_use_facet<std_ctype" (pointer_expression "*(code *)PTR_use_facet" * (cast_expression "(code *)PTR_use_facet" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) < identifier) < (binary_expression "wchar_t>>_00433ac8" identifier >> identifier)) )) (argument_list "(local_30)" ( identifier ))))) ;) (expression_statement "pcVar9 = *(code **)(*piVar7 + 0x28);" (assignment_expression "pcVar9 = *(code **)(*piVar7 + 0x28)" identifier = (pointer_expression "*(code **)(*piVar7 + 0x28)" * (cast_expression "(code **)(*piVar7 + 0x28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar7 + 0x28)" ( (binary_expression "*piVar7 + 0x28" (pointer_expression "*piVar7" * identifier) + number_literal) ))))) ;) (expression_statement "*param_8 = 0;" (assignment_expression "*param_8 = 0" (pointer_expression "*param_8" * identifier) = number_literal) ;) (expression_statement "local_60 = (*pcVar9)(piVar7,0x25);" (assignment_expression "local_60 = (*pcVar9)(piVar7,0x25)" identifier = (call_expression "(*pcVar9)(piVar7,0x25)" (parenthesized_expression "(*pcVar9)" ( (pointer_expression "*pcVar9" * identifier) )) (argument_list "(piVar7,0x25)" ( identifier , number_literal )))) ;) (if_statement "if (local_34 == 0) goto LAB_003421b4;" if (parenthesized_expression "(local_34 == 0)" ( (binary_expression "local_34 == 0" identifier == number_literal) )) (goto_statement "goto LAB_003421b4;" goto statement_identifier ;)) (expression_statement "local_5c = local_34;" (assignment_expression "local_5c = local_34" identifier = identifier) ;) (expression_statement "local_54 = 0;" (assignment_expression "local_54 = 0" identifier = number_literal) ;) (expression_statement "local_58 = iVar3;" (assignment_expression "local_58 = iVar3" identifier = identifier) ;) }) (else_clause "else {\n          pcVar9 = *(code **)(*param_2 + 0x20);\n          if (pcVar9 != local_38) {\n            iVar4 = 0;\nLAB_0034243c:\n            param_10 = puVar8 + 1;\n            (*pcVar9)(&local_40,param_2,param_3,param_4,param_5,param_6,param_7,param_8,param_9,\n                      iVar3,iVar4);\n            param_4 = local_3c;\n            param_3 = local_40;\n            goto LAB_00341f24;\n          }\n          local_34 = iVar3;\n          piVar7 = (int *)(*(code *)PTR_use_facet<std_ctype<wchar_t>>_00433ac8)(local_30);\n          pcVar9 = *(code **)(*piVar7 + 0x28);\n          *param_8 = 0;\n          local_60 = (*pcVar9)(piVar7,0x25);\n          iVar3 = local_34;\nLAB_003421b4:\n          local_58 = 0;\n          local_5c = iVar3;\n        }" else (compound_statement "{\n          pcVar9 = *(code **)(*param_2 + 0x20);\n          if (pcVar9 != local_38) {\n            iVar4 = 0;\nLAB_0034243c:\n            param_10 = puVar8 + 1;\n            (*pcVar9)(&local_40,param_2,param_3,param_4,param_5,param_6,param_7,param_8,param_9,\n                      iVar3,iVar4);\n            param_4 = local_3c;\n            param_3 = local_40;\n            goto LAB_00341f24;\n          }\n          local_34 = iVar3;\n          piVar7 = (int *)(*(code *)PTR_use_facet<std_ctype<wchar_t>>_00433ac8)(local_30);\n          pcVar9 = *(code **)(*piVar7 + 0x28);\n          *param_8 = 0;\n          local_60 = (*pcVar9)(piVar7,0x25);\n          iVar3 = local_34;\nLAB_003421b4:\n          local_58 = 0;\n          local_5c = iVar3;\n        }" { (expression_statement "pcVar9 = *(code **)(*param_2 + 0x20);" (assignment_expression "pcVar9 = *(code **)(*param_2 + 0x20)" identifier = (pointer_expression "*(code **)(*param_2 + 0x20)" * (cast_expression "(code **)(*param_2 + 0x20)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_2 + 0x20)" ( (binary_expression "*param_2 + 0x20" (pointer_expression "*param_2" * identifier) + number_literal) ))))) ;) (if_statement "if (pcVar9 != local_38) {\n            iVar4 = 0;\nLAB_0034243c:\n            param_10 = puVar8 + 1;\n            (*pcVar9)(&local_40,param_2,param_3,param_4,param_5,param_6,param_7,param_8,param_9,\n                      iVar3,iVar4);\n            param_4 = local_3c;\n            param_3 = local_40;\n            goto LAB_00341f24;\n          }" if (parenthesized_expression "(pcVar9 != local_38)" ( (binary_expression "pcVar9 != local_38" identifier != identifier) )) (compound_statement "{\n            iVar4 = 0;\nLAB_0034243c:\n            param_10 = puVar8 + 1;\n            (*pcVar9)(&local_40,param_2,param_3,param_4,param_5,param_6,param_7,param_8,param_9,\n                      iVar3,iVar4);\n            param_4 = local_3c;\n            param_3 = local_40;\n            goto LAB_00341f24;\n          }" { (expression_statement "iVar4 = 0;" (assignment_expression "iVar4 = 0" identifier = number_literal) ;) (labeled_statement "LAB_0034243c:\n            param_10 = puVar8 + 1;" statement_identifier : (expression_statement "param_10 = puVar8 + 1;" (assignment_expression "param_10 = puVar8 + 1" identifier = (binary_expression "puVar8 + 1" identifier + number_literal)) ;)) (expression_statement "(*pcVar9)(&local_40,param_2,param_3,param_4,param_5,param_6,param_7,param_8,param_9,\n                      iVar3,iVar4);" (call_expression "(*pcVar9)(&local_40,param_2,param_3,param_4,param_5,param_6,param_7,param_8,param_9,\n                      iVar3,iVar4)" (parenthesized_expression "(*pcVar9)" ( (pointer_expression "*pcVar9" * identifier) )) (argument_list "(&local_40,param_2,param_3,param_4,param_5,param_6,param_7,param_8,param_9,\n                      iVar3,iVar4)" ( (pointer_expression "&local_40" & identifier) , identifier , identifier , identifier , identifier , identifier , identifier , identifier , identifier , identifier , identifier ))) ;) (expression_statement "param_4 = local_3c;" (assignment_expression "param_4 = local_3c" identifier = identifier) ;) (expression_statement "param_3 = local_40;" (assignment_expression "param_3 = local_40" identifier = identifier) ;) (goto_statement "goto LAB_00341f24;" goto statement_identifier ;) })) (expression_statement "local_34 = iVar3;" (assignment_expression "local_34 = iVar3" identifier = identifier) ;) (expression_statement "piVar7 = (int *)(*(code *)PTR_use_facet<std_ctype<wchar_t>>_00433ac8)(local_30);" (assignment_expression "piVar7 = (int *)(*(code *)PTR_use_facet<std_ctype<wchar_t>>_00433ac8)(local_30)" identifier = (cast_expression "(int *)(*(code *)PTR_use_facet<std_ctype<wchar_t>>_00433ac8)(local_30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_use_facet<std_ctype<wchar_t>>_00433ac8)(local_30)" (parenthesized_expression "(*(code *)PTR_use_facet<std_ctype<wchar_t>>_00433ac8)" ( (binary_expression "*(code *)PTR_use_facet<std_ctype<wchar_t>>_00433ac8" (binary_expression "*(code *)PTR_use_facet<std_ctype" (pointer_expression "*(code *)PTR_use_facet" * (cast_expression "(code *)PTR_use_facet" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) < identifier) < (binary_expression "wchar_t>>_00433ac8" identifier >> identifier)) )) (argument_list "(local_30)" ( identifier ))))) ;) (expression_statement "pcVar9 = *(code **)(*piVar7 + 0x28);" (assignment_expression "pcVar9 = *(code **)(*piVar7 + 0x28)" identifier = (pointer_expression "*(code **)(*piVar7 + 0x28)" * (cast_expression "(code **)(*piVar7 + 0x28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar7 + 0x28)" ( (binary_expression "*piVar7 + 0x28" (pointer_expression "*piVar7" * identifier) + number_literal) ))))) ;) (expression_statement "*param_8 = 0;" (assignment_expression "*param_8 = 0" (pointer_expression "*param_8" * identifier) = number_literal) ;) (expression_statement "local_60 = (*pcVar9)(piVar7,0x25);" (assignment_expression "local_60 = (*pcVar9)(piVar7,0x25)" identifier = (call_expression "(*pcVar9)(piVar7,0x25)" (parenthesized_expression "(*pcVar9)" ( (pointer_expression "*pcVar9" * identifier) )) (argument_list "(piVar7,0x25)" ( identifier , number_literal )))) ;) (expression_statement "iVar3 = local_34;" (assignment_expression "iVar3 = local_34" identifier = identifier) ;) (labeled_statement "LAB_003421b4:\n          local_58 = 0;" statement_identifier : (expression_statement "local_58 = 0;" (assignment_expression "local_58 = 0" identifier = number_literal) ;)) (expression_statement "local_5c = iVar3;" (assignment_expression "local_5c = iVar3" identifier = identifier) ;) }))) (expression_statement "local_4c = param_6;" (assignment_expression "local_4c = param_6" identifier = identifier) ;) (expression_statement "local_50 = param_5;" (assignment_expression "local_50 = param_5" identifier = identifier) ;) (labeled_statement "std::time_get<wchar_t,std::istreambuf_iterator<wchar_t,std::char_traits<wchar_t>>>::\n        _M_extract_via_format\n                  (&local_40,param_2,param_3,param_4,param_5,param_6,param_7,param_8,param_9,\n                   local_2c);" statement_identifier (ERROR "::time_get<wchar_t,std::istreambuf_iterator<wchar_t,std:" : : (comma_expression "time_get<wchar_t,std" (binary_expression "time_get<wchar_t" identifier < identifier) , identifier) : : (comma_expression "istreambuf_iterator<wchar_t,std" (binary_expression "istreambuf_iterator<wchar_t" identifier < identifier) , identifier) :) : (expression_statement "char_traits<wchar_t>>>::\n        _M_extract_via_format\n                  (&local_40,param_2,param_3,param_4,param_5,param_6,param_7,param_8,param_9,\n                   local_2c);" (binary_expression "char_traits<wchar_t>>>::\n        _M_extract_via_format\n                  (&local_40,param_2,param_3,param_4,param_5,param_6,param_7,param_8,param_9,\n                   local_2c)" identifier < (binary_expression "wchar_t>>>::\n        _M_extract_via_format\n                  (&local_40,param_2,param_3,param_4,param_5,param_6,param_7,param_8,param_9,\n                   local_2c)" identifier >> (ERROR ">::" > : :) (call_expression "_M_extract_via_format\n                  (&local_40,param_2,param_3,param_4,param_5,param_6,param_7,param_8,param_9,\n                   local_2c)" identifier (argument_list "(&local_40,param_2,param_3,param_4,param_5,param_6,param_7,param_8,param_9,\n                   local_2c)" ( (pointer_expression "&local_40" & identifier) , identifier , identifier , identifier , identifier , identifier , identifier , identifier , identifier , identifier ))))) ;)) (expression_statement "param_4 = local_3c;" (assignment_expression "param_4 = local_3c" identifier = identifier) ;) (expression_statement "param_3 = local_40;" (assignment_expression "param_3 = local_40" identifier = identifier) ;) (expression_statement "local_48 = local_40;" (assignment_expression "local_48 = local_40" identifier = identifier) ;) (expression_statement "local_44 = local_3c;" (assignment_expression "local_44 = local_3c" identifier = identifier) ;) (expression_statement "iVar3 = local_3c;" (assignment_expression "iVar3 = local_3c" identifier = identifier) ;) (if_statement "if ((local_40 != (int *)0x0) && (local_3c == -1)) {\n          if ((int *)local_40[2] < (int *)local_40[3]) {\n            iVar3 = *(int *)local_40[2];\n          }\n          else {\n            iVar3 = (**(code **)(*local_40 + 0x24))(local_40);\n          }\n          if (iVar3 == -1) {\n            param_3 = (int *)0x0;\n          }\n        }" if (parenthesized_expression "((local_40 != (int *)0x0) && (local_3c == -1))" ( (binary_expression "(local_40 != (int *)0x0) && (local_3c == -1)" (parenthesized_expression "(local_40 != (int *)0x0)" ( (binary_expression "local_40 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(local_3c == -1)" ( (binary_expression "local_3c == -1" identifier == number_literal) ))) )) (compound_statement "{\n          if ((int *)local_40[2] < (int *)local_40[3]) {\n            iVar3 = *(int *)local_40[2];\n          }\n          else {\n            iVar3 = (**(code **)(*local_40 + 0x24))(local_40);\n          }\n          if (iVar3 == -1) {\n            param_3 = (int *)0x0;\n          }\n        }" { (if_statement "if ((int *)local_40[2] < (int *)local_40[3]) {\n            iVar3 = *(int *)local_40[2];\n          }\n          else {\n            iVar3 = (**(code **)(*local_40 + 0x24))(local_40);\n          }" if (parenthesized_expression "((int *)local_40[2] < (int *)local_40[3])" ( (binary_expression "(int *)local_40[2] < (int *)local_40[3]" (cast_expression "(int *)local_40[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_40[2]" identifier [ number_literal ])) < (cast_expression "(int *)local_40[3]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_40[3]" identifier [ number_literal ]))) )) (compound_statement "{\n            iVar3 = *(int *)local_40[2];\n          }" { (expression_statement "iVar3 = *(int *)local_40[2];" (assignment_expression "iVar3 = *(int *)local_40[2]" identifier = (pointer_expression "*(int *)local_40[2]" * (cast_expression "(int *)local_40[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_40[2]" identifier [ number_literal ])))) ;) }) (else_clause "else {\n            iVar3 = (**(code **)(*local_40 + 0x24))(local_40);\n          }" else (compound_statement "{\n            iVar3 = (**(code **)(*local_40 + 0x24))(local_40);\n          }" { (expression_statement "iVar3 = (**(code **)(*local_40 + 0x24))(local_40);" (assignment_expression "iVar3 = (**(code **)(*local_40 + 0x24))(local_40)" identifier = (call_expression "(**(code **)(*local_40 + 0x24))(local_40)" (parenthesized_expression "(**(code **)(*local_40 + 0x24))" ( (pointer_expression "**(code **)(*local_40 + 0x24)" * (pointer_expression "*(code **)(*local_40 + 0x24)" * (cast_expression "(code **)(*local_40 + 0x24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*local_40 + 0x24)" ( (binary_expression "*local_40 + 0x24" (pointer_expression "*local_40" * identifier) + number_literal) ))))) )) (argument_list "(local_40)" ( identifier )))) ;) }))) (if_statement "if (iVar3 == -1) {\n            param_3 = (int *)0x0;\n          }" if (parenthesized_expression "(iVar3 == -1)" ( (binary_expression "iVar3 == -1" identifier == number_literal) )) (compound_statement "{\n            param_3 = (int *)0x0;\n          }" { (expression_statement "param_3 = (int *)0x0;" (assignment_expression "param_3 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) })) (expression_statement "iVar4 = param_6;" (assignment_expression "iVar4 = param_6" identifier = identifier) ;) (if_statement "if ((param_5 != (int *)0x0) && (param_6 == -1)) {\n          if ((int *)param_5[2] < (int *)param_5[3]) {\n            iVar4 = *(int *)param_5[2];\n          }\n          else {\n            iVar4 = (**(code **)(*param_5 + 0x24))(param_5);\n          }\n        }" if (parenthesized_expression "((param_5 != (int *)0x0) && (param_6 == -1))" ( (binary_expression "(param_5 != (int *)0x0) && (param_6 == -1)" (parenthesized_expression "(param_5 != (int *)0x0)" ( (binary_expression "param_5 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(param_6 == -1)" ( (binary_expression "param_6 == -1" identifier == number_literal) ))) )) (compound_statement "{\n          if ((int *)param_5[2] < (int *)param_5[3]) {\n            iVar4 = *(int *)param_5[2];\n          }\n          else {\n            iVar4 = (**(code **)(*param_5 + 0x24))(param_5);\n          }\n        }" { (if_statement "if ((int *)param_5[2] < (int *)param_5[3]) {\n            iVar4 = *(int *)param_5[2];\n          }\n          else {\n            iVar4 = (**(code **)(*param_5 + 0x24))(param_5);\n          }" if (parenthesized_expression "((int *)param_5[2] < (int *)param_5[3])" ( (binary_expression "(int *)param_5[2] < (int *)param_5[3]" (cast_expression "(int *)param_5[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_5[2]" identifier [ number_literal ])) < (cast_expression "(int *)param_5[3]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_5[3]" identifier [ number_literal ]))) )) (compound_statement "{\n            iVar4 = *(int *)param_5[2];\n          }" { (expression_statement "iVar4 = *(int *)param_5[2];" (assignment_expression "iVar4 = *(int *)param_5[2]" identifier = (pointer_expression "*(int *)param_5[2]" * (cast_expression "(int *)param_5[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_5[2]" identifier [ number_literal ])))) ;) }) (else_clause "else {\n            iVar4 = (**(code **)(*param_5 + 0x24))(param_5);\n          }" else (compound_statement "{\n            iVar4 = (**(code **)(*param_5 + 0x24))(param_5);\n          }" { (expression_statement "iVar4 = (**(code **)(*param_5 + 0x24))(param_5);" (assignment_expression "iVar4 = (**(code **)(*param_5 + 0x24))(param_5)" identifier = (call_expression "(**(code **)(*param_5 + 0x24))(param_5)" (parenthesized_expression "(**(code **)(*param_5 + 0x24))" ( (pointer_expression "**(code **)(*param_5 + 0x24)" * (pointer_expression "*(code **)(*param_5 + 0x24)" * (cast_expression "(code **)(*param_5 + 0x24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_5 + 0x24)" ( (binary_expression "*param_5 + 0x24" (pointer_expression "*param_5" * identifier) + number_literal) ))))) )) (argument_list "(param_5)" ( identifier )))) ;) }))) })) (if_statement "if ((iVar4 == -1) == (iVar3 == -1)) {\n          *param_8 = *param_8 | 2;\n        }" if (parenthesized_expression "((iVar4 == -1) == (iVar3 == -1))" ( (binary_expression "(iVar4 == -1) == (iVar3 == -1)" (parenthesized_expression "(iVar4 == -1)" ( (binary_expression "iVar4 == -1" identifier == number_literal) )) == (parenthesized_expression "(iVar3 == -1)" ( (binary_expression "iVar3 == -1" identifier == number_literal) ))) )) (compound_statement "{\n          *param_8 = *param_8 | 2;\n        }" { (expression_statement "*param_8 = *param_8 | 2;" (assignment_expression "*param_8 = *param_8 | 2" (pointer_expression "*param_8" * identifier) = (binary_expression "*param_8 | 2" (pointer_expression "*param_8" * identifier) | number_literal)) ;) })) (expression_statement "param_10 = puVar8 + 1;" (assignment_expression "param_10 = puVar8 + 1" identifier = (binary_expression "puVar8 + 1" identifier + number_literal)) ;) }) (else_clause "else {\n        iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,*param_10);\n        if (iVar3 == 0) {\n          iVar4 = param_4;\n          iVar3 = param_4;\n          if (param_3 == (int *)0x0) {\nLAB_00342380:\n            iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,iVar4);\n            iVar5 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n            if (iVar5 != iVar4) {\n              param_3 = (int *)0x0;\nLAB_00341ed0:\n              iVar3 = (**(code **)(*(int *)pcVar2 + 0x18))(pcVar2,iVar3);\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x18))(pcVar2,*param_10);\n              if (iVar4 != iVar3) {\nLAB_0034254c:\n                *param_8 = 4;\n                *param_1 = param_3;\n                param_1[1] = param_4;\n                return;\n              }\n              goto LAB_00341f00;\n            }\n            param_3 = (int *)0x0;\n            uVar6 = uRam00000008;\n            if (uRam0000000c <= uRam00000008) goto LAB_003424f8;\nLAB_00341f14:\n            param_3[2] = uVar6 + 4;\n          }\n          else {\n            if (param_4 == -1) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar4 = *(int *)param_3[2];\n              }\n              else {\n                iVar4 = (**(code **)(*param_3 + 0x24))(param_3,0xffffffff);\n              }\n              if (iVar4 == -1) goto LAB_00342380;\n              iVar3 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2);\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n              if (iVar3 != iVar4) {\n                if ((int *)param_3[2] < (int *)param_3[3]) {\n                  iVar3 = *(int *)param_3[2];\n                  if (iVar3 == -1) {\n                    param_3 = (int *)0x0;\n                  }\n                }\n                else {\n                  iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n                  if (iVar3 == -1) {\n                    param_3 = (int *)0x0;\n                  }\n                }\n                goto LAB_00341ed0;\n              }\n            }\n            else {\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2);\n              iVar5 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n              if (iVar5 != iVar4) goto LAB_00341ed0;\n            }\nLAB_00341f00:\n            uVar6 = param_3[2];\n            if ((uint)param_3[2] < (uint)param_3[3]) goto LAB_00341f14;\nLAB_003424f8:\n            (**(code **)(*param_3 + 0x28))(param_3);\n          }\n          param_10 = param_10 + 1;\n          param_4 = -1;\n        }\n        else {\n          do {\n            param_10 = param_10 + 1;\n            if (param_11 == param_10) break;\n            iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,*param_10);\n          } while (iVar3 != 0);\n          iVar3 = param_4;\n          if ((param_3 != (int *)0x0) && (param_4 == -1)) goto LAB_0034201c;\n          while( true ) {\n            bVar1 = param_4 == -1;\n            iVar4 = param_6;\n            if ((param_5 != (int *)0x0) && (param_6 == -1)) {\n              if ((int *)param_5[2] < (int *)param_5[3]) {\n                iVar4 = *(int *)param_5[2];\n                if (iVar4 == -1) {\n                  param_5 = (int *)0x0;\n                }\n              }\n              else {\n                iVar4 = (**(code **)(*param_5 + 0x24))(param_5);\n                if (iVar4 == -1) {\n                  param_5 = (int *)0x0;\n                }\n              }\n            }\n            param_4 = iVar3;\n            if ((iVar4 == -1) == bVar1) break;\n            if ((param_3 != (int *)0x0) && (iVar3 == -1)) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar3 = *(int *)param_3[2];\n                if (iVar3 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n              else {\n                iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n                if (iVar3 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n            }\n            iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,iVar3);\n            if (iVar3 == 0) break;\n            if ((uint)param_3[2] < (uint)param_3[3]) {\n              param_3[2] = param_3[2] + 4;\nLAB_0034201c:\n              piVar7 = (int *)param_3[2];\n              if (piVar7 < (int *)param_3[3]) goto LAB_00342030;\nLAB_003422d0:\n              param_4 = (**(code **)(*param_3 + 0x24))(param_3);\n            }\n            else {\n              (**(code **)(*param_3 + 0x28))(param_3);\n              piVar7 = (int *)param_3[2];\n              if ((int *)param_3[3] <= piVar7) goto LAB_003422d0;\nLAB_00342030:\n              param_4 = *piVar7;\n            }\n            iVar3 = -1;\n            if (param_4 == -1) {\n              param_3 = (int *)0x0;\n            }\n          }\n        }\n      }" else (compound_statement "{\n        iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,*param_10);\n        if (iVar3 == 0) {\n          iVar4 = param_4;\n          iVar3 = param_4;\n          if (param_3 == (int *)0x0) {\nLAB_00342380:\n            iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,iVar4);\n            iVar5 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n            if (iVar5 != iVar4) {\n              param_3 = (int *)0x0;\nLAB_00341ed0:\n              iVar3 = (**(code **)(*(int *)pcVar2 + 0x18))(pcVar2,iVar3);\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x18))(pcVar2,*param_10);\n              if (iVar4 != iVar3) {\nLAB_0034254c:\n                *param_8 = 4;\n                *param_1 = param_3;\n                param_1[1] = param_4;\n                return;\n              }\n              goto LAB_00341f00;\n            }\n            param_3 = (int *)0x0;\n            uVar6 = uRam00000008;\n            if (uRam0000000c <= uRam00000008) goto LAB_003424f8;\nLAB_00341f14:\n            param_3[2] = uVar6 + 4;\n          }\n          else {\n            if (param_4 == -1) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar4 = *(int *)param_3[2];\n              }\n              else {\n                iVar4 = (**(code **)(*param_3 + 0x24))(param_3,0xffffffff);\n              }\n              if (iVar4 == -1) goto LAB_00342380;\n              iVar3 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2);\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n              if (iVar3 != iVar4) {\n                if ((int *)param_3[2] < (int *)param_3[3]) {\n                  iVar3 = *(int *)param_3[2];\n                  if (iVar3 == -1) {\n                    param_3 = (int *)0x0;\n                  }\n                }\n                else {\n                  iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n                  if (iVar3 == -1) {\n                    param_3 = (int *)0x0;\n                  }\n                }\n                goto LAB_00341ed0;\n              }\n            }\n            else {\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2);\n              iVar5 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n              if (iVar5 != iVar4) goto LAB_00341ed0;\n            }\nLAB_00341f00:\n            uVar6 = param_3[2];\n            if ((uint)param_3[2] < (uint)param_3[3]) goto LAB_00341f14;\nLAB_003424f8:\n            (**(code **)(*param_3 + 0x28))(param_3);\n          }\n          param_10 = param_10 + 1;\n          param_4 = -1;\n        }\n        else {\n          do {\n            param_10 = param_10 + 1;\n            if (param_11 == param_10) break;\n            iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,*param_10);\n          } while (iVar3 != 0);\n          iVar3 = param_4;\n          if ((param_3 != (int *)0x0) && (param_4 == -1)) goto LAB_0034201c;\n          while( true ) {\n            bVar1 = param_4 == -1;\n            iVar4 = param_6;\n            if ((param_5 != (int *)0x0) && (param_6 == -1)) {\n              if ((int *)param_5[2] < (int *)param_5[3]) {\n                iVar4 = *(int *)param_5[2];\n                if (iVar4 == -1) {\n                  param_5 = (int *)0x0;\n                }\n              }\n              else {\n                iVar4 = (**(code **)(*param_5 + 0x24))(param_5);\n                if (iVar4 == -1) {\n                  param_5 = (int *)0x0;\n                }\n              }\n            }\n            param_4 = iVar3;\n            if ((iVar4 == -1) == bVar1) break;\n            if ((param_3 != (int *)0x0) && (iVar3 == -1)) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar3 = *(int *)param_3[2];\n                if (iVar3 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n              else {\n                iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n                if (iVar3 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n            }\n            iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,iVar3);\n            if (iVar3 == 0) break;\n            if ((uint)param_3[2] < (uint)param_3[3]) {\n              param_3[2] = param_3[2] + 4;\nLAB_0034201c:\n              piVar7 = (int *)param_3[2];\n              if (piVar7 < (int *)param_3[3]) goto LAB_00342030;\nLAB_003422d0:\n              param_4 = (**(code **)(*param_3 + 0x24))(param_3);\n            }\n            else {\n              (**(code **)(*param_3 + 0x28))(param_3);\n              piVar7 = (int *)param_3[2];\n              if ((int *)param_3[3] <= piVar7) goto LAB_003422d0;\nLAB_00342030:\n              param_4 = *piVar7;\n            }\n            iVar3 = -1;\n            if (param_4 == -1) {\n              param_3 = (int *)0x0;\n            }\n          }\n        }\n      }" { (expression_statement "iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,*param_10);" (assignment_expression "iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,*param_10)" identifier = (call_expression "(**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,*param_10)" (parenthesized_expression "(**(code **)(*(int *)pcVar2 + 8))" ( (pointer_expression "**(code **)(*(int *)pcVar2 + 8)" * (pointer_expression "*(code **)(*(int *)pcVar2 + 8)" * (cast_expression "(code **)(*(int *)pcVar2 + 8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)pcVar2 + 8)" ( (binary_expression "*(int *)pcVar2 + 8" (pointer_expression "*(int *)pcVar2" * (cast_expression "(int *)pcVar2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) )) (argument_list "(pcVar2,0x20,*param_10)" ( identifier , number_literal , (pointer_expression "*param_10" * identifier) )))) ;) (if_statement "if (iVar3 == 0) {\n          iVar4 = param_4;\n          iVar3 = param_4;\n          if (param_3 == (int *)0x0) {\nLAB_00342380:\n            iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,iVar4);\n            iVar5 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n            if (iVar5 != iVar4) {\n              param_3 = (int *)0x0;\nLAB_00341ed0:\n              iVar3 = (**(code **)(*(int *)pcVar2 + 0x18))(pcVar2,iVar3);\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x18))(pcVar2,*param_10);\n              if (iVar4 != iVar3) {\nLAB_0034254c:\n                *param_8 = 4;\n                *param_1 = param_3;\n                param_1[1] = param_4;\n                return;\n              }\n              goto LAB_00341f00;\n            }\n            param_3 = (int *)0x0;\n            uVar6 = uRam00000008;\n            if (uRam0000000c <= uRam00000008) goto LAB_003424f8;\nLAB_00341f14:\n            param_3[2] = uVar6 + 4;\n          }\n          else {\n            if (param_4 == -1) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar4 = *(int *)param_3[2];\n              }\n              else {\n                iVar4 = (**(code **)(*param_3 + 0x24))(param_3,0xffffffff);\n              }\n              if (iVar4 == -1) goto LAB_00342380;\n              iVar3 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2);\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n              if (iVar3 != iVar4) {\n                if ((int *)param_3[2] < (int *)param_3[3]) {\n                  iVar3 = *(int *)param_3[2];\n                  if (iVar3 == -1) {\n                    param_3 = (int *)0x0;\n                  }\n                }\n                else {\n                  iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n                  if (iVar3 == -1) {\n                    param_3 = (int *)0x0;\n                  }\n                }\n                goto LAB_00341ed0;\n              }\n            }\n            else {\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2);\n              iVar5 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n              if (iVar5 != iVar4) goto LAB_00341ed0;\n            }\nLAB_00341f00:\n            uVar6 = param_3[2];\n            if ((uint)param_3[2] < (uint)param_3[3]) goto LAB_00341f14;\nLAB_003424f8:\n            (**(code **)(*param_3 + 0x28))(param_3);\n          }\n          param_10 = param_10 + 1;\n          param_4 = -1;\n        }\n        else {\n          do {\n            param_10 = param_10 + 1;\n            if (param_11 == param_10) break;\n            iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,*param_10);\n          } while (iVar3 != 0);\n          iVar3 = param_4;\n          if ((param_3 != (int *)0x0) && (param_4 == -1)) goto LAB_0034201c;\n          while( true ) {\n            bVar1 = param_4 == -1;\n            iVar4 = param_6;\n            if ((param_5 != (int *)0x0) && (param_6 == -1)) {\n              if ((int *)param_5[2] < (int *)param_5[3]) {\n                iVar4 = *(int *)param_5[2];\n                if (iVar4 == -1) {\n                  param_5 = (int *)0x0;\n                }\n              }\n              else {\n                iVar4 = (**(code **)(*param_5 + 0x24))(param_5);\n                if (iVar4 == -1) {\n                  param_5 = (int *)0x0;\n                }\n              }\n            }\n            param_4 = iVar3;\n            if ((iVar4 == -1) == bVar1) break;\n            if ((param_3 != (int *)0x0) && (iVar3 == -1)) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar3 = *(int *)param_3[2];\n                if (iVar3 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n              else {\n                iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n                if (iVar3 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n            }\n            iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,iVar3);\n            if (iVar3 == 0) break;\n            if ((uint)param_3[2] < (uint)param_3[3]) {\n              param_3[2] = param_3[2] + 4;\nLAB_0034201c:\n              piVar7 = (int *)param_3[2];\n              if (piVar7 < (int *)param_3[3]) goto LAB_00342030;\nLAB_003422d0:\n              param_4 = (**(code **)(*param_3 + 0x24))(param_3);\n            }\n            else {\n              (**(code **)(*param_3 + 0x28))(param_3);\n              piVar7 = (int *)param_3[2];\n              if ((int *)param_3[3] <= piVar7) goto LAB_003422d0;\nLAB_00342030:\n              param_4 = *piVar7;\n            }\n            iVar3 = -1;\n            if (param_4 == -1) {\n              param_3 = (int *)0x0;\n            }\n          }\n        }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n          iVar4 = param_4;\n          iVar3 = param_4;\n          if (param_3 == (int *)0x0) {\nLAB_00342380:\n            iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,iVar4);\n            iVar5 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n            if (iVar5 != iVar4) {\n              param_3 = (int *)0x0;\nLAB_00341ed0:\n              iVar3 = (**(code **)(*(int *)pcVar2 + 0x18))(pcVar2,iVar3);\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x18))(pcVar2,*param_10);\n              if (iVar4 != iVar3) {\nLAB_0034254c:\n                *param_8 = 4;\n                *param_1 = param_3;\n                param_1[1] = param_4;\n                return;\n              }\n              goto LAB_00341f00;\n            }\n            param_3 = (int *)0x0;\n            uVar6 = uRam00000008;\n            if (uRam0000000c <= uRam00000008) goto LAB_003424f8;\nLAB_00341f14:\n            param_3[2] = uVar6 + 4;\n          }\n          else {\n            if (param_4 == -1) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar4 = *(int *)param_3[2];\n              }\n              else {\n                iVar4 = (**(code **)(*param_3 + 0x24))(param_3,0xffffffff);\n              }\n              if (iVar4 == -1) goto LAB_00342380;\n              iVar3 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2);\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n              if (iVar3 != iVar4) {\n                if ((int *)param_3[2] < (int *)param_3[3]) {\n                  iVar3 = *(int *)param_3[2];\n                  if (iVar3 == -1) {\n                    param_3 = (int *)0x0;\n                  }\n                }\n                else {\n                  iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n                  if (iVar3 == -1) {\n                    param_3 = (int *)0x0;\n                  }\n                }\n                goto LAB_00341ed0;\n              }\n            }\n            else {\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2);\n              iVar5 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n              if (iVar5 != iVar4) goto LAB_00341ed0;\n            }\nLAB_00341f00:\n            uVar6 = param_3[2];\n            if ((uint)param_3[2] < (uint)param_3[3]) goto LAB_00341f14;\nLAB_003424f8:\n            (**(code **)(*param_3 + 0x28))(param_3);\n          }\n          param_10 = param_10 + 1;\n          param_4 = -1;\n        }" { (expression_statement "iVar4 = param_4;" (assignment_expression "iVar4 = param_4" identifier = identifier) ;) (expression_statement "iVar3 = param_4;" (assignment_expression "iVar3 = param_4" identifier = identifier) ;) (if_statement "if (param_3 == (int *)0x0) {\nLAB_00342380:\n            iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,iVar4);\n            iVar5 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n            if (iVar5 != iVar4) {\n              param_3 = (int *)0x0;\nLAB_00341ed0:\n              iVar3 = (**(code **)(*(int *)pcVar2 + 0x18))(pcVar2,iVar3);\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x18))(pcVar2,*param_10);\n              if (iVar4 != iVar3) {\nLAB_0034254c:\n                *param_8 = 4;\n                *param_1 = param_3;\n                param_1[1] = param_4;\n                return;\n              }\n              goto LAB_00341f00;\n            }\n            param_3 = (int *)0x0;\n            uVar6 = uRam00000008;\n            if (uRam0000000c <= uRam00000008) goto LAB_003424f8;\nLAB_00341f14:\n            param_3[2] = uVar6 + 4;\n          }\n          else {\n            if (param_4 == -1) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar4 = *(int *)param_3[2];\n              }\n              else {\n                iVar4 = (**(code **)(*param_3 + 0x24))(param_3,0xffffffff);\n              }\n              if (iVar4 == -1) goto LAB_00342380;\n              iVar3 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2);\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n              if (iVar3 != iVar4) {\n                if ((int *)param_3[2] < (int *)param_3[3]) {\n                  iVar3 = *(int *)param_3[2];\n                  if (iVar3 == -1) {\n                    param_3 = (int *)0x0;\n                  }\n                }\n                else {\n                  iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n                  if (iVar3 == -1) {\n                    param_3 = (int *)0x0;\n                  }\n                }\n                goto LAB_00341ed0;\n              }\n            }\n            else {\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2);\n              iVar5 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n              if (iVar5 != iVar4) goto LAB_00341ed0;\n            }\nLAB_00341f00:\n            uVar6 = param_3[2];\n            if ((uint)param_3[2] < (uint)param_3[3]) goto LAB_00341f14;\nLAB_003424f8:\n            (**(code **)(*param_3 + 0x28))(param_3);\n          }" if (parenthesized_expression "(param_3 == (int *)0x0)" ( (binary_expression "param_3 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_00342380:\n            iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,iVar4);\n            iVar5 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n            if (iVar5 != iVar4) {\n              param_3 = (int *)0x0;\nLAB_00341ed0:\n              iVar3 = (**(code **)(*(int *)pcVar2 + 0x18))(pcVar2,iVar3);\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x18))(pcVar2,*param_10);\n              if (iVar4 != iVar3) {\nLAB_0034254c:\n                *param_8 = 4;\n                *param_1 = param_3;\n                param_1[1] = param_4;\n                return;\n              }\n              goto LAB_00341f00;\n            }\n            param_3 = (int *)0x0;\n            uVar6 = uRam00000008;\n            if (uRam0000000c <= uRam00000008) goto LAB_003424f8;\nLAB_00341f14:\n            param_3[2] = uVar6 + 4;\n          }" { (labeled_statement "LAB_00342380:\n            iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,iVar4);" statement_identifier : (expression_statement "iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,iVar4);" (assignment_expression "iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,iVar4)" identifier = (call_expression "(**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,iVar4)" (parenthesized_expression "(**(code **)(*(int *)pcVar2 + 0x20))" ( (pointer_expression "**(code **)(*(int *)pcVar2 + 0x20)" * (pointer_expression "*(code **)(*(int *)pcVar2 + 0x20)" * (cast_expression "(code **)(*(int *)pcVar2 + 0x20)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)pcVar2 + 0x20)" ( (binary_expression "*(int *)pcVar2 + 0x20" (pointer_expression "*(int *)pcVar2" * (cast_expression "(int *)pcVar2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) )) (argument_list "(pcVar2,iVar4)" ( identifier , identifier )))) ;)) (expression_statement "iVar5 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);" (assignment_expression "iVar5 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10)" identifier = (call_expression "(**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10)" (parenthesized_expression "(**(code **)(*(int *)pcVar2 + 0x20))" ( (pointer_expression "**(code **)(*(int *)pcVar2 + 0x20)" * (pointer_expression "*(code **)(*(int *)pcVar2 + 0x20)" * (cast_expression "(code **)(*(int *)pcVar2 + 0x20)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)pcVar2 + 0x20)" ( (binary_expression "*(int *)pcVar2 + 0x20" (pointer_expression "*(int *)pcVar2" * (cast_expression "(int *)pcVar2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) )) (argument_list "(pcVar2,*param_10)" ( identifier , (pointer_expression "*param_10" * identifier) )))) ;) (if_statement "if (iVar5 != iVar4) {\n              param_3 = (int *)0x0;\nLAB_00341ed0:\n              iVar3 = (**(code **)(*(int *)pcVar2 + 0x18))(pcVar2,iVar3);\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x18))(pcVar2,*param_10);\n              if (iVar4 != iVar3) {\nLAB_0034254c:\n                *param_8 = 4;\n                *param_1 = param_3;\n                param_1[1] = param_4;\n                return;\n              }\n              goto LAB_00341f00;\n            }" if (parenthesized_expression "(iVar5 != iVar4)" ( (binary_expression "iVar5 != iVar4" identifier != identifier) )) (compound_statement "{\n              param_3 = (int *)0x0;\nLAB_00341ed0:\n              iVar3 = (**(code **)(*(int *)pcVar2 + 0x18))(pcVar2,iVar3);\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x18))(pcVar2,*param_10);\n              if (iVar4 != iVar3) {\nLAB_0034254c:\n                *param_8 = 4;\n                *param_1 = param_3;\n                param_1[1] = param_4;\n                return;\n              }\n              goto LAB_00341f00;\n            }" { (expression_statement "param_3 = (int *)0x0;" (assignment_expression "param_3 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_00341ed0:\n              iVar3 = (**(code **)(*(int *)pcVar2 + 0x18))(pcVar2,iVar3);" statement_identifier : (expression_statement "iVar3 = (**(code **)(*(int *)pcVar2 + 0x18))(pcVar2,iVar3);" (assignment_expression "iVar3 = (**(code **)(*(int *)pcVar2 + 0x18))(pcVar2,iVar3)" identifier = (call_expression "(**(code **)(*(int *)pcVar2 + 0x18))(pcVar2,iVar3)" (parenthesized_expression "(**(code **)(*(int *)pcVar2 + 0x18))" ( (pointer_expression "**(code **)(*(int *)pcVar2 + 0x18)" * (pointer_expression "*(code **)(*(int *)pcVar2 + 0x18)" * (cast_expression "(code **)(*(int *)pcVar2 + 0x18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)pcVar2 + 0x18)" ( (binary_expression "*(int *)pcVar2 + 0x18" (pointer_expression "*(int *)pcVar2" * (cast_expression "(int *)pcVar2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) )) (argument_list "(pcVar2,iVar3)" ( identifier , identifier )))) ;)) (expression_statement "iVar4 = (**(code **)(*(int *)pcVar2 + 0x18))(pcVar2,*param_10);" (assignment_expression "iVar4 = (**(code **)(*(int *)pcVar2 + 0x18))(pcVar2,*param_10)" identifier = (call_expression "(**(code **)(*(int *)pcVar2 + 0x18))(pcVar2,*param_10)" (parenthesized_expression "(**(code **)(*(int *)pcVar2 + 0x18))" ( (pointer_expression "**(code **)(*(int *)pcVar2 + 0x18)" * (pointer_expression "*(code **)(*(int *)pcVar2 + 0x18)" * (cast_expression "(code **)(*(int *)pcVar2 + 0x18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)pcVar2 + 0x18)" ( (binary_expression "*(int *)pcVar2 + 0x18" (pointer_expression "*(int *)pcVar2" * (cast_expression "(int *)pcVar2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) )) (argument_list "(pcVar2,*param_10)" ( identifier , (pointer_expression "*param_10" * identifier) )))) ;) (if_statement "if (iVar4 != iVar3) {\nLAB_0034254c:\n                *param_8 = 4;\n                *param_1 = param_3;\n                param_1[1] = param_4;\n                return;\n              }" if (parenthesized_expression "(iVar4 != iVar3)" ( (binary_expression "iVar4 != iVar3" identifier != identifier) )) (compound_statement "{\nLAB_0034254c:\n                *param_8 = 4;\n                *param_1 = param_3;\n                param_1[1] = param_4;\n                return;\n              }" { (labeled_statement "LAB_0034254c:\n                *param_8 = 4;" statement_identifier : (expression_statement "*param_8 = 4;" (assignment_expression "*param_8 = 4" (pointer_expression "*param_8" * identifier) = number_literal) ;)) (expression_statement "*param_1 = param_3;" (assignment_expression "*param_1 = param_3" (pointer_expression "*param_1" * identifier) = identifier) ;) (expression_statement "param_1[1] = param_4;" (assignment_expression "param_1[1] = param_4" (subscript_expression "param_1[1]" identifier [ number_literal ]) = identifier) ;) (return_statement "return;" return ;) })) (goto_statement "goto LAB_00341f00;" goto statement_identifier ;) })) (expression_statement "param_3 = (int *)0x0;" (assignment_expression "param_3 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "uVar6 = uRam00000008;" (assignment_expression "uVar6 = uRam00000008" identifier = identifier) ;) (if_statement "if (uRam0000000c <= uRam00000008) goto LAB_003424f8;" if (parenthesized_expression "(uRam0000000c <= uRam00000008)" ( (binary_expression "uRam0000000c <= uRam00000008" identifier <= identifier) )) (goto_statement "goto LAB_003424f8;" goto statement_identifier ;)) (labeled_statement "LAB_00341f14:\n            param_3[2] = uVar6 + 4;" statement_identifier : (expression_statement "param_3[2] = uVar6 + 4;" (assignment_expression "param_3[2] = uVar6 + 4" (subscript_expression "param_3[2]" identifier [ number_literal ]) = (binary_expression "uVar6 + 4" identifier + number_literal)) ;)) }) (else_clause "else {\n            if (param_4 == -1) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar4 = *(int *)param_3[2];\n              }\n              else {\n                iVar4 = (**(code **)(*param_3 + 0x24))(param_3,0xffffffff);\n              }\n              if (iVar4 == -1) goto LAB_00342380;\n              iVar3 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2);\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n              if (iVar3 != iVar4) {\n                if ((int *)param_3[2] < (int *)param_3[3]) {\n                  iVar3 = *(int *)param_3[2];\n                  if (iVar3 == -1) {\n                    param_3 = (int *)0x0;\n                  }\n                }\n                else {\n                  iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n                  if (iVar3 == -1) {\n                    param_3 = (int *)0x0;\n                  }\n                }\n                goto LAB_00341ed0;\n              }\n            }\n            else {\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2);\n              iVar5 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n              if (iVar5 != iVar4) goto LAB_00341ed0;\n            }\nLAB_00341f00:\n            uVar6 = param_3[2];\n            if ((uint)param_3[2] < (uint)param_3[3]) goto LAB_00341f14;\nLAB_003424f8:\n            (**(code **)(*param_3 + 0x28))(param_3);\n          }" else (compound_statement "{\n            if (param_4 == -1) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar4 = *(int *)param_3[2];\n              }\n              else {\n                iVar4 = (**(code **)(*param_3 + 0x24))(param_3,0xffffffff);\n              }\n              if (iVar4 == -1) goto LAB_00342380;\n              iVar3 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2);\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n              if (iVar3 != iVar4) {\n                if ((int *)param_3[2] < (int *)param_3[3]) {\n                  iVar3 = *(int *)param_3[2];\n                  if (iVar3 == -1) {\n                    param_3 = (int *)0x0;\n                  }\n                }\n                else {\n                  iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n                  if (iVar3 == -1) {\n                    param_3 = (int *)0x0;\n                  }\n                }\n                goto LAB_00341ed0;\n              }\n            }\n            else {\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2);\n              iVar5 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n              if (iVar5 != iVar4) goto LAB_00341ed0;\n            }\nLAB_00341f00:\n            uVar6 = param_3[2];\n            if ((uint)param_3[2] < (uint)param_3[3]) goto LAB_00341f14;\nLAB_003424f8:\n            (**(code **)(*param_3 + 0x28))(param_3);\n          }" { (if_statement "if (param_4 == -1) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar4 = *(int *)param_3[2];\n              }\n              else {\n                iVar4 = (**(code **)(*param_3 + 0x24))(param_3,0xffffffff);\n              }\n              if (iVar4 == -1) goto LAB_00342380;\n              iVar3 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2);\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n              if (iVar3 != iVar4) {\n                if ((int *)param_3[2] < (int *)param_3[3]) {\n                  iVar3 = *(int *)param_3[2];\n                  if (iVar3 == -1) {\n                    param_3 = (int *)0x0;\n                  }\n                }\n                else {\n                  iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n                  if (iVar3 == -1) {\n                    param_3 = (int *)0x0;\n                  }\n                }\n                goto LAB_00341ed0;\n              }\n            }\n            else {\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2);\n              iVar5 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n              if (iVar5 != iVar4) goto LAB_00341ed0;\n            }" if (parenthesized_expression "(param_4 == -1)" ( (binary_expression "param_4 == -1" identifier == number_literal) )) (compound_statement "{\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar4 = *(int *)param_3[2];\n              }\n              else {\n                iVar4 = (**(code **)(*param_3 + 0x24))(param_3,0xffffffff);\n              }\n              if (iVar4 == -1) goto LAB_00342380;\n              iVar3 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2);\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n              if (iVar3 != iVar4) {\n                if ((int *)param_3[2] < (int *)param_3[3]) {\n                  iVar3 = *(int *)param_3[2];\n                  if (iVar3 == -1) {\n                    param_3 = (int *)0x0;\n                  }\n                }\n                else {\n                  iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n                  if (iVar3 == -1) {\n                    param_3 = (int *)0x0;\n                  }\n                }\n                goto LAB_00341ed0;\n              }\n            }" { (if_statement "if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar4 = *(int *)param_3[2];\n              }\n              else {\n                iVar4 = (**(code **)(*param_3 + 0x24))(param_3,0xffffffff);\n              }" if (parenthesized_expression "((int *)param_3[2] < (int *)param_3[3])" ( (binary_expression "(int *)param_3[2] < (int *)param_3[3]" (cast_expression "(int *)param_3[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[2]" identifier [ number_literal ])) < (cast_expression "(int *)param_3[3]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[3]" identifier [ number_literal ]))) )) (compound_statement "{\n                iVar4 = *(int *)param_3[2];\n              }" { (expression_statement "iVar4 = *(int *)param_3[2];" (assignment_expression "iVar4 = *(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 "*" *)) ) (subscript_expression "param_3[2]" identifier [ number_literal ])))) ;) }) (else_clause "else {\n                iVar4 = (**(code **)(*param_3 + 0x24))(param_3,0xffffffff);\n              }" else (compound_statement "{\n                iVar4 = (**(code **)(*param_3 + 0x24))(param_3,0xffffffff);\n              }" { (expression_statement "iVar4 = (**(code **)(*param_3 + 0x24))(param_3,0xffffffff);" (assignment_expression "iVar4 = (**(code **)(*param_3 + 0x24))(param_3,0xffffffff)" identifier = (call_expression "(**(code **)(*param_3 + 0x24))(param_3,0xffffffff)" (parenthesized_expression "(**(code **)(*param_3 + 0x24))" ( (pointer_expression "**(code **)(*param_3 + 0x24)" * (pointer_expression "*(code **)(*param_3 + 0x24)" * (cast_expression "(code **)(*param_3 + 0x24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_3 + 0x24)" ( (binary_expression "*param_3 + 0x24" (pointer_expression "*param_3" * identifier) + number_literal) ))))) )) (argument_list "(param_3,0xffffffff)" ( identifier , number_literal )))) ;) }))) (if_statement "if (iVar4 == -1) goto LAB_00342380;" if (parenthesized_expression "(iVar4 == -1)" ( (binary_expression "iVar4 == -1" identifier == number_literal) )) (goto_statement "goto LAB_00342380;" goto statement_identifier ;)) (expression_statement "iVar3 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2);" (assignment_expression "iVar3 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2)" identifier = (call_expression "(**(code **)(*(int *)pcVar2 + 0x20))(pcVar2)" (parenthesized_expression "(**(code **)(*(int *)pcVar2 + 0x20))" ( (pointer_expression "**(code **)(*(int *)pcVar2 + 0x20)" * (pointer_expression "*(code **)(*(int *)pcVar2 + 0x20)" * (cast_expression "(code **)(*(int *)pcVar2 + 0x20)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)pcVar2 + 0x20)" ( (binary_expression "*(int *)pcVar2 + 0x20" (pointer_expression "*(int *)pcVar2" * (cast_expression "(int *)pcVar2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) )) (argument_list "(pcVar2)" ( identifier )))) ;) (expression_statement "iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);" (assignment_expression "iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10)" identifier = (call_expression "(**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10)" (parenthesized_expression "(**(code **)(*(int *)pcVar2 + 0x20))" ( (pointer_expression "**(code **)(*(int *)pcVar2 + 0x20)" * (pointer_expression "*(code **)(*(int *)pcVar2 + 0x20)" * (cast_expression "(code **)(*(int *)pcVar2 + 0x20)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)pcVar2 + 0x20)" ( (binary_expression "*(int *)pcVar2 + 0x20" (pointer_expression "*(int *)pcVar2" * (cast_expression "(int *)pcVar2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) )) (argument_list "(pcVar2,*param_10)" ( identifier , (pointer_expression "*param_10" * identifier) )))) ;) (if_statement "if (iVar3 != iVar4) {\n                if ((int *)param_3[2] < (int *)param_3[3]) {\n                  iVar3 = *(int *)param_3[2];\n                  if (iVar3 == -1) {\n                    param_3 = (int *)0x0;\n                  }\n                }\n                else {\n                  iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n                  if (iVar3 == -1) {\n                    param_3 = (int *)0x0;\n                  }\n                }\n                goto LAB_00341ed0;\n              }" if (parenthesized_expression "(iVar3 != iVar4)" ( (binary_expression "iVar3 != iVar4" identifier != identifier) )) (compound_statement "{\n                if ((int *)param_3[2] < (int *)param_3[3]) {\n                  iVar3 = *(int *)param_3[2];\n                  if (iVar3 == -1) {\n                    param_3 = (int *)0x0;\n                  }\n                }\n                else {\n                  iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n                  if (iVar3 == -1) {\n                    param_3 = (int *)0x0;\n                  }\n                }\n                goto LAB_00341ed0;\n              }" { (if_statement "if ((int *)param_3[2] < (int *)param_3[3]) {\n                  iVar3 = *(int *)param_3[2];\n                  if (iVar3 == -1) {\n                    param_3 = (int *)0x0;\n                  }\n                }\n                else {\n                  iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n                  if (iVar3 == -1) {\n                    param_3 = (int *)0x0;\n                  }\n                }" if (parenthesized_expression "((int *)param_3[2] < (int *)param_3[3])" ( (binary_expression "(int *)param_3[2] < (int *)param_3[3]" (cast_expression "(int *)param_3[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[2]" identifier [ number_literal ])) < (cast_expression "(int *)param_3[3]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[3]" identifier [ number_literal ]))) )) (compound_statement "{\n                  iVar3 = *(int *)param_3[2];\n                  if (iVar3 == -1) {\n                    param_3 = (int *)0x0;\n                  }\n                }" { (expression_statement "iVar3 = *(int *)param_3[2];" (assignment_expression "iVar3 = *(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 "*" *)) ) (subscript_expression "param_3[2]" identifier [ number_literal ])))) ;) (if_statement "if (iVar3 == -1) {\n                    param_3 = (int *)0x0;\n                  }" if (parenthesized_expression "(iVar3 == -1)" ( (binary_expression "iVar3 == -1" identifier == number_literal) )) (compound_statement "{\n                    param_3 = (int *)0x0;\n                  }" { (expression_statement "param_3 = (int *)0x0;" (assignment_expression "param_3 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) }) (else_clause "else {\n                  iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n                  if (iVar3 == -1) {\n                    param_3 = (int *)0x0;\n                  }\n                }" else (compound_statement "{\n                  iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n                  if (iVar3 == -1) {\n                    param_3 = (int *)0x0;\n                  }\n                }" { (expression_statement "iVar3 = (**(code **)(*param_3 + 0x24))(param_3);" (assignment_expression "iVar3 = (**(code **)(*param_3 + 0x24))(param_3)" identifier = (call_expression "(**(code **)(*param_3 + 0x24))(param_3)" (parenthesized_expression "(**(code **)(*param_3 + 0x24))" ( (pointer_expression "**(code **)(*param_3 + 0x24)" * (pointer_expression "*(code **)(*param_3 + 0x24)" * (cast_expression "(code **)(*param_3 + 0x24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_3 + 0x24)" ( (binary_expression "*param_3 + 0x24" (pointer_expression "*param_3" * identifier) + number_literal) ))))) )) (argument_list "(param_3)" ( identifier )))) ;) (if_statement "if (iVar3 == -1) {\n                    param_3 = (int *)0x0;\n                  }" if (parenthesized_expression "(iVar3 == -1)" ( (binary_expression "iVar3 == -1" identifier == number_literal) )) (compound_statement "{\n                    param_3 = (int *)0x0;\n                  }" { (expression_statement "param_3 = (int *)0x0;" (assignment_expression "param_3 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) }))) (goto_statement "goto LAB_00341ed0;" goto statement_identifier ;) })) }) (else_clause "else {\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2);\n              iVar5 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n              if (iVar5 != iVar4) goto LAB_00341ed0;\n            }" else (compound_statement "{\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2);\n              iVar5 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n              if (iVar5 != iVar4) goto LAB_00341ed0;\n            }" { (expression_statement "iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2);" (assignment_expression "iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2)" identifier = (call_expression "(**(code **)(*(int *)pcVar2 + 0x20))(pcVar2)" (parenthesized_expression "(**(code **)(*(int *)pcVar2 + 0x20))" ( (pointer_expression "**(code **)(*(int *)pcVar2 + 0x20)" * (pointer_expression "*(code **)(*(int *)pcVar2 + 0x20)" * (cast_expression "(code **)(*(int *)pcVar2 + 0x20)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)pcVar2 + 0x20)" ( (binary_expression "*(int *)pcVar2 + 0x20" (pointer_expression "*(int *)pcVar2" * (cast_expression "(int *)pcVar2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) )) (argument_list "(pcVar2)" ( identifier )))) ;) (expression_statement "iVar5 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);" (assignment_expression "iVar5 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10)" identifier = (call_expression "(**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10)" (parenthesized_expression "(**(code **)(*(int *)pcVar2 + 0x20))" ( (pointer_expression "**(code **)(*(int *)pcVar2 + 0x20)" * (pointer_expression "*(code **)(*(int *)pcVar2 + 0x20)" * (cast_expression "(code **)(*(int *)pcVar2 + 0x20)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)pcVar2 + 0x20)" ( (binary_expression "*(int *)pcVar2 + 0x20" (pointer_expression "*(int *)pcVar2" * (cast_expression "(int *)pcVar2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) )) (argument_list "(pcVar2,*param_10)" ( identifier , (pointer_expression "*param_10" * identifier) )))) ;) (if_statement "if (iVar5 != iVar4) goto LAB_00341ed0;" if (parenthesized_expression "(iVar5 != iVar4)" ( (binary_expression "iVar5 != iVar4" identifier != identifier) )) (goto_statement "goto LAB_00341ed0;" goto statement_identifier ;)) }))) (labeled_statement "LAB_00341f00:\n            uVar6 = param_3[2];" statement_identifier : (expression_statement "uVar6 = param_3[2];" (assignment_expression "uVar6 = param_3[2]" identifier = (subscript_expression "param_3[2]" identifier [ number_literal ])) ;)) (if_statement "if ((uint)param_3[2] < (uint)param_3[3]) goto LAB_00341f14;" if (parenthesized_expression "((uint)param_3[2] < (uint)param_3[3])" ( (binary_expression "(uint)param_3[2] < (uint)param_3[3]" (cast_expression "(uint)param_3[2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_3[2]" identifier [ number_literal ])) < (cast_expression "(uint)param_3[3]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_3[3]" identifier [ number_literal ]))) )) (goto_statement "goto LAB_00341f14;" goto statement_identifier ;)) (labeled_statement "LAB_003424f8:\n            (**(code **)(*param_3 + 0x28))(param_3);" statement_identifier : (expression_statement "(**(code **)(*param_3 + 0x28))(param_3);" (call_expression "(**(code **)(*param_3 + 0x28))(param_3)" (parenthesized_expression "(**(code **)(*param_3 + 0x28))" ( (pointer_expression "**(code **)(*param_3 + 0x28)" * (pointer_expression "*(code **)(*param_3 + 0x28)" * (cast_expression "(code **)(*param_3 + 0x28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_3 + 0x28)" ( (binary_expression "*param_3 + 0x28" (pointer_expression "*param_3" * identifier) + number_literal) ))))) )) (argument_list "(param_3)" ( identifier ))) ;)) }))) (expression_statement "param_10 = param_10 + 1;" (assignment_expression "param_10 = param_10 + 1" identifier = (binary_expression "param_10 + 1" identifier + number_literal)) ;) (expression_statement "param_4 = -1;" (assignment_expression "param_4 = -1" identifier = number_literal) ;) }) (else_clause "else {\n          do {\n            param_10 = param_10 + 1;\n            if (param_11 == param_10) break;\n            iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,*param_10);\n          } while (iVar3 != 0);\n          iVar3 = param_4;\n          if ((param_3 != (int *)0x0) && (param_4 == -1)) goto LAB_0034201c;\n          while( true ) {\n            bVar1 = param_4 == -1;\n            iVar4 = param_6;\n            if ((param_5 != (int *)0x0) && (param_6 == -1)) {\n              if ((int *)param_5[2] < (int *)param_5[3]) {\n                iVar4 = *(int *)param_5[2];\n                if (iVar4 == -1) {\n                  param_5 = (int *)0x0;\n                }\n              }\n              else {\n                iVar4 = (**(code **)(*param_5 + 0x24))(param_5);\n                if (iVar4 == -1) {\n                  param_5 = (int *)0x0;\n                }\n              }\n            }\n            param_4 = iVar3;\n            if ((iVar4 == -1) == bVar1) break;\n            if ((param_3 != (int *)0x0) && (iVar3 == -1)) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar3 = *(int *)param_3[2];\n                if (iVar3 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n              else {\n                iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n                if (iVar3 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n            }\n            iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,iVar3);\n            if (iVar3 == 0) break;\n            if ((uint)param_3[2] < (uint)param_3[3]) {\n              param_3[2] = param_3[2] + 4;\nLAB_0034201c:\n              piVar7 = (int *)param_3[2];\n              if (piVar7 < (int *)param_3[3]) goto LAB_00342030;\nLAB_003422d0:\n              param_4 = (**(code **)(*param_3 + 0x24))(param_3);\n            }\n            else {\n              (**(code **)(*param_3 + 0x28))(param_3);\n              piVar7 = (int *)param_3[2];\n              if ((int *)param_3[3] <= piVar7) goto LAB_003422d0;\nLAB_00342030:\n              param_4 = *piVar7;\n            }\n            iVar3 = -1;\n            if (param_4 == -1) {\n              param_3 = (int *)0x0;\n            }\n          }\n        }" else (compound_statement "{\n          do {\n            param_10 = param_10 + 1;\n            if (param_11 == param_10) break;\n            iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,*param_10);\n          } while (iVar3 != 0);\n          iVar3 = param_4;\n          if ((param_3 != (int *)0x0) && (param_4 == -1)) goto LAB_0034201c;\n          while( true ) {\n            bVar1 = param_4 == -1;\n            iVar4 = param_6;\n            if ((param_5 != (int *)0x0) && (param_6 == -1)) {\n              if ((int *)param_5[2] < (int *)param_5[3]) {\n                iVar4 = *(int *)param_5[2];\n                if (iVar4 == -1) {\n                  param_5 = (int *)0x0;\n                }\n              }\n              else {\n                iVar4 = (**(code **)(*param_5 + 0x24))(param_5);\n                if (iVar4 == -1) {\n                  param_5 = (int *)0x0;\n                }\n              }\n            }\n            param_4 = iVar3;\n            if ((iVar4 == -1) == bVar1) break;\n            if ((param_3 != (int *)0x0) && (iVar3 == -1)) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar3 = *(int *)param_3[2];\n                if (iVar3 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n              else {\n                iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n                if (iVar3 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n            }\n            iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,iVar3);\n            if (iVar3 == 0) break;\n            if ((uint)param_3[2] < (uint)param_3[3]) {\n              param_3[2] = param_3[2] + 4;\nLAB_0034201c:\n              piVar7 = (int *)param_3[2];\n              if (piVar7 < (int *)param_3[3]) goto LAB_00342030;\nLAB_003422d0:\n              param_4 = (**(code **)(*param_3 + 0x24))(param_3);\n            }\n            else {\n              (**(code **)(*param_3 + 0x28))(param_3);\n              piVar7 = (int *)param_3[2];\n              if ((int *)param_3[3] <= piVar7) goto LAB_003422d0;\nLAB_00342030:\n              param_4 = *piVar7;\n            }\n            iVar3 = -1;\n            if (param_4 == -1) {\n              param_3 = (int *)0x0;\n            }\n          }\n        }" { (do_statement "do {\n            param_10 = param_10 + 1;\n            if (param_11 == param_10) break;\n            iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,*param_10);\n          } while (iVar3 != 0);" do (compound_statement "{\n            param_10 = param_10 + 1;\n            if (param_11 == param_10) break;\n            iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,*param_10);\n          }" { (expression_statement "param_10 = param_10 + 1;" (assignment_expression "param_10 = param_10 + 1" identifier = (binary_expression "param_10 + 1" identifier + number_literal)) ;) (if_statement "if (param_11 == param_10) break;" if (parenthesized_expression "(param_11 == param_10)" ( (binary_expression "param_11 == param_10" identifier == identifier) )) (break_statement "break;" break ;)) (expression_statement "iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,*param_10);" (assignment_expression "iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,*param_10)" identifier = (call_expression "(**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,*param_10)" (parenthesized_expression "(**(code **)(*(int *)pcVar2 + 8))" ( (pointer_expression "**(code **)(*(int *)pcVar2 + 8)" * (pointer_expression "*(code **)(*(int *)pcVar2 + 8)" * (cast_expression "(code **)(*(int *)pcVar2 + 8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)pcVar2 + 8)" ( (binary_expression "*(int *)pcVar2 + 8" (pointer_expression "*(int *)pcVar2" * (cast_expression "(int *)pcVar2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) )) (argument_list "(pcVar2,0x20,*param_10)" ( identifier , number_literal , (pointer_expression "*param_10" * identifier) )))) ;) }) while (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) ;) (expression_statement "iVar3 = param_4;" (assignment_expression "iVar3 = param_4" identifier = identifier) ;) (if_statement "if ((param_3 != (int *)0x0) && (param_4 == -1)) goto LAB_0034201c;" if (parenthesized_expression "((param_3 != (int *)0x0) && (param_4 == -1))" ( (binary_expression "(param_3 != (int *)0x0) && (param_4 == -1)" (parenthesized_expression "(param_3 != (int *)0x0)" ( (binary_expression "param_3 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(param_4 == -1)" ( (binary_expression "param_4 == -1" identifier == number_literal) ))) )) (goto_statement "goto LAB_0034201c;" goto statement_identifier ;)) (while_statement "while( true ) {\n            bVar1 = param_4 == -1;\n            iVar4 = param_6;\n            if ((param_5 != (int *)0x0) && (param_6 == -1)) {\n              if ((int *)param_5[2] < (int *)param_5[3]) {\n                iVar4 = *(int *)param_5[2];\n                if (iVar4 == -1) {\n                  param_5 = (int *)0x0;\n                }\n              }\n              else {\n                iVar4 = (**(code **)(*param_5 + 0x24))(param_5);\n                if (iVar4 == -1) {\n                  param_5 = (int *)0x0;\n                }\n              }\n            }\n            param_4 = iVar3;\n            if ((iVar4 == -1) == bVar1) break;\n            if ((param_3 != (int *)0x0) && (iVar3 == -1)) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar3 = *(int *)param_3[2];\n                if (iVar3 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n              else {\n                iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n                if (iVar3 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n            }\n            iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,iVar3);\n            if (iVar3 == 0) break;\n            if ((uint)param_3[2] < (uint)param_3[3]) {\n              param_3[2] = param_3[2] + 4;\nLAB_0034201c:\n              piVar7 = (int *)param_3[2];\n              if (piVar7 < (int *)param_3[3]) goto LAB_00342030;\nLAB_003422d0:\n              param_4 = (**(code **)(*param_3 + 0x24))(param_3);\n            }\n            else {\n              (**(code **)(*param_3 + 0x28))(param_3);\n              piVar7 = (int *)param_3[2];\n              if ((int *)param_3[3] <= piVar7) goto LAB_003422d0;\nLAB_00342030:\n              param_4 = *piVar7;\n            }\n            iVar3 = -1;\n            if (param_4 == -1) {\n              param_3 = (int *)0x0;\n            }\n          }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n            bVar1 = param_4 == -1;\n            iVar4 = param_6;\n            if ((param_5 != (int *)0x0) && (param_6 == -1)) {\n              if ((int *)param_5[2] < (int *)param_5[3]) {\n                iVar4 = *(int *)param_5[2];\n                if (iVar4 == -1) {\n                  param_5 = (int *)0x0;\n                }\n              }\n              else {\n                iVar4 = (**(code **)(*param_5 + 0x24))(param_5);\n                if (iVar4 == -1) {\n                  param_5 = (int *)0x0;\n                }\n              }\n            }\n            param_4 = iVar3;\n            if ((iVar4 == -1) == bVar1) break;\n            if ((param_3 != (int *)0x0) && (iVar3 == -1)) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar3 = *(int *)param_3[2];\n                if (iVar3 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n              else {\n                iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n                if (iVar3 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n            }\n            iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,iVar3);\n            if (iVar3 == 0) break;\n            if ((uint)param_3[2] < (uint)param_3[3]) {\n              param_3[2] = param_3[2] + 4;\nLAB_0034201c:\n              piVar7 = (int *)param_3[2];\n              if (piVar7 < (int *)param_3[3]) goto LAB_00342030;\nLAB_003422d0:\n              param_4 = (**(code **)(*param_3 + 0x24))(param_3);\n            }\n            else {\n              (**(code **)(*param_3 + 0x28))(param_3);\n              piVar7 = (int *)param_3[2];\n              if ((int *)param_3[3] <= piVar7) goto LAB_003422d0;\nLAB_00342030:\n              param_4 = *piVar7;\n            }\n            iVar3 = -1;\n            if (param_4 == -1) {\n              param_3 = (int *)0x0;\n            }\n          }" { (expression_statement "bVar1 = param_4 == -1;" (assignment_expression "bVar1 = param_4 == -1" identifier = (binary_expression "param_4 == -1" identifier == number_literal)) ;) (expression_statement "iVar4 = param_6;" (assignment_expression "iVar4 = param_6" identifier = identifier) ;) (if_statement "if ((param_5 != (int *)0x0) && (param_6 == -1)) {\n              if ((int *)param_5[2] < (int *)param_5[3]) {\n                iVar4 = *(int *)param_5[2];\n                if (iVar4 == -1) {\n                  param_5 = (int *)0x0;\n                }\n              }\n              else {\n                iVar4 = (**(code **)(*param_5 + 0x24))(param_5);\n                if (iVar4 == -1) {\n                  param_5 = (int *)0x0;\n                }\n              }\n            }" if (parenthesized_expression "((param_5 != (int *)0x0) && (param_6 == -1))" ( (binary_expression "(param_5 != (int *)0x0) && (param_6 == -1)" (parenthesized_expression "(param_5 != (int *)0x0)" ( (binary_expression "param_5 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(param_6 == -1)" ( (binary_expression "param_6 == -1" identifier == number_literal) ))) )) (compound_statement "{\n              if ((int *)param_5[2] < (int *)param_5[3]) {\n                iVar4 = *(int *)param_5[2];\n                if (iVar4 == -1) {\n                  param_5 = (int *)0x0;\n                }\n              }\n              else {\n                iVar4 = (**(code **)(*param_5 + 0x24))(param_5);\n                if (iVar4 == -1) {\n                  param_5 = (int *)0x0;\n                }\n              }\n            }" { (if_statement "if ((int *)param_5[2] < (int *)param_5[3]) {\n                iVar4 = *(int *)param_5[2];\n                if (iVar4 == -1) {\n                  param_5 = (int *)0x0;\n                }\n              }\n              else {\n                iVar4 = (**(code **)(*param_5 + 0x24))(param_5);\n                if (iVar4 == -1) {\n                  param_5 = (int *)0x0;\n                }\n              }" if (parenthesized_expression "((int *)param_5[2] < (int *)param_5[3])" ( (binary_expression "(int *)param_5[2] < (int *)param_5[3]" (cast_expression "(int *)param_5[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_5[2]" identifier [ number_literal ])) < (cast_expression "(int *)param_5[3]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_5[3]" identifier [ number_literal ]))) )) (compound_statement "{\n                iVar4 = *(int *)param_5[2];\n                if (iVar4 == -1) {\n                  param_5 = (int *)0x0;\n                }\n              }" { (expression_statement "iVar4 = *(int *)param_5[2];" (assignment_expression "iVar4 = *(int *)param_5[2]" identifier = (pointer_expression "*(int *)param_5[2]" * (cast_expression "(int *)param_5[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_5[2]" identifier [ number_literal ])))) ;) (if_statement "if (iVar4 == -1) {\n                  param_5 = (int *)0x0;\n                }" if (parenthesized_expression "(iVar4 == -1)" ( (binary_expression "iVar4 == -1" identifier == number_literal) )) (compound_statement "{\n                  param_5 = (int *)0x0;\n                }" { (expression_statement "param_5 = (int *)0x0;" (assignment_expression "param_5 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) }) (else_clause "else {\n                iVar4 = (**(code **)(*param_5 + 0x24))(param_5);\n                if (iVar4 == -1) {\n                  param_5 = (int *)0x0;\n                }\n              }" else (compound_statement "{\n                iVar4 = (**(code **)(*param_5 + 0x24))(param_5);\n                if (iVar4 == -1) {\n                  param_5 = (int *)0x0;\n                }\n              }" { (expression_statement "iVar4 = (**(code **)(*param_5 + 0x24))(param_5);" (assignment_expression "iVar4 = (**(code **)(*param_5 + 0x24))(param_5)" identifier = (call_expression "(**(code **)(*param_5 + 0x24))(param_5)" (parenthesized_expression "(**(code **)(*param_5 + 0x24))" ( (pointer_expression "**(code **)(*param_5 + 0x24)" * (pointer_expression "*(code **)(*param_5 + 0x24)" * (cast_expression "(code **)(*param_5 + 0x24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_5 + 0x24)" ( (binary_expression "*param_5 + 0x24" (pointer_expression "*param_5" * identifier) + number_literal) ))))) )) (argument_list "(param_5)" ( identifier )))) ;) (if_statement "if (iVar4 == -1) {\n                  param_5 = (int *)0x0;\n                }" if (parenthesized_expression "(iVar4 == -1)" ( (binary_expression "iVar4 == -1" identifier == number_literal) )) (compound_statement "{\n                  param_5 = (int *)0x0;\n                }" { (expression_statement "param_5 = (int *)0x0;" (assignment_expression "param_5 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) }))) })) (expression_statement "param_4 = iVar3;" (assignment_expression "param_4 = iVar3" identifier = identifier) ;) (if_statement "if ((iVar4 == -1) == bVar1) break;" if (parenthesized_expression "((iVar4 == -1) == bVar1)" ( (binary_expression "(iVar4 == -1) == bVar1" (parenthesized_expression "(iVar4 == -1)" ( (binary_expression "iVar4 == -1" identifier == number_literal) )) == identifier) )) (break_statement "break;" break ;)) (if_statement "if ((param_3 != (int *)0x0) && (iVar3 == -1)) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar3 = *(int *)param_3[2];\n                if (iVar3 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n              else {\n                iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n                if (iVar3 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n            }" if (parenthesized_expression "((param_3 != (int *)0x0) && (iVar3 == -1))" ( (binary_expression "(param_3 != (int *)0x0) && (iVar3 == -1)" (parenthesized_expression "(param_3 != (int *)0x0)" ( (binary_expression "param_3 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(iVar3 == -1)" ( (binary_expression "iVar3 == -1" identifier == number_literal) ))) )) (compound_statement "{\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar3 = *(int *)param_3[2];\n                if (iVar3 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n              else {\n                iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n                if (iVar3 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n            }" { (if_statement "if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar3 = *(int *)param_3[2];\n                if (iVar3 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n              else {\n                iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n                if (iVar3 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }" if (parenthesized_expression "((int *)param_3[2] < (int *)param_3[3])" ( (binary_expression "(int *)param_3[2] < (int *)param_3[3]" (cast_expression "(int *)param_3[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[2]" identifier [ number_literal ])) < (cast_expression "(int *)param_3[3]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[3]" identifier [ number_literal ]))) )) (compound_statement "{\n                iVar3 = *(int *)param_3[2];\n                if (iVar3 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }" { (expression_statement "iVar3 = *(int *)param_3[2];" (assignment_expression "iVar3 = *(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 "*" *)) ) (subscript_expression "param_3[2]" identifier [ number_literal ])))) ;) (if_statement "if (iVar3 == -1) {\n                  param_3 = (int *)0x0;\n                }" if (parenthesized_expression "(iVar3 == -1)" ( (binary_expression "iVar3 == -1" identifier == number_literal) )) (compound_statement "{\n                  param_3 = (int *)0x0;\n                }" { (expression_statement "param_3 = (int *)0x0;" (assignment_expression "param_3 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) }) (else_clause "else {\n                iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n                if (iVar3 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }" else (compound_statement "{\n                iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n                if (iVar3 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }" { (expression_statement "iVar3 = (**(code **)(*param_3 + 0x24))(param_3);" (assignment_expression "iVar3 = (**(code **)(*param_3 + 0x24))(param_3)" identifier = (call_expression "(**(code **)(*param_3 + 0x24))(param_3)" (parenthesized_expression "(**(code **)(*param_3 + 0x24))" ( (pointer_expression "**(code **)(*param_3 + 0x24)" * (pointer_expression "*(code **)(*param_3 + 0x24)" * (cast_expression "(code **)(*param_3 + 0x24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_3 + 0x24)" ( (binary_expression "*param_3 + 0x24" (pointer_expression "*param_3" * identifier) + number_literal) ))))) )) (argument_list "(param_3)" ( identifier )))) ;) (if_statement "if (iVar3 == -1) {\n                  param_3 = (int *)0x0;\n                }" if (parenthesized_expression "(iVar3 == -1)" ( (binary_expression "iVar3 == -1" identifier == number_literal) )) (compound_statement "{\n                  param_3 = (int *)0x0;\n                }" { (expression_statement "param_3 = (int *)0x0;" (assignment_expression "param_3 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) }))) })) (expression_statement "iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,iVar3);" (assignment_expression "iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,iVar3)" identifier = (call_expression "(**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,iVar3)" (parenthesized_expression "(**(code **)(*(int *)pcVar2 + 8))" ( (pointer_expression "**(code **)(*(int *)pcVar2 + 8)" * (pointer_expression "*(code **)(*(int *)pcVar2 + 8)" * (cast_expression "(code **)(*(int *)pcVar2 + 8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)pcVar2 + 8)" ( (binary_expression "*(int *)pcVar2 + 8" (pointer_expression "*(int *)pcVar2" * (cast_expression "(int *)pcVar2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) )) (argument_list "(pcVar2,0x20,iVar3)" ( identifier , number_literal , identifier )))) ;) (if_statement "if (iVar3 == 0) break;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (if_statement "if ((uint)param_3[2] < (uint)param_3[3]) {\n              param_3[2] = param_3[2] + 4;\nLAB_0034201c:\n              piVar7 = (int *)param_3[2];\n              if (piVar7 < (int *)param_3[3]) goto LAB_00342030;\nLAB_003422d0:\n              param_4 = (**(code **)(*param_3 + 0x24))(param_3);\n            }\n            else {\n              (**(code **)(*param_3 + 0x28))(param_3);\n              piVar7 = (int *)param_3[2];\n              if ((int *)param_3[3] <= piVar7) goto LAB_003422d0;\nLAB_00342030:\n              param_4 = *piVar7;\n            }" if (parenthesized_expression "((uint)param_3[2] < (uint)param_3[3])" ( (binary_expression "(uint)param_3[2] < (uint)param_3[3]" (cast_expression "(uint)param_3[2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_3[2]" identifier [ number_literal ])) < (cast_expression "(uint)param_3[3]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_3[3]" identifier [ number_literal ]))) )) (compound_statement "{\n              param_3[2] = param_3[2] + 4;\nLAB_0034201c:\n              piVar7 = (int *)param_3[2];\n              if (piVar7 < (int *)param_3[3]) goto LAB_00342030;\nLAB_003422d0:\n              param_4 = (**(code **)(*param_3 + 0x24))(param_3);\n            }" { (expression_statement "param_3[2] = param_3[2] + 4;" (assignment_expression "param_3[2] = param_3[2] + 4" (subscript_expression "param_3[2]" identifier [ number_literal ]) = (binary_expression "param_3[2] + 4" (subscript_expression "param_3[2]" identifier [ number_literal ]) + number_literal)) ;) (labeled_statement "LAB_0034201c:\n              piVar7 = (int *)param_3[2];" statement_identifier : (expression_statement "piVar7 = (int *)param_3[2];" (assignment_expression "piVar7 = (int *)param_3[2]" identifier = (cast_expression "(int *)param_3[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[2]" identifier [ number_literal ]))) ;)) (if_statement "if (piVar7 < (int *)param_3[3]) goto LAB_00342030;" if (parenthesized_expression "(piVar7 < (int *)param_3[3])" ( (binary_expression "piVar7 < (int *)param_3[3]" identifier < (cast_expression "(int *)param_3[3]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[3]" identifier [ number_literal ]))) )) (goto_statement "goto LAB_00342030;" goto statement_identifier ;)) (labeled_statement "LAB_003422d0:\n              param_4 = (**(code **)(*param_3 + 0x24))(param_3);" statement_identifier : (expression_statement "param_4 = (**(code **)(*param_3 + 0x24))(param_3);" (assignment_expression "param_4 = (**(code **)(*param_3 + 0x24))(param_3)" identifier = (call_expression "(**(code **)(*param_3 + 0x24))(param_3)" (parenthesized_expression "(**(code **)(*param_3 + 0x24))" ( (pointer_expression "**(code **)(*param_3 + 0x24)" * (pointer_expression "*(code **)(*param_3 + 0x24)" * (cast_expression "(code **)(*param_3 + 0x24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_3 + 0x24)" ( (binary_expression "*param_3 + 0x24" (pointer_expression "*param_3" * identifier) + number_literal) ))))) )) (argument_list "(param_3)" ( identifier )))) ;)) }) (else_clause "else {\n              (**(code **)(*param_3 + 0x28))(param_3);\n              piVar7 = (int *)param_3[2];\n              if ((int *)param_3[3] <= piVar7) goto LAB_003422d0;\nLAB_00342030:\n              param_4 = *piVar7;\n            }" else (compound_statement "{\n              (**(code **)(*param_3 + 0x28))(param_3);\n              piVar7 = (int *)param_3[2];\n              if ((int *)param_3[3] <= piVar7) goto LAB_003422d0;\nLAB_00342030:\n              param_4 = *piVar7;\n            }" { (expression_statement "(**(code **)(*param_3 + 0x28))(param_3);" (call_expression "(**(code **)(*param_3 + 0x28))(param_3)" (parenthesized_expression "(**(code **)(*param_3 + 0x28))" ( (pointer_expression "**(code **)(*param_3 + 0x28)" * (pointer_expression "*(code **)(*param_3 + 0x28)" * (cast_expression "(code **)(*param_3 + 0x28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_3 + 0x28)" ( (binary_expression "*param_3 + 0x28" (pointer_expression "*param_3" * identifier) + number_literal) ))))) )) (argument_list "(param_3)" ( identifier ))) ;) (expression_statement "piVar7 = (int *)param_3[2];" (assignment_expression "piVar7 = (int *)param_3[2]" identifier = (cast_expression "(int *)param_3[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[2]" identifier [ number_literal ]))) ;) (if_statement "if ((int *)param_3[3] <= piVar7) goto LAB_003422d0;" if (parenthesized_expression "((int *)param_3[3] <= piVar7)" ( (binary_expression "(int *)param_3[3] <= piVar7" (cast_expression "(int *)param_3[3]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[3]" identifier [ number_literal ])) <= identifier) )) (goto_statement "goto LAB_003422d0;" goto statement_identifier ;)) (labeled_statement "LAB_00342030:\n              param_4 = *piVar7;" statement_identifier : (expression_statement "param_4 = *piVar7;" (assignment_expression "param_4 = *piVar7" identifier = (pointer_expression "*piVar7" * identifier)) ;)) }))) (expression_statement "iVar3 = -1;" (assignment_expression "iVar3 = -1" identifier = number_literal) ;) (if_statement "if (param_4 == -1) {\n              param_3 = (int *)0x0;\n            }" if (parenthesized_expression "(param_4 == -1)" ( (binary_expression "param_4 == -1" identifier == number_literal) )) (compound_statement "{\n              param_3 = (int *)0x0;\n            }" { (expression_statement "param_3 = (int *)0x0;" (assignment_expression "param_3 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) })) }))) }))) (labeled_statement "LAB_00341f24:" statement_identifier : (expression_statement "" ;)) }) while (parenthesized_expression "((param_10 != param_11) && (*param_8 == 0))" ( (binary_expression "(param_10 != param_11) && (*param_8 == 0)" (parenthesized_expression "(param_10 != param_11)" ( (binary_expression "param_10 != param_11" identifier != identifier) )) && (parenthesized_expression "(*param_8 == 0)" ( (binary_expression "*param_8 == 0" (pointer_expression "*param_8" * identifier) == number_literal) ))) )) ;) })) (expression_statement "*param_1 = param_3;" (assignment_expression "*param_1 = param_3" (pointer_expression "*param_1" * identifier) = identifier) ;) (expression_statement "param_1[1] = param_4;" (assignment_expression "param_1[1] = param_4" (subscript_expression "param_1[1]" identifier [ number_literal ]) = identifier) ;) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (binary_expression (binary_expression (assignment_expression IDENT = IDENT) (ERROR : : IDENT) < IDENT) (ERROR : : IDENT) < (binary_expression IDENT >> (parenthesized_expression ( IDENT )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) && (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) < (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) })) }))) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) || (parenthesized_expression ( (binary_expression IDENT != LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT == LIT)) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) < (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) })) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT == LIT)) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (return_statement return ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) + LIT) ))))) )) (argument_list ( IDENT , (pointer_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 == IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) + LIT) ))))) )) (argument_list ( IDENT , (subscript_expression IDENT [ LIT ]) , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (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 == IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) + LIT) ))))) )) (argument_list ( IDENT , (subscript_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 (pointer_expression * IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) < IDENT) < (binary_expression IDENT >> IDENT)) )) (argument_list ( IDENT ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( (pointer_expression & IDENT) , IDENT , IDENT , IDENT , IDENT , IDENT , IDENT , IDENT , IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) < IDENT) < (binary_expression IDENT >> IDENT)) )) (argument_list ( IDENT ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , LIT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (labeled_statement statement_identifier (ERROR : : (comma_expression (binary_expression IDENT < IDENT) , IDENT) : : (comma_expression (binary_expression IDENT < IDENT) , IDENT) :) : (expression_statement (binary_expression IDENT < (binary_expression IDENT >> (ERROR > : :) (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , IDENT , IDENT , IDENT , IDENT , IDENT , IDENT , IDENT , IDENT , IDENT ))))) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) && (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) < (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( IDENT )))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) })) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) && (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) < (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( IDENT )))) ;) }))) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) == (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_expression * IDENT) | LIT)) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) + LIT) ))))) )) (argument_list ( IDENT , LIT , (pointer_expression * IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) + LIT) ))))) )) (argument_list ( IDENT , IDENT )))) ;)) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) + LIT) ))))) )) (argument_list ( IDENT , (pointer_expression * IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) + LIT) ))))) )) (argument_list ( IDENT , IDENT )))) ;)) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) + LIT) ))))) )) (argument_list ( IDENT , (pointer_expression * IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;)) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (return_statement return ;) })) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT + LIT)) ;)) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) < (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( IDENT , LIT )))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) + LIT) ))))) )) (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) + LIT) ))))) )) (argument_list ( IDENT , (pointer_expression * IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) < (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) })) }))) (goto_statement goto statement_identifier ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) + LIT) ))))) )) (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) + LIT) ))))) )) (argument_list ( IDENT , (pointer_expression * IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (goto_statement goto statement_identifier ;)) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;)) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) < (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (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 (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( IDENT ))) ;)) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) + LIT) ))))) )) (argument_list ( IDENT , LIT , (pointer_expression * IDENT) )))) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) && (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (goto_statement goto statement_identifier ;)) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT == LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) && (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) < (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) })) }))) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) == IDENT) )) (break_statement break ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) && (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) < (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) })) }))) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) + LIT) ))))) )) (argument_list ( IDENT , LIT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) < (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (subscript_expression IDENT [ LIT ]) + LIT)) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( IDENT )))) ;)) }) (else_clause else (compound_statement { (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 (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) <= IDENT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;)) }))) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) })) })) }))) }))) (labeled_statement statement_identifier : (expression_statement ;)) }) while (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != IDENT) )) && (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) ))) )) ;) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (return_statement return ;) })))
(function_definition "void FUN_00341d6c(undefined4 *param_1,int *param_2,int *param_3,int param_4,int *param_5,int param_6\n                 ,int param_7,uint *param_8,undefined4 param_9,undefined4 *param_10,\n                 undefined4 *param_11)\n\n{\n  bool bVar1;\n  ctype *pcVar2;\n  int iVar3;\n  int iVar4;\n  int iVar5;\n  uint uVar6;\n  int *piVar7;\n  undefined4 *puVar8;\n  code *pcVar9;\n  undefined4 local_60;\n  int local_5c;\n  int local_58;\n  undefined4 local_54;\n  int *local_50;\n  int local_4c;\n  int *local_48;\n  int local_44;\n  int *local_40;\n  int local_3c;\n  code *local_38;\n  int local_34;\n  locale *local_30;\n  undefined4 *local_2c;\n  \n  local_30 = (locale *)(param_7 + 0x6c);\n  pcVar2 = std::use_facet<std::ctype<wchar_t>>(local_30);\n  *param_8 = 0;\n  local_38 = (code *)PTR_do_get_00433d80;\n  if (param_10 != param_11) {\n    local_2c = &local_60;\n    do {\n      iVar3 = param_4;\n      if ((param_3 != (int *)0x0) && (param_4 == -1)) {\n        if ((int *)param_3[2] < (int *)param_3[3]) {\n          iVar3 = *(int *)param_3[2];\n          if (iVar3 == -1) {\n            param_3 = (int *)0x0;\n          }\n        }\n        else {\n          iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n          if (iVar3 == -1) {\n            param_3 = (int *)0x0;\n          }\n        }\n      }\n      if ((param_5 == (int *)0x0) || (param_6 != -1)) {\n        bVar1 = param_6 == -1;\n      }\n      else {\n        if ((int *)param_5[2] < (int *)param_5[3]) {\n          iVar4 = *(int *)param_5[2];\n          if (iVar4 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }\n        else {\n          iVar4 = (**(code **)(*param_5 + 0x24))(param_5);\n          if (iVar4 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }\n        bVar1 = iVar4 == -1;\n      }\n      if (bVar1 == (iVar3 == -1)) {\n        *param_8 = 6;\n        *param_1 = param_3;\n        param_1[1] = param_4;\n        return;\n      }\n      iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,*param_10,0);\n      if (iVar3 == 0x25) {\n        puVar8 = param_10 + 1;\n        if (param_11 == puVar8) goto LAB_0034254c;\n        iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,param_10[1],0);\n        if ((iVar3 == 0x45) || (iVar3 == 0x4f)) {\n          puVar8 = param_10 + 2;\n          if (param_11 == puVar8) goto LAB_0034254c;\n          local_34 = iVar3;\n          iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,param_10[2],0);\n          pcVar9 = *(code **)(*param_2 + 0x20);\n          iVar4 = local_34;\n          if (pcVar9 != local_38) goto LAB_0034243c;\n          piVar7 = (int *)(*(code *)PTR_use_facet<std_ctype<wchar_t>>_00433ac8)(local_30);\n          pcVar9 = *(code **)(*piVar7 + 0x28);\n          *param_8 = 0;\n          local_60 = (*pcVar9)(piVar7,0x25);\n          if (local_34 == 0) goto LAB_003421b4;\n          local_5c = local_34;\n          local_54 = 0;\n          local_58 = iVar3;\n        }\n        else {\n          pcVar9 = *(code **)(*param_2 + 0x20);\n          if (pcVar9 != local_38) {\n            iVar4 = 0;\nLAB_0034243c:\n            param_10 = puVar8 + 1;\n            (*pcVar9)(&local_40,param_2,param_3,param_4,param_5,param_6,param_7,param_8,param_9,\n                      iVar3,iVar4);\n            param_4 = local_3c;\n            param_3 = local_40;\n            goto LAB_00341f24;\n          }\n          local_34 = iVar3;\n          piVar7 = (int *)(*(code *)PTR_use_facet<std_ctype<wchar_t>>_00433ac8)(local_30);\n          pcVar9 = *(code **)(*piVar7 + 0x28);\n          *param_8 = 0;\n          local_60 = (*pcVar9)(piVar7,0x25);\n          iVar3 = local_34;\nLAB_003421b4:\n          local_58 = 0;\n          local_5c = iVar3;\n        }\n        local_4c = param_6;\n        local_50 = param_5;\n        std::time_get<wchar_t,std::istreambuf_iterator<wchar_t,std::char_traits<wchar_t>>>::\n        _M_extract_via_format\n                  (&local_40,param_2,param_3,param_4,param_5,param_6,param_7,param_8,param_9,\n                   local_2c);\n        param_4 = local_3c;\n        param_3 = local_40;\n        local_48 = local_40;\n        local_44 = local_3c;\n        iVar3 = local_3c;\n        if ((local_40 != (int *)0x0) && (local_3c == -1)) {\n          if ((int *)local_40[2] < (int *)local_40[3]) {\n            iVar3 = *(int *)local_40[2];\n          }\n          else {\n            iVar3 = (**(code **)(*local_40 + 0x24))(local_40);\n          }\n          if (iVar3 == -1) {\n            param_3 = (int *)0x0;\n          }\n        }\n        iVar4 = param_6;\n        if ((param_5 != (int *)0x0) && (param_6 == -1)) {\n          if ((int *)param_5[2] < (int *)param_5[3]) {\n            iVar4 = *(int *)param_5[2];\n          }\n          else {\n            iVar4 = (**(code **)(*param_5 + 0x24))(param_5);\n          }\n        }\n        if ((iVar4 == -1) == (iVar3 == -1)) {\n          *param_8 = *param_8 | 2;\n        }\n        param_10 = puVar8 + 1;\n      }\n      else {\n        iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,*param_10);\n        if (iVar3 == 0) {\n          iVar4 = param_4;\n          iVar3 = param_4;\n          if (param_3 == (int *)0x0) {\nLAB_00342380:\n            iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,iVar4);\n            iVar5 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n            if (iVar5 != iVar4) {\n              param_3 = (int *)0x0;\nLAB_00341ed0:\n              iVar3 = (**(code **)(*(int *)pcVar2 + 0x18))(pcVar2,iVar3);\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x18))(pcVar2,*param_10);\n              if (iVar4 != iVar3) {\nLAB_0034254c:\n                *param_8 = 4;\n                *param_1 = param_3;\n                param_1[1] = param_4;\n                return;\n              }\n              goto LAB_00341f00;\n            }\n            param_3 = (int *)0x0;\n            uVar6 = uRam00000008;\n            if (uRam0000000c <= uRam00000008) goto LAB_003424f8;\nLAB_00341f14:\n            param_3[2] = uVar6 + 4;\n          }\n          else {\n            if (param_4 == -1) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar4 = *(int *)param_3[2];\n              }\n              else {\n                iVar4 = (**(code **)(*param_3 + 0x24))(param_3,0xffffffff);\n              }\n              if (iVar4 == -1) goto LAB_00342380;\n              iVar3 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2);\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n              if (iVar3 != iVar4) {\n                if ((int *)param_3[2] < (int *)param_3[3]) {\n                  iVar3 = *(int *)param_3[2];\n                  if (iVar3 == -1) {\n                    param_3 = (int *)0x0;\n                  }\n                }\n                else {\n                  iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n                  if (iVar3 == -1) {\n                    param_3 = (int *)0x0;\n                  }\n                }\n                goto LAB_00341ed0;\n              }\n            }\n            else {\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2);\n              iVar5 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n              if (iVar5 != iVar4) goto LAB_00341ed0;\n            }\nLAB_00341f00:\n            uVar6 = param_3[2];\n            if ((uint)param_3[2] < (uint)param_3[3]) goto LAB_00341f14;\nLAB_003424f8:\n            (**(code **)(*param_3 + 0x28))(param_3);\n          }\n          param_10 = param_10 + 1;\n          param_4 = -1;\n        }\n        else {\n          do {\n            param_10 = param_10 + 1;\n            if (param_11 == param_10) break;\n            iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,*param_10);\n          } while (iVar3 != 0);\n          iVar3 = param_4;\n          if ((param_3 != (int *)0x0) && (param_4 == -1)) goto LAB_0034201c;\n          while( true ) {\n            bVar1 = param_4 == -1;\n            iVar4 = param_6;\n            if ((param_5 != (int *)0x0) && (param_6 == -1)) {\n              if ((int *)param_5[2] < (int *)param_5[3]) {\n                iVar4 = *(int *)param_5[2];\n                if (iVar4 == -1) {\n                  param_5 = (int *)0x0;\n                }\n              }\n              else {\n                iVar4 = (**(code **)(*param_5 + 0x24))(param_5);\n                if (iVar4 == -1) {\n                  param_5 = (int *)0x0;\n                }\n              }\n            }\n            param_4 = iVar3;\n            if ((iVar4 == -1) == bVar1) break;\n            if ((param_3 != (int *)0x0) && (iVar3 == -1)) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar3 = *(int *)param_3[2];\n                if (iVar3 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n              else {\n                iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n                if (iVar3 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n            }\n            iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,iVar3);\n            if (iVar3 == 0) break;\n            if ((uint)param_3[2] < (uint)param_3[3]) {\n              param_3[2] = param_3[2] + 4;\nLAB_0034201c:\n              piVar7 = (int *)param_3[2];\n              if (piVar7 < (int *)param_3[3]) goto LAB_00342030;\nLAB_003422d0:\n              param_4 = (**(code **)(*param_3 + 0x24))(param_3);\n            }\n            else {\n              (**(code **)(*param_3 + 0x28))(param_3);\n              piVar7 = (int *)param_3[2];\n              if ((int *)param_3[3] <= piVar7) goto LAB_003422d0;\nLAB_00342030:\n              param_4 = *piVar7;\n            }\n            iVar3 = -1;\n            if (param_4 == -1) {\n              param_3 = (int *)0x0;\n            }\n          }\n        }\n      }\nLAB_00341f24:\n    } while ((param_10 != param_11) && (*param_8 == 0));\n  }\n  *param_1 = param_3;\n  param_1[1] = param_4;\n  return;\n}" (primitive_type "void") (function_declarator "FUN_00341d6c(undefined4 *param_1,int *param_2,int *param_3,int param_4,int *param_5,int param_6\n                 ,int param_7,uint *param_8,undefined4 param_9,undefined4 *param_10,\n                 undefined4 *param_11)" (identifier "FUN_00341d6c") (parameter_list "(undefined4 *param_1,int *param_2,int *param_3,int param_4,int *param_5,int param_6\n                 ,int param_7,uint *param_8,undefined4 param_9,undefined4 *param_10,\n                 undefined4 *param_11)" (( "(") (parameter_declaration "undefined4 *param_1" (type_identifier "undefined4") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "int *param_2" (primitive_type "int") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) (, ",") (parameter_declaration "int *param_3" (primitive_type "int") (pointer_declarator "*param_3" (* "*") (identifier "param_3"))) (, ",") (parameter_declaration "int param_4" (primitive_type "int") (identifier "param_4")) (, ",") (parameter_declaration "int *param_5" (primitive_type "int") (pointer_declarator "*param_5" (* "*") (identifier "param_5"))) (, ",") (parameter_declaration "int param_6" (primitive_type "int") (identifier "param_6")) (, ",") (parameter_declaration "int param_7" (primitive_type "int") (identifier "param_7")) (, ",") (parameter_declaration "uint *param_8" (type_identifier "uint") (pointer_declarator "*param_8" (* "*") (identifier "param_8"))) (, ",") (parameter_declaration "undefined4 param_9" (type_identifier "undefined4") (identifier "param_9")) (, ",") (parameter_declaration "undefined4 *param_10" (type_identifier "undefined4") (pointer_declarator "*param_10" (* "*") (identifier "param_10"))) (, ",") (parameter_declaration "undefined4 *param_11" (type_identifier "undefined4") (pointer_declarator "*param_11" (* "*") (identifier "param_11"))) () ")"))) (compound_statement "{\n  bool bVar1;\n  ctype *pcVar2;\n  int iVar3;\n  int iVar4;\n  int iVar5;\n  uint uVar6;\n  int *piVar7;\n  undefined4 *puVar8;\n  code *pcVar9;\n  undefined4 local_60;\n  int local_5c;\n  int local_58;\n  undefined4 local_54;\n  int *local_50;\n  int local_4c;\n  int *local_48;\n  int local_44;\n  int *local_40;\n  int local_3c;\n  code *local_38;\n  int local_34;\n  locale *local_30;\n  undefined4 *local_2c;\n  \n  local_30 = (locale *)(param_7 + 0x6c);\n  pcVar2 = std::use_facet<std::ctype<wchar_t>>(local_30);\n  *param_8 = 0;\n  local_38 = (code *)PTR_do_get_00433d80;\n  if (param_10 != param_11) {\n    local_2c = &local_60;\n    do {\n      iVar3 = param_4;\n      if ((param_3 != (int *)0x0) && (param_4 == -1)) {\n        if ((int *)param_3[2] < (int *)param_3[3]) {\n          iVar3 = *(int *)param_3[2];\n          if (iVar3 == -1) {\n            param_3 = (int *)0x0;\n          }\n        }\n        else {\n          iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n          if (iVar3 == -1) {\n            param_3 = (int *)0x0;\n          }\n        }\n      }\n      if ((param_5 == (int *)0x0) || (param_6 != -1)) {\n        bVar1 = param_6 == -1;\n      }\n      else {\n        if ((int *)param_5[2] < (int *)param_5[3]) {\n          iVar4 = *(int *)param_5[2];\n          if (iVar4 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }\n        else {\n          iVar4 = (**(code **)(*param_5 + 0x24))(param_5);\n          if (iVar4 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }\n        bVar1 = iVar4 == -1;\n      }\n      if (bVar1 == (iVar3 == -1)) {\n        *param_8 = 6;\n        *param_1 = param_3;\n        param_1[1] = param_4;\n        return;\n      }\n      iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,*param_10,0);\n      if (iVar3 == 0x25) {\n        puVar8 = param_10 + 1;\n        if (param_11 == puVar8) goto LAB_0034254c;\n        iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,param_10[1],0);\n        if ((iVar3 == 0x45) || (iVar3 == 0x4f)) {\n          puVar8 = param_10 + 2;\n          if (param_11 == puVar8) goto LAB_0034254c;\n          local_34 = iVar3;\n          iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,param_10[2],0);\n          pcVar9 = *(code **)(*param_2 + 0x20);\n          iVar4 = local_34;\n          if (pcVar9 != local_38) goto LAB_0034243c;\n          piVar7 = (int *)(*(code *)PTR_use_facet<std_ctype<wchar_t>>_00433ac8)(local_30);\n          pcVar9 = *(code **)(*piVar7 + 0x28);\n          *param_8 = 0;\n          local_60 = (*pcVar9)(piVar7,0x25);\n          if (local_34 == 0) goto LAB_003421b4;\n          local_5c = local_34;\n          local_54 = 0;\n          local_58 = iVar3;\n        }\n        else {\n          pcVar9 = *(code **)(*param_2 + 0x20);\n          if (pcVar9 != local_38) {\n            iVar4 = 0;\nLAB_0034243c:\n            param_10 = puVar8 + 1;\n            (*pcVar9)(&local_40,param_2,param_3,param_4,param_5,param_6,param_7,param_8,param_9,\n                      iVar3,iVar4);\n            param_4 = local_3c;\n            param_3 = local_40;\n            goto LAB_00341f24;\n          }\n          local_34 = iVar3;\n          piVar7 = (int *)(*(code *)PTR_use_facet<std_ctype<wchar_t>>_00433ac8)(local_30);\n          pcVar9 = *(code **)(*piVar7 + 0x28);\n          *param_8 = 0;\n          local_60 = (*pcVar9)(piVar7,0x25);\n          iVar3 = local_34;\nLAB_003421b4:\n          local_58 = 0;\n          local_5c = iVar3;\n        }\n        local_4c = param_6;\n        local_50 = param_5;\n        std::time_get<wchar_t,std::istreambuf_iterator<wchar_t,std::char_traits<wchar_t>>>::\n        _M_extract_via_format\n                  (&local_40,param_2,param_3,param_4,param_5,param_6,param_7,param_8,param_9,\n                   local_2c);\n        param_4 = local_3c;\n        param_3 = local_40;\n        local_48 = local_40;\n        local_44 = local_3c;\n        iVar3 = local_3c;\n        if ((local_40 != (int *)0x0) && (local_3c == -1)) {\n          if ((int *)local_40[2] < (int *)local_40[3]) {\n            iVar3 = *(int *)local_40[2];\n          }\n          else {\n            iVar3 = (**(code **)(*local_40 + 0x24))(local_40);\n          }\n          if (iVar3 == -1) {\n            param_3 = (int *)0x0;\n          }\n        }\n        iVar4 = param_6;\n        if ((param_5 != (int *)0x0) && (param_6 == -1)) {\n          if ((int *)param_5[2] < (int *)param_5[3]) {\n            iVar4 = *(int *)param_5[2];\n          }\n          else {\n            iVar4 = (**(code **)(*param_5 + 0x24))(param_5);\n          }\n        }\n        if ((iVar4 == -1) == (iVar3 == -1)) {\n          *param_8 = *param_8 | 2;\n        }\n        param_10 = puVar8 + 1;\n      }\n      else {\n        iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,*param_10);\n        if (iVar3 == 0) {\n          iVar4 = param_4;\n          iVar3 = param_4;\n          if (param_3 == (int *)0x0) {\nLAB_00342380:\n            iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,iVar4);\n            iVar5 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n            if (iVar5 != iVar4) {\n              param_3 = (int *)0x0;\nLAB_00341ed0:\n              iVar3 = (**(code **)(*(int *)pcVar2 + 0x18))(pcVar2,iVar3);\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x18))(pcVar2,*param_10);\n              if (iVar4 != iVar3) {\nLAB_0034254c:\n                *param_8 = 4;\n                *param_1 = param_3;\n                param_1[1] = param_4;\n                return;\n              }\n              goto LAB_00341f00;\n            }\n            param_3 = (int *)0x0;\n            uVar6 = uRam00000008;\n            if (uRam0000000c <= uRam00000008) goto LAB_003424f8;\nLAB_00341f14:\n            param_3[2] = uVar6 + 4;\n          }\n          else {\n            if (param_4 == -1) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar4 = *(int *)param_3[2];\n              }\n              else {\n                iVar4 = (**(code **)(*param_3 + 0x24))(param_3,0xffffffff);\n              }\n              if (iVar4 == -1) goto LAB_00342380;\n              iVar3 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2);\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n              if (iVar3 != iVar4) {\n                if ((int *)param_3[2] < (int *)param_3[3]) {\n                  iVar3 = *(int *)param_3[2];\n                  if (iVar3 == -1) {\n                    param_3 = (int *)0x0;\n                  }\n                }\n                else {\n                  iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n                  if (iVar3 == -1) {\n                    param_3 = (int *)0x0;\n                  }\n                }\n                goto LAB_00341ed0;\n              }\n            }\n            else {\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2);\n              iVar5 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n              if (iVar5 != iVar4) goto LAB_00341ed0;\n            }\nLAB_00341f00:\n            uVar6 = param_3[2];\n            if ((uint)param_3[2] < (uint)param_3[3]) goto LAB_00341f14;\nLAB_003424f8:\n            (**(code **)(*param_3 + 0x28))(param_3);\n          }\n          param_10 = param_10 + 1;\n          param_4 = -1;\n        }\n        else {\n          do {\n            param_10 = param_10 + 1;\n            if (param_11 == param_10) break;\n            iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,*param_10);\n          } while (iVar3 != 0);\n          iVar3 = param_4;\n          if ((param_3 != (int *)0x0) && (param_4 == -1)) goto LAB_0034201c;\n          while( true ) {\n            bVar1 = param_4 == -1;\n            iVar4 = param_6;\n            if ((param_5 != (int *)0x0) && (param_6 == -1)) {\n              if ((int *)param_5[2] < (int *)param_5[3]) {\n                iVar4 = *(int *)param_5[2];\n                if (iVar4 == -1) {\n                  param_5 = (int *)0x0;\n                }\n              }\n              else {\n                iVar4 = (**(code **)(*param_5 + 0x24))(param_5);\n                if (iVar4 == -1) {\n                  param_5 = (int *)0x0;\n                }\n              }\n            }\n            param_4 = iVar3;\n            if ((iVar4 == -1) == bVar1) break;\n            if ((param_3 != (int *)0x0) && (iVar3 == -1)) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar3 = *(int *)param_3[2];\n                if (iVar3 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n              else {\n                iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n                if (iVar3 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n            }\n            iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,iVar3);\n            if (iVar3 == 0) break;\n            if ((uint)param_3[2] < (uint)param_3[3]) {\n              param_3[2] = param_3[2] + 4;\nLAB_0034201c:\n              piVar7 = (int *)param_3[2];\n              if (piVar7 < (int *)param_3[3]) goto LAB_00342030;\nLAB_003422d0:\n              param_4 = (**(code **)(*param_3 + 0x24))(param_3);\n            }\n            else {\n              (**(code **)(*param_3 + 0x28))(param_3);\n              piVar7 = (int *)param_3[2];\n              if ((int *)param_3[3] <= piVar7) goto LAB_003422d0;\nLAB_00342030:\n              param_4 = *piVar7;\n            }\n            iVar3 = -1;\n            if (param_4 == -1) {\n              param_3 = (int *)0x0;\n            }\n          }\n        }\n      }\nLAB_00341f24:\n    } while ((param_10 != param_11) && (*param_8 == 0));\n  }\n  *param_1 = param_3;\n  param_1[1] = param_4;\n  return;\n}" ({ "{") (declaration "bool bVar1;" (primitive_type "bool") (identifier "bVar1") (; ";")) (declaration "ctype *pcVar2;" (type_identifier "ctype") (pointer_declarator "*pcVar2" (* "*") (identifier "pcVar2")) (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "int iVar4;" (primitive_type "int") (identifier "iVar4") (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (declaration "uint uVar6;" (type_identifier "uint") (identifier "uVar6") (; ";")) (declaration "int *piVar7;" (primitive_type "int") (pointer_declarator "*piVar7" (* "*") (identifier "piVar7")) (; ";")) (declaration "undefined4 *puVar8;" (type_identifier "undefined4") (pointer_declarator "*puVar8" (* "*") (identifier "puVar8")) (; ";")) (declaration "code *pcVar9;" (type_identifier "code") (pointer_declarator "*pcVar9" (* "*") (identifier "pcVar9")) (; ";")) (declaration "undefined4 local_60;" (type_identifier "undefined4") (identifier "local_60") (; ";")) (declaration "int local_5c;" (primitive_type "int") (identifier "local_5c") (; ";")) (declaration "int local_58;" (primitive_type "int") (identifier "local_58") (; ";")) (declaration "undefined4 local_54;" (type_identifier "undefined4") (identifier "local_54") (; ";")) (declaration "int *local_50;" (primitive_type "int") (pointer_declarator "*local_50" (* "*") (identifier "local_50")) (; ";")) (declaration "int local_4c;" (primitive_type "int") (identifier "local_4c") (; ";")) (declaration "int *local_48;" (primitive_type "int") (pointer_declarator "*local_48" (* "*") (identifier "local_48")) (; ";")) (declaration "int local_44;" (primitive_type "int") (identifier "local_44") (; ";")) (declaration "int *local_40;" (primitive_type "int") (pointer_declarator "*local_40" (* "*") (identifier "local_40")) (; ";")) (declaration "int local_3c;" (primitive_type "int") (identifier "local_3c") (; ";")) (declaration "code *local_38;" (type_identifier "code") (pointer_declarator "*local_38" (* "*") (identifier "local_38")) (; ";")) (declaration "int local_34;" (primitive_type "int") (identifier "local_34") (; ";")) (declaration "locale *local_30;" (type_identifier "locale") (pointer_declarator "*local_30" (* "*") (identifier "local_30")) (; ";")) (declaration "undefined4 *local_2c;" (type_identifier "undefined4") (pointer_declarator "*local_2c" (* "*") (identifier "local_2c")) (; ";")) (expression_statement "local_30 = (locale *)(param_7 + 0x6c);" (assignment_expression "local_30 = (locale *)(param_7 + 0x6c)" (identifier "local_30") (= "=") (cast_expression "(locale *)(param_7 + 0x6c)" (( "(") (type_descriptor "locale *" (type_identifier "locale") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_7 + 0x6c)" (( "(") (binary_expression "param_7 + 0x6c" (identifier "param_7") (+ "+") (number_literal "0x6c")) () ")")))) (; ";")) (expression_statement "pcVar2 = std::use_facet<std::ctype<wchar_t>>(local_30);" (binary_expression "pcVar2 = std::use_facet<std::ctype<wchar_t>>(local_30)" (binary_expression "pcVar2 = std::use_facet<std" (assignment_expression "pcVar2 = std" (identifier "pcVar2") (= "=") (identifier "std")) (ERROR "::use_facet" (: ":") (: ":") (identifier "use_facet")) (< "<") (identifier "std")) (ERROR "::ctype" (: ":") (: ":") (identifier "ctype")) (< "<") (binary_expression "wchar_t>>(local_30)" (identifier "wchar_t") (>> ">>") (parenthesized_expression "(local_30)" (( "(") (identifier "local_30") () ")")))) (; ";")) (expression_statement "*param_8 = 0;" (assignment_expression "*param_8 = 0" (pointer_expression "*param_8" (* "*") (identifier "param_8")) (= "=") (number_literal "0")) (; ";")) (expression_statement "local_38 = (code *)PTR_do_get_00433d80;" (assignment_expression "local_38 = (code *)PTR_do_get_00433d80" (identifier "local_38") (= "=") (cast_expression "(code *)PTR_do_get_00433d80" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_do_get_00433d80"))) (; ";")) (if_statement "if (param_10 != param_11) {\n    local_2c = &local_60;\n    do {\n      iVar3 = param_4;\n      if ((param_3 != (int *)0x0) && (param_4 == -1)) {\n        if ((int *)param_3[2] < (int *)param_3[3]) {\n          iVar3 = *(int *)param_3[2];\n          if (iVar3 == -1) {\n            param_3 = (int *)0x0;\n          }\n        }\n        else {\n          iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n          if (iVar3 == -1) {\n            param_3 = (int *)0x0;\n          }\n        }\n      }\n      if ((param_5 == (int *)0x0) || (param_6 != -1)) {\n        bVar1 = param_6 == -1;\n      }\n      else {\n        if ((int *)param_5[2] < (int *)param_5[3]) {\n          iVar4 = *(int *)param_5[2];\n          if (iVar4 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }\n        else {\n          iVar4 = (**(code **)(*param_5 + 0x24))(param_5);\n          if (iVar4 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }\n        bVar1 = iVar4 == -1;\n      }\n      if (bVar1 == (iVar3 == -1)) {\n        *param_8 = 6;\n        *param_1 = param_3;\n        param_1[1] = param_4;\n        return;\n      }\n      iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,*param_10,0);\n      if (iVar3 == 0x25) {\n        puVar8 = param_10 + 1;\n        if (param_11 == puVar8) goto LAB_0034254c;\n        iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,param_10[1],0);\n        if ((iVar3 == 0x45) || (iVar3 == 0x4f)) {\n          puVar8 = param_10 + 2;\n          if (param_11 == puVar8) goto LAB_0034254c;\n          local_34 = iVar3;\n          iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,param_10[2],0);\n          pcVar9 = *(code **)(*param_2 + 0x20);\n          iVar4 = local_34;\n          if (pcVar9 != local_38) goto LAB_0034243c;\n          piVar7 = (int *)(*(code *)PTR_use_facet<std_ctype<wchar_t>>_00433ac8)(local_30);\n          pcVar9 = *(code **)(*piVar7 + 0x28);\n          *param_8 = 0;\n          local_60 = (*pcVar9)(piVar7,0x25);\n          if (local_34 == 0) goto LAB_003421b4;\n          local_5c = local_34;\n          local_54 = 0;\n          local_58 = iVar3;\n        }\n        else {\n          pcVar9 = *(code **)(*param_2 + 0x20);\n          if (pcVar9 != local_38) {\n            iVar4 = 0;\nLAB_0034243c:\n            param_10 = puVar8 + 1;\n            (*pcVar9)(&local_40,param_2,param_3,param_4,param_5,param_6,param_7,param_8,param_9,\n                      iVar3,iVar4);\n            param_4 = local_3c;\n            param_3 = local_40;\n            goto LAB_00341f24;\n          }\n          local_34 = iVar3;\n          piVar7 = (int *)(*(code *)PTR_use_facet<std_ctype<wchar_t>>_00433ac8)(local_30);\n          pcVar9 = *(code **)(*piVar7 + 0x28);\n          *param_8 = 0;\n          local_60 = (*pcVar9)(piVar7,0x25);\n          iVar3 = local_34;\nLAB_003421b4:\n          local_58 = 0;\n          local_5c = iVar3;\n        }\n        local_4c = param_6;\n        local_50 = param_5;\n        std::time_get<wchar_t,std::istreambuf_iterator<wchar_t,std::char_traits<wchar_t>>>::\n        _M_extract_via_format\n                  (&local_40,param_2,param_3,param_4,param_5,param_6,param_7,param_8,param_9,\n                   local_2c);\n        param_4 = local_3c;\n        param_3 = local_40;\n        local_48 = local_40;\n        local_44 = local_3c;\n        iVar3 = local_3c;\n        if ((local_40 != (int *)0x0) && (local_3c == -1)) {\n          if ((int *)local_40[2] < (int *)local_40[3]) {\n            iVar3 = *(int *)local_40[2];\n          }\n          else {\n            iVar3 = (**(code **)(*local_40 + 0x24))(local_40);\n          }\n          if (iVar3 == -1) {\n            param_3 = (int *)0x0;\n          }\n        }\n        iVar4 = param_6;\n        if ((param_5 != (int *)0x0) && (param_6 == -1)) {\n          if ((int *)param_5[2] < (int *)param_5[3]) {\n            iVar4 = *(int *)param_5[2];\n          }\n          else {\n            iVar4 = (**(code **)(*param_5 + 0x24))(param_5);\n          }\n        }\n        if ((iVar4 == -1) == (iVar3 == -1)) {\n          *param_8 = *param_8 | 2;\n        }\n        param_10 = puVar8 + 1;\n      }\n      else {\n        iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,*param_10);\n        if (iVar3 == 0) {\n          iVar4 = param_4;\n          iVar3 = param_4;\n          if (param_3 == (int *)0x0) {\nLAB_00342380:\n            iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,iVar4);\n            iVar5 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n            if (iVar5 != iVar4) {\n              param_3 = (int *)0x0;\nLAB_00341ed0:\n              iVar3 = (**(code **)(*(int *)pcVar2 + 0x18))(pcVar2,iVar3);\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x18))(pcVar2,*param_10);\n              if (iVar4 != iVar3) {\nLAB_0034254c:\n                *param_8 = 4;\n                *param_1 = param_3;\n                param_1[1] = param_4;\n                return;\n              }\n              goto LAB_00341f00;\n            }\n            param_3 = (int *)0x0;\n            uVar6 = uRam00000008;\n            if (uRam0000000c <= uRam00000008) goto LAB_003424f8;\nLAB_00341f14:\n            param_3[2] = uVar6 + 4;\n          }\n          else {\n            if (param_4 == -1) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar4 = *(int *)param_3[2];\n              }\n              else {\n                iVar4 = (**(code **)(*param_3 + 0x24))(param_3,0xffffffff);\n              }\n              if (iVar4 == -1) goto LAB_00342380;\n              iVar3 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2);\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n              if (iVar3 != iVar4) {\n                if ((int *)param_3[2] < (int *)param_3[3]) {\n                  iVar3 = *(int *)param_3[2];\n                  if (iVar3 == -1) {\n                    param_3 = (int *)0x0;\n                  }\n                }\n                else {\n                  iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n                  if (iVar3 == -1) {\n                    param_3 = (int *)0x0;\n                  }\n                }\n                goto LAB_00341ed0;\n              }\n            }\n            else {\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2);\n              iVar5 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n              if (iVar5 != iVar4) goto LAB_00341ed0;\n            }\nLAB_00341f00:\n            uVar6 = param_3[2];\n            if ((uint)param_3[2] < (uint)param_3[3]) goto LAB_00341f14;\nLAB_003424f8:\n            (**(code **)(*param_3 + 0x28))(param_3);\n          }\n          param_10 = param_10 + 1;\n          param_4 = -1;\n        }\n        else {\n          do {\n            param_10 = param_10 + 1;\n            if (param_11 == param_10) break;\n            iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,*param_10);\n          } while (iVar3 != 0);\n          iVar3 = param_4;\n          if ((param_3 != (int *)0x0) && (param_4 == -1)) goto LAB_0034201c;\n          while( true ) {\n            bVar1 = param_4 == -1;\n            iVar4 = param_6;\n            if ((param_5 != (int *)0x0) && (param_6 == -1)) {\n              if ((int *)param_5[2] < (int *)param_5[3]) {\n                iVar4 = *(int *)param_5[2];\n                if (iVar4 == -1) {\n                  param_5 = (int *)0x0;\n                }\n              }\n              else {\n                iVar4 = (**(code **)(*param_5 + 0x24))(param_5);\n                if (iVar4 == -1) {\n                  param_5 = (int *)0x0;\n                }\n              }\n            }\n            param_4 = iVar3;\n            if ((iVar4 == -1) == bVar1) break;\n            if ((param_3 != (int *)0x0) && (iVar3 == -1)) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar3 = *(int *)param_3[2];\n                if (iVar3 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n              else {\n                iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n                if (iVar3 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n            }\n            iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,iVar3);\n            if (iVar3 == 0) break;\n            if ((uint)param_3[2] < (uint)param_3[3]) {\n              param_3[2] = param_3[2] + 4;\nLAB_0034201c:\n              piVar7 = (int *)param_3[2];\n              if (piVar7 < (int *)param_3[3]) goto LAB_00342030;\nLAB_003422d0:\n              param_4 = (**(code **)(*param_3 + 0x24))(param_3);\n            }\n            else {\n              (**(code **)(*param_3 + 0x28))(param_3);\n              piVar7 = (int *)param_3[2];\n              if ((int *)param_3[3] <= piVar7) goto LAB_003422d0;\nLAB_00342030:\n              param_4 = *piVar7;\n            }\n            iVar3 = -1;\n            if (param_4 == -1) {\n              param_3 = (int *)0x0;\n            }\n          }\n        }\n      }\nLAB_00341f24:\n    } while ((param_10 != param_11) && (*param_8 == 0));\n  }" (if "if") (parenthesized_expression "(param_10 != param_11)" (( "(") (binary_expression "param_10 != param_11" (identifier "param_10") (!= "!=") (identifier "param_11")) () ")")) (compound_statement "{\n    local_2c = &local_60;\n    do {\n      iVar3 = param_4;\n      if ((param_3 != (int *)0x0) && (param_4 == -1)) {\n        if ((int *)param_3[2] < (int *)param_3[3]) {\n          iVar3 = *(int *)param_3[2];\n          if (iVar3 == -1) {\n            param_3 = (int *)0x0;\n          }\n        }\n        else {\n          iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n          if (iVar3 == -1) {\n            param_3 = (int *)0x0;\n          }\n        }\n      }\n      if ((param_5 == (int *)0x0) || (param_6 != -1)) {\n        bVar1 = param_6 == -1;\n      }\n      else {\n        if ((int *)param_5[2] < (int *)param_5[3]) {\n          iVar4 = *(int *)param_5[2];\n          if (iVar4 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }\n        else {\n          iVar4 = (**(code **)(*param_5 + 0x24))(param_5);\n          if (iVar4 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }\n        bVar1 = iVar4 == -1;\n      }\n      if (bVar1 == (iVar3 == -1)) {\n        *param_8 = 6;\n        *param_1 = param_3;\n        param_1[1] = param_4;\n        return;\n      }\n      iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,*param_10,0);\n      if (iVar3 == 0x25) {\n        puVar8 = param_10 + 1;\n        if (param_11 == puVar8) goto LAB_0034254c;\n        iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,param_10[1],0);\n        if ((iVar3 == 0x45) || (iVar3 == 0x4f)) {\n          puVar8 = param_10 + 2;\n          if (param_11 == puVar8) goto LAB_0034254c;\n          local_34 = iVar3;\n          iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,param_10[2],0);\n          pcVar9 = *(code **)(*param_2 + 0x20);\n          iVar4 = local_34;\n          if (pcVar9 != local_38) goto LAB_0034243c;\n          piVar7 = (int *)(*(code *)PTR_use_facet<std_ctype<wchar_t>>_00433ac8)(local_30);\n          pcVar9 = *(code **)(*piVar7 + 0x28);\n          *param_8 = 0;\n          local_60 = (*pcVar9)(piVar7,0x25);\n          if (local_34 == 0) goto LAB_003421b4;\n          local_5c = local_34;\n          local_54 = 0;\n          local_58 = iVar3;\n        }\n        else {\n          pcVar9 = *(code **)(*param_2 + 0x20);\n          if (pcVar9 != local_38) {\n            iVar4 = 0;\nLAB_0034243c:\n            param_10 = puVar8 + 1;\n            (*pcVar9)(&local_40,param_2,param_3,param_4,param_5,param_6,param_7,param_8,param_9,\n                      iVar3,iVar4);\n            param_4 = local_3c;\n            param_3 = local_40;\n            goto LAB_00341f24;\n          }\n          local_34 = iVar3;\n          piVar7 = (int *)(*(code *)PTR_use_facet<std_ctype<wchar_t>>_00433ac8)(local_30);\n          pcVar9 = *(code **)(*piVar7 + 0x28);\n          *param_8 = 0;\n          local_60 = (*pcVar9)(piVar7,0x25);\n          iVar3 = local_34;\nLAB_003421b4:\n          local_58 = 0;\n          local_5c = iVar3;\n        }\n        local_4c = param_6;\n        local_50 = param_5;\n        std::time_get<wchar_t,std::istreambuf_iterator<wchar_t,std::char_traits<wchar_t>>>::\n        _M_extract_via_format\n                  (&local_40,param_2,param_3,param_4,param_5,param_6,param_7,param_8,param_9,\n                   local_2c);\n        param_4 = local_3c;\n        param_3 = local_40;\n        local_48 = local_40;\n        local_44 = local_3c;\n        iVar3 = local_3c;\n        if ((local_40 != (int *)0x0) && (local_3c == -1)) {\n          if ((int *)local_40[2] < (int *)local_40[3]) {\n            iVar3 = *(int *)local_40[2];\n          }\n          else {\n            iVar3 = (**(code **)(*local_40 + 0x24))(local_40);\n          }\n          if (iVar3 == -1) {\n            param_3 = (int *)0x0;\n          }\n        }\n        iVar4 = param_6;\n        if ((param_5 != (int *)0x0) && (param_6 == -1)) {\n          if ((int *)param_5[2] < (int *)param_5[3]) {\n            iVar4 = *(int *)param_5[2];\n          }\n          else {\n            iVar4 = (**(code **)(*param_5 + 0x24))(param_5);\n          }\n        }\n        if ((iVar4 == -1) == (iVar3 == -1)) {\n          *param_8 = *param_8 | 2;\n        }\n        param_10 = puVar8 + 1;\n      }\n      else {\n        iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,*param_10);\n        if (iVar3 == 0) {\n          iVar4 = param_4;\n          iVar3 = param_4;\n          if (param_3 == (int *)0x0) {\nLAB_00342380:\n            iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,iVar4);\n            iVar5 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n            if (iVar5 != iVar4) {\n              param_3 = (int *)0x0;\nLAB_00341ed0:\n              iVar3 = (**(code **)(*(int *)pcVar2 + 0x18))(pcVar2,iVar3);\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x18))(pcVar2,*param_10);\n              if (iVar4 != iVar3) {\nLAB_0034254c:\n                *param_8 = 4;\n                *param_1 = param_3;\n                param_1[1] = param_4;\n                return;\n              }\n              goto LAB_00341f00;\n            }\n            param_3 = (int *)0x0;\n            uVar6 = uRam00000008;\n            if (uRam0000000c <= uRam00000008) goto LAB_003424f8;\nLAB_00341f14:\n            param_3[2] = uVar6 + 4;\n          }\n          else {\n            if (param_4 == -1) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar4 = *(int *)param_3[2];\n              }\n              else {\n                iVar4 = (**(code **)(*param_3 + 0x24))(param_3,0xffffffff);\n              }\n              if (iVar4 == -1) goto LAB_00342380;\n              iVar3 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2);\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n              if (iVar3 != iVar4) {\n                if ((int *)param_3[2] < (int *)param_3[3]) {\n                  iVar3 = *(int *)param_3[2];\n                  if (iVar3 == -1) {\n                    param_3 = (int *)0x0;\n                  }\n                }\n                else {\n                  iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n                  if (iVar3 == -1) {\n                    param_3 = (int *)0x0;\n                  }\n                }\n                goto LAB_00341ed0;\n              }\n            }\n            else {\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2);\n              iVar5 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n              if (iVar5 != iVar4) goto LAB_00341ed0;\n            }\nLAB_00341f00:\n            uVar6 = param_3[2];\n            if ((uint)param_3[2] < (uint)param_3[3]) goto LAB_00341f14;\nLAB_003424f8:\n            (**(code **)(*param_3 + 0x28))(param_3);\n          }\n          param_10 = param_10 + 1;\n          param_4 = -1;\n        }\n        else {\n          do {\n            param_10 = param_10 + 1;\n            if (param_11 == param_10) break;\n            iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,*param_10);\n          } while (iVar3 != 0);\n          iVar3 = param_4;\n          if ((param_3 != (int *)0x0) && (param_4 == -1)) goto LAB_0034201c;\n          while( true ) {\n            bVar1 = param_4 == -1;\n            iVar4 = param_6;\n            if ((param_5 != (int *)0x0) && (param_6 == -1)) {\n              if ((int *)param_5[2] < (int *)param_5[3]) {\n                iVar4 = *(int *)param_5[2];\n                if (iVar4 == -1) {\n                  param_5 = (int *)0x0;\n                }\n              }\n              else {\n                iVar4 = (**(code **)(*param_5 + 0x24))(param_5);\n                if (iVar4 == -1) {\n                  param_5 = (int *)0x0;\n                }\n              }\n            }\n            param_4 = iVar3;\n            if ((iVar4 == -1) == bVar1) break;\n            if ((param_3 != (int *)0x0) && (iVar3 == -1)) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar3 = *(int *)param_3[2];\n                if (iVar3 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n              else {\n                iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n                if (iVar3 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n            }\n            iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,iVar3);\n            if (iVar3 == 0) break;\n            if ((uint)param_3[2] < (uint)param_3[3]) {\n              param_3[2] = param_3[2] + 4;\nLAB_0034201c:\n              piVar7 = (int *)param_3[2];\n              if (piVar7 < (int *)param_3[3]) goto LAB_00342030;\nLAB_003422d0:\n              param_4 = (**(code **)(*param_3 + 0x24))(param_3);\n            }\n            else {\n              (**(code **)(*param_3 + 0x28))(param_3);\n              piVar7 = (int *)param_3[2];\n              if ((int *)param_3[3] <= piVar7) goto LAB_003422d0;\nLAB_00342030:\n              param_4 = *piVar7;\n            }\n            iVar3 = -1;\n            if (param_4 == -1) {\n              param_3 = (int *)0x0;\n            }\n          }\n        }\n      }\nLAB_00341f24:\n    } while ((param_10 != param_11) && (*param_8 == 0));\n  }" ({ "{") (expression_statement "local_2c = &local_60;" (assignment_expression "local_2c = &local_60" (identifier "local_2c") (= "=") (pointer_expression "&local_60" (& "&") (identifier "local_60"))) (; ";")) (do_statement "do {\n      iVar3 = param_4;\n      if ((param_3 != (int *)0x0) && (param_4 == -1)) {\n        if ((int *)param_3[2] < (int *)param_3[3]) {\n          iVar3 = *(int *)param_3[2];\n          if (iVar3 == -1) {\n            param_3 = (int *)0x0;\n          }\n        }\n        else {\n          iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n          if (iVar3 == -1) {\n            param_3 = (int *)0x0;\n          }\n        }\n      }\n      if ((param_5 == (int *)0x0) || (param_6 != -1)) {\n        bVar1 = param_6 == -1;\n      }\n      else {\n        if ((int *)param_5[2] < (int *)param_5[3]) {\n          iVar4 = *(int *)param_5[2];\n          if (iVar4 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }\n        else {\n          iVar4 = (**(code **)(*param_5 + 0x24))(param_5);\n          if (iVar4 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }\n        bVar1 = iVar4 == -1;\n      }\n      if (bVar1 == (iVar3 == -1)) {\n        *param_8 = 6;\n        *param_1 = param_3;\n        param_1[1] = param_4;\n        return;\n      }\n      iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,*param_10,0);\n      if (iVar3 == 0x25) {\n        puVar8 = param_10 + 1;\n        if (param_11 == puVar8) goto LAB_0034254c;\n        iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,param_10[1],0);\n        if ((iVar3 == 0x45) || (iVar3 == 0x4f)) {\n          puVar8 = param_10 + 2;\n          if (param_11 == puVar8) goto LAB_0034254c;\n          local_34 = iVar3;\n          iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,param_10[2],0);\n          pcVar9 = *(code **)(*param_2 + 0x20);\n          iVar4 = local_34;\n          if (pcVar9 != local_38) goto LAB_0034243c;\n          piVar7 = (int *)(*(code *)PTR_use_facet<std_ctype<wchar_t>>_00433ac8)(local_30);\n          pcVar9 = *(code **)(*piVar7 + 0x28);\n          *param_8 = 0;\n          local_60 = (*pcVar9)(piVar7,0x25);\n          if (local_34 == 0) goto LAB_003421b4;\n          local_5c = local_34;\n          local_54 = 0;\n          local_58 = iVar3;\n        }\n        else {\n          pcVar9 = *(code **)(*param_2 + 0x20);\n          if (pcVar9 != local_38) {\n            iVar4 = 0;\nLAB_0034243c:\n            param_10 = puVar8 + 1;\n            (*pcVar9)(&local_40,param_2,param_3,param_4,param_5,param_6,param_7,param_8,param_9,\n                      iVar3,iVar4);\n            param_4 = local_3c;\n            param_3 = local_40;\n            goto LAB_00341f24;\n          }\n          local_34 = iVar3;\n          piVar7 = (int *)(*(code *)PTR_use_facet<std_ctype<wchar_t>>_00433ac8)(local_30);\n          pcVar9 = *(code **)(*piVar7 + 0x28);\n          *param_8 = 0;\n          local_60 = (*pcVar9)(piVar7,0x25);\n          iVar3 = local_34;\nLAB_003421b4:\n          local_58 = 0;\n          local_5c = iVar3;\n        }\n        local_4c = param_6;\n        local_50 = param_5;\n        std::time_get<wchar_t,std::istreambuf_iterator<wchar_t,std::char_traits<wchar_t>>>::\n        _M_extract_via_format\n                  (&local_40,param_2,param_3,param_4,param_5,param_6,param_7,param_8,param_9,\n                   local_2c);\n        param_4 = local_3c;\n        param_3 = local_40;\n        local_48 = local_40;\n        local_44 = local_3c;\n        iVar3 = local_3c;\n        if ((local_40 != (int *)0x0) && (local_3c == -1)) {\n          if ((int *)local_40[2] < (int *)local_40[3]) {\n            iVar3 = *(int *)local_40[2];\n          }\n          else {\n            iVar3 = (**(code **)(*local_40 + 0x24))(local_40);\n          }\n          if (iVar3 == -1) {\n            param_3 = (int *)0x0;\n          }\n        }\n        iVar4 = param_6;\n        if ((param_5 != (int *)0x0) && (param_6 == -1)) {\n          if ((int *)param_5[2] < (int *)param_5[3]) {\n            iVar4 = *(int *)param_5[2];\n          }\n          else {\n            iVar4 = (**(code **)(*param_5 + 0x24))(param_5);\n          }\n        }\n        if ((iVar4 == -1) == (iVar3 == -1)) {\n          *param_8 = *param_8 | 2;\n        }\n        param_10 = puVar8 + 1;\n      }\n      else {\n        iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,*param_10);\n        if (iVar3 == 0) {\n          iVar4 = param_4;\n          iVar3 = param_4;\n          if (param_3 == (int *)0x0) {\nLAB_00342380:\n            iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,iVar4);\n            iVar5 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n            if (iVar5 != iVar4) {\n              param_3 = (int *)0x0;\nLAB_00341ed0:\n              iVar3 = (**(code **)(*(int *)pcVar2 + 0x18))(pcVar2,iVar3);\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x18))(pcVar2,*param_10);\n              if (iVar4 != iVar3) {\nLAB_0034254c:\n                *param_8 = 4;\n                *param_1 = param_3;\n                param_1[1] = param_4;\n                return;\n              }\n              goto LAB_00341f00;\n            }\n            param_3 = (int *)0x0;\n            uVar6 = uRam00000008;\n            if (uRam0000000c <= uRam00000008) goto LAB_003424f8;\nLAB_00341f14:\n            param_3[2] = uVar6 + 4;\n          }\n          else {\n            if (param_4 == -1) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar4 = *(int *)param_3[2];\n              }\n              else {\n                iVar4 = (**(code **)(*param_3 + 0x24))(param_3,0xffffffff);\n              }\n              if (iVar4 == -1) goto LAB_00342380;\n              iVar3 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2);\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n              if (iVar3 != iVar4) {\n                if ((int *)param_3[2] < (int *)param_3[3]) {\n                  iVar3 = *(int *)param_3[2];\n                  if (iVar3 == -1) {\n                    param_3 = (int *)0x0;\n                  }\n                }\n                else {\n                  iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n                  if (iVar3 == -1) {\n                    param_3 = (int *)0x0;\n                  }\n                }\n                goto LAB_00341ed0;\n              }\n            }\n            else {\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2);\n              iVar5 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n              if (iVar5 != iVar4) goto LAB_00341ed0;\n            }\nLAB_00341f00:\n            uVar6 = param_3[2];\n            if ((uint)param_3[2] < (uint)param_3[3]) goto LAB_00341f14;\nLAB_003424f8:\n            (**(code **)(*param_3 + 0x28))(param_3);\n          }\n          param_10 = param_10 + 1;\n          param_4 = -1;\n        }\n        else {\n          do {\n            param_10 = param_10 + 1;\n            if (param_11 == param_10) break;\n            iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,*param_10);\n          } while (iVar3 != 0);\n          iVar3 = param_4;\n          if ((param_3 != (int *)0x0) && (param_4 == -1)) goto LAB_0034201c;\n          while( true ) {\n            bVar1 = param_4 == -1;\n            iVar4 = param_6;\n            if ((param_5 != (int *)0x0) && (param_6 == -1)) {\n              if ((int *)param_5[2] < (int *)param_5[3]) {\n                iVar4 = *(int *)param_5[2];\n                if (iVar4 == -1) {\n                  param_5 = (int *)0x0;\n                }\n              }\n              else {\n                iVar4 = (**(code **)(*param_5 + 0x24))(param_5);\n                if (iVar4 == -1) {\n                  param_5 = (int *)0x0;\n                }\n              }\n            }\n            param_4 = iVar3;\n            if ((iVar4 == -1) == bVar1) break;\n            if ((param_3 != (int *)0x0) && (iVar3 == -1)) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar3 = *(int *)param_3[2];\n                if (iVar3 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n              else {\n                iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n                if (iVar3 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n            }\n            iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,iVar3);\n            if (iVar3 == 0) break;\n            if ((uint)param_3[2] < (uint)param_3[3]) {\n              param_3[2] = param_3[2] + 4;\nLAB_0034201c:\n              piVar7 = (int *)param_3[2];\n              if (piVar7 < (int *)param_3[3]) goto LAB_00342030;\nLAB_003422d0:\n              param_4 = (**(code **)(*param_3 + 0x24))(param_3);\n            }\n            else {\n              (**(code **)(*param_3 + 0x28))(param_3);\n              piVar7 = (int *)param_3[2];\n              if ((int *)param_3[3] <= piVar7) goto LAB_003422d0;\nLAB_00342030:\n              param_4 = *piVar7;\n            }\n            iVar3 = -1;\n            if (param_4 == -1) {\n              param_3 = (int *)0x0;\n            }\n          }\n        }\n      }\nLAB_00341f24:\n    } while ((param_10 != param_11) && (*param_8 == 0));" (do "do") (compound_statement "{\n      iVar3 = param_4;\n      if ((param_3 != (int *)0x0) && (param_4 == -1)) {\n        if ((int *)param_3[2] < (int *)param_3[3]) {\n          iVar3 = *(int *)param_3[2];\n          if (iVar3 == -1) {\n            param_3 = (int *)0x0;\n          }\n        }\n        else {\n          iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n          if (iVar3 == -1) {\n            param_3 = (int *)0x0;\n          }\n        }\n      }\n      if ((param_5 == (int *)0x0) || (param_6 != -1)) {\n        bVar1 = param_6 == -1;\n      }\n      else {\n        if ((int *)param_5[2] < (int *)param_5[3]) {\n          iVar4 = *(int *)param_5[2];\n          if (iVar4 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }\n        else {\n          iVar4 = (**(code **)(*param_5 + 0x24))(param_5);\n          if (iVar4 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }\n        bVar1 = iVar4 == -1;\n      }\n      if (bVar1 == (iVar3 == -1)) {\n        *param_8 = 6;\n        *param_1 = param_3;\n        param_1[1] = param_4;\n        return;\n      }\n      iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,*param_10,0);\n      if (iVar3 == 0x25) {\n        puVar8 = param_10 + 1;\n        if (param_11 == puVar8) goto LAB_0034254c;\n        iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,param_10[1],0);\n        if ((iVar3 == 0x45) || (iVar3 == 0x4f)) {\n          puVar8 = param_10 + 2;\n          if (param_11 == puVar8) goto LAB_0034254c;\n          local_34 = iVar3;\n          iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,param_10[2],0);\n          pcVar9 = *(code **)(*param_2 + 0x20);\n          iVar4 = local_34;\n          if (pcVar9 != local_38) goto LAB_0034243c;\n          piVar7 = (int *)(*(code *)PTR_use_facet<std_ctype<wchar_t>>_00433ac8)(local_30);\n          pcVar9 = *(code **)(*piVar7 + 0x28);\n          *param_8 = 0;\n          local_60 = (*pcVar9)(piVar7,0x25);\n          if (local_34 == 0) goto LAB_003421b4;\n          local_5c = local_34;\n          local_54 = 0;\n          local_58 = iVar3;\n        }\n        else {\n          pcVar9 = *(code **)(*param_2 + 0x20);\n          if (pcVar9 != local_38) {\n            iVar4 = 0;\nLAB_0034243c:\n            param_10 = puVar8 + 1;\n            (*pcVar9)(&local_40,param_2,param_3,param_4,param_5,param_6,param_7,param_8,param_9,\n                      iVar3,iVar4);\n            param_4 = local_3c;\n            param_3 = local_40;\n            goto LAB_00341f24;\n          }\n          local_34 = iVar3;\n          piVar7 = (int *)(*(code *)PTR_use_facet<std_ctype<wchar_t>>_00433ac8)(local_30);\n          pcVar9 = *(code **)(*piVar7 + 0x28);\n          *param_8 = 0;\n          local_60 = (*pcVar9)(piVar7,0x25);\n          iVar3 = local_34;\nLAB_003421b4:\n          local_58 = 0;\n          local_5c = iVar3;\n        }\n        local_4c = param_6;\n        local_50 = param_5;\n        std::time_get<wchar_t,std::istreambuf_iterator<wchar_t,std::char_traits<wchar_t>>>::\n        _M_extract_via_format\n                  (&local_40,param_2,param_3,param_4,param_5,param_6,param_7,param_8,param_9,\n                   local_2c);\n        param_4 = local_3c;\n        param_3 = local_40;\n        local_48 = local_40;\n        local_44 = local_3c;\n        iVar3 = local_3c;\n        if ((local_40 != (int *)0x0) && (local_3c == -1)) {\n          if ((int *)local_40[2] < (int *)local_40[3]) {\n            iVar3 = *(int *)local_40[2];\n          }\n          else {\n            iVar3 = (**(code **)(*local_40 + 0x24))(local_40);\n          }\n          if (iVar3 == -1) {\n            param_3 = (int *)0x0;\n          }\n        }\n        iVar4 = param_6;\n        if ((param_5 != (int *)0x0) && (param_6 == -1)) {\n          if ((int *)param_5[2] < (int *)param_5[3]) {\n            iVar4 = *(int *)param_5[2];\n          }\n          else {\n            iVar4 = (**(code **)(*param_5 + 0x24))(param_5);\n          }\n        }\n        if ((iVar4 == -1) == (iVar3 == -1)) {\n          *param_8 = *param_8 | 2;\n        }\n        param_10 = puVar8 + 1;\n      }\n      else {\n        iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,*param_10);\n        if (iVar3 == 0) {\n          iVar4 = param_4;\n          iVar3 = param_4;\n          if (param_3 == (int *)0x0) {\nLAB_00342380:\n            iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,iVar4);\n            iVar5 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n            if (iVar5 != iVar4) {\n              param_3 = (int *)0x0;\nLAB_00341ed0:\n              iVar3 = (**(code **)(*(int *)pcVar2 + 0x18))(pcVar2,iVar3);\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x18))(pcVar2,*param_10);\n              if (iVar4 != iVar3) {\nLAB_0034254c:\n                *param_8 = 4;\n                *param_1 = param_3;\n                param_1[1] = param_4;\n                return;\n              }\n              goto LAB_00341f00;\n            }\n            param_3 = (int *)0x0;\n            uVar6 = uRam00000008;\n            if (uRam0000000c <= uRam00000008) goto LAB_003424f8;\nLAB_00341f14:\n            param_3[2] = uVar6 + 4;\n          }\n          else {\n            if (param_4 == -1) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar4 = *(int *)param_3[2];\n              }\n              else {\n                iVar4 = (**(code **)(*param_3 + 0x24))(param_3,0xffffffff);\n              }\n              if (iVar4 == -1) goto LAB_00342380;\n              iVar3 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2);\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n              if (iVar3 != iVar4) {\n                if ((int *)param_3[2] < (int *)param_3[3]) {\n                  iVar3 = *(int *)param_3[2];\n                  if (iVar3 == -1) {\n                    param_3 = (int *)0x0;\n                  }\n                }\n                else {\n                  iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n                  if (iVar3 == -1) {\n                    param_3 = (int *)0x0;\n                  }\n                }\n                goto LAB_00341ed0;\n              }\n            }\n            else {\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2);\n              iVar5 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n              if (iVar5 != iVar4) goto LAB_00341ed0;\n            }\nLAB_00341f00:\n            uVar6 = param_3[2];\n            if ((uint)param_3[2] < (uint)param_3[3]) goto LAB_00341f14;\nLAB_003424f8:\n            (**(code **)(*param_3 + 0x28))(param_3);\n          }\n          param_10 = param_10 + 1;\n          param_4 = -1;\n        }\n        else {\n          do {\n            param_10 = param_10 + 1;\n            if (param_11 == param_10) break;\n            iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,*param_10);\n          } while (iVar3 != 0);\n          iVar3 = param_4;\n          if ((param_3 != (int *)0x0) && (param_4 == -1)) goto LAB_0034201c;\n          while( true ) {\n            bVar1 = param_4 == -1;\n            iVar4 = param_6;\n            if ((param_5 != (int *)0x0) && (param_6 == -1)) {\n              if ((int *)param_5[2] < (int *)param_5[3]) {\n                iVar4 = *(int *)param_5[2];\n                if (iVar4 == -1) {\n                  param_5 = (int *)0x0;\n                }\n              }\n              else {\n                iVar4 = (**(code **)(*param_5 + 0x24))(param_5);\n                if (iVar4 == -1) {\n                  param_5 = (int *)0x0;\n                }\n              }\n            }\n            param_4 = iVar3;\n            if ((iVar4 == -1) == bVar1) break;\n            if ((param_3 != (int *)0x0) && (iVar3 == -1)) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar3 = *(int *)param_3[2];\n                if (iVar3 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n              else {\n                iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n                if (iVar3 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n            }\n            iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,iVar3);\n            if (iVar3 == 0) break;\n            if ((uint)param_3[2] < (uint)param_3[3]) {\n              param_3[2] = param_3[2] + 4;\nLAB_0034201c:\n              piVar7 = (int *)param_3[2];\n              if (piVar7 < (int *)param_3[3]) goto LAB_00342030;\nLAB_003422d0:\n              param_4 = (**(code **)(*param_3 + 0x24))(param_3);\n            }\n            else {\n              (**(code **)(*param_3 + 0x28))(param_3);\n              piVar7 = (int *)param_3[2];\n              if ((int *)param_3[3] <= piVar7) goto LAB_003422d0;\nLAB_00342030:\n              param_4 = *piVar7;\n            }\n            iVar3 = -1;\n            if (param_4 == -1) {\n              param_3 = (int *)0x0;\n            }\n          }\n        }\n      }\nLAB_00341f24:\n    }" ({ "{") (expression_statement "iVar3 = param_4;" (assignment_expression "iVar3 = param_4" (identifier "iVar3") (= "=") (identifier "param_4")) (; ";")) (if_statement "if ((param_3 != (int *)0x0) && (param_4 == -1)) {\n        if ((int *)param_3[2] < (int *)param_3[3]) {\n          iVar3 = *(int *)param_3[2];\n          if (iVar3 == -1) {\n            param_3 = (int *)0x0;\n          }\n        }\n        else {\n          iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n          if (iVar3 == -1) {\n            param_3 = (int *)0x0;\n          }\n        }\n      }" (if "if") (parenthesized_expression "((param_3 != (int *)0x0) && (param_4 == -1))" (( "(") (binary_expression "(param_3 != (int *)0x0) && (param_4 == -1)" (parenthesized_expression "(param_3 != (int *)0x0)" (( "(") (binary_expression "param_3 != (int *)0x0" (identifier "param_3") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "(param_4 == -1)" (( "(") (binary_expression "param_4 == -1" (identifier "param_4") (== "==") (number_literal "-1")) () ")"))) () ")")) (compound_statement "{\n        if ((int *)param_3[2] < (int *)param_3[3]) {\n          iVar3 = *(int *)param_3[2];\n          if (iVar3 == -1) {\n            param_3 = (int *)0x0;\n          }\n        }\n        else {\n          iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n          if (iVar3 == -1) {\n            param_3 = (int *)0x0;\n          }\n        }\n      }" ({ "{") (if_statement "if ((int *)param_3[2] < (int *)param_3[3]) {\n          iVar3 = *(int *)param_3[2];\n          if (iVar3 == -1) {\n            param_3 = (int *)0x0;\n          }\n        }\n        else {\n          iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n          if (iVar3 == -1) {\n            param_3 = (int *)0x0;\n          }\n        }" (if "if") (parenthesized_expression "((int *)param_3[2] < (int *)param_3[3])" (( "(") (binary_expression "(int *)param_3[2] < (int *)param_3[3]" (cast_expression "(int *)param_3[2]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_3[2]" (identifier "param_3") ([ "[") (number_literal "2") (] "]"))) (< "<") (cast_expression "(int *)param_3[3]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_3[3]" (identifier "param_3") ([ "[") (number_literal "3") (] "]")))) () ")")) (compound_statement "{\n          iVar3 = *(int *)param_3[2];\n          if (iVar3 == -1) {\n            param_3 = (int *)0x0;\n          }\n        }" ({ "{") (expression_statement "iVar3 = *(int *)param_3[2];" (assignment_expression "iVar3 = *(int *)param_3[2]" (identifier "iVar3") (= "=") (pointer_expression "*(int *)param_3[2]" (* "*") (cast_expression "(int *)param_3[2]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_3[2]" (identifier "param_3") ([ "[") (number_literal "2") (] "]"))))) (; ";")) (if_statement "if (iVar3 == -1) {\n            param_3 = (int *)0x0;\n          }" (if "if") (parenthesized_expression "(iVar3 == -1)" (( "(") (binary_expression "iVar3 == -1" (identifier "iVar3") (== "==") (number_literal "-1")) () ")")) (compound_statement "{\n            param_3 = (int *)0x0;\n          }" ({ "{") (expression_statement "param_3 = (int *)0x0;" (assignment_expression "param_3 = (int *)0x0" (identifier "param_3") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n          iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n          if (iVar3 == -1) {\n            param_3 = (int *)0x0;\n          }\n        }" (else "else") (compound_statement "{\n          iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n          if (iVar3 == -1) {\n            param_3 = (int *)0x0;\n          }\n        }" ({ "{") (expression_statement "iVar3 = (**(code **)(*param_3 + 0x24))(param_3);" (assignment_expression "iVar3 = (**(code **)(*param_3 + 0x24))(param_3)" (identifier "iVar3") (= "=") (call_expression "(**(code **)(*param_3 + 0x24))(param_3)" (parenthesized_expression "(**(code **)(*param_3 + 0x24))" (( "(") (pointer_expression "**(code **)(*param_3 + 0x24)" (* "*") (pointer_expression "*(code **)(*param_3 + 0x24)" (* "*") (cast_expression "(code **)(*param_3 + 0x24)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*param_3 + 0x24)" (( "(") (binary_expression "*param_3 + 0x24" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (+ "+") (number_literal "0x24")) () ")"))))) () ")")) (argument_list "(param_3)" (( "(") (identifier "param_3") () ")")))) (; ";")) (if_statement "if (iVar3 == -1) {\n            param_3 = (int *)0x0;\n          }" (if "if") (parenthesized_expression "(iVar3 == -1)" (( "(") (binary_expression "iVar3 == -1" (identifier "iVar3") (== "==") (number_literal "-1")) () ")")) (compound_statement "{\n            param_3 = (int *)0x0;\n          }" ({ "{") (expression_statement "param_3 = (int *)0x0;" (assignment_expression "param_3 = (int *)0x0" (identifier "param_3") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}"))) (} "}")))) (} "}"))) (if_statement "if ((param_5 == (int *)0x0) || (param_6 != -1)) {\n        bVar1 = param_6 == -1;\n      }\n      else {\n        if ((int *)param_5[2] < (int *)param_5[3]) {\n          iVar4 = *(int *)param_5[2];\n          if (iVar4 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }\n        else {\n          iVar4 = (**(code **)(*param_5 + 0x24))(param_5);\n          if (iVar4 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }\n        bVar1 = iVar4 == -1;\n      }" (if "if") (parenthesized_expression "((param_5 == (int *)0x0) || (param_6 != -1))" (( "(") (binary_expression "(param_5 == (int *)0x0) || (param_6 != -1)" (parenthesized_expression "(param_5 == (int *)0x0)" (( "(") (binary_expression "param_5 == (int *)0x0" (identifier "param_5") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (|| "||") (parenthesized_expression "(param_6 != -1)" (( "(") (binary_expression "param_6 != -1" (identifier "param_6") (!= "!=") (number_literal "-1")) () ")"))) () ")")) (compound_statement "{\n        bVar1 = param_6 == -1;\n      }" ({ "{") (expression_statement "bVar1 = param_6 == -1;" (assignment_expression "bVar1 = param_6 == -1" (identifier "bVar1") (= "=") (binary_expression "param_6 == -1" (identifier "param_6") (== "==") (number_literal "-1"))) (; ";")) (} "}")) (else_clause "else {\n        if ((int *)param_5[2] < (int *)param_5[3]) {\n          iVar4 = *(int *)param_5[2];\n          if (iVar4 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }\n        else {\n          iVar4 = (**(code **)(*param_5 + 0x24))(param_5);\n          if (iVar4 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }\n        bVar1 = iVar4 == -1;\n      }" (else "else") (compound_statement "{\n        if ((int *)param_5[2] < (int *)param_5[3]) {\n          iVar4 = *(int *)param_5[2];\n          if (iVar4 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }\n        else {\n          iVar4 = (**(code **)(*param_5 + 0x24))(param_5);\n          if (iVar4 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }\n        bVar1 = iVar4 == -1;\n      }" ({ "{") (if_statement "if ((int *)param_5[2] < (int *)param_5[3]) {\n          iVar4 = *(int *)param_5[2];\n          if (iVar4 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }\n        else {\n          iVar4 = (**(code **)(*param_5 + 0x24))(param_5);\n          if (iVar4 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }" (if "if") (parenthesized_expression "((int *)param_5[2] < (int *)param_5[3])" (( "(") (binary_expression "(int *)param_5[2] < (int *)param_5[3]" (cast_expression "(int *)param_5[2]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_5[2]" (identifier "param_5") ([ "[") (number_literal "2") (] "]"))) (< "<") (cast_expression "(int *)param_5[3]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_5[3]" (identifier "param_5") ([ "[") (number_literal "3") (] "]")))) () ")")) (compound_statement "{\n          iVar4 = *(int *)param_5[2];\n          if (iVar4 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }" ({ "{") (expression_statement "iVar4 = *(int *)param_5[2];" (assignment_expression "iVar4 = *(int *)param_5[2]" (identifier "iVar4") (= "=") (pointer_expression "*(int *)param_5[2]" (* "*") (cast_expression "(int *)param_5[2]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_5[2]" (identifier "param_5") ([ "[") (number_literal "2") (] "]"))))) (; ";")) (if_statement "if (iVar4 == -1) {\n            param_5 = (int *)0x0;\n          }" (if "if") (parenthesized_expression "(iVar4 == -1)" (( "(") (binary_expression "iVar4 == -1" (identifier "iVar4") (== "==") (number_literal "-1")) () ")")) (compound_statement "{\n            param_5 = (int *)0x0;\n          }" ({ "{") (expression_statement "param_5 = (int *)0x0;" (assignment_expression "param_5 = (int *)0x0" (identifier "param_5") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n          iVar4 = (**(code **)(*param_5 + 0x24))(param_5);\n          if (iVar4 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }" (else "else") (compound_statement "{\n          iVar4 = (**(code **)(*param_5 + 0x24))(param_5);\n          if (iVar4 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }" ({ "{") (expression_statement "iVar4 = (**(code **)(*param_5 + 0x24))(param_5);" (assignment_expression "iVar4 = (**(code **)(*param_5 + 0x24))(param_5)" (identifier "iVar4") (= "=") (call_expression "(**(code **)(*param_5 + 0x24))(param_5)" (parenthesized_expression "(**(code **)(*param_5 + 0x24))" (( "(") (pointer_expression "**(code **)(*param_5 + 0x24)" (* "*") (pointer_expression "*(code **)(*param_5 + 0x24)" (* "*") (cast_expression "(code **)(*param_5 + 0x24)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*param_5 + 0x24)" (( "(") (binary_expression "*param_5 + 0x24" (pointer_expression "*param_5" (* "*") (identifier "param_5")) (+ "+") (number_literal "0x24")) () ")"))))) () ")")) (argument_list "(param_5)" (( "(") (identifier "param_5") () ")")))) (; ";")) (if_statement "if (iVar4 == -1) {\n            param_5 = (int *)0x0;\n          }" (if "if") (parenthesized_expression "(iVar4 == -1)" (( "(") (binary_expression "iVar4 == -1" (identifier "iVar4") (== "==") (number_literal "-1")) () ")")) (compound_statement "{\n            param_5 = (int *)0x0;\n          }" ({ "{") (expression_statement "param_5 = (int *)0x0;" (assignment_expression "param_5 = (int *)0x0" (identifier "param_5") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}"))) (} "}")))) (expression_statement "bVar1 = iVar4 == -1;" (assignment_expression "bVar1 = iVar4 == -1" (identifier "bVar1") (= "=") (binary_expression "iVar4 == -1" (identifier "iVar4") (== "==") (number_literal "-1"))) (; ";")) (} "}")))) (if_statement "if (bVar1 == (iVar3 == -1)) {\n        *param_8 = 6;\n        *param_1 = param_3;\n        param_1[1] = param_4;\n        return;\n      }" (if "if") (parenthesized_expression "(bVar1 == (iVar3 == -1))" (( "(") (binary_expression "bVar1 == (iVar3 == -1)" (identifier "bVar1") (== "==") (parenthesized_expression "(iVar3 == -1)" (( "(") (binary_expression "iVar3 == -1" (identifier "iVar3") (== "==") (number_literal "-1")) () ")"))) () ")")) (compound_statement "{\n        *param_8 = 6;\n        *param_1 = param_3;\n        param_1[1] = param_4;\n        return;\n      }" ({ "{") (expression_statement "*param_8 = 6;" (assignment_expression "*param_8 = 6" (pointer_expression "*param_8" (* "*") (identifier "param_8")) (= "=") (number_literal "6")) (; ";")) (expression_statement "*param_1 = param_3;" (assignment_expression "*param_1 = param_3" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (identifier "param_3")) (; ";")) (expression_statement "param_1[1] = param_4;" (assignment_expression "param_1[1] = param_4" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "param_4")) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,*param_10,0);" (assignment_expression "iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,*param_10,0)" (identifier "iVar3") (= "=") (call_expression "(**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,*param_10,0)" (parenthesized_expression "(**(code **)(*(int *)pcVar2 + 0x30))" (( "(") (pointer_expression "**(code **)(*(int *)pcVar2 + 0x30)" (* "*") (pointer_expression "*(code **)(*(int *)pcVar2 + 0x30)" (* "*") (cast_expression "(code **)(*(int *)pcVar2 + 0x30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)pcVar2 + 0x30)" (( "(") (binary_expression "*(int *)pcVar2 + 0x30" (pointer_expression "*(int *)pcVar2" (* "*") (cast_expression "(int *)pcVar2" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pcVar2"))) (+ "+") (number_literal "0x30")) () ")"))))) () ")")) (argument_list "(pcVar2,*param_10,0)" (( "(") (identifier "pcVar2") (, ",") (pointer_expression "*param_10" (* "*") (identifier "param_10")) (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (iVar3 == 0x25) {\n        puVar8 = param_10 + 1;\n        if (param_11 == puVar8) goto LAB_0034254c;\n        iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,param_10[1],0);\n        if ((iVar3 == 0x45) || (iVar3 == 0x4f)) {\n          puVar8 = param_10 + 2;\n          if (param_11 == puVar8) goto LAB_0034254c;\n          local_34 = iVar3;\n          iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,param_10[2],0);\n          pcVar9 = *(code **)(*param_2 + 0x20);\n          iVar4 = local_34;\n          if (pcVar9 != local_38) goto LAB_0034243c;\n          piVar7 = (int *)(*(code *)PTR_use_facet<std_ctype<wchar_t>>_00433ac8)(local_30);\n          pcVar9 = *(code **)(*piVar7 + 0x28);\n          *param_8 = 0;\n          local_60 = (*pcVar9)(piVar7,0x25);\n          if (local_34 == 0) goto LAB_003421b4;\n          local_5c = local_34;\n          local_54 = 0;\n          local_58 = iVar3;\n        }\n        else {\n          pcVar9 = *(code **)(*param_2 + 0x20);\n          if (pcVar9 != local_38) {\n            iVar4 = 0;\nLAB_0034243c:\n            param_10 = puVar8 + 1;\n            (*pcVar9)(&local_40,param_2,param_3,param_4,param_5,param_6,param_7,param_8,param_9,\n                      iVar3,iVar4);\n            param_4 = local_3c;\n            param_3 = local_40;\n            goto LAB_00341f24;\n          }\n          local_34 = iVar3;\n          piVar7 = (int *)(*(code *)PTR_use_facet<std_ctype<wchar_t>>_00433ac8)(local_30);\n          pcVar9 = *(code **)(*piVar7 + 0x28);\n          *param_8 = 0;\n          local_60 = (*pcVar9)(piVar7,0x25);\n          iVar3 = local_34;\nLAB_003421b4:\n          local_58 = 0;\n          local_5c = iVar3;\n        }\n        local_4c = param_6;\n        local_50 = param_5;\n        std::time_get<wchar_t,std::istreambuf_iterator<wchar_t,std::char_traits<wchar_t>>>::\n        _M_extract_via_format\n                  (&local_40,param_2,param_3,param_4,param_5,param_6,param_7,param_8,param_9,\n                   local_2c);\n        param_4 = local_3c;\n        param_3 = local_40;\n        local_48 = local_40;\n        local_44 = local_3c;\n        iVar3 = local_3c;\n        if ((local_40 != (int *)0x0) && (local_3c == -1)) {\n          if ((int *)local_40[2] < (int *)local_40[3]) {\n            iVar3 = *(int *)local_40[2];\n          }\n          else {\n            iVar3 = (**(code **)(*local_40 + 0x24))(local_40);\n          }\n          if (iVar3 == -1) {\n            param_3 = (int *)0x0;\n          }\n        }\n        iVar4 = param_6;\n        if ((param_5 != (int *)0x0) && (param_6 == -1)) {\n          if ((int *)param_5[2] < (int *)param_5[3]) {\n            iVar4 = *(int *)param_5[2];\n          }\n          else {\n            iVar4 = (**(code **)(*param_5 + 0x24))(param_5);\n          }\n        }\n        if ((iVar4 == -1) == (iVar3 == -1)) {\n          *param_8 = *param_8 | 2;\n        }\n        param_10 = puVar8 + 1;\n      }\n      else {\n        iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,*param_10);\n        if (iVar3 == 0) {\n          iVar4 = param_4;\n          iVar3 = param_4;\n          if (param_3 == (int *)0x0) {\nLAB_00342380:\n            iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,iVar4);\n            iVar5 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n            if (iVar5 != iVar4) {\n              param_3 = (int *)0x0;\nLAB_00341ed0:\n              iVar3 = (**(code **)(*(int *)pcVar2 + 0x18))(pcVar2,iVar3);\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x18))(pcVar2,*param_10);\n              if (iVar4 != iVar3) {\nLAB_0034254c:\n                *param_8 = 4;\n                *param_1 = param_3;\n                param_1[1] = param_4;\n                return;\n              }\n              goto LAB_00341f00;\n            }\n            param_3 = (int *)0x0;\n            uVar6 = uRam00000008;\n            if (uRam0000000c <= uRam00000008) goto LAB_003424f8;\nLAB_00341f14:\n            param_3[2] = uVar6 + 4;\n          }\n          else {\n            if (param_4 == -1) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar4 = *(int *)param_3[2];\n              }\n              else {\n                iVar4 = (**(code **)(*param_3 + 0x24))(param_3,0xffffffff);\n              }\n              if (iVar4 == -1) goto LAB_00342380;\n              iVar3 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2);\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n              if (iVar3 != iVar4) {\n                if ((int *)param_3[2] < (int *)param_3[3]) {\n                  iVar3 = *(int *)param_3[2];\n                  if (iVar3 == -1) {\n                    param_3 = (int *)0x0;\n                  }\n                }\n                else {\n                  iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n                  if (iVar3 == -1) {\n                    param_3 = (int *)0x0;\n                  }\n                }\n                goto LAB_00341ed0;\n              }\n            }\n            else {\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2);\n              iVar5 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n              if (iVar5 != iVar4) goto LAB_00341ed0;\n            }\nLAB_00341f00:\n            uVar6 = param_3[2];\n            if ((uint)param_3[2] < (uint)param_3[3]) goto LAB_00341f14;\nLAB_003424f8:\n            (**(code **)(*param_3 + 0x28))(param_3);\n          }\n          param_10 = param_10 + 1;\n          param_4 = -1;\n        }\n        else {\n          do {\n            param_10 = param_10 + 1;\n            if (param_11 == param_10) break;\n            iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,*param_10);\n          } while (iVar3 != 0);\n          iVar3 = param_4;\n          if ((param_3 != (int *)0x0) && (param_4 == -1)) goto LAB_0034201c;\n          while( true ) {\n            bVar1 = param_4 == -1;\n            iVar4 = param_6;\n            if ((param_5 != (int *)0x0) && (param_6 == -1)) {\n              if ((int *)param_5[2] < (int *)param_5[3]) {\n                iVar4 = *(int *)param_5[2];\n                if (iVar4 == -1) {\n                  param_5 = (int *)0x0;\n                }\n              }\n              else {\n                iVar4 = (**(code **)(*param_5 + 0x24))(param_5);\n                if (iVar4 == -1) {\n                  param_5 = (int *)0x0;\n                }\n              }\n            }\n            param_4 = iVar3;\n            if ((iVar4 == -1) == bVar1) break;\n            if ((param_3 != (int *)0x0) && (iVar3 == -1)) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar3 = *(int *)param_3[2];\n                if (iVar3 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n              else {\n                iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n                if (iVar3 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n            }\n            iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,iVar3);\n            if (iVar3 == 0) break;\n            if ((uint)param_3[2] < (uint)param_3[3]) {\n              param_3[2] = param_3[2] + 4;\nLAB_0034201c:\n              piVar7 = (int *)param_3[2];\n              if (piVar7 < (int *)param_3[3]) goto LAB_00342030;\nLAB_003422d0:\n              param_4 = (**(code **)(*param_3 + 0x24))(param_3);\n            }\n            else {\n              (**(code **)(*param_3 + 0x28))(param_3);\n              piVar7 = (int *)param_3[2];\n              if ((int *)param_3[3] <= piVar7) goto LAB_003422d0;\nLAB_00342030:\n              param_4 = *piVar7;\n            }\n            iVar3 = -1;\n            if (param_4 == -1) {\n              param_3 = (int *)0x0;\n            }\n          }\n        }\n      }" (if "if") (parenthesized_expression "(iVar3 == 0x25)" (( "(") (binary_expression "iVar3 == 0x25" (identifier "iVar3") (== "==") (number_literal "0x25")) () ")")) (compound_statement "{\n        puVar8 = param_10 + 1;\n        if (param_11 == puVar8) goto LAB_0034254c;\n        iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,param_10[1],0);\n        if ((iVar3 == 0x45) || (iVar3 == 0x4f)) {\n          puVar8 = param_10 + 2;\n          if (param_11 == puVar8) goto LAB_0034254c;\n          local_34 = iVar3;\n          iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,param_10[2],0);\n          pcVar9 = *(code **)(*param_2 + 0x20);\n          iVar4 = local_34;\n          if (pcVar9 != local_38) goto LAB_0034243c;\n          piVar7 = (int *)(*(code *)PTR_use_facet<std_ctype<wchar_t>>_00433ac8)(local_30);\n          pcVar9 = *(code **)(*piVar7 + 0x28);\n          *param_8 = 0;\n          local_60 = (*pcVar9)(piVar7,0x25);\n          if (local_34 == 0) goto LAB_003421b4;\n          local_5c = local_34;\n          local_54 = 0;\n          local_58 = iVar3;\n        }\n        else {\n          pcVar9 = *(code **)(*param_2 + 0x20);\n          if (pcVar9 != local_38) {\n            iVar4 = 0;\nLAB_0034243c:\n            param_10 = puVar8 + 1;\n            (*pcVar9)(&local_40,param_2,param_3,param_4,param_5,param_6,param_7,param_8,param_9,\n                      iVar3,iVar4);\n            param_4 = local_3c;\n            param_3 = local_40;\n            goto LAB_00341f24;\n          }\n          local_34 = iVar3;\n          piVar7 = (int *)(*(code *)PTR_use_facet<std_ctype<wchar_t>>_00433ac8)(local_30);\n          pcVar9 = *(code **)(*piVar7 + 0x28);\n          *param_8 = 0;\n          local_60 = (*pcVar9)(piVar7,0x25);\n          iVar3 = local_34;\nLAB_003421b4:\n          local_58 = 0;\n          local_5c = iVar3;\n        }\n        local_4c = param_6;\n        local_50 = param_5;\n        std::time_get<wchar_t,std::istreambuf_iterator<wchar_t,std::char_traits<wchar_t>>>::\n        _M_extract_via_format\n                  (&local_40,param_2,param_3,param_4,param_5,param_6,param_7,param_8,param_9,\n                   local_2c);\n        param_4 = local_3c;\n        param_3 = local_40;\n        local_48 = local_40;\n        local_44 = local_3c;\n        iVar3 = local_3c;\n        if ((local_40 != (int *)0x0) && (local_3c == -1)) {\n          if ((int *)local_40[2] < (int *)local_40[3]) {\n            iVar3 = *(int *)local_40[2];\n          }\n          else {\n            iVar3 = (**(code **)(*local_40 + 0x24))(local_40);\n          }\n          if (iVar3 == -1) {\n            param_3 = (int *)0x0;\n          }\n        }\n        iVar4 = param_6;\n        if ((param_5 != (int *)0x0) && (param_6 == -1)) {\n          if ((int *)param_5[2] < (int *)param_5[3]) {\n            iVar4 = *(int *)param_5[2];\n          }\n          else {\n            iVar4 = (**(code **)(*param_5 + 0x24))(param_5);\n          }\n        }\n        if ((iVar4 == -1) == (iVar3 == -1)) {\n          *param_8 = *param_8 | 2;\n        }\n        param_10 = puVar8 + 1;\n      }" ({ "{") (expression_statement "puVar8 = param_10 + 1;" (assignment_expression "puVar8 = param_10 + 1" (identifier "puVar8") (= "=") (binary_expression "param_10 + 1" (identifier "param_10") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (param_11 == puVar8) goto LAB_0034254c;" (if "if") (parenthesized_expression "(param_11 == puVar8)" (( "(") (binary_expression "param_11 == puVar8" (identifier "param_11") (== "==") (identifier "puVar8")) () ")")) (goto_statement "goto LAB_0034254c;" (goto "goto") (statement_identifier "LAB_0034254c") (; ";"))) (expression_statement "iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,param_10[1],0);" (assignment_expression "iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,param_10[1],0)" (identifier "iVar3") (= "=") (call_expression "(**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,param_10[1],0)" (parenthesized_expression "(**(code **)(*(int *)pcVar2 + 0x30))" (( "(") (pointer_expression "**(code **)(*(int *)pcVar2 + 0x30)" (* "*") (pointer_expression "*(code **)(*(int *)pcVar2 + 0x30)" (* "*") (cast_expression "(code **)(*(int *)pcVar2 + 0x30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)pcVar2 + 0x30)" (( "(") (binary_expression "*(int *)pcVar2 + 0x30" (pointer_expression "*(int *)pcVar2" (* "*") (cast_expression "(int *)pcVar2" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pcVar2"))) (+ "+") (number_literal "0x30")) () ")"))))) () ")")) (argument_list "(pcVar2,param_10[1],0)" (( "(") (identifier "pcVar2") (, ",") (subscript_expression "param_10[1]" (identifier "param_10") ([ "[") (number_literal "1") (] "]")) (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if ((iVar3 == 0x45) || (iVar3 == 0x4f)) {\n          puVar8 = param_10 + 2;\n          if (param_11 == puVar8) goto LAB_0034254c;\n          local_34 = iVar3;\n          iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,param_10[2],0);\n          pcVar9 = *(code **)(*param_2 + 0x20);\n          iVar4 = local_34;\n          if (pcVar9 != local_38) goto LAB_0034243c;\n          piVar7 = (int *)(*(code *)PTR_use_facet<std_ctype<wchar_t>>_00433ac8)(local_30);\n          pcVar9 = *(code **)(*piVar7 + 0x28);\n          *param_8 = 0;\n          local_60 = (*pcVar9)(piVar7,0x25);\n          if (local_34 == 0) goto LAB_003421b4;\n          local_5c = local_34;\n          local_54 = 0;\n          local_58 = iVar3;\n        }\n        else {\n          pcVar9 = *(code **)(*param_2 + 0x20);\n          if (pcVar9 != local_38) {\n            iVar4 = 0;\nLAB_0034243c:\n            param_10 = puVar8 + 1;\n            (*pcVar9)(&local_40,param_2,param_3,param_4,param_5,param_6,param_7,param_8,param_9,\n                      iVar3,iVar4);\n            param_4 = local_3c;\n            param_3 = local_40;\n            goto LAB_00341f24;\n          }\n          local_34 = iVar3;\n          piVar7 = (int *)(*(code *)PTR_use_facet<std_ctype<wchar_t>>_00433ac8)(local_30);\n          pcVar9 = *(code **)(*piVar7 + 0x28);\n          *param_8 = 0;\n          local_60 = (*pcVar9)(piVar7,0x25);\n          iVar3 = local_34;\nLAB_003421b4:\n          local_58 = 0;\n          local_5c = iVar3;\n        }" (if "if") (parenthesized_expression "((iVar3 == 0x45) || (iVar3 == 0x4f))" (( "(") (binary_expression "(iVar3 == 0x45) || (iVar3 == 0x4f)" (parenthesized_expression "(iVar3 == 0x45)" (( "(") (binary_expression "iVar3 == 0x45" (identifier "iVar3") (== "==") (number_literal "0x45")) () ")")) (|| "||") (parenthesized_expression "(iVar3 == 0x4f)" (( "(") (binary_expression "iVar3 == 0x4f" (identifier "iVar3") (== "==") (number_literal "0x4f")) () ")"))) () ")")) (compound_statement "{\n          puVar8 = param_10 + 2;\n          if (param_11 == puVar8) goto LAB_0034254c;\n          local_34 = iVar3;\n          iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,param_10[2],0);\n          pcVar9 = *(code **)(*param_2 + 0x20);\n          iVar4 = local_34;\n          if (pcVar9 != local_38) goto LAB_0034243c;\n          piVar7 = (int *)(*(code *)PTR_use_facet<std_ctype<wchar_t>>_00433ac8)(local_30);\n          pcVar9 = *(code **)(*piVar7 + 0x28);\n          *param_8 = 0;\n          local_60 = (*pcVar9)(piVar7,0x25);\n          if (local_34 == 0) goto LAB_003421b4;\n          local_5c = local_34;\n          local_54 = 0;\n          local_58 = iVar3;\n        }" ({ "{") (expression_statement "puVar8 = param_10 + 2;" (assignment_expression "puVar8 = param_10 + 2" (identifier "puVar8") (= "=") (binary_expression "param_10 + 2" (identifier "param_10") (+ "+") (number_literal "2"))) (; ";")) (if_statement "if (param_11 == puVar8) goto LAB_0034254c;" (if "if") (parenthesized_expression "(param_11 == puVar8)" (( "(") (binary_expression "param_11 == puVar8" (identifier "param_11") (== "==") (identifier "puVar8")) () ")")) (goto_statement "goto LAB_0034254c;" (goto "goto") (statement_identifier "LAB_0034254c") (; ";"))) (expression_statement "local_34 = iVar3;" (assignment_expression "local_34 = iVar3" (identifier "local_34") (= "=") (identifier "iVar3")) (; ";")) (expression_statement "iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,param_10[2],0);" (assignment_expression "iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,param_10[2],0)" (identifier "iVar3") (= "=") (call_expression "(**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,param_10[2],0)" (parenthesized_expression "(**(code **)(*(int *)pcVar2 + 0x30))" (( "(") (pointer_expression "**(code **)(*(int *)pcVar2 + 0x30)" (* "*") (pointer_expression "*(code **)(*(int *)pcVar2 + 0x30)" (* "*") (cast_expression "(code **)(*(int *)pcVar2 + 0x30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)pcVar2 + 0x30)" (( "(") (binary_expression "*(int *)pcVar2 + 0x30" (pointer_expression "*(int *)pcVar2" (* "*") (cast_expression "(int *)pcVar2" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pcVar2"))) (+ "+") (number_literal "0x30")) () ")"))))) () ")")) (argument_list "(pcVar2,param_10[2],0)" (( "(") (identifier "pcVar2") (, ",") (subscript_expression "param_10[2]" (identifier "param_10") ([ "[") (number_literal "2") (] "]")) (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "pcVar9 = *(code **)(*param_2 + 0x20);" (assignment_expression "pcVar9 = *(code **)(*param_2 + 0x20)" (identifier "pcVar9") (= "=") (pointer_expression "*(code **)(*param_2 + 0x20)" (* "*") (cast_expression "(code **)(*param_2 + 0x20)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*param_2 + 0x20)" (( "(") (binary_expression "*param_2 + 0x20" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (+ "+") (number_literal "0x20")) () ")"))))) (; ";")) (expression_statement "iVar4 = local_34;" (assignment_expression "iVar4 = local_34" (identifier "iVar4") (= "=") (identifier "local_34")) (; ";")) (if_statement "if (pcVar9 != local_38) goto LAB_0034243c;" (if "if") (parenthesized_expression "(pcVar9 != local_38)" (( "(") (binary_expression "pcVar9 != local_38" (identifier "pcVar9") (!= "!=") (identifier "local_38")) () ")")) (goto_statement "goto LAB_0034243c;" (goto "goto") (statement_identifier "LAB_0034243c") (; ";"))) (expression_statement "piVar7 = (int *)(*(code *)PTR_use_facet<std_ctype<wchar_t>>_00433ac8)(local_30);" (assignment_expression "piVar7 = (int *)(*(code *)PTR_use_facet<std_ctype<wchar_t>>_00433ac8)(local_30)" (identifier "piVar7") (= "=") (cast_expression "(int *)(*(code *)PTR_use_facet<std_ctype<wchar_t>>_00433ac8)(local_30)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_use_facet<std_ctype<wchar_t>>_00433ac8)(local_30)" (parenthesized_expression "(*(code *)PTR_use_facet<std_ctype<wchar_t>>_00433ac8)" (( "(") (binary_expression "*(code *)PTR_use_facet<std_ctype<wchar_t>>_00433ac8" (binary_expression "*(code *)PTR_use_facet<std_ctype" (pointer_expression "*(code *)PTR_use_facet" (* "*") (cast_expression "(code *)PTR_use_facet" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_use_facet"))) (< "<") (identifier "std_ctype")) (< "<") (binary_expression "wchar_t>>_00433ac8" (identifier "wchar_t") (>> ">>") (identifier "_00433ac8"))) () ")")) (argument_list "(local_30)" (( "(") (identifier "local_30") () ")"))))) (; ";")) (expression_statement "pcVar9 = *(code **)(*piVar7 + 0x28);" (assignment_expression "pcVar9 = *(code **)(*piVar7 + 0x28)" (identifier "pcVar9") (= "=") (pointer_expression "*(code **)(*piVar7 + 0x28)" (* "*") (cast_expression "(code **)(*piVar7 + 0x28)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*piVar7 + 0x28)" (( "(") (binary_expression "*piVar7 + 0x28" (pointer_expression "*piVar7" (* "*") (identifier "piVar7")) (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (expression_statement "*param_8 = 0;" (assignment_expression "*param_8 = 0" (pointer_expression "*param_8" (* "*") (identifier "param_8")) (= "=") (number_literal "0")) (; ";")) (expression_statement "local_60 = (*pcVar9)(piVar7,0x25);" (assignment_expression "local_60 = (*pcVar9)(piVar7,0x25)" (identifier "local_60") (= "=") (call_expression "(*pcVar9)(piVar7,0x25)" (parenthesized_expression "(*pcVar9)" (( "(") (pointer_expression "*pcVar9" (* "*") (identifier "pcVar9")) () ")")) (argument_list "(piVar7,0x25)" (( "(") (identifier "piVar7") (, ",") (number_literal "0x25") () ")")))) (; ";")) (if_statement "if (local_34 == 0) goto LAB_003421b4;" (if "if") (parenthesized_expression "(local_34 == 0)" (( "(") (binary_expression "local_34 == 0" (identifier "local_34") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_003421b4;" (goto "goto") (statement_identifier "LAB_003421b4") (; ";"))) (expression_statement "local_5c = local_34;" (assignment_expression "local_5c = local_34" (identifier "local_5c") (= "=") (identifier "local_34")) (; ";")) (expression_statement "local_54 = 0;" (assignment_expression "local_54 = 0" (identifier "local_54") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_58 = iVar3;" (assignment_expression "local_58 = iVar3" (identifier "local_58") (= "=") (identifier "iVar3")) (; ";")) (} "}")) (else_clause "else {\n          pcVar9 = *(code **)(*param_2 + 0x20);\n          if (pcVar9 != local_38) {\n            iVar4 = 0;\nLAB_0034243c:\n            param_10 = puVar8 + 1;\n            (*pcVar9)(&local_40,param_2,param_3,param_4,param_5,param_6,param_7,param_8,param_9,\n                      iVar3,iVar4);\n            param_4 = local_3c;\n            param_3 = local_40;\n            goto LAB_00341f24;\n          }\n          local_34 = iVar3;\n          piVar7 = (int *)(*(code *)PTR_use_facet<std_ctype<wchar_t>>_00433ac8)(local_30);\n          pcVar9 = *(code **)(*piVar7 + 0x28);\n          *param_8 = 0;\n          local_60 = (*pcVar9)(piVar7,0x25);\n          iVar3 = local_34;\nLAB_003421b4:\n          local_58 = 0;\n          local_5c = iVar3;\n        }" (else "else") (compound_statement "{\n          pcVar9 = *(code **)(*param_2 + 0x20);\n          if (pcVar9 != local_38) {\n            iVar4 = 0;\nLAB_0034243c:\n            param_10 = puVar8 + 1;\n            (*pcVar9)(&local_40,param_2,param_3,param_4,param_5,param_6,param_7,param_8,param_9,\n                      iVar3,iVar4);\n            param_4 = local_3c;\n            param_3 = local_40;\n            goto LAB_00341f24;\n          }\n          local_34 = iVar3;\n          piVar7 = (int *)(*(code *)PTR_use_facet<std_ctype<wchar_t>>_00433ac8)(local_30);\n          pcVar9 = *(code **)(*piVar7 + 0x28);\n          *param_8 = 0;\n          local_60 = (*pcVar9)(piVar7,0x25);\n          iVar3 = local_34;\nLAB_003421b4:\n          local_58 = 0;\n          local_5c = iVar3;\n        }" ({ "{") (expression_statement "pcVar9 = *(code **)(*param_2 + 0x20);" (assignment_expression "pcVar9 = *(code **)(*param_2 + 0x20)" (identifier "pcVar9") (= "=") (pointer_expression "*(code **)(*param_2 + 0x20)" (* "*") (cast_expression "(code **)(*param_2 + 0x20)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*param_2 + 0x20)" (( "(") (binary_expression "*param_2 + 0x20" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (+ "+") (number_literal "0x20")) () ")"))))) (; ";")) (if_statement "if (pcVar9 != local_38) {\n            iVar4 = 0;\nLAB_0034243c:\n            param_10 = puVar8 + 1;\n            (*pcVar9)(&local_40,param_2,param_3,param_4,param_5,param_6,param_7,param_8,param_9,\n                      iVar3,iVar4);\n            param_4 = local_3c;\n            param_3 = local_40;\n            goto LAB_00341f24;\n          }" (if "if") (parenthesized_expression "(pcVar9 != local_38)" (( "(") (binary_expression "pcVar9 != local_38" (identifier "pcVar9") (!= "!=") (identifier "local_38")) () ")")) (compound_statement "{\n            iVar4 = 0;\nLAB_0034243c:\n            param_10 = puVar8 + 1;\n            (*pcVar9)(&local_40,param_2,param_3,param_4,param_5,param_6,param_7,param_8,param_9,\n                      iVar3,iVar4);\n            param_4 = local_3c;\n            param_3 = local_40;\n            goto LAB_00341f24;\n          }" ({ "{") (expression_statement "iVar4 = 0;" (assignment_expression "iVar4 = 0" (identifier "iVar4") (= "=") (number_literal "0")) (; ";")) (labeled_statement "LAB_0034243c:\n            param_10 = puVar8 + 1;" (statement_identifier "LAB_0034243c") (: ":") (expression_statement "param_10 = puVar8 + 1;" (assignment_expression "param_10 = puVar8 + 1" (identifier "param_10") (= "=") (binary_expression "puVar8 + 1" (identifier "puVar8") (+ "+") (number_literal "1"))) (; ";"))) (expression_statement "(*pcVar9)(&local_40,param_2,param_3,param_4,param_5,param_6,param_7,param_8,param_9,\n                      iVar3,iVar4);" (call_expression "(*pcVar9)(&local_40,param_2,param_3,param_4,param_5,param_6,param_7,param_8,param_9,\n                      iVar3,iVar4)" (parenthesized_expression "(*pcVar9)" (( "(") (pointer_expression "*pcVar9" (* "*") (identifier "pcVar9")) () ")")) (argument_list "(&local_40,param_2,param_3,param_4,param_5,param_6,param_7,param_8,param_9,\n                      iVar3,iVar4)" (( "(") (pointer_expression "&local_40" (& "&") (identifier "local_40")) (, ",") (identifier "param_2") (, ",") (identifier "param_3") (, ",") (identifier "param_4") (, ",") (identifier "param_5") (, ",") (identifier "param_6") (, ",") (identifier "param_7") (, ",") (identifier "param_8") (, ",") (identifier "param_9") (, ",") (identifier "iVar3") (, ",") (identifier "iVar4") () ")"))) (; ";")) (expression_statement "param_4 = local_3c;" (assignment_expression "param_4 = local_3c" (identifier "param_4") (= "=") (identifier "local_3c")) (; ";")) (expression_statement "param_3 = local_40;" (assignment_expression "param_3 = local_40" (identifier "param_3") (= "=") (identifier "local_40")) (; ";")) (goto_statement "goto LAB_00341f24;" (goto "goto") (statement_identifier "LAB_00341f24") (; ";")) (} "}"))) (expression_statement "local_34 = iVar3;" (assignment_expression "local_34 = iVar3" (identifier "local_34") (= "=") (identifier "iVar3")) (; ";")) (expression_statement "piVar7 = (int *)(*(code *)PTR_use_facet<std_ctype<wchar_t>>_00433ac8)(local_30);" (assignment_expression "piVar7 = (int *)(*(code *)PTR_use_facet<std_ctype<wchar_t>>_00433ac8)(local_30)" (identifier "piVar7") (= "=") (cast_expression "(int *)(*(code *)PTR_use_facet<std_ctype<wchar_t>>_00433ac8)(local_30)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_use_facet<std_ctype<wchar_t>>_00433ac8)(local_30)" (parenthesized_expression "(*(code *)PTR_use_facet<std_ctype<wchar_t>>_00433ac8)" (( "(") (binary_expression "*(code *)PTR_use_facet<std_ctype<wchar_t>>_00433ac8" (binary_expression "*(code *)PTR_use_facet<std_ctype" (pointer_expression "*(code *)PTR_use_facet" (* "*") (cast_expression "(code *)PTR_use_facet" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_use_facet"))) (< "<") (identifier "std_ctype")) (< "<") (binary_expression "wchar_t>>_00433ac8" (identifier "wchar_t") (>> ">>") (identifier "_00433ac8"))) () ")")) (argument_list "(local_30)" (( "(") (identifier "local_30") () ")"))))) (; ";")) (expression_statement "pcVar9 = *(code **)(*piVar7 + 0x28);" (assignment_expression "pcVar9 = *(code **)(*piVar7 + 0x28)" (identifier "pcVar9") (= "=") (pointer_expression "*(code **)(*piVar7 + 0x28)" (* "*") (cast_expression "(code **)(*piVar7 + 0x28)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*piVar7 + 0x28)" (( "(") (binary_expression "*piVar7 + 0x28" (pointer_expression "*piVar7" (* "*") (identifier "piVar7")) (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (expression_statement "*param_8 = 0;" (assignment_expression "*param_8 = 0" (pointer_expression "*param_8" (* "*") (identifier "param_8")) (= "=") (number_literal "0")) (; ";")) (expression_statement "local_60 = (*pcVar9)(piVar7,0x25);" (assignment_expression "local_60 = (*pcVar9)(piVar7,0x25)" (identifier "local_60") (= "=") (call_expression "(*pcVar9)(piVar7,0x25)" (parenthesized_expression "(*pcVar9)" (( "(") (pointer_expression "*pcVar9" (* "*") (identifier "pcVar9")) () ")")) (argument_list "(piVar7,0x25)" (( "(") (identifier "piVar7") (, ",") (number_literal "0x25") () ")")))) (; ";")) (expression_statement "iVar3 = local_34;" (assignment_expression "iVar3 = local_34" (identifier "iVar3") (= "=") (identifier "local_34")) (; ";")) (labeled_statement "LAB_003421b4:\n          local_58 = 0;" (statement_identifier "LAB_003421b4") (: ":") (expression_statement "local_58 = 0;" (assignment_expression "local_58 = 0" (identifier "local_58") (= "=") (number_literal "0")) (; ";"))) (expression_statement "local_5c = iVar3;" (assignment_expression "local_5c = iVar3" (identifier "local_5c") (= "=") (identifier "iVar3")) (; ";")) (} "}")))) (expression_statement "local_4c = param_6;" (assignment_expression "local_4c = param_6" (identifier "local_4c") (= "=") (identifier "param_6")) (; ";")) (expression_statement "local_50 = param_5;" (assignment_expression "local_50 = param_5" (identifier "local_50") (= "=") (identifier "param_5")) (; ";")) (labeled_statement "std::time_get<wchar_t,std::istreambuf_iterator<wchar_t,std::char_traits<wchar_t>>>::\n        _M_extract_via_format\n                  (&local_40,param_2,param_3,param_4,param_5,param_6,param_7,param_8,param_9,\n                   local_2c);" (statement_identifier "std") (ERROR "::time_get<wchar_t,std::istreambuf_iterator<wchar_t,std:" (: ":") (: ":") (comma_expression "time_get<wchar_t,std" (binary_expression "time_get<wchar_t" (identifier "time_get") (< "<") (identifier "wchar_t")) (, ",") (identifier "std")) (: ":") (: ":") (comma_expression "istreambuf_iterator<wchar_t,std" (binary_expression "istreambuf_iterator<wchar_t" (identifier "istreambuf_iterator") (< "<") (identifier "wchar_t")) (, ",") (identifier "std")) (: ":")) (: ":") (expression_statement "char_traits<wchar_t>>>::\n        _M_extract_via_format\n                  (&local_40,param_2,param_3,param_4,param_5,param_6,param_7,param_8,param_9,\n                   local_2c);" (binary_expression "char_traits<wchar_t>>>::\n        _M_extract_via_format\n                  (&local_40,param_2,param_3,param_4,param_5,param_6,param_7,param_8,param_9,\n                   local_2c)" (identifier "char_traits") (< "<") (binary_expression "wchar_t>>>::\n        _M_extract_via_format\n                  (&local_40,param_2,param_3,param_4,param_5,param_6,param_7,param_8,param_9,\n                   local_2c)" (identifier "wchar_t") (>> ">>") (ERROR ">::" (> ">") (: ":") (: ":")) (call_expression "_M_extract_via_format\n                  (&local_40,param_2,param_3,param_4,param_5,param_6,param_7,param_8,param_9,\n                   local_2c)" (identifier "_M_extract_via_format") (argument_list "(&local_40,param_2,param_3,param_4,param_5,param_6,param_7,param_8,param_9,\n                   local_2c)" (( "(") (pointer_expression "&local_40" (& "&") (identifier "local_40")) (, ",") (identifier "param_2") (, ",") (identifier "param_3") (, ",") (identifier "param_4") (, ",") (identifier "param_5") (, ",") (identifier "param_6") (, ",") (identifier "param_7") (, ",") (identifier "param_8") (, ",") (identifier "param_9") (, ",") (identifier "local_2c") () ")"))))) (; ";"))) (expression_statement "param_4 = local_3c;" (assignment_expression "param_4 = local_3c" (identifier "param_4") (= "=") (identifier "local_3c")) (; ";")) (expression_statement "param_3 = local_40;" (assignment_expression "param_3 = local_40" (identifier "param_3") (= "=") (identifier "local_40")) (; ";")) (expression_statement "local_48 = local_40;" (assignment_expression "local_48 = local_40" (identifier "local_48") (= "=") (identifier "local_40")) (; ";")) (expression_statement "local_44 = local_3c;" (assignment_expression "local_44 = local_3c" (identifier "local_44") (= "=") (identifier "local_3c")) (; ";")) (expression_statement "iVar3 = local_3c;" (assignment_expression "iVar3 = local_3c" (identifier "iVar3") (= "=") (identifier "local_3c")) (; ";")) (if_statement "if ((local_40 != (int *)0x0) && (local_3c == -1)) {\n          if ((int *)local_40[2] < (int *)local_40[3]) {\n            iVar3 = *(int *)local_40[2];\n          }\n          else {\n            iVar3 = (**(code **)(*local_40 + 0x24))(local_40);\n          }\n          if (iVar3 == -1) {\n            param_3 = (int *)0x0;\n          }\n        }" (if "if") (parenthesized_expression "((local_40 != (int *)0x0) && (local_3c == -1))" (( "(") (binary_expression "(local_40 != (int *)0x0) && (local_3c == -1)" (parenthesized_expression "(local_40 != (int *)0x0)" (( "(") (binary_expression "local_40 != (int *)0x0" (identifier "local_40") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "(local_3c == -1)" (( "(") (binary_expression "local_3c == -1" (identifier "local_3c") (== "==") (number_literal "-1")) () ")"))) () ")")) (compound_statement "{\n          if ((int *)local_40[2] < (int *)local_40[3]) {\n            iVar3 = *(int *)local_40[2];\n          }\n          else {\n            iVar3 = (**(code **)(*local_40 + 0x24))(local_40);\n          }\n          if (iVar3 == -1) {\n            param_3 = (int *)0x0;\n          }\n        }" ({ "{") (if_statement "if ((int *)local_40[2] < (int *)local_40[3]) {\n            iVar3 = *(int *)local_40[2];\n          }\n          else {\n            iVar3 = (**(code **)(*local_40 + 0x24))(local_40);\n          }" (if "if") (parenthesized_expression "((int *)local_40[2] < (int *)local_40[3])" (( "(") (binary_expression "(int *)local_40[2] < (int *)local_40[3]" (cast_expression "(int *)local_40[2]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "local_40[2]" (identifier "local_40") ([ "[") (number_literal "2") (] "]"))) (< "<") (cast_expression "(int *)local_40[3]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "local_40[3]" (identifier "local_40") ([ "[") (number_literal "3") (] "]")))) () ")")) (compound_statement "{\n            iVar3 = *(int *)local_40[2];\n          }" ({ "{") (expression_statement "iVar3 = *(int *)local_40[2];" (assignment_expression "iVar3 = *(int *)local_40[2]" (identifier "iVar3") (= "=") (pointer_expression "*(int *)local_40[2]" (* "*") (cast_expression "(int *)local_40[2]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "local_40[2]" (identifier "local_40") ([ "[") (number_literal "2") (] "]"))))) (; ";")) (} "}")) (else_clause "else {\n            iVar3 = (**(code **)(*local_40 + 0x24))(local_40);\n          }" (else "else") (compound_statement "{\n            iVar3 = (**(code **)(*local_40 + 0x24))(local_40);\n          }" ({ "{") (expression_statement "iVar3 = (**(code **)(*local_40 + 0x24))(local_40);" (assignment_expression "iVar3 = (**(code **)(*local_40 + 0x24))(local_40)" (identifier "iVar3") (= "=") (call_expression "(**(code **)(*local_40 + 0x24))(local_40)" (parenthesized_expression "(**(code **)(*local_40 + 0x24))" (( "(") (pointer_expression "**(code **)(*local_40 + 0x24)" (* "*") (pointer_expression "*(code **)(*local_40 + 0x24)" (* "*") (cast_expression "(code **)(*local_40 + 0x24)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*local_40 + 0x24)" (( "(") (binary_expression "*local_40 + 0x24" (pointer_expression "*local_40" (* "*") (identifier "local_40")) (+ "+") (number_literal "0x24")) () ")"))))) () ")")) (argument_list "(local_40)" (( "(") (identifier "local_40") () ")")))) (; ";")) (} "}")))) (if_statement "if (iVar3 == -1) {\n            param_3 = (int *)0x0;\n          }" (if "if") (parenthesized_expression "(iVar3 == -1)" (( "(") (binary_expression "iVar3 == -1" (identifier "iVar3") (== "==") (number_literal "-1")) () ")")) (compound_statement "{\n            param_3 = (int *)0x0;\n          }" ({ "{") (expression_statement "param_3 = (int *)0x0;" (assignment_expression "param_3 = (int *)0x0" (identifier "param_3") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}"))) (} "}"))) (expression_statement "iVar4 = param_6;" (assignment_expression "iVar4 = param_6" (identifier "iVar4") (= "=") (identifier "param_6")) (; ";")) (if_statement "if ((param_5 != (int *)0x0) && (param_6 == -1)) {\n          if ((int *)param_5[2] < (int *)param_5[3]) {\n            iVar4 = *(int *)param_5[2];\n          }\n          else {\n            iVar4 = (**(code **)(*param_5 + 0x24))(param_5);\n          }\n        }" (if "if") (parenthesized_expression "((param_5 != (int *)0x0) && (param_6 == -1))" (( "(") (binary_expression "(param_5 != (int *)0x0) && (param_6 == -1)" (parenthesized_expression "(param_5 != (int *)0x0)" (( "(") (binary_expression "param_5 != (int *)0x0" (identifier "param_5") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "(param_6 == -1)" (( "(") (binary_expression "param_6 == -1" (identifier "param_6") (== "==") (number_literal "-1")) () ")"))) () ")")) (compound_statement "{\n          if ((int *)param_5[2] < (int *)param_5[3]) {\n            iVar4 = *(int *)param_5[2];\n          }\n          else {\n            iVar4 = (**(code **)(*param_5 + 0x24))(param_5);\n          }\n        }" ({ "{") (if_statement "if ((int *)param_5[2] < (int *)param_5[3]) {\n            iVar4 = *(int *)param_5[2];\n          }\n          else {\n            iVar4 = (**(code **)(*param_5 + 0x24))(param_5);\n          }" (if "if") (parenthesized_expression "((int *)param_5[2] < (int *)param_5[3])" (( "(") (binary_expression "(int *)param_5[2] < (int *)param_5[3]" (cast_expression "(int *)param_5[2]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_5[2]" (identifier "param_5") ([ "[") (number_literal "2") (] "]"))) (< "<") (cast_expression "(int *)param_5[3]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_5[3]" (identifier "param_5") ([ "[") (number_literal "3") (] "]")))) () ")")) (compound_statement "{\n            iVar4 = *(int *)param_5[2];\n          }" ({ "{") (expression_statement "iVar4 = *(int *)param_5[2];" (assignment_expression "iVar4 = *(int *)param_5[2]" (identifier "iVar4") (= "=") (pointer_expression "*(int *)param_5[2]" (* "*") (cast_expression "(int *)param_5[2]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_5[2]" (identifier "param_5") ([ "[") (number_literal "2") (] "]"))))) (; ";")) (} "}")) (else_clause "else {\n            iVar4 = (**(code **)(*param_5 + 0x24))(param_5);\n          }" (else "else") (compound_statement "{\n            iVar4 = (**(code **)(*param_5 + 0x24))(param_5);\n          }" ({ "{") (expression_statement "iVar4 = (**(code **)(*param_5 + 0x24))(param_5);" (assignment_expression "iVar4 = (**(code **)(*param_5 + 0x24))(param_5)" (identifier "iVar4") (= "=") (call_expression "(**(code **)(*param_5 + 0x24))(param_5)" (parenthesized_expression "(**(code **)(*param_5 + 0x24))" (( "(") (pointer_expression "**(code **)(*param_5 + 0x24)" (* "*") (pointer_expression "*(code **)(*param_5 + 0x24)" (* "*") (cast_expression "(code **)(*param_5 + 0x24)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*param_5 + 0x24)" (( "(") (binary_expression "*param_5 + 0x24" (pointer_expression "*param_5" (* "*") (identifier "param_5")) (+ "+") (number_literal "0x24")) () ")"))))) () ")")) (argument_list "(param_5)" (( "(") (identifier "param_5") () ")")))) (; ";")) (} "}")))) (} "}"))) (if_statement "if ((iVar4 == -1) == (iVar3 == -1)) {\n          *param_8 = *param_8 | 2;\n        }" (if "if") (parenthesized_expression "((iVar4 == -1) == (iVar3 == -1))" (( "(") (binary_expression "(iVar4 == -1) == (iVar3 == -1)" (parenthesized_expression "(iVar4 == -1)" (( "(") (binary_expression "iVar4 == -1" (identifier "iVar4") (== "==") (number_literal "-1")) () ")")) (== "==") (parenthesized_expression "(iVar3 == -1)" (( "(") (binary_expression "iVar3 == -1" (identifier "iVar3") (== "==") (number_literal "-1")) () ")"))) () ")")) (compound_statement "{\n          *param_8 = *param_8 | 2;\n        }" ({ "{") (expression_statement "*param_8 = *param_8 | 2;" (assignment_expression "*param_8 = *param_8 | 2" (pointer_expression "*param_8" (* "*") (identifier "param_8")) (= "=") (binary_expression "*param_8 | 2" (pointer_expression "*param_8" (* "*") (identifier "param_8")) (| "|") (number_literal "2"))) (; ";")) (} "}"))) (expression_statement "param_10 = puVar8 + 1;" (assignment_expression "param_10 = puVar8 + 1" (identifier "param_10") (= "=") (binary_expression "puVar8 + 1" (identifier "puVar8") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (else_clause "else {\n        iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,*param_10);\n        if (iVar3 == 0) {\n          iVar4 = param_4;\n          iVar3 = param_4;\n          if (param_3 == (int *)0x0) {\nLAB_00342380:\n            iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,iVar4);\n            iVar5 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n            if (iVar5 != iVar4) {\n              param_3 = (int *)0x0;\nLAB_00341ed0:\n              iVar3 = (**(code **)(*(int *)pcVar2 + 0x18))(pcVar2,iVar3);\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x18))(pcVar2,*param_10);\n              if (iVar4 != iVar3) {\nLAB_0034254c:\n                *param_8 = 4;\n                *param_1 = param_3;\n                param_1[1] = param_4;\n                return;\n              }\n              goto LAB_00341f00;\n            }\n            param_3 = (int *)0x0;\n            uVar6 = uRam00000008;\n            if (uRam0000000c <= uRam00000008) goto LAB_003424f8;\nLAB_00341f14:\n            param_3[2] = uVar6 + 4;\n          }\n          else {\n            if (param_4 == -1) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar4 = *(int *)param_3[2];\n              }\n              else {\n                iVar4 = (**(code **)(*param_3 + 0x24))(param_3,0xffffffff);\n              }\n              if (iVar4 == -1) goto LAB_00342380;\n              iVar3 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2);\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n              if (iVar3 != iVar4) {\n                if ((int *)param_3[2] < (int *)param_3[3]) {\n                  iVar3 = *(int *)param_3[2];\n                  if (iVar3 == -1) {\n                    param_3 = (int *)0x0;\n                  }\n                }\n                else {\n                  iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n                  if (iVar3 == -1) {\n                    param_3 = (int *)0x0;\n                  }\n                }\n                goto LAB_00341ed0;\n              }\n            }\n            else {\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2);\n              iVar5 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n              if (iVar5 != iVar4) goto LAB_00341ed0;\n            }\nLAB_00341f00:\n            uVar6 = param_3[2];\n            if ((uint)param_3[2] < (uint)param_3[3]) goto LAB_00341f14;\nLAB_003424f8:\n            (**(code **)(*param_3 + 0x28))(param_3);\n          }\n          param_10 = param_10 + 1;\n          param_4 = -1;\n        }\n        else {\n          do {\n            param_10 = param_10 + 1;\n            if (param_11 == param_10) break;\n            iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,*param_10);\n          } while (iVar3 != 0);\n          iVar3 = param_4;\n          if ((param_3 != (int *)0x0) && (param_4 == -1)) goto LAB_0034201c;\n          while( true ) {\n            bVar1 = param_4 == -1;\n            iVar4 = param_6;\n            if ((param_5 != (int *)0x0) && (param_6 == -1)) {\n              if ((int *)param_5[2] < (int *)param_5[3]) {\n                iVar4 = *(int *)param_5[2];\n                if (iVar4 == -1) {\n                  param_5 = (int *)0x0;\n                }\n              }\n              else {\n                iVar4 = (**(code **)(*param_5 + 0x24))(param_5);\n                if (iVar4 == -1) {\n                  param_5 = (int *)0x0;\n                }\n              }\n            }\n            param_4 = iVar3;\n            if ((iVar4 == -1) == bVar1) break;\n            if ((param_3 != (int *)0x0) && (iVar3 == -1)) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar3 = *(int *)param_3[2];\n                if (iVar3 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n              else {\n                iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n                if (iVar3 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n            }\n            iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,iVar3);\n            if (iVar3 == 0) break;\n            if ((uint)param_3[2] < (uint)param_3[3]) {\n              param_3[2] = param_3[2] + 4;\nLAB_0034201c:\n              piVar7 = (int *)param_3[2];\n              if (piVar7 < (int *)param_3[3]) goto LAB_00342030;\nLAB_003422d0:\n              param_4 = (**(code **)(*param_3 + 0x24))(param_3);\n            }\n            else {\n              (**(code **)(*param_3 + 0x28))(param_3);\n              piVar7 = (int *)param_3[2];\n              if ((int *)param_3[3] <= piVar7) goto LAB_003422d0;\nLAB_00342030:\n              param_4 = *piVar7;\n            }\n            iVar3 = -1;\n            if (param_4 == -1) {\n              param_3 = (int *)0x0;\n            }\n          }\n        }\n      }" (else "else") (compound_statement "{\n        iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,*param_10);\n        if (iVar3 == 0) {\n          iVar4 = param_4;\n          iVar3 = param_4;\n          if (param_3 == (int *)0x0) {\nLAB_00342380:\n            iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,iVar4);\n            iVar5 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n            if (iVar5 != iVar4) {\n              param_3 = (int *)0x0;\nLAB_00341ed0:\n              iVar3 = (**(code **)(*(int *)pcVar2 + 0x18))(pcVar2,iVar3);\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x18))(pcVar2,*param_10);\n              if (iVar4 != iVar3) {\nLAB_0034254c:\n                *param_8 = 4;\n                *param_1 = param_3;\n                param_1[1] = param_4;\n                return;\n              }\n              goto LAB_00341f00;\n            }\n            param_3 = (int *)0x0;\n            uVar6 = uRam00000008;\n            if (uRam0000000c <= uRam00000008) goto LAB_003424f8;\nLAB_00341f14:\n            param_3[2] = uVar6 + 4;\n          }\n          else {\n            if (param_4 == -1) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar4 = *(int *)param_3[2];\n              }\n              else {\n                iVar4 = (**(code **)(*param_3 + 0x24))(param_3,0xffffffff);\n              }\n              if (iVar4 == -1) goto LAB_00342380;\n              iVar3 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2);\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n              if (iVar3 != iVar4) {\n                if ((int *)param_3[2] < (int *)param_3[3]) {\n                  iVar3 = *(int *)param_3[2];\n                  if (iVar3 == -1) {\n                    param_3 = (int *)0x0;\n                  }\n                }\n                else {\n                  iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n                  if (iVar3 == -1) {\n                    param_3 = (int *)0x0;\n                  }\n                }\n                goto LAB_00341ed0;\n              }\n            }\n            else {\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2);\n              iVar5 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n              if (iVar5 != iVar4) goto LAB_00341ed0;\n            }\nLAB_00341f00:\n            uVar6 = param_3[2];\n            if ((uint)param_3[2] < (uint)param_3[3]) goto LAB_00341f14;\nLAB_003424f8:\n            (**(code **)(*param_3 + 0x28))(param_3);\n          }\n          param_10 = param_10 + 1;\n          param_4 = -1;\n        }\n        else {\n          do {\n            param_10 = param_10 + 1;\n            if (param_11 == param_10) break;\n            iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,*param_10);\n          } while (iVar3 != 0);\n          iVar3 = param_4;\n          if ((param_3 != (int *)0x0) && (param_4 == -1)) goto LAB_0034201c;\n          while( true ) {\n            bVar1 = param_4 == -1;\n            iVar4 = param_6;\n            if ((param_5 != (int *)0x0) && (param_6 == -1)) {\n              if ((int *)param_5[2] < (int *)param_5[3]) {\n                iVar4 = *(int *)param_5[2];\n                if (iVar4 == -1) {\n                  param_5 = (int *)0x0;\n                }\n              }\n              else {\n                iVar4 = (**(code **)(*param_5 + 0x24))(param_5);\n                if (iVar4 == -1) {\n                  param_5 = (int *)0x0;\n                }\n              }\n            }\n            param_4 = iVar3;\n            if ((iVar4 == -1) == bVar1) break;\n            if ((param_3 != (int *)0x0) && (iVar3 == -1)) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar3 = *(int *)param_3[2];\n                if (iVar3 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n              else {\n                iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n                if (iVar3 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n            }\n            iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,iVar3);\n            if (iVar3 == 0) break;\n            if ((uint)param_3[2] < (uint)param_3[3]) {\n              param_3[2] = param_3[2] + 4;\nLAB_0034201c:\n              piVar7 = (int *)param_3[2];\n              if (piVar7 < (int *)param_3[3]) goto LAB_00342030;\nLAB_003422d0:\n              param_4 = (**(code **)(*param_3 + 0x24))(param_3);\n            }\n            else {\n              (**(code **)(*param_3 + 0x28))(param_3);\n              piVar7 = (int *)param_3[2];\n              if ((int *)param_3[3] <= piVar7) goto LAB_003422d0;\nLAB_00342030:\n              param_4 = *piVar7;\n            }\n            iVar3 = -1;\n            if (param_4 == -1) {\n              param_3 = (int *)0x0;\n            }\n          }\n        }\n      }" ({ "{") (expression_statement "iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,*param_10);" (assignment_expression "iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,*param_10)" (identifier "iVar3") (= "=") (call_expression "(**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,*param_10)" (parenthesized_expression "(**(code **)(*(int *)pcVar2 + 8))" (( "(") (pointer_expression "**(code **)(*(int *)pcVar2 + 8)" (* "*") (pointer_expression "*(code **)(*(int *)pcVar2 + 8)" (* "*") (cast_expression "(code **)(*(int *)pcVar2 + 8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)pcVar2 + 8)" (( "(") (binary_expression "*(int *)pcVar2 + 8" (pointer_expression "*(int *)pcVar2" (* "*") (cast_expression "(int *)pcVar2" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pcVar2"))) (+ "+") (number_literal "8")) () ")"))))) () ")")) (argument_list "(pcVar2,0x20,*param_10)" (( "(") (identifier "pcVar2") (, ",") (number_literal "0x20") (, ",") (pointer_expression "*param_10" (* "*") (identifier "param_10")) () ")")))) (; ";")) (if_statement "if (iVar3 == 0) {\n          iVar4 = param_4;\n          iVar3 = param_4;\n          if (param_3 == (int *)0x0) {\nLAB_00342380:\n            iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,iVar4);\n            iVar5 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n            if (iVar5 != iVar4) {\n              param_3 = (int *)0x0;\nLAB_00341ed0:\n              iVar3 = (**(code **)(*(int *)pcVar2 + 0x18))(pcVar2,iVar3);\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x18))(pcVar2,*param_10);\n              if (iVar4 != iVar3) {\nLAB_0034254c:\n                *param_8 = 4;\n                *param_1 = param_3;\n                param_1[1] = param_4;\n                return;\n              }\n              goto LAB_00341f00;\n            }\n            param_3 = (int *)0x0;\n            uVar6 = uRam00000008;\n            if (uRam0000000c <= uRam00000008) goto LAB_003424f8;\nLAB_00341f14:\n            param_3[2] = uVar6 + 4;\n          }\n          else {\n            if (param_4 == -1) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar4 = *(int *)param_3[2];\n              }\n              else {\n                iVar4 = (**(code **)(*param_3 + 0x24))(param_3,0xffffffff);\n              }\n              if (iVar4 == -1) goto LAB_00342380;\n              iVar3 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2);\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n              if (iVar3 != iVar4) {\n                if ((int *)param_3[2] < (int *)param_3[3]) {\n                  iVar3 = *(int *)param_3[2];\n                  if (iVar3 == -1) {\n                    param_3 = (int *)0x0;\n                  }\n                }\n                else {\n                  iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n                  if (iVar3 == -1) {\n                    param_3 = (int *)0x0;\n                  }\n                }\n                goto LAB_00341ed0;\n              }\n            }\n            else {\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2);\n              iVar5 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n              if (iVar5 != iVar4) goto LAB_00341ed0;\n            }\nLAB_00341f00:\n            uVar6 = param_3[2];\n            if ((uint)param_3[2] < (uint)param_3[3]) goto LAB_00341f14;\nLAB_003424f8:\n            (**(code **)(*param_3 + 0x28))(param_3);\n          }\n          param_10 = param_10 + 1;\n          param_4 = -1;\n        }\n        else {\n          do {\n            param_10 = param_10 + 1;\n            if (param_11 == param_10) break;\n            iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,*param_10);\n          } while (iVar3 != 0);\n          iVar3 = param_4;\n          if ((param_3 != (int *)0x0) && (param_4 == -1)) goto LAB_0034201c;\n          while( true ) {\n            bVar1 = param_4 == -1;\n            iVar4 = param_6;\n            if ((param_5 != (int *)0x0) && (param_6 == -1)) {\n              if ((int *)param_5[2] < (int *)param_5[3]) {\n                iVar4 = *(int *)param_5[2];\n                if (iVar4 == -1) {\n                  param_5 = (int *)0x0;\n                }\n              }\n              else {\n                iVar4 = (**(code **)(*param_5 + 0x24))(param_5);\n                if (iVar4 == -1) {\n                  param_5 = (int *)0x0;\n                }\n              }\n            }\n            param_4 = iVar3;\n            if ((iVar4 == -1) == bVar1) break;\n            if ((param_3 != (int *)0x0) && (iVar3 == -1)) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar3 = *(int *)param_3[2];\n                if (iVar3 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n              else {\n                iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n                if (iVar3 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n            }\n            iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,iVar3);\n            if (iVar3 == 0) break;\n            if ((uint)param_3[2] < (uint)param_3[3]) {\n              param_3[2] = param_3[2] + 4;\nLAB_0034201c:\n              piVar7 = (int *)param_3[2];\n              if (piVar7 < (int *)param_3[3]) goto LAB_00342030;\nLAB_003422d0:\n              param_4 = (**(code **)(*param_3 + 0x24))(param_3);\n            }\n            else {\n              (**(code **)(*param_3 + 0x28))(param_3);\n              piVar7 = (int *)param_3[2];\n              if ((int *)param_3[3] <= piVar7) goto LAB_003422d0;\nLAB_00342030:\n              param_4 = *piVar7;\n            }\n            iVar3 = -1;\n            if (param_4 == -1) {\n              param_3 = (int *)0x0;\n            }\n          }\n        }" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          iVar4 = param_4;\n          iVar3 = param_4;\n          if (param_3 == (int *)0x0) {\nLAB_00342380:\n            iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,iVar4);\n            iVar5 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n            if (iVar5 != iVar4) {\n              param_3 = (int *)0x0;\nLAB_00341ed0:\n              iVar3 = (**(code **)(*(int *)pcVar2 + 0x18))(pcVar2,iVar3);\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x18))(pcVar2,*param_10);\n              if (iVar4 != iVar3) {\nLAB_0034254c:\n                *param_8 = 4;\n                *param_1 = param_3;\n                param_1[1] = param_4;\n                return;\n              }\n              goto LAB_00341f00;\n            }\n            param_3 = (int *)0x0;\n            uVar6 = uRam00000008;\n            if (uRam0000000c <= uRam00000008) goto LAB_003424f8;\nLAB_00341f14:\n            param_3[2] = uVar6 + 4;\n          }\n          else {\n            if (param_4 == -1) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar4 = *(int *)param_3[2];\n              }\n              else {\n                iVar4 = (**(code **)(*param_3 + 0x24))(param_3,0xffffffff);\n              }\n              if (iVar4 == -1) goto LAB_00342380;\n              iVar3 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2);\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n              if (iVar3 != iVar4) {\n                if ((int *)param_3[2] < (int *)param_3[3]) {\n                  iVar3 = *(int *)param_3[2];\n                  if (iVar3 == -1) {\n                    param_3 = (int *)0x0;\n                  }\n                }\n                else {\n                  iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n                  if (iVar3 == -1) {\n                    param_3 = (int *)0x0;\n                  }\n                }\n                goto LAB_00341ed0;\n              }\n            }\n            else {\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2);\n              iVar5 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n              if (iVar5 != iVar4) goto LAB_00341ed0;\n            }\nLAB_00341f00:\n            uVar6 = param_3[2];\n            if ((uint)param_3[2] < (uint)param_3[3]) goto LAB_00341f14;\nLAB_003424f8:\n            (**(code **)(*param_3 + 0x28))(param_3);\n          }\n          param_10 = param_10 + 1;\n          param_4 = -1;\n        }" ({ "{") (expression_statement "iVar4 = param_4;" (assignment_expression "iVar4 = param_4" (identifier "iVar4") (= "=") (identifier "param_4")) (; ";")) (expression_statement "iVar3 = param_4;" (assignment_expression "iVar3 = param_4" (identifier "iVar3") (= "=") (identifier "param_4")) (; ";")) (if_statement "if (param_3 == (int *)0x0) {\nLAB_00342380:\n            iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,iVar4);\n            iVar5 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n            if (iVar5 != iVar4) {\n              param_3 = (int *)0x0;\nLAB_00341ed0:\n              iVar3 = (**(code **)(*(int *)pcVar2 + 0x18))(pcVar2,iVar3);\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x18))(pcVar2,*param_10);\n              if (iVar4 != iVar3) {\nLAB_0034254c:\n                *param_8 = 4;\n                *param_1 = param_3;\n                param_1[1] = param_4;\n                return;\n              }\n              goto LAB_00341f00;\n            }\n            param_3 = (int *)0x0;\n            uVar6 = uRam00000008;\n            if (uRam0000000c <= uRam00000008) goto LAB_003424f8;\nLAB_00341f14:\n            param_3[2] = uVar6 + 4;\n          }\n          else {\n            if (param_4 == -1) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar4 = *(int *)param_3[2];\n              }\n              else {\n                iVar4 = (**(code **)(*param_3 + 0x24))(param_3,0xffffffff);\n              }\n              if (iVar4 == -1) goto LAB_00342380;\n              iVar3 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2);\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n              if (iVar3 != iVar4) {\n                if ((int *)param_3[2] < (int *)param_3[3]) {\n                  iVar3 = *(int *)param_3[2];\n                  if (iVar3 == -1) {\n                    param_3 = (int *)0x0;\n                  }\n                }\n                else {\n                  iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n                  if (iVar3 == -1) {\n                    param_3 = (int *)0x0;\n                  }\n                }\n                goto LAB_00341ed0;\n              }\n            }\n            else {\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2);\n              iVar5 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n              if (iVar5 != iVar4) goto LAB_00341ed0;\n            }\nLAB_00341f00:\n            uVar6 = param_3[2];\n            if ((uint)param_3[2] < (uint)param_3[3]) goto LAB_00341f14;\nLAB_003424f8:\n            (**(code **)(*param_3 + 0x28))(param_3);\n          }" (if "if") (parenthesized_expression "(param_3 == (int *)0x0)" (( "(") (binary_expression "param_3 == (int *)0x0" (identifier "param_3") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\nLAB_00342380:\n            iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,iVar4);\n            iVar5 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n            if (iVar5 != iVar4) {\n              param_3 = (int *)0x0;\nLAB_00341ed0:\n              iVar3 = (**(code **)(*(int *)pcVar2 + 0x18))(pcVar2,iVar3);\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x18))(pcVar2,*param_10);\n              if (iVar4 != iVar3) {\nLAB_0034254c:\n                *param_8 = 4;\n                *param_1 = param_3;\n                param_1[1] = param_4;\n                return;\n              }\n              goto LAB_00341f00;\n            }\n            param_3 = (int *)0x0;\n            uVar6 = uRam00000008;\n            if (uRam0000000c <= uRam00000008) goto LAB_003424f8;\nLAB_00341f14:\n            param_3[2] = uVar6 + 4;\n          }" ({ "{") (labeled_statement "LAB_00342380:\n            iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,iVar4);" (statement_identifier "LAB_00342380") (: ":") (expression_statement "iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,iVar4);" (assignment_expression "iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,iVar4)" (identifier "iVar4") (= "=") (call_expression "(**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,iVar4)" (parenthesized_expression "(**(code **)(*(int *)pcVar2 + 0x20))" (( "(") (pointer_expression "**(code **)(*(int *)pcVar2 + 0x20)" (* "*") (pointer_expression "*(code **)(*(int *)pcVar2 + 0x20)" (* "*") (cast_expression "(code **)(*(int *)pcVar2 + 0x20)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)pcVar2 + 0x20)" (( "(") (binary_expression "*(int *)pcVar2 + 0x20" (pointer_expression "*(int *)pcVar2" (* "*") (cast_expression "(int *)pcVar2" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pcVar2"))) (+ "+") (number_literal "0x20")) () ")"))))) () ")")) (argument_list "(pcVar2,iVar4)" (( "(") (identifier "pcVar2") (, ",") (identifier "iVar4") () ")")))) (; ";"))) (expression_statement "iVar5 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);" (assignment_expression "iVar5 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10)" (identifier "iVar5") (= "=") (call_expression "(**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10)" (parenthesized_expression "(**(code **)(*(int *)pcVar2 + 0x20))" (( "(") (pointer_expression "**(code **)(*(int *)pcVar2 + 0x20)" (* "*") (pointer_expression "*(code **)(*(int *)pcVar2 + 0x20)" (* "*") (cast_expression "(code **)(*(int *)pcVar2 + 0x20)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)pcVar2 + 0x20)" (( "(") (binary_expression "*(int *)pcVar2 + 0x20" (pointer_expression "*(int *)pcVar2" (* "*") (cast_expression "(int *)pcVar2" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pcVar2"))) (+ "+") (number_literal "0x20")) () ")"))))) () ")")) (argument_list "(pcVar2,*param_10)" (( "(") (identifier "pcVar2") (, ",") (pointer_expression "*param_10" (* "*") (identifier "param_10")) () ")")))) (; ";")) (if_statement "if (iVar5 != iVar4) {\n              param_3 = (int *)0x0;\nLAB_00341ed0:\n              iVar3 = (**(code **)(*(int *)pcVar2 + 0x18))(pcVar2,iVar3);\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x18))(pcVar2,*param_10);\n              if (iVar4 != iVar3) {\nLAB_0034254c:\n                *param_8 = 4;\n                *param_1 = param_3;\n                param_1[1] = param_4;\n                return;\n              }\n              goto LAB_00341f00;\n            }" (if "if") (parenthesized_expression "(iVar5 != iVar4)" (( "(") (binary_expression "iVar5 != iVar4" (identifier "iVar5") (!= "!=") (identifier "iVar4")) () ")")) (compound_statement "{\n              param_3 = (int *)0x0;\nLAB_00341ed0:\n              iVar3 = (**(code **)(*(int *)pcVar2 + 0x18))(pcVar2,iVar3);\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x18))(pcVar2,*param_10);\n              if (iVar4 != iVar3) {\nLAB_0034254c:\n                *param_8 = 4;\n                *param_1 = param_3;\n                param_1[1] = param_4;\n                return;\n              }\n              goto LAB_00341f00;\n            }" ({ "{") (expression_statement "param_3 = (int *)0x0;" (assignment_expression "param_3 = (int *)0x0" (identifier "param_3") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (labeled_statement "LAB_00341ed0:\n              iVar3 = (**(code **)(*(int *)pcVar2 + 0x18))(pcVar2,iVar3);" (statement_identifier "LAB_00341ed0") (: ":") (expression_statement "iVar3 = (**(code **)(*(int *)pcVar2 + 0x18))(pcVar2,iVar3);" (assignment_expression "iVar3 = (**(code **)(*(int *)pcVar2 + 0x18))(pcVar2,iVar3)" (identifier "iVar3") (= "=") (call_expression "(**(code **)(*(int *)pcVar2 + 0x18))(pcVar2,iVar3)" (parenthesized_expression "(**(code **)(*(int *)pcVar2 + 0x18))" (( "(") (pointer_expression "**(code **)(*(int *)pcVar2 + 0x18)" (* "*") (pointer_expression "*(code **)(*(int *)pcVar2 + 0x18)" (* "*") (cast_expression "(code **)(*(int *)pcVar2 + 0x18)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)pcVar2 + 0x18)" (( "(") (binary_expression "*(int *)pcVar2 + 0x18" (pointer_expression "*(int *)pcVar2" (* "*") (cast_expression "(int *)pcVar2" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pcVar2"))) (+ "+") (number_literal "0x18")) () ")"))))) () ")")) (argument_list "(pcVar2,iVar3)" (( "(") (identifier "pcVar2") (, ",") (identifier "iVar3") () ")")))) (; ";"))) (expression_statement "iVar4 = (**(code **)(*(int *)pcVar2 + 0x18))(pcVar2,*param_10);" (assignment_expression "iVar4 = (**(code **)(*(int *)pcVar2 + 0x18))(pcVar2,*param_10)" (identifier "iVar4") (= "=") (call_expression "(**(code **)(*(int *)pcVar2 + 0x18))(pcVar2,*param_10)" (parenthesized_expression "(**(code **)(*(int *)pcVar2 + 0x18))" (( "(") (pointer_expression "**(code **)(*(int *)pcVar2 + 0x18)" (* "*") (pointer_expression "*(code **)(*(int *)pcVar2 + 0x18)" (* "*") (cast_expression "(code **)(*(int *)pcVar2 + 0x18)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)pcVar2 + 0x18)" (( "(") (binary_expression "*(int *)pcVar2 + 0x18" (pointer_expression "*(int *)pcVar2" (* "*") (cast_expression "(int *)pcVar2" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pcVar2"))) (+ "+") (number_literal "0x18")) () ")"))))) () ")")) (argument_list "(pcVar2,*param_10)" (( "(") (identifier "pcVar2") (, ",") (pointer_expression "*param_10" (* "*") (identifier "param_10")) () ")")))) (; ";")) (if_statement "if (iVar4 != iVar3) {\nLAB_0034254c:\n                *param_8 = 4;\n                *param_1 = param_3;\n                param_1[1] = param_4;\n                return;\n              }" (if "if") (parenthesized_expression "(iVar4 != iVar3)" (( "(") (binary_expression "iVar4 != iVar3" (identifier "iVar4") (!= "!=") (identifier "iVar3")) () ")")) (compound_statement "{\nLAB_0034254c:\n                *param_8 = 4;\n                *param_1 = param_3;\n                param_1[1] = param_4;\n                return;\n              }" ({ "{") (labeled_statement "LAB_0034254c:\n                *param_8 = 4;" (statement_identifier "LAB_0034254c") (: ":") (expression_statement "*param_8 = 4;" (assignment_expression "*param_8 = 4" (pointer_expression "*param_8" (* "*") (identifier "param_8")) (= "=") (number_literal "4")) (; ";"))) (expression_statement "*param_1 = param_3;" (assignment_expression "*param_1 = param_3" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (identifier "param_3")) (; ";")) (expression_statement "param_1[1] = param_4;" (assignment_expression "param_1[1] = param_4" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "param_4")) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (goto_statement "goto LAB_00341f00;" (goto "goto") (statement_identifier "LAB_00341f00") (; ";")) (} "}"))) (expression_statement "param_3 = (int *)0x0;" (assignment_expression "param_3 = (int *)0x0" (identifier "param_3") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "uVar6 = uRam00000008;" (assignment_expression "uVar6 = uRam00000008" (identifier "uVar6") (= "=") (identifier "uRam00000008")) (; ";")) (if_statement "if (uRam0000000c <= uRam00000008) goto LAB_003424f8;" (if "if") (parenthesized_expression "(uRam0000000c <= uRam00000008)" (( "(") (binary_expression "uRam0000000c <= uRam00000008" (identifier "uRam0000000c") (<= "<=") (identifier "uRam00000008")) () ")")) (goto_statement "goto LAB_003424f8;" (goto "goto") (statement_identifier "LAB_003424f8") (; ";"))) (labeled_statement "LAB_00341f14:\n            param_3[2] = uVar6 + 4;" (statement_identifier "LAB_00341f14") (: ":") (expression_statement "param_3[2] = uVar6 + 4;" (assignment_expression "param_3[2] = uVar6 + 4" (subscript_expression "param_3[2]" (identifier "param_3") ([ "[") (number_literal "2") (] "]")) (= "=") (binary_expression "uVar6 + 4" (identifier "uVar6") (+ "+") (number_literal "4"))) (; ";"))) (} "}")) (else_clause "else {\n            if (param_4 == -1) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar4 = *(int *)param_3[2];\n              }\n              else {\n                iVar4 = (**(code **)(*param_3 + 0x24))(param_3,0xffffffff);\n              }\n              if (iVar4 == -1) goto LAB_00342380;\n              iVar3 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2);\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n              if (iVar3 != iVar4) {\n                if ((int *)param_3[2] < (int *)param_3[3]) {\n                  iVar3 = *(int *)param_3[2];\n                  if (iVar3 == -1) {\n                    param_3 = (int *)0x0;\n                  }\n                }\n                else {\n                  iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n                  if (iVar3 == -1) {\n                    param_3 = (int *)0x0;\n                  }\n                }\n                goto LAB_00341ed0;\n              }\n            }\n            else {\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2);\n              iVar5 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n              if (iVar5 != iVar4) goto LAB_00341ed0;\n            }\nLAB_00341f00:\n            uVar6 = param_3[2];\n            if ((uint)param_3[2] < (uint)param_3[3]) goto LAB_00341f14;\nLAB_003424f8:\n            (**(code **)(*param_3 + 0x28))(param_3);\n          }" (else "else") (compound_statement "{\n            if (param_4 == -1) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar4 = *(int *)param_3[2];\n              }\n              else {\n                iVar4 = (**(code **)(*param_3 + 0x24))(param_3,0xffffffff);\n              }\n              if (iVar4 == -1) goto LAB_00342380;\n              iVar3 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2);\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n              if (iVar3 != iVar4) {\n                if ((int *)param_3[2] < (int *)param_3[3]) {\n                  iVar3 = *(int *)param_3[2];\n                  if (iVar3 == -1) {\n                    param_3 = (int *)0x0;\n                  }\n                }\n                else {\n                  iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n                  if (iVar3 == -1) {\n                    param_3 = (int *)0x0;\n                  }\n                }\n                goto LAB_00341ed0;\n              }\n            }\n            else {\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2);\n              iVar5 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n              if (iVar5 != iVar4) goto LAB_00341ed0;\n            }\nLAB_00341f00:\n            uVar6 = param_3[2];\n            if ((uint)param_3[2] < (uint)param_3[3]) goto LAB_00341f14;\nLAB_003424f8:\n            (**(code **)(*param_3 + 0x28))(param_3);\n          }" ({ "{") (if_statement "if (param_4 == -1) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar4 = *(int *)param_3[2];\n              }\n              else {\n                iVar4 = (**(code **)(*param_3 + 0x24))(param_3,0xffffffff);\n              }\n              if (iVar4 == -1) goto LAB_00342380;\n              iVar3 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2);\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n              if (iVar3 != iVar4) {\n                if ((int *)param_3[2] < (int *)param_3[3]) {\n                  iVar3 = *(int *)param_3[2];\n                  if (iVar3 == -1) {\n                    param_3 = (int *)0x0;\n                  }\n                }\n                else {\n                  iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n                  if (iVar3 == -1) {\n                    param_3 = (int *)0x0;\n                  }\n                }\n                goto LAB_00341ed0;\n              }\n            }\n            else {\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2);\n              iVar5 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n              if (iVar5 != iVar4) goto LAB_00341ed0;\n            }" (if "if") (parenthesized_expression "(param_4 == -1)" (( "(") (binary_expression "param_4 == -1" (identifier "param_4") (== "==") (number_literal "-1")) () ")")) (compound_statement "{\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar4 = *(int *)param_3[2];\n              }\n              else {\n                iVar4 = (**(code **)(*param_3 + 0x24))(param_3,0xffffffff);\n              }\n              if (iVar4 == -1) goto LAB_00342380;\n              iVar3 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2);\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n              if (iVar3 != iVar4) {\n                if ((int *)param_3[2] < (int *)param_3[3]) {\n                  iVar3 = *(int *)param_3[2];\n                  if (iVar3 == -1) {\n                    param_3 = (int *)0x0;\n                  }\n                }\n                else {\n                  iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n                  if (iVar3 == -1) {\n                    param_3 = (int *)0x0;\n                  }\n                }\n                goto LAB_00341ed0;\n              }\n            }" ({ "{") (if_statement "if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar4 = *(int *)param_3[2];\n              }\n              else {\n                iVar4 = (**(code **)(*param_3 + 0x24))(param_3,0xffffffff);\n              }" (if "if") (parenthesized_expression "((int *)param_3[2] < (int *)param_3[3])" (( "(") (binary_expression "(int *)param_3[2] < (int *)param_3[3]" (cast_expression "(int *)param_3[2]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_3[2]" (identifier "param_3") ([ "[") (number_literal "2") (] "]"))) (< "<") (cast_expression "(int *)param_3[3]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_3[3]" (identifier "param_3") ([ "[") (number_literal "3") (] "]")))) () ")")) (compound_statement "{\n                iVar4 = *(int *)param_3[2];\n              }" ({ "{") (expression_statement "iVar4 = *(int *)param_3[2];" (assignment_expression "iVar4 = *(int *)param_3[2]" (identifier "iVar4") (= "=") (pointer_expression "*(int *)param_3[2]" (* "*") (cast_expression "(int *)param_3[2]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_3[2]" (identifier "param_3") ([ "[") (number_literal "2") (] "]"))))) (; ";")) (} "}")) (else_clause "else {\n                iVar4 = (**(code **)(*param_3 + 0x24))(param_3,0xffffffff);\n              }" (else "else") (compound_statement "{\n                iVar4 = (**(code **)(*param_3 + 0x24))(param_3,0xffffffff);\n              }" ({ "{") (expression_statement "iVar4 = (**(code **)(*param_3 + 0x24))(param_3,0xffffffff);" (assignment_expression "iVar4 = (**(code **)(*param_3 + 0x24))(param_3,0xffffffff)" (identifier "iVar4") (= "=") (call_expression "(**(code **)(*param_3 + 0x24))(param_3,0xffffffff)" (parenthesized_expression "(**(code **)(*param_3 + 0x24))" (( "(") (pointer_expression "**(code **)(*param_3 + 0x24)" (* "*") (pointer_expression "*(code **)(*param_3 + 0x24)" (* "*") (cast_expression "(code **)(*param_3 + 0x24)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*param_3 + 0x24)" (( "(") (binary_expression "*param_3 + 0x24" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (+ "+") (number_literal "0x24")) () ")"))))) () ")")) (argument_list "(param_3,0xffffffff)" (( "(") (identifier "param_3") (, ",") (number_literal "0xffffffff") () ")")))) (; ";")) (} "}")))) (if_statement "if (iVar4 == -1) goto LAB_00342380;" (if "if") (parenthesized_expression "(iVar4 == -1)" (( "(") (binary_expression "iVar4 == -1" (identifier "iVar4") (== "==") (number_literal "-1")) () ")")) (goto_statement "goto LAB_00342380;" (goto "goto") (statement_identifier "LAB_00342380") (; ";"))) (expression_statement "iVar3 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2);" (assignment_expression "iVar3 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2)" (identifier "iVar3") (= "=") (call_expression "(**(code **)(*(int *)pcVar2 + 0x20))(pcVar2)" (parenthesized_expression "(**(code **)(*(int *)pcVar2 + 0x20))" (( "(") (pointer_expression "**(code **)(*(int *)pcVar2 + 0x20)" (* "*") (pointer_expression "*(code **)(*(int *)pcVar2 + 0x20)" (* "*") (cast_expression "(code **)(*(int *)pcVar2 + 0x20)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)pcVar2 + 0x20)" (( "(") (binary_expression "*(int *)pcVar2 + 0x20" (pointer_expression "*(int *)pcVar2" (* "*") (cast_expression "(int *)pcVar2" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pcVar2"))) (+ "+") (number_literal "0x20")) () ")"))))) () ")")) (argument_list "(pcVar2)" (( "(") (identifier "pcVar2") () ")")))) (; ";")) (expression_statement "iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);" (assignment_expression "iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10)" (identifier "iVar4") (= "=") (call_expression "(**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10)" (parenthesized_expression "(**(code **)(*(int *)pcVar2 + 0x20))" (( "(") (pointer_expression "**(code **)(*(int *)pcVar2 + 0x20)" (* "*") (pointer_expression "*(code **)(*(int *)pcVar2 + 0x20)" (* "*") (cast_expression "(code **)(*(int *)pcVar2 + 0x20)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)pcVar2 + 0x20)" (( "(") (binary_expression "*(int *)pcVar2 + 0x20" (pointer_expression "*(int *)pcVar2" (* "*") (cast_expression "(int *)pcVar2" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pcVar2"))) (+ "+") (number_literal "0x20")) () ")"))))) () ")")) (argument_list "(pcVar2,*param_10)" (( "(") (identifier "pcVar2") (, ",") (pointer_expression "*param_10" (* "*") (identifier "param_10")) () ")")))) (; ";")) (if_statement "if (iVar3 != iVar4) {\n                if ((int *)param_3[2] < (int *)param_3[3]) {\n                  iVar3 = *(int *)param_3[2];\n                  if (iVar3 == -1) {\n                    param_3 = (int *)0x0;\n                  }\n                }\n                else {\n                  iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n                  if (iVar3 == -1) {\n                    param_3 = (int *)0x0;\n                  }\n                }\n                goto LAB_00341ed0;\n              }" (if "if") (parenthesized_expression "(iVar3 != iVar4)" (( "(") (binary_expression "iVar3 != iVar4" (identifier "iVar3") (!= "!=") (identifier "iVar4")) () ")")) (compound_statement "{\n                if ((int *)param_3[2] < (int *)param_3[3]) {\n                  iVar3 = *(int *)param_3[2];\n                  if (iVar3 == -1) {\n                    param_3 = (int *)0x0;\n                  }\n                }\n                else {\n                  iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n                  if (iVar3 == -1) {\n                    param_3 = (int *)0x0;\n                  }\n                }\n                goto LAB_00341ed0;\n              }" ({ "{") (if_statement "if ((int *)param_3[2] < (int *)param_3[3]) {\n                  iVar3 = *(int *)param_3[2];\n                  if (iVar3 == -1) {\n                    param_3 = (int *)0x0;\n                  }\n                }\n                else {\n                  iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n                  if (iVar3 == -1) {\n                    param_3 = (int *)0x0;\n                  }\n                }" (if "if") (parenthesized_expression "((int *)param_3[2] < (int *)param_3[3])" (( "(") (binary_expression "(int *)param_3[2] < (int *)param_3[3]" (cast_expression "(int *)param_3[2]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_3[2]" (identifier "param_3") ([ "[") (number_literal "2") (] "]"))) (< "<") (cast_expression "(int *)param_3[3]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_3[3]" (identifier "param_3") ([ "[") (number_literal "3") (] "]")))) () ")")) (compound_statement "{\n                  iVar3 = *(int *)param_3[2];\n                  if (iVar3 == -1) {\n                    param_3 = (int *)0x0;\n                  }\n                }" ({ "{") (expression_statement "iVar3 = *(int *)param_3[2];" (assignment_expression "iVar3 = *(int *)param_3[2]" (identifier "iVar3") (= "=") (pointer_expression "*(int *)param_3[2]" (* "*") (cast_expression "(int *)param_3[2]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_3[2]" (identifier "param_3") ([ "[") (number_literal "2") (] "]"))))) (; ";")) (if_statement "if (iVar3 == -1) {\n                    param_3 = (int *)0x0;\n                  }" (if "if") (parenthesized_expression "(iVar3 == -1)" (( "(") (binary_expression "iVar3 == -1" (identifier "iVar3") (== "==") (number_literal "-1")) () ")")) (compound_statement "{\n                    param_3 = (int *)0x0;\n                  }" ({ "{") (expression_statement "param_3 = (int *)0x0;" (assignment_expression "param_3 = (int *)0x0" (identifier "param_3") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n                  iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n                  if (iVar3 == -1) {\n                    param_3 = (int *)0x0;\n                  }\n                }" (else "else") (compound_statement "{\n                  iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n                  if (iVar3 == -1) {\n                    param_3 = (int *)0x0;\n                  }\n                }" ({ "{") (expression_statement "iVar3 = (**(code **)(*param_3 + 0x24))(param_3);" (assignment_expression "iVar3 = (**(code **)(*param_3 + 0x24))(param_3)" (identifier "iVar3") (= "=") (call_expression "(**(code **)(*param_3 + 0x24))(param_3)" (parenthesized_expression "(**(code **)(*param_3 + 0x24))" (( "(") (pointer_expression "**(code **)(*param_3 + 0x24)" (* "*") (pointer_expression "*(code **)(*param_3 + 0x24)" (* "*") (cast_expression "(code **)(*param_3 + 0x24)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*param_3 + 0x24)" (( "(") (binary_expression "*param_3 + 0x24" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (+ "+") (number_literal "0x24")) () ")"))))) () ")")) (argument_list "(param_3)" (( "(") (identifier "param_3") () ")")))) (; ";")) (if_statement "if (iVar3 == -1) {\n                    param_3 = (int *)0x0;\n                  }" (if "if") (parenthesized_expression "(iVar3 == -1)" (( "(") (binary_expression "iVar3 == -1" (identifier "iVar3") (== "==") (number_literal "-1")) () ")")) (compound_statement "{\n                    param_3 = (int *)0x0;\n                  }" ({ "{") (expression_statement "param_3 = (int *)0x0;" (assignment_expression "param_3 = (int *)0x0" (identifier "param_3") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}"))) (} "}")))) (goto_statement "goto LAB_00341ed0;" (goto "goto") (statement_identifier "LAB_00341ed0") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2);\n              iVar5 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n              if (iVar5 != iVar4) goto LAB_00341ed0;\n            }" (else "else") (compound_statement "{\n              iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2);\n              iVar5 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);\n              if (iVar5 != iVar4) goto LAB_00341ed0;\n            }" ({ "{") (expression_statement "iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2);" (assignment_expression "iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2)" (identifier "iVar4") (= "=") (call_expression "(**(code **)(*(int *)pcVar2 + 0x20))(pcVar2)" (parenthesized_expression "(**(code **)(*(int *)pcVar2 + 0x20))" (( "(") (pointer_expression "**(code **)(*(int *)pcVar2 + 0x20)" (* "*") (pointer_expression "*(code **)(*(int *)pcVar2 + 0x20)" (* "*") (cast_expression "(code **)(*(int *)pcVar2 + 0x20)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)pcVar2 + 0x20)" (( "(") (binary_expression "*(int *)pcVar2 + 0x20" (pointer_expression "*(int *)pcVar2" (* "*") (cast_expression "(int *)pcVar2" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pcVar2"))) (+ "+") (number_literal "0x20")) () ")"))))) () ")")) (argument_list "(pcVar2)" (( "(") (identifier "pcVar2") () ")")))) (; ";")) (expression_statement "iVar5 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);" (assignment_expression "iVar5 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10)" (identifier "iVar5") (= "=") (call_expression "(**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10)" (parenthesized_expression "(**(code **)(*(int *)pcVar2 + 0x20))" (( "(") (pointer_expression "**(code **)(*(int *)pcVar2 + 0x20)" (* "*") (pointer_expression "*(code **)(*(int *)pcVar2 + 0x20)" (* "*") (cast_expression "(code **)(*(int *)pcVar2 + 0x20)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)pcVar2 + 0x20)" (( "(") (binary_expression "*(int *)pcVar2 + 0x20" (pointer_expression "*(int *)pcVar2" (* "*") (cast_expression "(int *)pcVar2" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pcVar2"))) (+ "+") (number_literal "0x20")) () ")"))))) () ")")) (argument_list "(pcVar2,*param_10)" (( "(") (identifier "pcVar2") (, ",") (pointer_expression "*param_10" (* "*") (identifier "param_10")) () ")")))) (; ";")) (if_statement "if (iVar5 != iVar4) goto LAB_00341ed0;" (if "if") (parenthesized_expression "(iVar5 != iVar4)" (( "(") (binary_expression "iVar5 != iVar4" (identifier "iVar5") (!= "!=") (identifier "iVar4")) () ")")) (goto_statement "goto LAB_00341ed0;" (goto "goto") (statement_identifier "LAB_00341ed0") (; ";"))) (} "}")))) (labeled_statement "LAB_00341f00:\n            uVar6 = param_3[2];" (statement_identifier "LAB_00341f00") (: ":") (expression_statement "uVar6 = param_3[2];" (assignment_expression "uVar6 = param_3[2]" (identifier "uVar6") (= "=") (subscript_expression "param_3[2]" (identifier "param_3") ([ "[") (number_literal "2") (] "]"))) (; ";"))) (if_statement "if ((uint)param_3[2] < (uint)param_3[3]) goto LAB_00341f14;" (if "if") (parenthesized_expression "((uint)param_3[2] < (uint)param_3[3])" (( "(") (binary_expression "(uint)param_3[2] < (uint)param_3[3]" (cast_expression "(uint)param_3[2]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "param_3[2]" (identifier "param_3") ([ "[") (number_literal "2") (] "]"))) (< "<") (cast_expression "(uint)param_3[3]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "param_3[3]" (identifier "param_3") ([ "[") (number_literal "3") (] "]")))) () ")")) (goto_statement "goto LAB_00341f14;" (goto "goto") (statement_identifier "LAB_00341f14") (; ";"))) (labeled_statement "LAB_003424f8:\n            (**(code **)(*param_3 + 0x28))(param_3);" (statement_identifier "LAB_003424f8") (: ":") (expression_statement "(**(code **)(*param_3 + 0x28))(param_3);" (call_expression "(**(code **)(*param_3 + 0x28))(param_3)" (parenthesized_expression "(**(code **)(*param_3 + 0x28))" (( "(") (pointer_expression "**(code **)(*param_3 + 0x28)" (* "*") (pointer_expression "*(code **)(*param_3 + 0x28)" (* "*") (cast_expression "(code **)(*param_3 + 0x28)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*param_3 + 0x28)" (( "(") (binary_expression "*param_3 + 0x28" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (+ "+") (number_literal "0x28")) () ")"))))) () ")")) (argument_list "(param_3)" (( "(") (identifier "param_3") () ")"))) (; ";"))) (} "}")))) (expression_statement "param_10 = param_10 + 1;" (assignment_expression "param_10 = param_10 + 1" (identifier "param_10") (= "=") (binary_expression "param_10 + 1" (identifier "param_10") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "param_4 = -1;" (assignment_expression "param_4 = -1" (identifier "param_4") (= "=") (number_literal "-1")) (; ";")) (} "}")) (else_clause "else {\n          do {\n            param_10 = param_10 + 1;\n            if (param_11 == param_10) break;\n            iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,*param_10);\n          } while (iVar3 != 0);\n          iVar3 = param_4;\n          if ((param_3 != (int *)0x0) && (param_4 == -1)) goto LAB_0034201c;\n          while( true ) {\n            bVar1 = param_4 == -1;\n            iVar4 = param_6;\n            if ((param_5 != (int *)0x0) && (param_6 == -1)) {\n              if ((int *)param_5[2] < (int *)param_5[3]) {\n                iVar4 = *(int *)param_5[2];\n                if (iVar4 == -1) {\n                  param_5 = (int *)0x0;\n                }\n              }\n              else {\n                iVar4 = (**(code **)(*param_5 + 0x24))(param_5);\n                if (iVar4 == -1) {\n                  param_5 = (int *)0x0;\n                }\n              }\n            }\n            param_4 = iVar3;\n            if ((iVar4 == -1) == bVar1) break;\n            if ((param_3 != (int *)0x0) && (iVar3 == -1)) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar3 = *(int *)param_3[2];\n                if (iVar3 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n              else {\n                iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n                if (iVar3 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n            }\n            iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,iVar3);\n            if (iVar3 == 0) break;\n            if ((uint)param_3[2] < (uint)param_3[3]) {\n              param_3[2] = param_3[2] + 4;\nLAB_0034201c:\n              piVar7 = (int *)param_3[2];\n              if (piVar7 < (int *)param_3[3]) goto LAB_00342030;\nLAB_003422d0:\n              param_4 = (**(code **)(*param_3 + 0x24))(param_3);\n            }\n            else {\n              (**(code **)(*param_3 + 0x28))(param_3);\n              piVar7 = (int *)param_3[2];\n              if ((int *)param_3[3] <= piVar7) goto LAB_003422d0;\nLAB_00342030:\n              param_4 = *piVar7;\n            }\n            iVar3 = -1;\n            if (param_4 == -1) {\n              param_3 = (int *)0x0;\n            }\n          }\n        }" (else "else") (compound_statement "{\n          do {\n            param_10 = param_10 + 1;\n            if (param_11 == param_10) break;\n            iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,*param_10);\n          } while (iVar3 != 0);\n          iVar3 = param_4;\n          if ((param_3 != (int *)0x0) && (param_4 == -1)) goto LAB_0034201c;\n          while( true ) {\n            bVar1 = param_4 == -1;\n            iVar4 = param_6;\n            if ((param_5 != (int *)0x0) && (param_6 == -1)) {\n              if ((int *)param_5[2] < (int *)param_5[3]) {\n                iVar4 = *(int *)param_5[2];\n                if (iVar4 == -1) {\n                  param_5 = (int *)0x0;\n                }\n              }\n              else {\n                iVar4 = (**(code **)(*param_5 + 0x24))(param_5);\n                if (iVar4 == -1) {\n                  param_5 = (int *)0x0;\n                }\n              }\n            }\n            param_4 = iVar3;\n            if ((iVar4 == -1) == bVar1) break;\n            if ((param_3 != (int *)0x0) && (iVar3 == -1)) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar3 = *(int *)param_3[2];\n                if (iVar3 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n              else {\n                iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n                if (iVar3 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n            }\n            iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,iVar3);\n            if (iVar3 == 0) break;\n            if ((uint)param_3[2] < (uint)param_3[3]) {\n              param_3[2] = param_3[2] + 4;\nLAB_0034201c:\n              piVar7 = (int *)param_3[2];\n              if (piVar7 < (int *)param_3[3]) goto LAB_00342030;\nLAB_003422d0:\n              param_4 = (**(code **)(*param_3 + 0x24))(param_3);\n            }\n            else {\n              (**(code **)(*param_3 + 0x28))(param_3);\n              piVar7 = (int *)param_3[2];\n              if ((int *)param_3[3] <= piVar7) goto LAB_003422d0;\nLAB_00342030:\n              param_4 = *piVar7;\n            }\n            iVar3 = -1;\n            if (param_4 == -1) {\n              param_3 = (int *)0x0;\n            }\n          }\n        }" ({ "{") (do_statement "do {\n            param_10 = param_10 + 1;\n            if (param_11 == param_10) break;\n            iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,*param_10);\n          } while (iVar3 != 0);" (do "do") (compound_statement "{\n            param_10 = param_10 + 1;\n            if (param_11 == param_10) break;\n            iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,*param_10);\n          }" ({ "{") (expression_statement "param_10 = param_10 + 1;" (assignment_expression "param_10 = param_10 + 1" (identifier "param_10") (= "=") (binary_expression "param_10 + 1" (identifier "param_10") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (param_11 == param_10) break;" (if "if") (parenthesized_expression "(param_11 == param_10)" (( "(") (binary_expression "param_11 == param_10" (identifier "param_11") (== "==") (identifier "param_10")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,*param_10);" (assignment_expression "iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,*param_10)" (identifier "iVar3") (= "=") (call_expression "(**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,*param_10)" (parenthesized_expression "(**(code **)(*(int *)pcVar2 + 8))" (( "(") (pointer_expression "**(code **)(*(int *)pcVar2 + 8)" (* "*") (pointer_expression "*(code **)(*(int *)pcVar2 + 8)" (* "*") (cast_expression "(code **)(*(int *)pcVar2 + 8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)pcVar2 + 8)" (( "(") (binary_expression "*(int *)pcVar2 + 8" (pointer_expression "*(int *)pcVar2" (* "*") (cast_expression "(int *)pcVar2" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pcVar2"))) (+ "+") (number_literal "8")) () ")"))))) () ")")) (argument_list "(pcVar2,0x20,*param_10)" (( "(") (identifier "pcVar2") (, ",") (number_literal "0x20") (, ",") (pointer_expression "*param_10" (* "*") (identifier "param_10")) () ")")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (; ";")) (expression_statement "iVar3 = param_4;" (assignment_expression "iVar3 = param_4" (identifier "iVar3") (= "=") (identifier "param_4")) (; ";")) (if_statement "if ((param_3 != (int *)0x0) && (param_4 == -1)) goto LAB_0034201c;" (if "if") (parenthesized_expression "((param_3 != (int *)0x0) && (param_4 == -1))" (( "(") (binary_expression "(param_3 != (int *)0x0) && (param_4 == -1)" (parenthesized_expression "(param_3 != (int *)0x0)" (( "(") (binary_expression "param_3 != (int *)0x0" (identifier "param_3") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "(param_4 == -1)" (( "(") (binary_expression "param_4 == -1" (identifier "param_4") (== "==") (number_literal "-1")) () ")"))) () ")")) (goto_statement "goto LAB_0034201c;" (goto "goto") (statement_identifier "LAB_0034201c") (; ";"))) (while_statement "while( true ) {\n            bVar1 = param_4 == -1;\n            iVar4 = param_6;\n            if ((param_5 != (int *)0x0) && (param_6 == -1)) {\n              if ((int *)param_5[2] < (int *)param_5[3]) {\n                iVar4 = *(int *)param_5[2];\n                if (iVar4 == -1) {\n                  param_5 = (int *)0x0;\n                }\n              }\n              else {\n                iVar4 = (**(code **)(*param_5 + 0x24))(param_5);\n                if (iVar4 == -1) {\n                  param_5 = (int *)0x0;\n                }\n              }\n            }\n            param_4 = iVar3;\n            if ((iVar4 == -1) == bVar1) break;\n            if ((param_3 != (int *)0x0) && (iVar3 == -1)) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar3 = *(int *)param_3[2];\n                if (iVar3 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n              else {\n                iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n                if (iVar3 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n            }\n            iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,iVar3);\n            if (iVar3 == 0) break;\n            if ((uint)param_3[2] < (uint)param_3[3]) {\n              param_3[2] = param_3[2] + 4;\nLAB_0034201c:\n              piVar7 = (int *)param_3[2];\n              if (piVar7 < (int *)param_3[3]) goto LAB_00342030;\nLAB_003422d0:\n              param_4 = (**(code **)(*param_3 + 0x24))(param_3);\n            }\n            else {\n              (**(code **)(*param_3 + 0x28))(param_3);\n              piVar7 = (int *)param_3[2];\n              if ((int *)param_3[3] <= piVar7) goto LAB_003422d0;\nLAB_00342030:\n              param_4 = *piVar7;\n            }\n            iVar3 = -1;\n            if (param_4 == -1) {\n              param_3 = (int *)0x0;\n            }\n          }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n            bVar1 = param_4 == -1;\n            iVar4 = param_6;\n            if ((param_5 != (int *)0x0) && (param_6 == -1)) {\n              if ((int *)param_5[2] < (int *)param_5[3]) {\n                iVar4 = *(int *)param_5[2];\n                if (iVar4 == -1) {\n                  param_5 = (int *)0x0;\n                }\n              }\n              else {\n                iVar4 = (**(code **)(*param_5 + 0x24))(param_5);\n                if (iVar4 == -1) {\n                  param_5 = (int *)0x0;\n                }\n              }\n            }\n            param_4 = iVar3;\n            if ((iVar4 == -1) == bVar1) break;\n            if ((param_3 != (int *)0x0) && (iVar3 == -1)) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar3 = *(int *)param_3[2];\n                if (iVar3 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n              else {\n                iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n                if (iVar3 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n            }\n            iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,iVar3);\n            if (iVar3 == 0) break;\n            if ((uint)param_3[2] < (uint)param_3[3]) {\n              param_3[2] = param_3[2] + 4;\nLAB_0034201c:\n              piVar7 = (int *)param_3[2];\n              if (piVar7 < (int *)param_3[3]) goto LAB_00342030;\nLAB_003422d0:\n              param_4 = (**(code **)(*param_3 + 0x24))(param_3);\n            }\n            else {\n              (**(code **)(*param_3 + 0x28))(param_3);\n              piVar7 = (int *)param_3[2];\n              if ((int *)param_3[3] <= piVar7) goto LAB_003422d0;\nLAB_00342030:\n              param_4 = *piVar7;\n            }\n            iVar3 = -1;\n            if (param_4 == -1) {\n              param_3 = (int *)0x0;\n            }\n          }" ({ "{") (expression_statement "bVar1 = param_4 == -1;" (assignment_expression "bVar1 = param_4 == -1" (identifier "bVar1") (= "=") (binary_expression "param_4 == -1" (identifier "param_4") (== "==") (number_literal "-1"))) (; ";")) (expression_statement "iVar4 = param_6;" (assignment_expression "iVar4 = param_6" (identifier "iVar4") (= "=") (identifier "param_6")) (; ";")) (if_statement "if ((param_5 != (int *)0x0) && (param_6 == -1)) {\n              if ((int *)param_5[2] < (int *)param_5[3]) {\n                iVar4 = *(int *)param_5[2];\n                if (iVar4 == -1) {\n                  param_5 = (int *)0x0;\n                }\n              }\n              else {\n                iVar4 = (**(code **)(*param_5 + 0x24))(param_5);\n                if (iVar4 == -1) {\n                  param_5 = (int *)0x0;\n                }\n              }\n            }" (if "if") (parenthesized_expression "((param_5 != (int *)0x0) && (param_6 == -1))" (( "(") (binary_expression "(param_5 != (int *)0x0) && (param_6 == -1)" (parenthesized_expression "(param_5 != (int *)0x0)" (( "(") (binary_expression "param_5 != (int *)0x0" (identifier "param_5") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "(param_6 == -1)" (( "(") (binary_expression "param_6 == -1" (identifier "param_6") (== "==") (number_literal "-1")) () ")"))) () ")")) (compound_statement "{\n              if ((int *)param_5[2] < (int *)param_5[3]) {\n                iVar4 = *(int *)param_5[2];\n                if (iVar4 == -1) {\n                  param_5 = (int *)0x0;\n                }\n              }\n              else {\n                iVar4 = (**(code **)(*param_5 + 0x24))(param_5);\n                if (iVar4 == -1) {\n                  param_5 = (int *)0x0;\n                }\n              }\n            }" ({ "{") (if_statement "if ((int *)param_5[2] < (int *)param_5[3]) {\n                iVar4 = *(int *)param_5[2];\n                if (iVar4 == -1) {\n                  param_5 = (int *)0x0;\n                }\n              }\n              else {\n                iVar4 = (**(code **)(*param_5 + 0x24))(param_5);\n                if (iVar4 == -1) {\n                  param_5 = (int *)0x0;\n                }\n              }" (if "if") (parenthesized_expression "((int *)param_5[2] < (int *)param_5[3])" (( "(") (binary_expression "(int *)param_5[2] < (int *)param_5[3]" (cast_expression "(int *)param_5[2]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_5[2]" (identifier "param_5") ([ "[") (number_literal "2") (] "]"))) (< "<") (cast_expression "(int *)param_5[3]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_5[3]" (identifier "param_5") ([ "[") (number_literal "3") (] "]")))) () ")")) (compound_statement "{\n                iVar4 = *(int *)param_5[2];\n                if (iVar4 == -1) {\n                  param_5 = (int *)0x0;\n                }\n              }" ({ "{") (expression_statement "iVar4 = *(int *)param_5[2];" (assignment_expression "iVar4 = *(int *)param_5[2]" (identifier "iVar4") (= "=") (pointer_expression "*(int *)param_5[2]" (* "*") (cast_expression "(int *)param_5[2]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_5[2]" (identifier "param_5") ([ "[") (number_literal "2") (] "]"))))) (; ";")) (if_statement "if (iVar4 == -1) {\n                  param_5 = (int *)0x0;\n                }" (if "if") (parenthesized_expression "(iVar4 == -1)" (( "(") (binary_expression "iVar4 == -1" (identifier "iVar4") (== "==") (number_literal "-1")) () ")")) (compound_statement "{\n                  param_5 = (int *)0x0;\n                }" ({ "{") (expression_statement "param_5 = (int *)0x0;" (assignment_expression "param_5 = (int *)0x0" (identifier "param_5") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n                iVar4 = (**(code **)(*param_5 + 0x24))(param_5);\n                if (iVar4 == -1) {\n                  param_5 = (int *)0x0;\n                }\n              }" (else "else") (compound_statement "{\n                iVar4 = (**(code **)(*param_5 + 0x24))(param_5);\n                if (iVar4 == -1) {\n                  param_5 = (int *)0x0;\n                }\n              }" ({ "{") (expression_statement "iVar4 = (**(code **)(*param_5 + 0x24))(param_5);" (assignment_expression "iVar4 = (**(code **)(*param_5 + 0x24))(param_5)" (identifier "iVar4") (= "=") (call_expression "(**(code **)(*param_5 + 0x24))(param_5)" (parenthesized_expression "(**(code **)(*param_5 + 0x24))" (( "(") (pointer_expression "**(code **)(*param_5 + 0x24)" (* "*") (pointer_expression "*(code **)(*param_5 + 0x24)" (* "*") (cast_expression "(code **)(*param_5 + 0x24)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*param_5 + 0x24)" (( "(") (binary_expression "*param_5 + 0x24" (pointer_expression "*param_5" (* "*") (identifier "param_5")) (+ "+") (number_literal "0x24")) () ")"))))) () ")")) (argument_list "(param_5)" (( "(") (identifier "param_5") () ")")))) (; ";")) (if_statement "if (iVar4 == -1) {\n                  param_5 = (int *)0x0;\n                }" (if "if") (parenthesized_expression "(iVar4 == -1)" (( "(") (binary_expression "iVar4 == -1" (identifier "iVar4") (== "==") (number_literal "-1")) () ")")) (compound_statement "{\n                  param_5 = (int *)0x0;\n                }" ({ "{") (expression_statement "param_5 = (int *)0x0;" (assignment_expression "param_5 = (int *)0x0" (identifier "param_5") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}"))) (} "}")))) (} "}"))) (expression_statement "param_4 = iVar3;" (assignment_expression "param_4 = iVar3" (identifier "param_4") (= "=") (identifier "iVar3")) (; ";")) (if_statement "if ((iVar4 == -1) == bVar1) break;" (if "if") (parenthesized_expression "((iVar4 == -1) == bVar1)" (( "(") (binary_expression "(iVar4 == -1) == bVar1" (parenthesized_expression "(iVar4 == -1)" (( "(") (binary_expression "iVar4 == -1" (identifier "iVar4") (== "==") (number_literal "-1")) () ")")) (== "==") (identifier "bVar1")) () ")")) (break_statement "break;" (break "break") (; ";"))) (if_statement "if ((param_3 != (int *)0x0) && (iVar3 == -1)) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar3 = *(int *)param_3[2];\n                if (iVar3 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n              else {\n                iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n                if (iVar3 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n            }" (if "if") (parenthesized_expression "((param_3 != (int *)0x0) && (iVar3 == -1))" (( "(") (binary_expression "(param_3 != (int *)0x0) && (iVar3 == -1)" (parenthesized_expression "(param_3 != (int *)0x0)" (( "(") (binary_expression "param_3 != (int *)0x0" (identifier "param_3") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "(iVar3 == -1)" (( "(") (binary_expression "iVar3 == -1" (identifier "iVar3") (== "==") (number_literal "-1")) () ")"))) () ")")) (compound_statement "{\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar3 = *(int *)param_3[2];\n                if (iVar3 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n              else {\n                iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n                if (iVar3 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n            }" ({ "{") (if_statement "if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar3 = *(int *)param_3[2];\n                if (iVar3 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n              else {\n                iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n                if (iVar3 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }" (if "if") (parenthesized_expression "((int *)param_3[2] < (int *)param_3[3])" (( "(") (binary_expression "(int *)param_3[2] < (int *)param_3[3]" (cast_expression "(int *)param_3[2]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_3[2]" (identifier "param_3") ([ "[") (number_literal "2") (] "]"))) (< "<") (cast_expression "(int *)param_3[3]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_3[3]" (identifier "param_3") ([ "[") (number_literal "3") (] "]")))) () ")")) (compound_statement "{\n                iVar3 = *(int *)param_3[2];\n                if (iVar3 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }" ({ "{") (expression_statement "iVar3 = *(int *)param_3[2];" (assignment_expression "iVar3 = *(int *)param_3[2]" (identifier "iVar3") (= "=") (pointer_expression "*(int *)param_3[2]" (* "*") (cast_expression "(int *)param_3[2]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_3[2]" (identifier "param_3") ([ "[") (number_literal "2") (] "]"))))) (; ";")) (if_statement "if (iVar3 == -1) {\n                  param_3 = (int *)0x0;\n                }" (if "if") (parenthesized_expression "(iVar3 == -1)" (( "(") (binary_expression "iVar3 == -1" (identifier "iVar3") (== "==") (number_literal "-1")) () ")")) (compound_statement "{\n                  param_3 = (int *)0x0;\n                }" ({ "{") (expression_statement "param_3 = (int *)0x0;" (assignment_expression "param_3 = (int *)0x0" (identifier "param_3") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n                iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n                if (iVar3 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }" (else "else") (compound_statement "{\n                iVar3 = (**(code **)(*param_3 + 0x24))(param_3);\n                if (iVar3 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }" ({ "{") (expression_statement "iVar3 = (**(code **)(*param_3 + 0x24))(param_3);" (assignment_expression "iVar3 = (**(code **)(*param_3 + 0x24))(param_3)" (identifier "iVar3") (= "=") (call_expression "(**(code **)(*param_3 + 0x24))(param_3)" (parenthesized_expression "(**(code **)(*param_3 + 0x24))" (( "(") (pointer_expression "**(code **)(*param_3 + 0x24)" (* "*") (pointer_expression "*(code **)(*param_3 + 0x24)" (* "*") (cast_expression "(code **)(*param_3 + 0x24)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*param_3 + 0x24)" (( "(") (binary_expression "*param_3 + 0x24" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (+ "+") (number_literal "0x24")) () ")"))))) () ")")) (argument_list "(param_3)" (( "(") (identifier "param_3") () ")")))) (; ";")) (if_statement "if (iVar3 == -1) {\n                  param_3 = (int *)0x0;\n                }" (if "if") (parenthesized_expression "(iVar3 == -1)" (( "(") (binary_expression "iVar3 == -1" (identifier "iVar3") (== "==") (number_literal "-1")) () ")")) (compound_statement "{\n                  param_3 = (int *)0x0;\n                }" ({ "{") (expression_statement "param_3 = (int *)0x0;" (assignment_expression "param_3 = (int *)0x0" (identifier "param_3") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}"))) (} "}")))) (} "}"))) (expression_statement "iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,iVar3);" (assignment_expression "iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,iVar3)" (identifier "iVar3") (= "=") (call_expression "(**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,iVar3)" (parenthesized_expression "(**(code **)(*(int *)pcVar2 + 8))" (( "(") (pointer_expression "**(code **)(*(int *)pcVar2 + 8)" (* "*") (pointer_expression "*(code **)(*(int *)pcVar2 + 8)" (* "*") (cast_expression "(code **)(*(int *)pcVar2 + 8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)pcVar2 + 8)" (( "(") (binary_expression "*(int *)pcVar2 + 8" (pointer_expression "*(int *)pcVar2" (* "*") (cast_expression "(int *)pcVar2" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pcVar2"))) (+ "+") (number_literal "8")) () ")"))))) () ")")) (argument_list "(pcVar2,0x20,iVar3)" (( "(") (identifier "pcVar2") (, ",") (number_literal "0x20") (, ",") (identifier "iVar3") () ")")))) (; ";")) (if_statement "if (iVar3 == 0) break;" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (if_statement "if ((uint)param_3[2] < (uint)param_3[3]) {\n              param_3[2] = param_3[2] + 4;\nLAB_0034201c:\n              piVar7 = (int *)param_3[2];\n              if (piVar7 < (int *)param_3[3]) goto LAB_00342030;\nLAB_003422d0:\n              param_4 = (**(code **)(*param_3 + 0x24))(param_3);\n            }\n            else {\n              (**(code **)(*param_3 + 0x28))(param_3);\n              piVar7 = (int *)param_3[2];\n              if ((int *)param_3[3] <= piVar7) goto LAB_003422d0;\nLAB_00342030:\n              param_4 = *piVar7;\n            }" (if "if") (parenthesized_expression "((uint)param_3[2] < (uint)param_3[3])" (( "(") (binary_expression "(uint)param_3[2] < (uint)param_3[3]" (cast_expression "(uint)param_3[2]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "param_3[2]" (identifier "param_3") ([ "[") (number_literal "2") (] "]"))) (< "<") (cast_expression "(uint)param_3[3]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "param_3[3]" (identifier "param_3") ([ "[") (number_literal "3") (] "]")))) () ")")) (compound_statement "{\n              param_3[2] = param_3[2] + 4;\nLAB_0034201c:\n              piVar7 = (int *)param_3[2];\n              if (piVar7 < (int *)param_3[3]) goto LAB_00342030;\nLAB_003422d0:\n              param_4 = (**(code **)(*param_3 + 0x24))(param_3);\n            }" ({ "{") (expression_statement "param_3[2] = param_3[2] + 4;" (assignment_expression "param_3[2] = param_3[2] + 4" (subscript_expression "param_3[2]" (identifier "param_3") ([ "[") (number_literal "2") (] "]")) (= "=") (binary_expression "param_3[2] + 4" (subscript_expression "param_3[2]" (identifier "param_3") ([ "[") (number_literal "2") (] "]")) (+ "+") (number_literal "4"))) (; ";")) (labeled_statement "LAB_0034201c:\n              piVar7 = (int *)param_3[2];" (statement_identifier "LAB_0034201c") (: ":") (expression_statement "piVar7 = (int *)param_3[2];" (assignment_expression "piVar7 = (int *)param_3[2]" (identifier "piVar7") (= "=") (cast_expression "(int *)param_3[2]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_3[2]" (identifier "param_3") ([ "[") (number_literal "2") (] "]")))) (; ";"))) (if_statement "if (piVar7 < (int *)param_3[3]) goto LAB_00342030;" (if "if") (parenthesized_expression "(piVar7 < (int *)param_3[3])" (( "(") (binary_expression "piVar7 < (int *)param_3[3]" (identifier "piVar7") (< "<") (cast_expression "(int *)param_3[3]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_3[3]" (identifier "param_3") ([ "[") (number_literal "3") (] "]")))) () ")")) (goto_statement "goto LAB_00342030;" (goto "goto") (statement_identifier "LAB_00342030") (; ";"))) (labeled_statement "LAB_003422d0:\n              param_4 = (**(code **)(*param_3 + 0x24))(param_3);" (statement_identifier "LAB_003422d0") (: ":") (expression_statement "param_4 = (**(code **)(*param_3 + 0x24))(param_3);" (assignment_expression "param_4 = (**(code **)(*param_3 + 0x24))(param_3)" (identifier "param_4") (= "=") (call_expression "(**(code **)(*param_3 + 0x24))(param_3)" (parenthesized_expression "(**(code **)(*param_3 + 0x24))" (( "(") (pointer_expression "**(code **)(*param_3 + 0x24)" (* "*") (pointer_expression "*(code **)(*param_3 + 0x24)" (* "*") (cast_expression "(code **)(*param_3 + 0x24)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*param_3 + 0x24)" (( "(") (binary_expression "*param_3 + 0x24" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (+ "+") (number_literal "0x24")) () ")"))))) () ")")) (argument_list "(param_3)" (( "(") (identifier "param_3") () ")")))) (; ";"))) (} "}")) (else_clause "else {\n              (**(code **)(*param_3 + 0x28))(param_3);\n              piVar7 = (int *)param_3[2];\n              if ((int *)param_3[3] <= piVar7) goto LAB_003422d0;\nLAB_00342030:\n              param_4 = *piVar7;\n            }" (else "else") (compound_statement "{\n              (**(code **)(*param_3 + 0x28))(param_3);\n              piVar7 = (int *)param_3[2];\n              if ((int *)param_3[3] <= piVar7) goto LAB_003422d0;\nLAB_00342030:\n              param_4 = *piVar7;\n            }" ({ "{") (expression_statement "(**(code **)(*param_3 + 0x28))(param_3);" (call_expression "(**(code **)(*param_3 + 0x28))(param_3)" (parenthesized_expression "(**(code **)(*param_3 + 0x28))" (( "(") (pointer_expression "**(code **)(*param_3 + 0x28)" (* "*") (pointer_expression "*(code **)(*param_3 + 0x28)" (* "*") (cast_expression "(code **)(*param_3 + 0x28)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*param_3 + 0x28)" (( "(") (binary_expression "*param_3 + 0x28" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (+ "+") (number_literal "0x28")) () ")"))))) () ")")) (argument_list "(param_3)" (( "(") (identifier "param_3") () ")"))) (; ";")) (expression_statement "piVar7 = (int *)param_3[2];" (assignment_expression "piVar7 = (int *)param_3[2]" (identifier "piVar7") (= "=") (cast_expression "(int *)param_3[2]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_3[2]" (identifier "param_3") ([ "[") (number_literal "2") (] "]")))) (; ";")) (if_statement "if ((int *)param_3[3] <= piVar7) goto LAB_003422d0;" (if "if") (parenthesized_expression "((int *)param_3[3] <= piVar7)" (( "(") (binary_expression "(int *)param_3[3] <= piVar7" (cast_expression "(int *)param_3[3]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_3[3]" (identifier "param_3") ([ "[") (number_literal "3") (] "]"))) (<= "<=") (identifier "piVar7")) () ")")) (goto_statement "goto LAB_003422d0;" (goto "goto") (statement_identifier "LAB_003422d0") (; ";"))) (labeled_statement "LAB_00342030:\n              param_4 = *piVar7;" (statement_identifier "LAB_00342030") (: ":") (expression_statement "param_4 = *piVar7;" (assignment_expression "param_4 = *piVar7" (identifier "param_4") (= "=") (pointer_expression "*piVar7" (* "*") (identifier "piVar7"))) (; ";"))) (} "}")))) (expression_statement "iVar3 = -1;" (assignment_expression "iVar3 = -1" (identifier "iVar3") (= "=") (number_literal "-1")) (; ";")) (if_statement "if (param_4 == -1) {\n              param_3 = (int *)0x0;\n            }" (if "if") (parenthesized_expression "(param_4 == -1)" (( "(") (binary_expression "param_4 == -1" (identifier "param_4") (== "==") (number_literal "-1")) () ")")) (compound_statement "{\n              param_3 = (int *)0x0;\n            }" ({ "{") (expression_statement "param_3 = (int *)0x0;" (assignment_expression "param_3 = (int *)0x0" (identifier "param_3") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}"))) (} "}"))) (} "}")))) (} "}")))) (labeled_statement "LAB_00341f24:" (statement_identifier "LAB_00341f24") (: ":") (expression_statement "" (; ""))) (} "}")) (while "while") (parenthesized_expression "((param_10 != param_11) && (*param_8 == 0))" (( "(") (binary_expression "(param_10 != param_11) && (*param_8 == 0)" (parenthesized_expression "(param_10 != param_11)" (( "(") (binary_expression "param_10 != param_11" (identifier "param_10") (!= "!=") (identifier "param_11")) () ")")) (&& "&&") (parenthesized_expression "(*param_8 == 0)" (( "(") (binary_expression "*param_8 == 0" (pointer_expression "*param_8" (* "*") (identifier "param_8")) (== "==") (number_literal "0")) () ")"))) () ")")) (; ";")) (} "}"))) (expression_statement "*param_1 = param_3;" (assignment_expression "*param_1 = param_3" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (identifier "param_3")) (; ";")) (expression_statement "param_1[1] = param_4;" (assignment_expression "param_1[1] = param_4" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "param_4")) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}")))

/* std::time_get<wchar_t, std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >
   >::get(std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >,
   std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >, std::ios_base&,
   std::_Ios_Iostate&, tm*, wchar_t const*, wchar_t const*) const */

void var_3::time_get<var_4,var_3::istreambuf_iterator<var_4,var_3::char_traits<var_4>>>::get
               (type_3 *param_1,int *param_2,int *var_7,int var_8,int *var_10,int var_11,
               int var_1,type_2 *param_8,type_3 param_9,type_3 *var_5,
               type_3 *var_6)

{
  bool var_13;
  type_1 *pcVar2;
  int var_9;
  int var_12;
  int var_23;
  type_2 var_26;
  int *var_27;
  type_3 *var_14;
  type_4 *var_15;
  type_3 local_60;
  int local_5c;
  int local_58;
  type_3 local_54;
  int *local_50;
  int local_4c;
  int *local_48;
  int local_44;
  int *var_21;
  int var_22;
  type_4 *var_16;
  int var_19;
  type_5 *local_30;
  type_3 *local_2c;
  
  local_30 = (type_5 *)(var_1 + 0x6c);
  pcVar2 = var_2<var_3::type_1<var_4>>(local_30);
  *param_8 = 0;
  var_16 = (type_4 *)PTR_do_get_00433d80;
  if (var_5 != var_6) {
    local_2c = &local_60;
    do {
      var_9 = var_8;
      if ((var_7 != (int *)0x0) && (var_8 == -1)) {
        if ((int *)var_7[2] < (int *)var_7[3]) {
          var_9 = *(int *)var_7[2];
          if (var_9 == -1) {
            var_7 = (int *)0x0;
          }
        }
        else {
          var_9 = (**(type_4 **)(*var_7 + 0x24))(var_7);
          if (var_9 == -1) {
            var_7 = (int *)0x0;
          }
        }
      }
      if ((var_10 == (int *)0x0) || (var_11 != -1)) {
        var_13 = var_11 == -1;
      }
      else {
        if ((int *)var_10[2] < (int *)var_10[3]) {
          var_12 = *(int *)var_10[2];
          if (var_12 == -1) {
            var_10 = (int *)0x0;
          }
        }
        else {
          var_12 = (**(type_4 **)(*var_10 + 0x24))(var_10);
          if (var_12 == -1) {
            var_10 = (int *)0x0;
          }
        }
        var_13 = var_12 == -1;
      }
      if (var_13 == (var_9 == -1)) {
        *param_8 = 6;
        *param_1 = var_7;
        param_1[1] = var_8;
        return;
      }
      var_9 = (**(type_4 **)(*(int *)pcVar2 + 0x30))(pcVar2,*var_5,0);
      if (var_9 == 0x25) {
        var_14 = var_5 + 1;
        if (var_6 == var_14) goto LAB_0034254c;
        var_9 = (**(type_4 **)(*(int *)pcVar2 + 0x30))(pcVar2,var_5[1],0);
        if ((var_9 == 0x45) || (var_9 == 0x4f)) {
          var_14 = var_5 + 2;
          if (var_6 == var_14) goto LAB_0034254c;
          var_19 = var_9;
          var_9 = (**(type_4 **)(*(int *)pcVar2 + 0x30))(pcVar2,var_5[2],0);
          var_15 = *(type_4 **)(*param_2 + 0x20);
          var_12 = var_19;
          if (var_15 != var_16) goto LAB_0034243c;
          var_27 = (int *)(*(type_4 *)PTR_use_facet<var_17<var_4>>var_18)(local_30);
          var_15 = *(type_4 **)(*var_27 + 0x28);
          *param_8 = 0;
          local_60 = (*var_15)(var_27,0x25);
          if (var_19 == 0) goto LAB_003421b4;
          local_5c = var_19;
          local_54 = 0;
          local_58 = var_9;
        }
        else {
          var_15 = *(type_4 **)(*param_2 + 0x20);
          if (var_15 != var_16) {
            var_12 = 0;
LAB_0034243c:
            var_5 = var_14 + 1;
            (*var_15)(&var_21,param_2,var_7,var_8,var_10,var_11,var_1,param_8,param_9,
                      var_9,var_12);
            var_8 = var_22;
            var_7 = var_21;
            goto LAB_00341f24;
          }
          var_19 = var_9;
          var_27 = (int *)(*(type_4 *)PTR_use_facet<var_17<var_4>>var_18)(local_30);
          var_15 = *(type_4 **)(*var_27 + 0x28);
          *param_8 = 0;
          local_60 = (*var_15)(var_27,0x25);
          var_9 = var_19;
LAB_003421b4:
          local_58 = 0;
          local_5c = var_9;
        }
        local_4c = var_11;
        local_50 = var_10;
        var_20
                  (&var_21,param_2,var_7,var_8,var_10,var_11,var_1,param_8,param_9,
                   local_2c);
        var_8 = var_22;
        var_7 = var_21;
        local_48 = var_21;
        local_44 = var_22;
        var_9 = var_22;
        if ((var_21 != (int *)0x0) && (var_22 == -1)) {
          if ((int *)var_21[2] < (int *)var_21[3]) {
            var_9 = *(int *)var_21[2];
          }
          else {
            var_9 = (**(type_4 **)(*var_21 + 0x24))(var_21);
          }
          if (var_9 == -1) {
            var_7 = (int *)0x0;
          }
        }
        var_12 = var_11;
        if ((var_10 != (int *)0x0) && (var_11 == -1)) {
          if ((int *)var_10[2] < (int *)var_10[3]) {
            var_12 = *(int *)var_10[2];
          }
          else {
            var_12 = (**(type_4 **)(*var_10 + 0x24))(var_10);
          }
        }
        if ((var_12 == -1) == (var_9 == -1)) {
          *param_8 = *param_8 | 2;
        }
        var_5 = var_14 + 1;
      }
      else {
        var_9 = (**(type_4 **)(*(int *)pcVar2 + 8))(pcVar2,0x20,*var_5);
        if (var_9 == 0) {
          var_12 = var_8;
          var_9 = var_8;
          if (var_7 == (int *)0x0) {
LAB_00342380:
            var_12 = (**(type_4 **)(*(int *)pcVar2 + 0x20))(pcVar2,var_12);
            var_23 = (**(type_4 **)(*(int *)pcVar2 + 0x20))(pcVar2,*var_5);
            if (var_23 != var_12) {
              var_7 = (int *)0x0;
LAB_00341ed0:
              var_9 = (**(type_4 **)(*(int *)pcVar2 + 0x18))(pcVar2,var_9);
              var_12 = (**(type_4 **)(*(int *)pcVar2 + 0x18))(pcVar2,*var_5);
              if (var_12 != var_9) {
LAB_0034254c:
                *param_8 = 4;
                *param_1 = var_7;
                param_1[1] = var_8;
                return;
              }
              goto LAB_00341f00;
            }
            var_7 = (int *)0x0;
            var_26 = var_25;
            if (var_24 <= var_25) goto LAB_003424f8;
LAB_00341f14:
            var_7[2] = var_26 + 4;
          }
          else {
            if (var_8 == -1) {
              if ((int *)var_7[2] < (int *)var_7[3]) {
                var_12 = *(int *)var_7[2];
              }
              else {
                var_12 = (**(type_4 **)(*var_7 + 0x24))(var_7,0xffffffff);
              }
              if (var_12 == -1) goto LAB_00342380;
              var_9 = (**(type_4 **)(*(int *)pcVar2 + 0x20))(pcVar2);
              var_12 = (**(type_4 **)(*(int *)pcVar2 + 0x20))(pcVar2,*var_5);
              if (var_9 != var_12) {
                if ((int *)var_7[2] < (int *)var_7[3]) {
                  var_9 = *(int *)var_7[2];
                  if (var_9 == -1) {
                    var_7 = (int *)0x0;
                  }
                }
                else {
                  var_9 = (**(type_4 **)(*var_7 + 0x24))(var_7);
                  if (var_9 == -1) {
                    var_7 = (int *)0x0;
                  }
                }
                goto LAB_00341ed0;
              }
            }
            else {
              var_12 = (**(type_4 **)(*(int *)pcVar2 + 0x20))(pcVar2);
              var_23 = (**(type_4 **)(*(int *)pcVar2 + 0x20))(pcVar2,*var_5);
              if (var_23 != var_12) goto LAB_00341ed0;
            }
LAB_00341f00:
            var_26 = var_7[2];
            if ((type_2)var_7[2] < (type_2)var_7[3]) goto LAB_00341f14;
LAB_003424f8:
            (**(type_4 **)(*var_7 + 0x28))(var_7);
          }
          var_5 = var_5 + 1;
          var_8 = -1;
        }
        else {
          do {
            var_5 = var_5 + 1;
            if (var_6 == var_5) break;
            var_9 = (**(type_4 **)(*(int *)pcVar2 + 8))(pcVar2,0x20,*var_5);
          } while (var_9 != 0);
          var_9 = var_8;
          if ((var_7 != (int *)0x0) && (var_8 == -1)) goto LAB_0034201c;
          while( true ) {
            var_13 = var_8 == -1;
            var_12 = var_11;
            if ((var_10 != (int *)0x0) && (var_11 == -1)) {
              if ((int *)var_10[2] < (int *)var_10[3]) {
                var_12 = *(int *)var_10[2];
                if (var_12 == -1) {
                  var_10 = (int *)0x0;
                }
              }
              else {
                var_12 = (**(type_4 **)(*var_10 + 0x24))(var_10);
                if (var_12 == -1) {
                  var_10 = (int *)0x0;
                }
              }
            }
            var_8 = var_9;
            if ((var_12 == -1) == var_13) break;
            if ((var_7 != (int *)0x0) && (var_9 == -1)) {
              if ((int *)var_7[2] < (int *)var_7[3]) {
                var_9 = *(int *)var_7[2];
                if (var_9 == -1) {
                  var_7 = (int *)0x0;
                }
              }
              else {
                var_9 = (**(type_4 **)(*var_7 + 0x24))(var_7);
                if (var_9 == -1) {
                  var_7 = (int *)0x0;
                }
              }
            }
            var_9 = (**(type_4 **)(*(int *)pcVar2 + 8))(pcVar2,0x20,var_9);
            if (var_9 == 0) break;
            if ((type_2)var_7[2] < (type_2)var_7[3]) {
              var_7[2] = var_7[2] + 4;
LAB_0034201c:
              var_27 = (int *)var_7[2];
              if (var_27 < (int *)var_7[3]) goto LAB_00342030;
LAB_003422d0:
              var_8 = (**(type_4 **)(*var_7 + 0x24))(var_7);
            }
            else {
              (**(type_4 **)(*var_7 + 0x28))(var_7);
              var_27 = (int *)var_7[2];
              if ((int *)var_7[3] <= var_27) goto LAB_003422d0;
LAB_00342030:
              var_8 = *var_27;
            }
            var_9 = -1;
            if (var_8 == -1) {
              var_7 = (int *)0x0;
            }
          }
        }
      }
LAB_00341f24:
    } while ((var_5 != var_6) && (*param_8 == 0));
  }
  *param_1 = var_7;
  param_1[1] = var_8;
  return;
}


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

void MASKED(undefined4 *param_1,int *param_2,int *param_3,int param_4,int *param_5,int param_6
                 ,int param_7,uint *param_8,undefined4 param_9,undefined4 *param_10,
                 undefined4 *param_11)

{
  bool bVar1;
  ctype *pcVar2;
  int iVar3;
  int iVar4;
  int iVar5;
  uint uVar6;
  int *piVar7;
  undefined4 *puVar8;
  code *pcVar9;
  undefined4 local_60;
  int local_5c;
  int local_58;
  undefined4 local_54;
  int *local_50;
  int local_4c;
  int *local_48;
  int local_44;
  int *local_40;
  int local_3c;
  code *local_38;
  int local_34;
  locale *local_30;
  undefined4 *local_2c;
  
  local_30 = (locale *)(param_7 + 0x6c);
  pcVar2 = std::use_facet<std::ctype<wchar_t>>(local_30);
  *param_8 = 0;
  local_38 = (code *)PTR_do_get_00433d80;
  if (param_10 != param_11) {
    local_2c = &local_60;
    do {
      iVar3 = param_4;
      if ((param_3 != (int *)0x0) && (param_4 == -1)) {
        if ((int *)param_3[2] < (int *)param_3[3]) {
          iVar3 = *(int *)param_3[2];
          if (iVar3 == -1) {
            param_3 = (int *)0x0;
          }
        }
        else {
          iVar3 = (**(code **)(*param_3 + 0x24))(param_3);
          if (iVar3 == -1) {
            param_3 = (int *)0x0;
          }
        }
      }
      if ((param_5 == (int *)0x0) || (param_6 != -1)) {
        bVar1 = param_6 == -1;
      }
      else {
        if ((int *)param_5[2] < (int *)param_5[3]) {
          iVar4 = *(int *)param_5[2];
          if (iVar4 == -1) {
            param_5 = (int *)0x0;
          }
        }
        else {
          iVar4 = (**(code **)(*param_5 + 0x24))(param_5);
          if (iVar4 == -1) {
            param_5 = (int *)0x0;
          }
        }
        bVar1 = iVar4 == -1;
      }
      if (bVar1 == (iVar3 == -1)) {
        *param_8 = 6;
        *param_1 = param_3;
        param_1[1] = param_4;
        return;
      }
      iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,*param_10,0);
      if (iVar3 == 0x25) {
        puVar8 = param_10 + 1;
        if (param_11 == puVar8) goto LAB_0034254c;
        iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,param_10[1],0);
        if ((iVar3 == 0x45) || (iVar3 == 0x4f)) {
          puVar8 = param_10 + 2;
          if (param_11 == puVar8) goto LAB_0034254c;
          local_34 = iVar3;
          iVar3 = (**(code **)(*(int *)pcVar2 + 0x30))(pcVar2,param_10[2],0);
          pcVar9 = *(code **)(*param_2 + 0x20);
          iVar4 = local_34;
          if (pcVar9 != local_38) goto LAB_0034243c;
          piVar7 = (int *)(*(code *)PTR_use_facet<std_ctype<wchar_t>>_00433ac8)(local_30);
          pcVar9 = *(code **)(*piVar7 + 0x28);
          *param_8 = 0;
          local_60 = (*pcVar9)(piVar7,0x25);
          if (local_34 == 0) goto LAB_003421b4;
          local_5c = local_34;
          local_54 = 0;
          local_58 = iVar3;
        }
        else {
          pcVar9 = *(code **)(*param_2 + 0x20);
          if (pcVar9 != local_38) {
            iVar4 = 0;
LAB_0034243c:
            param_10 = puVar8 + 1;
            (*pcVar9)(&local_40,param_2,param_3,param_4,param_5,param_6,param_7,param_8,param_9,
                      iVar3,iVar4);
            param_4 = local_3c;
            param_3 = local_40;
            goto LAB_00341f24;
          }
          local_34 = iVar3;
          piVar7 = (int *)(*(code *)PTR_use_facet<std_ctype<wchar_t>>_00433ac8)(local_30);
          pcVar9 = *(code **)(*piVar7 + 0x28);
          *param_8 = 0;
          local_60 = (*pcVar9)(piVar7,0x25);
          iVar3 = local_34;
LAB_003421b4:
          local_58 = 0;
          local_5c = iVar3;
        }
        local_4c = param_6;
        local_50 = param_5;
        std::time_get<wchar_t,std::istreambuf_iterator<wchar_t,std::char_traits<wchar_t>>>::
        _M_extract_via_format
                  (&local_40,param_2,param_3,param_4,param_5,param_6,param_7,param_8,param_9,
                   local_2c);
        param_4 = local_3c;
        param_3 = local_40;
        local_48 = local_40;
        local_44 = local_3c;
        iVar3 = local_3c;
        if ((local_40 != (int *)0x0) && (local_3c == -1)) {
          if ((int *)local_40[2] < (int *)local_40[3]) {
            iVar3 = *(int *)local_40[2];
          }
          else {
            iVar3 = (**(code **)(*local_40 + 0x24))(local_40);
          }
          if (iVar3 == -1) {
            param_3 = (int *)0x0;
          }
        }
        iVar4 = param_6;
        if ((param_5 != (int *)0x0) && (param_6 == -1)) {
          if ((int *)param_5[2] < (int *)param_5[3]) {
            iVar4 = *(int *)param_5[2];
          }
          else {
            iVar4 = (**(code **)(*param_5 + 0x24))(param_5);
          }
        }
        if ((iVar4 == -1) == (iVar3 == -1)) {
          *param_8 = *param_8 | 2;
        }
        param_10 = puVar8 + 1;
      }
      else {
        iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,*param_10);
        if (iVar3 == 0) {
          iVar4 = param_4;
          iVar3 = param_4;
          if (param_3 == (int *)0x0) {
LAB_00342380:
            iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,iVar4);
            iVar5 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);
            if (iVar5 != iVar4) {
              param_3 = (int *)0x0;
LAB_00341ed0:
              iVar3 = (**(code **)(*(int *)pcVar2 + 0x18))(pcVar2,iVar3);
              iVar4 = (**(code **)(*(int *)pcVar2 + 0x18))(pcVar2,*param_10);
              if (iVar4 != iVar3) {
LAB_0034254c:
                *param_8 = 4;
                *param_1 = param_3;
                param_1[1] = param_4;
                return;
              }
              goto LAB_00341f00;
            }
            param_3 = (int *)0x0;
            uVar6 = uRam00000008;
            if (uRam0000000c <= uRam00000008) goto LAB_003424f8;
LAB_00341f14:
            param_3[2] = uVar6 + 4;
          }
          else {
            if (param_4 == -1) {
              if ((int *)param_3[2] < (int *)param_3[3]) {
                iVar4 = *(int *)param_3[2];
              }
              else {
                iVar4 = (**(code **)(*param_3 + 0x24))(param_3,0xffffffff);
              }
              if (iVar4 == -1) goto LAB_00342380;
              iVar3 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2);
              iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);
              if (iVar3 != iVar4) {
                if ((int *)param_3[2] < (int *)param_3[3]) {
                  iVar3 = *(int *)param_3[2];
                  if (iVar3 == -1) {
                    param_3 = (int *)0x0;
                  }
                }
                else {
                  iVar3 = (**(code **)(*param_3 + 0x24))(param_3);
                  if (iVar3 == -1) {
                    param_3 = (int *)0x0;
                  }
                }
                goto LAB_00341ed0;
              }
            }
            else {
              iVar4 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2);
              iVar5 = (**(code **)(*(int *)pcVar2 + 0x20))(pcVar2,*param_10);
              if (iVar5 != iVar4) goto LAB_00341ed0;
            }
LAB_00341f00:
            uVar6 = param_3[2];
            if ((uint)param_3[2] < (uint)param_3[3]) goto LAB_00341f14;
LAB_003424f8:
            (**(code **)(*param_3 + 0x28))(param_3);
          }
          param_10 = param_10 + 1;
          param_4 = -1;
        }
        else {
          do {
            param_10 = param_10 + 1;
            if (param_11 == param_10) break;
            iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,*param_10);
          } while (iVar3 != 0);
          iVar3 = param_4;
          if ((param_3 != (int *)0x0) && (param_4 == -1)) goto LAB_0034201c;
          while( true ) {
            bVar1 = param_4 == -1;
            iVar4 = param_6;
            if ((param_5 != (int *)0x0) && (param_6 == -1)) {
              if ((int *)param_5[2] < (int *)param_5[3]) {
                iVar4 = *(int *)param_5[2];
                if (iVar4 == -1) {
                  param_5 = (int *)0x0;
                }
              }
              else {
                iVar4 = (**(code **)(*param_5 + 0x24))(param_5);
                if (iVar4 == -1) {
                  param_5 = (int *)0x0;
                }
              }
            }
            param_4 = iVar3;
            if ((iVar4 == -1) == bVar1) break;
            if ((param_3 != (int *)0x0) && (iVar3 == -1)) {
              if ((int *)param_3[2] < (int *)param_3[3]) {
                iVar3 = *(int *)param_3[2];
                if (iVar3 == -1) {
                  param_3 = (int *)0x0;
                }
              }
              else {
                iVar3 = (**(code **)(*param_3 + 0x24))(param_3);
                if (iVar3 == -1) {
                  param_3 = (int *)0x0;
                }
              }
            }
            iVar3 = (**(code **)(*(int *)pcVar2 + 8))(pcVar2,0x20,iVar3);
            if (iVar3 == 0) break;
            if ((uint)param_3[2] < (uint)param_3[3]) {
              param_3[2] = param_3[2] + 4;
LAB_0034201c:
              piVar7 = (int *)param_3[2];
              if (piVar7 < (int *)param_3[3]) goto LAB_00342030;
LAB_003422d0:
              param_4 = (**(code **)(*param_3 + 0x24))(param_3);
            }
            else {
              (**(code **)(*param_3 + 0x28))(param_3);
              piVar7 = (int *)param_3[2];
              if ((int *)param_3[3] <= piVar7) goto LAB_003422d0;
LAB_00342030:
              param_4 = *piVar7;
            }
            iVar3 = -1;
            if (param_4 == -1) {
              param_3 = (int *)0x0;
            }
          }
        }
      }
LAB_00341f24:
    } while ((param_10 != param_11) && (*param_8 == 0));
  }
  *param_1 = param_3;
  param_1[1] = param_4;
  return;
}

