475839:	8b 81 00 04 00 00    	mov    0x400(%ecx),%eax
47583f:	d1 e8                	shr    $1,%eax
475841:	c3                   	ret
475842:	83 b9 04 04 00 00 00 	cmpl   $0x0,0x404(%ecx)
475849:	75 06                	jne    0x475851
47584b:	b8 00 01 00 00       	mov    $0x100,%eax
475850:	c3                   	ret
475851:	8b 81 00 04 00 00    	mov    0x400(%ecx),%eax
475857:	c1 e8 02             	shr    $0x2,%eax
47585a:	c3                   	ret
47585b:	8b ff                	mov    %edi,%edi
47585d:	55                   	push   %ebp
47585e:	8b ec                	mov    %esp,%ebp
475860:	51                   	push   %ecx
475861:	56                   	push   %esi
475862:	8b 75 08             	mov    0x8(%ebp),%esi
475865:	57                   	push   %edi
475866:	8b f9                	mov    %ecx,%edi
475868:	81 fe ff ff ff 7f    	cmp    $0x7fffffff,%esi
47586e:	76 12                	jbe    0x475882
475870:	8b 45 0c             	mov    0xc(%ebp),%eax
475873:	c6 40 1c 01          	movb   $0x1,0x1c(%eax)
475877:	c7 40 18 0c 00 00 00 	movl   $0xc,0x18(%eax)
47587e:	32 c0                	xor    %al,%al
475880:	eb 54                	jmp    0x4758d6
475882:	53                   	push   %ebx
475883:	8d 9f 04 04 00 00    	lea    0x404(%edi),%ebx
475889:	03 f6                	add    %esi,%esi
47588b:	83 3b 00             	cmpl   $0x0,(%ebx)
47588e:	75 08                	jne    0x475898
475890:	81 fe 00 04 00 00    	cmp    $0x400,%esi
475896:	76 3b                	jbe    0x4758d3
475898:	3b b7 00 04 00 00    	cmp    0x400(%edi),%esi
47589e:	76 33                	jbe    0x4758d3
4758a0:	56                   	push   %esi
4758a1:	e8 8c ff 00 00       	call   0x485832
4758a6:	89 45 fc             	mov    %eax,-0x4(%ebp)
4758a9:	59                   	pop    %ecx
4758aa:	85 c0                	test   %eax,%eax
4758ac:	75 0b                	jne    0x4758b9
4758ae:	50                   	push   %eax
4758af:	e8 44 ff 00 00       	call   0x4857f8
4758b4:	59                   	pop    %ecx
4758b5:	32 c0                	xor    %al,%al
4758b7:	eb 1c                	jmp    0x4758d5
4758b9:	8d 45 fc             	lea    -0x4(%ebp),%eax
4758bc:	8b cb                	mov    %ebx,%ecx
4758be:	50                   	push   %eax
4758bf:	e8 d2 1a 00 00       	call   0x477396
4758c4:	ff 75 fc             	push   -0x4(%ebp)
4758c7:	89 b7 00 04 00 00    	mov    %esi,0x400(%edi)
4758cd:	e8 26 ff 00 00       	call   0x4857f8
4758d2:	59                   	pop    %ecx
4758d3:	b0 01                	mov    $0x1,%al
4758d5:	5b                   	pop    %ebx
4758d6:	5f                   	pop    %edi
4758d7:	5e                   	pop    %esi
4758d8:	c9                   	leave
4758d9:	c2 08 00             	ret    $0x8
4758dc:	8b ff                	mov    %edi,%edi
4758de:	55                   	push   %ebp
4758df:	8b ec                	mov    %esp,%ebp
4758e1:	51                   	push   %ecx
4758e2:	56                   	push   %esi
4758e3:	8b 75 08             	mov    0x8(%ebp),%esi
4758e6:	57                   	push   %edi
4758e7:	8b f9                	mov    %ecx,%edi
4758e9:	81 fe ff ff ff 3f    	cmp    $0x3fffffff,%esi
4758ef:	76 12                	jbe    0x475903
4758f1:	8b 45 0c             	mov    0xc(%ebp),%eax
4758f4:	c6 40 1c 01          	movb   $0x1,0x1c(%eax)
4758f8:	c7 40 18 0c 00 00 00 	movl   $0xc,0x18(%eax)
4758ff:	32 c0                	xor    %al,%al
475901:	eb 55                	jmp    0x475958
475903:	53                   	push   %ebx
475904:	8d 9f 04 04 00 00    	lea    0x404(%edi),%ebx
47590a:	c1 e6 02             	shl    $0x2,%esi
47590d:	83 3b 00             	cmpl   $0x0,(%ebx)
475910:	75 08                	jne    0x47591a
475912:	81 fe 00 04 00 00    	cmp    $0x400,%esi
475918:	76 3b                	jbe    0x475955
47591a:	3b b7 00 04 00 00    	cmp    0x400(%edi),%esi
475920:	76 33                	jbe    0x475955
475922:	56                   	push   %esi
475923:	e8 0a ff 00 00       	call   0x485832
475928:	89 45 fc             	mov    %eax,-0x4(%ebp)
47592b:	59                   	pop    %ecx
47592c:	85 c0                	test   %eax,%eax
47592e:	75 0b                	jne    0x47593b
475930:	50                   	push   %eax
475931:	e8 c2 fe 00 00       	call   0x4857f8
475936:	59                   	pop    %ecx
475937:	32 c0                	xor    %al,%al
475939:	eb 1c                	jmp    0x475957
47593b:	8d 45 fc             	lea    -0x4(%ebp),%eax
47593e:	8b cb                	mov    %ebx,%ecx
475940:	50                   	push   %eax
475941:	e8 50 1a 00 00       	call   0x477396
475946:	ff 75 fc             	push   -0x4(%ebp)
475949:	89 b7 00 04 00 00    	mov    %esi,0x400(%edi)
47594f:	e8 a4 fe 00 00       	call   0x4857f8
475954:	59                   	pop    %ecx
475955:	b0 01                	mov    $0x1,%al
475957:	5b                   	pop    %ebx
475958:	5f                   	pop    %edi
475959:	5e                   	pop    %esi
47595a:	c9                   	leave
47595b:	c2 08 00             	ret    $0x8
47595e:	8b ff                	mov    %edi,%edi
475960:	55                   	push   %ebp
475961:	8b ec                	mov    %esp,%ebp
475963:	f6 45 08 04          	testb  $0x4,0x8(%ebp)
475967:	75 25                	jne    0x47598e
475969:	f6 45 08 01          	testb  $0x1,0x8(%ebp)
47596d:	74 0f                	je     0x47597e
47596f:	f6 45 08 02          	testb  $0x2,0x8(%ebp)
475973:	74 0d                	je     0x475982
475975:	81 7d 0c 00 00 00 80 	cmpl   $0x80000000,0xc(%ebp)
47597c:	77 10                	ja     0x47598e
47597e:	32 c0                	xor    %al,%al
475980:	5d                   	pop    %ebp
475981:	c3                   	ret
475982:	81 7d 0c ff ff ff 7f 	cmpl   $0x7fffffff,0xc(%ebp)
475989:	0f 97 c0             	seta   %al
47598c:	5d                   	pop    %ebp
47598d:	c3                   	ret
47598e:	b0 01                	mov    $0x1,%al
475990:	5d                   	pop    %ebp
475991:	c3                   	ret
475992:	8b ff                	mov    %edi,%edi
475994:	55                   	push   %ebp
475995:	8b ec                	mov    %esp,%ebp
475997:	8b 45 14             	mov    0x14(%ebp),%eax
47599a:	48                   	dec    %eax
47599b:	83 e8 01             	sub    $0x1,%eax
47599e:	74 1f                	je     0x4759bf
4759a0:	83 e8 01             	sub    $0x1,%eax
4759a3:	74 16                	je     0x4759bb
4759a5:	83 e8 09             	sub    $0x9,%eax
4759a8:	74 11                	je     0x4759bb
4759aa:	83 7d 14 0d          	cmpl   $0xd,0x14(%ebp)
4759ae:	74 0f                	je     0x4759bf
4759b0:	8a 45 10             	mov    0x10(%ebp),%al
4759b3:	3c 63                	cmp    $0x63,%al
4759b5:	74 08                	je     0x4759bf
4759b7:	3c 73                	cmp    $0x73,%al
4759b9:	74 04                	je     0x4759bf
4759bb:	b0 01                	mov    $0x1,%al
4759bd:	5d                   	pop    %ebp
4759be:	c3                   	ret
4759bf:	32 c0                	xor    %al,%al
4759c1:	5d                   	pop    %ebp
4759c2:	c3                   	ret
4759c3:	8b ff                	mov    %edi,%edi
4759c5:	55                   	push   %ebp
4759c6:	8b ec                	mov    %esp,%ebp
4759c8:	8b 45 14             	mov    0x14(%ebp),%eax
4759cb:	48                   	dec    %eax
4759cc:	83 e8 01             	sub    $0x1,%eax
4759cf:	74 3c                	je     0x475a0d
4759d1:	83 e8 01             	sub    $0x1,%eax
4759d4:	74 33                	je     0x475a09
4759d6:	83 e8 09             	sub    $0x9,%eax
4759d9:	74 2e                	je     0x475a09
4759db:	83 7d 14 0d          	cmpl   $0xd,0x14(%ebp)
4759df:	74 28                	je     0x475a09
4759e1:	8b 45 08             	mov    0x8(%ebp),%eax
4759e4:	83 e0 04             	and    $0x4,%eax
4759e7:	83 c8 00             	or     $0x0,%eax
4759ea:	6a 01                	push   $0x1
4759ec:	58                   	pop    %eax
4759ed:	74 04                	je     0x4759f3
4759ef:	8a c8                	mov    %al,%cl
4759f1:	eb 02                	jmp    0x4759f5
4759f3:	32 c9                	xor    %cl,%cl
4759f5:	66 83 7d 10 63       	cmpw   $0x63,0x10(%ebp)
4759fa:	74 07                	je     0x475a03
4759fc:	66 83 7d 10 73       	cmpw   $0x73,0x10(%ebp)
475a01:	75 02                	jne    0x475a05
475a03:	32 c0                	xor    %al,%al
475a05:	32 c1                	xor    %cl,%al
475a07:	5d                   	pop    %ebp
475a08:	c3                   	ret
475a09:	b0 01                	mov    $0x1,%al
475a0b:	5d                   	pop    %ebp
475a0c:	c3                   	ret
475a0d:	32 c0                	xor    %al,%al
475a0f:	5d                   	pop    %ebp
475a10:	c3                   	ret
475a11:	8b ff                	mov    %edi,%edi
475a13:	55                   	push   %ebp
475a14:	8b ec                	mov    %esp,%ebp
475a16:	8b 45 08             	mov    0x8(%ebp),%eax
475a19:	8b 4d 10             	mov    0x10(%ebp),%ecx
475a1c:	8b 55 0c             	mov    0xc(%ebp),%edx
475a1f:	89 10                	mov    %edx,(%eax)
475a21:	89 48 04             	mov    %ecx,0x4(%eax)
475a24:	85 c9                	test   %ecx,%ecx
475a26:	74 02                	je     0x475a2a
475a28:	89 11                	mov    %edx,(%ecx)
475a2a:	5d                   	pop    %ebp
475a2b:	c3                   	ret
475a2c:	8b ff                	mov    %edi,%edi
475a2e:	55                   	push   %ebp
475a2f:	8b ec                	mov    %esp,%ebp
475a31:	83 ec 14             	sub    $0x14,%esp
475a34:	8d 4d 0c             	lea    0xc(%ebp),%ecx
475a37:	53                   	push   %ebx
475a38:	56                   	push   %esi
475a39:	e8 2d 37 00 00       	call   0x47916b
475a3e:	84 c0                	test   %al,%al
475a40:	74 2f                	je     0x475a71
475a42:	8b 75 14             	mov    0x14(%ebp),%esi
475a45:	85 f6                	test   %esi,%esi
475a47:	74 3d                	je     0x475a86
475a49:	83 fe 02             	cmp    $0x2,%esi
475a4c:	7c 05                	jl     0x475a53
475a4e:	83 fe 24             	cmp    $0x24,%esi
475a51:	7e 33                	jle    0x475a86
475a53:	8b 45 08             	mov    0x8(%ebp),%eax
475a56:	50                   	push   %eax
475a57:	c6 40 1c 01          	movb   $0x1,0x1c(%eax)
475a5b:	c7 40 18 16 00 00 00 	movl   $0x16,0x18(%eax)
475a62:	33 c0                	xor    %eax,%eax
475a64:	50                   	push   %eax
475a65:	50                   	push   %eax
475a66:	50                   	push   %eax
475a67:	50                   	push   %eax
475a68:	50                   	push   %eax
475a69:	e8 36 3b 00 00       	call   0x4795a4
475a6e:	83 c4 18             	add    $0x18,%esp
475a71:	8b 4d 10             	mov    0x10(%ebp),%ecx
475a74:	85 c9                	test   %ecx,%ecx
475a76:	0f 84 52 01 00 00    	je     0x475bce
475a7c:	8b 45 0c             	mov    0xc(%ebp),%eax
475a7f:	89 01                	mov    %eax,(%ecx)
475a81:	e9 48 01 00 00       	jmp    0x475bce
475a86:	8b 45 0c             	mov    0xc(%ebp),%eax
475a89:	33 c9                	xor    %ecx,%ecx
475a8b:	57                   	push   %edi
475a8c:	89 45 ec             	mov    %eax,-0x14(%ebp)
475a8f:	89 4d f4             	mov    %ecx,-0xc(%ebp)
475a92:	8a 18                	mov    (%eax),%bl
475a94:	8d 78 01             	lea    0x1(%eax),%edi
475a97:	0f b6 45 18          	movzbl 0x18(%ebp),%eax
475a9b:	88 5d fc             	mov    %bl,-0x4(%ebp)
475a9e:	89 7d 0c             	mov    %edi,0xc(%ebp)
475aa1:	89 45 f8             	mov    %eax,-0x8(%ebp)
475aa4:	80 fb 2d             	cmp    $0x2d,%bl
475aa7:	75 08                	jne    0x475ab1
475aa9:	83 c8 02             	or     $0x2,%eax
475aac:	89 45 f8             	mov    %eax,-0x8(%ebp)
475aaf:	eb 05                	jmp    0x475ab6
475ab1:	80 fb 2b             	cmp    $0x2b,%bl
475ab4:	75 09                	jne    0x475abf
475ab6:	8a 1f                	mov    (%edi),%bl
475ab8:	47                   	inc    %edi
475ab9:	88 5d fc             	mov    %bl,-0x4(%ebp)
475abc:	89 7d 0c             	mov    %edi,0xc(%ebp)
475abf:	85 f6                	test   %esi,%esi
475ac1:	74 05                	je     0x475ac8
475ac3:	83 fe 10             	cmp    $0x10,%esi
475ac6:	75 75                	jne    0x475b3d
475ac8:	8a c3                	mov    %bl,%al
475aca:	2c 30                	sub    $0x30,%al
475acc:	3c 09                	cmp    $0x9,%al
475ace:	77 08                	ja     0x475ad8
475ad0:	0f be c3             	movsbl %bl,%eax
475ad3:	83 c0 d0             	add    $0xffffffd0,%eax
475ad6:	eb 1e                	jmp    0x475af6
475ad8:	8a c3                	mov    %bl,%al
475ada:	2c 61                	sub    $0x61,%al
475adc:	3c 19                	cmp    $0x19,%al
475ade:	77 08                	ja     0x475ae8
475ae0:	0f be c3             	movsbl %bl,%eax
475ae3:	83 c0 a9             	add    $0xffffffa9,%eax
475ae6:	eb 0e                	jmp    0x475af6
475ae8:	8a c3                	mov    %bl,%al
475aea:	2c 41                	sub    $0x41,%al
475aec:	3c 19                	cmp    $0x19,%al
475aee:	77 46                	ja     0x475b36
475af0:	0f be c3             	movsbl %bl,%eax
475af3:	83 c0 c9             	add    $0xffffffc9,%eax
475af6:	85 c0                	test   %eax,%eax
475af8:	75 3c                	jne    0x475b36
475afa:	8a 07                	mov    (%edi),%al
475afc:	47                   	inc    %edi
475afd:	88 45 f0             	mov    %al,-0x10(%ebp)
475b00:	89 7d 0c             	mov    %edi,0xc(%ebp)
475b03:	3c 78                	cmp    $0x78,%al
475b05:	74 1d                	je     0x475b24
475b07:	3c 58                	cmp    $0x58,%al
475b09:	74 19                	je     0x475b24
475b0b:	85 f6                	test   %esi,%esi
475b0d:	75 03                	jne    0x475b12
475b0f:	6a 08                	push   $0x8
475b11:	5e                   	pop    %esi
475b12:	ff 75 f0             	push   -0x10(%ebp)
475b15:	8d 4d 0c             	lea    0xc(%ebp),%ecx
475b18:	e8 94 35 00 00       	call   0x4790b1
475b1d:	8b 7d 0c             	mov    0xc(%ebp),%edi
475b20:	33 c9                	xor    %ecx,%ecx
475b22:	eb 19                	jmp    0x475b3d
475b24:	85 f6                	test   %esi,%esi
475b26:	75 03                	jne    0x475b2b
475b28:	6a 10                	push   $0x10
475b2a:	5e                   	pop    %esi
475b2b:	8a 1f                	mov    (%edi),%bl
475b2d:	47                   	inc    %edi
475b2e:	88 5d fc             	mov    %bl,-0x4(%ebp)
475b31:	89 7d 0c             	mov    %edi,0xc(%ebp)
475b34:	eb 07                	jmp    0x475b3d
475b36:	85 f6                	test   %esi,%esi
475b38:	75 03                	jne    0x475b3d
475b3a:	6a 0a                	push   $0xa
475b3c:	5e                   	pop    %esi
475b3d:	83 c8 ff             	or     $0xffffffff,%eax
475b40:	33 d2                	xor    %edx,%edx
475b42:	f7 f6                	div    %esi
475b44:	89 45 f0             	mov    %eax,-0x10(%ebp)
475b47:	8a c3                	mov    %bl,%al
475b49:	2c 30                	sub    $0x30,%al
475b4b:	3c 09                	cmp    $0x9,%al
475b4d:	77 08                	ja     0x475b57
475b4f:	0f be d3             	movsbl %bl,%edx
475b52:	83 c2 d0             	add    $0xffffffd0,%edx
475b55:	eb 23                	jmp    0x475b7a
475b57:	8a c3                	mov    %bl,%al
475b59:	2c 61                	sub    $0x61,%al
475b5b:	3c 19                	cmp    $0x19,%al
475b5d:	77 08                	ja     0x475b67
475b5f:	0f be d3             	movsbl %bl,%edx
475b62:	83 c2 a9             	add    $0xffffffa9,%edx
475b65:	eb 13                	jmp    0x475b7a
475b67:	8a c3                	mov    %bl,%al
475b69:	2c 41                	sub    $0x41,%al
475b6b:	3c 19                	cmp    $0x19,%al
475b6d:	77 08                	ja     0x475b77
475b6f:	0f be d3             	movsbl %bl,%edx
475b72:	83 c2 c9             	add    $0xffffffc9,%edx
475b75:	eb 03                	jmp    0x475b7a
475b77:	83 ca ff             	or     $0xffffffff,%edx
475b7a:	3b d6                	cmp    %esi,%edx
475b7c:	73 30                	jae    0x475bae
475b7e:	8b 45 f0             	mov    -0x10(%ebp),%eax
475b81:	0f af ce             	imul   %esi,%ecx
475b84:	8a 1f                	mov    (%edi),%bl
475b86:	88 5d fc             	mov    %bl,-0x4(%ebp)
475b89:	03 d1                	add    %ecx,%edx
475b8b:	3b d1                	cmp    %ecx,%edx