180095fec:	e8 8f fc 09 00       	call   0x180135c80
180095ff1:	45 33 c9             	xor    %r9d,%r9d
180095ff4:	b8 00 04 00 00       	mov    $0x400,%eax
180095ff9:	c7 05 1d a9 0d 00 04 	movl   $0x4,0xda91d(%rip)        # 0x180170920
180096000:	00 00 00
180096003:	66 89 05 1c a9 0d 00 	mov    %ax,0xda91c(%rip)        # 0x180170926
18009600a:	b9 ff 00 00 00       	mov    $0xff,%ecx
18009600f:	0f b7 c6             	movzwl %si,%eax
180096012:	66 2b f5             	sub    %bp,%si
180096015:	66 2b c5             	sub    %bp,%ax
180096018:	66 c1 e6 08          	shl    $0x8,%si
18009601c:	66 c1 f8 08          	sar    $0x8,%ax
180096020:	66 23 c1             	and    %cx,%ax
180096023:	66 0b c6             	or     %si,%ax
180096026:	66 89 05 fb a8 0d 00 	mov    %ax,0xda8fb(%rip)        # 0x180170928
18009602d:	41 8b c1             	mov    %r9d,%eax
180096030:	66 89 05 ed a8 0d 00 	mov    %ax,0xda8ed(%rip)        # 0x180170924
180096037:	66 83 f8 0c          	cmp    $0xc,%ax
18009603b:	e9 09 fe ff ff       	jmp    0x180095e49
180096040:	3d 01 00 00 c0       	cmp    $0xc0000001,%eax
180096045:	0f 85 f1 fe ff ff    	jne    0x180095f3c
18009604b:	85 f6                	test   %esi,%esi
18009604d:	0f 85 e9 fe ff ff    	jne    0x180095f3c
180096053:	0f b7 05 ca a8 0d 00 	movzwl 0xda8ca(%rip),%eax        # 0x180170924
18009605a:	66 ff c0             	inc    %ax
18009605d:	eb d1                	jmp    0x180096030
18009605f:	8b 8c 24 80 00 00 00 	mov    0x80(%rsp),%ecx
180096066:	48 8d 15 b9 a8 0d 00 	lea    0xda8b9(%rip),%rdx        # 0x180170926
18009606d:	41 b8 05 00 00 00    	mov    $0x5,%r8d
180096073:	c7 05 a9 a8 0d 00 00 	movl   $0x500,0xda8a9(%rip)        # 0x180170926
18009607a:	05 00 00
18009607d:	44 89 05 9c a8 0d 00 	mov    %r8d,0xda89c(%rip)        # 0x180170920
180096084:	bb 01 00 00 c0       	mov    $0xc0000001,%ebx
180096089:	44 88 0d 9a a8 0d 00 	mov    %r9b,0xda89a(%rip)        # 0x18017092a
180096090:	e8 fb 0b f9 ff       	call   0x180026c90
180096095:	b8 64 00 00 00       	mov    $0x64,%eax
18009609a:	45 84 e4             	test   %r12b,%r12b
18009609d:	74 09                	je     0x1800960a8
18009609f:	33 d2                	xor    %edx,%edx
1800960a1:	8b c8                	mov    %eax,%ecx
1800960a3:	e8 4c d3 ff ff       	call   0x1800933f4
1800960a8:	8b c3                	mov    %ebx,%eax
1800960aa:	48 8b 9c 24 90 00 00 	mov    0x90(%rsp),%rbx
1800960b1:	00
1800960b2:	48 83 c4 40          	add    $0x40,%rsp
1800960b6:	41 5f                	pop    %r15
1800960b8:	41 5e                	pop    %r14
1800960ba:	41 5d                	pop    %r13
1800960bc:	41 5c                	pop    %r12
1800960be:	5f                   	pop    %rdi
1800960bf:	5e                   	pop    %rsi
1800960c0:	5d                   	pop    %rbp
1800960c1:	c3                   	ret
1800960c2:	cc                   	int3
1800960c3:	41 8b d9             	mov    %r9d,%ebx
1800960c6:	eb cd                	jmp    0x180096095
1800960c8:	bb 0d 00 00 c0       	mov    $0xc000000d,%ebx
1800960cd:	eb cb                	jmp    0x18009609a
1800960cf:	cc                   	int3
1800960d0:	48 8b c4             	mov    %rsp,%rax
1800960d3:	44 89 48 20          	mov    %r9d,0x20(%rax)
1800960d7:	4c 89 40 18          	mov    %r8,0x18(%rax)
1800960db:	48 89 50 10          	mov    %rdx,0x10(%rax)
1800960df:	89 48 08             	mov    %ecx,0x8(%rax)
1800960e2:	53                   	push   %rbx
1800960e3:	55                   	push   %rbp
1800960e4:	56                   	push   %rsi
1800960e5:	57                   	push   %rdi
1800960e6:	41 54                	push   %r12
1800960e8:	41 55                	push   %r13
1800960ea:	41 56                	push   %r14
1800960ec:	41 57                	push   %r15
1800960ee:	48 83 ec 78          	sub    $0x78,%rsp
1800960f2:	45 33 db             	xor    %r11d,%r11d
1800960f5:	0f 29 70 a8          	movaps %xmm6,-0x58(%rax)
1800960f9:	44 38 1d 6c f3 0f 00 	cmp    %r11b,0xff36c(%rip)        # 0x18019546c
180096100:	44 8b d1             	mov    %ecx,%r10d
180096103:	41 8a c3             	mov    %r11b,%al
180096106:	44 89 5c 24 40       	mov    %r11d,0x40(%rsp)
18009610b:	49 8b f8             	mov    %r8,%rdi
18009610e:	89 44 24 48          	mov    %eax,0x48(%rsp)
180096112:	41 8d 4b 01          	lea    0x1(%r11),%ecx
180096116:	44 88 5c 24 30       	mov    %r11b,0x30(%rsp)
18009611b:	40 8a e9             	mov    %cl,%bpl
18009611e:	4c 8b ea             	mov    %rdx,%r13
180096121:	74 04                	je     0x180096127
180096123:	8a c1                	mov    %cl,%al
180096125:	eb 10                	jmp    0x180096137
180096127:	e8 f8 b4 02 00       	call   0x1800c1624
18009612c:	88 05 3a f3 0f 00    	mov    %al,0xff33a(%rip)        # 0x18019546c
180096132:	b9 01 00 00 00       	mov    $0x1,%ecx
180096137:	f6 d8                	neg    %al
180096139:	66 44 89 5c 24 34    	mov    %r11w,0x34(%rsp)
18009613f:	b8 dc 05 00 00       	mov    $0x5dc,%eax
180096144:	44 88 5c 24 31       	mov    %r11b,0x31(%rsp)
180096149:	45 1a ff             	sbb    %r15b,%r15b
18009614c:	89 44 24 44          	mov    %eax,0x44(%rsp)
180096150:	41 80 e7 c4          	and    $0xc4,%r15b
180096154:	c7 44 24 38 e0 2e 00 	movl   $0x2ee0,0x38(%rsp)
18009615b:	00
18009615c:	41 80 c7 40          	add    $0x40,%r15b
180096160:	44 89 5c 24 3c       	mov    %r11d,0x3c(%rsp)
180096165:	4c 89 5c 24 50       	mov    %r11,0x50(%rsp)
18009616a:	44 8b f0             	mov    %eax,%r14d
18009616d:	44 88 5c 24 32       	mov    %r11b,0x32(%rsp)
180096172:	4d 8b e3             	mov    %r11,%r12
180096175:	b3 04                	mov    $0x4,%bl
180096177:	b8 64 00 00 00       	mov    $0x64,%eax
18009617c:	4d 85 ed             	test   %r13,%r13
18009617f:	0f 84 5c 05 00 00    	je     0x1800966e1
180096185:	48 85 ff             	test   %rdi,%rdi
180096188:	0f 84 53 05 00 00    	je     0x1800966e1
18009618e:	41 0f b7 c3          	movzwl %r11w,%eax
180096192:	66 89 0d 93 a7 0e 00 	mov    %cx,0xea793(%rip)        # 0x18018092c
180096199:	41 0f b7 cb          	movzwl %r11w,%ecx
18009619d:	0f 57 c0             	xorps  %xmm0,%xmm0
1800961a0:	89 4c 24 4c          	mov    %ecx,0x4c(%rsp)
1800961a4:	c7 05 78 a7 0d 00 00 	movl   $0x400,0xda778(%rip)        # 0x180170926
1800961ab:	04 00 00
1800961ae:	c7 05 68 a7 0d 00 05 	movl   $0x5,0xda768(%rip)        # 0x180170920
1800961b5:	00 00 00
1800961b8:	88 1d 6c a7 0d 00    	mov    %bl,0xda76c(%rip)        # 0x18017092a
1800961be:	66 89 05 5f a7 0d 00 	mov    %ax,0xda75f(%rip)        # 0x180170924
1800961c5:	0f 11 05 64 a7 0f 00 	movups %xmm0,0xfa764(%rip)        # 0x180190930
1800961cc:	44 38 9c 24 e0 00 00 	cmp    %r11b,0xe0(%rsp)
1800961d3:	00
1800961d4:	74 18                	je     0x1800961ee
1800961d6:	33 d2                	xor    %edx,%edx
1800961d8:	33 c9                	xor    %ecx,%ecx
1800961da:	e8 15 d2 ff ff       	call   0x1800933f4
1800961df:	0f b7 05 3e a7 0d 00 	movzwl 0xda73e(%rip),%eax        # 0x180170924
1800961e6:	44 8b 94 24 c0 00 00 	mov    0xc0(%rsp),%r10d
1800961ed:	00
1800961ee:	be 01 00 00 c0       	mov    $0xc0000001,%esi
1800961f3:	66 83 f8 0c          	cmp    $0xc,%ax
1800961f7:	0f 83 ab 04 00 00    	jae    0x1800966a8
1800961fd:	f2 0f 10 35 2b 81 0c 	movsd  0xc812b(%rip),%xmm6        # 0x18015e330
180096204:	00
180096205:	44 8b 05 14 a7 0d 00 	mov    0xda714(%rip),%r8d        # 0x180170920
18009620c:	48 8d 15 13 a7 0d 00 	lea    0xda713(%rip),%rdx        # 0x180170926
180096213:	45 33 c9             	xor    %r9d,%r9d
180096216:	41 8b ca             	mov    %r10d,%ecx
180096219:	49 bd cf f7 53 e3 a5 	movabs $0x20c49ba5e353f7cf,%r13
180096220:	9b c4 20
180096223:	e8 68 0a f9 ff       	call   0x180026c90
180096228:	45 33 db             	xor    %r11d,%r11d
18009622b:	8b f0                	mov    %eax,%esi
18009622d:	85 c0                	test   %eax,%eax
18009622f:	0f 85 76 04 00 00    	jne    0x1800966ab
180096235:	0f 31                	rdtsc
180096237:	48 c1 e2 20          	shl    $0x20,%rdx
18009623b:	48 0b c2             	or     %rdx,%rax
18009623e:	48 8b c8             	mov    %rax,%rcx
180096241:	49 8b c5             	mov    %r13,%rax
180096244:	48 f7 2d 35 d5 10 00 	imulq  0x10d535(%rip)        # 0x1801a3780
18009624b:	48 8b c1             	mov    %rcx,%rax
18009624e:	4c 8b ca             	mov    %rdx,%r9
180096251:	48 99                	cqto
180096253:	49 c1 f9 07          	sar    $0x7,%r9
180096257:	4d 8b c1             	mov    %r9,%r8
18009625a:	49 c1 e8 3f          	shr    $0x3f,%r8
18009625e:	4d 03 c8             	add    %r8,%r9
180096261:	49 f7 f9             	idiv   %r9
180096264:	48 89 44 24 58       	mov    %rax,0x58(%rsp)
180096269:	4c 3b e7             	cmp    %rdi,%r12
18009626c:	0f 84 6a 04 00 00    	je     0x1800966dc
180096272:	0f b6 fb             	movzbl %bl,%edi
180096275:	45 8b eb             	mov    %r11d,%r13d
180096278:	45 8b e3             	mov    %r11d,%r12d
18009627b:	84 db                	test   %bl,%bl
18009627d:	0f 84 6d 01 00 00    	je     0x1800963f0
180096283:	44 39 5c 24 40       	cmp    %r11d,0x40(%rsp)
180096288:	48 8d 44 24 34       	lea    0x34(%rsp),%rax
18009628d:	8b 8c 24 c0 00 00 00 	mov    0xc0(%rsp),%ecx
180096294:	48 8d 15 8d a6 0e 00 	lea    0xea68d(%rip),%rdx        # 0x180180928
18009629b:	41 b9 dc 05 00 00    	mov    $0x5dc,%r9d
1800962a1:	48 89 44 24 28       	mov    %rax,0x28(%rsp)
1800962a6:	45 0f 44 ce          	cmove  %r14d,%r9d
1800962aa:	c7 44 24 20 01 00 00 	movl   $0x1,0x20(%rsp)
1800962b1:	00
1800962b2:	44 8b c7             	mov    %edi,%r8d
1800962b5:	e8 92 05 00 00       	call   0x18009684c
1800962ba:	45 33 db             	xor    %r11d,%r11d
1800962bd:	8b f0                	mov    %eax,%esi
1800962bf:	85 c0                	test   %eax,%eax
1800962c1:	0f 85 29 01 00 00    	jne    0x1800963f0
1800962c7:	44 0f b7 4c 24 34    	movzwl 0x34(%rsp),%r9d
1800962cd:	4c 8d 15 5c a6 0f 00 	lea    0xfa65c(%rip),%r10        # 0x180190930
1800962d4:	47 39 1c 8a          	cmp    %r11d,(%r10,%r9,4)
1800962d8:	0f 85 09 01 00 00    	jne    0x1800963e7
1800962de:	45 85 ed             	test   %r13d,%r13d
1800962e1:	0f 85 95 00 00 00    	jne    0x18009637c
1800962e7:	44 39 5c 24 40       	cmp    %r11d,0x40(%rsp)
1800962ec:	0f 85 8a 00 00 00    	jne    0x18009637c
1800962f2:	0f 31                	rdtsc
1800962f4:	48 c1 e2 20          	shl    $0x20,%rdx
1800962f8:	48 0b c2             	or     %rdx,%rax
1800962fb:	48 8b c8             	mov    %rax,%rcx
1800962fe:	48 b8 cf f7 53 e3 a5 	movabs $0x20c49ba5e353f7cf,%rax
180096305:	9b c4 20
180096308:	48 f7 2d 71 d4 10 00 	imulq  0x10d471(%rip)        # 0x1801a3780
18009630f:	4c 8b c2             	mov    %rdx,%r8
180096312:	49 c1 f8 07          	sar    $0x7,%r8
180096316:	49 8b c0             	mov    %r8,%rax
180096319:	48 c1 e8 3f          	shr    $0x3f,%rax
18009631d:	4c 03 c0             	add    %rax,%r8
180096320:	48 8b c1             	mov    %rcx,%rax
180096323:	48 99                	cqto
180096325:	8d 4e 37             	lea    0x37(%rsi),%ecx
180096328:	49 f7 f8             	idiv   %r8
18009632b:	44 8b 44 24 38       	mov    0x38(%rsp),%r8d
180096330:	2b 44 24 58          	sub    0x58(%rsp),%eax
180096334:	85 c0                	test   %eax,%eax
180096336:	0f 4e c1             	cmovle %ecx,%eax
180096339:	41 8b c8             	mov    %r8d,%ecx
18009633c:	89 44 24 44          	mov    %eax,0x44(%rsp)
180096340:	c1 e9 03             	shr    $0x3,%ecx
180096343:	2b c1                	sub    %ecx,%eax
180096345:	44 03 c0             	add    %eax,%r8d
180096348:	99                   	cltd
180096349:	33 c2                	xor    %edx,%eax
18009634b:	44 89 44 24 38       	mov    %r8d,0x38(%rsp)
180096350:	2b c2                	sub    %edx,%eax
180096352:	45 8b f0             	mov    %r8d,%r14d
180096355:	8b 54 24 3c          	mov    0x3c(%rsp),%edx
180096359:	8b ca                	mov    %edx,%ecx
18009635b:	41 c1 ee 02          	shr    $0x2,%r14d
18009635f:	c1 e9 02             	shr    $0x2,%ecx
180096362:	2b c1                	sub    %ecx,%eax
180096364:	03 d0                	add    %eax,%edx
180096366:	b8 dc 05 00 00       	mov    $0x5dc,%eax
18009636b:	44 03 f2             	add    %edx,%r14d
18009636e:	89 54 24 3c          	mov    %edx,0x3c(%rsp)
180096372:	41 d1 ee             	shr    $1,%r14d
180096375:	44 3b f0             	cmp    %eax,%r14d
180096378:	44 0f 47 f0          	cmova  %eax,%r14d
18009637c:	8b 0d a6 a5 0e 00    	mov    0xea5a6(%rip),%ecx        # 0x180180928
180096382:	41 ff c5             	inc    %r13d
180096385:	83 c1 fc             	add    $0xfffffffc,%ecx
180096388:	44 03 e1             	add    %ecx,%r12d
18009638b:	43 89 0c 8a          	mov    %ecx,(%r10,%r9,4)
18009638f:	85 c9                	test   %ecx,%ecx
180096391:	74 42                	je     0x1800963d5
180096393:	0f b7 44 24 34       	movzwl 0x34(%rsp),%eax
180096398:	0f af 84 24 d8 00 00 	imul   0xd8(%rsp),%eax
18009639f:	00
1800963a0:	44 8b c1             	mov    %ecx,%r8d
1800963a3:	8b d0                	mov    %eax,%edx
1800963a5:	48 03 c1             	add    %rcx,%rax
1800963a8:	48 03 44 24 50       	add    0x50(%rsp),%rax
1800963ad:	48 3b 84 24 d0 00 00 	cmp    0xd0(%rsp),%rax
1800963b4:	00
1800963b5:	0f 87 b3 02 00 00    	ja     0x18009666e
1800963bb:	48 8b 8c 24 c8 00 00 	mov    0xc8(%rsp),%rcx
1800963c2:	00
1800963c3:	48 03 ca             	add    %rdx,%rcx
1800963c6:	48 8d 15 65 a5 0e 00 	lea    0xea565(%rip),%rdx        # 0x180180932
1800963cd:	e8 ee f5 09 00       	call   0x1801359c0
1800963d2:	45 33 db             	xor    %r11d,%r11d
1800963d5:	41 8b c4             	mov    %r12d,%eax
1800963d8:	48 03 44 24 50       	add    0x50(%rsp),%rax
1800963dd:	48 3b 84 24 d0 00 00 	cmp    0xd0(%rsp),%rax
1800963e4:	00
1800963e5:	74 09                	je     0x1800963f0
1800963e7:	44 3b ef             	cmp    %edi,%r13d
1800963ea:	0f 82 93 fe ff ff    	jb     0x180096283
1800963f0:	0f b6 cb             	movzbl %bl,%ecx
1800963f3:	45 8b cb             	mov    %r11d,%r9d
1800963f6:	45 0f b7 c3          	movzwl %r11w,%r8d
1800963fa:	66 44 3b d9          	cmp    %cx,%r11w
1800963fe:	73 27                	jae    0x180096427
180096400:	bf 01 00 00 00       	mov    $0x1,%edi
180096405:	48 8d 15 24 a5 0f 00 	lea    0xfa524(%rip),%rdx        # 0x180190930
18009640c:	41 0f b7 c0          	movzwl %r8w,%eax
180096410:	44 39 1c 82          	cmp    %r11d,(%rdx,%rax,4)
180096414:	74 0e                	je     0x180096424
180096416:	44 03 0c 82          	add    (%rdx,%rax,4),%r9d
18009641a:	66 44 03 c7          	add    %di,%r8w
18009641e:	66 44 3b c1          	cmp    %cx,%r8w
180096422:	72 e8                	jb     0x18009640c
180096424:	0f b6 fb             	movzbl %bl,%edi
180096427:	66 44 3b c1          	cmp    %cx,%r8w
18009642b:	75 69                	jne    0x180096496
18009642d:	8a 54 24 30          	mov    0x30(%rsp),%dl
180096431:	41 bc 01 00 00 00    	mov    $0x1,%r12d
180096437:	41 02 d4             	add    %r12b,%dl
18009643a:	44 89 5c 24 40       	mov    %r11d,0x40(%rsp)
18009643f:	88 54 24 30          	mov    %dl,0x30(%rsp)
180096443:	40 3a dd             	cmp    %bpl,%bl
180096446:	76 1c                	jbe    0x180096464
180096448:	66 0f 6e c7          	movd   %edi,%xmm0
18009644c:	40 8a eb             	mov    %bl,%bpl
18009644f:	f3 0f e6 c0          	cvtdq2pd %xmm0,%xmm0
180096453:	44 88 5c 24 31       	mov    %r11b,0x31(%rsp)
180096458:	f2 0f 59 c6          	mulsd  %xmm6,%xmm0
18009645c:	f2 0f 2c c0          	cvttsd2si %xmm0,%eax
180096460:	89 44 24 48          	mov    %eax,0x48(%rsp)
180096464:	3a d3                	cmp    %bl,%dl
180096466:	0f 82 e6 00 00 00    	jb     0x180096552
18009646c:	44 38 5c 24 32       	cmp    %r11b,0x32(%rsp)
180096471:	74 09                	je     0x18009647c
180096473:	40 3a dd             	cmp    %bpl,%bl
180096476:	0f 84 d6 00 00 00    	je     0x180096552
18009647c:	41 02 dc             	add    %r12b,%bl
18009647f:	41 3a df             	cmp    %r15b,%bl
180096482:	76 08                	jbe    0x18009648c
180096484:	41 8a df             	mov    %r15b,%bl
180096487:	e9 c6 00 00 00       	jmp    0x180096552
18009648c:	44 88 5c 24 30       	mov    %r11b,0x30(%rsp)
180096491:	e9 bc 00 00 00       	jmp    0x180096552
180096496:	8b 44 24 44          	mov    0x44(%rsp),%eax
18009649a:	bf dc 05 00 00       	mov    $0x5dc,%edi
18009649f:	03 c0                	add    %eax,%eax
1800964a1:	3b c7                	cmp    %edi,%eax
1800964a3:	7d 43                	jge    0x1800964e8
1800964a5:	44 8b 54 24 38       	mov    0x38(%rsp),%r10d
1800964aa:	41 8b ca             	mov    %r10d,%ecx
1800964ad:	89 44 24 44          	mov    %eax,0x44(%rsp)
1800964b1:	c1 e9 03             	shr    $0x3,%ecx
1800964b4:	2b c1                	sub    %ecx,%eax
1800964b6:	44 03 d0             	add    %eax,%r10d
1800964b9:	99                   	cltd
1800964ba:	33 c2                	xor    %edx,%eax
1800964bc:	44 89 54 24 38       	mov    %r10d,0x38(%rsp)
1800964c1:	2b c2                	sub    %edx,%eax
1800964c3:	45 8b f2             	mov    %r10d,%r14d
1800964c6:	8b 54 24 3c          	mov    0x3c(%rsp),%edx
1800964ca:	8b ca                	mov    %edx,%ecx
1800964cc:	41 c1 ee 02          	shr    $0x2,%r14d
1800964d0:	c1 e9 02             	shr    $0x2,%ecx
1800964d3:	2b c1                	sub    %ecx,%eax
1800964d5:	03 d0                	add    %eax,%edx
1800964d7:	44 03 f2             	add    %edx,%r14d
1800964da:	89 54 24 3c          	mov    %edx,0x3c(%rsp)
1800964de:	41 d1 ee             	shr    $1,%r14d
1800964e1:	44 3b f7             	cmp    %edi,%r14d
1800964e4:	44 0f 47 f7          	cmova  %edi,%r14d
1800964e8:	44 8a 54 24 31       	mov    0x31(%rsp),%r10b
1800964ed:	41 bc 01 00 00 00    	mov    $0x1,%r12d
1800964f3:	8b 54 24 48          	mov    0x48(%rsp),%edx
1800964f7:	45 02 d4             	add    %r12b,%r10b
1800964fa:	0f b6 c2             	movzbl %dl,%eax
1800964fd:	40 0f b6 cd          	movzbl %bpl,%ecx
180096501:	2b c8                	sub    %eax,%ecx
180096503:	44 89 64 24 40       	mov    %r12d,0x40(%rsp)
180096508:	41 0f b6 c2          	movzbl %r10b,%eax
18009650c:	44 88 5c 24 30       	mov    %r11b,0x30(%rsp)
180096511:	44 88 54 24 31       	mov    %r10b,0x31(%rsp)
180096516:	3b c1                	cmp    %ecx,%eax
180096518:	7e 2a                	jle    0x180096544