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

```asm
<garble>:
  endbr64
  push   %r15
  mov    $0xffffffab,%eax
  mov    $0xffffffd5,%r15d
  push   %r14
  push   %r13
  mov    %rdi,%r13
  push   %r12
  mov    %rdx,%r12
  mov    $0xffffff87,%edx
  push   %rbp
  mov    %rcx,%rbp
  push   %rbx
  mov    %rsi,%rbx
  sub    $0x48,%rsp
  mulb   0x63(%rsi)
  mov    %r8,0x8(%rsp)
  mov    %eax,%r14d
  movzbl 0x40(%rsi),%eax
  movzbl 0xce(%rsi),%esi
  shr    $0x9,%r14w
  and    $0x5c,%eax
  and    $0x23,%r14d
  or     %eax,%r14d
  mov    %esi,%eax
  mul    %dl
  shr    $0x8,%ax
  mov    %eax,%edi
  mov    %esi,%eax
  sub    %edi,%eax
  shr    %al
  mov    %eax,%ecx
  lea    (%rcx,%rdi,1),%eax
  shr    $0x4,%al
  lea    (%rax,%rax,4),%ecx
  lea    (%rax,%rcx,4),%ecx
  mov    %esi,%eax
  mov    $0x4,%esi
  sub    %ecx,%eax
  movzbl %al,%eax
  movzbl (%r8,%rax,1),%edi
  xor    %eax,%eax
  call   <rol8x@plt>
  mov    0x8(%rsp),%r11
  mov    $0x23,%r8d
  mov    $0xffffff87,%edx
  movslq %eax,%rcx
  mov    %eax,%esi
  imul   $0x30c30c31,%rcx,%rcx
  sar    $0x1f,%esi
  sar    $0x22,%rcx
  sub    %esi,%ecx
  lea    (%rcx,%rcx,4),%esi
  lea    (%rcx,%rsi,4),%ecx
  sub    %ecx,%eax
  cltq
  and    (%r11,%rax,1),%r14b
  add    $0x14,%r14d
  mov    %r14b,0xc(%r12)
  mov    $0xffffffcd,%r14d
  mov    %r14d,%eax
  mulb   0x63(%rbx)
  shr    $0xa,%ax
  imul   %eax,%eax
  add    %eax,%eax
  mov    %al,0x4(%rbx)
  movb   $0xb8,0x22(%r12)
  movzbl 0xcb(%rbx),%ecx
  mov    %ecx,%eax
  mul    %r15b
  shr    $0x8,%ax
  mov    %eax,%edi
  mov    %ecx,%eax
  sub    %edi,%eax
  shr    %al
  mov    %eax,%esi
  lea    (%rsi,%rdi,1),%eax
  movzbl 0xcd(%rbx),%esi
  shr    $0x5,%al
  imul   %r8d,%eax
  sub    %eax,%ecx
  movzbl %cl,%ecx
  movzbl (%r12,%rcx,1),%eax
  imul   %eax,%eax
  mulb   0xbe(%rbx)
  xor    %al,0x99(%rbx)
  mov    %esi,%eax
  mul    %dl
  shr    $0x8,%ax
  mov    %eax,%edi
  mov    %esi,%eax
  sub    %edi,%eax
  shr    %al
  mov    %eax,%ecx
  lea    (%rcx,%rdi,1),%eax
  shr    $0x4,%al
  lea    (%rax,%rax,4),%ecx
  lea    (%rax,%rcx,4),%eax
  sub    %eax,%esi
  movzbl %sil,%esi
  movzbl (%r11,%rsi,1),%eax
  movb   $0x93,0x10(%r13)
  movb   $0x62,0xd(%r13)
  shr    %al
  and    $0x10,%eax
  or     $0x40,%eax
  sub    %al,0x3(%r13)
  movzbl 0x24(%rbx),%esi
  mov    %esi,%eax
  mul    %dl
  shr    $0x8,%ax
  mov    %eax,%edi
  mov    %esi,%eax
  sub    %edi,%eax
  shr    %al
  mov    %eax,%ecx
  lea    (%rcx,%rdi,1),%eax
  shr    $0x4,%al
  lea    (%rax,%rax,4),%ecx
  lea    (%rax,%rcx,4),%eax
  movzbl 0x43(%rbx),%ecx
  sub    %eax,%esi
  movzbl %sil,%esi
  movzbl (%r11,%rsi,1),%eax
  and    $0xfffffff6,%eax
  sub    %al,0x21(%rbx)
  mov    %ecx,%eax
  mul    %r15b
  shr    $0x8,%ax
  mov    %eax,%edi
  mov    %ecx,%eax
  sub    %edi,%eax
  shr    %al
  mov    %eax,%esi
  lea    (%rsi,%rdi,1),%eax
  shr    $0x5,%al
  imul   %r8d,%eax
  sub    %eax,%ecx
  movzbl %cl,%ecx
  movzbl (%r12,%rcx,1),%eax
  movb   $0x7,0xc(%r12)
  movzbl 0xb5(%rbx),%esi
  mov    %al,0x8(%rsp)
  mov    %esi,%eax
  mul    %r14b
  shr    $0xc,%ax
  lea    (%rax,%rax,4),%eax
  lea    0x0(,%rax,4),%ecx
  sub    %ecx,%esi
  movzbl 0x3a(%rbx),%ecx
  movzbl %sil,%esi
  mov    %ecx,%eax
  movzbl 0x0(%r13,%rsi,1),%edi
  subb   $0x40,0x2(%rbx)
  mul    %dl
  mov    %dil,0x10(%rsp)
  shr    $0x8,%ax
  mov    %eax,%edi
  mov    %ecx,%eax
  sub    %edi,%eax
  mov    %eax,%esi
  shr    %sil
  lea    (%rsi,%rdi,1),%eax
  shr    $0x4,%al
  lea    (%rax,%rax,4),%esi
  lea    (%rax,%rsi,4),%eax
  sub    %eax,%ecx
  movzbl %cl,%ecx
  movzbl (%r11,%rcx,1),%eax
  mov    %al,0x13(%r13)
  movzbl 0x20(%rbx),%ecx
  mov    %ecx,%eax
  mul    %r15b
  shr    $0x8,%ax
  mov    %eax,%edi
  mov    %ecx,%eax
  sub    %edi,%eax
  mov    %eax,%esi
  shr    %sil
  lea    (%rsi,%rdi,1),%eax
  shr    $0x5,%al
  imul   %r8d,%eax
  sub    %eax,%ecx
  mov    $0x5c,%eax
  movzbl %cl,%ecx
  sub    (%r12,%rcx,1),%al
  mov    %al,0x0(%rbp)
  movzbl 0xf(%rbx),%ecx
  mov    %ecx,%eax
  mul    %r15b
  shr    $0x8,%ax
  mov    %eax,%edi
  mov    %ecx,%eax
  sub    %edi,%eax
  mov    %eax,%esi
  shr    %sil
  lea    (%rsi,%rdi,1),%eax
  shr    $0x5,%al
  imul   %r8d,%eax
  sub    %eax,%ecx
  movzbl %cl,%ecx
  movzbl (%r12,%rcx,1),%eax
  sub    $0x62,%eax
  mov    %al,0x4(%rbp)
  movzbl 0xf(%rbx),%ecx
  mov    %ecx,%eax
  mul    %r15b
  shr    $0x8,%ax
  mov    %eax,%edi
  mov    %ecx,%eax
  sub    %edi,%eax
  mov    %eax,%esi
  shr    %sil
  lea    (%rsi,%rdi,1),%eax
  shr    $0x5,%al
  imul   %r8d,%eax
  sub    %eax,%ecx
  movzbl %cl,%ecx
  movzbl (%r12,%rcx,1),%eax
  add    $0x9e,%eax
  movzbl %al,%ecx
  movzbl %al,%eax
  imul   $0x30c30c31,%rax,%rax
  sar    $0x22,%rax
  lea    (%rax,%rax,4),%esi
  lea    (%rax,%rsi,4),%eax
  sub    %eax,%ecx
  mov    %r14d,%eax
  movslq %ecx,%rcx
  mulb   (%r11,%rcx,1)
  shr    $0xa,%ax
  add    %al,0x22(%rbx)
  movzbl 0x13(%r13),%ecx
  lea    -0x1a(%rcx),%esi
  movzbl 0x4(%rbp),%ecx
  mov    %ecx,%eax
  mul    %r14b
  shr    $0xc,%ax
  lea    (%rax,%rax,4),%eax
  shl    $0x2,%eax
  sub    %eax,%ecx
  movzbl %cl,%ecx
  movzbl 0x0(%r13,%rcx,1),%eax
  shr    %al
  and    $0x66,%eax
  sub    %eax,%esi
  mov    %sil,0x13(%r13)
  movzbl 0xbe(%rbx),%ecx
  movzbl 0x48(%rbx),%esi
  mov    %ecx,%eax
  mul    %dl
  shr    $0x8,%ax
  mov    %eax,%edi
  mov    %ecx,%eax
  sub    %edi,%eax
  shr    %al
  add    %edi,%eax
  shr    $0x4,%al
  lea    (%rax,%rax,4),%edi
  lea    (%rax,%rdi,4),%eax
  sub    %eax,%ecx
  mov    %esi,%eax
  movzbl %cl,%ecx
  movzbl (%r11,%rcx,1),%edi
  mov    %edi,%ecx
  neg    %ecx
  and    $0x7,%ecx
  shl    %cl,%eax
  mov    %edi,%ecx
  and    $0x7,%ecx
  sar    %cl,%esi
  mov    %eax,%ecx
  xor    %esi,%ecx
  movzbl 0x7e(%rbx),%esi
  mov    %esi,%eax
  mul    %dl
  shr    $0x8,%ax
  mov    %eax,%edi
  mov    %esi,%eax
  sub    %edi,%eax
  shr    %al
  add    %edi,%eax
  shr    $0x4,%al
  lea    (%rax,%rax,4),%edi
  lea    (%rax,%rdi,4),%eax
  sub    %eax,%esi
  movzbl %sil,%esi
  movzbl (%r11,%rsi,1),%eax
  lea    0x0(,%rax,4),%esi
  sub    %esi,%eax
  add    %eax,%ecx
  lea    (%rcx,%rcx,2),%ecx
  xor    %cl,0xf(%rbx)
  movzbl 0xb5(%rbx),%ecx
  mov    %ecx,%eax
  mul    %r15b
  shr    $0x8,%ax
  mov    %eax,%edi
  mov    %ecx,%eax
  sub    %edi,%eax
  mov    %eax,%esi
  shr    %sil
  lea    (%rsi,%rdi,1),%eax
  shr    $0x5,%al
  imul   %r8d,%eax
  sub    %eax,%ecx
  movzbl %cl,%ecx
  movzbl (%r12,%rcx,1),%ecx
  mov    %ecx,%eax
  imul   %ecx,%eax
  imul   %ecx,%eax
  xor    %al,0xf(%r13)
  mov    $0xffffffab,%eax
  mulb   0xca(%rbx)
  shr    $0x9,%ax
  xor    %al,0x4(%r12)
  movzbl 0x0(%rbp),%esi
  mov    %esi,%eax
  mul    %r14b
  shr    $0xc,%ax
  lea    (%rax,%rax,4),%eax
  lea    0x0(,%rax,4),%ecx
  sub    %ecx,%esi
  movzbl %sil,%esi
  movzbl 0x0(%r13,%rsi,1),%eax
  mov    $0x5c,%esi
  sub    %eax,%esi
  movzbl 0x69(%rbx),%eax
  not    %eax
  mov    %eax,%ecx
  and    %esi,%eax
  or     %esi,%ecx
  and    $0xc6,%ecx
  or     %eax,%ecx
  mov    %ecx,%eax
  imul   %ecx,%eax
  imul   %ecx,%eax
  add    %al,0x1(%r12)
  movzbl 0x5c(%rbx),%ecx
  mov    %r11,0x18(%rsp)
  mov    %ecx,%eax
  mul    %dl
  shr    $0x8,%ax
  mov    %eax,%edi
  mov    %ecx,%eax
  sub    %edi,%eax
  mov    %eax,%esi
  shr    %sil
  lea    (%rsi,%rdi,1),%eax
  shr    $0x4,%al
  lea    (%rax,%rax,4),%esi
  lea    (%rax,%rsi,4),%eax
  movzbl 0x29(%rbx),%esi
  sub    %eax,%ecx
  movzbl %cl,%ecx
  mov    %esi,%eax
  movzbl (%r11,%rcx,1),%ecx
  and    $0x1b,%ecx
  mul    %r15b
  or     $0xe0,%cl
  shr    $0x8,%ax
  mov    %eax,%edi
  mov    %esi,%eax
  sub    %edi,%eax
  shr    %al
  add    %edi,%eax
  mov    $0x5c,%edi
  shr    $0x5,%al
  imul   %r8d,%eax
  sub    %eax,%esi
  movzbl %sil,%esi
  movzbl (%r12,%rsi,1),%eax
  imul   %eax,%ecx
  mov    $0xaaaaaaab,%eax
  imul   %rax,%rcx
  xor    %eax,%eax
  shr    $0x21,%rcx
  xor    %cl,0x13(%r13)
  movzbl 0x5(%rbx),%esi
  and    $0x7,%esi
  call   <weird_ror8@plt>
  movzbl 0xc(%rbx),%ecx
  add    %al,0x8c(%rbx)
  mov    $0x23,%r8d
  mov    %ecx,%eax
  mul    %r15b
  shr    $0x8,%ax
  mov    %eax,%edi
  mov    %ecx,%eax
  sub    %edi,%eax
  mov    %eax,%esi
  shr    %sil
  lea    (%rsi,%rdi,1),%eax
  shr    $0x5,%al
  imul   %r8d,%eax
  sub    %eax,%ecx
  movzbl %cl,%ecx
  movzbl (%r12,%rcx,1),%eax
  movzbl 0xb6(%rbx),%ecx
  xor    0x4(%rbx),%al
  not    %eax
  or     %eax,%ecx
  and    0xb6(%rbx),%al
  and    $0xffffffc0,%ecx
  or     %ecx,%eax
  add    %al,0xc(%r12)
  movzbl 0x8a(%rbx),%eax
  movzbl 0x2b(%rbx),%esi
  addb   $0x7d,0x24(%rbx)
  mov    %eax,%ecx
  or     $0x4a,%ecx
  and    $0x4a,%eax
  and    0xf(%r13),%cl
  or     %eax,%ecx
  mov    %esi,%eax
  mul    %r14b
  shr    $0xc,%ax
  lea    (%rax,%rax,4),%eax
  shl    $0x2,%eax
  sub    %eax,%esi
  movzbl %sil,%esi
  movzbl 0x0(%r13,%rsi,1),%eax
  mov    %ecx,%esi
  or     %eax,%esi
  and    %eax,%ecx
  xor    %eax,%eax
  mov    %esi,%edi
  mov    $0x4,%esi
  and    $0x5f,%edi
  or     %ecx,%edi
  movzbl %dil,%edi
  call   <rol8x@plt>
  mov    $0xffffff87,%edx
  mov    0x18(%rsp),%r11
  mov    %al,0x7c(%rbx)
  movzbl 0x4(%rbp),%esi
  mov    %esi,%eax
  mul    %r14b
  shr    $0xc,%ax
  lea    (%rax,%rax,4),%eax
  lea    0x0(,%rax,4),%ecx
  sub    %ecx,%esi
  movzbl 0x44(%rbx),%ecx
  movzbl %sil,%esi
  mov    %ecx,%eax
  add    %r13,%rsi
  mul    %dl
  shr    $0x8,%ax
  mov    %eax,%edi
  mov    %ecx,%eax
  sub    %edi,%eax
  shr    %al
  add    %edi,%eax
  shr    $0x4,%al
  lea    (%rax,%rax,4),%edi
  lea    (%rax,%rdi,4),%eax
  sub    %eax,%ecx
  movzbl %cl,%ecx
  movzbl (%r11,%rcx,1),%eax
  add    %eax,%eax
  and    (%rsi),%al
  and    $0x5c,%eax
  or     $0x10,%eax
  xor    $0x5c,%eax
  mov    %al,0x8(%rbp)
  movzbl 0x4f(%rbx),%ecx
  mov    %ecx,%eax
  mul    %dl
  shr    $0x8,%ax
  mov    %eax,%edi
  mov    %ecx,%eax
  sub    %edi,%eax
  shr    %al
  add    %edi,%eax
  shr    $0x4,%al
  lea    (%rax,%rax,4),%edi
  lea    (%rax,%rdi,4),%eax
  mov    $0xcccccccd,%edi
  sub    %eax,%ecx
  movzbl %cl,%ecx
  movzbl (%r11,%rcx,1),%eax
  movzbl 0xb1(%rbx),%ecx
  add    %ecx,%eax
  movzbl 0x94(%rbx),%ecx
  shr    %eax
  lea    (%rcx,%rcx,2),%ecx
  mov    %eax,%r9d
  imul   %rdi,%rcx
  movzbl 0x1(%r12),%edi
  shr    $0x22,%rcx
  or     %ecx,%r9d
  and    %ecx,%eax
  and    %r9d,%edi
  movzbl 0x0(%rbp),%r9d
  or     %eax,%edi
  mov    $0xffffffde,%eax
  sub    %edi,%eax
  mov    %r9d,%r8d
  mov    %al,0xc(%rbp)
  mov    %r9d,%eax
  movzbl 0x16(%r12),%ecx
  mul    %r15b
  mov    %ecx,%r10d
  neg    %ecx
  and    $0x7,%r10d
  and    $0x7,%ecx
  shr    $0x8,%ax
  mov    %r10b,0x18(%rsp)
  movzbl 0x21(%rbx),%r10d
  sub    %eax,%r8d
  mov    %r8d,%edi
  mov    $0x23,%r8d
  shr    %dil
  add    %edi,%eax
  shr    $0x5,%al
  imul   %r8d,%eax
  sub    %eax,%r9d
  movzbl %r9b,%r9d
  movzbl (%r12,%r9,1),%eax
  and    $0xffffff9f,%eax
  or     (%rsi),%al
  mov    %r10d,%esi
  sar    %cl,%esi
  movzbl 0x18(%rsp),%ecx
  or     $0x8,%eax
  mov    %r11,0x18(%rsp)
  shl    %cl,%r10d
  xor    %r10d,%esi
  or     $0xffffff80,%esi
  sub    %esi,%eax
  add    %al,0x10(%r12)
  movzbl 0xc(%rbp),%ecx
  mov    %ecx,%eax
  mul    %r15b
  shr    $0x8,%ax
  mov    %eax,%edi
  mov    %ecx,%eax
  sub    %edi,%eax
  mov    %eax,%esi
  shr    %sil
  lea    (%rsi,%rdi,1),%eax
  shr    $0x5,%al
  imul   %r8d,%eax
  sub    %eax,%ecx
  movzbl %cl,%ecx
  movzbl (%r12,%rcx,1),%eax
  xor    %al,0xe(%r13)
  movzbl 0x70(%rbx),%ecx
  mov    %ecx,%eax
  mul    %r15b
  shr    $0x8,%ax
  mov    %eax,%edi
  mov    %ecx,%eax
  sub    %edi,%eax
  mov    %eax,%esi
  shr    %sil
  lea    (%rsi,%rdi,1),%eax
  shr    $0x5,%al
  imul   %r8d,%eax
  sub    %eax,%ecx
  movzbl %cl,%ecx
  movzbl (%r12,%rcx,1),%esi
  movzbl 0xc9(%rbx),%ecx
  mov    %ecx,%eax
  add    %esi,%esi
  mul    %r14b
  and    $0x7,%esi
  shr    $0xc,%ax
  lea    (%rax,%rax,4),%eax
  shl    $0x2,%eax
  sub    %eax,%ecx
  movzbl %cl,%ecx
  movzbl 0x0(%r13,%rcx,1),%ecx
  mov    %ecx,%eax
  mul    %dl
  shr    $0x8,%ax
  mov    %eax,%edi
  mov    %ecx,%eax
  sub    %edi,%eax
  shr    %al
  add    %edi,%eax
  shr    $0x4,%al
  lea    (%rax,%rax,4),%edi
  lea    (%rax,%rdi,4),%eax
  sub    %eax,%ecx
  xor    %eax,%eax
  movzbl %cl,%ecx
  movzbl (%r11,%rcx,1),%edi
  call   <weird_rol8@plt>
  mov    $0xffffff87,%edx
  mov    0x18(%rsp),%r11
  movzbl 0xd0(%rbx),%esi
  mov    %eax,%ecx
  movzbl 0xa4(%rbx),%edi
  mov    %esi,%eax
  mul    %r14b
  shr    $0xc,%ax
  lea    (%rax,%rax,4),%eax
  shl    $0x2,%eax
  sub    %eax,%esi
  mov    %edi,%eax
  mul    %r14b
  movzbl %sil,%esi
  movzbl 0x0(%r13,%rsi,1),%esi
  shr    $0xc,%ax
  and    $0xffffff83,%esi
  lea    (%rax,%rax,4),%eax
  shl    $0x2,%eax
  sub    %eax,%edi
  movzbl %dil,%edi
  movzbl 0x0(%r13,%rdi,1),%eax
  mov    $0xcccccccd,%edi
  and    $0x7c,%eax
  or     %esi,%eax
  mov    %ecx,%esi
  movzbl %al,%eax
  imul   %rdi,%rax
  shr    $0x22,%rax
  or     %eax,%esi
  and    %eax,%ecx
  and    $0x25,%esi
  or     %esi,%ecx
  add    %cl,0x13(%rbx)
  movzbl 0x2d(%rbx),%ecx
  mov    %ecx,%eax
  mul    %dl
  shr    $0x8,%ax
  mov    %eax,%edi
  mov    %ecx,%eax
  sub    %edi,%eax
  mov    %eax,%esi
  shr    %sil
  lea    (%rsi,%rdi,1),%eax
  mov    $0x8c,%edi
  shr    $0x4,%al
  lea    (%rax,%rax,4),%esi
  lea    (%rax,%rsi,4),%eax
  sub    %eax,%ecx
  xor    %eax,%eax
  movzbl %cl,%ecx
  movzbl (%r11,%rcx,1),%esi
  add    $0x5c,%esi
  imul   %esi,%esi
  and    $0x7,%esi
  call   <weird_ror8@plt>
  mov    $0x23,%r8d
  mov    $0xffffff87,%edx
  mov    0x18(%rsp),%r11
  mov    %al,0x8(%r12)
  movb   $0x38,0xbe(%rbx)
  movzbl 0x0(%rbp),%eax
  xor    %al,0x8(%r12)
  movzbl 0x53(%rbx),%esi
  mov    %esi,%eax
  mul    %r14b
  shr    $0xc,%ax
  lea    (%rax,%rax,4),%eax
  lea    0x0(,%rax,4),%ecx
  sub    %ecx,%esi
  movzbl %sil,%esi
  movzbl 0x0(%r13,%rsi,1),%eax
  movzbl 0x29(%rbx),%esi
  or     $0xffffffcc,%eax
  mul    %r14b
  shr    $0xa,%ax
  not    %eax
  mov    %al,0x35(%rbx)
  mov    %esi,%eax
  mul    %r14b
  shr    $0xc,%ax
  lea    (%rax,%rax,4),%eax
  lea    0x0(,%rax,4),%ecx
  sub    %ecx,%esi
  movzbl %sil,%esi
  movzbl 0x0(%r13,%rsi,1),%eax
  add    %al,0xd(%r13)
  movzbl 0x0(%rbp),%ecx
  mov    %ecx,%eax
  mul    %r15b
  shr    $0x8,%ax
  mov    %eax,%edi
  mov    %ecx,%eax
  sub    %edi,%eax
  mov    %eax,%esi
  shr    %sil
  lea    (%rsi,%rdi,1),%eax
  shr    $0x5,%al
  imul   %r8d,%eax
  sub    %eax,%ecx
  movzbl 0x2(%rbx),%eax
  movzbl %cl,%ecx
  movzbl (%r12,%rcx,1),%ecx
  or     %ecx,%eax
  and    0x2(%rbx),%cl
  and    0xc(%rbp),%al
  or     %ecx,%eax
  mov    $0xffffff89,%ecx
  mul    %cl
  shr    $0xb,%ax
  mov    %al,0xa(%r13)
  movzbl 0x2(%rbx),%ecx
  mov    %ecx,%eax
  mul    %dl
  shr    $0x8,%ax
  mov    %eax,%edi
  mov    %ecx,%eax
  sub    %edi,%eax
  mov    %eax,%esi
  shr    %sil
  lea    (%rsi,%rdi,1),%eax
  shr    $0x4,%al
  lea    (%rax,%rax,4),%esi
  lea    (%rax,%rsi,4),%eax
  movzbl 0x8(%rbp),%esi
  sub    %eax,%ecx
  mov    %esi,%eax
  movzbl %cl,%ecx
  mul    %r15b
  movzbl (%r11,%rcx,1),%ecx
  and    $0x44,%ecx
  shr    $0x8,%ax
  or     $0x38,%ecx
  mov    %eax,%edi
  mov    %esi,%eax
  sub    %edi,%eax
  shr    %al
  add    %edi,%eax
  shr    $0x5,%al
  imul   %r8d,%eax
  sub    %eax,%esi
  movzbl %sil,%esi
  movzbl (%r12,%rsi,1),%esi
  mov    %esi,%eax
  and    %ecx,%esi
  or     %ecx,%eax
  mov    $0xffffffca,%ecx
  and    $0x2a,%eax
  or     %esi,%eax
  imul   %eax,%eax
  add    $0x6e,%eax
  sub    %eax,%ecx
  mov    %al,0x10(%rbp)
  mov    %cl,0x14(%rbp)
  movzbl 0x0(%rbp),%ecx
  movzbl 0x97(%rbx),%eax
  mov    %al,0x18(%rbp)
  mov    %ecx,%eax
  mul    %dl
  shr    $0x8,%ax
  mov    %eax,%edi
  mov    %ecx,%eax
  sub    %edi,%eax
  mov    %eax,%esi
  shr    %sil
  lea    (%rsi,%rdi,1),%eax
  shr    $0x4,%al
  lea    (%rax,%rax,4),%esi
  lea    (%rax,%rsi,4),%eax
  sub    %eax,%ecx
  movzbl %cl,%ecx
  movzbl (%r11,%rcx,1),%eax
  xor    %al,0xd(%r12)
  movzbl 0xb3(%rbx),%ecx
  mov    %ecx,%eax
  mul    %r15b
  shr    $0x8,%ax
  mov    %eax,%edi
  mov    %ecx,%eax
  sub    %edi,%eax
  mov    %eax,%esi
  shr    %sil
  lea    (%rsi,%rdi,1),%eax
  shr    $0x5,%al
  imul   %r8d,%eax
  sub    %eax,%ecx
  movzbl %cl,%ecx
  movzbl (%r12,%rcx,1),%ecx
  movzbl 0xc(%rbp),%esi
  mov    %r11,0x20(%rsp)
  sub    $0x26,%ecx
  mov    %ecx,%eax
  and    %esi,%ecx
  or     %esi,%eax
  movzbl 0x0(%rbp),%esi
  and    $0xb1,%eax
  or     %ecx,%eax
  imul   %eax,%eax
  lea    0x1e(%rax),%ecx
  add    $0x5c,%eax
  mov    %cl,0x1c(%rbp)
  movzbl 0x14(%rbp),%ecx
  mov    %al,0x20(%rbp)
  mov    %esi,%eax
  and    $0x4a,%eax
  add    %eax,%ecx
  mov    %esi,%eax
  mul    %dl
  shr    $0x8,%ax
  mov    %eax,%edi
  mov    %esi,%eax
  sub    %edi,%eax
  shr    %al
  add    %edi,%eax
  shr    $0x4,%al
  lea    (%rax,%rax,4),%edi
  lea    (%rax,%rdi,4),%edi
  mov    %esi,%eax
  sub    %edi,%eax
  movzbl %al,%eax
  movzbl (%r11,%rax,1),%edi
  mov    %ecx,%eax
  not    %edi
  or     %edi,%eax
  and    %edi,%ecx
  movzbl 0x59(%rbx),%edi
  and    $0x79,%eax
  or     %ecx,%eax
  mov    %edi,%ecx
  mov    %eax,0x18(%rsp)
  mov    %eax,%r9d
  mov    %edi,%eax
  mul    %r15b
  xor    $0xffffffa6,%r9d
  shr    $0x8,%ax
  sub    %eax,%ecx
  shr    %cl
  add    %ecx,%eax
  mov    %r9d,%ecx
  and    %esi,%r9d
  shr    $0x5,%al
  or     %esi,%ecx
  mov    $0x2,%esi
  imul   %r8d,%eax
  sub    %eax,%edi
  mov    %ecx,%eax
  movzbl %dil,%edi
  and    $0x4,%eax
  or     %r9d,%eax
  add    (%r12,%rdi,1),%al
  movzbl 0x10(%rsp),%edi
  xor    %al,0x2f(%rbx)
  xor    %eax,%eax
  and    $0xffffffb3,%edi
  add    $0x44,%edi
  movzbl %dil,%edi
  call   <rol8@plt>
  movzbl 0x8(%rsp),%edx
  mov    $0x23,%r8d
  mov    0x20(%rsp),%r11
  xor    %edx,%eax
  and    0x3(%r13),%al
  xor    %edx,%eax
  mov    $0xffffff87,%edx
  sub    $0xf,%eax
  mov    %al,0x24(%rbp)
  xorb   $0xdd,0x7b(%rbx)
  movzbl 0x0(%rbp),%ecx
  movzbl 0x18(%rbp),%r10d
  mov    %ecx,%eax
  mul    %dl
  mov    %eax,%esi
  shr    $0x8,%si
  mov    %esi,%edi
  mov    %ecx,%esi
  sub    %edi,%esi
  shr    %sil
  lea    (%rsi,%rdi,1),%eax
  shr    $0x4,%al
  lea    (%rax,%rax,4),%esi
  lea    (%rax,%rsi,4),%eax
  mov    %ecx,%esi
  sub    %eax,%esi
  mov    %r15d,%eax
  mulb   0x4(%rbp)
  movzbl %sil,%edi
  movzbl 0x4(%rbp),%esi
  add    %r11,%rdi
  shr    $0x8,%ax
  sub    %eax,%esi
  shr    %sil
  add    %esi,%eax
  movzbl 0x4(%rbp),%esi
  shr    $0x5,%al
  imul   %r8d,%eax
  sub    %eax,%esi
  mov    $0xffffffab,%eax
  movzbl %sil,%r9d
  mulb   (%rdi)
  mov    %ecx,%esi
  and    $0xfffffffe,%esi
  add    %r12,%r9
  or     $0x54,%esi
  or     %esi,%r10d
  and    0x18(%rbp),%sil
  shr    $0x9,%ax
  sub    (%r9),%al
  and    $0x36,%r10d
  or     %r10d,%esi
  movzbl 0x18(%rbp),%r10d
  sub    %esi,%eax
  mov    %ecx,%esi
  shr    %sil
  mov    %al,0x28(%rbp)
  or     %eax,%r10d
  and    0x18(%rbp),%al
  and    $0x65,%esi
  and    $0xffffffb1,%r10d
  add    $0x1a,%esi
  xor    0x18(%rsp),%sil
  or     %eax,%r10d
  xor    $0x51,%esi
  mov    %sil,0x2c(%rbp)
  movzbl (%r9),%r9d
  movb   $0x1b,0x34(%rbp)
  and    $0x1b,%r9d
  movb   $0xc7,0x38(%rbp)
  mov    %r9b,0x30(%rbp)
  movzbl (%rdi),%esi
  mov    %esi,%eax
  and    $0x1,%esi
  and    $0xfffffffc,%eax
  sub    $0x50,%esi
  mov    %eax,%edi
  mov    %ecx,%eax
  mul    %r14b
  or     %edi,%esi
  or     %r10d,%esi
  and    $0xffffffc7,%esi
  shr    $0xc,%ax
  lea    (%rax,%rax,4),%eax
  shl    $0x2,%eax
  sub    %eax,%ecx
  movzbl %cl,%ecx
  movzbl (%r11,%rcx,1),%eax
  and    $0x1,%eax
  or     %edi,%eax
  or     $0xffffffb0,%eax
  and    %r10d,%eax
  or     %esi,%eax
  and    $0xffffffe4,%eax
  or     %r9d,%eax
  add    0x4(%rbp),%al
  mov    %al,0x40(%rbp)
  movzbl 0x1a(%rbx),%eax
  xor    %al,0x21(%r12)
  movzbl 0x6a(%rbx),%eax
  xor    0x14(%rbp),%al
  xor    $0xffffff85,%eax
  mov    %al,0x6a(%rbx)
  mov    $0xffffffab,%eax
  mulb   0x40(%rbp)
  movzbl 0x7a(%rbx),%edi
  mov    %r11,0x10(%rsp)
  mov    %eax,%ecx
  movzbl 0x0(%rbp),%eax
  shr    $0x9,%cx
  and    $0xffffffe4,%eax
  or     $0x13,%eax
  sub    %eax,%ecx
  mov    %edi,%eax
  mul    %r14b
  shr    $0xc,%ax
  lea    (%rax,%rax,4),%eax
  lea    0x0(,%rax,4),%esi
  sub    %esi,%edi
  movzbl %dil,%edi
  xor    0x0(%r13,%rdi,1),%cl
  mov    %cl,0x1e(%r12)
  movzbl 0x5a(%rbx),%ecx
  mov    %ecx,%eax
  mul    %r15b
  shr    $0x8,%ax
  mov    %eax,%edi
  mov    %ecx,%eax
  sub    %edi,%eax
  shr    %al
  mov    %eax,%esi
  lea    (%rsi,%rdi,1),%eax
  shr    $0x5,%al
  imul   %r8d,%eax
  sub    %eax,%ecx
  movzbl %cl,%ecx
  movzbl (%r12,%rcx,1),%eax
  and    $0x1b,%eax
  or     $0x44,%eax
  mov    %al,0x16(%rbx)
  movzbl 0x24(%rbp),%esi
  mov    %esi,%eax
  mul    %dl
  shr    $0x8,%ax
  mov    %eax,%r9d
  mov    %esi,%eax
  sub    %r9d,%eax
  shr    %al
  mov    %eax,%edi
  lea    (%rdi,%r9,1),%eax
  movzbl 0x2c(%rbp),%r9d
  shr    $0x4,%al
  lea    (%rax,%rax,4),%edi
  lea    (%rax,%rdi,4),%eax
  sub    %eax,%esi
  mov    %r9d,%eax
  mul    %r15b
  movzbl %sil,%esi
  movzbl (%r11,%rsi,1),%edi
  mov    %r9d,%esi
  shr    $0x8,%ax
  and    $0xb8,%edi
  sub    %eax,%esi
  shr    %sil
  add    %esi,%eax
  shr    $0x5,%al
  imul   %r8d,%eax
  sub    %eax,%r9d
  movzbl %r9b,%r9d
  movzbl (%r12,%r9,1),%eax
  and    $0x47,%al
  or     %edi,%eax
  mov    %eax,%ecx
  imul   %eax,%ecx
  mov    %ecx,%edi
  imul   %eax,%edi
  mov    %edx,%eax
  shr    %edi
  add    0x12(%r12),%dil
  mov    %dil,0x12(%r12)
  movzbl 0x5c(%rbx),%esi
  mul    %sil
  mov    %eax,%edx
  mov    %esi,%eax
  shr    $0x8,%dx
  sub    %edx,%eax
  shr    %al
  add    %edx,%eax
  shr    $0x4,%al
  lea    (%rax,%rax,4),%edx
  lea    (%rax,%rdx,4),%eax
  sub    %eax,%esi
  movzbl %sil,%esi
  movzbl (%r11,%rsi,1),%eax
  sub    %al,0x5(%r12)
  movzbl 0xb7(%rbx),%r10d
  movzbl 0x14(%rbp),%r9d
  movzbl 0x2c(%rbp),%esi
  mov    %r10d,%eax
  mov    %r10d,%edx
  mul    %r15b
  shr    $0x8,%ax
  sub    %eax,%edx
  shr    %dl
  add    %edx,%eax
  shr    $0x5,%al
  imul   %r8d,%eax
  sub    %eax,%r10d
  movzbl 0x29(%rbx),%eax
  movzbl %r10b,%r10d
  movzbl (%r12,%r10,1),%edx
  and    $0xffffffe7,%eax
  and    $0x18,%edx
  or     %eax,%edx
  movzbl 0x10(%rbp),%eax
  add    $0x35,%eax
  and    %eax,%edx
  mov    %r15d,%eax
  mul    %r9b
  mov    %eax,%r15d
  mov    %r9d,%eax
  shr    $0x8,%r15w
  sub    %r15d,%eax
  shr    %al
  add    %r15d,%eax
  mov    $0x23,%r15d
  shr    $0x5,%al
  imul   %r8d,%eax
  mov    %r9d,%r8d
  sub    %eax,%r8d
  mov    %r14d,%eax
  movzbl %r8b,%r8d
  and    (%r12,%r8,1),%r9b
  movzbl 0x3b(%rbx),%r8d
  or     %edx,%r9d
  mul    %r8b
  shr    $0xc,%ax
  lea    (%rax,%rax,4),%eax
  shl    $0x2,%eax
  sub    %eax,%r8d
  movzbl %r8b,%r8d
  movzbl 0x0(%r13,%r8,1),%eax
  and    %esi,%eax
  mov    %eax,%r8d
  mov    %esi,%eax
  not    %eax
  and    0x11(%rbx),%al
  or     %r8d,%eax
  imul   %r9d,%eax
  xor    %edi,%eax
  mov    %al,0x12(%r12)
  movzbl 0x1c(%rbx),%edi
  mov    $0xffffffd5,%eax
  mul    %dil
  shr    $0x8,%ax
  mov    %eax,%r8d
  mov    %edi,%eax
  sub    %r8d,%eax
  shr    %al
  mov    %eax,%esi
  lea    (%rsi,%r8,1),%eax
  shr    $0x5,%al
  imul   %r15d,%eax
  sub    %eax,%edi
  xor    %eax,%eax
  movzbl %dil,%edi
  movzbl (%r12,%rdi,1),%esi
  movzbl 0xb(%rbx),%edi
  and    $0x7,%esi
  call   <weird_ror8@plt>
  movzbl 0x5d(%rbx),%r8d
  mov    $0xffffffcd,%edx
  movzbl 0xe(%r13),%r9d
  and    $0x7,%eax
  mov    %eax,%esi
  mov    %r8d,%eax
  mul    %dl
  mov    %esi,0x8(%rsp)
  shr    $0xc,%ax
  lea    (%rax,%rax,4),%eax
  lea    0x0(,%rax,4),%edi
  movzbl %r9b,%eax
  and    $0x96,%r9d
  sub    %edi,%r8d
  not    %eax
  movzbl 0x0(%rbp),%edi
  movzbl %r8b,%r8d
  movzbl 0x0(%r13,%r8,1),%r14d
  and    %eax,%r14d
  movzbl 0x7(%rbx),%eax
  or     %r9d,%r14d
  and    $0xffffffe3,%r14d
  and    $0x1c,%eax
  or     %eax,%r14d
  mov    $0xffffffd5,%eax
  mul    %dil
  shr    $0x8,%ax
  mov    %eax,%r9d
  mov    %edi,%eax
  sub    %r9d,%eax
  shr    %al
  mov    %eax,%r8d
  lea    (%r8,%r9,1),%eax
  shr    $0x5,%al
  imul   %r15d,%eax
  sub    %eax,%edi
  xor    %eax,%eax
  movzbl %dil,%edi
  movzbl (%r12,%rdi,1),%edi
  call   <weird_rol8@plt>
  movzbl 0x21(%r12),%r15d
  movzbl 0x0(%rbp),%edi
  mov    $0x23,%edx
  or     %r14d,%eax
  mov    0x8(%rsp),%esi
  and    %eax,%r15d
  mov    $0xffffffd5,%eax
  mul    %dil
  shr    $0x8,%ax
  mov    %eax,%r8d
  mov    %edi,%eax
  sub    %r8d,%eax
  shr    %al
  add    %r8d,%eax
  shr    $0x5,%al
  imul   %edx,%eax
  sub    %eax,%edi
  xor    %eax,%eax
  movzbl %dil,%edi
  movzbl (%r12,%rdi,1),%edi
  call   <weird_rol8@plt>
  mov    $0xffffffcd,%edx
  mov    $0xffffff87,%ecx
  mov    0x10(%rsp),%r11
  and    %eax,%r14d
  or     %r15d,%r14d
  mov    $0x23,%r15d
  add    $0x4a,%r14d
  mov    %r14b,0x16(%r12)
  movzbl 0x27(%rbx),%edi
  mov    $0xcccccccd,%r14d
  mov    %edi,%eax
  mul    %dl
  shr    $0xc,%ax
  lea    (%rax,%rax,4),%eax
  lea    0x0(,%rax,4),%esi
  sub    %esi,%edi
  movzbl %dil,%edi
  movzbl 0x0(%r13,%rdi,1),%eax
  xor    $0xffffffd9,%eax
  mov    %eax,%edi
  mul    %cl
  mov    %edi,%esi
  shr    $0x8,%ax
  sub    %eax,%esi
  shr    %sil
  add    %eax,%esi
  shr    $0x4,%sil
  lea    (%rsi,%rsi,4),%eax
  lea    (%rsi,%rax,4),%esi
  mov    %edi,%eax
  sub    %esi,%eax
  movzbl 0x14(%rbp),%esi
  and    0x0(%rbp),%sil
  movzbl %al,%eax
  movzbl (%r11,%rax,1),%edi
  movzbl 0x14(%rbp),%eax
  or     0x0(%rbp),%al
  and    $0xffffffd6,%eax
  or     %esi,%eax
  mov    %edi,%esi
  or     %eax,%esi
  and    0x20(%rbp),%sil
  and    %eax,%edi
  mov    %esi,%eax
  or     %edi,%eax
  sub    %al,0xf(%r13)
  movzbl 0x39(%rbx),%edi
  mov    $0xffffffd5,%eax
  movzbl 0x16(%rbx),%r9d
  mul    %dil
  shr    $0x8,%ax
  mov    %eax,%r8d
  mov    %edi,%eax
  sub    %r8d,%eax
  shr    %al
  mov    %eax,%esi
  lea    (%rsi,%r8,1),%eax
  shr    $0x5,%al
  imul   %r15d,%eax
  sub    %eax,%edi
  movzbl %dil,%edi
  movzbl (%r12,%rdi,1),%esi
  movzbl 0x40(%rbp),%edi
  mov    %edi,%eax
  mov    %edi,%r8d
  mul    %dl
  shr    $0xc,%ax
  lea    (%rax,%rax,4),%eax
  shl    $0x2,%eax
  sub    %eax,%r8d
  movzbl %r8b,%eax
  mov    %esi,%r8d
  movzbl 0x0(%r13,%rax,1),%eax
  or     %eax,%r8d
  and    %esi,%eax
  and    $0x5f,%r8d
  mov    %r8d,%esi
  mov    %edi,%r8d
  or     %eax,%esi
  mov    $0xffffffab,%eax
  and    $0x2d,%r8d
  mulb   0x0(%rbp)
  shr    $0x9,%ax
  or     %edi,%r9d
  movzbl %r9b,%r9d
  movzbl %al,%eax
  sub    %r9d,%eax
  movzbl 0x1c(%rbp),%r9d
  add    $0x3e,%r9d
  xor    %r9d,%eax
  mov    %esi,%r9d
  or     %r8d,%r9d
  or     $0x52,%r8d
  and    %esi,%r8d
  and    $0x20,%r9d
  or     %r8d,%r9d
  mov    %edi,%r8d
  movzbl %r9b,%r9d
  xor    %r9d,%eax
  movzbl %al,%esi
  mov    %rsi,%rax
  imul   %r14,%rsi
  shr    $0x24,%rsi
  lea    (%rsi,%rsi,4),%esi
  shl    $0x2,%esi
  sub    %esi,%eax
  movzbl 0x63(%rbx),%esi
  movzbl 0x0(%r13,%rax,1),%eax
  mov    %al,0x8(%rsp)
  mov    %esi,%eax
  mul    %dl
  shr    $0xc,%ax
  lea    (%rax,%rax,4),%eax
  shl    $0x2,%eax
  sub    %eax,%esi
  movzbl %sil,%esi
  movzbl 0x0(%r13,%rsi,1),%esi
  mov    %esi,%eax
  imul   %esi,%eax
  mov    %eax,%esi
  mov    $0xffffffd5,%eax
  mul    %dil
  shr    $0x8,%ax
  sub    %eax,%r8d
  shr    %r8b
  add    %r8d,%eax
  shr    $0x5,%al
  imul   %r15d,%eax
  sub    %eax,%edi
  mov    %esi,%eax
  imul   %esi,%eax
  movzbl %dil,%edi
  movzbl (%r12,%rdi,1),%esi
  or     %eax,%esi
  mov    %sil,0x44(%rbp)
  movzbl 0x32(%rbx),%edi
  movzbl 0x8a(%rbx),%r8d
  mov    %edi,%eax
  mul    %dl
  shr    $0xc,%ax
  lea    (%rax,%rax,4),%eax
  shl    $0x2,%eax
  sub    %eax,%edi
  mov    $0xffffffd5,%eax
  mul    %r8b
  movzbl %dil,%edi
  movzbl 0x0(%r13,%rdi,1),%r10d
  mov    %r8d,%edi
  shr    $0x8,%ax
  mov    %r10b,0x10(%rsp)
  mov    %r15d,%r10d
  sub    %eax,%edi
  shr    %dil
  add    %edi,%eax
  movzbl 0x27(%rbx),%edi
  shr    $0x5,%al
  imul   %r15d,%eax
  sub    %eax,%r8d
  mov    %edi,%eax
  mul    %cl
  movzbl %r8b,%r8d
  movzbl (%r12,%r8,1),%r15d
  mov    %edi,%r8d
  shr    $0x8,%ax
  mov    %r15d,0x2c(%rsp)
  mov    %eax,%r9d
  sub    %r9d,%r8d
  shr    %r8b
  lea    (%r8,%r9,1),%eax
  shr    $0x4,%al
  lea    (%rax,%rax,4),%r8d
  lea    (%rax,%r8,4),%eax
  sub    %eax,%edi
  movzbl %dil,%edi
  movzbl (%r11,%rdi,1),%eax
  movzbl 0x4(%rbx),%edi
  mov    %r11,0x38(%rsp)
  mov    %eax,0x30(%rsp)
  mov    %edi,%eax
  mul    %dl
  shr    $0xc,%ax
  lea    (%rax,%rax,4),%eax
  shl    $0x2,%eax
  sub    %eax,%edi
  movzbl %dil,%edi
  movzbl 0x0(%r13,%rdi,1),%r15d
  movzbl 0xca(%rbx),%edi
  mov    %edi,%eax
  mov    %edi,%r8d
  mul    %cl
  mov    %eax,%r9d
  shr    $0x8,%r9w
  sub    %r9d,%r8d
  shr    %r8b
  lea    (%r8,%r9,1),%eax
  shr    $0x4,%al
  lea    (%rax,%rax,4),%r8d
  lea    (%rax,%r8,4),%eax
  sub    %eax,%edi
  movzbl %dil,%edi
  movzbl (%r11,%rdi,1),%r9d
  movzbl 0x97(%rbx),%edi
  mov    %edi,%eax
  mov    %r9b,0x18(%rsp)
  mul    %dl
  shr    $0xc,%ax
  lea    (%rax,%rax,4),%eax
  shl    $0x2,%eax
  sub    %eax,%edi
  mov    $0xffffffd5,%eax
  movzbl %dil,%edi
  movzbl 0x0(%r13,%rdi,1),%r8d
  mov    %r8b,0x20(%rsp)
  movzbl 0xe(%rbx),%r8d
  mul    %r8b
  mov    %r8d,%edi
  shr    $0x8,%ax
  sub    %eax,%edi
  shr    %dil
  add    %edi,%eax
  movzbl 0x91(%rbx),%edi
  shr    $0x5,%al
  imul   %r10d,%eax
  sub    %eax,%r8d
  movzbl %r8b,%r8d
  movzbl (%r12,%r8,1),%eax
  mov    %eax,0x34(%rsp)
  mov    %edi,%eax
  mul    %dl
  shr    $0xc,%ax
  lea    (%rax,%rax,4),%eax
  shl    $0x2,%eax
  sub    %eax,%edi
  mov    $0xffffffd5,%eax
  mul    %sil
  movzbl %dil,%edi
  movzbl 0x0(%r13,%rdi,1),%r8d
  mov    %eax,%edi
  mov    %esi,%eax
  mov    %r8b,0x2b(%rsp)
  shr    $0x8,%di
  sub    %edi,%eax
  shr    %al
  add    %edi,%eax
  shr    $0x5,%al
  imul   %r10d,%eax
  sub    %eax,%esi
  movzbl %sil,%esi
  movzbl (%r12,%rsi,1),%r8d
  movzbl 0xd1(%rbx),%esi
  mov    %esi,%eax
  mul    %dl
  mov    %r8d,%edx
  shr    $0xc,%ax
  lea    (%rax,%rax,4),%eax
  shl    $0x2,%eax
  sub    %eax,%esi
  movzbl %sil,%esi
  movzbl 0x0(%r13,%rsi,1),%eax
  movzbl 0x7f(%rbx),%esi
  or     %eax,%edx
  and    %r8d,%eax
  and    $0x7,%r8d
  mov    %edx,%r14d
  and    $0x18,%r14d
  or     %eax,%r14d
  mov    %esi,%eax
  mul    %cl
  mov    %eax,%edx
  shr    $0x8,%dx
  mov    %edx,%r9d
  mov    %esi,%edx
  sub    %r9d,%edx
  mov    %edx,%edi
  shr    %dil
  lea    (%rdi,%r9,1),%eax
  shr    $0x4,%al
  lea    (%rax,%rax,4),%edi
  lea    (%rax,%rdi,4),%eax
  sub    %eax,%esi
  xor    %eax,%eax
  movzbl %sil,%esi
  movzbl (%r11,%rsi,1),%edi
  mov    %r8d,%esi
  call   <weird_rol8@plt>
  movzbl 0x24(%rbp),%r9d
  mov    $0x23,%r10d
  mov    $0xffffff87,%ecx
  mov    %eax,%r8d
  mov    $0xffffffd5,%eax
  mov    0x38(%rsp),%r11
  movzbl 0xa(%r13),%esi
  mul    %r9b
  mov    %r9d,%edx
  shr    $0x8,%ax
  sub    %eax,%edx
  mov    %edx,%edi
  shr    %dil
  add    %edi,%eax
  shr    $0x5,%al
  imul   %r10d,%eax
  sub    %eax,%r9d
  movzbl %r9b,%r9d
  movzbl (%r12,%r9,1),%edi
  mov    %edi,%eax
  mul    %cl
  mov    %eax,%edx
  shr    $0x8,%dx
  mov    %edx,%r10d
  mov    %edi,%edx
  sub    %r10d,%edx
  mov    %edx,%r9d
  shr    %r9b
  lea    (%r9,%r10,1),%eax
  shr    $0x4,%al
  lea    (%rax,%rax,4),%r9d
  lea    (%rax,%r9,4),%eax
  sub    %eax,%edi
  movzbl %dil,%edi
  movzbl (%r11,%rdi,1),%eax
  movzbl %sil,%edi
  and    %r14d,%esi
  mov    $0xcccccccd,%r14d
  not    %edi
  and    %r8d,%edi
  add    %eax,%eax
  or     %edi,%esi
  and    $0xffffffb8,%eax
  movzbl 0x40(%rbp),%edi
  and    $0x47,%esi
  or     %esi,%eax
  mov    %edi,%edx
  mov    %al,0x48(%rbp)
  mov    %edi,%eax
  movzbl 0x19(%rbx),%r8d
  mul    %cl
  shr    $0x8,%ax
  sub    %eax,%edx
  mov    %edx,%esi
  mov    $0xffffffcd,%edx
  shr    %sil
  add    %eax,%esi
  shr    $0x4,%sil
  lea    (%rsi,%rsi,4),%eax
  lea    (%rsi,%rax,4),%esi
  mov    %r8d,%eax
  sub    %esi,%edi
  mul    %dl
  movzbl %dil,%edi
  movzbl (%r11,%rdi,1),%esi
  mov    %r8d,%edi
  and    $0x6e,%esi
  shr    $0xc,%ax
  and    $0xffffff96,%r8d
  lea    (%rax,%rax,4),%eax
  shl    $0x2,%eax
  sub    %eax,%edi
  movzbl %dil,%edi
  movzbl 0x0(%r13,%rdi,1),%eax
  movzbl 0x14(%rbp),%edi
  and    $0xffffff91,%eax
  or     %eax,%esi
  mov    %edi,%eax
  mul    %dl
  and    $0x69,%esi
  or     %r8d,%esi
  movzbl 0xbe(%rbx),%r8d
  shr    $0xc,%ax
  mov    %r8d,%r9d
  lea    (%rax,%rax,4),%eax
  shl    $0x2,%eax
  sub    %eax,%edi
  mov    %r8d,%eax
  mul    %cl
  movzbl %dil,%edi
  movzbl 0x0(%r13,%rdi,1),%edi
  shr    $0x8,%ax
  add    %edi,%edi
  mov    %eax,%r10d
  and    $0xffffff9f,%edi
  sub    %r10d,%r9d
  shr    %r9b
  lea    (%r9,%r10,1),%eax
  mov    $0x23,%r10d
  shr    $0x4,%al
  lea    (%rax,%rax,4),%r9d
  lea    (%rax,%r9,4),%eax
  sub    %eax,%r8d
  movzbl %r8b,%r8d
  movzbl (%r11,%r8,1),%eax
  and    $0x60,%eax
  or     %eax,%edi
  mov    $0xffffffd5,%eax
  and    %edi,%esi
  add    %sil,0x2(%r12)
  movzbl 0x64(%rbx),%esi
  movzbl 0x14(%rbp),%r8d
  mul    %sil
  mov    %eax,%edi
  mov    %esi,%eax
  shr    $0x8,%di
  sub    %edi,%eax
  shr    %al
  add    %edi,%eax
  mov    %r8d,%edi
  shr    $0x5,%al
  imul   %r10d,%eax
  sub    %eax,%esi
  mov    $0xffffffd5,%eax
  movzbl %sil,%esi
  movzbl (%r12,%rsi,1),%esi
  xor    0x48(%rbp),%sil
  mul    %r8b
  shr    $0x8,%ax
  sub    %eax,%edi
  shr    %dil
  add    %edi,%eax
  shr    $0x5,%al
  imul   %r10d,%eax
  sub    %eax,%r8d
  movzbl 0x61(%rbx),%eax
  movzbl %r8b,%r8d
  and    (%r12,%r8,1),%sil
  and    $0x22,%eax
  and    $0xffffffdd,%esi
  or     %eax,%esi
  sub    %sil,0xe(%r12)
  movb   $0x73,0x11(%r13)
  movzbl 0x11(%rbx),%esi
  mov    %esi,%eax
  mul    %cl
  mov    %eax,%ecx
  shr    $0x8,%cx
  mov    %ecx,%edi
  mov    %esi,%ecx
  sub    %edi,%ecx
  mov    %ecx,%eax
  shr    %al
  add    %edi,%eax
  shr    $0x4,%al
  lea    (%rax,%rax,4),%edi
  lea    (%rax,%rdi,4),%eax
  sub    %eax,%esi
  movzbl %sil,%esi
  movzbl (%r11,%rsi,1),%edi
  movzbl 0x14(%rbp),%esi
  mov    %esi,%eax
  mov    %edi,%ecx
  mul    %dl
  shr    $0xc,%ax
  lea    (%rax,%rax,4),%eax
  shl    $0x2,%eax
  sub    %eax,%esi
  movzbl %sil,%esi
  movzbl 0x0(%r13,%rsi,1),%eax
  movzbl 0x48(%rbp),%esi
  or     %eax,%ecx
  and    %edi,%eax
  and    %ecx,%esi
  mov    %esi,%ecx
  or     %eax,%ecx
  mov    $0xffffffab,%eax
  mulb   0x32(%rbx)
  mov    %ecx,%edi
  mov    %eax,%ecx
  shr    $0x9,%cx
  mov    %ecx,%esi
  mov    %edi,%ecx
  or     %esi,%ecx
  mov    %ecx,%eax
  and    $0xfffffff6,%eax
  and    %esi,%edi
  or     %edi,%eax
  add    %eax,%eax
  xor    %al,0x17(%rbx)
  movzbl 0x28(%rbp),%esi
  movzbl 0x18(%rsp),%r9d
  or     0x20(%rsp),%r9b
  mov    %esi,%eax
  mul    %dl
  shr    $0xc,%ax
  lea    (%rax,%rax,4),%eax
  shl    $0x2,%eax
  sub    %eax,%esi
  movzbl %sil,%esi
  movzbl 0x0(%r13,%rsi,1),%edi
  movzbl 0x27(%rbx),%esi
  mov    %esi,%eax
  mul    %dl
  movzbl 0xa(%rbx),%edx
  or     %edi,%edx
  and    0xa(%rbx),%dil
  shr    $0xc,%ax
  lea    (%rax,%rax,4),%eax
  shl    $0x2,%eax
  sub    %eax,%esi
  movzbl %sil,%esi
  movzbl 0x0(%r13,%rsi,1),%eax
  mov    %edx,%esi
  and    $0x52,%esi
  or     %esi,%edi
  add    %eax,%eax
  and    $0x2e,%eax
  and    $0xd1,%edi
  or     %eax,%edi
  sar    %edi
  mov    %dil,0xd(%r13)
  movzbl 0x71(%rbx),%edx
  movzbl %r9b,%edi
  and    $0x9,%edx
  sub    %dl,0x21(%r12)
  movzbl 0x6e(%rbx),%eax
  movzbl 0x14(%rbp),%edx
  sar    %eax
  and    $0xffffffdf,%edx
  and    $0x20,%eax
  mov    %edx,%esi
  mov    0x10(%rsp),%edx
  or     %esi,%eax
  sub    %al,0x1c(%r12)
  xor    %eax,%eax
  and    $0x7,%edx
  mov    %edx,%esi
  call   <weird_rol8@plt>
  mov    0x30(%rsp),%edi
  mov    0x38(%rsp),%r11
  mov    $0xffffff87,%ecx
  mov    %eax,%r9d
  movzbl 0x10(%r12),%eax
  movzbl 0x17(%r12),%r10d
  and    $0xffffffee,%edi
  mov    %eax,%esi
  and    0x8(%rsp),%sil
  not    %eax
  and    0x2c(%rsp),%eax
  movzbl %sil,%esi
  or     %esi,%eax
  movzbl 0x21(%rbx),%esi
  and    $0x11,%esi
  or     %edi,%esi
  add    %esi,%eax
  imul   %r14,%rax
  movzbl 0x14(%rbp),%r14d
  shr    $0x22,%rax
  mov    %eax,%edx
  and    %r15d,%eax
  or     %r15d,%edx
  mov    $0x23,%r15d
  mov    %edx,%r8d
  movzbl 0x28(%rbp),%edx
  and    $0x93,%r8d
  or     %eax,%r8d
  movzbl 0x8(%rbp),%eax
  add    %r8d,%eax
  add    %r9d,%eax
  movzbl %al,%esi
  movzbl %al,%eax
  imul   $0x30c30c31,%rax,%rax
  sar    $0x22,%rax
  lea    (%rax,%rax,4),%edi
  lea    (%rax,%rdi,4),%eax
  movzbl 0xb8(%rbx),%edi
  sub    %eax,%esi
  movzbl (%r11,%rsi,1),%eax
  not    %edi
  or     %eax,%edx
  and    0x28(%rbp),%al
  and    %edx,%r10d
  mov    %r14d,%edx
  or     %eax,%r10d
  mov    %r14d,%eax
  mul    %cl
  shr    $0x8,%ax
  sub    %eax,%edx
  mov    %edx,%esi
  shr    %sil
  add    %eax,%esi
  shr    $0x4,%sil
  lea    (%rsi,%rsi,4),%eax
  lea    (%rsi,%rax,4),%esi
  mov    %edi,%eax
  sub    %esi,%r14d
  or     $0xffffffbd,%eax
  movzbl %r14b,%r14d
  movzbl (%r11,%r14,1),%esi
  sub    $0x30,%esi
  and    %esi,%eax
  and    $0xffffffbd,%edi
  or     %eax,%edi
  mov    %r10d,%eax
  imul   %r10d,%eax
  imul   %r10d,%eax
  and    %eax,%edi
  mov    %dil,0xf(%r13)
  movzbl 0xb7(%rbx),%eax
  add    %al,0x16(%r12)
  movzbl 0x1(%rbx),%esi
  mov    %esi,%eax
  mov    %esi,%edi
  mul    %cl
  shr    $0x8,%ax
  mov    %eax,%r10d
  sub    %r10d,%edi
  shr    %dil
  lea    (%rdi,%r10,1),%eax
  shr    $0x4,%al
  lea    (%rax,%rax,4),%edi
  lea    (%rax,%rdi,4),%eax
  sub    %eax,%esi
  movzbl %sil,%esi
  movzbl (%r11,%rsi,1),%eax
  lea    (%rax,%rax,2),%eax
  xor    0x0(%rbp),%al
  mov    %al,0x4c(%rbp)
  movzbl 0x8(%rbp),%eax
  add    %r8d,%eax
  add    %r9d,%eax
  movzbl %al,%esi
  movzbl %al,%eax
  imul   $0xffffffffea0ea0eb,%rax,%rax
  shr    $0x20,%rax
  add    %esi,%eax
  sar    $0x5,%eax
  imul   $0x23,%eax,%eax
  sub    %eax,%esi
  movzbl (%r12,%rsi,1),%edi
  movzbl 0xb2(%rbx),%esi
  mov    %esi,%eax
  mov    %esi,%edx
  mul    %cl
  shr    $0x8,%ax
  mov    %eax,%r14d
  sub    %r14d,%edx
  mov    %edx,%r10d
  mov    $0xffffffcd,%edx
  shr    %r10b
  lea    (%r10,%r14,1),%eax
  mov    $0xcccccccd,%r14d
  shr    $0x4,%al
  lea    (%rax,%rax,4),%r10d
  lea    (%rax,%r10,4),%eax
  sub    %eax,%esi
  mov    %ecx,%eax
  movzbl %sil,%esi
  movzbl (%r11,%rsi,1),%r10d
  movzbl 0x1a(%rbx),%esi
  mul    %sil
  mov    %eax,%ecx
  mov    %esi,%eax
  shr    $0x8,%cx
  sub    %ecx,%eax
  shr    %al
  add    %ecx,%eax
  shr    $0x4,%al
  lea    (%rax,%rax,4),%ecx
  lea    (%rax,%rcx,4),%eax
  movzbl 0xd(%rbx),%ecx
  sub    %eax,%esi
  mov    %ecx,%eax
  movzbl %sil,%esi
  mul    %dl
  movzbl (%r11,%rsi,1),%esi
  shr    %sil
  shr    $0xc,%ax
  movzbl %sil,%esi
  lea    (%rax,%rax,4),%eax
  shl    $0x2,%eax
  sub    %eax,%ecx
  mov    %edi,%eax
  and    %r10d,%edi
  movzbl %cl,%ecx
  or     %r10d,%eax
  movzbl 0x0(%r13,%rcx,1),%ecx
  and    $0xffffffd1,%eax
  or     %edi,%eax
  imul   %esi,%ecx
  movzbl %al,%eax
  imul   %ecx,%eax
  imul   $0xc6,%eax,%ecx
  imul   $0x18c,%eax,%eax
  add    $0x237ffaeb,%ecx
  and    $0xd4,%eax
  sub    %eax,%ecx
  mov    %ecx,%eax
  add    %ecx,%ecx
  xor    $0xffffff94,%eax
  xor    $0xffffffd6,%ecx
  add    0x24(%rbp),%al
  lea    -0x7f(%rax,%rcx,1),%ecx
  mov    $0xffffffd5,%eax
  mov    %cl,0x50(%rbp)
  movzbl 0x40(%rbp),%edi
  mul    %dil
  mov    %edi,%esi
  shr    $0x8,%ax
  sub    %eax,%esi
  shr    %sil
  add    %esi,%eax
  movzbl 0x14(%rbp),%esi
  shr    $0x5,%al
  imul   %r15d,%eax
  mov    %esi,%r10d
  sub    %eax,%edi
  mov    $0xffffffd5,%eax
  movzbl %dil,%edi
  movzbl (%r12,%rdi,1),%edi
  and    $0xfffffff5,%edi
  mul    %sil
  shr    $0x8,%ax
  sub    %eax,%r10d
  shr    %r10b
  add    %r10d,%eax
  shr    $0x5,%al
  imul   %r15d,%eax
  mov    $0xffffff87,%r15d
  sub    %eax,%esi
  movzbl %sil,%esi
  movzbl (%r12,%rsi,1),%eax
  movzbl 0x44(%rbp),%esi
  and    $0xa,%eax
  or     %eax,%edi
  mov    %edx,%eax
  mul    %sil
  mov    %dil,0x54(%rbp)
  shr    $0xc,%ax
  lea    (%rax,%rax,4),%eax
  shl    $0x2,%eax
  sub    %eax,%esi
  movzbl %sil,%esi
  movzbl 0x0(%r13,%rsi,1),%esi
  or     $0x51,%esi
  mov    %esi,%eax
  imul   %esi,%eax
  imul   %esi,%eax
  mov    $0xffffff89,%esi
  mov    %eax,%edx
  mov    %ecx,%eax
  mul    %sil
  shr    $0xb,%ax
  xor    %edx,%eax
  and    0xf(%r13),%al
  xor    %edx,%eax
  sub    %al,0x12(%r12)
  movzbl 0x8(%rbp),%eax
  mov    %eax,%edx
  add    %r8d,%eax
  add    %r9d,%eax
  movzbl %al,%ecx
  mov    %rcx,%rax
  imul   %r14,%rcx
  mov    $0xffffffcd,%r14d
  shr    $0x24,%rcx
  lea    (%rcx,%rcx,4),%ecx
  shl    $0x2,%ecx
  sub    %ecx,%eax
  movzbl 0x0(%r13,%rax,1),%ecx
  mov    %ecx,%eax
  mov    %ecx,%r10d
  mul    %r15b
  shr    $0x8,%ax
  mov    %eax,%edi
  sub    %edi,%r10d
  mov    %r10d,%esi
  shr    %sil
  lea    (%rsi,%rdi,1),%eax
  shr    $0x4,%al
  lea    (%rax,%rax,4),%esi
  lea    (%rax,%rsi,4),%eax
  movzbl 0xa0(%rbx),%esi
  sub    %eax,%ecx
  mov    $0xffffffab,%eax
  movzbl %cl,%ecx
  mulb   (%r11,%rcx,1)
  shr    $0x9,%ax
  mov    %eax,%ecx
  mov    %esi,%eax
  mul    %r14b
  shr    $0xc,%ax
  lea    (%rax,%rax,4),%eax
  shl    $0x2,%eax
  sub    %eax,%esi
  movzbl %sil,%esi
  sub    0x0(%r13,%rsi,1),%dl
  add    %r8d,%edx
  movzbl 0x2b(%rsp),%r8d
  xor    0x48(%rbp),%r8b
  add    %r9d,%edx
  add    %edx,%ecx
  mov    %cl,0x58(%rbp)
  movzbl 0x45(%rbx),%ecx
  mov    %ecx,%eax
  mul    %r15b
  shr    $0x8,%ax
  mov    %eax,%esi
  mov    %ecx,%eax
  sub    %esi,%eax
  mov    %eax,%edx
  shr    %dl
  lea    (%rdx,%rsi,1),%eax
  mov    0x34(%rsp),%esi
  shr    $0x4,%al
  imul   %esi,%esi
  lea    (%rax,%rax,4),%edx
  lea    (%rax,%rdx,4),%eax
  sub    %eax,%ecx
  mov    %r8d,%eax
  movzbl %cl,%ecx
  and    $0xc6,%esi
  and    $0x39,%eax
  movzbl (%r11,%rcx,1),%edx
  movzbl 0xc(%rbp),%ecx
  or     %esi,%eax
  add    $0x4d,%ecx
  sub    %eax,%ecx
  movzbl 0xac(%rbx),%eax
  or     %edx,%eax
  and    0xac(%rbx),%dl
  and    %ecx,%eax
  or     %edx,%eax
  and    $0xfffffffa,%eax
  mov    %eax,%edx
  or     $0x1,%edx
  and    0x48(%rbp),%dl
  or     0x48(%rbp),%al
  and    $0xffffffc6,%eax
  or     %edx,%eax
  mov    $0xffffff93,%edx
  sub    %eax,%edx
  mov    %dl,0x10(%r13)
  movzbl 0xa8(%rbx),%ecx
  mov    %ecx,%eax
  mul    %r15b
  shr    $0x8,%ax
  mov    %eax,%esi
  mov    %ecx,%eax
  sub    %esi,%eax
  shr    %al
  mov    %eax,%edx
  lea    (%rdx,%rsi,1),%eax
  shr    $0x4,%al
  lea    (%rax,%rax,4),%edx
  lea    (%rax,%rdx,4),%edx
  mov    %ecx,%eax
  movzbl 0x1d(%rbx),%ecx
  sub    %edx,%eax
  movzbl %al,%eax
  movzbl (%r11,%rax,1),%r8d
  mov    %ecx,%eax
  mul    %r14b
  shr    $0xc,%ax
  lea    (%rax,%rax,4),%eax
  lea    0x0(,%rax,4),%edx
  sub    %edx,%ecx
  movzbl %cl,%ecx
  movzbl 0x0(%r13,%rcx,1),%r9d
  movzbl 0x9b(%rbx),%ecx
  mov    %ecx,%eax
  mul    %r15b
  shr    $0x8,%ax
  mov    %eax,%esi
  mov    %ecx,%eax
  sub    %esi,%eax
  shr    %al
  mov    %eax,%edx
  lea    (%rdx,%rsi,1),%eax
  mov    %r8d,%esi
  or     %r9d,%r8d
  shr    $0x4,%al
  and    %r9d,%esi
  and    $0x6,%r8d
  lea    (%rax,%rax,4),%edx
  and    $0x7,%esi
  lea    (%rax,%rdx,4),%eax
  or     %r8d,%esi
  sub    %eax,%ecx
  movzbl %sil,%esi
  movzbl %cl,%ecx
  movzbl (%r11,%rcx,1),%eax
  movzbl 0x69(%rbx),%edx
  mov    %r11,0x8(%rsp)
  or     %eax,%edx
  and    0x69(%rbx),%al
  mov    %edx,%edi
  and    $0xffffff8d,%edi
  or     %eax,%edi
  xor    %eax,%eax
  movzbl %dil,%edi
  call   <weird_rol32@plt>
  mov    0x8(%rsp),%r11
  movzbl 0xc(%r13),%edi
  mov    %eax,%edx
  cltq
  imul   $0x30c30c31,%rax,%rax
  mov    %edx,%ecx
  sar    $0x22,%rax
  sar    $0x1f,%ecx
  sub    %ecx,%eax
  lea    (%rax,%rax,4),%ecx
  lea    (%rax,%rcx,4),%ecx
  mov    %edx,%eax
  sub    %ecx,%eax
  cltq
  movzbl (%r11,%rax,1),%eax
  sub    %al,0x3(%r13)
  movzbl 0x3d(%rbx),%ecx
  mov    %ecx,%eax
  mul    %r14b
  shr    $0xc,%ax
  lea    (%rax,%rax,4),%eax
  lea    0x0(,%rax,4),%edx
  mov    %r14d,%eax
  sub    %edx,%ecx
  movzbl %cl,%ecx
  mulb   0x0(%r13,%rcx,1)
  mov    %eax,%esi
  xor    %eax,%eax
  shr    $0xa,%si
  and    $0x7,%esi
  call   <weird_ror8@plt>
  movzbl 0x54(%rbp),%edx
  mov    $0xffffffd5,%r8d
  mov    $0x23,%r9d
  mov    %eax,%r10d
  mov    $0xcccccccd,%edi
  mov    %edx,%eax
  mul    %r8b
  shr    $0x8,%ax
  mov    %eax,%esi
  mov    %edx,%eax
  sub    %esi,%eax
  shr    %al
  mov    %eax,%ecx
  lea    (%rcx,%rsi,1),%eax
  shr    $0x5,%al
  imul   %r9d,%eax
  sub    %eax,%edx
  movzbl %dl,%edx
  movzbl (%r12,%rdx,1),%eax
  not    %eax
  imul   %rdi,%rax
  shr    $0x22,%rax
  xor    %r10d,%eax
  mov    %al,0x5(%rbx)
  movzbl 0x3(%rbx),%eax
  add    %al,0xc6(%rbx)
  movzbl 0x40(%rbp),%edx
  mov    %edx,%eax
  mul    %r8b
  shr    $0x8,%ax
  mov    %eax,%esi
  mov    %edx,%eax
  sub    %esi,%eax
  shr    %al
  mov    %eax,%ecx
  lea    (%rcx,%rsi,1),%eax
  shr    $0x5,%al
  imul   %r9d,%eax
  sub    %eax,%edx
  movzbl %dl,%edx
  movzbl (%r12,%rdx,1),%eax
  or     $0xffffffa2,%eax
  movzbl %al,%eax
  imul   %eax,%eax
  imul   %rdi,%rax
  mov    $0x8b,%edi
  shr    $0x22,%rax
  add    %al,0xa4(%rbx)
  movzbl 0x50(%rbp),%esi
  xor    %eax,%eax
  and    $0x7,%esi
  call   <weird_ror8@plt>
  movzbl 0x40(%rbp),%edx
  mov    0x8(%rsp),%r11
  mov    %eax,%ecx
  mov    %edx,%eax
  mul    %r15b
  shr    $0x8,%ax
  mov    %eax,%edi
  mov    %edx,%eax
  sub    %edi,%eax
  shr    %al
  mov    %eax,%esi
  lea    (%rsi,%rdi,1),%eax
  movzbl 0x28(%rbp),%edi
  shr    $0x4,%al
  lea    (%rax,%rax,4),%esi
  lea    (%rax,%rsi,4),%eax
  sub    %eax,%edx
  movzbl %dl,%edx
  movzbl (%r11,%rdx,1),%esi
  movzbl 0x14(%rbp),%edx
  mov    %edx,%eax
  mov    %esi,%r10d
  mul    %r14b
  imul   %esi,%r10d
  shr    $0xc,%ax
  imul   %r10d,%esi
  lea    (%rax,%rax,4),%eax
  shl    $0x2,%eax
  sub    %eax,%edx
  mov    %edi,%eax
  mul    %r14b
  movzbl %dl,%edx
  and    $0x5f,%esi
  movzbl 0x0(%r13,%rdx,1),%edx
  shr    $0xc,%ax
  lea    (%rax,%rax,4),%eax
  shl    $0x2,%eax
  sub    %eax,%edi
  movzbl %dil,%edi
  movzbl 0x0(%r13,%rdi,1),%eax
  and    $0xffffffa0,%eax
  or     %eax,%esi
  mov    %edx,%eax
  or     %ecx,%edx
  and    %ecx,%eax
  and    $0xc,%edx
  or     %esi,%eax
  or     %eax,%edx
  mov    %dl,0x5c(%rbp)
  movzbl 0x67(%rbx),%ecx
  mov    %ecx,%eax
  or     $0x3c,%eax
  and    %edx,%eax
  and    $0x20,%ecx
  mov    $0xaaaaaaab,%edx
  or     %ecx,%eax
  or     $0x10,%eax
  movzbl %al,%eax
  imul   %rdx,%rax
  shr    $0x21,%rax
  add    %al,0xc(%r12)
  movzbl 0x40(%rbp),%r8d
  movzbl 0x8f(%rbx),%r9d
  movzbl 0x28(%rbp),%ecx
  movb   $0x1b,0x64(%rbp)
  mov    %r9b,0x60(%rbp)
  movzbl 0x8(%r12),%edx
  mov    %ecx,0x8(%rsp)
  mov    %edx,%eax
  and    0x23(%rbx),%dl
  not    %eax
  and    0x28(%rbp),%al
  or     %edx,%eax
  and    %r8d,%eax
  xor    $0x77,%eax
  mov    %al,0x68(%rbp)
  movzbl 0x8(%r12),%eax
  mov    %eax,%edx
  not    %eax
  and    0x23(%rbx),%dl
  and    %ecx,%eax
  movzbl %dl,%edx
  or     %edx,%eax
  and    %r8d,%eax
  add    %eax,%eax
  and    $0xffffffee,%eax
  mov    %al,0x6c(%rbp)
  mov    $0xffffffab,%eax
  mulb   0x54(%rbp)
  mov    %eax,%edx
  mov    %r8d,%eax
  shr    $0x9,%dx
  not    %eax
  and    %edx,%eax
  movzbl %dl,%edx
  mov    %eax,%ecx
  xor    $0x31,%eax
  mov    %al,0x70(%rbp)
  mov    %r8d,%eax
  not    %eax
  and    %edx,%eax
  lea    (%rax,%rax,1),%edx
  and    $0x62,%edx
  mov    %dl,0x74(%rbp)
  movzbl 0x8(%r12),%edx
  movzbl 0x8(%r12),%r10d
  and    0x23(%rbx),%r10b
  not    %edx
  and    0x28(%rbp),%dl
  movzbl 0xac(%rbx),%esi
  or     %r10d,%edx
  movzbl %r10b,%r10d
  and    %r8d,%edx
  sar    %esi
  or     %ecx,%edx
  movzbl 0x8(%r12),%ecx
  and    $0x20,%esi
  and    $0x1b,%edx
  or     $0x12,%edx
  not    %ecx
  and    0x8(%rsp),%ecx
  add    $0x56,%esi
  or     %r10d,%ecx
  mov    %r11,0x8(%rsp)
  and    %r8d,%ecx
  mov    $0xffffffd5,%r8d
  or     %eax,%ecx
  mov    %r9d,%eax
  mov    $0x23,%r9d
  and    %ecx,%esi
  or     %esi,%edx
  sub    %edx,%eax
  mov    %al,0x8f(%rbx)
  movb   $0xa2,0x1d(%r12)
  movzbl 0x95(%rbx),%edx
  movzbl 0x2b(%rbx),%esi
  mov    %edx,%eax
  mul    %r8b
  imul   %esi,%esi
  shr    $0x8,%ax
  mov    %eax,%edi
  mov    %edx,%eax
  sub    %edi,%eax
  shr    %al
  mov    %eax,%ecx
  lea    (%rcx,%rdi,1),%eax
  shr    $0x5,%al
  imul   %r9d,%eax
  sub    %eax,%edx
  movzbl %dl,%edx
  movzbl (%r12,%rdx,1),%ecx
  movzbl 0x58(%rbp),%edx
  mov    %edx,%eax
  xor    %esi,%ecx
  mul    %r15b
  shr    $0x8,%ax
  mov    %eax,%edi
  mov    %edx,%eax
  sub    %edi,%eax
  shr    %al
  mov    %eax,%esi
  lea    (%rsi,%rdi,1),%eax
  shr    $0x4,%al
  lea    (%rax,%rax,4),%esi
  lea    (%rax,%rsi,4),%eax
  movzbl 0x7d(%rbx),%esi
  sub    %eax,%edx
  mov    %esi,%eax
  movzbl %dl,%edx
  mul    %r14b
  movzbl (%r11,%rdx,1),%edx
  and    $0xffffffa0,%edx
  shr    $0xc,%ax
  lea    (%rax,%rax,4),%eax
  shl    $0x2,%eax
  sub    %eax,%esi
  movzbl %sil,%esi
  movzbl 0x0(%r13,%rsi,1),%eax
  and    $0x5f,%eax
  or     %eax,%edx
  movzbl %dl,%eax
  sar    %eax
  mov    %eax,%edx
  or     %ecx,%edx
  and    %ecx,%eax
  and    $0x73,%edx
  or     %edx,%eax
  add    %al,0xf(%r13)
  movzbl 0x28(%rbp),%ecx
  mov    %ecx,%eax
  mul    %r14b
  shr    $0xc,%ax
  lea    (%rax,%rax,4),%eax
  lea    0x0(,%rax,4),%edx
  movzbl 0x40(%rbp),%eax
  sub    %edx,%ecx
  movzbl %cl,%ecx
  sub    0x0(%r13,%rcx,1),%al
  movzbl 0x14(%rbp),%ecx
  mov    %al,0x78(%rbp)
  mov    %ecx,%eax
  mul    %r15b
  shr    $0x8,%ax
  mov    %eax,%esi
  mov    %ecx,%eax
  sub    %esi,%eax
  shr    %al
  mov    %eax,%edx
  lea    (%rdx,%rsi,1),%eax
  shr    $0x4,%al
  lea    (%rax,%rax,4),%edx
  lea    (%rax,%rdx,4),%eax
  movzbl 0x11(%rbx),%edx
  sub    %eax,%ecx
  movzbl %cl,%ecx
  movzbl (%r11,%rcx,1),%eax
  mov    %al,0x5f(%rbx)
  mov    %edx,%eax
  mul    %r8b
  shr    $0x8,%ax
  mov    %eax,%esi
  mov    %edx,%eax
  sub    %esi,%eax
  shr    %al
  mov    %eax,%ecx
  lea    (%rcx,%rsi,1),%eax
  shr    $0x5,%al
  imul   %r9d,%eax
  sub    %eax,%edx
  movzbl %dl,%edx
  movzbl (%r12,%rdx,1),%eax
  movzbl 0x50(%rbp),%edx
  mov    %eax,%esi
  imul   %eax,%esi
  imul   %eax,%esi
  mov    %edx,%eax
  mul    %r8b
  and    $0x7,%esi
  shr    $0x8,%ax
  mov    %eax,%edi
  mov    %edx,%eax
  sub    %edi,%eax
  shr    %al
  mov    %eax,%ecx
  lea    (%rcx,%rdi,1),%eax
  shr    $0x5,%al
  imul   %r9d,%eax
  sub    %eax,%edx
  xor    %eax,%eax
  movzbl %dl,%edx
  movzbl (%r12,%rdx,1),%edi
  call   <weird_ror8@plt>
  mov    0x8(%rsp),%r11
  mov    $0xffffffd5,%r8d
  mov    $0x23,%r9d
  imul   %eax,%eax
  sub    %al,0x7(%r13)
  movzbl 0xca(%rbx),%ecx
  mov    %ecx,%eax
  mul    %r15b
  shr    $0x8,%ax
  mov    %eax,%esi
  mov    %ecx,%eax
  sub    %esi,%eax
  shr    %al
  mov    %eax,%edx
  lea    (%rdx,%rsi,1),%eax
  shr    $0x4,%al
  lea    (%rax,%rax,4),%edx
  lea    (%rax,%rdx,4),%eax
  movzbl 0x8(%r12),%edx
  sub    0xb8(%rbx),%dl
  sub    %eax,%ecx
  movzbl %cl,%ecx
  movzbl (%r11,%rcx,1),%ecx
  mov    %ecx,%eax
  imul   %ecx,%eax
  imul   %ecx,%eax
  add    %edx,%eax
  mov    %al,0x8(%r12)
  movzbl 0x66(%rbx),%edx
  mov    %edx,%eax
  mul    %r8b
  shr    $0x8,%ax
  mov    %eax,%esi
  mov    %edx,%eax
  sub    %esi,%eax
  shr    %al
  mov    %eax,%ecx
  lea    (%rcx,%rsi,1),%eax
  shr    $0x5,%al
  imul   %r9d,%eax
  sub    %eax,%edx
  movzbl %dl,%edx
  movzbl (%r12,%rdx,1),%eax
  add    %eax,%eax
  and    $0xffffff84,%eax
  mov    %al,0x10(%r13)
  movzbl 0x28(%rbp),%ecx
  mov    %ecx,%eax
  mul    %r15b
  shr    $0x8,%ax
  mov    %eax,%esi
  mov    %ecx,%eax
  sub    %esi,%eax
  shr    %al
  mov    %eax,%edx
  lea    (%rdx,%rsi,1),%eax
  shr    $0x4,%al
  lea    (%rax,%rax,4),%edx
  lea    (%rax,%rdx,4),%eax
  sub    %eax,%ecx
  movzbl %cl,%ecx
  movzbl (%r11,%rcx,1),%eax
  movzbl 0x58(%rbp),%ecx
  shr    %al
  xor    0x44(%rbp),%al
  mov    %al,0x7c(%rbp)
  mov    %ecx,%eax
  mul    %r15b
  shr    $0x8,%ax
  mov    %eax,%esi
  mov    %ecx,%eax
  sub    %esi,%eax
  shr    %al
  mov    %eax,%edx
  lea    (%rdx,%rsi,1),%eax
  shr    $0x4,%al
  lea    (%rax,%rax,4),%edx
  lea    (%rax,%rdx,4),%eax
  sub    %eax,%ecx
  movzbl %cl,%ecx
  movzbl (%r11,%rcx,1),%ecx
  mov    %ecx,%eax
  mul    %r15b
  shr    $0x8,%ax
  mov    %eax,%esi
  mov    %ecx,%eax
  sub    %esi,%eax
  shr    %al
  mov    %eax,%edx
  lea    (%rdx,%rsi,1),%eax
  shr    $0x4,%al
  lea    (%rax,%rax,4),%edx
  lea    (%rax,%rdx,4),%eax
  movzbl 0x50(%rbx),%edx
  sub    %eax,%ecx
  mov    %edx,%eax
  movzbl %cl,%ecx
  mul    %r15b
  movzbl (%r11,%rcx,1),%ecx
  and    $0xffffffb1,%ecx
  shr    $0x8,%ax
  mov    %eax,%edi
  mov    %edx,%eax
  sub    %edi,%eax
  shr    %al
  mov    %eax,%esi
  lea    (%rsi,%rdi,1),%eax
  shr    $0x4,%al
  lea    (%rax,%rax,4),%esi
  lea    (%rax,%rsi,4),%eax
  movzbl 0xbf(%rbx),%esi
  sub    %eax,%edx
  mov    %esi,%eax
  movzbl %dl,%edx
  mul    %r14b
  movzbl (%r11,%rdx,1),%edx
  add    %edx,%edx
  shr    $0xc,%ax
  and    $0x4e,%edx
  lea    (%rax,%rax,4),%eax
  or     %ecx,%edx
  add    0x7(%r13),%dl
  lea    0x0(,%rax,4),%ecx
  sub    %ecx,%esi
  movzbl %sil,%esi
  sub    0x0(%r13,%rsi,1),%dl
  mov    %dl,0x7(%r13)
  movzbl 0x77(%rbx),%ecx
  mov    %ecx,%eax
  mul    %r14b
  shr    $0xc,%ax
  lea    (%rax,%rax,4),%eax
  lea    0x0(,%rax,4),%edx
  sub    %edx,%ecx
  movzbl %cl,%ecx
  movzbl 0x0(%r13,%rcx,1),%eax
  mov    %al,0x6(%r13)
  movzbl 0x78(%rbp),%ecx
  mov    %ecx,%eax
  mul    %r14b
  shr    $0xc,%ax
  lea    (%rax,%rax,4),%eax
  lea    0x0(,%rax,4),%edx
  sub    %edx,%ecx
  movzbl 0xbe(%rbx),%edx
  movzbl %cl,%ecx
  mov    %edx,%eax
  movzbl 0x0(%r13,%rcx,1),%ecx
  mul    %r15b
  imul   %ecx,%ecx
  shr    $0x8,%ax
  mov    %eax,%edi
  mov    %edx,%eax
  sub    %edi,%eax
  shr    %al
  mov    %eax,%esi
  lea    (%rsi,%rdi,1),%eax
  shr    $0x4,%al
  lea    (%rax,%rax,4),%esi
  lea    (%rax,%rsi,4),%eax
  sub    %eax,%edx
  movzbl 0x76(%rbx),%eax
  movzbl %dl,%edx
  movzbl (%r11,%rdx,1),%r10d
  movzbl 0x47(%rbx),%esi
  and    $0xd1,%eax
  movzbl 0xf(%rbx),%edi
  and    $0x2e,%r10b
  or     %eax,%r10d
  mov    %esi,%eax
  mul    %r8b
  shr    $0x8,%ax
  mov    %eax,%edx
  mov    %esi,%eax
  sub    %edx,%eax
  shr    %al
  add    %edx,%eax
  mov    %edi,%edx
  shr    $0x5,%al
  imul   %r9d,%eax
  sub    %eax,%esi
  mov    %edi,%eax
  mul    %r8b
  movzbl %sil,%esi
  shr    $0x8,%ax
  sub    %eax,%edx
  shr    %dl
  add    %edx,%eax
  shr    $0x5,%al
  imul   %r9d,%eax
  sub    %eax,%edi
  movzbl %dil,%edi
  movzbl (%r12,%rdi,1),%edx
  add    (%r12,%rsi,1),%dl
  movzbl 0x54(%rbp),%esi
  mov    %esi,%eax
  mul    %r14b
  shr    $0xc,%ax
  lea    (%rax,%rax,4),%eax
  shl    $0x2,%eax
  sub    %eax,%esi
  mov    %ecx,%eax
  movzbl %sil,%esi
  xor    0x0(%r13,%rsi,1),%dl
  or     %r10d,%eax
  and    %r10d,%ecx
  and    $0x1b,%eax
  or     %eax,%ecx
  mov    %r8d,%eax
  and    %ecx,%edx
  mov    %dl,0xc(%r13)
  movzbl 0x58(%rbp),%edx
  movzbl 0x52(%rbx),%esi
  mul    %dl
  mov    %edx,%ecx
  shr    $0x8,%ax
  sub    %eax,%ecx
  shr    %cl
  add    %ecx,%eax
  shr    $0x5,%al
  imul   %r9d,%eax
  sub    %eax,%edx
  movzbl %dl,%edx
  movzbl (%r12,%rdx,1),%edi
  movzbl 0x7c(%rbp),%edx
  mov    %edx,%eax
  mul    %r15b
  shr    $0x8,%ax
  mov    %eax,%r8d
  mov    %edx,%eax
  sub    %r8d,%eax
  shr    %al
  mov    %eax,%ecx
  lea    (%rcx,%r8,1),%eax
  shr    $0x4,%al
  lea    (%rax,%rax,4),%ecx
  lea    (%rax,%rcx,4),%eax
  movzbl 0x39(%rbx),%ecx
  sub    %eax,%edx
  mov    %r15d,%eax
  mul    %cl
  mov    %ecx,%r8d
  movzbl %dl,%edx
  add    %r11,%rdx
  shr    $0x8,%ax
  sub    %eax,%r8d
  shr    %r8b
  add    %r8d,%eax
  shr    $0x4,%al
  lea    (%rax,%rax,4),%r8d
  lea    (%rax,%r8,4),%eax
  movzbl 0x28(%rbp),%r8d
  sub    %eax,%ecx
  movzbl 0x20(%rbx),%eax
  movzbl %cl,%ecx
  movzbl (%r11,%rcx,1),%ecx
  or     %edi,%eax
  and    0x20(%rbx),%dil
  and    $0x17,%eax
  imul   $0xe7,%ecx,%ecx
  and    $0xa9,%ecx
  or     %edi,%eax
  mov    $0xcccccccd,%edi
  and    $0x56,%eax
  or     %eax,%ecx
  mov    %r8d,%eax
  mul    %r14b
  imul   %rdi,%rcx
  shr    $0xc,%ax
  lea    (%rax,%rax,4),%eax
  shr    $0x22,%rcx
  lea    0x0(,%rax,4),%edi
  mov    %esi,%eax
  mul    %r14b
  sub    %edi,%r8d
  mov    %esi,%edi
  movzbl %r8b,%r8d
  movzbl 0x0(%r13,%r8,1),%r8d
  shr    $0xc,%ax
  lea    (%rax,%rax,4),%eax
  shl    $0x2,%eax
  sub    %eax,%edi
  movzbl %dil,%eax
  movzbl 0x0(%r13,%rax,1),%edi
  movzbl (%rdx),%eax
  and    $0xffffffe2,%edi
  and    $0x1d,%eax
  or     %eax,%edi
  movslq %ecx,%rax
  imul   $0x30c30c31,%rax,%rax
  and    $0xbe,%edi
  shr    $0x22,%rax
  lea    (%rax,%rax,4),%r9d
  lea    (%rax,%r9,4),%r9d
  mov    %ecx,%eax
  sub    %r9d,%eax
  movzbl (%r11,%rax,1),%eax
  and    $0x41,%al
  or     %eax,%edi
  mov    %r8d,%eax
  imul   %r8d,%eax
  imul   %r8d,%eax
  mov    %esi,%r8d
  and    $0x5c,%esi
  or     $0x5c,%r8d
  movzbl %r8b,%r8d
  and    %r8d,%eax
  or     %esi,%eax
  mov    %eax,%esi
  and    %edi,%eax
  or     %edi,%esi
  movzbl 0x4c(%rbp),%edi
  and    $0xffffffc0,%esi
  or     %esi,%eax
  xor    %ecx,%eax
  movzbl 0x78(%rbp),%ecx
  mov    %al,0x80(%rbp)
  mov    %r14d,%eax
  movzbl (%rdx),%esi
  mul    %cl
  and    $0x7,%esi
  shr    $0xc,%ax
  lea    (%rax,%rax,4),%eax
  lea    0x0(,%rax,4),%r14d
  sub    %r14d,%ecx
  movzbl %cl,%ecx
  movzbl 0x0(%r13,%rcx,1),%eax
  movzbl 0x5(%rbx),%ecx
  add    %eax,%eax
  imul   %ecx,%eax
  mov    %eax,%ebx
  xor    %eax,%eax
  call   <weird_rol8@plt>
  mov    %eax,%r8d
  movzbl 0x14(%rbp),%eax
  add    $0x6e,%eax
  and    %r8d,%eax
  sub    %eax,%ebx
  xor    %bl,0x19(%r12)
  add    $0x48,%rsp
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  pop    %r15
  ret
```

assistant: ```c
void garble(unsigned char *buffer0, unsigned char *buffer1, unsigned char *buffer2, unsigned char *buffer3, unsigned char *buffer4) {
  unsigned int tmp, tmp2, tmp3;
  unsigned int A, B, C, D, E, M, J, G, F, H, K, R, S, T, U, V, W, X, Y, Z;
  buffer2[12] = 0x14 + (((buffer1[64] & 92) | ((buffer1[99] / 3) & 35)) & buffer4[rol8x(buffer4[(buffer1[206] % 21)], 4) % 21]);
  (void)0;
  ;
  buffer1[4] = (buffer1[99] / 5) * (buffer1[99] / 5) * 2;
  (void)0;
  ;
  buffer2[34] = 0xb8;
  (void)0;
  ;
  buffer1[153] ^= (buffer2[buffer1[203] % 35] * buffer2[buffer1[203] % 35] * buffer1[190]);
  (void)0;
  ;
  buffer0[3] -= (((buffer4[buffer1[205] % 21] >> 1) & 80) | 0xe6440);
  (void)0;
  ;
  buffer0[16] = 0x93;
  (void)0;
  ;
  buffer0[13] = 0x62;
  (void)0;
  ;
  buffer1[33] -= (buffer4[buffer1[36] % 21] & 0xf6);
  (void)0;
  ;
  tmp2 = buffer2[buffer1[67] % 35];
  buffer2[12] = 0x07;
  (void)0;
  ;
  tmp = buffer0[buffer1[181] % 20];
  buffer1[2] -= 3136;
  (void)0;
  ;
  buffer0[19] = buffer4[buffer1[58] % 21];
  (void)0;
  ;
  buffer3[0] = 92 - buffer2[buffer1[32] % 35];
  (void)0;
  ;
  buffer3[4] = buffer2[buffer1[15] % 35] + 0x9e;
  (void)0;
  ;
  buffer1[34] += (buffer4[((buffer2[buffer1[15] % 35] + 0x9e) & 0xff) % 21] / 5);
  (void)0;
  ;
  buffer0[19] += 0xfffffee6 - ((buffer0[buffer3[4] % 20] >> 1) & 102);
  (void)0;
  ;
  buffer1[15] = (3 * (((buffer1[72] >> (buffer4[buffer1[190] % 21] & 7)) ^ (buffer1[72] << ((7 - (buffer4[buffer1[190] % 21] - 1) & 7)))) - (3 * buffer4[buffer1[126] % 21]))) ^ buffer1[15];
  (void)0;
  ;
  buffer0[15] ^= buffer2[buffer1[181] % 35] * buffer2[buffer1[181] % 35] * buffer2[buffer1[181] % 35];
  (void)0;
  ;
  buffer2[4] ^= buffer1[202] / 3;
  (void)0;
  ;
  A = 92 - buffer0[buffer3[0] % 20];
  E = (A & 0xc6) | (~buffer1[105] & 0xc6) | (A & (~buffer1[105]));
  buffer2[1] += (E * E * E);
  (void)0;
  ;
  buffer0[19] ^= ((224 | (buffer4[buffer1[92] % 21] & 27)) * buffer2[buffer1[41] % 35]) / 3;
  (void)0;
  ;
  buffer1[140] += weird_ror8(92, buffer1[5] & 7);
  (void)0;
  ;
  buffer2[12] += ((((~buffer1[4]) ^ buffer2[buffer1[12] % 35]) | buffer1[182]) & 192) | (((~buffer1[4]) ^ buffer2[buffer1[12] % 35]) & buffer1[182]);
  (void)0;
  ;
  buffer1[36] += 125;
  (void)0;
  ;
  buffer1[124] = rol8x((((74 & buffer1[138]) | ((74 | buffer1[138]) & buffer0[15])) & buffer0[buffer1[43] % 20]) | (((74 & buffer1[138]) | ((74 | buffer1[138]) & buffer0[15]) | buffer0[buffer1[43] % 20]) & 95), 4);
  (void)0;
  ;
  buffer3[8] = ((((buffer0[buffer3[4] % 20] & 95)) & ((buffer4[buffer1[68] % 21] & 46) << 1)) | 16) ^ 92;
  (void)0;
  ;
  A = buffer1[177] + buffer4[buffer1[79] % 21];
  D = (((A >> 1) | ((3 * buffer1[148]) / 5)) & buffer2[1]) | ((A >> 1) & ((3 * buffer1[148]) / 5));
  buffer3[12] = ((-34 - D));
  (void)0;
  ;
  A = 8 - ((buffer2[22] & 7));
  B = (buffer1[33] >> (A & 7));
  C = buffer1[33] << (buffer2[22] & 7);
  buffer2[16] += ((buffer2[buffer3[0] % 35] & 159) | buffer0[buffer3[4] % 20] | 8) - ((B ^ C) | 128);
  (void)0;
  ;
  buffer0[14] ^= buffer2[buffer3[12] % 35];
  (void)0;
  ;
  A = weird_rol8(buffer4[buffer0[buffer1[201] % 20] % 21], ((buffer2[buffer1[112] % 35] << 1) & 7));
  D = (buffer0[buffer1[208] % 20] & 131) | (buffer0[buffer1[164] % 20] & 124);
  buffer1[19] += (A & (D / 5)) | ((A | (D / 5)) & 37);
  (void)0;
  ;
  buffer2[8] = weird_ror8(140, ((buffer4[buffer1[45] % 21] + 92) * (buffer4[buffer1[45] % 21] + 92)) & 7);
  (void)0;
  ;
  buffer1[190] = 56;
  (void)0;
  ;
  buffer2[8] ^= buffer3[0];
  (void)0;
  ;
  buffer1[53] = ~((buffer0[buffer1[83] % 20] | 204) / 5);
  (void)0;
  ;
  buffer0[13] += buffer0[buffer1[41] % 20];
  (void)0;
  ;
  buffer0[10] = ((buffer2[buffer3[0] % 35] & buffer1[2]) | ((buffer2[buffer3[0] % 35] | buffer1[2]) & buffer3[12])) / 15;
  (void)0;
  ;
  A = (((56 | (buffer4[buffer1[2] % 21] & 68)) | buffer2[buffer3[8] % 35]) & 42) | (((buffer4[buffer1[2] % 21] & 68) | 56) & buffer2[buffer3[8] % 35]);
  buffer3[16] = (A * A) + 110;
  (void)0;
  ;
  buffer3[20] = 202 - buffer3[16];
  (void)0;
  ;
  buffer3[24] = buffer1[151];
  (void)0;
  ;
  buffer2[13] ^= buffer4[buffer3[0] % 21];
  (void)0;
  ;
  B = ((buffer2[buffer1[179] % 35] - 38) & 177) | (buffer3[12] & 177);
  C = ((buffer2[buffer1[179] % 35] - 38)) & buffer3[12];
  buffer3[28] = 30 + ((B | C) * (B | C));
  (void)0;
  ;
  buffer3[32] = buffer3[28] + 62;
  (void)0;
  ;
  A = ((buffer3[20] + (buffer3[0] & 74)) | ~buffer4[buffer3[0] % 21]) & 121;
  B = ((buffer3[20] + (buffer3[0] & 74)) & ~buffer4[buffer3[0] % 21]);
  tmp3 = (A | B);
  C = ((((A | B) ^ 0xffffffa6) | buffer3[0]) & 4) | (((A | B) ^ 0xffffffa6) & buffer3[0]);
  buffer1[47] = (buffer2[buffer1[89] % 35] + C) ^ buffer1[47];
  (void)0;
  ;
  buffer3[36] = ((rol8((tmp & 179) + 68, 2) & buffer0[3]) | (tmp2 & ~buffer0[3])) - 15;
  (void)0;
  ;
  buffer1[123] ^= 221;
  (void)0;
  ;
  A = ((buffer4[buffer3[0] % 21]) / 3) - buffer2[buffer3[4] % 35];
  C = (((buffer3[0] & 163) + 92) & 246) | (buffer3[0] & 92);
  E = ((C | buffer3[24]) & 54) | (C & buffer3[24]);
  buffer3[40] = A - E;
  (void)0;
  ;
  buffer3[44] = tmp3 ^ 81 ^ (((buffer3[0] >> 1) & 101) + 26);
  (void)0;
  ;
  buffer3[48] = buffer2[buffer3[4] % 35] & 27;
  (void)0;
  ;
  buffer3[52] = 27;
  (void)0;
  ;
  buffer3[56] = 199;
  (void)0;
  ;
  buffer3[64] = buffer3[4] + (((((((buffer3[40] | buffer3[24]) & 177) | (buffer3[40] & buffer3[24])) & ((((buffer4[buffer3[0] % 20] & 177) | 176)) | ((buffer4[buffer3[0] % 21]) & ~3))) | ((((buffer3[40] & buffer3[24]) | ((buffer3[40] | buffer3[24]) & 177)) & 199) | ((((buffer4[buffer3[0] % 21] & 1) + 176) | (buffer4[buffer3[0] % 21] & ~3)) & buffer3[56]))) & (~buffer3[52])) | buffer3[48]);
  (void)0;
  ;
  buffer2[33] ^= buffer1[26];
  (void)0;
  ;
  buffer1[106] ^= buffer3[20] ^ 133;
  (void)0;
  ;
  buffer2[30] = ((buffer3[64] / 3) - (275 | (buffer3[0] & 247))) ^ buffer0[buffer1[122] % 20];
  (void)0;
  ;
  buffer1[22] = (buffer2[buffer1[90] % 35] & 95) | 68;
  (void)0;
  ;
  A = (buffer4[buffer3[36] % 21] & 184) | (buffer2[buffer3[44] % 35] & ~184);
  buffer2[18] += ((A * A * A) >> 1);
  (void)0;
  ;
  buffer2[5] -= buffer4[buffer1[92] % 21];
  (void)0;
  ;
  A = (((buffer1[41] & ~24) | (buffer2[buffer1[183] % 35] & 24)) & (buffer3[16] + 53)) | (buffer3[20] & buffer2[buffer3[20] % 35]);
  B = (buffer1[17] & (~buffer3[44])) | (buffer0[buffer1[59] % 20] & buffer3[44]);
  buffer2[18] ^= (A * B);
  (void)0;
  ;
  A = weird_ror8(buffer1[11], buffer2[buffer1[28] % 35] & 7) & 7;
  B = (((buffer0[buffer1[93] % 20] & ~buffer0[14]) | (buffer0[14] & 150)) & ~28) | (buffer1[7] & 28);
  buffer2[22] = (((((B | weird_rol8(buffer2[buffer3[0] % 35], A)) & buffer2[33]) | (B & weird_rol8(buffer2[buffer3[0] % 35], A))) + 74) & 0xff);
  (void)0;
  ;
  A = buffer4[(buffer0[buffer1[39] % 20] ^ 217) % 21];
  buffer0[15] -= ((((buffer3[20] | buffer3[0]) & 214) | (buffer3[20] & buffer3[0])) & A) | ((((buffer3[20] | buffer3[0]) & 214) | (buffer3[20] & buffer3[0]) | A) & buffer3[32]);
  (void)0;
  ;
  B = (((buffer2[buffer1[57] % 35] & buffer0[buffer3[64] % 20]) | ((buffer0[buffer3[64] % 20] | buffer2[buffer1[57] % 35]) & 95) | (buffer3[64] & 45) | 82) & 32);
  C = ((buffer2[buffer1[57] % 35] & buffer0[buffer3[64] % 20]) | ((buffer2[buffer1[57] % 35] | buffer0[buffer3[64] % 20]) & 95)) & ((buffer3[64] & 45) | 82);
  D = ((((buffer3[0] / 3) - (buffer3[64] | buffer1[22]))) ^ (buffer3[28] + 62) ^ ((B | C)));
  T = buffer0[(D & 0xff) % 20];
  buffer3[68] = (buffer0[buffer1[99] % 20] * buffer0[buffer1[99] % 20] * buffer0[buffer1[99] % 20] * buffer0[buffer1[99] % 20]) | buffer2[buffer3[64] % 35];
  (void)0;
  ;
  U = buffer0[buffer1[50] % 20];
  W = buffer2[buffer1[138] % 35];
  X = buffer4[buffer1[39] % 21];
  Y = buffer0[buffer1[4] % 20];
  Z = buffer4[buffer1[202] % 21];
  V = buffer0[buffer1[151] % 20];
  S = buffer2[buffer1[14] % 35];
  R = buffer0[buffer1[145] % 20];
  A = (buffer2[buffer3[68] % 35] & buffer0[buffer1[209] % 20]) | ((buffer2[buffer3[68] % 35] | buffer0[buffer1[209] % 20]) & 24);
  B = weird_rol8(buffer4[buffer1[127] % 21], buffer2[buffer3[68] % 35] & 7);
  C = (A & buffer0[10]) | (B & ~buffer0[10]);
  D = 7 ^ (buffer4[buffer2[buffer3[36] % 35] % 21] << 1);
  buffer3[72] = (C & 71) | (D & ~71);
  (void)0;
  ;
  buffer2[2] += (((buffer0[buffer3[20] % 20] << 1) & 159) | (buffer4[buffer1[190] % 21] & ~159)) & ((((buffer4[buffer3[64] % 21] & 110) | (buffer0[buffer1[25] % 20] & ~110)) & ~150) | (buffer1[25] & 150));
  (void)0;
  ;
  buffer2[14] -= ((buffer2[buffer3[20] % 35] & (buffer3[72] ^ buffer2[buffer1[100] % 35])) & ~34) | (buffer1[97] & 34);
  (void)0;
  ;
  buffer0[17] = 115;
  (void)0;
  ;
  buffer1[23] ^= ((((((buffer4[buffer1[17] % 21] | buffer0[buffer3[20] % 20]) & buffer3[72]) | (buffer4[buffer1[17] % 21] & buffer0[buffer3[20] % 20])) & (buffer1[50] / 3)) | ((((buffer4[buffer1[17] % 21] | buffer0[buffer3[20] % 20]) & buffer3[72]) | (buffer4[buffer1[17] % 21] & buffer0[buffer3[20] % 20]) | (buffer1[50] / 3)) & 246)) << 1);
  (void)0;
  ;
  buffer0[13] = ((((((buffer0[buffer3[40] % 20] | buffer1[10]) & 82) | (buffer0[buffer3[40] % 20] & buffer1[10])) & 209) | ((buffer0[buffer1[39] % 20] << 1) & 46)) >> 1);
  (void)0;
  ;
  buffer2[33] -= buffer1[113] & 9;
  (void)0;
  ;
  buffer2[28] -= ((((2 | (buffer1[110] & 222)) >> 1) & ~223) | (buffer3[20] & 223));
  (void)0;
  ;
  J = weird_rol8((V | Z), (U & 7));
  A = (buffer2[16] & T) | (W & (~buffer2[16]));
  B = (buffer1[33] & 17) | (X & ~17);
  E = ((Y | ((A + B) / 5)) & 147) | (Y & ((A + B) / 5));
  M = (buffer3[40] & buffer4[((buffer3[8] + J + E) & 0xff) % 21]) | ((buffer3[40] | buffer4[((buffer3[8] + J + E) & 0xff) % 21]) & buffer2[23]);
  buffer0[15] = (((buffer4[buffer3[20] % 21] - 48) & (~buffer1[184])) | ((buffer4[buffer3[20] % 21] - 48) & 189) | (189 & ~buffer1[184])) & (M * M * M);
  (void)0;
  ;
  buffer2[22] += buffer1[183];
  (void)0;
  ;
  buffer3[76] = (3 * buffer4[buffer1[1] % 21]) ^ buffer3[0];
  (void)0;
  ;
  A = buffer2[((buffer3[8] + (J + E)) & 0xff) % 35];
  F = (((buffer4[buffer1[178] % 21] & A) | ((buffer4[buffer1[178] % 21] | A) & 209)) * buffer0[buffer1[13] % 20]) * (buffer4[buffer1[26] % 21] >> 1);
  G = (F + 0x733ffff9) * 198 - (((F + 0x733ffff9) * 396 + 212) & 212) + 85;
  buffer3[80] = buffer3[36] + (G ^ 148) + ((G ^ 107) << 1) - 127;
  (void)0;
  ;
  buffer3[84] = ((buffer2[buffer3[64] % 35]) & 245) | (buffer2[buffer3[20] % 35] & 10);
  (void)0;
  ;
  A = buffer0[buffer3[68] % 20] | 81;
  buffer2[18] -= ((A * A * A) & ~buffer0[15]) | ((buffer3[80] / 15) & buffer0[15]);
  (void)0;
  ;
  buffer3[88] = buffer3[8] + J + E - buffer0[buffer1[160] % 20] + (buffer4[buffer0[((buffer3[8] + J + E) & 255) % 20] % 21] / 3);
  (void)0;
  ;
  B = ((R ^ buffer3[72]) & ~198) | ((S * S) & 198);
  F = (buffer4[buffer1[69] % 21] & buffer1[172]) | ((buffer4[buffer1[69] % 21] | buffer1[172]) & ((buffer3[12] - B) + 77));
  buffer0[16] = 147 - ((buffer3[72] & ((F & 251) | 1)) | (((F & 250) | buffer3[72]) & 198));
  (void)0;
  ;
  C = (buffer4[buffer1[168] % 21] & buffer0[buffer1[29] % 20] & 7) | ((buffer4[buffer1[168] % 21] | buffer0[buffer1[29] % 20]) & 6);
  F = (buffer4[buffer1[155] % 21] & buffer1[105]) | ((buffer4[buffer1[155] % 21] | buffer1[105]) & 141);
  buffer0[3] -= buffer4[weird_rol32(F, C) % 21];
  (void)0;
  ;
  buffer1[5] = weird_ror8(buffer0[12], ((buffer0[buffer1[61] % 20] / 5) & 7)) ^ (((~buffer2[buffer3[84] % 35]) & 0xffffffff) / 5);
  (void)0;
  ;
  buffer1[198] += buffer1[3];
  (void)0;
  ;
  A = (162 | buffer2[buffer3[64] % 35]);
  buffer1[164] += ((A * A) / 5);
  (void)0;
  ;
  G = weird_ror8(139, (buffer3[80] & 7));
  C = ((buffer4[buffer3[64] % 21] * buffer4[buffer3[64] % 21] * buffer4[buffer3[64] % 21]) & 95) | (buffer0[buffer3[40] % 20] & ~95);
  buffer3[92] = (G & 12) | (buffer0[buffer3[20] % 20] & 12) | (G & buffer0[buffer3[20] % 20]) | C;
  (void)0;
  ;
  buffer2[12] += ((buffer1[103] & 32) | (buffer3[92] & ((buffer1[103] | 60))) | 16) / 3;
  (void)0;
  ;
  buffer3[96] = buffer1[143];
  (void)0;
  ;
  buffer3[100] = 27;
  (void)0;
  ;
  buffer3[104] = (((buffer3[40] & ~buffer2[8]) | (buffer1[35] & buffer2[8])) & buffer3[64]) ^ 119;
  (void)0;
  ;
  buffer3[108] = 238 & ((((buffer3[40] & ~buffer2[8]) | (buffer1[35] & buffer2[8])) & buffer3[64]) << 1);
  (void)0;
  ;
  buffer3[112] = (~buffer3[64] & (buffer3[84] / 3)) ^ 49;
  (void)0;
  ;
  buffer3[116] = 98 & ((~buffer3[64] & (buffer3[84] / 3)) << 1);
  (void)0;
  ;
  A = (buffer1[35] & buffer2[8]) | (buffer3[40] & ~buffer2[8]);
  B = (A & buffer3[64]) | (((buffer3[84] / 3) & ~buffer3[64]));
  buffer1[143] = buffer3[96] - ((B & (86 + ((buffer1[172] & 64) >> 1))) | (((((buffer1[172] & 65) >> 1) ^ 86) | ((~buffer3[64] & (buffer3[84] / 3)) | (((buffer3[40] & ~buffer2[8]) | (buffer1[35] & buffer2[8])) & buffer3[64]))) & buffer3[100]));
  (void)0;
  ;
  buffer2[29] = 162;
  (void)0;
  ;
  A = ((((buffer4[buffer3[88] % 21]) & 160) | (buffer0[buffer1[125] % 20] & 95)) >> 1);
  B = buffer2[buffer1[149] % 35] ^ (buffer1[43] * buffer1[43]);
  buffer0[15] += (B & A) | ((A | B) & 115);
  (void)0;
  ;
  buffer3[120] = buffer3[64] - buffer0[buffer3[40] % 20];
  (void)0;
  ;
  buffer1[95] = buffer4[buffer3[20] % 21];
  (void)0;
  ;
  A = weird_ror8(buffer2[buffer3[80] % 35], (buffer2[buffer1[17] % 35] * buffer2[buffer1[17] % 35] * buffer2[buffer1[17] % 35]) & 7);
  buffer0[7] -= (A * A);
  (void)0;
  ;
  buffer2[8] = buffer2[8] - buffer1[184] + (buffer4[buffer1[202] % 21] * buffer4[buffer1[202] % 21] * buffer4[buffer1[202] % 21]);
  (void)0;
  ;
  buffer0[16] = (buffer2[buffer1[102] % 35] << 1) & 132;
  (void)0;
  ;
  buffer3[124] = (buffer4[buffer3[40] % 21] >> 1) ^ buffer3[68];
  (void)0;
  ;
  buffer0[7] -= (buffer0[buffer1[191] % 20] - (((buffer4[buffer1[80] % 21] << 1) & ~177) | (buffer4[buffer4[buffer3[88] % 21] % 21] & 177)));
  (void)0;
  ;
  buffer0[6] = buffer0[buffer1[119] % 20];
  (void)0;
  ;
  A = (buffer4[buffer1[190] % 21] & ~209) | (buffer1[118] & 209);
  B = buffer0[buffer3[120] % 20] * buffer0[buffer3[120] % 20];
  buffer0[12] = (buffer0[buffer3[84] % 20] ^ (buffer2[buffer1[71] % 35] + buffer2[buffer1[15] % 35])) & ((A & B) | ((A | B) & 27));
  (void)0;
  ;
  B = (buffer1[32] & buffer2[buffer3[88] % 35]) | ((buffer1[32] | buffer2[buffer3[88] % 35]) & 23);
  D = (((buffer4[buffer1[57] % 21] * 231) & 169) | (B & 86));
  F = (((buffer0[buffer1[82] % 20] & ~29) | (buffer4[buffer3[124] % 21] & 29)) & 190) | (buffer4[(D / 5) % 21] & ~190);
  H = buffer0[buffer3[40] % 20] * buffer0[buffer3[40] % 20] * buffer0[buffer3[40] % 20];
  K = (H & buffer1[82]) | (H & 92) | (buffer1[82] & 92);
  buffer3[128] = ((F & K) | ((F | K) & 192)) ^ (D / 5);
  (void)0;
  ;
  buffer2[25] ^= ((buffer0[buffer3[120] % 20] << 1) * buffer1[5]) - (weird_rol8(buffer3[76], (buffer4[buffer3[124] % 21] & 7)) & (buffer3[20] + 110));
  (void)0;
  ;
}
```