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
56b890:	40                   	inc    %eax
56b891:	74 11                	je     0x56b8a4
56b893:	0f b7 14 24          	movzwl (%esp),%edx
56b897:	c1 fa 08             	sar    $0x8,%edx
56b89a:	8b c3                	mov    %ebx,%eax
56b89c:	e8 b7 cf 00 00       	call   0x578858
56b8a1:	40                   	inc    %eax
56b8a2:	75 06                	jne    0x56b8aa
56b8a4:	83 c8 ff             	or     $0xffffffff,%eax
56b8a7:	5a                   	pop    %edx
56b8a8:	5b                   	pop    %ebx
56b8a9:	c3                   	ret
56b8aa:	66 81 3c 24 80 ff    	cmpw   $0xff80,(%esp)
56b8b0:	72 07                	jb     0x56b8b9
56b8b2:	0f b7 04 24          	movzwl (%esp),%eax
56b8b6:	5a                   	pop    %edx
56b8b7:	5b                   	pop    %ebx
56b8b8:	c3                   	ret
56b8b9:	33 c0                	xor    %eax,%eax
56b8bb:	5a                   	pop    %edx
56b8bc:	5b                   	pop    %ebx
56b8bd:	c3                   	ret
56b8be:	8b c0                	mov    %eax,%eax
56b8c0:	53                   	push   %ebx
56b8c1:	8b d8                	mov    %eax,%ebx
56b8c3:	33 c0                	xor    %eax,%eax
56b8c5:	89 43 64             	mov    %eax,0x64(%ebx)
56b8c8:	8b 53 48             	mov    0x48(%ebx),%edx
56b8cb:	85 d2                	test   %edx,%edx
56b8cd:	75 5b                	jne    0x56b92a
56b8cf:	ff 43 5c             	incl   0x5c(%ebx)
56b8d2:	33 c9                	xor    %ecx,%ecx
56b8d4:	89 4b 18             	mov    %ecx,0x18(%ebx)
56b8d7:	33 c0                	xor    %eax,%eax
56b8d9:	89 43 1c             	mov    %eax,0x1c(%ebx)
56b8dc:	33 d2                	xor    %edx,%edx
56b8de:	89 53 20             	mov    %edx,0x20(%ebx)
56b8e1:	33 c9                	xor    %ecx,%ecx
56b8e3:	89 4b 24             	mov    %ecx,0x24(%ebx)
56b8e6:	c7 43 60 01 00 00 00 	movl   $0x1,0x60(%ebx)
56b8ed:	8b 43 4c             	mov    0x4c(%ebx),%eax
56b8f0:	e8 c7 14 00 00       	call   0x56cdbc
56b8f5:	8b 53 5c             	mov    0x5c(%ebx),%edx
56b8f8:	3b c2                	cmp    %edx,%eax
56b8fa:	7e 10                	jle    0x56b90c
56b8fc:	8b 53 5c             	mov    0x5c(%ebx),%edx
56b8ff:	8b 43 4c             	mov    0x4c(%ebx),%eax
56b902:	e8 ad 14 00 00       	call   0x56cdb4
56b907:	89 43 48             	mov    %eax,0x48(%ebx)
56b90a:	eb 1e                	jmp    0x56b92a
56b90c:	8b 43 4c             	mov    0x4c(%ebx),%eax
56b90f:	e8 a8 14 00 00       	call   0x56cdbc
56b914:	8b 53 5c             	mov    0x5c(%ebx),%edx
56b917:	3b c2                	cmp    %edx,%eax
56b919:	75 08                	jne    0x56b923
56b91b:	8d 4b 50             	lea    0x50(%ebx),%ecx
56b91e:	89 4b 48             	mov    %ecx,0x48(%ebx)
56b921:	eb 07                	jmp    0x56b92a
56b923:	b8 01 00 00 00       	mov    $0x1,%eax
56b928:	5b                   	pop    %ebx
56b929:	c3                   	ret
56b92a:	8b 43 48             	mov    0x48(%ebx),%eax
56b92d:	33 d2                	xor    %edx,%edx
56b92f:	8a 10                	mov    (%eax),%dl
56b931:	83 fa 04             	cmp    $0x4,%edx
56b934:	77 48                	ja     0x56b97e
56b936:	ff 24 95 3d b9 56 00 	jmp    *0x56b93d(,%edx,4)
56b93d:	51                   	push   %ecx
56b93e:	b9 56 00 5a b9       	mov    $0xb95a0056,%ecx
56b943:	56                   	push   %esi
56b944:	00 63 b9             	add    %ah,-0x47(%ebx)
56b947:	56                   	push   %esi
56b948:	00 6c b9 56          	add    %ch,0x56(%ecx,%edi,4)
56b94c:	00 75 b9             	add    %dh,-0x47(%ebp)
56b94f:	56                   	push   %esi
56b950:	00 8b c3 e8 48 00    	add    %cl,0x48e8c3(%ebx)
56b956:	00 00                	add    %al,(%eax)
56b958:	eb 27                	jmp    0x56b981
56b95a:	8b c3                	mov    %ebx,%eax
56b95c:	e8 27 01 00 00       	call   0x56ba88
56b961:	eb 1e                	jmp    0x56b981
56b963:	8b c3                	mov    %ebx,%eax
56b965:	e8 2a 02 00 00       	call   0x56bb94
56b96a:	eb 15                	jmp    0x56b981
56b96c:	8b c3                	mov    %ebx,%eax
56b96e:	e8 6d 07 00 00       	call   0x56c0e0
56b973:	eb 0c                	jmp    0x56b981
56b975:	8b c3                	mov    %ebx,%eax
56b977:	e8 84 0c 00 00       	call   0x56c600
56b97c:	eb 03                	jmp    0x56b981
56b97e:	83 c8 ff             	or     $0xffffffff,%eax
56b981:	85 c0                	test   %eax,%eax
56b983:	75 0e                	jne    0x56b993
56b985:	c7 43 64 01 00 00 00 	movl   $0x1,0x64(%ebx)
56b98c:	ff 43 68             	incl   0x68(%ebx)
56b98f:	33 c0                	xor    %eax,%eax
56b991:	5b                   	pop    %ebx
56b992:	c3                   	ret
56b993:	33 d2                	xor    %edx,%edx
56b995:	89 53 48             	mov    %edx,0x48(%ebx)
56b998:	e9 26 ff ff ff       	jmp    0x56b8c3
56b99d:	5b                   	pop    %ebx
56b99e:	c3                   	ret
56b99f:	90                   	nop
56b9a0:	53                   	push   %ebx
56b9a1:	56                   	push   %esi
56b9a2:	8b 58 48             	mov    0x48(%eax),%ebx
56b9a5:	8b 50 60             	mov    0x60(%eax),%edx
56b9a8:	85 d2                	test   %edx,%edx
56b9aa:	75 10                	jne    0x56b9bc
56b9ac:	8b 48 14             	mov    0x14(%eax),%ecx
56b9af:	8b 51 04             	mov    0x4(%ecx),%edx
56b9b2:	8b 48 20             	mov    0x20(%eax),%ecx
56b9b5:	c1 e1 02             	shl    $0x2,%ecx
56b9b8:	03 d1                	add    %ecx,%edx
56b9ba:	eb 66                	jmp    0x56ba22
56b9bc:	33 d2                	xor    %edx,%edx
56b9be:	89 50 60             	mov    %edx,0x60(%eax)
56b9c1:	33 c9                	xor    %ecx,%ecx
56b9c3:	89 48 24             	mov    %ecx,0x24(%eax)
56b9c6:	e9 9f 00 00 00       	jmp    0x56ba6a
56b9cb:	33 d2                	xor    %edx,%edx
56b9cd:	8a 53 01             	mov    0x1(%ebx),%dl
56b9d0:	89 50 1c             	mov    %edx,0x1c(%eax)
56b9d3:	eb 7b                	jmp    0x56ba50
56b9d5:	0f b7 53 04          	movzwl 0x4(%ebx),%edx
56b9d9:	89 50 18             	mov    %edx,0x18(%eax)
56b9dc:	c1 e2 04             	shl    $0x4,%edx
56b9df:	8b 48 0c             	mov    0xc(%eax),%ecx
56b9e2:	03 d1                	add    %ecx,%edx
56b9e4:	89 50 10             	mov    %edx,0x10(%eax)
56b9e7:	eb 52                	jmp    0x56ba3b
56b9e9:	8b 50 10             	mov    0x10(%eax),%edx
56b9ec:	8b 32                	mov    (%edx),%esi
56b9ee:	8b 48 1c             	mov    0x1c(%eax),%ecx
56b9f1:	3b f1                	cmp    %ecx,%esi
56b9f3:	7e 3f                	jle    0x56ba34
56b9f5:	c1 e1 02             	shl    $0x2,%ecx
56b9f8:	8b 52 04             	mov    0x4(%edx),%edx
56b9fb:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
56b9fe:	03 d1                	add    %ecx,%edx
56ba00:	89 50 14             	mov    %edx,0x14(%eax)
56ba03:	33 d2                	xor    %edx,%edx
56ba05:	89 50 20             	mov    %edx,0x20(%eax)
56ba08:	8b 50 14             	mov    0x14(%eax),%edx
56ba0b:	8b 52 04             	mov    0x4(%edx),%edx
56ba0e:	eb 18                	jmp    0x56ba28
56ba10:	8b 48 24             	mov    0x24(%eax),%ecx
56ba13:	8b 32                	mov    (%edx),%esi
56ba15:	3b ce                	cmp    %esi,%ecx
56ba17:	7c 09                	jl     0x56ba22
56ba19:	89 0a                	mov    %ecx,(%edx)
56ba1b:	ff 02                	incl   (%edx)
56ba1d:	33 c0                	xor    %eax,%eax
56ba1f:	5e                   	pop    %esi
56ba20:	5b                   	pop    %ebx
56ba21:	c3                   	ret
56ba22:	ff 40 20             	incl   0x20(%eax)
56ba25:	83 c2 04             	add    $0x4,%edx
56ba28:	8b 48 14             	mov    0x14(%eax),%ecx
56ba2b:	8b 09                	mov    (%ecx),%ecx
56ba2d:	8b 70 20             	mov    0x20(%eax),%esi
56ba30:	3b ce                	cmp    %esi,%ecx
56ba32:	7f dc                	jg     0x56ba10
56ba34:	ff 40 18             	incl   0x18(%eax)
56ba37:	83 40 10 10          	addl   $0x10,0x10(%eax)
56ba3b:	8b 50 18             	mov    0x18(%eax),%edx
56ba3e:	8b 48 08             	mov    0x8(%eax),%ecx
56ba41:	3b d1                	cmp    %ecx,%edx
56ba43:	7d 08                	jge    0x56ba4d
56ba45:	0f b7 4b 06          	movzwl 0x6(%ebx),%ecx
56ba49:	3b d1                	cmp    %ecx,%edx
56ba4b:	7c 9c                	jl     0x56b9e9
56ba4d:	ff 40 1c             	incl   0x1c(%eax)
56ba50:	8b 50 1c             	mov    0x1c(%eax),%edx