40eb90:	c6 46 3c 01          	movb   $0x1,0x3c(%esi)
40eb94:	e8 26 63 00 00       	call   0x414ebf
40eb99:	eb 14                	jmp    0x40ebaf
40eb9b:	85 db                	test   %ebx,%ebx
40eb9d:	75 07                	jne    0x40eba6
40eb9f:	c7 46 34 14 af 42 00 	movl   $0x42af14,0x34(%esi)
40eba6:	57                   	push   %edi
40eba7:	ff 76 34             	push   0x34(%esi)
40ebaa:	e8 e9 61 00 00       	call   0x414d98
40ebaf:	59                   	pop    %ecx
40ebb0:	59                   	pop    %ecx
40ebb1:	5f                   	pop    %edi
40ebb2:	89 46 38             	mov    %eax,0x38(%esi)
40ebb5:	b0 01                	mov    $0x1,%al
40ebb7:	5e                   	pop    %esi
40ebb8:	5b                   	pop    %ebx
40ebb9:	c3                   	ret
40ebba:	8b ff                	mov    %edi,%edi
40ebbc:	53                   	push   %ebx
40ebbd:	56                   	push   %esi
40ebbe:	8b f1                	mov    %ecx,%esi
40ebc0:	57                   	push   %edi
40ebc1:	83 46 14 04          	addl   $0x4,0x14(%esi)
40ebc5:	8b 46 14             	mov    0x14(%esi),%eax
40ebc8:	8b 7e 28             	mov    0x28(%esi),%edi
40ebcb:	8b 58 fc             	mov    -0x4(%eax),%ebx
40ebce:	89 5e 34             	mov    %ebx,0x34(%esi)
40ebd1:	83 ff ff             	cmp    $0xffffffff,%edi
40ebd4:	75 05                	jne    0x40ebdb
40ebd6:	bf ff ff ff 7f       	mov    $0x7fffffff,%edi
40ebdb:	ff 76 2c             	push   0x2c(%esi)
40ebde:	0f b6 46 31          	movzbl 0x31(%esi),%eax
40ebe2:	50                   	push   %eax
40ebe3:	ff 76 04             	push   0x4(%esi)
40ebe6:	ff 36                	push   (%esi)
40ebe8:	e8 c8 d5 ff ff       	call   0x40c1b5
40ebed:	83 c4 10             	add    $0x10,%esp
40ebf0:	84 c0                	test   %al,%al
40ebf2:	74 1a                	je     0x40ec0e
40ebf4:	85 db                	test   %ebx,%ebx
40ebf6:	75 07                	jne    0x40ebff
40ebf8:	c7 46 34 1c af 42 00 	movl   $0x42af1c,0x34(%esi)
40ebff:	57                   	push   %edi
40ec00:	ff 76 34             	push   0x34(%esi)
40ec03:	c6 46 3c 01          	movb   $0x1,0x3c(%esi)
40ec07:	e8 b3 62 00 00       	call   0x414ebf
40ec0c:	eb 14                	jmp    0x40ec22
40ec0e:	85 db                	test   %ebx,%ebx
40ec10:	75 07                	jne    0x40ec19
40ec12:	c7 46 34 14 af 42 00 	movl   $0x42af14,0x34(%esi)
40ec19:	57                   	push   %edi
40ec1a:	ff 76 34             	push   0x34(%esi)
40ec1d:	e8 76 61 00 00       	call   0x414d98
40ec22:	59                   	pop    %ecx
40ec23:	59                   	pop    %ecx
40ec24:	5f                   	pop    %edi
40ec25:	89 46 38             	mov    %eax,0x38(%esi)
40ec28:	b0 01                	mov    $0x1,%al
40ec2a:	5e                   	pop    %esi
40ec2b:	5b                   	pop    %ebx
40ec2c:	c3                   	ret
40ec2d:	8b ff                	mov    %edi,%edi
40ec2f:	53                   	push   %ebx
40ec30:	56                   	push   %esi
40ec31:	8b f1                	mov    %ecx,%esi
40ec33:	57                   	push   %edi
40ec34:	83 46 14 04          	addl   $0x4,0x14(%esi)
40ec38:	8b 46 14             	mov    0x14(%esi),%eax
40ec3b:	8b 7e 28             	mov    0x28(%esi),%edi
40ec3e:	8b 58 fc             	mov    -0x4(%eax),%ebx
40ec41:	89 5e 34             	mov    %ebx,0x34(%esi)
40ec44:	83 ff ff             	cmp    $0xffffffff,%edi
40ec47:	75 05                	jne    0x40ec4e
40ec49:	bf ff ff ff 7f       	mov    $0x7fffffff,%edi
40ec4e:	ff 76 2c             	push   0x2c(%esi)
40ec51:	0f b7 46 32          	movzwl 0x32(%esi),%eax
40ec55:	50                   	push   %eax
40ec56:	ff 76 04             	push   0x4(%esi)
40ec59:	ff 36                	push   (%esi)
40ec5b:	e8 95 d5 ff ff       	call   0x40c1f5
40ec60:	83 c4 10             	add    $0x10,%esp
40ec63:	84 c0                	test   %al,%al
40ec65:	74 1c                	je     0x40ec83
40ec67:	85 db                	test   %ebx,%ebx
40ec69:	75 07                	jne    0x40ec72
40ec6b:	c7 46 34 1c af 42 00 	movl   $0x42af1c,0x34(%esi)
40ec72:	57                   	push   %edi
40ec73:	ff 76 34             	push   0x34(%esi)
40ec76:	c6 46 3c 01          	movb   $0x1,0x3c(%esi)
40ec7a:	e8 40 62 00 00       	call   0x414ebf
40ec7f:	59                   	pop    %ecx
40ec80:	59                   	pop    %ecx
40ec81:	eb 15                	jmp    0x40ec98
40ec83:	85 db                	test   %ebx,%ebx
40ec85:	75 07                	jne    0x40ec8e
40ec87:	c7 46 34 14 af 42 00 	movl   $0x42af14,0x34(%esi)
40ec8e:	6a 00                	push   $0x0
40ec90:	57                   	push   %edi
40ec91:	8b ce                	mov    %esi,%ecx
40ec93:	e8 09 00 00 00       	call   0x40eca1
40ec98:	5f                   	pop    %edi
40ec99:	89 46 38             	mov    %eax,0x38(%esi)
40ec9c:	b0 01                	mov    $0x1,%al
40ec9e:	5e                   	pop    %esi
40ec9f:	5b                   	pop    %ebx
40eca0:	c3                   	ret
40eca1:	8b ff                	mov    %edi,%edi
40eca3:	55                   	push   %ebp
40eca4:	8b ec                	mov    %esp,%ebp
40eca6:	56                   	push   %esi
40eca7:	57                   	push   %edi
40eca8:	8b f9                	mov    %ecx,%edi
40ecaa:	33 f6                	xor    %esi,%esi
40ecac:	8b 57 34             	mov    0x34(%edi),%edx
40ecaf:	39 75 08             	cmp    %esi,0x8(%ebp)
40ecb2:	7e 25                	jle    0x40ecd9
40ecb4:	53                   	push   %ebx
40ecb5:	8a 02                	mov    (%edx),%al
40ecb7:	84 c0                	test   %al,%al
40ecb9:	74 1d                	je     0x40ecd8
40ecbb:	0f b6 c8             	movzbl %al,%ecx
40ecbe:	bb 00 80 00 00       	mov    $0x8000,%ebx
40ecc3:	8b 47 08             	mov    0x8(%edi),%eax
40ecc6:	8b 00                	mov    (%eax),%eax
40ecc8:	8b 00                	mov    (%eax),%eax
40ecca:	66 85 1c 48          	test   %bx,(%eax,%ecx,2)
40ecce:	74 01                	je     0x40ecd1
40ecd0:	42                   	inc    %edx
40ecd1:	42                   	inc    %edx
40ecd2:	46                   	inc    %esi
40ecd3:	3b 75 08             	cmp    0x8(%ebp),%esi
40ecd6:	7c dd                	jl     0x40ecb5
40ecd8:	5b                   	pop    %ebx
40ecd9:	5f                   	pop    %edi
40ecda:	8b c6                	mov    %esi,%eax
40ecdc:	5e                   	pop    %esi
40ecdd:	5d                   	pop    %ebp
40ecde:	c2 08 00             	ret    $0x8
40ece1:	8b 01                	mov    (%ecx),%eax
40ece3:	85 c0                	test   %eax,%eax
40ece5:	75 13                	jne    0x40ecfa
40ece7:	e8 7f 5d 00 00       	call   0x414a6b
40ecec:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
40ecf2:	e8 eb cf ff ff       	call   0x40bce2
40ecf7:	32 c0                	xor    %al,%al
40ecf9:	c3                   	ret
40ecfa:	50                   	push   %eax
40ecfb:	e8 38 00 00 00       	call   0x40ed38
40ed00:	59                   	pop    %ecx
40ed01:	c3                   	ret
40ed02:	83 39 00             	cmpl   $0x0,(%ecx)
40ed05:	75 13                	jne    0x40ed1a
40ed07:	e8 5f 5d 00 00       	call   0x414a6b
40ed0c:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
40ed12:	e8 cb cf ff ff       	call   0x40bce2
40ed17:	32 c0                	xor    %al,%al
40ed19:	c3                   	ret
40ed1a:	b0 01                	mov    $0x1,%al
40ed1c:	c3                   	ret
40ed1d:	83 39 00             	cmpl   $0x0,(%ecx)
40ed20:	75 13                	jne    0x40ed35
40ed22:	e8 44 5d 00 00       	call   0x414a6b
40ed27:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
40ed2d:	e8 b0 cf ff ff       	call   0x40bce2
40ed32:	32 c0                	xor    %al,%al
40ed34:	c3                   	ret
40ed35:	b0 01                	mov    $0x1,%al
40ed37:	c3                   	ret
40ed38:	8b ff                	mov    %edi,%edi
40ed3a:	55                   	push   %ebp
40ed3b:	8b ec                	mov    %esp,%ebp
40ed3d:	8b 4d 08             	mov    0x8(%ebp),%ecx
40ed40:	56                   	push   %esi
40ed41:	8b 41 0c             	mov    0xc(%ecx),%eax
40ed44:	c1 e8 0c             	shr    $0xc,%eax
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