180081145:	8b d8                	mov    %eax,%ebx
180081147:	85 c0                	test   %eax,%eax
180081149:	0f 88 f9 01 00 00    	js     0x180081348
18008114f:	48 8b 7d b8          	mov    -0x48(%rbp),%rdi
180081153:	41 f6 c4 02          	test   $0x2,%r12b
180081157:	74 50                	je     0x1800811a9
180081159:	0f b7 47 04          	movzwl 0x4(%rdi),%eax
18008115d:	b9 64 86 00 00       	mov    $0x8664,%ecx
180081162:	66 3b c8             	cmp    %ax,%cx
180081165:	74 42                	je     0x1800811a9
180081167:	8b c8                	mov    %eax,%ecx
180081169:	81 e9 4c 01 00 00    	sub    $0x14c,%ecx
18008116f:	74 2e                	je     0x18008119f
180081171:	83 e9 78             	sub    $0x78,%ecx
180081174:	74 29                	je     0x18008119f
180081176:	83 e9 3c             	sub    $0x3c,%ecx
180081179:	74 1a                	je     0x180081195
18008117b:	81 e9 64 84 00 00    	sub    $0x8464,%ecx
180081181:	74 12                	je     0x180081195
180081183:	81 f9 00 24 00 00    	cmp    $0x2400,%ecx
180081189:	74 0a                	je     0x180081195
18008118b:	bb 7b 00 00 c0       	mov    $0xc000007b,%ebx
180081190:	e9 b3 01 00 00       	jmp    0x180081348
180081195:	bb 5a 03 00 c0       	mov    $0xc000035a,%ebx
18008119a:	e9 a9 01 00 00       	jmp    0x180081348
18008119f:	bb 59 03 00 c0       	mov    $0xc0000359,%ebx
1800811a4:	e9 9f 01 00 00       	jmp    0x180081348
1800811a9:	b9 10 00 00 00       	mov    $0x10,%ecx
1800811ae:	41 b8 0b 02 00 00    	mov    $0x20b,%r8d
1800811b4:	41 f7 c4 80 00 20 00 	test   $0x200080,%r12d
1800811bb:	74 09                	je     0x1800811c6
1800811bd:	0f b7 47 5c          	movzwl 0x5c(%rdi),%eax
1800811c1:	66 3b c1             	cmp    %cx,%ax
1800811c4:	75 c5                	jne    0x18008118b
1800811c6:	0f b7 47 5e          	movzwl 0x5e(%rdi),%eax
1800811ca:	41 bd 00 02 00 00    	mov    $0x200,%r13d
1800811d0:	be 80 00 00 00       	mov    $0x80,%esi
1800811d5:	45 85 e5             	test   %r12d,%r13d
1800811d8:	74 10                	je     0x1800811ea
1800811da:	40 84 c6             	test   %al,%sil
1800811dd:	74 0b                	je     0x1800811ea
1800811df:	41 83 cc 30          	or     $0x30,%r12d
1800811e3:	44 89 a5 e0 05 00 00 	mov    %r12d,0x5e0(%rbp)
1800811ea:	41 8b c4             	mov    %r12d,%eax
1800811ed:	23 c1                	and    %ecx,%eax
1800811ef:	89 45 c8             	mov    %eax,-0x38(%rbp)
1800811f2:	75 0e                	jne    0x180081202
1800811f4:	48 83 bd b0 05 00 00 	cmpq   $0x0,0x5b0(%rbp)
1800811fb:	00
1800811fc:	0f 84 10 01 00 00    	je     0x180081312
180081202:	41 8b cc             	mov    %r12d,%ecx
180081205:	c6 44 24 61 01       	movb   $0x1,0x61(%rsp)
18008120a:	e8 81 2f 00 00       	call   0x180084190
18008120f:	8b c8                	mov    %eax,%ecx
180081211:	89 45 c4             	mov    %eax,-0x3c(%rbp)
180081214:	e8 eb 2e 00 00       	call   0x180084104
180081219:	89 85 d8 05 00 00    	mov    %eax,0x5d8(%rbp)
18008121f:	45 8b cc             	mov    %r12d,%r9d
180081222:	44 23 ce             	and    %esi,%r9d
180081225:	b8 65 00 00 00       	mov    $0x65,%eax
18008122a:	41 8b c9             	mov    %r9d,%ecx
18008122d:	41 ba 05 00 00 00    	mov    $0x5,%r10d
180081233:	f7 d9                	neg    %ecx
180081235:	1b d2                	sbb    %edx,%edx
180081237:	83 e2 25             	and    $0x25,%edx
18008123a:	41 0f ba e4 0a       	bt     $0xa,%r12d
18008123f:	0f 42 d0             	cmovb  %eax,%edx
180081242:	41 8b c4             	mov    %r12d,%eax
180081245:	44 8b c2             	mov    %edx,%r8d
180081248:	45 0b c2             	or     %r10d,%r8d
18008124b:	24 40                	and    $0x40,%al
18008124d:	44 0f 44 c2          	cmove  %edx,%r8d
180081251:	ba 00 08 00 00       	mov    $0x800,%edx
180081256:	41 0f ba e4 0f       	bt     $0xf,%r12d
18008125b:	73 2c                	jae    0x180081289
18008125d:	41 83 c8 20          	or     $0x20,%r8d
180081261:	45 85 c9             	test   %r9d,%r9d
180081264:	74 1f                	je     0x180081285
180081266:	8b 0d 90 43 11 00    	mov    0x114390(%rip),%ecx        # 0x1801955fc
18008126c:	8b c1                	mov    %ecx,%eax
18008126e:	25 02 08 00 00       	and    $0x802,%eax
180081273:	3b c2                	cmp    %edx,%eax
180081275:	74 0e                	je     0x180081285
180081277:	81 e1 04 10 00 00    	and    $0x1004,%ecx
18008127d:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
180081283:	75 04                	jne    0x180081289
180081285:	41 83 c8 40          	or     $0x40,%r8d
180081289:	41 8b c8             	mov    %r8d,%ecx
18008128c:	41 8b c4             	mov    %r12d,%eax
18008128f:	83 c9 02             	or     $0x2,%ecx
180081292:	23 c2                	and    %edx,%eax
180081294:	b8 0d 00 00 00       	mov    $0xd,%eax
180081299:	41 0f 44 c8          	cmove  %r8d,%ecx
18008129d:	41 0f ba e4 0d       	bt     $0xd,%r12d
1800812a2:	0f 42 c8             	cmovb  %eax,%ecx
1800812a5:	41 0f ba e4 0e       	bt     $0xe,%r12d
1800812aa:	b8 15 00 00 00       	mov    $0x15,%eax
1800812af:	0f 42 c8             	cmovb  %eax,%ecx
1800812b2:	41 0f ba e4 14       	bt     $0x14,%r12d
1800812b7:	41 0f 42 ca          	cmovb  %r10d,%ecx
1800812bb:	41 0f ba e4 11       	bt     $0x11,%r12d
1800812c0:	73 06                	jae    0x1800812c8
1800812c2:	83 e1 fe             	and    $0xfffffffe,%ecx
1800812c5:	83 c9 04             	or     $0x4,%ecx
1800812c8:	44 8b 05 e9 42 11 00 	mov    0x1142e9(%rip),%r8d        # 0x1801955b8
1800812cf:	44 8b c9             	mov    %ecx,%r9d
1800812d2:	44 0b ce             	or     %esi,%r9d
1800812d5:	41 8b c4             	mov    %r12d,%eax
1800812d8:	25 00 00 08 00       	and    $0x80000,%eax
1800812dd:	44 0f 44 c9          	cmove  %ecx,%r9d
1800812e1:	33 d2                	xor    %edx,%edx
1800812e3:	45 85 c0             	test   %r8d,%r8d
1800812e6:	74 20                	je     0x180081308
1800812e8:	48 8b 0d d1 42 11 00 	mov    0x1142d1(%rip),%rcx        # 0x1801955c0
1800812ef:	48 8b 01             	mov    (%rcx),%rax
1800812f2:	f6 40 2e 01          	testb  $0x1,0x2e(%rax)
1800812f6:	75 0d                	jne    0x180081305
1800812f8:	ff c2                	inc    %edx
1800812fa:	48 83 c1 08          	add    $0x8,%rcx
1800812fe:	41 3b d0             	cmp    %r8d,%edx
180081301:	72 ec                	jb     0x1800812ef
180081303:	eb 03                	jmp    0x180081308
180081305:	45 0b cd             	or     %r13d,%r9d
180081308:	41 b8 0b 02 00 00    	mov    $0x20b,%r8d
18008130e:	44 89 4d 88          	mov    %r9d,-0x78(%rbp)
180081312:	8b 47 50             	mov    0x50(%rdi),%eax
180081315:	48 8b b5 a0 05 00 00 	mov    0x5a0(%rbp),%rsi
18008131c:	44 8b c8             	mov    %eax,%r9d
18008131f:	4c 89 4c 24 70       	mov    %r9,0x70(%rsp)
180081324:	48 8b 36             	mov    (%rsi),%rsi
180081327:	49 8d 91 ff 0f 00 00 	lea    0xfff(%r9),%rdx
18008132e:	48 89 75 90          	mov    %rsi,-0x70(%rbp)
180081332:	48 81 e2 00 f0 ff ff 	and    $0xfffffffffffff000,%rdx
180081339:	49 3b d1             	cmp    %r9,%rdx
18008133c:	73 7f                	jae    0x1800813bd
18008133e:	bb 95 00 00 c0       	mov    $0xc0000095,%ebx
180081343:	4c 8b 6c 24 70       	mov    0x70(%rsp),%r13
180081348:	4c 8b 7c 24 68       	mov    0x68(%rsp),%r15
18008134d:	4d 85 ff             	test   %r15,%r15
180081350:	74 15                	je     0x180081367
180081352:	48 8b 45 98          	mov    -0x68(%rbp),%rax
180081356:	85 c0                	test   %eax,%eax
180081358:	74 0d                	je     0x180081367
18008135a:	45 33 c0             	xor    %r8d,%r8d
18008135d:	8b d0                	mov    %eax,%edx
18008135f:	49 8b cf             	mov    %r15,%rcx
180081362:	e8 85 ea ff ff       	call   0x18007fdec
180081367:	48 8b 45 08          	mov    0x8(%rbp),%rax
18008136b:	48 85 c0             	test   %rax,%rax
18008136e:	74 0d                	je     0x18008137d
180081370:	f6 00 01             	testb  $0x1,(%rax)
180081373:	74 08                	je     0x18008137d
180081375:	48 8b c8             	mov    %rax,%rcx
180081378:	e8 3b 29 00 00       	call   0x180083cb8
18008137d:	85 db                	test   %ebx,%ebx
18008137f:	0f 89 fc 09 00 00    	jns    0x180081d81
180081385:	48 85 f6             	test   %rsi,%rsi
180081388:	0f 84 f3 09 00 00    	je     0x180081d81
18008138e:	41 f6 c4 04          	test   $0x4,%r12b
180081392:	0f 85 e9 09 00 00    	jne    0x180081d81
180081398:	48 8b ce             	mov    %rsi,%rcx
18008139b:	41 f6 c4 01          	test   $0x1,%r12b
18008139f:	0f 84 d7 09 00 00    	je     0x180081d7c
1800813a5:	45 33 c0             	xor    %r8d,%r8d
1800813a8:	49 8b d5             	mov    %r13,%rdx
1800813ab:	e8 bc 94 01 00       	call   0x18009a86c
1800813b0:	48 8b ce             	mov    %rsi,%rcx
1800813b3:	e8 a4 67 01 00       	call   0x180097b5c
1800813b8:	e9 c4 09 00 00       	jmp    0x180081d81
1800813bd:	b8 ff ff ff ff       	mov    $0xffffffff,%eax
1800813c2:	48 89 54 24 70       	mov    %rdx,0x70(%rsp)
1800813c7:	4c 8b ca             	mov    %rdx,%r9
1800813ca:	48 3b d0             	cmp    %rax,%rdx
1800813cd:	76 0a                	jbe    0x1800813d9
1800813cf:	bb 7b 00 00 c0       	mov    $0xc000007b,%ebx
1800813d4:	e9 6a ff ff ff       	jmp    0x180081343
1800813d9:	45 85 f6             	test   %r14d,%r14d
1800813dc:	74 2a                	je     0x180081408
1800813de:	41 8d 8e ff 0f 00 00 	lea    0xfff(%r14),%ecx
1800813e5:	81 e1 00 f0 ff ff    	and    $0xfffff000,%ecx
1800813eb:	8d 41 ff             	lea    -0x1(%rcx),%eax
1800813ee:	3d fe ff ff 7f       	cmp    $0x7ffffffe,%eax
1800813f3:	77 31                	ja     0x180081426
1800813f5:	8b c1                	mov    %ecx,%eax
1800813f7:	48 03 d0             	add    %rax,%rdx
1800813fa:	48 81 fa ff ff ff 7f 	cmp    $0x7fffffff,%rdx
180081401:	77 cc                	ja     0x1800813cf
180081403:	48 3b d0             	cmp    %rax,%rdx
180081406:	72 c7                	jb     0x1800813cf
180081408:	41 f6 c4 04          	test   $0x4,%r12b
18008140c:	74 22                	je     0x180081430
18008140e:	48 8b 8d a8 05 00 00 	mov    0x5a8(%rbp),%rcx
180081415:	8b 01                	mov    (%rcx),%eax
180081417:	49 3b c1             	cmp    %r9,%rax
18008141a:	73 47                	jae    0x180081463
18008141c:	44 89 09             	mov    %r9d,(%rcx)
18008141f:	bb 23 00 00 c0       	mov    $0xc0000023,%ebx
180081424:	eb 3d                	jmp    0x180081463
180081426:	bb 0d 00 00 c0       	mov    $0xc000000d,%ebx
18008142b:	e9 13 ff ff ff       	jmp    0x180081343
180081430:	8b 85 d0 05 00 00    	mov    0x5d0(%rbp),%eax
180081436:	48 8d 4d 90          	lea    -0x70(%rbp),%rcx
18008143a:	44 8b 8d c8 05 00 00 	mov    0x5c8(%rbp),%r9d
180081441:	45 8b c7             	mov    %r15d,%r8d
180081444:	44 89 64 24 28       	mov    %r12d,0x28(%rsp)
180081449:	89 44 24 20          	mov    %eax,0x20(%rsp)
18008144d:	e8 ee e7 ff ff       	call   0x18007fc40
180081452:	4c 8b 4c 24 70       	mov    0x70(%rsp),%r9
180081457:	8b d8                	mov    %eax,%ebx
180081459:	48 8b 75 90          	mov    -0x70(%rbp),%rsi
18008145d:	41 b8 0b 02 00 00    	mov    $0x20b,%r8d
180081463:	85 db                	test   %ebx,%ebx
180081465:	0f 88 d8 fe ff ff    	js     0x180081343
18008146b:	44 8b 6f 54          	mov    0x54(%rdi),%r13d
18008146f:	41 8b fd             	mov    %r13d,%edi
180081472:	48 89 7d d0          	mov    %rdi,-0x30(%rbp)
180081476:	4c 3b cf             	cmp    %rdi,%r9
180081479:	0f 82 50 ff ff ff    	jb     0x1800813cf
18008147f:	48 83 64 24 20 00    	andq   $0x0,0x20(%rsp)
180081485:	48 8d 4d e8          	lea    -0x18(%rbp),%rcx
180081489:	4c 8b ce             	mov    %rsi,%r9
18008148c:	45 33 c0             	xor    %r8d,%r8d
18008148f:	41 8b d5             	mov    %r13d,%edx
180081492:	e8 e9 28 00 00       	call   0x180083d80
180081497:	8b d8                	mov    %eax,%ebx
180081499:	85 c0                	test   %eax,%eax
18008149b:	0f 88 a2 fe ff ff    	js     0x180081343
1800814a1:	4c 8d 4d b8          	lea    -0x48(%rbp),%r9
1800814a5:	44 8b c7             	mov    %edi,%r8d
1800814a8:	48 8b d6             	mov    %rsi,%rdx
1800814ab:	33 c9                	xor    %ecx,%ecx
1800814ad:	e8 86 5d fb ff       	call   0x180037238
1800814b2:	8b d8                	mov    %eax,%ebx
1800814b4:	85 c0                	test   %eax,%eax
1800814b6:	0f 88 87 fe ff ff    	js     0x180081343
1800814bc:	48 8b 7d b8          	mov    -0x48(%rbp),%rdi
1800814c0:	41 b9 02 00 01 00    	mov    $0x10002,%r9d
1800814c6:	33 c9                	xor    %ecx,%ecx
1800814c8:	0f b7 47 06          	movzwl 0x6(%rdi),%eax
1800814cc:	44 8b 7f 58          	mov    0x58(%rdi),%r15d
1800814d0:	83 67 58 00          	andl   $0x0,0x58(%rdi)
1800814d4:	44 8b 47 54          	mov    0x54(%rdi),%r8d
1800814d8:	89 45 ac             	mov    %eax,-0x54(%rbp)
1800814db:	44 89 7d 90          	mov    %r15d,-0x70(%rbp)
1800814df:	e8 98 19 01 00       	call   0x180092e7c
1800814e4:	80 7c 24 61 00       	cmpb   $0x0,0x61(%rsp)
1800814e9:	44 8b f0             	mov    %eax,%r14d
1800814ec:	89 45 a8             	mov    %eax,-0x58(%rbp)
1800814ef:	44 89 7f 58          	mov    %r15d,0x58(%rdi)
1800814f3:	74 7c                	je     0x180081571
1800814f5:	44 8b 45 98          	mov    -0x68(%rbp),%r8d
1800814f9:	4c 8d 4d 80          	lea    -0x80(%rbp),%r9
1800814fd:	48 8b d6             	mov    %rsi,%rdx
180081500:	48 8b cf             	mov    %rdi,%rcx
180081503:	e8 80 2b 00 00       	call   0x180084088
180081508:	8b d8                	mov    %eax,%ebx
18008150a:	85 c0                	test   %eax,%eax
18008150c:	0f 88 31 fe ff ff    	js     0x180081343
180081512:	48 8b 45 80          	mov    -0x80(%rbp),%rax
180081516:	83 38 00             	cmpl   $0x0,(%rax)
180081519:	74 56                	je     0x180081571
18008151b:	83 78 04 00          	cmpl   $0x0,0x4(%rax)
18008151f:	74 50                	je     0x180081571
180081521:	8b 50 04             	mov    0x4(%rax),%edx
180081524:	48 8d 4d e0          	lea    -0x20(%rbp),%rcx
180081528:	83 64 24 28 00       	andl   $0x0,0x28(%rsp)
18008152d:	45 33 c9             	xor    %r9d,%r9d
180081530:	83 64 24 20 00       	andl   $0x0,0x20(%rsp)
180081535:	41 b8 0a 00 00 d0    	mov    $0xd000000a,%r8d
18008153b:	e8 00 e7 ff ff       	call   0x18007fc40
180081540:	8b d8                	mov    %eax,%ebx
180081542:	85 c0                	test   %eax,%eax
180081544:	48 8b 45 80          	mov    -0x80(%rbp),%rax
180081548:	0f 88 4b 02 00 00    	js     0x180081799
18008154e:	44 8b 00             	mov    (%rax),%r8d
180081551:	48 8d 4d e8          	lea    -0x18(%rbp),%rcx
180081555:	4c 8b 4d e0          	mov    -0x20(%rbp),%r9
180081559:	8b 50 04             	mov    0x4(%rax),%edx
18008155c:	48 83 64 24 20 00    	andq   $0x0,0x20(%rsp)
180081562:	e8 19 28 00 00       	call   0x180083d80
180081567:	8b d8                	mov    %eax,%ebx
180081569:	85 c0                	test   %eax,%eax
18008156b:	0f 88 b3 01 00 00    	js     0x180081724
180081571:	0f b7 47 14          	movzwl 0x14(%rdi),%eax
180081575:	45 33 e4             	xor    %r12d,%r12d
180081578:	48 83 c0 2c          	add    $0x2c,%rax
18008157c:	44 39 65 ac          	cmp    %r12d,-0x54(%rbp)
180081580:	0f 86 eb 00 00 00    	jbe    0x180081671
180081586:	4c 8b 4c 24 70       	mov    0x70(%rsp),%r9
18008158b:	48 03 f8             	add    %rax,%rdi
18008158e:	8b 57 f8             	mov    -0x8(%rdi),%edx
180081591:	4c 8d 3c 32          	lea    (%rdx,%rsi,1),%r15
180081595:	4c 3b ca             	cmp    %rdx,%r9
180081598:	0f 82 ba 01 00 00    	jb     0x180081758
18008159e:	4c 3b fe             	cmp    %rsi,%r15
1800815a1:	0f 82 b1 01 00 00    	jb     0x180081758
1800815a7:	8b 4f fc             	mov    -0x4(%rdi),%ecx
1800815aa:	44 8d 71 01          	lea    0x1(%rcx),%r14d
1800815ae:	41 83 e6 fe          	and    $0xfffffffe,%r14d
1800815b2:	44 3b f1             	cmp    %ecx,%r14d
1800815b5:	0f 82 ab 01 00 00    	jb     0x180081766
1800815bb:	83 7f f4 00          	cmpl   $0x0,-0xc(%rdi)
1800815bf:	8b c1                	mov    %ecx,%eax
1800815c1:	0f 45 47 f4          	cmovne -0xc(%rdi),%eax
1800815c5:	83 3f 00             	cmpl   $0x0,(%rdi)
1800815c8:	75 04                	jne    0x1800815ce
1800815ca:	33 c9                	xor    %ecx,%ecx
1800815cc:	eb 05                	jmp    0x1800815d3
1800815ce:	3b c1                	cmp    %ecx,%eax
1800815d0:	0f 42 c8             	cmovb  %eax,%ecx
1800815d3:	44 8d 04 02          	lea    (%rdx,%rax,1),%r8d
1800815d7:	44 3b c2             	cmp    %edx,%r8d
1800815da:	0f 82 78 01 00 00    	jb     0x180081758
1800815e0:	41 8b c0             	mov    %r8d,%eax
1800815e3:	4c 3b c8             	cmp    %rax,%r9
1800815e6:	0f 82 6c 01 00 00    	jb     0x180081758
1800815ec:	42 8d 04 32          	lea    (%rdx,%r14,1),%eax
1800815f0:	3b c2                	cmp    %edx,%eax
1800815f2:	0f 82 60 01 00 00    	jb     0x180081758
1800815f8:	33 db                	xor    %ebx,%ebx
1800815fa:	4c 3b c8             	cmp    %rax,%r9
1800815fd:	0f 82 55 01 00 00    	jb     0x180081758
180081603:	85 c9                	test   %ecx,%ecx
180081605:	74 51                	je     0x180081658
180081607:	44 8b 07             	mov    (%rdi),%r8d
18008160a:	48 8d 4d e8          	lea    -0x18(%rbp),%rcx
18008160e:	48 21 5c 24 20       	and    %rbx,0x20(%rsp)
180081613:	4d 8b cf             	mov    %r15,%r9
180081616:	41 8b d6             	mov    %r14d,%edx
180081619:	e8 62 27 00 00       	call   0x180083d80
18008161e:	8b d8                	mov    %eax,%ebx
180081620:	85 c0                	test   %eax,%eax
180081622:	0f 88 35 01 00 00    	js     0x18008175d
180081628:	8b 07                	mov    (%rdi),%eax
18008162a:	41 b9 02 00 01 00    	mov    $0x10002,%r9d
180081630:	0f b7 4d a8          	movzwl -0x58(%rbp),%ecx
180081634:	41 03 c6             	add    %r14d,%eax
180081637:	45 8b c6             	mov    %r14d,%r8d
18008163a:	89 45 a0             	mov    %eax,-0x60(%rbp)
18008163d:	49 8b d7             	mov    %r15,%rdx
180081640:	e8 37 18 01 00       	call   0x180092e7c
180081645:	44 03 6f fc          	add    -0x4(%rdi),%r13d
180081649:	44 0f b7 f0          	movzwl %ax,%r14d
18008164d:	4c 8b 4c 24 70       	mov    0x70(%rsp),%r9
180081652:	44 89 75 a8          	mov    %r14d,-0x58(%rbp)
180081656:	eb 04                	jmp    0x18008165c
180081658:	44 8b 75 a8          	mov    -0x58(%rbp),%r14d
18008165c:	41 ff c4             	inc    %r12d
18008165f:	48 83 c7 28          	add    $0x28,%rdi
180081663:	44 3b 65 ac          	cmp    -0x54(%rbp),%r12d