140551f53:	57                   	push   %rdi
140551f54:	48 83 ec 60          	sub    $0x60,%rsp
140551f58:	48 8b 05 a1 6f e6 00 	mov    0xe66fa1(%rip),%rax        # 0x1413b8f00
140551f5f:	48 33 c4             	xor    %rsp,%rax
140551f62:	48 89 44 24 50       	mov    %rax,0x50(%rsp)
140551f67:	49 8b f8             	mov    %r8,%rdi
140551f6a:	48 8b da             	mov    %rdx,%rbx
140551f6d:	48 89 54 24 20       	mov    %rdx,0x20(%rsp)
140551f72:	48 8b 09             	mov    (%rcx),%rcx
140551f75:	83 79 18 09          	cmpl   $0x9,0x18(%rcx)
140551f79:	0f 85 c2 00 00 00    	jne    0x140552041
140551f7f:	e8 7c 84 1f 00       	call   0x14074a400
140551f84:	48 8b f0             	mov    %rax,%rsi
140551f87:	4c 8d 47 08          	lea    0x8(%rdi),%r8
140551f8b:	49 83 78 18 0f       	cmpq   $0xf,0x18(%r8)
140551f90:	76 03                	jbe    0x140551f95
140551f92:	4d 8b 00             	mov    (%r8),%r8
140551f95:	0f 57 c0             	xorps  %xmm0,%xmm0
140551f98:	0f 11 44 24 30       	movups %xmm0,0x30(%rsp)
140551f9d:	66 0f 6f 0d 6b 23 a5 	movdqa 0xa5236b(%rip),%xmm1        # 0x140fa4310
140551fa4:	00
140551fa5:	f3 0f 7f 4c 24 40    	movdqu %xmm1,0x40(%rsp)
140551fab:	8b 05 37 06 a9 00    	mov    0xa90637(%rip),%eax        # 0x140fe25e8
140551fb1:	89 44 24 30          	mov    %eax,0x30(%rsp)
140551fb5:	0f b7 05 30 06 a9 00 	movzwl 0xa90630(%rip),%eax        # 0x140fe25ec
140551fbc:	66 89 44 24 34       	mov    %ax,0x34(%rsp)
140551fc1:	c6 44 24 36 00       	movb   $0x0,0x36(%rsp)
140551fc6:	48 8d 54 24 30       	lea    0x30(%rsp),%rdx
140551fcb:	48 8b ce             	mov    %rsi,%rcx
140551fce:	e8 8d cd 1f 00       	call   0x14074ed60
140551fd3:	48 8b f8             	mov    %rax,%rdi
140551fd6:	48 8b 54 24 48       	mov    0x48(%rsp),%rdx
140551fdb:	48 83 fa 0f          	cmp    $0xf,%rdx
140551fdf:	76 2e                	jbe    0x14055200f
140551fe1:	48 ff c2             	inc    %rdx
140551fe4:	48 8b 4c 24 30       	mov    0x30(%rsp),%rcx
140551fe9:	48 8b c1             	mov    %rcx,%rax
140551fec:	48 81 fa 00 10 00 00 	cmp    $0x1000,%rdx
140551ff3:	72 15                	jb     0x14055200a
140551ff5:	48 83 c2 27          	add    $0x27,%rdx
140551ff9:	48 8b 49 f8          	mov    -0x8(%rcx),%rcx
140551ffd:	48 2b c1             	sub    %rcx,%rax
140552000:	48 83 c0 f8          	add    $0xfffffffffffffff8,%rax
140552004:	48 83 f8 1f          	cmp    $0x1f,%rax
140552008:	77 5f                	ja     0x140552069
14055200a:	e8 35 91 8c 00       	call   0x140e1b144
14055200f:	48 83 ff ff          	cmp    $0xffffffffffffffff,%rdi
140552013:	74 2c                	je     0x140552041
140552015:	48 8b d7             	mov    %rdi,%rdx
140552018:	48 8b ce             	mov    %rsi,%rcx
14055201b:	e8 d0 be 1f 00       	call   0x14074def0
140552020:	48 8b 08             	mov    (%rax),%rcx
140552023:	48 85 c9             	test   %rcx,%rcx
140552026:	74 14                	je     0x14055203c
140552028:	8b 41 10             	mov    0x10(%rcx),%eax
14055202b:	ff c0                	inc    %eax
14055202d:	89 41 10             	mov    %eax,0x10(%rcx)
140552030:	83 f8 01             	cmp    $0x1,%eax
140552033:	7e 3a                	jle    0x14055206f
140552035:	3d ff ff ff 7f       	cmp    $0x7fffffff,%eax
14055203a:	74 22                	je     0x14055205e
14055203c:	48 89 0b             	mov    %rcx,(%rbx)
14055203f:	eb 05                	jmp    0x140552046
140552041:	33 c0                	xor    %eax,%eax
140552043:	48 89 03             	mov    %rax,(%rbx)
140552046:	48 8b c3             	mov    %rbx,%rax
140552049:	48 8b 4c 24 50       	mov    0x50(%rsp),%rcx
14055204e:	48 33 cc             	xor    %rsp,%rcx
140552051:	e8 aa 94 8c 00       	call   0x140e1b500
140552056:	48 83 c4 60          	add    $0x60,%rsp
14055205a:	5f                   	pop    %rdi
14055205b:	5e                   	pop    %rsi
14055205c:	5b                   	pop    %rbx
14055205d:	c3                   	ret
14055205e:	b9 01 00 00 00       	mov    $0x1,%ecx
140552063:	e8 98 86 23 00       	call   0x14078a700
140552068:	90                   	nop
140552069:	e8 36 81 8d 00       	call   0x140e2a1a4
14055206e:	90                   	nop
14055206f:	33 c9                	xor    %ecx,%ecx
140552071:	e8 8a 86 23 00       	call   0x14078a700
140552076:	cc                   	int3
140552077:	cc                   	int3
140552078:	cc                   	int3
140552079:	cc                   	int3
14055207a:	cc                   	int3
14055207b:	cc                   	int3
14055207c:	cc                   	int3
14055207d:	cc                   	int3
14055207e:	cc                   	int3
14055207f:	cc                   	int3
140552080:	48 89 5c 24 10       	mov    %rbx,0x10(%rsp)
140552085:	55                   	push   %rbp
140552086:	56                   	push   %rsi
140552087:	57                   	push   %rdi
140552088:	48 83 ec 30          	sub    $0x30,%rsp
14055208c:	48 8b da             	mov    %rdx,%rbx
14055208f:	33 ff                	xor    %edi,%edi
140552091:	48 8b 01             	mov    (%rcx),%rax
140552094:	8b 48 18             	mov    0x18(%rax),%ecx
140552097:	83 f9 07             	cmp    $0x7,%ecx
14055209a:	0f 84 bb 00 00 00    	je     0x14055215b
1405520a0:	83 f9 12             	cmp    $0x12,%ecx
1405520a3:	74 13                	je     0x1405520b8
1405520a5:	48 89 3a             	mov    %rdi,(%rdx)
1405520a8:	48 8b c2             	mov    %rdx,%rax
1405520ab:	48 8b 5c 24 58       	mov    0x58(%rsp),%rbx
1405520b0:	48 83 c4 30          	add    $0x30,%rsp
1405520b4:	5f                   	pop    %rdi
1405520b5:	5e                   	pop    %rsi
1405520b6:	5d                   	pop    %rbp
1405520b7:	c3                   	ret
1405520b8:	49 83 78 18 0f       	cmpq   $0xf,0x18(%r8)
1405520bd:	76 03                	jbe    0x1405520c2
1405520bf:	4d 8b 00             	mov    (%r8),%r8
1405520c2:	49 8b d0             	mov    %r8,%rdx
1405520c5:	48 8d 4c 24 50       	lea    0x50(%rsp),%rcx
1405520ca:	e8 71 9f 29 00       	call   0x1407ec040
1405520cf:	90                   	nop
1405520d0:	48 83 7c 24 50 00    	cmpq   $0x0,0x50(%rsp)
1405520d6:	74 70                	je     0x140552148
1405520d8:	b9 28 00 00 00       	mov    $0x28,%ecx
1405520dd:	e8 26 90 8c 00       	call   0x140e1b108
1405520e2:	48 89 44 24 28       	mov    %rax,0x28(%rsp)
1405520e7:	48 85 c0             	test   %rax,%rax
1405520ea:	74 1f                	je     0x14055210b
1405520ec:	48 8b 4c 24 50       	mov    0x50(%rsp),%rcx
1405520f1:	48 89 7c 24 50       	mov    %rdi,0x50(%rsp)
1405520f6:	48 89 4c 24 68       	mov    %rcx,0x68(%rsp)
1405520fb:	48 8d 54 24 68       	lea    0x68(%rsp),%rdx
140552100:	48 8b c8             	mov    %rax,%rcx
140552103:	e8 a8 f4 1d 00       	call   0x1407315b0
140552108:	48 8b f8             	mov    %rax,%rdi
14055210b:	48 89 3b             	mov    %rdi,(%rbx)
14055210e:	48 8b 4c 24 50       	mov    0x50(%rsp),%rcx
140552113:	48 85 c9             	test   %rcx,%rcx
140552116:	74 20                	je     0x140552138
140552118:	8b 41 10             	mov    0x10(%rcx),%eax
14055211b:	ff c8                	dec    %eax
14055211d:	89 41 10             	mov    %eax,0x10(%rcx)
140552120:	85 c0                	test   %eax,%eax
140552122:	7f 14                	jg     0x140552138
140552124:	78 7d                	js     0x1405521a3
140552126:	48 8b 01             	mov    (%rcx),%rax
140552129:	ba 01 00 00 00       	mov    $0x1,%edx
14055212e:	48 8b 00             	mov    (%rax),%rax
140552131:	ff 15 e9 18 a3 00    	call   *0xa318e9(%rip)        # 0x140f83a20
140552137:	90                   	nop
140552138:	48 8b c3             	mov    %rbx,%rax
14055213b:	48 8b 5c 24 58       	mov    0x58(%rsp),%rbx
140552140:	48 83 c4 30          	add    $0x30,%rsp
140552144:	5f                   	pop    %rdi
140552145:	5e                   	pop    %rsi
140552146:	5d                   	pop    %rbp
140552147:	c3                   	ret
140552148:	48 89 3b             	mov    %rdi,(%rbx)
14055214b:	48 8b c3             	mov    %rbx,%rax
14055214e:	48 8b 5c 24 58       	mov    0x58(%rsp),%rbx
140552153:	48 83 c4 30          	add    $0x30,%rsp
140552157:	5f                   	pop    %rdi
140552158:	5e                   	pop    %rsi
140552159:	5d                   	pop    %rbp
14055215a:	c3                   	ret
14055215b:	49 8b f0             	mov    %r8,%rsi
14055215e:	49 83 78 18 0f       	cmpq   $0xf,0x18(%r8)
140552163:	76 03                	jbe    0x140552168
140552165:	49 8b 30             	mov    (%r8),%rsi
140552168:	49 8b 68 10          	mov    0x10(%r8),%rbp
14055216c:	b9 28 00 00 00       	mov    $0x28,%ecx
140552171:	e8 92 8f 8c 00       	call   0x140e1b108
140552176:	48 89 44 24 50       	mov    %rax,0x50(%rsp)
14055217b:	48 85 c0             	test   %rax,%rax
14055217e:	74 10                	je     0x140552190
140552180:	4c 8b c6             	mov    %rsi,%r8
140552183:	8b d5                	mov    %ebp,%edx
140552185:	48 8b c8             	mov    %rax,%rcx
140552188:	e8 63 fa 1d 00       	call   0x140731bf0
14055218d:	48 8b f8             	mov    %rax,%rdi
140552190:	48 89 3b             	mov    %rdi,(%rbx)
140552193:	48 8b c3             	mov    %rbx,%rax
140552196:	48 8b 5c 24 58       	mov    0x58(%rsp),%rbx
14055219b:	48 83 c4 30          	add    $0x30,%rsp
14055219f:	5f                   	pop    %rdi
1405521a0:	5e                   	pop    %rsi
1405521a1:	5d                   	pop    %rbp
1405521a2:	c3                   	ret
1405521a3:	b9 02 00 00 00       	mov    $0x2,%ecx
1405521a8:	e8 53 85 23 00       	call   0x14078a700
1405521ad:	cc                   	int3
1405521ae:	cc                   	int3
1405521af:	cc                   	int3
1405521b0:	48 89 5c 24 18       	mov    %rbx,0x18(%rsp)
1405521b5:	48 89 54 24 10       	mov    %rdx,0x10(%rsp)
1405521ba:	55                   	push   %rbp
1405521bb:	56                   	push   %rsi
1405521bc:	57                   	push   %rdi
1405521bd:	41 54                	push   %r12
1405521bf:	41 55                	push   %r13
1405521c1:	41 56                	push   %r14
1405521c3:	41 57                	push   %r15
1405521c5:	48 8d 6c 24 d9       	lea    -0x27(%rsp),%rbp
1405521ca:	48 81 ec c0 00 00 00 	sub    $0xc0,%rsp
1405521d1:	49 8b f8             	mov    %r8,%rdi
1405521d4:	48 8b f2             	mov    %rdx,%rsi
1405521d7:	48 8b d9             	mov    %rcx,%rbx
1405521da:	45 33 f6             	xor    %r14d,%r14d
1405521dd:	48 8b 09             	mov    (%rcx),%rcx
1405521e0:	83 79 18 0e          	cmpl   $0xe,0x18(%rcx)
1405521e4:	0f 85 5a 05 00 00    	jne    0x140552744
1405521ea:	48 8b 01             	mov    (%rcx),%rax
1405521ed:	48 8b 40 40          	mov    0x40(%rax),%rax
1405521f1:	ff 15 29 18 a3 00    	call   *0xa31829(%rip)        # 0x140f83a20
1405521f7:	4c 39 30             	cmp    %r14,(%rax)
1405521fa:	0f 84 44 05 00 00    	je     0x140552744
140552200:	48 8b 0b             	mov    (%rbx),%rcx
140552203:	e8 e8 83 1f 00       	call   0x14074a5f0
140552208:	4c 8b f8             	mov    %rax,%r15
14055220b:	48 89 45 df          	mov    %rax,-0x21(%rbp)
14055220f:	48 8b d8             	mov    %rax,%rbx
140552212:	48 89 45 97          	mov    %rax,-0x69(%rbp)
140552216:	48 85 c0             	test   %rax,%rax
140552219:	74 1d                	je     0x140552238
14055221b:	8b 48 10             	mov    0x10(%rax),%ecx
14055221e:	ff c1                	inc    %ecx
140552220:	89 48 10             	mov    %ecx,0x10(%rax)
140552223:	83 f9 01             	cmp    $0x1,%ecx
140552226:	0f 8e 4f 05 00 00    	jle    0x14055277b
14055222c:	81 f9 ff ff ff 7f    	cmp    $0x7fffffff,%ecx
140552232:	0f 84 4b 05 00 00    	je     0x140552783
140552238:	b9 b0 00 00 00       	mov    $0xb0,%ecx
14055223d:	e8 c6 8e 8c 00       	call   0x140e1b108
140552242:	48 89 45 cf          	mov    %rax,-0x31(%rbp)
140552246:	48 85 c0             	test   %rax,%rax
140552249:	74 27                	je     0x140552272
14055224b:	4c 89 75 67          	mov    %r14,0x67(%rbp)
14055224f:	49 8b de             	mov    %r14,%rbx
140552252:	48 89 5d 97          	mov    %rbx,-0x69(%rbp)
140552256:	4c 89 7d 7f          	mov    %r15,0x7f(%rbp)
14055225a:	4c 8d 45 67          	lea    0x67(%rbp),%r8
14055225e:	48 8d 55 7f          	lea    0x7f(%rbp),%rdx
140552262:	48 8b c8             	mov    %rax,%rcx
140552265:	e8 86 fd 1d 00       	call   0x140731ff0
14055226a:	4c 8b e0             	mov    %rax,%r12
14055226d:	49 8b ce             	mov    %r14,%rcx
140552270:	eb 06                	jmp    0x140552278
140552272:	4d 8b e6             	mov    %r14,%r12
140552275:	49 8b cf             	mov    %r15,%rcx
140552278:	4c 89 65 c7          	mov    %r12,-0x39(%rbp)
14055227c:	4c 89 65 17          	mov    %r12,0x17(%rbp)
140552280:	48 85 c9             	test   %rcx,%rcx
140552283:	74 27                	je     0x1405522ac
140552285:	8b 43 10             	mov    0x10(%rbx),%eax
140552288:	ff c8                	dec    %eax
14055228a:	89 43 10             	mov    %eax,0x10(%rbx)
14055228d:	85 c0                	test   %eax,%eax
14055228f:	7f 1b                	jg     0x1405522ac
140552291:	0f 88 f7 04 00 00    	js     0x14055278e
140552297:	48 8b 03             	mov    (%rbx),%rax
14055229a:	ba 01 00 00 00       	mov    $0x1,%edx
14055229f:	48 8b cb             	mov    %rbx,%rcx
1405522a2:	48 8b 00             	mov    (%rax),%rax
1405522a5:	ff 15 75 17 a3 00    	call   *0xa31775(%rip)        # 0x140f83a20
1405522ab:	90                   	nop
1405522ac:	48 8b 1f             	mov    (%rdi),%rbx
1405522af:	48 8b 1b             	mov    (%rbx),%rbx
1405522b2:	80 7b 19 00          	cmpb   $0x0,0x19(%rbx)
1405522b6:	0f 85 f1 02 00 00    	jne    0x1405525ad
1405522bc:	33 ff                	xor    %edi,%edi
1405522be:	49 be ab aa aa aa aa 	movabs $0x2aaaaaaaaaaaaaab,%r14
1405522c5:	aa aa 2a
1405522c8:	4c 8d 43 20          	lea    0x20(%rbx),%r8
1405522cc:	4d 8b 6f 40          	mov    0x40(%r15),%r13
1405522d0:	0f 57 c0             	xorps  %xmm0,%xmm0
1405522d3:	f3 0f 7f 45 af       	movdqu %xmm0,-0x51(%rbp)
1405522d8:	48 89 7d bf          	mov    %rdi,-0x41(%rbp)
1405522dc:	4d 85 c0             	test   %r8,%r8
1405522df:	74 3d                	je     0x14055231e
1405522e1:	41 80 78 28 0e       	cmpb   $0xe,0x28(%r8)
1405522e6:	75 36                	jne    0x14055231e
1405522e8:	49 8b 4d 48          	mov    0x48(%r13),%rcx
1405522ec:	49 8b f0             	mov    %r8,%rsi
1405522ef:	49 8b 45 50          	mov    0x50(%r13),%rax
1405522f3:	48 2b c1             	sub    %rcx,%rax
1405522f6:	48 83 e0 f8          	and    $0xfffffffffffffff8,%rax
1405522fa:	48 83 f8 08          	cmp    $0x8,%rax
1405522fe:	75 2d                	jne    0x14055232d
140552300:	48 8b 09             	mov    (%rcx),%rcx
140552303:	8b 51 18             	mov    0x18(%rcx),%edx
140552306:	2b d0                	sub    %eax,%edx
140552308:	74 14                	je     0x14055231e
14055230a:	83 ea 07             	sub    $0x7,%edx
14055230d:	74 0f                	je     0x14055231e
14055230f:	83 ea 02             	sub    $0x2,%edx
140552312:	74 0a                	je     0x14055231e
140552314:	83 ea 02             	sub    $0x2,%edx
140552317:	74 05                	je     0x14055231e
140552319:	83 fa 01             	cmp    $0x1,%edx
14055231c:	75 0f                	jne    0x14055232d
14055231e:	33 d2                	xor    %edx,%edx
140552320:	48 8d 4d af          	lea    -0x51(%rbp),%rcx
140552324:	e8 57 c6 ff ff       	call   0x14054e980
140552329:	48 8d 75 af          	lea    -0x51(%rbp),%rsi
14055232d:	48 8b 4e 08          	mov    0x8(%rsi),%rcx
140552331:	48 2b 0e             	sub    (%rsi),%rcx
140552334:	49 8b c6             	mov    %r14,%rax
140552337:	48 f7 e9             	imul   %rcx
14055233a:	48 c1 fa 03          	sar    $0x3,%rdx
14055233e:	48 8b c2             	mov    %rdx,%rax
140552341:	48 c1 e8 3f          	shr    $0x3f,%rax
140552345:	48 03 d0             	add    %rax,%rdx
140552348:	49 8b 45 50          	mov    0x50(%r13),%rax
14055234c:	49 2b 45 48          	sub    0x48(%r13),%rax
140552350:	48 c1 f8 03          	sar    $0x3,%rax
140552354:	48 3b c2             	cmp    %rdx,%rax
140552357:	0f 85 29 03 00 00    	jne    0x140552686
14055235d:	b9 40 00 00 00       	mov    $0x40,%ecx
140552362:	e8 a1 8d 8c 00       	call   0x140e1b108
140552367:	48 89 45 1f          	mov    %rax,0x1f(%rbp)
14055236b:	48 85 c0             	test   %rax,%rax
14055236e:	74 12                	je     0x140552382
140552370:	ba 0d 00 00 00       	mov    $0xd,%edx
140552375:	48 8b c8             	mov    %rax,%rcx
140552378:	e8 83 f3 1d 00       	call   0x140731700
14055237d:	4c 8b f0             	mov    %rax,%r14
140552380:	eb 03                	jmp    0x140552385
140552382:	4c 8b f7             	mov    %rdi,%r14
140552385:	4c 89 75 cf          	mov    %r14,-0x31(%rbp)
140552389:	4c 8b ff             	mov    %rdi,%r15
14055238c:	4c 8b 06             	mov    (%rsi),%r8
14055238f:	48 8b 4e 08          	mov    0x8(%rsi),%rcx
140552393:	49 2b c8             	sub    %r8,%rcx
140552396:	48 b8 ab aa aa aa aa 	movabs $0x2aaaaaaaaaaaaaab,%rax
14055239d:	aa aa 2a
1405523a0:	48 f7 e9             	imul   %rcx
1405523a3:	48 c1 fa 03          	sar    $0x3,%rdx
1405523a7:	48 8b c2             	mov    %rdx,%rax
1405523aa:	48 c1 e8 3f          	shr    $0x3f,%rax
1405523ae:	48 03 d0             	add    %rax,%rdx
1405523b1:	0f 84 d5 00 00 00    	je     0x14055248c
1405523b7:	48 8d 45 e7          	lea    -0x19(%rbp),%rax
1405523bb:	48 89 45 a7          	mov    %rax,-0x59(%rbp)
1405523bf:	48 8d 45 e7          	lea    -0x19(%rbp),%rax
1405523c3:	48 89 45 97          	mov    %rax,-0x69(%rbp)
1405523c7:	4c 8b e7             	mov    %rdi,%r12
1405523ca:	66 0f 1f 44 00 00    	nopw   0x0(%rax,%rax,1)
1405523d0:	49 8b 45 48          	mov    0x48(%r13),%rax
1405523d4:	4a 8b 3c f8          	mov    (%rax,%r15,8),%rdi
1405523d8:	4b 8d 14 20          	lea    (%r8,%r12,1),%rdx
1405523dc:	c6 45 0f ff          	movb   $0xff,0xf(%rbp)
1405523e0:	48 0f be 4a 28       	movsbq 0x28(%rdx),%rcx