4856c0:	e8 78 62 f8 ff       	call   0x40b93d
4856c5:	85 c0                	test   %eax,%eax
4856c7:	7f 22                	jg     0x4856eb
4856c9:	79 11                	jns    0x4856dc
4856cb:	f7 d8                	neg    %eax
4856cd:	6a 00                	push   $0x0
4856cf:	50                   	push   %eax
4856d0:	8b 06                	mov    (%esi),%eax
4856d2:	8b 48 04             	mov    0x4(%eax),%ecx
4856d5:	03 ce                	add    %esi,%ecx
4856d7:	e8 c7 13 fd ff       	call   0x456aa3
4856dc:	8b 4d 0c             	mov    0xc(%ebp),%ecx
4856df:	68 10 f9 48 00       	push   $0x48f910
4856e4:	e8 0f 45 f8 ff       	call   0x409bf8
4856e9:	eb 49                	jmp    0x485734
4856eb:	8b 86 f0 01 00 00    	mov    0x1f0(%esi),%eax
4856f1:	ff 30                	push   (%eax)
4856f3:	e8 a2 0a f9 ff       	call   0x41619a
4856f8:	84 c0                	test   %al,%al
4856fa:	75 38                	jne    0x485734
4856fc:	8d 4c 24 08          	lea    0x8(%esp),%ecx
485700:	e8 c2 20 f8 ff       	call   0x4077c7
485705:	8b 8e f0 01 00 00    	mov    0x1f0(%esi),%ecx
48570b:	8d 44 24 08          	lea    0x8(%esp),%eax
48570f:	8a 96 dc 02 00 00    	mov    0x2dc(%esi),%dl
485715:	50                   	push   %eax
485716:	8b 09                	mov    (%ecx),%ecx
485718:	e8 25 f4 fd ff       	call   0x464b42
48571d:	59                   	pop    %ecx
48571e:	8b 4d 0c             	mov    0xc(%ebp),%ecx
485721:	8d 44 24 08          	lea    0x8(%esp),%eax
485725:	50                   	push   %eax
485726:	e8 71 44 f8 ff       	call   0x409b9c
48572b:	8d 4c 24 08          	lea    0x8(%esp),%ecx
48572f:	e8 30 03 f8 ff       	call   0x405a64
485734:	33 c0                	xor    %eax,%eax
485736:	5e                   	pop    %esi
485737:	8b e5                	mov    %ebp,%esp
485739:	5d                   	pop    %ebp
48573a:	c2 08 00             	ret    $0x8
48573d:	55                   	push   %ebp
48573e:	8b ec                	mov    %esp,%ebp
485740:	83 e4 f8             	and    $0xfffffff8,%esp
485743:	83 ec 14             	sub    $0x14,%esp
485746:	56                   	push   %esi
485747:	ff 75 08             	push   0x8(%ebp)
48574a:	8b f1                	mov    %ecx,%esi
48574c:	e8 5c 62 f8 ff       	call   0x40b9ad
485751:	6a 01                	push   $0x1
485753:	8b ce                	mov    %esi,%ecx
485755:	e8 e3 61 f8 ff       	call   0x40b93d
48575a:	85 c0                	test   %eax,%eax
48575c:	7f 22                	jg     0x485780
48575e:	79 11                	jns    0x485771
485760:	f7 d8                	neg    %eax
485762:	6a 00                	push   $0x0
485764:	50                   	push   %eax
485765:	8b 06                	mov    (%esi),%eax
485767:	8b 48 04             	mov    0x4(%eax),%ecx
48576a:	03 ce                	add    %esi,%ecx
48576c:	e8 32 13 fd ff       	call   0x456aa3
485771:	8b 4d 0c             	mov    0xc(%ebp),%ecx
485774:	68 10 f9 48 00       	push   $0x48f910
485779:	e8 7a 44 f8 ff       	call   0x409bf8
48577e:	eb 2f                	jmp    0x4857af
485780:	8d 4c 24 08          	lea    0x8(%esp),%ecx
485784:	e8 3e 20 f8 ff       	call   0x4077c7
485789:	8b 8e f0 01 00 00    	mov    0x1f0(%esi),%ecx
48578f:	8d 44 24 08          	lea    0x8(%esp),%eax
485793:	50                   	push   %eax
485794:	e8 43 58 fd ff       	call   0x45afdc
485799:	8b 4d 0c             	mov    0xc(%ebp),%ecx
48579c:	8d 44 24 08          	lea    0x8(%esp),%eax
4857a0:	50                   	push   %eax
4857a1:	e8 f6 43 f8 ff       	call   0x409b9c
4857a6:	8d 4c 24 08          	lea    0x8(%esp),%ecx
4857aa:	e8 b5 02 f8 ff       	call   0x405a64
4857af:	33 c0                	xor    %eax,%eax
4857b1:	5e                   	pop    %esi
4857b2:	8b e5                	mov    %ebp,%esp
4857b4:	5d                   	pop    %ebp
4857b5:	c2 08 00             	ret    $0x8
4857b8:	55                   	push   %ebp
4857b9:	8b ec                	mov    %esp,%ebp
4857bb:	56                   	push   %esi
4857bc:	ff 75 08             	push   0x8(%ebp)
4857bf:	8b f1                	mov    %ecx,%esi
4857c1:	e8 e7 61 f8 ff       	call   0x40b9ad
4857c6:	6a 01                	push   $0x1
4857c8:	8b ce                	mov    %esi,%ecx
4857ca:	e8 6e 61 f8 ff       	call   0x40b93d
4857cf:	85 c0                	test   %eax,%eax
4857d1:	7f 29                	jg     0x4857fc
4857d3:	79 11                	jns    0x4857e6
4857d5:	f7 d8                	neg    %eax
4857d7:	6a 00                	push   $0x0
4857d9:	50                   	push   %eax
4857da:	8b 06                	mov    (%esi),%eax
4857dc:	8b 48 04             	mov    0x4(%eax),%ecx
4857df:	03 ce                	add    %esi,%ecx
4857e1:	e8 bd 12 fd ff       	call   0x456aa3
4857e6:	8b 75 0c             	mov    0xc(%ebp),%esi
4857e9:	8b ce                	mov    %esi,%ecx
4857eb:	e8 30 42 f8 ff       	call   0x409a20
4857f0:	83 26 00             	andl   $0x0,(%esi)
4857f3:	c7 46 0c 01 00 00 00 	movl   $0x1,0xc(%esi)
4857fa:	eb 18                	jmp    0x485814
4857fc:	8b 8e f0 01 00 00    	mov    0x1f0(%esi),%ecx
485802:	8b 09                	mov    (%ecx),%ecx
485804:	e8 82 fe fd ff       	call   0x46568b
485809:	8b 8e f4 02 00 00    	mov    0x2f4(%esi),%ecx
48580f:	e8 d2 fc fd ff       	call   0x4654e6
485814:	33 c0                	xor    %eax,%eax
485816:	5e                   	pop    %esi
485817:	5d                   	pop    %ebp
485818:	c2 08 00             	ret    $0x8
48581b:	55                   	push   %ebp
48581c:	8b ec                	mov    %esp,%ebp
48581e:	83 e4 f8             	and    $0xfffffff8,%esp
485821:	83 ec 2c             	sub    $0x2c,%esp
485824:	53                   	push   %ebx
485825:	56                   	push   %esi
485826:	57                   	push   %edi
485827:	68 00 00 01 00       	push   $0x10000
48582c:	8b f9                	mov    %ecx,%edi
48582e:	e8 c3 b7 f9 ff       	call   0x420ff6
485833:	59                   	pop    %ecx
485834:	50                   	push   %eax
485835:	8d 4c 24 14          	lea    0x14(%esp),%ecx
485839:	e8 50 fb f7 ff       	call   0x40538e
48583e:	8b 87 d4 02 00 00    	mov    0x2d4(%edi),%eax
485844:	8d 8f d0 01 00 00    	lea    0x1d0(%edi),%ecx
48584a:	68 b0 a5 4b 00       	push   $0x4ba5b0
48584f:	89 44 24 10          	mov    %eax,0x10(%esp)
485853:	e8 a0 43 f8 ff       	call   0x409bf8
485858:	8d 8f e0 01 00 00    	lea    0x1e0(%edi),%ecx
48585e:	68 10 f9 48 00       	push   $0x48f910
485863:	e8 c4 24 f8 ff       	call   0x407d2c
485868:	8b 5d 08             	mov    0x8(%ebp),%ebx
48586b:	8b 43 08             	mov    0x8(%ebx),%eax
48586e:	85 c0                	test   %eax,%eax
485870:	75 0c                	jne    0x48587e
485872:	c7 87 d4 02 00 00 04 	movl   $0x4,0x2d4(%edi)
485879:	00 00 00
48587c:	eb 3b                	jmp    0x4858b9
48587e:	8b 43 04             	mov    0x4(%ebx),%eax
485881:	8b 30                	mov    (%eax),%esi
485883:	8b ce                	mov    %esi,%ecx
485885:	e8 0d 41 f8 ff       	call   0x409997
48588a:	ff 76 08             	push   0x8(%esi)
48588d:	8d 8f d0 01 00 00    	lea    0x1d0(%edi),%ecx
485893:	e8 04 43 f8 ff       	call   0x409b9c
485898:	83 7b 08 01          	cmpl   $0x1,0x8(%ebx)
48589c:	76 1b                	jbe    0x4858b9
48589e:	8b 43 04             	mov    0x4(%ebx),%eax
4858a1:	8b 70 04             	mov    0x4(%eax),%esi
4858a4:	8b ce                	mov    %esi,%ecx
4858a6:	e8 ec 40 f8 ff       	call   0x409997
4858ab:	ff 76 08             	push   0x8(%esi)
4858ae:	8d 8f e0 01 00 00    	lea    0x1e0(%edi),%ecx
4858b4:	e8 ee 28 f8 ff       	call   0x4081a7
4858b9:	33 db                	xor    %ebx,%ebx
4858bb:	8b cf                	mov    %edi,%ecx
4858bd:	53                   	push   %ebx
4858be:	e8 7a 60 f8 ff       	call   0x40b93d
4858c3:	85 c0                	test   %eax,%eax
4858c5:	79 28                	jns    0x4858ef
4858c7:	f7 d8                	neg    %eax
4858c9:	53                   	push   %ebx
4858ca:	50                   	push   %eax
4858cb:	8b 07                	mov    (%edi),%eax
4858cd:	8b 48 04             	mov    0x4(%eax),%ecx
4858d0:	03 cf                	add    %edi,%ecx
4858d2:	e8 cc 11 fd ff       	call   0x456aa3
4858d7:	8b 75 0c             	mov    0xc(%ebp),%esi
4858da:	8b ce                	mov    %esi,%ecx
4858dc:	e8 3f 41 f8 ff       	call   0x409a20
4858e1:	c7 46 0c 01 00 00 00 	movl   $0x1,0xc(%esi)
4858e8:	89 1e                	mov    %ebx,(%esi)
4858ea:	e9 0d 01 00 00       	jmp    0x4859fc
4858ef:	8b 44 24 0c          	mov    0xc(%esp),%eax
4858f3:	8b 4d 0c             	mov    0xc(%ebp),%ecx
4858f6:	8b 9f e8 02 00 00    	mov    0x2e8(%edi),%ebx
4858fc:	89 87 d4 02 00 00    	mov    %eax,0x2d4(%edi)
485902:	e8 27 3b f8 ff       	call   0x40942e
485907:	6a 02                	push   $0x2
485909:	8d 4b 01             	lea    0x1(%ebx),%ecx
48590c:	8b f0                	mov    %eax,%esi
48590e:	51                   	push   %ecx
48590f:	6a 02                	push   $0x2
485911:	56                   	push   %esi
485912:	89 74 24 1c          	mov    %esi,0x1c(%esp)
485916:	e8 95 38 f8 ff       	call   0x4091b0
48591b:	33 c0                	xor    %eax,%eax
48591d:	89 5c 24 28          	mov    %ebx,0x28(%esp)
485921:	50                   	push   %eax
485922:	50                   	push   %eax
485923:	89 44 24 38          	mov    %eax,0x38(%esp)
485927:	8d 44 24 30          	lea    0x30(%esp),%eax
48592b:	6a 02                	push   $0x2
48592d:	50                   	push   %eax
48592e:	56                   	push   %esi
48592f:	c7 44 24 48 01 00 00 	movl   $0x1,0x48(%esp)
485936:	00
485937:	e8 04 37 f8 ff       	call   0x409040
48593c:	83 c4 24             	add    $0x24,%esp
48593f:	8d 4c 24 18          	lea    0x18(%esp),%ecx
485943:	e8 d8 40 f8 ff       	call   0x409a20
485948:	33 f6                	xor    %esi,%esi
48594a:	46                   	inc    %esi
48594b:	3b de                	cmp    %esi,%ebx
48594d:	0f 8c a9 00 00 00    	jl     0x4859fc
485953:	8b 87 e4 02 00 00    	mov    0x2e4(%edi),%eax
485959:	68 ff 7f 00 00       	push   $0x7fff
48595e:	ff 74 24 14          	push   0x14(%esp)
485962:	8b 44 b0 fc          	mov    -0x4(%eax,%esi,4),%eax
485966:	ff 30                	push   (%eax)
485968:	ff 15 6c f6 48 00    	call   *0x48f66c
48596e:	6a 10                	push   $0x10
485970:	e8 81 b6 f9 ff       	call   0x420ff6
485975:	59                   	pop    %ecx
485976:	85 c0                	test   %eax,%eax
485978:	74 11                	je     0x48598b
48597a:	ff 74 24 10          	push   0x10(%esp)
48597e:	8b c8                	mov    %eax,%ecx
485980:	e8 bc 25 f8 ff       	call   0x407f41
485985:	89 44 24 20          	mov    %eax,0x20(%esp)
485989:	eb 05                	jmp    0x485990
48598b:	83 64 24 20 00       	andl   $0x0,0x20(%esp)
485990:	6a 00                	push   $0x0
485992:	56                   	push   %esi
485993:	6a 02                	push   $0x2
485995:	8d 44 24 24          	lea    0x24(%esp),%eax
485999:	c7 44 24 30 04 00 00 	movl   $0x4,0x30(%esp)
4859a0:	00
4859a1:	50                   	push   %eax
4859a2:	ff 74 24 1c          	push   0x1c(%esp)
4859a6:	e8 95 36 f8 ff       	call   0x409040
4859ab:	83 c4 14             	add    $0x14,%esp
4859ae:	8d 4c 24 18          	lea    0x18(%esp),%ecx
4859b2:	e8 69 40 f8 ff       	call   0x409a20
4859b7:	8b 87 e4 02 00 00    	mov    0x2e4(%edi),%eax
4859bd:	83 64 24 30 00       	andl   $0x0,0x30(%esp)
4859c2:	6a 01                	push   $0x1
4859c4:	56                   	push   %esi
4859c5:	8b 44 b0 fc          	mov    -0x4(%eax,%esi,4),%eax
4859c9:	6a 02                	push   $0x2
4859cb:	c7 44 24 40 07 00 00 	movl   $0x7,0x40(%esp)
4859d2:	00
4859d3:	8b 00                	mov    (%eax),%eax
4859d5:	89 44 24 34          	mov    %eax,0x34(%esp)
4859d9:	8d 44 24 34          	lea    0x34(%esp),%eax
4859dd:	50                   	push   %eax
4859de:	ff 74 24 1c          	push   0x1c(%esp)
4859e2:	e8 59 36 f8 ff       	call   0x409040
4859e7:	83 c4 14             	add    $0x14,%esp
4859ea:	8d 4c 24 28          	lea    0x28(%esp),%ecx
4859ee:	e8 2d 40 f8 ff       	call   0x409a20
4859f3:	46                   	inc    %esi
4859f4:	3b f3                	cmp    %ebx,%esi
4859f6:	0f 8e 57 ff ff ff    	jle    0x485953
4859fc:	8b 44 24 14          	mov    0x14(%esp),%eax
485a00:	ff 08                	decl   (%eax)
485a02:	75 11                	jne    0x485a15
485a04:	50                   	push   %eax
485a05:	e8 62 b6 f9 ff       	call   0x42106c
485a0a:	59                   	pop    %ecx
485a0b:	ff 74 24 10          	push   0x10(%esp)
485a0f:	e8 58 b6 f9 ff       	call   0x42106c
485a14:	59                   	pop    %ecx
485a15:	5f                   	pop    %edi
485a16:	5e                   	pop    %esi
485a17:	33 c0                	xor    %eax,%eax
485a19:	5b                   	pop    %ebx
485a1a:	8b e5                	mov    %ebp,%esp
485a1c:	5d                   	pop    %ebp
485a1d:	c2 08 00             	ret    $0x8
485a20:	55                   	push   %ebp
485a21:	8b ec                	mov    %esp,%ebp
485a23:	83 ec 24             	sub    $0x24,%esp
485a26:	53                   	push   %ebx
485a27:	56                   	push   %esi
485a28:	8b 75 08             	mov    0x8(%ebp),%esi
485a2b:	8b d9                	mov    %ecx,%ebx
485a2d:	57                   	push   %edi
485a2e:	68 00 00 01 00       	push   $0x10000
485a33:	8b 46 08             	mov    0x8(%esi),%eax
485a36:	89 45 f0             	mov    %eax,-0x10(%ebp)
485a39:	e8 b8 b5 f9 ff       	call   0x420ff6
485a3e:	59                   	pop    %ecx
485a3f:	50                   	push   %eax
485a40:	8d 4d dc             	lea    -0x24(%ebp),%ecx
485a43:	e8 46 f9 f7 ff       	call   0x40538e
485a48:	33 ff                	xor    %edi,%edi
485a4a:	8b cb                	mov    %ebx,%ecx
485a4c:	56                   	push   %esi
485a4d:	89 7d ec             	mov    %edi,-0x14(%ebp)
485a50:	e8 58 5f f8 ff       	call   0x40b9ad
485a55:	6a 01                	push   $0x1
485a57:	8b cb                	mov    %ebx,%ecx
485a59:	e8 df 5e f8 ff       	call   0x40b93d
485a5e:	85 c0                	test   %eax,%eax
485a60:	7f 14                	jg     0x485a76
485a62:	79 2d                	jns    0x485a91
485a64:	f7 d8                	neg    %eax
485a66:	57                   	push   %edi
485a67:	50                   	push   %eax
485a68:	8b 03                	mov    (%ebx),%eax
485a6a:	8b 48 04             	mov    0x4(%eax),%ecx
485a6d:	03 cb                	add    %ebx,%ecx
485a6f:	e8 2f 10 fd ff       	call   0x456aa3
485a74:	eb 1b                	jmp    0x485a91
485a76:	8b 83 f0 01 00 00    	mov    0x1f0(%ebx),%eax
485a7c:	8b 00                	mov    (%eax),%eax
485a7e:	50                   	push   %eax
485a7f:	89 45 e4             	mov    %eax,-0x1c(%ebp)
485a82:	ff 15 38 f6 48 00    	call   *0x48f638
485a88:	8b f0                	mov    %eax,%esi
485a8a:	89 75 f8             	mov    %esi,-0x8(%ebp)
485a8d:	85 f6                	test   %esi,%esi
485a8f:	75 18                	jne    0x485aa9
485a91:	8b 75 0c             	mov    0xc(%ebp),%esi
485a94:	8b ce                	mov    %esi,%ecx
485a96:	e8 85 3f f8 ff       	call   0x409a20
485a9b:	c7 46 0c 01 00 00 00 	movl   $0x1,0xc(%esi)
485aa2:	89 3e                	mov    %edi,(%esi)
485aa4:	e9 20 01 00 00       	jmp    0x485bc9
485aa9:	6a 03                	push   $0x3
485aab:	5f                   	pop    %edi
485aac:	89 7d f4             	mov    %edi,-0xc(%ebp)
485aaf:	39 7d f0             	cmp    %edi,-0x10(%ebp)
485ab2:	0f 82 e0 00 00 00    	jb     0x485b98
485ab8:	56                   	push   %esi
485ab9:	ff 15 cc f5 48 00    	call   *0x48f5cc
485abf:	8b c8                	mov    %eax,%ecx
485ac1:	85 c9                	test   %ecx,%ecx
485ac3:	0f 84 b9 00 00 00    	je     0x485b82
485ac9:	33 c0                	xor    %eax,%eax
485acb:	49                   	dec    %ecx
485acc:	89 45 fc             	mov    %eax,-0x4(%ebp)
485acf:	89 4d e8             	mov    %ecx,-0x18(%ebp)
485ad2:	68 00 04 00 00       	push   $0x400
485ad7:	68 ff 7f 00 00       	push   $0x7fff
485adc:	ff 75 dc             	push   -0x24(%ebp)
485adf:	50                   	push   %eax
485ae0:	56                   	push   %esi
485ae1:	ff 15 f8 f4 48 00    	call   *0x48f4f8
485ae7:	8b 45 08             	mov    0x8(%ebp),%eax
485aea:	8b 40 04             	mov    0x4(%eax),%eax
485aed:	8b 74 b8 fc          	mov    -0x4(%eax,%edi,4),%esi