140540eff:	cc                   	int3
140540f00:	40 53                	rex push %rbx
140540f02:	48 83 ec 20          	sub    $0x20,%rsp
140540f06:	48 8b da             	mov    %rdx,%rbx
140540f09:	48 8b 4a 20          	mov    0x20(%rdx),%rcx
140540f0d:	48 85 c9             	test   %rcx,%rcx
140540f10:	74 20                	je     0x140540f32
140540f12:	8b 41 10             	mov    0x10(%rcx),%eax
140540f15:	ff c8                	dec    %eax
140540f17:	89 41 10             	mov    %eax,0x10(%rcx)
140540f1a:	85 c0                	test   %eax,%eax
140540f1c:	7f 14                	jg     0x140540f32
140540f1e:	78 61                	js     0x140540f81
140540f20:	48 8b 01             	mov    (%rcx),%rax
140540f23:	ba 01 00 00 00       	mov    $0x1,%edx
140540f28:	48 8b 00             	mov    (%rax),%rax
140540f2b:	ff 15 ef 2a a4 00    	call   *0xa42aef(%rip)        # 0x140f83a20
140540f31:	90                   	nop
140540f32:	48 8b 53 18          	mov    0x18(%rbx),%rdx
140540f36:	48 83 fa 0f          	cmp    $0xf,%rdx
140540f3a:	76 2c                	jbe    0x140540f68
140540f3c:	48 ff c2             	inc    %rdx
140540f3f:	48 8b 0b             	mov    (%rbx),%rcx
140540f42:	48 81 fa 00 10 00 00 	cmp    $0x1000,%rdx
140540f49:	72 18                	jb     0x140540f63
140540f4b:	48 83 c2 27          	add    $0x27,%rdx
140540f4f:	4c 8b 41 f8          	mov    -0x8(%rcx),%r8
140540f53:	49 2b c8             	sub    %r8,%rcx
140540f56:	48 8d 41 f8          	lea    -0x8(%rcx),%rax
140540f5a:	48 83 f8 1f          	cmp    $0x1f,%rax
140540f5e:	77 2c                	ja     0x140540f8c
140540f60:	49 8b c8             	mov    %r8,%rcx
140540f63:	e8 dc a1 8d 00       	call   0x140e1b144
140540f68:	48 c7 43 10 00 00 00 	movq   $0x0,0x10(%rbx)
140540f6f:	00
140540f70:	48 c7 43 18 0f 00 00 	movq   $0xf,0x18(%rbx)
140540f77:	00
140540f78:	c6 03 00             	movb   $0x0,(%rbx)
140540f7b:	48 83 c4 20          	add    $0x20,%rsp
140540f7f:	5b                   	pop    %rbx
140540f80:	c3                   	ret
140540f81:	b9 02 00 00 00       	mov    $0x2,%ecx
140540f86:	e8 75 97 24 00       	call   0x14078a700
140540f8b:	90                   	nop
140540f8c:	e8 13 92 8e 00       	call   0x140e2a1a4
140540f91:	cc                   	int3
140540f92:	cc                   	int3
140540f93:	cc                   	int3
140540f94:	cc                   	int3
140540f95:	cc                   	int3
140540f96:	cc                   	int3
140540f97:	cc                   	int3
140540f98:	cc                   	int3
140540f99:	cc                   	int3
140540f9a:	cc                   	int3
140540f9b:	cc                   	int3
140540f9c:	cc                   	int3
140540f9d:	cc                   	int3
140540f9e:	cc                   	int3
140540f9f:	cc                   	int3
140540fa0:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
140540fa5:	48 89 6c 24 10       	mov    %rbp,0x10(%rsp)
140540faa:	48 89 74 24 18       	mov    %rsi,0x18(%rsp)
140540faf:	57                   	push   %rdi
140540fb0:	41 54                	push   %r12
140540fb2:	41 55                	push   %r13
140540fb4:	41 56                	push   %r14
140540fb6:	41 57                	push   %r15
140540fb8:	48 83 ec 40          	sub    $0x40,%rsp
140540fbc:	49 8b e9             	mov    %r9,%rbp
140540fbf:	49 8b d8             	mov    %r8,%rbx
140540fc2:	4c 8b fa             	mov    %rdx,%r15
140540fc5:	4c 8b e9             	mov    %rcx,%r13
140540fc8:	4d 8b 50 10          	mov    0x10(%r8),%r10
140540fcc:	49 83 78 18 0f       	cmpq   $0xf,0x18(%r8)
140540fd1:	76 03                	jbe    0x140540fd6
140540fd3:	4d 8b 00             	mov    (%r8),%r8
140540fd6:	48 bf 25 23 22 84 e4 	movabs $0xcbf29ce484222325,%rdi
140540fdd:	9c f2 cb
140540fe0:	33 d2                	xor    %edx,%edx
140540fe2:	4d 85 d2             	test   %r10,%r10
140540fe5:	74 1e                	je     0x140541005
140540fe7:	48 b9 b3 01 00 00 00 	movabs $0x100000001b3,%rcx
140540fee:	01 00 00
140540ff1:	41 0f b6 04 10       	movzbl (%r8,%rdx,1),%eax
140540ff6:	48 33 f8             	xor    %rax,%rdi
140540ff9:	48 0f af f9          	imul   %rcx,%rdi
140540ffd:	48 ff c2             	inc    %rdx
140541000:	49 3b d2             	cmp    %r10,%rdx
140541003:	72 ec                	jb     0x140540ff1
140541005:	4c 8b cf             	mov    %rdi,%r9
140541008:	4c 8b c3             	mov    %rbx,%r8
14054100b:	48 8d 54 24 20       	lea    0x20(%rsp),%rdx
140541010:	49 8b cd             	mov    %r13,%rcx
140541013:	e8 e8 31 cd ff       	call   0x140214200
140541018:	48 8b 44 24 28       	mov    0x28(%rsp),%rax
14054101d:	48 85 c0             	test   %rax,%rax
140541020:	74 0d                	je     0x14054102f
140541022:	49 89 07             	mov    %rax,(%r15)
140541025:	41 c6 47 08 00       	movb   $0x0,0x8(%r15)
14054102a:	e9 26 02 00 00       	jmp    0x140541255
14054102f:	48 b8 92 24 49 92 24 	movabs $0x492492492492492,%rax
140541036:	49 92 04
140541039:	49 39 45 10          	cmp    %rax,0x10(%r13)
14054103d:	0f 84 35 02 00 00    	je     0x140541278
140541043:	4d 8d 65 08          	lea    0x8(%r13),%r12
140541047:	4c 89 64 24 30       	mov    %r12,0x30(%rsp)
14054104c:	48 c7 44 24 38 00 00 	movq   $0x0,0x38(%rsp)
140541053:	00 00
140541055:	b9 38 00 00 00       	mov    $0x38,%ecx
14054105a:	e8 a9 a0 8d 00       	call   0x140e1b108
14054105f:	48 8b f0             	mov    %rax,%rsi
140541062:	48 89 44 24 38       	mov    %rax,0x38(%rsp)
140541067:	48 8b d3             	mov    %rbx,%rdx
14054106a:	48 8d 48 10          	lea    0x10(%rax),%rcx
14054106e:	e8 cd 79 c6 ff       	call   0x1401a8a40
140541073:	48 8b 4d 00          	mov    0x0(%rbp),%rcx
140541077:	48 c7 45 00 00 00 00 	movq   $0x0,0x0(%rbp)
14054107e:	00
14054107f:	48 89 4e 30          	mov    %rcx,0x30(%rsi)
140541083:	49 8b 4d 10          	mov    0x10(%r13),%rcx
140541087:	f3 41 0f 10 5d 00    	movss  0x0(%r13),%xmm3
14054108d:	48 83 c1 01          	add    $0x1,%rcx
140541091:	0f 57 c0             	xorps  %xmm0,%xmm0
140541094:	78 07                	js     0x14054109d
140541096:	f3 48 0f 2a c1       	cvtsi2ss %rcx,%xmm0
14054109b:	eb 15                	jmp    0x1405410b2
14054109d:	48 8b c1             	mov    %rcx,%rax
1405410a0:	48 d1 e8             	shr    $1,%rax
1405410a3:	83 e1 01             	and    $0x1,%ecx
1405410a6:	48 0b c1             	or     %rcx,%rax
1405410a9:	f3 48 0f 2a c0       	cvtsi2ss %rax,%xmm0
1405410ae:	f3 0f 58 c0          	addss  %xmm0,%xmm0
1405410b2:	49 8b 5d 38          	mov    0x38(%r13),%rbx
1405410b6:	0f 57 d2             	xorps  %xmm2,%xmm2
1405410b9:	48 85 db             	test   %rbx,%rbx
1405410bc:	78 07                	js     0x1405410c5
1405410be:	f3 48 0f 2a d3       	cvtsi2ss %rbx,%xmm2
1405410c3:	eb 18                	jmp    0x1405410dd
1405410c5:	48 8b cb             	mov    %rbx,%rcx
1405410c8:	48 d1 e9             	shr    $1,%rcx
1405410cb:	48 8b c3             	mov    %rbx,%rax
1405410ce:	83 e0 01             	and    $0x1,%eax
1405410d1:	48 0b c8             	or     %rax,%rcx
1405410d4:	f3 48 0f 2a d1       	cvtsi2ss %rcx,%xmm2
1405410d9:	f3 0f 58 d2          	addss  %xmm2,%xmm2
1405410dd:	0f 28 c8             	movaps %xmm0,%xmm1
1405410e0:	f3 0f 5e ca          	divss  %xmm2,%xmm1
1405410e4:	0f 2f cb             	comiss %xmm3,%xmm1
1405410e7:	0f 86 10 01 00 00    	jbe    0x1405411fd
1405410ed:	f3 0f 5e c3          	divss  %xmm3,%xmm0
1405410f1:	e8 2a 00 8f 00       	call   0x140e31120
1405410f6:	33 c9                	xor    %ecx,%ecx
1405410f8:	f3 0f 10 0d 64 d5 a6 	movss  0xa6d564(%rip),%xmm1        # 0x140fae664
1405410ff:	00
140541100:	0f 2f c1             	comiss %xmm1,%xmm0
140541103:	72 16                	jb     0x14054111b
140541105:	f3 0f 5c c1          	subss  %xmm1,%xmm0
140541109:	0f 2f c1             	comiss %xmm1,%xmm0
14054110c:	73 0d                	jae    0x14054111b
14054110e:	48 b8 00 00 00 00 00 	movabs $0x8000000000000000,%rax
140541115:	00 00 80
140541118:	48 8b c8             	mov    %rax,%rcx
14054111b:	f3 48 0f 2c c0       	cvttss2si %xmm0,%rax
140541120:	48 03 c1             	add    %rcx,%rax
140541123:	b9 08 00 00 00       	mov    $0x8,%ecx
140541128:	48 3b c1             	cmp    %rcx,%rax
14054112b:	48 0f 47 c8          	cmova  %rax,%rcx
14054112f:	48 3b d9             	cmp    %rcx,%rbx
140541132:	73 19                	jae    0x14054114d
140541134:	48 81 fb 00 02 00 00 	cmp    $0x200,%rbx
14054113b:	73 0d                	jae    0x14054114a
14054113d:	48 8d 1c dd 00 00 00 	lea    0x0(,%rbx,8),%rbx
140541144:	00
140541145:	48 3b d9             	cmp    %rcx,%rbx
140541148:	73 03                	jae    0x14054114d
14054114a:	48 8b d9             	mov    %rcx,%rbx
14054114d:	48 8b d3             	mov    %rbx,%rdx
140541150:	49 8b cd             	mov    %r13,%rcx
140541153:	e8 28 bb 00 00       	call   0x14054cc80
140541158:	49 8b 45 30          	mov    0x30(%r13),%rax
14054115c:	48 23 c7             	and    %rdi,%rax
14054115f:	48 03 c0             	add    %rax,%rax
140541162:	49 8b 55 18          	mov    0x18(%r13),%rdx
140541166:	48 8b 5c c2 08       	mov    0x8(%rdx,%rax,8),%rbx
14054116b:	49 8b 0c 24          	mov    (%r12),%rcx
14054116f:	48 3b d9             	cmp    %rcx,%rbx
140541172:	75 07                	jne    0x14054117b
140541174:	48 89 4c 24 20       	mov    %rcx,0x20(%rsp)
140541179:	eb 6e                	jmp    0x1405411e9
14054117b:	4c 8b 24 c2          	mov    (%rdx,%rax,8),%r12
14054117f:	48 8b 6e 20          	mov    0x20(%rsi),%rbp
140541183:	0f 1f 40 00          	nopl   0x0(%rax)
140541187:	66 0f 1f 84 00 00 00 	nopw   0x0(%rax,%rax,1)
14054118e:	00 00
140541190:	48 8d 53 10          	lea    0x10(%rbx),%rdx
140541194:	48 8b 42 10          	mov    0x10(%rdx),%rax
140541198:	48 83 7a 18 0f       	cmpq   $0xf,0x18(%rdx)
14054119d:	76 03                	jbe    0x1405411a2
14054119f:	48 8b 12             	mov    (%rdx),%rdx
1405411a2:	48 8d 4e 10          	lea    0x10(%rsi),%rcx
1405411a6:	48 83 7e 28 0f       	cmpq   $0xf,0x28(%rsi)
1405411ab:	76 04                	jbe    0x1405411b1
1405411ad:	48 8b 4e 10          	mov    0x10(%rsi),%rcx
1405411b1:	48 3b e8             	cmp    %rax,%rbp
1405411b4:	75 0c                	jne    0x1405411c2
1405411b6:	4c 8b c5             	mov    %rbp,%r8
1405411b9:	e8 92 e8 99 00       	call   0x140edfa50
1405411be:	85 c0                	test   %eax,%eax
1405411c0:	74 0b                	je     0x1405411cd
1405411c2:	49 3b dc             	cmp    %r12,%rbx
1405411c5:	74 19                	je     0x1405411e0
1405411c7:	48 8b 5b 08          	mov    0x8(%rbx),%rbx
1405411cb:	eb c3                	jmp    0x140541190
1405411cd:	48 8b 03             	mov    (%rbx),%rax
1405411d0:	48 89 44 24 20       	mov    %rax,0x20(%rsp)
1405411d5:	48 89 5c 24 28       	mov    %rbx,0x28(%rsp)
1405411da:	4d 8d 65 08          	lea    0x8(%r13),%r12
1405411de:	eb 12                	jmp    0x1405411f2
1405411e0:	48 89 5c 24 20       	mov    %rbx,0x20(%rsp)
1405411e5:	4d 8d 65 08          	lea    0x8(%r13),%r12
1405411e9:	48 c7 44 24 28 00 00 	movq   $0x0,0x28(%rsp)
1405411f0:	00 00
1405411f2:	0f 28 44 24 20       	movaps 0x20(%rsp),%xmm0
1405411f7:	66 0f 7f 44 24 20    	movdqa %xmm0,0x20(%rsp)
1405411fd:	48 8b 54 24 20       	mov    0x20(%rsp),%rdx
140541202:	4c 8b 42 08          	mov    0x8(%rdx),%r8
140541206:	49 ff 45 10          	incq   0x10(%r13)
14054120a:	48 89 16             	mov    %rdx,(%rsi)
14054120d:	4c 89 46 08          	mov    %r8,0x8(%rsi)
140541211:	49 89 30             	mov    %rsi,(%r8)
140541214:	48 89 72 08          	mov    %rsi,0x8(%rdx)
140541218:	49 8b 4d 18          	mov    0x18(%r13),%rcx
14054121c:	49 8b 45 30          	mov    0x30(%r13),%rax
140541220:	48 23 c7             	and    %rdi,%rax
140541223:	48 03 c0             	add    %rax,%rax
140541226:	4c 8b 0c c1          	mov    (%rcx,%rax,8),%r9
14054122a:	4d 3b 0c 24          	cmp    (%r12),%r9
14054122e:	75 06                	jne    0x140541236
140541230:	48 89 34 c1          	mov    %rsi,(%rcx,%rax,8)
140541234:	eb 12                	jmp    0x140541248
140541236:	4c 3b ca             	cmp    %rdx,%r9
140541239:	75 06                	jne    0x140541241
14054123b:	48 89 34 c1          	mov    %rsi,(%rcx,%rax,8)
14054123f:	eb 0c                	jmp    0x14054124d
140541241:	4c 39 44 c1 08       	cmp    %r8,0x8(%rcx,%rax,8)
140541246:	75 05                	jne    0x14054124d
140541248:	48 89 74 c1 08       	mov    %rsi,0x8(%rcx,%rax,8)
14054124d:	49 89 37             	mov    %rsi,(%r15)
140541250:	41 c6 47 08 01       	movb   $0x1,0x8(%r15)
140541255:	49 8b c7             	mov    %r15,%rax
140541258:	48 8b 5c 24 70       	mov    0x70(%rsp),%rbx
14054125d:	48 8b 6c 24 78       	mov    0x78(%rsp),%rbp
140541262:	48 8b b4 24 80 00 00 	mov    0x80(%rsp),%rsi
140541269:	00
14054126a:	48 83 c4 40          	add    $0x40,%rsp
14054126e:	41 5f                	pop    %r15
140541270:	41 5e                	pop    %r14
140541272:	41 5d                	pop    %r13
140541274:	41 5c                	pop    %r12
140541276:	5f                   	pop    %rdi
140541277:	c3                   	ret
140541278:	48 8d 0d 21 d2 a6 00 	lea    0xa6d221(%rip),%rcx        # 0x140fae4a0
14054127f:	e8 30 a1 8b 00       	call   0x140dfb3b4
140541284:	cc                   	int3
140541285:	cc                   	int3
140541286:	cc                   	int3
140541287:	cc                   	int3
140541288:	cc                   	int3
140541289:	cc                   	int3
14054128a:	cc                   	int3
14054128b:	cc                   	int3
14054128c:	cc                   	int3
14054128d:	cc                   	int3
14054128e:	cc                   	int3
14054128f:	cc                   	int3
140541290:	48 89 5c 24 10       	mov    %rbx,0x10(%rsp)
140541295:	48 89 6c 24 18       	mov    %rbp,0x18(%rsp)
14054129a:	48 89 74 24 20       	mov    %rsi,0x20(%rsp)
14054129f:	57                   	push   %rdi
1405412a0:	41 54                	push   %r12
1405412a2:	41 55                	push   %r13
1405412a4:	41 56                	push   %r14
1405412a6:	41 57                	push   %r15
1405412a8:	48 83 ec 30          	sub    $0x30,%rsp
1405412ac:	4d 8b e1             	mov    %r9,%r12
1405412af:	49 8b f0             	mov    %r8,%rsi
1405412b2:	4c 8b fa             	mov    %rdx,%r15
1405412b5:	4c 8b e9             	mov    %rcx,%r13
1405412b8:	49 8b d0             	mov    %r8,%rdx
1405412bb:	e8 60 e5 ff ff       	call   0x14053f820
1405412c0:	48 89 44 24 60       	mov    %rax,0x60(%rsp)
1405412c5:	49 8b 4d 30          	mov    0x30(%r13),%rcx
1405412c9:	48 23 c8             	and    %rax,%rcx
1405412cc:	48 03 c9             	add    %rcx,%rcx
1405412cf:	49 8b 55 18          	mov    0x18(%r13),%rdx
1405412d3:	48 8b 5c ca 08       	mov    0x8(%rdx,%rcx,8),%rbx
1405412d8:	49 8d 45 08          	lea    0x8(%r13),%rax
1405412dc:	4c 8b 30             	mov    (%rax),%r14
1405412df:	49 3b de             	cmp    %r14,%rbx
1405412e2:	75 08                	jne    0x1405412ec
1405412e4:	49 8b de             	mov    %r14,%rbx
1405412e7:	49 8b ee             	mov    %r14,%rbp
1405412ea:	eb 39                	jmp    0x140541325
1405412ec:	48 8b 0c ca          	mov    (%rdx,%rcx,8),%rcx
1405412f0:	48 8b 16             	mov    (%rsi),%rdx
1405412f3:	48 3b 53 10          	cmp    0x10(%rbx),%rdx
1405412f7:	75 0a                	jne    0x140541303
1405412f9:	48 8b 43 18          	mov    0x18(%rbx),%rax
1405412fd:	48 39 46 08          	cmp    %rax,0x8(%rsi)
140541301:	74 0b                	je     0x14054130e
140541303:	48 3b d9             	cmp    %rcx,%rbx
140541306:	74 13                	je     0x14054131b
140541308:	48 8b 5b 08          	mov    0x8(%rbx),%rbx
14054130c:	eb e5                	jmp    0x1405412f3
14054130e:	49 89 1f             	mov    %rbx,(%r15)
140541311:	41 c6 47 08 00       	movb   $0x0,0x8(%r15)
140541316:	e9 f3 01 00 00       	jmp    0x14054150e
14054131b:	4c 8b f3             	mov    %rbx,%r14
14054131e:	48 8b eb             	mov    %rbx,%rbp
140541321:	49 8d 45 08          	lea    0x8(%r13),%rax
140541325:	48 b9 66 66 66 66 66 	movabs $0x666666666666666,%rcx
14054132c:	66 66 06
14054132f:	49 39 4d 10          	cmp    %rcx,0x10(%r13)
140541333:	0f 84 f5 01 00 00    	je     0x14054152e
140541339:	48 89 44 24 20       	mov    %rax,0x20(%rsp)
14054133e:	48 c7 44 24 28 00 00 	movq   $0x0,0x28(%rsp)
140541345:	00 00
140541347:	b9 28 00 00 00       	mov    $0x28,%ecx
14054134c:	e8 b7 9d 8d 00       	call   0x140e1b108
140541351:	48 8b f8             	mov    %rax,%rdi
140541354:	48 89 44 24 28       	mov    %rax,0x28(%rsp)
140541359:	0f 10 06             	movups (%rsi),%xmm0
14054135c:	0f 11 40 10          	movups %xmm0,0x10(%rax)
140541360:	49 8b 0c 24          	mov    (%r12),%rcx
140541364:	48 89 48 20          	mov    %rcx,0x20(%rax)
140541368:	49 8b 4d 10          	mov    0x10(%r13),%rcx
14054136c:	48 83 c1 01          	add    $0x1,%rcx
140541370:	0f 57 c0             	xorps  %xmm0,%xmm0
140541373:	78 07                	js     0x14054137c
140541375:	f3 48 0f 2a c1       	cvtsi2ss %rcx,%xmm0
14054137a:	eb 15                	jmp    0x140541391
14054137c:	48 8b c1             	mov    %rcx,%rax
14054137f:	48 d1 e8             	shr    $1,%rax
140541382:	83 e1 01             	and    $0x1,%ecx
140541385:	48 0b c1             	or     %rcx,%rax
140541388:	f3 48 0f 2a c0       	cvtsi2ss %rax,%xmm0
14054138d:	f3 0f 58 c0          	addss  %xmm0,%xmm0
140541391:	49 8b 75 38          	mov    0x38(%r13),%rsi
140541395:	f3 41 0f 10 5d 00    	movss  0x0(%r13),%xmm3