45f79f:	75 27                	jne    0x45f7c8
45f7a1:	8b 45 f8             	mov    -0x8(%ebp),%eax
45f7a4:	8d 4d f8             	lea    -0x8(%ebp),%ecx
45f7a7:	2b 45 fc             	sub    -0x4(%ebp),%eax
45f7aa:	01 07                	add    %eax,(%edi)
45f7ac:	8b c2                	mov    %edx,%eax
45f7ae:	c7 45 f8 00 00 00 00 	movl   $0x0,-0x8(%ebp)
45f7b5:	0f 48 cf             	cmovs  %edi,%ecx
45f7b8:	5f                   	pop    %edi
45f7b9:	8b 09                	mov    (%ecx),%ecx
45f7bb:	03 4e 04             	add    0x4(%esi),%ecx
45f7be:	89 0e                	mov    %ecx,(%esi)
45f7c0:	5e                   	pop    %esi
45f7c1:	5b                   	pop    %ebx
45f7c2:	8b e5                	mov    %ebp,%esp
45f7c4:	5d                   	pop    %ebp
45f7c5:	c2 08 00             	ret    $0x8
45f7c8:	5f                   	pop    %edi
45f7c9:	5e                   	pop    %esi
45f7ca:	33 c0                	xor    %eax,%eax
45f7cc:	5b                   	pop    %ebx
45f7cd:	8b e5                	mov    %ebp,%esp
45f7cf:	5d                   	pop    %ebp
45f7d0:	c2 08 00             	ret    $0x8
45f7d3:	cc                   	int3
45f7d4:	cc                   	int3
45f7d5:	cc                   	int3
45f7d6:	cc                   	int3
45f7d7:	cc                   	int3
45f7d8:	cc                   	int3
45f7d9:	cc                   	int3
45f7da:	cc                   	int3
45f7db:	cc                   	int3
45f7dc:	cc                   	int3
45f7dd:	cc                   	int3
45f7de:	cc                   	int3
45f7df:	cc                   	int3
45f7e0:	55                   	push   %ebp
45f7e1:	8b ec                	mov    %esp,%ebp
45f7e3:	8b 45 08             	mov    0x8(%ebp),%eax
45f7e6:	53                   	push   %ebx
45f7e7:	56                   	push   %esi
45f7e8:	57                   	push   %edi
45f7e9:	8b 18                	mov    (%eax),%ebx
45f7eb:	0f b6 3b             	movzbl (%ebx),%edi
45f7ee:	8d 73 01             	lea    0x1(%ebx),%esi
45f7f1:	81 ff 80 00 00 00    	cmp    $0x80,%edi
45f7f7:	73 09                	jae    0x45f802
45f7f9:	89 30                	mov    %esi,(%eax)
45f7fb:	8b c7                	mov    %edi,%eax
45f7fd:	5f                   	pop    %edi
45f7fe:	5e                   	pop    %esi
45f7ff:	5b                   	pop    %ebx
45f800:	5d                   	pop    %ebp
45f801:	c3                   	ret
45f802:	b9 07 00 00 00       	mov    $0x7,%ecx
45f807:	0f b6 16             	movzbl (%esi),%edx
45f80a:	46                   	inc    %esi
45f80b:	8d 42 ff             	lea    -0x1(%edx),%eax
45f80e:	d3 e0                	shl    %cl,%eax
45f810:	03 f8                	add    %eax,%edi
45f812:	81 fa 80 00 00 00    	cmp    $0x80,%edx
45f818:	72 3b                	jb     0x45f855
45f81a:	83 c1 07             	add    $0x7,%ecx
45f81d:	83 f9 1c             	cmp    $0x1c,%ecx
45f820:	72 e5                	jb     0x45f807
45f822:	0f b6 43 04          	movzbl 0x4(%ebx),%eax
45f826:	83 f8 08             	cmp    $0x8,%eax
45f829:	72 0e                	jb     0x45f839
45f82b:	8b 4d 08             	mov    0x8(%ebp),%ecx
45f82e:	33 f6                	xor    %esi,%esi
45f830:	5f                   	pop    %edi
45f831:	33 c0                	xor    %eax,%eax
45f833:	89 31                	mov    %esi,(%ecx)
45f835:	5e                   	pop    %esi
45f836:	5b                   	pop    %ebx
45f837:	5d                   	pop    %ebp
45f838:	c3                   	ret
45f839:	83 c0 0f             	add    $0xf,%eax
45f83c:	c1 e0 1c             	shl    $0x1c,%eax
45f83f:	03 c7                	add    %edi,%eax
45f841:	3d ef ff ff 7f       	cmp    $0x7fffffef,%eax
45f846:	77 e3                	ja     0x45f82b
45f848:	8b 4d 08             	mov    0x8(%ebp),%ecx
45f84b:	8d 73 05             	lea    0x5(%ebx),%esi
45f84e:	5f                   	pop    %edi
45f84f:	89 31                	mov    %esi,(%ecx)
45f851:	5e                   	pop    %esi
45f852:	5b                   	pop    %ebx
45f853:	5d                   	pop    %ebp
45f854:	c3                   	ret
45f855:	8b 4d 08             	mov    0x8(%ebp),%ecx
45f858:	8b c7                	mov    %edi,%eax
45f85a:	5f                   	pop    %edi
45f85b:	89 31                	mov    %esi,(%ecx)
45f85d:	5e                   	pop    %esi
45f85e:	5b                   	pop    %ebx
45f85f:	5d                   	pop    %ebp
45f860:	c3                   	ret
45f861:	cc                   	int3
45f862:	cc                   	int3
45f863:	cc                   	int3
45f864:	cc                   	int3
45f865:	cc                   	int3
45f866:	cc                   	int3
45f867:	cc                   	int3
45f868:	cc                   	int3
45f869:	cc                   	int3
45f86a:	cc                   	int3
45f86b:	cc                   	int3
45f86c:	cc                   	int3
45f86d:	cc                   	int3
45f86e:	cc                   	int3
45f86f:	cc                   	int3
45f870:	55                   	push   %ebp
45f871:	8b ec                	mov    %esp,%ebp
45f873:	53                   	push   %ebx
45f874:	8b 5d 0c             	mov    0xc(%ebp),%ebx
45f877:	b9 07 00 00 00       	mov    $0x7,%ecx
45f87c:	56                   	push   %esi
45f87d:	57                   	push   %edi
45f87e:	8b 7d 10             	mov    0x10(%ebp),%edi
45f881:	8d 73 01             	lea    0x1(%ebx),%esi
45f884:	0f b6 16             	movzbl (%esi),%edx
45f887:	46                   	inc    %esi
45f888:	8d 42 ff             	lea    -0x1(%edx),%eax
45f88b:	d3 e0                	shl    %cl,%eax
45f88d:	03 f8                	add    %eax,%edi
45f88f:	81 fa 80 00 00 00    	cmp    $0x80,%edx
45f895:	72 43                	jb     0x45f8da
45f897:	83 c1 07             	add    $0x7,%ecx
45f89a:	83 f9 1c             	cmp    $0x1c,%ecx
45f89d:	72 e5                	jb     0x45f884
45f89f:	0f b6 53 04          	movzbl 0x4(%ebx),%edx
45f8a3:	8b 45 08             	mov    0x8(%ebp),%eax
45f8a6:	83 fa 08             	cmp    $0x8,%edx
45f8a9:	73 1d                	jae    0x45f8c8
45f8ab:	83 c2 0f             	add    $0xf,%edx
45f8ae:	c1 e2 1c             	shl    $0x1c,%edx
45f8b1:	03 d7                	add    %edi,%edx
45f8b3:	81 fa ef ff ff 7f    	cmp    $0x7fffffef,%edx
45f8b9:	77 0d                	ja     0x45f8c8
45f8bb:	5f                   	pop    %edi
45f8bc:	8d 4b 05             	lea    0x5(%ebx),%ecx
45f8bf:	89 50 04             	mov    %edx,0x4(%eax)
45f8c2:	5e                   	pop    %esi
45f8c3:	89 08                	mov    %ecx,(%eax)
45f8c5:	5b                   	pop    %ebx
45f8c6:	5d                   	pop    %ebp
45f8c7:	c3                   	ret
45f8c8:	5f                   	pop    %edi
45f8c9:	5e                   	pop    %esi
45f8ca:	c7 00 00 00 00 00    	movl   $0x0,(%eax)
45f8d0:	c7 40 04 00 00 00 00 	movl   $0x0,0x4(%eax)
45f8d7:	5b                   	pop    %ebx
45f8d8:	5d                   	pop    %ebp
45f8d9:	c3                   	ret
45f8da:	8b 45 08             	mov    0x8(%ebp),%eax
45f8dd:	89 78 04             	mov    %edi,0x4(%eax)
45f8e0:	5f                   	pop    %edi
45f8e1:	89 30                	mov    %esi,(%eax)
45f8e3:	5e                   	pop    %esi
45f8e4:	5b                   	pop    %ebx
45f8e5:	5d                   	pop    %ebp
45f8e6:	c3                   	ret
45f8e7:	cc                   	int3
45f8e8:	cc                   	int3
45f8e9:	cc                   	int3
45f8ea:	cc                   	int3
45f8eb:	cc                   	int3
45f8ec:	cc                   	int3
45f8ed:	cc                   	int3
45f8ee:	cc                   	int3
45f8ef:	cc                   	int3
45f8f0:	55                   	push   %ebp
45f8f1:	8b ec                	mov    %esp,%ebp
45f8f3:	83 ec 08             	sub    $0x8,%esp
45f8f6:	8b 55 10             	mov    0x10(%ebp),%edx
45f8f9:	8b c2                	mov    %edx,%eax
45f8fb:	53                   	push   %ebx
45f8fc:	8b 5d 0c             	mov    0xc(%ebp),%ebx
45f8ff:	56                   	push   %esi
45f900:	8b f1                	mov    %ecx,%esi
45f902:	c7 42 10 00 00 00 00 	movl   $0x0,0x10(%edx)
45f909:	83 7a 14 10          	cmpl   $0x10,0x14(%edx)
45f90d:	8b 4d 08             	mov    0x8(%ebp),%ecx
45f910:	57                   	push   %edi
45f911:	89 4d f8             	mov    %ecx,-0x8(%ebp)
45f914:	89 55 fc             	mov    %edx,-0x4(%ebp)
45f917:	72 02                	jb     0x45f91b
45f919:	8b 02                	mov    (%edx),%eax
45f91b:	c6 00 00             	movb   $0x0,(%eax)
45f91e:	8b 7e 04             	mov    0x4(%esi),%edi
45f921:	8b c7                	mov    %edi,%eax
45f923:	2b c1                	sub    %ecx,%eax
45f925:	03 46 10             	add    0x10(%esi),%eax
45f928:	3b d8                	cmp    %eax,%ebx
45f92a:	7f 20                	jg     0x45f94c
45f92c:	b9 80 f0 fa 02       	mov    $0x2faf080,%ecx
45f931:	8b c3                	mov    %ebx,%eax
45f933:	3b d9                	cmp    %ecx,%ebx
45f935:	0f 4f c1             	cmovg  %ecx,%eax
45f938:	8b ca                	mov    %edx,%ecx
45f93a:	03 42 10             	add    0x10(%edx),%eax
45f93d:	50                   	push   %eax
45f93e:	e8 9d b3 ff ff       	call   0x45ace0
45f943:	8b 7e 04             	mov    0x4(%esi),%edi
45f946:	8b 4d f8             	mov    -0x8(%ebp),%ecx
45f949:	8b 55 fc             	mov    -0x4(%ebp),%edx
45f94c:	2b f9                	sub    %ecx,%edi
45f94e:	83 c7 10             	add    $0x10,%edi
45f951:	83 7e 08 00          	cmpl   $0x0,0x8(%esi)
45f955:	74 74                	je     0x45f9cb
45f957:	57                   	push   %edi
45f958:	51                   	push   %ecx
45f959:	8b ca                	mov    %edx,%ecx
45f95b:	e8 20 95 ff ff       	call   0x458e80
45f960:	2b df                	sub    %edi,%ebx
45f962:	83 7e 10 10          	cmpl   $0x10,0x10(%esi)
45f966:	7e 63                	jle    0x45f9cb
45f968:	6a ff                	push   $0xffffffff
45f96a:	6a 00                	push   $0x0
45f96c:	8b ce                	mov    %esi,%ecx
45f96e:	e8 ed f8 ff ff       	call   0x45f260
45f973:	8b 7e 04             	mov    0x4(%esi),%edi
45f976:	8b d0                	mov    %eax,%edx
45f978:	85 d2                	test   %edx,%edx
45f97a:	74 46                	je     0x45f9c2
45f97c:	8b ca                	mov    %edx,%ecx
45f97e:	b8 00 00 00 00       	mov    $0x0,%eax
45f983:	2b cf                	sub    %edi,%ecx
45f985:	01 4e 10             	add    %ecx,0x10(%esi)
45f988:	8d 4a 10             	lea    0x10(%edx),%ecx
45f98b:	89 4d f8             	mov    %ecx,-0x8(%ebp)
45f98e:	0f 48 46 10          	cmovs  0x10(%esi),%eax
45f992:	03 c7                	add    %edi,%eax
45f994:	2b f9                	sub    %ecx,%edi
45f996:	83 c7 10             	add    $0x10,%edi
45f999:	89 06                	mov    %eax,(%esi)
45f99b:	3b df                	cmp    %edi,%ebx
45f99d:	7e 0b                	jle    0x45f9aa
45f99f:	83 7e 08 00          	cmpl   $0x0,0x8(%esi)
45f9a3:	74 26                	je     0x45f9cb
45f9a5:	8b 55 fc             	mov    -0x4(%ebp),%edx
45f9a8:	eb ad                	jmp    0x45f957
45f9aa:	53                   	push   %ebx
45f9ab:	51                   	push   %ecx
45f9ac:	8b 4d fc             	mov    -0x4(%ebp),%ecx
45f9af:	e8 cc 94 ff ff       	call   0x458e80
45f9b4:	8b 45 f8             	mov    -0x8(%ebp),%eax
45f9b7:	5f                   	pop    %edi
45f9b8:	5e                   	pop    %esi
45f9b9:	03 c3                	add    %ebx,%eax
45f9bb:	5b                   	pop    %ebx
45f9bc:	8b e5                	mov    %ebp,%esp
45f9be:	5d                   	pop    %ebp
45f9bf:	c2 0c 00             	ret    $0xc
45f9c2:	c7 46 3c 01 00 00 00 	movl   $0x1,0x3c(%esi)
45f9c9:	89 3e                	mov    %edi,(%esi)
45f9cb:	5f                   	pop    %edi
45f9cc:	5e                   	pop    %esi
45f9cd:	33 c0                	xor    %eax,%eax
45f9cf:	5b                   	pop    %ebx
45f9d0:	8b e5                	mov    %ebp,%esp
45f9d2:	5d                   	pop    %ebp
45f9d3:	c2 0c 00             	ret    $0xc
45f9d6:	cc                   	int3
45f9d7:	cc                   	int3
45f9d8:	cc                   	int3
45f9d9:	cc                   	int3
45f9da:	cc                   	int3
45f9db:	cc                   	int3
45f9dc:	cc                   	int3
45f9dd:	cc                   	int3
45f9de:	cc                   	int3
45f9df:	cc                   	int3
45f9e0:	55                   	push   %ebp
45f9e1:	8b ec                	mov    %esp,%ebp
45f9e3:	56                   	push   %esi
45f9e4:	8b 75 0c             	mov    0xc(%ebp),%esi
45f9e7:	b9 0e 00 00 00       	mov    $0xe,%ecx
45f9ec:	57                   	push   %edi
45f9ed:	8b 7d 10             	mov    0x10(%ebp),%edi
45f9f0:	83 c6 02             	add    $0x2,%esi
45f9f3:	0f b6 16             	movzbl (%esi),%edx
45f9f6:	46                   	inc    %esi
45f9f7:	8d 42 ff             	lea    -0x1(%edx),%eax
45f9fa:	d3 e0                	shl    %cl,%eax
45f9fc:	03 f8                	add    %eax,%edi
45f9fe:	81 fa 80 00 00 00    	cmp    $0x80,%edx
45fa04:	72 1c                	jb     0x45fa22
45fa06:	83 c1 07             	add    $0x7,%ecx
45fa09:	83 f9 23             	cmp    $0x23,%ecx
45fa0c:	72 e5                	jb     0x45f9f3
45fa0e:	8b 45 08             	mov    0x8(%ebp),%eax
45fa11:	5f                   	pop    %edi
45fa12:	5e                   	pop    %esi
45fa13:	c7 00 00 00 00 00    	movl   $0x0,(%eax)
45fa19:	c7 40 04 00 00 00 00 	movl   $0x0,0x4(%eax)
45fa20:	5d                   	pop    %ebp
45fa21:	c3                   	ret
45fa22:	8b 45 08             	mov    0x8(%ebp),%eax
45fa25:	89 78 04             	mov    %edi,0x4(%eax)
45fa28:	5f                   	pop    %edi
45fa29:	89 30                	mov    %esi,(%eax)
45fa2b:	5e                   	pop    %esi
45fa2c:	5d                   	pop    %ebp
45fa2d:	c3                   	ret
45fa2e:	cc                   	int3
45fa2f:	cc                   	int3
45fa30:	55                   	push   %ebp
45fa31:	8b ec                	mov    %esp,%ebp
45fa33:	ff 75 14             	push   0x14(%ebp)
45fa36:	8b 45 0c             	mov    0xc(%ebp),%eax
45fa39:	ff 75 10             	push   0x10(%ebp)
45fa3c:	89 45 0c             	mov    %eax,0xc(%ebp)
45fa3f:	8d 45 0c             	lea    0xc(%ebp),%eax
45fa42:	50                   	push   %eax
45fa43:	6a 00                	push   $0x0
45fa45:	ff 75 08             	push   0x8(%ebp)
45fa48:	e8 83 e5 ff ff       	call   0x45dfd0
45fa4d:	83 c4 14             	add    $0x14,%esp
45fa50:	5d                   	pop    %ebp
45fa51:	c3                   	ret
45fa52:	cc                   	int3
45fa53:	cc                   	int3
45fa54:	cc                   	int3
45fa55:	cc                   	int3
45fa56:	cc                   	int3
45fa57:	cc                   	int3
45fa58:	cc                   	int3
45fa59:	cc                   	int3
45fa5a:	cc                   	int3
45fa5b:	cc                   	int3
45fa5c:	cc                   	int3
45fa5d:	cc                   	int3
45fa5e:	cc                   	int3
45fa5f:	cc                   	int3
45fa60:	55                   	push   %ebp
45fa61:	8b ec                	mov    %esp,%ebp
45fa63:	53                   	push   %ebx
45fa64:	8b 5d 0c             	mov    0xc(%ebp),%ebx
45fa67:	b9 0e 00 00 00       	mov    $0xe,%ecx
45fa6c:	56                   	push   %esi
45fa6d:	57                   	push   %edi
45fa6e:	8b 7d 10             	mov    0x10(%ebp),%edi
45fa71:	8d 73 02             	lea    0x2(%ebx),%esi
45fa74:	0f b6 16             	movzbl (%esi),%edx
45fa77:	46                   	inc    %esi
45fa78:	8d 42 ff             	lea    -0x1(%edx),%eax