45364d:	8d 45 f4             	lea    -0xc(%ebp),%eax
453650:	50                   	push   %eax
453651:	8d 45 f8             	lea    -0x8(%ebp),%eax
453654:	50                   	push   %eax
453655:	8d 47 18             	lea    0x18(%edi),%eax
453658:	50                   	push   %eax
453659:	e8 a2 64 00 00       	call   0x459b00
45365e:	8b 4e 04             	mov    0x4(%esi),%ecx
453661:	83 c4 18             	add    $0x18,%esp
453664:	3b 4e 08             	cmp    0x8(%esi),%ecx
453667:	74 10                	je     0x453679
453669:	66 8b 45 f8          	mov    -0x8(%ebp),%ax
45366d:	66 89 01             	mov    %ax,(%ecx)
453670:	83 46 04 02          	addl   $0x2,0x4(%esi)
453674:	8b 4e 04             	mov    0x4(%esi),%ecx
453677:	eb 12                	jmp    0x45368b
453679:	8d 45 f8             	lea    -0x8(%ebp),%eax
45367c:	50                   	push   %eax
45367d:	51                   	push   %ecx
45367e:	8b ce                	mov    %esi,%ecx
453680:	e8 9b ee ff ff       	call   0x452520
453685:	8b 8f 94 00 00 00    	mov    0x94(%edi),%ecx
45368b:	3b 4e 08             	cmp    0x8(%esi),%ecx
45368e:	74 10                	je     0x4536a0
453690:	66 8b 45 f4          	mov    -0xc(%ebp),%ax
453694:	66 89 01             	mov    %ax,(%ecx)
453697:	83 46 04 02          	addl   $0x2,0x4(%esi)
45369b:	8b 4e 04             	mov    0x4(%esi),%ecx
45369e:	eb 12                	jmp    0x4536b2
4536a0:	8d 45 f4             	lea    -0xc(%ebp),%eax
4536a3:	50                   	push   %eax
4536a4:	51                   	push   %ecx
4536a5:	8b ce                	mov    %esi,%ecx
4536a7:	e8 74 ee ff ff       	call   0x452520
4536ac:	8b 8f 94 00 00 00    	mov    0x94(%edi),%ecx
4536b2:	3b 4e 08             	cmp    0x8(%esi),%ecx
4536b5:	74 10                	je     0x4536c7
4536b7:	66 8b 45 f0          	mov    -0x10(%ebp),%ax
4536bb:	66 89 01             	mov    %ax,(%ecx)
4536be:	83 46 04 02          	addl   $0x2,0x4(%esi)
4536c2:	8b 4e 04             	mov    0x4(%esi),%ecx
4536c5:	eb 12                	jmp    0x4536d9
4536c7:	8d 45 f0             	lea    -0x10(%ebp),%eax
4536ca:	50                   	push   %eax
4536cb:	51                   	push   %ecx
4536cc:	8b ce                	mov    %esi,%ecx
4536ce:	e8 4d ee ff ff       	call   0x452520
4536d3:	8b 8f 94 00 00 00    	mov    0x94(%edi),%ecx
4536d9:	3b 4e 08             	cmp    0x8(%esi),%ecx
4536dc:	74 1b                	je     0x4536f9
4536de:	66 8b 45 ec          	mov    -0x14(%ebp),%ax
4536e2:	66 89 01             	mov    %ax,(%ecx)
4536e5:	83 46 04 02          	addl   $0x2,0x4(%esi)
4536e9:	5f                   	pop    %edi
4536ea:	5e                   	pop    %esi
4536eb:	8b 4d fc             	mov    -0x4(%ebp),%ecx
4536ee:	33 cd                	xor    %ebp,%ecx
4536f0:	e8 e5 dd 18 00       	call   0x5e14da
4536f5:	8b e5                	mov    %ebp,%esp
4536f7:	5d                   	pop    %ebp
4536f8:	c3                   	ret
4536f9:	8d 45 ec             	lea    -0x14(%ebp),%eax
4536fc:	50                   	push   %eax
4536fd:	51                   	push   %ecx
4536fe:	8b ce                	mov    %esi,%ecx
453700:	e8 1b ee ff ff       	call   0x452520
453705:	8b 4d fc             	mov    -0x4(%ebp),%ecx
453708:	5f                   	pop    %edi
453709:	33 cd                	xor    %ebp,%ecx
45370b:	5e                   	pop    %esi
45370c:	e8 c9 dd 18 00       	call   0x5e14da
453711:	8b e5                	mov    %ebp,%esp
453713:	5d                   	pop    %ebp
453714:	c3                   	ret
453715:	cc                   	int3
453716:	cc                   	int3
453717:	cc                   	int3
453718:	cc                   	int3
453719:	cc                   	int3
45371a:	cc                   	int3
45371b:	cc                   	int3
45371c:	cc                   	int3
45371d:	cc                   	int3
45371e:	cc                   	int3
45371f:	cc                   	int3
453720:	55                   	push   %ebp
453721:	8b ec                	mov    %esp,%ebp
453723:	8b 45 08             	mov    0x8(%ebp),%eax
453726:	3d ff ff ff 7f       	cmp    $0x7fffffff,%eax
45372b:	77 43                	ja     0x453770
45372d:	03 c0                	add    %eax,%eax
45372f:	3d 00 10 00 00       	cmp    $0x1000,%eax
453734:	72 23                	jb     0x453759
453736:	8d 48 23             	lea    0x23(%eax),%ecx
453739:	3b c8                	cmp    %eax,%ecx
45373b:	76 33                	jbe    0x453770
45373d:	51                   	push   %ecx
45373e:	e8 ff d8 18 00       	call   0x5e1042
453743:	8b c8                	mov    %eax,%ecx
453745:	83 c4 04             	add    $0x4,%esp
453748:	85 c9                	test   %ecx,%ecx
45374a:	74 29                	je     0x453775
45374c:	8d 41 23             	lea    0x23(%ecx),%eax
45374f:	83 e0 e0             	and    $0xffffffe0,%eax
453752:	89 48 fc             	mov    %ecx,-0x4(%eax)
453755:	5d                   	pop    %ebp
453756:	c2 04 00             	ret    $0x4
453759:	85 c0                	test   %eax,%eax
45375b:	74 0d                	je     0x45376a
45375d:	50                   	push   %eax
45375e:	e8 df d8 18 00       	call   0x5e1042
453763:	83 c4 04             	add    $0x4,%esp
453766:	5d                   	pop    %ebp
453767:	c2 04 00             	ret    $0x4
45376a:	33 c0                	xor    %eax,%eax
45376c:	5d                   	pop    %ebp
45376d:	c2 04 00             	ret    $0x4
453770:	e8 6b 17 ff ff       	call   0x444ee0
453775:	e8 b5 97 19 00       	call   0x5ecf2f
45377a:	cc                   	int3
45377b:	cc                   	int3
45377c:	cc                   	int3
45377d:	cc                   	int3
45377e:	cc                   	int3
45377f:	cc                   	int3
453780:	55                   	push   %ebp
453781:	8b ec                	mov    %esp,%ebp
453783:	83 ec 1c             	sub    $0x1c,%esp
453786:	8b 55 0c             	mov    0xc(%ebp),%edx
453789:	53                   	push   %ebx
45378a:	56                   	push   %esi
45378b:	8b f1                	mov    %ecx,%esi
45378d:	89 55 ec             	mov    %edx,-0x14(%ebp)
453790:	8b 4d 08             	mov    0x8(%ebp),%ecx
453793:	57                   	push   %edi
453794:	8b 7d 10             	mov    0x10(%ebp),%edi
453797:	8b 5e 10             	mov    0x10(%esi),%ebx
45379a:	89 4d f4             	mov    %ecx,-0xc(%ebp)
45379d:	3b d9                	cmp    %ecx,%ebx
45379f:	0f 82 b3 01 00 00    	jb     0x453958
4537a5:	8b 46 14             	mov    0x14(%esi),%eax
4537a8:	89 45 f8             	mov    %eax,-0x8(%ebp)
4537ab:	2b c3                	sub    %ebx,%eax
4537ad:	3b f8                	cmp    %eax,%edi
4537af:	0f 87 89 00 00 00    	ja     0x45383e
4537b5:	83 7d f8 10          	cmpl   $0x10,-0x8(%ebp)
4537b9:	8d 04 1f             	lea    (%edi,%ebx,1),%eax
4537bc:	89 46 10             	mov    %eax,0x10(%esi)
4537bf:	8b c6                	mov    %esi,%eax
4537c1:	89 75 fc             	mov    %esi,-0x4(%ebp)
4537c4:	72 05                	jb     0x4537cb
4537c6:	8b 06                	mov    (%esi),%eax
4537c8:	89 45 fc             	mov    %eax,-0x4(%ebp)
4537cb:	03 c8                	add    %eax,%ecx
4537cd:	8d 04 17             	lea    (%edi,%edx,1),%eax
4537d0:	89 45 f0             	mov    %eax,-0x10(%ebp)
4537d3:	3b c1                	cmp    %ecx,%eax
4537d5:	8b 45 fc             	mov    -0x4(%ebp),%eax
4537d8:	76 1a                	jbe    0x4537f4
4537da:	03 c3                	add    %ebx,%eax
4537dc:	3b d0                	cmp    %eax,%edx
4537de:	77 14                	ja     0x4537f4
4537e0:	3b ca                	cmp    %edx,%ecx
4537e2:	77 07                	ja     0x4537eb
4537e4:	33 c0                	xor    %eax,%eax
4537e6:	89 45 f8             	mov    %eax,-0x8(%ebp)
4537e9:	eb 0c                	jmp    0x4537f7
4537eb:	8b c1                	mov    %ecx,%eax
4537ed:	2b c2                	sub    %edx,%eax
4537ef:	89 45 f8             	mov    %eax,-0x8(%ebp)
4537f2:	eb 03                	jmp    0x4537f7
4537f4:	89 7d f8             	mov    %edi,-0x8(%ebp)
4537f7:	2b 5d f4             	sub    -0xc(%ebp),%ebx
4537fa:	8d 04 0f             	lea    (%edi,%ecx,1),%eax
4537fd:	43                   	inc    %ebx
4537fe:	53                   	push   %ebx
4537ff:	51                   	push   %ecx
453800:	50                   	push   %eax
453801:	e8 7a fc 18 00       	call   0x5e3480
453806:	8b 5d f8             	mov    -0x8(%ebp),%ebx
453809:	8b 45 f4             	mov    -0xc(%ebp),%eax
45380c:	03 45 fc             	add    -0x4(%ebp),%eax
45380f:	53                   	push   %ebx
453810:	ff 75 ec             	push   -0x14(%ebp)
453813:	50                   	push   %eax
453814:	e8 e7 f6 18 00       	call   0x5e2f00
453819:	8b 4d f0             	mov    -0x10(%ebp),%ecx
45381c:	2b fb                	sub    %ebx,%edi
45381e:	03 cb                	add    %ebx,%ecx
453820:	57                   	push   %edi
453821:	51                   	push   %ecx
453822:	8b 4d f4             	mov    -0xc(%ebp),%ecx
453825:	03 4d fc             	add    -0x4(%ebp),%ecx
453828:	03 cb                	add    %ebx,%ecx
45382a:	51                   	push   %ecx
45382b:	e8 d0 f6 18 00       	call   0x5e2f00
453830:	83 c4 24             	add    $0x24,%esp
453833:	8b c6                	mov    %esi,%eax
453835:	5f                   	pop    %edi
453836:	5e                   	pop    %esi
453837:	5b                   	pop    %ebx
453838:	8b e5                	mov    %ebp,%esp
45383a:	5d                   	pop    %ebp
45383b:	c2 0c 00             	ret    $0xc
45383e:	b9 ff ff ff 7f       	mov    $0x7fffffff,%ecx
453843:	8b c1                	mov    %ecx,%eax
453845:	2b c3                	sub    %ebx,%eax
453847:	3b c7                	cmp    %edi,%eax
453849:	0f 82 0e 01 00 00    	jb     0x45395d
45384f:	8d 14 1f             	lea    (%edi,%ebx,1),%edx
453852:	83 ca 0f             	or     $0xf,%edx
453855:	3b d1                	cmp    %ecx,%edx
453857:	76 04                	jbe    0x45385d
453859:	8b d1                	mov    %ecx,%edx
45385b:	eb 1f                	jmp    0x45387c
45385d:	8b 45 f8             	mov    -0x8(%ebp),%eax
453860:	89 45 fc             	mov    %eax,-0x4(%ebp)
453863:	d1 6d fc             	shrl   $1,-0x4(%ebp)
453866:	2b 4d fc             	sub    -0x4(%ebp),%ecx
453869:	3b c1                	cmp    %ecx,%eax
45386b:	76 07                	jbe    0x453874
45386d:	ba ff ff ff 7f       	mov    $0x7fffffff,%edx
453872:	eb 08                	jmp    0x45387c
453874:	03 45 fc             	add    -0x4(%ebp),%eax
453877:	3b d0                	cmp    %eax,%edx
453879:	0f 42 d0             	cmovb  %eax,%edx
45387c:	33 c9                	xor    %ecx,%ecx
45387e:	89 55 fc             	mov    %edx,-0x4(%ebp)
453881:	83 c2 01             	add    $0x1,%edx
453884:	0f 92 c1             	setb   %cl
453887:	f7 d9                	neg    %ecx
453889:	0b ca                	or     %edx,%ecx
45388b:	51                   	push   %ecx
45388c:	8b ce                	mov    %esi,%ecx
45388e:	e8 bd 5b fe ff       	call   0x439450
453893:	8b 4d fc             	mov    -0x4(%ebp),%ecx
453896:	8b d0                	mov    %eax,%edx
453898:	8d 04 1f             	lea    (%edi,%ebx,1),%eax
45389b:	89 4e 14             	mov    %ecx,0x14(%esi)
45389e:	89 46 10             	mov    %eax,0x10(%esi)
4538a1:	8b 45 f4             	mov    -0xc(%ebp),%eax
4538a4:	2b d8                	sub    %eax,%ebx
4538a6:	43                   	inc    %ebx
4538a7:	89 55 e4             	mov    %edx,-0x1c(%ebp)
4538aa:	89 5d e8             	mov    %ebx,-0x18(%ebp)
4538ad:	50                   	push   %eax
4538ae:	8d 0c 10             	lea    (%eax,%edx,1),%ecx
4538b1:	89 4d fc             	mov    %ecx,-0x4(%ebp)
4538b4:	8d 0c 38             	lea    (%eax,%edi,1),%ecx
4538b7:	03 ca                	add    %edx,%ecx
4538b9:	83 7d f8 10          	cmpl   $0x10,-0x8(%ebp)
4538bd:	89 4d f0             	mov    %ecx,-0x10(%ebp)
4538c0:	72 61                	jb     0x453923
4538c2:	8b 1e                	mov    (%esi),%ebx
4538c4:	53                   	push   %ebx
4538c5:	52                   	push   %edx
4538c6:	e8 35 f6 18 00       	call   0x5e2f00
4538cb:	57                   	push   %edi
4538cc:	ff 75 ec             	push   -0x14(%ebp)
4538cf:	ff 75 fc             	push   -0x4(%ebp)
4538d2:	e8 29 f6 18 00       	call   0x5e2f00
4538d7:	ff 75 e8             	push   -0x18(%ebp)
4538da:	8b 45 f4             	mov    -0xc(%ebp),%eax
4538dd:	03 c3                	add    %ebx,%eax
4538df:	50                   	push   %eax
4538e0:	ff 75 f0             	push   -0x10(%ebp)
4538e3:	e8 18 f6 18 00       	call   0x5e2f00
4538e8:	8b 4d f8             	mov    -0x8(%ebp),%ecx
4538eb:	83 c4 24             	add    $0x24,%esp
4538ee:	41                   	inc    %ecx
4538ef:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
4538f5:	72 12                	jb     0x453909
4538f7:	8b 53 fc             	mov    -0x4(%ebx),%edx
4538fa:	83 c1 23             	add    $0x23,%ecx
4538fd:	2b da                	sub    %edx,%ebx
4538ff:	8d 43 fc             	lea    -0x4(%ebx),%eax
453902:	83 f8 1f             	cmp    $0x1f,%eax
453905:	77 5b                	ja     0x453962
453907:	8b da                	mov    %edx,%ebx
453909:	51                   	push   %ecx
45390a:	53                   	push   %ebx
45390b:	e8 62 d7 18 00       	call   0x5e1072
453910:	8b 45 e4             	mov    -0x1c(%ebp),%eax
453913:	83 c4 08             	add    $0x8,%esp
453916:	89 06                	mov    %eax,(%esi)
453918:	8b c6                	mov    %esi,%eax
45391a:	5f                   	pop    %edi
45391b:	5e                   	pop    %esi
45391c:	5b                   	pop    %ebx
45391d:	8b e5                	mov    %ebp,%esp
45391f:	5d                   	pop    %ebp
453920:	c2 0c 00             	ret    $0xc
453923:	56                   	push   %esi
453924:	52                   	push   %edx
453925:	e8 d6 f5 18 00       	call   0x5e2f00
45392a:	57                   	push   %edi
45392b:	ff 75 ec             	push   -0x14(%ebp)
45392e:	ff 75 fc             	push   -0x4(%ebp)
453931:	e8 ca f5 18 00       	call   0x5e2f00
453936:	8b 45 f4             	mov    -0xc(%ebp),%eax
453939:	53                   	push   %ebx
45393a:	03 c6                	add    %esi,%eax
45393c:	50                   	push   %eax
45393d:	ff 75 f0             	push   -0x10(%ebp)
453940:	e8 bb f5 18 00       	call   0x5e2f00
453945:	8b 45 e4             	mov    -0x1c(%ebp),%eax
453948:	83 c4 24             	add    $0x24,%esp
45394b:	89 06                	mov    %eax,(%esi)
45394d:	8b c6                	mov    %esi,%eax
45394f:	5f                   	pop    %edi
453950:	5e                   	pop    %esi
453951:	5b                   	pop    %ebx
453952:	8b e5                	mov    %ebp,%esp
453954:	5d                   	pop    %ebp
453955:	c2 0c 00             	ret    $0xc
453958:	e8 f3 16 ff ff       	call   0x445050
45395d:	e8 ce 16 ff ff       	call   0x445030
453962:	e8 c8 95 19 00       	call   0x5ecf2f
453967:	cc                   	int3
453968:	cc                   	int3
453969:	cc                   	int3
45396a:	cc                   	int3
45396b:	cc                   	int3
45396c:	cc                   	int3
45396d:	cc                   	int3
45396e:	cc                   	int3
45396f:	cc                   	int3
453970:	55                   	push   %ebp
453971:	8b ec                	mov    %esp,%ebp
453973:	83 ec 0c             	sub    $0xc,%esp
453976:	56                   	push   %esi
453977:	8b f1                	mov    %ecx,%esi
453979:	57                   	push   %edi
45397a:	8b 7d 08             	mov    0x8(%ebp),%edi
45397d:	8b 56 10             	mov    0x10(%esi),%edx
453980:	89 55 f8             	mov    %edx,-0x8(%ebp)
453983:	3b d7                	cmp    %edi,%edx
453985:	0f 87 f7 00 00 00    	ja     0x453a82
45398b:	53                   	push   %ebx
45398c:	8b 5e 14             	mov    0x14(%esi),%ebx
45398f:	3b df                	cmp    %edi,%ebx
453991:	0f 84 ea 00 00 00    	je     0x453a81
453997:	0f 83 d5 00 00 00    	jae    0x453a72
45399d:	8b cf                	mov    %edi,%ecx
45399f:	b8 ff ff ff 7f       	mov    $0x7fffffff,%eax
4539a4:	2b ca                	sub    %edx,%ecx
4539a6:	2b c2                	sub    %edx,%eax
4539a8:	3b c1                	cmp    %ecx,%eax
4539aa:	0f 82 da 00 00 00    	jb     0x453a8a
4539b0:	8b d7                	mov    %edi,%edx