58e32b:	5d                   	pop    %ebp
58e32c:	c3                   	ret
58e32d:	53                   	push   %ebx
58e32e:	8b 5c 24 1c          	mov    0x1c(%esp),%ebx
58e332:	56                   	push   %esi
58e333:	85 db                	test   %ebx,%ebx
58e335:	74 0c                	je     0x58e343
58e337:	8b 33                	mov    (%ebx),%esi
58e339:	8b c7                	mov    %edi,%eax
58e33b:	83 c6 01             	add    $0x1,%esi
58e33e:	0f 48 f0             	cmovs  %eax,%esi
58e341:	eb 02                	jmp    0x58e345
58e343:	33 f6                	xor    %esi,%esi
58e345:	55                   	push   %ebp
58e346:	e8 c5 02 f2 ff       	call   0x4ae610
58e34b:	83 c4 04             	add    $0x4,%esp
58e34e:	3b f0                	cmp    %eax,%esi
58e350:	0f 8d ca 00 00 00    	jge    0x58e420
58e356:	56                   	push   %esi
58e357:	55                   	push   %ebp
58e358:	e8 d3 03 f2 ff       	call   0x4ae730
58e35d:	8b e8                	mov    %eax,%ebp
58e35f:	ff 75 00             	push   0x0(%ebp)
58e362:	e8 79 96 f1 ff       	call   0x4a79e0
58e367:	83 c4 0c             	add    $0xc,%esp
58e36a:	3b 44 24 18          	cmp    0x18(%esp),%eax
58e36e:	75 0a                	jne    0x58e37a
58e370:	85 db                	test   %ebx,%ebx
58e372:	75 33                	jne    0x58e3a7
58e374:	85 ff                	test   %edi,%edi
58e376:	75 16                	jne    0x58e38e
58e378:	8b fd                	mov    %ebp,%edi
58e37a:	8b 6c 24 14          	mov    0x14(%esp),%ebp
58e37e:	46                   	inc    %esi
58e37f:	55                   	push   %ebp
58e380:	e8 8b 02 f2 ff       	call   0x4ae610
58e385:	83 c4 04             	add    $0x4,%esp
58e388:	3b f0                	cmp    %eax,%esi
58e38a:	7c ca                	jl     0x58e356
58e38c:	eb 1d                	jmp    0x58e3ab
58e38e:	8b 44 24 1c          	mov    0x1c(%esp),%eax
58e392:	85 c0                	test   %eax,%eax
58e394:	0f 84 9e 00 00 00    	je     0x58e438
58e39a:	5e                   	pop    %esi
58e39b:	5b                   	pop    %ebx
58e39c:	5f                   	pop    %edi
58e39d:	c7 00 fe ff ff ff    	movl   $0xfffffffe,(%eax)
58e3a3:	33 c0                	xor    %eax,%eax
58e3a5:	5d                   	pop    %ebp
58e3a6:	c3                   	ret
58e3a7:	89 33                	mov    %esi,(%ebx)
58e3a9:	8b fd                	mov    %ebp,%edi
58e3ab:	85 ff                	test   %edi,%edi
58e3ad:	74 71                	je     0x58e420
58e3af:	8b 74 24 1c          	mov    0x1c(%esp),%esi
58e3b3:	85 f6                	test   %esi,%esi
58e3b5:	74 0b                	je     0x58e3c2
58e3b7:	57                   	push   %edi
58e3b8:	e8 73 83 00 00       	call   0x596730
58e3bd:	83 c4 04             	add    $0x4,%esp
58e3c0:	89 06                	mov    %eax,(%esi)
58e3c2:	ff 37                	push   (%edi)
58e3c4:	e8 17 96 f1 ff       	call   0x4a79e0
58e3c9:	83 c4 04             	add    $0x4,%esp
58e3cc:	85 c0                	test   %eax,%eax
58e3ce:	74 68                	je     0x58e438
58e3d0:	50                   	push   %eax
58e3d1:	e8 aa fe ff ff       	call   0x58e280
58e3d6:	83 c4 04             	add    $0x4,%esp
58e3d9:	85 c0                	test   %eax,%eax
58e3db:	74 5b                	je     0x58e438
58e3dd:	8b 57 08             	mov    0x8(%edi),%edx
58e3e0:	8b 4a 08             	mov    0x8(%edx),%ecx
58e3e3:	89 4c 24 14          	mov    %ecx,0x14(%esp)
58e3e7:	8b 48 08             	mov    0x8(%eax),%ecx
58e3ea:	85 c9                	test   %ecx,%ecx
58e3ec:	74 1c                	je     0x58e40a
58e3ee:	ff d1                	call   *%ecx
58e3f0:	50                   	push   %eax
58e3f1:	8b 47 08             	mov    0x8(%edi),%eax
58e3f4:	ff 30                	push   (%eax)
58e3f6:	8d 44 24 1c          	lea    0x1c(%esp),%eax
58e3fa:	50                   	push   %eax
58e3fb:	6a 00                	push   $0x0
58e3fd:	e8 3e dc f3 ff       	call   0x4cc040
58e402:	83 c4 10             	add    $0x10,%esp
58e405:	5e                   	pop    %esi
58e406:	5b                   	pop    %ebx
58e407:	5f                   	pop    %edi
58e408:	5d                   	pop    %ebp
58e409:	c3                   	ret
58e40a:	ff 32                	push   (%edx)
58e40c:	8b 40 14             	mov    0x14(%eax),%eax
58e40f:	8d 4c 24 18          	lea    0x18(%esp),%ecx
58e413:	51                   	push   %ecx
58e414:	6a 00                	push   $0x0
58e416:	ff d0                	call   *%eax
58e418:	83 c4 0c             	add    $0xc,%esp
58e41b:	5e                   	pop    %esi
58e41c:	5b                   	pop    %ebx
58e41d:	5f                   	pop    %edi
58e41e:	5d                   	pop    %ebp
58e41f:	c3                   	ret
58e420:	85 db                	test   %ebx,%ebx
58e422:	74 06                	je     0x58e42a
58e424:	c7 03 ff ff ff ff    	movl   $0xffffffff,(%ebx)
58e42a:	8b 44 24 1c          	mov    0x1c(%esp),%eax
58e42e:	85 c0                	test   %eax,%eax
58e430:	74 06                	je     0x58e438
58e432:	c7 00 ff ff ff ff    	movl   $0xffffffff,(%eax)
58e438:	5e                   	pop    %esi
58e439:	5b                   	pop    %ebx
58e43a:	5f                   	pop    %edi
58e43b:	33 c0                	xor    %eax,%eax
58e43d:	5d                   	pop    %ebp
58e43e:	c3                   	ret
58e43f:	cc                   	int3
58e440:	53                   	push   %ebx
58e441:	55                   	push   %ebp
58e442:	57                   	push   %edi
58e443:	8b 7c 24 18          	mov    0x18(%esp),%edi
58e447:	33 ed                	xor    %ebp,%ebp
58e449:	89 2f                	mov    %ebp,(%edi)
58e44b:	e8 d0 99 f4 ff       	call   0x4d7e20
58e450:	8b d8                	mov    %eax,%ebx
58e452:	85 db                	test   %ebx,%ebx
58e454:	0f 84 c3 00 00 00    	je     0x58e51d
58e45a:	56                   	push   %esi
58e45b:	53                   	push   %ebx
58e45c:	e8 3f 9a f4 ff       	call   0x4d7ea0
58e461:	53                   	push   %ebx
58e462:	e8 59 99 f4 ff       	call   0x4d7dc0
58e467:	8b f0                	mov    %eax,%esi
58e469:	83 c4 08             	add    $0x8,%esp
58e46c:	85 f6                	test   %esi,%esi
58e46e:	0f 84 99 00 00 00    	je     0x58e50d
58e474:	6a 01                	push   $0x1
58e476:	56                   	push   %esi
58e477:	e8 74 50 f2 ff       	call   0x4b34f0
58e47c:	83 c4 08             	add    $0x8,%esp
58e47f:	85 c0                	test   %eax,%eax
58e481:	0f 84 86 00 00 00    	je     0x58e50d
58e487:	56                   	push   %esi
58e488:	ff 74 24 1c          	push   0x1c(%esp)
58e48c:	e8 2f 49 f2 ff       	call   0x4b2dc0
58e491:	83 c4 08             	add    $0x8,%esp
58e494:	85 c0                	test   %eax,%eax
58e496:	7f 03                	jg     0x58e49b
58e498:	83 0f 01             	orl    $0x1,(%edi)
58e49b:	8b 44 24 14          	mov    0x14(%esp),%eax
58e49f:	ff 70 08             	push   0x8(%eax)
58e4a2:	56                   	push   %esi
58e4a3:	e8 28 4c f2 ff       	call   0x4b30d0
58e4a8:	83 c4 08             	add    $0x8,%esp
58e4ab:	85 c0                	test   %eax,%eax
58e4ad:	74 5e                	je     0x58e50d
58e4af:	6a 01                	push   $0x1
58e4b1:	56                   	push   %esi
58e4b2:	e8 79 55 f2 ff       	call   0x4b3a30
58e4b7:	83 c4 08             	add    $0x8,%esp
58e4ba:	85 c0                	test   %eax,%eax
58e4bc:	74 4f                	je     0x58e50d
58e4be:	56                   	push   %esi
58e4bf:	ff 74 24 1c          	push   0x1c(%esp)
58e4c3:	e8 f8 48 f2 ff       	call   0x4b2dc0
58e4c8:	83 c4 08             	add    $0x8,%esp
58e4cb:	85 c0                	test   %eax,%eax
58e4cd:	78 03                	js     0x58e4d2
58e4cf:	83 0f 02             	orl    $0x2,(%edi)
58e4d2:	8b 44 24 14          	mov    0x14(%esp),%eax
58e4d6:	8b 48 24             	mov    0x24(%eax),%ecx
58e4d9:	85 c9                	test   %ecx,%ecx
58e4db:	74 2b                	je     0x58e508
58e4dd:	53                   	push   %ebx
58e4de:	ff 70 08             	push   0x8(%eax)
58e4e1:	51                   	push   %ecx
58e4e2:	ff 74 24 24          	push   0x24(%esp)
58e4e6:	56                   	push   %esi
58e4e7:	e8 b4 08 fe ff       	call   0x56eda0
58e4ec:	83 c4 14             	add    $0x14,%esp
58e4ef:	85 c0                	test   %eax,%eax
58e4f1:	74 1a                	je     0x58e50d
58e4f3:	83 7e 04 01          	cmpl   $0x1,0x4(%esi)
58e4f7:	75 0c                	jne    0x58e505
58e4f9:	8b 06                	mov    (%esi),%eax
58e4fb:	83 38 01             	cmpl   $0x1,(%eax)
58e4fe:	75 05                	jne    0x58e505
58e500:	39 6e 0c             	cmp    %ebp,0xc(%esi)
58e503:	74 03                	je     0x58e508
58e505:	83 0f 04             	orl    $0x4,(%edi)
58e508:	bd 01 00 00 00       	mov    $0x1,%ebp
58e50d:	53                   	push   %ebx
58e50e:	e8 3d 98 f4 ff       	call   0x4d7d50
58e513:	53                   	push   %ebx
58e514:	e8 77 98 f4 ff       	call   0x4d7d90
58e519:	83 c4 08             	add    $0x8,%esp
58e51c:	5e                   	pop    %esi
58e51d:	5f                   	pop    %edi
58e51e:	8b c5                	mov    %ebp,%eax
58e520:	5d                   	pop    %ebp
58e521:	5b                   	pop    %ebx
58e522:	c3                   	ret
58e523:	cc                   	int3
58e524:	cc                   	int3
58e525:	cc                   	int3
58e526:	cc                   	int3
58e527:	cc                   	int3
58e528:	cc                   	int3
58e529:	cc                   	int3
58e52a:	cc                   	int3
58e52b:	cc                   	int3
58e52c:	cc                   	int3
58e52d:	cc                   	int3
58e52e:	cc                   	int3
58e52f:	cc                   	int3
58e530:	e8 db 4d f2 ff       	call   0x4b3310
58e535:	8b 4c 24 04          	mov    0x4(%esp),%ecx
58e539:	8b d0                	mov    %eax,%edx
58e53b:	33 c0                	xor    %eax,%eax
58e53d:	85 d2                	test   %edx,%edx
58e53f:	0f 95 c0             	setne  %al
58e542:	89 11                	mov    %edx,(%ecx)
58e544:	c3                   	ret
58e545:	cc                   	int3
58e546:	cc                   	int3
58e547:	cc                   	int3
58e548:	cc                   	int3
58e549:	cc                   	int3
58e54a:	cc                   	int3
58e54b:	cc                   	int3
58e54c:	cc                   	int3
58e54d:	cc                   	int3
58e54e:	cc                   	int3
58e54f:	cc                   	int3
58e550:	56                   	push   %esi
58e551:	8b 74 24 08          	mov    0x8(%esp),%esi
58e555:	8b 0e                	mov    (%esi),%ecx
58e557:	85 c9                	test   %ecx,%ecx
58e559:	74 29                	je     0x58e584
58e55b:	8b 44 24 0c          	mov    0xc(%esp),%eax
58e55f:	51                   	push   %ecx
58e560:	f6 40 14 01          	testb  $0x1,0x14(%eax)
58e564:	74 10                	je     0x58e576
58e566:	e8 05 48 f2 ff       	call   0x4b2d70
58e56b:	83 c4 04             	add    $0x4,%esp
58e56e:	c7 06 00 00 00 00    	movl   $0x0,(%esi)
58e574:	5e                   	pop    %esi
58e575:	c3                   	ret
58e576:	e8 65 4c f2 ff       	call   0x4b31e0
58e57b:	83 c4 04             	add    $0x4,%esp
58e57e:	c7 06 00 00 00 00    	movl   $0x0,(%esi)
58e584:	5e                   	pop    %esi
58e585:	c3                   	ret
58e586:	cc                   	int3
58e587:	cc                   	int3
58e588:	cc                   	int3
58e589:	cc                   	int3
58e58a:	cc                   	int3
58e58b:	cc                   	int3
58e58c:	cc                   	int3
58e58d:	cc                   	int3
58e58e:	cc                   	int3
58e58f:	cc                   	int3
58e590:	8b 44 24 04          	mov    0x4(%esp),%eax
58e594:	56                   	push   %esi
58e595:	8b 30                	mov    (%eax),%esi
58e597:	85 f6                	test   %esi,%esi
58e599:	75 05                	jne    0x58e5a0
58e59b:	83 c8 ff             	or     $0xffffffff,%eax
58e59e:	5e                   	pop    %esi
58e59f:	c3                   	ret
58e5a0:	53                   	push   %ebx
58e5a1:	56                   	push   %esi
58e5a2:	e8 c9 4d f2 ff       	call   0x4b3370
58e5a7:	83 c4 04             	add    $0x4,%esp
58e5aa:	bb 00 00 00 00       	mov    $0x0,%ebx
58e5af:	a8 07                	test   $0x7,%al
58e5b1:	8b 44 24 10          	mov    0x10(%esp),%eax
58e5b5:	0f 94 c3             	sete   %bl
58e5b8:	85 c0                	test   %eax,%eax
58e5ba:	74 12                	je     0x58e5ce
58e5bc:	85 db                	test   %ebx,%ebx
58e5be:	74 04                	je     0x58e5c4
58e5c0:	c6 00 00             	movb   $0x0,(%eax)
58e5c3:	40                   	inc    %eax
58e5c4:	50                   	push   %eax
58e5c5:	56                   	push   %esi
58e5c6:	e8 45 47 f2 ff       	call   0x4b2d10
58e5cb:	83 c4 08             	add    $0x8,%esp
58e5ce:	56                   	push   %esi
58e5cf:	e8 9c 4d f2 ff       	call   0x4b3370
58e5d4:	83 c0 07             	add    $0x7,%eax
58e5d7:	83 c4 04             	add    $0x4,%esp
58e5da:	99                   	cltd
58e5db:	83 e2 07             	and    $0x7,%edx
58e5de:	03 c2                	add    %edx,%eax
58e5e0:	c1 f8 03             	sar    $0x3,%eax
58e5e3:	03 c3                	add    %ebx,%eax
58e5e5:	5b                   	pop    %ebx
58e5e6:	5e                   	pop    %esi
58e5e7:	c3                   	ret
58e5e8:	cc                   	int3
58e5e9:	cc                   	int3
58e5ea:	cc                   	int3
58e5eb:	cc                   	int3
58e5ec:	cc                   	int3
58e5ed:	cc                   	int3
58e5ee:	cc                   	int3
58e5ef:	cc                   	int3
58e5f0:	56                   	push   %esi
58e5f1:	8b 74 24 08          	mov    0x8(%esp),%esi
58e5f5:	83 3e 00             	cmpl   $0x0,(%esi)
58e5f8:	75 0b                	jne    0x58e605
58e5fa:	e8 11 4d f2 ff       	call   0x4b3310
58e5ff:	89 06                	mov    %eax,(%esi)
58e601:	85 c0                	test   %eax,%eax
58e603:	74 47                	je     0x58e64c
58e605:	ff 36                	push   (%esi)
58e607:	ff 74 24 14          	push   0x14(%esp)
58e60b:	ff 74 24 14          	push   0x14(%esp)
58e60f:	e8 fc 45 f2 ff       	call   0x4b2c10
58e614:	83 c4 0c             	add    $0xc,%esp
58e617:	85 c0                	test   %eax,%eax
58e619:	75 35                	jne    0x58e650
58e61b:	8b 0e                	mov    (%esi),%ecx
58e61d:	85 c9                	test   %ecx,%ecx
58e61f:	74 2b                	je     0x58e64c
58e621:	8b 44 24 1c          	mov    0x1c(%esp),%eax
58e625:	51                   	push   %ecx
58e626:	f6 40 14 01          	testb  $0x1,0x14(%eax)
58e62a:	74 12                	je     0x58e63e
58e62c:	e8 3f 47 f2 ff       	call   0x4b2d70
58e631:	83 c4 04             	add    $0x4,%esp
58e634:	c7 06 00 00 00 00    	movl   $0x0,(%esi)
58e63a:	33 c0                	xor    %eax,%eax
58e63c:	5e                   	pop    %esi
58e63d:	c3                   	ret
58e63e:	e8 9d 4b f2 ff       	call   0x4b31e0
58e643:	83 c4 04             	add    $0x4,%esp
58e646:	c7 06 00 00 00 00    	movl   $0x0,(%esi)
58e64c:	33 c0                	xor    %eax,%eax
58e64e:	5e                   	pop    %esi
58e64f:	c3                   	ret
58e650:	b8 01 00 00 00       	mov    $0x1,%eax
58e655:	5e                   	pop    %esi
58e656:	c3                   	ret
58e657:	cc                   	int3
58e658:	cc                   	int3
58e659:	cc                   	int3
58e65a:	cc                   	int3