40ba89:	85 c0                	test   %eax,%eax
40ba8b:	59                   	pop    %ecx
40ba8c:	8d 85 c0 df ff ff    	lea    -0x2040(%ebp),%eax
40ba92:	75 29                	jne    0x40babd
40ba94:	68 00 08 00 00       	push   $0x800
40ba99:	50                   	push   %eax
40ba9a:	6a 00                	push   $0x0
40ba9c:	ff 15 78 a0 42 00    	call   *0x42a078
40baa2:	8d 85 c0 df ff ff    	lea    -0x2040(%ebp),%eax
40baa8:	6a 5c                	push   $0x5c
40baaa:	50                   	push   %eax
40baab:	e8 bf 09 01 00       	call   0x41c46f
40bab0:	59                   	pop    %ecx
40bab1:	59                   	pop    %ecx
40bab2:	85 c0                	test   %eax,%eax
40bab4:	0f 84 89 02 00 00    	je     0x40bd43
40baba:	83 c0 02             	add    $0x2,%eax
40babd:	ff 75 08             	push   0x8(%ebp)
40bac0:	50                   	push   %eax
40bac1:	e8 0d e7 00 00       	call   0x41a1d3
40bac6:	59                   	pop    %ecx
40bac7:	59                   	pop    %ecx
40bac8:	53                   	push   %ebx
40bac9:	8d 8d c0 ef ff ff    	lea    -0x1040(%ebp),%ecx
40bacf:	e8 70 cc ff ff       	call   0x408744
40bad4:	6a 04                	push   $0x4
40bad6:	8d 85 c0 df ff ff    	lea    -0x2040(%ebp),%eax
40badc:	33 db                	xor    %ebx,%ebx
40bade:	50                   	push   %eax
40badf:	8d 8d c0 ef ff ff    	lea    -0x1040(%ebp),%ecx
40bae5:	89 5d fc             	mov    %ebx,-0x4(%ebp)
40bae8:	e8 94 cc ff ff       	call   0x408781
40baed:	84 c0                	test   %al,%al
40baef:	75 14                	jne    0x40bb05
40baf1:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
40baf5:	8d 8d c0 ef ff ff    	lea    -0x1040(%ebp),%ecx
40bafb:	e8 0a d1 ff ff       	call   0x408c0a
40bb00:	e9 3d 02 00 00       	jmp    0x40bd42
40bb05:	83 4d f0 ff          	orl    $0xffffffff,-0x10(%ebp)
40bb09:	88 5d 0b             	mov    %bl,0xb(%ebp)
40bb0c:	89 5d ec             	mov    %ebx,-0x14(%ebp)
40bb0f:	57                   	push   %edi
40bb10:	83 7d f0 ff          	cmpl   $0xffffffff,-0x10(%ebp)
40bb14:	0f 85 17 01 00 00    	jne    0x40bc31
40bb1a:	8d 8d c0 ef ff ff    	lea    -0x1040(%ebp),%ecx
40bb20:	e8 16 d0 ff ff       	call   0x408b3b
40bb25:	89 45 e4             	mov    %eax,-0x1c(%ebp)
40bb28:	68 00 20 00 00       	push   $0x2000
40bb2d:	8d 85 c0 bf ff ff    	lea    -0x4040(%ebp),%eax
40bb33:	50                   	push   %eax
40bb34:	8d 8d c0 ef ff ff    	lea    -0x1040(%ebp),%ecx
40bb3a:	e8 ce d2 ff ff       	call   0x408e0d
40bb3f:	89 45 e8             	mov    %eax,-0x18(%ebp)
40bb42:	83 c0 f0             	add    $0xfffffff0,%eax
40bb45:	33 ff                	xor    %edi,%edi
40bb47:	3b c3                	cmp    %ebx,%eax
40bb49:	0f 8c ae 00 00 00    	jl     0x40bbfd
40bb4f:	8d 9c 3d c0 bf ff ff 	lea    -0x4040(%ebp,%edi,1),%ebx
40bb56:	80 3b 2a             	cmpb   $0x2a,(%ebx)
40bb59:	75 25                	jne    0x40bb80
40bb5b:	80 bc 3d c1 bf ff ff 	cmpb   $0x2a,-0x403f(%ebp,%edi,1)
40bb62:	2a
40bb63:	75 1b                	jne    0x40bb80
40bb65:	6a 0b                	push   $0xb
40bb67:	8d 84 3d c2 bf ff ff 	lea    -0x403e(%ebp,%edi,1),%eax
40bb6e:	68 e0 a6 42 00       	push   $0x42a6e0
40bb73:	50                   	push   %eax
40bb74:	e8 af 0e 01 00       	call   0x41ca28
40bb79:	83 c4 0c             	add    $0xc,%esp
40bb7c:	85 c0                	test   %eax,%eax
40bb7e:	74 75                	je     0x40bbf5
40bb80:	66 83 3b 2a          	cmpw   $0x2a,(%ebx)
40bb84:	75 2c                	jne    0x40bbb2
40bb86:	8d 84 3d c4 bf ff ff 	lea    -0x403c(%ebp,%edi,1),%eax
40bb8d:	66 83 78 fe 2a       	cmpw   $0x2a,-0x2(%eax)
40bb92:	75 1e                	jne    0x40bbb2
40bb94:	8b 4d e8             	mov    -0x18(%ebp),%ecx
40bb97:	83 c1 e0             	add    $0xffffffe0,%ecx
40bb9a:	3b f9                	cmp    %ecx,%edi
40bb9c:	7f 14                	jg     0x40bbb2
40bb9e:	6a 0b                	push   $0xb
40bba0:	68 c4 a6 42 00       	push   $0x42a6c4
40bba5:	50                   	push   %eax
40bba6:	e8 cf 07 01 00       	call   0x41c37a
40bbab:	83 c4 0c             	add    $0xc,%esp
40bbae:	85 c0                	test   %eax,%eax
40bbb0:	74 3f                	je     0x40bbf1
40bbb2:	80 3b 52             	cmpb   $0x52,(%ebx)
40bbb5:	75 29                	jne    0x40bbe0
40bbb7:	80 bc 3d c1 bf ff ff 	cmpb   $0x61,-0x403f(%ebp,%edi,1)
40bbbe:	61
40bbbf:	75 1f                	jne    0x40bbe0
40bbc1:	6a 04                	push   $0x4
40bbc3:	8d 84 3d c2 bf ff ff 	lea    -0x403e(%ebp,%edi,1),%eax
40bbca:	68 bc a6 42 00       	push   $0x42a6bc
40bbcf:	50                   	push   %eax
40bbd0:	e8 53 0e 01 00       	call   0x41ca28
40bbd5:	83 c4 0c             	add    $0xc,%esp
40bbd8:	85 c0                	test   %eax,%eax
40bbda:	0f 84 52 01 00 00    	je     0x40bd32
40bbe0:	8b 45 e8             	mov    -0x18(%ebp),%eax
40bbe3:	47                   	inc    %edi
40bbe4:	83 c0 f0             	add    $0xfffffff0,%eax
40bbe7:	3b f8                	cmp    %eax,%edi
40bbe9:	0f 8e 60 ff ff ff    	jle    0x40bb4f
40bbef:	eb 0c                	jmp    0x40bbfd
40bbf1:	c6 45 0b 01          	movb   $0x1,0xb(%ebp)
40bbf5:	8b 45 e4             	mov    -0x1c(%ebp),%eax
40bbf8:	03 f8                	add    %eax,%edi
40bbfa:	89 7d f0             	mov    %edi,-0x10(%ebp)
40bbfd:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
40bc00:	8b 45 e8             	mov    -0x18(%ebp),%eax
40bc03:	33 db                	xor    %ebx,%ebx
40bc05:	53                   	push   %ebx
40bc06:	8d 44 08 f0          	lea    -0x10(%eax,%ecx,1),%eax
40bc0a:	53                   	push   %ebx
40bc0b:	50                   	push   %eax
40bc0c:	8d 8d c0 ef ff ff    	lea    -0x1040(%ebp),%ecx
40bc12:	e8 68 d3 ff ff       	call   0x408f7f
40bc17:	ff 45 ec             	incl   -0x14(%ebp)
40bc1a:	81 7d ec 80 00 00 00 	cmpl   $0x80,-0x14(%ebp)
40bc21:	0f 82 e9 fe ff ff    	jb     0x40bb10
40bc27:	83 7d f0 ff          	cmpl   $0xffffffff,-0x10(%ebp)
40bc2b:	0f 84 01 01 00 00    	je     0x40bd32
40bc31:	8b 45 f0             	mov    -0x10(%ebp),%eax
40bc34:	99                   	cltd
40bc35:	53                   	push   %ebx
40bc36:	52                   	push   %edx
40bc37:	50                   	push   %eax
40bc38:	8d 8d c0 ef ff ff    	lea    -0x1040(%ebp),%ecx
40bc3e:	e8 3c d3 ff ff       	call   0x408f7f
40bc43:	68 02 00 08 00       	push   $0x80002
40bc48:	e8 11 0d 01 00       	call   0x41c95e
40bc4d:	59                   	pop    %ecx
40bc4e:	89 06                	mov    %eax,(%esi)
40bc50:	8d 8d c0 ef ff ff    	lea    -0x1040(%ebp),%ecx
40bc56:	3b c3                	cmp    %ebx,%eax
40bc58:	0f 84 da 00 00 00    	je     0x40bd38
40bc5e:	68 00 00 08 00       	push   $0x80000
40bc63:	50                   	push   %eax
40bc64:	e8 a4 d1 ff ff       	call   0x408e0d
40bc69:	80 7d 0b 00          	cmpb   $0x0,0xb(%ebp)
40bc6d:	89 46 04             	mov    %eax,0x4(%esi)
40bc70:	74 07                	je     0x40bc79
40bc72:	d1 e8                	shr    $1,%eax
40bc74:	89 46 04             	mov    %eax,0x4(%esi)
40bc77:	eb 35                	jmp    0x40bcae
40bc79:	8d 44 00 02          	lea    0x2(%eax,%eax,1),%eax
40bc7d:	50                   	push   %eax
40bc7e:	e8 db 0c 01 00       	call   0x41c95e
40bc83:	8b f8                	mov    %eax,%edi
40bc85:	59                   	pop    %ecx
40bc86:	3b fb                	cmp    %ebx,%edi
40bc88:	0f 84 a4 00 00 00    	je     0x40bd32
40bc8e:	8b 46 04             	mov    0x4(%esi),%eax
40bc91:	8b 0e                	mov    (%esi),%ecx
40bc93:	c6 04 08 00          	movb   $0x0,(%eax,%ecx,1)
40bc97:	8b 46 04             	mov    0x4(%esi),%eax
40bc9a:	40                   	inc    %eax
40bc9b:	50                   	push   %eax
40bc9c:	57                   	push   %edi
40bc9d:	ff 36                	push   (%esi)
40bc9f:	e8 d0 5a 00 00       	call   0x411774
40bca4:	ff 36                	push   (%esi)
40bca6:	e8 37 e2 00 00       	call   0x419ee2
40bcab:	59                   	pop    %ecx
40bcac:	89 3e                	mov    %edi,(%esi)
40bcae:	8b 4e 04             	mov    0x4(%esi),%ecx
40bcb1:	b8 00 00 04 00       	mov    $0x40000,%eax
40bcb6:	3b c8                	cmp    %eax,%ecx
40bcb8:	77 02                	ja     0x40bcbc
40bcba:	8b c1                	mov    %ecx,%eax
40bcbc:	8b 0e                	mov    (%esi),%ecx
40bcbe:	33 d2                	xor    %edx,%edx
40bcc0:	66 89 14 41          	mov    %dx,(%ecx,%eax,2)
40bcc4:	33 c9                	xor    %ecx,%ecx
40bcc6:	39 4e 04             	cmp    %ecx,0x4(%esi)
40bcc9:	76 5c                	jbe    0x40bd27
40bccb:	8b 06                	mov    (%esi),%eax
40bccd:	0f b7 14 58          	movzwl (%eax,%ebx,2),%edx
40bcd1:	43                   	inc    %ebx
40bcd2:	66 85 d2             	test   %dx,%dx
40bcd5:	74 50                	je     0x40bd27
40bcd7:	66 83 fa 5c          	cmp    $0x5c,%dx
40bcdb:	75 31                	jne    0x40bd0e
40bcdd:	0f b7 3c 58          	movzwl (%eax,%ebx,2),%edi
40bce1:	83 ef 22             	sub    $0x22,%edi
40bce4:	74 23                	je     0x40bd09
40bce6:	83 ef 3a             	sub    $0x3a,%edi
40bce9:	74 1a                	je     0x40bd05
40bceb:	83 ef 12             	sub    $0x12,%edi
40bcee:	74 11                	je     0x40bd01
40bcf0:	83 ef 04             	sub    $0x4,%edi
40bcf3:	74 08                	je     0x40bcfd
40bcf5:	4f                   	dec    %edi
40bcf6:	4f                   	dec    %edi
40bcf7:	75 24                	jne    0x40bd1d
40bcf9:	6a 09                	push   $0x9
40bcfb:	eb 0e                	jmp    0x40bd0b
40bcfd:	6a 0d                	push   $0xd
40bcff:	eb 0a                	jmp    0x40bd0b
40bd01:	6a 0a                	push   $0xa
40bd03:	eb 06                	jmp    0x40bd0b
40bd05:	6a 5c                	push   $0x5c
40bd07:	eb 02                	jmp    0x40bd0b
40bd09:	6a 22                	push   $0x22
40bd0b:	43                   	inc    %ebx
40bd0c:	eb 0e                	jmp    0x40bd1c
40bd0e:	66 83 fa 0d          	cmp    $0xd,%dx
40bd12:	74 06                	je     0x40bd1a
40bd14:	66 83 fa 0a          	cmp    $0xa,%dx
40bd18:	75 03                	jne    0x40bd1d
40bd1a:	6a 0c                	push   $0xc
40bd1c:	5a                   	pop    %edx
40bd1d:	66 89 14 48          	mov    %dx,(%eax,%ecx,2)
40bd21:	41                   	inc    %ecx
40bd22:	3b 5e 04             	cmp    0x4(%esi),%ebx
40bd25:	72 a4                	jb     0x40bccb
40bd27:	8b 06                	mov    (%esi),%eax
40bd29:	33 d2                	xor    %edx,%edx
40bd2b:	66 89 14 48          	mov    %dx,(%eax,%ecx,2)
40bd2f:	89 4e 04             	mov    %ecx,0x4(%esi)
40bd32:	8d 8d c0 ef ff ff    	lea    -0x1040(%ebp),%ecx
40bd38:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
40bd3c:	e8 c9 ce ff ff       	call   0x408c0a
40bd41:	5f                   	pop    %edi
40bd42:	5b                   	pop    %ebx
40bd43:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40bd46:	5e                   	pop    %esi
40bd47:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40bd4e:	c9                   	leave
40bd4f:	c2 04 00             	ret    $0x4
40bd52:	55                   	push   %ebp
40bd53:	8b ec                	mov    %esp,%ebp
40bd55:	b8 14 20 00 00       	mov    $0x2014,%eax
40bd5a:	e8 71 e7 00 00       	call   0x41a4d0
40bd5f:	53                   	push   %ebx
40bd60:	8b d9                	mov    %ecx,%ebx
40bd62:	83 3b 00             	cmpl   $0x0,(%ebx)
40bd65:	56                   	push   %esi
40bd66:	57                   	push   %edi
40bd67:	0f 84 1b 01 00 00    	je     0x40be88
40bd6d:	8b 45 14             	mov    0x14(%ebp),%eax
40bd70:	83 e8 00             	sub    $0x0,%eax
40bd73:	b9 06 a7 42 00       	mov    $0x42a706,%ecx
40bd78:	74 14                	je     0x40bd8e
40bd7a:	48                   	dec    %eax
40bd7b:	74 0a                	je     0x40bd87
40bd7d:	48                   	dec    %eax
40bd7e:	75 13                	jne    0x40bd93
40bd80:	b9 04 a7 42 00       	mov    $0x42a704,%ecx
40bd85:	eb 0c                	jmp    0x40bd93
40bd87:	b9 00 a7 42 00       	mov    $0x42a700,%ecx
40bd8c:	eb 05                	jmp    0x40bd93
40bd8e:	b9 fc a6 42 00       	mov    $0x42a6fc,%ecx
40bd93:	6a 01                	push   $0x1
40bd95:	51                   	push   %ecx
40bd96:	6a ff                	push   $0xffffffff
40bd98:	e8 e0 99 ff ff       	call   0x40577d
40bd9d:	83 7d 18 00          	cmpl   $0x0,0x18(%ebp)
40bda1:	8b f8                	mov    %eax,%edi
40bda3:	be 00 10 00 00       	mov    $0x1000,%esi
40bda8:	74 2d                	je     0x40bdd7
40bdaa:	56                   	push   %esi
40bdab:	8d 85 ec df ff ff    	lea    -0x2014(%ebp),%eax
40bdb1:	50                   	push   %eax
40bdb2:	ff 75 18             	push   0x18(%ebp)
40bdb5:	e8 7b 59 00 00       	call   0x411735
40bdba:	8d 85 ec df ff ff    	lea    -0x2014(%ebp),%eax
40bdc0:	50                   	push   %eax
40bdc1:	e8 7a e6 00 00       	call   0x41a440
40bdc6:	59                   	pop    %ecx
40bdc7:	50                   	push   %eax
40bdc8:	8d 85 ec df ff ff    	lea    -0x2014(%ebp),%eax
40bdce:	50                   	push   %eax
40bdcf:	57                   	push   %edi
40bdd0:	e8 a8 99 ff ff       	call   0x40577d
40bdd5:	8b f8                	mov    %eax,%edi
40bdd7:	56                   	push   %esi
40bdd8:	8d 85 ec ef ff ff    	lea    -0x1014(%ebp),%eax
40bdde:	50                   	push   %eax
40bddf:	ff 75 08             	push   0x8(%ebp)
40bde2:	e8 4e 59 00 00       	call   0x411735
40bde7:	8d 85 ec ef ff ff    	lea    -0x1014(%ebp),%eax
40bded:	50                   	push   %eax
40bdee:	c6 45 eb 00          	movb   $0x0,-0x15(%ebp)
40bdf2:	e8 49 e6 00 00       	call   0x41a440
40bdf7:	59                   	pop    %ecx
40bdf8:	50                   	push   %eax
40bdf9:	8d 85 ec ef ff ff    	lea    -0x1014(%ebp),%eax
40bdff:	50                   	push   %eax
40be00:	57                   	push   %edi
40be01:	e8 77 99 ff ff       	call   0x40577d
40be06:	f7 d0                	not    %eax
40be08:	50                   	push   %eax
40be09:	68 f0 a6 42 00       	push   $0x42a6f0
40be0e:	8d 45 ec             	lea    -0x14(%ebp),%eax
40be11:	6a 0a                	push   $0xa
40be13:	50                   	push   %eax
40be14:	e8 c9 17 00 00       	call   0x40d5e2
40be19:	83 c4 10             	add    $0x10,%esp
40be1c:	8d 45 ec             	lea    -0x14(%ebp),%eax
40be1f:	50                   	push   %eax
40be20:	8b cb                	mov    %ebx,%ecx
40be22:	e8 b3 fb ff ff       	call   0x40b9da
40be27:	85 c0                	test   %eax,%eax
40be29:	74 5d                	je     0x40be88
40be2b:	8d 58 14             	lea    0x14(%eax),%ebx
40be2e:	6a 0c                	push   $0xc
40be30:	53                   	push   %ebx
40be31:	e8 13 06 01 00       	call   0x41c449
40be36:	59                   	pop    %ecx
40be37:	59                   	pop    %ecx
40be38:	85 c0                	test   %eax,%eax
40be3a:	74 08                	je     0x40be44
40be3c:	2b c3                	sub    %ebx,%eax
40be3e:	d1 f8                	sar    $1,%eax
40be40:	8b f0                	mov    %eax,%esi
40be42:	eb 05                	jmp    0x40be49
40be44:	be ff 00 00 00       	mov    $0xff,%esi
40be49:	8b 45 10             	mov    0x10(%ebp),%eax
40be4c:	8d 48 ff             	lea    -0x1(%eax),%ecx
40be4f:	3b f1                	cmp    %ecx,%esi
40be51:	76 08                	jbe    0x40be5b
40be53:	f7 d8                	neg    %eax
40be55:	1b c0                	sbb    %eax,%eax
40be57:	23 c1                	and    %ecx,%eax
40be59:	8b f0                	mov    %eax,%esi
40be5b:	8b 7d 0c             	mov    0xc(%ebp),%edi
40be5e:	85 f6                	test   %esi,%esi
40be60:	76 0b                	jbe    0x40be6d
40be62:	56                   	push   %esi
40be63:	53                   	push   %ebx
40be64:	57                   	push   %edi
40be65:	e8 47 05 01 00       	call   0x41c3b1
40be6a:	83 c4 0c             	add    $0xc,%esp
40be6d:	33 c0                	xor    %eax,%eax
40be6f:	6a 22                	push   $0x22
40be71:	57                   	push   %edi
40be72:	66 89 04 77          	mov    %ax,(%edi,%esi,2)
40be76:	e8 f4 05 01 00       	call   0x41c46f
40be7b:	59                   	pop    %ecx
40be7c:	59                   	pop    %ecx
40be7d:	85 c0                	test   %eax,%eax
40be7f:	74 1a                	je     0x40be9b
40be81:	33 c9                	xor    %ecx,%ecx
40be83:	66 89 08             	mov    %cx,(%eax)
40be86:	eb 13                	jmp    0x40be9b
40be88:	8b 45 0c             	mov    0xc(%ebp),%eax
40be8b:	39 45 08             	cmp    %eax,0x8(%ebp)