529729:	8b 4d c8             	mov    -0x38(%ebp),%ecx
52972c:	b8 01 00 00 00       	mov    $0x1,%eax
529731:	d3 e0                	shl    %cl,%eax
529733:	48                   	dec    %eax
529734:	23 45 e4             	and    -0x1c(%ebp),%eax
529737:	8b 55 b4             	mov    -0x4c(%ebp),%edx
52973a:	3b 02                	cmp    (%edx),%eax
52973c:	75 de                	jne    0x52971c
52973e:	8b 4d f0             	mov    -0x10(%ebp),%ecx
529741:	83 45 f0 ff          	addl   $0xffffffff,-0x10(%ebp)
529745:	85 c9                	test   %ecx,%ecx
529747:	0f 85 ec fd ff ff    	jne    0x529539
52974d:	ff 45 e0             	incl   -0x20(%ebp)
529750:	83 45 bc 04          	addl   $0x4,-0x44(%ebp)
529754:	8b 45 e0             	mov    -0x20(%ebp),%eax
529757:	3b 45 ec             	cmp    -0x14(%ebp),%eax
52975a:	0f 8e cc fd ff ff    	jle    0x52952c
529760:	83 7d c4 00          	cmpl   $0x0,-0x3c(%ebp)
529764:	74 0d                	je     0x529773
529766:	83 7d ec 01          	cmpl   $0x1,-0x14(%ebp)
52976a:	74 07                	je     0x529773
52976c:	b8 fb ff ff ff       	mov    $0xfffffffb,%eax
529771:	eb 02                	jmp    0x529775
529773:	33 c0                	xor    %eax,%eax
529775:	5e                   	pop    %esi
529776:	5b                   	pop    %ebx
529777:	8b e5                	mov    %ebp,%esp
529779:	5d                   	pop    %ebp
52977a:	c2 1c 00             	ret    $0x1c
52977d:	90                   	nop
52977e:	90                   	nop
52977f:	90                   	nop
529780:	55                   	push   %ebp
529781:	8b ec                	mov    %esp,%ebp
529783:	83 c4 f0             	add    $0xfffffff0,%esp
529786:	53                   	push   %ebx
529787:	56                   	push   %esi
529788:	89 4d f8             	mov    %ecx,-0x8(%ebp)
52978b:	89 55 fc             	mov    %edx,-0x4(%ebp)
52978e:	8b f0                	mov    %eax,%esi
529790:	8b 5d 08             	mov    0x8(%ebp),%ebx
529793:	33 c0                	xor    %eax,%eax
529795:	89 45 f4             	mov    %eax,-0xc(%ebp)
529798:	b9 04 00 00 00       	mov    $0x4,%ecx
52979d:	ba 13 00 00 00       	mov    $0x13,%edx
5297a2:	8b 43 28             	mov    0x28(%ebx),%eax
5297a5:	ff 53 20             	call   *0x20(%ebx)
5297a8:	89 45 f0             	mov    %eax,-0x10(%ebp)
5297ab:	85 c0                	test   %eax,%eax
5297ad:	75 07                	jne    0x5297b6
5297af:	b8 fc ff ff ff       	mov    $0xfffffffc,%eax
5297b4:	eb 5d                	jmp    0x529813
5297b6:	6a 00                	push   $0x0
5297b8:	6a 00                	push   $0x0
5297ba:	8b 55 f8             	mov    -0x8(%ebp),%edx
5297bd:	52                   	push   %edx
5297be:	8d 55 f4             	lea    -0xc(%ebp),%edx
5297c1:	8b 4d fc             	mov    -0x4(%ebp),%ecx
5297c4:	51                   	push   %ecx
5297c5:	8b 45 0c             	mov    0xc(%ebp),%eax
5297c8:	50                   	push   %eax
5297c9:	52                   	push   %edx
5297ca:	8b 4d f0             	mov    -0x10(%ebp),%ecx
5297cd:	ba 13 00 00 00       	mov    $0x13,%edx
5297d2:	51                   	push   %ecx
5297d3:	b9 13 00 00 00       	mov    $0x13,%ecx
5297d8:	8b c6                	mov    %esi,%eax
5297da:	e8 a9 fa ff ff       	call   0x529288
5297df:	8b f0                	mov    %eax,%esi
5297e1:	83 fe fd             	cmp    $0xfffffffd,%esi
5297e4:	75 09                	jne    0x5297ef
5297e6:	c7 43 18 ab 90 69 00 	movl   $0x6990ab,0x18(%ebx)
5297ed:	eb 19                	jmp    0x529808
5297ef:	83 fe fb             	cmp    $0xfffffffb,%esi
5297f2:	74 08                	je     0x5297fc
5297f4:	8b 45 fc             	mov    -0x4(%ebp),%eax
5297f7:	83 38 00             	cmpl   $0x0,(%eax)
5297fa:	75 0c                	jne    0x529808
5297fc:	c7 43 18 d3 90 69 00 	movl   $0x6990d3,0x18(%ebx)
529803:	be fd ff ff ff       	mov    $0xfffffffd,%esi
529808:	8b 55 f0             	mov    -0x10(%ebp),%edx
52980b:	8b 43 28             	mov    0x28(%ebx),%eax
52980e:	ff 53 24             	call   *0x24(%ebx)
529811:	8b c6                	mov    %esi,%eax
529813:	5e                   	pop    %esi
529814:	5b                   	pop    %ebx
529815:	8b e5                	mov    %ebp,%esp
529817:	5d                   	pop    %ebp
529818:	c2 08 00             	ret    $0x8
52981b:	90                   	nop
52981c:	55                   	push   %ebp
52981d:	8b ec                	mov    %esp,%ebp
52981f:	83 c4 ec             	add    $0xffffffec,%esp
529822:	53                   	push   %ebx
529823:	56                   	push   %esi
529824:	89 4d f4             	mov    %ecx,-0xc(%ebp)
529827:	89 55 f8             	mov    %edx,-0x8(%ebp)
52982a:	89 45 fc             	mov    %eax,-0x4(%ebp)
52982d:	8b 75 08             	mov    0x8(%ebp),%esi
529830:	33 c0                	xor    %eax,%eax
529832:	89 45 f0             	mov    %eax,-0x10(%ebp)
529835:	b9 04 00 00 00       	mov    $0x4,%ecx
52983a:	ba 20 01 00 00       	mov    $0x120,%edx
52983f:	8b 46 28             	mov    0x28(%esi),%eax
529842:	ff 56 20             	call   *0x20(%esi)
529845:	89 45 ec             	mov    %eax,-0x14(%ebp)
529848:	85 c0                	test   %eax,%eax
52984a:	75 0a                	jne    0x529856
52984c:	b8 fc ff ff ff       	mov    $0xfffffffc,%eax
529851:	e9 fd 00 00 00       	jmp    0x529953
529856:	68 8c 7d 69 00       	push   $0x697d8c
52985b:	68 08 7e 69 00       	push   $0x697e08
529860:	8b 55 14             	mov    0x14(%ebp),%edx
529863:	52                   	push   %edx
529864:	8d 55 f0             	lea    -0x10(%ebp),%edx
529867:	8b 4d 1c             	mov    0x1c(%ebp),%ecx
52986a:	51                   	push   %ecx
52986b:	8b 45 0c             	mov    0xc(%ebp),%eax
52986e:	50                   	push   %eax
52986f:	52                   	push   %edx
529870:	8b 4d ec             	mov    -0x14(%ebp),%ecx
529873:	51                   	push   %ecx
529874:	b9 01 01 00 00       	mov    $0x101,%ecx
529879:	8b 55 fc             	mov    -0x4(%ebp),%edx
52987c:	8b 45 f4             	mov    -0xc(%ebp),%eax
52987f:	e8 04 fa ff ff       	call   0x529288
529884:	8b d8                	mov    %eax,%ebx
529886:	85 db                	test   %ebx,%ebx
529888:	75 08                	jne    0x529892
52988a:	8b 45 1c             	mov    0x1c(%ebp),%eax
52988d:	83 38 00             	cmpl   $0x0,(%eax)
529890:	75 2f                	jne    0x5298c1
529892:	83 fb fd             	cmp    $0xfffffffd,%ebx
529895:	75 09                	jne    0x5298a0
529897:	c7 46 18 f7 90 69 00 	movl   $0x6990f7,0x18(%esi)
52989e:	eb 11                	jmp    0x5298b1
5298a0:	83 fb fc             	cmp    $0xfffffffc,%ebx
5298a3:	74 0c                	je     0x5298b1
5298a5:	c7 46 18 1a 91 69 00 	movl   $0x69911a,0x18(%esi)
5298ac:	bb fd ff ff ff       	mov    $0xfffffffd,%ebx
5298b1:	8b 55 ec             	mov    -0x14(%ebp),%edx
5298b4:	8b 46 28             	mov    0x28(%esi),%eax
5298b7:	ff 56 24             	call   *0x24(%esi)
5298ba:	8b c3                	mov    %ebx,%eax
5298bc:	e9 92 00 00 00       	jmp    0x529953
5298c1:	68 84 7e 69 00       	push   $0x697e84
5298c6:	68 fc 7e 69 00       	push   $0x697efc
5298cb:	8b 55 10             	mov    0x10(%ebp),%edx
5298ce:	52                   	push   %edx
5298cf:	8d 55 f0             	lea    -0x10(%ebp),%edx
5298d2:	8b 4d 18             	mov    0x18(%ebp),%ecx
5298d5:	51                   	push   %ecx
5298d6:	8b 45 0c             	mov    0xc(%ebp),%eax
5298d9:	50                   	push   %eax
5298da:	52                   	push   %edx
5298db:	8b 4d ec             	mov    -0x14(%ebp),%ecx
5298de:	51                   	push   %ecx
5298df:	8b 45 fc             	mov    -0x4(%ebp),%eax
5298e2:	8b 55 f8             	mov    -0x8(%ebp),%edx
5298e5:	c1 e0 02             	shl    $0x2,%eax
5298e8:	03 45 f4             	add    -0xc(%ebp),%eax
5298eb:	33 c9                	xor    %ecx,%ecx
5298ed:	e8 96 f9 ff ff       	call   0x529288
5298f2:	8b d8                	mov    %eax,%ebx
5298f4:	85 db                	test   %ebx,%ebx
5298f6:	75 11                	jne    0x529909
5298f8:	8b 45 18             	mov    0x18(%ebp),%eax
5298fb:	83 38 00             	cmpl   $0x0,(%eax)
5298fe:	75 48                	jne    0x529948
529900:	81 7d fc 01 01 00 00 	cmpl   $0x101,-0x4(%ebp)
529907:	76 3f                	jbe    0x529948
529909:	83 fb fd             	cmp    $0xfffffffd,%ebx
52990c:	75 09                	jne    0x529917
52990e:	c7 46 18 39 91 69 00 	movl   $0x699139,0x18(%esi)
529915:	eb 24                	jmp    0x52993b
529917:	83 fb fb             	cmp    $0xfffffffb,%ebx
52991a:	75 0e                	jne    0x52992a
52991c:	c7 46 18 56 91 69 00 	movl   $0x699156,0x18(%esi)
529923:	bb fd ff ff ff       	mov    $0xfffffffd,%ebx
529928:	eb 11                	jmp    0x52993b
52992a:	83 fb fc             	cmp    $0xfffffffc,%ebx
52992d:	74 0c                	je     0x52993b
52992f:	c7 46 18 6f 91 69 00 	movl   $0x69916f,0x18(%esi)
529936:	bb fd ff ff ff       	mov    $0xfffffffd,%ebx
52993b:	8b 55 ec             	mov    -0x14(%ebp),%edx
52993e:	8b 46 28             	mov    0x28(%esi),%eax
529941:	ff 56 24             	call   *0x24(%esi)
529944:	8b c3                	mov    %ebx,%eax
529946:	eb 0b                	jmp    0x529953
529948:	8b 55 ec             	mov    -0x14(%ebp),%edx
52994b:	8b 46 28             	mov    0x28(%esi),%eax
52994e:	ff 56 24             	call   *0x24(%esi)
529951:	33 c0                	xor    %eax,%eax
529953:	5e                   	pop    %esi
529954:	5b                   	pop    %ebx
529955:	8b e5                	mov    %ebp,%esp
529957:	5d                   	pop    %ebp
529958:	c2 18 00             	ret    $0x18
52995b:	90                   	nop
52995c:	55                   	push   %ebp
52995d:	8b ec                	mov    %esp,%ebp
52995f:	53                   	push   %ebx
529960:	8b 1d 74 7f 69 00    	mov    0x697f74,%ebx
529966:	89 18                	mov    %ebx,(%eax)
529968:	a1 78 7f 69 00       	mov    0x697f78,%eax
52996d:	89 02                	mov    %eax,(%edx)
52996f:	c7 01 7c 7f 69 00    	movl   $0x697f7c,(%ecx)
529975:	8b 55 0c             	mov    0xc(%ebp),%edx
529978:	33 c0                	xor    %eax,%eax
52997a:	c7 02 7c 8f 69 00    	movl   $0x698f7c,(%edx)
529980:	5b                   	pop    %ebx
529981:	5d                   	pop    %ebp
529982:	c2 08 00             	ret    $0x8
529985:	8d 40 00             	lea    0x0(%eax),%eax
529988:	55                   	push   %ebp
529989:	8b ec                	mov    %esp,%ebp
52998b:	83 c4 f4             	add    $0xfffffff4,%esp
52998e:	53                   	push   %ebx
52998f:	56                   	push   %esi
529990:	89 4d f4             	mov    %ecx,-0xc(%ebp)
529993:	89 55 f8             	mov    %edx,-0x8(%ebp)
529996:	89 45 fc             	mov    %eax,-0x4(%ebp)
529999:	8b 75 08             	mov    0x8(%ebp),%esi
52999c:	b9 1c 00 00 00       	mov    $0x1c,%ecx
5299a1:	ba 01 00 00 00       	mov    $0x1,%edx
5299a6:	8b 46 28             	mov    0x28(%esi),%eax
5299a9:	ff 56 20             	call   *0x20(%esi)
5299ac:	8b d8                	mov    %eax,%ebx
5299ae:	85 c0                	test   %eax,%eax
5299b0:	74 1c                	je     0x5299ce
5299b2:	33 d2                	xor    %edx,%edx
5299b4:	89 13                	mov    %edx,(%ebx)
5299b6:	8a 4d fc             	mov    -0x4(%ebp),%cl
5299b9:	88 4b 10             	mov    %cl,0x10(%ebx)
5299bc:	8a 45 f8             	mov    -0x8(%ebp),%al
5299bf:	88 43 11             	mov    %al,0x11(%ebx)
5299c2:	8b 55 f4             	mov    -0xc(%ebp),%edx
5299c5:	89 53 14             	mov    %edx,0x14(%ebx)
5299c8:	8b 4d 0c             	mov    0xc(%ebp),%ecx
5299cb:	89 4b 18             	mov    %ecx,0x18(%ebx)
5299ce:	8b c3                	mov    %ebx,%eax
5299d0:	5e                   	pop    %esi
5299d1:	5b                   	pop    %ebx
5299d2:	8b e5                	mov    %ebp,%esp
5299d4:	5d                   	pop    %ebp
5299d5:	c2 08 00             	ret    $0x8
5299d8:	53                   	push   %ebx
5299d9:	56                   	push   %esi
5299da:	57                   	push   %edi
5299db:	55                   	push   %ebp
5299dc:	83 c4 dc             	add    $0xffffffdc,%esp
5299df:	8b d8                	mov    %eax,%ebx
5299e1:	8b f2                	mov    %edx,%esi
5299e3:	89 0c 24             	mov    %ecx,(%esp)
5299e6:	8b 43 04             	mov    0x4(%ebx),%eax
5299e9:	89 44 24 20          	mov    %eax,0x20(%esp)
5299ed:	8b 46 04             	mov    0x4(%esi),%eax
5299f0:	8b 3e                	mov    (%esi),%edi
5299f2:	89 44 24 14          	mov    %eax,0x14(%esp)
5299f6:	8b 53 20             	mov    0x20(%ebx),%edx
5299f9:	89 54 24 10          	mov    %edx,0x10(%esp)
5299fd:	8b 43 34             	mov    0x34(%ebx),%eax
529a00:	8b 6b 1c             	mov    0x1c(%ebx),%ebp
529a03:	3b 43 30             	cmp    0x30(%ebx),%eax
529a06:	73 08                	jae    0x529a10
529a08:	8b 53 30             	mov    0x30(%ebx),%edx
529a0b:	2b d0                	sub    %eax,%edx
529a0d:	4a                   	dec    %edx
529a0e:	eb 05                	jmp    0x529a15
529a10:	8b 53 2c             	mov    0x2c(%ebx),%edx
529a13:	2b d0                	sub    %eax,%edx
529a15:	89 54 24 18          	mov    %edx,0x18(%esp)
529a19:	8b 4c 24 20          	mov    0x20(%esp),%ecx
529a1d:	8b 11                	mov    (%ecx),%edx
529a1f:	83 fa 09             	cmp    $0x9,%edx
529a22:	0f 87 13 08 00 00    	ja     0x52a23b
529a28:	ff 24 95 2f 9a 52 00 	jmp    *0x529a2f(,%edx,4)
529a2f:	57                   	push   %edi
529a30:	9a 52 00 2e 9b 52 00 	lcall  $0x52,$0x9b2e0052
529a37:	b7 9c                	mov    $0x9c,%bh
529a39:	52                   	push   %edx
529a3a:	00 6b 9d             	add    %ch,-0x63(%ebx)
529a3d:	52                   	push   %edx
529a3e:	00 ba 9e 52 00 51    	add    %bh,0x5100529e(%edx)
529a44:	9f                   	lahf
529a45:	52                   	push   %edx
529a46:	00 81 a0 52 00 63    	add    %al,0x630052a0(%ecx)
529a4c:	a1 52 00 d7 a1       	mov    0xa1d70052,%eax
529a51:	52                   	push   %edx
529a52:	00 09                	add    %cl,(%ecx)
529a54:	a2 52 00 81 7c       	mov    %al,0x7c810052
529a59:	24 18                	and    $0x18,%al
529a5b:	02 01                	add    (%ecx),%al
529a5d:	00 00                	add    %al,(%eax)
529a5f:	0f 82 a1 00 00 00    	jb     0x529b06
529a65:	83 7c 24 14 0a       	cmpl   $0xa,0x14(%esp)
529a6a:	0f 82 96 00 00 00    	jb     0x529b06
529a70:	8b 4c 24 10          	mov    0x10(%esp),%ecx
529a74:	89 4b 20             	mov    %ecx,0x20(%ebx)
529a77:	89 6b 1c             	mov    %ebp,0x1c(%ebx)
529a7a:	8b 54 24 14          	mov    0x14(%esp),%edx
529a7e:	8b cf                	mov    %edi,%ecx
529a80:	89 56 04             	mov    %edx,0x4(%esi)
529a83:	2b 0e                	sub    (%esi),%ecx
529a85:	01 4e 08             	add    %ecx,0x8(%esi)
529a88:	89 3e                	mov    %edi,(%esi)
529a8a:	89 43 34             	mov    %eax,0x34(%ebx)
529a8d:	8b 44 24 20          	mov    0x20(%esp),%eax
529a91:	8b 40 18             	mov    0x18(%eax),%eax
529a94:	50                   	push   %eax
529a95:	53                   	push   %ebx
529a96:	56                   	push   %esi
529a97:	8b 54 24 2c          	mov    0x2c(%esp),%edx
529a9b:	8b 44 24 2c          	mov    0x2c(%esp),%eax
529a9f:	8b 4a 14             	mov    0x14(%edx),%ecx
529aa2:	33 d2                	xor    %edx,%edx
529aa4:	8a 50 11             	mov    0x11(%eax),%dl
529aa7:	8b 44 24 2c          	mov    0x2c(%esp),%eax
529aab:	0f b6 40 10          	movzbl 0x10(%eax),%eax
529aaf:	e8 dc 08 00 00       	call   0x52a390
529ab4:	89 04 24             	mov    %eax,(%esp)
529ab7:	8b 3e                	mov    (%esi),%edi
529ab9:	8b 46 04             	mov    0x4(%esi),%eax
529abc:	89 44 24 14          	mov    %eax,0x14(%esp)
529ac0:	8b 53 20             	mov    0x20(%ebx),%edx
529ac3:	89 54 24 10          	mov    %edx,0x10(%esp)
529ac7:	8b 6b 1c             	mov    0x1c(%ebx),%ebp
529aca:	8b 43 34             	mov    0x34(%ebx),%eax
529acd:	3b 43 30             	cmp    0x30(%ebx),%eax
529ad0:	73 08                	jae    0x529ada
529ad2:	8b 53 30             	mov    0x30(%ebx),%edx
529ad5:	2b d0                	sub    %eax,%edx
529ad7:	4a                   	dec    %edx
529ad8:	eb 05                	jmp    0x529adf
529ada:	8b 53 2c             	mov    0x2c(%ebx),%edx
529add:	2b d0                	sub    %eax,%edx
529adf:	89 54 24 18          	mov    %edx,0x18(%esp)
529ae3:	83 3c 24 00          	cmpl   $0x0,(%esp)
529ae7:	74 1d                	je     0x529b06
529ae9:	83 3c 24 01          	cmpl   $0x1,(%esp)
529aed:	75 07                	jne    0x529af6
529aef:	b9 07 00 00 00       	mov    $0x7,%ecx
529af4:	eb 05                	jmp    0x529afb
529af6:	b9 09 00 00 00       	mov    $0x9,%ecx
529afb:	8b 54 24 20          	mov    0x20(%esp),%edx
529aff:	89 0a                	mov    %ecx,(%edx)
529b01:	e9 13 ff ff ff       	jmp    0x529a19
529b06:	8b 54 24 20          	mov    0x20(%esp),%edx
529b0a:	33 c9                	xor    %ecx,%ecx
529b0c:	8a 4a 10             	mov    0x10(%edx),%cl