45076a:	89 45 0c             	mov    %eax,0xc(%ebp)
45076d:	8d 1c 8f             	lea    (%edi,%ecx,4),%ebx
450770:	89 75 10             	mov    %esi,0x10(%ebp)
450773:	8b 3c 18             	mov    (%eax,%ebx,1),%edi
450776:	52                   	push   %edx
450777:	e8 14 f5 ff ff       	call   0x44fc90
45077c:	8b f0                	mov    %eax,%esi
45077e:	56                   	push   %esi
45077f:	57                   	push   %edi
450780:	e8 0b 07 00 00       	call   0x450e90
450785:	8b 45 0c             	mov    0xc(%ebp),%eax
450788:	8d 5b 04             	lea    0x4(%ebx),%ebx
45078b:	8b 55 14             	mov    0x14(%ebp),%edx
45078e:	83 c4 0c             	add    $0xc,%esp
450791:	83 6d 10 01          	subl   $0x1,0x10(%ebp)
450795:	89 73 fc             	mov    %esi,-0x4(%ebx)
450798:	75 d9                	jne    0x450773
45079a:	5f                   	pop    %edi
45079b:	5e                   	pop    %esi
45079c:	5b                   	pop    %ebx
45079d:	8b e5                	mov    %ebp,%esp
45079f:	5d                   	pop    %ebp
4507a0:	c2 10 00             	ret    $0x10
4507a3:	cc                   	int3
4507a4:	cc                   	int3
4507a5:	cc                   	int3
4507a6:	cc                   	int3
4507a7:	cc                   	int3
4507a8:	cc                   	int3
4507a9:	cc                   	int3
4507aa:	cc                   	int3
4507ab:	cc                   	int3
4507ac:	cc                   	int3
4507ad:	cc                   	int3
4507ae:	cc                   	int3
4507af:	cc                   	int3
4507b0:	55                   	push   %ebp
4507b1:	8b ec                	mov    %esp,%ebp
4507b3:	83 ec 08             	sub    $0x8,%esp
4507b6:	53                   	push   %ebx
4507b7:	56                   	push   %esi
4507b8:	8b 75 10             	mov    0x10(%ebp),%esi
4507bb:	8b c1                	mov    %ecx,%eax
4507bd:	8b 4d 14             	mov    0x14(%ebp),%ecx
4507c0:	57                   	push   %edi
4507c1:	33 ff                	xor    %edi,%edi
4507c3:	89 45 f8             	mov    %eax,-0x8(%ebp)
4507c6:	85 c9                	test   %ecx,%ecx
4507c8:	7e 2d                	jle    0x4507f7
4507ca:	8b 55 08             	mov    0x8(%ebp),%edx
4507cd:	8b 5d 0c             	mov    0xc(%ebp),%ebx
4507d0:	2b d3                	sub    %ebx,%edx
4507d2:	89 55 fc             	mov    %edx,-0x4(%ebp)
4507d5:	3b fe                	cmp    %esi,%edi
4507d7:	7d 1b                	jge    0x4507f4
4507d9:	ff 34 1a             	push   (%edx,%ebx,1)
4507dc:	ff 33                	push   (%ebx)
4507de:	e8 bd 06 00 00       	call   0x450ea0
4507e3:	8b 4d 14             	mov    0x14(%ebp),%ecx
4507e6:	47                   	inc    %edi
4507e7:	8b 55 fc             	mov    -0x4(%ebp),%edx
4507ea:	83 c4 08             	add    $0x8,%esp
4507ed:	83 c3 04             	add    $0x4,%ebx
4507f0:	3b f9                	cmp    %ecx,%edi
4507f2:	7c e1                	jl     0x4507d5
4507f4:	8b 45 f8             	mov    -0x8(%ebp),%eax
4507f7:	8b 10                	mov    (%eax),%edx
4507f9:	89 55 14             	mov    %edx,0x14(%ebp)
4507fc:	3b ce                	cmp    %esi,%ecx
4507fe:	7d 3a                	jge    0x45083a
450800:	8b 7d 08             	mov    0x8(%ebp),%edi
450803:	8b 45 0c             	mov    0xc(%ebp),%eax
450806:	2b c7                	sub    %edi,%eax
450808:	2b f1                	sub    %ecx,%esi
45080a:	89 45 0c             	mov    %eax,0xc(%ebp)
45080d:	8d 1c 8f             	lea    (%edi,%ecx,4),%ebx
450810:	89 75 10             	mov    %esi,0x10(%ebp)
450813:	8b 3c 18             	mov    (%eax,%ebx,1),%edi
450816:	52                   	push   %edx
450817:	e8 44 f5 ff ff       	call   0x44fd60
45081c:	8b f0                	mov    %eax,%esi
45081e:	56                   	push   %esi
45081f:	57                   	push   %edi
450820:	e8 7b 06 00 00       	call   0x450ea0
450825:	8b 45 0c             	mov    0xc(%ebp),%eax
450828:	8d 5b 04             	lea    0x4(%ebx),%ebx
45082b:	8b 55 14             	mov    0x14(%ebp),%edx
45082e:	83 c4 0c             	add    $0xc,%esp
450831:	83 6d 10 01          	subl   $0x1,0x10(%ebp)
450835:	89 73 fc             	mov    %esi,-0x4(%ebx)
450838:	75 d9                	jne    0x450813
45083a:	5f                   	pop    %edi
45083b:	5e                   	pop    %esi
45083c:	5b                   	pop    %ebx
45083d:	8b e5                	mov    %ebp,%esp
45083f:	5d                   	pop    %ebp
450840:	c2 10 00             	ret    $0x10
450843:	cc                   	int3
450844:	cc                   	int3
450845:	cc                   	int3
450846:	cc                   	int3
450847:	cc                   	int3
450848:	cc                   	int3
450849:	cc                   	int3
45084a:	cc                   	int3
45084b:	cc                   	int3
45084c:	cc                   	int3
45084d:	cc                   	int3
45084e:	cc                   	int3
45084f:	cc                   	int3
450850:	55                   	push   %ebp
450851:	8b ec                	mov    %esp,%ebp
450853:	83 ec 08             	sub    $0x8,%esp
450856:	53                   	push   %ebx
450857:	56                   	push   %esi
450858:	8b 75 10             	mov    0x10(%ebp),%esi
45085b:	8b c1                	mov    %ecx,%eax
45085d:	8b 4d 14             	mov    0x14(%ebp),%ecx
450860:	57                   	push   %edi
450861:	33 ff                	xor    %edi,%edi
450863:	89 45 f8             	mov    %eax,-0x8(%ebp)
450866:	85 c9                	test   %ecx,%ecx
450868:	7e 2d                	jle    0x450897
45086a:	8b 55 08             	mov    0x8(%ebp),%edx
45086d:	8b 5d 0c             	mov    0xc(%ebp),%ebx
450870:	2b d3                	sub    %ebx,%edx
450872:	89 55 fc             	mov    %edx,-0x4(%ebp)
450875:	3b fe                	cmp    %esi,%edi
450877:	7d 1b                	jge    0x450894
450879:	ff 34 1a             	push   (%edx,%ebx,1)
45087c:	ff 33                	push   (%ebx)
45087e:	e8 2d 06 00 00       	call   0x450eb0
450883:	8b 4d 14             	mov    0x14(%ebp),%ecx
450886:	47                   	inc    %edi
450887:	8b 55 fc             	mov    -0x4(%ebp),%edx
45088a:	83 c4 08             	add    $0x8,%esp
45088d:	83 c3 04             	add    $0x4,%ebx
450890:	3b f9                	cmp    %ecx,%edi
450892:	7c e1                	jl     0x450875
450894:	8b 45 f8             	mov    -0x8(%ebp),%eax
450897:	8b 10                	mov    (%eax),%edx
450899:	89 55 14             	mov    %edx,0x14(%ebp)
45089c:	3b ce                	cmp    %esi,%ecx
45089e:	7d 3a                	jge    0x4508da
4508a0:	8b 7d 08             	mov    0x8(%ebp),%edi
4508a3:	8b 45 0c             	mov    0xc(%ebp),%eax
4508a6:	2b c7                	sub    %edi,%eax
4508a8:	2b f1                	sub    %ecx,%esi
4508aa:	89 45 0c             	mov    %eax,0xc(%ebp)
4508ad:	8d 1c 8f             	lea    (%edi,%ecx,4),%ebx
4508b0:	89 75 10             	mov    %esi,0x10(%ebp)
4508b3:	8b 3c 18             	mov    (%eax,%ebx,1),%edi
4508b6:	52                   	push   %edx
4508b7:	e8 a4 f6 ff ff       	call   0x44ff60
4508bc:	8b f0                	mov    %eax,%esi
4508be:	56                   	push   %esi
4508bf:	57                   	push   %edi
4508c0:	e8 eb 05 00 00       	call   0x450eb0
4508c5:	8b 45 0c             	mov    0xc(%ebp),%eax
4508c8:	8d 5b 04             	lea    0x4(%ebx),%ebx
4508cb:	8b 55 14             	mov    0x14(%ebp),%edx
4508ce:	83 c4 0c             	add    $0xc,%esp
4508d1:	83 6d 10 01          	subl   $0x1,0x10(%ebp)
4508d5:	89 73 fc             	mov    %esi,-0x4(%ebx)
4508d8:	75 d9                	jne    0x4508b3
4508da:	5f                   	pop    %edi
4508db:	5e                   	pop    %esi
4508dc:	5b                   	pop    %ebx
4508dd:	8b e5                	mov    %ebp,%esp
4508df:	5d                   	pop    %ebp
4508e0:	c2 10 00             	ret    $0x10
4508e3:	cc                   	int3
4508e4:	cc                   	int3
4508e5:	cc                   	int3
4508e6:	cc                   	int3
4508e7:	cc                   	int3
4508e8:	cc                   	int3
4508e9:	cc                   	int3
4508ea:	cc                   	int3
4508eb:	cc                   	int3
4508ec:	cc                   	int3
4508ed:	cc                   	int3
4508ee:	cc                   	int3
4508ef:	cc                   	int3
4508f0:	55                   	push   %ebp
4508f1:	8b ec                	mov    %esp,%ebp
4508f3:	8b 55 0c             	mov    0xc(%ebp),%edx
4508f6:	83 ec 08             	sub    $0x8,%esp
4508f9:	0f b6 02             	movzbl (%edx),%eax
4508fc:	53                   	push   %ebx
4508fd:	56                   	push   %esi
4508fe:	8b f1                	mov    %ecx,%esi
450900:	57                   	push   %edi
450901:	3d 80 00 00 00       	cmp    $0x80,%eax
450906:	73 03                	jae    0x45090b
450908:	42                   	inc    %edx
450909:	eb 14                	jmp    0x45091f
45090b:	50                   	push   %eax
45090c:	52                   	push   %edx
45090d:	8d 45 f8             	lea    -0x8(%ebp),%eax
450910:	50                   	push   %eax
450911:	e8 5a ef 00 00       	call   0x45f870
450916:	8b 55 f8             	mov    -0x8(%ebp),%edx
450919:	83 c4 0c             	add    $0xc,%esp
45091c:	8b 45 fc             	mov    -0x4(%ebp),%eax
45091f:	85 d2                	test   %edx,%edx
450921:	74 56                	je     0x450979
450923:	2b 46 04             	sub    0x4(%esi),%eax
450926:	8b 5e 10             	mov    0x10(%esi),%ebx
450929:	8d 3c 10             	lea    (%eax,%edx,1),%edi
45092c:	33 c0                	xor    %eax,%eax
45092e:	85 ff                	test   %edi,%edi
450930:	89 7e 10             	mov    %edi,0x10(%esi)
450933:	0f 48 c7             	cmovs  %edi,%eax
450936:	03 46 04             	add    0x4(%esi),%eax
450939:	83 46 44 ff          	addl   $0xffffffff,0x44(%esi)
45093d:	89 06                	mov    %eax,(%esi)
45093f:	78 38                	js     0x450979
450941:	8b 4d 08             	mov    0x8(%ebp),%ecx
450944:	56                   	push   %esi
450945:	52                   	push   %edx
450946:	e8 a5 7b ff ff       	call   0x4484f0
45094b:	8b d0                	mov    %eax,%edx
45094d:	85 d2                	test   %edx,%edx
45094f:	74 28                	je     0x450979
450951:	ff 46 44             	incl   0x44(%esi)
450954:	83 7e 3c 00          	cmpl   $0x0,0x3c(%esi)
450958:	75 1f                	jne    0x450979
45095a:	8b 46 10             	mov    0x10(%esi),%eax
45095d:	33 c9                	xor    %ecx,%ecx
45095f:	2b c7                	sub    %edi,%eax
450961:	03 c3                	add    %ebx,%eax
450963:	5f                   	pop    %edi
450964:	0f 48 c8             	cmovs  %eax,%ecx
450967:	89 46 10             	mov    %eax,0x10(%esi)
45096a:	03 4e 04             	add    0x4(%esi),%ecx
45096d:	8b c2                	mov    %edx,%eax
45096f:	89 0e                	mov    %ecx,(%esi)
450971:	5e                   	pop    %esi
450972:	5b                   	pop    %ebx
450973:	8b e5                	mov    %ebp,%esp
450975:	5d                   	pop    %ebp
450976:	c2 08 00             	ret    $0x8
450979:	5f                   	pop    %edi
45097a:	5e                   	pop    %esi
45097b:	33 c0                	xor    %eax,%eax
45097d:	5b                   	pop    %ebx
45097e:	8b e5                	mov    %ebp,%esp
450980:	5d                   	pop    %ebp
450981:	c2 08 00             	ret    $0x8
450984:	cc                   	int3
450985:	cc                   	int3
450986:	cc                   	int3
450987:	cc                   	int3
450988:	cc                   	int3
450989:	cc                   	int3
45098a:	cc                   	int3
45098b:	cc                   	int3
45098c:	cc                   	int3
45098d:	cc                   	int3
45098e:	cc                   	int3
45098f:	cc                   	int3
450990:	55                   	push   %ebp
450991:	8b ec                	mov    %esp,%ebp
450993:	83 ec 14             	sub    $0x14,%esp
450996:	53                   	push   %ebx
450997:	56                   	push   %esi
450998:	8b 75 0c             	mov    0xc(%ebp),%esi
45099b:	57                   	push   %edi
45099c:	8b f9                	mov    %ecx,%edi
45099e:	0f b6 06             	movzbl (%esi),%eax
4509a1:	3d 80 00 00 00       	cmp    $0x80,%eax
4509a6:	73 03                	jae    0x4509ab
4509a8:	46                   	inc    %esi
4509a9:	eb 14                	jmp    0x4509bf
4509ab:	50                   	push   %eax
4509ac:	8d 45 f4             	lea    -0xc(%ebp),%eax
4509af:	56                   	push   %esi
4509b0:	50                   	push   %eax
4509b1:	e8 ba ee 00 00       	call   0x45f870
4509b6:	8b 75 f4             	mov    -0xc(%ebp),%esi
4509b9:	83 c4 0c             	add    $0xc,%esp
4509bc:	8b 45 f8             	mov    -0x8(%ebp),%eax
4509bf:	85 f6                	test   %esi,%esi
4509c1:	0f 84 a1 00 00 00    	je     0x450a68
4509c7:	2b 47 04             	sub    0x4(%edi),%eax
4509ca:	8b 5f 10             	mov    0x10(%edi),%ebx
4509cd:	8d 14 30             	lea    (%eax,%esi,1),%edx
4509d0:	33 c0                	xor    %eax,%eax
4509d2:	85 d2                	test   %edx,%edx
4509d4:	89 57 10             	mov    %edx,0x10(%edi)
4509d7:	0f 48 c2             	cmovs  %edx,%eax
4509da:	2b da                	sub    %edx,%ebx
4509dc:	03 47 04             	add    0x4(%edi),%eax
4509df:	83 47 44 ff          	addl   $0xffffffff,0x44(%edi)
4509e3:	89 07                	mov    %eax,(%edi)
4509e5:	89 5d fc             	mov    %ebx,-0x4(%ebp)
4509e8:	78 7e                	js     0x450a68
4509ea:	8d 9b 00 00 00 00    	lea    0x0(%ebx),%ebx
4509f0:	3b 37                	cmp    (%edi),%esi
4509f2:	72 22                	jb     0x450a16
4509f4:	8b c6                	mov    %esi,%eax
4509f6:	2b 47 04             	sub    0x4(%edi),%eax
4509f9:	3b 47 10             	cmp    0x10(%edi),%eax
4509fc:	74 75                	je     0x450a73
4509fe:	ff 77 48             	push   0x48(%edi)
450a01:	8b cf                	mov    %edi,%ecx
450a03:	50                   	push   %eax
450a04:	8d 45 ec             	lea    -0x14(%ebp),%eax
450a07:	50                   	push   %eax
450a08:	e8 23 e5 00 00       	call   0x45ef30
450a0d:	80 7d f0 00          	cmpb   $0x0,-0x10(%ebp)
450a11:	8b 75 ec             	mov    -0x14(%ebp),%esi
450a14:	75 69                	jne    0x450a7f
450a16:	6a 00                	push   $0x0
450a18:	8d 45 0c             	lea    0xc(%ebp),%eax
450a1b:	50                   	push   %eax
450a1c:	56                   	push   %esi
450a1d:	e8 fe 0f 00 00       	call   0x451a20
450a22:	8b f0                	mov    %eax,%esi
450a24:	83 c4 0c             	add    $0xc,%esp
450a27:	85 f6                	test   %esi,%esi
450a29:	74 3d                	je     0x450a68
450a2b:	8b 5d 0c             	mov    0xc(%ebp),%ebx
450a2e:	8b c3                	mov    %ebx,%eax
450a30:	24 07                	and    $0x7,%al
450a32:	3c 04                	cmp    $0x4,%al
450a34:	74 4f                	je     0x450a85
450a36:	85 db                	test   %ebx,%ebx
450a38:	74 4b                	je     0x450a85
450a3a:	8b 4d 08             	mov    0x8(%ebp),%ecx
450a3d:	83 c1 04             	add    $0x4,%ecx
450a40:	f6 01 01             	testb  $0x1,(%ecx)
450a43:	74 0a                	je     0x450a4f
450a45:	8b 01                	mov    (%ecx),%eax
450a47:	83 e0 fc             	and    $0xfffffffc,%eax
450a4a:	83 c0 04             	add    $0x4,%eax
450a4d:	eb 05                	jmp    0x450a54
450a4f:	e8 dc 01 00 00       	call   0x450c30
450a54:	57                   	push   %edi
450a55:	56                   	push   %esi
450a56:	50                   	push   %eax
450a57:	6a 00                	push   $0x0
450a59:	53                   	push   %ebx
450a5a:	e8 51 05 01 00       	call   0x460fb0
450a5f:	8b f0                	mov    %eax,%esi
450a61:	83 c4 14             	add    $0x14,%esp
450a64:	85 f6                	test   %esi,%esi
450a66:	75 88                	jne    0x4509f0
450a68:	5f                   	pop    %edi