user: 这段汇编代码用C语言表示是什么样的：

```asm
<mdfour64>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  push   %rbx
  sub    $0xa8,%rsp
  mov    %rdi,-0x88(%rbp)
  mov    %rsi,-0x90(%rbp)
  mov    %rdx,-0x98(%rbp)
  mov    %rcx,-0xa0(%rbp)
  mov    %r8,-0xa8(%rbp)
  mov    %fs:0x28,%rax
  mov    %rax,-0x18(%rbp)
  xor    %eax,%eax
  movl   $0x0,-0x74(%rbp)
  jmp    L14
L3:
  mov    -0x74(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x88(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%edx
  mov    -0x74(%rbp),%eax
  cltq
  mov    %edx,-0x60(%rbp,%rax,4)
  addl   $0x1,-0x74(%rbp)
L14:
  cmpl   $0xf,-0x74(%rbp)
  jle    L3
  mov    -0x90(%rbp),%rax
  mov    (%rax),%eax
  mov    %eax,-0x70(%rbp)
  mov    -0x98(%rbp),%rax
  mov    (%rax),%eax
  mov    %eax,-0x6c(%rbp)
  mov    -0xa0(%rbp),%rax
  mov    (%rax),%eax
  mov    %eax,-0x68(%rbp)
  mov    -0xa8(%rbp),%rax
  mov    (%rax),%eax
  mov    %eax,-0x64(%rbp)
  mov    -0x90(%rbp),%rax
  mov    (%rax),%ebx
  mov    -0xa8(%rbp),%rax
  mov    (%rax),%edx
  mov    -0xa0(%rbp),%rax
  mov    (%rax),%ecx
  mov    -0x98(%rbp),%rax
  mov    (%rax),%eax
  mov    %ecx,%esi
  mov    %eax,%edi
  call   <F@plt>
  lea    (%rbx,%rax,1),%edx
  mov    -0x60(%rbp),%eax
  add    %edx,%eax
  mov    $0x3,%esi
  mov    %eax,%edi
  call   <lshift@plt>
  mov    -0x90(%rbp),%rdx
  mov    %eax,(%rdx)
  mov    -0xa8(%rbp),%rax
  mov    (%rax),%ebx
  mov    -0xa0(%rbp),%rax
  mov    (%rax),%edx
  mov    -0x98(%rbp),%rax
  mov    (%rax),%ecx
  mov    -0x90(%rbp),%rax
  mov    (%rax),%eax
  mov    %ecx,%esi
  mov    %eax,%edi
  call   <F@plt>
  lea    (%rbx,%rax,1),%edx
  mov    -0x5c(%rbp),%eax
  add    %edx,%eax
  mov    $0x7,%esi
  mov    %eax,%edi
  call   <lshift@plt>
  mov    -0xa8(%rbp),%rdx
  mov    %eax,(%rdx)
  mov    -0xa0(%rbp),%rax
  mov    (%rax),%ebx
  mov    -0x98(%rbp),%rax
  mov    (%rax),%edx
  mov    -0x90(%rbp),%rax
  mov    (%rax),%ecx
  mov    -0xa8(%rbp),%rax
  mov    (%rax),%eax
  mov    %ecx,%esi
  mov    %eax,%edi
  call   <F@plt>
  lea    (%rbx,%rax,1),%edx
  mov    -0x58(%rbp),%eax
  add    %edx,%eax
  mov    $0xb,%esi
  mov    %eax,%edi
  call   <lshift@plt>
  mov    -0xa0(%rbp),%rdx
  mov    %eax,(%rdx)
  mov    -0x98(%rbp),%rax
  mov    (%rax),%ebx
  mov    -0x90(%rbp),%rax
  mov    (%rax),%edx
  mov    -0xa8(%rbp),%rax
  mov    (%rax),%ecx
  mov    -0xa0(%rbp),%rax
  mov    (%rax),%eax
  mov    %ecx,%esi
  mov    %eax,%edi
  call   <F@plt>
  lea    (%rbx,%rax,1),%edx
  mov    -0x54(%rbp),%eax
  add    %edx,%eax
  mov    $0x13,%esi
  mov    %eax,%edi
  call   <lshift@plt>
  mov    -0x98(%rbp),%rdx
  mov    %eax,(%rdx)
  mov    -0x90(%rbp),%rax
  mov    (%rax),%ebx
  mov    -0xa8(%rbp),%rax
  mov    (%rax),%edx
  mov    -0xa0(%rbp),%rax
  mov    (%rax),%ecx
  mov    -0x98(%rbp),%rax
  mov    (%rax),%eax
  mov    %ecx,%esi
  mov    %eax,%edi
  call   <F@plt>
  lea    (%rbx,%rax,1),%edx
  mov    -0x50(%rbp),%eax
  add    %edx,%eax
  mov    $0x3,%esi
  mov    %eax,%edi
  call   <lshift@plt>
  mov    -0x90(%rbp),%rdx
  mov    %eax,(%rdx)
  mov    -0xa8(%rbp),%rax
  mov    (%rax),%ebx
  mov    -0xa0(%rbp),%rax
  mov    (%rax),%edx
  mov    -0x98(%rbp),%rax
  mov    (%rax),%ecx
  mov    -0x90(%rbp),%rax
  mov    (%rax),%eax
  mov    %ecx,%esi
  mov    %eax,%edi
  call   <F@plt>
  lea    (%rbx,%rax,1),%edx
  mov    -0x4c(%rbp),%eax
  add    %edx,%eax
  mov    $0x7,%esi
  mov    %eax,%edi
  call   <lshift@plt>
  mov    -0xa8(%rbp),%rdx
  mov    %eax,(%rdx)
  mov    -0xa0(%rbp),%rax
  mov    (%rax),%ebx
  mov    -0x98(%rbp),%rax
  mov    (%rax),%edx
  mov    -0x90(%rbp),%rax
  mov    (%rax),%ecx
  mov    -0xa8(%rbp),%rax
  mov    (%rax),%eax
  mov    %ecx,%esi
  mov    %eax,%edi
  call   <F@plt>
  lea    (%rbx,%rax,1),%edx
  mov    -0x48(%rbp),%eax
  add    %edx,%eax
  mov    $0xb,%esi
  mov    %eax,%edi
  call   <lshift@plt>
  mov    -0xa0(%rbp),%rdx
  mov    %eax,(%rdx)
  mov    -0x98(%rbp),%rax
  mov    (%rax),%ebx
  mov    -0x90(%rbp),%rax
  mov    (%rax),%edx
  mov    -0xa8(%rbp),%rax
  mov    (%rax),%ecx
  mov    -0xa0(%rbp),%rax
  mov    (%rax),%eax
  mov    %ecx,%esi
  mov    %eax,%edi
  call   <F@plt>
  lea    (%rbx,%rax,1),%edx
  mov    -0x44(%rbp),%eax
  add    %edx,%eax
  mov    $0x13,%esi
  mov    %eax,%edi
  call   <lshift@plt>
  mov    -0x98(%rbp),%rdx
  mov    %eax,(%rdx)
  mov    -0x90(%rbp),%rax
  mov    (%rax),%ebx
  mov    -0xa8(%rbp),%rax
  mov    (%rax),%edx
  mov    -0xa0(%rbp),%rax
  mov    (%rax),%ecx
  mov    -0x98(%rbp),%rax
  mov    (%rax),%eax
  mov    %ecx,%esi
  mov    %eax,%edi
  call   <F@plt>
  lea    (%rbx,%rax,1),%edx
  mov    -0x40(%rbp),%eax
  add    %edx,%eax
  mov    $0x3,%esi
  mov    %eax,%edi
  call   <lshift@plt>
  mov    -0x90(%rbp),%rdx
  mov    %eax,(%rdx)
  mov    -0xa8(%rbp),%rax
  mov    (%rax),%ebx
  mov    -0xa0(%rbp),%rax
  mov    (%rax),%edx
  mov    -0x98(%rbp),%rax
  mov    (%rax),%ecx
  mov    -0x90(%rbp),%rax
  mov    (%rax),%eax
  mov    %ecx,%esi
  mov    %eax,%edi
  call   <F@plt>
  lea    (%rbx,%rax,1),%edx
  mov    -0x3c(%rbp),%eax
  add    %edx,%eax
  mov    $0x7,%esi
  mov    %eax,%edi
  call   <lshift@plt>
  mov    -0xa8(%rbp),%rdx
  mov    %eax,(%rdx)
  mov    -0xa0(%rbp),%rax
  mov    (%rax),%ebx
  mov    -0x98(%rbp),%rax
  mov    (%rax),%edx
  mov    -0x90(%rbp),%rax
  mov    (%rax),%ecx
  mov    -0xa8(%rbp),%rax
  mov    (%rax),%eax
  mov    %ecx,%esi
  mov    %eax,%edi
  call   <F@plt>
  lea    (%rbx,%rax,1),%edx
  mov    -0x38(%rbp),%eax
  add    %edx,%eax
  mov    $0xb,%esi
  mov    %eax,%edi
  call   <lshift@plt>
  mov    -0xa0(%rbp),%rdx
  mov    %eax,(%rdx)
  mov    -0x98(%rbp),%rax
  mov    (%rax),%ebx
  mov    -0x90(%rbp),%rax
  mov    (%rax),%edx
  mov    -0xa8(%rbp),%rax
  mov    (%rax),%ecx
  mov    -0xa0(%rbp),%rax
  mov    (%rax),%eax
  mov    %ecx,%esi
  mov    %eax,%edi
  call   <F@plt>
  lea    (%rbx,%rax,1),%edx
  mov    -0x34(%rbp),%eax
  add    %edx,%eax
  mov    $0x13,%esi
  mov    %eax,%edi
  call   <lshift@plt>
  mov    -0x98(%rbp),%rdx
  mov    %eax,(%rdx)
  mov    -0x90(%rbp),%rax
  mov    (%rax),%ebx
  mov    -0xa8(%rbp),%rax
  mov    (%rax),%edx
  mov    -0xa0(%rbp),%rax
  mov    (%rax),%ecx
  mov    -0x98(%rbp),%rax
  mov    (%rax),%eax
  mov    %ecx,%esi
  mov    %eax,%edi
  call   <F@plt>
  lea    (%rbx,%rax,1),%edx
  mov    -0x30(%rbp),%eax
  add    %edx,%eax
  mov    $0x3,%esi
  mov    %eax,%edi
  call   <lshift@plt>
  mov    -0x90(%rbp),%rdx
  mov    %eax,(%rdx)
  mov    -0xa8(%rbp),%rax
  mov    (%rax),%ebx
  mov    -0xa0(%rbp),%rax
  mov    (%rax),%edx
  mov    -0x98(%rbp),%rax
  mov    (%rax),%ecx
  mov    -0x90(%rbp),%rax
  mov    (%rax),%eax
  mov    %ecx,%esi
  mov    %eax,%edi
  call   <F@plt>
  lea    (%rbx,%rax,1),%edx
  mov    -0x2c(%rbp),%eax
  add    %edx,%eax
  mov    $0x7,%esi
  mov    %eax,%edi
  call   <lshift@plt>
  mov    -0xa8(%rbp),%rdx
  mov    %eax,(%rdx)
  mov    -0xa0(%rbp),%rax
  mov    (%rax),%ebx
  mov    -0x98(%rbp),%rax
  mov    (%rax),%edx
  mov    -0x90(%rbp),%rax
  mov    (%rax),%ecx
  mov    -0xa8(%rbp),%rax
  mov    (%rax),%eax
  mov    %ecx,%esi
  mov    %eax,%edi
  call   <F@plt>
  lea    (%rbx,%rax,1),%edx
  mov    -0x28(%rbp),%eax
  add    %edx,%eax
  mov    $0xb,%esi
  mov    %eax,%edi
  call   <lshift@plt>
  mov    -0xa0(%rbp),%rdx
  mov    %eax,(%rdx)
  mov    -0x98(%rbp),%rax
  mov    (%rax),%ebx
  mov    -0x90(%rbp),%rax
  mov    (%rax),%edx
  mov    -0xa8(%rbp),%rax
  mov    (%rax),%ecx
  mov    -0xa0(%rbp),%rax
  mov    (%rax),%eax
  mov    %ecx,%esi
  mov    %eax,%edi
  call   <F@plt>
  lea    (%rbx,%rax,1),%edx
  mov    -0x24(%rbp),%eax
  add    %edx,%eax
  mov    $0x13,%esi
  mov    %eax,%edi
  call   <lshift@plt>
  mov    -0x98(%rbp),%rdx
  mov    %eax,(%rdx)
  mov    -0x90(%rbp),%rax
  mov    (%rax),%ebx
  mov    -0xa8(%rbp),%rax
  mov    (%rax),%edx
  mov    -0xa0(%rbp),%rax
  mov    (%rax),%ecx
  mov    -0x98(%rbp),%rax
  mov    (%rax),%eax
  mov    %ecx,%esi
  mov    %eax,%edi
  call   <G@plt>
  lea    (%rbx,%rax,1),%edx
  mov    -0x60(%rbp),%eax
  add    %edx,%eax
  add    $0x5a827999,%eax
  mov    $0x3,%esi
  mov    %eax,%edi
  call   <lshift@plt>
  mov    -0x90(%rbp),%rdx
  mov    %eax,(%rdx)
  mov    -0xa8(%rbp),%rax
  mov    (%rax),%ebx
  mov    -0xa0(%rbp),%rax
  mov    (%rax),%edx
  mov    -0x98(%rbp),%rax
  mov    (%rax),%ecx
  mov    -0x90(%rbp),%rax
  mov    (%rax),%eax
  mov    %ecx,%esi
  mov    %eax,%edi
  call   <G@plt>
  lea    (%rbx,%rax,1),%edx
  mov    -0x50(%rbp),%eax
  add    %edx,%eax
  add    $0x5a827999,%eax
  mov    $0x5,%esi
  mov    %eax,%edi
  call   <lshift@plt>
  mov    -0xa8(%rbp),%rdx
  mov    %eax,(%rdx)
  mov    -0xa0(%rbp),%rax
  mov    (%rax),%ebx
  mov    -0x98(%rbp),%rax
  mov    (%rax),%edx
  mov    -0x90(%rbp),%rax
  mov    (%rax),%ecx
  mov    -0xa8(%rbp),%rax
  mov    (%rax),%eax
  mov    %ecx,%esi
  mov    %eax,%edi
  call   <G@plt>
  lea    (%rbx,%rax,1),%edx
  mov    -0x40(%rbp),%eax
  add    %edx,%eax
  add    $0x5a827999,%eax
  mov    $0x9,%esi
  mov    %eax,%edi
  call   <lshift@plt>
  mov    -0xa0(%rbp),%rdx
  mov    %eax,(%rdx)
  mov    -0x98(%rbp),%rax
  mov    (%rax),%ebx
  mov    -0x90(%rbp),%rax
  mov    (%rax),%edx
  mov    -0xa8(%rbp),%rax
  mov    (%rax),%ecx
  mov    -0xa0(%rbp),%rax
  mov    (%rax),%eax
  mov    %ecx,%esi
  mov    %eax,%edi
  call   <G@plt>
  lea    (%rbx,%rax,1),%edx
  mov    -0x30(%rbp),%eax
  add    %edx,%eax
  add    $0x5a827999,%eax
  mov    $0xd,%esi
  mov    %eax,%edi
  call   <lshift@plt>
  mov    -0x98(%rbp),%rdx
  mov    %eax,(%rdx)
  mov    -0x90(%rbp),%rax
  mov    (%rax),%ebx
  mov    -0xa8(%rbp),%rax
  mov    (%rax),%edx
  mov    -0xa0(%rbp),%rax
  mov    (%rax),%ecx
  mov    -0x98(%rbp),%rax
  mov    (%rax),%eax
  mov    %ecx,%esi
  mov    %eax,%edi
  call   <G@plt>
  lea    (%rbx,%rax,1),%edx
  mov    -0x5c(%rbp),%eax
  add    %edx,%eax
  add    $0x5a827999,%eax
  mov    $0x3,%esi
  mov    %eax,%edi
  call   <lshift@plt>
  mov    -0x90(%rbp),%rdx
  mov    %eax,(%rdx)
  mov    -0xa8(%rbp),%rax
  mov    (%rax),%ebx
  mov    -0xa0(%rbp),%rax
  mov    (%rax),%edx
  mov    -0x98(%rbp),%rax
  mov    (%rax),%ecx
  mov    -0x90(%rbp),%rax
  mov    (%rax),%eax
  mov    %ecx,%esi
  mov    %eax,%edi
  call   <G@plt>
  lea    (%rbx,%rax,1),%edx
  mov    -0x4c(%rbp),%eax
  add    %edx,%eax
  add    $0x5a827999,%eax
  mov    $0x5,%esi
  mov    %eax,%edi
  call   <lshift@plt>
  mov    -0xa8(%rbp),%rdx
  mov    %eax,(%rdx)
  mov    -0xa0(%rbp),%rax
  mov    (%rax),%ebx
  mov    -0x98(%rbp),%rax
  mov    (%rax),%edx
  mov    -0x90(%rbp),%rax
  mov    (%rax),%ecx
  mov    -0xa8(%rbp),%rax
  mov    (%rax),%eax
  mov    %ecx,%esi
  mov    %eax,%edi
  call   <G@plt>
  lea    (%rbx,%rax,1),%edx
  mov    -0x3c(%rbp),%eax
  add    %edx,%eax
  add    $0x5a827999,%eax
  mov    $0x9,%esi
  mov    %eax,%edi
  call   <lshift@plt>
  mov    -0xa0(%rbp),%rdx
  mov    %eax,(%rdx)
  mov    -0x98(%rbp),%rax
  mov    (%rax),%ebx
  mov    -0x90(%rbp),%rax
  mov    (%rax),%edx
  mov    -0xa8(%rbp),%rax
  mov    (%rax),%ecx
  mov    -0xa0(%rbp),%rax
  mov    (%rax),%eax
  mov    %ecx,%esi
  mov    %eax,%edi
  call   <G@plt>
  lea    (%rbx,%rax,1),%edx
  mov    -0x2c(%rbp),%eax
  add    %edx,%eax
  add    $0x5a827999,%eax
  mov    $0xd,%esi
  mov    %eax,%edi
  call   <lshift@plt>
  mov    -0x98(%rbp),%rdx
  mov    %eax,(%rdx)
  mov    -0x90(%rbp),%rax
  mov    (%rax),%ebx
  mov    -0xa8(%rbp),%rax
  mov    (%rax),%edx
  mov    -0xa0(%rbp),%rax
  mov    (%rax),%ecx
  mov    -0x98(%rbp),%rax
  mov    (%rax),%eax
  mov    %ecx,%esi
  mov    %eax,%edi
  call   <G@plt>
  lea    (%rbx,%rax,1),%edx
  mov    -0x58(%rbp),%eax
  add    %edx,%eax
  add    $0x5a827999,%eax
  mov    $0x3,%esi
  mov    %eax,%edi
  call   <lshift@plt>
  mov    -0x90(%rbp),%rdx
  mov    %eax,(%rdx)
  mov    -0xa8(%rbp),%rax
  mov    (%rax),%ebx
  mov    -0xa0(%rbp),%rax
  mov    (%rax),%edx
  mov    -0x98(%rbp),%rax
  mov    (%rax),%ecx
  mov    -0x90(%rbp),%rax
  mov    (%rax),%eax
  mov    %ecx,%esi
  mov    %eax,%edi
  call   <G@plt>
  lea    (%rbx,%rax,1),%edx
  mov    -0x48(%rbp),%eax
  add    %edx,%eax
  add    $0x5a827999,%eax
  mov    $0x5,%esi
  mov    %eax,%edi
  call   <lshift@plt>
  mov    -0xa8(%rbp),%rdx
  mov    %eax,(%rdx)
  mov    -0xa0(%rbp),%rax
  mov    (%rax),%ebx
  mov    -0x98(%rbp),%rax
  mov    (%rax),%edx
  mov    -0x90(%rbp),%rax
  mov    (%rax),%ecx
  mov    -0xa8(%rbp),%rax
  mov    (%rax),%eax
  mov    %ecx,%esi
  mov    %eax,%edi
  call   <G@plt>
  lea    (%rbx,%rax,1),%edx
  mov    -0x38(%rbp),%eax
  add    %edx,%eax
  add    $0x5a827999,%eax
  mov    $0x9,%esi
  mov    %eax,%edi
  call   <lshift@plt>
  mov    -0xa0(%rbp),%rdx
  mov    %eax,(%rdx)
  mov    -0x98(%rbp),%rax
  mov    (%rax),%ebx
  mov    -0x90(%rbp),%rax
  mov    (%rax),%edx
  mov    -0xa8(%rbp),%rax
  mov    (%rax),%ecx
  mov    -0xa0(%rbp),%rax
  mov    (%rax),%eax
  mov    %ecx,%esi
  mov    %eax,%edi
  call   <G@plt>
  lea    (%rbx,%rax,1),%edx
  mov    -0x28(%rbp),%eax
  add    %edx,%eax
  add    $0x5a827999,%eax
  mov    $0xd,%esi
  mov    %eax,%edi
  call   <lshift@plt>
  mov    -0x98(%rbp),%rdx
  mov    %eax,(%rdx)
  mov    -0x90(%rbp),%rax
  mov    (%rax),%ebx
  mov    -0xa8(%rbp),%rax
  mov    (%rax),%edx
  mov    -0xa0(%rbp),%rax
  mov    (%rax),%ecx
  mov    -0x98(%rbp),%rax
  mov    (%rax),%eax
  mov    %ecx,%esi
  mov    %eax,%edi
  call   <G@plt>
  lea    (%rbx,%rax,1),%edx
  mov    -0x54(%rbp),%eax
  add    %edx,%eax
  add    $0x5a827999,%eax
  mov    $0x3,%esi
  mov    %eax,%edi
  call   <lshift@plt>
  mov    -0x90(%rbp),%rdx
  mov    %eax,(%rdx)
  mov    -0xa8(%rbp),%rax
  mov    (%rax),%ebx
  mov    -0xa0(%rbp),%rax
  mov    (%rax),%edx
  mov    -0x98(%rbp),%rax
  mov    (%rax),%ecx
  mov    -0x90(%rbp),%rax
  mov    (%rax),%eax
  mov    %ecx,%esi
  mov    %eax,%edi
  call   <G@plt>
  lea    (%rbx,%rax,1),%edx
  mov    -0x44(%rbp),%eax
  add    %edx,%eax
  add    $0x5a827999,%eax
  mov    $0x5,%esi
  mov    %eax,%edi
  call   <lshift@plt>
  mov    -0xa8(%rbp),%rdx
  mov    %eax,(%rdx)
  mov    -0xa0(%rbp),%rax
  mov    (%rax),%ebx
  mov    -0x98(%rbp),%rax
  mov    (%rax),%edx
  mov    -0x90(%rbp),%rax
  mov    (%rax),%ecx
  mov    -0xa8(%rbp),%rax
  mov    (%rax),%eax
  mov    %ecx,%esi
  mov    %eax,%edi
  call   <G@plt>
  lea    (%rbx,%rax,1),%edx
  mov    -0x34(%rbp),%eax
  add    %edx,%eax
  add    $0x5a827999,%eax
  mov    $0x9,%esi
  mov    %eax,%edi
  call   <lshift@plt>
  mov    -0xa0(%rbp),%rdx
  mov    %eax,(%rdx)
  mov    -0x98(%rbp),%rax
  mov    (%rax),%ebx
  mov    -0x90(%rbp),%rax
  mov    (%rax),%edx
  mov    -0xa8(%rbp),%rax
  mov    (%rax),%ecx
  mov    -0xa0(%rbp),%rax
  mov    (%rax),%eax
  mov    %ecx,%esi
  mov    %eax,%edi
  call   <G@plt>
  lea    (%rbx,%rax,1),%edx
  mov    -0x24(%rbp),%eax
  add    %edx,%eax
  add    $0x5a827999,%eax
  mov    $0xd,%esi
  mov    %eax,%edi
  call   <lshift@plt>
  mov    -0x98(%rbp),%rdx
  mov    %eax,(%rdx)
  mov    -0x90(%rbp),%rax
  mov    (%rax),%ebx
  mov    -0xa8(%rbp),%rax
  mov    (%rax),%edx
  mov    -0xa0(%rbp),%rax
  mov    (%rax),%ecx
  mov    -0x98(%rbp),%rax
  mov    (%rax),%eax
  mov    %ecx,%esi
  mov    %eax,%edi
  call   <H@plt>
  lea    (%rbx,%rax,1),%edx
  mov    -0x60(%rbp),%eax
  add    %edx,%eax
  add    $0x6ed9eba1,%eax
  mov    $0x3,%esi
  mov    %eax,%edi
  call   <lshift@plt>
  mov    -0x90(%rbp),%rdx
  mov    %eax,(%rdx)
  mov    -0xa8(%rbp),%rax
  mov    (%rax),%ebx
  mov    -0xa0(%rbp),%rax
  mov    (%rax),%edx
  mov    -0x98(%rbp),%rax
  mov    (%rax),%ecx
  mov    -0x90(%rbp),%rax
  mov    (%rax),%eax
  mov    %ecx,%esi
  mov    %eax,%edi
  call   <H@plt>
  lea    (%rbx,%rax,1),%edx
  mov    -0x40(%rbp),%eax
  add    %edx,%eax
  add    $0x6ed9eba1,%eax
  mov    $0x9,%esi
  mov    %eax,%edi
  call   <lshift@plt>
  mov    -0xa8(%rbp),%rdx
  mov    %eax,(%rdx)
  mov    -0xa0(%rbp),%rax
  mov    (%rax),%ebx
  mov    -0x98(%rbp),%rax
  mov    (%rax),%edx
  mov    -0x90(%rbp),%rax
  mov    (%rax),%ecx
  mov    -0xa8(%rbp),%rax
  mov    (%rax),%eax
  mov    %ecx,%esi
  mov    %eax,%edi
  call   <H@plt>
  lea    (%rbx,%rax,1),%edx
  mov    -0x50(%rbp),%eax
  add    %edx,%eax
  add    $0x6ed9eba1,%eax
  mov    $0xb,%esi
  mov    %eax,%edi
  call   <lshift@plt>
  mov    -0xa0(%rbp),%rdx
  mov    %eax,(%rdx)
  mov    -0x98(%rbp),%rax
  mov    (%rax),%ebx
  mov    -0x90(%rbp),%rax
  mov    (%rax),%edx
  mov    -0xa8(%rbp),%rax
  mov    (%rax),%ecx
  mov    -0xa0(%rbp),%rax
  mov    (%rax),%eax
  mov    %ecx,%esi
  mov    %eax,%edi
  call   <H@plt>
  lea    (%rbx,%rax,1),%edx
  mov    -0x30(%rbp),%eax
  add    %edx,%eax
  add    $0x6ed9eba1,%eax
  mov    $0xf,%esi
  mov    %eax,%edi
  call   <lshift@plt>
  mov    -0x98(%rbp),%rdx
  mov    %eax,(%rdx)
  mov    -0x90(%rbp),%rax
  mov    (%rax),%ebx
  mov    -0xa8(%rbp),%rax
  mov    (%rax),%edx
  mov    -0xa0(%rbp),%rax
  mov    (%rax),%ecx
  mov    -0x98(%rbp),%rax
  mov    (%rax),%eax
  mov    %ecx,%esi
  mov    %eax,%edi
  call   <H@plt>
  lea    (%rbx,%rax,1),%edx
  mov    -0x58(%rbp),%eax
  add    %edx,%eax
  add    $0x6ed9eba1,%eax
  mov    $0x3,%esi
  mov    %eax,%edi
  call   <lshift@plt>
  mov    -0x90(%rbp),%rdx
  mov    %eax,(%rdx)
  mov    -0xa8(%rbp),%rax
  mov    (%rax),%ebx
  mov    -0xa0(%rbp),%rax
  mov    (%rax),%edx
  mov    -0x98(%rbp),%rax
  mov    (%rax),%ecx
  mov    -0x90(%rbp),%rax
  mov    (%rax),%eax
  mov    %ecx,%esi
  mov    %eax,%edi
  call   <H@plt>
  lea    (%rbx,%rax,1),%edx
  mov    -0x38(%rbp),%eax
  add    %edx,%eax
  add    $0x6ed9eba1,%eax
  mov    $0x9,%esi
  mov    %eax,%edi
  call   <lshift@plt>
  mov    -0xa8(%rbp),%rdx
  mov    %eax,(%rdx)
  mov    -0xa0(%rbp),%rax
  mov    (%rax),%ebx
  mov    -0x98(%rbp),%rax
  mov    (%rax),%edx
  mov    -0x90(%rbp),%rax
  mov    (%rax),%ecx
  mov    -0xa8(%rbp),%rax
  mov    (%rax),%eax
  mov    %ecx,%esi
  mov    %eax,%edi
  call   <H@plt>
  lea    (%rbx,%rax,1),%edx
  mov    -0x48(%rbp),%eax
  add    %edx,%eax
  add    $0x6ed9eba1,%eax
  mov    $0xb,%esi
  mov    %eax,%edi
  call   <lshift@plt>
  mov    -0xa0(%rbp),%rdx
  mov    %eax,(%rdx)
  mov    -0x98(%rbp),%rax
  mov    (%rax),%ebx
  mov    -0x90(%rbp),%rax
  mov    (%rax),%edx
  mov    -0xa8(%rbp),%rax
  mov    (%rax),%ecx
  mov    -0xa0(%rbp),%rax
  mov    (%rax),%eax
  mov    %ecx,%esi
  mov    %eax,%edi
  call   <H@plt>
  lea    (%rbx,%rax,1),%edx
  mov    -0x28(%rbp),%eax
  add    %edx,%eax
  add    $0x6ed9eba1,%eax
  mov    $0xf,%esi
  mov    %eax,%edi
  call   <lshift@plt>
  mov    -0x98(%rbp),%rdx
  mov    %eax,(%rdx)
  mov    -0x90(%rbp),%rax
  mov    (%rax),%ebx
  mov    -0xa8(%rbp),%rax
  mov    (%rax),%edx
  mov    -0xa0(%rbp),%rax
  mov    (%rax),%ecx
  mov    -0x98(%rbp),%rax
  mov    (%rax),%eax
  mov    %ecx,%esi
  mov    %eax,%edi
  call   <H@plt>
  lea    (%rbx,%rax,1),%edx
  mov    -0x5c(%rbp),%eax
  add    %edx,%eax
  add    $0x6ed9eba1,%eax
  mov    $0x3,%esi
  mov    %eax,%edi
  call   <lshift@plt>
  mov    -0x90(%rbp),%rdx
  mov    %eax,(%rdx)
  mov    -0xa8(%rbp),%rax
  mov    (%rax),%ebx
  mov    -0xa0(%rbp),%rax
  mov    (%rax),%edx
  mov    -0x98(%rbp),%rax
  mov    (%rax),%ecx
  mov    -0x90(%rbp),%rax
  mov    (%rax),%eax
  mov    %ecx,%esi
  mov    %eax,%edi
  call   <H@plt>
  lea    (%rbx,%rax,1),%edx
  mov    -0x3c(%rbp),%eax
  add    %edx,%eax
  add    $0x6ed9eba1,%eax
  mov    $0x9,%esi
  mov    %eax,%edi
  call   <lshift@plt>
  mov    -0xa8(%rbp),%rdx
  mov    %eax,(%rdx)
  mov    -0xa0(%rbp),%rax
  mov    (%rax),%ebx
  mov    -0x98(%rbp),%rax
  mov    (%rax),%edx
  mov    -0x90(%rbp),%rax
  mov    (%rax),%ecx
  mov    -0xa8(%rbp),%rax
  mov    (%rax),%eax
  mov    %ecx,%esi
  mov    %eax,%edi
  call   <H@plt>
  lea    (%rbx,%rax,1),%edx
  mov    -0x4c(%rbp),%eax
  add    %edx,%eax
  add    $0x6ed9eba1,%eax
  mov    $0xb,%esi
  mov    %eax,%edi
  call   <lshift@plt>
  mov    -0xa0(%rbp),%rdx
  mov    %eax,(%rdx)
  mov    -0x98(%rbp),%rax
  mov    (%rax),%ebx
  mov    -0x90(%rbp),%rax
  mov    (%rax),%edx
  mov    -0xa8(%rbp),%rax
  mov    (%rax),%ecx
  mov    -0xa0(%rbp),%rax
  mov    (%rax),%eax
  mov    %ecx,%esi
  mov    %eax,%edi
  call   <H@plt>
  lea    (%rbx,%rax,1),%edx
  mov    -0x2c(%rbp),%eax
  add    %edx,%eax
  add    $0x6ed9eba1,%eax
  mov    $0xf,%esi
  mov    %eax,%edi
  call   <lshift@plt>
  mov    -0x98(%rbp),%rdx
  mov    %eax,(%rdx)
  mov    -0x90(%rbp),%rax
  mov    (%rax),%ebx
  mov    -0xa8(%rbp),%rax
  mov    (%rax),%edx
  mov    -0xa0(%rbp),%rax
  mov    (%rax),%ecx
  mov    -0x98(%rbp),%rax
  mov    (%rax),%eax
  mov    %ecx,%esi
  mov    %eax,%edi
  call   <H@plt>
  lea    (%rbx,%rax,1),%edx
  mov    -0x54(%rbp),%eax
  add    %edx,%eax
  add    $0x6ed9eba1,%eax
  mov    $0x3,%esi
  mov    %eax,%edi
  call   <lshift@plt>
  mov    -0x90(%rbp),%rdx
  mov    %eax,(%rdx)
  mov    -0xa8(%rbp),%rax
  mov    (%rax),%ebx
  mov    -0xa0(%rbp),%rax
  mov    (%rax),%edx
  mov    -0x98(%rbp),%rax
  mov    (%rax),%ecx
  mov    -0x90(%rbp),%rax
  mov    (%rax),%eax
  mov    %ecx,%esi
  mov    %eax,%edi
  call   <H@plt>
  lea    (%rbx,%rax,1),%edx
  mov    -0x34(%rbp),%eax
  add    %edx,%eax
  add    $0x6ed9eba1,%eax
  mov    $0x9,%esi
  mov    %eax,%edi
  call   <lshift@plt>
  mov    -0xa8(%rbp),%rdx
  mov    %eax,(%rdx)
  mov    -0xa0(%rbp),%rax
  mov    (%rax),%ebx
  mov    -0x98(%rbp),%rax
  mov    (%rax),%edx
  mov    -0x90(%rbp),%rax
  mov    (%rax),%ecx
  mov    -0xa8(%rbp),%rax
  mov    (%rax),%eax
  mov    %ecx,%esi
  mov    %eax,%edi
  call   <H@plt>
  lea    (%rbx,%rax,1),%edx
  mov    -0x44(%rbp),%eax
  add    %edx,%eax
  add    $0x6ed9eba1,%eax
  mov    $0xb,%esi
  mov    %eax,%edi
  call   <lshift@plt>
  mov    -0xa0(%rbp),%rdx
  mov    %eax,(%rdx)
  mov    -0x98(%rbp),%rax
  mov    (%rax),%ebx
  mov    -0x90(%rbp),%rax
  mov    (%rax),%edx
  mov    -0xa8(%rbp),%rax
  mov    (%rax),%ecx
  mov    -0xa0(%rbp),%rax
  mov    (%rax),%eax
  mov    %ecx,%esi
  mov    %eax,%edi
  call   <H@plt>
  lea    (%rbx,%rax,1),%edx
  mov    -0x24(%rbp),%eax
  add    %edx,%eax
  add    $0x6ed9eba1,%eax
  mov    $0xf,%esi
  mov    %eax,%edi
  call   <lshift@plt>
  mov    -0x98(%rbp),%rdx
  mov    %eax,(%rdx)
  mov    -0x90(%rbp),%rax
  mov    (%rax),%edx
  mov    -0x70(%rbp),%eax
  add    %eax,%edx
  mov    -0x90(%rbp),%rax
  mov    %edx,(%rax)
  mov    -0x98(%rbp),%rax
  mov    (%rax),%edx
  mov    -0x6c(%rbp),%eax
  add    %eax,%edx
  mov    -0x98(%rbp),%rax
  mov    %edx,(%rax)
  mov    -0xa0(%rbp),%rax
  mov    (%rax),%edx
  mov    -0x68(%rbp),%eax
  add    %eax,%edx
  mov    -0xa0(%rbp),%rax
  mov    %edx,(%rax)
  mov    -0xa8(%rbp),%rax
  mov    (%rax),%edx
  mov    -0x64(%rbp),%eax
  add    %eax,%edx
  mov    -0xa8(%rbp),%rax
  mov    %edx,(%rax)
  mov    -0x90(%rbp),%rax
  mov    (%rax),%edx
  mov    -0x90(%rbp),%rax
  mov    %edx,(%rax)
  mov    -0x98(%rbp),%rax
  mov    (%rax),%edx
  mov    -0x98(%rbp),%rax
  mov    %edx,(%rax)
  mov    -0xa0(%rbp),%rax
  mov    (%rax),%edx
  mov    -0xa0(%rbp),%rax
  mov    %edx,(%rax)
  mov    -0xa8(%rbp),%rax
  mov    (%rax),%edx
  mov    -0xa8(%rbp),%rax
  mov    %edx,(%rax)
  movl   $0x0,-0x74(%rbp)
  jmp    L45
L32:
  mov    -0x74(%rbp),%eax
  cltq
  movl   $0x0,-0x60(%rbp,%rax,4)
  addl   $0x1,-0x74(%rbp)
L45:
  cmpl   $0xf,-0x74(%rbp)
  jle    L32
  nop
  mov    -0x18(%rbp),%rax
  sub    %fs:0x28,%rax
  je     L39
  call   <__stack_chk_fail@plt>
L39:
  mov    -0x8(%rbp),%rbx
  leave
  ret
```

assistant: ```c
void mdfour64(__u32 *M, __u32 *A, __u32 *B, __u32 *C, __u32 *D) {
  int j;
  __u32 AA, BB, CC, DD;
  __u32 X[16];
  for (j = 0; j < 16; j++)
    X[j] = M[j];
  AA = *A;
  BB = *B;
  CC = *C;
  DD = *D;
  (*A) = lshift((*A) + F(*B, *C, *D) + X[0], 3);
  (*D) = lshift((*D) + F(*A, *B, *C) + X[1], 7);
  (*C) = lshift((*C) + F(*D, *A, *B) + X[2], 11);
  (*B) = lshift((*B) + F(*C, *D, *A) + X[3], 19);
  (*A) = lshift((*A) + F(*B, *C, *D) + X[4], 3);
  (*D) = lshift((*D) + F(*A, *B, *C) + X[5], 7);
  (*C) = lshift((*C) + F(*D, *A, *B) + X[6], 11);
  (*B) = lshift((*B) + F(*C, *D, *A) + X[7], 19);
  (*A) = lshift((*A) + F(*B, *C, *D) + X[8], 3);
  (*D) = lshift((*D) + F(*A, *B, *C) + X[9], 7);
  (*C) = lshift((*C) + F(*D, *A, *B) + X[10], 11);
  (*B) = lshift((*B) + F(*C, *D, *A) + X[11], 19);
  (*A) = lshift((*A) + F(*B, *C, *D) + X[12], 3);
  (*D) = lshift((*D) + F(*A, *B, *C) + X[13], 7);
  (*C) = lshift((*C) + F(*D, *A, *B) + X[14], 11);
  (*B) = lshift((*B) + F(*C, *D, *A) + X[15], 19);
  (*A) = lshift((*A) + G(*B, *C, *D) + X[0] + (__u32)0x5A827999, 3);
  (*D) = lshift((*D) + G(*A, *B, *C) + X[4] + (__u32)0x5A827999, 5);
  (*C) = lshift((*C) + G(*D, *A, *B) + X[8] + (__u32)0x5A827999, 9);
  (*B) = lshift((*B) + G(*C, *D, *A) + X[12] + (__u32)0x5A827999, 13);
  (*A) = lshift((*A) + G(*B, *C, *D) + X[1] + (__u32)0x5A827999, 3);
  (*D) = lshift((*D) + G(*A, *B, *C) + X[5] + (__u32)0x5A827999, 5);
  (*C) = lshift((*C) + G(*D, *A, *B) + X[9] + (__u32)0x5A827999, 9);
  (*B) = lshift((*B) + G(*C, *D, *A) + X[13] + (__u32)0x5A827999, 13);
  (*A) = lshift((*A) + G(*B, *C, *D) + X[2] + (__u32)0x5A827999, 3);
  (*D) = lshift((*D) + G(*A, *B, *C) + X[6] + (__u32)0x5A827999, 5);
  (*C) = lshift((*C) + G(*D, *A, *B) + X[10] + (__u32)0x5A827999, 9);
  (*B) = lshift((*B) + G(*C, *D, *A) + X[14] + (__u32)0x5A827999, 13);
  (*A) = lshift((*A) + G(*B, *C, *D) + X[3] + (__u32)0x5A827999, 3);
  (*D) = lshift((*D) + G(*A, *B, *C) + X[7] + (__u32)0x5A827999, 5);
  (*C) = lshift((*C) + G(*D, *A, *B) + X[11] + (__u32)0x5A827999, 9);
  (*B) = lshift((*B) + G(*C, *D, *A) + X[15] + (__u32)0x5A827999, 13);
  (*A) = lshift((*A) + H(*B, *C, *D) + X[0] + (__u32)0x6ED9EBA1, 3);
  (*D) = lshift((*D) + H(*A, *B, *C) + X[8] + (__u32)0x6ED9EBA1, 9);
  (*C) = lshift((*C) + H(*D, *A, *B) + X[4] + (__u32)0x6ED9EBA1, 11);
  (*B) = lshift((*B) + H(*C, *D, *A) + X[12] + (__u32)0x6ED9EBA1, 15);
  (*A) = lshift((*A) + H(*B, *C, *D) + X[2] + (__u32)0x6ED9EBA1, 3);
  (*D) = lshift((*D) + H(*A, *B, *C) + X[10] + (__u32)0x6ED9EBA1, 9);
  (*C) = lshift((*C) + H(*D, *A, *B) + X[6] + (__u32)0x6ED9EBA1, 11);
  (*B) = lshift((*B) + H(*C, *D, *A) + X[14] + (__u32)0x6ED9EBA1, 15);
  (*A) = lshift((*A) + H(*B, *C, *D) + X[1] + (__u32)0x6ED9EBA1, 3);
  (*D) = lshift((*D) + H(*A, *B, *C) + X[9] + (__u32)0x6ED9EBA1, 9);
  (*C) = lshift((*C) + H(*D, *A, *B) + X[5] + (__u32)0x6ED9EBA1, 11);
  (*B) = lshift((*B) + H(*C, *D, *A) + X[13] + (__u32)0x6ED9EBA1, 15);
  (*A) = lshift((*A) + H(*B, *C, *D) + X[3] + (__u32)0x6ED9EBA1, 3);
  (*D) = lshift((*D) + H(*A, *B, *C) + X[11] + (__u32)0x6ED9EBA1, 9);
  (*C) = lshift((*C) + H(*D, *A, *B) + X[7] + (__u32)0x6ED9EBA1, 11);
  (*B) = lshift((*B) + H(*C, *D, *A) + X[15] + (__u32)0x6ED9EBA1, 15);
  *A += AA;
  *B += BB;
  *C += CC;
  *D += DD;
  *A &= 0xFFFFFFFF;
  *B &= 0xFFFFFFFF;
  *C &= 0xFFFFFFFF;
  *D &= 0xFFFFFFFF;
  for (j = 0; j < 16; j++)
    X[j] = 0;
}
```