I'm currently doing some research on smali/"code obfuscator" and I'm trying to get familar with the decompiled source codes at the moment. For this I created a simple app and decompiled it by smali.
I'm trying to understand the decompiled source code now to improve and compare the security (against decompiling) after using a code obfuscator later. While most of the smali source code is not that difficult, I'm still having sometimes problems with the format conversion of figures.
May you explain to me e.g. the following line. I guess it should have a value of five, but I'm not sure, which kind of binary format this is. How to calculate it 0x4014 = 5 ???
const-wide/high16 v0, 0x4014       // 100000000010100        (5 = 101)
Attached are the full java and smali code sources of this test function :
Java source:
 boolean test(int a, double d) {
        if (a < 5 && d < 5)
            return true;
        else 
            return false;
    }
Smali source:
.method test(ID)Z
    .locals 2
    .parameter "a"
    .parameter "d"
    .prologue
    .line 28
    const/4 v0, 0x5
    if-ge p1, v0, :cond_0
    const-wide/high16 v0, 0x4014
    cmpg-double v0, p2, v0
    if-gez v0, :cond_0
    .line 29
    const/4 v0, 0x1
    .line 31
    :goto_0
    return v0
    :cond_0
    const/4 v0, 0x0
    goto :goto_0
.end method