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

API

probe

Module0x9daf…7089
Move path
0x720b…72a7::probe
Functions
4032 public, 0 entry
Structs
1
Friend modules
live
probe

Bytecode3206 lines

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

// Move bytecode v7
module 720b652bb0410ea9d1b4f56c4d15ce1a57bb04796fa145e50100e8f0f27872a7.probe {
use 720b652bb0410ea9d1b4f56c4d15ce1a57bb04796fa145e50100e8f0f27872a7::sizing;
 
struct Probe has drop {
m00: u256,
m10: u256,
m11: u256,
max_in: u256,
size: u64,
gross: u64,
reference: u64,
floor: u64,
quote_size: u64,
quote_amount: u64,
base_left: u64,
best_size: u64,
best_gross: u64,
checking: bool,
cap: u64,
lo: u64,
hi: u64,
hi_known: bool,
model: u64,
smallest: u64,
walks: u8,
walking: bool
}
 
public begin(): Probe {
B0:
0LdU256(1)
1LdU256(0)
2LdU256(1)
3LdConst[4](u256: 1844..)
4LdU64(0)
5LdU64(0)
6LdU64(0)
7LdU64(0)
8LdU64(0)
9LdU64(0)
10LdU64(0)
11LdU64(0)
12LdU64(0)
13LdFalse
14LdU64(0)
15LdU64(0)
16LdU64(0)
17LdFalse
18LdU64(0)
19LdU64(0)
20LdU8(0)
21LdFalse
22Pack[0](Probe)
23Ret
}
 
public fold(Arg0: &mut Probe, Arg1: u256, Arg2: u256, Arg3: u256) {
L4: loc0: bool
B0:
0CopyLoc[1](Arg1: u256)
1LdConst[1](u256: 3402..)
2Ge
3BrFalse(8)
B1:
4Branch(5)
B2:
5LdTrue
6StLoc[4](loc0: bool)
7Branch(12)
B3:
8CopyLoc[3](Arg3: u256)
9LdConst[1](u256: 3402..)
10Ge
11StLoc[4](loc0: bool)
B4:
12MoveLoc[4](loc0: bool)
13BrFalse(35)
B5:
14MoveLoc[1](Arg1: u256)
15LdU8(8)
16Shr
17StLoc[1](Arg1: u256)
18MoveLoc[3](Arg3: u256)
19LdU8(8)
20Shr
21LdU256(1)
22Add
23StLoc[3](Arg3: u256)
24CopyLoc[2](Arg2: u256)
25LdU256(0)
26Neq
27BrFalse(0)
B6:
28MoveLoc[2](Arg2: u256)
29LdU8(8)
30Shr
31LdU256(1)
32Add
33StLoc[2](Arg2: u256)
34Branch(0)
B7:
35MoveLoc[2](Arg2: u256)
36CopyLoc[0](Arg0: &mut Probe)
37ImmBorrowField[0](Probe.m00: u256)
38ReadRef
39Mul
40CopyLoc[3](Arg3: u256)
41CopyLoc[0](Arg0: &mut Probe)
42ImmBorrowField[1](Probe.m10: u256)
43ReadRef
44Mul
45Add
46CopyLoc[0](Arg0: &mut Probe)
47MutBorrowField[1](Probe.m10: u256)
48WriteRef
49MoveLoc[3](Arg3: u256)
50CopyLoc[0](Arg0: &mut Probe)
51ImmBorrowField[2](Probe.m11: u256)
52ReadRef
53Mul
54CopyLoc[0](Arg0: &mut Probe)
55MutBorrowField[2](Probe.m11: u256)
56WriteRef
57MoveLoc[1](Arg1: u256)
58CopyLoc[0](Arg0: &mut Probe)
59ImmBorrowField[0](Probe.m00: u256)
60ReadRef
61Mul
62CopyLoc[0](Arg0: &mut Probe)
63MutBorrowField[0](Probe.m00: u256)
64WriteRef
65MoveLoc[0](Arg0: &mut Probe)
66Call normalise(&mut Probe)
67Ret
}
 
public fold_to(Arg0: &mut Probe, Arg1: u256, Arg2: u256, Arg3: u256, Arg4: u256) {
L5: loc0: u256
L6: loc1: u256
B0:
0CopyLoc[4](Arg4: u256)
1CopyLoc[0](Arg0: &mut Probe)
2ImmBorrowField[1](Probe.m10: u256)
3ReadRef
4Mul
5StLoc[6](loc1: u256)
6CopyLoc[0](Arg0: &mut Probe)
7ImmBorrowField[0](Probe.m00: u256)
8ReadRef
9CopyLoc[6](loc1: u256)
10Gt
11BrFalse(34)
B1:
12MoveLoc[4](Arg4: u256)
13CopyLoc[0](Arg0: &mut Probe)
14ImmBorrowField[2](Probe.m11: u256)
15ReadRef
16Mul
17CopyLoc[0](Arg0: &mut Probe)
18ImmBorrowField[0](Probe.m00: u256)
19ReadRef
20MoveLoc[6](loc1: u256)
21Sub
22Div
23StLoc[5](loc0: u256)
24CopyLoc[5](loc0: u256)
25CopyLoc[0](Arg0: &mut Probe)
26ImmBorrowField[3](Probe.max_in: u256)
27ReadRef
28Lt
29BrFalse(34)
B2:
30MoveLoc[5](loc0: u256)
31CopyLoc[0](Arg0: &mut Probe)
32MutBorrowField[3](Probe.max_in: u256)
33WriteRef
B3:
34MoveLoc[0](Arg0: &mut Probe)
35MoveLoc[1](Arg1: u256)
36MoveLoc[2](Arg2: u256)
37MoveLoc[3](Arg3: u256)
38Call fold(&mut Probe, u256, u256, u256)
39Ret
}
 
public fold_tick(Arg0: &mut Probe, Arg1: u128, Arg2: u128, Arg3: u64, Arg4: bool) {
L5: loc0: bool
L6: loc1: u256
L7: loc2: u256
L8: loc3: u256
L9: loc4: u256
L10: loc5: u256
L11: loc6: u256
L12: loc7: u256
B0:
0CopyLoc[1](Arg1: u128)
1LdU128(0)
2Eq
3BrFalse(7)
B1:
4LdTrue
5StLoc[5](loc0: bool)
6Branch(11)
B2:
7CopyLoc[2](Arg2: u128)
8LdU128(0)
9Eq
10StLoc[5](loc0: bool)
B3:
11MoveLoc[5](loc0: bool)
12BrFalse(16)
B4:
13MoveLoc[0](Arg0: &mut Probe)
14Call fold_closed(&mut Probe)
15Ret
B5:
16MoveLoc[1](Arg1: u128)
17CastU256
18StLoc[10](loc5: u256)
19MoveLoc[2](Arg2: u128)
20CastU256
21StLoc[12](loc7: u256)
22MoveLoc[4](Arg4: bool)
23BrFalse(41)
B6:
24CopyLoc[10](loc5: u256)
25CopyLoc[12](loc7: u256)
26Mul
27LdConst[2](u256: 1844..)
28Div
29MoveLoc[10](loc5: u256)
30LdConst[2](u256: 1844..)
31Mul
32CopyLoc[12](loc7: u256)
33Add
34LdU256(1)
35Sub
36MoveLoc[12](loc7: u256)
37Div
38StLoc[7](loc2: u256)
39StLoc[6](loc1: u256)
40Branch(57)
B7:
41CopyLoc[10](loc5: u256)
42LdConst[2](u256: 1844..)
43Mul
44CopyLoc[12](loc7: u256)
45Div
46MoveLoc[10](loc5: u256)
47MoveLoc[12](loc7: u256)
48Mul
49LdConst[2](u256: 1844..)
50Add
51LdU256(1)
52Sub
53LdConst[2](u256: 1844..)
54Div
55StLoc[7](loc2: u256)
56StLoc[6](loc1: u256)
B8:
57MoveLoc[6](loc1: u256)
58MoveLoc[7](loc2: u256)
59StLoc[9](loc4: u256)
60StLoc[8](loc3: u256)
61LdConst[3](u256: 1000..)
62MoveLoc[3](Arg3: u64)
63CastU256
64Sub
65StLoc[11](loc6: u256)
66MoveLoc[0](Arg0: &mut Probe)
67MoveLoc[8](loc3: u256)
68CopyLoc[11](loc6: u256)
69Mul
70MoveLoc[11](loc6: u256)
71MoveLoc[9](loc4: u256)
72LdConst[3](u256: 1000..)
73Mul
74Call fold(&mut Probe, u256, u256, u256)
75Ret
}
 
public fold_closed(Arg0: &mut Probe) {
B0:
0LdU256(0)
1MoveLoc[0](Arg0: &mut Probe)
2MutBorrowField[0](Probe.m00: u256)
3WriteRef
4Ret
}
 
normalise(Arg0: &mut Probe) {
L1: loc0: bool
B0:
0CopyLoc[0](Arg0: &mut Probe)
1ImmBorrowField[0](Probe.m00: u256)
2ReadRef
3LdConst[0](u256: 1329..)
4Ge
5BrFalse(10)
B1:
6Branch(7)
B2:
7LdTrue
8StLoc[1](loc0: bool)
9Branch(25)
B3:
10CopyLoc[0](Arg0: &mut Probe)
11ImmBorrowField[1](Probe.m10: u256)
12ReadRef
13LdConst[0](u256: 1329..)
14Ge
15BrFalse(19)
B4:
16LdTrue
17StLoc[1](loc0: bool)
18Branch(25)
B5:
19CopyLoc[0](Arg0: &mut Probe)
20ImmBorrowField[2](Probe.m11: u256)
21ReadRef
22LdConst[0](u256: 1329..)
23Ge
24StLoc[1](loc0: bool)
B6:
25MoveLoc[1](loc0: bool)
26BrFalse(62)
B7:
27CopyLoc[0](Arg0: &mut Probe)
28ImmBorrowField[0](Probe.m00: u256)
29ReadRef
30LdU8(8)
31Shr
32CopyLoc[0](Arg0: &mut Probe)
33MutBorrowField[0](Probe.m00: u256)
34WriteRef
35CopyLoc[0](Arg0: &mut Probe)
36ImmBorrowField[2](Probe.m11: u256)
37ReadRef
38LdU8(8)
39Shr
40LdU256(1)
41Add
42CopyLoc[0](Arg0: &mut Probe)
43MutBorrowField[2](Probe.m11: u256)
44WriteRef
45CopyLoc[0](Arg0: &mut Probe)
46ImmBorrowField[1](Probe.m10: u256)
47ReadRef
48LdU256(0)
49Neq
50BrFalse(0)
B8:
51CopyLoc[0](Arg0: &mut Probe)
52ImmBorrowField[1](Probe.m10: u256)
53ReadRef
54LdU8(8)
55Shr
56LdU256(1)
57Add
58CopyLoc[0](Arg0: &mut Probe)
59MutBorrowField[1](Probe.m10: u256)
60WriteRef
61Branch(0)
B9:
62MoveLoc[0](Arg0: &mut Probe)
63Pop
64Ret
}
 
public solve(Arg0: &mut Probe, Arg1: u64, Arg2: u64) {
L3: loc0: bool
L4: loc1: u256
L5: loc2: u256
L6: loc3: bool
L7: loc4: u256
L8: loc5: u256
L9: loc6: u256
L10: loc7: u256
B0:
0CopyLoc[0](Arg0: &mut Probe)
1ImmBorrowField[0](Probe.m00: u256)
2ReadRef
3CopyLoc[0](Arg0: &mut Probe)
4ImmBorrowField[2](Probe.m11: u256)
5ReadRef
6Gt
7BrFalse(13)
B1:
8CopyLoc[1](Arg1: u64)
9LdU64(0)
10Gt
11StLoc[3](loc0: bool)
12Branch(15)
B2:
13LdFalse
14StLoc[3](loc0: bool)
B3:
15MoveLoc[3](loc0: bool)
16BrFalse(18)
B4:
17Branch(22)
B5:
18MoveLoc[0](Arg0: &mut Probe)
19Pop
20LdConst[5](u64: 0)
21Abort
B6:
22CopyLoc[0](Arg0: &mut Probe)
23ImmBorrowField[3](Probe.max_in: u256)
24ReadRef
25CopyLoc[1](Arg1: u64)
26CastU256
27Lt
28BrFalse(34)
B7:
29CopyLoc[0](Arg0: &mut Probe)
30ImmBorrowField[3](Probe.max_in: u256)
31ReadRef
32StLoc[4](loc1: u256)
33Branch(37)
B8:
34MoveLoc[1](Arg1: u64)
35CastU256
36StLoc[4](loc1: u256)
B9:
37MoveLoc[4](loc1: u256)
38StLoc[7](loc4: u256)
39CopyLoc[0](Arg0: &mut Probe)
40ImmBorrowField[1](Probe.m10: u256)
41ReadRef
42LdU256(0)
43Eq
44BrFalse(48)
B10:
45CopyLoc[7](loc4: u256)
46StLoc[5](loc2: u256)
47Branch(65)
B11:
48CopyLoc[0](Arg0: &mut Probe)
49ImmBorrowField[0](Probe.m00: u256)
50ReadRef
51CopyLoc[0](Arg0: &mut Probe)
52ImmBorrowField[2](Probe.m11: u256)
53ReadRef
54Mul
55Call sqrt(u256): u256
56CopyLoc[0](Arg0: &mut Probe)
57ImmBorrowField[2](Probe.m11: u256)
58ReadRef
59Sub
60CopyLoc[0](Arg0: &mut Probe)
61ImmBorrowField[1](Probe.m10: u256)
62ReadRef
63Div
64StLoc[5](loc2: u256)
B12:
65MoveLoc[5](loc2: u256)
66StLoc[10](loc7: u256)
67CopyLoc[10](loc7: u256)
68CopyLoc[7](loc4: u256)
69Gt
70BrFalse(73)
B13:
71MoveLoc[7](loc4: u256)
72StLoc[10](loc7: u256)
B14:
73CopyLoc[10](loc7: u256)
74LdU256(0)
75Gt
76BrFalse(78)
B15:
77Branch(82)
B16:
78MoveLoc[0](Arg0: &mut Probe)
79Pop
80LdConst[5](u64: 0)
81Abort
B17:
82CopyLoc[0](Arg0: &mut Probe)
83ImmBorrowField[0](Probe.m00: u256)
84ReadRef
85CopyLoc[10](loc7: u256)
86Mul
87CopyLoc[0](Arg0: &mut Probe)
88ImmBorrowField[1](Probe.m10: u256)
89ReadRef
90CopyLoc[10](loc7: u256)
91Mul
92CopyLoc[0](Arg0: &mut Probe)
93ImmBorrowField[2](Probe.m11: u256)
94ReadRef
95Add
96Div
97StLoc[9](loc6: u256)
98CopyLoc[9](loc6: u256)
99CopyLoc[10](loc7: u256)
100Gt
101BrFalse(107)
B18:
102CopyLoc[9](loc6: u256)
103LdConst[4](u256: 1844..)
104Le
105StLoc[6](loc3: bool)
106Branch(109)
B19:
107LdFalse
108StLoc[6](loc3: bool)
B20:
109MoveLoc[6](loc3: bool)
110BrFalse(112)
B21:
111Branch(116)
B22:
112MoveLoc[0](Arg0: &mut Probe)
113Pop
114LdConst[5](u64: 0)
115Abort
B23:
116MoveLoc[9](loc6: u256)
117CopyLoc[10](loc7: u256)
118Sub
119StLoc[8](loc5: u256)
120CopyLoc[8](loc5: u256)
121MoveLoc[2](Arg2: u64)
122CastU256
123Ge
124BrFalse(126)
B24:
125Branch(130)
B25:
126MoveLoc[0](Arg0: &mut Probe)
127Pop
128LdConst[6](u64: 1)
129Abort
B26:
130MoveLoc[10](loc7: u256)
131CastU64
132CopyLoc[0](Arg0: &mut Probe)
133MutBorrowField[4](Probe.size: u64)
134WriteRef
135MoveLoc[8](loc5: u256)
136CastU64
137MoveLoc[0](Arg0: &mut Probe)
138MutBorrowField[5](Probe.gross: u64)
139WriteRef
140Ret
}
 
public begin_at(Arg0: u64): Probe {
L1: loc0: Probe
B0:
0Call begin(): Probe
1StLoc[1](loc0: Probe)
2MoveLoc[0](Arg0: u64)
3MutBorrowLoc[1](loc0: Probe)
4MutBorrowField[6](Probe.reference: u64)
5WriteRef
6MoveLoc[1](loc0: Probe)
7Ret
}
 
public reference_input(Arg0: &Probe): u64 {
L1: loc0: u256
L2: loc1: u64
L3: loc2: u256
L4: loc3: u256
B0:
0CopyLoc[0](Arg0: &Probe)
1ImmBorrowField[6](Probe.reference: u64)
2ReadRef
3CastU256
4CopyLoc[0](Arg0: &Probe)
5ImmBorrowField[3](Probe.max_in: u256)
6ReadRef
7Lt
8BrFalse(15)
B1:
9CopyLoc[0](Arg0: &Probe)
10ImmBorrowField[6](Probe.reference: u64)
11ReadRef
12CastU256
13StLoc[1](loc0: u256)
14Branch(19)
B2:
15CopyLoc[0](Arg0: &Probe)
16ImmBorrowField[3](Probe.max_in: u256)
17ReadRef
18StLoc[1](loc0: u256)
B3:
19MoveLoc[1](loc0: u256)
20StLoc[4](loc3: u256)
21CopyLoc[0](Arg0: &Probe)
22ImmBorrowField[0](Probe.m00: u256)
23ReadRef
24CopyLoc[4](loc3: u256)
25Mul
26CopyLoc[0](Arg0: &Probe)
27ImmBorrowField[1](Probe.m10: u256)
28ReadRef
29MoveLoc[4](loc3: u256)
30Mul
31MoveLoc[0](Arg0: &Probe)
32ImmBorrowField[2](Probe.m11: u256)
33ReadRef
34Add
35Div
36StLoc[3](loc2: u256)
37CopyLoc[3](loc2: u256)
38LdConst[4](u256: 1844..)
39Gt
40BrFalse(45)
B4:
41LdConst[4](u256: 1844..)
42CastU64
43StLoc[2](loc1: u64)
44Branch(48)
B5:
45MoveLoc[3](loc2: u256)
46CastU64
47StLoc[2](loc1: u64)
B6:
48MoveLoc[2](loc1: u64)
49Ret
}
 
public plan(Arg0: &mut Probe, Arg1: u64, Arg2: u64) {
L3: loc0: u256
L4: loc1: u256
L5: loc2: u256
L6: loc3: u256
L7: loc4: u256
L8: loc5: u256
B0:
0CopyLoc[1](Arg1: u64)
1LdU64(0)
2Gt
3BrFalse(5)
B1:
4Branch(9)
B2:
5MoveLoc[0](Arg0: &mut Probe)
6Pop
7LdConst[5](u64: 0)
8Abort
B3:
9CopyLoc[0](Arg0: &mut Probe)
10ImmBorrowField[3](Probe.max_in: u256)
11ReadRef
12CopyLoc[1](Arg1: u64)
13CastU256
14Lt
15BrFalse(21)
B4:
16CopyLoc[0](Arg0: &mut Probe)
17ImmBorrowField[3](Probe.max_in: u256)
18ReadRef
19StLoc[3](loc0: u256)
20Branch(24)
B5:
21MoveLoc[1](Arg1: u64)
22CastU256
23StLoc[3](loc0: u256)
B6:
24MoveLoc[3](loc0: u256)
25StLoc[7](loc4: u256)
26CopyLoc[0](Arg0: &mut Probe)
27ImmBorrowField[6](Probe.reference: u64)
28ReadRef
29CastU256
30CopyLoc[7](loc4: u256)
31Gt
32BrFalse(38)
B7:
33CopyLoc[7](loc4: u256)
34CastU64
35CopyLoc[0](Arg0: &mut Probe)
36MutBorrowField[6](Probe.reference: u64)
37WriteRef
B8:
38CopyLoc[0](Arg0: &mut Probe)
39ImmBorrowField[0](Probe.m00: u256)
40ReadRef
41CopyLoc[0](Arg0: &mut Probe)
42ImmBorrowField[2](Probe.m11: u256)
43ReadRef
44Le
45BrFalse(52)
B9:
46CopyLoc[0](Arg0: &mut Probe)
47ImmBorrowField[6](Probe.reference: u64)
48ReadRef
49CastU256
50StLoc[5](loc2: u256)
51Branch(80)
B10:
52CopyLoc[0](Arg0: &mut Probe)
53ImmBorrowField[1](Probe.m10: u256)
54ReadRef
55LdU256(0)
56Eq
57BrFalse(61)
B11:
58CopyLoc[7](loc4: u256)
59StLoc[4](loc1: u256)
60Branch(78)
B12:
61CopyLoc[0](Arg0: &mut Probe)
62ImmBorrowField[0](Probe.m00: u256)
63ReadRef
64CopyLoc[0](Arg0: &mut Probe)
65ImmBorrowField[2](Probe.m11: u256)
66ReadRef
67Mul
68Call sqrt(u256): u256
69CopyLoc[0](Arg0: &mut Probe)
70ImmBorrowField[2](Probe.m11: u256)
71ReadRef
72Sub
73CopyLoc[0](Arg0: &mut Probe)
74ImmBorrowField[1](Probe.m10: u256)
75ReadRef
76Div
77StLoc[4](loc1: u256)
B13:
78MoveLoc[4](loc1: u256)
79StLoc[5](loc2: u256)
B14:
80MoveLoc[5](loc2: u256)
81StLoc[8](loc5: u256)
82CopyLoc[8](loc5: u256)
83CopyLoc[7](loc4: u256)
84Gt
85BrFalse(89)
B15:
86CopyLoc[7](loc4: u256)
87StLoc[6](loc3: u256)
88Branch(91)
B16:
89MoveLoc[8](loc5: u256)
90StLoc[6](loc3: u256)
B17:
91MoveLoc[6](loc3: u256)
92CastU64
93CopyLoc[0](Arg0: &mut Probe)
94MutBorrowField[4](Probe.size: u64)
95WriteRef
96CopyLoc[0](Arg0: &mut Probe)
97ImmBorrowField[4](Probe.size: u64)
98ReadRef
99LdU64(0)
100Eq
101BrFalse(108)
B18:
102CopyLoc[0](Arg0: &mut Probe)
103ImmBorrowField[6](Probe.reference: u64)
104ReadRef
105CopyLoc[0](Arg0: &mut Probe)
106MutBorrowField[4](Probe.size: u64)
107WriteRef
B19:
108MoveLoc[2](Arg2: u64)
109CopyLoc[0](Arg0: &mut Probe)
110MutBorrowField[7](Probe.floor: u64)
111WriteRef
112LdU64(0)
113CopyLoc[0](Arg0: &mut Probe)
114MutBorrowField[8](Probe.best_size: u64)
115WriteRef
116LdU64(0)
117CopyLoc[0](Arg0: &mut Probe)
118MutBorrowField[9](Probe.best_gross: u64)
119WriteRef
120CopyLoc[0](Arg0: &mut Probe)
121ImmBorrowField[4](Probe.size: u64)
122ReadRef
123CopyLoc[0](Arg0: &mut Probe)
124MutBorrowField[10](Probe.model: u64)
125WriteRef
126CopyLoc[7](loc4: u256)
127CastU64
128CopyLoc[0](Arg0: &mut Probe)
129MutBorrowField[11](Probe.cap: u64)
130WriteRef
131LdU64(0)
132CopyLoc[0](Arg0: &mut Probe)
133MutBorrowField[12](Probe.lo: u64)
134WriteRef
135MoveLoc[7](loc4: u256)
136CastU64
137CopyLoc[0](Arg0: &mut Probe)
138MutBorrowField[13](Probe.hi: u64)
139WriteRef
140LdFalse
141CopyLoc[0](Arg0: &mut Probe)
142MutBorrowField[14](Probe.hi_known: bool)
143WriteRef
144LdConst[4](u256: 1844..)
145CastU64
146CopyLoc[0](Arg0: &mut Probe)
147MutBorrowField[15](Probe.smallest: u64)
148WriteRef
149LdU8(0)
150MoveLoc[0](Arg0: &mut Probe)
151MutBorrowField[16](Probe.walks: u8)
152WriteRef
153Ret
}
 
public check_start(Arg0: &mut Probe, Arg1: bool) {
L2: loc0: u64
L3: loc1: bool
L4: loc2: bool
L5: loc3: bool
L6: loc4: u64
B0:
0CopyLoc[1](Arg1: bool)
1BrFalse(7)
B1:
2CopyLoc[0](Arg0: &mut Probe)
3ImmBorrowField[6](Probe.reference: u64)
4ReadRef
5StLoc[2](loc0: u64)
6Branch(11)
B2:
7CopyLoc[0](Arg0: &mut Probe)
8ImmBorrowField[4](Probe.size: u64)
9ReadRef
10StLoc[2](loc0: u64)
B3:
11MoveLoc[2](loc0: u64)
12StLoc[6](loc4: u64)
13CopyLoc[6](loc4: u64)
14LdU64(0)
15Gt
16BrFalse(43)
B4:
17MoveLoc[1](Arg1: bool)
18Not
19BrFalse(23)
B5:
20LdTrue
21StLoc[4](loc2: bool)
22Branch(40)
B6:
23CopyLoc[0](Arg0: &mut Probe)
24ImmBorrowField[8](Probe.best_size: u64)
25ReadRef
26LdU64(0)
27Eq
28BrFalse(36)
B7:
29CopyLoc[6](loc4: u64)
30CopyLoc[0](Arg0: &mut Probe)
31ImmBorrowField[4](Probe.size: u64)
32ReadRef
33Neq
34StLoc[5](loc3: bool)
35Branch(38)
B8:
36LdFalse
37StLoc[5](loc3: bool)
B9:
38MoveLoc[5](loc3: bool)
39StLoc[4](loc2: bool)
B10:
40MoveLoc[4](loc2: bool)
41StLoc[3](loc1: bool)
42Branch(45)
B11:
43LdFalse
44StLoc[3](loc1: bool)
B12:
45MoveLoc[3](loc1: bool)
46CopyLoc[0](Arg0: &mut Probe)
47MutBorrowField[17](Probe.checking: bool)
48WriteRef
49CopyLoc[0](Arg0: &mut Probe)
50ImmBorrowField[17](Probe.checking: bool)
51ReadRef
52CopyLoc[0](Arg0: &mut Probe)
53MutBorrowField[18](Probe.walking: bool)
54WriteRef
55CopyLoc[6](loc4: u64)
56CopyLoc[0](Arg0: &mut Probe)
57MutBorrowField[19](Probe.quote_size: u64)
58WriteRef
59MoveLoc[6](loc4: u64)
60CopyLoc[0](Arg0: &mut Probe)
61MutBorrowField[20](Probe.quote_amount: u64)
62WriteRef
63LdU64(0)
64MoveLoc[0](Arg0: &mut Probe)
65MutBorrowField[21](Probe.base_left: u64)
66WriteRef
67Ret
}
 
public checking(Arg0: &Probe): bool {
B0:
0MoveLoc[0](Arg0: &Probe)
1ImmBorrowField[17](Probe.checking: bool)
2ReadRef
3Ret
}
 
public check_amount(Arg0: &Probe): u64 {
B0:
0MoveLoc[0](Arg0: &Probe)
1ImmBorrowField[20](Probe.quote_amount: u64)
2ReadRef
3Ret
}
 
public(friend) begin_walk(Arg0: u64, Arg1: u64): Probe {
L2: loc0: Probe
B0:
0Call begin(): Probe
1StLoc[2](loc0: Probe)
2MoveLoc[0](Arg0: u64)
3MutBorrowLoc[2](loc0: Probe)
4MutBorrowField[6](Probe.reference: u64)
5WriteRef
6MoveLoc[1](Arg1: u64)
7MutBorrowLoc[2](loc0: Probe)
8MutBorrowField[7](Probe.floor: u64)
9WriteRef
10MoveLoc[2](loc0: Probe)
11Ret
}
 
public(friend) last_size(Arg0: &Probe): u64 {
B0:
0MoveLoc[0](Arg0: &Probe)
1ImmBorrowField[19](Probe.quote_size: u64)
2ReadRef
3Ret
}
 
public(friend) last_out(Arg0: &Probe): u64 {
B0:
0MoveLoc[0](Arg0: &Probe)
1ImmBorrowField[20](Probe.quote_amount: u64)
2ReadRef
3Ret
}
 
public check_step(Arg0: &mut Probe, Arg1: u64, Arg2: u64, Arg3: bool) {
L4: loc0: bool
B0:
0CopyLoc[0](Arg0: &mut Probe)
1ImmBorrowField[17](Probe.checking: bool)
2ReadRef
3Not
4BrFalse(8)
B1:
5MoveLoc[0](Arg0: &mut Probe)
6Pop
7Ret
B2:
8CopyLoc[1](Arg1: u64)
9LdU64(0)
10Eq
11BrFalse(15)
B3:
12LdTrue
13StLoc[4](loc0: bool)
14Branch(28)
B4:
15CopyLoc[1](Arg1: u64)
16CopyLoc[0](Arg0: &mut Probe)
17ImmBorrowField[20](Probe.quote_amount: u64)
18ReadRef
19Gt
20BrFalse(24)
B5:
21LdTrue
22StLoc[4](loc0: bool)
23Branch(28)
B6:
24CopyLoc[2](Arg2: u64)
25LdU64(0)
26Eq
27StLoc[4](loc0: bool)
B7:
28MoveLoc[4](loc0: bool)
29BrFalse(39)
B8:
30LdFalse
31CopyLoc[0](Arg0: &mut Probe)
32MutBorrowField[17](Probe.checking: bool)
33WriteRef
34LdU64(0)
35MoveLoc[0](Arg0: &mut Probe)
36MutBorrowField[20](Probe.quote_amount: u64)
37WriteRef
38Ret
B9:
39MoveLoc[3](Arg3: bool)
40BrFalse(53)
B10:
41CopyLoc[0](Arg0: &mut Probe)
42ImmBorrowField[21](Probe.base_left: u64)
43ReadRef
44CopyLoc[0](Arg0: &mut Probe)
45ImmBorrowField[20](Probe.quote_amount: u64)
46ReadRef
47MoveLoc[1](Arg1: u64)
48Sub
49Add
50CopyLoc[0](Arg0: &mut Probe)
51MutBorrowField[21](Probe.base_left: u64)
52WriteRef
B11:
53MoveLoc[2](Arg2: u64)
54MoveLoc[0](Arg0: &mut Probe)
55MutBorrowField[20](Probe.quote_amount: u64)
56WriteRef
57Ret
}
 
public check_bounded_step(Arg0: &mut Probe, Arg1: u64, Arg2: u64, Arg3: bool) {
L4: loc0: bool
L5: loc1: u64
B0:
0CopyLoc[0](Arg0: &mut Probe)
1ImmBorrowField[17](Probe.checking: bool)
2ReadRef
3Not
4BrFalse(8)
B1:
5MoveLoc[0](Arg0: &mut Probe)
6Pop
7Ret
B2:
8CopyLoc[1](Arg1: u64)
9LdU64(0)
10Gt
11BrFalse(26)
B3:
12CopyLoc[1](Arg1: u64)
13CopyLoc[0](Arg0: &mut Probe)
14ImmBorrowField[20](Probe.quote_amount: u64)
15ReadRef
16Lt
17BrFalse(23)
B4:
18CopyLoc[2](Arg2: u64)
19LdU64(0)
20Gt
21StLoc[4](loc0: bool)
22Branch(28)
B5:
23LdFalse
24StLoc[4](loc0: bool)
25Branch(28)
B6:
26LdFalse
27StLoc[4](loc0: bool)
B7:
28MoveLoc[4](loc0: bool)
29BrFalse(73)
B8:
30CopyLoc[3](Arg3: bool)
31BrFalse(45)
B9:
32CopyLoc[1](Arg1: u64)
33CopyLoc[0](Arg0: &mut Probe)
34MutBorrowField[19](Probe.quote_size: u64)
35WriteRef
36CopyLoc[1](Arg1: u64)
37CopyLoc[0](Arg0: &mut Probe)
38MutBorrowField[20](Probe.quote_amount: u64)
39WriteRef
40LdU64(0)
41CopyLoc[0](Arg0: &mut Probe)
42MutBorrowField[21](Probe.base_left: u64)
43WriteRef
44Branch(73)
B10:
45CopyLoc[0](Arg0: &mut Probe)
46ImmBorrowField[19](Probe.quote_size: u64)
47ReadRef
48CastU256
49MoveLoc[1](Arg1: u64)
50CastU256
51Mul
52CopyLoc[0](Arg0: &mut Probe)
53ImmBorrowField[20](Probe.quote_amount: u64)
54ReadRef
55CastU256
56Div
57CastU64
58StLoc[5](loc1: u64)
59CopyLoc[5](loc1: u64)
60LdU64(0)
61Gt
62BrFalse(67)
B11:
63MoveLoc[5](loc1: u64)
64CopyLoc[0](Arg0: &mut Probe)
65MutBorrowField[10](Probe.model: u64)
66WriteRef
B12:
67MoveLoc[0](Arg0: &mut Probe)
68LdU64(0)
69LdU64(0)
70LdFalse
71Call check_step(&mut Probe, u64, u64, bool)
72Ret
B13:
73MoveLoc[0](Arg0: &mut Probe)
74MoveLoc[1](Arg1: u64)
75MoveLoc[2](Arg2: u64)
76MoveLoc[3](Arg3: bool)
77Call check_step(&mut Probe, u64, u64, bool)
78Ret
}
 
public check_end(Arg0: &mut Probe) {
L1: loc0: u256
L2: loc1: bool
L3: loc2: u256
L4: loc3: bool
L5: loc4: bool
L6: loc5: bool
L7: loc6: bool
L8: loc7: bool
L9: loc8: bool
L10: loc9: u256
L11: loc10: u64
L12: loc11: u256
B0:
0CopyLoc[0](Arg0: &mut Probe)
1ImmBorrowField[18](Probe.walking: bool)
2ReadRef
3Not
4BrFalse(8)
B1:
5MoveLoc[0](Arg0: &mut Probe)
6Pop
7Ret
B2:
8LdFalse
9CopyLoc[0](Arg0: &mut Probe)
10MutBorrowField[18](Probe.walking: bool)
11WriteRef
12CopyLoc[0](Arg0: &mut Probe)
13ImmBorrowField[19](Probe.quote_size: u64)
14ReadRef
15StLoc[11](loc10: u64)
16CopyLoc[0](Arg0: &mut Probe)
17ImmBorrowField[17](Probe.checking: bool)
18ReadRef
19BrFalse(31)
B3:
20CopyLoc[0](Arg0: &mut Probe)
21ImmBorrowField[20](Probe.quote_amount: u64)
22ReadRef
23CastU256
24CopyLoc[0](Arg0: &mut Probe)
25ImmBorrowField[21](Probe.base_left: u64)
26ReadRef
27CastU256
28Add
29StLoc[1](loc0: u256)
30Branch(33)
B4:
31LdU256(0)
32StLoc[1](loc0: u256)
B5:
33MoveLoc[1](loc0: u256)
34StLoc[12](loc11: u256)
35CopyLoc[0](Arg0: &mut Probe)
36ImmBorrowField[17](Probe.checking: bool)
37ReadRef
38BrFalse(45)
B6:
39CopyLoc[12](loc11: u256)
40CopyLoc[11](loc10: u64)
41CastU256
42Gt
43StLoc[2](loc1: bool)
44Branch(47)
B7:
45LdFalse
46StLoc[2](loc1: bool)
B8:
47MoveLoc[2](loc1: bool)
48BrFalse(55)
B9:
49CopyLoc[12](loc11: u256)
50CopyLoc[11](loc10: u64)
51CastU256
52Sub
53StLoc[3](loc2: u256)
54Branch(57)
B10:
55LdU256(0)
56StLoc[3](loc2: u256)
B11:
57MoveLoc[3](loc2: u256)
58StLoc[10](loc9: u256)
59CopyLoc[0](Arg0: &mut Probe)
60ImmBorrowField[0](Probe.m00: u256)
61ReadRef
62LdU256(1)
63Eq
64BrFalse(92)
B12:
65CopyLoc[11](loc10: u64)
66LdU64(0)
67Gt
68BrFalse(89)
B13:
69CopyLoc[12](loc11: u256)
70LdU256(0)
71Gt
72BrFalse(86)
B14:
73CopyLoc[12](loc11: u256)
74LdConst[4](u256: 1844..)
75Le
76BrFalse(83)
B15:
77CopyLoc[12](loc11: u256)
78CopyLoc[11](loc10: u64)
79CastU256
80Neq
81StLoc[4](loc3: bool)
82Branch(94)
B16:
83LdFalse
84StLoc[4](loc3: bool)
85Branch(94)
B17:
86LdFalse
87StLoc[4](loc3: bool)
88Branch(94)
B18:
89LdFalse
90StLoc[4](loc3: bool)
91Branch(94)
B19:
92LdFalse
93StLoc[4](loc3: bool)
B20:
94MoveLoc[4](loc3: bool)
95BrFalse(111)
B21:
96CopyLoc[0](Arg0: &mut Probe)
97ImmBorrowField[1](Probe.m10: u256)
98ReadRef
99CopyLoc[0](Arg0: &mut Probe)
100MutBorrowField[2](Probe.m11: u256)
101WriteRef
102CopyLoc[11](loc10: u64)
103CastU256
104LdU8(64)
105Shl
106MoveLoc[12](loc11: u256)
107BitOr
108CopyLoc[0](Arg0: &mut Probe)
109MutBorrowField[1](Probe.m10: u256)
110WriteRef
B22:
111LdFalse
112CopyLoc[0](Arg0: &mut Probe)
113MutBorrowField[17](Probe.checking: bool)
114WriteRef
115CopyLoc[10](loc9: u256)
116LdU256(0)
117Gt
118BrFalse(134)
B23:
119CopyLoc[10](loc9: u256)
120CopyLoc[0](Arg0: &mut Probe)
121ImmBorrowField[7](Probe.floor: u64)
122ReadRef
123CastU256
124Ge
125BrFalse(131)
B24:
126CopyLoc[10](loc9: u256)
127LdConst[4](u256: 1844..)
128Le
129StLoc[5](loc4: bool)
130Branch(136)
B25:
131LdFalse
132StLoc[5](loc4: bool)
133Branch(136)
B26:
134LdFalse
135StLoc[5](loc4: bool)
B27:
136MoveLoc[5](loc4: bool)
137BrFalse(157)
B28:
138CopyLoc[0](Arg0: &mut Probe)
139ImmBorrowField[8](Probe.best_size: u64)
140ReadRef
141LdU64(0)
142Eq
143BrFalse(147)
B29:
144LdTrue
145StLoc[7](loc6: bool)
146Branch(154)
B30:
147CopyLoc[10](loc9: u256)
148CopyLoc[0](Arg0: &mut Probe)
149ImmBorrowField[9](Probe.best_gross: u64)
150ReadRef
151CastU256
152Gt
153StLoc[7](loc6: bool)
B31:
154MoveLoc[7](loc6: bool)
155StLoc[6](loc5: bool)
156Branch(159)
B32:
157LdFalse
158StLoc[6](loc5: bool)
B33:
159MoveLoc[6](loc5: bool)
160BrFalse(200)
B34:
161CopyLoc[0](Arg0: &mut Probe)
162ImmBorrowField[8](Probe.best_size: u64)
163ReadRef
164LdU64(0)
165Neq
166BrFalse(190)
B35:
167CopyLoc[11](loc10: u64)
168CopyLoc[0](Arg0: &mut Probe)
169ImmBorrowField[8](Probe.best_size: u64)
170ReadRef
171Gt
172BrFalse(180)
B36:
173CopyLoc[0](Arg0: &mut Probe)
174ImmBorrowField[8](Probe.best_size: u64)
175ReadRef
176CopyLoc[0](Arg0: &mut Probe)
177MutBorrowField[12](Probe.lo: u64)
178WriteRef
179Branch(190)
B37:
180CopyLoc[0](Arg0: &mut Probe)
181ImmBorrowField[8](Probe.best_size: u64)
182ReadRef
183CopyLoc[0](Arg0: &mut Probe)
184MutBorrowField[13](Probe.hi: u64)
185WriteRef
186LdTrue
187CopyLoc[0](Arg0: &mut Probe)
188MutBorrowField[14](Probe.hi_known: bool)
189WriteRef
B38:
190MoveLoc[11](loc10: u64)
191CopyLoc[0](Arg0: &mut Probe)
192MutBorrowField[8](Probe.best_size: u64)
193WriteRef
194MoveLoc[10](loc9: u256)
195CastU64
196MoveLoc[0](Arg0: &mut Probe)
197MutBorrowField[9](Probe.best_gross: u64)
198WriteRef
199Branch(267)
B39:
200CopyLoc[0](Arg0: &mut Probe)
201ImmBorrowField[8](Probe.best_size: u64)
202ReadRef
203LdU64(0)
204Neq
205BrFalse(265)
B40:
206CopyLoc[11](loc10: u64)
207CopyLoc[0](Arg0: &mut Probe)
208ImmBorrowField[8](Probe.best_size: u64)
209ReadRef
210Gt
211BrFalse(240)
B41:
212CopyLoc[0](Arg0: &mut Probe)
213ImmBorrowField[14](Probe.hi_known: bool)
214ReadRef
215Not
216BrFalse(220)
B42:
217LdTrue
218StLoc[8](loc7: bool)
219Branch(226)
B43:
220CopyLoc[11](loc10: u64)
221CopyLoc[0](Arg0: &mut Probe)
222ImmBorrowField[13](Probe.hi: u64)
223ReadRef
224Lt
225StLoc[8](loc7: bool)
B44:
226MoveLoc[8](loc7: bool)
227BrFalse(237)
B45:
228MoveLoc[11](loc10: u64)
229CopyLoc[0](Arg0: &mut Probe)
230MutBorrowField[13](Probe.hi: u64)
231WriteRef
232LdTrue
233MoveLoc[0](Arg0: &mut Probe)
234MutBorrowField[14](Probe.hi_known: bool)
235WriteRef
236Branch(267)
B46:
237MoveLoc[0](Arg0: &mut Probe)
238Pop
239Branch(267)
B47:
240CopyLoc[11](loc10: u64)
241CopyLoc[0](Arg0: &mut Probe)
242ImmBorrowField[8](Probe.best_size: u64)
243ReadRef
244Lt
245BrFalse(253)
B48:
246CopyLoc[11](loc10: u64)
247CopyLoc[0](Arg0: &mut Probe)
248ImmBorrowField[12](Probe.lo: u64)
249ReadRef
250Gt
251StLoc[9](loc8: bool)
252Branch(255)
B49:
253LdFalse
254StLoc[9](loc8: bool)
B50:
255MoveLoc[9](loc8: bool)
256BrFalse(262)
B51:
257MoveLoc[11](loc10: u64)
258MoveLoc[0](Arg0: &mut Probe)
259MutBorrowField[12](Probe.lo: u64)
260WriteRef
261Branch(267)
B52:
262MoveLoc[0](Arg0: &mut Probe)
263Pop
264Branch(267)
B53:
265MoveLoc[0](Arg0: &mut Probe)
266Pop
B54:
267Ret
}
 
public walk(Arg0: &mut Probe): bool {
L1: loc0: bool
L2: loc1: u64
L3: loc2: u64
L4: loc3: u64
L5: loc4: bool
L6: loc5: bool
L7: loc6: u64
L8: loc7: bool
L9: loc8: bool
L10: loc9: u64
L11: loc10: u64
L12: loc11: u64
L13: loc12: u64
L14: loc13: u64
L15: loc14: u256
L16: loc15: u64
L17: loc16: u64
B0:
0CopyLoc[0](Arg0: &mut Probe)
1ImmBorrowField[16](Probe.walks: u8)
2ReadRef
3LdU8(0)
4Eq
5BrFalse(11)
B1:
6CopyLoc[0](Arg0: &mut Probe)
7ImmBorrowField[6](Probe.reference: u64)
8ReadRef
9StLoc[3](loc2: u64)
10Branch(163)
B2:
11CopyLoc[0](Arg0: &mut Probe)
12ImmBorrowField[16](Probe.walks: u8)
13ReadRef
14LdU8(1)
15Eq
16BrFalse(26)
B3:
17CopyLoc[0](Arg0: &mut Probe)
18ImmBorrowField[10](Probe.model: u64)
19ReadRef
20CopyLoc[0](Arg0: &mut Probe)
21ImmBorrowField[6](Probe.reference: u64)
22ReadRef
23Neq
24StLoc[1](loc0: bool)
25Branch(28)
B4:
26LdFalse
27StLoc[1](loc0: bool)
B5:
28MoveLoc[1](loc0: bool)
29BrFalse(35)
B6:
30CopyLoc[0](Arg0: &mut Probe)
31ImmBorrowField[10](Probe.model: u64)
32ReadRef
33StLoc[2](loc1: u64)
34Branch(161)
B7:
35CopyLoc[0](Arg0: &mut Probe)
36ImmBorrowField[8](Probe.best_size: u64)
37ReadRef
38LdU64(0)
39Eq
40BrFalse(48)
B8:
41CopyLoc[0](Arg0: &mut Probe)
42ImmBorrowField[15](Probe.smallest: u64)
43ReadRef
44LdU64(2)
45Div
46StLoc[13](loc12: u64)
47Branch(159)
B9:
48CopyLoc[0](Arg0: &mut Probe)
49ImmBorrowField[8](Probe.best_size: u64)
50ReadRef
51StLoc[14](loc13: u64)
52CopyLoc[0](Arg0: &mut Probe)
53ImmBorrowField[14](Probe.hi_known: bool)
54ReadRef
55Not
56BrFalse(64)
B10:
57CopyLoc[14](loc13: u64)
58CopyLoc[0](Arg0: &mut Probe)
59ImmBorrowField[11](Probe.cap: u64)
60ReadRef
61Lt
62StLoc[6](loc5: bool)
63Branch(66)
B11:
64LdFalse
65StLoc[6](loc5: bool)
B12:
66MoveLoc[6](loc5: bool)
67BrFalse(91)
B13:
68MoveLoc[14](loc13: u64)
69CastU256
70LdU256(2)
71Mul
72StLoc[15](loc14: u256)
73CopyLoc[15](loc14: u256)
74CopyLoc[0](Arg0: &mut Probe)
75ImmBorrowField[11](Probe.cap: u64)
76ReadRef
77CastU256
78Gt
79BrFalse(85)
B14:
80CopyLoc[0](Arg0: &mut Probe)
81ImmBorrowField[11](Probe.cap: u64)
82ReadRef
83StLoc[7](loc6: u64)
84Branch(88)
B15:
85MoveLoc[15](loc14: u256)
86CastU64
87StLoc[7](loc6: u64)
B16:
88MoveLoc[7](loc6: u64)
89StLoc[12](loc11: u64)
90Branch(157)
B17:
91CopyLoc[0](Arg0: &mut Probe)
92ImmBorrowField[13](Probe.hi: u64)
93ReadRef
94CopyLoc[14](loc13: u64)
95Gt
96BrFalse(108)
B18:
97CopyLoc[0](Arg0: &mut Probe)
98ImmBorrowField[13](Probe.hi: u64)
99ReadRef
100CopyLoc[14](loc13: u64)
101Sub
102CopyLoc[14](loc13: u64)
103LdU64(8)
104Div
105Gt
106StLoc[8](loc7: bool)
107Branch(110)
B19:
108LdFalse
109StLoc[8](loc7: bool)
B20:
110MoveLoc[8](loc7: bool)
111BrFalse(121)
B21:
112MoveLoc[14](loc13: u64)
113CopyLoc[0](Arg0: &mut Probe)
114ImmBorrowField[13](Probe.hi: u64)
115ReadRef
116Add
117LdU64(2)
118Div
119StLoc[11](loc10: u64)
120Branch(155)
B22:
121CopyLoc[14](loc13: u64)
122CopyLoc[0](Arg0: &mut Probe)
123ImmBorrowField[12](Probe.lo: u64)
124ReadRef
125Gt
126BrFalse(138)
B23:
127CopyLoc[14](loc13: u64)
128CopyLoc[0](Arg0: &mut Probe)
129ImmBorrowField[12](Probe.lo: u64)
130ReadRef
131Sub
132CopyLoc[14](loc13: u64)
133LdU64(8)
134Div
135Gt
136StLoc[9](loc8: bool)
137Branch(140)
B24:
138LdFalse
139StLoc[9](loc8: bool)
B25:
140MoveLoc[9](loc8: bool)
141BrFalse(151)
B26:
142MoveLoc[14](loc13: u64)
143CopyLoc[0](Arg0: &mut Probe)
144ImmBorrowField[12](Probe.lo: u64)
145ReadRef
146Add
147LdU64(2)
148Div
149StLoc[10](loc9: u64)
150Branch(153)
B27:
151LdU64(0)
152StLoc[10](loc9: u64)
B28:
153MoveLoc[10](loc9: u64)
154StLoc[11](loc10: u64)
B29:
155MoveLoc[11](loc10: u64)
156StLoc[12](loc11: u64)
B30:
157MoveLoc[12](loc11: u64)
158StLoc[13](loc12: u64)
B31:
159MoveLoc[13](loc12: u64)
160StLoc[2](loc1: u64)
B32:
161MoveLoc[2](loc1: u64)
162StLoc[3](loc2: u64)
B33:
163MoveLoc[3](loc2: u64)
164StLoc[16](loc15: u64)
165CopyLoc[0](Arg0: &mut Probe)
166ImmBorrowField[16](Probe.walks: u8)
167ReadRef
168LdU8(1)
169Add
170CopyLoc[0](Arg0: &mut Probe)
171MutBorrowField[16](Probe.walks: u8)
172WriteRef
173CopyLoc[16](loc15: u64)
174CopyLoc[0](Arg0: &mut Probe)
175ImmBorrowField[11](Probe.cap: u64)
176ReadRef
177Gt
178BrFalse(184)
B34:
179CopyLoc[0](Arg0: &mut Probe)
180ImmBorrowField[11](Probe.cap: u64)
181ReadRef
182StLoc[4](loc3: u64)
183Branch(186)
B35:
184MoveLoc[16](loc15: u64)
185StLoc[4](loc3: u64)
B36:
186MoveLoc[4](loc3: u64)
187StLoc[17](loc16: u64)
188CopyLoc[17](loc16: u64)
189LdU64(0)
190Eq
191BrFalse(195)
B37:
192LdTrue
193StLoc[5](loc4: bool)
194Branch(201)
B38:
195CopyLoc[17](loc16: u64)
196CopyLoc[0](Arg0: &mut Probe)
197ImmBorrowField[8](Probe.best_size: u64)
198ReadRef
199Eq
200StLoc[5](loc4: bool)
B39:
201MoveLoc[5](loc4: bool)
202BrFalse(209)
B40:
203LdFalse
204MoveLoc[0](Arg0: &mut Probe)
205MutBorrowField[17](Probe.checking: bool)
206WriteRef
207LdFalse
208Ret
B41:
209CopyLoc[17](loc16: u64)
210CopyLoc[0](Arg0: &mut Probe)
211ImmBorrowField[15](Probe.smallest: u64)
212ReadRef
213Lt
214BrFalse(219)
B42:
215CopyLoc[17](loc16: u64)
216CopyLoc[0](Arg0: &mut Probe)
217MutBorrowField[15](Probe.smallest: u64)
218WriteRef
B43:
219MoveLoc[0](Arg0: &mut Probe)
220MoveLoc[17](loc16: u64)
221Call check_size(&mut Probe, u64)
222LdTrue
223Ret
}
 
public bracket(Arg0: &Probe, Arg1: u8): Plan {
B0:
0CopyLoc[0](Arg0: &Probe)
1ImmBorrowField[6](Probe.reference: u64)
2ReadRef
3MoveLoc[0](Arg0: &Probe)
4ImmBorrowField[11](Probe.cap: u64)
5ReadRef
6MoveLoc[1](Arg1: u8)
7Call sizing::bracket(u64, u64, u8): Plan
8Ret
}
 
public begin_direct(Arg0: u64, Arg1: u64, Arg2: u64, Arg3: u8): Probe * Plan {
L4: loc0: Probe
L5: loc1: Plan
B0:
0MoveLoc[0](Arg0: u64)
1Call begin_at(u64): Probe
2StLoc[4](loc0: Probe)
3MutBorrowLoc[4](loc0: Probe)
4MoveLoc[1](Arg1: u64)
5MoveLoc[2](Arg2: u64)
6MoveLoc[3](Arg3: u8)
7Call direct_bracket(&mut Probe, u64, u64, u8): Plan
8StLoc[5](loc1: Plan)
9MoveLoc[4](loc0: Probe)
10MoveLoc[5](loc1: Plan)
11Ret
}
 
public direct_bracket(Arg0: &mut Probe, Arg1: u64, Arg2: u64, Arg3: u8): Plan {
L4: loc0: bool
L5: loc1: u256
L6: loc2: u64
L7: loc3: u256
L8: loc4: u64
B0:
0CopyLoc[0](Arg0: &mut Probe)
1ImmBorrowField[6](Probe.reference: u64)
2ReadRef
3StLoc[8](loc4: u64)
4CopyLoc[8](loc4: u64)
5LdU64(0)
6Gt
7BrFalse(13)
B1:
8CopyLoc[1](Arg1: u64)
9LdU64(0)
10Gt
11StLoc[4](loc0: bool)
12Branch(15)
B2:
13LdFalse
14StLoc[4](loc0: bool)
B3:
15MoveLoc[4](loc0: bool)
16BrFalse(18)
B4:
17Branch(22)
B5:
18MoveLoc[0](Arg0: &mut Probe)
19Pop
20LdConst[5](u64: 0)
21Abort
B6:
22CopyLoc[8](loc4: u64)
23Call begin_at(u64): Probe
24CopyLoc[0](Arg0: &mut Probe)
25WriteRef
26CopyLoc[8](loc4: u64)
27CastU256
28LdU256(2)
29Mul
30StLoc[7](loc3: u256)
31CopyLoc[7](loc3: u256)
32CopyLoc[1](Arg1: u64)
33CastU256
34Lt
35BrFalse(39)
B7:
36MoveLoc[7](loc3: u256)
37StLoc[5](loc1: u256)
38Branch(42)
B8:
39CopyLoc[1](Arg1: u64)
40CastU256
41StLoc[5](loc1: u256)
B9:
42MoveLoc[5](loc1: u256)
43CastU64
44StLoc[6](loc2: u64)
45MoveLoc[0](Arg0: &mut Probe)
46MoveLoc[6](loc2: u64)
47MoveLoc[2](Arg2: u64)
48Call plan(&mut Probe, u64, u64)
49MoveLoc[8](loc4: u64)
50MoveLoc[1](Arg1: u64)
51MoveLoc[3](Arg3: u8)
52Call sizing::direct_bracket(u64, u64, u8): Plan
53Ret
}
 
fit_direct_peak(Arg0: u256, Arg1: u256, Arg2: u64): u64 {
L3: loc0: bool
L4: loc1: u256
L5: loc2: u256
L6: loc3: u256
L7: loc4: u256
L8: loc5: bool
L9: loc6: u64
L10: loc7: u256
L11: loc8: u256
L12: loc9: u256
L13: loc10: u256
L14: loc11: u256
L15: loc12: u256
L16: loc13: u256
L17: loc14: u256
L18: loc15: u256
L19: loc16: u256
L20: loc17: u256
L21: loc18: u64
L22: loc19: u64
L23: loc20: u64
L24: loc21: u64
B0:
0CopyLoc[0](Arg0: u256)
1LdU8(64)
2Shr
3CastU64
4StLoc[21](loc18: u64)
5MoveLoc[0](Arg0: u256)
6LdConst[4](u256: 1844..)
7BitAnd
8CastU64
9StLoc[23](loc20: u64)
10CopyLoc[1](Arg1: u256)
11LdU8(64)
12Shr
13CastU64
14StLoc[22](loc19: u64)
15MoveLoc[1](Arg1: u256)
16LdConst[4](u256: 1844..)
17BitAnd
18CastU64
19StLoc[24](loc21: u64)
20CopyLoc[21](loc18: u64)
21LdU64(0)
22Eq
23BrFalse(27)
B1:
24LdTrue
25StLoc[3](loc0: bool)
26Branch(38)
B2:
27CopyLoc[22](loc19: u64)
28LdU64(0)
29Eq
30BrFalse(34)
B3:
31LdTrue
32StLoc[3](loc0: bool)
33Branch(38)
B4:
34CopyLoc[21](loc18: u64)
35CopyLoc[22](loc19: u64)
36Eq
37StLoc[3](loc0: bool)
B5:
38MoveLoc[3](loc0: bool)
39BrFalse(42)
B6:
40LdU64(0)
41Ret
B7:
42CopyLoc[21](loc18: u64)
43CopyLoc[22](loc19: u64)
44Lt
45BrFalse(59)
B8:
46MoveLoc[21](loc18: u64)
47CastU256
48MoveLoc[23](loc20: u64)
49CastU256
50MoveLoc[22](loc19: u64)
51CastU256
52MoveLoc[24](loc21: u64)
53CastU256
54StLoc[7](loc4: u256)
55StLoc[6](loc3: u256)
56StLoc[5](loc2: u256)
57StLoc[4](loc1: u256)
58Branch(71)
B9:
59MoveLoc[22](loc19: u64)
60CastU256
61MoveLoc[24](loc21: u64)
62CastU256
63MoveLoc[21](loc18: u64)
64CastU256
65MoveLoc[23](loc20: u64)
66CastU256
67StLoc[7](loc4: u256)
68StLoc[6](loc3: u256)
69StLoc[5](loc2: u256)
70StLoc[4](loc1: u256)
B10:
71MoveLoc[4](loc1: u256)
72MoveLoc[5](loc2: u256)
73MoveLoc[6](loc3: u256)
74MoveLoc[7](loc4: u256)
75StLoc[12](loc9: u256)
76StLoc[11](loc8: u256)
77StLoc[14](loc11: u256)
78StLoc[13](loc10: u256)
79CopyLoc[12](loc9: u256)
80CopyLoc[14](loc11: u256)
81Le
82BrFalse(85)
B11:
83LdU64(0)
84Ret
B12:
85CopyLoc[11](loc8: u256)
86CopyLoc[14](loc11: u256)
87Mul
88StLoc[17](loc14: u256)
89CopyLoc[13](loc10: u256)
90CopyLoc[12](loc9: u256)
91Mul
92StLoc[10](loc7: u256)
93CopyLoc[17](loc14: u256)
94CopyLoc[10](loc7: u256)
95Le
96BrFalse(99)
B13:
97LdU64(0)
98Ret
B14:
99MoveLoc[17](loc14: u256)
100MoveLoc[10](loc7: u256)
101Sub
102StLoc[16](loc13: u256)
103CopyLoc[14](loc11: u256)
104CopyLoc[12](loc9: u256)
105Mul
106CopyLoc[11](loc8: u256)
107CopyLoc[13](loc10: u256)
108Sub
109Mul
110StLoc[15](loc12: u256)
111MoveLoc[13](loc10: u256)
112MoveLoc[11](loc8: u256)
113Mul
114MoveLoc[12](loc9: u256)
115MoveLoc[14](loc11: u256)
116Sub
117Mul
118StLoc[19](loc16: u256)
B15:
119CopyLoc[15](loc12: u256)
120LdConst[1](u256: 3402..)
121Ge
122BrFalse(126)
B16:
123LdTrue
124StLoc[8](loc5: bool)
125Branch(130)
B17:
126CopyLoc[19](loc16: u256)
127LdConst[1](u256: 3402..)
128Ge
129StLoc[8](loc5: bool)
B18:
130MoveLoc[8](loc5: bool)
131BrFalse(149)
B19:
132MoveLoc[15](loc12: u256)
133LdU8(32)
134Shr
135StLoc[15](loc12: u256)
136MoveLoc[19](loc16: u256)
137LdU8(32)
138Shr
139LdU256(1)
140Add
141StLoc[19](loc16: u256)
142MoveLoc[16](loc13: u256)
143LdU8(32)
144Shr
145LdU256(1)
146Add
147StLoc[16](loc13: u256)
148Branch(119)
B20:
149MoveLoc[15](loc12: u256)
150CopyLoc[19](loc16: u256)
151Mul
152Call sqrt(u256): u256
153StLoc[18](loc15: u256)
154CopyLoc[18](loc15: u256)
155CopyLoc[19](loc16: u256)
156Le
157BrFalse(160)
B21:
158LdU64(0)
159Ret
B22:
160MoveLoc[18](loc15: u256)
161MoveLoc[19](loc16: u256)
162Sub
163MoveLoc[16](loc13: u256)
164Div
165StLoc[20](loc17: u256)
166CopyLoc[20](loc17: u256)
167CopyLoc[2](Arg2: u64)
168CastU256
169Gt
170BrFalse(174)
B23:
171MoveLoc[2](Arg2: u64)
172StLoc[9](loc6: u64)
173Branch(177)
B24:
174MoveLoc[20](loc17: u256)
175CastU64
176StLoc[9](loc6: u64)
B25:
177MoveLoc[9](loc6: u64)
178Ret
}
 
public walk_plan(Arg0: &mut Probe, Arg1: &mut Plan): bool {
L2: loc0: bool
L3: loc1: bool
L4: loc2: u64
L5: loc3: &mut Probe
L6: loc4: u64
L7: loc5: u64
L8: loc6: bool
B0:
0MoveLoc[1](Arg1: &mut Plan)
1Call sizing::next(&mut Plan): bool * u64
2StLoc[6](loc4: u64)
3StLoc[8](loc6: bool)
4CopyLoc[8](loc6: bool)
5BrFalse(40)
B1:
6CopyLoc[0](Arg0: &mut Probe)
7ImmBorrowField[16](Probe.walks: u8)
8ReadRef
9LdU8(3)
10Eq
11BrFalse(37)
B2:
12CopyLoc[0](Arg0: &mut Probe)
13ImmBorrowField[8](Probe.best_size: u64)
14ReadRef
15LdU64(0)
16Gt
17BrFalse(34)
B3:
18CopyLoc[0](Arg0: &mut Probe)
19ImmBorrowField[1](Probe.m10: u256)
20ReadRef
21LdU256(0)
22Gt
23BrFalse(31)
B4:
24CopyLoc[0](Arg0: &mut Probe)
25ImmBorrowField[2](Probe.m11: u256)
26ReadRef
27LdU256(0)
28Gt
29StLoc[2](loc0: bool)
30Branch(42)
B5:
31LdFalse
32StLoc[2](loc0: bool)
33Branch(42)
B6:
34LdFalse
35StLoc[2](loc0: bool)
36Branch(42)
B7:
37LdFalse
38StLoc[2](loc0: bool)
39Branch(42)
B8:
40LdFalse
41StLoc[2](loc0: bool)
B9:
42MoveLoc[2](loc0: bool)
43BrFalse(72)
B10:
44CopyLoc[0](Arg0: &mut Probe)
45ImmBorrowField[2](Probe.m11: u256)
46ReadRef
47CopyLoc[0](Arg0: &mut Probe)
48ImmBorrowField[1](Probe.m10: u256)
49ReadRef
50CopyLoc[0](Arg0: &mut Probe)
51ImmBorrowField[11](Probe.cap: u64)
52ReadRef
53Call fit_direct_peak(u256, u256, u64): u64
54StLoc[7](loc5: u64)
55CopyLoc[7](loc5: u64)
56LdU64(0)
57Gt
58BrFalse(66)
B11:
59CopyLoc[7](loc5: u64)
60CopyLoc[0](Arg0: &mut Probe)
61ImmBorrowField[8](Probe.best_size: u64)
62ReadRef
63Neq
64StLoc[3](loc1: bool)
65Branch(68)
B12:
66LdFalse
67StLoc[3](loc1: bool)
B13:
68MoveLoc[3](loc1: bool)
69BrFalse(72)
B14:
70MoveLoc[7](loc5: u64)
71StLoc[6](loc4: u64)
B15:
72CopyLoc[0](Arg0: &mut Probe)
73StLoc[5](loc3: &mut Probe)
74CopyLoc[8](loc6: bool)
75BrFalse(79)
B16:
76MoveLoc[6](loc4: u64)
77StLoc[4](loc2: u64)
78Branch(81)
B17:
79LdU64(0)
80StLoc[4](loc2: u64)
B18:
81MoveLoc[5](loc3: &mut Probe)
82MoveLoc[4](loc2: u64)
83Call check_size(&mut Probe, u64)
84CopyLoc[8](loc6: bool)
85BrFalse(95)
B19:
86CopyLoc[0](Arg0: &mut Probe)
87ImmBorrowField[16](Probe.walks: u8)
88ReadRef
89LdU8(1)
90Add
91MoveLoc[0](Arg0: &mut Probe)
92MutBorrowField[16](Probe.walks: u8)
93WriteRef
94Branch(97)
B20:
95MoveLoc[0](Arg0: &mut Probe)
96Pop
B21:
97MoveLoc[8](loc6: bool)
98Ret
}
 
public begin_adaptive(Arg0: u64, Arg1: u64, Arg2: u64, Arg3: u8): Probe * Plan {
L4: loc0: bool
L5: loc1: Probe
B0:
0CopyLoc[0](Arg0: u64)
1LdU64(0)
2Gt
3BrFalse(9)
B1:
4CopyLoc[1](Arg1: u64)
5LdU64(0)
6Gt
7StLoc[4](loc0: bool)
8Branch(11)
B2:
9LdFalse
10StLoc[4](loc0: bool)
B3:
11MoveLoc[4](loc0: bool)
12BrFalse(14)
B4:
13Branch(16)
B5:
14LdConst[5](u64: 0)
15Abort
B6:
16CopyLoc[0](Arg0: u64)
17Call begin_at(u64): Probe
18StLoc[5](loc1: Probe)
19MutBorrowLoc[5](loc1: Probe)
20CopyLoc[1](Arg1: u64)
21MoveLoc[2](Arg2: u64)
22Call plan(&mut Probe, u64, u64)
23LdU64(0)
24MutBorrowLoc[5](loc1: Probe)
25MutBorrowField[10](Probe.model: u64)
26WriteRef
27MoveLoc[5](loc1: Probe)
28MoveLoc[0](Arg0: u64)
29MoveLoc[1](Arg1: u64)
30MoveLoc[3](Arg3: u8)
31Call sizing::adaptive_bracket(u64, u64, u8): Plan
32Ret
}
 
public walk_adaptive(Arg0: &mut Probe, Arg1: &mut Plan): bool {
L2: loc0: bool
L3: loc1: u64
L4: loc2: u64
L5: loc3: u64
L6: loc4: u64
L7: loc5: &mut Probe
L8: loc6: bool
L9: loc7: bool
L10: loc8: bool
L11: loc9: bool
L12: loc10: bool
L13: loc11: bool
L14: loc12: bool
L15: loc13: u64
L16: loc14: u64
L17: loc15: u64
L18: loc16: u64
L19: loc17: u64
L20: loc18: u64
L21: loc19: u64
L22: loc20: u64
L23: loc21: bool
L24: loc22: u64
L25: loc23: bool
L26: loc24: u64
L27: loc25: u64
L28: loc26: u64
B0:
0LdU64(0)
1StLoc[24](loc22: u64)
2CopyLoc[1](Arg1: &mut Plan)
3FreezeRef
4Call sizing::coverage_complete(&Plan): bool
5StLoc[25](loc23: bool)
6CopyLoc[25](loc23: bool)
7BrFalse(16)
B1:
8CopyLoc[1](Arg1: &mut Plan)
9FreezeRef
10CopyLoc[0](Arg0: &mut Probe)
11ImmBorrowField[10](Probe.model: u64)
12ReadRef
13Call sizing::unseen(&Plan, u64): bool
14StLoc[2](loc0: bool)
15Branch(18)
B2:
16LdFalse
17StLoc[2](loc0: bool)
B3:
18MoveLoc[2](loc0: bool)
19BrFalse(28)
B4:
20CopyLoc[0](Arg0: &mut Probe)
21ImmBorrowField[10](Probe.model: u64)
22ReadRef
23StLoc[24](loc22: u64)
24LdU64(0)
25CopyLoc[0](Arg0: &mut Probe)
26MutBorrowField[10](Probe.model: u64)
27WriteRef
B5:
28CopyLoc[25](loc23: bool)
29BrFalse(68)
B6:
30CopyLoc[24](loc22: u64)
31LdU64(0)
32Eq
33BrFalse(65)
B7:
34CopyLoc[0](Arg0: &mut Probe)
35ImmBorrowField[14](Probe.hi_known: bool)
36ReadRef
37Not
38BrFalse(62)
B8:
39CopyLoc[0](Arg0: &mut Probe)
40ImmBorrowField[8](Probe.best_size: u64)
41ReadRef
42CastU256
43CopyLoc[0](Arg0: &mut Probe)
44ImmBorrowField[6](Probe.reference: u64)
45ReadRef
46CastU256
47LdU256(2)
48Mul
49Ge
50BrFalse(59)
B9:
51CopyLoc[1](Arg1: &mut Plan)
52FreezeRef
53CopyLoc[0](Arg0: &mut Probe)
54ImmBorrowField[11](Probe.cap: u64)
55ReadRef
56Call sizing::unseen(&Plan, u64): bool
57StLoc[8](loc6: bool)
58Branch(70)
B10:
59LdFalse
60StLoc[8](loc6: bool)
61Branch(70)
B11:
62LdFalse
63StLoc[8](loc6: bool)
64Branch(70)
B12:
65LdFalse
66StLoc[8](loc6: bool)
67Branch(70)
B13:
68LdFalse
69StLoc[8](loc6: bool)
B14:
70MoveLoc[8](loc6: bool)
71BrFalse(76)
B15:
72CopyLoc[0](Arg0: &mut Probe)
73ImmBorrowField[11](Probe.cap: u64)
74ReadRef
75StLoc[24](loc22: u64)
B16:
76CopyLoc[24](loc22: u64)
77LdU64(0)
78Eq
79BrFalse(105)
B17:
80CopyLoc[0](Arg0: &mut Probe)
81ImmBorrowField[16](Probe.walks: u8)
82ReadRef
83LdU8(3)
84Eq
85BrFalse(93)
B18:
86CopyLoc[0](Arg0: &mut Probe)
87ImmBorrowField[8](Probe.best_size: u64)
88ReadRef
89LdU64(0)
90Gt
91StLoc[11](loc9: bool)
92Branch(95)
B19:
93LdFalse
94StLoc[11](loc9: bool)
B20:
95MoveLoc[11](loc9: bool)
96BrFalse(100)
B21:
97LdTrue
98StLoc[10](loc8: bool)
99Branch(102)
B22:
100CopyLoc[25](loc23: bool)
101StLoc[10](loc8: bool)
B23:
102MoveLoc[10](loc8: bool)
103StLoc[9](loc7: bool)
104Branch(107)
B24:
105LdFalse
106StLoc[9](loc7: bool)
B25:
107MoveLoc[9](loc7: bool)
108BrFalse(127)
B26:
109CopyLoc[0](Arg0: &mut Probe)
110ImmBorrowField[2](Probe.m11: u256)
111ReadRef
112CopyLoc[0](Arg0: &mut Probe)
113ImmBorrowField[1](Probe.m10: u256)
114ReadRef
115CopyLoc[0](Arg0: &mut Probe)
116ImmBorrowField[11](Probe.cap: u64)
117ReadRef
118Call fit_direct_peak(u256, u256, u64): u64
119StLoc[19](loc17: u64)
120CopyLoc[1](Arg1: &mut Plan)
121FreezeRef
122CopyLoc[19](loc17: u64)
123Call sizing::unseen(&Plan, u64): bool
124BrFalse(127)
B27:
125MoveLoc[19](loc17: u64)
126StLoc[24](loc22: u64)
B28:
127CopyLoc[24](loc22: u64)
128LdU64(0)
129Eq
130BrFalse(171)
B29:
131CopyLoc[0](Arg0: &mut Probe)
132ImmBorrowField[16](Probe.walks: u8)
133ReadRef
134LdU8(3)
135Eq
136BrFalse(168)
B30:
137CopyLoc[0](Arg0: &mut Probe)
138ImmBorrowField[14](Probe.hi_known: bool)
139ReadRef
140Not
141BrFalse(165)
B31:
142CopyLoc[0](Arg0: &mut Probe)
143ImmBorrowField[8](Probe.best_size: u64)
144ReadRef
145CastU256
146CopyLoc[0](Arg0: &mut Probe)
147ImmBorrowField[6](Probe.reference: u64)
148ReadRef
149CastU256
150LdU256(2)
151Mul
152Ge
153BrFalse(162)
B32:
154CopyLoc[1](Arg1: &mut Plan)
155FreezeRef
156CopyLoc[0](Arg0: &mut Probe)
157ImmBorrowField[11](Probe.cap: u64)
158ReadRef
159Call sizing::unseen(&Plan, u64): bool
160StLoc[12](loc10: bool)
161Branch(173)
B33:
162LdFalse
163StLoc[12](loc10: bool)
164Branch(173)
B34:
165LdFalse
166StLoc[12](loc10: bool)
167Branch(173)
B35:
168LdFalse
169StLoc[12](loc10: bool)
170Branch(173)
B36:
171LdFalse
172StLoc[12](loc10: bool)
B37:
173MoveLoc[12](loc10: bool)
174BrFalse(179)
B38:
175CopyLoc[0](Arg0: &mut Probe)
176ImmBorrowField[11](Probe.cap: u64)
177ReadRef
178StLoc[24](loc22: u64)
B39:
179MoveLoc[25](loc23: bool)
180BrFalse(186)
B40:
181CopyLoc[24](loc22: u64)
182LdU64(0)
183Eq
184StLoc[13](loc11: bool)
185Branch(188)
B41:
186LdFalse
187StLoc[13](loc11: bool)
B42:
188MoveLoc[13](loc11: bool)
189BrFalse(307)
B43:
190CopyLoc[0](Arg0: &mut Probe)
191ImmBorrowField[8](Probe.best_size: u64)
192ReadRef
193LdU64(0)
194Gt
195BrFalse(294)
B44:
196CopyLoc[0](Arg0: &mut Probe)
197ImmBorrowField[8](Probe.best_size: u64)
198ReadRef
199StLoc[17](loc15: u64)
200CopyLoc[0](Arg0: &mut Probe)
201ImmBorrowField[14](Probe.hi_known: bool)
202ReadRef
203BrFalse(211)
B45:
204CopyLoc[0](Arg0: &mut Probe)
205ImmBorrowField[13](Probe.hi: u64)
206ReadRef
207CopyLoc[17](loc15: u64)
208Gt
209StLoc[14](loc12: bool)
210Branch(213)
B46:
211LdFalse
212StLoc[14](loc12: bool)
B47:
213MoveLoc[14](loc12: bool)
214BrFalse(220)
B48:
215CopyLoc[0](Arg0: &mut Probe)
216ImmBorrowField[13](Probe.hi: u64)
217ReadRef
218StLoc[15](loc13: u64)
219Branch(224)
B49:
220CopyLoc[0](Arg0: &mut Probe)
221ImmBorrowField[11](Probe.cap: u64)
222ReadRef
223StLoc[15](loc13: u64)
B50:
224MoveLoc[15](loc13: u64)
225StLoc[20](loc18: u64)
226CopyLoc[0](Arg0: &mut Probe)
227ImmBorrowField[12](Probe.lo: u64)
228ReadRef
229CopyLoc[17](loc15: u64)
230Lt
231BrFalse(237)
B51:
232CopyLoc[0](Arg0: &mut Probe)
233ImmBorrowField[12](Probe.lo: u64)
234ReadRef
235StLoc[3](loc1: u64)
236Branch(239)
B52:
237LdU64(0)
238StLoc[3](loc1: u64)
B53:
239MoveLoc[3](loc1: u64)
240StLoc[22](loc20: u64)
241CopyLoc[22](loc20: u64)
242CopyLoc[17](loc15: u64)
243CopyLoc[22](loc20: u64)
244Sub
245LdU64(2)
246Div
247Add
248StLoc[21](loc19: u64)
249CopyLoc[17](loc15: u64)
250CopyLoc[20](loc18: u64)
251CopyLoc[17](loc15: u64)
252Sub
253LdU64(2)
254Div
255Add
256StLoc[26](loc24: u64)
257MoveLoc[20](loc18: u64)
258CopyLoc[17](loc15: u64)
259Sub
260MoveLoc[17](loc15: u64)
261MoveLoc[22](loc20: u64)
262Sub
263Ge
264BrFalse(270)
B54:
265MoveLoc[26](loc24: u64)
266MoveLoc[21](loc19: u64)
267StLoc[5](loc3: u64)
268StLoc[4](loc2: u64)
269Branch(274)
B55:
270MoveLoc[21](loc19: u64)
271MoveLoc[26](loc24: u64)
272StLoc[5](loc3: u64)
273StLoc[4](loc2: u64)
B56:
274MoveLoc[4](loc2: u64)
275MoveLoc[5](loc3: u64)
276StLoc[27](loc25: u64)
277StLoc[18](loc16: u64)
278CopyLoc[1](Arg1: &mut Plan)
279FreezeRef
280CopyLoc[18](loc16: u64)
281Call sizing::unseen(&Plan, u64): bool
282BrFalse(286)
B57:
283MoveLoc[18](loc16: u64)
284StLoc[24](loc22: u64)
285Branch(307)
B58:
286CopyLoc[1](Arg1: &mut Plan)
287FreezeRef
288CopyLoc[27](loc25: u64)
289Call sizing::unseen(&Plan, u64): bool
290BrFalse(307)
B59:
291MoveLoc[27](loc25: u64)
292StLoc[24](loc22: u64)
293Branch(307)
B60:
294CopyLoc[0](Arg0: &mut Probe)
295ImmBorrowField[15](Probe.smallest: u64)
296ReadRef
297LdU64(2)
298Div
299StLoc[28](loc26: u64)
300CopyLoc[1](Arg1: &mut Plan)
301FreezeRef
302CopyLoc[28](loc26: u64)
303Call sizing::unseen(&Plan, u64): bool
304BrFalse(307)
B61:
305MoveLoc[28](loc26: u64)
306StLoc[24](loc22: u64)
B62:
307MoveLoc[1](Arg1: &mut Plan)
308MoveLoc[24](loc22: u64)
309Call sizing::next_adaptive(&mut Plan, u64): bool * u64
310StLoc[16](loc14: u64)
311StLoc[23](loc21: bool)
312CopyLoc[0](Arg0: &mut Probe)
313StLoc[7](loc5: &mut Probe)
314CopyLoc[23](loc21: bool)
315BrFalse(319)
B63:
316CopyLoc[16](loc14: u64)
317StLoc[6](loc4: u64)
318Branch(321)
B64:
319LdU64(0)
320StLoc[6](loc4: u64)
B65:
321MoveLoc[7](loc5: &mut Probe)
322MoveLoc[6](loc4: u64)
323Call check_size(&mut Probe, u64)
324CopyLoc[23](loc21: bool)
325BrFalse(348)
B66:
326CopyLoc[0](Arg0: &mut Probe)
327ImmBorrowField[16](Probe.walks: u8)
328ReadRef
329LdU8(1)
330Add
331CopyLoc[0](Arg0: &mut Probe)
332MutBorrowField[16](Probe.walks: u8)
333WriteRef
334CopyLoc[16](loc14: u64)
335CopyLoc[0](Arg0: &mut Probe)
336ImmBorrowField[15](Probe.smallest: u64)
337ReadRef
338Lt
339BrFalse(345)
B67:
340MoveLoc[16](loc14: u64)
341MoveLoc[0](Arg0: &mut Probe)
342MutBorrowField[15](Probe.smallest: u64)
343WriteRef
344Branch(350)
B68:
345MoveLoc[0](Arg0: &mut Probe)
346Pop
347Branch(350)
B69:
348MoveLoc[0](Arg0: &mut Probe)
349Pop
B70:
350MoveLoc[23](loc21: bool)
351Ret
}
 
public check_end_with_cost(Arg0: &mut Probe, Arg1: u64) {
L2: loc0: u64
L3: loc1: u64
L4: loc2: u64
B0:
0CopyLoc[0](Arg0: &mut Probe)
1ImmBorrowField[17](Probe.checking: bool)
2ReadRef
3BrFalse(50)
B1:
4CopyLoc[1](Arg1: u64)
5CopyLoc[0](Arg0: &mut Probe)
6ImmBorrowField[21](Probe.base_left: u64)
7ReadRef
8Lt
9BrFalse(13)
B2:
10CopyLoc[1](Arg1: u64)
11StLoc[2](loc0: u64)
12Branch(17)
B3:
13CopyLoc[0](Arg0: &mut Probe)
14ImmBorrowField[21](Probe.base_left: u64)
15ReadRef
16StLoc[2](loc0: u64)
B4:
17MoveLoc[2](loc0: u64)
18StLoc[3](loc1: u64)
19CopyLoc[0](Arg0: &mut Probe)
20ImmBorrowField[21](Probe.base_left: u64)
21ReadRef
22CopyLoc[3](loc1: u64)
23Sub
24CopyLoc[0](Arg0: &mut Probe)
25MutBorrowField[21](Probe.base_left: u64)
26WriteRef
27MoveLoc[1](Arg1: u64)
28MoveLoc[3](loc1: u64)
29Sub
30StLoc[4](loc2: u64)
31CopyLoc[4](loc2: u64)
32CopyLoc[0](Arg0: &mut Probe)
33ImmBorrowField[20](Probe.quote_amount: u64)
34ReadRef
35Gt
36BrFalse(42)
B5:
37LdFalse
38CopyLoc[0](Arg0: &mut Probe)
39MutBorrowField[17](Probe.checking: bool)
40WriteRef
41Branch(50)
B6:
42CopyLoc[0](Arg0: &mut Probe)
43ImmBorrowField[20](Probe.quote_amount: u64)
44ReadRef
45MoveLoc[4](loc2: u64)
46Sub
47CopyLoc[0](Arg0: &mut Probe)
48MutBorrowField[20](Probe.quote_amount: u64)
49WriteRef
B7:
50MoveLoc[0](Arg0: &mut Probe)
51Call check_end(&mut Probe)
52Ret
}
 
public walks(Arg0: &Probe): u8 {
B0:
0MoveLoc[0](Arg0: &Probe)
1ImmBorrowField[16](Probe.walks: u8)
2ReadRef
3Ret
}
 
public choose(Arg0: &mut Probe) {
B0:
0CopyLoc[0](Arg0: &mut Probe)
1ImmBorrowField[8](Probe.best_size: u64)
2ReadRef
3LdU64(0)
4Gt
5BrFalse(7)
B1:
6Branch(11)
B2:
7MoveLoc[0](Arg0: &mut Probe)
8Pop
9LdConst[6](u64: 1)
10Abort
B3:
11CopyLoc[0](Arg0: &mut Probe)
12ImmBorrowField[8](Probe.best_size: u64)
13ReadRef
14CopyLoc[0](Arg0: &mut Probe)
15MutBorrowField[4](Probe.size: u64)
16WriteRef
17CopyLoc[0](Arg0: &mut Probe)
18ImmBorrowField[9](Probe.best_gross: u64)
19ReadRef
20CopyLoc[0](Arg0: &mut Probe)
21MutBorrowField[5](Probe.gross: u64)
22WriteRef
23LdFalse
24MoveLoc[0](Arg0: &mut Probe)
25MutBorrowField[17](Probe.checking: bool)
26WriteRef
27Ret
}
 
public check_size(Arg0: &mut Probe, Arg1: u64) {
B0:
0CopyLoc[1](Arg1: u64)
1LdU64(0)
2Gt
3CopyLoc[0](Arg0: &mut Probe)
4MutBorrowField[17](Probe.checking: bool)
5WriteRef
6CopyLoc[0](Arg0: &mut Probe)
7ImmBorrowField[17](Probe.checking: bool)
8ReadRef
9CopyLoc[0](Arg0: &mut Probe)
10MutBorrowField[18](Probe.walking: bool)
11WriteRef
12CopyLoc[1](Arg1: u64)
13CopyLoc[0](Arg0: &mut Probe)
14MutBorrowField[19](Probe.quote_size: u64)
15WriteRef
16MoveLoc[1](Arg1: u64)
17CopyLoc[0](Arg0: &mut Probe)
18MutBorrowField[20](Probe.quote_amount: u64)
19WriteRef
20LdU64(0)
21MoveLoc[0](Arg0: &mut Probe)
22MutBorrowField[21](Probe.base_left: u64)
23WriteRef
24Ret
}
 
public settled(Arg0: &Probe): bool {
B0:
0MoveLoc[0](Arg0: &Probe)
1ImmBorrowField[8](Probe.best_size: u64)
2ReadRef
3LdU64(0)
4Gt
5Ret
}
 
public accept(Arg0: &mut Probe): bool {
B0:
0CopyLoc[0](Arg0: &mut Probe)
1ImmBorrowField[8](Probe.best_size: u64)
2ReadRef
3LdU64(0)
4Eq
5BrFalse(12)
B1:
6LdFalse
7MoveLoc[0](Arg0: &mut Probe)
8MutBorrowField[17](Probe.checking: bool)
9WriteRef
10LdFalse
11Ret
B2:
12CopyLoc[0](Arg0: &mut Probe)
13ImmBorrowField[8](Probe.best_size: u64)
14ReadRef
15CopyLoc[0](Arg0: &mut Probe)
16MutBorrowField[4](Probe.size: u64)
17WriteRef
18CopyLoc[0](Arg0: &mut Probe)
19ImmBorrowField[9](Probe.best_gross: u64)
20ReadRef
21CopyLoc[0](Arg0: &mut Probe)
22MutBorrowField[5](Probe.gross: u64)
23WriteRef
24LdFalse
25MoveLoc[0](Arg0: &mut Probe)
26MutBorrowField[17](Probe.checking: bool)
27WriteRef
28LdTrue
29Ret
}
 
public(friend) model_rate(Arg0: &Probe): u256 {
B0:
0CopyLoc[0](Arg0: &Probe)
1ImmBorrowField[0](Probe.m00: u256)
2ReadRef
3LdConst[2](u256: 1844..)
4Mul
5MoveLoc[0](Arg0: &Probe)
6ImmBorrowField[2](Probe.m11: u256)
7ReadRef
8Div
9Ret
}
 
public(friend) model_size(Arg0: &Probe, Arg1: u64): u64 {
L2: loc0: u256
L3: loc1: u256
L4: loc2: u256
B0:
0CopyLoc[0](Arg0: &Probe)
1ImmBorrowField[0](Probe.m00: u256)
2ReadRef
3CopyLoc[0](Arg0: &Probe)
4ImmBorrowField[2](Probe.m11: u256)
5ReadRef
6Le
7BrFalse(12)
B1:
8MoveLoc[0](Arg0: &Probe)
9Pop
10LdU64(0)
11Ret
B2:
12CopyLoc[0](Arg0: &Probe)
13ImmBorrowField[1](Probe.m10: u256)
14ReadRef
15LdU256(0)
16Eq
17BrFalse(24)
B3:
18MoveLoc[0](Arg0: &Probe)
19Pop
20CopyLoc[1](Arg1: u64)
21CastU256
22StLoc[2](loc0: u256)
23Branch(41)
B4:
24CopyLoc[0](Arg0: &Probe)
25ImmBorrowField[0](Probe.m00: u256)
26ReadRef
27CopyLoc[0](Arg0: &Probe)
28ImmBorrowField[2](Probe.m11: u256)
29ReadRef
30Mul
31Call sqrt(u256): u256
32CopyLoc[0](Arg0: &Probe)
33ImmBorrowField[2](Probe.m11: u256)
34ReadRef
35Sub
36MoveLoc[0](Arg0: &Probe)
37ImmBorrowField[1](Probe.m10: u256)
38ReadRef
39Div
40StLoc[2](loc0: u256)
B5:
41MoveLoc[2](loc0: u256)
42StLoc[4](loc2: u256)
43CopyLoc[4](loc2: u256)
44CopyLoc[1](Arg1: u64)
45CastU256
46Gt
47BrFalse(52)
B6:
48MoveLoc[1](Arg1: u64)
49CastU256
50StLoc[3](loc1: u256)
51Branch(54)
B7:
52MoveLoc[4](loc2: u256)
53StLoc[3](loc1: u256)
B8:
54MoveLoc[3](loc1: u256)
55CastU64
56Ret
}
 
public(friend) model_out(Arg0: &Probe, Arg1: u64): u64 {
L2: loc0: u256
B0:
0CopyLoc[0](Arg0: &Probe)
1ImmBorrowField[0](Probe.m00: u256)
2ReadRef
3CopyLoc[1](Arg1: u64)
4CastU256
5Mul
6CopyLoc[0](Arg0: &Probe)
7ImmBorrowField[1](Probe.m10: u256)
8ReadRef
9MoveLoc[1](Arg1: u64)
10CastU256
11Mul
12MoveLoc[0](Arg0: &Probe)
13ImmBorrowField[2](Probe.m11: u256)
14ReadRef
15Add
16Div
17StLoc[2](loc0: u256)
18CopyLoc[2](loc0: u256)
19LdConst[4](u256: 1844..)
20Le
21BrFalse(23)
B1:
22Branch(25)
B2:
23LdConst[5](u64: 0)
24Abort
B3:
25MoveLoc[2](loc0: u256)
26CastU64
27Ret
}
 
public size(Arg0: &Probe): u64 {
B0:
0MoveLoc[0](Arg0: &Probe)
1ImmBorrowField[4](Probe.size: u64)
2ReadRef
3Ret
}
 
public gross(Arg0: &Probe): u64 {
B0:
0MoveLoc[0](Arg0: &Probe)
1ImmBorrowField[5](Probe.gross: u64)
2ReadRef
3Ret
}
 
public finish(Arg0: Probe) {
B0:
0Ret
}
 
public sqrt(Arg0: u256): u256 {
L1: loc0: u8
L2: loc1: u256
L3: loc2: u256
L4: loc3: u256
B0:
0CopyLoc[0](Arg0: u256)
1LdU256(2)
2Lt
3BrFalse(6)
B1:
4MoveLoc[0](Arg0: u256)
5Ret
B2:
6CopyLoc[0](Arg0: u256)
7StLoc[2](loc1: u256)
8LdU8(0)
9StLoc[1](loc0: u8)
10CopyLoc[2](loc1: u256)
11LdU256(340282366920938463463374607431768211456)
12Ge
13BrFalse(22)
B3:
14MoveLoc[2](loc1: u256)
15LdU8(128)
16Shr
17StLoc[2](loc1: u256)
18MoveLoc[1](loc0: u8)
19LdU8(128)
20Add
21StLoc[1](loc0: u8)
B4:
22CopyLoc[2](loc1: u256)
23LdU256(18446744073709551616)
24Ge
25BrFalse(34)
B5:
26MoveLoc[2](loc1: u256)
27LdU8(64)
28Shr
29StLoc[2](loc1: u256)
30MoveLoc[1](loc0: u8)
31LdU8(64)
32Add
33StLoc[1](loc0: u8)
B6:
34CopyLoc[2](loc1: u256)
35LdU256(4294967296)
36Ge
37BrFalse(46)
B7:
38MoveLoc[2](loc1: u256)
39LdU8(32)
40Shr
41StLoc[2](loc1: u256)
42MoveLoc[1](loc0: u8)
43LdU8(32)
44Add
45StLoc[1](loc0: u8)
B8:
46CopyLoc[2](loc1: u256)
47LdU256(65536)
48Ge
49BrFalse(58)
B9:
50MoveLoc[2](loc1: u256)
51LdU8(16)
52Shr
53StLoc[2](loc1: u256)
54MoveLoc[1](loc0: u8)
55LdU8(16)
56Add
57StLoc[1](loc0: u8)
B10:
58CopyLoc[2](loc1: u256)
59LdU256(256)
60Ge
61BrFalse(70)
B11:
62MoveLoc[2](loc1: u256)
63LdU8(8)
64Shr
65StLoc[2](loc1: u256)
66MoveLoc[1](loc0: u8)
67LdU8(8)
68Add
69StLoc[1](loc0: u8)
B12:
70CopyLoc[2](loc1: u256)
71LdU256(16)
72Ge
73BrFalse(82)
B13:
74MoveLoc[2](loc1: u256)
75LdU8(4)
76Shr
77StLoc[2](loc1: u256)
78MoveLoc[1](loc0: u8)
79LdU8(4)
80Add
81StLoc[1](loc0: u8)
B14:
82CopyLoc[2](loc1: u256)
83LdU256(4)
84Ge
85BrFalse(94)
B15:
86MoveLoc[2](loc1: u256)
87LdU8(2)
88Shr
89StLoc[2](loc1: u256)
90MoveLoc[1](loc0: u8)
91LdU8(2)
92Add
93StLoc[1](loc0: u8)
B16:
94MoveLoc[2](loc1: u256)
95LdU256(2)
96Ge
97BrFalse(102)
B17:
98MoveLoc[1](loc0: u8)
99LdU8(1)
100Add
101StLoc[1](loc0: u8)
B18:
102LdU256(1)
103MoveLoc[1](loc0: u8)
104LdU8(2)
105Div
106LdU8(1)
107Add
108Shl
109StLoc[3](loc2: u256)
110CopyLoc[3](loc2: u256)
111LdU256(1)
112Add
113StLoc[4](loc3: u256)
B19:
114CopyLoc[3](loc2: u256)
115CopyLoc[4](loc3: u256)
116Lt
117BrFalse(129)
B20:
118CopyLoc[3](loc2: u256)
119StLoc[4](loc3: u256)
120CopyLoc[0](Arg0: u256)
121CopyLoc[3](loc2: u256)
122Div
123MoveLoc[3](loc2: u256)
124Add
125LdU256(2)
126Div
127StLoc[3](loc2: u256)
128Branch(114)
B21:
129MoveLoc[4](loc3: u256)
130Ret
}
 
Constants [
0 => u256: 1329227995784915872903807060280344576
1 => u256: 340282366920938463463374607431768211456
2 => u256: 18446744073709551616
3 => u256: 1000000
4 => u256: 18446744073709551615
5 => u64: 0
6 => u64: 1
]
}