411f80:	09 4d f8             	or     %ecx,-0x8(%ebp)
411f83:	47                   	inc    %edi
411f84:	89 7d 0c             	mov    %edi,0xc(%ebp)
411f87:	eb 98                	jmp    0x411f21
411f89:	ff 75 fc             	push   -0x4(%ebp)
411f8c:	8d 4d 0c             	lea    0xc(%ebp),%ecx
411f8f:	e8 ce f8 ff ff       	call   0x411862
411f94:	8b 5d f8             	mov    -0x8(%ebp),%ebx
411f97:	5f                   	pop    %edi
411f98:	f6 c3 08             	test   $0x8,%bl
411f9b:	75 10                	jne    0x411fad
411f9d:	8b 45 10             	mov    0x10(%ebp),%eax
411fa0:	85 c0                	test   %eax,%eax
411fa2:	74 05                	je     0x411fa9
411fa4:	8b 4d ec             	mov    -0x14(%ebp),%ecx
411fa7:	89 08                	mov    %ecx,(%eax)
411fa9:	33 c0                	xor    %eax,%eax
411fab:	eb 65                	jmp    0x412012
411fad:	8b 75 f4             	mov    -0xc(%ebp),%esi
411fb0:	56                   	push   %esi
411fb1:	53                   	push   %ebx
411fb2:	e8 6b bb ff ff       	call   0x40db22
411fb7:	59                   	pop    %ecx
411fb8:	59                   	pop    %ecx
411fb9:	84 c0                	test   %al,%al
411fbb:	74 40                	je     0x411ffd
411fbd:	8b 45 08             	mov    0x8(%ebp),%eax
411fc0:	c6 40 1c 01          	movb   $0x1,0x1c(%eax)
411fc4:	c7 40 18 22 00 00 00 	movl   $0x22,0x18(%eax)
411fcb:	f6 c3 01             	test   $0x1,%bl
411fce:	75 05                	jne    0x411fd5
411fd0:	83 ce ff             	or     $0xffffffff,%esi
411fd3:	eb 2f                	jmp    0x412004
411fd5:	8b 4d 10             	mov    0x10(%ebp),%ecx
411fd8:	f6 c3 02             	test   $0x2,%bl
411fdb:	74 10                	je     0x411fed
411fdd:	85 c9                	test   %ecx,%ecx
411fdf:	74 05                	je     0x411fe6
411fe1:	8b 45 0c             	mov    0xc(%ebp),%eax
411fe4:	89 01                	mov    %eax,(%ecx)
411fe6:	b8 00 00 00 80       	mov    $0x80000000,%eax
411feb:	eb 25                	jmp    0x412012
411fed:	85 c9                	test   %ecx,%ecx
411fef:	74 05                	je     0x411ff6
411ff1:	8b 45 0c             	mov    0xc(%ebp),%eax
411ff4:	89 01                	mov    %eax,(%ecx)
411ff6:	b8 ff ff ff 7f       	mov    $0x7fffffff,%eax
411ffb:	eb 15                	jmp    0x412012
411ffd:	f6 c3 02             	test   $0x2,%bl
412000:	74 02                	je     0x412004
412002:	f7 de                	neg    %esi
412004:	8b 55 10             	mov    0x10(%ebp),%edx
412007:	85 d2                	test   %edx,%edx
412009:	74 05                	je     0x412010
41200b:	8b 4d 0c             	mov    0xc(%ebp),%ecx
41200e:	89 0a                	mov    %ecx,(%edx)
412010:	8b c6                	mov    %esi,%eax
412012:	5e                   	pop    %esi
412013:	5b                   	pop    %ebx
412014:	c9                   	leave
412015:	c3                   	ret
412016:	8b ff                	mov    %edi,%edi
412018:	55                   	push   %ebp
412019:	8b ec                	mov    %esp,%ebp
41201b:	81 ec 90 00 00 00    	sub    $0x90,%esp
412021:	8d 4d 0c             	lea    0xc(%ebp),%ecx
412024:	53                   	push   %ebx
412025:	56                   	push   %esi
412026:	57                   	push   %edi
412027:	e8 ef f8 ff ff       	call   0x41191b
41202c:	84 c0                	test   %al,%al
41202e:	74 2f                	je     0x41205f
412030:	8b 7d 14             	mov    0x14(%ebp),%edi
412033:	85 ff                	test   %edi,%edi
412035:	74 3d                	je     0x412074
412037:	83 ff 02             	cmp    $0x2,%edi
41203a:	7c 05                	jl     0x412041
41203c:	83 ff 24             	cmp    $0x24,%edi
41203f:	7e 33                	jle    0x412074
412041:	8b 45 08             	mov    0x8(%ebp),%eax
412044:	50                   	push   %eax
412045:	c6 40 1c 01          	movb   $0x1,0x1c(%eax)
412049:	c7 40 18 16 00 00 00 	movl   $0x16,0x18(%eax)
412050:	33 c0                	xor    %eax,%eax
412052:	50                   	push   %eax
412053:	50                   	push   %eax
412054:	50                   	push   %eax
412055:	50                   	push   %eax
412056:	50                   	push   %eax
412057:	e8 15 b3 ff ff       	call   0x40d371
41205c:	83 c4 18             	add    $0x18,%esp
41205f:	8b 4d 10             	mov    0x10(%ebp),%ecx
412062:	85 c9                	test   %ecx,%ecx
412064:	0f 84 4c 05 00 00    	je     0x4125b6
41206a:	8b 45 0c             	mov    0xc(%ebp),%eax
41206d:	89 01                	mov    %eax,(%ecx)
41206f:	e9 42 05 00 00       	jmp    0x4125b6
412074:	8b 45 0c             	mov    0xc(%ebp),%eax
412077:	8b 4d 08             	mov    0x8(%ebp),%ecx
41207a:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
41207e:	89 85 70 ff ff ff    	mov    %eax,-0x90(%ebp)
412084:	0f b7 30             	movzwl (%eax),%esi
412087:	83 c0 02             	add    $0x2,%eax
41208a:	80 79 14 00          	cmpb   $0x0,0x14(%ecx)
41208e:	89 45 0c             	mov    %eax,0xc(%ebp)
412091:	75 13                	jne    0x4120a6
412093:	e8 28 f8 ff ff       	call   0x4118c0
412098:	eb 0c                	jmp    0x4120a6
41209a:	8b 45 0c             	mov    0xc(%ebp),%eax
41209d:	0f b7 30             	movzwl (%eax),%esi
4120a0:	83 c0 02             	add    $0x2,%eax
4120a3:	89 45 0c             	mov    %eax,0xc(%ebp)
4120a6:	6a 08                	push   $0x8
4120a8:	56                   	push   %esi
4120a9:	e8 32 be 00 00       	call   0x41dee0
4120ae:	59                   	pop    %ecx
4120af:	59                   	pop    %ecx
4120b0:	85 c0                	test   %eax,%eax
4120b2:	75 e6                	jne    0x41209a
4120b4:	0f b6 5d 18          	movzbl 0x18(%ebp),%ebx
4120b8:	66 83 fe 2d          	cmp    $0x2d,%si
4120bc:	75 05                	jne    0x4120c3
4120be:	83 cb 02             	or     $0x2,%ebx
4120c1:	eb 06                	jmp    0x4120c9
4120c3:	66 83 fe 2b          	cmp    $0x2b,%si
4120c7:	75 0e                	jne    0x4120d7
4120c9:	8b 55 0c             	mov    0xc(%ebp),%edx
4120cc:	0f b7 32             	movzwl (%edx),%esi
4120cf:	83 c2 02             	add    $0x2,%edx
4120d2:	89 55 0c             	mov    %edx,0xc(%ebp)
4120d5:	eb 03                	jmp    0x4120da
4120d7:	8b 55 0c             	mov    0xc(%ebp),%edx
4120da:	c7 85 74 ff ff ff 3a 	movl   $0x3a,-0x8c(%ebp)
4120e1:	00 00 00
4120e4:	b8 10 ff 00 00       	mov    $0xff10,%eax
4120e9:	c7 45 f8 60 06 00 00 	movl   $0x660,-0x8(%ebp)
4120f0:	c7 45 f4 6a 06 00 00 	movl   $0x66a,-0xc(%ebp)
4120f7:	c7 45 f0 f0 06 00 00 	movl   $0x6f0,-0x10(%ebp)
4120fe:	c7 45 ec fa 06 00 00 	movl   $0x6fa,-0x14(%ebp)
412105:	c7 45 e8 66 09 00 00 	movl   $0x966,-0x18(%ebp)
41210c:	c7 45 e4 70 09 00 00 	movl   $0x970,-0x1c(%ebp)
412113:	c7 45 e0 e6 09 00 00 	movl   $0x9e6,-0x20(%ebp)
41211a:	c7 45 dc f0 09 00 00 	movl   $0x9f0,-0x24(%ebp)
412121:	c7 45 d8 66 0a 00 00 	movl   $0xa66,-0x28(%ebp)
412128:	c7 45 d4 70 0a 00 00 	movl   $0xa70,-0x2c(%ebp)
41212f:	c7 45 d0 e6 0a 00 00 	movl   $0xae6,-0x30(%ebp)
412136:	c7 45 cc f0 0a 00 00 	movl   $0xaf0,-0x34(%ebp)
41213d:	c7 45 c8 66 0b 00 00 	movl   $0xb66,-0x38(%ebp)
412144:	c7 45 c4 70 0b 00 00 	movl   $0xb70,-0x3c(%ebp)
41214b:	c7 45 c0 66 0c 00 00 	movl   $0xc66,-0x40(%ebp)
412152:	c7 45 bc 70 0c 00 00 	movl   $0xc70,-0x44(%ebp)
412159:	c7 45 b8 e6 0c 00 00 	movl   $0xce6,-0x48(%ebp)
412160:	c7 45 b4 f0 0c 00 00 	movl   $0xcf0,-0x4c(%ebp)
412167:	c7 45 b0 66 0d 00 00 	movl   $0xd66,-0x50(%ebp)
41216e:	c7 45 ac 70 0d 00 00 	movl   $0xd70,-0x54(%ebp)
412175:	c7 45 a8 50 0e 00 00 	movl   $0xe50,-0x58(%ebp)
41217c:	c7 45 a4 5a 0e 00 00 	movl   $0xe5a,-0x5c(%ebp)
412183:	c7 45 a0 d0 0e 00 00 	movl   $0xed0,-0x60(%ebp)
41218a:	c7 45 9c da 0e 00 00 	movl   $0xeda,-0x64(%ebp)
412191:	c7 45 98 20 0f 00 00 	movl   $0xf20,-0x68(%ebp)
412198:	c7 45 94 2a 0f 00 00 	movl   $0xf2a,-0x6c(%ebp)
41219f:	c7 45 90 40 10 00 00 	movl   $0x1040,-0x70(%ebp)
4121a6:	c7 45 8c 4a 10 00 00 	movl   $0x104a,-0x74(%ebp)
4121ad:	c7 45 88 e0 17 00 00 	movl   $0x17e0,-0x78(%ebp)
4121b4:	c7 45 84 ea 17 00 00 	movl   $0x17ea,-0x7c(%ebp)
4121bb:	c7 45 80 10 18 00 00 	movl   $0x1810,-0x80(%ebp)
4121c2:	c7 85 7c ff ff ff 1a 	movl   $0x181a,-0x84(%ebp)
4121c9:	18 00 00
4121cc:	c7 85 78 ff ff ff 1a 	movl   $0xff1a,-0x88(%ebp)
4121d3:	ff 00 00
4121d6:	6a 30                	push   $0x30
4121d8:	59                   	pop    %ecx
4121d9:	85 ff                	test   %edi,%edi
4121db:	74 09                	je     0x4121e6
4121dd:	83 ff 10             	cmp    $0x10,%edi
4121e0:	0f 85 e2 01 00 00    	jne    0x4123c8
4121e6:	66 3b f1             	cmp    %cx,%si
4121e9:	0f 82 66 01 00 00    	jb     0x412355
4121ef:	66 3b b5 74 ff ff ff 	cmp    -0x8c(%ebp),%si
4121f6:	73 0a                	jae    0x412202
4121f8:	0f b7 c6             	movzwl %si,%eax
4121fb:	2b c1                	sub    %ecx,%eax
4121fd:	e9 4e 01 00 00       	jmp    0x412350
412202:	66 3b f0             	cmp    %ax,%si
412205:	0f 83 34 01 00 00    	jae    0x41233f
41220b:	8b 4d f8             	mov    -0x8(%ebp),%ecx
41220e:	66 3b f1             	cmp    %cx,%si
412211:	0f 82 3e 01 00 00    	jb     0x412355
412217:	66 3b 75 f4          	cmp    -0xc(%ebp),%si
41221b:	72 db                	jb     0x4121f8
41221d:	8b 4d f0             	mov    -0x10(%ebp),%ecx
412220:	66 3b f1             	cmp    %cx,%si
412223:	0f 82 2c 01 00 00    	jb     0x412355
412229:	66 3b 75 ec          	cmp    -0x14(%ebp),%si
41222d:	72 c9                	jb     0x4121f8
41222f:	8b 4d e8             	mov    -0x18(%ebp),%ecx
412232:	66 3b f1             	cmp    %cx,%si
412235:	0f 82 1a 01 00 00    	jb     0x412355
41223b:	66 3b 75 e4          	cmp    -0x1c(%ebp),%si
41223f:	72 b7                	jb     0x4121f8
412241:	8b 4d e0             	mov    -0x20(%ebp),%ecx
412244:	66 3b f1             	cmp    %cx,%si
412247:	0f 82 08 01 00 00    	jb     0x412355
41224d:	66 3b 75 dc          	cmp    -0x24(%ebp),%si
412251:	72 a5                	jb     0x4121f8
412253:	8b 4d d8             	mov    -0x28(%ebp),%ecx
412256:	66 3b f1             	cmp    %cx,%si
412259:	0f 82 f6 00 00 00    	jb     0x412355
41225f:	66 3b 75 d4          	cmp    -0x2c(%ebp),%si
412263:	72 93                	jb     0x4121f8
412265:	8b 4d d0             	mov    -0x30(%ebp),%ecx
412268:	66 3b f1             	cmp    %cx,%si
41226b:	0f 82 e4 00 00 00    	jb     0x412355
412271:	66 3b 75 cc          	cmp    -0x34(%ebp),%si
412275:	72 81                	jb     0x4121f8
412277:	8b 4d c8             	mov    -0x38(%ebp),%ecx
41227a:	66 3b f1             	cmp    %cx,%si
41227d:	0f 82 d2 00 00 00    	jb     0x412355
412283:	66 3b 75 c4          	cmp    -0x3c(%ebp),%si
412287:	0f 82 6b ff ff ff    	jb     0x4121f8
41228d:	8b 4d c0             	mov    -0x40(%ebp),%ecx
412290:	66 3b f1             	cmp    %cx,%si
412293:	0f 82 bc 00 00 00    	jb     0x412355
412299:	66 3b 75 bc          	cmp    -0x44(%ebp),%si
41229d:	0f 82 55 ff ff ff    	jb     0x4121f8
4122a3:	8b 4d b8             	mov    -0x48(%ebp),%ecx
4122a6:	66 3b f1             	cmp    %cx,%si
4122a9:	0f 82 a6 00 00 00    	jb     0x412355
4122af:	66 3b 75 b4          	cmp    -0x4c(%ebp),%si
4122b3:	0f 82 3f ff ff ff    	jb     0x4121f8
4122b9:	8b 4d b0             	mov    -0x50(%ebp),%ecx
4122bc:	66 3b f1             	cmp    %cx,%si
4122bf:	0f 82 90 00 00 00    	jb     0x412355
4122c5:	66 3b 75 ac          	cmp    -0x54(%ebp),%si
4122c9:	0f 82 29 ff ff ff    	jb     0x4121f8
4122cf:	8b 4d a8             	mov    -0x58(%ebp),%ecx
4122d2:	66 3b f1             	cmp    %cx,%si
4122d5:	72 7e                	jb     0x412355
4122d7:	66 3b 75 a4          	cmp    -0x5c(%ebp),%si
4122db:	0f 82 17 ff ff ff    	jb     0x4121f8
4122e1:	8b 4d a0             	mov    -0x60(%ebp),%ecx
4122e4:	66 3b f1             	cmp    %cx,%si
4122e7:	72 6c                	jb     0x412355
4122e9:	66 3b 75 9c          	cmp    -0x64(%ebp),%si
4122ed:	0f 82 05 ff ff ff    	jb     0x4121f8
4122f3:	8b 4d 98             	mov    -0x68(%ebp),%ecx
4122f6:	66 3b f1             	cmp    %cx,%si
4122f9:	72 5a                	jb     0x412355
4122fb:	66 3b 75 94          	cmp    -0x6c(%ebp),%si
4122ff:	0f 82 f3 fe ff ff    	jb     0x4121f8
412305:	8b 4d 90             	mov    -0x70(%ebp),%ecx
412308:	66 3b f1             	cmp    %cx,%si
41230b:	72 48                	jb     0x412355
41230d:	66 3b 75 8c          	cmp    -0x74(%ebp),%si
412311:	0f 82 e1 fe ff ff    	jb     0x4121f8
412317:	8b 4d 88             	mov    -0x78(%ebp),%ecx
41231a:	66 3b f1             	cmp    %cx,%si
41231d:	72 36                	jb     0x412355
41231f:	66 3b 75 84          	cmp    -0x7c(%ebp),%si
412323:	0f 82 cf fe ff ff    	jb     0x4121f8
412329:	8b 4d 80             	mov    -0x80(%ebp),%ecx
41232c:	66 3b f1             	cmp    %cx,%si
41232f:	72 24                	jb     0x412355
412331:	66 3b b5 7c ff ff ff 	cmp    -0x84(%ebp),%si
412338:	73 1b                	jae    0x412355
41233a:	e9 b9 fe ff ff       	jmp    0x4121f8
41233f:	66 3b b5 78 ff ff ff 	cmp    -0x88(%ebp),%si
412346:	73 0d                	jae    0x412355
412348:	0f b7 c6             	movzwl %si,%eax
41234b:	2d 10 ff 00 00       	sub    $0xff10,%eax
412350:	83 f8 ff             	cmp    $0xffffffff,%eax
412353:	75 25                	jne    0x41237a
412355:	0f b7 c6             	movzwl %si,%eax
412358:	83 f8 41             	cmp    $0x41,%eax
41235b:	72 0a                	jb     0x412367
41235d:	83 f8 5a             	cmp    $0x5a,%eax
412360:	77 05                	ja     0x412367
412362:	8d 48 9f             	lea    -0x61(%eax),%ecx
412365:	eb 08                	jmp    0x41236f
412367:	8d 48 9f             	lea    -0x61(%eax),%ecx
41236a:	83 f9 19             	cmp    $0x19,%ecx
41236d:	77 4c                	ja     0x4123bb
41236f:	83 f9 19             	cmp    $0x19,%ecx
412372:	77 03                	ja     0x412377
412374:	83 c0 e0             	add    $0xffffffe0,%eax
412377:	83 c0 c9             	add    $0xffffffc9,%eax
41237a:	85 c0                	test   %eax,%eax
41237c:	75 3d                	jne    0x4123bb
41237e:	0f b7 02             	movzwl (%edx),%eax
412381:	8d 4a 02             	lea    0x2(%edx),%ecx
412384:	89 4d 0c             	mov    %ecx,0xc(%ebp)
412387:	83 f8 78             	cmp    $0x78,%eax
41238a:	74 1a                	je     0x4123a6
41238c:	83 f8 58             	cmp    $0x58,%eax
41238f:	74 15                	je     0x4123a6
412391:	85 ff                	test   %edi,%edi
412393:	75 06                	jne    0x41239b
412395:	6a 08                	push   $0x8
412397:	5f                   	pop    %edi
412398:	89 7d 14             	mov    %edi,0x14(%ebp)
41239b:	50                   	push   %eax
41239c:	8d 4d 0c             	lea    0xc(%ebp),%ecx
41239f:	e8 e7 f4 ff ff       	call   0x41188b
4123a4:	eb 1f                	jmp    0x4123c5
4123a6:	85 ff                	test   %edi,%edi
4123a8:	75 06                	jne    0x4123b0
4123aa:	6a 10                	push   $0x10
4123ac:	5f                   	pop    %edi
4123ad:	89 7d 14             	mov    %edi,0x14(%ebp)
4123b0:	0f b7 31             	movzwl (%ecx),%esi
4123b3:	8d 51 02             	lea    0x2(%ecx),%edx
4123b6:	89 55 0c             	mov    %edx,0xc(%ebp)
4123b9:	eb 0a                	jmp    0x4123c5
4123bb:	85 ff                	test   %edi,%edi
4123bd:	75 06                	jne    0x4123c5
4123bf:	6a 0a                	push   $0xa
4123c1:	5f                   	pop    %edi
4123c2:	89 7d 14             	mov    %edi,0x14(%ebp)
4123c5:	6a 30                	push   $0x30
4123c7:	59                   	pop    %ecx
4123c8:	83 c8 ff             	or     $0xffffffff,%eax
4123cb:	33 d2                	xor    %edx,%edx
4123cd:	f7 f7                	div    %edi
4123cf:	8b f8                	mov    %eax,%edi
4123d1:	66 3b f1             	cmp    %cx,%si
4123d4:	0f 82 53 01 00 00    	jb     0x41252d
4123da:	6a 3a                	push   $0x3a
4123dc:	58                   	pop    %eax
4123dd:	66 3b f0             	cmp    %ax,%si
4123e0:	73 0b                	jae    0x4123ed
4123e2:	0f b7 ce             	movzwl %si,%ecx
4123e5:	83 e9 30             	sub    $0x30,%ecx
4123e8:	e9 3b 01 00 00       	jmp    0x412528
4123ed:	b8 10 ff 00 00       	mov    $0xff10,%eax
4123f2:	66 3b f0             	cmp    %ax,%si
4123f5:	0f 83 1f 01 00 00    	jae    0x41251a
4123fb:	8b 45 f8             	mov    -0x8(%ebp),%eax
4123fe:	66 3b f0             	cmp    %ax,%si
412401:	0f 82 26 01 00 00    	jb     0x41252d
412407:	66 3b 75 f4          	cmp    -0xc(%ebp),%si
41240b:	0f 82 12 01 00 00    	jb     0x412523
412411:	8b 45 f0             	mov    -0x10(%ebp),%eax
412414:	66 3b f0             	cmp    %ax,%si
412417:	0f 82 10 01 00 00    	jb     0x41252d
41241d:	66 3b 75 ec          	cmp    -0x14(%ebp),%si
412421:	0f 82 fc 00 00 00    	jb     0x412523
412427:	8b 45 e8             	mov    -0x18(%ebp),%eax
41242a:	66 3b f0             	cmp    %ax,%si
41242d:	0f 82 fa 00 00 00    	jb     0x41252d
412433:	66 3b 75 e4          	cmp    -0x1c(%ebp),%si