409a8f:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
409a96:	59                   	pop    %ecx
409a97:	5f                   	pop    %edi
409a98:	5e                   	pop    %esi
409a99:	5b                   	pop    %ebx
409a9a:	c9                   	leave
409a9b:	c2 0c 00             	ret    $0xc
409a9e:	8b 45 10             	mov    0x10(%ebp),%eax
409aa1:	ff 30                	push   (%eax)
409aa3:	e8 2c 45 00 00       	call   0x40dfd4
409aa8:	59                   	pop    %ecx
409aa9:	c3                   	ret
409aaa:	6a 14                	push   $0x14
409aac:	68 60 ff 41 00       	push   $0x41ff60
409ab1:	e8 ea a3 ff ff       	call   0x403ea0
409ab6:	8b f9                	mov    %ecx,%edi
409ab8:	80 3d 7c 20 42 00 00 	cmpb   $0x0,0x42207c
409abf:	0f 85 99 00 00 00    	jne    0x409b5e
409ac5:	33 c0                	xor    %eax,%eax
409ac7:	40                   	inc    %eax
409ac8:	b9 74 20 42 00       	mov    $0x422074,%ecx
409acd:	87 01                	xchg   %eax,(%ecx)
409acf:	33 db                	xor    %ebx,%ebx
409ad1:	89 5d fc             	mov    %ebx,-0x4(%ebp)
409ad4:	8b 07                	mov    (%edi),%eax
409ad6:	8b 00                	mov    (%eax),%eax
409ad8:	85 c0                	test   %eax,%eax
409ada:	75 2f                	jne    0x409b0b
409adc:	a1 c0 10 42 00       	mov    0x4210c0,%eax
409ae1:	89 45 e0             	mov    %eax,-0x20(%ebp)
409ae4:	8b 0d 78 20 42 00    	mov    0x422078,%ecx
409aea:	3b c8                	cmp    %eax,%ecx
409aec:	74 16                	je     0x409b04
409aee:	51                   	push   %ecx
409aef:	e8 27 f6 ff ff       	call   0x40911b
409af4:	59                   	pop    %ecx
409af5:	8b f0                	mov    %eax,%esi
409af7:	53                   	push   %ebx
409af8:	53                   	push   %ebx
409af9:	53                   	push   %ebx
409afa:	8b ce                	mov    %esi,%ecx
409afc:	ff 15 54 91 41 00    	call   *0x419154
409b02:	ff d6                	call   *%esi
409b04:	68 a4 20 42 00       	push   $0x4220a4
409b09:	eb 0a                	jmp    0x409b15
409b0b:	83 f8 01             	cmp    $0x1,%eax
409b0e:	75 0b                	jne    0x409b1b
409b10:	68 b0 20 42 00       	push   $0x4220b0
409b15:	e8 9e 07 00 00       	call   0x40a2b8
409b1a:	59                   	pop    %ecx
409b1b:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
409b22:	8b 07                	mov    (%edi),%eax
409b24:	39 18                	cmp    %ebx,(%eax)
409b26:	75 11                	jne    0x409b39
409b28:	68 98 91 41 00       	push   $0x419198
409b2d:	68 88 91 41 00       	push   $0x419188
409b32:	e8 cd fe ff ff       	call   0x409a04
409b37:	59                   	pop    %ecx
409b38:	59                   	pop    %ecx
409b39:	68 a0 91 41 00       	push   $0x4191a0
409b3e:	68 9c 91 41 00       	push   $0x41919c
409b43:	e8 bc fe ff ff       	call   0x409a04
409b48:	59                   	pop    %ecx
409b49:	59                   	pop    %ecx
409b4a:	8b 47 04             	mov    0x4(%edi),%eax
409b4d:	39 18                	cmp    %ebx,(%eax)
409b4f:	75 0d                	jne    0x409b5e
409b51:	c6 05 7c 20 42 00 01 	movb   $0x1,0x42207c
409b58:	8b 47 08             	mov    0x8(%edi),%eax
409b5b:	c6 00 01             	movb   $0x1,(%eax)
409b5e:	8b 4d f0             	mov    -0x10(%ebp),%ecx
409b61:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
409b68:	59                   	pop    %ecx
409b69:	5f                   	pop    %edi
409b6a:	5e                   	pop    %esi
409b6b:	5b                   	pop    %ebx
409b6c:	c9                   	leave
409b6d:	c3                   	ret
409b6e:	8b 45 ec             	mov    -0x14(%ebp),%eax
409b71:	8b 00                	mov    (%eax),%eax
409b73:	8b 00                	mov    (%eax),%eax
409b75:	89 45 dc             	mov    %eax,-0x24(%ebp)
409b78:	33 c9                	xor    %ecx,%ecx
409b7a:	3d 63 73 6d e0       	cmp    $0xe06d7363,%eax
409b7f:	0f 94 c1             	sete   %cl
409b82:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
409b85:	8b 45 e4             	mov    -0x1c(%ebp),%eax
409b88:	c3                   	ret
409b89:	8b 65 e8             	mov    -0x18(%ebp),%esp
409b8c:	e8 5d 09 00 00       	call   0x40a4ee
409b91:	cc                   	int3
409b92:	8b ff                	mov    %edi,%edi
409b94:	55                   	push   %ebp
409b95:	8b ec                	mov    %esp,%ebp
409b97:	6a ff                	push   $0xffffffff
409b99:	68 41 80 41 00       	push   $0x418041
409b9e:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
409ba4:	50                   	push   %eax
409ba5:	83 ec 18             	sub    $0x18,%esp
409ba8:	a1 c0 10 42 00       	mov    0x4210c0,%eax
409bad:	33 c5                	xor    %ebp,%eax
409baf:	50                   	push   %eax
409bb0:	8d 45 f4             	lea    -0xc(%ebp),%eax
409bb3:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
409bb9:	83 7d 10 00          	cmpl   $0x0,0x10(%ebp)
409bbd:	75 12                	jne    0x409bd1
409bbf:	e8 d7 a1 ff ff       	call   0x403d9b
409bc4:	84 c0                	test   %al,%al
409bc6:	74 09                	je     0x409bd1
409bc8:	ff 75 08             	push   0x8(%ebp)
409bcb:	e8 a3 00 00 00       	call   0x409c73
409bd0:	59                   	pop    %ecx
409bd1:	8d 45 0c             	lea    0xc(%ebp),%eax
409bd4:	c6 45 f3 00          	movb   $0x0,-0xd(%ebp)
409bd8:	89 45 dc             	mov    %eax,-0x24(%ebp)
409bdb:	8d 45 10             	lea    0x10(%ebp),%eax
409bde:	89 45 e0             	mov    %eax,-0x20(%ebp)
409be1:	8d 45 f3             	lea    -0xd(%ebp),%eax
409be4:	89 45 e4             	mov    %eax,-0x1c(%ebp)
409be7:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
409beb:	8d 4d f2             	lea    -0xe(%ebp),%ecx
409bee:	6a 02                	push   $0x2
409bf0:	58                   	pop    %eax
409bf1:	89 45 ec             	mov    %eax,-0x14(%ebp)
409bf4:	89 45 e8             	mov    %eax,-0x18(%ebp)
409bf7:	8d 45 ec             	lea    -0x14(%ebp),%eax
409bfa:	50                   	push   %eax
409bfb:	8d 45 dc             	lea    -0x24(%ebp),%eax
409bfe:	50                   	push   %eax
409bff:	8d 45 e8             	lea    -0x18(%ebp),%eax
409c02:	50                   	push   %eax
409c03:	e8 55 fe ff ff       	call   0x409a5d
409c08:	83 7d 10 00          	cmpl   $0x0,0x10(%ebp)
409c0c:	74 0d                	je     0x409c1b
409c0e:	8b 4d f4             	mov    -0xc(%ebp),%ecx
409c11:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
409c18:	59                   	pop    %ecx
409c19:	c9                   	leave
409c1a:	c3                   	ret
409c1b:	ff 75 08             	push   0x8(%ebp)
409c1e:	e8 06 00 00 00       	call   0x409c29
409c23:	cc                   	int3
409c24:	cc                   	int3
409c25:	cc                   	int3
409c26:	cc                   	int3
409c27:	cc                   	int3
409c28:	cc                   	int3
409c29:	8b ff                	mov    %edi,%edi
409c2b:	55                   	push   %ebp
409c2c:	8b ec                	mov    %esp,%ebp
409c2e:	e8 27 00 00 00       	call   0x409c5a
409c33:	84 c0                	test   %al,%al
409c35:	74 10                	je     0x409c47
409c37:	ff 75 08             	push   0x8(%ebp)
409c3a:	ff 15 74 90 41 00    	call   *0x419074
409c40:	50                   	push   %eax
409c41:	ff 15 78 90 41 00    	call   *0x419078
409c47:	ff 75 08             	push   0x8(%ebp)
409c4a:	e8 24 00 00 00       	call   0x409c73
409c4f:	59                   	pop    %ecx
409c50:	ff 75 08             	push   0x8(%ebp)
409c53:	ff 15 c4 90 41 00    	call   *0x4190c4
409c59:	cc                   	int3
409c5a:	e8 ab 58 00 00       	call   0x40f50a
409c5f:	83 f8 01             	cmp    $0x1,%eax
409c62:	74 0c                	je     0x409c70
409c64:	e8 7c 58 00 00       	call   0x40f4e5
409c69:	f6 d8                	neg    %al
409c6b:	1a c0                	sbb    %al,%al
409c6d:	fe c0                	inc    %al
409c6f:	c3                   	ret
409c70:	32 c0                	xor    %al,%al
409c72:	c3                   	ret
409c73:	8b ff                	mov    %edi,%edi
409c75:	55                   	push   %ebp
409c76:	8b ec                	mov    %esp,%ebp
409c78:	6a ff                	push   $0xffffffff
409c7a:	68 5e 80 41 00       	push   $0x41805e
409c7f:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
409c85:	50                   	push   %eax
409c86:	51                   	push   %ecx
409c87:	56                   	push   %esi
409c88:	a1 c0 10 42 00       	mov    0x4210c0,%eax
409c8d:	33 c5                	xor    %ebp,%eax
409c8f:	50                   	push   %eax
409c90:	8d 45 f4             	lea    -0xc(%ebp),%eax
409c93:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
409c99:	83 65 f0 00          	andl   $0x0,-0x10(%ebp)
409c9d:	8d 45 f0             	lea    -0x10(%ebp),%eax
409ca0:	50                   	push   %eax
409ca1:	68 6c a2 41 00       	push   $0x41a26c
409ca6:	6a 00                	push   $0x0
409ca8:	ff 15 c8 90 41 00    	call   *0x4190c8
409cae:	85 c0                	test   %eax,%eax
409cb0:	74 21                	je     0x409cd3
409cb2:	68 84 a2 41 00       	push   $0x41a284
409cb7:	ff 75 f0             	push   -0x10(%ebp)
409cba:	ff 15 b4 90 41 00    	call   *0x4190b4
409cc0:	8b f0                	mov    %eax,%esi
409cc2:	85 f6                	test   %esi,%esi
409cc4:	74 0d                	je     0x409cd3
409cc6:	ff 75 08             	push   0x8(%ebp)
409cc9:	8b ce                	mov    %esi,%ecx
409ccb:	ff 15 54 91 41 00    	call   *0x419154
409cd1:	ff d6                	call   *%esi
409cd3:	83 7d f0 00          	cmpl   $0x0,-0x10(%ebp)
409cd7:	74 09                	je     0x409ce2
409cd9:	ff 75 f0             	push   -0x10(%ebp)
409cdc:	ff 15 b0 90 41 00    	call   *0x4190b0
409ce2:	8b 4d f4             	mov    -0xc(%ebp),%ecx
409ce5:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
409cec:	59                   	pop    %ecx
409ced:	5e                   	pop    %esi
409cee:	c9                   	leave
409cef:	c3                   	ret
409cf0:	cc                   	int3
409cf1:	cc                   	int3
409cf2:	cc                   	int3
409cf3:	cc                   	int3
409cf4:	cc                   	int3
409cf5:	8b ff                	mov    %edi,%edi
409cf7:	55                   	push   %ebp
409cf8:	8b ec                	mov    %esp,%ebp
409cfa:	8b 45 08             	mov    0x8(%ebp),%eax
409cfd:	a3 78 20 42 00       	mov    %eax,0x422078
409d02:	5d                   	pop    %ebp
409d03:	c3                   	ret
409d04:	6a 01                	push   $0x1
409d06:	6a 02                	push   $0x2
409d08:	6a 00                	push   $0x0
409d0a:	e8 83 fe ff ff       	call   0x409b92
409d0f:	83 c4 0c             	add    $0xc,%esp
409d12:	c3                   	ret
409d13:	6a 01                	push   $0x1
409d15:	6a 00                	push   $0x0
409d17:	6a 00                	push   $0x0
409d19:	e8 74 fe ff ff       	call   0x409b92
409d1e:	83 c4 0c             	add    $0xc,%esp
409d21:	c3                   	ret
409d22:	8b ff                	mov    %edi,%edi
409d24:	55                   	push   %ebp
409d25:	8b ec                	mov    %esp,%ebp
409d27:	6a 00                	push   $0x0
409d29:	6a 02                	push   $0x2
409d2b:	ff 75 08             	push   0x8(%ebp)
409d2e:	e8 5f fe ff ff       	call   0x409b92
409d33:	83 c4 0c             	add    $0xc,%esp
409d36:	5d                   	pop    %ebp
409d37:	c3                   	ret
409d38:	8b ff                	mov    %edi,%edi
409d3a:	55                   	push   %ebp
409d3b:	8b ec                	mov    %esp,%ebp
409d3d:	a1 78 20 42 00       	mov    0x422078,%eax
409d42:	3b 05 c0 10 42 00    	cmp    0x4210c0,%eax
409d48:	0f 85 a0 07 00 00    	jne    0x40a4ee
409d4e:	ff 75 08             	push   0x8(%ebp)
409d51:	e8 f3 f5 ff ff       	call   0x409349
409d56:	59                   	pop    %ecx
409d57:	a3 78 20 42 00       	mov    %eax,0x422078
409d5c:	5d                   	pop    %ebp
409d5d:	c3                   	ret
409d5e:	8b ff                	mov    %edi,%edi
409d60:	55                   	push   %ebp
409d61:	8b ec                	mov    %esp,%ebp
409d63:	6a 00                	push   $0x0
409d65:	6a 00                	push   $0x0
409d67:	ff 75 08             	push   0x8(%ebp)
409d6a:	e8 23 fe ff ff       	call   0x409b92
409d6f:	83 c4 0c             	add    $0xc,%esp
409d72:	5d                   	pop    %ebp
409d73:	c3                   	ret
409d74:	8b ff                	mov    %edi,%edi
409d76:	55                   	push   %ebp
409d77:	8b ec                	mov    %esp,%ebp
409d79:	8b 4d 08             	mov    0x8(%ebp),%ecx
409d7c:	85 c9                	test   %ecx,%ecx
409d7e:	75 15                	jne    0x409d95
409d80:	e8 aa 09 00 00       	call   0x40a72f
409d85:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
409d8b:	e8 39 d7 ff ff       	call   0x4074c9
409d90:	6a 16                	push   $0x16
409d92:	58                   	pop    %eax
409d93:	5d                   	pop    %ebp
409d94:	c3                   	ret
409d95:	a1 30 25 42 00       	mov    0x422530,%eax
409d9a:	90                   	nop
409d9b:	89 01                	mov    %eax,(%ecx)
409d9d:	33 c0                	xor    %eax,%eax
409d9f:	5d                   	pop    %ebp
409da0:	c3                   	ret
409da1:	8b ff                	mov    %edi,%edi
409da3:	55                   	push   %ebp
409da4:	8b ec                	mov    %esp,%ebp
409da6:	8b 45 08             	mov    0x8(%ebp),%eax
409da9:	3d 00 40 00 00       	cmp    $0x4000,%eax
409dae:	74 23                	je     0x409dd3
409db0:	3d 00 80 00 00       	cmp    $0x8000,%eax
409db5:	74 1c                	je     0x409dd3
409db7:	3d 00 00 01 00       	cmp    $0x10000,%eax
409dbc:	74 15                	je     0x409dd3
409dbe:	e8 6c 09 00 00       	call   0x40a72f
409dc3:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
409dc9:	e8 fb d6 ff ff       	call   0x4074c9
409dce:	6a 16                	push   $0x16
409dd0:	58                   	pop    %eax
409dd1:	5d                   	pop    %ebp
409dd2:	c3                   	ret
409dd3:	b9 30 25 42 00       	mov    $0x422530,%ecx
409dd8:	87 01                	xchg   %eax,(%ecx)
409dda:	33 c0                	xor    %eax,%eax
409ddc:	5d                   	pop    %ebp
409ddd:	c3                   	ret
409dde:	8b ff                	mov    %edi,%edi
409de0:	55                   	push   %ebp
409de1:	8b ec                	mov    %esp,%ebp
409de3:	51                   	push   %ecx
409de4:	8b 45 08             	mov    0x8(%ebp),%eax
409de7:	53                   	push   %ebx
409de8:	56                   	push   %esi
409de9:	57                   	push   %edi
409dea:	8b f8                	mov    %eax,%edi
409dec:	83 e0 3f             	and    $0x3f,%eax
409def:	c1 ff 06             	sar    $0x6,%edi
409df2:	6b d0 38             	imul   $0x38,%eax,%edx
409df5:	8b 34 bd a8 21 42 00 	mov    0x4221a8(,%edi,4),%esi
409dfc:	8a 44 16 28          	mov    0x28(%esi,%edx,1),%al
409e00:	8a 5c 16 29          	mov    0x29(%esi,%edx,1),%bl
409e04:	0f b6 c8             	movzbl %al,%ecx
409e07:	81 e1 80 00 00 00    	and    $0x80,%ecx
409e0d:	89 4d fc             	mov    %ecx,-0x4(%ebp)
409e10:	8b 4d 0c             	mov    0xc(%ebp),%ecx
409e13:	81 f9 00 40 00 00    	cmp    $0x4000,%ecx
409e19:	74 50                	je     0x409e6b
409e1b:	81 f9 00 80 00 00    	cmp    $0x8000,%ecx
409e21:	74 40                	je     0x409e63
409e23:	81 f9 00 00 01 00    	cmp    $0x10000,%ecx
409e29:	74 24                	je     0x409e4f
409e2b:	81 f9 00 00 02 00    	cmp    $0x20000,%ecx
409e31:	74 1c                	je     0x409e4f
409e33:	81 f9 00 00 04 00    	cmp    $0x40000,%ecx
409e39:	75 42                	jne    0x409e7d
409e3b:	0c 80                	or     $0x80,%al
409e3d:	88 44 16 28          	mov    %al,0x28(%esi,%edx,1)
409e41:	8b 04 bd a8 21 42 00 	mov    0x4221a8(,%edi,4),%eax
409e48:	c6 44 10 29 01       	movb   $0x1,0x29(%eax,%edx,1)
409e4d:	eb 2e                	jmp    0x409e7d
409e4f:	0c 80                	or     $0x80,%al
409e51:	88 44 16 28          	mov    %al,0x28(%esi,%edx,1)
409e55:	8b 04 bd a8 21 42 00 	mov    0x4221a8(,%edi,4),%eax
409e5c:	c6 44 10 29 02       	movb   $0x2,0x29(%eax,%edx,1)