140558faf:	53                   	push   %rbx
140558fb0:	56                   	push   %rsi
140558fb1:	57                   	push   %rdi
140558fb2:	41 54                	push   %r12
140558fb4:	41 55                	push   %r13
140558fb6:	41 56                	push   %r14
140558fb8:	41 57                	push   %r15
140558fba:	48 83 ec 50          	sub    $0x50,%rsp
140558fbe:	4c 8b e2             	mov    %rdx,%r12
140558fc1:	48 8b f1             	mov    %rcx,%rsi
140558fc4:	4c 8b 19             	mov    (%rcx),%r11
140558fc7:	4c 8b d2             	mov    %rdx,%r10
140558fca:	4d 2b d3             	sub    %r11,%r10
140558fcd:	48 bb 39 8e e3 38 8e 	movabs $0xe38e38e38e38e39,%rbx
140558fd4:	e3 38 0e
140558fd7:	48 8b c3             	mov    %rbx,%rax
140558fda:	49 f7 ea             	imul   %r10
140558fdd:	4c 8b f2             	mov    %rdx,%r14
140558fe0:	49 c1 fe 02          	sar    $0x2,%r14
140558fe4:	49 8b c6             	mov    %r14,%rax
140558fe7:	48 c1 e8 3f          	shr    $0x3f,%rax
140558feb:	4c 03 f0             	add    %rax,%r14
140558fee:	48 8b 49 08          	mov    0x8(%rcx),%rcx
140558ff2:	49 2b cb             	sub    %r11,%rcx
140558ff5:	48 8b c3             	mov    %rbx,%rax
140558ff8:	48 f7 e9             	imul   %rcx
140558ffb:	48 c1 fa 02          	sar    $0x2,%rdx
140558fff:	48 8b c2             	mov    %rdx,%rax
140559002:	48 c1 e8 3f          	shr    $0x3f,%rax
140559006:	48 03 d0             	add    %rax,%rdx
140559009:	49 ba 8e e3 38 8e e3 	movabs $0x38e38e38e38e38e,%r10
140559010:	38 8e 03
140559013:	49 3b d2             	cmp    %r10,%rdx
140559016:	0f 84 4a 01 00 00    	je     0x140559166
14055901c:	4c 8d 6a 01          	lea    0x1(%rdx),%r13
140559020:	48 8b 4e 10          	mov    0x10(%rsi),%rcx
140559024:	49 2b cb             	sub    %r11,%rcx
140559027:	48 8b c3             	mov    %rbx,%rax
14055902a:	48 f7 e9             	imul   %rcx
14055902d:	48 c1 fa 02          	sar    $0x2,%rdx
140559031:	48 8b c2             	mov    %rdx,%rax
140559034:	48 c1 e8 3f          	shr    $0x3f,%rax
140559038:	48 03 d0             	add    %rax,%rdx
14055903b:	48 8b ca             	mov    %rdx,%rcx
14055903e:	48 d1 e9             	shr    $1,%rcx
140559041:	49 8b c2             	mov    %r10,%rax
140559044:	48 2b c1             	sub    %rcx,%rax
140559047:	48 3b d0             	cmp    %rax,%rdx
14055904a:	0f 87 10 01 00 00    	ja     0x140559160
140559050:	48 8d 04 11          	lea    (%rcx,%rdx,1),%rax
140559054:	49 8b fd             	mov    %r13,%rdi
140559057:	49 3b c5             	cmp    %r13,%rax
14055905a:	48 0f 43 f8          	cmovae %rax,%rdi
14055905e:	49 3b fa             	cmp    %r10,%rdi
140559061:	0f 87 f9 00 00 00    	ja     0x140559160
140559067:	48 8d 0c ff          	lea    (%rdi,%rdi,8),%rcx
14055906b:	48 c1 e1 03          	shl    $0x3,%rcx
14055906f:	48 89 7c 24 38       	mov    %rdi,0x38(%rsp)
140559074:	48 85 c9             	test   %rcx,%rcx
140559077:	75 09                	jne    0x140559082
140559079:	33 db                	xor    %ebx,%ebx
14055907b:	48 89 7c 24 38       	mov    %rdi,0x38(%rsp)
140559080:	eb 4d                	jmp    0x1405590cf
140559082:	48 81 f9 00 10 00 00 	cmp    $0x1000,%rcx
140559089:	72 2c                	jb     0x1405590b7
14055908b:	48 8d 41 27          	lea    0x27(%rcx),%rax
14055908f:	48 3b c1             	cmp    %rcx,%rax
140559092:	0f 86 c8 00 00 00    	jbe    0x140559160
140559098:	48 8b c8             	mov    %rax,%rcx
14055909b:	e8 68 20 8c 00       	call   0x140e1b108
1405590a0:	48 85 c0             	test   %rax,%rax
1405590a3:	0f 84 c3 00 00 00    	je     0x14055916c
1405590a9:	48 8d 58 27          	lea    0x27(%rax),%rbx
1405590ad:	48 83 e3 e0          	and    $0xffffffffffffffe0,%rbx
1405590b1:	48 89 43 f8          	mov    %rax,-0x8(%rbx)
1405590b5:	eb 08                	jmp    0x1405590bf
1405590b7:	e8 4c 20 8c 00       	call   0x140e1b108
1405590bc:	48 8b d8             	mov    %rax,%rbx
1405590bf:	4c 8b 84 24 a0 00 00 	mov    0xa0(%rsp),%r8
1405590c6:	00
1405590c7:	4c 8b 8c 24 a8 00 00 	mov    0xa8(%rsp),%r9
1405590ce:	00
1405590cf:	48 89 9c 24 98 00 00 	mov    %rbx,0x98(%rsp)
1405590d6:	00
1405590d7:	4b 8d 0c f6          	lea    (%r14,%r14,8),%rcx
1405590db:	4c 8d 34 cb          	lea    (%rbx,%rcx,8),%r14
1405590df:	4d 8d 7e 48          	lea    0x48(%r14),%r15
1405590e3:	4c 89 7c 24 40       	mov    %r15,0x40(%rsp)
1405590e8:	48 8b 8c 24 b0 00 00 	mov    0xb0(%rsp),%rcx
1405590ef:	00
1405590f0:	48 89 4c 24 20       	mov    %rcx,0x20(%rsp)
1405590f5:	49 8b d6             	mov    %r14,%rdx
1405590f8:	48 8b ce             	mov    %rsi,%rcx
1405590fb:	e8 60 21 00 00       	call   0x14055b260
140559100:	4c 89 74 24 30       	mov    %r14,0x30(%rsp)
140559105:	48 8b 56 08          	mov    0x8(%rsi),%rdx
140559109:	48 8b 0e             	mov    (%rsi),%rcx
14055910c:	4c 3b e2             	cmp    %rdx,%r12
14055910f:	75 05                	jne    0x140559116
140559111:	4c 8b fb             	mov    %rbx,%r15
140559114:	eb 1a                	jmp    0x140559130
140559116:	4c 8b ce             	mov    %rsi,%r9
140559119:	4c 8b c3             	mov    %rbx,%r8
14055911c:	49 8b d4             	mov    %r12,%rdx
14055911f:	e8 9c 08 00 00       	call   0x1405599c0
140559124:	48 89 5c 24 30       	mov    %rbx,0x30(%rsp)
140559129:	49 8b cc             	mov    %r12,%rcx
14055912c:	48 8b 56 08          	mov    0x8(%rsi),%rdx
140559130:	4c 8b ce             	mov    %rsi,%r9
140559133:	4d 8b c7             	mov    %r15,%r8
140559136:	e8 85 08 00 00       	call   0x1405599c0
14055913b:	90                   	nop
14055913c:	4c 8b cf             	mov    %rdi,%r9
14055913f:	4d 8b c5             	mov    %r13,%r8
140559142:	48 8b d3             	mov    %rbx,%rdx
140559145:	48 8b ce             	mov    %rsi,%rcx
140559148:	e8 13 80 00 00       	call   0x140561160
14055914d:	49 8b c6             	mov    %r14,%rax
140559150:	48 83 c4 50          	add    $0x50,%rsp
140559154:	41 5f                	pop    %r15
140559156:	41 5e                	pop    %r14
140559158:	41 5d                	pop    %r13
14055915a:	41 5c                	pop    %r12
14055915c:	5f                   	pop    %rdi
14055915d:	5e                   	pop    %rsi
14055915e:	5b                   	pop    %rbx
14055915f:	c3                   	ret
140559160:	e8 2b 40 c4 ff       	call   0x14019d190
140559165:	cc                   	int3
140559166:	e8 25 44 c4 ff       	call   0x14019d590
14055916b:	cc                   	int3
14055916c:	e8 33 10 8d 00       	call   0x140e2a1a4
140559171:	cc                   	int3
140559172:	cc                   	int3
140559173:	cc                   	int3
140559174:	cc                   	int3
140559175:	cc                   	int3
140559176:	cc                   	int3
140559177:	cc                   	int3
140559178:	cc                   	int3
140559179:	cc                   	int3
14055917a:	cc                   	int3
14055917b:	cc                   	int3
14055917c:	cc                   	int3
14055917d:	cc                   	int3
14055917e:	cc                   	int3
14055917f:	cc                   	int3
140559180:	4c 89 44 24 18       	mov    %r8,0x18(%rsp)
140559185:	48 89 4c 24 08       	mov    %rcx,0x8(%rsp)
14055918a:	53                   	push   %rbx
14055918b:	56                   	push   %rsi
14055918c:	57                   	push   %rdi
14055918d:	41 54                	push   %r12
14055918f:	41 55                	push   %r13
140559191:	41 56                	push   %r14
140559193:	41 57                	push   %r15
140559195:	48 83 ec 30          	sub    $0x30,%rsp
140559199:	4d 8b e9             	mov    %r9,%r13
14055919c:	4c 8b fa             	mov    %rdx,%r15
14055919f:	48 8b f1             	mov    %rcx,%rsi
1405591a2:	4c 8b 11             	mov    (%rcx),%r10
1405591a5:	4c 8b f2             	mov    %rdx,%r14
1405591a8:	4d 2b f2             	sub    %r10,%r14
1405591ab:	48 8b 41 08          	mov    0x8(%rcx),%rax
1405591af:	49 2b c2             	sub    %r10,%rax
1405591b2:	48 c1 f8 04          	sar    $0x4,%rax
1405591b6:	49 b8 ff ff ff ff ff 	movabs $0xfffffffffffffff,%r8
1405591bd:	ff ff 0f
1405591c0:	49 3b c0             	cmp    %r8,%rax
1405591c3:	0f 84 11 01 00 00    	je     0x1405592da
1405591c9:	4c 8d 60 01          	lea    0x1(%rax),%r12
1405591cd:	48 8b 49 10          	mov    0x10(%rcx),%rcx
1405591d1:	49 2b ca             	sub    %r10,%rcx
1405591d4:	48 c1 f9 04          	sar    $0x4,%rcx
1405591d8:	48 8b d1             	mov    %rcx,%rdx
1405591db:	48 d1 ea             	shr    $1,%rdx
1405591de:	49 8b c0             	mov    %r8,%rax
1405591e1:	48 2b c2             	sub    %rdx,%rax
1405591e4:	48 3b c8             	cmp    %rax,%rcx
1405591e7:	0f 87 e7 00 00 00    	ja     0x1405592d4
1405591ed:	48 8d 04 0a          	lea    (%rdx,%rcx,1),%rax
1405591f1:	49 8b fc             	mov    %r12,%rdi
1405591f4:	49 3b c4             	cmp    %r12,%rax
1405591f7:	48 0f 43 f8          	cmovae %rax,%rdi
1405591fb:	49 3b f8             	cmp    %r8,%rdi
1405591fe:	0f 87 d0 00 00 00    	ja     0x1405592d4
140559204:	48 8b cf             	mov    %rdi,%rcx
140559207:	48 c1 e1 04          	shl    $0x4,%rcx
14055920b:	48 89 7c 24 20       	mov    %rdi,0x20(%rsp)
140559210:	48 85 c9             	test   %rcx,%rcx
140559213:	75 09                	jne    0x14055921e
140559215:	33 db                	xor    %ebx,%ebx
140559217:	48 89 7c 24 20       	mov    %rdi,0x20(%rsp)
14055921c:	eb 3d                	jmp    0x14055925b
14055921e:	48 81 f9 00 10 00 00 	cmp    $0x1000,%rcx
140559225:	72 2c                	jb     0x140559253
140559227:	48 8d 41 27          	lea    0x27(%rcx),%rax
14055922b:	48 3b c1             	cmp    %rcx,%rax
14055922e:	0f 86 a0 00 00 00    	jbe    0x1405592d4
140559234:	48 8b c8             	mov    %rax,%rcx
140559237:	e8 cc 1e 8c 00       	call   0x140e1b108
14055923c:	48 85 c0             	test   %rax,%rax
14055923f:	0f 84 9b 00 00 00    	je     0x1405592e0
140559245:	48 8d 58 27          	lea    0x27(%rax),%rbx
140559249:	48 83 e3 e0          	and    $0xffffffffffffffe0,%rbx
14055924d:	48 89 43 f8          	mov    %rax,-0x8(%rbx)
140559251:	eb 08                	jmp    0x14055925b
140559253:	e8 b0 1e 8c 00       	call   0x140e1b108
140559258:	48 8b d8             	mov    %rax,%rbx
14055925b:	48 89 5c 24 78       	mov    %rbx,0x78(%rsp)
140559260:	49 83 e6 f0          	and    $0xfffffffffffffff0,%r14
140559264:	4c 03 f3             	add    %rbx,%r14
140559267:	49 8b 55 00          	mov    0x0(%r13),%rdx
14055926b:	48 8b 8c 24 80 00 00 	mov    0x80(%rsp),%rcx
140559272:	00
140559273:	48 8b 09             	mov    (%rcx),%rcx
140559276:	49 89 0e             	mov    %rcx,(%r14)
140559279:	49 89 56 08          	mov    %rdx,0x8(%r14)
14055927d:	4c 8b 46 08          	mov    0x8(%rsi),%r8
140559281:	48 8b 16             	mov    (%rsi),%rdx
140559284:	48 8b cb             	mov    %rbx,%rcx
140559287:	4d 3b f8             	cmp    %r8,%r15
14055928a:	75 05                	jne    0x140559291
14055928c:	4c 2b c2             	sub    %rdx,%r8
14055928f:	eb 19                	jmp    0x1405592aa
140559291:	4d 8b c7             	mov    %r15,%r8
140559294:	4c 2b c2             	sub    %rdx,%r8
140559297:	e8 74 5d 98 00       	call   0x140edf010
14055929c:	49 8d 4e 10          	lea    0x10(%r14),%rcx
1405592a0:	4c 8b 46 08          	mov    0x8(%rsi),%r8
1405592a4:	4d 2b c7             	sub    %r15,%r8
1405592a7:	49 8b d7             	mov    %r15,%rdx
1405592aa:	e8 61 5d 98 00       	call   0x140edf010
1405592af:	90                   	nop
1405592b0:	4c 8b cf             	mov    %rdi,%r9
1405592b3:	4d 8b c4             	mov    %r12,%r8
1405592b6:	48 8b d3             	mov    %rbx,%rdx
1405592b9:	48 8b ce             	mov    %rsi,%rcx
1405592bc:	e8 0f 7e 00 00       	call   0x1405610d0
1405592c1:	49 8b c6             	mov    %r14,%rax
1405592c4:	48 83 c4 30          	add    $0x30,%rsp
1405592c8:	41 5f                	pop    %r15
1405592ca:	41 5e                	pop    %r14
1405592cc:	41 5d                	pop    %r13
1405592ce:	41 5c                	pop    %r12
1405592d0:	5f                   	pop    %rdi
1405592d1:	5e                   	pop    %rsi
1405592d2:	5b                   	pop    %rbx
1405592d3:	c3                   	ret
1405592d4:	e8 b7 3e c4 ff       	call   0x14019d190
1405592d9:	cc                   	int3
1405592da:	e8 b1 42 c4 ff       	call   0x14019d590
1405592df:	cc                   	int3
1405592e0:	e8 bf 0e 8d 00       	call   0x140e2a1a4
1405592e5:	cc                   	int3
1405592e6:	cc                   	int3
1405592e7:	cc                   	int3
1405592e8:	cc                   	int3
1405592e9:	cc                   	int3
1405592ea:	cc                   	int3
1405592eb:	cc                   	int3
1405592ec:	cc                   	int3
1405592ed:	cc                   	int3
1405592ee:	cc                   	int3
1405592ef:	cc                   	int3
1405592f0:	48 89 4c 24 08       	mov    %rcx,0x8(%rsp)
1405592f5:	53                   	push   %rbx
1405592f6:	56                   	push   %rsi
1405592f7:	57                   	push   %rdi
1405592f8:	41 54                	push   %r12
1405592fa:	41 55                	push   %r13
1405592fc:	41 56                	push   %r14
1405592fe:	41 57                	push   %r15
140559300:	48 83 ec 20          	sub    $0x20,%rsp
140559304:	4d 8b e8             	mov    %r8,%r13
140559307:	4c 8b e2             	mov    %rdx,%r12
14055930a:	48 8b f9             	mov    %rcx,%rdi
14055930d:	48 8b 01             	mov    (%rcx),%rax
140559310:	4c 8b fa             	mov    %rdx,%r15
140559313:	4c 2b f8             	sub    %rax,%r15
140559316:	4c 8b 71 08          	mov    0x8(%rcx),%r14
14055931a:	4c 2b f0             	sub    %rax,%r14
14055931d:	49 c1 fe 04          	sar    $0x4,%r14
140559321:	49 b8 ff ff ff ff ff 	movabs $0xfffffffffffffff,%r8
140559328:	ff ff 0f
14055932b:	4d 3b f0             	cmp    %r8,%r14
14055932e:	0f 84 41 01 00 00    	je     0x140559475
140559334:	49 ff c6             	inc    %r14
140559337:	48 8b 49 10          	mov    0x10(%rcx),%rcx
14055933b:	48 2b c8             	sub    %rax,%rcx
14055933e:	48 c1 f9 04          	sar    $0x4,%rcx
140559342:	48 8b d1             	mov    %rcx,%rdx
140559345:	48 d1 ea             	shr    $1,%rdx
140559348:	49 8b c0             	mov    %r8,%rax
14055934b:	48 2b c2             	sub    %rdx,%rax
14055934e:	48 3b c8             	cmp    %rax,%rcx
140559351:	0f 87 18 01 00 00    	ja     0x14055946f
140559357:	48 8d 04 0a          	lea    (%rdx,%rcx,1),%rax
14055935b:	49 8b ce             	mov    %r14,%rcx
14055935e:	49 3b c6             	cmp    %r14,%rax
140559361:	48 0f 43 c8          	cmovae %rax,%rcx
140559365:	49 3b c8             	cmp    %r8,%rcx
140559368:	0f 87 01 01 00 00    	ja     0x14055946f
14055936e:	48 8b f1             	mov    %rcx,%rsi
140559371:	48 c1 e6 04          	shl    $0x4,%rsi
140559375:	48 89 4c 24 78       	mov    %rcx,0x78(%rsp)
14055937a:	48 85 f6             	test   %rsi,%rsi
14055937d:	75 09                	jne    0x140559388
14055937f:	33 db                	xor    %ebx,%ebx
140559381:	48 89 4c 24 78       	mov    %rcx,0x78(%rsp)
140559386:	eb 3d                	jmp    0x1405593c5
140559388:	48 81 fe 00 10 00 00 	cmp    $0x1000,%rsi
14055938f:	72 29                	jb     0x1405593ba
140559391:	48 8d 4e 27          	lea    0x27(%rsi),%rcx
140559395:	48 3b ce             	cmp    %rsi,%rcx
140559398:	0f 86 d1 00 00 00    	jbe    0x14055946f
14055939e:	e8 65 1d 8c 00       	call   0x140e1b108
1405593a3:	48 85 c0             	test   %rax,%rax
1405593a6:	0f 84 cf 00 00 00    	je     0x14055947b
1405593ac:	48 8d 58 27          	lea    0x27(%rax),%rbx
1405593b0:	48 83 e3 e0          	and    $0xffffffffffffffe0,%rbx
1405593b4:	48 89 43 f8          	mov    %rax,-0x8(%rbx)
1405593b8:	eb 0b                	jmp    0x1405593c5
1405593ba:	48 8b ce             	mov    %rsi,%rcx
1405593bd:	e8 46 1d 8c 00       	call   0x140e1b108
1405593c2:	48 8b d8             	mov    %rax,%rbx
1405593c5:	48 89 5c 24 68       	mov    %rbx,0x68(%rsp)
1405593ca:	49 83 e7 f0          	and    $0xfffffffffffffff0,%r15
1405593ce:	4c 03 fb             	add    %rbx,%r15
1405593d1:	41 0f 10 45 00       	movups 0x0(%r13),%xmm0
1405593d6:	41 0f 11 07          	movups %xmm0,(%r15)
1405593da:	4c 8b 47 08          	mov    0x8(%rdi),%r8
1405593de:	48 8b 17             	mov    (%rdi),%rdx
1405593e1:	48 8b cb             	mov    %rbx,%rcx
1405593e4:	4d 3b e0             	cmp    %r8,%r12
1405593e7:	75 05                	jne    0x1405593ee
1405593e9:	4c 2b c2             	sub    %rdx,%r8
1405593ec:	eb 19                	jmp    0x140559407
1405593ee:	4d 8b c4             	mov    %r12,%r8
1405593f1:	4c 2b c2             	sub    %rdx,%r8
1405593f4:	e8 17 5c 98 00       	call   0x140edf010
1405593f9:	49 8d 4f 10          	lea    0x10(%r15),%rcx
1405593fd:	4c 8b 47 08          	mov    0x8(%rdi),%r8
140559401:	4d 2b c4             	sub    %r12,%r8
140559404:	49 8b d4             	mov    %r12,%rdx
140559407:	e8 04 5c 98 00       	call   0x140edf010
14055940c:	90                   	nop
14055940d:	48 8b 0f             	mov    (%rdi),%rcx
140559410:	48 85 c9             	test   %rcx,%rcx
140559413:	74 31                	je     0x140559446