// File: /workspace/github_cpp_makefile_star2_O3/kobanium[P]Ray/src/pattern/Pattern.cpp
// Function: UpdatePatternEmpty(pattern_t*, int)
void
UpdatePatternEmpty( pattern_t *pat, const int pos )
{
  //  3x3 
  pat[pos + NW].list[MD_2] &= 0xFF3FFF;
  pat[pos +  N].list[MD_2] &= 0xFFCFFF;
  pat[pos + NE].list[MD_2] &= 0xFFF3FF;
  pat[pos +  W].list[MD_2] &= 0xFFFCFF;
  pat[pos +  E].list[MD_2] &= 0xFFFF3F;
  pat[pos + SW].list[MD_2] &= 0xFFFFCF;
  pat[pos +  S].list[MD_2] &= 0xFFFFF3;
  pat[pos + SE].list[MD_2] &= 0xFFFFFC;

  //  md2
  pat[pos + NN].list[MD_2] &= 0xCFFFFF;
  pat[pos + EE].list[MD_2] &= 0x3FFFFF;
  pat[pos + SS].list[MD_2] &= 0xFCFFFF;
  pat[pos + WW].list[MD_2] &= 0xF3FFFF;

  //  md3
  pat[pos + NN + N].list[MD_3] &= 0xFFCFFF;
  pat[pos + NN + E].list[MD_3] &= 0xFF3FFF;
  pat[pos + EE + N].list[MD_3] &= 0xFCFFFF;
  pat[pos + EE + E].list[MD_3] &= 0xF3FFFF;
  pat[pos + EE + S].list[MD_3] &= 0xCFFFFF;
  pat[pos + SS + E].list[MD_3] &= 0x3FFFFF;
  pat[pos + SS + S].list[MD_3] &= 0xFFFFFC;
  pat[pos + SS + W].list[MD_3] &= 0xFFFFF3;
  pat[pos + WW + S].list[MD_3] &= 0xFFFFCF;
  pat[pos + WW + W].list[MD_3] &= 0xFFFF3F;
  pat[pos + WW + N].list[MD_3] &= 0xFFFCFF;
  pat[pos + NN + W].list[MD_3] &= 0xFFF3FF;

  // md4
  pat[pos + NN + NN].list[MD_4] &= 0xFFFCFFFF;
  pat[pos + NN + NE].list[MD_4] &= 0xFFF3FFFF;
  pat[pos + NE + NE].list[MD_4] &= 0xFFCFFFFF;
  pat[pos + EE + NE].list[MD_4] &= 0xFF3FFFFF;
  pat[pos + EE + EE].list[MD_4] &= 0xFCFFFFFF;
  pat[pos + EE + SE].list[MD_4] &= 0xF3FFFFFF;
  pat[pos + SE + SE].list[MD_4] &= 0xCFFFFFFF;
  pat[pos + SS + SE].list[MD_4] &= 0x3FFFFFFF;
  pat[pos + SS + SS].list[MD_4] &= 0xFFFFFFFC;
  pat[pos + SS + SW].list[MD_4] &= 0xFFFFFFF3;
  pat[pos + SW + SW].list[MD_4] &= 0xFFFFFFCF;
  pat[pos + WW + SW].list[MD_4] &= 0xFFFFFF3F;
  pat[pos + WW + WW].list[MD_4] &= 0xFFFFFCFF;
  pat[pos + WW + NW].list[MD_4] &= 0xFFFFF3FF;
  pat[pos + NW + NW].list[MD_4] &= 0xFFFFCFFF;
  pat[pos + NN + NW].list[MD_4] &= 0xFFFF3FFF;

  // md5
  pat[pos + NN + NN + N].large_list[MD_5] &= 0xFFFFCFFFFF;
  pat[pos + NN + NN + E].large_list[MD_5] &= 0xFFFF3FFFFF;
  pat[pos + NN + NE + E].large_list[MD_5] &= 0xFFFCFFFFFF;
  pat[pos + NN + EE + E].large_list[MD_5] &= 0xFFF3FFFFFF;
  pat[pos + NE + EE + E].large_list[MD_5] &= 0xFFCFFFFFFF;
  pat[pos + EE + EE + E].large_list[MD_5] &= 0xFF3FFFFFFF;
  pat[pos + SE + EE + E].large_list[MD_5] &= 0xFCFFFFFFFF;
  pat[pos + SS + EE + E].large_list[MD_5] &= 0xF3FFFFFFFF;
  pat[pos + SS + SE + E].large_list[MD_5] &= 0xCFFFFFFFFF;
  pat[pos + SS + SS + E].large_list[MD_5] &= 0x3FFFFFFFFF;
  pat[pos + SS + SS + S].large_list[MD_5] &= 0xFFFFFFFFFC;
  pat[pos + SS + SS + W].large_list[MD_5] &= 0xFFFFFFFFF3;
  pat[pos + SS + SW + W].large_list[MD_5] &= 0xFFFFFFFFCF;
  pat[pos + SS + WW + W].large_list[MD_5] &= 0xFFFFFFFF3F;
  pat[pos + SW + WW + W].large_list[MD_5] &= 0xFFFFFFFCFF;
  pat[pos + WW + WW + W].large_list[MD_5] &= 0xFFFFFFF3FF;
  pat[pos + NW + WW + W].large_list[MD_5] &= 0xFFFFFFCFFF;
  pat[pos + NN + WW + W].large_list[MD_5] &= 0xFFFFFF3FFF;
  pat[pos + NN + NW + W].large_list[MD_5] &= 0xFFFFFCFFFF;
  pat[pos + NN + NN + W].large_list[MD_5] &= 0xFFFFF3FFFF;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
leaq 0x2841c(%rip), %r8      # 0x768bc
movl (%r8), %eax
notl %eax
addl %esi, %eax
cltq
leaq (%rax,%rax,2), %rax
movl $0xff3fff, %ecx         # imm = 0xFF3FFF
andl %ecx, (%rdi,%rax,8)
movslq (%r8), %rcx
movslq %esi, %rax
movq %rax, %rsi
subq %rcx, %rsi
leaq (%rsi,%rsi,2), %rcx
movl $0xffcfff, %ebp         # imm = 0xFFCFFF
andl %ebp, (%rdi,%rcx,8)
leal 0x1(%rax), %ecx
movl %ecx, %esi
subl (%r8), %esi
movslq %esi, %rsi
leaq (%rsi,%rsi,2), %rsi
movl $0xfff3ff, %edx         # imm = 0xFFF3FF
andl %edx, (%rdi,%rsi,8)
leaq (%rax,%rax,2), %rbx
movl $0xfffcff, %edx         # imm = 0xFFFCFF
andl %edx, -0x18(%rdi,%rbx,8)
movl $0xffff3f, %edx         # imm = 0xFFFF3F
andl %edx, 0x18(%rdi,%rbx,8)
leal -0x1(%rax), %esi
addl (%r8), %esi
movslq %esi, %rsi
leaq (%rsi,%rsi,2), %rsi
movl $0xffffcf, %edx         # imm = 0xFFFFCF
andl %edx, (%rdi,%rsi,8)
movslq (%r8), %rsi
addq %rax, %rsi
leaq (%rsi,%rsi,2), %r14
movl $0xfffff3, %r10d        # imm = 0xFFFFF3
andl %r10d, (%rdi,%r14,8)
addl (%r8), %ecx
movslq %ecx, %rcx
leaq (%rcx,%rcx,2), %rcx
movl $0xfffffc, %r14d        # imm = 0xFFFFFC
andl %r14d, (%rdi,%rcx,8)
movl (%r8), %ecx
addl %ecx, %ecx
movl %eax, %r15d
subl %ecx, %r15d
movslq %r15d, %rcx
leaq (%rcx,%rcx,2), %rcx
movl $0xcfffff, %r12d        # imm = 0xCFFFFF
andl %r12d, (%rdi,%rcx,8)
leal 0x2(%rax), %ecx
movslq %ecx, %rdx
leaq (%rdx,%rdx,2), %r15
movl $0x3fffff, %r13d        # imm = 0x3FFFFF
andl %r13d, (%rdi,%r15,8)
movslq (%r8), %r15
leaq (%rax,%r15,2), %r15
leaq (%r15,%r15,2), %r15
movl $0xfcffff, %r9d         # imm = 0xFCFFFF
andl %r9d, (%rdi,%r15,8)
leal -0x2(%rax), %r15d
movslq %r15d, %r15
leaq (%r15,%r15,2), %rcx
movl $0xf3ffff, %esi         # imm = 0xF3FFFF
andl %esi, (%rdi,%rcx,8)
movl (%r8), %ecx
leal (%rcx,%rcx,2), %ecx
movl %eax, %r11d
subl %ecx, %r11d
movslq %r11d, %rcx
leaq (%rcx,%rcx,2), %rcx
andl %ebp, 0x4(%rdi,%rcx,8)
movl (%r8), %ecx
addl %ecx, %ecx
movl %eax, %r11d
subl %ecx, %r11d
movslq %r11d, %rcx
leaq (%rcx,%rcx,2), %rcx
movl $0xff3fff, %r11d        # imm = 0xFF3FFF
andl %r11d, 0x1c(%rdi,%rcx,8)
movl (%r8), %ecx
movl %edx, %r11d
subl %ecx, %r11d
movslq %r11d, %rcx
leaq (%rcx,%rcx,2), %rcx
andl %r9d, 0x4(%rdi,%rcx,8)
andl %esi, 0x4c(%rdi,%rbx,8)
movslq (%r8), %rcx
addq %rdx, %rcx
leaq (%rcx,%rcx,2), %rcx
andl %r12d, 0x4(%rdi,%rcx,8)
movslq (%r8), %rcx
leaq (%rax,%rcx,2), %rcx
leaq (%rcx,%rcx,2), %rcx
andl %r13d, 0x1c(%rdi,%rcx,8)
movl (%r8), %ecx
movl %ecx, %edx
addl %eax, %edx
leal (%rdx,%rcx,2), %ecx
movslq %ecx, %rcx
leaq (%rcx,%rcx,2), %rcx
andl %r14d, 0x4(%rdi,%rcx,8)
movslq (%r8), %rcx
leaq (%rax,%rcx,2), %rcx
leaq (%rcx,%rcx,2), %rcx
andl %r10d, -0x14(%rdi,%rcx,8)
movslq (%r8), %rcx
addq %r15, %rcx
leaq (%rcx,%rcx,2), %rcx
movl $0xffffcf, %edx         # imm = 0xFFFFCF
andl %edx, 0x4(%rdi,%rcx,8)
movl $0xffff3f, %ecx         # imm = 0xFFFF3F
andl %ecx, -0x44(%rdi,%rbx,8)
subl (%r8), %r15d
movslq %r15d, %rcx
leaq (%rcx,%rcx,2), %rcx
movl $0xfffcff, %edx         # imm = 0xFFFCFF
andl %edx, 0x4(%rdi,%rcx,8)
movl (%r8), %ecx
addl %ecx, %ecx
notl %ecx
addl %eax, %ecx
movslq %ecx, %rcx
leaq (%rcx,%rcx,2), %rcx
movl $0xfff3ff, %edx         # imm = 0xFFF3FF
andl %edx, 0x4(%rdi,%rcx,8)
movl (%r8), %ecx
shll $0x2, %ecx
movl %eax, %edx
subl %ecx, %edx
movslq %edx, %rcx
leaq (%rcx,%rcx,2), %rcx
andl $0xfffcffff, 0x8(%rdi,%rcx,8) # imm = 0xFFFCFFFF
movl (%r8), %ecx
leal (%rcx,%rcx,2), %ecx
negl %ecx
addl %eax, %ecx
incl %ecx
movslq %ecx, %rcx
leaq (%rcx,%rcx,2), %rcx
andl $0xfff3ffff, 0x8(%rdi,%rcx,8) # imm = 0xFFF3FFFF
movl (%r8), %ecx
addl %ecx, %ecx
negl %ecx
addl %eax, %ecx
addl $0x2, %ecx
movslq %ecx, %rcx
leaq (%rcx,%rcx,2), %rcx
andl $0xffcfffff, 0x8(%rdi,%rcx,8) # imm = 0xFFCFFFFF
leal 0x3(%rax), %ecx
movl %ecx, %edx
subl (%r8), %edx
movslq %edx, %rdx
leaq (%rdx,%rdx,2), %rdx
andl $0xff3fffff, 0x8(%rdi,%rdx,8) # imm = 0xFF3FFFFF
leal 0x4(%rax), %edx
movslq %edx, %rsi
leaq (%rsi,%rsi,2), %rdx
andb $-0x4, 0xb(%rdi,%rdx,8)
addl (%r8), %ecx
movslq %ecx, %rcx
leaq (%rcx,%rcx,2), %rcx
andl $0xf3ffffff, 0x8(%rdi,%rcx,8) # imm = 0xF3FFFFFF
movl (%r8), %ecx
leal (%rax,%rcx,2), %ecx
addl $0x2, %ecx
movslq %ecx, %rcx
leaq (%rcx,%rcx,2), %rcx
andl $0xcfffffff, 0x8(%rdi,%rcx,8) # imm = 0xCFFFFFFF
movl (%r8), %ecx
leal (%rax,%rcx), %edx
incl %edx
leal (%rdx,%rcx,2), %ecx
movslq %ecx, %rcx
leaq (%rcx,%rcx,2), %rcx
andl $0x3fffffff, 0x8(%rdi,%rcx,8) # imm = 0x3FFFFFFF
movl (%r8), %ecx
leal (%rax,%rcx,4), %ecx
movslq %ecx, %rcx
leaq (%rcx,%rcx,2), %rcx
andl $-0x4, 0x8(%rdi,%rcx,8)
movl (%r8), %ecx
leal (%rax,%rcx), %edx
decl %edx
leal (%rdx,%rcx,2), %ecx
movslq %ecx, %rcx
leaq (%rcx,%rcx,2), %rcx
andl $-0xd, 0x8(%rdi,%rcx,8)
movl (%r8), %ecx
leal (%rax,%rcx,2), %ecx
addl $-0x2, %ecx
movslq %ecx, %rcx
leaq (%rcx,%rcx,2), %rcx
andl $-0x31, 0x8(%rdi,%rcx,8)
movl (%r8), %ecx
addl %eax, %ecx
addl $-0x3, %ecx
movslq %ecx, %rcx
leaq (%rcx,%rcx,2), %rcx
andl $0xffffff3f, 0x8(%rdi,%rcx,8) # imm = 0xFFFFFF3F
leal -0x4(%rax), %ecx
movslq %ecx, %rcx
leaq (%rcx,%rcx,2), %rcx
andb $-0x4, 0x9(%rdi,%rcx,8)
movl (%r8), %ecx
notl %ecx
addl %eax, %ecx
addl $-0x2, %ecx
movslq %ecx, %rcx
leaq (%rcx,%rcx,2), %rcx
andl $0xfffff3ff, 0x8(%rdi,%rcx,8) # imm = 0xFFFFF3FF
movl (%r8), %ecx
notl %ecx
leal (%rax,%rcx,2), %ecx
movslq %ecx, %rcx
leaq (%rcx,%rcx,2), %rcx
andl $0xffffcfff, 0x8(%rdi,%rcx,8) # imm = 0xFFFFCFFF
movl (%r8), %ecx
movl %ecx, %edx
notl %edx
addl %eax, %edx
addl %ecx, %ecx
subl %ecx, %edx
movslq %edx, %rcx
leaq (%rcx,%rcx,2), %rcx
andl $0xffff3fff, 0x8(%rdi,%rcx,8) # imm = 0xFFFF3FFF
movl (%r8), %edx
leal (%rdx,%rdx,4), %ecx
movl %eax, %r10d
movl %eax, %r8d
subl %ecx, %r8d
movslq %r8d, %rcx
leaq (%rcx,%rcx,2), %rcx
movabsq $0xffcfffffff, %r8      # imm = 0xFFCFFFFFFF
leaq 0x2fd00000(%r8), %r9
andq %r9, 0x10(%rdi,%rcx,8)
leal (,%rdx,4), %r9d
subl %r9d, %r10d
movslq %r10d, %rcx
leaq (%rcx,%rcx,2), %rcx
leaq 0x2f400000(%r8), %r10
andq %r10, 0x28(%rdi,%rcx,8)
leal (%rdx,%rdx,2), %ecx
negl %ecx
addl %eax, %ecx
addl $0x2, %ecx
movl %eax, %r10d
movslq %ecx, %rcx
leaq (%rcx,%rcx,2), %rcx
leaq 0x2d000000(%r8), %r11
andq %r11, 0x10(%rdi,%rcx,8)
subl %edx, %r10d
subl %edx, %r10d
movslq %r10d, %r10
leaq (%r10,%r10,2), %r11
leaq 0x24000000(%r8), %rcx
andq %rcx, 0x58(%rdi,%r11,8)
subl %edx, %esi
movslq %esi, %rcx
leaq (%rcx,%rcx,2), %rcx
andq %r8, 0x10(%rdi,%rcx,8)
movabsq $0xff3fffffff, %rcx     # imm = 0xFF3FFFFFFF
andq %rcx, 0x88(%rdi,%rbx,8)
leal (%rdx,%rax), %ecx
incl %ecx
leal (%rax,%rdx,2), %esi
movslq %ecx, %rcx
leaq (%rcx,%rcx,2), %rcx
andl $0xfc, 0x5c(%rdi,%rcx,8)
movslq %esi, %rsi
leaq (%rsi,%rsi,2), %rcx
andl $0xf3, 0x5c(%rdi,%rcx,8)
leal (%rax,%rdx,4), %ebp
leal (%rdx,%rsi), %r14d
incl %r14d
movslq %r14d, %r14
leaq (%r14,%r14,2), %r14
andl $0xcf, 0x2c(%rdi,%r14,8)
movslq %ebp, %r14
leaq (%r14,%r14,2), %r15
andl $0x3f, 0x2c(%rdi,%r15,8)
addl %edx, %r14d
movslq %r14d, %r14
leaq (%r14,%r14,2), %r14
leaq 0x2ffffffd(%r8), %r12
andq %r12, 0x10(%rdi,%r14,8)
leaq 0x2ffffff4(%r8), %r14
andq %r14, -0x8(%rdi,%r15,8)
addl %edx, %esi
decl %esi
movslq %esi, %rsi
leaq (%rsi,%rsi,2), %rsi
leaq 0x2fffffd0(%r8), %r14
andq %r14, -0x8(%rdi,%rsi,8)
leaq 0x2fffff40(%r8), %rsi
andq %rsi, -0x38(%rdi,%rcx,8)
leal (%rdx,%rax), %ecx
decl %ecx
movslq %ecx, %rcx
leaq (%rcx,%rcx,2), %rcx
leaq 0x2ffffd00(%r8), %rsi
andq %rsi, -0x38(%rdi,%rcx,8)
leaq 0x2ffff400(%r8), %rcx
andq %rcx, -0x68(%rdi,%rbx,8)
notl %edx
leal (%rdx,%rax), %ecx
movslq %ecx, %rcx
leaq (%rcx,%rcx,2), %rcx
leaq 0x2fffd000(%r8), %rsi
andq %rsi, -0x38(%rdi,%rcx,8)
leaq 0x2fff4000(%r8), %rcx
andq %rcx, -0x38(%rdi,%r11,8)
addl %edx, %r10d
movslq %r10d, %rcx
leaq (%rcx,%rcx,2), %rcx
leaq 0x2ffd0000(%r8), %rdx
andq %rdx, -0x8(%rdi,%rcx,8)
notl %r9d
addl %eax, %r9d
movslq %r9d, %rax
leaq (%rax,%rax,2), %rax
addq $0x2ff40000, %r8        # imm = 0x2FF40000
andq %r8, 0x10(%rdi,%rax,8)
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq