int mtv_signal_quality_info(void *hDevice, unsigned char *Lock,
                            unsigned char *CN, unsigned int *ui32BER_A,
                            unsigned int *ui32PER_A, unsigned int *ui32BER_B,
                            unsigned int *ui32PER_B, unsigned int *ui32BER_C,
                            unsigned int *ui32PER_C, int *i32RSSI,
                            unsigned int *ui32Quality,
                            unsigned int *ui32Antlvl) {
  unsigned char mod_info, fd;
  int res;
  struct dm_st {
    unsigned char start;
    signed char rssi;
    unsigned char sync_0;
    unsigned char sync_1;
    unsigned char fec_on;
    unsigned char fec_layer;
    unsigned char wscn;
    unsigned char reserved;
    unsigned short vit_a_ber_rxd_rsps;
    unsigned short vit_a_ber_err_rsps;
    unsigned int vit_a_ber_err_bits;
    unsigned short vit_b_ber_rxd_rsps;
    unsigned short vit_b_ber_err_rsps;
    unsigned int vit_b_ber_err_bits;
    unsigned short vit_c_ber_rxd_rsps;
    unsigned short vit_c_ber_err_rsps;
    unsigned int vit_c_ber_err_bits;
    unsigned short reserved0;
    unsigned short reserved1;
    unsigned int reserved2;
    unsigned int dmp_a_ber_rxd_bits;
    unsigned int dmp_a_ber_err_bits;
    unsigned int dmp_b_ber_rxd_bits;
    unsigned int dmp_b_ber_err_bits;
    unsigned int dmp_c_ber_rxd_bits;
    unsigned int dmp_c_ber_err_bits;
    unsigned int reserved3;
    unsigned int reserved4;
  } dm;
  res = BBM_BULK_READ(hDevice, 0xf000, (unsigned char *)&dm, sizeof(dm));
  if (res)
    print_log("mtv_signal_measure Error res : %d\n");
  if (dm.sync_1 & 0x02)
    *Lock = 1;
  else
    *Lock = 0;
  if (dm.vit_a_ber_rxd_rsps)
    *ui32PER_A =
        ((double)dm.vit_a_ber_err_rsps / (double)dm.vit_a_ber_rxd_rsps) * 10000;
  else
    *ui32PER_A = 10000;
  if (dm.vit_b_ber_rxd_rsps)
    *ui32PER_B =
        ((double)dm.vit_b_ber_err_rsps / (double)dm.vit_b_ber_rxd_rsps) * 10000;
  else
    *ui32PER_B = 10000;
  if (dm.vit_c_ber_rxd_rsps)
    *ui32PER_C =
        ((double)dm.vit_c_ber_err_rsps / (double)dm.vit_c_ber_rxd_rsps) * 10000;
  else
    *ui32PER_C = 10000;
  if (dm.dmp_a_ber_rxd_bits)
    *ui32BER_A =
        ((double)dm.dmp_a_ber_err_bits / (double)dm.dmp_a_ber_rxd_bits) * 10000;
  else
    *ui32BER_A = 10000;
  if (dm.dmp_b_ber_rxd_bits)
    *ui32BER_B =
        ((double)dm.dmp_b_ber_err_bits / (double)dm.dmp_b_ber_rxd_bits) * 10000;
  else
    *ui32BER_B = 10000;
  if (dm.dmp_c_ber_rxd_bits)
    *ui32BER_C =
        ((double)dm.dmp_c_ber_err_bits / (double)dm.dmp_c_ber_rxd_bits) * 10000;
  else
    *ui32BER_C = 10000;
  *i32RSSI = (signed char)dm.rssi;
  BBM_READ(hDevice, 0x4113, &mod_info);
  mod_info = mod_info & 0x70;
  BBM_READ(hDevice, 0x4066, &fd);
  if (fd < 50) {
    if (mod_info == 0x40) {
      if (dm.wscn <= 2)
        dm.wscn = 0;
      else if (dm.wscn == 3)
        dm.wscn = dm.wscn - 2;
      else if (dm.wscn == 4)
        dm.wscn = dm.wscn - 1;
    } else if (mod_info == 0x20) {
      if (dm.wscn >= 0 && dm.wscn <= 4)
        dm.wscn = 0;
      else if (dm.wscn >= 5 && dm.wscn <= 8)
        dm.wscn = dm.wscn - 5;
      else if (dm.wscn == 9)
        dm.wscn = dm.wscn - 4;
      else if (dm.wscn >= 10 && dm.wscn <= 11)
        dm.wscn = dm.wscn - 3;
      else if (dm.wscn == 12)
        dm.wscn = dm.wscn - 2;
      else if (dm.wscn == 13)
        dm.wscn = dm.wscn - 1;
    }
  } else if (fd < 90) {
    if (mod_info == 0x40) {
      if (dm.wscn <= 2)
        dm.wscn = 0;
      else if (dm.wscn == 3)
        dm.wscn = dm.wscn - 2;
      else if (dm.wscn == 4)
        dm.wscn = dm.wscn - 1;
      else if (dm.wscn <= 8)
        dm.wscn = dm.wscn + 1;
      else if (dm.wscn == 9)
        dm.wscn = dm.wscn + 2;
      else if (dm.wscn == 10)
        dm.wscn = dm.wscn + 3;
      else if (dm.wscn == 11)
        dm.wscn = dm.wscn + 4;
      else if (dm.wscn == 12)
        dm.wscn = dm.wscn + 2;
      else if (dm.wscn == 13)
        dm.wscn = dm.wscn + 3;
      else if (dm.wscn >= 14)
        dm.wscn = dm.wscn + 5;
    } else if (mod_info == 0x20) {
      if (dm.wscn >= 0 && dm.wscn <= 4)
        dm.wscn = 0;
      else if (dm.wscn >= 5 && dm.wscn <= 7)
        dm.wscn = dm.wscn - 4;
      else if (dm.wscn == 8)
        dm.wscn = dm.wscn - 3;
      else if (dm.wscn == 9)
        dm.wscn = dm.wscn - 2;
      else if (dm.wscn <= 12)
        dm.wscn = dm.wscn + 1;
      else if (dm.wscn == 13)
        dm.wscn = dm.wscn + 2;
      else if (dm.wscn == 14)
        dm.wscn = dm.wscn + 2;
      else if (dm.wscn >= 15)
        dm.wscn = dm.wscn + 3;
    }
  } else {
    if (mod_info == 0x40) {
      if (dm.wscn <= 2)
        dm.wscn = 0;
      else if (dm.wscn == 3)
        dm.wscn = dm.wscn - 2;
      else if (dm.wscn == 4)
        dm.wscn = dm.wscn - 1;
      else if (dm.wscn <= 7)
        dm.wscn = dm.wscn + 1;
      else if (dm.wscn == 8)
        dm.wscn = dm.wscn + 2;
      else if (dm.wscn == 9)
        dm.wscn = dm.wscn + 3;
      else if (dm.wscn == 10)
        dm.wscn = dm.wscn + 5;
      else if (dm.wscn == 11)
        dm.wscn = dm.wscn + 3;
      else if (dm.wscn == 12)
        dm.wscn = dm.wscn + 4;
      else if (dm.wscn == 13)
        dm.wscn = dm.wscn + 5;
      else if (dm.wscn >= 14)
        dm.wscn = dm.wscn + 10;
    } else if (mod_info == 0x20) {
      if (dm.wscn >= 0 && dm.wscn <= 5)
        dm.wscn = 0;
      else if (dm.wscn == 6)
        dm.wscn = dm.wscn - 5;
      else if (dm.wscn == 7)
        dm.wscn = dm.wscn - 3;
      else if (dm.wscn == 8)
        dm.wscn = dm.wscn - 2;
      else if (dm.wscn == 9)
        dm.wscn = dm.wscn - 1;
      else if (dm.wscn <= 11)
        dm.wscn = dm.wscn + 2;
      else if (dm.wscn == 12)
        dm.wscn = dm.wscn + 4;
      else if (dm.wscn >= 13)
        dm.wscn = dm.wscn + 7;
    }
  }
  *CN = dm.wscn;
  return 0;
}


x86 assembly (clang, -O0):
<mtv_signal_quality_info>:
push   %rbp
mov    %rsp,%rbp
sub    $0x80,%rsp
mov    0x38(%rbp),%rax
mov    0x30(%rbp),%rax
mov    0x28(%rbp),%rax
mov    0x20(%rbp),%rax
mov    0x18(%rbp),%rax
mov    0x10(%rbp),%rax
mov    %rdi,-0x8(%rbp)
mov    %rsi,-0x10(%rbp)
mov    %rdx,-0x18(%rbp)
mov    %rcx,-0x20(%rbp)
mov    %r8,-0x28(%rbp)
mov    %r9,-0x30(%rbp)
mov    -0x8(%rbp),%rdi
lea    -0x80(%rbp),%rdx
mov    $0xf000,%esi
mov    $0x48,%ecx
mov    $0x0,%al
call   1040 <BBM_BULK_READ@plt>
mov    %eax,-0x38(%rbp)
cmpl   $0x0,-0x38(%rbp)
je     119f <mtv_signal_quality_info+0x6f>
lea    0xe70(%rip),%rdi
mov    $0x0,%al
call   1030 <print_log@plt>
movzbl -0x7d(%rbp),%eax
and    $0x2,%eax
cmp    $0x0,%eax
je     11bb <mtv_signal_quality_info+0x8b>
mov    -0x10(%rbp),%rax
movb   $0x1,(%rax)
jmp    11c2 <mtv_signal_quality_info+0x92>
mov    -0x10(%rbp),%rax
movb   $0x0,(%rax)
cmpw   $0x0,-0x78(%rbp)
je     11ff <mtv_signal_quality_info+0xcf>
movzwl -0x76(%rbp),%eax
cvtsi2sd %eax,%xmm0
movzwl -0x78(%rbp),%eax
cvtsi2sd %eax,%xmm1
divsd  %xmm1,%xmm0
movsd  0xe17(%rip),%xmm1
mulsd  %xmm1,%xmm0
cvttsd2si %xmm0,%rax
mov    %eax,%ecx
mov    -0x28(%rbp),%rax
mov    %ecx,(%rax)
jmp    1209 <mtv_signal_quality_info+0xd9>
mov    -0x28(%rbp),%rax
movl   $0x2710,(%rax)
cmpw   $0x0,-0x70(%rbp)
je     1246 <mtv_signal_quality_info+0x116>
movzwl -0x6e(%rbp),%eax
cvtsi2sd %eax,%xmm0
movzwl -0x70(%rbp),%eax
cvtsi2sd %eax,%xmm1
divsd  %xmm1,%xmm0
movsd  0xdd0(%rip),%xmm1
mulsd  %xmm1,%xmm0
cvttsd2si %xmm0,%rax
mov    %eax,%ecx
mov    0x10(%rbp),%rax
mov    %ecx,(%rax)
jmp    1250 <mtv_signal_quality_info+0x120>
mov    0x10(%rbp),%rax
movl   $0x2710,(%rax)
cmpw   $0x0,-0x68(%rbp)
je     128d <mtv_signal_quality_info+0x15d>
movzwl -0x66(%rbp),%eax
cvtsi2sd %eax,%xmm0
movzwl -0x68(%rbp),%eax
cvtsi2sd %eax,%xmm1
divsd  %xmm1,%xmm0
movsd  0xd89(%rip),%xmm1
mulsd  %xmm1,%xmm0
cvttsd2si %xmm0,%rax
mov    %eax,%ecx
mov    0x20(%rbp),%rax
mov    %ecx,(%rax)
jmp    1297 <mtv_signal_quality_info+0x167>
mov    0x20(%rbp),%rax
movl   $0x2710,(%rax)
cmpl   $0x0,-0x58(%rbp)
je     12d3 <mtv_signal_quality_info+0x1a3>
mov    -0x58(%rbp),%eax
mov    -0x54(%rbp),%ecx
cvtsi2sd %rcx,%xmm0
cvtsi2sd %rax,%xmm1
divsd  %xmm1,%xmm0
movsd  0xd43(%rip),%xmm1
mulsd  %xmm1,%xmm0
cvttsd2si %xmm0,%rax
mov    %eax,%ecx
mov    -0x20(%rbp),%rax
mov    %ecx,(%rax)
jmp    12dd <mtv_signal_quality_info+0x1ad>
mov    -0x20(%rbp),%rax
movl   $0x2710,(%rax)
cmpl   $0x0,-0x50(%rbp)
je     1319 <mtv_signal_quality_info+0x1e9>
mov    -0x50(%rbp),%eax
mov    -0x4c(%rbp),%ecx
cvtsi2sd %rcx,%xmm0
cvtsi2sd %rax,%xmm1
divsd  %xmm1,%xmm0
movsd  0xcfd(%rip),%xmm1
mulsd  %xmm1,%xmm0
cvttsd2si %xmm0,%rax
mov    %eax,%ecx
mov    -0x30(%rbp),%rax
mov    %ecx,(%rax)
jmp    1323 <mtv_signal_quality_info+0x1f3>
mov    -0x30(%rbp),%rax
movl   $0x2710,(%rax)
cmpl   $0x0,-0x48(%rbp)
je     135f <mtv_signal_quality_info+0x22f>
mov    -0x48(%rbp),%eax
mov    -0x44(%rbp),%ecx
cvtsi2sd %rcx,%xmm0
cvtsi2sd %rax,%xmm1
divsd  %xmm1,%xmm0
movsd  0xcb7(%rip),%xmm1
mulsd  %xmm1,%xmm0
cvttsd2si %xmm0,%rax
mov    %eax,%ecx
mov    0x18(%rbp),%rax
mov    %ecx,(%rax)
jmp    1369 <mtv_signal_quality_info+0x239>
mov    0x18(%rbp),%rax
movl   $0x2710,(%rax)
movsbl -0x7f(%rbp),%ecx
mov    0x28(%rbp),%rax
mov    %ecx,(%rax)
mov    -0x8(%rbp),%rdi
mov    $0x4113,%esi
lea    -0x31(%rbp),%rdx
mov    $0x0,%al
call   1050 <BBM_READ@plt>
movzbl -0x31(%rbp),%eax
and    $0x70,%eax
mov    %al,-0x31(%rbp)
mov    -0x8(%rbp),%rdi
mov    $0x4066,%esi
lea    -0x32(%rbp),%rdx
mov    $0x0,%al
call   1050 <BBM_READ@plt>
movzbl -0x32(%rbp),%eax
cmp    $0x32,%eax
jge    1510 <mtv_signal_quality_info+0x3e0>
movzbl -0x31(%rbp),%eax
cmp    $0x40,%eax
jne    1417 <mtv_signal_quality_info+0x2e7>
movzbl -0x7a(%rbp),%eax
cmp    $0x2,%eax
jg     13d5 <mtv_signal_quality_info+0x2a5>
movb   $0x0,-0x7a(%rbp)
jmp    1412 <mtv_signal_quality_info+0x2e2>
movzbl -0x7a(%rbp),%eax
cmp    $0x3,%eax
jne    13f1 <mtv_signal_quality_info+0x2c1>
movzbl -0x7a(%rbp),%eax
sub    $0x2,%eax
mov    %al,-0x7a(%rbp)
jmp    140d <mtv_signal_quality_info+0x2dd>
movzbl -0x7a(%rbp),%eax
cmp    $0x4,%eax
jne    1408 <mtv_signal_quality_info+0x2d8>
movzbl -0x7a(%rbp),%eax
sub    $0x1,%eax
mov    %al,-0x7a(%rbp)
jmp    140d <mtv_signal_quality_info+0x2dd>
jmp    1412 <mtv_signal_quality_info+0x2e2>
jmp    150b <mtv_signal_quality_info+0x3db>
movzbl -0x31(%rbp),%eax
cmp    $0x20,%eax
jne    1506 <mtv_signal_quality_info+0x3d6>
movzbl -0x7a(%rbp),%eax
cmp    $0x0,%eax
jl     1447 <mtv_signal_quality_info+0x317>
movzbl -0x7a(%rbp),%eax
cmp    $0x4,%eax
jg     1447 <mtv_signal_quality_info+0x317>
movb   $0x0,-0x7a(%rbp)
jmp    1501 <mtv_signal_quality_info+0x3d1>
movzbl -0x7a(%rbp),%eax
cmp    $0x5,%eax
jl     1470 <mtv_signal_quality_info+0x340>
movzbl -0x7a(%rbp),%eax
cmp    $0x8,%eax
jg     1470 <mtv_signal_quality_info+0x340>
movzbl -0x7a(%rbp),%eax
sub    $0x5,%eax
mov    %al,-0x7a(%rbp)
jmp    14fc <mtv_signal_quality_info+0x3cc>
movzbl -0x7a(%rbp),%eax
cmp    $0x9,%eax
jne    148c <mtv_signal_quality_info+0x35c>
movzbl -0x7a(%rbp),%eax
sub    $0x4,%eax
mov    %al,-0x7a(%rbp)
jmp    14f7 <mtv_signal_quality_info+0x3c7>
movzbl -0x7a(%rbp),%eax
cmp    $0xa,%eax
jl     14b5 <mtv_signal_quality_info+0x385>
movzbl -0x7a(%rbp),%eax
cmp    $0xb,%eax
jg     14b5 <mtv_signal_quality_info+0x385>
movzbl -0x7a(%rbp),%eax
sub    $0x3,%eax
mov    %al,-0x7a(%rbp)
jmp    14f2 <mtv_signal_quality_info+0x3c2>
movzbl -0x7a(%rbp),%eax
cmp    $0xc,%eax
jne    14d1 <mtv_signal_quality_info+0x3a1>
movzbl -0x7a(%rbp),%eax
sub    $0x2,%eax
mov    %al,-0x7a(%rbp)
jmp    14ed <mtv_signal_quality_info+0x3bd>
movzbl -0x7a(%rbp),%eax
cmp    $0xd,%eax
jne    14e8 <mtv_signal_quality_info+0x3b8>
movzbl -0x7a(%rbp),%eax
sub    $0x1,%eax
mov    %al,-0x7a(%rbp)
jmp    14ed <mtv_signal_quality_info+0x3bd>
jmp    14f2 <mtv_signal_quality_info+0x3c2>
jmp    14f7 <mtv_signal_quality_info+0x3c7>
jmp    14fc <mtv_signal_quality_info+0x3cc>
jmp    1501 <mtv_signal_quality_info+0x3d1>
jmp    1506 <mtv_signal_quality_info+0x3d6>
jmp    150b <mtv_signal_quality_info+0x3db>
jmp    1a2a <mtv_signal_quality_info+0x8fa>
movzbl -0x32(%rbp),%eax
cmp    $0x5a,%eax
jge    1797 <mtv_signal_quality_info+0x667>
movzbl -0x31(%rbp),%eax
cmp    $0x40,%eax
jne    1669 <mtv_signal_quality_info+0x539>
movzbl -0x7a(%rbp),%eax
cmp    $0x2,%eax
jg     1540 <mtv_signal_quality_info+0x410>
movb   $0x0,-0x7a(%rbp)
jmp    1664 <mtv_signal_quality_info+0x534>
movzbl -0x7a(%rbp),%eax
cmp    $0x3,%eax
jne    155c <mtv_signal_quality_info+0x42c>
movzbl -0x7a(%rbp),%eax
sub    $0x2,%eax
mov    %al,-0x7a(%rbp)
jmp    165f <mtv_signal_quality_info+0x52f>
movzbl -0x7a(%rbp),%eax
cmp    $0x4,%eax
jne    1578 <mtv_signal_quality_info+0x448>
movzbl -0x7a(%rbp),%eax
sub    $0x1,%eax
mov    %al,-0x7a(%rbp)
jmp    165a <mtv_signal_quality_info+0x52a>
movzbl -0x7a(%rbp),%eax
cmp    $0x8,%eax
jg     1594 <mtv_signal_quality_info+0x464>
movzbl -0x7a(%rbp),%eax
add    $0x1,%eax
mov    %al,-0x7a(%rbp)
jmp    1655 <mtv_signal_quality_info+0x525>
movzbl -0x7a(%rbp),%eax
cmp    $0x9,%eax
jne    15b0 <mtv_signal_quality_info+0x480>
movzbl -0x7a(%rbp),%eax
add    $0x2,%eax
mov    %al,-0x7a(%rbp)
jmp    1650 <mtv_signal_quality_info+0x520>
movzbl -0x7a(%rbp),%eax
cmp    $0xa,%eax
jne    15cc <mtv_signal_quality_info+0x49c>
movzbl -0x7a(%rbp),%eax
add    $0x3,%eax
mov    %al,-0x7a(%rbp)
jmp    164b <mtv_signal_quality_info+0x51b>
movzbl -0x7a(%rbp),%eax
cmp    $0xb,%eax
jne    15e8 <mtv_signal_quality_info+0x4b8>
movzbl -0x7a(%rbp),%eax
add    $0x4,%eax
mov    %al,-0x7a(%rbp)
jmp    1646 <mtv_signal_quality_info+0x516>
movzbl -0x7a(%rbp),%eax
cmp    $0xc,%eax
jne    1604 <mtv_signal_quality_info+0x4d4>
movzbl -0x7a(%rbp),%eax
add    $0x2,%eax
mov    %al,-0x7a(%rbp)
jmp    1641 <mtv_signal_quality_info+0x511>
movzbl -0x7a(%rbp),%eax
cmp    $0xd,%eax
jne    1620 <mtv_signal_quality_info+0x4f0>
movzbl -0x7a(%rbp),%eax
add    $0x3,%eax
mov    %al,-0x7a(%rbp)
jmp    163c <mtv_signal_quality_info+0x50c>
movzbl -0x7a(%rbp),%eax
cmp    $0xe,%eax
jl     1637 <mtv_signal_quality_info+0x507>
movzbl -0x7a(%rbp),%eax
add    $0x5,%eax
mov    %al,-0x7a(%rbp)
jmp    163c <mtv_signal_quality_info+0x50c>
jmp    1641 <mtv_signal_quality_info+0x511>
jmp    1646 <mtv_signal_quality_info+0x516>
jmp    164b <mtv_signal_quality_info+0x51b>
jmp    1650 <mtv_signal_quality_info+0x520>
jmp    1655 <mtv_signal_quality_info+0x525>
jmp    165a <mtv_signal_quality_info+0x52a>
jmp    165f <mtv_signal_quality_info+0x52f>
jmp    1664 <mtv_signal_quality_info+0x534>
jmp    1792 <mtv_signal_quality_info+0x662>
movzbl -0x31(%rbp),%eax
cmp    $0x20,%eax
jne    178d <mtv_signal_quality_info+0x65d>
movzbl -0x7a(%rbp),%eax
cmp    $0x0,%eax
jl     1699 <mtv_signal_quality_info+0x569>
movzbl -0x7a(%rbp),%eax
cmp    $0x4,%eax
jg     1699 <mtv_signal_quality_info+0x569>
movb   $0x0,-0x7a(%rbp)
jmp    1788 <mtv_signal_quality_info+0x658>
movzbl -0x7a(%rbp),%eax
cmp    $0x5,%eax
jl     16c2 <mtv_signal_quality_info+0x592>
movzbl -0x7a(%rbp),%eax
cmp    $0x7,%eax
jg     16c2 <mtv_signal_quality_info+0x592>
movzbl -0x7a(%rbp),%eax
sub    $0x4,%eax
mov    %al,-0x7a(%rbp)
jmp    1783 <mtv_signal_quality_info+0x653>
movzbl -0x7a(%rbp),%eax
cmp    $0x8,%eax
jne    16de <mtv_signal_quality_info+0x5ae>
movzbl -0x7a(%rbp),%eax
sub    $0x3,%eax
mov    %al,-0x7a(%rbp)
jmp    177e <mtv_signal_quality_info+0x64e>
movzbl -0x7a(%rbp),%eax
cmp    $0x9,%eax
jne    16fa <mtv_signal_quality_info+0x5ca>
movzbl -0x7a(%rbp),%eax
sub    $0x2,%eax
mov    %al,-0x7a(%rbp)
jmp    1779 <mtv_signal_quality_info+0x649>
movzbl -0x7a(%rbp),%eax
cmp    $0xc,%eax
jg     1716 <mtv_signal_quality_info+0x5e6>
movzbl -0x7a(%rbp),%eax
add    $0x1,%eax
mov    %al,-0x7a(%rbp)
jmp    1774 <mtv_signal_quality_info+0x644>
movzbl -0x7a(%rbp),%eax
cmp    $0xd,%eax
jne    1732 <mtv_signal_quality_info+0x602>
movzbl -0x7a(%rbp),%eax
add    $0x2,%eax
mov    %al,-0x7a(%rbp)
jmp    176f <mtv_signal_quality_info+0x63f>
movzbl -0x7a(%rbp),%eax
cmp    $0xe,%eax
jne    174e <mtv_signal_quality_info+0x61e>
movzbl -0x7a(%rbp),%eax
add    $0x2,%eax
mov    %al,-0x7a(%rbp)
jmp    176a <mtv_signal_quality_info+0x63a>
movzbl -0x7a(%rbp),%eax
cmp    $0xf,%eax
jl     1765 <mtv_signal_quality_info+0x635>
movzbl -0x7a(%rbp),%eax
add    $0x3,%eax
mov    %al,-0x7a(%rbp)
jmp    176a <mtv_signal_quality_info+0x63a>
jmp    176f <mtv_signal_quality_info+0x63f>
jmp    1774 <mtv_signal_quality_info+0x644>
jmp    1779 <mtv_signal_quality_info+0x649>
jmp    177e <mtv_signal_quality_info+0x64e>
jmp    1783 <mtv_signal_quality_info+0x653>
jmp    1788 <mtv_signal_quality_info+0x658>
jmp    178d <mtv_signal_quality_info+0x65d>
jmp    1792 <mtv_signal_quality_info+0x662>
jmp    1a25 <mtv_signal_quality_info+0x8f5>
movzbl -0x31(%rbp),%eax
cmp    $0x40,%eax
jne    1904 <mtv_signal_quality_info+0x7d4>
movzbl -0x7a(%rbp),%eax
cmp    $0x2,%eax
jg     17ba <mtv_signal_quality_info+0x68a>
movb   $0x0,-0x7a(%rbp)
jmp    18ff <mtv_signal_quality_info+0x7cf>
movzbl -0x7a(%rbp),%eax
cmp    $0x3,%eax
jne    17d6 <mtv_signal_quality_info+0x6a6>
movzbl -0x7a(%rbp),%eax
sub    $0x2,%eax
mov    %al,-0x7a(%rbp)
jmp    18fa <mtv_signal_quality_info+0x7ca>
movzbl -0x7a(%rbp),%eax
cmp    $0x4,%eax
jne    17f2 <mtv_signal_quality_info+0x6c2>
movzbl -0x7a(%rbp),%eax
sub    $0x1,%eax
mov    %al,-0x7a(%rbp)
jmp    18f5 <mtv_signal_quality_info+0x7c5>
movzbl -0x7a(%rbp),%eax
cmp    $0x7,%eax
jg     180e <mtv_signal_quality_info+0x6de>
movzbl -0x7a(%rbp),%eax
add    $0x1,%eax
mov    %al,-0x7a(%rbp)
jmp    18f0 <mtv_signal_quality_info+0x7c0>
movzbl -0x7a(%rbp),%eax
cmp    $0x8,%eax
jne    182a <mtv_signal_quality_info+0x6fa>
movzbl -0x7a(%rbp),%eax
add    $0x2,%eax
mov    %al,-0x7a(%rbp)
jmp    18eb <mtv_signal_quality_info+0x7bb>
movzbl -0x7a(%rbp),%eax
cmp    $0x9,%eax
jne    1846 <mtv_signal_quality_info+0x716>
movzbl -0x7a(%rbp),%eax
add    $0x3,%eax
mov    %al,-0x7a(%rbp)
jmp    18e6 <mtv_signal_quality_info+0x7b6>
movzbl -0x7a(%rbp),%eax
cmp    $0xa,%eax
jne    1862 <mtv_signal_quality_info+0x732>
movzbl -0x7a(%rbp),%eax
add    $0x5,%eax
mov    %al,-0x7a(%rbp)
jmp    18e1 <mtv_signal_quality_info+0x7b1>
movzbl -0x7a(%rbp),%eax
cmp    $0xb,%eax
jne    187e <mtv_signal_quality_info+0x74e>
movzbl -0x7a(%rbp),%eax
add    $0x3,%eax
mov    %al,-0x7a(%rbp)
jmp    18dc <mtv_signal_quality_info+0x7ac>
movzbl -0x7a(%rbp),%eax
cmp    $0xc,%eax
jne    189a <mtv_signal_quality_info+0x76a>
movzbl -0x7a(%rbp),%eax
add    $0x4,%eax
mov    %al,-0x7a(%rbp)
jmp    18d7 <mtv_signal_quality_info+0x7a7>
movzbl -0x7a(%rbp),%eax
cmp    $0xd,%eax
jne    18b6 <mtv_signal_quality_info+0x786>
movzbl -0x7a(%rbp),%eax
add    $0x5,%eax
mov    %al,-0x7a(%rbp)
jmp    18d2 <mtv_signal_quality_info+0x7a2>
movzbl -0x7a(%rbp),%eax
cmp    $0xe,%eax
jl     18cd <mtv_signal_quality_info+0x79d>
movzbl -0x7a(%rbp),%eax
add    $0xa,%eax
mov    %al,-0x7a(%rbp)
jmp    18d2 <mtv_signal_quality_info+0x7a2>
jmp    18d7 <mtv_signal_quality_info+0x7a7>
jmp    18dc <mtv_signal_quality_info+0x7ac>
jmp    18e1 <mtv_signal_quality_info+0x7b1>
jmp    18e6 <mtv_signal_quality_info+0x7b6>
jmp    18eb <mtv_signal_quality_info+0x7bb>
jmp    18f0 <mtv_signal_quality_info+0x7c0>
jmp    18f5 <mtv_signal_quality_info+0x7c5>
jmp    18fa <mtv_signal_quality_info+0x7ca>
jmp    18ff <mtv_signal_quality_info+0x7cf>
jmp    1a20 <mtv_signal_quality_info+0x8f0>
movzbl -0x31(%rbp),%eax
cmp    $0x20,%eax
jne    1a1b <mtv_signal_quality_info+0x8eb>
movzbl -0x7a(%rbp),%eax
cmp    $0x0,%eax
jl     1934 <mtv_signal_quality_info+0x804>
movzbl -0x7a(%rbp),%eax
cmp    $0x5,%eax
jg     1934 <mtv_signal_quality_info+0x804>
movb   $0x0,-0x7a(%rbp)
jmp    1a16 <mtv_signal_quality_info+0x8e6>
movzbl -0x7a(%rbp),%eax
cmp    $0x6,%eax
jne    1950 <mtv_signal_quality_info+0x820>
movzbl -0x7a(%rbp),%eax
sub    $0x5,%eax
mov    %al,-0x7a(%rbp)
jmp    1a11 <mtv_signal_quality_info+0x8e1>
movzbl -0x7a(%rbp),%eax
cmp    $0x7,%eax
jne    196c <mtv_signal_quality_info+0x83c>
movzbl -0x7a(%rbp),%eax
sub    $0x3,%eax
mov    %al,-0x7a(%rbp)
jmp    1a0c <mtv_signal_quality_info+0x8dc>
movzbl -0x7a(%rbp),%eax
cmp    $0x8,%eax
jne    1988 <mtv_signal_quality_info+0x858>
movzbl -0x7a(%rbp),%eax
sub    $0x2,%eax
mov    %al,-0x7a(%rbp)
jmp    1a07 <mtv_signal_quality_info+0x8d7>
movzbl -0x7a(%rbp),%eax
cmp    $0x9,%eax
jne    19a4 <mtv_signal_quality_info+0x874>
movzbl -0x7a(%rbp),%eax
sub    $0x1,%eax
mov    %al,-0x7a(%rbp)
jmp    1a02 <mtv_signal_quality_info+0x8d2>
movzbl -0x7a(%rbp),%eax
cmp    $0xb,%eax
jg     19c0 <mtv_signal_quality_info+0x890>
movzbl -0x7a(%rbp),%eax
add    $0x2,%eax
mov    %al,-0x7a(%rbp)
jmp    19fd <mtv_signal_quality_info+0x8cd>
movzbl -0x7a(%rbp),%eax
cmp    $0xc,%eax
jne    19dc <mtv_signal_quality_info+0x8ac>
movzbl -0x7a(%rbp),%eax
add    $0x4,%eax
mov    %al,-0x7a(%rbp)
jmp    19f8 <mtv_signal_quality_info+0x8c8>
movzbl -0x7a(%rbp),%eax
cmp    $0xd,%eax
jl     19f3 <mtv_signal_quality_info+0x8c3>
movzbl -0x7a(%rbp),%eax
add    $0x7,%eax
mov    %al,-0x7a(%rbp)
jmp    19f8 <mtv_signal_quality_info+0x8c8>
jmp    19fd <mtv_signal_quality_info+0x8cd>
jmp    1a02 <mtv_signal_quality_info+0x8d2>
jmp    1a07 <mtv_signal_quality_info+0x8d7>
jmp    1a0c <mtv_signal_quality_info+0x8dc>
jmp    1a11 <mtv_signal_quality_info+0x8e1>
jmp    1a16 <mtv_signal_quality_info+0x8e6>
jmp    1a1b <mtv_signal_quality_info+0x8eb>
jmp    1a20 <mtv_signal_quality_info+0x8f0>
jmp    1a25 <mtv_signal_quality_info+0x8f5>
jmp    1a2a <mtv_signal_quality_info+0x8fa>
mov    -0x7a(%rbp),%cl
mov    -0x18(%rbp),%rax
mov    %cl,(%rax)
xor    %eax,%eax
add    $0x80,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<mtv_signal_quality_info>:
push   %rbp
push   %r15
push   %r14
push   %r13
push   %r12
push   %rbx
sub    $0x58,%rsp
mov    %r9,%r15
mov    %r8,%rbx
mov    %rcx,%r12
mov    %rdx,%r14
mov    %rsi,%rbp
mov    %rdi,%r13
lea    0x10(%rsp),%rdx
mov    $0x48,%ecx
mov    $0xf000,%esi
xor    %eax,%eax
call   1040 <BBM_BULK_READ@plt>
test   %eax,%eax
je     1178 <mtv_signal_quality_info+0x48>
lea    0xed3(%rip),%rdi
xor    %eax,%eax
call   1030 <print_log@plt>
mov    0x13(%rsp),%al
shr    %al
and    $0x1,%al
mov    %al,0x0(%rbp)
movzwl 0x18(%rsp),%ecx
mov    $0x2710,%eax
mov    $0x2710,%edx
test   %cx,%cx
je     11b8 <mtv_signal_quality_info+0x88>
movzwl 0x1a(%rsp),%edx
cvtsi2sd %edx,%xmm0
movzwl %cx,%ecx
cvtsi2sd %ecx,%xmm1
divsd  %xmm1,%xmm0
mulsd  0xe4d(%rip),%xmm0
cvttsd2si %xmm0,%rdx
mov    0x90(%rsp),%rcx
mov    %edx,(%rbx)
movzwl 0x20(%rsp),%edx
test   %dx,%dx
je     11f3 <mtv_signal_quality_info+0xc3>
movzwl 0x22(%rsp),%eax
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
movzwl %dx,%eax
xorps  %xmm1,%xmm1
cvtsi2sd %eax,%xmm1
divsd  %xmm1,%xmm0
mulsd  0xe12(%rip),%xmm0
cvttsd2si %xmm0,%rax
mov    0xa0(%rsp),%rdx
mov    %eax,(%rcx)
movzwl 0x28(%rsp),%ecx
mov    $0x2710,%eax
mov    $0x2710,%esi
test   %cx,%cx
je     1238 <mtv_signal_quality_info+0x108>
movzwl 0x2a(%rsp),%esi
xorps  %xmm0,%xmm0
cvtsi2sd %esi,%xmm0
movzwl %cx,%ecx
xorps  %xmm1,%xmm1
cvtsi2sd %ecx,%xmm1
divsd  %xmm1,%xmm0
mulsd  0xdcd(%rip),%xmm0
cvttsd2si %xmm0,%rsi
mov    %esi,(%rdx)
mov    0x38(%rsp),%ecx
test   %ecx,%ecx
je     1269 <mtv_signal_quality_info+0x139>
mov    0x3c(%rsp),%eax
xorps  %xmm0,%xmm0
cvtsi2sd %rax,%xmm0
mov    %ecx,%eax
xorps  %xmm1,%xmm1
cvtsi2sd %rax,%xmm1
divsd  %xmm1,%xmm0
mulsd  0xd9c(%rip),%xmm0
cvttsd2si %xmm0,%rax
mov    %eax,(%r12)
mov    0x40(%rsp),%ecx
mov    $0x2710,%eax
mov    $0x2710,%esi
test   %ecx,%ecx
je     12a6 <mtv_signal_quality_info+0x176>
mov    0x44(%rsp),%edx
xorps  %xmm0,%xmm0
cvtsi2sd %rdx,%xmm0
mov    %ecx,%ecx
xorps  %xmm1,%xmm1
cvtsi2sd %rcx,%xmm1
divsd  %xmm1,%xmm0
mulsd  0xd5f(%rip),%xmm0
cvttsd2si %xmm0,%rsi
mov    0xa8(%rsp),%rcx
mov    0x98(%rsp),%rdx
mov    %esi,(%r15)
mov    0x48(%rsp),%esi
test   %esi,%esi
je     12e8 <mtv_signal_quality_info+0x1b8>
mov    0x4c(%rsp),%eax
xorps  %xmm0,%xmm0
cvtsi2sd %rax,%xmm0
mov    %esi,%eax
xorps  %xmm1,%xmm1
cvtsi2sd %rax,%xmm1
divsd  %xmm1,%xmm0
mulsd  0xd1d(%rip),%xmm0
cvttsd2si %xmm0,%rax
mov    %eax,(%rdx)
movsbl 0x11(%rsp),%eax
mov    %eax,(%rcx)
lea    0xe(%rsp),%rdx
mov    %r13,%rdi
mov    $0x4113,%esi
xor    %eax,%eax
call   1050 <BBM_READ@plt>
andb   $0x70,0xe(%rsp)
lea    0xf(%rsp),%rdx
mov    %r13,%rdi
mov    $0x4066,%esi
xor    %eax,%eax
call   1050 <BBM_READ@plt>
mov    0xf(%rsp),%cl
cmp    $0x31,%cl
ja     135c <mtv_signal_quality_info+0x22c>
mov    0xe(%rsp),%al
cmp    $0x20,%al
je     13e6 <mtv_signal_quality_info+0x2b6>
cmp    $0x40,%al
jne    141b <mtv_signal_quality_info+0x2eb>
mov    0x16(%rsp),%al
cmp    $0x2,%al
jbe    1416 <mtv_signal_quality_info+0x2e6>
cmp    $0x4,%al
je     1433 <mtv_signal_quality_info+0x303>
cmp    $0x3,%al
je     1465 <mtv_signal_quality_info+0x335>
jmp    141b <mtv_signal_quality_info+0x2eb>
mov    0xe(%rsp),%al
cmp    $0x59,%cl
ja     13bb <mtv_signal_quality_info+0x28b>
cmp    $0x20,%al
je     13fa <mtv_signal_quality_info+0x2ca>
cmp    $0x40,%al
jne    141b <mtv_signal_quality_info+0x2eb>
mov    0x16(%rsp),%al
cmp    $0x2,%al
jbe    1416 <mtv_signal_quality_info+0x2e6>
cmp    $0x4,%al
je     1433 <mtv_signal_quality_info+0x303>
cmp    $0x3,%al
je     1465 <mtv_signal_quality_info+0x335>
cmp    $0x8,%al
jbe    13df <mtv_signal_quality_info+0x2af>
lea    -0x9(%rax),%ecx
cmp    $0x4,%cl
ja     1525 <mtv_signal_quality_info+0x3f5>
movzbl %cl,%eax
lea    0xc85(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
movb   $0xb,0x16(%rsp)
jmp    141b <mtv_signal_quality_info+0x2eb>
cmp    $0x20,%al
je     140e <mtv_signal_quality_info+0x2de>
cmp    $0x40,%al
jne    141b <mtv_signal_quality_info+0x2eb>
mov    0x16(%rsp),%al
cmp    $0x2,%al
jbe    1416 <mtv_signal_quality_info+0x2e6>
cmp    $0x4,%al
je     1433 <mtv_signal_quality_info+0x303>
cmp    $0x3,%al
je     1465 <mtv_signal_quality_info+0x335>
cmp    $0x7,%al
ja     14ab <mtv_signal_quality_info+0x37b>
add    $0x1,%al
jmp    1540 <mtv_signal_quality_info+0x410>
mov    0x16(%rsp),%al
cmp    $0x4,%al
jbe    1416 <mtv_signal_quality_info+0x2e6>
cmp    $0x8,%al
ja     143a <mtv_signal_quality_info+0x30a>
add    $0xfb,%al
mov    %al,0x16(%rsp)
jmp    141b <mtv_signal_quality_info+0x2eb>
mov    0x16(%rsp),%al
cmp    $0x4,%al
jbe    1416 <mtv_signal_quality_info+0x2e6>
cmp    $0x7,%al
ja     146c <mtv_signal_quality_info+0x33c>
add    $0xfc,%al
mov    %al,0x16(%rsp)
jmp    141b <mtv_signal_quality_info+0x2eb>
mov    0x16(%rsp),%al
cmp    $0x5,%al
ja     144a <mtv_signal_quality_info+0x31a>
movb   $0x0,0x16(%rsp)
mov    0x16(%rsp),%al
mov    %al,(%r14)
xor    %eax,%eax
add    $0x58,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
ret
movb   $0x3,0x16(%rsp)
jmp    141b <mtv_signal_quality_info+0x2eb>
cmp    $0x9,%al
je     1474 <mtv_signal_quality_info+0x344>
cmp    $0xb,%al
ja     147b <mtv_signal_quality_info+0x34b>
add    $0xfd,%al
mov    %al,0x16(%rsp)
jmp    141b <mtv_signal_quality_info+0x2eb>
lea    -0x6(%rax),%ecx
cmp    $0x3,%cl
ja     1485 <mtv_signal_quality_info+0x355>
movzbl %cl,%eax
lea    0xbac(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
movb   $0x1,0x16(%rsp)
jmp    141b <mtv_signal_quality_info+0x2eb>
cmp    $0x9,%al
je     14d4 <mtv_signal_quality_info+0x3a4>
cmp    $0x8,%al
jne    14de <mtv_signal_quality_info+0x3ae>
movb   $0x5,0x16(%rsp)
jmp    141b <mtv_signal_quality_info+0x2eb>
cmp    $0xd,%al
je     14ed <mtv_signal_quality_info+0x3bd>
cmp    $0xc,%al
je     14ca <mtv_signal_quality_info+0x39a>
jmp    141b <mtv_signal_quality_info+0x2eb>
cmp    $0xb,%al
ja     14f7 <mtv_signal_quality_info+0x3c7>
add    $0x2,%al
jmp    1540 <mtv_signal_quality_info+0x410>
movb   $0x4,0x16(%rsp)
jmp    141b <mtv_signal_quality_info+0x2eb>
movb   $0x6,0x16(%rsp)
jmp    141b <mtv_signal_quality_info+0x2eb>
movb   $0x8,0x16(%rsp)
jmp    141b <mtv_signal_quality_info+0x2eb>
lea    -0x8(%rax),%ecx
cmp    $0x5,%cl
ja     153e <mtv_signal_quality_info+0x40e>
movzbl %cl,%eax
lea    0xb57(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
movb   $0xa,0x16(%rsp)
jmp    141b <mtv_signal_quality_info+0x2eb>
movb   $0x7,0x16(%rsp)
jmp    141b <mtv_signal_quality_info+0x2eb>
cmp    $0xc,%al
ja     14ff <mtv_signal_quality_info+0x3cf>
add    $0x1,%al
mov    %al,0x16(%rsp)
jmp    141b <mtv_signal_quality_info+0x2eb>
movb   $0xc,0x16(%rsp)
jmp    141b <mtv_signal_quality_info+0x2eb>
cmp    $0xc,%al
je     1511 <mtv_signal_quality_info+0x3e1>
add    $0x7,%al
jmp    1540 <mtv_signal_quality_info+0x410>
cmp    $0xe,%al
je     1511 <mtv_signal_quality_info+0x3e1>
cmp    $0xd,%al
jne    1533 <mtv_signal_quality_info+0x403>
movb   $0xf,0x16(%rsp)
jmp    141b <mtv_signal_quality_info+0x2eb>
movb   $0x10,0x16(%rsp)
jmp    141b <mtv_signal_quality_info+0x2eb>
movb   $0xe,0x16(%rsp)
jmp    141b <mtv_signal_quality_info+0x2eb>
add    $0x5,%al
jmp    1540 <mtv_signal_quality_info+0x410>
movb   $0xd,0x16(%rsp)
jmp    141b <mtv_signal_quality_info+0x2eb>
add    $0x3,%al
mov    %al,0x16(%rsp)
jmp    141b <mtv_signal_quality_info+0x2eb>
add    $0xa,%al
mov    %al,0x16(%rsp)
jmp    141b <mtv_signal_quality_info+0x2eb>
movb   $0x12,0x16(%rsp)
jmp    141b <mtv_signal_quality_info+0x2eb>

LLVM IR (-O0):
%struct.dm_st = type { i8, i8, i8, i8, i8, i8, i8, i8, i16, i16, i32, i16, i16, i32, i16, i16, i32, i16, i16, i32, i32, i32, i32, i32, i32, i32, i32, i32 }
@.str = [35 x i8] c"mtv_signal_measure Error res : %d\0A\00"
define i32 @mtv_signal_quality_info(i8* %0, i8* %1, i8* %2, i32* %3, i32* %4, i32* %5, i32* %6, i32* %7, i32* %8, i32* %9, i32* %10, i32* %11) {
%13 = alloca i8*
%14 = alloca i8*
%15 = alloca i8*
%16 = alloca i32*
%17 = alloca i32*
%18 = alloca i32*
%19 = alloca i32*
%20 = alloca i32*
%21 = alloca i32*
%22 = alloca i32*
%23 = alloca i32*
%24 = alloca i32*
%25 = alloca i8
%26 = alloca i8
%27 = alloca i32
%28 = alloca %struct.dm_st
store i8* %0, i8** %13
store i8* %1, i8** %14
store i8* %2, i8** %15
store i32* %3, i32** %16
store i32* %4, i32** %17
store i32* %5, i32** %18
store i32* %6, i32** %19
store i32* %7, i32** %20
store i32* %8, i32** %21
store i32* %9, i32** %22
store i32* %10, i32** %23
store i32* %11, i32** %24
%29 = load i8*, i8** %13
%30 = bitcast %struct.dm_st* %28 to i8*
%31 = call i32 (i8*, i32, i8*, i64, ...) bitcast (i32 (...)* @BBM_BULK_READ to i32 (i8*, i32, i8*, i64, ...)*)(i8* %29, i32 61440, i8* %30, i64 72)
store i32 %31, i32* %27
%32 = load i32, i32* %27
%33 = icmp ne i32 %32, 0
br i1 %33, label %34, label %36
34: ; preds = %12
%35 = call i32 (i8*, ...) bitcast (i32 (...)* @print_log to i32 (i8*, ...)*)(i8* getelementptr inbounds ([35 x i8], [35 x i8]* @.str, i64 0, i64 0))
br label %36
36: ; preds = %34, %12
%37 = getelementptr inbounds %struct.dm_st, %struct.dm_st* %28, i32 0, i32 3
%38 = load i8, i8* %37
%39 = zext i8 %38 to i32
%40 = and i32 %39, 2
%41 = icmp ne i32 %40, 0
br i1 %41, label %42, label %44
42: ; preds = %36
%43 = load i8*, i8** %14
store i8 1, i8* %43
br label %46
44: ; preds = %36
%45 = load i8*, i8** %14
store i8 0, i8* %45
br label %46
46: ; preds = %44, %42
%47 = getelementptr inbounds %struct.dm_st, %struct.dm_st* %28, i32 0, i32 8
%48 = load i16, i16* %47
%49 = icmp ne i16 %48, 0
br i1 %49, label %50, label %61
50: ; preds = %46
%51 = getelementptr inbounds %struct.dm_st, %struct.dm_st* %28, i32 0, i32 9
%52 = load i16, i16* %51
%53 = uitofp i16 %52 to double
%54 = getelementptr inbounds %struct.dm_st, %struct.dm_st* %28, i32 0, i32 8
%55 = load i16, i16* %54
%56 = uitofp i16 %55 to double
%57 = fdiv double %53, %56
%58 = fmul double %57, 1.000000e+04
%59 = fptoui double %58 to i32
%60 = load i32*, i32** %17
store i32 %59, i32* %60
br label %63
61: ; preds = %46
%62 = load i32*, i32** %17
store i32 10000, i32* %62
br label %63
63: ; preds = %61, %50
%64 = getelementptr inbounds %struct.dm_st, %struct.dm_st* %28, i32 0, i32 11
%65 = load i16, i16* %64
%66 = icmp ne i16 %65, 0
br i1 %66, label %67, label %78
67: ; preds = %63
%68 = getelementptr inbounds %struct.dm_st, %struct.dm_st* %28, i32 0, i32 12
%69 = load i16, i16* %68
%70 = uitofp i16 %69 to double
%71 = getelementptr inbounds %struct.dm_st, %struct.dm_st* %28, i32 0, i32 11
%72 = load i16, i16* %71
%73 = uitofp i16 %72 to double
%74 = fdiv double %70, %73
%75 = fmul double %74, 1.000000e+04
%76 = fptoui double %75 to i32
%77 = load i32*, i32** %19
store i32 %76, i32* %77
br label %80
78: ; preds = %63
%79 = load i32*, i32** %19
store i32 10000, i32* %79
br label %80
80: ; preds = %78, %67
%81 = getelementptr inbounds %struct.dm_st, %struct.dm_st* %28, i32 0, i32 14
%82 = load i16, i16* %81
%83 = icmp ne i16 %82, 0
br i1 %83, label %84, label %95
84: ; preds = %80
%85 = getelementptr inbounds %struct.dm_st, %struct.dm_st* %28, i32 0, i32 15
%86 = load i16, i16* %85
%87 = uitofp i16 %86 to double
%88 = getelementptr inbounds %struct.dm_st, %struct.dm_st* %28, i32 0, i32 14
%89 = load i16, i16* %88
%90 = uitofp i16 %89 to double
%91 = fdiv double %87, %90
%92 = fmul double %91, 1.000000e+04
%93 = fptoui double %92 to i32
%94 = load i32*, i32** %21
store i32 %93, i32* %94
br label %97
95: ; preds = %80
%96 = load i32*, i32** %21
store i32 10000, i32* %96
br label %97
97: ; preds = %95, %84
%98 = getelementptr inbounds %struct.dm_st, %struct.dm_st* %28, i32 0, i32 20
%99 = load i32, i32* %98
%100 = icmp ne i32 %99, 0
br i1 %100, label %101, label %112
101: ; preds = %97
%102 = getelementptr inbounds %struct.dm_st, %struct.dm_st* %28, i32 0, i32 21
%103 = load i32, i32* %102
%104 = uitofp i32 %103 to double
%105 = getelementptr inbounds %struct.dm_st, %struct.dm_st* %28, i32 0, i32 20
%106 = load i32, i32* %105
%107 = uitofp i32 %106 to double
%108 = fdiv double %104, %107
%109 = fmul double %108, 1.000000e+04
%110 = fptoui double %109 to i32
%111 = load i32*, i32** %16
store i32 %110, i32* %111
br label %114
112: ; preds = %97
%113 = load i32*, i32** %16
store i32 10000, i32* %113
br label %114
114: ; preds = %112, %101
%115 = getelementptr inbounds %struct.dm_st, %struct.dm_st* %28, i32 0, i32 22
%116 = load i32, i32* %115
%117 = icmp ne i32 %116, 0
br i1 %117, label %118, label %129
118: ; preds = %114
%119 = getelementptr inbounds %struct.dm_st, %struct.dm_st* %28, i32 0, i32 23
%120 = load i32, i32* %119
%121 = uitofp i32 %120 to double
%122 = getelementptr inbounds %struct.dm_st, %struct.dm_st* %28, i32 0, i32 22
%123 = load i32, i32* %122
%124 = uitofp i32 %123 to double
%125 = fdiv double %121, %124
%126 = fmul double %125, 1.000000e+04
%127 = fptoui double %126 to i32
%128 = load i32*, i32** %18
store i32 %127, i32* %128
br label %131
129: ; preds = %114
%130 = load i32*, i32** %18
store i32 10000, i32* %130
br label %131
131: ; preds = %129, %118
%132 = getelementptr inbounds %struct.dm_st, %struct.dm_st* %28, i32 0, i32 24
%133 = load i32, i32* %132
%134 = icmp ne i32 %133, 0
br i1 %134, label %135, label %146
135: ; preds = %131
%136 = getelementptr inbounds %struct.dm_st, %struct.dm_st* %28, i32 0, i32 25
%137 = load i32, i32* %136
%138 = uitofp i32 %137 to double
%139 = getelementptr inbounds %struct.dm_st, %struct.dm_st* %28, i32 0, i32 24
%140 = load i32, i32* %139
%141 = uitofp i32 %140 to double
%142 = fdiv double %138, %141
%143 = fmul double %142, 1.000000e+04
%144 = fptoui double %143 to i32
%145 = load i32*, i32** %20
store i32 %144, i32* %145
br label %148
146: ; preds = %131
%147 = load i32*, i32** %20
store i32 10000, i32* %147
br label %148
148: ; preds = %146, %135
%149 = getelementptr inbounds %struct.dm_st, %struct.dm_st* %28, i32 0, i32 1
%150 = load i8, i8* %149
%151 = sext i8 %150 to i32
%152 = load i32*, i32** %22
store i32 %151, i32* %152
%153 = load i8*, i8** %13
%154 = call i32 (i8*, i32, i8*, ...) bitcast (i32 (...)* @BBM_READ to i32 (i8*, i32, i8*, ...)*)(i8* %153, i32 16659, i8* %25)
%155 = load i8, i8* %25
%156 = zext i8 %155 to i32
%157 = and i32 %156, 112
%158 = trunc i32 %157 to i8
store i8 %158, i8* %25
%159 = load i8*, i8** %13
%160 = call i32 (i8*, i32, i8*, ...) bitcast (i32 (...)* @BBM_READ to i32 (i8*, i32, i8*, ...)*)(i8* %159, i32 16486, i8* %26)
%161 = load i8, i8* %26
%162 = zext i8 %161 to i32
%163 = icmp slt i32 %162, 50
br i1 %163, label %164, label %296
164: ; preds = %148
%165 = load i8, i8* %25
%166 = zext i8 %165 to i32
%167 = icmp eq i32 %166, 64
br i1 %167, label %168, label %202
168: ; preds = %164
%169 = getelementptr inbounds %struct.dm_st, %struct.dm_st* %28, i32 0, i32 6
%170 = load i8, i8* %169
%171 = zext i8 %170 to i32
%172 = icmp sle i32 %171, 2
br i1 %172, label %173, label %175
173: ; preds = %168
%174 = getelementptr inbounds %struct.dm_st, %struct.dm_st* %28, i32 0, i32 6
store i8 0, i8* %174
br label %201
175: ; preds = %168
%176 = getelementptr inbounds %struct.dm_st, %struct.dm_st* %28, i32 0, i32 6
%177 = load i8, i8* %176
%178 = zext i8 %177 to i32
%179 = icmp eq i32 %178, 3
br i1 %179, label %180, label %187
180: ; preds = %175
%181 = getelementptr inbounds %struct.dm_st, %struct.dm_st* %28, i32 0, i32 6
%182 = load i8, i8* %181
%183 = zext i8 %182 to i32
%184 = sub nsw i32 %183, 2
%185 = trunc i32 %184 to i8
%186 = getelementptr inbounds %struct.dm_st, %struct.dm_st* %28, i32 0, i32 6
store i8 %185, i8* %186
br label %200
187: ; preds = %175
%188 = getelementptr inbounds %struct.dm_st, %struct.dm_st* %28, i32 0, i32 6
%189 = load i8, i8* %188
%190 = zext i8 %189 to i32
%191 = icmp eq i32 %190, 4
br i1 %191, label %192, label %199
192: ; preds = %187
%193 = getelementptr inbounds %struct.dm_st, %struct.dm_st* %28, i32 0, i32 6
%194 = load i8, i8* %193
%195 = zext i8 %194 to i32
%196 = sub nsw i32 %195, 1
%197 = trunc i32 %196 to i8
%198 = getelementptr inbounds %struct.dm_st, %struct.dm_st* %28, i32 0, i32 6
store i8 %197, i8* %198
br label %199
199: ; preds = %192, %187
br label %200
200: ; preds = %199, %180
br label %201
201: ; preds = %200, %173
br label %295
202: ; preds = %164
%203 = load i8, i8* %25
%204 = zext i8 %203 to i32
%205 = icmp eq i32 %204, 32
br i1 %205, label %206, label %294
206: ; preds = %202
%207 = getelementptr inbounds %struct.dm_st, %struct.dm_st* %28, i32 0, i32 6
%208 = load i8, i8* %207
%209 = zext i8 %208 to i32
%210 = icmp sge i32 %209, 0
br i1 %210, label %211, label %218
211: ; preds = %206
%212 = getelementptr inbounds %struct.dm_st, %struct.dm_st* %28, i32 0, i32 6
%213 = load i8, i8* %212
%214 = zext i8 %213 to i32
%215 = icmp sle i32 %214, 4
br i1 %215, label %216, label %218
216: ; preds = %211
%217 = getelementptr inbounds %struct.dm_st, %struct.dm_st* %28, i32 0, i32 6
store i8 0, i8* %217
br label %293
218: ; preds = %211, %206
%219 = getelementptr inbounds %struct.dm_st, %struct.dm_st* %28, i32 0, i32 6
%220 = load i8, i8* %219
%221 = zext i8 %220 to i32
%222 = icmp sge i32 %221, 5
br i1 %222, label %223, label %235
223: ; preds = %218
%224 = getelementptr inbounds %struct.dm_st, %struct.dm_st* %28, i32 0, i32 6
%225 = load i8, i8* %224
%226 = zext i8 %225 to i32
%227 = icmp sle i32 %226, 8
br i1 %227, label %228, label %235
228: ; preds = %223
%229 = getelementptr inbounds %struct.dm_st, %struct.dm_st* %28, i32 0, i32 6
%230 = load i8, i8* %229
%231 = zext i8 %230 to i32
%232 = sub nsw i32 %231, 5
%233 = trunc i32 %232 to i8
%234 = getelementptr inbounds %struct.dm_st, %struct.dm_st* %28, i32 0, i32 6
store i8 %233, i8* %234
br label %292
235: ; preds = %223, %218
%236 = getelementptr inbounds %struct.dm_st, %struct.dm_st* %28, i32 0, i32 6
%237 = load i8, i8* %236
%238 = zext i8 %237 to i32
%239 = icmp eq i32 %238, 9
br i1 %239, label %240, label %247
240: ; preds = %235
%241 = getelementptr inbounds %struct.dm_st, %struct.dm_st* %28, i32 0, i32 6
%242 = load i8, i8* %241
%243 = zext i8 %242 to i32
%244 = sub nsw i32 %243, 4
%245 = trunc i32 %244 to i8
%246 = getelementptr inbounds %struct.dm_st, %struct.dm_st* %28, i32 0, i32 6
store i8 %245, i8* %246
br label %291
247: ; preds = %235
%248 = getelementptr inbounds %struct.dm_st, %struct.dm_st* %28, i32 0, i32 6
%249 = load i8, i8* %248
%250 = zext i8 %249 to i32
%251 = icmp sge i32 %250, 10
br i1 %251, label %252, label %264
252: ; preds = %247
%253 = getelementptr inbounds %struct.dm_st, %struct.dm_st* %28, i32 0, i32 6
%254 = load i8, i8* %253
%255 = zext i8 %254 to i32
%256 = icmp sle i32 %255, 11
br i1 %256, label %257, label %264
257: ; preds = %252
%258 = getelementptr inbounds %struct.dm_st, %struct.dm_st* %28, i32 0, i32 6
%259 = load i8, i8* %258
%260 = zext i8 %259 to i32
%261 = sub nsw i32 %260, 3
%262 = trunc i32 %261 to i8
%263 = getelementptr inbounds %struct.dm_st, %struct.dm_st* %28, i32 0, i32 6
store i8 %262, i8* %263
br label %290
264: ; preds = %252, %247
%265 = getelementptr inbounds %struct.dm_st, %struct.dm_st* %28, i32 0, i32 6
%266 = load i8, i8* %265
%267 = zext i8 %266 to i32
%268 = icmp eq i32 %267, 12
br i1 %268, label %269, label %276
269: ; preds = %264
%270 = getelementptr inbounds %struct.dm_st, %struct.dm_st* %28, i32 0, i32 6
%271 = load i8, i8* %270
%272 = zext i8 %271 to i32
%273 = sub nsw i32 %272, 2
%274 = trunc i32 %273 to i8
%275 = getelementptr inbounds %struct.dm_st, %struct.dm_st* %28, i32 0, i32 6
store i8 %274, i8* %275
br label %289
276: ; preds = %264
%277 = getelementptr inbounds %struct.dm_st, %struct.dm_st* %28, i32 0, i32 6
%278 = load i8, i8* %277
%279 = zext i8 %278 to i32
%280 = icmp eq i32 %279, 13
br i1 %280, label %281, label %288
281: ; preds = %276
%282 = getelementptr inbounds %struct.dm_st, %struct.dm_st* %28, i32 0, i32 6
%283 = load i8, i8* %282
%284 = zext i8 %283 to i32
%285 = sub nsw i32 %284, 1
%286 = trunc i32 %285 to i8
%287 = getelementptr inbounds %struct.dm_st, %struct.dm_st* %28, i32 0, i32 6
store i8 %286, i8* %287
br label %288
288: ; preds = %281, %276
br label %289
289: ; preds = %288, %269
br label %290
290: ; preds = %289, %257
br label %291
291: ; preds = %290, %240
br label %292
292: ; preds = %291, %228
br label %293
293: ; preds = %292, %216
br label %294
294: ; preds = %293, %202
br label %295
295: ; preds = %294, %201
br label %797
296: ; preds = %148
%297 = load i8, i8* %26
%298 = zext i8 %297 to i32
%299 = icmp slt i32 %298, 90
br i1 %299, label %300, label %544
300: ; preds = %296
%301 = load i8, i8* %25
%302 = zext i8 %301 to i32
%303 = icmp eq i32 %302, 64
br i1 %303, label %304, label %429
304: ; preds = %300
%305 = getelementptr inbounds %struct.dm_st, %struct.dm_st* %28, i32 0, i32 6
%306 = load i8, i8* %305
%307 = zext i8 %306 to i32
%308 = icmp sle i32 %307, 2
br i1 %308, label %309, label %311
309: ; preds = %304
%310 = getelementptr inbounds %struct.dm_st, %struct.dm_st* %28, i32 0, i32 6
store i8 0, i8* %310
br label %428
311: ; preds = %304
%312 = getelementptr inbounds %struct.dm_st, %struct.dm_st* %28, i32 0, i32 6
%313 = load i8, i8* %312
%314 = zext i8 %313 to i32
%315 = icmp eq i32 %314, 3
br i1 %315, label %316, label %323
316: ; preds = %311
%317 = getelementptr inbounds %struct.dm_st, %struct.dm_st* %28, i32 0, i32 6
%318 = load i8, i8* %317
%319 = zext i8 %318 to i32
%320 = sub nsw i32 %319, 2
%321 = trunc i32 %320 to i8
%322 = getelementptr inbounds %struct.dm_st, %struct.dm_st* %28, i32 0, i32 6
store i8 %321, i8* %322
br label %427
323: ; preds = %311
%324 = getelementptr inbounds %struct.dm_st, %struct.dm_st* %28, i32 0, i32 6
%325 = load i8, i8* %324
%326 = zext i8 %325 to i32
%327 = icmp eq i32 %326, 4
br i1 %327, label %328, label %335
328: ; preds = %323
%329 = getelementptr inbounds %struct.dm_st, %struct.dm_st* %28, i32 0, i32 6
%330 = load i8, i8* %329
%331 = zext i8 %330 to i32
%332 = sub nsw i32 %331, 1
%333 = trunc i32 %332 to i8
%334 = getelementptr inbounds %struct.dm_st, %struct.dm_st* %28, i32 0, i32 6
store i8 %333, i8* %334
br label %426
335: ; preds = %323
%336 = getelementptr inbounds %struct.dm_st, %struct.dm_st* %28, i32 0, i32 6
%337 = load i8, i8* %336
%338 = zext i8 %337 to i32
%339 = icmp sle i32 %338, 8
br i1 %339, label %340, label %347
340: ; preds = %335
%341 = getelementptr inbounds %struct.dm_st, %struct.dm_st* %28, i32 0, i32 6
%342 = load i8, i8* %341
%343 = zext i8 %342 to i32
%344 = add nsw i32 %343, 1
%345 = trunc i32 %344 to i8
%346 = getelementptr inbounds %struct.dm_st, %struct.dm_st* %28, i32 0, i32 6
store i8 %345, i8* %346
br label %425
347: ; preds = %335
%348 = getelementptr inbounds %struct.dm_st, %struct.dm_st* %28, i32 0, i32 6
%349 = load i8, i8* %348
%350 = zext i8 %349 to i32
%351 = icmp eq i32 %350, 9
br i1 %351, label %352, label %359
352: ; preds = %347
%353 = getelementptr inbounds %struct.dm_st, %struct.dm_st* %28, i32 0, i32 6
%354 = load i8, i8* %353
%355 = zext i8 %354 to i32
%356 = add nsw i32 %355, 2
%357 = trunc i32 %356 to i8
%358 = getelementptr inbounds %struct.dm_st, %struct.dm_st* %28, i32 0, i32 6
store i8 %357, i8* %358
br label %424
359: ; preds = %347
%360 = getelementptr inbounds %struct.dm_st, %struct.dm_st* %28, i32 0, i32 6
%361 = load i8, i8* %360
%362 = zext i8 %361 to i32
%363 = icmp eq i32 %362, 10
br i1 %363, label %364, label %371
364: ; preds = %359
%365 = getelementptr inbounds %struct.dm_st, %struct.dm_st* %28, i32 0, i32 6
%366 = load i8, i8* %365
%367 = zext i8 %366 to i32
%368 = add nsw i32 %367, 3
%369 = trunc i32 %368 to i8
%370 = getelementptr inbounds %struct.dm_st, %struct.dm_st* %28, i32 0, i32 6
store i8 %369, i8* %370
br label %423
371: ; preds = %359
%372 = getelementptr inbounds %struct.dm_st, %struct.dm_st* %28, i32 0, i32 6
%373 = load i8, i8* %372
%374 = zext i8 %373 to i32
%375 = icmp eq i32 %374, 11
br i1 %375, label %376, label %383
376: ; preds = %371
%377 = getelementptr inbounds %struct.dm_st, %struct.dm_st* %28, i32 0, i32 6
%378 = load i8, i8* %377
%379 = zext i8 %378 to i32
%380 = add nsw i32 %379, 4
%381 = trunc i32 %380 to i8
%382 = getelementptr inbounds %struct.dm_st, %struct.dm_st* %28, i32 0, i32 6
store i8 %381, i8* %382
br label %422
383: ; preds = %371
%384 = getelementptr inbounds %struct.dm_st, %struct.dm_st* %28, i32 0, i32 6
%385 = load i8, i8* %384
%386 = zext i8 %385 to i32
%387 = icmp eq i32 %386, 12
br i1 %387, label %388, label %395
388: ; preds = %383
%389 = getelementptr inbounds %struct.dm_st, %struct.dm_st* %28, i32 0, i32 6
%390 = load i8, i8* %389
%391 = zext i8 %390 to i32
%392 = add nsw i32 %391, 2
%393 = trunc i32 %392 to i8
%394 = getelementptr inbounds %struct.dm_st, %struct.dm_st* %28, i32 0, i32 6
store i8 %393, i8* %394
br label %421
395: ; preds = %383
%396 = getelementptr inbounds %struct.dm_st, %struct.dm_st* %28, i32 0, i32 6
%397 = load i8, i8* %396
%398 = zext i8 %397 to i32
%399 = icmp eq i32 %398, 13
br i1 %399, label %400, label %407
400: ; preds = %395
%401 = getelementptr inbounds %struct.dm_st, %struct.dm_st* %28, i32 0, i32 6
%402 = load i8, i8* %401
%403 = zext i8 %402 to i32
%404 = add nsw i32 %403, 3
%405 = trunc i32 %404 to i8
%406 = getelementptr inbounds %struct.dm_st, %struct.dm_st* %28, i32 0, i32 6
store i8 %405, i8* %406
br label %420
407: ; preds = %395
%408 = getelementptr inbounds %struct.dm_st, %struct.dm_st* %28, i32 0, i32 6
%409 = load i8, i8* %408
%410 = zext i8 %409 to i32
%411 = icmp sge i32 %410, 14
br i1 %411, label %412, label %419
412: ; preds = %407
%413 = getelementptr inbounds %struct.dm_st, %struct.dm_st* %28, i32 0, i32 6
%414 = load i8, i8* %413
%415 = zext i8 %414 to i32
%416 = add nsw i32 %415, 5
%417 = trunc i32 %416 to i8
%418 = getelementptr inbounds %struct.dm_st, %struct.dm_st* %28, i32 0, i32 6
store i8 %417, i8* %418
br label %419
419: ; preds = %412, %407
br label %420
420: ; preds = %419, %400
br label %421
421: ; preds = %420, %388
br label %422
422: ; preds = %421, %376
br label %423
423: ; preds = %422, %364
br label %424
424: ; preds = %423, %352
br label %425
425: ; preds = %424, %340
br label %426
426: ; preds = %425, %328
br label %427
427: ; preds = %426, %316
br label %428
428: ; preds = %427, %309
br label %543
429: ; preds = %300
%430 = load i8, i8* %25
%431 = zext i8 %430 to i32
%432 = icmp eq i32 %431, 32
br i1 %432, label %433, label %542
433: ; preds = %429
%434 = getelementptr inbounds %struct.dm_st, %struct.dm_st* %28, i32 0, i32 6
%435 = load i8, i8* %434
%436 = zext i8 %435 to i32
%437 = icmp sge i32 %436, 0
br i1 %437, label %438, label %445
438: ; preds = %433
%439 = getelementptr inbounds %struct.dm_st, %struct.dm_st* %28, i32 0, i32 6
%440 = load i8, i8* %439
%441 = zext i8 %440 to i32
%442 = icmp sle i32 %441, 4
br i1 %442, label %443, label %445
443: ; preds = %438
%444 = getelementptr inbounds %struct.dm_st, %struct.dm_st* %28, i32 0, i32 6
store i8 0, i8* %444
br label %541
445: ; preds = %438, %433
%446 = getelementptr inbounds %struct.dm_st, %struct.dm_st* %28, i32 0, i32 6
%447 = load i8, i8* %446
%448 = zext i8 %447 to i32
%449 = icmp sge i32 %448, 5
br i1 %449, label %450, label %462
450: ; preds = %445
%451 = getelementptr inbounds %struct.dm_st, %struct.dm_st* %28, i32 0, i32 6
%452 = load i8, i8* %451
%453 = zext i8 %452 to i32
%454 = icmp sle i32 %453, 7
br i1 %454, label %455, label %462
455: ; preds = %450
%456 = getelementptr inbounds %struct.dm_st, %struct.dm_st* %28, i32 0, i32 6
%457 = load i8, i8* %456
%458 = zext i8 %457 to i32
%459 = sub nsw i32 %458, 4
%460 = trunc i32 %459 to i8
%461 = getelementptr inbounds %struct.dm_st, %struct.dm_st* %28, i32 0, i32 6
store i8 %460, i8* %461
br label %540
462: ; preds = %450, %445
%463 = getelementptr inbounds %struct.dm_st, %struct.dm_st* %28, i32 0, i32 6
%464 = load i8, i8* %463
%465 = zext i8 %464 to i32
%466 = icmp eq i32 %465, 8
br i1 %466, label %467, label %474
467: ; preds = %462
%468 = getelementptr inbounds %struct.dm_st, %struct.dm_st* %28, i32 0, i32 6
%469 = load i8, i8* %468
%470 = zext i8 %469 to i32
%471 = sub nsw i32 %470, 3
%472 = trunc i32 %471 to i8
%473 = getelementptr inbounds %struct.dm_st, %struct.dm_st* %28, i32 0, i32 6
store i8 %472, i8* %473
br label %539
474: ; preds = %462
%475 = getelementptr inbounds %struct.dm_st, %struct.dm_st* %28, i32 0, i32 6
%476 = load i8, i8* %475
%477 = zext i8 %476 to i32
%478 = icmp eq i32 %477, 9
br i1 %478, label %479, label %486
479: ; preds = %474
%480 = getelementptr inbounds %struct.dm_st, %struct.dm_st* %28, i32 0, i32 6
%481 = load i8, i8* %480
%482 = zext i8 %481 to i32
%483 = sub nsw i32 %482, 2
%484 = trunc i32 %483 to i8
%485 = getelementptr inbounds %struct.dm_st, %struct.dm_st* %28, i32 0, i32 6
store i8 %484, i8* %485
br label %538
486: ; preds = %474
%487 = getelementptr inbounds %struct.dm_st, %struct.dm_st* %28, i32 0, i32 6
%488 = load i8, i8* %487
%489 = zext i8 %488 to i32
%490 = icmp sle i32 %489, 12
br i1 %490, label %491, label %498
491: ; preds = %486
%492 = getelementptr inbounds %struct.dm_st, %struct.dm_st* %28, i32 0, i32 6
%493 = load i8, i8* %492
%494 = zext i8 %493 to i32
%495 = add nsw i32 %494, 1
%496 = trunc i32 %495 to i8
%497 = getelementptr inbounds %struct.dm_st, %struct.dm_st* %28, i32 0, i32 6
store i8 %496, i8* %497
br label %537
498: ; preds = %486
%499 = getelementptr inbounds %struct.dm_st, %struct.dm_st* %28, i32 0, i32 6
%500 = load i8, i8* %499
%501 = zext i8 %500 to i32
%502 = icmp eq i32 %501, 13
br i1 %502, label %503, label %510
503: ; preds = %498
%504 = getelementptr inbounds %struct.dm_st, %struct.dm_st* %28, i32 0, i32 6
%505 = load i8, i8* %504
%506 = zext i8 %505 to i32
%507 = add nsw i32 %506, 2
%508 = trunc i32 %507 to i8
%509 = getelementptr inbounds %struct.dm_st, %struct.dm_st* %28, i32 0, i32 6
store i8 %508, i8* %509
br label %536
510: ; preds = %498
%511 = getelementptr inbounds %struct.dm_st, %struct.dm_st* %28, i32 0, i32 6
%512 = load i8, i8* %511
%513 = zext i8 %512 to i32
%514 = icmp eq i32 %513, 14
br i1 %514, label %515, label %522
515: ; preds = %510
%516 = getelementptr inbounds %struct.dm_st, %struct.dm_st* %28, i32 0, i32 6
%517 = load i8, i8* %516
%518 = zext i8 %517 to i32
%519 = add nsw i32 %518, 2
%520 = trunc i32 %519 to i8
%521 = getelementptr inbounds %struct.dm_st, %struct.dm_st* %28, i32 0, i32 6
store i8 %520, i8* %521
br label %535
522: ; preds = %510
%523 = getelementptr inbounds %struct.dm_st, %struct.dm_st* %28, i32 0, i32 6
%524 = load i8, i8* %523
%525 = zext i8 %524 to i32
%526 = icmp sge i32 %525, 15
br i1 %526, label %527, label %534
527: ; preds = %522
%528 = getelementptr inbounds %struct.dm_st, %struct.dm_st* %28, i32 0, i32 6
%529 = load i8, i8* %528
%530 = zext i8 %529 to i32
%531 = add nsw i32 %530, 3
%532 = trunc i32 %531 to i8
%533 = getelementptr inbounds %struct.dm_st, %struct.dm_st* %28, i32 0, i32 6
store i8 %532, i8* %533
br label %534
534: ; preds = %527, %522
br label %535
535: ; preds = %534, %515
br label %536
536: ; preds = %535, %503
br label %537
537: ; preds = %536, %491
br label %538
538: ; preds = %537, %479
br label %539
539: ; preds = %538, %467
br label %540
540: ; preds = %539, %455
br label %541
541: ; preds = %540, %443
br label %542
542: ; preds = %541, %429
br label %543
543: ; preds = %542, %428
br label %796
544: ; preds = %296
%545 = load i8, i8* %25
%546 = zext i8 %545 to i32
%547 = icmp eq i32 %546, 64
br i1 %547, label %548, label %686
548: ; preds = %544
%549 = getelementptr inbounds %struct.dm_st, %struct.dm_st* %28, i32 0, i32 6
%550 = load i8, i8* %549
%551 = zext i8 %550 to i32
%552 = icmp sle i32 %551, 2
br i1 %552, label %553, label %555
553: ; preds = %548
%554 = getelementptr inbounds %struct.dm_st, %struct.dm_st* %28, i32 0, i32 6
store i8 0, i8* %554
br label %685
555: ; preds = %548
%556 = getelementptr inbounds %struct.dm_st, %struct.dm_st* %28, i32 0, i32 6
%557 = load i8, i8* %556
%558 = zext i8 %557 to i32
%559 = icmp eq i32 %558, 3
br i1 %559, label %560, label %567
560: ; preds = %555
%561 = getelementptr inbounds %struct.dm_st, %struct.dm_st* %28, i32 0, i32 6
%562 = load i8, i8* %561
%563 = zext i8 %562 to i32
%564 = sub nsw i32 %563, 2
%565 = trunc i32 %564 to i8
%566 = getelementptr inbounds %struct.dm_st, %struct.dm_st* %28, i32 0, i32 6
store i8 %565, i8* %566
br label %684
567: ; preds = %555
%568 = getelementptr inbounds %struct.dm_st, %struct.dm_st* %28, i32 0, i32 6
%569 = load i8, i8* %568
%570 = zext i8 %569 to i32
%571 = icmp eq i32 %570, 4
br i1 %571, label %572, label %579
572: ; preds = %567
%573 = getelementptr inbounds %struct.dm_st, %struct.dm_st* %28, i32 0, i32 6
%574 = load i8, i8* %573
%575 = zext i8 %574 to i32
%576 = sub nsw i32 %575, 1
%577 = trunc i32 %576 to i8
%578 = getelementptr inbounds %struct.dm_st, %struct.dm_st* %28, i32 0, i32 6
store i8 %577, i8* %578
br label %683
579: ; preds = %567
%580 = getelementptr inbounds %struct.dm_st, %struct.dm_st* %28, i32 0, i32 6
%581 = load i8, i8* %580
%582 = zext i8 %581 to i32
%583 = icmp sle i32 %582, 7
br i1 %583, label %584, label %591
584: ; preds = %579
%585 = getelementptr inbounds %struct.dm_st, %struct.dm_st* %28, i32 0, i32 6
%586 = load i8, i8* %585
%587 = zext i8 %586 to i32
%588 = add nsw i32 %587, 1
%589 = trunc i32 %588 to i8
%590 = getelementptr inbounds %struct.dm_st, %struct.dm_st* %28, i32 0, i32 6
store i8 %589, i8* %590
br label %682
591: ; preds = %579
%592 = getelementptr inbounds %struct.dm_st, %struct.dm_st* %28, i32 0, i32 6
%593 = load i8, i8* %592
%594 = zext i8 %593 to i32
%595 = icmp eq i32 %594, 8
br i1 %595, label %596, label %603
596: ; preds = %591
%597 = getelementptr inbounds %struct.dm_st, %struct.dm_st* %28, i32 0, i32 6
%598 = load i8, i8* %597
%599 = zext i8 %598 to i32
%600 = add nsw i32 %599, 2
%601 = trunc i32 %600 to i8
%602 = getelementptr inbounds %struct.dm_st, %struct.dm_st* %28, i32 0, i32 6
store i8 %601, i8* %602
br label %681
603: ; preds = %591
%604 = getelementptr inbounds %struct.dm_st, %struct.dm_st* %28, i32 0, i32 6
%605 = load i8, i8* %604
%606 = zext i8 %605 to i32
%607 = icmp eq i32 %606, 9
br i1 %607, label %608, label %615
608: ; preds = %603
%609 = getelementptr inbounds %struct.dm_st, %struct.dm_st* %28, i32 0, i32 6
%610 = load i8, i8* %609
%611 = zext i8 %610 to i32
%612 = add nsw i32 %611, 3
%613 = trunc i32 %612 to i8
%614 = getelementptr inbounds %struct.dm_st, %struct.dm_st* %28, i32 0, i32 6
store i8 %613, i8* %614
br label %680
615: ; preds = %603
%616 = getelementptr inbounds %struct.dm_st, %struct.dm_st* %28, i32 0, i32 6
%617 = load i8, i8* %616
%618 = zext i8 %617 to i32
%619 = icmp eq i32 %618, 10
br i1 %619, label %620, label %627
620: ; preds = %615
%621 = getelementptr inbounds %struct.dm_st, %struct.dm_st* %28, i32 0, i32 6
%622 = load i8, i8* %621
%623 = zext i8 %622 to i32
%624 = add nsw i32 %623, 5
%625 = trunc i32 %624 to i8
%626 = getelementptr inbounds %struct.dm_st, %struct.dm_st* %28, i32 0, i32 6
store i8 %625, i8* %626
br label %679
627: ; preds = %615
%628 = getelementptr inbounds %struct.dm_st, %struct.dm_st* %28, i32 0, i32 6
%629 = load i8, i8* %628
%630 = zext i8 %629 to i32
%631 = icmp eq i32 %630, 11
br i1 %631, label %632, label %639
632: ; preds = %627
%633 = getelementptr inbounds %struct.dm_st, %struct.dm_st* %28, i32 0, i32 6
%634 = load i8, i8* %633
%635 = zext i8 %634 to i32
%636 = add nsw i32 %635, 3
%637 = trunc i32 %636 to i8
%638 = getelementptr inbounds %struct.dm_st, %struct.dm_st* %28, i32 0, i32 6
store i8 %637, i8* %638
br label %678
639: ; preds = %627
%640 = getelementptr inbounds %struct.dm_st, %struct.dm_st* %28, i32 0, i32 6
%641 = load i8, i8* %640
%642 = zext i8 %641 to i32
%643 = icmp eq i32 %642, 12
br i1 %643, label %644, label %651
644: ; preds = %639
%645 = getelementptr inbounds %struct.dm_st, %struct.dm_st* %28, i32 0, i32 6
%646 = load i8, i8* %645
%647 = zext i8 %646 to i32
%648 = add nsw i32 %647, 4
%649 = trunc i32 %648 to i8
%650 = getelementptr inbounds %struct.dm_st, %struct.dm_st* %28, i32 0, i32 6
store i8 %649, i8* %650
br label %677
651: ; preds = %639
%652 = getelementptr inbounds %struct.dm_st, %struct.dm_st* %28, i32 0, i32 6
%653 = load i8, i8* %652
%654 = zext i8 %653 to i32
%655 = icmp eq i32 %654, 13
br i1 %655, label %656, label %663
656: ; preds = %651
%657 = getelementptr inbounds %struct.dm_st, %struct.dm_st* %28, i32 0, i32 6
%658 = load i8, i8* %657
%659 = zext i8 %658 to i32
%660 = add nsw i32 %659, 5
%661 = trunc i32 %660 to i8
%662 = getelementptr inbounds %struct.dm_st, %struct.dm_st* %28, i32 0, i32 6
store i8 %661, i8* %662
br label %676
663: ; preds = %651
%664 = getelementptr inbounds %struct.dm_st, %struct.dm_st* %28, i32 0, i32 6
%665 = load i8, i8* %664
%666 = zext i8 %665 to i32
%667 = icmp sge i32 %666, 14
br i1 %667, label %668, label %675
668: ; preds = %663
%669 = getelementptr inbounds %struct.dm_st, %struct.dm_st* %28, i32 0, i32 6
%670 = load i8, i8* %669
%671 = zext i8 %670 to i32
%672 = add nsw i32 %671, 10
%673 = trunc i32 %672 to i8
%674 = getelementptr inbounds %struct.dm_st, %struct.dm_st* %28, i32 0, i32 6
store i8 %673, i8* %674
br label %675
675: ; preds = %668, %663
br label %676
676: ; preds = %675, %656
br label %677
677: ; preds = %676, %644
br label %678
678: ; preds = %677, %632
br label %679
679: ; preds = %678, %620
br label %680
680: ; preds = %679, %608
br label %681
681: ; preds = %680, %596
br label %682
682: ; preds = %681, %584
br label %683
683: ; preds = %682, %572
br label %684
684: ; preds = %683, %560
br label %685
685: ; preds = %684, %553
br label %795
686: ; preds = %544
%687 = load i8, i8* %25
%688 = zext i8 %687 to i32
%689 = icmp eq i32 %688, 32
br i1 %689, label %690, label %794
690: ; preds = %686
%691 = getelementptr inbounds %struct.dm_st, %struct.dm_st* %28, i32 0, i32 6
%692 = load i8, i8* %691
%693 = zext i8 %692 to i32
%694 = icmp sge i32 %693, 0
br i1 %694, label %695, label %702
695: ; preds = %690
%696 = getelementptr inbounds %struct.dm_st, %struct.dm_st* %28, i32 0, i32 6
%697 = load i8, i8* %696
%698 = zext i8 %697 to i32
%699 = icmp sle i32 %698, 5
br i1 %699, label %700, label %702
700: ; preds = %695
%701 = getelementptr inbounds %struct.dm_st, %struct.dm_st* %28, i32 0, i32 6
store i8 0, i8* %701
br label %793
702: ; preds = %695, %690
%703 = getelementptr inbounds %struct.dm_st, %struct.dm_st* %28, i32 0, i32 6
%704 = load i8, i8* %703
%705 = zext i8 %704 to i32
%706 = icmp eq i32 %705, 6
br i1 %706, label %707, label %714
707: ; preds = %702
%708 = getelementptr inbounds %struct.dm_st, %struct.dm_st* %28, i32 0, i32 6
%709 = load i8, i8* %708
%710 = zext i8 %709 to i32
%711 = sub nsw i32 %710, 5
%712 = trunc i32 %711 to i8
%713 = getelementptr inbounds %struct.dm_st, %struct.dm_st* %28, i32 0, i32 6
store i8 %712, i8* %713
br label %792
714: ; preds = %702
%715 = getelementptr inbounds %struct.dm_st, %struct.dm_st* %28, i32 0, i32 6
%716 = load i8, i8* %715
%717 = zext i8 %716 to i32
%718 = icmp eq i32 %717, 7
br i1 %718, label %719, label %726
719: ; preds = %714
%720 = getelementptr inbounds %struct.dm_st, %struct.dm_st* %28, i32 0, i32 6
%721 = load i8, i8* %720
%722 = zext i8 %721 to i32
%723 = sub nsw i32 %722, 3
%724 = trunc i32 %723 to i8
%725 = getelementptr inbounds %struct.dm_st, %struct.dm_st* %28, i32 0, i32 6
store i8 %724, i8* %725
br label %791
726: ; preds = %714
%727 = getelementptr inbounds %struct.dm_st, %struct.dm_st* %28, i32 0, i32 6
%728 = load i8, i8* %727
%729 = zext i8 %728 to i32
%730 = icmp eq i32 %729, 8
br i1 %730, label %731, label %738
731: ; preds = %726
%732 = getelementptr inbounds %struct.dm_st, %struct.dm_st* %28, i32 0, i32 6
%733 = load i8, i8* %732
%734 = zext i8 %733 to i32
%735 = sub nsw i32 %734, 2
%736 = trunc i32 %735 to i8
%737 = getelementptr inbounds %struct.dm_st, %struct.dm_st* %28, i32 0, i32 6
store i8 %736, i8* %737
br label %790
738: ; preds = %726
%739 = getelementptr inbounds %struct.dm_st, %struct.dm_st* %28, i32 0, i32 6
%740 = load i8, i8* %739
%741 = zext i8 %740 to i32
%742 = icmp eq i32 %741, 9
br i1 %742, label %743, label %750
743: ; preds = %738
%744 = getelementptr inbounds %struct.dm_st, %struct.dm_st* %28, i32 0, i32 6
%745 = load i8, i8* %744
%746 = zext i8 %745 to i32
%747 = sub nsw i32 %746, 1
%748 = trunc i32 %747 to i8
%749 = getelementptr inbounds %struct.dm_st, %struct.dm_st* %28, i32 0, i32 6
store i8 %748, i8* %749
br label %789
750: ; preds = %738
%751 = getelementptr inbounds %struct.dm_st, %struct.dm_st* %28, i32 0, i32 6
%752 = load i8, i8* %751
%753 = zext i8 %752 to i32
%754 = icmp sle i32 %753, 11
br i1 %754, label %755, label %762
755: ; preds = %750
%756 = getelementptr inbounds %struct.dm_st, %struct.dm_st* %28, i32 0, i32 6
%757 = load i8, i8* %756
%758 = zext i8 %757 to i32
%759 = add nsw i32 %758, 2
%760 = trunc i32 %759 to i8
%761 = getelementptr inbounds %struct.dm_st, %struct.dm_st* %28, i32 0, i32 6
store i8 %760, i8* %761
br label %788
762: ; preds = %750
%763 = getelementptr inbounds %struct.dm_st, %struct.dm_st* %28, i32 0, i32 6
%764 = load i8, i8* %763
%765 = zext i8 %764 to i32
%766 = icmp eq i32 %765, 12
br i1 %766, label %767, label %774
767: ; preds = %762
%768 = getelementptr inbounds %struct.dm_st, %struct.dm_st* %28, i32 0, i32 6
%769 = load i8, i8* %768
%770 = zext i8 %769 to i32
%771 = add nsw i32 %770, 4
%772 = trunc i32 %771 to i8
%773 = getelementptr inbounds %struct.dm_st, %struct.dm_st* %28, i32 0, i32 6
store i8 %772, i8* %773
br label %787
774: ; preds = %762
%775 = getelementptr inbounds %struct.dm_st, %struct.dm_st* %28, i32 0, i32 6
%776 = load i8, i8* %775
%777 = zext i8 %776 to i32
%778 = icmp sge i32 %777, 13
br i1 %778, label %779, label %786
779: ; preds = %774
%780 = getelementptr inbounds %struct.dm_st, %struct.dm_st* %28, i32 0, i32 6
%781 = load i8, i8* %780
%782 = zext i8 %781 to i32
%783 = add nsw i32 %782, 7
%784 = trunc i32 %783 to i8
%785 = getelementptr inbounds %struct.dm_st, %struct.dm_st* %28, i32 0, i32 6
store i8 %784, i8* %785
br label %786
786: ; preds = %779, %774
br label %787
787: ; preds = %786, %767
br label %788
788: ; preds = %787, %755
br label %789
789: ; preds = %788, %743
br label %790
790: ; preds = %789, %731
br label %791
791: ; preds = %790, %719
br label %792
792: ; preds = %791, %707
br label %793
793: ; preds = %792, %700
br label %794
794: ; preds = %793, %686
br label %795
795: ; preds = %794, %685
br label %796
796: ; preds = %795, %543
br label %797
797: ; preds = %796, %295
%798 = getelementptr inbounds %struct.dm_st, %struct.dm_st* %28, i32 0, i32 6
%799 = load i8, i8* %798
%800 = load i8*, i8** %15
store i8 %799, i8* %800
ret i32 0
}

LLVM IR (-O2):
%struct.dm_st = type { i8, i8, i8, i8, i8, i8, i8, i8, i16, i16, i32, i16, i16, i32, i16, i16, i32, i16, i16, i32, i32, i32, i32, i32, i32, i32, i32, i32 }
@.str = [35 x i8] c"mtv_signal_measure Error res : %d\0A\00"
define i32 @mtv_signal_quality_info(i8* %0, i8* nocapture writeonly %1, i8* nocapture writeonly %2, i32* nocapture writeonly %3, i32* nocapture writeonly %4, i32* nocapture writeonly %5, i32* nocapture writeonly %6, i32* nocapture writeonly %7, i32* nocapture writeonly %8, i32* nocapture writeonly %9, i32* nocapture readnone %10, i32* nocapture readnone %11) {
%13 = alloca i8
%14 = alloca i8
%15 = alloca %struct.dm_st
%16 = getelementptr inbounds %struct.dm_st, %struct.dm_st* %15, i64 0, i32 0
%17 = call i32 (i8*, i32, i8*, i64, ...) bitcast (i32 (...)* @BBM_BULK_READ to i32 (i8*, i32, i8*, i64, ...)*)(i8* %0, i32 61440, i8* %16, i64 72)
%18 = icmp eq i32 %17, 0
br i1 %18, label %21, label %19
19: ; preds = %12
%20 = call i32 (i8*, ...) bitcast (i32 (...)* @print_log to i32 (i8*, ...)*)(i8* getelementptr inbounds ([35 x i8], [35 x i8]* @.str, i64 0, i64 0))
br label %21
21: ; preds = %19, %12
%22 = getelementptr inbounds %struct.dm_st, %struct.dm_st* %15, i64 0, i32 3
%23 = load i8, i8* %22
%24 = lshr i8 %23, 1
%25 = and i8 %24, 1
store i8 %25, i8* %1
%26 = getelementptr inbounds %struct.dm_st, %struct.dm_st* %15, i64 0, i32 8
%27 = load i16, i16* %26
%28 = icmp eq i16 %27, 0
br i1 %28, label %37, label %29
29: ; preds = %21
%30 = getelementptr inbounds %struct.dm_st, %struct.dm_st* %15, i64 0, i32 9
%31 = load i16, i16* %30
%32 = uitofp i16 %31 to double
%33 = uitofp i16 %27 to double
%34 = fdiv double %32, %33
%35 = fmul double %34, 1.000000e+04
%36 = fptoui double %35 to i32
br label %37
37: ; preds = %21, %29
%38 = phi i32 [ %36, %29 ], [ 10000, %21 ]
store i32 %38, i32* %4
%39 = getelementptr inbounds %struct.dm_st, %struct.dm_st* %15, i64 0, i32 11
%40 = load i16, i16* %39
%41 = icmp eq i16 %40, 0
br i1 %41, label %50, label %42
42: ; preds = %37
%43 = getelementptr inbounds %struct.dm_st, %struct.dm_st* %15, i64 0, i32 12
%44 = load i16, i16* %43
%45 = uitofp i16 %44 to double
%46 = uitofp i16 %40 to double
%47 = fdiv double %45, %46
%48 = fmul double %47, 1.000000e+04
%49 = fptoui double %48 to i32
br label %50
50: ; preds = %37, %42
%51 = phi i32 [ %49, %42 ], [ 10000, %37 ]
store i32 %51, i32* %6
%52 = getelementptr inbounds %struct.dm_st, %struct.dm_st* %15, i64 0, i32 14
%53 = load i16, i16* %52
%54 = icmp eq i16 %53, 0
br i1 %54, label %63, label %55
55: ; preds = %50
%56 = getelementptr inbounds %struct.dm_st, %struct.dm_st* %15, i64 0, i32 15
%57 = load i16, i16* %56
%58 = uitofp i16 %57 to double
%59 = uitofp i16 %53 to double
%60 = fdiv double %58, %59
%61 = fmul double %60, 1.000000e+04
%62 = fptoui double %61 to i32
br label %63
63: ; preds = %50, %55
%64 = phi i32 [ %62, %55 ], [ 10000, %50 ]
store i32 %64, i32* %8
%65 = getelementptr inbounds %struct.dm_st, %struct.dm_st* %15, i64 0, i32 20
%66 = load i32, i32* %65
%67 = icmp eq i32 %66, 0
br i1 %67, label %76, label %68
68: ; preds = %63
%69 = getelementptr inbounds %struct.dm_st, %struct.dm_st* %15, i64 0, i32 21
%70 = load i32, i32* %69
%71 = uitofp i32 %70 to double
%72 = uitofp i32 %66 to double
%73 = fdiv double %71, %72
%74 = fmul double %73, 1.000000e+04
%75 = fptoui double %74 to i32
br label %76
76: ; preds = %63, %68
%77 = phi i32 [ %75, %68 ], [ 10000, %63 ]
store i32 %77, i32* %3
%78 = getelementptr inbounds %struct.dm_st, %struct.dm_st* %15, i64 0, i32 22
%79 = load i32, i32* %78
%80 = icmp eq i32 %79, 0
br i1 %80, label %89, label %81
81: ; preds = %76
%82 = getelementptr inbounds %struct.dm_st, %struct.dm_st* %15, i64 0, i32 23
%83 = load i32, i32* %82
%84 = uitofp i32 %83 to double
%85 = uitofp i32 %79 to double
%86 = fdiv double %84, %85
%87 = fmul double %86, 1.000000e+04
%88 = fptoui double %87 to i32
br label %89
89: ; preds = %76, %81
%90 = phi i32 [ %88, %81 ], [ 10000, %76 ]
store i32 %90, i32* %5
%91 = getelementptr inbounds %struct.dm_st, %struct.dm_st* %15, i64 0, i32 24
%92 = load i32, i32* %91
%93 = icmp eq i32 %92, 0
br i1 %93, label %102, label %94
94: ; preds = %89
%95 = getelementptr inbounds %struct.dm_st, %struct.dm_st* %15, i64 0, i32 25
%96 = load i32, i32* %95
%97 = uitofp i32 %96 to double
%98 = uitofp i32 %92 to double
%99 = fdiv double %97, %98
%100 = fmul double %99, 1.000000e+04
%101 = fptoui double %100 to i32
br label %102
102: ; preds = %89, %94
%103 = phi i32 [ %101, %94 ], [ 10000, %89 ]
store i32 %103, i32* %7
%104 = getelementptr inbounds %struct.dm_st, %struct.dm_st* %15, i64 0, i32 1
%105 = load i8, i8* %104
%106 = sext i8 %105 to i32
store i32 %106, i32* %9
%107 = call i32 (i8*, i32, i8*, ...) bitcast (i32 (...)* @BBM_READ to i32 (i8*, i32, i8*, ...)*)(i8* %0, i32 16659, i8* %13)
%108 = load i8, i8* %13
%109 = and i8 %108, 112
store i8 %109, i8* %13
%110 = call i32 (i8*, i32, i8*, ...) bitcast (i32 (...)* @BBM_READ to i32 (i8*, i32, i8*, ...)*)(i8* %0, i32 16486, i8* %14)
%111 = load i8, i8* %14
%112 = icmp ult i8 %111, 50
br i1 %112, label %113, label %142
113: ; preds = %102
%114 = load i8, i8* %13
switch i8 %114, label %228 [
i8 64, label %115
i8 32, label %123
]
115: ; preds = %113
%116 = getelementptr inbounds %struct.dm_st, %struct.dm_st* %15, i64 0, i32 6
%117 = load i8, i8* %116
%118 = icmp ult i8 %117, 3
br i1 %118, label %119, label %120
119: ; preds = %115
store i8 0, i8* %116
br label %228
120: ; preds = %115
switch i8 %117, label %228 [
i8 3, label %121
i8 4, label %122
]
121: ; preds = %120
store i8 1, i8* %116
br label %228
122: ; preds = %120
store i8 3, i8* %116
br label %228
123: ; preds = %113
%124 = getelementptr inbounds %struct.dm_st, %struct.dm_st* %15, i64 0, i32 6
%125 = load i8, i8* %124
%126 = icmp ult i8 %125, 5
br i1 %126, label %127, label %128
127: ; preds = %123
store i8 0, i8* %124
br label %228
128: ; preds = %123
%129 = icmp ult i8 %125, 9
br i1 %129, label %130, label %132
130: ; preds = %128
%131 = add nsw i8 %125, -5
store i8 %131, i8* %124
br label %228
132: ; preds = %128
%133 = icmp eq i8 %125, 9
br i1 %133, label %134, label %135
134: ; preds = %132
store i8 5, i8* %124
br label %228
135: ; preds = %132
%136 = icmp ult i8 %125, 12
br i1 %136, label %137, label %139
137: ; preds = %135
%138 = add nsw i8 %125, -3
store i8 %138, i8* %124
br label %228
139: ; preds = %135
switch i8 %125, label %228 [
i8 12, label %140
i8 13, label %141
]
140: ; preds = %139
store i8 10, i8* %124
br label %228
141: ; preds = %139
store i8 12, i8* %124
br label %228
142: ; preds = %102
%143 = icmp ult i8 %111, 90
%144 = load i8, i8* %13
br i1 %143, label %145, label %187
145: ; preds = %142
switch i8 %144, label %228 [
i8 64, label %146
i8 32, label %166
]
146: ; preds = %145
%147 = getelementptr inbounds %struct.dm_st, %struct.dm_st* %15, i64 0, i32 6
%148 = load i8, i8* %147
%149 = icmp ult i8 %148, 3
br i1 %149, label %150, label %151
150: ; preds = %146
store i8 0, i8* %147
br label %228
151: ; preds = %146
switch i8 %148, label %154 [
i8 3, label %152
i8 4, label %153
]
152: ; preds = %151
store i8 1, i8* %147
br label %228
153: ; preds = %151
store i8 3, i8* %147
br label %228
154: ; preds = %151
%155 = icmp ult i8 %148, 9
br i1 %155, label %156, label %158
156: ; preds = %154
%157 = add nuw nsw i8 %148, 1
store i8 %157, i8* %147
br label %228
158: ; preds = %154
switch i8 %148, label %164 [
i8 9, label %159
i8 10, label %160
i8 11, label %161
i8 12, label %162
i8 13, label %163
]
159: ; preds = %158
store i8 11, i8* %147
br label %228
160: ; preds = %158
store i8 13, i8* %147
br label %228
161: ; preds = %158
store i8 15, i8* %147
br label %228
162: ; preds = %158
store i8 14, i8* %147
br label %228
163: ; preds = %158
store i8 16, i8* %147
br label %228
164: ; preds = %158
%165 = add i8 %148, 5
store i8 %165, i8* %147
br label %228
166: ; preds = %145
%167 = getelementptr inbounds %struct.dm_st, %struct.dm_st* %15, i64 0, i32 6
%168 = load i8, i8* %167
%169 = icmp ult i8 %168, 5
br i1 %169, label %170, label %171
170: ; preds = %166
store i8 0, i8* %167
br label %228
171: ; preds = %166
%172 = icmp ult i8 %168, 8
br i1 %172, label %173, label %175
173: ; preds = %171
%174 = add nsw i8 %168, -4
store i8 %174, i8* %167
br label %228
175: ; preds = %171
switch i8 %168, label %178 [
i8 8, label %176
i8 9, label %177
]
176: ; preds = %175
store i8 5, i8* %167
br label %228
177: ; preds = %175
store i8 7, i8* %167
br label %228
178: ; preds = %175
%179 = icmp ult i8 %168, 13
br i1 %179, label %180, label %182
180: ; preds = %178
%181 = add nuw nsw i8 %168, 1
store i8 %181, i8* %167
br label %228
182: ; preds = %178
switch i8 %168, label %185 [
i8 13, label %183
i8 14, label %184
]
183: ; preds = %182
store i8 15, i8* %167
br label %228
184: ; preds = %182
store i8 16, i8* %167
br label %228
185: ; preds = %182
%186 = add i8 %168, 3
store i8 %186, i8* %167
br label %228
187: ; preds = %142
switch i8 %144, label %228 [
i8 64, label %188
i8 32, label %209
]
188: ; preds = %187
%189 = getelementptr inbounds %struct.dm_st, %struct.dm_st* %15, i64 0, i32 6
%190 = load i8, i8* %189
%191 = icmp ult i8 %190, 3
br i1 %191, label %192, label %193
192: ; preds = %188
store i8 0, i8* %189
br label %228
193: ; preds = %188
switch i8 %190, label %196 [
i8 3, label %194
i8 4, label %195
]
194: ; preds = %193
store i8 1, i8* %189
br label %228
195: ; preds = %193
store i8 3, i8* %189
br label %228
196: ; preds = %193
%197 = icmp ult i8 %190, 8
br i1 %197, label %198, label %200
198: ; preds = %196
%199 = add nuw nsw i8 %190, 1
store i8 %199, i8* %189
br label %228
200: ; preds = %196
switch i8 %190, label %207 [
i8 8, label %201
i8 9, label %202
i8 10, label %203
i8 11, label %204
i8 12, label %205
i8 13, label %206
]
201: ; preds = %200
store i8 10, i8* %189
br label %228
202: ; preds = %200
store i8 12, i8* %189
br label %228
203: ; preds = %200
store i8 15, i8* %189
br label %228
204: ; preds = %200
store i8 14, i8* %189
br label %228
205: ; preds = %200
store i8 16, i8* %189
br label %228
206: ; preds = %200
store i8 18, i8* %189
br label %228
207: ; preds = %200
%208 = add i8 %190, 10
store i8 %208, i8* %189
br label %228
209: ; preds = %187
%210 = getelementptr inbounds %struct.dm_st, %struct.dm_st* %15, i64 0, i32 6
%211 = load i8, i8* %210
%212 = icmp ult i8 %211, 6
br i1 %212, label %213, label %214
213: ; preds = %209
store i8 0, i8* %210
br label %228
214: ; preds = %209
switch i8 %211, label %219 [
i8 6, label %215
i8 7, label %216
i8 8, label %217
i8 9, label %218
]
215: ; preds = %214
store i8 1, i8* %210
br label %228
216: ; preds = %214
store i8 4, i8* %210
br label %228
217: ; preds = %214
store i8 6, i8* %210
br label %228
218: ; preds = %214
store i8 8, i8* %210
br label %228
219: ; preds = %214
%220 = icmp ult i8 %211, 12
br i1 %220, label %221, label %223
221: ; preds = %219
%222 = add nuw nsw i8 %211, 2
store i8 %222, i8* %210
br label %228
223: ; preds = %219
%224 = icmp eq i8 %211, 12
br i1 %224, label %225, label %226
225: ; preds = %223
store i8 16, i8* %210
br label %228
226: ; preds = %223
%227 = add i8 %211, 7
store i8 %227, i8* %210
br label %228
228: ; preds = %187, %145, %139, %113, %120, %173, %177, %183, %185, %184, %180, %176, %170, %150, %153, %159, %161, %163, %164, %162, %160, %156, %152, %215, %217, %221, %226, %225, %218, %216, %213, %192, %195, %201, %203, %205, %207, %206, %204, %202, %198, %194, %121, %122, %119, %127, %134, %140, %141, %137, %130
%229 = getelementptr inbounds %struct.dm_st, %struct.dm_st* %15, i64 0, i32 6
%230 = load i8, i8* %229
store i8 %230, i8* %2
ret i32 0
}