40c894:	39 45 e0             	cmp    %eax,-0x20(%ebp)
40c897:	74 0e                	je     0x40c8a7
40c899:	89 7d e4             	mov    %edi,-0x1c(%ebp)
40c89c:	89 7d d8             	mov    %edi,-0x28(%ebp)
40c89f:	89 45 e0             	mov    %eax,-0x20(%ebp)
40c8a2:	8b f0                	mov    %eax,%esi
40c8a4:	89 75 dc             	mov    %esi,-0x24(%ebp)
40c8a7:	8b 7d d8             	mov    -0x28(%ebp),%edi
40c8aa:	eb 9f                	jmp    0x40c84b
40c8ac:	68 e4 a1 41 00       	push   $0x41a1e4
40c8b1:	b8 d8 a1 41 00       	mov    $0x41a1d8,%eax
40c8b6:	e8 5f fe ff ff       	call   0x40c71a
40c8bb:	59                   	pop    %ecx
40c8bc:	68 ec a1 41 00       	push   $0x41a1ec
40c8c1:	b8 e8 a1 41 00       	mov    $0x41a1e8,%eax
40c8c6:	e8 4f fe ff ff       	call   0x40c71a
40c8cb:	59                   	pop    %ecx
40c8cc:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
40c8d3:	e8 1f 00 00 00       	call   0x40c8f7
40c8d8:	83 7d 10 00          	cmpl   $0x0,0x10(%ebp)
40c8dc:	75 28                	jne    0x40c906
40c8de:	89 1d bc 09 43 00    	mov    %ebx,0x4309bc
40c8e4:	6a 08                	push   $0x8
40c8e6:	e8 1f cf ff ff       	call   0x40980a
40c8eb:	59                   	pop    %ecx
40c8ec:	ff 75 08             	push   0x8(%ebp)
40c8ef:	e8 fc fd ff ff       	call   0x40c6f0
40c8f4:	33 db                	xor    %ebx,%ebx
40c8f6:	43                   	inc    %ebx
40c8f7:	83 7d 10 00          	cmpl   $0x0,0x10(%ebp)
40c8fb:	74 08                	je     0x40c905
40c8fd:	6a 08                	push   $0x8
40c8ff:	e8 06 cf ff ff       	call   0x40980a
40c904:	59                   	pop    %ecx
40c905:	c3                   	ret
40c906:	e8 16 db ff ff       	call   0x40a421
40c90b:	c3                   	ret
40c90c:	8b ff                	mov    %edi,%edi
40c90e:	55                   	push   %ebp
40c90f:	8b ec                	mov    %esp,%ebp
40c911:	6a 00                	push   $0x0
40c913:	6a 00                	push   $0x0
40c915:	ff 75 08             	push   0x8(%ebp)
40c918:	e8 c3 fe ff ff       	call   0x40c7e0
40c91d:	83 c4 0c             	add    $0xc,%esp
40c920:	5d                   	pop    %ebp
40c921:	c3                   	ret
40c922:	8b ff                	mov    %edi,%edi
40c924:	55                   	push   %ebp
40c925:	8b ec                	mov    %esp,%ebp
40c927:	6a 00                	push   $0x0
40c929:	6a 01                	push   $0x1
40c92b:	ff 75 08             	push   0x8(%ebp)
40c92e:	e8 ad fe ff ff       	call   0x40c7e0
40c933:	83 c4 0c             	add    $0xc,%esp
40c936:	5d                   	pop    %ebp
40c937:	c3                   	ret
40c938:	6a 01                	push   $0x1
40c93a:	6a 00                	push   $0x0
40c93c:	6a 00                	push   $0x0
40c93e:	e8 9d fe ff ff       	call   0x40c7e0
40c943:	83 c4 0c             	add    $0xc,%esp
40c946:	c3                   	ret
40c947:	6a 01                	push   $0x1
40c949:	6a 01                	push   $0x1
40c94b:	6a 00                	push   $0x0
40c94d:	e8 8e fe ff ff       	call   0x40c7e0
40c952:	83 c4 0c             	add    $0xc,%esp
40c955:	c3                   	ret
40c956:	8b ff                	mov    %edi,%edi
40c958:	56                   	push   %esi
40c959:	e8 8e de ff ff       	call   0x40a7ec
40c95e:	8b f0                	mov    %eax,%esi
40c960:	56                   	push   %esi
40c961:	e8 7f fc ff ff       	call   0x40c5e5
40c966:	56                   	push   %esi
40c967:	e8 e1 66 00 00       	call   0x41304d
40c96c:	56                   	push   %esi
40c96d:	e8 7c 87 ff ff       	call   0x4050ee
40c972:	56                   	push   %esi
40c973:	e8 96 0c 00 00       	call   0x40d60e
40c978:	56                   	push   %esi
40c979:	e8 fc 8b 00 00       	call   0x41557a
40c97e:	56                   	push   %esi
40c97f:	e8 99 0c 00 00       	call   0x40d61d
40c984:	56                   	push   %esi
40c985:	e8 e0 f1 ff ff       	call   0x40bb6a
40c98a:	56                   	push   %esi
40c98b:	e8 7f 1c 00 00       	call   0x40e60f
40c990:	68 22 c9 40 00       	push   $0x40c922
40c995:	e8 e0 dd ff ff       	call   0x40a77a
40c99a:	83 c4 24             	add    $0x24,%esp
40c99d:	a3 d0 b6 42 00       	mov    %eax,0x42b6d0
40c9a2:	5e                   	pop    %esi
40c9a3:	c3                   	ret
40c9a4:	8b ff                	mov    %edi,%edi
40c9a6:	55                   	push   %ebp
40c9a7:	8b ec                	mov    %esp,%ebp
40c9a9:	51                   	push   %ecx
40c9aa:	51                   	push   %ecx
40c9ab:	53                   	push   %ebx
40c9ac:	8b 5d 08             	mov    0x8(%ebp),%ebx
40c9af:	56                   	push   %esi
40c9b0:	57                   	push   %edi
40c9b1:	33 f6                	xor    %esi,%esi
40c9b3:	33 ff                	xor    %edi,%edi
40c9b5:	89 7d fc             	mov    %edi,-0x4(%ebp)
40c9b8:	3b 1c fd d8 b6 42 00 	cmp    0x42b6d8(,%edi,8),%ebx
40c9bf:	74 09                	je     0x40c9ca
40c9c1:	47                   	inc    %edi
40c9c2:	89 7d fc             	mov    %edi,-0x4(%ebp)
40c9c5:	83 ff 17             	cmp    $0x17,%edi
40c9c8:	72 ee                	jb     0x40c9b8
40c9ca:	83 ff 17             	cmp    $0x17,%edi
40c9cd:	0f 83 77 01 00 00    	jae    0x40cb4a
40c9d3:	6a 03                	push   $0x3
40c9d5:	e8 18 8d 00 00       	call   0x4156f2
40c9da:	59                   	pop    %ecx
40c9db:	83 f8 01             	cmp    $0x1,%eax
40c9de:	0f 84 34 01 00 00    	je     0x40cb18
40c9e4:	6a 03                	push   $0x3
40c9e6:	e8 07 8d 00 00       	call   0x4156f2
40c9eb:	59                   	pop    %ecx
40c9ec:	85 c0                	test   %eax,%eax
40c9ee:	75 0d                	jne    0x40c9fd
40c9f0:	83 3d e8 b0 42 00 01 	cmpl   $0x1,0x42b0e8
40c9f7:	0f 84 1b 01 00 00    	je     0x40cb18
40c9fd:	81 fb fc 00 00 00    	cmp    $0xfc,%ebx
40ca03:	0f 84 41 01 00 00    	je     0x40cb4a
40ca09:	68 40 cb 41 00       	push   $0x41cb40
40ca0e:	bb 14 03 00 00       	mov    $0x314,%ebx
40ca13:	53                   	push   %ebx
40ca14:	bf c0 09 43 00       	mov    $0x4309c0,%edi
40ca19:	57                   	push   %edi
40ca1a:	e8 98 cb ff ff       	call   0x4095b7
40ca1f:	83 c4 0c             	add    $0xc,%esp
40ca22:	85 c0                	test   %eax,%eax
40ca24:	74 0d                	je     0x40ca33
40ca26:	56                   	push   %esi
40ca27:	56                   	push   %esi
40ca28:	56                   	push   %esi
40ca29:	56                   	push   %esi
40ca2a:	56                   	push   %esi
40ca2b:	e8 cd 86 ff ff       	call   0x4050fd
40ca30:	83 c4 14             	add    $0x14,%esp
40ca33:	68 04 01 00 00       	push   $0x104
40ca38:	be d9 09 43 00       	mov    $0x4309d9,%esi
40ca3d:	56                   	push   %esi
40ca3e:	6a 00                	push   $0x0
40ca40:	c6 05 dd 0a 43 00 00 	movb   $0x0,0x430add
40ca47:	ff 15 20 a1 41 00    	call   *0x41a120
40ca4d:	85 c0                	test   %eax,%eax
40ca4f:	75 26                	jne    0x40ca77
40ca51:	68 28 cb 41 00       	push   $0x41cb28
40ca56:	68 fb 02 00 00       	push   $0x2fb
40ca5b:	56                   	push   %esi
40ca5c:	e8 56 cb ff ff       	call   0x4095b7
40ca61:	83 c4 0c             	add    $0xc,%esp
40ca64:	85 c0                	test   %eax,%eax
40ca66:	74 0f                	je     0x40ca77
40ca68:	33 c0                	xor    %eax,%eax
40ca6a:	50                   	push   %eax
40ca6b:	50                   	push   %eax
40ca6c:	50                   	push   %eax
40ca6d:	50                   	push   %eax
40ca6e:	50                   	push   %eax
40ca6f:	e8 89 86 ff ff       	call   0x4050fd
40ca74:	83 c4 14             	add    $0x14,%esp
40ca77:	56                   	push   %esi
40ca78:	e8 e3 94 ff ff       	call   0x405f60
40ca7d:	40                   	inc    %eax
40ca7e:	59                   	pop    %ecx
40ca7f:	83 f8 3c             	cmp    $0x3c,%eax
40ca82:	76 38                	jbe    0x40cabc
40ca84:	56                   	push   %esi
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