user: 下面的汇编指令对应的C源代码是什么：

```asm
<MD5Transform>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  push   %r14
  push   %r13
  push   %r12
  push   %rbx
  mov    %rdi,-0x28(%rbp)
  mov    %rsi,-0x30(%rbp)
  mov    -0x28(%rbp),%rax
  mov    (%rax),%r14d
  mov    -0x28(%rbp),%rax
  mov    0x4(%rax),%r13d
  mov    -0x28(%rbp),%rax
  mov    0x8(%rax),%r12d
  mov    -0x28(%rbp),%rax
  mov    0xc(%rax),%ebx
  mov    %r12d,%eax
  xor    %ebx,%eax
  and    %r13d,%eax
  xor    %ebx,%eax
  mov    %eax,%edx
  mov    -0x30(%rbp),%rax
  mov    (%rax),%eax
  add    %edx,%eax
  add    %r14d,%eax
  lea    -0x28955b88(%rax),%r14d
  rol    $0x7,%r14d
  add    %r13d,%r14d
  mov    %r13d,%eax
  xor    %r12d,%eax
  and    %r14d,%eax
  xor    %r12d,%eax
  mov    %eax,%edx
  mov    -0x30(%rbp),%rax
  add    $0x4,%rax
  mov    (%rax),%eax
  add    %edx,%eax
  add    %ebx,%eax
  lea    -0x173848aa(%rax),%ebx
  rol    $0xc,%ebx
  add    %r14d,%ebx
  mov    %r14d,%eax
  xor    %r13d,%eax
  and    %ebx,%eax
  xor    %r13d,%eax
  mov    %eax,%edx
  mov    -0x30(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%eax
  add    %edx,%eax
  add    %r12d,%eax
  lea    0x242070db(%rax),%r12d
  ror    $0xf,%r12d
  add    %ebx,%r12d
  mov    %ebx,%eax
  xor    %r14d,%eax
  and    %r12d,%eax
  xor    %r14d,%eax
  mov    %eax,%edx
  mov    -0x30(%rbp),%rax
  add    $0xc,%rax
  mov    (%rax),%eax
  add    %edx,%eax
  add    %r13d,%eax
  lea    -0x3e423112(%rax),%r13d
  ror    $0xa,%r13d
  add    %r12d,%r13d
  mov    %r12d,%eax
  xor    %ebx,%eax
  and    %r13d,%eax
  xor    %ebx,%eax
  mov    %eax,%edx
  mov    -0x30(%rbp),%rax
  add    $0x10,%rax
  mov    (%rax),%eax
  add    %edx,%eax
  add    %r14d,%eax
  lea    -0xa83f051(%rax),%r14d
  rol    $0x7,%r14d
  add    %r13d,%r14d
  mov    %r13d,%eax
  xor    %r12d,%eax
  and    %r14d,%eax
  xor    %r12d,%eax
  mov    %eax,%edx
  mov    -0x30(%rbp),%rax
  add    $0x14,%rax
  mov    (%rax),%eax
  add    %edx,%eax
  add    %ebx,%eax
  lea    0x4787c62a(%rax),%ebx
  rol    $0xc,%ebx
  add    %r14d,%ebx
  mov    %r14d,%eax
  xor    %r13d,%eax
  and    %ebx,%eax
  xor    %r13d,%eax
  mov    %eax,%edx
  mov    -0x30(%rbp),%rax
  add    $0x18,%rax
  mov    (%rax),%eax
  add    %edx,%eax
  add    %r12d,%eax
  lea    -0x57cfb9ed(%rax),%r12d
  ror    $0xf,%r12d
  add    %ebx,%r12d
  mov    %ebx,%eax
  xor    %r14d,%eax
  and    %r12d,%eax
  xor    %r14d,%eax
  mov    %eax,%edx
  mov    -0x30(%rbp),%rax
  add    $0x1c,%rax
  mov    (%rax),%eax
  add    %edx,%eax
  add    %r13d,%eax
  lea    -0x2b96aff(%rax),%r13d
  ror    $0xa,%r13d
  add    %r12d,%r13d
  mov    %r12d,%eax
  xor    %ebx,%eax
  and    %r13d,%eax
  xor    %ebx,%eax
  mov    %eax,%edx
  mov    -0x30(%rbp),%rax
  add    $0x20,%rax
  mov    (%rax),%eax
  add    %edx,%eax
  add    %r14d,%eax
  lea    0x698098d8(%rax),%r14d
  rol    $0x7,%r14d
  add    %r13d,%r14d
  mov    %r13d,%eax
  xor    %r12d,%eax
  and    %r14d,%eax
  xor    %r12d,%eax
  mov    %eax,%edx
  mov    -0x30(%rbp),%rax
  add    $0x24,%rax
  mov    (%rax),%eax
  add    %edx,%eax
  add    %ebx,%eax
  lea    -0x74bb0851(%rax),%ebx
  rol    $0xc,%ebx
  add    %r14d,%ebx
  mov    %r14d,%eax
  xor    %r13d,%eax
  and    %ebx,%eax
  xor    %r13d,%eax
  mov    %eax,%edx
  mov    -0x30(%rbp),%rax
  add    $0x28,%rax
  mov    (%rax),%eax
  add    %edx,%eax
  add    %r12d,%eax
  lea    -0xa44f(%rax),%r12d
  ror    $0xf,%r12d
  add    %ebx,%r12d
  mov    %ebx,%eax
  xor    %r14d,%eax
  and    %r12d,%eax
  xor    %r14d,%eax
  mov    %eax,%edx
  mov    -0x30(%rbp),%rax
  add    $0x2c,%rax
  mov    (%rax),%eax
  add    %edx,%eax
  add    %r13d,%eax
  lea    -0x76a32842(%rax),%r13d
  ror    $0xa,%r13d
  add    %r12d,%r13d
  mov    %r12d,%eax
  xor    %ebx,%eax
  and    %r13d,%eax
  xor    %ebx,%eax
  mov    %eax,%edx
  mov    -0x30(%rbp),%rax
  add    $0x30,%rax
  mov    (%rax),%eax
  add    %edx,%eax
  add    %r14d,%eax
  lea    0x6b901122(%rax),%r14d
  rol    $0x7,%r14d
  add    %r13d,%r14d
  mov    %r13d,%eax
  xor    %r12d,%eax
  and    %r14d,%eax
  xor    %r12d,%eax
  mov    %eax,%edx
  mov    -0x30(%rbp),%rax
  add    $0x34,%rax
  mov    (%rax),%eax
  add    %edx,%eax
  add    %ebx,%eax
  lea    -0x2678e6d(%rax),%ebx
  rol    $0xc,%ebx
  add    %r14d,%ebx
  mov    %r14d,%eax
  xor    %r13d,%eax
  and    %ebx,%eax
  xor    %r13d,%eax
  mov    %eax,%edx
  mov    -0x30(%rbp),%rax
  add    $0x38,%rax
  mov    (%rax),%eax
  add    %edx,%eax
  add    %r12d,%eax
  lea    -0x5986bc72(%rax),%r12d
  ror    $0xf,%r12d
  add    %ebx,%r12d
  mov    %ebx,%eax
  xor    %r14d,%eax
  and    %r12d,%eax
  xor    %r14d,%eax
  mov    %eax,%edx
  mov    -0x30(%rbp),%rax
  add    $0x3c,%rax
  mov    (%rax),%eax
  add    %edx,%eax
  add    %r13d,%eax
  lea    0x49b40821(%rax),%r13d
  ror    $0xa,%r13d
  add    %r12d,%r13d
  mov    %r13d,%eax
  xor    %r12d,%eax
  and    %ebx,%eax
  xor    %r12d,%eax
  mov    %eax,%edx
  mov    -0x30(%rbp),%rax
  add    $0x4,%rax
  mov    (%rax),%eax
  add    %edx,%eax
  add    %r14d,%eax
  lea    -0x9e1da9e(%rax),%r14d
  rol    $0x5,%r14d
  add    %r13d,%r14d
  mov    %r14d,%eax
  xor    %r13d,%eax
  and    %r12d,%eax
  xor    %r13d,%eax
  mov    %eax,%edx
  mov    -0x30(%rbp),%rax
  add    $0x18,%rax
  mov    (%rax),%eax
  add    %edx,%eax
  add    %ebx,%eax
  lea    -0x3fbf4cc0(%rax),%ebx
  rol    $0x9,%ebx
  add    %r14d,%ebx
  mov    %ebx,%eax
  xor    %r14d,%eax
  and    %r13d,%eax
  xor    %r14d,%eax
  mov    %eax,%edx
  mov    -0x30(%rbp),%rax
  add    $0x2c,%rax
  mov    (%rax),%eax
  add    %edx,%eax
  add    %r12d,%eax
  lea    0x265e5a51(%rax),%r12d
  rol    $0xe,%r12d
  add    %ebx,%r12d
  mov    %r12d,%eax
  xor    %ebx,%eax
  and    %r14d,%eax
  xor    %ebx,%eax
  mov    %eax,%edx
  mov    -0x30(%rbp),%rax
  mov    (%rax),%eax
  add    %edx,%eax
  add    %r13d,%eax
  lea    -0x16493856(%rax),%r13d
  ror    $0xc,%r13d
  add    %r12d,%r13d
  mov    %r13d,%eax
  xor    %r12d,%eax
  and    %ebx,%eax
  xor    %r12d,%eax
  mov    %eax,%edx
  mov    -0x30(%rbp),%rax
  add    $0x14,%rax
  mov    (%rax),%eax
  add    %edx,%eax
  add    %r14d,%eax
  lea    -0x29d0efa3(%rax),%r14d
  rol    $0x5,%r14d
  add    %r13d,%r14d
  mov    %r14d,%eax
  xor    %r13d,%eax
  and    %r12d,%eax
  xor    %r13d,%eax
  mov    %eax,%edx
  mov    -0x30(%rbp),%rax
  add    $0x28,%rax
  mov    (%rax),%eax
  add    %edx,%eax
  add    %ebx,%eax
  lea    0x2441453(%rax),%ebx
  rol    $0x9,%ebx
  add    %r14d,%ebx
  mov    %ebx,%eax
  xor    %r14d,%eax
  and    %r13d,%eax
  xor    %r14d,%eax
  mov    %eax,%edx
  mov    -0x30(%rbp),%rax
  add    $0x3c,%rax
  mov    (%rax),%eax
  add    %edx,%eax
  add    %r12d,%eax
  lea    -0x275e197f(%rax),%r12d
  rol    $0xe,%r12d
  add    %ebx,%r12d
  mov    %r12d,%eax
  xor    %ebx,%eax
  and    %r14d,%eax
  xor    %ebx,%eax
  mov    %eax,%edx
  mov    -0x30(%rbp),%rax
  add    $0x10,%rax
  mov    (%rax),%eax
  add    %edx,%eax
  add    %r13d,%eax
  lea    -0x182c0438(%rax),%r13d
  ror    $0xc,%r13d
  add    %r12d,%r13d
  mov    %r13d,%eax
  xor    %r12d,%eax
  and    %ebx,%eax
  xor    %r12d,%eax
  mov    %eax,%edx
  mov    -0x30(%rbp),%rax
  add    $0x24,%rax
  mov    (%rax),%eax
  add    %edx,%eax
  add    %r14d,%eax
  lea    0x21e1cde6(%rax),%r14d
  rol    $0x5,%r14d
  add    %r13d,%r14d
  mov    %r14d,%eax
  xor    %r13d,%eax
  and    %r12d,%eax
  xor    %r13d,%eax
  mov    %eax,%edx
  mov    -0x30(%rbp),%rax
  add    $0x38,%rax
  mov    (%rax),%eax
  add    %edx,%eax
  add    %ebx,%eax
  lea    -0x3cc8f82a(%rax),%ebx
  rol    $0x9,%ebx
  add    %r14d,%ebx
  mov    %ebx,%eax
  xor    %r14d,%eax
  and    %r13d,%eax
  xor    %r14d,%eax
  mov    %eax,%edx
  mov    -0x30(%rbp),%rax
  add    $0xc,%rax
  mov    (%rax),%eax
  add    %edx,%eax
  add    %r12d,%eax
  lea    -0xb2af279(%rax),%r12d
  rol    $0xe,%r12d
  add    %ebx,%r12d
  mov    %r12d,%eax
  xor    %ebx,%eax
  and    %r14d,%eax
  xor    %ebx,%eax
  mov    %eax,%edx
  mov    -0x30(%rbp),%rax
  add    $0x20,%rax
  mov    (%rax),%eax
  add    %edx,%eax
  add    %r13d,%eax
  lea    0x455a14ed(%rax),%r13d
  ror    $0xc,%r13d
  add    %r12d,%r13d
  mov    %r13d,%eax
  xor    %r12d,%eax
  and    %ebx,%eax
  xor    %r12d,%eax
  mov    %eax,%edx
  mov    -0x30(%rbp),%rax
  add    $0x34,%rax
  mov    (%rax),%eax
  add    %edx,%eax
  add    %r14d,%eax
  lea    -0x561c16fb(%rax),%r14d
  rol    $0x5,%r14d
  add    %r13d,%r14d
  mov    %r14d,%eax
  xor    %r13d,%eax
  and    %r12d,%eax
  xor    %r13d,%eax
  mov    %eax,%edx
  mov    -0x30(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%eax
  add    %edx,%eax
  add    %ebx,%eax
  lea    -0x3105c08(%rax),%ebx
  rol    $0x9,%ebx
  add    %r14d,%ebx
  mov    %ebx,%eax
  xor    %r14d,%eax
  and    %r13d,%eax
  xor    %r14d,%eax
  mov    %eax,%edx
  mov    -0x30(%rbp),%rax
  add    $0x1c,%rax
  mov    (%rax),%eax
  add    %edx,%eax
  add    %r12d,%eax
  lea    0x676f02d9(%rax),%r12d
  rol    $0xe,%r12d
  add    %ebx,%r12d
  mov    %r12d,%eax
  xor    %ebx,%eax
  and    %r14d,%eax
  xor    %ebx,%eax
  mov    %eax,%edx
  mov    -0x30(%rbp),%rax
  add    $0x30,%rax
  mov    (%rax),%eax
  add    %edx,%eax
  add    %r13d,%eax
  lea    -0x72d5b376(%rax),%r13d
  ror    $0xc,%r13d
  add    %r12d,%r13d
  mov    %r13d,%eax
  xor    %r12d,%eax
  xor    %ebx,%eax
  mov    %eax,%edx
  mov    -0x30(%rbp),%rax
  add    $0x14,%rax
  mov    (%rax),%eax
  add    %edx,%eax
  add    %r14d,%eax
  lea    -0x5c6be(%rax),%r14d
  rol    $0x4,%r14d
  add    %r13d,%r14d
  mov    %r14d,%eax
  xor    %r13d,%eax
  xor    %r12d,%eax
  mov    %eax,%edx
  mov    -0x30(%rbp),%rax
  add    $0x20,%rax
  mov    (%rax),%eax
  add    %edx,%eax
  add    %ebx,%eax
  lea    -0x788e097f(%rax),%ebx
  rol    $0xb,%ebx
  add    %r14d,%ebx
  mov    %ebx,%eax
  xor    %r14d,%eax
  xor    %r13d,%eax
  mov    %eax,%edx
  mov    -0x30(%rbp),%rax
  add    $0x2c,%rax
  mov    (%rax),%eax
  add    %edx,%eax
  add    %r12d,%eax
  lea    0x6d9d6122(%rax),%r12d
  rol    $0x10,%r12d
  add    %ebx,%r12d
  mov    %r12d,%eax
  xor    %ebx,%eax
  xor    %r14d,%eax
  mov    %eax,%edx
  mov    -0x30(%rbp),%rax
  add    $0x38,%rax
  mov    (%rax),%eax
  add    %edx,%eax
  add    %r13d,%eax
  lea    -0x21ac7f4(%rax),%r13d
  ror    $0x9,%r13d
  add    %r12d,%r13d
  mov    %r13d,%eax
  xor    %r12d,%eax
  xor    %ebx,%eax
  mov    %eax,%edx
  mov    -0x30(%rbp),%rax
  add    $0x4,%rax
  mov    (%rax),%eax
  add    %edx,%eax
  add    %r14d,%eax
  lea    -0x5b4115bc(%rax),%r14d
  rol    $0x4,%r14d
  add    %r13d,%r14d
  mov    %r14d,%eax
  xor    %r13d,%eax
  xor    %r12d,%eax
  mov    %eax,%edx
  mov    -0x30(%rbp),%rax
  add    $0x10,%rax
  mov    (%rax),%eax
  add    %edx,%eax
  add    %ebx,%eax
  lea    0x4bdecfa9(%rax),%ebx
  rol    $0xb,%ebx
  add    %r14d,%ebx
  mov    %ebx,%eax
  xor    %r14d,%eax
  xor    %r13d,%eax
  mov    %eax,%edx
  mov    -0x30(%rbp),%rax
  add    $0x1c,%rax
  mov    (%rax),%eax
  add    %edx,%eax
  add    %r12d,%eax
  lea    -0x944b4a0(%rax),%r12d
  rol    $0x10,%r12d
  add    %ebx,%r12d
  mov    %r12d,%eax
  xor    %ebx,%eax
  xor    %r14d,%eax
  mov    %eax,%edx
  mov    -0x30(%rbp),%rax
  add    $0x28,%rax
  mov    (%rax),%eax
  add    %edx,%eax
  add    %r13d,%eax
  lea    -0x41404390(%rax),%r13d
  ror    $0x9,%r13d
  add    %r12d,%r13d
  mov    %r13d,%eax
  xor    %r12d,%eax
  xor    %ebx,%eax
  mov    %eax,%edx
  mov    -0x30(%rbp),%rax
  add    $0x34,%rax
  mov    (%rax),%eax
  add    %edx,%eax
  add    %r14d,%eax
  lea    0x289b7ec6(%rax),%r14d
  rol    $0x4,%r14d
  add    %r13d,%r14d
  mov    %r14d,%eax
  xor    %r13d,%eax
  xor    %r12d,%eax
  mov    %eax,%edx
  mov    -0x30(%rbp),%rax
  mov    (%rax),%eax
  add    %edx,%eax
  add    %ebx,%eax
  lea    -0x155ed806(%rax),%ebx
  rol    $0xb,%ebx
  add    %r14d,%ebx
  mov    %ebx,%eax
  xor    %r14d,%eax
  xor    %r13d,%eax
  mov    %eax,%edx
  mov    -0x30(%rbp),%rax
  add    $0xc,%rax
  mov    (%rax),%eax
  add    %edx,%eax
  add    %r12d,%eax
  lea    -0x2b10cf7b(%rax),%r12d
  rol    $0x10,%r12d
  add    %ebx,%r12d
  mov    %r12d,%eax
  xor    %ebx,%eax
  xor    %r14d,%eax
  mov    %eax,%edx
  mov    -0x30(%rbp),%rax
  add    $0x18,%rax
  mov    (%rax),%eax
  add    %edx,%eax
  add    %r13d,%eax
  lea    0x4881d05(%rax),%r13d
  ror    $0x9,%r13d
  add    %r12d,%r13d
  mov    %r13d,%eax
  xor    %r12d,%eax
  xor    %ebx,%eax
  mov    %eax,%edx
  mov    -0x30(%rbp),%rax
  add    $0x24,%rax
  mov    (%rax),%eax
  add    %edx,%eax
  add    %r14d,%eax
  lea    -0x262b2fc7(%rax),%r14d
  rol    $0x4,%r14d
  add    %r13d,%r14d
  mov    %r14d,%eax
  xor    %r13d,%eax
  xor    %r12d,%eax
  mov    %eax,%edx
  mov    -0x30(%rbp),%rax
  add    $0x30,%rax
  mov    (%rax),%eax
  add    %edx,%eax
  add    %ebx,%eax
  lea    -0x1924661b(%rax),%ebx
  rol    $0xb,%ebx
  add    %r14d,%ebx
  mov    %ebx,%eax
  xor    %r14d,%eax
  xor    %r13d,%eax
  mov    %eax,%edx
  mov    -0x30(%rbp),%rax
  add    $0x3c,%rax
  mov    (%rax),%eax
  add    %edx,%eax
  add    %r12d,%eax
  lea    0x1fa27cf8(%rax),%r12d
  rol    $0x10,%r12d
  add    %ebx,%r12d
  mov    %r12d,%eax
  xor    %ebx,%eax
  xor    %r14d,%eax
  mov    %eax,%edx
  mov    -0x30(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%eax
  add    %edx,%eax
  add    %r13d,%eax
  lea    -0x3b53a99b(%rax),%r13d
  ror    $0x9,%r13d
  add    %r12d,%r13d
  mov    %ebx,%eax
  not    %eax
  or     %r13d,%eax
  xor    %r12d,%eax
  mov    %eax,%edx
  mov    -0x30(%rbp),%rax
  mov    (%rax),%eax
  add    %edx,%eax
  add    %r14d,%eax
  lea    -0xbd6ddbc(%rax),%r14d
  rol    $0x6,%r14d
  add    %r13d,%r14d
  mov    %r12d,%eax
  not    %eax
  or     %r14d,%eax
  xor    %r13d,%eax
  mov    %eax,%edx
  mov    -0x30(%rbp),%rax
  add    $0x1c,%rax
  mov    (%rax),%eax
  add    %edx,%eax
  add    %ebx,%eax
  lea    0x432aff97(%rax),%ebx
  rol    $0xa,%ebx
  add    %r14d,%ebx
  mov    %r13d,%eax
  not    %eax
  or     %ebx,%eax
  xor    %r14d,%eax
  mov    %eax,%edx
  mov    -0x30(%rbp),%rax
  add    $0x38,%rax
  mov    (%rax),%eax
  add    %edx,%eax
  add    %r12d,%eax
  lea    -0x546bdc59(%rax),%r12d
  rol    $0xf,%r12d
  add    %ebx,%r12d
  mov    %r14d,%eax
  not    %eax
  or     %r12d,%eax
  xor    %ebx,%eax
  mov    %eax,%edx
  mov    -0x30(%rbp),%rax
  add    $0x14,%rax
  mov    (%rax),%eax
  add    %edx,%eax
  add    %r13d,%eax
  lea    -0x36c5fc7(%rax),%r13d
  ror    $0xb,%r13d
  add    %r12d,%r13d
  mov    %ebx,%eax
  not    %eax
  or     %r13d,%eax
  xor    %r12d,%eax
  mov    %eax,%edx
  mov    -0x30(%rbp),%rax
  add    $0x30,%rax
  mov    (%rax),%eax
  add    %edx,%eax
  add    %r14d,%eax
  lea    0x655b59c3(%rax),%r14d
  rol    $0x6,%r14d
  add    %r13d,%r14d
  mov    %r12d,%eax
  not    %eax
  or     %r14d,%eax
  xor    %r13d,%eax
  mov    %eax,%edx
  mov    -0x30(%rbp),%rax
  add    $0xc,%rax
  mov    (%rax),%eax
  add    %edx,%eax
  add    %ebx,%eax
  lea    -0x70f3336e(%rax),%ebx
  rol    $0xa,%ebx
  add    %r14d,%ebx
  mov    %r13d,%eax
  not    %eax
  or     %ebx,%eax
  xor    %r14d,%eax
  mov    %eax,%edx
  mov    -0x30(%rbp),%rax
  add    $0x28,%rax
  mov    (%rax),%eax
  add    %edx,%eax
  add    %r12d,%eax
  lea    -0x100b83(%rax),%r12d
  rol    $0xf,%r12d
  add    %ebx,%r12d
  mov    %r14d,%eax
  not    %eax
  or     %r12d,%eax
  xor    %ebx,%eax
  mov    %eax,%edx
  mov    -0x30(%rbp),%rax
  add    $0x4,%rax
  mov    (%rax),%eax
  add    %edx,%eax
  add    %r13d,%eax
  lea    -0x7a7ba22f(%rax),%r13d
  ror    $0xb,%r13d
  add    %r12d,%r13d
  mov    %ebx,%eax
  not    %eax
  or     %r13d,%eax
  xor    %r12d,%eax
  mov    %eax,%edx
  mov    -0x30(%rbp),%rax
  add    $0x20,%rax
  mov    (%rax),%eax
  add    %edx,%eax
  add    %r14d,%eax
  lea    0x6fa87e4f(%rax),%r14d
  rol    $0x6,%r14d
  add    %r13d,%r14d
  mov    %r12d,%eax
  not    %eax
  or     %r14d,%eax
  xor    %r13d,%eax
  mov    %eax,%edx
  mov    -0x30(%rbp),%rax
  add    $0x3c,%rax
  mov    (%rax),%eax
  add    %edx,%eax
  add    %ebx,%eax
  lea    -0x1d31920(%rax),%ebx
  rol    $0xa,%ebx
  add    %r14d,%ebx
  mov    %r13d,%eax
  not    %eax
  or     %ebx,%eax
  xor    %r14d,%eax
  mov    %eax,%edx
  mov    -0x30(%rbp),%rax
  add    $0x18,%rax
  mov    (%rax),%eax
  add    %edx,%eax
  add    %r12d,%eax
  lea    -0x5cfebcec(%rax),%r12d
  rol    $0xf,%r12d
  add    %ebx,%r12d
  mov    %r14d,%eax
  not    %eax
  or     %r12d,%eax
  xor    %ebx,%eax
  mov    %eax,%edx
  mov    -0x30(%rbp),%rax
  add    $0x34,%rax
  mov    (%rax),%eax
  add    %edx,%eax
  add    %r13d,%eax
  lea    0x4e0811a1(%rax),%r13d
  ror    $0xb,%r13d
  add    %r12d,%r13d
  mov    %ebx,%eax
  not    %eax
  or     %r13d,%eax
  xor    %r12d,%eax
  mov    %eax,%edx
  mov    -0x30(%rbp),%rax
  add    $0x10,%rax
  mov    (%rax),%eax
  add    %edx,%eax
  add    %r14d,%eax
  lea    -0x8ac817e(%rax),%r14d
  rol    $0x6,%r14d
  add    %r13d,%r14d
  mov    %r12d,%eax
  not    %eax
  or     %r14d,%eax
  xor    %r13d,%eax
  mov    %eax,%edx
  mov    -0x30(%rbp),%rax
  add    $0x2c,%rax
  mov    (%rax),%eax
  add    %edx,%eax
  add    %ebx,%eax
  lea    -0x42c50dcb(%rax),%ebx
  rol    $0xa,%ebx
  add    %r14d,%ebx
  mov    %r13d,%eax
  not    %eax
  or     %ebx,%eax
  xor    %r14d,%eax
  mov    %eax,%edx
  mov    -0x30(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%eax
  add    %edx,%eax
  add    %r12d,%eax
  lea    0x2ad7d2bb(%rax),%r12d
  rol    $0xf,%r12d
  add    %ebx,%r12d
  mov    %r14d,%eax
  not    %eax
  or     %r12d,%eax
  xor    %ebx,%eax
  mov    %eax,%edx
  mov    -0x30(%rbp),%rax
  add    $0x24,%rax
  mov    (%rax),%eax
  add    %edx,%eax
  add    %r13d,%eax
  lea    -0x14792c6f(%rax),%r13d
  ror    $0xb,%r13d
  add    %r12d,%r13d
  mov    -0x28(%rbp),%rax
  mov    (%rax),%eax
  lea    (%r14,%rax,1),%edx
  mov    -0x28(%rbp),%rax
  mov    %edx,(%rax)
  mov    -0x28(%rbp),%rax
  add    $0x4,%rax
  mov    (%rax),%edx
  mov    -0x28(%rbp),%rax
  add    $0x4,%rax
  add    %r13d,%edx
  mov    %edx,(%rax)
  mov    -0x28(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%edx
  mov    -0x28(%rbp),%rax
  add    $0x8,%rax
  add    %r12d,%edx
  mov    %edx,(%rax)
  mov    -0x28(%rbp),%rax
  add    $0xc,%rax
  mov    (%rax),%edx
  mov    -0x28(%rbp),%rax
  add    $0xc,%rax
  add    %ebx,%edx
  mov    %edx,(%rax)
  nop
  pop    %rbx
  pop    %r12
  pop    %r13
  pop    %r14
  pop    %rbp
  ret
```

assistant: ```c
void MD5Transform(unsigned int buf[4], unsigned int const in[16]) {
  register unsigned int a, b, c, d;
  a = buf[0];
  b = buf[1];
  c = buf[2];
  d = buf[3];
  do {
    a += (d ^ (b & (c ^ d))) + in[0] + 0xd76aa478;
    a = (a << 7) | (a >> (32 - 7));
    a += b;
  } while (0);
  do {
    d += (c ^ (a & (b ^ c))) + in[1] + 0xe8c7b756;
    d = (d << 12) | (d >> (32 - 12));
    d += a;
  } while (0);
  do {
    c += (b ^ (d & (a ^ b))) + in[2] + 0x242070db;
    c = (c << 17) | (c >> (32 - 17));
    c += d;
  } while (0);
  do {
    b += (a ^ (c & (d ^ a))) + in[3] + 0xc1bdceee;
    b = (b << 22) | (b >> (32 - 22));
    b += c;
  } while (0);
  do {
    a += (d ^ (b & (c ^ d))) + in[4] + 0xf57c0faf;
    a = (a << 7) | (a >> (32 - 7));
    a += b;
  } while (0);
  do {
    d += (c ^ (a & (b ^ c))) + in[5] + 0x4787c62a;
    d = (d << 12) | (d >> (32 - 12));
    d += a;
  } while (0);
  do {
    c += (b ^ (d & (a ^ b))) + in[6] + 0xa8304613;
    c = (c << 17) | (c >> (32 - 17));
    c += d;
  } while (0);
  do {
    b += (a ^ (c & (d ^ a))) + in[7] + 0xfd469501;
    b = (b << 22) | (b >> (32 - 22));
    b += c;
  } while (0);
  do {
    a += (d ^ (b & (c ^ d))) + in[8] + 0x698098d8;
    a = (a << 7) | (a >> (32 - 7));
    a += b;
  } while (0);
  do {
    d += (c ^ (a & (b ^ c))) + in[9] + 0x8b44f7af;
    d = (d << 12) | (d >> (32 - 12));
    d += a;
  } while (0);
  do {
    c += (b ^ (d & (a ^ b))) + in[10] + 0xffff5bb1;
    c = (c << 17) | (c >> (32 - 17));
    c += d;
  } while (0);
  do {
    b += (a ^ (c & (d ^ a))) + in[11] + 0x895cd7be;
    b = (b << 22) | (b >> (32 - 22));
    b += c;
  } while (0);
  do {
    a += (d ^ (b & (c ^ d))) + in[12] + 0x6b901122;
    a = (a << 7) | (a >> (32 - 7));
    a += b;
  } while (0);
  do {
    d += (c ^ (a & (b ^ c))) + in[13] + 0xfd987193;
    d = (d << 12) | (d >> (32 - 12));
    d += a;
  } while (0);
  do {
    c += (b ^ (d & (a ^ b))) + in[14] + 0xa679438e;
    c = (c << 17) | (c >> (32 - 17));
    c += d;
  } while (0);
  do {
    b += (a ^ (c & (d ^ a))) + in[15] + 0x49b40821;
    b = (b << 22) | (b >> (32 - 22));
    b += c;
  } while (0);
  do {
    a += (c ^ (d & (b ^ c))) + in[1] + 0xf61e2562;
    a = (a << 5) | (a >> (32 - 5));
    a += b;
  } while (0);
  do {
    d += (b ^ (c & (a ^ b))) + in[6] + 0xc040b340;
    d = (d << 9) | (d >> (32 - 9));
    d += a;
  } while (0);
  do {
    c += (a ^ (b & (d ^ a))) + in[11] + 0x265e5a51;
    c = (c << 14) | (c >> (32 - 14));
    c += d;
  } while (0);
  do {
    b += (d ^ (a & (c ^ d))) + in[0] + 0xe9b6c7aa;
    b = (b << 20) | (b >> (32 - 20));
    b += c;
  } while (0);
  do {
    a += (c ^ (d & (b ^ c))) + in[5] + 0xd62f105d;
    a = (a << 5) | (a >> (32 - 5));
    a += b;
  } while (0);
  do {
    d += (b ^ (c & (a ^ b))) + in[10] + 0x02441453;
    d = (d << 9) | (d >> (32 - 9));
    d += a;
  } while (0);
  do {
    c += (a ^ (b & (d ^ a))) + in[15] + 0xd8a1e681;
    c = (c << 14) | (c >> (32 - 14));
    c += d;
  } while (0);
  do {
    b += (d ^ (a & (c ^ d))) + in[4] + 0xe7d3fbc8;
    b = (b << 20) | (b >> (32 - 20));
    b += c;
  } while (0);
  do {
    a += (c ^ (d & (b ^ c))) + in[9] + 0x21e1cde6;
    a = (a << 5) | (a >> (32 - 5));
    a += b;
  } while (0);
  do {
    d += (b ^ (c & (a ^ b))) + in[14] + 0xc33707d6;
    d = (d << 9) | (d >> (32 - 9));
    d += a;
  } while (0);
  do {
    c += (a ^ (b & (d ^ a))) + in[3] + 0xf4d50d87;
    c = (c << 14) | (c >> (32 - 14));
    c += d;
  } while (0);
  do {
    b += (d ^ (a & (c ^ d))) + in[8] + 0x455a14ed;
    b = (b << 20) | (b >> (32 - 20));
    b += c;
  } while (0);
  do {
    a += (c ^ (d & (b ^ c))) + in[13] + 0xa9e3e905;
    a = (a << 5) | (a >> (32 - 5));
    a += b;
  } while (0);
  do {
    d += (b ^ (c & (a ^ b))) + in[2] + 0xfcefa3f8;
    d = (d << 9) | (d >> (32 - 9));
    d += a;
  } while (0);
  do {
    c += (a ^ (b & (d ^ a))) + in[7] + 0x676f02d9;
    c = (c << 14) | (c >> (32 - 14));
    c += d;
  } while (0);
  do {
    b += (d ^ (a & (c ^ d))) + in[12] + 0x8d2a4c8a;
    b = (b << 20) | (b >> (32 - 20));
    b += c;
  } while (0);
  do {
    a += (b ^ c ^ d) + in[5] + 0xfffa3942;
    a = (a << 4) | (a >> (32 - 4));
    a += b;
  } while (0);
  do {
    d += (a ^ b ^ c) + in[8] + 0x8771f681;
    d = (d << 11) | (d >> (32 - 11));
    d += a;
  } while (0);
  do {
    c += (d ^ a ^ b) + in[11] + 0x6d9d6122;
    c = (c << 16) | (c >> (32 - 16));
    c += d;
  } while (0);
  do {
    b += (c ^ d ^ a) + in[14] + 0xfde5380c;
    b = (b << 23) | (b >> (32 - 23));
    b += c;
  } while (0);
  do {
    a += (b ^ c ^ d) + in[1] + 0xa4beea44;
    a = (a << 4) | (a >> (32 - 4));
    a += b;
  } while (0);
  do {
    d += (a ^ b ^ c) + in[4] + 0x4bdecfa9;
    d = (d << 11) | (d >> (32 - 11));
    d += a;
  } while (0);
  do {
    c += (d ^ a ^ b) + in[7] + 0xf6bb4b60;
    c = (c << 16) | (c >> (32 - 16));
    c += d;
  } while (0);
  do {
    b += (c ^ d ^ a) + in[10] + 0xbebfbc70;
    b = (b << 23) | (b >> (32 - 23));
    b += c;
  } while (0);
  do {
    a += (b ^ c ^ d) + in[13] + 0x289b7ec6;
    a = (a << 4) | (a >> (32 - 4));
    a += b;
  } while (0);
  do {
    d += (a ^ b ^ c) + in[0] + 0xeaa127fa;
    d = (d << 11) | (d >> (32 - 11));
    d += a;
  } while (0);
  do {
    c += (d ^ a ^ b) + in[3] + 0xd4ef3085;
    c = (c << 16) | (c >> (32 - 16));
    c += d;
  } while (0);
  do {
    b += (c ^ d ^ a) + in[6] + 0x04881d05;
    b = (b << 23) | (b >> (32 - 23));
    b += c;
  } while (0);
  do {
    a += (b ^ c ^ d) + in[9] + 0xd9d4d039;
    a = (a << 4) | (a >> (32 - 4));
    a += b;
  } while (0);
  do {
    d += (a ^ b ^ c) + in[12] + 0xe6db99e5;
    d = (d << 11) | (d >> (32 - 11));
    d += a;
  } while (0);
  do {
    c += (d ^ a ^ b) + in[15] + 0x1fa27cf8;
    c = (c << 16) | (c >> (32 - 16));
    c += d;
  } while (0);
  do {
    b += (c ^ d ^ a) + in[2] + 0xc4ac5665;
    b = (b << 23) | (b >> (32 - 23));
    b += c;
  } while (0);
  do {
    a += (c ^ (b | ~d)) + in[0] + 0xf4292244;
    a = (a << 6) | (a >> (32 - 6));
    a += b;
  } while (0);
  do {
    d += (b ^ (a | ~c)) + in[7] + 0x432aff97;
    d = (d << 10) | (d >> (32 - 10));
    d += a;
  } while (0);
  do {
    c += (a ^ (d | ~b)) + in[14] + 0xab9423a7;
    c = (c << 15) | (c >> (32 - 15));
    c += d;
  } while (0);
  do {
    b += (d ^ (c | ~a)) + in[5] + 0xfc93a039;
    b = (b << 21) | (b >> (32 - 21));
    b += c;
  } while (0);
  do {
    a += (c ^ (b | ~d)) + in[12] + 0x655b59c3;
    a = (a << 6) | (a >> (32 - 6));
    a += b;
  } while (0);
  do {
    d += (b ^ (a | ~c)) + in[3] + 0x8f0ccc92;
    d = (d << 10) | (d >> (32 - 10));
    d += a;
  } while (0);
  do {
    c += (a ^ (d | ~b)) + in[10] + 0xffeff47d;
    c = (c << 15) | (c >> (32 - 15));
    c += d;
  } while (0);
  do {
    b += (d ^ (c | ~a)) + in[1] + 0x85845dd1;
    b = (b << 21) | (b >> (32 - 21));
    b += c;
  } while (0);
  do {
    a += (c ^ (b | ~d)) + in[8] + 0x6fa87e4f;
    a = (a << 6) | (a >> (32 - 6));
    a += b;
  } while (0);
  do {
    d += (b ^ (a | ~c)) + in[15] + 0xfe2ce6e0;
    d = (d << 10) | (d >> (32 - 10));
    d += a;
  } while (0);
  do {
    c += (a ^ (d | ~b)) + in[6] + 0xa3014314;
    c = (c << 15) | (c >> (32 - 15));
    c += d;
  } while (0);
  do {
    b += (d ^ (c | ~a)) + in[13] + 0x4e0811a1;
    b = (b << 21) | (b >> (32 - 21));
    b += c;
  } while (0);
  do {
    a += (c ^ (b | ~d)) + in[4] + 0xf7537e82;
    a = (a << 6) | (a >> (32 - 6));
    a += b;
  } while (0);
  do {
    d += (b ^ (a | ~c)) + in[11] + 0xbd3af235;
    d = (d << 10) | (d >> (32 - 10));
    d += a;
  } while (0);
  do {
    c += (a ^ (d | ~b)) + in[2] + 0x2ad7d2bb;
    c = (c << 15) | (c >> (32 - 15));
    c += d;
  } while (0);
  do {
    b += (d ^ (c | ~a)) + in[9] + 0xeb86d391;
    b = (b << 21) | (b >> (32 - 21));
    b += c;
  } while (0);
  buf[0] += a;
  buf[1] += b;
  buf[2] += c;
  buf[3] += d;
}
```