45f614:	5f                   	pop    %edi
45f615:	89 0e                	mov    %ecx,(%esi)
45f617:	5e                   	pop    %esi
45f618:	5b                   	pop    %ebx
45f619:	8b e5                	mov    %ebp,%esp
45f61b:	5d                   	pop    %ebp
45f61c:	c2 0c 00             	ret    $0xc
45f61f:	50                   	push   %eax
45f620:	8b 45 08             	mov    0x8(%ebp),%eax
45f623:	6a 00                	push   $0x0
45f625:	8d 04 c5 02 00 00 00 	lea    0x2(,%eax,8),%eax
45f62c:	50                   	push   %eax
45f62d:	e8 3e 05 00 00       	call   0x45fb70
45f632:	ff 33                	push   (%ebx)
45f634:	8b c7                	mov    %edi,%eax
45f636:	99                   	cltd
45f637:	52                   	push   %edx
45f638:	50                   	push   %eax
45f639:	e8 32 05 00 00       	call   0x45fb70
45f63e:	8b 13                	mov    (%ebx),%edx
45f640:	83 c4 18             	add    $0x18,%esp
45f643:	8b 5e 04             	mov    0x4(%esi),%ebx
45f646:	8b c3                	mov    %ebx,%eax
45f648:	8b 4d fc             	mov    -0x4(%ebp),%ecx
45f64b:	2b c1                	sub    %ecx,%eax
45f64d:	83 c0 10             	add    $0x10,%eax
45f650:	89 55 f8             	mov    %edx,-0x8(%ebp)
45f653:	3b f8                	cmp    %eax,%edi
45f655:	7f 17                	jg     0x45f66e
45f657:	57                   	push   %edi
45f658:	51                   	push   %ecx
45f659:	8b ca                	mov    %edx,%ecx
45f65b:	e8 20 98 ff ff       	call   0x458e80
45f660:	8b 45 fc             	mov    -0x4(%ebp),%eax
45f663:	03 c7                	add    %edi,%eax
45f665:	5f                   	pop    %edi
45f666:	5e                   	pop    %esi
45f667:	5b                   	pop    %ebx
45f668:	8b e5                	mov    %ebp,%esp
45f66a:	5d                   	pop    %ebp
45f66b:	c2 0c 00             	ret    $0xc
45f66e:	8b c3                	mov    %ebx,%eax
45f670:	2b c1                	sub    %ecx,%eax
45f672:	03 46 10             	add    0x10(%esi),%eax
45f675:	3b f8                	cmp    %eax,%edi
45f677:	7f 20                	jg     0x45f699
45f679:	b9 80 f0 fa 02       	mov    $0x2faf080,%ecx
45f67e:	8b c7                	mov    %edi,%eax
45f680:	3b f9                	cmp    %ecx,%edi
45f682:	0f 4f c1             	cmovg  %ecx,%eax
45f685:	8b ca                	mov    %edx,%ecx
45f687:	03 42 10             	add    0x10(%edx),%eax
45f68a:	50                   	push   %eax
45f68b:	e8 50 b6 ff ff       	call   0x45ace0
45f690:	8b 5e 04             	mov    0x4(%esi),%ebx
45f693:	8b 4d fc             	mov    -0x4(%ebp),%ecx
45f696:	8b 55 f8             	mov    -0x8(%ebp),%edx
45f699:	2b d9                	sub    %ecx,%ebx
45f69b:	83 c3 10             	add    $0x10,%ebx
45f69e:	83 7e 08 00          	cmpl   $0x0,0x8(%esi)
45f6a2:	74 74                	je     0x45f718
45f6a4:	53                   	push   %ebx
45f6a5:	51                   	push   %ecx
45f6a6:	8b ca                	mov    %edx,%ecx
45f6a8:	e8 d3 97 ff ff       	call   0x458e80
45f6ad:	2b fb                	sub    %ebx,%edi
45f6af:	83 7e 10 10          	cmpl   $0x10,0x10(%esi)
45f6b3:	7e 63                	jle    0x45f718
45f6b5:	6a ff                	push   $0xffffffff
45f6b7:	6a 00                	push   $0x0
45f6b9:	8b ce                	mov    %esi,%ecx
45f6bb:	e8 a0 fb ff ff       	call   0x45f260
45f6c0:	8b 5e 04             	mov    0x4(%esi),%ebx
45f6c3:	8b d0                	mov    %eax,%edx
45f6c5:	85 d2                	test   %edx,%edx
45f6c7:	74 46                	je     0x45f70f
45f6c9:	8b ca                	mov    %edx,%ecx
45f6cb:	b8 00 00 00 00       	mov    $0x0,%eax
45f6d0:	2b cb                	sub    %ebx,%ecx
45f6d2:	01 4e 10             	add    %ecx,0x10(%esi)
45f6d5:	8d 4a 10             	lea    0x10(%edx),%ecx
45f6d8:	0f 48 46 10          	cmovs  0x10(%esi),%eax
45f6dc:	03 c3                	add    %ebx,%eax
45f6de:	2b d9                	sub    %ecx,%ebx
45f6e0:	83 c3 10             	add    $0x10,%ebx
45f6e3:	89 06                	mov    %eax,(%esi)
45f6e5:	89 4d fc             	mov    %ecx,-0x4(%ebp)
45f6e8:	3b fb                	cmp    %ebx,%edi
45f6ea:	7e 0b                	jle    0x45f6f7
45f6ec:	83 7e 08 00          	cmpl   $0x0,0x8(%esi)
45f6f0:	74 26                	je     0x45f718
45f6f2:	8b 55 f8             	mov    -0x8(%ebp),%edx
45f6f5:	eb ad                	jmp    0x45f6a4
45f6f7:	57                   	push   %edi
45f6f8:	51                   	push   %ecx
45f6f9:	8b 4d f8             	mov    -0x8(%ebp),%ecx
45f6fc:	e8 7f 97 ff ff       	call   0x458e80
45f701:	8b 45 fc             	mov    -0x4(%ebp),%eax
45f704:	03 c7                	add    %edi,%eax
45f706:	5f                   	pop    %edi
45f707:	5e                   	pop    %esi
45f708:	5b                   	pop    %ebx
45f709:	8b e5                	mov    %ebp,%esp
45f70b:	5d                   	pop    %ebp
45f70c:	c2 0c 00             	ret    $0xc
45f70f:	c7 46 3c 01 00 00 00 	movl   $0x1,0x3c(%esi)
45f716:	89 1e                	mov    %ebx,(%esi)
45f718:	5f                   	pop    %edi
45f719:	5e                   	pop    %esi
45f71a:	33 c0                	xor    %eax,%eax
45f71c:	5b                   	pop    %ebx
45f71d:	8b e5                	mov    %ebp,%esp
45f71f:	5d                   	pop    %ebp
45f720:	c2 0c 00             	ret    $0xc
45f723:	cc                   	int3
45f724:	cc                   	int3
45f725:	cc                   	int3
45f726:	cc                   	int3
45f727:	cc                   	int3
45f728:	cc                   	int3
45f729:	cc                   	int3
45f72a:	cc                   	int3
45f72b:	cc                   	int3
45f72c:	cc                   	int3
45f72d:	cc                   	int3
45f72e:	cc                   	int3
45f72f:	cc                   	int3
45f730:	55                   	push   %ebp
45f731:	8b ec                	mov    %esp,%ebp
45f733:	83 ec 08             	sub    $0x8,%esp
45f736:	8b 45 0c             	mov    0xc(%ebp),%eax
45f739:	53                   	push   %ebx
45f73a:	8b 5d 08             	mov    0x8(%ebp),%ebx
45f73d:	89 45 fc             	mov    %eax,-0x4(%ebp)
45f740:	8d 45 fc             	lea    -0x4(%ebp),%eax
45f743:	56                   	push   %esi
45f744:	50                   	push   %eax
45f745:	8b f1                	mov    %ecx,%esi
45f747:	e8 94 00 00 00       	call   0x45f7e0
45f74c:	8b 55 fc             	mov    -0x4(%ebp),%edx
45f74f:	83 c4 04             	add    $0x4,%esp
45f752:	85 d2                	test   %edx,%edx
45f754:	75 0a                	jne    0x45f760
45f756:	5e                   	pop    %esi
45f757:	33 c0                	xor    %eax,%eax
45f759:	5b                   	pop    %ebx
45f75a:	8b e5                	mov    %ebp,%esp
45f75c:	5d                   	pop    %ebp
45f75d:	c2 08 00             	ret    $0x8
45f760:	2b 46 04             	sub    0x4(%esi),%eax
45f763:	57                   	push   %edi
45f764:	8d 3c 10             	lea    (%eax,%edx,1),%edi
45f767:	33 c0                	xor    %eax,%eax
45f769:	85 ff                	test   %edi,%edi
45f76b:	89 7d fc             	mov    %edi,-0x4(%ebp)
45f76e:	0f 48 c7             	cmovs  %edi,%eax
45f771:	8d 7e 10             	lea    0x10(%esi),%edi
45f774:	03 46 04             	add    0x4(%esi),%eax
45f777:	83 46 44 ff          	addl   $0xffffffff,0x44(%esi)
45f77b:	89 06                	mov    %eax,(%esi)
45f77d:	8b 07                	mov    (%edi),%eax
45f77f:	89 45 f8             	mov    %eax,-0x8(%ebp)
45f782:	8b 45 fc             	mov    -0x4(%ebp),%eax
45f785:	89 07                	mov    %eax,(%edi)
45f787:	78 3f                	js     0x45f7c8
45f789:	8b 03                	mov    (%ebx),%eax
45f78b:	8b cb                	mov    %ebx,%ecx
45f78d:	56                   	push   %esi
45f78e:	52                   	push   %edx
45f78f:	ff 50 28             	call   *0x28(%eax)
45f792:	8b d0                	mov    %eax,%edx
45f794:	85 d2                	test   %edx,%edx
45f796:	74 30                	je     0x45f7c8
45f798:	ff 46 44             	incl   0x44(%esi)
45f79b:	83 7e 3c 00          	cmpl   $0x0,0x3c(%esi)
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