Search by name, SuiNS, address, digest, object ID, coin type or checkpoint.

API

math

Module0x2277…8df1
Move path
0x80f9…3b18::math
Functions
88 public, 0 entry
Structs
0
Friend modules
None
math

Bytecode301 lines

The on-chain disassembly. Offsets are bytecode positions within each function.

// Move bytecode v6
module 80f9b6215ae18ed1a77f5d5153c4327fd48e17dbbcd12cde06b94dd2b95e3b18.math {
 
public x_is_percent_so_to_100_need(Arg0: u64, Arg1: u64): u64 {
L2: loc0: bool
B0:
0CopyLoc[0](Arg0: u64)
1LdU64(0)
2Eq
3BrFalse(7)
B1:
4LdTrue
5StLoc[2](loc0: bool)
6Branch(18)
B2:
7CopyLoc[1](Arg1: u64)
8LdU64(0)
9Eq
10BrFalse(14)
B3:
11LdTrue
12StLoc[2](loc0: bool)
13Branch(18)
B4:
14CopyLoc[1](Arg1: u64)
15LdU64(100)
16Gt
17StLoc[2](loc0: bool)
B5:
18MoveLoc[2](loc0: bool)
19BrFalse(22)
B6:
20LdU64(0)
21Ret
B7:
22CopyLoc[0](Arg0: u64)
23LdU64(100)
24Mul
25MoveLoc[1](Arg1: u64)
26Div
27MoveLoc[0](Arg0: u64)
28Sub
29Ret
}
 
public try_mul_div_down(Arg0: u256, Arg1: u256, Arg2: u256): bool * u256 {
B0:
0CopyLoc[2](Arg2: u256)
1LdU256(0)
2Eq
3BrFalse(7)
B1:
4LdFalse
5LdU256(0)
6Ret
B2:
7CopyLoc[0](Arg0: u256)
8CopyLoc[1](Arg1: u256)
9Call try_mul(u256, u256): bool * u256
10Pop
11Not
12BrFalse(16)
B3:
13LdFalse
14LdU256(0)
15Ret
B4:
16LdTrue
17MoveLoc[0](Arg0: u256)
18MoveLoc[1](Arg1: u256)
19MoveLoc[2](Arg2: u256)
20Call mul_div_down(u256, u256, u256): u256
21Ret
}
 
public try_mul(Arg0: u256, Arg1: u256): bool * u256 {
L2: loc0: bool
L3: loc1: u256
B0:
0CopyLoc[1](Arg1: u256)
1LdU256(0)
2Eq
3BrFalse(7)
B1:
4LdTrue
5LdU256(0)
6Ret
B2:
7CopyLoc[0](Arg0: u256)
8LdConst[3](u256: 1157..)
9CopyLoc[1](Arg1: u256)
10Div
11Gt
12BrFalse(18)
B3:
13LdFalse
14LdU256(0)
15StLoc[3](loc1: u256)
16StLoc[2](loc0: bool)
17Branch(24)
B4:
18LdTrue
19MoveLoc[0](Arg0: u256)
20MoveLoc[1](Arg1: u256)
21Mul
22StLoc[3](loc1: u256)
23StLoc[2](loc0: bool)
B5:
24MoveLoc[2](loc0: bool)
25MoveLoc[3](loc1: u256)
26Ret
}
 
public mul_div_down(Arg0: u256, Arg1: u256, Arg2: u256): u256 {
B0:
0MoveLoc[0](Arg0: u256)
1MoveLoc[1](Arg1: u256)
2Mul
3MoveLoc[2](Arg2: u256)
4Div
5Ret
}
 
public mul_factor(Arg0: u64, Arg1: u64, Arg2: u64): u64 {
B0:
0CopyLoc[2](Arg2: u64)
1LdU64(0)
2Gt
3BrFalse(5)
B1:
4Branch(7)
B2:
5LdConst[0](u64: 0)
6Abort
B3:
7MoveLoc[0](Arg0: u64)
8CastU128
9MoveLoc[1](Arg1: u64)
10CastU128
11Mul
12CopyLoc[2](Arg2: u64)
13CastU128
14LdU128(2)
15Div
16Add
17MoveLoc[2](Arg2: u64)
18CastU128
19Div
20CastU64
21Ret
}
 
public mul_factor_u128(Arg0: u128, Arg1: u128, Arg2: u128): u128 {
B0:
0CopyLoc[2](Arg2: u128)
1LdU128(0)
2Gt
3BrFalse(5)
B1:
4Branch(7)
B2:
5LdConst[0](u64: 0)
6Abort
B3:
7MoveLoc[0](Arg0: u128)
8MoveLoc[1](Arg1: u128)
9Mul
10CopyLoc[2](Arg2: u128)
11LdU128(2)
12Div
13Add
14MoveLoc[2](Arg2: u128)
15Div
16Ret
}
 
public compute_weight(Arg0: u64, Arg1: u64, Arg2: u64, Arg3: u64): u64 {
L4: loc0: bool
L5: loc1: u64
B0:
0CopyLoc[1](Arg1: u64)
1MoveLoc[2](Arg2: u64)
2Ge
3BrFalse(9)
B1:
4CopyLoc[1](Arg1: u64)
5CopyLoc[3](Arg3: u64)
6Le
7StLoc[4](loc0: bool)
8Branch(11)
B2:
9LdFalse
10StLoc[4](loc0: bool)
B3:
11MoveLoc[4](loc0: bool)
12BrFalse(14)
B4:
13Branch(16)
B5:
14LdConst[1](u64: 1)
15Abort
B6:
16MoveLoc[0](Arg0: u64)
17MoveLoc[1](Arg1: u64)
18MoveLoc[3](Arg3: u64)
19Call mul_factor(u64, u64, u64): u64
20StLoc[5](loc1: u64)
21CopyLoc[5](loc1: u64)
22LdU64(0)
23Gt
24BrFalse(26)
B7:
25Branch(28)
B8:
26LdConst[2](u64: 2)
27Abort
B9:
28MoveLoc[5](loc1: u64)
29Ret
}
 
public has_duplicates<Ty0>(Arg0: &vector<Ty0>): bool {
L1: loc0: u64
L2: loc1: &Ty0
L3: loc2: u64
L4: loc3: u64
L5: loc4: &Ty0
B0:
0CopyLoc[0](Arg0: &vector<Ty0>)
1VecLen(15)
2StLoc[3](loc2: u64)
3LdU64(0)
4StLoc[1](loc0: u64)
B1:
5CopyLoc[1](loc0: u64)
6CopyLoc[3](loc2: u64)
7Lt
8BrFalse(49)
B2:
9Branch(10)
B3:
10CopyLoc[0](Arg0: &vector<Ty0>)
11CopyLoc[1](loc0: u64)
12VecImmBorrow(15)
13StLoc[2](loc1: &Ty0)
14CopyLoc[1](loc0: u64)
15LdU64(1)
16Add
17StLoc[4](loc3: u64)
B4:
18CopyLoc[4](loc3: u64)
19CopyLoc[3](loc2: u64)
20Lt
21BrFalse(42)
B5:
22Branch(23)
B6:
23CopyLoc[0](Arg0: &vector<Ty0>)
24CopyLoc[4](loc3: u64)
25VecImmBorrow(15)
26StLoc[5](loc4: &Ty0)
27CopyLoc[2](loc1: &Ty0)
28MoveLoc[5](loc4: &Ty0)
29Eq
30BrFalse(37)
B7:
31MoveLoc[0](Arg0: &vector<Ty0>)
32Pop
33MoveLoc[2](loc1: &Ty0)
34Pop
35LdTrue
36Ret
B8:
37MoveLoc[4](loc3: u64)
38LdU64(1)
39Add
40StLoc[4](loc3: u64)
41Branch(18)
B9:
42MoveLoc[2](loc1: &Ty0)
43Pop
44MoveLoc[1](loc0: u64)
45LdU64(1)
46Add
47StLoc[1](loc0: u64)
48Branch(5)
B10:
49MoveLoc[0](Arg0: &vector<Ty0>)
50Pop
51LdFalse
52Ret
}
 
Constants [
0 => u64: 0
1 => u64: 1
2 => u64: 2
3 => u256: 115792089237316195423570985008687907853269984665640564039457584007913129639935
]
}