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
58dc5c:	66 89 10             	mov    %dx,(%eax)
58dc5f:	83 44 24 04 02       	addl   $0x2,0x4(%esp)
58dc64:	83 44 24 58 02       	addl   $0x2,0x58(%esp)
58dc69:	4b                   	dec    %ebx
58dc6a:	75 83                	jne    0x58dbef
58dc6c:	83 44 24 04 02       	addl   $0x2,0x4(%esp)
58dc71:	ff 4c 24 3c          	decl   0x3c(%esp)
58dc75:	0f 85 67 ff ff ff    	jne    0x58dbe2
58dc7b:	ff 44 24 14          	incl   0x14(%esp)
58dc7f:	ff 4c 24 38          	decl   0x38(%esp)
58dc83:	0f 85 09 ff ff ff    	jne    0x58db92
58dc89:	c7 44 24 20 ff ff ff 	movl   $0xffffffff,0x20(%esp)
58dc90:	ff
58dc91:	8b 04 24             	mov    (%esp),%eax
58dc94:	8b 80 f8 00 00 00    	mov    0xf8(%eax),%eax
58dc9a:	83 e8 02             	sub    $0x2,%eax
58dc9d:	48                   	dec    %eax
58dc9e:	83 e8 02             	sub    $0x2,%eax
58dca1:	0f 8c 8a 02 00 00    	jl     0x58df31
58dca7:	40                   	inc    %eax
58dca8:	89 44 24 38          	mov    %eax,0x38(%esp)
58dcac:	c7 44 24 14 02 00 00 	movl   $0x2,0x14(%esp)
58dcb3:	00
58dcb4:	e9 c3 00 00 00       	jmp    0x58dd7c
58dcb9:	33 ff                	xor    %edi,%edi
58dcbb:	8d ac 24 a4 00 00 00 	lea    0xa4(%esp),%ebp
58dcc2:	8d 47 05             	lea    0x5(%edi),%eax
58dcc5:	b9 06 00 00 00       	mov    $0x6,%ecx
58dcca:	99                   	cltd
58dccb:	f7 f9                	idiv   %ecx
58dccd:	8b 45 00             	mov    0x0(%ebp),%eax
58dcd0:	89 84 94 a4 00 00 00 	mov    %eax,0xa4(%esp,%edx,4)
58dcd7:	47                   	inc    %edi
58dcd8:	83 c5 04             	add    $0x4,%ebp
58dcdb:	83 ff 06             	cmp    $0x6,%edi
58dcde:	75 e2                	jne    0x58dcc2
58dce0:	ff 44 24 20          	incl   0x20(%esp)
58dce4:	8b 04 24             	mov    (%esp),%eax
58dce7:	8b 80 fc 00 00 00    	mov    0xfc(%eax),%eax
58dced:	f7 6c 24 20          	imull  0x20(%esp)
58dcf1:	8b 14 24             	mov    (%esp),%edx
58dcf4:	8b 12                	mov    (%edx),%edx
58dcf6:	8d 44 c2 10          	lea    0x10(%edx,%eax,8),%eax
58dcfa:	89 44 24 04          	mov    %eax,0x4(%esp)
58dcfe:	8b 04 24             	mov    (%esp),%eax
58dd01:	8b 80 fc 00 00 00    	mov    0xfc(%eax),%eax
58dd07:	83 e8 02             	sub    $0x2,%eax
58dd0a:	48                   	dec    %eax
58dd0b:	83 e8 02             	sub    $0x2,%eax
58dd0e:	7c 6c                	jl     0x58dd7c
58dd10:	40                   	inc    %eax
58dd11:	89 44 24 3c          	mov    %eax,0x3c(%esp)
58dd15:	c7 44 24 18 02 00 00 	movl   $0x2,0x18(%esp)
58dd1c:	00
58dd1d:	33 db                	xor    %ebx,%ebx
58dd1f:	8b 44 24 04          	mov    0x4(%esp),%eax
58dd23:	0f b7 44 58 f0       	movzwl -0x10(%eax,%ebx,2),%eax
58dd28:	8b 54 24 04          	mov    0x4(%esp),%edx
58dd2c:	0f b7 54 5a f8       	movzwl -0x8(%edx,%ebx,2),%edx
58dd31:	03 c2                	add    %edx,%eax
58dd33:	8b 54 24 04          	mov    0x4(%esp),%edx
58dd37:	0f b7 14 5a          	movzwl (%edx,%ebx,2),%edx
58dd3b:	03 c2                	add    %edx,%eax
58dd3d:	8b 54 24 04          	mov    0x4(%esp),%edx
58dd41:	0f b7 54 5a 08       	movzwl 0x8(%edx,%ebx,2),%edx
58dd46:	03 c2                	add    %edx,%eax
58dd48:	8b 54 24 04          	mov    0x4(%esp),%edx
58dd4c:	0f b7 54 5a 10       	movzwl 0x10(%edx,%ebx,2),%edx
58dd51:	03 c2                	add    %edx,%eax
58dd53:	8b 54 24 18          	mov    0x18(%esp),%edx
58dd57:	8d 14 52             	lea    (%edx,%edx,2),%edx
58dd5a:	8b 8c 24 b4 00 00 00 	mov    0xb4(%esp),%ecx
58dd61:	8d 14 91             	lea    (%ecx,%edx,4),%edx
58dd64:	89 04 9a             	mov    %eax,(%edx,%ebx,4)
58dd67:	43                   	inc    %ebx
58dd68:	83 fb 03             	cmp    $0x3,%ebx
58dd6b:	75 b2                	jne    0x58dd1f
58dd6d:	83 44 24 04 08       	addl   $0x8,0x4(%esp)
58dd72:	ff 44 24 18          	incl   0x18(%esp)
58dd76:	ff 4c 24 3c          	decl   0x3c(%esp)
58dd7a:	75 a1                	jne    0x58dd1d
58dd7c:	8b 44 24 14          	mov    0x14(%esp),%eax
58dd80:	83 c0 02             	add    $0x2,%eax
58dd83:	3b 44 24 20          	cmp    0x20(%esp),%eax
58dd87:	0f 8f 2c ff ff ff    	jg     0x58dcb9
58dd8d:	8b 04 24             	mov    (%esp),%eax
58dd90:	8b 80 fc 00 00 00    	mov    0xfc(%eax),%eax
58dd96:	f7 6c 24 14          	imull  0x14(%esp)
58dd9a:	8b 14 24             	mov    (%esp),%edx
58dd9d:	8b 12                	mov    (%edx),%edx
58dd9f:	8d 44 c2 10          	lea    0x10(%edx,%eax,8),%eax
58dda3:	89 44 24 04          	mov    %eax,0x4(%esp)
58dda7:	8b 04 24             	mov    (%esp),%eax
58ddaa:	8b 80 fc 00 00 00    	mov    0xfc(%eax),%eax
58ddb0:	83 e8 02             	sub    $0x2,%eax
58ddb3:	48                   	dec    %eax
58ddb4:	83 e8 02             	sub    $0x2,%eax
58ddb7:	0f 8c 66 01 00 00    	jl     0x58df23
58ddbd:	40                   	inc    %eax
58ddbe:	89 44 24 3c          	mov    %eax,0x3c(%esp)
58ddc2:	c7 44 24 18 02 00 00 	movl   $0x2,0x18(%esp)
58ddc9:	00
58ddca:	c7 84 24 a0 00 00 00 	movl   $0x5dc,0xa0(%esp)
58ddd1:	dc 05 00 00
58ddd5:	c7 44 24 1c 3c 00 00 	movl   $0x3c,0x1c(%esp)
58dddc:	00
58dddd:	33 db                	xor    %ebx,%ebx
58dddf:	8d 84 24 94 00 00 00 	lea    0x94(%esp),%eax
58dde6:	89 44 24 5c          	mov    %eax,0x5c(%esp)
58ddea:	8b 44 24 5c          	mov    0x5c(%esp),%eax
58ddee:	33 d2                	xor    %edx,%edx
58ddf0:	89 10                	mov    %edx,(%eax)
58ddf2:	bf 05 00 00 00       	mov    $0x5,%edi
58ddf7:	8d ac 24 a4 00 00 00 	lea    0xa4(%esp),%ebp
58ddfe:	8b 44 24 18          	mov    0x18(%esp),%eax
58de02:	8d 04 40             	lea    (%eax,%eax,2),%eax
58de05:	8b 55 00             	mov    0x0(%ebp),%edx
58de08:	8d 04 82             	lea    (%edx,%eax,4),%eax
58de0b:	8b 04 98             	mov    (%eax,%ebx,4),%eax
58de0e:	8b 54 24 5c          	mov    0x5c(%esp),%edx
58de12:	01 02                	add    %eax,(%edx)
58de14:	83 c5 04             	add    $0x4,%ebp
58de17:	4f                   	dec    %edi
58de18:	75 e4                	jne    0x58ddfe
58de1a:	8b 44 24 5c          	mov    0x5c(%esp),%eax
58de1e:	8b 00                	mov    (%eax),%eax
58de20:	01 84 24 a0 00 00 00 	add    %eax,0xa0(%esp)
58de27:	8b 44 24 04          	mov    0x4(%esp),%eax
58de2b:	0f b7 04 58          	movzwl (%eax,%ebx,2),%eax
58de2f:	01 44 24 1c          	add    %eax,0x1c(%esp)
58de33:	43                   	inc    %ebx
58de34:	83 44 24 5c 04       	addl   $0x4,0x5c(%esp)
58de39:	83 fb 03             	cmp    $0x3,%ebx
58de3c:	75 ac                	jne    0x58ddea
58de3e:	8b 44 24 1c          	mov    0x1c(%esp),%eax
58de42:	c1 e0 10             	shl    $0x10,%eax
58de45:	99                   	cltd
58de46:	f7 bc 24 a0 00 00 00 	idivl  0xa0(%esp)
58de4d:	8b f0                	mov    %eax,%esi
58de4f:	33 db                	xor    %ebx,%ebx
58de51:	8d 84 24 94 00 00 00 	lea    0x94(%esp),%eax
58de58:	89 44 24 5c          	mov    %eax,0x5c(%esp)
58de5c:	8d 6c 24 64          	lea    0x64(%esp),%ebp
58de60:	8b 44 24 5c          	mov    0x5c(%esp),%eax
58de64:	8b 00                	mov    (%eax),%eax
58de66:	f7 ee                	imul   %esi
58de68:	ba 10 00 00 00       	mov    $0x10,%edx
58de6d:	e8 96 f7 ff ff       	call   0x58d608
58de72:	8b 54 24 04          	mov    0x4(%esp),%edx
58de76:	0f b7 14 5a          	movzwl (%edx,%ebx,2),%edx
58de7a:	2b c2                	sub    %edx,%eax
58de7c:	ba 18 3d 6a 00       	mov    $0x6a3d18,%edx
58de81:	e8 4a f7 ff ff       	call   0x58d5d0
58de86:	8b f8                	mov    %eax,%edi
58de88:	83 fb 01             	cmp    $0x1,%ebx
58de8b:	0f 94 c0             	sete   %al
58de8e:	83 e0 7f             	and    $0x7f,%eax
58de91:	8b 54 24 04          	mov    0x4(%esp),%edx
58de95:	0f b7 14 5a          	movzwl (%edx,%ebx,2),%edx
58de99:	83 ea 0d             	sub    $0xd,%edx
58de9c:	2b d0                	sub    %eax,%edx
58de9e:	03 fa                	add    %edx,%edi
58dea0:	ba 3c 3e 6a 00       	mov    $0x6a3e3c,%edx
58dea5:	8b c7                	mov    %edi,%eax
58dea7:	e8 24 f7 ff ff       	call   0x58d5d0
58deac:	2b f8                	sub    %eax,%edi
58deae:	89 7d 00             	mov    %edi,0x0(%ebp)
58deb1:	43                   	inc    %ebx
58deb2:	83 c5 04             	add    $0x4,%ebp
58deb5:	83 44 24 5c 04       	addl   $0x4,0x5c(%esp)
58deba:	83 fb 03             	cmp    $0x3,%ebx
58debd:	75 a1                	jne    0x58de60
58debf:	8b 44 24 64          	mov    0x64(%esp),%eax
58dec3:	03 44 24 68          	add    0x68(%esp),%eax
58dec7:	03 44 24 68          	add    0x68(%esp),%eax