1403350a4:	48 c1 f8 02          	sar    $0x2,%rax
1403350a8:	48 85 c0             	test   %rax,%rax
1403350ab:	0f 84 94 01 00 00    	je     0x140335245
1403350b1:	4c 89 45 b0          	mov    %r8,-0x50(%rbp)
1403350b5:	33 c9                	xor    %ecx,%ecx
1403350b7:	4c 8d 55 a0          	lea    -0x60(%rbp),%r10
1403350bb:	33 d2                	xor    %edx,%edx
1403350bd:	45 33 db             	xor    %r11d,%r11d
1403350c0:	4d 8b 34 24          	mov    (%r12),%r14
1403350c4:	4d 8b 4c 24 08       	mov    0x8(%r12),%r9
1403350c9:	4d 2b ce             	sub    %r14,%r9
1403350cc:	49 c1 f9 02          	sar    $0x2,%r9
1403350d0:	49 3b c9             	cmp    %r9,%rcx
1403350d3:	0f 83 6c 01 00 00    	jae    0x140335245
1403350d9:	41 3b 14 8e          	cmp    (%r14,%rcx,4),%edx
1403350dd:	72 1f                	jb     0x1403350fe
1403350df:	48 8d 41 01          	lea    0x1(%rcx),%rax
1403350e3:	49 3b c1             	cmp    %r9,%rax
1403350e6:	0f 83 59 01 00 00    	jae    0x140335245
1403350ec:	41 3b 54 8e 04       	cmp    0x4(%r14,%rcx,4),%edx
1403350f1:	77 0b                	ja     0x1403350fe
1403350f3:	49 8b 02             	mov    (%r10),%rax
1403350f6:	41 c7 04 03 01 00 00 	movl   $0x1,(%r11,%rax,1)
1403350fd:	00
1403350fe:	ff c2                	inc    %edx
140335100:	49 83 c3 04          	add    $0x4,%r11
140335104:	81 fa 00 01 00 00    	cmp    $0x100,%edx
14033510a:	72 b4                	jb     0x1403350c0
14033510c:	49 83 c2 08          	add    $0x8,%r10
140335110:	48 83 c1 02          	add    $0x2,%rcx
140335114:	48 83 f9 06          	cmp    $0x6,%rcx
140335118:	7c a1                	jl     0x1403350bb
14033511a:	45 33 f6             	xor    %r14d,%r14d
14033511d:	45 33 d2             	xor    %r10d,%r10d
140335120:	48 85 f6             	test   %rsi,%rsi
140335123:	74 57                	je     0x14033517c
140335125:	49 8b 45 00          	mov    0x0(%r13),%rax
140335129:	44 8b 48 10          	mov    0x10(%rax),%r9d
14033512d:	4d 0f af ca          	imul   %r10,%r9
140335131:	4c 03 48 18          	add    0x18(%rax),%r9
140335135:	4d 85 ff             	test   %r15,%r15
140335138:	74 3a                	je     0x140335174
14033513a:	4d 8b df             	mov    %r15,%r11
14033513d:	48 8b 75 50          	mov    0x50(%rbp),%rsi
140335141:	41 0f b6 41 02       	movzbl 0x2(%r9),%eax
140335146:	41 0f b6 49 01       	movzbl 0x1(%r9),%ecx
14033514b:	41 8b 14 80          	mov    (%r8,%rax,4),%edx
14033514f:	03 14 8b             	add    (%rbx,%rcx,4),%edx
140335152:	41 0f b6 01          	movzbl (%r9),%eax
140335156:	03 14 87             	add    (%rdi,%rax,4),%edx
140335159:	4d 8d 49 03          	lea    0x3(%r9),%r9
14033515d:	83 fa 03             	cmp    $0x3,%edx
140335160:	0f 94 c1             	sete   %cl
140335163:	41 88 0c 36          	mov    %cl,(%r14,%rsi,1)
140335167:	41 ff c6             	inc    %r14d
14033516a:	49 83 eb 01          	sub    $0x1,%r11
14033516e:	75 d1                	jne    0x140335141
140335170:	48 8b 75 40          	mov    0x40(%rbp),%rsi
140335174:	49 ff c2             	inc    %r10
140335177:	4c 3b d6             	cmp    %rsi,%r10
14033517a:	72 a9                	jb     0x140335125
14033517c:	be 00 10 00 00       	mov    $0x1000,%esi
140335181:	4d 85 c0             	test   %r8,%r8
140335184:	74 32                	je     0x1403351b8
140335186:	48 8b 45 c8          	mov    -0x38(%rbp),%rax
14033518a:	49 2b c0             	sub    %r8,%rax
14033518d:	48 83 e0 fc          	and    $0xfffffffffffffffc,%rax
140335191:	49 8b c8             	mov    %r8,%rcx
140335194:	48 3b c6             	cmp    %rsi,%rax
140335197:	72 15                	jb     0x1403351ae
140335199:	4d 8b 40 f8          	mov    -0x8(%r8),%r8
14033519d:	49 2b c8             	sub    %r8,%rcx
1403351a0:	48 8d 41 f8          	lea    -0x8(%rcx),%rax
1403351a4:	48 83 f8 1f          	cmp    $0x1f,%rax
1403351a8:	0f 87 97 00 00 00    	ja     0x140335245
1403351ae:	49 8b c8             	mov    %r8,%rcx
1403351b1:	ff 15 09 77 7d 00    	call   *0x7d7709(%rip)        # 0x140b0c8c0
1403351b7:	90                   	nop
1403351b8:	48 85 db             	test   %rbx,%rbx
1403351bb:	74 2e                	je     0x1403351eb
1403351bd:	48 8b 45 e0          	mov    -0x20(%rbp),%rax
1403351c1:	48 2b c3             	sub    %rbx,%rax
1403351c4:	48 83 e0 fc          	and    $0xfffffffffffffffc,%rax
1403351c8:	48 8b cb             	mov    %rbx,%rcx
1403351cb:	48 3b c6             	cmp    %rsi,%rax
1403351ce:	72 11                	jb     0x1403351e1
1403351d0:	48 8b 5b f8          	mov    -0x8(%rbx),%rbx
1403351d4:	48 2b cb             	sub    %rbx,%rcx
1403351d7:	48 8d 41 f8          	lea    -0x8(%rcx),%rax
1403351db:	48 83 f8 1f          	cmp    $0x1f,%rax
1403351df:	77 6b                	ja     0x14033524c
1403351e1:	48 8b cb             	mov    %rbx,%rcx
1403351e4:	ff 15 d6 76 7d 00    	call   *0x7d76d6(%rip)        # 0x140b0c8c0
1403351ea:	90                   	nop
1403351eb:	48 85 ff             	test   %rdi,%rdi
1403351ee:	74 34                	je     0x140335224
1403351f0:	48 8b cf             	mov    %rdi,%rcx
1403351f3:	48 8b 45 f8          	mov    -0x8(%rbp),%rax
1403351f7:	48 2b c7             	sub    %rdi,%rax
1403351fa:	48 83 e0 fc          	and    $0xfffffffffffffffc,%rax
1403351fe:	48 3b c6             	cmp    %rsi,%rax
140335201:	72 18                	jb     0x14033521b
140335203:	48 8b 7f f8          	mov    -0x8(%rdi),%rdi
140335207:	48 2b cf             	sub    %rdi,%rcx
14033520a:	48 8d 41 f8          	lea    -0x8(%rcx),%rax
14033520e:	48 83 f8 1f          	cmp    $0x1f,%rax
140335212:	76 07                	jbe    0x14033521b
140335214:	ff 15 7e 77 7d 00    	call   *0x7d777e(%rip)        # 0x140b0c998
14033521a:	cc                   	int3
14033521b:	48 8b cf             	mov    %rdi,%rcx
14033521e:	ff 15 9c 76 7d 00    	call   *0x7d769c(%rip)        # 0x140b0c8c0
140335224:	4c 8d 9c 24 80 00 00 	lea    0x80(%rsp),%r11
14033522b:	00
14033522c:	49 8b 5b 30          	mov    0x30(%r11),%rbx
140335230:	49 8b 73 38          	mov    0x38(%r11),%rsi
140335234:	49 8b 7b 48          	mov    0x48(%r11),%rdi
140335238:	49 8b e3             	mov    %r11,%rsp
14033523b:	41 5f                	pop    %r15
14033523d:	41 5e                	pop    %r14
14033523f:	41 5d                	pop    %r13
140335241:	41 5c                	pop    %r12
140335243:	5d                   	pop    %rbp
140335244:	c3                   	ret
140335245:	ff 15 4d 77 7d 00    	call   *0x7d774d(%rip)        # 0x140b0c998
14033524b:	90                   	nop
14033524c:	ff 15 46 77 7d 00    	call   *0x7d7746(%rip)        # 0x140b0c998
140335252:	cc                   	int3
140335253:	90                   	nop
140335254:	48 89 5c 24 20       	mov    %rbx,0x20(%rsp)
140335259:	55                   	push   %rbp
14033525a:	56                   	push   %rsi
14033525b:	57                   	push   %rdi
14033525c:	41 54                	push   %r12
14033525e:	41 55                	push   %r13
140335260:	41 56                	push   %r14
140335262:	41 57                	push   %r15
140335264:	48 81 ec c0 00 00 00 	sub    $0xc0,%rsp
14033526b:	48 8b 05 ce 9d 98 00 	mov    0x989dce(%rip),%rax        # 0x140cbf040
140335272:	48 33 c4             	xor    %rsp,%rax
140335275:	48 89 84 24 b0 00 00 	mov    %rax,0xb0(%rsp)
14033527c:	00
14033527d:	49 8b d9             	mov    %r9,%rbx
140335280:	49 8b f8             	mov    %r8,%rdi
140335283:	48 8b f2             	mov    %rdx,%rsi
140335286:	4c 8b f1             	mov    %rcx,%r14
140335289:	48 89 4c 24 50       	mov    %rcx,0x50(%rsp)
14033528e:	48 8b 8c 24 20 01 00 	mov    0x120(%rsp),%rcx
140335295:	00
140335296:	48 8b 84 24 28 01 00 	mov    0x128(%rsp),%rax
14033529d:	00
14033529e:	48 89 44 24 40       	mov    %rax,0x40(%rsp)
1403352a3:	48 8b 84 24 38 01 00 	mov    0x138(%rsp),%rax
1403352aa:	00
1403352ab:	48 89 44 24 38       	mov    %rax,0x38(%rsp)
1403352b0:	8b ac 24 40 01 00 00 	mov    0x140(%rsp),%ebp
1403352b7:	49 8b c0             	mov    %r8,%rax
1403352ba:	48 0f af c2          	imul   %rdx,%rax
1403352be:	48 3b e8             	cmp    %rax,%rbp
1403352c1:	0f 82 ea 01 00 00    	jb     0x1403354b1
1403352c7:	48 8b 09             	mov    (%rcx),%rcx
1403352ca:	48 8b 01             	mov    (%rcx),%rax
1403352cd:	48 8b 40 20          	mov    0x20(%rax),%rax
1403352d1:	ff 15 61 79 7d 00    	call   *0x7d7961(%rip)        # 0x140b0cc38
1403352d7:	4c 63 f8             	movslq %eax,%r15
1403352da:	45 33 e4             	xor    %r12d,%r12d
1403352dd:	41 b8 ff ff ff ff    	mov    $0xffffffff,%r8d
1403352e3:	49 3b f0             	cmp    %r8,%rsi
1403352e6:	0f 87 c2 04 00 00    	ja     0x1403357ae
1403352ec:	8b d6                	mov    %esi,%edx
1403352ee:	41 8b cf             	mov    %r15d,%ecx
1403352f1:	48 0f af d1          	imul   %rcx,%rdx
1403352f5:	49 3b d0             	cmp    %r8,%rdx
1403352f8:	0f 87 b0 04 00 00    	ja     0x1403357ae
1403352fe:	49 8b 46 30          	mov    0x30(%r14),%rax
140335302:	48 c1 e8 20          	shr    $0x20,%rax
140335306:	85 c0                	test   %eax,%eax
140335308:	74 08                	je     0x140335312
14033530a:	85 d2                	test   %edx,%edx
14033530c:	0f 85 9c 04 00 00    	jne    0x1403357ae
140335312:	8b ca                	mov    %edx,%ecx
140335314:	49 0f af 4e 30       	imul   0x30(%r14),%rcx
140335319:	48 8b c1             	mov    %rcx,%rax
14033531c:	48 c1 e8 20          	shr    $0x20,%rax
140335320:	85 c0                	test   %eax,%eax
140335322:	0f 85 86 04 00 00    	jne    0x1403357ae
140335328:	8b c9                	mov    %ecx,%ecx
14033532a:	48 83 c1 07          	add    $0x7,%rcx
14033532e:	49 3b c8             	cmp    %r8,%rcx
140335331:	0f 87 77 04 00 00    	ja     0x1403357ae
140335337:	8b c1                	mov    %ecx,%eax
140335339:	c1 e8 03             	shr    $0x3,%eax
14033533c:	f7 d9                	neg    %ecx
14033533e:	1b c9                	sbb    %ecx,%ecx
140335340:	23 c8                	and    %eax,%ecx
140335342:	48 8b c7             	mov    %rdi,%rax
140335345:	48 c1 e8 20          	shr    $0x20,%rax
140335349:	85 c0                	test   %eax,%eax
14033534b:	74 08                	je     0x140335355
14033534d:	85 c9                	test   %ecx,%ecx
14033534f:	0f 85 59 04 00 00    	jne    0x1403357ae
140335355:	48 0f af cf          	imul   %rdi,%rcx
140335359:	48 8b c1             	mov    %rcx,%rax
14033535c:	48 c1 e8 20          	shr    $0x20,%rax
140335360:	85 c0                	test   %eax,%eax
140335362:	0f 85 46 04 00 00    	jne    0x1403357ae
140335368:	41 3b 4e 28          	cmp    0x28(%r14),%ecx
14033536c:	0f 87 42 04 00 00    	ja     0x1403357b4
140335372:	4d 8b ef             	mov    %r15,%r13
140335375:	44 8d 48 08          	lea    0x8(%rax),%r9d
140335379:	49 3b d9             	cmp    %r9,%rbx
14033537c:	0f 84 f9 01 00 00    	je     0x14033557b
140335382:	48 83 fb 10          	cmp    $0x10,%rbx
140335386:	0f 84 50 01 00 00    	je     0x1403354dc
14033538c:	49 3b d8             	cmp    %r8,%rbx
14033538f:	0f 87 19 04 00 00    	ja     0x1403357ae
140335395:	85 db                	test   %ebx,%ebx
140335397:	0f 84 0b 04 00 00    	je     0x1403357a8
14033539d:	33 d2                	xor    %edx,%edx
14033539f:	41 8b c1             	mov    %r9d,%eax
1403353a2:	f7 f3                	div    %ebx
1403353a4:	89 44 24 34          	mov    %eax,0x34(%rsp)
1403353a8:	44 88 64 24 30       	mov    %r12b,0x30(%rsp)
1403353ad:	45 33 db             	xor    %r11d,%r11d
1403353b0:	48 85 ff             	test   %rdi,%rdi
1403353b3:	0f 84 f8 00 00 00    	je     0x1403354b1
1403353b9:	44 2a cb             	sub    %bl,%r9b
1403353bc:	33 ed                	xor    %ebp,%ebp
1403353be:	48 85 f6             	test   %rsi,%rsi
1403353c1:	0f 84 de 00 00 00    	je     0x1403354a5
1403353c7:	45 33 d2             	xor    %r10d,%r10d
1403353ca:	48 8b 4c 24 38       	mov    0x38(%rsp),%rcx
1403353cf:	b2 01                	mov    $0x1,%dl
1403353d1:	88 54 24 31          	mov    %dl,0x31(%rsp)
1403353d5:	45 33 ff             	xor    %r15d,%r15d
1403353d8:	4d 85 ed             	test   %r13,%r13
1403353db:	0f 8e b1 00 00 00    	jle    0x140335492
1403353e1:	45 33 c0             	xor    %r8d,%r8d
1403353e4:	4d 85 d2             	test   %r10,%r10
1403353e7:	75 16                	jne    0x1403353ff
1403353e9:	41 8b 4e 20          	mov    0x20(%r14),%ecx
1403353ed:	49 8b 46 10          	mov    0x10(%r14),%rax
1403353f1:	8a 04 08             	mov    (%rax,%rcx,1),%al
1403353f4:	88 44 24 30          	mov    %al,0x30(%rsp)
1403353f8:	8d 41 01             	lea    0x1(%rcx),%eax
1403353fb:	41 89 46 20          	mov    %eax,0x20(%r14)
1403353ff:	49 8b d2             	mov    %r10,%rdx
140335402:	48 0f af d3          	imul   %rbx,%rdx
140335406:	b8 ff 00 00 00       	mov    $0xff,%eax
14033540b:	48 8b ca             	mov    %rdx,%rcx
14033540e:	d3 f8                	sar    %cl,%eax
140335410:	44 0f b6 f0          	movzbl %al,%r14d
140335414:	0f b6 44 24 30       	movzbl 0x30(%rsp),%eax
140335419:	44 23 f0             	and    %eax,%r14d
14033541c:	41 8a c9             	mov    %r9b,%cl
14033541f:	2a ca                	sub    %dl,%cl
140335421:	41 d3 ee             	shr    %cl,%r14d
140335424:	48 8b 44 24 40       	mov    0x40(%rsp),%rax
140335429:	48 8b 08             	mov    (%rax),%rcx
14033542c:	48 8b 50 08          	mov    0x8(%rax),%rdx
140335430:	48 2b d1             	sub    %rcx,%rdx
140335433:	48 c1 fa 02          	sar    $0x2,%rdx
140335437:	4c 3b c2             	cmp    %rdx,%r8
14033543a:	0f 83 34 01 00 00    	jae    0x140335574
140335440:	46 3b 34 81          	cmp    (%rcx,%r8,4),%r14d
140335444:	72 14                	jb     0x14033545a
140335446:	49 8d 40 01          	lea    0x1(%r8),%rax
14033544a:	48 3b c2             	cmp    %rdx,%rax
14033544d:	0f 83 21 01 00 00    	jae    0x140335574
140335453:	46 3b 74 81 04       	cmp    0x4(%rcx,%r8,4),%r14d
140335458:	76 08                	jbe    0x140335462
14033545a:	32 d2                	xor    %dl,%dl
14033545c:	88 54 24 31          	mov    %dl,0x31(%rsp)
140335460:	eb 04                	jmp    0x140335466
140335462:	8a 54 24 31          	mov    0x31(%rsp),%dl
140335466:	49 8d 4a 01          	lea    0x1(%r10),%rcx
14033546a:	49 ff c7             	inc    %r15
14033546d:	49 83 c0 02          	add    $0x2,%r8
140335471:	8b 44 24 34          	mov    0x34(%rsp),%eax
140335475:	45 33 d2             	xor    %r10d,%r10d
140335478:	48 3b c8             	cmp    %rax,%rcx
14033547b:	4c 0f 45 d1          	cmovne %rcx,%r10
14033547f:	4d 3b fd             	cmp    %r13,%r15
140335482:	4c 8b 74 24 50       	mov    0x50(%rsp),%r14
140335487:	0f 8c 57 ff ff ff    	jl     0x1403353e4
14033548d:	48 8b 4c 24 38       	mov    0x38(%rsp),%rcx
140335492:	41 88 14 0c          	mov    %dl,(%r12,%rcx,1)
140335496:	41 ff c4             	inc    %r12d
140335499:	48 ff c5             	inc    %rbp
14033549c:	48 3b ee             	cmp    %rsi,%rbp
14033549f:	0f 82 2a ff ff ff    	jb     0x1403353cf
1403354a5:	49 ff c3             	inc    %r11
1403354a8:	4c 3b df             	cmp    %rdi,%r11
1403354ab:	0f 82 0b ff ff ff    	jb     0x1403353bc
1403354b1:	48 8b 8c 24 b0 00 00 	mov    0xb0(%rsp),%rcx
1403354b8:	00
1403354b9:	48 33 cc             	xor    %rsp,%rcx
1403354bc:	e8 1f a1 7b 00       	call   0x140aef5e0
1403354c1:	48 8b 9c 24 18 01 00 	mov    0x118(%rsp),%rbx
1403354c8:	00
1403354c9:	48 81 c4 c0 00 00 00 	add    $0xc0,%rsp
1403354d0:	41 5f                	pop    %r15
1403354d2:	41 5e                	pop    %r14
1403354d4:	41 5d                	pop    %r13
1403354d6:	41 5c                	pop    %r12
1403354d8:	5f                   	pop    %rdi
1403354d9:	5e                   	pop    %rsi
1403354da:	5d                   	pop    %rbp
1403354db:	c3                   	ret
1403354dc:	45 33 c0             	xor    %r8d,%r8d
1403354df:	48 85 ff             	test   %rdi,%rdi
1403354e2:	74 cd                	je     0x1403354b1
1403354e4:	45 33 c9             	xor    %r9d,%r9d
1403354e7:	48 85 f6             	test   %rsi,%rsi
1403354ea:	74 77                	je     0x140335563
1403354ec:	48 8b 4c 24 38       	mov    0x38(%rsp),%rcx
1403354f1:	b3 01                	mov    $0x1,%bl
1403354f3:	45 33 d2             	xor    %r10d,%r10d
1403354f6:	45 85 ff             	test   %r15d,%r15d
1403354f9:	7e 59                	jle    0x140335554
1403354fb:	33 c9                	xor    %ecx,%ecx
1403354fd:	49 8b 46 18          	mov    0x18(%r14),%rax
140335501:	0f b7 28             	movzwl (%rax),%ebp
140335504:	48 83 c0 02          	add    $0x2,%rax
140335508:	49 89 46 18          	mov    %rax,0x18(%r14)
14033550c:	66 c1 cd 08          	ror    $0x8,%bp
140335510:	48 8b 44 24 40       	mov    0x40(%rsp),%rax
140335515:	4c 8b 18             	mov    (%rax),%r11
140335518:	48 8b 50 08          	mov    0x8(%rax),%rdx
14033551c:	49 2b d3             	sub    %r11,%rdx
14033551f:	48 c1 fa 02          	sar    $0x2,%rdx
140335523:	48 3b ca             	cmp    %rdx,%rcx
140335526:	73 4c                	jae    0x140335574
140335528:	0f b7 ed             	movzwl %bp,%ebp
14033552b:	41 3b 2c 8b          	cmp    (%r11,%rcx,4),%ebp
14033552f:	72 10                	jb     0x140335541
140335531:	48 8d 41 01          	lea    0x1(%rcx),%rax
140335535:	48 3b c2             	cmp    %rdx,%rax
140335538:	73 3a                	jae    0x140335574
14033553a:	41 3b 6c 8b 04       	cmp    0x4(%r11,%rcx,4),%ebp
14033553f:	76 02                	jbe    0x140335543
140335541:	32 db                	xor    %bl,%bl
140335543:	49 ff c2             	inc    %r10
140335546:	48 83 c1 02          	add    $0x2,%rcx
14033554a:	4d 3b d5             	cmp    %r13,%r10
14033554d:	7c ae                	jl     0x1403354fd
14033554f:	48 8b 4c 24 38       	mov    0x38(%rsp),%rcx
140335554:	41 88 1c 0c          	mov    %bl,(%r12,%rcx,1)
140335558:	41 ff c4             	inc    %r12d
14033555b:	49 ff c1             	inc    %r9
14033555e:	4c 3b ce             	cmp    %rsi,%r9