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
58e109:	83 c0 03             	add    $0x3,%eax
58e10c:	c1 f8 02             	sar    $0x2,%eax
58e10f:	f7 6c 24 14          	imull  0x14(%esp)
58e113:	03 44 24 18          	add    0x18(%esp),%eax
58e117:	8d 04 40             	lea    (%eax,%eax,2),%eax
58e11a:	8b 54 24 10          	mov    0x10(%esp),%edx
58e11e:	8d 04 42             	lea    (%edx,%eax,2),%eax
58e121:	8b 16                	mov    (%esi),%edx
58e123:	c1 ea 04             	shr    $0x4,%edx
58e126:	66 89 14 58          	mov    %dx,(%eax,%ebx,2)
58e12a:	eb 6e                	jmp    0x58e19a
58e12c:	8b 44 24 14          	mov    0x14(%esp),%eax
58e130:	40                   	inc    %eax
58e131:	8b 14 24             	mov    (%esp),%edx
58e134:	8b 92 fc 00 00 00    	mov    0xfc(%edx),%edx
58e13a:	85 d2                	test   %edx,%edx
58e13c:	79 03                	jns    0x58e141
58e13e:	83 c2 03             	add    $0x3,%edx
58e141:	c1 fa 02             	sar    $0x2,%edx
58e144:	f7 ea                	imul   %edx
58e146:	03 44 24 18          	add    0x18(%esp),%eax
58e14a:	8d 04 40             	lea    (%eax,%eax,2),%eax
58e14d:	8b 54 24 10          	mov    0x10(%esp),%edx
58e151:	8d 04 42             	lea    (%edx,%eax,2),%eax
58e154:	0f b7 04 58          	movzwl (%eax,%ebx,2),%eax
58e158:	69 c0 30 07 00 00    	imul   $0x730,%eax,%eax
58e15e:	69 16 8d 00 00 00    	imul   $0x8d,(%esi),%edx
58e164:	03 c2                	add    %edx,%eax
58e166:	ba 0c 00 00 00       	mov    $0xc,%edx
58e16b:	e8 98 f4 ff ff       	call   0x58d608
58e170:	8b 14 24             	mov    (%esp),%edx
58e173:	8b 92 fc 00 00 00    	mov    0xfc(%edx),%edx
58e179:	85 d2                	test   %edx,%edx
58e17b:	79 03                	jns    0x58e180
58e17d:	83 c2 03             	add    $0x3,%edx
58e180:	c1 fa 02             	sar    $0x2,%edx
58e183:	0f af 54 24 14       	imul   0x14(%esp),%edx
58e188:	03 54 24 18          	add    0x18(%esp),%edx
58e18c:	8d 14 52             	lea    (%edx,%edx,2),%edx
58e18f:	8b 4c 24 10          	mov    0x10(%esp),%ecx
58e193:	8d 14 51             	lea    (%ecx,%edx,2),%edx
58e196:	66 89 04 5a          	mov    %ax,(%edx,%ebx,2)
58e19a:	43                   	inc    %ebx
58e19b:	83 c6 04             	add    $0x4,%esi
58e19e:	83 fb 03             	cmp    $0x3,%ebx
58e1a1:	0f 85 37 ff ff ff    	jne    0x58e0de
58e1a7:	ff 44 24 18          	incl   0x18(%esp)
58e1ab:	ff 4c 24 38          	decl   0x38(%esp)
58e1af:	0f 85 c6 fe ff ff    	jne    0x58e07b
58e1b5:	83 7c 24 14 00       	cmpl   $0x0,0x14(%esp)
58e1ba:	0f 85 8e fe ff ff    	jne    0x58e04e
58e1c0:	8b 04 24             	mov    (%esp),%eax
58e1c3:	8b 80 f8 00 00 00    	mov    0xf8(%eax),%eax
58e1c9:	83 e0 fc             	and    $0xfffffffc,%eax
58e1cc:	48                   	dec    %eax
58e1cd:	85 c0                	test   %eax,%eax
58e1cf:	0f 8c 7d 03 00 00    	jl     0x58e552
58e1d5:	40                   	inc    %eax
58e1d6:	89 44 24 38          	mov    %eax,0x38(%esp)
58e1da:	c7 44 24 14 00 00 00 	movl   $0x0,0x14(%esp)
58e1e1:	00
58e1e2:	33 c0                	xor    %eax,%eax
58e1e4:	89 44 24 64          	mov    %eax,0x64(%esp)
58e1e8:	33 c0                	xor    %eax,%eax
58e1ea:	89 44 24 68          	mov    %eax,0x68(%esp)
58e1ee:	33 c0                	xor    %eax,%eax
58e1f0:	89 44 24 6c          	mov    %eax,0x6c(%esp)
58e1f4:	f6 44 24 14 03       	testb  $0x3,0x14(%esp)
58e1f9:	0f 85 aa 00 00 00    	jne    0x58e2a9
58e1ff:	8b 04 24             	mov    (%esp),%eax
58e202:	8b 80 fc 00 00 00    	mov    0xfc(%eax),%eax
58e208:	83 e0 fc             	and    $0xfffffffc,%eax
58e20b:	89 44 24 18          	mov    %eax,0x18(%esp)
58e20f:	83 7c 24 18 00       	cmpl   $0x0,0x18(%esp)
58e214:	0f 84 8f 00 00 00    	je     0x58e2a9
58e21a:	ff 4c 24 18          	decl   0x18(%esp)
58e21e:	33 db                	xor    %ebx,%ebx
58e220:	8d 74 24 64          	lea    0x64(%esp),%esi
58e224:	8b 44 24 14          	mov    0x14(%esp),%eax
58e228:	85 c0                	test   %eax,%eax
58e22a:	79 03                	jns    0x58e22f
58e22c:	83 c0 03             	add    $0x3,%eax
58e22f:	c1 f8 02             	sar    $0x2,%eax
58e232:	8b 14 24             	mov    (%esp),%edx
58e235:	8b 92 fc 00 00 00    	mov    0xfc(%edx),%edx
58e23b:	85 d2                	test   %edx,%edx
58e23d:	79 03                	jns    0x58e242
58e23f:	83 c2 03             	add    $0x3,%edx
58e242:	c1 fa 02             	sar    $0x2,%edx
58e245:	f7 ea                	imul   %edx
58e247:	8b 54 24 18          	mov    0x18(%esp),%edx
58e24b:	85 d2                	test   %edx,%edx
58e24d:	79 03                	jns    0x58e252
58e24f:	83 c2 03             	add    $0x3,%edx
58e252:	c1 fa 02             	sar    $0x2,%edx
58e255:	03 c2                	add    %edx,%eax
58e257:	8d 04 40             	lea    (%eax,%eax,2),%eax
58e25a:	8b 54 24 10          	mov    0x10(%esp),%edx
58e25e:	8d 04 42             	lea    (%edx,%eax,2),%eax
58e261:	0f b7 04 58          	movzwl (%eax,%ebx,2),%eax
58e265:	69 c0 cd 05 00 00    	imul   $0x5cd,%eax,%eax
58e26b:	69 16 33 1a 00 00    	imul   $0x1a33,(%esi),%edx
58e271:	03 c2                	add    %edx,%eax
58e273:	ba 0d 00 00 00       	mov    $0xd,%edx
58e278:	e8 8b f3 ff ff       	call   0x58d608
58e27d:	89 06                	mov    %eax,(%esi)
58e27f:	8b 44 24 18          	mov    0x18(%esp),%eax
58e283:	8d 04 40             	lea    (%eax,%eax,2),%eax
58e286:	8b 94 24 a4 00 00 00 	mov    0xa4(%esp),%edx
58e28d:	8d 04 82             	lea    (%edx,%eax,4),%eax
58e290:	8b 16                	mov    (%esi),%edx
58e292:	89 14 98             	mov    %edx,(%eax,%ebx,4)
58e295:	43                   	inc    %ebx
58e296:	83 c6 04             	add    $0x4,%esi
58e299:	83 fb 03             	cmp    $0x3,%ebx
58e29c:	75 86                	jne    0x58e224
58e29e:	83 7c 24 18 00       	cmpl   $0x0,0x18(%esp)
58e2a3:	0f 85 71 ff ff ff    	jne    0x58e21a
58e2a9:	33 c0                	xor    %eax,%eax
58e2ab:	89 44 24 64          	mov    %eax,0x64(%esp)
58e2af:	33 c0                	xor    %eax,%eax
58e2b1:	89 44 24 68          	mov    %eax,0x68(%esp)
58e2b5:	33 c0                	xor    %eax,%eax
58e2b7:	89 44 24 6c          	mov    %eax,0x6c(%esp)
58e2bb:	8b 04 24             	mov    (%esp),%eax
58e2be:	8b 80 fc 00 00 00    	mov    0xfc(%eax),%eax
58e2c4:	83 e0 fc             	and    $0xfffffffc,%eax
58e2c7:	48                   	dec    %eax
58e2c8:	85 c0                	test   %eax,%eax
58e2ca:	7c 68                	jl     0x58e334
58e2cc:	40                   	inc    %eax
58e2cd:	89 44 24 3c          	mov    %eax,0x3c(%esp)
58e2d1:	c7 44 24 18 00 00 00 	movl   $0x0,0x18(%esp)
58e2d8:	00
58e2d9:	33 db                	xor    %ebx,%ebx
58e2db:	8d 74 24 64          	lea    0x64(%esp),%esi
58e2df:	8b 44 24 18          	mov    0x18(%esp),%eax
58e2e3:	8d 04 40             	lea    (%eax,%eax,2),%eax
58e2e6:	8b 94 24 a4 00 00 00 	mov    0xa4(%esp),%edx
58e2ed:	8d 04 82             	lea    (%edx,%eax,4),%eax
58e2f0:	69 04 98 cd 05 00 00 	imul   $0x5cd,(%eax,%ebx,4),%eax
58e2f7:	69 16 33 1a 00 00    	imul   $0x1a33,(%esi),%edx
58e2fd:	03 c2                	add    %edx,%eax
58e2ff:	ba 0d 00 00 00       	mov    $0xd,%edx
58e304:	e8 ff f2 ff ff       	call   0x58d608
58e309:	89 06                	mov    %eax,(%esi)
58e30b:	8b 44 24 18          	mov    0x18(%esp),%eax
58e30f:	8d 04 40             	lea    (%eax,%eax,2),%eax
58e312:	8b 94 24 a8 00 00 00 	mov    0xa8(%esp),%edx
58e319:	8d 04 82             	lea    (%edx,%eax,4),%eax
58e31c:	8b 16                	mov    (%esi),%edx
58e31e:	89 14 98             	mov    %edx,(%eax,%ebx,4)
58e321:	43                   	inc    %ebx
58e322:	83 c6 04             	add    $0x4,%esi
58e325:	83 fb 03             	cmp    $0x3,%ebx
58e328:	75 b5                	jne    0x58e2df
58e32a:	ff 44 24 18          	incl   0x18(%esp)
58e32e:	ff 4c 24 3c          	decl   0x3c(%esp)
58e332:	75 a5                	jne    0x58e2d9
58e334:	83 7c 24 14 00       	cmpl   $0x0,0x14(%esp)
58e339:	75 27                	jne    0x58e362
58e33b:	8b 04 24             	mov    (%esp),%eax
58e33e:	8b 88 fc 00 00 00    	mov    0xfc(%eax),%ecx
58e344:	c1 e1 02             	shl    $0x2,%ecx
58e347:	8d 0c 49             	lea    (%ecx,%ecx,2),%ecx
58e34a:	8b 94 24 a8 00 00 00 	mov    0xa8(%esp),%edx
58e351:	8b 84 24 ac 00 00 00 	mov    0xac(%esp),%eax
58e358:	e8 53 d4 ff ff       	call   0x58b7b0
58e35d:	e9 80 00 00 00       	jmp    0x58e3e2
58e362:	8b 04 24             	mov    (%esp),%eax
58e365:	8b 80 fc 00 00 00    	mov    0xfc(%eax),%eax
58e36b:	83 e0 fc             	and    $0xfffffffc,%eax
58e36e:	48                   	dec    %eax
58e36f:	85 c0                	test   %eax,%eax
58e371:	7c 6f                	jl     0x58e3e2