58d758:	83 44 24 48 04       	addl   $0x4,0x48(%esp)
58d75d:	83 44 24 44 04       	addl   $0x4,0x44(%esp)
58d762:	83 fb 03             	cmp    $0x3,%ebx
58d765:	75 98                	jne    0x58d6ff
58d767:	33 db                	xor    %ebx,%ebx
58d769:	b8 ac 3c 6a 00       	mov    $0x6a3cac,%eax
58d76e:	89 44 24 48          	mov    %eax,0x48(%esp)
58d772:	8d 44 24 64          	lea    0x64(%esp),%eax
58d776:	89 44 24 44          	mov    %eax,0x44(%esp)
58d77a:	b8 a0 3c 6a 00       	mov    $0x6a3ca0,%eax
58d77f:	89 44 24 40          	mov    %eax,0x40(%esp)
58d783:	33 c0                	xor    %eax,%eax
58d785:	89 44 24 1c          	mov    %eax,0x1c(%esp)
58d789:	bf 03 00 00 00       	mov    $0x3,%edi
58d78e:	8b 44 24 48          	mov    0x48(%esp),%eax
58d792:	89 44 24 4c          	mov    %eax,0x4c(%esp)
58d796:	8d 44 24 70          	lea    0x70(%esp),%eax
58d79a:	89 44 24 50          	mov    %eax,0x50(%esp)
58d79e:	be 03 00 00 00       	mov    $0x3,%esi
58d7a3:	8b 44 24 4c          	mov    0x4c(%esp),%eax
58d7a7:	8b 54 24 50          	mov    0x50(%esp),%edx
58d7ab:	8b 08                	mov    (%eax),%ecx
58d7ad:	0f af 0a             	imul   (%edx),%ecx
58d7b0:	01 4c 24 1c          	add    %ecx,0x1c(%esp)
58d7b4:	83 c2 04             	add    $0x4,%edx
58d7b7:	83 c0 04             	add    $0x4,%eax
58d7ba:	4e                   	dec    %esi
58d7bb:	75 ee                	jne    0x58d7ab
58d7bd:	83 44 24 50 0c       	addl   $0xc,0x50(%esp)
58d7c2:	83 44 24 4c 0c       	addl   $0xc,0x4c(%esp)
58d7c7:	4f                   	dec    %edi
58d7c8:	75 d4                	jne    0x58d79e
58d7ca:	ba 0e 00 00 00       	mov    $0xe,%edx
58d7cf:	8b 44 24 1c          	mov    0x1c(%esp),%eax
58d7d3:	e8 30 fe ff ff       	call   0x58d608
58d7d8:	8b 54 24 44          	mov    0x44(%esp),%edx
58d7dc:	03 02                	add    (%edx),%eax
58d7de:	89 84 24 dc 00 00 00 	mov    %eax,0xdc(%esp)
58d7e5:	db 84 24 dc 00 00 00 	fildl  0xdc(%esp)
58d7ec:	8b 44 24 40          	mov    0x40(%esp),%eax
58d7f0:	d8 08                	fmuls  (%eax)
58d7f2:	e8 d5 54 e7 ff       	call   0x402ccc
58d7f7:	8b 54 24 44          	mov    0x44(%esp),%edx
58d7fb:	89 02                	mov    %eax,(%edx)
58d7fd:	8b 44 24 44          	mov    0x44(%esp),%eax
58d801:	83 38 00             	cmpl   $0x0,(%eax)
58d804:	7d 08                	jge    0x58d80e
58d806:	8b 44 24 44          	mov    0x44(%esp),%eax
58d80a:	33 d2                	xor    %edx,%edx
58d80c:	89 10                	mov    %edx,(%eax)
58d80e:	8b 44 24 44          	mov    0x44(%esp),%eax
58d812:	81 38 00 7d 00 00    	cmpl   $0x7d00,(%eax)
58d818:	7e 0a                	jle    0x58d824
58d81a:	8b 44 24 44          	mov    0x44(%esp),%eax
58d81e:	c7 00 00 7d 00 00    	movl   $0x7d00,(%eax)
58d824:	8b 44 24 44          	mov    0x44(%esp),%eax
58d828:	66 8b 00             	mov    (%eax),%ax
58d82b:	8b 54 24 04          	mov    0x4(%esp),%edx
58d82f:	66 89 04 5a          	mov    %ax,(%edx,%ebx,2)
58d833:	43                   	inc    %ebx
58d834:	83 44 24 40 04       	addl   $0x4,0x40(%esp)
58d839:	83 44 24 44 04       	addl   $0x4,0x44(%esp)
58d83e:	83 44 24 48 24       	addl   $0x24,0x48(%esp)
58d843:	83 fb 03             	cmp    $0x3,%ebx
58d846:	0f 85 37 ff ff ff    	jne    0x58d783
58d84c:	83 44 24 04 08       	addl   $0x8,0x4(%esp)
58d851:	ff 4c 24 3c          	decl   0x3c(%esp)
58d855:	0f 85 35 fe ff ff    	jne    0x58d690
58d85b:	ff 44 24 14          	incl   0x14(%esp)
58d85f:	ff 4c 24 38          	decl   0x38(%esp)
58d863:	0f 85 e5 fd ff ff    	jne    0x58d64e
58d869:	8b 04 24             	mov    (%esp),%eax
58d86c:	8b 80 fc 00 00 00    	mov    0xfc(%eax),%eax
58d872:	8d 04 80             	lea    (%eax,%eax,4),%eax
58d875:	c1 e0 02             	shl    $0x2,%eax
58d878:	8d 04 40             	lea    (%eax,%eax,2),%eax
58d87b:	e8 34 b8 e7 ff       	call   0x4090b4
58d880:	89 84 24 bc 00 00 00 	mov    %eax,0xbc(%esp)
58d887:	ba 74 e5 58 00       	mov    $0x58e574,%edx
58d88c:	8b 84 24 bc 00 00 00 	mov    0xbc(%esp),%eax
58d893:	e8 2c b2 ff ff       	call   0x588ac4
58d898:	33 ff                	xor    %edi,%edi
58d89a:	8d 84 24 a4 00 00 00 	lea    0xa4(%esp),%eax
58d8a1:	89 44 24 54          	mov    %eax,0x54(%esp)
58d8a5:	8b 04 24             	mov    (%esp),%eax
58d8a8:	8b 80 fc 00 00 00    	mov    0xfc(%eax),%eax
58d8ae:	f7 ef                	imul   %edi
58d8b0:	c1 e0 02             	shl    $0x2,%eax
58d8b3:	8d 04 40             	lea    (%eax,%eax,2),%eax
58d8b6:	03 84 24 bc 00 00 00 	add    0xbc(%esp),%eax
58d8bd:	8b 54 24 54          	mov    0x54(%esp),%edx
58d8c1:	89 02                	mov    %eax,(%edx)
58d8c3:	47                   	inc    %edi
58d8c4:	83 44 24 54 04       	addl   $0x4,0x54(%esp)
58d8c9:	83 ff 05             	cmp    $0x5,%edi
58d8cc:	75 d7                	jne    0x58d8a5
58d8ce:	c7 44 24 20 ff ff ff 	movl   $0xffffffff,0x20(%esp)
58d8d5:	ff
58d8d6:	8b 04 24             	mov    (%esp),%eax
58d8d9:	8b 80 f8 00 00 00    	mov    0xf8(%eax),%eax
58d8df:	83 e8 02             	sub    $0x2,%eax
58d8e2:	48                   	dec    %eax
58d8e3:	83 e8 02             	sub    $0x2,%eax
58d8e6:	0f 8c 37 02 00 00    	jl     0x58db23
58d8ec:	40                   	inc    %eax
58d8ed:	89 44 24 38          	mov    %eax,0x38(%esp)
58d8f1:	c7 44 24 14 02 00 00 	movl   $0x2,0x14(%esp)
58d8f8:	00
58d8f9:	e9 dc 00 00 00       	jmp    0x58d9da
58d8fe:	33 ff                	xor    %edi,%edi
58d900:	8d 8c 24 a4 00 00 00 	lea    0xa4(%esp),%ecx
58d907:	8d 47 05             	lea    0x5(%edi),%eax
58d90a:	bb 06 00 00 00       	mov    $0x6,%ebx
58d90f:	99                   	cltd
58d910:	f7 fb                	idiv   %ebx
58d912:	8b 01                	mov    (%ecx),%eax
58d914:	89 84 94 a4 00 00 00 	mov    %eax,0xa4(%esp,%edx,4)
58d91b:	47                   	inc    %edi
58d91c:	83 c1 04             	add    $0x4,%ecx
58d91f:	83 ff 06             	cmp    $0x6,%edi
58d922:	75 e3                	jne    0x58d907
58d924:	ff 44 24 20          	incl   0x20(%esp)
58d928:	8b 04 24             	mov    (%esp),%eax
58d92b:	8b 80 fc 00 00 00    	mov    0xfc(%eax),%eax
58d931:	f7 6c 24 20          	imull  0x20(%esp)
58d935:	8b 14 24             	mov    (%esp),%edx
58d938:	8b 12                	mov    (%edx),%edx
58d93a:	8d 44 c2 10          	lea    0x10(%edx,%eax,8),%eax
58d93e:	89 44 24 04          	mov    %eax,0x4(%esp)
58d942:	8b 04 24             	mov    (%esp),%eax
58d945:	8b 80 fc 00 00 00    	mov    0xfc(%eax),%eax
58d94b:	83 e8 02             	sub    $0x2,%eax
58d94e:	48                   	dec    %eax
58d94f:	83 e8 02             	sub    $0x2,%eax
58d952:	0f 8c 82 00 00 00    	jl     0x58d9da
58d958:	40                   	inc    %eax
58d959:	89 44 24 3c          	mov    %eax,0x3c(%esp)
58d95d:	c7 44 24 18 02 00 00 	movl   $0x2,0x18(%esp)
58d964:	00
58d965:	8b 44 24 04          	mov    0x4(%esp),%eax
58d969:	89 44 24 30          	mov    %eax,0x30(%esp)
58d96d:	83 6c 24 30 08       	subl   $0x8,0x30(%esp)
58d972:	8b 44 24 04          	mov    0x4(%esp),%eax
58d976:	89 44 24 34          	mov    %eax,0x34(%esp)
58d97a:	83 6c 24 34 10       	subl   $0x10,0x34(%esp)
58d97f:	8b 44 24 30          	mov    0x30(%esp),%eax
58d983:	0f b7 00             	movzwl (%eax),%eax
58d986:	8b 54 24 04          	mov    0x4(%esp),%edx
58d98a:	0f b7 52 08          	movzwl 0x8(%edx),%edx
58d98e:	03 c2                	add    %edx,%eax
58d990:	c1 e0 02             	shl    $0x2,%eax
58d993:	8b 54 24 04          	mov    0x4(%esp),%edx
58d997:	0f b7 12             	movzwl (%edx),%edx
58d99a:	03 d2                	add    %edx,%edx
58d99c:	8d 14 52             	lea    (%edx,%edx,2),%edx
58d99f:	03 c2                	add    %edx,%eax
58d9a1:	8b 54 24 34          	mov    0x34(%esp),%edx
58d9a5:	0f b7 12             	movzwl (%edx),%edx
58d9a8:	03 c2                	add    %edx,%eax
58d9aa:	8b 54 24 04          	mov    0x4(%esp),%edx
58d9ae:	0f b7 52 10          	movzwl 0x10(%edx),%edx
58d9b2:	03 c2                	add    %edx,%eax
58d9b4:	83 c0 08             	add    $0x8,%eax
58d9b7:	c1 e8 04             	shr    $0x4,%eax
58d9ba:	8b 54 24 18          	mov    0x18(%esp),%edx
58d9be:	8d 14 52             	lea    (%edx,%edx,2),%edx
58d9c1:	8b 8c 24 b4 00 00 00 	mov    0xb4(%esp),%ecx
58d9c8:	89 04 91             	mov    %eax,(%ecx,%edx,4)
58d9cb:	83 44 24 04 08       	addl   $0x8,0x4(%esp)
58d9d0:	ff 44 24 18          	incl   0x18(%esp)
58d9d4:	ff 4c 24 3c          	decl   0x3c(%esp)
58d9d8:	75 8b                	jne    0x58d965
58d9da:	8b 44 24 14          	mov    0x14(%esp),%eax
58d9de:	83 c0 02             	add    $0x2,%eax
58d9e1:	3b 44 24 20          	cmp    0x20(%esp),%eax
58d9e5:	0f 8f 13 ff ff ff    	jg     0x58d8fe
58d9eb:	8b 04 24             	mov    (%esp),%eax
58d9ee:	8b 80 fc 00 00 00    	mov    0xfc(%eax),%eax
58d9f4:	f7 6c 24 14          	imull  0x14(%esp)
58d9f8:	8b 14 24             	mov    (%esp),%edx
58d9fb:	8b 12                	mov    (%edx),%edx
58d9fd:	8d 44 c2 10          	lea    0x10(%edx,%eax,8),%eax
58da01:	89 44 24 04          	mov    %eax,0x4(%esp)
58da05:	8b 04 24             	mov    (%esp),%eax
58da08:	8b 80 fc 00 00 00    	mov    0xfc(%eax),%eax
58da0e:	83 e8 02             	sub    $0x2,%eax
58da11:	48                   	dec    %eax
58da12:	83 e8 02             	sub    $0x2,%eax
58da15:	0f 8c fa 00 00 00    	jl     0x58db15
58da1b:	40                   	inc    %eax
58da1c:	89 44 24 3c          	mov    %eax,0x3c(%esp)
58da20:	c7 44 24 18 02 00 00 	movl   $0x2,0x18(%esp)
58da27:	00
58da28:	8b 44 24 18          	mov    0x18(%esp),%eax
58da2c:	8d 04 40             	lea    (%eax,%eax,2),%eax
58da2f:	8b 94 24 a8 00 00 00 	mov    0xa8(%esp),%edx
58da36:	8b 04 82             	mov    (%edx,%eax,4),%eax
58da39:	8b 54 24 18          	mov    0x18(%esp),%edx
58da3d:	8d 14 52             	lea    (%edx,%edx,2),%edx
58da40:	8b 8c 24 b0 00 00 00 	mov    0xb0(%esp),%ecx
58da47:	03 04 91             	add    (%ecx,%edx,4),%eax
58da4a:	c1 e0 02             	shl    $0x2,%eax
58da4d:	8b 54 24 18          	mov    0x18(%esp),%edx
58da51:	8d 14 52             	lea    (%edx,%edx,2),%edx
58da54:	8b 8c 24 ac 00 00 00 	mov    0xac(%esp),%ecx
58da5b:	8b 14 91             	mov    (%ecx,%edx,4),%edx
58da5e:	03 d2                	add    %edx,%edx
58da60:	8d 14 52             	lea    (%edx,%edx,2),%edx
58da63:	03 c2                	add    %edx,%eax
58da65:	8b 54 24 18          	mov    0x18(%esp),%edx
58da69:	8d 14 52             	lea    (%edx,%edx,2),%edx
58da6c:	8b 8c 24 a4 00 00 00 	mov    0xa4(%esp),%ecx
58da73:	03 04 91             	add    (%ecx,%edx,4),%eax
58da76:	8b 54 24 18          	mov    0x18(%esp),%edx
58da7a:	8d 14 52             	lea    (%edx,%edx,2),%edx
58da7d:	8b 8c 24 b4 00 00 00 	mov    0xb4(%esp),%ecx
58da84:	03 04 91             	add    (%ecx,%edx,4),%eax
58da87:	83 c0 08             	add    $0x8,%eax
58da8a:	ba 04 00 00 00       	mov    $0x4,%edx
58da8f:	e8 74 fb ff ff       	call   0x58d608
58da94:	89 44 24 24          	mov    %eax,0x24(%esp)
58da98:	83 7c 24 18 02       	cmpl   $0x2,0x18(%esp)
58da9d:	75 08                	jne    0x58daa7
58da9f:	8b 44 24 24          	mov    0x24(%esp),%eax
58daa3:	89 44 24 28          	mov    %eax,0x28(%esp)
58daa7:	8b 44 24 24          	mov    0x24(%esp),%eax
58daab:	8b d0                	mov    %eax,%edx
58daad:	c1 e0 03             	shl    $0x3,%eax
58dab0:	2b c2                	sub    %edx,%eax
58dab2:	03 44 24 28          	add    0x28(%esp),%eax
58dab6:	ba 03 00 00 00       	mov    $0x3,%edx
58dabb:	e8 48 fb ff ff       	call   0x58d608
58dac0:	50                   	push   %eax
58dac1:	8b 44 24 08          	mov    0x8(%esp),%eax
58dac5:	0f b7 00             	movzwl (%eax),%eax
58dac8:	5a                   	pop    %edx
58dac9:	2b c2                	sub    %edx,%eax
58dacb:	ba 02 00 00 00       	mov    $0x2,%edx
58dad0:	e8 33 fb ff ff       	call   0x58d608
58dad5:	8b f8                	mov    %eax,%edi
58dad7:	8b 44 24 04          	mov    0x4(%esp),%eax
58dadb:	0f b7 00             	movzwl (%eax),%eax
58dade:	03 f8                	add    %eax,%edi
58dae0:	85 ff                	test   %edi,%edi
58dae2:	7d 02                	jge    0x58dae6
58dae4:	33 ff                	xor    %edi,%edi
58dae6:	81 ff 10 27 00 00    	cmp    $0x2710,%edi
58daec:	7e 05                	jle    0x58daf3
58daee:	bf 10 27 00 00       	mov    $0x2710,%edi
58daf3:	8b 44 24 04          	mov    0x4(%esp),%eax
58daf7:	66 89 38             	mov    %di,(%eax)
58dafa:	8b 44 24 24          	mov    0x24(%esp),%eax
58dafe:	89 44 24 28          	mov    %eax,0x28(%esp)
58db02:	83 44 24 04 08       	addl   $0x8,0x4(%esp)
58db07:	ff 44 24 18          	incl   0x18(%esp)
58db0b:	ff 4c 24 3c          	decl   0x3c(%esp)
58db0f:	0f 85 13 ff ff ff    	jne    0x58da28
58db15:	ff 44 24 14          	incl   0x14(%esp)
58db19:	ff 4c 24 38          	decl   0x38(%esp)
58db1d:	0f 85 b7 fe ff ff    	jne    0x58d9da
58db23:	c7 84 24 c0 00 00 00 	movl   $0x4,0xc0(%esp)
58db2a:	04 00 00 00
58db2e:	33 ff                	xor    %edi,%edi
58db30:	8d 84 24 c4 00 00 00 	lea    0xc4(%esp),%eax
58db37:	89 44 24 54          	mov    %eax,0x54(%esp)
58db3b:	8b 04 24             	mov    (%esp),%eax
58db3e:	8b d7                	mov    %edi,%edx
58db40:	2b 90 fc 00 00 00    	sub    0xfc(%eax),%edx
58db46:	4a                   	dec    %edx
58db47:	8b c2                	mov    %edx,%eax
58db49:	c1 e0 02             	shl    $0x2,%eax
58db4c:	8b 54 24 54          	mov    0x54(%esp),%edx
58db50:	89 02                	mov    %eax,(%edx)
58db52:	8b 04 24             	mov    (%esp),%eax
58db55:	8b 80 fc 00 00 00    	mov    0xfc(%eax),%eax
58db5b:	03 c7                	add    %edi,%eax
58db5d:	48                   	dec    %eax
58db5e:	c1 e0 02             	shl    $0x2,%eax
58db61:	8b 54 24 54          	mov    0x54(%esp),%edx
58db65:	89 42 0c             	mov    %eax,0xc(%edx)
58db68:	47                   	inc    %edi
58db69:	83 44 24 54 04       	addl   $0x4,0x54(%esp)
58db6e:	83 ff 03             	cmp    $0x3,%edi
58db71:	75 c8                	jne    0x58db3b
58db73:	8b 04 24             	mov    (%esp),%eax
58db76:	8b 80 f8 00 00 00    	mov    0xf8(%eax),%eax
58db7c:	48                   	dec    %eax
58db7d:	48                   	dec    %eax
58db7e:	85 c0                	test   %eax,%eax
58db80:	0f 8e 03 01 00 00    	jle    0x58dc89
58db86:	89 44 24 38          	mov    %eax,0x38(%esp)
58db8a:	c7 44 24 14 01 00 00 	movl   $0x1,0x14(%esp)
58db91:	00
58db92:	8b 04 24             	mov    (%esp),%eax
58db95:	8b 80 fc 00 00 00    	mov    0xfc(%eax),%eax
58db9b:	f7 6c 24 14          	imull  0x14(%esp)
58db9f:	8b 14 24             	mov    (%esp),%edx
58dba2:	8b 12                	mov    (%edx),%edx
58dba4:	8d 44 c2 08          	lea    0x8(%edx,%eax,8),%eax
58dba8:	89 44 24 04          	mov    %eax,0x4(%esp)
58dbac:	8b 44 24 04          	mov    0x4(%esp),%eax
58dbb0:	89 44 24 30          	mov    %eax,0x30(%esp)
58dbb4:	83 6c 24 30 08       	subl   $0x8,0x30(%esp)
58dbb9:	8d 44 24 08          	lea    0x8(%esp),%eax
58dbbd:	b9 06 00 00 00       	mov    $0x6,%ecx
58dbc2:	8b 54 24 30          	mov    0x30(%esp),%edx
58dbc6:	e8 e5 db ff ff       	call   0x58b7b0
58dbcb:	8b 04 24             	mov    (%esp),%eax
58dbce:	8b 80 fc 00 00 00    	mov    0xfc(%eax),%eax
58dbd4:	48                   	dec    %eax
58dbd5:	48                   	dec    %eax
58dbd6:	85 c0                	test   %eax,%eax
58dbd8:	0f 8e 9d 00 00 00    	jle    0x58dc7b
58dbde:	89 44 24 3c          	mov    %eax,0x3c(%esp)
58dbe2:	bb 03 00 00 00       	mov    $0x3,%ebx
58dbe7:	8d 44 24 08          	lea    0x8(%esp),%eax
58dbeb:	89 44 24 58          	mov    %eax,0x58(%esp)
58dbef:	8b 44 24 58          	mov    0x58(%esp),%eax
58dbf3:	0f b7 10             	movzwl (%eax),%edx
58dbf6:	89 54 24 2c          	mov    %edx,0x2c(%esp)
58dbfa:	bf 07 00 00 00       	mov    $0x7,%edi
58dbff:	8d 84 24 c0 00 00 00 	lea    0xc0(%esp),%eax
58dc06:	8b 08                	mov    (%eax),%ecx
58dc08:	8b 74 24 04          	mov    0x4(%esp),%esi
58dc0c:	0f b7 34 4e          	movzwl (%esi,%ecx,2),%esi
58dc10:	3b 74 24 2c          	cmp    0x2c(%esp),%esi
58dc14:	7d 04                	jge    0x58dc1a
58dc16:	89 74 24 2c          	mov    %esi,0x2c(%esp)
58dc1a:	3b f2                	cmp    %edx,%esi
58dc1c:	7e 02                	jle    0x58dc20
58dc1e:	8b d6                	mov    %esi,%edx
58dc20:	83 c0 04             	add    $0x4,%eax
58dc23:	4f                   	dec    %edi
58dc24:	75 e0                	jne    0x58dc06
58dc26:	8b 44 24 04          	mov    0x4(%esp),%eax
58dc2a:	66 8b 00             	mov    (%eax),%ax
58dc2d:	8b 4c 24 58          	mov    0x58(%esp),%ecx
58dc31:	66 89 01             	mov    %ax,(%ecx)
58dc34:	8b 44 24 04          	mov    0x4(%esp),%eax
58dc38:	0f b7 00             	movzwl (%eax),%eax
58dc3b:	3b 44 24 2c          	cmp    0x2c(%esp),%eax
58dc3f:	7d 0c                	jge    0x58dc4d
58dc41:	8b 44 24 04          	mov    0x4(%esp),%eax
58dc45:	66 8b 4c 24 2c       	mov    0x2c(%esp),%cx
58dc4a:	66 89 08             	mov    %cx,(%eax)
58dc4d:	8b 44 24 04          	mov    0x4(%esp),%eax
58dc51:	0f b7 00             	movzwl (%eax),%eax
58dc54:	3b d0                	cmp    %eax,%edx
58dc56:	7d 07                	jge    0x58dc5f
58dc58:	8b 44 24 04          	mov    0x4(%esp),%eax