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
455aa4:	8d 4d f0             	lea    -0x10(%ebp),%ecx
455aa7:	e8 8b 70 fb ff       	call   0x40cb37
455aac:	eb 39                	jmp    0x455ae7
455aae:	8b 4d 0c             	mov    0xc(%ebp),%ecx
455ab1:	3d ff ff 00 00       	cmp    $0xffff,%eax
455ab6:	7e 1c                	jle    0x455ad4
455ab8:	68 00 dc 49 00       	push   $0x49dc00
455abd:	e8 f7 72 fb ff       	call   0x40cdb9
455ac2:	8b 06                	mov    (%esi),%eax
455ac4:	6a 00                	push   $0x0
455ac6:	8b 48 04             	mov    0x4(%eax),%ecx
455ac9:	6a 01                	push   $0x1
455acb:	03 ce                	add    %esi,%ecx
455acd:	e8 7a 74 ff ff       	call   0x44cf4c
455ad2:	eb 13                	jmp    0x455ae7
455ad4:	66 89 45 08          	mov    %ax,0x8(%ebp)
455ad8:	33 c0                	xor    %eax,%eax
455ada:	66 89 45 0a          	mov    %ax,0xa(%ebp)
455ade:	8d 45 08             	lea    0x8(%ebp),%eax
455ae1:	50                   	push   %eax
455ae2:	e8 d2 72 fb ff       	call   0x40cdb9
455ae7:	33 c0                	xor    %eax,%eax
455ae9:	5e                   	pop    %esi
455aea:	c9                   	leave
455aeb:	c2 08 00             	ret    $0x8
455aee:	55                   	push   %ebp
455aef:	8b ec                	mov    %esp,%ebp
455af1:	83 ec 1c             	sub    $0x1c,%esp
455af4:	53                   	push   %ebx
455af5:	8b 5d 08             	mov    0x8(%ebp),%ebx
455af8:	56                   	push   %esi
455af9:	8b 43 04             	mov    0x4(%ebx),%eax
455afc:	89 4d fc             	mov    %ecx,-0x4(%ebp)
455aff:	8b 30                	mov    (%eax),%esi
455b01:	57                   	push   %edi
455b02:	8b ce                	mov    %esi,%ecx
455b04:	33 ff                	xor    %edi,%edi
455b06:	e8 61 38 fb ff       	call   0x40936c
455b0b:	8b 76 08             	mov    0x8(%esi),%esi
455b0e:	6a 10                	push   $0x10
455b10:	8b 0e                	mov    (%esi),%ecx
455b12:	8d 55 f4             	lea    -0xc(%ebp),%edx
455b15:	e8 37 69 fc ff       	call   0x41c451
455b1a:	59                   	pop    %ecx
455b1b:	84 c0                	test   %al,%al
455b1d:	75 12                	jne    0x455b31
455b1f:	8b 55 fc             	mov    -0x4(%ebp),%edx
455b22:	57                   	push   %edi
455b23:	8b 02                	mov    (%edx),%eax
455b25:	6a 01                	push   $0x1
455b27:	8b 48 04             	mov    0x4(%eax),%ecx
455b2a:	03 ca                	add    %edx,%ecx
455b2c:	e8 1b 74 ff ff       	call   0x44cf4c
455b31:	83 7b 08 01          	cmpl   $0x1,0x8(%ebx)
455b35:	76 7d                	jbe    0x455bb4
455b37:	8b 43 04             	mov    0x4(%ebx),%eax
455b3a:	8b 48 04             	mov    0x4(%eax),%ecx
455b3d:	e8 44 77 fb ff       	call   0x40d286
455b42:	48                   	dec    %eax
455b43:	74 49                	je     0x455b8e
455b45:	48                   	dec    %eax
455b46:	74 41                	je     0x455b89
455b48:	48                   	dec    %eax
455b49:	75 46                	jne    0x455b91
455b4b:	6a 02                	push   $0x2
455b4d:	ff 75 f8             	push   -0x8(%ebp)
455b50:	8d 45 e4             	lea    -0x1c(%ebp),%eax
455b53:	ff 75 f4             	push   -0xc(%ebp)
455b56:	50                   	push   %eax
455b57:	e8 f6 07 00 00       	call   0x456352
455b5c:	8b c8                	mov    %eax,%ecx
455b5e:	e8 30 74 fb ff       	call   0x40cf93
455b63:	8d 4d e4             	lea    -0x1c(%ebp),%ecx
455b66:	89 45 f4             	mov    %eax,-0xc(%ebp)
455b69:	89 55 f8             	mov    %edx,-0x8(%ebp)
455b6c:	e8 af d0 fb ff       	call   0x412c20
455b71:	8b 75 0c             	mov    0xc(%ebp),%esi
455b74:	8b ce                	mov    %esi,%ecx
455b76:	e8 a5 d0 fb ff       	call   0x412c20
455b7b:	dd 45 f4             	fldl   -0xc(%ebp)
455b7e:	dd 1e                	fstpl  (%esi)
455b80:	c7 46 0c 03 00 00 00 	movl   $0x3,0xc(%esi)
455b87:	eb 60                	jmp    0x455be9
455b89:	6a 02                	push   $0x2
455b8b:	5f                   	pop    %edi
455b8c:	eb 03                	jmp    0x455b91
455b8e:	33 ff                	xor    %edi,%edi
455b90:	47                   	inc    %edi
455b91:	57                   	push   %edi
455b92:	ff 75 f8             	push   -0x8(%ebp)
455b95:	8d 45 e4             	lea    -0x1c(%ebp),%eax
455b98:	ff 75 f4             	push   -0xc(%ebp)
455b9b:	50                   	push   %eax
455b9c:	e8 b1 07 00 00       	call   0x456352
455ba1:	8b 4d 0c             	mov    0xc(%ebp),%ecx
455ba4:	50                   	push   %eax
455ba5:	e8 04 81 fb ff       	call   0x40dcae
455baa:	8d 4d e4             	lea    -0x1c(%ebp),%ecx
455bad:	e8 6e d0 fb ff       	call   0x412c20
455bb2:	eb 35                	jmp    0x455be9
455bb4:	83 7e 04 08          	cmpl   $0x8,0x4(%esi)
455bb8:	8b 75 0c             	mov    0xc(%ebp),%esi
455bbb:	8b ce                	mov    %esi,%ecx
455bbd:	76 19                	jbe    0x455bd8
455bbf:	e8 5c d0 fb ff       	call   0x412c20
455bc4:	8b 45 f4             	mov    -0xc(%ebp),%eax
455bc7:	89 06                	mov    %eax,(%esi)
455bc9:	8b 45 f8             	mov    -0x8(%ebp),%eax
455bcc:	c7 46 0c 02 00 00 00 	movl   $0x2,0xc(%esi)
455bd3:	89 46 04             	mov    %eax,0x4(%esi)
455bd6:	eb 11                	jmp    0x455be9
455bd8:	e8 43 d0 fb ff       	call   0x412c20
455bdd:	8b 45 f4             	mov    -0xc(%ebp),%eax
455be0:	c7 46 0c 01 00 00 00 	movl   $0x1,0xc(%esi)
455be7:	89 06                	mov    %eax,(%esi)
455be9:	5f                   	pop    %edi
455bea:	5e                   	pop    %esi
455beb:	33 c0                	xor    %eax,%eax
455bed:	5b                   	pop    %ebx
455bee:	c9                   	leave
455bef:	c2 08 00             	ret    $0x8
455bf2:	55                   	push   %ebp
455bf3:	8b ec                	mov    %esp,%ebp
455bf5:	51                   	push   %ecx
455bf6:	51                   	push   %ecx
455bf7:	8b 45 08             	mov    0x8(%ebp),%eax
455bfa:	56                   	push   %esi
455bfb:	8b 40 04             	mov    0x4(%eax),%eax
455bfe:	8b 08                	mov    (%eax),%ecx
455c00:	e8 cb d0 fb ff       	call   0x412cd0
455c05:	51                   	push   %ecx
455c06:	51                   	push   %ecx
455c07:	dd 1c 24             	fstpl  (%esp)
455c0a:	e8 21 e4 fc ff       	call   0x424030
455c0f:	8b 75 0c             	mov    0xc(%ebp),%esi
455c12:	dd 5d f8             	fstpl  -0x8(%ebp)
455c15:	83 c4 08             	add    $0x8,%esp
455c18:	8b ce                	mov    %esi,%ecx
455c1a:	e8 01 d0 fb ff       	call   0x412c20
455c1f:	dd 45 f8             	fldl   -0x8(%ebp)
455c22:	dd 1e                	fstpl  (%esi)
455c24:	c7 46 0c 03 00 00 00 	movl   $0x3,0xc(%esi)
455c2b:	33 c0                	xor    %eax,%eax
455c2d:	5e                   	pop    %esi
455c2e:	c9                   	leave
455c2f:	c2 08 00             	ret    $0x8
455c32:	55                   	push   %ebp
455c33:	8b ec                	mov    %esp,%ebp
455c35:	83 ec 10             	sub    $0x10,%esp
455c38:	8b 45 08             	mov    0x8(%ebp),%eax
455c3b:	56                   	push   %esi
455c3c:	8b 40 04             	mov    0x4(%eax),%eax
455c3f:	8b 08                	mov    (%eax),%ecx
455c41:	e8 8a d0 fb ff       	call   0x412cd0
455c46:	51                   	push   %ecx
455c47:	51                   	push   %ecx
455c48:	dd 1c 24             	fstpl  (%esp)
455c4b:	e8 00 ee fc ff       	call   0x424a50
455c50:	8b 75 0c             	mov    0xc(%ebp),%esi
455c53:	dd 5d f8             	fstpl  -0x8(%ebp)
455c56:	83 c4 08             	add    $0x8,%esp
455c59:	8b ce                	mov    %esi,%ecx
455c5b:	e8 c0 cf fb ff       	call   0x412c20
455c60:	dd 45 f8             	fldl   -0x8(%ebp)
455c63:	6a 00                	push   $0x0
455c65:	dd 1e                	fstpl  (%esi)
455c67:	8b ce                	mov    %esi,%ecx
455c69:	c7 46 0c 03 00 00 00 	movl   $0x3,0xc(%esi)
455c70:	e8 1e 73 fb ff       	call   0x40cf93
455c75:	52                   	push   %edx
455c76:	50                   	push   %eax
455c77:	8d 45 f0             	lea    -0x10(%ebp),%eax
455c7a:	50                   	push   %eax
455c7b:	e8 d2 06 00 00       	call   0x456352
455c80:	50                   	push   %eax