user: Demonstrate the C code that generates the assembly output below:

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