58f393:	e8 18 cb fe ff       	call   0x57beb0
58f398:	83 c4 08             	add    $0x8,%esp
58f39b:	85 c0                	test   %eax,%eax
58f39d:	0f 84 1b 02 00 00    	je     0x58f5be
58f3a3:	83 3c 3e 01          	cmpl   $0x1,(%esi,%edi,1)
58f3a7:	76 71                	jbe    0x58f41a
58f3a9:	8b 07                	mov    (%edi),%eax
58f3ab:	ff 74 24 78          	push   0x78(%esp)
58f3af:	8b 74 24 1c          	mov    0x1c(%esp),%esi
58f3b3:	ff 30                	push   (%eax)
58f3b5:	56                   	push   %esi
58f3b6:	55                   	push   %ebp
58f3b7:	e8 64 cb fe ff       	call   0x57bf20
58f3bc:	83 c4 10             	add    $0x10,%esp
58f3bf:	85 c0                	test   %eax,%eax
58f3c1:	0f 84 28 02 00 00    	je     0x58f5ef
58f3c7:	8b 4c 24 30          	mov    0x30(%esp),%ecx
58f3cb:	be 01 00 00 00       	mov    $0x1,%esi
58f3d0:	8b c6                	mov    %esi,%eax
58f3d2:	8b 0c 39             	mov    (%ecx,%edi,1),%ecx
58f3d5:	49                   	dec    %ecx
58f3d6:	d3 e0                	shl    %cl,%eax
58f3d8:	3b c6                	cmp    %esi,%eax
58f3da:	76 3a                	jbe    0x58f416
58f3dc:	0f 1f 40 00          	nopl   0x0(%eax)
58f3e0:	ff 74 24 78          	push   0x78(%esp)
58f3e4:	8b 07                	mov    (%edi),%eax
58f3e6:	ff 74 24 1c          	push   0x1c(%esp)
58f3ea:	ff 74 b0 fc          	push   -0x4(%eax,%esi,4)
58f3ee:	ff 34 b0             	push   (%eax,%esi,4)
58f3f1:	55                   	push   %ebp
58f3f2:	e8 89 c9 fe ff       	call   0x57bd80
58f3f7:	83 c4 14             	add    $0x14,%esp
58f3fa:	85 c0                	test   %eax,%eax
58f3fc:	0f 84 bc 01 00 00    	je     0x58f5be
58f402:	8b 44 24 30          	mov    0x30(%esp),%eax
58f406:	46                   	inc    %esi
58f407:	8b 0c 38             	mov    (%eax,%edi,1),%ecx
58f40a:	b8 01 00 00 00       	mov    $0x1,%eax
58f40f:	49                   	dec    %ecx
58f410:	d3 e0                	shl    %cl,%eax
58f412:	3b f0                	cmp    %eax,%esi
58f414:	72 ca                	jb     0x58f3e0
58f416:	8b 74 24 30          	mov    0x30(%esp),%esi
58f41a:	8b 44 24 70          	mov    0x70(%esp),%eax
58f41e:	43                   	inc    %ebx
58f41f:	83 c7 04             	add    $0x4,%edi
58f422:	3b 5c 24 34          	cmp    0x34(%esp),%ebx
58f426:	0f 82 54 ff ff ff    	jb     0x58f380
58f42c:	8b 7c 24 78          	mov    0x78(%esp),%edi
58f430:	8b 44 24 14          	mov    0x14(%esp),%eax
58f434:	57                   	push   %edi
58f435:	50                   	push   %eax
58f436:	ff 74 24 40          	push   0x40(%esp)
58f43a:	55                   	push   %ebp
58f43b:	e8 10 d1 fe ff       	call   0x57c550
58f440:	83 c4 10             	add    $0x10,%esp
58f443:	85 c0                	test   %eax,%eax
58f445:	0f 84 73 01 00 00    	je     0x58f5be
58f44b:	8b 4c 24 24          	mov    0x24(%esp),%ecx
58f44f:	bb 01 00 00 00       	mov    $0x1,%ebx
58f454:	2b cb                	sub    %ebx,%ecx
58f456:	89 4c 24 38          	mov    %ecx,0x38(%esp)
58f45a:	0f 88 45 01 00 00    	js     0x58f5a5
58f460:	eb 04                	jmp    0x58f466
58f462:	8b 6c 24 60          	mov    0x60(%esp),%ebp
58f466:	8b 74 24 64          	mov    0x64(%esp),%esi
58f46a:	85 db                	test   %ebx,%ebx
58f46c:	75 18                	jne    0x58f486
58f46e:	57                   	push   %edi
58f46f:	56                   	push   %esi
58f470:	56                   	push   %esi
58f471:	55                   	push   %ebp
58f472:	e8 a9 ca fe ff       	call   0x57bf20
58f477:	83 c4 10             	add    $0x10,%esp
58f47a:	85 c0                	test   %eax,%eax
58f47c:	0f 84 3c 01 00 00    	je     0x58f5be
58f482:	8b 4c 24 38          	mov    0x38(%esp),%ecx
58f486:	33 ed                	xor    %ebp,%ebp
58f488:	39 6c 24 28          	cmp    %ebp,0x28(%esp)
58f48c:	0f 86 e8 00 00 00    	jbe    0x58f57a
58f492:	8b 54 24 20          	mov    0x20(%esp),%edx
58f496:	8b 44 24 10          	mov    0x10(%esp),%eax
58f49a:	2b d0                	sub    %eax,%edx
58f49c:	8b 7c 24 1c          	mov    0x1c(%esp),%edi
58f4a0:	2b c7                	sub    %edi,%eax
58f4a2:	89 54 24 4c          	mov    %edx,0x4c(%esp)
58f4a6:	89 44 24 58          	mov    %eax,0x58(%esp)
58f4aa:	66 0f 1f 44 00 00    	nopw   0x0(%eax,%eax,1)
58f4b0:	03 c7                	add    %edi,%eax
58f4b2:	39 0c 10             	cmp    %ecx,(%eax,%edx,1)
58f4b5:	0f 86 a9 00 00 00    	jbe    0x58f564
58f4bb:	8b 00                	mov    (%eax),%eax
58f4bd:	0f be 34 08          	movsbl (%eax,%ecx,1),%esi
58f4c1:	85 f6                	test   %esi,%esi
58f4c3:	0f 84 97 00 00 00    	je     0x58f560
58f4c9:	33 c0                	xor    %eax,%eax
58f4cb:	85 f6                	test   %esi,%esi
58f4cd:	0f 98 c0             	sets   %al
58f4d0:	85 c0                	test   %eax,%eax
58f4d2:	74 02                	je     0x58f4d6
58f4d4:	f7 de                	neg    %esi
58f4d6:	8b 4c 24 3c          	mov    0x3c(%esp),%ecx
58f4da:	3b c1                	cmp    %ecx,%eax
58f4dc:	74 2f                	je     0x58f50d
58f4de:	85 db                	test   %ebx,%ebx
58f4e0:	75 20                	jne    0x58f502
58f4e2:	ff 74 24 78          	push   0x78(%esp)
58f4e6:	ff 74 24 68          	push   0x68(%esp)
58f4ea:	ff 74 24 68          	push   0x68(%esp)
58f4ee:	e8 fd cb fe ff       	call   0x57c0f0
58f4f3:	83 c4 0c             	add    $0xc,%esp
58f4f6:	85 c0                	test   %eax,%eax
58f4f8:	0f 84 c0 00 00 00    	je     0x58f5be
58f4fe:	8b 4c 24 3c          	mov    0x3c(%esp),%ecx
58f502:	33 c0                	xor    %eax,%eax
58f504:	85 c9                	test   %ecx,%ecx
58f506:	0f 94 c0             	sete   %al
58f509:	89 44 24 3c          	mov    %eax,0x3c(%esp)
58f50d:	8b 07                	mov    (%edi),%eax
58f50f:	d1 fe                	sar    $1,%esi
58f511:	85 db                	test   %ebx,%ebx
58f513:	74 24                	je     0x58f539
58f515:	ff 34 b0             	push   (%eax,%esi,4)
58f518:	8b 74 24 68          	mov    0x68(%esp),%esi
58f51c:	56                   	push   %esi
58f51d:	e8 8e c9 fe ff       	call   0x57beb0
58f522:	83 c4 08             	add    $0x8,%esp
58f525:	85 c0                	test   %eax,%eax
58f527:	0f 84 91 00 00 00    	je     0x58f5be
58f52d:	8b 4c 24 38          	mov    0x38(%esp),%ecx
58f531:	33 db                	xor    %ebx,%ebx
58f533:	8b 54 24 4c          	mov    0x4c(%esp),%edx
58f537:	eb 2b                	jmp    0x58f564
58f539:	ff 74 24 78          	push   0x78(%esp)
58f53d:	ff 34 b0             	push   (%eax,%esi,4)
58f540:	8b 74 24 6c          	mov    0x6c(%esp),%esi
58f544:	56                   	push   %esi
58f545:	56                   	push   %esi
58f546:	ff 74 24 70          	push   0x70(%esp)
58f54a:	e8 31 c8 fe ff       	call   0x57bd80
58f54f:	83 c4 14             	add    $0x14,%esp
58f552:	85 c0                	test   %eax,%eax
58f554:	74 68                	je     0x58f5be
58f556:	8b 4c 24 38          	mov    0x38(%esp),%ecx
58f55a:	8b 54 24 4c          	mov    0x4c(%esp),%edx
58f55e:	eb 04                	jmp    0x58f564
58f560:	8b 74 24 64          	mov    0x64(%esp),%esi
58f564:	8b 44 24 58          	mov    0x58(%esp),%eax
58f568:	45                   	inc    %ebp
58f569:	83 c7 04             	add    $0x4,%edi
58f56c:	3b 6c 24 28          	cmp    0x28(%esp),%ebp
58f570:	0f 82 3a ff ff ff    	jb     0x58f4b0
58f576:	8b 7c 24 78          	mov    0x78(%esp),%edi
58f57a:	83 e9 01             	sub    $0x1,%ecx
58f57d:	89 4c 24 38          	mov    %ecx,0x38(%esp)
58f581:	0f 89 db fe ff ff    	jns    0x58f462
58f587:	85 db                	test   %ebx,%ebx
58f589:	75 16                	jne    0x58f5a1
58f58b:	39 5c 24 3c          	cmp    %ebx,0x3c(%esp)
58f58f:	74 25                	je     0x58f5b6
58f591:	57                   	push   %edi
58f592:	56                   	push   %esi
58f593:	ff 74 24 68          	push   0x68(%esp)
58f597:	e8 54 cb fe ff       	call   0x57c0f0
58f59c:	83 c4 0c             	add    $0xc,%esp
58f59f:	eb 11                	jmp    0x58f5b2
58f5a1:	8b 6c 24 60          	mov    0x60(%esp),%ebp
58f5a5:	ff 74 24 64          	push   0x64(%esp)
58f5a9:	55                   	push   %ebp
58f5aa:	e8 41 cf fe ff       	call   0x57c4f0
58f5af:	83 c4 08             	add    $0x8,%esp
58f5b2:	85 c0                	test   %eax,%eax
58f5b4:	74 08                	je     0x58f5be
58f5b6:	c7 44 24 54 01 00 00 	movl   $0x1,0x54(%esp)
58f5bd:	00
58f5be:	8b 5c 24 10          	mov    0x10(%esp),%ebx
58f5c2:	8b 74 24 18          	mov    0x18(%esp),%esi
58f5c6:	8b 7c 24 14          	mov    0x14(%esp),%edi
58f5ca:	e9 09 fc ff ff       	jmp    0x58f1d8
58f5cf:	68 bc 01 00 00       	push   $0x1bc
58f5d4:	68 58 70 6c 00       	push   $0x6c7058
58f5d9:	6a 41                	push   $0x41
58f5db:	68 bb 00 00 00       	push   $0xbb
58f5e0:	6a 10                	push   $0x10
58f5e2:	e8 b9 1e f1 ff       	call   0x4a14a0
58f5e7:	83 c4 14             	add    $0x14,%esp
58f5ea:	e9 e5 fb ff ff       	jmp    0x58f1d4
58f5ef:	8b 5c 24 10          	mov    0x10(%esp),%ebx
58f5f3:	8b 7c 24 14          	mov    0x14(%esp),%edi
58f5f7:	e9 dc fb ff ff       	jmp    0x58f1d8
58f5fc:	8b 7c 24 14          	mov    0x14(%esp),%edi
58f600:	33 f6                	xor    %esi,%esi
58f602:	8b 5c 24 10          	mov    0x10(%esp),%ebx
58f606:	e9 cd fb ff ff       	jmp    0x58f1d8
58f60b:	8b 74 24 18          	mov    0x18(%esp),%esi
58f60f:	8b 7c 24 14          	mov    0x14(%esp),%edi
58f613:	8b 5c 24 10          	mov    0x10(%esp),%ebx
58f617:	e9 bc fb ff ff       	jmp    0x58f1d8
58f61c:	cc                   	int3
58f61d:	cc                   	int3
58f61e:	cc                   	int3
58f61f:	cc                   	int3
58f620:	b8 2c 00 00 00       	mov    $0x2c,%eax
58f625:	e8 c6 1e 05 00       	call   0x5e14f0
58f62a:	53                   	push   %ebx
58f62b:	8b 5c 24 34          	mov    0x34(%esp),%ebx
58f62f:	56                   	push   %esi
58f630:	57                   	push   %edi
58f631:	68 70 ea 58 00       	push   $0x58ea70
58f636:	68 10 eb 58 00       	push   $0x58eb10
58f63b:	8d 43 44             	lea    0x44(%ebx),%eax
58f63e:	c7 44 24 20 00 00 00 	movl   $0x0,0x20(%esp)
58f645:	00
58f646:	33 f6                	xor    %esi,%esi
58f648:	33 ff                	xor    %edi,%edi
58f64a:	68 e0 ea 58 00       	push   $0x58eae0
58f64f:	50                   	push   %eax
58f650:	89 7c 24 3c          	mov    %edi,0x3c(%esp)
58f654:	89 74 24 1c          	mov    %esi,0x1c(%esp)
58f658:	89 74 24 40          	mov    %esi,0x40(%esp)
58f65c:	e8 7f bb fe ff       	call   0x57b1e0
58f661:	53                   	push   %ebx
58f662:	e8 09 f5 ff ff       	call   0x58eb70
58f667:	83 c4 14             	add    $0x14,%esp
58f66a:	89 44 24 3c          	mov    %eax,0x3c(%esp)
58f66e:	85 c0                	test   %eax,%eax
58f670:	75 07                	jne    0x58f679
58f672:	5f                   	pop    %edi
58f673:	5e                   	pop    %esi
58f674:	5b                   	pop    %ebx
58f675:	83 c4 2c             	add    $0x2c,%esp
58f678:	c3                   	ret
58f679:	55                   	push   %ebp
58f67a:	53                   	push   %ebx
58f67b:	e8 60 1e f0 ff       	call   0x4914e0
58f680:	83 c4 04             	add    $0x4,%esp
58f683:	89 44 24 38          	mov    %eax,0x38(%esp)
58f687:	85 c0                	test   %eax,%eax
58f689:	75 21                	jne    0x58f6ac
58f68b:	68 fd 02 00 00       	push   $0x2fd
58f690:	68 58 70 6c 00       	push   $0x6c7058
58f695:	6a 71                	push   $0x71
58f697:	68 bc 00 00 00       	push   $0xbc
58f69c:	6a 10                	push   $0x10
58f69e:	e8 fd 1d f1 ff       	call   0x4a14a0
58f6a3:	8b 6c 24 58          	mov    0x58(%esp),%ebp
58f6a7:	83 c4 14             	add    $0x14,%esp
58f6aa:	eb 61                	jmp    0x58f70d
58f6ac:	8b 6c 24 44          	mov    0x44(%esp),%ebp
58f6b0:	85 ed                	test   %ebp,%ebp
58f6b2:	75 13                	jne    0x58f6c7
58f6b4:	e8 67 87 f4 ff       	call   0x4d7e20
58f6b9:	89 44 24 30          	mov    %eax,0x30(%esp)
58f6bd:	8b e8                	mov    %eax,%ebp
58f6bf:	85 c0                	test   %eax,%eax
58f6c1:	0f 84 47 03 00 00    	je     0x58fa0e
58f6c7:	55                   	push   %ebp
58f6c8:	e8 d3 87 f4 ff       	call   0x4d7ea0
58f6cd:	55                   	push   %ebp
58f6ce:	e8 ed 86 f4 ff       	call   0x4d7dc0
58f6d3:	8b f0                	mov    %eax,%esi
58f6d5:	83 c4 08             	add    $0x8,%esp
58f6d8:	85 f6                	test   %esi,%esi
58f6da:	74 2f                	je     0x58f70b
58f6dc:	55                   	push   %ebp
58f6dd:	56                   	push   %esi
58f6de:	53                   	push   %ebx
58f6df:	e8 5c c3 fe ff       	call   0x57ba40
58f6e4:	83 c4 0c             	add    $0xc,%esp
58f6e7:	85 c0                	test   %eax,%eax
58f6e9:	74 20                	je     0x58f70b
58f6eb:	39 7e 04             	cmp    %edi,0x4(%esi)
58f6ee:	75 48                	jne    0x58f738
58f6f0:	68 0f 03 00 00       	push   $0x30f
58f6f5:	68 58 70 6c 00       	push   $0x6c7058
58f6fa:	6a 72                	push   $0x72
58f6fc:	68 bc 00 00 00       	push   $0xbc
58f701:	6a 10                	push   $0x10
58f703:	e8 98 1d f1 ff       	call   0x4a14a0
58f708:	83 c4 14             	add    $0x14,%esp
58f70b:	33 f6                	xor    %esi,%esi
58f70d:	8b 5c 24 40          	mov    0x40(%esp),%ebx
58f711:	85 ed                	test   %ebp,%ebp
58f713:	74 09                	je     0x58f71e
58f715:	55                   	push   %ebp
58f716:	e8 35 86 f4 ff       	call   0x4d7d50
58f71b:	83 c4 04             	add    $0x4,%esp
58f71e:	8b 44 24 30          	mov    0x30(%esp),%eax
58f722:	85 c0                	test   %eax,%eax
58f724:	0f 84 e8 02 00 00    	je     0x58fa12
58f72a:	50                   	push   %eax
58f72b:	e8 60 86 f4 ff       	call   0x4d7d90
58f730:	83 c4 04             	add    $0x4,%esp
58f733:	e9 da 02 00 00       	jmp    0x58fa12
58f738:	56                   	push   %esi
58f739:	e8 32 3c f2 ff       	call   0x4b3370
58f73e:	8b c8                	mov    %eax,%ecx
58f740:	83 c4 04             	add    $0x4,%esp
58f743:	be 04 00 00 00       	mov    $0x4,%esi
58f748:	89 74 24 14          	mov    %esi,0x14(%esp)
58f74c:	81 f9 d0 07 00 00    	cmp    $0x7d0,%ecx
58f752:	73 4e                	jae    0x58f7a2
58f754:	81 f9 20 03 00 00    	cmp    $0x320,%ecx
58f75a:	73 21                	jae    0x58f77d
58f75c:	81 f9 2c 01 00 00    	cmp    $0x12c,%ecx
58f762:	73 47                	jae    0x58f7ab
58f764:	83 f9 46             	cmp    $0x46,%ecx
58f767:	73 42                	jae    0x58f7ab
58f769:	83 f9 14             	cmp    $0x14,%ecx
58f76c:	1b c0                	sbb    %eax,%eax
58f76e:	83 c0 02             	add    $0x2,%eax
58f771:	3b c6                	cmp    %esi,%eax
58f773:	76 36                	jbe    0x58f7ab
58f775:	81 f9 20 03 00 00    	cmp    $0x320,%ecx
58f77b:	72 07                	jb     0x58f784
58f77d:	be 05 00 00 00       	mov    $0x5,%esi
58f782:	eb 23                	jmp    0x58f7a7
58f784:	81 f9 2c 01 00 00    	cmp    $0x12c,%ecx
58f78a:	73 1b                	jae    0x58f7a7
58f78c:	83 f9 46             	cmp    $0x46,%ecx
58f78f:	72 07                	jb     0x58f798
58f791:	be 03 00 00 00       	mov    $0x3,%esi
58f796:	eb 0f                	jmp    0x58f7a7
58f798:	83 f9 14             	cmp    $0x14,%ecx
58f79b:	1b f6                	sbb    %esi,%esi
58f79d:	83 c6 02             	add    $0x2,%esi
58f7a0:	eb 05                	jmp    0x58f7a7
58f7a2:	be 06 00 00 00       	mov    $0x6,%esi
58f7a7:	89 74 24 14          	mov    %esi,0x14(%esp)
58f7ab:	8d 51 07             	lea    0x7(%ecx),%edx
58f7ae:	b8 01 00 00 00       	mov    $0x1,%eax
58f7b3:	8d 4e ff             	lea    -0x1(%esi),%ecx
58f7b6:	c1 ea 03             	shr    $0x3,%edx
58f7b9:	d3 e0                	shl    %cl,%eax
58f7bb:	89 44 24 2c          	mov    %eax,0x2c(%esp)
58f7bf:	0f af c2             	imul   %edx,%eax
58f7c2:	68 29 03 00 00       	push   $0x329
58f7c7:	68 58 70 6c 00       	push   $0x6c7058
58f7cc:	89 54 24 28          	mov    %edx,0x28(%esp)
58f7d0:	89 44 24 2c          	mov    %eax,0x2c(%esp)
58f7d4:	8d 04 85 04 00 00 00 	lea    0x4(,%eax,4),%eax
58f7db:	50                   	push   %eax
58f7dc:	e8 cf 09 f1 ff       	call   0x4a01b0
58f7e1:	8b f0                	mov    %eax,%esi
58f7e3:	83 c4 0c             	add    $0xc,%esp
58f7e6:	89 74 24 10          	mov    %esi,0x10(%esp)
58f7ea:	85 f6                	test   %esi,%esi
58f7ec:	75 20                	jne    0x58f80e
58f7ee:	68 2b 03 00 00       	push   $0x32b