579a2d:	e8 52 e9 ff ff       	call   0x578384
579a32:	5b                   	pop    %ebx
579a33:	c3                   	ret
579a34:	53                   	push   %ebx
579a35:	b8 10 00 00 00       	mov    $0x10,%eax
579a3a:	e8 3d e9 ff ff       	call   0x57837c
579a3f:	8b d8                	mov    %eax,%ebx
579a41:	85 c0                	test   %eax,%eax
579a43:	75 04                	jne    0x579a49
579a45:	33 c0                	xor    %eax,%eax
579a47:	5b                   	pop    %ebx
579a48:	c3                   	ret
579a49:	33 d2                	xor    %edx,%edx
579a4b:	33 c9                	xor    %ecx,%ecx
579a4d:	89 13                	mov    %edx,(%ebx)
579a4f:	89 4b 04             	mov    %ecx,0x4(%ebx)
579a52:	33 c0                	xor    %eax,%eax
579a54:	33 d2                	xor    %edx,%edx
579a56:	89 43 08             	mov    %eax,0x8(%ebx)
579a59:	8b c3                	mov    %ebx,%eax
579a5b:	89 53 0c             	mov    %edx,0xc(%ebx)
579a5e:	5b                   	pop    %ebx
579a5f:	c3                   	ret
579a60:	53                   	push   %ebx
579a61:	56                   	push   %esi
579a62:	8b da                	mov    %edx,%ebx
579a64:	8b f0                	mov    %eax,%esi
579a66:	8b 03                	mov    (%ebx),%eax
579a68:	8b 16                	mov    (%esi),%edx
579a6a:	3b c2                	cmp    %edx,%eax
579a6c:	75 0a                	jne    0x579a78
579a6e:	8b 4b 04             	mov    0x4(%ebx),%ecx
579a71:	8b 46 04             	mov    0x4(%esi),%eax
579a74:	3b c8                	cmp    %eax,%ecx
579a76:	74 17                	je     0x579a8f
579a78:	68 ff 00 00 00       	push   $0xff
579a7d:	68 ee 2c 6a 00       	push   $0x6a2cee
579a82:	68 95 2c 6a 00       	push   $0x6a2c95
579a87:	e8 b4 10 fe ff       	call   0x55ab40
579a8c:	83 c4 0c             	add    $0xc,%esp
579a8f:	8b 4b 08             	mov    0x8(%ebx),%ecx
579a92:	8b 53 0c             	mov    0xc(%ebx),%edx
579a95:	8b 46 0c             	mov    0xc(%esi),%eax
579a98:	eb 18                	jmp    0x579ab2
579a9a:	8b 5a 04             	mov    0x4(%edx),%ebx
579a9d:	89 58 04             	mov    %ebx,0x4(%eax)
579aa0:	8b 5a 08             	mov    0x8(%edx),%ebx
579aa3:	89 58 08             	mov    %ebx,0x8(%eax)
579aa6:	8b 5a 0c             	mov    0xc(%edx),%ebx
579aa9:	89 58 0c             	mov    %ebx,0xc(%eax)
579aac:	83 c0 10             	add    $0x10,%eax
579aaf:	83 c2 10             	add    $0x10,%edx
579ab2:	49                   	dec    %ecx
579ab3:	79 e5                	jns    0x579a9a
579ab5:	5e                   	pop    %esi
579ab6:	5b                   	pop    %ebx
579ab7:	c3                   	ret
579ab8:	8b 50 08             	mov    0x8(%eax),%edx
579abb:	8b 40 0c             	mov    0xc(%eax),%eax
579abe:	eb 14                	jmp    0x579ad4
579ac0:	c7 40 04 ff ff ff 7f 	movl   $0x7fffffff,0x4(%eax)
579ac7:	33 c9                	xor    %ecx,%ecx
579ac9:	89 48 08             	mov    %ecx,0x8(%eax)
579acc:	33 c9                	xor    %ecx,%ecx
579ace:	89 48 0c             	mov    %ecx,0xc(%eax)
579ad1:	83 c0 10             	add    $0x10,%eax
579ad4:	4a                   	dec    %edx
579ad5:	79 e9                	jns    0x579ac0
579ad7:	c3                   	ret
579ad8:	53                   	push   %ebx
579ad9:	56                   	push   %esi
579ada:	8b d9                	mov    %ecx,%ebx
579adc:	8b f2                	mov    %edx,%esi
579ade:	85 db                	test   %ebx,%ebx
579ae0:	7d 17                	jge    0x579af9
579ae2:	68 26 01 00 00       	push   $0x126
579ae7:	68 07 2d 6a 00       	push   $0x6a2d07
579aec:	68 fc 2c 6a 00       	push   $0x6a2cfc
579af1:	e8 4a 10 fe ff       	call   0x55ab40
579af6:	83 c4 0c             	add    $0xc,%esp
579af9:	8b c6                	mov    %esi,%eax
579afb:	eb 05                	jmp    0x579b02
579afd:	89 58 04             	mov    %ebx,0x4(%eax)
579b00:	8b 00                	mov    (%eax),%eax
579b02:	85 c0                	test   %eax,%eax
579b04:	74 07                	je     0x579b0d
579b06:	8b 50 04             	mov    0x4(%eax),%edx
579b09:	3b da                	cmp    %edx,%ebx
579b0b:	7c f0                	jl     0x579afd
579b0d:	5e                   	pop    %esi
579b0e:	5b                   	pop    %ebx
579b0f:	c3                   	ret
579b10:	c1 e2 04             	shl    $0x4,%edx
579b13:	8b 40 0c             	mov    0xc(%eax),%eax
579b16:	03 d0                	add    %eax,%edx
579b18:	8b c2                	mov    %edx,%eax
579b1a:	c3                   	ret
579b1b:	90                   	nop
579b1c:	55                   	push   %ebp
579b1d:	8b ec                	mov    %esp,%ebp
579b1f:	81 c4 78 ff ff ff    	add    $0xffffff78,%esp
579b25:	53                   	push   %ebx
579b26:	56                   	push   %esi
579b27:	57                   	push   %edi
579b28:	89 4d f8             	mov    %ecx,-0x8(%ebp)
579b2b:	89 55 fc             	mov    %edx,-0x4(%ebp)
579b2e:	8b 5d 08             	mov    0x8(%ebp),%ebx
579b31:	8b 45 fc             	mov    -0x4(%ebp),%eax
579b34:	85 c0                	test   %eax,%eax
579b36:	75 17                	jne    0x579b4f
579b38:	68 40 01 00 00       	push   $0x140
579b3d:	68 1a 2d 6a 00       	push   $0x6a2d1a
579b42:	68 15 2d 6a 00       	push   $0x6a2d15
579b47:	e8 f4 0f fe ff       	call   0x55ab40
579b4c:	83 c4 0c             	add    $0xc,%esp
579b4f:	8b 55 f8             	mov    -0x8(%ebp),%edx
579b52:	85 d2                	test   %edx,%edx
579b54:	7d 17                	jge    0x579b6d
579b56:	68 41 01 00 00       	push   $0x141
579b5b:	68 37 2d 6a 00       	push   $0x6a2d37
579b60:	68 28 2d 6a 00       	push   $0x6a2d28
579b65:	e8 d6 0f fe ff       	call   0x55ab40
579b6a:	83 c4 0c             	add    $0xc,%esp
579b6d:	8d 8d 78 ff ff ff    	lea    -0x88(%ebp),%ecx
579b73:	89 4d f4             	mov    %ecx,-0xc(%ebp)
579b76:	8b 75 fc             	mov    -0x4(%ebp),%esi
579b79:	eb 0b                	jmp    0x579b86
579b7b:	8b 45 f4             	mov    -0xc(%ebp),%eax
579b7e:	89 30                	mov    %esi,(%eax)
579b80:	83 45 f4 04          	addl   $0x4,-0xc(%ebp)
579b84:	8b 36                	mov    (%esi),%esi
579b86:	8b 16                	mov    (%esi),%edx
579b88:	85 d2                	test   %edx,%edx
579b8a:	75 ef                	jne    0x579b7b
579b8c:	33 ff                	xor    %edi,%edi
579b8e:	8b 46 08             	mov    0x8(%esi),%eax
579b91:	3b f8                	cmp    %eax,%edi
579b93:	7e 05                	jle    0x579b9a
579b95:	89 7e 08             	mov    %edi,0x8(%esi)
579b98:	eb 03                	jmp    0x579b9d
579b9a:	8b 7e 08             	mov    0x8(%esi),%edi
579b9d:	8b 45 f8             	mov    -0x8(%ebp),%eax
579ba0:	3b f8                	cmp    %eax,%edi
579ba2:	0f 8d 22 02 00 00    	jge    0x579dca
579ba8:	8b 56 04             	mov    0x4(%esi),%edx
579bab:	3b fa                	cmp    %edx,%edi
579bad:	0f 8c 16 01 00 00    	jl     0x579cc9
579bb3:	8b 4e 0c             	mov    0xc(%esi),%ecx
579bb6:	85 c9                	test   %ecx,%ecx
579bb8:	0f 85 0c 02 00 00    	jne    0x579dca
579bbe:	f6 43 10 02          	testb  $0x2,0x10(%ebx)
579bc2:	75 17                	jne    0x579bdb
579bc4:	68 58 01 00 00       	push   $0x158
579bc9:	68 6c 2d 6a 00       	push   $0x6a2d6c
579bce:	68 45 2d 6a 00       	push   $0x6a2d45
579bd3:	e8 68 0f fe ff       	call   0x55ab40
579bd8:	83 c4 0c             	add    $0xc,%esp
579bdb:	ff 4b 08             	decl   0x8(%ebx)
579bde:	0f 89 bb 00 00 00    	jns    0x579c9f
579be4:	66 8b 43 04          	mov    0x4(%ebx),%ax
579be8:	c1 e0 08             	shl    $0x8,%eax
579beb:	66 25 ff ff          	and    $0xffff,%ax
579bef:	66 89 43 04          	mov    %ax,0x4(%ebx)
579bf3:	66 81 7b 04 00 ff    	cmpw   $0xff00,0x4(%ebx)
579bf9:	75 07                	jne    0x579c02
579bfb:	ba 06 00 00 00       	mov    $0x6,%edx
579c00:	eb 05                	jmp    0x579c07
579c02:	ba 07 00 00 00       	mov    $0x7,%edx
579c07:	66 b8 01 00          	mov    $0x1,%ax
579c0b:	89 53 08             	mov    %edx,0x8(%ebx)
579c0e:	8b 4b 08             	mov    0x8(%ebx),%ecx
579c11:	66 d3 e0             	shl    %cl,%ax
579c14:	66 09 43 04          	or     %ax,0x4(%ebx)
579c18:	8b 43 0c             	mov    0xc(%ebx),%eax
579c1b:	f6 40 08 07          	testb  $0x7,0x8(%eax)
579c1f:	75 6c                	jne    0x579c8d
579c21:	8b 53 0c             	mov    0xc(%ebx),%edx
579c24:	8b 4a 40             	mov    0x40(%edx),%ecx
579c27:	85 c9                	test   %ecx,%ecx
579c29:	7c 1c                	jl     0x579c47
579c2b:	8b 43 0c             	mov    0xc(%ebx),%eax
579c2e:	8b 4b 0c             	mov    0xc(%ebx),%ecx
579c31:	8b 50 40             	mov    0x40(%eax),%edx
579c34:	8b 41 3c             	mov    0x3c(%ecx),%eax
579c37:	3b d0                	cmp    %eax,%edx
579c39:	7f 0c                	jg     0x579c47
579c3b:	8b 53 0c             	mov    0xc(%ebx),%edx
579c3e:	83 4a 08 04          	orl    $0x4,0x8(%edx)
579c42:	83 c9 ff             	or     $0xffffffff,%ecx
579c45:	eb 49                	jmp    0x579c90
579c47:	8b 43 0c             	mov    0xc(%ebx),%eax
579c4a:	83 48 04 20          	orl    $0x20,0x4(%eax)
579c4e:	8b 53 0c             	mov    0xc(%ebx),%edx
579c51:	ff 4a 1c             	decl   0x1c(%edx)
579c54:	79 19                	jns    0x579c6f
579c56:	0f b7 53 04          	movzwl 0x4(%ebx),%edx
579c5a:	c1 fa 08             	sar    $0x8,%edx
579c5d:	8b 43 0c             	mov    0xc(%ebx),%eax
579c60:	81 e2 ff 00 00 00    	and    $0xff,%edx
579c66:	e8 ad f1 ff ff       	call   0x578e18
579c6b:	8b c8                	mov    %eax,%ecx
579c6d:	eb 21                	jmp    0x579c90
579c6f:	8b 43 0c             	mov    0xc(%ebx),%eax
579c72:	ff 40 3c             	incl   0x3c(%eax)
579c75:	8b 53 0c             	mov    0xc(%ebx),%edx
579c78:	8b 4a 18             	mov    0x18(%edx),%ecx
579c7b:	ff 42 18             	incl   0x18(%edx)
579c7e:	0f b7 43 04          	movzwl 0x4(%ebx),%eax
579c82:	c1 f8 08             	sar    $0x8,%eax
579c85:	88 01                	mov    %al,(%ecx)
579c87:	33 c9                	xor    %ecx,%ecx
579c89:	8a c8                	mov    %al,%cl
579c8b:	eb 03                	jmp    0x579c90
579c8d:	83 c9 ff             	or     $0xffffffff,%ecx
579c90:	41                   	inc    %ecx
579c91:	75 05                	jne    0x579c98
579c93:	83 c8 ff             	or     $0xffffffff,%eax
579c96:	eb 1a                	jmp    0x579cb2
579c98:	b8 01 00 00 00       	mov    $0x1,%eax
579c9d:	eb 13                	jmp    0x579cb2
579c9f:	66 ba 01 00          	mov    $0x1,%dx
579ca3:	8b 4b 08             	mov    0x8(%ebx),%ecx
579ca6:	66 d3 e2             	shl    %cl,%dx
579ca9:	66 09 53 04          	or     %dx,0x4(%ebx)
579cad:	b8 01 00 00 00       	mov    $0x1,%eax
579cb2:	40                   	inc    %eax
579cb3:	75 08                	jne    0x579cbd
579cb5:	83 c8 ff             	or     $0xffffffff,%eax
579cb8:	e9 41 01 00 00       	jmp    0x579dfe
579cbd:	c7 46 0c 01 00 00 00 	movl   $0x1,0xc(%esi)
579cc4:	e9 01 01 00 00       	jmp    0x579dca
579cc9:	f6 43 10 02          	testb  $0x2,0x10(%ebx)
579ccd:	75 17                	jne    0x579ce6
579ccf:	68 5f 01 00 00       	push   $0x15f
579cd4:	68 a1 2d 6a 00       	push   $0x6a2da1
579cd9:	68 7a 2d 6a 00       	push   $0x6a2d7a
579cde:	e8 5d 0e fe ff       	call   0x55ab40
579ce3:	83 c4 0c             	add    $0xc,%esp
579ce6:	ff 4b 08             	decl   0x8(%ebx)
579ce9:	0f 89 b9 00 00 00    	jns    0x579da8
579cef:	66 8b 53 04          	mov    0x4(%ebx),%dx
579cf3:	c1 e2 08             	shl    $0x8,%edx
579cf6:	66 81 e2 ff ff       	and    $0xffff,%dx
579cfb:	66 89 53 04          	mov    %dx,0x4(%ebx)
579cff:	66 81 7b 04 00 ff    	cmpw   $0xff00,0x4(%ebx)
579d05:	75 07                	jne    0x579d0e
579d07:	b9 06 00 00 00       	mov    $0x6,%ecx
579d0c:	eb 05                	jmp    0x579d13
579d0e:	b9 07 00 00 00       	mov    $0x7,%ecx
579d13:	89 4b 08             	mov    %ecx,0x8(%ebx)
579d16:	8b 4b 08             	mov    0x8(%ebx),%ecx
579d19:	33 c0                	xor    %eax,%eax
579d1b:	66 d3 e0             	shl    %cl,%ax
579d1e:	66 09 43 04          	or     %ax,0x4(%ebx)
579d22:	8b 53 0c             	mov    0xc(%ebx),%edx
579d25:	f6 42 08 07          	testb  $0x7,0x8(%edx)
579d29:	75 6e                	jne    0x579d99
579d2b:	8b 43 0c             	mov    0xc(%ebx),%eax
579d2e:	8b 50 40             	mov    0x40(%eax),%edx
579d31:	85 d2                	test   %edx,%edx
579d33:	7c 1c                	jl     0x579d51
579d35:	8b 4b 0c             	mov    0xc(%ebx),%ecx
579d38:	8b 53 0c             	mov    0xc(%ebx),%edx
579d3b:	8b 41 40             	mov    0x40(%ecx),%eax
579d3e:	8b 4a 3c             	mov    0x3c(%edx),%ecx
579d41:	3b c1                	cmp    %ecx,%eax
579d43:	7f 0c                	jg     0x579d51
579d45:	8b 43 0c             	mov    0xc(%ebx),%eax
579d48:	83 48 08 04          	orl    $0x4,0x8(%eax)
579d4c:	83 ca ff             	or     $0xffffffff,%edx
579d4f:	eb 4b                	jmp    0x579d9c
579d51:	8b 4b 0c             	mov    0xc(%ebx),%ecx
579d54:	83 49 04 20          	orl    $0x20,0x4(%ecx)
579d58:	8b 43 0c             	mov    0xc(%ebx),%eax
579d5b:	ff 48 1c             	decl   0x1c(%eax)
579d5e:	79 19                	jns    0x579d79
579d60:	0f b7 53 04          	movzwl 0x4(%ebx),%edx
579d64:	c1 fa 08             	sar    $0x8,%edx
579d67:	8b 43 0c             	mov    0xc(%ebx),%eax
579d6a:	81 e2 ff 00 00 00    	and    $0xff,%edx
579d70:	e8 a3 f0 ff ff       	call   0x578e18
579d75:	8b d0                	mov    %eax,%edx
579d77:	eb 23                	jmp    0x579d9c
579d79:	8b 43 0c             	mov    0xc(%ebx),%eax
579d7c:	ff 40 3c             	incl   0x3c(%eax)
579d7f:	8b 4b 0c             	mov    0xc(%ebx),%ecx
579d82:	8b 41 18             	mov    0x18(%ecx),%eax
579d85:	ff 41 18             	incl   0x18(%ecx)
579d88:	0f b7 53 04          	movzwl 0x4(%ebx),%edx
579d8c:	c1 fa 08             	sar    $0x8,%edx
579d8f:	88 10                	mov    %dl,(%eax)
579d91:	81 e2 ff 00 00 00    	and    $0xff,%edx
579d97:	eb 03                	jmp    0x579d9c
579d99:	83 ca ff             	or     $0xffffffff,%edx
579d9c:	42                   	inc    %edx
579d9d:	75 05                	jne    0x579da4
579d9f:	83 c8 ff             	or     $0xffffffff,%eax
579da2:	eb 12                	jmp    0x579db6
579da4:	33 c0                	xor    %eax,%eax
579da6:	eb 0e                	jmp    0x579db6
579da8:	8b 4b 08             	mov    0x8(%ebx),%ecx
579dab:	33 d2                	xor    %edx,%edx
579dad:	66 d3 e2             	shl    %cl,%dx
579db0:	66 09 53 04          	or     %dx,0x4(%ebx)
579db4:	33 c0                	xor    %eax,%eax
579db6:	40                   	inc    %eax
579db7:	75 05                	jne    0x579dbe
579db9:	83 c8 ff             	or     $0xffffffff,%eax
579dbc:	eb 40                	jmp    0x579dfe
579dbe:	47                   	inc    %edi
579dbf:	8b 55 f8             	mov    -0x8(%ebp),%edx
579dc2:	3b fa                	cmp    %edx,%edi
579dc4:	0f 8c de fd ff ff    	jl     0x579ba8
579dca:	89 7e 08             	mov    %edi,0x8(%esi)
579dcd:	8d 8d 78 ff ff ff    	lea    -0x88(%ebp),%ecx
579dd3:	8b 45 f4             	mov    -0xc(%ebp),%eax
579dd6:	3b c8                	cmp    %eax,%ecx
579dd8:	74 0e                	je     0x579de8
579dda:	83 6d f4 04          	subl   $0x4,-0xc(%ebp)
579dde:	8b 55 f4             	mov    -0xc(%ebp),%edx
579de1:	8b 32                	mov    (%edx),%esi
579de3:	e9 a6 fd ff ff       	jmp    0x579b8e
579de8:	8b 45 fc             	mov    -0x4(%ebp),%eax
579deb:	8b 50 08             	mov    0x8(%eax),%edx
579dee:	8b 4d f8             	mov    -0x8(%ebp),%ecx
579df1:	3b d1                	cmp    %ecx,%edx
579df3:	7d 07                	jge    0x579dfc
579df5:	b8 01 00 00 00       	mov    $0x1,%eax
579dfa:	eb 02                	jmp    0x579dfe
579dfc:	33 c0                	xor    %eax,%eax
579dfe:	5f                   	pop    %edi
579dff:	5e                   	pop    %esi
579e00:	5b                   	pop    %ebx
579e01:	8b e5                	mov    %ebp,%esp
579e03:	5d                   	pop    %ebp
579e04:	c2 04 00             	ret    $0x4
579e07:	90                   	nop
579e08:	55                   	push   %ebp
579e09:	8b ec                	mov    %esp,%ebp
579e0b:	81 c4 78 ff ff ff    	add    $0xffffff78,%esp
579e11:	53                   	push   %ebx
579e12:	56                   	push   %esi
579e13:	57                   	push   %edi
579e14:	89 4d fc             	mov    %ecx,-0x4(%ebp)
579e17:	8b f2                	mov    %edx,%esi
579e19:	8b 5d 08             	mov    0x8(%ebp),%ebx
579e1c:	8b 45 fc             	mov    -0x4(%ebp),%eax
579e1f:	85 c0                	test   %eax,%eax
579e21:	7d 17                	jge    0x579e3a
579e23:	68 7a 01 00 00       	push   $0x17a