5278f4:	b8 80 00 00 00       	mov    $0x80,%eax
5278f9:	eb 1b                	jmp    0x527916
5278fb:	3b b7 48 01 00 00    	cmp    0x148(%edi),%esi
527901:	72 09                	jb     0x52790c
527903:	0f b7 87 1e 01 00 00 	movzwl 0x11e(%edi),%eax
52790a:	eb 0a                	jmp    0x527916
52790c:	56                   	push   %esi
52790d:	ff 15 3c 18 72 00    	call   *0x72183c
527913:	83 c4 04             	add    $0x4,%esp
527916:	99                   	cltd
527917:	52                   	push   %edx
527918:	50                   	push   %eax
527919:	57                   	push   %edi
52791a:	e8 c1 9a ff ff       	call   0x5213e0
52791f:	8b c8                	mov    %eax,%ecx
527921:	83 c4 0c             	add    $0xc,%esp
527924:	89 4d e8             	mov    %ecx,-0x18(%ebp)
527927:	85 c9                	test   %ecx,%ecx
527929:	75 06                	jne    0x527931
52792b:	5f                   	pop    %edi
52792c:	5e                   	pop    %esi
52792d:	8b e5                	mov    %ebp,%esp
52792f:	5d                   	pop    %ebp
527930:	c3                   	ret
527931:	8b 06                	mov    (%esi),%eax
527933:	8d 51 04             	lea    0x4(%ecx),%edx
527936:	89 01                	mov    %eax,(%ecx)
527938:	83 3e 00             	cmpl   $0x0,(%esi)
52793b:	89 55 fc             	mov    %edx,-0x4(%ebp)
52793e:	c7 45 f4 00 00 00 00 	movl   $0x0,-0xc(%ebp)
527945:	0f 8e 08 01 00 00    	jle    0x527a53
52794b:	53                   	push   %ebx
52794c:	8b c2                	mov    %edx,%eax
52794e:	8d 5e 0c             	lea    0xc(%esi),%ebx
527951:	2b c1                	sub    %ecx,%eax
527953:	03 d8                	add    %eax,%ebx
527955:	2b ce                	sub    %esi,%ecx
527957:	89 5d f0             	mov    %ebx,-0x10(%ebp)
52795a:	89 4d ec             	mov    %ecx,-0x14(%ebp)
52795d:	0f 1f 00             	nopl   (%eax)
527960:	8b 73 f4             	mov    -0xc(%ebx),%esi
527963:	85 f6                	test   %esi,%esi
527965:	74 14                	je     0x52797b
527967:	6a 00                	push   $0x0
527969:	ff 75 10             	push   0x10(%ebp)
52796c:	56                   	push   %esi
52796d:	57                   	push   %edi
52796e:	e8 ed 8e fd ff       	call   0x500860
527973:	8b 55 fc             	mov    -0x4(%ebp),%edx
527976:	83 c4 10             	add    $0x10,%esp
527979:	eb 02                	jmp    0x52797d
52797b:	33 c0                	xor    %eax,%eax
52797d:	89 02                	mov    %eax,(%edx)
52797f:	85 f6                	test   %esi,%esi
527981:	74 1e                	je     0x5279a1
527983:	80 3e af             	cmpb   $0xaf,(%esi)
527986:	75 19                	jne    0x5279a1
527988:	85 c0                	test   %eax,%eax
52798a:	74 15                	je     0x5279a1
52798c:	66 83 78 20 00       	cmpw   $0x0,0x20(%eax)
527991:	75 08                	jne    0x52799b
527993:	8b 48 10             	mov    0x10(%eax),%ecx
527996:	89 4d f8             	mov    %ecx,-0x8(%ebp)
527999:	eb 03                	jmp    0x52799e
52799b:	8b 4d f8             	mov    -0x8(%ebp),%ecx
52799e:	89 48 0c             	mov    %ecx,0xc(%eax)
5279a1:	8b 5b f8             	mov    -0x8(%ebx),%ebx
5279a4:	85 db                	test   %ebx,%ebx
5279a6:	75 04                	jne    0x5279ac
5279a8:	33 f6                	xor    %esi,%esi
5279aa:	eb 45                	jmp    0x5279f1
5279ac:	8b c3                	mov    %ebx,%eax
5279ae:	8d 50 01             	lea    0x1(%eax),%edx
5279b1:	8a 08                	mov    (%eax),%cl
5279b3:	40                   	inc    %eax
5279b4:	84 c9                	test   %cl,%cl
5279b6:	75 f9                	jne    0x5279b1
5279b8:	2b c2                	sub    %edx,%eax
5279ba:	6a 00                	push   $0x0
5279bc:	8d 78 01             	lea    0x1(%eax),%edi
5279bf:	8b 45 08             	mov    0x8(%ebp),%eax
5279c2:	57                   	push   %edi
5279c3:	85 c0                	test   %eax,%eax
5279c5:	74 0b                	je     0x5279d2
5279c7:	50                   	push   %eax
5279c8:	e8 13 9a ff ff       	call   0x5213e0
5279cd:	83 c4 0c             	add    $0xc,%esp
5279d0:	eb 08                	jmp    0x5279da
5279d2:	e8 89 95 00 00       	call   0x530f60
5279d7:	83 c4 08             	add    $0x8,%esp
5279da:	8b f0                	mov    %eax,%esi
5279dc:	85 f6                	test   %esi,%esi
5279de:	74 0b                	je     0x5279eb
5279e0:	57                   	push   %edi
5279e1:	53                   	push   %ebx
5279e2:	56                   	push   %esi
5279e3:	e8 18 b5 0b 00       	call   0x5e2f00
5279e8:	83 c4 0c             	add    $0xc,%esp
5279eb:	8b 7d 08             	mov    0x8(%ebp),%edi
5279ee:	8b 55 fc             	mov    -0x4(%ebp),%edx
5279f1:	8b 5d f0             	mov    -0x10(%ebp),%ebx
5279f4:	89 72 04             	mov    %esi,0x4(%edx)
5279f7:	8b 75 ec             	mov    -0x14(%ebp),%esi
5279fa:	8a 43 fc             	mov    -0x4(%ebx),%al
5279fd:	88 42 08             	mov    %al,0x8(%edx)
527a00:	8b 03                	mov    (%ebx),%eax
527a02:	8b 14 1e             	mov    (%esi,%ebx,1),%edx
527a05:	83 e0 03             	and    $0x3,%eax
527a08:	83 e2 f8             	and    $0xfffffff8,%edx
527a0b:	0b d0                	or     %eax,%edx
527a0d:	89 14 1e             	mov    %edx,(%esi,%ebx,1)
527a10:	8b 0b                	mov    (%ebx),%ecx
527a12:	33 ca                	xor    %edx,%ecx
527a14:	83 e1 20             	and    $0x20,%ecx
527a17:	33 ca                	xor    %edx,%ecx
527a19:	8b 55 fc             	mov    -0x4(%ebp),%edx
527a1c:	89 0c 1e             	mov    %ecx,(%esi,%ebx,1)
527a1f:	8b 03                	mov    (%ebx),%eax
527a21:	33 c1                	xor    %ecx,%eax
527a23:	83 e0 10             	and    $0x10,%eax
527a26:	33 c1                	xor    %ecx,%eax
527a28:	8b 4d f4             	mov    -0xc(%ebp),%ecx
527a2b:	89 04 1e             	mov    %eax,(%esi,%ebx,1)
527a2e:	41                   	inc    %ecx
527a2f:	8b 43 04             	mov    0x4(%ebx),%eax
527a32:	83 c3 14             	add    $0x14,%ebx
527a35:	89 42 10             	mov    %eax,0x10(%edx)
527a38:	83 c2 14             	add    $0x14,%edx
527a3b:	8b 45 0c             	mov    0xc(%ebp),%eax
527a3e:	89 4d f4             	mov    %ecx,-0xc(%ebp)
527a41:	89 55 fc             	mov    %edx,-0x4(%ebp)
527a44:	89 5d f0             	mov    %ebx,-0x10(%ebp)
527a47:	3b 08                	cmp    (%eax),%ecx
527a49:	0f 8c 11 ff ff ff    	jl     0x527960
527a4f:	8b 4d e8             	mov    -0x18(%ebp),%ecx
527a52:	5b                   	pop    %ebx
527a53:	5f                   	pop    %edi
527a54:	8b c1                	mov    %ecx,%eax
527a56:	5e                   	pop    %esi
527a57:	8b e5                	mov    %ebp,%esp
527a59:	5d                   	pop    %ebp
527a5a:	c3                   	ret
527a5b:	cc                   	int3
527a5c:	cc                   	int3
527a5d:	cc                   	int3
527a5e:	cc                   	int3
527a5f:	cc                   	int3
527a60:	55                   	push   %ebp
527a61:	8b ec                	mov    %esp,%ebp
527a63:	51                   	push   %ecx
527a64:	8b 4d 0c             	mov    0xc(%ebp),%ecx
527a67:	85 c9                	test   %ecx,%ecx
527a69:	0f 84 86 00 00 00    	je     0x527af5
527a6f:	8b 01                	mov    (%ecx),%eax
527a71:	33 d2                	xor    %edx,%edx
527a73:	53                   	push   %ebx
527a74:	8b 5d 08             	mov    0x8(%ebp),%ebx
527a77:	56                   	push   %esi
527a78:	8d 04 80             	lea    (%eax,%eax,4),%eax
527a7b:	8d 40 fc             	lea    -0x4(%eax),%eax
527a7e:	8d 04 81             	lea    (%ecx,%eax,4),%eax
527a81:	8b 4d 10             	mov    0x10(%ebp),%ecx
527a84:	57                   	push   %edi
527a85:	89 45 0c             	mov    %eax,0xc(%ebp)
527a88:	8b 79 04             	mov    0x4(%ecx),%edi
527a8b:	8b 09                	mov    (%ecx),%ecx
527a8d:	89 4d fc             	mov    %ecx,-0x4(%ebp)
527a90:	85 c9                	test   %ecx,%ecx
527a92:	75 04                	jne    0x527a98
527a94:	33 f6                	xor    %esi,%esi
527a96:	eb 2d                	jmp    0x527ac5
527a98:	8b c7                	mov    %edi,%eax
527a9a:	83 c0 01             	add    $0x1,%eax
527a9d:	13 d2                	adc    %edx,%edx
527a9f:	52                   	push   %edx
527aa0:	50                   	push   %eax
527aa1:	ff 33                	push   (%ebx)
527aa3:	e8 38 99 ff ff       	call   0x5213e0
527aa8:	8b f0                	mov    %eax,%esi
527aaa:	83 c4 0c             	add    $0xc,%esp
527aad:	85 f6                	test   %esi,%esi
527aaf:	74 11                	je     0x527ac2
527ab1:	57                   	push   %edi
527ab2:	ff 75 fc             	push   -0x4(%ebp)
527ab5:	56                   	push   %esi
527ab6:	e8 45 b4 0b 00       	call   0x5e2f00
527abb:	83 c4 0c             	add    $0xc,%esp
527abe:	c6 04 37 00          	movb   $0x0,(%edi,%esi,1)
527ac2:	8b 45 0c             	mov    0xc(%ebp),%eax
527ac5:	83 7d 14 00          	cmpl   $0x0,0x14(%ebp)
527ac9:	89 70 04             	mov    %esi,0x4(%eax)
527acc:	74 0c                	je     0x527ada
527ace:	56                   	push   %esi
527acf:	e8 0c aa ff ff       	call   0x5224e0
527ad4:	8b 45 0c             	mov    0xc(%ebp),%eax
527ad7:	83 c4 04             	add    $0x4,%esp
527ada:	80 bb c8 00 00 00 02 	cmpb   $0x2,0xc8(%ebx)
527ae1:	72 0f                	jb     0x527af2
527ae3:	ff 75 10             	push   0x10(%ebp)
527ae6:	ff 70 04             	push   0x4(%eax)
527ae9:	53                   	push   %ebx
527aea:	e8 61 03 01 00       	call   0x537e50
527aef:	83 c4 0c             	add    $0xc,%esp
527af2:	5f                   	pop    %edi
527af3:	5e                   	pop    %esi
527af4:	5b                   	pop    %ebx
527af5:	8b e5                	mov    %ebp,%esp
527af7:	5d                   	pop    %ebp
527af8:	c3                   	ret
527af9:	cc                   	int3
527afa:	cc                   	int3
527afb:	cc                   	int3
527afc:	cc                   	int3
527afd:	cc                   	int3
527afe:	cc                   	int3
527aff:	cc                   	int3
527b00:	55                   	push   %ebp
527b01:	8b ec                	mov    %esp,%ebp
527b03:	8b 4d 08             	mov    0x8(%ebp),%ecx
527b06:	85 c9                	test   %ecx,%ecx
527b08:	74 2b                	je     0x527b35
527b0a:	8b 01                	mov    (%ecx),%eax
527b0c:	33 d2                	xor    %edx,%edx
527b0e:	8d 04 80             	lea    (%eax,%eax,4),%eax
527b11:	8d 0c 81             	lea    (%ecx,%eax,4),%ecx
527b14:	8b 45 0c             	mov    0xc(%ebp),%eax
527b17:	83 f8 ff             	cmp    $0xffffffff,%eax
527b1a:	0f 44 c2             	cmove  %edx,%eax
527b1d:	8b 55 10             	mov    0x10(%ebp),%edx
527b20:	88 41 f8             	mov    %al,-0x8(%ecx)
527b23:	83 fa ff             	cmp    $0xffffffff,%edx
527b26:	74 0d                	je     0x527b35
527b28:	83 49 fc 20          	orl    $0x20,-0x4(%ecx)
527b2c:	3b c2                	cmp    %edx,%eax
527b2e:	74 05                	je     0x527b35
527b30:	0c 02                	or     $0x2,%al
527b32:	88 41 f8             	mov    %al,-0x8(%ecx)
527b35:	5d                   	pop    %ebp
527b36:	c3                   	ret
527b37:	cc                   	int3
527b38:	cc                   	int3
527b39:	cc                   	int3
527b3a:	cc                   	int3
527b3b:	cc                   	int3
527b3c:	cc                   	int3
527b3d:	cc                   	int3
527b3e:	cc                   	int3
527b3f:	cc                   	int3
527b40:	55                   	push   %ebp
527b41:	8b ec                	mov    %esp,%ebp
527b43:	8b 45 08             	mov    0x8(%ebp),%eax
527b46:	8b 4d 0c             	mov    0xc(%ebp),%ecx
527b49:	8b 10                	mov    (%eax),%edx
527b4b:	85 c9                	test   %ecx,%ecx
527b4d:	74 2f                	je     0x527b7e
527b4f:	8b 01                	mov    (%ecx),%eax
527b51:	56                   	push   %esi
527b52:	8d 04 80             	lea    (%eax,%eax,4),%eax
527b55:	83 7c 81 f4 00       	cmpl   $0x0,-0xc(%ecx,%eax,4)
527b5a:	8d 34 81             	lea    (%ecx,%eax,4),%esi
527b5d:	75 1e                	jne    0x527b7d
527b5f:	ff 75 14             	push   0x14(%ebp)
527b62:	ff 75 10             	push   0x10(%ebp)
527b65:	52                   	push   %edx
527b66:	e8 b5 9a ff ff       	call   0x521620
527b6b:	89 46 f4             	mov    %eax,-0xc(%esi)
527b6e:	83 c4 0c             	add    $0xc,%esp
527b71:	8b 46 fc             	mov    -0x4(%esi),%eax
527b74:	83 e0 fd             	and    $0xfffffffd,%eax
527b77:	83 c8 01             	or     $0x1,%eax
527b7a:	89 46 fc             	mov    %eax,-0x4(%esi)
527b7d:	5e                   	pop    %esi
527b7e:	5d                   	pop    %ebp
527b7f:	c3                   	ret
527b80:	55                   	push   %ebp
527b81:	8b ec                	mov    %esp,%ebp
527b83:	53                   	push   %ebx
527b84:	8a 5d 0c             	mov    0xc(%ebp),%bl
527b87:	33 d2                	xor    %edx,%edx
527b89:	80 fb 41             	cmp    $0x41,%bl
527b8c:	74 4d                	je     0x527bdb
527b8e:	8b 4d 08             	mov    0x8(%ebp),%ecx
527b91:	8a 01                	mov    (%ecx),%al
527b93:	3c ab                	cmp    $0xab,%al
527b95:	74 09                	je     0x527ba0
527b97:	3c aa                	cmp    $0xaa,%al
527b99:	75 0a                	jne    0x527ba5
527b9b:	ba 01 00 00 00       	mov    $0x1,%edx
527ba0:	8b 49 0c             	mov    0xc(%ecx),%ecx
527ba3:	eb ec                	jmp    0x527b91
527ba5:	8a 01                	mov    (%ecx),%al
527ba7:	3c ad                	cmp    $0xad,%al
527ba9:	75 03                	jne    0x527bae
527bab:	8a 41 02             	mov    0x2(%ecx),%al
527bae:	0f b6 c0             	movzbl %al,%eax
527bb1:	83 c0 8d             	add    $0xffffff8d,%eax
527bb4:	83 f8 31             	cmp    $0x31,%eax
527bb7:	77 40                	ja     0x527bf9
527bb9:	0f b6 80 14 7c 52 00 	movzbl 0x527c14(%eax),%eax
527bc0:	ff 24 85 00 7c 52 00 	jmp    *0x527c00(,%eax,4)
527bc7:	33 c0                	xor    %eax,%eax
527bc9:	80 fb 43             	cmp    $0x43,%bl
527bcc:	5b                   	pop    %ebx
527bcd:	0f 9d c0             	setge  %al
527bd0:	5d                   	pop    %ebp
527bd1:	c3                   	ret
527bd2:	85 d2                	test   %edx,%edx
527bd4:	75 23                	jne    0x527bf9
527bd6:	80 fb 42             	cmp    $0x42,%bl
527bd9:	75 1e                	jne    0x527bf9
527bdb:	b8 01 00 00 00       	mov    $0x1,%eax
527be0:	5b                   	pop    %ebx
527be1:	5d                   	pop    %ebp
527be2:	c3                   	ret
527be3:	33 c0                	xor    %eax,%eax
527be5:	85 d2                	test   %edx,%edx
527be7:	5b                   	pop    %ebx
527be8:	0f 94 c0             	sete   %al
527beb:	5d                   	pop    %ebp
527bec:	c3                   	ret
527bed:	80 fb 43             	cmp    $0x43,%bl
527bf0:	7c 07                	jl     0x527bf9
527bf2:	66 83 79 20 00       	cmpw   $0x0,0x20(%ecx)
527bf7:	7c e2                	jl     0x527bdb
527bf9:	33 c0                	xor    %eax,%eax
527bfb:	5b                   	pop    %ebx
527bfc:	5d                   	pop    %ebp
527bfd:	c3                   	ret
527bfe:	66 90                	xchg   %ax,%ax
527c00:	d2 7b 52             	sarb   %cl,0x52(%ebx)
527c03:	00 c7                	add    %al,%bh
527c05:	7b 52                	jnp    0x527c59
527c07:	00 e3                	add    %ah,%bl
527c09:	7b 52                	jnp    0x527c5d
527c0b:	00 ed                	add    %ch,%ch
527c0d:	7b 52                	jnp    0x527c61
527c0f:	00 f9                	add    %bh,%cl
527c11:	7b 52                	jnp    0x527c65
527c13:	00 00                	add    %al,(%eax)
527c15:	04 04                	add    $0x4,%al
527c17:	04 04                	add    $0x4,%al
527c19:	04 04                	add    $0x4,%al
527c1b:	04 04                	add    $0x4,%al
527c1d:	04 04                	add    $0x4,%al
527c1f:	04 04                	add    $0x4,%al
527c21:	04 04                	add    $0x4,%al
527c23:	04 04                	add    $0x4,%al
527c25:	04 04                	add    $0x4,%al
527c27:	04 04                	add    $0x4,%al
527c29:	04 04                	add    $0x4,%al