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