// File: /workspace/github_cpp_makefile_star2_O1/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, 0x30(%rsp)
callq 0x1c72c
movq %rax, 0x50(%rsp)
movq %rax, 0x20(%rsp)
testq %rax, %rax
je 0x18e08
leaq 0x18ac8(%rip), %r13     # 0x316e0
leaq 0x8(%rsp), %rbp
leaq 0x50(%rsp), %rdi
callq 0x7d37
movl %eax, %r12d
cltq
movl (%r14,%rax,4), %ecx
andl $0x7, %ecx
addl $-0x2, %ecx
cmpl $0x4, %ecx
ja 0x18dfc
movslq (%r13,%rcx,4), %rcx
addq %r13, %rcx
jmpq *%rcx
movq 0x100(%r14), %rcx
notq %rcx
leaq 0xffaf6(%rip), %rdx     # 0x118750
andq 0x400(%rdx,%rax,8), %rcx
movq %rcx, 0x8(%rsp)
je 0x18dfc
shll $0x6, %r12d
movq %rbp, %rdi
callq 0x7d37
orl %r12d, %eax
movl %eax, (%rbx)
addq $0x8, %rbx
cmpq $0x0, 0x8(%rsp)
jne 0x18c71
jmp 0x18dfc
movq 0x100(%r14), %rdx
leaq 0x2cb03(%rip), %rcx     # 0x457a0
movq (%rcx,%rax,8), %rcx
andq %rdx, %rcx
leaq 0x15895(%rip), %rsi     # 0x2e540
movq (%rsi,%rax,8), %rsi
movl %esi, %edi
imull %ecx, %edi
shrq $0x20, %rcx
shrq $0x20, %rsi
imull %ecx, %esi
xorl %edi, %esi
leaq 0x15b78(%rip), %rcx     # 0x2e840
movb (%rcx,%rax,4), %cl
shrl %cl, %esi
leaq 0x2cccc(%rip), %rcx     # 0x459a0
addl (%rcx,%rax,4), %esi
notq %rdx
leaq 0x2cdbf(%rip), %rax     # 0x45aa0
andq (%rax,%rsi,8), %rdx
movq %rdx, 0x8(%rsp)
je 0x18dfc
shll $0x6, %r12d
movq %rbp, %rdi
callq 0x7d37
orl %r12d, %eax
movl %eax, (%rbx)
addq $0x8, %rbx
cmpq $0x0, 0x8(%rsp)
jne 0x18cf4
jmp 0x18dfc
movq 0x100(%r14), %rdx
leaq 0xf4d80(%rip), %rcx     # 0x10daa0
movq (%rcx,%rax,8), %rcx
andq %rdx, %rcx
leaq 0x15612(%rip), %rsi     # 0x2e340
movq (%rsi,%rax,8), %rsi
movl %esi, %edi
imull %ecx, %edi
shrq $0x20, %rcx
shrq $0x20, %rsi
imull %ecx, %esi
xorl %edi, %esi
leaq 0x159f5(%rip), %rcx     # 0x2e740
movb (%rcx,%rax,4), %cl
shrl %cl, %esi
leaq 0xf4f49(%rip), %rcx     # 0x10dca0
addl (%rcx,%rax,4), %esi
notq %rdx
leaq 0xf503c(%rip), %rax     # 0x10dda0
andq (%rax,%rsi,8), %rdx
movq %rdx, 0x8(%rsp)
je 0x18dfc
shll $0x6, %r12d
movq %rbp, %rdi
callq 0x7d37
orl %r12d, %eax
movl %eax, (%rbx)
addq $0x8, %rbx
cmpq $0x0, 0x8(%rsp)
jne 0x18d77
jmp 0x18dfc
movq 0x100(%r14), %rcx
notq %rcx
leaq 0xff9ad(%rip), %rdx     # 0x118750
andq 0xc00(%rdx,%rax,8), %rcx
movq %rcx, 0x8(%rsp)
movl 0x1090(%r14), %eax
xorq $0x1, %rax
shlq $0x9, %rax
movslq 0x180(%r15,%rax), %rax
leaq 0x10a982(%rip), %rdx    # 0x123750
movq (%rdx,%rax,8), %rax
notq %rax
andq %rcx, %rax
movq %rax, 0x8(%rsp)
je 0x18dfc
shll $0x6, %r12d
movq %rbp, %rdi
callq 0x7d37
orl %r12d, %eax
movl %eax, (%rbx)
addq $0x8, %rbx
cmpq $0x0, 0x8(%rsp)
jne 0x18de3
cmpq $0x0, 0x50(%rsp)
jne 0x18c1d
movq %r15, 0x28(%rsp)
movabsq $0xffffffffffff00, %r13 # imm = 0xFFFFFFFFFFFF00
cmpq $0x0, 0x30(%rsp)
movq %r14, 0x18(%rsp)
je 0x18f89
movq 0x148(%r14), %r15
andq 0x108(%r14), %r15
movq 0x100(%r14), %rdi
notq %rdi
movq %r15, %rax
shrq $0x8, %rax
andq %rdi, %r13
andq %rax, %r13
movq %r15, %rax
andq $0xff00, %rax           # imm = 0xFF00
je 0x18eca
shrl $0x8, %eax
movq %rdi, 0x48(%rsp)
movl %edi, %ecx
andl %eax, %ecx
movq %rcx, 0x8(%rsp)
je 0x18ec5
leaq 0x8(%rsp), %r12
leaq 0xff8d9(%rip), %r14     # 0x118750
leaq 0xff322(%rip), %rbp     # 0x1181a0
movq %r12, %rdi
callq 0x7d37
movslq %eax, %rcx
movq 0x18(%rsp), %rdx
movslq 0x310(%rdx), %rdx
movq (%rbp,%rdx,8), %rdx
testq %rdx, 0x400(%r14,%rcx,8)
je 0x18ebd
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 0x18e7e
movq 0x48(%rsp), %rdi
movq %r13, %rax
shrq $0x8, %rax
movabsq $0xff00000000, %rcx     # imm = 0xFF00000000
andq %rdi, %rcx
andq %rcx, %rax
leaq 0xff868(%rip), %rdx     # 0x118750
movq 0x40(%rsp), %rsi
movq 0x200(%rdx,%rsi,8), %rdx
andq %rdx, %r13
movq %r13, 0x8(%rsp)
andq %rdx, %rax
movq %rax, 0x10(%rsp)
andq 0x20(%rsp), %r15
movq 0x30(%rsp), %r14
je 0x18f4b
movq 0x38(%rsp), %rdx
andl $0x7, %edx
leaq 0xff6b0(%rip), %rsi     # 0x1185d0
movq (%rsi,%rdx,8), %rdx
notq %rdx
andq %rdx, %r15
shrq $0x8, %r15
andq %rdi, %r15
movq %r15, %rdx
shrq $0x8, %rdx
andq %rcx, %rdx
orq %r13, %r15
movq %r15, 0x8(%rsp)
orq %rax, %rdx
movq %rdx, 0x10(%rsp)
cmpq $0x0, 0x8(%rsp)
je 0x190de
leaq 0x8(%rsp), %r12
movq 0x28(%rsp), %r15
movq %r12, %rdi
callq 0x7d37
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 0x18f61
jmp 0x190e3
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 0x1902f
shlq $0x8, %rax
movq %rdi, 0x48(%rsp)
andq %rdi, %rax
movq %rax, 0x8(%rsp)
je 0x1902a
leaq 0x8(%rsp), %r12
leaq 0xff774(%rip), %r14     # 0x118750
leaq 0xff1bd(%rip), %rbp     # 0x1181a0
movq %r12, %rdi
callq 0x7d37
movslq %eax, %rcx
movq 0x18(%rsp), %rdx
movslq 0x510(%rdx), %rdx
movq (%rbp,%rdx,8), %rdx
testq %rdx, 0x400(%r14,%rcx,8)
je 0x19022
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 0x18fe3
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 0xff709(%rip), %rcx     # 0x118750
movq 0x40(%rsp), %rsi
movq 0x1200(%rcx,%rsi,8), %rcx
andq %rcx, %r13
movq %r13, 0x8(%rsp)
andl %edx, %ecx
movq %rcx, 0x10(%rsp)
andq 0x20(%rsp), %r15
movq 0x30(%rsp), %r14
je 0x190a7
movq 0x38(%rsp), %rdx
andl $0x7, %edx
leaq 0xff552(%rip), %rsi     # 0x1185d0
movq (%rsi,%rdx,8), %rdx
notq %rdx
andq %rdx, %r15
shlq $0x8, %r15
andq %rdi, %r15
movl %r15d, %edx
shll $0x8, %edx
andl %edx, %eax
orq %r13, %r15
movq %r15, 0x8(%rsp)
orq %rcx, %rax
movq %rax, 0x10(%rsp)
cmpq $0x0, 0x8(%rsp)
je 0x19115
leaq 0x8(%rsp), %r12
movq 0x28(%rsp), %r15
movq %r12, %rdi
callq 0x7d37
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 0x190b9
jmp 0x1911a
movq 0x28(%rsp), %r15
cmpq $0x0, 0x10(%rsp)
je 0x1914a
leaq 0x10(%rsp), %r12
movq %r12, %rdi
callq 0x7d37
movl %eax, %ecx
shll $0x6, %ecx
addl $0x400, %ecx            # imm = 0x400
orl %eax, %ecx
movl %ecx, (%rbx)
addq $0x8, %rbx
cmpq $0x0, 0x10(%rsp)
jne 0x190f0
jmp 0x1914a
movq 0x28(%rsp), %r15
cmpq $0x0, 0x10(%rsp)
je 0x1914a
leaq 0x10(%rsp), %r12
movq %r12, %rdi
callq 0x7d37
movl %eax, %ecx
shll $0x6, %ecx
addl $0xfffffc00, %ecx       # imm = 0xFFFFFC00
orl %eax, %ecx
movl %ecx, (%rbx)
addq $0x8, %rbx
cmpq $0x0, 0x10(%rsp)
jne 0x19127
shlq $0x9, %r14
movl 0x80(%r15,%r14), %ebp
cmpl $0x40, %ebp
movq %r14, 0x30(%rsp)
je 0x191f5
addq %r15, %r14
addq $0x80, %r14
movslq 0x38(%rsp), %rax
leaq 0xff5d6(%rip), %rdx     # 0x118750
movq 0x18(%rsp), %rcx
movq 0x100(%rcx), %r13
notq %r13
andq 0x400(%rdx,%rax,8), %r13
leaq 0x8(%rsp), %r12
leaq 0xff003(%rip), %r15     # 0x1181a0
movq 0x20(%rsp), %rcx
movslq %ebp, %rax
testq %rcx, %rcx
je 0x191b0
testq %rcx, (%r15,%rax,8)
jne 0x191e4
leaq 0xff599(%rip), %rcx     # 0x118750
movq 0x400(%rcx,%rax,8), %rax
andq %r13, %rax
movq %rax, 0x8(%rsp)
je 0x191e4
shll $0x6, %ebp
movq %r12, %rdi
callq 0x7d37
orl %ebp, %eax
movl %eax, (%rbx)
addq $0x8, %rbx
cmpq $0x0, 0x8(%rsp)
jne 0x191cc
addq $0x4, %r14
movl (%r14), %ebp
cmpl $0x40, %ebp
movq 0x20(%rsp), %rcx
jne 0x191a2
movq 0x30(%rsp), %rdi
movq 0x28(%rsp), %r8
movl 0xc0(%r8,%rdi), %r13d
cmpl $0x40, %r13d
je 0x1933a
movq 0x18(%rsp), %rax
movq 0x100(%rax), %r15
leaq 0xf487c(%rip), %rax     # 0x10daa0
movq 0x40(%rsp), %rsi
movq (%rax,%rsi,8), %rax
andq %r15, %rax
leaq 0x15109(%rip), %rcx     # 0x2e340
movq (%rcx,%rsi,8), %rdx
movl %edx, %ecx
imull %eax, %ecx
shrq $0x20, %rax
shrq $0x20, %rdx
imull %eax, %edx
xorl %ecx, %edx
leaq 0x154ec(%rip), %rax     # 0x2e740
movb (%rax,%rsi,4), %cl
shrl %cl, %edx
leaq 0xf4a40(%rip), %rax     # 0x10dca0
addl (%rax,%rsi,4), %edx
leaq 0xf4b36(%rip), %rax     # 0x10dda0
notq %r15
andq (%rax,%rdx,8), %r15
leaq (%r8,%rdi), %rbp
addq $0xc0, %rbp
leaq 0x10a0cd(%rip), %r14    # 0x123350
leaq 0x8(%rsp), %r12
movslq %r13d, %rax
testq %r15, (%r14,%rax,8)
movq 0x20(%rsp), %rcx
je 0x19328
testq %rcx, %rcx
je 0x192ac
leaq 0xfeefa(%rip), %rdx     # 0x1181a0
testq %rcx, (%rdx,%rax,8)
jne 0x19328
leaq 0xf47ed(%rip), %rcx     # 0x10daa0
movq (%rcx,%rax,8), %rcx
movq 0x18(%rsp), %rdx
andq 0x100(%rdx), %rcx
leaq 0x15076(%rip), %rdx     # 0x2e340
movq (%rdx,%rax,8), %rdx
movl %edx, %esi
imull %ecx, %esi
shrq $0x20, %rcx
shrq $0x20, %rdx
imull %ecx, %edx
xorl %esi, %edx
leaq 0x15459(%rip), %rcx     # 0x2e740
movb (%rcx,%rax,4), %cl
shrl %cl, %edx
leaq 0xf49ad(%rip), %rcx     # 0x10dca0
addl (%rcx,%rax,4), %edx
leaq 0xf4aa3(%rip), %rax     # 0x10dda0
movq (%rax,%rdx,8), %rax
andq %r15, %rax
movq %rax, 0x8(%rsp)
je 0x19328
shll $0x6, %r13d
movq %r12, %rdi
callq 0x7d37
orl %r13d, %eax
movl %eax, (%rbx)
addq $0x8, %rbx
cmpq $0x0, 0x8(%rsp)
jne 0x1930f
addq $0x4, %rbp
movl (%rbp), %r13d
cmpl $0x40, %r13d
jne 0x19288
movq 0x30(%rsp), %rdi
movq 0x28(%rsp), %r8
movl 0x100(%r8,%rdi), %ebp
cmpl $0x40, %ebp
je 0x19480
movq 0x18(%rsp), %rax
movq 0x100(%rax), %r15
movslq 0x38(%rsp), %rax
leaq 0x2c433(%rip), %rcx     # 0x457a0
movq (%rcx,%rax,8), %rcx
andq %r15, %rcx
leaq 0x151c5(%rip), %rdx     # 0x2e540
movq (%rdx,%rax,8), %rdx
movl %edx, %esi
imull %ecx, %esi
shrq $0x20, %rcx
shrq $0x20, %rdx
imull %ecx, %edx
xorl %esi, %edx
leaq 0x154a8(%rip), %rcx     # 0x2e840
movb (%rcx,%rax,4), %cl
shrl %cl, %edx
leaq 0x2c5fc(%rip), %rcx     # 0x459a0
addl (%rcx,%rax,4), %edx
leaq 0x2c6f2(%rip), %rax     # 0x45aa0
notq %r15
andq (%rax,%rdx,8), %r15
leaq (%r8,%rdi), %r13
addq $0x100, %r13            # imm = 0x100
leaq 0x10a189(%rip), %r14    # 0x123550
leaq 0x8(%rsp), %r12
movq 0x20(%rsp), %rcx
movslq %ebp, %rax
testq %r15, (%r14,%rax,8)
je 0x1946a
testq %rcx, %rcx
je 0x193f0
leaq 0xfedb6(%rip), %rdx     # 0x1181a0
testq %rcx, (%rdx,%rax,8)
jne 0x1946a
leaq 0x2c3a9(%rip), %rcx     # 0x457a0
movq (%rcx,%rax,8), %rcx
movq 0x18(%rsp), %rdx
andq 0x100(%rdx), %rcx
leaq 0x15132(%rip), %rdx     # 0x2e540
movq (%rdx,%rax,8), %rdx
movl %edx, %esi
imull %ecx, %esi
shrq $0x20, %rcx
shrq $0x20, %rdx
imull %ecx, %edx
xorl %esi, %edx
leaq 0x15415(%rip), %rcx     # 0x2e840
movb (%rcx,%rax,4), %cl
shrl %cl, %edx
leaq 0x2c569(%rip), %rcx     # 0x459a0
addl (%rcx,%rax,4), %edx
leaq 0x2c65f(%rip), %rax     # 0x45aa0
movq (%rax,%rdx,8), %rax
andq %r15, %rax
movq %rax, 0x8(%rsp)
je 0x1946a
shll $0x6, %ebp
movq %r12, %rdi
callq 0x7d37
orl %ebp, %eax
movl %eax, (%rbx)
addq $0x8, %rbx
cmpq $0x0, 0x8(%rsp)
jne 0x19452
addq $0x4, %r13
movl (%r13), %ebp
cmpl $0x40, %ebp
movq 0x20(%rsp), %rcx
jne 0x193d1
movq 0x30(%rsp), %rax
movq 0x28(%rsp), %rcx
movl 0x140(%rcx,%rax), %r15d
cmpl $0x40, %r15d
je 0x1965f
leaq (%rcx,%rax), %r13
addq $0x140, %r13            # imm = 0x140
movq 0x18(%rsp), %r14
movq 0x100(%r14), %rbp
leaq 0x2c2e6(%rip), %rax     # 0x457a0
movq 0x40(%rsp), %rdi
movq (%rax,%rdi,8), %rcx
andq %rbp, %rcx
leaq 0x2c4d3(%rip), %rsi     # 0x459a0
leaq 0x1506c(%rip), %rax     # 0x2e540
movq (%rax,%rdi,8), %rax
movl %eax, %edx
imull %ecx, %edx
shrq $0x20, %rcx
shrq $0x20, %rax
imull %ecx, %eax
xorl %edx, %eax
leaq 0x1534f(%rip), %rcx     # 0x2e840
movb (%rcx,%rdi,4), %cl
shrl %cl, %eax
addl (%rsi,%rdi,4), %eax
leaq 0x2c5a0(%rip), %r8      # 0x45aa0
leaq 0xf4599(%rip), %rcx     # 0x10daa0
movq (%rcx,%rdi,8), %rcx
andq %rbp, %rcx
leaq 0x14e2b(%rip), %rdx     # 0x2e340
movq (%rdx,%rdi,8), %rdx
movl %edx, %esi
imull %ecx, %esi
shrq $0x20, %rcx
shrq $0x20, %rdx
imull %ecx, %edx
xorl %esi, %edx
leaq 0x1520e(%rip), %rcx     # 0x2e740
movb (%rcx,%rdi,4), %cl
shrl %cl, %edx
leaq 0xf4762(%rip), %rcx     # 0x10dca0
addl (%rcx,%rdi,4), %edx
leaq 0xf4858(%rip), %rcx     # 0x10dda0
movq (%rcx,%rdx,8), %rcx
orq (%r8,%rax,8), %rcx
notq %rbp
andq %rcx, %rbp
leaq 0x8(%rsp), %r12
movslq %r15d, %rax
leaq 0x10a1eb(%rip), %rcx    # 0x123750
testq %rbp, (%rcx,%rax,8)
je 0x1964d
movq 0x20(%rsp), %rcx
testq %rcx, %rcx
je 0x1958a
leaq 0xfec20(%rip), %rdx     # 0x1181a0
testq %rcx, (%rdx,%rax,8)
jne 0x1964d
movq 0x100(%r14), %rcx
leaq 0x2c208(%rip), %rdx     # 0x457a0
movq (%rdx,%rax,8), %rsi
andq %rcx, %rsi
leaq 0x14f9a(%rip), %rdx     # 0x2e540
movq (%rdx,%rax,8), %rdx
movl %edx, %edi
imull %esi, %edi
shrq $0x20, %rsi
shrq $0x20, %rdx
imull %esi, %edx
leaq 0xf44df(%rip), %rsi     # 0x10daa0
andq (%rsi,%rax,8), %rcx
xorl %edi, %edx
leaq 0x14d72(%rip), %rsi     # 0x2e340
movq (%rsi,%rax,8), %rsi
movl %esi, %edi
imull %ecx, %edi
shrq $0x20, %rcx
shrq $0x20, %rsi
imull %ecx, %esi
leaq 0x15257(%rip), %rcx     # 0x2e840
movb (%rcx,%rax,4), %cl
shrl %cl, %edx
xorl %edi, %esi
leaq 0x2c3a9(%rip), %rcx     # 0x459a0
addl (%rcx,%rax,4), %edx
leaq 0x1513f(%rip), %rcx     # 0x2e740
movb (%rcx,%rax,4), %cl
shrl %cl, %esi
leaq 0xf4693(%rip), %rcx     # 0x10dca0
addl (%rcx,%rax,4), %esi
leaq 0xf4789(%rip), %rax     # 0x10dda0
movq (%rax,%rsi,8), %rax
leaq 0x2c47e(%rip), %rcx     # 0x45aa0
orq (%rcx,%rdx,8), %rax
andq %rbp, %rax
movq %rax, 0x8(%rsp)
je 0x1964d
shll $0x6, %r15d
movq %r12, %rdi
callq 0x7d37
orl %r15d, %eax
movl %eax, (%rbx)
addq $0x8, %rbx
cmpq $0x0, 0x8(%rsp)
jne 0x19634
addq $0x4, %r13
movl (%r13), %r15d
cmpl $0x40, %r15d
jne 0x1955b
movq %rbx, %rax
addq $0x58, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq