Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- contract Contract {
- function main() {
- memory[0x40:0x60] = 0x80;
- if (msg.data.length < 0x04) { revert(memory[0x00:0x00]); }
- var var0 = msg.data[0x00:0x20] / 0x0100000000000000000000000000000000000000000000000000000000 & 0xffffffff;
- if (var0 == 0x2150c518) {
- // Dispatch table entry for getKeys()
- var var1 = msg.value;
- if (var1) { revert(memory[0x00:0x00]); }
- var1 = 0x009c;
- var1 = getKeys();
- var temp0 = memory[0x40:0x60];
- memory[temp0:temp0 + 0x20] = 0x20;
- var temp1 = var1;
- memory[temp0 + 0x20:temp0 + 0x20 + 0x20] = memory[temp1:temp1 + 0x20];
- var var2 = temp0;
- var var3 = var2;
- var var4 = var3 + 0x40;
- var var5 = temp1 + 0x20;
- var var6 = memory[temp1:temp1 + 0x20] * 0x20;
- var var7 = var6;
- var var8 = var4;
- var var9 = var5;
- var var10 = 0x00;
- if (var10 >= var7) {
- label_00D8:
- var temp2 = memory[0x40:0x60];
- return memory[temp2:temp2 + (var6 + var4) - temp2];
- } else {
- label_00C9:
- var temp3 = var10;
- memory[temp3 + var8:temp3 + var8 + 0x20] = memory[temp3 + var9:temp3 + var9 + 0x20];
- var10 = temp3 + 0x20;
- if (var10 >= var7) { goto label_00D8; }
- else { goto label_00C9; }
- }
- } else if (var0 == 0x29092d0e) {
- // Dispatch table entry for remove(address)
- var1 = msg.value;
- if (var1) { revert(memory[0x00:0x00]); }
- var1 = 0x010d;
- var2 = msg.data[0x04:0x24] & 0x02 ** 0xa0 - 0x01;
- remove(var2);
- stop();
- } else if (var0 == 0x2d580ef6) {
- // Dispatch table entry for add(address,bytes32)
- var1 = msg.value;
- if (var1) { revert(memory[0x00:0x00]); }
- var1 = 0x010d;
- var2 = msg.data[0x04:0x24] & 0x02 ** 0xa0 - 0x01;
- var3 = msg.data[0x24:0x44];
- add(var2, var3);
- stop();
- } else if (var0 == 0x2d883a73) {
- // Dispatch table entry for getByIndex(uint256)
- var1 = msg.value;
- if (var1) { revert(memory[0x00:0x00]); }
- var1 = 0x014b;
- var2 = msg.data[0x04:0x24];
- var1 = getByIndex(var2);
- label_014B:
- var temp4 = memory[0x40:0x60];
- memory[temp4:temp4 + 0x20] = var1;
- var temp5 = memory[0x40:0x60];
- return memory[temp5:temp5 + temp4 - temp5 + 0x20];
- } else if (var0 == 0x49877038) {
- // Dispatch table entry for 0x49877038 (unknown)
- var1 = msg.value;
- if (var1) { revert(memory[0x00:0x00]); }
- var1 = 0x014b;
- var2 = msg.data[0x04:0x24] & 0x02 ** 0xa0 - 0x01;
- var1 = func_0443(var2);
- goto label_014B;
- } else if (var0 == 0x5dbe47e8) {
- // Dispatch table entry for contains(address)
- var1 = msg.value;
- if (var1) { revert(memory[0x00:0x00]); }
- var1 = 0x019f;
- var2 = msg.data[0x04:0x24] & 0x02 ** 0xa0 - 0x01;
- var1 = contains(var2);
- var temp6 = memory[0x40:0x60];
- memory[temp6:temp6 + 0x20] = !!var1;
- var temp7 = memory[0x40:0x60];
- return memory[temp7:temp7 + temp6 - temp7 + 0x20];
- } else if (var0 == 0x949d225d) {
- // Dispatch table entry for size()
- var1 = msg.value;
- if (var1) { revert(memory[0x00:0x00]); }
- var1 = 0x014b;
- var1 = size();
- goto label_014B;
- } else { revert(memory[0x00:0x00]); }
- }
- function getKeys() returns (var r0) {
- var var0 = 0x60;
- var temp0 = storage[0x01];
- var temp1 = memory[0x40:0x60];
- memory[0x40:0x60] = temp1 + temp0 * 0x20 + 0x20;
- var var1 = temp1;
- var var2 = 0x01;
- var var3 = temp0;
- memory[var1:var1 + 0x20] = var3;
- var var4 = var1 + 0x20;
- var var5 = var2;
- var var6 = storage[var5];
- if (!var6) {
- label_0220:
- return var1;
- } else {
- var temp2 = var4;
- var temp3 = temp2 + var6 * 0x20;
- var4 = temp3;
- memory[0x00:0x20] = var5;
- var temp4 = keccak256(memory[0x00:0x20]);
- memory[temp2:temp2 + 0x20] = storage[temp4] & 0x02 ** 0xa0 - 0x01;
- var5 = temp4 + 0x01;
- var6 = temp2 + 0x20;
- if (var4 <= var6) { goto label_0220; }
- label_0202:
- var temp5 = var5;
- var temp6 = var6;
- memory[temp6:temp6 + 0x20] = storage[temp5] & 0x02 ** 0xa0 - 0x01;
- var5 = temp5 + 0x01;
- var6 = temp6 + 0x20;
- if (var4 > var6) { goto label_0202; }
- else { goto label_0220; }
- }
- }
- function remove(var arg0) {
- memory[0x00:0x20] = arg0 & 0x02 ** 0xa0 - 0x01;
- memory[0x20:0x40] = 0x00;
- var var0 = keccak256(memory[0x00:0x40]);
- var var1 = 0x00;
- var var2 = var1;
- if (!storage[var0]) { revert(memory[0x00:0x00]); }
- if (storage[var0] > storage[0x01]) { revert(memory[0x00:0x00]); }
- var temp0 = storage[0x01];
- var temp1 = ~0x00;
- var1 = storage[var0] + temp1;
- var2 = temp0 + temp1;
- var var3 = storage[var0];
- var var6 = 0x01;
- var var4 = 0x00;
- var var5 = var4;
- var var7 = var2;
- if (var7 >= temp0) { assert(); }
- memory[0x00:0x20] = var6;
- var temp2 = var5;
- memory[temp2:temp2 + 0x20] = storage[var7 + keccak256(memory[0x00:0x20])] & 0x02 ** 0xa0 - 0x01;
- memory[temp2 + 0x20:temp2 + 0x20 + 0x20] = var4;
- storage[keccak256(memory[0x00:0x00 + temp2 + 0x40])] = var3;
- var3 = 0x01;
- var4 = var2;
- if (var4 >= storage[var3]) { assert(); }
- memory[0x00:0x20] = var3;
- var temp3 = storage[keccak256(memory[0x00:0x20]) + var4];
- var4 = 0x01;
- var3 = temp3 & 0x02 ** 0xa0 - 0x01;
- var5 = var1;
- if (var5 >= storage[var4]) { assert(); }
- memory[0x00:0x20] = var4;
- var temp4 = keccak256(memory[0x00:0x20]) + var5;
- storage[temp4] = (var3 & 0x02 ** 0xa0 - 0x01) | (storage[temp4] & ~0xffffffffffffffffffffffffffffffffffffffff);
- var3 = storage[0x01];
- var5 = 0x01;
- var4 = 0x032b;
- var6 = var3 + ~0x00;
- func_0483(var5, var6);
- memory[0x00:0x20] = arg0 & 0x02 ** 0xa0 - 0x01;
- memory[0x20:0x40] = 0x00;
- var temp5 = keccak256(memory[0x00:0x40]);
- storage[temp5] = 0x00;
- storage[temp5 + 0x01] = 0x00;
- }
- function add(var arg0, var arg1) {
- memory[0x00:0x20] = arg0 & 0x02 ** 0xa0 - 0x01;
- memory[0x20:0x40] = 0x00;
- var temp0 = keccak256(memory[0x00:0x40]);
- storage[temp0 + 0x01] = arg1;
- var var0 = temp0;
- var var1 = 0x00;
- if (var1 < storage[var0]) { return; }
- var temp1 = storage[0x01];
- storage[0x01] = temp1 + 0x01;
- memory[0x00:0x20] = 0x01;
- var temp2 = temp1 + 0xb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6;
- storage[temp2] = (arg0 & 0x02 ** 0xa0 - 0x01) | (storage[temp2] & ~0xffffffffffffffffffffffffffffffffffffffff);
- storage[var0] = storage[0x01];
- }
- function getByIndex(var arg0) returns (var r0) {
- var var0 = 0x00;
- if (arg0 < var0) { revert(memory[0x00:0x00]); }
- if (arg0 >= storage[0x01]) { revert(memory[0x00:0x00]); }
- var var1 = 0x00;
- var var2 = var1;
- var var3 = 0x01;
- var var4 = arg0;
- if (var4 >= storage[var3]) { assert(); }
- memory[0x00:0x20] = var3;
- var temp0 = var2;
- memory[temp0:temp0 + 0x20] = storage[var4 + keccak256(memory[0x00:0x20])] & 0x02 ** 0xa0 - 0x01;
- memory[temp0 + 0x20:temp0 + 0x20 + 0x20] = var1;
- return storage[keccak256(memory[0x00:0x00 + temp0 + 0x40]) + 0x01];
- }
- function func_0443(var arg0) returns (var r0) {
- memory[0x00:0x20] = arg0 & 0x02 ** 0xa0 - 0x01;
- memory[0x20:0x40] = 0x00;
- return storage[keccak256(memory[0x00:0x40]) + 0x01];
- }
- function contains(var arg0) returns (var r0) {
- memory[0x00:0x20] = arg0 & 0x02 ** 0xa0 - 0x01;
- memory[0x20:0x40] = 0x00;
- return storage[keccak256(memory[0x00:0x40])] > 0x00;
- }
- function size() returns (var r0) { return storage[0x01]; }
- function func_0483(var arg0, var arg1) {
- var temp0 = arg0;
- var temp1 = storage[temp0];
- var var0 = temp1;
- var temp2 = arg1;
- storage[temp0] = temp2;
- if (var0 <= temp2) {
- label_04A7:
- return;
- } else {
- memory[0x00:0x20] = arg0;
- var temp3 = keccak256(memory[0x00:0x20]);
- var temp4 = var0;
- var0 = 0x04a7;
- var var1 = temp3 + temp4;
- var var2 = arg1 + temp3;
- var0 = func_04AC(var1, var2);
- goto label_04A7;
- }
- }
- function func_04AC(var arg0, var arg1) returns (var r0) {
- var temp0 = arg0;
- arg0 = 0x0228;
- var temp1 = arg1;
- var var0 = temp1;
- arg1 = temp0;
- if (arg1 <= var0) { return func_04C6(arg1, var0); }
- label_04BB:
- var temp2 = var0;
- storage[temp2] = 0x00;
- var0 = temp2 + 0x01;
- if (arg1 > var0) { goto label_04BB; }
- arg0 = func_04C6(arg1, var0);
- // Error: Could not resolve method call return address!
- }
- function func_04C6(var arg0, var arg1) returns (var r0) { return arg0; }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement