40c8a1:	e8 c8 4b ff ff       	call   0x40146e
40c8a6:	8b d0                	mov    %eax,%edx
40c8a8:	8d 4d d0             	lea    -0x30(%ebp),%ecx
40c8ab:	e8 dc 4b ff ff       	call   0x40148c
40c8b0:	8d 4d c0             	lea    -0x40(%ebp),%ecx
40c8b3:	e8 ec 4b ff ff       	call   0x4014a4
40c8b8:	eb ad                	jmp    0x40c867
40c8ba:	68 fd c8 40 00       	push   $0x40c8fd
40c8bf:	eb 30                	jmp    0x40c8f1
40c8c1:	8b 45 fc             	mov    -0x4(%ebp),%eax
40c8c4:	83 e0 04             	and    $0x4,%eax
40c8c7:	85 c0                	test   %eax,%eax
40c8c9:	74 08                	je     0x40c8d3
40c8cb:	8d 4d d0             	lea    -0x30(%ebp),%ecx
40c8ce:	e8 d1 4b ff ff       	call   0x4014a4
40c8d3:	8d 45 b0             	lea    -0x50(%ebp),%eax
40c8d6:	50                   	push   %eax
40c8d7:	8d 45 c0             	lea    -0x40(%ebp),%eax
40c8da:	50                   	push   %eax
40c8db:	6a 02                	push   $0x2
40c8dd:	e8 b0 4b ff ff       	call   0x401492
40c8e2:	83 c4 0c             	add    $0xc,%esp
40c8e5:	8d 45 ac             	lea    -0x54(%ebp),%eax
40c8e8:	50                   	push   %eax
40c8e9:	6a 00                	push   $0x0
40c8eb:	e8 de 4b ff ff       	call   0x4014ce
40c8f0:	c3                   	ret
40c8f1:	8d 45 e0             	lea    -0x20(%ebp),%eax
40c8f4:	50                   	push   %eax
40c8f5:	6a 00                	push   $0x0
40c8f7:	e8 d2 4b ff ff       	call   0x4014ce
40c8fc:	c3                   	ret
40c8fd:	8d 75 d0             	lea    -0x30(%ebp),%esi
40c900:	8b 7d 08             	mov    0x8(%ebp),%edi
40c903:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40c904:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40c905:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40c906:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40c907:	8b 45 08             	mov    0x8(%ebp),%eax
40c90a:	8b 4d ec             	mov    -0x14(%ebp),%ecx
40c90d:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40c914:	5f                   	pop    %edi
40c915:	5e                   	pop    %esi
40c916:	5b                   	pop    %ebx
40c917:	c9                   	leave
40c918:	c2 0c 00             	ret    $0xc
40c91b:	55                   	push   %ebp
40c91c:	8b ec                	mov    %esp,%ebp
40c91e:	51                   	push   %ecx
40c91f:	51                   	push   %ecx
40c920:	68 36 13 40 00       	push   $0x401336
40c925:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
40c92b:	50                   	push   %eax
40c92c:	64 89 25 00 00 00 00 	mov    %esp,%fs:0x0
40c933:	6a 7c                	push   $0x7c
40c935:	58                   	pop    %eax
40c936:	e8 f5 49 ff ff       	call   0x401330
40c93b:	53                   	push   %ebx
40c93c:	56                   	push   %esi
40c93d:	57                   	push   %edi
40c93e:	89 65 f8             	mov    %esp,-0x8(%ebp)
40c941:	c7 45 fc 78 12 40 00 	movl   $0x401278,-0x4(%ebp)
40c948:	8b 45 08             	mov    0x8(%ebp),%eax
40c94b:	8b 00                	mov    (%eax),%eax
40c94d:	f7 d0                	not    %eax
40c94f:	f7 d0                	not    %eax
40c951:	85 c0                	test   %eax,%eax
40c953:	74 12                	je     0x40c967
40c955:	8b 45 08             	mov    0x8(%ebp),%eax
40c958:	ff 30                	push   (%eax)
40c95a:	6a 01                	push   $0x1
40c95c:	e8 01 4b ff ff       	call   0x401462
40c961:	83 e8 03             	sub    $0x3,%eax
40c964:	89 45 d8             	mov    %eax,-0x28(%ebp)
40c967:	8d 45 cc             	lea    -0x34(%ebp),%eax
40c96a:	50                   	push   %eax
40c96b:	e8 46 4b ff ff       	call   0x4014b6
40c970:	89 85 7c ff ff ff    	mov    %eax,-0x84(%ebp)
40c976:	8b 45 08             	mov    0x8(%ebp),%eax
40c979:	ff 30                	push   (%eax)
40c97b:	8d 45 c8             	lea    -0x38(%ebp),%eax
40c97e:	50                   	push   %eax
40c97f:	e8 5c 4b ff ff       	call   0x4014e0
40c984:	8b 45 c8             	mov    -0x38(%ebp),%eax
40c987:	33 c9                	xor    %ecx,%ecx
40c989:	2b 48 14             	sub    0x14(%eax),%ecx
40c98c:	8b 45 c8             	mov    -0x38(%ebp),%eax
40c98f:	8b 40 0c             	mov    0xc(%eax),%eax
40c992:	03 c1                	add    %ecx,%eax
40c994:	50                   	push   %eax
40c995:	e8 1c 4b ff ff       	call   0x4014b6
40c99a:	89 45 80             	mov    %eax,-0x80(%ebp)
40c99d:	8d 45 c8             	lea    -0x38(%ebp),%eax
40c9a0:	50                   	push   %eax
40c9a1:	e8 34 4b ff ff       	call   0x4014da
40c9a6:	6a 04                	push   $0x4
40c9a8:	ff 75 80             	push   -0x80(%ebp)
40c9ab:	ff b5 7c ff ff ff    	push   -0x84(%ebp)
40c9b1:	e8 a9 9a ff ff       	call   0x40645f
40c9b6:	6a 00                	push   $0x0
40c9b8:	8b 45 cc             	mov    -0x34(%ebp),%eax
40c9bb:	48                   	dec    %eax
40c9bc:	50                   	push   %eax
40c9bd:	6a 01                	push   $0x1
40c9bf:	6a 11                	push   $0x11
40c9c1:	8d 45 dc             	lea    -0x24(%ebp),%eax
40c9c4:	50                   	push   %eax
40c9c5:	6a 01                	push   $0x1
40c9c7:	68 80 00 00 00       	push   $0x80
40c9cc:	e8 33 4b ff ff       	call   0x401504
40c9d1:	83 c4 1c             	add    $0x1c,%esp
40c9d4:	8b 45 08             	mov    0x8(%ebp),%eax
40c9d7:	ff 30                	push   (%eax)
40c9d9:	8d 45 c4             	lea    -0x3c(%ebp),%eax
40c9dc:	50                   	push   %eax
40c9dd:	e8 fe 4a ff ff       	call   0x4014e0
40c9e2:	ff 75 dc             	push   -0x24(%ebp)
40c9e5:	8d 45 c8             	lea    -0x38(%ebp),%eax
40c9e8:	50                   	push   %eax
40c9e9:	e8 f2 4a ff ff       	call   0x4014e0
40c9ee:	8d 45 d0             	lea    -0x30(%ebp),%eax
40c9f1:	50                   	push   %eax
40c9f2:	ff 75 d8             	push   -0x28(%ebp)
40c9f5:	8b 45 c4             	mov    -0x3c(%ebp),%eax
40c9f8:	6a 04                	push   $0x4
40c9fa:	59                   	pop    %ecx
40c9fb:	2b 48 14             	sub    0x14(%eax),%ecx
40c9fe:	8b 45 c4             	mov    -0x3c(%ebp),%eax
40ca01:	8b 40 0c             	mov    0xc(%eax),%eax
40ca04:	03 c1                	add    %ecx,%eax
40ca06:	50                   	push   %eax
40ca07:	ff 75 cc             	push   -0x34(%ebp)
40ca0a:	8b 45 c8             	mov    -0x38(%ebp),%eax
40ca0d:	33 c9                	xor    %ecx,%ecx
40ca0f:	2b 48 14             	sub    0x14(%eax),%ecx
40ca12:	8b 45 c8             	mov    -0x38(%ebp),%eax
40ca15:	8b 40 0c             	mov    0xc(%eax),%eax
40ca18:	03 c1                	add    %ecx,%eax
40ca1a:	50                   	push   %eax
40ca1b:	6a 02                	push   $0x2
40ca1d:	e8 f2 7a ff ff       	call   0x404514
40ca22:	89 45 80             	mov    %eax,-0x80(%ebp)
40ca25:	e8 08 4a ff ff       	call   0x401432
40ca2a:	8d 45 c8             	lea    -0x38(%ebp),%eax
40ca2d:	50                   	push   %eax
40ca2e:	e8 a7 4a ff ff       	call   0x4014da
40ca33:	8d 45 c4             	lea    -0x3c(%ebp),%eax
40ca36:	50                   	push   %eax
40ca37:	e8 9e 4a ff ff       	call   0x4014da
40ca3c:	8b 45 80             	mov    -0x80(%ebp),%eax
40ca3f:	89 45 9c             	mov    %eax,-0x64(%ebp)
40ca42:	c7 45 94 03 00 00 00 	movl   $0x3,-0x6c(%ebp)
40ca49:	8d 55 94             	lea    -0x6c(%ebp),%edx
40ca4c:	8d 4d e0             	lea    -0x20(%ebp),%ecx
40ca4f:	e8 38 4a ff ff       	call   0x40148c
40ca54:	8b 45 cc             	mov    -0x34(%ebp),%eax
40ca57:	d1 e0                	shl    $1,%eax
40ca59:	89 45 cc             	mov    %eax,-0x34(%ebp)
40ca5c:	c7 45 9c 42 02 00 c0 	movl   $0xc0000242,-0x64(%ebp)
40ca63:	c7 45 94 03 80 00 00 	movl   $0x8003,-0x6c(%ebp)
40ca6a:	8d 45 e0             	lea    -0x20(%ebp),%eax
40ca6d:	50                   	push   %eax
40ca6e:	8d 45 94             	lea    -0x6c(%ebp),%eax
40ca71:	50                   	push   %eax
40ca72:	e8 b5 49 ff ff       	call   0x40142c
40ca77:	0f bf c0             	movswl %ax,%eax
40ca7a:	85 c0                	test   %eax,%eax
40ca7c:	0f 85 34 ff ff ff    	jne    0x40c9b6
40ca82:	83 65 9c 00          	andl   $0x0,-0x64(%ebp)
40ca86:	c7 45 94 02 80 00 00 	movl   $0x8002,-0x6c(%ebp)
40ca8d:	33 c0                	xor    %eax,%eax
40ca8f:	83 7d d0 00          	cmpl   $0x0,-0x30(%ebp)
40ca93:	0f 9e c0             	setle  %al
40ca96:	f7 d8                	neg    %eax
40ca98:	66 89 45 8c          	mov    %ax,-0x74(%ebp)
40ca9c:	c7 45 84 0b 00 00 00 	movl   $0xb,-0x7c(%ebp)
40caa3:	8d 45 e0             	lea    -0x20(%ebp),%eax
40caa6:	50                   	push   %eax
40caa7:	8d 45 94             	lea    -0x6c(%ebp),%eax
40caaa:	50                   	push   %eax
40caab:	8d 45 b4             	lea    -0x4c(%ebp),%eax
40caae:	50                   	push   %eax
40caaf:	e8 42 49 ff ff       	call   0x4013f6
40cab4:	50                   	push   %eax
40cab5:	8d 45 84             	lea    -0x7c(%ebp),%eax
40cab8:	50                   	push   %eax
40cab9:	8d 45 a4             	lea    -0x5c(%ebp),%eax
40cabc:	50                   	push   %eax
40cabd:	e8 3a 49 ff ff       	call   0x4013fc
40cac2:	50                   	push   %eax
40cac3:	e8 3a 49 ff ff       	call   0x401402
40cac8:	66 89 85 78 ff ff ff 	mov    %ax,-0x88(%ebp)
40cacf:	8d 4d 84             	lea    -0x7c(%ebp),%ecx
40cad2:	e8 cd 49 ff ff       	call   0x4014a4
40cad7:	0f bf 85 78 ff ff ff 	movswl -0x88(%ebp),%eax
40cade:	85 c0                	test   %eax,%eax
40cae0:	74 05                	je     0x40cae7
40cae2:	e9 94 00 00 00       	jmp    0x40cb7b
40cae7:	6a 00                	push   $0x0
40cae9:	8b 45 d0             	mov    -0x30(%ebp),%eax
40caec:	48                   	dec    %eax
40caed:	50                   	push   %eax
40caee:	6a 01                	push   $0x1
40caf0:	6a 11                	push   $0x11
40caf2:	ff 75 08             	push   0x8(%ebp)
40caf5:	6a 01                	push   $0x1
40caf7:	68 80 00 00 00       	push   $0x80
40cafc:	e8 03 4a ff ff       	call   0x401504
40cb01:	83 c4 1c             	add    $0x1c,%esp
40cb04:	8b 45 08             	mov    0x8(%ebp),%eax
40cb07:	ff 30                	push   (%eax)
40cb09:	8d 45 c8             	lea    -0x38(%ebp),%eax
40cb0c:	50                   	push   %eax
40cb0d:	e8 ce 49 ff ff       	call   0x4014e0
40cb12:	8b 45 c8             	mov    -0x38(%ebp),%eax
40cb15:	33 c9                	xor    %ecx,%ecx
40cb17:	2b 48 14             	sub    0x14(%eax),%ecx
40cb1a:	8b 45 c8             	mov    -0x38(%ebp),%eax
40cb1d:	8b 40 0c             	mov    0xc(%eax),%eax
40cb20:	03 c1                	add    %ecx,%eax
40cb22:	50                   	push   %eax
40cb23:	e8 8e 49 ff ff       	call   0x4014b6
40cb28:	89 45 80             	mov    %eax,-0x80(%ebp)
40cb2b:	8d 45 c8             	lea    -0x38(%ebp),%eax
40cb2e:	50                   	push   %eax
40cb2f:	e8 a6 49 ff ff       	call   0x4014da
40cb34:	ff 75 dc             	push   -0x24(%ebp)
40cb37:	8d 45 c4             	lea    -0x3c(%ebp),%eax
40cb3a:	50                   	push   %eax
40cb3b:	e8 a0 49 ff ff       	call   0x4014e0
40cb40:	8b 45 c4             	mov    -0x3c(%ebp),%eax
40cb43:	33 c9                	xor    %ecx,%ecx
40cb45:	2b 48 14             	sub    0x14(%eax),%ecx
40cb48:	8b 45 c4             	mov    -0x3c(%ebp),%eax
40cb4b:	8b 40 0c             	mov    0xc(%eax),%eax
40cb4e:	03 c1                	add    %ecx,%eax
40cb50:	50                   	push   %eax
40cb51:	e8 60 49 ff ff       	call   0x4014b6
40cb56:	89 85 7c ff ff ff    	mov    %eax,-0x84(%ebp)
40cb5c:	8d 45 c4             	lea    -0x3c(%ebp),%eax
40cb5f:	50                   	push   %eax
40cb60:	e8 75 49 ff ff       	call   0x4014da
40cb65:	ff 75 d0             	push   -0x30(%ebp)
40cb68:	ff b5 7c ff ff ff    	push   -0x84(%ebp)
40cb6e:	ff 75 80             	push   -0x80(%ebp)
40cb71:	e8 e9 98 ff ff       	call   0x40645f
40cb76:	66 83 4d d4 ff       	orw    $0xffff,-0x2c(%ebp)
40cb7b:	68 bb cb 40 00       	push   $0x40cbbb
40cb80:	eb 25                	jmp    0x40cba7
40cb82:	8d 45 c8             	lea    -0x38(%ebp),%eax
40cb85:	50                   	push   %eax
40cb86:	e8 4f 49 ff ff       	call   0x4014da
40cb8b:	8d 45 c4             	lea    -0x3c(%ebp),%eax
40cb8e:	50                   	push   %eax
40cb8f:	e8 46 49 ff ff       	call   0x4014da
40cb94:	8d 45 a4             	lea    -0x5c(%ebp),%eax
40cb97:	50                   	push   %eax
40cb98:	8d 45 b4             	lea    -0x4c(%ebp),%eax
40cb9b:	50                   	push   %eax
40cb9c:	6a 02                	push   $0x2
40cb9e:	e8 ef 48 ff ff       	call   0x401492
40cba3:	83 c4 0c             	add    $0xc,%esp
40cba6:	c3                   	ret
40cba7:	8d 4d e0             	lea    -0x20(%ebp),%ecx
40cbaa:	e8 f5 48 ff ff       	call   0x4014a4
40cbaf:	8d 45 dc             	lea    -0x24(%ebp),%eax
40cbb2:	50                   	push   %eax
40cbb3:	6a 00                	push   $0x0
40cbb5:	e8 14 49 ff ff       	call   0x4014ce
40cbba:	c3                   	ret
40cbbb:	66 8b 45 d4          	mov    -0x2c(%ebp),%ax
40cbbf:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40cbc2:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40cbc9:	5f                   	pop    %edi
40cbca:	5e                   	pop    %esi
40cbcb:	5b                   	pop    %ebx
40cbcc:	c9                   	leave
40cbcd:	c2 04 00             	ret    $0x4
40cbd0:	55                   	push   %ebp
40cbd1:	8b ec                	mov    %esp,%ebp
40cbd3:	51                   	push   %ecx
40cbd4:	51                   	push   %ecx
40cbd5:	68 36 13 40 00       	push   $0x401336
40cbda:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
40cbe0:	50                   	push   %eax
40cbe1:	64 89 25 00 00 00 00 	mov    %esp,%fs:0x0
40cbe8:	6a 74                	push   $0x74
40cbea:	58                   	pop    %eax
40cbeb:	e8 40 47 ff ff       	call   0x401330
40cbf0:	53                   	push   %ebx
40cbf1:	56                   	push   %esi
40cbf2:	57                   	push   %edi
40cbf3:	89 65 f8             	mov    %esp,-0x8(%ebp)
40cbf6:	c7 45 fc 88 12 40 00 	movl   $0x401288,-0x4(%ebp)
40cbfd:	8b 45 08             	mov    0x8(%ebp),%eax
40cc00:	8b 00                	mov    (%eax),%eax
40cc02:	f7 d0                	not    %eax
40cc04:	f7 d0                	not    %eax
40cc06:	85 c0                	test   %eax,%eax
40cc08:	74 12                	je     0x40cc1c
40cc0a:	8b 45 08             	mov    0x8(%ebp),%eax
40cc0d:	8b 00                	mov    (%eax),%eax
40cc0f:	f7 d0                	not    %eax
40cc11:	f7 d0                	not    %eax
40cc13:	50                   	push   %eax
40cc14:	e8 38 98 ff ff       	call   0x406451
40cc19:	89 45 e8             	mov    %eax,-0x18(%ebp)
40cc1c:	e8 aa 0b 00 00       	call   0x40d7cb
40cc21:	8b d0                	mov    %eax,%edx
40cc23:	8d 4d c8             	lea    -0x38(%ebp),%ecx
40cc26:	e8 97 48 ff ff       	call   0x4014c2
40cc2b:	8b 45 c8             	mov    -0x38(%ebp),%eax
40cc2e:	89 45 88             	mov    %eax,-0x78(%ebp)
40cc31:	83 65 c8 00          	andl   $0x0,-0x38(%ebp)
40cc35:	6a 00                	push   $0x0
40cc37:	6a 18                	push   $0x18
40cc39:	8b 55 88             	mov    -0x78(%ebp),%edx
40cc3c:	8d 4d d0             	lea    -0x30(%ebp),%ecx
40cc3f:	e8 7e 48 ff ff       	call   0x4014c2
40cc44:	50                   	push   %eax
40cc45:	8d 45 cc             	lea    -0x34(%ebp),%eax
40cc48:	50                   	push   %eax
40cc49:	e8 a2 47 ff ff       	call   0x4013f0
40cc4e:	50                   	push   %eax
40cc4f:	6a 00                	push   $0x0
40cc51:	8d 45 d8             	lea    -0x28(%ebp),%eax
40cc54:	50                   	push   %eax
40cc55:	e8 fa 78 ff ff       	call   0x404554
40cc5a:	89 45 94             	mov    %eax,-0x6c(%ebp)
40cc5d:	e8 d0 47 ff ff       	call   0x401432
40cc62:	33 c0                	xor    %eax,%eax
40cc64:	83 7d 94 00          	cmpl   $0x0,-0x6c(%ebp)
40cc68:	0f 94 c0             	sete   %al
40cc6b:	f7 d8                	neg    %eax
40cc6d:	66 89 45 90          	mov    %ax,-0x70(%ebp)
40cc71:	8d 45 c8             	lea    -0x38(%ebp),%eax
40cc74:	50                   	push   %eax
40cc75:	8d 45 cc             	lea    -0x34(%ebp),%eax
40cc78:	50                   	push   %eax
40cc79:	8d 45 d0             	lea    -0x30(%ebp),%eax
40cc7c:	50                   	push   %eax
40cc7d:	6a 03                	push   $0x3
40cc7f:	e8 b4 47 ff ff       	call   0x401438
40cc84:	83 c4 10             	add    $0x10,%esp
40cc87:	0f bf 45 90          	movswl -0x70(%ebp),%eax
40cc8b:	85 c0                	test   %eax,%eax
40cc8d:	0f 84 68 01 00 00    	je     0x40cdfb
40cc93:	e8 33 0b 00 00       	call   0x40d7cb
40cc98:	8b d0                	mov    %eax,%edx
40cc9a:	8d 4d c8             	lea    -0x38(%ebp),%ecx