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
56ba53:	8b 48 04             	mov    0x4(%eax),%ecx
56ba56:	3b d1                	cmp    %ecx,%edx
56ba58:	7d 0d                	jge    0x56ba67
56ba5a:	33 c9                	xor    %ecx,%ecx
56ba5c:	8a 4b 02             	mov    0x2(%ebx),%cl
56ba5f:	3b d1                	cmp    %ecx,%edx
56ba61:	0f 8c 6e ff ff ff    	jl     0x56b9d5
56ba67:	ff 40 24             	incl   0x24(%eax)
56ba6a:	8b 50 24             	mov    0x24(%eax),%edx
56ba6d:	8b 08                	mov    (%eax),%ecx
56ba6f:	3b d1                	cmp    %ecx,%edx
56ba71:	7d 0c                	jge    0x56ba7f
56ba73:	0f b7 4b 08          	movzwl 0x8(%ebx),%ecx
56ba77:	3b d1                	cmp    %ecx,%edx
56ba79:	0f 8c 4c ff ff ff    	jl     0x56b9cb
56ba7f:	b8 01 00 00 00       	mov    $0x1,%eax
56ba84:	5e                   	pop    %esi
56ba85:	5b                   	pop    %ebx
56ba86:	c3                   	ret
56ba87:	90                   	nop
56ba88:	53                   	push   %ebx
56ba89:	8b d8                	mov    %eax,%ebx
56ba8b:	56                   	push   %esi
56ba8c:	8b 43 60             	mov    0x60(%ebx),%eax
56ba8f:	8b 73 48             	mov    0x48(%ebx),%esi
56ba92:	85 c0                	test   %eax,%eax
56ba94:	75 33                	jne    0x56bac9
56ba96:	8b 53 14             	mov    0x14(%ebx),%edx
56ba99:	8b 0a                	mov    (%edx),%ecx
56ba9b:	8b 43 20             	mov    0x20(%ebx),%eax
56ba9e:	3b c8                	cmp    %eax,%ecx
56baa0:	7f 17                	jg     0x56bab9
56baa2:	68 ef 00 00 00       	push   $0xef
56baa7:	68 ac fe 69 00       	push   $0x69feac
56baac:	68 8c fe 69 00       	push   $0x69fe8c
56bab1:	e8 8a f0 fe ff       	call   0x55ab40
56bab6:	83 c4 0c             	add    $0xc,%esp
56bab9:	8b 53 14             	mov    0x14(%ebx),%edx
56babc:	8b 42 04             	mov    0x4(%edx),%eax
56babf:	8b 53 20             	mov    0x20(%ebx),%edx
56bac2:	c1 e2 02             	shl    $0x2,%edx
56bac5:	03 c2                	add    %edx,%eax
56bac7:	eb 66                	jmp    0x56bb2f
56bac9:	33 c9                	xor    %ecx,%ecx
56bacb:	89 4b 60             	mov    %ecx,0x60(%ebx)
56bace:	33 c0                	xor    %eax,%eax
56bad0:	8a 46 01             	mov    0x1(%esi),%al
56bad3:	89 43 1c             	mov    %eax,0x1c(%ebx)
56bad6:	e9 9a 00 00 00       	jmp    0x56bb75
56badb:	33 d2                	xor    %edx,%edx
56badd:	89 53 24             	mov    %edx,0x24(%ebx)
56bae0:	eb 7b                	jmp    0x56bb5d
56bae2:	0f b7 46 04          	movzwl 0x4(%esi),%eax
56bae6:	89 43 18             	mov    %eax,0x18(%ebx)
56bae9:	c1 e0 04             	shl    $0x4,%eax
56baec:	8b 53 0c             	mov    0xc(%ebx),%edx
56baef:	03 c2                	add    %edx,%eax
56baf1:	89 43 10             	mov    %eax,0x10(%ebx)
56baf4:	eb 52                	jmp    0x56bb48
56baf6:	8b 43 10             	mov    0x10(%ebx),%eax
56baf9:	8b 08                	mov    (%eax),%ecx
56bafb:	8b 53 1c             	mov    0x1c(%ebx),%edx
56bafe:	3b ca                	cmp    %edx,%ecx
56bb00:	7e 3f                	jle    0x56bb41
56bb02:	c1 e2 02             	shl    $0x2,%edx
56bb05:	8b 40 04             	mov    0x4(%eax),%eax
56bb08:	8d 14 92             	lea    (%edx,%edx,4),%edx
56bb0b:	03 c2                	add    %edx,%eax
56bb0d:	33 c9                	xor    %ecx,%ecx
56bb0f:	89 43 14             	mov    %eax,0x14(%ebx)
56bb12:	89 4b 20             	mov    %ecx,0x20(%ebx)
56bb15:	8b 43 14             	mov    0x14(%ebx),%eax
56bb18:	8b 40 04             	mov    0x4(%eax),%eax
56bb1b:	eb 18                	jmp    0x56bb35
56bb1d:	8b 53 24             	mov    0x24(%ebx),%edx
56bb20:	8b 08                	mov    (%eax),%ecx
56bb22:	3b d1                	cmp    %ecx,%edx
56bb24:	7c 09                	jl     0x56bb2f
56bb26:	89 10                	mov    %edx,(%eax)
56bb28:	ff 00                	incl   (%eax)
56bb2a:	33 c0                	xor    %eax,%eax
56bb2c:	5e                   	pop    %esi
56bb2d:	5b                   	pop    %ebx
56bb2e:	c3                   	ret
56bb2f:	ff 43 20             	incl   0x20(%ebx)
56bb32:	83 c0 04             	add    $0x4,%eax
56bb35:	8b 53 14             	mov    0x14(%ebx),%edx
56bb38:	8b 0a                	mov    (%edx),%ecx
56bb3a:	8b 53 20             	mov    0x20(%ebx),%edx
56bb3d:	3b ca                	cmp    %edx,%ecx
56bb3f:	7f dc                	jg     0x56bb1d
56bb41:	ff 43 18             	incl   0x18(%ebx)
56bb44:	83 43 10 10          	addl   $0x10,0x10(%ebx)
56bb48:	8b 43 18             	mov    0x18(%ebx),%eax
56bb4b:	8b 4b 08             	mov    0x8(%ebx),%ecx
56bb4e:	3b c1                	cmp    %ecx,%eax
56bb50:	7d 08                	jge    0x56bb5a
56bb52:	0f b7 56 06          	movzwl 0x6(%esi),%edx
56bb56:	3b c2                	cmp    %edx,%eax
56bb58:	7c 9c                	jl     0x56baf6
56bb5a:	ff 43 24             	incl   0x24(%ebx)
56bb5d:	8b 43 24             	mov    0x24(%ebx),%eax
56bb60:	8b 0b                	mov    (%ebx),%ecx
56bb62:	3b c1                	cmp    %ecx,%eax
56bb64:	7d 0c                	jge    0x56bb72
56bb66:	0f b7 56 08          	movzwl 0x8(%esi),%edx
56bb6a:	3b c2                	cmp    %edx,%eax
56bb6c:	0f 8c 70 ff ff ff    	jl     0x56bae2
56bb72:	ff 43 1c             	incl   0x1c(%ebx)
56bb75:	8b 43 1c             	mov    0x1c(%ebx),%eax
56bb78:	8b 4b 04             	mov    0x4(%ebx),%ecx
56bb7b:	3b c1                	cmp    %ecx,%eax
56bb7d:	7d 0d                	jge    0x56bb8c
56bb7f:	33 d2                	xor    %edx,%edx
56bb81:	8a 56 02             	mov    0x2(%esi),%dl
56bb84:	3b c2                	cmp    %edx,%eax
56bb86:	0f 8c 4f ff ff ff    	jl     0x56badb
56bb8c:	b8 01 00 00 00       	mov    $0x1,%eax
56bb91:	5e                   	pop    %esi
56bb92:	5b                   	pop    %ebx
56bb93:	c3                   	ret
56bb94:	53                   	push   %ebx
56bb95:	8b d8                	mov    %eax,%ebx
56bb97:	56                   	push   %esi
56bb98:	57                   	push   %edi
56bb99:	55                   	push   %ebp
56bb9a:	83 c4 e4             	add    $0xffffffe4,%esp
56bb9d:	8b 43 60             	mov    0x60(%ebx),%eax
56bba0:	8b 7b 48             	mov    0x48(%ebx),%edi
56bba3:	85 c0                	test   %eax,%eax
56bba5:	0f 84 a0 04 00 00    	je     0x56c04b
56bbab:	33 d2                	xor    %edx,%edx
56bbad:	89 53 30             	mov    %edx,0x30(%ebx)
56bbb0:	33 c9                	xor    %ecx,%ecx
56bbb2:	89 4b 34             	mov    %ecx,0x34(%ebx)
56bbb5:	33 c0                	xor    %eax,%eax
56bbb7:	89 44 24 04          	mov    %eax,0x4(%esp)
56bbbb:	8b 43 0c             	mov    0xc(%ebx),%eax
56bbbe:	e9 a3 00 00 00       	jmp    0x56bc66
56bbc3:	33 d2                	xor    %edx,%edx
56bbc5:	8b 48 04             	mov    0x4(%eax),%ecx
56bbc8:	89 0c 24             	mov    %ecx,(%esp)
56bbcb:	e9 85 00 00 00       	jmp    0x56bc55
56bbd0:	8b 0c 24             	mov    (%esp),%ecx
56bbd3:	8b 49 08             	mov    0x8(%ecx),%ecx
56bbd6:	8b 30                	mov    (%eax),%esi
56bbd8:	03 ce                	add    %esi,%ecx
56bbda:	2b ca                	sub    %edx,%ecx
56bbdc:	49                   	dec    %ecx
56bbdd:	be 01 00 00 00       	mov    $0x1,%esi
56bbe2:	d3 e6                	shl    %cl,%esi
56bbe4:	0f af 70 08          	imul   0x8(%eax),%esi
56bbe8:	89 74 24 08          	mov    %esi,0x8(%esp)
56bbec:	8b 0c 24             	mov    (%esp),%ecx
56bbef:	8b 49 0c             	mov    0xc(%ecx),%ecx
56bbf2:	8b 30                	mov    (%eax),%esi
56bbf4:	03 ce                	add    %esi,%ecx
56bbf6:	2b ca                	sub    %edx,%ecx
56bbf8:	49                   	dec    %ecx
56bbf9:	be 01 00 00 00       	mov    $0x1,%esi
56bbfe:	d3 e6                	shl    %cl,%esi
56bc00:	0f af 70 0c          	imul   0xc(%eax),%esi
56bc04:	89 74 24 0c          	mov    %esi,0xc(%esp)
56bc08:	8b 4b 30             	mov    0x30(%ebx),%ecx
56bc0b:	85 c9                	test   %ecx,%ecx
56bc0d:	75 06                	jne    0x56bc15
56bc0f:	8b 4c 24 08          	mov    0x8(%esp),%ecx
56bc13:	eb 14                	jmp    0x56bc29
56bc15:	8b 4b 30             	mov    0x30(%ebx),%ecx
56bc18:	8b 74 24 08          	mov    0x8(%esp),%esi
56bc1c:	3b ce                	cmp    %esi,%ecx
56bc1e:	7d 05                	jge    0x56bc25
56bc20:	8b 4b 30             	mov    0x30(%ebx),%ecx
56bc23:	eb 04                	jmp    0x56bc29
56bc25:	8b 4c 24 08          	mov    0x8(%esp),%ecx