5855a5:	8b 4f 08             	mov    0x8(%edi),%ecx
5855a8:	49                   	dec    %ecx
5855a9:	8d 50 ff             	lea    -0x1(%eax),%edx
5855ac:	8b c2                	mov    %edx,%eax
5855ae:	83 e2 03             	and    $0x3,%edx
5855b1:	c1 e8 02             	shr    $0x2,%eax
5855b4:	23 c8                	and    %eax,%ecx
5855b6:	8b 47 04             	mov    0x4(%edi),%eax
5855b9:	8b 04 88             	mov    (%eax,%ecx,4),%eax
5855bc:	8b 0c 90             	mov    (%eax,%edx,4),%ecx
5855bf:	8b 45 d0             	mov    -0x30(%ebp),%eax
5855c2:	2b 47 40             	sub    0x40(%edi),%eax
5855c5:	50                   	push   %eax
5855c6:	e8 a5 c9 ff ff       	call   0x581f70
5855cb:	8b 47 0c             	mov    0xc(%edi),%eax
5855ce:	03 47 10             	add    0x10(%edi),%eax
5855d1:	8b 4f 08             	mov    0x8(%edi),%ecx
5855d4:	49                   	dec    %ecx
5855d5:	8d 50 ff             	lea    -0x1(%eax),%edx
5855d8:	8b c2                	mov    %edx,%eax
5855da:	83 e2 03             	and    $0x3,%edx
5855dd:	c1 e8 02             	shr    $0x2,%eax
5855e0:	23 c8                	and    %eax,%ecx
5855e2:	8b 47 04             	mov    0x4(%edi),%eax
5855e5:	8b 04 88             	mov    (%eax,%ecx,4),%eax
5855e8:	8b 0c 90             	mov    (%eax,%edx,4),%ecx
5855eb:	8b 45 d4             	mov    -0x2c(%ebp),%eax
5855ee:	2b 47 40             	sub    0x40(%edi),%eax
5855f1:	50                   	push   %eax
5855f2:	e8 69 c9 ff ff       	call   0x581f60
5855f7:	6a 2e                	push   $0x2e
5855f9:	68 e8 34 6c 00       	push   $0x6c34e8
5855fe:	8d 4d d8             	lea    -0x28(%ebp),%ecx
585601:	c7 45 e8 00 00 00 00 	movl   $0x0,-0x18(%ebp)
585608:	c7 45 ec 0f 00 00 00 	movl   $0xf,-0x14(%ebp)
58560f:	c6 45 d8 00          	movb   $0x0,-0x28(%ebp)
585613:	e8 28 fc eb ff       	call   0x445240
585618:	6a 00                	push   $0x0
58561a:	8d 45 cc             	lea    -0x34(%ebp),%eax
58561d:	c7 45 fc 06 00 00 00 	movl   $0x6,-0x4(%ebp)
585624:	50                   	push   %eax
585625:	8d 45 d8             	lea    -0x28(%ebp),%eax
585628:	8b cf                	mov    %edi,%ecx
58562a:	50                   	push   %eax
58562b:	e8 60 d9 ff ff       	call   0x582f90
585630:	8b 55 ec             	mov    -0x14(%ebp),%edx
585633:	8a d8                	mov    %al,%bl
585635:	83 fa 10             	cmp    $0x10,%edx
585638:	72 28                	jb     0x585662
58563a:	8b 4d d8             	mov    -0x28(%ebp),%ecx
58563d:	42                   	inc    %edx
58563e:	8b c1                	mov    %ecx,%eax
585640:	81 fa 00 10 00 00    	cmp    $0x1000,%edx
585646:	72 10                	jb     0x585658
585648:	8b 49 fc             	mov    -0x4(%ecx),%ecx
58564b:	83 c2 23             	add    $0x23,%edx
58564e:	2b c1                	sub    %ecx,%eax
585650:	83 c0 fc             	add    $0xfffffffc,%eax
585653:	83 f8 1f             	cmp    $0x1f,%eax
585656:	77 45                	ja     0x58569d
585658:	52                   	push   %edx
585659:	51                   	push   %ecx
58565a:	e8 13 ba 05 00       	call   0x5e1072
58565f:	83 c4 08             	add    $0x8,%esp
585662:	8a c3                	mov    %bl,%al
585664:	8b 4d f4             	mov    -0xc(%ebp),%ecx
585667:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
58566e:	59                   	pop    %ecx
58566f:	5f                   	pop    %edi
585670:	5e                   	pop    %esi
585671:	5b                   	pop    %ebx
585672:	8b 4d f0             	mov    -0x10(%ebp),%ecx
585675:	33 cd                	xor    %ebp,%ecx
585677:	e8 5e be 05 00       	call   0x5e14da
58567c:	8b e5                	mov    %ebp,%esp
58567e:	5d                   	pop    %ebp
58567f:	c3                   	ret
585680:	68 c4 34 6c 00       	push   $0x6c34c4
585685:	8d 4d d8             	lea    -0x28(%ebp),%ecx
585688:	e8 e3 43 ee ff       	call   0x469a70
58568d:	8d 45 d8             	lea    -0x28(%ebp),%eax
585690:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
585697:	50                   	push   %eax
585698:	e8 53 ca ff ff       	call   0x5820f0
58569d:	e8 8d 78 06 00       	call   0x5ecf2f
5856a2:	66 90                	xchg   %ax,%ax
5856a4:	8e 53 58             	mov    0x58(%ebx),%ss
5856a7:	00 04 55 58 00 b5 53 	add    %al,0x53b50058(,%edx,2)
5856ae:	58                   	pop    %eax
5856af:	00 04 55 58 00 8f 54 	add    %al,0x548f0058(,%edx,2)
5856b6:	58                   	pop    %eax
5856b7:	00 dc                	add    %bl,%ah
5856b9:	53                   	push   %ebx
5856ba:	58                   	pop    %eax
5856bb:	00 a1 54 58 00 de    	add    %ah,-0x21ffa7ac(%ecx)
5856c1:	54                   	push   %esp
5856c2:	58                   	pop    %eax
5856c3:	00 f1                	add    %dh,%cl
5856c5:	54                   	push   %esp
5856c6:	58                   	pop    %eax
5856c7:	00 04 55 58 00 cc cc 	add    %al,-0x3333ffa8(,%edx,2)
5856ce:	cc                   	int3
5856cf:	cc                   	int3
5856d0:	55                   	push   %ebp
5856d1:	8b ec                	mov    %esp,%ebp
5856d3:	83 ec 0c             	sub    $0xc,%esp
5856d6:	53                   	push   %ebx
5856d7:	56                   	push   %esi
5856d8:	8b f1                	mov    %ecx,%esi
5856da:	57                   	push   %edi
5856db:	8b 5e 24             	mov    0x24(%esi),%ebx
5856de:	66 90                	xchg   %ax,%ax
5856e0:	8d 45 f4             	lea    -0xc(%ebp),%eax
5856e3:	8b ce                	mov    %esi,%ecx
5856e5:	50                   	push   %eax
5856e6:	e8 a5 f8 ff ff       	call   0x584f90
5856eb:	84 c0                	test   %al,%al
5856ed:	0f 85 fa 00 00 00    	jne    0x5857ed
5856f3:	8b 4e 24             	mov    0x24(%esi),%ecx
5856f6:	8d 7e 14             	lea    0x14(%esi),%edi
5856f9:	3b d9                	cmp    %ecx,%ebx
5856fb:	0f 86 80 00 00 00    	jbe    0x585781
585701:	8b c1                	mov    %ecx,%eax
585703:	8b 56 1c             	mov    0x1c(%esi),%edx
585706:	40                   	inc    %eax
585707:	3b d0                	cmp    %eax,%edx
585709:	77 0f                	ja     0x58571a
58570b:	6a 01                	push   $0x1
58570d:	8b cf                	mov    %edi,%ecx
58570f:	e8 8c d5 ff ff       	call   0x582ca0
585714:	8b 56 1c             	mov    0x1c(%esi),%edx
585717:	8b 4e 24             	mov    0x24(%esi),%ecx
58571a:	8d 42 ff             	lea    -0x1(%edx),%eax
58571d:	21 46 20             	and    %eax,0x20(%esi)
585720:	8d 42 ff             	lea    -0x1(%edx),%eax
585723:	03 4e 20             	add    0x20(%esi),%ecx
585726:	23 c8                	and    %eax,%ecx
585728:	8b 46 18             	mov    0x18(%esi),%eax
58572b:	83 3c 88 00          	cmpl   $0x0,(%eax,%ecx,4)
58572f:	8d 3c 8d 00 00 00 00 	lea    0x0(,%ecx,4),%edi
585736:	75 13                	jne    0x58574b
585738:	6a 28                	push   $0x28
58573a:	e8 03 b9 05 00       	call   0x5e1042
58573f:	8b 4e 18             	mov    0x18(%esi),%ecx
585742:	83 c4 04             	add    $0x4,%esp
585745:	89 04 0f             	mov    %eax,(%edi,%ecx,1)
585748:	8b 46 18             	mov    0x18(%esi),%eax
58574b:	8b 04 07             	mov    (%edi,%eax,1),%eax
58574e:	0f 57 c0             	xorps  %xmm0,%xmm0
585751:	8d 7e 14             	lea    0x14(%esi),%edi
585754:	0f 11 00             	movups %xmm0,(%eax)
585757:	0f 11 40 10          	movups %xmm0,0x10(%eax)
58575b:	66 0f d6 40 20       	movq   %xmm0,0x20(%eax)
585760:	c7 40 1c 00 00 00 00 	movl   $0x0,0x1c(%eax)
585767:	c7 40 20 0f 00 00 00 	movl   $0xf,0x20(%eax)
58576e:	c6 40 0c 00          	movb   $0x0,0xc(%eax)
585772:	8b 4e 24             	mov    0x24(%esi),%ecx
585775:	41                   	inc    %ecx
585776:	8b c1                	mov    %ecx,%eax
585778:	89 4e 24             	mov    %ecx,0x24(%esi)
58577b:	3b c3                	cmp    %ebx,%eax
58577d:	72 84                	jb     0x585703
58577f:	3b d9                	cmp    %ecx,%ebx
585781:	73 6a                	jae    0x5857ed
585783:	8b 46 20             	mov    0x20(%esi),%eax
585786:	48                   	dec    %eax
585787:	03 c8                	add    %eax,%ecx
585789:	8b 46 1c             	mov    0x1c(%esi),%eax
58578c:	48                   	dec    %eax
58578d:	23 c8                	and    %eax,%ecx
58578f:	8b 46 18             	mov    0x18(%esi),%eax
585792:	8b 3c 88             	mov    (%eax,%ecx,4),%edi
585795:	8b 4f 20             	mov    0x20(%edi),%ecx
585798:	83 f9 10             	cmp    $0x10,%ecx
58579b:	72 28                	jb     0x5857c5
58579d:	8b 47 0c             	mov    0xc(%edi),%eax
5857a0:	41                   	inc    %ecx
5857a1:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
5857a7:	72 12                	jb     0x5857bb
5857a9:	8b 50 fc             	mov    -0x4(%eax),%edx
5857ac:	83 c1 23             	add    $0x23,%ecx
5857af:	2b c2                	sub    %edx,%eax
5857b1:	83 c0 fc             	add    $0xfffffffc,%eax
5857b4:	83 f8 1f             	cmp    $0x1f,%eax
5857b7:	77 58                	ja     0x585811
5857b9:	8b c2                	mov    %edx,%eax
5857bb:	51                   	push   %ecx
5857bc:	50                   	push   %eax
5857bd:	e8 b0 b8 05 00       	call   0x5e1072
5857c2:	83 c4 08             	add    $0x8,%esp
5857c5:	c7 47 1c 00 00 00 00 	movl   $0x0,0x1c(%edi)
5857cc:	c7 47 20 0f 00 00 00 	movl   $0xf,0x20(%edi)
5857d3:	c6 47 0c 00          	movb   $0x0,0xc(%edi)
5857d7:	8b 4e 24             	mov    0x24(%esi),%ecx
5857da:	83 e9 01             	sub    $0x1,%ecx
5857dd:	89 4e 24             	mov    %ecx,0x24(%esi)
5857e0:	75 07                	jne    0x5857e9
5857e2:	c7 46 20 00 00 00 00 	movl   $0x0,0x20(%esi)
5857e9:	3b d9                	cmp    %ecx,%ebx
5857eb:	72 96                	jb     0x585783
5857ed:	8b 45 f4             	mov    -0xc(%ebp),%eax
5857f0:	3b 45 08             	cmp    0x8(%ebp),%eax
5857f3:	74 08                	je     0x5857fd
5857f5:	85 c0                	test   %eax,%eax
5857f7:	0f 85 e3 fe ff ff    	jne    0x5856e0
5857fd:	53                   	push   %ebx
5857fe:	8d 4e 14             	lea    0x14(%esi),%ecx
585801:	e8 1a 00 00 00       	call   0x585820
585806:	5f                   	pop    %edi
585807:	5e                   	pop    %esi
585808:	32 c0                	xor    %al,%al
58580a:	5b                   	pop    %ebx
58580b:	8b e5                	mov    %ebp,%esp
58580d:	5d                   	pop    %ebp
58580e:	c2 04 00             	ret    $0x4
585811:	e8 19 77 06 00       	call   0x5ecf2f
585816:	cc                   	int3
585817:	cc                   	int3
585818:	cc                   	int3
585819:	cc                   	int3
58581a:	cc                   	int3
58581b:	cc                   	int3
58581c:	cc                   	int3
58581d:	cc                   	int3
58581e:	cc                   	int3
58581f:	cc                   	int3
585820:	55                   	push   %ebp
585821:	8b ec                	mov    %esp,%ebp
585823:	53                   	push   %ebx
585824:	8b 5d 08             	mov    0x8(%ebp),%ebx
585827:	56                   	push   %esi
585828:	8b f1                	mov    %ecx,%esi
58582a:	57                   	push   %edi
58582b:	8b 4e 10             	mov    0x10(%esi),%ecx
58582e:	3b d9                	cmp    %ecx,%ebx
585830:	76 7d                	jbe    0x5858af
585832:	8b c1                	mov    %ecx,%eax
585834:	8b 56 08             	mov    0x8(%esi),%edx
585837:	40                   	inc    %eax
585838:	3b d0                	cmp    %eax,%edx
58583a:	77 0f                	ja     0x58584b
58583c:	6a 01                	push   $0x1
58583e:	8b ce                	mov    %esi,%ecx
585840:	e8 5b d4 ff ff       	call   0x582ca0
585845:	8b 56 08             	mov    0x8(%esi),%edx
585848:	8b 4e 10             	mov    0x10(%esi),%ecx
58584b:	8d 42 ff             	lea    -0x1(%edx),%eax
58584e:	21 46 0c             	and    %eax,0xc(%esi)
585851:	8d 42 ff             	lea    -0x1(%edx),%eax
585854:	03 4e 0c             	add    0xc(%esi),%ecx
585857:	23 c8                	and    %eax,%ecx
585859:	8b 46 04             	mov    0x4(%esi),%eax
58585c:	83 3c 88 00          	cmpl   $0x0,(%eax,%ecx,4)
585860:	8d 3c 8d 00 00 00 00 	lea    0x0(,%ecx,4),%edi
585867:	75 13                	jne    0x58587c
585869:	6a 28                	push   $0x28
58586b:	e8 d2 b7 05 00       	call   0x5e1042
585870:	8b 4e 04             	mov    0x4(%esi),%ecx
585873:	83 c4 04             	add    $0x4,%esp
585876:	89 04 0f             	mov    %eax,(%edi,%ecx,1)
585879:	8b 46 04             	mov    0x4(%esi),%eax
58587c:	8b 04 07             	mov    (%edi,%eax,1),%eax
58587f:	0f 57 c0             	xorps  %xmm0,%xmm0
585882:	0f 11 00             	movups %xmm0,(%eax)
585885:	0f 11 40 10          	movups %xmm0,0x10(%eax)
585889:	66 0f d6 40 20       	movq   %xmm0,0x20(%eax)
58588e:	c7 40 1c 00 00 00 00 	movl   $0x0,0x1c(%eax)
585895:	c7 40 20 0f 00 00 00 	movl   $0xf,0x20(%eax)
58589c:	c6 40 0c 00          	movb   $0x0,0xc(%eax)
5858a0:	8b 4e 10             	mov    0x10(%esi),%ecx
5858a3:	41                   	inc    %ecx
5858a4:	8b c1                	mov    %ecx,%eax
5858a6:	89 4e 10             	mov    %ecx,0x10(%esi)
5858a9:	3b c3                	cmp    %ebx,%eax
5858ab:	72 87                	jb     0x585834
5858ad:	3b d9                	cmp    %ecx,%ebx
5858af:	73 6a                	jae    0x58591b
5858b1:	8b 46 0c             	mov    0xc(%esi),%eax
5858b4:	48                   	dec    %eax
5858b5:	03 c8                	add    %eax,%ecx
5858b7:	8b 46 08             	mov    0x8(%esi),%eax
5858ba:	48                   	dec    %eax
5858bb:	23 c8                	and    %eax,%ecx
5858bd:	8b 46 04             	mov    0x4(%esi),%eax
5858c0:	8b 3c 88             	mov    (%eax,%ecx,4),%edi
5858c3:	8b 4f 20             	mov    0x20(%edi),%ecx
5858c6:	83 f9 10             	cmp    $0x10,%ecx
5858c9:	72 28                	jb     0x5858f3
5858cb:	8b 47 0c             	mov    0xc(%edi),%eax
5858ce:	41                   	inc    %ecx
5858cf:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
5858d5:	72 12                	jb     0x5858e9
5858d7:	8b 50 fc             	mov    -0x4(%eax),%edx
5858da:	83 c1 23             	add    $0x23,%ecx
5858dd:	2b c2                	sub    %edx,%eax
5858df:	83 c0 fc             	add    $0xfffffffc,%eax
5858e2:	83 f8 1f             	cmp    $0x1f,%eax
5858e5:	77 3b                	ja     0x585922
5858e7:	8b c2                	mov    %edx,%eax
5858e9:	51                   	push   %ecx
5858ea:	50                   	push   %eax
5858eb:	e8 82 b7 05 00       	call   0x5e1072
5858f0:	83 c4 08             	add    $0x8,%esp
5858f3:	c7 47 1c 00 00 00 00 	movl   $0x0,0x1c(%edi)
5858fa:	c7 47 20 0f 00 00 00 	movl   $0xf,0x20(%edi)
585901:	c6 47 0c 00          	movb   $0x0,0xc(%edi)
585905:	8b 4e 10             	mov    0x10(%esi),%ecx
585908:	83 e9 01             	sub    $0x1,%ecx
58590b:	89 4e 10             	mov    %ecx,0x10(%esi)
58590e:	75 07                	jne    0x585917
585910:	c7 46 0c 00 00 00 00 	movl   $0x0,0xc(%esi)
585917:	3b d9                	cmp    %ecx,%ebx
585919:	72 96                	jb     0x5858b1
58591b:	5f                   	pop    %edi
58591c:	5e                   	pop    %esi
58591d:	5b                   	pop    %ebx
58591e:	5d                   	pop    %ebp
58591f:	c2 04 00             	ret    $0x4
585922:	e8 08 76 06 00       	call   0x5ecf2f
585927:	cc                   	int3
585928:	cc                   	int3
585929:	cc                   	int3
58592a:	cc                   	int3
58592b:	cc                   	int3
58592c:	cc                   	int3
58592d:	cc                   	int3
58592e:	cc                   	int3
58592f:	cc                   	int3
585930:	57                   	push   %edi
585931:	8b f9                	mov    %ecx,%edi
585933:	8b 47 1c             	mov    0x1c(%edi),%eax
585936:	83 38 00             	cmpl   $0x0,(%eax)
585939:	74 1b                	je     0x585956
58593b:	8b 4f 2c             	mov    0x2c(%edi),%ecx
58593e:	8b 01                	mov    (%ecx),%eax
585940:	85 c0                	test   %eax,%eax
585942:	7e 12                	jle    0x585956
585944:	48                   	dec    %eax
585945:	89 01                	mov    %eax,(%ecx)
585947:	8b 4f 1c             	mov    0x1c(%edi),%ecx
58594a:	5f                   	pop    %edi
58594b:	8b 11                	mov    (%ecx),%edx
58594d:	8d 42 01             	lea    0x1(%edx),%eax
585950:	89 01                	mov    %eax,(%ecx)
585952:	0f b6 02             	movzbl (%edx),%eax
585955:	c3                   	ret
585956:	8b 07                	mov    (%edi),%eax
585958:	56                   	push   %esi
585959:	8b 70 1c             	mov    0x1c(%eax),%esi
58595c:	8b ce                	mov    %esi,%ecx