46674e:	ff 75 08             	push   0x8(%ebp)
466751:	e8 53 da fe ff       	call   0x4541a9
466756:	59                   	pop    %ecx
466757:	89 75 fc             	mov    %esi,-0x4(%ebp)
46675a:	ff 75 08             	push   0x8(%ebp)
46675d:	e8 5c 00 00 00       	call   0x4667be
466762:	59                   	pop    %ecx
466763:	8b f0                	mov    %eax,%esi
466765:	89 75 e0             	mov    %esi,-0x20(%ebp)
466768:	8b fa                	mov    %edx,%edi
46676a:	89 7d e4             	mov    %edi,-0x1c(%ebp)
46676d:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
466774:	e8 10 00 00 00       	call   0x466789
466779:	8b c6                	mov    %esi,%eax
46677b:	8b d7                	mov    %edi,%edx
46677d:	e8 24 a2 fd ff       	call   0x4409a6
466782:	c3                   	ret
466783:	8b 7d e4             	mov    -0x1c(%ebp),%edi
466786:	8b 75 e0             	mov    -0x20(%ebp),%esi
466789:	ff 75 08             	push   0x8(%ebp)
46678c:	e8 2c da fe ff       	call   0x4541bd
466791:	59                   	pop    %ecx
466792:	c3                   	ret
466793:	8b ff                	mov    %edi,%edi
466795:	55                   	push   %ebp
466796:	8b ec                	mov    %esp,%ebp
466798:	ff 75 08             	push   0x8(%ebp)
46679b:	e8 1e 00 00 00       	call   0x4667be
4667a0:	59                   	pop    %ecx
4667a1:	85 d2                	test   %edx,%edx
4667a3:	7c 17                	jl     0x4667bc
4667a5:	7f 07                	jg     0x4667ae
4667a7:	3d ff ff ff 7f       	cmp    $0x7fffffff,%eax
4667ac:	76 0e                	jbe    0x4667bc
4667ae:	e8 7c 66 fe ff       	call   0x44ce2f
4667b3:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
4667b9:	83 c8 ff             	or     $0xffffffff,%eax
4667bc:	5d                   	pop    %ebp
4667bd:	c3                   	ret
4667be:	8b ff                	mov    %edi,%edi
4667c0:	55                   	push   %ebp
4667c1:	8b ec                	mov    %esp,%ebp
4667c3:	83 ec 14             	sub    $0x14,%esp
4667c6:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
4667ca:	75 1a                	jne    0x4667e6
4667cc:	e8 5e 66 fe ff       	call   0x44ce2f
4667d1:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
4667d7:	e8 fa 64 fe ff       	call   0x44ccd6
4667dc:	83 c8 ff             	or     $0xffffffff,%eax
4667df:	0b d0                	or     %eax,%edx
4667e1:	e9 59 01 00 00       	jmp    0x46693f
4667e6:	53                   	push   %ebx
4667e7:	57                   	push   %edi
4667e8:	ff 75 08             	push   0x8(%ebp)
4667eb:	e8 86 19 01 00       	call   0x478176
4667f0:	59                   	pop    %ecx
4667f1:	8b 4d 08             	mov    0x8(%ebp),%ecx
4667f4:	33 db                	xor    %ebx,%ebx
4667f6:	8b f8                	mov    %eax,%edi
4667f8:	39 59 08             	cmp    %ebx,0x8(%ecx)
4667fb:	7d 03                	jge    0x466800
4667fd:	89 59 08             	mov    %ebx,0x8(%ecx)
466800:	56                   	push   %esi
466801:	6a 01                	push   $0x1
466803:	53                   	push   %ebx
466804:	53                   	push   %ebx
466805:	57                   	push   %edi
466806:	e8 0e 33 01 00       	call   0x479b19
46680b:	8b ca                	mov    %edx,%ecx
46680d:	83 c4 10             	add    $0x10,%esp
466810:	89 4d f8             	mov    %ecx,-0x8(%ebp)
466813:	8b f0                	mov    %eax,%esi
466815:	89 75 ec             	mov    %esi,-0x14(%ebp)
466818:	3b cb                	cmp    %ebx,%ecx
46681a:	7f 0e                	jg     0x46682a
46681c:	0f 8c c7 00 00 00    	jl     0x4668e9
466822:	3b f3                	cmp    %ebx,%esi
466824:	0f 82 bf 00 00 00    	jb     0x4668e9
46682a:	8b 45 08             	mov    0x8(%ebp),%eax
46682d:	8b 40 0c             	mov    0xc(%eax),%eax
466830:	a8 c0                	test   $0xc0,%al
466832:	75 14                	jne    0x466848
466834:	8b 45 08             	mov    0x8(%ebp),%eax
466837:	8b 40 08             	mov    0x8(%eax),%eax
46683a:	99                   	cltd
46683b:	2b f0                	sub    %eax,%esi
46683d:	8b c6                	mov    %esi,%eax
46683f:	1b ca                	sbb    %edx,%ecx
466841:	8b d1                	mov    %ecx,%edx
466843:	e9 f4 00 00 00       	jmp    0x46693c
466848:	8b c7                	mov    %edi,%eax
46684a:	83 e7 3f             	and    $0x3f,%edi
46684d:	c1 f8 06             	sar    $0x6,%eax
466850:	6b cf 30             	imul   $0x30,%edi,%ecx
466853:	89 45 f4             	mov    %eax,-0xc(%ebp)
466856:	8b 04 85 00 c0 4b 00 	mov    0x4bc000(,%eax,4),%eax
46685d:	89 4d f0             	mov    %ecx,-0x10(%ebp)
466860:	8a 44 01 29          	mov    0x29(%ecx,%eax,1),%al
466864:	8b 4d 08             	mov    0x8(%ebp),%ecx
466867:	88 45 fc             	mov    %al,-0x4(%ebp)
46686a:	8b 01                	mov    (%ecx),%eax
46686c:	2b 41 04             	sub    0x4(%ecx),%eax
46686f:	8b 49 0c             	mov    0xc(%ecx),%ecx
466872:	99                   	cltd
466873:	8b f8                	mov    %eax,%edi
466875:	8b da                	mov    %edx,%ebx
466877:	f6 c1 03             	test   $0x3,%cl
46687a:	74 55                	je     0x4668d1
46687c:	80 7d fc 01          	cmpb   $0x1,-0x4(%ebp)
466880:	8b 4d f4             	mov    -0xc(%ebp),%ecx
466883:	8b 55 f0             	mov    -0x10(%ebp),%edx
466886:	75 22                	jne    0x4668aa
466888:	8b 04 8d 00 c0 4b 00 	mov    0x4bc000(,%ecx,4),%eax
46688f:	f6 44 02 2d 02       	testb  $0x2,0x2d(%edx,%eax,1)
466894:	74 14                	je     0x4668aa
466896:	ff 75 f8             	push   -0x8(%ebp)
466899:	56                   	push   %esi
46689a:	ff 75 08             	push   0x8(%ebp)
46689d:	e8 c6 02 00 00       	call   0x466b68
4668a2:	83 c4 0c             	add    $0xc,%esp
4668a5:	e9 92 00 00 00       	jmp    0x46693c
4668aa:	8b 04 8d 00 c0 4b 00 	mov    0x4bc000(,%ecx,4),%eax
4668b1:	f6 44 02 28 80       	testb  $0x80,0x28(%edx,%eax,1)
4668b6:	74 38                	je     0x4668f0
4668b8:	8b 75 08             	mov    0x8(%ebp),%esi
4668bb:	ff 75 fc             	push   -0x4(%ebp)
4668be:	ff 36                	push   (%esi)
4668c0:	ff 76 04             	push   0x4(%esi)
4668c3:	e8 3b 04 00 00       	call   0x466d03
4668c8:	83 c4 0c             	add    $0xc,%esp
4668cb:	03 f8                	add    %eax,%edi
4668cd:	13 da                	adc    %edx,%ebx
4668cf:	eb 22                	jmp    0x4668f3
4668d1:	8b 45 08             	mov    0x8(%ebp),%eax
4668d4:	8b 40 0c             	mov    0xc(%eax),%eax
4668d7:	c1 e8 02             	shr    $0x2,%eax
4668da:	a8 01                	test   $0x1,%al
4668dc:	75 12                	jne    0x4668f0
4668de:	e8 4c 65 fe ff       	call   0x44ce2f
4668e3:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
4668e9:	83 c8 ff             	or     $0xffffffff,%eax
4668ec:	0b d0                	or     %eax,%edx
4668ee:	eb 4c                	jmp    0x46693c
4668f0:	8b 75 08             	mov    0x8(%ebp),%esi
4668f3:	8b 4d ec             	mov    -0x14(%ebp),%ecx
4668f6:	8b c1                	mov    %ecx,%eax
4668f8:	8b 55 f8             	mov    -0x8(%ebp),%edx
4668fb:	0b c2                	or     %edx,%eax
4668fd:	75 04                	jne    0x466903
4668ff:	8b d3                	mov    %ebx,%edx
466901:	eb 37                	jmp    0x46693a
466903:	8b 46 0c             	mov    0xc(%esi),%eax
466906:	a8 01                	test   $0x1,%al
466908:	74 11                	je     0x46691b
46690a:	53                   	push   %ebx
46690b:	57                   	push   %edi
46690c:	52                   	push   %edx
46690d:	51                   	push   %ecx
46690e:	ff 75 08             	push   0x8(%ebp)
466911:	e8 df 00 00 00       	call   0x4669f5
466916:	83 c4 14             	add    $0x14,%esp
466919:	eb 21                	jmp    0x46693c
46691b:	80 7d fc 01          	cmpb   $0x1,-0x4(%ebp)
46691f:	75 15                	jne    0x466936
466921:	6a 00                	push   $0x0
466923:	6a 02                	push   $0x2
466925:	53                   	push   %ebx
466926:	57                   	push   %edi
466927:	e8 04 92 fd ff       	call   0x43fb30
46692c:	8b 4d ec             	mov    -0x14(%ebp),%ecx
46692f:	8b da                	mov    %edx,%ebx
466931:	8b 55 f8             	mov    -0x8(%ebp),%edx
466934:	8b f8                	mov    %eax,%edi
466936:	03 f9                	add    %ecx,%edi
466938:	13 d3                	adc    %ebx,%edx
46693a:	8b c7                	mov    %edi,%eax
46693c:	5e                   	pop    %esi
46693d:	5f                   	pop    %edi
46693e:	5b                   	pop    %ebx
46693f:	8b e5                	mov    %ebp,%esp
466941:	5d                   	pop    %ebp
466942:	c3                   	ret
466943:	8b ff                	mov    %edi,%edi
466945:	55                   	push   %ebp
466946:	8b ec                	mov    %esp,%ebp
466948:	8b 4d 08             	mov    0x8(%ebp),%ecx
46694b:	33 d2                	xor    %edx,%edx
46694d:	8b 45 0c             	mov    0xc(%ebp),%eax
466950:	53                   	push   %ebx
466951:	56                   	push   %esi
466952:	57                   	push   %edi
466953:	33 f6                	xor    %esi,%esi
466955:	33 ff                	xor    %edi,%edi
466957:	2b c1                	sub    %ecx,%eax
466959:	39 4d 0c             	cmp    %ecx,0xc(%ebp)
46695c:	1b db                	sbb    %ebx,%ebx
46695e:	f7 d3                	not    %ebx
466960:	23 d8                	and    %eax,%ebx
466962:	74 11                	je     0x466975
466964:	80 39 0a             	cmpb   $0xa,(%ecx)
466967:	75 06                	jne    0x46696f
466969:	83 c6 01             	add    $0x1,%esi
46696c:	83 d2 00             	adc    $0x0,%edx
46696f:	41                   	inc    %ecx
466970:	47                   	inc    %edi
466971:	3b fb                	cmp    %ebx,%edi
466973:	75 ef                	jne    0x466964
466975:	5f                   	pop    %edi
466976:	8b c6                	mov    %esi,%eax
466978:	5e                   	pop    %esi
466979:	5b                   	pop    %ebx
46697a:	5d                   	pop    %ebp
46697b:	c3                   	ret
46697c:	8b ff                	mov    %edi,%edi
46697e:	55                   	push   %ebp
46697f:	8b ec                	mov    %esp,%ebp
466981:	8b 4d 08             	mov    0x8(%ebp),%ecx
466984:	33 d2                	xor    %edx,%edx
466986:	8b 45 0c             	mov    0xc(%ebp),%eax
466989:	53                   	push   %ebx
46698a:	56                   	push   %esi
46698b:	2b c1                	sub    %ecx,%eax
46698d:	33 f6                	xor    %esi,%esi
46698f:	57                   	push   %edi
466990:	33 ff                	xor    %edi,%edi
466992:	40                   	inc    %eax
466993:	d1 e8                	shr    $1,%eax
466995:	39 4d 0c             	cmp    %ecx,0xc(%ebp)
466998:	1b db                	sbb    %ebx,%ebx
46699a:	f7 d3                	not    %ebx
46699c:	23 d8                	and    %eax,%ebx
46699e:	74 14                	je     0x4669b4
4669a0:	66 83 39 0a          	cmpw   $0xa,(%ecx)
4669a4:	75 06                	jne    0x4669ac
4669a6:	83 c6 01             	add    $0x1,%esi
4669a9:	83 d2 00             	adc    $0x0,%edx
4669ac:	83 c1 02             	add    $0x2,%ecx
4669af:	47                   	inc    %edi
4669b0:	3b fb                	cmp    %ebx,%edi
4669b2:	75 ec                	jne    0x4669a0
4669b4:	5f                   	pop    %edi
4669b5:	8b c6                	mov    %esi,%eax
4669b7:	5e                   	pop    %esi
4669b8:	5b                   	pop    %ebx
4669b9:	5d                   	pop    %ebp
4669ba:	c3                   	ret
4669bb:	8b ff                	mov    %edi,%edi
4669bd:	55                   	push   %ebp
4669be:	8b ec                	mov    %esp,%ebp
4669c0:	8a 45 08             	mov    0x8(%ebp),%al
4669c3:	3c 01                	cmp    $0x1,%al
4669c5:	74 08                	je     0x4669cf
4669c7:	3c 02                	cmp    $0x2,%al
4669c9:	74 04                	je     0x4669cf
4669cb:	33 c9                	xor    %ecx,%ecx
4669cd:	eb 03                	jmp    0x4669d2
4669cf:	33 c9                	xor    %ecx,%ecx
4669d1:	41                   	inc    %ecx
4669d2:	33 c0                	xor    %eax,%eax
4669d4:	84 c9                	test   %cl,%cl
4669d6:	0f 95 c0             	setne  %al
4669d9:	40                   	inc    %eax
4669da:	5d                   	pop    %ebp
4669db:	c3                   	ret
4669dc:	8b ff                	mov    %edi,%edi
4669de:	55                   	push   %ebp
4669df:	8b ec                	mov    %esp,%ebp
4669e1:	8a 45 08             	mov    0x8(%ebp),%al
4669e4:	3c 01                	cmp    $0x1,%al
4669e6:	74 08                	je     0x4669f0
4669e8:	3c 02                	cmp    $0x2,%al
4669ea:	74 04                	je     0x4669f0
4669ec:	33 c0                	xor    %eax,%eax
4669ee:	5d                   	pop    %ebp
4669ef:	c3                   	ret
4669f0:	33 c0                	xor    %eax,%eax
4669f2:	40                   	inc    %eax
4669f3:	5d                   	pop    %ebp
4669f4:	c3                   	ret
4669f5:	8b ff                	mov    %edi,%edi
4669f7:	55                   	push   %ebp
4669f8:	8b ec                	mov    %esp,%ebp
4669fa:	83 ec 18             	sub    $0x18,%esp
4669fd:	56                   	push   %esi
4669fe:	ff 75 08             	push   0x8(%ebp)
466a01:	e8 70 17 01 00       	call   0x478176
466a06:	8b f0                	mov    %eax,%esi
466a08:	c7 45 fc 02 00 00 00 	movl   $0x2,-0x4(%ebp)
466a0f:	59                   	pop    %ecx
466a10:	8b ce                	mov    %esi,%ecx
466a12:	c1 f8 06             	sar    $0x6,%eax
466a15:	83 e1 3f             	and    $0x3f,%ecx
466a18:	89 45 e8             	mov    %eax,-0x18(%ebp)
466a1b:	6b c9 30             	imul   $0x30,%ecx,%ecx
466a1e:	8b 04 85 00 c0 4b 00 	mov    0x4bc000(,%eax,4),%eax
466a25:	89 45 ec             	mov    %eax,-0x14(%ebp)
466a28:	89 4d f4             	mov    %ecx,-0xc(%ebp)
466a2b:	8a 4c 08 29          	mov    0x29(%eax,%ecx,1),%cl
466a2f:	88 4d f8             	mov    %cl,-0x8(%ebp)
466a32:	80 f9 01             	cmp    $0x1,%cl
466a35:	74 07                	je     0x466a3e
466a37:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
466a3e:	8b 45 08             	mov    0x8(%ebp),%eax
466a41:	8b 48 08             	mov    0x8(%eax),%ecx
466a44:	89 4d f0             	mov    %ecx,-0x10(%ebp)
466a47:	85 c9                	test   %ecx,%ecx
466a49:	75 0b                	jne    0x466a56
466a4b:	8b 45 0c             	mov    0xc(%ebp),%eax
466a4e:	8b 55 10             	mov    0x10(%ebp),%edx
466a51:	e9 0d 01 00 00       	jmp    0x466b63
466a56:	8b 08                	mov    (%eax),%ecx
466a58:	2b 48 04             	sub    0x4(%eax),%ecx
466a5b:	53                   	push   %ebx
466a5c:	8b c1                	mov    %ecx,%eax
466a5e:	8b 4d ec             	mov    -0x14(%ebp),%ecx
466a61:	99                   	cltd
466a62:	57                   	push   %edi
466a63:	8b f8                	mov    %eax,%edi
466a65:	8b da                	mov    %edx,%ebx
466a67:	8b 45 f0             	mov    -0x10(%ebp),%eax
466a6a:	99                   	cltd
466a6b:	03 f8                	add    %eax,%edi
466a6d:	8b 45 f4             	mov    -0xc(%ebp),%eax
466a70:	13 da                	adc    %edx,%ebx
466a72:	f6 44 01 28 80       	testb  $0x80,0x28(%ecx,%eax,1)
466a77:	0f 84 ba 00 00 00    	je     0x466b37
466a7d:	6a 02                	push   $0x2
466a7f:	6a 00                	push   $0x0
466a81:	6a 00                	push   $0x0
466a83:	56                   	push   %esi
466a84:	e8 90 30 01 00       	call   0x479b19
466a89:	83 c4 10             	add    $0x10,%esp
466a8c:	3b 45 0c             	cmp    0xc(%ebp),%eax
466a8f:	75 29                	jne    0x466aba
466a91:	3b 55 10             	cmp    0x10(%ebp),%edx
466a94:	75 24                	jne    0x466aba
466a96:	8b 75 08             	mov    0x8(%ebp),%esi
466a99:	ff 75 f8             	push   -0x8(%ebp)
466a9c:	8b 4e 04             	mov    0x4(%esi),%ecx
466a9f:	8d 04 39             	lea    (%ecx,%edi,1),%eax
466aa2:	50                   	push   %eax
466aa3:	51                   	push   %ecx
466aa4:	e8 5a 02 00 00       	call   0x466d03
466aa9:	83 c4 0c             	add    $0xc,%esp
466aac:	03 f8                	add    %eax,%edi
466aae:	8b 46 0c             	mov    0xc(%esi),%eax
466ab1:	13 da                	adc    %edx,%ebx
466ab3:	c1 e8 05             	shr    $0x5,%eax
466ab6:	a8 01                	test   $0x1,%al
466ab8:	eb 6d                	jmp    0x466b27