455714:	8b 55 08             	mov    0x8(%ebp),%edx
455717:	53                   	push   %ebx
455718:	56                   	push   %esi
455719:	57                   	push   %edi
45571a:	33 f6                	xor    %esi,%esi
45571c:	46                   	inc    %esi
45571d:	6a 10                	push   $0x10
45571f:	33 db                	xor    %ebx,%ebx
455721:	83 7a 08 03          	cmpl   $0x3,0x8(%edx)
455725:	89 4d f4             	mov    %ecx,-0xc(%ebp)
455728:	5f                   	pop    %edi
455729:	89 75 fc             	mov    %esi,-0x4(%ebp)
45572c:	0f 82 94 00 00 00    	jb     0x4557c6
455732:	8b 42 04             	mov    0x4(%edx),%eax
455735:	8b 48 08             	mov    0x8(%eax),%ecx
455738:	89 4d f8             	mov    %ecx,-0x8(%ebp)
45573b:	83 79 0c 0a          	cmpl   $0xa,0xc(%ecx)
45573f:	75 0a                	jne    0x45574b
455741:	e8 07 5e ff ff       	call   0x44b54d
455746:	83 f8 29             	cmp    $0x29,%eax
455749:	74 7b                	je     0x4557c6
45574b:	e8 1c 3c fb ff       	call   0x40936c
455750:	8b 4d f8             	mov    -0x8(%ebp),%ecx
455753:	8b 41 08             	mov    0x8(%ecx),%eax
455756:	39 18                	cmp    %ebx,(%eax)
455758:	74 69                	je     0x4557c3
45575a:	8b 45 08             	mov    0x8(%ebp),%eax
45575d:	8b 40 04             	mov    0x4(%eax),%eax
455760:	8b 70 08             	mov    0x8(%eax),%esi
455763:	8b ce                	mov    %esi,%ecx
455765:	e8 02 3c fb ff       	call   0x40936c
45576a:	8b 46 08             	mov    0x8(%esi),%eax
45576d:	8b 00                	mov    (%eax),%eax
45576f:	0f b7 00             	movzwl (%eax),%eax
455772:	83 e8 42             	sub    $0x42,%eax
455775:	74 46                	je     0x4557bd
455777:	48                   	dec    %eax
455778:	48                   	dec    %eax
455779:	74 3e                	je     0x4557b9
45577b:	83 e8 13             	sub    $0x13,%eax
45577e:	74 40                	je     0x4557c0
455780:	83 e8 0b             	sub    $0xb,%eax
455783:	74 38                	je     0x4557bd
455785:	48                   	dec    %eax
455786:	48                   	dec    %eax
455787:	74 30                	je     0x4557b9
455789:	83 e8 13             	sub    $0x13,%eax
45578c:	74 32                	je     0x4557c0
45578e:	8b 75 0c             	mov    0xc(%ebp),%esi
455791:	8b ce                	mov    %esi,%ecx
455793:	e8 88 d4 fb ff       	call   0x412c20
455798:	8b 55 f4             	mov    -0xc(%ebp),%edx
45579b:	33 c0                	xor    %eax,%eax
45579d:	40                   	inc    %eax
45579e:	53                   	push   %ebx
45579f:	89 46 0c             	mov    %eax,0xc(%esi)
4557a2:	89 1e                	mov    %ebx,(%esi)
4557a4:	50                   	push   %eax
4557a5:	8b 02                	mov    (%edx),%eax
4557a7:	8b 48 04             	mov    0x4(%eax),%ecx
4557aa:	03 ca                	add    %edx,%ecx
4557ac:	e8 9b 77 ff ff       	call   0x44cf4c
4557b1:	83 c8 ff             	or     $0xffffffff,%eax
4557b4:	e9 dd 00 00 00       	jmp    0x455896
4557b9:	6a 20                	push   $0x20
4557bb:	eb 02                	jmp    0x4557bf
4557bd:	6a 08                	push   $0x8
4557bf:	5f                   	pop    %edi
4557c0:	8b 75 fc             	mov    -0x4(%ebp),%esi
4557c3:	8b 55 08             	mov    0x8(%ebp),%edx
4557c6:	83 7a 08 02          	cmpl   $0x2,0x8(%edx)
4557ca:	72 13                	jb     0x4557df
4557cc:	8b 75 08             	mov    0x8(%ebp),%esi
4557cf:	8b 46 04             	mov    0x4(%esi),%eax
4557d2:	8b 48 04             	mov    0x4(%eax),%ecx
4557d5:	e8 ac 7a fb ff       	call   0x40d286
4557da:	8b 55 08             	mov    0x8(%ebp),%edx
4557dd:	8b f0                	mov    %eax,%esi
4557df:	8b 4a 04             	mov    0x4(%edx),%ecx
4557e2:	8b 09                	mov    (%ecx),%ecx
4557e4:	e8 9d 7a fb ff       	call   0x40d286
4557e9:	89 45 fc             	mov    %eax,-0x4(%ebp)
4557ec:	83 ff 20             	cmp    $0x20,%edi
4557ef:	7d 07                	jge    0x4557f8
4557f1:	83 cb ff             	or     $0xffffffff,%ebx
4557f4:	8b cf                	mov    %edi,%ecx
4557f6:	d3 e3                	shl    %cl,%ebx
4557f8:	23 d8                	and    %eax,%ebx
4557fa:	89 5d 08             	mov    %ebx,0x8(%ebp)
4557fd:	85 f6                	test   %esi,%esi
4557ff:	79 08                	jns    0x455809
455801:	03 f7                	add    %edi,%esi
455803:	78 fc                	js     0x455801
455805:	eb 02                	jmp    0x455809
455807:	2b f7                	sub    %edi,%esi
455809:	3b f7                	cmp    %edi,%esi
45580b:	7d fa                	jge    0x455807
45580d:	85 f6                	test   %esi,%esi
45580f:	75 0f                	jne    0x455820
455811:	8b 75 0c             	mov    0xc(%ebp),%esi
455814:	8b ce                	mov    %esi,%ecx
455816:	e8 05 d4 fb ff       	call   0x412c20
45581b:	8b 45 fc             	mov    -0x4(%ebp),%eax
45581e:	eb 6b                	jmp    0x45588b
455820:	33 db                	xor    %ebx,%ebx
455822:	8b cf                	mov    %edi,%ecx
455824:	2b ce                	sub    %esi,%ecx
455826:	43                   	inc    %ebx
455827:	d3 e3                	shl    %cl,%ebx
455829:	89 4d f4             	mov    %ecx,-0xc(%ebp)
45582c:	8b ce                	mov    %esi,%ecx
45582e:	4b                   	dec    %ebx
45582f:	83 ff 20             	cmp    $0x20,%edi
455832:	7d 15                	jge    0x455849
455834:	8b d3                	mov    %ebx,%edx
455836:	23 d0                	and    %eax,%edx
455838:	33 c0                	xor    %eax,%eax
45583a:	d3 e2                	shl    %cl,%edx
45583c:	40                   	inc    %eax
45583d:	8b cf                	mov    %edi,%ecx
45583f:	d3 e0                	shl    %cl,%eax
455841:	48                   	dec    %eax
455842:	23 d0                	and    %eax,%edx
455844:	09 55 08             	or     %edx,0x8(%ebp)
455847:	eb 0a                	jmp    0x455853
455849:	8b c3                	mov    %ebx,%eax
45584b:	23 45 fc             	and    -0x4(%ebp),%eax
45584e:	d3 e0                	shl    %cl,%eax
455850:	09 45 08             	or     %eax,0x8(%ebp)
455853:	83 ff 20             	cmp    $0x20,%edi
455856:	7d 0e                	jge    0x455866
455858:	33 c0                	xor    %eax,%eax
45585a:	40                   	inc    %eax
45585b:	8b cf                	mov    %edi,%ecx
45585d:	d3 e0                	shl    %cl,%eax
45585f:	2b c3                	sub    %ebx,%eax
455861:	8d 58 ff             	lea    -0x1(%eax),%ebx
455864:	eb 02                	jmp    0x455868
455866:	f7 d3                	not    %ebx
455868:	8b 75 0c             	mov    0xc(%ebp),%esi
45586b:	8b ce                	mov    %esi,%ecx
45586d:	e8 ae d3 fb ff       	call   0x412c20
455872:	8b 55 f4             	mov    -0xc(%ebp),%edx
455875:	23 5d fc             	and    -0x4(%ebp),%ebx
455878:	8d 4a ff             	lea    -0x1(%edx),%ecx
45587b:	b8 ff ff ff 7f       	mov    $0x7fffffff,%eax
455880:	d3 f8                	sar    %cl,%eax
455882:	8b ca                	mov    %edx,%ecx
455884:	d3 fb                	sar    %cl,%ebx
455886:	23 c3                	and    %ebx,%eax
455888:	0b 45 08             	or     0x8(%ebp),%eax
45588b:	89 06                	mov    %eax,(%esi)
45588d:	33 c0                	xor    %eax,%eax
45588f:	c7 46 0c 01 00 00 00 	movl   $0x1,0xc(%esi)
455896:	5f                   	pop    %edi
455897:	5e                   	pop    %esi
455898:	5b                   	pop    %ebx
455899:	c9                   	leave
45589a:	c2 08 00             	ret    $0x8
45589d:	55                   	push   %ebp
45589e:	8b ec                	mov    %esp,%ebp
4558a0:	56                   	push   %esi
4558a1:	8b 75 08             	mov    0x8(%ebp),%esi
4558a4:	57                   	push   %edi
4558a5:	8b 46 04             	mov    0x4(%esi),%eax
4558a8:	8b 48 04             	mov    0x4(%eax),%ecx
4558ab:	e8 d6 79 fb ff       	call   0x40d286
4558b0:	8b 4e 04             	mov    0x4(%esi),%ecx
4558b3:	8b 39                	mov    (%ecx),%edi
4558b5:	8b 49 04             	mov    0x4(%ecx),%ecx
4558b8:	85 c0                	test   %eax,%eax
4558ba:	78 16                	js     0x4558d2
4558bc:	e8 c5 79 fb ff       	call   0x40d286
4558c1:	8b cf                	mov    %edi,%ecx
4558c3:	8b f0                	mov    %eax,%esi
4558c5:	e8 bc 79 fb ff       	call   0x40d286
4558ca:	8b f8                	mov    %eax,%edi
4558cc:	8b ce                	mov    %esi,%ecx
4558ce:	d3 ff                	sar    %cl,%edi
4558d0:	eb 16                	jmp    0x4558e8
4558d2:	e8 af 79 fb ff       	call   0x40d286
4558d7:	8b f0                	mov    %eax,%esi
4558d9:	8b cf                	mov    %edi,%ecx
4558db:	f7 de                	neg    %esi
4558dd:	e8 a4 79 fb ff       	call   0x40d286
4558e2:	8b f8                	mov    %eax,%edi
4558e4:	8b ce                	mov    %esi,%ecx
4558e6:	d3 e7                	shl    %cl,%edi
4558e8:	8b 75 0c             	mov    0xc(%ebp),%esi
4558eb:	8b ce                	mov    %esi,%ecx
4558ed:	e8 2e d3 fb ff       	call   0x412c20
4558f2:	89 3e                	mov    %edi,(%esi)
4558f4:	5f                   	pop    %edi
4558f5:	c7 46 0c 01 00 00 00 	movl   $0x1,0xc(%esi)
4558fc:	33 c0                	xor    %eax,%eax
4558fe:	5e                   	pop    %esi
4558ff:	5d                   	pop    %ebp
455900:	c2 08 00             	ret    $0x8
455903:	55                   	push   %ebp
455904:	8b ec                	mov    %esp,%ebp
455906:	53                   	push   %ebx
455907:	8b 5d 08             	mov    0x8(%ebp),%ebx
45590a:	56                   	push   %esi
45590b:	8b 43 08             	mov    0x8(%ebx),%eax
45590e:	89 45 08             	mov    %eax,0x8(%ebp)
455911:	8b 43 04             	mov    0x4(%ebx),%eax
455914:	57                   	push   %edi
455915:	8b 08                	mov    (%eax),%ecx
455917:	e8 6a 79 fb ff       	call   0x40d286
45591c:	33 f6                	xor    %esi,%esi
45591e:	46                   	inc    %esi
45591f:	8b f8                	mov    %eax,%edi
455921:	39 75 08             	cmp    %esi,0x8(%ebp)
455924:	76 13                	jbe    0x455939
455926:	8b 4b 04             	mov    0x4(%ebx),%ecx
455929:	8b 0c b1             	mov    (%ecx,%esi,4),%ecx
45592c:	e8 55 79 fb ff       	call   0x40d286
455931:	33 f8                	xor    %eax,%edi
455933:	46                   	inc    %esi
455934:	3b 75 08             	cmp    0x8(%ebp),%esi
455937:	72 ed                	jb     0x455926
455939:	8b 75 0c             	mov    0xc(%ebp),%esi
45593c:	8b ce                	mov    %esi,%ecx
45593e:	e8 dd d2 fb ff       	call   0x412c20
455943:	89 3e                	mov    %edi,(%esi)
455945:	5f                   	pop    %edi
455946:	c7 46 0c 01 00 00 00 	movl   $0x1,0xc(%esi)
45594d:	5e                   	pop    %esi
45594e:	33 c0                	xor    %eax,%eax
455950:	5b                   	pop    %ebx
455951:	5d                   	pop    %ebp
455952:	c2 08 00             	ret    $0x8
455955:	55                   	push   %ebp
455956:	8b ec                	mov    %esp,%ebp
455958:	83 ec 10             	sub    $0x10,%esp
45595b:	8b 45 08             	mov    0x8(%ebp),%eax
45595e:	56                   	push   %esi
45595f:	8b 40 04             	mov    0x4(%eax),%eax
455962:	8b 08                	mov    (%eax),%ecx
455964:	e8 67 d3 fb ff       	call   0x412cd0
455969:	51                   	push   %ecx
45596a:	51                   	push   %ecx
45596b:	dd 1c 24             	fstpl  (%esp)
45596e:	e8 0d f2 fc ff       	call   0x424b80
455973:	8b 75 0c             	mov    0xc(%ebp),%esi
455976:	dd 5d f8             	fstpl  -0x8(%ebp)
455979:	83 c4 08             	add    $0x8,%esp
45597c:	8b ce                	mov    %esi,%ecx
45597e:	e8 9d d2 fb ff       	call   0x412c20
455983:	dd 45 f8             	fldl   -0x8(%ebp)
455986:	6a 00                	push   $0x0
455988:	dd 1e                	fstpl  (%esi)
45598a:	8b ce                	mov    %esi,%ecx
45598c:	c7 46 0c 03 00 00 00 	movl   $0x3,0xc(%esi)
455993:	e8 fb 75 fb ff       	call   0x40cf93
455998:	52                   	push   %edx
455999:	50                   	push   %eax
45599a:	8d 45 f0             	lea    -0x10(%ebp),%eax
45599d:	50                   	push   %eax
45599e:	e8 af 09 00 00       	call   0x456352
4559a3:	50                   	push   %eax
4559a4:	8b ce                	mov    %esi,%ecx
4559a6:	e8 03 83 fb ff       	call   0x40dcae
4559ab:	8d 4d f0             	lea    -0x10(%ebp),%ecx
4559ae:	e8 6d d2 fb ff       	call   0x412c20
4559b3:	33 c0                	xor    %eax,%eax
4559b5:	5e                   	pop    %esi
4559b6:	c9                   	leave
4559b7:	c2 08 00             	ret    $0x8
4559ba:	55                   	push   %ebp
4559bb:	8b ec                	mov    %esp,%ebp
4559bd:	8b 45 08             	mov    0x8(%ebp),%eax
4559c0:	83 ec 10             	sub    $0x10,%esp
4559c3:	8b 40 04             	mov    0x4(%eax),%eax
4559c6:	56                   	push   %esi
4559c7:	8b f1                	mov    %ecx,%esi
4559c9:	8b 08                	mov    (%eax),%ecx
4559cb:	e8 b6 78 fb ff       	call   0x40d286
4559d0:	85 c0                	test   %eax,%eax
4559d2:	75 28                	jne    0x4559fc
4559d4:	8d 4d f0             	lea    -0x10(%ebp),%ecx
4559d7:	e8 1b 7e fb ff       	call   0x40d7f7
4559dc:	6a 00                	push   $0x0
4559de:	8d 4d f0             	lea    -0x10(%ebp),%ecx
4559e1:	e8 6d 28 ff ff       	call   0x448253
4559e6:	8b 4d 0c             	mov    0xc(%ebp),%ecx
4559e9:	8d 45 f0             	lea    -0x10(%ebp),%eax
4559ec:	50                   	push   %eax
4559ed:	e8 76 11 fb ff       	call   0x406b68
4559f2:	8d 4d f0             	lea    -0x10(%ebp),%ecx
4559f5:	e8 3d 71 fb ff       	call   0x40cb37
4559fa:	eb 69                	jmp    0x455a65
4559fc:	3d ff 00 00 00       	cmp    $0xff,%eax
455a01:	7e 1f                	jle    0x455a22
455a03:	8b 4d 0c             	mov    0xc(%ebp),%ecx
455a06:	68 00 dc 49 00       	push   $0x49dc00
455a0b:	e8 a9 73 fb ff       	call   0x40cdb9
455a10:	8b 06                	mov    (%esi),%eax
455a12:	6a 00                	push   $0x0
455a14:	8b 48 04             	mov    0x4(%eax),%ecx
455a17:	6a 01                	push   $0x1
455a19:	03 ce                	add    %esi,%ecx
455a1b:	e8 2c 75 ff ff       	call   0x44cf4c
455a20:	eb 43                	jmp    0x455a65
455a22:	3d 80 00 00 00       	cmp    $0x80,%eax
455a27:	7d 18                	jge    0x455a41
455a29:	8b 4d 0c             	mov    0xc(%ebp),%ecx
455a2c:	66 89 45 08          	mov    %ax,0x8(%ebp)
455a30:	33 c0                	xor    %eax,%eax
455a32:	66 89 45 0a          	mov    %ax,0xa(%ebp)
455a36:	8d 45 08             	lea    0x8(%ebp),%eax
455a39:	50                   	push   %eax
455a3a:	e8 7a 73 fb ff       	call   0x40cdb9
455a3f:	eb 24                	jmp    0x455a65
455a41:	83 ca ff             	or     $0xffffffff,%edx
455a44:	8d 4d 08             	lea    0x8(%ebp),%ecx
455a47:	88 45 08             	mov    %al,0x8(%ebp)
455a4a:	c6 45 09 00          	movb   $0x0,0x9(%ebp)
455a4e:	e8 03 22 ff ff       	call   0x447c56
455a53:	8b 4d 0c             	mov    0xc(%ebp),%ecx
455a56:	8b f0                	mov    %eax,%esi
455a58:	56                   	push   %esi
455a59:	e8 5b 73 fb ff       	call   0x40cdb9
455a5e:	56                   	push   %esi
455a5f:	e8 fa 9a fc ff       	call   0x41f55e
455a64:	59                   	pop    %ecx
455a65:	33 c0                	xor    %eax,%eax
455a67:	5e                   	pop    %esi
455a68:	c9                   	leave
455a69:	c2 08 00             	ret    $0x8
455a6c:	55                   	push   %ebp
455a6d:	8b ec                	mov    %esp,%ebp
455a6f:	8b 45 08             	mov    0x8(%ebp),%eax
455a72:	83 ec 10             	sub    $0x10,%esp
455a75:	8b 40 04             	mov    0x4(%eax),%eax
455a78:	56                   	push   %esi
455a79:	8b f1                	mov    %ecx,%esi
455a7b:	8b 08                	mov    (%eax),%ecx
455a7d:	e8 04 78 fb ff       	call   0x40d286
455a82:	85 c0                	test   %eax,%eax
455a84:	75 28                	jne    0x455aae
455a86:	8d 4d f0             	lea    -0x10(%ebp),%ecx
455a89:	e8 69 7d fb ff       	call   0x40d7f7
455a8e:	6a 00                	push   $0x0
455a90:	8d 4d f0             	lea    -0x10(%ebp),%ecx
455a93:	e8 bb 27 ff ff       	call   0x448253
455a98:	8b 4d 0c             	mov    0xc(%ebp),%ecx
455a9b:	8d 45 f0             	lea    -0x10(%ebp),%eax
455a9e:	50                   	push   %eax
455a9f:	e8 c4 10 fb ff       	call   0x406b68