40d81a:	0f 85 40 5a 03 00    	jne    0x443260
40d820:	8b 47 10             	mov    0x10(%edi),%eax
40d823:	89 45 fc             	mov    %eax,-0x4(%ebp)
40d826:	8b f0                	mov    %eax,%esi
40d828:	8b 43 0c             	mov    0xc(%ebx),%eax
40d82b:	83 f8 01             	cmp    $0x1,%eax
40d82e:	0f 85 cf 5a 03 00    	jne    0x443303
40d834:	8b 03                	mov    (%ebx),%eax
40d836:	3b f0                	cmp    %eax,%esi
40d838:	7c 29                	jl     0x40d863
40d83a:	8b 4f 04             	mov    0x4(%edi),%ecx
40d83d:	8b 45 0c             	mov    0xc(%ebp),%eax
40d840:	41                   	inc    %ecx
40d841:	89 08                	mov    %ecx,(%eax)
40d843:	8b 4d e0             	mov    -0x20(%ebp),%ecx
40d846:	85 c9                	test   %ecx,%ecx
40d848:	0f 85 5f 5b 03 00    	jne    0x4433ad
40d84e:	8b 45 e4             	mov    -0x1c(%ebp),%eax
40d851:	83 f8 05             	cmp    $0x5,%eax
40d854:	0f 8d 65 5b 03 00    	jge    0x4433bf
40d85a:	5f                   	pop    %edi
40d85b:	5e                   	pop    %esi
40d85c:	5b                   	pop    %ebx
40d85d:	8b e5                	mov    %ebp,%esp
40d85f:	5d                   	pop    %ebp
40d860:	c2 08 00             	ret    $0x8
40d863:	8b 75 f8             	mov    -0x8(%ebp),%esi
40d866:	81 c6 5c 01 00 00    	add    $0x15c,%esi
40d86c:	80 7e 09 00          	cmpb   $0x0,0x9(%esi)
40d870:	0f 85 1b 5b 03 00    	jne    0x443391
40d876:	80 7e 08 00          	cmpb   $0x0,0x8(%esi)
40d87a:	75 5f                	jne    0x40d8db
40d87c:	8b 7e 04             	mov    0x4(%esi),%edi
40d87f:	8b 5f 30             	mov    0x30(%edi),%ebx
40d882:	85 ff                	test   %edi,%edi
40d884:	74 19                	je     0x40d89f
40d886:	8d 4f 20             	lea    0x20(%edi),%ecx
40d889:	e8 92 c1 ff ff       	call   0x409a20
40d88e:	8d 4f 10             	lea    0x10(%edi),%ecx
40d891:	e8 8a c1 ff ff       	call   0x409a20
40d896:	57                   	push   %edi
40d897:	e8 d0 37 01 00       	call   0x42106c
40d89c:	83 c4 04             	add    $0x4,%esp
40d89f:	89 5e 04             	mov    %ebx,0x4(%esi)
40d8a2:	c6 46 09 00          	movb   $0x0,0x9(%esi)
40d8a6:	ff 0e                	decl   (%esi)
40d8a8:	eb 99                	jmp    0x40d843
40d8aa:	83 e8 02             	sub    $0x2,%eax
40d8ad:	83 f8 07             	cmp    $0x7,%eax
40d8b0:	77 88                	ja     0x40d83a
40d8b2:	ff 24 85 e4 d8 40 00 	jmp    *0x40d8e4(,%eax,4)
40d8b9:	8d 4f 10             	lea    0x10(%edi),%ecx
40d8bc:	e8 37 c4 ff ff       	call   0x409cf8
40d8c1:	dd 5d e8             	fstpl  -0x18(%ebp)
40d8c4:	8b cb                	mov    %ebx,%ecx
40d8c6:	e8 2d c4 ff ff       	call   0x409cf8
40d8cb:	dc 5d e8             	fcompl -0x18(%ebp)
40d8ce:	df e0                	fnstsw %ax
40d8d0:	f6 c4 41             	test   $0x41,%ah
40d8d3:	0f 85 61 ff ff ff    	jne    0x40d83a
40d8d9:	eb 88                	jmp    0x40d863
40d8db:	c6 46 09 01          	movb   $0x1,0x9(%esi)
40d8df:	eb c5                	jmp    0x40d8a6
40d8e1:	8d 49 00             	lea    0x0(%ecx),%ecx
40d8e4:	12 32                	adc    (%edx),%dh
40d8e6:	44                   	inc    %esp
40d8e7:	00 b9 d8 40 00 e8    	add    %bh,-0x17ffbf28(%ecx)
40d8ed:	31 44 00 3a          	xor    %eax,0x3a(%eax,%eax,1)
40d8f1:	d8 40 00             	fadds  0x0(%eax)
40d8f4:	3a d8                	cmp    %al,%bl
40d8f6:	40                   	inc    %eax
40d8f7:	00 42 32             	add    %al,0x32(%edx)
40d8fa:	44                   	inc    %esp
40d8fb:	00 3a                	add    %bh,(%edx)
40d8fd:	d8 40 00             	fadds  0x0(%eax)
40d900:	17                   	pop    %ss
40d901:	d8 40 00             	fadds  0x0(%eax)
40d904:	cc                   	int3
40d905:	cc                   	int3
40d906:	cc                   	int3
40d907:	cc                   	int3
40d908:	cc                   	int3
40d909:	cc                   	int3
40d90a:	cc                   	int3
40d90b:	cc                   	int3
40d90c:	cc                   	int3
40d90d:	cc                   	int3
40d90e:	cc                   	int3
40d90f:	cc                   	int3
40d910:	55                   	push   %ebp
40d911:	8b ec                	mov    %esp,%ebp
40d913:	83 ec 64             	sub    $0x64,%esp
40d916:	53                   	push   %ebx
40d917:	56                   	push   %esi
40d918:	8b 75 0c             	mov    0xc(%ebp),%esi
40d91b:	33 db                	xor    %ebx,%ebx
40d91d:	57                   	push   %edi
40d91e:	8b 7d 08             	mov    0x8(%ebp),%edi
40d921:	89 5d e0             	mov    %ebx,-0x20(%ebp)
40d924:	8b 06                	mov    (%esi),%eax
40d926:	48                   	dec    %eax
40d927:	89 5d e8             	mov    %ebx,-0x18(%ebp)
40d92a:	89 45 a4             	mov    %eax,-0x5c(%ebp)
40d92d:	8b 47 04             	mov    0x4(%edi),%eax
40d930:	c7 45 ec 01 00 00 00 	movl   $0x1,-0x14(%ebp)
40d937:	89 5d d0             	mov    %ebx,-0x30(%ebp)
40d93a:	89 5d d8             	mov    %ebx,-0x28(%ebp)
40d93d:	c7 45 dc 01 00 00 00 	movl   $0x1,-0x24(%ebp)
40d944:	8b 40 04             	mov    0x4(%eax),%eax
40d947:	89 4d fc             	mov    %ecx,-0x4(%ebp)
40d94a:	c7 45 b0 00 00 00 00 	movl   $0x0,-0x50(%ebp)
40d951:	c7 45 b8 00 00 00 00 	movl   $0x0,-0x48(%ebp)
40d958:	66 83 78 08 33       	cmpw   $0x33,0x8(%eax)
40d95d:	c7 45 bc 01 00 00 00 	movl   $0x1,-0x44(%ebp)
40d964:	c7 45 c0 00 00 00 00 	movl   $0x0,-0x40(%ebp)
40d96b:	c7 45 c8 00 00 00 00 	movl   $0x0,-0x38(%ebp)
40d972:	c7 45 cc 01 00 00 00 	movl   $0x1,-0x34(%ebp)
40d979:	89 5d f8             	mov    %ebx,-0x8(%ebp)
40d97c:	c7 45 a0 03 00 00 00 	movl   $0x3,-0x60(%ebp)
40d983:	0f 85 f3 5f 03 00    	jne    0x44397c
40d989:	8b 08                	mov    (%eax),%ecx
40d98b:	89 4d f4             	mov    %ecx,-0xc(%ebp)
40d98e:	c7 45 0c 02 00 00 00 	movl   $0x2,0xc(%ebp)
40d995:	39 1d 80 72 4c 00    	cmp    %ebx,0x4c7280
40d99b:	0f 84 55 03 00 00    	je     0x40dcf6
40d9a1:	a1 84 72 4c 00       	mov    0x4c7284,%eax
40d9a6:	38 1d 89 72 4c 00    	cmp    %bl,0x4c7289
40d9ac:	0f 85 5b 03 00 00    	jne    0x40dd0d
40d9b2:	50                   	push   %eax
40d9b3:	51                   	push   %ecx
40d9b4:	89 45 08             	mov    %eax,0x8(%ebp)
40d9b7:	e8 e4 ae ff ff       	call   0x4088a0
40d9bc:	84 c0                	test   %al,%al
40d9be:	0f 84 10 03 00 00    	je     0x40dcd4
40d9c4:	8b 45 08             	mov    0x8(%ebp),%eax
40d9c7:	8b 00                	mov    (%eax),%eax
40d9c9:	85 c0                	test   %eax,%eax
40d9cb:	0f 84 03 03 00 00    	je     0x40dcd4
40d9d1:	8b 58 10             	mov    0x10(%eax),%ebx
40d9d4:	8b 40 14             	mov    0x14(%eax),%eax
40d9d7:	81 e3 00 ff 00 00    	and    $0xff00,%ebx
40d9dd:	89 45 08             	mov    %eax,0x8(%ebp)
40d9e0:	89 45 f8             	mov    %eax,-0x8(%ebp)
40d9e3:	85 c0                	test   %eax,%eax
40d9e5:	0f 84 b6 02 00 00    	je     0x40dca1
40d9eb:	f7 c3 00 01 00 00    	test   $0x100,%ebx
40d9f1:	0f 85 bd 5b 03 00    	jne    0x4435b4
40d9f7:	8b d8                	mov    %eax,%ebx
40d9f9:	8b 47 04             	mov    0x4(%edi),%eax
40d9fc:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40d9ff:	8b 40 08             	mov    0x8(%eax),%eax
40da02:	66 83 78 08 4e       	cmpw   $0x4e,0x8(%eax)
40da07:	0f 84 bf 5b 03 00    	je     0x4435cc
40da0d:	8b 47 04             	mov    0x4(%edi),%eax
40da10:	89 5d ac             	mov    %ebx,-0x54(%ebp)
40da13:	8b 04 88             	mov    (%eax,%ecx,4),%eax
40da16:	66 83 78 08 00       	cmpw   $0x0,0x8(%eax)
40da1b:	0f 84 0b 5c 03 00    	je     0x44362c
40da21:	6a ff                	push   $0xffffffff
40da23:	8d 45 e0             	lea    -0x20(%ebp),%eax
40da26:	41                   	inc    %ecx
40da27:	50                   	push   %eax
40da28:	8d 45 0c             	lea    0xc(%ebp),%eax
40da2b:	89 4d 0c             	mov    %ecx,0xc(%ebp)
40da2e:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40da31:	50                   	push   %eax
40da32:	57                   	push   %edi
40da33:	e8 c8 c5 ff ff       	call   0x40a000
40da38:	85 c0                	test   %eax,%eax
40da3a:	0f 88 38 02 00 00    	js     0x40dc78
40da40:	8d 45 e0             	lea    -0x20(%ebp),%eax
40da43:	3b d8                	cmp    %eax,%ebx
40da45:	74 1c                	je     0x40da63
40da47:	83 7b 0c 04          	cmpl   $0x4,0xc(%ebx)
40da4b:	0f 84 96 02 00 00    	je     0x40dce7
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