56b45e:	85 c0                	test   %eax,%eax
56b460:	75 17                	jne    0x56b479
56b462:	68 f0 01 00 00       	push   $0x1f0
56b467:	68 ce fd 69 00       	push   $0x69fdce
56b46c:	68 c4 fd 69 00       	push   $0x69fdc4
56b471:	e8 ca f6 fe ff       	call   0x55ab40
56b476:	83 c4 0c             	add    $0xc,%esp
56b479:	8b 53 48             	mov    0x48(%ebx),%edx
56b47c:	8a 0a                	mov    (%edx),%cl
56b47e:	33 c0                	xor    %eax,%eax
56b480:	8a c1                	mov    %cl,%al
56b482:	50                   	push   %eax
56b483:	8b 55 3c             	mov    0x3c(%ebp),%edx
56b486:	52                   	push   %edx
56b487:	68 7a fd 69 00       	push   $0x69fd7a
56b48c:	68 80 2e 6a 00       	push   $0x6a2e80
56b491:	e8 36 ec 00 00       	call   0x57a0cc
56b496:	83 c4 20             	add    $0x20,%esp
56b499:	8b 4b 64             	mov    0x64(%ebx),%ecx
56b49c:	85 c9                	test   %ecx,%ecx
56b49e:	75 17                	jne    0x56b4b7
56b4a0:	68 f3 01 00 00       	push   $0x1f3
56b4a5:	68 3c fe 69 00       	push   $0x69fe3c
56b4aa:	68 32 fe 69 00       	push   $0x69fe32
56b4af:	e8 8c f6 fe ff       	call   0x55ab40
56b4b4:	83 c4 0c             	add    $0xc,%esp
56b4b7:	8b 43 18             	mov    0x18(%ebx),%eax
56b4ba:	50                   	push   %eax
56b4bb:	8b 53 64             	mov    0x64(%ebx),%edx
56b4be:	85 d2                	test   %edx,%edx
56b4c0:	75 17                	jne    0x56b4d9
56b4c2:	68 f3 01 00 00       	push   $0x1f3
56b4c7:	68 52 fe 69 00       	push   $0x69fe52
56b4cc:	68 48 fe 69 00       	push   $0x69fe48
56b4d1:	e8 6a f6 fe ff       	call   0x55ab40
56b4d6:	83 c4 0c             	add    $0xc,%esp
56b4d9:	8b 4b 1c             	mov    0x1c(%ebx),%ecx
56b4dc:	51                   	push   %ecx
56b4dd:	8b 43 64             	mov    0x64(%ebx),%eax
56b4e0:	85 c0                	test   %eax,%eax
56b4e2:	75 17                	jne    0x56b4fb
56b4e4:	68 f4 01 00 00       	push   $0x1f4
56b4e9:	68 68 fe 69 00       	push   $0x69fe68
56b4ee:	68 5e fe 69 00       	push   $0x69fe5e
56b4f3:	e8 48 f6 fe ff       	call   0x55ab40
56b4f8:	83 c4 0c             	add    $0xc,%esp
56b4fb:	8b 53 20             	mov    0x20(%ebx),%edx
56b4fe:	52                   	push   %edx
56b4ff:	8b 4b 64             	mov    0x64(%ebx),%ecx
56b502:	85 c9                	test   %ecx,%ecx
56b504:	75 17                	jne    0x56b51d
56b506:	68 f4 01 00 00       	push   $0x1f4
56b50b:	68 7e fe 69 00       	push   $0x69fe7e
56b510:	68 74 fe 69 00       	push   $0x69fe74
56b515:	e8 26 f6 fe ff       	call   0x55ab40
56b51a:	83 c4 0c             	add    $0xc,%esp
56b51d:	8b 43 24             	mov    0x24(%ebx),%eax
56b520:	8b cd                	mov    %ebp,%ecx
56b522:	50                   	push   %eax
56b523:	8b c6                	mov    %esi,%eax
56b525:	8b 54 24 10          	mov    0x10(%esp),%edx
56b529:	e8 82 f7 ff ff       	call   0x56acb0
56b52e:	85 c0                	test   %eax,%eax
56b530:	74 05                	je     0x56b537
56b532:	83 c8 ff             	or     $0xffffffff,%eax
56b535:	eb 0a                	jmp    0x56b541
56b537:	ff 46 4c             	incl   0x4c(%esi)
56b53a:	e9 f1 fd ff ff       	jmp    0x56b330
56b53f:	33 c0                	xor    %eax,%eax
56b541:	59                   	pop    %ecx
56b542:	5a                   	pop    %edx
56b543:	5d                   	pop    %ebp
56b544:	5f                   	pop    %edi
56b545:	5e                   	pop    %esi
56b546:	5b                   	pop    %ebx
56b547:	c3                   	ret
56b548:	53                   	push   %ebx
56b549:	56                   	push   %esi
56b54a:	57                   	push   %edi
56b54b:	55                   	push   %ebp
56b54c:	83 c4 e8             	add    $0xffffffe8,%esp
56b54f:	89 54 24 04          	mov    %edx,0x4(%esp)
56b553:	89 04 24             	mov    %eax,(%esp)
56b556:	e8 71 16 00 00       	call   0x56cbcc
56b55b:	89 44 24 08          	mov    %eax,0x8(%esp)
56b55f:	85 c0                	test   %eax,%eax
56b561:	75 07                	jne    0x56b56a
56b563:	33 c0                	xor    %eax,%eax
56b565:	e9 f4 02 00 00       	jmp    0x56b85e
56b56a:	8b 14 24             	mov    (%esp),%edx
56b56d:	8b 44 24 08          	mov    0x8(%esp),%eax
56b571:	8b 5a 38             	mov    0x38(%edx),%ebx
56b574:	89 58 08             	mov    %ebx,0x8(%eax)
56b577:	8b c3                	mov    %ebx,%eax
56b579:	c1 e0 04             	shl    $0x4,%eax
56b57c:	e8 fb cd 00 00       	call   0x57837c
56b581:	8b 54 24 08          	mov    0x8(%esp),%edx
56b585:	85 c0                	test   %eax,%eax
56b587:	89 42 0c             	mov    %eax,0xc(%edx)
56b58a:	75 10                	jne    0x56b59c
56b58c:	8b 44 24 08          	mov    0x8(%esp),%eax
56b590:	e8 f3 15 00 00       	call   0x56cb88
56b595:	33 c0                	xor    %eax,%eax
56b597:	e9 c2 02 00 00       	jmp    0x56b85e
56b59c:	33 d2                	xor    %edx,%edx
56b59e:	89 54 24 0c          	mov    %edx,0xc(%esp)
56b5a2:	8b 4c 24 08          	mov    0x8(%esp),%ecx
56b5a6:	8b 71 0c             	mov    0xc(%ecx),%esi
56b5a9:	eb 0c                	jmp    0x56b5b7
56b5ab:	33 c0                	xor    %eax,%eax
56b5ad:	89 46 04             	mov    %eax,0x4(%esi)
56b5b0:	ff 44 24 0c          	incl   0xc(%esp)
56b5b4:	83 c6 10             	add    $0x10,%esi
56b5b7:	8b 54 24 08          	mov    0x8(%esp),%edx
56b5bb:	8b 4a 08             	mov    0x8(%edx),%ecx
56b5be:	8b 44 24 0c          	mov    0xc(%esp),%eax
56b5c2:	3b c8                	cmp    %eax,%ecx
56b5c4:	7f e5                	jg     0x56b5ab
56b5c6:	33 d2                	xor    %edx,%edx
56b5c8:	89 54 24 0c          	mov    %edx,0xc(%esp)
56b5cc:	8b 4c 24 04          	mov    0x4(%esp),%ecx
56b5d0:	8b 41 24             	mov    0x24(%ecx),%eax
56b5d3:	89 44 24 10          	mov    %eax,0x10(%esp)
56b5d7:	8b 54 24 08          	mov    0x8(%esp),%edx
56b5db:	8b 72 0c             	mov    0xc(%edx),%esi
56b5de:	e9 91 00 00 00       	jmp    0x56b674
56b5e3:	8b 44 24 10          	mov    0x10(%esp),%eax
56b5e7:	0f b7 58 14          	movzwl 0x14(%eax),%ebx
56b5eb:	89 1e                	mov    %ebx,(%esi)
56b5ed:	8b c3                	mov    %ebx,%eax
56b5ef:	c1 e0 02             	shl    $0x2,%eax
56b5f2:	8d 04 80             	lea    (%eax,%eax,4),%eax
56b5f5:	e8 82 cd 00 00       	call   0x57837c
56b5fa:	89 46 04             	mov    %eax,0x4(%esi)
56b5fd:	85 c0                	test   %eax,%eax
56b5ff:	75 10                	jne    0x56b611
56b601:	8b 44 24 08          	mov    0x8(%esp),%eax
56b605:	e8 7e 15 00 00       	call   0x56cb88
56b60a:	33 c0                	xor    %eax,%eax
56b60c:	e9 4d 02 00 00       	jmp    0x56b85e
56b611:	33 ed                	xor    %ebp,%ebp
56b613:	8b 5e 04             	mov    0x4(%esi),%ebx
56b616:	eb 09                	jmp    0x56b621
56b618:	33 c0                	xor    %eax,%eax
56b61a:	45                   	inc    %ebp
56b61b:	89 43 04             	mov    %eax,0x4(%ebx)
56b61e:	83 c3 14             	add    $0x14,%ebx
56b621:	8b 16                	mov    (%esi),%edx
56b623:	3b ea                	cmp    %edx,%ebp
56b625:	7c f1                	jl     0x56b618
56b627:	33 ed                	xor    %ebp,%ebp
56b629:	8b 5e 04             	mov    0x4(%esi),%ebx
56b62c:	8b 44 24 10          	mov    0x10(%esp),%eax
56b630:	8b 78 18             	mov    0x18(%eax),%edi
56b633:	eb 2d                	jmp    0x56b662
56b635:	8b 47 28             	mov    0x28(%edi),%eax
56b638:	89 03                	mov    %eax,(%ebx)
56b63a:	8b 03                	mov    (%ebx),%eax
56b63c:	c1 e0 02             	shl    $0x2,%eax
56b63f:	e8 38 cd 00 00       	call   0x57837c
56b644:	89 43 04             	mov    %eax,0x4(%ebx)
56b647:	85 c0                	test   %eax,%eax
56b649:	75 10                	jne    0x56b65b
56b64b:	8b 44 24 08          	mov    0x8(%esp),%eax
56b64f:	e8 34 15 00 00       	call   0x56cb88
56b654:	33 c0                	xor    %eax,%eax
56b656:	e9 03 02 00 00       	jmp    0x56b85e
56b65b:	45                   	inc    %ebp
56b65c:	83 c3 14             	add    $0x14,%ebx
56b65f:	83 c7 38             	add    $0x38,%edi
56b662:	8b 16                	mov    (%esi),%edx
56b664:	3b ea                	cmp    %edx,%ebp
56b666:	7c cd                	jl     0x56b635
56b668:	ff 44 24 0c          	incl   0xc(%esp)
56b66c:	83 44 24 10 20       	addl   $0x20,0x10(%esp)
56b671:	83 c6 10             	add    $0x10,%esi
56b674:	8b 4c 24 08          	mov    0x8(%esp),%ecx
56b678:	8b 41 08             	mov    0x8(%ecx),%eax
56b67b:	8b 54 24 0c          	mov    0xc(%esp),%edx
56b67f:	3b c2                	cmp    %edx,%eax
56b681:	0f 8f 5c ff ff ff    	jg     0x56b5e3
56b687:	8b 4c 24 08          	mov    0x8(%esp),%ecx
56b68b:	33 c0                	xor    %eax,%eax
56b68d:	33 d2                	xor    %edx,%edx
56b68f:	89 41 04             	mov    %eax,0x4(%ecx)
56b692:	89 54 24 0c          	mov    %edx,0xc(%esp)
56b696:	8b 4c 24 04          	mov    0x4(%esp),%ecx
56b69a:	8b 41 24             	mov    0x24(%ecx),%eax
56b69d:	89 44 24 10          	mov    %eax,0x10(%esp)
56b6a1:	8b 54 24 08          	mov    0x8(%esp),%edx
56b6a5:	8b 04 24             	mov    (%esp),%eax
56b6a8:	8b 72 0c             	mov    0xc(%edx),%esi
56b6ab:	8b 50 58             	mov    0x58(%eax),%edx
56b6ae:	89 54 24 14          	mov    %edx,0x14(%esp)
56b6b2:	e9 80 00 00 00       	jmp    0x56b737
56b6b7:	8b 4c 24 14          	mov    0x14(%esp),%ecx
56b6bb:	8b 01                	mov    (%ecx),%eax
56b6bd:	89 46 08             	mov    %eax,0x8(%esi)
56b6c0:	8b 54 24 14          	mov    0x14(%esp),%edx
56b6c4:	8b 4a 04             	mov    0x4(%edx),%ecx
56b6c7:	89 4e 0c             	mov    %ecx,0xc(%esi)
56b6ca:	33 ed                	xor    %ebp,%ebp
56b6cc:	8b 5e 04             	mov    0x4(%esi),%ebx
56b6cf:	8b 44 24 10          	mov    0x10(%esp),%eax
56b6d3:	8b 78 18             	mov    0x18(%eax),%edi
56b6d6:	eb 2e                	jmp    0x56b706
56b6d8:	8b 47 18             	mov    0x18(%edi),%eax
56b6db:	89 43 08             	mov    %eax,0x8(%ebx)
56b6de:	8b 57 1c             	mov    0x1c(%edi),%edx
56b6e1:	89 53 0c             	mov    %edx,0xc(%ebx)
56b6e4:	33 c0                	xor    %eax,%eax
56b6e6:	8b 53 04             	mov    0x4(%ebx),%edx
56b6e9:	eb 08                	jmp    0x56b6f3
56b6eb:	33 c9                	xor    %ecx,%ecx
56b6ed:	40                   	inc    %eax
56b6ee:	89 0a                	mov    %ecx,(%edx)
56b6f0:	83 c2 04             	add    $0x4,%edx
56b6f3:	8b 0b                	mov    (%ebx),%ecx
56b6f5:	3b c1                	cmp    %ecx,%eax
56b6f7:	7c f2                	jl     0x56b6eb
56b6f9:	8b 47 20             	mov    0x20(%edi),%eax
56b6fc:	45                   	inc    %ebp
56b6fd:	89 43 10             	mov    %eax,0x10(%ebx)
56b700:	83 c3 14             	add    $0x14,%ebx
56b703:	83 c7 38             	add    $0x38,%edi
56b706:	8b 16                	mov    (%esi),%edx
56b708:	3b ea                	cmp    %edx,%ebp
56b70a:	7c cc                	jl     0x56b6d8
56b70c:	8b 44 24 10          	mov    0x10(%esp),%eax
56b710:	8b 54 24 08          	mov    0x8(%esp),%edx
56b714:	0f b7 40 14          	movzwl 0x14(%eax),%eax
56b718:	8b 4a 04             	mov    0x4(%edx),%ecx
56b71b:	3b c1                	cmp    %ecx,%eax
56b71d:	7e 07                	jle    0x56b726
56b71f:	8b 54 24 08          	mov    0x8(%esp),%edx
56b723:	89 42 04             	mov    %eax,0x4(%edx)
56b726:	ff 44 24 0c          	incl   0xc(%esp)
56b72a:	83 44 24 10 20       	addl   $0x20,0x10(%esp)
56b72f:	83 c6 10             	add    $0x10,%esi
56b732:	83 44 24 14 20       	addl   $0x20,0x14(%esp)
56b737:	8b 44 24 08          	mov    0x8(%esp),%eax
56b73b:	8b 48 08             	mov    0x8(%eax),%ecx
56b73e:	8b 44 24 0c          	mov    0xc(%esp),%eax
56b742:	3b c8                	cmp    %eax,%ecx
56b744:	0f 8f 6d ff ff ff    	jg     0x56b6b7
56b74a:	8b 54 24 04          	mov    0x4(%esp),%edx
56b74e:	8b 4a 20             	mov    0x20(%edx),%ecx
56b751:	8b 54 24 08          	mov    0x8(%esp),%edx
56b755:	0f b7 41 0a          	movzwl 0xa(%ecx),%eax
56b759:	89 02                	mov    %eax,(%edx)
56b75b:	8b 4c 24 04          	mov    0x4(%esp),%ecx
56b75f:	8b 54 24 08          	mov    0x8(%esp),%edx
56b763:	8b 41 04             	mov    0x4(%ecx),%eax
56b766:	89 42 38             	mov    %eax,0x38(%edx)
56b769:	8b 4c 24 04          	mov    0x4(%esp),%ecx
56b76d:	8b 54 24 08          	mov    0x8(%esp),%edx
56b771:	8b 41 08             	mov    0x8(%ecx),%eax
56b774:	89 42 3c             	mov    %eax,0x3c(%edx)
56b777:	8b 4c 24 04          	mov    0x4(%esp),%ecx
56b77b:	8b 54 24 08          	mov    0x8(%esp),%edx
56b77f:	8b 41 0c             	mov    0xc(%ecx),%eax
56b782:	89 42 40             	mov    %eax,0x40(%edx)
56b785:	8b 4c 24 04          	mov    0x4(%esp),%ecx
56b789:	8b 54 24 08          	mov    0x8(%esp),%edx
56b78d:	8b 41 10             	mov    0x10(%ecx),%eax
56b790:	89 42 44             	mov    %eax,0x44(%edx)
56b793:	33 c0                	xor    %eax,%eax
56b795:	8b 4c 24 08          	mov    0x8(%esp),%ecx
56b799:	89 41 10             	mov    %eax,0x10(%ecx)
56b79c:	33 c9                	xor    %ecx,%ecx
56b79e:	8b 54 24 08          	mov    0x8(%esp),%edx
56b7a2:	89 4a 14             	mov    %ecx,0x14(%edx)
56b7a5:	33 d2                	xor    %edx,%edx
56b7a7:	8b 44 24 08          	mov    0x8(%esp),%eax
56b7ab:	89 50 28             	mov    %edx,0x28(%eax)
56b7ae:	33 c0                	xor    %eax,%eax
56b7b0:	8b 4c 24 08          	mov    0x8(%esp),%ecx
56b7b4:	89 41 2c             	mov    %eax,0x2c(%ecx)
56b7b7:	33 c9                	xor    %ecx,%ecx
56b7b9:	8b 54 24 08          	mov    0x8(%esp),%edx
56b7bd:	89 4a 18             	mov    %ecx,0x18(%edx)
56b7c0:	33 d2                	xor    %edx,%edx
56b7c2:	8b 44 24 08          	mov    0x8(%esp),%eax
56b7c6:	89 50 1c             	mov    %edx,0x1c(%eax)
56b7c9:	33 c0                	xor    %eax,%eax
56b7cb:	8b 4c 24 08          	mov    0x8(%esp),%ecx
56b7cf:	89 41 20             	mov    %eax,0x20(%ecx)
56b7d2:	33 c9                	xor    %ecx,%ecx
56b7d4:	8b 54 24 08          	mov    0x8(%esp),%edx
56b7d8:	89 4a 24             	mov    %ecx,0x24(%edx)
56b7db:	33 d2                	xor    %edx,%edx
56b7dd:	8b 44 24 08          	mov    0x8(%esp),%eax
56b7e1:	89 50 30             	mov    %edx,0x30(%eax)
56b7e4:	33 c0                	xor    %eax,%eax
56b7e6:	8b 4c 24 08          	mov    0x8(%esp),%ecx
56b7ea:	89 41 34             	mov    %eax,0x34(%ecx)
56b7ed:	8b 54 24 08          	mov    0x8(%esp),%edx
56b7f1:	c7 42 5c ff ff ff ff 	movl   $0xffffffff,0x5c(%edx)
56b7f8:	8b 4c 24 04          	mov    0x4(%esp),%ecx
56b7fc:	8b 41 20             	mov    0x20(%ecx),%eax
56b7ff:	8b 4c 24 08          	mov    0x8(%esp),%ecx
56b803:	8a 50 08             	mov    0x8(%eax),%dl
56b806:	88 51 50             	mov    %dl,0x50(%ecx)
56b809:	8b 44 24 08          	mov    0x8(%esp),%eax
56b80d:	66 c7 40 54 00 00    	movw   $0x0,0x54(%eax)
56b813:	8b 54 24 08          	mov    0x8(%esp),%edx
56b817:	8b 44 24 08          	mov    0x8(%esp),%eax
56b81b:	66 8b 4a 08          	mov    0x8(%edx),%cx
56b81f:	66 89 48 56          	mov    %cx,0x56(%eax)
56b823:	8b 54 24 08          	mov    0x8(%esp),%edx
56b827:	c6 42 51 00          	movb   $0x0,0x51(%edx)
56b82b:	8b 4c 24 08          	mov    0x8(%esp),%ecx
56b82f:	8b 54 24 08          	mov    0x8(%esp),%edx
56b833:	8a 41 04             	mov    0x4(%ecx),%al
56b836:	88 42 52             	mov    %al,0x52(%edx)
56b839:	8b 4c 24 08          	mov    0x8(%esp),%ecx
56b83d:	8b 54 24 08          	mov    0x8(%esp),%edx
56b841:	66 8b 01             	mov    (%ecx),%ax
56b844:	66 89 42 58          	mov    %ax,0x58(%edx)
56b848:	33 c0                	xor    %eax,%eax
56b84a:	8b 4c 24 08          	mov    0x8(%esp),%ecx
56b84e:	89 41 48             	mov    %eax,0x48(%ecx)
56b851:	33 c9                	xor    %ecx,%ecx
56b853:	8b 54 24 08          	mov    0x8(%esp),%edx
56b857:	89 4a 64             	mov    %ecx,0x64(%edx)
56b85a:	8b 44 24 08          	mov    0x8(%esp),%eax
56b85e:	83 c4 18             	add    $0x18,%esp
56b861:	5d                   	pop    %ebp
56b862:	5f                   	pop    %edi
56b863:	5e                   	pop    %esi
56b864:	5b                   	pop    %ebx
56b865:	c3                   	ret
56b866:	90                   	nop
56b867:	90                   	nop
56b868:	53                   	push   %ebx
56b869:	51                   	push   %ecx
56b86a:	8b d8                	mov    %eax,%ebx
56b86c:	8b d4                	mov    %esp,%edx
56b86e:	8b c3                	mov    %ebx,%eax
56b870:	e8 b3 be 00 00       	call   0x577728
56b875:	85 c0                	test   %eax,%eax
56b877:	74 06                	je     0x56b87f
56b879:	83 c8 ff             	or     $0xffffffff,%eax
56b87c:	5a                   	pop    %edx
56b87d:	5b                   	pop    %ebx
56b87e:	c3                   	ret
56b87f:	0f b7 14 24          	movzwl (%esp),%edx
56b883:	81 e2 ff 00 00 00    	and    $0xff,%edx
56b889:	8b c3                	mov    %ebx,%eax
56b88b:	e8 c8 cf 00 00       	call   0x578858