44d5f0:	85 c0                	test   %eax,%eax
44d5f2:	74 2b                	je     0x44d61f
44d5f4:	8b 44 24 3c          	mov    0x3c(%esp),%eax
44d5f8:	8b 54 24 14          	mov    0x14(%esp),%edx
44d5fc:	8b 0c 82             	mov    (%edx,%eax,4),%ecx
44d5ff:	8d 14 82             	lea    (%edx,%eax,4),%edx
44d602:	8d 41 01             	lea    0x1(%ecx),%eax
44d605:	89 02                	mov    %eax,(%edx)
44d607:	3b c1                	cmp    %ecx,%eax
44d609:	73 14                	jae    0x44d61f
44d60b:	b9 01 00 00 00       	mov    $0x1,%ecx
44d610:	3b e9                	cmp    %ecx,%ebp
44d612:	76 0b                	jbe    0x44d61f
44d614:	83 04 8a 01          	addl   $0x1,(%edx,%ecx,4)
44d618:	75 05                	jne    0x44d61f
44d61a:	41                   	inc    %ecx
44d61b:	3b cd                	cmp    %ebp,%ecx
44d61d:	72 f5                	jb     0x44d614
44d61f:	5f                   	pop    %edi
44d620:	5e                   	pop    %esi
44d621:	5d                   	pop    %ebp
44d622:	5b                   	pop    %ebx
44d623:	83 c4 24             	add    $0x24,%esp
44d626:	c3                   	ret
44d627:	cc                   	int3
44d628:	cc                   	int3
44d629:	cc                   	int3
44d62a:	cc                   	int3
44d62b:	cc                   	int3
44d62c:	cc                   	int3
44d62d:	cc                   	int3
44d62e:	cc                   	int3
44d62f:	cc                   	int3
44d630:	51                   	push   %ecx
44d631:	53                   	push   %ebx
44d632:	55                   	push   %ebp
44d633:	56                   	push   %esi
44d634:	8b 74 24 18          	mov    0x18(%esp),%esi
44d638:	8b d9                	mov    %ecx,%ebx
44d63a:	89 5c 24 0c          	mov    %ebx,0xc(%esp)
44d63e:	8b ea                	mov    %edx,%ebp
44d640:	57                   	push   %edi
44d641:	83 fe 02             	cmp    $0x2,%esi
44d644:	0f 85 b6 00 00 00    	jne    0x44d700
44d64a:	8b 7c 24 18          	mov    0x18(%esp),%edi
44d64e:	ba 03 00 00 00       	mov    $0x3,%edx
44d653:	8b 3f                	mov    (%edi),%edi
44d655:	8b f7                	mov    %edi,%esi
44d657:	83 e6 07             	and    $0x7,%esi
44d65a:	66 0f 1f 44 00 00    	nopw   0x0(%eax,%eax,1)
44d660:	8b c6                	mov    %esi,%eax
44d662:	b9 02 00 00 00       	mov    $0x2,%ecx
44d667:	0f af c7             	imul   %edi,%eax
44d66a:	03 d2                	add    %edx,%edx
44d66c:	2b c8                	sub    %eax,%ecx
44d66e:	0f af f1             	imul   %ecx,%esi
44d671:	83 fa 20             	cmp    $0x20,%edx
44d674:	72 ea                	jb     0x44d660
44d676:	ff 74 24 18          	push   0x18(%esp)
44d67a:	89 75 00             	mov    %esi,0x0(%ebp)
44d67d:	8d 7d 08             	lea    0x8(%ebp),%edi
44d680:	8b 35 dc 95 4c 00    	mov    0x4c95dc,%esi
44d686:	8b ce                	mov    %esi,%ecx
44d688:	55                   	push   %ebp
44d689:	57                   	push   %edi
44d68a:	c7 45 04 00 00 00 00 	movl   $0x0,0x4(%ebp)
44d691:	ff 15 d4 e2 49 00    	call   *0x49e2d4
44d697:	ff d6                	call   *%esi
44d699:	8b 0f                	mov    (%edi),%ecx
44d69b:	83 c4 0c             	add    $0xc,%esp
44d69e:	8d 41 ff             	lea    -0x1(%ecx),%eax
44d6a1:	89 07                	mov    %eax,(%edi)
44d6a3:	3b c1                	cmp    %ecx,%eax
44d6a5:	76 1c                	jbe    0x44d6c3
44d6a7:	ba 01 00 00 00       	mov    $0x1,%edx
44d6ac:	0f 1f 40 00          	nopl   0x0(%eax)
44d6b0:	8b 0c 97             	mov    (%edi,%edx,4),%ecx
44d6b3:	8d 41 ff             	lea    -0x1(%ecx),%eax
44d6b6:	89 04 97             	mov    %eax,(%edi,%edx,4)
44d6b9:	85 c9                	test   %ecx,%ecx
44d6bb:	75 06                	jne    0x44d6c3
44d6bd:	42                   	inc    %edx
44d6be:	83 fa 02             	cmp    $0x2,%edx
44d6c1:	72 ed                	jb     0x44d6b0
44d6c3:	8b 0f                	mov    (%edi),%ecx
44d6c5:	f7 57 04             	notl   0x4(%edi)
44d6c8:	f7 d1                	not    %ecx
44d6ca:	8d 41 02             	lea    0x2(%ecx),%eax
44d6cd:	89 07                	mov    %eax,(%edi)
44d6cf:	3b c1                	cmp    %ecx,%eax
44d6d1:	73 11                	jae    0x44d6e4
44d6d3:	b9 01 00 00 00       	mov    $0x1,%ecx
44d6d8:	83 04 8f 01          	addl   $0x1,(%edi,%ecx,4)
44d6dc:	75 06                	jne    0x44d6e4
44d6de:	41                   	inc    %ecx
44d6df:	83 f9 02             	cmp    $0x2,%ecx
44d6e2:	72 f4                	jb     0x44d6d8
44d6e4:	8b 35 dc 95 4c 00    	mov    0x4c95dc,%esi
44d6ea:	8b ce                	mov    %esi,%ecx
44d6ec:	57                   	push   %edi
44d6ed:	55                   	push   %ebp
44d6ee:	53                   	push   %ebx
44d6ef:	ff 15 d4 e2 49 00    	call   *0x49e2d4
44d6f5:	ff d6                	call   *%esi
44d6f7:	83 c4 0c             	add    $0xc,%esp
44d6fa:	5f                   	pop    %edi
44d6fb:	5e                   	pop    %esi
44d6fc:	5d                   	pop    %ebp
44d6fd:	5b                   	pop    %ebx
44d6fe:	59                   	pop    %ecx
44d6ff:	c3                   	ret
44d700:	d1 ee                	shr    $1,%esi
44d702:	56                   	push   %esi
44d703:	ff 74 24 1c          	push   0x1c(%esp)
44d707:	89 74 24 24          	mov    %esi,0x24(%esp)
44d70b:	e8 20 ff ff ff       	call   0x44d630
44d710:	8d 4e ff             	lea    -0x1(%esi),%ecx
44d713:	c7 45 00 01 00 00 00 	movl   $0x1,0x0(%ebp)
44d71a:	83 c4 08             	add    $0x8,%esp
44d71d:	85 c9                	test   %ecx,%ecx
44d71f:	74 07                	je     0x44d728
44d721:	8d 7d 04             	lea    0x4(%ebp),%edi
44d724:	33 c0                	xor    %eax,%eax
44d726:	f3 ab                	rep stos %eax,%es:(%edi)
44d728:	56                   	push   %esi
44d729:	ff 74 24 1c          	push   0x1c(%esp)
44d72d:	8d 3c b5 00 00 00 00 	lea    0x0(,%esi,4),%edi
44d734:	ff 74 24 18          	push   0x18(%esp)
44d738:	03 fd                	add    %ebp,%edi
44d73a:	8d 1c b3             	lea    (%ebx,%esi,4),%ebx
44d73d:	55                   	push   %ebp
44d73e:	8b d7                	mov    %edi,%edx
44d740:	8b cb                	mov    %ebx,%ecx
44d742:	e8 b9 f8 ff ff       	call   0x44d000
44d747:	8b 44 24 28          	mov    0x28(%esp),%eax
44d74b:	8b d7                	mov    %edi,%edx
44d74d:	56                   	push   %esi
44d74e:	8b cd                	mov    %ebp,%ecx
44d750:	8d 04 b0             	lea    (%eax,%esi,4),%eax
44d753:	50                   	push   %eax
44d754:	ff 74 24 28          	push   0x28(%esp)
44d758:	e8 c3 f7 ff ff       	call   0x44cf20
44d75d:	8b 35 58 4e 4c 00    	mov    0x4c4e58,%esi
44d763:	83 c4 1c             	add    $0x1c,%esp
44d766:	8b ce                	mov    %esi,%ecx
44d768:	55                   	push   %ebp
44d769:	53                   	push   %ebx
44d76a:	ff 15 d4 e2 49 00    	call   *0x49e2d4
44d770:	8b 4c 24 24          	mov    0x24(%esp),%ecx
44d774:	8b d5                	mov    %ebp,%edx
44d776:	ff d6                	call   *%esi
44d778:	8b 54 24 1c          	mov    0x1c(%esp),%edx
44d77c:	8b cd                	mov    %ebp,%ecx
44d77e:	e8 ad 4c ff ff       	call   0x442430
44d783:	52                   	push   %edx
44d784:	55                   	push   %ebp
44d785:	ff 74 24 18          	push   0x18(%esp)
44d789:	8b d7                	mov    %edi,%edx
44d78b:	8b cb                	mov    %ebx,%ecx
44d78d:	e8 8e f7 ff ff       	call   0x44cf20
44d792:	83 c4 0c             	add    $0xc,%esp
44d795:	5f                   	pop    %edi
44d796:	5e                   	pop    %esi
44d797:	5d                   	pop    %ebp
44d798:	5b                   	pop    %ebx
44d799:	59                   	pop    %ecx
44d79a:	c3                   	ret
44d79b:	cc                   	int3
44d79c:	cc                   	int3
44d79d:	cc                   	int3
44d79e:	cc                   	int3
44d79f:	cc                   	int3
44d7a0:	83 ec 08             	sub    $0x8,%esp
44d7a3:	53                   	push   %ebx
44d7a4:	55                   	push   %ebp
44d7a5:	56                   	push   %esi
44d7a6:	8b 74 24 18          	mov    0x18(%esp),%esi
44d7aa:	8b da                	mov    %edx,%ebx
44d7ac:	57                   	push   %edi
44d7ad:	8b 7c 24 28          	mov    0x28(%esp),%edi
44d7b1:	8b c1                	mov    %ecx,%eax
44d7b3:	57                   	push   %edi
44d7b4:	ff 74 24 28          	push   0x28(%esp)
44d7b8:	89 5c 24 18          	mov    %ebx,0x18(%esp)
44d7bc:	56                   	push   %esi
44d7bd:	89 44 24 20          	mov    %eax,0x20(%esp)
44d7c1:	e8 5a f7 ff ff       	call   0x44cf20
44d7c6:	8b 4c 24 1c          	mov    0x1c(%esp),%ecx
44d7ca:	8d 2c bd 00 00 00 00 	lea    0x0(,%edi,4),%ebp
44d7d1:	57                   	push   %edi
44d7d2:	03 eb                	add    %ebx,%ebp
44d7d4:	8b 5c 24 30          	mov    0x30(%esp),%ebx
44d7d8:	53                   	push   %ebx
44d7d9:	ff 74 24 28          	push   0x28(%esp)
44d7dd:	8b d5                	mov    %ebp,%edx
44d7df:	56                   	push   %esi
44d7e0:	e8 1b f8 ff ff       	call   0x44d000
44d7e5:	83 c4 1c             	add    $0x1c,%esp
44d7e8:	8d 04 bd 00 00 00 00 	lea    0x0(,%edi,4),%eax
44d7ef:	03 c6                	add    %esi,%eax
44d7f1:	8b 35 5c 4e 4c 00    	mov    0x4c4e5c,%esi
44d7f7:	8b ce                	mov    %esi,%ecx
44d7f9:	ff 74 24 10          	push   0x10(%esp)
44d7fd:	50                   	push   %eax
44d7fe:	ff 15 d4 e2 49 00    	call   *0x49e2d4
44d804:	8b 54 24 18          	mov    0x18(%esp),%edx
44d808:	8b cf                	mov    %edi,%ecx
44d80a:	ff d6                	call   *%esi
44d80c:	8b 35 58 4e 4c 00    	mov    0x4c4e58,%esi
44d812:	8b f8                	mov    %eax,%edi
44d814:	53                   	push   %ebx
44d815:	ff 74 24 14          	push   0x14(%esp)
44d819:	8b ce                	mov    %esi,%ecx
44d81b:	ff 15 d4 e2 49 00    	call   *0x49e2d4
44d821:	8b 5c 24 30          	mov    0x30(%esp),%ebx
44d825:	8b d5                	mov    %ebp,%edx
44d827:	8b cb                	mov    %ebx,%ecx
44d829:	ff d6                	call   *%esi
44d82b:	8b 44 24 10          	mov    0x10(%esp),%eax
44d82f:	f7 df                	neg    %edi
44d831:	23 fb                	and    %ebx,%edi
44d833:	8d 14 b8             	lea    (%eax,%edi,4),%edx
44d836:	8b 44 24 14          	mov    0x14(%esp),%eax
44d83a:	3b c2                	cmp    %edx,%eax
44d83c:	74 12                	je     0x44d850
44d83e:	8d 0c 9d 00 00 00 00 	lea    0x0(,%ebx,4),%ecx
44d845:	51                   	push   %ecx
44d846:	52                   	push   %edx
44d847:	50                   	push   %eax
44d848:	e8 d3 dd 01 00       	call   0x46b620
44d84d:	83 c4 0c             	add    $0xc,%esp
44d850:	5f                   	pop    %edi
44d851:	5e                   	pop    %esi
44d852:	5d                   	pop    %ebp
44d853:	5b                   	pop    %ebx
44d854:	83 c4 08             	add    $0x8,%esp
44d857:	c3                   	ret
44d858:	cc                   	int3
44d859:	cc                   	int3
44d85a:	cc                   	int3
44d85b:	cc                   	int3
44d85c:	cc                   	int3
44d85d:	cc                   	int3
44d85e:	cc                   	int3
44d85f:	cc                   	int3
44d860:	55                   	push   %ebp
44d861:	8b ec                	mov    %esp,%ebp
44d863:	83 e4 f8             	and    $0xfffffff8,%esp
44d866:	83 ec 1c             	sub    $0x1c,%esp
44d869:	8b 45 08             	mov    0x8(%ebp),%eax
44d86c:	53                   	push   %ebx
44d86d:	56                   	push   %esi
44d86e:	8b 72 0c             	mov    0xc(%edx),%esi
44d871:	8b 18                	mov    (%eax),%ebx
44d873:	8b 40 04             	mov    0x4(%eax),%eax
44d876:	89 44 24 08          	mov    %eax,0x8(%esp)
44d87a:	8b 02                	mov    (%edx),%eax
44d87c:	89 44 24 0c          	mov    %eax,0xc(%esp)
44d880:	8b 42 04             	mov    0x4(%edx),%eax
44d883:	57                   	push   %edi
44d884:	89 44 24 14          	mov    %eax,0x14(%esp)
44d888:	8b f9                	mov    %ecx,%edi
44d88a:	8b 4a 08             	mov    0x8(%edx),%ecx
44d88d:	8b c3                	mov    %ebx,%eax
44d88f:	8b 54 24 0c          	mov    0xc(%esp),%edx
44d893:	0b c2                	or     %edx,%eax
44d895:	75 0c                	jne    0x44d8a3
44d897:	89 0f                	mov    %ecx,(%edi)
44d899:	89 77 04             	mov    %esi,0x4(%edi)
44d89c:	5f                   	pop    %edi
44d89d:	5e                   	pop    %esi
44d89e:	5b                   	pop    %ebx
44d89f:	8b e5                	mov    %ebp,%esp
44d8a1:	5d                   	pop    %ebp
44d8a2:	c3                   	ret
44d8a3:	8b 44 24 10          	mov    0x10(%esp),%eax
44d8a7:	51                   	push   %ecx
44d8a8:	89 44 24 1c          	mov    %eax,0x1c(%esp)
44d8ac:	8b 44 24 18          	mov    0x18(%esp),%eax
44d8b0:	89 4c 24 24          	mov    %ecx,0x24(%esp)
44d8b4:	8d 4c 24 20          	lea    0x20(%esp),%ecx
44d8b8:	52                   	push   %edx
44d8b9:	8b d3                	mov    %ebx,%edx
44d8bb:	89 44 24 24          	mov    %eax,0x24(%esp)
44d8bf:	89 74 24 2c          	mov    %esi,0x2c(%esp)
44d8c3:	e8 d8 63 00 00       	call   0x453ca0
44d8c8:	83 c4 04             	add    $0x4,%esp
44d8cb:	8d 4c 24 1c          	lea    0x1c(%esp),%ecx
44d8cf:	8b d3                	mov    %ebx,%edx
44d8d1:	8b f0                	mov    %eax,%esi
44d8d3:	ff 74 24 10          	push   0x10(%esp)
44d8d7:	e8 c4 63 00 00       	call   0x453ca0
44d8dc:	83 c4 08             	add    $0x8,%esp
44d8df:	89 77 04             	mov    %esi,0x4(%edi)
44d8e2:	89 07                	mov    %eax,(%edi)
44d8e4:	5f                   	pop    %edi
44d8e5:	5e                   	pop    %esi
44d8e6:	5b                   	pop    %ebx
44d8e7:	8b e5                	mov    %ebp,%esp
44d8e9:	5d                   	pop    %ebp
44d8ea:	c3                   	ret
44d8eb:	cc                   	int3
44d8ec:	cc                   	int3
44d8ed:	cc                   	int3
44d8ee:	cc                   	int3
44d8ef:	cc                   	int3
44d8f0:	83 ec 30             	sub    $0x30,%esp
44d8f3:	89 4c 24 18          	mov    %ecx,0x18(%esp)
44d8f7:	8b 4c 24 3c          	mov    0x3c(%esp),%ecx
44d8fb:	53                   	push   %ebx
44d8fc:	55                   	push   %ebp
44d8fd:	8b 6c 24 3c          	mov    0x3c(%esp),%ebp
44d901:	8d 41 02             	lea    0x2(%ecx),%eax
44d904:	89 54 24 18          	mov    %edx,0x18(%esp)
44d908:	8b 54 24 48          	mov    0x48(%esp),%edx
44d90c:	8d 1c 85 00 00 00 00 	lea    0x0(,%eax,4),%ebx
44d913:	89 44 24 08          	mov    %eax,0x8(%esp)
44d917:	03 dd                	add    %ebp,%ebx
44d919:	8d 41 02             	lea    0x2(%ecx),%eax
44d91c:	33 c9                	xor    %ecx,%ecx
44d91e:	56                   	push   %esi
44d91f:	8b 74 24 50          	mov    0x50(%esp),%esi
44d923:	03 c6                	add    %esi,%eax
44d925:	57                   	push   %edi
44d926:	8d 04 85 00 00 00 00 	lea    0x0(,%eax,4),%eax
44d92d:	03 c5                	add    %ebp,%eax
44d92f:	89 44 24 24          	mov    %eax,0x24(%esp)
44d933:	8d 04 b5 00 00 00 00 	lea    0x0(,%esi,4),%eax
44d93a:	39 4c 10 fc          	cmp    %ecx,-0x4(%eax,%edx,1)
44d93e:	c7 44 18 fc 00 00 00 	movl   $0x0,-0x4(%eax,%ebx,1)
44d945:	00
44d946:	0f 94 c1             	sete   %cl
44d949:	c7 03 00 00 00 00    	movl   $0x0,(%ebx)
44d94f:	8d 04 8d 00 00 00 00 	lea    0x0(,%ecx,4),%eax
44d956:	8d 3c 18             	lea    (%eax,%ebx,1),%edi
44d959:	89 44 24 14          	mov    %eax,0x14(%esp)
44d95d:	3b fa                	cmp    %edx,%edi
44d95f:	74 12                	je     0x44d973
44d961:	8b c6                	mov    %esi,%eax
44d963:	2b c1                	sub    %ecx,%eax
44d965:	c1 e0 02             	shl    $0x2,%eax
44d968:	50                   	push   %eax
44d969:	52                   	push   %edx
44d96a:	57                   	push   %edi
44d96b:	e8 b0 dc 01 00       	call   0x46b620
44d970:	83 c4 0c             	add    $0xc,%esp
44d973:	8d 04 b5 00 00 00 00 	lea    0x0(,%esi,4),%eax
44d97a:	8b 44 18 fc          	mov    -0x4(%eax,%ebx,1),%eax
44d97e:	89 44 24 1c          	mov    %eax,0x1c(%esp)
44d982:	85 c0                	test   %eax,%eax