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

API

tick_math

Module0x67b3…928a
Move path
0x3492…c267::tick_math
Functions
118 public, 0 entry
Structs
0
Friend modules
None
tick_math

Bytecode941 lines

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

// Move bytecode v6
module 3492c874c1e3b3e2984e8c41b589e642d4d0a5d6459e5a9cfc2d52fd7c89c267.tick_math {
use 3492c874c1e3b3e2984e8c41b589e642d4d0a5d6459e5a9cfc2d52fd7c89c267::i32H;
use 03637b7b60978ef4389124f7683456f0050ab015a0590d52b6e6cadb342af34a::full_math_u128;
use 03637b7b60978ef4389124f7683456f0050ab015a0590d52b6e6cadb342af34a::i128;
use 03637b7b60978ef4389124f7683456f0050ab015a0590d52b6e6cadb342af34a::i32;
use 714a63a0dba6da4f017b42d5d0fb78867f18bcde904868e51d951a5a6f5b7f57::i32 as 0i32;
 
public max_sqrt_price(): u128 {
B0:
0LdConst[1](u128: 7922..)
1Ret
}
 
public min_sqrt_price(): u128 {
B0:
0LdConst[2](u128: 4295..)
1Ret
}
 
public max_tick(): I32 {
B0:
0LdConst[0](u32: 443636)
1Call i32::from(u32): I32
2Call i32H::lib_to_mate(I32): I32
3Ret
}
 
public min_tick(): I32 {
B0:
0LdConst[0](u32: 443636)
1Call i32::neg_from(u32): I32
2Call i32H::lib_to_mate(I32): I32
3Ret
}
 
public tick_bound(): u32 {
B0:
0LdConst[0](u32: 443636)
1Ret
}
 
public get_sqrt_price_at_tick(Arg0: I32): u128 {
L1: loc0: bool
L2: loc1: u128
B0:
0CopyLoc[0](Arg0: I32)
1Call min_tick(): I32
2Call i32H::gte(I32, I32): bool
3BrFalse(9)
B1:
4CopyLoc[0](Arg0: I32)
5Call max_tick(): I32
6Call i32H::lte(I32, I32): bool
7StLoc[1](loc0: bool)
8Branch(11)
B2:
9LdFalse
10StLoc[1](loc0: bool)
B3:
11MoveLoc[1](loc0: bool)
12BrFalse(14)
B4:
13Branch(16)
B5:
14LdConst[3](u64: 1)
15Abort
B6:
16CopyLoc[0](Arg0: I32)
17Call i32H::is_neg(I32): bool
18BrFalse(23)
B7:
19MoveLoc[0](Arg0: I32)
20Call get_sqrt_price_at_negative_tick(I32): u128
21StLoc[2](loc1: u128)
22Branch(26)
B8:
23MoveLoc[0](Arg0: I32)
24Call get_sqrt_price_at_positive_tick(I32): u128
25StLoc[2](loc1: u128)
B9:
26MoveLoc[2](loc1: u128)
27Ret
}
 
public is_valid_index(Arg0: I32, Arg1: u32): bool {
L2: loc0: bool
L3: loc1: bool
B0:
0CopyLoc[0](Arg0: I32)
1Call min_tick(): I32
2Call i32H::gte(I32, I32): bool
3BrFalse(9)
B1:
4CopyLoc[0](Arg0: I32)
5Call max_tick(): I32
6Call i32H::lte(I32, I32): bool
7StLoc[2](loc0: bool)
8Branch(11)
B2:
9LdFalse
10StLoc[2](loc0: bool)
B3:
11MoveLoc[2](loc0: bool)
12BrFalse(23)
B4:
13MoveLoc[0](Arg0: I32)
14Call i32H::mate_to_lib(I32): I32
15MoveLoc[1](Arg1: u32)
16Call i32::from(u32): I32
17Call i32::mod(I32, I32): I32
18LdU32(0)
19Call i32::from(u32): I32
20Eq
21StLoc[3](loc1: bool)
22Branch(25)
B5:
23LdFalse
24StLoc[3](loc1: bool)
B6:
25MoveLoc[3](loc1: bool)
26Ret
}
 
public get_tick_at_sqrt_price(Arg0: u128): I32 {
L1: loc0: bool
L2: loc1: u128
L3: loc2: I32
L4: loc3: I32
L5: loc4: u8
L6: loc5: I128
L7: loc6: I128
L8: loc7: u8
L9: loc8: u128
L10: loc9: u8
L11: loc10: I32
L12: loc11: I32
B0:
0CopyLoc[0](Arg0: u128)
1LdConst[2](u128: 4295..)
2Ge
3BrFalse(9)
B1:
4CopyLoc[0](Arg0: u128)
5LdConst[1](u128: 7922..)
6Le
7StLoc[1](loc0: bool)
8Branch(11)
B2:
9LdFalse
10StLoc[1](loc0: bool)
B3:
11MoveLoc[1](loc0: bool)
12BrFalse(14)
B4:
13Branch(16)
B5:
14LdConst[4](u64: 2)
15Abort
B6:
16CopyLoc[0](Arg0: u128)
17StLoc[9](loc8: u128)
18LdU8(0)
19StLoc[8](loc7: u8)
20CopyLoc[9](loc8: u128)
21LdU128(18446744073709551616)
22Ge
23Call as_u8(bool): u8
24LdU8(6)
25Shl
26StLoc[5](loc4: u8)
27MoveLoc[8](loc7: u8)
28CopyLoc[5](loc4: u8)
29BitOr
30StLoc[8](loc7: u8)
31MoveLoc[9](loc8: u128)
32MoveLoc[5](loc4: u8)
33Shr
34StLoc[9](loc8: u128)
35CopyLoc[9](loc8: u128)
36LdU128(4294967296)
37Ge
38Call as_u8(bool): u8
39LdU8(5)
40Shl
41StLoc[5](loc4: u8)
42MoveLoc[8](loc7: u8)
43CopyLoc[5](loc4: u8)
44BitOr
45StLoc[8](loc7: u8)
46MoveLoc[9](loc8: u128)
47MoveLoc[5](loc4: u8)
48Shr
49StLoc[9](loc8: u128)
50CopyLoc[9](loc8: u128)
51LdU128(65536)
52Ge
53Call as_u8(bool): u8
54LdU8(4)
55Shl
56StLoc[5](loc4: u8)
57MoveLoc[8](loc7: u8)
58CopyLoc[5](loc4: u8)
59BitOr
60StLoc[8](loc7: u8)
61MoveLoc[9](loc8: u128)
62MoveLoc[5](loc4: u8)
63Shr
64StLoc[9](loc8: u128)
65CopyLoc[9](loc8: u128)
66LdU128(256)
67Ge
68Call as_u8(bool): u8
69LdU8(3)
70Shl
71StLoc[5](loc4: u8)
72MoveLoc[8](loc7: u8)
73CopyLoc[5](loc4: u8)
74BitOr
75StLoc[8](loc7: u8)
76MoveLoc[9](loc8: u128)
77MoveLoc[5](loc4: u8)
78Shr
79StLoc[9](loc8: u128)
80CopyLoc[9](loc8: u128)
81LdU128(16)
82Ge
83Call as_u8(bool): u8
84LdU8(2)
85Shl
86StLoc[5](loc4: u8)
87MoveLoc[8](loc7: u8)
88CopyLoc[5](loc4: u8)
89BitOr
90StLoc[8](loc7: u8)
91MoveLoc[9](loc8: u128)
92MoveLoc[5](loc4: u8)
93Shr
94StLoc[9](loc8: u128)
95CopyLoc[9](loc8: u128)
96LdU128(4)
97Ge
98Call as_u8(bool): u8
99LdU8(1)
100Shl
101StLoc[5](loc4: u8)
102MoveLoc[8](loc7: u8)
103CopyLoc[5](loc4: u8)
104BitOr
105StLoc[8](loc7: u8)
106MoveLoc[9](loc8: u128)
107MoveLoc[5](loc4: u8)
108Shr
109LdU128(2)
110Ge
111Call as_u8(bool): u8
112LdU8(0)
113Shl
114StLoc[5](loc4: u8)
115MoveLoc[8](loc7: u8)
116MoveLoc[5](loc4: u8)
117BitOr
118StLoc[8](loc7: u8)
119CopyLoc[8](loc7: u8)
120CastU128
121Call i128::from(u128): I128
122LdU128(64)
123Call i128::from(u128): I128
124Call i128::sub(I128, I128): I128
125LdU8(32)
126Call i128::shl(I128, u8): I128
127StLoc[6](loc5: I128)
128CopyLoc[8](loc7: u8)
129LdU8(64)
130Ge
131BrFalse(139)
B7:
132CopyLoc[0](Arg0: u128)
133MoveLoc[8](loc7: u8)
134LdU8(63)
135Sub
136Shr
137StLoc[2](loc1: u128)
138Branch(145)
B8:
139CopyLoc[0](Arg0: u128)
140LdU8(63)
141MoveLoc[8](loc7: u8)
142Sub
143Shl
144StLoc[2](loc1: u128)
B9:
145MoveLoc[2](loc1: u128)
146StLoc[9](loc8: u128)
147LdU8(31)
148StLoc[10](loc9: u8)
B10:
149CopyLoc[10](loc9: u8)
150LdU8(18)
151Ge
152BrFalse(182)
B11:
153Branch(154)
B12:
154CopyLoc[9](loc8: u128)
155MoveLoc[9](loc8: u128)
156Mul
157LdU8(63)
158Shr
159StLoc[9](loc8: u128)
160CopyLoc[9](loc8: u128)
161LdU8(64)
162Shr
163CastU8
164StLoc[5](loc4: u8)
165MoveLoc[6](loc5: I128)
166CopyLoc[5](loc4: u8)
167CastU128
168Call i128::from(u128): I128
169CopyLoc[10](loc9: u8)
170Call i128::shl(I128, u8): I128
171Call i128::or(I128, I128): I128
172StLoc[6](loc5: I128)
173MoveLoc[9](loc8: u128)
174MoveLoc[5](loc4: u8)
175Shr
176StLoc[9](loc8: u128)
177MoveLoc[10](loc9: u8)
178LdU8(1)
179Sub
180StLoc[10](loc9: u8)
181Branch(149)
B13:
182MoveLoc[6](loc5: I128)
183LdU128(59543866431366)
184Call i128::from(u128): I128
185Call i128::mul(I128, I128): I128
186StLoc[7](loc6: I128)
187CopyLoc[7](loc6: I128)
188LdU128(184467440737095516)
189Call i128::from(u128): I128
190Call i128::sub(I128, I128): I128
191LdU8(64)
192Call i128::shr(I128, u8): I128
193Call i128::as_i32(I128): I32
194StLoc[12](loc11: I32)
195MoveLoc[7](loc6: I128)
196LdU128(15793534762490258745)
197Call i128::from(u128): I128
198Call i128::add(I128, I128): I128
199LdU8(64)
200Call i128::shr(I128, u8): I128
201Call i128::as_i32(I128): I32
202StLoc[11](loc10: I32)
203CopyLoc[12](loc11: I32)
204CopyLoc[11](loc10: I32)
205Call i32::eq(I32, I32): bool
206BrFalse(210)
B14:
207MoveLoc[12](loc11: I32)
208StLoc[4](loc3: I32)
209Branch(223)
B15:
210CopyLoc[11](loc10: I32)
211Call i32H::lib_to_mate(I32): I32
212Call get_sqrt_price_at_tick(I32): u128
213MoveLoc[0](Arg0: u128)
214Le
215BrFalse(219)
B16:
216MoveLoc[11](loc10: I32)
217StLoc[3](loc2: I32)
218Branch(221)
B17:
219MoveLoc[12](loc11: I32)
220StLoc[3](loc2: I32)
B18:
221MoveLoc[3](loc2: I32)
222StLoc[4](loc3: I32)
B19:
223MoveLoc[4](loc3: I32)
224Call i32H::lib_to_mate(I32): I32
225Ret
}
 
as_u8(Arg0: bool): u8 {
L1: loc0: u8
B0:
0MoveLoc[0](Arg0: bool)
1BrFalse(5)
B1:
2LdU8(1)
3StLoc[1](loc0: u8)
4Branch(7)
B2:
5LdU8(0)
6StLoc[1](loc0: u8)
B3:
7MoveLoc[1](loc0: u8)
8Ret
}
 
get_sqrt_price_at_negative_tick(Arg0: I32): u128 {
L1: loc0: u128
L2: loc1: u32
L3: loc2: u128
B0:
0MoveLoc[0](Arg0: I32)
1Call i32H::mate_to_lib(I32): I32
2Call i32::abs(I32): I32
3Call i32::as_u32(I32): u32
4StLoc[2](loc1: u32)
5CopyLoc[2](loc1: u32)
6LdU32(1)
7BitAnd
8LdU32(0)
9Neq
10BrFalse(14)
B1:
11LdU128(18445821805675392311)
12StLoc[1](loc0: u128)
13Branch(16)
B2:
14LdU128(18446744073709551616)
15StLoc[1](loc0: u128)
B3:
16MoveLoc[1](loc0: u128)
17StLoc[3](loc2: u128)
18CopyLoc[2](loc1: u32)
19LdU32(2)
20BitAnd
21LdU32(0)
22Neq
23BrFalse(29)
B4:
24MoveLoc[3](loc2: u128)
25LdU128(18444899583751176498)
26LdU8(64)
27Call full_math_u128::mul_shr(u128, u128, u8): u128
28StLoc[3](loc2: u128)
B5:
29CopyLoc[2](loc1: u32)
30LdU32(4)
31BitAnd
32LdU32(0)
33Neq
34BrFalse(40)
B6:
35MoveLoc[3](loc2: u128)
36LdU128(18443055278223354162)
37LdU8(64)
38Call full_math_u128::mul_shr(u128, u128, u8): u128
39StLoc[3](loc2: u128)
B7:
40CopyLoc[2](loc1: u32)
41LdU32(8)
42BitAnd
43LdU32(0)
44Neq
45BrFalse(51)
B8:
46MoveLoc[3](loc2: u128)
47LdU128(18439367220385604838)
48LdU8(64)
49Call full_math_u128::mul_shr(u128, u128, u8): u128
50StLoc[3](loc2: u128)
B9:
51CopyLoc[2](loc1: u32)
52LdU32(16)
53BitAnd
54LdU32(0)
55Neq
56BrFalse(62)
B10:
57MoveLoc[3](loc2: u128)
58LdU128(18431993317065449817)
59LdU8(64)
60Call full_math_u128::mul_shr(u128, u128, u8): u128
61StLoc[3](loc2: u128)
B11:
62CopyLoc[2](loc1: u32)
63LdU32(32)
64BitAnd
65LdU32(0)
66Neq
67BrFalse(73)
B12:
68MoveLoc[3](loc2: u128)
69LdU128(18417254355718160513)
70LdU8(64)
71Call full_math_u128::mul_shr(u128, u128, u8): u128
72StLoc[3](loc2: u128)
B13:
73CopyLoc[2](loc1: u32)
74LdU32(64)
75BitAnd
76LdU32(0)
77Neq
78BrFalse(84)
B14:
79MoveLoc[3](loc2: u128)
80LdU128(18387811781193591352)
81LdU8(64)
82Call full_math_u128::mul_shr(u128, u128, u8): u128
83StLoc[3](loc2: u128)
B15:
84CopyLoc[2](loc1: u32)
85LdU32(128)
86BitAnd
87LdU32(0)
88Neq
89BrFalse(95)
B16:
90MoveLoc[3](loc2: u128)
91LdU128(18329067761203520168)
92LdU8(64)
93Call full_math_u128::mul_shr(u128, u128, u8): u128
94StLoc[3](loc2: u128)
B17:
95CopyLoc[2](loc1: u32)
96LdU32(256)
97BitAnd
98LdU32(0)
99Neq
100BrFalse(106)
B18:
101MoveLoc[3](loc2: u128)
102LdU128(18212142134806087854)
103LdU8(64)
104Call full_math_u128::mul_shr(u128, u128, u8): u128
105StLoc[3](loc2: u128)
B19:
106CopyLoc[2](loc1: u32)
107LdU32(512)
108BitAnd
109LdU32(0)
110Neq
111BrFalse(117)
B20:
112MoveLoc[3](loc2: u128)
113LdU128(17980523815641551639)
114LdU8(64)
115Call full_math_u128::mul_shr(u128, u128, u8): u128
116StLoc[3](loc2: u128)
B21:
117CopyLoc[2](loc1: u32)
118LdU32(1024)
119BitAnd
120LdU32(0)
121Neq
122BrFalse(128)
B22:
123MoveLoc[3](loc2: u128)
124LdU128(17526086738831147013)
125LdU8(64)
126Call full_math_u128::mul_shr(u128, u128, u8): u128
127StLoc[3](loc2: u128)
B23:
128CopyLoc[2](loc1: u32)
129LdU32(2048)
130BitAnd
131LdU32(0)
132Neq
133BrFalse(139)
B24:
134MoveLoc[3](loc2: u128)
135LdU128(16651378430235024244)
136LdU8(64)
137Call full_math_u128::mul_shr(u128, u128, u8): u128
138StLoc[3](loc2: u128)
B25:
139CopyLoc[2](loc1: u32)
140LdU32(4096)
141BitAnd
142LdU32(0)
143Neq
144BrFalse(150)
B26:
145MoveLoc[3](loc2: u128)
146LdU128(15030750278693429944)
147LdU8(64)
148Call full_math_u128::mul_shr(u128, u128, u8): u128
149StLoc[3](loc2: u128)
B27:
150CopyLoc[2](loc1: u32)
151LdU32(8192)
152BitAnd
153LdU32(0)
154Neq
155BrFalse(161)
B28:
156MoveLoc[3](loc2: u128)
157LdU128(12247334978882834399)
158LdU8(64)
159Call full_math_u128::mul_shr(u128, u128, u8): u128
160StLoc[3](loc2: u128)
B29:
161CopyLoc[2](loc1: u32)
162LdU32(16384)
163BitAnd
164LdU32(0)
165Neq
166BrFalse(172)
B30:
167MoveLoc[3](loc2: u128)
168LdU128(8131365268884726200)
169LdU8(64)
170Call full_math_u128::mul_shr(u128, u128, u8): u128
171StLoc[3](loc2: u128)
B31:
172CopyLoc[2](loc1: u32)
173LdU32(32768)
174BitAnd
175LdU32(0)
176Neq
177BrFalse(183)
B32:
178MoveLoc[3](loc2: u128)
179LdU128(3584323654723342297)
180LdU8(64)
181Call full_math_u128::mul_shr(u128, u128, u8): u128
182StLoc[3](loc2: u128)
B33:
183CopyLoc[2](loc1: u32)
184LdU32(65536)
185BitAnd
186LdU32(0)
187Neq
188BrFalse(194)
B34:
189MoveLoc[3](loc2: u128)
190LdU128(696457651847595233)
191LdU8(64)
192Call full_math_u128::mul_shr(u128, u128, u8): u128
193StLoc[3](loc2: u128)
B35:
194CopyLoc[2](loc1: u32)
195LdU32(131072)
196BitAnd
197LdU32(0)
198Neq
199BrFalse(205)
B36:
200MoveLoc[3](loc2: u128)
201LdU128(26294789957452057)
202LdU8(64)
203Call full_math_u128::mul_shr(u128, u128, u8): u128
204StLoc[3](loc2: u128)
B37:
205MoveLoc[2](loc1: u32)
206LdU32(262144)
207BitAnd
208LdU32(0)
209Neq
210BrFalse(216)
B38:
211MoveLoc[3](loc2: u128)
212LdU128(37481735321082)
213LdU8(64)
214Call full_math_u128::mul_shr(u128, u128, u8): u128
215StLoc[3](loc2: u128)
B39:
216MoveLoc[3](loc2: u128)
217Ret
}
 
get_sqrt_price_at_positive_tick(Arg0: I32): u128 {
L1: loc0: u128
L2: loc1: u32
L3: loc2: u128
B0:
0MoveLoc[0](Arg0: I32)
1Call i32H::mate_to_lib(I32): I32
2Call i32::abs(I32): I32
3Call i32::as_u32(I32): u32
4StLoc[2](loc1: u32)
5CopyLoc[2](loc1: u32)
6LdU32(1)
7BitAnd
8LdU32(0)
9Neq
10BrFalse(14)
B1:
11LdU128(79232123823359799118286999567)
12StLoc[1](loc0: u128)
13Branch(16)
B2:
14LdU128(79228162514264337593543950336)
15StLoc[1](loc0: u128)
B3:
16MoveLoc[1](loc0: u128)
17StLoc[3](loc2: u128)
18CopyLoc[2](loc1: u32)
19LdU32(2)
20BitAnd
21LdU32(0)
22Neq
23BrFalse(29)
B4:
24MoveLoc[3](loc2: u128)
25LdU128(79236085330515764027303304731)
26LdU8(96)
27Call full_math_u128::mul_shr(u128, u128, u8): u128
28StLoc[3](loc2: u128)
B5:
29CopyLoc[2](loc1: u32)
30LdU32(4)
31BitAnd
32LdU32(0)
33Neq
34BrFalse(40)
B6:
35MoveLoc[3](loc2: u128)
36LdU128(79244008939048815603706035061)
37LdU8(96)
38Call full_math_u128::mul_shr(u128, u128, u8): u128
39StLoc[3](loc2: u128)
B7:
40CopyLoc[2](loc1: u32)
41LdU32(8)
42BitAnd
43LdU32(0)
44Neq
45BrFalse(51)
B8:
46MoveLoc[3](loc2: u128)
47LdU128(79259858533276714757314932305)
48LdU8(96)
49Call full_math_u128::mul_shr(u128, u128, u8): u128
50StLoc[3](loc2: u128)
B9:
51CopyLoc[2](loc1: u32)
52LdU32(16)
53BitAnd
54LdU32(0)
55Neq
56BrFalse(62)
B10:
57MoveLoc[3](loc2: u128)
58LdU128(79291567232598584799939703904)
59LdU8(96)
60Call full_math_u128::mul_shr(u128, u128, u8): u128
61StLoc[3](loc2: u128)
B11:
62CopyLoc[2](loc1: u32)
63LdU32(32)
64BitAnd
65LdU32(0)
66Neq
67BrFalse(73)
B12:
68MoveLoc[3](loc2: u128)
69LdU128(79355022692464371645785046466)
70LdU8(96)
71Call full_math_u128::mul_shr(u128, u128, u8): u128
72StLoc[3](loc2: u128)
B13:
73CopyLoc[2](loc1: u32)
74LdU32(64)
75BitAnd
76LdU32(0)
77Neq
78BrFalse(84)
B14:
79MoveLoc[3](loc2: u128)
80LdU128(79482085999252804386437311141)
81LdU8(96)
82Call full_math_u128::mul_shr(u128, u128, u8): u128
83StLoc[3](loc2: u128)
B15:
84CopyLoc[2](loc1: u32)
85LdU32(128)
86BitAnd
87LdU32(0)
88Neq
89BrFalse(95)
B16:
90MoveLoc[3](loc2: u128)
91LdU128(79736823300114093921829183326)
92LdU8(96)
93Call full_math_u128::mul_shr(u128, u128, u8): u128
94StLoc[3](loc2: u128)
B17:
95CopyLoc[2](loc1: u32)
96LdU32(256)
97BitAnd
98LdU32(0)
99Neq
100BrFalse(106)
B18:
101MoveLoc[3](loc2: u128)
102LdU128(80248749790819932309965073892)
103LdU8(96)
104Call full_math_u128::mul_shr(u128, u128, u8): u128
105StLoc[3](loc2: u128)
B19:
106CopyLoc[2](loc1: u32)
107LdU32(512)
108BitAnd
109LdU32(0)
110Neq
111BrFalse(117)
B20:
112MoveLoc[3](loc2: u128)
113LdU128(81282483887344747381513967011)
114LdU8(96)
115Call full_math_u128::mul_shr(u128, u128, u8): u128
116StLoc[3](loc2: u128)
B21:
117CopyLoc[2](loc1: u32)
118LdU32(1024)
119BitAnd
120LdU32(0)
121Neq
122BrFalse(128)
B22:
123MoveLoc[3](loc2: u128)
124LdU128(83390072131320151908154831281)
125LdU8(96)
126Call full_math_u128::mul_shr(u128, u128, u8): u128
127StLoc[3](loc2: u128)
B23:
128CopyLoc[2](loc1: u32)
129LdU32(2048)
130BitAnd
131LdU32(0)
132Neq
133BrFalse(139)
B24:
134MoveLoc[3](loc2: u128)
135LdU128(87770609709833776024991924138)
136LdU8(96)
137Call full_math_u128::mul_shr(u128, u128, u8): u128
138StLoc[3](loc2: u128)
B25:
139CopyLoc[2](loc1: u32)
140LdU32(4096)
141BitAnd
142LdU32(0)
143Neq
144BrFalse(150)
B26:
145MoveLoc[3](loc2: u128)
146LdU128(97234110755111693312479820773)
147LdU8(96)
148Call full_math_u128::mul_shr(u128, u128, u8): u128
149StLoc[3](loc2: u128)
B27:
150CopyLoc[2](loc1: u32)
151LdU32(8192)
152BitAnd
153LdU32(0)
154Neq
155BrFalse(161)
B28:
156MoveLoc[3](loc2: u128)
157LdU128(119332217159966728226237229890)
158LdU8(96)
159Call full_math_u128::mul_shr(u128, u128, u8): u128
160StLoc[3](loc2: u128)
B29:
161CopyLoc[2](loc1: u32)
162LdU32(16384)
163BitAnd
164LdU32(0)
165Neq
166BrFalse(172)
B30:
167MoveLoc[3](loc2: u128)
168LdU128(179736315981702064433883588727)
169LdU8(96)
170Call full_math_u128::mul_shr(u128, u128, u8): u128
171StLoc[3](loc2: u128)
B31:
172CopyLoc[2](loc1: u32)
173LdU32(32768)
174BitAnd
175LdU32(0)
176Neq
177BrFalse(183)
B32:
178MoveLoc[3](loc2: u128)
179LdU128(407748233172238350107850275304)
180LdU8(96)
181Call full_math_u128::mul_shr(u128, u128, u8): u128
182StLoc[3](loc2: u128)
B33:
183CopyLoc[2](loc1: u32)
184LdU32(65536)
185BitAnd
186LdU32(0)
187Neq
188BrFalse(194)
B34:
189MoveLoc[3](loc2: u128)
190LdU128(2098478828474011932436660412517)
191LdU8(96)
192Call full_math_u128::mul_shr(u128, u128, u8): u128
193StLoc[3](loc2: u128)
B35:
194CopyLoc[2](loc1: u32)
195LdU32(131072)
196BitAnd
197LdU32(0)
198Neq
199BrFalse(205)
B36:
200MoveLoc[3](loc2: u128)
201LdU128(55581415166113811149459800483533)
202LdU8(96)
203Call full_math_u128::mul_shr(u128, u128, u8): u128
204StLoc[3](loc2: u128)
B37:
205MoveLoc[2](loc1: u32)
206LdU32(262144)
207BitAnd
208LdU32(0)
209Neq
210BrFalse(216)
B38:
211MoveLoc[3](loc2: u128)
212LdU128(38992368544603139932233054999993551)
213LdU8(96)
214Call full_math_u128::mul_shr(u128, u128, u8): u128
215StLoc[3](loc2: u128)
B39:
216MoveLoc[3](loc2: u128)
217LdU8(32)
218Shr
219Ret
}
 
Constants [
0 => u32: 443636
1 => u128: 79226673515401279992447579055
2 => u128: 4295048016
3 => u64: 1
4 => u64: 2
]
}