Pastebin launched a little side project called HostCabi.net, check it out ;-)Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on Aug 19th, 2010  |  syntax: ASM (NASM)  |  size: 15.48 KB  |  hits: 48  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. .globl _initPerlinNoise
  2.         .def    _initPerlinNoise;       .scl    2;      .type   32;     .endef
  3. _initPerlinNoise:
  4.         pushl   %ebx
  5.         movl    $1024, %ecx
  6.         subl    $1048, %esp
  7.         movl    %ecx, 8(%esp)
  8.         leal    16(%esp), %eax
  9.         movl    $LC3, %edx
  10.         movl    %edx, 4(%esp)
  11.         movl    $_perm, %ebx
  12.         movl    %eax, (%esp)
  13.         call    _memcpy
  14.         xorl    %ecx, %ecx
  15.         .p2align 4,,15
  16. L242:
  17.         movl    16(%esp,%ecx,4), %eax
  18.         movl    %eax, _perm(,%ecx,4)
  19.         movl    %eax, 1024(%ebx,%ecx,4)
  20.         leal    1(%ecx), %eax
  21.         movl    16(%esp,%eax,4), %edx
  22.         movl    %edx, _perm(,%eax,4)
  23.         movl    %edx, 1024(%ebx,%eax,4)
  24.         leal    2(%ecx), %eax
  25.         movl    16(%esp,%eax,4), %edx
  26.         movl    %edx, _perm(,%eax,4)
  27.         movl    %edx, 1024(%ebx,%eax,4)
  28.         leal    3(%ecx), %eax
  29.         movl    16(%esp,%eax,4), %edx
  30.         movl    %edx, _perm(,%eax,4)
  31.         movl    %edx, 1024(%ebx,%eax,4)
  32.         leal    4(%ecx), %eax
  33.         movl    16(%esp,%eax,4), %edx
  34.         movl    %edx, _perm(,%eax,4)
  35.         movl    %edx, 1024(%ebx,%eax,4)
  36.         leal    5(%ecx), %eax
  37.         movl    16(%esp,%eax,4), %edx
  38.         movl    %edx, _perm(,%eax,4)
  39.         movl    %edx, 1024(%ebx,%eax,4)
  40.         leal    6(%ecx), %eax
  41.         movl    16(%esp,%eax,4), %edx
  42.         movl    %edx, _perm(,%eax,4)
  43.         movl    %edx, 1024(%ebx,%eax,4)
  44.         leal    7(%ecx), %eax
  45.         movl    16(%esp,%eax,4), %edx
  46.         addl    $8, %ecx
  47.         cmpl    $255, %ecx
  48.         movl    %edx, _perm(,%eax,4)
  49.         movl    %edx, 1024(%ebx,%eax,4)
  50.         jle     L242
  51.         addl    $1048, %esp
  52.         popl    %ebx
  53.         ret
  54.         .section .rdata,"dr"
  55.         .align 4
  56. LC4:
  57.         .long   1086324736
  58.         .align 4
  59. LC5:
  60.         .long   1097859072
  61.         .align 4
  62. LC6:
  63.         .long   1092616192
  64.         .text
  65.         .p2align 4,,15
  66. .globl _fade
  67.         .def    _fade;  .scl    2;      .type   32;     .endef
  68. _fade:
  69.         subl    $4, %esp
  70.         movss   8(%esp), %xmm0
  71.         movaps  %xmm0, %xmm1
  72.         movaps  %xmm0, %xmm2
  73.         mulss   LC4, %xmm1
  74.         mulss   %xmm0, %xmm2
  75.         mulss   %xmm0, %xmm2
  76.         subss   LC5, %xmm1
  77.         mulss   %xmm0, %xmm1
  78.         addss   LC6, %xmm1
  79.         mulss   %xmm1, %xmm2
  80.         movss   %xmm2, (%esp)
  81.         flds    (%esp)
  82.         popl    %eax
  83.         ret
  84.         .p2align 4,,15
  85. .globl _lerp
  86.         .def    _lerp;  .scl    2;      .type   32;     .endef
  87. _lerp:
  88.         subl    $4, %esp
  89.         movss   12(%esp), %xmm1
  90.         movss   16(%esp), %xmm0
  91.         subss   %xmm1, %xmm0
  92.         mulss   8(%esp), %xmm0
  93.         addss   %xmm1, %xmm0
  94.         movss   %xmm0, (%esp)
  95.         flds    (%esp)
  96.         popl    %eax
  97.         ret
  98.         .section .rdata,"dr"
  99.         .align 16
  100. LC9:
  101.         .long   -2147483648
  102.         .long   0
  103.         .long   0
  104.         .long   0
  105.         .text
  106.         .p2align 4,,15
  107. .globl _grad
  108.         .def    _grad;  .scl    2;      .type   32;     .endef
  109. _grad:
  110.         subl    $4, %esp
  111.         movl    16(%esp), %edx
  112.         movl    8(%esp), %ecx
  113.         flds    12(%esp)
  114.         movl    %edx, (%esp)
  115.         andl    $15, %ecx
  116.         cmpl    $7, %ecx
  117.         flds    (%esp)
  118.         setg    %al
  119.         testb   %al, %al
  120.         movss   (%esp), %xmm1
  121.         fcmove  %st(1), %st
  122.         cmpl    $3, %ecx
  123.         jle     L266
  124.         flds    20(%esp)
  125.         cmpl    $12, %ecx
  126.         sete    %al
  127.         cmpl    $14, %ecx
  128.         sete    %dl
  129.         orl     %edx, %eax
  130.         testb   $1, %al
  131.         fcmovne %st(2), %st
  132.         fstp    %st(2)
  133.         fxch    %st(1)
  134.         fstps   (%esp)
  135.         movss   (%esp), %xmm1
  136.         jmp     L260
  137.         .p2align 4,,7
  138. L266:
  139.         fstp    %st(1)
  140. L260:
  141.         fstps   (%esp)
  142.         testb   $1, %cl
  143.         movss   (%esp), %xmm0
  144.         je      L263
  145.         xorps   LC9, %xmm0
  146. L263:
  147.         movaps  %xmm0, %xmm2
  148.         subss   %xmm1, %xmm0
  149.         addss   %xmm1, %xmm2
  150.         movss   %xmm2, (%esp)
  151.         testb   $2, %cl
  152.         flds    (%esp)
  153.         movss   %xmm0, (%esp)
  154.         flds    (%esp)
  155.         popl    %eax
  156.         fcmove  %st(1), %st
  157.         fstp    %st(1)
  158.         ret
  159.         .section .rdata,"dr"
  160.         .align 4
  161. LC11:
  162.         .long   1065353216
  163.         .align 16
  164. LC12:
  165.         .long   -2147483648
  166.         .long   0
  167.         .long   0
  168.         .long   0
  169.         .align 4
  170. LC13:
  171.         .long   1086324736
  172.         .align 4
  173. LC14:
  174.         .long   1097859072
  175.         .align 4
  176. LC15:
  177.         .long   1092616192
  178.         .text
  179.         .p2align 4,,15
  180. .globl _noise
  181.         .def    _noise; .scl    2;      .type   32;     .endef
  182. _noise:
  183.         pushl   %esi
  184.         pushl   %ebx
  185.         subl    $44, %esp
  186.         movss   56(%esp), %xmm1
  187.         movss   60(%esp), %xmm2
  188.         movss   64(%esp), %xmm4
  189.         cvttss2si       %xmm1, %ebx
  190.         movaps  %xmm1, %xmm5
  191.         cvtsi2ss        %ebx, %xmm6
  192.         andl    $255, %ebx
  193.         movl    _perm+4(,%ebx,4), %esi
  194.         movl    _perm(,%ebx,4), %ecx
  195.         cvttss2si       %xmm2, %eax
  196.         cvttss2si       %xmm4, %edx
  197.         cvtsi2ss        %eax, %xmm3
  198.         andl    $255, %eax
  199.         cvtsi2ss        %edx, %xmm0
  200.         addl    %eax, %ecx
  201.         addl    %esi, %eax
  202.         movl    _perm(,%ecx,4), %ebx
  203.         movl    _perm(,%eax,4), %esi
  204.         andl    $255, %edx
  205.         subss   %xmm6, %xmm5
  206.         movl    _perm+4(,%ecx,4), %ecx
  207.         movaps  %xmm2, %xmm6
  208.         addl    %edx, %ebx
  209.         cvtsi2ss        _perm(,%ebx,4), %xmm7
  210.         addl    %edx, %esi
  211.         addl    %edx, %ecx
  212.         addl    _perm+4(,%eax,4), %edx
  213.         subss   %xmm3, %xmm6
  214.         subss   %xmm0, %xmm4
  215.         cvtsi2ss        _perm(,%ecx,4), %xmm1
  216.         cvtsi2ss        _perm+4(,%ecx,4), %xmm3
  217.         cvtsi2ss        _perm(,%edx,4), %xmm2
  218.         cvtsi2ss        _perm+4(,%edx,4), %xmm0
  219.         movss   %xmm4, 8(%esp)
  220.         cvtsi2ss        _perm(,%esi,4), %xmm4
  221.         movss   %xmm7, 40(%esp)
  222.         cvtsi2ss        _perm+4(,%ebx,4), %xmm7
  223.         movss   %xmm1, 36(%esp)
  224.         movaps  %xmm5, %xmm1
  225.         movss   %xmm2, 28(%esp)
  226.         cvttss2si       %xmm0, %ecx
  227.         andl    $15, %ecx
  228.         movss   LC11, %xmm2
  229.         movss   %xmm3, (%esp)
  230.         movaps  %xmm6, %xmm3
  231.         movss   %xmm4, 32(%esp)
  232.         cmpl    $7, %ecx
  233.         setg    %al
  234.         cvtsi2ss        _perm+4(,%esi,4), %xmm4
  235.         subss   %xmm2, %xmm1
  236.         subss   %xmm2, %xmm3
  237.         movss   %xmm1, 4(%esp)
  238.         movss   8(%esp), %xmm0
  239.         movl    4(%esp), %esi
  240.         movss   %xmm3, 4(%esp)
  241.         movl    4(%esp), %edx
  242.         testb   %al, %al
  243.         movaps  %xmm3, %xmm1
  244.         movl    %esi, %ebx
  245.         subss   %xmm2, %xmm0
  246.         cmovne  %edx, %ebx
  247.         cmpl    $3, %ecx
  248.         jle     L271
  249.         movss   %xmm0, 4(%esp)
  250.         cmpl    $12, %ecx
  251.         sete    %al
  252.         cmpl    $14, %ecx
  253.         sete    %dl
  254.         orl     %edx, %eax
  255.         movl    4(%esp), %edx
  256.         testb   $1, %al
  257.         cmovne  %esi, %edx
  258.         movl    %edx, 4(%esp)
  259.         movss   4(%esp), %xmm1
  260. L271:
  261.         movl    %ebx, 4(%esp)
  262.         testb   $1, %cl
  263.         movss   4(%esp), %xmm0
  264.         je      L274
  265.         xorps   LC12, %xmm0
  266. L274:
  267.         movaps  %xmm0, %xmm3
  268.         subss   %xmm1, %xmm0
  269.         addss   %xmm1, %xmm3
  270.         movss   %xmm0, 4(%esp)
  271.         testb   $2, %cl
  272.         movl    4(%esp), %ecx
  273.         movss   %xmm3, 24(%esp)
  274.         movaps  %xmm6, %xmm0
  275.         subss   %xmm2, %xmm0
  276.         cmove   24(%esp), %ecx
  277.         movss   %xmm0, 4(%esp)
  278.         movl    4(%esp), %esi
  279.         movss   %xmm5, 4(%esp)
  280.         movl    %ecx, 24(%esp)
  281.         cvttss2si       (%esp), %ecx
  282.         movss   8(%esp), %xmm0
  283.         andl    $15, %ecx
  284.         cmpl    $7, %ecx
  285.         setg    %bl
  286.         subss   %xmm2, %xmm0
  287.         testb   %bl, %bl
  288.         movl    4(%esp), %ebx
  289.         movl    %esi, 4(%esp)
  290.         movss   4(%esp), %xmm1
  291.         cmovne  %esi, %ebx
  292.         cmpl    $3, %ecx
  293.         jle     L281
  294.         movss   %xmm5, 4(%esp)
  295.         cmpl    $12, %ecx
  296.         sete    %al
  297.         flds    4(%esp)
  298.         cmpl    $14, %ecx
  299.         sete    %dl
  300.         movss   %xmm0, 4(%esp)
  301.         orl     %edx, %eax
  302.         testb   $1, %al
  303.         flds    4(%esp)
  304.         fcmovne %st(1), %st
  305.         fstp    %st(1)
  306.         fstps   4(%esp)
  307.         movss   4(%esp), %xmm1
  308. L281:
  309.         movl    %ebx, 4(%esp)
  310.         testb   $1, %cl
  311.         movss   4(%esp), %xmm0
  312.         je      L284
  313.         xorps   LC12, %xmm0
  314. L284:
  315.         movaps  %xmm0, %xmm3
  316.         subss   %xmm1, %xmm0
  317.         addss   %xmm1, %xmm3
  318.         movss   %xmm0, 4(%esp)
  319.         testb   $2, %cl
  320.         movl    4(%esp), %esi
  321.         movss   %xmm3, 20(%esp)
  322.         cvttss2si       %xmm4, %ecx
  323.         movaps  %xmm5, %xmm4
  324.         cmove   20(%esp), %esi
  325.         subss   %xmm2, %xmm4
  326.         andl    $15, %ecx
  327.         movss   %xmm4, 4(%esp)
  328.         cmpl    $7, %ecx
  329.         setg    %bl
  330.         movl    %esi, 20(%esp)
  331.         movl    4(%esp), %esi
  332.         testb   %bl, %bl
  333.         movss   %xmm6, 4(%esp)
  334.         movss   8(%esp), %xmm0
  335.         movl    4(%esp), %ebx
  336.         movaps  %xmm6, %xmm1
  337.         cmove   %esi, %ebx
  338.         cmpl    $3, %ecx
  339.         subss   %xmm2, %xmm0
  340.         jle     L291
  341.         movl    %esi, 4(%esp)
  342.         cmpl    $12, %ecx
  343.         sete    %al
  344.         flds    4(%esp)
  345.         cmpl    $14, %ecx
  346.         sete    %dl
  347.         movss   %xmm0, 4(%esp)
  348.         orl     %edx, %eax
  349.         testb   $1, %al
  350.         flds    4(%esp)
  351.         fcmovne %st(1), %st
  352.         fstp    %st(1)
  353.         fstps   4(%esp)
  354.         movss   4(%esp), %xmm1
  355. L291:
  356.         movl    %ebx, 4(%esp)
  357.         testb   $1, %cl
  358.         movss   4(%esp), %xmm0
  359.         je      L294
  360.         xorps   LC12, %xmm0
  361. L294:
  362.         movaps  %xmm0, %xmm4
  363.         subss   %xmm1, %xmm0
  364.         addss   %xmm1, %xmm4
  365.         movss   %xmm4, 4(%esp)
  366.         testb   $2, %cl
  367.         cvttss2si       %xmm7, %ecx
  368.         flds    4(%esp)
  369.         movss   %xmm0, 4(%esp)
  370.         movaps  %xmm6, %xmm1
  371.         flds    4(%esp)
  372.         movss   %xmm5, 4(%esp)
  373.         movss   8(%esp), %xmm0
  374.         fcmove  %st(1), %st
  375.         fstp    %st(1)
  376.         andl    $15, %ecx
  377.         cmpl    $7, %ecx
  378.         setg    %bl
  379.         subss   %xmm2, %xmm0
  380.         testb   %bl, %bl
  381.         movl    4(%esp), %ebx
  382.         movss   %xmm6, 4(%esp)
  383.         movl    4(%esp), %esi
  384.         cmovne  %esi, %ebx
  385.         cmpl    $3, %ecx
  386.         jle     L301
  387.         movss   %xmm5, 4(%esp)
  388.         cmpl    $12, %ecx
  389.         sete    %al
  390.         flds    4(%esp)
  391.         cmpl    $14, %ecx
  392.         sete    %dl
  393.         movss   %xmm0, 4(%esp)
  394.         orl     %edx, %eax
  395.         testb   $1, %al
  396.         flds    4(%esp)
  397.         fcmovne %st(1), %st
  398.         fstp    %st(1)
  399.         fstps   4(%esp)
  400.         movss   4(%esp), %xmm1
  401. L301:
  402.         movl    %ebx, 4(%esp)
  403.         testb   $1, %cl
  404.         movss   4(%esp), %xmm0
  405.         je      L304
  406.         xorps   LC12, %xmm0
  407. L304:
  408.         movaps  %xmm0, %xmm3
  409.         subss   %xmm1, %xmm0
  410.         addss   %xmm1, %xmm3
  411.         movss   %xmm0, 4(%esp)
  412.         testb   $2, %cl
  413.         movl    4(%esp), %ecx
  414.         movss   %xmm3, 16(%esp)
  415.         movaps  %xmm5, %xmm7
  416.         subss   %xmm2, %xmm7
  417.         cmove   16(%esp), %ecx
  418.         movaps  %xmm6, %xmm1
  419.         subss   %xmm2, %xmm1
  420.         movss   %xmm7, 4(%esp)
  421.         movl    4(%esp), %esi
  422.         movl    %ecx, 16(%esp)
  423.         cvttss2si       28(%esp), %ecx
  424.         movss   %xmm1, 4(%esp)
  425.         movl    4(%esp), %edx
  426.         andl    $15, %ecx
  427.         cmpl    $7, %ecx
  428.         setg    %bl
  429.         testb   %bl, %bl
  430.         movl    %esi, %ebx
  431.         cmovne  %edx, %ebx
  432.         cmpl    $3, %ecx
  433.         jle     L311
  434.         cmpl    $12, %ecx
  435.         sete    %al
  436.         cmpl    $14, %ecx
  437.         sete    %dl
  438.         orl     %edx, %eax
  439.         testb   $1, %al
  440.         movl    %esi, %eax
  441.         cmove   8(%esp), %eax
  442.         movl    %eax, 4(%esp)
  443.         movss   4(%esp), %xmm1
  444. L311:
  445.         movl    %ebx, 4(%esp)
  446.         testb   $1, %cl
  447.         movss   4(%esp), %xmm0
  448.         je      L314
  449.         xorps   LC12, %xmm0
  450. L314:
  451.         movaps  %xmm0, %xmm4
  452.         subss   %xmm1, %xmm0
  453.         addss   %xmm1, %xmm4
  454.         movss   %xmm4, 4(%esp)
  455.         testb   $2, %cl
  456.         flds    4(%esp)
  457.         cvttss2si       36(%esp), %ecx
  458.         movss   %xmm0, 4(%esp)
  459.         movaps  %xmm6, %xmm0
  460.         subss   %xmm2, %xmm0
  461.         flds    4(%esp)
  462.         movss   %xmm0, 4(%esp)
  463.         movl    4(%esp), %esi
  464.         movss   %xmm5, 4(%esp)
  465.         movaps  %xmm0, %xmm1
  466.         fcmove  %st(1), %st
  467.         fstp    %st(1)
  468.         andl    $15, %ecx
  469.         cmpl    $7, %ecx
  470.         setg    %bl
  471.         testb   %bl, %bl
  472.         movl    4(%esp), %ebx
  473.         cmovne  %esi, %ebx
  474.         cmpl    $3, %ecx
  475.         jle     L321
  476.         cmpl    $12, %ecx
  477.         sete    %al
  478.         cmpl    $14, %ecx
  479.         sete    %dl
  480.         orl     %edx, %eax
  481.         testb   $1, %al
  482.         movl    4(%esp), %eax
  483.         cmove   8(%esp), %eax
  484.         movl    %eax, 4(%esp)
  485.         movss   4(%esp), %xmm1
  486. L321:
  487.         movl    %ebx, 4(%esp)
  488.         testb   $1, %cl
  489.         movss   4(%esp), %xmm0
  490.         je      L324
  491.         xorps   LC12, %xmm0
  492. L324:
  493.         movaps  %xmm0, %xmm7
  494.         subss   %xmm1, %xmm0
  495.         addss   %xmm1, %xmm7
  496.         movss   %xmm0, 4(%esp)
  497.         testb   $2, %cl
  498.         movl    4(%esp), %ecx
  499.         movss   %xmm7, 12(%esp)
  500.         movaps  %xmm5, %xmm1
  501.         subss   %xmm2, %xmm1
  502.         cmove   12(%esp), %ecx
  503.         movss   %xmm1, 4(%esp)
  504.         movl    4(%esp), %ebx
  505.         movss   %xmm6, 4(%esp)
  506.         movl    4(%esp), %esi
  507.         movaps  %xmm6, %xmm1
  508.         movl    %ecx, 12(%esp)
  509.         cvttss2si       32(%esp), %ecx
  510.         andl    $15, %ecx
  511.         cmpl    $7, %ecx
  512.         setg    %al
  513.         testb   %al, %al
  514.         cmove   %ebx, %esi
  515.         cmpl    $3, %ecx
  516.         jle     L331
  517.         cmpl    $12, %ecx
  518.         sete    %al
  519.         cmpl    $14, %ecx
  520.         sete    %dl
  521.         orl     %edx, %eax
  522.         testb   $1, %al
  523.         movl    %ebx, %edx
  524.         cmove   8(%esp), %edx
  525.         movl    %edx, 4(%esp)
  526.         movss   4(%esp), %xmm1
  527. L331:
  528.         movl    %esi, 4(%esp)
  529.         testb   $1, %cl
  530.         movss   4(%esp), %xmm0
  531.         je      L334
  532.         xorps   LC12, %xmm0
  533. L334:
  534.         movaps  %xmm0, %xmm2
  535.         subss   %xmm1, %xmm0
  536.         addss   %xmm1, %xmm2
  537.         movss   %xmm2, 4(%esp)
  538.         testb   $2, %cl
  539.         movl    4(%esp), %esi
  540.         movss   %xmm0, 4(%esp)
  541.         movaps  %xmm6, %xmm1
  542.         movl    4(%esp), %ecx
  543.         movss   %xmm5, 4(%esp)
  544.         cmovne  %ecx, %esi
  545.         cvttss2si       40(%esp), %ecx
  546.         andl    $15, %ecx
  547.         cmpl    $7, %ecx
  548.         setg    %bl
  549.         testb   %bl, %bl
  550.         movl    4(%esp), %ebx
  551.         movss   %xmm6, 4(%esp)
  552.         movl    4(%esp), %eax
  553.         cmovne  %eax, %ebx
  554.         cmpl    $3, %ecx
  555.         jle     L341
  556.         movss   %xmm5, 4(%esp)
  557.         cmpl    $12, %ecx
  558.         sete    %al
  559.         cmpl    $14, %ecx
  560.         sete    %dl
  561.         orl     %edx, %eax
  562.         testb   $1, %al
  563.         movl    4(%esp), %edx
  564.         cmove   8(%esp), %edx
  565.         movl    %edx, 4(%esp)
  566.         movss   4(%esp), %xmm1
  567. L341:
  568.         movl    %ebx, 4(%esp)
  569.         testb   $1, %cl
  570.         movss   4(%esp), %xmm0
  571.         je      L344
  572.         xorps   LC12, %xmm0
  573. L344:
  574.         movss   LC14, %xmm4
  575.         movaps  %xmm0, %xmm2
  576.         addss   %xmm1, %xmm2
  577.         movss   %xmm2, 4(%esp)
  578.         subss   %xmm1, %xmm0
  579.         movaps  %xmm5, %xmm2
  580.         movss   LC13, %xmm1
  581.         mulss   %xmm5, %xmm2
  582.         mulss   %xmm5, %xmm2
  583.         flds    4(%esp)
  584.         movss   %xmm0, 4(%esp)
  585.         movaps  %xmm5, %xmm0
  586.         movss   LC15, %xmm3
  587.         mulss   %xmm1, %xmm0
  588.         flds    4(%esp)
  589.         subss   %xmm4, %xmm0
  590.         testb   $2, %cl
  591.         mulss   %xmm5, %xmm0
  592.         addss   %xmm3, %xmm0
  593.         movaps  %xmm6, %xmm5
  594.         fcmove  %st(1), %st
  595.         fstp    %st(1)
  596.         mulss   %xmm0, %xmm2
  597.         movaps  %xmm6, %xmm0
  598.         mulss   %xmm1, %xmm0
  599.         mulss   %xmm6, %xmm5
  600.         subss   %xmm4, %xmm0
  601.         mulss   8(%esp), %xmm1
  602.         mulss   %xmm6, %xmm5
  603.         fstps   4(%esp)
  604.         mulss   %xmm6, %xmm0
  605.         addss   %xmm3, %xmm0
  606.         movss   8(%esp), %xmm6
  607.         mulss   %xmm0, %xmm5
  608.         subss   %xmm4, %xmm1
  609.         mulss   8(%esp), %xmm1
  610.         movss   4(%esp), %xmm7
  611.         mulss   %xmm6, %xmm6
  612.         mulss   8(%esp), %xmm6
  613.         addss   %xmm3, %xmm1
  614.         movl    %esi, 4(%esp)
  615.         movss   24(%esp), %xmm3
  616.         mulss   %xmm1, %xmm6
  617.         movss   4(%esp), %xmm1
  618.         fstps   4(%esp)
  619.         movss   4(%esp), %xmm0
  620.         fstps   4(%esp)
  621.         subss   %xmm7, %xmm1
  622.         mulss   %xmm2, %xmm1
  623.         movss   4(%esp), %xmm4
  624.         addss   %xmm7, %xmm1
  625.         subss   12(%esp), %xmm0
  626.         subss   20(%esp), %xmm3
  627.         subss   16(%esp), %xmm4
  628.         mulss   %xmm2, %xmm0
  629.         addss   12(%esp), %xmm0
  630.         mulss   %xmm2, %xmm4
  631.         mulss   %xmm3, %xmm2
  632.         addss   16(%esp), %xmm4
  633.         subss   %xmm1, %xmm0
  634.         mulss   %xmm5, %xmm0
  635.         addss   20(%esp), %xmm2
  636.         addss   %xmm1, %xmm0
  637.         subss   %xmm4, %xmm2
  638.         mulss   %xmm2, %xmm5
  639.         addss   %xmm5, %xmm4
  640.         subss   %xmm0, %xmm4
  641.         mulss   %xmm4, %xmm6
  642.         addss   %xmm6, %xmm0
  643.         movss   %xmm0, 24(%esp)
  644.         flds    24(%esp)
  645.         addl    $44, %esp
  646.         popl    %ebx
  647.         popl    %esi
  648.         ret
  649.         .section .rdata,"dr"
  650.         .align 4
  651. LC17:
  652.         .long   1008981770
  653.         .text
  654.         .p2align 4,,15
  655. .globl _Java_pack_Code_sse_1noise@20
  656.         .def    _Java_pack_Code_sse_1noise@20;  .scl    2;      .type   32;     .endef
  657. _Java_pack_Code_sse_1noise@20:
  658.         pushl   %ebp
  659.         movl    $1, %edx
  660.         pushl   %edi
  661.         pushl   %esi
  662.         pushl   %ebx
  663.         subl    $28, %esp
  664.         movl    64(%esp), %eax
  665.         movzbl  64(%esp), %ecx
  666.         movl    64(%esp), %ebx
  667.         addl    %eax, %eax
  668.         movl    %eax, 24(%esp)
  669.         movl    56(%esp), %eax
  670.         sall    %cl, %edx
  671.         movl    %edx, %ebp
  672.         leal    -1(%edx), %edi
  673.         movl    48(%esp), %esi
  674.         imull   %edx, %ebp
  675.         andl    $15, %eax
  676.         sall    $2, %ebx
  677.         movl    %ebx, 20(%esp)
  678.         imull   %edx, %ebp
  679.         xorl    %edx, %edx
  680.         movl    %edx, %ecx
  681.         orl     %eax, %ecx
  682.         jne     L376
  683. L359:
  684.         movl    56(%esp), %esi
  685.         movl    %ebp, %ebx
  686.         decl    %ebx
  687.         movl    %esi, 16(%esp)
  688.         js      L366
  689.         movzbl  64(%esp), %ecx
  690.         movl    %ebx, %esi
  691.         andl    $1, %esi
  692.         movl    %esi, 12(%esp)
  693.         movl    %ebx, %esi
  694.         movl    %ebx, %edx
  695.         movl    %ebx, %eax
  696.         sarl    %cl, %esi
  697.         andl    %edi, %esi
  698.         movzbl  24(%esp), %ecx
  699.         cvtsi2ss        %esi, %xmm0
  700.         movl    %ebp, %esi
  701.         sarl    %cl, %edx
  702.         andl    %edi, %edx
  703.         cvtsi2ss        %edx, %xmm1
  704.         movzbl  20(%esp), %ecx
  705.         mulss   LC17, %xmm0
  706.         sarl    %cl, %eax
  707.         andl    %edi, %eax
  708.         mulss   LC17, %xmm1
  709.         cvtsi2ss        %eax, %xmm2
  710.         movss   %xmm0, (%esp)
  711.         movss   %xmm1, 4(%esp)
  712.         mulss   LC17, %xmm2
  713.         movss   %xmm2, 8(%esp)
  714.         call    _noise
  715.         movl    16(%esp), %eax
  716.         subl    $2, %esi
  717.         fstps   (%eax,%ebx,4)
  718.         js      L366
  719.         movl    12(%esp), %ebx
  720.         testl   %ebx, %ebx
  721.         jne     L377
  722.         .p2align 4,,15
  723. L364:
  724.         movzbl  64(%esp), %ecx
  725.         movl    %esi, %ebp
  726.         movl    %esi, %edx
  727.         movl    %esi, %eax
  728.         sarl    %cl, %ebp
  729.         andl    %edi, %ebp
  730.         movzbl  24(%esp), %ecx
  731.         cvtsi2ss        %ebp, %xmm3
  732.         sarl    %cl, %edx
  733.         movzbl  20(%esp), %ecx
  734.         andl    %edi, %edx
  735.         cvtsi2ss        %edx, %xmm1
  736.         mulss   LC17, %xmm3
  737.         sarl    %cl, %eax
  738.         andl    %edi, %eax
  739.         mulss   LC17, %xmm1
  740.         cvtsi2ss        %eax, %xmm2
  741.         movss   %xmm3, (%esp)
  742.         movss   %xmm1, 4(%esp)
  743.         mulss   LC17, %xmm2
  744.         movss   %xmm2, 8(%esp)
  745.         call    _noise
  746.         movzbl  64(%esp), %ecx
  747.         movl    16(%esp), %ebx
  748.         fstps   (%ebx,%esi,4)
  749.         leal    -1(%esi), %ebx
  750.         movl    %ebx, %ebp
  751.         sarl    %cl, %ebp
  752.         movzbl  24(%esp), %ecx
  753.         movl    %ebx, %edx
  754.         movl    %ebx, %eax
  755.         andl    %edi, %ebp
  756.         cvtsi2ss        %ebp, %xmm6
  757.         sarl    %cl, %edx
  758.         movzbl  20(%esp), %ecx
  759.         andl    %edi, %edx
  760.         cvtsi2ss        %edx, %xmm7
  761.         mulss   LC17, %xmm6
  762.         sarl    %cl, %eax
  763.         andl    %edi, %eax
  764.         mulss   LC17, %xmm7
  765.         cvtsi2ss        %eax, %xmm0
  766.         movss   %xmm6, (%esp)
  767.         movss   %xmm7, 4(%esp)
  768.         mulss   LC17, %xmm0
  769.         movss   %xmm0, 8(%esp)
  770.         call    _noise
  771.         movl    16(%esp), %ebp
  772.         subl    $2, %esi
  773.         fstps   (%ebp,%ebx,4)
  774. L375:
  775.         jns     L364
  776. L366:
  777.         addl    $28, %esp
  778.         popl    %ebx
  779.         popl    %esi
  780.         popl    %edi
  781.         popl    %ebp
  782.         ret     $20
  783. L377:
  784.         movzbl  64(%esp), %ecx
  785.         movl    %esi, %ebx
  786.         movl    %esi, %edx
  787.         movl    %esi, %eax
  788.         sarl    %cl, %ebx
  789.         andl    %edi, %ebx
  790.         movzbl  24(%esp), %ecx
  791.         cvtsi2ss        %ebx, %xmm3
  792.         sarl    %cl, %edx
  793.         movzbl  20(%esp), %ecx
  794.         andl    %edi, %edx
  795.         cvtsi2ss        %edx, %xmm4
  796.         mulss   LC17, %xmm3
  797.         sarl    %cl, %eax
  798.         andl    %edi, %eax
  799.         mulss   LC17, %xmm4
  800.         cvtsi2ss        %eax, %xmm5
  801.         movss   %xmm3, (%esp)
  802.         movss   %xmm4, 4(%esp)
  803.         mulss   LC17, %xmm5
  804.         movss   %xmm5, 8(%esp)
  805.         call    _noise
  806.         movl    16(%esp), %edx
  807.         fstps   (%edx,%esi,4)
  808.         movl    %ebp, %esi
  809.         subl    $3, %esi
  810.         jmp     L375
  811. L376:
  812.         movl    (%esi), %ebx
  813.         movl    $LC0, %ecx
  814.         movl    %ecx, 4(%esp)
  815.         movl    %esi, (%esp)
  816.         call    *24(%ebx)
  817.         movl    $LC1, %edx
  818.         movl    %eax, %ebx
  819.         movl    (%esi), %eax
  820.         subl    $8, %esp
  821.         movl    %edx, 8(%esp)
  822.         movl    %ebx, 4(%esp)
  823.         movl    %esi, (%esp)
  824.         call    *56(%eax)
  825.         movl    (%esi), %eax
  826.         subl    $12, %esp
  827.         movl    %ebx, 4(%esp)
  828.         movl    %esi, (%esp)
  829.         call    *92(%eax)
  830.         subl    $8, %esp
  831.         jmp     L359
  832.         .comm   _perm, 2048      # 2048
  833.         .def    _memcpy;        .scl    2;      .type   32;     .endef
  834.         .section .drectve
  835.  
  836.         .ascii " -export:Java_pack_Code_sse_1noise@20"