// File: /workspace/github_cpp_makefile_star2_O3/ATOMIC-LICHESS[P]ATOMKRAFT/movegen.cpp
// Function: MoveStack* generate<(MoveType)3>(Position const&, MoveStack*)
MoveStack* generate<MV_NON_CAPTURE_CHECK>(const Position& pos, MoveStack* mlist) {
  NEW assert(pos.piece_count(WHITE, KING) && pos.piece_count(BLACK, KING));
		
  assert(pos.is_ok());
  assert(!pos.in_check());

  Bitboard b, dc;
  Square from;
  Color us = pos.side_to_move();
  NEW assert(pos.piece_count(opposite_color(us), KING));
  Square ksq = pos.king_square(opposite_color(us));

  assert(pos.piece_on(ksq) == make_piece(opposite_color(us), KING));

  // Discovered non-capture checks
  b = dc = pos.discovered_check_candidates(us);

  while (b)
  {
     from = pop_1st_bit(&b);
     switch (pos.type_of_piece_on(from))
     {
      case PAWN:   /* Will be generated togheter with pawns direct checks */     break;
      case KNIGHT: mlist = generate_discovered_checks<KNIGHT>(pos, mlist, from); break;
      case BISHOP: mlist = generate_discovered_checks<BISHOP>(pos, mlist, from); break;
      case ROOK:   mlist = generate_discovered_checks<ROOK>(pos, mlist, from);   break;
      case KING:   mlist = generate_discovered_checks<KING>(pos, mlist, from);   break;
      default: assert(false); break;
     }
  }

  // Direct non-capture checks
  mlist = generate_direct_checks<PAWN>(pos, mlist, us, dc, ksq);
  mlist = generate_direct_checks<KNIGHT>(pos, mlist, us, dc, ksq);
  mlist = generate_direct_checks<BISHOP>(pos, mlist, us, dc, ksq);
  mlist = generate_direct_checks<ROOK>(pos, mlist, us, dc, ksq);
  return  generate_direct_checks<QUEEN>(pos, mlist, us, dc, ksq);
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x58, %rsp
movq %rsi, %rbx
movq %rdi, %r14
movl 0x1090(%rdi), %esi
movq %rsi, %rax
xorq $0x1, %rax
leaq 0x190(%rdi), %r15
shlq $0x9, %rax
movslq 0x310(%rdi,%rax), %rcx
movq %rcx, 0x40(%rsp)
movl %ecx, %eax
movq %rax, 0x38(%rsp)
movq %rsi, 0x10(%rsp)
callq 0x1cc5c
movq %rax, 0x50(%rsp)
movq %rax, 0x20(%rsp)
testq %rax, %rax
je 0x19331
leaq 0x19610(%rip), %r13     # 0x32760
leaq 0x8(%rsp), %rbp
leaq 0x50(%rsp), %rdi
callq 0x827b
movl %eax, %r12d
cltq
movl (%r14,%rax,4), %ecx
andl $0x7, %ecx
addl $-0x2, %ecx
cmpl $0x4, %ecx
ja 0x19325
movslq (%r13,%rcx,4), %rcx
addq %r13, %rcx
jmpq *%rcx
movq 0x100(%r14), %rcx
notq %rcx
leaq 0x1005be(%rip), %rdx    # 0x119750
andq 0x400(%rdx,%rax,8), %rcx
movq %rcx, 0x8(%rsp)
je 0x19325
shll $0x6, %r12d
movq %rbp, %rdi
callq 0x827b
orl %r12d, %eax
movl %eax, (%rbx)
addq $0x8, %rbx
cmpq $0x0, 0x8(%rsp)
jne 0x191a9
jmp 0x19325
movq 0x100(%r14), %rdx
leaq 0x2d5cb(%rip), %rcx     # 0x467a0
movq (%rcx,%rax,8), %rcx
andq %rdx, %rcx
leaq 0x163dd(%rip), %rsi     # 0x2f5c0
movq (%rsi,%rax,8), %rsi
movl %esi, %edi
imull %ecx, %edi
shrq $0x20, %rcx
shrq $0x20, %rsi
imull %ecx, %esi
xorl %edi, %esi
leaq 0x166c0(%rip), %rcx     # 0x2f8c0
movb (%rcx,%rax,4), %cl
shrl %cl, %esi
leaq 0x2d794(%rip), %rcx     # 0x469a0
addl (%rcx,%rax,4), %esi
notq %rdx
leaq 0x2d887(%rip), %rax     # 0x46aa0
andq (%rax,%rsi,8), %rdx
movq %rdx, 0x8(%rsp)
je 0x19325
shll $0x6, %r12d
movq %rbp, %rdi
callq 0x827b
orl %r12d, %eax
movl %eax, (%rbx)
addq $0x8, %rbx
cmpq $0x0, 0x8(%rsp)
jne 0x1922c
jmp 0x19325
movq 0x100(%r14), %rdx
leaq 0xf5848(%rip), %rcx     # 0x10eaa0
movq (%rcx,%rax,8), %rcx
andq %rdx, %rcx
leaq 0x1615a(%rip), %rsi     # 0x2f3c0
movq (%rsi,%rax,8), %rsi
movl %esi, %edi
imull %ecx, %edi
shrq $0x20, %rcx
shrq $0x20, %rsi
imull %ecx, %esi
xorl %edi, %esi
leaq 0x1653d(%rip), %rcx     # 0x2f7c0
movb (%rcx,%rax,4), %cl
shrl %cl, %esi
leaq 0xf5a11(%rip), %rcx     # 0x10eca0
addl (%rcx,%rax,4), %esi
notq %rdx
leaq 0xf5b04(%rip), %rax     # 0x10eda0
andq (%rax,%rsi,8), %rdx
movq %rdx, 0x8(%rsp)
je 0x19325
shll $0x6, %r12d
movq %rbp, %rdi
callq 0x827b
orl %r12d, %eax
movl %eax, (%rbx)
addq $0x8, %rbx
cmpq $0x0, 0x8(%rsp)
jne 0x192ab
jmp 0x19325
movl 0x1090(%r14), %ecx
xorq $0x1, %rcx
shlq $0x9, %rcx
movslq 0x180(%r15,%rcx), %rcx
leaq 0x10b46c(%rip), %rdx    # 0x124750
movq (%rdx,%rcx,8), %rcx
orq 0x100(%r14), %rcx
notq %rcx
leaq 0x100457(%rip), %rdx    # 0x119750
andq 0xc00(%rdx,%rax,8), %rcx
movq %rcx, 0x8(%rsp)
je 0x19325
shll $0x6, %r12d
movq %rbp, %rdi
callq 0x827b
orl %r12d, %eax
movl %eax, (%rbx)
addq $0x8, %rbx
cmpq $0x0, 0x8(%rsp)
jne 0x1930c
cmpq $0x0, 0x50(%rsp)
jne 0x19155
movq %r15, 0x28(%rsp)
movabsq $0xffffffffffff00, %r13 # imm = 0xFFFFFFFFFFFF00
cmpq $0x0, 0x10(%rsp)
movq %r14, 0x18(%rsp)
je 0x194dc
movq 0x148(%r14), %r15
andq 0x108(%r14), %r15
movq 0x100(%r14), %rsi
notq %rsi
movq %r15, %rax
shrq $0x8, %rax
andq %rsi, %r13
andq %rax, %r13
movq %r15, %rax
andq $0xff00, %rax           # imm = 0xFF00
je 0x193f3
shrl $0x8, %eax
movq %rsi, 0x48(%rsp)
movl %esi, %ecx
andl %eax, %ecx
movq %rcx, 0x8(%rsp)
je 0x193ee
leaq 0x8(%rsp), %r12
leaq 0x1003b0(%rip), %r14    # 0x119750
leaq 0xffdf9(%rip), %rbp     # 0x1191a0
movq %r12, %rdi
callq 0x827b
movslq %eax, %rcx
movq 0x18(%rsp), %rdx
movslq 0x310(%rdx), %rdx
movq (%rbp,%rdx,8), %rdx
testq %rdx, 0x400(%r14,%rcx,8)
je 0x193e6
movl %eax, %ecx
shll $0x6, %ecx
addl $0x200, %ecx            # imm = 0x200
orl %eax, %ecx
orl $0x4000, %ecx           # imm = 0x4000
movl %ecx, (%rbx)
addq $0x8, %rbx
cmpq $0x0, 0x8(%rsp)
jne 0x193a7
movq 0x48(%rsp), %rsi
movq %r13, %r14
shrq $0x8, %r14
movabsq $0xff00000000, %rax     # imm = 0xFF00000000
andq %rsi, %rax
andq %rax, %r14
leaq 0x10033f(%rip), %rcx    # 0x119750
movq 0x40(%rsp), %rdx
movq 0x200(%rcx,%rdx,8), %rcx
andq %rcx, %r13
movq %r13, 0x8(%rsp)
andq %rcx, %r14
movq %r14, 0x30(%rsp)
andq 0x20(%rsp), %r15
je 0x1946f
movq 0x38(%rsp), %rcx
andl $0x7, %ecx
leaq 0x10018c(%rip), %rdx    # 0x1195d0
movq (%rdx,%rcx,8), %rcx
notq %rcx
andq %rcx, %r15
shrq $0x8, %r15
andq %rsi, %r15
movq %r15, %rcx
shrq $0x8, %rcx
andq %rax, %rcx
orq %r15, %r13
movq %r13, 0x8(%rsp)
orq %rcx, %r14
movq %r14, 0x30(%rsp)
movq 0x28(%rsp), %r15
testq %r13, %r13
je 0x194a1
leaq 0x8(%rsp), %r12
movq %r12, %rdi
callq 0x827b
movl %eax, %ecx
shll $0x6, %ecx
addl $0x200, %ecx            # imm = 0x200
orl %eax, %ecx
movl %ecx, (%rbx)
addq $0x8, %rbx
cmpq $0x0, 0x8(%rsp)
jne 0x1947e
testq %r14, %r14
je 0x1965c
leaq 0x30(%rsp), %r12
movq 0x10(%rsp), %r14
movq %r12, %rdi
callq 0x827b
movl %eax, %ecx
shll $0x6, %ecx
addl $0x400, %ecx            # imm = 0x400
orl %eax, %ecx
movl %ecx, (%rbx)
addq $0x8, %rbx
cmpq $0x0, 0x30(%rsp)
jne 0x194b4
jmp 0x19661
movq 0x140(%r14), %r15
andq 0x108(%r14), %r15
movq 0x100(%r14), %rdi
notq %rdi
movq %r15, %rax
shlq $0x8, %rax
andq %rdi, %r13
andq %rax, %r13
movabsq $0xff000000000000, %rax # imm = 0xFF000000000000
andq %r15, %rax
je 0x19582
shlq $0x8, %rax
movq %rdi, 0x48(%rsp)
andq %rdi, %rax
movq %rax, 0x8(%rsp)
je 0x1957d
leaq 0x8(%rsp), %r12
leaq 0x100221(%rip), %r14    # 0x119750
leaq 0xffc6a(%rip), %rbp     # 0x1191a0
movq %r12, %rdi
callq 0x827b
movslq %eax, %rcx
movq 0x18(%rsp), %rdx
movslq 0x510(%rdx), %rdx
movq (%rbp,%rdx,8), %rdx
testq %rdx, 0x400(%r14,%rcx,8)
je 0x19575
movl %eax, %ecx
shll $0x6, %ecx
addl $0xfffffe00, %ecx       # imm = 0xFFFFFE00
orl %eax, %ecx
orl $0x4000, %ecx           # imm = 0x4000
movl %ecx, (%rbx)
addq $0x8, %rbx
cmpq $0x0, 0x8(%rsp)
jne 0x19536
movq 0x48(%rsp), %rdi
movl %r13d, %ecx
shll $0x8, %ecx
movl %edi, %eax
andl $0xff000000, %eax       # imm = 0xFF000000
movl %eax, %edx
andl %ecx, %edx
leaq 0x1001b6(%rip), %rcx    # 0x119750
movq 0x40(%rsp), %rsi
movq 0x1200(%rcx,%rsi,8), %r14
andq %r14, %r13
movq %r13, 0x8(%rsp)
andl %edx, %r14d
movq %r14, 0x30(%rsp)
andq 0x20(%rsp), %r15
je 0x195f6
movq 0x38(%rsp), %rcx
andl $0x7, %ecx
leaq 0x100003(%rip), %rdx    # 0x1195d0
movq (%rdx,%rcx,8), %rcx
notq %rcx
andq %rcx, %r15
shlq $0x8, %r15
andq %rdi, %r15
movl %r15d, %ecx
shll $0x8, %ecx
andl %ecx, %eax
orq %r15, %r13
movq %r13, 0x8(%rsp)
orq %rax, %r14
movq %r14, 0x30(%rsp)
movq 0x28(%rsp), %r15
testq %r13, %r13
je 0x19628
leaq 0x8(%rsp), %r12
movq %r12, %rdi
callq 0x827b
movl %eax, %ecx
shll $0x6, %ecx
addl $0xfffffe00, %ecx       # imm = 0xFFFFFE00
orl %eax, %ecx
movl %ecx, (%rbx)
addq $0x8, %rbx
cmpq $0x0, 0x8(%rsp)
jne 0x19605
testq %r14, %r14
je 0x1965c
leaq 0x30(%rsp), %r12
movq 0x10(%rsp), %r14
movq %r12, %rdi
callq 0x827b
movl %eax, %ecx
shll $0x6, %ecx
addl $0xfffffc00, %ecx       # imm = 0xFFFFFC00
orl %eax, %ecx
movl %ecx, (%rbx)
addq $0x8, %rbx
cmpq $0x0, 0x30(%rsp)
jne 0x19637
jmp 0x19661
movq 0x10(%rsp), %r14
shlq $0x9, %r14
movl 0x80(%r15,%r14), %ebp
cmpl $0x40, %ebp
movq %r14, 0x10(%rsp)
je 0x1970c
addq %r15, %r14
addq $0x80, %r14
movslq 0x38(%rsp), %rax
leaq 0x1000bf(%rip), %rdx    # 0x119750
movq 0x18(%rsp), %rcx
movq 0x100(%rcx), %r13
notq %r13
andq 0x400(%rdx,%rax,8), %r13
leaq 0x8(%rsp), %r12
leaq 0xffaec(%rip), %r15     # 0x1191a0
movq 0x20(%rsp), %rcx
movslq %ebp, %rax
testq %rcx, %rcx
je 0x196c7
testq %rcx, (%r15,%rax,8)
jne 0x196fb
leaq 0x100082(%rip), %rcx    # 0x119750
movq 0x400(%rcx,%rax,8), %rax
andq %r13, %rax
movq %rax, 0x8(%rsp)
je 0x196fb
shll $0x6, %ebp
movq %r12, %rdi
callq 0x827b
orl %ebp, %eax
movl %eax, (%rbx)
addq $0x8, %rbx
cmpq $0x0, 0x8(%rsp)
jne 0x196e3
addq $0x4, %r14
movl (%r14), %ebp
cmpl $0x40, %ebp
movq 0x20(%rsp), %rcx
jne 0x196b9
movq 0x10(%rsp), %rdi
movq 0x28(%rsp), %r8
movl 0xc0(%r8,%rdi), %r13d
cmpl $0x40, %r13d
je 0x19851
movq 0x18(%rsp), %rax
movq 0x100(%rax), %r15
leaq 0xf5365(%rip), %rax     # 0x10eaa0
movq 0x40(%rsp), %rsi
movq (%rax,%rsi,8), %rax
andq %r15, %rax
leaq 0x15c72(%rip), %rcx     # 0x2f3c0
movq (%rcx,%rsi,8), %rdx
movl %edx, %ecx
imull %eax, %ecx
shrq $0x20, %rax
shrq $0x20, %rdx
imull %eax, %edx
xorl %ecx, %edx
leaq 0x16055(%rip), %rax     # 0x2f7c0
movb (%rax,%rsi,4), %cl
shrl %cl, %edx
leaq 0xf5529(%rip), %rax     # 0x10eca0
addl (%rax,%rsi,4), %edx
leaq 0xf561f(%rip), %rax     # 0x10eda0
notq %r15
andq (%rax,%rdx,8), %r15
leaq (%r8,%rdi), %rbp
addq $0xc0, %rbp
leaq 0x10abb6(%rip), %r14    # 0x124350
leaq 0x8(%rsp), %r12
movslq %r13d, %rax
testq %r15, (%r14,%rax,8)
movq 0x20(%rsp), %rcx
je 0x1983f
testq %rcx, %rcx
je 0x197c3
leaq 0xff9e3(%rip), %rdx     # 0x1191a0
testq %rcx, (%rdx,%rax,8)
jne 0x1983f
leaq 0xf52d6(%rip), %rcx     # 0x10eaa0
movq (%rcx,%rax,8), %rcx
movq 0x18(%rsp), %rdx
andq 0x100(%rdx), %rcx
leaq 0x15bdf(%rip), %rdx     # 0x2f3c0
movq (%rdx,%rax,8), %rdx
movl %edx, %esi
imull %ecx, %esi
shrq $0x20, %rcx
shrq $0x20, %rdx
imull %ecx, %edx
xorl %esi, %edx
leaq 0x15fc2(%rip), %rcx     # 0x2f7c0
movb (%rcx,%rax,4), %cl
shrl %cl, %edx
leaq 0xf5496(%rip), %rcx     # 0x10eca0
addl (%rcx,%rax,4), %edx
leaq 0xf558c(%rip), %rax     # 0x10eda0
movq (%rax,%rdx,8), %rax
andq %r15, %rax
movq %rax, 0x8(%rsp)
je 0x1983f
shll $0x6, %r13d
movq %r12, %rdi
callq 0x827b
orl %r13d, %eax
movl %eax, (%rbx)
addq $0x8, %rbx
cmpq $0x0, 0x8(%rsp)
jne 0x19826
addq $0x4, %rbp
movl (%rbp), %r13d
cmpl $0x40, %r13d
jne 0x1979f
movq 0x10(%rsp), %rdi
movq 0x28(%rsp), %r8
movl 0x100(%r8,%rdi), %ebp
cmpl $0x40, %ebp
je 0x19997
movq 0x18(%rsp), %rax
movq 0x100(%rax), %r15
movslq 0x38(%rsp), %rax
leaq 0x2cf1c(%rip), %rcx     # 0x467a0
movq (%rcx,%rax,8), %rcx
andq %r15, %rcx
leaq 0x15d2e(%rip), %rdx     # 0x2f5c0
movq (%rdx,%rax,8), %rdx
movl %edx, %esi
imull %ecx, %esi
shrq $0x20, %rcx
shrq $0x20, %rdx
imull %ecx, %edx
xorl %esi, %edx
leaq 0x16011(%rip), %rcx     # 0x2f8c0
movb (%rcx,%rax,4), %cl
shrl %cl, %edx
leaq 0x2d0e5(%rip), %rcx     # 0x469a0
addl (%rcx,%rax,4), %edx
leaq 0x2d1db(%rip), %rax     # 0x46aa0
notq %r15
andq (%rax,%rdx,8), %r15
leaq (%r8,%rdi), %r13
addq $0x100, %r13            # imm = 0x100
leaq 0x10ac72(%rip), %r14    # 0x124550
leaq 0x8(%rsp), %r12
movq 0x20(%rsp), %rcx
movslq %ebp, %rax
testq %r15, (%r14,%rax,8)
je 0x19981
testq %rcx, %rcx
je 0x19907
leaq 0xff89f(%rip), %rdx     # 0x1191a0
testq %rcx, (%rdx,%rax,8)
jne 0x19981
leaq 0x2ce92(%rip), %rcx     # 0x467a0
movq (%rcx,%rax,8), %rcx
movq 0x18(%rsp), %rdx
andq 0x100(%rdx), %rcx
leaq 0x15c9b(%rip), %rdx     # 0x2f5c0
movq (%rdx,%rax,8), %rdx
movl %edx, %esi
imull %ecx, %esi
shrq $0x20, %rcx
shrq $0x20, %rdx
imull %ecx, %edx
xorl %esi, %edx
leaq 0x15f7e(%rip), %rcx     # 0x2f8c0
movb (%rcx,%rax,4), %cl
shrl %cl, %edx
leaq 0x2d052(%rip), %rcx     # 0x469a0
addl (%rcx,%rax,4), %edx
leaq 0x2d148(%rip), %rax     # 0x46aa0
movq (%rax,%rdx,8), %rax
andq %r15, %rax
movq %rax, 0x8(%rsp)
je 0x19981
shll $0x6, %ebp
movq %r12, %rdi
callq 0x827b
orl %ebp, %eax
movl %eax, (%rbx)
addq $0x8, %rbx
cmpq $0x0, 0x8(%rsp)
jne 0x19969
addq $0x4, %r13
movl (%r13), %ebp
cmpl $0x40, %ebp
movq 0x20(%rsp), %rcx
jne 0x198e8
movq 0x10(%rsp), %rax
movq 0x28(%rsp), %rcx
movl 0x140(%rcx,%rax), %r15d
cmpl $0x40, %r15d
je 0x19b76
leaq (%rcx,%rax), %r13
addq $0x140, %r13            # imm = 0x140
movq 0x18(%rsp), %r14
movq 0x100(%r14), %rbp
leaq 0x2cdcf(%rip), %rax     # 0x467a0
movq 0x40(%rsp), %rdi
movq (%rax,%rdi,8), %rcx
andq %rbp, %rcx
leaq 0x2cfbc(%rip), %rsi     # 0x469a0
leaq 0x15bd5(%rip), %rax     # 0x2f5c0
movq (%rax,%rdi,8), %rax
movl %eax, %edx
imull %ecx, %edx
shrq $0x20, %rcx
shrq $0x20, %rax
imull %ecx, %eax
xorl %edx, %eax
leaq 0x15eb8(%rip), %rcx     # 0x2f8c0
movb (%rcx,%rdi,4), %cl
shrl %cl, %eax
addl (%rsi,%rdi,4), %eax
leaq 0x2d089(%rip), %r8      # 0x46aa0
leaq 0xf5082(%rip), %rcx     # 0x10eaa0
movq (%rcx,%rdi,8), %rcx
andq %rbp, %rcx
leaq 0x15994(%rip), %rdx     # 0x2f3c0
movq (%rdx,%rdi,8), %rdx
movl %edx, %esi
imull %ecx, %esi
shrq $0x20, %rcx
shrq $0x20, %rdx
imull %ecx, %edx
xorl %esi, %edx
leaq 0x15d77(%rip), %rcx     # 0x2f7c0
movb (%rcx,%rdi,4), %cl
shrl %cl, %edx
leaq 0xf524b(%rip), %rcx     # 0x10eca0
addl (%rcx,%rdi,4), %edx
leaq 0xf5341(%rip), %rcx     # 0x10eda0
movq (%rcx,%rdx,8), %rcx
orq (%r8,%rax,8), %rcx
notq %rbp
andq %rcx, %rbp
leaq 0x8(%rsp), %r12
movslq %r15d, %rax
leaq 0x10acd4(%rip), %rcx    # 0x124750
testq %rbp, (%rcx,%rax,8)
je 0x19b64
movq 0x20(%rsp), %rcx
testq %rcx, %rcx
je 0x19aa1
leaq 0xff709(%rip), %rdx     # 0x1191a0
testq %rcx, (%rdx,%rax,8)
jne 0x19b64
movq 0x100(%r14), %rcx
leaq 0x2ccf1(%rip), %rdx     # 0x467a0
movq (%rdx,%rax,8), %rsi
andq %rcx, %rsi
leaq 0x15b03(%rip), %rdx     # 0x2f5c0
movq (%rdx,%rax,8), %rdx
movl %edx, %edi
imull %esi, %edi
shrq $0x20, %rsi
shrq $0x20, %rdx
imull %esi, %edx
leaq 0xf4fc8(%rip), %rsi     # 0x10eaa0
andq (%rsi,%rax,8), %rcx
xorl %edi, %edx
leaq 0x158db(%rip), %rsi     # 0x2f3c0
movq (%rsi,%rax,8), %rsi
movl %esi, %edi
imull %ecx, %edi
shrq $0x20, %rcx
shrq $0x20, %rsi
imull %ecx, %esi
leaq 0x15dc0(%rip), %rcx     # 0x2f8c0
movb (%rcx,%rax,4), %cl
shrl %cl, %edx
xorl %edi, %esi
leaq 0x2ce92(%rip), %rcx     # 0x469a0
addl (%rcx,%rax,4), %edx
leaq 0x15ca8(%rip), %rcx     # 0x2f7c0
movb (%rcx,%rax,4), %cl
shrl %cl, %esi
leaq 0xf517c(%rip), %rcx     # 0x10eca0
addl (%rcx,%rax,4), %esi
leaq 0xf5272(%rip), %rax     # 0x10eda0
movq (%rax,%rsi,8), %rax
leaq 0x2cf67(%rip), %rcx     # 0x46aa0
orq (%rcx,%rdx,8), %rax
andq %rbp, %rax
movq %rax, 0x8(%rsp)
je 0x19b64
shll $0x6, %r15d
movq %r12, %rdi
callq 0x827b
orl %r15d, %eax
movl %eax, (%rbx)
addq $0x8, %rbx
cmpq $0x0, 0x8(%rsp)
jne 0x19b4b
addq $0x4, %r13
movl (%r13), %r15d
cmpl $0x40, %r15d
jne 0x19a72
movq %rbx, %rax
addq $0x58, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq