4f9afb:	8b 5d ec             	mov    -0x14(%ebp),%ebx
4f9afe:	8d 14 90             	lea    (%eax,%edx,4),%edx
4f9b01:	8b 02                	mov    (%edx),%eax
4f9b03:	8d 4e 01             	lea    0x1(%esi),%ecx
4f9b06:	8d 52 04             	lea    0x4(%edx),%edx
4f9b09:	39 18                	cmp    %ebx,(%eax)
4f9b0b:	0f 45 ce             	cmovne %esi,%ecx
4f9b0e:	8b f1                	mov    %ecx,%esi
4f9b10:	83 ef 01             	sub    $0x1,%edi
4f9b13:	75 ec                	jne    0x4f9b01
4f9b15:	8b 4d f8             	mov    -0x8(%ebp),%ecx
4f9b18:	33 db                	xor    %ebx,%ebx
4f9b1a:	89 75 f0             	mov    %esi,-0x10(%ebp)
4f9b1d:	8b 75 e0             	mov    -0x20(%ebp),%esi
4f9b20:	8b 55 ec             	mov    -0x14(%ebp),%edx
4f9b23:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
4f9b2a:	f7 42 04 00 08 00 00 	testl  $0x800,0x4(%edx)
4f9b31:	0f 84 d9 00 00 00    	je     0x4f9c10
4f9b37:	8b 42 14             	mov    0x14(%edx),%eax
4f9b3a:	8b 40 1c             	mov    0x1c(%eax),%eax
4f9b3d:	83 38 01             	cmpl   $0x1,(%eax)
4f9b40:	0f 84 ca 00 00 00    	je     0x4f9c10
4f9b46:	8b 45 08             	mov    0x8(%ebp),%eax
4f9b49:	52                   	push   %edx
4f9b4a:	51                   	push   %ecx
4f9b4b:	ff 75 14             	push   0x14(%ebp)
4f9b4e:	8b 38                	mov    (%eax),%edi
4f9b50:	50                   	push   %eax
4f9b51:	89 7d cc             	mov    %edi,-0x34(%ebp)
4f9b54:	e8 37 88 01 00       	call   0x512390
4f9b59:	83 c4 10             	add    $0x10,%esp
4f9b5c:	89 45 dc             	mov    %eax,-0x24(%ebp)
4f9b5f:	80 7f 51 00          	cmpb   $0x0,0x51(%edi)
4f9b63:	8b 7d f0             	mov    -0x10(%ebp),%edi
4f9b66:	0f 85 87 00 00 00    	jne    0x4f9bf3
4f9b6c:	8b 55 08             	mov    0x8(%ebp),%edx
4f9b6f:	8d 04 bd 00 00 00 00 	lea    0x0(,%edi,4),%eax
4f9b76:	6a 00                	push   $0x0
4f9b78:	50                   	push   %eax
4f9b79:	8b 0a                	mov    (%edx),%ecx
4f9b7b:	85 c9                	test   %ecx,%ecx
4f9b7d:	74 28                	je     0x4f9ba7
4f9b7f:	51                   	push   %ecx
4f9b80:	e8 5b 78 02 00       	call   0x5213e0
4f9b85:	8b d8                	mov    %eax,%ebx
4f9b87:	83 c4 0c             	add    $0xc,%esp
4f9b8a:	89 5d e4             	mov    %ebx,-0x1c(%ebp)
4f9b8d:	eb 25                	jmp    0x4f9bb4
4f9b8f:	ff 75 0c             	push   0xc(%ebp)
4f9b92:	ff 75 10             	push   0x10(%ebp)
4f9b95:	e8 66 43 00 00       	call   0x4fdf00
4f9b9a:	8b 45 1c             	mov    0x1c(%ebp),%eax
4f9b9d:	83 c4 08             	add    $0x8,%esp
4f9ba0:	5f                   	pop    %edi
4f9ba1:	5e                   	pop    %esi
4f9ba2:	5b                   	pop    %ebx
4f9ba3:	8b e5                	mov    %ebp,%esp
4f9ba5:	5d                   	pop    %ebp
4f9ba6:	c3                   	ret
4f9ba7:	e8 b4 73 03 00       	call   0x530f60
4f9bac:	83 c4 08             	add    $0x8,%esp
4f9baf:	89 45 e4             	mov    %eax,-0x1c(%ebp)
4f9bb2:	8b d8                	mov    %eax,%ebx
4f9bb4:	85 db                	test   %ebx,%ebx
4f9bb6:	74 13                	je     0x4f9bcb
4f9bb8:	8d 04 bd 00 00 00 00 	lea    0x0(,%edi,4),%eax
4f9bbf:	50                   	push   %eax
4f9bc0:	6a 00                	push   $0x0
4f9bc2:	53                   	push   %ebx
4f9bc3:	e8 38 9e 0e 00       	call   0x5e3a00
4f9bc8:	83 c4 0c             	add    $0xc,%esp
4f9bcb:	8d 45 fc             	lea    -0x4(%ebp),%eax
4f9bce:	50                   	push   %eax
4f9bcf:	53                   	push   %ebx
4f9bd0:	6a 00                	push   $0x0
4f9bd2:	6a 04                	push   $0x4
4f9bd4:	ff 75 dc             	push   -0x24(%ebp)
4f9bd7:	ff 75 08             	push   0x8(%ebp)
4f9bda:	e8 91 e5 02 00       	call   0x528170
4f9bdf:	8b 4d fc             	mov    -0x4(%ebp),%ecx
4f9be2:	83 c4 18             	add    $0x18,%esp
4f9be5:	89 45 e8             	mov    %eax,-0x18(%ebp)
4f9be8:	8b 45 0c             	mov    0xc(%ebp),%eax
4f9beb:	8b 00                	mov    (%eax),%eax
4f9bed:	89 48 1c             	mov    %ecx,0x1c(%eax)
4f9bf0:	8b 45 dc             	mov    -0x24(%ebp),%eax
4f9bf3:	85 c0                	test   %eax,%eax
4f9bf5:	74 0c                	je     0x4f9c03
4f9bf7:	50                   	push   %eax
4f9bf8:	ff 75 cc             	push   -0x34(%ebp)
4f9bfb:	e8 b0 cb 02 00       	call   0x5267b0
4f9c00:	83 c4 08             	add    $0x8,%esp
4f9c03:	8b 45 0c             	mov    0xc(%ebp),%eax
4f9c06:	8b 00                	mov    (%eax),%eax
4f9c08:	89 45 ec             	mov    %eax,-0x14(%ebp)
4f9c0b:	8b 45 e8             	mov    -0x18(%ebp),%eax
4f9c0e:	eb 1c                	jmp    0x4f9c2c
4f9c10:	8d 45 fc             	lea    -0x4(%ebp),%eax
4f9c13:	50                   	push   %eax
4f9c14:	6a 00                	push   $0x0
4f9c16:	6a 00                	push   $0x0
4f9c18:	6a 04                	push   $0x4
4f9c1a:	52                   	push   %edx
4f9c1b:	ff 75 08             	push   0x8(%ebp)
4f9c1e:	e8 4d e5 02 00       	call   0x528170
4f9c23:	8b 7d f0             	mov    -0x10(%ebp),%edi
4f9c26:	83 c4 18             	add    $0x18,%esp
4f9c29:	89 45 e8             	mov    %eax,-0x18(%ebp)
4f9c2c:	83 f8 04             	cmp    $0x4,%eax
4f9c2f:	75 0d                	jne    0x4f9c3e
4f9c31:	33 c0                	xor    %eax,%eax
4f9c33:	39 45 f4             	cmp    %eax,-0xc(%ebp)
4f9c36:	0f 94 c0             	sete   %al
4f9c39:	89 45 f4             	mov    %eax,-0xc(%ebp)
4f9c3c:	eb 03                	jmp    0x4f9c41
4f9c3e:	8b 45 f4             	mov    -0xc(%ebp),%eax
4f9c41:	8b 4e 6c             	mov    0x6c(%esi),%ecx
4f9c44:	33 d2                	xor    %edx,%edx
4f9c46:	85 c0                	test   %eax,%eax
4f9c48:	0f 94 c2             	sete   %dl
4f9c4b:	8d 14 95 21 00 00 00 	lea    0x21(,%edx,4),%edx
4f9c52:	39 4e 70             	cmp    %ecx,0x70(%esi)
4f9c55:	7f 13                	jg     0x4f9c6a
4f9c57:	6a 00                	push   $0x0
4f9c59:	6a 00                	push   $0x0
4f9c5b:	ff 75 fc             	push   -0x4(%ebp)
4f9c5e:	52                   	push   %edx
4f9c5f:	56                   	push   %esi
4f9c60:	e8 9b c8 00 00       	call   0x506500
4f9c65:	83 c4 14             	add    $0x14,%esp
4f9c68:	eb 3a                	jmp    0x4f9ca4
4f9c6a:	8d 41 01             	lea    0x1(%ecx),%eax
4f9c6d:	89 46 6c             	mov    %eax,0x6c(%esi)
4f9c70:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
4f9c73:	8b 46 68             	mov    0x68(%esi),%eax
4f9c76:	88 14 88             	mov    %dl,(%eax,%ecx,4)
4f9c79:	33 d2                	xor    %edx,%edx
4f9c7b:	66 89 54 88 02       	mov    %dx,0x2(%eax,%ecx,4)
4f9c80:	8b 55 fc             	mov    -0x4(%ebp),%edx
4f9c83:	89 54 88 04          	mov    %edx,0x4(%eax,%ecx,4)
4f9c87:	c7 44 88 08 00 00 00 	movl   $0x0,0x8(%eax,%ecx,4)
4f9c8e:	00
4f9c8f:	c7 44 88 0c 00 00 00 	movl   $0x0,0xc(%eax,%ecx,4)
4f9c96:	00
4f9c97:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
4f9c9e:	00
4f9c9f:	c6 44 88 01 00       	movb   $0x0,0x1(%eax,%ecx,4)
4f9ca4:	8b 45 f8             	mov    -0x8(%ebp),%eax
4f9ca7:	8b 4d 10             	mov    0x10(%ebp),%ecx
4f9caa:	81 48 24 00 08 00 00 	orl    $0x800,0x24(%eax)
4f9cb1:	83 79 40 00          	cmpl   $0x0,0x40(%ecx)
4f9cb5:	75 0c                	jne    0x4f9cc3
4f9cb7:	8b 45 08             	mov    0x8(%ebp),%eax
4f9cba:	ff 48 38             	decl   0x38(%eax)
4f9cbd:	8b 40 38             	mov    0x38(%eax),%eax
4f9cc0:	89 41 10             	mov    %eax,0x10(%ecx)
4f9cc3:	8b 41 40             	mov    0x40(%ecx),%eax
4f9cc6:	8b 55 08             	mov    0x8(%ebp),%edx
4f9cc9:	89 45 d4             	mov    %eax,-0x2c(%ebp)
4f9ccc:	03 c7                	add    %edi,%eax
4f9cce:	89 41 40             	mov    %eax,0x40(%ecx)
4f9cd1:	8b 49 44             	mov    0x44(%ecx),%ecx
4f9cd4:	8b 12                	mov    (%edx),%edx
4f9cd6:	8d 04 80             	lea    (%eax,%eax,4),%eax
4f9cd9:	89 4d cc             	mov    %ecx,-0x34(%ebp)
4f9cdc:	6a 00                	push   $0x0
4f9cde:	c1 e0 02             	shl    $0x2,%eax
4f9ce1:	50                   	push   %eax
4f9ce2:	51                   	push   %ecx
4f9ce3:	52                   	push   %edx
4f9ce4:	89 55 d0             	mov    %edx,-0x30(%ebp)
4f9ce7:	e8 74 78 02 00       	call   0x521560
4f9cec:	8b f8                	mov    %eax,%edi
4f9cee:	83 c4 10             	add    $0x10,%esp
4f9cf1:	85 ff                	test   %edi,%edi
4f9cf3:	75 13                	jne    0x4f9d08
4f9cf5:	8b 45 cc             	mov    -0x34(%ebp),%eax
4f9cf8:	85 c0                	test   %eax,%eax
4f9cfa:	74 0c                	je     0x4f9d08
4f9cfc:	50                   	push   %eax
4f9cfd:	ff 75 d0             	push   -0x30(%ebp)
4f9d00:	e8 6b 76 02 00       	call   0x521370
4f9d05:	83 c4 08             	add    $0x8,%esp
4f9d08:	8b 45 10             	mov    0x10(%ebp),%eax
4f9d0b:	89 78 44             	mov    %edi,0x44(%eax)
4f9d0e:	85 ff                	test   %edi,%edi
4f9d10:	0f 84 b3 01 00 00    	je     0x4f9ec9
4f9d16:	8b 45 d4             	mov    -0x2c(%ebp),%eax
4f9d19:	8b 55 f8             	mov    -0x8(%ebp),%edx
4f9d1c:	8b 4d 14             	mov    0x14(%ebp),%ecx
4f9d1f:	8d 04 80             	lea    (%eax,%eax,4),%eax
4f9d22:	8d 3c 87             	lea    (%edi,%eax,4),%edi
4f9d25:	0f b7 42 28          	movzwl 0x28(%edx),%eax
4f9d29:	3b c8                	cmp    %eax,%ecx
4f9d2b:	0f 8d 9f 01 00 00    	jge    0x4f9ed0
4f9d31:	8d 04 8d 00 00 00 00 	lea    0x0(,%ecx,4),%eax
4f9d38:	89 5d d4             	mov    %ebx,-0x2c(%ebp)
4f9d3b:	8b 5d 1c             	mov    0x1c(%ebp),%ebx
4f9d3e:	83 c7 04             	add    $0x4,%edi
4f9d41:	89 45 f0             	mov    %eax,-0x10(%ebp)
4f9d44:	8b 45 1c             	mov    0x1c(%ebp),%eax
4f9d47:	2b c1                	sub    %ecx,%eax
4f9d49:	89 45 dc             	mov    %eax,-0x24(%ebp)
4f9d4c:	8b c1                	mov    %ecx,%eax
4f9d4e:	2b c3                	sub    %ebx,%eax
4f9d50:	89 45 cc             	mov    %eax,-0x34(%ebp)
4f9d53:	8b 4d f0             	mov    -0x10(%ebp),%ecx
4f9d56:	8b 42 30             	mov    0x30(%edx),%eax
4f9d59:	8b 04 01             	mov    (%ecx,%eax,1),%eax
4f9d5c:	8b 4d ec             	mov    -0x14(%ebp),%ecx
4f9d5f:	39 08                	cmp    %ecx,(%eax)
4f9d61:	0f 85 47 01 00 00    	jne    0x4f9eae
4f9d67:	83 7d e8 01          	cmpl   $0x1,-0x18(%ebp)
4f9d6b:	75 48                	jne    0x4f9db5
4f9d6d:	8b 56 6c             	mov    0x6c(%esi),%edx
4f9d70:	39 56 70             	cmp    %edx,0x70(%esi)
4f9d73:	7f 18                	jg     0x4f9d8d
4f9d75:	6a 00                	push   $0x0
4f9d77:	53                   	push   %ebx
4f9d78:	ff 75 fc             	push   -0x4(%ebp)
4f9d7b:	6a 7f                	push   $0x7f
4f9d7d:	56                   	push   %esi
4f9d7e:	e8 7d c7 00 00       	call   0x506500
4f9d83:	83 c4 14             	add    $0x14,%esp
4f9d86:	8b d0                	mov    %eax,%edx
4f9d88:	e9 8c 00 00 00       	jmp    0x4f9e19
4f9d8d:	8d 42 01             	lea    0x1(%edx),%eax
4f9d90:	89 46 6c             	mov    %eax,0x6c(%esi)
4f9d93:	8d 0c 92             	lea    (%edx,%edx,4),%ecx
4f9d96:	8b 46 68             	mov    0x68(%esi),%eax
4f9d99:	8b 75 fc             	mov    -0x4(%ebp),%esi
4f9d9c:	c7 04 88 7f 00 00 00 	movl   $0x7f,(%eax,%ecx,4)
4f9da3:	89 74 88 04          	mov    %esi,0x4(%eax,%ecx,4)
4f9da7:	89 5c 88 08          	mov    %ebx,0x8(%eax,%ecx,4)
4f9dab:	c7 44 88 0c 00 00 00 	movl   $0x0,0xc(%eax,%ecx,4)
4f9db2:	00
4f9db3:	eb 59                	jmp    0x4f9e0e
4f9db5:	83 7d e4 00          	cmpl   $0x0,-0x1c(%ebp)
4f9db9:	74 0d                	je     0x4f9dc8
4f9dbb:	8b 4d d4             	mov    -0x2c(%ebp),%ecx
4f9dbe:	8b 01                	mov    (%ecx),%eax
4f9dc0:	83 c1 04             	add    $0x4,%ecx
4f9dc3:	89 4d d4             	mov    %ecx,-0x2c(%ebp)
4f9dc6:	eb 02                	jmp    0x4f9dca
4f9dc8:	33 c0                	xor    %eax,%eax
4f9dca:	8b 56 6c             	mov    0x6c(%esi),%edx
4f9dcd:	89 45 d0             	mov    %eax,-0x30(%ebp)
4f9dd0:	39 56 70             	cmp    %edx,0x70(%esi)
4f9dd3:	7f 14                	jg     0x4f9de9
4f9dd5:	53                   	push   %ebx
4f9dd6:	50                   	push   %eax
4f9dd7:	ff 75 fc             	push   -0x4(%ebp)
4f9dda:	6a 59                	push   $0x59
4f9ddc:	56                   	push   %esi
4f9ddd:	e8 1e c7 00 00       	call   0x506500
4f9de2:	83 c4 14             	add    $0x14,%esp
4f9de5:	8b d0                	mov    %eax,%edx
4f9de7:	eb 30                	jmp    0x4f9e19
4f9de9:	8d 42 01             	lea    0x1(%edx),%eax
4f9dec:	89 46 6c             	mov    %eax,0x6c(%esi)
4f9def:	8d 0c 92             	lea    (%edx,%edx,4),%ecx
4f9df2:	8b 46 68             	mov    0x68(%esi),%eax
4f9df5:	8b 75 fc             	mov    -0x4(%ebp),%esi
4f9df8:	89 74 88 04          	mov    %esi,0x4(%eax,%ecx,4)
4f9dfc:	8b 75 d0             	mov    -0x30(%ebp),%esi
4f9dff:	c7 04 88 59 00 00 00 	movl   $0x59,(%eax,%ecx,4)
4f9e06:	89 74 88 08          	mov    %esi,0x8(%eax,%ecx,4)
4f9e0a:	89 5c 88 0c          	mov    %ebx,0xc(%eax,%ecx,4)
4f9e0e:	8b 75 e0             	mov    -0x20(%ebp),%esi
4f9e11:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
4f9e18:	00
4f9e19:	89 17                	mov    %edx,(%edi)
4f9e1b:	8b 4e 6c             	mov    0x6c(%esi),%ecx
4f9e1e:	39 4e 70             	cmp    %ecx,0x70(%esi)
4f9e21:	7f 12                	jg     0x4f9e35
4f9e23:	6a 00                	push   $0x0
4f9e25:	6a 00                	push   $0x0
4f9e27:	53                   	push   %ebx
4f9e28:	6a 32                	push   $0x32
4f9e2a:	56                   	push   %esi
4f9e2b:	e8 d0 c6 00 00       	call   0x506500
4f9e30:	83 c4 14             	add    $0x14,%esp
4f9e33:	eb 2f                	jmp    0x4f9e64
4f9e35:	8d 41 01             	lea    0x1(%ecx),%eax
4f9e38:	89 46 6c             	mov    %eax,0x6c(%esi)
4f9e3b:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
4f9e3e:	8b 46 68             	mov    0x68(%esi),%eax
4f9e41:	c7 04 88 32 00 00 00 	movl   $0x32,(%eax,%ecx,4)
4f9e48:	89 5c 88 04          	mov    %ebx,0x4(%eax,%ecx,4)
4f9e4c:	c7 44 88 08 00 00 00 	movl   $0x0,0x8(%eax,%ecx,4)
4f9e53:	00
4f9e54:	c7 44 88 0c 00 00 00 	movl   $0x0,0xc(%eax,%ecx,4)
4f9e5b:	00
4f9e5c:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
4f9e63:	00
4f9e64:	8b 4d cc             	mov    -0x34(%ebp),%ecx
4f9e67:	8b 55 14             	mov    0x14(%ebp),%edx
4f9e6a:	03 cb                	add    %ebx,%ecx
4f9e6c:	3b ca                	cmp    %edx,%ecx
4f9e6e:	75 34                	jne    0x4f9ea4
4f9e70:	83 7d f4 00          	cmpl   $0x0,-0xc(%ebp)
4f9e74:	8b 45 fc             	mov    -0x4(%ebp),%eax
4f9e77:	89 47 fc             	mov    %eax,-0x4(%edi)
4f9e7a:	0f 94 c0             	sete   %al
4f9e7d:	04 04                	add    $0x4,%al
4f9e7f:	85 d2                	test   %edx,%edx
4f9e81:	8b 55 f8             	mov    -0x8(%ebp),%edx
4f9e84:	88 47 0c             	mov    %al,0xc(%edi)
4f9e87:	7e 12                	jle    0x4f9e9b
4f9e89:	8b 45 dc             	mov    -0x24(%ebp),%eax
4f9e8c:	89 47 04             	mov    %eax,0x4(%edi)
4f9e8f:	89 4f 08             	mov    %ecx,0x8(%edi)
4f9e92:	81 4a 24 00 00 04 00 	orl    $0x40000,0x24(%edx)
4f9e99:	eb 10                	jmp    0x4f9eab
4f9e9b:	c7 47 08 00 00 00 00 	movl   $0x0,0x8(%edi)
4f9ea2:	eb 07                	jmp    0x4f9eab
4f9ea4:	8b 55 f8             	mov    -0x8(%ebp),%edx
4f9ea7:	c6 47 0c ad          	movb   $0xad,0xc(%edi)
4f9eab:	83 c7 14             	add    $0x14,%edi
4f9eae:	8b 4d cc             	mov    -0x34(%ebp),%ecx
4f9eb1:	43                   	inc    %ebx
4f9eb2:	0f b7 42 28          	movzwl 0x28(%edx),%eax
4f9eb6:	03 cb                	add    %ebx,%ecx
4f9eb8:	83 45 f0 04          	addl   $0x4,-0x10(%ebp)
4f9ebc:	ff 4d dc             	decl   -0x24(%ebp)
4f9ebf:	3b c8                	cmp    %eax,%ecx
4f9ec1:	0f 8c 8c fe ff ff    	jl     0x4f9d53
4f9ec7:	eb 07                	jmp    0x4f9ed0
4f9ec9:	c7 40 40 00 00 00 00 	movl   $0x0,0x40(%eax)
4f9ed0:	8b 45 08             	mov    0x8(%ebp),%eax
4f9ed3:	8b 5d e4             	mov    -0x1c(%ebp),%ebx
4f9ed6:	8b 08                	mov    (%eax),%ecx
4f9ed8:	85 db                	test   %ebx,%ebx
4f9eda:	0f 84 c3 00 00 00    	je     0x4f9fa3
4f9ee0:	85 c9                	test   %ecx,%ecx
4f9ee2:	74 53                	je     0x4f9f37
4f9ee4:	83 b9 f8 01 00 00 00 	cmpl   $0x0,0x1f8(%ecx)
4f9eeb:	74 0f                	je     0x4f9efc
4f9eed:	53                   	push   %ebx
4f9eee:	51                   	push   %ecx
4f9eef:	e8 7c f5 00 00       	call   0x509470
4f9ef4:	83 c4 08             	add    $0x8,%esp
4f9ef7:	e9 a7 00 00 00       	jmp    0x4f9fa3
4f9efc:	3b 99 4c 01 00 00    	cmp    0x14c(%ecx),%ebx
4f9f02:	73 33                	jae    0x4f9f37
4f9f04:	3b 99 44 01 00 00    	cmp    0x144(%ecx),%ebx
4f9f0a:	72 13                	jb     0x4f9f1f
4f9f0c:	8b 81 40 01 00 00    	mov    0x140(%ecx),%eax
4f9f12:	89 03                	mov    %eax,(%ebx)
4f9f14:	89 99 40 01 00 00    	mov    %ebx,0x140(%ecx)