18012ef1e:	b9 25 00 00 00       	mov    $0x25,%ecx
18012ef23:	66 39 0e             	cmp    %cx,(%rsi)
18012ef26:	0f 85 8e 00 00 00    	jne    0x18012efba
18012ef2c:	8d 41 49             	lea    0x49(%rcx),%eax
18012ef2f:	66 39 46 02          	cmp    %ax,0x2(%rsi)
18012ef33:	0f 85 81 00 00 00    	jne    0x18012efba
18012ef39:	0f b7 06             	movzwl (%rsi),%eax
18012ef3c:	66 85 c0             	test   %ax,%ax
18012ef3f:	0f 85 5d f7 ff ff    	jne    0x18012e6a2
18012ef45:	44 8b eb             	mov    %ebx,%r13d
18012ef48:	eb 18                	jmp    0x18012ef62
18012ef4a:	66 3b c7             	cmp    %di,%ax
18012ef4d:	74 6b                	je     0x18012efba
18012ef4f:	48 8b 55 67          	mov    0x67(%rbp),%rdx
18012ef53:	0f b7 cf             	movzwl %di,%ecx
18012ef56:	e8 35 16 00 00       	call   0x180130590
18012ef5b:	44 8b eb             	mov    %ebx,%r13d
18012ef5e:	44 8b 65 c7          	mov    -0x39(%rbp),%r12d
18012ef62:	b8 ff ff 00 00       	mov    $0xffff,%eax
18012ef67:	66 3b c7             	cmp    %di,%ax
18012ef6a:	74 4e                	je     0x18012efba
18012ef6c:	41 83 fd 01          	cmp    $0x1,%r13d
18012ef70:	75 72                	jne    0x18012efe4
18012ef72:	eb 5c                	jmp    0x18012efd0
18012ef74:	44 8b 65 c7          	mov    -0x39(%rbp),%r12d
18012ef78:	45 84 ed             	test   %r13b,%r13b
18012ef7b:	44 8b eb             	mov    %ebx,%r13d
18012ef7e:	7e 05                	jle    0x18012ef85
18012ef80:	66 89 1a             	mov    %bx,(%rdx)
18012ef83:	eb dd                	jmp    0x18012ef62
18012ef85:	88 1a                	mov    %bl,(%rdx)
18012ef87:	eb d9                	jmp    0x18012ef62
18012ef89:	b8 ff ff 00 00       	mov    $0xffff,%eax
18012ef8e:	66 3b c7             	cmp    %di,%ax
18012ef91:	74 0c                	je     0x18012ef9f
18012ef93:	48 8b 55 67          	mov    0x67(%rbp),%rdx
18012ef97:	0f b7 cf             	movzwl %di,%ecx
18012ef9a:	e8 f1 15 00 00       	call   0x180130590
18012ef9f:	41 bd 01 00 00 00    	mov    $0x1,%r13d
18012efa5:	eb b7                	jmp    0x18012ef5e
18012efa7:	66 44 3b ef          	cmp    %di,%r13w
18012efab:	74 0d                	je     0x18012efba
18012efad:	49 8b d6             	mov    %r14,%rdx
18012efb0:	0f b7 cf             	movzwl %di,%ecx
18012efb3:	e8 d8 15 00 00       	call   0x180130590
18012efb8:	eb 8b                	jmp    0x18012ef45
18012efba:	8b 45 c7             	mov    -0x39(%rbp),%eax
18012efbd:	85 c0                	test   %eax,%eax
18012efbf:	75 05                	jne    0x18012efc6
18012efc1:	38 5d bb             	cmp    %bl,-0x45(%rbp)
18012efc4:	74 02                	je     0x18012efc8
18012efc6:	8b d8                	mov    %eax,%ebx
18012efc8:	8b c3                	mov    %ebx,%eax
18012efca:	eb 1b                	jmp    0x18012efe7
18012efcc:	41 83 cc ff          	or     $0xffffffff,%r12d
18012efd0:	45 33 c9             	xor    %r9d,%r9d
18012efd3:	48 89 5c 24 20       	mov    %rbx,0x20(%rsp)
18012efd8:	45 33 c0             	xor    %r8d,%r8d
18012efdb:	33 d2                	xor    %edx,%edx
18012efdd:	33 c9                	xor    %ecx,%ecx
18012efdf:	e8 48 6b ee ff       	call   0x180015b2c
18012efe4:	41 8b c4             	mov    %r12d,%eax
18012efe7:	48 81 c4 b8 00 00 00 	add    $0xb8,%rsp
18012efee:	41 5f                	pop    %r15
18012eff0:	41 5e                	pop    %r14
18012eff2:	41 5d                	pop    %r13
18012eff4:	41 5c                	pop    %r12
18012eff6:	5f                   	pop    %rdi
18012eff7:	5e                   	pop    %rsi
18012eff8:	5b                   	pop    %rbx
18012eff9:	5d                   	pop    %rbp
18012effa:	c3                   	ret
18012effb:	cc                   	int3
18012effc:	48 89 5c 24 20       	mov    %rbx,0x20(%rsp)
18012f001:	55                   	push   %rbp
18012f002:	56                   	push   %rsi
18012f003:	57                   	push   %rdi
18012f004:	41 54                	push   %r12
18012f006:	41 55                	push   %r13
18012f008:	41 56                	push   %r14
18012f00a:	41 57                	push   %r15
18012f00c:	48 8d ac 24 80 fe ff 	lea    -0x180(%rsp),%rbp
18012f013:	ff
18012f014:	48 81 ec 80 02 00 00 	sub    $0x280,%rsp
18012f01b:	48 8b 05 4e d9 03 00 	mov    0x3d94e(%rip),%rax        # 0x18016c970
18012f022:	48 33 c4             	xor    %rsp,%rax
18012f025:	48 89 85 78 01 00 00 	mov    %rax,0x178(%rbp)
18012f02c:	4c 8b e1             	mov    %rcx,%r12
18012f02f:	48 89 4c 24 50       	mov    %rcx,0x50(%rsp)
18012f034:	33 c9                	xor    %ecx,%ecx
18012f036:	4d 8b e8             	mov    %r8,%r13
18012f039:	89 4c 24 58          	mov    %ecx,0x58(%rsp)
18012f03d:	8b f9                	mov    %ecx,%edi
18012f03f:	89 4c 24 4c          	mov    %ecx,0x4c(%rsp)
18012f043:	8b f1                	mov    %ecx,%esi
18012f045:	89 4c 24 3c          	mov    %ecx,0x3c(%rsp)
18012f049:	44 8b f1             	mov    %ecx,%r14d
18012f04c:	89 4c 24 30          	mov    %ecx,0x30(%rsp)
18012f050:	8b d9                	mov    %ecx,%ebx
18012f052:	89 4c 24 5c          	mov    %ecx,0x5c(%rsp)
18012f056:	4c 8b fa             	mov    %rdx,%r15
18012f059:	48 8d 4c 24 70       	lea    0x70(%rsp),%rcx
18012f05e:	33 d2                	xor    %edx,%edx
18012f060:	41 b8 00 02 00 00    	mov    $0x200,%r8d
18012f066:	e8 15 6c 00 00       	call   0x180135c80
18012f06b:	45 33 db             	xor    %r11d,%r11d
18012f06e:	44 89 5c 24 44       	mov    %r11d,0x44(%rsp)
18012f073:	4d 85 e4             	test   %r12,%r12
18012f076:	0f 84 6a 07 00 00    	je     0x18012f7e6
18012f07c:	4d 85 ff             	test   %r15,%r15
18012f07f:	0f 84 61 07 00 00    	je     0x18012f7e6
18012f085:	45 8a 0f             	mov    (%r15),%r9b
18012f088:	45 8b e3             	mov    %r11d,%r12d
18012f08b:	44 89 5c 24 38       	mov    %r11d,0x38(%rsp)
18012f090:	45 8b c3             	mov    %r11d,%r8d
18012f093:	44 89 5c 24 40       	mov    %r11d,0x40(%rsp)
18012f098:	45 84 c9             	test   %r9b,%r9b
18012f09b:	0f 84 3f 07 00 00    	je     0x18012f7e0
18012f0a1:	48 8d 0d 88 38 01 00 	lea    0x13888(%rip),%rcx        # 0x180142930
18012f0a8:	44 8d 53 10          	lea    0x10(%rbx),%r10d
18012f0ac:	49 ff c7             	inc    %r15
18012f0af:	4c 89 7c 24 68       	mov    %r15,0x68(%rsp)
18012f0b4:	44 39 5c 24 38       	cmp    %r11d,0x38(%rsp)
18012f0b9:	0f 8c 16 07 00 00    	jl     0x18012f7d5
18012f0bf:	41 8d 41 e0          	lea    -0x20(%r9),%eax
18012f0c3:	3c 5a                	cmp    $0x5a,%al
18012f0c5:	77 0e                	ja     0x18012f0d5
18012f0c7:	49 0f be c1          	movsbq %r9b,%rax
18012f0cb:	0f b6 54 08 e0       	movzbl -0x20(%rax,%rcx,1),%edx
18012f0d0:	83 e2 0f             	and    $0xf,%edx
18012f0d3:	eb 03                	jmp    0x18012f0d8
18012f0d5:	41 8b d3             	mov    %r11d,%edx
18012f0d8:	41 8d 04 d0          	lea    (%r8,%rdx,8),%eax
18012f0dc:	41 0f be c9          	movsbl %r9b,%ecx
18012f0e0:	03 c2                	add    %edx,%eax
18012f0e2:	48 8d 15 47 38 01 00 	lea    0x13847(%rip),%rdx        # 0x180142930
18012f0e9:	44 0f b6 04 10       	movzbl (%rax,%rdx,1),%r8d
18012f0ee:	41 c1 e8 04          	shr    $0x4,%r8d
18012f0f2:	44 89 44 24 48       	mov    %r8d,0x48(%rsp)
18012f0f7:	41 83 f8 08          	cmp    $0x8,%r8d
18012f0fb:	0f 84 e5 06 00 00    	je     0x18012f7e6
18012f101:	41 8b d0             	mov    %r8d,%edx
18012f104:	45 85 c0             	test   %r8d,%r8d
18012f107:	0f 84 ae 05 00 00    	je     0x18012f6bb
18012f10d:	83 ea 01             	sub    $0x1,%edx
18012f110:	0f 84 75 06 00 00    	je     0x18012f78b
18012f116:	83 ea 01             	sub    $0x1,%edx
18012f119:	0f 84 34 06 00 00    	je     0x18012f753
18012f11f:	83 ea 01             	sub    $0x1,%edx
18012f122:	0f 84 ed 05 00 00    	je     0x18012f715
18012f128:	83 ea 01             	sub    $0x1,%edx
18012f12b:	0f 84 d7 05 00 00    	je     0x18012f708
18012f131:	83 ea 01             	sub    $0x1,%edx
18012f134:	0f 84 9d 05 00 00    	je     0x18012f6d7
18012f13a:	83 ea 01             	sub    $0x1,%edx
18012f13d:	0f 84 b7 04 00 00    	je     0x18012f5fa
18012f143:	83 fa 01             	cmp    $0x1,%edx
18012f146:	0f 85 76 06 00 00    	jne    0x18012f7c2
18012f14c:	83 f9 69             	cmp    $0x69,%ecx
18012f14f:	0f 8f 8a 01 00 00    	jg     0x18012f2df
18012f155:	74 31                	je     0x18012f188
18012f157:	83 e9 43             	sub    $0x43,%ecx
18012f15a:	0f 84 1a 01 00 00    	je     0x18012f27a
18012f160:	41 2b ca             	sub    %r10d,%ecx
18012f163:	0f 84 c1 00 00 00    	je     0x18012f22a
18012f169:	83 e9 05             	sub    $0x5,%ecx
18012f16c:	0f 84 f2 01 00 00    	je     0x18012f364
18012f172:	83 e9 02             	sub    $0x2,%ecx
18012f175:	74 3c                	je     0x18012f1b3
18012f177:	83 e9 09             	sub    $0x9,%ecx
18012f17a:	0f 84 06 01 00 00    	je     0x18012f286
18012f180:	3b ca                	cmp    %edx,%ecx
18012f182:	0f 85 0f 03 00 00    	jne    0x18012f497
18012f188:	83 cf 40             	or     $0x40,%edi
18012f18b:	41 ba 0a 00 00 00    	mov    $0xa,%r10d
18012f191:	ba 00 02 00 00       	mov    $0x200,%edx
18012f196:	49 83 c5 08          	add    $0x8,%r13
18012f19a:	0f ba e7 0f          	bt     $0xf,%edi
18012f19e:	72 0a                	jb     0x18012f1aa
18012f1a0:	0f ba e7 0c          	bt     $0xc,%edi
18012f1a4:	0f 83 fd 01 00 00    	jae    0x18012f3a7
18012f1aa:	49 8b 45 f8          	mov    -0x8(%r13),%rax
18012f1ae:	e9 1f 02 00 00       	jmp    0x18012f3d2
18012f1b3:	49 8b 4d 00          	mov    0x0(%r13),%rcx
18012f1b7:	49 83 c5 08          	add    $0x8,%r13
18012f1bb:	48 85 c9             	test   %rcx,%rcx
18012f1be:	74 49                	je     0x18012f209
18012f1c0:	48 8b 59 08          	mov    0x8(%rcx),%rbx
18012f1c4:	48 85 db             	test   %rbx,%rbx
18012f1c7:	74 40                	je     0x18012f209
18012f1c9:	0f b7 01             	movzwl (%rcx),%eax
18012f1cc:	66 39 41 02          	cmp    %ax,0x2(%rcx)
18012f1d0:	0f 82 10 06 00 00    	jb     0x18012f7e6
18012f1d6:	44 8b e0             	mov    %eax,%r12d
18012f1d9:	0f ba e7 0b          	bt     $0xb,%edi
18012f1dd:	73 23                	jae    0x18012f202
18012f1df:	f7 d0                	not    %eax
18012f1e1:	a8 01                	test   $0x1,%al
18012f1e3:	0f 84 fd 05 00 00    	je     0x18012f7e6
18012f1e9:	8b c3                	mov    %ebx,%eax
18012f1eb:	f7 d0                	not    %eax
18012f1ed:	a8 01                	test   $0x1,%al
18012f1ef:	0f 84 f1 05 00 00    	je     0x18012f7e6
18012f1f5:	c7 44 24 44 01 00 00 	movl   $0x1,0x44(%rsp)
18012f1fc:	00
18012f1fd:	41 d1 ec             	shr    $1,%r12d
18012f200:	eb 1e                	jmp    0x18012f220
18012f202:	44 89 5c 24 44       	mov    %r11d,0x44(%rsp)
18012f207:	eb 17                	jmp    0x18012f220
18012f209:	48 8d 05 78 2e 01 00 	lea    0x12e78(%rip),%rax        # 0x180142088
18012f210:	49 83 cc ff          	or     $0xffffffffffffffff,%r12
18012f214:	48 8b d8             	mov    %rax,%rbx
18012f217:	49 ff c4             	inc    %r12
18012f21a:	46 38 1c 20          	cmp    %r11b,(%rax,%r12,1)
18012f21e:	75 f7                	jne    0x18012f217
18012f220:	44 89 64 24 40       	mov    %r12d,0x40(%rsp)
18012f225:	e9 6d 02 00 00       	jmp    0x18012f497
18012f22a:	f7 c7 30 08 00 00    	test   $0x830,%edi
18012f230:	75 04                	jne    0x18012f236
18012f232:	0f ba ef 0b          	bts    $0xb,%edi
18012f236:	49 8b 5d 00          	mov    0x0(%r13),%rbx
18012f23a:	83 fe ff             	cmp    $0xffffffff,%esi
18012f23d:	8b ce                	mov    %esi,%ecx
18012f23f:	b8 ff ff ff 7f       	mov    $0x7fffffff,%eax
18012f244:	0f 44 c8             	cmove  %eax,%ecx
18012f247:	49 83 c5 08          	add    $0x8,%r13
18012f24b:	f7 c7 10 08 00 00    	test   $0x810,%edi
18012f251:	0f 84 d7 00 00 00    	je     0x18012f32e
18012f257:	48 8b c3             	mov    %rbx,%rax
18012f25a:	48 85 db             	test   %rbx,%rbx
18012f25d:	75 0e                	jne    0x18012f26d
18012f25f:	48 8d 1d 2a 2e 01 00 	lea    0x12e2a(%rip),%rbx        # 0x180142090
18012f266:	48 8d 05 23 2e 01 00 	lea    0x12e23(%rip),%rax        # 0x180142090
18012f26d:	c7 44 24 44 01 00 00 	movl   $0x1,0x44(%rsp)
18012f274:	00
18012f275:	e9 a8 00 00 00       	jmp    0x18012f322
18012f27a:	f7 c7 30 08 00 00    	test   $0x830,%edi
18012f280:	75 04                	jne    0x18012f286
18012f282:	0f ba ef 0b          	bts    $0xb,%edi
18012f286:	49 83 c5 08          	add    $0x8,%r13
18012f28a:	f7 c7 10 08 00 00    	test   $0x810,%edi
18012f290:	74 30                	je     0x18012f2c2
18012f292:	45 0f b7 4d f8       	movzwl -0x8(%r13),%r9d
18012f297:	48 8d 54 24 70       	lea    0x70(%rsp),%rdx
18012f29c:	41 b8 00 02 00 00    	mov    $0x200,%r8d
18012f2a2:	48 8d 4c 24 40       	lea    0x40(%rsp),%rcx
18012f2a7:	e8 7c 05 00 00       	call   0x18012f828
18012f2ac:	44 8b 64 24 40       	mov    0x40(%rsp),%r12d
18012f2b1:	45 33 db             	xor    %r11d,%r11d
18012f2b4:	85 c0                	test   %eax,%eax
18012f2b6:	74 1d                	je     0x18012f2d5
18012f2b8:	c7 44 24 5c 01 00 00 	movl   $0x1,0x5c(%rsp)
18012f2bf:	00
18012f2c0:	eb 13                	jmp    0x18012f2d5
18012f2c2:	41 8a 45 f8          	mov    -0x8(%r13),%al
18012f2c6:	41 bc 01 00 00 00    	mov    $0x1,%r12d
18012f2cc:	88 44 24 70          	mov    %al,0x70(%rsp)
18012f2d0:	44 89 64 24 40       	mov    %r12d,0x40(%rsp)
18012f2d5:	48 8d 5c 24 70       	lea    0x70(%rsp),%rbx
18012f2da:	e9 b8 01 00 00       	jmp    0x18012f497
18012f2df:	83 e9 6e             	sub    $0x6e,%ecx
18012f2e2:	0f 84 fe 04 00 00    	je     0x18012f7e6
18012f2e8:	83 e9 01             	sub    $0x1,%ecx
18012f2eb:	0f 84 9b 00 00 00    	je     0x18012f38c
18012f2f1:	83 e9 01             	sub    $0x1,%ecx
18012f2f4:	74 67                	je     0x18012f35d
18012f2f6:	83 e9 03             	sub    $0x3,%ecx
18012f2f9:	0f 84 37 ff ff ff    	je     0x18012f236
18012f2ff:	83 e9 02             	sub    $0x2,%ecx
18012f302:	0f 84 83 fe ff ff    	je     0x18012f18b
18012f308:	83 f9 03             	cmp    $0x3,%ecx
18012f30b:	0f 85 86 01 00 00    	jne    0x18012f497
18012f311:	8d 41 24             	lea    0x24(%rcx),%eax
18012f314:	eb 53                	jmp    0x18012f369
18012f316:	ff c9                	dec    %ecx
18012f318:	66 44 39 18          	cmp    %r11w,(%rax)
18012f31c:	74 08                	je     0x18012f326
18012f31e:	48 83 c0 02          	add    $0x2,%rax
18012f322:	85 c9                	test   %ecx,%ecx
18012f324:	75 f0                	jne    0x18012f316
18012f326:	48 2b c3             	sub    %rbx,%rax
18012f329:	48 d1 f8             	sar    $1,%rax
18012f32c:	eb 23                	jmp    0x18012f351
18012f32e:	48 85 db             	test   %rbx,%rbx
18012f331:	48 8d 05 50 2d 01 00 	lea    0x12d50(%rip),%rax        # 0x180142088
18012f338:	48 0f 45 c3          	cmovne %rbx,%rax
18012f33c:	48 8b d8             	mov    %rax,%rbx
18012f33f:	eb 0a                	jmp    0x18012f34b
18012f341:	ff c9                	dec    %ecx
18012f343:	44 38 18             	cmp    %r11b,(%rax)
18012f346:	74 07                	je     0x18012f34f
18012f348:	48 ff c0             	inc    %rax
18012f34b:	85 c9                	test   %ecx,%ecx
18012f34d:	75 f2                	jne    0x18012f341
18012f34f:	2b c3                	sub    %ebx,%eax
18012f351:	44 8b e0             	mov    %eax,%r12d
18012f354:	89 44 24 40          	mov    %eax,0x40(%rsp)
18012f358:	e9 3a 01 00 00       	jmp    0x18012f497
18012f35d:	41 8b f2             	mov    %r10d,%esi
18012f360:	0f ba ef 0f          	bts    $0xf,%edi
18012f364:	b8 07 00 00 00       	mov    $0x7,%eax
18012f369:	89 44 24 58          	mov    %eax,0x58(%rsp)
18012f36d:	40 84 ff             	test   %dil,%dil
18012f370:	0f 89 1b fe ff ff    	jns    0x18012f191
18012f376:	04 51                	add    $0x51,%al
18012f378:	c6 44 24 34 30       	movb   $0x30,0x34(%rsp)
18012f37d:	88 44 24 35          	mov    %al,0x35(%rsp)
18012f381:	41 be 02 00 00 00    	mov    $0x2,%r14d
18012f387:	e9 05 fe ff ff       	jmp    0x18012f191
18012f38c:	41 ba 08 00 00 00    	mov    $0x8,%r10d
18012f392:	40 84 ff             	test   %dil,%dil
18012f395:	0f 89 f6 fd ff ff    	jns    0x18012f191
18012f39b:	ba 00 02 00 00       	mov    $0x200,%edx
18012f3a0:	0b fa                	or     %edx,%edi
18012f3a2:	e9 ef fd ff ff       	jmp    0x18012f196
18012f3a7:	8b c7                	mov    %edi,%eax
18012f3a9:	83 e0 40             	and    $0x40,%eax
18012f3ac:	40 f6 c7 20          	test   $0x20,%dil
18012f3b0:	74 12                	je     0x18012f3c4
18012f3b2:	85 c0                	test   %eax,%eax
18012f3b4:	74 07                	je     0x18012f3bd
18012f3b6:	49 0f bf 45 f8       	movswq -0x8(%r13),%rax
18012f3bb:	eb 15                	jmp    0x18012f3d2
18012f3bd:	41 0f b7 45 f8       	movzwl -0x8(%r13),%eax
18012f3c2:	eb 0e                	jmp    0x18012f3d2
18012f3c4:	85 c0                	test   %eax,%eax
18012f3c6:	74 06                	je     0x18012f3ce
18012f3c8:	49 63 45 f8          	movslq -0x8(%r13),%rax
18012f3cc:	eb 04                	jmp    0x18012f3d2
18012f3ce:	41 8b 45 f8          	mov    -0x8(%r13),%eax
18012f3d2:	40 f6 c7 40          	test   $0x40,%dil
18012f3d6:	74 0c                	je     0x18012f3e4
18012f3d8:	48 85 c0             	test   %rax,%rax
18012f3db:	79 07                	jns    0x18012f3e4
18012f3dd:	48 f7 d8             	neg    %rax
18012f3e0:	0f ba ef 08          	bts    $0x8,%edi
18012f3e4:	f7 c7 00 90 00 00    	test   $0x9000,%edi
18012f3ea:	44 8b c0             	mov    %eax,%r8d
18012f3ed:	4c 0f 45 c0          	cmovne %rax,%r8
18012f3f1:	85 f6                	test   %esi,%esi
18012f3f3:	79 07                	jns    0x18012f3fc
18012f3f5:	be 01 00 00 00       	mov    $0x1,%esi
18012f3fa:	eb 08                	jmp    0x18012f404
18012f3fc:	83 e7 f7             	and    $0xfffffff7,%edi
18012f3ff:	3b f2                	cmp    %edx,%esi
18012f401:	0f 4f f2             	cmovg  %edx,%esi
18012f404:	49 8b c0             	mov    %r8,%rax
18012f407:	48 8d 9d 6f 01 00 00 	lea    0x16f(%rbp),%rbx
18012f40e:	48 f7 d8             	neg    %rax
18012f411:	1b c9                	sbb    %ecx,%ecx