140d4353c:	33 c2                	xor    %edx,%eax
140d4353e:	25 55 55 55 55       	and    $0x55555555,%eax
140d43543:	33 d0                	xor    %eax,%edx
140d43545:	03 c0                	add    %eax,%eax
140d43547:	44 33 c0             	xor    %eax,%r8d
140d4354a:	8b c2                	mov    %edx,%eax
140d4354c:	c1 e8 08             	shr    $0x8,%eax
140d4354f:	41 33 c0             	xor    %r8d,%eax
140d43552:	25 ff 00 ff 00       	and    $0xff00ff,%eax
140d43557:	44 33 c0             	xor    %eax,%r8d
140d4355a:	c1 e0 08             	shl    $0x8,%eax
140d4355d:	33 d0                	xor    %eax,%edx
140d4355f:	41 8b c0             	mov    %r8d,%eax
140d43562:	c1 e8 02             	shr    $0x2,%eax
140d43565:	33 c2                	xor    %edx,%eax
140d43567:	25 33 33 33 33       	and    $0x33333333,%eax
140d4356c:	33 d0                	xor    %eax,%edx
140d4356e:	8d 04 85 00 00 00 00 	lea    0x0(,%rax,4),%eax
140d43575:	44 33 c0             	xor    %eax,%r8d
140d43578:	8b c2                	mov    %edx,%eax
140d4357a:	c1 e8 10             	shr    $0x10,%eax
140d4357d:	41 33 c0             	xor    %r8d,%eax
140d43580:	0f b7 c8             	movzwl %ax,%ecx
140d43583:	48 8b 5c 24 30       	mov    0x30(%rsp),%rbx
140d43588:	44 33 c1             	xor    %ecx,%r8d
140d4358b:	c1 e1 10             	shl    $0x10,%ecx
140d4358e:	33 d1                	xor    %ecx,%edx
140d43590:	41 8b c8             	mov    %r8d,%ecx
140d43593:	c1 e9 04             	shr    $0x4,%ecx
140d43596:	33 ca                	xor    %edx,%ecx
140d43598:	81 e1 0f 0f 0f 0f    	and    $0xf0f0f0f,%ecx
140d4359e:	8b c1                	mov    %ecx,%eax
140d435a0:	c1 e1 04             	shl    $0x4,%ecx
140d435a3:	33 c2                	xor    %edx,%eax
140d435a5:	41 33 c8             	xor    %r8d,%ecx
140d435a8:	89 06                	mov    %eax,(%rsi)
140d435aa:	89 4e 04             	mov    %ecx,0x4(%rsi)
140d435ad:	48 8b 74 24 38       	mov    0x38(%rsp),%rsi
140d435b2:	48 83 c4 20          	add    $0x20,%rsp
140d435b6:	5f                   	pop    %rdi
140d435b7:	c3                   	ret
140d435b8:	cc                   	int3
140d435b9:	cc                   	int3
140d435ba:	cc                   	int3
140d435bb:	cc                   	int3
140d435bc:	cc                   	int3
140d435bd:	cc                   	int3
140d435be:	cc                   	int3
140d435bf:	cc                   	int3
140d435c0:	48 89 5c 24 10       	mov    %rbx,0x10(%rsp)
140d435c5:	48 89 6c 24 18       	mov    %rbp,0x18(%rsp)
140d435ca:	4c 89 4c 24 20       	mov    %r9,0x20(%rsp)
140d435cf:	56                   	push   %rsi
140d435d0:	57                   	push   %rdi
140d435d1:	41 54                	push   %r12
140d435d3:	41 56                	push   %r14
140d435d5:	41 57                	push   %r15
140d435d7:	b8 30 00 00 00       	mov    $0x30,%eax
140d435dc:	e8 bf 7e 0d 00       	call   0x140e1b4a0
140d435e1:	48 2b e0             	sub    %rax,%rsp
140d435e4:	4c 8b a4 24 80 00 00 	mov    0x80(%rsp),%r12
140d435eb:	00
140d435ec:	41 8d 70 f8          	lea    -0x8(%r8),%esi
140d435f0:	48 8b e9             	mov    %rcx,%rbp
140d435f3:	48 8b da             	mov    %rdx,%rbx
140d435f6:	41 0f b6 04 24       	movzbl (%r12),%eax
140d435fb:	45 0f b6 74 24 01    	movzbl 0x1(%r12),%r14d
140d43601:	45 0f b6 7c 24 04    	movzbl 0x4(%r12),%r15d
140d43607:	41 0f b6 4c 24 07    	movzbl 0x7(%r12),%ecx
140d4360d:	41 c1 e6 08          	shl    $0x8,%r14d
140d43611:	44 0b f0             	or     %eax,%r14d
140d43614:	c1 e1 08             	shl    $0x8,%ecx
140d43617:	41 0f b6 44 24 02    	movzbl 0x2(%r12),%eax
140d4361d:	c1 e0 10             	shl    $0x10,%eax
140d43620:	44 0b f0             	or     %eax,%r14d
140d43623:	41 0f b6 44 24 03    	movzbl 0x3(%r12),%eax
140d43629:	c1 e0 18             	shl    $0x18,%eax
140d4362c:	44 0b f0             	or     %eax,%r14d
140d4362f:	41 0f b6 44 24 05    	movzbl 0x5(%r12),%eax
140d43635:	c1 e0 08             	shl    $0x8,%eax
140d43638:	44 0b f8             	or     %eax,%r15d
140d4363b:	41 0f b6 44 24 06    	movzbl 0x6(%r12),%eax
140d43641:	0b c8                	or     %eax,%ecx
140d43643:	c1 e1 10             	shl    $0x10,%ecx
140d43646:	44 0b f9             	or     %ecx,%r15d
140d43649:	83 bc 24 88 00 00 00 	cmpl   $0x0,0x88(%rsp)
140d43650:	00
140d43651:	0f 84 d5 01 00 00    	je     0x140d4382c
140d43657:	85 f6                	test   %esi,%esi
140d43659:	0f 88 d8 00 00 00    	js     0x140d43737
140d4365f:	4c 8b 64 24 78       	mov    0x78(%rsp),%r12
140d43664:	41 8b f8             	mov    %r8d,%edi
140d43667:	48 c1 ef 03          	shr    $0x3,%rdi
140d4366b:	8b c7                	mov    %edi,%eax
140d4366d:	f7 d8                	neg    %eax
140d4366f:	8d 34 c6             	lea    (%rsi,%rax,8),%esi
140d43672:	0f b6 55 00          	movzbl 0x0(%rbp),%edx
140d43676:	41 b8 01 00 00 00    	mov    $0x1,%r8d
140d4367c:	0f b6 4d 04          	movzbl 0x4(%rbp),%ecx
140d43680:	0f b6 45 01          	movzbl 0x1(%rbp),%eax
140d43684:	c1 e0 08             	shl    $0x8,%eax
140d43687:	0b d0                	or     %eax,%edx
140d43689:	0f b6 45 02          	movzbl 0x2(%rbp),%eax
140d4368d:	c1 e0 10             	shl    $0x10,%eax
140d43690:	0b d0                	or     %eax,%edx
140d43692:	0f b6 45 03          	movzbl 0x3(%rbp),%eax
140d43696:	c1 e0 18             	shl    $0x18,%eax
140d43699:	0b d0                	or     %eax,%edx
140d4369b:	0f b6 45 05          	movzbl 0x5(%rbp),%eax
140d4369f:	c1 e0 08             	shl    $0x8,%eax
140d436a2:	41 33 d6             	xor    %r14d,%edx
140d436a5:	0b c8                	or     %eax,%ecx
140d436a7:	89 54 24 20          	mov    %edx,0x20(%rsp)
140d436ab:	0f b6 45 06          	movzbl 0x6(%rbp),%eax
140d436af:	49 8b d4             	mov    %r12,%rdx
140d436b2:	c1 e0 10             	shl    $0x10,%eax
140d436b5:	0b c8                	or     %eax,%ecx
140d436b7:	0f b6 45 07          	movzbl 0x7(%rbp),%eax
140d436bb:	c1 e0 18             	shl    $0x18,%eax
140d436be:	48 83 c5 08          	add    $0x8,%rbp
140d436c2:	0b c8                	or     %eax,%ecx
140d436c4:	41 33 cf             	xor    %r15d,%ecx
140d436c7:	89 4c 24 24          	mov    %ecx,0x24(%rsp)
140d436cb:	48 8d 4c 24 20       	lea    0x20(%rsp),%rcx
140d436d0:	e8 db d7 ff ff       	call   0x140d40eb0
140d436d5:	44 8b 74 24 20       	mov    0x20(%rsp),%r14d
140d436da:	41 8b c6             	mov    %r14d,%eax
140d436dd:	44 8b 7c 24 24       	mov    0x24(%rsp),%r15d
140d436e2:	c1 e8 08             	shr    $0x8,%eax
140d436e5:	44 88 33             	mov    %r14b,(%rbx)
140d436e8:	88 43 01             	mov    %al,0x1(%rbx)
140d436eb:	41 8b c6             	mov    %r14d,%eax
140d436ee:	c1 e8 10             	shr    $0x10,%eax
140d436f1:	88 43 02             	mov    %al,0x2(%rbx)
140d436f4:	41 8b c6             	mov    %r14d,%eax
140d436f7:	c1 e8 18             	shr    $0x18,%eax
140d436fa:	88 43 03             	mov    %al,0x3(%rbx)
140d436fd:	41 8b c7             	mov    %r15d,%eax
140d43700:	c1 e8 08             	shr    $0x8,%eax
140d43703:	88 43 05             	mov    %al,0x5(%rbx)
140d43706:	41 8b c7             	mov    %r15d,%eax
140d43709:	c1 e8 10             	shr    $0x10,%eax
140d4370c:	88 43 06             	mov    %al,0x6(%rbx)
140d4370f:	41 8b c7             	mov    %r15d,%eax
140d43712:	c1 e8 18             	shr    $0x18,%eax
140d43715:	88 43 07             	mov    %al,0x7(%rbx)
140d43718:	44 88 7b 04          	mov    %r15b,0x4(%rbx)
140d4371c:	48 83 c3 08          	add    $0x8,%rbx
140d43720:	48 83 ef 01          	sub    $0x1,%rdi
140d43724:	0f 85 48 ff ff ff    	jne    0x140d43672
140d4372a:	4c 8b a4 24 80 00 00 	mov    0x80(%rsp),%r12
140d43731:	00
140d43732:	4c 8b 4c 24 78       	mov    0x78(%rsp),%r9
140d43737:	83 fe f8             	cmp    $0xfffffff8,%esi
140d4373a:	0f 84 ce 02 00 00    	je     0x140d43a0e
140d43740:	8d 46 08             	lea    0x8(%rsi),%eax
140d43743:	83 c6 07             	add    $0x7,%esi
140d43746:	48 63 c8             	movslq %eax,%rcx
140d43749:	48 03 e9             	add    %rcx,%rbp
140d4374c:	33 c9                	xor    %ecx,%ecx
140d4374e:	8b d1                	mov    %ecx,%edx
140d43750:	83 fe 07             	cmp    $0x7,%esi
140d43753:	77 6a                	ja     0x140d437bf
140d43755:	4c 8d 05 a4 c8 2b ff 	lea    -0xd4375c(%rip),%r8        # 0x140000000
140d4375c:	48 63 c6             	movslq %esi,%rax
140d4375f:	41 8b 84 80 74 3a d4 	mov    0xd43a74(%r8,%rax,4),%eax
140d43766:	00
140d43767:	49 03 c0             	add    %r8,%rax
140d4376a:	ff e0                	jmp    *%rax
140d4376c:	0f b6 4d ff          	movzbl -0x1(%rbp),%ecx
140d43770:	48 ff cd             	dec    %rbp
140d43773:	c1 e1 18             	shl    $0x18,%ecx
140d43776:	0f b6 45 ff          	movzbl -0x1(%rbp),%eax
140d4377a:	48 ff cd             	dec    %rbp
140d4377d:	c1 e0 10             	shl    $0x10,%eax
140d43780:	0b c8                	or     %eax,%ecx
140d43782:	0f b6 45 ff          	movzbl -0x1(%rbp),%eax
140d43786:	48 ff cd             	dec    %rbp
140d43789:	c1 e0 08             	shl    $0x8,%eax
140d4378c:	0b c8                	or     %eax,%ecx
140d4378e:	0f b6 45 ff          	movzbl -0x1(%rbp),%eax
140d43792:	48 ff cd             	dec    %rbp
140d43795:	0b c8                	or     %eax,%ecx
140d43797:	0f b6 55 ff          	movzbl -0x1(%rbp),%edx
140d4379b:	48 ff cd             	dec    %rbp
140d4379e:	c1 e2 18             	shl    $0x18,%edx
140d437a1:	0f b6 45 ff          	movzbl -0x1(%rbp),%eax
140d437a5:	48 ff cd             	dec    %rbp
140d437a8:	c1 e0 10             	shl    $0x10,%eax
140d437ab:	0b d0                	or     %eax,%edx
140d437ad:	0f b6 45 ff          	movzbl -0x1(%rbp),%eax
140d437b1:	48 ff cd             	dec    %rbp
140d437b4:	c1 e0 08             	shl    $0x8,%eax
140d437b7:	0b d0                	or     %eax,%edx
140d437b9:	0f b6 45 ff          	movzbl -0x1(%rbp),%eax
140d437bd:	0b d0                	or     %eax,%edx
140d437bf:	41 33 d6             	xor    %r14d,%edx
140d437c2:	41 33 cf             	xor    %r15d,%ecx
140d437c5:	89 54 24 20          	mov    %edx,0x20(%rsp)
140d437c9:	41 b8 01 00 00 00    	mov    $0x1,%r8d
140d437cf:	89 4c 24 24          	mov    %ecx,0x24(%rsp)
140d437d3:	49 8b d1             	mov    %r9,%rdx
140d437d6:	48 8d 4c 24 20       	lea    0x20(%rsp),%rcx
140d437db:	e8 d0 d6 ff ff       	call   0x140d40eb0
140d437e0:	44 8b 74 24 20       	mov    0x20(%rsp),%r14d
140d437e5:	41 8b c6             	mov    %r14d,%eax
140d437e8:	44 8b 7c 24 24       	mov    0x24(%rsp),%r15d
140d437ed:	c1 e8 08             	shr    $0x8,%eax
140d437f0:	44 88 33             	mov    %r14b,(%rbx)
140d437f3:	88 43 01             	mov    %al,0x1(%rbx)
140d437f6:	41 8b c6             	mov    %r14d,%eax
140d437f9:	c1 e8 10             	shr    $0x10,%eax
140d437fc:	88 43 02             	mov    %al,0x2(%rbx)
140d437ff:	41 8b c6             	mov    %r14d,%eax
140d43802:	c1 e8 18             	shr    $0x18,%eax
140d43805:	88 43 03             	mov    %al,0x3(%rbx)
140d43808:	41 8b c7             	mov    %r15d,%eax
140d4380b:	c1 e8 08             	shr    $0x8,%eax
140d4380e:	88 43 05             	mov    %al,0x5(%rbx)
140d43811:	41 8b c7             	mov    %r15d,%eax
140d43814:	c1 e8 10             	shr    $0x10,%eax
140d43817:	88 43 06             	mov    %al,0x6(%rbx)
140d4381a:	41 8b c7             	mov    %r15d,%eax
140d4381d:	c1 e8 18             	shr    $0x18,%eax
140d43820:	88 43 07             	mov    %al,0x7(%rbx)
140d43823:	44 88 7b 04          	mov    %r15b,0x4(%rbx)
140d43827:	e9 e2 01 00 00       	jmp    0x140d43a0e
140d4382c:	4c 89 6c 24 60       	mov    %r13,0x60(%rsp)
140d43831:	85 f6                	test   %esi,%esi
140d43833:	0f 88 e8 00 00 00    	js     0x140d43921
140d43839:	4c 8b 64 24 78       	mov    0x78(%rsp),%r12
140d4383e:	45 8b e8             	mov    %r8d,%r13d
140d43841:	49 c1 ed 03          	shr    $0x3,%r13
140d43845:	41 8b c5             	mov    %r13d,%eax
140d43848:	f7 d8                	neg    %eax
140d4384a:	8d 34 c6             	lea    (%rsi,%rax,8),%esi
140d4384d:	89 b4 24 88 00 00 00 	mov    %esi,0x88(%rsp)
140d43854:	0f 1f 40 00          	nopl   0x0(%rax)
140d43858:	0f 1f 84 00 00 00 00 	nopl   0x0(%rax,%rax,1)
140d4385f:	00
140d43860:	0f b6 45 01          	movzbl 0x1(%rbp),%eax
140d43864:	48 8d 4c 24 20       	lea    0x20(%rsp),%rcx
140d43869:	0f b6 75 00          	movzbl 0x0(%rbp),%esi
140d4386d:	45 33 c0             	xor    %r8d,%r8d
140d43870:	0f b6 7d 04          	movzbl 0x4(%rbp),%edi
140d43874:	49 8b d4             	mov    %r12,%rdx
140d43877:	c1 e0 08             	shl    $0x8,%eax
140d4387a:	0b f0                	or     %eax,%esi
140d4387c:	0f b6 45 02          	movzbl 0x2(%rbp),%eax
140d43880:	c1 e0 10             	shl    $0x10,%eax
140d43883:	0b f0                	or     %eax,%esi
140d43885:	0f b6 45 03          	movzbl 0x3(%rbp),%eax
140d43889:	c1 e0 18             	shl    $0x18,%eax
140d4388c:	0b f0                	or     %eax,%esi
140d4388e:	0f b6 45 05          	movzbl 0x5(%rbp),%eax
140d43892:	c1 e0 08             	shl    $0x8,%eax
140d43895:	0b f8                	or     %eax,%edi
140d43897:	89 74 24 20          	mov    %esi,0x20(%rsp)
140d4389b:	0f b6 45 06          	movzbl 0x6(%rbp),%eax
140d4389f:	c1 e0 10             	shl    $0x10,%eax
140d438a2:	0b f8                	or     %eax,%edi
140d438a4:	0f b6 45 07          	movzbl 0x7(%rbp),%eax
140d438a8:	c1 e0 18             	shl    $0x18,%eax
140d438ab:	48 83 c5 08          	add    $0x8,%rbp
140d438af:	0b f8                	or     %eax,%edi
140d438b1:	89 7c 24 24          	mov    %edi,0x24(%rsp)
140d438b5:	e8 f6 d5 ff ff       	call   0x140d40eb0
140d438ba:	8b 4c 24 20          	mov    0x20(%rsp),%ecx
140d438be:	8b 54 24 24          	mov    0x24(%rsp),%edx
140d438c2:	41 33 ce             	xor    %r14d,%ecx
140d438c5:	88 0b                	mov    %cl,(%rbx)
140d438c7:	41 33 d7             	xor    %r15d,%edx
140d438ca:	8b c1                	mov    %ecx,%eax
140d438cc:	88 53 04             	mov    %dl,0x4(%rbx)
140d438cf:	c1 e8 08             	shr    $0x8,%eax
140d438d2:	44 8b f6             	mov    %esi,%r14d
140d438d5:	88 43 01             	mov    %al,0x1(%rbx)
140d438d8:	44 8b ff             	mov    %edi,%r15d
140d438db:	8b c1                	mov    %ecx,%eax
140d438dd:	c1 e9 18             	shr    $0x18,%ecx
140d438e0:	c1 e8 10             	shr    $0x10,%eax
140d438e3:	88 43 02             	mov    %al,0x2(%rbx)
140d438e6:	8b c2                	mov    %edx,%eax
140d438e8:	c1 e8 08             	shr    $0x8,%eax
140d438eb:	88 43 05             	mov    %al,0x5(%rbx)
140d438ee:	8b c2                	mov    %edx,%eax
140d438f0:	c1 e8 10             	shr    $0x10,%eax
140d438f3:	c1 ea 18             	shr    $0x18,%edx
140d438f6:	88 43 06             	mov    %al,0x6(%rbx)
140d438f9:	88 4b 03             	mov    %cl,0x3(%rbx)
140d438fc:	88 53 07             	mov    %dl,0x7(%rbx)
140d438ff:	48 83 c3 08          	add    $0x8,%rbx
140d43903:	49 83 ed 01          	sub    $0x1,%r13
140d43907:	0f 85 53 ff ff ff    	jne    0x140d43860
140d4390d:	4c 8b a4 24 80 00 00 	mov    0x80(%rsp),%r12
140d43914:	00
140d43915:	8b b4 24 88 00 00 00 	mov    0x88(%rsp),%esi
140d4391c:	4c 8b 4c 24 78       	mov    0x78(%rsp),%r9
140d43921:	83 fe f8             	cmp    $0xfffffff8,%esi
140d43924:	0f 84 df 00 00 00    	je     0x140d43a09
140d4392a:	0f b6 4d 07          	movzbl 0x7(%rbp),%ecx
140d4392e:	45 33 c0             	xor    %r8d,%r8d
140d43931:	0f b6 45 01          	movzbl 0x1(%rbp),%eax
140d43935:	49 8b d1             	mov    %r9,%rdx
140d43938:	0f b6 7d 00          	movzbl 0x0(%rbp),%edi
140d4393c:	44 0f b6 6d 04       	movzbl 0x4(%rbp),%r13d
140d43941:	c1 e0 08             	shl    $0x8,%eax
140d43944:	0b f8                	or     %eax,%edi
140d43946:	c1 e1 08             	shl    $0x8,%ecx
140d43949:	0f b6 45 02          	movzbl 0x2(%rbp),%eax
140d4394d:	c1 e0 10             	shl    $0x10,%eax
140d43950:	0b f8                	or     %eax,%edi
140d43952:	0f b6 45 03          	movzbl 0x3(%rbp),%eax
140d43956:	c1 e0 18             	shl    $0x18,%eax
140d43959:	0b f8                	or     %eax,%edi
140d4395b:	0f b6 45 05          	movzbl 0x5(%rbp),%eax
140d4395f:	c1 e0 08             	shl    $0x8,%eax
140d43962:	44 0b e8             	or     %eax,%r13d
140d43965:	89 7c 24 20          	mov    %edi,0x20(%rsp)
140d43969:	0f b6 45 06          	movzbl 0x6(%rbp),%eax
140d4396d:	0b c8                	or     %eax,%ecx
140d4396f:	c1 e1 10             	shl    $0x10,%ecx
140d43972:	44 0b e9             	or     %ecx,%r13d
140d43975:	48 8d 4c 24 20       	lea    0x20(%rsp),%rcx
140d4397a:	44 89 6c 24 24       	mov    %r13d,0x24(%rsp)
140d4397f:	e8 2c d5 ff ff       	call   0x140d40eb0
140d43984:	44 8b 4c 24 20       	mov    0x20(%rsp),%r9d
140d43989:	8d 46 08             	lea    0x8(%rsi),%eax
140d4398c:	8b 54 24 24          	mov    0x24(%rsp),%edx
140d43990:	45 33 ce             	xor    %r14d,%r9d
140d43993:	48 63 c8             	movslq %eax,%rcx
140d43996:	41 33 d7             	xor    %r15d,%edx
140d43999:	48 03 d9             	add    %rcx,%rbx
140d4399c:	83 c6 07             	add    $0x7,%esi
140d4399f:	83 fe 07             	cmp    $0x7,%esi
140d439a2:	77 5f                	ja     0x140d43a03
140d439a4:	4c 8d 05 55 c6 2b ff 	lea    -0xd439ab(%rip),%r8        # 0x140000000
140d439ab:	48 63 c6             	movslq %esi,%rax
140d439ae:	41 8b 84 80 94 3a d4 	mov    0xd43a94(%r8,%rax,4),%eax
140d439b5:	00
140d439b6:	49 03 c0             	add    %r8,%rax
140d439b9:	ff e0                	jmp    *%rax
140d439bb:	48 ff cb             	dec    %rbx
140d439be:	8b c2                	mov    %edx,%eax
140d439c0:	c1 e8 18             	shr    $0x18,%eax
140d439c3:	88 03                	mov    %al,(%rbx)
140d439c5:	48 ff cb             	dec    %rbx
140d439c8:	8b c2                	mov    %edx,%eax
140d439ca:	c1 e8 10             	shr    $0x10,%eax
140d439cd:	88 03                	mov    %al,(%rbx)