40ca85:	e8 d6 94 ff ff       	call   0x405f60
40ca8a:	83 ee 3b             	sub    $0x3b,%esi
40ca8d:	03 c6                	add    %esi,%eax
40ca8f:	6a 03                	push   $0x3
40ca91:	b9 d4 0c 43 00       	mov    $0x430cd4,%ecx
40ca96:	68 24 cb 41 00       	push   $0x41cb24
40ca9b:	2b c8                	sub    %eax,%ecx
40ca9d:	51                   	push   %ecx
40ca9e:	50                   	push   %eax
40ca9f:	e8 02 30 00 00       	call   0x40faa6
40caa4:	83 c4 14             	add    $0x14,%esp
40caa7:	85 c0                	test   %eax,%eax
40caa9:	74 11                	je     0x40cabc
40caab:	33 f6                	xor    %esi,%esi
40caad:	56                   	push   %esi
40caae:	56                   	push   %esi
40caaf:	56                   	push   %esi
40cab0:	56                   	push   %esi
40cab1:	56                   	push   %esi
40cab2:	e8 46 86 ff ff       	call   0x4050fd
40cab7:	83 c4 14             	add    $0x14,%esp
40caba:	eb 02                	jmp    0x40cabe
40cabc:	33 f6                	xor    %esi,%esi
40cabe:	68 20 cb 41 00       	push   $0x41cb20
40cac3:	53                   	push   %ebx
40cac4:	57                   	push   %edi
40cac5:	e8 17 2f 00 00       	call   0x40f9e1
40caca:	83 c4 0c             	add    $0xc,%esp
40cacd:	85 c0                	test   %eax,%eax
40cacf:	74 0d                	je     0x40cade
40cad1:	56                   	push   %esi
40cad2:	56                   	push   %esi
40cad3:	56                   	push   %esi
40cad4:	56                   	push   %esi
40cad5:	56                   	push   %esi
40cad6:	e8 22 86 ff ff       	call   0x4050fd
40cadb:	83 c4 14             	add    $0x14,%esp
40cade:	8b 45 fc             	mov    -0x4(%ebp),%eax
40cae1:	ff 34 c5 dc b6 42 00 	push   0x42b6dc(,%eax,8)
40cae8:	53                   	push   %ebx
40cae9:	57                   	push   %edi
40caea:	e8 f2 2e 00 00       	call   0x40f9e1
40caef:	83 c4 0c             	add    $0xc,%esp
40caf2:	85 c0                	test   %eax,%eax
40caf4:	74 0d                	je     0x40cb03
40caf6:	56                   	push   %esi
40caf7:	56                   	push   %esi
40caf8:	56                   	push   %esi
40caf9:	56                   	push   %esi
40cafa:	56                   	push   %esi
40cafb:	e8 fd 85 ff ff       	call   0x4050fd
40cb00:	83 c4 14             	add    $0x14,%esp
40cb03:	68 10 20 01 00       	push   $0x12010
40cb08:	68 f8 ca 41 00       	push   $0x41caf8
40cb0d:	57                   	push   %edi
40cb0e:	e8 76 8a 00 00       	call   0x415589
40cb13:	83 c4 0c             	add    $0xc,%esp
40cb16:	eb 32                	jmp    0x40cb4a
40cb18:	6a f4                	push   $0xfffffff4
40cb1a:	ff 15 08 a1 41 00    	call   *0x41a108
40cb20:	8b d8                	mov    %eax,%ebx
40cb22:	3b de                	cmp    %esi,%ebx
40cb24:	74 24                	je     0x40cb4a
40cb26:	83 fb ff             	cmp    $0xffffffff,%ebx
40cb29:	74 1f                	je     0x40cb4a
40cb2b:	6a 00                	push   $0x0
40cb2d:	8d 45 f8             	lea    -0x8(%ebp),%eax
40cb30:	50                   	push   %eax
40cb31:	8d 34 fd dc b6 42 00 	lea    0x42b6dc(,%edi,8),%esi
40cb38:	ff 36                	push   (%esi)
40cb3a:	e8 21 94 ff ff       	call   0x405f60
40cb3f:	59                   	pop    %ecx
40cb40:	50                   	push   %eax
40cb41:	ff 36                	push   (%esi)
40cb43:	53                   	push   %ebx
40cb44:	ff 15 1c a1 41 00    	call   *0x41a11c
40cb4a:	5f                   	pop    %edi
40cb4b:	5e                   	pop    %esi
40cb4c:	5b                   	pop    %ebx
40cb4d:	c9                   	leave
40cb4e:	c3                   	ret
40cb4f:	6a 03                	push   $0x3
40cb51:	e8 9c 8b 00 00       	call   0x4156f2
40cb56:	59                   	pop    %ecx
40cb57:	83 f8 01             	cmp    $0x1,%eax
40cb5a:	74 15                	je     0x40cb71
40cb5c:	6a 03                	push   $0x3
40cb5e:	e8 8f 8b 00 00       	call   0x4156f2
40cb63:	59                   	pop    %ecx
40cb64:	85 c0                	test   %eax,%eax
40cb66:	75 1f                	jne    0x40cb87
40cb68:	83 3d e8 b0 42 00 01 	cmpl   $0x1,0x42b0e8
40cb6f:	75 16                	jne    0x40cb87
40cb71:	68 fc 00 00 00       	push   $0xfc
40cb76:	e8 29 fe ff ff       	call   0x40c9a4
40cb7b:	68 ff 00 00 00       	push   $0xff
40cb80:	e8 1f fe ff ff       	call   0x40c9a4
40cb85:	59                   	pop    %ecx
40cb86:	59                   	pop    %ecx
40cb87:	c3                   	ret
40cb88:	8b ff                	mov    %edi,%edi
40cb8a:	55                   	push   %ebp
40cb8b:	8b ec                	mov    %esp,%ebp
40cb8d:	51                   	push   %ecx
40cb8e:	51                   	push   %ecx
40cb8f:	56                   	push   %esi
40cb90:	e8 33 de ff ff       	call   0x40a9c8
40cb95:	8b f0                	mov    %eax,%esi
40cb97:	85 f6                	test   %esi,%esi
40cb99:	0f 84 46 01 00 00    	je     0x40cce5
40cb9f:	8b 56 5c             	mov    0x5c(%esi),%edx
40cba2:	a1 9c b7 42 00       	mov    0x42b79c,%eax
40cba7:	57                   	push   %edi
40cba8:	8b 7d 08             	mov    0x8(%ebp),%edi
40cbab:	8b ca                	mov    %edx,%ecx
40cbad:	53                   	push   %ebx
40cbae:	39 39                	cmp    %edi,(%ecx)
40cbb0:	74 0e                	je     0x40cbc0
40cbb2:	8b d8                	mov    %eax,%ebx
40cbb4:	6b db 0c             	imul   $0xc,%ebx,%ebx
40cbb7:	83 c1 0c             	add    $0xc,%ecx
40cbba:	03 da                	add    %edx,%ebx
40cbbc:	3b cb                	cmp    %ebx,%ecx
40cbbe:	72 ee                	jb     0x40cbae
40cbc0:	6b c0 0c             	imul   $0xc,%eax,%eax
40cbc3:	03 c2                	add    %edx,%eax
40cbc5:	3b c8                	cmp    %eax,%ecx
40cbc7:	73 08                	jae    0x40cbd1
40cbc9:	39 39                	cmp    %edi,(%ecx)
40cbcb:	75 04                	jne    0x40cbd1
40cbcd:	8b c1                	mov    %ecx,%eax
40cbcf:	eb 02                	jmp    0x40cbd3
40cbd1:	33 c0                	xor    %eax,%eax
40cbd3:	85 c0                	test   %eax,%eax
40cbd5:	74 0a                	je     0x40cbe1
40cbd7:	8b 58 08             	mov    0x8(%eax),%ebx
40cbda:	89 5d fc             	mov    %ebx,-0x4(%ebp)
40cbdd:	85 db                	test   %ebx,%ebx
40cbdf:	75 07                	jne    0x40cbe8
40cbe1:	33 c0                	xor    %eax,%eax
40cbe3:	e9 fb 00 00 00       	jmp    0x40cce3
40cbe8:	83 fb 05             	cmp    $0x5,%ebx
40cbeb:	75 0c                	jne    0x40cbf9
40cbed:	83 60 08 00          	andl   $0x0,0x8(%eax)
40cbf1:	33 c0                	xor    %eax,%eax
40cbf3:	40                   	inc    %eax
40cbf4:	e9 ea 00 00 00       	jmp    0x40cce3
40cbf9:	83 fb 01             	cmp    $0x1,%ebx
40cbfc:	0f 84 de 00 00 00    	je     0x40cce0
40cc02:	8b 4e 60             	mov    0x60(%esi),%ecx
40cc05:	89 4d f8             	mov    %ecx,-0x8(%ebp)
40cc08:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40cc0b:	89 4e 60             	mov    %ecx,0x60(%esi)
40cc0e:	8b 48 04             	mov    0x4(%eax),%ecx
40cc11:	83 f9 08             	cmp    $0x8,%ecx
40cc14:	0f 85 b8 00 00 00    	jne    0x40ccd2
40cc1a:	8b 0d 90 b7 42 00    	mov    0x42b790,%ecx
40cc20:	8b 3d 94 b7 42 00    	mov    0x42b794,%edi
40cc26:	8b d1                	mov    %ecx,%edx
40cc28:	03 f9                	add    %ecx,%edi
40cc2a:	3b d7                	cmp    %edi,%edx
40cc2c:	7d 24                	jge    0x40cc52
40cc2e:	6b c9 0c             	imul   $0xc,%ecx,%ecx
40cc31:	8b 7e 5c             	mov    0x5c(%esi),%edi
40cc34:	83 64 39 08 00       	andl   $0x0,0x8(%ecx,%edi,1)
40cc39:	8b 3d 90 b7 42 00    	mov    0x42b790,%edi
40cc3f:	8b 1d 94 b7 42 00    	mov    0x42b794,%ebx
40cc45:	42                   	inc    %edx
40cc46:	03 df                	add    %edi,%ebx
40cc48:	83 c1 0c             	add    $0xc,%ecx
40cc4b:	3b d3                	cmp    %ebx,%edx
40cc4d:	7c e2                	jl     0x40cc31
40cc4f:	8b 5d fc             	mov    -0x4(%ebp),%ebx
40cc52:	8b 00                	mov    (%eax),%eax
40cc54:	8b 7e 64             	mov    0x64(%esi),%edi
40cc57:	3d 8e 00 00 c0       	cmp    $0xc000008e,%eax
40cc5c:	75 09                	jne    0x40cc67
40cc5e:	c7 46 64 83 00 00 00 	movl   $0x83,0x64(%esi)
40cc65:	eb 5e                	jmp    0x40ccc5
40cc67:	3d 90 00 00 c0       	cmp    $0xc0000090,%eax
40cc6c:	75 09                	jne    0x40cc77
40cc6e:	c7 46 64 81 00 00 00 	movl   $0x81,0x64(%esi)
40cc75:	eb 4e                	jmp    0x40ccc5
40cc77:	3d 91 00 00 c0       	cmp    $0xc0000091,%eax
40cc7c:	75 09                	jne    0x40cc87
40cc7e:	c7 46 64 84 00 00 00 	movl   $0x84,0x64(%esi)
40cc85:	eb 3e                	jmp    0x40ccc5
40cc87:	3d 93 00 00 c0       	cmp    $0xc0000093,%eax
40cc8c:	75 09                	jne    0x40cc97
40cc8e:	c7 46 64 85 00 00 00 	movl   $0x85,0x64(%esi)
40cc95:	eb 2e                	jmp    0x40ccc5
40cc97:	3d 8d 00 00 c0       	cmp    $0xc000008d,%eax
40cc9c:	75 09                	jne    0x40cca7
40cc9e:	c7 46 64 82 00 00 00 	movl   $0x82,0x64(%esi)
40cca5:	eb 1e                	jmp    0x40ccc5
40cca7:	3d 8f 00 00 c0       	cmp    $0xc000008f,%eax
40ccac:	75 09                	jne    0x40ccb7
40ccae:	c7 46 64 86 00 00 00 	movl   $0x86,0x64(%esi)
40ccb5:	eb 0e                	jmp    0x40ccc5
40ccb7:	3d 92 00 00 c0       	cmp    $0xc0000092,%eax
40ccbc:	75 07                	jne    0x40ccc5
40ccbe:	c7 46 64 8a 00 00 00 	movl   $0x8a,0x64(%esi)
40ccc5:	ff 76 64             	push   0x64(%esi)
40ccc8:	6a 08                	push   $0x8
40ccca:	ff d3                	call   *%ebx
40cccc:	59                   	pop    %ecx
40cccd:	89 7e 64             	mov    %edi,0x64(%esi)
40ccd0:	eb 07                	jmp    0x40ccd9
40ccd2:	83 60 08 00          	andl   $0x0,0x8(%eax)
40ccd6:	51                   	push   %ecx
40ccd7:	ff d3                	call   *%ebx
40ccd9:	8b 45 f8             	mov    -0x8(%ebp),%eax
40ccdc:	59                   	pop    %ecx
40ccdd:	89 46 60             	mov    %eax,0x60(%esi)
40cce0:	83 c8 ff             	or     $0xffffffff,%eax
40cce3:	5b                   	pop    %ebx
40cce4:	5f                   	pop    %edi
40cce5:	5e                   	pop    %esi
40cce6:	c9                   	leave
40cce7:	c3                   	ret
40cce8:	8b ff                	mov    %edi,%edi
40ccea:	56                   	push   %esi
40cceb:	57                   	push   %edi
40ccec:	33 ff                	xor    %edi,%edi
40ccee:	39 3d 3c 12 c7 00    	cmp    %edi,0xc7123c
40ccf4:	75 05                	jne    0x40ccfb
40ccf6:	e8 c8 2c 00 00       	call   0x40f9c3
40ccfb:	8b 35 a4 23 c7 00    	mov    0xc723a4,%esi
40cd01:	85 f6                	test   %esi,%esi
40cd03:	75 05                	jne    0x40cd0a
40cd05:	be 26 a2 41 00       	mov    $0x41a226,%esi
40cd0a:	8a 06                	mov    (%esi),%al
40cd0c:	3c 20                	cmp    $0x20,%al
40cd0e:	77 08                	ja     0x40cd18
40cd10:	84 c0                	test   %al,%al
40cd12:	74 2e                	je     0x40cd42
40cd14:	85 ff                	test   %edi,%edi
40cd16:	74 24                	je     0x40cd3c
40cd18:	3c 22                	cmp    $0x22,%al
40cd1a:	75 09                	jne    0x40cd25
40cd1c:	33 c9                	xor    %ecx,%ecx
40cd1e:	85 ff                	test   %edi,%edi
40cd20:	0f 94 c1             	sete   %cl
40cd23:	8b f9                	mov    %ecx,%edi
40cd25:	0f b6 c0             	movzbl %al,%eax
40cd28:	50                   	push   %eax
40cd29:	e8 62 8a 00 00       	call   0x415790
40cd2e:	59                   	pop    %ecx
40cd2f:	85 c0                	test   %eax,%eax
40cd31:	74 01                	je     0x40cd34
40cd33:	46                   	inc    %esi
40cd34:	46                   	inc    %esi
40cd35:	eb d3                	jmp    0x40cd0a
40cd37:	3c 20                	cmp    $0x20,%al
40cd39:	77 07                	ja     0x40cd42
40cd3b:	46                   	inc    %esi
40cd3c:	8a 06                	mov    (%esi),%al
40cd3e:	84 c0                	test   %al,%al
40cd40:	75 f5                	jne    0x40cd37
40cd42:	5f                   	pop    %edi
40cd43:	8b c6                	mov    %esi,%eax
40cd45:	5e                   	pop    %esi
40cd46:	c3                   	ret
40cd47:	83 3d 3c 12 c7 00 00 	cmpl   $0x0,0xc7123c
40cd4e:	75 05                	jne    0x40cd55
40cd50:	e8 6e 2c 00 00       	call   0x40f9c3
40cd55:	56                   	push   %esi
40cd56:	8b 35 f0 07 43 00    	mov    0x4307f0,%esi
40cd5c:	57                   	push   %edi
40cd5d:	33 ff                	xor    %edi,%edi
40cd5f:	85 f6                	test   %esi,%esi
40cd61:	75 18                	jne    0x40cd7b
40cd63:	83 c8 ff             	or     $0xffffffff,%eax
40cd66:	e9 a0 00 00 00       	jmp    0x40ce0b
40cd6b:	3c 3d                	cmp    $0x3d,%al
40cd6d:	74 01                	je     0x40cd70
40cd6f:	47                   	inc    %edi
40cd70:	56                   	push   %esi
40cd71:	e8 ea 91 ff ff       	call   0x405f60
40cd76:	59                   	pop    %ecx
40cd77:	8d 74 06 01          	lea    0x1(%esi,%eax,1),%esi
40cd7b:	8a 06                	mov    (%esi),%al
40cd7d:	84 c0                	test   %al,%al
40cd7f:	75 ea                	jne    0x40cd6b
40cd81:	6a 04                	push   $0x4
40cd83:	47                   	inc    %edi
40cd84:	57                   	push   %edi
40cd85:	e8 1b ae ff ff       	call   0x407ba5
40cd8a:	8b f8                	mov    %eax,%edi
40cd8c:	59                   	pop    %ecx
40cd8d:	59                   	pop    %ecx
40cd8e:	89 3d 9c 09 43 00    	mov    %edi,0x43099c
40cd94:	85 ff                	test   %edi,%edi
40cd96:	74 cb                	je     0x40cd63
40cd98:	8b 35 f0 07 43 00    	mov    0x4307f0,%esi
40cd9e:	53                   	push   %ebx
40cd9f:	eb 42                	jmp    0x40cde3
40cda1:	56                   	push   %esi
40cda2:	e8 b9 91 ff ff       	call   0x405f60
40cda7:	8b d8                	mov    %eax,%ebx
40cda9:	43                   	inc    %ebx
40cdaa:	80 3e 3d             	cmpb   $0x3d,(%esi)
40cdad:	59                   	pop    %ecx
40cdae:	74 31                	je     0x40cde1
40cdb0:	6a 01                	push   $0x1
40cdb2:	53                   	push   %ebx
40cdb3:	e8 ed ad ff ff       	call   0x407ba5
40cdb8:	59                   	pop    %ecx
40cdb9:	59                   	pop    %ecx
40cdba:	89 07                	mov    %eax,(%edi)
40cdbc:	85 c0                	test   %eax,%eax
40cdbe:	74 4e                	je     0x40ce0e
40cdc0:	56                   	push   %esi
40cdc1:	53                   	push   %ebx
40cdc2:	50                   	push   %eax
40cdc3:	e8 ef c7 ff ff       	call   0x4095b7
40cdc8:	83 c4 0c             	add    $0xc,%esp
40cdcb:	85 c0                	test   %eax,%eax
40cdcd:	74 0f                	je     0x40cdde
40cdcf:	33 c0                	xor    %eax,%eax
40cdd1:	50                   	push   %eax
40cdd2:	50                   	push   %eax
40cdd3:	50                   	push   %eax
40cdd4:	50                   	push   %eax
40cdd5:	50                   	push   %eax
40cdd6:	e8 22 83 ff ff       	call   0x4050fd
40cddb:	83 c4 14             	add    $0x14,%esp
40cdde:	83 c7 04             	add    $0x4,%edi
40cde1:	03 f3                	add    %ebx,%esi
40cde3:	80 3e 00             	cmpb   $0x0,(%esi)
40cde6:	75 b9                	jne    0x40cda1
40cde8:	ff 35 f0 07 43 00    	push   0x4307f0
40cdee:	e8 2d 82 ff ff       	call   0x405020
40cdf3:	83 25 f0 07 43 00 00 	andl   $0x0,0x4307f0
40cdfa:	83 27 00             	andl   $0x0,(%edi)
40cdfd:	c7 05 30 12 c7 00 01 	movl   $0x1,0xc71230
40ce04:	00 00 00
40ce07:	33 c0                	xor    %eax,%eax
40ce09:	59                   	pop    %ecx
40ce0a:	5b                   	pop    %ebx
40ce0b:	5f                   	pop    %edi
40ce0c:	5e                   	pop    %esi
40ce0d:	c3                   	ret
40ce0e:	ff 35 9c 09 43 00    	push   0x43099c
40ce14:	e8 07 82 ff ff       	call   0x405020
40ce19:	83 25 9c 09 43 00 00 	andl   $0x0,0x43099c
40ce20:	83 c8 ff             	or     $0xffffffff,%eax
40ce23:	eb e4                	jmp    0x40ce09
40ce25:	8b ff                	mov    %edi,%edi
40ce27:	55                   	push   %ebp