// File: bitwiseshiftleft[P]crandom/aes.c
// Function: crandom_aes_expand_conventional
static inline void
crandom_aes_expand_conventional(u_int64_t iv,
                                u_int64_t ctr,
                                const unsigned char *key_,
                                unsigned char *data_) {
  /* FIXME thread safety */
  static int t_tables_full = 0;
  if (!t_tables_full) {
    fill_t_tables();
    t_tables_full = 1;
  }
  
  static const int N=8;
  
  const u_int32_t *key = (const u_int32_t *) key_;
  u_int32_t *data = (u_int32_t *) data_;
  
  int i,j;
  
  u_int32_t xa=key[0], xb=key[1], xc=key[2], xd=key[3],
            za=key[4], zb=key[5], zc=key[6], zd=key[7],
            keysch[15*4] = {xa,xb,xc,xd,za,zb,zc,zd};
            
  const u_int8_t *s = crandom_aes_sbox;
  
  for (i=0;; i++) {
    keysch[8*i+8]  = xa = xa ^ s[zd>>24]<<16 ^ s[zd>>16&0xff]<<8
                             ^ s[zd>>8&0xff] ^ s[zd&0xff]<<24 ^ 1<<i;
    keysch[8*i+9]  = xb = xb ^ xa;
    keysch[8*i+10] = xc = xc ^ xb;
    keysch[8*i+11] = xd = xd ^ xc;
    
    if (i == 6) break;
    
    keysch[8*i+12] = za = za ^ s[xd>>24]<<24 ^ s[xd>>16&0xff]<<16
                             ^ s[xd>>8&0xff]<<8 ^ s[xd&0xff];
    keysch[8*i+13] = zb = zb ^ za;
    keysch[8*i+14] = zc = zc ^ zb;
    keysch[8*i+15] = zd = zd ^ zc;
  }
  
  u_int32_t a,b,c,d,aa,bb,cc,a1,a2,b2,c2,d2;
  
  // round zero, ctc
  a = keysch[0] ^ (ctr);
  b = keysch[1] ^ (ctr>>32);
  c = keysch[2] ^ (iv);
  d = keysch[3] ^ (iv>>32);
  
  // round one, ctc
  a1 = T(0,d>>24) ^ T(1,c>>16&0xff) ^ T(2,b>>8&0xff) ^ /***********/ keysch[4*0+4];
  b2 = T(0,a>>24) ^ T(1,d>>16&0xff) ^ T(2,c>>8&0xff) ^ T(3,b&0xff) ^ keysch[4*0+5];
  c2 = T(0,b>>24) ^ T(1,a>>16&0xff) ^ T(2,d>>8&0xff) ^ T(3,c&0xff) ^ keysch[4*0+6];
  d2 = T(0,c>>24) ^ T(1,b>>16&0xff) ^ T(2,a>>8&0xff) ^ T(3,d&0xff) ^ keysch[4*0+7];
  a = a1; b = b2; c = c2; d = d2;
  
  // round two, ctc
  a2 = T(0,d>>24) ^ T(1,c>>16&0xff) ^ T(2,b>>8&0xff) ^ /***********/ keysch[4*1+4];
  b2 = /**********/ T(1,d>>16&0xff) ^ T(2,c>>8&0xff) ^ T(3,b&0xff) ^ keysch[4*1+5];
  c2 = T(0,b>>24) ^ /***************/ T(2,d>>8&0xff) ^ T(3,c&0xff) ^ keysch[4*1+6];
  d2 = T(0,c>>24) ^ T(1,b>>16&0xff) ^ /**************/ T(3,d&0xff) ^ keysch[4*1+7];
  
  for (i=0; i<N; i++) {
    aa = a1 ^ T(3,((ctr+i)^keysch[0]) & 0xff);
    a = a2 ^ T(3,aa&0xff);
    b = b2 ^ T(0,aa>>24);
    c = c2 ^ T(1,aa>>16&0xff);
    d = d2 ^ T(2,aa>>8&0xff);
      
    for (j=2; j<13; j++) {
      aa = T(0,d>>24) ^ T(1,c>>16&0xff) ^ T(2,b>>8&0xff) ^ T(3,a&0xff) ^ keysch[4*j+4];
      bb = T(0,a>>24) ^ T(1,d>>16&0xff) ^ T(2,c>>8&0xff) ^ T(3,b&0xff) ^ keysch[4*j+5];
      cc = T(0,b>>24) ^ T(1,a>>16&0xff) ^ T(2,d>>8&0xff) ^ T(3,c&0xff) ^ keysch[4*j+6];
      d  = T(0,c>>24) ^ T(1,b>>16&0xff) ^ T(2,a>>8&0xff) ^ T(3,d&0xff) ^ keysch[4*j+7];
      a = aa; b = bb; c = cc;
    }
    data[4*i+0] = s[d>>24]<<24 ^ s[c>>16&0xff]<<16 ^ s[b>>8&0xff]<<8 ^ s[a&0xff] ^ keysch[14*4+0];
    data[4*i+1] = s[a>>24]<<24 ^ s[d>>16&0xff]<<16 ^ s[c>>8&0xff]<<8 ^ s[b&0xff] ^ keysch[14*4+1];
    data[4*i+2] = s[b>>24]<<24 ^ s[a>>16&0xff]<<16 ^ s[d>>8&0xff]<<8 ^ s[c&0xff] ^ keysch[14*4+2];
    data[4*i+3] = s[c>>24]<<24 ^ s[b>>16&0xff]<<16 ^ s[a>>8&0xff]<<8 ^ s[d&0xff] ^ keysch[14*4+3];
  }
  bzero(keysch, sizeof(keysch));
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x220, %rsp            # imm = 0x220
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq %rcx, -0x20(%rbp)
cmpl $0x0, 0x474e(%rip)      # 0xa0d0
jne 0x5993
callq 0x67b0
movl $0x1, 0x473d(%rip)      # 0xa0d0
movq -0x18(%rbp), %rax
movq %rax, -0x28(%rbp)
movq -0x20(%rbp), %rax
movq %rax, -0x30(%rbp)
movq -0x28(%rbp), %rax
movl (%rax), %eax
movl %eax, -0x3c(%rbp)
movq -0x28(%rbp), %rax
movl 0x4(%rax), %eax
movl %eax, -0x40(%rbp)
movq -0x28(%rbp), %rax
movl 0x8(%rax), %eax
movl %eax, -0x44(%rbp)
movq -0x28(%rbp), %rax
movl 0xc(%rax), %eax
movl %eax, -0x48(%rbp)
movq -0x28(%rbp), %rax
movl 0x10(%rax), %eax
movl %eax, -0x4c(%rbp)
movq -0x28(%rbp), %rax
movl 0x14(%rax), %eax
movl %eax, -0x50(%rbp)
movq -0x28(%rbp), %rax
movl 0x18(%rax), %eax
movl %eax, -0x54(%rbp)
movq -0x28(%rbp), %rax
movl 0x1c(%rax), %eax
movl %eax, -0x58(%rbp)
leaq -0x150(%rbp), %rdi
xorl %esi, %esi
movl $0xf0, %edx
callq 0x1090
movl -0x3c(%rbp), %eax
movl %eax, -0x150(%rbp)
movl -0x40(%rbp), %eax
movl %eax, -0x14c(%rbp)
movl -0x44(%rbp), %eax
movl %eax, -0x148(%rbp)
movl -0x48(%rbp), %eax
movl %eax, -0x144(%rbp)
movl -0x4c(%rbp), %eax
movl %eax, -0x140(%rbp)
movl -0x50(%rbp), %eax
movl %eax, -0x13c(%rbp)
movl -0x54(%rbp), %eax
movl %eax, -0x138(%rbp)
movl -0x58(%rbp), %eax
movl %eax, -0x134(%rbp)
leaq 0x18ac(%rip), %rax      # 0x7300
movq %rax, -0x158(%rbp)
movl $0x0, -0x34(%rbp)
movl -0x3c(%rbp), %eax
movq -0x158(%rbp), %rcx
movl -0x58(%rbp), %edx
shrl $0x18, %edx
movl %edx, %edx
movzbl (%rcx,%rdx), %ecx
shll $0x10, %ecx
xorl %ecx, %eax
movq -0x158(%rbp), %rcx
movl -0x58(%rbp), %edx
shrl $0x10, %edx
andl $0xff, %edx
movl %edx, %edx
movzbl (%rcx,%rdx), %ecx
shll $0x8, %ecx
xorl %ecx, %eax
movq -0x158(%rbp), %rcx
movl -0x58(%rbp), %edx
shrl $0x8, %edx
andl $0xff, %edx
movl %edx, %edx
movzbl (%rcx,%rdx), %ecx
xorl %ecx, %eax
movq -0x158(%rbp), %rcx
movl -0x58(%rbp), %edx
andl $0xff, %edx
movl %edx, %edx
movzbl (%rcx,%rdx), %ecx
shll $0x18, %ecx
xorl %ecx, %eax
movl %eax, -0x18c(%rbp)
movl -0x34(%rbp), %ecx
movl $0x1, %eax
shll %cl, %eax
movl -0x18c(%rbp), %ecx
xorl %eax, %ecx
movl %ecx, -0x3c(%rbp)
movl -0x34(%rbp), %eax
shll $0x3, %eax
addl $0x8, %eax
cltq
movl %ecx, -0x150(%rbp,%rax,4)
movl -0x40(%rbp), %ecx
xorl -0x3c(%rbp), %ecx
movl %ecx, -0x40(%rbp)
movl -0x34(%rbp), %eax
shll $0x3, %eax
addl $0x9, %eax
cltq
movl %ecx, -0x150(%rbp,%rax,4)
movl -0x44(%rbp), %ecx
xorl -0x40(%rbp), %ecx
movl %ecx, -0x44(%rbp)
movl -0x34(%rbp), %eax
shll $0x3, %eax
addl $0xa, %eax
cltq
movl %ecx, -0x150(%rbp,%rax,4)
movl -0x48(%rbp), %ecx
xorl -0x44(%rbp), %ecx
movl %ecx, -0x48(%rbp)
movl -0x34(%rbp), %eax
shll $0x3, %eax
addl $0xb, %eax
cltq
movl %ecx, -0x150(%rbp,%rax,4)
cmpl $0x6, -0x34(%rbp)
jne 0x5b5a
jmp 0x5c3d
movl -0x4c(%rbp), %ecx
movq -0x158(%rbp), %rax
movl -0x48(%rbp), %edx
shrl $0x18, %edx
movl %edx, %edx
movzbl (%rax,%rdx), %eax
shll $0x18, %eax
xorl %eax, %ecx
movq -0x158(%rbp), %rax
movl -0x48(%rbp), %edx
shrl $0x10, %edx
andl $0xff, %edx
movl %edx, %edx
movzbl (%rax,%rdx), %eax
shll $0x10, %eax
xorl %eax, %ecx
movq -0x158(%rbp), %rax
movl -0x48(%rbp), %edx
shrl $0x8, %edx
andl $0xff, %edx
movl %edx, %edx
movzbl (%rax,%rdx), %eax
shll $0x8, %eax
xorl %eax, %ecx
movq -0x158(%rbp), %rax
movl -0x48(%rbp), %edx
andl $0xff, %edx
movl %edx, %edx
movzbl (%rax,%rdx), %eax
xorl %eax, %ecx
movl %ecx, -0x4c(%rbp)
movl -0x34(%rbp), %eax
shll $0x3, %eax
addl $0xc, %eax
cltq
movl %ecx, -0x150(%rbp,%rax,4)
movl -0x50(%rbp), %ecx
xorl -0x4c(%rbp), %ecx
movl %ecx, -0x50(%rbp)
movl -0x34(%rbp), %eax
shll $0x3, %eax
addl $0xd, %eax
cltq
movl %ecx, -0x150(%rbp,%rax,4)
movl -0x54(%rbp), %ecx
xorl -0x50(%rbp), %ecx
movl %ecx, -0x54(%rbp)
movl -0x34(%rbp), %eax
shll $0x3, %eax
addl $0xe, %eax
cltq
movl %ecx, -0x150(%rbp,%rax,4)
movl -0x58(%rbp), %ecx
xorl -0x54(%rbp), %ecx
movl %ecx, -0x58(%rbp)
movl -0x34(%rbp), %eax
shll $0x3, %eax
addl $0xf, %eax
cltq
movl %ecx, -0x150(%rbp,%rax,4)
movl -0x34(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x34(%rbp)
jmp 0x5a62
movl -0x150(%rbp), %eax
xorq -0x10(%rbp), %rax
movl %eax, -0x15c(%rbp)
movl -0x14c(%rbp), %eax
movq -0x10(%rbp), %rcx
shrq $0x20, %rcx
xorq %rcx, %rax
movl %eax, -0x160(%rbp)
movl -0x148(%rbp), %eax
xorq -0x8(%rbp), %rax
movl %eax, -0x164(%rbp)
movl -0x144(%rbp), %eax
movq -0x8(%rbp), %rcx
shrq $0x20, %rcx
xorq %rcx, %rax
movl %eax, -0x168(%rbp)
movl -0x168(%rbp), %eax
shrl $0x18, %eax
xorl %edi, %edi
movzbl %al, %esi
callq 0x6750
movl %eax, -0x1d8(%rbp)
movl -0x164(%rbp), %eax
shrl $0x10, %eax
andl $0xff, %eax
movl $0x1, %edi
movzbl %al, %esi
callq 0x6750
movl %eax, %ecx
movl -0x1d8(%rbp), %eax
xorl %ecx, %eax
movl %eax, -0x1d4(%rbp)
movl -0x160(%rbp), %eax
shrl $0x8, %eax
andl $0xff, %eax
movl $0x2, %edi
movzbl %al, %esi
callq 0x6750
movl %eax, %ecx
movl -0x1d4(%rbp), %eax
xorl %ecx, %eax
xorl -0x140(%rbp), %eax
movl %eax, -0x178(%rbp)
movl -0x15c(%rbp), %eax
shrl $0x18, %eax
xorl %edi, %edi
movzbl %al, %esi
callq 0x6750
movl %eax, -0x1d0(%rbp)
movl -0x168(%rbp), %eax
shrl $0x10, %eax
andl $0xff, %eax
movl $0x1, %edi
movzbl %al, %esi
callq 0x6750
movl %eax, %ecx
movl -0x1d0(%rbp), %eax
xorl %ecx, %eax
movl %eax, -0x1cc(%rbp)
movl -0x164(%rbp), %eax
shrl $0x8, %eax
andl $0xff, %eax
movl $0x2, %edi
movzbl %al, %esi
callq 0x6750
movl %eax, %ecx
movl -0x1cc(%rbp), %eax
xorl %ecx, %eax
movl %eax, -0x1c8(%rbp)
movl -0x160(%rbp), %eax
andl $0xff, %eax
movl $0x3, %edi
movzbl %al, %esi
callq 0x6750
movl %eax, %ecx
movl -0x1c8(%rbp), %eax
xorl %ecx, %eax
xorl -0x13c(%rbp), %eax
movl %eax, -0x180(%rbp)
movl -0x160(%rbp), %eax
shrl $0x18, %eax
xorl %edi, %edi
movzbl %al, %esi
callq 0x6750
movl %eax, -0x1c4(%rbp)
movl -0x15c(%rbp), %eax
shrl $0x10, %eax
andl $0xff, %eax
movl $0x1, %edi
movzbl %al, %esi
callq 0x6750
movl %eax, %ecx
movl -0x1c4(%rbp), %eax
xorl %ecx, %eax
movl %eax, -0x1c0(%rbp)
movl -0x168(%rbp), %eax
shrl $0x8, %eax
andl $0xff, %eax
movl $0x2, %edi
movzbl %al, %esi
callq 0x6750
movl %eax, %ecx
movl -0x1c0(%rbp), %eax
xorl %ecx, %eax
movl %eax, -0x1bc(%rbp)
movl -0x164(%rbp), %eax
andl $0xff, %eax
movl $0x3, %edi
movzbl %al, %esi
callq 0x6750
movl %eax, %ecx
movl -0x1bc(%rbp), %eax
xorl %ecx, %eax
xorl -0x138(%rbp), %eax
movl %eax, -0x184(%rbp)
movl -0x164(%rbp), %eax
shrl $0x18, %eax
xorl %edi, %edi
movzbl %al, %esi
callq 0x6750
movl %eax, -0x1b8(%rbp)
movl -0x160(%rbp), %eax
shrl $0x10, %eax
andl $0xff, %eax
movl $0x1, %edi
movzbl %al, %esi
callq 0x6750
movl %eax, %ecx
movl -0x1b8(%rbp), %eax
xorl %ecx, %eax
movl %eax, -0x1b4(%rbp)
movl -0x15c(%rbp), %eax
shrl $0x8, %eax
andl $0xff, %eax
movl $0x2, %edi
movzbl %al, %esi
callq 0x6750
movl %eax, %ecx
movl -0x1b4(%rbp), %eax
xorl %ecx, %eax
movl %eax, -0x1b0(%rbp)
movl -0x168(%rbp), %eax
andl $0xff, %eax
movl $0x3, %edi
movzbl %al, %esi
callq 0x6750
movl %eax, %ecx
movl -0x1b0(%rbp), %eax
xorl %ecx, %eax
xorl -0x134(%rbp), %eax
movl %eax, -0x188(%rbp)
movl -0x178(%rbp), %eax
movl %eax, -0x15c(%rbp)
movl -0x180(%rbp), %eax
movl %eax, -0x160(%rbp)
movl -0x184(%rbp), %eax
movl %eax, -0x164(%rbp)
movl -0x188(%rbp), %eax
movl %eax, -0x168(%rbp)
movl -0x168(%rbp), %eax
shrl $0x18, %eax
xorl %edi, %edi
movzbl %al, %esi
callq 0x6750
movl %eax, -0x1ac(%rbp)
movl -0x164(%rbp), %eax
shrl $0x10, %eax
andl $0xff, %eax
movl $0x1, %edi
movzbl %al, %esi
callq 0x6750
movl %eax, %ecx
movl -0x1ac(%rbp), %eax
xorl %ecx, %eax
movl %eax, -0x1a8(%rbp)
movl -0x160(%rbp), %eax
shrl $0x8, %eax
andl $0xff, %eax
movl $0x2, %edi
movzbl %al, %esi
callq 0x6750
movl %eax, %ecx
movl -0x1a8(%rbp), %eax
xorl %ecx, %eax
xorl -0x130(%rbp), %eax
movl %eax, -0x17c(%rbp)
movl -0x168(%rbp), %eax
shrl $0x10, %eax
andl $0xff, %eax
movl $0x1, %edi
movzbl %al, %esi
callq 0x6750
movl %eax, -0x1a4(%rbp)
movl -0x164(%rbp), %eax
shrl $0x8, %eax
andl $0xff, %eax
movl $0x2, %edi
movzbl %al, %esi
callq 0x6750
movl %eax, %ecx
movl -0x1a4(%rbp), %eax
xorl %ecx, %eax
movl %eax, -0x1a0(%rbp)
movl -0x160(%rbp), %eax
andl $0xff, %eax
movl $0x3, %edi
movzbl %al, %esi
callq 0x6750
movl %eax, %ecx
movl -0x1a0(%rbp), %eax
xorl %ecx, %eax
xorl -0x12c(%rbp), %eax
movl %eax, -0x180(%rbp)
movl -0x160(%rbp), %eax
shrl $0x18, %eax
xorl %edi, %edi
movzbl %al, %esi
callq 0x6750
movl %eax, -0x19c(%rbp)
movl -0x168(%rbp), %eax
shrl $0x8, %eax
andl $0xff, %eax
movl $0x2, %edi
movzbl %al, %esi
callq 0x6750
movl %eax, %ecx
movl -0x19c(%rbp), %eax
xorl %ecx, %eax
movl %eax, -0x198(%rbp)
movl -0x164(%rbp), %eax
andl $0xff, %eax
movl $0x3, %edi
movzbl %al, %esi
callq 0x6750
movl %eax, %ecx
movl -0x198(%rbp), %eax
xorl %ecx, %eax
xorl -0x128(%rbp), %eax
movl %eax, -0x184(%rbp)
movl -0x164(%rbp), %eax
shrl $0x18, %eax
xorl %edi, %edi
movzbl %al, %esi
callq 0x6750
movl %eax, -0x194(%rbp)
movl -0x160(%rbp), %eax
shrl $0x10, %eax
andl $0xff, %eax
movl $0x1, %edi
movzbl %al, %esi
callq 0x6750
movl %eax, %ecx
movl -0x194(%rbp), %eax
xorl %ecx, %eax
movl %eax, -0x190(%rbp)
movl -0x168(%rbp), %eax
andl $0xff, %eax
movl $0x3, %edi
movzbl %al, %esi
callq 0x6750
movl %eax, %ecx
movl -0x190(%rbp), %eax
xorl %ecx, %eax
xorl -0x124(%rbp), %eax
movl %eax, -0x188(%rbp)
movl $0x0, -0x34(%rbp)
cmpl $0x8, -0x34(%rbp)
jge 0x6728
movl -0x178(%rbp), %eax
movl %eax, -0x1ec(%rbp)
movq -0x10(%rbp), %rax
movslq -0x34(%rbp), %rcx
addq %rcx, %rax
movl -0x150(%rbp), %ecx
xorq %rcx, %rax
andq $0xff, %rax
movl $0x3, %edi
movzbl %al, %esi
callq 0x6750
movl %eax, %ecx
movl -0x1ec(%rbp), %eax
xorl %ecx, %eax
movl %eax, -0x16c(%rbp)
movl -0x17c(%rbp), %eax
movl %eax, -0x1e8(%rbp)
movl -0x16c(%rbp), %eax
andl $0xff, %eax
movl $0x3, %edi
movzbl %al, %esi
callq 0x6750
movl %eax, %ecx
movl -0x1e8(%rbp), %eax
xorl %ecx, %eax
movl %eax, -0x15c(%rbp)
movl -0x180(%rbp), %eax
movl %eax, -0x1e4(%rbp)
movl -0x16c(%rbp), %eax
shrl $0x18, %eax
xorl %edi, %edi
movzbl %al, %esi
callq 0x6750
movl %eax, %ecx
movl -0x1e4(%rbp), %eax
xorl %ecx, %eax
movl %eax, -0x160(%rbp)
movl -0x184(%rbp), %eax
movl %eax, -0x1e0(%rbp)
movl -0x16c(%rbp), %eax
shrl $0x10, %eax
andl $0xff, %eax
movl $0x1, %edi
movzbl %al, %esi
callq 0x6750
movl %eax, %ecx
movl -0x1e0(%rbp), %eax
xorl %ecx, %eax
movl %eax, -0x164(%rbp)
movl -0x188(%rbp), %eax
movl %eax, -0x1dc(%rbp)
movl -0x16c(%rbp), %eax
shrl $0x8, %eax
andl $0xff, %eax
movl $0x2, %edi
movzbl %al, %esi
callq 0x6750
movl %eax, %ecx
movl -0x1dc(%rbp), %eax
xorl %ecx, %eax
movl %eax, -0x168(%rbp)
movl $0x2, -0x38(%rbp)
cmpl $0xd, -0x38(%rbp)
jge 0x64ea
movl -0x168(%rbp), %eax
shrl $0x18, %eax
xorl %edi, %edi
movzbl %al, %esi
callq 0x6750
movl %eax, -0x21c(%rbp)
movl -0x164(%rbp), %eax
shrl $0x10, %eax
andl $0xff, %eax
movl $0x1, %edi
movzbl %al, %esi
callq 0x6750
movl %eax, %ecx
movl -0x21c(%rbp), %eax
xorl %ecx, %eax
movl %eax, -0x218(%rbp)
movl -0x160(%rbp), %eax
shrl $0x8, %eax
andl $0xff, %eax
movl $0x2, %edi
movzbl %al, %esi
callq 0x6750
movl %eax, %ecx
movl -0x218(%rbp), %eax
xorl %ecx, %eax
movl %eax, -0x214(%rbp)
movl -0x15c(%rbp), %eax
andl $0xff, %eax
movl $0x3, %edi
movzbl %al, %esi
callq 0x6750
movl %eax, %ecx
movl -0x214(%rbp), %eax
xorl %ecx, %eax
movl -0x38(%rbp), %ecx
shll $0x2, %ecx
addl $0x4, %ecx
movslq %ecx, %rcx
xorl -0x150(%rbp,%rcx,4), %eax
movl %eax, -0x16c(%rbp)
movl -0x15c(%rbp), %eax
shrl $0x18, %eax
xorl %edi, %edi
movzbl %al, %esi
callq 0x6750
movl %eax, -0x210(%rbp)
movl -0x168(%rbp), %eax
shrl $0x10, %eax
andl $0xff, %eax
movl $0x1, %edi
movzbl %al, %esi
callq 0x6750
movl %eax, %ecx
movl -0x210(%rbp), %eax
xorl %ecx, %eax
movl %eax, -0x20c(%rbp)
movl -0x164(%rbp), %eax
shrl $0x8, %eax
andl $0xff, %eax
movl $0x2, %edi
movzbl %al, %esi
callq 0x6750
movl %eax, %ecx
movl -0x20c(%rbp), %eax
xorl %ecx, %eax
movl %eax, -0x208(%rbp)
movl -0x160(%rbp), %eax
andl $0xff, %eax
movl $0x3, %edi
movzbl %al, %esi
callq 0x6750
movl %eax, %ecx
movl -0x208(%rbp), %eax
xorl %ecx, %eax
movl -0x38(%rbp), %ecx
shll $0x2, %ecx
addl $0x5, %ecx
movslq %ecx, %rcx
xorl -0x150(%rbp,%rcx,4), %eax
movl %eax, -0x170(%rbp)
movl -0x160(%rbp), %eax
shrl $0x18, %eax
xorl %edi, %edi
movzbl %al, %esi
callq 0x6750
movl %eax, -0x204(%rbp)
movl -0x15c(%rbp), %eax
shrl $0x10, %eax
andl $0xff, %eax
movl $0x1, %edi
movzbl %al, %esi
callq 0x6750
movl %eax, %ecx
movl -0x204(%rbp), %eax
xorl %ecx, %eax
movl %eax, -0x200(%rbp)
movl -0x168(%rbp), %eax
shrl $0x8, %eax
andl $0xff, %eax
movl $0x2, %edi
movzbl %al, %esi
callq 0x6750
movl %eax, %ecx
movl -0x200(%rbp), %eax
xorl %ecx, %eax
movl %eax, -0x1fc(%rbp)
movl -0x164(%rbp), %eax
andl $0xff, %eax
movl $0x3, %edi
movzbl %al, %esi
callq 0x6750
movl %eax, %ecx
movl -0x1fc(%rbp), %eax
xorl %ecx, %eax
movl -0x38(%rbp), %ecx
shll $0x2, %ecx
addl $0x6, %ecx
movslq %ecx, %rcx
xorl -0x150(%rbp,%rcx,4), %eax
movl %eax, -0x174(%rbp)
movl -0x164(%rbp), %eax
shrl $0x18, %eax
xorl %edi, %edi
movzbl %al, %esi
callq 0x6750
movl %eax, -0x1f8(%rbp)
movl -0x160(%rbp), %eax
shrl $0x10, %eax
andl $0xff, %eax
movl $0x1, %edi
movzbl %al, %esi
callq 0x6750
movl %eax, %ecx
movl -0x1f8(%rbp), %eax
xorl %ecx, %eax
movl %eax, -0x1f4(%rbp)
movl -0x15c(%rbp), %eax
shrl $0x8, %eax
andl $0xff, %eax
movl $0x2, %edi
movzbl %al, %esi
callq 0x6750
movl %eax, %ecx
movl -0x1f4(%rbp), %eax
xorl %ecx, %eax
movl %eax, -0x1f0(%rbp)
movl -0x168(%rbp), %eax
andl $0xff, %eax
movl $0x3, %edi
movzbl %al, %esi
callq 0x6750
movl %eax, %ecx
movl -0x1f0(%rbp), %eax
xorl %ecx, %eax
movl -0x38(%rbp), %ecx
shll $0x2, %ecx
addl $0x7, %ecx
movslq %ecx, %rcx
xorl -0x150(%rbp,%rcx,4), %eax
movl %eax, -0x168(%rbp)
movl -0x16c(%rbp), %eax
movl %eax, -0x15c(%rbp)
movl -0x170(%rbp), %eax
movl %eax, -0x160(%rbp)
movl -0x174(%rbp), %eax
movl %eax, -0x164(%rbp)
movl -0x38(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x38(%rbp)
jmp 0x6206
movq -0x158(%rbp), %rax
movl -0x168(%rbp), %ecx
shrl $0x18, %ecx
movl %ecx, %ecx
movzbl (%rax,%rcx), %edx
shll $0x18, %edx
movq -0x158(%rbp), %rax
movl -0x164(%rbp), %ecx
shrl $0x10, %ecx
andl $0xff, %ecx
movl %ecx, %ecx
movzbl (%rax,%rcx), %eax
shll $0x10, %eax
xorl %eax, %edx
movq -0x158(%rbp), %rax
movl -0x160(%rbp), %ecx
shrl $0x8, %ecx
andl $0xff, %ecx
movl %ecx, %ecx
movzbl (%rax,%rcx), %eax
shll $0x8, %eax
xorl %eax, %edx
movq -0x158(%rbp), %rax
movl -0x15c(%rbp), %ecx
andl $0xff, %ecx
movl %ecx, %ecx
movzbl (%rax,%rcx), %eax
xorl %eax, %edx
xorl -0x70(%rbp), %edx
movq -0x30(%rbp), %rax
movl -0x34(%rbp), %ecx
shll $0x2, %ecx
addl $0x0, %ecx
movslq %ecx, %rcx
movl %edx, (%rax,%rcx,4)
movq -0x158(%rbp), %rax
movl -0x15c(%rbp), %ecx
shrl $0x18, %ecx
movl %ecx, %ecx
movzbl (%rax,%rcx), %edx
shll $0x18, %edx
movq -0x158(%rbp), %rax
movl -0x168(%rbp), %ecx
shrl $0x10, %ecx
andl $0xff, %ecx
movl %ecx, %ecx
movzbl (%rax,%rcx), %eax
shll $0x10, %eax
xorl %eax, %edx
movq -0x158(%rbp), %rax
movl -0x164(%rbp), %ecx
shrl $0x8, %ecx
andl $0xff, %ecx
movl %ecx, %ecx
movzbl (%rax,%rcx), %eax
shll $0x8, %eax
xorl %eax, %edx
movq -0x158(%rbp), %rax
movl -0x160(%rbp), %ecx
andl $0xff, %ecx
movl %ecx, %ecx
movzbl (%rax,%rcx), %eax
xorl %eax, %edx
xorl -0x6c(%rbp), %edx
movq -0x30(%rbp), %rax
movl -0x34(%rbp), %ecx
shll $0x2, %ecx
addl $0x1, %ecx
movslq %ecx, %rcx
movl %edx, (%rax,%rcx,4)
movq -0x158(%rbp), %rax
movl -0x160(%rbp), %ecx
shrl $0x18, %ecx
movl %ecx, %ecx
movzbl (%rax,%rcx), %edx
shll $0x18, %edx
movq -0x158(%rbp), %rax
movl -0x15c(%rbp), %ecx
shrl $0x10, %ecx
andl $0xff, %ecx
movl %ecx, %ecx
movzbl (%rax,%rcx), %eax
shll $0x10, %eax
xorl %eax, %edx
movq -0x158(%rbp), %rax
movl -0x168(%rbp), %ecx
shrl $0x8, %ecx
andl $0xff, %ecx
movl %ecx, %ecx
movzbl (%rax,%rcx), %eax
shll $0x8, %eax
xorl %eax, %edx
movq -0x158(%rbp), %rax
movl -0x164(%rbp), %ecx
andl $0xff, %ecx
movl %ecx, %ecx
movzbl (%rax,%rcx), %eax
xorl %eax, %edx
xorl -0x68(%rbp), %edx
movq -0x30(%rbp), %rax
movl -0x34(%rbp), %ecx
shll $0x2, %ecx
addl $0x2, %ecx
movslq %ecx, %rcx
movl %edx, (%rax,%rcx,4)
movq -0x158(%rbp), %rax
movl -0x164(%rbp), %ecx
shrl $0x18, %ecx
movl %ecx, %ecx
movzbl (%rax,%rcx), %edx
shll $0x18, %edx
movq -0x158(%rbp), %rax
movl -0x160(%rbp), %ecx
shrl $0x10, %ecx
andl $0xff, %ecx
movl %ecx, %ecx
movzbl (%rax,%rcx), %eax
shll $0x10, %eax
xorl %eax, %edx
movq -0x158(%rbp), %rax
movl -0x15c(%rbp), %ecx
shrl $0x8, %ecx
andl $0xff, %ecx
movl %ecx, %ecx
movzbl (%rax,%rcx), %eax
shll $0x8, %eax
xorl %eax, %edx
movq -0x158(%rbp), %rax
movl -0x168(%rbp), %ecx
andl $0xff, %ecx
movl %ecx, %ecx
movzbl (%rax,%rcx), %eax
xorl %eax, %edx
xorl -0x64(%rbp), %edx
movq -0x30(%rbp), %rax
movl -0x34(%rbp), %ecx
shll $0x2, %ecx
addl $0x3, %ecx
movslq %ecx, %rcx
movl %edx, (%rax,%rcx,4)
movl -0x34(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x34(%rbp)
jmp 0x60e1
leaq -0x150(%rbp), %rdi
xorl %esi, %esi
movl $0xf0, %edx
callq 0x1090
addq $0x220, %rsp            # imm = 0x220
popq %rbp
retq
nopw %cs:(%rax,%rax)