56a800:	8b 0e                	mov    (%esi),%ecx
56a802:	8b 00                	mov    (%eax),%eax
56a804:	89 01                	mov    %eax,(%ecx)
56a806:	8b 06                	mov    (%esi),%eax
56a808:	8b 4e 04             	mov    0x4(%esi),%ecx
56a80b:	8b 40 04             	mov    0x4(%eax),%eax
56a80e:	89 41 04             	mov    %eax,0x4(%ecx)
56a811:	8b 4c 24 10          	mov    0x10(%esp),%ecx
56a815:	8d 04 19             	lea    (%ecx,%ebx,1),%eax
56a818:	50                   	push   %eax
56a819:	ff 37                	push   (%edi)
56a81b:	e8 a0 0e fa ff       	call   0x50b6c0
56a820:	83 c4 08             	add    $0x8,%esp
56a823:	85 c0                	test   %eax,%eax
56a825:	74 24                	je     0x56a84b
56a827:	8b 07                	mov    (%edi),%eax
56a829:	53                   	push   %ebx
56a82a:	ff 74 24 20          	push   0x20(%esp)
56a82e:	8b 40 04             	mov    0x4(%eax),%eax
56a831:	03 44 24 18          	add    0x18(%esp),%eax
56a835:	50                   	push   %eax
56a836:	e8 95 85 06 00       	call   0x5d2dd0
56a83b:	8b 07                	mov    (%edi),%eax
56a83d:	83 c4 0c             	add    $0xc,%esp
56a840:	8b 4f 04             	mov    0x4(%edi),%ecx
56a843:	8b eb                	mov    %ebx,%ebp
56a845:	0f 10 00             	movups (%eax),%xmm0
56a848:	0f 11 01             	movups %xmm0,(%ecx)
56a84b:	5f                   	pop    %edi
56a84c:	5e                   	pop    %esi
56a84d:	8b c5                	mov    %ebp,%eax
56a84f:	5d                   	pop    %ebp
56a850:	5b                   	pop    %ebx
56a851:	59                   	pop    %ecx
56a852:	c3                   	ret
56a853:	cc                   	int3
56a854:	cc                   	int3
56a855:	cc                   	int3
56a856:	cc                   	int3
56a857:	cc                   	int3
56a858:	cc                   	int3
56a859:	cc                   	int3
56a85a:	cc                   	int3
56a85b:	cc                   	int3
56a85c:	cc                   	int3
56a85d:	cc                   	int3
56a85e:	cc                   	int3
56a85f:	cc                   	int3
56a860:	53                   	push   %ebx
56a861:	8b 5c 24 08          	mov    0x8(%esp),%ebx
56a865:	56                   	push   %esi
56a866:	57                   	push   %edi
56a867:	f7 43 18 00 02 00 00 	testl  $0x200,0x18(%ebx)
56a86e:	8b 43 24             	mov    0x24(%ebx),%eax
56a871:	8b 70 04             	mov    0x4(%eax),%esi
56a874:	74 02                	je     0x56a878
56a876:	8b 30                	mov    (%eax),%esi
56a878:	6a 0f                	push   $0xf
56a87a:	53                   	push   %ebx
56a87b:	e8 80 e2 f8 ff       	call   0x4f8b00
56a880:	8b 44 24 20          	mov    0x20(%esp),%eax
56a884:	83 c4 08             	add    $0x8,%esp
56a887:	85 c0                	test   %eax,%eax
56a889:	78 06                	js     0x56a891
56a88b:	8b 3e                	mov    (%esi),%edi
56a88d:	3b c7                	cmp    %edi,%eax
56a88f:	77 02                	ja     0x56a893
56a891:	8b f8                	mov    %eax,%edi
56a893:	8b 44 24 14          	mov    0x14(%esp),%eax
56a897:	85 c0                	test   %eax,%eax
56a899:	74 1f                	je     0x56a8ba
56a89b:	85 ff                	test   %edi,%edi
56a89d:	7e 1b                	jle    0x56a8ba
56a89f:	57                   	push   %edi
56a8a0:	ff 76 04             	push   0x4(%esi)
56a8a3:	50                   	push   %eax
56a8a4:	e8 27 85 06 00       	call   0x5d2dd0
56a8a9:	29 3e                	sub    %edi,(%esi)
56a8ab:	83 c4 0c             	add    $0xc,%esp
56a8ae:	29 7e 08             	sub    %edi,0x8(%esi)
56a8b1:	01 7e 04             	add    %edi,0x4(%esi)
56a8b4:	8b c7                	mov    %edi,%eax
56a8b6:	5f                   	pop    %edi
56a8b7:	5e                   	pop    %esi
56a8b8:	5b                   	pop    %ebx
56a8b9:	c3                   	ret
56a8ba:	83 3e 00             	cmpl   $0x0,(%esi)
56a8bd:	75 f5                	jne    0x56a8b4
56a8bf:	8b 73 20             	mov    0x20(%ebx),%esi
56a8c2:	85 f6                	test   %esi,%esi
56a8c4:	74 0b                	je     0x56a8d1
56a8c6:	6a 09                	push   $0x9
56a8c8:	53                   	push   %ebx
56a8c9:	e8 b2 eb f8 ff       	call   0x4f9480
56a8ce:	83 c4 08             	add    $0x8,%esp
56a8d1:	5f                   	pop    %edi
56a8d2:	8b c6                	mov    %esi,%eax
56a8d4:	5e                   	pop    %esi
56a8d5:	5b                   	pop    %ebx
56a8d6:	c3                   	ret
56a8d7:	cc                   	int3
56a8d8:	cc                   	int3
56a8d9:	cc                   	int3
56a8da:	cc                   	int3
56a8db:	cc                   	int3
56a8dc:	cc                   	int3
56a8dd:	cc                   	int3
56a8de:	cc                   	int3
56a8df:	cc                   	int3
56a8e0:	53                   	push   %ebx
56a8e1:	55                   	push   %ebp
56a8e2:	8b 6c 24 10          	mov    0x10(%esp),%ebp
56a8e6:	56                   	push   %esi
56a8e7:	8b f5                	mov    %ebp,%esi
56a8e9:	57                   	push   %edi
56a8ea:	8d 4e 01             	lea    0x1(%esi),%ecx
56a8ed:	0f 1f 00             	nopl   (%eax)
56a8f0:	8a 06                	mov    (%esi),%al
56a8f2:	46                   	inc    %esi
56a8f3:	84 c0                	test   %al,%al
56a8f5:	75 f9                	jne    0x56a8f0
56a8f7:	8b 7c 24 14          	mov    0x14(%esp),%edi
56a8fb:	2b f1                	sub    %ecx,%esi
56a8fd:	8b 5f 24             	mov    0x24(%edi),%ebx
56a900:	85 ed                	test   %ebp,%ebp
56a902:	75 22                	jne    0x56a926
56a904:	68 e0 00 00 00       	push   $0xe0
56a909:	68 68 86 65 00       	push   $0x658668
56a90e:	6a 73                	push   $0x73
56a910:	6a 75                	push   $0x75
56a912:	6a 20                	push   $0x20
56a914:	e8 67 e6 f6 ff       	call   0x4d8f80
56a919:	83 c4 14             	add    $0x14,%esp
56a91c:	83 ce ff             	or     $0xffffffff,%esi
56a91f:	5f                   	pop    %edi
56a920:	8b c6                	mov    %esi,%eax
56a922:	5e                   	pop    %esi
56a923:	5d                   	pop    %ebp
56a924:	5b                   	pop    %ebx
56a925:	c3                   	ret
56a926:	f7 47 18 00 02 00 00 	testl  $0x200,0x18(%edi)
56a92d:	74 0e                	je     0x56a93d
56a92f:	68 e4 00 00 00       	push   $0xe4
56a934:	68 68 86 65 00       	push   $0x658668
56a939:	6a 7e                	push   $0x7e
56a93b:	eb d3                	jmp    0x56a910
56a93d:	6a 0f                	push   $0xf
56a93f:	57                   	push   %edi
56a940:	e8 bb e1 f8 ff       	call   0x4f8b00
56a945:	83 c4 08             	add    $0x8,%esp
56a948:	85 f6                	test   %esi,%esi
56a94a:	75 07                	jne    0x56a953
56a94c:	5f                   	pop    %edi
56a94d:	5e                   	pop    %esi
56a94e:	5d                   	pop    %ebp
56a94f:	33 c0                	xor    %eax,%eax
56a951:	5b                   	pop    %ebx
56a952:	c3                   	ret
56a953:	83 7f 10 00          	cmpl   $0x0,0x10(%edi)
56a957:	8b 43 04             	mov    0x4(%ebx),%eax
56a95a:	8b 08                	mov    (%eax),%ecx
56a95c:	89 4c 24 14          	mov    %ecx,0x14(%esp)
56a960:	74 43                	je     0x56a9a5
56a962:	8b 7f 24             	mov    0x24(%edi),%edi
56a965:	85 ff                	test   %edi,%edi
56a967:	74 3c                	je     0x56a9a5
56a969:	8b 07                	mov    (%edi),%eax
56a96b:	8b 57 04             	mov    0x4(%edi),%edx
56a96e:	8b 40 04             	mov    0x4(%eax),%eax
56a971:	89 44 24 18          	mov    %eax,0x18(%esp)
56a975:	8b 42 04             	mov    0x4(%edx),%eax
56a978:	3b 44 24 18          	cmp    0x18(%esp),%eax
56a97c:	74 27                	je     0x56a9a5
56a97e:	ff 32                	push   (%edx)
56a980:	50                   	push   %eax
56a981:	ff 74 24 20          	push   0x20(%esp)
56a985:	e8 46 84 06 00       	call   0x5d2dd0
56a98a:	8b 47 04             	mov    0x4(%edi),%eax
56a98d:	83 c4 0c             	add    $0xc,%esp
56a990:	8b 0f                	mov    (%edi),%ecx
56a992:	8b 00                	mov    (%eax),%eax
56a994:	89 01                	mov    %eax,(%ecx)
56a996:	8b 07                	mov    (%edi),%eax
56a998:	8b 4f 04             	mov    0x4(%edi),%ecx
56a99b:	8b 40 04             	mov    0x4(%eax),%eax
56a99e:	89 41 04             	mov    %eax,0x4(%ecx)
56a9a1:	8b 4c 24 14          	mov    0x14(%esp),%ecx
56a9a5:	8d 04 31             	lea    (%ecx,%esi,1),%eax
56a9a8:	50                   	push   %eax
56a9a9:	ff 33                	push   (%ebx)
56a9ab:	e8 10 0d fa ff       	call   0x50b6c0
56a9b0:	83 c4 08             	add    $0x8,%esp
56a9b3:	85 c0                	test   %eax,%eax
56a9b5:	0f 84 61 ff ff ff    	je     0x56a91c
56a9bb:	8b 03                	mov    (%ebx),%eax
56a9bd:	56                   	push   %esi
56a9be:	55                   	push   %ebp
56a9bf:	8b 40 04             	mov    0x4(%eax),%eax
56a9c2:	03 44 24 1c          	add    0x1c(%esp),%eax
56a9c6:	50                   	push   %eax
56a9c7:	e8 04 84 06 00       	call   0x5d2dd0
56a9cc:	8b 03                	mov    (%ebx),%eax
56a9ce:	83 c4 0c             	add    $0xc,%esp
56a9d1:	8b 4b 04             	mov    0x4(%ebx),%ecx
56a9d4:	0f 10 00             	movups (%eax),%xmm0
56a9d7:	5f                   	pop    %edi
56a9d8:	8b c6                	mov    %esi,%eax
56a9da:	5e                   	pop    %esi
56a9db:	5d                   	pop    %ebp
56a9dc:	0f 11 01             	movups %xmm0,(%ecx)
56a9df:	5b                   	pop    %ebx
56a9e0:	c3                   	ret
56a9e1:	cc                   	int3
56a9e2:	cc                   	int3
56a9e3:	cc                   	int3
56a9e4:	cc                   	int3
56a9e5:	cc                   	int3
56a9e6:	cc                   	int3
56a9e7:	cc                   	int3
56a9e8:	cc                   	int3
56a9e9:	cc                   	int3
56a9ea:	cc                   	int3
56a9eb:	cc                   	int3
56a9ec:	cc                   	int3
56a9ed:	cc                   	int3
56a9ee:	cc                   	int3
56a9ef:	cc                   	int3
56a9f0:	55                   	push   %ebp
56a9f1:	8b 6c 24 08          	mov    0x8(%esp),%ebp
56a9f5:	56                   	push   %esi
56a9f6:	f7 45 18 00 02 00 00 	testl  $0x200,0x18(%ebp)
56a9fd:	8b 45 24             	mov    0x24(%ebp),%eax
56aa00:	8b 70 04             	mov    0x4(%eax),%esi
56aa03:	74 02                	je     0x56aa07
56aa05:	8b 30                	mov    (%eax),%esi
56aa07:	6a 0f                	push   $0xf
56aa09:	55                   	push   %ebp
56aa0a:	e8 f1 e0 f8 ff       	call   0x4f8b00
56aa0f:	8b 54 24 1c          	mov    0x1c(%esp),%edx
56aa13:	83 c4 08             	add    $0x8,%esp
56aa16:	4a                   	dec    %edx
56aa17:	3b 16                	cmp    (%esi),%edx
56aa19:	0f 4d 16             	cmovge (%esi),%edx
56aa1c:	85 d2                	test   %edx,%edx
56aa1e:	7f 0c                	jg     0x56aa2c
56aa20:	8b 44 24 10          	mov    0x10(%esp),%eax
56aa24:	5e                   	pop    %esi
56aa25:	5d                   	pop    %ebp
56aa26:	c6 00 00             	movb   $0x0,(%eax)
56aa29:	33 c0                	xor    %eax,%eax
56aa2b:	c3                   	ret
56aa2c:	8b 4e 04             	mov    0x4(%esi),%ecx
56aa2f:	33 f6                	xor    %esi,%esi
56aa31:	80 3c 0e 0a          	cmpb   $0xa,(%esi,%ecx,1)
56aa35:	74 07                	je     0x56aa3e
56aa37:	46                   	inc    %esi
56aa38:	3b f2                	cmp    %edx,%esi
56aa3a:	7c f5                	jl     0x56aa31
56aa3c:	eb 01                	jmp    0x56aa3f
56aa3e:	46                   	inc    %esi
56aa3f:	f7 45 18 00 02 00 00 	testl  $0x200,0x18(%ebp)
56aa46:	8b 45 24             	mov    0x24(%ebp),%eax
56aa49:	53                   	push   %ebx
56aa4a:	57                   	push   %edi
56aa4b:	8b 58 04             	mov    0x4(%eax),%ebx
56aa4e:	74 02                	je     0x56aa52
56aa50:	8b 18                	mov    (%eax),%ebx
56aa52:	6a 0f                	push   $0xf
56aa54:	55                   	push   %ebp
56aa55:	e8 a6 e0 f8 ff       	call   0x4f8b00
56aa5a:	83 c4 08             	add    $0x8,%esp
56aa5d:	85 f6                	test   %esi,%esi
56aa5f:	78 06                	js     0x56aa67
56aa61:	8b 3b                	mov    (%ebx),%edi
56aa63:	3b f7                	cmp    %edi,%esi
56aa65:	77 02                	ja     0x56aa69
56aa67:	8b fe                	mov    %esi,%edi
56aa69:	8b 74 24 18          	mov    0x18(%esp),%esi
56aa6d:	85 f6                	test   %esi,%esi
56aa6f:	74 24                	je     0x56aa95
56aa71:	85 ff                	test   %edi,%edi
56aa73:	7e 20                	jle    0x56aa95
56aa75:	57                   	push   %edi
56aa76:	ff 73 04             	push   0x4(%ebx)
56aa79:	56                   	push   %esi
56aa7a:	e8 51 83 06 00       	call   0x5d2dd0
56aa7f:	29 3b                	sub    %edi,(%ebx)
56aa81:	83 c4 0c             	add    $0xc,%esp
56aa84:	29 7b 08             	sub    %edi,0x8(%ebx)
56aa87:	8b c7                	mov    %edi,%eax
56aa89:	01 7b 04             	add    %edi,0x4(%ebx)
56aa8c:	c6 04 37 00          	movb   $0x0,(%edi,%esi,1)
56aa90:	5f                   	pop    %edi
56aa91:	5b                   	pop    %ebx
56aa92:	5e                   	pop    %esi
56aa93:	5d                   	pop    %ebp
56aa94:	c3                   	ret
56aa95:	83 3b 00             	cmpl   $0x0,(%ebx)
56aa98:	75 12                	jne    0x56aaac
56aa9a:	8b 7d 20             	mov    0x20(%ebp),%edi
56aa9d:	85 ff                	test   %edi,%edi
56aa9f:	74 13                	je     0x56aab4
56aaa1:	6a 09                	push   $0x9
56aaa3:	55                   	push   %ebp
56aaa4:	e8 d7 e9 f8 ff       	call   0x4f9480
56aaa9:	83 c4 08             	add    $0x8,%esp
56aaac:	85 ff                	test   %edi,%edi
56aaae:	7e 04                	jle    0x56aab4
56aab0:	c6 04 37 00          	movb   $0x0,(%edi,%esi,1)
56aab4:	8b c7                	mov    %edi,%eax
56aab6:	5f                   	pop    %edi
56aab7:	5b                   	pop    %ebx
56aab8:	5e                   	pop    %esi
56aab9:	5d                   	pop    %ebp
56aaba:	c3                   	ret
56aabb:	cc                   	int3
56aabc:	cc                   	int3
56aabd:	cc                   	int3
56aabe:	cc                   	int3
56aabf:	cc                   	int3
56aac0:	53                   	push   %ebx
56aac1:	55                   	push   %ebp
56aac2:	56                   	push   %esi
56aac3:	57                   	push   %edi
56aac4:	8b 7c 24 14          	mov    0x14(%esp),%edi
56aac8:	bb 01 00 00 00       	mov    $0x1,%ebx
56aacd:	8b 6f 18             	mov    0x18(%edi),%ebp
56aad0:	8b d5                	mov    %ebp,%edx
56aad2:	8b 77 24             	mov    0x24(%edi),%esi
56aad5:	81 e2 00 02 00 00    	and    $0x200,%edx
56aadb:	74 04                	je     0x56aae1
56aadd:	8b 0e                	mov    (%esi),%ecx
56aadf:	eb 03                	jmp    0x56aae4
56aae1:	8b 4e 04             	mov    0x4(%esi),%ecx
56aae4:	8b 44 24 18          	mov    0x18(%esp),%eax
56aae8:	48                   	dec    %eax
56aae9:	3d 81 00 00 00       	cmp    $0x81,%eax
56aaee:	0f 87 17 01 00 00    	ja     0x56ac0b
56aaf4:	0f b6 80 44 ac 56 00 	movzbl 0x56ac44(%eax),%eax
56aafb:	ff 24 85 14 ac 56 00 	jmp    *0x56ac14(,%eax,4)
56ab02:	8b 3e                	mov    (%esi),%edi
56ab04:	8b 47 04             	mov    0x4(%edi),%eax
56ab07:	85 c0                	test   %eax,%eax
56ab09:	0f 84 fe 00 00 00    	je     0x56ac0d
56ab0f:	85 d2                	test   %edx,%edx
56ab11:	75 2d                	jne    0x56ab40
56ab13:	f7 c5 00 04 00 00    	test   $0x400,%ebp
56ab19:	75 15                	jne    0x56ab30
56ab1b:	ff 77 08             	push   0x8(%edi)
56ab1e:	52                   	push   %edx