56c42a:	8b c6                	mov    %esi,%eax
56c42c:	5e                   	pop    %esi
56c42d:	5d                   	pop    %ebp
56c42e:	5b                   	pop    %ebx
56c42f:	c2 0c 00             	ret    $0xc
56c432:	8b cf                	mov    %edi,%ecx
56c434:	e8 12 7c eb ff       	call   0x42404b
56c439:	3b f0                	cmp    %eax,%esi
56c43b:	74 05                	je     0x56c442
56c43d:	83 ee 02             	sub    $0x2,%esi
56c440:	eb be                	jmp    0x56c400
56c442:	5f                   	pop    %edi
56c443:	5e                   	pop    %esi
56c444:	5d                   	pop    %ebp
56c445:	83 c8 ff             	or     $0xffffffff,%eax
56c448:	5b                   	pop    %ebx
56c449:	c2 0c 00             	ret    $0xc
56c44c:	cc                   	int3
56c44d:	cc                   	int3
56c44e:	cc                   	int3
56c44f:	cc                   	int3
56c450:	cc                   	int3
56c451:	cc                   	int3
56c452:	cc                   	int3
56c453:	cc                   	int3
56c454:	cc                   	int3
56c455:	cc                   	int3
56c456:	cc                   	int3
56c457:	cc                   	int3
56c458:	cc                   	int3
56c459:	cc                   	int3
56c45a:	cc                   	int3
56c45b:	cc                   	int3
56c45c:	cc                   	int3
56c45d:	cc                   	int3
56c45e:	cc                   	int3
56c45f:	cc                   	int3
56c460:	cc                   	int3
56c461:	cc                   	int3
56c462:	cc                   	int3
56c463:	cc                   	int3
56c464:	cc                   	int3
56c465:	cc                   	int3
56c466:	cc                   	int3
56c467:	cc                   	int3
56c468:	cc                   	int3
56c469:	cc                   	int3
56c46a:	cc                   	int3
56c46b:	cc                   	int3
56c46c:	cc                   	int3
56c46d:	cc                   	int3
56c46e:	cc                   	int3
56c46f:	cc                   	int3
56c470:	6a 01                	push   $0x1
56c472:	ff 74 24 0c          	push   0xc(%esp)
56c476:	8d 44 24 0c          	lea    0xc(%esp),%eax
56c47a:	50                   	push   %eax
56c47b:	e8 e2 3b ec ff       	call   0x430062
56c480:	c2 08 00             	ret    $0x8
56c483:	cc                   	int3
56c484:	cc                   	int3
56c485:	cc                   	int3
56c486:	cc                   	int3
56c487:	cc                   	int3
56c488:	cc                   	int3
56c489:	cc                   	int3
56c48a:	cc                   	int3
56c48b:	cc                   	int3
56c48c:	cc                   	int3
56c48d:	cc                   	int3
56c48e:	cc                   	int3
56c48f:	cc                   	int3
56c490:	55                   	push   %ebp
56c491:	8b ec                	mov    %esp,%ebp
56c493:	6a ff                	push   $0xffffffff
56c495:	68 a5 70 b5 00       	push   $0xb570a5
56c49a:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
56c4a0:	50                   	push   %eax
56c4a1:	83 ec 2c             	sub    $0x2c,%esp
56c4a4:	a1 24 f6 d5 00       	mov    0xd5f624,%eax
56c4a9:	33 c5                	xor    %ebp,%eax
56c4ab:	89 45 f0             	mov    %eax,-0x10(%ebp)
56c4ae:	53                   	push   %ebx
56c4af:	56                   	push   %esi
56c4b0:	57                   	push   %edi
56c4b1:	50                   	push   %eax
56c4b2:	8d 45 f4             	lea    -0xc(%ebp),%eax
56c4b5:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
56c4bb:	8b 75 08             	mov    0x8(%ebp),%esi
56c4be:	8b 7d 10             	mov    0x10(%ebp),%edi
56c4c1:	8b 5d 0c             	mov    0xc(%ebp),%ebx
56c4c4:	c7 45 d0 00 00 00 00 	movl   $0x0,-0x30(%ebp)
56c4cb:	c7 46 10 00 00 00 00 	movl   $0x0,0x10(%esi)
56c4d2:	c7 46 14 00 00 00 00 	movl   $0x0,0x14(%esi)
56c4d9:	c7 46 14 07 00 00 00 	movl   $0x7,0x14(%esi)
56c4e0:	83 7e 14 08          	cmpl   $0x8,0x14(%esi)
56c4e4:	89 75 c8             	mov    %esi,-0x38(%ebp)
56c4e7:	89 7d cc             	mov    %edi,-0x34(%ebp)
56c4ea:	c7 46 10 00 00 00 00 	movl   $0x0,0x10(%esi)
56c4f1:	72 04                	jb     0x56c4f7
56c4f3:	8b 06                	mov    (%esi),%eax
56c4f5:	eb 02                	jmp    0x56c4f9
56c4f7:	8b c6                	mov    %esi,%eax
56c4f9:	33 c9                	xor    %ecx,%ecx
56c4fb:	66 89 08             	mov    %cx,(%eax)
56c4fe:	89 4d fc             	mov    %ecx,-0x4(%ebp)
56c501:	33 d2                	xor    %edx,%edx
56c503:	c7 45 d0 01 00 00 00 	movl   $0x1,-0x30(%ebp)
56c50a:	8b 43 14             	mov    0x14(%ebx),%eax
56c50d:	89 55 d4             	mov    %edx,-0x2c(%ebp)
56c510:	83 f8 08             	cmp    $0x8,%eax
56c513:	72 04                	jb     0x56c519
56c515:	8b 0b                	mov    (%ebx),%ecx
56c517:	eb 02                	jmp    0x56c51b
56c519:	8b cb                	mov    %ebx,%ecx
56c51b:	66 83 3c 51 00       	cmpw   $0x0,(%ecx,%edx,2)
56c520:	0f 84 3b 02 00 00    	je     0x56c761
56c526:	83 f8 08             	cmp    $0x8,%eax
56c529:	72 04                	jb     0x56c52f
56c52b:	8b 0b                	mov    (%ebx),%ecx
56c52d:	eb 02                	jmp    0x56c531
56c52f:	8b cb                	mov    %ebx,%ecx
56c531:	66 83 3c 51 7b       	cmpw   $0x7b,(%ecx,%edx,2)
56c536:	0f 85 e1 00 00 00    	jne    0x56c61d
56c53c:	83 f8 08             	cmp    $0x8,%eax
56c53f:	72 04                	jb     0x56c545
56c541:	8b 0b                	mov    (%ebx),%ecx
56c543:	eb 02                	jmp    0x56c547
56c545:	8b cb                	mov    %ebx,%ecx
56c547:	66 83 7c 51 02 30    	cmpw   $0x30,0x2(%ecx,%edx,2)
56c54d:	0f 82 ca 00 00 00    	jb     0x56c61d
56c553:	83 f8 08             	cmp    $0x8,%eax
56c556:	72 04                	jb     0x56c55c
56c558:	8b 0b                	mov    (%ebx),%ecx
56c55a:	eb 02                	jmp    0x56c55e
56c55c:	8b cb                	mov    %ebx,%ecx
56c55e:	66 83 7c 51 02 39    	cmpw   $0x39,0x2(%ecx,%edx,2)
56c564:	0f 87 b3 00 00 00    	ja     0x56c61d
56c56a:	83 f8 08             	cmp    $0x8,%eax
56c56d:	72 04                	jb     0x56c573
56c56f:	8b 0b                	mov    (%ebx),%ecx
56c571:	eb 02                	jmp    0x56c575
56c573:	8b cb                	mov    %ebx,%ecx
56c575:	66 83 7c 51 04 7d    	cmpw   $0x7d,0x4(%ecx,%edx,2)
56c57b:	0f 85 9c 00 00 00    	jne    0x56c61d
56c581:	83 f8 08             	cmp    $0x8,%eax
56c584:	72 04                	jb     0x56c58a
56c586:	8b 03                	mov    (%ebx),%eax
56c588:	eb 02                	jmp    0x56c58c
56c58a:	8b c3                	mov    %ebx,%eax
56c58c:	0f b7 44 50 02       	movzwl 0x2(%eax,%edx,2),%eax
56c591:	83 e8 30             	sub    $0x30,%eax
56c594:	8d 0c 40             	lea    (%eax,%eax,2),%ecx
56c597:	8b 07                	mov    (%edi),%eax
56c599:	8d 04 c8             	lea    (%eax,%ecx,8),%eax
56c59c:	50                   	push   %eax
56c59d:	8d 45 d8             	lea    -0x28(%ebp),%eax
56c5a0:	56                   	push   %esi
56c5a1:	50                   	push   %eax
56c5a2:	e8 7c 53 ea ff       	call   0x411923
56c5a7:	83 c4 0c             	add    $0xc,%esp
56c5aa:	8b f8                	mov    %eax,%edi
56c5ac:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
56c5b3:	3b f7                	cmp    %edi,%esi
56c5b5:	74 3b                	je     0x56c5f2
56c5b7:	83 7e 14 08          	cmpl   $0x8,0x14(%esi)
56c5bb:	72 0e                	jb     0x56c5cb
56c5bd:	8b 46 14             	mov    0x14(%esi),%eax
56c5c0:	8b ce                	mov    %esi,%ecx
56c5c2:	40                   	inc    %eax
56c5c3:	50                   	push   %eax
56c5c4:	ff 36                	push   (%esi)
56c5c6:	e8 7c 56 eb ff       	call   0x421c47
56c5cb:	c7 46 14 07 00 00 00 	movl   $0x7,0x14(%esi)
56c5d2:	83 7e 14 08          	cmpl   $0x8,0x14(%esi)
56c5d6:	c7 46 10 00 00 00 00 	movl   $0x0,0x10(%esi)
56c5dd:	72 04                	jb     0x56c5e3
56c5df:	8b 06                	mov    (%esi),%eax
56c5e1:	eb 02                	jmp    0x56c5e5
56c5e3:	8b c6                	mov    %esi,%eax
56c5e5:	33 c9                	xor    %ecx,%ecx
56c5e7:	66 89 08             	mov    %cx,(%eax)
56c5ea:	8b ce                	mov    %esi,%ecx
56c5ec:	57                   	push   %edi
56c5ed:	e8 d5 67 eb ff       	call   0x422dc7
56c5f2:	8b 45 ec             	mov    -0x14(%ebp),%eax
56c5f5:	c6 45 fc 00          	movb   $0x0,-0x4(%ebp)
56c5f9:	83 f8 08             	cmp    $0x8,%eax
56c5fc:	72 0d                	jb     0x56c60b
56c5fe:	40                   	inc    %eax
56c5ff:	8d 4d d8             	lea    -0x28(%ebp),%ecx
56c602:	50                   	push   %eax
56c603:	ff 75 d8             	push   -0x28(%ebp)
56c606:	e8 3c 56 eb ff       	call   0x421c47
56c60b:	8b 55 d4             	mov    -0x2c(%ebp),%edx
56c60e:	b8 03 00 00 00       	mov    $0x3,%eax
56c613:	8b 7d cc             	mov    -0x34(%ebp),%edi
56c616:	03 d0                	add    %eax,%edx
56c618:	e9 ed fe ff ff       	jmp    0x56c50a
56c61d:	83 f8 08             	cmp    $0x8,%eax
56c620:	72 04                	jb     0x56c626
56c622:	8b 03                	mov    (%ebx),%eax
56c624:	eb 02                	jmp    0x56c628
56c626:	8b c3                	mov    %ebx,%eax
56c628:	0f b7 04 50          	movzwl (%eax,%edx,2),%eax
56c62c:	50                   	push   %eax
56c62d:	8d 45 d8             	lea    -0x28(%ebp),%eax
56c630:	56                   	push   %esi
56c631:	50                   	push   %eax
56c632:	e8 e6 e0 e9 ff       	call   0x40a71d
56c637:	83 c4 0c             	add    $0xc,%esp
56c63a:	8b f8                	mov    %eax,%edi
56c63c:	c7 45 fc 02 00 00 00 	movl   $0x2,-0x4(%ebp)
56c643:	3b f7                	cmp    %edi,%esi
56c645:	0f 84 bc 00 00 00    	je     0x56c707
56c64b:	83 7e 14 08          	cmpl   $0x8,0x14(%esi)
56c64f:	72 4d                	jb     0x56c69e
56c651:	8b 46 14             	mov    0x14(%esi),%eax
56c654:	8b 0e                	mov    (%esi),%ecx
56c656:	40                   	inc    %eax
56c657:	3d ff ff ff 7f       	cmp    $0x7fffffff,%eax
56c65c:	0f 87 fa 00 00 00    	ja     0x56c75c
56c662:	03 c0                	add    %eax,%eax
56c664:	3d 00 10 00 00       	cmp    $0x1000,%eax
56c669:	72 2a                	jb     0x56c695
56c66b:	f6 c1 1f             	test   $0x1f,%cl
56c66e:	0f 85 e8 00 00 00    	jne    0x56c75c
56c674:	8b 41 fc             	mov    -0x4(%ecx),%eax
56c677:	3b c1                	cmp    %ecx,%eax
56c679:	0f 83 dd 00 00 00    	jae    0x56c75c
56c67f:	2b c8                	sub    %eax,%ecx
56c681:	83 f9 04             	cmp    $0x4,%ecx
56c684:	0f 82 d2 00 00 00    	jb     0x56c75c
56c68a:	83 f9 23             	cmp    $0x23,%ecx
56c68d:	0f 87 c9 00 00 00    	ja     0x56c75c
56c693:	8b c8                	mov    %eax,%ecx
56c695:	51                   	push   %ecx
56c696:	e8 f4 50 e9 ff       	call   0x40178f
56c69b:	83 c4 04             	add    $0x4,%esp
56c69e:	c7 46 14 07 00 00 00 	movl   $0x7,0x14(%esi)
56c6a5:	83 7e 14 08          	cmpl   $0x8,0x14(%esi)
56c6a9:	c7 46 10 00 00 00 00 	movl   $0x0,0x10(%esi)
56c6b0:	72 04                	jb     0x56c6b6
56c6b2:	8b 06                	mov    (%esi),%eax
56c6b4:	eb 02                	jmp    0x56c6b8
56c6b6:	8b c6                	mov    %esi,%eax
56c6b8:	33 c9                	xor    %ecx,%ecx
56c6ba:	66 89 08             	mov    %cx,(%eax)
56c6bd:	83 7f 14 08          	cmpl   $0x8,0x14(%edi)
56c6c1:	73 17                	jae    0x56c6da
56c6c3:	8b 47 10             	mov    0x10(%edi),%eax
56c6c6:	83 c0 01             	add    $0x1,%eax
56c6c9:	74 15                	je     0x56c6e0
56c6cb:	03 c0                	add    %eax,%eax
56c6cd:	50                   	push   %eax
56c6ce:	57                   	push   %edi
56c6cf:	56                   	push   %esi
56c6d0:	e8 ad 24 eb ff       	call   0x41eb82
56c6d5:	83 c4 0c             	add    $0xc,%esp
56c6d8:	eb 06                	jmp    0x56c6e0
56c6da:	8b 07                	mov    (%edi),%eax
56c6dc:	89 06                	mov    %eax,(%esi)
56c6de:	89 0f                	mov    %ecx,(%edi)
56c6e0:	8b 47 10             	mov    0x10(%edi),%eax
56c6e3:	89 46 10             	mov    %eax,0x10(%esi)
56c6e6:	8b 47 14             	mov    0x14(%edi),%eax
56c6e9:	89 46 14             	mov    %eax,0x14(%esi)
56c6ec:	c7 47 14 07 00 00 00 	movl   $0x7,0x14(%edi)
56c6f3:	83 7f 14 08          	cmpl   $0x8,0x14(%edi)
56c6f7:	c7 47 10 00 00 00 00 	movl   $0x0,0x10(%edi)
56c6fe:	72 02                	jb     0x56c702
56c700:	8b 3f                	mov    (%edi),%edi
56c702:	33 c0                	xor    %eax,%eax
56c704:	66 89 07             	mov    %ax,(%edi)
56c707:	8b 45 ec             	mov    -0x14(%ebp),%eax
56c70a:	c6 45 fc 00          	movb   $0x0,-0x4(%ebp)
56c70e:	83 f8 08             	cmp    $0x8,%eax
56c711:	72 37                	jb     0x56c74a
56c713:	8b 4d d8             	mov    -0x28(%ebp),%ecx
56c716:	40                   	inc    %eax
56c717:	3d ff ff ff 7f       	cmp    $0x7fffffff,%eax
56c71c:	77 3e                	ja     0x56c75c
56c71e:	03 c0                	add    %eax,%eax
56c720:	3d 00 10 00 00       	cmp    $0x1000,%eax
56c725:	72 1a                	jb     0x56c741
56c727:	f6 c1 1f             	test   $0x1f,%cl
56c72a:	75 30                	jne    0x56c75c
56c72c:	8b 41 fc             	mov    -0x4(%ecx),%eax
56c72f:	3b c1                	cmp    %ecx,%eax
56c731:	73 29                	jae    0x56c75c
56c733:	2b c8                	sub    %eax,%ecx
56c735:	83 f9 04             	cmp    $0x4,%ecx
56c738:	72 22                	jb     0x56c75c
56c73a:	83 f9 23             	cmp    $0x23,%ecx
56c73d:	77 1d                	ja     0x56c75c
56c73f:	8b c8                	mov    %eax,%ecx
56c741:	51                   	push   %ecx
56c742:	e8 48 50 e9 ff       	call   0x40178f
56c747:	83 c4 04             	add    $0x4,%esp
56c74a:	8b 55 d4             	mov    -0x2c(%ebp),%edx
56c74d:	b8 01 00 00 00       	mov    $0x1,%eax
56c752:	8b 7d cc             	mov    -0x34(%ebp),%edi
56c755:	03 d0                	add    %eax,%edx
56c757:	e9 ae fd ff ff       	jmp    0x56c50a
56c75c:	e8 2c 12 ed ff       	call   0x43d98d
56c761:	8b c6                	mov    %esi,%eax
56c763:	8b 4d f4             	mov    -0xc(%ebp),%ecx
56c766:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
56c76d:	59                   	pop    %ecx
56c76e:	5f                   	pop    %edi
56c76f:	5e                   	pop    %esi
56c770:	5b                   	pop    %ebx
56c771:	8b 4d f0             	mov    -0x10(%ebp),%ecx
56c774:	33 cd                	xor    %ebp,%ecx
56c776:	e8 3b f0 ea ff       	call   0x41b7b6
56c77b:	8b e5                	mov    %ebp,%esp
56c77d:	5d                   	pop    %ebp
56c77e:	c3                   	ret
56c77f:	cc                   	int3
56c780:	cc                   	int3
56c781:	cc                   	int3
56c782:	cc                   	int3
56c783:	cc                   	int3
56c784:	cc                   	int3
56c785:	cc                   	int3
56c786:	cc                   	int3
56c787:	cc                   	int3
56c788:	cc                   	int3
56c789:	cc                   	int3
56c78a:	cc                   	int3
56c78b:	cc                   	int3
56c78c:	cc                   	int3
56c78d:	cc                   	int3
56c78e:	cc                   	int3
56c78f:	cc                   	int3
56c790:	cc                   	int3
56c791:	cc                   	int3
56c792:	cc                   	int3
56c793:	cc                   	int3
56c794:	cc                   	int3
56c795:	cc                   	int3
56c796:	cc                   	int3
56c797:	cc                   	int3
56c798:	cc                   	int3
56c799:	cc                   	int3
56c79a:	cc                   	int3
56c79b:	cc                   	int3
56c79c:	cc                   	int3
56c79d:	cc                   	int3
56c79e:	cc                   	int3