43a52d:	8b ce                	mov    %esi,%ecx
43a52f:	3b f2                	cmp    %edx,%esi
43a531:	7c 32                	jl     0x43a565
43a533:	8b c1                	mov    %ecx,%eax
43a535:	46                   	inc    %esi
43a536:	2b c2                	sub    %edx,%eax
43a538:	8d 34 b3             	lea    (%ebx,%esi,4),%esi
43a53b:	8d 3c 87             	lea    (%edi,%eax,4),%edi
43a53e:	83 c7 04             	add    $0x4,%edi
43a541:	8b 07                	mov    (%edi),%eax
43a543:	3b 06                	cmp    (%esi),%eax
43a545:	75 0d                	jne    0x43a554
43a547:	49                   	dec    %ecx
43a548:	83 ef 04             	sub    $0x4,%edi
43a54b:	83 ee 04             	sub    $0x4,%esi
43a54e:	3b ca                	cmp    %edx,%ecx
43a550:	7d ef                	jge    0x43a541
43a552:	eb 11                	jmp    0x43a565
43a554:	8b 75 0c             	mov    0xc(%ebp),%esi
43a557:	8b c1                	mov    %ecx,%eax
43a559:	2b c2                	sub    %edx,%eax
43a55b:	8b 44 86 04          	mov    0x4(%esi,%eax,4),%eax
43a55f:	3b 44 8b 04          	cmp    0x4(%ebx,%ecx,4),%eax
43a563:	73 01                	jae    0x43a566
43a565:	42                   	inc    %edx
43a566:	85 d2                	test   %edx,%edx
43a568:	75 0b                	jne    0x43a575
43a56a:	5e                   	pop    %esi
43a56b:	5f                   	pop    %edi
43a56c:	33 c0                	xor    %eax,%eax
43a56e:	33 d2                	xor    %edx,%edx
43a570:	5b                   	pop    %ebx
43a571:	8b e5                	mov    %ebp,%esp
43a573:	5d                   	pop    %ebp
43a574:	c3                   	ret
43a575:	8b 7d c8             	mov    -0x38(%ebp),%edi
43a578:	8b 45 0c             	mov    0xc(%ebp),%eax
43a57b:	8b 34 b8             	mov    (%eax,%edi,4),%esi
43a57e:	8b 44 b8 fc          	mov    -0x4(%eax,%edi,4),%eax
43a582:	89 45 e0             	mov    %eax,-0x20(%ebp)
43a585:	0f bd c6             	bsr    %esi,%eax
43a588:	89 75 cc             	mov    %esi,-0x34(%ebp)
43a58b:	74 09                	je     0x43a596
43a58d:	b9 1f 00 00 00       	mov    $0x1f,%ecx
43a592:	2b c8                	sub    %eax,%ecx
43a594:	eb 05                	jmp    0x43a59b
43a596:	b9 20 00 00 00       	mov    $0x20,%ecx
43a59b:	b8 20 00 00 00       	mov    $0x20,%eax
43a5a0:	89 4d dc             	mov    %ecx,-0x24(%ebp)
43a5a3:	2b c1                	sub    %ecx,%eax
43a5a5:	89 45 c4             	mov    %eax,-0x3c(%ebp)
43a5a8:	85 c9                	test   %ecx,%ecx
43a5aa:	74 29                	je     0x43a5d5
43a5ac:	8b 45 e0             	mov    -0x20(%ebp),%eax
43a5af:	8b 4d c4             	mov    -0x3c(%ebp),%ecx
43a5b2:	d3 e8                	shr    %cl,%eax
43a5b4:	8b 4d dc             	mov    -0x24(%ebp),%ecx
43a5b7:	d3 65 e0             	shll   %cl,-0x20(%ebp)
43a5ba:	d3 e6                	shl    %cl,%esi
43a5bc:	0b f0                	or     %eax,%esi
43a5be:	89 75 cc             	mov    %esi,-0x34(%ebp)
43a5c1:	83 ff 02             	cmp    $0x2,%edi
43a5c4:	76 0f                	jbe    0x43a5d5
43a5c6:	8b 75 0c             	mov    0xc(%ebp),%esi
43a5c9:	8b 4d c4             	mov    -0x3c(%ebp),%ecx
43a5cc:	8b 44 be f8          	mov    -0x8(%esi,%edi,4),%eax
43a5d0:	d3 e8                	shr    %cl,%eax
43a5d2:	09 45 e0             	or     %eax,-0x20(%ebp)
43a5d5:	33 f6                	xor    %esi,%esi
43a5d7:	c7 45 b8 00 00 00 00 	movl   $0x0,-0x48(%ebp)
43a5de:	83 c2 ff             	add    $0xffffffff,%edx
43a5e1:	89 55 e4             	mov    %edx,-0x1c(%ebp)
43a5e4:	0f 88 2c 02 00 00    	js     0x43a816
43a5ea:	8d 4b 04             	lea    0x4(%ebx),%ecx
43a5ed:	8d 0c 91             	lea    (%ecx,%edx,4),%ecx
43a5f0:	89 4d f0             	mov    %ecx,-0x10(%ebp)
43a5f3:	8d 04 3a             	lea    (%edx,%edi,1),%eax
43a5f6:	8d 4b fc             	lea    -0x4(%ebx),%ecx
43a5f9:	89 45 f8             	mov    %eax,-0x8(%ebp)
43a5fc:	8d 0c 81             	lea    (%ecx,%eax,4),%ecx
43a5ff:	89 4d b4             	mov    %ecx,-0x4c(%ebp)
43a602:	3b 45 f4             	cmp    -0xc(%ebp),%eax
43a605:	77 05                	ja     0x43a60c
43a607:	8b 41 08             	mov    0x8(%ecx),%eax
43a60a:	eb 02                	jmp    0x43a60e
43a60c:	33 c0                	xor    %eax,%eax
43a60e:	83 7d dc 00          	cmpl   $0x0,-0x24(%ebp)
43a612:	8b 51 04             	mov    0x4(%ecx),%edx
43a615:	8b 09                	mov    (%ecx),%ecx
43a617:	89 45 d0             	mov    %eax,-0x30(%ebp)
43a61a:	c7 45 d8 00 00 00 00 	movl   $0x0,-0x28(%ebp)
43a621:	89 45 fc             	mov    %eax,-0x4(%ebp)
43a624:	89 4d ec             	mov    %ecx,-0x14(%ebp)
43a627:	76 49                	jbe    0x43a672
43a629:	8b f9                	mov    %ecx,%edi
43a62b:	8b c2                	mov    %edx,%eax
43a62d:	8b 4d c4             	mov    -0x3c(%ebp),%ecx
43a630:	33 f6                	xor    %esi,%esi
43a632:	8b 55 fc             	mov    -0x4(%ebp),%edx
43a635:	d3 ef                	shr    %cl,%edi
43a637:	8b 4d dc             	mov    -0x24(%ebp),%ecx
43a63a:	e8 e1 f7 00 00       	call   0x449e20
43a63f:	8b 4d dc             	mov    -0x24(%ebp),%ecx
43a642:	0b f2                	or     %edx,%esi
43a644:	0b f8                	or     %eax,%edi
43a646:	8b c6                	mov    %esi,%eax
43a648:	8b 75 ec             	mov    -0x14(%ebp),%esi
43a64b:	8b d7                	mov    %edi,%edx
43a64d:	d3 e6                	shl    %cl,%esi
43a64f:	83 7d f8 03          	cmpl   $0x3,-0x8(%ebp)
43a653:	89 45 fc             	mov    %eax,-0x4(%ebp)
43a656:	89 75 ec             	mov    %esi,-0x14(%ebp)
43a659:	72 17                	jb     0x43a672
43a65b:	8b 45 c8             	mov    -0x38(%ebp),%eax
43a65e:	03 45 e4             	add    -0x1c(%ebp),%eax
43a661:	8b 4d c4             	mov    -0x3c(%ebp),%ecx
43a664:	8b 44 83 f8          	mov    -0x8(%ebx,%eax,4),%eax
43a668:	d3 e8                	shr    %cl,%eax
43a66a:	0b f0                	or     %eax,%esi
43a66c:	8b 45 fc             	mov    -0x4(%ebp),%eax
43a66f:	89 75 ec             	mov    %esi,-0x14(%ebp)
43a672:	6a 00                	push   $0x0
43a674:	ff 75 cc             	push   -0x34(%ebp)
43a677:	50                   	push   %eax
43a678:	52                   	push   %edx
43a679:	e8 72 f5 00 00       	call   0x449bf0
43a67e:	89 5d d8             	mov    %ebx,-0x28(%ebp)
43a681:	33 f6                	xor    %esi,%esi
43a683:	8b d8                	mov    %eax,%ebx
43a685:	89 75 d8             	mov    %esi,-0x28(%ebp)
43a688:	8b c2                	mov    %edx,%eax
43a68a:	89 5d fc             	mov    %ebx,-0x4(%ebp)
43a68d:	89 45 e8             	mov    %eax,-0x18(%ebp)
43a690:	8b f9                	mov    %ecx,%edi
43a692:	89 5d bc             	mov    %ebx,-0x44(%ebp)
43a695:	89 45 c0             	mov    %eax,-0x40(%ebp)
43a698:	85 c0                	test   %eax,%eax
43a69a:	75 05                	jne    0x43a6a1
43a69c:	83 fb ff             	cmp    $0xffffffff,%ebx
43a69f:	76 2a                	jbe    0x43a6cb
43a6a1:	6a 00                	push   $0x0
43a6a3:	ff 75 cc             	push   -0x34(%ebp)
43a6a6:	83 c3 01             	add    $0x1,%ebx
43a6a9:	83 d0 ff             	adc    $0xffffffff,%eax
43a6ac:	50                   	push   %eax
43a6ad:	53                   	push   %ebx
43a6ae:	e8 cd 39 ff ff       	call   0x42e080
43a6b3:	03 f8                	add    %eax,%edi
43a6b5:	13 f2                	adc    %edx,%esi
43a6b7:	83 cb ff             	or     $0xffffffff,%ebx
43a6ba:	33 c0                	xor    %eax,%eax
43a6bc:	89 75 d8             	mov    %esi,-0x28(%ebp)
43a6bf:	89 5d fc             	mov    %ebx,-0x4(%ebp)
43a6c2:	89 5d bc             	mov    %ebx,-0x44(%ebp)
43a6c5:	89 45 e8             	mov    %eax,-0x18(%ebp)
43a6c8:	89 45 c0             	mov    %eax,-0x40(%ebp)
43a6cb:	85 f6                	test   %esi,%esi
43a6cd:	77 50                	ja     0x43a71f
43a6cf:	72 05                	jb     0x43a6d6
43a6d1:	83 ff ff             	cmp    $0xffffffff,%edi
43a6d4:	77 49                	ja     0x43a71f
43a6d6:	50                   	push   %eax
43a6d7:	53                   	push   %ebx
43a6d8:	33 c9                	xor    %ecx,%ecx
43a6da:	8b f7                	mov    %edi,%esi
43a6dc:	0b 4d ec             	or     -0x14(%ebp),%ecx
43a6df:	6a 00                	push   $0x0
43a6e1:	ff 75 e0             	push   -0x20(%ebp)
43a6e4:	89 4d fc             	mov    %ecx,-0x4(%ebp)
43a6e7:	e8 94 39 ff ff       	call   0x42e080
43a6ec:	3b d6                	cmp    %esi,%edx
43a6ee:	72 29                	jb     0x43a719
43a6f0:	77 05                	ja     0x43a6f7
43a6f2:	3b 45 fc             	cmp    -0x4(%ebp),%eax
43a6f5:	76 22                	jbe    0x43a719
43a6f7:	8b 45 e8             	mov    -0x18(%ebp),%eax
43a6fa:	83 c3 ff             	add    $0xffffffff,%ebx
43a6fd:	89 5d bc             	mov    %ebx,-0x44(%ebp)
43a700:	83 d0 ff             	adc    $0xffffffff,%eax
43a703:	03 7d cc             	add    -0x34(%ebp),%edi
43a706:	89 45 e8             	mov    %eax,-0x18(%ebp)
43a709:	83 55 d8 00          	adcl   $0x0,-0x28(%ebp)
43a70d:	89 45 c0             	mov    %eax,-0x40(%ebp)
43a710:	75 0a                	jne    0x43a71c
43a712:	83 ff ff             	cmp    $0xffffffff,%edi
43a715:	76 bf                	jbe    0x43a6d6
43a717:	eb 03                	jmp    0x43a71c
43a719:	8b 45 e8             	mov    -0x18(%ebp),%eax
43a71c:	89 5d fc             	mov    %ebx,-0x4(%ebp)
43a71f:	85 c0                	test   %eax,%eax
43a721:	75 08                	jne    0x43a72b
43a723:	85 db                	test   %ebx,%ebx
43a725:	0f 84 b4 00 00 00    	je     0x43a7df
43a72b:	8b 4d c8             	mov    -0x38(%ebp),%ecx
43a72e:	33 ff                	xor    %edi,%edi
43a730:	33 f6                	xor    %esi,%esi
43a732:	85 c9                	test   %ecx,%ecx
43a734:	74 55                	je     0x43a78b
43a736:	8b 45 0c             	mov    0xc(%ebp),%eax
43a739:	8b 5d f0             	mov    -0x10(%ebp),%ebx
43a73c:	83 c0 04             	add    $0x4,%eax
43a73f:	89 45 ec             	mov    %eax,-0x14(%ebp)
43a742:	89 4d f4             	mov    %ecx,-0xc(%ebp)
43a745:	8b 00                	mov    (%eax),%eax
43a747:	89 45 d8             	mov    %eax,-0x28(%ebp)
43a74a:	8b 45 c0             	mov    -0x40(%ebp),%eax
43a74d:	f7 65 d8             	mull   -0x28(%ebp)
43a750:	8b c8                	mov    %eax,%ecx
43a752:	8b 45 bc             	mov    -0x44(%ebp),%eax
43a755:	f7 65 d8             	mull   -0x28(%ebp)
43a758:	03 d1                	add    %ecx,%edx
43a75a:	03 f8                	add    %eax,%edi
43a75c:	8b 03                	mov    (%ebx),%eax
43a75e:	8b cf                	mov    %edi,%ecx
43a760:	13 f2                	adc    %edx,%esi
43a762:	8b fe                	mov    %esi,%edi
43a764:	33 f6                	xor    %esi,%esi
43a766:	3b c1                	cmp    %ecx,%eax
43a768:	73 05                	jae    0x43a76f
43a76a:	83 c7 01             	add    $0x1,%edi
43a76d:	13 f6                	adc    %esi,%esi
43a76f:	2b c1                	sub    %ecx,%eax
43a771:	89 03                	mov    %eax,(%ebx)
43a773:	83 c3 04             	add    $0x4,%ebx
43a776:	8b 45 ec             	mov    -0x14(%ebp),%eax
43a779:	83 c0 04             	add    $0x4,%eax
43a77c:	83 6d f4 01          	subl   $0x1,-0xc(%ebp)
43a780:	89 45 ec             	mov    %eax,-0x14(%ebp)
43a783:	75 c0                	jne    0x43a745
43a785:	8b 5d fc             	mov    -0x4(%ebp),%ebx
43a788:	8b 4d c8             	mov    -0x38(%ebp),%ecx
43a78b:	33 c0                	xor    %eax,%eax
43a78d:	3b c6                	cmp    %esi,%eax
43a78f:	77 47                	ja     0x43a7d8
43a791:	72 05                	jb     0x43a798
43a793:	39 7d d0             	cmp    %edi,-0x30(%ebp)
43a796:	73 40                	jae    0x43a7d8
43a798:	85 c9                	test   %ecx,%ecx
43a79a:	74 35                	je     0x43a7d1
43a79c:	8b 75 0c             	mov    0xc(%ebp),%esi
43a79f:	8b f9                	mov    %ecx,%edi
43a7a1:	8b 55 f0             	mov    -0x10(%ebp),%edx
43a7a4:	83 c6 04             	add    $0x4,%esi
43a7a7:	8b d8                	mov    %eax,%ebx
43a7a9:	8d a4 24 00 00 00 00 	lea    0x0(%esp),%esp
43a7b0:	8b 0a                	mov    (%edx),%ecx
43a7b2:	8d 76 04             	lea    0x4(%esi),%esi
43a7b5:	33 c0                	xor    %eax,%eax
43a7b7:	8d 52 04             	lea    0x4(%edx),%edx
43a7ba:	03 4e fc             	add    -0x4(%esi),%ecx
43a7bd:	13 c0                	adc    %eax,%eax
43a7bf:	03 cb                	add    %ebx,%ecx
43a7c1:	89 4a fc             	mov    %ecx,-0x4(%edx)
43a7c4:	83 d0 00             	adc    $0x0,%eax
43a7c7:	8b d8                	mov    %eax,%ebx
43a7c9:	83 ef 01             	sub    $0x1,%edi
43a7cc:	75 e2                	jne    0x43a7b0
43a7ce:	8b 5d fc             	mov    -0x4(%ebp),%ebx
43a7d1:	83 c3 ff             	add    $0xffffffff,%ebx
43a7d4:	83 55 e8 ff          	adcl   $0xffffffff,-0x18(%ebp)
43a7d8:	8b 45 f8             	mov    -0x8(%ebp),%eax
43a7db:	48                   	dec    %eax
43a7dc:	89 45 f4             	mov    %eax,-0xc(%ebp)
43a7df:	8b 75 b8             	mov    -0x48(%ebp),%esi
43a7e2:	33 c0                	xor    %eax,%eax
43a7e4:	8b 55 e4             	mov    -0x1c(%ebp),%edx
43a7e7:	03 c3                	add    %ebx,%eax
43a7e9:	8b 4d b4             	mov    -0x4c(%ebp),%ecx
43a7ec:	8b f8                	mov    %eax,%edi
43a7ee:	8b 45 f8             	mov    -0x8(%ebp),%eax
43a7f1:	83 d6 00             	adc    $0x0,%esi
43a7f4:	83 6d f0 04          	subl   $0x4,-0x10(%ebp)
43a7f8:	4a                   	dec    %edx
43a7f9:	8b 5d 08             	mov    0x8(%ebp),%ebx
43a7fc:	83 e9 04             	sub    $0x4,%ecx
43a7ff:	48                   	dec    %eax
43a800:	89 7d b8             	mov    %edi,-0x48(%ebp)
43a803:	89 55 e4             	mov    %edx,-0x1c(%ebp)
43a806:	89 4d b4             	mov    %ecx,-0x4c(%ebp)
43a809:	89 45 f8             	mov    %eax,-0x8(%ebp)
43a80c:	85 d2                	test   %edx,%edx
43a80e:	0f 89 ee fd ff ff    	jns    0x43a602
43a814:	eb 02                	jmp    0x43a818
43a816:	33 ff                	xor    %edi,%edi
43a818:	8b 55 f4             	mov    -0xc(%ebp),%edx
43a81b:	42                   	inc    %edx
43a81c:	8b c2                	mov    %edx,%eax
43a81e:	3b 03                	cmp    (%ebx),%eax
43a820:	73 1c                	jae    0x43a83e
43a822:	8d 48 01             	lea    0x1(%eax),%ecx
43a825:	8d 0c 8b             	lea    (%ebx,%ecx,4),%ecx
43a828:	eb 06                	jmp    0x43a830
43a82a:	8d 9b 00 00 00 00    	lea    0x0(%ebx),%ebx
43a830:	c7 01 00 00 00 00    	movl   $0x0,(%ecx)
43a836:	8d 49 04             	lea    0x4(%ecx),%ecx
43a839:	40                   	inc    %eax
43a83a:	3b 03                	cmp    (%ebx),%eax
43a83c:	72 f2                	jb     0x43a830
43a83e:	89 13                	mov    %edx,(%ebx)
43a840:	85 d2                	test   %edx,%edx
43a842:	74 0f                	je     0x43a853
43a844:	8b 0b                	mov    (%ebx),%ecx
43a846:	83 3c 8b 00          	cmpl   $0x0,(%ebx,%ecx,4)
43a84a:	75 07                	jne    0x43a853
43a84c:	83 c1 ff             	add    $0xffffffff,%ecx
43a84f:	89 0b                	mov    %ecx,(%ebx)
43a851:	75 f1                	jne    0x43a844
43a853:	8b d6                	mov    %esi,%edx
43a855:	8b c7                	mov    %edi,%eax
43a857:	5e                   	pop    %esi
43a858:	5f                   	pop    %edi
43a859:	5b                   	pop    %ebx
43a85a:	8b e5                	mov    %ebp,%esp
43a85c:	5d                   	pop    %ebp
43a85d:	c3                   	ret
43a85e:	8b ff                	mov    %edi,%edi
43a860:	55                   	push   %ebp
43a861:	8b ec                	mov    %esp,%ebp
43a863:	81 ec 64 09 00 00    	sub    $0x964,%esp
43a869:	a1 08 a0 46 00       	mov    0x46a008,%eax
43a86e:	33 c5                	xor    %ebp,%eax
43a870:	89 45 fc             	mov    %eax,-0x4(%ebp)
43a873:	53                   	push   %ebx
43a874:	8b 5d 18             	mov    0x18(%ebp),%ebx
43a877:	8d 8d 6c f8 ff ff    	lea    -0x794(%ebp),%ecx
43a87d:	56                   	push   %esi
43a87e:	57                   	push   %edi
43a87f:	8b 7d 14             	mov    0x14(%ebp),%edi
43a882:	89 bd 80 f8 ff ff    	mov    %edi,-0x780(%ebp)
43a888:	89 9d 84 f8 ff ff    	mov    %ebx,-0x77c(%ebp)
43a88e:	e8 ea fa ff ff       	call   0x43a37d
43a893:	8b 75 0c             	mov    0xc(%ebp),%esi
43a896:	33 c0                	xor    %eax,%eax
43a898:	8b ce                	mov    %esi,%ecx
43a89a:	81 e1 00 00 00 80    	and    $0x80000000,%ecx
43a8a0:	0b c1                	or     %ecx,%eax
43a8a2:	b0 2d                	mov    $0x2d,%al
43a8a4:	75 02                	jne    0x43a8a8
43a8a6:	04 f3                	add    $0xf3,%al
43a8a8:	0f be c0             	movsbl %al,%eax
43a8ab:	8b ce                	mov    %esi,%ecx
43a8ad:	89 07                	mov    %eax,(%edi)
43a8af:	81 e1 00 00 f0 7f    	and    $0x7ff00000,%ecx
43a8b5:	33 c0                	xor    %eax,%eax
43a8b7:	89 5f 08             	mov    %ebx,0x8(%edi)
43a8ba:	0b c1                	or     %ecx,%eax
43a8bc:	8b 7d 08             	mov    0x8(%ebp),%edi
43a8bf:	75 22                	jne    0x43a8e3
43a8c1:	8b ce                	mov    %esi,%ecx
43a8c3:	8b c7                	mov    %edi,%eax