// File: kobanium[P]Ray/src/pattern/Pattern.cpp
// Function: ClearPattern(pattern_t*)
void
ClearPattern( pattern_t *pat )
{
  memset(pat, 0, sizeof(pattern_t) * board_max); 

  for (int y = board_start; y <= board_end; y++){
    // 1線
    // 上
    pat[POS(y, board_start)].list[MD_2] |= 0x0003003F;  // 1 2 3 9
    pat[POS(y, board_start)].list[MD_3] |= 0x00F0003F;  // 13 14 15 23 24
    pat[POS(y, board_start)].list[MD_4] |= 0xFC0000FF;  // 25 26 27 28 38 39 40
    pat[POS(y, board_start)].large_list[MD_5] |= 0xFF000003FF;
    // 右
    pat[POS(board_end, y)].list[MD_2] |= 0x000CC330;  // 3 5 8 10
    pat[POS(board_end, y)].list[MD_3] |= 0x00000FFC;  // 14 15 16 17 18
    pat[POS(board_end, y)].list[MD_4] |= 0x0000FFFC;  // 26 27 28 29 30 31 32
    pat[POS(board_end, y)].large_list[MD_5] |= 0x00000FFFFC;
    // 下
    pat[POS(y, board_end)].list[MD_2] |= 0x0030FC00;  // 6 7 8 11
    pat[POS(y, board_end)].list[MD_3] |= 0x0003FF00;  // 17 18 19 20 21
    pat[POS(y, board_end)].list[MD_4] |= 0x00FFFC00;  // 30 31 32 33 34 35 36
    pat[POS(y, board_end)].large_list[MD_5] |= 0x003FFFF000;
    // 左
    pat[POS(board_start, y)].list[MD_2] |= 0x00C00CC3;  // 1 4 6 12
    pat[POS(board_start, y)].list[MD_3] |= 0x00FFC000;  // 20 21 22 23 24
    pat[POS(board_start, y)].list[MD_4] |= 0xFFFC0000;  // 34 35 36 37 38 39 40
    pat[POS(board_start, y)].large_list[MD_5] |= 0xFFFFC00000;

    // 2線
    // 上
    pat[POS(y, board_start + 1)].list[MD_2] |= 0x00030000;  // 9
    pat[POS(y, board_start + 1)].list[MD_3] |= 0x00C0000F;  // 13 14 24
    pat[POS(y, board_start + 1)].list[MD_4] |= 0xF000003F;  // 25 26 27 39 40
    pat[POS(y, board_start + 1)].large_list[MD_5] |= 0xFC000000FF;
    // 右
    pat[POS(board_end - 1, y)].list[MD_2] |= 0x000C0000;  // 10
    pat[POS(board_end - 1, y)].list[MD_3] |= 0x000003F0;  // 15 16 17
    pat[POS(board_end - 1, y)].list[MD_4] |= 0x00003FF0;  // 27 28 29 30 31
    pat[POS(board_end - 1, y)].large_list[MD_5] |= 0x000003FFF0;
    // 下
    pat[POS(y, board_end - 1)].list[MD_2] |= 0x00300000;  // 11
    pat[POS(y, board_end - 1)].list[MD_3] |= 0x0000FC00;  // 18 19 20
    pat[POS(y, board_end - 1)].list[MD_4] |= 0x003FF000;  // 31 32 33 34 35
    pat[POS(y, board_end - 1)].large_list[MD_5] |= 0x000FFFC000;
    // 左
    pat[POS(board_start + 1, y)].list[MD_2] |= 0x00C00000;  // 12
    pat[POS(board_start + 1, y)].list[MD_3] |= 0x003F0000;  // 21 22 23
    pat[POS(board_start + 1, y)].list[MD_4] |= 0x3FF00000;  // 35 36 37 38 39
    pat[POS(board_start + 1, y)].large_list[MD_5] |= 0x3FFF000000;

    // 3線
    // 上
    pat[POS(y, board_start + 2)].list[MD_3] |= 0x00000003;  // 13
    pat[POS(y, board_start + 2)].list[MD_4] |= 0xC000000F;  // 25 26 40
    pat[POS(y, board_start + 2)].large_list[MD_5] |= 0xF00000003F;
    // 右
    pat[POS(board_end - 2, y)].list[MD_3] |= 0x000000C0;  // 16
    pat[POS(board_end - 2, y)].list[MD_4] |= 0x00000FC0;  // 28 29 30
    pat[POS(board_end - 2, y)].large_list[MD_5] |= 0x000000FFC0;
    // 下
    pat[POS(y, board_end - 2)].list[MD_3] |= 0x00003000;  // 19
    pat[POS(y, board_end - 2)].list[MD_4] |= 0x000FC000;  // 32 33 34
    pat[POS(y, board_end - 2)].large_list[MD_5] |= 0x0003FF0000;
    // 左
    pat[POS(board_start + 2, y)].list[MD_3] |= 0x000C0000;  // 22
    pat[POS(board_start + 2, y)].list[MD_4] |= 0x0FC00000;  // 36 37 38
    pat[POS(board_start + 2, y)].large_list[MD_5] |= 0x0FFC000000;

    // 4線 
    // 上
    pat[POS(y, board_start + 3)].list[MD_4] |= 0x00000003;  // 25
    pat[POS(y, board_start + 3)].large_list[MD_5] |= 0xC00000000F;
    // 右
    pat[POS(board_end - 3, y)].list[MD_4] |= 0x00000300;  // 29
    pat[POS(board_end - 3, y)].large_list[MD_5] |= 0x0000003F00;
    // 下
    pat[POS(y, board_end - 3)].list[MD_4] |= 0x00030000;  // 33
    pat[POS(y, board_end - 3)].large_list[MD_5] |= 0x0000FC0000;
    // 左
    pat[POS(board_start + 3, y)].list[MD_4] |= 0x03000000;  // 37
    pat[POS(board_start + 3, y)].large_list[MD_5] |= 0x03F0000000;

    // 5線
    // 上
    pat[POS(y, board_start + 4)].large_list[MD_5] |= 0x0000000003;
    // 右
    pat[POS(board_end - 4, y)].large_list[MD_5] |= 0x0000000C00;
    // 下
    pat[POS(y, board_end - 4)].large_list[MD_5] |= 0x0000300000;
    // 左
    pat[POS(board_start + 4, y)].large_list[MD_5] |= 0x00C0000000;
  }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rdi
leaq 0x57e21(%rip), %rax     # 0xe7a48
movslq (%rax), %rax
imulq $0x18, %rax, %rdx
xorl %esi, %esi
callq 0x72b0
leaq 0x57e14(%rip), %rax     # 0xe7a50
movl (%rax), %eax
movl %eax, -0xc(%rbp)
movl -0xc(%rbp), %eax
leaq 0x57e09(%rip), %rcx     # 0xe7a54
cmpl (%rcx), %eax
jg 0x90807
movq -0x8(%rbp), %rax
movl -0xc(%rbp), %ecx
leaq 0x57def(%rip), %rdx     # 0xe7a50
movl (%rdx), %edx
leaq 0x57de2(%rip), %rsi     # 0xe7a4c
imull (%rsi), %edx
addl %edx, %ecx
movslq %ecx, %rcx
imulq $0x18, %rcx, %rcx
addq %rcx, %rax
movl (%rax), %ecx
orl $0x3003f, %ecx          # imm = 0x3003F
movl %ecx, (%rax)
movq -0x8(%rbp), %rax
movl -0xc(%rbp), %ecx
leaq 0x57dbf(%rip), %rdx     # 0xe7a50
movl (%rdx), %edx
leaq 0x57db2(%rip), %rsi     # 0xe7a4c
imull (%rsi), %edx
addl %edx, %ecx
movslq %ecx, %rcx
imulq $0x18, %rcx, %rcx
addq %rcx, %rax
movl 0x4(%rax), %ecx
orl $0xf0003f, %ecx         # imm = 0xF0003F
movl %ecx, 0x4(%rax)
movq -0x8(%rbp), %rax
movl -0xc(%rbp), %ecx
leaq 0x57d8d(%rip), %rdx     # 0xe7a50
movl (%rdx), %edx
leaq 0x57d80(%rip), %rsi     # 0xe7a4c
imull (%rsi), %edx
addl %edx, %ecx
movslq %ecx, %rcx
imulq $0x18, %rcx, %rcx
addq %rcx, %rax
movl 0x8(%rax), %ecx
orl $0xfc0000ff, %ecx       # imm = 0xFC0000FF
movl %ecx, 0x8(%rax)
movq -0x8(%rbp), %rax
movl -0xc(%rbp), %ecx
leaq 0x57d5b(%rip), %rdx     # 0xe7a50
movl (%rdx), %edx
leaq 0x57d4e(%rip), %rsi     # 0xe7a4c
imull (%rsi), %edx
addl %edx, %ecx
movslq %ecx, %rcx
imulq $0x18, %rcx, %rcx
addq %rcx, %rax
movabsq $0xff000003ff, %rcx     # imm = 0xFF000003FF
orq 0x10(%rax), %rcx
movq %rcx, 0x10(%rax)
movq -0x8(%rbp), %rax
leaq 0x57d2a(%rip), %rcx     # 0xe7a54
movl (%rcx), %ecx
movl -0xc(%rbp), %edx
leaq 0x57d16(%rip), %rsi     # 0xe7a4c
imull (%rsi), %edx
addl %edx, %ecx
movslq %ecx, %rcx
imulq $0x18, %rcx, %rcx
addq %rcx, %rax
movl (%rax), %ecx
orl $0xcc330, %ecx          # imm = 0xCC330
movl %ecx, (%rax)
movq -0x8(%rbp), %rax
leaq 0x57cfa(%rip), %rcx     # 0xe7a54
movl (%rcx), %ecx
movl -0xc(%rbp), %edx
leaq 0x57ce6(%rip), %rsi     # 0xe7a4c
imull (%rsi), %edx
addl %edx, %ecx
movslq %ecx, %rcx
imulq $0x18, %rcx, %rcx
addq %rcx, %rax
movl 0x4(%rax), %ecx
orl $0xffc, %ecx            # imm = 0xFFC
movl %ecx, 0x4(%rax)
movq -0x8(%rbp), %rax
leaq 0x57cc8(%rip), %rcx     # 0xe7a54
movl (%rcx), %ecx
movl -0xc(%rbp), %edx
leaq 0x57cb4(%rip), %rsi     # 0xe7a4c
imull (%rsi), %edx
addl %edx, %ecx
movslq %ecx, %rcx
imulq $0x18, %rcx, %rcx
addq %rcx, %rax
movl 0x8(%rax), %ecx
orl $0xfffc, %ecx           # imm = 0xFFFC
movl %ecx, 0x8(%rax)
movq -0x8(%rbp), %rax
leaq 0x57c96(%rip), %rcx     # 0xe7a54
movl (%rcx), %ecx
movl -0xc(%rbp), %edx
leaq 0x57c82(%rip), %rsi     # 0xe7a4c
imull (%rsi), %edx
addl %edx, %ecx
movslq %ecx, %rcx
imulq $0x18, %rcx, %rcx
addq %rcx, %rax
movq 0x10(%rax), %rcx
orq $0xffffc, %rcx          # imm = 0xFFFFC
movq %rcx, 0x10(%rax)
movq -0x8(%rbp), %rax
movl -0xc(%rbp), %ecx
leaq 0x57c5e(%rip), %rdx     # 0xe7a54
movl (%rdx), %edx
leaq 0x57c4d(%rip), %rsi     # 0xe7a4c
imull (%rsi), %edx
addl %edx, %ecx
movslq %ecx, %rcx
imulq $0x18, %rcx, %rcx
addq %rcx, %rax
movl (%rax), %ecx
orl $0x30fc00, %ecx         # imm = 0x30FC00
movl %ecx, (%rax)
movq -0x8(%rbp), %rax
movl -0xc(%rbp), %ecx
leaq 0x57c2e(%rip), %rdx     # 0xe7a54
movl (%rdx), %edx
leaq 0x57c1d(%rip), %rsi     # 0xe7a4c
imull (%rsi), %edx
addl %edx, %ecx
movslq %ecx, %rcx
imulq $0x18, %rcx, %rcx
addq %rcx, %rax
movl 0x4(%rax), %ecx
orl $0x3ff00, %ecx          # imm = 0x3FF00
movl %ecx, 0x4(%rax)
movq -0x8(%rbp), %rax
movl -0xc(%rbp), %ecx
leaq 0x57bfc(%rip), %rdx     # 0xe7a54
movl (%rdx), %edx
leaq 0x57beb(%rip), %rsi     # 0xe7a4c
imull (%rsi), %edx
addl %edx, %ecx
movslq %ecx, %rcx
imulq $0x18, %rcx, %rcx
addq %rcx, %rax
movl 0x8(%rax), %ecx
orl $0xfffc00, %ecx         # imm = 0xFFFC00
movl %ecx, 0x8(%rax)
movq -0x8(%rbp), %rax
movl -0xc(%rbp), %ecx
leaq 0x57bca(%rip), %rdx     # 0xe7a54
movl (%rdx), %edx
leaq 0x57bb9(%rip), %rsi     # 0xe7a4c
imull (%rsi), %edx
addl %edx, %ecx
movslq %ecx, %rcx
imulq $0x18, %rcx, %rcx
addq %rcx, %rax
movq 0x10(%rax), %rcx
orq $0x3ffff000, %rcx       # imm = 0x3FFFF000
movq %rcx, 0x10(%rax)
movq -0x8(%rbp), %rax
leaq 0x57b94(%rip), %rcx     # 0xe7a50
movl (%rcx), %ecx
movl -0xc(%rbp), %edx
leaq 0x57b84(%rip), %rsi     # 0xe7a4c
imull (%rsi), %edx
addl %edx, %ecx
movslq %ecx, %rcx
imulq $0x18, %rcx, %rcx
addq %rcx, %rax
movl (%rax), %ecx
orl $0xc00cc3, %ecx         # imm = 0xC00CC3
movl %ecx, (%rax)
movq -0x8(%rbp), %rax
leaq 0x57b64(%rip), %rcx     # 0xe7a50
movl (%rcx), %ecx
movl -0xc(%rbp), %edx
leaq 0x57b54(%rip), %rsi     # 0xe7a4c
imull (%rsi), %edx
addl %edx, %ecx
movslq %ecx, %rcx
imulq $0x18, %rcx, %rcx
addq %rcx, %rax
movl 0x4(%rax), %ecx
orl $0xffc000, %ecx         # imm = 0xFFC000
movl %ecx, 0x4(%rax)
movq -0x8(%rbp), %rax
leaq 0x57b32(%rip), %rcx     # 0xe7a50
movl (%rcx), %ecx
movl -0xc(%rbp), %edx
leaq 0x57b22(%rip), %rsi     # 0xe7a4c
imull (%rsi), %edx
addl %edx, %ecx
movslq %ecx, %rcx
imulq $0x18, %rcx, %rcx
addq %rcx, %rax
movl 0x8(%rax), %ecx
orl $0xfffc0000, %ecx       # imm = 0xFFFC0000
movl %ecx, 0x8(%rax)
movq -0x8(%rbp), %rax
leaq 0x57b00(%rip), %rcx     # 0xe7a50
movl (%rcx), %ecx
movl -0xc(%rbp), %edx
leaq 0x57af0(%rip), %rsi     # 0xe7a4c
imull (%rsi), %edx
addl %edx, %ecx
movslq %ecx, %rcx
imulq $0x18, %rcx, %rcx
addq %rcx, %rax
movabsq $0xffffc00000, %rcx     # imm = 0xFFFFC00000
orq 0x10(%rax), %rcx
movq %rcx, 0x10(%rax)
movq -0x8(%rbp), %rax
movl -0xc(%rbp), %ecx
leaq 0x57ac5(%rip), %rdx     # 0xe7a50
movl (%rdx), %edx
addl $0x1, %edx
leaq 0x57ab5(%rip), %rsi     # 0xe7a4c
imull (%rsi), %edx
addl %edx, %ecx
movslq %ecx, %rcx
imulq $0x18, %rcx, %rcx
addq %rcx, %rax
movl (%rax), %ecx
orl $0x30000, %ecx          # imm = 0x30000
movl %ecx, (%rax)
movq -0x8(%rbp), %rax
movl -0xc(%rbp), %ecx
leaq 0x57a92(%rip), %rdx     # 0xe7a50
movl (%rdx), %edx
addl $0x1, %edx
leaq 0x57a82(%rip), %rsi     # 0xe7a4c
imull (%rsi), %edx
addl %edx, %ecx
movslq %ecx, %rcx
imulq $0x18, %rcx, %rcx
addq %rcx, %rax
movl 0x4(%rax), %ecx
orl $0xc0000f, %ecx         # imm = 0xC0000F
movl %ecx, 0x4(%rax)
movq -0x8(%rbp), %rax
movl -0xc(%rbp), %ecx
leaq 0x57a5d(%rip), %rdx     # 0xe7a50
movl (%rdx), %edx
addl $0x1, %edx
leaq 0x57a4d(%rip), %rsi     # 0xe7a4c
imull (%rsi), %edx
addl %edx, %ecx
movslq %ecx, %rcx
imulq $0x18, %rcx, %rcx
addq %rcx, %rax
movl 0x8(%rax), %ecx
orl $0xf000003f, %ecx       # imm = 0xF000003F
movl %ecx, 0x8(%rax)
movq -0x8(%rbp), %rax
movl -0xc(%rbp), %ecx
leaq 0x57a28(%rip), %rdx     # 0xe7a50
movl (%rdx), %edx
addl $0x1, %edx
leaq 0x57a18(%rip), %rsi     # 0xe7a4c
imull (%rsi), %edx
addl %edx, %ecx
movslq %ecx, %rcx
imulq $0x18, %rcx, %rcx
addq %rcx, %rax
movabsq $0xfc000000ff, %rcx     # imm = 0xFC000000FF
orq 0x10(%rax), %rcx
movq %rcx, 0x10(%rax)
movq -0x8(%rbp), %rax
leaq 0x579f4(%rip), %rcx     # 0xe7a54
movl (%rcx), %ecx
subl $0x1, %ecx
movl -0xc(%rbp), %edx
leaq 0x579dd(%rip), %rsi     # 0xe7a4c
imull (%rsi), %edx
addl %edx, %ecx
movslq %ecx, %rcx
imulq $0x18, %rcx, %rcx
addq %rcx, %rax
movl (%rax), %ecx
orl $0xc0000, %ecx          # imm = 0xC0000
movl %ecx, (%rax)
movq -0x8(%rbp), %rax
leaq 0x579c1(%rip), %rcx     # 0xe7a54
movl (%rcx), %ecx
subl $0x1, %ecx
movl -0xc(%rbp), %edx
leaq 0x579aa(%rip), %rsi     # 0xe7a4c
imull (%rsi), %edx
addl %edx, %ecx
movslq %ecx, %rcx
imulq $0x18, %rcx, %rcx
addq %rcx, %rax
movl 0x4(%rax), %ecx
orl $0x3f0, %ecx            # imm = 0x3F0
movl %ecx, 0x4(%rax)
movq -0x8(%rbp), %rax
leaq 0x5798c(%rip), %rcx     # 0xe7a54
movl (%rcx), %ecx
subl $0x1, %ecx
movl -0xc(%rbp), %edx
leaq 0x57975(%rip), %rsi     # 0xe7a4c
imull (%rsi), %edx
addl %edx, %ecx
movslq %ecx, %rcx
imulq $0x18, %rcx, %rcx
addq %rcx, %rax
movl 0x8(%rax), %ecx
orl $0x3ff0, %ecx           # imm = 0x3FF0
movl %ecx, 0x8(%rax)
movq -0x8(%rbp), %rax
leaq 0x57957(%rip), %rcx     # 0xe7a54
movl (%rcx), %ecx
subl $0x1, %ecx
movl -0xc(%rbp), %edx
leaq 0x57940(%rip), %rsi     # 0xe7a4c
imull (%rsi), %edx
addl %edx, %ecx
movslq %ecx, %rcx
imulq $0x18, %rcx, %rcx
addq %rcx, %rax
movq 0x10(%rax), %rcx
orq $0x3fff0, %rcx          # imm = 0x3FFF0
movq %rcx, 0x10(%rax)
movq -0x8(%rbp), %rax
movl -0xc(%rbp), %ecx
leaq 0x5791c(%rip), %rdx     # 0xe7a54
movl (%rdx), %edx
subl $0x1, %edx
leaq 0x57908(%rip), %rsi     # 0xe7a4c
imull (%rsi), %edx
addl %edx, %ecx
movslq %ecx, %rcx
imulq $0x18, %rcx, %rcx
addq %rcx, %rax
movl (%rax), %ecx
orl $0x300000, %ecx         # imm = 0x300000
movl %ecx, (%rax)
movq -0x8(%rbp), %rax
movl -0xc(%rbp), %ecx
leaq 0x578e9(%rip), %rdx     # 0xe7a54
movl (%rdx), %edx
subl $0x1, %edx
leaq 0x578d5(%rip), %rsi     # 0xe7a4c
imull (%rsi), %edx
addl %edx, %ecx
movslq %ecx, %rcx
imulq $0x18, %rcx, %rcx
addq %rcx, %rax
movl 0x4(%rax), %ecx
orl $0xfc00, %ecx           # imm = 0xFC00
movl %ecx, 0x4(%rax)
movq -0x8(%rbp), %rax
movl -0xc(%rbp), %ecx
leaq 0x578b4(%rip), %rdx     # 0xe7a54
movl (%rdx), %edx
subl $0x1, %edx
leaq 0x578a0(%rip), %rsi     # 0xe7a4c
imull (%rsi), %edx
addl %edx, %ecx
movslq %ecx, %rcx
imulq $0x18, %rcx, %rcx
addq %rcx, %rax
movl 0x8(%rax), %ecx
orl $0x3ff000, %ecx         # imm = 0x3FF000
movl %ecx, 0x8(%rax)
movq -0x8(%rbp), %rax
movl -0xc(%rbp), %ecx
leaq 0x5787f(%rip), %rdx     # 0xe7a54
movl (%rdx), %edx
subl $0x1, %edx
leaq 0x5786b(%rip), %rsi     # 0xe7a4c
imull (%rsi), %edx
addl %edx, %ecx
movslq %ecx, %rcx
imulq $0x18, %rcx, %rcx
addq %rcx, %rax
movq 0x10(%rax), %rcx
orq $0xfffc000, %rcx        # imm = 0xFFFC000
movq %rcx, 0x10(%rax)
movq -0x8(%rbp), %rax
leaq 0x57846(%rip), %rcx     # 0xe7a50
movl (%rcx), %ecx
addl $0x1, %ecx
movl -0xc(%rbp), %edx
leaq 0x57833(%rip), %rsi     # 0xe7a4c
imull (%rsi), %edx
addl %edx, %ecx
movslq %ecx, %rcx
imulq $0x18, %rcx, %rcx
addq %rcx, %rax
movl (%rax), %ecx
orl $0xc00000, %ecx         # imm = 0xC00000
movl %ecx, (%rax)
movq -0x8(%rbp), %rax
leaq 0x57813(%rip), %rcx     # 0xe7a50
movl (%rcx), %ecx
addl $0x1, %ecx
movl -0xc(%rbp), %edx
leaq 0x57800(%rip), %rsi     # 0xe7a4c
imull (%rsi), %edx
addl %edx, %ecx
movslq %ecx, %rcx
imulq $0x18, %rcx, %rcx
addq %rcx, %rax
movl 0x4(%rax), %ecx
orl $0x3f0000, %ecx         # imm = 0x3F0000
movl %ecx, 0x4(%rax)
movq -0x8(%rbp), %rax
leaq 0x577de(%rip), %rcx     # 0xe7a50
movl (%rcx), %ecx
addl $0x1, %ecx
movl -0xc(%rbp), %edx
leaq 0x577cb(%rip), %rsi     # 0xe7a4c
imull (%rsi), %edx
addl %edx, %ecx
movslq %ecx, %rcx
imulq $0x18, %rcx, %rcx
addq %rcx, %rax
movl 0x8(%rax), %ecx
orl $0x3ff00000, %ecx       # imm = 0x3FF00000
movl %ecx, 0x8(%rax)
movq -0x8(%rbp), %rax
leaq 0x577a9(%rip), %rcx     # 0xe7a50
movl (%rcx), %ecx
addl $0x1, %ecx
movl -0xc(%rbp), %edx
leaq 0x57796(%rip), %rsi     # 0xe7a4c
imull (%rsi), %edx
addl %edx, %ecx
movslq %ecx, %rcx
imulq $0x18, %rcx, %rcx
addq %rcx, %rax
movabsq $0x3fff000000, %rcx     # imm = 0x3FFF000000
orq 0x10(%rax), %rcx
movq %rcx, 0x10(%rax)
movq -0x8(%rbp), %rax
movl -0xc(%rbp), %ecx
leaq 0x5776b(%rip), %rdx     # 0xe7a50
movl (%rdx), %edx
addl $0x2, %edx
leaq 0x5775b(%rip), %rsi     # 0xe7a4c
imull (%rsi), %edx
addl %edx, %ecx
movslq %ecx, %rcx
imulq $0x18, %rcx, %rcx
addq %rcx, %rax
movl 0x4(%rax), %ecx
orl $0x3, %ecx
movl %ecx, 0x4(%rax)
movq -0x8(%rbp), %rax
movl -0xc(%rbp), %ecx
leaq 0x57739(%rip), %rdx     # 0xe7a50
movl (%rdx), %edx
addl $0x2, %edx
leaq 0x57729(%rip), %rsi     # 0xe7a4c
imull (%rsi), %edx
addl %edx, %ecx
movslq %ecx, %rcx
imulq $0x18, %rcx, %rcx
addq %rcx, %rax
movl 0x8(%rax), %ecx
orl $0xc000000f, %ecx       # imm = 0xC000000F
movl %ecx, 0x8(%rax)
movq -0x8(%rbp), %rax
movl -0xc(%rbp), %ecx
leaq 0x57704(%rip), %rdx     # 0xe7a50
movl (%rdx), %edx
addl $0x2, %edx
leaq 0x576f4(%rip), %rsi     # 0xe7a4c
imull (%rsi), %edx
addl %edx, %ecx
movslq %ecx, %rcx
imulq $0x18, %rcx, %rcx
addq %rcx, %rax
movabsq $0xf00000003f, %rcx     # imm = 0xF00000003F
orq 0x10(%rax), %rcx
movq %rcx, 0x10(%rax)
movq -0x8(%rbp), %rax
leaq 0x576d0(%rip), %rcx     # 0xe7a54
movl (%rcx), %ecx
subl $0x2, %ecx
movl -0xc(%rbp), %edx
leaq 0x576b9(%rip), %rsi     # 0xe7a4c
imull (%rsi), %edx
addl %edx, %ecx
movslq %ecx, %rcx
imulq $0x18, %rcx, %rcx
addq %rcx, %rax
movl 0x4(%rax), %ecx
orl $0xc0, %ecx
movl %ecx, 0x4(%rax)
movq -0x8(%rbp), %rax
leaq 0x5769b(%rip), %rcx     # 0xe7a54
movl (%rcx), %ecx
subl $0x2, %ecx
movl -0xc(%rbp), %edx
leaq 0x57684(%rip), %rsi     # 0xe7a4c
imull (%rsi), %edx
addl %edx, %ecx
movslq %ecx, %rcx
imulq $0x18, %rcx, %rcx
addq %rcx, %rax
movl 0x8(%rax), %ecx
orl $0xfc0, %ecx            # imm = 0xFC0
movl %ecx, 0x8(%rax)
movq -0x8(%rbp), %rax
leaq 0x57666(%rip), %rcx     # 0xe7a54
movl (%rcx), %ecx
subl $0x2, %ecx
movl -0xc(%rbp), %edx
leaq 0x5764f(%rip), %rsi     # 0xe7a4c
imull (%rsi), %edx
addl %edx, %ecx
movslq %ecx, %rcx
imulq $0x18, %rcx, %rcx
addq %rcx, %rax
movq 0x10(%rax), %rcx
orq $0xffc0, %rcx           # imm = 0xFFC0
movq %rcx, 0x10(%rax)
movq -0x8(%rbp), %rax
movl -0xc(%rbp), %ecx
leaq 0x5762b(%rip), %rdx     # 0xe7a54
movl (%rdx), %edx
subl $0x2, %edx
leaq 0x57617(%rip), %rsi     # 0xe7a4c
imull (%rsi), %edx
addl %edx, %ecx
movslq %ecx, %rcx
imulq $0x18, %rcx, %rcx
addq %rcx, %rax
movl 0x4(%rax), %ecx
orl $0x3000, %ecx           # imm = 0x3000
movl %ecx, 0x4(%rax)
movq -0x8(%rbp), %rax
movl -0xc(%rbp), %ecx
leaq 0x575f6(%rip), %rdx     # 0xe7a54
movl (%rdx), %edx
subl $0x2, %edx
leaq 0x575e2(%rip), %rsi     # 0xe7a4c
imull (%rsi), %edx
addl %edx, %ecx
movslq %ecx, %rcx
imulq $0x18, %rcx, %rcx
addq %rcx, %rax
movl 0x8(%rax), %ecx
orl $0xfc000, %ecx          # imm = 0xFC000
movl %ecx, 0x8(%rax)
movq -0x8(%rbp), %rax
movl -0xc(%rbp), %ecx
leaq 0x575c1(%rip), %rdx     # 0xe7a54
movl (%rdx), %edx
subl $0x2, %edx
leaq 0x575ad(%rip), %rsi     # 0xe7a4c
imull (%rsi), %edx
addl %edx, %ecx
movslq %ecx, %rcx
imulq $0x18, %rcx, %rcx
addq %rcx, %rax
movq 0x10(%rax), %rcx
orq $0x3ff0000, %rcx        # imm = 0x3FF0000
movq %rcx, 0x10(%rax)
movq -0x8(%rbp), %rax
leaq 0x57588(%rip), %rcx     # 0xe7a50
movl (%rcx), %ecx
addl $0x2, %ecx
movl -0xc(%rbp), %edx
leaq 0x57575(%rip), %rsi     # 0xe7a4c
imull (%rsi), %edx
addl %edx, %ecx
movslq %ecx, %rcx
imulq $0x18, %rcx, %rcx
addq %rcx, %rax
movl 0x4(%rax), %ecx
orl $0xc0000, %ecx          # imm = 0xC0000
movl %ecx, 0x4(%rax)
movq -0x8(%rbp), %rax
leaq 0x57553(%rip), %rcx     # 0xe7a50
movl (%rcx), %ecx
addl $0x2, %ecx
movl -0xc(%rbp), %edx
leaq 0x57540(%rip), %rsi     # 0xe7a4c
imull (%rsi), %edx
addl %edx, %ecx
movslq %ecx, %rcx
imulq $0x18, %rcx, %rcx
addq %rcx, %rax
movl 0x8(%rax), %ecx
orl $0xfc00000, %ecx        # imm = 0xFC00000
movl %ecx, 0x8(%rax)
movq -0x8(%rbp), %rax
leaq 0x5751e(%rip), %rcx     # 0xe7a50
movl (%rcx), %ecx
addl $0x2, %ecx
movl -0xc(%rbp), %edx
leaq 0x5750b(%rip), %rsi     # 0xe7a4c
imull (%rsi), %edx
addl %edx, %ecx
movslq %ecx, %rcx
imulq $0x18, %rcx, %rcx
addq %rcx, %rax
movabsq $0xffc000000, %rcx      # imm = 0xFFC000000
orq 0x10(%rax), %rcx
movq %rcx, 0x10(%rax)
movq -0x8(%rbp), %rax
movl -0xc(%rbp), %ecx
leaq 0x574e0(%rip), %rdx     # 0xe7a50
movl (%rdx), %edx
addl $0x3, %edx
leaq 0x574d0(%rip), %rsi     # 0xe7a4c
imull (%rsi), %edx
addl %edx, %ecx
movslq %ecx, %rcx
imulq $0x18, %rcx, %rcx
addq %rcx, %rax
movl 0x8(%rax), %ecx
orl $0x3, %ecx
movl %ecx, 0x8(%rax)
movq -0x8(%rbp), %rax
movl -0xc(%rbp), %ecx
leaq 0x574ae(%rip), %rdx     # 0xe7a50
movl (%rdx), %edx
addl $0x3, %edx
leaq 0x5749e(%rip), %rsi     # 0xe7a4c
imull (%rsi), %edx
addl %edx, %ecx
movslq %ecx, %rcx
imulq $0x18, %rcx, %rcx
addq %rcx, %rax
movabsq $0xc00000000f, %rcx     # imm = 0xC00000000F
orq 0x10(%rax), %rcx
movq %rcx, 0x10(%rax)
movq -0x8(%rbp), %rax
leaq 0x5747a(%rip), %rcx     # 0xe7a54
movl (%rcx), %ecx
subl $0x3, %ecx
movl -0xc(%rbp), %edx
leaq 0x57463(%rip), %rsi     # 0xe7a4c
imull (%rsi), %edx
addl %edx, %ecx
movslq %ecx, %rcx
imulq $0x18, %rcx, %rcx
addq %rcx, %rax
movl 0x8(%rax), %ecx
orl $0x300, %ecx            # imm = 0x300
movl %ecx, 0x8(%rax)
movq -0x8(%rbp), %rax
leaq 0x57445(%rip), %rcx     # 0xe7a54
movl (%rcx), %ecx
subl $0x3, %ecx
movl -0xc(%rbp), %edx
leaq 0x5742e(%rip), %rsi     # 0xe7a4c
imull (%rsi), %edx
addl %edx, %ecx
movslq %ecx, %rcx
imulq $0x18, %rcx, %rcx
addq %rcx, %rax
movq 0x10(%rax), %rcx
orq $0x3f00, %rcx           # imm = 0x3F00
movq %rcx, 0x10(%rax)
movq -0x8(%rbp), %rax
movl -0xc(%rbp), %ecx
leaq 0x5740a(%rip), %rdx     # 0xe7a54
movl (%rdx), %edx
subl $0x3, %edx
leaq 0x573f6(%rip), %rsi     # 0xe7a4c
imull (%rsi), %edx
addl %edx, %ecx
movslq %ecx, %rcx
imulq $0x18, %rcx, %rcx
addq %rcx, %rax
movl 0x8(%rax), %ecx
orl $0x30000, %ecx          # imm = 0x30000
movl %ecx, 0x8(%rax)
movq -0x8(%rbp), %rax
movl -0xc(%rbp), %ecx
leaq 0x573d5(%rip), %rdx     # 0xe7a54
movl (%rdx), %edx
subl $0x3, %edx
leaq 0x573c1(%rip), %rsi     # 0xe7a4c
imull (%rsi), %edx
addl %edx, %ecx
movslq %ecx, %rcx
imulq $0x18, %rcx, %rcx
addq %rcx, %rax
movq 0x10(%rax), %rcx
orq $0xfc0000, %rcx         # imm = 0xFC0000
movq %rcx, 0x10(%rax)
movq -0x8(%rbp), %rax
leaq 0x5739c(%rip), %rcx     # 0xe7a50
movl (%rcx), %ecx
addl $0x3, %ecx
movl -0xc(%rbp), %edx
leaq 0x57389(%rip), %rsi     # 0xe7a4c
imull (%rsi), %edx
addl %edx, %ecx
movslq %ecx, %rcx
imulq $0x18, %rcx, %rcx
addq %rcx, %rax
movl 0x8(%rax), %ecx
orl $0x3000000, %ecx        # imm = 0x3000000
movl %ecx, 0x8(%rax)
movq -0x8(%rbp), %rax
leaq 0x57367(%rip), %rcx     # 0xe7a50
movl (%rcx), %ecx
addl $0x3, %ecx
movl -0xc(%rbp), %edx
leaq 0x57354(%rip), %rsi     # 0xe7a4c
imull (%rsi), %edx
addl %edx, %ecx
movslq %ecx, %rcx
imulq $0x18, %rcx, %rcx
addq %rcx, %rax
movabsq $0x3f0000000, %rcx      # imm = 0x3F0000000
orq 0x10(%rax), %rcx
movq %rcx, 0x10(%rax)
movq -0x8(%rbp), %rax
movl -0xc(%rbp), %ecx
leaq 0x57329(%rip), %rdx     # 0xe7a50
movl (%rdx), %edx
addl $0x4, %edx
leaq 0x57319(%rip), %rsi     # 0xe7a4c
imull (%rsi), %edx
addl %edx, %ecx
movslq %ecx, %rcx
imulq $0x18, %rcx, %rcx
addq %rcx, %rax
movq 0x10(%rax), %rcx
orq $0x3, %rcx
movq %rcx, 0x10(%rax)
movq -0x8(%rbp), %rax
leaq 0x572fb(%rip), %rcx     # 0xe7a54
movl (%rcx), %ecx
subl $0x4, %ecx
movl -0xc(%rbp), %edx
leaq 0x572e4(%rip), %rsi     # 0xe7a4c
imull (%rsi), %edx
addl %edx, %ecx
movslq %ecx, %rcx
imulq $0x18, %rcx, %rcx
addq %rcx, %rax
movq 0x10(%rax), %rcx
orq $0xc00, %rcx            # imm = 0xC00
movq %rcx, 0x10(%rax)
movq -0x8(%rbp), %rax
movl -0xc(%rbp), %ecx
leaq 0x572c0(%rip), %rdx     # 0xe7a54
movl (%rdx), %edx
subl $0x4, %edx
leaq 0x572ac(%rip), %rsi     # 0xe7a4c
imull (%rsi), %edx
addl %edx, %ecx
movslq %ecx, %rcx
imulq $0x18, %rcx, %rcx
addq %rcx, %rax
movq 0x10(%rax), %rcx
orq $0x300000, %rcx         # imm = 0x300000
movq %rcx, 0x10(%rax)
movq -0x8(%rbp), %rax
leaq 0x57287(%rip), %rcx     # 0xe7a50
movl (%rcx), %ecx
addl $0x4, %ecx
movl -0xc(%rbp), %edx
leaq 0x57274(%rip), %rsi     # 0xe7a4c
imull (%rsi), %edx
addl %edx, %ecx
movslq %ecx, %rcx
imulq $0x18, %rcx, %rcx
addq %rcx, %rax
movabsq $0xc0000000, %rcx       # imm = 0xC0000000
orq 0x10(%rax), %rcx
movq %rcx, 0x10(%rax)
movl -0xc(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xc(%rbp)
jmp 0x8fc41
addq $0x10, %rsp
popq %rbp
retq
nopl (%rax)