56f715:	8b 4c 24 2c          	mov    0x2c(%esp),%ecx
56f719:	53                   	push   %ebx
56f71a:	55                   	push   %ebp
56f71b:	8b 6c 24 38          	mov    0x38(%esp),%ebp
56f71f:	33 db                	xor    %ebx,%ebx
56f721:	8b 01                	mov    (%ecx),%eax
56f723:	56                   	push   %esi
56f724:	8b 74 24 40          	mov    0x40(%esp),%esi
56f728:	57                   	push   %edi
56f729:	33 ff                	xor    %edi,%edi
56f72b:	89 6c 24 10          	mov    %ebp,0x10(%esp)
56f72f:	2b c3                	sub    %ebx,%eax
56f731:	74 75                	je     0x56f7a8
56f733:	83 e8 01             	sub    $0x1,%eax
56f736:	0f 85 df 00 00 00    	jne    0x56f81b
56f73c:	8b 41 04             	mov    0x4(%ecx),%eax
56f73f:	8b 28                	mov    (%eax),%ebp
56f741:	8b 7d 00             	mov    0x0(%ebp),%edi
56f744:	85 ff                	test   %edi,%edi
56f746:	0f 88 a0 01 00 00    	js     0x56f8ec
56f74c:	3b fe                	cmp    %esi,%edi
56f74e:	0f 8f 98 01 00 00    	jg     0x56f8ec
56f754:	85 ff                	test   %edi,%edi
56f756:	7e 2d                	jle    0x56f785
56f758:	57                   	push   %edi
56f759:	ff 75 08             	push   0x8(%ebp)
56f75c:	8d 44 24 1c          	lea    0x1c(%esp),%eax
56f760:	50                   	push   %eax
56f761:	e8 6a 36 06 00       	call   0x5d2dd0
56f766:	8b 45 0c             	mov    0xc(%ebp),%eax
56f769:	83 c4 0c             	add    $0xc,%esp
56f76c:	83 e0 07             	and    $0x7,%eax
56f76f:	74 14                	je     0x56f785
56f771:	b9 08 00 00 00       	mov    $0x8,%ecx
56f776:	2b c8                	sub    %eax,%ecx
56f778:	b8 ff 00 00 00       	mov    $0xff,%eax
56f77d:	d3 f8                	sar    %cl,%eax
56f77f:	f6 d0                	not    %al
56f781:	20 44 3c 13          	and    %al,0x13(%esp,%edi,1)
56f785:	8b c6                	mov    %esi,%eax
56f787:	2b c7                	sub    %edi,%eax
56f789:	50                   	push   %eax
56f78a:	8d 44 24 18          	lea    0x18(%esp),%eax
56f78e:	03 c7                	add    %edi,%eax
56f790:	6a 00                	push   $0x0
56f792:	50                   	push   %eax
56f793:	e8 d8 34 06 00       	call   0x5d2c70
56f798:	8b 6c 24 1c          	mov    0x1c(%esp),%ebp
56f79c:	8d 3c f5 00 00 00 00 	lea    0x0(,%esi,8),%edi
56f7a3:	83 c4 0c             	add    $0xc,%esp
56f7a6:	eb 73                	jmp    0x56f81b
56f7a8:	8b 41 04             	mov    0x4(%ecx),%eax
56f7ab:	89 44 24 10          	mov    %eax,0x10(%esp)
56f7af:	8b 38                	mov    (%eax),%edi
56f7b1:	85 ff                	test   %edi,%edi
56f7b3:	0f 88 33 01 00 00    	js     0x56f8ec
56f7b9:	3b fe                	cmp    %esi,%edi
56f7bb:	0f 8f 2b 01 00 00    	jg     0x56f8ec
56f7c1:	85 ff                	test   %edi,%edi
56f7c3:	7e 31                	jle    0x56f7f6
56f7c5:	57                   	push   %edi
56f7c6:	ff 70 08             	push   0x8(%eax)
56f7c9:	8d 44 24 1c          	lea    0x1c(%esp),%eax
56f7cd:	50                   	push   %eax
56f7ce:	e8 fd 35 06 00       	call   0x5d2dd0
56f7d3:	8b 44 24 1c          	mov    0x1c(%esp),%eax
56f7d7:	83 c4 0c             	add    $0xc,%esp
56f7da:	8b 40 0c             	mov    0xc(%eax),%eax
56f7dd:	83 e0 07             	and    $0x7,%eax
56f7e0:	74 14                	je     0x56f7f6
56f7e2:	b9 08 00 00 00       	mov    $0x8,%ecx
56f7e7:	2b c8                	sub    %eax,%ecx
56f7e9:	b8 ff 00 00 00       	mov    $0xff,%eax
56f7ee:	d3 f8                	sar    %cl,%eax
56f7f0:	f6 d0                	not    %al
56f7f2:	20 44 3c 13          	and    %al,0x13(%esp,%edi,1)
56f7f6:	8b c6                	mov    %esi,%eax
56f7f8:	2b c7                	sub    %edi,%eax
56f7fa:	50                   	push   %eax
56f7fb:	8d 44 24 18          	lea    0x18(%esp),%eax
56f7ff:	03 c7                	add    %edi,%eax
56f801:	6a 00                	push   $0x0
56f803:	50                   	push   %eax
56f804:	e8 67 34 06 00       	call   0x5d2c70
56f809:	8b 44 24 1c          	mov    0x1c(%esp),%eax
56f80d:	83 c4 0c             	add    $0xc,%esp
56f810:	c1 e7 03             	shl    $0x3,%edi
56f813:	8b 40 0c             	mov    0xc(%eax),%eax
56f816:	83 e0 07             	and    $0x7,%eax
56f819:	2b f8                	sub    %eax,%edi
56f81b:	8b 45 00             	mov    0x0(%ebp),%eax
56f81e:	83 e8 00             	sub    $0x0,%eax
56f821:	74 2a                	je     0x56f84d
56f823:	83 e8 01             	sub    $0x1,%eax
56f826:	75 50                	jne    0x56f878
56f828:	50                   	push   %eax
56f829:	8b 45 04             	mov    0x4(%ebp),%eax
56f82c:	56                   	push   %esi
56f82d:	ff 30                	push   (%eax)
56f82f:	8d 44 24 30          	lea    0x30(%esp),%eax
56f833:	50                   	push   %eax
56f834:	e8 77 0e 00 00       	call   0x5706b0
56f839:	83 c4 10             	add    $0x10,%esp
56f83c:	85 c0                	test   %eax,%eax
56f83e:	0f 84 a8 00 00 00    	je     0x56f8ec
56f844:	8d 1c f5 00 00 00 00 	lea    0x0(,%esi,8),%ebx
56f84b:	eb 2b                	jmp    0x56f878
56f84d:	6a 00                	push   $0x0
56f84f:	56                   	push   %esi
56f850:	ff 75 04             	push   0x4(%ebp)
56f853:	8d 44 24 30          	lea    0x30(%esp),%eax
56f857:	50                   	push   %eax
56f858:	e8 53 0e 00 00       	call   0x5706b0
56f85d:	83 c4 10             	add    $0x10,%esp
56f860:	85 c0                	test   %eax,%eax
56f862:	0f 84 84 00 00 00    	je     0x56f8ec
56f868:	8b 45 04             	mov    0x4(%ebp),%eax
56f86b:	8b 48 0c             	mov    0xc(%eax),%ecx
56f86e:	8b 18                	mov    (%eax),%ebx
56f870:	83 e1 07             	and    $0x7,%ecx
56f873:	c1 e3 03             	shl    $0x3,%ebx
56f876:	2b d9                	sub    %ecx,%ebx
56f878:	8d 4c 24 14          	lea    0x14(%esp),%ecx
56f87c:	8d 54 24 24          	lea    0x24(%esp),%edx
56f880:	83 ee 04             	sub    $0x4,%esi
56f883:	72 11                	jb     0x56f896
56f885:	8b 01                	mov    (%ecx),%eax
56f887:	3b 02                	cmp    (%edx),%eax
56f889:	75 10                	jne    0x56f89b
56f88b:	83 c1 04             	add    $0x4,%ecx
56f88e:	83 c2 04             	add    $0x4,%edx
56f891:	83 ee 04             	sub    $0x4,%esi
56f894:	73 ef                	jae    0x56f885
56f896:	83 fe fc             	cmp    $0xfffffffc,%esi
56f899:	74 34                	je     0x56f8cf
56f89b:	8a 01                	mov    (%ecx),%al
56f89d:	3a 02                	cmp    (%edx),%al
56f89f:	75 27                	jne    0x56f8c8
56f8a1:	83 fe fd             	cmp    $0xfffffffd,%esi
56f8a4:	74 29                	je     0x56f8cf
56f8a6:	8a 41 01             	mov    0x1(%ecx),%al
56f8a9:	3a 42 01             	cmp    0x1(%edx),%al
56f8ac:	75 1a                	jne    0x56f8c8
56f8ae:	83 fe fe             	cmp    $0xfffffffe,%esi
56f8b1:	74 1c                	je     0x56f8cf
56f8b3:	8a 41 02             	mov    0x2(%ecx),%al
56f8b6:	3a 42 02             	cmp    0x2(%edx),%al
56f8b9:	75 0d                	jne    0x56f8c8
56f8bb:	83 fe ff             	cmp    $0xffffffff,%esi
56f8be:	74 0f                	je     0x56f8cf
56f8c0:	8a 41 03             	mov    0x3(%ecx),%al
56f8c3:	3a 42 03             	cmp    0x3(%edx),%al
56f8c6:	74 07                	je     0x56f8cf
56f8c8:	1b c0                	sbb    %eax,%eax
56f8ca:	83 c8 01             	or     $0x1,%eax
56f8cd:	eb 02                	jmp    0x56f8d1
56f8cf:	33 c0                	xor    %eax,%eax
56f8d1:	85 c0                	test   %eax,%eax
56f8d3:	75 1a                	jne    0x56f8ef
56f8d5:	2b fb                	sub    %ebx,%edi
56f8d7:	8b c7                	mov    %edi,%eax
56f8d9:	5f                   	pop    %edi
56f8da:	5e                   	pop    %esi
56f8db:	5d                   	pop    %ebp
56f8dc:	5b                   	pop    %ebx
56f8dd:	8b 4c 24 24          	mov    0x24(%esp),%ecx
56f8e1:	33 cc                	xor    %esp,%ecx
56f8e3:	e8 3e 21 06 00       	call   0x5d1a26
56f8e8:	83 c4 28             	add    $0x28,%esp
56f8eb:	c3                   	ret
56f8ec:	83 c8 ff             	or     $0xffffffff,%eax
56f8ef:	8b 4c 24 34          	mov    0x34(%esp),%ecx
56f8f3:	5f                   	pop    %edi
56f8f4:	5e                   	pop    %esi
56f8f5:	5d                   	pop    %ebp
56f8f6:	5b                   	pop    %ebx
56f8f7:	33 cc                	xor    %esp,%ecx
56f8f9:	e8 28 21 06 00       	call   0x5d1a26
56f8fe:	83 c4 28             	add    $0x28,%esp
56f901:	c3                   	ret
56f902:	cc                   	int3
56f903:	cc                   	int3
56f904:	cc                   	int3
56f905:	cc                   	int3
56f906:	cc                   	int3
56f907:	cc                   	int3
56f908:	cc                   	int3
56f909:	cc                   	int3
56f90a:	cc                   	int3
56f90b:	cc                   	int3
56f90c:	cc                   	int3
56f90d:	cc                   	int3
56f90e:	cc                   	int3
56f90f:	cc                   	int3
56f910:	b8 78 00 00 00       	mov    $0x78,%eax
56f915:	e8 96 1e 06 00       	call   0x5d17b0
56f91a:	a1 c0 14 69 00       	mov    0x6914c0,%eax
56f91f:	33 c4                	xor    %esp,%eax
56f921:	89 44 24 74          	mov    %eax,0x74(%esp)
56f925:	8b 84 24 80 00 00 00 	mov    0x80(%esp),%eax
56f92c:	53                   	push   %ebx
56f92d:	55                   	push   %ebp
56f92e:	56                   	push   %esi
56f92f:	8b b4 24 88 00 00 00 	mov    0x88(%esp),%esi
56f936:	89 74 24 10          	mov    %esi,0x10(%esp)
56f93a:	57                   	push   %edi
56f93b:	83 e8 01             	sub    $0x1,%eax
56f93e:	74 10                	je     0x56f950
56f940:	83 e8 01             	sub    $0x1,%eax
56f943:	74 04                	je     0x56f949
56f945:	33 db                	xor    %ebx,%ebx
56f947:	eb 0c                	jmp    0x56f955
56f949:	bb 10 00 00 00       	mov    $0x10,%ebx
56f94e:	eb 05                	jmp    0x56f955
56f950:	bb 04 00 00 00       	mov    $0x4,%ebx
56f955:	56                   	push   %esi
56f956:	e8 e5 58 f7 ff       	call   0x4e5240
56f95b:	56                   	push   %esi
56f95c:	33 ed                	xor    %ebp,%ebp
56f95e:	e8 5d 57 f7 ff       	call   0x4e50c0
56f963:	48                   	dec    %eax
56f964:	83 c4 08             	add    $0x8,%esp
56f967:	85 c0                	test   %eax,%eax
56f969:	0f 8e 5b 03 00 00    	jle    0x56fcca
56f96f:	be 01 00 00 00       	mov    $0x1,%esi
56f974:	89 74 24 10          	mov    %esi,0x10(%esp)
56f978:	0f 1f 84 00 00 00 00 	nopl   0x0(%eax,%eax,1)
56f97f:	00
56f980:	55                   	push   %ebp
56f981:	ff 74 24 18          	push   0x18(%esp)
56f985:	e8 f6 58 f7 ff       	call   0x4e5280
56f98a:	56                   	push   %esi
56f98b:	ff 74 24 20          	push   0x20(%esp)
56f98f:	8b f8                	mov    %eax,%edi
56f991:	89 7c 24 2c          	mov    %edi,0x2c(%esp)
56f995:	e8 e6 58 f7 ff       	call   0x4e5280
56f99a:	83 c4 10             	add    $0x10,%esp
56f99d:	8b f0                	mov    %eax,%esi
56f99f:	89 74 24 20          	mov    %esi,0x20(%esp)
56f9a3:	85 ff                	test   %edi,%edi
56f9a5:	0f 84 e4 03 00 00    	je     0x56fd8f
56f9ab:	8b 0f                	mov    (%edi),%ecx
56f9ad:	83 e9 00             	sub    $0x0,%ecx
56f9b0:	74 33                	je     0x56f9e5
56f9b2:	83 e9 01             	sub    $0x1,%ecx
56f9b5:	0f 85 d4 03 00 00    	jne    0x56fd8f
56f9bb:	8b 47 04             	mov    0x4(%edi),%eax
56f9be:	51                   	push   %ecx
56f9bf:	53                   	push   %ebx
56f9c0:	ff 30                	push   (%eax)
56f9c2:	8d 44 24 60          	lea    0x60(%esp),%eax
56f9c6:	50                   	push   %eax
56f9c7:	e8 e4 0c 00 00       	call   0x5706b0
56f9cc:	83 c4 10             	add    $0x10,%esp
56f9cf:	85 c0                	test   %eax,%eax
56f9d1:	0f 84 b8 03 00 00    	je     0x56fd8f
56f9d7:	8b 47 04             	mov    0x4(%edi),%eax
56f9da:	68 ff 00 00 00       	push   $0xff
56f9df:	53                   	push   %ebx
56f9e0:	ff 70 04             	push   0x4(%eax)
56f9e3:	eb 24                	jmp    0x56fa09
56f9e5:	6a 00                	push   $0x0
56f9e7:	53                   	push   %ebx
56f9e8:	ff 77 04             	push   0x4(%edi)
56f9eb:	8d 44 24 60          	lea    0x60(%esp),%eax
56f9ef:	50                   	push   %eax
56f9f0:	e8 bb 0c 00 00       	call   0x5706b0
56f9f5:	83 c4 10             	add    $0x10,%esp
56f9f8:	85 c0                	test   %eax,%eax
56f9fa:	0f 84 8f 03 00 00    	je     0x56fd8f
56fa00:	68 ff 00 00 00       	push   $0xff
56fa05:	53                   	push   %ebx
56fa06:	ff 77 04             	push   0x4(%edi)
56fa09:	8d 44 24 40          	lea    0x40(%esp),%eax
56fa0d:	50                   	push   %eax
56fa0e:	e8 9d 0c 00 00       	call   0x5706b0
56fa13:	83 c4 10             	add    $0x10,%esp
56fa16:	85 c0                	test   %eax,%eax
56fa18:	0f 84 71 03 00 00    	je     0x56fd8f
56fa1e:	85 f6                	test   %esi,%esi
56fa20:	0f 84 69 03 00 00    	je     0x56fd8f
56fa26:	8b 06                	mov    (%esi),%eax
56fa28:	83 e8 00             	sub    $0x0,%eax
56fa2b:	74 33                	je     0x56fa60
56fa2d:	83 e8 01             	sub    $0x1,%eax
56fa30:	0f 85 59 03 00 00    	jne    0x56fd8f
56fa36:	50                   	push   %eax
56fa37:	8b 46 04             	mov    0x4(%esi),%eax
56fa3a:	53                   	push   %ebx
56fa3b:	ff 30                	push   (%eax)
56fa3d:	8d 44 24 30          	lea    0x30(%esp),%eax
56fa41:	50                   	push   %eax
56fa42:	e8 69 0c 00 00       	call   0x5706b0
56fa47:	83 c4 10             	add    $0x10,%esp
56fa4a:	85 c0                	test   %eax,%eax
56fa4c:	0f 84 3d 03 00 00    	je     0x56fd8f
56fa52:	8b 46 04             	mov    0x4(%esi),%eax
56fa55:	68 ff 00 00 00       	push   $0xff
56fa5a:	53                   	push   %ebx
56fa5b:	ff 70 04             	push   0x4(%eax)
56fa5e:	eb 24                	jmp    0x56fa84
56fa60:	6a 00                	push   $0x0
56fa62:	53                   	push   %ebx
56fa63:	ff 76 04             	push   0x4(%esi)
56fa66:	8d 44 24 30          	lea    0x30(%esp),%eax
56fa6a:	50                   	push   %eax
56fa6b:	e8 40 0c 00 00       	call   0x5706b0
56fa70:	83 c4 10             	add    $0x10,%esp
56fa73:	85 c0                	test   %eax,%eax
56fa75:	0f 84 14 03 00 00    	je     0x56fd8f
56fa7b:	68 ff 00 00 00       	push   $0xff
56fa80:	53                   	push   %ebx
56fa81:	ff 76 04             	push   0x4(%esi)
56fa84:	8d 44 24 50          	lea    0x50(%esp),%eax
56fa88:	50                   	push   %eax
56fa89:	e8 22 0c 00 00       	call   0x5706b0
56fa8e:	83 c4 10             	add    $0x10,%esp
56fa91:	85 c0                	test   %eax,%eax
56fa93:	0f 84 f6 02 00 00    	je     0x56fd8f
56fa99:	8b f3                	mov    %ebx,%esi
56fa9b:	8d 4c 24 54          	lea    0x54(%esp),%ecx
56fa9f:	8d 54 24 34          	lea    0x34(%esp),%edx
56faa3:	83 ee 04             	sub    $0x4,%esi
56faa6:	72 11                	jb     0x56fab9
56faa8:	8b 01                	mov    (%ecx),%eax
56faaa:	3b 02                	cmp    (%edx),%eax
56faac:	75 12                	jne    0x56fac0
56faae:	83 c1 04             	add    $0x4,%ecx
56fab1:	83 c2 04             	add    $0x4,%edx
56fab4:	83 ee 04             	sub    $0x4,%esi
56fab7:	73 ef                	jae    0x56faa8
56fab9:	33 ff                	xor    %edi,%edi
56fabb:	83 fe fc             	cmp    $0xfffffffc,%esi
56fabe:	74 3b                	je     0x56fafb
56fac0:	0f b6 39             	movzbl (%ecx),%edi
56fac3:	0f b6 02             	movzbl (%edx),%eax
56fac6:	2b f8                	sub    %eax,%edi
56fac8:	75 31                	jne    0x56fafb
56faca:	83 fe fd             	cmp    $0xfffffffd,%esi
56facd:	74 2c                	je     0x56fafb
56facf:	0f b6 79 01          	movzbl 0x1(%ecx),%edi
56fad3:	0f b6 42 01          	movzbl 0x1(%edx),%eax
56fad7:	2b f8                	sub    %eax,%edi
56fad9:	75 20                	jne    0x56fafb
56fadb:	83 fe fe             	cmp    $0xfffffffe,%esi
56fade:	74 1b                	je     0x56fafb
56fae0:	0f b6 79 02          	movzbl 0x2(%ecx),%edi
56fae4:	0f b6 42 02          	movzbl 0x2(%edx),%eax
56fae8:	2b f8                	sub    %eax,%edi
56faea:	75 0f                	jne    0x56fafb