18012cf2e:	83 e9 01             	sub    $0x1,%ecx
18012cf31:	0f 84 4d 05 00 00    	je     0x18012d484
18012cf37:	83 f9 01             	cmp    $0x1,%ecx
18012cf3a:	0f 85 36 07 00 00    	jne    0x18012d676
18012cf40:	83 fa 69             	cmp    $0x69,%edx
18012cf43:	0f 87 b6 01 00 00    	ja     0x18012d0ff
18012cf49:	74 31                	je     0x18012cf7c
18012cf4b:	83 ea 43             	sub    $0x43,%edx
18012cf4e:	0f 84 3c 01 00 00    	je     0x18012d090
18012cf54:	83 ea 10             	sub    $0x10,%edx
18012cf57:	0f 84 cb 00 00 00    	je     0x18012d028
18012cf5d:	83 ea 05             	sub    $0x5,%edx
18012cf60:	0f 84 13 02 00 00    	je     0x18012d179
18012cf66:	83 ea 02             	sub    $0x2,%edx
18012cf69:	74 41                	je     0x18012cfac
18012cf6b:	83 ea 09             	sub    $0x9,%edx
18012cf6e:	0f 84 27 01 00 00    	je     0x18012d09b
18012cf74:	3b d1                	cmp    %ecx,%edx
18012cf76:	0f 85 8e 03 00 00    	jne    0x18012d30a
18012cf7c:	83 cf 40             	or     $0x40,%edi
18012cf7f:	41 ba 0a 00 00 00    	mov    $0xa,%r10d
18012cf85:	ba 00 02 00 00       	mov    $0x200,%edx
18012cf8a:	48 83 c6 08          	add    $0x8,%rsi
18012cf8e:	48 89 74 24 58       	mov    %rsi,0x58(%rsp)
18012cf93:	0f ba e7 0f          	bt     $0xf,%edi
18012cf97:	72 0a                	jb     0x18012cfa3
18012cf99:	0f ba e7 0c          	bt     $0xc,%edi
18012cf9d:	0f 83 27 02 00 00    	jae    0x18012d1ca
18012cfa3:	48 8b 46 f8          	mov    -0x8(%rsi),%rax
18012cfa7:	e9 4b 02 00 00       	jmp    0x18012d1f7
18012cfac:	48 8b 0e             	mov    (%rsi),%rcx
18012cfaf:	48 83 c6 08          	add    $0x8,%rsi
18012cfb3:	48 89 74 24 58       	mov    %rsi,0x58(%rsp)
18012cfb8:	48 85 c9             	test   %rcx,%rcx
18012cfbb:	74 4f                	je     0x18012d00c
18012cfbd:	48 8b 59 08          	mov    0x8(%rcx),%rbx
18012cfc1:	48 85 db             	test   %rbx,%rbx
18012cfc4:	74 46                	je     0x18012d00c
18012cfc6:	0f b7 01             	movzwl (%rcx),%eax
18012cfc9:	66 39 41 02          	cmp    %ax,0x2(%rcx)
18012cfcd:	0f 82 bb 06 00 00    	jb     0x18012d68e
18012cfd3:	44 8b e8             	mov    %eax,%r13d
18012cfd6:	0f ba e7 0b          	bt     $0xb,%edi
18012cfda:	73 26                	jae    0x18012d002
18012cfdc:	f7 d0                	not    %eax
18012cfde:	a8 01                	test   $0x1,%al
18012cfe0:	0f 84 a8 06 00 00    	je     0x18012d68e
18012cfe6:	8b c3                	mov    %ebx,%eax
18012cfe8:	f7 d0                	not    %eax
18012cfea:	a8 01                	test   $0x1,%al
18012cfec:	0f 84 9c 06 00 00    	je     0x18012d68e
18012cff2:	41 d1 ed             	shr    $1,%r13d
18012cff5:	c7 44 24 44 01 00 00 	movl   $0x1,0x44(%rsp)
18012cffc:	00
18012cffd:	e9 08 03 00 00       	jmp    0x18012d30a
18012d002:	44 89 54 24 44       	mov    %r10d,0x44(%rsp)
18012d007:	e9 fe 02 00 00       	jmp    0x18012d30a
18012d00c:	48 8d 15 75 50 01 00 	lea    0x15075(%rip),%rdx        # 0x180142088
18012d013:	49 83 cd ff          	or     $0xffffffffffffffff,%r13
18012d017:	48 8b da             	mov    %rdx,%rbx
18012d01a:	49 ff c5             	inc    %r13
18012d01d:	46 38 14 2a          	cmp    %r10b,(%rdx,%r13,1)
18012d021:	75 f7                	jne    0x18012d01a
18012d023:	e9 e2 02 00 00       	jmp    0x18012d30a
18012d028:	f7 c7 30 08 00 00    	test   $0x830,%edi
18012d02e:	75 03                	jne    0x18012d033
18012d030:	41 0b fb             	or     %r11d,%edi
18012d033:	48 8b 1e             	mov    (%rsi),%rbx
18012d036:	41 83 fc ff          	cmp    $0xffffffff,%r12d
18012d03a:	41 8b cc             	mov    %r12d,%ecx
18012d03d:	b8 ff ff ff 7f       	mov    $0x7fffffff,%eax
18012d042:	0f 44 c8             	cmove  %eax,%ecx
18012d045:	48 83 c6 08          	add    $0x8,%rsi
18012d049:	48 89 74 24 58       	mov    %rsi,0x58(%rsp)
18012d04e:	41 84 fb             	test   %dil,%r11b
18012d051:	0f 84 df 00 00 00    	je     0x18012d136
18012d057:	48 8b c3             	mov    %rbx,%rax
18012d05a:	48 85 db             	test   %rbx,%rbx
18012d05d:	75 0d                	jne    0x18012d06c
18012d05f:	48 8d 15 22 50 01 00 	lea    0x15022(%rip),%rdx        # 0x180142088
18012d066:	48 8b da             	mov    %rdx,%rbx
18012d069:	48 8b c2             	mov    %rdx,%rax
18012d06c:	45 8b ea             	mov    %r10d,%r13d
18012d06f:	85 c9                	test   %ecx,%ecx
18012d071:	0f 8e 93 02 00 00    	jle    0x18012d30a
18012d077:	44 38 10             	cmp    %r10b,(%rax)
18012d07a:	0f 84 8a 02 00 00    	je     0x18012d30a
18012d080:	48 ff c0             	inc    %rax
18012d083:	41 ff c5             	inc    %r13d
18012d086:	44 3b e9             	cmp    %ecx,%r13d
18012d089:	7c ec                	jl     0x18012d077
18012d08b:	e9 7a 02 00 00       	jmp    0x18012d30a
18012d090:	f7 c7 30 08 00 00    	test   $0x830,%edi
18012d096:	75 03                	jne    0x18012d09b
18012d098:	41 0b fb             	or     %r11d,%edi
18012d09b:	0f b7 06             	movzwl (%rsi),%eax
18012d09e:	48 83 c6 08          	add    $0x8,%rsi
18012d0a2:	66 89 44 24 40       	mov    %ax,0x40(%rsp)
18012d0a7:	c7 44 24 44 01 00 00 	movl   $0x1,0x44(%rsp)
18012d0ae:	00
18012d0af:	48 89 74 24 58       	mov    %rsi,0x58(%rsp)
18012d0b4:	41 84 fb             	test   %dil,%r11b
18012d0b7:	74 33                	je     0x18012d0ec
18012d0b9:	4c 63 05 48 f1 03 00 	movslq 0x3f148(%rip),%r8        # 0x18016c208
18012d0c0:	48 8d 54 24 4c       	lea    0x4c(%rsp),%rdx
18012d0c5:	48 8d 4d 80          	lea    -0x80(%rbp),%rcx
18012d0c9:	88 44 24 4c          	mov    %al,0x4c(%rsp)
18012d0cd:	44 88 54 24 4d       	mov    %r10b,0x4d(%rsp)
18012d0d2:	e8 51 08 00 00       	call   0x18012d928
18012d0d7:	45 33 d2             	xor    %r10d,%r10d
18012d0da:	45 8d 5a 20          	lea    0x20(%r10),%r11d
18012d0de:	85 c0                	test   %eax,%eax
18012d0e0:	79 0e                	jns    0x18012d0f0
18012d0e2:	c7 44 24 30 01 00 00 	movl   $0x1,0x30(%rsp)
18012d0e9:	00
18012d0ea:	eb 04                	jmp    0x18012d0f0
18012d0ec:	66 89 45 80          	mov    %ax,-0x80(%rbp)
18012d0f0:	48 8d 5d 80          	lea    -0x80(%rbp),%rbx
18012d0f4:	41 bd 01 00 00 00    	mov    $0x1,%r13d
18012d0fa:	e9 0b 02 00 00       	jmp    0x18012d30a
18012d0ff:	83 ea 6e             	sub    $0x6e,%edx
18012d102:	0f 84 bf 01 00 00    	je     0x18012d2c7
18012d108:	83 ea 01             	sub    $0x1,%edx
18012d10b:	0f 84 9c 00 00 00    	je     0x18012d1ad
18012d111:	83 ea 01             	sub    $0x1,%edx
18012d114:	74 59                	je     0x18012d16f
18012d116:	83 ea 03             	sub    $0x3,%edx
18012d119:	0f 84 14 ff ff ff    	je     0x18012d033
18012d11f:	83 ea 02             	sub    $0x2,%edx
18012d122:	0f 84 57 fe ff ff    	je     0x18012cf7f
18012d128:	83 fa 03             	cmp    $0x3,%edx
18012d12b:	0f 85 d9 01 00 00    	jne    0x18012d30a
18012d131:	8d 42 24             	lea    0x24(%rdx),%eax
18012d134:	eb 48                	jmp    0x18012d17e
18012d136:	48 85 db             	test   %rbx,%rbx
18012d139:	c7 44 24 44 01 00 00 	movl   $0x1,0x44(%rsp)
18012d140:	00
18012d141:	48 8d 05 48 4f 01 00 	lea    0x14f48(%rip),%rax        # 0x180142090
18012d148:	48 0f 45 c3          	cmovne %rbx,%rax
18012d14c:	48 8b d8             	mov    %rax,%rbx
18012d14f:	eb 0c                	jmp    0x18012d15d
18012d151:	ff c9                	dec    %ecx
18012d153:	66 44 39 10          	cmp    %r10w,(%rax)
18012d157:	74 08                	je     0x18012d161
18012d159:	48 83 c0 02          	add    $0x2,%rax
18012d15d:	85 c9                	test   %ecx,%ecx
18012d15f:	75 f0                	jne    0x18012d151
18012d161:	48 2b c3             	sub    %rbx,%rax
18012d164:	48 d1 f8             	sar    $1,%rax
18012d167:	44 8b e8             	mov    %eax,%r13d
18012d16a:	e9 9b 01 00 00       	jmp    0x18012d30a
18012d16f:	41 bc 10 00 00 00    	mov    $0x10,%r12d
18012d175:	0f ba ef 0f          	bts    $0xf,%edi
18012d179:	b8 07 00 00 00       	mov    $0x7,%eax
18012d17e:	89 44 24 68          	mov    %eax,0x68(%rsp)
18012d182:	40 84 ff             	test   %dil,%dil
18012d185:	79 1b                	jns    0x18012d1a2
18012d187:	b9 30 00 00 00       	mov    $0x30,%ecx
18012d18c:	c7 44 24 38 02 00 00 	movl   $0x2,0x38(%rsp)
18012d193:	00
18012d194:	66 83 c0 51          	add    $0x51,%ax
18012d198:	66 89 4c 24 50       	mov    %cx,0x50(%rsp)
18012d19d:	66 89 44 24 52       	mov    %ax,0x52(%rsp)
18012d1a2:	41 ba 10 00 00 00    	mov    $0x10,%r10d
18012d1a8:	e9 d8 fd ff ff       	jmp    0x18012cf85
18012d1ad:	b8 08 00 00 00       	mov    $0x8,%eax
18012d1b2:	44 8b d0             	mov    %eax,%r10d
18012d1b5:	40 84 ff             	test   %dil,%dil
18012d1b8:	0f 89 c7 fd ff ff    	jns    0x18012cf85
18012d1be:	ba 00 02 00 00       	mov    $0x200,%edx
18012d1c3:	0b fa                	or     %edx,%edi
18012d1c5:	e9 c0 fd ff ff       	jmp    0x18012cf8a
18012d1ca:	8b c7                	mov    %edi,%eax
18012d1cc:	b9 20 00 00 00       	mov    $0x20,%ecx
18012d1d1:	83 e0 40             	and    $0x40,%eax
18012d1d4:	40 84 f9             	test   %dil,%cl
18012d1d7:	74 11                	je     0x18012d1ea
18012d1d9:	85 c0                	test   %eax,%eax
18012d1db:	74 07                	je     0x18012d1e4
18012d1dd:	48 0f bf 46 f8       	movswq -0x8(%rsi),%rax
18012d1e2:	eb 13                	jmp    0x18012d1f7
18012d1e4:	0f b7 46 f8          	movzwl -0x8(%rsi),%eax
18012d1e8:	eb 0d                	jmp    0x18012d1f7
18012d1ea:	85 c0                	test   %eax,%eax
18012d1ec:	74 06                	je     0x18012d1f4
18012d1ee:	48 63 46 f8          	movslq -0x8(%rsi),%rax
18012d1f2:	eb 03                	jmp    0x18012d1f7
18012d1f4:	8b 46 f8             	mov    -0x8(%rsi),%eax
18012d1f7:	40 f6 c7 40          	test   $0x40,%dil
18012d1fb:	74 0c                	je     0x18012d209
18012d1fd:	48 85 c0             	test   %rax,%rax
18012d200:	79 07                	jns    0x18012d209
18012d202:	48 f7 d8             	neg    %rax
18012d205:	0f ba ef 08          	bts    $0x8,%edi
18012d209:	f7 c7 00 90 00 00    	test   $0x9000,%edi
18012d20f:	44 8b c0             	mov    %eax,%r8d
18012d212:	4c 0f 45 c0          	cmovne %rax,%r8
18012d216:	45 85 e4             	test   %r12d,%r12d
18012d219:	79 08                	jns    0x18012d223
18012d21b:	41 bc 01 00 00 00    	mov    $0x1,%r12d
18012d221:	eb 0a                	jmp    0x18012d22d
18012d223:	83 e7 f7             	and    $0xfffffff7,%edi
18012d226:	44 3b e2             	cmp    %edx,%r12d
18012d229:	44 0f 4f e2          	cmovg  %edx,%r12d
18012d22d:	44 8b 5c 24 68       	mov    0x68(%rsp),%r11d
18012d232:	48 8d 9d 7f 01 00 00 	lea    0x17f(%rbp),%rbx
18012d239:	49 8b c0             	mov    %r8,%rax
18012d23c:	48 f7 d8             	neg    %rax
18012d23f:	1b c9                	sbb    %ecx,%ecx
18012d241:	23 4c 24 38          	and    0x38(%rsp),%ecx
18012d245:	89 4c 24 38          	mov    %ecx,0x38(%rsp)
18012d249:	44 8b c9             	mov    %ecx,%r9d
18012d24c:	41 8b cc             	mov    %r12d,%ecx
18012d24f:	41 ff cc             	dec    %r12d
18012d252:	85 c9                	test   %ecx,%ecx
18012d254:	7f 05                	jg     0x18012d25b
18012d256:	4d 85 c0             	test   %r8,%r8
18012d259:	74 20                	je     0x18012d27b
18012d25b:	33 d2                	xor    %edx,%edx
18012d25d:	49 8b c0             	mov    %r8,%rax
18012d260:	49 f7 f2             	div    %r10
18012d263:	4c 8b c0             	mov    %rax,%r8
18012d266:	8d 42 30             	lea    0x30(%rdx),%eax
18012d269:	83 f8 39             	cmp    $0x39,%eax
18012d26c:	7e 06                	jle    0x18012d274
18012d26e:	41 8d 43 30          	lea    0x30(%r11),%eax
18012d272:	03 c2                	add    %edx,%eax
18012d274:	88 03                	mov    %al,(%rbx)
18012d276:	48 ff cb             	dec    %rbx
18012d279:	eb d1                	jmp    0x18012d24c
18012d27b:	4c 8d ad 7f 01 00 00 	lea    0x17f(%rbp),%r13
18012d282:	44 89 64 24 3c       	mov    %r12d,0x3c(%rsp)
18012d287:	44 2b eb             	sub    %ebx,%r13d
18012d28a:	b9 00 02 00 00       	mov    $0x200,%ecx
18012d28f:	48 ff c3             	inc    %rbx
18012d292:	4c 8b de             	mov    %rsi,%r11
18012d295:	85 f9                	test   %edi,%ecx
18012d297:	74 68                	je     0x18012d301
18012d299:	45 33 d2             	xor    %r10d,%r10d
18012d29c:	41 8d 42 30          	lea    0x30(%r10),%eax
18012d2a0:	45 85 ed             	test   %r13d,%r13d
18012d2a3:	74 0e                	je     0x18012d2b3
18012d2a5:	48 89 74 24 58       	mov    %rsi,0x58(%rsp)
18012d2aa:	44 89 4c 24 38       	mov    %r9d,0x38(%rsp)
18012d2af:	38 03                	cmp    %al,(%rbx)
18012d2b1:	74 51                	je     0x18012d304
18012d2b3:	48 ff cb             	dec    %rbx
18012d2b6:	4c 89 5c 24 58       	mov    %r11,0x58(%rsp)
18012d2bb:	41 ff c5             	inc    %r13d
18012d2be:	44 89 4c 24 38       	mov    %r9d,0x38(%rsp)
18012d2c3:	88 03                	mov    %al,(%rbx)
18012d2c5:	eb 3d                	jmp    0x18012d304
18012d2c7:	48 83 c6 08          	add    $0x8,%rsi
18012d2cb:	48 89 74 24 58       	mov    %rsi,0x58(%rsp)
18012d2d0:	48 8b 76 f8          	mov    -0x8(%rsi),%rsi
18012d2d4:	e8 1f 05 00 00       	call   0x18012d7f8
18012d2d9:	45 33 d2             	xor    %r10d,%r10d
18012d2dc:	85 c0                	test   %eax,%eax
18012d2de:	0f 84 aa 03 00 00    	je     0x18012d68e
18012d2e4:	45 8d 5a 20          	lea    0x20(%r10),%r11d
18012d2e8:	41 84 fb             	test   %dil,%r11b
18012d2eb:	74 06                	je     0x18012d2f3
18012d2ed:	66 44 89 36          	mov    %r14w,(%rsi)
18012d2f1:	eb 03                	jmp    0x18012d2f6
18012d2f3:	44 89 36             	mov    %r14d,(%rsi)
18012d2f6:	b8 01 00 00 00       	mov    $0x1,%eax
18012d2fb:	89 44 24 30          	mov    %eax,0x30(%rsp)
18012d2ff:	eb 0d                	jmp    0x18012d30e
18012d301:	45 33 d2             	xor    %r10d,%r10d
18012d304:	41 bb 20 00 00 00    	mov    $0x20,%r11d
18012d30a:	8b 44 24 30          	mov    0x30(%rsp),%eax
18012d30e:	85 c0                	test   %eax,%eax
18012d310:	0f 85 5b 03 00 00    	jne    0x18012d671
18012d316:	40 f6 c7 40          	test   $0x40,%dil
18012d31a:	74 38                	je     0x18012d354
18012d31c:	0f ba e7 08          	bt     $0x8,%edi
18012d320:	73 07                	jae    0x18012d329
18012d322:	b8 2d 00 00 00       	mov    $0x2d,%eax
18012d327:	eb 0b                	jmp    0x18012d334
18012d329:	40 f6 c7 01          	test   $0x1,%dil
18012d32d:	74 17                	je     0x18012d346
18012d32f:	b8 2b 00 00 00       	mov    $0x2b,%eax
18012d334:	66 89 44 24 50       	mov    %ax,0x50(%rsp)
18012d339:	41 be 01 00 00 00    	mov    $0x1,%r14d
18012d33f:	44 89 74 24 38       	mov    %r14d,0x38(%rsp)
18012d344:	eb 13                	jmp    0x18012d359
18012d346:	40 f6 c7 02          	test   $0x2,%dil
18012d34a:	74 08                	je     0x18012d354
18012d34c:	66 44 89 5c 24 50    	mov    %r11w,0x50(%rsp)
18012d352:	eb e5                	jmp    0x18012d339
18012d354:	44 8b 74 24 38       	mov    0x38(%rsp),%r14d
18012d359:	44 8b 64 24 54       	mov    0x54(%rsp),%r12d
18012d35e:	8b f7                	mov    %edi,%esi
18012d360:	45 2b e5             	sub    %r13d,%r12d
18012d363:	45 2b e6             	sub    %r14d,%r12d
18012d366:	83 e6 0c             	and    $0xc,%esi
18012d369:	75 15                	jne    0x18012d380
18012d36b:	4c 8b 44 24 60       	mov    0x60(%rsp),%r8
18012d370:	4c 8d 4c 24 34       	lea    0x34(%rsp),%r9
18012d375:	41 8b cb             	mov    %r11d,%ecx
18012d378:	41 8b d4             	mov    %r12d,%edx
18012d37b:	e8 9c 03 00 00       	call   0x18012d71c
18012d380:	4c 8b 44 24 60       	mov    0x60(%rsp),%r8
18012d385:	4c 8d 4c 24 34       	lea    0x34(%rsp),%r9
18012d38a:	41 8b d6             	mov    %r14d,%edx
18012d38d:	48 8d 4c 24 50       	lea    0x50(%rsp),%rcx
18012d392:	e8 d9 03 00 00       	call   0x18012d770
18012d397:	83 fe 08             	cmp    $0x8,%esi
18012d39a:	48 8b 74 24 60       	mov    0x60(%rsp),%rsi
18012d39f:	75 15                	jne    0x18012d3b6
18012d3a1:	b9 30 00 00 00       	mov    $0x30,%ecx
18012d3a6:	4c 8d 4c 24 34       	lea    0x34(%rsp),%r9
18012d3ab:	4c 8b c6             	mov    %rsi,%r8
18012d3ae:	41 8b d4             	mov    %r12d,%edx
18012d3b1:	e8 66 03 00 00       	call   0x18012d71c
18012d3b6:	83 7c 24 44 00       	cmpl   $0x0,0x44(%rsp)
18012d3bb:	75 72                	jne    0x18012d42f
18012d3bd:	45 85 ed             	test   %r13d,%r13d
18012d3c0:	7e 6d                	jle    0x18012d42f
18012d3c2:	4c 8b fb             	mov    %rbx,%r15
18012d3c5:	41 8b f5             	mov    %r13d,%esi
18012d3c8:	4c 63 05 39 ee 03 00 	movslq 0x3ee39(%rip),%r8        # 0x18016c208
18012d3cf:	48 8d 4c 24 40       	lea    0x40(%rsp),%rcx
18012d3d4:	49 8b d7             	mov    %r15,%rdx
18012d3d7:	ff ce                	dec    %esi
18012d3d9:	e8 4a 05 00 00       	call   0x18012d928
18012d3de:	4c 63 f0             	movslq %eax,%r14
18012d3e1:	41 83 fe 02          	cmp    $0x2,%r14d
18012d3e5:	75 02                	jne    0x18012d3e9
18012d3e7:	ff ce                	dec    %esi
18012d3e9:	45 33 d2             	xor    %r10d,%r10d
18012d3ec:	85 c0                	test   %eax,%eax
18012d3ee:	7e 2a                	jle    0x18012d41a
18012d3f0:	48 8b 54 24 60       	mov    0x60(%rsp),%rdx
18012d3f5:	4c 8d 44 24 34       	lea    0x34(%rsp),%r8
18012d3fa:	0f b7 4c 24 40       	movzwl 0x40(%rsp),%ecx
18012d3ff:	e8 cc 02 00 00       	call   0x18012d6d0
18012d404:	45 33 d2             	xor    %r10d,%r10d
18012d407:	4d 03 fe             	add    %r14,%r15
18012d40a:	85 f6                	test   %esi,%esi
18012d40c:	7f ba                	jg     0x18012d3c8
18012d40e:	4c 8b 7c 24 70       	mov    0x70(%rsp),%r15
18012d413:	48 8b 74 24 60       	mov    0x60(%rsp),%rsi
18012d418:	eb 2b                	jmp    0x18012d445
18012d41a:	4c 8b 7c 24 70       	mov    0x70(%rsp),%r15
18012d41f:	41 83 ce ff          	or     $0xffffffff,%r14d
18012d423:	48 8b 74 24 60       	mov    0x60(%rsp),%rsi
18012d428:	44 89 74 24 34       	mov    %r14d,0x34(%rsp)
18012d42d:	eb 1b                	jmp    0x18012d44a
18012d42f:	4c 8d 4c 24 34       	lea    0x34(%rsp),%r9