40ed47:	a8 01                	test   $0x1,%al
40ed49:	75 6a                	jne    0x40edb5
40ed4b:	51                   	push   %ecx
40ed4c:	e8 2e ba 00 00       	call   0x41a77f
40ed51:	8b d0                	mov    %eax,%edx
40ed53:	be a8 bb 43 00       	mov    $0x43bba8,%esi
40ed58:	59                   	pop    %ecx
40ed59:	83 fa ff             	cmp    $0xffffffff,%edx
40ed5c:	74 19                	je     0x40ed77
40ed5e:	83 fa fe             	cmp    $0xfffffffe,%edx
40ed61:	74 14                	je     0x40ed77
40ed63:	83 e0 3f             	and    $0x3f,%eax
40ed66:	8b ca                	mov    %edx,%ecx
40ed68:	6b c0 30             	imul   $0x30,%eax,%eax
40ed6b:	c1 f9 06             	sar    $0x6,%ecx
40ed6e:	03 04 8d c0 9d 83 02 	add    0x2839dc0(,%ecx,4),%eax
40ed75:	eb 02                	jmp    0x40ed79
40ed77:	8b c6                	mov    %esi,%eax
40ed79:	80 78 29 00          	cmpb   $0x0,0x29(%eax)
40ed7d:	75 22                	jne    0x40eda1
40ed7f:	83 fa ff             	cmp    $0xffffffff,%edx
40ed82:	74 17                	je     0x40ed9b
40ed84:	83 fa fe             	cmp    $0xfffffffe,%edx
40ed87:	74 12                	je     0x40ed9b
40ed89:	8b c2                	mov    %edx,%eax
40ed8b:	83 e2 3f             	and    $0x3f,%edx
40ed8e:	6b f2 30             	imul   $0x30,%edx,%esi
40ed91:	c1 f8 06             	sar    $0x6,%eax
40ed94:	03 34 85 c0 9d 83 02 	add    0x2839dc0(,%eax,4),%esi
40ed9b:	f6 46 2d 01          	testb  $0x1,0x2d(%esi)
40ed9f:	74 14                	je     0x40edb5
40eda1:	e8 c5 5c 00 00       	call   0x414a6b
40eda6:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
40edac:	e8 31 cf ff ff       	call   0x40bce2
40edb1:	32 c0                	xor    %al,%al
40edb3:	eb 02                	jmp    0x40edb7
40edb5:	b0 01                	mov    $0x1,%al
40edb7:	5e                   	pop    %esi
40edb8:	5d                   	pop    %ebp
40edb9:	c3                   	ret
40edba:	8b ff                	mov    %edi,%edi
40edbc:	55                   	push   %ebp
40edbd:	8b ec                	mov    %esp,%ebp
40edbf:	8b 01                	mov    (%ecx),%eax
40edc1:	8b 40 0c             	mov    0xc(%eax),%eax
40edc4:	c1 e8 0c             	shr    $0xc,%eax
40edc7:	a8 01                	test   $0x1,%al
40edc9:	74 08                	je     0x40edd3
40edcb:	8b 01                	mov    (%ecx),%eax
40edcd:	83 78 04 00          	cmpl   $0x0,0x4(%eax)
40edd1:	74 1b                	je     0x40edee
40edd3:	ff 31                	push   (%ecx)
40edd5:	0f be 45 08          	movsbl 0x8(%ebp),%eax
40edd9:	50                   	push   %eax
40edda:	e8 c6 b9 00 00       	call   0x41a7a5
40eddf:	59                   	pop    %ecx
40ede0:	59                   	pop    %ecx
40ede1:	83 f8 ff             	cmp    $0xffffffff,%eax
40ede4:	75 08                	jne    0x40edee
40ede6:	8b 45 0c             	mov    0xc(%ebp),%eax
40ede9:	83 08 ff             	orl    $0xffffffff,(%eax)
40edec:	eb 05                	jmp    0x40edf3
40edee:	8b 45 0c             	mov    0xc(%ebp),%eax
40edf1:	ff 00                	incl   (%eax)
40edf3:	5d                   	pop    %ebp
40edf4:	c2 08 00             	ret    $0x8
40edf7:	8b ff                	mov    %edi,%edi
40edf9:	55                   	push   %ebp
40edfa:	8b ec                	mov    %esp,%ebp
40edfc:	8b 01                	mov    (%ecx),%eax
40edfe:	8b 40 0c             	mov    0xc(%eax),%eax
40ee01:	c1 e8 0c             	shr    $0xc,%eax
40ee04:	a8 01                	test   $0x1,%al
40ee06:	74 08                	je     0x40ee10
40ee08:	8b 01                	mov    (%ecx),%eax
40ee0a:	83 78 04 00          	cmpl   $0x0,0x4(%eax)
40ee0e:	74 1e                	je     0x40ee2e
40ee10:	ff 31                	push   (%ecx)
40ee12:	ff 75 08             	push   0x8(%ebp)
40ee15:	e8 3f b8 00 00       	call   0x41a659
40ee1a:	59                   	pop    %ecx
40ee1b:	59                   	pop    %ecx
40ee1c:	b9 ff ff 00 00       	mov    $0xffff,%ecx
40ee21:	66 3b c1             	cmp    %cx,%ax
40ee24:	75 08                	jne    0x40ee2e
40ee26:	8b 45 0c             	mov    0xc(%ebp),%eax
40ee29:	83 08 ff             	orl    $0xffffffff,(%eax)
40ee2c:	eb 05                	jmp    0x40ee33
40ee2e:	8b 45 0c             	mov    0xc(%ebp),%eax
40ee31:	ff 00                	incl   (%eax)
40ee33:	5d                   	pop    %ebp
40ee34:	c2 08 00             	ret    $0x8
40ee37:	8b ff                	mov    %edi,%edi
40ee39:	55                   	push   %ebp
40ee3a:	8b ec                	mov    %esp,%ebp
40ee3c:	8b d1                	mov    %ecx,%edx
40ee3e:	8b 0a                	mov    (%edx),%ecx
40ee40:	8b 41 08             	mov    0x8(%ecx),%eax
40ee43:	3b 41 04             	cmp    0x4(%ecx),%eax
40ee46:	8b 45 0c             	mov    0xc(%ebp),%eax
40ee49:	75 14                	jne    0x40ee5f
40ee4b:	80 79 0c 00          	cmpb   $0x0,0xc(%ecx)
40ee4f:	74 04                	je     0x40ee55
40ee51:	ff 00                	incl   (%eax)
40ee53:	eb 03                	jmp    0x40ee58
40ee55:	83 08 ff             	orl    $0xffffffff,(%eax)
40ee58:	8b 02                	mov    (%edx),%eax
40ee5a:	8a 40 0c             	mov    0xc(%eax),%al
40ee5d:	eb 16                	jmp    0x40ee75
40ee5f:	ff 00                	incl   (%eax)
40ee61:	8b 02                	mov    (%edx),%eax
40ee63:	ff 40 08             	incl   0x8(%eax)
40ee66:	8b 02                	mov    (%edx),%eax
40ee68:	8b 08                	mov    (%eax),%ecx
40ee6a:	8a 45 08             	mov    0x8(%ebp),%al
40ee6d:	88 01                	mov    %al,(%ecx)
40ee6f:	8b 02                	mov    (%edx),%eax
40ee71:	ff 00                	incl   (%eax)
40ee73:	b0 01                	mov    $0x1,%al
40ee75:	5d                   	pop    %ebp
40ee76:	c2 08 00             	ret    $0x8
40ee79:	8b ff                	mov    %edi,%edi
40ee7b:	55                   	push   %ebp
40ee7c:	8b ec                	mov    %esp,%ebp
40ee7e:	83 ec 10             	sub    $0x10,%esp
40ee81:	a1 28 ba 43 00       	mov    0x43ba28,%eax
40ee86:	33 c5                	xor    %ebp,%eax
40ee88:	89 45 fc             	mov    %eax,-0x4(%ebp)
40ee8b:	53                   	push   %ebx
40ee8c:	56                   	push   %esi
40ee8d:	8b f1                	mov    %ecx,%esi
40ee8f:	57                   	push   %edi
40ee90:	80 7e 3c 00          	cmpb   $0x0,0x3c(%esi)
40ee94:	74 5d                	je     0x40eef3
40ee96:	8b 46 38             	mov    0x38(%esi),%eax
40ee99:	85 c0                	test   %eax,%eax
40ee9b:	7e 56                	jle    0x40eef3
40ee9d:	8b 7e 34             	mov    0x34(%esi),%edi
40eea0:	33 db                	xor    %ebx,%ebx
40eea2:	85 c0                	test   %eax,%eax
40eea4:	74 65                	je     0x40ef0b
40eea6:	0f b7 07             	movzwl (%edi),%eax
40eea9:	8d 7f 02             	lea    0x2(%edi),%edi
40eeac:	83 65 f0 00          	andl   $0x0,-0x10(%ebp)
40eeb0:	50                   	push   %eax
40eeb1:	6a 06                	push   $0x6
40eeb3:	8d 45 f4             	lea    -0xc(%ebp),%eax
40eeb6:	50                   	push   %eax
40eeb7:	8d 45 f0             	lea    -0x10(%ebp),%eax
40eeba:	50                   	push   %eax
40eebb:	e8 db ac 00 00       	call   0x419b9b
40eec0:	83 c4 10             	add    $0x10,%esp
40eec3:	85 c0                	test   %eax,%eax
40eec5:	75 26                	jne    0x40eeed
40eec7:	39 45 f0             	cmp    %eax,-0x10(%ebp)
40eeca:	74 21                	je     0x40eeed
40eecc:	ff 76 0c             	push   0xc(%esi)
40eecf:	8d 46 18             	lea    0x18(%esi),%eax
40eed2:	50                   	push   %eax
40eed3:	ff 75 f0             	push   -0x10(%ebp)
40eed6:	8d 45 f4             	lea    -0xc(%ebp),%eax
40eed9:	50                   	push   %eax
40eeda:	8d 8e 48 04 00 00    	lea    0x448(%esi),%ecx
40eee0:	e8 6d 01 00 00       	call   0x40f052
40eee5:	43                   	inc    %ebx
40eee6:	3b 5e 38             	cmp    0x38(%esi),%ebx
40eee9:	75 bb                	jne    0x40eea6
40eeeb:	eb 1e                	jmp    0x40ef0b
40eeed:	83 4e 18 ff          	orl    $0xffffffff,0x18(%esi)
40eef1:	eb 18                	jmp    0x40ef0b
40eef3:	ff 76 0c             	push   0xc(%esi)
40eef6:	8d 46 18             	lea    0x18(%esi),%eax
40eef9:	50                   	push   %eax
40eefa:	ff 76 38             	push   0x38(%esi)
40eefd:	8d 8e 48 04 00 00    	lea    0x448(%esi),%ecx
40ef03:	ff 76 34             	push   0x34(%esi)
40ef06:	e8 47 01 00 00       	call   0x40f052
40ef0b:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40ef0e:	b0 01                	mov    $0x1,%al
40ef10:	5f                   	pop    %edi
40ef11:	5e                   	pop    %esi
40ef12:	33 cd                	xor    %ebp,%ecx
40ef14:	5b                   	pop    %ebx
40ef15:	e8 46 81 ff ff       	call   0x407060
40ef1a:	8b e5                	mov    %ebp,%esp
40ef1c:	5d                   	pop    %ebp
40ef1d:	c2 04 00             	ret    $0x4
40ef20:	8b ff                	mov    %edi,%edi
40ef22:	55                   	push   %ebp
40ef23:	8b ec                	mov    %esp,%ebp
40ef25:	83 ec 10             	sub    $0x10,%esp
40ef28:	a1 28 ba 43 00       	mov    0x43ba28,%eax
40ef2d:	33 c5                	xor    %ebp,%eax
40ef2f:	89 45 fc             	mov    %eax,-0x4(%ebp)
40ef32:	53                   	push   %ebx
40ef33:	56                   	push   %esi
40ef34:	8b f1                	mov    %ecx,%esi
40ef36:	57                   	push   %edi
40ef37:	80 7e 3c 00          	cmpb   $0x0,0x3c(%esi)
40ef3b:	74 5d                	je     0x40ef9a
40ef3d:	8b 46 38             	mov    0x38(%esi),%eax
40ef40:	85 c0                	test   %eax,%eax
40ef42:	7e 56                	jle    0x40ef9a
40ef44:	8b 7e 34             	mov    0x34(%esi),%edi
40ef47:	33 db                	xor    %ebx,%ebx
40ef49:	85 c0                	test   %eax,%eax
40ef4b:	74 65                	je     0x40efb2
40ef4d:	0f b7 07             	movzwl (%edi),%eax
40ef50:	8d 7f 02             	lea    0x2(%edi),%edi
40ef53:	83 65 f0 00          	andl   $0x0,-0x10(%ebp)
40ef57:	50                   	push   %eax
40ef58:	6a 06                	push   $0x6
40ef5a:	8d 45 f4             	lea    -0xc(%ebp),%eax
40ef5d:	50                   	push   %eax
40ef5e:	8d 45 f0             	lea    -0x10(%ebp),%eax
40ef61:	50                   	push   %eax
40ef62:	e8 34 ac 00 00       	call   0x419b9b
40ef67:	83 c4 10             	add    $0x10,%esp
40ef6a:	85 c0                	test   %eax,%eax
40ef6c:	75 26                	jne    0x40ef94
40ef6e:	39 45 f0             	cmp    %eax,-0x10(%ebp)
40ef71:	74 21                	je     0x40ef94
40ef73:	ff 76 0c             	push   0xc(%esi)
40ef76:	8d 46 18             	lea    0x18(%esi),%eax
40ef79:	50                   	push   %eax
40ef7a:	ff 75 f0             	push   -0x10(%ebp)
40ef7d:	8d 45 f4             	lea    -0xc(%ebp),%eax
40ef80:	50                   	push   %eax
40ef81:	8d 8e 48 04 00 00    	lea    0x448(%esi),%ecx
40ef87:	e8 dd 01 00 00       	call   0x40f169
40ef8c:	43                   	inc    %ebx
40ef8d:	3b 5e 38             	cmp    0x38(%esi),%ebx
40ef90:	75 bb                	jne    0x40ef4d
40ef92:	eb 1e                	jmp    0x40efb2
40ef94:	83 4e 18 ff          	orl    $0xffffffff,0x18(%esi)
40ef98:	eb 18                	jmp    0x40efb2
40ef9a:	ff 76 0c             	push   0xc(%esi)
40ef9d:	8d 46 18             	lea    0x18(%esi),%eax
40efa0:	50                   	push   %eax
40efa1:	ff 76 38             	push   0x38(%esi)
40efa4:	8d 8e 48 04 00 00    	lea    0x448(%esi),%ecx
40efaa:	ff 76 34             	push   0x34(%esi)
40efad:	e8 b7 01 00 00       	call   0x40f169
40efb2:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40efb5:	b0 01                	mov    $0x1,%al
40efb7:	5f                   	pop    %edi
40efb8:	5e                   	pop    %esi
40efb9:	33 cd                	xor    %ebp,%ecx
40efbb:	5b                   	pop    %ebx
40efbc:	e8 9f 80 ff ff       	call   0x407060
40efc1:	8b e5                	mov    %ebp,%esp
40efc3:	5d                   	pop    %ebp
40efc4:	c2 04 00             	ret    $0x4
40efc7:	8b ff                	mov    %edi,%edi
40efc9:	55                   	push   %ebp
40efca:	8b ec                	mov    %esp,%ebp
40efcc:	51                   	push   %ecx
40efcd:	51                   	push   %ecx
40efce:	53                   	push   %ebx
40efcf:	56                   	push   %esi
40efd0:	8b f1                	mov    %ecx,%esi
40efd2:	57                   	push   %edi
40efd3:	80 7e 3c 00          	cmpb   $0x0,0x3c(%esi)
40efd7:	75 56                	jne    0x40f02f
40efd9:	8b 46 38             	mov    0x38(%esi),%eax
40efdc:	85 c0                	test   %eax,%eax
40efde:	7e 4f                	jle    0x40f02f
40efe0:	8b 5e 34             	mov    0x34(%esi),%ebx
40efe3:	33 ff                	xor    %edi,%edi
40efe5:	85 c0                	test   %eax,%eax
40efe7:	74 5e                	je     0x40f047
40efe9:	33 c0                	xor    %eax,%eax
40efeb:	66 89 45 fc          	mov    %ax,-0x4(%ebp)
40efef:	8b 46 08             	mov    0x8(%esi),%eax
40eff2:	50                   	push   %eax
40eff3:	8b 00                	mov    (%eax),%eax
40eff5:	ff 70 04             	push   0x4(%eax)
40eff8:	8d 45 fc             	lea    -0x4(%ebp),%eax
40effb:	53                   	push   %ebx
40effc:	50                   	push   %eax
40effd:	e8 64 a9 00 00       	call   0x419966
40f002:	83 c4 10             	add    $0x10,%esp
40f005:	89 45 f8             	mov    %eax,-0x8(%ebp)
40f008:	85 c0                	test   %eax,%eax
40f00a:	7e 1d                	jle    0x40f029
40f00c:	8d 4e 18             	lea    0x18(%esi),%ecx
40f00f:	51                   	push   %ecx
40f010:	ff 75 fc             	push   -0x4(%ebp)
40f013:	8d 8e 48 04 00 00    	lea    0x448(%esi),%ecx
40f019:	e8 d9 fd ff ff       	call   0x40edf7
40f01e:	03 5d f8             	add    -0x8(%ebp),%ebx
40f021:	47                   	inc    %edi
40f022:	3b 7e 38             	cmp    0x38(%esi),%edi
40f025:	75 c2                	jne    0x40efe9
40f027:	eb 1e                	jmp    0x40f047
40f029:	83 4e 18 ff          	orl    $0xffffffff,0x18(%esi)
40f02d:	eb 18                	jmp    0x40f047
40f02f:	ff 76 0c             	push   0xc(%esi)
40f032:	8d 46 18             	lea    0x18(%esi),%eax
40f035:	50                   	push   %eax
40f036:	ff 76 38             	push   0x38(%esi)
40f039:	8d 8e 48 04 00 00    	lea    0x448(%esi),%ecx
40f03f:	ff 76 34             	push   0x34(%esi)
40f042:	e8 95 00 00 00       	call   0x40f0dc
40f047:	5f                   	pop    %edi
40f048:	5e                   	pop    %esi
40f049:	b0 01                	mov    $0x1,%al
40f04b:	5b                   	pop    %ebx
40f04c:	8b e5                	mov    %ebp,%esp
40f04e:	5d                   	pop    %ebp
40f04f:	c2 04 00             	ret    $0x4
40f052:	8b ff                	mov    %edi,%edi
40f054:	55                   	push   %ebp
40f055:	8b ec                	mov    %esp,%ebp
40f057:	51                   	push   %ecx
40f058:	51                   	push   %ecx
40f059:	53                   	push   %ebx
40f05a:	8b d9                	mov    %ecx,%ebx
40f05c:	8b 03                	mov    (%ebx),%eax
40f05e:	8b 40 0c             	mov    0xc(%eax),%eax
40f061:	c1 e8 0c             	shr    $0xc,%eax
40f064:	a8 01                	test   $0x1,%al
40f066:	74 12                	je     0x40f07a
40f068:	8b 03                	mov    (%ebx),%eax
40f06a:	83 78 04 00          	cmpl   $0x0,0x4(%eax)
40f06e:	75 0a                	jne    0x40f07a
40f070:	8b 4d 10             	mov    0x10(%ebp),%ecx
40f073:	8b 45 0c             	mov    0xc(%ebp),%eax
40f076:	01 01                	add    %eax,(%ecx)
40f078:	eb 5b                	jmp    0x40f0d5
40f07a:	8b 45 0c             	mov    0xc(%ebp),%eax
40f07d:	56                   	push   %esi
40f07e:	8b 75 14             	mov    0x14(%ebp),%esi
40f081:	57                   	push   %edi
40f082:	8b 7d 08             	mov    0x8(%ebp),%edi
40f085:	03 c7                	add    %edi,%eax
40f087:	89 45 fc             	mov    %eax,-0x4(%ebp)
40f08a:	8b 0e                	mov    (%esi),%ecx
40f08c:	83 26 00             	andl   $0x0,(%esi)
40f08f:	89 4d f8             	mov    %ecx,-0x8(%ebp)
40f092:	3b f8                	cmp    %eax,%edi
40f094:	74 32                	je     0x40f0c8
40f096:	8b 45 10             	mov    0x10(%ebp),%eax
40f099:	50                   	push   %eax
40f09a:	0f b6 07             	movzbl (%edi),%eax
40f09d:	8b cb                	mov    %ebx,%ecx
40f09f:	50                   	push   %eax
40f0a0:	e8 15 fd ff ff       	call   0x40edba
40f0a5:	8b 45 10             	mov    0x10(%ebp),%eax
40f0a8:	83 38 ff             	cmpl   $0xffffffff,(%eax)