651711:	83 7d fc 00          	cmpl   $0x0,-0x4(%ebp)
651715:	75 03                	jne    0x65171a
651717:	ff 45 f8             	incl   -0x8(%ebp)
65171a:	8b 45 fc             	mov    -0x4(%ebp),%eax
65171d:	83 f0 01             	xor    $0x1,%eax
651720:	8b 55 0c             	mov    0xc(%ebp),%edx
651723:	8b 52 14             	mov    0x14(%edx),%edx
651726:	8b 14 82             	mov    (%edx,%eax,4),%edx
651729:	89 55 e8             	mov    %edx,-0x18(%ebp)
65172c:	83 c0 02             	add    $0x2,%eax
65172f:	8b 55 0c             	mov    0xc(%ebp),%edx
651732:	8b 52 14             	mov    0x14(%edx),%edx
651735:	8b 04 82             	mov    (%edx,%eax,4),%eax
651738:	89 45 e4             	mov    %eax,-0x1c(%ebp)
65173b:	8b 45 fc             	mov    -0x4(%ebp),%eax
65173e:	83 c0 02             	add    $0x2,%eax
651741:	8b 55 0c             	mov    0xc(%ebp),%edx
651744:	8b 52 14             	mov    0x14(%edx),%edx
651747:	8b 04 82             	mov    (%edx,%eax,4),%eax
65174a:	03 03                	add    (%ebx),%eax
65174c:	89 45 ec             	mov    %eax,-0x14(%ebp)
65174f:	8b 45 0c             	mov    0xc(%ebp),%eax
651752:	8b 40 1c             	mov    0x1c(%eax),%eax
651755:	8b 40 f4             	mov    -0xc(%eax),%eax
651758:	c1 e0 02             	shl    $0x2,%eax
65175b:	89 45 e0             	mov    %eax,-0x20(%ebp)
65175e:	33 c0                	xor    %eax,%eax
651760:	89 45 f4             	mov    %eax,-0xc(%ebp)
651763:	8b 45 f4             	mov    -0xc(%ebp),%eax
651766:	03 45 fc             	add    -0x4(%ebp),%eax
651769:	8b 55 f0             	mov    -0x10(%ebp),%edx
65176c:	8b 4d f8             	mov    -0x8(%ebp),%ecx
65176f:	89 0c 82             	mov    %ecx,(%edx,%eax,4)
651772:	8b 45 fc             	mov    -0x4(%ebp),%eax
651775:	83 f0 01             	xor    $0x1,%eax
651778:	8b d0                	mov    %eax,%edx
65177a:	03 55 f4             	add    -0xc(%ebp),%edx
65177d:	8b 4d f0             	mov    -0x10(%ebp),%ecx
651780:	8b 75 e8             	mov    -0x18(%ebp),%esi
651783:	89 34 91             	mov    %esi,(%ecx,%edx,4)
651786:	83 45 f4 02          	addl   $0x2,-0xc(%ebp)
65178a:	8b 55 f4             	mov    -0xc(%ebp),%edx
65178d:	03 55 fc             	add    -0x4(%ebp),%edx
651790:	8b 4d f0             	mov    -0x10(%ebp),%ecx
651793:	8b 75 f8             	mov    -0x8(%ebp),%esi
651796:	89 34 91             	mov    %esi,(%ecx,%edx,4)
651799:	03 45 f4             	add    -0xc(%ebp),%eax
65179c:	8b 55 f0             	mov    -0x10(%ebp),%edx
65179f:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
6517a2:	89 0c 82             	mov    %ecx,(%edx,%eax,4)
6517a5:	83 45 f4 02          	addl   $0x2,-0xc(%ebp)
6517a9:	47                   	inc    %edi
6517aa:	8b d7                	mov    %edi,%edx
6517ac:	8b 43 2c             	mov    0x2c(%ebx),%eax
6517af:	ff 53 28             	call   *0x28(%ebx)
6517b2:	03 03                	add    (%ebx),%eax
6517b4:	85 c0                	test   %eax,%eax
6517b6:	7f 05                	jg     0x6517bd
6517b8:	3b 7b 10             	cmp    0x10(%ebx),%edi
6517bb:	7e ec                	jle    0x6517a9
6517bd:	01 45 f8             	add    %eax,-0x8(%ebp)
6517c0:	8b 45 f8             	mov    -0x8(%ebp),%eax
6517c3:	3b 45 ec             	cmp    -0x14(%ebp),%eax
6517c6:	7f 0d                	jg     0x6517d5
6517c8:	3b 7b 10             	cmp    0x10(%ebx),%edi
6517cb:	7f 08                	jg     0x6517d5
6517cd:	8b 45 f4             	mov    -0xc(%ebp),%eax
6517d0:	3b 45 e0             	cmp    -0x20(%ebp),%eax
6517d3:	7e 8e                	jle    0x651763
6517d5:	8b 45 f4             	mov    -0xc(%ebp),%eax
6517d8:	c1 e8 02             	shr    $0x2,%eax
6517db:	50                   	push   %eax
6517dc:	8b 45 0c             	mov    0xc(%ebp),%eax
6517df:	8b 40 1c             	mov    0x1c(%eax),%eax
6517e2:	8b 40 f0             	mov    -0x10(%eax),%eax
6517e5:	50                   	push   %eax
6517e6:	8b 45 f0             	mov    -0x10(%ebp),%eax
6517e9:	50                   	push   %eax
6517ea:	8b 45 0c             	mov    0xc(%ebp),%eax
6517ed:	8b 40 1c             	mov    0x1c(%eax),%eax
6517f0:	8b 40 fc             	mov    -0x4(%eax),%eax
6517f3:	8b 80 08 02 00 00    	mov    0x208(%eax),%eax
6517f9:	e8 c2 74 dd ff       	call   0x428cc0
6517fe:	50                   	push   %eax
6517ff:	e8 ac 5e db ff       	call   0x4076b0
651804:	5f                   	pop    %edi
651805:	5e                   	pop    %esi
651806:	5b                   	pop    %ebx
651807:	8b e5                	mov    %ebp,%esp
651809:	5d                   	pop    %ebp
65180a:	c2 04 00             	ret    $0x4
65180d:	8d 40 00             	lea    0x0(%eax),%eax
651810:	55                   	push   %ebp
651811:	8b ec                	mov    %esp,%ebp
651813:	51                   	push   %ecx
651814:	53                   	push   %ebx
651815:	56                   	push   %esi
651816:	57                   	push   %edi
651817:	8b f1                	mov    %ecx,%esi
651819:	88 55 ff             	mov    %dl,-0x1(%ebp)
65181c:	8b d8                	mov    %eax,%ebx
65181e:	8b 7d 18             	mov    0x18(%ebp),%edi
651821:	8b 45 14             	mov    0x14(%ebp),%eax
651824:	8b 00                	mov    (%eax),%eax
651826:	8b 55 14             	mov    0x14(%ebp),%edx
651829:	3b 42 08             	cmp    0x8(%edx),%eax
65182c:	74 68                	je     0x651896
65182e:	8b 45 14             	mov    0x14(%ebp),%eax
651831:	8b 40 04             	mov    0x4(%eax),%eax
651834:	8b 55 14             	mov    0x14(%ebp),%edx
651837:	3b 42 0c             	cmp    0xc(%edx),%eax
65183a:	74 5a                	je     0x651896
65183c:	84 db                	test   %bl,%bl
65183e:	75 2c                	jne    0x65186c
651840:	55                   	push   %ebp
651841:	53                   	push   %ebx
651842:	8b 45 1c             	mov    0x1c(%ebp),%eax
651845:	83 c0 c0             	add    $0xffffffc0,%eax
651848:	b9 01 00 00 00       	mov    $0x1,%ecx
65184d:	8b d7                	mov    %edi,%edx
65184f:	e8 d4 fd ff ff       	call   0x651628
651854:	59                   	pop    %ecx
651855:	55                   	push   %ebp
651856:	8a 45 ff             	mov    -0x1(%ebp),%al
651859:	50                   	push   %eax
65185a:	8b 45 1c             	mov    0x1c(%ebp),%eax
65185d:	83 c0 90             	add    $0xffffff90,%eax
651860:	33 c9                	xor    %ecx,%ecx
651862:	8b d6                	mov    %esi,%edx
651864:	e8 bf fd ff ff       	call   0x651628
651869:	59                   	pop    %ecx
65186a:	eb 2a                	jmp    0x651896
65186c:	55                   	push   %ebp
65186d:	8a 45 ff             	mov    -0x1(%ebp),%al
651870:	50                   	push   %eax
651871:	8b 45 1c             	mov    0x1c(%ebp),%eax
651874:	83 c0 90             	add    $0xffffff90,%eax
651877:	33 c9                	xor    %ecx,%ecx
651879:	8b d6                	mov    %esi,%edx
65187b:	e8 a8 fd ff ff       	call   0x651628
651880:	59                   	pop    %ecx
651881:	55                   	push   %ebp
651882:	53                   	push   %ebx
651883:	8b 45 1c             	mov    0x1c(%ebp),%eax
651886:	83 c0 c0             	add    $0xffffffc0,%eax
651889:	b9 01 00 00 00       	mov    $0x1,%ecx
65188e:	8b d7                	mov    %edi,%edx
651890:	e8 93 fd ff ff       	call   0x651628
651895:	59                   	pop    %ecx
651896:	5f                   	pop    %edi
651897:	5e                   	pop    %esi
651898:	5b                   	pop    %ebx
651899:	59                   	pop    %ecx
65189a:	5d                   	pop    %ebp
65189b:	c2 14 00             	ret    $0x14
65189e:	8b c0                	mov    %eax,%eax
6518a0:	55                   	push   %ebp
6518a1:	8b ec                	mov    %esp,%ebp
6518a3:	83 c4 c0             	add    $0xffffffc0,%esp
6518a6:	53                   	push   %ebx
6518a7:	56                   	push   %esi
6518a8:	57                   	push   %edi
6518a9:	89 4d f8             	mov    %ecx,-0x8(%ebp)
6518ac:	89 45 fc             	mov    %eax,-0x4(%ebp)
6518af:	8b 5d 1c             	mov    0x1c(%ebp),%ebx
6518b2:	83 c3 fc             	add    $0xfffffffc,%ebx
6518b5:	89 55 f4             	mov    %edx,-0xc(%ebp)
6518b8:	8b 45 18             	mov    0x18(%ebp),%eax
6518bb:	89 45 d7             	mov    %eax,-0x29(%ebp)
6518be:	e9 e6 02 00 00       	jmp    0x651ba9
6518c3:	8b 7d fc             	mov    -0x4(%ebp),%edi
6518c6:	8b 45 f8             	mov    -0x8(%ebp),%eax
6518c9:	89 45 d3             	mov    %eax,-0x2d(%ebp)
6518cc:	8b 03                	mov    (%ebx),%eax
6518ce:	8b 55 f4             	mov    -0xc(%ebp),%edx
6518d1:	e8 d2 39 00 00       	call   0x6552a8
6518d6:	03 45 d7             	add    -0x29(%ebp),%eax
6518d9:	89 45 df             	mov    %eax,-0x21(%ebp)
6518dc:	e9 a3 02 00 00       	jmp    0x651b84
6518e1:	8b 03                	mov    (%ebx),%eax
6518e3:	8b d7                	mov    %edi,%edx
6518e5:	e8 9e 39 00 00       	call   0x655288
6518ea:	03 45 d3             	add    -0x2d(%ebp),%eax
6518ed:	89 45 db             	mov    %eax,-0x25(%ebp)
6518f0:	8b 45 db             	mov    -0x25(%ebp),%eax
6518f3:	3b 45 d3             	cmp    -0x2d(%ebp),%eax
6518f6:	0f 8e 7b 02 00 00    	jle    0x651b77
6518fc:	8d 45 d3             	lea    -0x2d(%ebp),%eax
6518ff:	50                   	push   %eax
651900:	8b 03                	mov    (%ebx),%eax
651902:	8b 80 08 02 00 00    	mov    0x208(%eax),%eax
651908:	e8 b3 73 dd ff       	call   0x428cc0
65190d:	50                   	push   %eax
65190e:	e8 bd 5d db ff       	call   0x4076d0
651913:	85 c0                	test   %eax,%eax
651915:	0f 84 5c 02 00 00    	je     0x651b77
65191b:	8a 45 08             	mov    0x8(%ebp),%al
65191e:	88 45 f3             	mov    %al,-0xd(%ebp)
651921:	8b 03                	mov    (%ebx),%eax
651923:	e8 8c f7 ff ff       	call   0x6510b4
651928:	84 c0                	test   %al,%al
65192a:	74 1b                	je     0x651947
65192c:	8b 03                	mov    (%ebx),%eax
65192e:	8b 80 2c 02 00 00    	mov    0x22c(%eax),%eax
651934:	3b 45 f4             	cmp    -0xc(%ebp),%eax
651937:	75 0e                	jne    0x651947
651939:	8b 03                	mov    (%ebx),%eax
65193b:	3b b8 28 02 00 00    	cmp    0x228(%eax),%edi
651941:	75 04                	jne    0x651947
651943:	80 4d f3 02          	orb    $0x2,-0xd(%ebp)
651947:	8b 45 1c             	mov    0x1c(%ebp),%eax
65194a:	8d 48 80             	lea    -0x80(%eax),%ecx
65194d:	8b 55 f4             	mov    -0xc(%ebp),%edx
651950:	8b c7                	mov    %edi,%eax
651952:	e8 91 e4 ff ff       	call   0x64fde8
651957:	84 c0                	test   %al,%al
651959:	74 04                	je     0x65195f
65195b:	80 4d f3 01          	orb    $0x1,-0xd(%ebp)
65195f:	f6 45 f3 02          	testb  $0x2,-0xd(%ebp)
651963:	74 22                	je     0x651987
651965:	8b 03                	mov    (%ebx),%eax
651967:	f6 80 49 02 00 00 04 	testb  $0x4,0x249(%eax)
65196e:	74 17                	je     0x651987
651970:	8b 03                	mov    (%ebx),%eax
651972:	80 b8 8d 02 00 00 00 	cmpb   $0x0,0x28d(%eax)
651979:	74 0c                	je     0x651987
65197b:	8b 03                	mov    (%ebx),%eax
65197d:	f6 40 1c 10          	testb  $0x10,0x1c(%eax)
651981:	0f 84 f0 01 00 00    	je     0x651b77
651987:	8b 03                	mov    (%ebx),%eax
651989:	80 b8 8c 02 00 00 00 	cmpb   $0x0,0x28c(%eax)
651990:	75 08                	jne    0x65199a
651992:	8b 03                	mov    (%ebx),%eax
651994:	f6 40 1c 10          	testb  $0x10,0x1c(%eax)
651998:	74 6d                	je     0x651a07
65199a:	8b 03                	mov    (%ebx),%eax
65199c:	8b b0 08 02 00 00    	mov    0x208(%eax),%esi
6519a2:	8b 03                	mov    (%ebx),%eax
6519a4:	8b 50 68             	mov    0x68(%eax),%edx
6519a7:	8b c6                	mov    %esi,%eax
6519a9:	e8 0e 72 dd ff       	call   0x428bbc
6519ae:	f6 45 f3 01          	testb  $0x1,-0xd(%ebp)
6519b2:	74 3e                	je     0x6519f2
6519b4:	f6 45 f3 02          	testb  $0x2,-0xd(%ebp)
6519b8:	74 1c                	je     0x6519d6
6519ba:	8b 03                	mov    (%ebx),%eax
6519bc:	66 8b 80 48 02 00 00 	mov    0x248(%eax),%ax
6519c3:	66 23 05 cc 1b 65 00 	and    0x651bcc,%ax
6519ca:	66 8b 15 d0 1b 65 00 	mov    0x651bd0,%dx
6519d1:	66 3b d0             	cmp    %ax,%dx
6519d4:	74 1c                	je     0x6519f2
6519d6:	8b 46 14             	mov    0x14(%esi),%eax
6519d9:	ba 0d 00 00 80       	mov    $0x8000000d,%edx
6519de:	e8 a1 68 dd ff       	call   0x428284
6519e3:	8b 46 0c             	mov    0xc(%esi),%eax
6519e6:	ba 0e 00 00 80       	mov    $0x8000000e,%edx
6519eb:	e8 a8 60 dd ff       	call   0x427a98
6519f0:	eb 0b                	jmp    0x6519fd
6519f2:	8b 46 14             	mov    0x14(%esi),%eax
6519f5:	8b 55 0c             	mov    0xc(%ebp),%edx
6519f8:	e8 87 68 dd ff       	call   0x428284
6519fd:	8d 55 d3             	lea    -0x2d(%ebp),%edx
651a00:	8b c6                	mov    %esi,%eax
651a02:	e8 f5 6c dd ff       	call   0x4286fc
651a07:	8d 45 d3             	lea    -0x2d(%ebp),%eax
651a0a:	50                   	push   %eax
651a0b:	8a 45 f3             	mov    -0xd(%ebp),%al
651a0e:	50                   	push   %eax
651a0f:	8b 03                	mov    (%ebx),%eax
651a11:	8b 4d f4             	mov    -0xc(%ebp),%ecx
651a14:	8b d7                	mov    %edi,%edx
651a16:	8b 30                	mov    (%eax),%esi
651a18:	ff 96 d4 00 00 00    	call   *0xd4(%esi)
651a1e:	8b 03                	mov    (%ebx),%eax
651a20:	80 b8 8c 02 00 00 00 	cmpb   $0x0,0x28c(%eax)
651a27:	0f 84 ab 00 00 00    	je     0x651ad8
651a2d:	f6 45 f3 04          	testb  $0x4,-0xd(%ebp)
651a31:	0f 84 a1 00 00 00    	je     0x651ad8
651a37:	8b 03                	mov    (%ebx),%eax
651a39:	80 b8 a5 01 00 00 00 	cmpb   $0x0,0x1a5(%eax)
651a40:	0f 84 92 00 00 00    	je     0x651ad8
651a46:	8b 45 1c             	mov    0x1c(%ebp),%eax
651a49:	8b 80 7c ff ff ff    	mov    -0x84(%eax),%eax
651a4f:	8b 55 1c             	mov    0x1c(%ebp),%edx
651a52:	0b 82 78 ff ff ff    	or     -0x88(%edx),%eax
651a58:	74 7e                	je     0x651ad8
651a5a:	57                   	push   %edi
651a5b:	8d 75 d3             	lea    -0x2d(%ebp),%esi
651a5e:	8d 7d c3             	lea    -0x3d(%ebp),%edi
651a61:	a5                   	movsl  %ds:(%esi),%es:(%edi)
651a62:	a5                   	movsl  %ds:(%esi),%es:(%edi)
651a63:	a5                   	movsl  %ds:(%esi),%es:(%edi)
651a64:	a5                   	movsl  %ds:(%esi),%es:(%edi)
651a65:	5f                   	pop    %edi
651a66:	8b 45 1c             	mov    0x1c(%ebp),%eax
651a69:	f6 80 7c ff ff ff 04 	testb  $0x4,-0x84(%eax)
651a70:	75 0b                	jne    0x651a7d
651a72:	8b 45 1c             	mov    0x1c(%ebp),%eax
651a75:	8b 40 90             	mov    -0x70(%eax),%eax
651a78:	01 45 cb             	add    %eax,-0x35(%ebp)
651a7b:	eb 15                	jmp    0x651a92
651a7d:	8b 45 1c             	mov    0x1c(%ebp),%eax
651a80:	f6 80 7c ff ff ff 08 	testb  $0x8,-0x84(%eax)
651a87:	75 09                	jne    0x651a92
651a89:	8b 45 1c             	mov    0x1c(%ebp),%eax
651a8c:	8b 40 c0             	mov    -0x40(%eax),%eax
651a8f:	01 45 cf             	add    %eax,-0x31(%ebp)
651a92:	8b 45 1c             	mov    0x1c(%ebp),%eax
651a95:	8b 80 7c ff ff ff    	mov    -0x84(%eax),%eax
651a9b:	50                   	push   %eax
651a9c:	6a 04                	push   $0x4
651a9e:	8d 45 c3             	lea    -0x3d(%ebp),%eax
651aa1:	50                   	push   %eax
651aa2:	8b 03                	mov    (%ebx),%eax
651aa4:	8b 80 08 02 00 00    	mov    0x208(%eax),%eax
651aaa:	e8 11 72 dd ff       	call   0x428cc0
651aaf:	50                   	push   %eax
651ab0:	e8 53 5e db ff       	call   0x407908
651ab5:	8b 45 1c             	mov    0x1c(%ebp),%eax
651ab8:	8b 80 78 ff ff ff    	mov    -0x88(%eax),%eax
651abe:	50                   	push   %eax
651abf:	6a 04                	push   $0x4
651ac1:	8d 45 c3             	lea    -0x3d(%ebp),%eax
651ac4:	50                   	push   %eax
651ac5:	8b 03                	mov    (%ebx),%eax
651ac7:	8b 80 08 02 00 00    	mov    0x208(%eax),%eax
651acd:	e8 ee 71 dd ff       	call   0x428cc0
651ad2:	50                   	push   %eax
651ad3:	e8 30 5e db ff       	call   0x407908
651ad8:	8b 03                	mov    (%ebx),%eax
651ada:	80 b8 8c 02 00 00 00 	cmpb   $0x0,0x28c(%eax)
651ae1:	0f 84 90 00 00 00    	je     0x651b77
651ae7:	8b 03                	mov    (%ebx),%eax
651ae9:	f6 40 1c 10          	testb  $0x10,0x1c(%eax)
651aed:	0f 85 84 00 00 00    	jne    0x651b77
651af3:	f6 45 f3 02          	testb  $0x2,-0xd(%ebp)
651af7:	74 7e                	je     0x651b77
651af9:	8b 03                	mov    (%ebx),%eax
651afb:	66 8b 80 48 02 00 00 	mov    0x248(%eax),%ax
651b02:	66 23 05 d4 1b 65 00 	and    0x651bd4,%ax
651b09:	66 8b 15 d4 1b 65 00 	mov    0x651bd4,%dx
651b10:	66 3b d0             	cmp    %ax,%dx
651b13:	74 62                	je     0x651b77
651b15:	8b 03                	mov    (%ebx),%eax
651b17:	f6 80 49 02 00 00 10 	testb  $0x10,0x249(%eax)
651b1e:	75 57                	jne    0x651b77
651b20:	8b 03                	mov    (%ebx),%eax
651b22:	66 be c8 ff          	mov    $0xffc8,%si
651b26:	e8 49 21 db ff       	call   0x403c74
651b2b:	84 c0                	test   %al,%al