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
58decb:	03 44 24 6c          	add    0x6c(%esp),%eax
58decf:	ba 02 00 00 00       	mov    $0x2,%edx
58ded4:	e8 2f f7 ff ff       	call   0x58d608
58ded9:	89 44 24 1c          	mov    %eax,0x1c(%esp)
58dedd:	33 db                	xor    %ebx,%ebx
58dedf:	8d 6c 24 64          	lea    0x64(%esp),%ebp
58dee3:	ba 3c 3e 6a 00       	mov    $0x6a3e3c,%edx
58dee8:	8b 45 00             	mov    0x0(%ebp),%eax
58deeb:	2b 44 24 1c          	sub    0x1c(%esp),%eax
58deef:	e8 dc f6 ff ff       	call   0x58d5d0
58def4:	8b 7d 00             	mov    0x0(%ebp),%edi
58def7:	2b f8                	sub    %eax,%edi
58def9:	85 ff                	test   %edi,%edi
58defb:	7d 02                	jge    0x58deff
58defd:	33 ff                	xor    %edi,%edi
58deff:	8b 44 24 04          	mov    0x4(%esp),%eax
58df03:	66 89 3c 58          	mov    %di,(%eax,%ebx,2)
58df07:	43                   	inc    %ebx
58df08:	83 c5 04             	add    $0x4,%ebp
58df0b:	83 fb 03             	cmp    $0x3,%ebx
58df0e:	75 d3                	jne    0x58dee3
58df10:	83 44 24 04 08       	addl   $0x8,0x4(%esp)
58df15:	ff 44 24 18          	incl   0x18(%esp)
58df19:	ff 4c 24 3c          	decl   0x3c(%esp)
58df1d:	0f 85 a7 fe ff ff    	jne    0x58ddca
58df23:	ff 44 24 14          	incl   0x14(%esp)
58df27:	ff 4c 24 38          	decl   0x38(%esp)
58df2b:	0f 85 4b fe ff ff    	jne    0x58dd7c
58df31:	8b 04 24             	mov    (%esp),%eax
58df34:	8b 00                	mov    (%eax),%eax
58df36:	89 44 24 04          	mov    %eax,0x4(%esp)
58df3a:	e9 85 00 00 00       	jmp    0x58dfc4
58df3f:	bb 03 00 00 00       	mov    $0x3,%ebx
58df44:	b8 10 42 6a 00       	mov    $0x6a4210,%eax
58df49:	89 44 24 54          	mov    %eax,0x54(%esp)
58df4d:	8d 6c 24 64          	lea    0x64(%esp),%ebp
58df51:	33 ff                	xor    %edi,%edi
58df53:	33 f6                	xor    %esi,%esi
58df55:	8b 44 24 54          	mov    0x54(%esp),%eax
58df59:	8b 10                	mov    (%eax),%edx
58df5b:	8b 4c 24 04          	mov    0x4(%esp),%ecx
58df5f:	0f b7 0c 71          	movzwl (%ecx,%esi,2),%ecx
58df63:	0f af d1             	imul   %ecx,%edx
58df66:	03 fa                	add    %edx,%edi
58df68:	46                   	inc    %esi
58df69:	83 c0 04             	add    $0x4,%eax
58df6c:	83 fe 03             	cmp    $0x3,%esi
58df6f:	75 e8                	jne    0x58df59
58df71:	8d 87 00 10 00 00    	lea    0x1000(%edi),%eax
58df77:	ba 0d 00 00 00       	mov    $0xd,%edx
58df7c:	e8 87 f6 ff ff       	call   0x58d608
58df81:	8b f8                	mov    %eax,%edi
58df83:	85 ff                	test   %edi,%edi
58df85:	7d 02                	jge    0x58df89
58df87:	33 ff                	xor    %edi,%edi
58df89:	81 ff c0 5d 00 00    	cmp    $0x5dc0,%edi
58df8f:	7e 05                	jle    0x58df96
58df91:	bf c0 5d 00 00       	mov    $0x5dc0,%edi
58df96:	89 7d 00             	mov    %edi,0x0(%ebp)
58df99:	83 c5 04             	add    $0x4,%ebp
58df9c:	83 44 24 54 0c       	addl   $0xc,0x54(%esp)
58dfa1:	4b                   	dec    %ebx
58dfa2:	75 ad                	jne    0x58df51
58dfa4:	33 db                	xor    %ebx,%ebx
58dfa6:	8d 6c 24 64          	lea    0x64(%esp),%ebp
58dfaa:	66 8b 45 00          	mov    0x0(%ebp),%ax
58dfae:	8b 54 24 04          	mov    0x4(%esp),%edx
58dfb2:	66 89 04 5a          	mov    %ax,(%edx,%ebx,2)
58dfb6:	43                   	inc    %ebx
58dfb7:	83 c5 04             	add    $0x4,%ebp
58dfba:	83 fb 03             	cmp    $0x3,%ebx
58dfbd:	75 eb                	jne    0x58dfaa
58dfbf:	83 44 24 04 08       	addl   $0x8,0x4(%esp)
58dfc4:	8b 04 24             	mov    (%esp),%eax
58dfc7:	8b 80 f8 00 00 00    	mov    0xf8(%eax),%eax
58dfcd:	8b 14 24             	mov    (%esp),%edx
58dfd0:	f7 aa fc 00 00 00    	imull  0xfc(%edx)
58dfd6:	8b 14 24             	mov    (%esp),%edx
58dfd9:	8b 12                	mov    (%edx),%edx
58dfdb:	8d 04 c2             	lea    (%edx,%eax,8),%eax
58dfde:	3b 44 24 04          	cmp    0x4(%esp),%eax
58dfe2:	0f 8f 57 ff ff ff    	jg     0x58df3f
58dfe8:	8b 04 24             	mov    (%esp),%eax
58dfeb:	8b 80 fc 00 00 00    	mov    0xfc(%eax),%eax
58dff1:	85 c0                	test   %eax,%eax
58dff3:	79 03                	jns    0x58dff8
58dff5:	83 c0 03             	add    $0x3,%eax
58dff8:	c1 f8 02             	sar    $0x2,%eax
58dffb:	8b 14 24             	mov    (%esp),%edx
58dffe:	8b 92 f8 00 00 00    	mov    0xf8(%edx),%edx
58e004:	85 d2                	test   %edx,%edx
58e006:	79 03                	jns    0x58e00b
58e008:	83 c2 03             	add    $0x3,%edx
58e00b:	c1 fa 02             	sar    $0x2,%edx
58e00e:	f7 ea                	imul   %edx
58e010:	03 c0                	add    %eax,%eax
58e012:	8d 04 40             	lea    (%eax,%eax,2),%eax
58e015:	e8 9a b0 e7 ff       	call   0x4090b4
58e01a:	89 44 24 10          	mov    %eax,0x10(%esp)
58e01e:	ba 74 e5 58 00       	mov    $0x58e574,%edx
58e023:	8b 44 24 10          	mov    0x10(%esp),%eax
58e027:	e8 98 aa ff ff       	call   0x588ac4
58e02c:	8b 04 24             	mov    (%esp),%eax
58e02f:	8b 80 f8 00 00 00    	mov    0xf8(%eax),%eax
58e035:	85 c0                	test   %eax,%eax
58e037:	79 03                	jns    0x58e03c
58e039:	83 c0 03             	add    $0x3,%eax
58e03c:	c1 f8 02             	sar    $0x2,%eax
58e03f:	89 44 24 14          	mov    %eax,0x14(%esp)
58e043:	83 7c 24 14 00       	cmpl   $0x0,0x14(%esp)
58e048:	0f 84 72 01 00 00    	je     0x58e1c0
58e04e:	ff 4c 24 14          	decl   0x14(%esp)
58e052:	8b 04 24             	mov    (%esp),%eax
58e055:	8b 80 fc 00 00 00    	mov    0xfc(%eax),%eax
58e05b:	85 c0                	test   %eax,%eax
58e05d:	79 03                	jns    0x58e062
58e05f:	83 c0 03             	add    $0x3,%eax
58e062:	c1 f8 02             	sar    $0x2,%eax
58e065:	48                   	dec    %eax
58e066:	85 c0                	test   %eax,%eax
58e068:	0f 8c 47 01 00 00    	jl     0x58e1b5
58e06e:	40                   	inc    %eax
58e06f:	89 44 24 38          	mov    %eax,0x38(%esp)
58e073:	c7 44 24 18 00 00 00 	movl   $0x0,0x18(%esp)
58e07a:	00
58e07b:	33 c0                	xor    %eax,%eax
58e07d:	89 44 24 64          	mov    %eax,0x64(%esp)
58e081:	33 c0                	xor    %eax,%eax
58e083:	89 44 24 68          	mov    %eax,0x68(%esp)
58e087:	33 c0                	xor    %eax,%eax
58e089:	89 44 24 6c          	mov    %eax,0x6c(%esp)
58e08d:	33 ff                	xor    %edi,%edi
58e08f:	33 f6                	xor    %esi,%esi
58e091:	33 db                	xor    %ebx,%ebx
58e093:	8d 44 24 64          	lea    0x64(%esp),%eax
58e097:	8b 54 24 14          	mov    0x14(%esp),%edx
58e09b:	c1 e2 02             	shl    $0x2,%edx
58e09e:	03 d7                	add    %edi,%edx
58e0a0:	8b 0c 24             	mov    (%esp),%ecx
58e0a3:	0f af 91 fc 00 00 00 	imul   0xfc(%ecx),%edx
58e0aa:	8b 4c 24 18          	mov    0x18(%esp),%ecx
58e0ae:	c1 e1 02             	shl    $0x2,%ecx
58e0b1:	03 d1                	add    %ecx,%edx
58e0b3:	03 d6                	add    %esi,%edx
58e0b5:	8b 0c 24             	mov    (%esp),%ecx
58e0b8:	8b 09                	mov    (%ecx),%ecx
58e0ba:	8d 14 d1             	lea    (%ecx,%edx,8),%edx
58e0bd:	0f b7 14 5a          	movzwl (%edx,%ebx,2),%edx
58e0c1:	01 10                	add    %edx,(%eax)
58e0c3:	43                   	inc    %ebx
58e0c4:	83 c0 04             	add    $0x4,%eax
58e0c7:	83 fb 03             	cmp    $0x3,%ebx
58e0ca:	75 cb                	jne    0x58e097
58e0cc:	46                   	inc    %esi
58e0cd:	83 fe 04             	cmp    $0x4,%esi
58e0d0:	75 bf                	jne    0x58e091
58e0d2:	47                   	inc    %edi
58e0d3:	83 ff 04             	cmp    $0x4,%edi
58e0d6:	75 b7                	jne    0x58e08f
58e0d8:	33 db                	xor    %ebx,%ebx
58e0da:	8d 74 24 64          	lea    0x64(%esp),%esi
58e0de:	8b 44 24 14          	mov    0x14(%esp),%eax
58e0e2:	83 c0 02             	add    $0x2,%eax
58e0e5:	8b 14 24             	mov    (%esp),%edx
58e0e8:	8b 92 f8 00 00 00    	mov    0xf8(%edx),%edx
58e0ee:	85 d2                	test   %edx,%edx
58e0f0:	79 03                	jns    0x58e0f5
58e0f2:	83 c2 03             	add    $0x3,%edx
58e0f5:	c1 fa 02             	sar    $0x2,%edx
58e0f8:	3b c2                	cmp    %edx,%eax
58e0fa:	7e 30                	jle    0x58e12c
58e0fc:	8b 04 24             	mov    (%esp),%eax
58e0ff:	8b 80 fc 00 00 00    	mov    0xfc(%eax),%eax
58e105:	85 c0                	test   %eax,%eax
58e107:	79 03                	jns    0x58e10c