414590:	8b 45 08             	mov    0x8(%ebp),%eax
414593:	33 db                	xor    %ebx,%ebx
414595:	50                   	push   %eax
414596:	53                   	push   %ebx
414597:	53                   	push   %ebx
414598:	53                   	push   %ebx
414599:	53                   	push   %ebx
41459a:	53                   	push   %ebx
41459b:	c6 40 1c 01          	movb   $0x1,0x1c(%eax)
41459f:	c7 40 18 16 00 00 00 	movl   $0x16,0x18(%eax)
4145a6:	e8 c6 8d ff ff       	call   0x40d371
4145ab:	8b 4d 24             	mov    0x24(%ebp),%ecx
4145ae:	83 c4 18             	add    $0x18,%esp
4145b1:	85 c9                	test   %ecx,%ecx
4145b3:	0f 84 1a 02 00 00    	je     0x4147d3
4145b9:	8b 45 1c             	mov    0x1c(%ebp),%eax
4145bc:	0b 45 20             	or     0x20(%ebp),%eax
4145bf:	0f 85 0e 02 00 00    	jne    0x4147d3
4145c5:	88 19                	mov    %bl,(%ecx)
4145c7:	e9 07 02 00 00       	jmp    0x4147d3
4145cc:	8b 45 1c             	mov    0x1c(%ebp),%eax
4145cf:	8d 4d 0c             	lea    0xc(%ebp),%ecx
4145d2:	83 65 f0 00          	andl   $0x0,-0x10(%ebp)
4145d6:	33 ff                	xor    %edi,%edi
4145d8:	89 45 d8             	mov    %eax,-0x28(%ebp)
4145db:	8b 45 20             	mov    0x20(%ebp),%eax
4145de:	89 45 dc             	mov    %eax,-0x24(%ebp)
4145e1:	e8 d5 32 00 00       	call   0x4178bb
4145e6:	8a d8                	mov    %al,%bl
4145e8:	8b 45 08             	mov    0x8(%ebp),%eax
4145eb:	88 5d f8             	mov    %bl,-0x8(%ebp)
4145ee:	80 78 14 00          	cmpb   $0x0,0x14(%eax)
4145f2:	75 0a                	jne    0x4145fe
4145f4:	8b c8                	mov    %eax,%ecx
4145f6:	e8 c5 d2 ff ff       	call   0x4118c0
4145fb:	8b 45 08             	mov    0x8(%ebp),%eax
4145fe:	83 c0 0c             	add    $0xc,%eax
414601:	50                   	push   %eax
414602:	89 45 f4             	mov    %eax,-0xc(%ebp)
414605:	0f b6 c3             	movzbl %bl,%eax
414608:	6a 08                	push   $0x8
41460a:	50                   	push   %eax
41460b:	e8 dc e2 ff ff       	call   0x4128ec
414610:	83 c4 0c             	add    $0xc,%esp
414613:	85 c0                	test   %eax,%eax
414615:	74 26                	je     0x41463d
414617:	8b 75 f4             	mov    -0xc(%ebp),%esi
41461a:	8d 4d 0c             	lea    0xc(%ebp),%ecx
41461d:	e8 99 32 00 00       	call   0x4178bb
414622:	8a d8                	mov    %al,%bl
414624:	56                   	push   %esi
414625:	0f b6 c3             	movzbl %bl,%eax
414628:	6a 08                	push   $0x8
41462a:	50                   	push   %eax
41462b:	88 5d f8             	mov    %bl,-0x8(%ebp)
41462e:	e8 b9 e2 ff ff       	call   0x4128ec
414633:	83 c4 0c             	add    $0xc,%esp
414636:	85 c0                	test   %eax,%eax
414638:	75 e0                	jne    0x41461a
41463a:	8b 75 2c             	mov    0x2c(%ebp),%esi
41463d:	0f b6 45 30          	movzbl 0x30(%ebp),%eax
414641:	89 45 fc             	mov    %eax,-0x4(%ebp)
414644:	80 fb 2d             	cmp    $0x2d,%bl
414647:	75 08                	jne    0x414651
414649:	83 c8 02             	or     $0x2,%eax
41464c:	89 45 fc             	mov    %eax,-0x4(%ebp)
41464f:	eb 05                	jmp    0x414656
414651:	80 fb 2b             	cmp    $0x2b,%bl
414654:	75 0d                	jne    0x414663
414656:	8d 4d 0c             	lea    0xc(%ebp),%ecx
414659:	e8 5d 32 00 00       	call   0x4178bb
41465e:	8a d8                	mov    %al,%bl
414660:	88 5d f8             	mov    %bl,-0x8(%ebp)
414663:	85 f6                	test   %esi,%esi
414665:	74 05                	je     0x41466c
414667:	83 fe 10             	cmp    $0x10,%esi
41466a:	75 76                	jne    0x4146e2
41466c:	8a c3                	mov    %bl,%al
41466e:	2c 30                	sub    $0x30,%al
414670:	3c 09                	cmp    $0x9,%al
414672:	77 08                	ja     0x41467c
414674:	0f be c3             	movsbl %bl,%eax
414677:	83 c0 d0             	add    $0xffffffd0,%eax
41467a:	eb 1e                	jmp    0x41469a
41467c:	8a c3                	mov    %bl,%al
41467e:	2c 61                	sub    $0x61,%al
414680:	3c 19                	cmp    $0x19,%al
414682:	77 08                	ja     0x41468c
414684:	0f be c3             	movsbl %bl,%eax
414687:	83 c0 a9             	add    $0xffffffa9,%eax
41468a:	eb 0e                	jmp    0x41469a
41468c:	8a c3                	mov    %bl,%al
41468e:	2c 41                	sub    $0x41,%al
414690:	3c 19                	cmp    $0x19,%al
414692:	77 47                	ja     0x4146db
414694:	0f be c3             	movsbl %bl,%eax
414697:	83 c0 c9             	add    $0xffffffc9,%eax
41469a:	85 c0                	test   %eax,%eax
41469c:	75 3d                	jne    0x4146db
41469e:	8d 4d 0c             	lea    0xc(%ebp),%ecx
4146a1:	e8 15 32 00 00       	call   0x4178bb
4146a6:	88 45 f4             	mov    %al,-0xc(%ebp)
4146a9:	3c 78                	cmp    $0x78,%al
4146ab:	74 18                	je     0x4146c5
4146ad:	3c 58                	cmp    $0x58,%al
4146af:	74 14                	je     0x4146c5
4146b1:	85 f6                	test   %esi,%esi
4146b3:	75 03                	jne    0x4146b8
4146b5:	6a 08                	push   $0x8
4146b7:	5e                   	pop    %esi
4146b8:	ff 75 f4             	push   -0xc(%ebp)
4146bb:	8d 4d 0c             	lea    0xc(%ebp),%ecx
4146be:	e8 88 3b 00 00       	call   0x41824b
4146c3:	eb 1d                	jmp    0x4146e2
4146c5:	85 f6                	test   %esi,%esi
4146c7:	75 03                	jne    0x4146cc
4146c9:	6a 10                	push   $0x10
4146cb:	5e                   	pop    %esi
4146cc:	8d 4d 0c             	lea    0xc(%ebp),%ecx
4146cf:	e8 e7 31 00 00       	call   0x4178bb
4146d4:	8a d8                	mov    %al,%bl
4146d6:	88 5d f8             	mov    %bl,-0x8(%ebp)
4146d9:	eb 07                	jmp    0x4146e2
4146db:	85 f6                	test   %esi,%esi
4146dd:	75 03                	jne    0x4146e2
4146df:	6a 0a                	push   $0xa
4146e1:	5e                   	pop    %esi
4146e2:	8b c6                	mov    %esi,%eax
4146e4:	99                   	cltd
4146e5:	8b ca                	mov    %edx,%ecx
4146e7:	89 45 e8             	mov    %eax,-0x18(%ebp)
4146ea:	51                   	push   %ecx
4146eb:	50                   	push   %eax
4146ec:	6a ff                	push   $0xffffffff
4146ee:	6a ff                	push   $0xffffffff
4146f0:	89 4d ec             	mov    %ecx,-0x14(%ebp)
4146f3:	e8 28 96 01 00       	call   0x42dd20
4146f8:	89 45 e0             	mov    %eax,-0x20(%ebp)
4146fb:	89 55 e4             	mov    %edx,-0x1c(%ebp)
4146fe:	8a c3                	mov    %bl,%al
414700:	2c 30                	sub    $0x30,%al
414702:	3c 09                	cmp    $0x9,%al
414704:	77 08                	ja     0x41470e
414706:	0f be c3             	movsbl %bl,%eax
414709:	83 c0 d0             	add    $0xffffffd0,%eax
41470c:	eb 23                	jmp    0x414731
41470e:	8a c3                	mov    %bl,%al
414710:	2c 61                	sub    $0x61,%al
414712:	3c 19                	cmp    $0x19,%al
414714:	77 08                	ja     0x41471e
414716:	0f be c3             	movsbl %bl,%eax
414719:	83 c0 a9             	add    $0xffffffa9,%eax
41471c:	eb 13                	jmp    0x414731
41471e:	8a c3                	mov    %bl,%al
414720:	2c 41                	sub    $0x41,%al
414722:	3c 19                	cmp    $0x19,%al
414724:	77 08                	ja     0x41472e
414726:	0f be c3             	movsbl %bl,%eax
414729:	83 c0 c9             	add    $0xffffffc9,%eax
41472c:	eb 03                	jmp    0x414731
41472e:	83 c8 ff             	or     $0xffffffff,%eax
414731:	89 45 f4             	mov    %eax,-0xc(%ebp)
414734:	3b c6                	cmp    %esi,%eax
414736:	73 6a                	jae    0x4147a2
414738:	8b 5d f0             	mov    -0x10(%ebp),%ebx
41473b:	57                   	push   %edi
41473c:	53                   	push   %ebx
41473d:	ff 75 ec             	push   -0x14(%ebp)
414740:	ff 75 e8             	push   -0x18(%ebp)
414743:	e8 78 58 ff ff       	call   0x409fc0
414748:	89 45 f0             	mov    %eax,-0x10(%ebp)
41474b:	8b ca                	mov    %edx,%ecx
41474d:	8b 45 f4             	mov    -0xc(%ebp),%eax
414750:	33 d2                	xor    %edx,%edx
414752:	03 45 f0             	add    -0x10(%ebp),%eax
414755:	13 d1                	adc    %ecx,%edx
414757:	89 55 f4             	mov    %edx,-0xc(%ebp)
41475a:	3b 7d e4             	cmp    -0x1c(%ebp),%edi
41475d:	72 0c                	jb     0x41476b
41475f:	77 05                	ja     0x414766
414761:	3b 5d e0             	cmp    -0x20(%ebp),%ebx
414764:	76 05                	jbe    0x41476b
414766:	33 d2                	xor    %edx,%edx
414768:	42                   	inc    %edx
414769:	eb 02                	jmp    0x41476d
41476b:	33 d2                	xor    %edx,%edx
41476d:	8b 7d f4             	mov    -0xc(%ebp),%edi
414770:	3b f9                	cmp    %ecx,%edi
414772:	77 0c                	ja     0x414780
414774:	72 05                	jb     0x41477b
414776:	3b 45 f0             	cmp    -0x10(%ebp),%eax
414779:	73 05                	jae    0x414780
41477b:	33 c9                	xor    %ecx,%ecx
41477d:	41                   	inc    %ecx
41477e:	eb 02                	jmp    0x414782
414780:	33 c9                	xor    %ecx,%ecx
414782:	0b ca                	or     %edx,%ecx
414784:	89 45 f0             	mov    %eax,-0x10(%ebp)
414787:	c1 e1 02             	shl    $0x2,%ecx
41478a:	83 c9 08             	or     $0x8,%ecx
41478d:	09 4d fc             	or     %ecx,-0x4(%ebp)
414790:	8d 4d 0c             	lea    0xc(%ebp),%ecx
414793:	e8 23 31 00 00       	call   0x4178bb
414798:	8a d8                	mov    %al,%bl
41479a:	88 5d f8             	mov    %bl,-0x8(%ebp)
41479d:	e9 5c ff ff ff       	jmp    0x4146fe
4147a2:	ff 75 f8             	push   -0x8(%ebp)
4147a5:	8d 4d 0c             	lea    0xc(%ebp),%ecx
4147a8:	e8 9e 3a 00 00       	call   0x41824b
4147ad:	8b 45 fc             	mov    -0x4(%ebp),%eax
4147b0:	a8 08                	test   $0x8,%al
4147b2:	75 28                	jne    0x4147dc
4147b4:	ff 75 dc             	push   -0x24(%ebp)
4147b7:	8d 4d 0c             	lea    0xc(%ebp),%ecx
4147ba:	ff 75 d8             	push   -0x28(%ebp)
4147bd:	e8 c9 34 00 00       	call   0x417c8b
4147c2:	8b 4d 24             	mov    0x24(%ebp),%ecx
4147c5:	85 c9                	test   %ecx,%ecx
4147c7:	74 0a                	je     0x4147d3
4147c9:	8b 45 1c             	mov    0x1c(%ebp),%eax
4147cc:	0b 45 20             	or     0x20(%ebp),%eax
4147cf:	75 02                	jne    0x4147d3
4147d1:	88 01                	mov    %al,(%ecx)
4147d3:	33 c0                	xor    %eax,%eax
4147d5:	33 d2                	xor    %edx,%edx
4147d7:	e9 87 00 00 00       	jmp    0x414863
4147dc:	8b 5d f0             	mov    -0x10(%ebp),%ebx
4147df:	57                   	push   %edi
4147e0:	53                   	push   %ebx
4147e1:	50                   	push   %eax
4147e2:	e8 a7 d5 ff ff       	call   0x411d8e
4147e7:	83 c4 0c             	add    $0xc,%esp
4147ea:	84 c0                	test   %al,%al
4147ec:	74 53                	je     0x414841
4147ee:	8b 45 08             	mov    0x8(%ebp),%eax
4147f1:	c6 40 1c 01          	movb   $0x1,0x1c(%eax)
4147f5:	c7 40 18 22 00 00 00 	movl   $0x22,0x18(%eax)
4147fc:	8b 45 fc             	mov    -0x4(%ebp),%eax
4147ff:	a8 01                	test   $0x1,%al
414801:	75 08                	jne    0x41480b
414803:	83 cb ff             	or     $0xffffffff,%ebx
414806:	83 cf ff             	or     $0xffffffff,%edi
414809:	eb 43                	jmp    0x41484e
41480b:	8b 4d 24             	mov    0x24(%ebp),%ecx
41480e:	a8 02                	test   $0x2,%al
414810:	74 17                	je     0x414829
414812:	85 c9                	test   %ecx,%ecx
414814:	74 0a                	je     0x414820
414816:	8b 45 1c             	mov    0x1c(%ebp),%eax
414819:	0b 45 20             	or     0x20(%ebp),%eax
41481c:	75 02                	jne    0x414820
41481e:	88 01                	mov    %al,(%ecx)
414820:	33 c0                	xor    %eax,%eax
414822:	ba 00 00 00 80       	mov    $0x80000000,%edx
414827:	eb 3a                	jmp    0x414863
414829:	85 c9                	test   %ecx,%ecx
41482b:	74 0a                	je     0x414837
41482d:	8b 45 1c             	mov    0x1c(%ebp),%eax
414830:	0b 45 20             	or     0x20(%ebp),%eax
414833:	75 02                	jne    0x414837
414835:	88 01                	mov    %al,(%ecx)
414837:	83 c8 ff             	or     $0xffffffff,%eax
41483a:	ba ff ff ff 7f       	mov    $0x7fffffff,%edx
41483f:	eb 22                	jmp    0x414863
414841:	f6 45 fc 02          	testb  $0x2,-0x4(%ebp)
414845:	74 07                	je     0x41484e
414847:	f7 db                	neg    %ebx
414849:	83 d7 00             	adc    $0x0,%edi
41484c:	f7 df                	neg    %edi
41484e:	8b 45 24             	mov    0x24(%ebp),%eax
414851:	85 c0                	test   %eax,%eax
414853:	74 0a                	je     0x41485f
414855:	8b 4d 1c             	mov    0x1c(%ebp),%ecx
414858:	0b 4d 20             	or     0x20(%ebp),%ecx
41485b:	75 02                	jne    0x41485f
41485d:	88 08                	mov    %cl,(%eax)
41485f:	8b c3                	mov    %ebx,%eax
414861:	8b d7                	mov    %edi,%edx
414863:	5f                   	pop    %edi
414864:	5e                   	pop    %esi
414865:	5b                   	pop    %ebx
414866:	c9                   	leave
414867:	c3                   	ret
414868:	8b ff                	mov    %edi,%edi
41486a:	55                   	push   %ebp
41486b:	8b ec                	mov    %esp,%ebp
41486d:	83 ec 2c             	sub    $0x2c,%esp
414870:	8d 4d d4             	lea    -0x2c(%ebp),%ecx
414873:	53                   	push   %ebx
414874:	56                   	push   %esi
414875:	57                   	push   %edi
414876:	ff 75 08             	push   0x8(%ebp)
414879:	e8 64 88 ff ff       	call   0x40d0e2
41487e:	ff 75 30             	push   0x30(%ebp)
414881:	8d 45 0c             	lea    0xc(%ebp),%eax
414884:	ff 75 2c             	push   0x2c(%ebp)
414887:	83 ec 20             	sub    $0x20,%esp
41488a:	8b cc                	mov    %esp,%ecx
41488c:	50                   	push   %eax
41488d:	e8 ed 04 00 00       	call   0x414d7f
414892:	8d 45 d4             	lea    -0x2c(%ebp),%eax
414895:	50                   	push   %eax
414896:	e8 c9 fc ff ff       	call   0x414564
41489b:	83 c4 2c             	add    $0x2c,%esp
41489e:	8d 4d d4             	lea    -0x2c(%ebp),%ecx
4148a1:	8b f8                	mov    %eax,%edi
4148a3:	8b da                	mov    %edx,%ebx
4148a5:	e8 80 88 ff ff       	call   0x40d12a
4148aa:	8b 75 24             	mov    0x24(%ebp),%esi
4148ad:	85 f6                	test   %esi,%esi
4148af:	74 0a                	je     0x4148bb
4148b1:	8b 4d 1c             	mov    0x1c(%ebp),%ecx
4148b4:	0b 4d 20             	or     0x20(%ebp),%ecx
4148b7:	75 02                	jne    0x4148bb
4148b9:	88 0e                	mov    %cl,(%esi)
4148bb:	8b c7                	mov    %edi,%eax
4148bd:	8b d3                	mov    %ebx,%edx
4148bf:	5f                   	pop    %edi
4148c0:	5e                   	pop    %esi
4148c1:	5b                   	pop    %ebx
4148c2:	c9                   	leave
4148c3:	c3                   	ret
4148c4:	8b ff                	mov    %edi,%edi
4148c6:	55                   	push   %ebp
4148c7:	8b ec                	mov    %esp,%ebp
4148c9:	83 ec 0c             	sub    $0xc,%esp
4148cc:	d9 ee                	fldz
4148ce:	8d 45 f8             	lea    -0x8(%ebp),%eax
4148d1:	56                   	push   %esi
4148d2:	57                   	push   %edi
4148d3:	50                   	push   %eax
4148d4:	83 ec 20             	sub    $0x20,%esp
4148d7:	c6 45 ff 00          	movb   $0x0,-0x1(%ebp)
4148db:	8b f9                	mov    %ecx,%edi
4148dd:	8d 45 ff             	lea    -0x1(%ebp),%eax
4148e0:	8b d4                	mov    %esp,%edx
4148e2:	d9 5d f8             	fstps  -0x8(%ebp)
4148e5:	50                   	push   %eax
4148e6:	ff 77 2c             	push   0x2c(%edi)
4148e9:	8b 77 60             	mov    0x60(%edi),%esi
4148ec:	8d 47 08             	lea    0x8(%edi),%eax
4148ef:	ff 77 28             	push   0x28(%edi)
4148f2:	50                   	push   %eax
4148f3:	52                   	push   %edx
4148f4:	e8 0c f2 ff ff       	call   0x413b05
4148f9:	83 c4 14             	add    $0x14,%esp
4148fc:	56                   	push   %esi
4148fd:	e8 21 f2 ff ff       	call   0x413b23
414902:	83 c4 28             	add    $0x28,%esp
414905:	80 7d ff 00          	cmpb   $0x0,-0x1(%ebp)