58f193:	89 44 24 3c          	mov    %eax,0x3c(%esp)
58f197:	c7 44 24 34 00 00 00 	movl   $0x0,0x34(%esp)
58f19e:	00
58f19f:	8d 84 24 84 50 00 00 	lea    0x5084(%esp),%eax
58f1a6:	89 44 24 4c          	mov    %eax,0x4c(%esp)
58f1aa:	3b 6c 24 34          	cmp    0x34(%esp),%ebp
58f1ae:	75 27                	jne    0x58f1d7
58f1b0:	83 7b 04 00          	cmpl   $0x0,0x4(%ebx)
58f1b4:	74 21                	je     0x58f1d7
58f1b6:	8b 04 24             	mov    (%esp),%eax
58f1b9:	8b 54 24 34          	mov    0x34(%esp),%edx
58f1bd:	0f b7 04 50          	movzwl (%eax,%edx,2),%eax
58f1c1:	8b 53 04             	mov    0x4(%ebx),%edx
58f1c4:	8b 0c 24             	mov    (%esp),%ecx
58f1c7:	0f b7 14 51          	movzwl (%ecx,%edx,2),%edx
58f1cb:	03 c2                	add    %edx,%eax
58f1cd:	d1 e8                	shr    $1,%eax
58f1cf:	8b 54 24 4c          	mov    0x4c(%esp),%edx
58f1d3:	01 02                	add    %eax,(%edx)
58f1d5:	eb 13                	jmp    0x58f1ea
58f1d7:	8b 03                	mov    (%ebx),%eax
58f1d9:	03 44 24 34          	add    0x34(%esp),%eax
58f1dd:	8b 14 24             	mov    (%esp),%edx
58f1e0:	0f b7 04 42          	movzwl (%edx,%eax,2),%eax
58f1e4:	8b 54 24 4c          	mov    0x4c(%esp),%edx
58f1e8:	01 02                	add    %eax,(%edx)
58f1ea:	ff 44 24 34          	incl   0x34(%esp)
58f1ee:	83 44 24 4c 04       	addl   $0x4,0x4c(%esp)
58f1f3:	ff 4c 24 3c          	decl   0x3c(%esp)
58f1f7:	75 b1                	jne    0x58f1aa
58f1f9:	ff 44 24 30          	incl   0x30(%esp)
58f1fd:	83 c3 08             	add    $0x8,%ebx
58f200:	83 44 24 48 04       	addl   $0x4,0x48(%esp)
58f205:	4e                   	dec    %esi
58f206:	0f 85 6f ff ff ff    	jne    0x58f17b
58f20c:	8b 87 00 01 00 00    	mov    0x100(%edi),%eax
58f212:	48                   	dec    %eax
58f213:	85 c0                	test   %eax,%eax
58f215:	0f 8c 89 00 00 00    	jl     0x58f2a4
58f21b:	40                   	inc    %eax
58f21c:	89 44 24 3c          	mov    %eax,0x3c(%esp)
58f220:	c7 44 24 34 00 00 00 	movl   $0x0,0x34(%esp)
58f227:	00
58f228:	8d 84 24 84 50 00 00 	lea    0x5084(%esp),%eax
58f22f:	89 44 24 48          	mov    %eax,0x48(%esp)
58f233:	8b 04 24             	mov    (%esp),%eax
58f236:	0f b7 04 68          	movzwl (%eax,%ebp,2),%eax
58f23a:	89 44 24 20          	mov    %eax,0x20(%esp)
58f23e:	3b 6c 24 34          	cmp    0x34(%esp),%ebp
58f242:	74 39                	je     0x58f27d
58f244:	8b 44 24 48          	mov    0x48(%esp),%eax
58f248:	8b 00                	mov    (%eax),%eax
58f24a:	2b 84 ac 84 50 00 00 	sub    0x5084(%esp,%ebp,4),%eax
58f251:	99                   	cltd
58f252:	f7 7c 24 30          	idivl  0x30(%esp)
58f256:	01 44 24 20          	add    %eax,0x20(%esp)
58f25a:	83 7c 24 20 00       	cmpl   $0x0,0x20(%esp)
58f25f:	7d 06                	jge    0x58f267
58f261:	33 c0                	xor    %eax,%eax
58f263:	89 44 24 20          	mov    %eax,0x20(%esp)
58f267:	8b 87 08 01 00 00    	mov    0x108(%edi),%eax
58f26d:	3b 44 24 20          	cmp    0x20(%esp),%eax
58f271:	7d 0a                	jge    0x58f27d
58f273:	8b 87 08 01 00 00    	mov    0x108(%edi),%eax
58f279:	89 44 24 20          	mov    %eax,0x20(%esp)
58f27d:	8b 44 24 58          	mov    0x58(%esp),%eax
58f281:	8b 54 24 08          	mov    0x8(%esp),%edx
58f285:	8d 04 d0             	lea    (%eax,%edx,8),%eax
58f288:	8b 54 24 34          	mov    0x34(%esp),%edx
58f28c:	66 8b 4c 24 20       	mov    0x20(%esp),%cx
58f291:	66 89 0c 50          	mov    %cx,(%eax,%edx,2)
58f295:	ff 44 24 34          	incl   0x34(%esp)
58f299:	83 44 24 48 04       	addl   $0x4,0x48(%esp)
58f29e:	ff 4c 24 3c          	decl   0x3c(%esp)
58f2a2:	75 8f                	jne    0x58f233
58f2a4:	ff 44 24 08          	incl   0x8(%esp)
58f2a8:	ff 4c 24 38          	decl   0x38(%esp)
58f2ac:	0f 85 7b fd ff ff    	jne    0x58f02d
58f2b2:	83 7c 24 04 03       	cmpl   $0x3,0x4(%esp)
58f2b7:	7e 2f                	jle    0x58f2e8
58f2b9:	8b 44 24 04          	mov    0x4(%esp),%eax
58f2bd:	83 e8 02             	sub    $0x2,%eax
58f2c0:	f7 af fc 00 00 00    	imull  0xfc(%edi)
58f2c6:	8b 17                	mov    (%edi),%edx
58f2c8:	8d 44 c2 10          	lea    0x10(%edx,%eax,8),%eax
58f2cc:	8b 97 fc 00 00 00    	mov    0xfc(%edi),%edx
58f2d2:	83 ea 04             	sub    $0x4,%edx
58f2d5:	03 d2                	add    %edx,%edx
58f2d7:	8b ca                	mov    %edx,%ecx
58f2d9:	c1 e1 02             	shl    $0x2,%ecx
58f2dc:	8b 54 24 50          	mov    0x50(%esp),%edx
58f2e0:	83 c2 10             	add    $0x10,%edx
58f2e3:	e8 c8 c4 ff ff       	call   0x58b7b0
58f2e8:	33 f6                	xor    %esi,%esi
58f2ea:	8d 44 24 50          	lea    0x50(%esp),%eax
58f2ee:	89 44 24 40          	mov    %eax,0x40(%esp)
58f2f2:	8b 44 24 40          	mov    0x40(%esp),%eax
58f2f6:	8b 00                	mov    (%eax),%eax
58f2f8:	8b d6                	mov    %esi,%edx
58f2fa:	4a                   	dec    %edx
58f2fb:	83 e2 03             	and    $0x3,%edx
58f2fe:	89 44 94 50          	mov    %eax,0x50(%esp,%edx,4)
58f302:	46                   	inc    %esi
58f303:	83 44 24 40 04       	addl   $0x4,0x40(%esp)
58f308:	83 fe 04             	cmp    $0x4,%esi
58f30b:	75 e5                	jne    0x58f2f2
58f30d:	ff 44 24 04          	incl   0x4(%esp)
58f311:	8b 87 f8 00 00 00    	mov    0xf8(%edi),%eax
58f317:	83 e8 02             	sub    $0x2,%eax
58f31a:	3b 44 24 04          	cmp    0x4(%esp),%eax
58f31e:	0f 8f e9 fc ff ff    	jg     0x58f00d
58f324:	8b 44 24 04          	mov    0x4(%esp),%eax
58f328:	83 e8 02             	sub    $0x2,%eax
58f32b:	f7 af fc 00 00 00    	imull  0xfc(%edi)
58f331:	8b 17                	mov    (%edi),%edx
58f333:	8d 44 c2 10          	lea    0x10(%edx,%eax,8),%eax
58f337:	8b 97 fc 00 00 00    	mov    0xfc(%edi),%edx
58f33d:	83 ea 04             	sub    $0x4,%edx
58f340:	03 d2                	add    %edx,%edx
58f342:	8b ca                	mov    %edx,%ecx
58f344:	c1 e1 02             	shl    $0x2,%ecx
58f347:	8b 54 24 50          	mov    0x50(%esp),%edx
58f34b:	83 c2 10             	add    $0x10,%edx
58f34e:	e8 5d c4 ff ff       	call   0x58b7b0
58f353:	8b 44 24 04          	mov    0x4(%esp),%eax
58f357:	48                   	dec    %eax
58f358:	f7 af fc 00 00 00    	imull  0xfc(%edi)
58f35e:	8b 17                	mov    (%edi),%edx
58f360:	8d 44 c2 10          	lea    0x10(%edx,%eax,8),%eax
58f364:	8b 97 fc 00 00 00    	mov    0xfc(%edi),%edx
58f36a:	83 ea 04             	sub    $0x4,%edx
58f36d:	03 d2                	add    %edx,%edx
58f36f:	8b ca                	mov    %edx,%ecx
58f371:	c1 e1 02             	shl    $0x2,%ecx
58f374:	8b 54 24 54          	mov    0x54(%esp),%edx
58f378:	83 c2 10             	add    $0x10,%edx
58f37b:	e8 30 c4 ff ff       	call   0x58b7b0
58f380:	8b 44 24 60          	mov    0x60(%esp),%eax
58f384:	e8 43 34 e7 ff       	call   0x4027cc
58f389:	81 c4 94 50 00 00    	add    $0x5094,%esp
58f38f:	5d                   	pop    %ebp
58f390:	5f                   	pop    %edi
58f391:	5e                   	pop    %esi
58f392:	5b                   	pop    %ebx
58f393:	c3                   	ret
58f394:	76 6e                	jbe    0x58f404
58f396:	67 5f                	addr16 pop %edi
58f398:	69 6e 74 65 72 70 6f 	imul   $0x6f707265,0x74(%esi),%ebp
58f39f:	6c                   	insb   (%dx),%es:(%edi)
58f3a0:	61                   	popa
58f3a1:	74 65                	je     0x58f408
58f3a3:	28 29                	sub    %ch,(%ecx)
58f3a5:	00 00                	add    %al,(%eax)
58f3a7:	00 53 56             	add    %dl,0x56(%ebx)
58f3aa:	57                   	push   %edi
58f3ab:	55                   	push   %ebp
58f3ac:	83 c4 f4             	add    $0xfffffff4,%esp
58f3af:	89 14 24             	mov    %edx,(%esp)
58f3b2:	8b d8                	mov    %eax,%ebx
58f3b4:	8b 53 04             	mov    0x4(%ebx),%edx
58f3b7:	8b c3                	mov    %ebx,%eax
58f3b9:	e8 96 97 ff ff       	call   0x588b54
58f3be:	0f b7 f0             	movzwl %ax,%esi
58f3c1:	85 f6                	test   %esi,%esi
58f3c3:	0f 84 25 01 00 00    	je     0x58f4ee
58f3c9:	4e                   	dec    %esi
58f3ca:	8b 53 04             	mov    0x4(%ebx),%edx
58f3cd:	8b c3                	mov    %ebx,%eax
58f3cf:	e8 80 97 ff ff       	call   0x588b54
58f3d4:	0f b7 e8             	movzwl %ax,%ebp
58f3d7:	8b 53 04             	mov    0x4(%ebx),%edx
58f3da:	8b c3                	mov    %ebx,%eax
58f3dc:	e8 73 97 ff ff       	call   0x588b54
58f3e1:	0f b7 c0             	movzwl %ax,%eax
58f3e4:	89 44 24 04          	mov    %eax,0x4(%esp)
58f3e8:	8b 53 04             	mov    0x4(%ebx),%edx
58f3eb:	8b c3                	mov    %ebx,%eax
58f3ed:	e8 ba 97 ff ff       	call   0x588bac
58f3f2:	8b f8                	mov    %eax,%edi
58f3f4:	83 7c 24 04 03       	cmpl   $0x3,0x4(%esp)
58f3f9:	75 22                	jne    0x58f41d
58f3fb:	83 ff 03             	cmp    $0x3,%edi
58f3fe:	7d 1d                	jge    0x58f41d
58f400:	8b 53 04             	mov    0x4(%ebx),%edx
58f403:	8b c3                	mov    %ebx,%eax
58f405:	e8 4a 97 ff ff       	call   0x588b54
58f40a:	0f b7 c0             	movzwl %ax,%eax
58f40d:	89 44 24 08          	mov    %eax,0x8(%esp)
58f411:	8b 53 04             	mov    0x4(%ebx),%edx
58f414:	8b c3                	mov    %ebx,%eax
58f416:	e8 39 97 ff ff       	call   0x588b54
58f41b:	eb 0e                	jmp    0x58f42b
58f41d:	8b 53 04             	mov    0x4(%ebx),%edx
58f420:	8b c3                	mov    %ebx,%eax
58f422:	e8 85 97 ff ff       	call   0x588bac
58f427:	89 44 24 08          	mov    %eax,0x8(%esp)
58f42b:	81 fd 06 01 00 00    	cmp    $0x106,%ebp
58f431:	7f 17                	jg     0x58f44a
58f433:	74 4b                	je     0x58f480
58f435:	81 ed 00 01 00 00    	sub    $0x100,%ebp
58f43b:	74 1f                	je     0x58f45c
58f43d:	4d                   	dec    %ebp
58f43e:	74 28                	je     0x58f468
58f440:	83 ed 02             	sub    $0x2,%ebp
58f443:	74 2f                	je     0x58f474
58f445:	e9 9c 00 00 00       	jmp    0x58f4e6
58f44a:	81 ed 11 01 00 00    	sub    $0x111,%ebp
58f450:	74 3a                	je     0x58f48c
58f452:	83 ed 12             	sub    $0x12,%ebp
58f455:	74 7f                	je     0x58f4d6
58f457:	e9 8a 00 00 00       	jmp    0x58f4e6
58f45c:	8b 44 24 08          	mov    0x8(%esp),%eax
58f460:	89 83 ec 00 00 00    	mov    %eax,0xec(%ebx)
58f466:	eb 7e                	jmp    0x58f4e6
58f468:	8b 44 24 08          	mov    0x8(%esp),%eax
58f46c:	89 83 e8 00 00 00    	mov    %eax,0xe8(%ebx)
58f472:	eb 72                	jmp    0x58f4e6
58f474:	8b 44 24 08          	mov    0x8(%esp),%eax
58f478:	89 83 e0 00 00 00    	mov    %eax,0xe0(%ebx)
58f47e:	eb 66                	jmp    0x58f4e6
58f480:	8b 44 24 08          	mov    0x8(%esp),%eax
58f484:	89 83 e4 00 00 00    	mov    %eax,0xe4(%ebx)
58f48a:	eb 5a                	jmp    0x58f4e6
58f48c:	4f                   	dec    %edi
58f48d:	75 0c                	jne    0x58f49b
58f48f:	8b 44 24 08          	mov    0x8(%esp),%eax
58f493:	89 83 d4 00 00 00    	mov    %eax,0xd4(%ebx)
58f499:	eb 4b                	jmp    0x58f4e6
58f49b:	8b 43 04             	mov    0x4(%ebx),%eax
58f49e:	e8 19 95 ff ff       	call   0x5889bc
58f4a3:	8b f8                	mov    %eax,%edi
58f4a5:	8b 44 24 08          	mov    0x8(%esp),%eax
58f4a9:	03 04 24             	add    (%esp),%eax
58f4ac:	99                   	cltd
58f4ad:	52                   	push   %edx
58f4ae:	50                   	push   %eax
58f4af:	8b 43 04             	mov    0x4(%ebx),%eax
58f4b2:	e8 21 f2 e8 ff       	call   0x41e6d8
58f4b7:	8b 53 04             	mov    0x4(%ebx),%edx
58f4ba:	8b c3                	mov    %ebx,%eax
58f4bc:	e8 eb 96 ff ff       	call   0x588bac
58f4c1:	89 83 d4 00 00 00    	mov    %eax,0xd4(%ebx)
58f4c7:	8b c7                	mov    %edi,%eax
58f4c9:	99                   	cltd
58f4ca:	52                   	push   %edx
58f4cb:	50                   	push   %eax
58f4cc:	8b 43 04             	mov    0x4(%ebx),%eax
58f4cf:	e8 04 f2 e8 ff       	call   0x41e6d8
58f4d4:	eb 10                	jmp    0x58f4e6
58f4d6:	8b 44 24 08          	mov    0x8(%esp),%eax
58f4da:	89 83 d8 00 00 00    	mov    %eax,0xd8(%ebx)
58f4e0:	89 bb dc 00 00 00    	mov    %edi,0xdc(%ebx)
58f4e6:	85 f6                	test   %esi,%esi
58f4e8:	0f 85 db fe ff ff    	jne    0x58f3c9
58f4ee:	83 c4 0c             	add    $0xc,%esp
58f4f1:	5d                   	pop    %ebp
58f4f2:	5f                   	pop    %edi
58f4f3:	5e                   	pop    %esi
58f4f4:	5b                   	pop    %ebx
58f4f5:	c3                   	ret
58f4f6:	8b c0                	mov    %eax,%eax
58f4f8:	53                   	push   %ebx
58f4f9:	56                   	push   %esi
58f4fa:	57                   	push   %edi
58f4fb:	55                   	push   %ebp
58f4fc:	83 c4 e8             	add    $0xffffffe8,%esp
58f4ff:	8b d8                	mov    %eax,%ebx
58f501:	33 c0                	xor    %eax,%eax
58f503:	89 04 24             	mov    %eax,(%esp)
58f506:	66 8b 43 08          	mov    0x8(%ebx),%ax
58f50a:	66 89 44 24 08       	mov    %ax,0x8(%esp)
58f50f:	8d 54 24 0a          	lea    0xa(%esp),%edx
58f513:	8b 43 04             	mov    0x4(%ebx),%eax
58f516:	b9 0a 00 00 00       	mov    $0xa,%ecx
58f51b:	8b 30                	mov    (%eax),%esi
58f51d:	ff 56 08             	call   *0x8(%esi)
58f520:	ba 20 f9 58 00       	mov    $0x58f920,%edx
58f525:	8d 44 24 0a          	lea    0xa(%esp),%eax
58f529:	e8 7e 94 ff ff       	call   0x5889ac
58f52e:	85 c0                	test   %eax,%eax
58f530:	75 56                	jne    0x58f588
58f532:	8b 43 04             	mov    0x4(%ebx),%eax
58f535:	e8 82 94 ff ff       	call   0x5889bc
58f53a:	89 04 24             	mov    %eax,(%esp)
58f53d:	8b 53 04             	mov    0x4(%ebx),%edx
58f540:	8b c3                	mov    %ebx,%eax
58f542:	e8 0d 96 ff ff       	call   0x588b54
58f547:	66 89 43 08          	mov    %ax,0x8(%ebx)
58f54b:	8b 53 04             	mov    0x4(%ebx),%edx
58f54e:	8b c3                	mov    %ebx,%eax
58f550:	e8 ff 95 ff ff       	call   0x588b54
58f555:	8b 53 04             	mov    0x4(%ebx),%edx
58f558:	8b c3                	mov    %ebx,%eax
58f55a:	e8 4d 96 ff ff       	call   0x588bac
58f55f:	8b f0                	mov    %eax,%esi
58f561:	8b 7b 04             	mov    0x4(%ebx),%edi
58f564:	8b c7                	mov    %edi,%eax
58f566:	e8 4d f1 e8 ff       	call   0x41e6b8
58f56b:	52                   	push   %edx
58f56c:	50                   	push   %eax
58f56d:	8b c6                	mov    %esi,%eax
58f56f:	83 e8 08             	sub    $0x8,%eax
58f572:	99                   	cltd
58f573:	03 04 24             	add    (%esp),%eax
58f576:	13 54 24 04          	adc    0x4(%esp),%edx
58f57a:	83 c4 08             	add    $0x8,%esp
58f57d:	52                   	push   %edx
58f57e:	50                   	push   %eax
58f57f:	8b c7                	mov    %edi,%eax
58f581:	e8 52 f1 e8 ff       	call   0x41e6d8
58f586:	eb 46                	jmp    0x58f5ce
58f588:	ba 28 f9 58 00       	mov    $0x58f928,%edx
58f58d:	8d 44 24 0a          	lea    0xa(%esp),%eax
58f591:	e8 16 94 ff ff       	call   0x5889ac
58f596:	85 c0                	test   %eax,%eax
58f598:	75 1b                	jne    0x58f5b5
58f59a:	8b 73 04             	mov    0x4(%ebx),%esi
58f59d:	8b c6                	mov    %esi,%eax
58f59f:	e8 14 f1 e8 ff       	call   0x41e6b8
58f5a4:	83 c0 fe             	add    $0xfffffffe,%eax
58f5a7:	83 d2 ff             	adc    $0xffffffff,%edx
58f5aa:	52                   	push   %edx
58f5ab:	50                   	push   %eax
58f5ac:	8b c6                	mov    %esi,%eax
58f5ae:	e8 25 f1 e8 ff       	call   0x41e6d8
58f5b3:	eb 19                	jmp    0x58f5ce
58f5b5:	8b 73 04             	mov    0x4(%ebx),%esi
58f5b8:	8b c6                	mov    %esi,%eax
58f5ba:	e8 f9 f0 e8 ff       	call   0x41e6b8
58f5bf:	83 c0 f6             	add    $0xfffffff6,%eax
58f5c2:	83 d2 ff             	adc    $0xffffffff,%edx
58f5c5:	52                   	push   %edx
58f5c6:	50                   	push   %eax
58f5c7:	8b c6                	mov    %esi,%eax
58f5c9:	e8 0a f1 e8 ff       	call   0x41e6d8
58f5ce:	8b 53 04             	mov    0x4(%ebx),%edx
58f5d1:	8b c3                	mov    %ebx,%eax
58f5d3:	e8 7c 95 ff ff       	call   0x588b54
58f5d8:	0f b7 e8             	movzwl %ax,%ebp
58f5db:	85 ed                	test   %ebp,%ebp
58f5dd:	0f 84 29 03 00 00    	je     0x58f90c
58f5e3:	4d                   	dec    %ebp
58f5e4:	8b 53 04             	mov    0x4(%ebx),%edx
58f5e7:	8b c3                	mov    %ebx,%eax
58f5e9:	e8 66 95 ff ff       	call   0x588b54
58f5ee:	0f b7 f0             	movzwl %ax,%esi
58f5f1:	8b 53 04             	mov    0x4(%ebx),%edx
58f5f4:	8b c3                	mov    %ebx,%eax
58f5f6:	e8 59 95 ff ff       	call   0x588b54
58f5fb:	0f b7 f8             	movzwl %ax,%edi