56b3a0:	f6 40 5c 02          	testb  $0x2,0x5c(%eax)
56b3a4:	55                   	push   %ebp
56b3a5:	c7 44 24 18 08 88 65 	movl   $0x658808,0x18(%esp)
56b3ac:	00
56b3ad:	bd 88 87 65 00       	mov    $0x658788,%ebp
56b3b2:	0f 45 6c 24 18       	cmovne 0x18(%esp),%ebp
56b3b7:	89 6c 24 20          	mov    %ebp,0x20(%esp)
56b3bb:	8b 6c 24 2c          	mov    0x2c(%esp),%ebp
56b3bf:	89 5c 24 18          	mov    %ebx,0x18(%esp)
56b3c3:	85 c9                	test   %ecx,%ecx
56b3c5:	0f 8e 2f 01 00 00    	jle    0x56b4fa
56b3cb:	0f 1f 44 00 00       	nopl   0x0(%eax,%eax,1)
56b3d0:	8b 4c 24 34          	mov    0x34(%esp),%ecx
56b3d4:	8a 21                	mov    (%ecx),%ah
56b3d6:	41                   	inc    %ecx
56b3d7:	88 64 24 13          	mov    %ah,0x13(%esp)
56b3db:	0f b6 fc             	movzbl %ah,%edi
56b3de:	89 4c 24 34          	mov    %ecx,0x34(%esp)
56b3e2:	84 e4                	test   %ah,%ah
56b3e4:	79 04                	jns    0x56b3ea
56b3e6:	0c ff                	or     $0xff,%al
56b3e8:	eb 07                	jmp    0x56b3f1
56b3ea:	8b 4c 24 20          	mov    0x20(%esp),%ecx
56b3ee:	8a 04 0f             	mov    (%edi,%ecx,1),%al
56b3f1:	0f b6 c8             	movzbl %al,%ecx
56b3f4:	81 f9 ff 00 00 00    	cmp    $0xff,%ecx
56b3fa:	0f 84 02 01 00 00    	je     0x56b502
56b400:	83 ff 3d             	cmp    $0x3d,%edi
56b403:	75 03                	jne    0x56b408
56b405:	46                   	inc    %esi
56b406:	eb 18                	jmp    0x56b420
56b408:	85 f6                	test   %esi,%esi
56b40a:	7e 14                	jle    0x56b420
56b40c:	8b c1                	mov    %ecx,%eax
56b40e:	83 c8 13             	or     $0x13,%eax
56b411:	3d f3 00 00 00       	cmp    $0xf3,%eax
56b416:	0f 85 e6 00 00 00    	jne    0x56b502
56b41c:	8a 64 24 13          	mov    0x13(%esp),%ah
56b420:	83 fe 02             	cmp    $0x2,%esi
56b423:	0f 8f d9 00 00 00    	jg     0x56b502
56b429:	81 f9 f2 00 00 00    	cmp    $0xf2,%ecx
56b42f:	0f 84 b6 00 00 00    	je     0x56b4eb
56b435:	83 c9 13             	or     $0x13,%ecx
56b438:	81 f9 f3 00 00 00    	cmp    $0xf3,%ecx
56b43e:	74 13                	je     0x56b453
56b440:	83 fa 40             	cmp    $0x40,%edx
56b443:	0f 8d b9 00 00 00    	jge    0x56b502
56b449:	8b 7c 24 14          	mov    0x14(%esp),%edi
56b44d:	88 24 17             	mov    %ah,(%edi,%edx,1)
56b450:	42                   	inc    %edx
56b451:	eb 04                	jmp    0x56b457
56b453:	8b 7c 24 14          	mov    0x14(%esp),%edi
56b457:	83 fa 40             	cmp    $0x40,%edx
56b45a:	75 27                	jne    0x56b483
56b45c:	52                   	push   %edx
56b45d:	57                   	push   %edi
56b45e:	55                   	push   %ebp
56b45f:	ff 74 24 34          	push   0x34(%esp)
56b463:	e8 e8 02 00 00       	call   0x56b750
56b468:	83 c4 10             	add    $0x10,%esp
56b46b:	33 d2                	xor    %edx,%edx
56b46d:	85 c0                	test   %eax,%eax
56b46f:	0f 88 8d 00 00 00    	js     0x56b502
56b475:	3b f0                	cmp    %eax,%esi
56b477:	0f 8f 85 00 00 00    	jg     0x56b502
56b47d:	2b c6                	sub    %esi,%eax
56b47f:	03 d8                	add    %eax,%ebx
56b481:	03 e8                	add    %eax,%ebp
56b483:	8b 4c 24 18          	mov    0x18(%esp),%ecx
56b487:	41                   	inc    %ecx
56b488:	89 4c 24 18          	mov    %ecx,0x18(%esp)
56b48c:	3b 4c 24 38          	cmp    0x38(%esp),%ecx
56b490:	0f 8c 3a ff ff ff    	jl     0x56b3d0
56b496:	33 c9                	xor    %ecx,%ecx
56b498:	8b 44 24 28          	mov    0x28(%esp),%eax
56b49c:	85 d2                	test   %edx,%edx
56b49e:	7e 1f                	jle    0x56b4bf
56b4a0:	f6 c2 03             	test   $0x3,%dl
56b4a3:	75 59                	jne    0x56b4fe
56b4a5:	52                   	push   %edx
56b4a6:	57                   	push   %edi
56b4a7:	55                   	push   %ebp
56b4a8:	50                   	push   %eax
56b4a9:	e8 a2 02 00 00       	call   0x56b750
56b4ae:	83 c4 10             	add    $0x10,%esp
56b4b1:	33 d2                	xor    %edx,%edx
56b4b3:	85 c0                	test   %eax,%eax
56b4b5:	78 4b                	js     0x56b502
56b4b7:	3b f0                	cmp    %eax,%esi
56b4b9:	7f 47                	jg     0x56b502
56b4bb:	2b c6                	sub    %esi,%eax
56b4bd:	03 d8                	add    %eax,%ebx
56b4bf:	83 7c 24 1c 00       	cmpl   $0x0,0x1c(%esp)
56b4c4:	8b c2                	mov    %edx,%eax
56b4c6:	8b cb                	mov    %ebx,%ecx
56b4c8:	75 4f                	jne    0x56b519
56b4ca:	85 c0                	test   %eax,%eax
56b4cc:	75 04                	jne    0x56b4d2
56b4ce:	85 f6                	test   %esi,%esi
56b4d0:	75 47                	jne    0x56b519
56b4d2:	8b 4c 24 30          	mov    0x30(%esp),%ecx
56b4d6:	b8 01 00 00 00       	mov    $0x1,%eax
56b4db:	5d                   	pop    %ebp
56b4dc:	5f                   	pop    %edi
56b4dd:	5e                   	pop    %esi
56b4de:	89 19                	mov    %ebx,(%ecx)
56b4e0:	8b 4c 24 1c          	mov    0x1c(%esp),%ecx
56b4e4:	5b                   	pop    %ebx
56b4e5:	89 11                	mov    %edx,(%ecx)
56b4e7:	83 c4 14             	add    $0x14,%esp
56b4ea:	c3                   	ret
56b4eb:	8b 7c 24 14          	mov    0x14(%esp),%edi
56b4ef:	b9 01 00 00 00       	mov    $0x1,%ecx
56b4f4:	89 4c 24 1c          	mov    %ecx,0x1c(%esp)
56b4f8:	eb 9e                	jmp    0x56b498
56b4fa:	33 c9                	xor    %ecx,%ecx
56b4fc:	eb 9e                	jmp    0x56b49c
56b4fe:	85 c9                	test   %ecx,%ecx
56b500:	74 d0                	je     0x56b4d2
56b502:	8b 4c 24 30          	mov    0x30(%esp),%ecx
56b506:	83 c8 ff             	or     $0xffffffff,%eax
56b509:	5d                   	pop    %ebp
56b50a:	5f                   	pop    %edi
56b50b:	5e                   	pop    %esi
56b50c:	89 19                	mov    %ebx,(%ecx)
56b50e:	8b 4c 24 1c          	mov    0x1c(%esp),%ecx
56b512:	5b                   	pop    %ebx
56b513:	89 11                	mov    %edx,(%ecx)
56b515:	83 c4 14             	add    $0x14,%esp
56b518:	c3                   	ret
56b519:	33 c0                	xor    %eax,%eax
56b51b:	5d                   	pop    %ebp
56b51c:	8b 4c 24 2c          	mov    0x2c(%esp),%ecx
56b520:	5f                   	pop    %edi
56b521:	5e                   	pop    %esi
56b522:	89 19                	mov    %ebx,(%ecx)
56b524:	8b 4c 24 1c          	mov    0x1c(%esp),%ecx
56b528:	5b                   	pop    %ebx
56b529:	89 11                	mov    %edx,(%ecx)
56b52b:	83 c4 14             	add    $0x14,%esp
56b52e:	c3                   	ret
56b52f:	cc                   	int3
56b530:	68 86 00 00 00       	push   $0x86
56b535:	68 88 88 65 00       	push   $0x658888
56b53a:	ff 74 24 0c          	push   0xc(%esp)
56b53e:	e8 3d 52 f7 ff       	call   0x4e0780
56b543:	83 c4 0c             	add    $0xc,%esp
56b546:	c3                   	ret
56b547:	cc                   	int3
56b548:	cc                   	int3
56b549:	cc                   	int3
56b54a:	cc                   	int3
56b54b:	cc                   	int3
56b54c:	cc                   	int3
56b54d:	cc                   	int3
56b54e:	cc                   	int3
56b54f:	cc                   	int3
56b550:	68 81 00 00 00       	push   $0x81
56b555:	68 88 88 65 00       	push   $0x658888
56b55a:	6a 60                	push   $0x60
56b55c:	e8 df 54 f7 ff       	call   0x4e0a40
56b561:	83 c4 0c             	add    $0xc,%esp
56b564:	c3                   	ret
56b565:	cc                   	int3
56b566:	cc                   	int3
56b567:	cc                   	int3
56b568:	cc                   	int3
56b569:	cc                   	int3
56b56a:	cc                   	int3
56b56b:	cc                   	int3
56b56c:	cc                   	int3
56b56d:	cc                   	int3
56b56e:	cc                   	int3
56b56f:	cc                   	int3
56b570:	ff 74 24 0c          	push   0xc(%esp)
56b574:	ff 74 24 0c          	push   0xc(%esp)
56b578:	ff 74 24 0c          	push   0xc(%esp)
56b57c:	6a 00                	push   $0x0
56b57e:	e8 4d 03 00 00       	call   0x56b8d0
56b583:	83 c4 10             	add    $0x10,%esp
56b586:	c3                   	ret
56b587:	cc                   	int3
56b588:	cc                   	int3
56b589:	cc                   	int3
56b58a:	cc                   	int3
56b58b:	cc                   	int3
56b58c:	cc                   	int3
56b58d:	cc                   	int3
56b58e:	cc                   	int3
56b58f:	cc                   	int3
56b590:	56                   	push   %esi
56b591:	8b 74 24 08          	mov    0x8(%esp),%esi
56b595:	8b 06                	mov    (%esi),%eax
56b597:	85 c0                	test   %eax,%eax
56b599:	74 34                	je     0x56b5cf
56b59b:	57                   	push   %edi
56b59c:	8b 7c 24 10          	mov    0x10(%esp),%edi
56b5a0:	50                   	push   %eax
56b5a1:	8d 46 08             	lea    0x8(%esi),%eax
56b5a4:	50                   	push   %eax
56b5a5:	57                   	push   %edi
56b5a6:	56                   	push   %esi
56b5a7:	e8 24 03 00 00       	call   0x56b8d0
56b5ac:	83 c4 10             	add    $0x10,%esp
56b5af:	8b c8                	mov    %eax,%ecx
56b5b1:	f6 46 5c 01          	testb  $0x1,0x5c(%esi)
56b5b5:	75 05                	jne    0x56b5bc
56b5b7:	c6 04 39 0a          	movb   $0xa,(%ecx,%edi,1)
56b5bb:	41                   	inc    %ecx
56b5bc:	8b 44 24 14          	mov    0x14(%esp),%eax
56b5c0:	c6 04 39 00          	movb   $0x0,(%ecx,%edi,1)
56b5c4:	c7 06 00 00 00 00    	movl   $0x0,(%esi)
56b5ca:	5f                   	pop    %edi
56b5cb:	89 08                	mov    %ecx,(%eax)
56b5cd:	5e                   	pop    %esi
56b5ce:	c3                   	ret
56b5cf:	8b 44 24 10          	mov    0x10(%esp),%eax
56b5d3:	5e                   	pop    %esi
56b5d4:	c7 00 00 00 00 00    	movl   $0x0,(%eax)
56b5da:	c3                   	ret
56b5db:	cc                   	int3
56b5dc:	cc                   	int3
56b5dd:	cc                   	int3
56b5de:	cc                   	int3
56b5df:	cc                   	int3
56b5e0:	8b 44 24 04          	mov    0x4(%esp),%eax
56b5e4:	c7 40 04 30 00 00 00 	movl   $0x30,0x4(%eax)
56b5eb:	c7 00 00 00 00 00    	movl   $0x0,(%eax)
56b5f1:	c7 40 58 00 00 00 00 	movl   $0x0,0x58(%eax)
56b5f8:	c7 40 5c 00 00 00 00 	movl   $0x0,0x5c(%eax)
56b5ff:	c3                   	ret
56b600:	8b 44 24 0c          	mov    0xc(%esp),%eax
56b604:	53                   	push   %ebx
56b605:	55                   	push   %ebp
56b606:	8b 6c 24 1c          	mov    0x1c(%esp),%ebp
56b60a:	33 db                	xor    %ebx,%ebx
56b60c:	89 18                	mov    %ebx,(%eax)
56b60e:	85 ed                	test   %ebp,%ebp
56b610:	7f 05                	jg     0x56b617
56b612:	5d                   	pop    %ebp
56b613:	33 c0                	xor    %eax,%eax
56b615:	5b                   	pop    %ebx
56b616:	c3                   	ret
56b617:	57                   	push   %edi
56b618:	8b 7c 24 10          	mov    0x10(%esp),%edi
56b61c:	8b 47 04             	mov    0x4(%edi),%eax
56b61f:	83 f8 50             	cmp    $0x50,%eax
56b622:	7e 1a                	jle    0x56b63e
56b624:	68 ab 00 00 00       	push   $0xab
56b629:	68 88 88 65 00       	push   $0x658888
56b62e:	68 9c 88 65 00       	push   $0x65889c
56b633:	e8 f8 6e f8 ff       	call   0x4f2530
56b638:	8b 47 04             	mov    0x4(%edi),%eax
56b63b:	83 c4 0c             	add    $0xc,%esp
56b63e:	8b 17                	mov    (%edi),%edx
56b640:	8b c8                	mov    %eax,%ecx
56b642:	2b ca                	sub    %edx,%ecx
56b644:	89 4c 24 20          	mov    %ecx,0x20(%esp)
56b648:	3b cd                	cmp    %ebp,%ecx
56b64a:	7e 1e                	jle    0x56b66a
56b64c:	55                   	push   %ebp
56b64d:	ff 74 24 20          	push   0x20(%esp)
56b651:	8d 47 08             	lea    0x8(%edi),%eax
56b654:	03 c2                	add    %edx,%eax
56b656:	50                   	push   %eax
56b657:	e8 74 77 06 00       	call   0x5d2dd0
56b65c:	83 c4 0c             	add    $0xc,%esp
56b65f:	b8 01 00 00 00       	mov    $0x1,%eax
56b664:	01 2f                	add    %ebp,(%edi)
56b666:	5f                   	pop    %edi
56b667:	5d                   	pop    %ebp
56b668:	5b                   	pop    %ebx
56b669:	c3                   	ret
56b66a:	56                   	push   %esi
56b66b:	85 d2                	test   %edx,%edx
56b66d:	74 53                	je     0x56b6c2
56b66f:	8b 74 24 20          	mov    0x20(%esp),%esi
56b673:	8d 47 08             	lea    0x8(%edi),%eax
56b676:	51                   	push   %ecx
56b677:	03 c2                	add    %edx,%eax
56b679:	56                   	push   %esi
56b67a:	50                   	push   %eax
56b67b:	e8 50 77 06 00       	call   0x5d2dd0
56b680:	8b 44 24 30          	mov    0x30(%esp),%eax
56b684:	03 f0                	add    %eax,%esi
56b686:	ff 77 04             	push   0x4(%edi)
56b689:	2b e8                	sub    %eax,%ebp
56b68b:	89 74 24 34          	mov    %esi,0x34(%esp)
56b68f:	8b 74 24 28          	mov    0x28(%esp),%esi
56b693:	8d 47 08             	lea    0x8(%edi),%eax
56b696:	50                   	push   %eax
56b697:	56                   	push   %esi
56b698:	57                   	push   %edi
56b699:	e8 32 02 00 00       	call   0x56b8d0
56b69e:	8b d8                	mov    %eax,%ebx
56b6a0:	c7 07 00 00 00 00    	movl   $0x0,(%edi)
56b6a6:	83 c4 1c             	add    $0x1c,%esp
56b6a9:	03 f3                	add    %ebx,%esi
56b6ab:	f6 47 5c 01          	testb  $0x1,0x5c(%edi)
56b6af:	75 05                	jne    0x56b6b6
56b6b1:	c6 06 0a             	movb   $0xa,(%esi)
56b6b4:	46                   	inc    %esi
56b6b5:	43                   	inc    %ebx
56b6b6:	8b 54 24 24          	mov    0x24(%esp),%edx
56b6ba:	c6 06 00             	movb   $0x0,(%esi)
56b6bd:	8b 47 04             	mov    0x4(%edi),%eax
56b6c0:	eb 0c                	jmp    0x56b6ce
56b6c2:	8b 54 24 20          	mov    0x20(%esp),%edx
56b6c6:	8b 74 24 18          	mov    0x18(%esp),%esi
56b6ca:	89 54 24 24          	mov    %edx,0x24(%esp)
56b6ce:	3b e8                	cmp    %eax,%ebp
56b6d0:	7c 3b                	jl     0x56b70d
56b6d2:	81 fb ff ff ff 7f    	cmp    $0x7fffffff,%ebx
56b6d8:	77 3b                	ja     0x56b715
56b6da:	50                   	push   %eax
56b6db:	52                   	push   %edx
56b6dc:	56                   	push   %esi
56b6dd:	57                   	push   %edi
56b6de:	e8 ed 01 00 00       	call   0x56b8d0
56b6e3:	8b 54 24 34          	mov    0x34(%esp),%edx
56b6e7:	83 c4 10             	add    $0x10,%esp
56b6ea:	03 57 04             	add    0x4(%edi),%edx
56b6ed:	03 f0                	add    %eax,%esi
56b6ef:	2b 6f 04             	sub    0x4(%edi),%ebp
56b6f2:	03 d8                	add    %eax,%ebx
56b6f4:	f6 47 5c 01          	testb  $0x1,0x5c(%edi)
56b6f8:	89 54 24 24          	mov    %edx,0x24(%esp)
56b6fc:	75 05                	jne    0x56b703
56b6fe:	c6 06 0a             	movb   $0xa,(%esi)
56b701:	46                   	inc    %esi
56b702:	43                   	inc    %ebx
56b703:	c6 06 00             	movb   $0x0,(%esi)
56b706:	8b 47 04             	mov    0x4(%edi),%eax
56b709:	3b e8                	cmp    %eax,%ebp
56b70b:	7d c5                	jge    0x56b6d2
56b70d:	81 fb ff ff ff 7f    	cmp    $0x7fffffff,%ebx
56b713:	76 11                	jbe    0x56b726
56b715:	8b 44 24 1c          	mov    0x1c(%esp),%eax
56b719:	5e                   	pop    %esi
56b71a:	5f                   	pop    %edi
56b71b:	5d                   	pop    %ebp
56b71c:	c7 00 00 00 00 00    	movl   $0x0,(%eax)
56b722:	33 c0                	xor    %eax,%eax
56b724:	5b                   	pop    %ebx
56b725:	c3                   	ret
56b726:	85 ed                	test   %ebp,%ebp
56b728:	74 0e                	je     0x56b738
56b72a:	55                   	push   %ebp
56b72b:	52                   	push   %edx
56b72c:	8d 47 08             	lea    0x8(%edi),%eax