140017fd9:	41 03 cf             	add    %r15d,%ecx
140017fdc:	41 3b c8             	cmp    %r8d,%ecx
140017fdf:	75 f3                	jne    0x140017fd4
140017fe1:	eb 03                	jmp    0x140017fe6
140017fe3:	45 33 f6             	xor    %r14d,%r14d
140017fe6:	44 89 75 a0          	mov    %r14d,-0x60(%rbp)
140017fea:	45 8b e7             	mov    %r15d,%r12d
140017fed:	44 89 bd 70 01 00 00 	mov    %r15d,0x170(%rbp)
140017ff4:	c7 85 74 01 00 00 04 	movl   $0x4,0x174(%rbp)
140017ffb:	00 00 00
140017ffe:	e9 1f 03 00 00       	jmp    0x140018322
140018003:	83 64 24 40 00       	andl   $0x0,0x40(%rsp)
140018008:	45 8d 9c 24 cd fb ff 	lea    -0x433(%r12),%r11d
14001800f:	ff
140018010:	45 8b c3             	mov    %r11d,%r8d
140018013:	8d 42 ff             	lea    -0x1(%rdx),%eax
140018016:	41 83 e3 1f          	and    $0x1f,%r11d
14001801a:	41 c1 e8 05          	shr    $0x5,%r8d
14001801e:	8b f7                	mov    %edi,%esi
140018020:	49 8b df             	mov    %r15,%rbx
140018023:	41 2b f3             	sub    %r11d,%esi
140018026:	8b ce                	mov    %esi,%ecx
140018028:	48 d3 e3             	shl    %cl,%rbx
14001802b:	41 2b df             	sub    %r15d,%ebx
14001802e:	0f bd 44 85 a4       	bsr    -0x5c(%rbp,%rax,4),%eax
140018033:	44 8b e3             	mov    %ebx,%r12d
140018036:	41 f7 d4             	not    %r12d
140018039:	74 04                	je     0x14001803f
14001803b:	ff c0                	inc    %eax
14001803d:	eb 02                	jmp    0x140018041
14001803f:	33 c0                	xor    %eax,%eax
140018041:	2b f8                	sub    %eax,%edi
140018043:	42 8d 04 02          	lea    (%rdx,%r8,1),%eax
140018047:	83 f8 73             	cmp    $0x73,%eax
14001804a:	0f 87 81 00 00 00    	ja     0x1400180d1
140018050:	45 33 f6             	xor    %r14d,%r14d
140018053:	44 3b df             	cmp    %edi,%r11d
140018056:	41 0f 97 c6          	seta   %r14b
14001805a:	44 03 f2             	add    %edx,%r14d
14001805d:	45 03 f0             	add    %r8d,%r14d
140018060:	41 83 fe 73          	cmp    $0x73,%r14d
140018064:	77 6b                	ja     0x1400180d1
140018066:	41 8d 78 ff          	lea    -0x1(%r8),%edi
14001806a:	45 8d 56 ff          	lea    -0x1(%r14),%r10d
14001806e:	44 3b d7             	cmp    %edi,%r10d
140018071:	74 48                	je     0x1400180bb
140018073:	41 8b c2             	mov    %r10d,%eax
140018076:	41 2b c0             	sub    %r8d,%eax
140018079:	8d 48 ff             	lea    -0x1(%rax),%ecx
14001807c:	3b c2                	cmp    %edx,%eax
14001807e:	73 07                	jae    0x140018087
140018080:	44 8b 4c 85 a4       	mov    -0x5c(%rbp,%rax,4),%r9d
140018085:	eb 03                	jmp    0x14001808a
140018087:	45 33 c9             	xor    %r9d,%r9d
14001808a:	3b ca                	cmp    %edx,%ecx
14001808c:	73 06                	jae    0x140018094
14001808e:	8b 54 8d a4          	mov    -0x5c(%rbp,%rcx,4),%edx
140018092:	eb 02                	jmp    0x140018096
140018094:	33 d2                	xor    %edx,%edx
140018096:	41 23 d4             	and    %r12d,%edx
140018099:	8b ce                	mov    %esi,%ecx
14001809b:	d3 ea                	shr    %cl,%edx
14001809d:	44 23 cb             	and    %ebx,%r9d
1400180a0:	41 8b cb             	mov    %r11d,%ecx
1400180a3:	41 d3 e1             	shl    %cl,%r9d
1400180a6:	41 0b d1             	or     %r9d,%edx
1400180a9:	42 89 54 95 a4       	mov    %edx,-0x5c(%rbp,%r10,4)
1400180ae:	41 ff ca             	dec    %r10d
1400180b1:	44 3b d7             	cmp    %edi,%r10d
1400180b4:	74 05                	je     0x1400180bb
1400180b6:	8b 55 a0             	mov    -0x60(%rbp),%edx
1400180b9:	eb b8                	jmp    0x140018073
1400180bb:	33 c9                	xor    %ecx,%ecx
1400180bd:	45 85 c0             	test   %r8d,%r8d
1400180c0:	74 12                	je     0x1400180d4
1400180c2:	83 64 8d a4 00       	andl   $0x0,-0x5c(%rbp,%rcx,4)
1400180c7:	41 03 cf             	add    %r15d,%ecx
1400180ca:	41 3b c8             	cmp    %r8d,%ecx
1400180cd:	75 f3                	jne    0x1400180c2
1400180cf:	eb 03                	jmp    0x1400180d4
1400180d1:	45 33 f6             	xor    %r14d,%r14d
1400180d4:	44 89 75 a0          	mov    %r14d,-0x60(%rbp)
1400180d8:	45 8b e7             	mov    %r15d,%r12d
1400180db:	44 89 bd 70 01 00 00 	mov    %r15d,0x170(%rbp)
1400180e2:	c7 85 74 01 00 00 02 	movl   $0x2,0x174(%rbp)
1400180e9:	00 00 00
1400180ec:	e9 31 02 00 00       	jmp    0x140018322
1400180f1:	41 83 fc 36          	cmp    $0x36,%r12d
1400180f5:	0f 84 44 01 00 00    	je     0x14001823f
1400180fb:	33 c0                	xor    %eax,%eax
1400180fd:	c7 85 48 03 00 00 00 	movl   $0x100000,0x348(%rbp)
140018104:	00 10 00
140018107:	89 85 44 03 00 00    	mov    %eax,0x344(%rbp)
14001810d:	89 b5 40 03 00 00    	mov    %esi,0x340(%rbp)
140018113:	85 db                	test   %ebx,%ebx
140018115:	0f 84 24 01 00 00    	je     0x14001823f
14001811b:	45 33 c0             	xor    %r8d,%r8d
14001811e:	42 8b 44 85 a4       	mov    -0x5c(%rbp,%r8,4),%eax
140018123:	42 39 84 85 44 03 00 	cmp    %eax,0x344(%rbp,%r8,4)
14001812a:	00
14001812b:	0f 85 0e 01 00 00    	jne    0x14001823f
140018131:	45 03 c7             	add    %r15d,%r8d
140018134:	44 3b c6             	cmp    %esi,%r8d
140018137:	75 e5                	jne    0x14001811e
140018139:	83 64 24 40 00       	andl   $0x0,0x40(%rsp)
14001813e:	0f bd c3             	bsr    %ebx,%eax
140018141:	74 04                	je     0x140018147
140018143:	ff c0                	inc    %eax
140018145:	eb 02                	jmp    0x140018149
140018147:	33 c0                	xor    %eax,%eax
140018149:	45 33 f6             	xor    %r14d,%r14d
14001814c:	2b f8                	sub    %eax,%edi
14001814e:	3b fe                	cmp    %esi,%edi
140018150:	41 0f 92 c6          	setb   %r14b
140018154:	41 83 cb ff          	or     $0xffffffff,%r11d
140018158:	44 03 f2             	add    %edx,%r14d
14001815b:	41 83 fe 73          	cmp    $0x73,%r14d
14001815f:	0f 86 87 00 00 00    	jbe    0x1400181ec
140018165:	45 33 f6             	xor    %r14d,%r14d
140018168:	be 36 04 00 00       	mov    $0x436,%esi
14001816d:	44 89 75 a0          	mov    %r14d,-0x60(%rbp)
140018171:	41 2b f4             	sub    %r12d,%esi
140018174:	48 8d 8d 44 03 00 00 	lea    0x344(%rbp),%rcx
14001817b:	8b fe                	mov    %esi,%edi
14001817d:	33 d2                	xor    %edx,%edx
14001817f:	c1 ef 05             	shr    $0x5,%edi
140018182:	48 8d 1c bd 00 00 00 	lea    0x0(,%rdi,4),%rbx
140018189:	00
14001818a:	4c 8b c3             	mov    %rbx,%r8
14001818d:	e8 ce 51 00 00       	call   0x14001d360
140018192:	83 e6 1f             	and    $0x1f,%esi
140018195:	41 8b c7             	mov    %r15d,%eax
140018198:	40 8a ce             	mov    %sil,%cl
14001819b:	d3 e0                	shl    %cl,%eax
14001819d:	89 84 1d 44 03 00 00 	mov    %eax,0x344(%rbp,%rbx,1)
1400181a4:	44 8d 67 01          	lea    0x1(%rdi),%r12d
1400181a8:	45 8b c4             	mov    %r12d,%r8d
1400181ab:	49 c1 e0 02          	shl    $0x2,%r8
1400181af:	44 89 a5 40 03 00 00 	mov    %r12d,0x340(%rbp)
1400181b6:	44 89 a5 70 01 00 00 	mov    %r12d,0x170(%rbp)
1400181bd:	4d 85 c0             	test   %r8,%r8
1400181c0:	0f 84 5c 01 00 00    	je     0x140018322
1400181c6:	bb cc 01 00 00       	mov    $0x1cc,%ebx
1400181cb:	48 8d 8d 74 01 00 00 	lea    0x174(%rbp),%rcx
1400181d2:	4c 3b c3             	cmp    %rbx,%r8
1400181d5:	0f 87 26 01 00 00    	ja     0x140018301
1400181db:	48 8d 95 44 03 00 00 	lea    0x344(%rbp),%rdx
1400181e2:	e8 d9 4a 00 00       	call   0x14001ccc0
1400181e7:	e9 2f 01 00 00       	jmp    0x14001831b
1400181ec:	41 8d 46 ff          	lea    -0x1(%r14),%eax
1400181f0:	41 3b c3             	cmp    %r11d,%eax
1400181f3:	0f 84 6f ff ff ff    	je     0x140018168
1400181f9:	44 8b d0             	mov    %eax,%r10d
1400181fc:	44 8d 40 ff          	lea    -0x1(%rax),%r8d
140018200:	3b c2                	cmp    %edx,%eax
140018202:	73 07                	jae    0x14001820b
140018204:	46 8b 4c 95 a4       	mov    -0x5c(%rbp,%r10,4),%r9d
140018209:	eb 03                	jmp    0x14001820e
14001820b:	45 33 c9             	xor    %r9d,%r9d
14001820e:	44 3b c2             	cmp    %edx,%r8d
140018211:	73 07                	jae    0x14001821a
140018213:	42 8b 4c 85 a4       	mov    -0x5c(%rbp,%r8,4),%ecx
140018218:	eb 02                	jmp    0x14001821c
14001821a:	33 c9                	xor    %ecx,%ecx
14001821c:	c1 e9 1e             	shr    $0x1e,%ecx
14001821f:	42 8d 04 8d 00 00 00 	lea    0x0(,%r9,4),%eax
140018226:	00
140018227:	0b c8                	or     %eax,%ecx
140018229:	41 8b c0             	mov    %r8d,%eax
14001822c:	42 89 4c 95 a4       	mov    %ecx,-0x5c(%rbp,%r10,4)
140018231:	45 3b c3             	cmp    %r11d,%r8d
140018234:	0f 84 2e ff ff ff    	je     0x140018168
14001823a:	8b 55 a0             	mov    -0x60(%rbp),%edx
14001823d:	eb ba                	jmp    0x1400181f9
14001823f:	f7 db                	neg    %ebx
140018241:	48 1b c0             	sbb    %rax,%rax
140018244:	83 64 24 40 00       	andl   $0x0,0x40(%rsp)
140018249:	83 e0 04             	and    $0x4,%eax
14001824c:	0f bd 44 05 a4       	bsr    -0x5c(%rbp,%rax,1),%eax
140018251:	74 04                	je     0x140018257
140018253:	ff c0                	inc    %eax
140018255:	eb 02                	jmp    0x140018259
140018257:	33 c0                	xor    %eax,%eax
140018259:	45 33 f6             	xor    %r14d,%r14d
14001825c:	2b f8                	sub    %eax,%edi
14001825e:	41 3b ff             	cmp    %r15d,%edi
140018261:	41 0f 92 c6          	setb   %r14b
140018265:	41 83 cb ff          	or     $0xffffffff,%r11d
140018269:	44 03 f2             	add    %edx,%r14d
14001826c:	41 83 fe 73          	cmp    $0x73,%r14d
140018270:	76 44                	jbe    0x1400182b6
140018272:	45 33 f6             	xor    %r14d,%r14d
140018275:	be 35 04 00 00       	mov    $0x435,%esi
14001827a:	44 89 75 a0          	mov    %r14d,-0x60(%rbp)
14001827e:	41 2b f4             	sub    %r12d,%esi
140018281:	48 8d 8d 44 03 00 00 	lea    0x344(%rbp),%rcx
140018288:	8b fe                	mov    %esi,%edi
14001828a:	33 d2                	xor    %edx,%edx
14001828c:	c1 ef 05             	shr    $0x5,%edi
14001828f:	48 8d 1c bd 00 00 00 	lea    0x0(,%rdi,4),%rbx
140018296:	00
140018297:	4c 8b c3             	mov    %rbx,%r8
14001829a:	e8 c1 50 00 00       	call   0x14001d360
14001829f:	83 e6 1f             	and    $0x1f,%esi
1400182a2:	41 8b c7             	mov    %r15d,%eax
1400182a5:	40 8a ce             	mov    %sil,%cl
1400182a8:	d3 e0                	shl    %cl,%eax
1400182aa:	89 84 1d 44 03 00 00 	mov    %eax,0x344(%rbp,%rbx,1)
1400182b1:	e9 ee fe ff ff       	jmp    0x1400181a4
1400182b6:	41 8d 46 ff          	lea    -0x1(%r14),%eax
1400182ba:	41 3b c3             	cmp    %r11d,%eax
1400182bd:	74 b6                	je     0x140018275
1400182bf:	44 8b d0             	mov    %eax,%r10d
1400182c2:	44 8d 40 ff          	lea    -0x1(%rax),%r8d
1400182c6:	3b c2                	cmp    %edx,%eax
1400182c8:	73 07                	jae    0x1400182d1
1400182ca:	46 8b 4c 95 a4       	mov    -0x5c(%rbp,%r10,4),%r9d
1400182cf:	eb 03                	jmp    0x1400182d4
1400182d1:	45 33 c9             	xor    %r9d,%r9d
1400182d4:	44 3b c2             	cmp    %edx,%r8d
1400182d7:	73 07                	jae    0x1400182e0
1400182d9:	42 8b 4c 85 a4       	mov    -0x5c(%rbp,%r8,4),%ecx
1400182de:	eb 02                	jmp    0x1400182e2
1400182e0:	33 c9                	xor    %ecx,%ecx
1400182e2:	c1 e9 1f             	shr    $0x1f,%ecx
1400182e5:	43 8d 04 09          	lea    (%r9,%r9,1),%eax
1400182e9:	0b c8                	or     %eax,%ecx
1400182eb:	41 8b c0             	mov    %r8d,%eax
1400182ee:	42 89 4c 95 a4       	mov    %ecx,-0x5c(%rbp,%r10,4)
1400182f3:	45 3b c3             	cmp    %r11d,%r8d
1400182f6:	0f 84 79 ff ff ff    	je     0x140018275
1400182fc:	8b 55 a0             	mov    -0x60(%rbp),%edx
1400182ff:	eb be                	jmp    0x1400182bf
140018301:	4c 8b c3             	mov    %rbx,%r8
140018304:	33 d2                	xor    %edx,%edx
140018306:	e8 55 50 00 00       	call   0x14001d360
14001830b:	e8 38 8c ff ff       	call   0x140010f48
140018310:	c7 00 22 00 00 00    	movl   $0x22,(%rax)
140018316:	e8 a9 3a ff ff       	call   0x14000bdc4
14001831b:	44 8b a5 70 01 00 00 	mov    0x170(%rbp),%r12d
140018322:	8b 4c 24 30          	mov    0x30(%rsp),%ecx
140018326:	b8 cd cc cc cc       	mov    $0xcccccccd,%eax
14001832b:	85 c9                	test   %ecx,%ecx
14001832d:	0f 88 e8 04 00 00    	js     0x14001881b
140018333:	f7 e1                	mul    %ecx
140018335:	8b c2                	mov    %edx,%eax
140018337:	48 8d 15 c2 7c fe ff 	lea    -0x1833e(%rip),%rdx        # 0x140000000
14001833e:	c1 e8 03             	shr    $0x3,%eax
140018341:	89 44 24 50          	mov    %eax,0x50(%rsp)
140018345:	8b c8                	mov    %eax,%ecx
140018347:	89 44 24 38          	mov    %eax,0x38(%rsp)
14001834b:	85 c0                	test   %eax,%eax
14001834d:	0f 84 26 04 00 00    	je     0x140018779
140018353:	41 b8 26 00 00 00    	mov    $0x26,%r8d
140018359:	41 3b c8             	cmp    %r8d,%ecx
14001835c:	8b c1                	mov    %ecx,%eax
14001835e:	41 0f 47 c0          	cmova  %r8d,%eax
140018362:	89 44 24 48          	mov    %eax,0x48(%rsp)
140018366:	ff c8                	dec    %eax
140018368:	8b f8                	mov    %eax,%edi
14001836a:	0f b6 8c 82 32 9d 02 	movzbl 0x29d32(%rdx,%rax,4),%ecx
140018371:	00
140018372:	0f b6 b4 82 33 9d 02 	movzbl 0x29d33(%rdx,%rax,4),%esi
140018379:	00
14001837a:	33 d2                	xor    %edx,%edx
14001837c:	48 8d 1c 8d 00 00 00 	lea    0x0(,%rcx,4),%rbx
140018383:	00
140018384:	8d 04 0e             	lea    (%rsi,%rcx,1),%eax
140018387:	4c 8b c3             	mov    %rbx,%r8
14001838a:	48 8d 8d 44 03 00 00 	lea    0x344(%rbp),%rcx
140018391:	89 85 40 03 00 00    	mov    %eax,0x340(%rbp)
140018397:	e8 c4 4f 00 00       	call   0x14001d360
14001839c:	48 8d 0d 5d 7c fe ff 	lea    -0x183a3(%rip),%rcx        # 0x140000000
1400183a3:	48 c1 e6 02          	shl    $0x2,%rsi
1400183a7:	0f b7 84 b9 30 9d 02 	movzwl 0x29d30(%rcx,%rdi,4),%eax
1400183ae:	00
1400183af:	48 8d 91 20 94 02 00 	lea    0x29420(%rcx),%rdx
1400183b6:	48 8d 8d 44 03 00 00 	lea    0x344(%rbp),%rcx
1400183bd:	4c 8b c6             	mov    %rsi,%r8
1400183c0:	48 03 cb             	add    %rbx,%rcx
1400183c3:	48 8d 14 82          	lea    (%rdx,%rax,4),%rdx
1400183c7:	e8 f4 48 00 00       	call   0x14001ccc0
1400183cc:	44 8b 8d 40 03 00 00 	mov    0x340(%rbp),%r9d
1400183d3:	45 3b cf             	cmp    %r15d,%r9d
1400183d6:	77 5b                	ja     0x140018433
1400183d8:	8b 85 44 03 00 00    	mov    0x344(%rbp),%eax
1400183de:	85 c0                	test   %eax,%eax
1400183e0:	75 08                	jne    0x1400183ea
1400183e2:	45 33 e4             	xor    %r12d,%r12d
1400183e5:	e9 18 01 00 00       	jmp    0x140018502
1400183ea:	41 3b c7             	cmp    %r15d,%eax
1400183ed:	0f 84 2d 01 00 00    	je     0x140018520
1400183f3:	45 85 e4             	test   %r12d,%r12d
1400183f6:	0f 84 24 01 00 00    	je     0x140018520
1400183fc:	45 33 c0             	xor    %r8d,%r8d
1400183ff:	4c 8b d0             	mov    %rax,%r10
140018402:	45 33 c9             	xor    %r9d,%r9d
140018405:	42 8b 8c 8d 74 01 00 	mov    0x174(%rbp,%r9,4),%ecx
14001840c:	00
14001840d:	41 8b c0             	mov    %r8d,%eax
140018410:	49 0f af ca          	imul   %r10,%rcx
140018414:	48 03 c8             	add    %rax,%rcx
140018417:	4c 8b c1             	mov    %rcx,%r8
14001841a:	42 89 8c 8d 74 01 00 	mov    %ecx,0x174(%rbp,%r9,4)
140018421:	00
140018422:	49 c1 e8 20          	shr    $0x20,%r8
140018426:	45 03 cf             	add    %r15d,%r9d
140018429:	45 3b cc             	cmp    %r12d,%r9d
14001842c:	75 d7                	jne    0x140018405
14001842e:	e9 a9 00 00 00       	jmp    0x1400184dc
140018433:	45 3b e7             	cmp    %r15d,%r12d
140018436:	0f 87 54 01 00 00    	ja     0x140018590
14001843c:	8b 9d 74 01 00 00    	mov    0x174(%rbp),%ebx
140018442:	4d 8b c1             	mov    %r9,%r8
140018445:	49 c1 e0 02          	shl    $0x2,%r8
140018449:	45 8b e1             	mov    %r9d,%r12d
14001844c:	44 89 8d 70 01 00 00 	mov    %r9d,0x170(%rbp)
140018453:	4d 85 c0             	test   %r8,%r8
140018456:	74 40                	je     0x140018498
140018458:	b8 cc 01 00 00       	mov    $0x1cc,%eax
14001845d:	48 8d 8d 74 01 00 00 	lea    0x174(%rbp),%rcx
140018464:	4c 3b c0             	cmp    %rax,%r8
140018467:	77 0e                	ja     0x140018477
140018469:	48 8d 95 44 03 00 00 	lea    0x344(%rbp),%rdx
140018470:	e8 4b 48 00 00       	call   0x14001ccc0
140018475:	eb 1a                	jmp    0x140018491
140018477:	4c 8b c0             	mov    %rax,%r8
14001847a:	33 d2                	xor    %edx,%edx
14001847c:	e8 df 4e 00 00       	call   0x14001d360
140018481:	e8 c2 8a ff ff       	call   0x140010f48
140018486:	c7 00 22 00 00 00    	movl   $0x22,(%rax)
14001848c:	e8 33 39 ff ff       	call   0x14000bdc4
140018491:	44 8b a5 70 01 00 00 	mov    0x170(%rbp),%r12d
140018498:	85 db                	test   %ebx,%ebx
14001849a:	0f 84 42 ff ff ff    	je     0x1400183e2
1400184a0:	41 3b df             	cmp    %r15d,%ebx
1400184a3:	74 7b                	je     0x140018520
1400184a5:	45 85 e4             	test   %r12d,%r12d
1400184a8:	74 76                	je     0x140018520
1400184aa:	45 33 c0             	xor    %r8d,%r8d
1400184ad:	4c 8b d3             	mov    %rbx,%r10
1400184b0:	45 33 c9             	xor    %r9d,%r9d
1400184b3:	42 8b 8c 8d 74 01 00 	mov    0x174(%rbp,%r9,4),%ecx
1400184ba:	00
1400184bb:	41 8b c0             	mov    %r8d,%eax
1400184be:	49 0f af ca          	imul   %r10,%rcx
1400184c2:	48 03 c8             	add    %rax,%rcx
1400184c5:	4c 8b c1             	mov    %rcx,%r8
1400184c8:	42 89 8c 8d 74 01 00 	mov    %ecx,0x174(%rbp,%r9,4)
1400184cf:	00