41783c:	c1 f9 06             	sar    $0x6,%ecx
41783f:	83 e0 3f             	and    $0x3f,%eax
417842:	6b f8 38             	imul   $0x38,%eax,%edi
417845:	89 4d f8             	mov    %ecx,-0x8(%ebp)
417848:	8b 04 8d c0 4a 43 00 	mov    0x434ac0(,%ecx,4),%eax
41784f:	33 c9                	xor    %ecx,%ecx
417851:	41                   	inc    %ecx
417852:	89 7d f0             	mov    %edi,-0x10(%ebp)
417855:	89 4d e0             	mov    %ecx,-0x20(%ebp)
417858:	8a 54 38 28          	mov    0x28(%eax,%edi,1),%dl
41785c:	84 d1                	test   %dl,%cl
41785e:	0f 84 27 03 00 00    	je     0x417b8b
417864:	8b 4d 10             	mov    0x10(%ebp),%ecx
417867:	81 f9 ff ff ff 7f    	cmp    $0x7fffffff,%ecx
41786d:	76 18                	jbe    0x417887
41786f:	e8 74 75 ff ff       	call   0x40ede8
417874:	83 20 00             	andl   $0x0,(%eax)
417877:	e8 7f 75 ff ff       	call   0x40edfb
41787c:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
417882:	e9 17 03 00 00       	jmp    0x417b9e
417887:	85 c9                	test   %ecx,%ecx
417889:	0f 84 f8 02 00 00    	je     0x417b87
41788f:	f6 c2 02             	test   $0x2,%dl
417892:	0f 85 ef 02 00 00    	jne    0x417b87
417898:	83 7d 0c 00          	cmpl   $0x0,0xc(%ebp)
41789c:	74 d1                	je     0x41786f
41789e:	8b 54 38 18          	mov    0x18(%eax,%edi,1),%edx
4178a2:	89 55 e8             	mov    %edx,-0x18(%ebp)
4178a5:	8a 54 38 29          	mov    0x29(%eax,%edi,1),%dl
4178a9:	88 55 ff             	mov    %dl,-0x1(%ebp)
4178ac:	56                   	push   %esi
4178ad:	0f be d2             	movsbl %dl,%edx
4178b0:	33 f6                	xor    %esi,%esi
4178b2:	83 ea 01             	sub    $0x1,%edx
4178b5:	74 4f                	je     0x417906
4178b7:	83 ea 01             	sub    $0x1,%edx
4178ba:	74 0e                	je     0x4178ca
4178bc:	8b 55 0c             	mov    0xc(%ebp),%edx
4178bf:	89 4d f4             	mov    %ecx,-0xc(%ebp)
4178c2:	89 55 ec             	mov    %edx,-0x14(%ebp)
4178c5:	e9 c0 00 00 00       	jmp    0x41798a
4178ca:	8b c1                	mov    %ecx,%eax
4178cc:	f7 d0                	not    %eax
4178ce:	a8 01                	test   $0x1,%al
4178d0:	75 1c                	jne    0x4178ee
4178d2:	e8 11 75 ff ff       	call   0x40ede8
4178d7:	21 30                	and    %esi,(%eax)
4178d9:	e8 1d 75 ff ff       	call   0x40edfb
4178de:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
4178e4:	e8 98 57 ff ff       	call   0x40d081
4178e9:	e9 d0 01 00 00       	jmp    0x417abe
4178ee:	8b 7d f8             	mov    -0x8(%ebp),%edi
4178f1:	8b 55 0c             	mov    0xc(%ebp),%edx
4178f4:	89 4d f4             	mov    %ecx,-0xc(%ebp)
4178f7:	89 55 ec             	mov    %edx,-0x14(%ebp)
4178fa:	8b 04 bd c0 4a 43 00 	mov    0x434ac0(,%edi,4),%eax
417901:	e9 84 00 00 00       	jmp    0x41798a
417906:	8b c1                	mov    %ecx,%eax
417908:	f7 d0                	not    %eax
41790a:	a8 01                	test   $0x1,%al
41790c:	74 c4                	je     0x4178d2
41790e:	6a 04                	push   $0x4
417910:	58                   	pop    %eax
417911:	d1 e9                	shr    $1,%ecx
417913:	89 45 f4             	mov    %eax,-0xc(%ebp)
417916:	3b c8                	cmp    %eax,%ecx
417918:	72 05                	jb     0x41791f
41791a:	8b c1                	mov    %ecx,%eax
41791c:	89 4d f4             	mov    %ecx,-0xc(%ebp)
41791f:	50                   	push   %eax
417920:	e8 41 c2 ff ff       	call   0x413b66
417925:	6a 00                	push   $0x0
417927:	8b f0                	mov    %eax,%esi
417929:	e8 dd b7 ff ff       	call   0x41310b
41792e:	6a 00                	push   $0x0
417930:	e8 d6 b7 ff ff       	call   0x41310b
417935:	83 c4 0c             	add    $0xc,%esp
417938:	89 75 ec             	mov    %esi,-0x14(%ebp)
41793b:	85 f6                	test   %esi,%esi
41793d:	75 1b                	jne    0x41795a
41793f:	e8 b7 74 ff ff       	call   0x40edfb
417944:	c7 00 0c 00 00 00    	movl   $0xc,(%eax)
41794a:	e8 99 74 ff ff       	call   0x40ede8
41794f:	c7 00 08 00 00 00    	movl   $0x8,(%eax)
417955:	e9 64 01 00 00       	jmp    0x417abe
41795a:	6a 01                	push   $0x1
41795c:	6a 00                	push   $0x0
41795e:	6a 00                	push   $0x0
417960:	53                   	push   %ebx
417961:	e8 e7 03 00 00       	call   0x417d4d
417966:	8b 4d f8             	mov    -0x8(%ebp),%ecx
417969:	83 c4 10             	add    $0x10,%esp
41796c:	8b 0c 8d c0 4a 43 00 	mov    0x434ac0(,%ecx,4),%ecx
417973:	89 44 0f 20          	mov    %eax,0x20(%edi,%ecx,1)
417977:	8b 45 f8             	mov    -0x8(%ebp),%eax
41797a:	89 54 0f 24          	mov    %edx,0x24(%edi,%ecx,1)
41797e:	8b d6                	mov    %esi,%edx
417980:	8b 4d f4             	mov    -0xc(%ebp),%ecx
417983:	8b 04 85 c0 4a 43 00 	mov    0x434ac0(,%eax,4),%eax
41798a:	8b 5d f0             	mov    -0x10(%ebp),%ebx
41798d:	33 ff                	xor    %edi,%edi
41798f:	89 55 dc             	mov    %edx,-0x24(%ebp)
417992:	f6 44 03 28 48       	testb  $0x48,0x28(%ebx,%eax,1)
417997:	8b 5d 08             	mov    0x8(%ebp),%ebx
41799a:	0f 84 bf 00 00 00    	je     0x417a5f
4179a0:	8b 5d f0             	mov    -0x10(%ebp),%ebx
4179a3:	8a 44 03 2a          	mov    0x2a(%ebx,%eax,1),%al
4179a7:	8b 5d 08             	mov    0x8(%ebp),%ebx
4179aa:	3c 0a                	cmp    $0xa,%al
4179ac:	0f 84 ad 00 00 00    	je     0x417a5f
4179b2:	85 c9                	test   %ecx,%ecx
4179b4:	0f 84 a5 00 00 00    	je     0x417a5f
4179ba:	8b 5d f0             	mov    -0x10(%ebp),%ebx
4179bd:	47                   	inc    %edi
4179be:	88 02                	mov    %al,(%edx)
4179c0:	42                   	inc    %edx
4179c1:	8b 45 f8             	mov    -0x8(%ebp),%eax
4179c4:	49                   	dec    %ecx
4179c5:	80 7d ff 00          	cmpb   $0x0,-0x1(%ebp)
4179c9:	89 55 ec             	mov    %edx,-0x14(%ebp)
4179cc:	89 4d f4             	mov    %ecx,-0xc(%ebp)
4179cf:	8b 04 85 c0 4a 43 00 	mov    0x434ac0(,%eax,4),%eax
4179d6:	c6 44 03 2a 0a       	movb   $0xa,0x2a(%ebx,%eax,1)
4179db:	8b 5d 08             	mov    0x8(%ebp),%ebx
4179de:	74 7f                	je     0x417a5f
4179e0:	8b 45 f8             	mov    -0x8(%ebp),%eax
4179e3:	8b 5d f0             	mov    -0x10(%ebp),%ebx
4179e6:	8b 04 85 c0 4a 43 00 	mov    0x434ac0(,%eax,4),%eax
4179ed:	8a 44 03 2b          	mov    0x2b(%ebx,%eax,1),%al
4179f1:	8b 5d 08             	mov    0x8(%ebp),%ebx
4179f4:	3c 0a                	cmp    $0xa,%al
4179f6:	74 67                	je     0x417a5f
4179f8:	85 c9                	test   %ecx,%ecx
4179fa:	74 63                	je     0x417a5f
4179fc:	8b 5d f0             	mov    -0x10(%ebp),%ebx
4179ff:	88 02                	mov    %al,(%edx)
417a01:	42                   	inc    %edx
417a02:	8b 45 f8             	mov    -0x8(%ebp),%eax
417a05:	49                   	dec    %ecx
417a06:	80 7d ff 01          	cmpb   $0x1,-0x1(%ebp)
417a0a:	6a 02                	push   $0x2
417a0c:	89 55 ec             	mov    %edx,-0x14(%ebp)
417a0f:	8b 04 85 c0 4a 43 00 	mov    0x434ac0(,%eax,4),%eax
417a16:	5f                   	pop    %edi
417a17:	89 4d f4             	mov    %ecx,-0xc(%ebp)
417a1a:	c6 44 03 2b 0a       	movb   $0xa,0x2b(%ebx,%eax,1)
417a1f:	8b 5d 08             	mov    0x8(%ebp),%ebx
417a22:	75 3b                	jne    0x417a5f
417a24:	8b 45 f8             	mov    -0x8(%ebp),%eax
417a27:	8b 5d f0             	mov    -0x10(%ebp),%ebx
417a2a:	8b 04 85 c0 4a 43 00 	mov    0x434ac0(,%eax,4),%eax
417a31:	8a 44 03 2c          	mov    0x2c(%ebx,%eax,1),%al
417a35:	8b 5d 08             	mov    0x8(%ebp),%ebx
417a38:	3c 0a                	cmp    $0xa,%al
417a3a:	74 23                	je     0x417a5f
417a3c:	85 c9                	test   %ecx,%ecx
417a3e:	74 1f                	je     0x417a5f
417a40:	88 02                	mov    %al,(%edx)
417a42:	42                   	inc    %edx
417a43:	8b 45 f8             	mov    -0x8(%ebp),%eax
417a46:	49                   	dec    %ecx
417a47:	89 4d f4             	mov    %ecx,-0xc(%ebp)
417a4a:	8b 4d f0             	mov    -0x10(%ebp),%ecx
417a4d:	6a 03                	push   $0x3
417a4f:	8b 04 85 c0 4a 43 00 	mov    0x434ac0(,%eax,4),%eax
417a56:	89 55 ec             	mov    %edx,-0x14(%ebp)
417a59:	5f                   	pop    %edi
417a5a:	c6 44 01 2c 0a       	movb   $0xa,0x2c(%ecx,%eax,1)
417a5f:	53                   	push   %ebx
417a60:	e8 93 8b 00 00       	call   0x4205f8
417a65:	59                   	pop    %ecx
417a66:	85 c0                	test   %eax,%eax
417a68:	74 71                	je     0x417adb
417a6a:	8b 45 f8             	mov    -0x8(%ebp),%eax
417a6d:	8b 4d f0             	mov    -0x10(%ebp),%ecx
417a70:	8b 04 85 c0 4a 43 00 	mov    0x434ac0(,%eax,4),%eax
417a77:	80 7c 01 28 00       	cmpb   $0x0,0x28(%ecx,%eax,1)
417a7c:	7d 5d                	jge    0x417adb
417a7e:	8d 45 d8             	lea    -0x28(%ebp),%eax
417a81:	50                   	push   %eax
417a82:	ff 75 e8             	push   -0x18(%ebp)
417a85:	ff 15 fc 40 42 00    	call   *0x4240fc
417a8b:	85 c0                	test   %eax,%eax
417a8d:	74 4c                	je     0x417adb
417a8f:	80 7d ff 02          	cmpb   $0x2,-0x1(%ebp)
417a93:	75 4a                	jne    0x417adf
417a95:	6a 00                	push   $0x0
417a97:	8d 45 e4             	lea    -0x1c(%ebp),%eax
417a9a:	50                   	push   %eax
417a9b:	8b 45 f4             	mov    -0xc(%ebp),%eax
417a9e:	d1 e8                	shr    $1,%eax
417aa0:	50                   	push   %eax
417aa1:	ff 75 ec             	push   -0x14(%ebp)
417aa4:	ff 75 e8             	push   -0x18(%ebp)
417aa7:	ff 15 0c 41 42 00    	call   *0x42410c
417aad:	85 c0                	test   %eax,%eax
417aaf:	75 1f                	jne    0x417ad0
417ab1:	ff 15 98 40 42 00    	call   *0x424098
417ab7:	50                   	push   %eax
417ab8:	e8 08 73 ff ff       	call   0x40edc5
417abd:	59                   	pop    %ecx
417abe:	83 cf ff             	or     $0xffffffff,%edi
417ac1:	56                   	push   %esi
417ac2:	e8 44 b6 ff ff       	call   0x41310b
417ac7:	59                   	pop    %ecx
417ac8:	8b c7                	mov    %edi,%eax
417aca:	5e                   	pop    %esi
417acb:	e9 d6 00 00 00       	jmp    0x417ba6
417ad0:	8b 45 e4             	mov    -0x1c(%ebp),%eax
417ad3:	8b 4d 10             	mov    0x10(%ebp),%ecx
417ad6:	8d 3c 47             	lea    (%edi,%eax,2),%edi
417ad9:	eb 29                	jmp    0x417b04
417adb:	c6 45 e0 00          	movb   $0x0,-0x20(%ebp)
417adf:	6a 00                	push   $0x0
417ae1:	8d 45 e4             	lea    -0x1c(%ebp),%eax
417ae4:	50                   	push   %eax
417ae5:	8b 45 f4             	mov    -0xc(%ebp),%eax
417ae8:	50                   	push   %eax
417ae9:	ff 75 ec             	push   -0x14(%ebp)
417aec:	ff 75 e8             	push   -0x18(%ebp)
417aef:	ff 15 00 41 42 00    	call   *0x424100
417af5:	85 c0                	test   %eax,%eax
417af7:	74 5a                	je     0x417b53
417af9:	8b 4d 10             	mov    0x10(%ebp),%ecx
417afc:	39 4d e4             	cmp    %ecx,-0x1c(%ebp)
417aff:	77 52                	ja     0x417b53
417b01:	03 7d e4             	add    -0x1c(%ebp),%edi
417b04:	8b 45 f8             	mov    -0x8(%ebp),%eax
417b07:	8b 55 f0             	mov    -0x10(%ebp),%edx
417b0a:	8b 04 85 c0 4a 43 00 	mov    0x434ac0(,%eax,4),%eax
417b11:	80 7c 02 28 00       	cmpb   $0x0,0x28(%edx,%eax,1)
417b16:	7d a9                	jge    0x417ac1
417b18:	80 7d ff 02          	cmpb   $0x2,-0x1(%ebp)
417b1c:	74 17                	je     0x417b35
417b1e:	d1 e9                	shr    $1,%ecx
417b20:	51                   	push   %ecx
417b21:	ff 75 0c             	push   0xc(%ebp)
417b24:	57                   	push   %edi
417b25:	ff 75 ec             	push   -0x14(%ebp)
417b28:	53                   	push   %ebx
417b29:	e8 e6 f9 ff ff       	call   0x417514
417b2e:	83 c4 14             	add    $0x14,%esp
417b31:	8b f8                	mov    %eax,%edi
417b33:	eb 8c                	jmp    0x417ac1
417b35:	d1 ef                	shr    $1,%edi
417b37:	80 7d e0 00          	cmpb   $0x0,-0x20(%ebp)
417b3b:	57                   	push   %edi
417b3c:	ff 75 dc             	push   -0x24(%ebp)
417b3f:	53                   	push   %ebx
417b40:	74 0a                	je     0x417b4c
417b42:	e8 24 fb ff ff       	call   0x41766b
417b47:	83 c4 0c             	add    $0xc,%esp
417b4a:	eb e5                	jmp    0x417b31
417b4c:	e8 14 f8 ff ff       	call   0x417365
417b51:	eb f4                	jmp    0x417b47
417b53:	ff 15 98 40 42 00    	call   *0x424098
417b59:	6a 05                	push   $0x5
417b5b:	5f                   	pop    %edi
417b5c:	3b c7                	cmp    %edi,%eax
417b5e:	75 17                	jne    0x417b77
417b60:	e8 96 72 ff ff       	call   0x40edfb
417b65:	c7 00 09 00 00 00    	movl   $0x9,(%eax)
417b6b:	e8 78 72 ff ff       	call   0x40ede8
417b70:	89 38                	mov    %edi,(%eax)
417b72:	e9 47 ff ff ff       	jmp    0x417abe
417b77:	83 f8 6d             	cmp    $0x6d,%eax
417b7a:	0f 85 37 ff ff ff    	jne    0x417ab7
417b80:	33 ff                	xor    %edi,%edi
417b82:	e9 3a ff ff ff       	jmp    0x417ac1
417b87:	33 c0                	xor    %eax,%eax
417b89:	eb 1b                	jmp    0x417ba6
417b8b:	e8 58 72 ff ff       	call   0x40ede8
417b90:	83 20 00             	andl   $0x0,(%eax)
417b93:	e8 63 72 ff ff       	call   0x40edfb
417b98:	c7 00 09 00 00 00    	movl   $0x9,(%eax)
417b9e:	e8 de 54 ff ff       	call   0x40d081
417ba3:	83 c8 ff             	or     $0xffffffff,%eax
417ba6:	5f                   	pop    %edi
417ba7:	5b                   	pop    %ebx
417ba8:	c9                   	leave
417ba9:	c3                   	ret
417baa:	6a 18                	push   $0x18
417bac:	68 f8 18 43 00       	push   $0x4318f8
417bb1:	e8 0a 04 ff ff       	call   0x407fc0
417bb6:	8b 7d 08             	mov    0x8(%ebp),%edi
417bb9:	83 ff fe             	cmp    $0xfffffffe,%edi
417bbc:	75 18                	jne    0x417bd6
417bbe:	e8 25 72 ff ff       	call   0x40ede8
417bc3:	83 20 00             	andl   $0x0,(%eax)
417bc6:	e8 30 72 ff ff       	call   0x40edfb
417bcb:	c7 00 09 00 00 00    	movl   $0x9,(%eax)
417bd1:	e9 c9 00 00 00       	jmp    0x417c9f
417bd6:	85 ff                	test   %edi,%edi
417bd8:	0f 88 a9 00 00 00    	js     0x417c87
417bde:	3b 3d c0 4c 43 00    	cmp    0x434cc0,%edi
417be4:	0f 83 9d 00 00 00    	jae    0x417c87
417bea:	8b cf                	mov    %edi,%ecx
417bec:	c1 f9 06             	sar    $0x6,%ecx
417bef:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
417bf2:	8b c7                	mov    %edi,%eax
417bf4:	83 e0 3f             	and    $0x3f,%eax
417bf7:	6b d0 38             	imul   $0x38,%eax,%edx
417bfa:	89 55 e0             	mov    %edx,-0x20(%ebp)
417bfd:	8b 04 8d c0 4a 43 00 	mov    0x434ac0(,%ecx,4),%eax
417c04:	f6 44 10 28 01       	testb  $0x1,0x28(%eax,%edx,1)
417c09:	74 7c                	je     0x417c87
417c0b:	57                   	push   %edi
417c0c:	e8 69 39 00 00       	call   0x41b57a
417c11:	59                   	pop    %ecx
417c12:	83 ce ff             	or     $0xffffffff,%esi
417c15:	89 75 d8             	mov    %esi,-0x28(%ebp)
417c18:	8b de                	mov    %esi,%ebx
417c1a:	89 5d dc             	mov    %ebx,-0x24(%ebp)
417c1d:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
417c21:	8b 45 e4             	mov    -0x1c(%ebp),%eax
417c24:	8b 04 85 c0 4a 43 00 	mov    0x434ac0(,%eax,4),%eax
417c2b:	8b 4d e0             	mov    -0x20(%ebp),%ecx
417c2e:	f6 44 08 28 01       	testb  $0x1,0x28(%eax,%ecx,1)
417c33:	75 15                	jne    0x417c4a
417c35:	e8 c1 71 ff ff       	call   0x40edfb
417c3a:	c7 00 09 00 00 00    	movl   $0x9,(%eax)
417c40:	e8 a3 71 ff ff       	call   0x40ede8
417c45:	83 20 00             	andl   $0x0,(%eax)
417c48:	eb 1c                	jmp    0x417c66
417c4a:	ff 75 14             	push   0x14(%ebp)
417c4d:	ff 75 10             	push   0x10(%ebp)
417c50:	ff 75 0c             	push   0xc(%ebp)
417c53:	57                   	push   %edi
417c54:	e8 5d 00 00 00       	call   0x417cb6
417c59:	83 c4 10             	add    $0x10,%esp
417c5c:	8b f0                	mov    %eax,%esi
417c5e:	89 75 d8             	mov    %esi,-0x28(%ebp)
417c61:	8b da                	mov    %edx,%ebx
417c63:	89 5d dc             	mov    %ebx,-0x24(%ebp)
417c66:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
417c6d:	e8 0d 00 00 00       	call   0x417c7f
417c72:	8b d3                	mov    %ebx,%edx
417c74:	eb 2e                	jmp    0x417ca4
417c76:	8b 7d 08             	mov    0x8(%ebp),%edi
417c79:	8b 5d dc             	mov    -0x24(%ebp),%ebx
417c7c:	8b 75 d8             	mov    -0x28(%ebp),%esi
417c7f:	57                   	push   %edi
417c80:	e8 aa 39 00 00       	call   0x41b62f
417c85:	59                   	pop    %ecx
417c86:	c3                   	ret
417c87:	e8 5c 71 ff ff       	call   0x40ede8
417c8c:	83 20 00             	andl   $0x0,(%eax)
417c8f:	e8 67 71 ff ff       	call   0x40edfb
417c94:	c7 00 09 00 00 00    	movl   $0x9,(%eax)
417c9a:	e8 e2 53 ff ff       	call   0x40d081