Advertisement
Guest User

Untitled

a guest
Apr 27th, 2018
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.     .globl  sha256_transform
  2.     .type   sha256_transform, @function
  3. sha256_transform:
  4. .LFB29:
  5.     .cfi_startproc
  6.     pushq   %r15
  7.     .cfi_def_cfa_offset 16
  8.     .cfi_offset 15, -16
  9.     pushq   %r14
  10.     .cfi_def_cfa_offset 24
  11.     .cfi_offset 14, -24
  12.     pushq   %r13
  13.     .cfi_def_cfa_offset 32
  14.     .cfi_offset 13, -32
  15.     movl    $18, %r13d
  16.     pushq   %r12
  17.     .cfi_def_cfa_offset 40
  18.     .cfi_offset 12, -40
  19.     pushq   %rbp
  20.     .cfi_def_cfa_offset 48
  21.     .cfi_offset 6, -48
  22.     pushq   %rbx
  23.     .cfi_def_cfa_offset 56
  24.     .cfi_offset 3, -56
  25.     subq    $328, %rsp
  26.     .cfi_def_cfa_offset 384
  27.     movdqa  .LC0(%rip), %xmm3
  28.     movdqu  (%rsi), %xmm4
  29.     leaq    48(%rsp), %r14
  30.     movq    %rdi, 8(%rsp)
  31.     movdqu  16(%rsi), %xmm1
  32.     movdqa  %xmm3, %xmm0
  33.     movdqa  %xmm3, %xmm6
  34.     movdqa  %xmm3, %xmm7
  35.     movdqu  32(%rsi), %xmm5
  36.     movdqa  %xmm3, %xmm8
  37.     movdqa  %xmm3, %xmm9
  38.     movdqa  %xmm3, %xmm10
  39.     pand    %xmm1, %xmm6
  40.     pand    %xmm4, %xmm0
  41.     movdqu  48(%rsi), %xmm2
  42.     packuswb    %xmm6, %xmm0
  43.     pand    %xmm5, %xmm7
  44.     psrlw   $8, %xmm1
  45.     pand    %xmm0, %xmm9
  46.     movdqa  %xmm3, %xmm11
  47.     pand    %xmm2, %xmm8
  48.     psrlw   $8, %xmm4
  49.     packuswb    %xmm8, %xmm7
  50.     pand    %xmm7, %xmm10
  51.     psrlw   $8, %xmm2
  52.     packuswb    %xmm1, %xmm4
  53.     packuswb    %xmm10, %xmm9
  54.     pand    %xmm4, %xmm11
  55.     psrlw   $8, %xmm7
  56.     leaq    12(%r14), %r15
  57.     pmovzxbw    %xmm9, %xmm12
  58.     psrlw   $8, %xmm5
  59.     packuswb    %xmm2, %xmm5
  60.     pand    %xmm5, %xmm3
  61.     psrlw   $8, %xmm0
  62.     packuswb    %xmm3, %xmm11
  63.     packuswb    %xmm7, %xmm0
  64.     pmovzxbw    %xmm11, %xmm14
  65.     pmovzxbw    %xmm0, %xmm1
  66.     pmovzxwd    %xmm12, %xmm3
  67.     psrlw   $8, %xmm5
  68.     pmovzxwd    %xmm1, %xmm6
  69.     psrldq  $8, %xmm9
  70.     psrldq  $8, %xmm11
  71.     pmovzxbw    %xmm9, %xmm13
  72.     psrlw   $8, %xmm4
  73.     pmovzxbw    %xmm11, %xmm15
  74.     packuswb    %xmm5, %xmm4
  75.     psrldq  $8, %xmm0
  76.     pmovzxbw    %xmm4, %xmm2
  77.     pmovzxwd    %xmm14, %xmm5
  78.     pmovzxbw    %xmm0, %xmm0
  79.     psrldq  $8, %xmm14
  80.     pmovzxwd    %xmm2, %xmm7
  81.     psrldq  $8, %xmm12
  82.     pmovzxwd    %xmm14, %xmm8
  83.     pmovzxwd    %xmm13, %xmm14
  84.     psrldq  $8, %xmm1
  85.     pmovzxwd    %xmm12, %xmm9
  86.     pmovzxwd    %xmm15, %xmm12
  87.     psrldq  $8, %xmm4
  88.     pmovzxwd    %xmm1, %xmm10
  89.     pmovzxwd    %xmm0, %xmm1
  90.     pmovzxbw    %xmm4, %xmm4
  91.     psrldq  $8, %xmm2
  92.     psrldq  $8, %xmm15
  93.     pmovzxwd    %xmm2, %xmm11
  94.     pmovzxwd    %xmm4, %xmm2
  95.     psrldq  $8, %xmm13
  96.     pmovzxwd    %xmm15, %xmm15
  97.     psrldq  $8, %xmm0
  98.     pmovzxwd    %xmm13, %xmm13
  99.     pmovzxwd    %xmm0, %xmm0
  100.     psrldq  $8, %xmm4
  101.     pslld   $16, %xmm15
  102.     pmovzxwd    %xmm4, %xmm4
  103.     movq    %fs:40, %rax
  104.     movq    %rax, 312(%rsp)
  105.     xorl    %eax, %eax
  106.     pslld   $24, %xmm13
  107.     pslld   $8, %xmm0
  108.     por %xmm13, %xmm15
  109.     por %xmm4, %xmm0
  110.     por %xmm15, %xmm0
  111.     movaps  %xmm0, 96(%rsp)
  112.     movl    104(%rsp), %eax
  113.     pslld   $16, %xmm5
  114.     movl    108(%rsp), %r9d
  115.     pslld   $24, %xmm3
  116.     pslld   $8, %xmm6
  117.     por %xmm3, %xmm5
  118.     pslld   $16, %xmm8
  119.     por %xmm7, %xmm6
  120.     por %xmm6, %xmm5
  121.     movl    %eax, %ecx
  122.     pslld   $24, %xmm9
  123.     movaps  %xmm5, 48(%rsp)
  124.     movl    %eax, %r8d
  125.     roll    $15, %ecx
  126.     pslld   $8, %xmm1
  127.     por %xmm9, %xmm8
  128.     roll    $13, %r8d
  129.     movl    %r9d, %ebp
  130.     pslld   $8, %xmm10
  131.     por %xmm2, %xmm1
  132.     xorl    %r8d, %ecx
  133.     movl    %r9d, %r10d
  134.     por %xmm11, %xmm10
  135.     pslld   $16, %xmm12
  136.     por %xmm10, %xmm8
  137.     roll    $15, %ebp
  138.     pslld   $24, %xmm14
  139.     movaps  %xmm8, 64(%rsp)
  140.     roll    $13, %r10d
  141.     shrl    $10, %eax
  142.     por %xmm14, %xmm12
  143.     por %xmm1, %xmm12
  144.     movaps  %xmm12, 80(%rsp)
  145.     movl    4(%r14), %edx
  146.     xorl    %r10d, %ebp
  147.     shrl    $10, %r9d
  148.     xorl    %eax, %ecx
  149.     movd    %xmm5, %esi
  150.     xorl    %r9d, %ebp
  151.     addl    40(%r14), %ebp
  152.     addl    %esi, %ecx
  153.     addl    36(%r14), %ecx
  154.     movl    %edx, %r8d
  155.     movl    %edx, %ebx
  156.     roll    $14, %ebx
  157.     rorl    $7, %r8d
  158.     movl    %edx, %edi
  159.     xorl    %ebx, %r8d
  160.     movl    8(%r14), %ebx
  161.     shrl    $3, %edi
  162.     addl    %ebp, %edx
  163.     xorl    %edi, %r8d
  164.     addl    %ecx, %r8d
  165.     movl    %r8d, 64(%r14)
  166.     movl    %ebx, %eax
  167.     movl    %ebx, %r11d
  168.     movl    %ebx, %r12d
  169.     roll    $14, %r11d
  170.     rorl    $7, %eax
  171.     xorl    %r11d, %eax
  172.     shrl    $3, %r12d
  173.     movl    %ebx, %r11d
  174.     xorl    %r12d, %eax
  175.     addl    %edx, %eax
  176.     movl    %eax, 68(%r14)
  177.     .p2align 4,,10
  178.     .p2align 3
  179. .L2:
  180.     movl    (%r15), %r9d
  181.     movl    %r8d, %edx
  182.     movl    %r8d, %esi
  183.     shrl    $10, %r8d
  184.     roll    $13, %esi
  185.     roll    $15, %edx
  186.     movl    32(%r15), %edi
  187.     movl    %eax, %r10d
  188.     xorl    %esi, %edx
  189.     movl    4(%r15), %r12d
  190.     roll    $15, %r10d
  191.     xorl    %edx, %r8d
  192.     leal    (%r8,%r11), %ecx
  193.     movl    %r9d, %ebx
  194.     movl    %r9d, %r8d
  195.     roll    $14, %r8d
  196.     rorl    $7, %ebx
  197.     movl    %r9d, %ebp
  198.     xorl    %r8d, %ebx
  199.     shrl    $3, %ebp
  200.     addl    %ecx, %edi
  201.     xorl    %ebp, %ebx
  202.     movl    %eax, %r11d
  203.     shrl    $10, %eax
  204.     addl    %edi, %ebx
  205.     roll    $13, %r11d
  206.     movl    %r12d, %esi
  207.     movl    8(%r15), %edi
  208.     xorl    %r11d, %r10d
  209.     movl    %ebx, %r8d
  210.     movl    %ebx, %ebp
  211.     movl    %ebx, 60(%r15)
  212.     xorl    %r10d, %eax
  213.     roll    $15, %r8d
  214.     addl    36(%r15), %eax
  215.     movl    %r12d, %edx
  216.     roll    $13, %ebp
  217.     movl    %r12d, %ecx
  218.     movl    12(%r15), %r11d
  219.     shrl    $10, %ebx
  220.     xorl    %ebp, %r8d
  221.     roll    $14, %edx
  222.     xorl    %ebx, %r8d
  223.     rorl    $7, %esi
  224.     movl    40(%r15), %ebx
  225.     movl    %edi, %r10d
  226.     xorl    %edx, %esi
  227.     shrl    $3, %ecx
  228.     addl    %r12d, %r8d
  229.     leal    (%rax,%r9), %r9d
  230.     xorl    %ecx, %esi
  231.     movl    %edi, %r12d
  232.     addl    %r9d, %esi
  233.     movl    %r11d, %edx
  234.     movl    %r11d, %ecx
  235.     addl    %r8d, %ebx
  236.     movl    %esi, %eax
  237.     movl    %esi, %r9d
  238.     movl    %esi, 64(%r15)
  239.     movl    %edi, %r8d
  240.     rorl    $7, %r8d
  241.     roll    $14, %r12d
  242.     addl    $4, %r13d
  243.     roll    $15, %eax
  244.     roll    $13, %r9d
  245.     xorl    %r12d, %r8d
  246.     shrl    $10, %esi
  247.     xorl    %r9d, %eax
  248.     rorl    $7, %edx
  249.     xorl    %esi, %eax
  250.     addl    44(%r15), %eax
  251.     movl    %r11d, %esi
  252.     shrl    $3, %r10d
  253.     roll    $14, %esi
  254.     xorl    %r10d, %r8d
  255.     xorl    %esi, %edx
  256.     shrl    $3, %ecx
  257.     addl    %ebx, %r8d
  258.     xorl    %ecx, %edx
  259.     movl    %r8d, 68(%r15)
  260.     addq    $16, %r15
  261.     addl    %edi, %eax
  262.     addl    %edx, %eax
  263.     movl    %eax, 56(%r15)
  264.     cmpl    $62, %r13d
  265.     jne .L2
  266.     .p2align 4,,10
  267.     .p2align 3
  268. .L3:
  269.     leal    -2(%r13), %r15d
  270.     movl    %r13d, %r12d
  271.     movl    48(%rsp,%r15,4), %edi
  272.     leal    -15(%r13), %ebp
  273.     movl    48(%rsp,%rbp,4), %ebx
  274.     leal    -7(%r13), %r11d
  275.     leal    -16(%r13), %eax
  276.     addl    $1, %r13d
  277.     movl    48(%rsp,%rax,4), %r9d
  278.     movl    %edi, %r10d
  279.     movl    %edi, %r8d
  280.     addl    48(%rsp,%r11,4), %r9d
  281.     shrl    $10, %edi
  282.     movl    %ebx, %edx
  283.     movl    %ebx, %esi
  284.     roll    $15, %r10d
  285.     roll    $13, %r8d
  286.     rorl    $7, %edx
  287.     xorl    %r8d, %r10d
  288.     roll    $14, %esi
  289.     xorl    %edi, %r10d
  290.     xorl    %esi, %edx
  291.     shrl    $3, %ebx
  292.     addl    %r9d, %r10d
  293.     xorl    %ebx, %edx
  294.     addl    %r10d, %edx
  295.     movl    %edx, 48(%rsp,%r12,4)
  296.     cmpl    $64, %r13d
  297.     jne .L3
  298.     movq    8(%rsp), %rcx
  299.     leaq    k(%rip), %r15
  300.     xorl    %ebx, %ebx
  301.     movl    88(%rcx), %r9d
  302.     movl    92(%rcx), %edi
  303.     movl    108(%rcx), %edx
  304.     movl    80(%rcx), %r11d
  305.     movl    84(%rcx), %r12d
  306.     movl    %r9d, %r8d
  307.     movl    %r9d, 24(%rsp)
  308.     movl    96(%rcx), %r10d
  309.     movl    %edi, 28(%rsp)
  310.     movl    100(%rcx), %r13d
  311.     movl    %edx, 44(%rsp)
  312.     movl    %edx, %r9d
  313.     movl    104(%rcx), %esi
  314.     movl    %r11d, 16(%rsp)
  315.     movl    %r12d, 20(%rsp)
  316.     movl    %r10d, 32(%rsp)
  317.     movl    %r13d, 36(%rsp)
  318.     movl    %esi, 40(%rsp)
  319.     movl    %edi, 4(%rsp)
  320.     jmp .L4
  321.     .p2align 4,,10
  322.     .p2align 3
  323. .L6:
  324.     movl    %ebp, %edx
  325.     movl    %ebp, %r9d
  326.     movl    %ebp, %ecx
  327.     movl    %r11d, 4(%rsp)
  328.     rorl    $11, %r9d
  329.     rorl    $6, %edx
  330.     xorl    %r9d, %edx
  331.     movl    4(%r14,%rbx), %r9d
  332.     roll    $7, %ecx
  333.     addl    4(%r15,%rbx), %r9d
  334.     xorl    %ecx, %edx
  335.     movl    %ebp, %ecx
  336.     notl    %ecx
  337.     andl    %r13d, %ecx
  338.     addl    %r9d, %edx
  339.     movl    %ebp, %r9d
  340.     andl    %r10d, %r9d
  341.     xorl    %r9d, %ecx
  342.     movl    %eax, %r9d
  343.     addl    %edx, %ecx
  344.     movl    %eax, %edx
  345.     rorl    $2, %r9d
  346.     addl    %ecx, %esi
  347.     rorl    $13, %edx
  348.     movl    %eax, %ecx
  349.     xorl    %edx, %r9d
  350.     roll    $10, %ecx
  351.     movl    %eax, %edx
  352.     xorl    %ecx, %r9d
  353.     movl    %eax, %ecx
  354.     andl    %r11d, %edx
  355.     andl    %r12d, %ecx
  356.     addl    %esi, %r8d
  357.     xorl    %edx, %ecx
  358.     xorl    %ecx, %edi
  359.     addl    %r9d, %edi
  360.     movl    %r8d, %r9d
  361.     leal    (%rsi,%rdi), %ecx
  362.     movl    %r8d, %esi
  363.     movl    %r8d, %edi
  364.     rorl    $11, %edi
  365.     rorl    $6, %esi
  366.     xorl    %edi, %esi
  367.     movl    8(%r14,%rbx), %edi
  368.     roll    $7, %r9d
  369.     addl    8(%r15,%rbx), %edi
  370.     xorl    %r9d, %esi
  371.     movl    %r8d, %r9d
  372.     andl    %ebp, %r9d
  373.     addl    %edi, %esi
  374.     movl    %r8d, %edi
  375.     notl    %edi
  376.     andl    %r10d, %edi
  377.     xorl    %r9d, %edi
  378.     movl    %ecx, %r9d
  379.     addq    $12, %rbx
  380.     addl    %esi, %edi
  381.     movl    %ecx, %esi
  382.     roll    $10, %r9d
  383.     addl    %r13d, %edi
  384.     movl    %ecx, %r13d
  385.     rorl    $13, %esi
  386.     rorl    $2, %r13d
  387.     xorl    %esi, %r13d
  388.     movl    %ebp, %esi
  389.     xorl    %r13d, %r9d
  390.     movl    %r11d, %r13d
  391.     xorl    %eax, %r13d
  392.     andl    %ecx, %r13d
  393.     xorl    %r13d, %edx
  394.     movl    %r8d, %r13d
  395.     movl    %eax, %r8d
  396.     addl    %r9d, %edx
  397.     movl    %r10d, %r9d
  398.     leal    (%rdi,%rdx), %r11d
  399.     leal    (%rdi,%r12), %r10d
  400.     movl    %ecx, %r12d
  401. .L4:
  402.     movl    %r10d, %eax
  403.     movl    %r10d, %ecx
  404.     movl    (%r14,%rbx), %edx
  405.     movl    %r10d, %edi
  406.     addl    (%r15,%rbx), %edx
  407.     rorl    $11, %ecx
  408.     rorl    $6, %eax
  409.     movl    %r10d, %ebp
  410.     xorl    %ecx, %eax
  411.     roll    $7, %edi
  412.     xorl    %edi, %eax
  413.     notl    %ebp
  414.     movl    %r11d, %ecx
  415.     andl    %esi, %ebp
  416.     movl    %r11d, %edi
  417.     rorl    $2, %ecx
  418.     addl    %eax, %edx
  419.     movl    %r10d, %eax
  420.     rorl    $13, %edi
  421.     andl    %r13d, %eax
  422.     xorl    %edi, %ecx
  423.     movl    %r11d, %edi
  424.     xorl    %eax, %ebp
  425.     movl    %r11d, %eax
  426.     andl    %r12d, %edi
  427.     addl    %edx, %ebp
  428.     andl    %r8d, %eax
  429.     movl    %r11d, %edx
  430.     addl    %ebp, %r9d
  431.     movl    %r12d, %ebp
  432.     xorl    %edi, %eax
  433.     andl    %r8d, %ebp
  434.     roll    $10, %edx
  435.     xorl    %ebp, %eax
  436.     movl    4(%rsp), %ebp
  437.     xorl    %edx, %ecx
  438.     addl    %ecx, %eax
  439.     addl    %r9d, %eax
  440.     addl    %r9d, %ebp
  441.     cmpq    $252, %rbx
  442.     jne .L6
  443.     movd    %eax, %xmm7
  444.     movq    8(%rsp), %r14
  445.     movd    %r12d, %xmm5
  446.     movd    %r13d, %xmm9
  447.     movq    312(%rsp), %rax
  448.     xorq    %fs:40, %rax
  449.     pinsrd  $1, %r11d, %xmm7
  450.     movdqa  %xmm7, %xmm1
  451.     movd    %ebp, %xmm7
  452.     pinsrd  $1, %r8d, %xmm5
  453.     movd    24(%rsp), %xmm6
  454.     punpcklqdq  %xmm5, %xmm1
  455.     pinsrd  $1, 28(%rsp), %xmm6
  456.     movd    16(%rsp), %xmm8
  457.     pinsrd  $1, %r10d, %xmm7
  458.     pinsrd  $1, 20(%rsp), %xmm8
  459.     punpcklqdq  %xmm6, %xmm8
  460.     paddd   %xmm1, %xmm8
  461.     movdqa  %xmm7, %xmm1
  462.     pinsrd  $1, %esi, %xmm9
  463.     movd    40(%rsp), %xmm11
  464.     punpcklqdq  %xmm9, %xmm1
  465.     movd    32(%rsp), %xmm12
  466.     pinsrd  $1, 44(%rsp), %xmm11
  467.     pinsrd  $1, 36(%rsp), %xmm12
  468.     punpcklqdq  %xmm11, %xmm12
  469.     paddd   %xmm1, %xmm12
  470.     movups  %xmm8, 80(%r14)
  471.     movups  %xmm12, 96(%r14)
  472.     jne .L15
  473.     addq    $328, %rsp
  474.     .cfi_remember_state
  475.     .cfi_def_cfa_offset 56
  476.     popq    %rbx
  477.     .cfi_def_cfa_offset 48
  478.     popq    %rbp
  479.     .cfi_def_cfa_offset 40
  480.     popq    %r12
  481.     .cfi_def_cfa_offset 32
  482.     popq    %r13
  483.     .cfi_def_cfa_offset 24
  484.     popq    %r14
  485.     .cfi_def_cfa_offset 16
  486.     popq    %r15
  487.     .cfi_def_cfa_offset 8
  488.     ret
  489. .L15:
  490.     .cfi_restore_state
  491.     call    __stack_chk_fail@PLT
  492.     .cfi_endproc
  493. .LFE29:
  494.     .size   sha256_transform, .-sha256_transform
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement