UUIDConverter.smali

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


# direct methods
.method static constructor <clinit>()V
    .registers 1

    return-void
.end method

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

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

    return-void
.end method

.method public static convert([B)Ljava/util/UUID;
    .registers 7
    .param p0, "uuidBytes"    # [B

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

    move-result-object v0

    .line 45
    .local v0, "b":Ljava/nio/ByteBuffer;
    sget-object v1, Ljava/nio/ByteOrder;->BIG_ENDIAN:Ljava/nio/ByteOrder;

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

    .line 46
    new-instance v1, Ljava/util/UUID;

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

    move-result-wide v2

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

    move-result-wide v4

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

    return-object v1
.end method

.method public static convert(Ljava/util/UUID;)[B
    .registers 11
    .param p0, "uuid"    # Ljava/util/UUID;

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

    move-result-wide v0

    .line 29
    .local v0, "msb":J
    invoke-virtual {p0}, Ljava/util/UUID;->getLeastSignificantBits()J

    move-result-wide v2

    .line 30
    .local v2, "lsb":J
    const/16 v4, 0x10

    new-array v5, v4, [B

    .line 32
    .local v5, "buffer":[B
    const/4 v6, 0x0

    .local v6, "i":I
    :goto_d
    const/16 v7, 0x8

    if-lt v6, v7, :cond_23

    .line 35
    .end local v6    # "i":I
    const/16 v6, 0x8

    .restart local v6    # "i":I
    :goto_13
    if-lt v6, v4, :cond_16

    .line 39
    .end local v6    # "i":I
    return-object v5

    .line 36
    .restart local v6    # "i":I
    :cond_16
    rsub-int/lit8 v8, v6, 0x7

    mul-int/lit8 v8, v8, 0x8

    ushr-long v8, v2, v8

    long-to-int v9, v8

    int-to-byte v8, v9

    aput-byte v8, v5, v6

    .line 35
    add-int/lit8 v6, v6, 0x1

    goto :goto_13

    .line 33
    :cond_23
    rsub-int/lit8 v8, v6, 0x7

    mul-int/lit8 v8, v8, 0x8

    ushr-long v7, v0, v8

    long-to-int v8, v7

    int-to-byte v7, v8

    aput-byte v7, v5, v6

    .line 32
    add-int/lit8 v6, v6, 0x1

    goto :goto_d
.end method