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
58595e:	ff 15 e0 24 68 00    	call   *0x6824e0
585964:	8b cf                	mov    %edi,%ecx
585966:	ff d6                	call   *%esi
585968:	5e                   	pop    %esi
585969:	5f                   	pop    %edi
58596a:	c3                   	ret
58596b:	cc                   	int3
58596c:	cc                   	int3
58596d:	cc                   	int3
58596e:	cc                   	int3
58596f:	cc                   	int3
585970:	55                   	push   %ebp
585971:	8b ec                	mov    %esp,%ebp
585973:	56                   	push   %esi
585974:	8b f1                	mov    %ecx,%esi
585976:	80 7e 6c 00          	cmpb   $0x0,0x6c(%esi)
58597a:	0f 84 d9 02 00 00    	je     0x585c59
585980:	53                   	push   %ebx
585981:	8b 5d 08             	mov    0x8(%ebp),%ebx
585984:	57                   	push   %edi
585985:	8b 46 48             	mov    0x48(%esi),%eax
585988:	8b 7e 44             	mov    0x44(%esi),%edi
58598b:	3b c7                	cmp    %edi,%eax
58598d:	74 24                	je     0x5859b3
58598f:	8b d0                	mov    %eax,%edx
585991:	8a 0a                	mov    (%edx),%cl
585993:	80 f9 20             	cmp    $0x20,%cl
585996:	74 0f                	je     0x5859a7
585998:	80 f9 09             	cmp    $0x9,%cl
58599b:	74 0a                	je     0x5859a7
58599d:	80 f9 0d             	cmp    $0xd,%cl
5859a0:	74 05                	je     0x5859a7
5859a2:	80 f9 0a             	cmp    $0xa,%cl
5859a5:	75 0c                	jne    0x5859b3
5859a7:	8d 42 01             	lea    0x1(%edx),%eax
5859aa:	89 46 48             	mov    %eax,0x48(%esi)
5859ad:	8b d0                	mov    %eax,%edx
5859af:	3b c7                	cmp    %edi,%eax
5859b1:	75 de                	jne    0x585991
5859b3:	89 43 04             	mov    %eax,0x4(%ebx)
5859b6:	8b 46 48             	mov    0x48(%esi),%eax
5859b9:	3b 46 44             	cmp    0x44(%esi),%eax
5859bc:	75 04                	jne    0x5859c2
5859be:	32 c9                	xor    %cl,%cl
5859c0:	eb 06                	jmp    0x5859c8
5859c2:	8a 08                	mov    (%eax),%cl
5859c4:	40                   	inc    %eax
5859c5:	89 46 48             	mov    %eax,0x48(%esi)
5859c8:	0f be c1             	movsbl %cl,%eax
5859cb:	83 f8 7d             	cmp    $0x7d,%eax
5859ce:	0f 87 87 00 00 00    	ja     0x585a5b
5859d4:	0f b6 80 a0 5c 58 00 	movzbl 0x585ca0(%eax),%eax
5859db:	ff 24 85 68 5c 58 00 	jmp    *0x585c68(,%eax,4)
5859e2:	c7 03 01 00 00 00    	movl   $0x1,(%ebx)
5859e8:	8b 0b                	mov    (%ebx),%ecx
5859ea:	eb 7a                	jmp    0x585a66
5859ec:	c7 03 02 00 00 00    	movl   $0x2,(%ebx)
5859f2:	8b 0b                	mov    (%ebx),%ecx
5859f4:	eb 70                	jmp    0x585a66
5859f6:	c7 03 03 00 00 00    	movl   $0x3,(%ebx)
5859fc:	8b 0b                	mov    (%ebx),%ecx
5859fe:	eb 66                	jmp    0x585a66
585a00:	c7 03 04 00 00 00    	movl   $0x4,(%ebx)
585a06:	8b 0b                	mov    (%ebx),%ecx
585a08:	eb 5c                	jmp    0x585a66
585a0a:	c7 03 05 00 00 00    	movl   $0x5,(%ebx)
585a10:	32 c9                	xor    %cl,%cl
585a12:	8b 46 48             	mov    0x48(%esi),%eax
585a15:	8b 56 44             	mov    0x44(%esi),%edx
585a18:	3b c2                	cmp    %edx,%eax
585a1a:	74 22                	je     0x585a3e
585a1c:	0f 1f 40 00          	nopl   0x0(%eax)
585a20:	8a 08                	mov    (%eax),%cl
585a22:	40                   	inc    %eax
585a23:	89 46 48             	mov    %eax,0x48(%esi)
585a26:	80 f9 5c             	cmp    $0x5c,%cl
585a29:	75 0a                	jne    0x585a35
585a2b:	3b c2                	cmp    %edx,%eax
585a2d:	74 0f                	je     0x585a3e
585a2f:	40                   	inc    %eax
585a30:	89 46 48             	mov    %eax,0x48(%esi)
585a33:	eb 05                	jmp    0x585a3a
585a35:	80 f9 22             	cmp    $0x22,%cl
585a38:	74 07                	je     0x585a41
585a3a:	3b c2                	cmp    %edx,%eax
585a3c:	75 e2                	jne    0x585a20
585a3e:	80 f9 22             	cmp    $0x22,%cl
585a41:	0f 94 c0             	sete   %al
585a44:	eb 0d                	jmp    0x585a53
585a46:	8b ce                	mov    %esi,%ecx
585a48:	c7 03 0c 00 00 00    	movl   $0xc,(%ebx)
585a4e:	e8 5d ee ff ff       	call   0x5848b0
585a53:	84 c0                	test   %al,%al
585a55:	0f 85 f7 01 00 00    	jne    0x585c52
585a5b:	c7 03 0d 00 00 00    	movl   $0xd,(%ebx)
585a61:	b9 0d 00 00 00       	mov    $0xd,%ecx
585a66:	8b 46 48             	mov    0x48(%esi),%eax
585a69:	89 43 08             	mov    %eax,0x8(%ebx)
585a6c:	83 f9 0c             	cmp    $0xc,%ecx
585a6f:	0f 84 10 ff ff ff    	je     0x585985
585a75:	5f                   	pop    %edi
585a76:	5b                   	pop    %ebx
585a77:	5e                   	pop    %esi
585a78:	5d                   	pop    %ebp
585a79:	c2 04 00             	ret    $0x4
585a7c:	c7 03 06 00 00 00    	movl   $0x6,(%ebx)
585a82:	b2 30                	mov    $0x30,%dl
585a84:	8b 46 48             	mov    0x48(%esi),%eax
585a87:	80 fa 39             	cmp    $0x39,%dl
585a8a:	77 1f                	ja     0x585aab
585a8c:	8b 7e 44             	mov    0x44(%esi),%edi
585a8f:	89 46 48             	mov    %eax,0x48(%esi)
585a92:	3b c7                	cmp    %edi,%eax
585a94:	73 04                	jae    0x585a9a
585a96:	8a 10                	mov    (%eax),%dl
585a98:	eb 02                	jmp    0x585a9c
585a9a:	32 d2                	xor    %dl,%dl
585a9c:	3b c7                	cmp    %edi,%eax
585a9e:	8d 48 01             	lea    0x1(%eax),%ecx
585aa1:	0f 43 c8             	cmovae %eax,%ecx
585aa4:	8b c1                	mov    %ecx,%eax
585aa6:	80 fa 30             	cmp    $0x30,%dl
585aa9:	7d dc                	jge    0x585a87
585aab:	80 fa 2e             	cmp    $0x2e,%dl
585aae:	75 41                	jne    0x585af1
585ab0:	8b 7e 44             	mov    0x44(%esi),%edi
585ab3:	89 46 48             	mov    %eax,0x48(%esi)
585ab6:	3b c7                	cmp    %edi,%eax
585ab8:	73 04                	jae    0x585abe
585aba:	8a 10                	mov    (%eax),%dl
585abc:	eb 02                	jmp    0x585ac0
585abe:	32 d2                	xor    %dl,%dl
585ac0:	3b c7                	cmp    %edi,%eax
585ac2:	8d 48 01             	lea    0x1(%eax),%ecx
585ac5:	0f 43 c8             	cmovae %eax,%ecx
585ac8:	8b c1                	mov    %ecx,%eax
585aca:	80 fa 30             	cmp    $0x30,%dl
585acd:	7c 22                	jl     0x585af1
585acf:	90                   	nop
585ad0:	80 fa 39             	cmp    $0x39,%dl
585ad3:	77 1c                	ja     0x585af1
585ad5:	89 46 48             	mov    %eax,0x48(%esi)
585ad8:	3b c7                	cmp    %edi,%eax
585ada:	73 04                	jae    0x585ae0
585adc:	8a 10                	mov    (%eax),%dl
585ade:	eb 02                	jmp    0x585ae2
585ae0:	32 d2                	xor    %dl,%dl
585ae2:	3b c7                	cmp    %edi,%eax
585ae4:	8d 48 01             	lea    0x1(%eax),%ecx
585ae7:	0f 43 c8             	cmovae %eax,%ecx
585aea:	8b c1                	mov    %ecx,%eax
585aec:	80 fa 30             	cmp    $0x30,%dl
585aef:	7d df                	jge    0x585ad0
585af1:	80 fa 65             	cmp    $0x65,%dl
585af4:	74 09                	je     0x585aff
585af6:	80 fa 45             	cmp    $0x45,%dl
585af9:	0f 85 53 01 00 00    	jne    0x585c52
585aff:	8b 7e 44             	mov    0x44(%esi),%edi
585b02:	89 46 48             	mov    %eax,0x48(%esi)
585b05:	3b c7                	cmp    %edi,%eax
585b07:	73 04                	jae    0x585b0d
585b09:	8a 10                	mov    (%eax),%dl
585b0b:	eb 02                	jmp    0x585b0f
585b0d:	32 d2                	xor    %dl,%dl
585b0f:	3b c7                	cmp    %edi,%eax
585b11:	8d 48 01             	lea    0x1(%eax),%ecx
585b14:	0f 43 c8             	cmovae %eax,%ecx
585b17:	80 fa 2b             	cmp    $0x2b,%dl
585b1a:	74 05                	je     0x585b21
585b1c:	80 fa 2d             	cmp    $0x2d,%dl
585b1f:	75 0e                	jne    0x585b2f
585b21:	89 4e 48             	mov    %ecx,0x48(%esi)
585b24:	3b cf                	cmp    %edi,%ecx
585b26:	0f 83 26 01 00 00    	jae    0x585c52
585b2c:	8a 11                	mov    (%ecx),%dl