412357:	85 d2                	test   %edx,%edx
412359:	74 11                	je     0x41236c
41235b:	8b 4d 0c             	mov    0xc(%ebp),%ecx
41235e:	85 c9                	test   %ecx,%ecx
412360:	74 0a                	je     0x41236c
412362:	8b 75 10             	mov    0x10(%ebp),%esi
412365:	85 f6                	test   %esi,%esi
412367:	75 17                	jne    0x412380
412369:	c6 02 00             	movb   $0x0,(%edx)
41236c:	e8 8a ca ff ff       	call   0x40edfb
412371:	6a 16                	push   $0x16
412373:	5e                   	pop    %esi
412374:	89 30                	mov    %esi,(%eax)
412376:	e8 06 ad ff ff       	call   0x40d081
41237b:	8b c6                	mov    %esi,%eax
41237d:	5e                   	pop    %esi
41237e:	5d                   	pop    %ebp
41237f:	c3                   	ret
412380:	57                   	push   %edi
412381:	8b fa                	mov    %edx,%edi
412383:	2b f2                	sub    %edx,%esi
412385:	8a 04 3e             	mov    (%esi,%edi,1),%al
412388:	88 07                	mov    %al,(%edi)
41238a:	47                   	inc    %edi
41238b:	84 c0                	test   %al,%al
41238d:	74 05                	je     0x412394
41238f:	83 e9 01             	sub    $0x1,%ecx
412392:	75 f1                	jne    0x412385
412394:	5f                   	pop    %edi
412395:	85 c9                	test   %ecx,%ecx
412397:	75 0b                	jne    0x4123a4
412399:	88 0a                	mov    %cl,(%edx)
41239b:	e8 5b ca ff ff       	call   0x40edfb
4123a0:	6a 22                	push   $0x22
4123a2:	eb cf                	jmp    0x412373
4123a4:	33 f6                	xor    %esi,%esi
4123a6:	eb d3                	jmp    0x41237b
4123a8:	8b ff                	mov    %edi,%edi
4123aa:	55                   	push   %ebp
4123ab:	8b ec                	mov    %esp,%ebp
4123ad:	f6 45 08 04          	testb  $0x4,0x8(%ebp)
4123b1:	75 15                	jne    0x4123c8
4123b3:	f6 45 08 01          	testb  $0x1,0x8(%ebp)
4123b7:	74 1c                	je     0x4123d5
4123b9:	f6 45 08 02          	testb  $0x2,0x8(%ebp)
4123bd:	74 0d                	je     0x4123cc
4123bf:	81 7d 0c 00 00 00 80 	cmpl   $0x80000000,0xc(%ebp)
4123c6:	76 0d                	jbe    0x4123d5
4123c8:	b0 01                	mov    $0x1,%al
4123ca:	5d                   	pop    %ebp
4123cb:	c3                   	ret
4123cc:	81 7d 0c ff ff ff 7f 	cmpl   $0x7fffffff,0xc(%ebp)
4123d3:	77 f3                	ja     0x4123c8
4123d5:	32 c0                	xor    %al,%al
4123d7:	5d                   	pop    %ebp
4123d8:	c3                   	ret
4123d9:	8b ff                	mov    %edi,%edi
4123db:	55                   	push   %ebp
4123dc:	8b ec                	mov    %esp,%ebp
4123de:	83 ec 28             	sub    $0x28,%esp
4123e1:	8d 4d 0c             	lea    0xc(%ebp),%ecx
4123e4:	53                   	push   %ebx
4123e5:	56                   	push   %esi
4123e6:	e8 ec a5 ff ff       	call   0x40c9d7
4123eb:	84 c0                	test   %al,%al
4123ed:	74 21                	je     0x412410
4123ef:	8b 75 14             	mov    0x14(%ebp),%esi
4123f2:	85 f6                	test   %esi,%esi
4123f4:	74 2e                	je     0x412424
4123f6:	83 fe 02             	cmp    $0x2,%esi
4123f9:	7c 05                	jl     0x412400
4123fb:	83 fe 24             	cmp    $0x24,%esi
4123fe:	7e 24                	jle    0x412424
412400:	e8 f6 c9 ff ff       	call   0x40edfb
412405:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
41240b:	e8 71 ac ff ff       	call   0x40d081
412410:	33 db                	xor    %ebx,%ebx
412412:	8b 55 10             	mov    0x10(%ebp),%edx
412415:	85 d2                	test   %edx,%edx
412417:	74 05                	je     0x41241e
412419:	8b 4d 0c             	mov    0xc(%ebp),%ecx
41241c:	89 0a                	mov    %ecx,(%edx)
41241e:	5e                   	pop    %esi
41241f:	8b c3                	mov    %ebx,%eax
412421:	5b                   	pop    %ebx
412422:	c9                   	leave
412423:	c3                   	ret
412424:	57                   	push   %edi
412425:	ff 75 08             	push   0x8(%ebp)
412428:	8d 4d d8             	lea    -0x28(%ebp),%ecx
41242b:	e8 4e 98 ff ff       	call   0x40bc7e
412430:	8b 45 0c             	mov    0xc(%ebp),%eax
412433:	33 ff                	xor    %edi,%edi
412435:	89 7d f4             	mov    %edi,-0xc(%ebp)
412438:	89 45 e8             	mov    %eax,-0x18(%ebp)
41243b:	eb 03                	jmp    0x412440
41243d:	8b 45 0c             	mov    0xc(%ebp),%eax
412440:	8a 18                	mov    (%eax),%bl
412442:	40                   	inc    %eax
412443:	89 45 0c             	mov    %eax,0xc(%ebp)
412446:	8d 45 dc             	lea    -0x24(%ebp),%eax
412449:	50                   	push   %eax
41244a:	0f b6 c3             	movzbl %bl,%eax
41244d:	6a 08                	push   $0x8
41244f:	50                   	push   %eax
412450:	88 5d fc             	mov    %bl,-0x4(%ebp)
412453:	e8 07 cf ff ff       	call   0x40f35f
412458:	83 c4 0c             	add    $0xc,%esp
41245b:	85 c0                	test   %eax,%eax
41245d:	75 de                	jne    0x41243d
41245f:	0f b6 45 18          	movzbl 0x18(%ebp),%eax
412463:	89 45 f8             	mov    %eax,-0x8(%ebp)
412466:	80 fb 2d             	cmp    $0x2d,%bl
412469:	75 08                	jne    0x412473
41246b:	83 c8 02             	or     $0x2,%eax
41246e:	89 45 f8             	mov    %eax,-0x8(%ebp)
412471:	eb 05                	jmp    0x412478
412473:	80 fb 2b             	cmp    $0x2b,%bl
412476:	75 0e                	jne    0x412486
412478:	8b 7d 0c             	mov    0xc(%ebp),%edi
41247b:	8a 1f                	mov    (%edi),%bl
41247d:	47                   	inc    %edi
41247e:	88 5d fc             	mov    %bl,-0x4(%ebp)
412481:	89 7d 0c             	mov    %edi,0xc(%ebp)
412484:	eb 03                	jmp    0x412489
412486:	8b 7d 0c             	mov    0xc(%ebp),%edi
412489:	85 f6                	test   %esi,%esi
41248b:	74 05                	je     0x412492
41248d:	83 fe 10             	cmp    $0x10,%esi
412490:	75 78                	jne    0x41250a
412492:	8a c3                	mov    %bl,%al
412494:	2c 30                	sub    $0x30,%al
412496:	3c 09                	cmp    $0x9,%al
412498:	77 08                	ja     0x4124a2
41249a:	0f be c3             	movsbl %bl,%eax
41249d:	83 c0 d0             	add    $0xffffffd0,%eax
4124a0:	eb 23                	jmp    0x4124c5
4124a2:	8a c3                	mov    %bl,%al
4124a4:	2c 61                	sub    $0x61,%al
4124a6:	3c 19                	cmp    $0x19,%al
4124a8:	77 08                	ja     0x4124b2
4124aa:	0f be c3             	movsbl %bl,%eax
4124ad:	83 c0 a9             	add    $0xffffffa9,%eax
4124b0:	eb 13                	jmp    0x4124c5
4124b2:	8a c3                	mov    %bl,%al
4124b4:	2c 41                	sub    $0x41,%al
4124b6:	3c 19                	cmp    $0x19,%al
4124b8:	77 08                	ja     0x4124c2
4124ba:	0f be c3             	movsbl %bl,%eax
4124bd:	83 c0 c9             	add    $0xffffffc9,%eax
4124c0:	eb 03                	jmp    0x4124c5
4124c2:	83 c8 ff             	or     $0xffffffff,%eax
4124c5:	85 c0                	test   %eax,%eax
4124c7:	74 09                	je     0x4124d2
4124c9:	85 f6                	test   %esi,%esi
4124cb:	75 3d                	jne    0x41250a
4124cd:	6a 0a                	push   $0xa
4124cf:	5e                   	pop    %esi
4124d0:	eb 38                	jmp    0x41250a
4124d2:	8a 07                	mov    (%edi),%al
4124d4:	47                   	inc    %edi
4124d5:	88 45 f0             	mov    %al,-0x10(%ebp)
4124d8:	89 7d 0c             	mov    %edi,0xc(%ebp)
4124db:	3c 78                	cmp    $0x78,%al
4124dd:	74 1b                	je     0x4124fa
4124df:	3c 58                	cmp    $0x58,%al
4124e1:	74 17                	je     0x4124fa
4124e3:	85 f6                	test   %esi,%esi
4124e5:	75 03                	jne    0x4124ea
4124e7:	6a 08                	push   $0x8
4124e9:	5e                   	pop    %esi
4124ea:	ff 75 f0             	push   -0x10(%ebp)
4124ed:	8d 4d 0c             	lea    0xc(%ebp),%ecx
4124f0:	e8 13 ce ff ff       	call   0x40f308
4124f5:	8b 7d 0c             	mov    0xc(%ebp),%edi
4124f8:	eb 10                	jmp    0x41250a
4124fa:	85 f6                	test   %esi,%esi
4124fc:	75 03                	jne    0x412501
4124fe:	6a 10                	push   $0x10
412500:	5e                   	pop    %esi
412501:	8a 1f                	mov    (%edi),%bl
412503:	47                   	inc    %edi
412504:	88 5d fc             	mov    %bl,-0x4(%ebp)
412507:	89 7d 0c             	mov    %edi,0xc(%ebp)
41250a:	33 d2                	xor    %edx,%edx
41250c:	83 c8 ff             	or     $0xffffffff,%eax
41250f:	f7 f6                	div    %esi
412511:	89 55 ec             	mov    %edx,-0x14(%ebp)
412514:	8b 55 f8             	mov    -0x8(%ebp),%edx
412517:	89 45 f0             	mov    %eax,-0x10(%ebp)
41251a:	8d 4b d0             	lea    -0x30(%ebx),%ecx
41251d:	80 f9 09             	cmp    $0x9,%cl
412520:	77 08                	ja     0x41252a
412522:	0f be cb             	movsbl %bl,%ecx
412525:	83 c1 d0             	add    $0xffffffd0,%ecx
412528:	eb 23                	jmp    0x41254d
41252a:	8a c3                	mov    %bl,%al
41252c:	2c 61                	sub    $0x61,%al
41252e:	3c 19                	cmp    $0x19,%al
412530:	77 08                	ja     0x41253a
412532:	0f be cb             	movsbl %bl,%ecx
412535:	83 c1 a9             	add    $0xffffffa9,%ecx
412538:	eb 13                	jmp    0x41254d
41253a:	8a c3                	mov    %bl,%al
41253c:	2c 41                	sub    $0x41,%al
41253e:	3c 19                	cmp    $0x19,%al
412540:	77 08                	ja     0x41254a
412542:	0f be cb             	movsbl %bl,%ecx
412545:	83 c1 c9             	add    $0xffffffc9,%ecx
412548:	eb 03                	jmp    0x41254d
41254a:	83 c9 ff             	or     $0xffffffff,%ecx
41254d:	83 f9 ff             	cmp    $0xffffffff,%ecx
412550:	74 2f                	je     0x412581
412552:	3b ce                	cmp    %esi,%ecx
412554:	73 2b                	jae    0x412581
412556:	8b 45 f4             	mov    -0xc(%ebp),%eax
412559:	3b 45 f0             	cmp    -0x10(%ebp),%eax
41255c:	72 0b                	jb     0x412569
41255e:	75 05                	jne    0x412565
412560:	3b 4d ec             	cmp    -0x14(%ebp),%ecx
412563:	76 04                	jbe    0x412569
412565:	6a 0c                	push   $0xc
412567:	eb 0a                	jmp    0x412573
412569:	0f af c6             	imul   %esi,%eax
41256c:	6a 08                	push   $0x8
41256e:	03 c1                	add    %ecx,%eax
412570:	89 45 f4             	mov    %eax,-0xc(%ebp)
412573:	8a 1f                	mov    (%edi),%bl
412575:	47                   	inc    %edi
412576:	58                   	pop    %eax
412577:	88 5d fc             	mov    %bl,-0x4(%ebp)
41257a:	0b d0                	or     %eax,%edx
41257c:	89 7d 0c             	mov    %edi,0xc(%ebp)
41257f:	eb 99                	jmp    0x41251a
412581:	ff 75 fc             	push   -0x4(%ebp)
412584:	8d 4d 0c             	lea    0xc(%ebp),%ecx
412587:	89 55 f8             	mov    %edx,-0x8(%ebp)
41258a:	e8 79 cd ff ff       	call   0x40f308
41258f:	8b 5d f8             	mov    -0x8(%ebp),%ebx
412592:	f6 c3 08             	test   $0x8,%bl
412595:	75 0a                	jne    0x4125a1
412597:	8b 45 e8             	mov    -0x18(%ebp),%eax
41259a:	33 db                	xor    %ebx,%ebx
41259c:	89 45 0c             	mov    %eax,0xc(%ebp)
41259f:	eb 41                	jmp    0x4125e2
4125a1:	8b 7d f4             	mov    -0xc(%ebp),%edi
4125a4:	57                   	push   %edi
4125a5:	53                   	push   %ebx
4125a6:	e8 fd fd ff ff       	call   0x4123a8
4125ab:	59                   	pop    %ecx
4125ac:	59                   	pop    %ecx
4125ad:	84 c0                	test   %al,%al
4125af:	74 28                	je     0x4125d9
4125b1:	e8 45 c8 ff ff       	call   0x40edfb
4125b6:	c7 00 22 00 00 00    	movl   $0x22,(%eax)
4125bc:	f6 c3 01             	test   $0x1,%bl
4125bf:	75 05                	jne    0x4125c6
4125c1:	83 cf ff             	or     $0xffffffff,%edi
4125c4:	eb 1a                	jmp    0x4125e0
4125c6:	f6 c3 02             	test   $0x2,%bl
4125c9:	74 07                	je     0x4125d2
4125cb:	bb 00 00 00 80       	mov    $0x80000000,%ebx
4125d0:	eb 10                	jmp    0x4125e2
4125d2:	bb ff ff ff 7f       	mov    $0x7fffffff,%ebx
4125d7:	eb 09                	jmp    0x4125e2
4125d9:	f6 c3 02             	test   $0x2,%bl
4125dc:	74 02                	je     0x4125e0
4125de:	f7 df                	neg    %edi
4125e0:	8b df                	mov    %edi,%ebx
4125e2:	80 7d e4 00          	cmpb   $0x0,-0x1c(%ebp)
4125e6:	5f                   	pop    %edi
4125e7:	0f 84 25 fe ff ff    	je     0x412412
4125ed:	8b 45 d8             	mov    -0x28(%ebp),%eax
4125f0:	83 a0 50 03 00 00 fd 	andl   $0xfffffffd,0x350(%eax)
4125f7:	e9 16 fe ff ff       	jmp    0x412412
4125fc:	8b ff                	mov    %edi,%edi
4125fe:	55                   	push   %ebp
4125ff:	8b ec                	mov    %esp,%ebp
412601:	81 ec a0 00 00 00    	sub    $0xa0,%esp
412607:	8d 4d 0c             	lea    0xc(%ebp),%ecx
41260a:	53                   	push   %ebx
41260b:	57                   	push   %edi
41260c:	e8 c6 a3 ff ff       	call   0x40c9d7
412611:	84 c0                	test   %al,%al
412613:	74 21                	je     0x412636
412615:	8b 7d 14             	mov    0x14(%ebp),%edi
412618:	85 ff                	test   %edi,%edi
41261a:	74 2e                	je     0x41264a
41261c:	83 ff 02             	cmp    $0x2,%edi
41261f:	7c 05                	jl     0x412626
412621:	83 ff 24             	cmp    $0x24,%edi
412624:	7e 24                	jle    0x41264a
412626:	e8 d0 c7 ff ff       	call   0x40edfb
41262b:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
412631:	e8 4b aa ff ff       	call   0x40d081
412636:	33 db                	xor    %ebx,%ebx
412638:	8b 55 10             	mov    0x10(%ebp),%edx
41263b:	85 d2                	test   %edx,%edx
41263d:	74 05                	je     0x412644
41263f:	8b 4d 0c             	mov    0xc(%ebp),%ecx
412642:	89 0a                	mov    %ecx,(%edx)
412644:	5f                   	pop    %edi
412645:	8b c3                	mov    %ebx,%eax
412647:	5b                   	pop    %ebx
412648:	c9                   	leave
412649:	c3                   	ret
41264a:	56                   	push   %esi
41264b:	ff 75 08             	push   0x8(%ebp)
41264e:	8d 8d 60 ff ff ff    	lea    -0xa0(%ebp),%ecx
412654:	e8 25 96 ff ff       	call   0x40bc7e
412659:	8b 45 0c             	mov    0xc(%ebp),%eax
41265c:	33 f6                	xor    %esi,%esi
41265e:	89 75 fc             	mov    %esi,-0x4(%ebp)
412661:	89 85 70 ff ff ff    	mov    %eax,-0x90(%ebp)
412667:	eb 03                	jmp    0x41266c
412669:	8b 45 0c             	mov    0xc(%ebp),%eax
41266c:	0f b7 30             	movzwl (%eax),%esi
41266f:	83 c0 02             	add    $0x2,%eax
412672:	6a 08                	push   $0x8
412674:	56                   	push   %esi
412675:	89 45 0c             	mov    %eax,0xc(%ebp)
412678:	e8 57 68 00 00       	call   0x418ed4
41267d:	59                   	pop    %ecx
41267e:	59                   	pop    %ecx
41267f:	85 c0                	test   %eax,%eax
412681:	75 e6                	jne    0x412669
412683:	0f b6 5d 18          	movzbl 0x18(%ebp),%ebx
412687:	66 83 fe 2d          	cmp    $0x2d,%si
41268b:	75 05                	jne    0x412692
41268d:	83 cb 02             	or     $0x2,%ebx
412690:	eb 06                	jmp    0x412698
412692:	66 83 fe 2b          	cmp    $0x2b,%si
412696:	75 0e                	jne    0x4126a6
412698:	8b 55 0c             	mov    0xc(%ebp),%edx
41269b:	0f b7 32             	movzwl (%edx),%esi
41269e:	83 c2 02             	add    $0x2,%edx
4126a1:	89 55 0c             	mov    %edx,0xc(%ebp)
4126a4:	eb 03                	jmp    0x4126a9
4126a6:	8b 55 0c             	mov    0xc(%ebp),%edx
4126a9:	c7 85 74 ff ff ff 3a 	movl   $0x3a,-0x8c(%ebp)
4126b0:	00 00 00
4126b3:	b8 10 ff 00 00       	mov    $0xff10,%eax
4126b8:	c7 45 f8 60 06 00 00 	movl   $0x660,-0x8(%ebp)
4126bf:	c7 45 f4 6a 06 00 00 	movl   $0x66a,-0xc(%ebp)
4126c6:	c7 45 f0 f0 06 00 00 	movl   $0x6f0,-0x10(%ebp)
4126cd:	c7 45 ec fa 06 00 00 	movl   $0x6fa,-0x14(%ebp)
4126d4:	c7 45 e8 66 09 00 00 	movl   $0x966,-0x18(%ebp)
4126db:	c7 45 e4 70 09 00 00 	movl   $0x970,-0x1c(%ebp)
4126e2:	c7 45 e0 e6 09 00 00 	movl   $0x9e6,-0x20(%ebp)
4126e9:	c7 45 dc f0 09 00 00 	movl   $0x9f0,-0x24(%ebp)