random
Module0x0000…0002
- Move path
- 0x0000…0002::random
- Functions
- 2015 public, 0 entry
- Structs
- 3
- Friend modules
- None
random
- accumulator18
- accumulator_metadata2
- accumulator_settlement8
- address10
- address_alias5
- allowance40
- authenticator_state13
- bag10
- balance18
- bcs30
- bls1238143
- borrow4
- clock3
- coin54
- coin_registry43
- config11
- deny_list21
- derived_object3
- display14
- display_registry18
- dynamic_field19
- dynamic_object_field15
- ecdsa_k13
- ecdsa_r12
- ecvrf1
- ed255191
- event3
- forwarding_address1
- funds_accumulator12
- groth1610
- group_ops23
- hash2
- hex3
- hmac1
- kiosk41
- kiosk_extension14
- linked_table19
- math7
- nitro_attestation11
- object32
- object_bag11
- object_table10
- package26
- party5
- pay8
- poseidon2
- priority_queue8
- protocol_config1
- prover0
- random20
- rangeproofs3
- ristretto25518
- scratch18
- sui2
- table10
- table_vec12
- token45
- transfer16
- transfer_policy18
- tx_context19
- types1
- url4
- vdf4
- vec_map20
- vec_set11
- versioned7
- zklogin_verified_id9
- zklogin_verified_issuer6
Bytecode1604 lines
The on-chain disassembly. Offsets are instruction numbers within each function.
// Move bytecode v7
module 2.random {
use 0000000000000000000000000000000000000000000000000000000000000001::bcs;
use 0000000000000000000000000000000000000000000000000000000000000001::vector;
use 0000000000000000000000000000000000000000000000000000000000000002::address;
use 0000000000000000000000000000000000000000000000000000000000000002::hmac;
use 0000000000000000000000000000000000000000000000000000000000000002::object;
use 0000000000000000000000000000000000000000000000000000000000000002::transfer;
use 0000000000000000000000000000000000000000000000000000000000000002::tx_context;
use 0000000000000000000000000000000000000000000000000000000000000002::versioned;
struct Random has key {
id: UID,
inner: Versioned
}
struct RandomInner has store {
version: u64,
epoch: u64,
randomness_round: u64,
random_bytes: vector<u8>
}
struct RandomGenerator has drop {
seed: vector<u8>,
counter: u16,
buffer: vector<u8>
}
create(Arg0: &mut TxContext) {
L1: loc0: RandomInner
L2: loc1: u64
B0:
0CopyLoc[0](Arg0: &mut TxContext)
1FreezeRef
2Call tx_context::sender(&TxContext): address
3LdConst[7](address: 0x00..)
4Eq
5BrFalse(7)
B1:
6Branch(11)
B2:
7MoveLoc[0](Arg0: &mut TxContext)
8Pop
9LdConst[0](u64: 0)
10Abort
B3:
11LdConst[1](u64: 1)
12StLoc[2](loc1: u64)
13CopyLoc[2](loc1: u64)
14CopyLoc[0](Arg0: &mut TxContext)
15FreezeRef
16Call tx_context::epoch(&TxContext): u64
17LdU64(0)
18LdConst[8](vector<u8>: "" /..)
19Pack[1](RandomInner)
20StLoc[1](loc0: RandomInner)
21Call object::randomness_state(): UID
22MoveLoc[2](loc1: u64)
23MoveLoc[1](loc0: RandomInner)
24MoveLoc[0](Arg0: &mut TxContext)
25Call versioned::create<RandomInner>(u64, RandomInner, &mut TxContext): Versioned
26Pack[0](Random)
27Call transfer::share_object<Random>(Random)
28Ret
}
load_inner_mut(Arg0: &mut Random): &mut RandomInner {
L1: loc0: &mut RandomInner
L2: loc1: u64
B0:
0CopyLoc[0](Arg0: &mut Random)
1ImmBorrowField[0](Random.inner: Versioned)
2Call versioned::version(&Versioned): u64
3StLoc[2](loc1: u64)
4CopyLoc[2](loc1: u64)
5LdConst[1](u64: 1)
6Eq
7BrFalse(9)
B1:
8Branch(13)
B2:
9MoveLoc[0](Arg0: &mut Random)
10Pop
11LdConst[1](u64: 1)
12Abort
B3:
13MoveLoc[0](Arg0: &mut Random)
14MutBorrowField[0](Random.inner: Versioned)
15Call versioned::load_value_mut<RandomInner>(&mut Versioned): &mut RandomInner
16StLoc[1](loc0: &mut RandomInner)
17CopyLoc[1](loc0: &mut RandomInner)
18ImmBorrowField[1](RandomInner.version: u64)
19ReadRef
20MoveLoc[2](loc1: u64)
21Eq
22BrFalse(24)
B4:
23Branch(28)
B5:
24MoveLoc[1](loc0: &mut RandomInner)
25Pop
26LdConst[1](u64: 1)
27Abort
B6:
28MoveLoc[1](loc0: &mut RandomInner)
29Ret
}
load_inner(Arg0: &Random): &RandomInner {
L1: loc0: &RandomInner
L2: loc1: u64
B0:
0CopyLoc[0](Arg0: &Random)
1ImmBorrowField[0](Random.inner: Versioned)
2Call versioned::version(&Versioned): u64
3StLoc[2](loc1: u64)
4CopyLoc[2](loc1: u64)
5LdConst[1](u64: 1)
6Eq
7BrFalse(9)
B1:
8Branch(13)
B2:
9MoveLoc[0](Arg0: &Random)
10Pop
11LdConst[1](u64: 1)
12Abort
B3:
13MoveLoc[0](Arg0: &Random)
14ImmBorrowField[0](Random.inner: Versioned)
15Call versioned::load_value<RandomInner>(&Versioned): &RandomInner
16StLoc[1](loc0: &RandomInner)
17CopyLoc[1](loc0: &RandomInner)
18ImmBorrowField[1](RandomInner.version: u64)
19ReadRef
20MoveLoc[2](loc1: u64)
21Eq
22BrFalse(24)
B4:
23Branch(28)
B5:
24MoveLoc[1](loc0: &RandomInner)
25Pop
26LdConst[1](u64: 1)
27Abort
B6:
28MoveLoc[1](loc0: &RandomInner)
29Ret
}
update_randomness_state(Arg0: &mut Random, Arg1: u64, Arg2: vector<u8>, Arg3: &TxContext) {
L4: loc0: bool
L5: loc1: bool
L6: loc2: bool
L7: loc3: u64
L8: loc4: &mut RandomInner
B0:
0CopyLoc[3](Arg3: &TxContext)
1Call tx_context::sender(&TxContext): address
2LdConst[7](address: 0x00..)
3Eq
4BrFalse(6)
B1:
5Branch(12)
B2:
6MoveLoc[0](Arg0: &mut Random)
7Pop
8MoveLoc[3](Arg3: &TxContext)
9Pop
10LdConst[0](u64: 0)
11Abort
B3:
12CopyLoc[3](Arg3: &TxContext)
13Call tx_context::epoch(&TxContext): u64
14StLoc[7](loc3: u64)
15MoveLoc[0](Arg0: &mut Random)
16Call load_inner_mut(&mut Random): &mut RandomInner
17StLoc[8](loc4: &mut RandomInner)
18CopyLoc[8](loc4: &mut RandomInner)
19ImmBorrowField[2](RandomInner.randomness_round: u64)
20ReadRef
21LdU64(0)
22Eq
23BrFalse(38)
B4:
24CopyLoc[8](loc4: &mut RandomInner)
25ImmBorrowField[3](RandomInner.epoch: u64)
26ReadRef
27LdU64(0)
28Eq
29BrFalse(35)
B5:
30CopyLoc[8](loc4: &mut RandomInner)
31ImmBorrowField[4](RandomInner.random_bytes: vector<u8>)
32Call vector::is_empty<u8>(&vector<u8>): bool
33StLoc[4](loc0: bool)
34Branch(40)
B6:
35LdFalse
36StLoc[4](loc0: bool)
37Branch(40)
B7:
38LdFalse
39StLoc[4](loc0: bool)
B8:
40MoveLoc[4](loc0: bool)
41BrFalse(53)
B9:
42CopyLoc[1](Arg1: u64)
43LdU64(0)
44Eq
45BrFalse(47)
B10:
46Branch(88)
B11:
47MoveLoc[8](loc4: &mut RandomInner)
48Pop
49MoveLoc[3](Arg3: &TxContext)
50Pop
51LdConst[2](u64: 2)
52Abort
B12:
53MoveLoc[7](loc3: u64)
54CopyLoc[8](loc4: &mut RandomInner)
55ImmBorrowField[3](RandomInner.epoch: u64)
56ReadRef
57Gt
58BrFalse(64)
B13:
59CopyLoc[1](Arg1: u64)
60LdU64(0)
61Eq
62StLoc[6](loc2: bool)
63Branch(66)
B14:
64LdFalse
65StLoc[6](loc2: bool)
B15:
66MoveLoc[6](loc2: bool)
67BrFalse(71)
B16:
68LdTrue
69StLoc[5](loc1: bool)
70Branch(79)
B17:
71CopyLoc[1](Arg1: u64)
72CopyLoc[8](loc4: &mut RandomInner)
73ImmBorrowField[2](RandomInner.randomness_round: u64)
74ReadRef
75LdU64(1)
76Add
77Eq
78StLoc[5](loc1: bool)
B18:
79MoveLoc[5](loc1: bool)
80BrFalse(82)
B19:
81Branch(88)
B20:
82MoveLoc[8](loc4: &mut RandomInner)
83Pop
84MoveLoc[3](Arg3: &TxContext)
85Pop
86LdConst[2](u64: 2)
87Abort
B21:
88MoveLoc[3](Arg3: &TxContext)
89Call tx_context::epoch(&TxContext): u64
90CopyLoc[8](loc4: &mut RandomInner)
91MutBorrowField[3](RandomInner.epoch: u64)
92WriteRef
93MoveLoc[1](Arg1: u64)
94CopyLoc[8](loc4: &mut RandomInner)
95MutBorrowField[2](RandomInner.randomness_round: u64)
96WriteRef
97MoveLoc[2](Arg2: vector<u8>)
98MoveLoc[8](loc4: &mut RandomInner)
99MutBorrowField[4](RandomInner.random_bytes: vector<u8>)
100WriteRef
101Ret
}
public new_generator(Arg0: &Random, Arg1: &mut TxContext): RandomGenerator {
L2: loc0: vector<u8>
L3: loc1: &vector<u8>
B0:
0MoveLoc[0](Arg0: &Random)
1Call load_inner(&Random): &RandomInner
2ImmBorrowField[4](RandomInner.random_bytes: vector<u8>)
3StLoc[3](loc1: &vector<u8>)
4MoveLoc[1](Arg1: &mut TxContext)
5Call tx_context::fresh_object_address(&mut TxContext): address
6Call address::to_bytes(address): vector<u8>
7StLoc[2](loc0: vector<u8>)
8MoveLoc[3](loc1: &vector<u8>)
9ImmBorrowLoc[2](loc0: vector<u8>)
10Call hmac::hmac_sha3_256(&vector<u8>, &vector<u8>): vector<u8>
11LdU16(0)
12LdConst[8](vector<u8>: "" /..)
13Pack[2](RandomGenerator)
14Ret
}
derive_next_block(Arg0: &mut RandomGenerator): vector<u8> {
L1: loc0: vector<u8>
L2: loc1: &vector<u8>
B0:
0CopyLoc[0](Arg0: &mut RandomGenerator)
1ImmBorrowField[5](RandomGenerator.counter: u16)
2ReadRef
3LdU16(1)
4Add
5CopyLoc[0](Arg0: &mut RandomGenerator)
6MutBorrowField[5](RandomGenerator.counter: u16)
7WriteRef
8CopyLoc[0](Arg0: &mut RandomGenerator)
9ImmBorrowField[6](RandomGenerator.seed: vector<u8>)
10StLoc[2](loc1: &vector<u8>)
11MoveLoc[0](Arg0: &mut RandomGenerator)
12ImmBorrowField[5](RandomGenerator.counter: u16)
13Call bcs::to_bytes<u16>(&u16): vector<u8>
14StLoc[1](loc0: vector<u8>)
15MoveLoc[2](loc1: &vector<u8>)
16ImmBorrowLoc[1](loc0: vector<u8>)
17Call hmac::hmac_sha3_256(&vector<u8>, &vector<u8>): vector<u8>
18Ret
}
public generate_bytes(Arg0: &mut RandomGenerator, Arg1: u16): vector<u8> {
L2: loc0: u16
L3: loc1: u64
L4: loc2: u64
L5: loc3: u16
L6: loc4: vector<u8>
L7: loc5: u64
L8: loc6: vector<u8>
L9: loc7: u64
L10: loc8: u16
B0:
0LdConst[8](vector<u8>: "" /..)
1StLoc[8](loc6: vector<u8>)
2CopyLoc[1](Arg1: u16)
3LdConst[5](u16: 32)
4Div
5StLoc[2](loc0: u16)
6LdU16(0)
7StLoc[5](loc3: u16)
8MoveLoc[2](loc0: u16)
9StLoc[10](loc8: u16)
B1:
10CopyLoc[5](loc3: u16)
11CopyLoc[10](loc8: u16)
12Lt
13BrFalse(25)
B2:
14CopyLoc[5](loc3: u16)
15Pop
16MutBorrowLoc[8](loc6: vector<u8>)
17CopyLoc[0](Arg0: &mut RandomGenerator)
18Call derive_next_block(&mut RandomGenerator): vector<u8>
19Call vector::append<u8>(&mut vector<u8>, vector<u8>)
20MoveLoc[5](loc3: u16)
21LdU16(1)
22Add
23StLoc[5](loc3: u16)
24Branch(10)
B3:
25MoveLoc[1](Arg1: u16)
26CastU64
27ImmBorrowLoc[8](loc6: vector<u8>)
28VecLen(17)
29Sub
30StLoc[7](loc5: u64)
31CopyLoc[0](Arg0: &mut RandomGenerator)
32ImmBorrowField[7](RandomGenerator.buffer: vector<u8>)
33VecLen(17)
34CopyLoc[7](loc5: u64)
35Lt
36BrFalse(45)
B4:
37CopyLoc[0](Arg0: &mut RandomGenerator)
38Call derive_next_block(&mut RandomGenerator): vector<u8>
39StLoc[6](loc4: vector<u8>)
40CopyLoc[0](Arg0: &mut RandomGenerator)
41MutBorrowField[7](RandomGenerator.buffer: vector<u8>)
42MoveLoc[6](loc4: vector<u8>)
43Call vector::append<u8>(&mut vector<u8>, vector<u8>)
44Branch(45)
B5:
45MoveLoc[7](loc5: u64)
46StLoc[3](loc1: u64)
47LdU64(0)
48StLoc[4](loc2: u64)
49MoveLoc[3](loc1: u64)
50StLoc[9](loc7: u64)
B6:
51CopyLoc[4](loc2: u64)
52CopyLoc[9](loc7: u64)
53Lt
54BrFalse(67)
B7:
55CopyLoc[4](loc2: u64)
56Pop
57MutBorrowLoc[8](loc6: vector<u8>)
58CopyLoc[0](Arg0: &mut RandomGenerator)
59MutBorrowField[7](RandomGenerator.buffer: vector<u8>)
60VecPopBack(17)
61VecPushBack(17)
62MoveLoc[4](loc2: u64)
63LdU64(1)
64Add
65StLoc[4](loc2: u64)
66Branch(51)
B8:
67MoveLoc[0](Arg0: &mut RandomGenerator)
68Pop
69MoveLoc[8](loc6: vector<u8>)
70Ret
}
public generate_u256(Arg0: &mut RandomGenerator): u256 {
L1: loc0: u8
L2: loc1: u256
L3: loc2: &mut RandomGenerator
L4: loc3: u8
L5: loc4: vector<u8>
L6: loc5: u8
L7: loc6: u256
L8: loc7: u8
B0:
0MoveLoc[0](Arg0: &mut RandomGenerator)
1StLoc[3](loc2: &mut RandomGenerator)
2LdU8(32)
3StLoc[6](loc5: u8)
4CopyLoc[3](loc2: &mut RandomGenerator)
5ImmBorrowField[7](RandomGenerator.buffer: vector<u8>)
6VecLen(17)
7CopyLoc[6](loc5: u8)
8CastU64
9Lt
10BrFalse(18)
B1:
11CopyLoc[3](loc2: &mut RandomGenerator)
12Call derive_next_block(&mut RandomGenerator): vector<u8>
13StLoc[5](loc4: vector<u8>)
14CopyLoc[3](loc2: &mut RandomGenerator)
15MutBorrowField[7](RandomGenerator.buffer: vector<u8>)
16MoveLoc[5](loc4: vector<u8>)
17Call vector::append<u8>(&mut vector<u8>, vector<u8>)
B2:
18LdU256(0)
19StLoc[7](loc6: u256)
20MoveLoc[6](loc5: u8)
21StLoc[1](loc0: u8)
22LdU8(0)
23StLoc[4](loc3: u8)
24MoveLoc[1](loc0: u8)
25StLoc[8](loc7: u8)
B3:
26CopyLoc[4](loc3: u8)
27CopyLoc[8](loc7: u8)
28Lt
29BrFalse(48)
B4:
30CopyLoc[4](loc3: u8)
31Pop
32CopyLoc[3](loc2: &mut RandomGenerator)
33MutBorrowField[7](RandomGenerator.buffer: vector<u8>)
34VecPopBack(17)
35CastU256
36StLoc[2](loc1: u256)
37MoveLoc[7](loc6: u256)
38LdU8(8)
39Shl
40MoveLoc[2](loc1: u256)
41Add
42StLoc[7](loc6: u256)
43MoveLoc[4](loc3: u8)
44LdU8(1)
45Add
46StLoc[4](loc3: u8)
47Branch(26)
B5:
48MoveLoc[3](loc2: &mut RandomGenerator)
49Pop
50MoveLoc[7](loc6: u256)
51CastU256
52Ret
}
public generate_u128(Arg0: &mut RandomGenerator): u128 {
L1: loc0: u8
L2: loc1: u256
L3: loc2: &mut RandomGenerator
L4: loc3: u8
L5: loc4: vector<u8>
L6: loc5: u8
L7: loc6: u256
L8: loc7: u8
B0:
0MoveLoc[0](Arg0: &mut RandomGenerator)
1StLoc[3](loc2: &mut RandomGenerator)
2LdU8(16)
3StLoc[6](loc5: u8)
4CopyLoc[3](loc2: &mut RandomGenerator)
5ImmBorrowField[7](RandomGenerator.buffer: vector<u8>)
6VecLen(17)
7CopyLoc[6](loc5: u8)
8CastU64
9Lt
10BrFalse(18)
B1:
11CopyLoc[3](loc2: &mut RandomGenerator)
12Call derive_next_block(&mut RandomGenerator): vector<u8>
13StLoc[5](loc4: vector<u8>)
14CopyLoc[3](loc2: &mut RandomGenerator)
15MutBorrowField[7](RandomGenerator.buffer: vector<u8>)
16MoveLoc[5](loc4: vector<u8>)
17Call vector::append<u8>(&mut vector<u8>, vector<u8>)
B2:
18LdU256(0)
19StLoc[7](loc6: u256)
20MoveLoc[6](loc5: u8)
21StLoc[1](loc0: u8)
22LdU8(0)
23StLoc[4](loc3: u8)
24MoveLoc[1](loc0: u8)
25StLoc[8](loc7: u8)
B3:
26CopyLoc[4](loc3: u8)
27CopyLoc[8](loc7: u8)
28Lt
29BrFalse(48)
B4:
30CopyLoc[4](loc3: u8)
31Pop
32CopyLoc[3](loc2: &mut RandomGenerator)
33MutBorrowField[7](RandomGenerator.buffer: vector<u8>)
34VecPopBack(17)
35CastU256
36StLoc[2](loc1: u256)
37MoveLoc[7](loc6: u256)
38LdU8(8)
39Shl
40MoveLoc[2](loc1: u256)
41Add
42StLoc[7](loc6: u256)
43MoveLoc[4](loc3: u8)
44LdU8(1)
45Add
46StLoc[4](loc3: u8)
47Branch(26)
B5:
48MoveLoc[3](loc2: &mut RandomGenerator)
49Pop
50MoveLoc[7](loc6: u256)
51CastU128
52Ret
}
public generate_u64(Arg0: &mut RandomGenerator): u64 {
L1: loc0: u8
L2: loc1: u256
L3: loc2: &mut RandomGenerator
L4: loc3: u8
L5: loc4: vector<u8>
L6: loc5: u8
L7: loc6: u256
L8: loc7: u8
B0:
0MoveLoc[0](Arg0: &mut RandomGenerator)
1StLoc[3](loc2: &mut RandomGenerator)
2LdU8(8)
3StLoc[6](loc5: u8)
4CopyLoc[3](loc2: &mut RandomGenerator)
5ImmBorrowField[7](RandomGenerator.buffer: vector<u8>)
6VecLen(17)
7CopyLoc[6](loc5: u8)
8CastU64
9Lt
10BrFalse(18)
B1:
11CopyLoc[3](loc2: &mut RandomGenerator)
12Call derive_next_block(&mut RandomGenerator): vector<u8>
13StLoc[5](loc4: vector<u8>)
14CopyLoc[3](loc2: &mut RandomGenerator)
15MutBorrowField[7](RandomGenerator.buffer: vector<u8>)
16MoveLoc[5](loc4: vector<u8>)
17Call vector::append<u8>(&mut vector<u8>, vector<u8>)
B2:
18LdU256(0)
19StLoc[7](loc6: u256)
20MoveLoc[6](loc5: u8)
21StLoc[1](loc0: u8)
22LdU8(0)
23StLoc[4](loc3: u8)
24MoveLoc[1](loc0: u8)
25StLoc[8](loc7: u8)
B3:
26CopyLoc[4](loc3: u8)
27CopyLoc[8](loc7: u8)
28Lt
29BrFalse(48)
B4:
30CopyLoc[4](loc3: u8)
31Pop
32CopyLoc[3](loc2: &mut RandomGenerator)
33MutBorrowField[7](RandomGenerator.buffer: vector<u8>)
34VecPopBack(17)
35CastU256
36StLoc[2](loc1: u256)
37MoveLoc[7](loc6: u256)
38LdU8(8)
39Shl
40MoveLoc[2](loc1: u256)
41Add
42StLoc[7](loc6: u256)
43MoveLoc[4](loc3: u8)
44LdU8(1)
45Add
46StLoc[4](loc3: u8)
47Branch(26)
B5:
48MoveLoc[3](loc2: &mut RandomGenerator)
49Pop
50MoveLoc[7](loc6: u256)
51CastU64
52Ret
}
public generate_u32(Arg0: &mut RandomGenerator): u32 {
L1: loc0: u8
L2: loc1: u256
L3: loc2: &mut RandomGenerator
L4: loc3: u8
L5: loc4: vector<u8>
L6: loc5: u8
L7: loc6: u256
L8: loc7: u8
B0:
0MoveLoc[0](Arg0: &mut RandomGenerator)
1StLoc[3](loc2: &mut RandomGenerator)
2LdU8(4)
3StLoc[6](loc5: u8)
4CopyLoc[3](loc2: &mut RandomGenerator)
5ImmBorrowField[7](RandomGenerator.buffer: vector<u8>)
6VecLen(17)
7CopyLoc[6](loc5: u8)
8CastU64
9Lt
10BrFalse(18)
B1:
11CopyLoc[3](loc2: &mut RandomGenerator)
12Call derive_next_block(&mut RandomGenerator): vector<u8>
13StLoc[5](loc4: vector<u8>)
14CopyLoc[3](loc2: &mut RandomGenerator)
15MutBorrowField[7](RandomGenerator.buffer: vector<u8>)
16MoveLoc[5](loc4: vector<u8>)
17Call vector::append<u8>(&mut vector<u8>, vector<u8>)
B2:
18LdU256(0)
19StLoc[7](loc6: u256)
20MoveLoc[6](loc5: u8)
21StLoc[1](loc0: u8)
22LdU8(0)
23StLoc[4](loc3: u8)
24MoveLoc[1](loc0: u8)
25StLoc[8](loc7: u8)
B3:
26CopyLoc[4](loc3: u8)
27CopyLoc[8](loc7: u8)
28Lt
29BrFalse(48)
B4:
30CopyLoc[4](loc3: u8)
31Pop
32CopyLoc[3](loc2: &mut RandomGenerator)
33MutBorrowField[7](RandomGenerator.buffer: vector<u8>)
34VecPopBack(17)
35CastU256
36StLoc[2](loc1: u256)
37MoveLoc[7](loc6: u256)
38LdU8(8)
39Shl
40MoveLoc[2](loc1: u256)
41Add
42StLoc[7](loc6: u256)
43MoveLoc[4](loc3: u8)
44LdU8(1)
45Add
46StLoc[4](loc3: u8)
47Branch(26)
B5:
48MoveLoc[3](loc2: &mut RandomGenerator)
49Pop
50MoveLoc[7](loc6: u256)
51CastU32
52Ret
}
public generate_u16(Arg0: &mut RandomGenerator): u16 {
L1: loc0: u8
L2: loc1: u256
L3: loc2: &mut RandomGenerator
L4: loc3: u8
L5: loc4: vector<u8>
L6: loc5: u8
L7: loc6: u256
L8: loc7: u8
B0:
0MoveLoc[0](Arg0: &mut RandomGenerator)
1StLoc[3](loc2: &mut RandomGenerator)
2LdU8(2)
3StLoc[6](loc5: u8)
4CopyLoc[3](loc2: &mut RandomGenerator)
5ImmBorrowField[7](RandomGenerator.buffer: vector<u8>)
6VecLen(17)
7CopyLoc[6](loc5: u8)
8CastU64
9Lt
10BrFalse(18)
B1:
11CopyLoc[3](loc2: &mut RandomGenerator)
12Call derive_next_block(&mut RandomGenerator): vector<u8>
13StLoc[5](loc4: vector<u8>)
14CopyLoc[3](loc2: &mut RandomGenerator)
15MutBorrowField[7](RandomGenerator.buffer: vector<u8>)
16MoveLoc[5](loc4: vector<u8>)
17Call vector::append<u8>(&mut vector<u8>, vector<u8>)
B2:
18LdU256(0)
19StLoc[7](loc6: u256)
20MoveLoc[6](loc5: u8)
21StLoc[1](loc0: u8)
22LdU8(0)
23StLoc[4](loc3: u8)
24MoveLoc[1](loc0: u8)
25StLoc[8](loc7: u8)
B3:
26CopyLoc[4](loc3: u8)
27CopyLoc[8](loc7: u8)
28Lt
29BrFalse(48)
B4:
30CopyLoc[4](loc3: u8)
31Pop
32CopyLoc[3](loc2: &mut RandomGenerator)
33MutBorrowField[7](RandomGenerator.buffer: vector<u8>)
34VecPopBack(17)
35CastU256
36StLoc[2](loc1: u256)
37MoveLoc[7](loc6: u256)
38LdU8(8)
39Shl
40MoveLoc[2](loc1: u256)
41Add
42StLoc[7](loc6: u256)
43MoveLoc[4](loc3: u8)
44LdU8(1)
45Add
46StLoc[4](loc3: u8)
47Branch(26)
B5:
48MoveLoc[3](loc2: &mut RandomGenerator)
49Pop
50MoveLoc[7](loc6: u256)
51CastU16
52Ret
}
public generate_u8(Arg0: &mut RandomGenerator): u8 {
L1: loc0: u8
L2: loc1: u256
L3: loc2: &mut RandomGenerator
L4: loc3: u8
L5: loc4: vector<u8>
L6: loc5: u8
L7: loc6: u256
L8: loc7: u8
B0:
0MoveLoc[0](Arg0: &mut RandomGenerator)
1StLoc[3](loc2: &mut RandomGenerator)
2LdU8(1)
3StLoc[6](loc5: u8)
4CopyLoc[3](loc2: &mut RandomGenerator)
5ImmBorrowField[7](RandomGenerator.buffer: vector<u8>)
6VecLen(17)
7CopyLoc[6](loc5: u8)
8CastU64
9Lt
10BrFalse(18)
B1:
11CopyLoc[3](loc2: &mut RandomGenerator)
12Call derive_next_block(&mut RandomGenerator): vector<u8>
13StLoc[5](loc4: vector<u8>)
14CopyLoc[3](loc2: &mut RandomGenerator)
15MutBorrowField[7](RandomGenerator.buffer: vector<u8>)
16MoveLoc[5](loc4: vector<u8>)
17Call vector::append<u8>(&mut vector<u8>, vector<u8>)
B2:
18LdU256(0)
19StLoc[7](loc6: u256)
20MoveLoc[6](loc5: u8)
21StLoc[1](loc0: u8)
22LdU8(0)
23StLoc[4](loc3: u8)
24MoveLoc[1](loc0: u8)
25StLoc[8](loc7: u8)
B3:
26CopyLoc[4](loc3: u8)
27CopyLoc[8](loc7: u8)
28Lt
29BrFalse(48)
B4:
30CopyLoc[4](loc3: u8)
31Pop
32CopyLoc[3](loc2: &mut RandomGenerator)
33MutBorrowField[7](RandomGenerator.buffer: vector<u8>)
34VecPopBack(17)
35CastU256
36StLoc[2](loc1: u256)
37MoveLoc[7](loc6: u256)
38LdU8(8)
39Shl
40MoveLoc[2](loc1: u256)
41Add
42StLoc[7](loc6: u256)
43MoveLoc[4](loc3: u8)
44LdU8(1)
45Add
46StLoc[4](loc3: u8)
47Branch(26)
B5:
48MoveLoc[3](loc2: &mut RandomGenerator)
49Pop
50MoveLoc[7](loc6: u256)
51CastU8
52Ret
}
public generate_bool(Arg0: &mut RandomGenerator): bool {
L1: loc0: u8
L2: loc1: u256
L3: loc2: &mut RandomGenerator
L4: loc3: u8
L5: loc4: vector<u8>
L6: loc5: u8
L7: loc6: u256
L8: loc7: u8
B0:
0MoveLoc[0](Arg0: &mut RandomGenerator)
1StLoc[3](loc2: &mut RandomGenerator)
2LdU8(1)
3StLoc[6](loc5: u8)
4CopyLoc[3](loc2: &mut RandomGenerator)
5ImmBorrowField[7](RandomGenerator.buffer: vector<u8>)
6VecLen(17)
7CopyLoc[6](loc5: u8)
8CastU64
9Lt
10BrFalse(18)
B1:
11CopyLoc[3](loc2: &mut RandomGenerator)
12Call derive_next_block(&mut RandomGenerator): vector<u8>
13StLoc[5](loc4: vector<u8>)
14CopyLoc[3](loc2: &mut RandomGenerator)
15MutBorrowField[7](RandomGenerator.buffer: vector<u8>)
16MoveLoc[5](loc4: vector<u8>)
17Call vector::append<u8>(&mut vector<u8>, vector<u8>)
B2:
18LdU256(0)
19StLoc[7](loc6: u256)
20MoveLoc[6](loc5: u8)
21StLoc[1](loc0: u8)
22LdU8(0)
23StLoc[4](loc3: u8)
24MoveLoc[1](loc0: u8)
25StLoc[8](loc7: u8)
B3:
26CopyLoc[4](loc3: u8)
27CopyLoc[8](loc7: u8)
28Lt
29BrFalse(48)
B4:
30CopyLoc[4](loc3: u8)
31Pop
32CopyLoc[3](loc2: &mut RandomGenerator)
33MutBorrowField[7](RandomGenerator.buffer: vector<u8>)
34VecPopBack(17)
35CastU256
36StLoc[2](loc1: u256)
37MoveLoc[7](loc6: u256)
38LdU8(8)
39Shl
40MoveLoc[2](loc1: u256)
41Add
42StLoc[7](loc6: u256)
43MoveLoc[4](loc3: u8)
44LdU8(1)
45Add
46StLoc[4](loc3: u8)
47Branch(26)
B5:
48MoveLoc[3](loc2: &mut RandomGenerator)
49Pop
50MoveLoc[7](loc6: u256)
51CastU64
52LdU64(1)
53BitAnd
54LdU64(1)
55Eq
56Ret
}
public generate_u128_in_range(Arg0: &mut RandomGenerator, Arg1: u128, Arg2: u128): u128 {
L3: loc0: u8
L4: loc1: u128
L5: loc2: u256
L6: loc3: &mut RandomGenerator
L7: loc4: u8
L8: loc5: u128
L9: loc6: u128
L10: loc7: vector<u8>
L11: loc8: u8
L12: loc9: u256
L13: loc10: u256
L14: loc11: u256
L15: loc12: u8
B0:
0MoveLoc[1](Arg1: u128)
1StLoc[9](loc6: u128)
2MoveLoc[2](Arg2: u128)
3StLoc[8](loc5: u128)
4CopyLoc[9](loc6: u128)
5CopyLoc[8](loc5: u128)
6Le
7BrFalse(9)
B1:
8Branch(13)
B2:
9MoveLoc[0](Arg0: &mut RandomGenerator)
10Pop
11LdConst[3](u64: 3)
12Abort
B3:
13CopyLoc[9](loc6: u128)
14CopyLoc[8](loc5: u128)
15Eq
16BrFalse(22)
B4:
17MoveLoc[0](Arg0: &mut RandomGenerator)
18Pop
19MoveLoc[9](loc6: u128)
20StLoc[4](loc1: u128)
21Branch(89)
B5:
22MoveLoc[8](loc5: u128)
23CopyLoc[9](loc6: u128)
24Sub
25CastU256
26LdU256(1)
27Add
28StLoc[13](loc10: u256)
29MoveLoc[0](Arg0: &mut RandomGenerator)
30StLoc[6](loc3: &mut RandomGenerator)
31LdU8(24)
32StLoc[11](loc8: u8)
33CopyLoc[6](loc3: &mut RandomGenerator)
34ImmBorrowField[7](RandomGenerator.buffer: vector<u8>)
35VecLen(17)
36CopyLoc[11](loc8: u8)
37CastU64
38Lt
39BrFalse(47)
B6:
40CopyLoc[6](loc3: &mut RandomGenerator)
41Call derive_next_block(&mut RandomGenerator): vector<u8>
42StLoc[10](loc7: vector<u8>)
43CopyLoc[6](loc3: &mut RandomGenerator)
44MutBorrowField[7](RandomGenerator.buffer: vector<u8>)
45MoveLoc[10](loc7: vector<u8>)
46Call vector::append<u8>(&mut vector<u8>, vector<u8>)
B7:
47LdU256(0)
48StLoc[14](loc11: u256)
49MoveLoc[11](loc8: u8)
50StLoc[3](loc0: u8)
51LdU8(0)
52StLoc[7](loc4: u8)
53MoveLoc[3](loc0: u8)
54StLoc[15](loc12: u8)
B8:
55CopyLoc[7](loc4: u8)
56CopyLoc[15](loc12: u8)
57Lt
58BrFalse(77)
B9:
59CopyLoc[7](loc4: u8)
60Pop
61CopyLoc[6](loc3: &mut RandomGenerator)
62MutBorrowField[7](RandomGenerator.buffer: vector<u8>)
63VecPopBack(17)
64CastU256
65StLoc[5](loc2: u256)
66MoveLoc[14](loc11: u256)
67LdU8(8)
68Shl
69MoveLoc[5](loc2: u256)
70Add
71StLoc[14](loc11: u256)
72MoveLoc[7](loc4: u8)
73LdU8(1)
74Add
75StLoc[7](loc4: u8)
76Branch(55)
B10:
77MoveLoc[6](loc3: &mut RandomGenerator)
78Pop
79MoveLoc[14](loc11: u256)
80CastU256
81StLoc[12](loc9: u256)
82MoveLoc[9](loc6: u128)
83MoveLoc[12](loc9: u256)
84MoveLoc[13](loc10: u256)
85Mod
86CastU128
87Add
88StLoc[4](loc1: u128)
B11:
89MoveLoc[4](loc1: u128)
90Ret
}
public generate_u64_in_range(Arg0: &mut RandomGenerator, Arg1: u64, Arg2: u64): u64 {
L3: loc0: u8
L4: loc1: u64
L5: loc2: u256
L6: loc3: &mut RandomGenerator
L7: loc4: u8
L8: loc5: u64
L9: loc6: u64
L10: loc7: vector<u8>
L11: loc8: u8
L12: loc9: u256
L13: loc10: u256
L14: loc11: u256
L15: loc12: u8
B0:
0MoveLoc[1](Arg1: u64)
1StLoc[9](loc6: u64)
2MoveLoc[2](Arg2: u64)
3StLoc[8](loc5: u64)
4CopyLoc[9](loc6: u64)
5CopyLoc[8](loc5: u64)
6Le
7BrFalse(9)
B1:
8Branch(13)
B2:
9MoveLoc[0](Arg0: &mut RandomGenerator)
10Pop
11LdConst[3](u64: 3)
12Abort
B3:
13CopyLoc[9](loc6: u64)
14CopyLoc[8](loc5: u64)
15Eq
16BrFalse(22)
B4:
17MoveLoc[0](Arg0: &mut RandomGenerator)
18Pop
19MoveLoc[9](loc6: u64)
20StLoc[4](loc1: u64)
21Branch(89)
B5:
22MoveLoc[8](loc5: u64)
23CopyLoc[9](loc6: u64)
24Sub
25CastU256
26LdU256(1)
27Add
28StLoc[13](loc10: u256)
29MoveLoc[0](Arg0: &mut RandomGenerator)
30StLoc[6](loc3: &mut RandomGenerator)
31LdU8(16)
32StLoc[11](loc8: u8)
33CopyLoc[6](loc3: &mut RandomGenerator)
34ImmBorrowField[7](RandomGenerator.buffer: vector<u8>)
35VecLen(17)
36CopyLoc[11](loc8: u8)
37CastU64
38Lt
39BrFalse(47)
B6:
40CopyLoc[6](loc3: &mut RandomGenerator)
41Call derive_next_block(&mut RandomGenerator): vector<u8>
42StLoc[10](loc7: vector<u8>)
43CopyLoc[6](loc3: &mut RandomGenerator)
44MutBorrowField[7](RandomGenerator.buffer: vector<u8>)
45MoveLoc[10](loc7: vector<u8>)
46Call vector::append<u8>(&mut vector<u8>, vector<u8>)
B7:
47LdU256(0)
48StLoc[14](loc11: u256)
49MoveLoc[11](loc8: u8)
50StLoc[3](loc0: u8)
51LdU8(0)
52StLoc[7](loc4: u8)
53MoveLoc[3](loc0: u8)
54StLoc[15](loc12: u8)
B8:
55CopyLoc[7](loc4: u8)
56CopyLoc[15](loc12: u8)
57Lt
58BrFalse(77)
B9:
59CopyLoc[7](loc4: u8)
60Pop
61CopyLoc[6](loc3: &mut RandomGenerator)
62MutBorrowField[7](RandomGenerator.buffer: vector<u8>)
63VecPopBack(17)
64CastU256
65StLoc[5](loc2: u256)
66MoveLoc[14](loc11: u256)
67LdU8(8)
68Shl
69MoveLoc[5](loc2: u256)
70Add
71StLoc[14](loc11: u256)
72MoveLoc[7](loc4: u8)
73LdU8(1)
74Add
75StLoc[7](loc4: u8)
76Branch(55)
B10:
77MoveLoc[6](loc3: &mut RandomGenerator)
78Pop
79MoveLoc[14](loc11: u256)
80CastU256
81StLoc[12](loc9: u256)
82MoveLoc[9](loc6: u64)
83MoveLoc[12](loc9: u256)
84MoveLoc[13](loc10: u256)
85Mod
86CastU64
87Add
88StLoc[4](loc1: u64)
B11:
89MoveLoc[4](loc1: u64)
90Ret
}
public generate_u32_in_range(Arg0: &mut RandomGenerator, Arg1: u32, Arg2: u32): u32 {
L3: loc0: u8
L4: loc1: u32
L5: loc2: u256
L6: loc3: &mut RandomGenerator
L7: loc4: u8
L8: loc5: u32
L9: loc6: u32
L10: loc7: vector<u8>
L11: loc8: u8
L12: loc9: u256
L13: loc10: u256
L14: loc11: u256
L15: loc12: u8
B0:
0MoveLoc[1](Arg1: u32)
1StLoc[9](loc6: u32)
2MoveLoc[2](Arg2: u32)
3StLoc[8](loc5: u32)
4CopyLoc[9](loc6: u32)
5CopyLoc[8](loc5: u32)
6Le
7BrFalse(9)
B1:
8Branch(13)
B2:
9MoveLoc[0](Arg0: &mut RandomGenerator)
10Pop
11LdConst[3](u64: 3)
12Abort
B3:
13CopyLoc[9](loc6: u32)
14CopyLoc[8](loc5: u32)
15Eq
16BrFalse(22)
B4:
17MoveLoc[0](Arg0: &mut RandomGenerator)
18Pop
19MoveLoc[9](loc6: u32)
20StLoc[4](loc1: u32)
21Branch(89)
B5:
22MoveLoc[8](loc5: u32)
23CopyLoc[9](loc6: u32)
24Sub
25CastU256
26LdU256(1)
27Add
28StLoc[13](loc10: u256)
29MoveLoc[0](Arg0: &mut RandomGenerator)
30StLoc[6](loc3: &mut RandomGenerator)
31LdU8(12)
32StLoc[11](loc8: u8)
33CopyLoc[6](loc3: &mut RandomGenerator)
34ImmBorrowField[7](RandomGenerator.buffer: vector<u8>)
35VecLen(17)
36CopyLoc[11](loc8: u8)
37CastU64
38Lt
39BrFalse(47)
B6:
40CopyLoc[6](loc3: &mut RandomGenerator)
41Call derive_next_block(&mut RandomGenerator): vector<u8>
42StLoc[10](loc7: vector<u8>)
43CopyLoc[6](loc3: &mut RandomGenerator)
44MutBorrowField[7](RandomGenerator.buffer: vector<u8>)
45MoveLoc[10](loc7: vector<u8>)
46Call vector::append<u8>(&mut vector<u8>, vector<u8>)
B7:
47LdU256(0)
48StLoc[14](loc11: u256)
49MoveLoc[11](loc8: u8)
50StLoc[3](loc0: u8)
51LdU8(0)
52StLoc[7](loc4: u8)
53MoveLoc[3](loc0: u8)
54StLoc[15](loc12: u8)
B8:
55CopyLoc[7](loc4: u8)
56CopyLoc[15](loc12: u8)
57Lt
58BrFalse(77)
B9:
59CopyLoc[7](loc4: u8)
60Pop
61CopyLoc[6](loc3: &mut RandomGenerator)
62MutBorrowField[7](RandomGenerator.buffer: vector<u8>)
63VecPopBack(17)
64CastU256
65StLoc[5](loc2: u256)
66MoveLoc[14](loc11: u256)
67LdU8(8)
68Shl
69MoveLoc[5](loc2: u256)
70Add
71StLoc[14](loc11: u256)
72MoveLoc[7](loc4: u8)
73LdU8(1)
74Add
75StLoc[7](loc4: u8)
76Branch(55)
B10:
77MoveLoc[6](loc3: &mut RandomGenerator)
78Pop
79MoveLoc[14](loc11: u256)
80CastU256
81StLoc[12](loc9: u256)
82MoveLoc[9](loc6: u32)
83MoveLoc[12](loc9: u256)
84MoveLoc[13](loc10: u256)
85Mod
86CastU32
87Add
88StLoc[4](loc1: u32)
B11:
89MoveLoc[4](loc1: u32)
90Ret
}
public generate_u16_in_range(Arg0: &mut RandomGenerator, Arg1: u16, Arg2: u16): u16 {
L3: loc0: u8
L4: loc1: u16
L5: loc2: u256
L6: loc3: &mut RandomGenerator
L7: loc4: u8
L8: loc5: u16
L9: loc6: u16
L10: loc7: vector<u8>
L11: loc8: u8
L12: loc9: u256
L13: loc10: u256
L14: loc11: u256
L15: loc12: u8
B0:
0MoveLoc[1](Arg1: u16)
1StLoc[9](loc6: u16)
2MoveLoc[2](Arg2: u16)
3StLoc[8](loc5: u16)
4CopyLoc[9](loc6: u16)
5CopyLoc[8](loc5: u16)
6Le
7BrFalse(9)
B1:
8Branch(13)
B2:
9MoveLoc[0](Arg0: &mut RandomGenerator)
10Pop
11LdConst[3](u64: 3)
12Abort
B3:
13CopyLoc[9](loc6: u16)
14CopyLoc[8](loc5: u16)
15Eq
16BrFalse(22)
B4:
17MoveLoc[0](Arg0: &mut RandomGenerator)
18Pop
19MoveLoc[9](loc6: u16)
20StLoc[4](loc1: u16)
21Branch(89)
B5:
22MoveLoc[8](loc5: u16)
23CopyLoc[9](loc6: u16)
24Sub
25CastU256
26LdU256(1)
27Add
28StLoc[13](loc10: u256)
29MoveLoc[0](Arg0: &mut RandomGenerator)
30StLoc[6](loc3: &mut RandomGenerator)
31LdU8(10)
32StLoc[11](loc8: u8)
33CopyLoc[6](loc3: &mut RandomGenerator)
34ImmBorrowField[7](RandomGenerator.buffer: vector<u8>)
35VecLen(17)
36CopyLoc[11](loc8: u8)
37CastU64
38Lt
39BrFalse(47)
B6:
40CopyLoc[6](loc3: &mut RandomGenerator)
41Call derive_next_block(&mut RandomGenerator): vector<u8>
42StLoc[10](loc7: vector<u8>)
43CopyLoc[6](loc3: &mut RandomGenerator)
44MutBorrowField[7](RandomGenerator.buffer: vector<u8>)
45MoveLoc[10](loc7: vector<u8>)
46Call vector::append<u8>(&mut vector<u8>, vector<u8>)
B7:
47LdU256(0)
48StLoc[14](loc11: u256)
49MoveLoc[11](loc8: u8)
50StLoc[3](loc0: u8)
51LdU8(0)
52StLoc[7](loc4: u8)
53MoveLoc[3](loc0: u8)
54StLoc[15](loc12: u8)
B8:
55CopyLoc[7](loc4: u8)
56CopyLoc[15](loc12: u8)
57Lt
58BrFalse(77)
B9:
59CopyLoc[7](loc4: u8)
60Pop
61CopyLoc[6](loc3: &mut RandomGenerator)
62MutBorrowField[7](RandomGenerator.buffer: vector<u8>)
63VecPopBack(17)
64CastU256
65StLoc[5](loc2: u256)
66MoveLoc[14](loc11: u256)
67LdU8(8)
68Shl
69MoveLoc[5](loc2: u256)
70Add
71StLoc[14](loc11: u256)
72MoveLoc[7](loc4: u8)
73LdU8(1)
74Add
75StLoc[7](loc4: u8)
76Branch(55)
B10:
77MoveLoc[6](loc3: &mut RandomGenerator)
78Pop
79MoveLoc[14](loc11: u256)
80CastU256
81StLoc[12](loc9: u256)
82MoveLoc[9](loc6: u16)
83MoveLoc[12](loc9: u256)
84MoveLoc[13](loc10: u256)
85Mod
86CastU16
87Add
88StLoc[4](loc1: u16)
B11:
89MoveLoc[4](loc1: u16)
90Ret
}
public generate_u8_in_range(Arg0: &mut RandomGenerator, Arg1: u8, Arg2: u8): u8 {
L3: loc0: u8
L4: loc1: u8
L5: loc2: u256
L6: loc3: &mut RandomGenerator
L7: loc4: u8
L8: loc5: u8
L9: loc6: u8
L10: loc7: vector<u8>
L11: loc8: u8
L12: loc9: u256
L13: loc10: u256
L14: loc11: u256
L15: loc12: u8
B0:
0MoveLoc[1](Arg1: u8)
1StLoc[9](loc6: u8)
2MoveLoc[2](Arg2: u8)
3StLoc[8](loc5: u8)
4CopyLoc[9](loc6: u8)
5CopyLoc[8](loc5: u8)
6Le
7BrFalse(9)
B1:
8Branch(13)
B2:
9MoveLoc[0](Arg0: &mut RandomGenerator)
10Pop
11LdConst[3](u64: 3)
12Abort
B3:
13CopyLoc[9](loc6: u8)
14CopyLoc[8](loc5: u8)
15Eq
16BrFalse(22)
B4:
17MoveLoc[0](Arg0: &mut RandomGenerator)
18Pop
19MoveLoc[9](loc6: u8)
20StLoc[4](loc1: u8)
21Branch(89)
B5:
22MoveLoc[8](loc5: u8)
23CopyLoc[9](loc6: u8)
24Sub
25CastU256
26LdU256(1)
27Add
28StLoc[13](loc10: u256)
29MoveLoc[0](Arg0: &mut RandomGenerator)
30StLoc[6](loc3: &mut RandomGenerator)
31LdU8(9)
32StLoc[11](loc8: u8)
33CopyLoc[6](loc3: &mut RandomGenerator)
34ImmBorrowField[7](RandomGenerator.buffer: vector<u8>)
35VecLen(17)
36CopyLoc[11](loc8: u8)
37CastU64
38Lt
39BrFalse(47)
B6:
40CopyLoc[6](loc3: &mut RandomGenerator)
41Call derive_next_block(&mut RandomGenerator): vector<u8>
42StLoc[10](loc7: vector<u8>)
43CopyLoc[6](loc3: &mut RandomGenerator)
44MutBorrowField[7](RandomGenerator.buffer: vector<u8>)
45MoveLoc[10](loc7: vector<u8>)
46Call vector::append<u8>(&mut vector<u8>, vector<u8>)
B7:
47LdU256(0)
48StLoc[14](loc11: u256)
49MoveLoc[11](loc8: u8)
50StLoc[3](loc0: u8)
51LdU8(0)
52StLoc[7](loc4: u8)
53MoveLoc[3](loc0: u8)
54StLoc[15](loc12: u8)
B8:
55CopyLoc[7](loc4: u8)
56CopyLoc[15](loc12: u8)
57Lt
58BrFalse(77)
B9:
59CopyLoc[7](loc4: u8)
60Pop
61CopyLoc[6](loc3: &mut RandomGenerator)
62MutBorrowField[7](RandomGenerator.buffer: vector<u8>)
63VecPopBack(17)
64CastU256
65StLoc[5](loc2: u256)
66MoveLoc[14](loc11: u256)
67LdU8(8)
68Shl
69MoveLoc[5](loc2: u256)
70Add
71StLoc[14](loc11: u256)
72MoveLoc[7](loc4: u8)
73LdU8(1)
74Add
75StLoc[7](loc4: u8)
76Branch(55)
B10:
77MoveLoc[6](loc3: &mut RandomGenerator)
78Pop
79MoveLoc[14](loc11: u256)
80CastU256
81StLoc[12](loc9: u256)
82MoveLoc[9](loc6: u8)
83MoveLoc[12](loc9: u256)
84MoveLoc[13](loc10: u256)
85Mod
86CastU8
87Add
88StLoc[4](loc1: u8)
B11:
89MoveLoc[4](loc1: u8)
90Ret
}
public shuffle<Ty0>(Arg0: &mut RandomGenerator, Arg1: &mut vector<Ty0>) {
L2: loc0: u16
L3: loc1: u16
L4: loc2: u16
L5: loc3: u16
L6: loc4: u16
L7: loc5: u64
L8: loc6: u16
B0:
0CopyLoc[1](Arg1: &mut vector<Ty0>)
1FreezeRef
2VecLen(33)
3StLoc[7](loc5: u64)
4CopyLoc[7](loc5: u64)
5LdU64(0)
6Eq
7BrFalse(13)
B1:
8MoveLoc[1](Arg1: &mut vector<Ty0>)
9Pop
10MoveLoc[0](Arg0: &mut RandomGenerator)
11Pop
12Ret
B2:
13CopyLoc[7](loc5: u64)
14LdConst[6](u64: 65535)
15Le
16BrFalse(18)
B3:
17Branch(24)
B4:
18MoveLoc[1](Arg1: &mut vector<Ty0>)
19Pop
20MoveLoc[0](Arg0: &mut RandomGenerator)
21Pop
22LdConst[4](u64: 4)
23Abort
B5:
24MoveLoc[7](loc5: u64)
25CastU16
26LdU16(1)
27Sub
28StLoc[3](loc1: u16)
29CopyLoc[3](loc1: u16)
30StLoc[2](loc0: u16)
31LdU16(0)
32StLoc[4](loc2: u16)
33MoveLoc[2](loc0: u16)
34StLoc[8](loc6: u16)
B6:
35CopyLoc[4](loc2: u16)
36CopyLoc[8](loc6: u16)
37Lt
38BrFalse(57)
B7:
39CopyLoc[4](loc2: u16)
40StLoc[5](loc3: u16)
41CopyLoc[0](Arg0: &mut RandomGenerator)
42CopyLoc[5](loc3: u16)
43CopyLoc[3](loc1: u16)
44Call generate_u16_in_range(&mut RandomGenerator, u16, u16): u16
45StLoc[6](loc4: u16)
46CopyLoc[1](Arg1: &mut vector<Ty0>)
47MoveLoc[5](loc3: u16)
48CastU64
49MoveLoc[6](loc4: u16)
50CastU64
51VecSwap(33)
52MoveLoc[4](loc2: u16)
53LdU16(1)
54Add
55StLoc[4](loc2: u16)
56Branch(35)
B8:
57MoveLoc[1](Arg1: &mut vector<Ty0>)
58Pop
59MoveLoc[0](Arg0: &mut RandomGenerator)
60Pop
61Ret
}
Constants [
0 => u64: 0
1 => u64: 1
2 => u64: 2
3 => u64: 3
4 => u64: 4
5 => u16: 32
6 => u64: 65535
7 => address: 0x0000000000000000000000000000000000000000000000000000000000000000
8 => vector<u8>: "" // interpreted as UTF8 string
]
}