581618:	89 7d c4             	mov    %edi,-0x3c(%ebp)
58161b:	84 c9                	test   %cl,%cl
58161d:	0f 84 28 01 00 00    	je     0x58174b
581623:	80 f9 07             	cmp    $0x7,%cl
581626:	0f 85 52 01 00 00    	jne    0x58177e
58162c:	33 f6                	xor    %esi,%esi
58162e:	c7 45 c8 00 00 00 00 	movl   $0x0,-0x38(%ebp)
581635:	89 75 cc             	mov    %esi,-0x34(%ebp)
581638:	89 75 d0             	mov    %esi,-0x30(%ebp)
58163b:	8b 08                	mov    (%eax),%ecx
58163d:	c7 45 fc 02 00 00 00 	movl   $0x2,-0x4(%ebp)
581644:	8b 41 04             	mov    0x4(%ecx),%eax
581647:	85 c0                	test   %eax,%eax
581649:	74 1c                	je     0x581667
58164b:	3d aa aa aa 0a       	cmp    $0xaaaaaaa,%eax
581650:	0f 87 6b 01 00 00    	ja     0x5817c1
581656:	50                   	push   %eax
581657:	8d 4d c8             	lea    -0x38(%ebp),%ecx
58165a:	e8 e1 f2 ff ff       	call   0x580940
58165f:	8b 45 d4             	mov    -0x2c(%ebp),%eax
581662:	8b 75 cc             	mov    -0x34(%ebp),%esi
581665:	8b 08                	mov    (%eax),%ecx
581667:	8b 09                	mov    (%ecx),%ecx
581669:	89 4d c4             	mov    %ecx,-0x3c(%ebp)
58166c:	8b 01                	mov    (%ecx),%eax
58166e:	89 45 d4             	mov    %eax,-0x2c(%ebp)
581671:	3b c1                	cmp    %ecx,%eax
581673:	0f 84 c2 00 00 00    	je     0x58173b
581679:	0f 1f 80 00 00 00 00 	nopl   0x0(%eax)
581680:	8b 48 14             	mov    0x14(%eax),%ecx
581683:	c1 e9 02             	shr    $0x2,%ecx
581686:	51                   	push   %ecx
581687:	ff 70 10             	push   0x10(%eax)
58168a:	8d 4d d8             	lea    -0x28(%ebp),%ecx
58168d:	c7 45 e8 00 00 00 00 	movl   $0x0,-0x18(%ebp)
581694:	c7 45 ec 0f 00 00 00 	movl   $0xf,-0x14(%ebp)
58169b:	c6 45 d8 00          	movb   $0x0,-0x28(%ebp)
58169f:	e8 9c 3b ec ff       	call   0x445240
5816a4:	c6 45 fc 03          	movb   $0x3,-0x4(%ebp)
5816a8:	3b 75 d0             	cmp    -0x30(%ebp),%esi
5816ab:	74 30                	je     0x5816dd
5816ad:	0f 10 45 d8          	movups -0x28(%ebp),%xmm0
5816b1:	c7 46 10 00 00 00 00 	movl   $0x0,0x10(%esi)
5816b8:	b8 0f 00 00 00       	mov    $0xf,%eax
5816bd:	c7 46 14 00 00 00 00 	movl   $0x0,0x14(%esi)
5816c4:	0f 11 06             	movups %xmm0,(%esi)
5816c7:	c6 45 d8 00          	movb   $0x0,-0x28(%ebp)
5816cb:	f3 0f 7e 45 e8       	movq   -0x18(%ebp),%xmm0
5816d0:	66 0f d6 46 10       	movq   %xmm0,0x10(%esi)
5816d5:	83 c6 18             	add    $0x18,%esi
5816d8:	89 75 cc             	mov    %esi,-0x34(%ebp)
5816db:	eb 13                	jmp    0x5816f0
5816dd:	8d 45 d8             	lea    -0x28(%ebp),%eax
5816e0:	50                   	push   %eax
5816e1:	56                   	push   %esi
5816e2:	8d 4d c8             	lea    -0x38(%ebp),%ecx
5816e5:	e8 66 2e ec ff       	call   0x444550
5816ea:	8b 75 cc             	mov    -0x34(%ebp),%esi
5816ed:	8b 45 ec             	mov    -0x14(%ebp),%eax
5816f0:	c6 45 fc 02          	movb   $0x2,-0x4(%ebp)
5816f4:	83 f8 10             	cmp    $0x10,%eax
5816f7:	72 2e                	jb     0x581727
5816f9:	8b 4d d8             	mov    -0x28(%ebp),%ecx
5816fc:	8d 50 01             	lea    0x1(%eax),%edx
5816ff:	8b c1                	mov    %ecx,%eax
581701:	81 fa 00 10 00 00    	cmp    $0x1000,%edx
581707:	72 14                	jb     0x58171d
581709:	8b 49 fc             	mov    -0x4(%ecx),%ecx
58170c:	83 c2 23             	add    $0x23,%edx
58170f:	2b c1                	sub    %ecx,%eax
581711:	83 c0 fc             	add    $0xfffffffc,%eax
581714:	83 f8 1f             	cmp    $0x1f,%eax
581717:	0f 87 a9 00 00 00    	ja     0x5817c6
58171d:	52                   	push   %edx
58171e:	51                   	push   %ecx
58171f:	e8 4e f9 05 00       	call   0x5e1072
581724:	83 c4 08             	add    $0x8,%esp
581727:	8d 4d d4             	lea    -0x2c(%ebp),%ecx
58172a:	e8 31 03 f1 ff       	call   0x491a60
58172f:	8b 45 d4             	mov    -0x2c(%ebp),%eax
581732:	3b 45 c4             	cmp    -0x3c(%ebp),%eax
581735:	0f 85 45 ff ff ff    	jne    0x581680
58173b:	8b 4d c8             	mov    -0x38(%ebp),%ecx
58173e:	8b 45 d0             	mov    -0x30(%ebp),%eax
581741:	89 0f                	mov    %ecx,(%edi)
581743:	89 77 04             	mov    %esi,0x4(%edi)
581746:	89 47 08             	mov    %eax,0x8(%edi)
581749:	eb 14                	jmp    0x58175f
58174b:	c7 07 00 00 00 00    	movl   $0x0,(%edi)
581751:	c7 47 04 00 00 00 00 	movl   $0x0,0x4(%edi)
581758:	c7 47 08 00 00 00 00 	movl   $0x0,0x8(%edi)
58175f:	8b c7                	mov    %edi,%eax
581761:	8b 4d f4             	mov    -0xc(%ebp),%ecx
581764:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
58176b:	59                   	pop    %ecx
58176c:	5f                   	pop    %edi
58176d:	5e                   	pop    %esi
58176e:	8b 4d f0             	mov    -0x10(%ebp),%ecx
581771:	33 cd                	xor    %ebp,%ecx
581773:	e8 62 fd 05 00       	call   0x5e14da
581778:	8b e5                	mov    %ebp,%esp
58177a:	5d                   	pop    %ebp
58177b:	c2 04 00             	ret    $0x4
58177e:	6a 01                	push   $0x1
581780:	6a 02                	push   $0x2
581782:	8d 8d 2c ff ff ff    	lea    -0xd4(%ebp),%ecx
581788:	e8 a3 d5 ff ff       	call   0x57ed30
58178d:	8d 85 2c ff ff ff    	lea    -0xd4(%ebp),%eax
581793:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
58179a:	68 3c 34 6c 00       	push   $0x6c343c
58179f:	50                   	push   %eax
5817a0:	e8 1b 9b f1 ff       	call   0x49b2c0
5817a5:	83 c4 08             	add    $0x8,%esp
5817a8:	8d 45 d8             	lea    -0x28(%ebp),%eax
5817ab:	8d 8d 2c ff ff ff    	lea    -0xd4(%ebp),%ecx
5817b1:	50                   	push   %eax
5817b2:	e8 f9 d6 ff ff       	call   0x57eeb0
5817b7:	50                   	push   %eax
5817b8:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
5817bc:	e8 ff 08 00 00       	call   0x5820c0
5817c1:	e8 7a 38 ec ff       	call   0x445040
5817c6:	e8 64 b7 06 00       	call   0x5ecf2f
5817cb:	cc                   	int3
5817cc:	cc                   	int3
5817cd:	cc                   	int3
5817ce:	cc                   	int3
5817cf:	cc                   	int3
5817d0:	55                   	push   %ebp
5817d1:	8b ec                	mov    %esp,%ebp
5817d3:	80 79 08 04          	cmpb   $0x4,0x8(%ecx)
5817d7:	75 4a                	jne    0x581823
5817d9:	8b 11                	mov    (%ecx),%edx
5817db:	85 d2                	test   %edx,%edx
5817dd:	74 44                	je     0x581823
5817df:	8b 41 08             	mov    0x8(%ecx),%eax
5817e2:	c1 e8 08             	shr    $0x8,%eax
5817e5:	a8 01                	test   $0x1,%al
5817e7:	75 23                	jne    0x58180c
5817e9:	8b ca                	mov    %edx,%ecx
5817eb:	56                   	push   %esi
5817ec:	8d 71 01             	lea    0x1(%ecx),%esi
5817ef:	90                   	nop
5817f0:	8a 01                	mov    (%ecx),%al
5817f2:	41                   	inc    %ecx
5817f3:	84 c0                	test   %al,%al
5817f5:	75 f9                	jne    0x5817f0
5817f7:	8b 45 08             	mov    0x8(%ebp),%eax
5817fa:	2b ce                	sub    %esi,%ecx
5817fc:	03 ca                	add    %edx,%ecx
5817fe:	5e                   	pop    %esi
5817ff:	89 10                	mov    %edx,(%eax)
581801:	8b 45 0c             	mov    0xc(%ebp),%eax
581804:	89 08                	mov    %ecx,(%eax)
581806:	b0 01                	mov    $0x1,%al
581808:	5d                   	pop    %ebp
581809:	c2 08 00             	ret    $0x8
58180c:	8b 0a                	mov    (%edx),%ecx
58180e:	83 c2 04             	add    $0x4,%edx
581811:	8b 45 08             	mov    0x8(%ebp),%eax
581814:	03 ca                	add    %edx,%ecx
581816:	89 10                	mov    %edx,(%eax)
581818:	8b 45 0c             	mov    0xc(%ebp),%eax
58181b:	89 08                	mov    %ecx,(%eax)
58181d:	b0 01                	mov    $0x1,%al
58181f:	5d                   	pop    %ebp
581820:	c2 08 00             	ret    $0x8
581823:	32 c0                	xor    %al,%al
581825:	5d                   	pop    %ebp
581826:	c2 08 00             	ret    $0x8
581829:	cc                   	int3
58182a:	cc                   	int3
58182b:	cc                   	int3
58182c:	cc                   	int3
58182d:	cc                   	int3
58182e:	cc                   	int3
58182f:	cc                   	int3
581830:	80 79 08 06          	cmpb   $0x6,0x8(%ecx)
581834:	0f 94 c0             	sete   %al
581837:	c3                   	ret
581838:	cc                   	int3
581839:	cc                   	int3
58183a:	cc                   	int3
58183b:	cc                   	int3
58183c:	cc                   	int3
58183d:	cc                   	int3
58183e:	cc                   	int3
58183f:	cc                   	int3
581840:	0f be 41 08          	movsbl 0x8(%ecx),%eax
581844:	83 e8 01             	sub    $0x1,%eax
581847:	74 3a                	je     0x581883
581849:	83 e8 01             	sub    $0x1,%eax
58184c:	74 38                	je     0x581886
58184e:	83 e8 01             	sub    $0x1,%eax
581851:	75 43                	jne    0x581896
581853:	f2 0f 10 09          	movsd  (%ecx),%xmm1
581857:	66 0f 2f 0d 50 c6 6b 	comisd 0x6bc650,%xmm1
58185e:	00
58185f:	72 35                	jb     0x581896
581861:	f2 0f 10 05 00 c6 6b 	movsd  0x6bc600,%xmm0
581868:	00
581869:	66 0f 2f c1          	comisd %xmm1,%xmm0
58186d:	76 27                	jbe    0x581896
58186f:	83 ec 08             	sub    $0x8,%esp
581872:	f2 0f 11 0c 24       	movsd  %xmm1,(%esp)
581877:	e8 74 f0 ff ff       	call   0x5808f0
58187c:	83 c4 08             	add    $0x8,%esp
58187f:	84 c0                	test   %al,%al
581881:	74 13                	je     0x581896
581883:	b0 01                	mov    $0x1,%al
581885:	c3                   	ret
581886:	81 79 04 ff ff ff 7f 	cmpl   $0x7fffffff,0x4(%ecx)
58188d:	77 07                	ja     0x581896
58188f:	72 f2                	jb     0x581883
581891:	83 39 ff             	cmpl   $0xffffffff,(%ecx)
581894:	76 ed                	jbe    0x581883
581896:	32 c0                	xor    %al,%al
581898:	c3                   	ret
581899:	cc                   	int3
58189a:	cc                   	int3
58189b:	cc                   	int3
58189c:	cc                   	int3
58189d:	cc                   	int3
58189e:	cc                   	int3
58189f:	cc                   	int3
5818a0:	80 79 08 07          	cmpb   $0x7,0x8(%ecx)
5818a4:	0f 94 c0             	sete   %al
5818a7:	c3                   	ret
5818a8:	cc                   	int3
5818a9:	cc                   	int3
5818aa:	cc                   	int3
5818ab:	cc                   	int3
5818ac:	cc                   	int3
5818ad:	cc                   	int3
5818ae:	cc                   	int3
5818af:	cc                   	int3
5818b0:	0f be 41 08          	movsbl 0x8(%ecx),%eax
5818b4:	83 e8 01             	sub    $0x1,%eax
5818b7:	74 3d                	je     0x5818f6
5818b9:	83 e8 01             	sub    $0x1,%eax
5818bc:	74 35                	je     0x5818f3
5818be:	83 e8 01             	sub    $0x1,%eax
5818c1:	75 40                	jne    0x581903
5818c3:	f2 0f 10 09          	movsd  (%ecx),%xmm1
5818c7:	66 0f 2f 0d 40 c5 6b 	comisd 0x6bc540,%xmm1
5818ce:	00
5818cf:	72 32                	jb     0x581903
5818d1:	f2 0f 10 05 78 34 6c 	movsd  0x6c3478,%xmm0
5818d8:	00
5818d9:	66 0f 2f c1          	comisd %xmm1,%xmm0
5818dd:	76 24                	jbe    0x581903
5818df:	83 ec 08             	sub    $0x8,%esp
5818e2:	f2 0f 11 0c 24       	movsd  %xmm1,(%esp)
5818e7:	e8 04 f0 ff ff       	call   0x5808f0
5818ec:	83 c4 08             	add    $0x8,%esp
5818ef:	84 c0                	test   %al,%al
5818f1:	74 10                	je     0x581903
5818f3:	b0 01                	mov    $0x1,%al
5818f5:	c3                   	ret
5818f6:	83 79 04 00          	cmpl   $0x0,0x4(%ecx)
5818fa:	7c 07                	jl     0x581903
5818fc:	7f f5                	jg     0x5818f3
5818fe:	83 39 00             	cmpl   $0x0,(%ecx)
581901:	73 f0                	jae    0x5818f3
581903:	32 c0                	xor    %al,%al
581905:	c3                   	ret
581906:	cc                   	int3
581907:	cc                   	int3
581908:	cc                   	int3
581909:	cc                   	int3
58190a:	cc                   	int3
58190b:	cc                   	int3
58190c:	cc                   	int3
58190d:	cc                   	int3
58190e:	cc                   	int3
58190f:	cc                   	int3
581910:	55                   	push   %ebp
581911:	8b ec                	mov    %esp,%ebp
581913:	6a ff                	push   $0xffffffff
581915:	68 ac cd 65 00       	push   $0x65cdac
58191a:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
581920:	50                   	push   %eax
581921:	a1 d4 89 72 00       	mov    0x7289d4,%eax
581926:	33 c5                	xor    %ebp,%eax
581928:	50                   	push   %eax
581929:	8d 45 f4             	lea    -0xc(%ebp),%eax
58192c:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
581932:	64 a1 2c 00 00 00    	mov    %fs:0x2c,%eax
581938:	8b 0d bc 0b 73 00    	mov    0x730bbc,%ecx
58193e:	8b 0c 88             	mov    (%eax,%ecx,4),%ecx
581941:	a1 d0 03 73 00       	mov    0x7303d0,%eax
581946:	3b 81 04 00 00 00    	cmp    0x4(%ecx),%eax
58194c:	7f 14                	jg     0x581962
58194e:	b8 b8 03 73 00       	mov    $0x7303b8,%eax
581953:	8b 4d f4             	mov    -0xc(%ebp),%ecx
581956:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
58195d:	59                   	pop    %ecx
58195e:	8b e5                	mov    %ebp,%esp
581960:	5d                   	pop    %ebp
581961:	c3                   	ret
581962:	68 d0 03 73 00       	push   $0x7303d0
581967:	e8 be 00 06 00       	call   0x5e1a2a
58196c:	83 c4 04             	add    $0x4,%esp
58196f:	83 3d d0 03 73 00 ff 	cmpl   $0xffffffff,0x7303d0
581976:	75 d6                	jne    0x58194e
581978:	81 25 c0 03 73 00 ff 	andl   $0xfffffeff,0x7303c0
58197f:	fe ff ff
581982:	68 f0 cd 67 00       	push   $0x67cdf0
581987:	e8 3e f9 05 00       	call   0x5e12ca
58198c:	68 d0 03 73 00       	push   $0x7303d0
581991:	e8 4a 00 06 00       	call   0x5e19e0
581996:	83 c4 08             	add    $0x8,%esp
581999:	eb b3                	jmp    0x58194e
58199b:	cc                   	int3
58199c:	cc                   	int3
58199d:	cc                   	int3
58199e:	cc                   	int3
58199f:	cc                   	int3
5819a0:	55                   	push   %ebp
5819a1:	8b ec                	mov    %esp,%ebp
5819a3:	6a ff                	push   $0xffffffff
5819a5:	68 15 ce 65 00       	push   $0x65ce15
5819aa:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
5819b0:	50                   	push   %eax
5819b1:	81 ec c0 00 00 00    	sub    $0xc0,%esp
5819b7:	a1 d4 89 72 00       	mov    0x7289d4,%eax
5819bc:	33 c5                	xor    %ebp,%eax
5819be:	89 45 f0             	mov    %eax,-0x10(%ebp)
5819c1:	53                   	push   %ebx
5819c2:	56                   	push   %esi
5819c3:	57                   	push   %edi
5819c4:	50                   	push   %eax
5819c5:	8d 45 f4             	lea    -0xc(%ebp),%eax
5819c8:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
5819ce:	8b f9                	mov    %ecx,%edi
5819d0:	8a 47 08             	mov    0x8(%edi),%al
5819d3:	84 c0                	test   %al,%al
5819d5:	74 0d                	je     0x5819e4
5819d7:	3c 06                	cmp    $0x6,%al
5819d9:	0f 85 6d 01 00 00    	jne    0x581b4c
5819df:	e9 82 00 00 00       	jmp    0x581a66
5819e4:	c6 45 e0 06          	movb   $0x6,-0x20(%ebp)
5819e8:	81 65 e0 ff fe ff ff 	andl   $0xfffffeff,-0x20(%ebp)
5819ef:	6a 08                	push   $0x8
5819f1:	c7 45 e4 00 00 00 00 	movl   $0x0,-0x1c(%ebp)
5819f8:	c7 45 e8 00 00 00 00 	movl   $0x0,-0x18(%ebp)
5819ff:	c7 45 ec 00 00 00 00 	movl   $0x0,-0x14(%ebp)
581a06:	e8 37 f6 05 00       	call   0x5e1042
581a0b:	8b f0                	mov    %eax,%esi
581a0d:	83 c4 04             	add    $0x4,%esp
581a10:	89 75 d4             	mov    %esi,-0x2c(%ebp)