---
tags: decompiler
---
# MWEs 1: 28-38
Note:
- Python versions are selected based on the original pyc (Using command `file`)
- MWEs generated will be compiled using `compileall` via the same python version
## Error 1/28
Source: [link](https://pypi.org/project/BioClients/0.0.4/#files)
Python version: 3.8
Decompyle3: Failed
Uncompyle6: Failed
Error: `Deparsing stopped due to parse error`
MWE1:
| Py3.8 | Py3.7 | Py3.6 | Py2.7 |
| -------- | -------- | -------- | -------- |
| Fail | Pass-Incorrect | Pass | Pass |
MWE2:
| Py3.8 | Py3.7 | Py3.6 | Py2.7 |
| -------- | -------- | -------- | -------- |
| Fail | Pass-Incorrect | Pass | Pass |
MWE3:
| Py3.8 | Py3.7 | Py3.6 | Py2.7 |
| -------- | -------- | -------- | -------- |
| Fail | Pass-Incorrect | Pass | Pass |
MWE4:
| Py3.8 | Py3.7 | Py3.6 | Py2.7 |
| -------- | -------- | -------- | -------- |
| Fail | Pass | Pass | Pass |
### MWE:
#### MWE1:
```python=
def GetPerturbagens():
while True:
try:
pass
except:
continue
```
##### Closest Solution1:
No solution. See [this](https://hackmd.io/@aliahad97/ry3JqUjad#MWE-2)
##### MWE1 data:
Bytecode for MWE:
```c=
1 0 LOAD_CONST 0 (<code object GetPerturbagens at 0x400246e920, file "main.py", line 1>)
2 LOAD_CONST 1 ('GetPerturbagens')
4 MAKE_FUNCTION 0
6 STORE_NAME 0 (GetPerturbagens)
8 LOAD_CONST 2 (None)
10 RETURN_VALUE
Disassembly of <code object GetPerturbagens at 0x400246e920, file "main.py", line 1>:
3 >> 0 SETUP_FINALLY 4 (to 6)
4 2 POP_BLOCK
4 JUMP_ABSOLUTE 0
5 >> 6 POP_TOP
8 POP_TOP
10 POP_TOP
6 12 POP_EXCEPT
14 JUMP_ABSOLUTE 0
16 POP_EXCEPT
18 JUMP_ABSOLUTE 0
20 END_FINALLY
22 JUMP_ABSOLUTE 0
24 LOAD_CONST 0 (None)
26 RETURN_VALUE
```
Output uncompyle6:
```python=
def GetPerturbagens--- This code section failed: ---
L. 3 0 SETUP_FINALLY 6 'to 6'
L. 4 2 POP_BLOCK
4 JUMP_BACK 0 'to 0'
6_0 COME_FROM_FINALLY 0 '0'
L. 5 6 POP_TOP
8 POP_TOP
10 POP_TOP
L. 6 12 POP_EXCEPT
14 JUMP_BACK 0 'to 0'
16 POP_EXCEPT
18 JUMP_BACK 0 'to 0'
20 END_FINALLY
22 JUMP_BACK 0 'to 0'
Parse error at or near `POP_EXCEPT' instruction at offset 16
```
Output Decompyle3:
```python=
Instruction context:
L. 6 12 POP_EXCEPT
-> 14 JUMP_BACK 0 'to 0'
16 POP_EXCEPT
18 JUMP_BACK 0 'to 0'
20 END_FINALLY
test/main.pyc --
# decompile failed
# file test/main.pyc
# Deparsing stopped due to parse error
```
#### MWE2:
```python=
def ListDrugs():
while True:
try:
pass
except Exception as e:
continue
```
##### Closest Solution2:
No solution. See [this](https://hackmd.io/@aliahad97/ry3JqUjad#MWE-2)
##### MWE2 data:
Bytecode for MWE:
```c=
1 0 LOAD_CONST 0 (<code object ListDrugs at 0x40021eeb30, file "main.py", line 1>)
2 LOAD_CONST 1 ('ListDrugs')
4 MAKE_FUNCTION 0
6 STORE_NAME 0 (ListDrugs)
8 LOAD_CONST 2 (None)
10 RETURN_VALUE
Disassembly of <code object ListDrugs at 0x40021eeb30, file "main.py", line 1>:
3 >> 0 SETUP_FINALLY 4 (to 6)
4 2 POP_BLOCK
4 JUMP_ABSOLUTE 0
5 >> 6 DUP_TOP
8 LOAD_GLOBAL 0 (Exception)
10 COMPARE_OP 10 (exception match)
12 POP_JUMP_IF_FALSE 46
14 POP_TOP
16 STORE_FAST 0 (e)
18 POP_TOP
20 SETUP_FINALLY 12 (to 34)
6 22 POP_BLOCK
24 POP_EXCEPT
26 CALL_FINALLY 6 (to 34)
28 JUMP_ABSOLUTE 0
30 POP_BLOCK
32 BEGIN_FINALLY
>> 34 LOAD_CONST 0 (None)
36 STORE_FAST 0 (e)
38 DELETE_FAST 0 (e)
40 END_FINALLY
42 POP_EXCEPT
44 JUMP_ABSOLUTE 0
>> 46 END_FINALLY
48 JUMP_ABSOLUTE 0
50 LOAD_CONST 0 (None)
52 RETURN_VALUE
```
Output uncompyle6:
```python=
def ListDrugs--- This code section failed: ---
L. 3 0 SETUP_FINALLY 6 'to 6'
L. 4 2 POP_BLOCK
4 JUMP_BACK 0 'to 0'
6_0 COME_FROM_FINALLY 0 '0'
L. 5 6 DUP_TOP
8 LOAD_GLOBAL Exception
10 COMPARE_OP exception-match
12 POP_JUMP_IF_FALSE 46 'to 46'
14 POP_TOP
16 STORE_FAST 'e'
18 POP_TOP
20 SETUP_FINALLY 34 'to 34'
L. 6 22 POP_BLOCK
24 POP_EXCEPT
26 CALL_FINALLY 34 'to 34'
28 JUMP_BACK 0 'to 0'
30 POP_BLOCK
32 BEGIN_FINALLY
34_0 COME_FROM 26 '26'
34_1 COME_FROM_FINALLY 20 '20'
34 LOAD_CONST None
36 STORE_FAST 'e'
38 DELETE_FAST 'e'
40 END_FINALLY
42 POP_EXCEPT
44 JUMP_BACK 0 'to 0'
46_0 COME_FROM 12 '12'
46 END_FINALLY
48 JUMP_BACK 0 'to 0'
Parse error at or near `CALL_FINALLY' instruction at offset 26
```
Output Decompyle3:
```python=
Instruction context:
L. 6 22 POP_BLOCK
24 POP_EXCEPT
26 CALL_FINALLY 34 'to 34'
-> 28 JUMP_BACK 0 'to 0'
30 POP_BLOCK
32 BEGIN_FINALLY
34_0 COME_FROM 26 '26'
34_1 COME_FROM_FINALLY 20 '20'
34 LOAD_CONST None
36 STORE_FAST 'e'
38 DELETE_FAST 'e'
40 END_FINALLY
42 POP_EXCEPT
44 JUMP_BACK 0 'to 0'
46_0 COME_FROM 12 '12'
46 END_FINALLY
test/main.pyc --
# decompile failed
# file test/main.pyc
# Deparsing stopped due to parse error
```
#### MWE3:
```python=
def ListCells():
while True:
try:
pass
except Exception as e:
continue
```
##### Closest Solution3:
No solution. See [this](https://hackmd.io/@aliahad97/ry3JqUjad#MWE-2)
##### MWE3 data:
Bytecode for MWE:
```c=
1 0 LOAD_CONST 0 (<code object ListCells at 0x400236eb30, file "main.py", line 1>)
2 LOAD_CONST 1 ('ListCells')
4 MAKE_FUNCTION 0
6 STORE_NAME 0 (ListCells)
8 LOAD_CONST 2 (None)
10 RETURN_VALUE
Disassembly of <code object ListCells at 0x400236eb30, file "main.py", line 1>:
3 >> 0 SETUP_FINALLY 4 (to 6)
4 2 POP_BLOCK
4 JUMP_ABSOLUTE 0
5 >> 6 DUP_TOP
8 LOAD_GLOBAL 0 (Exception)
10 COMPARE_OP 10 (exception match)
12 POP_JUMP_IF_FALSE 46
14 POP_TOP
16 STORE_FAST 0 (e)
18 POP_TOP
20 SETUP_FINALLY 12 (to 34)
6 22 POP_BLOCK
24 POP_EXCEPT
26 CALL_FINALLY 6 (to 34)
28 JUMP_ABSOLUTE 0
30 POP_BLOCK
32 BEGIN_FINALLY
>> 34 LOAD_CONST 0 (None)
36 STORE_FAST 0 (e)
38 DELETE_FAST 0 (e)
40 END_FINALLY
42 POP_EXCEPT
44 JUMP_ABSOLUTE 0
>> 46 END_FINALLY
48 JUMP_ABSOLUTE 0
50 LOAD_CONST 0 (None)
52 RETURN_VALUE
```
Output uncompyle6:
```python=
def ListCells--- This code section failed: ---
L. 3 0 SETUP_FINALLY 6 'to 6'
L. 4 2 POP_BLOCK
4 JUMP_BACK 0 'to 0'
6_0 COME_FROM_FINALLY 0 '0'
L. 5 6 DUP_TOP
8 LOAD_GLOBAL Exception
10 COMPARE_OP exception-match
12 POP_JUMP_IF_FALSE 46 'to 46'
14 POP_TOP
16 STORE_FAST 'e'
18 POP_TOP
20 SETUP_FINALLY 34 'to 34'
L. 6 22 POP_BLOCK
24 POP_EXCEPT
26 CALL_FINALLY 34 'to 34'
28 JUMP_BACK 0 'to 0'
30 POP_BLOCK
32 BEGIN_FINALLY
34_0 COME_FROM 26 '26'
34_1 COME_FROM_FINALLY 20 '20'
34 LOAD_CONST None
36 STORE_FAST 'e'
38 DELETE_FAST 'e'
40 END_FINALLY
42 POP_EXCEPT
44 JUMP_BACK 0 'to 0'
46_0 COME_FROM 12 '12'
46 END_FINALLY
48 JUMP_BACK 0 'to 0'
Parse error at or near `CALL_FINALLY' instruction at offset 26
```
Output Decompyle3:
```python=
Instruction context:
L. 6 22 POP_BLOCK
24 POP_EXCEPT
26 CALL_FINALLY 34 'to 34'
-> 28 JUMP_BACK 0 'to 0'
30 POP_BLOCK
32 BEGIN_FINALLY
34_0 COME_FROM 26 '26'
34_1 COME_FROM_FINALLY 20 '20'
34 LOAD_CONST None
36 STORE_FAST 'e'
38 DELETE_FAST 'e'
40 END_FINALLY
42 POP_EXCEPT
44 JUMP_BACK 0 'to 0'
46_0 COME_FROM 12 '12'
46 END_FINALLY
test/main.pyc --
# decompile failed
# file test/main.pyc
# Deparsing stopped due to parse error
```
#### MWE4:
```python=
def GetSignatures():
while True:
try:
pass
except:
continue
```
##### Closest Solution4:
No solution. See [this](https://hackmd.io/@aliahad97/ry3JqUjad#MWE-2)
##### MWE4 data:
Bytecode for MWE:
```c=
1 0 LOAD_CONST 0 (<code object GetSignatures at 0x40021ee920, file "main.py", line 1>)
2 LOAD_CONST 1 ('GetSignatures')
4 MAKE_FUNCTION 0
6 STORE_NAME 0 (GetSignatures)
8 LOAD_CONST 2 (None)
10 RETURN_VALUE
Disassembly of <code object GetSignatures at 0x40021ee920, file "main.py", line 1>:
3 >> 0 SETUP_FINALLY 4 (to 6)
4 2 POP_BLOCK
4 JUMP_ABSOLUTE 0
5 >> 6 POP_TOP
8 POP_TOP
10 POP_TOP
6 12 POP_EXCEPT
14 JUMP_ABSOLUTE 0
16 POP_EXCEPT
18 JUMP_ABSOLUTE 0
20 END_FINALLY
22 JUMP_ABSOLUTE 0
24 LOAD_CONST 0 (None)
26 RETURN_VALUE
```
Output uncompyle6:
```python=
def GetSignatures--- This code section failed: ---
L. 3 0 SETUP_FINALLY 6 'to 6'
L. 4 2 POP_BLOCK
4 JUMP_BACK 0 'to 0'
6_0 COME_FROM_FINALLY 0 '0'
L. 5 6 POP_TOP
8 POP_TOP
10 POP_TOP
L. 6 12 POP_EXCEPT
14 JUMP_BACK 0 'to 0'
16 POP_EXCEPT
18 JUMP_BACK 0 'to 0'
20 END_FINALLY
22 JUMP_BACK 0 'to 0'
Parse error at or near `POP_EXCEPT' instruction at offset 16
```
Output Decompyle3:
```python=
Instruction context:
L. 6 12 POP_EXCEPT
-> 14 JUMP_BACK 0 'to 0'
16 POP_EXCEPT
18 JUMP_BACK 0 'to 0'
20 END_FINALLY
test/main.pyc --
# decompile failed
# file test/main.pyc
# Deparsing stopped due to parse error
```
## Error 1/29
Source: [link](https://github.com/jeremyjyang/BioClients/blob/a054185b3072537abefa924b570f6025b87246c2/BioClients/mesh/Utils.py#L63)
Python version: 3.8
Decompyle3: Failed
Uncompyle6: Failed
Error: `Deparsing stopped due to parse error`
| Py3.8 | Py3.7 | Py3.6 | Py2.7 |
| -------- | -------- | -------- | -------- |
| Fail | Pass | Pass | Pass |
### MWE:
```python=
def Supp2Csv():
for event,elem in ElementTree.iterparse(fin):
if a:
if b and c: continue #chemical-only
if d: continue
x = x +1
z()
```
#### Closest Solution:
```python=
def Supp2Csv():
for event,elem in ElementTree.iterparse(fin):
if a:
tmp = b and c
if tmp: continue #chemical-only
if d: continue
x = x +1
z()
```
```c=
1 0 LOAD_CONST 0 (<code object Supp2Csv at 0x40021ae9d0, file "main.py", line 1>)
2 LOAD_CONST 1 ('Supp2Csv')
4 MAKE_FUNCTION 0
6 STORE_NAME 0 (Supp2Csv)
8 LOAD_CONST 2 (None)
10 RETURN_VALUE
Disassembly of <code object Supp2Csv at 0x40021ae9d0, file "main.py", line 1>:
2 0 LOAD_GLOBAL 0 (ElementTree)
2 LOAD_METHOD 1 (iterparse)
4 LOAD_GLOBAL 2 (fin)
6 CALL_METHOD 1
8 GET_ITER
>> 10 FOR_ITER 40 (to 52)
12 UNPACK_SEQUENCE 2
14 STORE_FAST 0 (event)
16 STORE_FAST 1 (elem)
3 18 LOAD_GLOBAL 3 (a)
20 POP_JUMP_IF_FALSE 10
4 22 LOAD_GLOBAL 4 (b)
24 JUMP_IF_FALSE_OR_POP 28
26 LOAD_GLOBAL 5 (c)
>> 28 STORE_FAST 2 (tmp)
5 30 LOAD_FAST 2 (tmp)
32 POP_JUMP_IF_FALSE 36
34 JUMP_ABSOLUTE 10
6 >> 36 LOAD_GLOBAL 6 (d)
38 POP_JUMP_IF_FALSE 42
40 JUMP_ABSOLUTE 10
7 >> 42 LOAD_FAST 3 (x)
44 LOAD_CONST 1 (1)
46 BINARY_ADD
48 STORE_FAST 3 (x)
50 JUMP_ABSOLUTE 10
8 >> 52 LOAD_GLOBAL 7 (z)
54 CALL_FUNCTION 0
56 POP_TOP
58 LOAD_CONST 0 (None)
60 RETURN_VALUE
```
#### MWE data:
Bytecode for MWE:
```c=
1 0 LOAD_CONST 0 (<code object Supp2Csv at 0x400236e9d0, file "main.py", line 1>)
2 LOAD_CONST 1 ('Supp2Csv')
4 MAKE_FUNCTION 0
6 STORE_NAME 0 (Supp2Csv)
8 LOAD_CONST 2 (None)
10 RETURN_VALUE
Disassembly of <code object Supp2Csv at 0x400236e9d0, file "main.py", line 1>:
2 0 LOAD_GLOBAL 0 (ElementTree)
2 LOAD_METHOD 1 (iterparse)
4 LOAD_GLOBAL 2 (fin)
6 CALL_METHOD 1
8 GET_ITER
>> 10 FOR_ITER 36 (to 48)
12 UNPACK_SEQUENCE 2
14 STORE_FAST 0 (event)
16 STORE_FAST 1 (elem)
3 18 LOAD_GLOBAL 3 (a)
20 POP_JUMP_IF_FALSE 10
4 22 LOAD_GLOBAL 4 (b)
24 POP_JUMP_IF_FALSE 32
26 LOAD_GLOBAL 5 (c)
28 POP_JUMP_IF_FALSE 32
30 JUMP_ABSOLUTE 10
5 >> 32 LOAD_GLOBAL 6 (d)
34 POP_JUMP_IF_FALSE 38
36 JUMP_ABSOLUTE 10
6 >> 38 LOAD_FAST 2 (x)
40 LOAD_CONST 1 (1)
42 BINARY_ADD
44 STORE_FAST 2 (x)
46 JUMP_ABSOLUTE 10
7 >> 48 LOAD_GLOBAL 7 (z)
50 CALL_FUNCTION 0
52 POP_TOP
54 LOAD_CONST 0 (None)
56 RETURN_VALUE
```
Output uncompyle6:
```python=
def Supp2Csv--- This code section failed: ---
L. 2 0 LOAD_GLOBAL ElementTree
2 LOAD_METHOD iterparse
4 LOAD_GLOBAL fin
6 CALL_METHOD_1 1 ''
8 GET_ITER
10_0 COME_FROM 20 '20'
10 FOR_ITER 48 'to 48'
12 UNPACK_SEQUENCE_2 2
14 STORE_FAST 'event'
16 STORE_FAST 'elem'
L. 3 18 LOAD_GLOBAL a
20 POP_JUMP_IF_FALSE 10 'to 10'
L. 4 22 LOAD_GLOBAL b
24 POP_JUMP_IF_FALSE 32 'to 32'
26 LOAD_GLOBAL c
28 POP_JUMP_IF_FALSE 32 'to 32'
L. 4 30 JUMP_BACK 10 'to 10'
32_0 COME_FROM 28 '28'
32_1 COME_FROM 24 '24'
L. 5 32 LOAD_GLOBAL d
34 POP_JUMP_IF_FALSE 38 'to 38'
L. 5 36 JUMP_BACK 10 'to 10'
38_0 COME_FROM 34 '34'
L. 6 38 LOAD_FAST 'x'
40 LOAD_CONST 1
42 BINARY_ADD
44 STORE_FAST 'x'
46 JUMP_BACK 10 'to 10'
L. 7 48 LOAD_GLOBAL z
50 CALL_FUNCTION_0 0 ''
52 POP_TOP
Parse error at or near `LOAD_GLOBAL' instruction at offset 48
```
Output Decompyle3:
```python=
Instruction context:
L. 7 48 LOAD_GLOBAL z
-> 50 CALL_FUNCTION_0 0 ''
test/main.pyc --
# decompile failed
# file test/main.pyc
# Deparsing stopped due to parse error
```
## Error 1/30
Source: [link](https://github.com/jeremyjyang/BioClients/blob/a054185b3072537abefa924b570f6025b87246c2/BioClients/opentargets/Utils.py#L18)
Python version: 3.8
Decompyle3: Failed
Uncompyle6: Failed
Error: `Deparsing stopped due to parse error`
| Py3.8 | Py3.7 | Py3.6 | Py2.7 |
| -------- | -------- | -------- | -------- |
| Fail | Pass-Incorrect | Pass | Pass |
### MWE:
```python=
def SearchAssociations():
for id_this in ids:
try:
pass
except Exception as e:
continue
```
#### Closest Solution:
No solution. See [this](https://hackmd.io/@aliahad97/ry3JqUjad#MWE-2)
#### MWE data:
Bytecode for MWE:
```c=
1 0 LOAD_CONST 0 (<code object SearchAssociations at 0x40021aeb30, file "main.py", line 1>)
2 LOAD_CONST 1 ('SearchAssociations')
4 MAKE_FUNCTION 0
6 STORE_NAME 0 (SearchAssociations)
8 LOAD_CONST 2 (None)
10 RETURN_VALUE
Disassembly of <code object SearchAssociations at 0x40021aeb30, file "main.py", line 1>:
2 0 LOAD_GLOBAL 0 (ids)
2 GET_ITER
>> 4 FOR_ITER 52 (to 58)
6 STORE_FAST 0 (id_this)
3 8 SETUP_FINALLY 4 (to 14)
4 10 POP_BLOCK
12 JUMP_ABSOLUTE 4
5 >> 14 DUP_TOP
16 LOAD_GLOBAL 1 (Exception)
18 COMPARE_OP 10 (exception match)
20 POP_JUMP_IF_FALSE 54
22 POP_TOP
24 STORE_FAST 1 (e)
26 POP_TOP
28 SETUP_FINALLY 12 (to 42)
6 30 POP_BLOCK
32 POP_EXCEPT
34 CALL_FINALLY 6 (to 42)
36 JUMP_ABSOLUTE 4
38 POP_BLOCK
40 BEGIN_FINALLY
>> 42 LOAD_CONST 0 (None)
44 STORE_FAST 1 (e)
46 DELETE_FAST 1 (e)
48 END_FINALLY
50 POP_EXCEPT
52 JUMP_ABSOLUTE 4
>> 54 END_FINALLY
56 JUMP_ABSOLUTE 4
>> 58 LOAD_CONST 0 (None)
60 RETURN_VALUE
```
Output uncompyle6:
```python=
def SearchAssociations--- This code section failed: ---
L. 2 0 LOAD_GLOBAL ids
2 GET_ITER
4 FOR_ITER 58 'to 58'
6 STORE_FAST 'id_this'
L. 3 8 SETUP_FINALLY 14 'to 14'
L. 4 10 POP_BLOCK
12 JUMP_BACK 4 'to 4'
14_0 COME_FROM_FINALLY 8 '8'
L. 5 14 DUP_TOP
16 LOAD_GLOBAL Exception
18 COMPARE_OP exception-match
20 POP_JUMP_IF_FALSE 54 'to 54'
22 POP_TOP
24 STORE_FAST 'e'
26 POP_TOP
28 SETUP_FINALLY 42 'to 42'
L. 6 30 POP_BLOCK
32 POP_EXCEPT
34 CALL_FINALLY 42 'to 42'
36 JUMP_BACK 4 'to 4'
38 POP_BLOCK
40 BEGIN_FINALLY
42_0 COME_FROM 34 '34'
42_1 COME_FROM_FINALLY 28 '28'
42 LOAD_CONST None
44 STORE_FAST 'e'
46 DELETE_FAST 'e'
48 END_FINALLY
50 POP_EXCEPT
52 JUMP_BACK 4 'to 4'
54_0 COME_FROM 20 '20'
54 END_FINALLY
56 JUMP_BACK 4 'to 4'
Parse error at or near `CALL_FINALLY' instruction at offset 34
```
Output Decompyle3:
```python=
Instruction context:
L. 6 30 POP_BLOCK
32 POP_EXCEPT
34 CALL_FINALLY 42 'to 42'
-> 36 JUMP_BACK 4 'to 4'
38 POP_BLOCK
40 BEGIN_FINALLY
42_0 COME_FROM 34 '34'
42_1 COME_FROM_FINALLY 28 '28'
42 LOAD_CONST None
44 STORE_FAST 'e'
46 DELETE_FAST 'e'
48 END_FINALLY
50 POP_EXCEPT
52 JUMP_BACK 4 'to 4'
54_0 COME_FROM 20 '20'
54 END_FINALLY
56 JUMP_BACK 4 'to 4'
test/main.pyc --
# decompile failed
# file test/main.pyc
# Deparsing stopped due to parse error
```
## Error 1/31
Source: [link](https://github.com/jeremyjyang/BioClients/blob/a054185b3072537abefa924b570f6025b87246c2/BioClients/pdb/Utils.py)
Python version: 3.8
Decompyle3: Failed
Uncompyle6: Failed
Error: `Deparsing stopped due to parse error`
MWE1:
| Py3.8 | Py3.7 | Py3.6 | Py2.7 |
| -------- | -------- | -------- | -------- |
| Fail | Pass | Pass | Pass |
MWE2:
| Py3.8 | Py3.7 | Py3.6 | Py2.7 |
| -------- | -------- | -------- | -------- |
| Fail | Pass | Pass | Pass |
MWE3:
| Py3.8 | Py3.7 | Py3.6 | Py2.7 |
| -------- | -------- | -------- | -------- |
| Fail | Pass | Pass | Pass |
MWE4:
| Py3.8 | Py3.7 | Py3.6 | Py2.7 |
| -------- | -------- | -------- | -------- |
| Fail | Pass | Pass | Pass |
MWE5:
| Py3.8 | Py3.7 | Py3.6 | Py2.7 |
| -------- | -------- | -------- | -------- |
| Fail | Pass | Pass | Pass |
MWE6:
| Py3.8 | Py3.7 | Py3.6 | Py2.7 |
| -------- | -------- | -------- | -------- |
| Fail | Pass | Pass | Pass |
### MWE:
#### MWE1:
```python=
def GetProteinData():
try:
pass
except Exception as e:
x = x + 1
return []
```
##### Closest Solution1:
No solution. See this [link](https://hackmd.io/@aliahad97/ry3JqUjad#MWE-5) for changing program flow.
##### MWE1 data:
Bytecode for MWE:
```c=
1 0 LOAD_CONST 0 (<code object GetProteinData at 0x400246eb30, file "main.py", line 1>)
2 LOAD_CONST 1 ('GetProteinData')
4 MAKE_FUNCTION 0
6 STORE_NAME 0 (GetProteinData)
8 LOAD_CONST 2 (None)
10 RETURN_VALUE
Disassembly of <code object GetProteinData at 0x400246eb30, file "main.py", line 1>:
2 0 SETUP_FINALLY 4 (to 6)
3 2 POP_BLOCK
4 JUMP_FORWARD 50 (to 56)
4 >> 6 DUP_TOP
8 LOAD_GLOBAL 0 (Exception)
10 COMPARE_OP 10 (exception match)
12 POP_JUMP_IF_FALSE 54
14 POP_TOP
16 STORE_FAST 0 (e)
18 POP_TOP
20 SETUP_FINALLY 20 (to 42)
5 22 LOAD_FAST 1 (x)
24 LOAD_CONST 1 (1)
26 BINARY_ADD
28 STORE_FAST 1 (x)
6 30 BUILD_LIST 0
32 ROT_FOUR
34 POP_BLOCK
36 POP_EXCEPT
38 CALL_FINALLY 2 (to 42)
40 RETURN_VALUE
>> 42 LOAD_CONST 0 (None)
44 STORE_FAST 0 (e)
46 DELETE_FAST 0 (e)
48 END_FINALLY
50 POP_EXCEPT
52 JUMP_FORWARD 2 (to 56)
>> 54 END_FINALLY
>> 56 LOAD_CONST 0 (None)
58 RETURN_VALUE
```
Output uncompyle6:
```python=
def GetProteinData--- This code section failed: ---
L. 2 0 SETUP_FINALLY 6 'to 6'
L. 3 2 POP_BLOCK
4 JUMP_FORWARD 56 'to 56'
6_0 COME_FROM_FINALLY 0 '0'
L. 4 6 DUP_TOP
8 LOAD_GLOBAL Exception
10 COMPARE_OP exception-match
12 POP_JUMP_IF_FALSE 54 'to 54'
14 POP_TOP
16 STORE_FAST 'e'
18 POP_TOP
20 SETUP_FINALLY 42 'to 42'
L. 5 22 LOAD_FAST 'x'
24 LOAD_CONST 1
26 BINARY_ADD
28 STORE_FAST 'x'
L. 6 30 BUILD_LIST_0 0
32 ROT_FOUR
34 POP_BLOCK
36 POP_EXCEPT
38 CALL_FINALLY 42 'to 42'
40 RETURN_VALUE
42_0 COME_FROM 38 '38'
42_1 COME_FROM_FINALLY 20 '20'
42 LOAD_CONST None
44 STORE_FAST 'e'
46 DELETE_FAST 'e'
48 END_FINALLY
50 POP_EXCEPT
52 JUMP_FORWARD 56 'to 56'
54_0 COME_FROM 12 '12'
54 END_FINALLY
56_0 COME_FROM 52 '52'
56_1 COME_FROM 4 '4'
Parse error at or near `POP_BLOCK' instruction at offset 34
```
Output Decompyle3:
```python=
Instruction context:
L. 6 30 BUILD_LIST_0 0
32 ROT_FOUR
-> 34 POP_BLOCK
36 POP_EXCEPT
38 CALL_FINALLY 42 'to 42'
40 RETURN_VALUE
42_0 COME_FROM 38 '38'
42_1 COME_FROM_FINALLY 20 '20'
42 LOAD_CONST None
44 STORE_FAST 'e'
46 DELETE_FAST 'e'
48 END_FINALLY
50 POP_EXCEPT
52 JUMP_FORWARD 56 'to 56'
54_0 COME_FROM 12 '12'
54 END_FINALLY
56_0 COME_FROM 52 '52'
test/main.pyc --
# decompile failed
# file test/main.pyc
# Deparsing stopped due to parse error
```
#### MWE2:
```python=
def GetLigandData():
try:
pass
except Exception as e:
x = x + 1
return []
```
##### Closest Solution2:
No solution. See this [link](https://hackmd.io/@aliahad97/ry3JqUjad#MWE-5) for changing program flow.
##### MWE2 data:
Bytecode for MWE:
```c=
1 0 LOAD_CONST 0 (<code object GetLigandData at 0x40021aeb30, file "main.py", line 1>)
2 LOAD_CONST 1 ('GetLigandData')
4 MAKE_FUNCTION 0
6 STORE_NAME 0 (GetLigandData)
8 LOAD_CONST 2 (None)
10 RETURN_VALUE
Disassembly of <code object GetLigandData at 0x40021aeb30, file "main.py", line 1>:
2 0 SETUP_FINALLY 4 (to 6)
3 2 POP_BLOCK
4 JUMP_FORWARD 50 (to 56)
4 >> 6 DUP_TOP
8 LOAD_GLOBAL 0 (Exception)
10 COMPARE_OP 10 (exception match)
12 POP_JUMP_IF_FALSE 54
14 POP_TOP
16 STORE_FAST 0 (e)
18 POP_TOP
20 SETUP_FINALLY 20 (to 42)
5 22 LOAD_FAST 1 (x)
24 LOAD_CONST 1 (1)
26 BINARY_ADD
28 STORE_FAST 1 (x)
6 30 BUILD_LIST 0
32 ROT_FOUR
34 POP_BLOCK
36 POP_EXCEPT
38 CALL_FINALLY 2 (to 42)
40 RETURN_VALUE
>> 42 LOAD_CONST 0 (None)
44 STORE_FAST 0 (e)
46 DELETE_FAST 0 (e)
48 END_FINALLY
50 POP_EXCEPT
52 JUMP_FORWARD 2 (to 56)
>> 54 END_FINALLY
>> 56 LOAD_CONST 0 (None)
58 RETURN_VALUE
```
Output uncompyle6:
```python=
def GetLigandData--- This code section failed: ---
L. 2 0 SETUP_FINALLY 6 'to 6'
L. 3 2 POP_BLOCK
4 JUMP_FORWARD 56 'to 56'
6_0 COME_FROM_FINALLY 0 '0'
L. 4 6 DUP_TOP
8 LOAD_GLOBAL Exception
10 COMPARE_OP exception-match
12 POP_JUMP_IF_FALSE 54 'to 54'
14 POP_TOP
16 STORE_FAST 'e'
18 POP_TOP
20 SETUP_FINALLY 42 'to 42'
L. 5 22 LOAD_FAST 'x'
24 LOAD_CONST 1
26 BINARY_ADD
28 STORE_FAST 'x'
L. 6 30 BUILD_LIST_0 0
32 ROT_FOUR
34 POP_BLOCK
36 POP_EXCEPT
38 CALL_FINALLY 42 'to 42'
40 RETURN_VALUE
42_0 COME_FROM 38 '38'
42_1 COME_FROM_FINALLY 20 '20'
42 LOAD_CONST None
44 STORE_FAST 'e'
46 DELETE_FAST 'e'
48 END_FINALLY
50 POP_EXCEPT
52 JUMP_FORWARD 56 'to 56'
54_0 COME_FROM 12 '12'
54 END_FINALLY
56_0 COME_FROM 52 '52'
56_1 COME_FROM 4 '4'
Parse error at or near `POP_BLOCK' instruction at offset 34
```
Output Decompyle3:
```python=
Instruction context:
L. 6 30 BUILD_LIST_0 0
32 ROT_FOUR
-> 34 POP_BLOCK
36 POP_EXCEPT
38 CALL_FINALLY 42 'to 42'
40 RETURN_VALUE
42_0 COME_FROM 38 '38'
42_1 COME_FROM_FINALLY 20 '20'
42 LOAD_CONST None
44 STORE_FAST 'e'
46 DELETE_FAST 'e'
48 END_FINALLY
50 POP_EXCEPT
52 JUMP_FORWARD 56 'to 56'
54_0 COME_FROM 12 '12'
54 END_FINALLY
56_0 COME_FROM 52 '52'
test/main.pyc --
# decompile failed
# file test/main.pyc
# Deparsing stopped due to parse error
```
#### MWE3:
```python=
def GetLigands_LID2SDF():
for lid in lids:
try:
pass
except Exception as e:
continue
```
##### Closest Solution3:
No solution. See this [link](https://hackmd.io/@aliahad97/ry3JqUjad#MWE-2) for changing program flow.
##### MWE3 data:
Bytecode for MWE:
```c=
1 0 LOAD_CONST 0 (<code object GetLigands_LID2SDF at 0x400246eb30, file "main.py", line 1>)
2 LOAD_CONST 1 ('GetLigands_LID2SDF')
4 MAKE_FUNCTION 0
6 STORE_NAME 0 (GetLigands_LID2SDF)
8 LOAD_CONST 2 (None)
10 RETURN_VALUE
Disassembly of <code object GetLigands_LID2SDF at 0x400246eb30, file "main.py", line 1>:
2 0 LOAD_GLOBAL 0 (lids)
2 GET_ITER
>> 4 FOR_ITER 52 (to 58)
6 STORE_FAST 0 (lid)
3 8 SETUP_FINALLY 4 (to 14)
4 10 POP_BLOCK
12 JUMP_ABSOLUTE 4
5 >> 14 DUP_TOP
16 LOAD_GLOBAL 1 (Exception)
18 COMPARE_OP 10 (exception match)
20 POP_JUMP_IF_FALSE 54
22 POP_TOP
24 STORE_FAST 1 (e)
26 POP_TOP
28 SETUP_FINALLY 12 (to 42)
6 30 POP_BLOCK
32 POP_EXCEPT
34 CALL_FINALLY 6 (to 42)
36 JUMP_ABSOLUTE 4
38 POP_BLOCK
40 BEGIN_FINALLY
>> 42 LOAD_CONST 0 (None)
44 STORE_FAST 1 (e)
46 DELETE_FAST 1 (e)
48 END_FINALLY
50 POP_EXCEPT
52 JUMP_ABSOLUTE 4
>> 54 END_FINALLY
56 JUMP_ABSOLUTE 4
>> 58 LOAD_CONST 0 (None)
60 RETURN_VALUE
```
Output uncompyle6:
```python=
def GetLigands_LID2SDF--- This code section failed: ---
L. 2 0 LOAD_GLOBAL lids
2 GET_ITER
4 FOR_ITER 58 'to 58'
6 STORE_FAST 'lid'
L. 3 8 SETUP_FINALLY 14 'to 14'
L. 4 10 POP_BLOCK
12 JUMP_BACK 4 'to 4'
14_0 COME_FROM_FINALLY 8 '8'
L. 5 14 DUP_TOP
16 LOAD_GLOBAL Exception
18 COMPARE_OP exception-match
20 POP_JUMP_IF_FALSE 54 'to 54'
22 POP_TOP
24 STORE_FAST 'e'
26 POP_TOP
28 SETUP_FINALLY 42 'to 42'
L. 6 30 POP_BLOCK
32 POP_EXCEPT
34 CALL_FINALLY 42 'to 42'
36 JUMP_BACK 4 'to 4'
38 POP_BLOCK
40 BEGIN_FINALLY
42_0 COME_FROM 34 '34'
42_1 COME_FROM_FINALLY 28 '28'
42 LOAD_CONST None
44 STORE_FAST 'e'
46 DELETE_FAST 'e'
48 END_FINALLY
50 POP_EXCEPT
52 JUMP_BACK 4 'to 4'
54_0 COME_FROM 20 '20'
54 END_FINALLY
56 JUMP_BACK 4 'to 4'
Parse error at or near `CALL_FINALLY' instruction at offset 34
```
Output Decompyle3:
```python=
Instruction context:
L. 6 30 POP_BLOCK
32 POP_EXCEPT
34 CALL_FINALLY 42 'to 42'
-> 36 JUMP_BACK 4 'to 4'
38 POP_BLOCK
40 BEGIN_FINALLY
42_0 COME_FROM 34 '34'
42_1 COME_FROM_FINALLY 28 '28'
42 LOAD_CONST None
44 STORE_FAST 'e'
46 DELETE_FAST 'e'
48 END_FINALLY
50 POP_EXCEPT
52 JUMP_BACK 4 'to 4'
54_0 COME_FROM 20 '20'
54 END_FINALLY
56 JUMP_BACK 4 'to 4'
test/main.pyc --
# decompile failed
# file test/main.pyc
# Deparsing stopped due to parse error
```
#### MWE4:
```python=
def LigandIsDruglike():
try:
if a:
return False
except Exception as e:
return False
return True
```
##### Closest Solution4:
No solution. See [this](https://hackmd.io/@aliahad97/ry3JqUjad#MWE-5) for changing program flows.
##### MWE4 data:
Bytecode for MWE:
```c=
1 0 LOAD_CONST 0 (<code object LigandIsDruglike at 0x400246ebe0, file "main.py", line 1>)
2 LOAD_CONST 1 ('LigandIsDruglike')
4 MAKE_FUNCTION 0
6 STORE_NAME 0 (LigandIsDruglike)
8 LOAD_CONST 2 (None)
10 RETURN_VALUE
Disassembly of <code object LigandIsDruglike at 0x400246ebe0, file "main.py", line 1>:
2 0 SETUP_FINALLY 14 (to 16)
3 2 LOAD_GLOBAL 0 (a)
4 POP_JUMP_IF_FALSE 12
4 6 POP_BLOCK
8 LOAD_CONST 1 (False)
10 RETURN_VALUE
>> 12 POP_BLOCK
14 JUMP_FORWARD 40 (to 56)
5 >> 16 DUP_TOP
18 LOAD_GLOBAL 1 (Exception)
20 COMPARE_OP 10 (exception match)
22 POP_JUMP_IF_FALSE 54
24 POP_TOP
26 STORE_FAST 0 (e)
28 POP_TOP
30 SETUP_FINALLY 10 (to 42)
6 32 POP_BLOCK
34 POP_EXCEPT
36 CALL_FINALLY 4 (to 42)
38 LOAD_CONST 1 (False)
40 RETURN_VALUE
>> 42 LOAD_CONST 0 (None)
44 STORE_FAST 0 (e)
46 DELETE_FAST 0 (e)
48 END_FINALLY
50 POP_EXCEPT
52 JUMP_FORWARD 2 (to 56)
>> 54 END_FINALLY
7 >> 56 LOAD_CONST 2 (True)
58 RETURN_VALUE
```
Output uncompyle6:
```python=
def LigandIsDruglike--- This code section failed: ---
L. 2 0 SETUP_FINALLY 16 'to 16'
L. 3 2 LOAD_GLOBAL a
4 POP_JUMP_IF_FALSE 12 'to 12'
L. 4 6 POP_BLOCK
8 LOAD_CONST False
10 RETURN_VALUE
12_0 COME_FROM 4 '4'
12 POP_BLOCK
14 JUMP_FORWARD 56 'to 56'
16_0 COME_FROM_FINALLY 0 '0'
L. 5 16 DUP_TOP
18 LOAD_GLOBAL Exception
20 COMPARE_OP exception-match
22 POP_JUMP_IF_FALSE 54 'to 54'
24 POP_TOP
26 STORE_FAST 'e'
28 POP_TOP
30 SETUP_FINALLY 42 'to 42'
L. 6 32 POP_BLOCK
34 POP_EXCEPT
36 CALL_FINALLY 42 'to 42'
38 LOAD_CONST False
40 RETURN_VALUE
42_0 COME_FROM 36 '36'
42_1 COME_FROM_FINALLY 30 '30'
42 LOAD_CONST None
44 STORE_FAST 'e'
46 DELETE_FAST 'e'
48 END_FINALLY
50 POP_EXCEPT
52 JUMP_FORWARD 56 'to 56'
54_0 COME_FROM 22 '22'
54 END_FINALLY
56_0 COME_FROM 52 '52'
56_1 COME_FROM 14 '14'
L. 7 56 LOAD_CONST True
58 RETURN_VALUE
-1 RETURN_LAST
Parse error at or near `LOAD_CONST' instruction at offset 8
```
Output Decompyle3:
```python=
Instruction context:
L. 4 6 POP_BLOCK
-> 8 LOAD_CONST False
10 RETURN_VALUE
12_0 COME_FROM 4 '4'
12 POP_BLOCK
14 JUMP_FORWARD 56 'to 56'
16_0 COME_FROM_FINALLY 0 '0'
test/main.pyc --
# decompile failed
# file test/main.pyc
# Deparsing stopped due to parse error
```
#### MWE5:
```python=
def AllPIDs():
try:
pass
except Exception as e:
x = x + 1
return []
```
##### Closest Solution5:
No solution. See this [link](https://hackmd.io/@aliahad97/ry3JqUjad#MWE-5) for changing program flow.
##### MWE5 data:
Bytecode for MWE:
```c=
1 0 LOAD_CONST 0 (<code object AllPIDs at 0x400246eb30, file "main.py", line 1>)
2 LOAD_CONST 1 ('AllPIDs')
4 MAKE_FUNCTION 0
6 STORE_NAME 0 (AllPIDs)
8 LOAD_CONST 2 (None)
10 RETURN_VALUE
Disassembly of <code object AllPIDs at 0x400246eb30, file "main.py", line 1>:
2 0 SETUP_FINALLY 4 (to 6)
3 2 POP_BLOCK
4 JUMP_FORWARD 50 (to 56)
4 >> 6 DUP_TOP
8 LOAD_GLOBAL 0 (Exception)
10 COMPARE_OP 10 (exception match)
12 POP_JUMP_IF_FALSE 54
14 POP_TOP
16 STORE_FAST 0 (e)
18 POP_TOP
20 SETUP_FINALLY 20 (to 42)
5 22 LOAD_FAST 1 (x)
24 LOAD_CONST 1 (1)
26 BINARY_ADD
28 STORE_FAST 1 (x)
6 30 BUILD_LIST 0
32 ROT_FOUR
34 POP_BLOCK
36 POP_EXCEPT
38 CALL_FINALLY 2 (to 42)
40 RETURN_VALUE
>> 42 LOAD_CONST 0 (None)
44 STORE_FAST 0 (e)
46 DELETE_FAST 0 (e)
48 END_FINALLY
50 POP_EXCEPT
52 JUMP_FORWARD 2 (to 56)
>> 54 END_FINALLY
>> 56 LOAD_CONST 0 (None)
58 RETURN_VALUE
```
Output uncompyle6:
```python=
def AllPIDs--- This code section failed: ---
L. 2 0 SETUP_FINALLY 6 'to 6'
L. 3 2 POP_BLOCK
4 JUMP_FORWARD 56 'to 56'
6_0 COME_FROM_FINALLY 0 '0'
L. 4 6 DUP_TOP
8 LOAD_GLOBAL Exception
10 COMPARE_OP exception-match
12 POP_JUMP_IF_FALSE 54 'to 54'
14 POP_TOP
16 STORE_FAST 'e'
18 POP_TOP
20 SETUP_FINALLY 42 'to 42'
L. 5 22 LOAD_FAST 'x'
24 LOAD_CONST 1
26 BINARY_ADD
28 STORE_FAST 'x'
L. 6 30 BUILD_LIST_0 0
32 ROT_FOUR
34 POP_BLOCK
36 POP_EXCEPT
38 CALL_FINALLY 42 'to 42'
40 RETURN_VALUE
42_0 COME_FROM 38 '38'
42_1 COME_FROM_FINALLY 20 '20'
42 LOAD_CONST None
44 STORE_FAST 'e'
46 DELETE_FAST 'e'
48 END_FINALLY
50 POP_EXCEPT
52 JUMP_FORWARD 56 'to 56'
54_0 COME_FROM 12 '12'
54 END_FINALLY
56_0 COME_FROM 52 '52'
56_1 COME_FROM 4 '4'
Parse error at or near `POP_BLOCK' instruction at offset 34
```
Output Decompyle3:
```python=
Instruction context:
L. 6 30 BUILD_LIST_0 0
32 ROT_FOUR
-> 34 POP_BLOCK
36 POP_EXCEPT
38 CALL_FINALLY 42 'to 42'
40 RETURN_VALUE
42_0 COME_FROM 38 '38'
42_1 COME_FROM_FINALLY 20 '20'
42 LOAD_CONST None
44 STORE_FAST 'e'
46 DELETE_FAST 'e'
48 END_FINALLY
50 POP_EXCEPT
52 JUMP_FORWARD 56 'to 56'
54_0 COME_FROM 12 '12'
54 END_FINALLY
56_0 COME_FROM 52 '52'
test/main.pyc --
# decompile failed
# file test/main.pyc
# Deparsing stopped due to parse error
```
#### MWE6:
```python=
def SearchByKeywords():
try:
pass
except Exception as e:
x = x + 1
return []
```
##### Closest Solution6:
No solution. See [this](https://hackmd.io/@aliahad97/ry3JqUjad#MWE-5) for changing program flows.
##### MWE6 data:
Bytecode for MWE:
```c=
1 0 LOAD_CONST 0 (<code object SearchByKeywords at 0x400246eb30, file "main.py", line 1>)
2 LOAD_CONST 1 ('SearchByKeywords')
4 MAKE_FUNCTION 0
6 STORE_NAME 0 (SearchByKeywords)
8 LOAD_CONST 2 (None)
10 RETURN_VALUE
Disassembly of <code object SearchByKeywords at 0x400246eb30, file "main.py", line 1>:
2 0 SETUP_FINALLY 4 (to 6)
3 2 POP_BLOCK
4 JUMP_FORWARD 50 (to 56)
4 >> 6 DUP_TOP
8 LOAD_GLOBAL 0 (Exception)
10 COMPARE_OP 10 (exception match)
12 POP_JUMP_IF_FALSE 54
14 POP_TOP
16 STORE_FAST 0 (e)
18 POP_TOP
20 SETUP_FINALLY 20 (to 42)
5 22 LOAD_FAST 1 (x)
24 LOAD_CONST 1 (1)
26 BINARY_ADD
28 STORE_FAST 1 (x)
6 30 BUILD_LIST 0
32 ROT_FOUR
34 POP_BLOCK
36 POP_EXCEPT
38 CALL_FINALLY 2 (to 42)
40 RETURN_VALUE
>> 42 LOAD_CONST 0 (None)
44 STORE_FAST 0 (e)
46 DELETE_FAST 0 (e)
48 END_FINALLY
50 POP_EXCEPT
52 JUMP_FORWARD 2 (to 56)
>> 54 END_FINALLY
>> 56 LOAD_CONST 0 (None)
58 RETURN_VALUE
```
Output uncompyle6:
```python=
def SearchByKeywords--- This code section failed: ---
L. 2 0 SETUP_FINALLY 6 'to 6'
L. 3 2 POP_BLOCK
4 JUMP_FORWARD 56 'to 56'
6_0 COME_FROM_FINALLY 0 '0'
L. 4 6 DUP_TOP
8 LOAD_GLOBAL Exception
10 COMPARE_OP exception-match
12 POP_JUMP_IF_FALSE 54 'to 54'
14 POP_TOP
16 STORE_FAST 'e'
18 POP_TOP
20 SETUP_FINALLY 42 'to 42'
L. 5 22 LOAD_FAST 'x'
24 LOAD_CONST 1
26 BINARY_ADD
28 STORE_FAST 'x'
L. 6 30 BUILD_LIST_0 0
32 ROT_FOUR
34 POP_BLOCK
36 POP_EXCEPT
38 CALL_FINALLY 42 'to 42'
40 RETURN_VALUE
42_0 COME_FROM 38 '38'
42_1 COME_FROM_FINALLY 20 '20'
42 LOAD_CONST None
44 STORE_FAST 'e'
46 DELETE_FAST 'e'
48 END_FINALLY
50 POP_EXCEPT
52 JUMP_FORWARD 56 'to 56'
54_0 COME_FROM 12 '12'
54 END_FINALLY
56_0 COME_FROM 52 '52'
56_1 COME_FROM 4 '4'
Parse error at or near `POP_BLOCK' instruction at offset 34
```
Output Decompyle3:
```python=
Instruction context:
L. 6 30 BUILD_LIST_0 0
32 ROT_FOUR
-> 34 POP_BLOCK
36 POP_EXCEPT
38 CALL_FINALLY 42 'to 42'
40 RETURN_VALUE
42_0 COME_FROM 38 '38'
42_1 COME_FROM_FINALLY 20 '20'
42 LOAD_CONST None
44 STORE_FAST 'e'
46 DELETE_FAST 'e'
48 END_FINALLY
50 POP_EXCEPT
52 JUMP_FORWARD 56 'to 56'
54_0 COME_FROM 12 '12'
54 END_FINALLY
56_0 COME_FROM 52 '52'
test/main.pyc --
# decompile failed
# file test/main.pyc
# Deparsing stopped due to parse error
```
## Error 1/32
Source: [link](https://github.com/jeremyjyang/BioClients/blob/a054185b3072537abefa924b570f6025b87246c2/BioClients/pubchem/ftp/pubchem_ftp_compound_assaystats.py)
Python version: 3.8
Decompyle3: Failed
Uncompyle6: Failed
Error: `Deparsing stopped due to parse error`
| Py3.8 | Py3.7 | Py3.6 | Py2.7 |
| -------- | -------- | -------- | -------- |
| Fail | Pass | Pass | Pass |
### MWE:
```python=
def main():
for fname_csv_gz in os.listdir(csvdir):
try:
pass
except:
continue
```
#### Closest Solution:
No solution. See this [link](https://hackmd.io/@aliahad97/ry3JqUjad#MWE-2).
#### MWE data:
Bytecode for MWE:
```c=
1 0 LOAD_CONST 0 (<code object main at 0x40021eeb30, file "main.py", line 1>)
2 LOAD_CONST 1 ('main')
4 MAKE_FUNCTION 0
6 STORE_NAME 0 (main)
8 LOAD_CONST 2 (None)
10 RETURN_VALUE
Disassembly of <code object main at 0x40021eeb30, file "main.py", line 1>:
2 0 LOAD_GLOBAL 0 (os)
2 LOAD_METHOD 1 (listdir)
4 LOAD_GLOBAL 2 (csvdir)
6 CALL_METHOD 1
8 GET_ITER
>> 10 FOR_ITER 26 (to 38)
12 STORE_FAST 0 (fname_csv_gz)
3 14 SETUP_FINALLY 4 (to 20)
4 16 POP_BLOCK
18 JUMP_ABSOLUTE 10
5 >> 20 POP_TOP
22 POP_TOP
24 POP_TOP
6 26 POP_EXCEPT
28 JUMP_ABSOLUTE 10
30 POP_EXCEPT
32 JUMP_ABSOLUTE 10
34 END_FINALLY
36 JUMP_ABSOLUTE 10
>> 38 LOAD_CONST 0 (None)
40 RETURN_VALUE
```
Output uncompyle6:
```python=
def main--- This code section failed: ---
L. 2 0 LOAD_GLOBAL os
2 LOAD_METHOD listdir
4 LOAD_GLOBAL csvdir
6 CALL_METHOD_1 1 ''
8 GET_ITER
10 FOR_ITER 38 'to 38'
12 STORE_FAST 'fname_csv_gz'
L. 3 14 SETUP_FINALLY 20 'to 20'
L. 4 16 POP_BLOCK
18 JUMP_BACK 10 'to 10'
20_0 COME_FROM_FINALLY 14 '14'
L. 5 20 POP_TOP
22 POP_TOP
24 POP_TOP
L. 6 26 POP_EXCEPT
28 JUMP_BACK 10 'to 10'
30 POP_EXCEPT
32 JUMP_BACK 10 'to 10'
34 END_FINALLY
36 JUMP_BACK 10 'to 10'
Parse error at or near `POP_EXCEPT' instruction at offset 30
```
Output Decompyle3:
```python=
Instruction context:
L. 6 26 POP_EXCEPT
-> 28 JUMP_BACK 10 'to 10'
30 POP_EXCEPT
32 JUMP_BACK 10 'to 10'
34 END_FINALLY
36 JUMP_BACK 10 'to 10'
test/main.pyc --
# decompile failed
# file test/main.pyc
# Deparsing stopped due to parse error
```
## Error 1/33
Source: [link](https://github.com/jeremyjyang/BioClients/blob/a054185b3072537abefa924b570f6025b87246c2/BioClients/pubchem/ftp/Utils.py#L90)
Python version: 3.8
Decompyle3: Failed
Uncompyle6: Failed
Error: `Deparsing stopped due to parse error`
| Py3.8 | Py3.7 | Py3.6 | Py2.7 |
| -------- | -------- | -------- | -------- |
| Fail | Pass | Pass | Pass |
### MWE:
```python=
def ExtractOutcomes():
for line in lines:
try:
if not sid: continue
except:
pass
```
#### Closest Solution:
No solution. See this [link](https://hackmd.io/@aliahad97/ry3JqUjad#MWE-2)
#### MWE data:
Bytecode for MWE:
```c=
1 0 LOAD_CONST 0 (<code object ExtractOutcomes at 0x400246eb30, file "main.py", line 1>)
2 LOAD_CONST 1 ('ExtractOutcomes')
4 MAKE_FUNCTION 0
6 STORE_NAME 0 (ExtractOutcomes)
8 LOAD_CONST 2 (None)
10 RETURN_VALUE
Disassembly of <code object ExtractOutcomes at 0x400246eb30, file "main.py", line 1>:
2 0 LOAD_GLOBAL 0 (lines)
2 GET_ITER
>> 4 FOR_ITER 30 (to 36)
6 STORE_FAST 0 (line)
3 8 SETUP_FINALLY 12 (to 22)
4 10 LOAD_GLOBAL 1 (sid)
12 POP_JUMP_IF_TRUE 18
14 POP_BLOCK
16 JUMP_ABSOLUTE 4
>> 18 POP_BLOCK
20 JUMP_ABSOLUTE 4
5 >> 22 POP_TOP
24 POP_TOP
26 POP_TOP
6 28 POP_EXCEPT
30 JUMP_ABSOLUTE 4
32 END_FINALLY
34 JUMP_ABSOLUTE 4
>> 36 LOAD_CONST 0 (None)
38 RETURN_VALUE
```
Output uncompyle6:
```python=
def ExtractOutcomes--- This code section failed: ---
L. 2 0 LOAD_GLOBAL lines
2 GET_ITER
4 FOR_ITER 36 'to 36'
6 STORE_FAST 'line'
L. 3 8 SETUP_FINALLY 22 'to 22'
L. 4 10 LOAD_GLOBAL sid
12 POP_JUMP_IF_TRUE 18 'to 18'
L. 4 14 POP_BLOCK
16 JUMP_BACK 4 'to 4'
18_0 COME_FROM 12 '12'
18 POP_BLOCK
20 JUMP_BACK 4 'to 4'
22_0 COME_FROM_FINALLY 8 '8'
L. 5 22 POP_TOP
24 POP_TOP
26 POP_TOP
L. 6 28 POP_EXCEPT
30 JUMP_BACK 4 'to 4'
32 END_FINALLY
34 JUMP_BACK 4 'to 4'
Parse error at or near `JUMP_BACK' instruction at offset 16
```
Output Decompyle3:
```python=
Instruction context:
L. 4 14 POP_BLOCK
-> 16 JUMP_BACK 4 'to 4'
18_0 COME_FROM 12 '12'
18 POP_BLOCK
20 JUMP_BACK 4 'to 4'
22_0 COME_FROM_FINALLY 8 '8'
test/main.pyc --
# decompile failed
# file test/main.pyc
# Deparsing stopped due to parse error
```
## Error 1/34
Source: [link](https://pypi.org/project/BioClients/0.0.4/#files)
Python version: 3.8
Decompyle3: Pass
Uncompyle6: Failed
Error: `Deparsing stopped due to parse error`
| Py3.8 | Py3.7 | Py3.6 | Py2.7 |
| -------- | -------- | -------- | -------- |
| Fail | Pass | Pass | Pass |
### MWE:
```python=
def ListCompounds():
try:
pass
except Exception as e:
return
```
#### Closest Solution:
No solution. Check this [link](https://hackmd.io/@aliahad97/ry3JqUjad#MWE6)
#### MWE data:
Bytecode for MWE:
```c=
1 0 LOAD_CONST 0 (<code object ListCompounds at 0x40021aeb30, file "main.py", line 1>)
2 LOAD_CONST 1 ('ListCompounds')
4 MAKE_FUNCTION 0
6 STORE_NAME 0 (ListCompounds)
8 LOAD_CONST 2 (None)
10 RETURN_VALUE
Disassembly of <code object ListCompounds at 0x40021aeb30, file "main.py", line 1>:
2 0 SETUP_FINALLY 4 (to 6)
3 2 POP_BLOCK
4 JUMP_FORWARD 40 (to 46)
4 >> 6 DUP_TOP
8 LOAD_GLOBAL 0 (Exception)
10 COMPARE_OP 10 (exception match)
12 POP_JUMP_IF_FALSE 44
14 POP_TOP
16 STORE_FAST 0 (e)
18 POP_TOP
20 SETUP_FINALLY 10 (to 32)
5 22 POP_BLOCK
24 POP_EXCEPT
26 CALL_FINALLY 4 (to 32)
28 LOAD_CONST 0 (None)
30 RETURN_VALUE
>> 32 LOAD_CONST 0 (None)
34 STORE_FAST 0 (e)
36 DELETE_FAST 0 (e)
38 END_FINALLY
40 POP_EXCEPT
42 JUMP_FORWARD 2 (to 46)
>> 44 END_FINALLY
>> 46 LOAD_CONST 0 (None)
48 RETURN_VALUE
```
Output uncompyle6:
```python=
def ListCompounds--- This code section failed: ---
L. 2 0 SETUP_FINALLY 6 'to 6'
L. 3 2 POP_BLOCK
4 JUMP_FORWARD 46 'to 46'
6_0 COME_FROM_FINALLY 0 '0'
L. 4 6 DUP_TOP
8 LOAD_GLOBAL Exception
10 COMPARE_OP exception-match
12 POP_JUMP_IF_FALSE 44 'to 44'
14 POP_TOP
16 STORE_FAST 'e'
18 POP_TOP
20 SETUP_FINALLY 32 'to 32'
L. 5 22 POP_BLOCK
24 POP_EXCEPT
26 CALL_FINALLY 32 'to 32'
28 LOAD_CONST None
30 RETURN_VALUE
32_0 COME_FROM 26 '26'
32_1 COME_FROM_FINALLY 20 '20'
32 LOAD_CONST None
34 STORE_FAST 'e'
36 DELETE_FAST 'e'
38 END_FINALLY
40 POP_EXCEPT
42 JUMP_FORWARD 46 'to 46'
44_0 COME_FROM 12 '12'
44 END_FINALLY
46_0 COME_FROM 42 '42'
46_1 COME_FROM 4 '4'
Parse error at or near `CALL_FINALLY' instruction at offset 26
```
Output Decompyle3:
```python=
def ListCompounds():
try:
pass
except Exception as e:
try:
return
finally:
e = None
del e
```
## Error 1/35
Source: [link](https://pypi.org/project/BioClients/0.0.4/#files)
Python version: 3.8
Decompyle3: Failed
Uncompyle6: Failed
Error: `Deparsing stopped due to parse error`
MWE1:
| Py3.8 | Py3.7 | Py3.6 | Py2.7 |
| -------- | -------- | -------- | -------- |
| Fail | Fail | Pass-Incorrect | Pass |
MWE2:
| Py3.8 | Py3.7 | Py3.6 | Py2.7 |
| -------- | -------- | -------- | -------- |
| Pass | Fail | Pass | Pass |
### MWE:
#### MWE1:
```python=
def GetTargetDiseases():
for id_this in ids:
if conda and condb: continue
while True:
a.b()
a.b()
a.b()
a.b()
a.b()
a.b()
a.b()
a.b()
a.b()
a.b()
a.b()
a.b()
a.b()
a.b()
a.b()
a.b()
a.b()
a.b()
a.b()
a.b()
a.b()
a.b()
a.b()
a.b()
a.b()
a.b()
a.b()
a.b()
if cond1 and cond2: break
x()
```
> Note: Removing one function in the middle decompiles to incorrect solution.
##### Closest Solution1:
No solution. Changes control flow as shown [here](https://hackmd.io/@aliahad97/ry3JqUjad#MWE7)
##### MWE1 data:
Bytecode for MWE:
```c=
1 0 LOAD_CONST 0 (<code object GetTargetDiseases at 0x40021ae9d0, file "main.py", line 1>)
2 LOAD_CONST 1 ('GetTargetDiseases')
4 MAKE_FUNCTION 0
6 STORE_NAME 0 (GetTargetDiseases)
8 LOAD_CONST 2 (None)
10 RETURN_VALUE
Disassembly of <code object GetTargetDiseases at 0x40021ae9d0, file "main.py", line 1>:
2 0 LOAD_GLOBAL 0 (ids)
2 GET_ITER
>> 4 EXTENDED_ARG 0
6 FOR_ITER 254 (to 262)
8 STORE_FAST 0 (id_this)
3 10 LOAD_GLOBAL 1 (conda)
12 POP_JUMP_IF_FALSE 20
14 LOAD_GLOBAL 2 (condb)
16 POP_JUMP_IF_FALSE 20
18 JUMP_ABSOLUTE 4
5 >> 20 LOAD_GLOBAL 3 (a)
22 LOAD_METHOD 4 (b)
24 CALL_METHOD 0
26 POP_TOP
6 28 LOAD_GLOBAL 3 (a)
30 LOAD_METHOD 4 (b)
32 CALL_METHOD 0
34 POP_TOP
7 36 LOAD_GLOBAL 3 (a)
38 LOAD_METHOD 4 (b)
40 CALL_METHOD 0
42 POP_TOP
8 44 LOAD_GLOBAL 3 (a)
46 LOAD_METHOD 4 (b)
48 CALL_METHOD 0
50 POP_TOP
9 52 LOAD_GLOBAL 3 (a)
54 LOAD_METHOD 4 (b)
56 CALL_METHOD 0
58 POP_TOP
10 60 LOAD_GLOBAL 3 (a)
62 LOAD_METHOD 4 (b)
64 CALL_METHOD 0
66 POP_TOP
11 68 LOAD_GLOBAL 3 (a)
70 LOAD_METHOD 4 (b)
72 CALL_METHOD 0
74 POP_TOP
12 76 LOAD_GLOBAL 3 (a)
78 LOAD_METHOD 4 (b)
80 CALL_METHOD 0
82 POP_TOP
13 84 LOAD_GLOBAL 3 (a)
86 LOAD_METHOD 4 (b)
88 CALL_METHOD 0
90 POP_TOP
14 92 LOAD_GLOBAL 3 (a)
94 LOAD_METHOD 4 (b)
96 CALL_METHOD 0
98 POP_TOP
15 100 LOAD_GLOBAL 3 (a)
102 LOAD_METHOD 4 (b)
104 CALL_METHOD 0
106 POP_TOP
16 108 LOAD_GLOBAL 3 (a)
110 LOAD_METHOD 4 (b)
112 CALL_METHOD 0
114 POP_TOP
17 116 LOAD_GLOBAL 3 (a)
118 LOAD_METHOD 4 (b)
120 CALL_METHOD 0
122 POP_TOP
18 124 LOAD_GLOBAL 3 (a)
126 LOAD_METHOD 4 (b)
128 CALL_METHOD 0
130 POP_TOP
19 132 LOAD_GLOBAL 3 (a)
134 LOAD_METHOD 4 (b)
136 CALL_METHOD 0
138 POP_TOP
20 140 LOAD_GLOBAL 3 (a)
142 LOAD_METHOD 4 (b)
144 CALL_METHOD 0
146 POP_TOP
21 148 LOAD_GLOBAL 3 (a)
150 LOAD_METHOD 4 (b)
152 CALL_METHOD 0
154 POP_TOP
22 156 LOAD_GLOBAL 3 (a)
158 LOAD_METHOD 4 (b)
160 CALL_METHOD 0
162 POP_TOP
23 164 LOAD_GLOBAL 3 (a)
166 LOAD_METHOD 4 (b)
168 CALL_METHOD 0
170 POP_TOP
24 172 LOAD_GLOBAL 3 (a)
174 LOAD_METHOD 4 (b)
176 CALL_METHOD 0
178 POP_TOP
25 180 LOAD_GLOBAL 3 (a)
182 LOAD_METHOD 4 (b)
184 CALL_METHOD 0
186 POP_TOP
26 188 LOAD_GLOBAL 3 (a)
190 LOAD_METHOD 4 (b)
192 CALL_METHOD 0
194 POP_TOP
27 196 LOAD_GLOBAL 3 (a)
198 LOAD_METHOD 4 (b)
200 CALL_METHOD 0
202 POP_TOP
28 204 LOAD_GLOBAL 3 (a)
206 LOAD_METHOD 4 (b)
208 CALL_METHOD 0
210 POP_TOP
29 212 LOAD_GLOBAL 3 (a)
214 LOAD_METHOD 4 (b)
216 CALL_METHOD 0
218 POP_TOP
30 220 LOAD_GLOBAL 3 (a)
222 LOAD_METHOD 4 (b)
224 CALL_METHOD 0
226 POP_TOP
31 228 LOAD_GLOBAL 3 (a)
230 LOAD_METHOD 4 (b)
232 CALL_METHOD 0
234 POP_TOP
32 236 LOAD_GLOBAL 3 (a)
238 LOAD_METHOD 4 (b)
240 CALL_METHOD 0
242 POP_TOP
244 JUMP_ABSOLUTE 20
33 246 LOAD_GLOBAL 5 (cond1)
248 POP_JUMP_IF_FALSE 4
250 LOAD_GLOBAL 6 (cond2)
252 POP_JUMP_IF_FALSE 4
254 POP_TOP
256 EXTENDED_ARG 1
258 JUMP_ABSOLUTE 262
260 JUMP_ABSOLUTE 4
34 >> 262 LOAD_GLOBAL 7 (x)
264 CALL_FUNCTION 0
266 POP_TOP
268 LOAD_CONST 0 (None)
270 RETURN_VALUE
```
Output uncompyle6:
```python=
def GetTargetDiseases--- This code section failed: ---
L. 2 0 LOAD_GLOBAL ids
2 GET_ITER
4_0 COME_FROM 252 '252'
4_1 COME_FROM 248 '248'
4_6 FOR_ITER 262 'to 262'
8 STORE_FAST 'id_this'
L. 3 10 LOAD_GLOBAL conda
12 POP_JUMP_IF_FALSE 20 'to 20'
14 LOAD_GLOBAL condb
16 POP_JUMP_IF_FALSE 20 'to 20'
L. 3 18 JUMP_BACK 4 'to 4'
20_0 COME_FROM 16 '16'
20_1 COME_FROM 12 '12'
L. 5 20 LOAD_GLOBAL a
22 LOAD_METHOD b
24 CALL_METHOD_0 0 ''
26 POP_TOP
L. 6 28 LOAD_GLOBAL a
30 LOAD_METHOD b
32 CALL_METHOD_0 0 ''
34 POP_TOP
L. 7 36 LOAD_GLOBAL a
38 LOAD_METHOD b
40 CALL_METHOD_0 0 ''
42 POP_TOP
L. 8 44 LOAD_GLOBAL a
46 LOAD_METHOD b
48 CALL_METHOD_0 0 ''
50 POP_TOP
L. 9 52 LOAD_GLOBAL a
54 LOAD_METHOD b
56 CALL_METHOD_0 0 ''
58 POP_TOP
L. 10 60 LOAD_GLOBAL a
62 LOAD_METHOD b
64 CALL_METHOD_0 0 ''
66 POP_TOP
L. 11 68 LOAD_GLOBAL a
70 LOAD_METHOD b
72 CALL_METHOD_0 0 ''
74 POP_TOP
L. 12 76 LOAD_GLOBAL a
78 LOAD_METHOD b
80 CALL_METHOD_0 0 ''
82 POP_TOP
L. 13 84 LOAD_GLOBAL a
86 LOAD_METHOD b
88 CALL_METHOD_0 0 ''
90 POP_TOP
L. 14 92 LOAD_GLOBAL a
94 LOAD_METHOD b
96 CALL_METHOD_0 0 ''
98 POP_TOP
L. 15 100 LOAD_GLOBAL a
102 LOAD_METHOD b
104 CALL_METHOD_0 0 ''
106 POP_TOP
L. 16 108 LOAD_GLOBAL a
110 LOAD_METHOD b
112 CALL_METHOD_0 0 ''
114 POP_TOP
L. 17 116 LOAD_GLOBAL a
118 LOAD_METHOD b
120 CALL_METHOD_0 0 ''
122 POP_TOP
L. 18 124 LOAD_GLOBAL a
126 LOAD_METHOD b
128 CALL_METHOD_0 0 ''
130 POP_TOP
L. 19 132 LOAD_GLOBAL a
134 LOAD_METHOD b
136 CALL_METHOD_0 0 ''
138 POP_TOP
L. 20 140 LOAD_GLOBAL a
142 LOAD_METHOD b
144 CALL_METHOD_0 0 ''
146 POP_TOP
L. 21 148 LOAD_GLOBAL a
150 LOAD_METHOD b
152 CALL_METHOD_0 0 ''
154 POP_TOP
L. 22 156 LOAD_GLOBAL a
158 LOAD_METHOD b
160 CALL_METHOD_0 0 ''
162 POP_TOP
L. 23 164 LOAD_GLOBAL a
166 LOAD_METHOD b
168 CALL_METHOD_0 0 ''
170 POP_TOP
L. 24 172 LOAD_GLOBAL a
174 LOAD_METHOD b
176 CALL_METHOD_0 0 ''
178 POP_TOP
L. 25 180 LOAD_GLOBAL a
182 LOAD_METHOD b
184 CALL_METHOD_0 0 ''
186 POP_TOP
L. 26 188 LOAD_GLOBAL a
190 LOAD_METHOD b
192 CALL_METHOD_0 0 ''
194 POP_TOP
L. 27 196 LOAD_GLOBAL a
198 LOAD_METHOD b
200 CALL_METHOD_0 0 ''
202 POP_TOP
L. 28 204 LOAD_GLOBAL a
206 LOAD_METHOD b
208 CALL_METHOD_0 0 ''
210 POP_TOP
L. 29 212 LOAD_GLOBAL a
214 LOAD_METHOD b
216 CALL_METHOD_0 0 ''
218 POP_TOP
L. 30 220 LOAD_GLOBAL a
222 LOAD_METHOD b
224 CALL_METHOD_0 0 ''
226 POP_TOP
L. 31 228 LOAD_GLOBAL a
230 LOAD_METHOD b
232 CALL_METHOD_0 0 ''
234 POP_TOP
L. 32 236 LOAD_GLOBAL a
238 LOAD_METHOD b
240 CALL_METHOD_0 0 ''
242 POP_TOP
244 JUMP_BACK 20 'to 20'
L. 33 246 LOAD_GLOBAL cond1
248 POP_JUMP_IF_FALSE 4 'to 4'
250 LOAD_GLOBAL cond2
252 POP_JUMP_IF_FALSE 4 'to 4'
L. 33 254 POP_TOP
256_258 JUMP_ABSOLUTE 262 'to 262'
260 JUMP_BACK 4 'to 4'
L. 34 262 LOAD_GLOBAL x
264 CALL_FUNCTION_0 0 ''
266 POP_TOP
Parse error at or near `JUMP_BACK' instruction at offset 260
```
Output Decompyle3:
```python=
Instruction context:
L. 33 254 POP_TOP
-> 256_258 JUMP_FORWARD 262 'to 262'
260 JUMP_BACK 4 'to 4'
262_0 COME_FROM 256 '256'
262_1 COME_FROM 4 '4'
test/main.pyc --
# decompile failed
# file test/main.pyc
# Deparsing stopped due to parse error
```
#### MWE2:
Same as MWE1. Only strings different.
## Error 1/36
Source: [link](https://pypi.org/project/BioClients/0.0.4/#files)
Python version: 3.8
Decompyle3: Failed
Uncompyle6: Failed
Error: `Deparsing stopped due to parse error`
MWE1:
| Py3.8 | Py3.7 | Py3.6 | Py2.7 |
| -------- | -------- | -------- | -------- |
| Fail | Pass | Pass | Pass |
MWE2:
| Py3.8 | Py3.7 | Py3.6 | Py2.7 |
| -------- | -------- | -------- | -------- |
| Fail | Fail | Pass | Pass |
### MWE:
#### MWE1:
```python=
def RequestURL():
try:
pass
except Exception as e:
if x:
return ([])
```
##### Closest Solution1:
No solution. See [this](https://hackmd.io/@aliahad97/ry3JqUjad#MWE-5)
##### MWE1 data:
Bytecode for MWE:
```c=
1 0 LOAD_CONST 0 (<code object RequestURL at 0x40021eeb30, file "main.py", line 1>)
2 LOAD_CONST 1 ('RequestURL')
4 MAKE_FUNCTION 0
6 STORE_NAME 0 (RequestURL)
8 LOAD_CONST 2 (None)
10 RETURN_VALUE
Disassembly of <code object RequestURL at 0x40021eeb30, file "main.py", line 1>:
2 0 LOAD_CONST 0 (None)
2 STORE_FAST 0 (tmp)
3 4 SETUP_FINALLY 4 (to 10)
4 6 POP_BLOCK
8 JUMP_FORWARD 38 (to 48)
5 >> 10 DUP_TOP
12 LOAD_GLOBAL 0 (Exception)
14 COMPARE_OP 10 (exception match)
16 POP_JUMP_IF_FALSE 46
18 POP_TOP
20 STORE_FAST 1 (e)
22 POP_TOP
24 SETUP_FINALLY 8 (to 34)
6 26 LOAD_GLOBAL 1 (x)
28 STORE_FAST 0 (tmp)
30 POP_BLOCK
32 BEGIN_FINALLY
>> 34 LOAD_CONST 0 (None)
36 STORE_FAST 1 (e)
38 DELETE_FAST 1 (e)
40 END_FINALLY
42 POP_EXCEPT
44 JUMP_FORWARD 2 (to 48)
>> 46 END_FINALLY
7 >> 48 LOAD_FAST 0 (tmp)
50 LOAD_GLOBAL 1 (x)
52 COMPARE_OP 2 (==)
54 POP_JUMP_IF_FALSE 60
8 56 BUILD_LIST 0
58 RETURN_VALUE
>> 60 LOAD_CONST 0 (None)
62 RETURN_VALUE
```
Output uncompyle6:
```python=
def RequestURL--- This code section failed: ---
L. 2 0 SETUP_FINALLY 6 'to 6'
L. 3 2 POP_BLOCK
4 JUMP_FORWARD 56 'to 56'
6_0 COME_FROM_FINALLY 0 '0'
L. 4 6 DUP_TOP
8 LOAD_GLOBAL Exception
10 COMPARE_OP exception-match
12 POP_JUMP_IF_FALSE 54 'to 54'
14 POP_TOP
16 STORE_FAST 'e'
18 POP_TOP
20 SETUP_FINALLY 42 'to 42'
L. 5 22 LOAD_GLOBAL x
24 POP_JUMP_IF_FALSE 38 'to 38'
L. 6 26 BUILD_LIST_0 0
28 ROT_FOUR
30 POP_BLOCK
32 POP_EXCEPT
34 CALL_FINALLY 42 'to 42'
36 RETURN_VALUE
38_0 COME_FROM 24 '24'
38 POP_BLOCK
40 BEGIN_FINALLY
42_0 COME_FROM 34 '34'
42_1 COME_FROM_FINALLY 20 '20'
42 LOAD_CONST None
44 STORE_FAST 'e'
46 DELETE_FAST 'e'
48 END_FINALLY
50 POP_EXCEPT
52 JUMP_FORWARD 56 'to 56'
54_0 COME_FROM 12 '12'
54 END_FINALLY
56_0 COME_FROM 52 '52'
56_1 COME_FROM 4 '4'
Parse error at or near `POP_BLOCK' instruction at offset 30
```
Output Decompyle3:
```python=
Instruction context:
L. 6 26 BUILD_LIST_0 0
28 ROT_FOUR
-> 30 POP_BLOCK
32 POP_EXCEPT
34 CALL_FINALLY 42 'to 42'
36 RETURN_VALUE
38_0 COME_FROM 24 '24'
38 POP_BLOCK
40 BEGIN_FINALLY
42_0 COME_FROM 34 '34'
42_1 COME_FROM_FINALLY 20 '20'
42 LOAD_CONST None
44 STORE_FAST 'e'
46 DELETE_FAST 'e'
48 END_FINALLY
50 POP_EXCEPT
52 JUMP_FORWARD 56 'to 56'
54_0 COME_FROM 12 '12'
54 END_FINALLY
56_0 COME_FROM 52 '52'
test/main.pyc --
# decompile failed
# file test/main.pyc
# Deparsing stopped due to parse error
```
#### MWE2:
```python=
def ParseXml():
try:
pass
except Exception as e:
return False
```
##### Closest Solution2:
No solution. See [this](https://hackmd.io/@aliahad97/ry3JqUjad#MWE-5).
##### MWE2 data:
Bytecode for MWE:
```c=
1 0 LOAD_CONST 0 (<code object ParseXml at 0x40021aeb30, file "main.py", line 1>)
2 LOAD_CONST 1 ('ParseXml')
4 MAKE_FUNCTION 0
6 STORE_NAME 0 (ParseXml)
8 LOAD_CONST 2 (None)
10 RETURN_VALUE
Disassembly of <code object ParseXml at 0x40021aeb30, file "main.py", line 1>:
2 0 SETUP_FINALLY 4 (to 6)
3 2 POP_BLOCK
4 JUMP_FORWARD 40 (to 46)
4 >> 6 DUP_TOP
8 LOAD_GLOBAL 0 (Exception)
10 COMPARE_OP 10 (exception match)
12 POP_JUMP_IF_FALSE 44
14 POP_TOP
16 STORE_FAST 0 (e)
18 POP_TOP
20 SETUP_FINALLY 10 (to 32)
5 22 POP_BLOCK
24 POP_EXCEPT
26 CALL_FINALLY 4 (to 32)
28 LOAD_CONST 1 (False)
30 RETURN_VALUE
>> 32 LOAD_CONST 0 (None)
34 STORE_FAST 0 (e)
36 DELETE_FAST 0 (e)
38 END_FINALLY
40 POP_EXCEPT
42 JUMP_FORWARD 2 (to 46)
>> 44 END_FINALLY
>> 46 LOAD_CONST 0 (None)
48 RETURN_VALUE
```
Output uncompyle6:
```python=
def ParseXml--- This code section failed: ---
L. 2 0 SETUP_FINALLY 6 'to 6'
L. 3 2 POP_BLOCK
4 JUMP_FORWARD 46 'to 46'
6_0 COME_FROM_FINALLY 0 '0'
L. 4 6 DUP_TOP
8 LOAD_GLOBAL Exception
10 COMPARE_OP exception-match
12 POP_JUMP_IF_FALSE 44 'to 44'
14 POP_TOP
16 STORE_FAST 'e'
18 POP_TOP
20 SETUP_FINALLY 32 'to 32'
L. 5 22 POP_BLOCK
24 POP_EXCEPT
26 CALL_FINALLY 32 'to 32'
28 LOAD_CONST False
30 RETURN_VALUE
32_0 COME_FROM 26 '26'
32_1 COME_FROM_FINALLY 20 '20'
32 LOAD_CONST None
34 STORE_FAST 'e'
36 DELETE_FAST 'e'
38 END_FINALLY
40 POP_EXCEPT
42 JUMP_FORWARD 46 'to 46'
44_0 COME_FROM 12 '12'
44 END_FINALLY
46_0 COME_FROM 42 '42'
46_1 COME_FROM 4 '4'
Parse error at or near `CALL_FINALLY' instruction at offset 26
```
Output Decompyle3:
```python=
def ParseXml():
try:
pass
except Exception as e:
try:
return False
finally:
e = None
del e
```
## Error 1/37
Source: [link](https://pypi.org/project/BioClients/0.0.4/#files)
Python version: 3.8
Decompyle3: Failed
Uncompyle6: Failed
Error: `Deparsing stopped due to parse error`
| Py3.8 | Py3.7 | Py3.6 | Py2.7 |
| -------- | -------- | -------- | -------- |
| Fail | Pass | Pass | Pass |
### MWE:
```python=
def Describe():
while True:
try:
pass
except Exception as e:
break
```
#### Closest Solution:
No solution. See [here](https://hackmd.io/@aliahad97/ry3JqUjad#MWE-2)
#### MWE data:
Bytecode for MWE:
```c=
1 0 LOAD_CONST 0 (<code object Describe at 0x400246eb30, file "main.py", line 1>)
2 LOAD_CONST 1 ('Describe')
4 MAKE_FUNCTION 0
6 STORE_NAME 0 (Describe)
8 LOAD_CONST 2 (None)
10 RETURN_VALUE
Disassembly of <code object Describe at 0x400246eb30, file "main.py", line 1>:
3 >> 0 SETUP_FINALLY 4 (to 6)
4 2 POP_BLOCK
4 JUMP_ABSOLUTE 0
5 >> 6 DUP_TOP
8 LOAD_GLOBAL 0 (Exception)
10 COMPARE_OP 10 (exception match)
12 POP_JUMP_IF_FALSE 46
14 POP_TOP
16 STORE_FAST 0 (e)
18 POP_TOP
20 SETUP_FINALLY 12 (to 34)
6 22 POP_BLOCK
24 POP_EXCEPT
26 CALL_FINALLY 6 (to 34)
28 JUMP_ABSOLUTE 50
30 POP_BLOCK
32 BEGIN_FINALLY
>> 34 LOAD_CONST 0 (None)
36 STORE_FAST 0 (e)
38 DELETE_FAST 0 (e)
40 END_FINALLY
42 POP_EXCEPT
44 JUMP_ABSOLUTE 0
>> 46 END_FINALLY
48 JUMP_ABSOLUTE 0
>> 50 LOAD_CONST 0 (None)
52 RETURN_VALUE
```
Output uncompyle6:
```python=
def Describe--- This code section failed: ---
L. 3 0 SETUP_FINALLY 6 'to 6'
L. 4 2 POP_BLOCK
4 JUMP_BACK 0 'to 0'
6_0 COME_FROM_FINALLY 0 '0'
L. 5 6 DUP_TOP
8 LOAD_GLOBAL Exception
10 COMPARE_OP exception-match
12 POP_JUMP_IF_FALSE 46 'to 46'
14 POP_TOP
16 STORE_FAST 'e'
18 POP_TOP
20 SETUP_FINALLY 34 'to 34'
L. 6 22 POP_BLOCK
24 POP_EXCEPT
26 CALL_FINALLY 34 'to 34'
28 BREAK_LOOP 50 'to 50'
30 POP_BLOCK
32 BEGIN_FINALLY
34_0 COME_FROM 26 '26'
34_1 COME_FROM_FINALLY 20 '20'
34 LOAD_CONST None
36 STORE_FAST 'e'
38 DELETE_FAST 'e'
40 END_FINALLY
42 POP_EXCEPT
44 JUMP_BACK 0 'to 0'
46_0 COME_FROM 12 '12'
46 END_FINALLY
48 JUMP_BACK 0 'to 0'
Parse error at or near `CALL_FINALLY' instruction at offset 26
```
Output Decompyle3:
```python=
Instruction context:
L. 6 22 POP_BLOCK
24 POP_EXCEPT
26 CALL_FINALLY 34 'to 34'
-> 28 JUMP_FORWARD 50 'to 50'
30 POP_BLOCK
32 BEGIN_FINALLY
34_0 COME_FROM 26 '26'
34_1 COME_FROM_FINALLY 20 '20'
34 LOAD_CONST None
36 STORE_FAST 'e'
38 DELETE_FAST 'e'
40 END_FINALLY
42 POP_EXCEPT
44 JUMP_BACK 0 'to 0'
46_0 COME_FROM 12 '12'
46 END_FINALLY
48 JUMP_BACK 0 'to 0'
test/main.pyc --
# decompile failed
# file test/main.pyc
# Deparsing stopped due to parse error
```
## Error 1/38
Source: [link](https://github.com/reneshbedre/bioinfokit/blob/7f62e8fe38e1ce07ee025a45d29f61fb46025589/bioinfokit/visuz.py#L271)
Python version: 3.7
Decompyle3: Pass
Uncompyle6: Failed
Error: `Deparsing stopped due to parse error`
| Py3.8 | Py3.7 | Py3.6 | Py2.7 |
| -------- | -------- | -------- | -------- |
| Pass | Fail | Pass | Pass |
### MWE:
```python=
def geneplot_mhat():
if a:
if b:
for i in l:
# if c:
a.b()
a.b()
a.b()
a.b()
a.b()
a.b()
a.b()
a.b()
a.b()
a.b()
a.b()
a.b()
a.b()
a.b()
a.b()
a.b()
a.b()
a.b()
a.b()
a.b()
a.b()
a.b()
a.b()
a.b()
a.b()
a.b()
a.b()
a.b()
a.b()
a.b()
a.b()
elif d:
for i in l:
if f:
a.b() # Error line
else:
pass
```
#### Closest Solution:
```python=
```
```c=
```
#### MWE data:
Bytecode for MWE:
```c=
1 0 LOAD_CONST 0 (<code object geneplot_mhat at 0x40022eee40, file "main.py", line 1>)
2 LOAD_CONST 1 ('geneplot_mhat')
4 MAKE_FUNCTION 0
6 STORE_NAME 0 (geneplot_mhat)
8 LOAD_CONST 2 (None)
10 RETURN_VALUE
Disassembly of <code object geneplot_mhat at 0x40022eee40, file "main.py", line 1>:
2 0 LOAD_GLOBAL 0 (a)
2 EXTENDED_ARG 1
4 POP_JUMP_IF_FALSE 306
3 6 LOAD_GLOBAL 1 (b)
8 EXTENDED_ARG 1
10 POP_JUMP_IF_FALSE 268
4 12 SETUP_LOOP 252 (to 266)
14 LOAD_GLOBAL 2 (l)
16 GET_ITER
>> 18 FOR_ITER 244 (to 264)
20 STORE_FAST 0 (i)
6 22 LOAD_GLOBAL 0 (a)
24 LOAD_METHOD 1 (b)
26 CALL_METHOD 0
28 POP_TOP
7 30 LOAD_GLOBAL 0 (a)
32 LOAD_METHOD 1 (b)
34 CALL_METHOD 0
36 POP_TOP
8 38 LOAD_GLOBAL 0 (a)
40 LOAD_METHOD 1 (b)
42 CALL_METHOD 0
44 POP_TOP
9 X---- Removed Section -----X
34 246 LOAD_GLOBAL 0 (a)
248 LOAD_METHOD 1 (b)
250 CALL_METHOD 0
252 POP_TOP
35 254 LOAD_GLOBAL 0 (a)
256 LOAD_METHOD 1 (b)
258 CALL_METHOD 0
260 POP_TOP
262 JUMP_ABSOLUTE 18
>> 264 POP_BLOCK
>> 266 JUMP_FORWARD 36 (to 304)
37 >> 268 LOAD_GLOBAL 3 (d)
270 EXTENDED_ARG 1
272 POP_JUMP_IF_FALSE 306
38 274 SETUP_LOOP 30 (to 306)
276 LOAD_GLOBAL 2 (l)
278 GET_ITER
>> 280 FOR_ITER 20 (to 302)
282 STORE_FAST 0 (i)
39 284 LOAD_GLOBAL 4 (f)
286 EXTENDED_ARG 1
288 POP_JUMP_IF_FALSE 280
40 290 LOAD_GLOBAL 0 (a)
292 LOAD_METHOD 1 (b)
294 CALL_METHOD 0
296 POP_TOP
298 EXTENDED_ARG 1
300 JUMP_ABSOLUTE 280
>> 302 POP_BLOCK
>> 304 JUMP_FORWARD 0 (to 306)
42 >> 306 LOAD_CONST 0 (None)
308 RETURN_VALUE
```
Output uncompyle6:
```python=
def geneplot_mhat--- This code section failed: ---
L. 2 0 LOAD_GLOBAL a
2_4 POP_JUMP_IF_FALSE 306 'to 306'
L. 3 6 LOAD_GLOBAL b
8_10 POP_JUMP_IF_FALSE 268 'to 268'
L. 4 12 SETUP_LOOP 266 'to 266'
14 LOAD_GLOBAL l
16 GET_ITER
18 FOR_ITER 264 'to 264'
20 STORE_FAST 'i'
L. 6 22 LOAD_GLOBAL a
24 LOAD_METHOD b
26 CALL_METHOD_0 0 '0 positional arguments'
28 POP_TOP
L. 7 30 LOAD_GLOBAL a
32 LOAD_METHOD b
34 CALL_METHOD_0 0 '0 positional arguments'
36 POP_TOP
L. 8 X ---- Removed Section ---- X
L. 35 254 LOAD_GLOBAL a
256 LOAD_METHOD b
258 CALL_METHOD_0 0 '0 positional arguments'
260 POP_TOP
262 JUMP_BACK 18 'to 18'
264 POP_BLOCK
266_0 COME_FROM_LOOP 12 '12'
266 JUMP_FORWARD 304 'to 304'
268_0 COME_FROM 8 '8'
L. 37 268 LOAD_GLOBAL d
270_272 POP_JUMP_IF_FALSE 306 'to 306'
L. 38 274 SETUP_LOOP 306 'to 306'
276 LOAD_GLOBAL l
278 GET_ITER
280_0 COME_FROM 286 '286'
280 FOR_ITER 302 'to 302'
282 STORE_FAST 'i'
L. 39 284 LOAD_GLOBAL f
286_288 POP_JUMP_IF_FALSE 280 'to 280'
L. 40 290 LOAD_GLOBAL a
292 LOAD_METHOD b
294 CALL_METHOD_0 0 '0 positional arguments'
296 POP_TOP
298_300 JUMP_BACK 280 'to 280'
302 POP_BLOCK
304_0 COME_FROM 266 '266'
304 JUMP_FORWARD 306 'to 306'
306_0 COME_FROM 304 '304'
306_1 COME_FROM_LOOP 274 '274'
306_2 COME_FROM 270 '270'
306_3 COME_FROM 2 '2'
Parse error at or near `COME_FROM' instruction at offset 306_2
```
Output Decompyle3:
```python=
# decompyle3 version 3.7.5
# Python bytecode 3.7 (3394)
# Decompiled from: Python 3.7.11 (default, Jun 29 2021, 20:31:06)
# [GCC 8.3.0]
# Embedded file name: main.py
# Compiled at: 2021-07-21 18:22:43
# Size of source mod 2**32: 917 bytes
def geneplot_mhat():
if a:
if b:
for i in l:
a.b()
a.b()
a.b()
a.b()
a.b()
a.b()
a.b()
a.b()
a.b()
a.b()
a.b()
a.b()
a.b()
a.b()
a.b()
a.b()
a.b()
a.b()
a.b()
a.b()
a.b()
a.b()
a.b()
a.b()
a.b()
a.b()
a.b()
a.b()
a.b()
a.b()
elif d:
for i in l:
if f:
a.b()
else:
pass
```