140086faf:	83 e1 3f             	and    $0x3f,%ecx
140086fb2:	48 8b 1d b7 90 08 00 	mov    0x890b7(%rip),%rbx        # 0x140110070
140086fb9:	48 33 d8             	xor    %rax,%rbx
140086fbc:	48 d3 cb             	ror    %cl,%rbx
140086fbf:	8b 0f                	mov    (%rdi),%ecx
140086fc1:	e8 3e 69 00 00       	call   0x14008d904
140086fc6:	48 8b c3             	mov    %rbx,%rax
140086fc9:	48 8b 5c 24 30       	mov    0x30(%rsp),%rbx
140086fce:	48 83 c4 20          	add    $0x20,%rsp
140086fd2:	5f                   	pop    %rdi
140086fd3:	c3                   	ret
140086fd4:	48 89 54 24 10       	mov    %rdx,0x10(%rsp)
140086fd9:	89 4c 24 08          	mov    %ecx,0x8(%rsp)
140086fdd:	55                   	push   %rbp
140086fde:	48 8b ec             	mov    %rsp,%rbp
140086fe1:	48 83 ec 40          	sub    $0x40,%rsp
140086fe5:	e8 96 64 00 00       	call   0x14008d480
140086fea:	48 8d 45 10          	lea    0x10(%rbp),%rax
140086fee:	48 89 45 e8          	mov    %rax,-0x18(%rbp)
140086ff2:	4c 8d 4d 28          	lea    0x28(%rbp),%r9
140086ff6:	48 8d 45 18          	lea    0x18(%rbp),%rax
140086ffa:	48 89 45 f0          	mov    %rax,-0x10(%rbp)
140086ffe:	4c 8d 45 e8          	lea    -0x18(%rbp),%r8
140087002:	b8 04 00 00 00       	mov    $0x4,%eax
140087007:	48 8d 55 e0          	lea    -0x20(%rbp),%rdx
14008700b:	48 8d 4d 20          	lea    0x20(%rbp),%rcx
14008700f:	89 45 28             	mov    %eax,0x28(%rbp)
140087012:	89 45 e0             	mov    %eax,-0x20(%rbp)
140087015:	e8 a2 02 00 00       	call   0x1400872bc
14008701a:	48 83 c4 40          	add    $0x40,%rsp
14008701e:	5d                   	pop    %rbp
14008701f:	c3                   	ret
140087020:	48 89 5c 24 18       	mov    %rbx,0x18(%rsp)
140087025:	48 89 74 24 20       	mov    %rsi,0x20(%rsp)
14008702a:	55                   	push   %rbp
14008702b:	57                   	push   %rdi
14008702c:	41 55                	push   %r13
14008702e:	41 56                	push   %r14
140087030:	41 57                	push   %r15
140087032:	48 8b ec             	mov    %rsp,%rbp
140087035:	48 83 ec 40          	sub    $0x40,%rsp
140087039:	48 8b 41 08          	mov    0x8(%rcx),%rax
14008703d:	33 d2                	xor    %edx,%edx
14008703f:	48 8b f9             	mov    %rcx,%rdi
140087042:	48 8b 30             	mov    (%rax),%rsi
140087045:	48 8b 01             	mov    (%rcx),%rax
140087048:	44 8b 30             	mov    (%rax),%r14d
14008704b:	48 85 f6             	test   %rsi,%rsi
14008704e:	75 10                	jne    0x140087060
140087050:	41 8b ce             	mov    %r14d,%ecx
140087053:	e8 74 4c ff ff       	call   0x14007bccc
140087058:	4c 8b f0             	mov    %rax,%r14
14008705b:	e9 a8 00 00 00       	jmp    0x140087108
140087060:	4c 8b ce             	mov    %rsi,%r9
140087063:	48 c7 44 24 20 ff ff 	movq   $0x7fffffff,0x20(%rsp)
14008706a:	ff 7f
14008706c:	45 33 c0             	xor    %r8d,%r8d
14008706f:	48 8d 4d 38          	lea    0x38(%rbp),%rcx
140087073:	e8 00 13 01 00       	call   0x140098378
140087078:	83 f8 16             	cmp    $0x16,%eax
14008707b:	0f 84 0d 02 00 00    	je     0x14008728e
140087081:	83 f8 22             	cmp    $0x22,%eax
140087084:	0f 84 04 02 00 00    	je     0x14008728e
14008708a:	48 8b 4d 38          	mov    0x38(%rbp),%rcx
14008708e:	ba 02 00 00 00       	mov    $0x2,%edx
140087093:	e8 38 be fa ff       	call   0x140032ed0
140087098:	33 c9                	xor    %ecx,%ecx
14008709a:	48 8b d8             	mov    %rax,%rbx
14008709d:	48 85 c0             	test   %rax,%rax
1400870a0:	75 20                	jne    0x1400870c2
1400870a2:	e8 c9 bc fa ff       	call   0x140032d70
1400870a7:	33 c0                	xor    %eax,%eax
1400870a9:	4c 8d 5c 24 40       	lea    0x40(%rsp),%r11
1400870ae:	49 8b 5b 40          	mov    0x40(%r11),%rbx
1400870b2:	49 8b 73 48          	mov    0x48(%r11),%rsi
1400870b6:	49 8b e3             	mov    %r11,%rsp
1400870b9:	41 5f                	pop    %r15
1400870bb:	41 5e                	pop    %r14
1400870bd:	41 5d                	pop    %r13
1400870bf:	5f                   	pop    %rdi
1400870c0:	5d                   	pop    %rbp
1400870c1:	c3                   	ret
1400870c2:	4c 8b 45 38          	mov    0x38(%rbp),%r8
1400870c6:	4c 8b ce             	mov    %rsi,%r9
1400870c9:	48 83 4c 24 20 ff    	orq    $0xffffffffffffffff,0x20(%rsp)
1400870cf:	48 8b d3             	mov    %rbx,%rdx
1400870d2:	e8 a1 12 01 00       	call   0x140098378
1400870d7:	85 c0                	test   %eax,%eax
1400870d9:	74 17                	je     0x1400870f2
1400870db:	83 f8 16             	cmp    $0x16,%eax
1400870de:	0f 84 aa 01 00 00    	je     0x14008728e
1400870e4:	83 f8 22             	cmp    $0x22,%eax
1400870e7:	0f 84 a1 01 00 00    	je     0x14008728e
1400870ed:	48 8b cb             	mov    %rbx,%rcx
1400870f0:	eb b0                	jmp    0x1400870a2
1400870f2:	48 8b d3             	mov    %rbx,%rdx
1400870f5:	41 8b ce             	mov    %r14d,%ecx
1400870f8:	e8 cf 4b ff ff       	call   0x14007bccc
1400870fd:	48 8b cb             	mov    %rbx,%rcx
140087100:	4c 8b f0             	mov    %rax,%r14
140087103:	e8 68 bc fa ff       	call   0x140032d70
140087108:	4d 85 f6             	test   %r14,%r14
14008710b:	74 9a                	je     0x1400870a7
14008710d:	e8 12 54 00 00       	call   0x14008c524
140087112:	4c 8b e8             	mov    %rax,%r13
140087115:	4d 8b ce             	mov    %r14,%r9
140087118:	45 33 c0             	xor    %r8d,%r8d
14008711b:	33 d2                	xor    %edx,%edx
14008711d:	48 8b 88 90 00 00 00 	mov    0x90(%rax),%rcx
140087124:	48 89 4d f0          	mov    %rcx,-0x10(%rbp)
140087128:	48 8b 88 88 00 00 00 	mov    0x88(%rax),%rcx
14008712f:	48 8d 45 f0          	lea    -0x10(%rbp),%rax
140087133:	48 83 65 30 00       	andq   $0x0,0x30(%rbp)
140087138:	48 89 4d f8          	mov    %rcx,-0x8(%rbp)
14008713c:	48 8d 4d 30          	lea    0x30(%rbp),%rcx
140087140:	48 89 44 24 28       	mov    %rax,0x28(%rsp)
140087145:	48 83 64 24 20 00    	andq   $0x0,0x20(%rsp)
14008714b:	e8 ec 15 01 00       	call   0x14009873c
140087150:	85 c0                	test   %eax,%eax
140087152:	74 17                	je     0x14008716b
140087154:	83 f8 16             	cmp    $0x16,%eax
140087157:	0f 84 47 01 00 00    	je     0x1400872a4
14008715d:	83 f8 22             	cmp    $0x22,%eax
140087160:	0f 84 3e 01 00 00    	je     0x1400872a4
140087166:	e9 3c ff ff ff       	jmp    0x1400870a7
14008716b:	48 8b 4d 30          	mov    0x30(%rbp),%rcx
14008716f:	48 83 c1 04          	add    $0x4,%rcx
140087173:	e8 98 bc fa ff       	call   0x140032e10
140087178:	48 8b f0             	mov    %rax,%rsi
14008717b:	48 85 c0             	test   %rax,%rax
14008717e:	0f 84 23 ff ff ff    	je     0x1400870a7
140087184:	4c 8b 45 30          	mov    0x30(%rbp),%r8
140087188:	4c 8d 78 04          	lea    0x4(%rax),%r15
14008718c:	48 8d 45 f0          	lea    -0x10(%rbp),%rax
140087190:	4d 8b ce             	mov    %r14,%r9
140087193:	48 89 44 24 28       	mov    %rax,0x28(%rsp)
140087198:	49 8b d7             	mov    %r15,%rdx
14008719b:	48 83 4c 24 20 ff    	orq    $0xffffffffffffffff,0x20(%rsp)
1400871a1:	33 c9                	xor    %ecx,%ecx
1400871a3:	e8 94 15 01 00       	call   0x14009873c
1400871a8:	85 c0                	test   %eax,%eax
1400871aa:	74 1a                	je     0x1400871c6
1400871ac:	83 f8 16             	cmp    $0x16,%eax
1400871af:	0f 84 ef 00 00 00    	je     0x1400872a4
1400871b5:	83 f8 22             	cmp    $0x22,%eax
1400871b8:	0f 84 e6 00 00 00    	je     0x1400872a4
1400871be:	48 8b ce             	mov    %rsi,%rcx
1400871c1:	e9 dc fe ff ff       	jmp    0x1400870a2
1400871c6:	48 8b 07             	mov    (%rdi),%rax
1400871c9:	48 8b 5d f0          	mov    -0x10(%rbp),%rbx
1400871cd:	48 63 08             	movslq (%rax),%rcx
1400871d0:	48 c1 e1 05          	shl    $0x5,%rcx
1400871d4:	48 8b 54 19 30       	mov    0x30(%rcx,%rbx,1),%rdx
1400871d9:	48 85 d2             	test   %rdx,%rdx
1400871dc:	74 30                	je     0x14008720e
1400871de:	83 c8 ff             	or     $0xffffffff,%eax
1400871e1:	f0 0f c1 02          	lock xadd %eax,(%rdx)
1400871e5:	83 f8 01             	cmp    $0x1,%eax
1400871e8:	75 24                	jne    0x14008720e
1400871ea:	48 8b 07             	mov    (%rdi),%rax
1400871ed:	48 63 08             	movslq (%rax),%rcx
1400871f0:	48 c1 e1 05          	shl    $0x5,%rcx
1400871f4:	48 8b 4c 19 30       	mov    0x30(%rcx,%rbx,1),%rcx
1400871f9:	e8 72 bb fa ff       	call   0x140032d70
1400871fe:	48 8b 07             	mov    (%rdi),%rax
140087201:	48 63 08             	movslq (%rax),%rcx
140087204:	48 c1 e1 05          	shl    $0x5,%rcx
140087208:	48 83 64 19 30 00    	andq   $0x0,0x30(%rcx,%rbx,1)
14008720e:	41 8b 85 a8 03 00 00 	mov    0x3a8(%r13),%eax
140087215:	85 05 39 aa 07 00    	test   %eax,0x7aa39(%rip)        # 0x140101c54
14008721b:	75 44                	jne    0x140087261
14008721d:	48 8b 07             	mov    (%rdi),%rax
140087220:	48 63 08             	movslq (%rax),%rcx
140087223:	48 c1 e1 05          	shl    $0x5,%rcx
140087227:	48 8b 54 19 30       	mov    0x30(%rcx,%rbx,1),%rdx
14008722c:	48 85 d2             	test   %rdx,%rdx
14008722f:	74 30                	je     0x140087261
140087231:	83 c8 ff             	or     $0xffffffff,%eax
140087234:	f0 0f c1 02          	lock xadd %eax,(%rdx)
140087238:	83 f8 01             	cmp    $0x1,%eax
14008723b:	75 24                	jne    0x140087261
14008723d:	48 8b 07             	mov    (%rdi),%rax
140087240:	48 63 08             	movslq (%rax),%rcx
140087243:	48 c1 e1 05          	shl    $0x5,%rcx
140087247:	48 8b 4c 19 30       	mov    0x30(%rcx,%rbx,1),%rcx
14008724c:	e8 1f bb fa ff       	call   0x140032d70
140087251:	48 8b 07             	mov    (%rdi),%rax
140087254:	48 63 08             	movslq (%rax),%rcx
140087257:	48 c1 e1 05          	shl    $0x5,%rcx
14008725b:	48 83 64 19 30 00    	andq   $0x0,0x30(%rcx,%rbx,1)
140087261:	8b 4b 10             	mov    0x10(%rbx),%ecx
140087264:	49 8b c7             	mov    %r15,%rax
140087267:	89 0e                	mov    %ecx,(%rsi)
140087269:	48 8b 0f             	mov    (%rdi),%rcx
14008726c:	48 63 11             	movslq (%rcx),%rdx
14008726f:	48 c1 e2 05          	shl    $0x5,%rdx
140087273:	48 89 74 1a 30       	mov    %rsi,0x30(%rdx,%rbx,1)
140087278:	48 8b 0f             	mov    (%rdi),%rcx
14008727b:	48 63 11             	movslq (%rcx),%rdx
14008727e:	48 ff c2             	inc    %rdx
140087281:	48 c1 e2 05          	shl    $0x5,%rdx
140087285:	4c 89 3c 1a          	mov    %r15,(%rdx,%rbx,1)
140087289:	e9 1b fe ff ff       	jmp    0x1400870a9
14008728e:	48 83 64 24 20 00    	andq   $0x0,0x20(%rsp)
140087294:	45 33 c9             	xor    %r9d,%r9d
140087297:	45 33 c0             	xor    %r8d,%r8d
14008729a:	33 d2                	xor    %edx,%edx
14008729c:	33 c9                	xor    %ecx,%ecx
14008729e:	e8 61 75 00 00       	call   0x14008e804
1400872a3:	cc                   	int3
1400872a4:	48 83 64 24 20 00    	andq   $0x0,0x20(%rsp)
1400872aa:	45 33 c9             	xor    %r9d,%r9d
1400872ad:	45 33 c0             	xor    %r8d,%r8d
1400872b0:	33 d2                	xor    %edx,%edx
1400872b2:	33 c9                	xor    %ecx,%ecx
1400872b4:	e8 4b 75 00 00       	call   0x14008e804
1400872b9:	cc                   	int3
1400872ba:	cc                   	int3
1400872bb:	cc                   	int3
1400872bc:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
1400872c1:	4c 89 4c 24 20       	mov    %r9,0x20(%rsp)
1400872c6:	57                   	push   %rdi
1400872c7:	48 83 ec 20          	sub    $0x20,%rsp
1400872cb:	49 8b d9             	mov    %r9,%rbx
1400872ce:	49 8b f8             	mov    %r8,%rdi
1400872d1:	8b 0a                	mov    (%rdx),%ecx
1400872d3:	e8 10 66 00 00       	call   0x14008d8e8
1400872d8:	90                   	nop
1400872d9:	48 8b cf             	mov    %rdi,%rcx
1400872dc:	e8 3f fd ff ff       	call   0x140087020
1400872e1:	48 8b f8             	mov    %rax,%rdi
1400872e4:	8b 0b                	mov    (%rbx),%ecx
1400872e6:	e8 19 66 00 00       	call   0x14008d904
1400872eb:	48 8b c7             	mov    %rdi,%rax
1400872ee:	48 8b 5c 24 30       	mov    0x30(%rsp),%rbx
1400872f3:	48 83 c4 20          	add    $0x20,%rsp
1400872f7:	5f                   	pop    %rdi
1400872f8:	c3                   	ret
1400872f9:	cc                   	int3
1400872fa:	cc                   	int3
1400872fb:	cc                   	int3
1400872fc:	cc                   	int3
1400872fd:	cc                   	int3
1400872fe:	cc                   	int3
1400872ff:	cc                   	int3
140087300:	cc                   	int3
140087301:	cc                   	int3
140087302:	cc                   	int3
140087303:	cc                   	int3
140087304:	cc                   	int3
140087305:	cc                   	int3
140087306:	66 66 0f 1f 84 00 00 	data16 nopw 0x0(%rax,%rax,1)
14008730d:	00 00 00
140087310:	48 2b d1             	sub    %rcx,%rdx
140087313:	f6 c1 07             	test   $0x7,%cl
140087316:	74 14                	je     0x14008732c
140087318:	0f b6 01             	movzbl (%rcx),%eax
14008731b:	3a 04 0a             	cmp    (%rdx,%rcx,1),%al
14008731e:	75 4f                	jne    0x14008736f
140087320:	48 ff c1             	inc    %rcx
140087323:	84 c0                	test   %al,%al
140087325:	74 45                	je     0x14008736c
140087327:	f6 c1 07             	test   $0x7,%cl
14008732a:	75 ec                	jne    0x140087318
14008732c:	49 bb 80 80 80 80 80 	movabs $0x8080808080808080,%r11
140087333:	80 80 80
140087336:	49 ba ff fe fe fe fe 	movabs $0xfefefefefefefeff,%r10
14008733d:	fe fe fe
140087340:	67 8d 04 0a          	lea    (%edx,%ecx,1),%eax
140087344:	25 ff 0f 00 00       	and    $0xfff,%eax
140087349:	3d f8 0f 00 00       	cmp    $0xff8,%eax
14008734e:	77 c8                	ja     0x140087318
140087350:	48 8b 01             	mov    (%rcx),%rax
140087353:	48 3b 04 0a          	cmp    (%rdx,%rcx,1),%rax
140087357:	75 bf                	jne    0x140087318
140087359:	4e 8d 0c 10          	lea    (%rax,%r10,1),%r9
14008735d:	48 f7 d0             	not    %rax
140087360:	48 83 c1 08          	add    $0x8,%rcx
140087364:	49 23 c1             	and    %r9,%rax
140087367:	49 85 c3             	test   %rax,%r11
14008736a:	74 d4                	je     0x140087340
14008736c:	33 c0                	xor    %eax,%eax
14008736e:	c3                   	ret
14008736f:	48 1b c0             	sbb    %rax,%rax
140087372:	48 83 c8 01          	or     $0x1,%rax
140087376:	c3                   	ret
140087377:	cc                   	int3
140087378:	cc                   	int3
140087379:	cc                   	int3
14008737a:	cc                   	int3
14008737b:	cc                   	int3
14008737c:	cc                   	int3
14008737d:	cc                   	int3
14008737e:	cc                   	int3
14008737f:	cc                   	int3
140087380:	cc                   	int3
140087381:	cc                   	int3
140087382:	cc                   	int3
140087383:	cc                   	int3
140087384:	cc                   	int3
140087385:	cc                   	int3
140087386:	66 66 0f 1f 84 00 00 	data16 nopw 0x0(%rax,%rax,1)
14008738d:	00 00 00
140087390:	4c 8b d9             	mov    %rcx,%r11
140087393:	f6 c1 07             	test   $0x7,%cl
140087396:	74 12                	je     0x1400873aa
140087398:	8a 01                	mov    (%rcx),%al
14008739a:	84 c0                	test   %al,%al
14008739c:	0f 84 91 00 00 00    	je     0x140087433
1400873a2:	48 ff c1             	inc    %rcx
1400873a5:	f6 c1 07             	test   $0x7,%cl
1400873a8:	75 ee                	jne    0x140087398
1400873aa:	48 8b 01             	mov    (%rcx),%rax
1400873ad:	4c 8b d0             	mov    %rax,%r10
1400873b0:	49 b9 ff fe fe fe fe 	movabs $0x7efefefefefefeff,%r9
1400873b7:	fe fe 7e
1400873ba:	4d 03 ca             	add    %r10,%r9
1400873bd:	49 83 f2 ff          	xor    $0xffffffffffffffff,%r10
1400873c1:	4d 33 d1             	xor    %r9,%r10
1400873c4:	48 83 c1 08          	add    $0x8,%rcx
1400873c8:	49 b9 00 01 01 01 01 	movabs $0x8101010101010100,%r9
1400873cf:	01 01 81
1400873d2:	4d 85 d1             	test   %r10,%r9
1400873d5:	74 d3                	je     0x1400873aa
1400873d7:	48 83 e9 08          	sub    $0x8,%rcx
1400873db:	84 c0                	test   %al,%al
1400873dd:	74 54                	je     0x140087433
1400873df:	48 ff c1             	inc    %rcx
1400873e2:	84 e4                	test   %ah,%ah
1400873e4:	74 4d                	je     0x140087433
1400873e6:	48 ff c1             	inc    %rcx
1400873e9:	48 c1 e8 10          	shr    $0x10,%rax
1400873ed:	84 c0                	test   %al,%al
1400873ef:	74 42                	je     0x140087433
1400873f1:	48 ff c1             	inc    %rcx
1400873f4:	84 e4                	test   %ah,%ah
1400873f6:	74 3b                	je     0x140087433
1400873f8:	48 ff c1             	inc    %rcx
1400873fb:	48 c1 e8 10          	shr    $0x10,%rax
1400873ff:	84 c0                	test   %al,%al
140087401:	74 30                	je     0x140087433
140087403:	48 ff c1             	inc    %rcx
140087406:	84 e4                	test   %ah,%ah
140087408:	74 29                	je     0x140087433
14008740a:	48 ff c1             	inc    %rcx
14008740d:	c1 e8 10             	shr    $0x10,%eax
140087410:	84 c0                	test   %al,%al
140087412:	74 1f                	je     0x140087433
140087414:	48 ff c1             	inc    %rcx
140087417:	84 e4                	test   %ah,%ah