41ed52:	83 f9 5a             	cmp    $0x5a,%ecx
41ed55:	76 0b                	jbe    0x41ed62
41ed57:	83 f9 61             	cmp    $0x61,%ecx
41ed5a:	72 19                	jb     0x41ed75
41ed5c:	66 83 fe 7a          	cmp    $0x7a,%si
41ed60:	77 13                	ja     0x41ed75
41ed62:	6a 19                	push   $0x19
41ed64:	8d 46 9f             	lea    -0x61(%esi),%eax
41ed67:	5a                   	pop    %edx
41ed68:	66 3b c2             	cmp    %dx,%ax
41ed6b:	77 03                	ja     0x41ed70
41ed6d:	83 c1 e0             	add    $0xffffffe0,%ecx
41ed70:	83 c1 c9             	add    $0xffffffc9,%ecx
41ed73:	eb 03                	jmp    0x41ed78
41ed75:	83 c9 ff             	or     $0xffffffff,%ecx
41ed78:	8b 55 14             	mov    0x14(%ebp),%edx
41ed7b:	3b ca                	cmp    %edx,%ecx
41ed7d:	73 37                	jae    0x41edb6
41ed7f:	8b 45 fc             	mov    -0x4(%ebp),%eax
41ed82:	0f af c2             	imul   %edx,%eax
41ed85:	6a 30                	push   $0x30
41ed87:	8d 14 08             	lea    (%eax,%ecx,1),%edx
41ed8a:	3b d0                	cmp    %eax,%edx
41ed8c:	1b c9                	sbb    %ecx,%ecx
41ed8e:	f7 d9                	neg    %ecx
41ed90:	3b 7d fc             	cmp    -0x4(%ebp),%edi
41ed93:	89 55 fc             	mov    %edx,-0x4(%ebp)
41ed96:	1b c0                	sbb    %eax,%eax
41ed98:	f7 d8                	neg    %eax
41ed9a:	0b c8                	or     %eax,%ecx
41ed9c:	c1 e1 02             	shl    $0x2,%ecx
41ed9f:	83 c9 08             	or     $0x8,%ecx
41eda2:	0b d9                	or     %ecx,%ebx
41eda4:	8b 4d 0c             	mov    0xc(%ebp),%ecx
41eda7:	0f b7 31             	movzwl (%ecx),%esi
41edaa:	83 c1 02             	add    $0x2,%ecx
41edad:	89 4d 0c             	mov    %ecx,0xc(%ebp)
41edb0:	59                   	pop    %ecx
41edb1:	e9 38 fe ff ff       	jmp    0x41ebee
41edb6:	56                   	push   %esi
41edb7:	8d 4d 0c             	lea    0xc(%ebp),%ecx
41edba:	e8 86 08 00 00       	call   0x41f645
41edbf:	f6 c3 08             	test   $0x8,%bl
41edc2:	75 13                	jne    0x41edd7
41edc4:	8b 45 10             	mov    0x10(%ebp),%eax
41edc7:	85 c0                	test   %eax,%eax
41edc9:	74 08                	je     0x41edd3
41edcb:	8b 8d 70 ff ff ff    	mov    -0x90(%ebp),%ecx
41edd1:	89 08                	mov    %ecx,(%eax)
41edd3:	33 c0                	xor    %eax,%eax
41edd5:	eb 65                	jmp    0x41ee3c
41edd7:	8b 75 fc             	mov    -0x4(%ebp),%esi
41edda:	56                   	push   %esi
41eddb:	53                   	push   %ebx
41eddc:	e8 c2 f9 ff ff       	call   0x41e7a3
41ede1:	59                   	pop    %ecx
41ede2:	59                   	pop    %ecx
41ede3:	84 c0                	test   %al,%al
41ede5:	74 40                	je     0x41ee27
41ede7:	8b 45 08             	mov    0x8(%ebp),%eax
41edea:	c6 40 1c 01          	movb   $0x1,0x1c(%eax)
41edee:	c7 40 18 22 00 00 00 	movl   $0x22,0x18(%eax)
41edf5:	f6 c3 01             	test   $0x1,%bl
41edf8:	75 05                	jne    0x41edff
41edfa:	83 ce ff             	or     $0xffffffff,%esi
41edfd:	eb 2f                	jmp    0x41ee2e
41edff:	8b 4d 10             	mov    0x10(%ebp),%ecx
41ee02:	f6 c3 02             	test   $0x2,%bl
41ee05:	74 10                	je     0x41ee17
41ee07:	85 c9                	test   %ecx,%ecx
41ee09:	74 05                	je     0x41ee10
41ee0b:	8b 45 0c             	mov    0xc(%ebp),%eax
41ee0e:	89 01                	mov    %eax,(%ecx)
41ee10:	b8 00 00 00 80       	mov    $0x80000000,%eax
41ee15:	eb 25                	jmp    0x41ee3c
41ee17:	85 c9                	test   %ecx,%ecx
41ee19:	74 05                	je     0x41ee20
41ee1b:	8b 45 0c             	mov    0xc(%ebp),%eax
41ee1e:	89 01                	mov    %eax,(%ecx)
41ee20:	b8 ff ff ff 7f       	mov    $0x7fffffff,%eax
41ee25:	eb 15                	jmp    0x41ee3c
41ee27:	f6 c3 02             	test   $0x2,%bl
41ee2a:	74 02                	je     0x41ee2e
41ee2c:	f7 de                	neg    %esi
41ee2e:	8b 55 10             	mov    0x10(%ebp),%edx
41ee31:	85 d2                	test   %edx,%edx
41ee33:	74 05                	je     0x41ee3a
41ee35:	8b 4d 0c             	mov    0xc(%ebp),%ecx
41ee38:	89 0a                	mov    %ecx,(%edx)
41ee3a:	8b c6                	mov    %esi,%eax
41ee3c:	5f                   	pop    %edi
41ee3d:	5e                   	pop    %esi
41ee3e:	5b                   	pop    %ebx
41ee3f:	c9                   	leave
41ee40:	c3                   	ret
41ee41:	8b ff                	mov    %edi,%edi
41ee43:	55                   	push   %ebp
41ee44:	8b ec                	mov    %esp,%ebp
41ee46:	81 ec a0 00 00 00    	sub    $0xa0,%esp
41ee4c:	8d 4d 0c             	lea    0xc(%ebp),%ecx
41ee4f:	53                   	push   %ebx
41ee50:	56                   	push   %esi
41ee51:	57                   	push   %edi
41ee52:	e8 84 08 00 00       	call   0x41f6db
41ee57:	84 c0                	test   %al,%al
41ee59:	74 2f                	je     0x41ee8a
41ee5b:	8b 7d 14             	mov    0x14(%ebp),%edi
41ee5e:	85 ff                	test   %edi,%edi
41ee60:	74 3d                	je     0x41ee9f
41ee62:	83 ff 02             	cmp    $0x2,%edi
41ee65:	7c 05                	jl     0x41ee6c
41ee67:	83 ff 24             	cmp    $0x24,%edi
41ee6a:	7e 33                	jle    0x41ee9f
41ee6c:	8b 45 08             	mov    0x8(%ebp),%eax
41ee6f:	50                   	push   %eax
41ee70:	c6 40 1c 01          	movb   $0x1,0x1c(%eax)
41ee74:	c7 40 18 16 00 00 00 	movl   $0x16,0x18(%eax)
41ee7b:	33 c0                	xor    %eax,%eax
41ee7d:	50                   	push   %eax
41ee7e:	50                   	push   %eax
41ee7f:	50                   	push   %eax
41ee80:	50                   	push   %eax
41ee81:	50                   	push   %eax
41ee82:	e8 7f 0a 00 00       	call   0x41f906
41ee87:	83 c4 18             	add    $0x18,%esp
41ee8a:	8b 4d 10             	mov    0x10(%ebp),%ecx
41ee8d:	85 c9                	test   %ecx,%ecx
41ee8f:	0f 84 af 05 00 00    	je     0x41f444
41ee95:	8b 45 0c             	mov    0xc(%ebp),%eax
41ee98:	89 01                	mov    %eax,(%ecx)
41ee9a:	e9 a5 05 00 00       	jmp    0x41f444
41ee9f:	8b 45 0c             	mov    0xc(%ebp),%eax
41eea2:	33 db                	xor    %ebx,%ebx
41eea4:	8b 4d 08             	mov    0x8(%ebp),%ecx
41eea7:	83 65 f8 00          	andl   $0x0,-0x8(%ebp)
41eeab:	89 85 60 ff ff ff    	mov    %eax,-0xa0(%ebp)
41eeb1:	0f b7 30             	movzwl (%eax),%esi
41eeb4:	83 c0 02             	add    $0x2,%eax
41eeb7:	89 45 0c             	mov    %eax,0xc(%ebp)
41eeba:	38 59 14             	cmp    %bl,0x14(%ecx)
41eebd:	75 13                	jne    0x41eed2
41eebf:	e8 bc 07 00 00       	call   0x41f680
41eec4:	eb 0c                	jmp    0x41eed2
41eec6:	8b 45 0c             	mov    0xc(%ebp),%eax
41eec9:	0f b7 30             	movzwl (%eax),%esi
41eecc:	83 c0 02             	add    $0x2,%eax
41eecf:	89 45 0c             	mov    %eax,0xc(%ebp)
41eed2:	6a 08                	push   $0x8
41eed4:	56                   	push   %esi
41eed5:	e8 7e b2 00 00       	call   0x42a158
41eeda:	59                   	pop    %ecx
41eedb:	59                   	pop    %ecx
41eedc:	85 c0                	test   %eax,%eax
41eede:	75 e6                	jne    0x41eec6
41eee0:	0f b6 45 18          	movzbl 0x18(%ebp),%eax
41eee4:	89 45 fc             	mov    %eax,-0x4(%ebp)
41eee7:	66 83 fe 2d          	cmp    $0x2d,%si
41eeeb:	75 08                	jne    0x41eef5
41eeed:	83 c8 02             	or     $0x2,%eax
41eef0:	89 45 fc             	mov    %eax,-0x4(%ebp)
41eef3:	eb 06                	jmp    0x41eefb
41eef5:	66 83 fe 2b          	cmp    $0x2b,%si
41eef9:	75 0e                	jne    0x41ef09
41eefb:	8b 55 0c             	mov    0xc(%ebp),%edx
41eefe:	0f b7 32             	movzwl (%edx),%esi
41ef01:	83 c2 02             	add    $0x2,%edx
41ef04:	89 55 0c             	mov    %edx,0xc(%ebp)
41ef07:	eb 03                	jmp    0x41ef0c
41ef09:	8b 55 0c             	mov    0xc(%ebp),%edx
41ef0c:	c7 45 f4 3a 00 00 00 	movl   $0x3a,-0xc(%ebp)
41ef13:	b8 10 ff 00 00       	mov    $0xff10,%eax
41ef18:	c7 85 70 ff ff ff 60 	movl   $0x660,-0x90(%ebp)
41ef1f:	06 00 00
41ef22:	c7 45 f0 6a 06 00 00 	movl   $0x66a,-0x10(%ebp)
41ef29:	c7 45 ec f0 06 00 00 	movl   $0x6f0,-0x14(%ebp)
41ef30:	c7 45 e8 fa 06 00 00 	movl   $0x6fa,-0x18(%ebp)
41ef37:	c7 45 e4 66 09 00 00 	movl   $0x966,-0x1c(%ebp)
41ef3e:	c7 45 e0 70 09 00 00 	movl   $0x970,-0x20(%ebp)
41ef45:	c7 45 dc e6 09 00 00 	movl   $0x9e6,-0x24(%ebp)
41ef4c:	c7 45 d8 f0 09 00 00 	movl   $0x9f0,-0x28(%ebp)
41ef53:	c7 45 d4 66 0a 00 00 	movl   $0xa66,-0x2c(%ebp)
41ef5a:	c7 45 d0 70 0a 00 00 	movl   $0xa70,-0x30(%ebp)
41ef61:	c7 45 cc e6 0a 00 00 	movl   $0xae6,-0x34(%ebp)
41ef68:	c7 45 c8 f0 0a 00 00 	movl   $0xaf0,-0x38(%ebp)
41ef6f:	c7 45 c4 66 0b 00 00 	movl   $0xb66,-0x3c(%ebp)
41ef76:	c7 45 c0 70 0b 00 00 	movl   $0xb70,-0x40(%ebp)
41ef7d:	c7 45 bc 66 0c 00 00 	movl   $0xc66,-0x44(%ebp)
41ef84:	c7 45 b8 70 0c 00 00 	movl   $0xc70,-0x48(%ebp)
41ef8b:	c7 45 b4 e6 0c 00 00 	movl   $0xce6,-0x4c(%ebp)
41ef92:	c7 45 b0 f0 0c 00 00 	movl   $0xcf0,-0x50(%ebp)
41ef99:	c7 45 ac 66 0d 00 00 	movl   $0xd66,-0x54(%ebp)
41efa0:	c7 45 a8 70 0d 00 00 	movl   $0xd70,-0x58(%ebp)
41efa7:	c7 45 a4 50 0e 00 00 	movl   $0xe50,-0x5c(%ebp)
41efae:	c7 45 a0 5a 0e 00 00 	movl   $0xe5a,-0x60(%ebp)
41efb5:	c7 45 9c d0 0e 00 00 	movl   $0xed0,-0x64(%ebp)
41efbc:	c7 45 98 da 0e 00 00 	movl   $0xeda,-0x68(%ebp)
41efc3:	c7 45 94 20 0f 00 00 	movl   $0xf20,-0x6c(%ebp)
41efca:	c7 45 90 2a 0f 00 00 	movl   $0xf2a,-0x70(%ebp)
41efd1:	c7 45 8c 40 10 00 00 	movl   $0x1040,-0x74(%ebp)
41efd8:	c7 45 88 4a 10 00 00 	movl   $0x104a,-0x78(%ebp)
41efdf:	c7 45 84 e0 17 00 00 	movl   $0x17e0,-0x7c(%ebp)
41efe6:	c7 45 80 ea 17 00 00 	movl   $0x17ea,-0x80(%ebp)
41efed:	c7 85 7c ff ff ff 10 	movl   $0x1810,-0x84(%ebp)
41eff4:	18 00 00
41eff7:	c7 85 78 ff ff ff 1a 	movl   $0x181a,-0x88(%ebp)
41effe:	18 00 00
41f001:	c7 85 74 ff ff ff 1a 	movl   $0xff1a,-0x8c(%ebp)
41f008:	ff 00 00
41f00b:	6a 30                	push   $0x30
41f00d:	59                   	pop    %ecx
41f00e:	85 ff                	test   %edi,%edi
41f010:	74 09                	je     0x41f01b
41f012:	83 ff 10             	cmp    $0x10,%edi
41f015:	0f 85 ea 01 00 00    	jne    0x41f205
41f01b:	66 3b f1             	cmp    %cx,%si
41f01e:	0f 82 71 01 00 00    	jb     0x41f195
41f024:	66 3b 75 f4          	cmp    -0xc(%ebp),%si
41f028:	73 0a                	jae    0x41f034
41f02a:	0f b7 c6             	movzwl %si,%eax
41f02d:	2b c1                	sub    %ecx,%eax
41f02f:	e9 5c 01 00 00       	jmp    0x41f190
41f034:	66 3b f0             	cmp    %ax,%si
41f037:	0f 83 42 01 00 00    	jae    0x41f17f
41f03d:	8b 8d 70 ff ff ff    	mov    -0x90(%ebp),%ecx
41f043:	66 3b f1             	cmp    %cx,%si
41f046:	0f 82 49 01 00 00    	jb     0x41f195
41f04c:	66 3b 75 f0          	cmp    -0x10(%ebp),%si
41f050:	72 d8                	jb     0x41f02a
41f052:	8b 4d ec             	mov    -0x14(%ebp),%ecx
41f055:	66 3b f1             	cmp    %cx,%si
41f058:	0f 82 37 01 00 00    	jb     0x41f195
41f05e:	66 3b 75 e8          	cmp    -0x18(%ebp),%si
41f062:	72 c6                	jb     0x41f02a
41f064:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
41f067:	66 3b f1             	cmp    %cx,%si
41f06a:	0f 82 25 01 00 00    	jb     0x41f195
41f070:	66 3b 75 e0          	cmp    -0x20(%ebp),%si
41f074:	72 b4                	jb     0x41f02a
41f076:	8b 4d dc             	mov    -0x24(%ebp),%ecx
41f079:	66 3b f1             	cmp    %cx,%si
41f07c:	0f 82 13 01 00 00    	jb     0x41f195
41f082:	66 3b 75 d8          	cmp    -0x28(%ebp),%si
41f086:	72 a2                	jb     0x41f02a
41f088:	8b 4d d4             	mov    -0x2c(%ebp),%ecx
41f08b:	66 3b f1             	cmp    %cx,%si
41f08e:	0f 82 01 01 00 00    	jb     0x41f195
41f094:	66 3b 75 d0          	cmp    -0x30(%ebp),%si
41f098:	72 90                	jb     0x41f02a
41f09a:	8b 4d cc             	mov    -0x34(%ebp),%ecx
41f09d:	66 3b f1             	cmp    %cx,%si
41f0a0:	0f 82 ef 00 00 00    	jb     0x41f195
41f0a6:	66 3b 75 c8          	cmp    -0x38(%ebp),%si
41f0aa:	0f 82 7a ff ff ff    	jb     0x41f02a
41f0b0:	8b 4d c4             	mov    -0x3c(%ebp),%ecx
41f0b3:	66 3b f1             	cmp    %cx,%si
41f0b6:	0f 82 d9 00 00 00    	jb     0x41f195
41f0bc:	66 3b 75 c0          	cmp    -0x40(%ebp),%si
41f0c0:	0f 82 64 ff ff ff    	jb     0x41f02a
41f0c6:	8b 4d bc             	mov    -0x44(%ebp),%ecx
41f0c9:	66 3b f1             	cmp    %cx,%si
41f0cc:	0f 82 c3 00 00 00    	jb     0x41f195
41f0d2:	66 3b 75 b8          	cmp    -0x48(%ebp),%si
41f0d6:	0f 82 4e ff ff ff    	jb     0x41f02a
41f0dc:	8b 4d b4             	mov    -0x4c(%ebp),%ecx
41f0df:	66 3b f1             	cmp    %cx,%si
41f0e2:	0f 82 ad 00 00 00    	jb     0x41f195
41f0e8:	66 3b 75 b0          	cmp    -0x50(%ebp),%si
41f0ec:	0f 82 38 ff ff ff    	jb     0x41f02a
41f0f2:	8b 4d ac             	mov    -0x54(%ebp),%ecx
41f0f5:	66 3b f1             	cmp    %cx,%si
41f0f8:	0f 82 97 00 00 00    	jb     0x41f195
41f0fe:	66 3b 75 a8          	cmp    -0x58(%ebp),%si
41f102:	0f 82 22 ff ff ff    	jb     0x41f02a
41f108:	8b 4d a4             	mov    -0x5c(%ebp),%ecx
41f10b:	66 3b f1             	cmp    %cx,%si
41f10e:	0f 82 81 00 00 00    	jb     0x41f195
41f114:	66 3b 75 a0          	cmp    -0x60(%ebp),%si
41f118:	0f 82 0c ff ff ff    	jb     0x41f02a
41f11e:	8b 4d 9c             	mov    -0x64(%ebp),%ecx
41f121:	66 3b f1             	cmp    %cx,%si
41f124:	72 6f                	jb     0x41f195
41f126:	66 3b 75 98          	cmp    -0x68(%ebp),%si
41f12a:	0f 82 fa fe ff ff    	jb     0x41f02a
41f130:	8b 4d 94             	mov    -0x6c(%ebp),%ecx
41f133:	66 3b f1             	cmp    %cx,%si
41f136:	72 5d                	jb     0x41f195
41f138:	66 3b 75 90          	cmp    -0x70(%ebp),%si
41f13c:	0f 82 e8 fe ff ff    	jb     0x41f02a
41f142:	8b 4d 8c             	mov    -0x74(%ebp),%ecx
41f145:	66 3b f1             	cmp    %cx,%si
41f148:	72 4b                	jb     0x41f195
41f14a:	66 3b 75 88          	cmp    -0x78(%ebp),%si
41f14e:	0f 82 d6 fe ff ff    	jb     0x41f02a
41f154:	8b 4d 84             	mov    -0x7c(%ebp),%ecx
41f157:	66 3b f1             	cmp    %cx,%si
41f15a:	72 39                	jb     0x41f195
41f15c:	66 3b 75 80          	cmp    -0x80(%ebp),%si
41f160:	0f 82 c4 fe ff ff    	jb     0x41f02a
41f166:	8b 8d 7c ff ff ff    	mov    -0x84(%ebp),%ecx
41f16c:	66 3b f1             	cmp    %cx,%si
41f16f:	72 24                	jb     0x41f195
41f171:	66 3b b5 78 ff ff ff 	cmp    -0x88(%ebp),%si
41f178:	73 1b                	jae    0x41f195
41f17a:	e9 ab fe ff ff       	jmp    0x41f02a
41f17f:	66 3b b5 74 ff ff ff 	cmp    -0x8c(%ebp),%si
41f186:	73 0d                	jae    0x41f195
41f188:	0f b7 c6             	movzwl %si,%eax
41f18b:	2d 10 ff 00 00       	sub    $0xff10,%eax
41f190:	83 f8 ff             	cmp    $0xffffffff,%eax
41f193:	75 25                	jne    0x41f1ba
41f195:	0f b7 c6             	movzwl %si,%eax
41f198:	83 f8 41             	cmp    $0x41,%eax
41f19b:	72 0a                	jb     0x41f1a7
41f19d:	83 f8 5a             	cmp    $0x5a,%eax
41f1a0:	77 05                	ja     0x41f1a7
41f1a2:	8d 48 9f             	lea    -0x61(%eax),%ecx
41f1a5:	eb 08                	jmp    0x41f1af
41f1a7:	8d 48 9f             	lea    -0x61(%eax),%ecx
41f1aa:	83 f9 19             	cmp    $0x19,%ecx
41f1ad:	77 4c                	ja     0x41f1fb
41f1af:	83 f9 19             	cmp    $0x19,%ecx
41f1b2:	77 03                	ja     0x41f1b7
41f1b4:	83 c0 e0             	add    $0xffffffe0,%eax
41f1b7:	83 c0 c9             	add    $0xffffffc9,%eax
41f1ba:	85 c0                	test   %eax,%eax
41f1bc:	75 3d                	jne    0x41f1fb
41f1be:	0f b7 02             	movzwl (%edx),%eax
41f1c1:	8d 4a 02             	lea    0x2(%edx),%ecx
41f1c4:	89 4d 0c             	mov    %ecx,0xc(%ebp)
41f1c7:	83 f8 78             	cmp    $0x78,%eax
41f1ca:	74 1a                	je     0x41f1e6
41f1cc:	83 f8 58             	cmp    $0x58,%eax
41f1cf:	74 15                	je     0x41f1e6
41f1d1:	85 ff                	test   %edi,%edi
41f1d3:	75 06                	jne    0x41f1db
41f1d5:	6a 08                	push   $0x8
41f1d7:	5f                   	pop    %edi
41f1d8:	89 7d 14             	mov    %edi,0x14(%ebp)
41f1db:	50                   	push   %eax
41f1dc:	8d 4d 0c             	lea    0xc(%ebp),%ecx
41f1df:	e8 61 04 00 00       	call   0x41f645
41f1e4:	eb 1f                	jmp    0x41f205
41f1e6:	85 ff                	test   %edi,%edi
41f1e8:	75 06                	jne    0x41f1f0
41f1ea:	6a 10                	push   $0x10
41f1ec:	5f                   	pop    %edi
41f1ed:	89 7d 14             	mov    %edi,0x14(%ebp)
41f1f0:	0f b7 31             	movzwl (%ecx),%esi
41f1f3:	83 c1 02             	add    $0x2,%ecx
41f1f6:	89 4d 0c             	mov    %ecx,0xc(%ebp)