40c6a9:	89 45 a4             	mov    %eax,-0x5c(%ebp)
40c6ac:	83 7d a4 00          	cmpl   $0x0,-0x5c(%ebp)
40c6b0:	7d 17                	jge    0x40c6c9
40c6b2:	6a 0c                	push   $0xc
40c6b4:	68 c0 47 40 00       	push   $0x4047c0
40c6b9:	ff 75 d4             	push   -0x2c(%ebp)
40c6bc:	ff 75 a4             	push   -0x5c(%ebp)
40c6bf:	e8 10 4e ff ff       	call   0x4014d4
40c6c4:	89 45 98             	mov    %eax,-0x68(%ebp)
40c6c7:	eb 04                	jmp    0x40c6cd
40c6c9:	83 65 98 00          	andl   $0x0,-0x68(%ebp)
40c6cd:	83 7d d8 00          	cmpl   $0x0,-0x28(%ebp)
40c6d1:	7e 09                	jle    0x40c6dc
40c6d3:	81 7d d8 ff 7f 00 00 	cmpl   $0x7fff,-0x28(%ebp)
40c6da:	7e 05                	jle    0x40c6e1
40c6dc:	e9 a3 00 00 00       	jmp    0x40c784
40c6e1:	6a 00                	push   $0x0
40c6e3:	8b 45 d8             	mov    -0x28(%ebp),%eax
40c6e6:	48                   	dec    %eax
40c6e7:	50                   	push   %eax
40c6e8:	6a 01                	push   $0x1
40c6ea:	6a 11                	push   $0x11
40c6ec:	8d 45 d0             	lea    -0x30(%ebp),%eax
40c6ef:	50                   	push   %eax
40c6f0:	6a 01                	push   $0x1
40c6f2:	68 80 00 00 00       	push   $0x80
40c6f7:	e8 08 4e ff ff       	call   0x401504
40c6fc:	83 c4 1c             	add    $0x1c,%esp
40c6ff:	ff 75 d0             	push   -0x30(%ebp)
40c702:	8d 45 cc             	lea    -0x34(%ebp),%eax
40c705:	50                   	push   %eax
40c706:	e8 d5 4d ff ff       	call   0x4014e0
40c70b:	8d 45 a8             	lea    -0x58(%ebp),%eax
40c70e:	50                   	push   %eax
40c70f:	ff 75 d8             	push   -0x28(%ebp)
40c712:	8b 45 cc             	mov    -0x34(%ebp),%eax
40c715:	33 c9                	xor    %ecx,%ecx
40c717:	2b 48 14             	sub    0x14(%eax),%ecx
40c71a:	8b 45 cc             	mov    -0x34(%ebp),%eax
40c71d:	8b 40 0c             	mov    0xc(%eax),%eax
40c720:	03 c1                	add    %ecx,%eax
40c722:	50                   	push   %eax
40c723:	8b 45 d4             	mov    -0x2c(%ebp),%eax
40c726:	8b 00                	mov    (%eax),%eax
40c728:	ff 75 d4             	push   -0x2c(%ebp)
40c72b:	ff 50 0c             	call   *0xc(%eax)
40c72e:	db e2                	fnclex
40c730:	89 45 a4             	mov    %eax,-0x5c(%ebp)
40c733:	83 7d a4 00          	cmpl   $0x0,-0x5c(%ebp)
40c737:	7d 17                	jge    0x40c750
40c739:	6a 0c                	push   $0xc
40c73b:	68 c0 47 40 00       	push   $0x4047c0
40c740:	ff 75 d4             	push   -0x2c(%ebp)
40c743:	ff 75 a4             	push   -0x5c(%ebp)
40c746:	e8 89 4d ff ff       	call   0x4014d4
40c74b:	89 45 94             	mov    %eax,-0x6c(%ebp)
40c74e:	eb 04                	jmp    0x40c754
40c750:	83 65 94 00          	andl   $0x0,-0x6c(%ebp)
40c754:	8d 45 cc             	lea    -0x34(%ebp),%eax
40c757:	50                   	push   %eax
40c758:	e8 7d 4d ff ff       	call   0x4014da
40c75d:	8d 45 d0             	lea    -0x30(%ebp),%eax
40c760:	89 45 b4             	mov    %eax,-0x4c(%ebp)
40c763:	c7 45 ac 11 60 00 00 	movl   $0x6011,-0x54(%ebp)
40c76a:	6a 40                	push   $0x40
40c76c:	8d 45 ac             	lea    -0x54(%ebp),%eax
40c76f:	50                   	push   %eax
40c770:	8d 45 bc             	lea    -0x44(%ebp),%eax
40c773:	50                   	push   %eax
40c774:	e8 68 00 00 00       	call   0x40c7e1
40c779:	8d 55 bc             	lea    -0x44(%ebp),%edx
40c77c:	8d 4d dc             	lea    -0x24(%ebp),%ecx
40c77f:	e8 08 4d ff ff       	call   0x40148c
40c784:	68 c3 c7 40 00       	push   $0x40c7c3
40c789:	eb 24                	jmp    0x40c7af
40c78b:	8b 45 fc             	mov    -0x4(%ebp),%eax
40c78e:	83 e0 04             	and    $0x4,%eax
40c791:	85 c0                	test   %eax,%eax
40c793:	74 08                	je     0x40c79d
40c795:	8d 4d dc             	lea    -0x24(%ebp),%ecx
40c798:	e8 07 4d ff ff       	call   0x4014a4
40c79d:	8d 45 cc             	lea    -0x34(%ebp),%eax
40c7a0:	50                   	push   %eax
40c7a1:	e8 34 4d ff ff       	call   0x4014da
40c7a6:	8d 4d bc             	lea    -0x44(%ebp),%ecx
40c7a9:	e8 f6 4c ff ff       	call   0x4014a4
40c7ae:	c3                   	ret
40c7af:	8d 4d d4             	lea    -0x2c(%ebp),%ecx
40c7b2:	e8 35 4d ff ff       	call   0x4014ec
40c7b7:	8d 45 d0             	lea    -0x30(%ebp),%eax
40c7ba:	50                   	push   %eax
40c7bb:	6a 00                	push   $0x0
40c7bd:	e8 0c 4d ff ff       	call   0x4014ce
40c7c2:	c3                   	ret
40c7c3:	8d 75 dc             	lea    -0x24(%ebp),%esi
40c7c6:	8b 7d 08             	mov    0x8(%ebp),%edi
40c7c9:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40c7ca:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40c7cb:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40c7cc:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40c7cd:	8b 45 08             	mov    0x8(%ebp),%eax
40c7d0:	8b 4d ec             	mov    -0x14(%ebp),%ecx
40c7d3:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40c7da:	5f                   	pop    %edi
40c7db:	5e                   	pop    %esi
40c7dc:	5b                   	pop    %ebx
40c7dd:	c9                   	leave
40c7de:	c2 08 00             	ret    $0x8
40c7e1:	55                   	push   %ebp
40c7e2:	8b ec                	mov    %esp,%ebp
40c7e4:	83 ec 0c             	sub    $0xc,%esp
40c7e7:	68 36 13 40 00       	push   $0x401336
40c7ec:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
40c7f2:	50                   	push   %eax
40c7f3:	64 89 25 00 00 00 00 	mov    %esp,%fs:0x0
40c7fa:	6a 68                	push   $0x68
40c7fc:	58                   	pop    %eax
40c7fd:	e8 2e 4b ff ff       	call   0x401330
40c802:	53                   	push   %ebx
40c803:	56                   	push   %esi
40c804:	57                   	push   %edi
40c805:	89 65 f4             	mov    %esp,-0xc(%ebp)
40c808:	c7 45 f8 68 12 40 00 	movl   $0x401268,-0x8(%ebp)
40c80f:	8b 55 0c             	mov    0xc(%ebp),%edx
40c812:	8d 4d 9c             	lea    -0x64(%ebp),%ecx
40c815:	e8 06 4c ff ff       	call   0x401420
40c81a:	50                   	push   %eax
40c81b:	8d 45 ac             	lea    -0x54(%ebp),%eax
40c81e:	50                   	push   %eax
40c81f:	e8 e4 4b ff ff       	call   0x401408
40c824:	8d 45 ac             	lea    -0x54(%ebp),%eax
40c827:	50                   	push   %eax
40c828:	8d 45 e0             	lea    -0x20(%ebp),%eax
40c82b:	50                   	push   %eax
40c82c:	e8 df 4c ff ff       	call   0x401510
40c831:	ff 75 e0             	push   -0x20(%ebp)
40c834:	6a 01                	push   $0x1
40c836:	e8 27 4c ff ff       	call   0x401462
40c83b:	40                   	inc    %eax
40c83c:	89 45 e8             	mov    %eax,-0x18(%ebp)
40c83f:	8b 45 10             	mov    0x10(%ebp),%eax
40c842:	89 45 98             	mov    %eax,-0x68(%ebp)
40c845:	8b 45 98             	mov    -0x68(%ebp),%eax
40c848:	89 45 84             	mov    %eax,-0x7c(%ebp)
40c84b:	83 7d 84 40          	cmpl   $0x40,-0x7c(%ebp)
40c84f:	74 02                	je     0x40c853
40c851:	eb 67                	jmp    0x40c8ba
40c853:	8b 45 e8             	mov    -0x18(%ebp),%eax
40c856:	48                   	dec    %eax
40c857:	89 45 90             	mov    %eax,-0x70(%ebp)
40c85a:	c7 45 94 01 00 00 00 	movl   $0x1,-0x6c(%ebp)
40c861:	83 65 e4 00          	andl   $0x0,-0x1c(%ebp)
40c865:	eb 09                	jmp    0x40c870
40c867:	8b 45 e4             	mov    -0x1c(%ebp),%eax
40c86a:	03 45 94             	add    -0x6c(%ebp),%eax
40c86d:	89 45 e4             	mov    %eax,-0x1c(%ebp)
40c870:	8b 45 e4             	mov    -0x1c(%ebp),%eax
40c873:	3b 45 90             	cmp    -0x70(%ebp),%eax
40c876:	7f 42                	jg     0x40c8ba
40c878:	8b 45 e0             	mov    -0x20(%ebp),%eax
40c87b:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
40c87e:	2b 48 14             	sub    0x14(%eax),%ecx
40c881:	8b 45 e0             	mov    -0x20(%ebp),%eax
40c884:	8b 40 0c             	mov    0xc(%eax),%eax
40c887:	0f b6 04 08          	movzbl (%eax,%ecx,1),%eax
40c88b:	50                   	push   %eax
40c88c:	8d 45 c0             	lea    -0x40(%ebp),%eax
40c88f:	50                   	push   %eax
40c890:	e8 d3 4b ff ff       	call   0x401468
40c895:	8d 45 d0             	lea    -0x30(%ebp),%eax
40c898:	50                   	push   %eax
40c899:	8d 45 c0             	lea    -0x40(%ebp),%eax
40c89c:	50                   	push   %eax
40c89d:	8d 45 b0             	lea    -0x50(%ebp),%eax
40c8a0:	50                   	push   %eax
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)