user: Please show me the C implementation that matches the assembly code listed below:

```asm
<SHA1Transform>:
  endbr64
  push   %r15
  push   %r14
  push   %r13
  push   %r12
  push   %rbp
  push   %rbx
  sub    $0xc8,%rsp
  movdqu (%rdi),%xmm4
  mov    0x10(%rdi),%edx
  mov    %fs:0x28,%rax
  mov    %rax,0xb8(%rsp)
  xor    %eax,%eax
  mov    0x20(%rsi),%r11d
  mov    (%rsi),%r12d
  mov    %rdi,0x48(%rsp)
  movaps %xmm4,0x50(%rsp)
  mov    0x50(%rsp),%ecx
  mov    0x58(%rsp),%eax
  mov    0x5c(%rsp),%r8d
  movdqu (%rsi),%xmm0
  mov    %edx,0x60(%rsp)
  bswap  %r12d
  mov    %ecx,%r15d
  mov    0x10(%rsi),%ebx
  movdqu 0x10(%rsi),%xmm1
  mov    %eax,%r14d
  rol    $0x5,%r15d
  movdqu 0x20(%rsi),%xmm2
  movdqu 0x30(%rsi),%xmm3
  movaps %xmm0,0x70(%rsp)
  lea    0x5a827999(%rdx,%r15,1),%edx
  mov    %eax,%r15d
  mov    0x54(%rsp),%esi
  movaps %xmm4,(%rsp)
  xor    %r8d,%r15d
  movaps %xmm3,0xa0(%rsp)
  bswap  %ebx
  mov    0xa0(%rsp),%r10d
  mov    %r15d,%edi
  mov    0x74(%rsp),%r15d
  movaps %xmm1,0x80(%rsp)
  and    %esi,%edi
  ror    $0x2,%esi
  movaps %xmm2,0x90(%rsp)
  xor    %r8d,%edi
  xor    %esi,%r14d
  bswap  %r15d
  mov    %r15d,(%rsp)
  add    %edi,%edx
  mov    %r14d,%edi
  mov    0x78(%rsp),%ebp
  mov    0x8c(%rsp),%r13d
  and    %ecx,%edi
  add    %r12d,%edx
  ror    $0x2,%ecx
  xor    %eax,%edi
  mov    %edx,%r14d
  bswap  %ebp
  lea    0x5a827999(%rax,%rbp,1),%eax
  lea    0x5a827999(%r8,%rdi,1),%r9d
  mov    %esi,%r8d
  rol    $0x5,%r14d
  bswap  %r13d
  xor    %ecx,%r8d
  add    %r15d,%r9d
  mov    %r13d,0x40(%rsp)
  and    %edx,%r8d
  add    %r14d,%r9d
  ror    $0x2,%edx
  mov    %ecx,%r14d
  xor    %esi,%r8d
  xor    %edx,%r14d
  add    %eax,%r8d
  mov    %r9d,%eax
  mov    %r14d,%edi
  mov    %ebx,%r14d
  rol    $0x5,%eax
  and    %r9d,%edi
  ror    $0x2,%r9d
  add    %eax,%r8d
  mov    0x7c(%rsp),%eax
  xor    %ecx,%edi
  lea    0x5a827999(%rcx,%rbx,1),%ecx
  bswap  %eax
  lea    0x5a827999(%rsi,%rax,1),%esi
  add    %esi,%edi
  mov    %r8d,%esi
  rol    $0x5,%esi
  add    %esi,%edi
  mov    %edx,%esi
  xor    %r9d,%esi
  and    %r8d,%esi
  xor    %edx,%esi
  ror    $0x2,%r8d
  add    %ecx,%esi
  mov    %edi,%ecx
  mov    %r8d,%ebx
  rol    $0x5,%ecx
  add    %ecx,%esi
  mov    0x84(%rsp),%ecx
  bswap  %ecx
  mov    %ecx,%r15d
  mov    %r9d,%ecx
  xor    %r8d,%ecx
  lea    0x5a827999(%rdx,%r15,1),%edx
  and    %edi,%ecx
  ror    $0x2,%edi
  xor    %r9d,%ecx
  xor    %edi,%ebx
  add    %edx,%ecx
  mov    %esi,%edx
  and    %esi,%ebx
  ror    $0x2,%esi
  rol    $0x5,%edx
  xor    %r8d,%ebx
  add    %edx,%ecx
  mov    0x88(%rsp),%edx
  bswap  %edx
  mov    %edx,0x3c(%rsp)
  lea    0x5a827999(%r9,%rdx,1),%edx
  mov    %ecx,%r9d
  add    %ebx,%edx
  mov    %edi,%ebx
  rol    $0x5,%r9d
  xor    %esi,%ebx
  add    %r9d,%edx
  lea    0x5a827999(%r8,%r13,1),%r9d
  mov    0x94(%rsp),%r13d
  and    %ecx,%ebx
  ror    $0x2,%ecx
  mov    %edx,%r8d
  xor    %edi,%ebx
  rol    $0x5,%r8d
  bswap  %r13d
  mov    %r13d,0x38(%rsp)
  add    %ebx,%r9d
  mov    %r11d,%ebx
  mov    %esi,%r11d
  xor    %ecx,%r11d
  add    %r8d,%r9d
  bswap  %ebx
  lea    0x5a827999(%rdi,%rbx,1),%r8d
  and    %edx,%r11d
  lea    0x5a827999(%rsi,%r13,1),%edi
  mov    %ebx,0x24(%rsp)
  xor    %esi,%r11d
  add    %r11d,%r8d
  mov    %r9d,%r11d
  rol    $0x5,%r11d
  add    %r11d,%r8d
  ror    $0x2,%edx
  mov    %ecx,%r11d
  xor    %edx,%r11d
  mov    %r8d,%esi
  and    %r9d,%r11d
  rol    $0x5,%esi
  xor    %ecx,%r11d
  ror    $0x2,%r9d
  add    %r11d,%edi
  mov    %edx,%r11d
  add    %esi,%edi
  xor    %r9d,%r11d
  mov    0x98(%rsp),%esi
  and    %r8d,%r11d
  ror    $0x2,%r8d
  xor    %edx,%r11d
  bswap  %esi
  mov    %esi,0x28(%rsp)
  lea    0x5a827999(%rcx,%rsi,1),%esi
  mov    %edi,%ecx
  add    %r11d,%esi
  mov    %r9d,%r11d
  rol    $0x5,%ecx
  xor    %r8d,%r11d
  add    %ecx,%esi
  mov    0x9c(%rsp),%ecx
  and    %edi,%r11d
  ror    $0x2,%edi
  xor    %r9d,%r11d
  bswap  %ecx
  mov    %ecx,0x2c(%rsp)
  lea    0x5a827999(%rdx,%rcx,1),%ecx
  mov    %r10d,%edx
  add    %r11d,%ecx
  mov    %r8d,%r10d
  mov    %esi,%r11d
  bswap  %edx
  rol    $0x5,%r11d
  xor    %edi,%r10d
  mov    %edx,0x30(%rsp)
  lea    0x5a827999(%r9,%rdx,1),%edx
  add    %r11d,%ecx
  and    %esi,%r10d
  ror    $0x2,%esi
  mov    0xa4(%rsp),%r11d
  xor    %r8d,%r10d
  mov    %ecx,%r9d
  add    %r10d,%edx
  rol    $0x5,%r9d
  bswap  %r11d
  lea    0x5a827999(%r8,%r11,1),%ebx
  add    %r9d,%edx
  mov    %edi,%r9d
  mov    0xa8(%rsp),%r10d
  xor    %esi,%r9d
  mov    %edx,%r8d
  and    %ecx,%r9d
  bswap  %r10d
  xor    %edi,%r9d
  add    %r9d,%ebx
  ror    $0x2,%ecx
  mov    %esi,%r9d
  xor    %ebp,%r12d
  xor    %ecx,%r9d
  rol    $0x5,%r8d
  xor    0x24(%rsp),%r12d
  and    %edx,%r9d
  add    %r8d,%ebx
  ror    $0x2,%edx
  xor    %r11d,%r12d
  xor    %esi,%r9d
  lea    0x5a827999(%rdi,%r10,1),%r8d
  mov    %ecx,%edi
  add    %r9d,%r8d
  mov    %ebx,%r9d
  xor    %edx,%edi
  rol    $0x5,%r9d
  mov    %edi,%r13d
  add    %r9d,%r8d
  mov    0xac(%rsp),%r9d
  and    %ebx,%r13d
  ror    $0x2,%ebx
  xor    %ecx,%r13d
  bswap  %r9d
  lea    0x5a827999(%rsi,%r9,1),%edi
  mov    %r8d,%esi
  add    %r13d,%edi
  mov    %r12d,%r13d
  mov    %edx,%r12d
  rol    $0x5,%esi
  xor    %ebx,%r12d
  add    %esi,%edi
  rol    %r13d
  and    %r8d,%r12d
  lea    0x5a827999(%rcx,%r13,1),%esi
  mov    %edi,%ecx
  ror    $0x2,%r8d
  xor    %edx,%r12d
  rol    $0x5,%ecx
  add    %r12d,%esi
  mov    (%rsp),%r12d
  mov    %r13d,(%rsp)
  add    %ecx,%esi
  mov    0x38(%rsp),%ecx
  xor    %eax,%r12d
  xor    %r12d,%ecx
  mov    %ebx,%r12d
  xor    %r10d,%ecx
  rol    %ecx
  xor    %r8d,%r12d
  xor    %r14d,%ebp
  xor    0x28(%rsp),%ebp
  xor    %r9d,%ebp
  and    %edi,%r12d
  mov    %ecx,0x1c(%rsp)
  ror    $0x2,%edi
  xor    %ebx,%r12d
  lea    0x5a827999(%rdx,%rcx,1),%ecx
  mov    %ebp,%edx
  mov    %r8d,%ebp
  add    %r12d,%ecx
  xor    %edi,%ebp
  mov    %esi,%r12d
  rol    %edx
  rol    $0x5,%r12d
  and    %esi,%ebp
  mov    %edx,0x20(%rsp)
  ror    $0x2,%esi
  add    %r12d,%ecx
  xor    %r8d,%ebp
  lea    0x5a827999(%rbx,%rdx,1),%edx
  mov    %edi,%r12d
  xor    %esi,%r12d
  add    %ebp,%edx
  xor    %r15d,%eax
  mov    %ecx,%ebp
  xor    0x2c(%rsp),%eax
  rol    $0x5,%ebp
  mov    %r12d,%ebx
  xor    %r13d,%eax
  add    %ebp,%edx
  and    %ecx,%ebx
  mov    0x40(%rsp),%r13d
  rol    %eax
  xor    %edi,%ebx
  ror    $0x2,%ecx
  lea    0x5a827999(%r8,%rax,1),%r12d
  mov    %edx,%r8d
  mov    %eax,0x34(%rsp)
  mov    0x3c(%rsp),%eax
  add    %ebx,%r12d
  rol    $0x5,%r8d
  mov    %esi,%ebx
  add    %r8d,%r12d
  mov    %r14d,%r8d
  xor    %eax,%r8d
  xor    0x30(%rsp),%r8d
  xor    0x1c(%rsp),%r8d
  xor    %r13d,%r15d
  rol    %r8d
  xor    %ecx,%ebx
  mov    %r12d,%r14d
  xor    %edx,%ebx
  lea    0x6ed9eba1(%rdi,%r8,1),%ebp
  ror    $0x2,%edx
  mov    %r15d,%edi
  mov    %ecx,%r15d
  add    %ebx,%ebp
  rol    $0x5,%r14d
  xor    %r11d,%edi
  xor    %edx,%r15d
  xor    0x20(%rsp),%edi
  add    %r14d,%ebp
  rol    %edi
  mov    %r15d,%ebx
  mov    %ebp,%r14d
  xor    %r12d,%ebx
  lea    0x6ed9eba1(%rsi,%rdi,1),%r15d
  rol    $0x5,%r14d
  add    %ebx,%r15d
  ror    $0x2,%r12d
  mov    %edx,%ebx
  add    %r14d,%r15d
  mov    %eax,%r14d
  mov    0x24(%rsp),%eax
  xor    %r12d,%ebx
  xor    %ebp,%ebx
  ror    $0x2,%ebp
  xor    %eax,%r14d
  mov    %r14d,%esi
  xor    %r10d,%esi
  xor    0x34(%rsp),%esi
  rol    %esi
  lea    0x6ed9eba1(%rcx,%rsi,1),%r14d
  mov    %esi,0x24(%rsp)
  mov    0x38(%rsp),%esi
  add    %ebx,%r14d
  mov    %r15d,%ebx
  rol    $0x5,%ebx
  add    %ebx,%r14d
  mov    %r13d,%ebx
  xor    %esi,%ebx
  mov    %ebx,%ecx
  mov    %r12d,%ebx
  xor    %r9d,%ecx
  xor    %r8d,%ecx
  rol    %ecx
  xor    %ebp,%ebx
  xor    0x28(%rsp),%eax
  xor    0x2c(%rsp),%esi
  xor    %r15d,%ebx
  lea    0x6ed9eba1(%rdx,%rcx,1),%r13d
  mov    (%rsp),%edx
  ror    $0x2,%r15d
  add    %ebx,%r13d
  mov    %r14d,%ebx
  rol    $0x5,%ebx
  xor    %eax,%edx
  mov    0x28(%rsp),%eax
  xor    0x30(%rsp),%eax
  add    %ebx,%r13d
  xor    %edi,%edx
  mov    %ebp,%ebx
  rol    %edx
  xor    %r15d,%ebx
  xor    %r14d,%ebx
  lea    0x6ed9eba1(%r12,%rdx,1),%r12d
  ror    $0x2,%r14d
  add    %r12d,%ebx
  mov    %r13d,%r12d
  rol    $0x5,%r12d
  add    %r12d,%ebx
  mov    0x1c(%rsp),%r12d
  xor    %esi,%r12d
  xor    0x24(%rsp),%r12d
  rol    %r12d
  mov    %r12d,%esi
  mov    %r15d,%r12d
  xor    %r14d,%r12d
  lea    0x6ed9eba1(%rbp,%rsi,1),%ebp
  mov    %esi,0x38(%rsp)
  xor    %r13d,%r12d
  ror    $0x2,%r13d
  add    %ebp,%r12d
  mov    %ebx,%ebp
  rol    $0x5,%ebp
  add    %ebp,%r12d
  mov    0x20(%rsp),%ebp
  xor    %eax,%ebp
  mov    %r14d,%eax
  xor    %ecx,%ebp
  xor    %r13d,%eax
  mov    %ebp,%esi
  mov    %eax,%ebp
  rol    %esi
  xor    %ebx,%ebp
  lea    0x6ed9eba1(%r15,%rsi,1),%r15d
  add    %r15d,%ebp
  mov    %r12d,%r15d
  rol    $0x5,%r15d
  add    %r15d,%ebp
  mov    %ebx,%r15d
  mov    0x2c(%rsp),%ebx
  ror    $0x2,%r15d
  xor    %r11d,%ebx
  xor    0x34(%rsp),%ebx
  xor    %r9d,%r11d
  xor    %edx,%ebx
  xor    %edi,%r11d
  rol    %ebx
  xor    %esi,%r11d
  mov    %ebx,%eax
  mov    %r13d,%ebx
  rol    %r11d
  xor    %r15d,%ebx
  lea    0x6ed9eba1(%r14,%rax,1),%r14d
  mov    %eax,0x28(%rsp)
  xor    %r12d,%ebx
  ror    $0x2,%r12d
  add    %r14d,%ebx
  mov    %ebp,%r14d
  rol    $0x5,%r14d
  add    %r14d,%ebx
  mov    0x30(%rsp),%r14d
  xor    %r10d,%r14d
  xor    %r8d,%r14d
  xor    0x38(%rsp),%r14d
  rol    %r14d
  mov    %r14d,%eax
  mov    %r15d,%r14d
  xor    %r12d,%r14d
  lea    0x6ed9eba1(%r13,%rax,1),%r13d
  mov    %eax,0x2c(%rsp)
  xor    %ebp,%r14d
  ror    $0x2,%ebp
  add    %r13d,%r14d
  mov    %ebx,%r13d
  rol    $0x5,%r13d
  add    %r14d,%r13d
  mov    %r11d,%r14d
  mov    %r12d,%r11d
  xor    %ebp,%r11d
  mov    %r14d,0x30(%rsp)
  lea    0x6ed9eba1(%r15,%r14,1),%r14d
  xor    %ebx,%r11d
  add    %r11d,%r14d
  mov    %r13d,%r11d
  rol    $0x5,%r11d
  add    %r14d,%r11d
  xor    (%rsp),%r10d
  xor    0x24(%rsp),%r10d
  ror    $0x2,%ebx
  xor    0x28(%rsp),%r10d
  xor    0x1c(%rsp),%r9d
  rol    %r10d
  xor    %ecx,%r9d
  mov    %r10d,%r14d
  mov    %ebp,%r10d
  xor    %eax,%r9d
  xor    %ebx,%r10d
  lea    0x6ed9eba1(%r12,%r14,1),%r12d
  mov    %r9d,%r15d
  mov    %ebx,%r9d
  xor    %r13d,%r10d
  ror    $0x2,%r13d
  add    %r10d,%r12d
  mov    %r11d,%r10d
  rol    %r15d
  xor    %r13d,%r9d
  rol    $0x5,%r10d
  xor    %r11d,%r9d
  lea    0x6ed9eba1(%rbp,%r15,1),%ebp
  ror    $0x2,%r11d
  add    %r12d,%r10d
  add    %r9d,%ebp
  mov    %r13d,%r12d
  mov    %r10d,%r9d
  xor    %r11d,%r12d
  rol    $0x5,%r9d
  xor    %r10d,%r12d
  ror    $0x2,%r10d
  add    %ebp,%r9d
  mov    (%rsp),%ebp
  xor    0x20(%rsp),%ebp
  xor    %edx,%ebp
  xor    0x30(%rsp),%ebp
  mov    %ebp,%eax
  rol    %eax
  lea    0x6ed9eba1(%rbx,%rax,1),%ebp
  mov    %r9d,%ebx
  mov    %eax,0x3c(%rsp)
  mov    0x34(%rsp),%eax
  add    %r12d,%ebp
  rol    $0x5,%ebx
  add    %ebp,%ebx
  mov    0x1c(%rsp),%ebp
  xor    %eax,%ebp
  xor    0x38(%rsp),%ebp
  xor    %edi,%eax
  xor    %r14d,%ebp
  rol    %ebp
  mov    %ebp,%r12d
  mov    %r11d,%ebp
  xor    %r10d,%ebp
  mov    %r12d,0x34(%rsp)
  lea    0x6ed9eba1(%r13,%r12,1),%r12d
  mov    %r10d,%r13d
  xor    %r9d,%ebp
  ror    $0x2,%r9d
  add    %ebp,%r12d
  mov    %ebx,%ebp
  xor    %r9d,%r13d
  rol    $0x5,%ebp
  xor    %ebx,%r13d
  ror    $0x2,%ebx
  add    %r12d,%ebp
  mov    0x20(%rsp),%r12d
  xor    0x28(%rsp),%eax
  mov    %esi,0x1c(%rsp)
  xor    0x3c(%rsp),%eax
  xor    %r8d,%r12d
  xor    0x24(%rsp),%r8d
  xor    0x2c(%rsp),%r8d
  xor    %esi,%r12d
  xor    %r15d,%r12d
  mov    %r12d,%esi
  rol    %esi
  lea    0x6ed9eba1(%r11,%rsi,1),%r12d
  mov    %esi,0x40(%rsp)
  add    %r13d,%r12d
  mov    %ebp,%r13d
  rol    $0x5,%r13d
  mov    %r13d,%r11d
  mov    %eax,%r13d
  rol    %r13d
  add    %r12d,%r11d
  mov    %r13d,%r12d
  mov    %r9d,%r13d
  xor    %ebx,%r13d
  lea    0x6ed9eba1(%r10,%r12,1),%r10d
  mov    %r13d,%eax
  mov    %r11d,%r13d
  xor    %ebp,%eax
  rol    $0x5,%r13d
  add    %eax,%r10d
  mov    %r13d,%eax
  ror    $0x2,%ebp
  add    %r10d,%eax
  xor    0x34(%rsp),%r8d
  xor    %ecx,%edi
  xor    0x30(%rsp),%edi
  mov    %r8d,%r10d
  mov    %ebx,%r8d
  xor    %esi,%edi
  rol    %r10d
  xor    %ebp,%r8d
  mov    %edi,%r13d
  xor    %r11d,%r8d
  lea    0x6ed9eba1(%r9,%r10,1),%r9d
  ror    $0x2,%r11d
  add    %r8d,%r9d
  mov    %eax,%r8d
  rol    %r13d
  rol    $0x5,%r8d
  add    %r9d,%r8d
  mov    %ebp,%r9d
  xor    %r11d,%r9d
  mov    %r8d,%esi
  mov    %r9d,%edi
  rol    $0x5,%esi
  lea    0x6ed9eba1(%rbx,%r13,1),%r9d
  mov    0x38(%rsp),%ebx
  xor    %eax,%edi
  ror    $0x2,%eax
  add    %edi,%r9d
  mov    %esi,%edi
  mov    0x24(%rsp),%esi
  xor    %ebx,%ecx
  add    %r9d,%edi
  xor    %r15d,%ecx
  xor    %edx,%esi
  xor    %r10d,%ecx
  xor    %r14d,%esi
  rol    %ecx
  xor    %r12d,%esi
  mov    %ecx,(%rsp)
  lea    0x6ed9eba1(%r11,%rcx,1),%ecx
  mov    %esi,%r9d
  mov    %r11d,%esi
  mov    0x1c(%rsp),%r11d
  rol    %r9d
  xor    %eax,%esi
  xor    %r8d,%esi
  mov    %r9d,0x44(%rsp)
  lea    0x6ed9eba1(%rbp,%r9,1),%r9d
  ror    $0x2,%r8d
  add    %esi,%r9d
  mov    %edi,%esi
  rol    $0x5,%esi
  add    %r9d,%esi
  mov    %eax,%r9d
  xor    %r8d,%r9d
  xor    %r11d,%edx
  xor    0x3c(%rsp),%edx
  xor    %r13d,%edx
  xor    %edi,%r9d
  ror    $0x2,%edi
  rol    %edx
  add    %r9d,%ecx
  mov    %esi,%r9d
  mov    %edx,%ebp
  mov    %esi,%edx
  rol    $0x5,%r9d
  or     %edi,%edx
  add    %r9d,%ecx
  lea    -0x70e44324(%rax,%rbp,1),%eax
  mov    %ebp,0x38(%rsp)
  mov    %edx,%r9d
  mov    %esi,%edx
  ror    $0x2,%esi
  and    %r8d,%r9d
  and    %edi,%edx
  or     %r9d,%edx
  mov    %ecx,%r9d
  add    %eax,%edx
  mov    %ecx,%eax
  or     %esi,%r9d
  rol    $0x5,%eax
  and    %edi,%r9d
  add    %eax,%edx
  mov    %ebx,%eax
  mov    0x28(%rsp),%ebx
  xor    %ebx,%eax
  xor    0x34(%rsp),%eax
  xor    0x44(%rsp),%eax
  rol    %eax
  mov    %eax,%ebp
  mov    %ecx,%eax
  ror    $0x2,%ecx
  and    %esi,%eax
  lea    -0x70e44324(%r8,%rbp,1),%r8d
  mov    %ebp,0x1c(%rsp)
  mov    0x2c(%rsp),%ebp
  or     %r9d,%eax
  add    %r8d,%eax
  mov    %edx,%r8d
  xor    %ebp,%r11d
  rol    $0x5,%r8d
  add    %r8d,%eax
  mov    0x40(%rsp),%r8d
  xor    %r11d,%r8d
  xor    (%rsp),%r8d
  rol    %r8d
  mov    %r8d,%r11d
  mov    %edx,%r8d
  or     %ecx,%r8d
  mov    %r11d,0x20(%rsp)
  lea    -0x70e44324(%rdi,%r11,1),%edi
  mov    0x30(%rsp),%r11d
  mov    %r8d,%r9d
  mov    %edx,%r8d
  ror    $0x2,%edx
  and    %esi,%r9d
  and    %ecx,%r8d
  xor    %r11d,%ebx
  or     %r9d,%r8d
  mov    %eax,%r9d
  add    %edi,%r8d
  mov    %eax,%edi
  or     %edx,%r9d
  rol    $0x5,%edi
  and    %ecx,%r9d
  add    %edi,%r8d
  mov    %ebx,%edi
  xor    %r12d,%edi
  xor    0x38(%rsp),%edi
  mov    %edi,%ebx
  mov    %eax,%edi
  ror    $0x2,%eax
  rol    %ebx
  and    %edx,%edi
  or     %r9d,%edi
  lea    -0x70e44324(%rsi,%rbx,1),%esi
  mov    %ebx,0x24(%rsp)
  mov    0x3c(%rsp),%ebx
  add    %esi,%edi
  mov    %r8d,%esi
  rol    $0x5,%esi
  add    %esi,%edi
  mov    %eax,%esi
  mov    %ebp,%eax
  xor    %r14d,%eax
  xor    %r10d,%eax
  xor    0x1c(%rsp),%eax
  rol    %eax
  mov    %eax,%ebp
  mov    %r8d,%eax
  or     %esi,%eax
  lea    -0x70e44324(%rcx,%rbp,1),%ecx
  mov    %ebp,0x28(%rsp)
  mov    %eax,%r9d
  mov    %r8d,%eax
  and    %edx,%r9d
  and    %esi,%eax
  or     %r9d,%eax
  add    %eax,%ecx
  mov    %edi,%eax
  rol    $0x5,%eax
  add    %eax,%ecx
  mov    %r11d,%eax
  ror    $0x2,%r8d
  xor    %ebx,%r14d
  xor    %r15d,%eax
  mov    %r8d,%r9d
  mov    %edi,%r8d
  xor    %r13d,%eax
  xor    0x20(%rsp),%eax
  or     %r9d,%r8d
  rol    %eax
  and    %esi,%r8d
  mov    %eax,%r11d
  mov    %edi,%eax
  ror    $0x2,%edi
  and    %r9d,%eax
  lea    -0x70e44324(%rdx,%r11,1),%edx
  mov    %r11d,0x2c(%rsp)
  xor    0x44(%rsp),%r14d
  or     %r8d,%eax
  xor    0x24(%rsp),%r14d
  mov    0x34(%rsp),%ebp
  add    %edx,%eax
  mov    %ecx,%edx
  rol    %r14d
  rol    $0x5,%edx
  xor    %ebp,%r15d
  xor    (%rsp),%r15d
  xor    0x28(%rsp),%r15d
  add    %edx,%eax
  mov    %ecx,%edx
  rol    %r15d
  or     %edi,%edx
  mov    %edx,%r8d
  mov    %ecx,%edx
  ror    $0x2,%ecx
  and    %r9d,%r8d
  and    %edi,%edx
  mov    %ecx,%r11d
  or     %r8d,%edx
  lea    -0x70e44324(%rsi,%r14,1),%r8d
  mov    %eax,%esi
  add    %edx,%r8d
  mov    %eax,%edx
  or     %ecx,%esi
  rol    $0x5,%edx
  and    %edi,%esi
  add    %edx,%r8d
  mov    %eax,%edx
  and    %ecx,%edx
  ror    $0x2,%eax
  mov    %r8d,%ecx
  or     %esi,%edx
  lea    -0x70e44324(%r9,%r15,1),%esi
  mov    0x40(%rsp),%r9d
  or     %eax,%ecx
  add    %edx,%esi
  mov    %r8d,%edx
  and    %r11d,%ecx
  rol    $0x5,%edx
  xor    %r9d,%ebx
  xor    %r10d,%r9d
  add    %edx,%esi
  mov    0x38(%rsp),%edx
  xor    %ebx,%edx
  xor    0x2c(%rsp),%edx
  rol    %edx
  mov    %edx,%ebx
  mov    %r8d,%edx
  ror    $0x2,%r8d
  and    %eax,%edx
  mov    %ebx,0x30(%rsp)
  or     %ecx,%edx
  lea    -0x70e44324(%rdi,%rbx,1),%ecx
  add    %edx,%ecx
  mov    %esi,%edx
  rol    $0x5,%edx
  add    %edx,%ecx
  mov    %ebp,%edx
  xor    %r12d,%edx
  xor    0x1c(%rsp),%edx
  xor    %r14d,%edx
  rol    %edx
  mov    %edx,%ebp
  mov    %esi,%edx
  or     %r8d,%edx
  mov    %ebp,0x34(%rsp)
  mov    %edx,%edi
  mov    %esi,%edx
  ror    $0x2,%esi
  and    %eax,%edi
  and    %r8d,%edx
  or     %edi,%edx
  lea    -0x70e44324(%r11,%rbp,1),%edi
  mov    %ecx,%r11d
  add    %edi,%edx
  mov    0x20(%rsp),%edi
  rol    $0x5,%r11d
  add    %r11d,%edx
  mov    %ecx,%r11d
  xor    %r9d,%edi
  xor    %r15d,%edi
  and    %esi,%r11d
  xor    %r13d,%r12d
  xor    0x24(%rsp),%r12d
  mov    %edi,%r9d
  mov    %r11d,%edi
  xor    0x30(%rsp),%r12d
  rol    %r9d
  mov    %r12d,%r11d
  mov    0x44(%rsp),%r12d
  mov    %r9d,%ebx
  mov    %ecx,%r9d
  ror    $0x2,%ecx
  or     %esi,%r9d
  lea    -0x70e44324(%rax,%rbx,1),%eax
  rol    %r11d
  xor    %r12d,%r10d
  and    %r8d,%r9d
  lea    -0x70e44324(%r8,%r11,1),%r8d
  xor    0x28(%rsp),%r10d
  or     %r9d,%edi
  mov    %edx,%r9d
  xor    %ebp,%r10d
  add    %eax,%edi
  mov    %edx,%eax
  or     %ecx,%r9d
  rol    %r10d
  rol    $0x5,%eax
  and    %esi,%r9d
  lea    -0x70e44324(%rsi,%r10,1),%esi
  add    %eax,%edi
  mov    %edx,%eax
  ror    $0x2,%edx
  and    %ecx,%eax
  or     %r9d,%eax
  mov    %edi,%r9d
  add    %r8d,%eax
  mov    %edi,%r8d
  or     %edx,%r9d
  rol    $0x5,%r8d
  and    %ecx,%r9d
  add    %r8d,%eax
  mov    %edi,%r8d
  and    %edx,%r8d
  or     %r9d,%r8d
  mov    %eax,%r9d
  add    %r8d,%esi
  rol    $0x5,%r9d
  add    %r9d,%esi
  xor    (%rsp),%r13d
  xor    0x2c(%rsp),%r13d
  ror    $0x2,%edi
  xor    %ebx,%r13d
  mov    %eax,%r9d
  rol    %r13d
  or     %edi,%r9d
  mov    %r13d,%ebp
  mov    %eax,%r13d
  and    %edx,%r9d
  ror    $0x2,%eax
  and    %edi,%r13d
  lea    -0x70e44324(%rcx,%rbp,1),%ecx
  mov    %r13d,%r8d
  or     %r9d,%r8d
  mov    %esi,%r9d
  add    %r8d,%ecx
  mov    %r12d,%r8d
  mov    0x38(%rsp),%r12d
  rol    $0x5,%r9d
  add    %r9d,%ecx
  mov    %esi,%r9d
  xor    %r12d,%r8d
  or     %eax,%r9d
  xor    %r14d,%r8d
  and    %edi,%r9d
  xor    %r11d,%r8d
  mov    %r8d,%r13d
  mov    %esi,%r8d
  ror    $0x2,%esi
  rol    %r13d
  and    %eax,%r8d
  or     %r9d,%r8d
  lea    -0x70e44324(%rdx,%r13,1),%edx
  mov    %ecx,%r9d
  mov    %r13d,0x38(%rsp)
  add    %edx,%r8d
  mov    %ecx,%edx
  or     %esi,%r9d
  rol    $0x5,%edx
  and    %eax,%r9d
  add    %edx,%r8d
  mov    (%rsp),%edx
  xor    0x1c(%rsp),%edx
  xor    %r15d,%edx
  xor    %r10d,%edx
  rol    %edx
  mov    %edx,%r13d
  mov    %ecx,%edx
  and    %esi,%edx
  lea    -0x70e44324(%rdi,%r13,1),%edi
  xor    0x20(%rsp),%r12d
  ror    $0x2,%ecx
  or     %r9d,%edx
  mov    %r8d,%r9d
  add    %edi,%edx
  mov    0x30(%rsp),%edi
  rol    $0x5,%r9d
  add    %r9d,%edx
  mov    %r8d,%r9d
  xor    %r12d,%edi
  or     %ecx,%r9d
  xor    %ebp,%edi
  and    %esi,%r9d
  mov    %edi,%r12d
  mov    %r8d,%edi
  ror    $0x2,%r8d
  rol    %r12d
  and    %ecx,%edi
  or     %r9d,%edi
  lea    -0x70e44324(%rax,%r12,1),%eax
  mov    %edx,%r9d
  mov    %r12d,0x3c(%rsp)
  add    %eax,%edi
  mov    %edx,%eax
  or     %r8d,%r9d
  rol    $0x5,%eax
  and    %ecx,%r9d
  add    %eax,%edi
  mov    0x1c(%rsp),%eax
  xor    0x24(%rsp),%eax
  xor    0x34(%rsp),%eax
  xor    0x38(%rsp),%eax
  rol    %eax
  mov    %eax,%r12d
  mov    %edx,%eax
  ror    $0x2,%edx
  and    %r8d,%eax
  lea    -0x70e44324(%rsi,%r12,1),%esi
  or     %r9d,%eax
  mov    %edi,%r9d
  add    %esi,%eax
  mov    %edi,%esi
  rol    $0x5,%esi
  add    %esi,%eax
  mov    0x20(%rsp),%esi
  xor    0x28(%rsp),%esi
  xor    %ebx,%esi
  xor    %r13d,%esi
  or     %edx,%r9d
  rol    %esi
  and    %r8d,%r9d
  mov    %esi,0x1c(%rsp)
  mov    %edi,%esi
  ror    $0x2,%edi
  and    %edx,%esi
  or     %r9d,%esi
  mov    0x1c(%rsp),%r9d
  lea    -0x70e44324(%rcx,%r9,1),%ecx
  add    %ecx,%esi
  mov    %eax,%ecx
  rol    $0x5,%ecx
  add    %ecx,%esi
  mov    0x24(%rsp),%ecx
  xor    0x2c(%rsp),%ecx
  xor    %r11d,%ecx
  xor    0x3c(%rsp),%ecx
  rol    %ecx
  mov    %ecx,(%rsp)
  mov    %eax,%ecx
  or     %edi,%ecx
  mov    %ecx,%r9d
  mov    %eax,%ecx
  ror    $0x2,%eax
  and    %edx,%r9d
  and    %edi,%ecx
  or     %r9d,%ecx
  mov    (%rsp),%r9d
  lea    -0x70e44324(%r8,%r9,1),%r8d
  add    %r8d,%ecx
  mov    %esi,%r8d
  rol    $0x5,%r8d
  add    %r8d,%ecx
  mov    0x28(%rsp),%r8d
  xor    %r14d,%r8d
  xor    %r10d,%r8d
  xor    %r12d,%r8d
  rol    %r8d
  mov    %r8d,0x20(%rsp)
  lea    -0x359d3e2a(%rdx,%r8,1),%r8d
  mov    %edi,%edx
  xor    %eax,%edx
  xor    %esi,%edx
  ror    $0x2,%esi
  add    %r8d,%edx
  mov    %ecx,%r8d
  rol    $0x5,%r8d
  add    %r8d,%edx
  mov    0x2c(%rsp),%r8d
  xor    %r15d,%r8d
  xor    %ebp,%r8d
  xor    0x1c(%rsp),%r8d
  rol    %r8d
  mov    %r8d,0x24(%rsp)
  lea    -0x359d3e2a(%rdi,%r8,1),%edi
  mov    %eax,%r8d
  xor    %esi,%r8d
  xor    %ecx,%r8d
  ror    $0x2,%ecx
  add    %edi,%r8d
  mov    %edx,%edi
  rol    $0x5,%edi
  add    %edi,%r8d
  mov    %r14d,%edi
  mov    0x30(%rsp),%r14d
  xor    %r14d,%edi
  xor    0x38(%rsp),%edi
  xor    %ebx,%r14d
  xor    %r9d,%edi
  mov    %edi,%r9d
  mov    %esi,%edi
  rol    %r9d
  xor    %ecx,%edi
  lea    -0x359d3e2a(%rax,%r9,1),%eax
  xor    %edx,%edi
  mov    %r9d,0x28(%rsp)
  ror    $0x2,%edx
  add    %eax,%edi
  mov    %r8d,%eax
  rol    $0x5,%eax
  add    %eax,%edi
  mov    %r15d,%eax
  mov    0x34(%rsp),%r15d
  xor    %r15d,%eax
  xor    %r13d,%eax
  xor    0x20(%rsp),%eax
  rol    %eax
  lea    -0x359d3e2a(%rsi,%rax,1),%r9d
  mov    %ecx,%esi
  xor    %edx,%esi
  xor    %r8d,%esi
  ror    $0x2,%r8d
  add    %r9d,%esi
  mov    %edi,%r9d
  rol    $0x5,%r9d
  add    %r9d,%esi
  mov    %r14d,%r9d
  mov    0x3c(%rsp),%r14d
  xor    %r14d,%r9d
  xor    0x24(%rsp),%r9d
  xor    %r11d,%r15d
  xor    %r10d,%ebx
  rol    %r9d
  xor    %ebp,%r11d
  mov    %r9d,0x2c(%rsp)
  lea    -0x359d3e2a(%rcx,%r9,1),%r9d
  mov    %edx,%ecx
  xor    %r8d,%ecx
  xor    %edi,%ecx
  ror    $0x2,%edi
  add    %r9d,%ecx
  mov    %esi,%r9d
  rol    $0x5,%r9d
  add    %r9d,%ecx
  mov    %r15d,%r9d
  xor    %r12d,%r9d
  xor    0x28(%rsp),%r9d
  mov    %r9d,%r15d
  rol    %r15d
  lea    -0x359d3e2a(%rdx,%r15,1),%r9d
  mov    %r8d,%edx
  mov    %r15d,0x30(%rsp)
  mov    %ecx,%r15d
  xor    %edi,%edx
  rol    $0x5,%r15d
  xor    %esi,%edx
  ror    $0x2,%esi
  add    %r9d,%edx
  mov    0x1c(%rsp),%r9d
  add    %r15d,%edx
  mov    0x38(%rsp),%r15d
  xor    %ebx,%r9d
  mov    %edi,%ebx
  xor    %eax,%r9d
  xor    %esi,%ebx
  rol    %r9d
  xor    %ecx,%ebx
  ror    $0x2,%ecx
  lea    -0x359d3e2a(%r8,%r9,1),%r8d
  add    %r8d,%ebx
  mov    %edx,%r8d
  rol    $0x5,%r8d
  add    %r8d,%ebx
  mov    (%rsp),%r8d
  xor    %r11d,%r8d
  mov    %esi,%r11d
  xor    0x2c(%rsp),%r8d
  rol    %r8d
  xor    %ecx,%r11d
  xor    %r15d,%r10d
  lea    -0x359d3e2a(%rdi,%r8,1),%edi
  xor    %edx,%r11d
  ror    $0x2,%edx
  add    %edi,%r11d
  mov    %ebx,%edi
  rol    $0x5,%edi
  add    %edi,%r11d
  mov    0x20(%rsp),%edi
  xor    %r10d,%edi
  mov    %ecx,%r10d
  xor    0x30(%rsp),%edi
  rol    %edi
  xor    %edx,%r10d
  lea    -0x359d3e2a(%rsi,%rdi,1),%esi
  xor    %ebx,%r10d
  ror    $0x2,%ebx
  add    %esi,%r10d
  mov    %r11d,%esi
  rol    $0x5,%esi
  add    %esi,%r10d
  mov    %ebp,%esi
  mov    %edx,%ebp
  xor    %r13d,%esi
  xor    0x24(%rsp),%esi
  xor    %ebx,%ebp
  xor    %r9d,%esi
  xor    %r11d,%ebp
  ror    $0x2,%r11d
  rol    %esi
  lea    -0x359d3e2a(%rcx,%rsi,1),%ecx
  add    %ecx,%ebp
  mov    %r10d,%ecx
  rol    $0x5,%ecx
  add    %ecx,%ebp
  mov    %r15d,%ecx
  mov    %r14d,%r15d
  xor    %r14d,%ecx
  xor    0x28(%rsp),%ecx
  mov    %ebx,%r14d
  xor    %r8d,%ecx
  xor    %r11d,%r14d
  rol    %ecx
  xor    %r10d,%r14d
  lea    -0x359d3e2a(%rdx,%rcx,1),%edx
  add    %edx,%r14d
  mov    %ebp,%edx
  ror    $0x2,%r10d
  rol    $0x5,%edx
  add    %edx,%r14d
  mov    %r13d,%edx
  mov    %r11d,%r13d
  xor    %r12d,%edx
  xor    %r10d,%r13d
  xor    %eax,%edx
  xor    %ebp,%r13d
  ror    $0x2,%ebp
  xor    %edi,%edx
  rol    %edx
  lea    -0x359d3e2a(%rbx,%rdx,1),%ebx
  add    %ebx,%r13d
  mov    %r14d,%ebx
  rol    $0x5,%ebx
  add    %ebx,%r13d
  mov    0x1c(%rsp),%ebx
  xor    %r15d,%ebx
  xor    0x2c(%rsp),%ebx
  mov    %r10d,%r15d
  xor    %esi,%ebx
  xor    %ebp,%r15d
  rol    %ebx
  xor    %r14d,%r15d
  ror    $0x2,%r14d
  lea    -0x359d3e2a(%r11,%rbx,1),%r11d
  add    %r11d,%r15d
  mov    %r13d,%r11d
  rol    $0x5,%r11d
  add    %r11d,%r15d
  mov    (%rsp),%r11d
  xor    %r12d,%r11d
  xor    0x30(%rsp),%r11d
  mov    %ebp,%r12d
  xor    %ecx,%r11d
  xor    %r14d,%r12d
  rol    %r11d
  xor    %r13d,%r12d
  lea    -0x359d3e2a(%r10,%r11,1),%r10d
  add    %r10d,%r12d
  mov    %r15d,%r10d
  rol    $0x5,%r10d
  add    %r10d,%r12d
  mov    0x1c(%rsp),%r10d
  xor    0x20(%rsp),%r10d
  ror    $0x2,%r13d
  xor    %r9d,%r10d
  xor    %edx,%r10d
  rol    %r10d
  lea    -0x359d3e2a(%rbp,%r10,1),%r9d
  mov    %r14d,%ebp
  xor    %r13d,%ebp
  xor    %r15d,%ebp
  ror    $0x2,%r15d
  add    %r9d,%ebp
  mov    %r12d,%r9d
  rol    $0x5,%r9d
  add    %r9d,%ebp
  mov    (%rsp),%r9d
  xor    0x24(%rsp),%r9d
  xor    %r8d,%r9d
  xor    %ebx,%r9d
  mov    %r13d,%ebx
  rol    %r9d
  xor    %r15d,%ebx
  lea    -0x359d3e2a(%r14,%r9,1),%r8d
  xor    %r12d,%ebx
  ror    $0x2,%r12d
  mov    0x24(%rsp),%r14d
  add    %r8d,%ebx
  mov    %ebp,%r8d
  rol    $0x5,%r8d
  add    %r8d,%ebx
  mov    0x20(%rsp),%r8d
  xor    0x28(%rsp),%r8d
  xor    %edi,%r8d
  xor    %r11d,%r8d
  mov    %r15d,%r11d
  xor    %r12d,%r11d
  rol    %r8d
  mov    %r11d,%edi
  lea    -0x359d3e2a(%r13,%r8,1),%r11d
  mov    %ebx,%r13d
  xor    %ebp,%edi
  rol    $0x5,%r13d
  add    %edi,%r11d
  ror    $0x2,%ebp
  add    %r13d,%r11d
  xor    %eax,%r14d
  xor    0x30(%rsp),%eax
  mov    %r14d,%edi
  mov    %ebp,%r14d
  xor    %edx,%eax
  xor    %esi,%edi
  xor    %r8d,%eax
  xor    %r10d,%edi
  mov    %r12d,%r10d
  rol    %eax
  rol    %edi
  xor    %ebp,%r10d
  lea    -0x359d3e2a(%r15,%rdi,1),%esi
  mov    %r10d,%edi
  mov    0x28(%rsp),%r15d
  xor    0x2c(%rsp),%r15d
  xor    %ebx,%edi
  xor    %r15d,%ecx
  ror    $0x2,%ebx
  mov    %r11d,%r10d
  xor    %r9d,%ecx
  xor    %ebx,%r14d
  add    %edi,%esi
  rol    $0x5,%r10d
  rol    %ecx
  mov    %r14d,%edi
  add    %r10d,%esi
  xor    %r11d,%edi
  lea    -0x359d3e2a(%r12,%rcx,1),%ecx
  ror    $0x2,%r11d
  mov    %esi,%r10d
  add    %edi,%ecx
  mov    0x48(%rsp),%rdi
  rol    $0x5,%r10d
  add    %r10d,%ecx
  mov    (%rdi),%edx
  add    %ecx,0x4(%rdi)
  lea    -0x359d3e2a(%rax,%rdx,1),%eax
  mov    %ebx,%edx
  xor    %r11d,%edx
  add    %ebp,%eax
  xor    %esi,%edx
  ror    $0x2,%esi
  add    %edx,%eax
  mov    %ecx,%edx
  rol    $0x5,%edx
  add    %edx,%eax
  add    %esi,0x8(%rdi)
  add    %r11d,0xc(%rdi)
  add    %ebx,0x10(%rdi)
  mov    %eax,(%rdi)
  mov    0xb8(%rsp),%rax
  sub    %fs:0x28,%rax
  jne    L1
  add    $0xc8,%rsp
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  pop    %r15
  ret
L1:
  call   <__stack_chk_fail@plt>
```

assistant: ```c
void SHA1Transform(unsigned int state[5], const unsigned char buffer[64]) {
  unsigned int qq[5];
  static int one = 1;
  unsigned int block[16];
  memcpy(block, buffer, 64);
  memcpy(qq, state, 5 * sizeof(unsigned int));
  if (1 == *(unsigned char *)&one) {
    qq[4] += ((qq[1] & (qq[2] ^ qq[3])) ^ qq[3]) + (block[0] = (((block[0]) << (32 - (8)) | (block[0]) >> (8)) & 0xFF00FF00) | (((block[0]) << (8) | (block[0]) >> (32 - (8))) & 0x00FF00FF)) + 0x5A827999 + ((qq[0]) << (5) | (qq[0]) >> (32 - (5)));
    qq[1] = ((qq[1]) << (32 - (2)) | (qq[1]) >> (2));
    ;
    qq[3] += ((qq[0] & (qq[1] ^ qq[2])) ^ qq[2]) + (block[1] = (((block[1]) << (32 - (8)) | (block[1]) >> (8)) & 0xFF00FF00) | (((block[1]) << (8) | (block[1]) >> (32 - (8))) & 0x00FF00FF)) + 0x5A827999 + ((qq[4]) << (5) | (qq[4]) >> (32 - (5)));
    qq[0] = ((qq[0]) << (32 - (2)) | (qq[0]) >> (2));
    ;
    qq[2] += ((qq[4] & (qq[0] ^ qq[1])) ^ qq[1]) + (block[2] = (((block[2]) << (32 - (8)) | (block[2]) >> (8)) & 0xFF00FF00) | (((block[2]) << (8) | (block[2]) >> (32 - (8))) & 0x00FF00FF)) + 0x5A827999 + ((qq[3]) << (5) | (qq[3]) >> (32 - (5)));
    qq[4] = ((qq[4]) << (32 - (2)) | (qq[4]) >> (2));
    ;
    qq[1] += ((qq[3] & (qq[4] ^ qq[0])) ^ qq[0]) + (block[3] = (((block[3]) << (32 - (8)) | (block[3]) >> (8)) & 0xFF00FF00) | (((block[3]) << (8) | (block[3]) >> (32 - (8))) & 0x00FF00FF)) + 0x5A827999 + ((qq[2]) << (5) | (qq[2]) >> (32 - (5)));
    qq[3] = ((qq[3]) << (32 - (2)) | (qq[3]) >> (2));
    ;
    qq[0] += ((qq[2] & (qq[3] ^ qq[4])) ^ qq[4]) + (block[4] = (((block[4]) << (32 - (8)) | (block[4]) >> (8)) & 0xFF00FF00) | (((block[4]) << (8) | (block[4]) >> (32 - (8))) & 0x00FF00FF)) + 0x5A827999 + ((qq[1]) << (5) | (qq[1]) >> (32 - (5)));
    qq[2] = ((qq[2]) << (32 - (2)) | (qq[2]) >> (2));
    ;
    qq[4] += ((qq[1] & (qq[2] ^ qq[3])) ^ qq[3]) + (block[5] = (((block[5]) << (32 - (8)) | (block[5]) >> (8)) & 0xFF00FF00) | (((block[5]) << (8) | (block[5]) >> (32 - (8))) & 0x00FF00FF)) + 0x5A827999 + ((qq[0]) << (5) | (qq[0]) >> (32 - (5)));
    qq[1] = ((qq[1]) << (32 - (2)) | (qq[1]) >> (2));
    ;
    qq[3] += ((qq[0] & (qq[1] ^ qq[2])) ^ qq[2]) + (block[6] = (((block[6]) << (32 - (8)) | (block[6]) >> (8)) & 0xFF00FF00) | (((block[6]) << (8) | (block[6]) >> (32 - (8))) & 0x00FF00FF)) + 0x5A827999 + ((qq[4]) << (5) | (qq[4]) >> (32 - (5)));
    qq[0] = ((qq[0]) << (32 - (2)) | (qq[0]) >> (2));
    ;
    qq[2] += ((qq[4] & (qq[0] ^ qq[1])) ^ qq[1]) + (block[7] = (((block[7]) << (32 - (8)) | (block[7]) >> (8)) & 0xFF00FF00) | (((block[7]) << (8) | (block[7]) >> (32 - (8))) & 0x00FF00FF)) + 0x5A827999 + ((qq[3]) << (5) | (qq[3]) >> (32 - (5)));
    qq[4] = ((qq[4]) << (32 - (2)) | (qq[4]) >> (2));
    ;
    qq[1] += ((qq[3] & (qq[4] ^ qq[0])) ^ qq[0]) + (block[8] = (((block[8]) << (32 - (8)) | (block[8]) >> (8)) & 0xFF00FF00) | (((block[8]) << (8) | (block[8]) >> (32 - (8))) & 0x00FF00FF)) + 0x5A827999 + ((qq[2]) << (5) | (qq[2]) >> (32 - (5)));
    qq[3] = ((qq[3]) << (32 - (2)) | (qq[3]) >> (2));
    ;
    qq[0] += ((qq[2] & (qq[3] ^ qq[4])) ^ qq[4]) + (block[9] = (((block[9]) << (32 - (8)) | (block[9]) >> (8)) & 0xFF00FF00) | (((block[9]) << (8) | (block[9]) >> (32 - (8))) & 0x00FF00FF)) + 0x5A827999 + ((qq[1]) << (5) | (qq[1]) >> (32 - (5)));
    qq[2] = ((qq[2]) << (32 - (2)) | (qq[2]) >> (2));
    ;
    qq[4] += ((qq[1] & (qq[2] ^ qq[3])) ^ qq[3]) + (block[10] = (((block[10]) << (32 - (8)) | (block[10]) >> (8)) & 0xFF00FF00) | (((block[10]) << (8) | (block[10]) >> (32 - (8))) & 0x00FF00FF)) + 0x5A827999 + ((qq[0]) << (5) | (qq[0]) >> (32 - (5)));
    qq[1] = ((qq[1]) << (32 - (2)) | (qq[1]) >> (2));
    ;
    qq[3] += ((qq[0] & (qq[1] ^ qq[2])) ^ qq[2]) + (block[11] = (((block[11]) << (32 - (8)) | (block[11]) >> (8)) & 0xFF00FF00) | (((block[11]) << (8) | (block[11]) >> (32 - (8))) & 0x00FF00FF)) + 0x5A827999 + ((qq[4]) << (5) | (qq[4]) >> (32 - (5)));
    qq[0] = ((qq[0]) << (32 - (2)) | (qq[0]) >> (2));
    ;
    qq[2] += ((qq[4] & (qq[0] ^ qq[1])) ^ qq[1]) + (block[12] = (((block[12]) << (32 - (8)) | (block[12]) >> (8)) & 0xFF00FF00) | (((block[12]) << (8) | (block[12]) >> (32 - (8))) & 0x00FF00FF)) + 0x5A827999 + ((qq[3]) << (5) | (qq[3]) >> (32 - (5)));
    qq[4] = ((qq[4]) << (32 - (2)) | (qq[4]) >> (2));
    ;
    qq[1] += ((qq[3] & (qq[4] ^ qq[0])) ^ qq[0]) + (block[13] = (((block[13]) << (32 - (8)) | (block[13]) >> (8)) & 0xFF00FF00) | (((block[13]) << (8) | (block[13]) >> (32 - (8))) & 0x00FF00FF)) + 0x5A827999 + ((qq[2]) << (5) | (qq[2]) >> (32 - (5)));
    qq[3] = ((qq[3]) << (32 - (2)) | (qq[3]) >> (2));
    ;
    qq[0] += ((qq[2] & (qq[3] ^ qq[4])) ^ qq[4]) + (block[14] = (((block[14]) << (32 - (8)) | (block[14]) >> (8)) & 0xFF00FF00) | (((block[14]) << (8) | (block[14]) >> (32 - (8))) & 0x00FF00FF)) + 0x5A827999 + ((qq[1]) << (5) | (qq[1]) >> (32 - (5)));
    qq[2] = ((qq[2]) << (32 - (2)) | (qq[2]) >> (2));
    ;
    qq[4] += ((qq[1] & (qq[2] ^ qq[3])) ^ qq[3]) + (block[15] = (((block[15]) << (32 - (8)) | (block[15]) >> (8)) & 0xFF00FF00) | (((block[15]) << (8) | (block[15]) >> (32 - (8))) & 0x00FF00FF)) + 0x5A827999 + ((qq[0]) << (5) | (qq[0]) >> (32 - (5)));
    qq[1] = ((qq[1]) << (32 - (2)) | (qq[1]) >> (2));
    ;
  } else {
    qq[4] += ((qq[1] & (qq[2] ^ qq[3])) ^ qq[3]) + block[0] + 0x5A827999 + ((qq[0]) << (5) | (qq[0]) >> (32 - (5)));
    qq[1] = ((qq[1]) << (32 - (2)) | (qq[1]) >> (2));
    ;
    qq[3] += ((qq[0] & (qq[1] ^ qq[2])) ^ qq[2]) + block[1] + 0x5A827999 + ((qq[4]) << (5) | (qq[4]) >> (32 - (5)));
    qq[0] = ((qq[0]) << (32 - (2)) | (qq[0]) >> (2));
    ;
    qq[2] += ((qq[4] & (qq[0] ^ qq[1])) ^ qq[1]) + block[2] + 0x5A827999 + ((qq[3]) << (5) | (qq[3]) >> (32 - (5)));
    qq[4] = ((qq[4]) << (32 - (2)) | (qq[4]) >> (2));
    ;
    qq[1] += ((qq[3] & (qq[4] ^ qq[0])) ^ qq[0]) + block[3] + 0x5A827999 + ((qq[2]) << (5) | (qq[2]) >> (32 - (5)));
    qq[3] = ((qq[3]) << (32 - (2)) | (qq[3]) >> (2));
    ;
    qq[0] += ((qq[2] & (qq[3] ^ qq[4])) ^ qq[4]) + block[4] + 0x5A827999 + ((qq[1]) << (5) | (qq[1]) >> (32 - (5)));
    qq[2] = ((qq[2]) << (32 - (2)) | (qq[2]) >> (2));
    ;
    qq[4] += ((qq[1] & (qq[2] ^ qq[3])) ^ qq[3]) + block[5] + 0x5A827999 + ((qq[0]) << (5) | (qq[0]) >> (32 - (5)));
    qq[1] = ((qq[1]) << (32 - (2)) | (qq[1]) >> (2));
    ;
    qq[3] += ((qq[0] & (qq[1] ^ qq[2])) ^ qq[2]) + block[6] + 0x5A827999 + ((qq[4]) << (5) | (qq[4]) >> (32 - (5)));
    qq[0] = ((qq[0]) << (32 - (2)) | (qq[0]) >> (2));
    ;
    qq[2] += ((qq[4] & (qq[0] ^ qq[1])) ^ qq[1]) + block[7] + 0x5A827999 + ((qq[3]) << (5) | (qq[3]) >> (32 - (5)));
    qq[4] = ((qq[4]) << (32 - (2)) | (qq[4]) >> (2));
    ;
    qq[1] += ((qq[3] & (qq[4] ^ qq[0])) ^ qq[0]) + block[8] + 0x5A827999 + ((qq[2]) << (5) | (qq[2]) >> (32 - (5)));
    qq[3] = ((qq[3]) << (32 - (2)) | (qq[3]) >> (2));
    ;
    qq[0] += ((qq[2] & (qq[3] ^ qq[4])) ^ qq[4]) + block[9] + 0x5A827999 + ((qq[1]) << (5) | (qq[1]) >> (32 - (5)));
    qq[2] = ((qq[2]) << (32 - (2)) | (qq[2]) >> (2));
    ;
    qq[4] += ((qq[1] & (qq[2] ^ qq[3])) ^ qq[3]) + block[10] + 0x5A827999 + ((qq[0]) << (5) | (qq[0]) >> (32 - (5)));
    qq[1] = ((qq[1]) << (32 - (2)) | (qq[1]) >> (2));
    ;
    qq[3] += ((qq[0] & (qq[1] ^ qq[2])) ^ qq[2]) + block[11] + 0x5A827999 + ((qq[4]) << (5) | (qq[4]) >> (32 - (5)));
    qq[0] = ((qq[0]) << (32 - (2)) | (qq[0]) >> (2));
    ;
    qq[2] += ((qq[4] & (qq[0] ^ qq[1])) ^ qq[1]) + block[12] + 0x5A827999 + ((qq[3]) << (5) | (qq[3]) >> (32 - (5)));
    qq[4] = ((qq[4]) << (32 - (2)) | (qq[4]) >> (2));
    ;
    qq[1] += ((qq[3] & (qq[4] ^ qq[0])) ^ qq[0]) + block[13] + 0x5A827999 + ((qq[2]) << (5) | (qq[2]) >> (32 - (5)));
    qq[3] = ((qq[3]) << (32 - (2)) | (qq[3]) >> (2));
    ;
    qq[0] += ((qq[2] & (qq[3] ^ qq[4])) ^ qq[4]) + block[14] + 0x5A827999 + ((qq[1]) << (5) | (qq[1]) >> (32 - (5)));
    qq[2] = ((qq[2]) << (32 - (2)) | (qq[2]) >> (2));
    ;
    qq[4] += ((qq[1] & (qq[2] ^ qq[3])) ^ qq[3]) + block[15] + 0x5A827999 + ((qq[0]) << (5) | (qq[0]) >> (32 - (5)));
    qq[1] = ((qq[1]) << (32 - (2)) | (qq[1]) >> (2));
    ;
  }
  qq[3] += ((qq[0] & (qq[1] ^ qq[2])) ^ qq[2]) + (block[16 & 15] = ((block[(16 + 13) & 15] ^ block[(16 + 8) & 15] ^ block[(16 + 2) & 15] ^ block[16 & 15]) << (1) | (block[(16 + 13) & 15] ^ block[(16 + 8) & 15] ^ block[(16 + 2) & 15] ^ block[16 & 15]) >> (32 - (1)))) + 0x5A827999 + ((qq[4]) << (5) | (qq[4]) >> (32 - (5)));
  qq[0] = ((qq[0]) << (32 - (2)) | (qq[0]) >> (2));
  ;
  qq[2] += ((qq[4] & (qq[0] ^ qq[1])) ^ qq[1]) + (block[17 & 15] = ((block[(17 + 13) & 15] ^ block[(17 + 8) & 15] ^ block[(17 + 2) & 15] ^ block[17 & 15]) << (1) | (block[(17 + 13) & 15] ^ block[(17 + 8) & 15] ^ block[(17 + 2) & 15] ^ block[17 & 15]) >> (32 - (1)))) + 0x5A827999 + ((qq[3]) << (5) | (qq[3]) >> (32 - (5)));
  qq[4] = ((qq[4]) << (32 - (2)) | (qq[4]) >> (2));
  ;
  qq[1] += ((qq[3] & (qq[4] ^ qq[0])) ^ qq[0]) + (block[18 & 15] = ((block[(18 + 13) & 15] ^ block[(18 + 8) & 15] ^ block[(18 + 2) & 15] ^ block[18 & 15]) << (1) | (block[(18 + 13) & 15] ^ block[(18 + 8) & 15] ^ block[(18 + 2) & 15] ^ block[18 & 15]) >> (32 - (1)))) + 0x5A827999 + ((qq[2]) << (5) | (qq[2]) >> (32 - (5)));
  qq[3] = ((qq[3]) << (32 - (2)) | (qq[3]) >> (2));
  ;
  qq[0] += ((qq[2] & (qq[3] ^ qq[4])) ^ qq[4]) + (block[19 & 15] = ((block[(19 + 13) & 15] ^ block[(19 + 8) & 15] ^ block[(19 + 2) & 15] ^ block[19 & 15]) << (1) | (block[(19 + 13) & 15] ^ block[(19 + 8) & 15] ^ block[(19 + 2) & 15] ^ block[19 & 15]) >> (32 - (1)))) + 0x5A827999 + ((qq[1]) << (5) | (qq[1]) >> (32 - (5)));
  qq[2] = ((qq[2]) << (32 - (2)) | (qq[2]) >> (2));
  ;
  qq[4] += (qq[1] ^ qq[2] ^ qq[3]) + (block[20 & 15] = ((block[(20 + 13) & 15] ^ block[(20 + 8) & 15] ^ block[(20 + 2) & 15] ^ block[20 & 15]) << (1) | (block[(20 + 13) & 15] ^ block[(20 + 8) & 15] ^ block[(20 + 2) & 15] ^ block[20 & 15]) >> (32 - (1)))) + 0x6ED9EBA1 + ((qq[0]) << (5) | (qq[0]) >> (32 - (5)));
  qq[1] = ((qq[1]) << (32 - (2)) | (qq[1]) >> (2));
  ;
  qq[3] += (qq[0] ^ qq[1] ^ qq[2]) + (block[21 & 15] = ((block[(21 + 13) & 15] ^ block[(21 + 8) & 15] ^ block[(21 + 2) & 15] ^ block[21 & 15]) << (1) | (block[(21 + 13) & 15] ^ block[(21 + 8) & 15] ^ block[(21 + 2) & 15] ^ block[21 & 15]) >> (32 - (1)))) + 0x6ED9EBA1 + ((qq[4]) << (5) | (qq[4]) >> (32 - (5)));
  qq[0] = ((qq[0]) << (32 - (2)) | (qq[0]) >> (2));
  ;
  qq[2] += (qq[4] ^ qq[0] ^ qq[1]) + (block[22 & 15] = ((block[(22 + 13) & 15] ^ block[(22 + 8) & 15] ^ block[(22 + 2) & 15] ^ block[22 & 15]) << (1) | (block[(22 + 13) & 15] ^ block[(22 + 8) & 15] ^ block[(22 + 2) & 15] ^ block[22 & 15]) >> (32 - (1)))) + 0x6ED9EBA1 + ((qq[3]) << (5) | (qq[3]) >> (32 - (5)));
  qq[4] = ((qq[4]) << (32 - (2)) | (qq[4]) >> (2));
  ;
  qq[1] += (qq[3] ^ qq[4] ^ qq[0]) + (block[23 & 15] = ((block[(23 + 13) & 15] ^ block[(23 + 8) & 15] ^ block[(23 + 2) & 15] ^ block[23 & 15]) << (1) | (block[(23 + 13) & 15] ^ block[(23 + 8) & 15] ^ block[(23 + 2) & 15] ^ block[23 & 15]) >> (32 - (1)))) + 0x6ED9EBA1 + ((qq[2]) << (5) | (qq[2]) >> (32 - (5)));
  qq[3] = ((qq[3]) << (32 - (2)) | (qq[3]) >> (2));
  ;
  qq[0] += (qq[2] ^ qq[3] ^ qq[4]) + (block[24 & 15] = ((block[(24 + 13) & 15] ^ block[(24 + 8) & 15] ^ block[(24 + 2) & 15] ^ block[24 & 15]) << (1) | (block[(24 + 13) & 15] ^ block[(24 + 8) & 15] ^ block[(24 + 2) & 15] ^ block[24 & 15]) >> (32 - (1)))) + 0x6ED9EBA1 + ((qq[1]) << (5) | (qq[1]) >> (32 - (5)));
  qq[2] = ((qq[2]) << (32 - (2)) | (qq[2]) >> (2));
  ;
  qq[4] += (qq[1] ^ qq[2] ^ qq[3]) + (block[25 & 15] = ((block[(25 + 13) & 15] ^ block[(25 + 8) & 15] ^ block[(25 + 2) & 15] ^ block[25 & 15]) << (1) | (block[(25 + 13) & 15] ^ block[(25 + 8) & 15] ^ block[(25 + 2) & 15] ^ block[25 & 15]) >> (32 - (1)))) + 0x6ED9EBA1 + ((qq[0]) << (5) | (qq[0]) >> (32 - (5)));
  qq[1] = ((qq[1]) << (32 - (2)) | (qq[1]) >> (2));
  ;
  qq[3] += (qq[0] ^ qq[1] ^ qq[2]) + (block[26 & 15] = ((block[(26 + 13) & 15] ^ block[(26 + 8) & 15] ^ block[(26 + 2) & 15] ^ block[26 & 15]) << (1) | (block[(26 + 13) & 15] ^ block[(26 + 8) & 15] ^ block[(26 + 2) & 15] ^ block[26 & 15]) >> (32 - (1)))) + 0x6ED9EBA1 + ((qq[4]) << (5) | (qq[4]) >> (32 - (5)));
  qq[0] = ((qq[0]) << (32 - (2)) | (qq[0]) >> (2));
  ;
  qq[2] += (qq[4] ^ qq[0] ^ qq[1]) + (block[27 & 15] = ((block[(27 + 13) & 15] ^ block[(27 + 8) & 15] ^ block[(27 + 2) & 15] ^ block[27 & 15]) << (1) | (block[(27 + 13) & 15] ^ block[(27 + 8) & 15] ^ block[(27 + 2) & 15] ^ block[27 & 15]) >> (32 - (1)))) + 0x6ED9EBA1 + ((qq[3]) << (5) | (qq[3]) >> (32 - (5)));
  qq[4] = ((qq[4]) << (32 - (2)) | (qq[4]) >> (2));
  ;
  qq[1] += (qq[3] ^ qq[4] ^ qq[0]) + (block[28 & 15] = ((block[(28 + 13) & 15] ^ block[(28 + 8) & 15] ^ block[(28 + 2) & 15] ^ block[28 & 15]) << (1) | (block[(28 + 13) & 15] ^ block[(28 + 8) & 15] ^ block[(28 + 2) & 15] ^ block[28 & 15]) >> (32 - (1)))) + 0x6ED9EBA1 + ((qq[2]) << (5) | (qq[2]) >> (32 - (5)));
  qq[3] = ((qq[3]) << (32 - (2)) | (qq[3]) >> (2));
  ;
  qq[0] += (qq[2] ^ qq[3] ^ qq[4]) + (block[29 & 15] = ((block[(29 + 13) & 15] ^ block[(29 + 8) & 15] ^ block[(29 + 2) & 15] ^ block[29 & 15]) << (1) | (block[(29 + 13) & 15] ^ block[(29 + 8) & 15] ^ block[(29 + 2) & 15] ^ block[29 & 15]) >> (32 - (1)))) + 0x6ED9EBA1 + ((qq[1]) << (5) | (qq[1]) >> (32 - (5)));
  qq[2] = ((qq[2]) << (32 - (2)) | (qq[2]) >> (2));
  ;
  qq[4] += (qq[1] ^ qq[2] ^ qq[3]) + (block[30 & 15] = ((block[(30 + 13) & 15] ^ block[(30 + 8) & 15] ^ block[(30 + 2) & 15] ^ block[30 & 15]) << (1) | (block[(30 + 13) & 15] ^ block[(30 + 8) & 15] ^ block[(30 + 2) & 15] ^ block[30 & 15]) >> (32 - (1)))) + 0x6ED9EBA1 + ((qq[0]) << (5) | (qq[0]) >> (32 - (5)));
  qq[1] = ((qq[1]) << (32 - (2)) | (qq[1]) >> (2));
  ;
  qq[3] += (qq[0] ^ qq[1] ^ qq[2]) + (block[31 & 15] = ((block[(31 + 13) & 15] ^ block[(31 + 8) & 15] ^ block[(31 + 2) & 15] ^ block[31 & 15]) << (1) | (block[(31 + 13) & 15] ^ block[(31 + 8) & 15] ^ block[(31 + 2) & 15] ^ block[31 & 15]) >> (32 - (1)))) + 0x6ED9EBA1 + ((qq[4]) << (5) | (qq[4]) >> (32 - (5)));
  qq[0] = ((qq[0]) << (32 - (2)) | (qq[0]) >> (2));
  ;
  qq[2] += (qq[4] ^ qq[0] ^ qq[1]) + (block[32 & 15] = ((block[(32 + 13) & 15] ^ block[(32 + 8) & 15] ^ block[(32 + 2) & 15] ^ block[32 & 15]) << (1) | (block[(32 + 13) & 15] ^ block[(32 + 8) & 15] ^ block[(32 + 2) & 15] ^ block[32 & 15]) >> (32 - (1)))) + 0x6ED9EBA1 + ((qq[3]) << (5) | (qq[3]) >> (32 - (5)));
  qq[4] = ((qq[4]) << (32 - (2)) | (qq[4]) >> (2));
  ;
  qq[1] += (qq[3] ^ qq[4] ^ qq[0]) + (block[33 & 15] = ((block[(33 + 13) & 15] ^ block[(33 + 8) & 15] ^ block[(33 + 2) & 15] ^ block[33 & 15]) << (1) | (block[(33 + 13) & 15] ^ block[(33 + 8) & 15] ^ block[(33 + 2) & 15] ^ block[33 & 15]) >> (32 - (1)))) + 0x6ED9EBA1 + ((qq[2]) << (5) | (qq[2]) >> (32 - (5)));
  qq[3] = ((qq[3]) << (32 - (2)) | (qq[3]) >> (2));
  ;
  qq[0] += (qq[2] ^ qq[3] ^ qq[4]) + (block[34 & 15] = ((block[(34 + 13) & 15] ^ block[(34 + 8) & 15] ^ block[(34 + 2) & 15] ^ block[34 & 15]) << (1) | (block[(34 + 13) & 15] ^ block[(34 + 8) & 15] ^ block[(34 + 2) & 15] ^ block[34 & 15]) >> (32 - (1)))) + 0x6ED9EBA1 + ((qq[1]) << (5) | (qq[1]) >> (32 - (5)));
  qq[2] = ((qq[2]) << (32 - (2)) | (qq[2]) >> (2));
  ;
  qq[4] += (qq[1] ^ qq[2] ^ qq[3]) + (block[35 & 15] = ((block[(35 + 13) & 15] ^ block[(35 + 8) & 15] ^ block[(35 + 2) & 15] ^ block[35 & 15]) << (1) | (block[(35 + 13) & 15] ^ block[(35 + 8) & 15] ^ block[(35 + 2) & 15] ^ block[35 & 15]) >> (32 - (1)))) + 0x6ED9EBA1 + ((qq[0]) << (5) | (qq[0]) >> (32 - (5)));
  qq[1] = ((qq[1]) << (32 - (2)) | (qq[1]) >> (2));
  ;
  qq[3] += (qq[0] ^ qq[1] ^ qq[2]) + (block[36 & 15] = ((block[(36 + 13) & 15] ^ block[(36 + 8) & 15] ^ block[(36 + 2) & 15] ^ block[36 & 15]) << (1) | (block[(36 + 13) & 15] ^ block[(36 + 8) & 15] ^ block[(36 + 2) & 15] ^ block[36 & 15]) >> (32 - (1)))) + 0x6ED9EBA1 + ((qq[4]) << (5) | (qq[4]) >> (32 - (5)));
  qq[0] = ((qq[0]) << (32 - (2)) | (qq[0]) >> (2));
  ;
  qq[2] += (qq[4] ^ qq[0] ^ qq[1]) + (block[37 & 15] = ((block[(37 + 13) & 15] ^ block[(37 + 8) & 15] ^ block[(37 + 2) & 15] ^ block[37 & 15]) << (1) | (block[(37 + 13) & 15] ^ block[(37 + 8) & 15] ^ block[(37 + 2) & 15] ^ block[37 & 15]) >> (32 - (1)))) + 0x6ED9EBA1 + ((qq[3]) << (5) | (qq[3]) >> (32 - (5)));
  qq[4] = ((qq[4]) << (32 - (2)) | (qq[4]) >> (2));
  ;
  qq[1] += (qq[3] ^ qq[4] ^ qq[0]) + (block[38 & 15] = ((block[(38 + 13) & 15] ^ block[(38 + 8) & 15] ^ block[(38 + 2) & 15] ^ block[38 & 15]) << (1) | (block[(38 + 13) & 15] ^ block[(38 + 8) & 15] ^ block[(38 + 2) & 15] ^ block[38 & 15]) >> (32 - (1)))) + 0x6ED9EBA1 + ((qq[2]) << (5) | (qq[2]) >> (32 - (5)));
  qq[3] = ((qq[3]) << (32 - (2)) | (qq[3]) >> (2));
  ;
  qq[0] += (qq[2] ^ qq[3] ^ qq[4]) + (block[39 & 15] = ((block[(39 + 13) & 15] ^ block[(39 + 8) & 15] ^ block[(39 + 2) & 15] ^ block[39 & 15]) << (1) | (block[(39 + 13) & 15] ^ block[(39 + 8) & 15] ^ block[(39 + 2) & 15] ^ block[39 & 15]) >> (32 - (1)))) + 0x6ED9EBA1 + ((qq[1]) << (5) | (qq[1]) >> (32 - (5)));
  qq[2] = ((qq[2]) << (32 - (2)) | (qq[2]) >> (2));
  ;
  qq[4] += (((qq[1] | qq[2]) & qq[3]) | (qq[1] & qq[2])) + (block[40 & 15] = ((block[(40 + 13) & 15] ^ block[(40 + 8) & 15] ^ block[(40 + 2) & 15] ^ block[40 & 15]) << (1) | (block[(40 + 13) & 15] ^ block[(40 + 8) & 15] ^ block[(40 + 2) & 15] ^ block[40 & 15]) >> (32 - (1)))) + 0x8F1BBCDC + ((qq[0]) << (5) | (qq[0]) >> (32 - (5)));
  qq[1] = ((qq[1]) << (32 - (2)) | (qq[1]) >> (2));
  ;
  qq[3] += (((qq[0] | qq[1]) & qq[2]) | (qq[0] & qq[1])) + (block[41 & 15] = ((block[(41 + 13) & 15] ^ block[(41 + 8) & 15] ^ block[(41 + 2) & 15] ^ block[41 & 15]) << (1) | (block[(41 + 13) & 15] ^ block[(41 + 8) & 15] ^ block[(41 + 2) & 15] ^ block[41 & 15]) >> (32 - (1)))) + 0x8F1BBCDC + ((qq[4]) << (5) | (qq[4]) >> (32 - (5)));
  qq[0] = ((qq[0]) << (32 - (2)) | (qq[0]) >> (2));
  ;
  qq[2] += (((qq[4] | qq[0]) & qq[1]) | (qq[4] & qq[0])) + (block[42 & 15] = ((block[(42 + 13) & 15] ^ block[(42 + 8) & 15] ^ block[(42 + 2) & 15] ^ block[42 & 15]) << (1) | (block[(42 + 13) & 15] ^ block[(42 + 8) & 15] ^ block[(42 + 2) & 15] ^ block[42 & 15]) >> (32 - (1)))) + 0x8F1BBCDC + ((qq[3]) << (5) | (qq[3]) >> (32 - (5)));
  qq[4] = ((qq[4]) << (32 - (2)) | (qq[4]) >> (2));
  ;
  qq[1] += (((qq[3] | qq[4]) & qq[0]) | (qq[3] & qq[4])) + (block[43 & 15] = ((block[(43 + 13) & 15] ^ block[(43 + 8) & 15] ^ block[(43 + 2) & 15] ^ block[43 & 15]) << (1) | (block[(43 + 13) & 15] ^ block[(43 + 8) & 15] ^ block[(43 + 2) & 15] ^ block[43 & 15]) >> (32 - (1)))) + 0x8F1BBCDC + ((qq[2]) << (5) | (qq[2]) >> (32 - (5)));
  qq[3] = ((qq[3]) << (32 - (2)) | (qq[3]) >> (2));
  ;
  qq[0] += (((qq[2] | qq[3]) & qq[4]) | (qq[2] & qq[3])) + (block[44 & 15] = ((block[(44 + 13) & 15] ^ block[(44 + 8) & 15] ^ block[(44 + 2) & 15] ^ block[44 & 15]) << (1) | (block[(44 + 13) & 15] ^ block[(44 + 8) & 15] ^ block[(44 + 2) & 15] ^ block[44 & 15]) >> (32 - (1)))) + 0x8F1BBCDC + ((qq[1]) << (5) | (qq[1]) >> (32 - (5)));
  qq[2] = ((qq[2]) << (32 - (2)) | (qq[2]) >> (2));
  ;
  qq[4] += (((qq[1] | qq[2]) & qq[3]) | (qq[1] & qq[2])) + (block[45 & 15] = ((block[(45 + 13) & 15] ^ block[(45 + 8) & 15] ^ block[(45 + 2) & 15] ^ block[45 & 15]) << (1) | (block[(45 + 13) & 15] ^ block[(45 + 8) & 15] ^ block[(45 + 2) & 15] ^ block[45 & 15]) >> (32 - (1)))) + 0x8F1BBCDC + ((qq[0]) << (5) | (qq[0]) >> (32 - (5)));
  qq[1] = ((qq[1]) << (32 - (2)) | (qq[1]) >> (2));
  ;
  qq[3] += (((qq[0] | qq[1]) & qq[2]) | (qq[0] & qq[1])) + (block[46 & 15] = ((block[(46 + 13) & 15] ^ block[(46 + 8) & 15] ^ block[(46 + 2) & 15] ^ block[46 & 15]) << (1) | (block[(46 + 13) & 15] ^ block[(46 + 8) & 15] ^ block[(46 + 2) & 15] ^ block[46 & 15]) >> (32 - (1)))) + 0x8F1BBCDC + ((qq[4]) << (5) | (qq[4]) >> (32 - (5)));
  qq[0] = ((qq[0]) << (32 - (2)) | (qq[0]) >> (2));
  ;
  qq[2] += (((qq[4] | qq[0]) & qq[1]) | (qq[4] & qq[0])) + (block[47 & 15] = ((block[(47 + 13) & 15] ^ block[(47 + 8) & 15] ^ block[(47 + 2) & 15] ^ block[47 & 15]) << (1) | (block[(47 + 13) & 15] ^ block[(47 + 8) & 15] ^ block[(47 + 2) & 15] ^ block[47 & 15]) >> (32 - (1)))) + 0x8F1BBCDC + ((qq[3]) << (5) | (qq[3]) >> (32 - (5)));
  qq[4] = ((qq[4]) << (32 - (2)) | (qq[4]) >> (2));
  ;
  qq[1] += (((qq[3] | qq[4]) & qq[0]) | (qq[3] & qq[4])) + (block[48 & 15] = ((block[(48 + 13) & 15] ^ block[(48 + 8) & 15] ^ block[(48 + 2) & 15] ^ block[48 & 15]) << (1) | (block[(48 + 13) & 15] ^ block[(48 + 8) & 15] ^ block[(48 + 2) & 15] ^ block[48 & 15]) >> (32 - (1)))) + 0x8F1BBCDC + ((qq[2]) << (5) | (qq[2]) >> (32 - (5)));
  qq[3] = ((qq[3]) << (32 - (2)) | (qq[3]) >> (2));
  ;
  qq[0] += (((qq[2] | qq[3]) & qq[4]) | (qq[2] & qq[3])) + (block[49 & 15] = ((block[(49 + 13) & 15] ^ block[(49 + 8) & 15] ^ block[(49 + 2) & 15] ^ block[49 & 15]) << (1) | (block[(49 + 13) & 15] ^ block[(49 + 8) & 15] ^ block[(49 + 2) & 15] ^ block[49 & 15]) >> (32 - (1)))) + 0x8F1BBCDC + ((qq[1]) << (5) | (qq[1]) >> (32 - (5)));
  qq[2] = ((qq[2]) << (32 - (2)) | (qq[2]) >> (2));
  ;
  qq[4] += (((qq[1] | qq[2]) & qq[3]) | (qq[1] & qq[2])) + (block[50 & 15] = ((block[(50 + 13) & 15] ^ block[(50 + 8) & 15] ^ block[(50 + 2) & 15] ^ block[50 & 15]) << (1) | (block[(50 + 13) & 15] ^ block[(50 + 8) & 15] ^ block[(50 + 2) & 15] ^ block[50 & 15]) >> (32 - (1)))) + 0x8F1BBCDC + ((qq[0]) << (5) | (qq[0]) >> (32 - (5)));
  qq[1] = ((qq[1]) << (32 - (2)) | (qq[1]) >> (2));
  ;
  qq[3] += (((qq[0] | qq[1]) & qq[2]) | (qq[0] & qq[1])) + (block[51 & 15] = ((block[(51 + 13) & 15] ^ block[(51 + 8) & 15] ^ block[(51 + 2) & 15] ^ block[51 & 15]) << (1) | (block[(51 + 13) & 15] ^ block[(51 + 8) & 15] ^ block[(51 + 2) & 15] ^ block[51 & 15]) >> (32 - (1)))) + 0x8F1BBCDC + ((qq[4]) << (5) | (qq[4]) >> (32 - (5)));
  qq[0] = ((qq[0]) << (32 - (2)) | (qq[0]) >> (2));
  ;
  qq[2] += (((qq[4] | qq[0]) & qq[1]) | (qq[4] & qq[0])) + (block[52 & 15] = ((block[(52 + 13) & 15] ^ block[(52 + 8) & 15] ^ block[(52 + 2) & 15] ^ block[52 & 15]) << (1) | (block[(52 + 13) & 15] ^ block[(52 + 8) & 15] ^ block[(52 + 2) & 15] ^ block[52 & 15]) >> (32 - (1)))) + 0x8F1BBCDC + ((qq[3]) << (5) | (qq[3]) >> (32 - (5)));
  qq[4] = ((qq[4]) << (32 - (2)) | (qq[4]) >> (2));
  ;
  qq[1] += (((qq[3] | qq[4]) & qq[0]) | (qq[3] & qq[4])) + (block[53 & 15] = ((block[(53 + 13) & 15] ^ block[(53 + 8) & 15] ^ block[(53 + 2) & 15] ^ block[53 & 15]) << (1) | (block[(53 + 13) & 15] ^ block[(53 + 8) & 15] ^ block[(53 + 2) & 15] ^ block[53 & 15]) >> (32 - (1)))) + 0x8F1BBCDC + ((qq[2]) << (5) | (qq[2]) >> (32 - (5)));
  qq[3] = ((qq[3]) << (32 - (2)) | (qq[3]) >> (2));
  ;
  qq[0] += (((qq[2] | qq[3]) & qq[4]) | (qq[2] & qq[3])) + (block[54 & 15] = ((block[(54 + 13) & 15] ^ block[(54 + 8) & 15] ^ block[(54 + 2) & 15] ^ block[54 & 15]) << (1) | (block[(54 + 13) & 15] ^ block[(54 + 8) & 15] ^ block[(54 + 2) & 15] ^ block[54 & 15]) >> (32 - (1)))) + 0x8F1BBCDC + ((qq[1]) << (5) | (qq[1]) >> (32 - (5)));
  qq[2] = ((qq[2]) << (32 - (2)) | (qq[2]) >> (2));
  ;
  qq[4] += (((qq[1] | qq[2]) & qq[3]) | (qq[1] & qq[2])) + (block[55 & 15] = ((block[(55 + 13) & 15] ^ block[(55 + 8) & 15] ^ block[(55 + 2) & 15] ^ block[55 & 15]) << (1) | (block[(55 + 13) & 15] ^ block[(55 + 8) & 15] ^ block[(55 + 2) & 15] ^ block[55 & 15]) >> (32 - (1)))) + 0x8F1BBCDC + ((qq[0]) << (5) | (qq[0]) >> (32 - (5)));
  qq[1] = ((qq[1]) << (32 - (2)) | (qq[1]) >> (2));
  ;
  qq[3] += (((qq[0] | qq[1]) & qq[2]) | (qq[0] & qq[1])) + (block[56 & 15] = ((block[(56 + 13) & 15] ^ block[(56 + 8) & 15] ^ block[(56 + 2) & 15] ^ block[56 & 15]) << (1) | (block[(56 + 13) & 15] ^ block[(56 + 8) & 15] ^ block[(56 + 2) & 15] ^ block[56 & 15]) >> (32 - (1)))) + 0x8F1BBCDC + ((qq[4]) << (5) | (qq[4]) >> (32 - (5)));
  qq[0] = ((qq[0]) << (32 - (2)) | (qq[0]) >> (2));
  ;
  qq[2] += (((qq[4] | qq[0]) & qq[1]) | (qq[4] & qq[0])) + (block[57 & 15] = ((block[(57 + 13) & 15] ^ block[(57 + 8) & 15] ^ block[(57 + 2) & 15] ^ block[57 & 15]) << (1) | (block[(57 + 13) & 15] ^ block[(57 + 8) & 15] ^ block[(57 + 2) & 15] ^ block[57 & 15]) >> (32 - (1)))) + 0x8F1BBCDC + ((qq[3]) << (5) | (qq[3]) >> (32 - (5)));
  qq[4] = ((qq[4]) << (32 - (2)) | (qq[4]) >> (2));
  ;
  qq[1] += (((qq[3] | qq[4]) & qq[0]) | (qq[3] & qq[4])) + (block[58 & 15] = ((block[(58 + 13) & 15] ^ block[(58 + 8) & 15] ^ block[(58 + 2) & 15] ^ block[58 & 15]) << (1) | (block[(58 + 13) & 15] ^ block[(58 + 8) & 15] ^ block[(58 + 2) & 15] ^ block[58 & 15]) >> (32 - (1)))) + 0x8F1BBCDC + ((qq[2]) << (5) | (qq[2]) >> (32 - (5)));
  qq[3] = ((qq[3]) << (32 - (2)) | (qq[3]) >> (2));
  ;
  qq[0] += (((qq[2] | qq[3]) & qq[4]) | (qq[2] & qq[3])) + (block[59 & 15] = ((block[(59 + 13) & 15] ^ block[(59 + 8) & 15] ^ block[(59 + 2) & 15] ^ block[59 & 15]) << (1) | (block[(59 + 13) & 15] ^ block[(59 + 8) & 15] ^ block[(59 + 2) & 15] ^ block[59 & 15]) >> (32 - (1)))) + 0x8F1BBCDC + ((qq[1]) << (5) | (qq[1]) >> (32 - (5)));
  qq[2] = ((qq[2]) << (32 - (2)) | (qq[2]) >> (2));
  ;
  qq[4] += (qq[1] ^ qq[2] ^ qq[3]) + (block[60 & 15] = ((block[(60 + 13) & 15] ^ block[(60 + 8) & 15] ^ block[(60 + 2) & 15] ^ block[60 & 15]) << (1) | (block[(60 + 13) & 15] ^ block[(60 + 8) & 15] ^ block[(60 + 2) & 15] ^ block[60 & 15]) >> (32 - (1)))) + 0xCA62C1D6 + ((qq[0]) << (5) | (qq[0]) >> (32 - (5)));
  qq[1] = ((qq[1]) << (32 - (2)) | (qq[1]) >> (2));
  ;
  qq[3] += (qq[0] ^ qq[1] ^ qq[2]) + (block[61 & 15] = ((block[(61 + 13) & 15] ^ block[(61 + 8) & 15] ^ block[(61 + 2) & 15] ^ block[61 & 15]) << (1) | (block[(61 + 13) & 15] ^ block[(61 + 8) & 15] ^ block[(61 + 2) & 15] ^ block[61 & 15]) >> (32 - (1)))) + 0xCA62C1D6 + ((qq[4]) << (5) | (qq[4]) >> (32 - (5)));
  qq[0] = ((qq[0]) << (32 - (2)) | (qq[0]) >> (2));
  ;
  qq[2] += (qq[4] ^ qq[0] ^ qq[1]) + (block[62 & 15] = ((block[(62 + 13) & 15] ^ block[(62 + 8) & 15] ^ block[(62 + 2) & 15] ^ block[62 & 15]) << (1) | (block[(62 + 13) & 15] ^ block[(62 + 8) & 15] ^ block[(62 + 2) & 15] ^ block[62 & 15]) >> (32 - (1)))) + 0xCA62C1D6 + ((qq[3]) << (5) | (qq[3]) >> (32 - (5)));
  qq[4] = ((qq[4]) << (32 - (2)) | (qq[4]) >> (2));
  ;
  qq[1] += (qq[3] ^ qq[4] ^ qq[0]) + (block[63 & 15] = ((block[(63 + 13) & 15] ^ block[(63 + 8) & 15] ^ block[(63 + 2) & 15] ^ block[63 & 15]) << (1) | (block[(63 + 13) & 15] ^ block[(63 + 8) & 15] ^ block[(63 + 2) & 15] ^ block[63 & 15]) >> (32 - (1)))) + 0xCA62C1D6 + ((qq[2]) << (5) | (qq[2]) >> (32 - (5)));
  qq[3] = ((qq[3]) << (32 - (2)) | (qq[3]) >> (2));
  ;
  qq[0] += (qq[2] ^ qq[3] ^ qq[4]) + (block[64 & 15] = ((block[(64 + 13) & 15] ^ block[(64 + 8) & 15] ^ block[(64 + 2) & 15] ^ block[64 & 15]) << (1) | (block[(64 + 13) & 15] ^ block[(64 + 8) & 15] ^ block[(64 + 2) & 15] ^ block[64 & 15]) >> (32 - (1)))) + 0xCA62C1D6 + ((qq[1]) << (5) | (qq[1]) >> (32 - (5)));
  qq[2] = ((qq[2]) << (32 - (2)) | (qq[2]) >> (2));
  ;
  qq[4] += (qq[1] ^ qq[2] ^ qq[3]) + (block[65 & 15] = ((block[(65 + 13) & 15] ^ block[(65 + 8) & 15] ^ block[(65 + 2) & 15] ^ block[65 & 15]) << (1) | (block[(65 + 13) & 15] ^ block[(65 + 8) & 15] ^ block[(65 + 2) & 15] ^ block[65 & 15]) >> (32 - (1)))) + 0xCA62C1D6 + ((qq[0]) << (5) | (qq[0]) >> (32 - (5)));
  qq[1] = ((qq[1]) << (32 - (2)) | (qq[1]) >> (2));
  ;
  qq[3] += (qq[0] ^ qq[1] ^ qq[2]) + (block[66 & 15] = ((block[(66 + 13) & 15] ^ block[(66 + 8) & 15] ^ block[(66 + 2) & 15] ^ block[66 & 15]) << (1) | (block[(66 + 13) & 15] ^ block[(66 + 8) & 15] ^ block[(66 + 2) & 15] ^ block[66 & 15]) >> (32 - (1)))) + 0xCA62C1D6 + ((qq[4]) << (5) | (qq[4]) >> (32 - (5)));
  qq[0] = ((qq[0]) << (32 - (2)) | (qq[0]) >> (2));
  ;
  qq[2] += (qq[4] ^ qq[0] ^ qq[1]) + (block[67 & 15] = ((block[(67 + 13) & 15] ^ block[(67 + 8) & 15] ^ block[(67 + 2) & 15] ^ block[67 & 15]) << (1) | (block[(67 + 13) & 15] ^ block[(67 + 8) & 15] ^ block[(67 + 2) & 15] ^ block[67 & 15]) >> (32 - (1)))) + 0xCA62C1D6 + ((qq[3]) << (5) | (qq[3]) >> (32 - (5)));
  qq[4] = ((qq[4]) << (32 - (2)) | (qq[4]) >> (2));
  ;
  qq[1] += (qq[3] ^ qq[4] ^ qq[0]) + (block[68 & 15] = ((block[(68 + 13) & 15] ^ block[(68 + 8) & 15] ^ block[(68 + 2) & 15] ^ block[68 & 15]) << (1) | (block[(68 + 13) & 15] ^ block[(68 + 8) & 15] ^ block[(68 + 2) & 15] ^ block[68 & 15]) >> (32 - (1)))) + 0xCA62C1D6 + ((qq[2]) << (5) | (qq[2]) >> (32 - (5)));
  qq[3] = ((qq[3]) << (32 - (2)) | (qq[3]) >> (2));
  ;
  qq[0] += (qq[2] ^ qq[3] ^ qq[4]) + (block[69 & 15] = ((block[(69 + 13) & 15] ^ block[(69 + 8) & 15] ^ block[(69 + 2) & 15] ^ block[69 & 15]) << (1) | (block[(69 + 13) & 15] ^ block[(69 + 8) & 15] ^ block[(69 + 2) & 15] ^ block[69 & 15]) >> (32 - (1)))) + 0xCA62C1D6 + ((qq[1]) << (5) | (qq[1]) >> (32 - (5)));
  qq[2] = ((qq[2]) << (32 - (2)) | (qq[2]) >> (2));
  ;
  qq[4] += (qq[1] ^ qq[2] ^ qq[3]) + (block[70 & 15] = ((block[(70 + 13) & 15] ^ block[(70 + 8) & 15] ^ block[(70 + 2) & 15] ^ block[70 & 15]) << (1) | (block[(70 + 13) & 15] ^ block[(70 + 8) & 15] ^ block[(70 + 2) & 15] ^ block[70 & 15]) >> (32 - (1)))) + 0xCA62C1D6 + ((qq[0]) << (5) | (qq[0]) >> (32 - (5)));
  qq[1] = ((qq[1]) << (32 - (2)) | (qq[1]) >> (2));
  ;
  qq[3] += (qq[0] ^ qq[1] ^ qq[2]) + (block[71 & 15] = ((block[(71 + 13) & 15] ^ block[(71 + 8) & 15] ^ block[(71 + 2) & 15] ^ block[71 & 15]) << (1) | (block[(71 + 13) & 15] ^ block[(71 + 8) & 15] ^ block[(71 + 2) & 15] ^ block[71 & 15]) >> (32 - (1)))) + 0xCA62C1D6 + ((qq[4]) << (5) | (qq[4]) >> (32 - (5)));
  qq[0] = ((qq[0]) << (32 - (2)) | (qq[0]) >> (2));
  ;
  qq[2] += (qq[4] ^ qq[0] ^ qq[1]) + (block[72 & 15] = ((block[(72 + 13) & 15] ^ block[(72 + 8) & 15] ^ block[(72 + 2) & 15] ^ block[72 & 15]) << (1) | (block[(72 + 13) & 15] ^ block[(72 + 8) & 15] ^ block[(72 + 2) & 15] ^ block[72 & 15]) >> (32 - (1)))) + 0xCA62C1D6 + ((qq[3]) << (5) | (qq[3]) >> (32 - (5)));
  qq[4] = ((qq[4]) << (32 - (2)) | (qq[4]) >> (2));
  ;
  qq[1] += (qq[3] ^ qq[4] ^ qq[0]) + (block[73 & 15] = ((block[(73 + 13) & 15] ^ block[(73 + 8) & 15] ^ block[(73 + 2) & 15] ^ block[73 & 15]) << (1) | (block[(73 + 13) & 15] ^ block[(73 + 8) & 15] ^ block[(73 + 2) & 15] ^ block[73 & 15]) >> (32 - (1)))) + 0xCA62C1D6 + ((qq[2]) << (5) | (qq[2]) >> (32 - (5)));
  qq[3] = ((qq[3]) << (32 - (2)) | (qq[3]) >> (2));
  ;
  qq[0] += (qq[2] ^ qq[3] ^ qq[4]) + (block[74 & 15] = ((block[(74 + 13) & 15] ^ block[(74 + 8) & 15] ^ block[(74 + 2) & 15] ^ block[74 & 15]) << (1) | (block[(74 + 13) & 15] ^ block[(74 + 8) & 15] ^ block[(74 + 2) & 15] ^ block[74 & 15]) >> (32 - (1)))) + 0xCA62C1D6 + ((qq[1]) << (5) | (qq[1]) >> (32 - (5)));
  qq[2] = ((qq[2]) << (32 - (2)) | (qq[2]) >> (2));
  ;
  qq[4] += (qq[1] ^ qq[2] ^ qq[3]) + (block[75 & 15] = ((block[(75 + 13) & 15] ^ block[(75 + 8) & 15] ^ block[(75 + 2) & 15] ^ block[75 & 15]) << (1) | (block[(75 + 13) & 15] ^ block[(75 + 8) & 15] ^ block[(75 + 2) & 15] ^ block[75 & 15]) >> (32 - (1)))) + 0xCA62C1D6 + ((qq[0]) << (5) | (qq[0]) >> (32 - (5)));
  qq[1] = ((qq[1]) << (32 - (2)) | (qq[1]) >> (2));
  ;
  qq[3] += (qq[0] ^ qq[1] ^ qq[2]) + (block[76 & 15] = ((block[(76 + 13) & 15] ^ block[(76 + 8) & 15] ^ block[(76 + 2) & 15] ^ block[76 & 15]) << (1) | (block[(76 + 13) & 15] ^ block[(76 + 8) & 15] ^ block[(76 + 2) & 15] ^ block[76 & 15]) >> (32 - (1)))) + 0xCA62C1D6 + ((qq[4]) << (5) | (qq[4]) >> (32 - (5)));
  qq[0] = ((qq[0]) << (32 - (2)) | (qq[0]) >> (2));
  ;
  qq[2] += (qq[4] ^ qq[0] ^ qq[1]) + (block[77 & 15] = ((block[(77 + 13) & 15] ^ block[(77 + 8) & 15] ^ block[(77 + 2) & 15] ^ block[77 & 15]) << (1) | (block[(77 + 13) & 15] ^ block[(77 + 8) & 15] ^ block[(77 + 2) & 15] ^ block[77 & 15]) >> (32 - (1)))) + 0xCA62C1D6 + ((qq[3]) << (5) | (qq[3]) >> (32 - (5)));
  qq[4] = ((qq[4]) << (32 - (2)) | (qq[4]) >> (2));
  ;
  qq[1] += (qq[3] ^ qq[4] ^ qq[0]) + (block[78 & 15] = ((block[(78 + 13) & 15] ^ block[(78 + 8) & 15] ^ block[(78 + 2) & 15] ^ block[78 & 15]) << (1) | (block[(78 + 13) & 15] ^ block[(78 + 8) & 15] ^ block[(78 + 2) & 15] ^ block[78 & 15]) >> (32 - (1)))) + 0xCA62C1D6 + ((qq[2]) << (5) | (qq[2]) >> (32 - (5)));
  qq[3] = ((qq[3]) << (32 - (2)) | (qq[3]) >> (2));
  ;
  qq[0] += (qq[2] ^ qq[3] ^ qq[4]) + (block[79 & 15] = ((block[(79 + 13) & 15] ^ block[(79 + 8) & 15] ^ block[(79 + 2) & 15] ^ block[79 & 15]) << (1) | (block[(79 + 13) & 15] ^ block[(79 + 8) & 15] ^ block[(79 + 2) & 15] ^ block[79 & 15]) >> (32 - (1)))) + 0xCA62C1D6 + ((qq[1]) << (5) | (qq[1]) >> (32 - (5)));
  qq[2] = ((qq[2]) << (32 - (2)) | (qq[2]) >> (2));
  ;
  state[0] += qq[0];
  state[1] += qq[1];
  state[2] += qq[2];
  state[3] += qq[3];
  state[4] += qq[4];
}
```