405ae1:	8b d8                	mov    %eax,%ebx
405ae3:	b8 08 00 00 00       	mov    $0x8,%eax
405ae8:	e8 4b cf ff ff       	call   0x402a38
405aed:	8b 15 3c 50 45 00    	mov    0x45503c,%edx
405af3:	89 10                	mov    %edx,(%eax)
405af5:	89 58 04             	mov    %ebx,0x4(%eax)
405af8:	a3 3c 50 45 00       	mov    %eax,0x45503c
405afd:	5b                   	pop    %ebx
405afe:	c3                   	ret
405aff:	90                   	nop
405b00:	53                   	push   %ebx
405b01:	56                   	push   %esi
405b02:	57                   	push   %edi
405b03:	83 c4 f8             	add    $0xfffffff8,%esp
405b06:	8b f0                	mov    %eax,%esi
405b08:	8d 7c 24 04          	lea    0x4(%esp),%edi
405b0c:	a1 3c 50 45 00       	mov    0x45503c,%eax
405b11:	89 04 24             	mov    %eax,(%esp)
405b14:	83 3c 24 00          	cmpl   $0x0,(%esp)
405b18:	74 25                	je     0x405b3f
405b1a:	8b 04 24             	mov    (%esp),%eax
405b1d:	8b 40 04             	mov    0x4(%eax),%eax
405b20:	3b c6                	cmp    %esi,%eax
405b22:	75 1b                	jne    0x405b3f
405b24:	a1 3c 50 45 00       	mov    0x45503c,%eax
405b29:	8b 00                	mov    (%eax),%eax
405b2b:	a3 3c 50 45 00       	mov    %eax,0x45503c
405b30:	ba 08 00 00 00       	mov    $0x8,%edx
405b35:	8b 04 24             	mov    (%esp),%eax
405b38:	e8 2b cf ff ff       	call   0x402a68
405b3d:	eb 40                	jmp    0x405b7f
405b3f:	8b 04 24             	mov    (%esp),%eax
405b42:	89 07                	mov    %eax,(%edi)
405b44:	83 3f 00             	cmpl   $0x0,(%edi)
405b47:	74 36                	je     0x405b7f
405b49:	8b 07                	mov    (%edi),%eax
405b4b:	8b 18                	mov    (%eax),%ebx
405b4d:	85 db                	test   %ebx,%ebx
405b4f:	74 23                	je     0x405b74
405b51:	8b 43 04             	mov    0x4(%ebx),%eax
405b54:	3b c6                	cmp    %esi,%eax
405b56:	75 1c                	jne    0x405b74
405b58:	89 1c 24             	mov    %ebx,(%esp)
405b5b:	8b 07                	mov    (%edi),%eax
405b5d:	8b 00                	mov    (%eax),%eax
405b5f:	8b 00                	mov    (%eax),%eax
405b61:	8b 17                	mov    (%edi),%edx
405b63:	89 02                	mov    %eax,(%edx)
405b65:	ba 08 00 00 00       	mov    $0x8,%edx
405b6a:	8b 04 24             	mov    (%esp),%eax
405b6d:	e8 f6 ce ff ff       	call   0x402a68
405b72:	eb 0b                	jmp    0x405b7f
405b74:	8b 07                	mov    (%edi),%eax
405b76:	8b 00                	mov    (%eax),%eax
405b78:	89 07                	mov    %eax,(%edi)
405b7a:	83 3f 00             	cmpl   $0x0,(%edi)
405b7d:	75 ca                	jne    0x405b49
405b7f:	59                   	pop    %ecx
405b80:	5a                   	pop    %edx
405b81:	5f                   	pop    %edi
405b82:	5e                   	pop    %esi
405b83:	5b                   	pop    %ebx
405b84:	c3                   	ret
405b85:	8d 40 00             	lea    0x0(%eax),%eax
405b88:	55                   	push   %ebp
405b89:	8b ec                	mov    %esp,%ebp
405b8b:	83 c4 f8             	add    $0xfffffff8,%esp
405b8e:	53                   	push   %ebx
405b8f:	56                   	push   %esi
405b90:	57                   	push   %edi
405b91:	89 45 fc             	mov    %eax,-0x4(%ebp)
405b94:	a1 3c 50 45 00       	mov    0x45503c,%eax
405b99:	89 45 f8             	mov    %eax,-0x8(%ebp)
405b9c:	83 7d f8 00          	cmpl   $0x0,-0x8(%ebp)
405ba0:	74 39                	je     0x405bdb
405ba2:	33 c0                	xor    %eax,%eax
405ba4:	55                   	push   %ebp
405ba5:	68 c3 5b 40 00       	push   $0x405bc3
405baa:	64 ff 30             	push   %fs:(%eax)
405bad:	64 89 20             	mov    %esp,%fs:(%eax)
405bb0:	8b 5d f8             	mov    -0x8(%ebp),%ebx
405bb3:	8b 45 fc             	mov    -0x4(%ebp),%eax
405bb6:	ff 53 04             	call   *0x4(%ebx)
405bb9:	33 c0                	xor    %eax,%eax
405bbb:	5a                   	pop    %edx
405bbc:	59                   	pop    %ecx
405bbd:	59                   	pop    %ecx
405bbe:	64 89 10             	mov    %edx,%fs:(%eax)
405bc1:	eb 0a                	jmp    0x405bcd
405bc3:	e9 d0 e0 ff ff       	jmp    0x403c98
405bc8:	e8 33 e4 ff ff       	call   0x404000
405bcd:	8b 45 f8             	mov    -0x8(%ebp),%eax
405bd0:	8b 00                	mov    (%eax),%eax
405bd2:	89 45 f8             	mov    %eax,-0x8(%ebp)
405bd5:	83 7d f8 00          	cmpl   $0x0,-0x8(%ebp)
405bd9:	75 c7                	jne    0x405ba2
405bdb:	5f                   	pop    %edi
405bdc:	5e                   	pop    %esi
405bdd:	5b                   	pop    %ebx
405bde:	59                   	pop    %ecx
405bdf:	59                   	pop    %ecx
405be0:	5d                   	pop    %ebp
405be1:	c3                   	ret
405be2:	8b c0                	mov    %eax,%eax
405be4:	8b 15 38 50 45 00    	mov    0x455038,%edx
405bea:	89 10                	mov    %edx,(%eax)
405bec:	a3 38 50 45 00       	mov    %eax,0x455038
405bf1:	c3                   	ret
405bf2:	8b c0                	mov    %eax,%eax
405bf4:	55                   	push   %ebp
405bf5:	8b ec                	mov    %esp,%ebp
405bf7:	83 c4 f8             	add    $0xfffffff8,%esp
405bfa:	89 45 fc             	mov    %eax,-0x4(%ebp)
405bfd:	33 c0                	xor    %eax,%eax
405bff:	55                   	push   %ebp
405c00:	68 6d 5c 40 00       	push   $0x405c6d
405c05:	64 ff 30             	push   %fs:(%eax)
405c08:	64 89 20             	mov    %esp,%fs:(%eax)
405c0b:	8b 45 fc             	mov    -0x4(%ebp),%eax
405c0e:	8b 40 04             	mov    0x4(%eax),%eax
405c11:	e8 72 ff ff ff       	call   0x405b88
405c16:	33 c0                	xor    %eax,%eax
405c18:	5a                   	pop    %edx
405c19:	59                   	pop    %ecx
405c1a:	59                   	pop    %ecx
405c1b:	64 89 10             	mov    %edx,%fs:(%eax)
405c1e:	68 74 5c 40 00       	push   $0x405c74
405c23:	8b 45 fc             	mov    -0x4(%ebp),%eax
405c26:	3b 05 38 50 45 00    	cmp    0x455038,%eax
405c2c:	75 0c                	jne    0x405c3a
405c2e:	8b 45 fc             	mov    -0x4(%ebp),%eax
405c31:	8b 00                	mov    (%eax),%eax
405c33:	a3 38 50 45 00       	mov    %eax,0x455038
405c38:	eb 32                	jmp    0x405c6c
405c3a:	a1 38 50 45 00       	mov    0x455038,%eax
405c3f:	89 45 f8             	mov    %eax,-0x8(%ebp)
405c42:	83 7d f8 00          	cmpl   $0x0,-0x8(%ebp)
405c46:	74 24                	je     0x405c6c
405c48:	8b 45 f8             	mov    -0x8(%ebp),%eax
405c4b:	8b 00                	mov    (%eax),%eax
405c4d:	3b 45 fc             	cmp    -0x4(%ebp),%eax
405c50:	75 0c                	jne    0x405c5e
405c52:	8b 45 fc             	mov    -0x4(%ebp),%eax
405c55:	8b 00                	mov    (%eax),%eax
405c57:	8b 55 f8             	mov    -0x8(%ebp),%edx
405c5a:	89 02                	mov    %eax,(%edx)
405c5c:	eb 0e                	jmp    0x405c6c
405c5e:	8b 45 f8             	mov    -0x8(%ebp),%eax
405c61:	8b 00                	mov    (%eax),%eax
405c63:	89 45 f8             	mov    %eax,-0x8(%ebp)
405c66:	83 7d f8 00          	cmpl   $0x0,-0x8(%ebp)
405c6a:	75 dc                	jne    0x405c48
405c6c:	c3                   	ret
405c6d:	e9 da e2 ff ff       	jmp    0x403f4c
405c72:	eb af                	jmp    0x405c23
405c74:	59                   	pop    %ecx
405c75:	59                   	pop    %ecx
405c76:	5d                   	pop    %ebp
405c77:	c3                   	ret
405c78:	8b 10                	mov    (%eax),%edx
405c7a:	85 d2                	test   %edx,%edx
405c7c:	74 0e                	je     0x405c8c
405c7e:	c7 00 00 00 00 00    	movl   $0x0,(%eax)
405c84:	50                   	push   %eax
405c85:	52                   	push   %edx
405c86:	8b 02                	mov    (%edx),%eax
405c88:	ff 50 08             	call   *0x8(%eax)
405c8b:	58                   	pop    %eax
405c8c:	c3                   	ret
405c8d:	8d 40 00             	lea    0x0(%eax),%eax
405c90:	85 d2                	test   %edx,%edx
405c92:	74 19                	je     0x405cad
405c94:	52                   	push   %edx
405c95:	50                   	push   %eax
405c96:	8b 02                	mov    (%edx),%eax
405c98:	52                   	push   %edx
405c99:	ff 50 04             	call   *0x4(%eax)
405c9c:	58                   	pop    %eax
405c9d:	8b 08                	mov    (%eax),%ecx
405c9f:	8f 00                	pop    (%eax)
405ca1:	85 c9                	test   %ecx,%ecx
405ca3:	75 01                	jne    0x405ca6
405ca5:	c3                   	ret
405ca6:	8b 01                	mov    (%ecx),%eax
405ca8:	51                   	push   %ecx
405ca9:	ff 50 08             	call   *0x8(%eax)
405cac:	c3                   	ret
405cad:	8b 08                	mov    (%eax),%ecx
405caf:	85 c9                	test   %ecx,%ecx
405cb1:	89 10                	mov    %edx,(%eax)
405cb3:	74 06                	je     0x405cbb
405cb5:	8b 01                	mov    (%ecx),%eax
405cb7:	51                   	push   %ecx
405cb8:	ff 50 08             	call   *0x8(%eax)
405cbb:	c3                   	ret
405cbc:	85 d2                	test   %edx,%edx
405cbe:	0f 84 b4 ff ff ff    	je     0x405c78
405cc4:	57                   	push   %edi
405cc5:	89 c7                	mov    %eax,%edi
405cc7:	6a 00                	push   $0x0
405cc9:	54                   	push   %esp
405cca:	51                   	push   %ecx
405ccb:	52                   	push   %edx
405ccc:	8b 02                	mov    (%edx),%eax
405cce:	ff 10                	call   *(%eax)
405cd0:	85 c0                	test   %eax,%eax
405cd2:	74 07                	je     0x405cdb
405cd4:	b0 17                	mov    $0x17,%al
405cd6:	e9 dd ce ff ff       	jmp    0x402bb8
405cdb:	8b 07                	mov    (%edi),%eax
405cdd:	85 c0                	test   %eax,%eax
405cdf:	74 06                	je     0x405ce7
405ce1:	50                   	push   %eax
405ce2:	8b 00                	mov    (%eax),%eax
405ce4:	ff 50 08             	call   *0x8(%eax)
405ce7:	58                   	pop    %eax
405ce8:	89 07                	mov    %eax,(%edi)
405cea:	5f                   	pop    %edi
405ceb:	c3                   	ret
405cec:	85 c0                	test   %eax,%eax
405cee:	74 06                	je     0x405cf6
405cf0:	50                   	push   %eax
405cf1:	8b 00                	mov    (%eax),%eax
405cf3:	ff 50 04             	call   *0x4(%eax)
405cf6:	c3                   	ret
405cf7:	90                   	nop
405cf8:	83 c0 04             	add    $0x4,%eax
405cfb:	50                   	push   %eax
405cfc:	e8 f3 b5 ff ff       	call   0x4012f4
405d01:	c3                   	ret
405d02:	8b c0                	mov    %eax,%eax
405d04:	83 78 04 00          	cmpl   $0x0,0x4(%eax)
405d08:	74 07                	je     0x405d11
405d0a:	b0 02                	mov    $0x2,%al
405d0c:	e8 a7 ce ff ff       	call   0x402bb8
405d11:	c3                   	ret
405d12:	8b c0                	mov    %eax,%eax
405d14:	e8 7b da ff ff       	call   0x403794
405d19:	c7 40 04 01 00 00 00 	movl   $0x1,0x4(%eax)
405d20:	c3                   	ret
405d21:	8d 40 00             	lea    0x0(%eax),%eax
405d24:	55                   	push   %ebp
405d25:	8b ec                	mov    %esp,%ebp
405d27:	53                   	push   %ebx
405d28:	8b 5d 08             	mov    0x8(%ebp),%ebx
405d2b:	8b 4d 10             	mov    0x10(%ebp),%ecx
405d2e:	8b 55 0c             	mov    0xc(%ebp),%edx
405d31:	8b c3                	mov    %ebx,%eax
405d33:	e8 78 db ff ff       	call   0x4038b0
405d38:	84 c0                	test   %al,%al
405d3a:	74 04                	je     0x405d40
405d3c:	33 c0                	xor    %eax,%eax
405d3e:	eb 05                	jmp    0x405d45
405d40:	b8 02 40 00 80       	mov    $0x80004002,%eax
405d45:	5b                   	pop    %ebx
405d46:	5d                   	pop    %ebp
405d47:	c2 0c 00             	ret    $0xc
405d4a:	8b c0                	mov    %eax,%eax
405d4c:	55                   	push   %ebp
405d4d:	8b ec                	mov    %esp,%ebp
405d4f:	8b 45 08             	mov    0x8(%ebp),%eax
405d52:	83 c0 04             	add    $0x4,%eax
405d55:	50                   	push   %eax
405d56:	e8 91 b5 ff ff       	call   0x4012ec
405d5b:	5d                   	pop    %ebp
405d5c:	c2 04 00             	ret    $0x4
405d5f:	90                   	nop
405d60:	55                   	push   %ebp
405d61:	8b ec                	mov    %esp,%ebp
405d63:	53                   	push   %ebx
405d64:	56                   	push   %esi
405d65:	8b 5d 08             	mov    0x8(%ebp),%ebx
405d68:	8d 43 04             	lea    0x4(%ebx),%eax
405d6b:	50                   	push   %eax
405d6c:	e8 83 b5 ff ff       	call   0x4012f4
405d71:	8b f0                	mov    %eax,%esi
405d73:	85 f6                	test   %esi,%esi
405d75:	75 09                	jne    0x405d80
405d77:	b2 01                	mov    $0x1,%dl
405d79:	8b c3                	mov    %ebx,%eax
405d7b:	8b 08                	mov    (%eax),%ecx
405d7d:	ff 51 fc             	call   *-0x4(%ecx)
405d80:	8b c6                	mov    %esi,%eax
405d82:	5e                   	pop    %esi
405d83:	5b                   	pop    %ebx
405d84:	5d                   	pop    %ebp
405d85:	c2 04 00             	ret    $0x4
405d88:	55                   	push   %ebp
405d89:	8b ec                	mov    %esp,%ebp
405d8b:	83 c4 f8             	add    $0xfffffff8,%esp
405d8e:	53                   	push   %ebx
405d8f:	56                   	push   %esi
405d90:	89 4d f8             	mov    %ecx,-0x8(%ebp)
405d93:	89 55 fc             	mov    %edx,-0x4(%ebp)
405d96:	33 d2                	xor    %edx,%edx
405d98:	83 7d f8 00          	cmpl   $0x0,-0x8(%ebp)
405d9c:	0f 84 b8 00 00 00    	je     0x405e5a
405da2:	33 f6                	xor    %esi,%esi
405da4:	33 c9                	xor    %ecx,%ecx
405da6:	85 c0                	test   %eax,%eax
405da8:	0f 84 87 00 00 00    	je     0x405e35
405dae:	eb 6c                	jmp    0x405e1c
405db0:	8b 55 f8             	mov    -0x8(%ebp),%edx
405db3:	0f b7 14 4a          	movzwl (%edx,%ecx,2),%edx
405db7:	41                   	inc    %ecx
405db8:	83 fa 7f             	cmp    $0x7f,%edx
405dbb:	77 06                	ja     0x405dc3
405dbd:	88 14 30             	mov    %dl,(%eax,%esi,1)
405dc0:	46                   	inc    %esi
405dc1:	eb 59                	jmp    0x405e1c
405dc3:	81 fa ff 07 00 00    	cmp    $0x7ff,%edx
405dc9:	76 31                	jbe    0x405dfc
405dcb:	8d 5e 03             	lea    0x3(%esi),%ebx
405dce:	3b 5d fc             	cmp    -0x4(%ebp),%ebx
405dd1:	77 53                	ja     0x405e26
405dd3:	8b da                	mov    %edx,%ebx
405dd5:	c1 eb 0c             	shr    $0xc,%ebx
405dd8:	80 cb e0             	or     $0xe0,%bl
405ddb:	88 1c 30             	mov    %bl,(%eax,%esi,1)
405dde:	8b da                	mov    %edx,%ebx
405de0:	c1 eb 06             	shr    $0x6,%ebx
405de3:	80 e3 3f             	and    $0x3f,%bl
405de6:	80 cb 80             	or     $0x80,%bl
405de9:	88 5c 30 01          	mov    %bl,0x1(%eax,%esi,1)
405ded:	80 e2 3f             	and    $0x3f,%dl
405df0:	80 ca 80             	or     $0x80,%dl
405df3:	88 54 30 02          	mov    %dl,0x2(%eax,%esi,1)
405df7:	83 c6 03             	add    $0x3,%esi
405dfa:	eb 20                	jmp    0x405e1c
405dfc:	8d 5e 02             	lea    0x2(%esi),%ebx
405dff:	3b 5d fc             	cmp    -0x4(%ebp),%ebx
405e02:	77 22                	ja     0x405e26
405e04:	8b da                	mov    %edx,%ebx
405e06:	c1 eb 06             	shr    $0x6,%ebx
405e09:	80 cb c0             	or     $0xc0,%bl
405e0c:	88 1c 30             	mov    %bl,(%eax,%esi,1)
405e0f:	80 e2 3f             	and    $0x3f,%dl
405e12:	80 ca 80             	or     $0x80,%dl
405e15:	88 54 30 01          	mov    %dl,0x1(%eax,%esi,1)
405e19:	83 c6 02             	add    $0x2,%esi
405e1c:	3b 4d 08             	cmp    0x8(%ebp),%ecx
405e1f:	73 05                	jae    0x405e26
405e21:	3b 75 fc             	cmp    -0x4(%ebp),%esi
405e24:	72 8a                	jb     0x405db0
405e26:	3b 75 fc             	cmp    -0x4(%ebp),%esi
405e29:	72 04                	jb     0x405e2f
405e2b:	8b 75 fc             	mov    -0x4(%ebp),%esi
405e2e:	4e                   	dec    %esi
405e2f:	c6 04 30 00          	movb   $0x0,(%eax,%esi,1)
405e33:	eb 22                	jmp    0x405e57