#define NULL ((void *)0)
typedef unsigned long size_t; // Customize by platform.
typedef long intptr_t;
typedef unsigned long uintptr_t;
typedef long scalar_t__; // Either arithmetic or pointer type.
/* By default, we understand bool (as a convenience). */
typedef int bool;
#define false 0
#define true 1

/* Forward declarations */

/* Type definitions */

/* Variables and functions */
unsigned char *
analysis_or_forecast_generating_process_identifier_location(unsigned char **);
unsigned char *
background_generating_process_identifier_location(unsigned char **);
unsigned char *code_table_4_230_location(unsigned char **);
unsigned char *code_table_4_233_location(unsigned char **);
unsigned char *code_table_4_3_location(unsigned char **);
unsigned char *code_table_4_4_location(unsigned char **);
unsigned char *code_table_4_5a_location(unsigned char **);
unsigned char *code_table_4_5b_location(unsigned char **);
unsigned char *code_table_4_6_location(unsigned char **);
unsigned char *code_table_4_7_location(unsigned char **);
unsigned char *code_table_4_8_location(unsigned char **);
unsigned char *code_table_4_91_location(unsigned char **);
unsigned char *code_table_4_9_location(unsigned char **);
int /*<<< orphan*/ fatal_error_ii(char *, int, int);
unsigned char *hours_of_observational_data_cutoff_after_reference_time_location(
    unsigned char **);
unsigned char *
minutes_of_observational_data_cutoff_after_reference_time_location(
    unsigned char **);
unsigned char *number_of_forecasts_in_the_ensemble_location(unsigned char **);
unsigned char *
observation_generating_process_identifier_location(unsigned char **);
unsigned char *percentile_value_location(unsigned char **);
unsigned char *perturbation_number_location(unsigned char **);
int smallest_pdt_len(int);
int stat_proc_n_time_ranges_index(unsigned char **);
unsigned char *stat_proc_verf_time_location(unsigned char **);
int /*<<< orphan*/ uint2_char(int, unsigned char *);
int /*<<< orphan*/ uint_char(int, unsigned char *);
unsigned char *year_of_model_version_date_location(unsigned char **);
int new_pdt(unsigned char **sec, unsigned char *new_sec4, int pdt, int len,
            int copy_metadata) {
  int i, k;
  int n_time_range_old, n_time_range_new;
  unsigned char *new_sec[9];
  unsigned char *p_old, *p_new;
  for (i = 0; i < 9; i++)
    new_sec[i] = sec[i];
  new_sec[4] = new_sec4;
  k = stat_proc_n_time_ranges_index(sec);
  n_time_range_old = k >= 0 ? sec[4][k] : 0;
  if (len <= 0) {
    len = smallest_pdt_len(pdt);
    if (copy_metadata && n_time_range_old > 0) {
      len += (n_time_range_old - 1) * 12;
    }
  }
  if (len > 500)
    fatal_error_ii("set_pdt: maximum pdt len is %d wanted %d", 500, len);
  for (i = 9; i < len; i++)
    new_sec4[i] = 255;
  uint_char(len, new_sec4);
  new_sec4[4] = 4;
  uint2_char(0, new_sec4 + 5);
  uint2_char(pdt, new_sec4 + 7);
  if (copy_metadata) {
    new_sec[4] = new_sec4;
    if ((k = stat_proc_n_time_ranges_index(sec)) >= 0) {
      k = stat_proc_n_time_ranges_index(new_sec);
      n_time_range_new = k >= 0 ? (len - smallest_pdt_len(pdt)) / 12 + 1 : 0;
      if (n_time_range_old <= n_time_range_new) {
        p_old = stat_proc_verf_time_location(sec);
        p_new = stat_proc_verf_time_location(new_sec);
        k = (58 - 34) + 12 * (n_time_range_old - 1);
        for (i = 0; i < k; i++)
          p_new[i] = p_old[i];
      }
    }
    new_sec4[9] = sec[4][9];
    new_sec4[10] = sec[4][10];
    p_old = code_table_4_3_location(sec);
    p_new = code_table_4_3_location(new_sec);
    if (p_old != NULL && p_new != NULL)
      *p_new = *p_old;
    p_old = code_table_4_4_location(sec);
    p_new = code_table_4_4_location(new_sec);
    if (p_old != NULL && p_new != NULL) {
      for (i = 0; i < 5; i++)
        p_new[i] = p_old[i];
    }
    p_old = code_table_4_5a_location(sec);
    p_new = code_table_4_5a_location(new_sec);
    if (p_old != NULL && p_new != NULL) {
      for (i = 0; i < 6; i++)
        p_new[i] = p_old[i];
    }
    p_old = code_table_4_5b_location(sec);
    p_new = code_table_4_5b_location(new_sec);
    if (p_old != NULL && p_new != NULL) {
      for (i = 0; i < 6; i++)
        p_new[i] = p_old[i];
    }
    p_old = code_table_4_6_location(sec);
    p_new = code_table_4_6_location(new_sec);
    if (p_old != NULL && p_new != NULL)
      *p_new = *p_old;
    p_old = code_table_4_7_location(sec);
    p_new = code_table_4_7_location(new_sec);
    if (p_old != NULL && p_new != NULL)
      *p_new = *p_old;
    p_old = code_table_4_8_location(sec);
    p_new = code_table_4_8_location(new_sec);
    if (p_old != NULL && p_new != NULL)
      *p_new = *p_old;
    p_old = perturbation_number_location(sec);
    p_new = perturbation_number_location(new_sec);
    if (p_old != NULL && p_new != NULL)
      *p_new = *p_old;
    p_old = number_of_forecasts_in_the_ensemble_location(sec);
    p_new = number_of_forecasts_in_the_ensemble_location(new_sec);
    if (p_old != NULL && p_new != NULL)
      *p_new = *p_old;
    p_old = code_table_4_9_location(sec);
    p_new = code_table_4_9_location(new_sec);
    if (p_old != NULL && p_new != NULL) {
      for (i = -2; i < 11; i++)
        p_new[i] = p_old[i];
    }
    p_old = background_generating_process_identifier_location(sec);
    p_new = background_generating_process_identifier_location(new_sec);
    if (p_old != NULL && p_new != NULL)
      *p_new = *p_old;
    p_old = analysis_or_forecast_generating_process_identifier_location(sec);
    p_new =
        analysis_or_forecast_generating_process_identifier_location(new_sec);
    if (p_old != NULL && p_new != NULL)
      *p_new = *p_old;
    p_old =
        hours_of_observational_data_cutoff_after_reference_time_location(sec);
    p_new = hours_of_observational_data_cutoff_after_reference_time_location(
        new_sec);
    if (p_old != NULL && p_new != NULL) {
      *p_new++ = *p_old++;
      *p_new = *p_old;
    }
    p_old =
        minutes_of_observational_data_cutoff_after_reference_time_location(sec);
    p_new = minutes_of_observational_data_cutoff_after_reference_time_location(
        new_sec);
    if (p_old != NULL && p_new != NULL)
      *p_new = *p_old;
    p_old = observation_generating_process_identifier_location(sec);
    p_new = observation_generating_process_identifier_location(new_sec);
    if (p_old != NULL && p_new != NULL)
      *p_new = *p_old;
    p_old = year_of_model_version_date_location(sec);
    p_new = year_of_model_version_date_location(new_sec);
    if (p_old != NULL && p_new != NULL) {
      for (i = 0; i < 7; i++)
        p_new[i] = p_old[i];
    }
    p_old = percentile_value_location(sec);
    p_new = percentile_value_location(new_sec);
    if (p_old != NULL && p_new != NULL)
      *p_new = *p_old;
    p_old = code_table_4_230_location(sec);
    p_new = code_table_4_230_location(new_sec);
    if (p_old != NULL && p_new != NULL) {
      *p_new++ = *p_old++;
      *p_new = *p_old;
    }
    p_old = code_table_4_233_location(sec);
    p_new = code_table_4_233_location(new_sec);
    if (p_old != NULL && p_new != NULL) {
      *p_new++ = *p_old++;
      *p_new = *p_old;
    }
    p_old = code_table_4_91_location(sec);
    p_new = code_table_4_91_location(new_sec);
    if (p_old != NULL && p_new != NULL) {
      for (i = 0; i < 11; i++)
        p_new[i] = p_old[i];
    }
  }
  return 0;
}


x86 assembly (clang, -O0):
<new_pdt>:
push   %rbp
mov    %rsp,%rbp
sub    $0xa0,%rsp
mov    %rdi,-0x8(%rbp)
mov    %rsi,-0x10(%rbp)
mov    %edx,-0x14(%rbp)
mov    %ecx,-0x18(%rbp)
mov    %r8d,-0x1c(%rbp)
movl   $0x0,-0x20(%rbp)
cmpl   $0x9,-0x20(%rbp)
jge    12f1 <new_pdt+0x51>
mov    -0x8(%rbp),%rax
movslq -0x20(%rbp),%rcx
mov    (%rax,%rcx,8),%rcx
movslq -0x20(%rbp),%rax
mov    %rcx,-0x80(%rbp,%rax,8)
mov    -0x20(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x20(%rbp)
jmp    12c4 <new_pdt+0x24>
mov    -0x10(%rbp),%rax
mov    %rax,-0x60(%rbp)
mov    -0x8(%rbp),%rdi
call   1130 <stat_proc_n_time_ranges_index@plt>
mov    %eax,-0x24(%rbp)
cmpl   $0x0,-0x24(%rbp)
jl     132a <new_pdt+0x8a>
mov    -0x8(%rbp),%rax
mov    0x20(%rax),%rax
movslq -0x24(%rbp),%rcx
movzbl (%rax,%rcx,1),%eax
mov    %eax,-0x94(%rbp)
jmp    1337 <new_pdt+0x97>
xor    %eax,%eax
mov    %eax,-0x94(%rbp)
jmp    1337 <new_pdt+0x97>
mov    -0x94(%rbp),%eax
mov    %eax,-0x28(%rbp)
cmpl   $0x0,-0x18(%rbp)
jg     137d <new_pdt+0xdd>
mov    -0x14(%rbp),%edi
call   10c0 <smallest_pdt_len@plt>
mov    %eax,-0x18(%rbp)
cmpl   $0x0,-0x1c(%rbp)
je     1378 <new_pdt+0xd8>
cmpl   $0x0,-0x28(%rbp)
jle    1378 <new_pdt+0xd8>
mov    -0x28(%rbp),%eax
sub    $0x1,%eax
imul   $0xc,%eax,%eax
add    -0x18(%rbp),%eax
mov    %eax,-0x18(%rbp)
jmp    137d <new_pdt+0xdd>
cmpl   $0x1f4,-0x18(%rbp)
jle    139e <new_pdt+0xfe>
mov    -0x18(%rbp),%edx
lea    0xc6c(%rip),%rdi
mov    $0x1f4,%esi
call   1120 <fatal_error_ii@plt>
movl   $0x9,-0x20(%rbp)
mov    -0x20(%rbp),%eax
cmp    -0x18(%rbp),%eax
jge    13cb <new_pdt+0x12b>
mov    -0x10(%rbp),%rax
movslq -0x20(%rbp),%rcx
movb   $0xff,(%rax,%rcx,1)
mov    -0x20(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x20(%rbp)
jmp    13a5 <new_pdt+0x105>
mov    -0x18(%rbp),%edi
mov    -0x10(%rbp),%rsi
call   1050 <uint_char@plt>
mov    -0x10(%rbp),%rax
movb   $0x4,0x4(%rax)
mov    -0x10(%rbp),%rsi
add    $0x5,%rsi
xor    %edi,%edi
call   1090 <uint2_char@plt>
mov    -0x14(%rbp),%edi
mov    -0x10(%rbp),%rsi
add    $0x7,%rsi
call   1090 <uint2_char@plt>
cmpl   $0x0,-0x1c(%rbp)
je     1ce3 <new_pdt+0xa43>
mov    -0x10(%rbp),%rax
mov    %rax,-0x60(%rbp)
mov    -0x8(%rbp),%rdi
call   1130 <stat_proc_n_time_ranges_index@plt>
mov    %eax,-0x24(%rbp)
cmp    $0x0,%eax
jl     1504 <new_pdt+0x264>
lea    -0x80(%rbp),%rdi
call   1130 <stat_proc_n_time_ranges_index@plt>
mov    %eax,-0x24(%rbp)
cmpl   $0x0,-0x24(%rbp)
jl     146c <new_pdt+0x1cc>
mov    -0x18(%rbp),%eax
mov    %eax,-0x9c(%rbp)
mov    -0x14(%rbp),%edi
call   10c0 <smallest_pdt_len@plt>
mov    %eax,%ecx
mov    -0x9c(%rbp),%eax
sub    %ecx,%eax
mov    $0xc,%ecx
cltd
idiv   %ecx
add    $0x1,%eax
mov    %eax,-0x98(%rbp)
jmp    1479 <new_pdt+0x1d9>
xor    %eax,%eax
mov    %eax,-0x98(%rbp)
jmp    1479 <new_pdt+0x1d9>
mov    -0x98(%rbp),%eax
mov    %eax,-0x2c(%rbp)
mov    -0x28(%rbp),%eax
cmp    -0x2c(%rbp),%eax
jg     14ff <new_pdt+0x25f>
mov    -0x8(%rbp),%rdi
call   1160 <stat_proc_verf_time_location@plt>
mov    %rax,-0x88(%rbp)
lea    -0x80(%rbp),%rdi
call   1160 <stat_proc_verf_time_location@plt>
mov    %rax,-0x90(%rbp)
mov    -0x28(%rbp),%eax
sub    $0x1,%eax
imul   $0xc,%eax,%eax
add    $0x18,%eax
mov    %eax,-0x24(%rbp)
movl   $0x0,-0x20(%rbp)
mov    -0x20(%rbp),%eax
cmp    -0x24(%rbp),%eax
jge    14fa <new_pdt+0x25a>
mov    -0x88(%rbp),%rax
movslq -0x20(%rbp),%rcx
mov    (%rax,%rcx,1),%dl
mov    -0x90(%rbp),%rax
movslq -0x20(%rbp),%rcx
mov    %dl,(%rax,%rcx,1)
mov    -0x20(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x20(%rbp)
jmp    14c4 <new_pdt+0x224>
jmp    14ff <new_pdt+0x25f>
jmp    1504 <new_pdt+0x264>
mov    -0x8(%rbp),%rax
mov    0x20(%rax),%rax
mov    0x9(%rax),%cl
mov    -0x10(%rbp),%rax
mov    %cl,0x9(%rax)
mov    -0x8(%rbp),%rax
mov    0x20(%rax),%rax
mov    0xa(%rax),%cl
mov    -0x10(%rbp),%rax
mov    %cl,0xa(%rax)
mov    -0x8(%rbp),%rdi
call   1100 <code_table_4_3_location@plt>
mov    %rax,-0x88(%rbp)
lea    -0x80(%rbp),%rdi
call   1100 <code_table_4_3_location@plt>
mov    %rax,-0x90(%rbp)
cmpq   $0x0,-0x88(%rbp)
je     1576 <new_pdt+0x2d6>
cmpq   $0x0,-0x90(%rbp)
je     1576 <new_pdt+0x2d6>
mov    -0x88(%rbp),%rax
mov    (%rax),%cl
mov    -0x90(%rbp),%rax
mov    %cl,(%rax)
mov    -0x8(%rbp),%rdi
call   11b0 <code_table_4_4_location@plt>
mov    %rax,-0x88(%rbp)
lea    -0x80(%rbp),%rdi
call   11b0 <code_table_4_4_location@plt>
mov    %rax,-0x90(%rbp)
cmpq   $0x0,-0x88(%rbp)
je     15f2 <new_pdt+0x352>
cmpq   $0x0,-0x90(%rbp)
je     15f2 <new_pdt+0x352>
movl   $0x0,-0x20(%rbp)
cmpl   $0x5,-0x20(%rbp)
jge    15ed <new_pdt+0x34d>
mov    -0x88(%rbp),%rax
movslq -0x20(%rbp),%rcx
mov    (%rax,%rcx,1),%dl
mov    -0x90(%rbp),%rax
movslq -0x20(%rbp),%rcx
mov    %dl,(%rax,%rcx,1)
mov    -0x20(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x20(%rbp)
jmp    15b9 <new_pdt+0x319>
jmp    15f2 <new_pdt+0x352>
mov    -0x8(%rbp),%rdi
call   10d0 <code_table_4_5a_location@plt>
mov    %rax,-0x88(%rbp)
lea    -0x80(%rbp),%rdi
call   10d0 <code_table_4_5a_location@plt>
mov    %rax,-0x90(%rbp)
cmpq   $0x0,-0x88(%rbp)
je     166e <new_pdt+0x3ce>
cmpq   $0x0,-0x90(%rbp)
je     166e <new_pdt+0x3ce>
movl   $0x0,-0x20(%rbp)
cmpl   $0x6,-0x20(%rbp)
jge    1669 <new_pdt+0x3c9>
mov    -0x88(%rbp),%rax
movslq -0x20(%rbp),%rcx
mov    (%rax,%rcx,1),%dl
mov    -0x90(%rbp),%rax
movslq -0x20(%rbp),%rcx
mov    %dl,(%rax,%rcx,1)
mov    -0x20(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x20(%rbp)
jmp    1635 <new_pdt+0x395>
jmp    166e <new_pdt+0x3ce>
mov    -0x8(%rbp),%rdi
call   11c0 <code_table_4_5b_location@plt>
mov    %rax,-0x88(%rbp)
lea    -0x80(%rbp),%rdi
call   11c0 <code_table_4_5b_location@plt>
mov    %rax,-0x90(%rbp)
cmpq   $0x0,-0x88(%rbp)
je     16ea <new_pdt+0x44a>
cmpq   $0x0,-0x90(%rbp)
je     16ea <new_pdt+0x44a>
movl   $0x0,-0x20(%rbp)
cmpl   $0x6,-0x20(%rbp)
jge    16e5 <new_pdt+0x445>
mov    -0x88(%rbp),%rax
movslq -0x20(%rbp),%rcx
mov    (%rax,%rcx,1),%dl
mov    -0x90(%rbp),%rax
movslq -0x20(%rbp),%rcx
mov    %dl,(%rax,%rcx,1)
mov    -0x20(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x20(%rbp)
jmp    16b1 <new_pdt+0x411>
jmp    16ea <new_pdt+0x44a>
mov    -0x8(%rbp),%rdi
call   10e0 <code_table_4_6_location@plt>
mov    %rax,-0x88(%rbp)
lea    -0x80(%rbp),%rdi
call   10e0 <code_table_4_6_location@plt>
mov    %rax,-0x90(%rbp)
cmpq   $0x0,-0x88(%rbp)
je     1738 <new_pdt+0x498>
cmpq   $0x0,-0x90(%rbp)
je     1738 <new_pdt+0x498>
mov    -0x88(%rbp),%rax
mov    (%rax),%cl
mov    -0x90(%rbp),%rax
mov    %cl,(%rax)
mov    -0x8(%rbp),%rdi
call   1140 <code_table_4_7_location@plt>
mov    %rax,-0x88(%rbp)
lea    -0x80(%rbp),%rdi
call   1140 <code_table_4_7_location@plt>
mov    %rax,-0x90(%rbp)
cmpq   $0x0,-0x88(%rbp)
je     1786 <new_pdt+0x4e6>
cmpq   $0x0,-0x90(%rbp)
je     1786 <new_pdt+0x4e6>
mov    -0x88(%rbp),%rax
mov    (%rax),%cl
mov    -0x90(%rbp),%rax
mov    %cl,(%rax)
mov    -0x8(%rbp),%rdi
call   1030 <code_table_4_8_location@plt>
mov    %rax,-0x88(%rbp)
lea    -0x80(%rbp),%rdi
call   1030 <code_table_4_8_location@plt>
mov    %rax,-0x90(%rbp)
cmpq   $0x0,-0x88(%rbp)
je     17d4 <new_pdt+0x534>
cmpq   $0x0,-0x90(%rbp)
je     17d4 <new_pdt+0x534>
mov    -0x88(%rbp),%rax
mov    (%rax),%cl
mov    -0x90(%rbp),%rax
mov    %cl,(%rax)
mov    -0x8(%rbp),%rdi
call   10f0 <perturbation_number_location@plt>
mov    %rax,-0x88(%rbp)
lea    -0x80(%rbp),%rdi
call   10f0 <perturbation_number_location@plt>
mov    %rax,-0x90(%rbp)
cmpq   $0x0,-0x88(%rbp)
je     1822 <new_pdt+0x582>
cmpq   $0x0,-0x90(%rbp)
je     1822 <new_pdt+0x582>
mov    -0x88(%rbp),%rax
mov    (%rax),%cl
mov    -0x90(%rbp),%rax
mov    %cl,(%rax)
mov    -0x8(%rbp),%rdi
call   1080 <number_of_forecasts_in_the_ensemble_location@plt>
mov    %rax,-0x88(%rbp)
lea    -0x80(%rbp),%rdi
call   1080 <number_of_forecasts_in_the_ensemble_location@plt>
mov    %rax,-0x90(%rbp)
cmpq   $0x0,-0x88(%rbp)
je     1870 <new_pdt+0x5d0>
cmpq   $0x0,-0x90(%rbp)
je     1870 <new_pdt+0x5d0>
mov    -0x88(%rbp),%rax
mov    (%rax),%cl
mov    -0x90(%rbp),%rax
mov    %cl,(%rax)
mov    -0x8(%rbp),%rdi
call   1180 <code_table_4_9_location@plt>
mov    %rax,-0x88(%rbp)
lea    -0x80(%rbp),%rdi
call   1180 <code_table_4_9_location@plt>
mov    %rax,-0x90(%rbp)
cmpq   $0x0,-0x88(%rbp)
je     18ec <new_pdt+0x64c>
cmpq   $0x0,-0x90(%rbp)
je     18ec <new_pdt+0x64c>
movl   $0xfffffffe,-0x20(%rbp)
cmpl   $0xb,-0x20(%rbp)
jge    18e7 <new_pdt+0x647>
mov    -0x88(%rbp),%rax
movslq -0x20(%rbp),%rcx
mov    (%rax,%rcx,1),%dl
mov    -0x90(%rbp),%rax
movslq -0x20(%rbp),%rcx
mov    %dl,(%rax,%rcx,1)
mov    -0x20(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x20(%rbp)
jmp    18b3 <new_pdt+0x613>
jmp    18ec <new_pdt+0x64c>
mov    -0x8(%rbp),%rdi
call   10b0 <background_generating_process_identifier_location@plt>
mov    %rax,-0x88(%rbp)
lea    -0x80(%rbp),%rdi
call   10b0 <background_generating_process_identifier_location@plt>
mov    %rax,-0x90(%rbp)
cmpq   $0x0,-0x88(%rbp)
je     193a <new_pdt+0x69a>
cmpq   $0x0,-0x90(%rbp)
je     193a <new_pdt+0x69a>
mov    -0x88(%rbp),%rax
mov    (%rax),%cl
mov    -0x90(%rbp),%rax
mov    %cl,(%rax)
mov    -0x8(%rbp),%rdi
call   1070 <analysis_or_forecast_generating_process_identifier_location@plt>
mov    %rax,-0x88(%rbp)
lea    -0x80(%rbp),%rdi
call   1070 <analysis_or_forecast_generating_process_identifier_location@plt>
mov    %rax,-0x90(%rbp)
cmpq   $0x0,-0x88(%rbp)
je     1988 <new_pdt+0x6e8>
cmpq   $0x0,-0x90(%rbp)
je     1988 <new_pdt+0x6e8>
mov    -0x88(%rbp),%rax
mov    (%rax),%cl
mov    -0x90(%rbp),%rax
mov    %cl,(%rax)
mov    -0x8(%rbp),%rdi
call   1190 <hours_of_observational_data_cutoff_after_reference_time_location@plt>
mov    %rax,-0x88(%rbp)
lea    -0x80(%rbp),%rdi
call   1190 <hours_of_observational_data_cutoff_after_reference_time_location@plt>
mov    %rax,-0x90(%rbp)
cmpq   $0x0,-0x88(%rbp)
je     1a04 <new_pdt+0x764>
cmpq   $0x0,-0x90(%rbp)
je     1a04 <new_pdt+0x764>
mov    -0x88(%rbp),%rax
mov    %rax,%rcx
add    $0x1,%rcx
mov    %rcx,-0x88(%rbp)
mov    (%rax),%cl
mov    -0x90(%rbp),%rax
mov    %rax,%rdx
add    $0x1,%rdx
mov    %rdx,-0x90(%rbp)
mov    %cl,(%rax)
mov    -0x88(%rbp),%rax
mov    (%rax),%cl
mov    -0x90(%rbp),%rax
mov    %cl,(%rax)
mov    -0x8(%rbp),%rdi
call   1040 <minutes_of_observational_data_cutoff_after_reference_time_location@plt>
mov    %rax,-0x88(%rbp)
lea    -0x80(%rbp),%rdi
call   1040 <minutes_of_observational_data_cutoff_after_reference_time_location@plt>
mov    %rax,-0x90(%rbp)
cmpq   $0x0,-0x88(%rbp)
je     1a52 <new_pdt+0x7b2>
cmpq   $0x0,-0x90(%rbp)
je     1a52 <new_pdt+0x7b2>
mov    -0x88(%rbp),%rax
mov    (%rax),%cl
mov    -0x90(%rbp),%rax
mov    %cl,(%rax)
mov    -0x8(%rbp),%rdi
call   1170 <observation_generating_process_identifier_location@plt>
mov    %rax,-0x88(%rbp)
lea    -0x80(%rbp),%rdi
call   1170 <observation_generating_process_identifier_location@plt>
mov    %rax,-0x90(%rbp)
cmpq   $0x0,-0x88(%rbp)
je     1aa0 <new_pdt+0x800>
cmpq   $0x0,-0x90(%rbp)
je     1aa0 <new_pdt+0x800>
mov    -0x88(%rbp),%rax
mov    (%rax),%cl
mov    -0x90(%rbp),%rax
mov    %cl,(%rax)
mov    -0x8(%rbp),%rdi
call   1150 <year_of_model_version_date_location@plt>
mov    %rax,-0x88(%rbp)
lea    -0x80(%rbp),%rdi
call   1150 <year_of_model_version_date_location@plt>
mov    %rax,-0x90(%rbp)
cmpq   $0x0,-0x88(%rbp)
je     1b1c <new_pdt+0x87c>
cmpq   $0x0,-0x90(%rbp)
je     1b1c <new_pdt+0x87c>
movl   $0x0,-0x20(%rbp)
cmpl   $0x7,-0x20(%rbp)
jge    1b17 <new_pdt+0x877>
mov    -0x88(%rbp),%rax
movslq -0x20(%rbp),%rcx
mov    (%rax,%rcx,1),%dl
mov    -0x90(%rbp),%rax
movslq -0x20(%rbp),%rcx
mov    %dl,(%rax,%rcx,1)
mov    -0x20(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x20(%rbp)
jmp    1ae3 <new_pdt+0x843>
jmp    1b1c <new_pdt+0x87c>
mov    -0x8(%rbp),%rdi
call   1110 <percentile_value_location@plt>
mov    %rax,-0x88(%rbp)
lea    -0x80(%rbp),%rdi
call   1110 <percentile_value_location@plt>
mov    %rax,-0x90(%rbp)
cmpq   $0x0,-0x88(%rbp)
je     1b6a <new_pdt+0x8ca>
cmpq   $0x0,-0x90(%rbp)
je     1b6a <new_pdt+0x8ca>
mov    -0x88(%rbp),%rax
mov    (%rax),%cl
mov    -0x90(%rbp),%rax
mov    %cl,(%rax)
mov    -0x8(%rbp),%rdi
call   1060 <code_table_4_230_location@plt>
mov    %rax,-0x88(%rbp)
lea    -0x80(%rbp),%rdi
call   1060 <code_table_4_230_location@plt>
mov    %rax,-0x90(%rbp)
cmpq   $0x0,-0x88(%rbp)
je     1be6 <new_pdt+0x946>
cmpq   $0x0,-0x90(%rbp)
je     1be6 <new_pdt+0x946>
mov    -0x88(%rbp),%rax
mov    %rax,%rcx
add    $0x1,%rcx
mov    %rcx,-0x88(%rbp)
mov    (%rax),%cl
mov    -0x90(%rbp),%rax
mov    %rax,%rdx
add    $0x1,%rdx
mov    %rdx,-0x90(%rbp)
mov    %cl,(%rax)
mov    -0x88(%rbp),%rax
mov    (%rax),%cl
mov    -0x90(%rbp),%rax
mov    %cl,(%rax)
mov    -0x8(%rbp),%rdi
call   11a0 <code_table_4_233_location@plt>
mov    %rax,-0x88(%rbp)
lea    -0x80(%rbp),%rdi
call   11a0 <code_table_4_233_location@plt>
mov    %rax,-0x90(%rbp)
cmpq   $0x0,-0x88(%rbp)
je     1c62 <new_pdt+0x9c2>
cmpq   $0x0,-0x90(%rbp)
je     1c62 <new_pdt+0x9c2>
mov    -0x88(%rbp),%rax
mov    %rax,%rcx
add    $0x1,%rcx
mov    %rcx,-0x88(%rbp)
mov    (%rax),%cl
mov    -0x90(%rbp),%rax
mov    %rax,%rdx
add    $0x1,%rdx
mov    %rdx,-0x90(%rbp)
mov    %cl,(%rax)
mov    -0x88(%rbp),%rax
mov    (%rax),%cl
mov    -0x90(%rbp),%rax
mov    %cl,(%rax)
mov    -0x8(%rbp),%rdi
call   10a0 <code_table_4_91_location@plt>
mov    %rax,-0x88(%rbp)
lea    -0x80(%rbp),%rdi
call   10a0 <code_table_4_91_location@plt>
mov    %rax,-0x90(%rbp)
cmpq   $0x0,-0x88(%rbp)
je     1cde <new_pdt+0xa3e>
cmpq   $0x0,-0x90(%rbp)
je     1cde <new_pdt+0xa3e>
movl   $0x0,-0x20(%rbp)
cmpl   $0xb,-0x20(%rbp)
jge    1cd9 <new_pdt+0xa39>
mov    -0x88(%rbp),%rax
movslq -0x20(%rbp),%rcx
mov    (%rax,%rcx,1),%dl
mov    -0x90(%rbp),%rax
movslq -0x20(%rbp),%rcx
mov    %dl,(%rax,%rcx,1)
mov    -0x20(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x20(%rbp)
jmp    1ca5 <new_pdt+0xa05>
jmp    1cde <new_pdt+0xa3e>
jmp    1ce3 <new_pdt+0xa43>
xor    %eax,%eax
add    $0xa0,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<new_pdt>:
push   %rbp
push   %r15
push   %r14
push   %r13
push   %r12
push   %rbx
sub    $0x48,%rsp
mov    %r8d,%ebp
mov    %ecx,%ebx
mov    %edx,%r12d
mov    %rsi,%r14
mov    %rdi,%r15
movups (%rdi),%xmm0
movups 0x10(%rdi),%xmm1
movups 0x20(%rdi),%xmm2
movups 0x30(%rdi),%xmm3
movaps %xmm2,0x20(%rsp)
mov    0x40(%rdi),%rax
mov    %rax,0x40(%rsp)
movaps %xmm3,0x30(%rsp)
movaps %xmm1,0x10(%rsp)
movaps %xmm0,(%rsp)
mov    %rsi,0x20(%rsp)
call   1140 <stat_proc_n_time_ranges_index@plt>
test   %eax,%eax
js     1316 <new_pdt+0x66>
mov    0x20(%r15),%rcx
mov    %eax,%eax
movzbl (%rcx,%rax,1),%r13d
test   %ebx,%ebx
jg     133b <new_pdt+0x8b>
jmp    131d <new_pdt+0x6d>
xor    %r13d,%r13d
test   %ebx,%ebx
jg     133b <new_pdt+0x8b>
mov    %r12d,%edi
call   10c0 <smallest_pdt_len@plt>
mov    %eax,%ebx
test   %ebp,%ebp
je     133b <new_pdt+0x8b>
test   %r13d,%r13d
je     133b <new_pdt+0x8b>
lea    0x0(%r13,%r13,2),%eax
lea    (%rbx,%rax,4),%ebx
add    $0xfffffff4,%ebx
cmp    $0x1f5,%ebx
jl     1358 <new_pdt+0xa8>
lea    0xcb6(%rip),%rdi
mov    $0x1f4,%esi
mov    %ebx,%edx
call   1130 <fatal_error_ii@plt>
jmp    135d <new_pdt+0xad>
cmp    $0xa,%ebx
jl     136e <new_pdt+0xbe>
lea    0x9(%r14),%rdi
lea    -0x9(%rbx),%edx
mov    $0xff,%esi
call   1100 <memset@plt>
mov    %ebx,%edi
mov    %r14,%rsi
call   1050 <uint_char@plt>
movb   $0x4,0x4(%r14)
lea    0x5(%r14),%rsi
xor    %edi,%edi
call   1090 <uint2_char@plt>
lea    0x7(%r14),%rsi
mov    %r12d,%edi
call   1090 <uint2_char@plt>
test   %ebp,%ebp
je     1943 <new_pdt+0x693>
mov    %r14,0x20(%rsp)
mov    %r15,%rdi
call   1140 <stat_proc_n_time_ranges_index@plt>
test   %eax,%eax
js     158b <new_pdt+0x2db>
mov    %rsp,%rdi
call   1140 <stat_proc_n_time_ranges_index@plt>
test   %eax,%eax
js     13eb <new_pdt+0x13b>
mov    %r12d,%edi
call   10c0 <smallest_pdt_len@plt>
sub    %eax,%ebx
movslq %ebx,%rax
imul   $0x2aaaaaab,%rax,%rax
mov    %rax,%rcx
sar    $0x21,%rcx
shr    $0x3f,%rax
add    %ecx,%eax
add    $0x1,%eax
cmp    %eax,%r13d
jle    13f6 <new_pdt+0x146>
jmp    158b <new_pdt+0x2db>
xor    %eax,%eax
cmp    %eax,%r13d
jg     158b <new_pdt+0x2db>
mov    %r15,%rdi
call   1170 <stat_proc_verf_time_location@plt>
mov    %rax,%rbx
mov    %rsp,%rdi
call   1170 <stat_proc_verf_time_location@plt>
shl    $0x2,%r13d
lea    0x0(%r13,%r13,2),%edx
lea    0xc(%rdx),%r9
lea    (%rbx,%rdx,1),%rsi
add    $0xc,%rsi
cmp    %rsi,%rax
jae    1437 <new_pdt+0x187>
lea    (%rax,%rdx,1),%rsi
add    $0xc,%rsi
cmp    %rsi,%rbx
jae    1437 <new_pdt+0x187>
xor    %edx,%edx
jmp    1560 <new_pdt+0x2b0>
cmp    $0x14,%edx
jae    1443 <new_pdt+0x193>
xor    %edx,%edx
jmp    1527 <new_pdt+0x277>
mov    %r9d,%edx
and    $0x1fe0,%edx
lea    -0x20(%rdx),%rsi
mov    %rsi,%rdi
shr    $0x5,%rdi
add    $0x1,%rdi
mov    %edi,%r8d
and    $0x3,%r8d
cmp    $0x60,%rsi
jae    146c <new_pdt+0x1bc>
xor    %ebp,%ebp
jmp    14d8 <new_pdt+0x228>
and    $0xfffffffffffffffc,%rdi
xor    %ebp,%ebp
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax)
movups (%rbx,%rbp,1),%xmm0
movups 0x10(%rbx,%rbp,1),%xmm1
movups %xmm0,(%rax,%rbp,1)
movups %xmm1,0x10(%rax,%rbp,1)
movups 0x20(%rbx,%rbp,1),%xmm0
movups 0x30(%rbx,%rbp,1),%xmm1
movups %xmm0,0x20(%rax,%rbp,1)
movups %xmm1,0x30(%rax,%rbp,1)
movups 0x40(%rbx,%rbp,1),%xmm0
movups 0x50(%rbx,%rbp,1),%xmm1
movups %xmm0,0x40(%rax,%rbp,1)
movups %xmm1,0x50(%rax,%rbp,1)
movups 0x60(%rbx,%rbp,1),%xmm0
movups 0x70(%rbx,%rbp,1),%xmm1
movups %xmm0,0x60(%rax,%rbp,1)
movups %xmm1,0x70(%rax,%rbp,1)
sub    $0xffffffffffffff80,%rbp
add    $0xfffffffffffffffc,%rdi
jne    1480 <new_pdt+0x1d0>
test   %r8,%r8
je     151c <new_pdt+0x26c>
lea    (%rax,%rbp,1),%rdi
add    $0x10,%rdi
add    %rbx,%rbp
add    $0x10,%rbp
shl    $0x5,%r8
xor    %esi,%esi
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax)
movups -0x10(%rbp,%rsi,1),%xmm0
movups 0x0(%rbp,%rsi,1),%xmm1
movups %xmm0,-0x10(%rdi,%rsi,1)
movups %xmm1,(%rdi,%rsi,1)
add    $0x20,%rsi
cmp    %rsi,%r8
jne    1500 <new_pdt+0x250>
cmp    %r9,%rdx
je     158b <new_pdt+0x2db>
test   $0x18,%r9b
je     1560 <new_pdt+0x2b0>
mov    %rdx,%rsi
mov    %r9d,%edx
and    $0x1ff8,%edx
cs nopw 0x0(%rax,%rax,1)
nopl   (%rax)
mov    (%rbx,%rsi,1),%rdi
mov    %rdi,(%rax,%rsi,1)
add    $0x8,%rsi
cmp    %rsi,%rdx
jne    1540 <new_pdt+0x290>
cmp    %r9,%rdx
je     158b <new_pdt+0x2db>
cs nopw 0x0(%rax,%rax,1)
movzbl (%rbx,%rdx,1),%ecx
mov    %cl,(%rax,%rdx,1)
movzbl 0x1(%rbx,%rdx,1),%ecx
mov    %cl,0x1(%rax,%rdx,1)
movzbl 0x2(%rbx,%rdx,1),%ecx
mov    %cl,0x2(%rax,%rdx,1)
movzbl 0x3(%rbx,%rdx,1),%ecx
mov    %cl,0x3(%rax,%rdx,1)
add    $0x4,%rdx
cmp    %rdx,%r9
jne    1560 <new_pdt+0x2b0>
mov    0x20(%r15),%rax
mov    0x9(%rax),%al
mov    %al,0x9(%r14)
mov    0x20(%r15),%rax
mov    0xa(%rax),%al
mov    %al,0xa(%r14)
mov    %r15,%rdi
call   1110 <code_table_4_3_location@plt>
mov    %rax,%rbx
mov    %rsp,%rdi
call   1110 <code_table_4_3_location@plt>
test   %rbx,%rbx
je     15c2 <new_pdt+0x312>
test   %rax,%rax
je     15c2 <new_pdt+0x312>
mov    (%rbx),%cl
mov    %cl,(%rax)
mov    %r15,%rdi
call   11c0 <code_table_4_4_location@plt>
mov    %rax,%rbx
mov    %rsp,%rdi
call   11c0 <code_table_4_4_location@plt>
test   %rbx,%rbx
je     15fb <new_pdt+0x34b>
test   %rax,%rax
je     15fb <new_pdt+0x34b>
mov    (%rbx),%cl
mov    %cl,(%rax)
mov    0x1(%rbx),%cl
mov    %cl,0x1(%rax)
mov    0x2(%rbx),%cl
mov    %cl,0x2(%rax)
mov    0x3(%rbx),%cl
mov    %cl,0x3(%rax)
mov    0x4(%rbx),%cl
mov    %cl,0x4(%rax)
mov    %r15,%rdi
call   10d0 <code_table_4_5a_location@plt>
mov    %rax,%rbx
mov    %rsp,%rdi
call   10d0 <code_table_4_5a_location@plt>
test   %rbx,%rbx
je     163a <new_pdt+0x38a>
test   %rax,%rax
je     163a <new_pdt+0x38a>
mov    (%rbx),%cl
mov    %cl,(%rax)
mov    0x1(%rbx),%cl
mov    %cl,0x1(%rax)
mov    0x2(%rbx),%cl
mov    %cl,0x2(%rax)
mov    0x3(%rbx),%cl
mov    %cl,0x3(%rax)
mov    0x4(%rbx),%cl
mov    %cl,0x4(%rax)
mov    0x5(%rbx),%cl
mov    %cl,0x5(%rax)
mov    %r15,%rdi
call   11d0 <code_table_4_5b_location@plt>
mov    %rax,%rbx
mov    %rsp,%rdi
call   11d0 <code_table_4_5b_location@plt>
test   %rbx,%rbx
je     1679 <new_pdt+0x3c9>
test   %rax,%rax
je     1679 <new_pdt+0x3c9>
mov    (%rbx),%cl
mov    %cl,(%rax)
mov    0x1(%rbx),%cl
mov    %cl,0x1(%rax)
mov    0x2(%rbx),%cl
mov    %cl,0x2(%rax)
mov    0x3(%rbx),%cl
mov    %cl,0x3(%rax)
mov    0x4(%rbx),%cl
mov    %cl,0x4(%rax)
mov    0x5(%rbx),%cl
mov    %cl,0x5(%rax)
mov    %r15,%rdi
call   10e0 <code_table_4_6_location@plt>
mov    %rax,%rbx
mov    %rsp,%rdi
call   10e0 <code_table_4_6_location@plt>
test   %rbx,%rbx
je     169a <new_pdt+0x3ea>
test   %rax,%rax
je     169a <new_pdt+0x3ea>
mov    (%rbx),%cl
mov    %cl,(%rax)
mov    %r15,%rdi
call   1150 <code_table_4_7_location@plt>
mov    %rax,%rbx
mov    %rsp,%rdi
call   1150 <code_table_4_7_location@plt>
test   %rbx,%rbx
je     16bb <new_pdt+0x40b>
test   %rax,%rax
je     16bb <new_pdt+0x40b>
mov    (%rbx),%cl
mov    %cl,(%rax)
mov    %r15,%rdi
call   1030 <code_table_4_8_location@plt>
mov    %rax,%rbx
mov    %rsp,%rdi
call   1030 <code_table_4_8_location@plt>
test   %rbx,%rbx
je     16dc <new_pdt+0x42c>
test   %rax,%rax
je     16dc <new_pdt+0x42c>
mov    (%rbx),%cl
mov    %cl,(%rax)
mov    %r15,%rdi
call   10f0 <perturbation_number_location@plt>
mov    %rax,%rbx
mov    %rsp,%rdi
call   10f0 <perturbation_number_location@plt>
test   %rbx,%rbx
je     16fd <new_pdt+0x44d>
test   %rax,%rax
je     16fd <new_pdt+0x44d>
mov    (%rbx),%cl
mov    %cl,(%rax)
mov    %r15,%rdi
call   1080 <number_of_forecasts_in_the_ensemble_location@plt>
mov    %rax,%rbx
mov    %rsp,%rdi
call   1080 <number_of_forecasts_in_the_ensemble_location@plt>
test   %rbx,%rbx
je     171e <new_pdt+0x46e>
test   %rax,%rax
je     171e <new_pdt+0x46e>
mov    (%rbx),%cl
mov    %cl,(%rax)
mov    %r15,%rdi
call   1190 <code_table_4_9_location@plt>
mov    %rax,%rbx
mov    %rsp,%rdi
call   1190 <code_table_4_9_location@plt>
test   %rbx,%rbx
je     1787 <new_pdt+0x4d7>
test   %rax,%rax
je     1787 <new_pdt+0x4d7>
mov    -0x2(%rbx),%cl
mov    %cl,-0x2(%rax)
mov    -0x1(%rbx),%cl
mov    %cl,-0x1(%rax)
mov    (%rbx),%cl
mov    %cl,(%rax)
mov    0x1(%rbx),%cl
mov    %cl,0x1(%rax)
mov    0x2(%rbx),%cl
mov    %cl,0x2(%rax)
mov    0x3(%rbx),%cl
mov    %cl,0x3(%rax)
mov    0x4(%rbx),%cl
mov    %cl,0x4(%rax)
mov    0x5(%rbx),%cl
mov    %cl,0x5(%rax)
mov    0x6(%rbx),%cl
mov    %cl,0x6(%rax)
mov    0x7(%rbx),%cl
mov    %cl,0x7(%rax)
mov    0x8(%rbx),%cl
mov    %cl,0x8(%rax)
mov    0x9(%rbx),%cl
mov    %cl,0x9(%rax)
mov    0xa(%rbx),%cl
mov    %cl,0xa(%rax)
mov    %r15,%rdi
call   10b0 <background_generating_process_identifier_location@plt>
mov    %rax,%rbx
mov    %rsp,%rdi
call   10b0 <background_generating_process_identifier_location@plt>
test   %rbx,%rbx
je     17a8 <new_pdt+0x4f8>
test   %rax,%rax
je     17a8 <new_pdt+0x4f8>
mov    (%rbx),%cl
mov    %cl,(%rax)
mov    %r15,%rdi
call   1070 <analysis_or_forecast_generating_process_identifier_location@plt>
mov    %rax,%rbx
mov    %rsp,%rdi
call   1070 <analysis_or_forecast_generating_process_identifier_location@plt>
test   %rbx,%rbx
je     17c9 <new_pdt+0x519>
test   %rax,%rax
je     17c9 <new_pdt+0x519>
mov    (%rbx),%cl
mov    %cl,(%rax)
mov    %r15,%rdi
call   11a0 <hours_of_observational_data_cutoff_after_reference_time_location@plt>
mov    %rax,%rbx
mov    %rsp,%rdi
call   11a0 <hours_of_observational_data_cutoff_after_reference_time_location@plt>
test   %rbx,%rbx
je     17f0 <new_pdt+0x540>
test   %rax,%rax
je     17f0 <new_pdt+0x540>
mov    (%rbx),%cl
mov    %cl,(%rax)
mov    0x1(%rbx),%cl
mov    %cl,0x1(%rax)
mov    %r15,%rdi
call   1040 <minutes_of_observational_data_cutoff_after_reference_time_location@plt>
mov    %rax,%rbx
mov    %rsp,%rdi
call   1040 <minutes_of_observational_data_cutoff_after_reference_time_location@plt>
test   %rbx,%rbx
je     1811 <new_pdt+0x561>
test   %rax,%rax
je     1811 <new_pdt+0x561>
mov    (%rbx),%cl
mov    %cl,(%rax)
mov    %r15,%rdi
call   1180 <observation_generating_process_identifier_location@plt>
mov    %rax,%rbx
mov    %rsp,%rdi
call   1180 <observation_generating_process_identifier_location@plt>
test   %rbx,%rbx
je     1832 <new_pdt+0x582>
test   %rax,%rax
je     1832 <new_pdt+0x582>
mov    (%rbx),%cl
mov    %cl,(%rax)
mov    %r15,%rdi
call   1160 <year_of_model_version_date_location@plt>
mov    %rax,%rbx
mov    %rsp,%rdi
call   1160 <year_of_model_version_date_location@plt>
test   %rbx,%rbx
je     1877 <new_pdt+0x5c7>
test   %rax,%rax
je     1877 <new_pdt+0x5c7>
mov    (%rbx),%cl
mov    %cl,(%rax)
mov    0x1(%rbx),%cl
mov    %cl,0x1(%rax)
mov    0x2(%rbx),%cl
mov    %cl,0x2(%rax)
mov    0x3(%rbx),%cl
mov    %cl,0x3(%rax)
mov    0x4(%rbx),%cl
mov    %cl,0x4(%rax)
mov    0x5(%rbx),%cl
mov    %cl,0x5(%rax)
mov    0x6(%rbx),%cl
mov    %cl,0x6(%rax)
mov    %r15,%rdi
call   1120 <percentile_value_location@plt>
mov    %rax,%rbx
mov    %rsp,%rdi
call   1120 <percentile_value_location@plt>
test   %rbx,%rbx
je     1898 <new_pdt+0x5e8>
test   %rax,%rax
je     1898 <new_pdt+0x5e8>
mov    (%rbx),%cl
mov    %cl,(%rax)
mov    %r15,%rdi
call   1060 <code_table_4_230_location@plt>
mov    %rax,%rbx
mov    %rsp,%rdi
call   1060 <code_table_4_230_location@plt>
test   %rbx,%rbx
je     18bf <new_pdt+0x60f>
test   %rax,%rax
je     18bf <new_pdt+0x60f>
mov    (%rbx),%cl
mov    %cl,(%rax)
mov    0x1(%rbx),%cl
mov    %cl,0x1(%rax)
mov    %r15,%rdi
call   11b0 <code_table_4_233_location@plt>
mov    %rax,%rbx
mov    %rsp,%rdi
call   11b0 <code_table_4_233_location@plt>
test   %rbx,%rbx
je     18e6 <new_pdt+0x636>
test   %rax,%rax
je     18e6 <new_pdt+0x636>
mov    (%rbx),%cl
mov    %cl,(%rax)
mov    0x1(%rbx),%cl
mov    %cl,0x1(%rax)
mov    %r15,%rdi
call   10a0 <code_table_4_91_location@plt>
mov    %rax,%rbx
mov    %rsp,%rdi
call   10a0 <code_table_4_91_location@plt>
test   %rbx,%rbx
je     1943 <new_pdt+0x693>
test   %rax,%rax
je     1943 <new_pdt+0x693>
mov    (%rbx),%cl
mov    %cl,(%rax)
mov    0x1(%rbx),%cl
mov    %cl,0x1(%rax)
mov    0x2(%rbx),%cl
mov    %cl,0x2(%rax)
mov    0x3(%rbx),%cl
mov    %cl,0x3(%rax)
mov    0x4(%rbx),%cl
mov    %cl,0x4(%rax)
mov    0x5(%rbx),%cl
mov    %cl,0x5(%rax)
mov    0x6(%rbx),%cl
mov    %cl,0x6(%rax)
mov    0x7(%rbx),%cl
mov    %cl,0x7(%rax)
mov    0x8(%rbx),%cl
mov    %cl,0x8(%rax)
mov    0x9(%rbx),%cl
mov    %cl,0x9(%rax)
mov    0xa(%rbx),%cl
mov    %cl,0xa(%rax)
xor    %eax,%eax
add    $0x48,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
ret

LLVM IR (-O0):
@.str = [41 x i8] c"set_pdt: maximum pdt len is %d wanted %d\00"
define i32 @new_pdt(i8** %0, i8* %1, i32 %2, i32 %3, i32 %4) {
%6 = alloca i8**
%7 = alloca i8*
%8 = alloca i32
%9 = alloca i32
%10 = alloca i32
%11 = alloca i32
%12 = alloca i32
%13 = alloca i32
%14 = alloca i32
%15 = alloca [9 x i8*]
%16 = alloca i8*
%17 = alloca i8*
store i8** %0, i8*** %6
store i8* %1, i8** %7
store i32 %2, i32* %8
store i32 %3, i32* %9
store i32 %4, i32* %10
store i32 0, i32* %11
br label %18
18: ; preds = %30, %5
%19 = load i32, i32* %11
%20 = icmp slt i32 %19, 9
br i1 %20, label %21, label %33
21: ; preds = %18
%22 = load i8**, i8*** %6
%23 = load i32, i32* %11
%24 = sext i32 %23 to i64
%25 = getelementptr inbounds i8*, i8** %22, i64 %24
%26 = load i8*, i8** %25
%27 = load i32, i32* %11
%28 = sext i32 %27 to i64
%29 = getelementptr inbounds [9 x i8*], [9 x i8*]* %15, i64 0, i64 %28
store i8* %26, i8** %29
br label %30
30: ; preds = %21
%31 = load i32, i32* %11
%32 = add nsw i32 %31, 1
store i32 %32, i32* %11
br label %18
33: ; preds = %18
%34 = load i8*, i8** %7
%35 = getelementptr inbounds [9 x i8*], [9 x i8*]* %15, i64 0, i64 4
store i8* %34, i8** %35
%36 = load i8**, i8*** %6
%37 = call i32 @stat_proc_n_time_ranges_index(i8** %36)
store i32 %37, i32* %12
%38 = load i32, i32* %12
%39 = icmp sge i32 %38, 0
br i1 %39, label %40, label %49
40: ; preds = %33
%41 = load i8**, i8*** %6
%42 = getelementptr inbounds i8*, i8** %41, i64 4
%43 = load i8*, i8** %42
%44 = load i32, i32* %12
%45 = sext i32 %44 to i64
%46 = getelementptr inbounds i8, i8* %43, i64 %45
%47 = load i8, i8* %46
%48 = zext i8 %47 to i32
br label %50
49: ; preds = %33
br label %50
50: ; preds = %49, %40
%51 = phi i32 [ %48, %40 ], [ 0, %49 ]
store i32 %51, i32* %13
%52 = load i32, i32* %9
%53 = icmp sle i32 %52, 0
br i1 %53, label %54, label %69
54: ; preds = %50
%55 = load i32, i32* %8
%56 = call i32 @smallest_pdt_len(i32 %55)
store i32 %56, i32* %9
%57 = load i32, i32* %10
%58 = icmp ne i32 %57, 0
br i1 %58, label %59, label %68
59: ; preds = %54
%60 = load i32, i32* %13
%61 = icmp sgt i32 %60, 0
br i1 %61, label %62, label %68
62: ; preds = %59
%63 = load i32, i32* %13
%64 = sub nsw i32 %63, 1
%65 = mul nsw i32 %64, 12
%66 = load i32, i32* %9
%67 = add nsw i32 %66, %65
store i32 %67, i32* %9
br label %68
68: ; preds = %62, %59, %54
br label %69
69: ; preds = %68, %50
%70 = load i32, i32* %9
%71 = icmp sgt i32 %70, 500
br i1 %71, label %72, label %75
72: ; preds = %69
%73 = load i32, i32* %9
%74 = call i32 @fatal_error_ii(i8* getelementptr inbounds ([41 x i8], [41 x i8]* @.str, i64 0, i64 0), i32 500, i32 %73)
br label %75
75: ; preds = %72, %69
store i32 9, i32* %11
br label %76
76: ; preds = %85, %75
%77 = load i32, i32* %11
%78 = load i32, i32* %9
%79 = icmp slt i32 %77, %78
br i1 %79, label %80, label %88
80: ; preds = %76
%81 = load i8*, i8** %7
%82 = load i32, i32* %11
%83 = sext i32 %82 to i64
%84 = getelementptr inbounds i8, i8* %81, i64 %83
store i8 -1, i8* %84
br label %85
85: ; preds = %80
%86 = load i32, i32* %11
%87 = add nsw i32 %86, 1
store i32 %87, i32* %11
br label %76
88: ; preds = %76
%89 = load i32, i32* %9
%90 = load i8*, i8** %7
%91 = call i32 @uint_char(i32 %89, i8* %90)
%92 = load i8*, i8** %7
%93 = getelementptr inbounds i8, i8* %92, i64 4
store i8 4, i8* %93
%94 = load i8*, i8** %7
%95 = getelementptr inbounds i8, i8* %94, i64 5
%96 = call i32 @uint2_char(i32 0, i8* %95)
%97 = load i32, i32* %8
%98 = load i8*, i8** %7
%99 = getelementptr inbounds i8, i8* %98, i64 7
%100 = call i32 @uint2_char(i32 %97, i8* %99)
%101 = load i32, i32* %10
%102 = icmp ne i32 %101, 0
br i1 %102, label %103, label %549
103: ; preds = %88
%104 = load i8*, i8** %7
%105 = getelementptr inbounds [9 x i8*], [9 x i8*]* %15, i64 0, i64 4
store i8* %104, i8** %105
%106 = load i8**, i8*** %6
%107 = call i32 @stat_proc_n_time_ranges_index(i8** %106)
store i32 %107, i32* %12
%108 = icmp sge i32 %107, 0
br i1 %108, label %109, label %155
109: ; preds = %103
%110 = getelementptr inbounds [9 x i8*], [9 x i8*]* %15, i64 0, i64 0
%111 = call i32 @stat_proc_n_time_ranges_index(i8** %110)
store i32 %111, i32* %12
%112 = load i32, i32* %12
%113 = icmp sge i32 %112, 0
br i1 %113, label %114, label %121
114: ; preds = %109
%115 = load i32, i32* %9
%116 = load i32, i32* %8
%117 = call i32 @smallest_pdt_len(i32 %116)
%118 = sub nsw i32 %115, %117
%119 = sdiv i32 %118, 12
%120 = add nsw i32 %119, 1
br label %122
121: ; preds = %109
br label %122
122: ; preds = %121, %114
%123 = phi i32 [ %120, %114 ], [ 0, %121 ]
store i32 %123, i32* %14
%124 = load i32, i32* %13
%125 = load i32, i32* %14
%126 = icmp sle i32 %124, %125
br i1 %126, label %127, label %154
127: ; preds = %122
%128 = load i8**, i8*** %6
%129 = call i8* @stat_proc_verf_time_location(i8** %128)
store i8* %129, i8** %16
%130 = getelementptr inbounds [9 x i8*], [9 x i8*]* %15, i64 0, i64 0
%131 = call i8* @stat_proc_verf_time_location(i8** %130)
store i8* %131, i8** %17
%132 = load i32, i32* %13
%133 = sub nsw i32 %132, 1
%134 = mul nsw i32 12, %133
%135 = add nsw i32 24, %134
store i32 %135, i32* %12
store i32 0, i32* %11
br label %136
136: ; preds = %150, %127
%137 = load i32, i32* %11
%138 = load i32, i32* %12
%139 = icmp slt i32 %137, %138
br i1 %139, label %140, label %153
140: ; preds = %136
%141 = load i8*, i8** %16
%142 = load i32, i32* %11
%143 = sext i32 %142 to i64
%144 = getelementptr inbounds i8, i8* %141, i64 %143
%145 = load i8, i8* %144
%146 = load i8*, i8** %17
%147 = load i32, i32* %11
%148 = sext i32 %147 to i64
%149 = getelementptr inbounds i8, i8* %146, i64 %148
store i8 %145, i8* %149
br label %150
150: ; preds = %140
%151 = load i32, i32* %11
%152 = add nsw i32 %151, 1
store i32 %152, i32* %11
br label %136
153: ; preds = %136
br label %154
154: ; preds = %153, %122
br label %155
155: ; preds = %154, %103
%156 = load i8**, i8*** %6
%157 = getelementptr inbounds i8*, i8** %156, i64 4
%158 = load i8*, i8** %157
%159 = getelementptr inbounds i8, i8* %158, i64 9
%160 = load i8, i8* %159
%161 = load i8*, i8** %7
%162 = getelementptr inbounds i8, i8* %161, i64 9
store i8 %160, i8* %162
%163 = load i8**, i8*** %6
%164 = getelementptr inbounds i8*, i8** %163, i64 4
%165 = load i8*, i8** %164
%166 = getelementptr inbounds i8, i8* %165, i64 10
%167 = load i8, i8* %166
%168 = load i8*, i8** %7
%169 = getelementptr inbounds i8, i8* %168, i64 10
store i8 %167, i8* %169
%170 = load i8**, i8*** %6
%171 = call i8* @code_table_4_3_location(i8** %170)
store i8* %171, i8** %16
%172 = getelementptr inbounds [9 x i8*], [9 x i8*]* %15, i64 0, i64 0
%173 = call i8* @code_table_4_3_location(i8** %172)
store i8* %173, i8** %17
%174 = load i8*, i8** %16
%175 = icmp ne i8* %174, null
br i1 %175, label %176, label %183
176: ; preds = %155
%177 = load i8*, i8** %17
%178 = icmp ne i8* %177, null
br i1 %178, label %179, label %183
179: ; preds = %176
%180 = load i8*, i8** %16
%181 = load i8, i8* %180
%182 = load i8*, i8** %17
store i8 %181, i8* %182
br label %183
183: ; preds = %179, %176, %155
%184 = load i8**, i8*** %6
%185 = call i8* @code_table_4_4_location(i8** %184)
store i8* %185, i8** %16
%186 = getelementptr inbounds [9 x i8*], [9 x i8*]* %15, i64 0, i64 0
%187 = call i8* @code_table_4_4_location(i8** %186)
store i8* %187, i8** %17
%188 = load i8*, i8** %16
%189 = icmp ne i8* %188, null
br i1 %189, label %190, label %211
190: ; preds = %183
%191 = load i8*, i8** %17
%192 = icmp ne i8* %191, null
br i1 %192, label %193, label %211
193: ; preds = %190
store i32 0, i32* %11
br label %194
194: ; preds = %207, %193
%195 = load i32, i32* %11
%196 = icmp slt i32 %195, 5
br i1 %196, label %197, label %210
197: ; preds = %194
%198 = load i8*, i8** %16
%199 = load i32, i32* %11
%200 = sext i32 %199 to i64
%201 = getelementptr inbounds i8, i8* %198, i64 %200
%202 = load i8, i8* %201
%203 = load i8*, i8** %17
%204 = load i32, i32* %11
%205 = sext i32 %204 to i64
%206 = getelementptr inbounds i8, i8* %203, i64 %205
store i8 %202, i8* %206
br label %207
207: ; preds = %197
%208 = load i32, i32* %11
%209 = add nsw i32 %208, 1
store i32 %209, i32* %11
br label %194
210: ; preds = %194
br label %211
211: ; preds = %210, %190, %183
%212 = load i8**, i8*** %6
%213 = call i8* @code_table_4_5a_location(i8** %212)
store i8* %213, i8** %16
%214 = getelementptr inbounds [9 x i8*], [9 x i8*]* %15, i64 0, i64 0
%215 = call i8* @code_table_4_5a_location(i8** %214)
store i8* %215, i8** %17
%216 = load i8*, i8** %16
%217 = icmp ne i8* %216, null
br i1 %217, label %218, label %239
218: ; preds = %211
%219 = load i8*, i8** %17
%220 = icmp ne i8* %219, null
br i1 %220, label %221, label %239
221: ; preds = %218
store i32 0, i32* %11
br label %222
222: ; preds = %235, %221
%223 = load i32, i32* %11
%224 = icmp slt i32 %223, 6
br i1 %224, label %225, label %238
225: ; preds = %222
%226 = load i8*, i8** %16
%227 = load i32, i32* %11
%228 = sext i32 %227 to i64
%229 = getelementptr inbounds i8, i8* %226, i64 %228
%230 = load i8, i8* %229
%231 = load i8*, i8** %17
%232 = load i32, i32* %11
%233 = sext i32 %232 to i64
%234 = getelementptr inbounds i8, i8* %231, i64 %233
store i8 %230, i8* %234
br label %235
235: ; preds = %225
%236 = load i32, i32* %11
%237 = add nsw i32 %236, 1
store i32 %237, i32* %11
br label %222
238: ; preds = %222
br label %239
239: ; preds = %238, %218, %211
%240 = load i8**, i8*** %6
%241 = call i8* @code_table_4_5b_location(i8** %240)
store i8* %241, i8** %16
%242 = getelementptr inbounds [9 x i8*], [9 x i8*]* %15, i64 0, i64 0
%243 = call i8* @code_table_4_5b_location(i8** %242)
store i8* %243, i8** %17
%244 = load i8*, i8** %16
%245 = icmp ne i8* %244, null
br i1 %245, label %246, label %267
246: ; preds = %239
%247 = load i8*, i8** %17
%248 = icmp ne i8* %247, null
br i1 %248, label %249, label %267
249: ; preds = %246
store i32 0, i32* %11
br label %250
250: ; preds = %263, %249
%251 = load i32, i32* %11
%252 = icmp slt i32 %251, 6
br i1 %252, label %253, label %266
253: ; preds = %250
%254 = load i8*, i8** %16
%255 = load i32, i32* %11
%256 = sext i32 %255 to i64
%257 = getelementptr inbounds i8, i8* %254, i64 %256
%258 = load i8, i8* %257
%259 = load i8*, i8** %17
%260 = load i32, i32* %11
%261 = sext i32 %260 to i64
%262 = getelementptr inbounds i8, i8* %259, i64 %261
store i8 %258, i8* %262
br label %263
263: ; preds = %253
%264 = load i32, i32* %11
%265 = add nsw i32 %264, 1
store i32 %265, i32* %11
br label %250
266: ; preds = %250
br label %267
267: ; preds = %266, %246, %239
%268 = load i8**, i8*** %6
%269 = call i8* @code_table_4_6_location(i8** %268)
store i8* %269, i8** %16
%270 = getelementptr inbounds [9 x i8*], [9 x i8*]* %15, i64 0, i64 0
%271 = call i8* @code_table_4_6_location(i8** %270)
store i8* %271, i8** %17
%272 = load i8*, i8** %16
%273 = icmp ne i8* %272, null
br i1 %273, label %274, label %281
274: ; preds = %267
%275 = load i8*, i8** %17
%276 = icmp ne i8* %275, null
br i1 %276, label %277, label %281
277: ; preds = %274
%278 = load i8*, i8** %16
%279 = load i8, i8* %278
%280 = load i8*, i8** %17
store i8 %279, i8* %280
br label %281
281: ; preds = %277, %274, %267
%282 = load i8**, i8*** %6
%283 = call i8* @code_table_4_7_location(i8** %282)
store i8* %283, i8** %16
%284 = getelementptr inbounds [9 x i8*], [9 x i8*]* %15, i64 0, i64 0
%285 = call i8* @code_table_4_7_location(i8** %284)
store i8* %285, i8** %17
%286 = load i8*, i8** %16
%287 = icmp ne i8* %286, null
br i1 %287, label %288, label %295
288: ; preds = %281
%289 = load i8*, i8** %17
%290 = icmp ne i8* %289, null
br i1 %290, label %291, label %295
291: ; preds = %288
%292 = load i8*, i8** %16
%293 = load i8, i8* %292
%294 = load i8*, i8** %17
store i8 %293, i8* %294
br label %295
295: ; preds = %291, %288, %281
%296 = load i8**, i8*** %6
%297 = call i8* @code_table_4_8_location(i8** %296)
store i8* %297, i8** %16
%298 = getelementptr inbounds [9 x i8*], [9 x i8*]* %15, i64 0, i64 0
%299 = call i8* @code_table_4_8_location(i8** %298)
store i8* %299, i8** %17
%300 = load i8*, i8** %16
%301 = icmp ne i8* %300, null
br i1 %301, label %302, label %309
302: ; preds = %295
%303 = load i8*, i8** %17
%304 = icmp ne i8* %303, null
br i1 %304, label %305, label %309
305: ; preds = %302
%306 = load i8*, i8** %16
%307 = load i8, i8* %306
%308 = load i8*, i8** %17
store i8 %307, i8* %308
br label %309
309: ; preds = %305, %302, %295
%310 = load i8**, i8*** %6
%311 = call i8* @perturbation_number_location(i8** %310)
store i8* %311, i8** %16
%312 = getelementptr inbounds [9 x i8*], [9 x i8*]* %15, i64 0, i64 0
%313 = call i8* @perturbation_number_location(i8** %312)
store i8* %313, i8** %17
%314 = load i8*, i8** %16
%315 = icmp ne i8* %314, null
br i1 %315, label %316, label %323
316: ; preds = %309
%317 = load i8*, i8** %17
%318 = icmp ne i8* %317, null
br i1 %318, label %319, label %323
319: ; preds = %316
%320 = load i8*, i8** %16
%321 = load i8, i8* %320
%322 = load i8*, i8** %17
store i8 %321, i8* %322
br label %323
323: ; preds = %319, %316, %309
%324 = load i8**, i8*** %6
%325 = call i8* @number_of_forecasts_in_the_ensemble_location(i8** %324)
store i8* %325, i8** %16
%326 = getelementptr inbounds [9 x i8*], [9 x i8*]* %15, i64 0, i64 0
%327 = call i8* @number_of_forecasts_in_the_ensemble_location(i8** %326)
store i8* %327, i8** %17
%328 = load i8*, i8** %16
%329 = icmp ne i8* %328, null
br i1 %329, label %330, label %337
330: ; preds = %323
%331 = load i8*, i8** %17
%332 = icmp ne i8* %331, null
br i1 %332, label %333, label %337
333: ; preds = %330
%334 = load i8*, i8** %16
%335 = load i8, i8* %334
%336 = load i8*, i8** %17
store i8 %335, i8* %336
br label %337
337: ; preds = %333, %330, %323
%338 = load i8**, i8*** %6
%339 = call i8* @code_table_4_9_location(i8** %338)
store i8* %339, i8** %16
%340 = getelementptr inbounds [9 x i8*], [9 x i8*]* %15, i64 0, i64 0
%341 = call i8* @code_table_4_9_location(i8** %340)
store i8* %341, i8** %17
%342 = load i8*, i8** %16
%343 = icmp ne i8* %342, null
br i1 %343, label %344, label %365
344: ; preds = %337
%345 = load i8*, i8** %17
%346 = icmp ne i8* %345, null
br i1 %346, label %347, label %365
347: ; preds = %344
store i32 -2, i32* %11
br label %348
348: ; preds = %361, %347
%349 = load i32, i32* %11
%350 = icmp slt i32 %349, 11
br i1 %350, label %351, label %364
351: ; preds = %348
%352 = load i8*, i8** %16
%353 = load i32, i32* %11
%354 = sext i32 %353 to i64
%355 = getelementptr inbounds i8, i8* %352, i64 %354
%356 = load i8, i8* %355
%357 = load i8*, i8** %17
%358 = load i32, i32* %11
%359 = sext i32 %358 to i64
%360 = getelementptr inbounds i8, i8* %357, i64 %359
store i8 %356, i8* %360
br label %361
361: ; preds = %351
%362 = load i32, i32* %11
%363 = add nsw i32 %362, 1
store i32 %363, i32* %11
br label %348
364: ; preds = %348
br label %365
365: ; preds = %364, %344, %337
%366 = load i8**, i8*** %6
%367 = call i8* @background_generating_process_identifier_location(i8** %366)
store i8* %367, i8** %16
%368 = getelementptr inbounds [9 x i8*], [9 x i8*]* %15, i64 0, i64 0
%369 = call i8* @background_generating_process_identifier_location(i8** %368)
store i8* %369, i8** %17
%370 = load i8*, i8** %16
%371 = icmp ne i8* %370, null
br i1 %371, label %372, label %379
372: ; preds = %365
%373 = load i8*, i8** %17
%374 = icmp ne i8* %373, null
br i1 %374, label %375, label %379
375: ; preds = %372
%376 = load i8*, i8** %16
%377 = load i8, i8* %376
%378 = load i8*, i8** %17
store i8 %377, i8* %378
br label %379
379: ; preds = %375, %372, %365
%380 = load i8**, i8*** %6
%381 = call i8* @analysis_or_forecast_generating_process_identifier_location(i8** %380)
store i8* %381, i8** %16
%382 = getelementptr inbounds [9 x i8*], [9 x i8*]* %15, i64 0, i64 0
%383 = call i8* @analysis_or_forecast_generating_process_identifier_location(i8** %382)
store i8* %383, i8** %17
%384 = load i8*, i8** %16
%385 = icmp ne i8* %384, null
br i1 %385, label %386, label %393
386: ; preds = %379
%387 = load i8*, i8** %17
%388 = icmp ne i8* %387, null
br i1 %388, label %389, label %393
389: ; preds = %386
%390 = load i8*, i8** %16
%391 = load i8, i8* %390
%392 = load i8*, i8** %17
store i8 %391, i8* %392
br label %393
393: ; preds = %389, %386, %379
%394 = load i8**, i8*** %6
%395 = call i8* @hours_of_observational_data_cutoff_after_reference_time_location(i8** %394)
store i8* %395, i8** %16
%396 = getelementptr inbounds [9 x i8*], [9 x i8*]* %15, i64 0, i64 0
%397 = call i8* @hours_of_observational_data_cutoff_after_reference_time_location(i8** %396)
store i8* %397, i8** %17
%398 = load i8*, i8** %16
%399 = icmp ne i8* %398, null
br i1 %399, label %400, label %412
400: ; preds = %393
%401 = load i8*, i8** %17
%402 = icmp ne i8* %401, null
br i1 %402, label %403, label %412
403: ; preds = %400
%404 = load i8*, i8** %16
%405 = getelementptr inbounds i8, i8* %404, i32 1
store i8* %405, i8** %16
%406 = load i8, i8* %404
%407 = load i8*, i8** %17
%408 = getelementptr inbounds i8, i8* %407, i32 1
store i8* %408, i8** %17
store i8 %406, i8* %407
%409 = load i8*, i8** %16
%410 = load i8, i8* %409
%411 = load i8*, i8** %17
store i8 %410, i8* %411
br label %412
412: ; preds = %403, %400, %393
%413 = load i8**, i8*** %6
%414 = call i8* @minutes_of_observational_data_cutoff_after_reference_time_location(i8** %413)
store i8* %414, i8** %16
%415 = getelementptr inbounds [9 x i8*], [9 x i8*]* %15, i64 0, i64 0
%416 = call i8* @minutes_of_observational_data_cutoff_after_reference_time_location(i8** %415)
store i8* %416, i8** %17
%417 = load i8*, i8** %16
%418 = icmp ne i8* %417, null
br i1 %418, label %419, label %426
419: ; preds = %412
%420 = load i8*, i8** %17
%421 = icmp ne i8* %420, null
br i1 %421, label %422, label %426
422: ; preds = %419
%423 = load i8*, i8** %16
%424 = load i8, i8* %423
%425 = load i8*, i8** %17
store i8 %424, i8* %425
br label %426
426: ; preds = %422, %419, %412
%427 = load i8**, i8*** %6
%428 = call i8* @observation_generating_process_identifier_location(i8** %427)
store i8* %428, i8** %16
%429 = getelementptr inbounds [9 x i8*], [9 x i8*]* %15, i64 0, i64 0
%430 = call i8* @observation_generating_process_identifier_location(i8** %429)
store i8* %430, i8** %17
%431 = load i8*, i8** %16
%432 = icmp ne i8* %431, null
br i1 %432, label %433, label %440
433: ; preds = %426
%434 = load i8*, i8** %17
%435 = icmp ne i8* %434, null
br i1 %435, label %436, label %440
436: ; preds = %433
%437 = load i8*, i8** %16
%438 = load i8, i8* %437
%439 = load i8*, i8** %17
store i8 %438, i8* %439
br label %440
440: ; preds = %436, %433, %426
%441 = load i8**, i8*** %6
%442 = call i8* @year_of_model_version_date_location(i8** %441)
store i8* %442, i8** %16
%443 = getelementptr inbounds [9 x i8*], [9 x i8*]* %15, i64 0, i64 0
%444 = call i8* @year_of_model_version_date_location(i8** %443)
store i8* %444, i8** %17
%445 = load i8*, i8** %16
%446 = icmp ne i8* %445, null
br i1 %446, label %447, label %468
447: ; preds = %440
%448 = load i8*, i8** %17
%449 = icmp ne i8* %448, null
br i1 %449, label %450, label %468
450: ; preds = %447
store i32 0, i32* %11
br label %451
451: ; preds = %464, %450
%452 = load i32, i32* %11
%453 = icmp slt i32 %452, 7
br i1 %453, label %454, label %467
454: ; preds = %451
%455 = load i8*, i8** %16
%456 = load i32, i32* %11
%457 = sext i32 %456 to i64
%458 = getelementptr inbounds i8, i8* %455, i64 %457
%459 = load i8, i8* %458
%460 = load i8*, i8** %17
%461 = load i32, i32* %11
%462 = sext i32 %461 to i64
%463 = getelementptr inbounds i8, i8* %460, i64 %462
store i8 %459, i8* %463
br label %464
464: ; preds = %454
%465 = load i32, i32* %11
%466 = add nsw i32 %465, 1
store i32 %466, i32* %11
br label %451
467: ; preds = %451
br label %468
468: ; preds = %467, %447, %440
%469 = load i8**, i8*** %6
%470 = call i8* @percentile_value_location(i8** %469)
store i8* %470, i8** %16
%471 = getelementptr inbounds [9 x i8*], [9 x i8*]* %15, i64 0, i64 0
%472 = call i8* @percentile_value_location(i8** %471)
store i8* %472, i8** %17
%473 = load i8*, i8** %16
%474 = icmp ne i8* %473, null
br i1 %474, label %475, label %482
475: ; preds = %468
%476 = load i8*, i8** %17
%477 = icmp ne i8* %476, null
br i1 %477, label %478, label %482
478: ; preds = %475
%479 = load i8*, i8** %16
%480 = load i8, i8* %479
%481 = load i8*, i8** %17
store i8 %480, i8* %481
br label %482
482: ; preds = %478, %475, %468
%483 = load i8**, i8*** %6
%484 = call i8* @code_table_4_230_location(i8** %483)
store i8* %484, i8** %16
%485 = getelementptr inbounds [9 x i8*], [9 x i8*]* %15, i64 0, i64 0
%486 = call i8* @code_table_4_230_location(i8** %485)
store i8* %486, i8** %17
%487 = load i8*, i8** %16
%488 = icmp ne i8* %487, null
br i1 %488, label %489, label %501
489: ; preds = %482
%490 = load i8*, i8** %17
%491 = icmp ne i8* %490, null
br i1 %491, label %492, label %501
492: ; preds = %489
%493 = load i8*, i8** %16
%494 = getelementptr inbounds i8, i8* %493, i32 1
store i8* %494, i8** %16
%495 = load i8, i8* %493
%496 = load i8*, i8** %17
%497 = getelementptr inbounds i8, i8* %496, i32 1
store i8* %497, i8** %17
store i8 %495, i8* %496
%498 = load i8*, i8** %16
%499 = load i8, i8* %498
%500 = load i8*, i8** %17
store i8 %499, i8* %500
br label %501
501: ; preds = %492, %489, %482
%502 = load i8**, i8*** %6
%503 = call i8* @code_table_4_233_location(i8** %502)
store i8* %503, i8** %16
%504 = getelementptr inbounds [9 x i8*], [9 x i8*]* %15, i64 0, i64 0
%505 = call i8* @code_table_4_233_location(i8** %504)
store i8* %505, i8** %17
%506 = load i8*, i8** %16
%507 = icmp ne i8* %506, null
br i1 %507, label %508, label %520
508: ; preds = %501
%509 = load i8*, i8** %17
%510 = icmp ne i8* %509, null
br i1 %510, label %511, label %520
511: ; preds = %508
%512 = load i8*, i8** %16
%513 = getelementptr inbounds i8, i8* %512, i32 1
store i8* %513, i8** %16
%514 = load i8, i8* %512
%515 = load i8*, i8** %17
%516 = getelementptr inbounds i8, i8* %515, i32 1
store i8* %516, i8** %17
store i8 %514, i8* %515
%517 = load i8*, i8** %16
%518 = load i8, i8* %517
%519 = load i8*, i8** %17
store i8 %518, i8* %519
br label %520
520: ; preds = %511, %508, %501
%521 = load i8**, i8*** %6
%522 = call i8* @code_table_4_91_location(i8** %521)
store i8* %522, i8** %16
%523 = getelementptr inbounds [9 x i8*], [9 x i8*]* %15, i64 0, i64 0
%524 = call i8* @code_table_4_91_location(i8** %523)
store i8* %524, i8** %17
%525 = load i8*, i8** %16
%526 = icmp ne i8* %525, null
br i1 %526, label %527, label %548
527: ; preds = %520
%528 = load i8*, i8** %17
%529 = icmp ne i8* %528, null
br i1 %529, label %530, label %548
530: ; preds = %527
store i32 0, i32* %11
br label %531
531: ; preds = %544, %530
%532 = load i32, i32* %11
%533 = icmp slt i32 %532, 11
br i1 %533, label %534, label %547
534: ; preds = %531
%535 = load i8*, i8** %16
%536 = load i32, i32* %11
%537 = sext i32 %536 to i64
%538 = getelementptr inbounds i8, i8* %535, i64 %537
%539 = load i8, i8* %538
%540 = load i8*, i8** %17
%541 = load i32, i32* %11
%542 = sext i32 %541 to i64
%543 = getelementptr inbounds i8, i8* %540, i64 %542
store i8 %539, i8* %543
br label %544
544: ; preds = %534
%545 = load i32, i32* %11
%546 = add nsw i32 %545, 1
store i32 %546, i32* %11
br label %531
547: ; preds = %531
br label %548
548: ; preds = %547, %527, %520
br label %549
549: ; preds = %548, %88
ret i32 0
}

LLVM IR (-O2):
@.str = [41 x i8] c"set_pdt: maximum pdt len is %d wanted %d\00"
define i32 @new_pdt(i8** %0, i8* %1, i32 %2, i32 %3, i32 %4) {
%6 = bitcast i8** %0 to i8*
%7 = alloca [9 x i8*]
%8 = bitcast [9 x i8*]* %7 to i8*
%9 = getelementptr inbounds [9 x i8*], [9 x i8*]* %7, i64 0, i64 4
store i8* %1, i8** %9
%10 = tail call i32 @stat_proc_n_time_ranges_index(i8** %0)
%11 = icmp sgt i32 %10, -1
br i1 %11, label %12, label %19
12: ; preds = %5
%13 = getelementptr inbounds i8*, i8** %0, i64 4
%14 = load i8*, i8** %13
%15 = zext i32 %10 to i64
%16 = getelementptr inbounds i8, i8* %14, i64 %15
%17 = load i8, i8* %16
%18 = zext i8 %17 to i32
br label %19
19: ; preds = %5, %12
%20 = phi i32 [ %18, %12 ], [ 0, %5 ]
%21 = icmp slt i32 %3, 1
br i1 %21, label %22, label %31
22: ; preds = %19
%23 = tail call i32 @smallest_pdt_len(i32 %2)
%24 = icmp ne i32 %4, 0
%25 = icmp ne i32 %20, 0
%26 = select i1 %24, i1 %25, i1 false
br i1 %26, label %27, label %31
27: ; preds = %22
%28 = mul nuw nsw i32 %20, 12
%29 = add nsw i32 %28, -12
%30 = add nsw i32 %29, %23
br label %31
31: ; preds = %22, %27, %19
%32 = phi i32 [ %30, %27 ], [ %23, %22 ], [ %3, %19 ]
%33 = icmp sgt i32 %32, 500
br i1 %33, label %34, label %36
34: ; preds = %31
%35 = tail call i32 @fatal_error_ii(i8* getelementptr inbounds ([41 x i8], [41 x i8]* @.str, i64 0, i64 0), i32 500, i32 %32)
br label %38
36: ; preds = %31
%37 = icmp sgt i32 %32, 9
br i1 %37, label %38, label %42
38: ; preds = %34, %36
%39 = getelementptr i8, i8* %1, i64 9
%40 = add nsw i32 %32, -9
%41 = zext i32 %40 to i64
br label %42
42: ; preds = %38, %36
%43 = tail call i32 @uint_char(i32 %32, i8* %1)
%44 = getelementptr inbounds i8, i8* %1, i64 4
store i8 4, i8* %44
%45 = getelementptr inbounds i8, i8* %1, i64 5
%46 = tail call i32 @uint2_char(i32 0, i8* %45)
%47 = getelementptr inbounds i8, i8* %1, i64 7
%48 = tail call i32 @uint2_char(i32 %2, i8* %47)
%49 = icmp eq i32 %4, 0
br i1 %49, label %500, label %50
50: ; preds = %42
store i8* %1, i8** %9
%51 = tail call i32 @stat_proc_n_time_ranges_index(i8** %0)
%52 = icmp sgt i32 %51, -1
br i1 %52, label %53, label %195
53: ; preds = %50
%54 = getelementptr inbounds [9 x i8*], [9 x i8*]* %7, i64 0, i64 0
%55 = call i32 @stat_proc_n_time_ranges_index(i8** %54)
%56 = icmp sgt i32 %55, -1
br i1 %56, label %57, label %62
57: ; preds = %53
%58 = call i32 @smallest_pdt_len(i32 %2)
%59 = sub nsw i32 %32, %58
%60 = sdiv i32 %59, 12
%61 = add nsw i32 %60, 1
br label %62
62: ; preds = %53, %57
%63 = phi i32 [ %61, %57 ], [ 0, %53 ]
%64 = icmp sgt i32 %20, %63
br i1 %64, label %195, label %65
65: ; preds = %62
%66 = call i8* @stat_proc_verf_time_location(i8** %0)
%67 = call i8* @stat_proc_verf_time_location(i8** %54)
%68 = mul nuw nsw i32 %20, 12
%69 = add nuw nsw i32 %68, 12
%70 = zext i32 %69 to i64
%71 = getelementptr i8, i8* %67, i64 %70
%72 = getelementptr i8, i8* %66, i64 %70
%73 = icmp ult i8* %67, %72
%74 = icmp ult i8* %66, %71
%75 = and i1 %73, %74
br i1 %75, label %174, label %76
76: ; preds = %65
%77 = icmp ult i32 %68, 20
br i1 %77, label %160, label %78
78: ; preds = %76
%79 = and i64 %70, 8160
%80 = add nsw i64 %79, -32
%81 = lshr exact i64 %80, 5
%82 = add nuw nsw i64 %81, 1
%83 = and i64 %82, 3
%84 = icmp ult i64 %80, 96
br i1 %84, label %136, label %85
85: ; preds = %78
%86 = and i64 %82, 1152921504606846972
br label %87
87: ; preds = %87, %85
%88 = phi i64 [ 0, %85 ], [ %133, %87 ]
%89 = phi i64 [ 0, %85 ], [ %134, %87 ]
%90 = getelementptr inbounds i8, i8* %66, i64 %88
%91 = bitcast i8* %90 to <16 x i8>*
%92 = load <16 x i8>, <16 x i8>* %91
%93 = getelementptr inbounds i8, i8* %90, i64 16
%94 = bitcast i8* %93 to <16 x i8>*
%95 = load <16 x i8>, <16 x i8>* %94
%96 = getelementptr inbounds i8, i8* %67, i64 %88
%97 = bitcast i8* %96 to <16 x i8>*
store <16 x i8> %92, <16 x i8>* %97
%98 = getelementptr inbounds i8, i8* %96, i64 16
%99 = bitcast i8* %98 to <16 x i8>*
store <16 x i8> %95, <16 x i8>* %99
%100 = or i64 %88, 32
%101 = getelementptr inbounds i8, i8* %66, i64 %100
%102 = bitcast i8* %101 to <16 x i8>*
%103 = load <16 x i8>, <16 x i8>* %102
%104 = getelementptr inbounds i8, i8* %101, i64 16
%105 = bitcast i8* %104 to <16 x i8>*
%106 = load <16 x i8>, <16 x i8>* %105
%107 = getelementptr inbounds i8, i8* %67, i64 %100
%108 = bitcast i8* %107 to <16 x i8>*
store <16 x i8> %103, <16 x i8>* %108
%109 = getelementptr inbounds i8, i8* %107, i64 16
%110 = bitcast i8* %109 to <16 x i8>*
store <16 x i8> %106, <16 x i8>* %110
%111 = or i64 %88, 64
%112 = getelementptr inbounds i8, i8* %66, i64 %111
%113 = bitcast i8* %112 to <16 x i8>*
%114 = load <16 x i8>, <16 x i8>* %113
%115 = getelementptr inbounds i8, i8* %112, i64 16
%116 = bitcast i8* %115 to <16 x i8>*
%117 = load <16 x i8>, <16 x i8>* %116
%118 = getelementptr inbounds i8, i8* %67, i64 %111
%119 = bitcast i8* %118 to <16 x i8>*
store <16 x i8> %114, <16 x i8>* %119
%120 = getelementptr inbounds i8, i8* %118, i64 16
%121 = bitcast i8* %120 to <16 x i8>*
store <16 x i8> %117, <16 x i8>* %121
%122 = or i64 %88, 96
%123 = getelementptr inbounds i8, i8* %66, i64 %122
%124 = bitcast i8* %123 to <16 x i8>*
%125 = load <16 x i8>, <16 x i8>* %124
%126 = getelementptr inbounds i8, i8* %123, i64 16
%127 = bitcast i8* %126 to <16 x i8>*
%128 = load <16 x i8>, <16 x i8>* %127
%129 = getelementptr inbounds i8, i8* %67, i64 %122
%130 = bitcast i8* %129 to <16 x i8>*
store <16 x i8> %125, <16 x i8>* %130
%131 = getelementptr inbounds i8, i8* %129, i64 16
%132 = bitcast i8* %131 to <16 x i8>*
store <16 x i8> %128, <16 x i8>* %132
%133 = add nuw i64 %88, 128
%134 = add i64 %89, 4
%135 = icmp eq i64 %134, %86
br i1 %135, label %136, label %87
136: ; preds = %87, %78
%137 = phi i64 [ 0, %78 ], [ %133, %87 ]
%138 = icmp eq i64 %83, 0
br i1 %138, label %155, label %139
139: ; preds = %136, %139
%140 = phi i64 [ %152, %139 ], [ %137, %136 ]
%141 = phi i64 [ %153, %139 ], [ 0, %136 ]
%142 = getelementptr inbounds i8, i8* %66, i64 %140
%143 = bitcast i8* %142 to <16 x i8>*
%144 = load <16 x i8>, <16 x i8>* %143
%145 = getelementptr inbounds i8, i8* %142, i64 16
%146 = bitcast i8* %145 to <16 x i8>*
%147 = load <16 x i8>, <16 x i8>* %146
%148 = getelementptr inbounds i8, i8* %67, i64 %140
%149 = bitcast i8* %148 to <16 x i8>*
store <16 x i8> %144, <16 x i8>* %149
%150 = getelementptr inbounds i8, i8* %148, i64 16
%151 = bitcast i8* %150 to <16 x i8>*
store <16 x i8> %147, <16 x i8>* %151
%152 = add nuw i64 %140, 32
%153 = add i64 %141, 1
%154 = icmp eq i64 %153, %83
br i1 %154, label %155, label %139
155: ; preds = %139, %136
%156 = icmp eq i64 %79, %70
br i1 %156, label %195, label %157
157: ; preds = %155
%158 = and i64 %70, 24
%159 = icmp eq i64 %158, 0
br i1 %159, label %174, label %160
160: ; preds = %76, %157
%161 = phi i64 [ %79, %157 ], [ 0, %76 ]
%162 = and i64 %70, 8184
br label %163
163: ; preds = %163, %160
%164 = phi i64 [ %161, %160 ], [ %170, %163 ]
%165 = getelementptr inbounds i8, i8* %66, i64 %164
%166 = bitcast i8* %165 to <8 x i8>*
%167 = load <8 x i8>, <8 x i8>* %166
%168 = getelementptr inbounds i8, i8* %67, i64 %164
%169 = bitcast i8* %168 to <8 x i8>*
store <8 x i8> %167, <8 x i8>* %169
%170 = add nuw i64 %164, 8
%171 = icmp eq i64 %170, %162
br i1 %171, label %172, label %163
172: ; preds = %163
%173 = icmp eq i64 %162, %70
br i1 %173, label %195, label %174
174: ; preds = %65, %157, %172
%175 = phi i64 [ 0, %65 ], [ %79, %157 ], [ %162, %172 ]
br label %176
176: ; preds = %176, %174
%177 = phi i64 [ %175, %174 ], [ %193, %176 ]
%178 = getelementptr inbounds i8, i8* %66, i64 %177
%179 = load i8, i8* %178
%180 = getelementptr inbounds i8, i8* %67, i64 %177
store i8 %179, i8* %180
%181 = or i64 %177, 1
%182 = getelementptr inbounds i8, i8* %66, i64 %181
%183 = load i8, i8* %182
%184 = getelementptr inbounds i8, i8* %67, i64 %181
store i8 %183, i8* %184
%185 = or i64 %177, 2
%186 = getelementptr inbounds i8, i8* %66, i64 %185
%187 = load i8, i8* %186
%188 = getelementptr inbounds i8, i8* %67, i64 %185
store i8 %187, i8* %188
%189 = or i64 %177, 3
%190 = getelementptr inbounds i8, i8* %66, i64 %189
%191 = load i8, i8* %190
%192 = getelementptr inbounds i8, i8* %67, i64 %189
store i8 %191, i8* %192
%193 = add nuw nsw i64 %177, 4
%194 = icmp eq i64 %193, %70
br i1 %194, label %195, label %176
195: ; preds = %176, %155, %172, %62, %50
%196 = getelementptr inbounds i8*, i8** %0, i64 4
%197 = load i8*, i8** %196
%198 = getelementptr inbounds i8, i8* %197, i64 9
%199 = load i8, i8* %198
%200 = getelementptr inbounds i8, i8* %1, i64 9
store i8 %199, i8* %200
%201 = load i8*, i8** %196
%202 = getelementptr inbounds i8, i8* %201, i64 10
%203 = load i8, i8* %202
%204 = getelementptr inbounds i8, i8* %1, i64 10
store i8 %203, i8* %204
%205 = call i8* @code_table_4_3_location(i8** %0)
%206 = getelementptr inbounds [9 x i8*], [9 x i8*]* %7, i64 0, i64 0
%207 = call i8* @code_table_4_3_location(i8** %206)
%208 = icmp ne i8* %205, null
%209 = icmp ne i8* %207, null
%210 = select i1 %208, i1 %209, i1 false
br i1 %210, label %211, label %213
211: ; preds = %195
%212 = load i8, i8* %205
store i8 %212, i8* %207
br label %213
213: ; preds = %211, %195
%214 = call i8* @code_table_4_4_location(i8** %0)
%215 = call i8* @code_table_4_4_location(i8** %206)
%216 = icmp ne i8* %214, null
%217 = icmp ne i8* %215, null
%218 = select i1 %216, i1 %217, i1 false
br i1 %218, label %219, label %233
219: ; preds = %213
%220 = load i8, i8* %214
store i8 %220, i8* %215
%221 = getelementptr inbounds i8, i8* %214, i64 1
%222 = load i8, i8* %221
%223 = getelementptr inbounds i8, i8* %215, i64 1
store i8 %222, i8* %223
%224 = getelementptr inbounds i8, i8* %214, i64 2
%225 = load i8, i8* %224
%226 = getelementptr inbounds i8, i8* %215, i64 2
store i8 %225, i8* %226
%227 = getelementptr inbounds i8, i8* %214, i64 3
%228 = load i8, i8* %227
%229 = getelementptr inbounds i8, i8* %215, i64 3
store i8 %228, i8* %229
%230 = getelementptr inbounds i8, i8* %214, i64 4
%231 = load i8, i8* %230
%232 = getelementptr inbounds i8, i8* %215, i64 4
store i8 %231, i8* %232
br label %233
233: ; preds = %219, %213
%234 = call i8* @code_table_4_5a_location(i8** %0)
%235 = call i8* @code_table_4_5a_location(i8** %206)
%236 = icmp ne i8* %234, null
%237 = icmp ne i8* %235, null
%238 = select i1 %236, i1 %237, i1 false
br i1 %238, label %239, label %256
239: ; preds = %233
%240 = load i8, i8* %234
store i8 %240, i8* %235
%241 = getelementptr inbounds i8, i8* %234, i64 1
%242 = load i8, i8* %241
%243 = getelementptr inbounds i8, i8* %235, i64 1
store i8 %242, i8* %243
%244 = getelementptr inbounds i8, i8* %234, i64 2
%245 = load i8, i8* %244
%246 = getelementptr inbounds i8, i8* %235, i64 2
store i8 %245, i8* %246
%247 = getelementptr inbounds i8, i8* %234, i64 3
%248 = load i8, i8* %247
%249 = getelementptr inbounds i8, i8* %235, i64 3
store i8 %248, i8* %249
%250 = getelementptr inbounds i8, i8* %234, i64 4
%251 = load i8, i8* %250
%252 = getelementptr inbounds i8, i8* %235, i64 4
store i8 %251, i8* %252
%253 = getelementptr inbounds i8, i8* %234, i64 5
%254 = load i8, i8* %253
%255 = getelementptr inbounds i8, i8* %235, i64 5
store i8 %254, i8* %255
br label %256
256: ; preds = %239, %233
%257 = call i8* @code_table_4_5b_location(i8** %0)
%258 = call i8* @code_table_4_5b_location(i8** %206)
%259 = icmp ne i8* %257, null
%260 = icmp ne i8* %258, null
%261 = select i1 %259, i1 %260, i1 false
br i1 %261, label %262, label %279
262: ; preds = %256
%263 = load i8, i8* %257
store i8 %263, i8* %258
%264 = getelementptr inbounds i8, i8* %257, i64 1
%265 = load i8, i8* %264
%266 = getelementptr inbounds i8, i8* %258, i64 1
store i8 %265, i8* %266
%267 = getelementptr inbounds i8, i8* %257, i64 2
%268 = load i8, i8* %267
%269 = getelementptr inbounds i8, i8* %258, i64 2
store i8 %268, i8* %269
%270 = getelementptr inbounds i8, i8* %257, i64 3
%271 = load i8, i8* %270
%272 = getelementptr inbounds i8, i8* %258, i64 3
store i8 %271, i8* %272
%273 = getelementptr inbounds i8, i8* %257, i64 4
%274 = load i8, i8* %273
%275 = getelementptr inbounds i8, i8* %258, i64 4
store i8 %274, i8* %275
%276 = getelementptr inbounds i8, i8* %257, i64 5
%277 = load i8, i8* %276
%278 = getelementptr inbounds i8, i8* %258, i64 5
store i8 %277, i8* %278
br label %279
279: ; preds = %262, %256
%280 = call i8* @code_table_4_6_location(i8** %0)
%281 = call i8* @code_table_4_6_location(i8** %206)
%282 = icmp ne i8* %280, null
%283 = icmp ne i8* %281, null
%284 = select i1 %282, i1 %283, i1 false
br i1 %284, label %285, label %287
285: ; preds = %279
%286 = load i8, i8* %280
store i8 %286, i8* %281
br label %287
287: ; preds = %285, %279
%288 = call i8* @code_table_4_7_location(i8** %0)
%289 = call i8* @code_table_4_7_location(i8** %206)
%290 = icmp ne i8* %288, null
%291 = icmp ne i8* %289, null
%292 = select i1 %290, i1 %291, i1 false
br i1 %292, label %293, label %295
293: ; preds = %287
%294 = load i8, i8* %288
store i8 %294, i8* %289
br label %295
295: ; preds = %293, %287
%296 = call i8* @code_table_4_8_location(i8** %0)
%297 = call i8* @code_table_4_8_location(i8** %206)
%298 = icmp ne i8* %296, null
%299 = icmp ne i8* %297, null
%300 = select i1 %298, i1 %299, i1 false
br i1 %300, label %301, label %303
301: ; preds = %295
%302 = load i8, i8* %296
store i8 %302, i8* %297
br label %303
303: ; preds = %301, %295
%304 = call i8* @perturbation_number_location(i8** %0)
%305 = call i8* @perturbation_number_location(i8** %206)
%306 = icmp ne i8* %304, null
%307 = icmp ne i8* %305, null
%308 = select i1 %306, i1 %307, i1 false
br i1 %308, label %309, label %311
309: ; preds = %303
%310 = load i8, i8* %304
store i8 %310, i8* %305
br label %311
311: ; preds = %309, %303
%312 = call i8* @number_of_forecasts_in_the_ensemble_location(i8** %0)
%313 = call i8* @number_of_forecasts_in_the_ensemble_location(i8** %206)
%314 = icmp ne i8* %312, null
%315 = icmp ne i8* %313, null
%316 = select i1 %314, i1 %315, i1 false
br i1 %316, label %317, label %319
317: ; preds = %311
%318 = load i8, i8* %312
store i8 %318, i8* %313
br label %319
319: ; preds = %317, %311
%320 = call i8* @code_table_4_9_location(i8** %0)
%321 = call i8* @code_table_4_9_location(i8** %206)
%322 = icmp ne i8* %320, null
%323 = icmp ne i8* %321, null
%324 = select i1 %322, i1 %323, i1 false
br i1 %324, label %325, label %363
325: ; preds = %319
%326 = getelementptr inbounds i8, i8* %320, i64 -2
%327 = load i8, i8* %326
%328 = getelementptr inbounds i8, i8* %321, i64 -2
store i8 %327, i8* %328
%329 = getelementptr inbounds i8, i8* %320, i64 -1
%330 = load i8, i8* %329
%331 = getelementptr inbounds i8, i8* %321, i64 -1
store i8 %330, i8* %331
%332 = load i8, i8* %320
store i8 %332, i8* %321
%333 = getelementptr inbounds i8, i8* %320, i64 1
%334 = load i8, i8* %333
%335 = getelementptr inbounds i8, i8* %321, i64 1
store i8 %334, i8* %335
%336 = getelementptr inbounds i8, i8* %320, i64 2
%337 = load i8, i8* %336
%338 = getelementptr inbounds i8, i8* %321, i64 2
store i8 %337, i8* %338
%339 = getelementptr inbounds i8, i8* %320, i64 3
%340 = load i8, i8* %339
%341 = getelementptr inbounds i8, i8* %321, i64 3
store i8 %340, i8* %341
%342 = getelementptr inbounds i8, i8* %320, i64 4
%343 = load i8, i8* %342
%344 = getelementptr inbounds i8, i8* %321, i64 4
store i8 %343, i8* %344
%345 = getelementptr inbounds i8, i8* %320, i64 5
%346 = load i8, i8* %345
%347 = getelementptr inbounds i8, i8* %321, i64 5
store i8 %346, i8* %347
%348 = getelementptr inbounds i8, i8* %320, i64 6
%349 = load i8, i8* %348
%350 = getelementptr inbounds i8, i8* %321, i64 6
store i8 %349, i8* %350
%351 = getelementptr inbounds i8, i8* %320, i64 7
%352 = load i8, i8* %351
%353 = getelementptr inbounds i8, i8* %321, i64 7
store i8 %352, i8* %353
%354 = getelementptr inbounds i8, i8* %320, i64 8
%355 = load i8, i8* %354
%356 = getelementptr inbounds i8, i8* %321, i64 8
store i8 %355, i8* %356
%357 = getelementptr inbounds i8, i8* %320, i64 9
%358 = load i8, i8* %357
%359 = getelementptr inbounds i8, i8* %321, i64 9
store i8 %358, i8* %359
%360 = getelementptr inbounds i8, i8* %320, i64 10
%361 = load i8, i8* %360
%362 = getelementptr inbounds i8, i8* %321, i64 10
store i8 %361, i8* %362
br label %363
363: ; preds = %325, %319
%364 = call i8* @background_generating_process_identifier_location(i8** %0)
%365 = call i8* @background_generating_process_identifier_location(i8** %206)
%366 = icmp ne i8* %364, null
%367 = icmp ne i8* %365, null
%368 = select i1 %366, i1 %367, i1 false
br i1 %368, label %369, label %371
369: ; preds = %363
%370 = load i8, i8* %364
store i8 %370, i8* %365
br label %371
371: ; preds = %369, %363
%372 = call i8* @analysis_or_forecast_generating_process_identifier_location(i8** %0)
%373 = call i8* @analysis_or_forecast_generating_process_identifier_location(i8** %206)
%374 = icmp ne i8* %372, null
%375 = icmp ne i8* %373, null
%376 = select i1 %374, i1 %375, i1 false
br i1 %376, label %377, label %379
377: ; preds = %371
%378 = load i8, i8* %372
store i8 %378, i8* %373
br label %379
379: ; preds = %377, %371
%380 = call i8* @hours_of_observational_data_cutoff_after_reference_time_location(i8** %0)
%381 = call i8* @hours_of_observational_data_cutoff_after_reference_time_location(i8** %206)
%382 = icmp ne i8* %380, null
%383 = icmp ne i8* %381, null
%384 = select i1 %382, i1 %383, i1 false
br i1 %384, label %385, label %390
385: ; preds = %379
%386 = getelementptr inbounds i8, i8* %380, i64 1
%387 = load i8, i8* %380
%388 = getelementptr inbounds i8, i8* %381, i64 1
store i8 %387, i8* %381
%389 = load i8, i8* %386
store i8 %389, i8* %388
br label %390
390: ; preds = %385, %379
%391 = call i8* @minutes_of_observational_data_cutoff_after_reference_time_location(i8** %0)
%392 = call i8* @minutes_of_observational_data_cutoff_after_reference_time_location(i8** %206)
%393 = icmp ne i8* %391, null
%394 = icmp ne i8* %392, null
%395 = select i1 %393, i1 %394, i1 false
br i1 %395, label %396, label %398
396: ; preds = %390
%397 = load i8, i8* %391
store i8 %397, i8* %392
br label %398
398: ; preds = %396, %390
%399 = call i8* @observation_generating_process_identifier_location(i8** %0)
%400 = call i8* @observation_generating_process_identifier_location(i8** %206)
%401 = icmp ne i8* %399, null
%402 = icmp ne i8* %400, null
%403 = select i1 %401, i1 %402, i1 false
br i1 %403, label %404, label %406
404: ; preds = %398
%405 = load i8, i8* %399
store i8 %405, i8* %400
br label %406
406: ; preds = %404, %398
%407 = call i8* @year_of_model_version_date_location(i8** %0)
%408 = call i8* @year_of_model_version_date_location(i8** %206)
%409 = icmp ne i8* %407, null
%410 = icmp ne i8* %408, null
%411 = select i1 %409, i1 %410, i1 false
br i1 %411, label %412, label %432
412: ; preds = %406
%413 = load i8, i8* %407
store i8 %413, i8* %408
%414 = getelementptr inbounds i8, i8* %407, i64 1
%415 = load i8, i8* %414
%416 = getelementptr inbounds i8, i8* %408, i64 1
store i8 %415, i8* %416
%417 = getelementptr inbounds i8, i8* %407, i64 2
%418 = load i8, i8* %417
%419 = getelementptr inbounds i8, i8* %408, i64 2
store i8 %418, i8* %419
%420 = getelementptr inbounds i8, i8* %407, i64 3
%421 = load i8, i8* %420
%422 = getelementptr inbounds i8, i8* %408, i64 3
store i8 %421, i8* %422
%423 = getelementptr inbounds i8, i8* %407, i64 4
%424 = load i8, i8* %423
%425 = getelementptr inbounds i8, i8* %408, i64 4
store i8 %424, i8* %425
%426 = getelementptr inbounds i8, i8* %407, i64 5
%427 = load i8, i8* %426
%428 = getelementptr inbounds i8, i8* %408, i64 5
store i8 %427, i8* %428
%429 = getelementptr inbounds i8, i8* %407, i64 6
%430 = load i8, i8* %429
%431 = getelementptr inbounds i8, i8* %408, i64 6
store i8 %430, i8* %431
br label %432
432: ; preds = %412, %406
%433 = call i8* @percentile_value_location(i8** %0)
%434 = call i8* @percentile_value_location(i8** %206)
%435 = icmp ne i8* %433, null
%436 = icmp ne i8* %434, null
%437 = select i1 %435, i1 %436, i1 false
br i1 %437, label %438, label %440
438: ; preds = %432
%439 = load i8, i8* %433
store i8 %439, i8* %434
br label %440
440: ; preds = %438, %432
%441 = call i8* @code_table_4_230_location(i8** %0)
%442 = call i8* @code_table_4_230_location(i8** %206)
%443 = icmp ne i8* %441, null
%444 = icmp ne i8* %442, null
%445 = select i1 %443, i1 %444, i1 false
br i1 %445, label %446, label %451
446: ; preds = %440
%447 = getelementptr inbounds i8, i8* %441, i64 1
%448 = load i8, i8* %441
%449 = getelementptr inbounds i8, i8* %442, i64 1
store i8 %448, i8* %442
%450 = load i8, i8* %447
store i8 %450, i8* %449
br label %451
451: ; preds = %446, %440
%452 = call i8* @code_table_4_233_location(i8** %0)
%453 = call i8* @code_table_4_233_location(i8** %206)
%454 = icmp ne i8* %452, null
%455 = icmp ne i8* %453, null
%456 = select i1 %454, i1 %455, i1 false
br i1 %456, label %457, label %462
457: ; preds = %451
%458 = getelementptr inbounds i8, i8* %452, i64 1
%459 = load i8, i8* %452
%460 = getelementptr inbounds i8, i8* %453, i64 1
store i8 %459, i8* %453
%461 = load i8, i8* %458
store i8 %461, i8* %460
br label %462
462: ; preds = %457, %451
%463 = call i8* @code_table_4_91_location(i8** %0)
%464 = call i8* @code_table_4_91_location(i8** %206)
%465 = icmp ne i8* %463, null
%466 = icmp ne i8* %464, null
%467 = select i1 %465, i1 %466, i1 false
br i1 %467, label %468, label %500
468: ; preds = %462
%469 = load i8, i8* %463
store i8 %469, i8* %464
%470 = getelementptr inbounds i8, i8* %463, i64 1
%471 = load i8, i8* %470
%472 = getelementptr inbounds i8, i8* %464, i64 1
store i8 %471, i8* %472
%473 = getelementptr inbounds i8, i8* %463, i64 2
%474 = load i8, i8* %473
%475 = getelementptr inbounds i8, i8* %464, i64 2
store i8 %474, i8* %475
%476 = getelementptr inbounds i8, i8* %463, i64 3
%477 = load i8, i8* %476
%478 = getelementptr inbounds i8, i8* %464, i64 3
store i8 %477, i8* %478
%479 = getelementptr inbounds i8, i8* %463, i64 4
%480 = load i8, i8* %479
%481 = getelementptr inbounds i8, i8* %464, i64 4
store i8 %480, i8* %481
%482 = getelementptr inbounds i8, i8* %463, i64 5
%483 = load i8, i8* %482
%484 = getelementptr inbounds i8, i8* %464, i64 5
store i8 %483, i8* %484
%485 = getelementptr inbounds i8, i8* %463, i64 6
%486 = load i8, i8* %485
%487 = getelementptr inbounds i8, i8* %464, i64 6
store i8 %486, i8* %487
%488 = getelementptr inbounds i8, i8* %463, i64 7
%489 = load i8, i8* %488
%490 = getelementptr inbounds i8, i8* %464, i64 7
store i8 %489, i8* %490
%491 = getelementptr inbounds i8, i8* %463, i64 8
%492 = load i8, i8* %491
%493 = getelementptr inbounds i8, i8* %464, i64 8
store i8 %492, i8* %493
%494 = getelementptr inbounds i8, i8* %463, i64 9
%495 = load i8, i8* %494
%496 = getelementptr inbounds i8, i8* %464, i64 9
store i8 %495, i8* %496
%497 = getelementptr inbounds i8, i8* %463, i64 10
%498 = load i8, i8* %497
%499 = getelementptr inbounds i8, i8* %464, i64 10
store i8 %498, i8* %499
br label %500
500: ; preds = %468, %462, %42
ret i32 0
}