570592:	83 c0 02             	add    $0x2,%eax
570595:	3b c8                	cmp    %eax,%ecx
570597:	7c eb                	jl     0x570584
570599:	8b 47 04             	mov    0x4(%edi),%eax
57059c:	83 c0 02             	add    $0x2,%eax
57059f:	89 45 04             	mov    %eax,0x4(%ebp)
5705a2:	eb 2e                	jmp    0x5705d2
5705a4:	8d 41 01             	lea    0x1(%ecx),%eax
5705a7:	3b 45 08             	cmp    0x8(%ebp),%eax
5705aa:	7f 04                	jg     0x5705b0
5705ac:	8b c5                	mov    %ebp,%eax
5705ae:	eb 0a                	jmp    0x5705ba
5705b0:	50                   	push   %eax
5705b1:	55                   	push   %ebp
5705b2:	e8 e9 30 f4 ff       	call   0x4b36a0
5705b7:	83 c4 08             	add    $0x8,%esp
5705ba:	85 c0                	test   %eax,%eax
5705bc:	0f 84 f5 02 00 00    	je     0x5708b7
5705c2:	8b 4d 04             	mov    0x4(%ebp),%ecx
5705c5:	8b 45 00             	mov    0x0(%ebp),%eax
5705c8:	c7 04 88 00 00 00 00 	movl   $0x0,(%eax,%ecx,4)
5705cf:	ff 45 04             	incl   0x4(%ebp)
5705d2:	8b 47 04             	mov    0x4(%edi),%eax
5705d5:	8b 5d 04             	mov    0x4(%ebp),%ebx
5705d8:	8b cb                	mov    %ebx,%ecx
5705da:	2b c8                	sub    %eax,%ecx
5705dc:	89 44 24 10          	mov    %eax,0x10(%esp)
5705e0:	c7 44 24 58 00 00 00 	movl   $0x0,0x58(%esp)
5705e7:	00
5705e8:	8b 45 00             	mov    0x0(%ebp),%eax
5705eb:	89 4c 24 2c          	mov    %ecx,0x2c(%esp)
5705ef:	8d 14 8d 00 00 00 00 	lea    0x0(,%ecx,4),%edx
5705f6:	03 c2                	add    %edx,%eax
5705f8:	8b 54 24 10          	mov    0x10(%esp),%edx
5705fc:	89 44 24 4c          	mov    %eax,0x4c(%esp)
570600:	89 54 24 50          	mov    %edx,0x50(%esp)
570604:	8b 45 08             	mov    0x8(%ebp),%eax
570607:	2b c1                	sub    %ecx,%eax
570609:	89 44 24 54          	mov    %eax,0x54(%esp)
57060d:	8d 04 95 00 00 00 00 	lea    0x0(,%edx,4),%eax
570614:	8b 17                	mov    (%edi),%edx
570616:	89 44 24 3c          	mov    %eax,0x3c(%esp)
57061a:	8b 44 02 fc          	mov    -0x4(%edx,%eax,1),%eax
57061e:	89 44 24 30          	mov    %eax,0x30(%esp)
570622:	8b 44 24 10          	mov    0x10(%esp),%eax
570626:	83 f8 01             	cmp    $0x1,%eax
570629:	75 0a                	jne    0x570635
57062b:	c7 44 24 24 00 00 00 	movl   $0x0,0x24(%esp)
570632:	00
570633:	eb 08                	jmp    0x57063d
570635:	8b 44 82 f8          	mov    -0x8(%edx,%eax,4),%eax
570639:	89 44 24 24          	mov    %eax,0x24(%esp)
57063d:	8b 45 00             	mov    0x0(%ebp),%eax
570640:	8b 54 24 6c          	mov    0x6c(%esp),%edx
570644:	83 e8 04             	sub    $0x4,%eax
570647:	8d 1c 98             	lea    (%eax,%ebx,4),%ebx
57064a:	8b 46 0c             	mov    0xc(%esi),%eax
57064d:	8b 74 24 28          	mov    0x28(%esp),%esi
570651:	33 42 0c             	xor    0xc(%edx),%eax
570654:	89 5c 24 18          	mov    %ebx,0x18(%esp)
570658:	89 46 0c             	mov    %eax,0xc(%esi)
57065b:	8d 41 01             	lea    0x1(%ecx),%eax
57065e:	3b 46 08             	cmp    0x8(%esi),%eax
570661:	7f 04                	jg     0x570667
570663:	8b c6                	mov    %esi,%eax
570665:	eb 0e                	jmp    0x570675
570667:	50                   	push   %eax
570668:	56                   	push   %esi
570669:	e8 32 30 f4 ff       	call   0x4b36a0
57066e:	8b 4c 24 34          	mov    0x34(%esp),%ecx
570672:	83 c4 08             	add    $0x8,%esp
570675:	85 c0                	test   %eax,%eax
570677:	0f 84 3a 02 00 00    	je     0x5708b7
57067d:	8b 54 24 1c          	mov    0x1c(%esp),%edx
570681:	8b c1                	mov    %ecx,%eax
570683:	2b c2                	sub    %edx,%eax
570685:	89 46 04             	mov    %eax,0x4(%esi)
570688:	8b 06                	mov    (%esi),%eax
57068a:	8d 04 88             	lea    (%eax,%ecx,4),%eax
57068d:	8b 4c 24 10          	mov    0x10(%esp),%ecx
570691:	83 c0 fc             	add    $0xfffffffc,%eax
570694:	41                   	inc    %ecx
570695:	89 44 24 14          	mov    %eax,0x14(%esp)
570699:	8b 44 24 20          	mov    0x20(%esp),%eax
57069d:	89 4c 24 40          	mov    %ecx,0x40(%esp)
5706a1:	3b 48 08             	cmp    0x8(%eax),%ecx
5706a4:	7e 0e                	jle    0x5706b4
5706a6:	51                   	push   %ecx
5706a7:	50                   	push   %eax
5706a8:	e8 f3 2f f4 ff       	call   0x4b36a0
5706ad:	8b 54 24 24          	mov    0x24(%esp),%edx
5706b1:	83 c4 08             	add    $0x8,%esp
5706b4:	85 c0                	test   %eax,%eax
5706b6:	0f 84 fb 01 00 00    	je     0x5708b7
5706bc:	85 d2                	test   %edx,%edx
5706be:	75 35                	jne    0x5706f5
5706c0:	8d 44 24 4c          	lea    0x4c(%esp),%eax
5706c4:	57                   	push   %edi
5706c5:	50                   	push   %eax
5706c6:	e8 85 2e f4 ff       	call   0x4b3550
5706cb:	83 c4 08             	add    $0x8,%esp
5706ce:	85 c0                	test   %eax,%eax
5706d0:	78 20                	js     0x5706f2
5706d2:	ff 74 24 10          	push   0x10(%esp)
5706d6:	8b 44 24 50          	mov    0x50(%esp),%eax
5706da:	ff 37                	push   (%edi)
5706dc:	50                   	push   %eax
5706dd:	50                   	push   %eax
5706de:	e8 4d b3 f5 ff       	call   0x4cba30
5706e3:	8b 4c 24 24          	mov    0x24(%esp),%ecx
5706e7:	83 c4 10             	add    $0x10,%esp
5706ea:	c7 01 01 00 00 00    	movl   $0x1,(%ecx)
5706f0:	eb 07                	jmp    0x5706f9
5706f2:	ff 4e 04             	decl   0x4(%esi)
5706f5:	8b 4c 24 14          	mov    0x14(%esp),%ecx
5706f9:	83 7e 04 00          	cmpl   $0x0,0x4(%esi)
5706fd:	75 09                	jne    0x570708
5706ff:	c7 46 0c 00 00 00 00 	movl   $0x0,0xc(%esi)
570706:	eb 03                	jmp    0x57070b
570708:	83 e9 04             	sub    $0x4,%ecx
57070b:	8b 44 24 2c          	mov    0x2c(%esp),%eax
57070f:	48                   	dec    %eax
570710:	89 44 24 34          	mov    %eax,0x34(%esp)
570714:	85 c0                	test   %eax,%eax
570716:	0f 8e f6 00 00 00    	jle    0x570812
57071c:	8b 6c 24 30          	mov    0x30(%esp),%ebp
570720:	2b cb                	sub    %ebx,%ecx
570722:	89 4c 24 14          	mov    %ecx,0x14(%esp)
570726:	8b 0b                	mov    (%ebx),%ecx
570728:	8b 73 fc             	mov    -0x4(%ebx),%esi
57072b:	3b cd                	cmp    %ebp,%ecx
57072d:	75 05                	jne    0x570734
57072f:	83 cf ff             	or     $0xffffffff,%edi
570732:	eb 60                	jmp    0x570794
570734:	6a 00                	push   $0x0
570736:	55                   	push   %ebp
570737:	33 c0                	xor    %eax,%eax
570739:	0b c6                	or     %esi,%eax
57073b:	51                   	push   %ecx
57073c:	50                   	push   %eax
57073d:	e8 3e 19 07 00       	call   0x5e2080
570742:	8b f8                	mov    %eax,%edi
570744:	f7 64 24 24          	mull   0x24(%esp)
570748:	8b cf                	mov    %edi,%ecx
57074a:	8b d8                	mov    %eax,%ebx
57074c:	0f af cd             	imul   %ebp,%ecx
57074f:	8b 44 24 18          	mov    0x18(%esp),%eax
570753:	8b 40 f8             	mov    -0x8(%eax),%eax
570756:	2b f1                	sub    %ecx,%esi
570758:	89 44 24 2c          	mov    %eax,0x2c(%esp)
57075c:	8b ce                	mov    %esi,%ecx
57075e:	33 c0                	xor    %eax,%eax
570760:	0b 44 24 2c          	or     0x2c(%esp),%eax
570764:	3b d1                	cmp    %ecx,%edx
570766:	72 28                	jb     0x570790
570768:	77 06                	ja     0x570770
57076a:	3b d8                	cmp    %eax,%ebx
57076c:	76 22                	jbe    0x570790
57076e:	66 90                	xchg   %ax,%ax
570770:	03 f5                	add    %ebp,%esi
570772:	4f                   	dec    %edi
570773:	3b f5                	cmp    %ebp,%esi
570775:	72 19                	jb     0x570790
570777:	2b 5c 24 24          	sub    0x24(%esp),%ebx
57077b:	8b c6                	mov    %esi,%eax
57077d:	83 da 00             	sbb    $0x0,%edx
570780:	33 c9                	xor    %ecx,%ecx
570782:	0b 4c 24 2c          	or     0x2c(%esp),%ecx
570786:	3b d0                	cmp    %eax,%edx
570788:	77 e6                	ja     0x570770
57078a:	72 04                	jb     0x570790
57078c:	3b d9                	cmp    %ecx,%ebx
57078e:	77 e0                	ja     0x570770
570790:	8b 5c 24 18          	mov    0x18(%esp),%ebx
570794:	8b 74 24 38          	mov    0x38(%esp),%esi
570798:	8b 44 24 20          	mov    0x20(%esp),%eax
57079c:	57                   	push   %edi
57079d:	ff 74 24 14          	push   0x14(%esp)
5707a1:	ff 36                	push   (%esi)
5707a3:	ff 30                	push   (%eax)
5707a5:	e8 86 aa f5 ff       	call   0x4cb230
5707aa:	8b 54 24 30          	mov    0x30(%esp),%edx
5707ae:	8b 6c 24 4c          	mov    0x4c(%esp),%ebp
5707b2:	ff 74 24 50          	push   0x50(%esp)
5707b6:	8b 0a                	mov    (%edx),%ecx
5707b8:	89 04 29             	mov    %eax,(%ecx,%ebp,1)
5707bb:	8b 44 24 60          	mov    0x60(%esp),%eax
5707bf:	83 e8 04             	sub    $0x4,%eax
5707c2:	89 44 24 60          	mov    %eax,0x60(%esp)
5707c6:	ff 32                	push   (%edx)
5707c8:	50                   	push   %eax
5707c9:	50                   	push   %eax
5707ca:	e8 61 b2 f5 ff       	call   0x4cba30
5707cf:	8b 6c 24 50          	mov    0x50(%esp),%ebp
5707d3:	83 c4 20             	add    $0x20,%esp
5707d6:	85 c0                	test   %eax,%eax
5707d8:	74 1b                	je     0x5707f5
5707da:	ff 74 24 10          	push   0x10(%esp)
5707de:	8b 44 24 50          	mov    0x50(%esp),%eax
5707e2:	4f                   	dec    %edi
5707e3:	ff 36                	push   (%esi)
5707e5:	50                   	push   %eax
5707e6:	50                   	push   %eax
5707e7:	e8 64 a0 f5 ff       	call   0x4ca850
5707ec:	83 c4 10             	add    $0x10,%esp
5707ef:	85 c0                	test   %eax,%eax
5707f1:	74 02                	je     0x5707f5
5707f3:	ff 03                	incl   (%ebx)
5707f5:	8b 44 24 14          	mov    0x14(%esp),%eax
5707f9:	89 3c 18             	mov    %edi,(%eax,%ebx,1)
5707fc:	83 eb 04             	sub    $0x4,%ebx
5707ff:	83 6c 24 34 01       	subl   $0x1,0x34(%esp)
570804:	89 5c 24 18          	mov    %ebx,0x18(%esp)
570808:	0f 85 18 ff ff ff    	jne    0x570726
57080e:	8b 6c 24 44          	mov    0x44(%esp),%ebp
570812:	8b 4d 04             	mov    0x4(%ebp),%ecx
570815:	85 c9                	test   %ecx,%ecx
570817:	7e 1a                	jle    0x570833
570819:	8b 45 00             	mov    0x0(%ebp),%eax
57081c:	8d 51 ff             	lea    -0x1(%ecx),%edx
57081f:	8d 14 90             	lea    (%eax,%edx,4),%edx
570822:	8b 02                	mov    (%edx),%eax
570824:	8d 52 fc             	lea    -0x4(%edx),%edx
570827:	85 c0                	test   %eax,%eax
570829:	75 05                	jne    0x570830
57082b:	49                   	dec    %ecx
57082c:	85 c9                	test   %ecx,%ecx
57082e:	7f f2                	jg     0x570822
570830:	89 4d 04             	mov    %ecx,0x4(%ebp)
570833:	83 7d 04 00          	cmpl   $0x0,0x4(%ebp)
570837:	75 07                	jne    0x570840
570839:	c7 45 0c 00 00 00 00 	movl   $0x0,0xc(%ebp)
570840:	8b 74 24 68          	mov    0x68(%esp),%esi
570844:	85 f6                	test   %esi,%esi
570846:	74 1e                	je     0x570866
570848:	ff 74 24 48          	push   0x48(%esp)
57084c:	8b 44 24 70          	mov    0x70(%esp),%eax
570850:	55                   	push   %ebp
570851:	56                   	push   %esi
570852:	8b 78 0c             	mov    0xc(%eax),%edi
570855:	e8 c6 3e f4 ff       	call   0x4b4720
57085a:	83 c4 0c             	add    $0xc,%esp
57085d:	83 7e 04 00          	cmpl   $0x0,0x4(%esi)
570861:	74 03                	je     0x570866
570863:	89 7e 0c             	mov    %edi,0xc(%esi)
570866:	83 7c 24 1c 00       	cmpl   $0x0,0x1c(%esp)
57086b:	74 31                	je     0x57089e
57086d:	8b 5c 24 28          	mov    0x28(%esp),%ebx
570871:	8b 4b 04             	mov    0x4(%ebx),%ecx
570874:	85 c9                	test   %ecx,%ecx
570876:	7e 19                	jle    0x570891
570878:	8b 03                	mov    (%ebx),%eax
57087a:	8d 51 ff             	lea    -0x1(%ecx),%edx
57087d:	8d 14 90             	lea    (%eax,%edx,4),%edx
570880:	8b 02                	mov    (%edx),%eax
570882:	8d 52 fc             	lea    -0x4(%edx),%edx
570885:	85 c0                	test   %eax,%eax
570887:	75 05                	jne    0x57088e
570889:	49                   	dec    %ecx
57088a:	85 c9                	test   %ecx,%ecx
57088c:	7f f2                	jg     0x570880
57088e:	89 4b 04             	mov    %ecx,0x4(%ebx)
570891:	83 7b 04 00          	cmpl   $0x0,0x4(%ebx)
570895:	75 07                	jne    0x57089e
570897:	c7 43 0c 00 00 00 00 	movl   $0x0,0xc(%ebx)
57089e:	ff 74 24 74          	push   0x74(%esp)
5708a2:	e8 a9 74 f6 ff       	call   0x4d7d50
5708a7:	83 c4 04             	add    $0x4,%esp
5708aa:	b8 01 00 00 00       	mov    $0x1,%eax
5708af:	5f                   	pop    %edi
5708b0:	5d                   	pop    %ebp
5708b1:	5e                   	pop    %esi
5708b2:	5b                   	pop    %ebx
5708b3:	83 c4 50             	add    $0x50,%esp
5708b6:	c3                   	ret
5708b7:	ff 74 24 74          	push   0x74(%esp)
5708bb:	e8 90 74 f6 ff       	call   0x4d7d50
5708c0:	83 c4 04             	add    $0x4,%esp
5708c3:	33 c0                	xor    %eax,%eax
5708c5:	5f                   	pop    %edi
5708c6:	5d                   	pop    %ebp
5708c7:	5e                   	pop    %esi
5708c8:	5b                   	pop    %ebx
5708c9:	83 c4 50             	add    $0x50,%esp
5708cc:	c3                   	ret
5708cd:	cc                   	int3
5708ce:	cc                   	int3
5708cf:	cc                   	int3
5708d0:	56                   	push   %esi
5708d1:	8b 74 24 08          	mov    0x8(%esp),%esi
5708d5:	57                   	push   %edi
5708d6:	8b 7c 24 10          	mov    0x10(%esp),%edi
5708da:	3b f7                	cmp    %edi,%esi
5708dc:	74 51                	je     0x57092f
5708de:	8d 47 04             	lea    0x4(%edi),%eax
5708e1:	50                   	push   %eax
5708e2:	8d 46 04             	lea    0x4(%esi),%eax
5708e5:	50                   	push   %eax
5708e6:	e8 e5 27 f4 ff       	call   0x4b30d0
5708eb:	83 c4 08             	add    $0x8,%esp
5708ee:	85 c0                	test   %eax,%eax
5708f0:	75 05                	jne    0x5708f7
5708f2:	5f                   	pop    %edi
5708f3:	33 c0                	xor    %eax,%eax
5708f5:	5e                   	pop    %esi
5708f6:	c3                   	ret
5708f7:	8d 47 18             	lea    0x18(%edi),%eax
5708fa:	50                   	push   %eax
5708fb:	8d 46 18             	lea    0x18(%esi),%eax
5708fe:	50                   	push   %eax
5708ff:	e8 cc 27 f4 ff       	call   0x4b30d0
570904:	83 c4 08             	add    $0x8,%esp
570907:	85 c0                	test   %eax,%eax
570909:	74 e7                	je     0x5708f2
57090b:	8d 47 2c             	lea    0x2c(%edi),%eax
57090e:	50                   	push   %eax
57090f:	8d 46 2c             	lea    0x2c(%esi),%eax
570912:	50                   	push   %eax
570913:	e8 b8 27 f4 ff       	call   0x4b30d0
570918:	83 c4 08             	add    $0x8,%esp
57091b:	85 c0                	test   %eax,%eax
57091d:	74 d3                	je     0x5708f2
57091f:	8b 07                	mov    (%edi),%eax
570921:	89 06                	mov    %eax,(%esi)
570923:	8b 47 40             	mov    0x40(%edi),%eax
570926:	89 46 40             	mov    %eax,0x40(%esi)
570929:	8b 47 44             	mov    0x44(%edi),%eax
57092c:	89 46 44             	mov    %eax,0x44(%esi)
57092f:	5f                   	pop    %edi
570930:	8b c6                	mov    %esi,%eax
570932:	5e                   	pop    %esi
570933:	c3                   	ret
570934:	cc                   	int3
570935:	cc                   	int3
570936:	cc                   	int3
570937:	cc                   	int3
570938:	cc                   	int3
570939:	cc                   	int3
57093a:	cc                   	int3
57093b:	cc                   	int3
57093c:	cc                   	int3
57093d:	cc                   	int3
57093e:	cc                   	int3
57093f:	cc                   	int3
570940:	56                   	push   %esi
570941:	8b 74 24 08          	mov    0x8(%esp),%esi
570945:	85 f6                	test   %esi,%esi
570947:	74 2d                	je     0x570976
570949:	8d 46 04             	lea    0x4(%esi),%eax
57094c:	50                   	push   %eax