52c7fd:	56                   	push   %esi
52c7fe:	e8 5d da ff ff       	call   0x52a260
52c803:	83 c4 10             	add    $0x10,%esp
52c806:	85 c0                	test   %eax,%eax
52c808:	8b 45 10             	mov    0x10(%ebp),%eax
52c80b:	75 0f                	jne    0x52c81c
52c80d:	85 c0                	test   %eax,%eax
52c80f:	75 0b                	jne    0x52c81c
52c811:	8b 45 30             	mov    0x30(%ebp),%eax
52c814:	89 45 f8             	mov    %eax,-0x8(%ebp)
52c817:	e9 7f 01 00 00       	jmp    0x52c99b
52c81c:	c7 45 f8 00 00 00 00 	movl   $0x0,-0x8(%ebp)
52c823:	8b f0                	mov    %eax,%esi
52c825:	85 c0                	test   %eax,%eax
52c827:	74 4b                	je     0x52c874
52c829:	8b 7d 08             	mov    0x8(%ebp),%edi
52c82c:	0f 1f 40 00          	nopl   0x0(%eax)
52c830:	80 7e 08 7e          	cmpb   $0x7e,0x8(%esi)
52c834:	75 34                	jne    0x52c86a
52c836:	f6 46 09 03          	testb  $0x3,0x9(%esi)
52c83a:	74 2e                	je     0x52c86a
52c83c:	6a 00                	push   $0x0
52c83e:	ff 76 10             	push   0x10(%esi)
52c841:	e8 7a b7 fc ff       	call   0x4f7fc0
52c846:	83 c4 08             	add    $0x8,%esp
52c849:	85 c0                	test   %eax,%eax
52c84b:	74 1d                	je     0x52c86a
52c84d:	0f b6 45 28          	movzbl 0x28(%ebp),%eax
52c851:	50                   	push   %eax
52c852:	53                   	push   %ebx
52c853:	56                   	push   %esi
52c854:	57                   	push   %edi
52c855:	e8 f6 9a fd ff       	call   0x506350
52c85a:	83 c4 10             	add    $0x10,%esp
52c85d:	85 c0                	test   %eax,%eax
52c85f:	74 09                	je     0x52c86a
52c861:	8b 4d f8             	mov    -0x8(%ebp),%ecx
52c864:	0b 48 10             	or     0x10(%eax),%ecx
52c867:	89 4d f8             	mov    %ecx,-0x8(%ebp)
52c86a:	8b 76 20             	mov    0x20(%esi),%esi
52c86d:	85 f6                	test   %esi,%esi
52c86f:	75 bf                	jne    0x52c830
52c871:	8b 7d f0             	mov    -0x10(%ebp),%edi
52c874:	8b 75 08             	mov    0x8(%ebp),%esi
52c877:	53                   	push   %ebx
52c878:	56                   	push   %esi
52c879:	e8 02 d9 ff ff       	call   0x52a180
52c87e:	0f bf 4b 2a          	movswl 0x2a(%ebx),%ecx
52c882:	83 c4 08             	add    $0x8,%esp
52c885:	8b 56 2c             	mov    0x2c(%esi),%edx
52c888:	41                   	inc    %ecx
52c889:	09 45 f8             	or     %eax,-0x8(%ebp)
52c88c:	03 ca                	add    %edx,%ecx
52c88e:	89 4e 2c             	mov    %ecx,0x2c(%esi)
52c891:	8b 4f 6c             	mov    0x6c(%edi),%ecx
52c894:	8d 42 01             	lea    0x1(%edx),%eax
52c897:	89 45 fc             	mov    %eax,-0x4(%ebp)
52c89a:	39 4f 70             	cmp    %ecx,0x70(%edi)
52c89d:	7f 13                	jg     0x52c8b2
52c89f:	6a 00                	push   $0x0
52c8a1:	50                   	push   %eax
52c8a2:	ff 75 1c             	push   0x1c(%ebp)
52c8a5:	6a 4d                	push   $0x4d
52c8a7:	57                   	push   %edi
52c8a8:	e8 53 9c fd ff       	call   0x506500
52c8ad:	83 c4 14             	add    $0x14,%esp
52c8b0:	eb 31                	jmp    0x52c8e3
52c8b2:	8b 55 1c             	mov    0x1c(%ebp),%edx
52c8b5:	8d 41 01             	lea    0x1(%ecx),%eax
52c8b8:	89 47 6c             	mov    %eax,0x6c(%edi)
52c8bb:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
52c8be:	8b 47 68             	mov    0x68(%edi),%eax
52c8c1:	89 54 88 04          	mov    %edx,0x4(%eax,%ecx,4)
52c8c5:	8b 55 fc             	mov    -0x4(%ebp),%edx
52c8c8:	c7 04 88 4d 00 00 00 	movl   $0x4d,(%eax,%ecx,4)
52c8cf:	89 54 88 08          	mov    %edx,0x8(%eax,%ecx,4)
52c8d3:	c7 44 88 0c 00 00 00 	movl   $0x0,0xc(%eax,%ecx,4)
52c8da:	00
52c8db:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
52c8e2:	00
52c8e3:	33 c0                	xor    %eax,%eax
52c8e5:	33 f6                	xor    %esi,%esi
52c8e7:	66 3b 43 2a          	cmp    0x2a(%ebx),%ax
52c8eb:	7d 43                	jge    0x52c930
52c8ed:	8b 55 f8             	mov    -0x8(%ebp),%edx
52c8f0:	83 fa ff             	cmp    $0xffffffff,%edx
52c8f3:	74 12                	je     0x52c907
52c8f5:	83 fe 1f             	cmp    $0x1f,%esi
52c8f8:	7f 2d                	jg     0x52c927
52c8fa:	b8 01 00 00 00       	mov    $0x1,%eax
52c8ff:	8b ce                	mov    %esi,%ecx
52c901:	d3 e0                	shl    %cl,%eax
52c903:	85 c2                	test   %eax,%edx
52c905:	74 20                	je     0x52c927
52c907:	56                   	push   %esi
52c908:	53                   	push   %ebx
52c909:	e8 42 15 01 00       	call   0x53de50
52c90e:	8b 4d fc             	mov    -0x4(%ebp),%ecx
52c911:	98                   	cwtl
52c912:	41                   	inc    %ecx
52c913:	03 c1                	add    %ecx,%eax
52c915:	50                   	push   %eax
52c916:	56                   	push   %esi
52c917:	ff 75 14             	push   0x14(%ebp)
52c91a:	53                   	push   %ebx
52c91b:	57                   	push   %edi
52c91c:	e8 9f 77 ff ff       	call   0x5240c0
52c921:	8b 55 f8             	mov    -0x8(%ebp),%edx
52c924:	83 c4 1c             	add    $0x1c,%esp
52c927:	0f bf 43 2a          	movswl 0x2a(%ebx),%eax
52c92b:	46                   	inc    %esi
52c92c:	3b f0                	cmp    %eax,%esi
52c92e:	7c c0                	jl     0x52c8f0
52c930:	ff 75 f4             	push   -0xc(%ebp)
52c933:	0f b6 45 28          	movzbl 0x28(%ebp),%eax
52c937:	8b 77 6c             	mov    0x6c(%edi),%esi
52c93a:	50                   	push   %eax
52c93b:	ff 75 fc             	push   -0x4(%ebp)
52c93e:	53                   	push   %ebx
52c93f:	6a 01                	push   $0x1
52c941:	6a 00                	push   $0x0
52c943:	6a 7e                	push   $0x7e
52c945:	ff 75 10             	push   0x10(%ebp)
52c948:	ff 75 08             	push   0x8(%ebp)
52c94b:	e8 a0 24 ff ff       	call   0x51edf0
52c950:	83 c4 24             	add    $0x24,%esp
52c953:	3b 77 6c             	cmp    0x6c(%edi),%esi
52c956:	7d 24                	jge    0x52c97c
52c958:	66 8b 45 20          	mov    0x20(%ebp),%ax
52c95c:	98                   	cwtl
52c95d:	50                   	push   %eax
52c95e:	ff 75 1c             	push   0x1c(%ebp)
52c961:	8b 45 ec             	mov    -0x14(%ebp),%eax
52c964:	ff 75 f4             	push   -0xc(%ebp)
52c967:	0f b6 c0             	movzbl %al,%eax
52c96a:	ff 75 14             	push   0x14(%ebp)
52c96d:	50                   	push   %eax
52c96e:	57                   	push   %edi
52c96f:	e8 9c 52 01 00       	call   0x541c10
52c974:	83 c4 18             	add    $0x18,%esp
52c977:	83 c8 ff             	or     $0xffffffff,%eax
52c97a:	eb 03                	jmp    0x52c97f
52c97c:	8b 45 30             	mov    0x30(%ebp),%eax
52c97f:	8b 75 08             	mov    0x8(%ebp),%esi
52c982:	6a 00                	push   $0x0
52c984:	6a 00                	push   $0x0
52c986:	6a 00                	push   $0x0
52c988:	ff 75 fc             	push   -0x4(%ebp)
52c98b:	89 45 f8             	mov    %eax,-0x8(%ebp)
52c98e:	53                   	push   %ebx
52c98f:	56                   	push   %esi
52c990:	e8 4b cb ff ff       	call   0x5294e0
52c995:	8b 45 f8             	mov    -0x8(%ebp),%eax
52c998:	83 c4 18             	add    $0x18,%esp
52c99b:	83 7b 0c 00          	cmpl   $0x0,0xc(%ebx)
52c99f:	0f 85 41 01 00 00    	jne    0x52cae6
52c9a5:	50                   	push   %eax
52c9a6:	6a 00                	push   $0x0
52c9a8:	ff 75 18             	push   0x18(%ebp)
52c9ab:	ff 75 14             	push   0x14(%ebp)
52c9ae:	53                   	push   %ebx
52c9af:	56                   	push   %esi
52c9b0:	e8 9b 01 00 00       	call   0x52cb50
52c9b5:	8b 4f 6c             	mov    0x6c(%edi),%ecx
52c9b8:	33 d2                	xor    %edx,%edx
52c9ba:	83 c4 18             	add    $0x18,%esp
52c9bd:	38 55 24             	cmp    %dl,0x24(%ebp)
52c9c0:	0f 95 c2             	setne  %dl
52c9c3:	39 4f 70             	cmp    %ecx,0x70(%edi)
52c9c6:	7f 13                	jg     0x52c9db
52c9c8:	6a 00                	push   $0x0
52c9ca:	52                   	push   %edx
52c9cb:	ff 75 14             	push   0x14(%ebp)
52c9ce:	6a 7a                	push   $0x7a
52c9d0:	57                   	push   %edi
52c9d1:	e8 2a 9b fd ff       	call   0x506500
52c9d6:	83 c4 14             	add    $0x14,%esp
52c9d9:	eb 31                	jmp    0x52ca0c
52c9db:	8b 5d 14             	mov    0x14(%ebp),%ebx
52c9de:	8d 41 01             	lea    0x1(%ecx),%eax
52c9e1:	89 47 6c             	mov    %eax,0x6c(%edi)
52c9e4:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
52c9e7:	8b 47 68             	mov    0x68(%edi),%eax
52c9ea:	89 5c 88 04          	mov    %ebx,0x4(%eax,%ecx,4)
52c9ee:	8b 5d 0c             	mov    0xc(%ebp),%ebx
52c9f1:	c7 04 88 7a 00 00 00 	movl   $0x7a,(%eax,%ecx,4)
52c9f8:	89 54 88 08          	mov    %edx,0x8(%eax,%ecx,4)
52c9fc:	c7 44 88 0c 00 00 00 	movl   $0x0,0xc(%eax,%ecx,4)
52ca03:	00
52ca04:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
52ca0b:	00
52ca0c:	80 7e 12 00          	cmpb   $0x0,0x12(%esi)
52ca10:	74 18                	je     0x52ca2a
52ca12:	8b 03                	mov    (%ebx),%eax
52ca14:	85 c0                	test   %eax,%eax
52ca16:	74 3a                	je     0x52ca52
52ca18:	68 64 78 6b 00       	push   $0x6b7864
52ca1d:	50                   	push   %eax
52ca1e:	e8 0d 12 01 00       	call   0x53dc30
52ca23:	83 c4 08             	add    $0x8,%esp
52ca26:	85 c0                	test   %eax,%eax
52ca28:	75 28                	jne    0x52ca52
52ca2a:	8b 07                	mov    (%edi),%eax
52ca2c:	80 78 51 00          	cmpb   $0x0,0x51(%eax)
52ca30:	74 0e                	je     0x52ca40
52ca32:	53                   	push   %ebx
52ca33:	6a fa                	push   $0xfffffffa
52ca35:	50                   	push   %eax
52ca36:	e8 75 72 fd ff       	call   0x503cb0
52ca3b:	83 c4 0c             	add    $0xc,%esp
52ca3e:	eb 12                	jmp    0x52ca52
52ca40:	8b 47 6c             	mov    0x6c(%edi),%eax
52ca43:	8d 0c 80             	lea    (%eax,%eax,4),%ecx
52ca46:	8b 47 68             	mov    0x68(%edi),%eax
52ca49:	c6 44 88 ed fa       	movb   $0xfa,-0x13(%eax,%ecx,4)
52ca4e:	89 5c 88 fc          	mov    %ebx,-0x4(%eax,%ecx,4)
52ca52:	80 7d 2c 00          	cmpb   $0x0,0x2c(%ebp)
52ca56:	74 17                	je     0x52ca6f
52ca58:	8b 47 6c             	mov    0x6c(%edi),%eax
52ca5b:	85 c0                	test   %eax,%eax
52ca5d:	7e 10                	jle    0x52ca6f
52ca5f:	8d 0c 80             	lea    (%eax,%eax,4),%ecx
52ca62:	ba 04 00 00 00       	mov    $0x4,%edx
52ca67:	8b 47 68             	mov    0x68(%edi),%eax
52ca6a:	66 89 54 88 ee       	mov    %dx,-0x12(%eax,%ecx,4)
52ca6f:	8b 55 f8             	mov    -0x8(%ebp),%edx
52ca72:	85 d2                	test   %edx,%edx
52ca74:	78 51                	js     0x52cac7
52ca76:	3b 55 14             	cmp    0x14(%ebp),%edx
52ca79:	74 4c                	je     0x52cac7
52ca7b:	8b 4f 6c             	mov    0x6c(%edi),%ecx
52ca7e:	39 4f 70             	cmp    %ecx,0x70(%edi)
52ca81:	7f 12                	jg     0x52ca95
52ca83:	6a 00                	push   $0x0
52ca85:	6a 00                	push   $0x0
52ca87:	52                   	push   %edx
52ca88:	6a 7a                	push   $0x7a
52ca8a:	57                   	push   %edi
52ca8b:	e8 70 9a fd ff       	call   0x506500
52ca90:	83 c4 14             	add    $0x14,%esp
52ca93:	eb 32                	jmp    0x52cac7
52ca95:	8b 75 08             	mov    0x8(%ebp),%esi
52ca98:	8d 41 01             	lea    0x1(%ecx),%eax
52ca9b:	89 47 6c             	mov    %eax,0x6c(%edi)
52ca9e:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
52caa1:	8b 47 68             	mov    0x68(%edi),%eax
52caa4:	c7 04 88 7a 00 00 00 	movl   $0x7a,(%eax,%ecx,4)
52caab:	89 54 88 04          	mov    %edx,0x4(%eax,%ecx,4)
52caaf:	c7 44 88 08 00 00 00 	movl   $0x0,0x8(%eax,%ecx,4)
52cab6:	00
52cab7:	c7 44 88 0c 00 00 00 	movl   $0x0,0xc(%eax,%ecx,4)
52cabe:	00
52cabf:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
52cac6:	00
52cac7:	8b 47 6c             	mov    0x6c(%edi),%eax
52caca:	85 c0                	test   %eax,%eax
52cacc:	7e 18                	jle    0x52cae6
52cace:	ba 02 00 00 00       	mov    $0x2,%edx
52cad3:	33 c9                	xor    %ecx,%ecx
52cad5:	38 55 2c             	cmp    %dl,0x2c(%ebp)
52cad8:	0f 45 d1             	cmovne %ecx,%edx
52cadb:	8d 0c 80             	lea    (%eax,%eax,4),%ecx
52cade:	8b 47 68             	mov    0x68(%edi),%eax
52cae1:	66 89 54 88 ee       	mov    %dx,-0x12(%eax,%ecx,4)
52cae6:	6a 00                	push   $0x0
52cae8:	6a 00                	push   $0x0
52caea:	ff 75 fc             	push   -0x4(%ebp)
52caed:	6a 00                	push   $0x0
52caef:	53                   	push   %ebx
52caf0:	56                   	push   %esi
52caf1:	e8 5a c9 ff ff       	call   0x529450
52caf6:	ff 75 f4             	push   -0xc(%ebp)
52caf9:	0f b6 45 28          	movzbl 0x28(%ebp),%eax
52cafd:	50                   	push   %eax
52cafe:	ff 75 fc             	push   -0x4(%ebp)
52cb01:	53                   	push   %ebx
52cb02:	6a 02                	push   $0x2
52cb04:	6a 00                	push   $0x0
52cb06:	6a 7e                	push   $0x7e
52cb08:	ff 75 10             	push   0x10(%ebp)
52cb0b:	56                   	push   %esi
52cb0c:	e8 df 22 ff ff       	call   0x51edf0
52cb11:	8b 4f 0c             	mov    0xc(%edi),%ecx
52cb14:	83 c4 3c             	add    $0x3c,%esp
52cb17:	8b 55 f4             	mov    -0xc(%ebp),%edx
52cb1a:	f7 d2                	not    %edx
52cb1c:	8b 41 3c             	mov    0x3c(%ecx),%eax
52cb1f:	03 41 38             	add    0x38(%ecx),%eax
52cb22:	79 12                	jns    0x52cb36
52cb24:	52                   	push   %edx
52cb25:	57                   	push   %edi
52cb26:	51                   	push   %ecx
52cb27:	e8 74 6c fe ff       	call   0x5137a0
52cb2c:	83 c4 0c             	add    $0xc,%esp
52cb2f:	5f                   	pop    %edi
52cb30:	5e                   	pop    %esi
52cb31:	5b                   	pop    %ebx
52cb32:	8b e5                	mov    %ebp,%esp
52cb34:	5d                   	pop    %ebp
52cb35:	c3                   	ret
52cb36:	8b 47 6c             	mov    0x6c(%edi),%eax
52cb39:	8b 49 40             	mov    0x40(%ecx),%ecx
52cb3c:	5f                   	pop    %edi
52cb3d:	5e                   	pop    %esi
52cb3e:	5b                   	pop    %ebx
52cb3f:	89 04 91             	mov    %eax,(%ecx,%edx,4)
52cb42:	8b e5                	mov    %ebp,%esp
52cb44:	5d                   	pop    %ebp
52cb45:	c3                   	ret
52cb46:	cc                   	int3
52cb47:	cc                   	int3
52cb48:	cc                   	int3
52cb49:	cc                   	int3
52cb4a:	cc                   	int3
52cb4b:	cc                   	int3
52cb4c:	cc                   	int3
52cb4d:	cc                   	int3
52cb4e:	cc                   	int3
52cb4f:	cc                   	int3
52cb50:	55                   	push   %ebp
52cb51:	8b ec                	mov    %esp,%ebp
52cb53:	83 ec 0c             	sub    $0xc,%esp
52cb56:	8b 45 08             	mov    0x8(%ebp),%eax
52cb59:	83 ca ff             	or     $0xffffffff,%edx
52cb5c:	56                   	push   %esi
52cb5d:	8b 75 0c             	mov    0xc(%ebp),%esi
52cb60:	33 c9                	xor    %ecx,%ecx
52cb62:	57                   	push   %edi
52cb63:	8b 40 08             	mov    0x8(%eax),%eax
52cb66:	89 45 fc             	mov    %eax,-0x4(%ebp)
52cb69:	f6 46 24 80          	testb  $0x80,0x24(%esi)
52cb6d:	75 04                	jne    0x52cb73
52cb6f:	33 ff                	xor    %edi,%edi
52cb71:	eb 1d                	jmp    0x52cb90
52cb73:	8b 7e 08             	mov    0x8(%esi),%edi
52cb76:	85 ff                	test   %edi,%edi
52cb78:	74 16                	je     0x52cb90
52cb7a:	66 0f 1f 44 00 00    	nopw   0x0(%eax,%eax,1)
52cb80:	8b 47 38             	mov    0x38(%edi),%eax
52cb83:	24 03                	and    $0x3,%al
52cb85:	3c 02                	cmp    $0x2,%al
52cb87:	74 07                	je     0x52cb90
52cb89:	8b 7f 14             	mov    0x14(%edi),%edi
52cb8c:	85 ff                	test   %edi,%edi
52cb8e:	75 f0                	jne    0x52cb80
52cb90:	8b 76 08             	mov    0x8(%esi),%esi
52cb93:	85 f6                	test   %esi,%esi
52cb95:	0f 84 0b 01 00 00    	je     0x52cca6
52cb9b:	8b 45 18             	mov    0x18(%ebp),%eax
52cb9e:	53                   	push   %ebx