UUIDConverter.smali

.class public Lcom/googlecode/mp4parser/util/UUIDConverter;
.super Ljava/lang/Object;
.source "SourceFile"


# direct methods
.method public constructor <init>()V
    .registers 1

    invoke-direct {p0}, Ljava/lang/Object;-><init>()V

    return-void
.end method

.method public static convert([B)Ljava/util/UUID;
    .registers 6

    .line 5
    invoke-static {p0}, Ljava/nio/ByteBuffer;->wrap([B)Ljava/nio/ByteBuffer;

    move-result-object p0

    .line 6
    sget-object v0, Ljava/nio/ByteOrder;->BIG_ENDIAN:Ljava/nio/ByteOrder;

    invoke-virtual {p0, v0}, Ljava/nio/ByteBuffer;->order(Ljava/nio/ByteOrder;)Ljava/nio/ByteBuffer;

    .line 7
    new-instance v0, Ljava/util/UUID;

    invoke-virtual {p0}, Ljava/nio/ByteBuffer;->getLong()J

    move-result-wide v1

    invoke-virtual {p0}, Ljava/nio/ByteBuffer;->getLong()J

    move-result-wide v3

    invoke-direct {v0, v1, v2, v3, v4}, Ljava/util/UUID;-><init>(JJ)V

    return-object v0
.end method

.method public static convert(Ljava/util/UUID;)[B
    .registers 10

    .line 1
    invoke-virtual {p0}, Ljava/util/UUID;->getMostSignificantBits()J

    move-result-wide v0

    .line 2
    invoke-virtual {p0}, Ljava/util/UUID;->getLeastSignificantBits()J

    move-result-wide v2

    const/16 p0, 0x10

    new-array v4, p0, [B

    const/4 v5, 0x0

    :goto_d
    const/16 v6, 0x8

    if-ge v5, v6, :cond_1e

    rsub-int/lit8 v7, v5, 0x7

    mul-int/lit8 v7, v7, 0x8

    ushr-long v6, v0, v7

    long-to-int v7, v6

    int-to-byte v6, v7

    .line 3
    aput-byte v6, v4, v5

    add-int/lit8 v5, v5, 0x1

    goto :goto_d

    :cond_1e
    const/16 v0, 0x8

    :goto_20
    if-ge v0, p0, :cond_2f

    rsub-int/lit8 v1, v0, 0x7

    mul-int/lit8 v1, v1, 0x8

    ushr-long v7, v2, v1

    long-to-int v1, v7

    int-to-byte v1, v1

    .line 4
    aput-byte v1, v4, v0

    add-int/lit8 v0, v0, 0x1

    goto :goto_20

    :cond_2f
    return-object v4
.end method