417da7:	0f af c7             	imul   %edi,%eax
417daa:	03 c1                	add    %ecx,%eax
417dac:	89 45 f4             	mov    %eax,-0xc(%ebp)
417daf:	8a 1e                	mov    (%esi),%bl
417db1:	46                   	inc    %esi
417db2:	88 5d fc             	mov    %bl,-0x4(%ebp)
417db5:	89 75 0c             	mov    %esi,0xc(%ebp)
417db8:	eb 98                	jmp    0x417d52
417dba:	ff 75 fc             	push   -0x4(%ebp)
417dbd:	8d 4d 0c             	lea    0xc(%ebp),%ecx
417dc0:	89 55 f8             	mov    %edx,-0x8(%ebp)
417dc3:	e8 90 d3 ff ff       	call   0x415158
417dc8:	8b 5d f8             	mov    -0x8(%ebp),%ebx
417dcb:	f6 c3 08             	test   $0x8,%bl
417dce:	75 0a                	jne    0x417dda
417dd0:	8b 45 e8             	mov    -0x18(%ebp),%eax
417dd3:	33 db                	xor    %ebx,%ebx
417dd5:	89 45 0c             	mov    %eax,0xc(%ebp)
417dd8:	eb 41                	jmp    0x417e1b
417dda:	8b 75 f4             	mov    -0xc(%ebp),%esi
417ddd:	56                   	push   %esi
417dde:	53                   	push   %ebx
417ddf:	e8 db fd ff ff       	call   0x417bbf
417de4:	59                   	pop    %ecx
417de5:	59                   	pop    %ecx
417de6:	84 c0                	test   %al,%al
417de8:	74 28                	je     0x417e12
417dea:	e8 7c cc ff ff       	call   0x414a6b
417def:	c7 00 22 00 00 00    	movl   $0x22,(%eax)
417df5:	f6 c3 01             	test   $0x1,%bl
417df8:	75 05                	jne    0x417dff
417dfa:	83 ce ff             	or     $0xffffffff,%esi
417dfd:	eb 1a                	jmp    0x417e19
417dff:	f6 c3 02             	test   $0x2,%bl
417e02:	74 07                	je     0x417e0b
417e04:	bb 00 00 00 80       	mov    $0x80000000,%ebx
417e09:	eb 10                	jmp    0x417e1b
417e0b:	bb ff ff ff 7f       	mov    $0x7fffffff,%ebx
417e10:	eb 09                	jmp    0x417e1b
417e12:	f6 c3 02             	test   $0x2,%bl
417e15:	74 02                	je     0x417e19
417e17:	f7 de                	neg    %esi
417e19:	8b de                	mov    %esi,%ebx
417e1b:	80 7d e4 00          	cmpb   $0x0,-0x1c(%ebp)
417e1f:	5e                   	pop    %esi
417e20:	0f 84 20 fe ff ff    	je     0x417c46
417e26:	8b 45 d8             	mov    -0x28(%ebp),%eax
417e29:	83 a0 50 03 00 00 fd 	andl   $0xfffffffd,0x350(%eax)
417e30:	e9 11 fe ff ff       	jmp    0x417c46
417e35:	8b ff                	mov    %edi,%edi
417e37:	55                   	push   %ebp
417e38:	8b ec                	mov    %esp,%ebp
417e3a:	83 ec 1c             	sub    $0x1c,%esp
417e3d:	8d 4d 0c             	lea    0xc(%ebp),%ecx
417e40:	53                   	push   %ebx
417e41:	57                   	push   %edi
417e42:	e8 80 d3 ff ff       	call   0x4151c7
417e47:	84 c0                	test   %al,%al
417e49:	74 23                	je     0x417e6e
417e4b:	8b 45 14             	mov    0x14(%ebp),%eax
417e4e:	6a 02                	push   $0x2
417e50:	5f                   	pop    %edi
417e51:	85 c0                	test   %eax,%eax
417e53:	74 2f                	je     0x417e84
417e55:	3b c7                	cmp    %edi,%eax
417e57:	7c 05                	jl     0x417e5e
417e59:	83 f8 24             	cmp    $0x24,%eax
417e5c:	7e 26                	jle    0x417e84
417e5e:	e8 08 cc ff ff       	call   0x414a6b
417e63:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
417e69:	e8 74 3e ff ff       	call   0x40bce2
417e6e:	33 db                	xor    %ebx,%ebx
417e70:	8b 55 10             	mov    0x10(%ebp),%edx
417e73:	85 d2                	test   %edx,%edx
417e75:	74 05                	je     0x417e7c
417e77:	8b 4d 0c             	mov    0xc(%ebp),%ecx
417e7a:	89 0a                	mov    %ecx,(%edx)
417e7c:	5f                   	pop    %edi
417e7d:	8b c3                	mov    %ebx,%eax
417e7f:	5b                   	pop    %ebx
417e80:	8b e5                	mov    %ebp,%esp
417e82:	5d                   	pop    %ebp
417e83:	c3                   	ret
417e84:	56                   	push   %esi
417e85:	ff 75 08             	push   0x8(%ebp)
417e88:	8d 4d e4             	lea    -0x1c(%ebp),%ecx
417e8b:	e8 38 49 ff ff       	call   0x40c7c8
417e90:	8b 45 0c             	mov    0xc(%ebp),%eax
417e93:	33 f6                	xor    %esi,%esi
417e95:	89 75 f8             	mov    %esi,-0x8(%ebp)
417e98:	89 45 f4             	mov    %eax,-0xc(%ebp)
417e9b:	eb 03                	jmp    0x417ea0
417e9d:	8b 45 0c             	mov    0xc(%ebp),%eax
417ea0:	0f b7 30             	movzwl (%eax),%esi
417ea3:	03 c7                	add    %edi,%eax
417ea5:	6a 08                	push   $0x8
417ea7:	56                   	push   %esi
417ea8:	89 45 0c             	mov    %eax,0xc(%ebp)
417eab:	e8 21 2a 00 00       	call   0x41a8d1
417eb0:	59                   	pop    %ecx
417eb1:	59                   	pop    %ecx
417eb2:	85 c0                	test   %eax,%eax
417eb4:	75 e7                	jne    0x417e9d
417eb6:	33 db                	xor    %ebx,%ebx
417eb8:	38 5d 18             	cmp    %bl,0x18(%ebp)
417ebb:	0f 95 c3             	setne  %bl
417ebe:	66 83 fe 2d          	cmp    $0x2d,%si
417ec2:	75 04                	jne    0x417ec8
417ec4:	0b df                	or     %edi,%ebx
417ec6:	eb 06                	jmp    0x417ece
417ec8:	66 83 fe 2b          	cmp    $0x2b,%si
417ecc:	75 0e                	jne    0x417edc
417ece:	8b 7d 0c             	mov    0xc(%ebp),%edi
417ed1:	0f b7 37             	movzwl (%edi),%esi
417ed4:	83 c7 02             	add    $0x2,%edi
417ed7:	89 7d 0c             	mov    %edi,0xc(%ebp)
417eda:	eb 03                	jmp    0x417edf
417edc:	8b 7d 0c             	mov    0xc(%ebp),%edi
417edf:	8b 4d 14             	mov    0x14(%ebp),%ecx
417ee2:	c7 45 fc 19 00 00 00 	movl   $0x19,-0x4(%ebp)
417ee9:	6a 30                	push   $0x30
417eeb:	58                   	pop    %eax
417eec:	6a 10                	push   $0x10
417eee:	5a                   	pop    %edx
417eef:	85 c9                	test   %ecx,%ecx
417ef1:	74 08                	je     0x417efb
417ef3:	3b ca                	cmp    %edx,%ecx
417ef5:	0f 85 db 02 00 00    	jne    0x4181d6
417efb:	66 3b f0             	cmp    %ax,%si
417efe:	0f 82 55 02 00 00    	jb     0x418159
417f04:	6a 3a                	push   $0x3a
417f06:	58                   	pop    %eax
417f07:	66 3b f0             	cmp    %ax,%si
417f0a:	73 0b                	jae    0x417f17
417f0c:	0f b7 c6             	movzwl %si,%eax
417f0f:	83 e8 30             	sub    $0x30,%eax
417f12:	e9 3d 02 00 00       	jmp    0x418154
417f17:	b8 10 ff 00 00       	mov    $0xff10,%eax
417f1c:	66 3b f0             	cmp    %ax,%si
417f1f:	0f 83 18 02 00 00    	jae    0x41813d
417f25:	b8 60 06 00 00       	mov    $0x660,%eax
417f2a:	66 3b f0             	cmp    %ax,%si
417f2d:	0f 82 26 02 00 00    	jb     0x418159
417f33:	83 c0 0a             	add    $0xa,%eax
417f36:	66 3b f0             	cmp    %ax,%si
417f39:	73 0d                	jae    0x417f48
417f3b:	0f b7 c6             	movzwl %si,%eax
417f3e:	2d 60 06 00 00       	sub    $0x660,%eax
417f43:	e9 0c 02 00 00       	jmp    0x418154
417f48:	b8 f0 06 00 00       	mov    $0x6f0,%eax
417f4d:	66 3b f0             	cmp    %ax,%si
417f50:	0f 82 03 02 00 00    	jb     0x418159
417f56:	83 c0 0a             	add    $0xa,%eax
417f59:	66 3b f0             	cmp    %ax,%si
417f5c:	73 0d                	jae    0x417f6b
417f5e:	0f b7 c6             	movzwl %si,%eax
417f61:	2d f0 06 00 00       	sub    $0x6f0,%eax
417f66:	e9 e9 01 00 00       	jmp    0x418154
417f6b:	b8 66 09 00 00       	mov    $0x966,%eax
417f70:	66 3b f0             	cmp    %ax,%si
417f73:	0f 82 e0 01 00 00    	jb     0x418159
417f79:	83 c0 0a             	add    $0xa,%eax
417f7c:	66 3b f0             	cmp    %ax,%si
417f7f:	73 0d                	jae    0x417f8e
417f81:	0f b7 c6             	movzwl %si,%eax
417f84:	2d 66 09 00 00       	sub    $0x966,%eax
417f89:	e9 c6 01 00 00       	jmp    0x418154
417f8e:	b8 e6 09 00 00       	mov    $0x9e6,%eax
417f93:	66 3b f0             	cmp    %ax,%si
417f96:	0f 82 bd 01 00 00    	jb     0x418159
417f9c:	83 c0 0a             	add    $0xa,%eax
417f9f:	66 3b f0             	cmp    %ax,%si
417fa2:	73 0d                	jae    0x417fb1
417fa4:	0f b7 c6             	movzwl %si,%eax
417fa7:	2d e6 09 00 00       	sub    $0x9e6,%eax
417fac:	e9 a3 01 00 00       	jmp    0x418154
417fb1:	b8 66 0a 00 00       	mov    $0xa66,%eax
417fb6:	66 3b f0             	cmp    %ax,%si
417fb9:	0f 82 9a 01 00 00    	jb     0x418159
417fbf:	83 c0 0a             	add    $0xa,%eax
417fc2:	66 3b f0             	cmp    %ax,%si
417fc5:	73 0d                	jae    0x417fd4
417fc7:	0f b7 c6             	movzwl %si,%eax
417fca:	2d 66 0a 00 00       	sub    $0xa66,%eax
417fcf:	e9 80 01 00 00       	jmp    0x418154
417fd4:	b8 e6 0a 00 00       	mov    $0xae6,%eax
417fd9:	66 3b f0             	cmp    %ax,%si
417fdc:	0f 82 77 01 00 00    	jb     0x418159
417fe2:	83 c0 0a             	add    $0xa,%eax
417fe5:	66 3b f0             	cmp    %ax,%si
417fe8:	73 0d                	jae    0x417ff7
417fea:	0f b7 c6             	movzwl %si,%eax
417fed:	2d e6 0a 00 00       	sub    $0xae6,%eax
417ff2:	e9 5d 01 00 00       	jmp    0x418154
417ff7:	b8 66 0b 00 00       	mov    $0xb66,%eax
417ffc:	66 3b f0             	cmp    %ax,%si
417fff:	0f 82 54 01 00 00    	jb     0x418159
418005:	83 c0 0a             	add    $0xa,%eax
418008:	66 3b f0             	cmp    %ax,%si
41800b:	73 0d                	jae    0x41801a
41800d:	0f b7 c6             	movzwl %si,%eax
418010:	2d 66 0b 00 00       	sub    $0xb66,%eax
418015:	e9 3a 01 00 00       	jmp    0x418154
41801a:	b8 66 0c 00 00       	mov    $0xc66,%eax
41801f:	66 3b f0             	cmp    %ax,%si
418022:	0f 82 31 01 00 00    	jb     0x418159
418028:	83 c0 0a             	add    $0xa,%eax
41802b:	66 3b f0             	cmp    %ax,%si
41802e:	73 0d                	jae    0x41803d
418030:	0f b7 c6             	movzwl %si,%eax
418033:	2d 66 0c 00 00       	sub    $0xc66,%eax
418038:	e9 17 01 00 00       	jmp    0x418154
41803d:	b8 e6 0c 00 00       	mov    $0xce6,%eax
418042:	66 3b f0             	cmp    %ax,%si
418045:	0f 82 0e 01 00 00    	jb     0x418159
41804b:	83 c0 0a             	add    $0xa,%eax
41804e:	66 3b f0             	cmp    %ax,%si
418051:	73 0d                	jae    0x418060
418053:	0f b7 c6             	movzwl %si,%eax
418056:	2d e6 0c 00 00       	sub    $0xce6,%eax
41805b:	e9 f4 00 00 00       	jmp    0x418154
418060:	b8 66 0d 00 00       	mov    $0xd66,%eax
418065:	66 3b f0             	cmp    %ax,%si
418068:	0f 82 eb 00 00 00    	jb     0x418159
41806e:	83 c0 0a             	add    $0xa,%eax
418071:	66 3b f0             	cmp    %ax,%si
418074:	73 0d                	jae    0x418083
418076:	0f b7 c6             	movzwl %si,%eax
418079:	2d 66 0d 00 00       	sub    $0xd66,%eax
41807e:	e9 d1 00 00 00       	jmp    0x418154
418083:	b8 50 0e 00 00       	mov    $0xe50,%eax
418088:	66 3b f0             	cmp    %ax,%si
41808b:	0f 82 c8 00 00 00    	jb     0x418159
418091:	83 c0 0a             	add    $0xa,%eax
418094:	66 3b f0             	cmp    %ax,%si
418097:	73 0d                	jae    0x4180a6
418099:	0f b7 c6             	movzwl %si,%eax
41809c:	2d 50 0e 00 00       	sub    $0xe50,%eax
4180a1:	e9 ae 00 00 00       	jmp    0x418154
4180a6:	b8 d0 0e 00 00       	mov    $0xed0,%eax
4180ab:	66 3b f0             	cmp    %ax,%si
4180ae:	0f 82 a5 00 00 00    	jb     0x418159
4180b4:	83 c0 0a             	add    $0xa,%eax
4180b7:	66 3b f0             	cmp    %ax,%si
4180ba:	73 0d                	jae    0x4180c9
4180bc:	0f b7 c6             	movzwl %si,%eax
4180bf:	2d d0 0e 00 00       	sub    $0xed0,%eax
4180c4:	e9 8b 00 00 00       	jmp    0x418154
4180c9:	b8 20 0f 00 00       	mov    $0xf20,%eax
4180ce:	66 3b f0             	cmp    %ax,%si
4180d1:	0f 82 82 00 00 00    	jb     0x418159
4180d7:	83 c0 0a             	add    $0xa,%eax
4180da:	66 3b f0             	cmp    %ax,%si
4180dd:	73 0a                	jae    0x4180e9
4180df:	0f b7 c6             	movzwl %si,%eax
4180e2:	2d 20 0f 00 00       	sub    $0xf20,%eax
4180e7:	eb 6b                	jmp    0x418154
4180e9:	b8 40 10 00 00       	mov    $0x1040,%eax
4180ee:	66 3b f0             	cmp    %ax,%si
4180f1:	72 66                	jb     0x418159
4180f3:	83 c0 0a             	add    $0xa,%eax
4180f6:	66 3b f0             	cmp    %ax,%si
4180f9:	73 0a                	jae    0x418105
4180fb:	0f b7 c6             	movzwl %si,%eax
4180fe:	2d 40 10 00 00       	sub    $0x1040,%eax
418103:	eb 4f                	jmp    0x418154
418105:	b8 e0 17 00 00       	mov    $0x17e0,%eax
41810a:	66 3b f0             	cmp    %ax,%si
41810d:	72 4a                	jb     0x418159
41810f:	83 c0 0a             	add    $0xa,%eax
418112:	66 3b f0             	cmp    %ax,%si
418115:	73 0a                	jae    0x418121
418117:	0f b7 c6             	movzwl %si,%eax
41811a:	2d e0 17 00 00       	sub    $0x17e0,%eax
41811f:	eb 33                	jmp    0x418154
418121:	b8 10 18 00 00       	mov    $0x1810,%eax
418126:	66 3b f0             	cmp    %ax,%si
418129:	72 2e                	jb     0x418159
41812b:	83 c0 0a             	add    $0xa,%eax
41812e:	66 3b f0             	cmp    %ax,%si
418131:	73 26                	jae    0x418159
418133:	0f b7 c6             	movzwl %si,%eax
418136:	2d 10 18 00 00       	sub    $0x1810,%eax
41813b:	eb 17                	jmp    0x418154
41813d:	b8 1a ff 00 00       	mov    $0xff1a,%eax
418142:	66 3b f0             	cmp    %ax,%si
418145:	73 0a                	jae    0x418151
418147:	0f b7 c6             	movzwl %si,%eax
41814a:	2d 10 ff 00 00       	sub    $0xff10,%eax
41814f:	eb 03                	jmp    0x418154
418151:	83 c8 ff             	or     $0xffffffff,%eax
418154:	83 f8 ff             	cmp    $0xffffffff,%eax
418157:	75 30                	jne    0x418189
418159:	6a 41                	push   $0x41
41815b:	58                   	pop    %eax
41815c:	66 3b c6             	cmp    %si,%ax
41815f:	77 08                	ja     0x418169
418161:	6a 5a                	push   $0x5a
418163:	58                   	pop    %eax
418164:	66 3b f0             	cmp    %ax,%si
418167:	76 09                	jbe    0x418172
418169:	8d 46 9f             	lea    -0x61(%esi),%eax
41816c:	66 3b 45 fc          	cmp    -0x4(%ebp),%ax
418170:	77 14                	ja     0x418186
418172:	8d 46 9f             	lea    -0x61(%esi),%eax
418175:	66 3b 45 fc          	cmp    -0x4(%ebp),%ax
418179:	0f b7 c6             	movzwl %si,%eax
41817c:	77 03                	ja     0x418181
41817e:	83 e8 20             	sub    $0x20,%eax
418181:	83 c0 c9             	add    $0xffffffc9,%eax
418184:	eb 03                	jmp    0x418189
418186:	83 c8 ff             	or     $0xffffffff,%eax
418189:	85 c0                	test   %eax,%eax
41818b:	74 0d                	je     0x41819a
41818d:	85 c9                	test   %ecx,%ecx
41818f:	75 45                	jne    0x4181d6
418191:	c7 45 14 0a 00 00 00 	movl   $0xa,0x14(%ebp)
418198:	eb 3c                	jmp    0x4181d6
41819a:	0f b7 07             	movzwl (%edi),%eax
41819d:	83 c7 02             	add    $0x2,%edi
4181a0:	89 7d 0c             	mov    %edi,0xc(%ebp)
4181a3:	83 f8 78             	cmp    $0x78,%eax
4181a6:	74 1e                	je     0x4181c6
4181a8:	83 f8 58             	cmp    $0x58,%eax
4181ab:	74 19                	je     0x4181c6
4181ad:	85 c9                	test   %ecx,%ecx
4181af:	75 07                	jne    0x4181b8
4181b1:	c7 45 14 08 00 00 00 	movl   $0x8,0x14(%ebp)
4181b8:	50                   	push   %eax
4181b9:	8d 4d 0c             	lea    0xc(%ebp),%ecx
4181bc:	e8 bf cf ff ff       	call   0x415180
4181c1:	8b 7d 0c             	mov    0xc(%ebp),%edi
4181c4:	eb 10                	jmp    0x4181d6
4181c6:	85 c9                	test   %ecx,%ecx
4181c8:	75 03                	jne    0x4181cd
4181ca:	89 55 14             	mov    %edx,0x14(%ebp)
4181cd:	0f b7 37             	movzwl (%edi),%esi
4181d0:	83 c7 02             	add    $0x2,%edi
4181d3:	89 7d 0c             	mov    %edi,0xc(%ebp)
4181d6:	83 c8 ff             	or     $0xffffffff,%eax
4181d9:	33 d2                	xor    %edx,%edx
4181db:	f7 75 14             	divl   0x14(%ebp)
4181de:	8b c8                	mov    %eax,%ecx
4181e0:	6a 30                	push   $0x30
4181e2:	58                   	pop    %eax
4181e3:	66 3b f0             	cmp    %ax,%si
4181e6:	0f 82 55 02 00 00    	jb     0x418441
4181ec:	6a 3a                	push   $0x3a
4181ee:	58                   	pop    %eax
4181ef:	66 3b f0             	cmp    %ax,%si