40da56:	fe c0                	inc    %al
40da58:	eb 55                	jmp    0x40daaf
40da5a:	e8 c4 6b 00 00       	call   0x414623
40da5f:	85 c0                	test   %eax,%eax
40da61:	75 12                	jne    0x40da75
40da63:	53                   	push   %ebx
40da64:	ff 75 10             	push   0x10(%ebp)
40da67:	ff 75 0c             	push   0xc(%ebp)
40da6a:	56                   	push   %esi
40da6b:	e8 ce f6 ff ff       	call   0x40d13e
40da70:	83 c4 10             	add    $0x10,%esp
40da73:	eb 3a                	jmp    0x40daaf
40da75:	3d 00 02 00 00       	cmp    $0x200,%eax
40da7a:	75 16                	jne    0x40da92
40da7c:	33 c0                	xor    %eax,%eax
40da7e:	66 85 ff             	test   %di,%di
40da81:	74 2c                	je     0x40daaf
40da83:	39 46 04             	cmp    %eax,0x4(%esi)
40da86:	7c 27                	jl     0x40daaf
40da88:	7f 04                	jg     0x40da8e
40da8a:	39 06                	cmp    %eax,(%esi)
40da8c:	72 21                	jb     0x40daaf
40da8e:	b0 01                	mov    $0x1,%al
40da90:	eb 1d                	jmp    0x40daaf
40da92:	3d 00 01 00 00       	cmp    $0x100,%eax
40da97:	75 14                	jne    0x40daad
40da99:	33 c0                	xor    %eax,%eax
40da9b:	66 85 ff             	test   %di,%di
40da9e:	74 0f                	je     0x40daaf
40daa0:	39 46 04             	cmp    %eax,0x4(%esi)
40daa3:	7f 0a                	jg     0x40daaf
40daa5:	7c e7                	jl     0x40da8e
40daa7:	39 06                	cmp    %eax,(%esi)
40daa9:	73 04                	jae    0x40daaf
40daab:	eb e1                	jmp    0x40da8e
40daad:	32 c0                	xor    %al,%al
40daaf:	5f                   	pop    %edi
40dab0:	5e                   	pop    %esi
40dab1:	5b                   	pop    %ebx
40dab2:	5d                   	pop    %ebp
40dab3:	c3                   	ret
40dab4:	8b ff                	mov    %edi,%edi
40dab6:	55                   	push   %ebp
40dab7:	8b ec                	mov    %esp,%ebp
40dab9:	51                   	push   %ecx
40daba:	51                   	push   %ecx
40dabb:	53                   	push   %ebx
40dabc:	56                   	push   %esi
40dabd:	57                   	push   %edi
40dabe:	8b 7d 0c             	mov    0xc(%ebp),%edi
40dac1:	85 ff                	test   %edi,%edi
40dac3:	75 24                	jne    0x40dae9
40dac5:	8b 4d 30             	mov    0x30(%ebp),%ecx
40dac8:	6a 16                	push   $0x16
40daca:	5e                   	pop    %esi
40dacb:	51                   	push   %ecx
40dacc:	c6 41 1c 01          	movb   $0x1,0x1c(%ecx)
40dad0:	89 71 18             	mov    %esi,0x18(%ecx)
40dad3:	33 db                	xor    %ebx,%ebx
40dad5:	53                   	push   %ebx
40dad6:	53                   	push   %ebx
40dad7:	53                   	push   %ebx
40dad8:	53                   	push   %ebx
40dad9:	53                   	push   %ebx
40dada:	e8 6d 99 ff ff       	call   0x40744c
40dadf:	83 c4 18             	add    $0x18,%esp
40dae2:	8b c6                	mov    %esi,%eax
40dae4:	e9 47 01 00 00       	jmp    0x40dc30
40dae9:	83 7d 10 00          	cmpl   $0x0,0x10(%ebp)
40daed:	77 10                	ja     0x40daff
40daef:	8b 45 30             	mov    0x30(%ebp),%eax
40daf2:	6a 16                	push   $0x16
40daf4:	5e                   	pop    %esi
40daf5:	50                   	push   %eax
40daf6:	c6 40 1c 01          	movb   $0x1,0x1c(%eax)
40dafa:	89 70 18             	mov    %esi,0x18(%eax)
40dafd:	eb d4                	jmp    0x40dad3
40daff:	83 7d 14 00          	cmpl   $0x0,0x14(%ebp)
40db03:	74 ea                	je     0x40daef
40db05:	33 db                	xor    %ebx,%ebx
40db07:	39 5d 18             	cmp    %ebx,0x18(%ebp)
40db0a:	77 10                	ja     0x40db1c
40db0c:	8b 45 30             	mov    0x30(%ebp),%eax
40db0f:	6a 16                	push   $0x16
40db11:	5e                   	pop    %esi
40db12:	50                   	push   %eax
40db13:	c6 40 1c 01          	movb   $0x1,0x1c(%eax)
40db17:	89 70 18             	mov    %esi,0x18(%eax)
40db1a:	eb b9                	jmp    0x40dad5
40db1c:	8b 75 1c             	mov    0x1c(%ebp),%esi
40db1f:	83 fe 41             	cmp    $0x41,%esi
40db22:	74 12                	je     0x40db36
40db24:	83 fe 45             	cmp    $0x45,%esi
40db27:	74 0d                	je     0x40db36
40db29:	83 fe 46             	cmp    $0x46,%esi
40db2c:	74 08                	je     0x40db36
40db2e:	88 5d fc             	mov    %bl,-0x4(%ebp)
40db31:	83 fe 47             	cmp    $0x47,%esi
40db34:	75 04                	jne    0x40db3a
40db36:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
40db3a:	8b 4d 24             	mov    0x24(%ebp),%ecx
40db3d:	8b c1                	mov    %ecx,%eax
40db3f:	83 e0 08             	and    $0x8,%eax
40db42:	0b c3                	or     %ebx,%eax
40db44:	75 41                	jne    0x40db87
40db46:	ff 75 08             	push   0x8(%ebp)
40db49:	e8 8e f5 ff ff       	call   0x40d0dc
40db4e:	59                   	pop    %ecx
40db4f:	8b c8                	mov    %eax,%ecx
40db51:	85 c9                	test   %ecx,%ecx
40db53:	74 2f                	je     0x40db84
40db55:	8b 45 08             	mov    0x8(%ebp),%eax
40db58:	39 58 04             	cmp    %ebx,0x4(%eax)
40db5b:	7f 0c                	jg     0x40db69
40db5d:	7c 04                	jl     0x40db63
40db5f:	39 18                	cmp    %ebx,(%eax)
40db61:	73 06                	jae    0x40db69
40db63:	c6 45 f8 01          	movb   $0x1,-0x8(%ebp)
40db67:	eb 03                	jmp    0x40db6c
40db69:	88 5d f8             	mov    %bl,-0x8(%ebp)
40db6c:	ff 75 fc             	push   -0x4(%ebp)
40db6f:	ff 75 10             	push   0x10(%ebp)
40db72:	57                   	push   %edi
40db73:	ff 75 f8             	push   -0x8(%ebp)
40db76:	51                   	push   %ecx
40db77:	e8 dc fd ff ff       	call   0x40d958
40db7c:	83 c4 14             	add    $0x14,%esp
40db7f:	e9 ac 00 00 00       	jmp    0x40dc30
40db84:	8b 4d 24             	mov    0x24(%ebp),%ecx
40db87:	8b c1                	mov    %ecx,%eax
40db89:	83 e0 10             	and    $0x10,%eax
40db8c:	0b c3                	or     %ebx,%eax
40db8e:	74 04                	je     0x40db94
40db90:	6a 03                	push   $0x3
40db92:	eb 02                	jmp    0x40db96
40db94:	6a 02                	push   $0x2
40db96:	83 e1 20             	and    $0x20,%ecx
40db99:	0b cb                	or     %ebx,%ecx
40db9b:	58                   	pop    %eax
40db9c:	74 03                	je     0x40dba1
40db9e:	8b 5d 2c             	mov    0x2c(%ebp),%ebx
40dba1:	83 fe 61             	cmp    $0x61,%esi
40dba4:	7f 2b                	jg     0x40dbd1
40dba6:	74 0a                	je     0x40dbb2
40dba8:	83 ee 41             	sub    $0x41,%esi
40dbab:	74 05                	je     0x40dbb2
40dbad:	83 ee 04             	sub    $0x4,%esi
40dbb0:	eb 22                	jmp    0x40dbd4
40dbb2:	ff 75 30             	push   0x30(%ebp)
40dbb5:	53                   	push   %ebx
40dbb6:	50                   	push   %eax
40dbb7:	ff 75 fc             	push   -0x4(%ebp)
40dbba:	ff 75 20             	push   0x20(%ebp)
40dbbd:	ff 75 18             	push   0x18(%ebp)
40dbc0:	ff 75 14             	push   0x14(%ebp)
40dbc3:	ff 75 10             	push   0x10(%ebp)
40dbc6:	57                   	push   %edi
40dbc7:	ff 75 08             	push   0x8(%ebp)
40dbca:	e8 12 f6 ff ff       	call   0x40d1e1
40dbcf:	eb 5c                	jmp    0x40dc2d
40dbd1:	83 ee 65             	sub    $0x65,%esi
40dbd4:	ff 75 30             	push   0x30(%ebp)
40dbd7:	53                   	push   %ebx
40dbd8:	74 3a                	je     0x40dc14
40dbda:	83 ee 01             	sub    $0x1,%esi
40dbdd:	74 1b                	je     0x40dbfa
40dbdf:	50                   	push   %eax
40dbe0:	ff 75 fc             	push   -0x4(%ebp)
40dbe3:	ff 75 20             	push   0x20(%ebp)
40dbe6:	ff 75 18             	push   0x18(%ebp)
40dbe9:	ff 75 14             	push   0x14(%ebp)
40dbec:	ff 75 10             	push   0x10(%ebp)
40dbef:	57                   	push   %edi
40dbf0:	ff 75 08             	push   0x8(%ebp)
40dbf3:	e8 91 fc ff ff       	call   0x40d889
40dbf8:	eb 33                	jmp    0x40dc2d
40dbfa:	ff 75 20             	push   0x20(%ebp)
40dbfd:	ff 75 18             	push   0x18(%ebp)
40dc00:	ff 75 14             	push   0x14(%ebp)
40dc03:	ff 75 10             	push   0x10(%ebp)
40dc06:	57                   	push   %edi
40dc07:	ff 75 08             	push   0x8(%ebp)
40dc0a:	e8 f6 fa ff ff       	call   0x40d705
40dc0f:	83 c4 20             	add    $0x20,%esp
40dc12:	eb 1c                	jmp    0x40dc30
40dc14:	50                   	push   %eax
40dc15:	ff 75 fc             	push   -0x4(%ebp)
40dc18:	ff 75 20             	push   0x20(%ebp)
40dc1b:	ff 75 18             	push   0x18(%ebp)
40dc1e:	ff 75 14             	push   0x14(%ebp)
40dc21:	ff 75 10             	push   0x10(%ebp)
40dc24:	57                   	push   %edi
40dc25:	ff 75 08             	push   0x8(%ebp)
40dc28:	e8 e1 f8 ff ff       	call   0x40d50e
40dc2d:	83 c4 28             	add    $0x28,%esp
40dc30:	5f                   	pop    %edi
40dc31:	5e                   	pop    %esi
40dc32:	5b                   	pop    %ebx
40dc33:	c9                   	leave
40dc34:	c3                   	ret
40dc35:	8b ff                	mov    %edi,%edi
40dc37:	55                   	push   %ebp
40dc38:	8b ec                	mov    %esp,%ebp
40dc3a:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40dc3d:	83 ec 0c             	sub    $0xc,%esp
40dc40:	8b 45 10             	mov    0x10(%ebp),%eax
40dc43:	53                   	push   %ebx
40dc44:	56                   	push   %esi
40dc45:	57                   	push   %edi
40dc46:	85 c9                	test   %ecx,%ecx
40dc48:	75 17                	jne    0x40dc61
40dc4a:	85 c0                	test   %eax,%eax
40dc4c:	74 13                	je     0x40dc61
40dc4e:	8b 45 08             	mov    0x8(%ebp),%eax
40dc51:	85 c0                	test   %eax,%eax
40dc53:	0f 84 ff 00 00 00    	je     0x40dd58
40dc59:	83 20 00             	andl   $0x0,(%eax)
40dc5c:	e9 f7 00 00 00       	jmp    0x40dd58
40dc61:	8b 5d 08             	mov    0x8(%ebp),%ebx
40dc64:	85 db                	test   %ebx,%ebx
40dc66:	74 03                	je     0x40dc6b
40dc68:	83 0b ff             	orl    $0xffffffff,(%ebx)
40dc6b:	8b 75 18             	mov    0x18(%ebp),%esi
40dc6e:	33 ff                	xor    %edi,%edi
40dc70:	3d ff ff ff 7f       	cmp    $0x7fffffff,%eax
40dc75:	76 07                	jbe    0x40dc7e
40dc77:	6a 16                	push   $0x16
40dc79:	e9 04 01 00 00       	jmp    0x40dd82
40dc7e:	80 7e 14 00          	cmpb   $0x0,0x14(%esi)
40dc82:	75 0d                	jne    0x40dc91
40dc84:	8b ce                	mov    %esi,%ecx
40dc86:	e8 15 b2 ff ff       	call   0x408ea0
40dc8b:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40dc8e:	8b 45 10             	mov    0x10(%ebp),%eax
40dc91:	8b 56 0c             	mov    0xc(%esi),%edx
40dc94:	8b 5a 08             	mov    0x8(%edx),%ebx
40dc97:	81 fb e9 fd 00 00    	cmp    $0xfde9,%ebx
40dc9d:	89 5d f8             	mov    %ebx,-0x8(%ebp)
40dca0:	8b 5d 08             	mov    0x8(%ebp),%ebx
40dca3:	75 37                	jne    0x40dcdc
40dca5:	56                   	push   %esi
40dca6:	8d 45 f4             	lea    -0xc(%ebp),%eax
40dca9:	33 ff                	xor    %edi,%edi
40dcab:	50                   	push   %eax
40dcac:	0f b7 45 14          	movzwl 0x14(%ebp),%eax
40dcb0:	50                   	push   %eax
40dcb1:	51                   	push   %ecx
40dcb2:	89 7d f4             	mov    %edi,-0xc(%ebp)
40dcb5:	89 7d f8             	mov    %edi,-0x8(%ebp)
40dcb8:	e8 73 69 00 00       	call   0x414630
40dcbd:	83 c4 10             	add    $0x10,%esp
40dcc0:	85 db                	test   %ebx,%ebx
40dcc2:	74 02                	je     0x40dcc6
40dcc4:	89 03                	mov    %eax,(%ebx)
40dcc6:	83 f8 04             	cmp    $0x4,%eax
40dcc9:	0f 8e 89 00 00 00    	jle    0x40dd58
40dccf:	80 7e 1c 00          	cmpb   $0x0,0x1c(%esi)
40dcd3:	74 03                	je     0x40dcd8
40dcd5:	8b 7e 18             	mov    0x18(%esi),%edi
40dcd8:	8b c7                	mov    %edi,%eax
40dcda:	eb 36                	jmp    0x40dd12
40dcdc:	39 ba a8 00 00 00    	cmp    %edi,0xa8(%edx)
40dce2:	75 49                	jne    0x40dd2d
40dce4:	66 8b 55 14          	mov    0x14(%ebp),%dx
40dce8:	c7 45 fc ff 00 00 00 	movl   $0xff,-0x4(%ebp)
40dcef:	66 3b 55 fc          	cmp    -0x4(%ebp),%dx
40dcf3:	76 22                	jbe    0x40dd17
40dcf5:	85 c9                	test   %ecx,%ecx
40dcf7:	74 0f                	je     0x40dd08
40dcf9:	85 c0                	test   %eax,%eax
40dcfb:	74 0b                	je     0x40dd08
40dcfd:	50                   	push   %eax
40dcfe:	57                   	push   %edi
40dcff:	51                   	push   %ecx
40dd00:	e8 6b 6d ff ff       	call   0x404a70
40dd05:	83 c4 0c             	add    $0xc,%esp
40dd08:	6a 2a                	push   $0x2a
40dd0a:	58                   	pop    %eax
40dd0b:	89 46 18             	mov    %eax,0x18(%esi)
40dd0e:	c6 46 1c 01          	movb   $0x1,0x1c(%esi)
40dd12:	5f                   	pop    %edi
40dd13:	5e                   	pop    %esi
40dd14:	5b                   	pop    %ebx
40dd15:	c9                   	leave
40dd16:	c3                   	ret
40dd17:	85 c9                	test   %ecx,%ecx
40dd19:	74 06                	je     0x40dd21
40dd1b:	85 c0                	test   %eax,%eax
40dd1d:	74 61                	je     0x40dd80
40dd1f:	88 11                	mov    %dl,(%ecx)
40dd21:	85 db                	test   %ebx,%ebx
40dd23:	74 33                	je     0x40dd58
40dd25:	c7 03 01 00 00 00    	movl   $0x1,(%ebx)
40dd2b:	eb 2b                	jmp    0x40dd58
40dd2d:	8d 55 fc             	lea    -0x4(%ebp),%edx
40dd30:	89 7d fc             	mov    %edi,-0x4(%ebp)
40dd33:	52                   	push   %edx
40dd34:	57                   	push   %edi
40dd35:	50                   	push   %eax
40dd36:	51                   	push   %ecx
40dd37:	6a 01                	push   $0x1
40dd39:	8d 45 14             	lea    0x14(%ebp),%eax
40dd3c:	50                   	push   %eax
40dd3d:	57                   	push   %edi
40dd3e:	ff 75 f8             	push   -0x8(%ebp)
40dd41:	e8 e8 12 00 00       	call   0x40f02e
40dd46:	83 c4 20             	add    $0x20,%esp
40dd49:	85 c0                	test   %eax,%eax
40dd4b:	74 0f                	je     0x40dd5c
40dd4d:	39 7d fc             	cmp    %edi,-0x4(%ebp)
40dd50:	75 b6                	jne    0x40dd08
40dd52:	85 db                	test   %ebx,%ebx
40dd54:	74 02                	je     0x40dd58
40dd56:	89 03                	mov    %eax,(%ebx)
40dd58:	33 c0                	xor    %eax,%eax
40dd5a:	eb b6                	jmp    0x40dd12
40dd5c:	ff 15 28 90 41 00    	call   *0x419028
40dd62:	83 f8 7a             	cmp    $0x7a,%eax
40dd65:	75 a1                	jne    0x40dd08
40dd67:	8b 45 0c             	mov    0xc(%ebp),%eax
40dd6a:	85 c0                	test   %eax,%eax
40dd6c:	74 12                	je     0x40dd80
40dd6e:	39 7d 10             	cmp    %edi,0x10(%ebp)
40dd71:	76 0d                	jbe    0x40dd80
40dd73:	ff 75 10             	push   0x10(%ebp)
40dd76:	57                   	push   %edi
40dd77:	50                   	push   %eax
40dd78:	e8 f3 6c ff ff       	call   0x404a70
40dd7d:	83 c4 0c             	add    $0xc,%esp
40dd80:	6a 22                	push   $0x22
40dd82:	5b                   	pop    %ebx
40dd83:	56                   	push   %esi
40dd84:	57                   	push   %edi
40dd85:	57                   	push   %edi
40dd86:	57                   	push   %edi
40dd87:	57                   	push   %edi
40dd88:	89 5e 18             	mov    %ebx,0x18(%esi)
40dd8b:	57                   	push   %edi
40dd8c:	c6 46 1c 01          	movb   $0x1,0x1c(%esi)
40dd90:	e8 b7 96 ff ff       	call   0x40744c
40dd95:	83 c4 18             	add    $0x18,%esp
40dd98:	8b c3                	mov    %ebx,%eax
40dd9a:	e9 73 ff ff ff       	jmp    0x40dd12
40dd9f:	8b ff                	mov    %edi,%edi
40dda1:	55                   	push   %ebp
40dda2:	8b ec                	mov    %esp,%ebp
40dda4:	51                   	push   %ecx
40dda5:	53                   	push   %ebx
40dda6:	56                   	push   %esi
40dda7:	57                   	push   %edi