40bbe7:	8d 45 c0             	lea    -0x40(%ebp),%eax
40bbea:	50                   	push   %eax
40bbeb:	e8 d6 f0 ff ff       	call   0x40acc6
40bbf0:	83 c4 10             	add    $0x10,%esp
40bbf3:	83 f8 ff             	cmp    $0xffffffff,%eax
40bbf6:	0f 84 2b 01 00 00    	je     0x40bd27
40bbfc:	8b 45 d4             	mov    -0x2c(%ebp),%eax
40bbff:	53                   	push   %ebx
40bc00:	53                   	push   %ebx
40bc01:	40                   	inc    %eax
40bc02:	6a 05                	push   $0x5
40bc04:	89 45 d4             	mov    %eax,-0x2c(%ebp)
40bc07:	8d 45 d8             	lea    -0x28(%ebp),%eax
40bc0a:	50                   	push   %eax
40bc0b:	ff 75 cc             	push   -0x34(%ebp)
40bc0e:	8d 45 c0             	lea    -0x40(%ebp),%eax
40bc11:	50                   	push   %eax
40bc12:	53                   	push   %ebx
40bc13:	ff 75 94             	push   -0x6c(%ebp)
40bc16:	e8 23 d2 ff ff       	call   0x408e3e
40bc1b:	83 c4 20             	add    $0x20,%esp
40bc1e:	89 45 c8             	mov    %eax,-0x38(%ebp)
40bc21:	85 c0                	test   %eax,%eax
40bc23:	0f 84 fe 00 00 00    	je     0x40bd27
40bc29:	53                   	push   %ebx
40bc2a:	8d 4d a4             	lea    -0x5c(%ebp),%ecx
40bc2d:	51                   	push   %ecx
40bc2e:	50                   	push   %eax
40bc2f:	8d 45 d8             	lea    -0x28(%ebp),%eax
40bc32:	50                   	push   %eax
40bc33:	ff 75 9c             	push   -0x64(%ebp)
40bc36:	ff 15 94 f0 40 00    	call   *0x40f094
40bc3c:	85 c0                	test   %eax,%eax
40bc3e:	0f 84 db 00 00 00    	je     0x40bd1f
40bc44:	8b 46 08             	mov    0x8(%esi),%eax
40bc47:	2b 45 a0             	sub    -0x60(%ebp),%eax
40bc4a:	8b 55 d4             	mov    -0x2c(%ebp),%edx
40bc4d:	03 c2                	add    %edx,%eax
40bc4f:	89 45 b8             	mov    %eax,-0x48(%ebp)
40bc52:	89 46 04             	mov    %eax,0x4(%esi)
40bc55:	8b 45 c8             	mov    -0x38(%ebp),%eax
40bc58:	39 45 a4             	cmp    %eax,-0x5c(%ebp)
40bc5b:	0f 82 c6 00 00 00    	jb     0x40bd27
40bc61:	80 7d d3 0a          	cmpb   $0xa,-0x2d(%ebp)
40bc65:	75 3c                	jne    0x40bca3
40bc67:	6a 0d                	push   $0xd
40bc69:	58                   	pop    %eax
40bc6a:	53                   	push   %ebx
40bc6b:	66 89 45 a8          	mov    %ax,-0x58(%ebp)
40bc6f:	8d 45 a4             	lea    -0x5c(%ebp),%eax
40bc72:	50                   	push   %eax
40bc73:	6a 01                	push   $0x1
40bc75:	8d 45 a8             	lea    -0x58(%ebp),%eax
40bc78:	50                   	push   %eax
40bc79:	ff 75 9c             	push   -0x64(%ebp)
40bc7c:	ff 15 94 f0 40 00    	call   *0x40f094
40bc82:	85 c0                	test   %eax,%eax
40bc84:	0f 84 95 00 00 00    	je     0x40bd1f
40bc8a:	83 7d a4 01          	cmpl   $0x1,-0x5c(%ebp)
40bc8e:	0f 82 93 00 00 00    	jb     0x40bd27
40bc94:	ff 46 08             	incl   0x8(%esi)
40bc97:	ff 46 04             	incl   0x4(%esi)
40bc9a:	8b 46 04             	mov    0x4(%esi),%eax
40bc9d:	8b 55 d4             	mov    -0x2c(%ebp),%edx
40bca0:	89 45 b8             	mov    %eax,-0x48(%ebp)
40bca3:	3b 55 ac             	cmp    -0x54(%ebp),%edx
40bca6:	73 7f                	jae    0x40bd27
40bca8:	8b 4d 90             	mov    -0x70(%ebp),%ecx
40bcab:	e9 76 fd ff ff       	jmp    0x40ba26
40bcb0:	85 ff                	test   %edi,%edi
40bcb2:	7e 24                	jle    0x40bcd8
40bcb4:	8b 45 d4             	mov    -0x2c(%ebp),%eax
40bcb7:	8b 75 cc             	mov    -0x34(%ebp),%esi
40bcba:	8b 4d bc             	mov    -0x44(%ebp),%ecx
40bcbd:	8b 14 8d 78 70 41 00 	mov    0x417078(,%ecx,4),%edx
40bcc4:	03 55 b0             	add    -0x50(%ebp),%edx
40bcc7:	8a 0c 03             	mov    (%ebx,%eax,1),%cl
40bcca:	03 d3                	add    %ebx,%edx
40bccc:	43                   	inc    %ebx
40bccd:	88 4c 32 2e          	mov    %cl,0x2e(%edx,%esi,1)
40bcd1:	3b df                	cmp    %edi,%ebx
40bcd3:	7c e5                	jl     0x40bcba
40bcd5:	8b 75 08             	mov    0x8(%ebp),%esi
40bcd8:	01 7e 04             	add    %edi,0x4(%esi)
40bcdb:	eb 4a                	jmp    0x40bd27
40bcdd:	85 ff                	test   %edi,%edi
40bcdf:	7e f7                	jle    0x40bcd8
40bce1:	8b 75 b0             	mov    -0x50(%ebp),%esi
40bce4:	8b 45 bc             	mov    -0x44(%ebp),%eax
40bce7:	8b 0c 85 78 70 41 00 	mov    0x417078(,%eax,4),%ecx
40bcee:	8a 04 13             	mov    (%ebx,%edx,1),%al
40bcf1:	03 ce                	add    %esi,%ecx
40bcf3:	88 44 19 2e          	mov    %al,0x2e(%ecx,%ebx,1)
40bcf7:	43                   	inc    %ebx
40bcf8:	3b df                	cmp    %edi,%ebx
40bcfa:	7c e8                	jl     0x40bce4
40bcfc:	eb d7                	jmp    0x40bcd5
40bcfe:	8b 45 b4             	mov    -0x4c(%ebp),%eax
40bd01:	8a 0a                	mov    (%edx),%cl
40bd03:	88 4c 38 2e          	mov    %cl,0x2e(%eax,%edi,1)
40bd07:	8b 45 bc             	mov    -0x44(%ebp),%eax
40bd0a:	8b 04 85 78 70 41 00 	mov    0x417078(,%eax,4),%eax
40bd11:	80 4c 38 2d 04       	orb    $0x4,0x2d(%eax,%edi,1)
40bd16:	8b 45 b8             	mov    -0x48(%ebp),%eax
40bd19:	40                   	inc    %eax
40bd1a:	89 46 04             	mov    %eax,0x4(%esi)
40bd1d:	eb 08                	jmp    0x40bd27
40bd1f:	ff 15 58 f0 40 00    	call   *0x40f058
40bd25:	89 06                	mov    %eax,(%esi)
40bd27:	8b c6                	mov    %esi,%eax
40bd29:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40bd2c:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40bd33:	59                   	pop    %ecx
40bd34:	5f                   	pop    %edi
40bd35:	5e                   	pop    %esi
40bd36:	5b                   	pop    %ebx
40bd37:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40bd3a:	33 cd                	xor    %ebp,%ecx
40bd3c:	e8 f4 78 ff ff       	call   0x403635
40bd41:	c9                   	leave
40bd42:	c3                   	ret
40bd43:	cc                   	int3
40bd44:	cc                   	int3
40bd45:	cc                   	int3
40bd46:	cc                   	int3
40bd47:	cc                   	int3
40bd48:	8b ff                	mov    %edi,%edi
40bd4a:	55                   	push   %ebp
40bd4b:	8b ec                	mov    %esp,%ebp
40bd4d:	51                   	push   %ecx
40bd4e:	53                   	push   %ebx
40bd4f:	56                   	push   %esi
40bd50:	8b 75 08             	mov    0x8(%ebp),%esi
40bd53:	33 c0                	xor    %eax,%eax
40bd55:	57                   	push   %edi
40bd56:	8b fe                	mov    %esi,%edi
40bd58:	ab                   	stos   %eax,%es:(%edi)
40bd59:	ab                   	stos   %eax,%es:(%edi)
40bd5a:	ab                   	stos   %eax,%es:(%edi)
40bd5b:	8b 7d 0c             	mov    0xc(%ebp),%edi
40bd5e:	8b 45 10             	mov    0x10(%ebp),%eax
40bd61:	03 c7                	add    %edi,%eax
40bd63:	89 45 fc             	mov    %eax,-0x4(%ebp)
40bd66:	3b f8                	cmp    %eax,%edi
40bd68:	73 3f                	jae    0x40bda9
40bd6a:	0f b7 1f             	movzwl (%edi),%ebx
40bd6d:	53                   	push   %ebx
40bd6e:	e8 83 0b 00 00       	call   0x40c8f6
40bd73:	59                   	pop    %ecx
40bd74:	66 3b c3             	cmp    %bx,%ax
40bd77:	75 28                	jne    0x40bda1
40bd79:	83 46 04 02          	addl   $0x2,0x4(%esi)
40bd7d:	83 fb 0a             	cmp    $0xa,%ebx
40bd80:	75 15                	jne    0x40bd97
40bd82:	6a 0d                	push   $0xd
40bd84:	5b                   	pop    %ebx
40bd85:	53                   	push   %ebx
40bd86:	e8 6b 0b 00 00       	call   0x40c8f6
40bd8b:	59                   	pop    %ecx
40bd8c:	66 3b c3             	cmp    %bx,%ax
40bd8f:	75 10                	jne    0x40bda1
40bd91:	ff 46 04             	incl   0x4(%esi)
40bd94:	ff 46 08             	incl   0x8(%esi)
40bd97:	83 c7 02             	add    $0x2,%edi
40bd9a:	3b 7d fc             	cmp    -0x4(%ebp),%edi
40bd9d:	72 cb                	jb     0x40bd6a
40bd9f:	eb 08                	jmp    0x40bda9
40bda1:	ff 15 58 f0 40 00    	call   *0x40f058
40bda7:	89 06                	mov    %eax,(%esi)
40bda9:	5f                   	pop    %edi
40bdaa:	8b c6                	mov    %esi,%eax
40bdac:	5e                   	pop    %esi
40bdad:	5b                   	pop    %ebx
40bdae:	c9                   	leave
40bdaf:	c3                   	ret
40bdb0:	8b ff                	mov    %edi,%edi
40bdb2:	55                   	push   %ebp
40bdb3:	8b ec                	mov    %esp,%ebp
40bdb5:	51                   	push   %ecx
40bdb6:	53                   	push   %ebx
40bdb7:	56                   	push   %esi
40bdb8:	8b 75 08             	mov    0x8(%ebp),%esi
40bdbb:	57                   	push   %edi
40bdbc:	56                   	push   %esi
40bdbd:	e8 79 07 00 00       	call   0x40c53b
40bdc2:	59                   	pop    %ecx
40bdc3:	85 c0                	test   %eax,%eax
40bdc5:	74 5f                	je     0x40be26
40bdc7:	8b fe                	mov    %esi,%edi
40bdc9:	83 e6 3f             	and    $0x3f,%esi
40bdcc:	c1 ff 06             	sar    $0x6,%edi
40bdcf:	6b de 38             	imul   $0x38,%esi,%ebx
40bdd2:	8b 04 bd 78 70 41 00 	mov    0x417078(,%edi,4),%eax
40bdd9:	80 7c 18 28 00       	cmpb   $0x0,0x28(%eax,%ebx,1)
40bdde:	7d 46                	jge    0x40be26
40bde0:	8b 75 0c             	mov    0xc(%ebp),%esi
40bde3:	80 7e 14 00          	cmpb   $0x0,0x14(%esi)
40bde7:	75 07                	jne    0x40bdf0
40bde9:	8b ce                	mov    %esi,%ecx
40bdeb:	e8 60 b2 ff ff       	call   0x407050
40bdf0:	8b 46 0c             	mov    0xc(%esi),%eax
40bdf3:	83 b8 a8 00 00 00 00 	cmpl   $0x0,0xa8(%eax)
40bdfa:	75 0e                	jne    0x40be0a
40bdfc:	8b 04 bd 78 70 41 00 	mov    0x417078(,%edi,4),%eax
40be03:	80 7c 18 29 00       	cmpb   $0x0,0x29(%eax,%ebx,1)
40be08:	74 1c                	je     0x40be26
40be0a:	8d 45 fc             	lea    -0x4(%ebp),%eax
40be0d:	50                   	push   %eax
40be0e:	8b 04 bd 78 70 41 00 	mov    0x417078(,%edi,4),%eax
40be15:	ff 74 18 18          	push   0x18(%eax,%ebx,1)
40be19:	ff 15 fc f0 40 00    	call   *0x40f0fc
40be1f:	85 c0                	test   %eax,%eax
40be21:	0f 95 c0             	setne  %al
40be24:	eb 02                	jmp    0x40be28
40be26:	32 c0                	xor    %al,%al
40be28:	5f                   	pop    %edi
40be29:	5e                   	pop    %esi
40be2a:	5b                   	pop    %ebx
40be2b:	c9                   	leave
40be2c:	c3                   	ret
40be2d:	8b ff                	mov    %edi,%edi
40be2f:	55                   	push   %ebp
40be30:	8b ec                	mov    %esp,%ebp
40be32:	b8 0c 14 00 00       	mov    $0x140c,%eax
40be37:	e8 44 2f 00 00       	call   0x40ed80
40be3c:	a1 14 60 41 00       	mov    0x416014,%eax
40be41:	33 c5                	xor    %ebp,%eax
40be43:	89 45 fc             	mov    %eax,-0x4(%ebp)
40be46:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40be49:	8b c1                	mov    %ecx,%eax
40be4b:	8b 55 14             	mov    0x14(%ebp),%edx
40be4e:	83 e1 3f             	and    $0x3f,%ecx
40be51:	c1 f8 06             	sar    $0x6,%eax
40be54:	6b c9 38             	imul   $0x38,%ecx,%ecx
40be57:	53                   	push   %ebx
40be58:	8b 5d 08             	mov    0x8(%ebp),%ebx
40be5b:	8b 04 85 78 70 41 00 	mov    0x417078(,%eax,4),%eax
40be62:	56                   	push   %esi
40be63:	57                   	push   %edi
40be64:	8b fb                	mov    %ebx,%edi
40be66:	8b 44 08 18          	mov    0x18(%eax,%ecx,1),%eax
40be6a:	8b 4d 10             	mov    0x10(%ebp),%ecx
40be6d:	03 d1                	add    %ecx,%edx
40be6f:	89 85 f8 eb ff ff    	mov    %eax,-0x1408(%ebp)
40be75:	33 c0                	xor    %eax,%eax
40be77:	ab                   	stos   %eax,%es:(%edi)
40be78:	89 95 f4 eb ff ff    	mov    %edx,-0x140c(%ebp)
40be7e:	ab                   	stos   %eax,%es:(%edi)
40be7f:	ab                   	stos   %eax,%es:(%edi)
40be80:	3b ca                	cmp    %edx,%ecx
40be82:	73 73                	jae    0x40bef7
40be84:	8b bd f8 eb ff ff    	mov    -0x1408(%ebp),%edi
40be8a:	8d b5 fc eb ff ff    	lea    -0x1404(%ebp),%esi
40be90:	3b ca                	cmp    %edx,%ecx
40be92:	73 18                	jae    0x40beac
40be94:	8a 01                	mov    (%ecx),%al
40be96:	41                   	inc    %ecx
40be97:	3c 0a                	cmp    $0xa,%al
40be99:	75 07                	jne    0x40bea2
40be9b:	ff 43 08             	incl   0x8(%ebx)
40be9e:	c6 06 0d             	movb   $0xd,(%esi)
40bea1:	46                   	inc    %esi
40bea2:	88 06                	mov    %al,(%esi)
40bea4:	46                   	inc    %esi
40bea5:	8d 45 fb             	lea    -0x5(%ebp),%eax
40bea8:	3b f0                	cmp    %eax,%esi
40beaa:	72 e4                	jb     0x40be90
40beac:	8d 85 fc eb ff ff    	lea    -0x1404(%ebp),%eax
40beb2:	89 4d 10             	mov    %ecx,0x10(%ebp)
40beb5:	2b f0                	sub    %eax,%esi
40beb7:	8d 85 f8 eb ff ff    	lea    -0x1408(%ebp),%eax
40bebd:	6a 00                	push   $0x0
40bebf:	50                   	push   %eax
40bec0:	56                   	push   %esi
40bec1:	8d 85 fc eb ff ff    	lea    -0x1404(%ebp),%eax
40bec7:	50                   	push   %eax
40bec8:	57                   	push   %edi
40bec9:	ff 15 94 f0 40 00    	call   *0x40f094
40becf:	85 c0                	test   %eax,%eax
40bed1:	74 1c                	je     0x40beef
40bed3:	8b 85 f8 eb ff ff    	mov    -0x1408(%ebp),%eax
40bed9:	01 43 04             	add    %eax,0x4(%ebx)
40bedc:	3b c6                	cmp    %esi,%eax
40bede:	72 17                	jb     0x40bef7
40bee0:	8b 4d 10             	mov    0x10(%ebp),%ecx
40bee3:	8b 95 f4 eb ff ff    	mov    -0x140c(%ebp),%edx
40bee9:	3b ca                	cmp    %edx,%ecx
40beeb:	72 9d                	jb     0x40be8a
40beed:	eb 08                	jmp    0x40bef7
40beef:	ff 15 58 f0 40 00    	call   *0x40f058
40bef5:	89 03                	mov    %eax,(%ebx)
40bef7:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40befa:	8b c3                	mov    %ebx,%eax
40befc:	5f                   	pop    %edi
40befd:	5e                   	pop    %esi
40befe:	33 cd                	xor    %ebp,%ecx
40bf00:	5b                   	pop    %ebx
40bf01:	e8 2f 77 ff ff       	call   0x403635
40bf06:	c9                   	leave
40bf07:	c3                   	ret
40bf08:	8b ff                	mov    %edi,%edi
40bf0a:	55                   	push   %ebp
40bf0b:	8b ec                	mov    %esp,%ebp
40bf0d:	b8 10 14 00 00       	mov    $0x1410,%eax
40bf12:	e8 69 2e 00 00       	call   0x40ed80
40bf17:	a1 14 60 41 00       	mov    0x416014,%eax
40bf1c:	33 c5                	xor    %ebp,%eax
40bf1e:	89 45 fc             	mov    %eax,-0x4(%ebp)
40bf21:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40bf24:	8b c1                	mov    %ecx,%eax
40bf26:	8b 55 14             	mov    0x14(%ebp),%edx
40bf29:	83 e1 3f             	and    $0x3f,%ecx
40bf2c:	c1 f8 06             	sar    $0x6,%eax
40bf2f:	6b c9 38             	imul   $0x38,%ecx,%ecx
40bf32:	53                   	push   %ebx
40bf33:	8b 5d 08             	mov    0x8(%ebp),%ebx
40bf36:	8b 04 85 78 70 41 00 	mov    0x417078(,%eax,4),%eax
40bf3d:	56                   	push   %esi
40bf3e:	57                   	push   %edi
40bf3f:	8b fb                	mov    %ebx,%edi
40bf41:	8b 44 08 18          	mov    0x18(%eax,%ecx,1),%eax
40bf45:	8b 4d 10             	mov    0x10(%ebp),%ecx
40bf48:	03 d1                	add    %ecx,%edx
40bf4a:	89 85 f8 eb ff ff    	mov    %eax,-0x1408(%ebp)
40bf50:	33 c0                	xor    %eax,%eax
40bf52:	ab                   	stos   %eax,%es:(%edi)
40bf53:	89 95 f0 eb ff ff    	mov    %edx,-0x1410(%ebp)
40bf59:	ab                   	stos   %eax,%es:(%edi)
40bf5a:	ab                   	stos   %eax,%es:(%edi)
40bf5b:	eb 75                	jmp    0x40bfd2
40bf5d:	8d b5 fc eb ff ff    	lea    -0x1404(%ebp),%esi
40bf63:	3b ca                	cmp    %edx,%ecx
40bf65:	73 25                	jae    0x40bf8c
40bf67:	0f b7 01             	movzwl (%ecx),%eax
40bf6a:	83 c1 02             	add    $0x2,%ecx
40bf6d:	83 f8 0a             	cmp    $0xa,%eax
40bf70:	75 0d                	jne    0x40bf7f
40bf72:	83 43 08 02          	addl   $0x2,0x8(%ebx)
40bf76:	6a 0d                	push   $0xd
40bf78:	5f                   	pop    %edi
40bf79:	66 89 3e             	mov    %di,(%esi)
40bf7c:	83 c6 02             	add    $0x2,%esi
40bf7f:	66 89 06             	mov    %ax,(%esi)
40bf82:	83 c6 02             	add    $0x2,%esi
40bf85:	8d 45 fa             	lea    -0x6(%ebp),%eax
40bf88:	3b f0                	cmp    %eax,%esi
40bf8a:	72 d7                	jb     0x40bf63
40bf8c:	8b bd f8 eb ff ff    	mov    -0x1408(%ebp),%edi
40bf92:	8d 85 fc eb ff ff    	lea    -0x1404(%ebp),%eax
40bf98:	2b f0                	sub    %eax,%esi