Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save pcaversaccio/fde7fa67dffe55a7f1840c3e8c3c16ab to your computer and use it in GitHub Desktop.
Save pcaversaccio/fde7fa67dffe55a7f1840c3e8c3c16ab to your computer and use it in GitHub Desktop.
Decompiled DEUS Finance DAO attack contract 0x1f56CCfE85Dc55558603230D013E9F9BfE8E086C. I used the Panoramix decompiler.
# Palkeoramix decompiler.
def storage:
ownerAddress is addr at storage 0
stor1 is addr at storage 1
stor2 is addr at storage 2
stor3 is addr at storage 3
stor4 is addr at storage 4
stor5 is addr at storage 5
stor6 is addr at storage 6
stor7 is addr at storage 7
stor8 is addr at storage 8
stor9 is addr at storage 9
stor11 is uint256 at storage 11
stor12 is uint256 at storage 12
def ownerAddress() payable:
return ownerAddress
#
# Regular functions
#
def _fallback() payable: # default function
revert
def transfer(address _tokenAddress, address _to, uint256 _amount) payable:
require calldata.size - 4 >=′ 96
require _tokenAddress == _tokenAddress
require _to == _to
require caller == ownerAddress
require ext_code.size(_to)
call _to.transfer(address to, uint256 tokens) with:
gas gas_remaining wei
args addr(_tokenAddress), _amount
if not ext_call.success:
revert with ext_call.return_data[0 len return_data.size]
def unknowndb127ecd(uint256 _param1) payable:
require calldata.size - 4 >=′ 32
require caller == ownerAddress
require ext_code.size(stor2)
call stor2.approve(address spender, uint256 tokens) with:
gas gas_remaining wei
args stor3, _param1
if not ext_call.success:
revert with ext_call.return_data[0 len return_data.size]
require ext_code.size(stor3)
call stor3.0x6d75b9ee with:
gas gas_remaining wei
args addr(this.address), _param1
if not ext_call.success:
revert with ext_call.return_data[0 len return_data.size]
def unknownfc398d69() payable:
require caller == ownerAddress
static call stor2.balanceOf(address tokenOwner) with:
gas gas_remaining wei
args this.address
if not ext_call.success:
revert with ext_call.return_data[0 len return_data.size]
require return_data.size >=′ 32
require ext_code.size(stor2)
call stor2.approve(address spender, uint256 tokens) with:
gas gas_remaining wei
args stor3, ext_call.return_data[0]
if not ext_call.success:
revert with ext_call.return_data[0 len return_data.size]
require ext_code.size(stor3)
call stor3.0x6d75b9ee with:
gas gas_remaining wei
args addr(this.address), ext_call.return_data[0]
if not ext_call.success:
revert with ext_call.return_data[0 len return_data.size]
def unknowna1e15411(uint256 _param1, uint256 _param2, uint256 _param3) payable:
require calldata.size - 4 >=′ 96
require _param1 == addr(_param1)
require _param2 == addr(_param2)
require ext_code.size(addr(_param1))
call addr(_param1).approve(address spender, uint256 tokens) with:
gas gas_remaining wei
args stor4, _param3
if not ext_call.success:
revert with ext_call.return_data[0 len return_data.size]
require ext_code.size(stor4)
call stor4.0x13dcfc59 with:
gas gas_remaining wei
args 0, uint32(_param3), 0, addr(_param1), addr(_param2), 1, this.address, block.timestamp
if not ext_call.success:
revert with ext_call.return_data[0 len return_data.size]
def unknown40ec97c6(uint256 _param1) payable:
require calldata.size - 4 >=′ 32
static call stor1.0xbd2a9d2c with:
gas gas_remaining wei
if not ext_call.success:
revert with ext_call.return_data[0 len return_data.size]
require return_data.size >=′ 32
if ext_call.return_data < _param1:
if ext_call.return_data > 0x12725dd1d243aba0e75fe645cc4873f9e65afe688c928e1f21:
revert with 0, 17
if not _param1:
revert with 0, 18
if 10^18 < 10^18 * ext_call.return_data / _param1:
revert with 0, 17
return (-(10^18 * ext_call.return_data / _param1) + 10^18 < 5 * 10^15)
if _param1 > 0x12725dd1d243aba0e75fe645cc4873f9e65afe688c928e1f21:
revert with 0, 17
if not ext_call.return_data[0]:
revert with 0, 18
if 10^18 < 10^18 * _param1 / ext_call.return_data[0]:
revert with 0, 17
return (-(10^18 * _param1 / ext_call.return_data < 5 * 10^15)
def unknowne901cbe8(uint256 _param1, uint256 _param2, array _param3, uint256 _param4) payable:
require calldata.size - 4 >=′ 128
require _param1 == addr(_param1)
require _param3 <= 18446744073709551615
require _param3 + 35 <′ calldata.size
require _param3.length <= 18446744073709551615
require _param3 + _param3.length + 36 <= calldata.size
require _param4 < 2
require caller == ownerAddress
if _param4 > 1:
revert with 0, 33
if not _param4:
call _param1 with:
value _param2 wei
gas gas_remaining wei
args _param3[all]
require bool(ext_call.success) == 1
mem[ceil32(_param3.length) + 128] = bool(ext_call.success)
else:
if _param4 > 1:
revert with 0, 33
require not _param4 - 1
delegate _param1 with:
gas gas_remaining wei
args _param3[all]
require bool(delegate.return_code) == 1
mem[ceil32(_param3.length) + 128] = bool(delegate.return_code)
return Mask(8 * -ceil32(_param3.length) + _param3.length + 32, 0, 0),
mem[_param3.length + 160 len -_param3.length + ceil32(_param3.length)]
def unknown0cc0bfa5() payable:
static call stor3.0xa56d1a33 with:
gas gas_remaining wei
args this.address
if not ext_call.success:
revert with ext_call.return_data[0 len return_data.size]
require return_data.size >=′ 32
static call stor1.0xbd2a9d2c with:
gas gas_remaining wei
if not ext_call.success:
revert with ext_call.return_data[0 len return_data.size]
require return_data.size >=′ 32
static call stor3.maxCap() with:
gas gas_remaining wei
if not ext_call.success:
revert with ext_call.return_data[0 len return_data.size]
require return_data.size >=′ 32
static call stor3.0x8285ef40 with:
gas gas_remaining wei
if not ext_call.success:
revert with ext_call.return_data[0 len return_data.size]
require return_data.size >=′ 64
if not bool((6 * ceil32(return_data.size)) + 160 <= 18446744073709551615):
revert with 0, 65
require ext_call.return_data == ext_call.return_data[16 len 16]
require ext_call.return_data == ext_call.return_data[48 len 16]
if ext_call.return_data < ext_call.return_data[16 len 16]:
revert with 0, 17
if ext_call.return_data and ext_call.return_data > -1 / ext_call.return_data[0]:
revert with 0, 17
if ext_call.return_data * ext_call.return_data > 0x2d82d82d82d82d82d82d82d82d82d82d82d82d82d82d82d82d82d82d82d82d8:
revert with 0, 17
if 90 * ext_call.return_data * ext_call.return_data > 0x295fad40a57eb50295fad40a57eb50295fad40a57eb50295fad40a57eb50295:
revert with 0, 17
if 8910 * ext_call.return_data * ext_call.return_data > 0x41dd860bd5ce16206b07f9d33b6ee3f4adecf5f74094326d9aa10fb1c8f0d1:
revert with 0, 17
if 8865450 * ext_call.return_data * ext_call.return_data / 100 / 1000 / 100 / 10^18 <= ext_call.return_data[0] - ext_call.return_data[16 len 16]:
return (8865450 * ext_call.return_data * ext_call.return_data / 100 / 1000 / 100 / 10^18)
return (ext_call.return_data[0] - ext_call.return_data[16 len 16])
def unknown42f254da() payable:
require calldata.size - 4 >=′ 160
require cd == addr(cd)
require cd <= 18446744073709551615
require cd <′ calldata.size
require ('cd', 100).length <= 18446744073709551615
require cd('cd', 100).length + 36 <= calldata.size
require cd <= 18446744073709551615
require cd <′ calldata.size
require ('cd', 132).length <= 18446744073709551615
require cd * ('cd', 132).length) + 36 <= calldata.size
if ownerAddress != caller:
require this.address == caller
static call stor3.0xa56d1a33 with:
gas gas_remaining wei
args this.address
if not ext_call.success:
revert with ext_call.return_data[0 len return_data.size]
require return_data.size >=′ 32
mem[ceil32(return_data.size) + ceil32(('cd', 100).length) + 324] = ('cd', 132).length
s = ceil32(return_data.size) + ceil32(('cd', 100).length) + 356
idx = 0
t = cd[132] + 36
while idx < ('cd', 132).length:
mem[s] = cd[t]
require cd[(t + 32)] == addr(cd[(t + 32)])
mem[s + 32] = addr(cd[(t + 32)])
require cd[(t + 64)] == addr(cd[(t + 64)])
mem[s + 64] = addr(cd[(t + 64)])
s = s + 96
idx = idx + 1
t = t + 96
continue
require ext_code.size(stor3)
call stor3.0xe79a59b9 with:
gas gas_remaining wei
args addr(cd), ext_call.return_data('cd', 100).length) + 224, ('cd', 100).length, call.data[cd('cd', 100).length], 0, mem[ceil32(return_data.size) + ('cd', 100).length + 356 len ceil32(('cd', 100).length) + (96 * ('cd', 132).length) - ('cd', 100).length]
if not ext_call.success:
revert with ext_call.return_data[0 len return_data.size]
def unknown97a9d457(uint256 _param1) payable:
require calldata.size - 4 >=′ 32
require _param1 == addr(_param1)
static call stor3.0xa56d1a33 with:
gas gas_remaining wei
args addr(_param1)
if not ext_call.success:
revert with ext_call.return_data[0 len return_data.size]
require return_data.size >=′ 32
static call stor1.0xbd2a9d2c with:
gas gas_remaining wei
if not ext_call.success:
revert with ext_call.return_data[0 len return_data.size]
require return_data.size >=′ 32
static call stor3.maxCap() with:
gas gas_remaining wei
if not ext_call.success:
revert with ext_call.return_data[0 len return_data.size]
require return_data.size >=′ 32
static call stor3.0x8285ef40 with:
gas gas_remaining wei
if not ext_call.success:
revert with ext_call.return_data[0 len return_data.size]
require return_data.size >=′ 64
if not bool((6 * ceil32(return_data.size)) + 160 <= 18446744073709551615):
revert with 0, 65
require ext_call.return_data == ext_call.return_data[16 len 16]
require ext_call.return_data == ext_call.return_data[48 len 16]
if ext_call.return_data < ext_call.return_data[16 len 16]:
revert with 0, 17
if ext_call.return_data and ext_call.return_data > -1 / ext_call.return_data[0]:
revert with 0, 17
if ext_call.return_data * ext_call.return_data > 0x2d82d82d82d82d82d82d82d82d82d82d82d82d82d82d82d82d82d82d82d82d8:
revert with 0, 17
if 90 * ext_call.return_data * ext_call.return_data > 0x295fad40a57eb50295fad40a57eb50295fad40a57eb50295fad40a57eb50295:
revert with 0, 17
if 8910 * ext_call.return_data * ext_call.return_data > 0x41dd860bd5ce16206b07f9d33b6ee3f4adecf5f74094326d9aa10fb1c8f0d1:
revert with 0, 17
if 8865450 * ext_call.return_data * ext_call.return_data / 100 / 1000 / 100 / 10^18 <= ext_call.return_data[0] - ext_call.return_data[16 len 16]:
return (8865450 * ext_call.return_data * ext_call.return_data / 100 / 1000 / 100 / 10^18)
return (ext_call.return_data[0] - ext_call.return_data[16 len 16])
def unknown9b59c25a() payable:
require calldata.size - 4 >=′ 128
require cd <= 18446744073709551615
require cd <′ calldata.size
require ('cd', 68).length <= 18446744073709551615
require cd('cd', 68).length + 36 <= calldata.size
require cd <= 18446744073709551615
require cd <′ calldata.size
require ('cd', 100).length <= 18446744073709551615
require cd * ('cd', 100).length) + 36 <= calldata.size
if ownerAddress != caller:
require this.address == caller
static call stor3.0xa56d1a33 with:
gas gas_remaining wei
args this.address
if not ext_call.success:
revert with ext_call.return_data[0 len return_data.size]
require return_data.size >=′ 32
static call stor1.0xbd2a9d2c with:
gas gas_remaining wei
if not ext_call.success:
revert with ext_call.return_data[0 len return_data.size]
require return_data.size >=′ 32
static call stor3.maxCap() with:
gas gas_remaining wei
if not ext_call.success:
revert with ext_call.return_data[0 len return_data.size]
require return_data.size >=′ 32
static call stor3.0x8285ef40 with:
gas gas_remaining wei
if not ext_call.success:
revert with ext_call.return_data[0 len return_data.size]
require return_data.size >=′ 64
if not bool((6 * ceil32(return_data.size)) + 160 <= 18446744073709551615):
revert with 0, 65
require ext_call.return_data == ext_call.return_data[16 len 16]
require ext_call.return_data == ext_call.return_data[48 len 16]
if ext_call.return_data < ext_call.return_data[16 len 16]:
revert with 0, 17
if ext_call.return_data and ext_call.return_data > -1 / ext_call.return_data[0]:
revert with 0, 17
if ext_call.return_data * ext_call.return_data > 0x2d82d82d82d82d82d82d82d82d82d82d82d82d82d82d82d82d82d82d82d82d8:
revert with 0, 17
if 90 * ext_call.return_data * ext_call.return_data > 0x295fad40a57eb50295fad40a57eb50295fad40a57eb50295fad40a57eb50295:
revert with 0, 17
if 8910 * ext_call.return_data * ext_call.return_data > 0x41dd860bd5ce16206b07f9d33b6ee3f4adecf5f74094326d9aa10fb1c8f0d1:
revert with 0, 17
mem[(6 * ceil32(return_data.size)) + ceil32(('cd', 68).length) + 388] = ('cd', 100).length
s = (6 * ceil32(return_data.size)) + ceil32(('cd', 68).length) + 420
idx = 0
t = cd[100] + 36
while idx < ('cd', 100).length:
mem[s] = cd[t]
require cd[(t + 32)] == addr(cd[(t + 32)])
mem[s + 32] = addr(cd[(t + 32)])
require cd[(t + 64)] == addr(cd[(t + 64)])
mem[s + 64] = addr(cd[(t + 64)])
s = s + 96
idx = idx + 1
t = t + 96
continue
require ext_code.size(stor3)
if 8865450 * ext_call.return_data * ext_call.return_data / 100 / 1000 / 100 / 10^18 <= ext_call.return_data[0] - ext_call.return_data[16 len 16]:
call stor3.0xc0bf02e5 with:
gas gas_remaining wei
args ownerAddress, 8865450 * ext_call.return_data * ext_call.return_data / 100 / 1000 / 100 / 10^18, cd('cd', 68).length) + 224, ('cd', 68).length, call.data[cd('cd', 68).length], 0, mem[(6 * ceil32(return_data.size)) + ('cd', 68).length + 420 len ceil32(('cd', 68).length) + (96 * ('cd', 100).length) - ('cd', 68).length]
else:
call stor3.0xc0bf02e5 with:
gas gas_remaining wei
args ownerAddress, Mask(128, 128, ext_call.return_data('cd', 68).length) + 224, ('cd', 68).length, call.data[cd('cd', 68).length], 0, mem[(6 * ceil32(return_data.size)) + ('cd', 68).length + 420 len ceil32(('cd', 68).length) + (96 * ('cd', 100).length) - ('cd', 68).length]
if not ext_call.success:
revert with ext_call.return_data[0 len return_data.size]
def unknowncbfb9671() payable:
require calldata.size - 4 >=′ 256
require cd == addr(cd)
require cd == addr(cd)
require cd <= 18446744073709551615
require cd <′ calldata.size
require ('cd', 196).length <= 18446744073709551615
require cd('cd', 196).length + 36 <= calldata.size
require cd <= 18446744073709551615
require cd <′ calldata.size
require ('cd', 228).length <= 18446744073709551615
require cd * ('cd', 228).length) + 36 <= calldata.size
require this.address == caller
static call stor9.balanceOf(address tokenOwner) with:
gas gas_remaining wei
args this.address
if not ext_call.success:
revert with ext_call.return_data[0 len return_data.size]
require return_data.size >=′ 32
require ext_call.return_data == cd[36]
require ext_code.size(addr(cd))
call addr(cd).approve(address spender, uint256 tokens) with:
gas gas_remaining wei
args stor4, cd[36]
if not ext_call.success:
revert with ext_call.return_data[0 len return_data.size]
require ext_code.size(stor4)
call stor4.0x13dcfc59 with:
gas gas_remaining wei
args cdaddr(cd), addr(cd), 1, this.address, block.timestamp
if not ext_call.success:
revert with ext_call.return_data[0 len return_data.size]
static call stor8.balanceOf(address tokenOwner) with:
gas gas_remaining wei
args ownerAddress
require return_data.size >=′ 32
if ownerAddress != caller:
require this.address == caller
static call stor3.0xa56d1a33 with:
gas gas_remaining wei
args this.address
if not ext_call.success:
revert with ext_call.return_data[0 len return_data.size]
require return_data.size >=′ 32
static call stor1.0xbd2a9d2c with:
gas gas_remaining wei
if not ext_call.success:
revert with ext_call.return_data[0 len return_data.size]
require return_data.size >=′ 32
static call stor3.maxCap() with:
gas gas_remaining wei
if not ext_call.success:
revert with ext_call.return_data[0 len return_data.size]
require return_data.size >=′ 32
static call stor3.0x8285ef40 with:
gas gas_remaining wei
if not ext_call.success:
revert with ext_call.return_data[0 len return_data.size]
require return_data.size >=′ 64
if not bool((8 * ceil32(return_data.size)) + 160 <= 18446744073709551615):
revert with 0, 65
require ext_call.return_data == ext_call.return_data[16 len 16]
require ext_call.return_data == ext_call.return_data[48 len 16]
if ext_call.return_data < ext_call.return_data[16 len 16]:
revert with 0, 17
if ext_call.return_data and ext_call.return_data > -1 / ext_call.return_data[0]:
revert with 0, 17
if ext_call.return_data * ext_call.return_data > 0x2d82d82d82d82d82d82d82d82d82d82d82d82d82d82d82d82d82d82d82d82d8:
revert with 0, 17
if 90 * ext_call.return_data * ext_call.return_data > 0x295fad40a57eb50295fad40a57eb50295fad40a57eb50295fad40a57eb50295:
revert with 0, 17
if 8910 * ext_call.return_data * ext_call.return_data > 0x41dd860bd5ce16206b07f9d33b6ee3f4adecf5f74094326d9aa10fb1c8f0d1:
revert with 0, 17
mem[(8 * ceil32(return_data.size)) + ceil32(('cd', 196).length) + 388] = ('cd', 228).length
s = (8 * ceil32(return_data.size)) + ceil32(('cd', 196).length) + 420
idx = 0
t = cd[228] + 36
while idx < ('cd', 228).length:
mem[s] = cd[t]
require cd[(t + 32)] == addr(cd[(t + 32)])
mem[s + 32] = addr(cd[(t + 32)])
require cd[(t + 64)] == addr(cd[(t + 64)])
mem[s + 64] = addr(cd[(t + 64)])
s = s + 96
idx = idx + 1
t = t + 96
continue
require ext_code.size(stor3)
if 8865450 * ext_call.return_data * ext_call.return_data / 100 / 1000 / 100 / 10^18 <= ext_call.return_data[0] - ext_call.return_data[16 len 16]:
call stor3.0xc0bf02e5 with:
gas gas_remaining wei
args ownerAddress, 8865450 * ext_call.return_data * ext_call.return_data / 100 / 1000 / 100 / 10^18, cd('cd', 196).length) + 224, ('cd', 196).length, call.data[cd('cd', 196).length], 0, mem[(8 * ceil32(return_data.size)) + ('cd', 196).length + 420 len ceil32(('cd', 196).length) + (96 * ('cd', 228).length) - ('cd', 196).length]
else:
call stor3.0xc0bf02e5 with:
gas gas_remaining wei
args ownerAddress, Mask(128, 128, ext_call.return_data('cd', 196).length) + 224, ('cd', 196).length, call.data[cd('cd', 196).length], 0, mem[(8 * ceil32(return_data.size)) + ('cd', 196).length + 420 len ceil32(('cd', 196).length) + (96 * ('cd', 228).length) - ('cd', 196).length]
if not ext_call.success:
revert with ext_call.return_data[0 len return_data.size]
static call stor8.balanceOf(address tokenOwner) with:
gas gas_remaining wei
args ownerAddress
require return_data.size >=′ 32
if ext_call.return_data < ext_call.return_data[0]:
revert with 0, 17
require 0 > cd[4]
static call stor1.0xbd2a9d2c with:
gas gas_remaining wei
if not ext_call.success:
revert with ext_call.return_data[0 len return_data.size]
require return_data.size >=′ 32
static call stor8.balanceOf(address tokenOwner) with:
gas gas_remaining wei
args this.address
if not ext_call.success:
revert with ext_call.return_data[0 len return_data.size]
require return_data.size >=′ 32
require ext_code.size(addr(cd))
call addr(cd).approve(address spender, uint256 tokens) with:
gas gas_remaining wei
args stor4, ext_call.return_data[0]
if not ext_call.success:
revert with ext_call.return_data[0 len return_data.size]
require ext_code.size(stor4)
call stor4.0x13dcfc59 with:
gas gas_remaining wei
args ext_call.return_dataaddr(cd), addr(cd), 1, this.address, block.timestamp
if not ext_call.success:
revert with ext_call.return_data[0 len return_data.size]
static call stor1.0xbd2a9d2c with:
gas gas_remaining wei
require return_data.size >=′ 32
log 0xbfbd1b2c: ext_call.return_data
static call stor9.balanceOf(address tokenOwner) with:
gas gas_remaining wei
args this.address
if not ext_call.success:
revert with ext_call.return_data[0 len return_data.size]
require return_data.size >=′ 32
if cd > ext_call.return_data[0]:
if cd < ext_call.return_data[0]:
revert with 0, 17
require ext_code.size(addr(cd))
call addr(cd).transferFrom(address from, address to, uint256 tokens) with:
gas gas_remaining wei
args tx.origin, addr(this.address), cd[36] - ext_call.return_data[0]
if not ext_call.success:
revert with ext_call.return_data[0 len return_data.size]
if stor11 > !(cd[36] - ext_call.return_data[0]):
revert with 0, 17
stor11 = stor11 + cd[36] - ext_call.return_data[0]
def unknown10d1e85c() payable:
require calldata.size - 4 >=′ 128
require cd == addr(cd)
require cd <= 18446744073709551615
require cd <′ calldata.size
require ('cd', 100).length <= 18446744073709551615
require cd('cd', 100).length + 36 <= calldata.size
require ('cd', 100).length >=′ 256
require ('cd', 100) == addr(('cd', 100))
require ('cd', 100) == addr(('cd', 100))
require ('cd', 100) == addr(('cd', 100))
require ('cd', 100) <= 18446744073709551615
require cd('cd', 100) + 67 <′ cd('cd', 100).length + 36
if cd[(cd('cd', 100) + 36)] > 18446744073709551615:
revert with 0, 65
if ceil32(32 * cd[(cd('cd', 100) + 36)]) + 97 < 96 or ceil32(32 * cd[(cd('cd', 100) + 36)]) + 97 > 18446744073709551615:
revert with 0, 65
mem[96] = cd[(cd('cd', 100) + 36)]
require (32 * cd[(cd('cd', 100) + 36)]) + ('cd', 100) + 68 <= ('cd', 100).length + 36
s = 128
idx = cd('cd', 100) + 68
while idx < (32 * cd[(cd('cd', 100) + 36)]) + cd('cd', 100) + 68:
require cd[idx] == addr(cd[idx])
mem[s] = cd[idx]
s = s + 32
idx = idx + 32
continue
require ('cd', 100) <= 18446744073709551615
require cd('cd', 100) + 67 <′ cd('cd', 100).length + 36
if cd[(cd('cd', 100) + 36)] > 18446744073709551615:
revert with 0, 65
if ceil32(ceil32(cd[(cd('cd', 100) + 36)])) + 98 < 97 or ceil32(32 * cd[(cd('cd', 100) + 36)]) + ceil32(ceil32(cd[(cd('cd', 100) + 36)])) + 98 > 18446744073709551615:
revert with 0, 65
mem[ceil32(32 * cd[(cd('cd', 100) + 36)]) + 97] = cd[(cd('cd', 100) + 36)]
require ('cd', 100) + cd[(cd('cd', 100) + 36)] + 68 <= ('cd', 100).length + 36
mem[ceil32(32 * cd[(cd('cd', 100) + 36)]) + 129 len cd[(cd('cd', 100) + 36)]] = call.data[cd('cd', 100) + 68 len cd[(cd('cd', 100) + 36)]]
require addr(cd) == this.address
mem[ceil32(32 * cd[(cd('cd', 100) + 36)]) + ceil32(ceil32(cd[(cd('cd', 100) + 36)])) + 102] = addr(('cd', 100))
mem[ceil32(32 * cd[(cd('cd', 100) + 36)]) + ceil32(ceil32(cd[(cd('cd', 100) + 36)])) + 134] = addr(('cd', 100))
static call stor6.0xe6a43905 with:
gas gas_remaining wei
args addr(('cd', 100)), addr(('cd', 100))
mem[ceil32(32 * cd[(cd('cd', 100) + 36)]) + ceil32(ceil32(cd[(cd('cd', 100) + 36)])) + 98] = ext_call.return_data[0]
if not ext_call.success:
revert with ext_call.return_data[0 len return_data.size]
require return_data.size >=′ 32
require ext_call.return_data == ext_call.return_data[12 len 20]
require caller == ext_call.return_data[12 len 20]
if ('cd', 100) > 0:
if 1 > !('cd', 100):
revert with 0, 17
if ('cd', 100) + 1 >= cd[(cd('cd', 100) + 36)]:
revert with 0, 50
static call mem[(32 * ('cd', 100) + 1) + 140 len 20].getReserves() with:
gas gas_remaining wei
if not ext_call.success:
revert with ext_call.return_data[0 len return_data.size]
require return_data.size >=′ 96
if ext_call.return_data < 1:
revert with 0, 17
if ext_call.return_data < 1:
revert with 0, 17
if ('cd', 100) > ext_call.return_data[0] - 1:
if ('cd', 100) < ext_call.return_data[0] - 1:
revert with 0, 17
if ('cd', 100) > ext_call.return_data[32] - 1:
if ('cd', 100) < ext_call.return_data[32] - 1:
revert with 0, 17
static call mem[(32 * ('cd', 100) + 1) + 140 len 20].0xdfe1681 with:
gas gas_remaining wei
if not ext_call.success:
revert with ext_call.return_data[0 len return_data.size]
require return_data.size >=′ 32
require ext_call.return_data == ext_call.return_data[12 len 20]
static call mem[(32 * ('cd', 100) + 1) + 140 len 20].token1() with:
gas gas_remaining wei
if not ext_call.success:
revert with ext_call.return_data[0 len return_data.size]
require return_data.size >=′ 32
require ext_call.return_data == ext_call.return_data[12 len 20]
... # Decompilation aborted, sorry: ("decompilation didn't finish",)
if ('cd', 100) > 0:
if 1 > !('cd', 100):
revert with 0, 17
if ('cd', 100) + 1 >= cd[(cd('cd', 100) + 36)]:
revert with 0, 50
static call mem[(32 * ('cd', 100) + 1) + 140 len 20].getReserves() with:
gas gas_remaining wei
if not ext_call.success:
revert with ext_call.return_data[0 len return_data.size]
require return_data.size >=′ 96
if ext_call.return_data < 1:
revert with 0, 17
if ext_call.return_data < 1:
revert with 0, 17
if ('cd', 100) > ext_call.return_data[0] - 1:
if ('cd', 100) < ext_call.return_data[0] - 1:
revert with 0, 17
if ('cd', 100) > ext_call.return_data[32] - 1:
if ('cd', 100) < ext_call.return_data[32] - 1:
revert with 0, 17
static call mem[(32 * ('cd', 100) + 1) + 140 len 20].0xdfe1681 with:
gas gas_remaining wei
if not ext_call.success:
revert with ext_call.return_data[0 len return_data.size]
require return_data.size >=′ 32
require ext_call.return_data == ext_call.return_data[12 len 20]
static call mem[(32 * ('cd', 100) + 1) + 140 len 20].token1() with:
gas gas_remaining wei
if not ext_call.success:
revert with ext_call.return_data[0 len return_data.size]
require return_data.size >=′ 32
require ext_call.return_data == ext_call.return_data[12 len 20]
... # Decompilation aborted, sorry: ("decompilation didn't finish",)
if cd[(cd('cd', 100) + 36)]:
... # Decompilation aborted, sorry: ("decompilation didn't finish",)
if cd[36]:
if cd > 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff:
revert with 0, 17
if 1 > !(2 * cd / 998):
revert with 0, 17
if cd > !((2 * cd / 998) + 1):
revert with 0, 17
require ext_code.size(addr(('cd', 100)))
call addr(('cd', 100)).transferFrom(address from, address to, uint256 tokens) with:
gas gas_remaining wei
args addr(('cd', 100)), addr(this.address), (2 * cd / 998) + 1
if not ext_call.success:
revert with ext_call.return_data[0 len return_data.size]
if stor11 > !((2 * cd / 998) + 1):
revert with 0, 17
stor11 = stor11 + (2 * cd / 998) + 1
require ext_code.size(addr(('cd', 100)))
call addr(('cd', 100)).transfer(address to, uint256 tokens) with:
gas gas_remaining wei
args addr(ext_call.return_data), cd * cd / 998) + 1
if not ext_call.success:
revert with ext_call.return_data[0 len return_data.size]
if cd[68]:
if cd > 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff:
revert with 0, 17
if 1 > !(2 * cd / 998):
revert with 0, 17
if cd > !((2 * cd / 998) + 1):
revert with 0, 17
require ext_code.size(addr(('cd', 100)))
call addr(('cd', 100)).transferFrom(address from, address to, uint256 tokens) with:
gas gas_remaining wei
args addr(('cd', 100)), addr(this.address), (2 * cd / 998) + 1
if not ext_call.success:
revert with ext_call.return_data[0 len return_data.size]
if stor12 > !((2 * cd / 998) + 1):
revert with 0, 17
stor12 = stor12 + (2 * cd / 998) + 1
require ext_code.size(addr(('cd', 100)))
call addr(('cd', 100)).transfer(address to, uint256 tokens) with:
gas gas_remaining wei
args addr(ext_call.return_data), cd * cd / 998) + 1
if not ext_call.success:
revert with ext_call.return_data[0 len return_data.size]
def unknown84800812() payable:
require calldata.size - 4 >=′ 128
require cd == addr(cd)
require cd <= 18446744073709551615
require cd <′ calldata.size
require ('cd', 100).length <= 18446744073709551615
require cd('cd', 100).length + 36 <= calldata.size
require ('cd', 100).length >=′ 256
require ('cd', 100) == addr(('cd', 100))
require ('cd', 100) == addr(('cd', 100))
require ('cd', 100) == addr(('cd', 100))
require ('cd', 100) <= 18446744073709551615
require cd('cd', 100) + 67 <′ cd('cd', 100).length + 36
if cd[(cd('cd', 100) + 36)] > 18446744073709551615:
revert with 0, 65
if ceil32(32 * cd[(cd('cd', 100) + 36)]) + 97 < 96 or ceil32(32 * cd[(cd('cd', 100) + 36)]) + 97 > 18446744073709551615:
revert with 0, 65
mem[96] = cd[(cd('cd', 100) + 36)]
require (32 * cd[(cd('cd', 100) + 36)]) + ('cd', 100) + 68 <= ('cd', 100).length + 36
s = 128
idx = cd('cd', 100) + 68
while idx < (32 * cd[(cd('cd', 100) + 36)]) + cd('cd', 100) + 68:
require cd[idx] == addr(cd[idx])
mem[s] = cd[idx]
s = s + 32
idx = idx + 32
continue
require ('cd', 100) <= 18446744073709551615
require cd('cd', 100) + 67 <′ cd('cd', 100).length + 36
if cd[(cd('cd', 100) + 36)] > 18446744073709551615:
revert with 0, 65
if ceil32(ceil32(cd[(cd('cd', 100) + 36)])) + 98 < 97 or ceil32(32 * cd[(cd('cd', 100) + 36)]) + ceil32(ceil32(cd[(cd('cd', 100) + 36)])) + 98 > 18446744073709551615:
revert with 0, 65
mem[ceil32(32 * cd[(cd('cd', 100) + 36)]) + 97] = cd[(cd('cd', 100) + 36)]
require ('cd', 100) + cd[(cd('cd', 100) + 36)] + 68 <= ('cd', 100).length + 36
mem[ceil32(32 * cd[(cd('cd', 100) + 36)]) + 129 len cd[(cd('cd', 100) + 36)]] = call.data[cd('cd', 100) + 68 len cd[(cd('cd', 100) + 36)]]
require addr(cd) == this.address
mem[ceil32(32 * cd[(cd('cd', 100) + 36)]) + ceil32(ceil32(cd[(cd('cd', 100) + 36)])) + 102] = addr(('cd', 100))
mem[ceil32(32 * cd[(cd('cd', 100) + 36)]) + ceil32(ceil32(cd[(cd('cd', 100) + 36)])) + 134] = addr(('cd', 100))
static call stor7.0xe6a43905 with:
gas gas_remaining wei
args addr(('cd', 100)), addr(('cd', 100))
mem[ceil32(32 * cd[(cd('cd', 100) + 36)]) + ceil32(ceil32(cd[(cd('cd', 100) + 36)])) + 98] = ext_call.return_data[0]
if not ext_call.success:
revert with ext_call.return_data[0 len return_data.size]
require return_data.size >=′ 32
require ext_call.return_data == ext_call.return_data[12 len 20]
require caller == ext_call.return_data[12 len 20]
if ('cd', 100) > 0:
if 1 > !('cd', 100):
revert with 0, 17
if ('cd', 100) + 1 >= cd[(cd('cd', 100) + 36)]:
revert with 0, 50
static call mem[(32 * ('cd', 100) + 1) + 140 len 20].getReserves() with:
gas gas_remaining wei
if not ext_call.success:
revert with ext_call.return_data[0 len return_data.size]
require return_data.size >=′ 96
if ext_call.return_data < 1:
revert with 0, 17
if ext_call.return_data < 1:
revert with 0, 17
if ('cd', 100) > ext_call.return_data[0] - 1:
if ('cd', 100) < ext_call.return_data[0] - 1:
revert with 0, 17
if ('cd', 100) > ext_call.return_data[32] - 1:
if ('cd', 100) < ext_call.return_data[32] - 1:
revert with 0, 17
static call mem[(32 * ('cd', 100) + 1) + 140 len 20].0xdfe1681 with:
gas gas_remaining wei
if not ext_call.success:
revert with ext_call.return_data[0 len return_data.size]
require return_data.size >=′ 32
require ext_call.return_data == ext_call.return_data[12 len 20]
static call mem[(32 * ('cd', 100) + 1) + 140 len 20].token1() with:
gas gas_remaining wei
if not ext_call.success:
revert with ext_call.return_data[0 len return_data.size]
require return_data.size >=′ 32
require ext_call.return_data == ext_call.return_data[12 len 20]
... # Decompilation aborted, sorry: ("decompilation didn't finish",)
if ('cd', 100) > 0:
if 1 > !('cd', 100):
revert with 0, 17
if ('cd', 100) + 1 >= cd[(cd('cd', 100) + 36)]:
revert with 0, 50
static call mem[(32 * ('cd', 100) + 1) + 140 len 20].getReserves() with:
gas gas_remaining wei
if not ext_call.success:
revert with ext_call.return_data[0 len return_data.size]
require return_data.size >=′ 96
if ext_call.return_data < 1:
revert with 0, 17
if ext_call.return_data < 1:
revert with 0, 17
if ('cd', 100) > ext_call.return_data[0] - 1:
if ('cd', 100) < ext_call.return_data[0] - 1:
revert with 0, 17
if ('cd', 100) > ext_call.return_data[32] - 1:
if ('cd', 100) < ext_call.return_data[32] - 1:
revert with 0, 17
static call mem[(32 * ('cd', 100) + 1) + 140 len 20].0xdfe1681 with:
gas gas_remaining wei
if not ext_call.success:
revert with ext_call.return_data[0 len return_data.size]
require return_data.size >=′ 32
require ext_call.return_data == ext_call.return_data[12 len 20]
static call mem[(32 * ('cd', 100) + 1) + 140 len 20].token1() with:
gas gas_remaining wei
if not ext_call.success:
revert with ext_call.return_data[0 len return_data.size]
require return_data.size >=′ 32
require ext_call.return_data == ext_call.return_data[12 len 20]
... # Decompilation aborted, sorry: ("decompilation didn't finish",)
if cd[(cd('cd', 100) + 36)]:
... # Decompilation aborted, sorry: ("decompilation didn't finish",)
if cd[36]:
if cd > 0x5555555555555555555555555555555555555555555555555555555555555555:
revert with 0, 17
if 1 > !(3 * cd / 997):
revert with 0, 17
if cd > !((3 * cd / 997) + 1):
revert with 0, 17
require ext_code.size(addr(('cd', 100)))
call addr(('cd', 100)).transferFrom(address from, address to, uint256 tokens) with:
gas gas_remaining wei
args addr(('cd', 100)), addr(this.address), (3 * cd / 997) + 1
if not ext_call.success:
revert with ext_call.return_data[0 len return_data.size]
if stor11 > !((3 * cd / 997) + 1):
revert with 0, 17
stor11 = stor11 + (3 * cd / 997) + 1
require ext_code.size(addr(('cd', 100)))
call addr(('cd', 100)).transfer(address to, uint256 tokens) with:
gas gas_remaining wei
args addr(ext_call.return_data), cd * cd / 997) + 1
if not ext_call.success:
revert with ext_call.return_data[0 len return_data.size]
if cd[68]:
if cd > 0x5555555555555555555555555555555555555555555555555555555555555555:
revert with 0, 17
if 1 > !(3 * cd / 997):
revert with 0, 17
if cd > !((3 * cd / 997) + 1):
revert with 0, 17
require ext_code.size(addr(('cd', 100)))
call addr(('cd', 100)).transferFrom(address from, address to, uint256 tokens) with:
gas gas_remaining wei
args addr(('cd', 100)), addr(this.address), (3 * cd / 997) + 1
if not ext_call.success:
revert with ext_call.return_data[0 len return_data.size]
if stor12 > !((3 * cd / 997) + 1):
revert with 0, 17
stor12 = stor12 + (3 * cd / 997) + 1
require ext_code.size(addr(('cd', 100)))
call addr(('cd', 100)).transfer(address to, uint256 tokens) with:
gas gas_remaining wei
args addr(ext_call.return_data), cd * cd / 997) + 1
if not ext_call.success:
revert with ext_call.return_data[0 len return_data.size]
def unknown99585aac() payable:
require calldata.size - 4 >=′ 96
require cd <= 18446744073709551615
require cd <′ calldata.size
if ('cd', 68).length > 18446744073709551615:
revert with 0, 65
if ceil32(32 * ('cd', 68).length) + 97 < 96 or ceil32(32 * ('cd', 68).length) + 97 > 18446744073709551615:
revert with 0, 65
mem[96] = ('cd', 68).length
require (32 * ('cd', 68).length) + cd <= calldata.size
s = 128
idx = cd[68] + 36
while idx < (32 * ('cd', 68).length) + cd:
require cd[idx] == addr(cd[idx])
mem[s] = cd[idx]
s = s + 32
idx = idx + 32
continue
mem[ceil32(32 * ('cd', 68).length) + 97] = 0
if 0 >= ('cd', 68).length:
revert with 0, 50
_105 = mem[128]
static call mem[140 len 20].getReserves() with:
gas gas_remaining wei
mem[ceil32(32 * ('cd', 68).length) + 129 len 96] = ext_call.return_data[0 len 96]
if not ext_call.success:
revert with ext_call.return_data[0 len return_data.size]
require return_data.size >=′ 96
if ext_call.return_data < 1:
revert with 0, 17
if ext_call.return_data < 1:
revert with 0, 17
if cd <= ext_call.return_data[0] - 1:
if cd <= ext_call.return_data[32] - 1:
static call addr(_105).0xdfe1681 with:
gas gas_remaining wei
mem[ceil32(32 * ('cd', 68).length) + ceil32(return_data.size) + 129] = ext_call.return_data[0]
if not ext_call.success:
revert with ext_call.return_data[0 len return_data.size]
require return_data.size >=′ 32
require ext_call.return_data == ext_call.return_data[12 len 20]
static call addr(_105).token1() with:
gas gas_remaining wei
mem[ceil32(32 * ('cd', 68).length) + (2 * ceil32(return_data.size)) + 129] = ext_call.return_data[0]
if not ext_call.success:
revert with ext_call.return_data[0 len return_data.size]
require return_data.size >=′ 32
require ext_call.return_data == ext_call.return_data[12 len 20]
mem[ceil32(32 * ('cd', 68).length) + (4 * ceil32(return_data.size)) + 161] = tx.origin
mem[ceil32(32 * ('cd', 68).length) + (4 * ceil32(return_data.size)) + 193] = addr(ext_call.return_data)
mem[ceil32(32 * ('cd', 68).length) + (4 * ceil32(return_data.size)) + 225] = addr(ext_call.return_data)
mem[ceil32(32 * ('cd', 68).length) + (4 * ceil32(return_data.size)) + 257] = 0
mem[ceil32(32 * ('cd', 68).length) + (4 * ceil32(return_data.size)) + 289] = 0
mem[ceil32(32 * ('cd', 68).length) + (4 * ceil32(return_data.size)) + 321] = 0
mem[ceil32(32 * ('cd', 68).length) + (4 * ceil32(return_data.size)) + 353] = 256
mem[ceil32(32 * ('cd', 68).length) + (4 * ceil32(return_data.size)) + 417] = ('cd', 68).length
idx = 0
s = 128
t = ceil32(32 * ('cd', 68).length) + (4 * ceil32(return_data.size)) + 449
while idx < ('cd', 68).length:
mem[t] = mem[s + 12 len 20]
idx = idx + 1
s = s + 32
t = t + 32
continue
mem[ceil32(32 * ('cd', 68).length) + (4 * ceil32(return_data.size)) + 385] = (32 * ('cd', 68).length) + 288
require ext_code.size(addr(_105))
call addr(_105).0x22c0d9f with:
gas gas_remaining wei
args cdaddr(this.address), Array(len=(32 * ('cd', 68).length) + 320, data=mem[ceil32(32 * ('cd', 68).length) + (4 * ceil32(return_data.size)) + 161 len floor32(('cd', 68).length) + 10])
else:
if cd < ext_call.return_data[32] - 1:
revert with 0, 17
static call addr(_105).0xdfe1681 with:
gas gas_remaining wei
mem[ceil32(32 * ('cd', 68).length) + ceil32(return_data.size) + 129] = ext_call.return_data[0]
if not ext_call.success:
revert with ext_call.return_data[0 len return_data.size]
require return_data.size >=′ 32
require ext_call.return_data == ext_call.return_data[12 len 20]
static call addr(_105).token1() with:
gas gas_remaining wei
mem[ceil32(32 * ('cd', 68).length) + (2 * ceil32(return_data.size)) + 129] = ext_call.return_data[0]
if not ext_call.success:
revert with ext_call.return_data[0 len return_data.size]
require return_data.size >=′ 32
require ext_call.return_data == ext_call.return_data[12 len 20]
mem[ceil32(32 * ('cd', 68).length) + (4 * ceil32(return_data.size)) + 161] = tx.origin
mem[ceil32(32 * ('cd', 68).length) + (4 * ceil32(return_data.size)) + 193] = addr(ext_call.return_data)
mem[ceil32(32 * ('cd', 68).length) + (4 * ceil32(return_data.size)) + 225] = addr(ext_call.return_data)
mem[ceil32(32 * ('cd', 68).length) + (4 * ceil32(return_data.size)) + 257] = 0
mem[ceil32(32 * ('cd', 68).length) + (4 * ceil32(return_data.size)) + 289] = 0
mem[ceil32(32 * ('cd', 68).length) + (4 * ceil32(return_data.size)) + 321] = cd[36] + -ext_call.return_data[32] + 1
mem[ceil32(32 * ('cd', 68).length) + (4 * ceil32(return_data.size)) + 353] = 256
mem[ceil32(32 * ('cd', 68).length) + (4 * ceil32(return_data.size)) + 417] = ('cd', 68).length
idx = 0
s = 128
t = ceil32(32 * ('cd', 68).length) + (4 * ceil32(return_data.size)) + 449
while idx < ('cd', 68).length:
mem[t] = mem[s + 12 len 20]
idx = idx + 1
s = s + 32
t = t + 32
continue
mem[ceil32(32 * ('cd', 68).length) + (4 * ceil32(return_data.size)) + 385] = (32 * ('cd', 68).length) + 288
require ext_code.size(addr(_105))
call addr(_105).0x22c0d9f with:
gas gas_remaining wei
args cdaddr(this.address), Array(len=(32 * ('cd', 68).length) + 320, data=mem[ceil32(32 * ('cd', 68).length) + (4 * ceil32(return_data.size)) + 161 len floor32(('cd', 68).length) + 10])
else:
if cd < ext_call.return_data[0] - 1:
revert with 0, 17
if cd <= ext_call.return_data[32] - 1:
static call addr(_105).0xdfe1681 with:
gas gas_remaining wei
mem[ceil32(32 * ('cd', 68).length) + ceil32(return_data.size) + 129] = ext_call.return_data[0]
if not ext_call.success:
revert with ext_call.return_data[0 len return_data.size]
require return_data.size >=′ 32
require ext_call.return_data == ext_call.return_data[12 len 20]
static call addr(_105).token1() with:
gas gas_remaining wei
mem[ceil32(32 * ('cd', 68).length) + (2 * ceil32(return_data.size)) + 129] = ext_call.return_data[0]
if not ext_call.success:
revert with ext_call.return_data[0 len return_data.size]
require return_data.size >=′ 32
require ext_call.return_data == ext_call.return_data[12 len 20]
mem[ceil32(32 * ('cd', 68).length) + (4 * ceil32(return_data.size)) + 161] = tx.origin
mem[ceil32(32 * ('cd', 68).length) + (4 * ceil32(return_data.size)) + 193] = addr(ext_call.return_data)
mem[ceil32(32 * ('cd', 68).length) + (4 * ceil32(return_data.size)) + 225] = addr(ext_call.return_data)
mem[ceil32(32 * ('cd', 68).length) + (4 * ceil32(return_data.size)) + 257] = 0
mem[ceil32(32 * ('cd', 68).length) + (4 * ceil32(return_data.size)) + 289] = cd[4] + -ext_call.return_data[0] + 1
mem[ceil32(32 * ('cd', 68).length) + (4 * ceil32(return_data.size)) + 321] = 0
mem[ceil32(32 * ('cd', 68).length) + (4 * ceil32(return_data.size)) + 353] = 256
mem[ceil32(32 * ('cd', 68).length) + (4 * ceil32(return_data.size)) + 417] = ('cd', 68).length
idx = 0
s = 128
t = ceil32(32 * ('cd', 68).length) + (4 * ceil32(return_data.size)) + 449
while idx < ('cd', 68).length:
mem[t] = mem[s + 12 len 20]
idx = idx + 1
s = s + 32
t = t + 32
continue
mem[ceil32(32 * ('cd', 68).length) + (4 * ceil32(return_data.size)) + 385] = (32 * ('cd', 68).length) + 288
require ext_code.size(addr(_105))
call addr(_105).0x22c0d9f with:
gas gas_remaining wei
args ext_call.return_dataaddr(this.address), Array(len=(32 * ('cd', 68).length) + 320, data=mem[ceil32(32 * ('cd', 68).length) + (4 * ceil32(return_data.size)) + 161 len floor32(('cd', 68).length) + 10])
else:
if cd < ext_call.return_data[32] - 1:
revert with 0, 17
static call addr(_105).0xdfe1681 with:
gas gas_remaining wei
mem[ceil32(32 * ('cd', 68).length) + ceil32(return_data.size) + 129] = ext_call.return_data[0]
if not ext_call.success:
revert with ext_call.return_data[0 len return_data.size]
require return_data.size >=′ 32
require ext_call.return_data == ext_call.return_data[12 len 20]
static call addr(_105).token1() with:
gas gas_remaining wei
mem[ceil32(32 * ('cd', 68).length) + (2 * ceil32(return_data.size)) + 129] = ext_call.return_data[0]
if not ext_call.success:
revert with ext_call.return_data[0 len return_data.size]
require return_data.size >=′ 32
require ext_call.return_data == ext_call.return_data[12 len 20]
mem[ceil32(32 * ('cd', 68).length) + (4 * ceil32(return_data.size)) + 161] = tx.origin
mem[ceil32(32 * ('cd', 68).length) + (4 * ceil32(return_data.size)) + 193] = addr(ext_call.return_data)
mem[ceil32(32 * ('cd', 68).length) + (4 * ceil32(return_data.size)) + 225] = addr(ext_call.return_data)
mem[ceil32(32 * ('cd', 68).length) + (4 * ceil32(return_data.size)) + 257] = 0
mem[ceil32(32 * ('cd', 68).length) + (4 * ceil32(return_data.size)) + 289] = cd[4] + -ext_call.return_data[0] + 1
mem[ceil32(32 * ('cd', 68).length) + (4 * ceil32(return_data.size)) + 321] = cd[36] + -ext_call.return_data[32] + 1
mem[ceil32(32 * ('cd', 68).length) + (4 * ceil32(return_data.size)) + 353] = 256
mem[ceil32(32 * ('cd', 68).length) + (4 * ceil32(return_data.size)) + 417] = ('cd', 68).length
idx = 0
s = 128
t = ceil32(32 * ('cd', 68).length) + (4 * ceil32(return_data.size)) + 449
while idx < ('cd', 68).length:
mem[t] = mem[s + 12 len 20]
idx = idx + 1
s = s + 32
t = t + 32
continue
mem[ceil32(32 * ('cd', 68).length) + (4 * ceil32(return_data.size)) + 385] = (32 * ('cd', 68).length) + 288
require ext_code.size(addr(_105))
call addr(_105).0x22c0d9f with:
gas gas_remaining wei
args ext_call.return_dataaddr(this.address), Array(len=(32 * ('cd', 68).length) + 320, data=mem[ceil32(32 * ('cd', 68).length) + (4 * ceil32(return_data.size)) + 161 len floor32(('cd', 68).length) + 10])
if not ext_call.success:
revert with ext_call.return_data[0 len return_data.size]
def unknown9a7bff79() payable:
require calldata.size - 4 >=′ 128
require cd == addr(cd)
require cd <= 18446744073709551615
require cd <′ calldata.size
require ('cd', 100).length <= 18446744073709551615
require cd('cd', 100).length + 36 <= calldata.size
mem[100] = caller
call stor5.0xe5e31b13 with:
gas gas_remaining wei
args caller
if not ext_call.success:
revert with ext_call.return_data[0 len return_data.size]
require return_data.size >=′ 32
require ext_call.return_data == bool(ext_call.return_data[0])
require ext_call.return_data[0]
require this.address == addr(cd)
require ('cd', 100).length >=′ 256
require ('cd', 100) == addr(('cd', 100))
require ('cd', 100) == addr(('cd', 100))
require ('cd', 100) == addr(('cd', 100))
require ('cd', 100) <= 18446744073709551615
require cd('cd', 100) + 67 <′ cd('cd', 100).length + 36
if cd[(cd('cd', 100) + 36)] > 18446744073709551615:
revert with 0, 65
if ceil32(32 * cd[(cd('cd', 100) + 36)]) + 97 < 96 or ceil32(return_data.size) + ceil32(32 * cd[(cd('cd', 100) + 36)]) + 97 > 18446744073709551615:
revert with 0, 65
mem[ceil32(return_data.size) + 96] = cd[(cd('cd', 100) + 36)]
require (32 * cd[(cd('cd', 100) + 36)]) + ('cd', 100) + 68 <= ('cd', 100).length + 36
s = ceil32(return_data.size) + 128
idx = cd('cd', 100) + 68
while idx < (32 * cd[(cd('cd', 100) + 36)]) + cd('cd', 100) + 68:
require cd[idx] == addr(cd[idx])
mem[s] = cd[idx]
s = s + 32
idx = idx + 32
continue
require ('cd', 100) <= 18446744073709551615
require cd('cd', 100) + 67 <′ cd('cd', 100).length + 36
if cd[(cd('cd', 100) + 36)] > 18446744073709551615:
revert with 0, 65
if ceil32(ceil32(cd[(cd('cd', 100) + 36)])) + 98 < 97 or ceil32(return_data.size) + ceil32(32 * cd[(cd('cd', 100) + 36)]) + ceil32(ceil32(cd[(cd('cd', 100) + 36)])) + 98 > 18446744073709551615:
revert with 0, 65
mem[ceil32(return_data.size) + ceil32(32 * cd[(cd('cd', 100) + 36)]) + 97] = cd[(cd('cd', 100) + 36)]
require ('cd', 100) + cd[(cd('cd', 100) + 36)] + 68 <= ('cd', 100).length + 36
mem[ceil32(return_data.size) + ceil32(32 * cd[(cd('cd', 100) + 36)]) + 129 len cd[(cd('cd', 100) + 36)]] = call.data[cd('cd', 100) + 68 len cd[(cd('cd', 100) + 36)]]
mem[ceil32(return_data.size) + ceil32(32 * cd[(cd('cd', 100) + 36)]) + cd[(cd('cd', 100) + 36)] + 129] = 0
if ('cd', 100) > 0:
if 1 > !('cd', 100):
revert with 0, 17
if ('cd', 100) + 1 >= cd[(cd('cd', 100) + 36)]:
revert with 0, 50
_664 = mem[(32 * ('cd', 100) + 1) + ceil32(return_data.size) + 128]
static call mem[(32 * ('cd', 100) + 1) + ceil32(return_data.size) + 140 len 20].getReserves() with:
gas gas_remaining wei
mem[ceil32(return_data.size) + ceil32(32 * cd[(cd('cd', 100) + 36)]) + ceil32(ceil32(cd[(cd('cd', 100) + 36)])) + 98 len 96] = ext_call.return_data[0 len 96]
if not ext_call.success:
revert with ext_call.return_data[0 len return_data.size]
require return_data.size >=′ 96
if ext_call.return_data < 1:
revert with 0, 17
if ext_call.return_data < 1:
revert with 0, 17
if ('cd', 100) > ext_call.return_data[0] - 1:
if ('cd', 100) < ext_call.return_data[0] - 1:
revert with 0, 17
if ('cd', 100) > ext_call.return_data[32] - 1:
if ('cd', 100) < ext_call.return_data[32] - 1:
revert with 0, 17
static call addr(_664).0xdfe1681 with:
gas gas_remaining wei
mem[(2 * ceil32(return_data.size)) + ceil32(32 * cd[(cd('cd', 100) + 36)]) + ceil32(ceil32(cd[(cd('cd', 100) + 36)])) + 98] = ext_call.return_data[0]
if not ext_call.success:
revert with ext_call.return_data[0 len return_data.size]
require return_data.size >=′ 32
require ext_call.return_data == ext_call.return_data[12 len 20]
static call addr(_664).token1() with:
gas gas_remaining wei
else:
if ('cd', 100) <= 0:
if cd[(cd('cd', 100) + 36)]:
mem[ceil32(return_data.size) + ceil32(32 * cd[(cd('cd', 100) + 36)]) + ceil32(ceil32(cd[(cd('cd', 100) + 36)])) + 98 len ceil32(cd[(cd('cd', 100) + 36)])] = call.data[cd('cd', 100) + 68 len cd[(cd('cd', 100) + 36)]], mem[ceil32(return_data.size) + ceil32(32 * cd[(cd('cd', 100) + 36)]) + cd[(cd('cd', 100) + 36)] + 129 len ceil32(cd[(cd('cd', 100) + 36)]) - cd[(cd('cd', 100) + 36)]]
if ceil32(cd[(cd('cd', 100) + 36)]) > cd[(cd('cd', 100) + 36)]:
mem[ceil32(return_data.size) + ceil32(32 * cd[(cd('cd', 100) + 36)]) + ceil32(ceil32(cd[(cd('cd', 100) + 36)])) + cd[(cd('cd', 100) + 36)] + 98] = 0
call this.address.mem[ceil32(return_data.size) + ceil32(32 * cd[(cd('cd', 100) + 36)]) + ceil32(ceil32(cd[(cd('cd', 100) + 36)])) + 98 len 4] with:
gas gas_remaining wei
args mem[ceil32(return_data.size) + ceil32(32 * cd[(cd('cd', 100) + 36)]) + ceil32(ceil32(cd[(cd('cd', 100) + 36)])) + 102 len cd[(cd('cd', 100) + 36)] - 4]
if not cd / 9999:
if cd / 9999:
if cd > !(cd / 9999):
revert with 0, 17
require ext_code.size(addr(('cd', 100)))
call addr(('cd', 100)).transferFrom(address from, address to, uint256 tokens) with:
gas gas_remaining wei
args addr(('cd', 100)), addr(this.address), cd / 9999
if not ext_call.success:
revert with ext_call.return_data[0 len return_data.size]
if stor12 > !(cd / 9999):
revert with 0, 17
stor12 += cd / 9999
require ext_code.size(addr(('cd', 100)))
call addr(('cd', 100)).transfer(address to, uint256 tokens) with:
gas gas_remaining wei
args caller, cd / 9999)
if not ext_call.success:
revert with ext_call.return_data[0 len return_data.size]
stop
if cd > !(cd / 9999):
revert with 0, 17
require ext_code.size(addr(('cd', 100)))
call addr(('cd', 100)).transferFrom(address from, address to, uint256 tokens) with:
gas gas_remaining wei
args addr(('cd', 100)), addr(this.address), cd / 9999
if not ext_call.success:
revert with ext_call.return_data[0 len return_data.size]
if stor11 > !(cd / 9999):
revert with 0, 17
stor11 += cd / 9999
require ext_code.size(addr(('cd', 100)))
call addr(('cd', 100)).transfer(address to, uint256 tokens) with:
gas gas_remaining wei
args caller, cd / 9999)
if not ext_call.success:
revert with ext_call.return_data[0 len return_data.size]
if not cd / 9999:
stop
if cd > !(cd / 9999):
revert with 0, 17
... # Decompilation aborted, sorry: ("decompilation didn't finish",)
if cd / 9999:
if cd > !(cd / 9999):
revert with 0, 17
require ext_code.size(addr(('cd', 100)))
call addr(('cd', 100)).transferFrom(address from, address to, uint256 tokens) with:
gas gas_remaining wei
args addr(('cd', 100)), addr(this.address), cd / 9999
if not ext_call.success:
revert with ext_call.return_data[0 len return_data.size]
if stor11 > !(cd / 9999):
revert with 0, 17
stor11 += cd / 9999
require ext_code.size(addr(('cd', 100)))
call addr(('cd', 100)).transfer(address to, uint256 tokens) with:
gas gas_remaining wei
args caller, cd / 9999)
if not ext_call.success:
revert with ext_call.return_data[0 len return_data.size]
if cd / 9999:
if cd > !(cd / 9999):
revert with 0, 17
require ext_code.size(addr(('cd', 100)))
call addr(('cd', 100)).transferFrom(address from, address to, uint256 tokens) with:
gas gas_remaining wei
args addr(('cd', 100)), addr(this.address), cd / 9999
if not ext_call.success:
revert with ext_call.return_data[0 len return_data.size]
if stor12 > !(cd / 9999):
revert with 0, 17
stor12 += cd / 9999
require ext_code.size(addr(('cd', 100)))
call addr(('cd', 100)).transfer(address to, uint256 tokens) with:
gas gas_remaining wei
args caller, cd / 9999)
if not ext_call.success:
revert with ext_call.return_data[0 len return_data.size]
stop
if 1 > !('cd', 100):
revert with 0, 17
if ('cd', 100) + 1 >= cd[(cd('cd', 100) + 36)]:
revert with 0, 50
_670 = mem[(32 * ('cd', 100) + 1) + ceil32(return_data.size) + 128]
static call mem[(32 * ('cd', 100) + 1) + ceil32(return_data.size) + 140 len 20].getReserves() with:
gas gas_remaining wei
mem[ceil32(return_data.size) + ceil32(32 * cd[(cd('cd', 100) + 36)]) + ceil32(ceil32(cd[(cd('cd', 100) + 36)])) + 98 len 96] = ext_call.return_data[0 len 96]
if not ext_call.success:
revert with ext_call.return_data[0 len return_data.size]
require return_data.size >=′ 96
if ext_call.return_data < 1:
revert with 0, 17
if ext_call.return_data < 1:
revert with 0, 17
if ('cd', 100) > ext_call.return_data[0] - 1:
if ('cd', 100) < ext_call.return_data[0] - 1:
revert with 0, 17
if ('cd', 100) > ext_call.return_data[32] - 1:
if ('cd', 100) < ext_call.return_data[32] - 1:
revert with 0, 17
static call addr(_670).0xdfe1681 with:
gas gas_remaining wei
mem[(2 * ceil32(return_data.size)) + ceil32(32 * cd[(cd('cd', 100) + 36)]) + ceil32(ceil32(cd[(cd('cd', 100) + 36)])) + 98] = ext_call.return_data[0]
if not ext_call.success:
revert with ext_call.return_data[0 len return_data.size]
require return_data.size >=′ 32
require ext_call.return_data == ext_call.return_data[12 len 20]
static call addr(_670).token1() with:
gas gas_remaining wei
mem[(4 * ceil32(return_data.size)) + ceil32(32 * cd[(cd('cd', 100) + 36)]) + ceil32(ceil32(cd[(cd('cd', 100) + 36)])) + 98] = ext_call.return_data[0]
if not ext_call.success:
revert with ext_call.return_data[0 len return_data.size]
require return_data.size >=′ 32
require ext_call.return_data == ext_call.return_data[12 len 20]
mem[(6 * ceil32(return_data.size)) + ceil32(32 * cd[(cd('cd', 100) + 36)]) + ceil32(ceil32(cd[(cd('cd', 100) + 36)])) + 130] = tx.origin
idx = 0
s = ceil32(return_data.size) + 128
t = (6 * ceil32(return_data.size)) + ceil32(32 * cd[(cd('cd', 100) + 36)]) + ceil32(ceil32(cd[(cd('cd', 100) + 36)])) + 418
while idx < cd[(cd('cd', 100) + 36)]:
mem[t] = mem[s + 12 len 20]
idx = idx + 1
s = s + 32
t = t + 32
continue
... # Decompilation aborted, sorry: ("decompilation didn't finish",)
def unknown3956ef14() payable:
require calldata.size - 4 >=′ 128
require cd <= 18446744073709551615
require cd <′ calldata.size
if ('cd', 68).length > 18446744073709551615:
revert with 0, 65
if ceil32(32 * ('cd', 68).length) + 97 < 96 or ceil32(32 * ('cd', 68).length) + 97 > 18446744073709551615:
revert with 0, 65
mem[96] = ('cd', 68).length
require (32 * ('cd', 68).length) + cd <= calldata.size
s = 128
idx = cd[68] + 36
while idx < (32 * ('cd', 68).length) + cd:
require cd[idx] == addr(cd[idx])
mem[s] = cd[idx]
s = s + 32
idx = idx + 32
continue
require cd <= 18446744073709551615
require cd <′ calldata.size
if ('cd', 100).length > 18446744073709551615:
revert with 0, 65
if ceil32(ceil32(('cd', 100).length)) + 98 < 97 or ceil32(32 * ('cd', 68).length) + ceil32(ceil32(('cd', 100).length)) + 98 > 18446744073709551615:
revert with 0, 65
mem[ceil32(32 * ('cd', 68).length) + 97] = ('cd', 100).length
require cd('cd', 100).length + 36 <= calldata.size
mem[ceil32(32 * ('cd', 68).length) + 129 len ('cd', 100).length] = call.data[cd('cd', 100).length]
mem[ceil32(32 * ('cd', 68).length) + ('cd', 100).length + 129] = 0
stor11 = 0
stor12 = 0
if 0 >= ('cd', 68).length:
revert with 0, 50
_137 = mem[128]
static call mem[140 len 20].getReserves() with:
gas gas_remaining wei
mem[ceil32(32 * ('cd', 68).length) + ceil32(ceil32(('cd', 100).length)) + 98 len 96] = ext_call.return_data[0 len 96]
if not ext_call.success:
revert with ext_call.return_data[0 len return_data.size]
require return_data.size >=′ 96
if ext_call.return_data < 1:
revert with 0, 17
if ext_call.return_data < 1:
revert with 0, 17
if cd <= ext_call.return_data[0] - 1:
if cd <= ext_call.return_data[32] - 1:
static call addr(_137).0xdfe1681 with:
gas gas_remaining wei
mem[ceil32(32 * ('cd', 68).length) + ceil32(ceil32(('cd', 100).length)) + ceil32(return_data.size) + 98] = ext_call.return_data[0]
if not ext_call.success:
revert with ext_call.return_data[0 len return_data.size]
require return_data.size >=′ 32
require ext_call.return_data == ext_call.return_data[12 len 20]
static call addr(_137).token1() with:
gas gas_remaining wei
mem[ceil32(32 * ('cd', 68).length) + ceil32(ceil32(('cd', 100).length)) + (2 * ceil32(return_data.size)) + 98] = ext_call.return_data[0]
if not ext_call.success:
revert with ext_call.return_data[0 len return_data.size]
require return_data.size >=′ 32
require ext_call.return_data == ext_call.return_data[12 len 20]
mem[ceil32(32 * ('cd', 68).length) + ceil32(ceil32(('cd', 100).length)) + (4 * ceil32(return_data.size)) + 130] = tx.origin
mem[ceil32(32 * ('cd', 68).length) + ceil32(ceil32(('cd', 100).length)) + (4 * ceil32(return_data.size)) + 162] = addr(ext_call.return_data)
mem[ceil32(32 * ('cd', 68).length) + ceil32(ceil32(('cd', 100).length)) + (4 * ceil32(return_data.size)) + 194] = ext_call.return_data[12 len 20]
mem[ceil32(32 * ('cd', 68).length) + ceil32(ceil32(('cd', 100).length)) + (4 * ceil32(return_data.size)) + 226] = 0
mem[ceil32(32 * ('cd', 68).length) + ceil32(ceil32(('cd', 100).length)) + (4 * ceil32(return_data.size)) + 258] = 0
mem[ceil32(32 * ('cd', 68).length) + ceil32(ceil32(('cd', 100).length)) + (4 * ceil32(return_data.size)) + 290] = 0
mem[ceil32(32 * ('cd', 68).length) + ceil32(ceil32(('cd', 100).length)) + (4 * ceil32(return_data.size)) + 322] = 256
mem[ceil32(32 * ('cd', 68).length) + ceil32(ceil32(('cd', 100).length)) + (4 * ceil32(return_data.size)) + 386] = ('cd', 68).length
idx = 0
s = 128
t = ceil32(32 * ('cd', 68).length) + ceil32(ceil32(('cd', 100).length)) + (4 * ceil32(return_data.size)) + 418
while idx < ('cd', 68).length:
mem[t] = mem[s + 12 len 20]
idx = idx + 1
s = s + 32
t = t + 32
continue
mem[ceil32(32 * ('cd', 68).length) + ceil32(ceil32(('cd', 100).length)) + (4 * ceil32(return_data.size)) + 354] = (32 * ('cd', 68).length) + 288
mem[ceil32(32 * ('cd', 68).length) + ceil32(ceil32(('cd', 100).length)) + (4 * ceil32(return_data.size)) + (32 * ('cd', 68).length) + 418] = ('cd', 100).length
mem[ceil32(32 * ('cd', 68).length) + ceil32(ceil32(('cd', 100).length)) + (4 * ceil32(return_data.size)) + (32 * ('cd', 68).length) + 450 len ceil32(('cd', 100).length)] = call.data[cd('cd', 100).length], ext_call.return_data[('cd', 100).length + -ceil32(ceil32(('cd', 100).length)) + 31 len ceil32(('cd', 100).length) - ('cd', 100).length]
require ext_code.size(addr(_137))
call addr(_137).0x22c0d9f with:
gas gas_remaining wei
args cdaddr(this.address), Array(len=ceil32(('cd', 100).length) + (32 * ('cd', 68).length) + 320, data=mem[ceil32(32 * ('cd', 68).length) + ceil32(ceil32(('cd', 100).length)) + (4 * ceil32(return_data.size)) + 130 len floor32(ceil32(('cd', 100).length) + (32 * ('cd', 68).length) + 31) + 10])
else:
if cd < ext_call.return_data[32] - 1:
revert with 0, 17
static call addr(_137).0xdfe1681 with:
gas gas_remaining wei
mem[ceil32(32 * ('cd', 68).length) + ceil32(ceil32(('cd', 100).length)) + ceil32(return_data.size) + 98] = ext_call.return_data[0]
if not ext_call.success:
revert with ext_call.return_data[0 len return_data.size]
require return_data.size >=′ 32
require ext_call.return_data == ext_call.return_data[12 len 20]
static call addr(_137).token1() with:
gas gas_remaining wei
mem[ceil32(32 * ('cd', 68).length) + ceil32(ceil32(('cd', 100).length)) + (2 * ceil32(return_data.size)) + 98] = ext_call.return_data[0]
if not ext_call.success:
revert with ext_call.return_data[0 len return_data.size]
require return_data.size >=′ 32
require ext_call.return_data == ext_call.return_data[12 len 20]
mem[ceil32(32 * ('cd', 68).length) + ceil32(ceil32(('cd', 100).length)) + (4 * ceil32(return_data.size)) + 130] = tx.origin
mem[ceil32(32 * ('cd', 68).length) + ceil32(ceil32(('cd', 100).length)) + (4 * ceil32(return_data.size)) + 162] = addr(ext_call.return_data)
mem[ceil32(32 * ('cd', 68).length) + ceil32(ceil32(('cd', 100).length)) + (4 * ceil32(return_data.size)) + 194] = ext_call.return_data[12 len 20]
mem[ceil32(32 * ('cd', 68).length) + ceil32(ceil32(('cd', 100).length)) + (4 * ceil32(return_data.size)) + 226] = 0
mem[ceil32(32 * ('cd', 68).length) + ceil32(ceil32(('cd', 100).length)) + (4 * ceil32(return_data.size)) + 258] = 0
mem[ceil32(32 * ('cd', 68).length) + ceil32(ceil32(('cd', 100).length)) + (4 * ceil32(return_data.size)) + 290] = cd[36] + -ext_call.return_data[32] + 1
mem[ceil32(32 * ('cd', 68).length) + ceil32(ceil32(('cd', 100).length)) + (4 * ceil32(return_data.size)) + 322] = 256
mem[ceil32(32 * ('cd', 68).length) + ceil32(ceil32(('cd', 100).length)) + (4 * ceil32(return_data.size)) + 386] = ('cd', 68).length
idx = 0
s = 128
t = ceil32(32 * ('cd', 68).length) + ceil32(ceil32(('cd', 100).length)) + (4 * ceil32(return_data.size)) + 418
while idx < ('cd', 68).length:
mem[t] = mem[s + 12 len 20]
idx = idx + 1
s = s + 32
t = t + 32
continue
mem[ceil32(32 * ('cd', 68).length) + ceil32(ceil32(('cd', 100).length)) + (4 * ceil32(return_data.size)) + 354] = (32 * ('cd', 68).length) + 288
mem[ceil32(32 * ('cd', 68).length) + ceil32(ceil32(('cd', 100).length)) + (4 * ceil32(return_data.size)) + (32 * ('cd', 68).length) + 418] = ('cd', 100).length
mem[ceil32(32 * ('cd', 68).length) + ceil32(ceil32(('cd', 100).length)) + (4 * ceil32(return_data.size)) + (32 * ('cd', 68).length) + 450 len ceil32(('cd', 100).length)] = call.data[cd('cd', 100).length], ext_call.return_data[('cd', 100).length + -ceil32(ceil32(('cd', 100).length)) + 31 len ceil32(('cd', 100).length) - ('cd', 100).length]
require ext_code.size(addr(_137))
call addr(_137).0x22c0d9f with:
gas gas_remaining wei
args cdaddr(this.address), Array(len=ceil32(('cd', 100).length) + (32 * ('cd', 68).length) + 320, data=mem[ceil32(32 * ('cd', 68).length) + ceil32(ceil32(('cd', 100).length)) + (4 * ceil32(return_data.size)) + 130 len floor32(ceil32(('cd', 100).length) + (32 * ('cd', 68).length) + 31) + 10])
else:
if cd < ext_call.return_data[0] - 1:
revert with 0, 17
if cd <= ext_call.return_data[32] - 1:
static call addr(_137).0xdfe1681 with:
gas gas_remaining wei
mem[ceil32(32 * ('cd', 68).length) + ceil32(ceil32(('cd', 100).length)) + ceil32(return_data.size) + 98] = ext_call.return_data[0]
if not ext_call.success:
revert with ext_call.return_data[0 len return_data.size]
require return_data.size >=′ 32
require ext_call.return_data == ext_call.return_data[12 len 20]
static call addr(_137).token1() with:
gas gas_remaining wei
mem[ceil32(32 * ('cd', 68).length) + ceil32(ceil32(('cd', 100).length)) + (2 * ceil32(return_data.size)) + 98] = ext_call.return_data[0]
if not ext_call.success:
revert with ext_call.return_data[0 len return_data.size]
require return_data.size >=′ 32
require ext_call.return_data == ext_call.return_data[12 len 20]
mem[ceil32(32 * ('cd', 68).length) + ceil32(ceil32(('cd', 100).length)) + (4 * ceil32(return_data.size)) + 130] = tx.origin
mem[ceil32(32 * ('cd', 68).length) + ceil32(ceil32(('cd', 100).length)) + (4 * ceil32(return_data.size)) + 162] = addr(ext_call.return_data)
mem[ceil32(32 * ('cd', 68).length) + ceil32(ceil32(('cd', 100).length)) + (4 * ceil32(return_data.size)) + 194] = ext_call.return_data[12 len 20]
mem[ceil32(32 * ('cd', 68).length) + ceil32(ceil32(('cd', 100).length)) + (4 * ceil32(return_data.size)) + 226] = 0
mem[ceil32(32 * ('cd', 68).length) + ceil32(ceil32(('cd', 100).length)) + (4 * ceil32(return_data.size)) + 258] = cd[4] + -ext_call.return_data[0] + 1
mem[ceil32(32 * ('cd', 68).length) + ceil32(ceil32(('cd', 100).length)) + (4 * ceil32(return_data.size)) + 290] = 0
mem[ceil32(32 * ('cd', 68).length) + ceil32(ceil32(('cd', 100).length)) + (4 * ceil32(return_data.size)) + 322] = 256
mem[ceil32(32 * ('cd', 68).length) + ceil32(ceil32(('cd', 100).length)) + (4 * ceil32(return_data.size)) + 386] = ('cd', 68).length
idx = 0
s = 128
t = ceil32(32 * ('cd', 68).length) + ceil32(ceil32(('cd', 100).length)) + (4 * ceil32(return_data.size)) + 418
while idx < ('cd', 68).length:
mem[t] = mem[s + 12 len 20]
idx = idx + 1
s = s + 32
t = t + 32
continue
mem[ceil32(32 * ('cd', 68).length) + ceil32(ceil32(('cd', 100).length)) + (4 * ceil32(return_data.size)) + 354] = (32 * ('cd', 68).length) + 288
mem[ceil32(32 * ('cd', 68).length) + ceil32(ceil32(('cd', 100).length)) + (4 * ceil32(return_data.size)) + (32 * ('cd', 68).length) + 418] = ('cd', 100).length
mem[ceil32(32 * ('cd', 68).length) + ceil32(ceil32(('cd', 100).length)) + (4 * ceil32(return_data.size)) + (32 * ('cd', 68).length) + 450 len ceil32(('cd', 100).length)] = call.data[cd('cd', 100).length], ext_call.return_data[('cd', 100).length + -ceil32(ceil32(('cd', 100).length)) + 31 len ceil32(('cd', 100).length) - ('cd', 100).length]
require ext_code.size(addr(_137))
call addr(_137).0x22c0d9f with:
gas gas_remaining wei
args ext_call.return_dataaddr(this.address), Array(len=ceil32(('cd', 100).length) + (32 * ('cd', 68).length) + 320, data=mem[ceil32(32 * ('cd', 68).length) + ceil32(ceil32(('cd', 100).length)) + (4 * ceil32(return_data.size)) + 130 len floor32(ceil32(('cd', 100).length) + (32 * ('cd', 68).length) + 31) + 10])
else:
if cd < ext_call.return_data[32] - 1:
revert with 0, 17
static call addr(_137).0xdfe1681 with:
gas gas_remaining wei
mem[ceil32(32 * ('cd', 68).length) + ceil32(ceil32(('cd', 100).length)) + ceil32(return_data.size) + 98] = ext_call.return_data[0]
if not ext_call.success:
revert with ext_call.return_data[0 len return_data.size]
require return_data.size >=′ 32
require ext_call.return_data == ext_call.return_data[12 len 20]
static call addr(_137).token1() with:
gas gas_remaining wei
mem[ceil32(32 * ('cd', 68).length) + ceil32(ceil32(('cd', 100).length)) + (2 * ceil32(return_data.size)) + 98] = ext_call.return_data[0]
if not ext_call.success:
revert with ext_call.return_data[0 len return_data.size]
require return_data.size >=′ 32
require ext_call.return_data == ext_call.return_data[12 len 20]
mem[ceil32(32 * ('cd', 68).length) + ceil32(ceil32(('cd', 100).length)) + (4 * ceil32(return_data.size)) + 130] = tx.origin
mem[ceil32(32 * ('cd', 68).length) + ceil32(ceil32(('cd', 100).length)) + (4 * ceil32(return_data.size)) + 162] = addr(ext_call.return_data)
mem[ceil32(32 * ('cd', 68).length) + ceil32(ceil32(('cd', 100).length)) + (4 * ceil32(return_data.size)) + 194] = ext_call.return_data[12 len 20]
mem[ceil32(32 * ('cd', 68).length) + ceil32(ceil32(('cd', 100).length)) + (4 * ceil32(return_data.size)) + 226] = 0
mem[ceil32(32 * ('cd', 68).length) + ceil32(ceil32(('cd', 100).length)) + (4 * ceil32(return_data.size)) + 258] = cd[4] + -ext_call.return_data[0] + 1
mem[ceil32(32 * ('cd', 68).length) + ceil32(ceil32(('cd', 100).length)) + (4 * ceil32(return_data.size)) + 290] = cd[36] + -ext_call.return_data[32] + 1
mem[ceil32(32 * ('cd', 68).length) + ceil32(ceil32(('cd', 100).length)) + (4 * ceil32(return_data.size)) + 322] = 256
mem[ceil32(32 * ('cd', 68).length) + ceil32(ceil32(('cd', 100).length)) + (4 * ceil32(return_data.size)) + 386] = ('cd', 68).length
idx = 0
s = 128
t = ceil32(32 * ('cd', 68).length) + ceil32(ceil32(('cd', 100).length)) + (4 * ceil32(return_data.size)) + 418
while idx < ('cd', 68).length:
mem[t] = mem[s + 12 len 20]
idx = idx + 1
s = s + 32
t = t + 32
continue
mem[ceil32(32 * ('cd', 68).length) + ceil32(ceil32(('cd', 100).length)) + (4 * ceil32(return_data.size)) + 354] = (32 * ('cd', 68).length) + 288
mem[ceil32(32 * ('cd', 68).length) + ceil32(ceil32(('cd', 100).length)) + (4 * ceil32(return_data.size)) + (32 * ('cd', 68).length) + 418] = ('cd', 100).length
mem[ceil32(32 * ('cd', 68).length) + ceil32(ceil32(('cd', 100).length)) + (4 * ceil32(return_data.size)) + (32 * ('cd', 68).length) + 450 len ceil32(('cd', 100).length)] = call.data[cd('cd', 100).length], ext_call.return_data[('cd', 100).length + -ceil32(ceil32(('cd', 100).length)) + 31 len ceil32(('cd', 100).length) - ('cd', 100).length]
require ext_code.size(addr(_137))
call addr(_137).0x22c0d9f with:
gas gas_remaining wei
args ext_call.return_dataaddr(this.address), Array(len=ceil32(('cd', 100).length) + (32 * ('cd', 68).length) + 320, data=mem[ceil32(32 * ('cd', 68).length) + ceil32(ceil32(('cd', 100).length)) + (4 * ceil32(return_data.size)) + 130 len floor32(ceil32(('cd', 100).length) + (32 * ('cd', 68).length) + 31) + 10])
if not ext_call.success:
revert with ext_call.return_data[0 len return_data.size]
log 0xeb83658d: stor11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment