40ca28:	8b f0                	mov    %eax,%esi
40ca2a:	85 f6                	test   %esi,%esi
40ca2c:	78 5e                	js     0x40ca8c
40ca2e:	57                   	push   %edi
40ca2f:	68 64 ca 44 00       	push   $0x44ca64
40ca34:	ff 75 fc             	push   -0x4(%ebp)
40ca37:	e8 8b 67 03 00       	call   0x4431c7
40ca3c:	8b f0                	mov    %eax,%esi
40ca3e:	85 f6                	test   %esi,%esi
40ca40:	78 43                	js     0x40ca85
40ca42:	8d 47 04             	lea    0x4(%edi),%eax
40ca45:	50                   	push   %eax
40ca46:	68 48 f9 44 00       	push   $0x44f948
40ca4b:	ff 75 fc             	push   -0x4(%ebp)
40ca4e:	e8 74 67 03 00       	call   0x4431c7
40ca53:	8b f0                	mov    %eax,%esi
40ca55:	85 f6                	test   %esi,%esi
40ca57:	78 25                	js     0x40ca7e
40ca59:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40ca5c:	85 c9                	test   %ecx,%ecx
40ca5e:	74 0a                	je     0x40ca6a
40ca60:	8b 01                	mov    (%ecx),%eax
40ca62:	51                   	push   %ecx
40ca63:	ff 50 08             	call   *0x8(%eax)
40ca66:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40ca6a:	8b 45 0c             	mov    0xc(%ebp),%eax
40ca6d:	43                   	inc    %ebx
40ca6e:	8b 4d 08             	mov    0x8(%ebp),%ecx
40ca71:	83 c0 10             	add    $0x10,%eax
40ca74:	89 45 0c             	mov    %eax,0xc(%ebp)
40ca77:	3b 5d f8             	cmp    -0x8(%ebp),%ebx
40ca7a:	72 96                	jb     0x40ca12
40ca7c:	eb 1b                	jmp    0x40ca99
40ca7e:	68 58 f9 44 00       	push   $0x44f958
40ca83:	eb 0c                	jmp    0x40ca91
40ca85:	68 6c ca 44 00       	push   $0x44ca6c
40ca8a:	eb 05                	jmp    0x40ca91
40ca8c:	68 48 ca 44 00       	push   $0x44ca48
40ca91:	56                   	push   %esi
40ca92:	e8 98 36 03 00       	call   0x44012f
40ca97:	59                   	pop    %ecx
40ca98:	59                   	pop    %ecx
40ca99:	5b                   	pop    %ebx
40ca9a:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40ca9d:	85 c9                	test   %ecx,%ecx
40ca9f:	74 06                	je     0x40caa7
40caa1:	8b 01                	mov    (%ecx),%eax
40caa3:	51                   	push   %ecx
40caa4:	ff 50 08             	call   *0x8(%eax)
40caa7:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40caaa:	85 c9                	test   %ecx,%ecx
40caac:	74 06                	je     0x40cab4
40caae:	8b 01                	mov    (%ecx),%eax
40cab0:	51                   	push   %ecx
40cab1:	ff 50 08             	call   *0x8(%eax)
40cab4:	5f                   	pop    %edi
40cab5:	8b c6                	mov    %esi,%eax
40cab7:	5e                   	pop    %esi
40cab8:	8b e5                	mov    %ebp,%esp
40caba:	5d                   	pop    %ebp
40cabb:	c2 08 00             	ret    $0x8
40cabe:	55                   	push   %ebp
40cabf:	8b ec                	mov    %esp,%ebp
40cac1:	83 ec 14             	sub    $0x14,%esp
40cac4:	53                   	push   %ebx
40cac5:	56                   	push   %esi
40cac6:	57                   	push   %edi
40cac7:	33 ff                	xor    %edi,%edi
40cac9:	89 7d fc             	mov    %edi,-0x4(%ebp)
40cacc:	89 7d f8             	mov    %edi,-0x8(%ebp)
40cacf:	e9 c9 00 00 00       	jmp    0x40cb9d
40cad4:	85 f6                	test   %esi,%esi
40cad6:	0f 88 20 01 00 00    	js     0x40cbfc
40cadc:	8b 75 08             	mov    0x8(%ebp),%esi
40cadf:	8b cf                	mov    %edi,%ecx
40cae1:	8b 45 fc             	mov    -0x4(%ebp),%eax
40cae4:	89 45 ec             	mov    %eax,-0x14(%ebp)
40cae7:	89 4d f4             	mov    %ecx,-0xc(%ebp)
40caea:	39 7e 04             	cmp    %edi,0x4(%esi)
40caed:	76 4c                	jbe    0x40cb3b
40caef:	8b d7                	mov    %edi,%edx
40caf1:	89 7d f0             	mov    %edi,-0x10(%ebp)
40caf4:	8b 1e                	mov    (%esi),%ebx
40caf6:	03 da                	add    %edx,%ebx
40caf8:	83 7b 04 02          	cmpl   $0x2,0x4(%ebx)
40cafc:	75 2b                	jne    0x40cb29
40cafe:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40cb01:	85 c9                	test   %ecx,%ecx
40cb03:	74 05                	je     0x40cb0a
40cb05:	39 4b 3c             	cmp    %ecx,0x3c(%ebx)
40cb08:	75 1c                	jne    0x40cb26
40cb0a:	6a ff                	push   $0xffffffff
40cb0c:	50                   	push   %eax
40cb0d:	6a ff                	push   $0xffffffff
40cb0f:	ff 73 38             	push   0x38(%ebx)
40cb12:	57                   	push   %edi
40cb13:	6a 7f                	push   $0x7f
40cb15:	ff 15 28 b1 44 00    	call   *0x44b128
40cb1b:	83 f8 02             	cmp    $0x2,%eax
40cb1e:	74 2b                	je     0x40cb4b
40cb20:	8b 45 ec             	mov    -0x14(%ebp),%eax
40cb23:	8b 55 f0             	mov    -0x10(%ebp),%edx
40cb26:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40cb29:	41                   	inc    %ecx
40cb2a:	83 c2 58             	add    $0x58,%edx
40cb2d:	89 4d f4             	mov    %ecx,-0xc(%ebp)
40cb30:	89 55 f0             	mov    %edx,-0x10(%ebp)
40cb33:	3b 4e 04             	cmp    0x4(%esi),%ecx
40cb36:	72 bc                	jb     0x40caf4
40cb38:	8b 45 fc             	mov    -0x4(%ebp),%eax
40cb3b:	50                   	push   %eax
40cb3c:	be 90 04 07 80       	mov    $0x80070490,%esi
40cb41:	68 a8 fd 44 00       	push   $0x44fda8
40cb46:	e9 dc 00 00 00       	jmp    0x40cc27
40cb4b:	8d 43 50             	lea    0x50(%ebx),%eax
40cb4e:	50                   	push   %eax
40cb4f:	ff 73 18             	push   0x18(%ebx)
40cb52:	ff 75 14             	push   0x14(%ebp)
40cb55:	e8 1f 62 ff ff       	call   0x402d79
40cb5a:	8b f0                	mov    %eax,%esi
40cb5c:	85 f6                	test   %esi,%esi
40cb5e:	0f 88 91 00 00 00    	js     0x40cbf5
40cb64:	8d 45 f8             	lea    -0x8(%ebp),%eax
40cb67:	50                   	push   %eax
40cb68:	ff 73 50             	push   0x50(%ebx)
40cb6b:	e8 d6 68 ff ff       	call   0x403446
40cb70:	8b f0                	mov    %eax,%esi
40cb72:	85 f6                	test   %esi,%esi
40cb74:	78 78                	js     0x40cbee
40cb76:	57                   	push   %edi
40cb77:	ff 75 f8             	push   -0x8(%ebp)
40cb7a:	e8 94 74 ff ff       	call   0x404013
40cb7f:	8b f0                	mov    %eax,%esi
40cb81:	85 f6                	test   %esi,%esi
40cb83:	78 62                	js     0x40cbe7
40cb85:	ff 73 50             	push   0x50(%ebx)
40cb88:	ff 75 10             	push   0x10(%ebp)
40cb8b:	e8 f6 f7 ff ff       	call   0x40c386
40cb90:	8b f0                	mov    %eax,%esi
40cb92:	85 f6                	test   %esi,%esi
40cb94:	78 4a                	js     0x40cbe0
40cb96:	c7 43 4c 01 00 00 00 	movl   $0x1,0x4c(%ebx)
40cb9d:	8d 45 fc             	lea    -0x4(%ebp),%eax
40cba0:	50                   	push   %eax
40cba1:	ff 75 10             	push   0x10(%ebp)
40cba4:	e8 5f f5 ff ff       	call   0x40c108
40cba9:	8b f0                	mov    %eax,%esi
40cbab:	81 fe 03 01 07 80    	cmp    $0x80070103,%esi
40cbb1:	0f 85 1d ff ff ff    	jne    0x40cad4
40cbb7:	8b 45 08             	mov    0x8(%ebp),%eax
40cbba:	8b f7                	mov    %edi,%esi
40cbbc:	39 70 04             	cmp    %esi,0x4(%eax)
40cbbf:	76 6f                	jbe    0x40cc30
40cbc1:	8b 18                	mov    (%eax),%ebx
40cbc3:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40cbc6:	85 c9                	test   %ecx,%ecx
40cbc8:	74 05                	je     0x40cbcf
40cbca:	39 4b 3c             	cmp    %ecx,0x3c(%ebx)
40cbcd:	75 06                	jne    0x40cbd5
40cbcf:	83 7b 4c 01          	cmpl   $0x1,0x4c(%ebx)
40cbd3:	7c 36                	jl     0x40cc0b
40cbd5:	47                   	inc    %edi
40cbd6:	83 c3 58             	add    $0x58,%ebx
40cbd9:	3b 78 04             	cmp    0x4(%eax),%edi
40cbdc:	72 e8                	jb     0x40cbc6
40cbde:	eb 50                	jmp    0x40cc30
40cbe0:	68 48 fe 44 00       	push   $0x44fe48
40cbe5:	eb 1a                	jmp    0x40cc01
40cbe7:	68 24 fe 44 00       	push   $0x44fe24
40cbec:	eb 13                	jmp    0x40cc01
40cbee:	68 f0 fd 44 00       	push   $0x44fdf0
40cbf3:	eb 0c                	jmp    0x40cc01
40cbf5:	68 d0 fd 44 00       	push   $0x44fdd0
40cbfa:	eb 05                	jmp    0x40cc01
40cbfc:	68 8c fd 44 00       	push   $0x44fd8c
40cc01:	56                   	push   %esi
40cc02:	e8 28 35 03 00       	call   0x44012f
40cc07:	59                   	pop    %ecx
40cc08:	59                   	pop    %ecx
40cc09:	eb 25                	jmp    0x40cc30
40cc0b:	be 0d 00 07 80       	mov    $0x8007000d,%esi
40cc10:	56                   	push   %esi
40cc11:	68 0e 01 00 00       	push   $0x10e
40cc16:	68 38 fa 44 00       	push   $0x44fa38
40cc1b:	e8 b3 6b ff ff       	call   0x4037d3
40cc20:	ff 33                	push   (%ebx)
40cc22:	68 60 fe 44 00       	push   $0x44fe60
40cc27:	56                   	push   %esi
40cc28:	e8 02 35 03 00       	call   0x44012f
40cc2d:	83 c4 0c             	add    $0xc,%esp
40cc30:	83 7d fc 00          	cmpl   $0x0,-0x4(%ebp)
40cc34:	74 08                	je     0x40cc3e
40cc36:	ff 75 fc             	push   -0x4(%ebp)
40cc39:	e8 b1 88 03 00       	call   0x4454ef
40cc3e:	83 7d f8 00          	cmpl   $0x0,-0x8(%ebp)
40cc42:	74 08                	je     0x40cc4c
40cc44:	ff 75 f8             	push   -0x8(%ebp)
40cc47:	e8 a3 88 03 00       	call   0x4454ef
40cc4c:	5f                   	pop    %edi
40cc4d:	8b c6                	mov    %esi,%eax
40cc4f:	5e                   	pop    %esi
40cc50:	5b                   	pop    %ebx
40cc51:	8b e5                	mov    %ebp,%esp
40cc53:	5d                   	pop    %ebp
40cc54:	c2 10 00             	ret    $0x10
40cc57:	55                   	push   %ebp
40cc58:	8b ec                	mov    %esp,%ebp
40cc5a:	51                   	push   %ecx
40cc5b:	53                   	push   %ebx
40cc5c:	56                   	push   %esi
40cc5d:	57                   	push   %edi
40cc5e:	8b 7d 08             	mov    0x8(%ebp),%edi
40cc61:	33 f6                	xor    %esi,%esi
40cc63:	8b de                	mov    %esi,%ebx
40cc65:	39 77 04             	cmp    %esi,0x4(%edi)
40cc68:	76 32                	jbe    0x40cc9c
40cc6a:	8b ce                	mov    %esi,%ecx
40cc6c:	89 75 08             	mov    %esi,0x8(%ebp)
40cc6f:	8b 07                	mov    (%edi),%eax
40cc71:	6a ff                	push   $0xffffffff
40cc73:	ff 75 0c             	push   0xc(%ebp)
40cc76:	03 c1                	add    %ecx,%eax
40cc78:	6a ff                	push   $0xffffffff
40cc7a:	89 45 fc             	mov    %eax,-0x4(%ebp)
40cc7d:	ff 30                	push   (%eax)
40cc7f:	56                   	push   %esi
40cc80:	6a 7f                	push   $0x7f
40cc82:	ff 15 28 b1 44 00    	call   *0x44b128
40cc88:	83 f8 02             	cmp    $0x2,%eax
40cc8b:	74 1f                	je     0x40ccac
40cc8d:	8b 4d 08             	mov    0x8(%ebp),%ecx
40cc90:	43                   	inc    %ebx
40cc91:	83 c1 58             	add    $0x58,%ecx
40cc94:	89 4d 08             	mov    %ecx,0x8(%ebp)
40cc97:	3b 5f 04             	cmp    0x4(%edi),%ebx
40cc9a:	72 d3                	jb     0x40cc6f
40cc9c:	be 90 04 07 80       	mov    $0x80070490,%esi
40cca1:	5f                   	pop    %edi
40cca2:	8b c6                	mov    %esi,%eax
40cca4:	5e                   	pop    %esi
40cca5:	5b                   	pop    %ebx
40cca6:	8b e5                	mov    %ebp,%esp
40cca8:	5d                   	pop    %ebp
40cca9:	c2 0c 00             	ret    $0xc
40ccac:	8b 45 10             	mov    0x10(%ebp),%eax
40ccaf:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40ccb2:	89 08                	mov    %ecx,(%eax)
40ccb4:	eb eb                	jmp    0x40cca1
40ccb6:	55                   	push   %ebp
40ccb7:	8b ec                	mov    %esp,%ebp
40ccb9:	83 ec 10             	sub    $0x10,%esp
40ccbc:	83 65 f0 00          	andl   $0x0,-0x10(%ebp)
40ccc0:	8d 45 f0             	lea    -0x10(%ebp),%eax
40ccc3:	83 65 f8 00          	andl   $0x0,-0x8(%ebp)
40ccc7:	83 65 f4 00          	andl   $0x0,-0xc(%ebp)
40cccb:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40cccf:	56                   	push   %esi
40ccd0:	50                   	push   %eax
40ccd1:	68 48 f9 44 00       	push   $0x44f948
40ccd6:	ff 75 14             	push   0x14(%ebp)
40ccd9:	e8 25 6b 03 00       	call   0x443803
40ccde:	8b f0                	mov    %eax,%esi
40cce0:	85 f6                	test   %esi,%esi
40cce2:	79 12                	jns    0x40ccf6
40cce4:	68 18 fa 44 00       	push   $0x44fa18
40cce9:	56                   	push   %esi
40ccea:	e8 40 34 03 00       	call   0x44012f
40ccef:	59                   	pop    %ecx
40ccf0:	59                   	pop    %ecx
40ccf1:	e9 55 03 00 00       	jmp    0x40d04b
40ccf6:	8b 45 f0             	mov    -0x10(%ebp),%eax
40ccf9:	8d 55 f4             	lea    -0xc(%ebp),%edx
40ccfc:	52                   	push   %edx
40ccfd:	50                   	push   %eax
40ccfe:	8b 08                	mov    (%eax),%ecx
40cd00:	ff 51 20             	call   *0x20(%ecx)
40cd03:	8b f0                	mov    %eax,%esi
40cd05:	85 f6                	test   %esi,%esi
40cd07:	79 07                	jns    0x40cd10
40cd09:	68 e8 f8 44 00       	push   $0x44f8e8
40cd0e:	eb d9                	jmp    0x40cce9
40cd10:	8b 45 f4             	mov    -0xc(%ebp),%eax
40cd13:	85 c0                	test   %eax,%eax
40cd15:	0f 84 30 03 00 00    	je     0x40d04b
40cd1b:	6b c0 58             	imul   $0x58,%eax,%eax
40cd1e:	53                   	push   %ebx
40cd1f:	6a 01                	push   $0x1
40cd21:	50                   	push   %eax
40cd22:	e8 ad 6b ff ff       	call   0x4038d4
40cd27:	8b 5d 08             	mov    0x8(%ebp),%ebx
40cd2a:	89 03                	mov    %eax,(%ebx)
40cd2c:	85 c0                	test   %eax,%eax
40cd2e:	75 24                	jne    0x40cd54
40cd30:	be 0e 00 07 80       	mov    $0x8007000e,%esi
40cd35:	56                   	push   %esi
40cd36:	6a 2e                	push   $0x2e
40cd38:	68 38 fa 44 00       	push   $0x44fa38
40cd3d:	e8 91 6a ff ff       	call   0x4037d3
40cd42:	68 18 f9 44 00       	push   $0x44f918
40cd47:	56                   	push   %esi
40cd48:	e8 e2 33 03 00       	call   0x44012f
40cd4d:	59                   	pop    %ecx
40cd4e:	59                   	pop    %ecx
40cd4f:	e9 f6 02 00 00       	jmp    0x40d04a
40cd54:	8b 45 f4             	mov    -0xc(%ebp),%eax
40cd57:	83 65 14 00          	andl   $0x0,0x14(%ebp)
40cd5b:	89 43 04             	mov    %eax,0x4(%ebx)
40cd5e:	57                   	push   %edi
40cd5f:	85 c0                	test   %eax,%eax
40cd61:	0f 84 e0 02 00 00    	je     0x40d047
40cd67:	33 c9                	xor    %ecx,%ecx
40cd69:	89 4d 08             	mov    %ecx,0x8(%ebp)
40cd6c:	8b 3b                	mov    (%ebx),%edi
40cd6e:	8d 45 f8             	lea    -0x8(%ebp),%eax
40cd71:	6a 00                	push   $0x0
40cd73:	50                   	push   %eax
40cd74:	ff 75 f0             	push   -0x10(%ebp)
40cd77:	03 f9                	add    %ecx,%edi
40cd79:	e8 e2 69 03 00       	call   0x443760
40cd7e:	8b f0                	mov    %eax,%esi
40cd80:	85 f6                	test   %esi,%esi
40cd82:	0f 88 99 03 00 00    	js     0x40d121
40cd88:	57                   	push   %edi
40cd89:	68 64 ca 44 00       	push   $0x44ca64
40cd8e:	ff 75 f8             	push   -0x8(%ebp)
40cd91:	e8 31 64 03 00       	call   0x4431c7
40cd96:	8b f0                	mov    %eax,%esi
40cd98:	85 f6                	test   %esi,%esi
40cd9a:	0f 88 7a 03 00 00    	js     0x40d11a
40cda0:	8d 47 18             	lea    0x18(%edi),%eax
40cda3:	50                   	push   %eax
40cda4:	68 38 f6 44 00       	push   $0x44f638
40cda9:	ff 75 f8             	push   -0x8(%ebp)
40cdac:	e8 16 64 03 00       	call   0x4431c7
40cdb1:	8b f0                	mov    %eax,%esi
40cdb3:	85 f6                	test   %esi,%esi
40cdb5:	0f 88 58 03 00 00    	js     0x40d113
40cdbb:	8d 45 fc             	lea    -0x4(%ebp),%eax
40cdbe:	50                   	push   %eax
40cdbf:	68 44 fa 44 00       	push   $0x44fa44
40cdc4:	ff 75 f8             	push   -0x8(%ebp)
40cdc7:	e8 fb 63 03 00       	call   0x4431c7
40cdcc:	8b f0                	mov    %eax,%esi
40cdce:	85 f6                	test   %esi,%esi
40cdd0:	0f 88 36 03 00 00    	js     0x40d10c
40cdd6:	8b 35 28 b1 44 00    	mov    0x44b128,%esi
40cddc:	6a ff                	push   $0xffffffff
40cdde:	68 74 fa 44 00       	push   $0x44fa74
40cde3:	6a ff                	push   $0xffffffff
40cde5:	ff 75 fc             	push   -0x4(%ebp)