506b5e:	8b c5                	mov    %ebp,%eax
506b60:	8b 08                	mov    (%eax),%ecx
506b62:	ff 51 04             	call   *0x4(%ecx)
506b65:	c7 85 20 01 00 00 01 	movl   $0x1,0x120(%ebp)
506b6c:	00 00 00
506b6f:	8a 44 24 14          	mov    0x14(%esp),%al
506b73:	88 85 24 01 00 00    	mov    %al,0x124(%ebp)
506b79:	eb 3d                	jmp    0x506bb8
506b7b:	8b 45 00             	mov    0x0(%ebp),%eax
506b7e:	c7 40 14 4d 00 00 00 	movl   $0x4d,0x14(%eax)
506b85:	8b 14 24             	mov    (%esp),%edx
506b88:	83 c2 0c             	add    $0xc,%edx
506b8b:	89 50 18             	mov    %edx,0x18(%eax)
506b8e:	8b c5                	mov    %ebp,%eax
506b90:	ba 01 00 00 00       	mov    $0x1,%edx
506b95:	8b 08                	mov    (%eax),%ecx
506b97:	ff 51 04             	call   *0x4(%ecx)
506b9a:	eb 1c                	jmp    0x506bb8
506b9c:	8b 45 00             	mov    0x0(%ebp),%eax
506b9f:	c7 40 14 4d 00 00 00 	movl   $0x4d,0x14(%eax)
506ba6:	8b 14 24             	mov    (%esp),%edx
506ba9:	89 50 18             	mov    %edx,0x18(%eax)
506bac:	8b c5                	mov    %ebp,%eax
506bae:	ba 01 00 00 00       	mov    $0x1,%edx
506bb3:	8b 08                	mov    (%eax),%ecx
506bb5:	ff 51 04             	call   *0x4(%ecx)
506bb8:	89 1f                	mov    %ebx,(%edi)
506bba:	89 77 04             	mov    %esi,0x4(%edi)
506bbd:	83 3c 24 00          	cmpl   $0x0,(%esp)
506bc1:	7e 0b                	jle    0x506bce
506bc3:	8b 14 24             	mov    (%esp),%edx
506bc6:	8b c5                	mov    %ebp,%eax
506bc8:	8b 48 14             	mov    0x14(%eax),%ecx
506bcb:	ff 51 10             	call   *0x10(%ecx)
506bce:	b8 01 00 00 00       	mov    $0x1,%eax
506bd3:	83 c4 28             	add    $0x28,%esp
506bd6:	5d                   	pop    %ebp
506bd7:	5f                   	pop    %edi
506bd8:	5e                   	pop    %esi
506bd9:	5b                   	pop    %ebx
506bda:	c3                   	ret
506bdb:	90                   	nop
506bdc:	53                   	push   %ebx
506bdd:	56                   	push   %esi
506bde:	57                   	push   %edi
506bdf:	55                   	push   %ebp
506be0:	8b d8                	mov    %eax,%ebx
506be2:	83 c4 f4             	add    $0xfffffff4,%esp
506be5:	8b 43 14             	mov    0x14(%ebx),%eax
506be8:	89 44 24 08          	mov    %eax,0x8(%esp)
506bec:	8b 44 24 08          	mov    0x8(%esp),%eax
506bf0:	8b 54 24 08          	mov    0x8(%esp),%edx
506bf4:	8b 68 04             	mov    0x4(%eax),%ebp
506bf7:	8b 3a                	mov    (%edx),%edi
506bf9:	85 ed                	test   %ebp,%ebp
506bfb:	75 21                	jne    0x506c1e
506bfd:	8b 74 24 08          	mov    0x8(%esp),%esi
506c01:	8b c3                	mov    %ebx,%eax
506c03:	ff 56 0c             	call   *0xc(%esi)
506c06:	85 c0                	test   %eax,%eax
506c08:	75 07                	jne    0x506c11
506c0a:	33 c0                	xor    %eax,%eax
506c0c:	e9 54 01 00 00       	jmp    0x506d65
506c11:	8b 54 24 08          	mov    0x8(%esp),%edx
506c15:	8b 44 24 08          	mov    0x8(%esp),%eax
506c19:	8b 68 04             	mov    0x4(%eax),%ebp
506c1c:	8b 3a                	mov    (%edx),%edi
506c1e:	33 c0                	xor    %eax,%eax
506c20:	4d                   	dec    %ebp
506c21:	8a 07                	mov    (%edi),%al
506c23:	47                   	inc    %edi
506c24:	c1 e0 08             	shl    $0x8,%eax
506c27:	85 ed                	test   %ebp,%ebp
506c29:	89 04 24             	mov    %eax,(%esp)
506c2c:	75 21                	jne    0x506c4f
506c2e:	8b 74 24 08          	mov    0x8(%esp),%esi
506c32:	8b c3                	mov    %ebx,%eax
506c34:	ff 56 0c             	call   *0xc(%esi)
506c37:	85 c0                	test   %eax,%eax
506c39:	75 07                	jne    0x506c42
506c3b:	33 c0                	xor    %eax,%eax
506c3d:	e9 23 01 00 00       	jmp    0x506d65
506c42:	8b 54 24 08          	mov    0x8(%esp),%edx
506c46:	8b 44 24 08          	mov    0x8(%esp),%eax
506c4a:	8b 68 04             	mov    0x4(%eax),%ebp
506c4d:	8b 3a                	mov    (%edx),%edi
506c4f:	4d                   	dec    %ebp
506c50:	33 c0                	xor    %eax,%eax
506c52:	8a 07                	mov    (%edi),%al
506c54:	01 04 24             	add    %eax,(%esp)
506c57:	47                   	inc    %edi
506c58:	83 2c 24 02          	subl   $0x2,(%esp)
506c5c:	83 3c 24 00          	cmpl   $0x0,(%esp)
506c60:	0f 8e ed 00 00 00    	jle    0x506d53
506c66:	85 ed                	test   %ebp,%ebp
506c68:	75 21                	jne    0x506c8b
506c6a:	8b 74 24 08          	mov    0x8(%esp),%esi
506c6e:	8b c3                	mov    %ebx,%eax
506c70:	ff 56 0c             	call   *0xc(%esi)
506c73:	85 c0                	test   %eax,%eax
506c75:	75 07                	jne    0x506c7e
506c77:	33 c0                	xor    %eax,%eax
506c79:	e9 e7 00 00 00       	jmp    0x506d65
506c7e:	8b 54 24 08          	mov    0x8(%esp),%edx
506c82:	8b 44 24 08          	mov    0x8(%esp),%eax
506c86:	8b 68 04             	mov    0x4(%eax),%ebp
506c89:	8b 3a                	mov    (%edx),%edi
506c8b:	0f b6 37             	movzbl (%edi),%esi
506c8e:	47                   	inc    %edi
506c8f:	4d                   	dec    %ebp
506c90:	85 ed                	test   %ebp,%ebp
506c92:	75 21                	jne    0x506cb5
506c94:	8b 7c 24 08          	mov    0x8(%esp),%edi
506c98:	8b c3                	mov    %ebx,%eax
506c9a:	ff 57 0c             	call   *0xc(%edi)
506c9d:	85 c0                	test   %eax,%eax
506c9f:	75 07                	jne    0x506ca8
506ca1:	33 c0                	xor    %eax,%eax
506ca3:	e9 bd 00 00 00       	jmp    0x506d65
506ca8:	8b 54 24 08          	mov    0x8(%esp),%edx
506cac:	8b 44 24 08          	mov    0x8(%esp),%eax
506cb0:	8b 68 04             	mov    0x4(%eax),%ebp
506cb3:	8b 3a                	mov    (%edx),%edi
506cb5:	33 c0                	xor    %eax,%eax
506cb7:	4d                   	dec    %ebp
506cb8:	8a 07                	mov    (%edi),%al
506cba:	47                   	inc    %edi
506cbb:	89 44 24 04          	mov    %eax,0x4(%esp)
506cbf:	83 2c 24 02          	subl   $0x2,(%esp)
506cc3:	8b 03                	mov    (%ebx),%eax
506cc5:	c7 40 14 4e 00 00 00 	movl   $0x4e,0x14(%eax)
506ccc:	89 70 18             	mov    %esi,0x18(%eax)
506ccf:	8b 54 24 04          	mov    0x4(%esp),%edx
506cd3:	89 50 1c             	mov    %edx,0x1c(%eax)
506cd6:	8b c3                	mov    %ebx,%eax
506cd8:	ba 01 00 00 00       	mov    $0x1,%edx
506cdd:	8b 08                	mov    (%eax),%ecx
506cdf:	ff 51 04             	call   *0x4(%ecx)
506ce2:	85 f6                	test   %esi,%esi
506ce4:	7c 05                	jl     0x506ceb
506ce6:	83 fe 20             	cmp    $0x20,%esi
506ce9:	7c 12                	jl     0x506cfd
506ceb:	8b 03                	mov    (%ebx),%eax
506ced:	c7 40 14 1a 00 00 00 	movl   $0x1a,0x14(%eax)
506cf4:	89 70 18             	mov    %esi,0x18(%eax)
506cf7:	8b c3                	mov    %ebx,%eax
506cf9:	8b 10                	mov    (%eax),%edx
506cfb:	ff 12                	call   *(%edx)
506cfd:	83 fe 10             	cmp    $0x10,%esi
506d00:	7c 0d                	jl     0x506d0f
506d02:	8a 4c 24 04          	mov    0x4(%esp),%cl
506d06:	88 8c 33 f0 00 00 00 	mov    %cl,0xf0(%ebx,%esi,1)
506d0d:	eb 3a                	jmp    0x506d49
506d0f:	8a 44 24 04          	mov    0x4(%esp),%al
506d13:	24 0f                	and    $0xf,%al
506d15:	88 84 33 e0 00 00 00 	mov    %al,0xe0(%ebx,%esi,1)
506d1c:	8b 44 24 04          	mov    0x4(%esp),%eax
506d20:	c1 f8 04             	sar    $0x4,%eax
506d23:	88 84 33 f0 00 00 00 	mov    %al,0xf0(%ebx,%esi,1)
506d2a:	3a 84 33 e0 00 00 00 	cmp    0xe0(%ebx,%esi,1),%al
506d31:	73 16                	jae    0x506d49
506d33:	8b 03                	mov    (%ebx),%eax
506d35:	c7 40 14 1b 00 00 00 	movl   $0x1b,0x14(%eax)
506d3c:	8b 54 24 04          	mov    0x4(%esp),%edx
506d40:	89 50 18             	mov    %edx,0x18(%eax)
506d43:	8b c3                	mov    %ebx,%eax
506d45:	8b 10                	mov    (%eax),%edx
506d47:	ff 12                	call   *(%edx)
506d49:	83 3c 24 00          	cmpl   $0x0,(%esp)
506d4d:	0f 8f 13 ff ff ff    	jg     0x506c66
506d53:	8b 4c 24 08          	mov    0x8(%esp),%ecx
506d57:	89 39                	mov    %edi,(%ecx)
506d59:	8b 44 24 08          	mov    0x8(%esp),%eax
506d5d:	89 68 04             	mov    %ebp,0x4(%eax)
506d60:	b8 01 00 00 00       	mov    $0x1,%eax
506d65:	83 c4 0c             	add    $0xc,%esp
506d68:	5d                   	pop    %ebp
506d69:	5f                   	pop    %edi
506d6a:	5e                   	pop    %esi
506d6b:	5b                   	pop    %ebx
506d6c:	c3                   	ret
506d6d:	90                   	nop
506d6e:	90                   	nop
506d6f:	90                   	nop
506d70:	53                   	push   %ebx
506d71:	56                   	push   %esi
506d72:	57                   	push   %edi
506d73:	55                   	push   %ebp
506d74:	8b f8                	mov    %eax,%edi
506d76:	81 c4 d4 fe ff ff    	add    $0xfffffed4,%esp
506d7c:	8b 47 14             	mov    0x14(%edi),%eax
506d7f:	89 44 24 0c          	mov    %eax,0xc(%esp)
506d83:	8b 44 24 0c          	mov    0xc(%esp),%eax
506d87:	8b 54 24 0c          	mov    0xc(%esp),%edx
506d8b:	8b 70 04             	mov    0x4(%eax),%esi
506d8e:	8b 1a                	mov    (%edx),%ebx
506d90:	85 f6                	test   %esi,%esi
506d92:	75 21                	jne    0x506db5
506d94:	8b 5c 24 0c          	mov    0xc(%esp),%ebx
506d98:	8b c7                	mov    %edi,%eax
506d9a:	ff 53 0c             	call   *0xc(%ebx)
506d9d:	85 c0                	test   %eax,%eax
506d9f:	75 07                	jne    0x506da8
506da1:	33 c0                	xor    %eax,%eax
506da3:	e9 da 02 00 00       	jmp    0x507082
506da8:	8b 54 24 0c          	mov    0xc(%esp),%edx
506dac:	8b 44 24 0c          	mov    0xc(%esp),%eax
506db0:	8b 70 04             	mov    0x4(%eax),%esi
506db3:	8b 1a                	mov    (%edx),%ebx
506db5:	33 c0                	xor    %eax,%eax
506db7:	4e                   	dec    %esi
506db8:	8a 03                	mov    (%ebx),%al
506dba:	43                   	inc    %ebx
506dbb:	c1 e0 08             	shl    $0x8,%eax
506dbe:	85 f6                	test   %esi,%esi
506dc0:	89 04 24             	mov    %eax,(%esp)
506dc3:	75 21                	jne    0x506de6
506dc5:	8b 5c 24 0c          	mov    0xc(%esp),%ebx
506dc9:	8b c7                	mov    %edi,%eax
506dcb:	ff 53 0c             	call   *0xc(%ebx)
506dce:	85 c0                	test   %eax,%eax
506dd0:	75 07                	jne    0x506dd9
506dd2:	33 c0                	xor    %eax,%eax
506dd4:	e9 a9 02 00 00       	jmp    0x507082
506dd9:	8b 54 24 0c          	mov    0xc(%esp),%edx
506ddd:	8b 44 24 0c          	mov    0xc(%esp),%eax
506de1:	8b 70 04             	mov    0x4(%eax),%esi
506de4:	8b 1a                	mov    (%edx),%ebx
506de6:	4e                   	dec    %esi
506de7:	33 c0                	xor    %eax,%eax
506de9:	8a 03                	mov    (%ebx),%al
506deb:	01 04 24             	add    %eax,(%esp)
506dee:	43                   	inc    %ebx
506def:	83 2c 24 02          	subl   $0x2,(%esp)
506df3:	83 3c 24 00          	cmpl   $0x0,(%esp)
506df7:	0f 8e 73 02 00 00    	jle    0x507070
506dfd:	85 f6                	test   %esi,%esi
506dff:	75 21                	jne    0x506e22
506e01:	8b 5c 24 0c          	mov    0xc(%esp),%ebx
506e05:	8b c7                	mov    %edi,%eax
506e07:	ff 53 0c             	call   *0xc(%ebx)
506e0a:	85 c0                	test   %eax,%eax
506e0c:	75 07                	jne    0x506e15
506e0e:	33 c0                	xor    %eax,%eax
506e10:	e9 6d 02 00 00       	jmp    0x507082
506e15:	8b 54 24 0c          	mov    0xc(%esp),%edx
506e19:	8b 44 24 0c          	mov    0xc(%esp),%eax
506e1d:	8b 70 04             	mov    0x4(%eax),%esi
506e20:	8b 1a                	mov    (%edx),%ebx
506e22:	33 c0                	xor    %eax,%eax
506e24:	4e                   	dec    %esi
506e25:	8a 03                	mov    (%ebx),%al
506e27:	43                   	inc    %ebx
506e28:	89 44 24 04          	mov    %eax,0x4(%esp)
506e2c:	8b 07                	mov    (%edi),%eax
506e2e:	c7 40 14 4f 00 00 00 	movl   $0x4f,0x14(%eax)
506e35:	8b 54 24 04          	mov    0x4(%esp),%edx
506e39:	89 50 18             	mov    %edx,0x18(%eax)
506e3c:	8b c7                	mov    %edi,%eax
506e3e:	ba 01 00 00 00       	mov    $0x1,%edx
506e43:	8b 08                	mov    (%eax),%ecx
506e45:	ff 51 04             	call   *0x4(%ecx)
506e48:	c6 44 24 18 00       	movb   $0x0,0x18(%esp)
506e4d:	33 c0                	xor    %eax,%eax
506e4f:	bd 01 00 00 00       	mov    $0x1,%ebp
506e54:	89 44 24 08          	mov    %eax,0x8(%esp)
506e58:	8d 44 24 19          	lea    0x19(%esp),%eax
506e5c:	89 44 24 10          	mov    %eax,0x10(%esp)
506e60:	85 f6                	test   %esi,%esi
506e62:	75 21                	jne    0x506e85
506e64:	8b 5c 24 0c          	mov    0xc(%esp),%ebx
506e68:	8b c7                	mov    %edi,%eax
506e6a:	ff 53 0c             	call   *0xc(%ebx)
506e6d:	85 c0                	test   %eax,%eax
506e6f:	75 07                	jne    0x506e78
506e71:	33 c0                	xor    %eax,%eax
506e73:	e9 0a 02 00 00       	jmp    0x507082
506e78:	8b 54 24 0c          	mov    0xc(%esp),%edx
506e7c:	8b 44 24 0c          	mov    0xc(%esp),%eax
506e80:	8b 70 04             	mov    0x4(%eax),%esi
506e83:	8b 1a                	mov    (%edx),%ebx
506e85:	8b 54 24 10          	mov    0x10(%esp),%edx
506e89:	8a 03                	mov    (%ebx),%al
506e8b:	33 c9                	xor    %ecx,%ecx
506e8d:	43                   	inc    %ebx
506e8e:	8a c8                	mov    %al,%cl
506e90:	88 02                	mov    %al,(%edx)
506e92:	01 4c 24 08          	add    %ecx,0x8(%esp)
506e96:	ff 44 24 10          	incl   0x10(%esp)
506e9a:	4e                   	dec    %esi
506e9b:	45                   	inc    %ebp
506e9c:	83 fd 10             	cmp    $0x10,%ebp
506e9f:	7e bf                	jle    0x506e60
506ea1:	83 2c 24 11          	subl   $0x11,(%esp)
506ea5:	8b 07                	mov    (%edi),%eax
506ea7:	83 c0 18             	add    $0x18,%eax
506eaa:	33 d2                	xor    %edx,%edx
506eac:	8a 54 24 19          	mov    0x19(%esp),%dl
506eb0:	89 10                	mov    %edx,(%eax)
506eb2:	33 c9                	xor    %ecx,%ecx
506eb4:	8a 4c 24 1a          	mov    0x1a(%esp),%cl
506eb8:	89 48 04             	mov    %ecx,0x4(%eax)
506ebb:	33 d2                	xor    %edx,%edx
506ebd:	8a 54 24 1b          	mov    0x1b(%esp),%dl
506ec1:	89 50 08             	mov    %edx,0x8(%eax)
506ec4:	33 c9                	xor    %ecx,%ecx
506ec6:	8a 4c 24 1c          	mov    0x1c(%esp),%cl
506eca:	89 48 0c             	mov    %ecx,0xc(%eax)
506ecd:	33 d2                	xor    %edx,%edx
506ecf:	8a 54 24 1d          	mov    0x1d(%esp),%dl
506ed3:	89 50 10             	mov    %edx,0x10(%eax)
506ed6:	33 c9                	xor    %ecx,%ecx
506ed8:	8a 4c 24 1e          	mov    0x1e(%esp),%cl
506edc:	89 48 14             	mov    %ecx,0x14(%eax)
506edf:	33 d2                	xor    %edx,%edx
506ee1:	8a 54 24 1f          	mov    0x1f(%esp),%dl
506ee5:	89 50 18             	mov    %edx,0x18(%eax)
506ee8:	33 c9                	xor    %ecx,%ecx
506eea:	8a 4c 24 20          	mov    0x20(%esp),%cl
506eee:	89 48 1c             	mov    %ecx,0x1c(%eax)
506ef1:	8b 07                	mov    (%edi),%eax
506ef3:	c7 40 14 55 00 00 00 	movl   $0x55,0x14(%eax)
506efa:	ba 02 00 00 00       	mov    $0x2,%edx
506eff:	8b c7                	mov    %edi,%eax
506f01:	8b 08                	mov    (%eax),%ecx
506f03:	ff 51 04             	call   *0x4(%ecx)
506f06:	8b 07                	mov    (%edi),%eax
506f08:	83 c0 18             	add    $0x18,%eax
506f0b:	33 d2                	xor    %edx,%edx
506f0d:	8a 54 24 21          	mov    0x21(%esp),%dl
506f11:	89 10                	mov    %edx,(%eax)
506f13:	33 c9                	xor    %ecx,%ecx
506f15:	8a 4c 24 22          	mov    0x22(%esp),%cl
506f19:	89 48 04             	mov    %ecx,0x4(%eax)
506f1c:	33 d2                	xor    %edx,%edx
506f1e:	8a 54 24 23          	mov    0x23(%esp),%dl
506f22:	89 50 08             	mov    %edx,0x8(%eax)
506f25:	33 c9                	xor    %ecx,%ecx
506f27:	8a 4c 24 24          	mov    0x24(%esp),%cl
506f2b:	89 48 0c             	mov    %ecx,0xc(%eax)
506f2e:	33 d2                	xor    %edx,%edx
506f30:	8a 54 24 25          	mov    0x25(%esp),%dl
506f34:	89 50 10             	mov    %edx,0x10(%eax)
506f37:	33 c9                	xor    %ecx,%ecx
506f39:	8a 4c 24 26          	mov    0x26(%esp),%cl
506f3d:	89 48 14             	mov    %ecx,0x14(%eax)
506f40:	33 d2                	xor    %edx,%edx
506f42:	8a 54 24 27          	mov    0x27(%esp),%dl
506f46:	89 50 18             	mov    %edx,0x18(%eax)
506f49:	33 c9                	xor    %ecx,%ecx