math
Module0x1c54…f9f0
- Move path
- 0x1c54…f9f0::math
- Functions
- 77 public, 0 entry
- Structs
- 0
- Friend modules
- None
Bytecode224 lines
The on-chain disassembly. Offsets are bytecode positions within each function.
// Move bytecode v6
module 1c546375729ff951aae57fbd4711168f5d321df22e00a86f6d9bdf6317baf9f0.math {
public mul_to_u128(Arg0: u64, Arg1: u64): u128 {
B0:
0MoveLoc[0](Arg0: u64)
1CastU128
2MoveLoc[1](Arg1: u64)
3CastU128
4Mul
5Ret
}
public sqrt(Arg0: u128): u64 {
L1: loc0: u64
L2: loc1: u64
L3: loc2: u128
L4: loc3: u128
B0:
0CopyLoc[0](Arg0: u128)
1LdU128(4)
2Lt
3BrFalse(16)
B1:
4MoveLoc[0](Arg0: u128)
5LdU128(0)
6Eq
7BrFalse(11)
B2:
8LdU64(0)
9StLoc[1](loc0: u64)
10Branch(13)
B3:
11LdU64(1)
12StLoc[1](loc0: u64)
B4:
13MoveLoc[1](loc0: u64)
14StLoc[2](loc1: u64)
15Branch(43)
B5:
16CopyLoc[0](Arg0: u128)
17StLoc[4](loc3: u128)
18CopyLoc[0](Arg0: u128)
19LdU128(2)
20Div
21LdU128(1)
22Add
23StLoc[3](loc2: u128)
B6:
24CopyLoc[3](loc2: u128)
25CopyLoc[4](loc3: u128)
26Lt
27BrFalse(40)
B7:
28Branch(29)
B8:
29CopyLoc[3](loc2: u128)
30StLoc[4](loc3: u128)
31CopyLoc[0](Arg0: u128)
32CopyLoc[3](loc2: u128)
33Div
34MoveLoc[3](loc2: u128)
35Add
36LdU128(2)
37Div
38StLoc[3](loc2: u128)
39Branch(24)
B9:
40MoveLoc[4](loc3: u128)
41CastU64
42StLoc[2](loc1: u64)
B10:
43MoveLoc[2](loc1: u64)
44Ret
}
public mul_div(Arg0: u64, Arg1: u64, Arg2: u64): u64 {
L3: loc0: u128
B0:
0CopyLoc[2](Arg2: u64)
1LdU64(0)
2Neq
3BrFalse(5)
B1:
4Branch(7)
B2:
5LdConst[0](u64: 500)
6Abort
B3:
7MoveLoc[0](Arg0: u64)
8CastU128
9MoveLoc[1](Arg1: u64)
10CastU128
11Mul
12MoveLoc[2](Arg2: u64)
13CastU128
14Div
15StLoc[3](loc0: u128)
16CopyLoc[3](loc0: u128)
17LdConst[2](u64: 1844..)
18CastU128
19Gt
20Not
21BrFalse(23)
B4:
22Branch(25)
B5:
23LdConst[1](u64: 501)
24Abort
B6:
25MoveLoc[3](loc0: u128)
26CastU64
27Ret
}
public mul_div_to_u128(Arg0: u64, Arg1: u64, Arg2: u64): u128 {
B0:
0CopyLoc[2](Arg2: u64)
1LdU64(0)
2Neq
3BrFalse(5)
B1:
4Branch(7)
B2:
5LdConst[0](u64: 500)
6Abort
B3:
7MoveLoc[0](Arg0: u64)
8CastU128
9MoveLoc[1](Arg1: u64)
10CastU128
11Mul
12MoveLoc[2](Arg2: u64)
13CastU128
14Div
15Ret
}
public mul_div_to_u256(Arg0: u64, Arg1: u64, Arg2: u64): u256 {
B0:
0CopyLoc[2](Arg2: u64)
1LdU64(0)
2Neq
3BrFalse(5)
B1:
4Branch(7)
B2:
5LdConst[0](u64: 500)
6Abort
B3:
7MoveLoc[0](Arg0: u64)
8CastU256
9MoveLoc[1](Arg1: u64)
10CastU256
11Mul
12MoveLoc[2](Arg2: u64)
13CastU256
14Div
15Ret
}
public mul_div_u256(Arg0: u256, Arg1: u256, Arg2: u256): u256 {
B0:
0CopyLoc[2](Arg2: u256)
1LdU256(0)
2Neq
3BrFalse(5)
B1:
4Branch(7)
B2:
5LdConst[0](u64: 500)
6Abort
B3:
7MoveLoc[0](Arg0: u256)
8MoveLoc[1](Arg1: u256)
9Mul
10MoveLoc[2](Arg2: u256)
11Div
12Ret
}
public mul_div_u128(Arg0: u128, Arg1: u128, Arg2: u128): u64 {
L3: loc0: u128
B0:
0CopyLoc[2](Arg2: u128)
1LdU128(0)
2Neq
3BrFalse(5)
B1:
4Branch(7)
B2:
5LdConst[0](u64: 500)
6Abort
B3:
7MoveLoc[0](Arg0: u128)
8MoveLoc[1](Arg1: u128)
9Mul
10MoveLoc[2](Arg2: u128)
11Div
12StLoc[3](loc0: u128)
13CopyLoc[3](loc0: u128)
14LdConst[2](u64: 1844..)
15CastU128
16Gt
17Not
18BrFalse(20)
B4:
19Branch(22)
B5:
20LdConst[1](u64: 501)
21Abort
B6:
22MoveLoc[3](loc0: u128)
23CastU64
24Ret
}
Constants [
0 => u64: 500
1 => u64: 501
2 => u64: 18446744073709551615
]
}