40c9e0:	e8 e5 dd ff ff       	call   0x40a7ca
40c9e5:	68 00 04 00 00       	push   $0x400
40c9ea:	57                   	push   %edi
40c9eb:	8d 45 0c             	lea    0xc(%ebp),%eax
40c9ee:	50                   	push   %eax
40c9ef:	8d 4d e8             	lea    -0x18(%ebp),%ecx
40c9f2:	e8 e5 fc ff ff       	call   0x40c6dc
40c9f7:	ff 75 0c             	push   0xc(%ebp)
40c9fa:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
40ca01:	ff 75 08             	push   0x8(%ebp)
40ca04:	e8 2a 48 04 00       	call   0x451233
40ca09:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40ca0c:	83 c1 f0             	add    $0xfffffff0,%ecx
40ca0f:	e8 3e 49 ff ff       	call   0x401352
40ca14:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40ca17:	5f                   	pop    %edi
40ca18:	5b                   	pop    %ebx
40ca19:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40ca20:	c9                   	leave
40ca21:	c2 0c 00             	ret    $0xc
40ca24:	b8 54 32 48 00       	mov    $0x483254,%eax
40ca29:	e8 4e b2 00 00       	call   0x417c7c
40ca2e:	51                   	push   %ecx
40ca2f:	56                   	push   %esi
40ca30:	8b f1                	mov    %ecx,%esi
40ca32:	57                   	push   %edi
40ca33:	89 75 f0             	mov    %esi,-0x10(%ebp)
40ca36:	e8 7b 35 03 00       	call   0x43ffb6
40ca3b:	8d 7e 0c             	lea    0xc(%esi),%edi
40ca3e:	8b cf                	mov    %edi,%ecx
40ca40:	c7 06 bc be 48 00    	movl   $0x48bebc,(%esi)
40ca46:	e8 69 46 ff ff       	call   0x4010b4
40ca4b:	8b 45 08             	mov    0x8(%ebp),%eax
40ca4e:	ff 75 0c             	push   0xc(%ebp)
40ca51:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40ca55:	8b cf                	mov    %edi,%ecx
40ca57:	89 46 08             	mov    %eax,0x8(%esi)
40ca5a:	e8 22 47 ff ff       	call   0x401181
40ca5f:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40ca62:	5f                   	pop    %edi
40ca63:	8b c6                	mov    %esi,%eax
40ca65:	5e                   	pop    %esi
40ca66:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40ca6d:	c9                   	leave
40ca6e:	c2 08 00             	ret    $0x8
40ca71:	56                   	push   %esi
40ca72:	8b f1                	mov    %ecx,%esi
40ca74:	e8 14 00 00 00       	call   0x40ca8d
40ca79:	f6 44 24 08 01       	testb  $0x1,0x8(%esp)
40ca7e:	74 07                	je     0x40ca87
40ca80:	56                   	push   %esi
40ca81:	e8 fa 35 03 00       	call   0x440080
40ca86:	59                   	pop    %ecx
40ca87:	8b c6                	mov    %esi,%eax
40ca89:	5e                   	pop    %esi
40ca8a:	c2 04 00             	ret    $0x4
40ca8d:	c7 01 bc be 48 00    	movl   $0x48bebc,(%ecx)
40ca93:	8b 49 0c             	mov    0xc(%ecx),%ecx
40ca96:	83 e9 10             	sub    $0x10,%ecx
40ca99:	e9 b4 48 ff ff       	jmp    0x401352
40ca9e:	ff 71 1c             	push   0x1c(%ecx)
40caa1:	ff 15 44 06 4b 00    	call   *0x4b0644
40caa7:	50                   	push   %eax
40caa8:	e8 f5 81 03 00       	call   0x444ca2
40caad:	c3                   	ret
40caae:	ff 74 24 08          	push   0x8(%esp)
40cab2:	ff 74 24 08          	push   0x8(%esp)
40cab6:	ff 15 40 06 4b 00    	call   *0x4b0640
40cabc:	50                   	push   %eax
40cabd:	e8 e0 81 03 00       	call   0x444ca2
40cac2:	c2 08 00             	ret    $0x8
40cac5:	ff 74 24 08          	push   0x8(%esp)
40cac9:	ff 74 24 08          	push   0x8(%esp)
40cacd:	ff 71 04             	push   0x4(%ecx)
40cad0:	ff 15 30 06 4b 00    	call   *0x4b0630
40cad6:	c2 08 00             	ret    $0x8
40cad9:	ff 74 24 10          	push   0x10(%esp)
40cadd:	ff 74 24 10          	push   0x10(%esp)
40cae1:	ff 74 24 10          	push   0x10(%esp)
40cae5:	ff 74 24 10          	push   0x10(%esp)
40cae9:	ff 71 04             	push   0x4(%ecx)
40caec:	ff 15 70 08 4b 00    	call   *0x4b0870
40caf2:	c2 10 00             	ret    $0x10
40caf5:	8b 41 0c             	mov    0xc(%ecx),%eax
40caf8:	c3                   	ret
40caf9:	8b 41 04             	mov    0x4(%ecx),%eax
40cafc:	83 c0 08             	add    $0x8,%eax
40caff:	c3                   	ret
40cb00:	8b 4c 24 04          	mov    0x4(%esp),%ecx
40cb04:	8b 01                	mov    (%ecx),%eax
40cb06:	85 c0                	test   %eax,%eax
40cb08:	75 05                	jne    0x40cb0f
40cb0a:	e8 3c 89 02 00       	call   0x43544b
40cb0f:	8b 10                	mov    (%eax),%edx
40cb11:	89 11                	mov    %edx,(%ecx)
40cb13:	83 c0 08             	add    $0x8,%eax
40cb16:	c2 04 00             	ret    $0x4
40cb19:	6a 00                	push   $0x0
40cb1b:	6a 00                	push   $0x0
40cb1d:	68 8b 01 00 00       	push   $0x18b
40cb22:	ff 71 1c             	push   0x1c(%ecx)
40cb25:	ff 15 98 08 4b 00    	call   *0x4b0898
40cb2b:	c3                   	ret
40cb2c:	6a 00                	push   $0x0
40cb2e:	6a 00                	push   $0x0
40cb30:	68 88 01 00 00       	push   $0x188
40cb35:	ff 71 1c             	push   0x1c(%ecx)
40cb38:	ff 15 98 08 4b 00    	call   *0x4b0898
40cb3e:	c3                   	ret
40cb3f:	6a 00                	push   $0x0
40cb41:	ff 74 24 08          	push   0x8(%esp)
40cb45:	68 86 01 00 00       	push   $0x186
40cb4a:	ff 71 1c             	push   0x1c(%ecx)
40cb4d:	ff 15 98 08 4b 00    	call   *0x4b0898
40cb53:	c2 04 00             	ret    $0x4
40cb56:	ff 74 24 08          	push   0x8(%esp)
40cb5a:	ff 74 24 08          	push   0x8(%esp)
40cb5e:	68 9a 01 00 00       	push   $0x19a
40cb63:	ff 71 1c             	push   0x1c(%ecx)
40cb66:	ff 15 98 08 4b 00    	call   *0x4b0898
40cb6c:	c2 08 00             	ret    $0x8
40cb6f:	6a 00                	push   $0x0
40cb71:	ff 74 24 08          	push   0x8(%esp)
40cb75:	68 99 01 00 00       	push   $0x199
40cb7a:	ff 71 1c             	push   0x1c(%ecx)
40cb7d:	ff 15 98 08 4b 00    	call   *0x4b0898
40cb83:	c2 04 00             	ret    $0x4
40cb86:	e9 cb ff ff ff       	jmp    0x40cb56
40cb8b:	ff 74 24 04          	push   0x4(%esp)
40cb8f:	6a 00                	push   $0x0
40cb91:	68 80 01 00 00       	push   $0x180
40cb96:	ff 71 1c             	push   0x1c(%ecx)
40cb99:	ff 15 98 08 4b 00    	call   *0x4b0898
40cb9f:	c2 04 00             	ret    $0x4
40cba2:	6a 00                	push   $0x0
40cba4:	6a 00                	push   $0x0
40cba6:	68 84 01 00 00       	push   $0x184
40cbab:	ff 71 1c             	push   0x1c(%ecx)
40cbae:	ff 15 98 08 4b 00    	call   *0x4b0898
40cbb4:	c3                   	ret
40cbb5:	83 c1 38             	add    $0x38,%ecx
40cbb8:	e9 09 1c 03 00       	jmp    0x43e7c6
40cbbd:	56                   	push   %esi
40cbbe:	8b f1                	mov    %ecx,%esi
40cbc0:	e8 14 00 00 00       	call   0x40cbd9
40cbc5:	f6 44 24 08 01       	testb  $0x1,0x8(%esp)
40cbca:	74 07                	je     0x40cbd3
40cbcc:	56                   	push   %esi
40cbcd:	e8 ae 34 03 00       	call   0x440080
40cbd2:	59                   	pop    %ecx
40cbd3:	8b c6                	mov    %esi,%eax
40cbd5:	5e                   	pop    %esi
40cbd6:	c2 04 00             	ret    $0x4
40cbd9:	b8 19 35 48 00       	mov    $0x483519,%eax
40cbde:	e8 99 b0 00 00       	call   0x417c7c
40cbe3:	51                   	push   %ecx
40cbe4:	56                   	push   %esi
40cbe5:	8b f1                	mov    %ecx,%esi
40cbe7:	89 75 f0             	mov    %esi,-0x10(%ebp)
40cbea:	c7 06 7c c2 48 00    	movl   $0x48c27c,(%esi)
40cbf0:	c7 45 fc 02 00 00 00 	movl   $0x2,-0x4(%ebp)
40cbf7:	e8 5d d2 03 00       	call   0x449e59
40cbfc:	8d 4e 38             	lea    0x38(%esi),%ecx
40cbff:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
40cc03:	e8 07 1d 03 00       	call   0x43e90f
40cc08:	8d 4e 1c             	lea    0x1c(%esi),%ecx
40cc0b:	c6 45 fc 00          	movb   $0x0,-0x4(%ebp)
40cc0f:	e8 fb 1c 03 00       	call   0x43e90f
40cc14:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
40cc18:	8d 4e 04             	lea    0x4(%esi),%ecx
40cc1b:	e8 f1 84 00 00       	call   0x415111
40cc20:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40cc23:	5e                   	pop    %esi
40cc24:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40cc2b:	c9                   	leave
40cc2c:	c3                   	ret
40cc2d:	55                   	push   %ebp
40cc2e:	8b ec                	mov    %esp,%ebp
40cc30:	8b 4d 08             	mov    0x8(%ebp),%ecx
40cc33:	8b 01                	mov    (%ecx),%eax
40cc35:	53                   	push   %ebx
40cc36:	57                   	push   %edi
40cc37:	ff 50 3c             	call   *0x3c(%eax)
40cc3a:	8b 4d 10             	mov    0x10(%ebp),%ecx
40cc3d:	8b d0                	mov    %eax,%edx
40cc3f:	33 c0                	xor    %eax,%eax
40cc41:	39 01                	cmp    %eax,(%ecx)
40cc43:	0f 95 c0             	setne  %al
40cc46:	89 45 08             	mov    %eax,0x8(%ebp)
40cc49:	eb 4b                	jmp    0x40cc96
40cc4b:	8b 42 04             	mov    0x4(%edx),%eax
40cc4e:	8b 48 18             	mov    0x18(%eax),%ecx
40cc51:	83 f9 ff             	cmp    $0xffffffff,%ecx
40cc54:	74 3e                	je     0x40cc94
40cc56:	8b 7d 10             	mov    0x10(%ebp),%edi
40cc59:	8b 7f 04             	mov    0x4(%edi),%edi
40cc5c:	39 78 04             	cmp    %edi,0x4(%eax)
40cc5f:	75 28                	jne    0x40cc89
40cc61:	3b 4d 08             	cmp    0x8(%ebp),%ecx
40cc64:	75 23                	jne    0x40cc89
40cc66:	8b 48 24             	mov    0x24(%eax),%ecx
40cc69:	83 f9 ff             	cmp    $0xffffffff,%ecx
40cc6c:	75 0f                	jne    0x40cc7d
40cc6e:	8b 48 20             	mov    0x20(%eax),%ecx
40cc71:	83 f9 ff             	cmp    $0xffffffff,%ecx
40cc74:	74 26                	je     0x40cc9c
40cc76:	3b 4d 0c             	cmp    0xc(%ebp),%ecx
40cc79:	74 21                	je     0x40cc9c
40cc7b:	eb 0c                	jmp    0x40cc89
40cc7d:	8b 5d 0c             	mov    0xc(%ebp),%ebx
40cc80:	39 58 20             	cmp    %ebx,0x20(%eax)
40cc83:	77 04                	ja     0x40cc89
40cc85:	3b d9                	cmp    %ecx,%ebx
40cc87:	76 13                	jbe    0x40cc9c
40cc89:	8b 48 40             	mov    0x40(%eax),%ecx
40cc8c:	83 c0 28             	add    $0x28,%eax
40cc8f:	83 f9 ff             	cmp    $0xffffffff,%ecx
40cc92:	75 c8                	jne    0x40cc5c
40cc94:	8b 12                	mov    (%edx),%edx
40cc96:	85 d2                	test   %edx,%edx
40cc98:	75 b1                	jne    0x40cc4b
40cc9a:	33 c0                	xor    %eax,%eax
40cc9c:	5f                   	pop    %edi
40cc9d:	5b                   	pop    %ebx
40cc9e:	5d                   	pop    %ebp
40cc9f:	c2 0c 00             	ret    $0xc
40cca2:	b8 35 35 48 00       	mov    $0x483535,%eax
40cca7:	e8 d0 af 00 00       	call   0x417c7c
40ccac:	83 ec 34             	sub    $0x34,%esp
40ccaf:	83 65 ec 00          	andl   $0x0,-0x14(%ebp)
40ccb3:	83 4d e4 ff          	orl    $0xffffffff,-0x1c(%ebp)
40ccb7:	53                   	push   %ebx
40ccb8:	56                   	push   %esi
40ccb9:	57                   	push   %edi
40ccba:	8b 7d 0c             	mov    0xc(%ebp),%edi
40ccbd:	89 65 f0             	mov    %esp,-0x10(%ebp)
40ccc0:	57                   	push   %edi
40ccc1:	ff 75 08             	push   0x8(%ebp)
40ccc4:	8b d9                	mov    %ecx,%ebx
40ccc6:	53                   	push   %ebx
40ccc7:	e8 61 ff ff ff       	call   0x40cc2d
40cccc:	8b f0                	mov    %eax,%esi
40ccce:	33 d2                	xor    %edx,%edx
40ccd0:	3b f2                	cmp    %edx,%esi
40ccd2:	75 07                	jne    0x40ccdb
40ccd4:	33 c0                	xor    %eax,%eax
40ccd6:	e9 b5 01 00 00       	jmp    0x40ce90
40ccdb:	8b 45 10             	mov    0x10(%ebp),%eax
40ccde:	3b c2                	cmp    %edx,%eax
40cce0:	74 2c                	je     0x40cd0e
40cce2:	89 18                	mov    %ebx,(%eax)
40cce4:	8b 3f                	mov    (%edi),%edi
40cce6:	3b fa                	cmp    %edx,%edi
40cce8:	7c 15                	jl     0x40ccff
40ccea:	83 ff 01             	cmp    $0x1,%edi
40cced:	7e 0a                	jle    0x40ccf9
40ccef:	83 ff 02             	cmp    $0x2,%edi
40ccf2:	75 0b                	jne    0x40ccff
40ccf4:	8b 4e 14             	mov    0x14(%esi),%ecx
40ccf7:	eb 03                	jmp    0x40ccfc
40ccf9:	8b 4e 10             	mov    0x10(%esi),%ecx
40ccfc:	89 48 04             	mov    %ecx,0x4(%eax)
40ccff:	33 c9                	xor    %ecx,%ecx
40cd01:	39 50 04             	cmp    %edx,0x4(%eax)
40cd04:	0f 95 c1             	setne  %cl
40cd07:	8b c1                	mov    %ecx,%eax
40cd09:	e9 82 01 00 00       	jmp    0x40ce90
40cd0e:	8b 07                	mov    (%edi),%eax
40cd10:	33 c9                	xor    %ecx,%ecx
40cd12:	83 7e 24 ff          	cmpl   $0xffffffff,0x24(%esi)
40cd16:	89 55 10             	mov    %edx,0x10(%ebp)
40cd19:	0f 95 c1             	setne  %cl
40cd1c:	2b c2                	sub    %edx,%eax
40cd1e:	89 55 fc             	mov    %edx,-0x4(%ebp)
40cd21:	89 4d e8             	mov    %ecx,-0x18(%ebp)
40cd24:	0f 84 80 00 00 00    	je     0x40cdaa
40cd2a:	48                   	dec    %eax
40cd2b:	74 4d                	je     0x40cd7a
40cd2d:	48                   	dec    %eax
40cd2e:	74 2c                	je     0x40cd5c
40cd30:	48                   	dec    %eax
40cd31:	0f 85 50 01 00 00    	jne    0x40ce87
40cd37:	8b 76 10             	mov    0x10(%esi),%esi
40cd3a:	8d 45 ec             	lea    -0x14(%ebp),%eax
40cd3d:	50                   	push   %eax
40cd3e:	ff 77 20             	push   0x20(%edi)
40cd41:	3b ca                	cmp    %edx,%ecx
40cd43:	ff 77 1c             	push   0x1c(%edi)
40cd46:	c7 45 ec 01 00 00 00 	movl   $0x1,-0x14(%ebp)
40cd4d:	8b cb                	mov    %ebx,%ecx
40cd4f:	74 07                	je     0x40cd58
40cd51:	ff 75 08             	push   0x8(%ebp)
40cd54:	ff d6                	call   *%esi
40cd56:	eb 3f                	jmp    0x40cd97
40cd58:	ff d6                	call   *%esi
40cd5a:	eb 3b                	jmp    0x40cd97
40cd5c:	8b 76 14             	mov    0x14(%esi),%esi
40cd5f:	3b ca                	cmp    %edx,%ecx
40cd61:	8b cb                	mov    %ebx,%ecx
40cd63:	74 07                	je     0x40cd6c
40cd65:	ff 75 08             	push   0x8(%ebp)
40cd68:	ff d6                	call   *%esi
40cd6a:	eb 02                	jmp    0x40cd6e
40cd6c:	ff d6                	call   *%esi
40cd6e:	83 65 ec 00          	andl   $0x0,-0x14(%ebp)
40cd72:	89 45 10             	mov    %eax,0x10(%ebp)
40cd75:	e9 0d 01 00 00       	jmp    0x40ce87
40cd7a:	8b 76 10             	mov    0x10(%esi),%esi
40cd7d:	8d 45 ec             	lea    -0x14(%ebp),%eax
40cd80:	3b ca                	cmp    %edx,%ecx
40cd82:	c7 45 ec 01 00 00 00 	movl   $0x1,-0x14(%ebp)
40cd89:	50                   	push   %eax
40cd8a:	8b cb                	mov    %ebx,%ecx
40cd8c:	74 07                	je     0x40cd95
40cd8e:	ff 75 08             	push   0x8(%ebp)
40cd91:	ff d6                	call   *%esi
40cd93:	eb 02                	jmp    0x40cd97
40cd95:	ff d6                	call   *%esi
40cd97:	89 45 10             	mov    %eax,0x10(%ebp)
40cd9a:	33 c0                	xor    %eax,%eax
40cd9c:	39 45 ec             	cmp    %eax,-0x14(%ebp)
40cd9f:	0f 94 c0             	sete   %al
40cda2:	89 45 ec             	mov    %eax,-0x14(%ebp)
40cda5:	e9 c6 00 00 00       	jmp    0x40ce70
40cdaa:	8d 45 c0             	lea    -0x40(%ebp),%eax
40cdad:	50                   	push   %eax
40cdae:	e8 01 d6 ff ff       	call   0x40a3b4
40cdb3:	83 65 d0 00          	andl   $0x0,-0x30(%ebp)
40cdb7:	83 7d e8 00          	cmpl   $0x0,-0x18(%ebp)
40cdbb:	74 57                	je     0x40ce14
40cdbd:	6a 10                	push   $0x10
40cdbf:	ff 77 08             	push   0x8(%edi)
40cdc2:	8d 45 d0             	lea    -0x30(%ebp),%eax
40cdc5:	50                   	push   %eax
40cdc6:	e8 a5 aa 00 00       	call   0x417870
40cdcb:	8b 45 d8             	mov    -0x28(%ebp),%eax
40cdce:	40                   	inc    %eax
40cdcf:	89 45 d8             	mov    %eax,-0x28(%ebp)
40cdd2:	c1 e0 04             	shl    $0x4,%eax
40cdd5:	50                   	push   %eax
40cdd6:	e8 7a 32 03 00       	call   0x440055
40cddb:	8b 4d d8             	mov    -0x28(%ebp),%ecx
40cdde:	83 c4 10             	add    $0x10,%esp
40cde1:	49                   	dec    %ecx
40cde2:	c1 e1 04             	shl    $0x4,%ecx
40cde5:	51                   	push   %ecx
40cde6:	8b 4f 08             	mov    0x8(%edi),%ecx
40cde9:	89 45 d0             	mov    %eax,-0x30(%ebp)
40cdec:	ff 31                	push   (%ecx)
40cdee:	50                   	push   %eax