void cmdline(int argc, char *argv[]) {
  short i, n;
  short varis = 11;
  char clockgen = get_Clkgen();
  char var[11][9] = {"--cas",    "--trc",    "--tras",  "--twr",
                     "--tmrd",   "--trfc",   "--trp",   "--trcd",
                     "--ramdiv", "--cpuclk", "--cpudiv"};
  short val[varis];
  for (n = 0; n < varis; n++) {
    val[n] = -1;
  }
  short timing = -100;
  int refperd = -1;
  float gamma = -1.;
  for (i = 1; i < argc; i++) {
    if (strcmp(argv[i], "--fpll") == 0)
      clockgen = 0;
    if (strcmp(argv[i], "--upll") == 0)
      clockgen = 1;
    for (n = 0; n < varis; n++) {
      if (strcmp(argv[i], var[n]) == 0) {
        if (i + 1 == argc) {
          printf("%s is missing it's parameter\r\n", var[n]);
          gp2x_deinit();
          exit(1);
        }
        val[n] = atoi(argv[i + 1]);
      }
    }
    if (strcmp(argv[i], "--refperd") == 0) {
      if (i + 1 == argc) {
        printf("%s is missing it's parameter\r\n", argv[i]);
        gp2x_deinit();
        exit(1);
      }
      refperd = atoi(argv[i + 1]);
    }
    if (strcmp(argv[i], "--gamma") == 0) {
      if (i + 1 == argc) {
        printf("%s is missing it's parameter\r\n", argv[i]);
        gp2x_deinit();
        exit(1);
      }
      gamma = atof(argv[i + 1]);
    }
    if (strcmp(argv[i], "--timing") == 0) {
      if (i + 1 == argc) {
        printf("%s is missing it's parameter\r\n", argv[i]);
        gp2x_deinit();
        exit(1);
      }
      timing = atoi(argv[i + 1]);
    }
  }
  if (clockgen == 0) {
    if (timing > -21) {
      if (timing < 37)
        set_add_FLCDCLK(timing);
    } else
      set_add_FLCDCLK(get_LCDClk(clockgen));
  }
  if (clockgen == 1) {
    if (timing > -7) {
      if (timing < 11)
        set_add_ULCDCLK(timing);
    } else
      set_add_ULCDCLK(get_LCDClk(clockgen));
  }
  if (refperd - 1 > -1) {
    if (refperd - 1 < 0xffff)
      set_REFPERD(refperd - 1);
  }
  if (gamma > 0.) {
    if (gamma < 15.)
      set_gamma(gamma);
  }
  if (val[0] - 2 > -1) {
    if (val[0] - 2 < 2)
      set_CAS(val[0] - 2);
  }
  if (val[1] - 1 > -1) {
    if (val[1] - 1 < 16)
      set_tRC(val[1] - 1);
  }
  if (val[2] - 1 > -1) {
    if (val[2] - 1 < 16)
      set_tRAS(val[2] - 1);
  }
  if (val[3] - 1 > -1) {
    if (val[3] - 1 < 16)
      set_tWR(val[3] - 1);
  }
  if (val[4] - 1 > -1) {
    if (val[4] - 1 < 16)
      set_tMRD(val[4] - 1);
  }
  if (val[5] - 1 > -1) {
    if (val[5] - 1 < 16)
      set_tRFC(val[5] - 1);
  }
  if (val[6] - 1 > -1) {
    if (val[6] < 16)
      set_tRP(val[6] - 1);
  }
  if (val[7] - 1 > -1) {
    if (val[7] - 1 < 16)
      set_tRCD(val[7] - 1);
  }
  if (val[8] - 1 > -1) {
    if (val[8] - 1 < 8)
      set_DCLK_Div(val[8] - 1);
  }
  if (val[9] > 32) {
    if (val[9] < 341)
      set_FCLK(val[9]);
  }
  if (val[10] - 1 > -1) {
    if (val[10] - 1 < 8)
      set_920_Div(val[10] - 1);
  }
}


x86 assembly (clang, -O0):
<cmdline>:
push   %rbp
mov    %rsp,%rbp
sub    $0xb0,%rsp
mov    %edi,-0x4(%rbp)
mov    %rsi,-0x10(%rbp)
movw   $0xb,-0x16(%rbp)
xor    %eax,%eax
call   1190 <get_Clkgen@plt>
mov    %al,-0x17(%rbp)
mov    0xdd7(%rip),%eax
mov    %eax,-0x21(%rbp)
movaps 0xdbe(%rip),%xmm0
movaps %xmm0,-0x30(%rbp)
movaps 0xda3(%rip),%xmm0
movaps %xmm0,-0x40(%rbp)
movaps 0xd88(%rip),%xmm0
movaps %xmm0,-0x50(%rbp)
movaps 0xd6d(%rip),%xmm0
movaps %xmm0,-0x60(%rbp)
movaps 0xd52(%rip),%xmm0
movaps %xmm0,-0x70(%rbp)
movaps 0xd37(%rip),%xmm0
movaps %xmm0,-0x80(%rbp)
movzwl -0x16(%rbp),%edx
mov    %edx,%eax
mov    %rsp,%rcx
mov    %rcx,-0x88(%rbp)
mov    %edx,%ecx
lea    0xf(%rcx,%rcx,1),%edx
mov    %edx,%ecx
and    $0xfffffff0,%ecx
mov    %ecx,%edx
mov    %rsp,%rcx
sub    %rdx,%rcx
mov    %rcx,-0xa8(%rbp)
mov    %rcx,%rsp
mov    %rax,-0x90(%rbp)
movw   $0x0,-0x14(%rbp)
movswl -0x14(%rbp),%eax
movswl -0x16(%rbp),%ecx
cmp    %ecx,%eax
jge    134a <cmdline+0xda>
mov    -0xa8(%rbp),%rax
movswq -0x14(%rbp),%rcx
movw   $0xffff,(%rax,%rcx,2)
mov    -0x14(%rbp),%ax
add    $0x1,%ax
mov    %ax,-0x14(%rbp)
jmp    1317 <cmdline+0xa7>
movw   $0xff9c,-0x92(%rbp)
9c ff
movl   $0xffffffff,-0x98(%rbp)
ff ff ff
movss  0xc9b(%rip),%xmm0
movss  %xmm0,-0x9c(%rbp)
ff
movw   $0x1,-0x12(%rbp)
movswl -0x12(%rbp),%eax
cmp    -0x4(%rbp),%eax
jge    1624 <cmdline+0x3b4>
mov    -0x10(%rbp),%rax
movswq -0x12(%rbp),%rcx
mov    (%rax,%rcx,8),%rdi
lea    0xcdf(%rip),%rsi
call   10c0 <strcmp@plt>
cmp    $0x0,%eax
jne    13a6 <cmdline+0x136>
movb   $0x0,-0x17(%rbp)
mov    -0x10(%rbp),%rax
movswq -0x12(%rbp),%rcx
mov    (%rax,%rcx,8),%rdi
lea    0xcc0(%rip),%rsi
call   10c0 <strcmp@plt>
cmp    $0x0,%eax
jne    13cc <cmdline+0x15c>
movb   $0x1,-0x17(%rbp)
movw   $0x0,-0x14(%rbp)
movswl -0x14(%rbp),%eax
movswl -0x16(%rbp),%ecx
cmp    %ecx,%eax
jge    1490 <cmdline+0x220>
mov    -0x10(%rbp),%rax
movswq -0x12(%rbp),%rcx
mov    (%rax,%rcx,8),%rdi
movswq -0x14(%rbp),%rax
lea    -0x80(%rbp),%rsi
imul   $0x9,%rax,%rax
add    %rax,%rsi
call   10c0 <strcmp@plt>
cmp    $0x0,%eax
jne    147a <cmdline+0x20a>
movswl -0x12(%rbp),%eax
add    $0x1,%eax
cmp    -0x4(%rbp),%eax
jne    144c <cmdline+0x1dc>
movswq -0x14(%rbp),%rax
lea    -0x80(%rbp),%rsi
imul   $0x9,%rax,%rax
add    %rax,%rsi
lea    0xc4d(%rip),%rdi
mov    $0x0,%al
call   1060 <printf@plt>
mov    $0x0,%al
call   1090 <gp2x_deinit@plt>
mov    $0x1,%edi
call   1170 <exit@plt>
mov    -0x10(%rbp),%rax
movswl -0x12(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
mov    (%rax,%rcx,8),%rdi
mov    $0x0,%al
call   1150 <atoi@plt>
mov    %eax,%ecx
mov    -0xa8(%rbp),%rax
mov    %cx,%dx
movswq -0x14(%rbp),%rcx
mov    %dx,(%rax,%rcx,2)
jmp    147f <cmdline+0x20f>
mov    -0x14(%rbp),%ax
add    $0x1,%ax
mov    %ax,-0x14(%rbp)
jmp    13d2 <cmdline+0x162>
mov    -0x10(%rbp),%rax
movswq -0x12(%rbp),%rcx
mov    (%rax,%rcx,8),%rdi
lea    0xbfc(%rip),%rsi
call   10c0 <strcmp@plt>
cmp    $0x0,%eax
jne    150d <cmdline+0x29d>
movswl -0x12(%rbp),%eax
add    $0x1,%eax
cmp    -0x4(%rbp),%eax
jne    14ee <cmdline+0x27e>
mov    -0x10(%rbp),%rax
movswq -0x12(%rbp),%rcx
mov    (%rax,%rcx,8),%rsi
lea    0xbab(%rip),%rdi
mov    $0x0,%al
call   1060 <printf@plt>
mov    $0x0,%al
call   1090 <gp2x_deinit@plt>
mov    $0x1,%edi
call   1170 <exit@plt>
mov    -0x10(%rbp),%rax
movswl -0x12(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
mov    (%rax,%rcx,8),%rdi
mov    $0x0,%al
call   1150 <atoi@plt>
mov    %eax,-0x98(%rbp)
mov    -0x10(%rbp),%rax
movswq -0x12(%rbp),%rcx
mov    (%rax,%rcx,8),%rdi
lea    0xb89(%rip),%rsi
call   10c0 <strcmp@plt>
cmp    $0x0,%eax
jne    1590 <cmdline+0x320>
movswl -0x12(%rbp),%eax
add    $0x1,%eax
cmp    -0x4(%rbp),%eax
jne    156b <cmdline+0x2fb>
mov    -0x10(%rbp),%rax
movswq -0x12(%rbp),%rcx
mov    (%rax,%rcx,8),%rsi
lea    0xb2e(%rip),%rdi
mov    $0x0,%al
call   1060 <printf@plt>
mov    $0x0,%al
call   1090 <gp2x_deinit@plt>
mov    $0x1,%edi
call   1170 <exit@plt>
mov    -0x10(%rbp),%rax
movswl -0x12(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
mov    (%rax,%rcx,8),%rdi
mov    $0x0,%al
call   1040 <atof@plt>
cvtsi2ss %eax,%xmm0
movss  %xmm0,-0x9c(%rbp)
ff
mov    -0x10(%rbp),%rax
movswq -0x12(%rbp),%rcx
mov    (%rax,%rcx,8),%rdi
lea    0xb0e(%rip),%rsi
call   10c0 <strcmp@plt>
cmp    $0x0,%eax
jne    160e <cmdline+0x39e>
movswl -0x12(%rbp),%eax
add    $0x1,%eax
cmp    -0x4(%rbp),%eax
jne    15ee <cmdline+0x37e>
mov    -0x10(%rbp),%rax
movswq -0x12(%rbp),%rcx
mov    (%rax,%rcx,8),%rsi
lea    0xaab(%rip),%rdi
mov    $0x0,%al
call   1060 <printf@plt>
mov    $0x0,%al
call   1090 <gp2x_deinit@plt>
mov    $0x1,%edi
call   1170 <exit@plt>
mov    -0x10(%rbp),%rax
movswl -0x12(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
mov    (%rax,%rcx,8),%rdi
mov    $0x0,%al
call   1150 <atoi@plt>
mov    %ax,-0x92(%rbp)
jmp    1613 <cmdline+0x3a3>
mov    -0x12(%rbp),%ax
add    $0x1,%ax
mov    %ax,-0x12(%rbp)
jmp    1373 <cmdline+0x103>
movsbl -0x17(%rbp),%eax
cmp    $0x0,%eax
jne    167d <cmdline+0x40d>
movswl -0x92(%rbp),%eax
cmp    $0xffffffeb,%eax
jle    1664 <cmdline+0x3f4>
movswl -0x92(%rbp),%eax
cmp    $0x25,%eax
jge    165f <cmdline+0x3ef>
movswl -0x92(%rbp),%edi
mov    $0x0,%al
call   10f0 <set_add_FLCDCLK@plt>
jmp    1678 <cmdline+0x408>
movsbl -0x17(%rbp),%edi
mov    $0x0,%al
call   1050 <get_LCDClk@plt>
mov    %eax,%edi
mov    $0x0,%al
call   10f0 <set_add_FLCDCLK@plt>
jmp    167d <cmdline+0x40d>
movsbl -0x17(%rbp),%eax
cmp    $0x1,%eax
jne    16d6 <cmdline+0x466>
movswl -0x92(%rbp),%eax
cmp    $0xfffffff9,%eax
jle    16bd <cmdline+0x44d>
movswl -0x92(%rbp),%eax
cmp    $0xb,%eax
jge    16b8 <cmdline+0x448>
movswl -0x92(%rbp),%edi
mov    $0x0,%al
call   1140 <set_add_ULCDCLK@plt>
jmp    16d1 <cmdline+0x461>
movsbl -0x17(%rbp),%edi
mov    $0x0,%al
call   1050 <get_LCDClk@plt>
mov    %eax,%edi
mov    $0x0,%al
call   1140 <set_add_ULCDCLK@plt>
jmp    16d6 <cmdline+0x466>
mov    -0x98(%rbp),%eax
sub    $0x1,%eax
cmp    $0xffffffff,%eax
jle    1711 <cmdline+0x4a1>
mov    -0x98(%rbp),%eax
sub    $0x1,%eax
cmp    $0xffff,%eax
jge    170c <cmdline+0x49c>
mov    -0x98(%rbp),%edi
sub    $0x1,%edi
mov    $0x0,%al
call   1070 <set_REFPERD@plt>
jmp    1711 <cmdline+0x4a1>
movss  -0x9c(%rbp),%xmm0
ff
cvtss2sd %xmm0,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    1760 <cmdline+0x4f0>
movss  -0x9c(%rbp),%xmm0
ff
cvtss2sd %xmm0,%xmm1
movsd  0x8ca(%rip),%xmm0
ucomisd %xmm1,%xmm0
jbe    175b <cmdline+0x4eb>
movss  -0x9c(%rbp),%xmm0
ff
cvtss2sd %xmm0,%xmm0
mov    $0x1,%al
call   1030 <set_gamma@plt>
jmp    1760 <cmdline+0x4f0>
mov    -0xa8(%rbp),%rax
movswl (%rax),%eax
sub    $0x2,%eax
cmp    $0xffffffff,%eax
jle    17a5 <cmdline+0x535>
mov    -0xa8(%rbp),%rax
movswl (%rax),%eax
sub    $0x2,%eax
cmp    $0x2,%eax
jge    17a0 <cmdline+0x530>
mov    -0xa8(%rbp),%rax
movswl (%rax),%edi
sub    $0x2,%edi
mov    $0x0,%al
call   1110 <set_CAS@plt>
jmp    17a5 <cmdline+0x535>
mov    -0xa8(%rbp),%rax
movswl 0x2(%rax),%eax
sub    $0x1,%eax
cmp    $0xffffffff,%eax
jle    17ed <cmdline+0x57d>
mov    -0xa8(%rbp),%rax
movswl 0x2(%rax),%eax
sub    $0x1,%eax
cmp    $0x10,%eax
jge    17e8 <cmdline+0x578>
mov    -0xa8(%rbp),%rax
movswl 0x2(%rax),%edi
sub    $0x1,%edi
mov    $0x0,%al
call   10b0 <set_tRC@plt>
jmp    17ed <cmdline+0x57d>
mov    -0xa8(%rbp),%rax
movswl 0x4(%rax),%eax
sub    $0x1,%eax
cmp    $0xffffffff,%eax
jle    1835 <cmdline+0x5c5>
mov    -0xa8(%rbp),%rax
movswl 0x4(%rax),%eax
sub    $0x1,%eax
cmp    $0x10,%eax
jge    1830 <cmdline+0x5c0>
mov    -0xa8(%rbp),%rax
movswl 0x4(%rax),%edi
sub    $0x1,%edi
mov    $0x0,%al
call   1100 <set_tRAS@plt>
jmp    1835 <cmdline+0x5c5>
mov    -0xa8(%rbp),%rax
movswl 0x6(%rax),%eax
sub    $0x1,%eax
cmp    $0xffffffff,%eax
jle    187d <cmdline+0x60d>
mov    -0xa8(%rbp),%rax
movswl 0x6(%rax),%eax
sub    $0x1,%eax
cmp    $0x10,%eax
jge    1878 <cmdline+0x608>
mov    -0xa8(%rbp),%rax
movswl 0x6(%rax),%edi
sub    $0x1,%edi
mov    $0x0,%al
call   1130 <set_tWR@plt>
jmp    187d <cmdline+0x60d>
mov    -0xa8(%rbp),%rax
movswl 0x8(%rax),%eax
sub    $0x1,%eax
cmp    $0xffffffff,%eax
jle    18c5 <cmdline+0x655>
mov    -0xa8(%rbp),%rax
movswl 0x8(%rax),%eax
sub    $0x1,%eax
cmp    $0x10,%eax
jge    18c0 <cmdline+0x650>
mov    -0xa8(%rbp),%rax
movswl 0x8(%rax),%edi
sub    $0x1,%edi
mov    $0x0,%al
call   1120 <set_tMRD@plt>
jmp    18c5 <cmdline+0x655>
mov    -0xa8(%rbp),%rax
movswl 0xa(%rax),%eax
sub    $0x1,%eax
cmp    $0xffffffff,%eax
jle    190d <cmdline+0x69d>
mov    -0xa8(%rbp),%rax
movswl 0xa(%rax),%eax
sub    $0x1,%eax
cmp    $0x10,%eax
jge    1908 <cmdline+0x698>
mov    -0xa8(%rbp),%rax
movswl 0xa(%rax),%edi
sub    $0x1,%edi
mov    $0x0,%al
call   1180 <set_tRFC@plt>
jmp    190d <cmdline+0x69d>
mov    -0xa8(%rbp),%rax
movswl 0xc(%rax),%eax
sub    $0x1,%eax
cmp    $0xffffffff,%eax
jle    1952 <cmdline+0x6e2>
mov    -0xa8(%rbp),%rax
movswl 0xc(%rax),%eax
cmp    $0x10,%eax
jge    194d <cmdline+0x6dd>
mov    -0xa8(%rbp),%rax
movswl 0xc(%rax),%edi
sub    $0x1,%edi
mov    $0x0,%al
call   1160 <set_tRP@plt>
jmp    1952 <cmdline+0x6e2>
mov    -0xa8(%rbp),%rax
movswl 0xe(%rax),%eax
sub    $0x1,%eax
cmp    $0xffffffff,%eax
jle    199a <cmdline+0x72a>
mov    -0xa8(%rbp),%rax
movswl 0xe(%rax),%eax
sub    $0x1,%eax
cmp    $0x10,%eax
jge    1995 <cmdline+0x725>
mov    -0xa8(%rbp),%rax
movswl 0xe(%rax),%edi
sub    $0x1,%edi
mov    $0x0,%al
call   10a0 <set_tRCD@plt>
jmp    199a <cmdline+0x72a>
mov    -0xa8(%rbp),%rax
movswl 0x10(%rax),%eax
sub    $0x1,%eax
cmp    $0xffffffff,%eax
jle    19e2 <cmdline+0x772>
mov    -0xa8(%rbp),%rax
movswl 0x10(%rax),%eax
sub    $0x1,%eax
cmp    $0x8,%eax
jge    19dd <cmdline+0x76d>
mov    -0xa8(%rbp),%rax
movswl 0x10(%rax),%edi
sub    $0x1,%edi
mov    $0x0,%al
call   10d0 <set_DCLK_Div@plt>
jmp    19e2 <cmdline+0x772>
mov    -0xa8(%rbp),%rax
movswl 0x12(%rax),%eax
cmp    $0x20,%eax
jle    1a23 <cmdline+0x7b3>
mov    -0xa8(%rbp),%rax
movswl 0x12(%rax),%eax
cmp    $0x155,%eax
jge    1a1e <cmdline+0x7ae>
mov    -0xa8(%rbp),%rax
movswl 0x12(%rax),%edi
mov    $0x0,%al
call   10e0 <set_FCLK@plt>
jmp    1a23 <cmdline+0x7b3>
mov    -0xa8(%rbp),%rax
movswl 0x14(%rax),%eax
sub    $0x1,%eax
cmp    $0xffffffff,%eax
jle    1a6b <cmdline+0x7fb>
mov    -0xa8(%rbp),%rax
movswl 0x14(%rax),%eax
sub    $0x1,%eax
cmp    $0x8,%eax
jge    1a66 <cmdline+0x7f6>
mov    -0xa8(%rbp),%rax
movswl 0x14(%rax),%edi
sub    $0x1,%edi
mov    $0x0,%al
call   1080 <set_920_Div@plt>
jmp    1a6b <cmdline+0x7fb>
mov    -0x88(%rbp),%rax
mov    %rax,%rsp
mov    %rbp,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<cmdline>:
push   %rbp
push   %r15
push   %r14
push   %r13
push   %r12
push   %rbx
sub    $0xb8,%rsp
mov    %rsi,%rbx
mov    %edi,%r14d
xor    %eax,%eax
call   1190 <get_Clkgen@plt>
mov    %eax,%ebp
mov    %rsp,0x48(%rsp)
mov    0xdd4(%rip),%eax
mov    %eax,0xaf(%rsp)
movaps 0xdb7(%rip),%xmm0
movaps %xmm0,0xa0(%rsp)
movaps 0xd98(%rip),%xmm0
movaps %xmm0,0x90(%rsp)
movaps 0xd79(%rip),%xmm0
movaps %xmm0,0x80(%rsp)
movaps 0xd5a(%rip),%xmm0
movaps %xmm0,0x70(%rsp)
movaps 0xd3e(%rip),%xmm0
movaps %xmm0,0x60(%rsp)
movdqa 0xd21(%rip),%xmm0
movdqa %xmm0,0x50(%rsp)
pcmpeqd %xmm0,%xmm0
movdqa %xmm0,0x20(%rsp)
movq   $0xffffffffffffffff,0x2e(%rsp)
ff ff
mov    %r14d,0xc(%rsp)
cmp    $0x2,%r14d
jl     14f4 <cmdline+0x284>
mov    $0x1,%r12w
mov    $0xff9c,%ax
mov    %eax,0x10(%rsp)
movl   $0xffffffff,0x14(%rsp)
ff
movss  0xccc(%rip),%xmm0
movss  %xmm0,0x18(%rsp)
mov    $0x1,%r15d
jmp    139b <cmdline+0x12b>
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax)
mov    0x40(%rsp),%rax
mov    (%rbx,%rax,8),%rdi
xor    %eax,%eax
call   1040 <atof@plt>
xorps  %xmm0,%xmm0
cvtsi2ss %eax,%xmm0
movss  %xmm0,0x18(%rsp)
mov    (%rbx,%r12,8),%r14
mov    %r14,%rdi
lea    0xd37(%rip),%rsi
call   10c0 <strcmp@plt>
test   %eax,%eax
je     14d0 <cmdline+0x260>
add    $0x1,%r12d
movswl %r12w,%r15d
cmp    0xc(%rsp),%r15d
jge    1512 <cmdline+0x2a2>
movswq %r12w,%r12
mov    (%rbx,%r12,8),%r14
mov    %r14,%rdi
lea    0xcc6(%rip),%rsi
call   10c0 <strcmp@plt>
test   %eax,%eax
movzbl %bpl,%ebp
cmove  %eax,%ebp
mov    %r14,%rdi
lea    0xcb5(%rip),%rsi
call   10c0 <strcmp@plt>
test   %eax,%eax
mov    $0x1,%eax
cmove  %eax,%ebp
mov    %ebp,0x1c(%rsp)
add    $0x1,%r15d
movslq %r15d,%rax
mov    %rax,0x40(%rsp)
lea    0x50(%rsp),%r13
xor    %ebp,%ebp
jmp    1402 <cmdline+0x192>
nopl   (%rax)
add    $0x1,%rbp
mov    (%rbx,%r12,8),%r14
add    $0x9,%r13
cmp    $0xb,%rbp
je     1440 <cmdline+0x1d0>
mov    %r14,%rdi
mov    %r13,%rsi
call   10c0 <strcmp@plt>
test   %eax,%eax
jne    13f0 <cmdline+0x180>
cmp    0xc(%rsp),%r15d
je     16c4 <cmdline+0x454>
mov    0x40(%rsp),%rax
mov    (%rbx,%rax,8),%rdi
xor    %eax,%eax
call   1150 <atoi@plt>
mov    %ax,0x20(%rsp,%rbp,2)
jmp    13f0 <cmdline+0x180>
cs nopw 0x0(%rax,%rax,1)
nopl   (%rax)
mov    %r14,%rdi
lea    0xc56(%rip),%rsi
call   10c0 <strcmp@plt>
test   %eax,%eax
je     1480 <cmdline+0x210>
mov    %r14,%rdi
lea    0xc4d(%rip),%rsi
call   10c0 <strcmp@plt>
test   %eax,%eax
mov    0x1c(%rsp),%ebp
jne    1371 <cmdline+0x101>
cmp    0xc(%rsp),%r15d
jne    1350 <cmdline+0xe0>
jmp    16e6 <cmdline+0x476>
xchg   %ax,%ax
cmp    0xc(%rsp),%r15d
mov    0x1c(%rsp),%ebp
je     16e6 <cmdline+0x476>
mov    0x40(%rsp),%rax
mov    (%rbx,%rax,8),%rdi
xor    %eax,%eax
call   1150 <atoi@plt>
mov    %eax,0x14(%rsp)
mov    (%rbx,%r12,8),%r14
mov    %r14,%rdi
lea    0xbf9(%rip),%rsi
call   10c0 <strcmp@plt>
test   %eax,%eax
jne    1371 <cmdline+0x101>
jmp    1350 <cmdline+0xe0>
cs nopw 0x0(%rax,%rax,1)
nopl   (%rax)
cmp    0xc(%rsp),%r15d
je     16e6 <cmdline+0x476>
mov    0x40(%rsp),%rax
mov    (%rbx,%rax,8),%rdi
xor    %eax,%eax
call   1150 <atoi@plt>
mov    %eax,0x10(%rsp)
jmp    1388 <cmdline+0x118>
movss  0xb04(%rip),%xmm0
movss  %xmm0,0x18(%rsp)
movl   $0xffffffff,0x14(%rsp)
ff
mov    $0xff9c,%ax
mov    %eax,0x10(%rsp)
cmp    $0x1,%bpl
je     153b <cmdline+0x2cb>
test   %bpl,%bpl
mov    0x48(%rsp),%rbx
mov    0x14(%rsp),%ebp
mov    0x10(%rsp),%eax
jne    1582 <cmdline+0x312>
cmp    $0xffec,%ax
jl     1559 <cmdline+0x2e9>
cmp    $0x24,%ax
jg     1582 <cmdline+0x312>
movswl %ax,%edi
jmp    1564 <cmdline+0x2f4>
mov    0x10(%rsp),%eax
cmp    $0xfffa,%ax
mov    0x48(%rsp),%rbx
mov    0x14(%rsp),%ebp
jl     156d <cmdline+0x2fd>
cmp    $0xa,%ax
jg     1582 <cmdline+0x312>
movswl %ax,%edi
jmp    157b <cmdline+0x30b>
xor    %edi,%edi
xor    %eax,%eax
call   1050 <get_LCDClk@plt>
mov    %eax,%edi
xor    %eax,%eax
call   10f0 <set_add_FLCDCLK@plt>
jmp    1582 <cmdline+0x312>
mov    $0x1,%edi
xor    %eax,%eax
call   1050 <get_LCDClk@plt>
mov    %eax,%edi
xor    %eax,%eax
call   1140 <set_add_ULCDCLK@plt>
add    $0xffffffff,%ebp
cmp    $0xfffe,%ebp
ja     1596 <cmdline+0x326>
mov    %ebp,%edi
xor    %eax,%eax
call   1070 <set_REFPERD@plt>
xorps  %xmm0,%xmm0
movss  0x18(%rsp),%xmm1
ucomiss %xmm0,%xmm1
jbe    15bf <cmdline+0x34f>
movss  0xa58(%rip),%xmm0
ucomiss %xmm1,%xmm0
jbe    15bf <cmdline+0x34f>
xorps  %xmm0,%xmm0
cvtss2sd %xmm1,%xmm0
mov    $0x1,%al
call   1030 <set_gamma@plt>
movzwl 0x20(%rsp),%edi
mov    %edi,%eax
and    $0xfffffffe,%eax
cmp    $0x2,%ax
jne    15d9 <cmdline+0x369>
add    $0xfffffffe,%edi
xor    %eax,%eax
call   1110 <set_CAS@plt>
movzwl 0x22(%rsp),%edi
add    $0xffffffff,%edi
cmp    $0xf,%di
ja     15ee <cmdline+0x37e>
xor    %eax,%eax
call   10b0 <set_tRC@plt>
movzwl 0x24(%rsp),%edi
add    $0xffffffff,%edi
cmp    $0xf,%di
ja     1603 <cmdline+0x393>
xor    %eax,%eax
call   1100 <set_tRAS@plt>
movzwl 0x26(%rsp),%edi
add    $0xffffffff,%edi
cmp    $0xf,%di
ja     1618 <cmdline+0x3a8>
xor    %eax,%eax
call   1130 <set_tWR@plt>
movzwl 0x28(%rsp),%edi
add    $0xffffffff,%edi
cmp    $0xf,%di
ja     162d <cmdline+0x3bd>
xor    %eax,%eax
call   1120 <set_tMRD@plt>
movzwl 0x2a(%rsp),%edi
add    $0xffffffff,%edi
cmp    $0xf,%di
ja     1642 <cmdline+0x3d2>
xor    %eax,%eax
call   1180 <set_tRFC@plt>
movzwl 0x2c(%rsp),%edi
add    $0xffffffff,%edi
cmp    $0xe,%di
ja     1657 <cmdline+0x3e7>
xor    %eax,%eax
call   1160 <set_tRP@plt>
movzwl 0x2e(%rsp),%edi
add    $0xffffffff,%edi
cmp    $0xf,%di
ja     166c <cmdline+0x3fc>
xor    %eax,%eax
call   10a0 <set_tRCD@plt>
movzwl 0x30(%rsp),%edi
add    $0xffffffff,%edi
cmp    $0x7,%di
ja     1681 <cmdline+0x411>
xor    %eax,%eax
call   10d0 <set_DCLK_Div@plt>
movzwl 0x32(%rsp),%edi
lea    -0x21(%rdi),%eax
movzwl %ax,%eax
cmp    $0x133,%eax
ja     169a <cmdline+0x42a>
xor    %eax,%eax
call   10e0 <set_FCLK@plt>
movzwl 0x34(%rsp),%edi
add    $0xffffffff,%edi
cmp    $0x7,%di
ja     16af <cmdline+0x43f>
xor    %eax,%eax
call   1080 <set_920_Div@plt>
mov    %rbx,%rsp
add    $0xb8,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
ret
lea    0x9b6(%rip),%rdi
mov    %r13,%rsi
xor    %eax,%eax
call   1060 <printf@plt>
xor    %eax,%eax
call   1090 <gp2x_deinit@plt>
mov    $0x1,%edi
call   1170 <exit@plt>
lea    0x994(%rip),%rdi
mov    %r14,%rsi
jmp    16ce <cmdline+0x45e>

LLVM IR (-O0):
@__const.cmdline.var = [11 x [9 x i8]] [[9 x i8] c"--cas\00\00\00\00", [9 x i8] c"--trc\00\00\00\00", [9 x i8] c"--tras\00\00\00", [9 x i8] c"--twr\00\00\00\00", [9 x i8] c"--tmrd\00\00\00", [9 x i8] c"--trfc\00\00\00", [9 x i8] c"--trp\00\00\00\00", [9 x i8] c"--trcd\00\00\00", [9 x i8] c"--ramdiv\00", [9 x i8] c"--cpuclk\00", [9 x i8] c"--cpudiv\00"]
@.str = [7 x i8] c"--fpll\00"
@.str.1 = [7 x i8] c"--upll\00"
@.str.2 = [31 x i8] c"%s is missing it's parameter\0D\0A\00"
@.str.3 = [10 x i8] c"--refperd\00"
@.str.4 = [8 x i8] c"--gamma\00"
@.str.5 = [9 x i8] c"--timing\00"
define void @cmdline(i32 %0, i8** %1) {
%3 = alloca i32
%4 = alloca i8**
%5 = alloca i16
%6 = alloca i16
%7 = alloca i16
%8 = alloca i8
%9 = alloca [11 x [9 x i8]]
%10 = alloca i8*
%11 = alloca i64
%12 = alloca i16
%13 = alloca i32
%14 = alloca float
store i32 %0, i32* %3
store i8** %1, i8*** %4
store i16 11, i16* %7
%15 = call i32 (...) @get_Clkgen()
%16 = trunc i32 %15 to i8
store i8 %16, i8* %8
%17 = bitcast [11 x [9 x i8]]* %9 to i8*
%18 = load i16, i16* %7
%19 = zext i16 %18 to i64
%20 = call i8* @llvm.stacksave()
store i8* %20, i8** %10
%21 = alloca i16, i64 %19
store i64 %19, i64* %11
store i16 0, i16* %6
br label %22
22: ; preds = %32, %2
%23 = load i16, i16* %6
%24 = sext i16 %23 to i32
%25 = load i16, i16* %7
%26 = sext i16 %25 to i32
%27 = icmp slt i32 %24, %26
br i1 %27, label %28, label %35
28: ; preds = %22
%29 = load i16, i16* %6
%30 = sext i16 %29 to i64
%31 = getelementptr inbounds i16, i16* %21, i64 %30
store i16 -1, i16* %31
br label %32
32: ; preds = %28
%33 = load i16, i16* %6
%34 = add i16 %33, 1
store i16 %34, i16* %6
br label %22
35: ; preds = %22
store i16 -100, i16* %12
store i32 -1, i32* %13
store float -1.000000e+00, float* %14
store i16 1, i16* %5
br label %36
36: ; preds = %204, %35
%37 = load i16, i16* %5
%38 = sext i16 %37 to i32
%39 = load i32, i32* %3
%40 = icmp slt i32 %38, %39
br i1 %40, label %41, label %207
41: ; preds = %36
%42 = load i8**, i8*** %4
%43 = load i16, i16* %5
%44 = sext i16 %43 to i64
%45 = getelementptr inbounds i8*, i8** %42, i64 %44
%46 = load i8*, i8** %45
%47 = call i32 @strcmp(i8* %46, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str, i64 0, i64 0))
%48 = icmp eq i32 %47, 0
br i1 %48, label %49, label %50
49: ; preds = %41
store i8 0, i8* %8
br label %50
50: ; preds = %49, %41
%51 = load i8**, i8*** %4
%52 = load i16, i16* %5
%53 = sext i16 %52 to i64
%54 = getelementptr inbounds i8*, i8** %51, i64 %53
%55 = load i8*, i8** %54
%56 = call i32 @strcmp(i8* %55, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.1, i64 0, i64 0))
%57 = icmp eq i32 %56, 0
br i1 %57, label %58, label %59
58: ; preds = %50
store i8 1, i8* %8
br label %59
59: ; preds = %58, %50
store i16 0, i16* %6
br label %60
60: ; preds = %105, %59
%61 = load i16, i16* %6
%62 = sext i16 %61 to i32
%63 = load i16, i16* %7
%64 = sext i16 %63 to i32
%65 = icmp slt i32 %62, %64
br i1 %65, label %66, label %108
66: ; preds = %60
%67 = load i8**, i8*** %4
%68 = load i16, i16* %5
%69 = sext i16 %68 to i64
%70 = getelementptr inbounds i8*, i8** %67, i64 %69
%71 = load i8*, i8** %70
%72 = load i16, i16* %6
%73 = sext i16 %72 to i64
%74 = getelementptr inbounds [11 x [9 x i8]], [11 x [9 x i8]]* %9, i64 0, i64 %73
%75 = getelementptr inbounds [9 x i8], [9 x i8]* %74, i64 0, i64 0
%76 = call i32 @strcmp(i8* %71, i8* %75)
%77 = icmp eq i32 %76, 0
br i1 %77, label %78, label %104
78: ; preds = %66
%79 = load i16, i16* %5
%80 = sext i16 %79 to i32
%81 = add nsw i32 %80, 1
%82 = load i32, i32* %3
%83 = icmp eq i32 %81, %82
br i1 %83, label %84, label %91
84: ; preds = %78
%85 = load i16, i16* %6
%86 = sext i16 %85 to i64
%87 = getelementptr inbounds [11 x [9 x i8]], [11 x [9 x i8]]* %9, i64 0, i64 %86
%88 = getelementptr inbounds [9 x i8], [9 x i8]* %87, i64 0, i64 0
%89 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([31 x i8], [31 x i8]* @.str.2, i64 0, i64 0), i8* %88)
%90 = call i32 (...) @gp2x_deinit()
unreachable
91: ; preds = %78
%92 = load i8**, i8*** %4
%93 = load i16, i16* %5
%94 = sext i16 %93 to i32
%95 = add nsw i32 %94, 1
%96 = sext i32 %95 to i64
%97 = getelementptr inbounds i8*, i8** %92, i64 %96
%98 = load i8*, i8** %97
%99 = call i32 (i8*, ...) bitcast (i32 (...)* @atoi to i32 (i8*, ...)*)(i8* %98)
%100 = trunc i32 %99 to i16
%101 = load i16, i16* %6
%102 = sext i16 %101 to i64
%103 = getelementptr inbounds i16, i16* %21, i64 %102
store i16 %100, i16* %103
br label %104
104: ; preds = %91, %66
br label %105
105: ; preds = %104
%106 = load i16, i16* %6
%107 = add i16 %106, 1
store i16 %107, i16* %6
br label %60
108: ; preds = %60
%109 = load i8**, i8*** %4
%110 = load i16, i16* %5
%111 = sext i16 %110 to i64
%112 = getelementptr inbounds i8*, i8** %109, i64 %111
%113 = load i8*, i8** %112
%114 = call i32 @strcmp(i8* %113, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.3, i64 0, i64 0))
%115 = icmp eq i32 %114, 0
br i1 %115, label %116, label %139
116: ; preds = %108
%117 = load i16, i16* %5
%118 = sext i16 %117 to i32
%119 = add nsw i32 %118, 1
%120 = load i32, i32* %3
%121 = icmp eq i32 %119, %120
br i1 %121, label %122, label %130
122: ; preds = %116
%123 = load i8**, i8*** %4
%124 = load i16, i16* %5
%125 = sext i16 %124 to i64
%126 = getelementptr inbounds i8*, i8** %123, i64 %125
%127 = load i8*, i8** %126
%128 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([31 x i8], [31 x i8]* @.str.2, i64 0, i64 0), i8* %127)
%129 = call i32 (...) @gp2x_deinit()
unreachable
130: ; preds = %116
%131 = load i8**, i8*** %4
%132 = load i16, i16* %5
%133 = sext i16 %132 to i32
%134 = add nsw i32 %133, 1
%135 = sext i32 %134 to i64
%136 = getelementptr inbounds i8*, i8** %131, i64 %135
%137 = load i8*, i8** %136
%138 = call i32 (i8*, ...) bitcast (i32 (...)* @atoi to i32 (i8*, ...)*)(i8* %137)
store i32 %138, i32* %13
br label %139
139: ; preds = %130, %108
%140 = load i8**, i8*** %4
%141 = load i16, i16* %5
%142 = sext i16 %141 to i64
%143 = getelementptr inbounds i8*, i8** %140, i64 %142
%144 = load i8*, i8** %143
%145 = call i32 @strcmp(i8* %144, i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.4, i64 0, i64 0))
%146 = icmp eq i32 %145, 0
br i1 %146, label %147, label %171
147: ; preds = %139
%148 = load i16, i16* %5
%149 = sext i16 %148 to i32
%150 = add nsw i32 %149, 1
%151 = load i32, i32* %3
%152 = icmp eq i32 %150, %151
br i1 %152, label %153, label %161
153: ; preds = %147
%154 = load i8**, i8*** %4
%155 = load i16, i16* %5
%156 = sext i16 %155 to i64
%157 = getelementptr inbounds i8*, i8** %154, i64 %156
%158 = load i8*, i8** %157
%159 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([31 x i8], [31 x i8]* @.str.2, i64 0, i64 0), i8* %158)
%160 = call i32 (...) @gp2x_deinit()
unreachable
161: ; preds = %147
%162 = load i8**, i8*** %4
%163 = load i16, i16* %5
%164 = sext i16 %163 to i32
%165 = add nsw i32 %164, 1
%166 = sext i32 %165 to i64
%167 = getelementptr inbounds i8*, i8** %162, i64 %166
%168 = load i8*, i8** %167
%169 = call i32 (i8*, ...) bitcast (i32 (...)* @atof to i32 (i8*, ...)*)(i8* %168)
%170 = sitofp i32 %169 to float
store float %170, float* %14
br label %171
171: ; preds = %161, %139
%172 = load i8**, i8*** %4
%173 = load i16, i16* %5
%174 = sext i16 %173 to i64
%175 = getelementptr inbounds i8*, i8** %172, i64 %174
%176 = load i8*, i8** %175
%177 = call i32 @strcmp(i8* %176, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.5, i64 0, i64 0))
%178 = icmp eq i32 %177, 0
br i1 %178, label %179, label %203
179: ; preds = %171
%180 = load i16, i16* %5
%181 = sext i16 %180 to i32
%182 = add nsw i32 %181, 1
%183 = load i32, i32* %3
%184 = icmp eq i32 %182, %183
br i1 %184, label %185, label %193
185: ; preds = %179
%186 = load i8**, i8*** %4
%187 = load i16, i16* %5
%188 = sext i16 %187 to i64
%189 = getelementptr inbounds i8*, i8** %186, i64 %188
%190 = load i8*, i8** %189
%191 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([31 x i8], [31 x i8]* @.str.2, i64 0, i64 0), i8* %190)
%192 = call i32 (...) @gp2x_deinit()
unreachable
193: ; preds = %179
%194 = load i8**, i8*** %4
%195 = load i16, i16* %5
%196 = sext i16 %195 to i32
%197 = add nsw i32 %196, 1
%198 = sext i32 %197 to i64
%199 = getelementptr inbounds i8*, i8** %194, i64 %198
%200 = load i8*, i8** %199
%201 = call i32 (i8*, ...) bitcast (i32 (...)* @atoi to i32 (i8*, ...)*)(i8* %200)
%202 = trunc i32 %201 to i16
store i16 %202, i16* %12
br label %203
203: ; preds = %193, %171
br label %204
204: ; preds = %203
%205 = load i16, i16* %5
%206 = add i16 %205, 1
store i16 %206, i16* %5
br label %36
207: ; preds = %36
%208 = load i8, i8* %8
%209 = sext i8 %208 to i32
%210 = icmp eq i32 %209, 0
br i1 %210, label %211, label %230
211: ; preds = %207
%212 = load i16, i16* %12
%213 = sext i16 %212 to i32
%214 = icmp sgt i32 %213, -21
br i1 %214, label %215, label %224
215: ; preds = %211
%216 = load i16, i16* %12
%217 = sext i16 %216 to i32
%218 = icmp slt i32 %217, 37
br i1 %218, label %219, label %223
219: ; preds = %215
%220 = load i16, i16* %12
%221 = sext i16 %220 to i32
%222 = call i32 (i32, ...) bitcast (i32 (...)* @set_add_FLCDCLK to i32 (i32, ...)*)(i32 %221)
br label %223
223: ; preds = %219, %215
br label %229
224: ; preds = %211
%225 = load i8, i8* %8
%226 = sext i8 %225 to i32
%227 = call i32 (i32, ...) bitcast (i32 (...)* @get_LCDClk to i32 (i32, ...)*)(i32 %226)
%228 = call i32 (i32, ...) bitcast (i32 (...)* @set_add_FLCDCLK to i32 (i32, ...)*)(i32 %227)
br label %229
229: ; preds = %224, %223
br label %230
230: ; preds = %229, %207
%231 = load i8, i8* %8
%232 = sext i8 %231 to i32
%233 = icmp eq i32 %232, 1
br i1 %233, label %234, label %253
234: ; preds = %230
%235 = load i16, i16* %12
%236 = sext i16 %235 to i32
%237 = icmp sgt i32 %236, -7
br i1 %237, label %238, label %247
238: ; preds = %234
%239 = load i16, i16* %12
%240 = sext i16 %239 to i32
%241 = icmp slt i32 %240, 11
br i1 %241, label %242, label %246
242: ; preds = %238
%243 = load i16, i16* %12
%244 = sext i16 %243 to i32
%245 = call i32 (i32, ...) bitcast (i32 (...)* @set_add_ULCDCLK to i32 (i32, ...)*)(i32 %244)
br label %246
246: ; preds = %242, %238
br label %252
247: ; preds = %234
%248 = load i8, i8* %8
%249 = sext i8 %248 to i32
%250 = call i32 (i32, ...) bitcast (i32 (...)* @get_LCDClk to i32 (i32, ...)*)(i32 %249)
%251 = call i32 (i32, ...) bitcast (i32 (...)* @set_add_ULCDCLK to i32 (i32, ...)*)(i32 %250)
br label %252
252: ; preds = %247, %246
br label %253
253: ; preds = %252, %230
%254 = load i32, i32* %13
%255 = sub nsw i32 %254, 1
%256 = icmp sgt i32 %255, -1
br i1 %256, label %257, label %266
257: ; preds = %253
%258 = load i32, i32* %13
%259 = sub nsw i32 %258, 1
%260 = icmp slt i32 %259, 65535
br i1 %260, label %261, label %265
261: ; preds = %257
%262 = load i32, i32* %13
%263 = sub nsw i32 %262, 1
%264 = call i32 (i32, ...) bitcast (i32 (...)* @set_REFPERD to i32 (i32, ...)*)(i32 %263)
br label %265
265: ; preds = %261, %257
br label %266
266: ; preds = %265, %253
%267 = load float, float* %14
%268 = fpext float %267 to double
%269 = fcmp ogt double %268, 0.000000e+00
br i1 %269, label %270, label %279
270: ; preds = %266
%271 = load float, float* %14
%272 = fpext float %271 to double
%273 = fcmp olt double %272, 1.500000e+01
br i1 %273, label %274, label %278
274: ; preds = %270
%275 = load float, float* %14
%276 = fpext float %275 to double
%277 = call i32 (double, ...) bitcast (i32 (...)* @set_gamma to i32 (double, ...)*)(double %276)
br label %278
278: ; preds = %274, %270
br label %279
279: ; preds = %278, %266
%280 = getelementptr inbounds i16, i16* %21, i64 0
%281 = load i16, i16* %280
%282 = sext i16 %281 to i32
%283 = sub nsw i32 %282, 2
%284 = icmp sgt i32 %283, -1
br i1 %284, label %285, label %298
285: ; preds = %279
%286 = getelementptr inbounds i16, i16* %21, i64 0
%287 = load i16, i16* %286
%288 = sext i16 %287 to i32
%289 = sub nsw i32 %288, 2
%290 = icmp slt i32 %289, 2
br i1 %290, label %291, label %297
291: ; preds = %285
%292 = getelementptr inbounds i16, i16* %21, i64 0
%293 = load i16, i16* %292
%294 = sext i16 %293 to i32
%295 = sub nsw i32 %294, 2
%296 = call i32 (i32, ...) bitcast (i32 (...)* @set_CAS to i32 (i32, ...)*)(i32 %295)
br label %297
297: ; preds = %291, %285
br label %298
298: ; preds = %297, %279
%299 = getelementptr inbounds i16, i16* %21, i64 1
%300 = load i16, i16* %299
%301 = sext i16 %300 to i32
%302 = sub nsw i32 %301, 1
%303 = icmp sgt i32 %302, -1
br i1 %303, label %304, label %317
304: ; preds = %298
%305 = getelementptr inbounds i16, i16* %21, i64 1
%306 = load i16, i16* %305
%307 = sext i16 %306 to i32
%308 = sub nsw i32 %307, 1
%309 = icmp slt i32 %308, 16
br i1 %309, label %310, label %316
310: ; preds = %304
%311 = getelementptr inbounds i16, i16* %21, i64 1
%312 = load i16, i16* %311
%313 = sext i16 %312 to i32
%314 = sub nsw i32 %313, 1
%315 = call i32 (i32, ...) bitcast (i32 (...)* @set_tRC to i32 (i32, ...)*)(i32 %314)
br label %316
316: ; preds = %310, %304
br label %317
317: ; preds = %316, %298
%318 = getelementptr inbounds i16, i16* %21, i64 2
%319 = load i16, i16* %318
%320 = sext i16 %319 to i32
%321 = sub nsw i32 %320, 1
%322 = icmp sgt i32 %321, -1
br i1 %322, label %323, label %336
323: ; preds = %317
%324 = getelementptr inbounds i16, i16* %21, i64 2
%325 = load i16, i16* %324
%326 = sext i16 %325 to i32
%327 = sub nsw i32 %326, 1
%328 = icmp slt i32 %327, 16
br i1 %328, label %329, label %335
329: ; preds = %323
%330 = getelementptr inbounds i16, i16* %21, i64 2
%331 = load i16, i16* %330
%332 = sext i16 %331 to i32
%333 = sub nsw i32 %332, 1
%334 = call i32 (i32, ...) bitcast (i32 (...)* @set_tRAS to i32 (i32, ...)*)(i32 %333)
br label %335
335: ; preds = %329, %323
br label %336
336: ; preds = %335, %317
%337 = getelementptr inbounds i16, i16* %21, i64 3
%338 = load i16, i16* %337
%339 = sext i16 %338 to i32
%340 = sub nsw i32 %339, 1
%341 = icmp sgt i32 %340, -1
br i1 %341, label %342, label %355
342: ; preds = %336
%343 = getelementptr inbounds i16, i16* %21, i64 3
%344 = load i16, i16* %343
%345 = sext i16 %344 to i32
%346 = sub nsw i32 %345, 1
%347 = icmp slt i32 %346, 16
br i1 %347, label %348, label %354
348: ; preds = %342
%349 = getelementptr inbounds i16, i16* %21, i64 3
%350 = load i16, i16* %349
%351 = sext i16 %350 to i32
%352 = sub nsw i32 %351, 1
%353 = call i32 (i32, ...) bitcast (i32 (...)* @set_tWR to i32 (i32, ...)*)(i32 %352)
br label %354
354: ; preds = %348, %342
br label %355
355: ; preds = %354, %336
%356 = getelementptr inbounds i16, i16* %21, i64 4
%357 = load i16, i16* %356
%358 = sext i16 %357 to i32
%359 = sub nsw i32 %358, 1
%360 = icmp sgt i32 %359, -1
br i1 %360, label %361, label %374
361: ; preds = %355
%362 = getelementptr inbounds i16, i16* %21, i64 4
%363 = load i16, i16* %362
%364 = sext i16 %363 to i32
%365 = sub nsw i32 %364, 1
%366 = icmp slt i32 %365, 16
br i1 %366, label %367, label %373
367: ; preds = %361
%368 = getelementptr inbounds i16, i16* %21, i64 4
%369 = load i16, i16* %368
%370 = sext i16 %369 to i32
%371 = sub nsw i32 %370, 1
%372 = call i32 (i32, ...) bitcast (i32 (...)* @set_tMRD to i32 (i32, ...)*)(i32 %371)
br label %373
373: ; preds = %367, %361
br label %374
374: ; preds = %373, %355
%375 = getelementptr inbounds i16, i16* %21, i64 5
%376 = load i16, i16* %375
%377 = sext i16 %376 to i32
%378 = sub nsw i32 %377, 1
%379 = icmp sgt i32 %378, -1
br i1 %379, label %380, label %393
380: ; preds = %374
%381 = getelementptr inbounds i16, i16* %21, i64 5
%382 = load i16, i16* %381
%383 = sext i16 %382 to i32
%384 = sub nsw i32 %383, 1
%385 = icmp slt i32 %384, 16
br i1 %385, label %386, label %392
386: ; preds = %380
%387 = getelementptr inbounds i16, i16* %21, i64 5
%388 = load i16, i16* %387
%389 = sext i16 %388 to i32
%390 = sub nsw i32 %389, 1
%391 = call i32 (i32, ...) bitcast (i32 (...)* @set_tRFC to i32 (i32, ...)*)(i32 %390)
br label %392
392: ; preds = %386, %380
br label %393
393: ; preds = %392, %374
%394 = getelementptr inbounds i16, i16* %21, i64 6
%395 = load i16, i16* %394
%396 = sext i16 %395 to i32
%397 = sub nsw i32 %396, 1
%398 = icmp sgt i32 %397, -1
br i1 %398, label %399, label %411
399: ; preds = %393
%400 = getelementptr inbounds i16, i16* %21, i64 6
%401 = load i16, i16* %400
%402 = sext i16 %401 to i32
%403 = icmp slt i32 %402, 16
br i1 %403, label %404, label %410
404: ; preds = %399
%405 = getelementptr inbounds i16, i16* %21, i64 6
%406 = load i16, i16* %405
%407 = sext i16 %406 to i32
%408 = sub nsw i32 %407, 1
%409 = call i32 (i32, ...) bitcast (i32 (...)* @set_tRP to i32 (i32, ...)*)(i32 %408)
br label %410
410: ; preds = %404, %399
br label %411
411: ; preds = %410, %393
%412 = getelementptr inbounds i16, i16* %21, i64 7
%413 = load i16, i16* %412
%414 = sext i16 %413 to i32
%415 = sub nsw i32 %414, 1
%416 = icmp sgt i32 %415, -1
br i1 %416, label %417, label %430
417: ; preds = %411
%418 = getelementptr inbounds i16, i16* %21, i64 7
%419 = load i16, i16* %418
%420 = sext i16 %419 to i32
%421 = sub nsw i32 %420, 1
%422 = icmp slt i32 %421, 16
br i1 %422, label %423, label %429
423: ; preds = %417
%424 = getelementptr inbounds i16, i16* %21, i64 7
%425 = load i16, i16* %424
%426 = sext i16 %425 to i32
%427 = sub nsw i32 %426, 1
%428 = call i32 (i32, ...) bitcast (i32 (...)* @set_tRCD to i32 (i32, ...)*)(i32 %427)
br label %429
429: ; preds = %423, %417
br label %430
430: ; preds = %429, %411
%431 = getelementptr inbounds i16, i16* %21, i64 8
%432 = load i16, i16* %431
%433 = sext i16 %432 to i32
%434 = sub nsw i32 %433, 1
%435 = icmp sgt i32 %434, -1
br i1 %435, label %436, label %449
436: ; preds = %430
%437 = getelementptr inbounds i16, i16* %21, i64 8
%438 = load i16, i16* %437
%439 = sext i16 %438 to i32
%440 = sub nsw i32 %439, 1
%441 = icmp slt i32 %440, 8
br i1 %441, label %442, label %448
442: ; preds = %436
%443 = getelementptr inbounds i16, i16* %21, i64 8
%444 = load i16, i16* %443
%445 = sext i16 %444 to i32
%446 = sub nsw i32 %445, 1
%447 = call i32 (i32, ...) bitcast (i32 (...)* @set_DCLK_Div to i32 (i32, ...)*)(i32 %446)
br label %448
448: ; preds = %442, %436
br label %449
449: ; preds = %448, %430
%450 = getelementptr inbounds i16, i16* %21, i64 9
%451 = load i16, i16* %450
%452 = sext i16 %451 to i32
%453 = icmp sgt i32 %452, 32
br i1 %453, label %454, label %465
454: ; preds = %449
%455 = getelementptr inbounds i16, i16* %21, i64 9
%456 = load i16, i16* %455
%457 = sext i16 %456 to i32
%458 = icmp slt i32 %457, 341
br i1 %458, label %459, label %464
459: ; preds = %454
%460 = getelementptr inbounds i16, i16* %21, i64 9
%461 = load i16, i16* %460
%462 = sext i16 %461 to i32
%463 = call i32 (i32, ...) bitcast (i32 (...)* @set_FCLK to i32 (i32, ...)*)(i32 %462)
br label %464
464: ; preds = %459, %454
br label %465
465: ; preds = %464, %449
%466 = getelementptr inbounds i16, i16* %21, i64 10
%467 = load i16, i16* %466
%468 = sext i16 %467 to i32
%469 = sub nsw i32 %468, 1
%470 = icmp sgt i32 %469, -1
br i1 %470, label %471, label %484
471: ; preds = %465
%472 = getelementptr inbounds i16, i16* %21, i64 10
%473 = load i16, i16* %472
%474 = sext i16 %473 to i32
%475 = sub nsw i32 %474, 1
%476 = icmp slt i32 %475, 8
br i1 %476, label %477, label %483
477: ; preds = %471
%478 = getelementptr inbounds i16, i16* %21, i64 10
%479 = load i16, i16* %478
%480 = sext i16 %479 to i32
%481 = sub nsw i32 %480, 1
%482 = call i32 (i32, ...) bitcast (i32 (...)* @set_920_Div to i32 (i32, ...)*)(i32 %481)
br label %483
483: ; preds = %477, %471
br label %484
484: ; preds = %483, %465
%485 = load i8*, i8** %10
ret void
}

LLVM IR (-O2):
@__const.cmdline.var = [11 x [9 x i8]] [[9 x i8] c"--cas\00\00\00\00", [9 x i8] c"--trc\00\00\00\00", [9 x i8] c"--tras\00\00\00", [9 x i8] c"--twr\00\00\00\00", [9 x i8] c"--tmrd\00\00\00", [9 x i8] c"--trfc\00\00\00", [9 x i8] c"--trp\00\00\00\00", [9 x i8] c"--trcd\00\00\00", [9 x i8] c"--ramdiv\00", [9 x i8] c"--cpuclk\00", [9 x i8] c"--cpudiv\00"]
@.str = [7 x i8] c"--fpll\00"
@.str.1 = [7 x i8] c"--upll\00"
@.str.2 = [31 x i8] c"%s is missing it's parameter\0D\0A\00"
@.str.3 = [10 x i8] c"--refperd\00"
@.str.4 = [8 x i8] c"--gamma\00"
@.str.5 = [9 x i8] c"--timing\00"
define void @cmdline(i32 %0, i8** nocapture %1) {
%3 = alloca [11 x [9 x i8]]
%4 = tail call i32 (...) @get_Clkgen()
%5 = getelementptr inbounds [11 x [9 x i8]], [11 x [9 x i8]]* %3, i64 0, i64 0, i64 0
%6 = tail call i8* @llvm.stacksave()
%7 = alloca [11 x i16]
%8 = bitcast [11 x i16]* %7 to i8*
%9 = trunc i32 %4 to i8
%10 = getelementptr inbounds [11 x i16], [11 x i16]* %7, i64 0, i64 0
%11 = icmp sgt i32 %0, 1
br i1 %11, label %12, label %96
12: ; preds = %2, %91
%13 = phi i32 [ %94, %91 ], [ 1, %2 ]
%14 = phi float [ %80, %91 ], [ -1.000000e+00, %2 ]
%15 = phi i32 [ %78, %91 ], [ -1, %2 ]
%16 = phi i16 [ %92, %91 ], [ -100, %2 ]
%17 = phi i16 [ %93, %91 ], [ 1, %2 ]
%18 = phi i8 [ %27, %91 ], [ %9, %2 ]
%19 = sext i16 %17 to i64
%20 = getelementptr inbounds i8*, i8** %1, i64 %19
%21 = load i8*, i8** %20
%22 = tail call i32 @strcmp(i8* dereferenceable(1) %21, i8* dereferenceable(7) getelementptr inbounds ([7 x i8], [7 x i8]* @.str, i64 0, i64 0))
%23 = icmp eq i32 %22, 0
%24 = select i1 %23, i8 0, i8 %18
%25 = tail call i32 @strcmp(i8* dereferenceable(1) %21, i8* dereferenceable(7) getelementptr inbounds ([7 x i8], [7 x i8]* @.str.1, i64 0, i64 0))
%26 = icmp eq i32 %25, 0
%27 = select i1 %26, i8 1, i8 %24
%28 = add nsw i32 %13, 1
%29 = icmp eq i32 %28, %0
%30 = sext i32 %28 to i64
%31 = getelementptr inbounds i8*, i8** %1, i64 %30
br label %32
32: ; preds = %47, %12
%33 = phi i8* [ %21, %12 ], [ %50, %47 ]
%34 = phi i64 [ 0, %12 ], [ %48, %47 ]
%35 = getelementptr inbounds [11 x [9 x i8]], [11 x [9 x i8]]* %3, i64 0, i64 %34, i64 0
%36 = call i32 @strcmp(i8* dereferenceable(1) %33, i8* %35)
%37 = icmp eq i32 %36, 0
br i1 %37, label %38, label %47
38: ; preds = %32
br i1 %29, label %39, label %42
39: ; preds = %38
%40 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([31 x i8], [31 x i8]* @.str.2, i64 0, i64 0), i8* %35)
%41 = call i32 (...) @gp2x_deinit()
unreachable
42: ; preds = %38
%43 = load i8*, i8** %31
%44 = tail call i32 (i8*, ...) bitcast (i32 (...)* @atoi to i32 (i8*, ...)*)(i8* %43)
%45 = trunc i32 %44 to i16
%46 = getelementptr inbounds [11 x i16], [11 x i16]* %7, i64 0, i64 %34
store i16 %45, i16* %46
br label %47
47: ; preds = %32, %42
%48 = add nuw nsw i64 %34, 1
%49 = icmp eq i64 %48, 11
%50 = load i8*, i8** %20
br i1 %49, label %51, label %32
51: ; preds = %47
%52 = tail call i32 @strcmp(i8* dereferenceable(1) %50, i8* dereferenceable(10) getelementptr inbounds ([10 x i8], [10 x i8]* @.str.3, i64 0, i64 0))
%53 = icmp eq i32 %52, 0
br i1 %53, label %54, label %58
54: ; preds = %51
br i1 %29, label %55, label %61
55: ; preds = %54
%56 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([31 x i8], [31 x i8]* @.str.2, i64 0, i64 0), i8* %50)
%57 = tail call i32 (...) @gp2x_deinit()
tail call void @exit(i32 1)
unreachable
58: ; preds = %51
%59 = tail call i32 @strcmp(i8* dereferenceable(1) %50, i8* dereferenceable(8) getelementptr inbounds ([8 x i8], [8 x i8]* @.str.4, i64 0, i64 0))
%60 = icmp eq i32 %59, 0
br i1 %60, label %67, label %77
61: ; preds = %54
%62 = load i8*, i8** %31
%63 = tail call i32 (i8*, ...) bitcast (i32 (...)* @atoi to i32 (i8*, ...)*)(i8* %62)
%64 = load i8*, i8** %20
%65 = tail call i32 @strcmp(i8* dereferenceable(1) %64, i8* dereferenceable(8) getelementptr inbounds ([8 x i8], [8 x i8]* @.str.4, i64 0, i64 0))
%66 = icmp eq i32 %65, 0
br i1 %66, label %71, label %77
67: ; preds = %58
br i1 %29, label %68, label %71
68: ; preds = %67
%69 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([31 x i8], [31 x i8]* @.str.2, i64 0, i64 0), i8* %50)
%70 = tail call i32 (...) @gp2x_deinit()
tail call void @exit(i32 1)
unreachable
71: ; preds = %61, %67
%72 = phi i32 [ %15, %67 ], [ %63, %61 ]
%73 = load i8*, i8** %31
%74 = tail call i32 (i8*, ...) bitcast (i32 (...)* @atof to i32 (i8*, ...)*)(i8* %73)
%75 = sitofp i32 %74 to float
%76 = load i8*, i8** %20
br label %77
77: ; preds = %61, %71, %58
%78 = phi i32 [ %72, %71 ], [ %15, %58 ], [ %63, %61 ]
%79 = phi i8* [ %76, %71 ], [ %50, %58 ], [ %64, %61 ]
%80 = phi float [ %75, %71 ], [ %14, %58 ], [ %14, %61 ]
%81 = tail call i32 @strcmp(i8* dereferenceable(1) %79, i8* dereferenceable(9) getelementptr inbounds ([9 x i8], [9 x i8]* @.str.5, i64 0, i64 0))
%82 = icmp eq i32 %81, 0
br i1 %82, label %83, label %91
83: ; preds = %77
br i1 %29, label %84, label %87
84: ; preds = %83
%85 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([31 x i8], [31 x i8]* @.str.2, i64 0, i64 0), i8* %79)
%86 = tail call i32 (...) @gp2x_deinit()
tail call void @exit(i32 1)
unreachable
87: ; preds = %83
%88 = load i8*, i8** %31
%89 = tail call i32 (i8*, ...) bitcast (i32 (...)* @atoi to i32 (i8*, ...)*)(i8* %88)
%90 = trunc i32 %89 to i16
br label %91
91: ; preds = %77, %87
%92 = phi i16 [ %90, %87 ], [ %16, %77 ]
%93 = add i16 %17, 1
%94 = sext i16 %93 to i32
%95 = icmp slt i32 %94, %0
br i1 %95, label %12, label %96
96: ; preds = %91, %2
%97 = phi i8 [ %9, %2 ], [ %27, %91 ]
%98 = phi i16 [ -100, %2 ], [ %92, %91 ]
%99 = phi i32 [ -1, %2 ], [ %78, %91 ]
%100 = phi float [ -1.000000e+00, %2 ], [ %80, %91 ]
switch i8 %97, label %121 [
i8 0, label %101
i8 1, label %111
]
101: ; preds = %96
%102 = sext i16 %98 to i32
%103 = icmp sgt i16 %98, -21
br i1 %103, label %104, label %108
104: ; preds = %101
%105 = icmp slt i16 %98, 37
br i1 %105, label %106, label %121
106: ; preds = %104
%107 = tail call i32 (i32, ...) bitcast (i32 (...)* @set_add_FLCDCLK to i32 (i32, ...)*)(i32 %102)
br label %121
108: ; preds = %101
%109 = tail call i32 (i32, ...) bitcast (i32 (...)* @get_LCDClk to i32 (i32, ...)*)(i32 0)
%110 = tail call i32 (i32, ...) bitcast (i32 (...)* @set_add_FLCDCLK to i32 (i32, ...)*)(i32 %109)
br label %121
111: ; preds = %96
%112 = sext i16 %98 to i32
%113 = icmp sgt i16 %98, -7
br i1 %113, label %114, label %118
114: ; preds = %111
%115 = icmp slt i16 %98, 11
br i1 %115, label %116, label %121
116: ; preds = %114
%117 = tail call i32 (i32, ...) bitcast (i32 (...)* @set_add_ULCDCLK to i32 (i32, ...)*)(i32 %112)
br label %121
118: ; preds = %111
%119 = tail call i32 (i32, ...) bitcast (i32 (...)* @get_LCDClk to i32 (i32, ...)*)(i32 1)
%120 = tail call i32 (i32, ...) bitcast (i32 (...)* @set_add_ULCDCLK to i32 (i32, ...)*)(i32 %119)
br label %121
121: ; preds = %104, %106, %108, %96, %118, %116, %114
%122 = add i32 %99, -1
%123 = icmp ult i32 %122, 65535
br i1 %123, label %124, label %126
124: ; preds = %121
%125 = tail call i32 (i32, ...) bitcast (i32 (...)* @set_REFPERD to i32 (i32, ...)*)(i32 %122)
br label %126
126: ; preds = %124, %121
%127 = fcmp ogt float %100, 0.000000e+00
%128 = fcmp olt float %100, 1.500000e+01
%129 = and i1 %127, %128
br i1 %129, label %130, label %133
130: ; preds = %126
%131 = fpext float %100 to double
%132 = tail call i32 (double, ...) bitcast (i32 (...)* @set_gamma to i32 (double, ...)*)(double %131)
br label %133
133: ; preds = %130, %126
%134 = load i16, i16* %10
%135 = and i16 %134, -2
%136 = icmp eq i16 %135, 2
br i1 %136, label %137, label %141
137: ; preds = %133
%138 = zext i16 %134 to i32
%139 = add nsw i32 %138, -2
%140 = tail call i32 (i32, ...) bitcast (i32 (...)* @set_CAS to i32 (i32, ...)*)(i32 %139)
br label %141
141: ; preds = %137, %133
%142 = getelementptr inbounds [11 x i16], [11 x i16]* %7, i64 0, i64 1
%143 = load i16, i16* %142
%144 = add i16 %143, -1
%145 = icmp ult i16 %144, 16
br i1 %145, label %146, label %150
146: ; preds = %141
%147 = zext i16 %143 to i32
%148 = add nsw i32 %147, -1
%149 = tail call i32 (i32, ...) bitcast (i32 (...)* @set_tRC to i32 (i32, ...)*)(i32 %148)
br label %150
150: ; preds = %146, %141
%151 = getelementptr inbounds [11 x i16], [11 x i16]* %7, i64 0, i64 2
%152 = load i16, i16* %151
%153 = add i16 %152, -1
%154 = icmp ult i16 %153, 16
br i1 %154, label %155, label %159
155: ; preds = %150
%156 = zext i16 %152 to i32
%157 = add nsw i32 %156, -1
%158 = tail call i32 (i32, ...) bitcast (i32 (...)* @set_tRAS to i32 (i32, ...)*)(i32 %157)
br label %159
159: ; preds = %155, %150
%160 = getelementptr inbounds [11 x i16], [11 x i16]* %7, i64 0, i64 3
%161 = load i16, i16* %160
%162 = add i16 %161, -1
%163 = icmp ult i16 %162, 16
br i1 %163, label %164, label %168
164: ; preds = %159
%165 = zext i16 %161 to i32
%166 = add nsw i32 %165, -1
%167 = tail call i32 (i32, ...) bitcast (i32 (...)* @set_tWR to i32 (i32, ...)*)(i32 %166)
br label %168
168: ; preds = %164, %159
%169 = getelementptr inbounds [11 x i16], [11 x i16]* %7, i64 0, i64 4
%170 = load i16, i16* %169
%171 = add i16 %170, -1
%172 = icmp ult i16 %171, 16
br i1 %172, label %173, label %177
173: ; preds = %168
%174 = zext i16 %170 to i32
%175 = add nsw i32 %174, -1
%176 = tail call i32 (i32, ...) bitcast (i32 (...)* @set_tMRD to i32 (i32, ...)*)(i32 %175)
br label %177
177: ; preds = %173, %168
%178 = getelementptr inbounds [11 x i16], [11 x i16]* %7, i64 0, i64 5
%179 = load i16, i16* %178
%180 = add i16 %179, -1
%181 = icmp ult i16 %180, 16
br i1 %181, label %182, label %186
182: ; preds = %177
%183 = zext i16 %179 to i32
%184 = add nsw i32 %183, -1
%185 = tail call i32 (i32, ...) bitcast (i32 (...)* @set_tRFC to i32 (i32, ...)*)(i32 %184)
br label %186
186: ; preds = %182, %177
%187 = getelementptr inbounds [11 x i16], [11 x i16]* %7, i64 0, i64 6
%188 = load i16, i16* %187
%189 = add i16 %188, -1
%190 = icmp ult i16 %189, 15
br i1 %190, label %191, label %195
191: ; preds = %186
%192 = zext i16 %188 to i32
%193 = add nsw i32 %192, -1
%194 = tail call i32 (i32, ...) bitcast (i32 (...)* @set_tRP to i32 (i32, ...)*)(i32 %193)
br label %195
195: ; preds = %191, %186
%196 = getelementptr inbounds [11 x i16], [11 x i16]* %7, i64 0, i64 7
%197 = load i16, i16* %196
%198 = add i16 %197, -1
%199 = icmp ult i16 %198, 16
br i1 %199, label %200, label %204
200: ; preds = %195
%201 = zext i16 %197 to i32
%202 = add nsw i32 %201, -1
%203 = tail call i32 (i32, ...) bitcast (i32 (...)* @set_tRCD to i32 (i32, ...)*)(i32 %202)
br label %204
204: ; preds = %200, %195
%205 = getelementptr inbounds [11 x i16], [11 x i16]* %7, i64 0, i64 8
%206 = load i16, i16* %205
%207 = add i16 %206, -1
%208 = icmp ult i16 %207, 8
br i1 %208, label %209, label %213
209: ; preds = %204
%210 = zext i16 %206 to i32
%211 = add nsw i32 %210, -1
%212 = tail call i32 (i32, ...) bitcast (i32 (...)* @set_DCLK_Div to i32 (i32, ...)*)(i32 %211)
br label %213
213: ; preds = %209, %204
%214 = getelementptr inbounds [11 x i16], [11 x i16]* %7, i64 0, i64 9
%215 = load i16, i16* %214
%216 = add i16 %215, -33
%217 = icmp ult i16 %216, 308
br i1 %217, label %218, label %221
218: ; preds = %213
%219 = zext i16 %215 to i32
%220 = tail call i32 (i32, ...) bitcast (i32 (...)* @set_FCLK to i32 (i32, ...)*)(i32 %219)
br label %221
221: ; preds = %218, %213
%222 = getelementptr inbounds [11 x i16], [11 x i16]* %7, i64 0, i64 10
%223 = load i16, i16* %222
%224 = add i16 %223, -1
%225 = icmp ult i16 %224, 8
br i1 %225, label %226, label %230
226: ; preds = %221
%227 = zext i16 %223 to i32
%228 = add nsw i32 %227, -1
%229 = tail call i32 (i32, ...) bitcast (i32 (...)* @set_920_Div to i32 (i32, ...)*)(i32 %228)
br label %230
230: ; preds = %226, %221
tail call void @llvm.stackrestore(i8* %6)
ret void
}