14030a234:	57                   	push   %rdi
14030a235:	41 55                	push   %r13
14030a237:	41 56                	push   %r14
14030a239:	41 57                	push   %r15
14030a23b:	48 83 ec 50          	sub    $0x50,%rsp
14030a23f:	4d 8b f8             	mov    %r8,%r15
14030a242:	48 8b f2             	mov    %rdx,%rsi
14030a245:	48 8b 02             	mov    (%rdx),%rax
14030a248:	44 8b 50 08          	mov    0x8(%rax),%r10d
14030a24c:	8b 78 0c             	mov    0xc(%rax),%edi
14030a24f:	48 89 7c 24 30       	mov    %rdi,0x30(%rsp)
14030a254:	8b 40 10             	mov    0x10(%rax),%eax
14030a257:	48 89 44 24 28       	mov    %rax,0x28(%rsp)
14030a25c:	41 8b d9             	mov    %r9d,%ebx
14030a25f:	49 0f af da          	imul   %r10,%rbx
14030a263:	48 0f af 9c 24 a0 00 	imul   0xa0(%rsp),%rbx
14030a26a:	00 00
14030a26c:	48 83 c3 07          	add    $0x7,%rbx
14030a270:	48 c1 eb 03          	shr    $0x3,%rbx
14030a274:	44 0f af 94 24 a0 00 	imul   0xa0(%rsp),%r10d
14030a27b:	00 00
14030a27d:	41 8b c2             	mov    %r10d,%eax
14030a280:	41 0f af c1          	imul   %r9d,%eax
14030a284:	83 e0 07             	and    $0x7,%eax
14030a287:	33 d2                	xor    %edx,%edx
14030a289:	48 f7 b4 24 a0 00 00 	divq   0xa0(%rsp)
14030a290:	00
14030a291:	4c 8b e8             	mov    %rax,%r13
14030a294:	48 89 44 24 20       	mov    %rax,0x20(%rsp)
14030a299:	48 8b d1             	mov    %rcx,%rdx
14030a29c:	49 8d 4b c8          	lea    -0x38(%r11),%rcx
14030a2a0:	e8 c3 fe ff ff       	call   0x14030a168
14030a2a5:	48 8b 4c 24 40       	mov    0x40(%rsp),%rcx
14030a2aa:	48 8b 11             	mov    (%rcx),%rdx
14030a2ad:	48 8b 42 10          	mov    0x10(%rdx),%rax
14030a2b1:	ff 15 81 29 80 00    	call   *0x802981(%rip)        # 0x140b0cc38
14030a2b7:	48 8b d0             	mov    %rax,%rdx
14030a2ba:	48 89 44 24 38       	mov    %rax,0x38(%rsp)
14030a2bf:	45 33 f6             	xor    %r14d,%r14d
14030a2c2:	48 85 ff             	test   %rdi,%rdi
14030a2c5:	0f 84 22 01 00 00    	je     0x14030a3ed
14030a2cb:	41 8d 6e 08          	lea    0x8(%r14),%ebp
14030a2cf:	40 2a ac 24 a0 00 00 	sub    0xa0(%rsp),%bpl
14030a2d6:	00
14030a2d7:	45 33 db             	xor    %r11d,%r11d
14030a2da:	33 ff                	xor    %edi,%edi
14030a2dc:	48 8b 06             	mov    (%rsi),%rax
14030a2df:	4c 8b 40 18          	mov    0x18(%rax),%r8
14030a2e3:	4c 03 c7             	add    %rdi,%r8
14030a2e6:	48 8b 0a             	mov    (%rdx),%rcx
14030a2e9:	48 39 4a 08          	cmp    %rcx,0x8(%rdx)
14030a2ed:	0f 84 f3 00 00 00    	je     0x14030a3e6
14030a2f3:	4d 8d 14 0b          	lea    (%r11,%rcx,1),%r10
14030a2f7:	33 c9                	xor    %ecx,%ecx
14030a2f9:	48 8d 53 ff          	lea    -0x1(%rbx),%rdx
14030a2fd:	48 85 d2             	test   %rdx,%rdx
14030a300:	74 30                	je     0x14030a332
14030a302:	46 0f b6 0c 11       	movzbl (%rcx,%r10,1),%r9d
14030a307:	49 8b 37             	mov    (%r15),%rsi
14030a30a:	49 8b 47 08          	mov    0x8(%r15),%rax
14030a30e:	48 2b c6             	sub    %rsi,%rax
14030a311:	48 d1 f8             	sar    $1,%rax
14030a314:	4c 3b c8             	cmp    %rax,%r9
14030a317:	0f 83 c9 00 00 00    	jae    0x14030a3e6
14030a31d:	42 0f b7 04 4e       	movzwl (%rsi,%r9,2),%eax
14030a322:	66 41 89 00          	mov    %ax,(%r8)
14030a326:	49 83 c0 02          	add    $0x2,%r8
14030a32a:	48 ff c1             	inc    %rcx
14030a32d:	48 3b ca             	cmp    %rdx,%rcx
14030a330:	72 d0                	jb     0x14030a302
14030a332:	45 0f b6 54 1a ff    	movzbl -0x1(%r10,%rbx,1),%r10d
14030a338:	45 85 ed             	test   %r13d,%r13d
14030a33b:	75 21                	jne    0x14030a35e
14030a33d:	49 8b 17             	mov    (%r15),%rdx
14030a340:	49 8b 47 08          	mov    0x8(%r15),%rax
14030a344:	48 2b c2             	sub    %rdx,%rax
14030a347:	48 d1 f8             	sar    $1,%rax
14030a34a:	4c 3b d0             	cmp    %rax,%r10
14030a34d:	0f 83 93 00 00 00    	jae    0x14030a3e6
14030a353:	42 0f b7 04 52       	movzwl (%rdx,%r10,2),%eax
14030a358:	66 41 89 00          	mov    %ax,(%r8)
14030a35c:	eb 64                	jmp    0x14030a3c2
14030a35e:	48 8b 8c 24 a0 00 00 	mov    0xa0(%rsp),%rcx
14030a365:	00
14030a366:	41 b9 01 00 00 00    	mov    $0x1,%r9d
14030a36c:	41 d3 e1             	shl    %cl,%r9d
14030a36f:	41 ff c9             	dec    %r9d
14030a372:	41 8b f5             	mov    %r13d,%esi
14030a375:	45 85 ed             	test   %r13d,%r13d
14030a378:	74 48                	je     0x14030a3c2
14030a37a:	44 0f b6 ed          	movzbl %bpl,%r13d
14030a37e:	41 8a cd             	mov    %r13b,%cl
14030a381:	41 0f b6 c2          	movzbl %r10b,%eax
14030a385:	d3 e8                	shr    %cl,%eax
14030a387:	69 c0 ff 00 00 00    	imul   $0xff,%eax,%eax
14030a38d:	99                   	cltd
14030a38e:	41 f7 f9             	idiv   %r9d
14030a391:	8a c8                	mov    %al,%cl
14030a393:	f6 d1                	not    %cl
14030a395:	0f b6 d1             	movzbl %cl,%edx
14030a398:	0f b6 c0             	movzbl %al,%eax
14030a39b:	83 bc 24 a8 00 00 00 	cmpl   $0x1,0xa8(%rsp)
14030a3a2:	01
14030a3a3:	0f 44 d0             	cmove  %eax,%edx
14030a3a6:	41 88 10             	mov    %dl,(%r8)
14030a3a9:	49 ff c0             	inc    %r8
14030a3ac:	48 8b 8c 24 a0 00 00 	mov    0xa0(%rsp),%rcx
14030a3b3:	00
14030a3b4:	41 d2 e2             	shl    %cl,%r10b
14030a3b7:	48 83 ee 01          	sub    $0x1,%rsi
14030a3bb:	75 c1                	jne    0x14030a37e
14030a3bd:	4c 8b 6c 24 20       	mov    0x20(%rsp),%r13
14030a3c2:	49 ff c6             	inc    %r14
14030a3c5:	48 03 7c 24 28       	add    0x28(%rsp),%rdi
14030a3ca:	4c 03 db             	add    %rbx,%r11
14030a3cd:	4c 3b 74 24 30       	cmp    0x30(%rsp),%r14
14030a3d2:	73 19                	jae    0x14030a3ed
14030a3d4:	48 8b 54 24 38       	mov    0x38(%rsp),%rdx
14030a3d9:	48 8b b4 24 88 00 00 	mov    0x88(%rsp),%rsi
14030a3e0:	00
14030a3e1:	e9 f6 fe ff ff       	jmp    0x14030a2dc
14030a3e6:	ff 15 ac 25 80 00    	call   *0x8025ac(%rip)        # 0x140b0c998
14030a3ec:	90                   	nop
14030a3ed:	48 8b 4c 24 48       	mov    0x48(%rsp),%rcx
14030a3f2:	48 85 c9             	test   %rcx,%rcx
14030a3f5:	74 3f                	je     0x14030a436
14030a3f7:	83 cf ff             	or     $0xffffffff,%edi
14030a3fa:	8b c7                	mov    %edi,%eax
14030a3fc:	f0 0f c1 41 08       	lock xadd %eax,0x8(%rcx)
14030a401:	03 c7                	add    %edi,%eax
14030a403:	75 31                	jne    0x14030a436
14030a405:	48 8b 5c 24 48       	mov    0x48(%rsp),%rbx
14030a40a:	48 8b 03             	mov    (%rbx),%rax
14030a40d:	48 8b cb             	mov    %rbx,%rcx
14030a410:	48 8b 00             	mov    (%rax),%rax
14030a413:	ff 15 1f 28 80 00    	call   *0x80281f(%rip)        # 0x140b0cc38
14030a419:	8b c7                	mov    %edi,%eax
14030a41b:	f0 0f c1 43 0c       	lock xadd %eax,0xc(%rbx)
14030a420:	03 c7                	add    %edi,%eax
14030a422:	75 12                	jne    0x14030a436
14030a424:	48 8b 4c 24 48       	mov    0x48(%rsp),%rcx
14030a429:	48 8b 01             	mov    (%rcx),%rax
14030a42c:	48 8b 40 08          	mov    0x8(%rax),%rax
14030a430:	ff 15 02 28 80 00    	call   *0x802802(%rip)        # 0x140b0cc38
14030a436:	4c 8d 5c 24 50       	lea    0x50(%rsp),%r11
14030a43b:	49 8b 5b 30          	mov    0x30(%r11),%rbx
14030a43f:	49 8b 6b 40          	mov    0x40(%r11),%rbp
14030a443:	49 8b e3             	mov    %r11,%rsp
14030a446:	41 5f                	pop    %r15
14030a448:	41 5e                	pop    %r14
14030a44a:	41 5d                	pop    %r13
14030a44c:	5f                   	pop    %rdi
14030a44d:	5e                   	pop    %rsi
14030a44e:	c3                   	ret
14030a44f:	90                   	nop
14030a450:	4c 8b dc             	mov    %rsp,%r11
14030a453:	49 89 5b 08          	mov    %rbx,0x8(%r11)
14030a457:	49 89 6b 18          	mov    %rbp,0x18(%r11)
14030a45b:	49 89 53 10          	mov    %rdx,0x10(%r11)
14030a45f:	56                   	push   %rsi
14030a460:	57                   	push   %rdi
14030a461:	41 55                	push   %r13
14030a463:	41 56                	push   %r14
14030a465:	41 57                	push   %r15
14030a467:	48 83 ec 50          	sub    $0x50,%rsp
14030a46b:	4d 8b f8             	mov    %r8,%r15
14030a46e:	48 8b f2             	mov    %rdx,%rsi
14030a471:	48 8b 02             	mov    (%rdx),%rax
14030a474:	44 8b 50 08          	mov    0x8(%rax),%r10d
14030a478:	8b 78 0c             	mov    0xc(%rax),%edi
14030a47b:	48 89 7c 24 30       	mov    %rdi,0x30(%rsp)
14030a480:	8b 40 10             	mov    0x10(%rax),%eax
14030a483:	48 89 44 24 28       	mov    %rax,0x28(%rsp)
14030a488:	41 8b d9             	mov    %r9d,%ebx
14030a48b:	49 0f af da          	imul   %r10,%rbx
14030a48f:	48 0f af 9c 24 a0 00 	imul   0xa0(%rsp),%rbx
14030a496:	00 00
14030a498:	48 83 c3 07          	add    $0x7,%rbx
14030a49c:	48 c1 eb 03          	shr    $0x3,%rbx
14030a4a0:	44 0f af 94 24 a0 00 	imul   0xa0(%rsp),%r10d
14030a4a7:	00 00
14030a4a9:	41 8b c2             	mov    %r10d,%eax
14030a4ac:	41 0f af c1          	imul   %r9d,%eax
14030a4b0:	83 e0 07             	and    $0x7,%eax
14030a4b3:	33 d2                	xor    %edx,%edx
14030a4b5:	48 f7 b4 24 a0 00 00 	divq   0xa0(%rsp)
14030a4bc:	00
14030a4bd:	4c 8b e8             	mov    %rax,%r13
14030a4c0:	48 89 44 24 20       	mov    %rax,0x20(%rsp)
14030a4c5:	48 8b d1             	mov    %rcx,%rdx
14030a4c8:	49 8d 4b c8          	lea    -0x38(%r11),%rcx
14030a4cc:	e8 97 fc ff ff       	call   0x14030a168
14030a4d1:	48 8b 4c 24 40       	mov    0x40(%rsp),%rcx
14030a4d6:	48 8b 11             	mov    (%rcx),%rdx
14030a4d9:	48 8b 42 10          	mov    0x10(%rdx),%rax
14030a4dd:	ff 15 55 27 80 00    	call   *0x802755(%rip)        # 0x140b0cc38
14030a4e3:	48 8b d0             	mov    %rax,%rdx
14030a4e6:	48 89 44 24 38       	mov    %rax,0x38(%rsp)
14030a4eb:	45 33 f6             	xor    %r14d,%r14d
14030a4ee:	48 85 ff             	test   %rdi,%rdi
14030a4f1:	0f 84 20 01 00 00    	je     0x14030a617
14030a4f7:	41 8d 6e 08          	lea    0x8(%r14),%ebp
14030a4fb:	40 2a ac 24 a0 00 00 	sub    0xa0(%rsp),%bpl
14030a502:	00
14030a503:	45 33 db             	xor    %r11d,%r11d
14030a506:	33 ff                	xor    %edi,%edi
14030a508:	48 8b 06             	mov    (%rsi),%rax
14030a50b:	4c 8b 40 18          	mov    0x18(%rax),%r8
14030a50f:	4c 03 c7             	add    %rdi,%r8
14030a512:	48 8b 0a             	mov    (%rdx),%rcx
14030a515:	48 39 4a 08          	cmp    %rcx,0x8(%rdx)
14030a519:	0f 84 f1 00 00 00    	je     0x14030a610
14030a51f:	4d 8d 14 0b          	lea    (%r11,%rcx,1),%r10
14030a523:	33 c9                	xor    %ecx,%ecx
14030a525:	48 8d 53 ff          	lea    -0x1(%rbx),%rdx
14030a529:	48 85 d2             	test   %rdx,%rdx
14030a52c:	74 2f                	je     0x14030a55d
14030a52e:	46 0f b6 0c 11       	movzbl (%rcx,%r10,1),%r9d
14030a533:	49 8b 37             	mov    (%r15),%rsi
14030a536:	49 8b 47 08          	mov    0x8(%r15),%rax
14030a53a:	48 2b c6             	sub    %rsi,%rax
14030a53d:	48 c1 f8 02          	sar    $0x2,%rax
14030a541:	4c 3b c8             	cmp    %rax,%r9
14030a544:	0f 83 c6 00 00 00    	jae    0x14030a610
14030a54a:	42 8b 04 8e          	mov    (%rsi,%r9,4),%eax
14030a54e:	41 89 00             	mov    %eax,(%r8)
14030a551:	49 83 c0 04          	add    $0x4,%r8
14030a555:	48 ff c1             	inc    %rcx
14030a558:	48 3b ca             	cmp    %rdx,%rcx
14030a55b:	72 d1                	jb     0x14030a52e
14030a55d:	45 0f b6 54 1a ff    	movzbl -0x1(%r10,%rbx,1),%r10d
14030a563:	45 85 ed             	test   %r13d,%r13d
14030a566:	75 20                	jne    0x14030a588
14030a568:	49 8b 17             	mov    (%r15),%rdx
14030a56b:	49 8b 47 08          	mov    0x8(%r15),%rax
14030a56f:	48 2b c2             	sub    %rdx,%rax
14030a572:	48 c1 f8 02          	sar    $0x2,%rax
14030a576:	4c 3b d0             	cmp    %rax,%r10
14030a579:	0f 83 91 00 00 00    	jae    0x14030a610
14030a57f:	42 8b 04 92          	mov    (%rdx,%r10,4),%eax
14030a583:	41 89 00             	mov    %eax,(%r8)
14030a586:	eb 64                	jmp    0x14030a5ec
14030a588:	48 8b 8c 24 a0 00 00 	mov    0xa0(%rsp),%rcx
14030a58f:	00
14030a590:	41 b9 01 00 00 00    	mov    $0x1,%r9d
14030a596:	41 d3 e1             	shl    %cl,%r9d
14030a599:	41 ff c9             	dec    %r9d
14030a59c:	41 8b f5             	mov    %r13d,%esi
14030a59f:	45 85 ed             	test   %r13d,%r13d
14030a5a2:	74 48                	je     0x14030a5ec
14030a5a4:	44 0f b6 ed          	movzbl %bpl,%r13d
14030a5a8:	41 8a cd             	mov    %r13b,%cl
14030a5ab:	41 0f b6 c2          	movzbl %r10b,%eax
14030a5af:	d3 e8                	shr    %cl,%eax
14030a5b1:	69 c0 ff 00 00 00    	imul   $0xff,%eax,%eax
14030a5b7:	99                   	cltd
14030a5b8:	41 f7 f9             	idiv   %r9d
14030a5bb:	8a c8                	mov    %al,%cl
14030a5bd:	f6 d1                	not    %cl
14030a5bf:	0f b6 d1             	movzbl %cl,%edx
14030a5c2:	0f b6 c0             	movzbl %al,%eax
14030a5c5:	83 bc 24 a8 00 00 00 	cmpl   $0x1,0xa8(%rsp)
14030a5cc:	01
14030a5cd:	0f 44 d0             	cmove  %eax,%edx
14030a5d0:	41 88 10             	mov    %dl,(%r8)
14030a5d3:	49 ff c0             	inc    %r8
14030a5d6:	48 8b 8c 24 a0 00 00 	mov    0xa0(%rsp),%rcx
14030a5dd:	00
14030a5de:	41 d2 e2             	shl    %cl,%r10b
14030a5e1:	48 83 ee 01          	sub    $0x1,%rsi
14030a5e5:	75 c1                	jne    0x14030a5a8
14030a5e7:	4c 8b 6c 24 20       	mov    0x20(%rsp),%r13
14030a5ec:	49 ff c6             	inc    %r14
14030a5ef:	48 03 7c 24 28       	add    0x28(%rsp),%rdi
14030a5f4:	4c 03 db             	add    %rbx,%r11
14030a5f7:	4c 3b 74 24 30       	cmp    0x30(%rsp),%r14
14030a5fc:	73 19                	jae    0x14030a617
14030a5fe:	48 8b 54 24 38       	mov    0x38(%rsp),%rdx
14030a603:	48 8b b4 24 88 00 00 	mov    0x88(%rsp),%rsi
14030a60a:	00
14030a60b:	e9 f8 fe ff ff       	jmp    0x14030a508
14030a610:	ff 15 82 23 80 00    	call   *0x802382(%rip)        # 0x140b0c998
14030a616:	90                   	nop
14030a617:	48 8b 4c 24 48       	mov    0x48(%rsp),%rcx
14030a61c:	48 85 c9             	test   %rcx,%rcx
14030a61f:	74 3f                	je     0x14030a660
14030a621:	83 cf ff             	or     $0xffffffff,%edi
14030a624:	8b c7                	mov    %edi,%eax
14030a626:	f0 0f c1 41 08       	lock xadd %eax,0x8(%rcx)
14030a62b:	03 c7                	add    %edi,%eax
14030a62d:	75 31                	jne    0x14030a660
14030a62f:	48 8b 5c 24 48       	mov    0x48(%rsp),%rbx
14030a634:	48 8b 03             	mov    (%rbx),%rax
14030a637:	48 8b cb             	mov    %rbx,%rcx
14030a63a:	48 8b 00             	mov    (%rax),%rax
14030a63d:	ff 15 f5 25 80 00    	call   *0x8025f5(%rip)        # 0x140b0cc38
14030a643:	8b c7                	mov    %edi,%eax
14030a645:	f0 0f c1 43 0c       	lock xadd %eax,0xc(%rbx)
14030a64a:	03 c7                	add    %edi,%eax
14030a64c:	75 12                	jne    0x14030a660
14030a64e:	48 8b 4c 24 48       	mov    0x48(%rsp),%rcx
14030a653:	48 8b 01             	mov    (%rcx),%rax
14030a656:	48 8b 40 08          	mov    0x8(%rax),%rax
14030a65a:	ff 15 d8 25 80 00    	call   *0x8025d8(%rip)        # 0x140b0cc38
14030a660:	4c 8d 5c 24 50       	lea    0x50(%rsp),%r11
14030a665:	49 8b 5b 30          	mov    0x30(%r11),%rbx
14030a669:	49 8b 6b 40          	mov    0x40(%r11),%rbp
14030a66d:	49 8b e3             	mov    %r11,%rsp
14030a670:	41 5f                	pop    %r15
14030a672:	41 5e                	pop    %r14
14030a674:	41 5d                	pop    %r13
14030a676:	5f                   	pop    %rdi
14030a677:	5e                   	pop    %rsi
14030a678:	c3                   	ret
14030a679:	90                   	nop
14030a67a:	90                   	nop
14030a67b:	90                   	nop
14030a67c:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
14030a681:	48 89 74 24 10       	mov    %rsi,0x10(%rsp)
14030a686:	57                   	push   %rdi
14030a687:	48 83 ec 20          	sub    $0x20,%rsp
14030a68b:	48 8b 39             	mov    (%rcx),%rdi
14030a68e:	48 8b da             	mov    %rdx,%rbx
14030a691:	48 8b 0a             	mov    (%rdx),%rcx
14030a694:	48 8b 07             	mov    (%rdi),%rax
14030a697:	48 8b 30             	mov    (%rax),%rsi
14030a69a:	48 85 c9             	test   %rcx,%rcx
14030a69d:	74 11                	je     0x14030a6b0
14030a69f:	48 83 22 00          	andq   $0x0,(%rdx)
14030a6a3:	48 8b 01             	mov    (%rcx),%rax
14030a6a6:	48 8b 40 10          	mov    0x10(%rax),%rax
14030a6aa:	ff 15 88 25 80 00    	call   *0x802588(%rip)        # 0x140b0cc38
14030a6b0:	4c 8b c3             	mov    %rbx,%r8
14030a6b3:	48 8d 15 9e aa 83 00 	lea    0x83aa9e(%rip),%rdx        # 0x140b45158
14030a6ba:	48 8b cf             	mov    %rdi,%rcx
14030a6bd:	48 8b c6             	mov    %rsi,%rax
14030a6c0:	48 8b 5c 24 30       	mov    0x30(%rsp),%rbx
14030a6c5:	48 8b 74 24 38       	mov    0x38(%rsp),%rsi
14030a6ca:	48 83 c4 20          	add    $0x20,%rsp
14030a6ce:	5f                   	pop    %rdi
14030a6cf:	48 ff 25 62 25 80 00 	rex.W jmp *0x802562(%rip)        # 0x140b0cc38
14030a6d6:	cc                   	int3
14030a6d7:	90                   	nop
14030a6d8:	48 3b ca             	cmp    %rdx,%rcx
14030a6db:	74 68                	je     0x14030a745
14030a6dd:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
14030a6e2:	57                   	push   %rdi
14030a6e3:	48 83 ec 20          	sub    $0x20,%rsp
14030a6e7:	48 8b fa             	mov    %rdx,%rdi
14030a6ea:	48 8b d9             	mov    %rcx,%rbx