user: 请将这段汇编代码片段转换成等效的C代码：

```asm
<MD5Transform>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0xc0,%rsp
  mov    %rdi,-0xb8(%rbp)
  mov    %rsi,-0xc0(%rbp)
  mov    %fs:0x28,%rax
  mov    %rax,-0x8(%rbp)
  xor    %eax,%eax
  mov    -0xb8(%rbp),%rax
  mov    (%rax),%rax
  mov    %rax,-0xb0(%rbp)
  mov    -0xb8(%rbp),%rax
  mov    0x8(%rax),%rax
  mov    %rax,-0xa8(%rbp)
  mov    -0xb8(%rbp),%rax
  mov    0x10(%rax),%rax
  mov    %rax,-0xa0(%rbp)
  mov    -0xb8(%rbp),%rax
  mov    0x18(%rax),%rax
  mov    %rax,-0x98(%rbp)
  mov    -0xc0(%rbp),%rcx
  lea    -0x90(%rbp),%rax
  mov    $0x40,%edx
  mov    %rcx,%rsi
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <Decode@plt>
  mov    -0xa8(%rbp),%rax
  and    -0xa0(%rbp),%rax
  mov    %rax,%rdx
  mov    -0xa8(%rbp),%rax
  not    %rax
  and    -0x98(%rbp),%rax
  or     %rax,%rdx
  mov    -0x90(%rbp),%rax
  add    %rax,%rdx
  mov    -0xb0(%rbp),%rax
  add    %rax,%rdx
  mov    $0xd76aa478,%eax
  add    %rdx,%rax
  mov    %rax,-0xb0(%rbp)
  mov    -0xb0(%rbp),%rax
  shl    $0x7,%rax
  mov    %rax,%rdx
  mov    -0xb0(%rbp),%rax
  shr    $0x19,%rax
  or     %rdx,%rax
  mov    %rax,-0xb0(%rbp)
  mov    -0xa8(%rbp),%rax
  add    %rax,-0xb0(%rbp)
  mov    -0xb0(%rbp),%rax
  and    -0xa8(%rbp),%rax
  mov    %rax,%rdx
  mov    -0xb0(%rbp),%rax
  not    %rax
  and    -0xa0(%rbp),%rax
  or     %rax,%rdx
  mov    -0x88(%rbp),%rax
  add    %rax,%rdx
  mov    -0x98(%rbp),%rax
  add    %rax,%rdx
  mov    $0xe8c7b756,%eax
  add    %rdx,%rax
  mov    %rax,-0x98(%rbp)
  mov    -0x98(%rbp),%rax
  shl    $0xc,%rax
  mov    %rax,%rdx
  mov    -0x98(%rbp),%rax
  shr    $0x14,%rax
  or     %rdx,%rax
  mov    %rax,-0x98(%rbp)
  mov    -0xb0(%rbp),%rax
  add    %rax,-0x98(%rbp)
  mov    -0x98(%rbp),%rax
  and    -0xb0(%rbp),%rax
  mov    %rax,%rdx
  mov    -0x98(%rbp),%rax
  not    %rax
  and    -0xa8(%rbp),%rax
  or     %rax,%rdx
  mov    -0x80(%rbp),%rax
  add    %rax,%rdx
  mov    -0xa0(%rbp),%rax
  add    %rdx,%rax
  add    $0x242070db,%rax
  mov    %rax,-0xa0(%rbp)
  mov    -0xa0(%rbp),%rax
  shl    $0x11,%rax
  mov    %rax,%rdx
  mov    -0xa0(%rbp),%rax
  shr    $0xf,%rax
  or     %rdx,%rax
  mov    %rax,-0xa0(%rbp)
  mov    -0x98(%rbp),%rax
  add    %rax,-0xa0(%rbp)
  mov    -0xa0(%rbp),%rax
  and    -0x98(%rbp),%rax
  mov    %rax,%rdx
  mov    -0xa0(%rbp),%rax
  not    %rax
  and    -0xb0(%rbp),%rax
  or     %rax,%rdx
  mov    -0x78(%rbp),%rax
  add    %rax,%rdx
  mov    -0xa8(%rbp),%rax
  add    %rax,%rdx
  mov    $0xc1bdceee,%eax
  add    %rdx,%rax
  mov    %rax,-0xa8(%rbp)
  mov    -0xa8(%rbp),%rax
  shl    $0x16,%rax
  mov    %rax,%rdx
  mov    -0xa8(%rbp),%rax
  shr    $0xa,%rax
  or     %rdx,%rax
  mov    %rax,-0xa8(%rbp)
  mov    -0xa0(%rbp),%rax
  add    %rax,-0xa8(%rbp)
  mov    -0xa8(%rbp),%rax
  and    -0xa0(%rbp),%rax
  mov    %rax,%rdx
  mov    -0xa8(%rbp),%rax
  not    %rax
  and    -0x98(%rbp),%rax
  or     %rax,%rdx
  mov    -0x70(%rbp),%rax
  add    %rax,%rdx
  mov    -0xb0(%rbp),%rax
  add    %rax,%rdx
  mov    $0xf57c0faf,%eax
  add    %rdx,%rax
  mov    %rax,-0xb0(%rbp)
  mov    -0xb0(%rbp),%rax
  shl    $0x7,%rax
  mov    %rax,%rdx
  mov    -0xb0(%rbp),%rax
  shr    $0x19,%rax
  or     %rdx,%rax
  mov    %rax,-0xb0(%rbp)
  mov    -0xa8(%rbp),%rax
  add    %rax,-0xb0(%rbp)
  mov    -0xb0(%rbp),%rax
  and    -0xa8(%rbp),%rax
  mov    %rax,%rdx
  mov    -0xb0(%rbp),%rax
  not    %rax
  and    -0xa0(%rbp),%rax
  or     %rax,%rdx
  mov    -0x68(%rbp),%rax
  add    %rax,%rdx
  mov    -0x98(%rbp),%rax
  add    %rdx,%rax
  add    $0x4787c62a,%rax
  mov    %rax,-0x98(%rbp)
  mov    -0x98(%rbp),%rax
  shl    $0xc,%rax
  mov    %rax,%rdx
  mov    -0x98(%rbp),%rax
  shr    $0x14,%rax
  or     %rdx,%rax
  mov    %rax,-0x98(%rbp)
  mov    -0xb0(%rbp),%rax
  add    %rax,-0x98(%rbp)
  mov    -0x98(%rbp),%rax
  and    -0xb0(%rbp),%rax
  mov    %rax,%rdx
  mov    -0x98(%rbp),%rax
  not    %rax
  and    -0xa8(%rbp),%rax
  or     %rax,%rdx
  mov    -0x60(%rbp),%rax
  add    %rax,%rdx
  mov    -0xa0(%rbp),%rax
  add    %rax,%rdx
  mov    $0xa8304613,%eax
  add    %rdx,%rax
  mov    %rax,-0xa0(%rbp)
  mov    -0xa0(%rbp),%rax
  shl    $0x11,%rax
  mov    %rax,%rdx
  mov    -0xa0(%rbp),%rax
  shr    $0xf,%rax
  or     %rdx,%rax
  mov    %rax,-0xa0(%rbp)
  mov    -0x98(%rbp),%rax
  add    %rax,-0xa0(%rbp)
  mov    -0xa0(%rbp),%rax
  and    -0x98(%rbp),%rax
  mov    %rax,%rdx
  mov    -0xa0(%rbp),%rax
  not    %rax
  and    -0xb0(%rbp),%rax
  or     %rax,%rdx
  mov    -0x58(%rbp),%rax
  add    %rax,%rdx
  mov    -0xa8(%rbp),%rax
  add    %rax,%rdx
  mov    $0xfd469501,%eax
  add    %rdx,%rax
  mov    %rax,-0xa8(%rbp)
  mov    -0xa8(%rbp),%rax
  shl    $0x16,%rax
  mov    %rax,%rdx
  mov    -0xa8(%rbp),%rax
  shr    $0xa,%rax
  or     %rdx,%rax
  mov    %rax,-0xa8(%rbp)
  mov    -0xa0(%rbp),%rax
  add    %rax,-0xa8(%rbp)
  mov    -0xa8(%rbp),%rax
  and    -0xa0(%rbp),%rax
  mov    %rax,%rdx
  mov    -0xa8(%rbp),%rax
  not    %rax
  and    -0x98(%rbp),%rax
  or     %rax,%rdx
  mov    -0x50(%rbp),%rax
  add    %rax,%rdx
  mov    -0xb0(%rbp),%rax
  add    %rdx,%rax
  add    $0x698098d8,%rax
  mov    %rax,-0xb0(%rbp)
  mov    -0xb0(%rbp),%rax
  shl    $0x7,%rax
  mov    %rax,%rdx
  mov    -0xb0(%rbp),%rax
  shr    $0x19,%rax
  or     %rdx,%rax
  mov    %rax,-0xb0(%rbp)
  mov    -0xa8(%rbp),%rax
  add    %rax,-0xb0(%rbp)
  mov    -0xb0(%rbp),%rax
  and    -0xa8(%rbp),%rax
  mov    %rax,%rdx
  mov    -0xb0(%rbp),%rax
  not    %rax
  and    -0xa0(%rbp),%rax
  or     %rax,%rdx
  mov    -0x48(%rbp),%rax
  add    %rax,%rdx
  mov    -0x98(%rbp),%rax
  add    %rax,%rdx
  mov    $0x8b44f7af,%eax
  add    %rdx,%rax
  mov    %rax,-0x98(%rbp)
  mov    -0x98(%rbp),%rax
  shl    $0xc,%rax
  mov    %rax,%rdx
  mov    -0x98(%rbp),%rax
  shr    $0x14,%rax
  or     %rdx,%rax
  mov    %rax,-0x98(%rbp)
  mov    -0xb0(%rbp),%rax
  add    %rax,-0x98(%rbp)
  mov    -0x98(%rbp),%rax
  and    -0xb0(%rbp),%rax
  mov    %rax,%rdx
  mov    -0x98(%rbp),%rax
  not    %rax
  and    -0xa8(%rbp),%rax
  or     %rax,%rdx
  mov    -0x40(%rbp),%rax
  add    %rax,%rdx
  mov    -0xa0(%rbp),%rax
  add    %rax,%rdx
  mov    $0xffff5bb1,%eax
  add    %rdx,%rax
  mov    %rax,-0xa0(%rbp)
  mov    -0xa0(%rbp),%rax
  shl    $0x11,%rax
  mov    %rax,%rdx
  mov    -0xa0(%rbp),%rax
  shr    $0xf,%rax
  or     %rdx,%rax
  mov    %rax,-0xa0(%rbp)
  mov    -0x98(%rbp),%rax
  add    %rax,-0xa0(%rbp)
  mov    -0xa0(%rbp),%rax
  and    -0x98(%rbp),%rax
  mov    %rax,%rdx
  mov    -0xa0(%rbp),%rax
  not    %rax
  and    -0xb0(%rbp),%rax
  or     %rax,%rdx
  mov    -0x38(%rbp),%rax
  add    %rax,%rdx
  mov    -0xa8(%rbp),%rax
  add    %rax,%rdx
  mov    $0x895cd7be,%eax
  add    %rdx,%rax
  mov    %rax,-0xa8(%rbp)
  mov    -0xa8(%rbp),%rax
  shl    $0x16,%rax
  mov    %rax,%rdx
  mov    -0xa8(%rbp),%rax
  shr    $0xa,%rax
  or     %rdx,%rax
  mov    %rax,-0xa8(%rbp)
  mov    -0xa0(%rbp),%rax
  add    %rax,-0xa8(%rbp)
  mov    -0xa8(%rbp),%rax
  and    -0xa0(%rbp),%rax
  mov    %rax,%rdx
  mov    -0xa8(%rbp),%rax
  not    %rax
  and    -0x98(%rbp),%rax
  or     %rax,%rdx
  mov    -0x30(%rbp),%rax
  add    %rax,%rdx
  mov    -0xb0(%rbp),%rax
  add    %rdx,%rax
  add    $0x6b901122,%rax
  mov    %rax,-0xb0(%rbp)
  mov    -0xb0(%rbp),%rax
  shl    $0x7,%rax
  mov    %rax,%rdx
  mov    -0xb0(%rbp),%rax
  shr    $0x19,%rax
  or     %rdx,%rax
  mov    %rax,-0xb0(%rbp)
  mov    -0xa8(%rbp),%rax
  add    %rax,-0xb0(%rbp)
  mov    -0xb0(%rbp),%rax
  and    -0xa8(%rbp),%rax
  mov    %rax,%rdx
  mov    -0xb0(%rbp),%rax
  not    %rax
  and    -0xa0(%rbp),%rax
  or     %rax,%rdx
  mov    -0x28(%rbp),%rax
  add    %rax,%rdx
  mov    -0x98(%rbp),%rax
  add    %rax,%rdx
  mov    $0xfd987193,%eax
  add    %rdx,%rax
  mov    %rax,-0x98(%rbp)
  mov    -0x98(%rbp),%rax
  shl    $0xc,%rax
  mov    %rax,%rdx
  mov    -0x98(%rbp),%rax
  shr    $0x14,%rax
  or     %rdx,%rax
  mov    %rax,-0x98(%rbp)
  mov    -0xb0(%rbp),%rax
  add    %rax,-0x98(%rbp)
  mov    -0x98(%rbp),%rax
  and    -0xb0(%rbp),%rax
  mov    %rax,%rdx
  mov    -0x98(%rbp),%rax
  not    %rax
  and    -0xa8(%rbp),%rax
  or     %rax,%rdx
  mov    -0x20(%rbp),%rax
  add    %rax,%rdx
  mov    -0xa0(%rbp),%rax
  add    %rax,%rdx
  mov    $0xa679438e,%eax
  add    %rdx,%rax
  mov    %rax,-0xa0(%rbp)
  mov    -0xa0(%rbp),%rax
  shl    $0x11,%rax
  mov    %rax,%rdx
  mov    -0xa0(%rbp),%rax
  shr    $0xf,%rax
  or     %rdx,%rax
  mov    %rax,-0xa0(%rbp)
  mov    -0x98(%rbp),%rax
  add    %rax,-0xa0(%rbp)
  mov    -0xa0(%rbp),%rax
  and    -0x98(%rbp),%rax
  mov    %rax,%rdx
  mov    -0xa0(%rbp),%rax
  not    %rax
  and    -0xb0(%rbp),%rax
  or     %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0xa8(%rbp),%rax
  add    %rdx,%rax
  add    $0x49b40821,%rax
  mov    %rax,-0xa8(%rbp)
  mov    -0xa8(%rbp),%rax
  shl    $0x16,%rax
  mov    %rax,%rdx
  mov    -0xa8(%rbp),%rax
  shr    $0xa,%rax
  or     %rdx,%rax
  mov    %rax,-0xa8(%rbp)
  mov    -0xa0(%rbp),%rax
  add    %rax,-0xa8(%rbp)
  mov    -0xa8(%rbp),%rax
  and    -0x98(%rbp),%rax
  mov    %rax,%rdx
  mov    -0x98(%rbp),%rax
  not    %rax
  and    -0xa0(%rbp),%rax
  or     %rax,%rdx
  mov    -0x88(%rbp),%rax
  add    %rax,%rdx
  mov    -0xb0(%rbp),%rax
  add    %rax,%rdx
  mov    $0xf61e2562,%eax
  add    %rdx,%rax
  mov    %rax,-0xb0(%rbp)
  mov    -0xb0(%rbp),%rax
  shl    $0x5,%rax
  mov    %rax,%rdx
  mov    -0xb0(%rbp),%rax
  shr    $0x1b,%rax
  or     %rdx,%rax
  mov    %rax,-0xb0(%rbp)
  mov    -0xa8(%rbp),%rax
  add    %rax,-0xb0(%rbp)
  mov    -0xb0(%rbp),%rax
  and    -0xa0(%rbp),%rax
  mov    %rax,%rdx
  mov    -0xa0(%rbp),%rax
  not    %rax
  and    -0xa8(%rbp),%rax
  or     %rax,%rdx
  mov    -0x60(%rbp),%rax
  add    %rax,%rdx
  mov    -0x98(%rbp),%rax
  add    %rax,%rdx
  mov    $0xc040b340,%eax
  add    %rdx,%rax
  mov    %rax,-0x98(%rbp)
  mov    -0x98(%rbp),%rax
  shl    $0x9,%rax
  mov    %rax,%rdx
  mov    -0x98(%rbp),%rax
  shr    $0x17,%rax
  or     %rdx,%rax
  mov    %rax,-0x98(%rbp)
  mov    -0xb0(%rbp),%rax
  add    %rax,-0x98(%rbp)
  mov    -0x98(%rbp),%rax
  and    -0xa8(%rbp),%rax
  mov    %rax,%rdx
  mov    -0xa8(%rbp),%rax
  not    %rax
  and    -0xb0(%rbp),%rax
  or     %rax,%rdx
  mov    -0x38(%rbp),%rax
  add    %rax,%rdx
  mov    -0xa0(%rbp),%rax
  add    %rdx,%rax
  add    $0x265e5a51,%rax
  mov    %rax,-0xa0(%rbp)
  mov    -0xa0(%rbp),%rax
  shl    $0xe,%rax
  mov    %rax,%rdx
  mov    -0xa0(%rbp),%rax
  shr    $0x12,%rax
  or     %rdx,%rax
  mov    %rax,-0xa0(%rbp)
  mov    -0x98(%rbp),%rax
  add    %rax,-0xa0(%rbp)
  mov    -0xa0(%rbp),%rax
  and    -0xb0(%rbp),%rax
  mov    %rax,%rdx
  mov    -0xb0(%rbp),%rax
  not    %rax
  and    -0x98(%rbp),%rax
  or     %rax,%rdx
  mov    -0x90(%rbp),%rax
  add    %rax,%rdx
  mov    -0xa8(%rbp),%rax
  add    %rax,%rdx
  mov    $0xe9b6c7aa,%eax
  add    %rdx,%rax
  mov    %rax,-0xa8(%rbp)
  mov    -0xa8(%rbp),%rax
  shl    $0x14,%rax
  mov    %rax,%rdx
  mov    -0xa8(%rbp),%rax
  shr    $0xc,%rax
  or     %rdx,%rax
  mov    %rax,-0xa8(%rbp)
  mov    -0xa0(%rbp),%rax
  add    %rax,-0xa8(%rbp)
  mov    -0xa8(%rbp),%rax
  and    -0x98(%rbp),%rax
  mov    %rax,%rdx
  mov    -0x98(%rbp),%rax
  not    %rax
  and    -0xa0(%rbp),%rax
  or     %rax,%rdx
  mov    -0x68(%rbp),%rax
  add    %rax,%rdx
  mov    -0xb0(%rbp),%rax
  add    %rax,%rdx
  mov    $0xd62f105d,%eax
  add    %rdx,%rax
  mov    %rax,-0xb0(%rbp)
  mov    -0xb0(%rbp),%rax
  shl    $0x5,%rax
  mov    %rax,%rdx
  mov    -0xb0(%rbp),%rax
  shr    $0x1b,%rax
  or     %rdx,%rax
  mov    %rax,-0xb0(%rbp)
  mov    -0xa8(%rbp),%rax
  add    %rax,-0xb0(%rbp)
  mov    -0xb0(%rbp),%rax
  and    -0xa0(%rbp),%rax
  mov    %rax,%rdx
  mov    -0xa0(%rbp),%rax
  not    %rax
  and    -0xa8(%rbp),%rax
  or     %rax,%rdx
  mov    -0x40(%rbp),%rax
  add    %rax,%rdx
  mov    -0x98(%rbp),%rax
  add    %rdx,%rax
  add    $0x2441453,%rax
  mov    %rax,-0x98(%rbp)
  mov    -0x98(%rbp),%rax
  shl    $0x9,%rax
  mov    %rax,%rdx
  mov    -0x98(%rbp),%rax
  shr    $0x17,%rax
  or     %rdx,%rax
  mov    %rax,-0x98(%rbp)
  mov    -0xb0(%rbp),%rax
  add    %rax,-0x98(%rbp)
  mov    -0x98(%rbp),%rax
  and    -0xa8(%rbp),%rax
  mov    %rax,%rdx
  mov    -0xa8(%rbp),%rax
  not    %rax
  and    -0xb0(%rbp),%rax
  or     %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0xa0(%rbp),%rax
  add    %rax,%rdx
  mov    $0xd8a1e681,%eax
  add    %rdx,%rax
  mov    %rax,-0xa0(%rbp)
  mov    -0xa0(%rbp),%rax
  shl    $0xe,%rax
  mov    %rax,%rdx
  mov    -0xa0(%rbp),%rax
  shr    $0x12,%rax
  or     %rdx,%rax
  mov    %rax,-0xa0(%rbp)
  mov    -0x98(%rbp),%rax
  add    %rax,-0xa0(%rbp)
  mov    -0xa0(%rbp),%rax
  and    -0xb0(%rbp),%rax
  mov    %rax,%rdx
  mov    -0xb0(%rbp),%rax
  not    %rax
  and    -0x98(%rbp),%rax
  or     %rax,%rdx
  mov    -0x70(%rbp),%rax
  add    %rax,%rdx
  mov    -0xa8(%rbp),%rax
  add    %rax,%rdx
  mov    $0xe7d3fbc8,%eax
  add    %rdx,%rax
  mov    %rax,-0xa8(%rbp)
  mov    -0xa8(%rbp),%rax
  shl    $0x14,%rax
  mov    %rax,%rdx
  mov    -0xa8(%rbp),%rax
  shr    $0xc,%rax
  or     %rdx,%rax
  mov    %rax,-0xa8(%rbp)
  mov    -0xa0(%rbp),%rax
  add    %rax,-0xa8(%rbp)
  mov    -0xa8(%rbp),%rax
  and    -0x98(%rbp),%rax
  mov    %rax,%rdx
  mov    -0x98(%rbp),%rax
  not    %rax
  and    -0xa0(%rbp),%rax
  or     %rax,%rdx
  mov    -0x48(%rbp),%rax
  add    %rax,%rdx
  mov    -0xb0(%rbp),%rax
  add    %rdx,%rax
  add    $0x21e1cde6,%rax
  mov    %rax,-0xb0(%rbp)
  mov    -0xb0(%rbp),%rax
  shl    $0x5,%rax
  mov    %rax,%rdx
  mov    -0xb0(%rbp),%rax
  shr    $0x1b,%rax
  or     %rdx,%rax
  mov    %rax,-0xb0(%rbp)
  mov    -0xa8(%rbp),%rax
  add    %rax,-0xb0(%rbp)
  mov    -0xb0(%rbp),%rax
  and    -0xa0(%rbp),%rax
  mov    %rax,%rdx
  mov    -0xa0(%rbp),%rax
  not    %rax
  and    -0xa8(%rbp),%rax
  or     %rax,%rdx
  mov    -0x20(%rbp),%rax
  add    %rax,%rdx
  mov    -0x98(%rbp),%rax
  add    %rax,%rdx
  mov    $0xc33707d6,%eax
  add    %rdx,%rax
  mov    %rax,-0x98(%rbp)
  mov    -0x98(%rbp),%rax
  shl    $0x9,%rax
  mov    %rax,%rdx
  mov    -0x98(%rbp),%rax
  shr    $0x17,%rax
  or     %rdx,%rax
  mov    %rax,-0x98(%rbp)
  mov    -0xb0(%rbp),%rax
  add    %rax,-0x98(%rbp)
  mov    -0x98(%rbp),%rax
  and    -0xa8(%rbp),%rax
  mov    %rax,%rdx
  mov    -0xa8(%rbp),%rax
  not    %rax
  and    -0xb0(%rbp),%rax
  or     %rax,%rdx
  mov    -0x78(%rbp),%rax
  add    %rax,%rdx
  mov    -0xa0(%rbp),%rax
  add    %rax,%rdx
  mov    $0xf4d50d87,%eax
  add    %rdx,%rax
  mov    %rax,-0xa0(%rbp)
  mov    -0xa0(%rbp),%rax
  shl    $0xe,%rax
  mov    %rax,%rdx
  mov    -0xa0(%rbp),%rax
  shr    $0x12,%rax
  or     %rdx,%rax
  mov    %rax,-0xa0(%rbp)
  mov    -0x98(%rbp),%rax
  add    %rax,-0xa0(%rbp)
  mov    -0xa0(%rbp),%rax
  and    -0xb0(%rbp),%rax
  mov    %rax,%rdx
  mov    -0xb0(%rbp),%rax
  not    %rax
  and    -0x98(%rbp),%rax
  or     %rax,%rdx
  mov    -0x50(%rbp),%rax
  add    %rax,%rdx
  mov    -0xa8(%rbp),%rax
  add    %rdx,%rax
  add    $0x455a14ed,%rax
  mov    %rax,-0xa8(%rbp)
  mov    -0xa8(%rbp),%rax
  shl    $0x14,%rax
  mov    %rax,%rdx
  mov    -0xa8(%rbp),%rax
  shr    $0xc,%rax
  or     %rdx,%rax
  mov    %rax,-0xa8(%rbp)
  mov    -0xa0(%rbp),%rax
  add    %rax,-0xa8(%rbp)
  mov    -0xa8(%rbp),%rax
  and    -0x98(%rbp),%rax
  mov    %rax,%rdx
  mov    -0x98(%rbp),%rax
  not    %rax
  and    -0xa0(%rbp),%rax
  or     %rax,%rdx
  mov    -0x28(%rbp),%rax
  add    %rax,%rdx
  mov    -0xb0(%rbp),%rax
  add    %rax,%rdx
  mov    $0xa9e3e905,%eax
  add    %rdx,%rax
  mov    %rax,-0xb0(%rbp)
  mov    -0xb0(%rbp),%rax
  shl    $0x5,%rax
  mov    %rax,%rdx
  mov    -0xb0(%rbp),%rax
  shr    $0x1b,%rax
  or     %rdx,%rax
  mov    %rax,-0xb0(%rbp)
  mov    -0xa8(%rbp),%rax
  add    %rax,-0xb0(%rbp)
  mov    -0xb0(%rbp),%rax
  and    -0xa0(%rbp),%rax
  mov    %rax,%rdx
  mov    -0xa0(%rbp),%rax
  not    %rax
  and    -0xa8(%rbp),%rax
  or     %rax,%rdx
  mov    -0x80(%rbp),%rax
  add    %rax,%rdx
  mov    -0x98(%rbp),%rax
  add    %rax,%rdx
  mov    $0xfcefa3f8,%eax
  add    %rdx,%rax
  mov    %rax,-0x98(%rbp)
  mov    -0x98(%rbp),%rax
  shl    $0x9,%rax
  mov    %rax,%rdx
  mov    -0x98(%rbp),%rax
  shr    $0x17,%rax
  or     %rdx,%rax
  mov    %rax,-0x98(%rbp)
  mov    -0xb0(%rbp),%rax
  add    %rax,-0x98(%rbp)
  mov    -0x98(%rbp),%rax
  and    -0xa8(%rbp),%rax
  mov    %rax,%rdx
  mov    -0xa8(%rbp),%rax
  not    %rax
  and    -0xb0(%rbp),%rax
  or     %rax,%rdx
  mov    -0x58(%rbp),%rax
  add    %rax,%rdx
  mov    -0xa0(%rbp),%rax
  add    %rdx,%rax
  add    $0x676f02d9,%rax
  mov    %rax,-0xa0(%rbp)
  mov    -0xa0(%rbp),%rax
  shl    $0xe,%rax
  mov    %rax,%rdx
  mov    -0xa0(%rbp),%rax
  shr    $0x12,%rax
  or     %rdx,%rax
  mov    %rax,-0xa0(%rbp)
  mov    -0x98(%rbp),%rax
  add    %rax,-0xa0(%rbp)
  mov    -0xa0(%rbp),%rax
  and    -0xb0(%rbp),%rax
  mov    %rax,%rdx
  mov    -0xb0(%rbp),%rax
  not    %rax
  and    -0x98(%rbp),%rax
  or     %rax,%rdx
  mov    -0x30(%rbp),%rax
  add    %rax,%rdx
  mov    -0xa8(%rbp),%rax
  add    %rax,%rdx
  mov    $0x8d2a4c8a,%eax
  add    %rdx,%rax
  mov    %rax,-0xa8(%rbp)
  mov    -0xa8(%rbp),%rax
  shl    $0x14,%rax
  mov    %rax,%rdx
  mov    -0xa8(%rbp),%rax
  shr    $0xc,%rax
  or     %rdx,%rax
  mov    %rax,-0xa8(%rbp)
  mov    -0xa0(%rbp),%rax
  add    %rax,-0xa8(%rbp)
  mov    -0xa8(%rbp),%rax
  xor    -0xa0(%rbp),%rax
  xor    -0x98(%rbp),%rax
  mov    %rax,%rdx
  mov    -0x68(%rbp),%rax
  add    %rax,%rdx
  mov    -0xb0(%rbp),%rax
  add    %rax,%rdx
  mov    $0xfffa3942,%eax
  add    %rdx,%rax
  mov    %rax,-0xb0(%rbp)
  mov    -0xb0(%rbp),%rax
  shl    $0x4,%rax
  mov    %rax,%rdx
  mov    -0xb0(%rbp),%rax
  shr    $0x1c,%rax
  or     %rdx,%rax
  mov    %rax,-0xb0(%rbp)
  mov    -0xa8(%rbp),%rax
  add    %rax,-0xb0(%rbp)
  mov    -0xb0(%rbp),%rax
  xor    -0xa8(%rbp),%rax
  xor    -0xa0(%rbp),%rax
  mov    %rax,%rdx
  mov    -0x50(%rbp),%rax
  add    %rax,%rdx
  mov    -0x98(%rbp),%rax
  add    %rax,%rdx
  mov    $0x8771f681,%eax
  add    %rdx,%rax
  mov    %rax,-0x98(%rbp)
  mov    -0x98(%rbp),%rax
  shl    $0xb,%rax
  mov    %rax,%rdx
  mov    -0x98(%rbp),%rax
  shr    $0x15,%rax
  or     %rdx,%rax
  mov    %rax,-0x98(%rbp)
  mov    -0xb0(%rbp),%rax
  add    %rax,-0x98(%rbp)
  mov    -0x98(%rbp),%rax
  xor    -0xb0(%rbp),%rax
  xor    -0xa8(%rbp),%rax
  mov    %rax,%rdx
  mov    -0x38(%rbp),%rax
  add    %rax,%rdx
  mov    -0xa0(%rbp),%rax
  add    %rdx,%rax
  add    $0x6d9d6122,%rax
  mov    %rax,-0xa0(%rbp)
  mov    -0xa0(%rbp),%rax
  shl    $0x10,%rax
  mov    %rax,%rdx
  mov    -0xa0(%rbp),%rax
  shr    $0x10,%rax
  or     %rdx,%rax
  mov    %rax,-0xa0(%rbp)
  mov    -0x98(%rbp),%rax
  add    %rax,-0xa0(%rbp)
  mov    -0xa0(%rbp),%rax
  xor    -0x98(%rbp),%rax
  xor    -0xb0(%rbp),%rax
  mov    %rax,%rdx
  mov    -0x20(%rbp),%rax
  add    %rax,%rdx
  mov    -0xa8(%rbp),%rax
  add    %rax,%rdx
  mov    $0xfde5380c,%eax
  add    %rdx,%rax
  mov    %rax,-0xa8(%rbp)
  mov    -0xa8(%rbp),%rax
  shl    $0x17,%rax
  mov    %rax,%rdx
  mov    -0xa8(%rbp),%rax
  shr    $0x9,%rax
  or     %rdx,%rax
  mov    %rax,-0xa8(%rbp)
  mov    -0xa0(%rbp),%rax
  add    %rax,-0xa8(%rbp)
  mov    -0xa8(%rbp),%rax
  xor    -0xa0(%rbp),%rax
  xor    -0x98(%rbp),%rax
  mov    %rax,%rdx
  mov    -0x88(%rbp),%rax
  add    %rax,%rdx
  mov    -0xb0(%rbp),%rax
  add    %rax,%rdx
  mov    $0xa4beea44,%eax
  add    %rdx,%rax
  mov    %rax,-0xb0(%rbp)
  mov    -0xb0(%rbp),%rax
  shl    $0x4,%rax
  mov    %rax,%rdx
  mov    -0xb0(%rbp),%rax
  shr    $0x1c,%rax
  or     %rdx,%rax
  mov    %rax,-0xb0(%rbp)
  mov    -0xa8(%rbp),%rax
  add    %rax,-0xb0(%rbp)
  mov    -0xb0(%rbp),%rax
  xor    -0xa8(%rbp),%rax
  xor    -0xa0(%rbp),%rax
  mov    %rax,%rdx
  mov    -0x70(%rbp),%rax
  add    %rax,%rdx
  mov    -0x98(%rbp),%rax
  add    %rdx,%rax
  add    $0x4bdecfa9,%rax
  mov    %rax,-0x98(%rbp)
  mov    -0x98(%rbp),%rax
  shl    $0xb,%rax
  mov    %rax,%rdx
  mov    -0x98(%rbp),%rax
  shr    $0x15,%rax
  or     %rdx,%rax
  mov    %rax,-0x98(%rbp)
  mov    -0xb0(%rbp),%rax
  add    %rax,-0x98(%rbp)
  mov    -0x98(%rbp),%rax
  xor    -0xb0(%rbp),%rax
  xor    -0xa8(%rbp),%rax
  mov    %rax,%rdx
  mov    -0x58(%rbp),%rax
  add    %rax,%rdx
  mov    -0xa0(%rbp),%rax
  add    %rax,%rdx
  mov    $0xf6bb4b60,%eax
  add    %rdx,%rax
  mov    %rax,-0xa0(%rbp)
  mov    -0xa0(%rbp),%rax
  shl    $0x10,%rax
  mov    %rax,%rdx
  mov    -0xa0(%rbp),%rax
  shr    $0x10,%rax
  or     %rdx,%rax
  mov    %rax,-0xa0(%rbp)
  mov    -0x98(%rbp),%rax
  add    %rax,-0xa0(%rbp)
  mov    -0xa0(%rbp),%rax
  xor    -0x98(%rbp),%rax
  xor    -0xb0(%rbp),%rax
  mov    %rax,%rdx
  mov    -0x40(%rbp),%rax
  add    %rax,%rdx
  mov    -0xa8(%rbp),%rax
  add    %rax,%rdx
  mov    $0xbebfbc70,%eax
  add    %rdx,%rax
  mov    %rax,-0xa8(%rbp)
  mov    -0xa8(%rbp),%rax
  shl    $0x17,%rax
  mov    %rax,%rdx
  mov    -0xa8(%rbp),%rax
  shr    $0x9,%rax
  or     %rdx,%rax
  mov    %rax,-0xa8(%rbp)
  mov    -0xa0(%rbp),%rax
  add    %rax,-0xa8(%rbp)
  mov    -0xa8(%rbp),%rax
  xor    -0xa0(%rbp),%rax
  xor    -0x98(%rbp),%rax
  mov    %rax,%rdx
  mov    -0x28(%rbp),%rax
  add    %rax,%rdx
  mov    -0xb0(%rbp),%rax
  add    %rdx,%rax
  add    $0x289b7ec6,%rax
  mov    %rax,-0xb0(%rbp)
  mov    -0xb0(%rbp),%rax
  shl    $0x4,%rax
  mov    %rax,%rdx
  mov    -0xb0(%rbp),%rax
  shr    $0x1c,%rax
  or     %rdx,%rax
  mov    %rax,-0xb0(%rbp)
  mov    -0xa8(%rbp),%rax
  add    %rax,-0xb0(%rbp)
  mov    -0xb0(%rbp),%rax
  xor    -0xa8(%rbp),%rax
  xor    -0xa0(%rbp),%rax
  mov    %rax,%rdx
  mov    -0x90(%rbp),%rax
  add    %rax,%rdx
  mov    -0x98(%rbp),%rax
  add    %rax,%rdx
  mov    $0xeaa127fa,%eax
  add    %rdx,%rax
  mov    %rax,-0x98(%rbp)
  mov    -0x98(%rbp),%rax
  shl    $0xb,%rax
  mov    %rax,%rdx
  mov    -0x98(%rbp),%rax
  shr    $0x15,%rax
  or     %rdx,%rax
  mov    %rax,-0x98(%rbp)
  mov    -0xb0(%rbp),%rax
  add    %rax,-0x98(%rbp)
  mov    -0x98(%rbp),%rax
  xor    -0xb0(%rbp),%rax
  xor    -0xa8(%rbp),%rax
  mov    %rax,%rdx
  mov    -0x78(%rbp),%rax
  add    %rax,%rdx
  mov    -0xa0(%rbp),%rax
  add    %rax,%rdx
  mov    $0xd4ef3085,%eax
  add    %rdx,%rax
  mov    %rax,-0xa0(%rbp)
  mov    -0xa0(%rbp),%rax
  shl    $0x10,%rax
  mov    %rax,%rdx
  mov    -0xa0(%rbp),%rax
  shr    $0x10,%rax
  or     %rdx,%rax
  mov    %rax,-0xa0(%rbp)
  mov    -0x98(%rbp),%rax
  add    %rax,-0xa0(%rbp)
  mov    -0xa0(%rbp),%rax
  xor    -0x98(%rbp),%rax
  xor    -0xb0(%rbp),%rax
  mov    %rax,%rdx
  mov    -0x60(%rbp),%rax
  add    %rax,%rdx
  mov    -0xa8(%rbp),%rax
  add    %rdx,%rax
  add    $0x4881d05,%rax
  mov    %rax,-0xa8(%rbp)
  mov    -0xa8(%rbp),%rax
  shl    $0x17,%rax
  mov    %rax,%rdx
  mov    -0xa8(%rbp),%rax
  shr    $0x9,%rax
  or     %rdx,%rax
  mov    %rax,-0xa8(%rbp)
  mov    -0xa0(%rbp),%rax
  add    %rax,-0xa8(%rbp)
  mov    -0xa8(%rbp),%rax
  xor    -0xa0(%rbp),%rax
  xor    -0x98(%rbp),%rax
  mov    %rax,%rdx
  mov    -0x48(%rbp),%rax
  add    %rax,%rdx
  mov    -0xb0(%rbp),%rax
  add    %rax,%rdx
  mov    $0xd9d4d039,%eax
  add    %rdx,%rax
  mov    %rax,-0xb0(%rbp)
  mov    -0xb0(%rbp),%rax
  shl    $0x4,%rax
  mov    %rax,%rdx
  mov    -0xb0(%rbp),%rax
  shr    $0x1c,%rax
  or     %rdx,%rax
  mov    %rax,-0xb0(%rbp)
  mov    -0xa8(%rbp),%rax
  add    %rax,-0xb0(%rbp)
  mov    -0xb0(%rbp),%rax
  xor    -0xa8(%rbp),%rax
  xor    -0xa0(%rbp),%rax
  mov    %rax,%rdx
  mov    -0x30(%rbp),%rax
  add    %rax,%rdx
  mov    -0x98(%rbp),%rax
  add    %rax,%rdx
  mov    $0xe6db99e5,%eax
  add    %rdx,%rax
  mov    %rax,-0x98(%rbp)
  mov    -0x98(%rbp),%rax
  shl    $0xb,%rax
  mov    %rax,%rdx
  mov    -0x98(%rbp),%rax
  shr    $0x15,%rax
  or     %rdx,%rax
  mov    %rax,-0x98(%rbp)
  mov    -0xb0(%rbp),%rax
  add    %rax,-0x98(%rbp)
  mov    -0x98(%rbp),%rax
  xor    -0xb0(%rbp),%rax
  xor    -0xa8(%rbp),%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0xa0(%rbp),%rax
  add    %rdx,%rax
  add    $0x1fa27cf8,%rax
  mov    %rax,-0xa0(%rbp)
  mov    -0xa0(%rbp),%rax
  shl    $0x10,%rax
  mov    %rax,%rdx
  mov    -0xa0(%rbp),%rax
  shr    $0x10,%rax
  or     %rdx,%rax
  mov    %rax,-0xa0(%rbp)
  mov    -0x98(%rbp),%rax
  add    %rax,-0xa0(%rbp)
  mov    -0xa0(%rbp),%rax
  xor    -0x98(%rbp),%rax
  xor    -0xb0(%rbp),%rax
  mov    %rax,%rdx
  mov    -0x80(%rbp),%rax
  add    %rax,%rdx
  mov    -0xa8(%rbp),%rax
  add    %rax,%rdx
  mov    $0xc4ac5665,%eax
  add    %rdx,%rax
  mov    %rax,-0xa8(%rbp)
  mov    -0xa8(%rbp),%rax
  shl    $0x17,%rax
  mov    %rax,%rdx
  mov    -0xa8(%rbp),%rax
  shr    $0x9,%rax
  or     %rdx,%rax
  mov    %rax,-0xa8(%rbp)
  mov    -0xa0(%rbp),%rax
  add    %rax,-0xa8(%rbp)
  mov    -0x98(%rbp),%rax
  not    %rax
  or     -0xa8(%rbp),%rax
  xor    -0xa0(%rbp),%rax
  mov    %rax,%rdx
  mov    -0x90(%rbp),%rax
  add    %rax,%rdx
  mov    -0xb0(%rbp),%rax
  add    %rax,%rdx
  mov    $0xf4292244,%eax
  add    %rdx,%rax
  mov    %rax,-0xb0(%rbp)
  mov    -0xb0(%rbp),%rax
  shl    $0x6,%rax
  mov    %rax,%rdx
  mov    -0xb0(%rbp),%rax
  shr    $0x1a,%rax
  or     %rdx,%rax
  mov    %rax,-0xb0(%rbp)
  mov    -0xa8(%rbp),%rax
  add    %rax,-0xb0(%rbp)
  mov    -0xa0(%rbp),%rax
  not    %rax
  or     -0xb0(%rbp),%rax
  xor    -0xa8(%rbp),%rax
  mov    %rax,%rdx
  mov    -0x58(%rbp),%rax
  add    %rax,%rdx
  mov    -0x98(%rbp),%rax
  add    %rdx,%rax
  add    $0x432aff97,%rax
  mov    %rax,-0x98(%rbp)
  mov    -0x98(%rbp),%rax
  shl    $0xa,%rax
  mov    %rax,%rdx
  mov    -0x98(%rbp),%rax
  shr    $0x16,%rax
  or     %rdx,%rax
  mov    %rax,-0x98(%rbp)
  mov    -0xb0(%rbp),%rax
  add    %rax,-0x98(%rbp)
  mov    -0xa8(%rbp),%rax
  not    %rax
  or     -0x98(%rbp),%rax
  xor    -0xb0(%rbp),%rax
  mov    %rax,%rdx
  mov    -0x20(%rbp),%rax
  add    %rax,%rdx
  mov    -0xa0(%rbp),%rax
  add    %rax,%rdx
  mov    $0xab9423a7,%eax
  add    %rdx,%rax
  mov    %rax,-0xa0(%rbp)
  mov    -0xa0(%rbp),%rax
  shl    $0xf,%rax
  mov    %rax,%rdx
  mov    -0xa0(%rbp),%rax
  shr    $0x11,%rax
  or     %rdx,%rax
  mov    %rax,-0xa0(%rbp)
  mov    -0x98(%rbp),%rax
  add    %rax,-0xa0(%rbp)
  mov    -0xb0(%rbp),%rax
  not    %rax
  or     -0xa0(%rbp),%rax
  xor    -0x98(%rbp),%rax
  mov    %rax,%rdx
  mov    -0x68(%rbp),%rax
  add    %rax,%rdx
  mov    -0xa8(%rbp),%rax
  add    %rax,%rdx
  mov    $0xfc93a039,%eax
  add    %rdx,%rax
  mov    %rax,-0xa8(%rbp)
  mov    -0xa8(%rbp),%rax
  shl    $0x15,%rax
  mov    %rax,%rdx
  mov    -0xa8(%rbp),%rax
  shr    $0xb,%rax
  or     %rdx,%rax
  mov    %rax,-0xa8(%rbp)
  mov    -0xa0(%rbp),%rax
  add    %rax,-0xa8(%rbp)
  mov    -0x98(%rbp),%rax
  not    %rax
  or     -0xa8(%rbp),%rax
  xor    -0xa0(%rbp),%rax
  mov    %rax,%rdx
  mov    -0x30(%rbp),%rax
  add    %rax,%rdx
  mov    -0xb0(%rbp),%rax
  add    %rdx,%rax
  add    $0x655b59c3,%rax
  mov    %rax,-0xb0(%rbp)
  mov    -0xb0(%rbp),%rax
  shl    $0x6,%rax
  mov    %rax,%rdx
  mov    -0xb0(%rbp),%rax
  shr    $0x1a,%rax
  or     %rdx,%rax
  mov    %rax,-0xb0(%rbp)
  mov    -0xa8(%rbp),%rax
  add    %rax,-0xb0(%rbp)
  mov    -0xa0(%rbp),%rax
  not    %rax
  or     -0xb0(%rbp),%rax
  xor    -0xa8(%rbp),%rax
  mov    %rax,%rdx
  mov    -0x78(%rbp),%rax
  add    %rax,%rdx
  mov    -0x98(%rbp),%rax
  add    %rax,%rdx
  mov    $0x8f0ccc92,%eax
  add    %rdx,%rax
  mov    %rax,-0x98(%rbp)
  mov    -0x98(%rbp),%rax
  shl    $0xa,%rax
  mov    %rax,%rdx
  mov    -0x98(%rbp),%rax
  shr    $0x16,%rax
  or     %rdx,%rax
  mov    %rax,-0x98(%rbp)
  mov    -0xb0(%rbp),%rax
  add    %rax,-0x98(%rbp)
  mov    -0xa8(%rbp),%rax
  not    %rax
  or     -0x98(%rbp),%rax
  xor    -0xb0(%rbp),%rax
  mov    %rax,%rdx
  mov    -0x40(%rbp),%rax
  add    %rax,%rdx
  mov    -0xa0(%rbp),%rax
  add    %rax,%rdx
  mov    $0xffeff47d,%eax
  add    %rdx,%rax
  mov    %rax,-0xa0(%rbp)
  mov    -0xa0(%rbp),%rax
  shl    $0xf,%rax
  mov    %rax,%rdx
  mov    -0xa0(%rbp),%rax
  shr    $0x11,%rax
  or     %rdx,%rax
  mov    %rax,-0xa0(%rbp)
  mov    -0x98(%rbp),%rax
  add    %rax,-0xa0(%rbp)
  mov    -0xb0(%rbp),%rax
  not    %rax
  or     -0xa0(%rbp),%rax
  xor    -0x98(%rbp),%rax
  mov    %rax,%rdx
  mov    -0x88(%rbp),%rax
  add    %rax,%rdx
  mov    -0xa8(%rbp),%rax
  add    %rax,%rdx
  mov    $0x85845dd1,%eax
  add    %rdx,%rax
  mov    %rax,-0xa8(%rbp)
  mov    -0xa8(%rbp),%rax
  shl    $0x15,%rax
  mov    %rax,%rdx
  mov    -0xa8(%rbp),%rax
  shr    $0xb,%rax
  or     %rdx,%rax
  mov    %rax,-0xa8(%rbp)
  mov    -0xa0(%rbp),%rax
  add    %rax,-0xa8(%rbp)
  mov    -0x98(%rbp),%rax
  not    %rax
  or     -0xa8(%rbp),%rax
  xor    -0xa0(%rbp),%rax
  mov    %rax,%rdx
  mov    -0x50(%rbp),%rax
  add    %rax,%rdx
  mov    -0xb0(%rbp),%rax
  add    %rdx,%rax
  add    $0x6fa87e4f,%rax
  mov    %rax,-0xb0(%rbp)
  mov    -0xb0(%rbp),%rax
  shl    $0x6,%rax
  mov    %rax,%rdx
  mov    -0xb0(%rbp),%rax
  shr    $0x1a,%rax
  or     %rdx,%rax
  mov    %rax,-0xb0(%rbp)
  mov    -0xa8(%rbp),%rax
  add    %rax,-0xb0(%rbp)
  mov    -0xa0(%rbp),%rax
  not    %rax
  or     -0xb0(%rbp),%rax
  xor    -0xa8(%rbp),%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x98(%rbp),%rax
  add    %rax,%rdx
  mov    $0xfe2ce6e0,%eax
  add    %rdx,%rax
  mov    %rax,-0x98(%rbp)
  mov    -0x98(%rbp),%rax
  shl    $0xa,%rax
  mov    %rax,%rdx
  mov    -0x98(%rbp),%rax
  shr    $0x16,%rax
  or     %rdx,%rax
  mov    %rax,-0x98(%rbp)
  mov    -0xb0(%rbp),%rax
  add    %rax,-0x98(%rbp)
  mov    -0xa8(%rbp),%rax
  not    %rax
  or     -0x98(%rbp),%rax
  xor    -0xb0(%rbp),%rax
  mov    %rax,%rdx
  mov    -0x60(%rbp),%rax
  add    %rax,%rdx
  mov    -0xa0(%rbp),%rax
  add    %rax,%rdx
  mov    $0xa3014314,%eax
  add    %rdx,%rax
  mov    %rax,-0xa0(%rbp)
  mov    -0xa0(%rbp),%rax
  shl    $0xf,%rax
  mov    %rax,%rdx
  mov    -0xa0(%rbp),%rax
  shr    $0x11,%rax
  or     %rdx,%rax
  mov    %rax,-0xa0(%rbp)
  mov    -0x98(%rbp),%rax
  add    %rax,-0xa0(%rbp)
  mov    -0xb0(%rbp),%rax
  not    %rax
  or     -0xa0(%rbp),%rax
  xor    -0x98(%rbp),%rax
  mov    %rax,%rdx
  mov    -0x28(%rbp),%rax
  add    %rax,%rdx
  mov    -0xa8(%rbp),%rax
  add    %rdx,%rax
  add    $0x4e0811a1,%rax
  mov    %rax,-0xa8(%rbp)
  mov    -0xa8(%rbp),%rax
  shl    $0x15,%rax
  mov    %rax,%rdx
  mov    -0xa8(%rbp),%rax
  shr    $0xb,%rax
  or     %rdx,%rax
  mov    %rax,-0xa8(%rbp)
  mov    -0xa0(%rbp),%rax
  add    %rax,-0xa8(%rbp)
  mov    -0x98(%rbp),%rax
  not    %rax
  or     -0xa8(%rbp),%rax
  xor    -0xa0(%rbp),%rax
  mov    %rax,%rdx
  mov    -0x70(%rbp),%rax
  add    %rax,%rdx
  mov    -0xb0(%rbp),%rax
  add    %rax,%rdx
  mov    $0xf7537e82,%eax
  add    %rdx,%rax
  mov    %rax,-0xb0(%rbp)
  mov    -0xb0(%rbp),%rax
  shl    $0x6,%rax
  mov    %rax,%rdx
  mov    -0xb0(%rbp),%rax
  shr    $0x1a,%rax
  or     %rdx,%rax
  mov    %rax,-0xb0(%rbp)
  mov    -0xa8(%rbp),%rax
  add    %rax,-0xb0(%rbp)
  mov    -0xa0(%rbp),%rax
  not    %rax
  or     -0xb0(%rbp),%rax
  xor    -0xa8(%rbp),%rax
  mov    %rax,%rdx
  mov    -0x38(%rbp),%rax
  add    %rax,%rdx
  mov    -0x98(%rbp),%rax
  add    %rax,%rdx
  mov    $0xbd3af235,%eax
  add    %rdx,%rax
  mov    %rax,-0x98(%rbp)
  mov    -0x98(%rbp),%rax
  shl    $0xa,%rax
  mov    %rax,%rdx
  mov    -0x98(%rbp),%rax
  shr    $0x16,%rax
  or     %rdx,%rax
  mov    %rax,-0x98(%rbp)
  mov    -0xb0(%rbp),%rax
  add    %rax,-0x98(%rbp)
  mov    -0xa8(%rbp),%rax
  not    %rax
  or     -0x98(%rbp),%rax
  xor    -0xb0(%rbp),%rax
  mov    %rax,%rdx
  mov    -0x80(%rbp),%rax
  add    %rax,%rdx
  mov    -0xa0(%rbp),%rax
  add    %rdx,%rax
  add    $0x2ad7d2bb,%rax
  mov    %rax,-0xa0(%rbp)
  mov    -0xa0(%rbp),%rax
  shl    $0xf,%rax
  mov    %rax,%rdx
  mov    -0xa0(%rbp),%rax
  shr    $0x11,%rax
  or     %rdx,%rax
  mov    %rax,-0xa0(%rbp)
  mov    -0x98(%rbp),%rax
  add    %rax,-0xa0(%rbp)
  mov    -0xb0(%rbp),%rax
  not    %rax
  or     -0xa0(%rbp),%rax
  xor    -0x98(%rbp),%rax
  mov    %rax,%rdx
  mov    -0x48(%rbp),%rax
  add    %rax,%rdx
  mov    -0xa8(%rbp),%rax
  add    %rax,%rdx
  mov    $0xeb86d391,%eax
  add    %rdx,%rax
  mov    %rax,-0xa8(%rbp)
  mov    -0xa8(%rbp),%rax
  shl    $0x15,%rax
  mov    %rax,%rdx
  mov    -0xa8(%rbp),%rax
  shr    $0xb,%rax
  or     %rdx,%rax
  mov    %rax,-0xa8(%rbp)
  mov    -0xa0(%rbp),%rax
  add    %rax,-0xa8(%rbp)
  mov    -0xb8(%rbp),%rax
  mov    (%rax),%rdx
  mov    -0xb0(%rbp),%rax
  add    %rax,%rdx
  mov    -0xb8(%rbp),%rax
  mov    %rdx,(%rax)
  mov    -0xb8(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rcx
  mov    -0xb8(%rbp),%rax
  add    $0x8,%rax
  mov    -0xa8(%rbp),%rdx
  add    %rcx,%rdx
  mov    %rdx,(%rax)
  mov    -0xb8(%rbp),%rax
  add    $0x10,%rax
  mov    (%rax),%rcx
  mov    -0xb8(%rbp),%rax
  add    $0x10,%rax
  mov    -0xa0(%rbp),%rdx
  add    %rcx,%rdx
  mov    %rdx,(%rax)
  mov    -0xb8(%rbp),%rax
  add    $0x18,%rax
  mov    (%rax),%rcx
  mov    -0xb8(%rbp),%rax
  add    $0x18,%rax
  mov    -0x98(%rbp),%rdx
  add    %rcx,%rdx
  mov    %rdx,(%rax)
  lea    -0x90(%rbp),%rax
  mov    $0x80,%edx
  mov    $0x0,%esi
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <MD5_memset@plt>
  nop
  mov    -0x8(%rbp),%rax
  sub    %fs:0x28,%rax
  je     L0
  call   <__stack_chk_fail@plt>
L0:
  leave
  ret
```

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