40863b:	3a 18                	cmp    (%eax),%bl
40863d:	0f 85 d0 00 00 00    	jne    0x408713
408643:	ff 06                	incl   (%esi)
408645:	bd 01 00 00 00       	mov    $0x1,%ebp
40864a:	8b 3e                	mov    (%esi),%edi
40864c:	8b 06                	mov    (%esi),%eax
40864e:	8b d3                	mov    %ebx,%edx
408650:	e8 93 4c 00 00       	call   0x40d2e8
408655:	89 06                	mov    %eax,(%esi)
408657:	eb 16                	jmp    0x40866f
408659:	ff 06                	incl   (%esi)
40865b:	8b 06                	mov    (%esi),%eax
40865d:	3a 18                	cmp    (%eax),%bl
40865f:	75 13                	jne    0x408674
408661:	ff 06                	incl   (%esi)
408663:	45                   	inc    %ebp
408664:	8b 06                	mov    (%esi),%eax
408666:	8b d3                	mov    %ebx,%edx
408668:	e8 7b 4c 00 00       	call   0x40d2e8
40866d:	89 06                	mov    %eax,(%esi)
40866f:	83 3e 00             	cmpl   $0x0,(%esi)
408672:	75 e5                	jne    0x408659
408674:	83 3e 00             	cmpl   $0x0,(%esi)
408677:	75 09                	jne    0x408682
408679:	8b c7                	mov    %edi,%eax
40867b:	e8 b4 07 00 00       	call   0x408e34
408680:	89 06                	mov    %eax,(%esi)
408682:	8b 06                	mov    (%esi),%eax
408684:	2b c7                	sub    %edi,%eax
408686:	83 f8 01             	cmp    $0x1,%eax
408689:	0f 8e 84 00 00 00    	jle    0x408713
40868f:	83 fd 01             	cmp    $0x1,%ebp
408692:	75 0f                	jne    0x4086a3
408694:	8b c8                	mov    %eax,%ecx
408696:	49                   	dec    %ecx
408697:	8b 04 24             	mov    (%esp),%eax
40869a:	8b d7                	mov    %edi,%edx
40869c:	e8 b3 bb ff ff       	call   0x404254
4086a1:	eb 70                	jmp    0x408713
4086a3:	8b d0                	mov    %eax,%edx
4086a5:	2b d5                	sub    %ebp,%edx
4086a7:	8b 04 24             	mov    (%esp),%eax
4086aa:	e8 01 c1 ff ff       	call   0x4047b0
4086af:	8b 04 24             	mov    (%esp),%eax
4086b2:	8b 00                	mov    (%eax),%eax
4086b4:	e8 6b bf ff ff       	call   0x404624
4086b9:	8b e8                	mov    %eax,%ebp
4086bb:	8b d3                	mov    %ebx,%edx
4086bd:	8b c7                	mov    %edi,%eax
4086bf:	e8 24 4c 00 00       	call   0x40d2e8
4086c4:	89 06                	mov    %eax,(%esi)
4086c6:	eb 2a                	jmp    0x4086f2
4086c8:	ff 06                	incl   (%esi)
4086ca:	8b 06                	mov    (%esi),%eax
4086cc:	3a 18                	cmp    (%eax),%bl
4086ce:	75 27                	jne    0x4086f7
4086d0:	8b 0e                	mov    (%esi),%ecx
4086d2:	2b cf                	sub    %edi,%ecx
4086d4:	8b d5                	mov    %ebp,%edx
4086d6:	8b c7                	mov    %edi,%eax
4086d8:	e8 97 a2 ff ff       	call   0x402974
4086dd:	8b 06                	mov    (%esi),%eax
4086df:	2b c7                	sub    %edi,%eax
4086e1:	03 e8                	add    %eax,%ebp
4086e3:	ff 06                	incl   (%esi)
4086e5:	8b 3e                	mov    (%esi),%edi
4086e7:	8b 06                	mov    (%esi),%eax
4086e9:	8b d3                	mov    %ebx,%edx
4086eb:	e8 f8 4b 00 00       	call   0x40d2e8
4086f0:	89 06                	mov    %eax,(%esi)
4086f2:	83 3e 00             	cmpl   $0x0,(%esi)
4086f5:	75 d1                	jne    0x4086c8
4086f7:	83 3e 00             	cmpl   $0x0,(%esi)
4086fa:	75 09                	jne    0x408705
4086fc:	8b c7                	mov    %edi,%eax
4086fe:	e8 31 07 00 00       	call   0x408e34
408703:	89 06                	mov    %eax,(%esi)
408705:	8b 0e                	mov    (%esi),%ecx
408707:	2b cf                	sub    %edi,%ecx
408709:	49                   	dec    %ecx
40870a:	8b d5                	mov    %ebp,%edx
40870c:	8b c7                	mov    %edi,%eax
40870e:	e8 61 a2 ff ff       	call   0x402974
408713:	5a                   	pop    %edx
408714:	5d                   	pop    %ebp
408715:	5f                   	pop    %edi
408716:	5e                   	pop    %esi
408717:	5b                   	pop    %ebx
408718:	c3                   	ret
408719:	8d 40 00             	lea    0x0(%eax),%eax
40871c:	53                   	push   %ebx
40871d:	56                   	push   %esi
40871e:	57                   	push   %edi
40871f:	8b f0                	mov    %eax,%esi
408721:	33 db                	xor    %ebx,%ebx
408723:	8b c6                	mov    %esi,%eax
408725:	e8 fa bc ff ff       	call   0x404424
40872a:	85 c0                	test   %eax,%eax
40872c:	74 4b                	je     0x408779
40872e:	8a 06                	mov    (%esi),%al
408730:	04 bf                	add    $0xbf,%al
408732:	2c 1a                	sub    $0x1a,%al
408734:	72 0a                	jb     0x408740
408736:	2c 04                	sub    $0x4,%al
408738:	74 06                	je     0x408740
40873a:	04 fe                	add    $0xfe,%al
40873c:	2c 1a                	sub    $0x1a,%al
40873e:	73 39                	jae    0x408779
408740:	8b c6                	mov    %esi,%eax
408742:	e8 dd bc ff ff       	call   0x404424
408747:	83 e8 02             	sub    $0x2,%eax
40874a:	7c 2b                	jl     0x408777
40874c:	40                   	inc    %eax
40874d:	bf 02 00 00 00       	mov    $0x2,%edi
408752:	8a 54 3e ff          	mov    -0x1(%esi,%edi,1),%dl
408756:	80 c2 d0             	add    $0xd0,%dl
408759:	80 ea 0a             	sub    $0xa,%dl
40875c:	72 15                	jb     0x408773
40875e:	80 c2 f9             	add    $0xf9,%dl
408761:	80 ea 1a             	sub    $0x1a,%dl
408764:	72 0d                	jb     0x408773
408766:	80 ea 04             	sub    $0x4,%dl
408769:	74 08                	je     0x408773
40876b:	80 c2 fe             	add    $0xfe,%dl
40876e:	80 ea 1a             	sub    $0x1a,%dl
408771:	73 06                	jae    0x408779
408773:	47                   	inc    %edi
408774:	48                   	dec    %eax
408775:	75 db                	jne    0x408752
408777:	b3 01                	mov    $0x1,%bl
408779:	8b c3                	mov    %ebx,%eax
40877b:	5f                   	pop    %edi
40877c:	5e                   	pop    %esi
40877d:	5b                   	pop    %ebx
40877e:	c3                   	ret
40877f:	90                   	nop
408780:	08 c9                	or     %cl,%cl
408782:	75 17                	jne    0x40879b
408784:	09 c0                	or     %eax,%eax
408786:	79 0e                	jns    0x408796
408788:	f7 d8                	neg    %eax
40878a:	e8 07 00 00 00       	call   0x408796
40878f:	b0 2d                	mov    $0x2d,%al
408791:	41                   	inc    %ecx
408792:	4e                   	dec    %esi
408793:	88 06                	mov    %al,(%esi)
408795:	c3                   	ret
408796:	b9 0a 00 00 00       	mov    $0xa,%ecx
40879b:	52                   	push   %edx
40879c:	56                   	push   %esi
40879d:	31 d2                	xor    %edx,%edx
40879f:	f7 f1                	div    %ecx
4087a1:	4e                   	dec    %esi
4087a2:	80 c2 30             	add    $0x30,%dl
4087a5:	80 fa 3a             	cmp    $0x3a,%dl
4087a8:	72 03                	jb     0x4087ad
4087aa:	80 c2 07             	add    $0x7,%dl
4087ad:	88 16                	mov    %dl,(%esi)
4087af:	09 c0                	or     %eax,%eax
4087b1:	75 ea                	jne    0x40879d
4087b3:	59                   	pop    %ecx
4087b4:	5a                   	pop    %edx
4087b5:	29 f1                	sub    %esi,%ecx
4087b7:	29 ca                	sub    %ecx,%edx
4087b9:	76 10                	jbe    0x4087cb
4087bb:	01 d1                	add    %edx,%ecx
4087bd:	b0 30                	mov    $0x30,%al
4087bf:	29 d6                	sub    %edx,%esi
4087c1:	eb 03                	jmp    0x4087c6
4087c3:	88 04 32             	mov    %al,(%edx,%esi,1)
4087c6:	4a                   	dec    %edx
4087c7:	75 fa                	jne    0x4087c3
4087c9:	88 06                	mov    %al,(%esi)
4087cb:	c3                   	ret
4087cc:	56                   	push   %esi
4087cd:	89 e6                	mov    %esp,%esi
4087cf:	83 ec 10             	sub    $0x10,%esp
4087d2:	31 c9                	xor    %ecx,%ecx
4087d4:	52                   	push   %edx
4087d5:	31 d2                	xor    %edx,%edx
4087d7:	e8 a4 ff ff ff       	call   0x408780
4087dc:	89 f2                	mov    %esi,%edx
4087de:	58                   	pop    %eax
4087df:	e8 70 ba ff ff       	call   0x404254
4087e4:	83 c4 10             	add    $0x10,%esp
4087e7:	5e                   	pop    %esi
4087e8:	c3                   	ret
4087e9:	8d 40 00             	lea    0x0(%eax),%eax
4087ec:	08 c9                	or     %cl,%cl
4087ee:	75 30                	jne    0x408820
4087f0:	b9 0a 00 00 00       	mov    $0xa,%ecx
4087f5:	f7 40 04 00 00 00 80 	testl  $0x80000000,0x4(%eax)
4087fc:	74 22                	je     0x408820
4087fe:	ff 70 04             	push   0x4(%eax)
408801:	ff 30                	push   (%eax)
408803:	89 e0                	mov    %esp,%eax
408805:	f7 1c 24             	negl   (%esp)
408808:	83 54 24 04 00       	adcl   $0x0,0x4(%esp)
40880d:	f7 5c 24 04          	negl   0x4(%esp)
408811:	e8 0a 00 00 00       	call   0x408820
408816:	c6 46 ff 2d          	movb   $0x2d,-0x1(%esi)
40881a:	4e                   	dec    %esi
40881b:	41                   	inc    %ecx
40881c:	83 c4 08             	add    $0x8,%esp
40881f:	c3                   	ret
408820:	56                   	push   %esi
408821:	83 ec 04             	sub    $0x4,%esp
408824:	d9 7c 24 02          	fnstcw 0x2(%esp)
408828:	d9 3c 24             	fnstcw (%esp)
40882b:	66 81 0c 24 00 0f    	orw    $0xf00,(%esp)
408831:	d9 2c 24             	fldcw  (%esp)
408834:	66 89 0c 24          	mov    %cx,(%esp)
408838:	d9 e8                	fld1
40883a:	f7 40 04 00 00 00 80 	testl  $0x80000000,0x4(%eax)
408841:	74 27                	je     0x40886a
408843:	ff 70 04             	push   0x4(%eax)
408846:	ff 30                	push   (%eax)
408848:	81 64 24 04 ff ff ff 	andl   $0x7fffffff,0x4(%esp)
40884f:	7f
408850:	68 ff ff ff 7f       	push   $0x7fffffff
408855:	68 ff ff ff ff       	push   $0xffffffff
40885a:	df 6c 24 08          	fildll 0x8(%esp)
40885e:	df 2c 24             	fildll (%esp)
408861:	d8 c2                	fadd   %st(2),%st
408863:	de c1                	faddp  %st,%st(1)
408865:	83 c4 10             	add    $0x10,%esp
408868:	eb 02                	jmp    0x40886c
40886a:	df 28                	fildll (%eax)
40886c:	df 04 24             	filds  (%esp)
40886f:	d9 c1                	fld    %st(1)
408871:	4e                   	dec    %esi
408872:	d9 f8                	fprem
408874:	df 1c 24             	fistps (%esp)
408877:	dc f9                	fdivr  %st,%st(1)
408879:	8a 04 24             	mov    (%esp),%al
40887c:	04 30                	add    $0x30,%al
40887e:	3c 3a                	cmp    $0x3a,%al
408880:	72 02                	jb     0x408884
408882:	04 07                	add    $0x7,%al
408884:	88 06                	mov    %al,(%esi)
408886:	d9 c1                	fld    %st(1)
408888:	d8 d3                	fcom   %st(3)
40888a:	9b df e0             	fstsw  %ax
40888d:	9e                   	sahf
40888e:	73 e1                	jae    0x408871
408890:	d9 6c 24 02          	fldcw  0x2(%esp)
408894:	83 c4 04             	add    $0x4,%esp
408897:	dd c3                	ffree  %st(3)
408899:	dd c2                	ffree  %st(2)
40889b:	dd c1                	ffree  %st(1)
40889d:	dd c0                	ffree  %st(0)
40889f:	59                   	pop    %ecx
4088a0:	29 f1                	sub    %esi,%ecx
4088a2:	29 ca                	sub    %ecx,%edx
4088a4:	76 10                	jbe    0x4088b6
4088a6:	29 d6                	sub    %edx,%esi
4088a8:	b0 30                	mov    $0x30,%al
4088aa:	01 d1                	add    %edx,%ecx
4088ac:	eb 03                	jmp    0x4088b1
4088ae:	88 04 32             	mov    %al,(%edx,%esi,1)
4088b1:	4a                   	dec    %edx
4088b2:	75 fa                	jne    0x4088ae
4088b4:	88 06                	mov    %al,(%esi)
4088b6:	c3                   	ret
4088b7:	90                   	nop
4088b8:	55                   	push   %ebp
4088b9:	8b ec                	mov    %esp,%ebp
4088bb:	56                   	push   %esi
4088bc:	89 e6                	mov    %esp,%esi
4088be:	83 ec 20             	sub    $0x20,%esp
4088c1:	31 c9                	xor    %ecx,%ecx
4088c3:	50                   	push   %eax
4088c4:	31 d2                	xor    %edx,%edx
4088c6:	8d 45 08             	lea    0x8(%ebp),%eax
4088c9:	e8 1e ff ff ff       	call   0x4087ec
4088ce:	89 f2                	mov    %esi,%edx
4088d0:	58                   	pop    %eax
4088d1:	e8 7e b9 ff ff       	call   0x404254
4088d6:	83 c4 20             	add    $0x20,%esp
4088d9:	5e                   	pop    %esi
4088da:	5d                   	pop    %ebp
4088db:	c2 08 00             	ret    $0x8
4088de:	8b c0                	mov    %eax,%eax
4088e0:	83 fa 20             	cmp    $0x20,%edx
4088e3:	76 02                	jbe    0x4088e7
4088e5:	31 d2                	xor    %edx,%edx
4088e7:	56                   	push   %esi
4088e8:	89 e6                	mov    %esp,%esi
4088ea:	83 ec 20             	sub    $0x20,%esp
4088ed:	51                   	push   %ecx
4088ee:	b9 10 00 00 00       	mov    $0x10,%ecx
4088f3:	e8 88 fe ff ff       	call   0x408780
4088f8:	89 f2                	mov    %esi,%edx
4088fa:	58                   	pop    %eax
4088fb:	e8 54 b9 ff ff       	call   0x404254
408900:	83 c4 20             	add    $0x20,%esp
408903:	5e                   	pop    %esi
408904:	c3                   	ret
408905:	8d 40 00             	lea    0x0(%eax),%eax
408908:	53                   	push   %ebx
408909:	56                   	push   %esi
40890a:	83 c4 f4             	add    $0xfffffff4,%esp
40890d:	8b d8                	mov    %eax,%ebx
40890f:	8b d4                	mov    %esp,%edx
408911:	8b c3                	mov    %ebx,%eax
408913:	e8 e0 a4 ff ff       	call   0x402df8
408918:	8b f0                	mov    %eax,%esi
40891a:	83 3c 24 00          	cmpl   $0x0,(%esp)
40891e:	74 19                	je     0x408939
408920:	89 5c 24 04          	mov    %ebx,0x4(%esp)
408924:	c6 44 24 08 0b       	movb   $0xb,0x8(%esp)
408929:	8d 54 24 04          	lea    0x4(%esp),%edx
40892d:	a1 28 b1 49 00       	mov    0x49b128,%eax
408932:	33 c9                	xor    %ecx,%ecx
408934:	e8 af f9 ff ff       	call   0x4082e8
408939:	8b c6                	mov    %esi,%eax
40893b:	83 c4 0c             	add    $0xc,%esp
40893e:	5e                   	pop    %esi
40893f:	5b                   	pop    %ebx
408940:	c3                   	ret
408941:	8d 40 00             	lea    0x0(%eax),%eax
408944:	53                   	push   %ebx
408945:	51                   	push   %ecx
408946:	8b da                	mov    %edx,%ebx
408948:	8b d4                	mov    %esp,%edx
40894a:	e8 a9 a4 ff ff       	call   0x402df8
40894f:	83 3c 24 00          	cmpl   $0x0,(%esp)
408953:	74 02                	je     0x408957
408955:	8b c3                	mov    %ebx,%eax
408957:	5a                   	pop    %edx
408958:	5b                   	pop    %ebx
408959:	c3                   	ret
40895a:	8b c0                	mov    %eax,%eax
40895c:	53                   	push   %ebx
40895d:	56                   	push   %esi
40895e:	51                   	push   %ecx
40895f:	8b f2                	mov    %edx,%esi
408961:	8b d8                	mov    %eax,%ebx
408963:	8b d4                	mov    %esp,%edx
408965:	8b c3                	mov    %ebx,%eax
408967:	e8 8c a4 ff ff       	call   0x402df8
40896c:	89 06                	mov    %eax,(%esi)
40896e:	83 3c 24 00          	cmpl   $0x0,(%esp)
408972:	0f 94 c0             	sete   %al
408975:	5a                   	pop    %edx
408976:	5e                   	pop    %esi
408977:	5b                   	pop    %ebx
408978:	c3                   	ret
408979:	8d 40 00             	lea    0x0(%eax),%eax
40897c:	53                   	push   %ebx