58c2bf:	56                   	push   %esi
58c2c0:	e8 ab 70 f2 ff       	call   0x4b3370
58c2c5:	83 c4 04             	add    $0x4,%esp
58c2c8:	3d 5e 01 00 00       	cmp    $0x15e,%eax
58c2cd:	7c 07                	jl     0x58c2d6
58c2cf:	bb 08 00 00 00       	mov    $0x8,%ebx
58c2d4:	eb 60                	jmp    0x58c336
58c2d6:	56                   	push   %esi
58c2d7:	e8 94 70 f2 ff       	call   0x4b3370
58c2dc:	83 c4 04             	add    $0x4,%esp
58c2df:	3d 2c 01 00 00       	cmp    $0x12c,%eax
58c2e4:	7c 07                	jl     0x58c2ed
58c2e6:	bb 09 00 00 00       	mov    $0x9,%ebx
58c2eb:	eb 49                	jmp    0x58c336
58c2ed:	56                   	push   %esi
58c2ee:	e8 7d 70 f2 ff       	call   0x4b3370
58c2f3:	83 c4 04             	add    $0x4,%esp
58c2f6:	3d fa 00 00 00       	cmp    $0xfa,%eax
58c2fb:	7c 07                	jl     0x58c304
58c2fd:	bb 0c 00 00 00       	mov    $0xc,%ebx
58c302:	eb 32                	jmp    0x58c336
58c304:	56                   	push   %esi
58c305:	e8 66 70 f2 ff       	call   0x4b3370
58c30a:	83 c4 04             	add    $0x4,%esp
58c30d:	3d c8 00 00 00       	cmp    $0xc8,%eax
58c312:	7c 07                	jl     0x58c31b
58c314:	bb 0f 00 00 00       	mov    $0xf,%ebx
58c319:	eb 1b                	jmp    0x58c336
58c31b:	56                   	push   %esi
58c31c:	e8 4f 70 f2 ff       	call   0x4b3370
58c321:	83 c4 04             	add    $0x4,%esp
58c324:	bb 1b 00 00 00       	mov    $0x1b,%ebx
58c329:	3d 96 00 00 00       	cmp    $0x96,%eax
58c32e:	b9 12 00 00 00       	mov    $0x12,%ecx
58c333:	0f 4d d9             	cmovge %ecx,%ebx
58c336:	8b 4e 04             	mov    0x4(%esi),%ecx
58c339:	85 c9                	test   %ecx,%ecx
58c33b:	0f 8e 31 02 00 00    	jle    0x58c572
58c341:	8b 06                	mov    (%esi),%eax
58c343:	f6 00 01             	testb  $0x1,(%eax)
58c346:	0f 84 26 02 00 00    	je     0x58c572
58c34c:	83 7c 24 30 00       	cmpl   $0x0,0x30(%esp)
58c351:	57                   	push   %edi
58c352:	74 55                	je     0x58c3a9
58c354:	bf b2 59 6c 00       	mov    $0x6c59b2,%edi
58c359:	0f 1f 80 00 00 00 00 	nopl   0x0(%eax)
58c360:	0f b7 07             	movzwl (%edi),%eax
58c363:	50                   	push   %eax
58c364:	56                   	push   %esi
58c365:	e8 e6 75 f2 ff       	call   0x4b3950
58c36a:	83 c4 08             	add    $0x8,%esp
58c36d:	85 c0                	test   %eax,%eax
58c36f:	74 5e                	je     0x58c3cf
58c371:	83 c7 02             	add    $0x2,%edi
58c374:	81 ff b0 69 6c 00    	cmp    $0x6c69b0,%edi
58c37a:	7c e4                	jl     0x58c360
58c37c:	8b 4c 24 38          	mov    0x38(%esp),%ecx
58c380:	85 c9                	test   %ecx,%ecx
58c382:	74 25                	je     0x58c3a9
58c384:	8b 01                	mov    (%ecx),%eax
58c386:	83 e8 01             	sub    $0x1,%eax
58c389:	74 2f                	je     0x58c3ba
58c38b:	83 e8 01             	sub    $0x1,%eax
58c38e:	0f 85 d3 01 00 00    	jne    0x58c567
58c394:	8b 41 08             	mov    0x8(%ecx),%eax
58c397:	51                   	push   %ecx
58c398:	6a ff                	push   $0xffffffff
58c39a:	6a 01                	push   $0x1
58c39c:	ff d0                	call   *%eax
58c39e:	83 c4 0c             	add    $0xc,%esp
58c3a1:	85 c0                	test   %eax,%eax
58c3a3:	0f 84 be 01 00 00    	je     0x58c567
58c3a9:	8b 44 24 30          	mov    0x30(%esp),%eax
58c3ad:	55                   	push   %ebp
58c3ae:	85 c0                	test   %eax,%eax
58c3b0:	74 26                	je     0x58c3d8
58c3b2:	8b e8                	mov    %eax,%ebp
58c3b4:	89 6c 24 10          	mov    %ebp,0x10(%esp)
58c3b8:	eb 31                	jmp    0x58c3eb
58c3ba:	8b 41 08             	mov    0x8(%ecx),%eax
58c3bd:	85 c0                	test   %eax,%eax
58c3bf:	74 e8                	je     0x58c3a9
58c3c1:	ff 71 04             	push   0x4(%ecx)
58c3c4:	6a ff                	push   $0xffffffff
58c3c6:	6a 01                	push   $0x1
58c3c8:	ff d0                	call   *%eax
58c3ca:	83 c4 0c             	add    $0xc,%esp
58c3cd:	eb da                	jmp    0x58c3a9
58c3cf:	5f                   	pop    %edi
58c3d0:	5b                   	pop    %ebx
58c3d1:	33 c0                	xor    %eax,%eax
58c3d3:	5e                   	pop    %esi
58c3d4:	83 c4 18             	add    $0x18,%esp
58c3d7:	c3                   	ret
58c3d8:	e8 43 ba f4 ff       	call   0x4d7e20
58c3dd:	8b e8                	mov    %eax,%ebp
58c3df:	89 6c 24 10          	mov    %ebp,0x10(%esp)
58c3e3:	85 ed                	test   %ebp,%ebp
58c3e5:	0f 84 7b 01 00 00    	je     0x58c566
58c3eb:	55                   	push   %ebp
58c3ec:	e8 af ba f4 ff       	call   0x4d7ea0
58c3f1:	55                   	push   %ebp
58c3f2:	e8 c9 b9 f4 ff       	call   0x4d7dc0
58c3f7:	8b 7c 24 18          	mov    0x18(%esp),%edi
58c3fb:	8b e8                	mov    %eax,%ebp
58c3fd:	57                   	push   %edi
58c3fe:	e8 bd b9 f4 ff       	call   0x4d7dc0
58c403:	57                   	push   %edi
58c404:	89 44 24 34          	mov    %eax,0x34(%esp)
58c408:	e8 b3 b9 f4 ff       	call   0x4d7dc0
58c40d:	83 c4 10             	add    $0x10,%esp
58c410:	89 44 24 1c          	mov    %eax,0x1c(%esp)
58c414:	85 c0                	test   %eax,%eax
58c416:	0f 84 18 01 00 00    	je     0x58c534
58c41c:	56                   	push   %esi
58c41d:	55                   	push   %ebp
58c41e:	e8 ad 6c f2 ff       	call   0x4b30d0
58c423:	83 c4 08             	add    $0x8,%esp
58c426:	85 c0                	test   %eax,%eax
58c428:	0f 84 06 01 00 00    	je     0x58c534
58c42e:	6a 01                	push   $0x1
58c430:	55                   	push   %ebp
58c431:	e8 fa 75 f2 ff       	call   0x4b3a30
58c436:	83 c4 08             	add    $0x8,%esp
58c439:	85 c0                	test   %eax,%eax
58c43b:	0f 84 f3 00 00 00    	je     0x58c534
58c441:	83 7d 04 00          	cmpl   $0x0,0x4(%ebp)
58c445:	75 0d                	jne    0x58c454
58c447:	c7 44 24 14 00 00 00 	movl   $0x0,0x14(%esp)
58c44e:	00
58c44f:	e9 e0 00 00 00       	jmp    0x58c534
58c454:	6a 01                	push   $0x1
58c456:	55                   	push   %ebp
58c457:	c7 44 24 20 01 00 00 	movl   $0x1,0x20(%esp)
58c45e:	00
58c45f:	e8 dc 6d f2 ff       	call   0x4b3240
58c464:	83 c4 08             	add    $0x8,%esp
58c467:	85 c0                	test   %eax,%eax
58c469:	75 1c                	jne    0x58c487
58c46b:	be 01 00 00 00       	mov    $0x1,%esi
58c470:	46                   	inc    %esi
58c471:	56                   	push   %esi
58c472:	55                   	push   %ebp
58c473:	e8 c8 6d f2 ff       	call   0x4b3240
58c478:	83 c4 08             	add    $0x8,%esp
58c47b:	85 c0                	test   %eax,%eax
58c47d:	74 f1                	je     0x58c470
58c47f:	89 74 24 18          	mov    %esi,0x18(%esp)
58c483:	8b 74 24 2c          	mov    0x2c(%esp),%esi
58c487:	ff 74 24 18          	push   0x18(%esp)
58c48b:	55                   	push   %ebp
58c48c:	ff 74 24 2c          	push   0x2c(%esp)
58c490:	e8 8b 82 f2 ff       	call   0x4b4720
58c495:	83 c4 0c             	add    $0xc,%esp
58c498:	85 c0                	test   %eax,%eax
58c49a:	0f 84 94 00 00 00    	je     0x58c534
58c4a0:	e8 db 44 fe ff       	call   0x570980
58c4a5:	89 44 24 20          	mov    %eax,0x20(%esp)
58c4a9:	85 c0                	test   %eax,%eax
58c4ab:	0f 84 83 00 00 00    	je     0x58c534
58c4b1:	57                   	push   %edi
58c4b2:	56                   	push   %esi
58c4b3:	50                   	push   %eax
58c4b4:	e8 27 45 fe ff       	call   0x5709e0
58c4b9:	83 c4 0c             	add    $0xc,%esp
58c4bc:	85 c0                	test   %eax,%eax
58c4be:	74 74                	je     0x58c534
58c4c0:	33 ff                	xor    %edi,%edi
58c4c2:	85 db                	test   %ebx,%ebx
58c4c4:	7e 66                	jle    0x58c52c
58c4c6:	55                   	push   %ebp
58c4c7:	ff 74 24 20          	push   0x20(%esp)
58c4cb:	e8 80 21 fe ff       	call   0x56e650
58c4d0:	83 c4 08             	add    $0x8,%esp
58c4d3:	85 c0                	test   %eax,%eax
58c4d5:	74 5d                	je     0x58c534
58c4d7:	6a 01                	push   $0x1
58c4d9:	ff 74 24 20          	push   0x20(%esp)
58c4dd:	e8 fe 72 f2 ff       	call   0x4b37e0
58c4e2:	83 c4 08             	add    $0x8,%esp
58c4e5:	85 c0                	test   %eax,%eax
58c4e7:	74 4b                	je     0x58c534
58c4e9:	ff 74 24 20          	push   0x20(%esp)
58c4ed:	ff 74 24 14          	push   0x14(%esp)
58c4f1:	ff 74 24 20          	push   0x20(%esp)
58c4f5:	ff 74 24 30          	push   0x30(%esp)
58c4f9:	55                   	push   %ebp
58c4fa:	56                   	push   %esi
58c4fb:	ff 74 24 34          	push   0x34(%esp)
58c4ff:	e8 1c 04 00 00       	call   0x58c920
58c504:	83 c4 1c             	add    $0x1c,%esp
58c507:	83 f8 ff             	cmp    $0xffffffff,%eax
58c50a:	74 28                	je     0x58c534
58c50c:	85 c0                	test   %eax,%eax
58c50e:	0f 85 33 ff ff ff    	jne    0x58c447
58c514:	57                   	push   %edi
58c515:	6a 01                	push   $0x1
58c517:	ff 74 24 44          	push   0x44(%esp)
58c51b:	e8 f0 f9 ff ff       	call   0x58bf10
58c520:	83 c4 0c             	add    $0xc,%esp
58c523:	85 c0                	test   %eax,%eax
58c525:	74 0d                	je     0x58c534
58c527:	47                   	inc    %edi
58c528:	3b fb                	cmp    %ebx,%edi
58c52a:	7c 9a                	jl     0x58c4c6
58c52c:	c7 44 24 14 01 00 00 	movl   $0x1,0x14(%esp)
58c533:	00
58c534:	8b 5c 24 10          	mov    0x10(%esp),%ebx
58c538:	85 db                	test   %ebx,%ebx
58c53a:	74 19                	je     0x58c555
58c53c:	53                   	push   %ebx
58c53d:	e8 0e b8 f4 ff       	call   0x4d7d50
58c542:	83 c4 04             	add    $0x4,%esp
58c545:	83 7c 24 34 00       	cmpl   $0x0,0x34(%esp)
58c54a:	75 09                	jne    0x58c555
58c54c:	53                   	push   %ebx
58c54d:	e8 3e b8 f4 ff       	call   0x4d7d90
58c552:	83 c4 04             	add    $0x4,%esp
58c555:	8b 44 24 20          	mov    0x20(%esp),%eax
58c559:	85 c0                	test   %eax,%eax
58c55b:	74 09                	je     0x58c566
58c55d:	50                   	push   %eax
58c55e:	e8 dd 43 fe ff       	call   0x570940
58c563:	83 c4 04             	add    $0x4,%esp
58c566:	5d                   	pop    %ebp
58c567:	8b 44 24 10          	mov    0x10(%esp),%eax
58c56b:	5f                   	pop    %edi
58c56c:	5b                   	pop    %ebx
58c56d:	5e                   	pop    %esi
58c56e:	83 c4 18             	add    $0x18,%esp
58c571:	c3                   	ret
58c572:	83 f9 01             	cmp    $0x1,%ecx
58c575:	75 15                	jne    0x58c58c
58c577:	8b 06                	mov    (%esi),%eax
58c579:	83 38 02             	cmpl   $0x2,(%eax)
58c57c:	75 0e                	jne    0x58c58c
58c57e:	83 7e 0c 00          	cmpl   $0x0,0xc(%esi)
58c582:	75 08                	jne    0x58c58c
58c584:	5b                   	pop    %ebx
58c585:	8b c1                	mov    %ecx,%eax
58c587:	5e                   	pop    %esi
58c588:	83 c4 18             	add    $0x18,%esp
58c58b:	c3                   	ret
58c58c:	5b                   	pop    %ebx
58c58d:	33 c0                	xor    %eax,%eax
58c58f:	5e                   	pop    %esi
58c590:	83 c4 18             	add    $0x18,%esp
58c593:	c3                   	ret
58c594:	cc                   	int3
58c595:	cc                   	int3
58c596:	cc                   	int3
58c597:	cc                   	int3
58c598:	cc                   	int3
58c599:	cc                   	int3
58c59a:	cc                   	int3
58c59b:	cc                   	int3
58c59c:	cc                   	int3
58c59d:	cc                   	int3
58c59e:	cc                   	int3
58c59f:	cc                   	int3
58c5a0:	b8 04 10 00 00       	mov    $0x1004,%eax
58c5a5:	e8 46 4f 05 00       	call   0x5e14f0
58c5aa:	a1 d4 89 72 00       	mov    0x7289d4,%eax
58c5af:	33 c4                	xor    %esp,%eax
58c5b1:	89 84 24 00 10 00 00 	mov    %eax,0x1000(%esp)
58c5b8:	53                   	push   %ebx
58c5b9:	8b 9c 24 0c 10 00 00 	mov    0x100c(%esp),%ebx
58c5c0:	55                   	push   %ebp
58c5c1:	8b ac 24 14 10 00 00 	mov    0x1014(%esp),%ebp
58c5c8:	56                   	push   %esi
58c5c9:	57                   	push   %edi
58c5ca:	6a 01                	push   $0x1
58c5cc:	6a 01                	push   $0x1
58c5ce:	55                   	push   %ebp
58c5cf:	53                   	push   %ebx
58c5d0:	e8 9b 20 fe ff       	call   0x56e670
58c5d5:	83 c4 10             	add    $0x10,%esp
58c5d8:	85 c0                	test   %eax,%eax
58c5da:	74 6c                	je     0x58c648
58c5dc:	0f 1f 40 00          	nopl   0x0(%eax)
58c5e0:	33 f6                	xor    %esi,%esi
58c5e2:	0f b7 86 b2 59 6c 00 	movzwl 0x6c59b2(%esi),%eax
58c5e9:	50                   	push   %eax
58c5ea:	53                   	push   %ebx
58c5eb:	e8 60 73 f2 ff       	call   0x4b3950
58c5f0:	66 89 44 34 1a       	mov    %ax,0x1a(%esp,%esi,1)
58c5f5:	83 c4 08             	add    $0x8,%esp
58c5f8:	83 c6 02             	add    $0x2,%esi
58c5fb:	81 fe fe 0f 00 00    	cmp    $0xffe,%esi
58c601:	7c df                	jl     0x58c5e2
58c603:	33 ff                	xor    %edi,%edi
58c605:	33 c9                	xor    %ecx,%ecx
58c607:	81 f9 fe 0f 00 00    	cmp    $0xffe,%ecx
58c60d:	7d 54                	jge    0x58c663
58c60f:	0f b7 44 0c 12       	movzwl 0x12(%esp,%ecx,1),%eax
58c614:	33 d2                	xor    %edx,%edx
58c616:	0f b7 b1 b2 59 6c 00 	movzwl 0x6c59b2(%ecx),%esi
58c61d:	03 c7                	add    %edi,%eax
58c61f:	f7 f6                	div    %esi
58c621:	83 fa 01             	cmp    $0x1,%edx
58c624:	76 05                	jbe    0x58c62b
58c626:	83 c1 02             	add    $0x2,%ecx
58c629:	eb dc                	jmp    0x58c607
58c62b:	83 c7 02             	add    $0x2,%edi
58c62e:	81 ff 38 ba ff ff    	cmp    $0xffffba38,%edi
58c634:	76 cf                	jbe    0x58c605
58c636:	6a 01                	push   $0x1
58c638:	6a 01                	push   $0x1
58c63a:	55                   	push   %ebp
58c63b:	53                   	push   %ebx
58c63c:	e8 2f 20 fe ff       	call   0x56e670
58c641:	83 c4 10             	add    $0x10,%esp
58c644:	85 c0                	test   %eax,%eax
58c646:	75 98                	jne    0x58c5e0
58c648:	33 c0                	xor    %eax,%eax
58c64a:	8b 8c 24 10 10 00 00 	mov    0x1010(%esp),%ecx
58c651:	5f                   	pop    %edi
58c652:	5e                   	pop    %esi
58c653:	5d                   	pop    %ebp
58c654:	5b                   	pop    %ebx
58c655:	33 cc                	xor    %esp,%ecx
58c657:	e8 7e 4e 05 00       	call   0x5e14da
58c65c:	81 c4 04 10 00 00    	add    $0x1004,%esp
58c662:	c3                   	ret
58c663:	57                   	push   %edi
58c664:	53                   	push   %ebx
58c665:	e8 76 71 f2 ff       	call   0x4b37e0
58c66a:	83 c4 08             	add    $0x8,%esp
58c66d:	f7 d8                	neg    %eax
58c66f:	1b c0                	sbb    %eax,%eax
58c671:	f7 d8                	neg    %eax
58c673:	eb d5                	jmp    0x58c64a
58c675:	cc                   	int3
58c676:	cc                   	int3
58c677:	cc                   	int3
58c678:	cc                   	int3
58c679:	cc                   	int3
58c67a:	cc                   	int3
58c67b:	cc                   	int3
58c67c:	cc                   	int3
58c67d:	cc                   	int3
58c67e:	cc                   	int3
58c67f:	cc                   	int3
58c680:	b8 04 00 00 00       	mov    $0x4,%eax
58c685:	e8 66 4e 05 00       	call   0x5e14f0
58c68a:	55                   	push   %ebp
58c68b:	8b 6c 24 1c          	mov    0x1c(%esp),%ebp
58c68f:	56                   	push   %esi
58c690:	55                   	push   %ebp
58c691:	c7 44 24 0c 00 00 00 	movl   $0x0,0xc(%esp)