585387:	ff 24 85 a4 56 58 00 	jmp    *0x5856a4(,%eax,4)
58538e:	8d 45 cc             	lea    -0x34(%ebp),%eax
585391:	8b cf                	mov    %edi,%ecx
585393:	50                   	push   %eax
585394:	e8 b7 f6 ff ff       	call   0x584a50
585399:	8b 4f 48             	mov    0x48(%edi),%ecx
58539c:	8a d8                	mov    %al,%bl
58539e:	2b 4f 40             	sub    0x40(%edi),%ecx
5853a1:	51                   	push   %ecx
5853a2:	8b cf                	mov    %edi,%ecx
5853a4:	e8 77 de ff ff       	call   0x583220
5853a9:	8b c8                	mov    %eax,%ecx
5853ab:	e8 b0 cb ff ff       	call   0x581f60
5853b0:	e9 b2 01 00 00       	jmp    0x585567
5853b5:	8d 45 cc             	lea    -0x34(%ebp),%eax
5853b8:	8b cf                	mov    %edi,%ecx
5853ba:	50                   	push   %eax
5853bb:	e8 40 f2 ff ff       	call   0x584600
5853c0:	8a d8                	mov    %al,%bl
5853c2:	8b cf                	mov    %edi,%ecx
5853c4:	8b 47 48             	mov    0x48(%edi),%eax
5853c7:	2b 47 40             	sub    0x40(%edi),%eax
5853ca:	50                   	push   %eax
5853cb:	e8 50 de ff ff       	call   0x583220
5853d0:	8b c8                	mov    %eax,%ecx
5853d2:	e8 89 cb ff ff       	call   0x581f60
5853d7:	e9 8b 01 00 00       	jmp    0x585567
5853dc:	6a 00                	push   $0x0
5853de:	8d 4d d8             	lea    -0x28(%ebp),%ecx
5853e1:	e8 da a9 ff ff       	call   0x57fdc0
5853e6:	8d 45 d8             	lea    -0x28(%ebp),%eax
5853e9:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
5853f0:	50                   	push   %eax
5853f1:	8d 45 cc             	lea    -0x34(%ebp),%eax
5853f4:	8b cf                	mov    %edi,%ecx
5853f6:	50                   	push   %eax
5853f7:	e8 f4 e0 ff ff       	call   0x5834f0
5853fc:	84 c0                	test   %al,%al
5853fe:	75 07                	jne    0x585407
585400:	32 db                	xor    %bl,%bl
585402:	e9 58 01 00 00       	jmp    0x58555f
585407:	8b 47 0c             	mov    0xc(%edi),%eax
58540a:	03 47 10             	add    0x10(%edi),%eax
58540d:	8b 4f 04             	mov    0x4(%edi),%ecx
585410:	8d 70 ff             	lea    -0x1(%eax),%esi
585413:	8d 45 d8             	lea    -0x28(%ebp),%eax
585416:	8b d6                	mov    %esi,%edx
585418:	50                   	push   %eax
585419:	8b 47 08             	mov    0x8(%edi),%eax
58541c:	83 e6 03             	and    $0x3,%esi
58541f:	c1 ea 02             	shr    $0x2,%edx
585422:	48                   	dec    %eax
585423:	23 d0                	and    %eax,%edx
585425:	8b 0c 91             	mov    (%ecx,%edx,4),%ecx
585428:	8b 0c b1             	mov    (%ecx,%esi,4),%ecx
58542b:	e8 40 cc ff ff       	call   0x582070
585430:	8b 47 0c             	mov    0xc(%edi),%eax
585433:	03 47 10             	add    0x10(%edi),%eax
585436:	8b 4f 04             	mov    0x4(%edi),%ecx
585439:	8d 70 ff             	lea    -0x1(%eax),%esi
58543c:	8b 45 d0             	mov    -0x30(%ebp),%eax
58543f:	2b 47 40             	sub    0x40(%edi),%eax
585442:	8b d6                	mov    %esi,%edx
585444:	50                   	push   %eax
585445:	8b 47 08             	mov    0x8(%edi),%eax
585448:	83 e6 03             	and    $0x3,%esi
58544b:	c1 ea 02             	shr    $0x2,%edx
58544e:	48                   	dec    %eax
58544f:	23 d0                	and    %eax,%edx
585451:	8b 0c 91             	mov    (%ecx,%edx,4),%ecx
585454:	8b 0c b1             	mov    (%ecx,%esi,4),%ecx
585457:	e8 14 cb ff ff       	call   0x581f70
58545c:	8b 47 0c             	mov    0xc(%edi),%eax
58545f:	03 47 10             	add    0x10(%edi),%eax
585462:	8b 4f 04             	mov    0x4(%edi),%ecx
585465:	8d 70 ff             	lea    -0x1(%eax),%esi
585468:	8b 45 d4             	mov    -0x2c(%ebp),%eax
58546b:	2b 47 40             	sub    0x40(%edi),%eax
58546e:	8b d6                	mov    %esi,%edx
585470:	50                   	push   %eax
585471:	8b 47 08             	mov    0x8(%edi),%eax
585474:	83 e6 03             	and    $0x3,%esi
585477:	c1 ea 02             	shr    $0x2,%edx
58547a:	48                   	dec    %eax
58547b:	23 d0                	and    %eax,%edx
58547d:	8b 0c 91             	mov    (%ecx,%edx,4),%ecx
585480:	8b 0c b1             	mov    (%ecx,%esi,4),%ecx
585483:	e8 d8 ca ff ff       	call   0x581f60
585488:	b3 01                	mov    $0x1,%bl
58548a:	e9 d0 00 00 00       	jmp    0x58555f
58548f:	8d 45 cc             	lea    -0x34(%ebp),%eax
585492:	8b cf                	mov    %edi,%ecx
585494:	50                   	push   %eax
585495:	e8 96 e2 ff ff       	call   0x583730
58549a:	8a d8                	mov    %al,%bl
58549c:	e9 c6 00 00 00       	jmp    0x585567
5854a1:	6a 01                	push   $0x1
5854a3:	8d 4d d8             	lea    -0x28(%ebp),%ecx
5854a6:	e8 95 aa ff ff       	call   0x57ff40
5854ab:	c7 45 fc 02 00 00 00 	movl   $0x2,-0x4(%ebp)
5854b2:	8d 45 d8             	lea    -0x28(%ebp),%eax
5854b5:	8b cf                	mov    %edi,%ecx
5854b7:	50                   	push   %eax
5854b8:	e8 63 dd ff ff       	call   0x583220
5854bd:	8b c8                	mov    %eax,%ecx
5854bf:	e8 ac cb ff ff       	call   0x582070
5854c4:	8b 45 d0             	mov    -0x30(%ebp),%eax
5854c7:	8b cf                	mov    %edi,%ecx
5854c9:	2b 47 40             	sub    0x40(%edi),%eax
5854cc:	50                   	push   %eax
5854cd:	e8 4e dd ff ff       	call   0x583220
5854d2:	8b c8                	mov    %eax,%ecx
5854d4:	e8 97 ca ff ff       	call   0x581f70
5854d9:	8b 45 d4             	mov    -0x2c(%ebp),%eax
5854dc:	eb 6f                	jmp    0x58554d
5854de:	6a 00                	push   $0x0
5854e0:	8d 4d d8             	lea    -0x28(%ebp),%ecx
5854e3:	e8 58 aa ff ff       	call   0x57ff40
5854e8:	c7 45 fc 03 00 00 00 	movl   $0x3,-0x4(%ebp)
5854ef:	eb c1                	jmp    0x5854b2
5854f1:	6a 00                	push   $0x0
5854f3:	8d 4d d8             	lea    -0x28(%ebp),%ecx
5854f6:	e8 c5 a8 ff ff       	call   0x57fdc0
5854fb:	c7 45 fc 04 00 00 00 	movl   $0x4,-0x4(%ebp)
585502:	eb ae                	jmp    0x5854b2
585504:	80 7f 6e 00          	cmpb   $0x0,0x6e(%edi)
585508:	0f 84 91 00 00 00    	je     0x58559f
58550e:	ff 4f 48             	decl   0x48(%edi)
585511:	8d 4d d8             	lea    -0x28(%ebp),%ecx
585514:	6a 00                	push   $0x0
585516:	e8 a5 a8 ff ff       	call   0x57fdc0
58551b:	8d 45 d8             	lea    -0x28(%ebp),%eax
58551e:	c7 45 fc 05 00 00 00 	movl   $0x5,-0x4(%ebp)
585525:	50                   	push   %eax
585526:	8b cf                	mov    %edi,%ecx
585528:	e8 f3 dc ff ff       	call   0x583220
58552d:	8b c8                	mov    %eax,%ecx
58552f:	e8 3c cb ff ff       	call   0x582070
585534:	8b 47 48             	mov    0x48(%edi),%eax
585537:	8b cf                	mov    %edi,%ecx
585539:	2b 47 40             	sub    0x40(%edi),%eax
58553c:	48                   	dec    %eax
58553d:	50                   	push   %eax
58553e:	e8 dd dc ff ff       	call   0x583220
585543:	8b c8                	mov    %eax,%ecx
585545:	e8 26 ca ff ff       	call   0x581f70
58554a:	8b 47 48             	mov    0x48(%edi),%eax
58554d:	2b 47 40             	sub    0x40(%edi),%eax
585550:	8b cf                	mov    %edi,%ecx
585552:	50                   	push   %eax
585553:	e8 c8 dc ff ff       	call   0x583220
585558:	8b c8                	mov    %eax,%ecx
58555a:	e8 01 ca ff ff       	call   0x581f60
58555f:	8d 4d d8             	lea    -0x28(%ebp),%ecx
585562:	e8 19 ab ff ff       	call   0x580080
585567:	80 7f 70 00          	cmpb   $0x0,0x70(%edi)
58556b:	0f 84 f1 00 00 00    	je     0x585662
585571:	8b 47 48             	mov    0x48(%edi),%eax
585574:	89 47 4c             	mov    %eax,0x4c(%edi)
585577:	8b 47 0c             	mov    0xc(%edi),%eax
58557a:	03 47 10             	add    0x10(%edi),%eax
58557d:	8d 50 ff             	lea    -0x1(%eax),%edx
585580:	8b 47 08             	mov    0x8(%edi),%eax
585583:	48                   	dec    %eax
585584:	8b ca                	mov    %edx,%ecx
585586:	c1 e9 02             	shr    $0x2,%ecx
585589:	23 c8                	and    %eax,%ecx
58558b:	8b 47 04             	mov    0x4(%edi),%eax
58558e:	83 e2 03             	and    $0x3,%edx
585591:	8b 04 88             	mov    (%eax,%ecx,4),%eax
585594:	8b 04 90             	mov    (%eax,%edx,4),%eax
585597:	89 47 50             	mov    %eax,0x50(%edi)
58559a:	e9 c3 00 00 00       	jmp    0x585662
58559f:	8b 47 0c             	mov    0xc(%edi),%eax
5855a2:	03 47 10             	add    0x10(%edi),%eax
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