409c7d:	5e                   	pop    %esi
409c7e:	c3                   	ret
409c7f:	53                   	push   %ebx
409c80:	8b 5c 24 08          	mov    0x8(%esp),%ebx
409c84:	3b 1d c0 1e 41 00    	cmp    0x411ec0,%ebx
409c8a:	56                   	push   %esi
409c8b:	57                   	push   %edi
409c8c:	73 72                	jae    0x409d00
409c8e:	8b c3                	mov    %ebx,%eax
409c90:	c1 f8 05             	sar    $0x5,%eax
409c93:	8d 3c 85 c0 1d 41 00 	lea    0x411dc0(,%eax,4),%edi
409c9a:	8b c3                	mov    %ebx,%eax
409c9c:	83 e0 1f             	and    $0x1f,%eax
409c9f:	8d 34 c0             	lea    (%eax,%eax,8),%esi
409ca2:	8b 07                	mov    (%edi),%eax
409ca4:	c1 e6 02             	shl    $0x2,%esi
409ca7:	f6 44 30 04 01       	testb  $0x1,0x4(%eax,%esi,1)
409cac:	74 52                	je     0x409d00
409cae:	53                   	push   %ebx
409caf:	e8 f1 1b 00 00       	call   0x40b8a5
409cb4:	8b 07                	mov    (%edi),%eax
409cb6:	59                   	pop    %ecx
409cb7:	f6 44 30 04 01       	testb  $0x1,0x4(%eax,%esi,1)
409cbc:	74 29                	je     0x409ce7
409cbe:	53                   	push   %ebx
409cbf:	e8 9f 1b 00 00       	call   0x40b863
409cc4:	59                   	pop    %ecx
409cc5:	50                   	push   %eax
409cc6:	ff 15 78 d0 40 00    	call   *0x40d078
409ccc:	85 c0                	test   %eax,%eax
409cce:	75 0a                	jne    0x409cda
409cd0:	ff 15 9c d0 40 00    	call   *0x40d09c
409cd6:	8b f0                	mov    %eax,%esi
409cd8:	eb 02                	jmp    0x409cdc
409cda:	33 f6                	xor    %esi,%esi
409cdc:	85 f6                	test   %esi,%esi
409cde:	74 15                	je     0x409cf5
409ce0:	e8 02 d4 ff ff       	call   0x4070e7
409ce5:	89 30                	mov    %esi,(%eax)
409ce7:	e8 f2 d3 ff ff       	call   0x4070de
409cec:	c7 00 09 00 00 00    	movl   $0x9,(%eax)
409cf2:	83 ce ff             	or     $0xffffffff,%esi
409cf5:	53                   	push   %ebx
409cf6:	e8 09 1c 00 00       	call   0x40b904
409cfb:	59                   	pop    %ecx
409cfc:	8b c6                	mov    %esi,%eax
409cfe:	eb 0e                	jmp    0x409d0e
409d00:	e8 d9 d3 ff ff       	call   0x4070de
409d05:	c7 00 09 00 00 00    	movl   $0x9,(%eax)
409d0b:	83 c8 ff             	or     $0xffffffff,%eax
409d0e:	5f                   	pop    %edi
409d0f:	5e                   	pop    %esi
409d10:	5b                   	pop    %ebx
409d11:	c3                   	ret
409d12:	56                   	push   %esi
409d13:	8b 74 24 08          	mov    0x8(%esp),%esi
409d17:	3b 35 c0 1e 41 00    	cmp    0x411ec0,%esi
409d1d:	73 38                	jae    0x409d57
409d1f:	8b ce                	mov    %esi,%ecx
409d21:	8b c6                	mov    %esi,%eax
409d23:	c1 f9 05             	sar    $0x5,%ecx
409d26:	83 e0 1f             	and    $0x1f,%eax
409d29:	8b 0c 8d c0 1d 41 00 	mov    0x411dc0(,%ecx,4),%ecx
409d30:	8d 04 c0             	lea    (%eax,%eax,8),%eax
409d33:	f6 44 81 04 01       	testb  $0x1,0x4(%ecx,%eax,4)
409d38:	74 1d                	je     0x409d57
409d3a:	57                   	push   %edi
409d3b:	56                   	push   %esi
409d3c:	e8 64 1b 00 00       	call   0x40b8a5
409d41:	56                   	push   %esi
409d42:	e8 28 00 00 00       	call   0x409d6f
409d47:	56                   	push   %esi
409d48:	8b f8                	mov    %eax,%edi
409d4a:	e8 b5 1b 00 00       	call   0x40b904
409d4f:	83 c4 0c             	add    $0xc,%esp
409d52:	8b c7                	mov    %edi,%eax
409d54:	5f                   	pop    %edi
409d55:	5e                   	pop    %esi
409d56:	c3                   	ret
409d57:	e8 82 d3 ff ff       	call   0x4070de
409d5c:	c7 00 09 00 00 00    	movl   $0x9,(%eax)
409d62:	e8 80 d3 ff ff       	call   0x4070e7
409d67:	83 20 00             	andl   $0x0,(%eax)
409d6a:	83 c8 ff             	or     $0xffffffff,%eax
409d6d:	5e                   	pop    %esi
409d6e:	c3                   	ret
409d6f:	56                   	push   %esi
409d70:	8b 74 24 08          	mov    0x8(%esp),%esi
409d74:	57                   	push   %edi
409d75:	56                   	push   %esi
409d76:	e8 e8 1a 00 00       	call   0x40b863
409d7b:	83 f8 ff             	cmp    $0xffffffff,%eax
409d7e:	59                   	pop    %ecx
409d7f:	74 3c                	je     0x409dbd
409d81:	83 fe 01             	cmp    $0x1,%esi
409d84:	74 05                	je     0x409d8b
409d86:	83 fe 02             	cmp    $0x2,%esi
409d89:	75 16                	jne    0x409da1
409d8b:	6a 02                	push   $0x2
409d8d:	e8 d1 1a 00 00       	call   0x40b863
409d92:	6a 01                	push   $0x1
409d94:	8b f8                	mov    %eax,%edi
409d96:	e8 c8 1a 00 00       	call   0x40b863
409d9b:	59                   	pop    %ecx
409d9c:	3b c7                	cmp    %edi,%eax
409d9e:	59                   	pop    %ecx
409d9f:	74 1c                	je     0x409dbd
409da1:	56                   	push   %esi
409da2:	e8 bc 1a 00 00       	call   0x40b863
409da7:	59                   	pop    %ecx
409da8:	50                   	push   %eax
409da9:	ff 15 74 d0 40 00    	call   *0x40d074
409daf:	85 c0                	test   %eax,%eax
409db1:	75 0a                	jne    0x409dbd
409db3:	ff 15 9c d0 40 00    	call   *0x40d09c
409db9:	8b f8                	mov    %eax,%edi
409dbb:	eb 02                	jmp    0x409dbf
409dbd:	33 ff                	xor    %edi,%edi
409dbf:	56                   	push   %esi
409dc0:	e8 1f 1a 00 00       	call   0x40b7e4
409dc5:	8b c6                	mov    %esi,%eax
409dc7:	83 e6 1f             	and    $0x1f,%esi
409dca:	c1 f8 05             	sar    $0x5,%eax
409dcd:	59                   	pop    %ecx
409dce:	8b 04 85 c0 1d 41 00 	mov    0x411dc0(,%eax,4),%eax
409dd5:	8d 0c f6             	lea    (%esi,%esi,8),%ecx
409dd8:	80 64 88 04 00       	andb   $0x0,0x4(%eax,%ecx,4)
409ddd:	85 ff                	test   %edi,%edi
409ddf:	74 0c                	je     0x409ded
409de1:	57                   	push   %edi
409de2:	e8 84 d2 ff ff       	call   0x40706b
409de7:	59                   	pop    %ecx
409de8:	83 c8 ff             	or     $0xffffffff,%eax
409deb:	eb 02                	jmp    0x409def
409ded:	33 c0                	xor    %eax,%eax
409def:	5f                   	pop    %edi
409df0:	5e                   	pop    %esi
409df1:	c3                   	ret
409df2:	55                   	push   %ebp
409df3:	8b ec                	mov    %esp,%ebp
409df5:	51                   	push   %ecx
409df6:	53                   	push   %ebx
409df7:	56                   	push   %esi
409df8:	8b 75 0c             	mov    0xc(%ebp),%esi
409dfb:	8b 46 0c             	mov    0xc(%esi),%eax
409dfe:	8b 4e 10             	mov    0x10(%esi),%ecx
409e01:	a8 82                	test   $0x82,%al
409e03:	89 4d fc             	mov    %ecx,-0x4(%ebp)
409e06:	0f 84 ff 00 00 00    	je     0x409f0b
409e0c:	a8 40                	test   $0x40,%al
409e0e:	0f 85 f7 00 00 00    	jne    0x409f0b
409e14:	33 db                	xor    %ebx,%ebx
409e16:	a8 01                	test   $0x1,%al
409e18:	74 15                	je     0x409e2f
409e1a:	a8 10                	test   $0x10,%al
409e1c:	89 5e 04             	mov    %ebx,0x4(%esi)
409e1f:	0f 84 e6 00 00 00    	je     0x409f0b
409e25:	8b 56 08             	mov    0x8(%esi),%edx
409e28:	24 fe                	and    $0xfe,%al
409e2a:	89 16                	mov    %edx,(%esi)
409e2c:	89 46 0c             	mov    %eax,0xc(%esi)
409e2f:	8b 46 0c             	mov    0xc(%esi),%eax
409e32:	89 5e 04             	mov    %ebx,0x4(%esi)
409e35:	24 ef                	and    $0xef,%al
409e37:	89 5d 0c             	mov    %ebx,0xc(%ebp)
409e3a:	0c 02                	or     $0x2,%al
409e3c:	66 a9 0c 01          	test   $0x10c,%ax
409e40:	89 46 0c             	mov    %eax,0xc(%esi)
409e43:	75 25                	jne    0x409e6a
409e45:	81 fe a0 05 41 00    	cmp    $0x4105a0,%esi
409e4b:	74 08                	je     0x409e55
409e4d:	81 fe c0 05 41 00    	cmp    $0x4105c0,%esi
409e53:	75 0b                	jne    0x409e60
409e55:	51                   	push   %ecx
409e56:	e8 0a 12 00 00       	call   0x40b065
409e5b:	85 c0                	test   %eax,%eax
409e5d:	59                   	pop    %ecx
409e5e:	75 07                	jne    0x409e67
409e60:	56                   	push   %esi
409e61:	e8 1d f8 ff ff       	call   0x409683
409e66:	59                   	pop    %ecx
409e67:	8b 4d fc             	mov    -0x4(%ebp),%ecx
409e6a:	66 f7 46 0c 08 01    	testw  $0x108,0xc(%esi)
409e70:	57                   	push   %edi
409e71:	74 68                	je     0x409edb
409e73:	8b 46 08             	mov    0x8(%esi),%eax
409e76:	8b 3e                	mov    (%esi),%edi
409e78:	2b f8                	sub    %eax,%edi
409e7a:	8d 50 02             	lea    0x2(%eax),%edx
409e7d:	89 16                	mov    %edx,(%esi)
409e7f:	8b 56 18             	mov    0x18(%esi),%edx
409e82:	4a                   	dec    %edx
409e83:	4a                   	dec    %edx
409e84:	3b fb                	cmp    %ebx,%edi
409e86:	89 56 04             	mov    %edx,0x4(%esi)
409e89:	7e 10                	jle    0x409e9b
409e8b:	57                   	push   %edi
409e8c:	50                   	push   %eax
409e8d:	51                   	push   %ecx
409e8e:	e8 00 f6 ff ff       	call   0x409493
409e93:	83 c4 0c             	add    $0xc,%esp
409e96:	89 45 0c             	mov    %eax,0xc(%ebp)
409e99:	eb 35                	jmp    0x409ed0
409e9b:	83 f9 ff             	cmp    $0xffffffff,%ecx
409e9e:	74 19                	je     0x409eb9
409ea0:	8b d1                	mov    %ecx,%edx
409ea2:	8b c1                	mov    %ecx,%eax
409ea4:	c1 fa 05             	sar    $0x5,%edx
409ea7:	83 e0 1f             	and    $0x1f,%eax
409eaa:	8b 14 95 c0 1d 41 00 	mov    0x411dc0(,%edx,4),%edx
409eb1:	8d 04 c0             	lea    (%eax,%eax,8),%eax
409eb4:	8d 04 82             	lea    (%edx,%eax,4),%eax
409eb7:	eb 05                	jmp    0x409ebe
409eb9:	b8 08 0e 41 00       	mov    $0x410e08,%eax
409ebe:	f6 40 04 20          	testb  $0x20,0x4(%eax)
409ec2:	74 0c                	je     0x409ed0
409ec4:	6a 02                	push   $0x2
409ec6:	53                   	push   %ebx
409ec7:	51                   	push   %ecx
409ec8:	e8 8e fa ff ff       	call   0x40995b
409ecd:	83 c4 0c             	add    $0xc,%esp
409ed0:	8b 46 08             	mov    0x8(%esi),%eax
409ed3:	8b 5d 08             	mov    0x8(%ebp),%ebx
409ed6:	66 89 18             	mov    %bx,(%eax)
409ed9:	eb 1b                	jmp    0x409ef6
409edb:	8b 5d 08             	mov    0x8(%ebp),%ebx
409ede:	6a 02                	push   $0x2
409ee0:	5f                   	pop    %edi
409ee1:	8d 45 08             	lea    0x8(%ebp),%eax
409ee4:	57                   	push   %edi
409ee5:	50                   	push   %eax
409ee6:	51                   	push   %ecx
409ee7:	66 89 5d 08          	mov    %bx,0x8(%ebp)
409eeb:	e8 a3 f5 ff ff       	call   0x409493
409ef0:	83 c4 0c             	add    $0xc,%esp
409ef3:	89 45 0c             	mov    %eax,0xc(%ebp)
409ef6:	39 7d 0c             	cmp    %edi,0xc(%ebp)
409ef9:	5f                   	pop    %edi
409efa:	74 06                	je     0x409f02
409efc:	83 4e 0c 20          	orl    $0x20,0xc(%esi)
409f00:	eb 0e                	jmp    0x409f10
409f02:	8b c3                	mov    %ebx,%eax
409f04:	25 ff ff 00 00       	and    $0xffff,%eax
409f09:	eb 0a                	jmp    0x409f15
409f0b:	0c 20                	or     $0x20,%al
409f0d:	89 46 0c             	mov    %eax,0xc(%esi)
409f10:	b8 ff ff 00 00       	mov    $0xffff,%eax
409f15:	5e                   	pop    %esi
409f16:	5b                   	pop    %ebx
409f17:	c9                   	leave
409f18:	c3                   	ret
409f19:	55                   	push   %ebp
409f1a:	8b ec                	mov    %esp,%ebp
409f1c:	53                   	push   %ebx
409f1d:	56                   	push   %esi
409f1e:	be dc 1e 41 00       	mov    $0x411edc,%esi
409f23:	57                   	push   %edi
409f24:	56                   	push   %esi
409f25:	ff 15 d0 d0 40 00    	call   *0x40d0d0
409f2b:	8b 3d cc d0 40 00    	mov    0x40d0cc,%edi
409f31:	33 db                	xor    %ebx,%ebx
409f33:	39 1d d8 1e 41 00    	cmp    %ebx,0x411ed8
409f39:	74 0e                	je     0x409f49
409f3b:	56                   	push   %esi
409f3c:	ff d7                	call   *%edi
409f3e:	6a 13                	push   $0x13
409f40:	e8 b0 d0 ff ff       	call   0x406ff5
409f45:	59                   	pop    %ecx
409f46:	6a 01                	push   $0x1
409f48:	5b                   	pop    %ebx
409f49:	ff 75 0c             	push   0xc(%ebp)
409f4c:	ff 75 08             	push   0x8(%ebp)
409f4f:	e8 1e 00 00 00       	call   0x409f72
409f54:	59                   	pop    %ecx
409f55:	89 45 0c             	mov    %eax,0xc(%ebp)
409f58:	85 db                	test   %ebx,%ebx
409f5a:	59                   	pop    %ecx
409f5b:	74 0a                	je     0x409f67
409f5d:	6a 13                	push   $0x13
409f5f:	e8 f2 d0 ff ff       	call   0x407056
409f64:	59                   	pop    %ecx
409f65:	eb 03                	jmp    0x409f6a
409f67:	56                   	push   %esi
409f68:	ff d7                	call   *%edi
409f6a:	8b 45 0c             	mov    0xc(%ebp),%eax
409f6d:	5f                   	pop    %edi
409f6e:	5e                   	pop    %esi
409f6f:	5b                   	pop    %ebx
409f70:	5d                   	pop    %ebp
409f71:	c3                   	ret
409f72:	55                   	push   %ebp
409f73:	8b ec                	mov    %esp,%ebp
409f75:	8b 45 08             	mov    0x8(%ebp),%eax
409f78:	85 c0                	test   %eax,%eax
409f7a:	75 02                	jne    0x409f7e
409f7c:	5d                   	pop    %ebp
409f7d:	c3                   	ret
409f7e:	83 3d 6c 18 41 00 00 	cmpl   $0x0,0x41186c
409f85:	75 12                	jne    0x409f99
409f87:	66 8b 4d 0c          	mov    0xc(%ebp),%cx
409f8b:	66 81 f9 ff 00       	cmp    $0xff,%cx
409f90:	77 39                	ja     0x409fcb
409f92:	6a 01                	push   $0x1
409f94:	88 08                	mov    %cl,(%eax)
409f96:	58                   	pop    %eax
409f97:	5d                   	pop    %ebp
409f98:	c3                   	ret
409f99:	8d 4d 08             	lea    0x8(%ebp),%ecx
409f9c:	83 65 08 00          	andl   $0x0,0x8(%ebp)
409fa0:	51                   	push   %ecx
409fa1:	6a 00                	push   $0x0
409fa3:	ff 35 60 0d 41 00    	push   0x410d60
409fa9:	50                   	push   %eax
409faa:	8d 45 0c             	lea    0xc(%ebp),%eax
409fad:	6a 01                	push   $0x1
409faf:	50                   	push   %eax
409fb0:	68 20 02 00 00       	push   $0x220
409fb5:	ff 35 7c 18 41 00    	push   0x41187c
409fbb:	ff 15 18 d1 40 00    	call   *0x40d118
409fc1:	85 c0                	test   %eax,%eax
409fc3:	74 06                	je     0x409fcb
409fc5:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
409fc9:	74 0e                	je     0x409fd9
409fcb:	e8 0e d1 ff ff       	call   0x4070de
409fd0:	c7 00 2a 00 00 00    	movl   $0x2a,(%eax)
409fd6:	83 c8 ff             	or     $0xffffffff,%eax
409fd9:	5d                   	pop    %ebp
409fda:	c3                   	ret
409fdb:	56                   	push   %esi
409fdc:	8b 74 24 08          	mov    0x8(%esp),%esi
409fe0:	8b 46 0c             	mov    0xc(%esi),%eax
409fe3:	a8 83                	test   $0x83,%al
409fe5:	0f 84 d0 00 00 00    	je     0x40a0bb
409feb:	a8 40                	test   $0x40,%al
409fed:	0f 85 c8 00 00 00    	jne    0x40a0bb
409ff3:	a8 02                	test   $0x2,%al
409ff5:	74 0a                	je     0x40a001
409ff7:	0c 20                	or     $0x20,%al
409ff9:	89 46 0c             	mov    %eax,0xc(%esi)
409ffc:	e9 ba 00 00 00       	jmp    0x40a0bb
40a001:	0c 01                	or     $0x1,%al
40a003:	66 a9 0c 01          	test   $0x10c,%ax
40a007:	89 46 0c             	mov    %eax,0xc(%esi)
40a00a:	75 09                	jne    0x40a015
40a00c:	56                   	push   %esi
40a00d:	e8 71 f6 ff ff       	call   0x409683
40a012:	59                   	pop    %ecx
40a013:	eb 05                	jmp    0x40a01a
40a015:	8b 46 08             	mov    0x8(%esi),%eax
40a018:	89 06                	mov    %eax,(%esi)