14003a2b2:	03 74 b9 fc          	add    -0x4(%rcx,%rdi,4),%esi
14003a2b6:	8b cb                	mov    %ebx,%ecx
14003a2b8:	e8 93 ac ff ff       	call   0x140034f50
14003a2bd:	45 33 f6             	xor    %r14d,%r14d
14003a2c0:	84 c0                	test   %al,%al
14003a2c2:	74 07                	je     0x14003a2cb
14003a2c4:	83 ff 02             	cmp    $0x2,%edi
14003a2c7:	7e 02                	jle    0x14003a2cb
14003a2c9:	ff c6                	inc    %esi
14003a2cb:	e8 d4 4b 00 00       	call   0x14003eea4
14003a2d0:	48 8d 4d c0          	lea    -0x40(%rbp),%rcx
14003a2d4:	44 89 75 c0          	mov    %r14d,-0x40(%rbp)
14003a2d8:	44 89 75 bc          	mov    %r14d,-0x44(%rbp)
14003a2dc:	44 89 75 b8          	mov    %r14d,-0x48(%rbp)
14003a2e0:	e8 c3 3f 00 00       	call   0x14003e2a8
14003a2e5:	85 c0                	test   %eax,%eax
14003a2e7:	0f 85 21 01 00 00    	jne    0x14003a40e
14003a2ed:	48 8d 4d bc          	lea    -0x44(%rbp),%rcx
14003a2f1:	e8 e2 3f 00 00       	call   0x14003e2d8
14003a2f6:	85 c0                	test   %eax,%eax
14003a2f8:	0f 85 10 01 00 00    	jne    0x14003a40e
14003a2fe:	48 8d 4d b8          	lea    -0x48(%rbp),%rcx
14003a302:	e8 01 40 00 00       	call   0x14003e308
14003a307:	85 c0                	test   %eax,%eax
14003a309:	0f 85 ff 00 00 00    	jne    0x14003a40e
14003a30f:	4c 63 75 bc          	movslq -0x44(%rbp),%r14
14003a313:	8d 8b 2b 01 00 00    	lea    0x12b(%rbx),%ecx
14003a319:	41 ba 1f 85 eb 51    	mov    $0x51eb851f,%r10d
14003a31f:	44 8d 43 ff          	lea    -0x1(%rbx),%r8d
14003a323:	41 8b c2             	mov    %r10d,%eax
14003a326:	f7 e9                	imul   %ecx
14003a328:	41 8b c2             	mov    %r10d,%eax
14003a32b:	44 8b ca             	mov    %edx,%r9d
14003a32e:	41 f7 e8             	imul   %r8d
14003a331:	41 c1 f9 07          	sar    $0x7,%r9d
14003a335:	41 8b c0             	mov    %r8d,%eax
14003a338:	c1 fa 05             	sar    $0x5,%edx
14003a33b:	41 8b c9             	mov    %r9d,%ecx
14003a33e:	c1 e9 1f             	shr    $0x1f,%ecx
14003a341:	44 03 c9             	add    %ecx,%r9d
14003a344:	8b ca                	mov    %edx,%ecx
14003a346:	c1 e9 1f             	shr    $0x1f,%ecx
14003a349:	03 d1                	add    %ecx,%edx
14003a34b:	44 2b ca             	sub    %edx,%r9d
14003a34e:	99                   	cltd
14003a34f:	83 e2 03             	and    $0x3,%edx
14003a352:	8d 0c 02             	lea    (%rdx,%rax,1),%ecx
14003a355:	48 63 c3             	movslq %ebx,%rax
14003a358:	c1 f9 02             	sar    $0x2,%ecx
14003a35b:	48 83 c0 ba          	add    $0xffffffffffffffba,%rax
14003a35f:	83 c1 ef             	add    $0xffffffef,%ecx
14003a362:	41 03 c9             	add    %r9d,%ecx
14003a365:	48 63 d1             	movslq %ecx,%rdx
14003a368:	48 69 c8 6d 01 00 00 	imul   $0x16d,%rax,%rcx
14003a36f:	48 63 c6             	movslq %esi,%rax
14003a372:	48 03 d1             	add    %rcx,%rdx
14003a375:	48 03 d0             	add    %rax,%rdx
14003a378:	48 63 45 b8          	movslq -0x48(%rbp),%rax
14003a37c:	48 8d 0c 52          	lea    (%rdx,%rdx,2),%rcx
14003a380:	48 8d 0c cd 00 00 00 	lea    0x0(,%rcx,8),%rcx
14003a387:	00
14003a388:	49 03 cd             	add    %r13,%rcx
14003a38b:	48 6b d1 3c          	imul   $0x3c,%rcx,%rdx
14003a38f:	49 03 d4             	add    %r12,%rdx
14003a392:	48 6b fa 3c          	imul   $0x3c,%rdx,%rdi
14003a396:	48 03 f8             	add    %rax,%rdi
14003a399:	49 03 ff             	add    %r15,%rdi
14003a39c:	4c 03 f7             	add    %rdi,%r14
14003a39f:	83 7d 78 01          	cmpl   $0x1,0x78(%rbp)
14003a3a3:	74 38                	je     0x14003a3dd
14003a3a5:	83 7d 78 ff          	cmpl   $0xffffffff,0x78(%rbp)
14003a3a9:	8b 45 c4             	mov    -0x3c(%rbp),%eax
14003a3ac:	89 45 d8             	mov    %eax,-0x28(%rbp)
14003a3af:	89 75 e4             	mov    %esi,-0x1c(%rbp)
14003a3b2:	89 5d dc             	mov    %ebx,-0x24(%rbp)
14003a3b5:	44 89 6d d0          	mov    %r13d,-0x30(%rbp)
14003a3b9:	44 89 65 cc          	mov    %r12d,-0x34(%rbp)
14003a3bd:	44 89 7d c8          	mov    %r15d,-0x38(%rbp)
14003a3c1:	75 15                	jne    0x14003a3d8
14003a3c3:	83 7d c0 00          	cmpl   $0x0,-0x40(%rbp)
14003a3c7:	74 0f                	je     0x14003a3d8
14003a3c9:	48 8d 4d c8          	lea    -0x38(%rbp),%rcx
14003a3cd:	e8 16 4b 00 00       	call   0x14003eee8
14003a3d2:	85 c0                	test   %eax,%eax
14003a3d4:	49 0f 45 fe          	cmovne %r14,%rdi
14003a3d8:	48 8b c7             	mov    %rdi,%rax
14003a3db:	eb 14                	jmp    0x14003a3f1
14003a3dd:	49 8b c6             	mov    %r14,%rax
14003a3e0:	eb 0f                	jmp    0x14003a3f1
14003a3e2:	e8 51 16 ff ff       	call   0x14002ba38
14003a3e7:	c7 00 16 00 00 00    	movl   $0x16,(%rax)
14003a3ed:	48 83 c8 ff          	or     $0xffffffffffffffff,%rax
14003a3f1:	48 8b 4d f0          	mov    -0x10(%rbp),%rcx
14003a3f5:	48 33 cc             	xor    %rsp,%rcx
14003a3f8:	e8 03 a7 fe ff       	call   0x140024b00
14003a3fd:	48 83 c4 78          	add    $0x78,%rsp
14003a401:	41 5f                	pop    %r15
14003a403:	41 5e                	pop    %r14
14003a405:	41 5d                	pop    %r13
14003a407:	41 5c                	pop    %r12
14003a409:	5f                   	pop    %rdi
14003a40a:	5e                   	pop    %rsi
14003a40b:	5b                   	pop    %rbx
14003a40c:	5d                   	pop    %rbp
14003a40d:	c3                   	ret
14003a40e:	45 33 c9             	xor    %r9d,%r9d
14003a411:	4c 89 74 24 20       	mov    %r14,0x20(%rsp)
14003a416:	45 33 c0             	xor    %r8d,%r8d
14003a419:	33 d2                	xor    %edx,%edx
14003a41b:	33 c9                	xor    %ecx,%ecx
14003a41d:	e8 d2 11 ff ff       	call   0x14002b5f4
14003a422:	cc                   	int3
14003a423:	cc                   	int3
14003a424:	e9 c7 fd ff ff       	jmp    0x14003a1f0
14003a429:	cc                   	int3
14003a42a:	cc                   	int3
14003a42b:	cc                   	int3
14003a42c:	48 8b c4             	mov    %rsp,%rax
14003a42f:	48 89 58 08          	mov    %rbx,0x8(%rax)
14003a433:	48 89 68 10          	mov    %rbp,0x10(%rax)
14003a437:	48 89 70 18          	mov    %rsi,0x18(%rax)
14003a43b:	48 89 78 20          	mov    %rdi,0x20(%rax)
14003a43f:	41 56                	push   %r14
14003a441:	48 81 ec 90 00 00 00 	sub    $0x90,%rsp
14003a448:	48 8d 48 88          	lea    -0x78(%rax),%rcx
14003a44c:	ff 15 a6 1e 01 00    	call   *0x11ea6(%rip)        # 0x14004c2f8
14003a452:	45 33 f6             	xor    %r14d,%r14d
14003a455:	66 44 39 74 24 62    	cmp    %r14w,0x62(%rsp)
14003a45b:	0f 84 9a 00 00 00    	je     0x14003a4fb
14003a461:	48 8b 44 24 68       	mov    0x68(%rsp),%rax
14003a466:	48 85 c0             	test   %rax,%rax
14003a469:	0f 84 8c 00 00 00    	je     0x14003a4fb
14003a46f:	48 63 18             	movslq (%rax),%rbx
14003a472:	48 8d 70 04          	lea    0x4(%rax),%rsi
14003a476:	bf 00 20 00 00       	mov    $0x2000,%edi
14003a47b:	48 03 de             	add    %rsi,%rbx
14003a47e:	39 38                	cmp    %edi,(%rax)
14003a480:	0f 4c 38             	cmovl  (%rax),%edi
14003a483:	8b cf                	mov    %edi,%ecx
14003a485:	e8 3a fb ff ff       	call   0x140039fc4
14003a48a:	3b 3d 00 e1 03 00    	cmp    0x3e100(%rip),%edi        # 0x140078590
14003a490:	0f 4f 3d f9 e0 03 00 	cmovg  0x3e0f9(%rip),%edi        # 0x140078590
14003a497:	85 ff                	test   %edi,%edi
14003a499:	74 60                	je     0x14003a4fb
14003a49b:	41 8b ee             	mov    %r14d,%ebp
14003a49e:	48 83 3b ff          	cmpq   $0xffffffffffffffff,(%rbx)
14003a4a2:	74 47                	je     0x14003a4eb
14003a4a4:	48 83 3b fe          	cmpq   $0xfffffffffffffffe,(%rbx)
14003a4a8:	74 41                	je     0x14003a4eb
14003a4aa:	f6 06 01             	testb  $0x1,(%rsi)
14003a4ad:	74 3c                	je     0x14003a4eb
14003a4af:	f6 06 08             	testb  $0x8,(%rsi)
14003a4b2:	75 0d                	jne    0x14003a4c1
14003a4b4:	48 8b 0b             	mov    (%rbx),%rcx
14003a4b7:	ff 15 93 1e 01 00    	call   *0x11e93(%rip)        # 0x14004c350
14003a4bd:	85 c0                	test   %eax,%eax
14003a4bf:	74 2a                	je     0x14003a4eb
14003a4c1:	48 8b c5             	mov    %rbp,%rax
14003a4c4:	4c 8d 05 c5 dc 03 00 	lea    0x3dcc5(%rip),%r8        # 0x140078190
14003a4cb:	48 8b cd             	mov    %rbp,%rcx
14003a4ce:	48 c1 f9 06          	sar    $0x6,%rcx
14003a4d2:	83 e0 3f             	and    $0x3f,%eax
14003a4d5:	49 8b 0c c8          	mov    (%r8,%rcx,8),%rcx
14003a4d9:	48 8d 14 c0          	lea    (%rax,%rax,8),%rdx
14003a4dd:	48 8b 03             	mov    (%rbx),%rax
14003a4e0:	48 89 44 d1 28       	mov    %rax,0x28(%rcx,%rdx,8)
14003a4e5:	8a 06                	mov    (%rsi),%al
14003a4e7:	88 44 d1 38          	mov    %al,0x38(%rcx,%rdx,8)
14003a4eb:	48 ff c5             	inc    %rbp
14003a4ee:	48 ff c6             	inc    %rsi
14003a4f1:	48 83 c3 08          	add    $0x8,%rbx
14003a4f5:	48 83 ef 01          	sub    $0x1,%rdi
14003a4f9:	75 a3                	jne    0x14003a49e
14003a4fb:	4c 8d 9c 24 90 00 00 	lea    0x90(%rsp),%r11
14003a502:	00
14003a503:	49 8b 5b 10          	mov    0x10(%r11),%rbx
14003a507:	49 8b 6b 18          	mov    0x18(%r11),%rbp
14003a50b:	49 8b 73 20          	mov    0x20(%r11),%rsi
14003a50f:	49 8b 7b 28          	mov    0x28(%r11),%rdi
14003a513:	49 8b e3             	mov    %r11,%rsp
14003a516:	41 5e                	pop    %r14
14003a518:	c3                   	ret
14003a519:	cc                   	int3
14003a51a:	cc                   	int3
14003a51b:	cc                   	int3
14003a51c:	48 8b c4             	mov    %rsp,%rax
14003a51f:	48 89 58 08          	mov    %rbx,0x8(%rax)
14003a523:	48 89 68 10          	mov    %rbp,0x10(%rax)
14003a527:	48 89 70 18          	mov    %rsi,0x18(%rax)
14003a52b:	48 89 78 20          	mov    %rdi,0x20(%rax)
14003a52f:	41 56                	push   %r14
14003a531:	48 83 ec 20          	sub    $0x20,%rsp
14003a535:	33 f6                	xor    %esi,%esi
14003a537:	45 33 f6             	xor    %r14d,%r14d
14003a53a:	48 63 ce             	movslq %esi,%rcx
14003a53d:	48 8d 3d 4c dc 03 00 	lea    0x3dc4c(%rip),%rdi        # 0x140078190
14003a544:	48 8b c1             	mov    %rcx,%rax
14003a547:	83 e1 3f             	and    $0x3f,%ecx
14003a54a:	48 c1 f8 06          	sar    $0x6,%rax
14003a54e:	48 8d 1c c9          	lea    (%rcx,%rcx,8),%rbx
14003a552:	48 8b 3c c7          	mov    (%rdi,%rax,8),%rdi
14003a556:	48 8b 44 df 28       	mov    0x28(%rdi,%rbx,8),%rax
14003a55b:	48 83 c0 02          	add    $0x2,%rax
14003a55f:	48 83 f8 01          	cmp    $0x1,%rax
14003a563:	76 0a                	jbe    0x14003a56f
14003a565:	80 4c df 38 80       	orb    $0x80,0x38(%rdi,%rbx,8)
14003a56a:	e9 8b 00 00 00       	jmp    0x14003a5fa
14003a56f:	c6 44 df 38 81       	movb   $0x81,0x38(%rdi,%rbx,8)
14003a574:	8b ce                	mov    %esi,%ecx
14003a576:	85 f6                	test   %esi,%esi
14003a578:	74 16                	je     0x14003a590
14003a57a:	83 e9 01             	sub    $0x1,%ecx
14003a57d:	74 0a                	je     0x14003a589
14003a57f:	83 f9 01             	cmp    $0x1,%ecx
14003a582:	b9 f4 ff ff ff       	mov    $0xfffffff4,%ecx
14003a587:	eb 0c                	jmp    0x14003a595
14003a589:	b9 f5 ff ff ff       	mov    $0xfffffff5,%ecx
14003a58e:	eb 05                	jmp    0x14003a595
14003a590:	b9 f6 ff ff ff       	mov    $0xfffffff6,%ecx
14003a595:	ff 15 e5 1d 01 00    	call   *0x11de5(%rip)        # 0x14004c380
14003a59b:	48 8b e8             	mov    %rax,%rbp
14003a59e:	48 8d 48 01          	lea    0x1(%rax),%rcx
14003a5a2:	48 83 f9 01          	cmp    $0x1,%rcx
14003a5a6:	76 2d                	jbe    0x14003a5d5
14003a5a8:	48 8b c8             	mov    %rax,%rcx
14003a5ab:	ff 15 9f 1d 01 00    	call   *0x11d9f(%rip)        # 0x14004c350
14003a5b1:	85 c0                	test   %eax,%eax
14003a5b3:	74 20                	je     0x14003a5d5
14003a5b5:	0f b6 c0             	movzbl %al,%eax
14003a5b8:	48 89 6c df 28       	mov    %rbp,0x28(%rdi,%rbx,8)
14003a5bd:	83 f8 02             	cmp    $0x2,%eax
14003a5c0:	75 07                	jne    0x14003a5c9
14003a5c2:	80 4c df 38 40       	orb    $0x40,0x38(%rdi,%rbx,8)
14003a5c7:	eb 31                	jmp    0x14003a5fa
14003a5c9:	83 f8 03             	cmp    $0x3,%eax
14003a5cc:	75 2c                	jne    0x14003a5fa
14003a5ce:	80 4c df 38 08       	orb    $0x8,0x38(%rdi,%rbx,8)
14003a5d3:	eb 25                	jmp    0x14003a5fa
14003a5d5:	80 4c df 38 40       	orb    $0x40,0x38(%rdi,%rbx,8)
14003a5da:	48 c7 44 df 28 fe ff 	movq   $0xfffffffffffffffe,0x28(%rdi,%rbx,8)
14003a5e1:	ff ff
14003a5e3:	48 8b 05 16 d7 03 00 	mov    0x3d716(%rip),%rax        # 0x140077d00
14003a5ea:	48 85 c0             	test   %rax,%rax
14003a5ed:	74 0b                	je     0x14003a5fa
14003a5ef:	49 8b 04 06          	mov    (%r14,%rax,1),%rax
14003a5f3:	c7 40 18 fe ff ff ff 	movl   $0xfffffffe,0x18(%rax)
14003a5fa:	ff c6                	inc    %esi
14003a5fc:	49 83 c6 08          	add    $0x8,%r14
14003a600:	83 fe 03             	cmp    $0x3,%esi
14003a603:	0f 85 31 ff ff ff    	jne    0x14003a53a
14003a609:	48 8b 5c 24 30       	mov    0x30(%rsp),%rbx
14003a60e:	48 8b 6c 24 38       	mov    0x38(%rsp),%rbp
14003a613:	48 8b 74 24 40       	mov    0x40(%rsp),%rsi
14003a618:	48 8b 7c 24 48       	mov    0x48(%rsp),%rdi
14003a61d:	48 83 c4 20          	add    $0x20,%rsp
14003a621:	41 5e                	pop    %r14
14003a623:	c3                   	ret
14003a624:	cc                   	int3
14003a625:	cc                   	int3
14003a626:	cc                   	int3
14003a627:	cc                   	int3
14003a628:	cc                   	int3
14003a629:	cc                   	int3
14003a62a:	cc                   	int3
14003a62b:	cc                   	int3
14003a62c:	cc                   	int3
14003a62d:	cc                   	int3
14003a62e:	cc                   	int3
14003a62f:	cc                   	int3
14003a630:	40 53                	rex push %rbx
14003a632:	48 83 ec 20          	sub    $0x20,%rsp
14003a636:	b9 07 00 00 00       	mov    $0x7,%ecx
14003a63b:	e8 08 7b ff ff       	call   0x140032148
14003a640:	33 db                	xor    %ebx,%ebx
14003a642:	33 c9                	xor    %ecx,%ecx
14003a644:	e8 7b f9 ff ff       	call   0x140039fc4
14003a649:	85 c0                	test   %eax,%eax
14003a64b:	75 0c                	jne    0x14003a659
14003a64d:	e8 da fd ff ff       	call   0x14003a42c
14003a652:	e8 c5 fe ff ff       	call   0x14003a51c
14003a657:	b3 01                	mov    $0x1,%bl
14003a659:	b9 07 00 00 00       	mov    $0x7,%ecx
14003a65e:	e8 45 7b ff ff       	call   0x1400321a8
14003a663:	8a c3                	mov    %bl,%al
14003a665:	48 83 c4 20          	add    $0x20,%rsp
14003a669:	5b                   	pop    %rbx
14003a66a:	c3                   	ret
14003a66b:	cc                   	int3
14003a66c:	cc                   	int3
14003a66d:	cc                   	int3
14003a66e:	cc                   	int3
14003a66f:	cc                   	int3
14003a670:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
14003a675:	57                   	push   %rdi
14003a676:	48 83 ec 20          	sub    $0x20,%rsp
14003a67a:	33 db                	xor    %ebx,%ebx
14003a67c:	48 8d 3d 0d db 03 00 	lea    0x3db0d(%rip),%rdi        # 0x140078190
14003a683:	48 8b 0c 3b          	mov    (%rbx,%rdi,1),%rcx
14003a687:	48 85 c9             	test   %rcx,%rcx
14003a68a:	74 0a                	je     0x14003a696
14003a68c:	e8 e3 f8 ff ff       	call   0x140039f74
14003a691:	48 83 24 3b 00       	andq   $0x0,(%rbx,%rdi,1)
14003a696:	48 83 c3 08          	add    $0x8,%rbx
14003a69a:	48 81 fb 00 04 00 00 	cmp    $0x400,%rbx
14003a6a1:	72 d9                	jb     0x14003a67c
14003a6a3:	48 8b 5c 24 30       	mov    0x30(%rsp),%rbx
14003a6a8:	b0 01                	mov    $0x1,%al
14003a6aa:	48 83 c4 20          	add    $0x20,%rsp
14003a6ae:	5f                   	pop    %rdi
14003a6af:	c3                   	ret
14003a6b0:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
14003a6b5:	48 89 6c 24 18       	mov    %rbp,0x18(%rsp)
14003a6ba:	48 89 74 24 20       	mov    %rsi,0x20(%rsp)
14003a6bf:	57                   	push   %rdi
14003a6c0:	41 54                	push   %r12
14003a6c2:	41 55                	push   %r13
14003a6c4:	41 56                	push   %r14
14003a6c6:	41 57                	push   %r15
14003a6c8:	48 83 ec 50          	sub    $0x50,%rsp
14003a6cc:	8b 84 24 a8 00 00 00 	mov    0xa8(%rsp),%eax
14003a6d3:	45 33 db             	xor    %r11d,%r11d
14003a6d6:	85 c0                	test   %eax,%eax
14003a6d8:	44 88 1a             	mov    %r11b,(%rdx)
14003a6db:	41 8b fb             	mov    %r11d,%edi
14003a6de:	4d 8b d1             	mov    %r9,%r10
14003a6e1:	0f 49 f8             	cmovns %eax,%edi
14003a6e4:	48 8b da             	mov    %rdx,%rbx
14003a6e7:	4c 8b f1             	mov    %rcx,%r14
14003a6ea:	8d 47 0b             	lea    0xb(%rdi),%eax
14003a6ed:	4c 63 c8             	movslq %eax,%r9
14003a6f0:	4d 3b c1             	cmp    %r9,%r8
14003a6f3:	77 33                	ja     0x14003a728
14003a6f5:	48 8b 8c 24 c8 00 00 	mov    0xc8(%rsp),%rcx
14003a6fc:	00
14003a6fd:	41 8d 5b 22          	lea    0x22(%r11),%ebx
14003a701:	48 89 4c 24 28       	mov    %rcx,0x28(%rsp)
14003a706:	45 33 c9             	xor    %r9d,%r9d
14003a709:	45 33 c0             	xor    %r8d,%r8d
14003a70c:	4c 89 5c 24 20       	mov    %r11,0x20(%rsp)
14003a711:	33 d2                	xor    %edx,%edx
14003a713:	c6 41 30 01          	movb   $0x1,0x30(%rcx)
14003a717:	89 59 2c             	mov    %ebx,0x2c(%rcx)
14003a71a:	33 c9                	xor    %ecx,%ecx
14003a71c:	e8 b7 0d ff ff       	call   0x14002b4d8
14003a721:	8b c3                	mov    %ebx,%eax
14003a723:	e9 01 03 00 00       	jmp    0x14003aa29
14003a728:	48 8b 01             	mov    (%rcx),%rax
14003a72b:	b9 ff 07 00 00       	mov    $0x7ff,%ecx
14003a730:	48 c1 e8 34          	shr    $0x34,%rax
14003a734:	48 23 c1             	and    %rcx,%rax