Advertisement
Guest User

Tris Original

a guest
Dec 18th, 2015
552
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.     .file   "es8.c"
  2.     .section    .rodata
  3.     .align 8
  4. .LC0:
  5.     .string "Choose the part to execute:\n\t1 \t: Part 1 (Christmas tree)\n\t2 \t: Part 2 (Tic-tac-toe)\n\tother \t: Exit\n"
  6. .LC1:
  7.     .string "%i"
  8.     .align 8
  9. .LC2:
  10.     .string "Insert the width of your tree (must be a odd number)"
  11.     .align 8
  12. .LC6:
  13.     .string "Do you want to challenge the AI? (0=No, 1=Yes)"
  14. .LC7:
  15.     .string "Draw!"
  16. .LC8:
  17.     .string "Player %d win!\n\n"
  18. .LC9:
  19.     .string "Player %d's turn...\n"
  20.     .align 8
  21. .LC10:
  22.     .string "Insert the x and y coordinates:"
  23.     .align 8
  24. .LC11:
  25.     .string "Bad coordinates, or location already filled"
  26. .LC14:
  27.     .string "-+-+-"
  28.     .text
  29.     .globl  main
  30.     .type   main, @function
  31. main:
  32. .LFB0:
  33.     .cfi_startproc
  34.     pushq   %rbp
  35.     .cfi_def_cfa_offset 16
  36.     .cfi_offset 6, -16
  37.     movq    %rsp, %rbp
  38.     .cfi_def_cfa_register 6
  39.     pushq   %r13
  40.     pushq   %r12
  41.     pushq   %rbx
  42.     subq    $40, %rsp
  43.     .cfi_offset 13, -24
  44.     .cfi_offset 12, -32
  45.     .cfi_offset 3, -40
  46.     movl    $0, -36(%rbp)
  47.     movl    $0, %edi
  48.     call    time
  49.     movl    %eax, %edi
  50.     call    srand
  51.     jmp .L2
  52. .L104:
  53.     movl    -36(%rbp), %eax
  54.     testl   %eax, %eax
  55.     jne .L3
  56.     movl    $.LC0, %edi
  57.     call    puts
  58.     leaq    -36(%rbp), %rax
  59.     movq    %rax, %rsi
  60.     movl    $.LC1, %edi
  61.     movl    $0, %eax
  62.     call    __isoc99_scanf
  63.     movl    -36(%rbp), %eax
  64.     cmpl    $1, %eax
  65.     je  .L2
  66.     movl    -36(%rbp), %eax
  67.     cmpl    $2, %eax
  68.     je  .L2
  69.     movl    $-1, -36(%rbp)
  70.     jmp .L2
  71. .L3:
  72.     movl    -36(%rbp), %eax
  73.     cmpl    $1, %eax
  74.     jne .L4
  75.     movl    $-1, -40(%rbp)
  76.     jmp .L5
  77. .L6:
  78.     movl    $.LC2, %edi
  79.     call    puts
  80.     leaq    -40(%rbp), %rax
  81.     movq    %rax, %rsi
  82.     movl    $.LC1, %edi
  83.     movl    $0, %eax
  84.     call    __isoc99_scanf
  85. .L5:
  86.     movl    -40(%rbp), %eax
  87.     testl   %eax, %eax
  88.     jle .L6
  89.     movl    -40(%rbp), %eax
  90.     andl    $1, %eax
  91.     testl   %eax, %eax
  92.     je  .L6
  93.     movl    $0, -36(%rbp)
  94.     jmp .L7
  95. .L13:
  96.     movl    -36(%rbp), %eax
  97.     movl    -40(%rbp), %ecx
  98.     movl    %eax, %edx
  99.     sarl    $31, %edx
  100.     idivl   %ecx
  101.     movl    %edx, %ecx
  102.     movl    -40(%rbp), %eax
  103.     movl    %eax, %edx
  104.     shrl    $31, %edx
  105.     addl    %edx, %eax
  106.     sarl    %eax
  107.     movl    %eax, %esi
  108.     movl    -36(%rbp), %eax
  109.     movl    -40(%rbp), %edx
  110.     movl    %edx, -60(%rbp)
  111.     movl    %eax, %edx
  112.     sarl    $31, %edx
  113.     idivl   -60(%rbp)
  114.     movl    %esi, %edx
  115.     subl    %eax, %edx
  116.     movl    %edx, %eax
  117.     cmpl    %eax, %ecx
  118.     jl  .L8
  119.     movl    -36(%rbp), %eax
  120.     movl    -40(%rbp), %ecx
  121.     movl    %eax, %edx
  122.     sarl    $31, %edx
  123.     idivl   %ecx
  124.     movl    %edx, %ecx
  125.     movl    -40(%rbp), %eax
  126.     movl    %eax, %edx
  127.     shrl    $31, %edx
  128.     addl    %edx, %eax
  129.     sarl    %eax
  130.     movl    %eax, %esi
  131.     movl    -36(%rbp), %eax
  132.     movl    -40(%rbp), %edx
  133.     movl    %edx, -60(%rbp)
  134.     movl    %eax, %edx
  135.     sarl    $31, %edx
  136.     idivl   -60(%rbp)
  137.     addl    %esi, %eax
  138.     cmpl    %eax, %ecx
  139.     jle .L9
  140. .L8:
  141.     movl    $32, %edi
  142.     call    putchar
  143.     jmp .L10
  144. .L9:
  145.     movl    -36(%rbp), %eax
  146.     movl    -40(%rbp), %ecx
  147.     movl    %ecx, -60(%rbp)
  148.     movl    %eax, %edx
  149.     sarl    $31, %edx
  150.     idivl   -60(%rbp)
  151.     movl    %eax, %ecx
  152.     movl    -36(%rbp), %eax
  153.     movl    -40(%rbp), %esi
  154.     movl    %eax, %edx
  155.     sarl    $31, %edx
  156.     idivl   %esi
  157.     movl    %edx, %eax
  158.     leal    (%rcx,%rax), %edx
  159.     movl    -40(%rbp), %eax
  160.     movl    %eax, %ecx
  161.     shrl    $31, %ecx
  162.     addl    %ecx, %eax
  163.     sarl    %eax
  164.     addl    %eax, %edx
  165.     movl    %edx, %eax
  166.     sarl    $31, %eax
  167.     shrl    $31, %eax
  168.     addl    %eax, %edx
  169.     andl    $1, %edx
  170.     movl    %edx, %ecx
  171.     subl    %eax, %ecx
  172.     movl    %ecx, %eax
  173.     cmpl    $1, %eax
  174.     jne .L11
  175.     movl    $48, %edi
  176.     call    putchar
  177.     jmp .L10
  178. .L11:
  179.     movl    $42, %edi
  180.     call    putchar
  181. .L10:
  182.     movl    -36(%rbp), %eax
  183.     movl    -40(%rbp), %ecx
  184.     movl    %eax, %edx
  185.     sarl    $31, %edx
  186.     idivl   %ecx
  187.     movl    %edx, %eax
  188.     movl    -40(%rbp), %edx
  189.     subl    $1, %edx
  190.     cmpl    %edx, %eax
  191.     jne .L12
  192.     movl    $10, %edi
  193.     call    putchar
  194. .L12:
  195.     movl    -36(%rbp), %eax
  196.     addl    $1, %eax
  197.     movl    %eax, -36(%rbp)
  198. .L7:
  199.     movl    -40(%rbp), %eax
  200.     movl    %eax, %edx
  201.     shrl    $31, %edx
  202.     addl    %edx, %eax
  203.     sarl    %eax
  204.     leal    1(%rax), %edx
  205.     movl    -40(%rbp), %eax
  206.     imull   %eax, %edx
  207.     movl    -36(%rbp), %eax
  208.     cmpl    %eax, %edx
  209.     jg  .L13
  210.     movl    $0, -36(%rbp)
  211.     jmp .L14
  212. .L19:
  213.     movl    -36(%rbp), %eax
  214.     movl    -40(%rbp), %ecx
  215.     movl    %eax, %edx
  216.     sarl    $31, %edx
  217.     idivl   %ecx
  218.     movl    %edx, %ebx
  219.     movl    -40(%rbp), %r12d
  220.     movl    -40(%rbp), %eax
  221.     cvtsi2sd    %eax, %xmm0
  222.     movsd   .LC3(%rip), %xmm1
  223.     divsd   %xmm1, %xmm0
  224.     unpcklpd    %xmm0, %xmm0
  225.     cvtpd2ps    %xmm0, %xmm0
  226.     call    roundf
  227.     movss   %xmm0, -52(%rbp)
  228.     movl    -40(%rbp), %eax
  229.     cvtsi2sd    %eax, %xmm0
  230.     movsd   .LC3(%rip), %xmm1
  231.     divsd   %xmm1, %xmm0
  232.     unpcklpd    %xmm0, %xmm0
  233.     cvtpd2ps    %xmm0, %xmm0
  234.     call    roundf
  235.     movss   .LC4(%rip), %xmm1
  236.     addss   %xmm1, %xmm0
  237.     cvttss2si   %xmm0, %eax
  238.     movl    %eax, %edx
  239.     sarl    $31, %edx
  240.     shrl    $31, %edx
  241.     addl    %edx, %eax
  242.     andl    $1, %eax
  243.     subl    %edx, %eax
  244.     cvtsi2ss    %eax, %xmm0
  245.     addss   -52(%rbp), %xmm0
  246.     cvttss2si   %xmm0, %eax
  247.     movl    %r12d, %edx
  248.     subl    %eax, %edx
  249.     movl    %edx, %eax
  250.     movl    %eax, %edx
  251.     shrl    $31, %edx
  252.     addl    %edx, %eax
  253.     sarl    %eax
  254.     cmpl    %eax, %ebx
  255.     jl  .L15
  256.     movl    -36(%rbp), %eax
  257.     movl    -40(%rbp), %ecx
  258.     movl    %eax, %edx
  259.     sarl    $31, %edx
  260.     idivl   %ecx
  261.     movl    %edx, %ebx
  262.     movl    -40(%rbp), %r12d
  263.     movl    -40(%rbp), %r13d
  264.     movl    -40(%rbp), %eax
  265.     cvtsi2sd    %eax, %xmm0
  266.     movsd   .LC3(%rip), %xmm1
  267.     divsd   %xmm1, %xmm0
  268.     unpcklpd    %xmm0, %xmm0
  269.     cvtpd2ps    %xmm0, %xmm0
  270.     call    roundf
  271.     movss   %xmm0, -56(%rbp)
  272.     movl    -40(%rbp), %eax
  273.     cvtsi2sd    %eax, %xmm0
  274.     movsd   .LC3(%rip), %xmm1
  275.     divsd   %xmm1, %xmm0
  276.     unpcklpd    %xmm0, %xmm0
  277.     cvtpd2ps    %xmm0, %xmm0
  278.     call    roundf
  279.     movss   .LC4(%rip), %xmm1
  280.     addss   %xmm1, %xmm0
  281.     cvttss2si   %xmm0, %eax
  282.     movl    %eax, %edx
  283.     sarl    $31, %edx
  284.     shrl    $31, %edx
  285.     addl    %edx, %eax
  286.     andl    $1, %eax
  287.     subl    %edx, %eax
  288.     cvtsi2ss    %eax, %xmm0
  289.     addss   -56(%rbp), %xmm0
  290.     cvttss2si   %xmm0, %eax
  291.     movl    %r13d, %ecx
  292.     subl    %eax, %ecx
  293.     movl    %ecx, %eax
  294.     movl    %eax, %edx
  295.     shrl    $31, %edx
  296.     addl    %edx, %eax
  297.     sarl    %eax
  298.     movl    %r12d, %edx
  299.     subl    %eax, %edx
  300.     movl    %edx, %eax
  301.     cmpl    %eax, %ebx
  302.     jl  .L16
  303. .L15:
  304.     movl    $32, %edi
  305.     call    putchar
  306.     jmp .L17
  307. .L16:
  308.     movl    $124, %edi
  309.     call    putchar
  310. .L17:
  311.     movl    -36(%rbp), %eax
  312.     movl    -40(%rbp), %ecx
  313.     movl    %eax, %edx
  314.     sarl    $31, %edx
  315.     idivl   %ecx
  316.     movl    %edx, %eax
  317.     movl    -40(%rbp), %edx
  318.     subl    $1, %edx
  319.     cmpl    %edx, %eax
  320.     jne .L18
  321.     movl    $10, %edi
  322.     call    putchar
  323. .L18:
  324.     movl    -36(%rbp), %eax
  325.     addl    $1, %eax
  326.     movl    %eax, -36(%rbp)
  327. .L14:
  328.     movl    -40(%rbp), %eax
  329.     cvtsi2sd    %eax, %xmm0
  330.     movsd   .LC5(%rip), %xmm1
  331.     divsd   %xmm1, %xmm0
  332.     call    ceil
  333.     cvttsd2si   %xmm0, %edx
  334.     movl    -40(%rbp), %eax
  335.     imull   %eax, %edx
  336.     movl    -36(%rbp), %eax
  337.     cmpl    %eax, %edx
  338.     jg  .L19
  339.     movl    $-1, -36(%rbp)
  340.     jmp .L2
  341. .L4:
  342.     movl    -36(%rbp), %eax
  343.     cmpl    $2, %eax
  344.     jne .L20
  345.     movl    $.LC6, %edi
  346.     call    puts
  347.     leaq    -36(%rbp), %rax
  348.     movq    %rax, %rsi
  349.     movl    $.LC1, %edi
  350.     movl    $0, %eax
  351.     call    __isoc99_scanf
  352.     movl    -36(%rbp), %eax
  353.     testl   %eax, %eax
  354.     je  .L21
  355.     movl    -36(%rbp), %eax
  356.     cmpl    $1, %eax
  357.     jne .L22
  358. .L21:
  359.     movl    -36(%rbp), %eax
  360.     addl    $3, %eax
  361.     movl    %eax, -36(%rbp)
  362.     jmp .L2
  363. .L22:
  364.     movl    $-1, -36(%rbp)
  365.     jmp .L2
  366. .L20:
  367.     movl    -36(%rbp), %eax
  368.     cmpl    $3, %eax
  369.     jne .L24
  370.     movl    $5, -36(%rbp)
  371.     jmp .L2
  372. .L24:
  373.     movl    -36(%rbp), %eax
  374.     cmpl    $4, %eax
  375.     jne .L25
  376.     movl    $21, -36(%rbp)
  377.     jmp .L2
  378. .L25:
  379.     movl    -36(%rbp), %eax
  380.     subl    $528416, %eax
  381.     cmpl    $31, %eax
  382.     jbe .L26
  383.     movl    -36(%rbp), %eax
  384.     subl    $556064, %eax
  385.     cmpl    $31, %eax
  386.     jbe .L26
  387.     movl    -36(%rbp), %eax
  388.     subl    $596000, %eax
  389.     cmpl    $31, %eax
  390.     jbe .L26
  391.     movl    -36(%rbp), %eax
  392.     subl    $395296, %eax
  393.     cmpl    $31, %eax
  394.     jbe .L26
  395.     movl    -36(%rbp), %eax
  396.     subl    $386080, %eax
  397.     cmpl    $31, %eax
  398.     jbe .L26
  399.     movl    -36(%rbp), %eax
  400.     subl    $346144, %eax
  401.     cmpl    $31, %eax
  402.     jbe .L26
  403.     movl    -36(%rbp), %eax
  404.     subl    $528608, %eax
  405.     cmpl    $31, %eax
  406.     jbe .L26
  407.     movl    -36(%rbp), %eax
  408.     subl    $549152, %eax
  409.     cmpl    $31, %eax
  410.     jbe .L26
  411.     movl    -36(%rbp), %eax
  412.     subl    $416032, %eax
  413.     cmpl    $31, %eax
  414.     jbe .L26
  415.     movl    -36(%rbp), %eax
  416.     subl    $348640, %eax
  417.     cmpl    $31, %eax
  418.     jbe .L26
  419.     movl    -36(%rbp), %eax
  420.     subl    $348704, %eax
  421.     cmpl    $31, %eax
  422.     jbe .L26
  423.     movl    -36(%rbp), %eax
  424.     subl    $388640, %eax
  425.     cmpl    $31, %eax
  426.     jbe .L26
  427.     movl    -36(%rbp), %eax
  428.     subl    $387808, %eax
  429.     cmpl    $31, %eax
  430.     jbe .L26
  431.     movl    -36(%rbp), %eax
  432.     subl    $526112, %eax
  433.     cmpl    $31, %eax
  434.     jbe .L26
  435.     movl    -36(%rbp), %eax
  436.     subl    $392992, %eax
  437.     cmpl    $31, %eax
  438.     jbe .L26
  439.     movl    -36(%rbp), %eax
  440.     subl    $550880, %eax
  441.     cmpl    $31, %eax
  442.     ja  .L27
  443. .L26:
  444.     movl    $.LC7, %edi
  445.     call    puts
  446.     movl    $-1, -36(%rbp)
  447.     jmp .L2
  448. .L27:
  449.     movl    -36(%rbp), %eax
  450.     subl    $98368, %eax
  451.     cmpl    $31, %eax
  452.     jbe .L28
  453.     movl    -36(%rbp), %eax
  454.     subl    $294976, %eax
  455.     cmpl    $31, %eax
  456.     jbe .L28
  457.     movl    -36(%rbp), %eax
  458.     subl    $295104, %eax
  459.     cmpl    $31, %eax
  460.     jbe .L28
  461.     movl    -36(%rbp), %eax
  462.     subl    $393408, %eax
  463.     cmpl    $31, %eax
  464.     jbe .L28
  465.     movl    -36(%rbp), %eax
  466.     subl    $393568, %eax
  467.     cmpl    $31, %eax
  468.     jbe .L28
  469.     movl    -36(%rbp), %eax
  470.     subl    $229760, %eax
  471.     cmpl    $31, %eax
  472.     jbe .L28
  473.     movl    -36(%rbp), %eax
  474.     subl    $360832, %eax
  475.     cmpl    $31, %eax
  476.     jbe .L28
  477.     movl    -36(%rbp), %eax
  478.     subl    $393632, %eax
  479.     cmpl    $31, %eax
  480.     jbe .L28
  481.     movl    -36(%rbp), %eax
  482.     subl    $229856, %eax
  483.     cmpl    $31, %eax
  484.     jbe .L28
  485.     movl    -36(%rbp), %eax
  486.     subl    $164384, %eax
  487.     cmpl    $31, %eax
  488.     jbe .L28
  489.     movl    -36(%rbp), %eax
  490.     subl    $393824, %eax
  491.     cmpl    $31, %eax
  492.     jbe .L28
  493.     movl    -36(%rbp), %eax
  494.     subl    $361088, %eax
  495.     cmpl    $31, %eax
  496.     jbe .L28
  497.     movl    -36(%rbp), %eax
  498.     subl    $164768, %eax
  499.     cmpl    $31, %eax
  500.     jbe .L28
  501.     movl    -36(%rbp), %eax
  502.     subl    $459680, %eax
  503.     cmpl    $31, %eax
  504.     jbe .L28
  505.     movl    -36(%rbp), %eax
  506.     subl    $230336, %eax
  507.     cmpl    $31, %eax
  508.     jbe .L28
  509.     movl    -36(%rbp), %eax
  510.     subl    $361408, %eax
  511.     cmpl    $31, %eax
  512.     jbe .L28
  513.     movl    -36(%rbp), %eax
  514.     subl    $492640, %eax
  515.     cmpl    $31, %eax
  516.     jbe .L28
  517.     movl    -36(%rbp), %eax
  518.     subl    $230528, %eax
  519.     cmpl    $31, %eax
  520.     jbe .L28
  521.     movl    -36(%rbp), %eax
  522.     subl    $197856, %eax
  523.     cmpl    $31, %eax
  524.     jbe .L28
  525.     movl    -36(%rbp), %eax
  526.     subl    $361792, %eax
  527.     cmpl    $31, %eax
  528.     jbe .L28
  529.     movl    -36(%rbp), %eax
  530.     subl    $460160, %eax
  531.     cmpl    $31, %eax
  532.     jbe .L28
  533.     movl    -36(%rbp), %eax
  534.     subl    $66944, %eax
  535.     cmpl    $31, %eax
  536.     jbe .L28
  537.     movl    -36(%rbp), %eax
  538.     subl    $198016, %eax
  539.     cmpl    $31, %eax
  540.     jbe .L28
  541.     movl    -36(%rbp), %eax
  542.     subl    $198080, %eax
  543.     cmpl    $31, %eax
  544.     jbe .L28
  545.     movl    -36(%rbp), %eax
  546.     subl    $361920, %eax
  547.     cmpl    $31, %eax
  548.     jbe .L28
  549.     movl    -36(%rbp), %eax
  550.     subl    $558560, %eax
  551.     cmpl    $31, %eax
  552.     jbe .L28
  553.     movl    -36(%rbp), %eax
  554.     subl    $525856, %eax
  555.     cmpl    $31, %eax
  556.     jbe .L28
  557.     movl    -36(%rbp), %eax
  558.     subl    $198208, %eax
  559.     cmpl    $31, %eax
  560.     jbe .L28
  561.     movl    -36(%rbp), %eax
  562.     subl    $493152, %eax
  563.     cmpl    $31, %eax
  564.     jbe .L28
  565.     movl    -36(%rbp), %eax
  566.     subl    $394880, %eax
  567.     cmpl    $31, %eax
  568.     jbe .L28
  569.     movl    -36(%rbp), %eax
  570.     subl    $198336, %eax
  571.     cmpl    $31, %eax
  572.     jbe .L28
  573.     movl    -36(%rbp), %eax
  574.     subl    $526048, %eax
  575.     cmpl    $31, %eax
  576.     jbe .L28
  577.     movl    -36(%rbp), %eax
  578.     subl    $362240, %eax
  579.     cmpl    $31, %eax
  580.     jbe .L28
  581.     movl    -36(%rbp), %eax
  582.     subl    $263936, %eax
  583.     cmpl    $31, %eax
  584.     jbe .L28
  585.     movl    -36(%rbp), %eax
  586.     subl    $100160, %eax
  587.     cmpl    $31, %eax
  588.     jbe .L28
  589.     movl    -36(%rbp), %eax
  590.     subl    $198464, %eax
  591.     cmpl    $31, %eax
  592.     jbe .L28
  593.     movl    -36(%rbp), %eax
  594.     subl    $198528, %eax
  595.     cmpl    $31, %eax
  596.     jbe .L28
  597.     movl    -36(%rbp), %eax
  598.     subl    $362368, %eax
  599.     cmpl    $31, %eax
  600.     jbe .L28
  601.     movl    -36(%rbp), %eax
  602.     subl    $362496, %eax
  603.     cmpl    $31, %eax
  604.     jbe .L28
  605.     movl    -36(%rbp), %eax
  606.     subl    $362624, %eax
  607.     cmpl    $31, %eax
  608.     jbe .L28
  609.     movl    -36(%rbp), %eax
  610.     subl    $460928, %eax
  611.     cmpl    $31, %eax
  612.     jbe .L28
  613.     movl    -36(%rbp), %eax
  614.     subl    $592064, %eax
  615.     cmpl    $31, %eax
  616.     jbe .L28
  617.     movl    -36(%rbp), %eax
  618.     subl    $329920, %eax
  619.     cmpl    $31, %eax
  620.     jbe .L28
  621.     movl    -36(%rbp), %eax
  622.     subl    $329984, %eax
  623.     cmpl    $31, %eax
  624.     jbe .L28
  625.     movl    -36(%rbp), %eax
  626.     subl    $395552, %eax
  627.     cmpl    $31, %eax
  628.     jbe .L28
  629.     movl    -36(%rbp), %eax
  630.     subl    $166240, %eax
  631.     cmpl    $31, %eax
  632.     jbe .L28
  633.     movl    -36(%rbp), %eax
  634.     subl    $166368, %eax
  635.     cmpl    $31, %eax
  636.     jbe .L28
  637.     movl    -36(%rbp), %eax
  638.     subl    $494080, %eax
  639.     cmpl    $31, %eax
  640.     jbe .L28
  641.     movl    -36(%rbp), %eax
  642.     subl    $264736, %eax
  643.     cmpl    $31, %eax
  644.     jbe .L28
  645.     movl    -36(%rbp), %eax
  646.     subl    $592448, %eax
  647.     cmpl    $31, %eax
  648.     jbe .L28
  649.     movl    -36(%rbp), %eax
  650.     subl    $264864, %eax
  651.     cmpl    $31, %eax
  652.     jbe .L28
  653.     movl    -36(%rbp), %eax
  654.     subl    $363168, %eax
  655.     cmpl    $31, %eax
  656.     jbe .L28
  657.     movl    -36(%rbp), %eax
  658.     subl    $494304, %eax
  659.     cmpl    $31, %eax
  660.     jbe .L28
  661.     movl    -36(%rbp), %eax
  662.     subl    $363328, %eax
  663.     cmpl    $31, %eax
  664.     jbe .L28
  665.     movl    -36(%rbp), %eax
  666.     subl    $461664, %eax
  667.     cmpl    $31, %eax
  668.     jbe .L28
  669.     movl    -36(%rbp), %eax
  670.     subl    $461824, %eax
  671.     cmpl    $31, %eax
  672.     jbe .L28
  673.     movl    -36(%rbp), %eax
  674.     subl    $461888, %eax
  675.     cmpl    $31, %eax
  676.     jbe .L28
  677.     movl    -36(%rbp), %eax
  678.     subl    $68672, %eax
  679.     cmpl    $31, %eax
  680.     jbe .L28
  681.     movl    -36(%rbp), %eax
  682.     subl    $494656, %eax
  683.     cmpl    $31, %eax
  684.     jbe .L28
  685.     movl    -36(%rbp), %eax
  686.     subl    $35968, %eax
  687.     cmpl    $31, %eax
  688.     jbe .L28
  689.     movl    -36(%rbp), %eax
  690.     subl    $560288, %eax
  691.     cmpl    $31, %eax
  692.     jbe .L28
  693.     movl    -36(%rbp), %eax
  694.     subl    $134336, %eax
  695.     cmpl    $31, %eax
  696.     jbe .L28
  697.     movl    -36(%rbp), %eax
  698.     subl    $494912, %eax
  699.     cmpl    $31, %eax
  700.     jbe .L28
  701.     movl    -36(%rbp), %eax
  702.     subl    $200000, %eax
  703.     cmpl    $31, %eax
  704.     jbe .L28
  705.     movl    -36(%rbp), %eax
  706.     subl    $331136, %eax
  707.     cmpl    $31, %eax
  708.     jbe .L28
  709.     movl    -36(%rbp), %eax
  710.     subl    $167296, %eax
  711.     cmpl    $31, %eax
  712.     jbe .L28
  713.     movl    -36(%rbp), %eax
  714.     subl    $527840, %eax
  715.     cmpl    $31, %eax
  716.     jbe .L28
  717.     movl    -36(%rbp), %eax
  718.     subl    $265792, %eax
  719.     cmpl    $31, %eax
  720.     jbe .L28
  721.     movl    -36(%rbp), %eax
  722.     subl    $364096, %eax
  723.     cmpl    $31, %eax
  724.     jbe .L28
  725.     movl    -36(%rbp), %eax
  726.     subl    $167552, %eax
  727.     cmpl    $31, %eax
  728.     jbe .L28
  729.     movl    -36(%rbp), %eax
  730.     subl    $462464, %eax
  731.     cmpl    $31, %eax
  732.     jbe .L28
  733.     movl    -36(%rbp), %eax
  734.     subl    $134880, %eax
  735.     cmpl    $31, %eax
  736.     jbe .L28
  737.     movl    -36(%rbp), %eax
  738.     subl    $331520, %eax
  739.     cmpl    $31, %eax
  740.     jbe .L28
  741.     movl    -36(%rbp), %eax
  742.     subl    $462592, %eax
  743.     cmpl    $31, %eax
  744.     jbe .L28
  745.     movl    -36(%rbp), %eax
  746.     subl    $298816, %eax
  747.     cmpl    $31, %eax
  748.     jbe .L28
  749.     movl    -36(%rbp), %eax
  750.     subl    $331584, %eax
  751.     cmpl    $31, %eax
  752.     jbe .L28
  753.     movl    -36(%rbp), %eax
  754.     subl    $298880, %eax
  755.     cmpl    $31, %eax
  756.     jbe .L28
  757.     movl    -36(%rbp), %eax
  758.     subl    $462720, %eax
  759.     cmpl    $31, %eax
  760.     jbe .L28
  761.     movl    -36(%rbp), %eax
  762.     subl    $167904, %eax
  763.     cmpl    $31, %eax
  764.     jbe .L28
  765.     movl    -36(%rbp), %eax
  766.     subl    $593920, %eax
  767.     cmpl    $31, %eax
  768.     jbe .L28
  769.     movl    -36(%rbp), %eax
  770.     subl    $135232, %eax
  771.     cmpl    $31, %eax
  772.     jbe .L28
  773.     movl    -36(%rbp), %eax
  774.     subl    $168064, %eax
  775.     cmpl    $31, %eax
  776.     jbe .L28
  777.     movl    -36(%rbp), %eax
  778.     subl    $594048, %eax
  779.     cmpl    $31, %eax
  780.     jbe .L28
  781.     movl    -36(%rbp), %eax
  782.     subl    $266400, %eax
  783.     cmpl    $31, %eax
  784.     jbe .L28
  785.     movl    -36(%rbp), %eax
  786.     subl    $168128, %eax
  787.     cmpl    $31, %eax
  788.     jbe .L28
  789.     movl    -36(%rbp), %eax
  790.     subl    $135488, %eax
  791.     cmpl    $31, %eax
  792.     jbe .L28
  793.     movl    -36(%rbp), %eax
  794.     subl    $266624, %eax
  795.     cmpl    $31, %eax
  796.     jbe .L28
  797.     movl    -36(%rbp), %eax
  798.     subl    $364928, %eax
  799.     cmpl    $31, %eax
  800.     jbe .L28
  801.     movl    -36(%rbp), %eax
  802.     subl    $364992, %eax
  803.     cmpl    $31, %eax
  804.     jbe .L28
  805.     movl    -36(%rbp), %eax
  806.     subl    $463424, %eax
  807.     cmpl    $31, %eax
  808.     jbe .L28
  809.     movl    -36(%rbp), %eax
  810.     subl    $594496, %eax
  811.     cmpl    $31, %eax
  812.     jbe .L28
  813.     movl    -36(%rbp), %eax
  814.     subl    $135808, %eax
  815.     cmpl    $31, %eax
  816.     jbe .L28
  817.     movl    -36(%rbp), %eax
  818.     subl    $463488, %eax
  819.     cmpl    $31, %eax
  820.     jbe .L28
  821.     movl    -36(%rbp), %eax
  822.     subl    $594624, %eax
  823.     cmpl    $31, %eax
  824.     jbe .L28
  825.     movl    -36(%rbp), %eax
  826.     subl    $299968, %eax
  827.     cmpl    $31, %eax
  828.     jbe .L28
  829.     movl    -36(%rbp), %eax
  830.     subl    $300032, %eax
  831.     cmpl    $31, %eax
  832.     jbe .L28
  833.     movl    -36(%rbp), %eax
  834.     subl    $594976, %eax
  835.     cmpl    $31, %eax
  836.     jbe .L28
  837.     movl    -36(%rbp), %eax
  838.     subl    $37952, %eax
  839.     cmpl    $31, %eax
  840.     jbe .L28
  841.     movl    -36(%rbp), %eax
  842.     subl    $595008, %eax
  843.     cmpl    $31, %eax
  844.     jbe .L28
  845.     movl    -36(%rbp), %eax
  846.     subl    $431200, %eax
  847.     cmpl    $31, %eax
  848.     jbe .L28
  849.     movl    -36(%rbp), %eax
  850.     subl    $136320, %eax
  851.     cmpl    $31, %eax
  852.     jbe .L28
  853.     movl    -36(%rbp), %eax
  854.     subl    $595168, %eax
  855.     cmpl    $31, %eax
  856.     jbe .L28
  857.     movl    -36(%rbp), %eax
  858.     subl    $431328, %eax
  859.     cmpl    $31, %eax
  860.     jbe .L28
  861.     movl    -36(%rbp), %eax
  862.     subl    $267520, %eax
  863.     cmpl    $31, %eax
  864.     jbe .L28
  865.     movl    -36(%rbp), %eax
  866.     subl    $595232, %eax
  867.     cmpl    $31, %eax
  868.     jbe .L28
  869.     movl    -36(%rbp), %eax
  870.     subl    $300416, %eax
  871.     cmpl    $31, %eax
  872.     jbe .L28
  873.     movl    -36(%rbp), %eax
  874.     subl    $398720, %eax
  875.     cmpl    $31, %eax
  876.     jbe .L28
  877.     movl    -36(%rbp), %eax
  878.     subl    $169376, %eax
  879.     cmpl    $31, %eax
  880.     jbe .L28
  881.     movl    -36(%rbp), %eax
  882.     subl    $529856, %eax
  883.     cmpl    $31, %eax
  884.     jbe .L28
  885.     movl    -36(%rbp), %eax
  886.     subl    $136640, %eax
  887.     cmpl    $31, %eax
  888.     jbe .L28
  889.     movl    -36(%rbp), %eax
  890.     subl    $300480, %eax
  891.     cmpl    $31, %eax
  892.     jbe .L28
  893.     movl    -36(%rbp), %eax
  894.     subl    $267776, %eax
  895.     cmpl    $31, %eax
  896.     jbe .L28
  897.     movl    -36(%rbp), %eax
  898.     subl    $464384, %eax
  899.     cmpl    $31, %eax
  900.     jbe .L28
  901.     movl    -36(%rbp), %eax
  902.     subl    $497216, %eax
  903.     cmpl    $31, %eax
  904.     jbe .L28
  905.     movl    -36(%rbp), %eax
  906.     subl    $431680, %eax
  907.     cmpl    $31, %eax
  908.     jbe .L28
  909.     movl    -36(%rbp), %eax
  910.     subl    $431712, %eax
  911.     cmpl    $31, %eax
  912.     jbe .L28
  913.     movl    -36(%rbp), %eax
  914.     subl    $595584, %eax
  915.     cmpl    $31, %eax
  916.     jbe .L28
  917.     movl    -36(%rbp), %eax
  918.     subl    $136896, %eax
  919.     cmpl    $31, %eax
  920.     jbe .L28
  921.     movl    -36(%rbp), %eax
  922.     subl    $431872, %eax
  923.     cmpl    $31, %eax
  924.     jbe .L28
  925.     movl    -36(%rbp), %eax
  926.     subl    $595744, %eax
  927.     cmpl    $31, %eax
  928.     jbe .L28
  929.     movl    -36(%rbp), %eax
  930.     subl    $431936, %eax
  931.     cmpl    $31, %eax
  932.     jbe .L28
  933.     movl    -36(%rbp), %eax
  934.     subl    $268096, %eax
  935.     cmpl    $31, %eax
  936.     jbe .L28
  937.     movl    -36(%rbp), %eax
  938.     subl    $595808, %eax
  939.     cmpl    $31, %eax
  940.     jbe .L28
  941.     movl    -36(%rbp), %eax
  942.     subl    $399200, %eax
  943.     cmpl    $31, %eax
  944.     jbe .L28
  945.     movl    -36(%rbp), %eax
  946.     subl    $170048, %eax
  947.     cmpl    $31, %eax
  948.     jbe .L28
  949.     movl    -36(%rbp), %eax
  950.     subl    $464960, %eax
  951.     cmpl    $31, %eax
  952.     jbe .L28
  953.     movl    -36(%rbp), %eax
  954.     subl    $268480, %eax
  955.     cmpl    $31, %eax
  956.     jbe .L28
  957.     movl    -36(%rbp), %eax
  958.     subl    $465152, %eax
  959.     cmpl    $31, %eax
  960.     jbe .L28
  961.     movl    -36(%rbp), %eax
  962.     subl    $399680, %eax
  963.     cmpl    $31, %eax
  964.     jbe .L28
  965.     movl    -36(%rbp), %eax
  966.     subl    $268608, %eax
  967.     cmpl    $31, %eax
  968.     jbe .L28
  969.     movl    -36(%rbp), %eax
  970.     subl    $399872, %eax
  971.     cmpl    $31, %eax
  972.     jbe .L28
  973.     movl    -36(%rbp), %eax
  974.     subl    $137792, %eax
  975.     cmpl    $31, %eax
  976.     jbe .L28
  977.     movl    -36(%rbp), %eax
  978.     subl    $268928, %eax
  979.     cmpl    $31, %eax
  980.     jbe .L28
  981.     movl    -36(%rbp), %eax
  982.     subl    $170624, %eax
  983.     cmpl    $31, %eax
  984.     jbe .L28
  985.     movl    -36(%rbp), %eax
  986.     subl    $203456, %eax
  987.     cmpl    $31, %eax
  988.     jbe .L28
  989.     movl    -36(%rbp), %eax
  990.     subl    $400256, %eax
  991.     cmpl    $31, %eax
  992.     jbe .L28
  993.     movl    -36(%rbp), %eax
  994.     subl    $269184, %eax
  995.     cmpl    $31, %eax
  996.     jbe .L28
  997.     movl    -36(%rbp), %eax
  998.     subl    $269312, %eax
  999.     cmpl    $31, %eax
  1000.     jbe .L28
  1001.     movl    -36(%rbp), %eax
  1002.     subl    $367616, %eax
  1003.     cmpl    $31, %eax
  1004.     jbe .L28
  1005.     movl    -36(%rbp), %eax
  1006.     subl    $39968, %eax
  1007.     cmpl    $31, %eax
  1008.     jbe .L28
  1009.     movl    -36(%rbp), %eax
  1010.     subl    $597056, %eax
  1011.     cmpl    $31, %eax
  1012.     jbe .L28
  1013.     movl    -36(%rbp), %eax
  1014.     subl    $531520, %eax
  1015.     cmpl    $31, %eax
  1016.     jbe .L28
  1017.     movl    -36(%rbp), %eax
  1018.     subl    $334912, %eax
  1019.     cmpl    $31, %eax
  1020.     jbe .L28
  1021.     movl    -36(%rbp), %eax
  1022.     subl    $7328, %eax
  1023.     cmpl    $31, %eax
  1024.     jbe .L28
  1025.     movl    -36(%rbp), %eax
  1026.     subl    $400640, %eax
  1027.     cmpl    $31, %eax
  1028.     jbe .L28
  1029.     movl    -36(%rbp), %eax
  1030.     subl    $531712, %eax
  1031.     cmpl    $31, %eax
  1032.     jbe .L28
  1033.     movl    -36(%rbp), %eax
  1034.     subl    $564608, %eax
  1035.     cmpl    $31, %eax
  1036.     jbe .L28
  1037.     movl    -36(%rbp), %eax
  1038.     subl    $531840, %eax
  1039.     cmpl    $31, %eax
  1040.     jbe .L28
  1041.     movl    -36(%rbp), %eax
  1042.     subl    $40352, %eax
  1043.     cmpl    $31, %eax
  1044.     jbe .L28
  1045.     movl    -36(%rbp), %eax
  1046.     subl    $368096, %eax
  1047.     cmpl    $31, %eax
  1048.     jbe .L28
  1049.     movl    -36(%rbp), %eax
  1050.     subl    $269856, %eax
  1051.     cmpl    $31, %eax
  1052.     jbe .L28
  1053.     movl    -36(%rbp), %eax
  1054.     subl    $73312, %eax
  1055.     cmpl    $31, %eax
  1056.     jbe .L28
  1057.     movl    -36(%rbp), %eax
  1058.     subl    $401024, %eax
  1059.     cmpl    $31, %eax
  1060.     jbe .L28
  1061.     movl    -36(%rbp), %eax
  1062.     subl    $270016, %eax
  1063.     cmpl    $31, %eax
  1064.     jbe .L28
  1065.     movl    -36(%rbp), %eax
  1066.     subl    $597728, %eax
  1067.     cmpl    $31, %eax
  1068.     jbe .L28
  1069.     movl    -36(%rbp), %eax
  1070.     subl    $270080, %eax
  1071.     cmpl    $31, %eax
  1072.     jbe .L28
  1073.     movl    -36(%rbp), %eax
  1074.     subl    $401216, %eax
  1075.     cmpl    $31, %eax
  1076.     jbe .L28
  1077.     movl    -36(%rbp), %eax
  1078.     subl    $368576, %eax
  1079.     cmpl    $31, %eax
  1080.     jbe .L28
  1081.     movl    -36(%rbp), %eax
  1082.     subl    $466976, %eax
  1083.     cmpl    $31, %eax
  1084.     jbe .L28
  1085.     movl    -36(%rbp), %eax
  1086.     subl    $368768, %eax
  1087.     cmpl    $31, %eax
  1088.     jbe .L28
  1089.     movl    -36(%rbp), %eax
  1090.     subl    $598304, %eax
  1091.     cmpl    $31, %eax
  1092.     jbe .L28
  1093.     movl    -36(%rbp), %eax
  1094.     subl    $532768, %eax
  1095.     cmpl    $31, %eax
  1096.     jbe .L28
  1097.     movl    -36(%rbp), %eax
  1098.     subl    $205184, %eax
  1099.     cmpl    $31, %eax
  1100.     jbe .L28
  1101.     movl    -36(%rbp), %eax
  1102.     subl    $303520, %eax
  1103.     cmpl    $31, %eax
  1104.     jbe .L28
  1105.     movl    -36(%rbp), %eax
  1106.     subl    $270784, %eax
  1107.     cmpl    $31, %eax
  1108.     jbe .L28
  1109.     movl    -36(%rbp), %eax
  1110.     subl    $369152, %eax
  1111.     cmpl    $31, %eax
  1112.     jbe .L28
  1113.     movl    -36(%rbp), %eax
  1114.     subl    $238144, %eax
  1115.     cmpl    $31, %eax
  1116.     jbe .L28
  1117.     movl    -36(%rbp), %eax
  1118.     subl    $270912, %eax
  1119.     cmpl    $31, %eax
  1120.     jbe .L28
  1121.     movl    -36(%rbp), %eax
  1122.     subl    $172736, %eax
  1123.     cmpl    $31, %eax
  1124.     jbe .L28
  1125.     movl    -36(%rbp), %eax
  1126.     subl    $533184, %eax
  1127.     cmpl    $31, %eax
  1128.     jbe .L28
  1129.     movl    -36(%rbp), %eax
  1130.     subl    $336576, %eax
  1131.     cmpl    $31, %eax
  1132.     jbe .L28
  1133.     movl    -36(%rbp), %eax
  1134.     subl    $74464, %eax
  1135.     cmpl    $31, %eax
  1136.     jbe .L28
  1137.     movl    -36(%rbp), %eax
  1138.     subl    $402176, %eax
  1139.     cmpl    $31, %eax
  1140.     jbe .L28
  1141.     movl    -36(%rbp), %eax
  1142.     subl    $303904, %eax
  1143.     cmpl    $31, %eax
  1144.     jbe .L28
  1145.     movl    -36(%rbp), %eax
  1146.     subl    $238400, %eax
  1147.     cmpl    $31, %eax
  1148.     jbe .L28
  1149.     movl    -36(%rbp), %eax
  1150.     subl    $435008, %eax
  1151.     cmpl    $31, %eax
  1152.     jbe .L28
  1153.     movl    -36(%rbp), %eax
  1154.     subl    $41824, %eax
  1155.     cmpl    $31, %eax
  1156.     jbe .L28
  1157.     movl    -36(%rbp), %eax
  1158.     subl    $369536, %eax
  1159.     cmpl    $31, %eax
  1160.     jbe .L28
  1161.     movl    -36(%rbp), %eax
  1162.     subl    $533376, %eax
  1163.     cmpl    $31, %eax
  1164.     jbe .L28
  1165.     movl    -36(%rbp), %eax
  1166.     subl    $304032, %eax
  1167.     cmpl    $31, %eax
  1168.     jbe .L28
  1169.     movl    -36(%rbp), %eax
  1170.     subl    $41952, %eax
  1171.     cmpl    $31, %eax
  1172.     jbe .L28
  1173.     movl    -36(%rbp), %eax
  1174.     subl    $533536, %eax
  1175.     cmpl    $31, %eax
  1176.     jbe .L28
  1177.     movl    -36(%rbp), %eax
  1178.     subl    $566336, %eax
  1179.     cmpl    $31, %eax
  1180.     jbe .L28
  1181.     movl    -36(%rbp), %eax
  1182.     subl    $533600, %eax
  1183.     cmpl    $31, %eax
  1184.     jbe .L28
  1185.     movl    -36(%rbp), %eax
  1186.     subl    $599168, %eax
  1187.     cmpl    $31, %eax
  1188.     jbe .L28
  1189.     movl    -36(%rbp), %eax
  1190.     subl    $74976, %eax
  1191.     cmpl    $31, %eax
  1192.     jbe .L28
  1193.     movl    -36(%rbp), %eax
  1194.     subl    $369920, %eax
  1195.     cmpl    $31, %eax
  1196.     jbe .L28
  1197.     movl    -36(%rbp), %eax
  1198.     subl    $271616, %eax
  1199.     cmpl    $31, %eax
  1200.     jbe .L28
  1201.     movl    -36(%rbp), %eax
  1202.     subl    $500992, %eax
  1203.     cmpl    $31, %eax
  1204.     jbe .L28
  1205.     movl    -36(%rbp), %eax
  1206.     subl    $271680, %eax
  1207.     cmpl    $31, %eax
  1208.     jbe .L28
  1209.     movl    -36(%rbp), %eax
  1210.     subl    $370112, %eax
  1211.     cmpl    $31, %eax
  1212.     jbe .L28
  1213.     movl    -36(%rbp), %eax
  1214.     subl    $501376, %eax
  1215.     cmpl    $31, %eax
  1216.     jbe .L28
  1217.     movl    -36(%rbp), %eax
  1218.     subl    $435872, %eax
  1219.     cmpl    $31, %eax
  1220.     jbe .L28
  1221.     movl    -36(%rbp), %eax
  1222.     subl    $599744, %eax
  1223.     cmpl    $31, %eax
  1224.     jbe .L28
  1225.     movl    -36(%rbp), %eax
  1226.     subl    $599936, %eax
  1227.     cmpl    $31, %eax
  1228.     jbe .L28
  1229.     movl    -36(%rbp), %eax
  1230.     subl    $42880, %eax
  1231.     cmpl    $31, %eax
  1232.     jbe .L28
  1233.     movl    -36(%rbp), %eax
  1234.     subl    $305056, %eax
  1235.     cmpl    $31, %eax
  1236.     jbe .L28
  1237.     movl    -36(%rbp), %eax
  1238.     subl    $501760, %eax
  1239.     cmpl    $31, %eax
  1240.     jbe .L28
  1241.     movl    -36(%rbp), %eax
  1242.     subl    $305184, %eax
  1243.     cmpl    $31, %eax
  1244.     jbe .L28
  1245.     movl    -36(%rbp), %eax
  1246.     subl    $43136, %eax
  1247.     cmpl    $31, %eax
  1248.     jbe .L28
  1249.     movl    -36(%rbp), %eax
  1250.     subl    $174208, %eax
  1251.     cmpl    $31, %eax
  1252.     jbe .L28
  1253.     movl    -36(%rbp), %eax
  1254.     subl    $501888, %eax
  1255.     cmpl    $31, %eax
  1256.     jbe .L28
  1257.     movl    -36(%rbp), %eax
  1258.     subl    $534848, %eax
  1259.     cmpl    $31, %eax
  1260.     jbe .L28
  1261.     movl    -36(%rbp), %eax
  1262.     subl    $371072, %eax
  1263.     cmpl    $31, %eax
  1264.     jbe .L28
  1265.     movl    -36(%rbp), %eax
  1266.     subl    $502144, %eax
  1267.     cmpl    $31, %eax
  1268.     jbe .L28
  1269.     movl    -36(%rbp), %eax
  1270.     subl    $305536, %eax
  1271.     cmpl    $31, %eax
  1272.     jbe .L28
  1273.     movl    -36(%rbp), %eax
  1274.     subl    $305568, %eax
  1275.     cmpl    $31, %eax
  1276.     jbe .L28
  1277.     movl    -36(%rbp), %eax
  1278.     subl    $43488, %eax
  1279.     cmpl    $31, %eax
  1280.     jbe .L28
  1281.     movl    -36(%rbp), %eax
  1282.     subl    $240128, %eax
  1283.     cmpl    $31, %eax
  1284.     jbe .L28
  1285.     movl    -36(%rbp), %eax
  1286.     subl    $305728, %eax
  1287.     cmpl    $31, %eax
  1288.     jbe .L28
  1289.     movl    -36(%rbp), %eax
  1290.     subl    $305792, %eax
  1291.     cmpl    $31, %eax
  1292.     jbe .L28
  1293.     movl    -36(%rbp), %eax
  1294.     subl    $43648, %eax
  1295.     cmpl    $31, %eax
  1296.     jbe .L28
  1297.     movl    -36(%rbp), %eax
  1298.     subl    $43712, %eax
  1299.     cmpl    $31, %eax
  1300.     jbe .L28
  1301.     movl    -36(%rbp), %eax
  1302.     subl    $174784, %eax
  1303.     cmpl    $31, %eax
  1304.     jbe .L28
  1305.     movl    -36(%rbp), %eax
  1306.     subl    $535328, %eax
  1307.     cmpl    $31, %eax
  1308.     jbe .L28
  1309.     movl    -36(%rbp), %eax
  1310.     subl    $142112, %eax
  1311.     cmpl    $31, %eax
  1312.     jbe .L28
  1313.     movl    -36(%rbp), %eax
  1314.     subl    $502656, %eax
  1315.     cmpl    $31, %eax
  1316.     jbe .L28
  1317.     movl    -36(%rbp), %eax
  1318.     subl    $175168, %eax
  1319.     cmpl    $31, %eax
  1320.     jbe .L28
  1321.     movl    -36(%rbp), %eax
  1322.     subl    $404640, %eax
  1323.     cmpl    $31, %eax
  1324.     jbe .L28
  1325.     movl    -36(%rbp), %eax
  1326.     subl    $175296, %eax
  1327.     cmpl    $31, %eax
  1328.     jbe .L28
  1329.     movl    -36(%rbp), %eax
  1330.     subl    $11488, %eax
  1331.     cmpl    $31, %eax
  1332.     jbe .L28
  1333.     movl    -36(%rbp), %eax
  1334.     subl    $404800, %eax
  1335.     cmpl    $31, %eax
  1336.     jbe .L28
  1337.     movl    -36(%rbp), %eax
  1338.     subl    $404864, %eax
  1339.     cmpl    $31, %eax
  1340.     jbe .L28
  1341.     movl    -36(%rbp), %eax
  1342.     subl    $339488, %eax
  1343.     cmpl    $31, %eax
  1344.     jbe .L28
  1345.     movl    -36(%rbp), %eax
  1346.     subl    $601664, %eax
  1347.     cmpl    $31, %eax
  1348.     jbe .L28
  1349.     movl    -36(%rbp), %eax
  1350.     subl    $11872, %eax
  1351.     cmpl    $31, %eax
  1352.     jbe .L28
  1353.     movl    -36(%rbp), %eax
  1354.     subl    $601728, %eax
  1355.     cmpl    $31, %eax
  1356.     jbe .L28
  1357.     movl    -36(%rbp), %eax
  1358.     subl    $175744, %eax
  1359.     cmpl    $31, %eax
  1360.     jbe .L28
  1361.     movl    -36(%rbp), %eax
  1362.     subl    $12000, %eax
  1363.     cmpl    $31, %eax
  1364.     jbe .L28
  1365.     movl    -36(%rbp), %eax
  1366.     subl    $175872, %eax
  1367.     cmpl    $31, %eax
  1368.     jbe .L28
  1369.     movl    -36(%rbp), %eax
  1370.     subl    $274304, %eax
  1371.     cmpl    $31, %eax
  1372.     jbe .L28
  1373.     movl    -36(%rbp), %eax
  1374.     subl    $44960, %eax
  1375.     cmpl    $31, %eax
  1376.     jbe .L28
  1377.     movl    -36(%rbp), %eax
  1378.     subl    $110528, %eax
  1379.     cmpl    $31, %eax
  1380.     jbe .L28
  1381.     movl    -36(%rbp), %eax
  1382.     subl    $339904, %eax
  1383.     cmpl    $31, %eax
  1384.     jbe .L28
  1385.     movl    -36(%rbp), %eax
  1386.     subl    $405568, %eax
  1387.     cmpl    $31, %eax
  1388.     jbe .L28
  1389.     movl    -36(%rbp), %eax
  1390.     subl    $340032, %eax
  1391.     cmpl    $31, %eax
  1392.     jbe .L28
  1393.     movl    -36(%rbp), %eax
  1394.     subl    $602240, %eax
  1395.     cmpl    $31, %eax
  1396.     jbe .L28
  1397.     movl    -36(%rbp), %eax
  1398.     subl    $405696, %eax
  1399.     cmpl    $31, %eax
  1400.     jbe .L28
  1401.     movl    -36(%rbp), %eax
  1402.     subl    $471296, %eax
  1403.     cmpl    $31, %eax
  1404.     jbe .L28
  1405.     movl    -36(%rbp), %eax
  1406.     subl    $274784, %eax
  1407.     cmpl    $31, %eax
  1408.     jbe .L28
  1409.     movl    -36(%rbp), %eax
  1410.     subl    $45440, %eax
  1411.     cmpl    $31, %eax
  1412.     jbe .L28
  1413.     movl    -36(%rbp), %eax
  1414.     subl    $602496, %eax
  1415.     cmpl    $31, %eax
  1416.     jbe .L28
  1417.     movl    -36(%rbp), %eax
  1418.     subl    $569792, %eax
  1419.     cmpl    $31, %eax
  1420.     jbe .L28
  1421.     movl    -36(%rbp), %eax
  1422.     subl    $602656, %eax
  1423.     cmpl    $31, %eax
  1424.     jbe .L28
  1425.     movl    -36(%rbp), %eax
  1426.     subl    $45632, %eax
  1427.     cmpl    $31, %eax
  1428.     jbe .L28
  1429.     movl    -36(%rbp), %eax
  1430.     subl    $602720, %eax
  1431.     cmpl    $31, %eax
  1432.     jbe .L28
  1433.     movl    -36(%rbp), %eax
  1434.     subl    $307840, %eax
  1435.     cmpl    $31, %eax
  1436.     jbe .L28
  1437.     movl    -36(%rbp), %eax
  1438.     subl    $275264, %eax
  1439.     cmpl    $31, %eax
  1440.     jbe .L28
  1441.     movl    -36(%rbp), %eax
  1442.     subl    $406400, %eax
  1443.     cmpl    $31, %eax
  1444.     jbe .L28
  1445.     movl    -36(%rbp), %eax
  1446.     subl    $406464, %eax
  1447.     cmpl    $31, %eax
  1448.     jbe .L28
  1449.     movl    -36(%rbp), %eax
  1450.     subl    $340960, %eax
  1451.     cmpl    $31, %eax
  1452.     jbe .L28
  1453.     movl    -36(%rbp), %eax
  1454.     subl    $275456, %eax
  1455.     cmpl    $31, %eax
  1456.     jbe .L28
  1457.     movl    -36(%rbp), %eax
  1458.     subl    $308224, %eax
  1459.     cmpl    $31, %eax
  1460.     jbe .L28
  1461.     movl    -36(%rbp), %eax
  1462.     subl    $308352, %eax
  1463.     cmpl    $31, %eax
  1464.     jbe .L28
  1465.     movl    -36(%rbp), %eax
  1466.     subl    $308512, %eax
  1467.     cmpl    $31, %eax
  1468.     jbe .L28
  1469.     movl    -36(%rbp), %eax
  1470.     subl    $603488, %eax
  1471.     cmpl    $31, %eax
  1472.     jbe .L28
  1473.     movl    -36(%rbp), %eax
  1474.     subl    $275840, %eax
  1475.     cmpl    $31, %eax
  1476.     jbe .L28
  1477.     movl    -36(%rbp), %eax
  1478.     subl    $112000, %eax
  1479.     cmpl    $31, %eax
  1480.     jbe .L28
  1481.     movl    -36(%rbp), %eax
  1482.     subl    $308640, %eax
  1483.     cmpl    $31, %eax
  1484.     jbe .L28
  1485.     movl    -36(%rbp), %eax
  1486.     subl    $177728, %eax
  1487.     cmpl    $31, %eax
  1488.     jbe .L28
  1489.     movl    -36(%rbp), %eax
  1490.     subl    $112192, %eax
  1491.     cmpl    $31, %eax
  1492.     jbe .L28
  1493.     movl    -36(%rbp), %eax
  1494.     subl    $341568, %eax
  1495.     cmpl    $31, %eax
  1496.     jbe .L28
  1497.     movl    -36(%rbp), %eax
  1498.     subl    $407168, %eax
  1499.     cmpl    $31, %eax
  1500.     jbe .L28
  1501.     movl    -36(%rbp), %eax
  1502.     subl    $243328, %eax
  1503.     cmpl    $31, %eax
  1504.     jbe .L28
  1505.     movl    -36(%rbp), %eax
  1506.     subl    $571104, %eax
  1507.     cmpl    $31, %eax
  1508.     jbe .L28
  1509.     movl    -36(%rbp), %eax
  1510.     subl    $276224, %eax
  1511.     cmpl    $31, %eax
  1512.     jbe .L28
  1513.     movl    -36(%rbp), %eax
  1514.     subl    $407296, %eax
  1515.     cmpl    $31, %eax
  1516.     jbe .L28
  1517.     movl    -36(%rbp), %eax
  1518.     subl    $308992, %eax
  1519.     cmpl    $31, %eax
  1520.     jbe .L28
  1521.     movl    -36(%rbp), %eax
  1522.     subl    $341792, %eax
  1523.     cmpl    $31, %eax
  1524.     jbe .L28
  1525.     movl    -36(%rbp), %eax
  1526.     subl    $309024, %eax
  1527.     cmpl    $31, %eax
  1528.     jbe .L28
  1529.     movl    -36(%rbp), %eax
  1530.     subl    $440192, %eax
  1531.     cmpl    $31, %eax
  1532.     jbe .L28
  1533.     movl    -36(%rbp), %eax
  1534.     subl    $571264, %eax
  1535.     cmpl    $31, %eax
  1536.     jbe .L28
  1537.     movl    -36(%rbp), %eax
  1538.     subl    $407424, %eax
  1539.     cmpl    $31, %eax
  1540.     jbe .L28
  1541.     movl    -36(%rbp), %eax
  1542.     subl    $571328, %eax
  1543.     cmpl    $31, %eax
  1544.     jbe .L28
  1545.     movl    -36(%rbp), %eax
  1546.     subl    $473024, %eax
  1547.     cmpl    $31, %eax
  1548.     jbe .L28
  1549.     movl    -36(%rbp), %eax
  1550.     subl    $309184, %eax
  1551.     cmpl    $31, %eax
  1552.     jbe .L28
  1553.     movl    -36(%rbp), %eax
  1554.     subl    $309248, %eax
  1555.     cmpl    $31, %eax
  1556.     jbe .L28
  1557.     movl    -36(%rbp), %eax
  1558.     subl    $407552, %eax
  1559.     cmpl    $31, %eax
  1560.     jbe .L28
  1561.     movl    -36(%rbp), %eax
  1562.     subl    $538688, %eax
  1563.     cmpl    $31, %eax
  1564.     jbe .L28
  1565.     movl    -36(%rbp), %eax
  1566.     subl    $571456, %eax
  1567.     cmpl    $31, %eax
  1568.     jbe .L28
  1569.     movl    -36(%rbp), %eax
  1570.     subl    $374912, %eax
  1571.     cmpl    $31, %eax
  1572.     jbe .L28
  1573.     movl    -36(%rbp), %eax
  1574.     subl    $276608, %eax
  1575.     cmpl    $31, %eax
  1576.     jbe .L28
  1577.     movl    -36(%rbp), %eax
  1578.     subl    $145568, %eax
  1579.     cmpl    $31, %eax
  1580.     jbe .L28
  1581.     movl    -36(%rbp), %eax
  1582.     subl    $571584, %eax
  1583.     cmpl    $31, %eax
  1584.     jbe .L28
  1585.     movl    -36(%rbp), %eax
  1586.     subl    $571712, %eax
  1587.     cmpl    $31, %eax
  1588.     jbe .L28
  1589.     movl    -36(%rbp), %eax
  1590.     subl    $276800, %eax
  1591.     cmpl    $31, %eax
  1592.     jbe .L28
  1593.     movl    -36(%rbp), %eax
  1594.     subl    $407872, %eax
  1595.     cmpl    $31, %eax
  1596.     jbe .L28
  1597.     movl    -36(%rbp), %eax
  1598.     subl    $309568, %eax
  1599.     cmpl    $31, %eax
  1600.     jbe .L28
  1601.     movl    -36(%rbp), %eax
  1602.     subl    $571776, %eax
  1603.     cmpl    $31, %eax
  1604.     jbe .L28
  1605.     movl    -36(%rbp), %eax
  1606.     subl    $408000, %eax
  1607.     cmpl    $31, %eax
  1608.     jbe .L28
  1609.     movl    -36(%rbp), %eax
  1610.     subl    $539232, %eax
  1611.     cmpl    $31, %eax
  1612.     jbe .L28
  1613.     movl    -36(%rbp), %eax
  1614.     subl    $113344, %eax
  1615.     cmpl    $31, %eax
  1616.     jbe .L28
  1617.     movl    -36(%rbp), %eax
  1618.     subl    $309952, %eax
  1619.     cmpl    $31, %eax
  1620.     jbe .L28
  1621.     movl    -36(%rbp), %eax
  1622.     subl    $408352, %eax
  1623.     cmpl    $31, %eax
  1624.     jbe .L28
  1625.     movl    -36(%rbp), %eax
  1626.     subl    $310080, %eax
  1627.     cmpl    $31, %eax
  1628.     jbe .L28
  1629.     movl    -36(%rbp), %eax
  1630.     subl    $408384, %eax
  1631.     cmpl    $31, %eax
  1632.     jbe .L28
  1633.     movl    -36(%rbp), %eax
  1634.     subl    $113536, %eax
  1635.     cmpl    $31, %eax
  1636.     jbe .L28
  1637.     movl    -36(%rbp), %eax
  1638.     subl    $310176, %eax
  1639.     cmpl    $31, %eax
  1640.     jbe .L28
  1641.     movl    -36(%rbp), %eax
  1642.     subl    $539584, %eax
  1643.     cmpl    $31, %eax
  1644.     jbe .L28
  1645.     movl    -36(%rbp), %eax
  1646.     subl    $408544, %eax
  1647.     cmpl    $31, %eax
  1648.     jbe .L28
  1649.     movl    -36(%rbp), %eax
  1650.     subl    $113664, %eax
  1651.     cmpl    $31, %eax
  1652.     jbe .L28
  1653.     movl    -36(%rbp), %eax
  1654.     subl    $408608, %eax
  1655.     cmpl    $31, %eax
  1656.     jbe .L28
  1657.     movl    -36(%rbp), %eax
  1658.     subl    $605216, %eax
  1659.     cmpl    $31, %eax
  1660.     jbe .L28
  1661.     movl    -36(%rbp), %eax
  1662.     subl    $310336, %eax
  1663.     cmpl    $31, %eax
  1664.     jbe .L28
  1665.     movl    -36(%rbp), %eax
  1666.     subl    $310400, %eax
  1667.     cmpl    $31, %eax
  1668.     jbe .L28
  1669.     movl    -36(%rbp), %eax
  1670.     subl    $408704, %eax
  1671.     cmpl    $31, %eax
  1672.     jbe .L28
  1673.     movl    -36(%rbp), %eax
  1674.     subl    $539840, %eax
  1675.     cmpl    $31, %eax
  1676.     jbe .L28
  1677.     movl    -36(%rbp), %eax
  1678.     subl    $113856, %eax
  1679.     cmpl    $31, %eax
  1680.     jbe .L28
  1681.     movl    -36(%rbp), %eax
  1682.     subl    $277760, %eax
  1683.     cmpl    $31, %eax
  1684.     jbe .L28
  1685.     movl    -36(%rbp), %eax
  1686.     subl    $310528, %eax
  1687.     cmpl    $31, %eax
  1688.     jbe .L28
  1689.     movl    -36(%rbp), %eax
  1690.     subl    $310656, %eax
  1691.     cmpl    $31, %eax
  1692.     jbe .L28
  1693.     movl    -36(%rbp), %eax
  1694.     subl    $408960, %eax
  1695.     cmpl    $31, %eax
  1696.     jbe .L28
  1697.     movl    -36(%rbp), %eax
  1698.     subl    $310784, %eax
  1699.     cmpl    $31, %eax
  1700.     jbe .L28
  1701.     movl    -36(%rbp), %eax
  1702.     subl    $540160, %eax
  1703.     cmpl    $31, %eax
  1704.     jbe .L28
  1705.     movl    -36(%rbp), %eax
  1706.     subl    $179744, %eax
  1707.     cmpl    $31, %eax
  1708.     jbe .L28
  1709.     movl    -36(%rbp), %eax
  1710.     subl    $441920, %eax
  1711.     cmpl    $31, %eax
  1712.     jbe .L28
  1713.     movl    -36(%rbp), %eax
  1714.     subl    $310848, %eax
  1715.     cmpl    $31, %eax
  1716.     jbe .L28
  1717.     movl    -36(%rbp), %eax
  1718.     subl    $376384, %eax
  1719.     cmpl    $31, %eax
  1720.     jbe .L28
  1721.     movl    -36(%rbp), %eax
  1722.     subl    $409184, %eax
  1723.     cmpl    $31, %eax
  1724.     jbe .L28
  1725.     movl    -36(%rbp), %eax
  1726.     subl    $48800, %eax
  1727.     cmpl    $31, %eax
  1728.     jbe .L28
  1729.     movl    -36(%rbp), %eax
  1730.     subl    $507584, %eax
  1731.     cmpl    $31, %eax
  1732.     jbe .L28
  1733.     movl    -36(%rbp), %eax
  1734.     subl    $409376, %eax
  1735.     cmpl    $31, %eax
  1736.     jbe .L28
  1737.     movl    -36(%rbp), %eax
  1738.     subl    $376640, %eax
  1739.     cmpl    $31, %eax
  1740.     jbe .L28
  1741.     movl    -36(%rbp), %eax
  1742.     subl    $573248, %eax
  1743.     cmpl    $31, %eax
  1744.     jbe .L28
  1745.     movl    -36(%rbp), %eax
  1746.     subl    $180224, %eax
  1747.     cmpl    $31, %eax
  1748.     jbe .L28
  1749.     movl    -36(%rbp), %eax
  1750.     subl    $540672, %eax
  1751.     cmpl    $31, %eax
  1752.     jbe .L28
  1753.     movl    -36(%rbp), %eax
  1754.     subl    $180416, %eax
  1755.     cmpl    $31, %eax
  1756.     jbe .L28
  1757.     movl    -36(%rbp), %eax
  1758.     subl    $508128, %eax
  1759.     cmpl    $31, %eax
  1760.     jbe .L28
  1761.     movl    -36(%rbp), %eax
  1762.     subl    $409856, %eax
  1763.     cmpl    $31, %eax
  1764.     jbe .L28
  1765.     movl    -36(%rbp), %eax
  1766.     subl    $540992, %eax
  1767.     cmpl    $31, %eax
  1768.     jbe .L28
  1769.     movl    -36(%rbp), %eax
  1770.     subl    $409920, %eax
  1771.     cmpl    $31, %eax
  1772.     jbe .L28
  1773.     movl    -36(%rbp), %eax
  1774.     subl    $213344, %eax
  1775.     cmpl    $31, %eax
  1776.     jbe .L28
  1777.     movl    -36(%rbp), %eax
  1778.     subl    $115136, %eax
  1779.     cmpl    $31, %eax
  1780.     jbe .L28
  1781.     movl    -36(%rbp), %eax
  1782.     subl    $508480, %eax
  1783.     cmpl    $31, %eax
  1784.     jbe .L28
  1785.     movl    -36(%rbp), %eax
  1786.     subl    $541248, %eax
  1787.     cmpl    $31, %eax
  1788.     jbe .L28
  1789.     movl    -36(%rbp), %eax
  1790.     subl    $180992, %eax
  1791.     cmpl    $31, %eax
  1792.     jbe .L28
  1793.     movl    -36(%rbp), %eax
  1794.     subl    $115520, %eax
  1795.     cmpl    $31, %eax
  1796.     jbe .L28
  1797.     movl    -36(%rbp), %eax
  1798.     subl    $344896, %eax
  1799.     cmpl    $31, %eax
  1800.     jbe .L28
  1801.     movl    -36(%rbp), %eax
  1802.     subl    $344960, %eax
  1803.     cmpl    $31, %eax
  1804.     jbe .L28
  1805.     movl    -36(%rbp), %eax
  1806.     subl    $82816, %eax
  1807.     cmpl    $31, %eax
  1808.     jbe .L28
  1809.     movl    -36(%rbp), %eax
  1810.     subl    $377792, %eax
  1811.     cmpl    $31, %eax
  1812.     jbe .L28
  1813.     movl    -36(%rbp), %eax
  1814.     subl    $246784, %eax
  1815.     cmpl    $31, %eax
  1816.     jbe .L28
  1817.     movl    -36(%rbp), %eax
  1818.     subl    $377920, %eax
  1819.     cmpl    $31, %eax
  1820.     jbe .L28
  1821.     movl    -36(%rbp), %eax
  1822.     subl    $410688, %eax
  1823.     cmpl    $31, %eax
  1824.     jbe .L28
  1825.     movl    -36(%rbp), %eax
  1826.     subl    $509056, %eax
  1827.     cmpl    $31, %eax
  1828.     jbe .L28
  1829.     movl    -36(%rbp), %eax
  1830.     subl    $378048, %eax
  1831.     cmpl    $31, %eax
  1832.     jbe .L28
  1833.     movl    -36(%rbp), %eax
  1834.     subl    $410848, %eax
  1835.     cmpl    $31, %eax
  1836.     jbe .L28
  1837.     movl    -36(%rbp), %eax
  1838.     subl    $345344, %eax
  1839.     cmpl    $31, %eax
  1840.     jbe .L28
  1841.     movl    -36(%rbp), %eax
  1842.     subl    $17696, %eax
  1843.     cmpl    $31, %eax
  1844.     jbe .L28
  1845.     movl    -36(%rbp), %eax
  1846.     subl    $378176, %eax
  1847.     cmpl    $31, %eax
  1848.     jbe .L28
  1849.     movl    -36(%rbp), %eax
  1850.     subl    $476480, %eax
  1851.     cmpl    $31, %eax
  1852.     jbe .L28
  1853.     movl    -36(%rbp), %eax
  1854.     subl    $345408, %eax
  1855.     cmpl    $31, %eax
  1856.     jbe .L28
  1857.     movl    -36(%rbp), %eax
  1858.     subl    $542144, %eax
  1859.     cmpl    $31, %eax
  1860.     jbe .L28
  1861.     movl    -36(%rbp), %eax
  1862.     subl    $214496, %eax
  1863.     cmpl    $31, %eax
  1864.     jbe .L28
  1865.     movl    -36(%rbp), %eax
  1866.     subl    $181728, %eax
  1867.     cmpl    $31, %eax
  1868.     jbe .L28
  1869.     movl    -36(%rbp), %eax
  1870.     subl    $181888, %eax
  1871.     cmpl    $31, %eax
  1872.     jbe .L28
  1873.     movl    -36(%rbp), %eax
  1874.     subl    $181952, %eax
  1875.     cmpl    $31, %eax
  1876.     jbe .L28
  1877.     movl    -36(%rbp), %eax
  1878.     subl    $313024, %eax
  1879.     cmpl    $31, %eax
  1880.     jbe .L28
  1881.     movl    -36(%rbp), %eax
  1882.     subl    $214880, %eax
  1883.     cmpl    $31, %eax
  1884.     jbe .L28
  1885.     movl    -36(%rbp), %eax
  1886.     subl    $444320, %eax
  1887.     cmpl    $31, %eax
  1888.     jbe .L28
  1889.     movl    -36(%rbp), %eax
  1890.     subl    $509888, %eax
  1891.     cmpl    $31, %eax
  1892.     jbe .L28
  1893.     movl    -36(%rbp), %eax
  1894.     subl    $411680, %eax
  1895.     cmpl    $31, %eax
  1896.     jbe .L28
  1897.     movl    -36(%rbp), %eax
  1898.     subl    $313408, %eax
  1899.     cmpl    $31, %eax
  1900.     jbe .L28
  1901.     movl    -36(%rbp), %eax
  1902.     subl    $510144, %eax
  1903.     cmpl    $31, %eax
  1904.     jbe .L28
  1905.     movl    -36(%rbp), %eax
  1906.     subl    $313536, %eax
  1907.     cmpl    $31, %eax
  1908.     jbe .L28
  1909.     movl    -36(%rbp), %eax
  1910.     subl    $346336, %eax
  1911.     cmpl    $31, %eax
  1912.     jbe .L28
  1913.     movl    -36(%rbp), %eax
  1914.     subl    $182528, %eax
  1915.     cmpl    $31, %eax
  1916.     jbe .L28
  1917.     movl    -36(%rbp), %eax
  1918.     subl    $346400, %eax
  1919.     cmpl    $31, %eax
  1920.     jbe .L28
  1921.     movl    -36(%rbp), %eax
  1922.     subl    $444704, %eax
  1923.     cmpl    $31, %eax
  1924.     jbe .L28
  1925.     movl    -36(%rbp), %eax
  1926.     subl    $346496, %eax
  1927.     cmpl    $31, %eax
  1928.     jbe .L28
  1929.     movl    -36(%rbp), %eax
  1930.     subl    $182656, %eax
  1931.     cmpl    $31, %eax
  1932.     jbe .L28
  1933.     movl    -36(%rbp), %eax
  1934.     subl    $346560, %eax
  1935.     cmpl    $31, %eax
  1936.     jbe .L28
  1937.     movl    -36(%rbp), %eax
  1938.     subl    $248320, %eax
  1939.     cmpl    $31, %eax
  1940.     jbe .L28
  1941.     movl    -36(%rbp), %eax
  1942.     subl    $182784, %eax
  1943.     cmpl    $31, %eax
  1944.     jbe .L28
  1945.     movl    -36(%rbp), %eax
  1946.     subl    $477792, %eax
  1947.     cmpl    $31, %eax
  1948.     jbe .L28
  1949.     movl    -36(%rbp), %eax
  1950.     subl    $182912, %eax
  1951.     cmpl    $31, %eax
  1952.     jbe .L28
  1953.     movl    -36(%rbp), %eax
  1954.     subl    $248448, %eax
  1955.     cmpl    $31, %eax
  1956.     jbe .L28
  1957.     movl    -36(%rbp), %eax
  1958.     subl    $477952, %eax
  1959.     cmpl    $31, %eax
  1960.     jbe .L28
  1961.     movl    -36(%rbp), %eax
  1962.     subl    $478016, %eax
  1963.     cmpl    $31, %eax
  1964.     jbe .L28
  1965.     movl    -36(%rbp), %eax
  1966.     subl    $346976, %eax
  1967.     cmpl    $31, %eax
  1968.     jbe .L28
  1969.     movl    -36(%rbp), %eax
  1970.     subl    $412544, %eax
  1971.     cmpl    $31, %eax
  1972.     jbe .L28
  1973.     movl    -36(%rbp), %eax
  1974.     subl    $478144, %eax
  1975.     cmpl    $31, %eax
  1976.     jbe .L28
  1977.     movl    -36(%rbp), %eax
  1978.     subl    $379904, %eax
  1979.     cmpl    $31, %eax
  1980.     jbe .L28
  1981.     movl    -36(%rbp), %eax
  1982.     subl    $347168, %eax
  1983.     cmpl    $31, %eax
  1984.     jbe .L28
  1985.     movl    -36(%rbp), %eax
  1986.     subl    $52256, %eax
  1987.     cmpl    $31, %eax
  1988.     jbe .L28
  1989.     movl    -36(%rbp), %eax
  1990.     subl    $511040, %eax
  1991.     cmpl    $31, %eax
  1992.     jbe .L28
  1993.     movl    -36(%rbp), %eax
  1994.     subl    $478272, %eax
  1995.     cmpl    $31, %eax
  1996.     jbe .L28
  1997.     movl    -36(%rbp), %eax
  1998.     subl    $478400, %eax
  1999.     cmpl    $31, %eax
  2000.     jbe .L28
  2001.     movl    -36(%rbp), %eax
  2002.     subl    $183488, %eax
  2003.     cmpl    $31, %eax
  2004.     jbe .L28
  2005.     movl    -36(%rbp), %eax
  2006.     subl    $576704, %eax
  2007.     cmpl    $31, %eax
  2008.     jbe .L28
  2009.     movl    -36(%rbp), %eax
  2010.     subl    $478464, %eax
  2011.     cmpl    $31, %eax
  2012.     jbe .L28
  2013.     movl    -36(%rbp), %eax
  2014.     subl    $183552, %eax
  2015.     cmpl    $31, %eax
  2016.     jbe .L28
  2017.     movl    -36(%rbp), %eax
  2018.     subl    $446176, %eax
  2019.     cmpl    $31, %eax
  2020.     jbe .L28
  2021.     movl    -36(%rbp), %eax
  2022.     subl    $151264, %eax
  2023.     cmpl    $31, %eax
  2024.     jbe .L28
  2025.     movl    -36(%rbp), %eax
  2026.     subl    $446304, %eax
  2027.     cmpl    $31, %eax
  2028.     jbe .L28
  2029.     movl    -36(%rbp), %eax
  2030.     subl    $151392, %eax
  2031.     cmpl    $31, %eax
  2032.     jbe .L28
  2033.     movl    -36(%rbp), %eax
  2034.     subl    $184448, %eax
  2035.     cmpl    $31, %eax
  2036.     jbe .L28
  2037.     movl    -36(%rbp), %eax
  2038.     subl    $151744, %eax
  2039.     cmpl    $31, %eax
  2040.     jbe .L28
  2041.     movl    -36(%rbp), %eax
  2042.     subl    $151776, %eax
  2043.     cmpl    $31, %eax
  2044.     jbe .L28
  2045.     movl    -36(%rbp), %eax
  2046.     subl    $151936, %eax
  2047.     cmpl    $31, %eax
  2048.     jbe .L28
  2049.     movl    -36(%rbp), %eax
  2050.     subl    $152000, %eax
  2051.     cmpl    $31, %eax
  2052.     jbe .L28
  2053.     movl    -36(%rbp), %eax
  2054.     subl    $119392, %eax
  2055.     cmpl    $31, %eax
  2056.     jbe .L28
  2057.     movl    -36(%rbp), %eax
  2058.     subl    $250496, %eax
  2059.     cmpl    $31, %eax
  2060.     jbe .L28
  2061.     movl    -36(%rbp), %eax
  2062.     subl    $381568, %eax
  2063.     cmpl    $31, %eax
  2064.     jbe .L28
  2065.     movl    -36(%rbp), %eax
  2066.     subl    $21152, %eax
  2067.     cmpl    $31, %eax
  2068.     jbe .L28
  2069.     movl    -36(%rbp), %eax
  2070.     subl    $185024, %eax
  2071.     cmpl    $31, %eax
  2072.     jbe .L28
  2073.     movl    -36(%rbp), %eax
  2074.     subl    $479936, %eax
  2075.     cmpl    $31, %eax
  2076.     jbe .L28
  2077.     movl    -36(%rbp), %eax
  2078.     subl    $447232, %eax
  2079.     cmpl    $31, %eax
  2080.     jbe .L28
  2081.     movl    -36(%rbp), %eax
  2082.     subl    $185216, %eax
  2083.     cmpl    $31, %eax
  2084.     jbe .L28
  2085.     movl    -36(%rbp), %eax
  2086.     subl    $578432, %eax
  2087.     cmpl    $31, %eax
  2088.     jbe .L28
  2089.     movl    -36(%rbp), %eax
  2090.     subl    $447488, %eax
  2091.     cmpl    $31, %eax
  2092.     jbe .L28
  2093.     movl    -36(%rbp), %eax
  2094.     subl    $316480, %eax
  2095.     cmpl    $31, %eax
  2096.     jbe .L28
  2097.     movl    -36(%rbp), %eax
  2098.     subl    $119904, %eax
  2099.     cmpl    $31, %eax
  2100.     jbe .L28
  2101.     movl    -36(%rbp), %eax
  2102.     subl    $414848, %eax
  2103.     cmpl    $31, %eax
  2104.     jbe .L28
  2105.     movl    -36(%rbp), %eax
  2106.     subl    $218272, %eax
  2107.     cmpl    $31, %eax
  2108.     jbe .L28
  2109.     movl    -36(%rbp), %eax
  2110.     subl    $415040, %eax
  2111.     cmpl    $31, %eax
  2112.     jbe .L28
  2113.     movl    -36(%rbp), %eax
  2114.     subl    $447840, %eax
  2115.     cmpl    $31, %eax
  2116.     jbe .L28
  2117.     movl    -36(%rbp), %eax
  2118.     subl    $316864, %eax
  2119.     cmpl    $31, %eax
  2120.     jbe .L28
  2121.     movl    -36(%rbp), %eax
  2122.     subl    $448000, %eax
  2123.     cmpl    $31, %eax
  2124.     jbe .L28
  2125.     movl    -36(%rbp), %eax
  2126.     subl    $448064, %eax
  2127.     cmpl    $31, %eax
  2128.     jbe .L28
  2129.     movl    -36(%rbp), %eax
  2130.     subl    $316992, %eax
  2131.     cmpl    $31, %eax
  2132.     jbe .L28
  2133.     movl    -36(%rbp), %eax
  2134.     subl    $415616, %eax
  2135.     cmpl    $31, %eax
  2136.     jbe .L28
  2137.     movl    -36(%rbp), %eax
  2138.     subl    $120832, %eax
  2139.     cmpl    $31, %eax
  2140.     jbe .L28
  2141.     movl    -36(%rbp), %eax
  2142.     subl    $251968, %eax
  2143.     cmpl    $31, %eax
  2144.     jbe .L28
  2145.     movl    -36(%rbp), %eax
  2146.     subl    $383104, %eax
  2147.     cmpl    $31, %eax
  2148.     jbe .L28
  2149.     movl    -36(%rbp), %eax
  2150.     subl    $88288, %eax
  2151.     cmpl    $31, %eax
  2152.     jbe .L28
  2153.     movl    -36(%rbp), %eax
  2154.     subl    $121056, %eax
  2155.     cmpl    $31, %eax
  2156.     jbe .L28
  2157.     movl    -36(%rbp), %eax
  2158.     subl    $547072, %eax
  2159.     cmpl    $31, %eax
  2160.     jbe .L28
  2161.     movl    -36(%rbp), %eax
  2162.     subl    $383232, %eax
  2163.     cmpl    $31, %eax
  2164.     jbe .L28
  2165.     movl    -36(%rbp), %eax
  2166.     subl    $252224, %eax
  2167.     cmpl    $31, %eax
  2168.     jbe .L28
  2169.     movl    -36(%rbp), %eax
  2170.     subl    $284992, %eax
  2171.     cmpl    $31, %eax
  2172.     jbe .L28
  2173.     movl    -36(%rbp), %eax
  2174.     subl    $416096, %eax
  2175.     cmpl    $31, %eax
  2176.     jbe .L28
  2177.     movl    -36(%rbp), %eax
  2178.     subl    $285056, %eax
  2179.     cmpl    $31, %eax
  2180.     jbe .L28
  2181.     movl    -36(%rbp), %eax
  2182.     subl    $416288, %eax
  2183.     cmpl    $31, %eax
  2184.     jbe .L28
  2185.     movl    -36(%rbp), %eax
  2186.     subl    $318016, %eax
  2187.     cmpl    $31, %eax
  2188.     jbe .L28
  2189.     movl    -36(%rbp), %eax
  2190.     subl    $187040, %eax
  2191.     cmpl    $31, %eax
  2192.     jbe .L28
  2193.     movl    -36(%rbp), %eax
  2194.     subl    $219808, %eax
  2195.     cmpl    $31, %eax
  2196.     jbe .L28
  2197.     movl    -36(%rbp), %eax
  2198.     subl    $318144, %eax
  2199.     cmpl    $31, %eax
  2200.     jbe .L28
  2201.     movl    -36(%rbp), %eax
  2202.     subl    $88800, %eax
  2203.     cmpl    $31, %eax
  2204.     jbe .L28
  2205.     movl    -36(%rbp), %eax
  2206.     subl    $547584, %eax
  2207.     cmpl    $31, %eax
  2208.     jbe .L28
  2209.     movl    -36(%rbp), %eax
  2210.     subl    $449312, %eax
  2211.     cmpl    $31, %eax
  2212.     jbe .L28
  2213.     movl    -36(%rbp), %eax
  2214.     subl    $219936, %eax
  2215.     cmpl    $31, %eax
  2216.     jbe .L28
  2217.     movl    -36(%rbp), %eax
  2218.     subl    $514880, %eax
  2219.     cmpl    $31, %eax
  2220.     jbe .L28
  2221.     movl    -36(%rbp), %eax
  2222.     subl    $121664, %eax
  2223.     cmpl    $31, %eax
  2224.     jbe .L28
  2225.     movl    -36(%rbp), %eax
  2226.     subl    $547840, %eax
  2227.     cmpl    $31, %eax
  2228.     jbe .L28
  2229.     movl    -36(%rbp), %eax
  2230.     subl    $318496, %eax
  2231.     cmpl    $31, %eax
  2232.     jbe .L28
  2233.     movl    -36(%rbp), %eax
  2234.     subl    $318528, %eax
  2235.     cmpl    $31, %eax
  2236.     jbe .L28
  2237.     movl    -36(%rbp), %eax
  2238.     subl    $416864, %eax
  2239.     cmpl    $31, %eax
  2240.     jbe .L28
  2241.     movl    -36(%rbp), %eax
  2242.     subl    $547968, %eax
  2243.     cmpl    $31, %eax
  2244.     jbe .L28
  2245.     movl    -36(%rbp), %eax
  2246.     subl    $318688, %eax
  2247.     cmpl    $31, %eax
  2248.     jbe .L28
  2249.     movl    -36(%rbp), %eax
  2250.     subl    $449792, %eax
  2251.     cmpl    $31, %eax
  2252.     jbe .L28
  2253.     movl    -36(%rbp), %eax
  2254.     subl    $318752, %eax
  2255.     cmpl    $31, %eax
  2256.     jbe .L28
  2257.     movl    -36(%rbp), %eax
  2258.     subl    $318880, %eax
  2259.     cmpl    $31, %eax
  2260.     jbe .L28
  2261.     movl    -36(%rbp), %eax
  2262.     subl    $253376, %eax
  2263.     cmpl    $31, %eax
  2264.     jbe .L28
  2265.     movl    -36(%rbp), %eax
  2266.     subl    $449984, %eax
  2267.     cmpl    $31, %eax
  2268.     jbe .L28
  2269.     movl    -36(%rbp), %eax
  2270.     subl    $155072, %eax
  2271.     cmpl    $31, %eax
  2272.     jbe .L28
  2273.     movl    -36(%rbp), %eax
  2274.     subl    $548320, %eax
  2275.     cmpl    $31, %eax
  2276.     jbe .L28
  2277.     movl    -36(%rbp), %eax
  2278.     subl    $548352, %eax
  2279.     cmpl    $31, %eax
  2280.     jbe .L28
  2281.     movl    -36(%rbp), %eax
  2282.     subl    $319008, %eax
  2283.     cmpl    $31, %eax
  2284.     jbe .L28
  2285.     movl    -36(%rbp), %eax
  2286.     subl    $253504, %eax
  2287.     cmpl    $31, %eax
  2288.     jbe .L28
  2289.     movl    -36(%rbp), %eax
  2290.     subl    $89728, %eax
  2291.     cmpl    $31, %eax
  2292.     jbe .L28
  2293.     movl    -36(%rbp), %eax
  2294.     subl    $548512, %eax
  2295.     cmpl    $31, %eax
  2296.     jbe .L28
  2297.     movl    -36(%rbp), %eax
  2298.     subl    $253632, %eax
  2299.     cmpl    $31, %eax
  2300.     jbe .L28
  2301.     movl    -36(%rbp), %eax
  2302.     subl    $548576, %eax
  2303.     cmpl    $31, %eax
  2304.     jbe .L28
  2305.     movl    -36(%rbp), %eax
  2306.     subl    $253760, %eax
  2307.     cmpl    $31, %eax
  2308.     jbe .L28
  2309.     movl    -36(%rbp), %eax
  2310.     subl    $89952, %eax
  2311.     cmpl    $31, %eax
  2312.     jbe .L28
  2313.     movl    -36(%rbp), %eax
  2314.     subl    $548736, %eax
  2315.     cmpl    $31, %eax
  2316.     jbe .L28
  2317.     movl    -36(%rbp), %eax
  2318.     subl    $319360, %eax
  2319.     cmpl    $31, %eax
  2320.     jbe .L28
  2321.     movl    -36(%rbp), %eax
  2322.     subl    $319392, %eax
  2323.     cmpl    $31, %eax
  2324.     jbe .L28
  2325.     movl    -36(%rbp), %eax
  2326.     subl    $450560, %eax
  2327.     cmpl    $31, %eax
  2328.     jbe .L28
  2329.     movl    -36(%rbp), %eax
  2330.     subl    $483392, %eax
  2331.     cmpl    $31, %eax
  2332.     jbe .L28
  2333.     movl    -36(%rbp), %eax
  2334.     subl    $319552, %eax
  2335.     cmpl    $31, %eax
  2336.     jbe .L28
  2337.     movl    -36(%rbp), %eax
  2338.     subl    $319616, %eax
  2339.     cmpl    $31, %eax
  2340.     jbe .L28
  2341.     movl    -36(%rbp), %eax
  2342.     subl    $90304, %eax
  2343.     cmpl    $31, %eax
  2344.     jbe .L28
  2345.     movl    -36(%rbp), %eax
  2346.     subl    $516352, %eax
  2347.     cmpl    $31, %eax
  2348.     jbe .L28
  2349.     movl    -36(%rbp), %eax
  2350.     subl    $155936, %eax
  2351.     cmpl    $31, %eax
  2352.     jbe .L28
  2353.     movl    -36(%rbp), %eax
  2354.     subl    $24992, %eax
  2355.     cmpl    $31, %eax
  2356.     jbe .L28
  2357.     movl    -36(%rbp), %eax
  2358.     subl    $90560, %eax
  2359.     cmpl    $31, %eax
  2360.     jbe .L28
  2361.     movl    -36(%rbp), %eax
  2362.     subl    $516544, %eax
  2363.     cmpl    $31, %eax
  2364.     jbe .L28
  2365.     movl    -36(%rbp), %eax
  2366.     subl    $319936, %eax
  2367.     cmpl    $31, %eax
  2368.     jbe .L28
  2369.     movl    -36(%rbp), %eax
  2370.     subl    $352736, %eax
  2371.     cmpl    $31, %eax
  2372.     jbe .L28
  2373.     movl    -36(%rbp), %eax
  2374.     subl    $549344, %eax
  2375.     cmpl    $31, %eax
  2376.     jbe .L28
  2377.     movl    -36(%rbp), %eax
  2378.     subl    $57952, %eax
  2379.     cmpl    $31, %eax
  2380.     jbe .L28
  2381.     movl    -36(%rbp), %eax
  2382.     subl    $58080, %eax
  2383.     cmpl    $31, %eax
  2384.     jbe .L28
  2385.     movl    -36(%rbp), %eax
  2386.     subl    $418592, %eax
  2387.     cmpl    $31, %eax
  2388.     jbe .L28
  2389.     movl    -36(%rbp), %eax
  2390.     subl    $320320, %eax
  2391.     cmpl    $31, %eax
  2392.     jbe .L28
  2393.     movl    -36(%rbp), %eax
  2394.     subl    $353120, %eax
  2395.     cmpl    $31, %eax
  2396.     jbe .L28
  2397.     movl    -36(%rbp), %eax
  2398.     subl    $385888, %eax
  2399.     cmpl    $31, %eax
  2400.     jbe .L28
  2401.     movl    -36(%rbp), %eax
  2402.     subl    $320448, %eax
  2403.     cmpl    $31, %eax
  2404.     jbe .L28
  2405.     movl    -36(%rbp), %eax
  2406.     subl    $320544, %eax
  2407.     cmpl    $31, %eax
  2408.     jbe .L28
  2409.     movl    -36(%rbp), %eax
  2410.     subl    $123968, %eax
  2411.     cmpl    $31, %eax
  2412.     jbe .L28
  2413.     movl    -36(%rbp), %eax
  2414.     subl    $58432, %eax
  2415.     cmpl    $31, %eax
  2416.     jbe .L28
  2417.     movl    -36(%rbp), %eax
  2418.     subl    $386144, %eax
  2419.     cmpl    $31, %eax
  2420.     jbe .L28
  2421.     movl    -36(%rbp), %eax
  2422.     subl    $58464, %eax
  2423.     cmpl    $31, %eax
  2424.     jbe .L28
  2425.     movl    -36(%rbp), %eax
  2426.     subl    $255104, %eax
  2427.     cmpl    $31, %eax
  2428.     jbe .L28
  2429.     movl    -36(%rbp), %eax
  2430.     subl    $320704, %eax
  2431.     cmpl    $31, %eax
  2432.     jbe .L28
  2433.     movl    -36(%rbp), %eax
  2434.     subl    $320768, %eax
  2435.     cmpl    $31, %eax
  2436.     jbe .L28
  2437.     movl    -36(%rbp), %eax
  2438.     subl    $58624, %eax
  2439.     cmpl    $31, %eax
  2440.     jbe .L28
  2441.     movl    -36(%rbp), %eax
  2442.     subl    $58688, %eax
  2443.     cmpl    $31, %eax
  2444.     jbe .L28
  2445.     movl    -36(%rbp), %eax
  2446.     subl    $222592, %eax
  2447.     cmpl    $31, %eax
  2448.     jbe .L28
  2449.     movl    -36(%rbp), %eax
  2450.     subl    $320896, %eax
  2451.     cmpl    $31, %eax
  2452.     jbe .L28
  2453.     movl    -36(%rbp), %eax
  2454.     subl    $255488, %eax
  2455.     cmpl    $31, %eax
  2456.     jbe .L28
  2457.     movl    -36(%rbp), %eax
  2458.     subl    $386560, %eax
  2459.     cmpl    $31, %eax
  2460.     jbe .L28
  2461.     movl    -36(%rbp), %eax
  2462.     subl    $321024, %eax
  2463.     cmpl    $31, %eax
  2464.     jbe .L28
  2465.     movl    -36(%rbp), %eax
  2466.     subl    $517696, %eax
  2467.     cmpl    $31, %eax
  2468.     jbe .L28
  2469.     movl    -36(%rbp), %eax
  2470.     subl    $222848, %eax
  2471.     cmpl    $31, %eax
  2472.     jbe .L28
  2473.     movl    -36(%rbp), %eax
  2474.     subl    $321152, %eax
  2475.     cmpl    $31, %eax
  2476.     jbe .L28
  2477.     movl    -36(%rbp), %eax
  2478.     subl    $321216, %eax
  2479.     cmpl    $31, %eax
  2480.     jbe .L28
  2481.     movl    -36(%rbp), %eax
  2482.     subl    $485120, %eax
  2483.     cmpl    $31, %eax
  2484.     jbe .L28
  2485.     movl    -36(%rbp), %eax
  2486.     subl    $517888, %eax
  2487.     cmpl    $31, %eax
  2488.     jbe .L28
  2489.     movl    -36(%rbp), %eax
  2490.     subl    $26464, %eax
  2491.     cmpl    $31, %eax
  2492.     jbe .L28
  2493.     movl    -36(%rbp), %eax
  2494.     subl    $354176, %eax
  2495.     cmpl    $31, %eax
  2496.     jbe .L28
  2497.     movl    -36(%rbp), %eax
  2498.     subl    $518016, %eax
  2499.     cmpl    $31, %eax
  2500.     jbe .L28
  2501.     movl    -36(%rbp), %eax
  2502.     subl    $354272, %eax
  2503.     cmpl    $31, %eax
  2504.     jbe .L28
  2505.     movl    -36(%rbp), %eax
  2506.     subl    $223264, %eax
  2507.     cmpl    $31, %eax
  2508.     jbe .L28
  2509.     movl    -36(%rbp), %eax
  2510.     subl    $452672, %eax
  2511.     cmpl    $31, %eax
  2512.     jbe .L28
  2513.     movl    -36(%rbp), %eax
  2514.     subl    $518208, %eax
  2515.     cmpl    $31, %eax
  2516.     jbe .L28
  2517.     movl    -36(%rbp), %eax
  2518.     subl    $321664, %eax
  2519.     cmpl    $31, %eax
  2520.     jbe .L28
  2521.     movl    -36(%rbp), %eax
  2522.     subl    $223392, %eax
  2523.     cmpl    $31, %eax
  2524.     jbe .L28
  2525.     movl    -36(%rbp), %eax
  2526.     subl    $584096, %eax
  2527.     cmpl    $31, %eax
  2528.     jbe .L28
  2529.     movl    -36(%rbp), %eax
  2530.     subl    $354752, %eax
  2531.     cmpl    $31, %eax
  2532.     jbe .L28
  2533.     movl    -36(%rbp), %eax
  2534.     subl    $322048, %eax
  2535.     cmpl    $31, %eax
  2536.     jbe .L28
  2537.     movl    -36(%rbp), %eax
  2538.     subl    $354944, %eax
  2539.     cmpl    $31, %eax
  2540.     jbe .L28
  2541.     movl    -36(%rbp), %eax
  2542.     subl    $322176, %eax
  2543.     cmpl    $31, %eax
  2544.     jbe .L28
  2545.     movl    -36(%rbp), %eax
  2546.     subl    $551648, %eax
  2547.     cmpl    $31, %eax
  2548.     jbe .L28
  2549.     movl    -36(%rbp), %eax
  2550.     subl    $584576, %eax
  2551.     cmpl    $31, %eax
  2552.     jbe .L28
  2553.     movl    -36(%rbp), %eax
  2554.     subl    $191360, %eax
  2555.     cmpl    $31, %eax
  2556.     jbe .L28
  2557.     movl    -36(%rbp), %eax
  2558.     subl    $584768, %eax
  2559.     cmpl    $31, %eax
  2560.     jbe .L28
  2561.     movl    -36(%rbp), %eax
  2562.     subl    $224320, %eax
  2563.     cmpl    $31, %eax
  2564.     jbe .L28
  2565.     movl    -36(%rbp), %eax
  2566.     subl    $388224, %eax
  2567.     cmpl    $31, %eax
  2568.     jbe .L28
  2569.     movl    -36(%rbp), %eax
  2570.     subl    $289984, %eax
  2571.     cmpl    $31, %eax
  2572.     jbe .L28
  2573.     movl    -36(%rbp), %eax
  2574.     subl    $388384, %eax
  2575.     cmpl    $31, %eax
  2576.     jbe .L28
  2577.     movl    -36(%rbp), %eax
  2578.     subl    $519488, %eax
  2579.     cmpl    $31, %eax
  2580.     jbe .L28
  2581.     movl    -36(%rbp), %eax
  2582.     subl    $28000, %eax
  2583.     cmpl    $31, %eax
  2584.     jbe .L28
  2585.     movl    -36(%rbp), %eax
  2586.     subl    $28128, %eax
  2587.     cmpl    $31, %eax
  2588.     jbe .L28
  2589.     movl    -36(%rbp), %eax
  2590.     subl    $454144, %eax
  2591.     cmpl    $31, %eax
  2592.     jbe .L28
  2593.     movl    -36(%rbp), %eax
  2594.     subl    $552512, %eax
  2595.     cmpl    $31, %eax
  2596.     jbe .L28
  2597.     movl    -36(%rbp), %eax
  2598.     subl    $585344, %eax
  2599.     cmpl    $31, %eax
  2600.     jbe .L28
  2601.     movl    -36(%rbp), %eax
  2602.     subl    $323200, %eax
  2603.     cmpl    $31, %eax
  2604.     jbe .L28
  2605.     movl    -36(%rbp), %eax
  2606.     subl    $224928, %eax
  2607.     cmpl    $31, %eax
  2608.     jbe .L28
  2609.     movl    -36(%rbp), %eax
  2610.     subl    $519872, %eax
  2611.     cmpl    $31, %eax
  2612.     jbe .L28
  2613.     movl    -36(%rbp), %eax
  2614.     subl    $323328, %eax
  2615.     cmpl    $31, %eax
  2616.     jbe .L28
  2617.     movl    -36(%rbp), %eax
  2618.     subl    $225088, %eax
  2619.     cmpl    $31, %eax
  2620.     jbe .L28
  2621.     movl    -36(%rbp), %eax
  2622.     subl    $225152, %eax
  2623.     cmpl    $31, %eax
  2624.     jbe .L28
  2625.     movl    -36(%rbp), %eax
  2626.     subl    $454720, %eax
  2627.     cmpl    $31, %eax
  2628.     jbe .L28
  2629.     movl    -36(%rbp), %eax
  2630.     subl    $323680, %eax
  2631.     cmpl    $31, %eax
  2632.     jbe .L28
  2633.     movl    -36(%rbp), %eax
  2634.     subl    $323712, %eax
  2635.     cmpl    $31, %eax
  2636.     jbe .L28
  2637.     movl    -36(%rbp), %eax
  2638.     subl    $422048, %eax
  2639.     cmpl    $31, %eax
  2640.     jbe .L28
  2641.     movl    -36(%rbp), %eax
  2642.     subl    $323872, %eax
  2643.     cmpl    $31, %eax
  2644.     jbe .L28
  2645.     movl    -36(%rbp), %eax
  2646.     subl    $61760, %eax
  2647.     cmpl    $31, %eax
  2648.     jbe .L28
  2649.     movl    -36(%rbp), %eax
  2650.     subl    $323936, %eax
  2651.     cmpl    $31, %eax
  2652.     jbe .L28
  2653.     movl    -36(%rbp), %eax
  2654.     subl    $586080, %eax
  2655.     cmpl    $31, %eax
  2656.     jbe .L28
  2657.     movl    -36(%rbp), %eax
  2658.     subl    $324000, %eax
  2659.     cmpl    $31, %eax
  2660.     jbe .L28
  2661.     movl    -36(%rbp), %eax
  2662.     subl    $455104, %eax
  2663.     cmpl    $31, %eax
  2664.     jbe .L28
  2665.     movl    -36(%rbp), %eax
  2666.     subl    $160256, %eax
  2667.     cmpl    $31, %eax
  2668.     jbe .L28
  2669.     movl    -36(%rbp), %eax
  2670.     subl    $586240, %eax
  2671.     cmpl    $31, %eax
  2672.     jbe .L28
  2673.     movl    -36(%rbp), %eax
  2674.     subl    $586304, %eax
  2675.     cmpl    $31, %eax
  2676.     jbe .L28
  2677.     movl    -36(%rbp), %eax
  2678.     subl    $193088, %eax
  2679.     cmpl    $31, %eax
  2680.     jbe .L28
  2681.     movl    -36(%rbp), %eax
  2682.     subl    $324160, %eax
  2683.     cmpl    $31, %eax
  2684.     jbe .L28
  2685.     movl    -36(%rbp), %eax
  2686.     subl    $455232, %eax
  2687.     cmpl    $31, %eax
  2688.     jbe .L28
  2689.     movl    -36(%rbp), %eax
  2690.     subl    $324224, %eax
  2691.     cmpl    $31, %eax
  2692.     jbe .L28
  2693.     movl    -36(%rbp), %eax
  2694.     subl    $389888, %eax
  2695.     cmpl    $31, %eax
  2696.     jbe .L28
  2697.     movl    -36(%rbp), %eax
  2698.     subl    $127744, %eax
  2699.     cmpl    $31, %eax
  2700.     jbe .L28
  2701.     movl    -36(%rbp), %eax
  2702.     subl    $324352, %eax
  2703.     cmpl    $31, %eax
  2704.     jbe .L28
  2705.     movl    -36(%rbp), %eax
  2706.     subl    $357248, %eax
  2707.     cmpl    $31, %eax
  2708.     jbe .L28
  2709.     movl    -36(%rbp), %eax
  2710.     subl    $324480, %eax
  2711.     cmpl    $31, %eax
  2712.     jbe .L28
  2713.     movl    -36(%rbp), %eax
  2714.     subl    $29600, %eax
  2715.     cmpl    $31, %eax
  2716.     jbe .L28
  2717.     movl    -36(%rbp), %eax
  2718.     subl    $324608, %eax
  2719.     cmpl    $31, %eax
  2720.     jbe .L28
  2721.     movl    -36(%rbp), %eax
  2722.     subl    $455680, %eax
  2723.     cmpl    $31, %eax
  2724.     jbe .L28
  2725.     movl    -36(%rbp), %eax
  2726.     subl    $324672, %eax
  2727.     cmpl    $31, %eax
  2728.     jbe .L28
  2729.     movl    -36(%rbp), %eax
  2730.     subl    $586880, %eax
  2731.     cmpl    $31, %eax
  2732.     jbe .L28
  2733.     movl    -36(%rbp), %eax
  2734.     subl    $390272, %eax
  2735.     cmpl    $31, %eax
  2736.     jbe .L28
  2737.     movl    -36(%rbp), %eax
  2738.     subl    $455808, %eax
  2739.     cmpl    $31, %eax
  2740.     jbe .L28
  2741.     movl    -36(%rbp), %eax
  2742.     subl    $128128, %eax
  2743.     cmpl    $31, %eax
  2744.     jbe .L28
  2745.     movl    -36(%rbp), %eax
  2746.     subl    $62624, %eax
  2747.     cmpl    $31, %eax
  2748.     jbe .L28
  2749.     movl    -36(%rbp), %eax
  2750.     subl    $587008, %eax
  2751.     cmpl    $31, %eax
  2752.     jbe .L28
  2753.     movl    -36(%rbp), %eax
  2754.     subl    $29984, %eax
  2755.     cmpl    $31, %eax
  2756.     jbe .L28
  2757.     movl    -36(%rbp), %eax
  2758.     subl    $324928, %eax
  2759.     cmpl    $31, %eax
  2760.     jbe .L28
  2761.     movl    -36(%rbp), %eax
  2762.     subl    $259424, %eax
  2763.     cmpl    $31, %eax
  2764.     jbe .L28
  2765.     movl    -36(%rbp), %eax
  2766.     subl    $587136, %eax
  2767.     cmpl    $31, %eax
  2768.     jbe .L28
  2769.     movl    -36(%rbp), %eax
  2770.     subl    $325056, %eax
  2771.     cmpl    $31, %eax
  2772.     jbe .L28
  2773.     movl    -36(%rbp), %eax
  2774.     subl    $587264, %eax
  2775.     cmpl    $31, %eax
  2776.     jbe .L28
  2777.     movl    -36(%rbp), %eax
  2778.     subl    $128512, %eax
  2779.     cmpl    $31, %eax
  2780.     jbe .L28
  2781.     movl    -36(%rbp), %eax
  2782.     subl    $128640, %eax
  2783.     cmpl    $31, %eax
  2784.     jbe .L28
  2785.     movl    -36(%rbp), %eax
  2786.     subl    $358048, %eax
  2787.     cmpl    $31, %eax
  2788.     jbe .L28
  2789.     movl    -36(%rbp), %eax
  2790.     subl    $259808, %eax
  2791.     cmpl    $31, %eax
  2792.     jbe .L28
  2793.     movl    -36(%rbp), %eax
  2794.     subl    $325408, %eax
  2795.     cmpl    $31, %eax
  2796.     jbe .L28
  2797.     movl    -36(%rbp), %eax
  2798.     subl    $358176, %eax
  2799.     cmpl    $31, %eax
  2800.     jbe .L28
  2801.     movl    -36(%rbp), %eax
  2802.     subl    $554816, %eax
  2803.     cmpl    $31, %eax
  2804.     jbe .L28
  2805.     movl    -36(%rbp), %eax
  2806.     subl    $325440, %eax
  2807.     cmpl    $31, %eax
  2808.     jbe .L28
  2809.     movl    -36(%rbp), %eax
  2810.     subl    $325600, %eax
  2811.     cmpl    $31, %eax
  2812.     jbe .L28
  2813.     movl    -36(%rbp), %eax
  2814.     subl    $325664, %eax
  2815.     cmpl    $31, %eax
  2816.     jbe .L28
  2817.     movl    -36(%rbp), %eax
  2818.     subl    $587840, %eax
  2819.     cmpl    $31, %eax
  2820.     jbe .L28
  2821.     movl    -36(%rbp), %eax
  2822.     subl    $555072, %eax
  2823.     cmpl    $31, %eax
  2824.     jbe .L28
  2825.     movl    -36(%rbp), %eax
  2826.     subl    $587904, %eax
  2827.     cmpl    $31, %eax
  2828.     jbe .L28
  2829.     movl    -36(%rbp), %eax
  2830.     subl    $161984, %eax
  2831.     cmpl    $31, %eax
  2832.     jbe .L28
  2833.     movl    -36(%rbp), %eax
  2834.     subl    $129408, %eax
  2835.     cmpl    $31, %eax
  2836.     jbe .L28
  2837.     movl    -36(%rbp), %eax
  2838.     subl    $391616, %eax
  2839.     cmpl    $31, %eax
  2840.     jbe .L28
  2841.     movl    -36(%rbp), %eax
  2842.     subl    $457280, %eax
  2843.     cmpl    $31, %eax
  2844.     jbe .L28
  2845.     movl    -36(%rbp), %eax
  2846.     subl    $391744, %eax
  2847.     cmpl    $31, %eax
  2848.     jbe .L28
  2849.     movl    -36(%rbp), %eax
  2850.     subl    $293440, %eax
  2851.     cmpl    $31, %eax
  2852.     jbe .L28
  2853.     movl    -36(%rbp), %eax
  2854.     subl    $555648, %eax
  2855.     cmpl    $31, %eax
  2856.     jbe .L28
  2857.     movl    -36(%rbp), %eax
  2858.     subl    $359104, %eax
  2859.     cmpl    $31, %eax
  2860.     jbe .L28
  2861.     movl    -36(%rbp), %eax
  2862.     subl    $391872, %eax
  2863.     cmpl    $31, %eax
  2864.     jbe .L28
  2865.     movl    -36(%rbp), %eax
  2866.     subl    $260864, %eax
  2867.     cmpl    $31, %eax
  2868.     jbe .L28
  2869.     movl    -36(%rbp), %eax
  2870.     subl    $392000, %eax
  2871.     cmpl    $31, %eax
  2872.     jbe .L28
  2873.     movl    -36(%rbp), %eax
  2874.     subl    $260960, %eax
  2875.     cmpl    $31, %eax
  2876.     jbe .L28
  2877.     movl    -36(%rbp), %eax
  2878.     subl    $457664, %eax
  2879.     cmpl    $31, %eax
  2880.     jbe .L28
  2881.     movl    -36(%rbp), %eax
  2882.     subl    $228320, %eax
  2883.     cmpl    $31, %eax
  2884.     jbe .L28
  2885.     movl    -36(%rbp), %eax
  2886.     subl    $556000, %eax
  2887.     cmpl    $31, %eax
  2888.     jbe .L28
  2889.     movl    -36(%rbp), %eax
  2890.     subl    $588800, %eax
  2891.     cmpl    $31, %eax
  2892.     jbe .L28
  2893.     movl    -36(%rbp), %eax
  2894.     subl    $359712, %eax
  2895.     cmpl    $31, %eax
  2896.     jbe .L28
  2897.     movl    -36(%rbp), %eax
  2898.     subl    $261440, %eax
  2899.     cmpl    $31, %eax
  2900.     jbe .L28
  2901.     movl    -36(%rbp), %eax
  2902.     subl    $228704, %eax
  2903.     cmpl    $31, %eax
  2904.     jbe .L28
  2905.     movl    -36(%rbp), %eax
  2906.     subl    $359872, %eax
  2907.     cmpl    $31, %eax
  2908.     jbe .L28
  2909.     movl    -36(%rbp), %eax
  2910.     subl    $359936, %eax
  2911.     cmpl    $31, %eax
  2912.     jbe .L28
  2913.     movl    -36(%rbp), %eax
  2914.     subl    $261632, %eax
  2915.     cmpl    $31, %eax
  2916.     jbe .L28
  2917.     movl    -36(%rbp), %eax
  2918.     subl    $425504, %eax
  2919.     cmpl    $31, %eax
  2920.     jbe .L28
  2921.     movl    -36(%rbp), %eax
  2922.     subl    $589376, %eax
  2923.     cmpl    $31, %eax
  2924.     jbe .L28
  2925.     movl    -36(%rbp), %eax
  2926.     subl    $392800, %eax
  2927.     cmpl    $31, %eax
  2928.     jbe .L28
  2929.     movl    -36(%rbp), %eax
  2930.     subl    $589568, %eax
  2931.     cmpl    $31, %eax
  2932.     jbe .L28
  2933.     movl    -36(%rbp), %eax
  2934.     subl    $556832, %eax
  2935.     cmpl    $31, %eax
  2936.     jbe .L28
  2937.     movl    -36(%rbp), %eax
  2938.     subl    $393056, %eax
  2939.     cmpl    $31, %eax
  2940.     jbe .L28
  2941.     movl    -36(%rbp), %eax
  2942.     subl    $98176, %eax
  2943.     cmpl    $31, %eax
  2944.     jbe .L28
  2945.     movl    -36(%rbp), %eax
  2946.     subl    $196544, %eax
  2947.     cmpl    $31, %eax
  2948.     jbe .L28
  2949.     movl    -36(%rbp), %eax
  2950.     subl    $393152, %eax
  2951.     cmpl    $31, %eax
  2952.     ja  .L29
  2953. .L28:
  2954.     movl    $1, %esi
  2955.     movl    $.LC8, %edi
  2956.     movl    $0, %eax
  2957.     call    printf
  2958.     movl    $-1, -36(%rbp)
  2959.     jmp .L2
  2960. .L29:
  2961.     movl    -36(%rbp), %eax
  2962.     subl    $32800, %eax
  2963.     cmpl    $31, %eax
  2964.     jbe .L30
  2965.     movl    -36(%rbp), %eax
  2966.     subl    $131200, %eax
  2967.     cmpl    $31, %eax
  2968.     jbe .L30
  2969.     movl    -36(%rbp), %eax
  2970.     subl    $524416, %eax
  2971.     cmpl    $31, %eax
  2972.     jbe .L30
  2973.     movl    -36(%rbp), %eax
  2974.     subl    $131264, %eax
  2975.     cmpl    $31, %eax
  2976.     jbe .L30
  2977.     movl    -36(%rbp), %eax
  2978.     subl    $344320, %eax
  2979.     cmpl    $31, %eax
  2980.     jbe .L30
  2981.     movl    -36(%rbp), %eax
  2982.     subl    $262496, %eax
  2983.     cmpl    $31, %eax
  2984.     jbe .L30
  2985.     movl    -36(%rbp), %eax
  2986.     subl    $278912, %eax
  2987.     cmpl    $31, %eax
  2988.     jbe .L30
  2989.     movl    -36(%rbp), %eax
  2990.     subl    $426400, %eax
  2991.     cmpl    $31, %eax
  2992.     jbe .L30
  2993.     movl    -36(%rbp), %eax
  2994.     subl    $246208, %eax
  2995.     cmpl    $31, %eax
  2996.     jbe .L30
  2997.     movl    -36(%rbp), %eax
  2998.     subl    $410240, %eax
  2999.     cmpl    $31, %eax
  3000.     jbe .L30
  3001.     movl    -36(%rbp), %eax
  3002.     subl    $131776, %eax
  3003.     cmpl    $31, %eax
  3004.     jbe .L30
  3005.     movl    -36(%rbp), %eax
  3006.     subl    $574144, %eax
  3007.     cmpl    $31, %eax
  3008.     jbe .L30
  3009.     movl    -36(%rbp), %eax
  3010.     subl    $377536, %eax
  3011.     cmpl    $31, %eax
  3012.     jbe .L30
  3013.     movl    -36(%rbp), %eax
  3014.     subl    $459488, %eax
  3015.     cmpl    $31, %eax
  3016.     jbe .L30
  3017.     movl    -36(%rbp), %eax
  3018.     subl    $508640, %eax
  3019.     cmpl    $31, %eax
  3020.     jbe .L30
  3021.     movl    -36(%rbp), %eax
  3022.     subl    $574208, %eax
  3023.     cmpl    $31, %eax
  3024.     jbe .L30
  3025.     movl    -36(%rbp), %eax
  3026.     subl    $328480, %eax
  3027.     cmpl    $31, %eax
  3028.     jbe .L30
  3029.     movl    -36(%rbp), %eax
  3030.     subl    $132032, %eax
  3031.     cmpl    $31, %eax
  3032.     jbe .L30
  3033.     movl    -36(%rbp), %eax
  3034.     subl    $328672, %eax
  3035.     cmpl    $31, %eax
  3036.     jbe .L30
  3037.     movl    -36(%rbp), %eax
  3038.     subl    $410624, %eax
  3039.     cmpl    $31, %eax
  3040.     jbe .L30
  3041.     movl    -36(%rbp), %eax
  3042.     subl    $263264, %eax
  3043.     cmpl    $31, %eax
  3044.     jbe .L30
  3045.     movl    -36(%rbp), %eax
  3046.     subl    $115808, %eax
  3047.     cmpl    $31, %eax
  3048.     jbe .L30
  3049.     movl    -36(%rbp), %eax
  3050.     subl    $263328, %eax
  3051.     cmpl    $31, %eax
  3052.     jbe .L30
  3053.     movl    -36(%rbp), %eax
  3054.     subl    $115872, %eax
  3055.     cmpl    $31, %eax
  3056.     jbe .L30
  3057.     movl    -36(%rbp), %eax
  3058.     subl    $214240, %eax
  3059.     cmpl    $31, %eax
  3060.     jbe .L30
  3061.     movl    -36(%rbp), %eax
  3062.     subl    $394496, %eax
  3063.     cmpl    $31, %eax
  3064.     jbe .L30
  3065.     movl    -36(%rbp), %eax
  3066.     subl    $607520, %eax
  3067.     cmpl    $31, %eax
  3068.     jbe .L30
  3069.     movl    -36(%rbp), %eax
  3070.     subl    $116064, %eax
  3071.     cmpl    $31, %eax
  3072.     jbe .L30
  3073.     movl    -36(%rbp), %eax
  3074.     subl    $411008, %eax
  3075.     cmpl    $31, %eax
  3076.     jbe .L30
  3077.     movl    -36(%rbp), %eax
  3078.     subl    $411072, %eax
  3079.     cmpl    $31, %eax
  3080.     jbe .L30
  3081.     movl    -36(%rbp), %eax
  3082.     subl    $607712, %eax
  3083.     cmpl    $31, %eax
  3084.     jbe .L30
  3085.     movl    -36(%rbp), %eax
  3086.     subl    $116224, %eax
  3087.     cmpl    $31, %eax
  3088.     jbe .L30
  3089.     movl    -36(%rbp), %eax
  3090.     subl    $460320, %eax
  3091.     cmpl    $31, %eax
  3092.     jbe .L30
  3093.     movl    -36(%rbp), %eax
  3094.     subl    $607776, %eax
  3095.     cmpl    $31, %eax
  3096.     jbe .L30
  3097.     movl    -36(%rbp), %eax
  3098.     subl    $509472, %eax
  3099.     cmpl    $31, %eax
  3100.     jbe .L30
  3101.     movl    -36(%rbp), %eax
  3102.     subl    $116288, %eax
  3103.     cmpl    $31, %eax
  3104.     jbe .L30
  3105.     movl    -36(%rbp), %eax
  3106.     subl    $34528, %eax
  3107.     cmpl    $31, %eax
  3108.     jbe .L30
  3109.     movl    -36(%rbp), %eax
  3110.     subl    $509696, %eax
  3111.     cmpl    $31, %eax
  3112.     jbe .L30
  3113.     movl    -36(%rbp), %eax
  3114.     subl    $116480, %eax
  3115.     cmpl    $31, %eax
  3116.     jbe .L30
  3117.     movl    -36(%rbp), %eax
  3118.     subl    $378656, %eax
  3119.     cmpl    $31, %eax
  3120.     jbe .L30
  3121.     movl    -36(%rbp), %eax
  3122.     subl    $526240, %eax
  3123.     cmpl    $31, %eax
  3124.     jbe .L30
  3125.     movl    -36(%rbp), %eax
  3126.     subl    $378912, %eax
  3127.     cmpl    $31, %eax
  3128.     jbe .L30
  3129.     movl    -36(%rbp), %eax
  3130.     subl    $395328, %eax
  3131.     cmpl    $31, %eax
  3132.     jbe .L30
  3133.     movl    -36(%rbp), %eax
  3134.     subl    $247936, %eax
  3135.     cmpl    $31, %eax
  3136.     jbe .L30
  3137.     movl    -36(%rbp), %eax
  3138.     subl    $51424, %eax
  3139.     cmpl    $31, %eax
  3140.     jbe .L30
  3141.     movl    -36(%rbp), %eax
  3142.     subl    $543040, %eax
  3143.     cmpl    $31, %eax
  3144.     jbe .L30
  3145.     movl    -36(%rbp), %eax
  3146.     subl    $526720, %eax
  3147.     cmpl    $31, %eax
  3148.     jbe .L30
  3149.     movl    -36(%rbp), %eax
  3150.     subl    $199168, %eax
  3151.     cmpl    $31, %eax
  3152.     jbe .L30
  3153.     movl    -36(%rbp), %eax
  3154.     subl    $543296, %eax
  3155.     cmpl    $31, %eax
  3156.     jbe .L30
  3157.     movl    -36(%rbp), %eax
  3158.     subl    $395840, %eax
  3159.     cmpl    $31, %eax
  3160.     jbe .L30
  3161.     movl    -36(%rbp), %eax
  3162.     subl    $526912, %eax
  3163.     cmpl    $31, %eax
  3164.     jbe .L30
  3165.     movl    -36(%rbp), %eax
  3166.     subl    $363104, %eax
  3167.     cmpl    $31, %eax
  3168.     jbe .L30
  3169.     movl    -36(%rbp), %eax
  3170.     subl    $379488, %eax
  3171.     cmpl    $31, %eax
  3172.     jbe .L30
  3173.     movl    -36(%rbp), %eax
  3174.     subl    $346816, %eax
  3175.     cmpl    $31, %eax
  3176.     jbe .L30
  3177.     movl    -36(%rbp), %eax
  3178.     subl    $396032, %eax
  3179.     cmpl    $31, %eax
  3180.     jbe .L30
  3181.     movl    -36(%rbp), %eax
  3182.     subl    $396096, %eax
  3183.     cmpl    $31, %eax
  3184.     jbe .L30
  3185.     movl    -36(%rbp), %eax
  3186.     subl    $379840, %eax
  3187.     cmpl    $31, %eax
  3188.     jbe .L30
  3189.     movl    -36(%rbp), %eax
  3190.     subl    $527296, %eax
  3191.     cmpl    $31, %eax
  3192.     jbe .L30
  3193.     movl    -36(%rbp), %eax
  3194.     subl    $609248, %eax
  3195.     cmpl    $31, %eax
  3196.     jbe .L30
  3197.     movl    -36(%rbp), %eax
  3198.     subl    $625664, %eax
  3199.     cmpl    $31, %eax
  3200.     jbe .L30
  3201.     movl    -36(%rbp), %eax
  3202.     subl    $281632, %eax
  3203.     cmpl    $31, %eax
  3204.     jbe .L30
  3205.     movl    -36(%rbp), %eax
  3206.     subl    $232544, %eax
  3207.     cmpl    $31, %eax
  3208.     jbe .L30
  3209.     movl    -36(%rbp), %eax
  3210.     subl    $330880, %eax
  3211.     cmpl    $31, %eax
  3212.     jbe .L30
  3213.     movl    -36(%rbp), %eax
  3214.     subl    $461984, %eax
  3215.     cmpl    $31, %eax
  3216.     jbe .L30
  3217.     movl    -36(%rbp), %eax
  3218.     subl    $609440, %eax
  3219.     cmpl    $31, %eax
  3220.     jbe .L30
  3221.     movl    -36(%rbp), %eax
  3222.     subl    $625856, %eax
  3223.     cmpl    $31, %eax
  3224.     jbe .L30
  3225.     movl    -36(%rbp), %eax
  3226.     subl    $462048, %eax
  3227.     cmpl    $31, %eax
  3228.     jbe .L30
  3229.     movl    -36(%rbp), %eax
  3230.     subl    $609504, %eax
  3231.     cmpl    $31, %eax
  3232.     jbe .L30
  3233.     movl    -36(%rbp), %eax
  3234.     subl    $330976, %eax
  3235.     cmpl    $31, %eax
  3236.     jbe .L30
  3237.     movl    -36(%rbp), %eax
  3238.     subl    $625920, %eax
  3239.     cmpl    $31, %eax
  3240.     jbe .L30
  3241.     movl    -36(%rbp), %eax
  3242.     subl    $232736, %eax
  3243.     cmpl    $31, %eax
  3244.     jbe .L30
  3245.     movl    -36(%rbp), %eax
  3246.     subl    $527680, %eax
  3247.     cmpl    $31, %eax
  3248.     jbe .L30
  3249.     movl    -36(%rbp), %eax
  3250.     subl    $232800, %eax
  3251.     cmpl    $31, %eax
  3252.     jbe .L30
  3253.     movl    -36(%rbp), %eax
  3254.     subl    $363936, %eax
  3255.     cmpl    $31, %eax
  3256.     jbe .L30
  3257.     movl    -36(%rbp), %eax
  3258.     subl    $101920, %eax
  3259.     cmpl    $31, %eax
  3260.     jbe .L30
  3261.     movl    -36(%rbp), %eax
  3262.     subl    $528064, %eax
  3263.     cmpl    $31, %eax
  3264.     jbe .L30
  3265.     movl    -36(%rbp), %eax
  3266.     subl    $331456, %eax
  3267.     cmpl    $31, %eax
  3268.     jbe .L30
  3269.     movl    -36(%rbp), %eax
  3270.     subl    $610016, %eax
  3271.     cmpl    $31, %eax
  3272.     jbe .L30
  3273.     movl    -36(%rbp), %eax
  3274.     subl    $380672, %eax
  3275.     cmpl    $31, %eax
  3276.     jbe .L30
  3277.     movl    -36(%rbp), %eax
  3278.     subl    $610080, %eax
  3279.     cmpl    $31, %eax
  3280.     jbe .L30
  3281.     movl    -36(%rbp), %eax
  3282.     subl    $348032, %eax
  3283.     cmpl    $31, %eax
  3284.     jbe .L30
  3285.     movl    -36(%rbp), %eax
  3286.     subl    $479104, %eax
  3287.     cmpl    $31, %eax
  3288.     jbe .L30
  3289.     movl    -36(%rbp), %eax
  3290.     subl    $528256, %eax
  3291.     cmpl    $31, %eax
  3292.     jbe .L30
  3293.     movl    -36(%rbp), %eax
  3294.     subl    $495520, %eax
  3295.     cmpl    $31, %eax
  3296.     jbe .L30
  3297.     movl    -36(%rbp), %eax
  3298.     subl    $511936, %eax
  3299.     cmpl    $31, %eax
  3300.     jbe .L30
  3301.     movl    -36(%rbp), %eax
  3302.     subl    $610272, %eax
  3303.     cmpl    $31, %eax
  3304.     jbe .L30
  3305.     movl    -36(%rbp), %eax
  3306.     subl    $462816, %eax
  3307.     cmpl    $31, %eax
  3308.     jbe .L30
  3309.     movl    -36(%rbp), %eax
  3310.     subl    $364544, %eax
  3311.     cmpl    $31, %eax
  3312.     jbe .L30
  3313.     movl    -36(%rbp), %eax
  3314.     subl    $118816, %eax
  3315.     cmpl    $31, %eax
  3316.     jbe .L30
  3317.     movl    -36(%rbp), %eax
  3318.     subl    $266272, %eax
  3319.     cmpl    $31, %eax
  3320.     jbe .L30
  3321.     movl    -36(%rbp), %eax
  3322.     subl    $610432, %eax
  3323.     cmpl    $31, %eax
  3324.     jbe .L30
  3325.     movl    -36(%rbp), %eax
  3326.     subl    $462976, %eax
  3327.     cmpl    $31, %eax
  3328.     jbe .L30
  3329.     movl    -36(%rbp), %eax
  3330.     subl    $53408, %eax
  3331.     cmpl    $31, %eax
  3332.     jbe .L30
  3333.     movl    -36(%rbp), %eax
  3334.     subl    $610496, %eax
  3335.     cmpl    $31, %eax
  3336.     jbe .L30
  3337.     movl    -36(%rbp), %eax
  3338.     subl    $512192, %eax
  3339.     cmpl    $31, %eax
  3340.     jbe .L30
  3341.     movl    -36(%rbp), %eax
  3342.     subl    $200960, %eax
  3343.     cmpl    $31, %eax
  3344.     jbe .L30
  3345.     movl    -36(%rbp), %eax
  3346.     subl    $610688, %eax
  3347.     cmpl    $31, %eax
  3348.     jbe .L30
  3349.     movl    -36(%rbp), %eax
  3350.     subl    $201152, %eax
  3351.     cmpl    $31, %eax
  3352.     jbe .L30
  3353.     movl    -36(%rbp), %eax
  3354.     subl    $496096, %eax
  3355.     cmpl    $31, %eax
  3356.     jbe .L30
  3357.     movl    -36(%rbp), %eax
  3358.     subl    $332384, %eax
  3359.     cmpl    $31, %eax
  3360.     jbe .L30
  3361.     movl    -36(%rbp), %eax
  3362.     subl    $348800, %eax
  3363.     cmpl    $31, %eax
  3364.     jbe .L30
  3365.     movl    -36(%rbp), %eax
  3366.     subl    $332448, %eax
  3367.     cmpl    $31, %eax
  3368.     jbe .L30
  3369.     movl    -36(%rbp), %eax
  3370.     subl    $496288, %eax
  3371.     cmpl    $31, %eax
  3372.     jbe .L30
  3373.     movl    -36(%rbp), %eax
  3374.     subl    $348864, %eax
  3375.     cmpl    $31, %eax
  3376.     jbe .L30
  3377.     movl    -36(%rbp), %eax
  3378.     subl    $283360, %eax
  3379.     cmpl    $31, %eax
  3380.     jbe .L30
  3381.     movl    -36(%rbp), %eax
  3382.     subl    $299776, %eax
  3383.     cmpl    $31, %eax
  3384.     jbe .L30
  3385.     movl    -36(%rbp), %eax
  3386.     subl    $463808, %eax
  3387.     cmpl    $31, %eax
  3388.     jbe .L30
  3389.     movl    -36(%rbp), %eax
  3390.     subl    $529376, %eax
  3391.     cmpl    $31, %eax
  3392.     jbe .L30
  3393.     movl    -36(%rbp), %eax
  3394.     subl    $349184, %eax
  3395.     cmpl    $31, %eax
  3396.     jbe .L30
  3397.     movl    -36(%rbp), %eax
  3398.     subl    $168992, %eax
  3399.     cmpl    $31, %eax
  3400.     jbe .L30
  3401.     movl    -36(%rbp), %eax
  3402.     subl    $529440, %eax
  3403.     cmpl    $31, %eax
  3404.     jbe .L30
  3405.     movl    -36(%rbp), %eax
  3406.     subl    $349376, %eax
  3407.     cmpl    $31, %eax
  3408.     jbe .L30
  3409.     movl    -36(%rbp), %eax
  3410.     subl    $349440, %eax
  3411.     cmpl    $31, %eax
  3412.     jbe .L30
  3413.     movl    -36(%rbp), %eax
  3414.     subl    $333216, %eax
  3415.     cmpl    $31, %eax
  3416.     jbe .L30
  3417.     movl    -36(%rbp), %eax
  3418.     subl    $234976, %eax
  3419.     cmpl    $31, %eax
  3420.     jbe .L30
  3421.     movl    -36(%rbp), %eax
  3422.     subl    $480832, %eax
  3423.     cmpl    $31, %eax
  3424.     jbe .L30
  3425.     movl    -36(%rbp), %eax
  3426.     subl    $333376, %eax
  3427.     cmpl    $31, %eax
  3428.     jbe .L30
  3429.     movl    -36(%rbp), %eax
  3430.     subl    $333440, %eax
  3431.     cmpl    $31, %eax
  3432.     jbe .L30
  3433.     movl    -36(%rbp), %eax
  3434.     subl    $546496, %eax
  3435.     cmpl    $31, %eax
  3436.     jbe .L30
  3437.     movl    -36(%rbp), %eax
  3438.     subl    $382720, %eax
  3439.     cmpl    $31, %eax
  3440.     jbe .L30
  3441.     movl    -36(%rbp), %eax
  3442.     subl    $530208, %eax
  3443.     cmpl    $31, %eax
  3444.     jbe .L30
  3445.     movl    -36(%rbp), %eax
  3446.     subl    $481088, %eax
  3447.     cmpl    $31, %eax
  3448.     jbe .L30
  3449.     movl    -36(%rbp), %eax
  3450.     subl    $153440, %eax
  3451.     cmpl    $31, %eax
  3452.     jbe .L30
  3453.     movl    -36(%rbp), %eax
  3454.     subl    $169824, %eax
  3455.     cmpl    $31, %eax
  3456.     jbe .L30
  3457.     movl    -36(%rbp), %eax
  3458.     subl    $530368, %eax
  3459.     cmpl    $31, %eax
  3460.     jbe .L30
  3461.     movl    -36(%rbp), %eax
  3462.     subl    $579584, %eax
  3463.     cmpl    $31, %eax
  3464.     jbe .L30
  3465.     movl    -36(%rbp), %eax
  3466.     subl    $333952, %eax
  3467.     cmpl    $31, %eax
  3468.     jbe .L30
  3469.     movl    -36(%rbp), %eax
  3470.     subl    $219424, %eax
  3471.     cmpl    $31, %eax
  3472.     jbe .L30
  3473.     movl    -36(%rbp), %eax
  3474.     subl    $448864, %eax
  3475.     cmpl    $31, %eax
  3476.     jbe .L30
  3477.     movl    -36(%rbp), %eax
  3478.     subl    $334208, %eax
  3479.     cmpl    $31, %eax
  3480.     jbe .L30
  3481.     movl    -36(%rbp), %eax
  3482.     subl    $465280, %eax
  3483.     cmpl    $31, %eax
  3484.     jbe .L30
  3485.     movl    -36(%rbp), %eax
  3486.     subl    $154016, %eax
  3487.     cmpl    $31, %eax
  3488.     jbe .L30
  3489.     movl    -36(%rbp), %eax
  3490.     subl    $121312, %eax
  3491.     cmpl    $31, %eax
  3492.     jbe .L30
  3493.     movl    -36(%rbp), %eax
  3494.     subl    $268768, %eax
  3495.     cmpl    $31, %eax
  3496.     jbe .L30
  3497.     movl    -36(%rbp), %eax
  3498.     subl    $596608, %eax
  3499.     cmpl    $31, %eax
  3500.     jbe .L30
  3501.     movl    -36(%rbp), %eax
  3502.     subl    $154272, %eax
  3503.     cmpl    $31, %eax
  3504.     jbe .L30
  3505.     movl    -36(%rbp), %eax
  3506.     subl    $596672, %eax
  3507.     cmpl    $31, %eax
  3508.     jbe .L30
  3509.     movl    -36(%rbp), %eax
  3510.     subl    $531200, %eax
  3511.     cmpl    $31, %eax
  3512.     jbe .L30
  3513.     movl    -36(%rbp), %eax
  3514.     subl    $449440, %eax
  3515.     cmpl    $31, %eax
  3516.     jbe .L30
  3517.     movl    -36(%rbp), %eax
  3518.     subl    $449632, %eax
  3519.     cmpl    $31, %eax
  3520.     jbe .L30
  3521.     movl    -36(%rbp), %eax
  3522.     subl    $269440, %eax
  3523.     cmpl    $31, %eax
  3524.     jbe .L30
  3525.     movl    -36(%rbp), %eax
  3526.     subl    $433312, %eax
  3527.     cmpl    $31, %eax
  3528.     jbe .L30
  3529.     movl    -36(%rbp), %eax
  3530.     subl    $236704, %eax
  3531.     cmpl    $31, %eax
  3532.     jbe .L30
  3533.     movl    -36(%rbp), %eax
  3534.     subl    $597184, %eax
  3535.     cmpl    $31, %eax
  3536.     jbe .L30
  3537.     movl    -36(%rbp), %eax
  3538.     subl    $253120, %eax
  3539.     cmpl    $31, %eax
  3540.     jbe .L30
  3541.     movl    -36(%rbp), %eax
  3542.     subl    $56608, %eax
  3543.     cmpl    $31, %eax
  3544.     jbe .L30
  3545.     movl    -36(%rbp), %eax
  3546.     subl    $302432, %eax
  3547.     cmpl    $31, %eax
  3548.     jbe .L30
  3549.     movl    -36(%rbp), %eax
  3550.     subl    $597376, %eax
  3551.     cmpl    $31, %eax
  3552.     jbe .L30
  3553.     movl    -36(%rbp), %eax
  3554.     subl    $302496, %eax
  3555.     cmpl    $31, %eax
  3556.     jbe .L30
  3557.     movl    -36(%rbp), %eax
  3558.     subl    $384448, %eax
  3559.     cmpl    $31, %eax
  3560.     jbe .L30
  3561.     movl    -36(%rbp), %eax
  3562.     subl    $531936, %eax
  3563.     cmpl    $31, %eax
  3564.     jbe .L30
  3565.     movl    -36(%rbp), %eax
  3566.     subl    $597504, %eax
  3567.     cmpl    $31, %eax
  3568.     jbe .L30
  3569.     movl    -36(%rbp), %eax
  3570.     subl    $302688, %eax
  3571.     cmpl    $31, %eax
  3572.     jbe .L30
  3573.     movl    -36(%rbp), %eax
  3574.     subl    $122528, %eax
  3575.     cmpl    $31, %eax
  3576.     jbe .L30
  3577.     movl    -36(%rbp), %eax
  3578.     subl    $532160, %eax
  3579.     cmpl    $31, %eax
  3580.     jbe .L30
  3581.     movl    -36(%rbp), %eax
  3582.     subl    $138944, %eax
  3583.     cmpl    $31, %eax
  3584.     jbe .L30
  3585.     movl    -36(%rbp), %eax
  3586.     subl    $433888, %eax
  3587.     cmpl    $31, %eax
  3588.     jbe .L30
  3589.     movl    -36(%rbp), %eax
  3590.     subl    $302848, %eax
  3591.     cmpl    $31, %eax
  3592.     jbe .L30
  3593.     movl    -36(%rbp), %eax
  3594.     subl    $106240, %eax
  3595.     cmpl    $31, %eax
  3596.     jbe .L30
  3597.     movl    -36(%rbp), %eax
  3598.     subl    $302912, %eax
  3599.     cmpl    $31, %eax
  3600.     jbe .L30
  3601.     movl    -36(%rbp), %eax
  3602.     subl    $270176, %eax
  3603.     cmpl    $31, %eax
  3604.     jbe .L30
  3605.     movl    -36(%rbp), %eax
  3606.     subl    $270240, %eax
  3607.     cmpl    $31, %eax
  3608.     jbe .L30
  3609.     movl    -36(%rbp), %eax
  3610.     subl    $434080, %eax
  3611.     cmpl    $31, %eax
  3612.     jbe .L30
  3613.     movl    -36(%rbp), %eax
  3614.     subl    $401344, %eax
  3615.     cmpl    $31, %eax
  3616.     jbe .L30
  3617.     movl    -36(%rbp), %eax
  3618.     subl    $221152, %eax
  3619.     cmpl    $31, %eax
  3620.     jbe .L30
  3621.     movl    -36(%rbp), %eax
  3622.     subl    $303104, %eax
  3623.     cmpl    $31, %eax
  3624.     jbe .L30
  3625.     movl    -36(%rbp), %eax
  3626.     subl    $614432, %eax
  3627.     cmpl    $31, %eax
  3628.     jbe .L30
  3629.     movl    -36(%rbp), %eax
  3630.     subl    $548992, %eax
  3631.     cmpl    $31, %eax
  3632.     jbe .L30
  3633.     movl    -36(%rbp), %eax
  3634.     subl    $336064, %eax
  3635.     cmpl    $31, %eax
  3636.     jbe .L30
  3637.     movl    -36(%rbp), %eax
  3638.     subl    $614624, %eax
  3639.     cmpl    $31, %eax
  3640.     jbe .L30
  3641.     movl    -36(%rbp), %eax
  3642.     subl    $614688, %eax
  3643.     cmpl    $31, %eax
  3644.     jbe .L30
  3645.     movl    -36(%rbp), %eax
  3646.     subl    $336160, %eax
  3647.     cmpl    $31, %eax
  3648.     jbe .L30
  3649.     movl    -36(%rbp), %eax
  3650.     subl    $532864, %eax
  3651.     cmpl    $31, %eax
  3652.     jbe .L30
  3653.     movl    -36(%rbp), %eax
  3654.     subl    $123296, %eax
  3655.     cmpl    $31, %eax
  3656.     jbe .L30
  3657.     movl    -36(%rbp), %eax
  3658.     subl    $123360, %eax
  3659.     cmpl    $31, %eax
  3660.     jbe .L30
  3661.     movl    -36(%rbp), %eax
  3662.     subl    $532992, %eax
  3663.     cmpl    $31, %eax
  3664.     jbe .L30
  3665.     movl    -36(%rbp), %eax
  3666.     subl    $74272, %eax
  3667.     cmpl    $31, %eax
  3668.     jbe .L30
  3669.     movl    -36(%rbp), %eax
  3670.     subl    $271008, %eax
  3671.     cmpl    $31, %eax
  3672.     jbe .L30
  3673.     movl    -36(%rbp), %eax
  3674.     subl    $615200, %eax
  3675.     cmpl    $31, %eax
  3676.     jbe .L30
  3677.     movl    -36(%rbp), %eax
  3678.     subl    $271168, %eax
  3679.     cmpl    $31, %eax
  3680.     jbe .L30
  3681.     movl    -36(%rbp), %eax
  3682.     subl    $615264, %eax
  3683.     cmpl    $31, %eax
  3684.     jbe .L30
  3685.     movl    -36(%rbp), %eax
  3686.     subl    $271232, %eax
  3687.     cmpl    $31, %eax
  3688.     jbe .L30
  3689.     movl    -36(%rbp), %eax
  3690.     subl    $336832, %eax
  3691.     cmpl    $31, %eax
  3692.     jbe .L30
  3693.     movl    -36(%rbp), %eax
  3694.     subl    $615456, %eax
  3695.     cmpl    $31, %eax
  3696.     jbe .L30
  3697.     movl    -36(%rbp), %eax
  3698.     subl    $549952, %eax
  3699.     cmpl    $31, %eax
  3700.     jbe .L30
  3701.     movl    -36(%rbp), %eax
  3702.     subl    $533696, %eax
  3703.     cmpl    $31, %eax
  3704.     jbe .L30
  3705.     movl    -36(%rbp), %eax
  3706.     subl    $615616, %eax
  3707.     cmpl    $31, %eax
  3708.     jbe .L30
  3709.     movl    -36(%rbp), %eax
  3710.     subl    $615680, %eax
  3711.     cmpl    $31, %eax
  3712.     jbe .L30
  3713.     movl    -36(%rbp), %eax
  3714.     subl    $550208, %eax
  3715.     cmpl    $31, %eax
  3716.     jbe .L30
  3717.     movl    -36(%rbp), %eax
  3718.     subl    $386400, %eax
  3719.     cmpl    $31, %eax
  3720.     jbe .L30
  3721.     movl    -36(%rbp), %eax
  3722.     subl    $517504, %eax
  3723.     cmpl    $31, %eax
  3724.     jbe .L30
  3725.     movl    -36(%rbp), %eax
  3726.     subl    $615872, %eax
  3727.     cmpl    $31, %eax
  3728.     jbe .L30
  3729.     movl    -36(%rbp), %eax
  3730.     subl    $107968, %eax
  3731.     cmpl    $31, %eax
  3732.     jbe .L30
  3733.     movl    -36(%rbp), %eax
  3734.     subl    $58912, %eax
  3735.     cmpl    $31, %eax
  3736.     jbe .L30
  3737.     movl    -36(%rbp), %eax
  3738.     subl    $272000, %eax
  3739.     cmpl    $31, %eax
  3740.     jbe .L30
  3741.     movl    -36(%rbp), %eax
  3742.     subl    $550528, %eax
  3743.     cmpl    $31, %eax
  3744.     jbe .L30
  3745.     movl    -36(%rbp), %eax
  3746.     subl    $403136, %eax
  3747.     cmpl    $31, %eax
  3748.     jbe .L30
  3749.     movl    -36(%rbp), %eax
  3750.     subl    $59104, %eax
  3751.     cmpl    $31, %eax
  3752.     jbe .L30
  3753.     movl    -36(%rbp), %eax
  3754.     subl    $255776, %eax
  3755.     cmpl    $31, %eax
  3756.     jbe .L30
  3757.     movl    -36(%rbp), %eax
  3758.     subl    $288544, %eax
  3759.     cmpl    $31, %eax
  3760.     jbe .L30
  3761.     movl    -36(%rbp), %eax
  3762.     subl    $550720, %eax
  3763.     cmpl    $31, %eax
  3764.     jbe .L30
  3765.     movl    -36(%rbp), %eax
  3766.     subl    $255840, %eax
  3767.     cmpl    $31, %eax
  3768.     jbe .L30
  3769.     movl    -36(%rbp), %eax
  3770.     subl    $403328, %eax
  3771.     cmpl    $31, %eax
  3772.     jbe .L30
  3773.     movl    -36(%rbp), %eax
  3774.     subl    $534400, %eax
  3775.     cmpl    $31, %eax
  3776.     jbe .L30
  3777.     movl    -36(%rbp), %eax
  3778.     subl    $337792, %eax
  3779.     cmpl    $31, %eax
  3780.     jbe .L30
  3781.     movl    -36(%rbp), %eax
  3782.     subl    $387008, %eax
  3783.     cmpl    $31, %eax
  3784.     jbe .L30
  3785.     movl    -36(%rbp), %eax
  3786.     subl    $256032, %eax
  3787.     cmpl    $31, %eax
  3788.     jbe .L30
  3789.     movl    -36(%rbp), %eax
  3790.     subl    $550976, %eax
  3791.     cmpl    $31, %eax
  3792.     jbe .L30
  3793.     movl    -36(%rbp), %eax
  3794.     subl    $534656, %eax
  3795.     cmpl    $31, %eax
  3796.     jbe .L30
  3797.     movl    -36(%rbp), %eax
  3798.     subl    $551040, %eax
  3799.     cmpl    $31, %eax
  3800.     jbe .L30
  3801.     movl    -36(%rbp), %eax
  3802.     subl    $256192, %eax
  3803.     cmpl    $31, %eax
  3804.     jbe .L30
  3805.     movl    -36(%rbp), %eax
  3806.     subl    $256256, %eax
  3807.     cmpl    $31, %eax
  3808.     jbe .L30
  3809.     movl    -36(%rbp), %eax
  3810.     subl    $387328, %eax
  3811.     cmpl    $31, %eax
  3812.     jbe .L30
  3813.     movl    -36(%rbp), %eax
  3814.     subl    $92576, %eax
  3815.     cmpl    $31, %eax
  3816.     jbe .L30
  3817.     movl    -36(%rbp), %eax
  3818.     subl    $518560, %eax
  3819.     cmpl    $31, %eax
  3820.     jbe .L30
  3821.     movl    -36(%rbp), %eax
  3822.     subl    $256448, %eax
  3823.     cmpl    $31, %eax
  3824.     jbe .L30
  3825.     movl    -36(%rbp), %eax
  3826.     subl    $534976, %eax
  3827.     cmpl    $31, %eax
  3828.     jbe .L30
  3829.     movl    -36(%rbp), %eax
  3830.     subl    $616928, %eax
  3831.     cmpl    $31, %eax
  3832.     jbe .L30
  3833.     movl    -36(%rbp), %eax
  3834.     subl    $616992, %eax
  3835.     cmpl    $31, %eax
  3836.     jbe .L30
  3837.     movl    -36(%rbp), %eax
  3838.     subl    $92768, %eax
  3839.     cmpl    $31, %eax
  3840.     jbe .L30
  3841.     movl    -36(%rbp), %eax
  3842.     subl    $518752, %eax
  3843.     cmpl    $31, %eax
  3844.     jbe .L30
  3845.     movl    -36(%rbp), %eax
  3846.     subl    $535168, %eax
  3847.     cmpl    $31, %eax
  3848.     jbe .L30
  3849.     movl    -36(%rbp), %eax
  3850.     subl    $92832, %eax
  3851.     cmpl    $31, %eax
  3852.     jbe .L30
  3853.     movl    -36(%rbp), %eax
  3854.     subl    $617184, %eax
  3855.     cmpl    $31, %eax
  3856.     jbe .L30
  3857.     movl    -36(%rbp), %eax
  3858.     subl    $387840, %eax
  3859.     cmpl    $31, %eax
  3860.     jbe .L30
  3861.     movl    -36(%rbp), %eax
  3862.     subl    $437024, %eax
  3863.     cmpl    $31, %eax
  3864.     jbe .L30
  3865.     movl    -36(%rbp), %eax
  3866.     subl    $486272, %eax
  3867.     cmpl    $31, %eax
  3868.     jbe .L30
  3869.     movl    -36(%rbp), %eax
  3870.     subl    $617344, %eax
  3871.     cmpl    $31, %eax
  3872.     jbe .L30
  3873.     movl    -36(%rbp), %eax
  3874.     subl    $60320, %eax
  3875.     cmpl    $31, %eax
  3876.     jbe .L30
  3877.     movl    -36(%rbp), %eax
  3878.     subl    $617408, %eax
  3879.     cmpl    $31, %eax
  3880.     jbe .L30
  3881.     movl    -36(%rbp), %eax
  3882.     subl    $535488, %eax
  3883.     cmpl    $31, %eax
  3884.     jbe .L30
  3885.     movl    -36(%rbp), %eax
  3886.     subl    $27616, %eax
  3887.     cmpl    $31, %eax
  3888.     jbe .L30
  3889.     movl    -36(%rbp), %eax
  3890.     subl    $338944, %eax
  3891.     cmpl    $31, %eax
  3892.     jbe .L30
  3893.     movl    -36(%rbp), %eax
  3894.     subl    $388160, %eax
  3895.     cmpl    $31, %eax
  3896.     jbe .L30
  3897.     movl    -36(%rbp), %eax
  3898.     subl    $617600, %eax
  3899.     cmpl    $31, %eax
  3900.     jbe .L30
  3901.     movl    -36(%rbp), %eax
  3902.     subl    $519328, %eax
  3903.     cmpl    $31, %eax
  3904.     jbe .L30
  3905.     movl    -36(%rbp), %eax
  3906.     subl    $503008, %eax
  3907.     cmpl    $31, %eax
  3908.     jbe .L30
  3909.     movl    -36(%rbp), %eax
  3910.     subl    $535808, %eax
  3911.     cmpl    $31, %eax
  3912.     jbe .L30
  3913.     movl    -36(%rbp), %eax
  3914.     subl    $355616, %eax
  3915.     cmpl    $31, %eax
  3916.     jbe .L30
  3917.     movl    -36(%rbp), %eax
  3918.     subl    $372032, %eax
  3919.     cmpl    $31, %eax
  3920.     jbe .L30
  3921.     movl    -36(%rbp), %eax
  3922.     subl    $126304, %eax
  3923.     cmpl    $31, %eax
  3924.     jbe .L30
  3925.     movl    -36(%rbp), %eax
  3926.     subl    $339328, %eax
  3927.     cmpl    $31, %eax
  3928.     jbe .L30
  3929.     movl    -36(%rbp), %eax
  3930.     subl    $503200, %eax
  3931.     cmpl    $31, %eax
  3932.     jbe .L30
  3933.     movl    -36(%rbp), %eax
  3934.     subl    $536000, %eax
  3935.     cmpl    $31, %eax
  3936.     jbe .L30
  3937.     movl    -36(%rbp), %eax
  3938.     subl    $536064, %eax
  3939.     cmpl    $31, %eax
  3940.     jbe .L30
  3941.     movl    -36(%rbp), %eax
  3942.     subl    $126496, %eax
  3943.     cmpl    $31, %eax
  3944.     jbe .L30
  3945.     movl    -36(%rbp), %eax
  3946.     subl    $519808, %eax
  3947.     cmpl    $31, %eax
  3948.     jbe .L30
  3949.     movl    -36(%rbp), %eax
  3950.     subl    $61088, %eax
  3951.     cmpl    $31, %eax
  3952.     jbe .L30
  3953.     movl    -36(%rbp), %eax
  3954.     subl    $61152, %eax
  3955.     cmpl    $31, %eax
  3956.     jbe .L30
  3957.     movl    -36(%rbp), %eax
  3958.     subl    $520000, %eax
  3959.     cmpl    $31, %eax
  3960.     jbe .L30
  3961.     movl    -36(%rbp), %eax
  3962.     subl    $356192, %eax
  3963.     cmpl    $31, %eax
  3964.     jbe .L30
  3965.     movl    -36(%rbp), %eax
  3966.     subl    $602048, %eax
  3967.     cmpl    $31, %eax
  3968.     jbe .L30
  3969.     movl    -36(%rbp), %eax
  3970.     subl    $503776, %eax
  3971.     cmpl    $31, %eax
  3972.     jbe .L30
  3973.     movl    -36(%rbp), %eax
  3974.     subl    $356448, %eax
  3975.     cmpl    $31, %eax
  3976.     jbe .L30
  3977.     movl    -36(%rbp), %eax
  3978.     subl    $340128, %eax
  3979.     cmpl    $31, %eax
  3980.     jbe .L30
  3981.     movl    -36(%rbp), %eax
  3982.     subl    $241888, %eax
  3983.     cmpl    $31, %eax
  3984.     jbe .L30
  3985.     movl    -36(%rbp), %eax
  3986.     subl    $618752, %eax
  3987.     cmpl    $31, %eax
  3988.     jbe .L30
  3989.     movl    -36(%rbp), %eax
  3990.     subl    $340288, %eax
  3991.     cmpl    $31, %eax
  3992.     jbe .L30
  3993.     movl    -36(%rbp), %eax
  3994.     subl    $176480, %eax
  3995.     cmpl    $31, %eax
  3996.     jbe .L30
  3997.     movl    -36(%rbp), %eax
  3998.     subl    $340352, %eax
  3999.     cmpl    $31, %eax
  4000.     jbe .L30
  4001.     movl    -36(%rbp), %eax
  4002.     subl    $520576, %eax
  4003.     cmpl    $31, %eax
  4004.     jbe .L30
  4005.     movl    -36(%rbp), %eax
  4006.     subl    $618944, %eax
  4007.     cmpl    $31, %eax
  4008.     jbe .L30
  4009.     movl    -36(%rbp), %eax
  4010.     subl    $504256, %eax
  4011.     cmpl    $31, %eax
  4012.     jbe .L30
  4013.     movl    -36(%rbp), %eax
  4014.     subl    $438752, %eax
  4015.     cmpl    $31, %eax
  4016.     jbe .L30
  4017.     movl    -36(%rbp), %eax
  4018.     subl    $619008, %eax
  4019.     cmpl    $31, %eax
  4020.     jbe .L30
  4021.     movl    -36(%rbp), %eax
  4022.     subl    $176736, %eax
  4023.     cmpl    $31, %eax
  4024.     jbe .L30
  4025.     movl    -36(%rbp), %eax
  4026.     subl    $504448, %eax
  4027.     cmpl    $31, %eax
  4028.     jbe .L30
  4029.     movl    -36(%rbp), %eax
  4030.     subl    $553664, %eax
  4031.     cmpl    $31, %eax
  4032.     jbe .L30
  4033.     movl    -36(%rbp), %eax
  4034.     subl    $258784, %eax
  4035.     cmpl    $31, %eax
  4036.     jbe .L30
  4037.     movl    -36(%rbp), %eax
  4038.     subl    $602880, %eax
  4039.     cmpl    $31, %eax
  4040.     jbe .L30
  4041.     movl    -36(%rbp), %eax
  4042.     subl    $95008, %eax
  4043.     cmpl    $31, %eax
  4044.     jbe .L30
  4045.     movl    -36(%rbp), %eax
  4046.     subl    $45920, %eax
  4047.     cmpl    $31, %eax
  4048.     jbe .L30
  4049.     movl    -36(%rbp), %eax
  4050.     subl    $46112, %eax
  4051.     cmpl    $31, %eax
  4052.     jbe .L30
  4053.     movl    -36(%rbp), %eax
  4054.     subl    $341056, %eax
  4055.     cmpl    $31, %eax
  4056.     jbe .L30
  4057.     movl    -36(%rbp), %eax
  4058.     subl    $46176, %eax
  4059.     cmpl    $31, %eax
  4060.     jbe .L30
  4061.     movl    -36(%rbp), %eax
  4062.     subl    $177312, %eax
  4063.     cmpl    $31, %eax
  4064.     jbe .L30
  4065.     movl    -36(%rbp), %eax
  4066.     subl    $505024, %eax
  4067.     cmpl    $31, %eax
  4068.     jbe .L30
  4069.     movl    -36(%rbp), %eax
  4070.     subl    $341184, %eax
  4071.     cmpl    $31, %eax
  4072.     jbe .L30
  4073.     movl    -36(%rbp), %eax
  4074.     subl    $439520, %eax
  4075.     cmpl    $31, %eax
  4076.     jbe .L30
  4077.     movl    -36(%rbp), %eax
  4078.     subl    $439584, %eax
  4079.     cmpl    $31, %eax
  4080.     jbe .L30
  4081.     movl    -36(%rbp), %eax
  4082.     subl    $341440, %eax
  4083.     cmpl    $31, %eax
  4084.     jbe .L30
  4085.     movl    -36(%rbp), %eax
  4086.     subl    $177664, %eax
  4087.     cmpl    $31, %eax
  4088.     jbe .L30
  4089.     movl    -36(%rbp), %eax
  4090.     subl    $79456, %eax
  4091.     cmpl    $31, %eax
  4092.     jbe .L30
  4093.     movl    -36(%rbp), %eax
  4094.     subl    $456352, %eax
  4095.     cmpl    $31, %eax
  4096.     jbe .L30
  4097.     movl    -36(%rbp), %eax
  4098.     subl    $128800, %eax
  4099.     cmpl    $31, %eax
  4100.     jbe .L30
  4101.     movl    -36(%rbp), %eax
  4102.     subl    $456544, %eax
  4103.     cmpl    $31, %eax
  4104.     jbe .L30
  4105.     movl    -36(%rbp), %eax
  4106.     subl    $341888, %eax
  4107.     cmpl    $31, %eax
  4108.     jbe .L30
  4109.     movl    -36(%rbp), %eax
  4110.     subl    $620480, %eax
  4111.     cmpl    $31, %eax
  4112.     jbe .L30
  4113.     movl    -36(%rbp), %eax
  4114.     subl    $341952, %eax
  4115.     cmpl    $31, %eax
  4116.     jbe .L30
  4117.     movl    -36(%rbp), %eax
  4118.     subl    $292864, %eax
  4119.     cmpl    $31, %eax
  4120.     jbe .L30
  4121.     movl    -36(%rbp), %eax
  4122.     subl    $620672, %eax
  4123.     cmpl    $31, %eax
  4124.     jbe .L30
  4125.     movl    -36(%rbp), %eax
  4126.     subl    $620736, %eax
  4127.     cmpl    $31, %eax
  4128.     jbe .L30
  4129.     movl    -36(%rbp), %eax
  4130.     subl    $129280, %eax
  4131.     cmpl    $31, %eax
  4132.     jbe .L30
  4133.     movl    -36(%rbp), %eax
  4134.     subl    $506144, %eax
  4135.     cmpl    $31, %eax
  4136.     jbe .L30
  4137.     movl    -36(%rbp), %eax
  4138.     subl    $178496, %eax
  4139.     cmpl    $31, %eax
  4140.     jbe .L30
  4141.     movl    -36(%rbp), %eax
  4142.     subl    $457120, %eax
  4143.     cmpl    $31, %eax
  4144.     jbe .L30
  4145.     movl    -36(%rbp), %eax
  4146.     subl    $276928, %eax
  4147.     cmpl    $31, %eax
  4148.     jbe .L30
  4149.     movl    -36(%rbp), %eax
  4150.     subl    $522688, %eax
  4151.     cmpl    $31, %eax
  4152.     jbe .L30
  4153.     movl    -36(%rbp), %eax
  4154.     subl    $96736, %eax
  4155.     cmpl    $31, %eax
  4156.     jbe .L30
  4157.     movl    -36(%rbp), %eax
  4158.     subl    $113152, %eax
  4159.     cmpl    $31, %eax
  4160.     jbe .L30
  4161.     movl    -36(%rbp), %eax
  4162.     subl    $457600, %eax
  4163.     cmpl    $31, %eax
  4164.     jbe .L30
  4165.     movl    -36(%rbp), %eax
  4166.     subl    $261088, %eax
  4167.     cmpl    $31, %eax
  4168.     jbe .L30
  4169.     movl    -36(%rbp), %eax
  4170.     subl    $506912, %eax
  4171.     cmpl    $31, %eax
  4172.     jbe .L30
  4173.     movl    -36(%rbp), %eax
  4174.     subl    $457792, %eax
  4175.     cmpl    $31, %eax
  4176.     jbe .L30
  4177.     movl    -36(%rbp), %eax
  4178.     subl    $146528, %eax
  4179.     cmpl    $31, %eax
  4180.     jbe .L30
  4181.     movl    -36(%rbp), %eax
  4182.     subl    $506976, %eax
  4183.     cmpl    $31, %eax
  4184.     jbe .L30
  4185.     movl    -36(%rbp), %eax
  4186.     subl    $556160, %eax
  4187.     cmpl    $31, %eax
  4188.     jbe .L30
  4189.     movl    -36(%rbp), %eax
  4190.     subl    $130208, %eax
  4191.     cmpl    $31, %eax
  4192.     jbe .L30
  4193.     movl    -36(%rbp), %eax
  4194.     subl    $261280, %eax
  4195.     cmpl    $31, %eax
  4196.     jbe .L30
  4197.     movl    -36(%rbp), %eax
  4198.     subl    $130272, %eax
  4199.     cmpl    $31, %eax
  4200.     jbe .L30
  4201.     movl    -36(%rbp), %eax
  4202.     subl    $408832, %eax
  4203.     cmpl    $31, %eax
  4204.     jbe .L30
  4205.     movl    -36(%rbp), %eax
  4206.     subl    $81184, %eax
  4207.     cmpl    $31, %eax
  4208.     jbe .L30
  4209.     movl    -36(%rbp), %eax
  4210.     subl    $458368, %eax
  4211.     cmpl    $31, %eax
  4212.     jbe .L30
  4213.     movl    -36(%rbp), %eax
  4214.     subl    $294592, %eax
  4215.     cmpl    $31, %eax
  4216.     jbe .L30
  4217.     movl    -36(%rbp), %eax
  4218.     subl    $589696, %eax
  4219.     cmpl    $31, %eax
  4220.     jbe .L30
  4221.     movl    -36(%rbp), %eax
  4222.     subl    $131040, %eax
  4223.     cmpl    $31, %eax
  4224.     ja  .L31
  4225. .L30:
  4226.     movl    $2, %esi
  4227.     movl    $.LC8, %edi
  4228.     movl    $0, %eax
  4229.     call    printf
  4230.     movl    $-1, -36(%rbp)
  4231.     jmp .L2
  4232. .L31:
  4233.     movl    -36(%rbp), %eax
  4234.     movl    %eax, %edx
  4235.     sarl    $31, %edx
  4236.     shrl    $29, %edx
  4237.     addl    %edx, %eax
  4238.     andl    $7, %eax
  4239.     subl    %edx, %eax
  4240.     cmpl    $5, %eax
  4241.     jne .L2
  4242.     movl    -36(%rbp), %eax
  4243.     leal    7(%rax), %edx
  4244.     testl   %eax, %eax
  4245.     cmovs   %edx, %eax
  4246.     sarl    $3, %eax
  4247.     movl    %eax, %edx
  4248.     sarl    $31, %edx
  4249.     shrl    $31, %edx
  4250.     addl    %edx, %eax
  4251.     andl    $1, %eax
  4252.     subl    %edx, %eax
  4253.     addl    $1, %eax
  4254.     movl    %eax, %esi
  4255.     movl    $.LC9, %edi
  4256.     movl    $0, %eax
  4257.     call    printf
  4258.     movl    -36(%rbp), %eax
  4259.     leal    7(%rax), %edx
  4260.     testl   %eax, %eax
  4261.     cmovs   %edx, %eax
  4262.     sarl    $3, %eax
  4263.     andl    $1, %eax
  4264.     testl   %eax, %eax
  4265.     je  .L32
  4266.     movl    -36(%rbp), %eax
  4267.     leal    15(%rax), %edx
  4268.     testl   %eax, %eax
  4269.     cmovs   %edx, %eax
  4270.     sarl    $4, %eax
  4271.     andl    $1, %eax
  4272.     testl   %eax, %eax
  4273.     jne .L33
  4274. .L32:
  4275.     movl    -36(%rbp), %eax
  4276.     movl    %eax, %edx
  4277.     sarl    $31, %edx
  4278.     shrl    $12, %edx
  4279.     addl    %edx, %eax
  4280.     andl    $1048575, %eax
  4281.     subl    %edx, %eax
  4282.     movl    %eax, -36(%rbp)
  4283.     movl    $.LC10, %edi
  4284.     call    puts
  4285.     leaq    -40(%rbp), %rax
  4286.     movq    %rax, %rsi
  4287.     movl    $.LC1, %edi
  4288.     movl    $0, %eax
  4289.     call    __isoc99_scanf
  4290.     movl    -40(%rbp), %eax
  4291.     testl   %eax, %eax
  4292.     js  .L34
  4293.     movl    -40(%rbp), %eax
  4294.     cmpl    $3, %eax
  4295.     jle .L35
  4296. .L34:
  4297.     movl    $3, -40(%rbp)
  4298. .L35:
  4299.     movl    -40(%rbp), %eax
  4300.     movl    %eax, %edx
  4301.     sall    $20, %edx
  4302.     movl    -36(%rbp), %eax
  4303.     addl    %edx, %eax
  4304.     movl    %eax, -36(%rbp)
  4305.     leaq    -40(%rbp), %rax
  4306.     movq    %rax, %rsi
  4307.     movl    $.LC1, %edi
  4308.     movl    $0, %eax
  4309.     call    __isoc99_scanf
  4310.     movl    -40(%rbp), %eax
  4311.     testl   %eax, %eax
  4312.     js  .L36
  4313.     movl    -40(%rbp), %eax
  4314.     cmpl    $3, %eax
  4315.     jle .L37
  4316. .L36:
  4317.     movl    $3, -40(%rbp)
  4318. .L37:
  4319.     movl    -40(%rbp), %eax
  4320.     movl    %eax, %edx
  4321.     sall    $22, %edx
  4322.     movl    -36(%rbp), %eax
  4323.     addl    %edx, %eax
  4324.     movl    %eax, -36(%rbp)
  4325.     movl    -36(%rbp), %eax
  4326.     leal    1048575(%rax), %edx
  4327.     testl   %eax, %eax
  4328.     cmovs   %edx, %eax
  4329.     sarl    $20, %eax
  4330.     movl    %eax, %edx
  4331.     sarl    $31, %edx
  4332.     shrl    $30, %edx
  4333.     addl    %edx, %eax
  4334.     andl    $3, %eax
  4335.     subl    %edx, %eax
  4336.     cmpl    $3, %eax
  4337.     je  .L38
  4338.     movl    -36(%rbp), %eax
  4339.     leal    4194303(%rax), %edx
  4340.     testl   %eax, %eax
  4341.     cmovs   %edx, %eax
  4342.     sarl    $22, %eax
  4343.     movl    %eax, %edx
  4344.     sarl    $31, %edx
  4345.     shrl    $30, %edx
  4346.     addl    %edx, %eax
  4347.     andl    $3, %eax
  4348.     subl    %edx, %eax
  4349.     cmpl    $3, %eax
  4350.     je  .L38
  4351.     movl    -36(%rbp), %eax
  4352.     leal    1048575(%rax), %edx
  4353.     testl   %eax, %eax
  4354.     cmovs   %edx, %eax
  4355.     sarl    $20, %eax
  4356.     andl    $3, %eax
  4357.     testl   %eax, %eax
  4358.     jne .L39
  4359.     movl    -36(%rbp), %eax
  4360.     leal    4194303(%rax), %edx
  4361.     testl   %eax, %eax
  4362.     cmovs   %edx, %eax
  4363.     sarl    $22, %eax
  4364.     andl    $3, %eax
  4365.     testl   %eax, %eax
  4366.     jne .L39
  4367.     movl    -36(%rbp), %eax
  4368.     movl    %eax, %edx
  4369.     sarl    $31, %edx
  4370.     shrl    $12, %edx
  4371.     addl    %edx, %eax
  4372.     andl    $1048575, %eax
  4373.     subl    %edx, %eax
  4374.     leal    31(%rax), %edx
  4375.     testl   %eax, %eax
  4376.     cmovs   %edx, %eax
  4377.     sarl    $5, %eax
  4378.     movl    %eax, %ecx
  4379.     movl    $1431655766, %edx
  4380.     movl    %ecx, %eax
  4381.     imull   %edx
  4382.     movl    %ecx, %eax
  4383.     sarl    $31, %eax
  4384.     subl    %eax, %edx
  4385.     movl    %edx, %eax
  4386.     addl    %eax, %eax
  4387.     addl    %edx, %eax
  4388.     movl    %ecx, %edx
  4389.     subl    %eax, %edx
  4390.     testl   %edx, %edx
  4391.     jne .L38
  4392. .L39:
  4393.     movl    -36(%rbp), %eax
  4394.     leal    1048575(%rax), %edx
  4395.     testl   %eax, %eax
  4396.     cmovs   %edx, %eax
  4397.     sarl    $20, %eax
  4398.     andl    $3, %eax
  4399.     testl   %eax, %eax
  4400.     jne .L40
  4401.     movl    -36(%rbp), %eax
  4402.     leal    4194303(%rax), %edx
  4403.     testl   %eax, %eax
  4404.     cmovs   %edx, %eax
  4405.     sarl    $22, %eax
  4406.     movl    %eax, %edx
  4407.     sarl    $31, %edx
  4408.     shrl    $30, %edx
  4409.     addl    %edx, %eax
  4410.     andl    $3, %eax
  4411.     subl    %edx, %eax
  4412.     cmpl    $1, %eax
  4413.     jne .L40
  4414.     movl    -36(%rbp), %eax
  4415.     movl    %eax, %edx
  4416.     sarl    $31, %edx
  4417.     shrl    $12, %edx
  4418.     addl    %edx, %eax
  4419.     andl    $1048575, %eax
  4420.     subl    %edx, %eax
  4421.     movl    %eax, %ecx
  4422.     movl    $715827883, %edx
  4423.     movl    %ecx, %eax
  4424.     imull   %edx
  4425.     sarl    $4, %edx
  4426.     movl    %ecx, %eax
  4427.     sarl    $31, %eax
  4428.     movl    %edx, %ecx
  4429.     subl    %eax, %ecx
  4430.     movl    $1431655766, %edx
  4431.     movl    %ecx, %eax
  4432.     imull   %edx
  4433.     movl    %ecx, %eax
  4434.     sarl    $31, %eax
  4435.     subl    %eax, %edx
  4436.     movl    %edx, %eax
  4437.     addl    %eax, %eax
  4438.     addl    %edx, %eax
  4439.     movl    %ecx, %edx
  4440.     subl    %eax, %edx
  4441.     testl   %edx, %edx
  4442.     jne .L38
  4443. .L40:
  4444.     movl    -36(%rbp), %eax
  4445.     leal    1048575(%rax), %edx
  4446.     testl   %eax, %eax
  4447.     cmovs   %edx, %eax
  4448.     sarl    $20, %eax
  4449.     andl    $3, %eax
  4450.     testl   %eax, %eax
  4451.     jne .L41
  4452.     movl    -36(%rbp), %eax
  4453.     leal    4194303(%rax), %edx
  4454.     testl   %eax, %eax
  4455.     cmovs   %edx, %eax
  4456.     sarl    $22, %eax
  4457.     movl    %eax, %edx
  4458.     sarl    $31, %edx
  4459.     shrl    $30, %edx
  4460.     addl    %edx, %eax
  4461.     andl    $3, %eax
  4462.     subl    %edx, %eax
  4463.     cmpl    $2, %eax
  4464.     jne .L41
  4465.     movl    -36(%rbp), %eax
  4466.     movl    %eax, %edx
  4467.     sarl    $31, %edx
  4468.     shrl    $12, %edx
  4469.     addl    %edx, %eax
  4470.     andl    $1048575, %eax
  4471.     subl    %edx, %eax
  4472.     movl    %eax, %ecx
  4473.     movl    $954437177, %edx
  4474.     movl    %ecx, %eax
  4475.     imull   %edx
  4476.     sarl    $6, %edx
  4477.     movl    %ecx, %eax
  4478.     sarl    $31, %eax
  4479.     movl    %edx, %ecx
  4480.     subl    %eax, %ecx
  4481.     movl    $1431655766, %edx
  4482.     movl    %ecx, %eax
  4483.     imull   %edx
  4484.     movl    %ecx, %eax
  4485.     sarl    $31, %eax
  4486.     subl    %eax, %edx
  4487.     movl    %edx, %eax
  4488.     addl    %eax, %eax
  4489.     addl    %edx, %eax
  4490.     movl    %ecx, %edx
  4491.     subl    %eax, %edx
  4492.     testl   %edx, %edx
  4493.     jne .L38
  4494. .L41:
  4495.     movl    -36(%rbp), %eax
  4496.     leal    1048575(%rax), %edx
  4497.     testl   %eax, %eax
  4498.     cmovs   %edx, %eax
  4499.     sarl    $20, %eax
  4500.     movl    %eax, %edx
  4501.     sarl    $31, %edx
  4502.     shrl    $30, %edx
  4503.     addl    %edx, %eax
  4504.     andl    $3, %eax
  4505.     subl    %edx, %eax
  4506.     cmpl    $1, %eax
  4507.     jne .L42
  4508.     movl    -36(%rbp), %eax
  4509.     leal    4194303(%rax), %edx
  4510.     testl   %eax, %eax
  4511.     cmovs   %edx, %eax
  4512.     sarl    $22, %eax
  4513.     andl    $3, %eax
  4514.     testl   %eax, %eax
  4515.     jne .L42
  4516.     movl    -36(%rbp), %eax
  4517.     movl    %eax, %edx
  4518.     sarl    $31, %edx
  4519.     shrl    $12, %edx
  4520.     addl    %edx, %eax
  4521.     andl    $1048575, %eax
  4522.     subl    %edx, %eax
  4523.     movl    %eax, %ecx
  4524.     movl    $1272582903, %edx
  4525.     movl    %ecx, %eax
  4526.     imull   %edx
  4527.     sarl    $8, %edx
  4528.     movl    %ecx, %eax
  4529.     sarl    $31, %eax
  4530.     movl    %edx, %ecx
  4531.     subl    %eax, %ecx
  4532.     movl    $1431655766, %edx
  4533.     movl    %ecx, %eax
  4534.     imull   %edx
  4535.     movl    %ecx, %eax
  4536.     sarl    $31, %eax
  4537.     subl    %eax, %edx
  4538.     movl    %edx, %eax
  4539.     addl    %eax, %eax
  4540.     addl    %edx, %eax
  4541.     movl    %ecx, %edx
  4542.     subl    %eax, %edx
  4543.     testl   %edx, %edx
  4544.     jne .L38
  4545. .L42:
  4546.     movl    -36(%rbp), %eax
  4547.     leal    1048575(%rax), %edx
  4548.     testl   %eax, %eax
  4549.     cmovs   %edx, %eax
  4550.     sarl    $20, %eax
  4551.     movl    %eax, %edx
  4552.     sarl    $31, %edx
  4553.     shrl    $30, %edx
  4554.     addl    %edx, %eax
  4555.     andl    $3, %eax
  4556.     subl    %edx, %eax
  4557.     cmpl    $1, %eax
  4558.     jne .L43
  4559.     movl    -36(%rbp), %eax
  4560.     leal    4194303(%rax), %edx
  4561.     testl   %eax, %eax
  4562.     cmovs   %edx, %eax
  4563.     sarl    $22, %eax
  4564.     movl    %eax, %edx
  4565.     sarl    $31, %edx
  4566.     shrl    $30, %edx
  4567.     addl    %edx, %eax
  4568.     andl    $3, %eax
  4569.     subl    %edx, %eax
  4570.     cmpl    $1, %eax
  4571.     jne .L43
  4572.     movl    -36(%rbp), %eax
  4573.     movl    %eax, %edx
  4574.     sarl    $31, %edx
  4575.     shrl    $12, %edx
  4576.     addl    %edx, %eax
  4577.     andl    $1048575, %eax
  4578.     subl    %edx, %eax
  4579.     movl    %eax, %ecx
  4580.     movl    $424194301, %edx
  4581.     movl    %ecx, %eax
  4582.     imull   %edx
  4583.     sarl    $8, %edx
  4584.     movl    %ecx, %eax
  4585.     sarl    $31, %eax
  4586.     movl    %edx, %ecx
  4587.     subl    %eax, %ecx
  4588.     movl    $1431655766, %edx
  4589.     movl    %ecx, %eax
  4590.     imull   %edx
  4591.     movl    %ecx, %eax
  4592.     sarl    $31, %eax
  4593.     subl    %eax, %edx
  4594.     movl    %edx, %eax
  4595.     addl    %eax, %eax
  4596.     addl    %edx, %eax
  4597.     movl    %ecx, %edx
  4598.     subl    %eax, %edx
  4599.     testl   %edx, %edx
  4600.     jne .L38
  4601. .L43:
  4602.     movl    -36(%rbp), %eax
  4603.     leal    1048575(%rax), %edx
  4604.     testl   %eax, %eax
  4605.     cmovs   %edx, %eax
  4606.     sarl    $20, %eax
  4607.     movl    %eax, %edx
  4608.     sarl    $31, %edx
  4609.     shrl    $30, %edx
  4610.     addl    %edx, %eax
  4611.     andl    $3, %eax
  4612.     subl    %edx, %eax
  4613.     cmpl    $1, %eax
  4614.     jne .L44
  4615.     movl    -36(%rbp), %eax
  4616.     leal    4194303(%rax), %edx
  4617.     testl   %eax, %eax
  4618.     cmovs   %edx, %eax
  4619.     sarl    $22, %eax
  4620.     movl    %eax, %edx
  4621.     sarl    $31, %edx
  4622.     shrl    $30, %edx
  4623.     addl    %edx, %eax
  4624.     andl    $3, %eax
  4625.     subl    %edx, %eax
  4626.     cmpl    $2, %eax
  4627.     jne .L44
  4628.     movl    -36(%rbp), %eax
  4629.     movl    %eax, %edx
  4630.     sarl    $31, %edx
  4631.     shrl    $12, %edx
  4632.     addl    %edx, %eax
  4633.     andl    $1048575, %eax
  4634.     subl    %edx, %eax
  4635.     movl    %eax, %ecx
  4636.     movl    $-2032597691, %edx
  4637.     movl    %ecx, %eax
  4638.     imull   %edx
  4639.     leal    (%rdx,%rcx), %eax
  4640.     movl    %eax, %edx
  4641.     sarl    $12, %edx
  4642.     movl    %ecx, %eax
  4643.     sarl    $31, %eax
  4644.     movl    %edx, %ecx
  4645.     subl    %eax, %ecx
  4646.     movl    $1431655766, %edx
  4647.     movl    %ecx, %eax
  4648.     imull   %edx
  4649.     movl    %ecx, %eax
  4650.     sarl    $31, %eax
  4651.     subl    %eax, %edx
  4652.     movl    %edx, %eax
  4653.     addl    %eax, %eax
  4654.     addl    %edx, %eax
  4655.     movl    %ecx, %edx
  4656.     subl    %eax, %edx
  4657.     testl   %edx, %edx
  4658.     jne .L38
  4659. .L44:
  4660.     movl    -36(%rbp), %eax
  4661.     leal    1048575(%rax), %edx
  4662.     testl   %eax, %eax
  4663.     cmovs   %edx, %eax
  4664.     sarl    $20, %eax
  4665.     movl    %eax, %edx
  4666.     sarl    $31, %edx
  4667.     shrl    $30, %edx
  4668.     addl    %edx, %eax
  4669.     andl    $3, %eax
  4670.     subl    %edx, %eax
  4671.     cmpl    $2, %eax
  4672.     jne .L45
  4673.     movl    -36(%rbp), %eax
  4674.     leal    4194303(%rax), %edx
  4675.     testl   %eax, %eax
  4676.     cmovs   %edx, %eax
  4677.     sarl    $22, %eax
  4678.     andl    $3, %eax
  4679.     testl   %eax, %eax
  4680.     jne .L45
  4681.     movl    -36(%rbp), %eax
  4682.     movl    %eax, %edx
  4683.     sarl    $31, %edx
  4684.     shrl    $12, %edx
  4685.     addl    %edx, %eax
  4686.     andl    $1048575, %eax
  4687.     subl    %edx, %eax
  4688.     movl    %eax, %ecx
  4689.     movl    $1508246403, %edx
  4690.     movl    %ecx, %eax
  4691.     imull   %edx
  4692.     sarl    $13, %edx
  4693.     movl    %ecx, %eax
  4694.     sarl    $31, %eax
  4695.     movl    %edx, %ecx
  4696.     subl    %eax, %ecx
  4697.     movl    $1431655766, %edx
  4698.     movl    %ecx, %eax
  4699.     imull   %edx
  4700.     movl    %ecx, %eax
  4701.     sarl    $31, %eax
  4702.     subl    %eax, %edx
  4703.     movl    %edx, %eax
  4704.     addl    %eax, %eax
  4705.     addl    %edx, %eax
  4706.     movl    %ecx, %edx
  4707.     subl    %eax, %edx
  4708.     testl   %edx, %edx
  4709.     jne .L38
  4710. .L45:
  4711.     movl    -36(%rbp), %eax
  4712.     leal    1048575(%rax), %edx
  4713.     testl   %eax, %eax
  4714.     cmovs   %edx, %eax
  4715.     sarl    $20, %eax
  4716.     movl    %eax, %edx
  4717.     sarl    $31, %edx
  4718.     shrl    $30, %edx
  4719.     addl    %edx, %eax
  4720.     andl    $3, %eax
  4721.     subl    %edx, %eax
  4722.     cmpl    $2, %eax
  4723.     jne .L46
  4724.     movl    -36(%rbp), %eax
  4725.     leal    4194303(%rax), %edx
  4726.     testl   %eax, %eax
  4727.     cmovs   %edx, %eax
  4728.     sarl    $22, %eax
  4729.     movl    %eax, %edx
  4730.     sarl    $31, %edx
  4731.     shrl    $30, %edx
  4732.     addl    %edx, %eax
  4733.     andl    $3, %eax
  4734.     subl    %edx, %eax
  4735.     cmpl    $1, %eax
  4736.     jne .L46
  4737.     movl    -36(%rbp), %eax
  4738.     movl    %eax, %edx
  4739.     sarl    $31, %edx
  4740.     shrl    $12, %edx
  4741.     addl    %edx, %eax
  4742.     andl    $1048575, %eax
  4743.     subl    %edx, %eax
  4744.     movl    %eax, %ecx
  4745.     movl    $502748801, %edx
  4746.     movl    %ecx, %eax
  4747.     imull   %edx
  4748.     sarl    $13, %edx
  4749.     movl    %ecx, %eax
  4750.     sarl    $31, %eax
  4751.     movl    %edx, %ecx
  4752.     subl    %eax, %ecx
  4753.     movl    $1431655766, %edx
  4754.     movl    %ecx, %eax
  4755.     imull   %edx
  4756.     movl    %ecx, %eax
  4757.     sarl    $31, %eax
  4758.     subl    %eax, %edx
  4759.     movl    %edx, %eax
  4760.     addl    %eax, %eax
  4761.     addl    %edx, %eax
  4762.     movl    %ecx, %edx
  4763.     subl    %eax, %edx
  4764.     testl   %edx, %edx
  4765.     jne .L38
  4766. .L46:
  4767.     movl    -36(%rbp), %eax
  4768.     leal    1048575(%rax), %edx
  4769.     testl   %eax, %eax
  4770.     cmovs   %edx, %eax
  4771.     sarl    $20, %eax
  4772.     movl    %eax, %edx
  4773.     sarl    $31, %edx
  4774.     shrl    $30, %edx
  4775.     addl    %edx, %eax
  4776.     andl    $3, %eax
  4777.     subl    %edx, %eax
  4778.     cmpl    $2, %eax
  4779.     jne .L47
  4780.     movl    -36(%rbp), %eax
  4781.     leal    4194303(%rax), %edx
  4782.     testl   %eax, %eax
  4783.     cmovs   %edx, %eax
  4784.     sarl    $22, %eax
  4785.     movl    %eax, %edx
  4786.     sarl    $31, %edx
  4787.     shrl    $30, %edx
  4788.     addl    %edx, %eax
  4789.     andl    $3, %eax
  4790.     subl    %edx, %eax
  4791.     cmpl    $2, %eax
  4792.     jne .L47
  4793.     movl    -36(%rbp), %eax
  4794.     movl    %eax, %edx
  4795.     sarl    $31, %edx
  4796.     shrl    $12, %edx
  4797.     addl    %edx, %eax
  4798.     andl    $1048575, %eax
  4799.     subl    %edx, %eax
  4800.     movl    %eax, %ecx
  4801.     movl    $-1613640357, %edx
  4802.     movl    %ecx, %eax
  4803.     imull   %edx
  4804.     leal    (%rdx,%rcx), %eax
  4805.     movl    %eax, %edx
  4806.     sarl    $17, %edx
  4807.     movl    %ecx, %eax
  4808.     sarl    $31, %eax
  4809.     movl    %edx, %ecx
  4810.     subl    %eax, %ecx
  4811.     movl    $1431655766, %edx
  4812.     movl    %ecx, %eax
  4813.     imull   %edx
  4814.     movl    %ecx, %eax
  4815.     sarl    $31, %eax
  4816.     subl    %eax, %edx
  4817.     movl    %edx, %eax
  4818.     addl    %eax, %eax
  4819.     addl    %edx, %eax
  4820.     movl    %ecx, %edx
  4821.     subl    %eax, %edx
  4822.     testl   %edx, %edx
  4823.     je  .L47
  4824. .L38:
  4825.     movl    $.LC11, %edi
  4826.     call    puts
  4827. .L47:
  4828.     movl    -36(%rbp), %eax
  4829.     leal    1048575(%rax), %edx
  4830.     testl   %eax, %eax
  4831.     cmovs   %edx, %eax
  4832.     sarl    $20, %eax
  4833.     movl    %eax, %edx
  4834.     sarl    $31, %edx
  4835.     shrl    $30, %edx
  4836.     addl    %edx, %eax
  4837.     andl    $3, %eax
  4838.     subl    %edx, %eax
  4839.     cmpl    $3, %eax
  4840.     je  .L32
  4841.     movl    -36(%rbp), %eax
  4842.     leal    4194303(%rax), %edx
  4843.     testl   %eax, %eax
  4844.     cmovs   %edx, %eax
  4845.     sarl    $22, %eax
  4846.     movl    %eax, %edx
  4847.     sarl    $31, %edx
  4848.     shrl    $30, %edx
  4849.     addl    %edx, %eax
  4850.     andl    $3, %eax
  4851.     subl    %edx, %eax
  4852.     cmpl    $3, %eax
  4853.     je  .L32
  4854.     movl    -36(%rbp), %eax
  4855.     leal    1048575(%rax), %edx
  4856.     testl   %eax, %eax
  4857.     cmovs   %edx, %eax
  4858.     sarl    $20, %eax
  4859.     andl    $3, %eax
  4860.     testl   %eax, %eax
  4861.     jne .L48
  4862.     movl    -36(%rbp), %eax
  4863.     leal    4194303(%rax), %edx
  4864.     testl   %eax, %eax
  4865.     cmovs   %edx, %eax
  4866.     sarl    $22, %eax
  4867.     andl    $3, %eax
  4868.     testl   %eax, %eax
  4869.     jne .L48
  4870.     movl    -36(%rbp), %eax
  4871.     movl    %eax, %edx
  4872.     sarl    $31, %edx
  4873.     shrl    $12, %edx
  4874.     addl    %edx, %eax
  4875.     andl    $1048575, %eax
  4876.     subl    %edx, %eax
  4877.     leal    31(%rax), %edx
  4878.     testl   %eax, %eax
  4879.     cmovs   %edx, %eax
  4880.     sarl    $5, %eax
  4881.     movl    %eax, %ecx
  4882.     movl    $1431655766, %edx
  4883.     movl    %ecx, %eax
  4884.     imull   %edx
  4885.     movl    %ecx, %eax
  4886.     sarl    $31, %eax
  4887.     subl    %eax, %edx
  4888.     movl    %edx, %eax
  4889.     addl    %eax, %eax
  4890.     addl    %edx, %eax
  4891.     movl    %ecx, %edx
  4892.     subl    %eax, %edx
  4893.     testl   %edx, %edx
  4894.     jne .L32
  4895. .L48:
  4896.     movl    -36(%rbp), %eax
  4897.     leal    1048575(%rax), %edx
  4898.     testl   %eax, %eax
  4899.     cmovs   %edx, %eax
  4900.     sarl    $20, %eax
  4901.     andl    $3, %eax
  4902.     testl   %eax, %eax
  4903.     jne .L49
  4904.     movl    -36(%rbp), %eax
  4905.     leal    4194303(%rax), %edx
  4906.     testl   %eax, %eax
  4907.     cmovs   %edx, %eax
  4908.     sarl    $22, %eax
  4909.     movl    %eax, %edx
  4910.     sarl    $31, %edx
  4911.     shrl    $30, %edx
  4912.     addl    %edx, %eax
  4913.     andl    $3, %eax
  4914.     subl    %edx, %eax
  4915.     cmpl    $1, %eax
  4916.     jne .L49
  4917.     movl    -36(%rbp), %eax
  4918.     movl    %eax, %edx
  4919.     sarl    $31, %edx
  4920.     shrl    $12, %edx
  4921.     addl    %edx, %eax
  4922.     andl    $1048575, %eax
  4923.     subl    %edx, %eax
  4924.     movl    %eax, %ecx
  4925.     movl    $715827883, %edx
  4926.     movl    %ecx, %eax
  4927.     imull   %edx
  4928.     sarl    $4, %edx
  4929.     movl    %ecx, %eax
  4930.     sarl    $31, %eax
  4931.     movl    %edx, %ecx
  4932.     subl    %eax, %ecx
  4933.     movl    $1431655766, %edx
  4934.     movl    %ecx, %eax
  4935.     imull   %edx
  4936.     movl    %ecx, %eax
  4937.     sarl    $31, %eax
  4938.     subl    %eax, %edx
  4939.     movl    %edx, %eax
  4940.     addl    %eax, %eax
  4941.     addl    %edx, %eax
  4942.     movl    %ecx, %edx
  4943.     subl    %eax, %edx
  4944.     testl   %edx, %edx
  4945.     jne .L32
  4946. .L49:
  4947.     movl    -36(%rbp), %eax
  4948.     leal    1048575(%rax), %edx
  4949.     testl   %eax, %eax
  4950.     cmovs   %edx, %eax
  4951.     sarl    $20, %eax
  4952.     andl    $3, %eax
  4953.     testl   %eax, %eax
  4954.     jne .L50
  4955.     movl    -36(%rbp), %eax
  4956.     leal    4194303(%rax), %edx
  4957.     testl   %eax, %eax
  4958.     cmovs   %edx, %eax
  4959.     sarl    $22, %eax
  4960.     movl    %eax, %edx
  4961.     sarl    $31, %edx
  4962.     shrl    $30, %edx
  4963.     addl    %edx, %eax
  4964.     andl    $3, %eax
  4965.     subl    %edx, %eax
  4966.     cmpl    $2, %eax
  4967.     jne .L50
  4968.     movl    -36(%rbp), %eax
  4969.     movl    %eax, %edx
  4970.     sarl    $31, %edx
  4971.     shrl    $12, %edx
  4972.     addl    %edx, %eax
  4973.     andl    $1048575, %eax
  4974.     subl    %edx, %eax
  4975.     movl    %eax, %ecx
  4976.     movl    $954437177, %edx
  4977.     movl    %ecx, %eax
  4978.     imull   %edx
  4979.     sarl    $6, %edx
  4980.     movl    %ecx, %eax
  4981.     sarl    $31, %eax
  4982.     movl    %edx, %ecx
  4983.     subl    %eax, %ecx
  4984.     movl    $1431655766, %edx
  4985.     movl    %ecx, %eax
  4986.     imull   %edx
  4987.     movl    %ecx, %eax
  4988.     sarl    $31, %eax
  4989.     subl    %eax, %edx
  4990.     movl    %edx, %eax
  4991.     addl    %eax, %eax
  4992.     addl    %edx, %eax
  4993.     movl    %ecx, %edx
  4994.     subl    %eax, %edx
  4995.     testl   %edx, %edx
  4996.     jne .L32
  4997. .L50:
  4998.     movl    -36(%rbp), %eax
  4999.     leal    1048575(%rax), %edx
  5000.     testl   %eax, %eax
  5001.     cmovs   %edx, %eax
  5002.     sarl    $20, %eax
  5003.     movl    %eax, %edx
  5004.     sarl    $31, %edx
  5005.     shrl    $30, %edx
  5006.     addl    %edx, %eax
  5007.     andl    $3, %eax
  5008.     subl    %edx, %eax
  5009.     cmpl    $1, %eax
  5010.     jne .L51
  5011.     movl    -36(%rbp), %eax
  5012.     leal    4194303(%rax), %edx
  5013.     testl   %eax, %eax
  5014.     cmovs   %edx, %eax
  5015.     sarl    $22, %eax
  5016.     andl    $3, %eax
  5017.     testl   %eax, %eax
  5018.     jne .L51
  5019.     movl    -36(%rbp), %eax
  5020.     movl    %eax, %edx
  5021.     sarl    $31, %edx
  5022.     shrl    $12, %edx
  5023.     addl    %edx, %eax
  5024.     andl    $1048575, %eax
  5025.     subl    %edx, %eax
  5026.     movl    %eax, %ecx
  5027.     movl    $1272582903, %edx
  5028.     movl    %ecx, %eax
  5029.     imull   %edx
  5030.     sarl    $8, %edx
  5031.     movl    %ecx, %eax
  5032.     sarl    $31, %eax
  5033.     movl    %edx, %ecx
  5034.     subl    %eax, %ecx
  5035.     movl    $1431655766, %edx
  5036.     movl    %ecx, %eax
  5037.     imull   %edx
  5038.     movl    %ecx, %eax
  5039.     sarl    $31, %eax
  5040.     subl    %eax, %edx
  5041.     movl    %edx, %eax
  5042.     addl    %eax, %eax
  5043.     addl    %edx, %eax
  5044.     movl    %ecx, %edx
  5045.     subl    %eax, %edx
  5046.     testl   %edx, %edx
  5047.     jne .L32
  5048. .L51:
  5049.     movl    -36(%rbp), %eax
  5050.     leal    1048575(%rax), %edx
  5051.     testl   %eax, %eax
  5052.     cmovs   %edx, %eax
  5053.     sarl    $20, %eax
  5054.     movl    %eax, %edx
  5055.     sarl    $31, %edx
  5056.     shrl    $30, %edx
  5057.     addl    %edx, %eax
  5058.     andl    $3, %eax
  5059.     subl    %edx, %eax
  5060.     cmpl    $1, %eax
  5061.     jne .L52
  5062.     movl    -36(%rbp), %eax
  5063.     leal    4194303(%rax), %edx
  5064.     testl   %eax, %eax
  5065.     cmovs   %edx, %eax
  5066.     sarl    $22, %eax
  5067.     movl    %eax, %edx
  5068.     sarl    $31, %edx
  5069.     shrl    $30, %edx
  5070.     addl    %edx, %eax
  5071.     andl    $3, %eax
  5072.     subl    %edx, %eax
  5073.     cmpl    $1, %eax
  5074.     jne .L52
  5075.     movl    -36(%rbp), %eax
  5076.     movl    %eax, %edx
  5077.     sarl    $31, %edx
  5078.     shrl    $12, %edx
  5079.     addl    %edx, %eax
  5080.     andl    $1048575, %eax
  5081.     subl    %edx, %eax
  5082.     movl    %eax, %ecx
  5083.     movl    $424194301, %edx
  5084.     movl    %ecx, %eax
  5085.     imull   %edx
  5086.     sarl    $8, %edx
  5087.     movl    %ecx, %eax
  5088.     sarl    $31, %eax
  5089.     movl    %edx, %ecx
  5090.     subl    %eax, %ecx
  5091.     movl    $1431655766, %edx
  5092.     movl    %ecx, %eax
  5093.     imull   %edx
  5094.     movl    %ecx, %eax
  5095.     sarl    $31, %eax
  5096.     subl    %eax, %edx
  5097.     movl    %edx, %eax
  5098.     addl    %eax, %eax
  5099.     addl    %edx, %eax
  5100.     movl    %ecx, %edx
  5101.     subl    %eax, %edx
  5102.     testl   %edx, %edx
  5103.     jne .L32
  5104. .L52:
  5105.     movl    -36(%rbp), %eax
  5106.     leal    1048575(%rax), %edx
  5107.     testl   %eax, %eax
  5108.     cmovs   %edx, %eax
  5109.     sarl    $20, %eax
  5110.     movl    %eax, %edx
  5111.     sarl    $31, %edx
  5112.     shrl    $30, %edx
  5113.     addl    %edx, %eax
  5114.     andl    $3, %eax
  5115.     subl    %edx, %eax
  5116.     cmpl    $1, %eax
  5117.     jne .L53
  5118.     movl    -36(%rbp), %eax
  5119.     leal    4194303(%rax), %edx
  5120.     testl   %eax, %eax
  5121.     cmovs   %edx, %eax
  5122.     sarl    $22, %eax
  5123.     movl    %eax, %edx
  5124.     sarl    $31, %edx
  5125.     shrl    $30, %edx
  5126.     addl    %edx, %eax
  5127.     andl    $3, %eax
  5128.     subl    %edx, %eax
  5129.     cmpl    $2, %eax
  5130.     jne .L53
  5131.     movl    -36(%rbp), %eax
  5132.     movl    %eax, %edx
  5133.     sarl    $31, %edx
  5134.     shrl    $12, %edx
  5135.     addl    %edx, %eax
  5136.     andl    $1048575, %eax
  5137.     subl    %edx, %eax
  5138.     movl    %eax, %ecx
  5139.     movl    $-2032597691, %edx
  5140.     movl    %ecx, %eax
  5141.     imull   %edx
  5142.     leal    (%rdx,%rcx), %eax
  5143.     movl    %eax, %edx
  5144.     sarl    $12, %edx
  5145.     movl    %ecx, %eax
  5146.     sarl    $31, %eax
  5147.     movl    %edx, %ecx
  5148.     subl    %eax, %ecx
  5149.     movl    $1431655766, %edx
  5150.     movl    %ecx, %eax
  5151.     imull   %edx
  5152.     movl    %ecx, %eax
  5153.     sarl    $31, %eax
  5154.     subl    %eax, %edx
  5155.     movl    %edx, %eax
  5156.     addl    %eax, %eax
  5157.     addl    %edx, %eax
  5158.     movl    %ecx, %edx
  5159.     subl    %eax, %edx
  5160.     testl   %edx, %edx
  5161.     jne .L32
  5162. .L53:
  5163.     movl    -36(%rbp), %eax
  5164.     leal    1048575(%rax), %edx
  5165.     testl   %eax, %eax
  5166.     cmovs   %edx, %eax
  5167.     sarl    $20, %eax
  5168.     movl    %eax, %edx
  5169.     sarl    $31, %edx
  5170.     shrl    $30, %edx
  5171.     addl    %edx, %eax
  5172.     andl    $3, %eax
  5173.     subl    %edx, %eax
  5174.     cmpl    $2, %eax
  5175.     jne .L54
  5176.     movl    -36(%rbp), %eax
  5177.     leal    4194303(%rax), %edx
  5178.     testl   %eax, %eax
  5179.     cmovs   %edx, %eax
  5180.     sarl    $22, %eax
  5181.     andl    $3, %eax
  5182.     testl   %eax, %eax
  5183.     jne .L54
  5184.     movl    -36(%rbp), %eax
  5185.     movl    %eax, %edx
  5186.     sarl    $31, %edx
  5187.     shrl    $12, %edx
  5188.     addl    %edx, %eax
  5189.     andl    $1048575, %eax
  5190.     subl    %edx, %eax
  5191.     movl    %eax, %ecx
  5192.     movl    $1508246403, %edx
  5193.     movl    %ecx, %eax
  5194.     imull   %edx
  5195.     sarl    $13, %edx
  5196.     movl    %ecx, %eax
  5197.     sarl    $31, %eax
  5198.     movl    %edx, %ecx
  5199.     subl    %eax, %ecx
  5200.     movl    $1431655766, %edx
  5201.     movl    %ecx, %eax
  5202.     imull   %edx
  5203.     movl    %ecx, %eax
  5204.     sarl    $31, %eax
  5205.     subl    %eax, %edx
  5206.     movl    %edx, %eax
  5207.     addl    %eax, %eax
  5208.     addl    %edx, %eax
  5209.     movl    %ecx, %edx
  5210.     subl    %eax, %edx
  5211.     testl   %edx, %edx
  5212.     jne .L32
  5213. .L54:
  5214.     movl    -36(%rbp), %eax
  5215.     leal    1048575(%rax), %edx
  5216.     testl   %eax, %eax
  5217.     cmovs   %edx, %eax
  5218.     sarl    $20, %eax
  5219.     movl    %eax, %edx
  5220.     sarl    $31, %edx
  5221.     shrl    $30, %edx
  5222.     addl    %edx, %eax
  5223.     andl    $3, %eax
  5224.     subl    %edx, %eax
  5225.     cmpl    $2, %eax
  5226.     jne .L55
  5227.     movl    -36(%rbp), %eax
  5228.     leal    4194303(%rax), %edx
  5229.     testl   %eax, %eax
  5230.     cmovs   %edx, %eax
  5231.     sarl    $22, %eax
  5232.     movl    %eax, %edx
  5233.     sarl    $31, %edx
  5234.     shrl    $30, %edx
  5235.     addl    %edx, %eax
  5236.     andl    $3, %eax
  5237.     subl    %edx, %eax
  5238.     cmpl    $1, %eax
  5239.     jne .L55
  5240.     movl    -36(%rbp), %eax
  5241.     movl    %eax, %edx
  5242.     sarl    $31, %edx
  5243.     shrl    $12, %edx
  5244.     addl    %edx, %eax
  5245.     andl    $1048575, %eax
  5246.     subl    %edx, %eax
  5247.     movl    %eax, %ecx
  5248.     movl    $502748801, %edx
  5249.     movl    %ecx, %eax
  5250.     imull   %edx
  5251.     sarl    $13, %edx
  5252.     movl    %ecx, %eax
  5253.     sarl    $31, %eax
  5254.     movl    %edx, %ecx
  5255.     subl    %eax, %ecx
  5256.     movl    $1431655766, %edx
  5257.     movl    %ecx, %eax
  5258.     imull   %edx
  5259.     movl    %ecx, %eax
  5260.     sarl    $31, %eax
  5261.     subl    %eax, %edx
  5262.     movl    %edx, %eax
  5263.     addl    %eax, %eax
  5264.     addl    %edx, %eax
  5265.     movl    %ecx, %edx
  5266.     subl    %eax, %edx
  5267.     testl   %edx, %edx
  5268.     jne .L32
  5269. .L55:
  5270.     movl    -36(%rbp), %eax
  5271.     leal    1048575(%rax), %edx
  5272.     testl   %eax, %eax
  5273.     cmovs   %edx, %eax
  5274.     sarl    $20, %eax
  5275.     movl    %eax, %edx
  5276.     sarl    $31, %edx
  5277.     shrl    $30, %edx
  5278.     addl    %edx, %eax
  5279.     andl    $3, %eax
  5280.     subl    %edx, %eax
  5281.     cmpl    $2, %eax
  5282.     jne .L106
  5283.     movl    -36(%rbp), %eax
  5284.     leal    4194303(%rax), %edx
  5285.     testl   %eax, %eax
  5286.     cmovs   %edx, %eax
  5287.     sarl    $22, %eax
  5288.     movl    %eax, %edx
  5289.     sarl    $31, %edx
  5290.     shrl    $30, %edx
  5291.     addl    %edx, %eax
  5292.     andl    $3, %eax
  5293.     subl    %edx, %eax
  5294.     cmpl    $2, %eax
  5295.     jne .L106
  5296.     movl    -36(%rbp), %eax
  5297.     movl    %eax, %edx
  5298.     sarl    $31, %edx
  5299.     shrl    $12, %edx
  5300.     addl    %edx, %eax
  5301.     andl    $1048575, %eax
  5302.     subl    %edx, %eax
  5303.     movl    %eax, %ecx
  5304.     movl    $-1613640357, %edx
  5305.     movl    %ecx, %eax
  5306.     imull   %edx
  5307.     leal    (%rdx,%rcx), %eax
  5308.     movl    %eax, %edx
  5309.     sarl    $17, %edx
  5310.     movl    %ecx, %eax
  5311.     sarl    $31, %eax
  5312.     movl    %edx, %ecx
  5313.     subl    %eax, %ecx
  5314.     movl    $1431655766, %edx
  5315.     movl    %ecx, %eax
  5316.     imull   %edx
  5317.     movl    %ecx, %eax
  5318.     sarl    $31, %eax
  5319.     subl    %eax, %edx
  5320.     movl    %edx, %eax
  5321.     addl    %eax, %eax
  5322.     addl    %edx, %eax
  5323.     movl    %ecx, %edx
  5324.     subl    %eax, %edx
  5325.     testl   %edx, %edx
  5326.     jne .L32
  5327.     jmp .L106
  5328. .L33:
  5329.     movl    -36(%rbp), %eax
  5330.     movl    %eax, %edx
  5331.     sarl    $31, %edx
  5332.     shrl    $12, %edx
  5333.     addl    %edx, %eax
  5334.     andl    $1048575, %eax
  5335.     subl    %edx, %eax
  5336.     movl    %eax, -36(%rbp)
  5337.     call    rand
  5338.     cvtsi2sd    %eax, %xmm0
  5339.     cvttsd2si   %xmm0, %eax
  5340.     cvtsi2sd    %eax, %xmm0
  5341.     movsd   .LC12(%rip), %xmm1
  5342.     divsd   %xmm1, %xmm0
  5343.     movsd   .LC13(%rip), %xmm1
  5344.     mulsd   %xmm1, %xmm0
  5345.     cvttsd2si   %xmm0, %eax
  5346.     movl    %eax, -40(%rbp)
  5347.     movl    -40(%rbp), %eax
  5348.     movl    %eax, %edx
  5349.     sall    $20, %edx
  5350.     movl    -36(%rbp), %eax
  5351.     addl    %edx, %eax
  5352.     movl    %eax, -36(%rbp)
  5353.     call    rand
  5354.     cvtsi2sd    %eax, %xmm0
  5355.     cvttsd2si   %xmm0, %eax
  5356.     cvtsi2sd    %eax, %xmm0
  5357.     movsd   .LC12(%rip), %xmm1
  5358.     divsd   %xmm1, %xmm0
  5359.     movsd   .LC13(%rip), %xmm1
  5360.     mulsd   %xmm1, %xmm0
  5361.     cvttsd2si   %xmm0, %eax
  5362.     movl    %eax, -40(%rbp)
  5363.     movl    -40(%rbp), %eax
  5364.     movl    %eax, %edx
  5365.     sall    $22, %edx
  5366.     movl    -36(%rbp), %eax
  5367.     addl    %edx, %eax
  5368.     movl    %eax, -36(%rbp)
  5369.     movl    -36(%rbp), %eax
  5370.     leal    1048575(%rax), %edx
  5371.     testl   %eax, %eax
  5372.     cmovs   %edx, %eax
  5373.     sarl    $20, %eax
  5374.     movl    %eax, %edx
  5375.     sarl    $31, %edx
  5376.     shrl    $30, %edx
  5377.     addl    %edx, %eax
  5378.     andl    $3, %eax
  5379.     subl    %edx, %eax
  5380.     cmpl    $3, %eax
  5381.     je  .L33
  5382.     movl    -36(%rbp), %eax
  5383.     leal    4194303(%rax), %edx
  5384.     testl   %eax, %eax
  5385.     cmovs   %edx, %eax
  5386.     sarl    $22, %eax
  5387.     movl    %eax, %edx
  5388.     sarl    $31, %edx
  5389.     shrl    $30, %edx
  5390.     addl    %edx, %eax
  5391.     andl    $3, %eax
  5392.     subl    %edx, %eax
  5393.     cmpl    $3, %eax
  5394.     je  .L33
  5395.     movl    -36(%rbp), %eax
  5396.     leal    1048575(%rax), %edx
  5397.     testl   %eax, %eax
  5398.     cmovs   %edx, %eax
  5399.     sarl    $20, %eax
  5400.     andl    $3, %eax
  5401.     testl   %eax, %eax
  5402.     jne .L58
  5403.     movl    -36(%rbp), %eax
  5404.     leal    4194303(%rax), %edx
  5405.     testl   %eax, %eax
  5406.     cmovs   %edx, %eax
  5407.     sarl    $22, %eax
  5408.     andl    $3, %eax
  5409.     testl   %eax, %eax
  5410.     jne .L58
  5411.     movl    -36(%rbp), %eax
  5412.     movl    %eax, %edx
  5413.     sarl    $31, %edx
  5414.     shrl    $12, %edx
  5415.     addl    %edx, %eax
  5416.     andl    $1048575, %eax
  5417.     subl    %edx, %eax
  5418.     leal    31(%rax), %edx
  5419.     testl   %eax, %eax
  5420.     cmovs   %edx, %eax
  5421.     sarl    $5, %eax
  5422.     movl    %eax, %ecx
  5423.     movl    $1431655766, %edx
  5424.     movl    %ecx, %eax
  5425.     imull   %edx
  5426.     movl    %ecx, %eax
  5427.     sarl    $31, %eax
  5428.     subl    %eax, %edx
  5429.     movl    %edx, %eax
  5430.     addl    %eax, %eax
  5431.     addl    %edx, %eax
  5432.     movl    %ecx, %edx
  5433.     subl    %eax, %edx
  5434.     testl   %edx, %edx
  5435.     jne .L33
  5436. .L58:
  5437.     movl    -36(%rbp), %eax
  5438.     leal    1048575(%rax), %edx
  5439.     testl   %eax, %eax
  5440.     cmovs   %edx, %eax
  5441.     sarl    $20, %eax
  5442.     andl    $3, %eax
  5443.     testl   %eax, %eax
  5444.     jne .L59
  5445.     movl    -36(%rbp), %eax
  5446.     leal    4194303(%rax), %edx
  5447.     testl   %eax, %eax
  5448.     cmovs   %edx, %eax
  5449.     sarl    $22, %eax
  5450.     movl    %eax, %edx
  5451.     sarl    $31, %edx
  5452.     shrl    $30, %edx
  5453.     addl    %edx, %eax
  5454.     andl    $3, %eax
  5455.     subl    %edx, %eax
  5456.     cmpl    $1, %eax
  5457.     jne .L59
  5458.     movl    -36(%rbp), %eax
  5459.     movl    %eax, %edx
  5460.     sarl    $31, %edx
  5461.     shrl    $12, %edx
  5462.     addl    %edx, %eax
  5463.     andl    $1048575, %eax
  5464.     subl    %edx, %eax
  5465.     movl    %eax, %ecx
  5466.     movl    $715827883, %edx
  5467.     movl    %ecx, %eax
  5468.     imull   %edx
  5469.     sarl    $4, %edx
  5470.     movl    %ecx, %eax
  5471.     sarl    $31, %eax
  5472.     movl    %edx, %ecx
  5473.     subl    %eax, %ecx
  5474.     movl    $1431655766, %edx
  5475.     movl    %ecx, %eax
  5476.     imull   %edx
  5477.     movl    %ecx, %eax
  5478.     sarl    $31, %eax
  5479.     subl    %eax, %edx
  5480.     movl    %edx, %eax
  5481.     addl    %eax, %eax
  5482.     addl    %edx, %eax
  5483.     movl    %ecx, %edx
  5484.     subl    %eax, %edx
  5485.     testl   %edx, %edx
  5486.     jne .L33
  5487. .L59:
  5488.     movl    -36(%rbp), %eax
  5489.     leal    1048575(%rax), %edx
  5490.     testl   %eax, %eax
  5491.     cmovs   %edx, %eax
  5492.     sarl    $20, %eax
  5493.     andl    $3, %eax
  5494.     testl   %eax, %eax
  5495.     jne .L60
  5496.     movl    -36(%rbp), %eax
  5497.     leal    4194303(%rax), %edx
  5498.     testl   %eax, %eax
  5499.     cmovs   %edx, %eax
  5500.     sarl    $22, %eax
  5501.     movl    %eax, %edx
  5502.     sarl    $31, %edx
  5503.     shrl    $30, %edx
  5504.     addl    %edx, %eax
  5505.     andl    $3, %eax
  5506.     subl    %edx, %eax
  5507.     cmpl    $2, %eax
  5508.     jne .L60
  5509.     movl    -36(%rbp), %eax
  5510.     movl    %eax, %edx
  5511.     sarl    $31, %edx
  5512.     shrl    $12, %edx
  5513.     addl    %edx, %eax
  5514.     andl    $1048575, %eax
  5515.     subl    %edx, %eax
  5516.     movl    %eax, %ecx
  5517.     movl    $954437177, %edx
  5518.     movl    %ecx, %eax
  5519.     imull   %edx
  5520.     sarl    $6, %edx
  5521.     movl    %ecx, %eax
  5522.     sarl    $31, %eax
  5523.     movl    %edx, %ecx
  5524.     subl    %eax, %ecx
  5525.     movl    $1431655766, %edx
  5526.     movl    %ecx, %eax
  5527.     imull   %edx
  5528.     movl    %ecx, %eax
  5529.     sarl    $31, %eax
  5530.     subl    %eax, %edx
  5531.     movl    %edx, %eax
  5532.     addl    %eax, %eax
  5533.     addl    %edx, %eax
  5534.     movl    %ecx, %edx
  5535.     subl    %eax, %edx
  5536.     testl   %edx, %edx
  5537.     jne .L33
  5538. .L60:
  5539.     movl    -36(%rbp), %eax
  5540.     leal    1048575(%rax), %edx
  5541.     testl   %eax, %eax
  5542.     cmovs   %edx, %eax
  5543.     sarl    $20, %eax
  5544.     movl    %eax, %edx
  5545.     sarl    $31, %edx
  5546.     shrl    $30, %edx
  5547.     addl    %edx, %eax
  5548.     andl    $3, %eax
  5549.     subl    %edx, %eax
  5550.     cmpl    $1, %eax
  5551.     jne .L61
  5552.     movl    -36(%rbp), %eax
  5553.     leal    4194303(%rax), %edx
  5554.     testl   %eax, %eax
  5555.     cmovs   %edx, %eax
  5556.     sarl    $22, %eax
  5557.     andl    $3, %eax
  5558.     testl   %eax, %eax
  5559.     jne .L61
  5560.     movl    -36(%rbp), %eax
  5561.     movl    %eax, %edx
  5562.     sarl    $31, %edx
  5563.     shrl    $12, %edx
  5564.     addl    %edx, %eax
  5565.     andl    $1048575, %eax
  5566.     subl    %edx, %eax
  5567.     movl    %eax, %ecx
  5568.     movl    $1272582903, %edx
  5569.     movl    %ecx, %eax
  5570.     imull   %edx
  5571.     sarl    $8, %edx
  5572.     movl    %ecx, %eax
  5573.     sarl    $31, %eax
  5574.     movl    %edx, %ecx
  5575.     subl    %eax, %ecx
  5576.     movl    $1431655766, %edx
  5577.     movl    %ecx, %eax
  5578.     imull   %edx
  5579.     movl    %ecx, %eax
  5580.     sarl    $31, %eax
  5581.     subl    %eax, %edx
  5582.     movl    %edx, %eax
  5583.     addl    %eax, %eax
  5584.     addl    %edx, %eax
  5585.     movl    %ecx, %edx
  5586.     subl    %eax, %edx
  5587.     testl   %edx, %edx
  5588.     jne .L33
  5589. .L61:
  5590.     movl    -36(%rbp), %eax
  5591.     leal    1048575(%rax), %edx
  5592.     testl   %eax, %eax
  5593.     cmovs   %edx, %eax
  5594.     sarl    $20, %eax
  5595.     movl    %eax, %edx
  5596.     sarl    $31, %edx
  5597.     shrl    $30, %edx
  5598.     addl    %edx, %eax
  5599.     andl    $3, %eax
  5600.     subl    %edx, %eax
  5601.     cmpl    $1, %eax
  5602.     jne .L62
  5603.     movl    -36(%rbp), %eax
  5604.     leal    4194303(%rax), %edx
  5605.     testl   %eax, %eax
  5606.     cmovs   %edx, %eax
  5607.     sarl    $22, %eax
  5608.     movl    %eax, %edx
  5609.     sarl    $31, %edx
  5610.     shrl    $30, %edx
  5611.     addl    %edx, %eax
  5612.     andl    $3, %eax
  5613.     subl    %edx, %eax
  5614.     cmpl    $1, %eax
  5615.     jne .L62
  5616.     movl    -36(%rbp), %eax
  5617.     movl    %eax, %edx
  5618.     sarl    $31, %edx
  5619.     shrl    $12, %edx
  5620.     addl    %edx, %eax
  5621.     andl    $1048575, %eax
  5622.     subl    %edx, %eax
  5623.     movl    %eax, %ecx
  5624.     movl    $424194301, %edx
  5625.     movl    %ecx, %eax
  5626.     imull   %edx
  5627.     sarl    $8, %edx
  5628.     movl    %ecx, %eax
  5629.     sarl    $31, %eax
  5630.     movl    %edx, %ecx
  5631.     subl    %eax, %ecx
  5632.     movl    $1431655766, %edx
  5633.     movl    %ecx, %eax
  5634.     imull   %edx
  5635.     movl    %ecx, %eax
  5636.     sarl    $31, %eax
  5637.     subl    %eax, %edx
  5638.     movl    %edx, %eax
  5639.     addl    %eax, %eax
  5640.     addl    %edx, %eax
  5641.     movl    %ecx, %edx
  5642.     subl    %eax, %edx
  5643.     testl   %edx, %edx
  5644.     jne .L33
  5645. .L62:
  5646.     movl    -36(%rbp), %eax
  5647.     leal    1048575(%rax), %edx
  5648.     testl   %eax, %eax
  5649.     cmovs   %edx, %eax
  5650.     sarl    $20, %eax
  5651.     movl    %eax, %edx
  5652.     sarl    $31, %edx
  5653.     shrl    $30, %edx
  5654.     addl    %edx, %eax
  5655.     andl    $3, %eax
  5656.     subl    %edx, %eax
  5657.     cmpl    $1, %eax
  5658.     jne .L63
  5659.     movl    -36(%rbp), %eax
  5660.     leal    4194303(%rax), %edx
  5661.     testl   %eax, %eax
  5662.     cmovs   %edx, %eax
  5663.     sarl    $22, %eax
  5664.     movl    %eax, %edx
  5665.     sarl    $31, %edx
  5666.     shrl    $30, %edx
  5667.     addl    %edx, %eax
  5668.     andl    $3, %eax
  5669.     subl    %edx, %eax
  5670.     cmpl    $2, %eax
  5671.     jne .L63
  5672.     movl    -36(%rbp), %eax
  5673.     movl    %eax, %edx
  5674.     sarl    $31, %edx
  5675.     shrl    $12, %edx
  5676.     addl    %edx, %eax
  5677.     andl    $1048575, %eax
  5678.     subl    %edx, %eax
  5679.     movl    %eax, %ecx
  5680.     movl    $-2032597691, %edx
  5681.     movl    %ecx, %eax
  5682.     imull   %edx
  5683.     leal    (%rdx,%rcx), %eax
  5684.     movl    %eax, %edx
  5685.     sarl    $12, %edx
  5686.     movl    %ecx, %eax
  5687.     sarl    $31, %eax
  5688.     movl    %edx, %ecx
  5689.     subl    %eax, %ecx
  5690.     movl    $1431655766, %edx
  5691.     movl    %ecx, %eax
  5692.     imull   %edx
  5693.     movl    %ecx, %eax
  5694.     sarl    $31, %eax
  5695.     subl    %eax, %edx
  5696.     movl    %edx, %eax
  5697.     addl    %eax, %eax
  5698.     addl    %edx, %eax
  5699.     movl    %ecx, %edx
  5700.     subl    %eax, %edx
  5701.     testl   %edx, %edx
  5702.     jne .L33
  5703. .L63:
  5704.     movl    -36(%rbp), %eax
  5705.     leal    1048575(%rax), %edx
  5706.     testl   %eax, %eax
  5707.     cmovs   %edx, %eax
  5708.     sarl    $20, %eax
  5709.     movl    %eax, %edx
  5710.     sarl    $31, %edx
  5711.     shrl    $30, %edx
  5712.     addl    %edx, %eax
  5713.     andl    $3, %eax
  5714.     subl    %edx, %eax
  5715.     cmpl    $2, %eax
  5716.     jne .L64
  5717.     movl    -36(%rbp), %eax
  5718.     leal    4194303(%rax), %edx
  5719.     testl   %eax, %eax
  5720.     cmovs   %edx, %eax
  5721.     sarl    $22, %eax
  5722.     andl    $3, %eax
  5723.     testl   %eax, %eax
  5724.     jne .L64
  5725.     movl    -36(%rbp), %eax
  5726.     movl    %eax, %edx
  5727.     sarl    $31, %edx
  5728.     shrl    $12, %edx
  5729.     addl    %edx, %eax
  5730.     andl    $1048575, %eax
  5731.     subl    %edx, %eax
  5732.     movl    %eax, %ecx
  5733.     movl    $1508246403, %edx
  5734.     movl    %ecx, %eax
  5735.     imull   %edx
  5736.     sarl    $13, %edx
  5737.     movl    %ecx, %eax
  5738.     sarl    $31, %eax
  5739.     movl    %edx, %ecx
  5740.     subl    %eax, %ecx
  5741.     movl    $1431655766, %edx
  5742.     movl    %ecx, %eax
  5743.     imull   %edx
  5744.     movl    %ecx, %eax
  5745.     sarl    $31, %eax
  5746.     subl    %eax, %edx
  5747.     movl    %edx, %eax
  5748.     addl    %eax, %eax
  5749.     addl    %edx, %eax
  5750.     movl    %ecx, %edx
  5751.     subl    %eax, %edx
  5752.     testl   %edx, %edx
  5753.     jne .L33
  5754. .L64:
  5755.     movl    -36(%rbp), %eax
  5756.     leal    1048575(%rax), %edx
  5757.     testl   %eax, %eax
  5758.     cmovs   %edx, %eax
  5759.     sarl    $20, %eax
  5760.     movl    %eax, %edx
  5761.     sarl    $31, %edx
  5762.     shrl    $30, %edx
  5763.     addl    %edx, %eax
  5764.     andl    $3, %eax
  5765.     subl    %edx, %eax
  5766.     cmpl    $2, %eax
  5767.     jne .L65
  5768.     movl    -36(%rbp), %eax
  5769.     leal    4194303(%rax), %edx
  5770.     testl   %eax, %eax
  5771.     cmovs   %edx, %eax
  5772.     sarl    $22, %eax
  5773.     movl    %eax, %edx
  5774.     sarl    $31, %edx
  5775.     shrl    $30, %edx
  5776.     addl    %edx, %eax
  5777.     andl    $3, %eax
  5778.     subl    %edx, %eax
  5779.     cmpl    $1, %eax
  5780.     jne .L65
  5781.     movl    -36(%rbp), %eax
  5782.     movl    %eax, %edx
  5783.     sarl    $31, %edx
  5784.     shrl    $12, %edx
  5785.     addl    %edx, %eax
  5786.     andl    $1048575, %eax
  5787.     subl    %edx, %eax
  5788.     movl    %eax, %ecx
  5789.     movl    $502748801, %edx
  5790.     movl    %ecx, %eax
  5791.     imull   %edx
  5792.     sarl    $13, %edx
  5793.     movl    %ecx, %eax
  5794.     sarl    $31, %eax
  5795.     movl    %edx, %ecx
  5796.     subl    %eax, %ecx
  5797.     movl    $1431655766, %edx
  5798.     movl    %ecx, %eax
  5799.     imull   %edx
  5800.     movl    %ecx, %eax
  5801.     sarl    $31, %eax
  5802.     subl    %eax, %edx
  5803.     movl    %edx, %eax
  5804.     addl    %eax, %eax
  5805.     addl    %edx, %eax
  5806.     movl    %ecx, %edx
  5807.     subl    %eax, %edx
  5808.     testl   %edx, %edx
  5809.     jne .L33
  5810. .L65:
  5811.     movl    -36(%rbp), %eax
  5812.     leal    1048575(%rax), %edx
  5813.     testl   %eax, %eax
  5814.     cmovs   %edx, %eax
  5815.     sarl    $20, %eax
  5816.     movl    %eax, %edx
  5817.     sarl    $31, %edx
  5818.     shrl    $30, %edx
  5819.     addl    %edx, %eax
  5820.     andl    $3, %eax
  5821.     subl    %edx, %eax
  5822.     cmpl    $2, %eax
  5823.     jne .L57
  5824.     movl    -36(%rbp), %eax
  5825.     leal    4194303(%rax), %edx
  5826.     testl   %eax, %eax
  5827.     cmovs   %edx, %eax
  5828.     sarl    $22, %eax
  5829.     movl    %eax, %edx
  5830.     sarl    $31, %edx
  5831.     shrl    $30, %edx
  5832.     addl    %edx, %eax
  5833.     andl    $3, %eax
  5834.     subl    %edx, %eax
  5835.     cmpl    $2, %eax
  5836.     jne .L57
  5837.     movl    -36(%rbp), %eax
  5838.     movl    %eax, %edx
  5839.     sarl    $31, %edx
  5840.     shrl    $12, %edx
  5841.     addl    %edx, %eax
  5842.     andl    $1048575, %eax
  5843.     subl    %edx, %eax
  5844.     movl    %eax, %ecx
  5845.     movl    $-1613640357, %edx
  5846.     movl    %ecx, %eax
  5847.     imull   %edx
  5848.     leal    (%rdx,%rcx), %eax
  5849.     movl    %eax, %edx
  5850.     sarl    $17, %edx
  5851.     movl    %ecx, %eax
  5852.     sarl    $31, %eax
  5853.     movl    %edx, %ecx
  5854.     subl    %eax, %ecx
  5855.     movl    $1431655766, %edx
  5856.     movl    %ecx, %eax
  5857.     imull   %edx
  5858.     movl    %ecx, %eax
  5859.     sarl    $31, %eax
  5860.     subl    %eax, %edx
  5861.     movl    %edx, %eax
  5862.     addl    %eax, %eax
  5863.     addl    %edx, %eax
  5864.     movl    %ecx, %edx
  5865.     subl    %eax, %edx
  5866.     testl   %edx, %edx
  5867.     jne .L33
  5868.     jmp .L57
  5869. .L106:
  5870.     nop
  5871. .L57:
  5872.     movl    -36(%rbp), %eax
  5873.     leal    1048575(%rax), %edx
  5874.     testl   %eax, %eax
  5875.     cmovs   %edx, %eax
  5876.     sarl    $20, %eax
  5877.     andl    $3, %eax
  5878.     testl   %eax, %eax
  5879.     jne .L66
  5880.     movl    -36(%rbp), %eax
  5881.     leal    4194303(%rax), %edx
  5882.     testl   %eax, %eax
  5883.     cmovs   %edx, %eax
  5884.     sarl    $22, %eax
  5885.     andl    $3, %eax
  5886.     testl   %eax, %eax
  5887.     jne .L66
  5888.     movl    -36(%rbp), %eax
  5889.     leal    7(%rax), %edx
  5890.     testl   %eax, %eax
  5891.     cmovs   %edx, %eax
  5892.     sarl    $3, %eax
  5893.     movl    %eax, %edx
  5894.     sarl    $31, %edx
  5895.     shrl    $31, %edx
  5896.     addl    %edx, %eax
  5897.     andl    $1, %eax
  5898.     subl    %edx, %eax
  5899.     addl    $1, %eax
  5900.     movl    %eax, %edx
  5901.     sall    $5, %edx
  5902.     movl    -36(%rbp), %eax
  5903.     addl    %edx, %eax
  5904.     movl    %eax, -36(%rbp)
  5905.     jmp .L67
  5906. .L66:
  5907.     movl    -36(%rbp), %eax
  5908.     leal    1048575(%rax), %edx
  5909.     testl   %eax, %eax
  5910.     cmovs   %edx, %eax
  5911.     sarl    $20, %eax
  5912.     andl    $3, %eax
  5913.     testl   %eax, %eax
  5914.     jne .L68
  5915.     movl    -36(%rbp), %eax
  5916.     leal    4194303(%rax), %edx
  5917.     testl   %eax, %eax
  5918.     cmovs   %edx, %eax
  5919.     sarl    $22, %eax
  5920.     movl    %eax, %edx
  5921.     sarl    $31, %edx
  5922.     shrl    $30, %edx
  5923.     addl    %edx, %eax
  5924.     andl    $3, %eax
  5925.     subl    %edx, %eax
  5926.     cmpl    $1, %eax
  5927.     jne .L68
  5928.     movl    -36(%rbp), %eax
  5929.     leal    7(%rax), %edx
  5930.     testl   %eax, %eax
  5931.     cmovs   %edx, %eax
  5932.     sarl    $3, %eax
  5933.     movl    %eax, %edx
  5934.     sarl    $31, %edx
  5935.     shrl    $31, %edx
  5936.     addl    %edx, %eax
  5937.     andl    $1, %eax
  5938.     subl    %edx, %eax
  5939.     leal    1(%rax), %edx
  5940.     movl    %edx, %eax
  5941.     addl    %eax, %eax
  5942.     addl    %edx, %eax
  5943.     sall    $5, %eax
  5944.     movl    %eax, %edx
  5945.     movl    -36(%rbp), %eax
  5946.     addl    %edx, %eax
  5947.     movl    %eax, -36(%rbp)
  5948.     jmp .L67
  5949. .L68:
  5950.     movl    -36(%rbp), %eax
  5951.     leal    1048575(%rax), %edx
  5952.     testl   %eax, %eax
  5953.     cmovs   %edx, %eax
  5954.     sarl    $20, %eax
  5955.     andl    $3, %eax
  5956.     testl   %eax, %eax
  5957.     jne .L69
  5958.     movl    -36(%rbp), %eax
  5959.     leal    4194303(%rax), %edx
  5960.     testl   %eax, %eax
  5961.     cmovs   %edx, %eax
  5962.     sarl    $22, %eax
  5963.     movl    %eax, %edx
  5964.     sarl    $31, %edx
  5965.     shrl    $30, %edx
  5966.     addl    %edx, %eax
  5967.     andl    $3, %eax
  5968.     subl    %edx, %eax
  5969.     cmpl    $2, %eax
  5970.     jne .L69
  5971.     movl    -36(%rbp), %eax
  5972.     leal    7(%rax), %edx
  5973.     testl   %eax, %eax
  5974.     cmovs   %edx, %eax
  5975.     sarl    $3, %eax
  5976.     movl    %eax, %edx
  5977.     sarl    $31, %edx
  5978.     shrl    $31, %edx
  5979.     addl    %edx, %eax
  5980.     andl    $1, %eax
  5981.     subl    %edx, %eax
  5982.     leal    1(%rax), %edx
  5983.     movl    %edx, %eax
  5984.     sall    $3, %eax
  5985.     addl    %edx, %eax
  5986.     sall    $5, %eax
  5987.     movl    %eax, %edx
  5988.     movl    -36(%rbp), %eax
  5989.     addl    %edx, %eax
  5990.     movl    %eax, -36(%rbp)
  5991.     jmp .L67
  5992. .L69:
  5993.     movl    -36(%rbp), %eax
  5994.     leal    1048575(%rax), %edx
  5995.     testl   %eax, %eax
  5996.     cmovs   %edx, %eax
  5997.     sarl    $20, %eax
  5998.     movl    %eax, %edx
  5999.     sarl    $31, %edx
  6000.     shrl    $30, %edx
  6001.     addl    %edx, %eax
  6002.     andl    $3, %eax
  6003.     subl    %edx, %eax
  6004.     cmpl    $1, %eax
  6005.     jne .L70
  6006.     movl    -36(%rbp), %eax
  6007.     leal    4194303(%rax), %edx
  6008.     testl   %eax, %eax
  6009.     cmovs   %edx, %eax
  6010.     sarl    $22, %eax
  6011.     andl    $3, %eax
  6012.     testl   %eax, %eax
  6013.     jne .L70
  6014.     movl    -36(%rbp), %eax
  6015.     leal    7(%rax), %edx
  6016.     testl   %eax, %eax
  6017.     cmovs   %edx, %eax
  6018.     sarl    $3, %eax
  6019.     movl    %eax, %edx
  6020.     sarl    $31, %edx
  6021.     shrl    $31, %edx
  6022.     addl    %edx, %eax
  6023.     andl    $1, %eax
  6024.     subl    %edx, %eax
  6025.     addl    $1, %eax
  6026.     imull   $864, %eax, %edx
  6027.     movl    -36(%rbp), %eax
  6028.     addl    %edx, %eax
  6029.     movl    %eax, -36(%rbp)
  6030.     jmp .L67
  6031. .L70:
  6032.     movl    -36(%rbp), %eax
  6033.     leal    1048575(%rax), %edx
  6034.     testl   %eax, %eax
  6035.     cmovs   %edx, %eax
  6036.     sarl    $20, %eax
  6037.     movl    %eax, %edx
  6038.     sarl    $31, %edx
  6039.     shrl    $30, %edx
  6040.     addl    %edx, %eax
  6041.     andl    $3, %eax
  6042.     subl    %edx, %eax
  6043.     cmpl    $1, %eax
  6044.     jne .L71
  6045.     movl    -36(%rbp), %eax
  6046.     leal    4194303(%rax), %edx
  6047.     testl   %eax, %eax
  6048.     cmovs   %edx, %eax
  6049.     sarl    $22, %eax
  6050.     movl    %eax, %edx
  6051.     sarl    $31, %edx
  6052.     shrl    $30, %edx
  6053.     addl    %edx, %eax
  6054.     andl    $3, %eax
  6055.     subl    %edx, %eax
  6056.     cmpl    $1, %eax
  6057.     jne .L71
  6058.     movl    -36(%rbp), %eax
  6059.     leal    7(%rax), %edx
  6060.     testl   %eax, %eax
  6061.     cmovs   %edx, %eax
  6062.     sarl    $3, %eax
  6063.     movl    %eax, %edx
  6064.     sarl    $31, %edx
  6065.     shrl    $31, %edx
  6066.     addl    %edx, %eax
  6067.     andl    $1, %eax
  6068.     subl    %edx, %eax
  6069.     addl    $1, %eax
  6070.     imull   $2592, %eax, %edx
  6071.     movl    -36(%rbp), %eax
  6072.     addl    %edx, %eax
  6073.     movl    %eax, -36(%rbp)
  6074.     jmp .L67
  6075. .L71:
  6076.     movl    -36(%rbp), %eax
  6077.     leal    1048575(%rax), %edx
  6078.     testl   %eax, %eax
  6079.     cmovs   %edx, %eax
  6080.     sarl    $20, %eax
  6081.     movl    %eax, %edx
  6082.     sarl    $31, %edx
  6083.     shrl    $30, %edx
  6084.     addl    %edx, %eax
  6085.     andl    $3, %eax
  6086.     subl    %edx, %eax
  6087.     cmpl    $1, %eax
  6088.     jne .L72
  6089.     movl    -36(%rbp), %eax
  6090.     leal    4194303(%rax), %edx
  6091.     testl   %eax, %eax
  6092.     cmovs   %edx, %eax
  6093.     sarl    $22, %eax
  6094.     movl    %eax, %edx
  6095.     sarl    $31, %edx
  6096.     shrl    $30, %edx
  6097.     addl    %edx, %eax
  6098.     andl    $3, %eax
  6099.     subl    %edx, %eax
  6100.     cmpl    $2, %eax
  6101.     jne .L72
  6102.     movl    -36(%rbp), %eax
  6103.     leal    7(%rax), %edx
  6104.     testl   %eax, %eax
  6105.     cmovs   %edx, %eax
  6106.     sarl    $3, %eax
  6107.     movl    %eax, %edx
  6108.     sarl    $31, %edx
  6109.     shrl    $31, %edx
  6110.     addl    %edx, %eax
  6111.     andl    $1, %eax
  6112.     subl    %edx, %eax
  6113.     addl    $1, %eax
  6114.     imull   $7776, %eax, %edx
  6115.     movl    -36(%rbp), %eax
  6116.     addl    %edx, %eax
  6117.     movl    %eax, -36(%rbp)
  6118.     jmp .L67
  6119. .L72:
  6120.     movl    -36(%rbp), %eax
  6121.     leal    1048575(%rax), %edx
  6122.     testl   %eax, %eax
  6123.     cmovs   %edx, %eax
  6124.     sarl    $20, %eax
  6125.     movl    %eax, %edx
  6126.     sarl    $31, %edx
  6127.     shrl    $30, %edx
  6128.     addl    %edx, %eax
  6129.     andl    $3, %eax
  6130.     subl    %edx, %eax
  6131.     cmpl    $2, %eax
  6132.     jne .L73
  6133.     movl    -36(%rbp), %eax
  6134.     leal    4194303(%rax), %edx
  6135.     testl   %eax, %eax
  6136.     cmovs   %edx, %eax
  6137.     sarl    $22, %eax
  6138.     andl    $3, %eax
  6139.     testl   %eax, %eax
  6140.     jne .L73
  6141.     movl    -36(%rbp), %eax
  6142.     leal    7(%rax), %edx
  6143.     testl   %eax, %eax
  6144.     cmovs   %edx, %eax
  6145.     sarl    $3, %eax
  6146.     movl    %eax, %edx
  6147.     sarl    $31, %edx
  6148.     shrl    $31, %edx
  6149.     addl    %edx, %eax
  6150.     andl    $1, %eax
  6151.     subl    %edx, %eax
  6152.     addl    $1, %eax
  6153.     imull   $23328, %eax, %edx
  6154.     movl    -36(%rbp), %eax
  6155.     addl    %edx, %eax
  6156.     movl    %eax, -36(%rbp)
  6157.     jmp .L67
  6158. .L73:
  6159.     movl    -36(%rbp), %eax
  6160.     leal    1048575(%rax), %edx
  6161.     testl   %eax, %eax
  6162.     cmovs   %edx, %eax
  6163.     sarl    $20, %eax
  6164.     movl    %eax, %edx
  6165.     sarl    $31, %edx
  6166.     shrl    $30, %edx
  6167.     addl    %edx, %eax
  6168.     andl    $3, %eax
  6169.     subl    %edx, %eax
  6170.     cmpl    $2, %eax
  6171.     jne .L74
  6172.     movl    -36(%rbp), %eax
  6173.     leal    4194303(%rax), %edx
  6174.     testl   %eax, %eax
  6175.     cmovs   %edx, %eax
  6176.     sarl    $22, %eax
  6177.     movl    %eax, %edx
  6178.     sarl    $31, %edx
  6179.     shrl    $30, %edx
  6180.     addl    %edx, %eax
  6181.     andl    $3, %eax
  6182.     subl    %edx, %eax
  6183.     cmpl    $1, %eax
  6184.     jne .L74
  6185.     movl    -36(%rbp), %eax
  6186.     leal    7(%rax), %edx
  6187.     testl   %eax, %eax
  6188.     cmovs   %edx, %eax
  6189.     sarl    $3, %eax
  6190.     movl    %eax, %edx
  6191.     sarl    $31, %edx
  6192.     shrl    $31, %edx
  6193.     addl    %edx, %eax
  6194.     andl    $1, %eax
  6195.     subl    %edx, %eax
  6196.     addl    $1, %eax
  6197.     imull   $69984, %eax, %edx
  6198.     movl    -36(%rbp), %eax
  6199.     addl    %edx, %eax
  6200.     movl    %eax, -36(%rbp)
  6201.     jmp .L67
  6202. .L74:
  6203.     movl    -36(%rbp), %eax
  6204.     leal    7(%rax), %edx
  6205.     testl   %eax, %eax
  6206.     cmovs   %edx, %eax
  6207.     sarl    $3, %eax
  6208.     movl    %eax, %edx
  6209.     sarl    $31, %edx
  6210.     shrl    $31, %edx
  6211.     addl    %edx, %eax
  6212.     andl    $1, %eax
  6213.     subl    %edx, %eax
  6214.     addl    $1, %eax
  6215.     imull   $209952, %eax, %edx
  6216.     movl    -36(%rbp), %eax
  6217.     addl    %edx, %eax
  6218.     movl    %eax, -36(%rbp)
  6219. .L67:
  6220.     movl    -36(%rbp), %eax
  6221.     leal    7(%rax), %edx
  6222.     testl   %eax, %eax
  6223.     cmovs   %edx, %eax
  6224.     sarl    $3, %eax
  6225.     andl    $1, %eax
  6226.     testl   %eax, %eax
  6227.     jne .L75
  6228.     movl    -36(%rbp), %eax
  6229.     addl    $8, %eax
  6230.     movl    %eax, -36(%rbp)
  6231.     jmp .L76
  6232. .L75:
  6233.     movl    -36(%rbp), %eax
  6234.     subl    $8, %eax
  6235.     movl    %eax, -36(%rbp)
  6236. .L76:
  6237.     movl    $10, %edi
  6238.     call    putchar
  6239.     movl    -36(%rbp), %eax
  6240.     movl    %eax, %edx
  6241.     sarl    $31, %edx
  6242.     shrl    $12, %edx
  6243.     addl    %edx, %eax
  6244.     andl    $1048575, %eax
  6245.     subl    %edx, %eax
  6246.     leal    31(%rax), %edx
  6247.     testl   %eax, %eax
  6248.     cmovs   %edx, %eax
  6249.     sarl    $5, %eax
  6250.     movl    %eax, %ecx
  6251.     movl    $1431655766, %edx
  6252.     movl    %ecx, %eax
  6253.     imull   %edx
  6254.     movl    %ecx, %eax
  6255.     sarl    $31, %eax
  6256.     subl    %eax, %edx
  6257.     movl    %edx, %eax
  6258.     addl    %eax, %eax
  6259.     addl    %edx, %eax
  6260.     movl    %ecx, %edx
  6261.     subl    %eax, %edx
  6262.     testl   %edx, %edx
  6263.     jne .L77
  6264.     movl    $32, %edi
  6265.     call    putchar
  6266.     jmp .L78
  6267. .L77:
  6268.     movl    -36(%rbp), %eax
  6269.     movl    %eax, %edx
  6270.     sarl    $31, %edx
  6271.     shrl    $12, %edx
  6272.     addl    %edx, %eax
  6273.     andl    $1048575, %eax
  6274.     subl    %edx, %eax
  6275.     leal    31(%rax), %edx
  6276.     testl   %eax, %eax
  6277.     cmovs   %edx, %eax
  6278.     sarl    $5, %eax
  6279.     movl    %eax, %ecx
  6280.     movl    $1431655766, %edx
  6281.     movl    %ecx, %eax
  6282.     imull   %edx
  6283.     movl    %ecx, %eax
  6284.     sarl    $31, %eax
  6285.     subl    %eax, %edx
  6286.     movl    %edx, %eax
  6287.     addl    %eax, %eax
  6288.     addl    %edx, %eax
  6289.     movl    %ecx, %edx
  6290.     subl    %eax, %edx
  6291.     cmpl    $1, %edx
  6292.     jne .L79
  6293.     movl    $120, %edi
  6294.     call    putchar
  6295.     jmp .L78
  6296. .L79:
  6297.     movl    -36(%rbp), %eax
  6298.     movl    %eax, %edx
  6299.     sarl    $31, %edx
  6300.     shrl    $12, %edx
  6301.     addl    %edx, %eax
  6302.     andl    $1048575, %eax
  6303.     subl    %edx, %eax
  6304.     leal    31(%rax), %edx
  6305.     testl   %eax, %eax
  6306.     cmovs   %edx, %eax
  6307.     sarl    $5, %eax
  6308.     movl    %eax, %ecx
  6309.     movl    $1431655766, %edx
  6310.     movl    %ecx, %eax
  6311.     imull   %edx
  6312.     movl    %ecx, %eax
  6313.     sarl    $31, %eax
  6314.     subl    %eax, %edx
  6315.     movl    %edx, %eax
  6316.     addl    %eax, %eax
  6317.     addl    %edx, %eax
  6318.     movl    %ecx, %edx
  6319.     subl    %eax, %edx
  6320.     cmpl    $2, %edx
  6321.     jne .L78
  6322.     movl    $111, %edi
  6323.     call    putchar
  6324. .L78:
  6325.     movl    $124, %edi
  6326.     call    putchar
  6327.     movl    -36(%rbp), %eax
  6328.     movl    %eax, %edx
  6329.     sarl    $31, %edx
  6330.     shrl    $12, %edx
  6331.     addl    %edx, %eax
  6332.     andl    $1048575, %eax
  6333.     subl    %edx, %eax
  6334.     movl    %eax, %ecx
  6335.     movl    $715827883, %edx
  6336.     movl    %ecx, %eax
  6337.     imull   %edx
  6338.     sarl    $4, %edx
  6339.     movl    %ecx, %eax
  6340.     sarl    $31, %eax
  6341.     movl    %edx, %ecx
  6342.     subl    %eax, %ecx
  6343.     movl    $1431655766, %edx
  6344.     movl    %ecx, %eax
  6345.     imull   %edx
  6346.     movl    %ecx, %eax
  6347.     sarl    $31, %eax
  6348.     subl    %eax, %edx
  6349.     movl    %edx, %eax
  6350.     addl    %eax, %eax
  6351.     addl    %edx, %eax
  6352.     movl    %ecx, %edx
  6353.     subl    %eax, %edx
  6354.     testl   %edx, %edx
  6355.     jne .L80
  6356.     movl    $32, %edi
  6357.     call    putchar
  6358.     jmp .L81
  6359. .L80:
  6360.     movl    -36(%rbp), %eax
  6361.     movl    %eax, %edx
  6362.     sarl    $31, %edx
  6363.     shrl    $12, %edx
  6364.     addl    %edx, %eax
  6365.     andl    $1048575, %eax
  6366.     subl    %edx, %eax
  6367.     movl    %eax, %ecx
  6368.     movl    $715827883, %edx
  6369.     movl    %ecx, %eax
  6370.     imull   %edx
  6371.     sarl    $4, %edx
  6372.     movl    %ecx, %eax
  6373.     sarl    $31, %eax
  6374.     movl    %edx, %ecx
  6375.     subl    %eax, %ecx
  6376.     movl    $1431655766, %edx
  6377.     movl    %ecx, %eax
  6378.     imull   %edx
  6379.     movl    %ecx, %eax
  6380.     sarl    $31, %eax
  6381.     subl    %eax, %edx
  6382.     movl    %edx, %eax
  6383.     addl    %eax, %eax
  6384.     addl    %edx, %eax
  6385.     movl    %ecx, %edx
  6386.     subl    %eax, %edx
  6387.     cmpl    $1, %edx
  6388.     jne .L82
  6389.     movl    $120, %edi
  6390.     call    putchar
  6391.     jmp .L81
  6392. .L82:
  6393.     movl    -36(%rbp), %eax
  6394.     movl    %eax, %edx
  6395.     sarl    $31, %edx
  6396.     shrl    $12, %edx
  6397.     addl    %edx, %eax
  6398.     andl    $1048575, %eax
  6399.     subl    %edx, %eax
  6400.     movl    %eax, %ecx
  6401.     movl    $715827883, %edx
  6402.     movl    %ecx, %eax
  6403.     imull   %edx
  6404.     sarl    $4, %edx
  6405.     movl    %ecx, %eax
  6406.     sarl    $31, %eax
  6407.     movl    %edx, %ecx
  6408.     subl    %eax, %ecx
  6409.     movl    $1431655766, %edx
  6410.     movl    %ecx, %eax
  6411.     imull   %edx
  6412.     movl    %ecx, %eax
  6413.     sarl    $31, %eax
  6414.     subl    %eax, %edx
  6415.     movl    %edx, %eax
  6416.     addl    %eax, %eax
  6417.     addl    %edx, %eax
  6418.     movl    %ecx, %edx
  6419.     subl    %eax, %edx
  6420.     cmpl    $2, %edx
  6421.     jne .L81
  6422.     movl    $111, %edi
  6423.     call    putchar
  6424. .L81:
  6425.     movl    $124, %edi
  6426.     call    putchar
  6427.     movl    -36(%rbp), %eax
  6428.     movl    %eax, %edx
  6429.     sarl    $31, %edx
  6430.     shrl    $12, %edx
  6431.     addl    %edx, %eax
  6432.     andl    $1048575, %eax
  6433.     subl    %edx, %eax
  6434.     movl    %eax, %ecx
  6435.     movl    $954437177, %edx
  6436.     movl    %ecx, %eax
  6437.     imull   %edx
  6438.     sarl    $6, %edx
  6439.     movl    %ecx, %eax
  6440.     sarl    $31, %eax
  6441.     movl    %edx, %ecx
  6442.     subl    %eax, %ecx
  6443.     movl    $1431655766, %edx
  6444.     movl    %ecx, %eax
  6445.     imull   %edx
  6446.     movl    %ecx, %eax
  6447.     sarl    $31, %eax
  6448.     subl    %eax, %edx
  6449.     movl    %edx, %eax
  6450.     addl    %eax, %eax
  6451.     addl    %edx, %eax
  6452.     movl    %ecx, %edx
  6453.     subl    %eax, %edx
  6454.     testl   %edx, %edx
  6455.     jne .L83
  6456.     movl    $32, %edi
  6457.     call    putchar
  6458.     jmp .L84
  6459. .L83:
  6460.     movl    -36(%rbp), %eax
  6461.     movl    %eax, %edx
  6462.     sarl    $31, %edx
  6463.     shrl    $12, %edx
  6464.     addl    %edx, %eax
  6465.     andl    $1048575, %eax
  6466.     subl    %edx, %eax
  6467.     movl    %eax, %ecx
  6468.     movl    $954437177, %edx
  6469.     movl    %ecx, %eax
  6470.     imull   %edx
  6471.     sarl    $6, %edx
  6472.     movl    %ecx, %eax
  6473.     sarl    $31, %eax
  6474.     movl    %edx, %ecx
  6475.     subl    %eax, %ecx
  6476.     movl    $1431655766, %edx
  6477.     movl    %ecx, %eax
  6478.     imull   %edx
  6479.     movl    %ecx, %eax
  6480.     sarl    $31, %eax
  6481.     subl    %eax, %edx
  6482.     movl    %edx, %eax
  6483.     addl    %eax, %eax
  6484.     addl    %edx, %eax
  6485.     movl    %ecx, %edx
  6486.     subl    %eax, %edx
  6487.     cmpl    $1, %edx
  6488.     jne .L85
  6489.     movl    $120, %edi
  6490.     call    putchar
  6491.     jmp .L84
  6492. .L85:
  6493.     movl    -36(%rbp), %eax
  6494.     movl    %eax, %edx
  6495.     sarl    $31, %edx
  6496.     shrl    $12, %edx
  6497.     addl    %edx, %eax
  6498.     andl    $1048575, %eax
  6499.     subl    %edx, %eax
  6500.     movl    %eax, %ecx
  6501.     movl    $954437177, %edx
  6502.     movl    %ecx, %eax
  6503.     imull   %edx
  6504.     sarl    $6, %edx
  6505.     movl    %ecx, %eax
  6506.     sarl    $31, %eax
  6507.     movl    %edx, %ecx
  6508.     subl    %eax, %ecx
  6509.     movl    $1431655766, %edx
  6510.     movl    %ecx, %eax
  6511.     imull   %edx
  6512.     movl    %ecx, %eax
  6513.     sarl    $31, %eax
  6514.     subl    %eax, %edx
  6515.     movl    %edx, %eax
  6516.     addl    %eax, %eax
  6517.     addl    %edx, %eax
  6518.     movl    %ecx, %edx
  6519.     subl    %eax, %edx
  6520.     cmpl    $2, %edx
  6521.     jne .L84
  6522.     movl    $111, %edi
  6523.     call    putchar
  6524. .L84:
  6525.     movl    $10, %edi
  6526.     call    putchar
  6527.     movl    $.LC14, %edi
  6528.     call    puts
  6529.     movl    -36(%rbp), %eax
  6530.     movl    %eax, %edx
  6531.     sarl    $31, %edx
  6532.     shrl    $12, %edx
  6533.     addl    %edx, %eax
  6534.     andl    $1048575, %eax
  6535.     subl    %edx, %eax
  6536.     movl    %eax, %ecx
  6537.     movl    $1272582903, %edx
  6538.     movl    %ecx, %eax
  6539.     imull   %edx
  6540.     sarl    $8, %edx
  6541.     movl    %ecx, %eax
  6542.     sarl    $31, %eax
  6543.     movl    %edx, %ecx
  6544.     subl    %eax, %ecx
  6545.     movl    $1431655766, %edx
  6546.     movl    %ecx, %eax
  6547.     imull   %edx
  6548.     movl    %ecx, %eax
  6549.     sarl    $31, %eax
  6550.     subl    %eax, %edx
  6551.     movl    %edx, %eax
  6552.     addl    %eax, %eax
  6553.     addl    %edx, %eax
  6554.     movl    %ecx, %edx
  6555.     subl    %eax, %edx
  6556.     testl   %edx, %edx
  6557.     jne .L86
  6558.     movl    $32, %edi
  6559.     call    putchar
  6560.     jmp .L87
  6561. .L86:
  6562.     movl    -36(%rbp), %eax
  6563.     movl    %eax, %edx
  6564.     sarl    $31, %edx
  6565.     shrl    $12, %edx
  6566.     addl    %edx, %eax
  6567.     andl    $1048575, %eax
  6568.     subl    %edx, %eax
  6569.     movl    %eax, %ecx
  6570.     movl    $1272582903, %edx
  6571.     movl    %ecx, %eax
  6572.     imull   %edx
  6573.     sarl    $8, %edx
  6574.     movl    %ecx, %eax
  6575.     sarl    $31, %eax
  6576.     movl    %edx, %ecx
  6577.     subl    %eax, %ecx
  6578.     movl    $1431655766, %edx
  6579.     movl    %ecx, %eax
  6580.     imull   %edx
  6581.     movl    %ecx, %eax
  6582.     sarl    $31, %eax
  6583.     subl    %eax, %edx
  6584.     movl    %edx, %eax
  6585.     addl    %eax, %eax
  6586.     addl    %edx, %eax
  6587.     movl    %ecx, %edx
  6588.     subl    %eax, %edx
  6589.     cmpl    $1, %edx
  6590.     jne .L88
  6591.     movl    $120, %edi
  6592.     call    putchar
  6593.     jmp .L87
  6594. .L88:
  6595.     movl    -36(%rbp), %eax
  6596.     movl    %eax, %edx
  6597.     sarl    $31, %edx
  6598.     shrl    $12, %edx
  6599.     addl    %edx, %eax
  6600.     andl    $1048575, %eax
  6601.     subl    %edx, %eax
  6602.     movl    %eax, %ecx
  6603.     movl    $1272582903, %edx
  6604.     movl    %ecx, %eax
  6605.     imull   %edx
  6606.     sarl    $8, %edx
  6607.     movl    %ecx, %eax
  6608.     sarl    $31, %eax
  6609.     movl    %edx, %ecx
  6610.     subl    %eax, %ecx
  6611.     movl    $1431655766, %edx
  6612.     movl    %ecx, %eax
  6613.     imull   %edx
  6614.     movl    %ecx, %eax
  6615.     sarl    $31, %eax
  6616.     subl    %eax, %edx
  6617.     movl    %edx, %eax
  6618.     addl    %eax, %eax
  6619.     addl    %edx, %eax
  6620.     movl    %ecx, %edx
  6621.     subl    %eax, %edx
  6622.     cmpl    $2, %edx
  6623.     jne .L87
  6624.     movl    $111, %edi
  6625.     call    putchar
  6626. .L87:
  6627.     movl    $124, %edi
  6628.     call    putchar
  6629.     movl    -36(%rbp), %eax
  6630.     movl    %eax, %edx
  6631.     sarl    $31, %edx
  6632.     shrl    $12, %edx
  6633.     addl    %edx, %eax
  6634.     andl    $1048575, %eax
  6635.     subl    %edx, %eax
  6636.     movl    %eax, %ecx
  6637.     movl    $424194301, %edx
  6638.     movl    %ecx, %eax
  6639.     imull   %edx
  6640.     sarl    $8, %edx
  6641.     movl    %ecx, %eax
  6642.     sarl    $31, %eax
  6643.     movl    %edx, %ecx
  6644.     subl    %eax, %ecx
  6645.     movl    $1431655766, %edx
  6646.     movl    %ecx, %eax
  6647.     imull   %edx
  6648.     movl    %ecx, %eax
  6649.     sarl    $31, %eax
  6650.     subl    %eax, %edx
  6651.     movl    %edx, %eax
  6652.     addl    %eax, %eax
  6653.     addl    %edx, %eax
  6654.     movl    %ecx, %edx
  6655.     subl    %eax, %edx
  6656.     testl   %edx, %edx
  6657.     jne .L89
  6658.     movl    $32, %edi
  6659.     call    putchar
  6660.     jmp .L90
  6661. .L89:
  6662.     movl    -36(%rbp), %eax
  6663.     movl    %eax, %edx
  6664.     sarl    $31, %edx
  6665.     shrl    $12, %edx
  6666.     addl    %edx, %eax
  6667.     andl    $1048575, %eax
  6668.     subl    %edx, %eax
  6669.     movl    %eax, %ecx
  6670.     movl    $424194301, %edx
  6671.     movl    %ecx, %eax
  6672.     imull   %edx
  6673.     sarl    $8, %edx
  6674.     movl    %ecx, %eax
  6675.     sarl    $31, %eax
  6676.     movl    %edx, %ecx
  6677.     subl    %eax, %ecx
  6678.     movl    $1431655766, %edx
  6679.     movl    %ecx, %eax
  6680.     imull   %edx
  6681.     movl    %ecx, %eax
  6682.     sarl    $31, %eax
  6683.     subl    %eax, %edx
  6684.     movl    %edx, %eax
  6685.     addl    %eax, %eax
  6686.     addl    %edx, %eax
  6687.     movl    %ecx, %edx
  6688.     subl    %eax, %edx
  6689.     cmpl    $1, %edx
  6690.     jne .L91
  6691.     movl    $120, %edi
  6692.     call    putchar
  6693.     jmp .L90
  6694. .L91:
  6695.     movl    -36(%rbp), %eax
  6696.     movl    %eax, %edx
  6697.     sarl    $31, %edx
  6698.     shrl    $12, %edx
  6699.     addl    %edx, %eax
  6700.     andl    $1048575, %eax
  6701.     subl    %edx, %eax
  6702.     movl    %eax, %ecx
  6703.     movl    $424194301, %edx
  6704.     movl    %ecx, %eax
  6705.     imull   %edx
  6706.     sarl    $8, %edx
  6707.     movl    %ecx, %eax
  6708.     sarl    $31, %eax
  6709.     movl    %edx, %ecx
  6710.     subl    %eax, %ecx
  6711.     movl    $1431655766, %edx
  6712.     movl    %ecx, %eax
  6713.     imull   %edx
  6714.     movl    %ecx, %eax
  6715.     sarl    $31, %eax
  6716.     subl    %eax, %edx
  6717.     movl    %edx, %eax
  6718.     addl    %eax, %eax
  6719.     addl    %edx, %eax
  6720.     movl    %ecx, %edx
  6721.     subl    %eax, %edx
  6722.     cmpl    $2, %edx
  6723.     jne .L90
  6724.     movl    $111, %edi
  6725.     call    putchar
  6726. .L90:
  6727.     movl    $124, %edi
  6728.     call    putchar
  6729.     movl    -36(%rbp), %eax
  6730.     movl    %eax, %edx
  6731.     sarl    $31, %edx
  6732.     shrl    $12, %edx
  6733.     addl    %edx, %eax
  6734.     andl    $1048575, %eax
  6735.     subl    %edx, %eax
  6736.     movl    %eax, %ecx
  6737.     movl    $-2032597691, %edx
  6738.     movl    %ecx, %eax
  6739.     imull   %edx
  6740.     leal    (%rdx,%rcx), %eax
  6741.     movl    %eax, %edx
  6742.     sarl    $12, %edx
  6743.     movl    %ecx, %eax
  6744.     sarl    $31, %eax
  6745.     movl    %edx, %ecx
  6746.     subl    %eax, %ecx
  6747.     movl    $1431655766, %edx
  6748.     movl    %ecx, %eax
  6749.     imull   %edx
  6750.     movl    %ecx, %eax
  6751.     sarl    $31, %eax
  6752.     subl    %eax, %edx
  6753.     movl    %edx, %eax
  6754.     addl    %eax, %eax
  6755.     addl    %edx, %eax
  6756.     movl    %ecx, %edx
  6757.     subl    %eax, %edx
  6758.     testl   %edx, %edx
  6759.     jne .L92
  6760.     movl    $32, %edi
  6761.     call    putchar
  6762.     jmp .L93
  6763. .L92:
  6764.     movl    -36(%rbp), %eax
  6765.     movl    %eax, %edx
  6766.     sarl    $31, %edx
  6767.     shrl    $12, %edx
  6768.     addl    %edx, %eax
  6769.     andl    $1048575, %eax
  6770.     subl    %edx, %eax
  6771.     movl    %eax, %ecx
  6772.     movl    $-2032597691, %edx
  6773.     movl    %ecx, %eax
  6774.     imull   %edx
  6775.     leal    (%rdx,%rcx), %eax
  6776.     movl    %eax, %edx
  6777.     sarl    $12, %edx
  6778.     movl    %ecx, %eax
  6779.     sarl    $31, %eax
  6780.     movl    %edx, %ecx
  6781.     subl    %eax, %ecx
  6782.     movl    $1431655766, %edx
  6783.     movl    %ecx, %eax
  6784.     imull   %edx
  6785.     movl    %ecx, %eax
  6786.     sarl    $31, %eax
  6787.     subl    %eax, %edx
  6788.     movl    %edx, %eax
  6789.     addl    %eax, %eax
  6790.     addl    %edx, %eax
  6791.     movl    %ecx, %edx
  6792.     subl    %eax, %edx
  6793.     cmpl    $1, %edx
  6794.     jne .L94
  6795.     movl    $120, %edi
  6796.     call    putchar
  6797.     jmp .L93
  6798. .L94:
  6799.     movl    -36(%rbp), %eax
  6800.     movl    %eax, %edx
  6801.     sarl    $31, %edx
  6802.     shrl    $12, %edx
  6803.     addl    %edx, %eax
  6804.     andl    $1048575, %eax
  6805.     subl    %edx, %eax
  6806.     movl    %eax, %ecx
  6807.     movl    $-2032597691, %edx
  6808.     movl    %ecx, %eax
  6809.     imull   %edx
  6810.     leal    (%rdx,%rcx), %eax
  6811.     movl    %eax, %edx
  6812.     sarl    $12, %edx
  6813.     movl    %ecx, %eax
  6814.     sarl    $31, %eax
  6815.     movl    %edx, %ecx
  6816.     subl    %eax, %ecx
  6817.     movl    $1431655766, %edx
  6818.     movl    %ecx, %eax
  6819.     imull   %edx
  6820.     movl    %ecx, %eax
  6821.     sarl    $31, %eax
  6822.     subl    %eax, %edx
  6823.     movl    %edx, %eax
  6824.     addl    %eax, %eax
  6825.     addl    %edx, %eax
  6826.     movl    %ecx, %edx
  6827.     subl    %eax, %edx
  6828.     cmpl    $2, %edx
  6829.     jne .L93
  6830.     movl    $111, %edi
  6831.     call    putchar
  6832. .L93:
  6833.     movl    $10, %edi
  6834.     call    putchar
  6835.     movl    $.LC14, %edi
  6836.     call    puts
  6837.     movl    -36(%rbp), %eax
  6838.     movl    %eax, %edx
  6839.     sarl    $31, %edx
  6840.     shrl    $12, %edx
  6841.     addl    %edx, %eax
  6842.     andl    $1048575, %eax
  6843.     subl    %edx, %eax
  6844.     movl    %eax, %ecx
  6845.     movl    $1508246403, %edx
  6846.     movl    %ecx, %eax
  6847.     imull   %edx
  6848.     sarl    $13, %edx
  6849.     movl    %ecx, %eax
  6850.     sarl    $31, %eax
  6851.     movl    %edx, %ecx
  6852.     subl    %eax, %ecx
  6853.     movl    $1431655766, %edx
  6854.     movl    %ecx, %eax
  6855.     imull   %edx
  6856.     movl    %ecx, %eax
  6857.     sarl    $31, %eax
  6858.     subl    %eax, %edx
  6859.     movl    %edx, %eax
  6860.     addl    %eax, %eax
  6861.     addl    %edx, %eax
  6862.     movl    %ecx, %edx
  6863.     subl    %eax, %edx
  6864.     testl   %edx, %edx
  6865.     jne .L95
  6866.     movl    $32, %edi
  6867.     call    putchar
  6868.     jmp .L96
  6869. .L95:
  6870.     movl    -36(%rbp), %eax
  6871.     movl    %eax, %edx
  6872.     sarl    $31, %edx
  6873.     shrl    $12, %edx
  6874.     addl    %edx, %eax
  6875.     andl    $1048575, %eax
  6876.     subl    %edx, %eax
  6877.     movl    %eax, %ecx
  6878.     movl    $1508246403, %edx
  6879.     movl    %ecx, %eax
  6880.     imull   %edx
  6881.     sarl    $13, %edx
  6882.     movl    %ecx, %eax
  6883.     sarl    $31, %eax
  6884.     movl    %edx, %ecx
  6885.     subl    %eax, %ecx
  6886.     movl    $1431655766, %edx
  6887.     movl    %ecx, %eax
  6888.     imull   %edx
  6889.     movl    %ecx, %eax
  6890.     sarl    $31, %eax
  6891.     subl    %eax, %edx
  6892.     movl    %edx, %eax
  6893.     addl    %eax, %eax
  6894.     addl    %edx, %eax
  6895.     movl    %ecx, %edx
  6896.     subl    %eax, %edx
  6897.     cmpl    $1, %edx
  6898.     jne .L97
  6899.     movl    $120, %edi
  6900.     call    putchar
  6901.     jmp .L96
  6902. .L97:
  6903.     movl    -36(%rbp), %eax
  6904.     movl    %eax, %edx
  6905.     sarl    $31, %edx
  6906.     shrl    $12, %edx
  6907.     addl    %edx, %eax
  6908.     andl    $1048575, %eax
  6909.     subl    %edx, %eax
  6910.     movl    %eax, %ecx
  6911.     movl    $1508246403, %edx
  6912.     movl    %ecx, %eax
  6913.     imull   %edx
  6914.     sarl    $13, %edx
  6915.     movl    %ecx, %eax
  6916.     sarl    $31, %eax
  6917.     movl    %edx, %ecx
  6918.     subl    %eax, %ecx
  6919.     movl    $1431655766, %edx
  6920.     movl    %ecx, %eax
  6921.     imull   %edx
  6922.     movl    %ecx, %eax
  6923.     sarl    $31, %eax
  6924.     subl    %eax, %edx
  6925.     movl    %edx, %eax
  6926.     addl    %eax, %eax
  6927.     addl    %edx, %eax
  6928.     movl    %ecx, %edx
  6929.     subl    %eax, %edx
  6930.     cmpl    $2, %edx
  6931.     jne .L96
  6932.     movl    $111, %edi
  6933.     call    putchar
  6934. .L96:
  6935.     movl    $124, %edi
  6936.     call    putchar
  6937.     movl    -36(%rbp), %eax
  6938.     movl    %eax, %edx
  6939.     sarl    $31, %edx
  6940.     shrl    $12, %edx
  6941.     addl    %edx, %eax
  6942.     andl    $1048575, %eax
  6943.     subl    %edx, %eax
  6944.     movl    %eax, %ecx
  6945.     movl    $502748801, %edx
  6946.     movl    %ecx, %eax
  6947.     imull   %edx
  6948.     sarl    $13, %edx
  6949.     movl    %ecx, %eax
  6950.     sarl    $31, %eax
  6951.     movl    %edx, %ecx
  6952.     subl    %eax, %ecx
  6953.     movl    $1431655766, %edx
  6954.     movl    %ecx, %eax
  6955.     imull   %edx
  6956.     movl    %ecx, %eax
  6957.     sarl    $31, %eax
  6958.     subl    %eax, %edx
  6959.     movl    %edx, %eax
  6960.     addl    %eax, %eax
  6961.     addl    %edx, %eax
  6962.     movl    %ecx, %edx
  6963.     subl    %eax, %edx
  6964.     testl   %edx, %edx
  6965.     jne .L98
  6966.     movl    $32, %edi
  6967.     call    putchar
  6968.     jmp .L99
  6969. .L98:
  6970.     movl    -36(%rbp), %eax
  6971.     movl    %eax, %edx
  6972.     sarl    $31, %edx
  6973.     shrl    $12, %edx
  6974.     addl    %edx, %eax
  6975.     andl    $1048575, %eax
  6976.     subl    %edx, %eax
  6977.     movl    %eax, %ecx
  6978.     movl    $502748801, %edx
  6979.     movl    %ecx, %eax
  6980.     imull   %edx
  6981.     sarl    $13, %edx
  6982.     movl    %ecx, %eax
  6983.     sarl    $31, %eax
  6984.     movl    %edx, %ecx
  6985.     subl    %eax, %ecx
  6986.     movl    $1431655766, %edx
  6987.     movl    %ecx, %eax
  6988.     imull   %edx
  6989.     movl    %ecx, %eax
  6990.     sarl    $31, %eax
  6991.     subl    %eax, %edx
  6992.     movl    %edx, %eax
  6993.     addl    %eax, %eax
  6994.     addl    %edx, %eax
  6995.     movl    %ecx, %edx
  6996.     subl    %eax, %edx
  6997.     cmpl    $1, %edx
  6998.     jne .L100
  6999.     movl    $120, %edi
  7000.     call    putchar
  7001.     jmp .L99
  7002. .L100:
  7003.     movl    -36(%rbp), %eax
  7004.     movl    %eax, %edx
  7005.     sarl    $31, %edx
  7006.     shrl    $12, %edx
  7007.     addl    %edx, %eax
  7008.     andl    $1048575, %eax
  7009.     subl    %edx, %eax
  7010.     movl    %eax, %ecx
  7011.     movl    $502748801, %edx
  7012.     movl    %ecx, %eax
  7013.     imull   %edx
  7014.     sarl    $13, %edx
  7015.     movl    %ecx, %eax
  7016.     sarl    $31, %eax
  7017.     movl    %edx, %ecx
  7018.     subl    %eax, %ecx
  7019.     movl    $1431655766, %edx
  7020.     movl    %ecx, %eax
  7021.     imull   %edx
  7022.     movl    %ecx, %eax
  7023.     sarl    $31, %eax
  7024.     subl    %eax, %edx
  7025.     movl    %edx, %eax
  7026.     addl    %eax, %eax
  7027.     addl    %edx, %eax
  7028.     movl    %ecx, %edx
  7029.     subl    %eax, %edx
  7030.     cmpl    $2, %edx
  7031.     jne .L99
  7032.     movl    $111, %edi
  7033.     call    putchar
  7034. .L99:
  7035.     movl    $124, %edi
  7036.     call    putchar
  7037.     movl    -36(%rbp), %eax
  7038.     movl    %eax, %edx
  7039.     sarl    $31, %edx
  7040.     shrl    $12, %edx
  7041.     addl    %edx, %eax
  7042.     andl    $1048575, %eax
  7043.     subl    %edx, %eax
  7044.     movl    %eax, %ecx
  7045.     movl    $-1613640357, %edx
  7046.     movl    %ecx, %eax
  7047.     imull   %edx
  7048.     leal    (%rdx,%rcx), %eax
  7049.     movl    %eax, %edx
  7050.     sarl    $17, %edx
  7051.     movl    %ecx, %eax
  7052.     sarl    $31, %eax
  7053.     movl    %edx, %ecx
  7054.     subl    %eax, %ecx
  7055.     movl    $1431655766, %edx
  7056.     movl    %ecx, %eax
  7057.     imull   %edx
  7058.     movl    %ecx, %eax
  7059.     sarl    $31, %eax
  7060.     subl    %eax, %edx
  7061.     movl    %edx, %eax
  7062.     addl    %eax, %eax
  7063.     addl    %edx, %eax
  7064.     movl    %ecx, %edx
  7065.     subl    %eax, %edx
  7066.     testl   %edx, %edx
  7067.     jne .L101
  7068.     movl    $32, %edi
  7069.     call    putchar
  7070.     jmp .L102
  7071. .L101:
  7072.     movl    -36(%rbp), %eax
  7073.     movl    %eax, %edx
  7074.     sarl    $31, %edx
  7075.     shrl    $12, %edx
  7076.     addl    %edx, %eax
  7077.     andl    $1048575, %eax
  7078.     subl    %edx, %eax
  7079.     movl    %eax, %ecx
  7080.     movl    $-1613640357, %edx
  7081.     movl    %ecx, %eax
  7082.     imull   %edx
  7083.     leal    (%rdx,%rcx), %eax
  7084.     movl    %eax, %edx
  7085.     sarl    $17, %edx
  7086.     movl    %ecx, %eax
  7087.     sarl    $31, %eax
  7088.     movl    %edx, %ecx
  7089.     subl    %eax, %ecx
  7090.     movl    $1431655766, %edx
  7091.     movl    %ecx, %eax
  7092.     imull   %edx
  7093.     movl    %ecx, %eax
  7094.     sarl    $31, %eax
  7095.     subl    %eax, %edx
  7096.     movl    %edx, %eax
  7097.     addl    %eax, %eax
  7098.     addl    %edx, %eax
  7099.     movl    %ecx, %edx
  7100.     subl    %eax, %edx
  7101.     cmpl    $1, %edx
  7102.     jne .L103
  7103.     movl    $120, %edi
  7104.     call    putchar
  7105.     jmp .L102
  7106. .L103:
  7107.     movl    -36(%rbp), %eax
  7108.     movl    %eax, %edx
  7109.     sarl    $31, %edx
  7110.     shrl    $12, %edx
  7111.     addl    %edx, %eax
  7112.     andl    $1048575, %eax
  7113.     subl    %edx, %eax
  7114.     movl    %eax, %ecx
  7115.     movl    $-1613640357, %edx
  7116.     movl    %ecx, %eax
  7117.     imull   %edx
  7118.     leal    (%rdx,%rcx), %eax
  7119.     movl    %eax, %edx
  7120.     sarl    $17, %edx
  7121.     movl    %ecx, %eax
  7122.     sarl    $31, %eax
  7123.     movl    %edx, %ecx
  7124.     subl    %eax, %ecx
  7125.     movl    $1431655766, %edx
  7126.     movl    %ecx, %eax
  7127.     imull   %edx
  7128.     movl    %ecx, %eax
  7129.     sarl    $31, %eax
  7130.     subl    %eax, %edx
  7131.     movl    %edx, %eax
  7132.     addl    %eax, %eax
  7133.     addl    %edx, %eax
  7134.     movl    %ecx, %edx
  7135.     subl    %eax, %edx
  7136.     cmpl    $2, %edx
  7137.     jne .L102
  7138.     movl    $111, %edi
  7139.     call    putchar
  7140. .L102:
  7141.     movl    $10, %edi
  7142.     call    putchar
  7143.     movl    -36(%rbp), %eax
  7144.     movl    %eax, %edx
  7145.     sarl    $31, %edx
  7146.     shrl    $12, %edx
  7147.     addl    %edx, %eax
  7148.     andl    $1048575, %eax
  7149.     subl    %edx, %eax
  7150.     movl    %eax, -36(%rbp)
  7151. .L2:
  7152.     movl    -36(%rbp), %eax
  7153.     testl   %eax, %eax
  7154.     jns .L104
  7155.     movl    $0, %eax
  7156.     addq    $40, %rsp
  7157.     popq    %rbx
  7158.     popq    %r12
  7159.     popq    %r13
  7160.     popq    %rbp
  7161.     .cfi_def_cfa 7, 8
  7162.     ret
  7163.     .cfi_endproc
  7164. .LFE0:
  7165.     .size   main, .-main
  7166.     .section    .rodata
  7167.     .align 8
  7168. .LC3:
  7169.     .long   0
  7170.     .long   1074790400
  7171.     .align 4
  7172. .LC4:
  7173.     .long   1065353216
  7174.     .align 8
  7175. .LC5:
  7176.     .long   0
  7177.     .long   1076101120
  7178.     .align 8
  7179. .LC12:
  7180.     .long   4290772992
  7181.     .long   1105199103
  7182.     .align 8
  7183. .LC13:
  7184.     .long   0
  7185.     .long   1074266112
  7186.     .ident  "GCC: (Debian 4.7.2-5) 4.7.2"
  7187.     .section    .note.GNU-stack,"",@progbits
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement