40da51:	8b cb                	mov    %ebx,%ecx
40da53:	e8 c8 bf ff ff       	call   0x409a20
40da58:	8d 45 e0             	lea    -0x20(%ebp),%eax
40da5b:	8b cb                	mov    %ebx,%ecx
40da5d:	50                   	push   %eax
40da5e:	e8 5d c0 ff ff       	call   0x409ac0
40da63:	8b 47 04             	mov    0x4(%edi),%eax
40da66:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40da69:	8b 04 88             	mov    (%eax,%ecx,4),%eax
40da6c:	66 83 78 08 00       	cmpw   $0x0,0x8(%eax)
40da71:	0f 85 af 02 00 00    	jne    0x40dd26
40da77:	83 38 0f             	cmpl   $0xf,(%eax)
40da7a:	0f 85 a6 02 00 00    	jne    0x40dd26
40da80:	8b 5d fc             	mov    -0x4(%ebp),%ebx
40da83:	8d 45 e0             	lea    -0x20(%ebp),%eax
40da86:	6a ff                	push   $0xffffffff
40da88:	50                   	push   %eax
40da89:	41                   	inc    %ecx
40da8a:	8d 45 0c             	lea    0xc(%ebp),%eax
40da8d:	50                   	push   %eax
40da8e:	89 4d 0c             	mov    %ecx,0xc(%ebp)
40da91:	8b cb                	mov    %ebx,%ecx
40da93:	57                   	push   %edi
40da94:	e8 67 c5 ff ff       	call   0x40a000
40da99:	85 c0                	test   %eax,%eax
40da9b:	0f 88 d7 01 00 00    	js     0x40dc78
40daa1:	8d 4d b0             	lea    -0x50(%ebp),%ecx
40daa4:	e8 77 bf ff ff       	call   0x409a20
40daa9:	8d 45 e0             	lea    -0x20(%ebp),%eax
40daac:	50                   	push   %eax
40daad:	8d 4d b0             	lea    -0x50(%ebp),%ecx
40dab0:	e8 0b c0 ff ff       	call   0x409ac0
40dab5:	8b 4f 04             	mov    0x4(%edi),%ecx
40dab8:	8b 45 0c             	mov    0xc(%ebp),%eax
40dabb:	8b 04 81             	mov    (%ecx,%eax,4),%eax
40dabe:	66 83 78 08 00       	cmpw   $0x0,0x8(%eax)
40dac3:	0f 84 e2 5c 03 00    	je     0x4437ab
40dac9:	8d 4d c0             	lea    -0x40(%ebp),%ecx
40dacc:	e8 4f bf ff ff       	call   0x409a20
40dad1:	bb 01 00 00 00       	mov    $0x1,%ebx
40dad6:	89 5d cc             	mov    %ebx,-0x34(%ebp)
40dad9:	89 5d c0             	mov    %ebx,-0x40(%ebp)
40dadc:	8b 45 08             	mov    0x8(%ebp),%eax
40dadf:	8b 48 0c             	mov    0xc(%eax),%ecx
40dae2:	83 f9 01             	cmp    $0x1,%ecx
40dae5:	0f 85 fa 5c 03 00    	jne    0x4437e5
40daeb:	8b 45 bc             	mov    -0x44(%ebp),%eax
40daee:	83 f8 01             	cmp    $0x1,%eax
40daf1:	74 25                	je     0x40db18
40daf3:	83 f8 03             	cmp    $0x3,%eax
40daf6:	74 20                	je     0x40db18
40daf8:	83 f8 02             	cmp    $0x2,%eax
40dafb:	74 1b                	je     0x40db18
40dafd:	8d 4d b0             	lea    -0x50(%ebp),%ecx
40db00:	e8 01 bb ff ff       	call   0x409606
40db05:	8d 4d b0             	lea    -0x50(%ebp),%ecx
40db08:	84 c0                	test   %al,%al
40db0a:	0f 85 05 02 00 00    	jne    0x40dd15
40db10:	e8 f0 b9 ff ff       	call   0x409505
40db15:	8b 5d cc             	mov    -0x34(%ebp),%ebx
40db18:	83 fb 01             	cmp    $0x1,%ebx
40db1b:	0f 85 f8 5c 03 00    	jne    0x443819
40db21:	8b 4f 04             	mov    0x4(%edi),%ecx
40db24:	8b 45 0c             	mov    0xc(%ebp),%eax
40db27:	8b 04 81             	mov    (%ecx,%eax,4),%eax
40db2a:	66 83 78 08 7f       	cmpw   $0x7f,0x8(%eax)
40db2f:	0f 85 19 5d 03 00    	jne    0x44384e
40db35:	33 ff                	xor    %edi,%edi
40db37:	32 d2                	xor    %dl,%dl
40db39:	8d a4 24 00 00 00 00 	lea    0x0(%esp),%esp
40db40:	8b 06                	mov    (%esi),%eax
40db42:	8d 48 01             	lea    0x1(%eax),%ecx
40db45:	89 0e                	mov    %ecx,(%esi)
40db47:	3b 05 a0 72 4c 00    	cmp    0x4c72a0,%eax
40db4d:	7f 3f                	jg     0x40db8e
40db4f:	85 c0                	test   %eax,%eax
40db51:	7e 3b                	jle    0x40db8e
40db53:	c1 e0 04             	shl    $0x4,%eax
40db56:	03 05 dc 72 4c 00    	add    0x4c72dc,%eax
40db5c:	74 30                	je     0x40db8e
40db5e:	84 d2                	test   %dl,%dl
40db60:	75 2c                	jne    0x40db8e
40db62:	8b 40 04             	mov    0x4(%eax),%eax
40db65:	8b 00                	mov    (%eax),%eax
40db67:	66 83 78 08 00       	cmpw   $0x0,0x8(%eax)
40db6c:	75 d2                	jne    0x40db40
40db6e:	8b 00                	mov    (%eax),%eax
40db70:	83 e8 0d             	sub    $0xd,%eax
40db73:	0f 84 68 01 00 00    	je     0x40dce1
40db79:	48                   	dec    %eax
40db7a:	75 c4                	jne    0x40db40
40db7c:	85 ff                	test   %edi,%edi
40db7e:	0f 85 57 01 00 00    	jne    0x40dcdb
40db84:	8d 59 ff             	lea    -0x1(%ecx),%ebx
40db87:	b2 01                	mov    $0x1,%dl
40db89:	89 5d a8             	mov    %ebx,-0x58(%ebp)
40db8c:	eb b2                	jmp    0x40db40
40db8e:	8d 4d d0             	lea    -0x30(%ebp),%ecx
40db91:	e8 06 c1 ff ff       	call   0x409c9c
40db96:	8b 5d 08             	mov    0x8(%ebp),%ebx
40db99:	83 f8 01             	cmp    $0x1,%eax
40db9c:	0f 84 53 5d 03 00    	je     0x4438f5
40dba2:	83 7b 0c 08          	cmpl   $0x8,0xc(%ebx)
40dba6:	0f 84 b1 5c 03 00    	je     0x44385d
40dbac:	8b 45 bc             	mov    -0x44(%ebp),%eax
40dbaf:	83 f8 05             	cmp    $0x5,%eax
40dbb2:	0f 84 93 5d 03 00    	je     0x44394b
40dbb8:	83 f8 0f             	cmp    $0xf,%eax
40dbbb:	0f 84 8a 5d 03 00    	je     0x44394b
40dbc1:	8d 4d e0             	lea    -0x20(%ebp),%ecx
40dbc4:	e8 57 be ff ff       	call   0x409a20
40dbc9:	d9 ee                	fldz
40dbcb:	8d 55 e0             	lea    -0x20(%ebp),%edx
40dbce:	8d 4d c0             	lea    -0x40(%ebp),%ecx
40dbd1:	c7 45 ec 03 00 00 00 	movl   $0x3,-0x14(%ebp)
40dbd8:	dd 5d e0             	fstpl  -0x20(%ebp)
40dbdb:	e8 f0 b0 ff ff       	call   0x408cd0
40dbe0:	84 c0                	test   %al,%al
40dbe2:	0f 85 53 5d 03 00    	jne    0x44393b
40dbe8:	8b d3                	mov    %ebx,%edx
40dbea:	8d 4d b0             	lea    -0x50(%ebp),%ecx
40dbed:	e8 de b0 ff ff       	call   0x408cd0
40dbf2:	84 c0                	test   %al,%al
40dbf4:	0f 85 fb 5c 03 00    	jne    0x4438f5
40dbfa:	8b 45 fc             	mov    -0x4(%ebp),%eax
40dbfd:	8b 5d a4             	mov    -0x5c(%ebp),%ebx
40dc00:	80 b8 65 01 00 00 00 	cmpb   $0x0,0x165(%eax)
40dc07:	0f 85 10 5d 03 00    	jne    0x44391d
40dc0d:	6a 38                	push   $0x38
40dc0f:	e8 e2 33 01 00       	call   0x420ff6
40dc14:	8b f8                	mov    %eax,%edi
40dc16:	83 c4 04             	add    $0x4,%esp
40dc19:	85 ff                	test   %edi,%edi
40dc1b:	0f 84 fe 00 00 00    	je     0x40dd1f
40dc21:	8b 4d a0             	mov    -0x60(%ebp),%ecx
40dc24:	8d 45 b0             	lea    -0x50(%ebp),%eax
40dc27:	89 0f                	mov    %ecx,(%edi)
40dc29:	8b 4d a8             	mov    -0x58(%ebp),%ecx
40dc2c:	89 4f 08             	mov    %ecx,0x8(%edi)
40dc2f:	8b 4d ac             	mov    -0x54(%ebp),%ecx
40dc32:	89 4f 0c             	mov    %ecx,0xc(%edi)
40dc35:	8d 4f 10             	lea    0x10(%edi),%ecx
40dc38:	89 5f 04             	mov    %ebx,0x4(%edi)
40dc3b:	50                   	push   %eax
40dc3c:	c7 41 08 00 00 00 00 	movl   $0x0,0x8(%ecx)
40dc43:	e8 78 be ff ff       	call   0x409ac0
40dc48:	8d 45 c0             	lea    -0x40(%ebp),%eax
40dc4b:	c7 47 28 00 00 00 00 	movl   $0x0,0x28(%edi)
40dc52:	8d 4f 20             	lea    0x20(%edi),%ecx
40dc55:	50                   	push   %eax
40dc56:	e8 65 be ff ff       	call   0x409ac0
40dc5b:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40dc5e:	8b 81 60 01 00 00    	mov    0x160(%ecx),%eax
40dc64:	89 47 30             	mov    %eax,0x30(%edi)
40dc67:	89 b9 60 01 00 00    	mov    %edi,0x160(%ecx)
40dc6d:	ff 81 5c 01 00 00    	incl   0x15c(%ecx)
40dc73:	8d 43 01             	lea    0x1(%ebx),%eax
40dc76:	89 06                	mov    %eax,(%esi)
40dc78:	8d 4d d0             	lea    -0x30(%ebp),%ecx
40dc7b:	e8 a0 bd ff ff       	call   0x409a20
40dc80:	8d 4d e0             	lea    -0x20(%ebp),%ecx
40dc83:	e8 98 bd ff ff       	call   0x409a20
40dc88:	8d 4d c0             	lea    -0x40(%ebp),%ecx
40dc8b:	e8 90 bd ff ff       	call   0x409a20
40dc90:	8d 4d b0             	lea    -0x50(%ebp),%ecx
40dc93:	e8 88 bd ff ff       	call   0x409a20
40dc98:	5f                   	pop    %edi
40dc99:	5e                   	pop    %esi
40dc9a:	5b                   	pop    %ebx
40dc9b:	8b e5                	mov    %ebp,%esp
40dc9d:	5d                   	pop    %ebp
40dc9e:	c2 08 00             	ret    $0x8
40dca1:	8d 4d e0             	lea    -0x20(%ebp),%ecx
40dca4:	e8 77 bd ff ff       	call   0x409a20
40dca9:	6a 01                	push   $0x1
40dcab:	6a 00                	push   $0x0
40dcad:	8d 45 e0             	lea    -0x20(%ebp),%eax
40dcb0:	c7 45 ec 01 00 00 00 	movl   $0x1,-0x14(%ebp)
40dcb7:	50                   	push   %eax
40dcb8:	ff 75 f4             	push   -0xc(%ebp)
40dcbb:	c7 45 e0 00 00 00 00 	movl   $0x0,-0x20(%ebp)
40dcc2:	e8 59 a9 ff ff       	call   0x408620
40dcc7:	8b d8                	mov    %eax,%ebx
40dcc9:	89 5d 08             	mov    %ebx,0x8(%ebp)
40dccc:	89 5d f8             	mov    %ebx,-0x8(%ebp)
40dccf:	e9 25 fd ff ff       	jmp    0x40d9f9
40dcd4:	33 c0                	xor    %eax,%eax
40dcd6:	e9 02 fd ff ff       	jmp    0x40d9dd
40dcdb:	4f                   	dec    %edi
40dcdc:	e9 5f fe ff ff       	jmp    0x40db40
40dce1:	47                   	inc    %edi
40dce2:	e9 59 fe ff ff       	jmp    0x40db40
40dce7:	83 7d ec 04          	cmpl   $0x4,-0x14(%ebp)
40dceb:	0f 85 60 fd ff ff    	jne    0x40da51
40dcf1:	e9 a5 5a 03 00       	jmp    0x44379b
40dcf6:	8d 45 f8             	lea    -0x8(%ebp),%eax
40dcf9:	50                   	push   %eax
40dcfa:	51                   	push   %ecx
40dcfb:	b9 70 72 4c 00       	mov    $0x4c7270,%ecx
40dd00:	e8 ad ae ff ff       	call   0x408bb2
40dd05:	8b 5d f8             	mov    -0x8(%ebp),%ebx
40dd08:	e9 d0 fc ff ff       	jmp    0x40d9dd
40dd0d:	8b 40 08             	mov    0x8(%eax),%eax
40dd10:	e9 9d fc ff ff       	jmp    0x40d9b2
40dd15:	e8 79 b8 ff ff       	call   0x409593
40dd1a:	e9 f6 fd ff ff       	jmp    0x40db15
40dd1f:	33 ff                	xor    %edi,%edi
40dd21:	e9 35 ff ff ff       	jmp    0x40dc5b
40dd26:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40dd29:	e9 4e 5c 03 00       	jmp    0x44397c
40dd2e:	55                   	push   %ebp
40dd2f:	8b ec                	mov    %esp,%ebp
40dd31:	51                   	push   %ecx
40dd32:	51                   	push   %ecx
40dd33:	56                   	push   %esi
40dd34:	57                   	push   %edi
40dd35:	8b 7d 08             	mov    0x8(%ebp),%edi
40dd38:	8d 45 ff             	lea    -0x1(%ebp),%eax
40dd3b:	50                   	push   %eax
40dd3c:	8d 45 f8             	lea    -0x8(%ebp),%eax
40dd3f:	c7 45 f8 01 00 00 00 	movl   $0x1,-0x8(%ebp)
40dd46:	50                   	push   %eax
40dd47:	57                   	push   %edi
40dd48:	8b f1                	mov    %ecx,%esi
40dd4a:	e8 1c c2 ff ff       	call   0x409f6b
40dd4f:	85 c0                	test   %eax,%eax
40dd51:	78 2e                	js     0x40dd81
40dd53:	8b 4f 04             	mov    0x4(%edi),%ecx
40dd56:	8b 45 f8             	mov    -0x8(%ebp),%eax
40dd59:	8b 04 81             	mov    (%ecx,%eax,4),%eax
40dd5c:	66 83 78 08 7f       	cmpw   $0x7f,0x8(%eax)
40dd61:	0f 85 29 5c 03 00    	jne    0x443990
40dd67:	80 7d ff 00          	cmpb   $0x0,-0x1(%ebp)
40dd6b:	8d 8e 5c 01 00 00    	lea    0x15c(%esi),%ecx
40dd71:	75 16                	jne    0x40dd89
40dd73:	e8 a0 20 01 00       	call   0x41fe18
40dd78:	8b 48 04             	mov    0x4(%eax),%ecx
40dd7b:	8b 45 0c             	mov    0xc(%ebp),%eax
40dd7e:	41                   	inc    %ecx
40dd7f:	89 08                	mov    %ecx,(%eax)
40dd81:	5f                   	pop    %edi
40dd82:	5e                   	pop    %esi
40dd83:	8b e5                	mov    %ebp,%esp
40dd85:	5d                   	pop    %ebp
40dd86:	c2 08 00             	ret    $0x8
40dd89:	e8 41 20 01 00       	call   0x41fdcf
40dd8e:	eb f1                	jmp    0x40dd81
40dd90:	55                   	push   %ebp
40dd91:	8b ec                	mov    %esp,%ebp
40dd93:	83 ec 3c             	sub    $0x3c,%esp
40dd96:	53                   	push   %ebx
40dd97:	56                   	push   %esi
40dd98:	89 4d fc             	mov    %ecx,-0x4(%ebp)
40dd9b:	8d 4d c8             	lea    -0x38(%ebp),%ecx
40dd9e:	57                   	push   %edi
40dd9f:	e8 08 21 01 00       	call   0x41feac
40dda4:	8b 7d 0c             	mov    0xc(%ebp),%edi
40dda7:	33 c0                	xor    %eax,%eax
40dda9:	c7 45 c8 02 00 00 00 	movl   $0x2,-0x38(%ebp)
40ddb0:	8b c8                	mov    %eax,%ecx
40ddb2:	8a d0                	mov    %al,%dl
40ddb4:	8b 37                	mov    (%edi),%esi
40ddb6:	4e                   	dec    %esi
40ddb7:	89 75 0c             	mov    %esi,0xc(%ebp)
40ddba:	89 75 cc             	mov    %esi,-0x34(%ebp)
40ddbd:	33 f6                	xor    %esi,%esi
40ddbf:	8b 07                	mov    (%edi),%eax
40ddc1:	50                   	push   %eax
40ddc2:	8d 58 01             	lea    0x1(%eax),%ebx
40ddc5:	89 1f                	mov    %ebx,(%edi)
40ddc7:	e8 fc 93 ff ff       	call   0x4071c8
40ddcc:	85 c0                	test   %eax,%eax
40ddce:	74 27                	je     0x40ddf7
40ddd0:	84 d2                	test   %dl,%dl
40ddd2:	75 23                	jne    0x40ddf7
40ddd4:	8b 40 04             	mov    0x4(%eax),%eax
40ddd7:	8b 00                	mov    (%eax),%eax
40ddd9:	66 39 70 08          	cmp    %si,0x8(%eax)
40dddd:	75 e0                	jne    0x40ddbf
40dddf:	8b 00                	mov    (%eax),%eax
40dde1:	83 e8 0b             	sub    $0xb,%eax
40dde4:	74 45                	je     0x40de2b
40dde6:	48                   	dec    %eax
40dde7:	75 d6                	jne    0x40ddbf
40dde9:	85 c9                	test   %ecx,%ecx
40ddeb:	75 3b                	jne    0x40de28
40dded:	8d 43 ff             	lea    -0x1(%ebx),%eax
40ddf0:	fe c2                	inc    %dl
40ddf2:	89 45 d0             	mov    %eax,-0x30(%ebp)
40ddf5:	eb c8                	jmp    0x40ddbf
40ddf7:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40ddfa:	8d 45 c8             	lea    -0x38(%ebp),%eax
40ddfd:	50                   	push   %eax
40ddfe:	81 c1 5c 01 00 00    	add    $0x15c,%ecx
40de04:	e8 1d 20 01 00       	call   0x41fe26
40de09:	8b 45 0c             	mov    0xc(%ebp),%eax
40de0c:	8d 4d e8             	lea    -0x18(%ebp),%ecx
40de0f:	40                   	inc    %eax
40de10:	89 07                	mov    %eax,(%edi)
40de12:	e8 09 bc ff ff       	call   0x409a20
40de17:	8d 4d d8             	lea    -0x28(%ebp),%ecx
40de1a:	e8 01 bc ff ff       	call   0x409a20
40de1f:	5f                   	pop    %edi
40de20:	5e                   	pop    %esi
40de21:	5b                   	pop    %ebx
40de22:	8b e5                	mov    %ebp,%esp
40de24:	5d                   	pop    %ebp
40de25:	c2 08 00             	ret    $0x8
40de28:	49                   	dec    %ecx
40de29:	eb 94                	jmp    0x40ddbf
40de2b:	41                   	inc    %ecx
40de2c:	eb 91                	jmp    0x40ddbf
40de2e:	55                   	push   %ebp
40de2f:	8b ec                	mov    %esp,%ebp
40de31:	83 ec 1c             	sub    $0x1c,%esp
40de34:	53                   	push   %ebx
40de35:	56                   	push   %esi
40de36:	8b 75 08             	mov    0x8(%ebp),%esi
40de39:	8b d9                	mov    %ecx,%ebx
40de3b:	57                   	push   %edi
40de3c:	6a 7f                	push   $0x7f
40de3e:	5f                   	pop    %edi
40de3f:	8b 46 04             	mov    0x4(%esi),%eax
40de42:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
40de49:	8b 40 04             	mov    0x4(%eax),%eax
40de4c:	66 39 78 08          	cmp    %di,0x8(%eax)
40de50:	0f 85 4d 5b 03 00    	jne    0x4439a3
40de56:	33 ff                	xor    %edi,%edi
40de58:	47                   	inc    %edi
40de59:	33 d2                	xor    %edx,%edx
40de5b:	89 55 08             	mov    %edx,0x8(%ebp)
40de5e:	8d b3 5c 01 00 00    	lea    0x15c(%ebx),%esi
40de64:	83 3e 00             	cmpl   $0x0,(%esi)
40de67:	0f 84 c4 5b 03 00    	je     0x443a31
40de6d:	80 7e 09 00          	cmpb   $0x0,0x9(%esi)
40de71:	8b 46 04             	mov    0x4(%esi),%eax
40de74:	75 6c                	jne    0x40dee2
40de76:	83 38 01             	cmpl   $0x1,(%eax)
40de79:	74 20                	je     0x40de9b
40de7b:	80 7e 09 00          	cmpb   $0x0,0x9(%esi)
40de7f:	8b 46 04             	mov    0x4(%esi),%eax
40de82:	75 63                	jne    0x40dee7
40de84:	83 38 02             	cmpl   $0x2,(%eax)
40de87:	74 12                	je     0x40de9b
40de89:	80 7e 09 00          	cmpb   $0x0,0x9(%esi)
40de8d:	8b 46 04             	mov    0x4(%esi),%eax
40de90:	75 5a                	jne    0x40deec
40de92:	83 38 03             	cmpl   $0x3,(%eax)
40de95:	0f 85 7f 5b 03 00    	jne    0x443a1a
40de9b:	80 7e 09 00          	cmpb   $0x0,0x9(%esi)