56a649:	48                   	dec    %eax
56a64a:	83 e1 01             	and    $0x1,%ecx
56a64d:	3b f8                	cmp    %eax,%edi
56a64f:	74 0a                	je     0x56a65b
56a651:	80 7e 01 2e          	cmpb   $0x2e,0x1(%esi)
56a655:	74 04                	je     0x56a65b
56a657:	33 c0                	xor    %eax,%eax
56a659:	eb 05                	jmp    0x56a660
56a65b:	b8 01 00 00 00       	mov    $0x1,%eax
56a660:	85 d2                	test   %edx,%edx
56a662:	0f 85 c9 00 00 00    	jne    0x56a731
56a668:	f6 c3 08             	test   $0x8,%bl
56a66b:	0f 85 c0 00 00 00    	jne    0x56a731
56a671:	85 ed                	test   %ebp,%ebp
56a673:	0f 85 b8 00 00 00    	jne    0x56a731
56a679:	f6 44 24 20 04       	testb  $0x4,0x20(%esp)
56a67e:	74 10                	je     0x56a690
56a680:	85 c9                	test   %ecx,%ecx
56a682:	0f 84 a9 00 00 00    	je     0x56a731
56a688:	85 c0                	test   %eax,%eax
56a68a:	0f 84 a1 00 00 00    	je     0x56a731
56a690:	85 c9                	test   %ecx,%ecx
56a692:	75 08                	jne    0x56a69c
56a694:	85 c0                	test   %eax,%eax
56a696:	0f 84 95 00 00 00    	je     0x56a731
56a69c:	8b d6                	mov    %esi,%edx
56a69e:	83 e3 fe             	and    $0xfffffffe,%ebx
56a6a1:	89 54 24 10          	mov    %edx,0x10(%esp)
56a6a5:	eb 6a                	jmp    0x56a711
56a6a7:	80 f9 61             	cmp    $0x61,%cl
56a6aa:	72 05                	jb     0x56a6b1
56a6ac:	80 f9 7a             	cmp    $0x7a,%cl
56a6af:	76 15                	jbe    0x56a6c6
56a6b1:	80 f9 41             	cmp    $0x41,%cl
56a6b4:	72 05                	jb     0x56a6bb
56a6b6:	80 f9 5a             	cmp    $0x5a,%cl
56a6b9:	76 0b                	jbe    0x56a6c6
56a6bb:	8d 41 d0             	lea    -0x30(%ecx),%eax
56a6be:	3c 09                	cmp    $0x9,%al
56a6c0:	77 30                	ja     0x56a6f2
56a6c2:	8b 44 24 1c          	mov    0x1c(%esp),%eax
56a6c6:	f6 c3 01             	test   $0x1,%bl
56a6c9:	74 22                	je     0x56a6ed
56a6cb:	2b c7                	sub    %edi,%eax
56a6cd:	83 f8 04             	cmp    $0x4,%eax
56a6d0:	72 1b                	jb     0x56a6ed
56a6d2:	6a 04                	push   $0x4
56a6d4:	68 d8 85 65 00       	push   $0x6585d8
56a6d9:	56                   	push   %esi
56a6da:	e8 7a b2 07 00       	call   0x5e5959
56a6df:	8b 54 24 1c          	mov    0x1c(%esp),%edx
56a6e3:	83 c4 0c             	add    $0xc,%esp
56a6e6:	85 c0                	test   %eax,%eax
56a6e8:	75 03                	jne    0x56a6ed
56a6ea:	83 cb 08             	or     $0x8,%ebx
56a6ed:	83 e3 fa             	and    $0xfffffffa,%ebx
56a6f0:	eb 1f                	jmp    0x56a711
56a6f2:	80 f9 2e             	cmp    $0x2e,%cl
56a6f5:	75 0d                	jne    0x56a704
56a6f7:	f6 c3 05             	test   $0x5,%bl
56a6fa:	75 35                	jne    0x56a731
56a6fc:	bb 01 00 00 00       	mov    $0x1,%ebx
56a701:	45                   	inc    %ebp
56a702:	eb 0d                	jmp    0x56a711
56a704:	80 f9 2d             	cmp    $0x2d,%cl
56a707:	75 28                	jne    0x56a731
56a709:	f6 c3 01             	test   $0x1,%bl
56a70c:	75 23                	jne    0x56a731
56a70e:	83 cb 04             	or     $0x4,%ebx
56a711:	8b 44 24 1c          	mov    0x1c(%esp),%eax
56a715:	47                   	inc    %edi
56a716:	46                   	inc    %esi
56a717:	3b f8                	cmp    %eax,%edi
56a719:	0f 82 21 ff ff ff    	jb     0x56a640
56a71f:	f6 c3 05             	test   $0x5,%bl
56a722:	75 0d                	jne    0x56a731
56a724:	83 fd 02             	cmp    $0x2,%ebp
56a727:	7c 08                	jl     0x56a731
56a729:	5f                   	pop    %edi
56a72a:	5e                   	pop    %esi
56a72b:	5d                   	pop    %ebp
56a72c:	8b c2                	mov    %edx,%eax
56a72e:	5b                   	pop    %ebx
56a72f:	59                   	pop    %ecx
56a730:	c3                   	ret
56a731:	5f                   	pop    %edi
56a732:	5e                   	pop    %esi
56a733:	5d                   	pop    %ebp
56a734:	33 c0                	xor    %eax,%eax
56a736:	5b                   	pop    %ebx
56a737:	59                   	pop    %ecx
56a738:	c3                   	ret
56a739:	cc                   	int3
56a73a:	cc                   	int3
56a73b:	cc                   	int3
56a73c:	cc                   	int3
56a73d:	cc                   	int3
56a73e:	cc                   	int3
56a73f:	cc                   	int3
56a740:	b8 04 00 00 00       	mov    $0x4,%eax
56a745:	e8 66 70 06 00       	call   0x5d17b0
56a74a:	53                   	push   %ebx
56a74b:	55                   	push   %ebp
56a74c:	56                   	push   %esi
56a74d:	8b 74 24 14          	mov    0x14(%esp),%esi
56a751:	83 cd ff             	or     $0xffffffff,%ebp
56a754:	83 7c 24 18 00       	cmpl   $0x0,0x18(%esp)
56a759:	57                   	push   %edi
56a75a:	8b 7e 24             	mov    0x24(%esi),%edi
56a75d:	75 20                	jne    0x56a77f
56a75f:	68 e0 00 00 00       	push   $0xe0
56a764:	68 68 86 65 00       	push   $0x658668
56a769:	6a 73                	push   $0x73
56a76b:	6a 75                	push   $0x75
56a76d:	6a 20                	push   $0x20
56a76f:	e8 0c e8 f6 ff       	call   0x4d8f80
56a774:	83 c4 14             	add    $0x14,%esp
56a777:	8b c5                	mov    %ebp,%eax
56a779:	5f                   	pop    %edi
56a77a:	5e                   	pop    %esi
56a77b:	5d                   	pop    %ebp
56a77c:	5b                   	pop    %ebx
56a77d:	59                   	pop    %ecx
56a77e:	c3                   	ret
56a77f:	f7 46 18 00 02 00 00 	testl  $0x200,0x18(%esi)
56a786:	74 20                	je     0x56a7a8
56a788:	68 e4 00 00 00       	push   $0xe4
56a78d:	68 68 86 65 00       	push   $0x658668
56a792:	6a 7e                	push   $0x7e
56a794:	6a 75                	push   $0x75
56a796:	6a 20                	push   $0x20
56a798:	e8 e3 e7 f6 ff       	call   0x4d8f80
56a79d:	83 c4 14             	add    $0x14,%esp
56a7a0:	8b c5                	mov    %ebp,%eax
56a7a2:	5f                   	pop    %edi
56a7a3:	5e                   	pop    %esi
56a7a4:	5d                   	pop    %ebp
56a7a5:	5b                   	pop    %ebx
56a7a6:	59                   	pop    %ecx
56a7a7:	c3                   	ret
56a7a8:	6a 0f                	push   $0xf
56a7aa:	56                   	push   %esi
56a7ab:	e8 50 e3 f8 ff       	call   0x4f8b00
56a7b0:	8b 5c 24 28          	mov    0x28(%esp),%ebx
56a7b4:	83 c4 08             	add    $0x8,%esp
56a7b7:	85 db                	test   %ebx,%ebx
56a7b9:	75 08                	jne    0x56a7c3
56a7bb:	5f                   	pop    %edi
56a7bc:	5e                   	pop    %esi
56a7bd:	5d                   	pop    %ebp
56a7be:	33 c0                	xor    %eax,%eax
56a7c0:	5b                   	pop    %ebx
56a7c1:	59                   	pop    %ecx
56a7c2:	c3                   	ret
56a7c3:	83 7e 10 00          	cmpl   $0x0,0x10(%esi)
56a7c7:	8b 47 04             	mov    0x4(%edi),%eax
56a7ca:	8b 08                	mov    (%eax),%ecx
56a7cc:	89 4c 24 10          	mov    %ecx,0x10(%esp)
56a7d0:	74 43                	je     0x56a815
56a7d2:	8b 76 24             	mov    0x24(%esi),%esi
56a7d5:	85 f6                	test   %esi,%esi
56a7d7:	74 3c                	je     0x56a815
56a7d9:	8b 06                	mov    (%esi),%eax
56a7db:	8b 56 04             	mov    0x4(%esi),%edx
56a7de:	8b 40 04             	mov    0x4(%eax),%eax
56a7e1:	89 44 24 18          	mov    %eax,0x18(%esp)
56a7e5:	8b 42 04             	mov    0x4(%edx),%eax
56a7e8:	3b 44 24 18          	cmp    0x18(%esp),%eax
56a7ec:	74 27                	je     0x56a815
56a7ee:	ff 32                	push   (%edx)
56a7f0:	50                   	push   %eax
56a7f1:	ff 74 24 20          	push   0x20(%esp)
56a7f5:	e8 d6 85 06 00       	call   0x5d2dd0
56a7fa:	8b 46 04             	mov    0x4(%esi),%eax
56a7fd:	83 c4 0c             	add    $0xc,%esp
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