contract Contract {
    function main() {
        memory[0x40:0x60] = 0x80;
        var var0 = msg.value;
    
        if (var0) { revert(memory[0x00:0x00]); }
    
        if (msg.data.length < 0x04) { revert(memory[0x00:0x00]); }
    
        var0 = msg.data[0x00:0x20] >> 0xe0;
    
        if (0x7ecebe00 > var0) {
            if (0x3644e515 > var0) {
                if (0x18160ddd > var0) {
                    if (0x103e6d8f > var0) {
                        if (var0 == 0x06fdde03) {
                            // Dispatch table entry for 
name()
                            var var1 = 0x03e8;
                            var1 = 
name();
                        
                        label_03E8:
                            var temp0 = memory[0x40:0x60];
                            memory[temp0:temp0 + 0x20] = 0x20;
                            var temp1 = var1;
                            memory[temp0 + 0x20:temp0 + 0x20 + 0x20] = memory[temp1:temp1 + 0x20];
                            var var2 = temp0;
                            var var3 = var2;
                            var var4 = var3 + 0x40;
                            var var6 = memory[temp1:temp1 + 0x20];
                            var var5 = temp1 + 0x20;
                            var var7 = var6;
                            var var8 = var4;
                            var var9 = var5;
                            var var10 = 0x00;
                        
                            if (var10 >= var7) {
                            label_0422:
                                var temp2 = var6;
                                var4 = temp2 + var4;
                                var5 = temp2 & 0x1f;
                            
                                if (!var5) {
                                    var temp3 = memory[0x40:0x60];
                                    return memory[temp3:temp3 + var4 - temp3];
                                } else {
                                    var temp4 = var5;
                                    var temp5 = var4 - temp4;
                                    memory[temp5:temp5 + 0x20] = ~(0x0100 ** (0x20 - temp4) - 0x01) & memory[temp5:temp5 + 0x20];
                                    var temp6 = memory[0x40:0x60];
                                    return memory[temp6:temp6 + (temp5 + 0x20) - temp6];
                                }
                            } else {
                            label_0413:
                                var temp7 = var10;
                                memory[temp7 + var8:temp7 + var8 + 0x20] = memory[temp7 + var9:temp7 + var9 + 0x20];
                                var10 = temp7 + 0x20;
                            
                                if (var10 >= var7) { goto label_0422; }
                                else { goto label_0413; }
                            }
                        } else if (var0 == 0x095ea7b3) {
                            // Dispatch table entry for approve(address,uint256)
                            var1 = 0x0489;
                            var2 = 0x04;
                            var3 = msg.data.length - var2;
                        
                            if (var3 < 0x40) { revert(memory[0x00:0x00]); }
                        
                            var temp8 = var2;
                            var2 = msg.data[temp8:temp8 + 0x20] & (0x01 << 0xa0) - 0x01;
                            var3 = msg.data[temp8 + 0x20:temp8 + 0x20 + 0x20];
                            var4 = 0x00;
                        
                            if (storage[0x97] & (0x01 << 0xa0) - 0x01) {
                                var5 = 0x14ec;
                                var6 = 0x14e5;
                                var6 = 
burn();
                                
func_14E5(var2, var3, var6);
                                var4 = 0x01;
                            
                            label_14F0:
                                var1 = var4;
                                // Error: Could not resolve jump destination!
                            } else {
                                var temp9 = memory[0x40:0x60];
                                memory[temp9:temp9 + 0x20] = 0x461bcd << 0xe5;
                                memory[temp9 + 0x04:temp9 + 0x04 + 0x20] = 0x20;
                                memory[temp9 + 0x24:temp9 + 0x24 + 0x20] = 0x04;
                                memory[temp9 + 0x44:temp9 + 0x44 + 0x20] = 0x50523031 << 0xe0;
                                var temp10 = memory[0x40:0x60];
                                revert(memory[temp10:temp10 + temp9 - temp10 + 0x64]);
                            }
                        } else if (var0 == 0x0a2eb301) {
                            // Dispatch table entry for isAdministrator(address)
                            var1 = 0x0489;
                            var2 = 0x04;
                            var3 = msg.data.length - var2;
                        
                            if (var3 < 0x20) { revert(memory[0x00:0x00]); }
                        
                            var2 = msg.data[var2:var2 + 0x20] & (0x01 << 0xa0) - 0x01;
                        
                        label_14F6:
                            var3 = 0x00;
                            var4 = 0x14f0;
                            var5 = 0x98;
                            var6 = var2;
                            var4 = 
isRealmAdministrator(var5, var6);
                            goto label_14F0;
                        } else if (var0 == 0x0f5f817a) {
                            // Dispatch table entry for 
removeSupplier(address)
                            var1 = 0x04e9;
                            var2 = 0x04;
                            var3 = msg.data.length - var2;
                        
                            if (var3 < 0x20) { revert(memory[0x00:0x00]); }
                        
                            
removeSupplier(var2, var3);
                            stop();
                        } else { revert(memory[0x00:0x00]); }
                    } else if (var0 == 0x103e6d8f) {
                        // Dispatch table entry for 0x103e6d8f (unknown)
                        var1 = 0x0517;
                        var2 = 0x04;
                        var3 = msg.data.length - var2;
                    
                        if (var3 < 0x40) { revert(memory[0x00:0x00]); }
                    
                        var2 = 
func_0501(var2, var3);
                        var3 = memory[0x40:0x60];
                        var4 = var3;
                        var5 = var2;
                    
                        if (var5 > 0x02) { assert(); }
                    
                        var temp11 = var4;
                        memory[temp11:temp11 + 0x20] = var5 & 0xff;
                        var temp12 = memory[0x40:0x60];
                        return memory[temp12:temp12 + (temp11 + 0x20) - temp12];
                    } else if (var0 == 0x10c8b404) {
                        // Dispatch table entry for 
APPROVE_WITH_AUTHORIZATION_TYPEHASH()
                        var1 = 0x0543;
                        var2 = 
APPROVE_WITH_AUTHORIZATION_TYPEHASH();
                    
                    label_0543:
                        var temp13 = memory[0x40:0x60];
                        memory[temp13:temp13 + 0x20] = var2;
                        var temp14 = memory[0x40:0x60];
                        return memory[temp14:temp14 + temp13 - temp14 + 0x20];
                    } else if (var0 == 0x153a1f3e) {
                        // Dispatch table entry for 
bulkTransfer(address[],uint256[])
                        var1 = 0x04e9;
                        var2 = 0x04;
                        var3 = msg.data.length - var2;
                    
                        if (var3 < 0x40) { revert(memory[0x00:0x00]); }
                    
                        
bulkTransfer(var2, var3);
                        stop();
                    } else if (var0 == 0x17df4745) {
                        // Dispatch table entry for 
addSupplier(address)
                        var1 = 0x04e9;
                        var2 = 0x04;
                        var3 = msg.data.length - var2;
                    
                        if (var3 < 0x20) { revert(memory[0x00:0x00]); }
                    
                        
addSupplier(var2, var3);
                        stop();
                    } else { revert(memory[0x00:0x00]); }
                } else if (0x2630c12f > var0) {
                    if (var0 == 0x18160ddd) {
                        // Dispatch table entry for 
totalSupply()
                        var1 = 0x0543;
                        var1 = 
totalSupply();
                        goto label_0543;
                    } else if (var0 == 0x1947c5e2) {
                        // Dispatch table entry for 
removeSeizer(address)
                        var1 = 0x04e9;
                        var2 = 0x04;
                        var3 = msg.data.length - var2;
                    
                        if (var3 < 0x20) { revert(memory[0x00:0x00]); }
                    
                        
removeSeizer(var2, var3);
                        stop();
                    } else if (var0 == 0x1c94c2c3) {
                        // Dispatch table entry for 
decreaseApprovalWithAuthorization(address,address,uint256,uint256,uint256,bytes32,uint8,bytes32,bytes32)
                        var1 = 0x04e9;
                        var2 = 0x04;
                        var3 = msg.data.length - var2;
                    
                        if (var3 < 0x0120) { revert(memory[0x00:0x00]); }
                    
                        
decreaseApprovalWithAuthorization(var2, var3);
                        stop();
                    } else if (var0 == 0x23b872dd) {
                        // Dispatch table entry for 
transferFrom(address,address,uint256)
                        var1 = 0x0489;
                        var2 = 0x04;
                        var3 = msg.data.length - var2;
                    
                        if (var3 < 0x60) { revert(memory[0x00:0x00]); }
                    
                        var1 = 
transferFrom(var2, var3);
                    
                    label_0489:
                        var temp15 = memory[0x40:0x60];
                        memory[temp15:temp15 + 0x20] = !!var1;
                        var temp16 = memory[0x40:0x60];
                        return memory[temp16:temp16 + temp15 - temp16 + 0x20];
                    } else { revert(memory[0x00:0x00]); }
                } else if (var0 == 0x2630c12f) {
                    // Dispatch table entry for 
priceOracle()
                    var1 = 0x0704;
                    var1 = 
priceOracle();
                
                label_0704:
                    var temp17 = memory[0x40:0x60];
                    memory[temp17:temp17 + 0x20] = var1 & (0x01 << 0xa0) - 0x01;
                    var temp18 = memory[0x40:0x60];
                    return memory[temp18:temp18 + temp17 - temp18 + 0x20];
                } else if (var0 == 0x30adf81f) {
                    // Dispatch table entry for 
PERMIT_TYPEHASH()
                    var1 = 0x0543;
                    var2 = 
PERMIT_TYPEHASH();
                    goto label_0543;
                } else if (var0 == 0x313ce567) {
                    // Dispatch table entry for 
decimals()
                    var1 = 0x0730;
                    var1 = 
decimals();
                    var temp19 = memory[0x40:0x60];
                    memory[temp19:temp19 + 0x20] = var1 & 0xff;
                    var temp20 = memory[0x40:0x60];
                    return memory[temp20:temp20 + temp19 - temp20 + 0x20];
                } else if (var0 == 0x33a8c45a) {
                    // Dispatch table entry for 
contact()
                    var1 = 0x03e8;
                    var1 = 
contact();
                    goto label_03E8;
                } else { revert(memory[0x00:0x00]); }
            } else if (0x58348cf1 > var0) {
                if (0x46336542 > var0) {
                    if (var0 == 0x3644e515) {
                        // Dispatch table entry for 
DOMAIN_SEPARATOR()
                        var1 = 0x0543;
                        var2 = 
DOMAIN_SEPARATOR();
                        goto label_0543;
                    } else if (var0 == 0x3ed04ad6) {
                        // Dispatch table entry for 
addRealmAdministrator(address)
                        var1 = 0x04e9;
                        var2 = 0x04;
                        var3 = msg.data.length - var2;
                    
                        if (var3 < 0x20) { revert(memory[0x00:0x00]); }
                    
                        
addRealmAdministrator(var2, var3);
                        stop();
                    } else if (var0 == 0x40c10f19) {
                        // Dispatch table entry for mint(address,uint256)
                        var1 = 0x04e9;
                        var2 = 0x04;
                        var3 = msg.data.length - var2;
                    
                        if (var3 < 0x40) { revert(memory[0x00:0x00]); }
                    
                        var temp21 = var2;
                        var2 = msg.data[temp21:temp21 + 0x20] & (0x01 << 0xa0) - 0x01;
                        var3 = msg.data[temp21 + 0x20:temp21 + 0x20 + 0x20];
                        var4 = 0x1e75;
                        var5 = 0x1e70;
                        var5 = 
burn();
                    
                    label_1E70:
                    
                    label_20CF:
                        var6 = 0x00;
                        var7 = 0x14f0;
                        var8 = 0x0101;
                        var9 = var5;
                        var7 = 
isRealmAdministrator(var8, var9);
                        goto label_14F0;
                    } else if (var0 == 0x44b0f448) {
                        // Dispatch table entry for 0x44b0f448 (unknown)
                        var1 = 0x04e9;
                        var2 = 0x04;
                        var3 = msg.data.length - var2;
                    
                        if (var3 < 0x20) { revert(memory[0x00:0x00]); }
                    
                        var temp22 = var2;
                        var temp23 = temp22 + var3;
                        var3 = temp22;
                        var2 = temp23;
                        var4 = var3 + 0x20;
                        var5 = msg.data[var3:var3 + 0x20];
                    
                        if (var5 > 0x01 << 0x20) { revert(memory[0x00:0x00]); }
                    
                        var temp24 = var3 + var5;
                        var5 = temp24;
                    
                        if (var5 + 0x20 > var2) { revert(memory[0x00:0x00]); }
                    
                        var temp25 = var5;
                        var temp26 = msg.data[temp25:temp25 + 0x20];
                        var5 = temp26;
                        var6 = var4;
                        var4 = temp25 + 0x20;
                    
                        if ((var5 > 0x01 << 0x20) | (var4 + var5 * 0x20 > var2)) { revert(memory[0x00:0x00]); }
                    
                        var2 = var4;
                        var3 = var5;
                        var4 = 0x1ff5;
                        var4 = 
burn();
                        var4 = var4 & (0x01 << 0xa0) - 0x01;
                        var5 = 0x2006;
                        var5 = 
owner();
                        var4 = var5 & (0x01 << 0xa0) - 0x01 == var4;
                    
                        if (!var4) {
                            var4 = 0x2021;
                            var5 = 0x153d;
                            var5 = 
burn();
                        
                        label_153D:
                            goto label_14F6;
                        } else if (var4) {
                            var4 = 0x2067;
                            var5 = 0x9a;
                            var6 = var2;
                            var7 = var3;
                            var temp27 = var5;
                            var temp28 = storage[temp27];
                            var temp29 = var7;
                            storage[temp27] = temp29;
                            memory[0x00:0x20] = temp27;
                            var8 = keccak256(memory[0x00:0x20]);
                            var temp30 = var6;
                            var6 = var8 + temp28;
                            var9 = temp30;
                        
                            if (!temp29) {
                            label_54D3:
                                var temp31 = var6;
                                var6 = 0x54df;
                                var7 = temp31;
                                var6 = 
func_55EC(var7, var8);
                                var4 = 
func_54DF(var5, var6);
                                // Error: Could not resolve method call return address!
                            } else {
                                var temp32 = var7;
                                var temp33 = var9;
                                var7 = temp33;
                                var9 = var7 + temp32 * 0x20;
                            
                                if (var9 <= var7) { goto label_54D3; }
                            
                            label_54A9:
                                var temp34 = var8;
                                var temp35 = var7;
                                storage[temp34] = (msg.data[temp35:temp35 + 0x20] & (0x01 << 0xa0) - 0x01) | (storage[temp34] & ~((0x01 << 0xa0) - 0x01));
                                var7 = temp35 + 0x20;
                                var8 = temp34 + 0x01;
                                var9 = var9;
                            
                                if (var9 <= var7) { goto label_54D3; }
                                else { goto label_54A9; }
                            }
                        } else {
                            var temp36 = memory[0x40:0x60];
                            memory[temp36:temp36 + 0x20] = 0x461bcd << 0xe5;
                            memory[temp36 + 0x04:temp36 + 0x04 + 0x20] = 0x20;
                            memory[temp36 + 0x24:temp36 + 0x24 + 0x20] = 0x04;
                            memory[temp36 + 0x44:temp36 + 0x44 + 0x20] = 0x41443031 << 0xe0;
                            var temp37 = memory[0x40:0x60];
                            revert(memory[temp37:temp37 + temp36 - temp37 + 0x64]);
                        }
                    } else { revert(memory[0x00:0x00]); }
                } else if (var0 == 0x46336542) {
                    // Dispatch table entry for isSupplier(address)
                    var1 = 0x0489;
                    var2 = 0x04;
                    var3 = msg.data.length - var2;
                
                    if (var3 < 0x20) { revert(memory[0x00:0x00]); }
                
                    var2 = msg.data[var2:var2 + 0x20] & (0x01 << 0xa0) - 0x01;
                    goto label_20CF;
                } else if (var0 == 0x485cc955) {
                    // Dispatch table entry for initialize(address,address)
                    var1 = 0x04e9;
                    var2 = 0x04;
                    var3 = msg.data.length - var2;
                
                    if (var3 < 0x40) { revert(memory[0x00:0x00]); }
                
                    var temp38 = (0x01 << 0xa0) - 0x01;
                    var temp39 = var2;
                    var2 = temp38 & msg.data[temp39:temp39 + 0x20];
                    var3 = msg.data[temp39 + 0x20:temp39 + 0x20 + 0x20] & temp38;
                
                label_20E3:
                    var4 = storage[0x00] / 0x0100 & 0xff;
                
                    if (var4) {
                    label_20FC:
                    
                        if (var4) {
                            if (var4) {
                            label_2145:
                                var4 = !(storage[0x00] / 0x0100 & 0xff);
                            
                                if (!var4) {
                                    var5 = 0x217a;
                                    var6 = var2;
                                    var7 = var3;
                                
                                label_48F5:
                                    var8 = storage[0x00] / 0x0100 & 0xff;
                                
                                    if (var8) {
                                    label_490E:
                                    
                                        if (var8) {
                                            if (var8) {
                                            label_4957:
                                                var8 = !(storage[0x00] / 0x0100 & 0xff);
                                            
                                                if (!var8) {
                                                    var9 = 0x498a;
                                                
                                                label_5121:
                                                    var10 = storage[0x00] / 0x0100 & 0xff;
                                                
                                                    if (var10) {
                                                    label_513A:
                                                    
                                                        if (var10) {
                                                            if (var10) {
                                                            label_5183:
                                                                var10 = !(storage[0x00] / 0x0100 & 0xff);
                                                            
                                                                if (!var10) {
                                                                    var var11 = 0x51b6;
                                                                    
func_52E7();
                                                                
                                                                label_51B6:
                                                                    var11 = 0x51be;
                                                                    
func_5387();
                                                                
                                                                    if (!var10) {
                                                                        // Error: Could not resolve jump destination!
                                                                    } else {
                                                                        storage[0x00] = storage[0x00] & ~0xff00;
                                                                        // Error: Could not resolve jump destination!
                                                                    }
                                                                } else {
                                                                    storage[0x00] = (((storage[0x00] & ~0xff00) | 0x0100) & ~0xff) | 0x01;
                                                                    var11 = 0x51b6;
                                                                    
func_52E7();
                                                                    goto label_51B6;
                                                                }
                                                            } else {
                                                            label_514D:
                                                                var temp40 = memory[0x40:0x60];
                                                                memory[temp40:temp40 + 0x20] = 0x461bcd << 0xe5;
                                                                var temp41 = temp40 + 0x04;
                                                                var temp42 = temp41 + 0x20;
                                                                memory[temp41:temp41 + 0x20] = temp42 - temp41;
                                                                memory[temp42:temp42 + 0x20] = 0x2e;
                                                                var temp43 = temp42 + 0x20;
                                                                memory[temp43:temp43 + 0x2e] = code[0x56fb:0x5729];
                                                                var temp44 = memory[0x40:0x60];
                                                                revert(memory[temp44:temp44 + (temp43 + 0x40) - temp44]);
                                                            }
                                                        } else if (!(storage[0x00] & 0xff)) { goto label_5183; }
                                                        else { goto label_514D; }
                                                    } else {
                                                        var10 = 0x513a;
                                                        var10 = 
func_48EF();
                                                        goto label_513A;
                                                    }
                                                } else {
                                                    storage[0x00] = (((storage[0x00] & ~0xff00) | 0x0100) & ~0xff) | 0x01;
                                                    var9 = 0x498a;
                                                    goto label_5121;
                                                }
                                            } else {
                                            label_4921:
                                                var temp45 = memory[0x40:0x60];
                                                memory[temp45:temp45 + 0x20] = 0x461bcd << 0xe5;
                                                var temp46 = temp45 + 0x04;
                                                var temp47 = temp46 + 0x20;
                                                memory[temp46:temp46 + 0x20] = temp47 - temp46;
                                                memory[temp47:temp47 + 0x20] = 0x2e;
                                                var temp48 = temp47 + 0x20;
                                                memory[temp48:temp48 + 0x2e] = code[0x56fb:0x5729];
                                                var temp49 = memory[0x40:0x60];
                                                revert(memory[temp49:temp49 + (temp48 + 0x40) - temp49]);
                                            }
                                        } else if (!(storage[0x00] & 0xff)) { goto label_4957; }
                                        else { goto label_4921; }
                                    } else {
                                        var8 = 0x490e;
                                        var8 = 
func_48EF();
                                        goto label_490E;
                                    }
                                } else {
                                    storage[0x00] = (((storage[0x00] & ~0xff00) | 0x0100) & ~0xff) | 0x01;
                                    var5 = 0x217a;
                                    var6 = var2;
                                    var7 = var3;
                                    goto label_48F5;
                                }
                            } else {
                            label_210F:
                                var temp50 = memory[0x40:0x60];
                                memory[temp50:temp50 + 0x20] = 0x461bcd << 0xe5;
                                var temp51 = temp50 + 0x04;
                                var temp52 = temp51 + 0x20;
                                memory[temp51:temp51 + 0x20] = temp52 - temp51;
                                memory[temp52:temp52 + 0x20] = 0x2e;
                                var temp53 = temp52 + 0x20;
                                memory[temp53:temp53 + 0x2e] = code[0x56fb:0x5729];
                                var temp54 = memory[0x40:0x60];
                                revert(memory[temp54:temp54 + (temp53 + 0x40) - temp54]);
                            }
                        } else if (!(storage[0x00] & 0xff)) { goto label_2145; }
                        else { goto label_210F; }
                    } else {
                        var4 = 0x20fc;
                        var4 = 
func_48EF();
                        goto label_20FC;
                    }
                } else if (var0 == 0x52f6747a) {
                    // Dispatch table entry for 
rules()
                    var1 = 0x0872;
                    var1, var2 = 
rules();
                    var temp55 = memory[0x40:0x60];
                    var3 = temp55;
                    var4 = var3;
                    var5 = var4 + 0x20;
                    var temp56 = var5 + 0x20;
                    memory[var4:var4 + 0x20] = temp56 - var4;
                    var temp57 = var1;
                    memory[temp56:temp56 + 0x20] = memory[temp57:temp57 + 0x20];
                    var6 = temp56 + 0x20;
                    var7 = temp57 + 0x20;
                    var8 = memory[temp57:temp57 + 0x20] * 0x20;
                    var9 = var8;
                    var10 = var6;
                    var11 = var7;
                    var var12 = 0x00;
                
                    if (var12 >= var9) {
                    label_08B6:
                        var temp58 = var8 + var6;
                        memory[var5:var5 + 0x20] = temp58 - var3;
                        var temp59 = var2;
                        memory[temp58:temp58 + 0x20] = memory[temp59:temp59 + 0x20];
                        var6 = temp58 + 0x20;
                        var7 = temp59 + 0x20;
                        var8 = memory[temp59:temp59 + 0x20] * 0x20;
                        var9 = var8;
                        var10 = var6;
                        var11 = var7;
                        var12 = 0x00;
                    
                        if (var12 >= var9) {
                        label_08F5:
                            var temp60 = memory[0x40:0x60];
                            return memory[temp60:temp60 + (var8 + var6) - temp60];
                        } else {
                        label_08E6:
                            var temp61 = var12;
                            memory[temp61 + var10:temp61 + var10 + 0x20] = memory[temp61 + var11:temp61 + var11 + 0x20];
                            var12 = temp61 + 0x20;
                        
                            if (var12 >= var9) { goto label_08F5; }
                            else { goto label_08E6; }
                        }
                    } else {
                    label_08A7:
                        var temp62 = var12;
                        memory[temp62 + var10:temp62 + var10 + 0x20] = memory[temp62 + var11:temp62 + var11 + 0x20];
                        var12 = temp62 + 0x20;
                    
                        if (var12 >= var9) { goto label_08B6; }
                        else { goto label_08A7; }
                    }
                } else if (var0 == 0x530e784f) {
                    // Dispatch table entry for 
setPriceOracle(address)
                    var1 = 0x04e9;
                    var2 = 0x04;
                    var3 = msg.data.length - var2;
                
                    if (var3 < 0x20) { revert(memory[0x00:0x00]); }
                
                    
setPriceOracle(var2, var3);
                    stop();
                } else { revert(memory[0x00:0x00]); }
            } else if (0x6bb5d5af > var0) {
                if (var0 == 0x58348cf1) {
                    // Dispatch table entry for 
addSeizer(address)
                    var1 = 0x04e9;
                    var2 = 0x04;
                    var3 = msg.data.length - var2;
                
                    if (var3 < 0x20) { revert(memory[0x00:0x00]); }
                
                    
addSeizer(var2, var3);
                    stop();
                } else if (var0 == 0x5a049a70) {
                    // Dispatch table entry for 
cancelAuthorization(address,bytes32,uint8,bytes32,bytes32)
                    var1 = 0x04e9;
                    var2 = 0x04;
                    var3 = msg.data.length - var2;
                
                    if (var3 < 0xa0) { revert(memory[0x00:0x00]); }
                
                    
cancelAuthorization(var2, var3);
                    stop();
                } else if (var0 == 0x66188463) {
                    // Dispatch table entry for decreaseApproval(address,uint256)
                    var1 = 0x04e9;
                    var2 = 0x04;
                    var3 = msg.data.length - var2;
                
                    if (var3 < 0x40) { revert(memory[0x00:0x00]); }
                
                    var temp63 = var2;
                    var2 = msg.data[temp63:temp63 + 0x20] & (0x01 << 0xa0) - 0x01;
                    var3 = msg.data[temp63 + 0x20:temp63 + 0x20 + 0x20];
                
                    if (storage[0x97] & (0x01 << 0xa0) - 0x01) {
                        var4 = 0x2521;
                        var5 = 0x251a;
                        var5 = 
burn();
                        
func_251A(var2, var3, var5);
                    
                    label_2521:
                        // Error: Could not resolve jump destination!
                    } else {
                        var temp64 = memory[0x40:0x60];
                        memory[temp64:temp64 + 0x20] = 0x461bcd << 0xe5;
                        memory[temp64 + 0x04:temp64 + 0x04 + 0x20] = 0x20;
                        memory[temp64 + 0x24:temp64 + 0x24 + 0x20] = 0x04;
                        memory[temp64 + 0x44:temp64 + 0x44 + 0x20] = 0x50523031 << 0xe0;
                        var temp65 = memory[0x40:0x60];
                        revert(memory[temp65:temp65 + temp64 - temp65 + 0x64]);
                    }
                } else if (var0 == 0x68fa8134) {
                    // Dispatch table entry for 
removeAdministrator(address)
                    var1 = 0x04e9;
                    var2 = 0x04;
                    var3 = msg.data.length - var2;
                
                    if (var3 < 0x20) { revert(memory[0x00:0x00]); }
                
                    
removeAdministrator(var2, var3);
                    stop();
                } else { revert(memory[0x00:0x00]); }
            } else if (var0 == 0x6bb5d5af) {
                // Dispatch table entry for 0x6bb5d5af (unknown)
                var1 = 0x0543;
                var2 = 
func_25C5();
                goto label_0543;
            } else if (var0 == 0x70a08231) {
                // Dispatch table entry for 
balanceOf(address)
                var1 = 0x0543;
                var2 = 0x04;
                var3 = msg.data.length - var2;
            
                if (var3 < 0x20) { revert(memory[0x00:0x00]); }
            
                var1 = 
balanceOf(var2, var3);
                goto label_0543;
            } else if (var0 == 0x715018a6) {
                // Dispatch table entry for 
renounceOwnership()
                var1 = 0x04e9;
                
renounceOwnership();
                stop();
            } else if (var0 == 0x7bec9b55) {
                // Dispatch table entry for 0x7bec9b55 (unknown)
                var1 = 0x0543;
                var2 = 0x04;
                var3 = msg.data.length - var2;
            
                if (var3 < 0x60) { revert(memory[0x00:0x00]); }
            
                var1 = 
func_0A36(var2, var3);
                goto label_0543;
            } else { revert(memory[0x00:0x00]); }
        } else if (0xcc01053e > var0) {
            if (0x9ddc1184 > var0) {
                if (0x95d89b41 > var0) {
                    if (var0 == 0x7ecebe00) {
                        // Dispatch table entry for 
nonces(address)
                        var1 = 0x0543;
                        var2 = 0x04;
                        var3 = msg.data.length - var2;
                    
                        if (var3 < 0x20) { revert(memory[0x00:0x00]); }
                    
                        var2 = 
nonces(var2, var3);
                        goto label_0543;
                    } else if (var0 == 0x8140d0dc) {
                        // Dispatch table entry for setContact(string)
                        var1 = 0x04e9;
                        var2 = 0x04;
                        var3 = msg.data.length - var2;
                    
                        if (var3 < 0x20) { revert(memory[0x00:0x00]); }
                    
                        var temp66 = var2;
                        var temp67 = temp66 + var3;
                        var3 = temp66;
                        var2 = temp67;
                        var4 = var3 + 0x20;
                        var5 = msg.data[var3:var3 + 0x20];
                    
                        if (var5 > 0x01 << 0x20) { revert(memory[0x00:0x00]); }
                    
                        var temp68 = var3 + var5;
                        var5 = temp68;
                    
                        if (var5 + 0x20 > var2) { revert(memory[0x00:0x00]); }
                    
                        var temp69 = var5;
                        var temp70 = msg.data[temp69:temp69 + 0x20];
                        var5 = temp70;
                        var6 = var4;
                        var4 = temp69 + 0x20;
                    
                        if ((var5 > 0x01 << 0x20) | (var4 + var5 > var2)) { revert(memory[0x00:0x00]); }
                    
                        var2 = var4;
                        var3 = var5;
                        var4 = 0x2b46;
                        var4 = 
burn();
                        var4 = var4 & (0x01 << 0xa0) - 0x01;
                        var5 = 0x2b57;
                        var5 = 
owner();
                        var4 = var5 & (0x01 << 0xa0) - 0x01 == var4;
                    
                        if (!var4) {
                            var4 = 0x2b72;
                            var5 = 0x153d;
                            var5 = 
burn();
                            goto label_153D;
                        } else if (var4) {
                            var4 = 0x2bb9;
                            var5 = 0x0104;
                            var6 = var2;
                            var7 = var3;
                            var temp71 = var5;
                            var temp72 = storage[temp71];
                            memory[0x00:0x20] = temp71;
                            var8 = keccak256(memory[0x00:0x20]);
                            var temp73 = var6;
                            var6 = var8 + ((!(temp72 & 0x01) * 0x0100 - 0x01 & temp72) / 0x02 + 0x1f) / 0x20;
                            var9 = temp73;
                        
                            if (0x1f < var7) {
                                var temp74 = var7;
                                storage[var5] = temp74 + temp74 + 0x01;
                            
                                if (!temp74) {
                                label_5551:
                                    var temp75 = var6;
                                    var6 = 0x54df;
                                    var7 = temp75;
                                    var6 = 
func_5610(var7, var8);
                                    var4 = 
func_54DF(var5, var6);
                                    // Error: Could not resolve method call return address!
                                } else {
                                    var temp76 = var7;
                                    var7 = var9;
                                    var9 = var7 + temp76;
                                
                                label_5536:
                                
                                    if (var9 <= var7) { goto label_5551; }
                                
                                    var temp77 = var7;
                                    var temp78 = var8;
                                    storage[temp78] = msg.data[temp77:temp77 + 0x20];
                                    var7 = temp77 + 0x20;
                                    var8 = temp78 + 0x01;
                                    var9 = var9;
                                    goto label_5536;
                                }
                            } else {
                                var temp79 = var7;
                                storage[var5] = (msg.data[var9:var9 + 0x20] & ~0xff) | temp79 + temp79;
                                goto label_5551;
                            }
                        } else {
                            var temp80 = memory[0x40:0x60];
                            memory[temp80:temp80 + 0x20] = 0x461bcd << 0xe5;
                            memory[temp80 + 0x04:temp80 + 0x04 + 0x20] = 0x20;
                            memory[temp80 + 0x24:temp80 + 0x24 + 0x20] = 0x04;
                            memory[temp80 + 0x44:temp80 + 0x44 + 0x20] = 0x41443031 << 0xe0;
                            var temp81 = memory[0x40:0x60];
                            revert(memory[temp81:temp81 + temp80 - temp81 + 0x64]);
                        }
                    } else if (var0 == 0x8bf64cba) {
                        // Dispatch table entry for 0x8bf64cba (unknown)
                        var1 = 0x04e9;
                        var2 = 0x04;
                        var3 = msg.data.length - var2;
                    
                        if (var3 < 0x40) { revert(memory[0x00:0x00]); }
                    
                        var temp82 = var2;
                        var temp83 = temp82 + var3;
                        var3 = temp82;
                        var2 = temp83;
                        var4 = var3 + 0x20;
                        var5 = msg.data[var3:var3 + 0x20];
                    
                        if (var5 > 0x01 << 0x20) { revert(memory[0x00:0x00]); }
                    
                        var temp84 = var3 + var5;
                        var5 = temp84;
                    
                        if (var5 + 0x20 > var2) { revert(memory[0x00:0x00]); }
                    
                        var temp85 = var5;
                        var temp86 = msg.data[temp85:temp85 + 0x20];
                        var5 = temp86;
                        var6 = var4;
                        var4 = temp85 + 0x20;
                    
                        if ((var5 > 0x01 << 0x20) | (var4 + var5 * 0x20 > var2)) { revert(memory[0x00:0x00]); }
                    
                        var temp87 = var6;
                        var temp88 = var2;
                        var2 = var4;
                        var temp89 = var3;
                        var3 = var5;
                        var5 = temp89;
                        var4 = temp88;
                        var6 = temp87 + 0x20;
                        var7 = msg.data[temp87:temp87 + 0x20];
                    
                        if (var7 > 0x01 << 0x20) { revert(memory[0x00:0x00]); }
                    
                        var temp90 = var5 + var7;
                        var7 = temp90;
                    
                        if (var7 + 0x20 > var4) { revert(memory[0x00:0x00]); }
                    
                        var temp91 = var7;
                        var temp92 = msg.data[temp91:temp91 + 0x20];
                        var7 = temp92;
                        var temp93 = var6;
                        var6 = temp91 + 0x20;
                        var8 = temp93;
                    
                        if ((var7 > 0x01 << 0x20) | (var6 + var7 * 0x20 > var4)) { revert(memory[0x00:0x00]); }
                    
                        var4 = var6;
                        var5 = var7;
                        var6 = 0x2c26;
                        var6 = 
burn();
                        var6 = var6 & (0x01 << 0xa0) - 0x01;
                        var7 = 0x2c37;
                        var7 = 
owner();
                        var6 = var7 & (0x01 << 0xa0) - 0x01 == var6;
                    
                        if (!var6) {
                            var6 = 0x2c52;
                            var7 = 0x153d;
                            var7 = 
burn();
                            goto label_153D;
                        } else if (!var6) {
                            var temp104 = memory[0x40:0x60];
                            memory[temp104:temp104 + 0x20] = 0x461bcd << 0xe5;
                            memory[temp104 + 0x04:temp104 + 0x04 + 0x20] = 0x20;
                            memory[temp104 + 0x24:temp104 + 0x24 + 0x20] = 0x04;
                            memory[temp104 + 0x44:temp104 + 0x44 + 0x20] = 0x41443031 << 0xe0;
                            var temp105 = memory[0x40:0x60];
                            revert(memory[temp105:temp105 + temp104 - temp105 + 0x64]);
                        } else if (var5 == var3) {
                            var6 = 0x2cd6;
                            var7 = 0x0102;
                            var8 = var2;
                            var9 = var3;
                            var temp94 = var7;
                            var temp95 = storage[temp94];
                            var temp96 = var9;
                            storage[temp94] = temp96;
                            memory[0x00:0x20] = temp94;
                            var10 = keccak256(memory[0x00:0x20]);
                            var temp97 = var8;
                            var8 = var10 + temp95;
                            var11 = temp97;
                        
                            if (!temp96) { goto label_5551; }
                        
                            var temp98 = var9;
                            var temp99 = var11;
                            var9 = temp99;
                            var11 = var9 + temp98 * 0x20;
                        
                            if (var11 <= var9) { goto label_5551; }
                        
                            var temp100 = var9;
                            var temp101 = var10;
                            storage[temp101] = msg.data[temp100:temp100 + 0x20];
                            var9 = temp100 + 0x20;
                            var11 = var11;
                            var10 = temp101 + 0x01;
                            goto label_5536;
                        } else {
                            var temp102 = memory[0x40:0x60];
                            memory[temp102:temp102 + 0x20] = 0x461bcd << 0xe5;
                            memory[temp102 + 0x04:temp102 + 0x04 + 0x20] = 0x20;
                            memory[temp102 + 0x24:temp102 + 0x24 + 0x20] = 0x04;
                            memory[temp102 + 0x44:temp102 + 0x44 + 0x20] = 0x52553031 << 0xe0;
                            var temp103 = memory[0x40:0x60];
                            revert(memory[temp103:temp103 + temp102 - temp103 + 0x64]);
                        }
                    } else if (var0 == 0x8da5cb5b) {
                        // Dispatch table entry for 
owner()
                        var1 = 0x0704;
                        var1 = 
owner();
                        goto label_0704;
                    } else { revert(memory[0x00:0x00]); }
                } else if (var0 == 0x95d89b41) {
                    // Dispatch table entry for 
symbol()
                    var1 = 0x03e8;
                    var1 = 
symbol();
                    goto label_03E8;
                } else if (var0 == 0x97ecb37f) {
                    // Dispatch table entry for 0x97ecb37f (unknown)
                    var1 = 0x0543;
                    var2 = 
func_2E50();
                    goto label_0543;
                } else if (var0 == 0x9af38fbe) {
                    // Dispatch table entry for 
removeRealmAdministrator(address)
                    var1 = 0x04e9;
                    var2 = 0x04;
                    var3 = msg.data.length - var2;
                
                    if (var3 < 0x20) { revert(memory[0x00:0x00]); }
                
                    
removeRealmAdministrator(var2, var3);
                    stop();
                } else if (var0 == 0x9dc29fac) {
                    // Dispatch table entry for 
burn(address,uint256)
                    var1 = 0x04e9;
                    var2 = 0x04;
                    var3 = msg.data.length - var2;
                
                    if (var3 < 0x40) { revert(memory[0x00:0x00]); }
                
                    var temp106 = var2;
                    var2 = msg.data[temp106:temp106 + 0x20] & (0x01 << 0xa0) - 0x01;
                    var3 = msg.data[temp106 + 0x20:temp106 + 0x20 + 0x20];
                    var4 = 0x2f35;
                    var5 = 0x1e70;
                    var5 = 
burn();
                    goto label_1E70;
                } else { revert(memory[0x00:0x00]); }
            } else if (0xb500329b > var0) {
                if (var0 == 0x9ddc1184) {
                    // Dispatch table entry for 
increaseApprovalWithAuthorization(address,address,uint256,uint256,uint256,bytes32,uint8,bytes32,bytes32)
                    var1 = 0x04e9;
                    var2 = 0x04;
                    var3 = msg.data.length - var2;
                
                    if (var3 < 0x0120) { revert(memory[0x00:0x00]); }
                
                    
increaseApprovalWithAuthorization(var2, var3);
                    stop();
                } else if (var0 == 0xa0cc6a68) {
                    // Dispatch table entry for 
TRANSFER_WITH_AUTHORIZATION_TYPEHASH()
                    var1 = 0x0543;
                    var2 = 
TRANSFER_WITH_AUTHORIZATION_TYPEHASH();
                    goto label_0543;
                } else if (var0 == 0xa9059cbb) {
                    // Dispatch table entry for 
transfer(address,uint256)
                    var1 = 0x0489;
                    var2 = 0x04;
                    var3 = msg.data.length - var2;
                
                    if (var3 < 0x40) { revert(memory[0x00:0x00]); }
                
                    var1 = 
transfer(var2, var3);
                    goto label_0489;
                } else if (var0 == 0xac3e6742) {
                    // Dispatch table entry for 
realm()
                    var1 = 0x0704;
                    var1 = 
realm();
                    goto label_0704;
                } else { revert(memory[0x00:0x00]); }
            } else if (var0 == 0xb500329b) {
                // Dispatch table entry for 
setRealm(address)
                var1 = 0x04e9;
                var2 = 0x04;
                var3 = msg.data.length - var2;
            
                if (var3 < 0x20) { revert(memory[0x00:0x00]); }
            
                
setRealm(var2, var3);
                stop();
            } else if (var0 == 0xb9be0ed3) {
                // Dispatch table entry for 
trustedIntermediaries()
                var1 = 0x0d1d;
                var1 = 
trustedIntermediaries();
                var temp107 = memory[0x40:0x60];
                memory[temp107:temp107 + 0x20] = 0x20;
                var temp108 = var1;
                memory[temp107 + 0x20:temp107 + 0x20 + 0x20] = memory[temp108:temp108 + 0x20];
                var2 = temp107;
                var3 = var2;
                var4 = var3 + 0x40;
                var5 = temp108 + 0x20;
                var6 = memory[temp108:temp108 + 0x20] * 0x20;
                var7 = var6;
                var8 = var4;
                var9 = var5;
                var10 = 0x00;
            
                if (var10 >= var7) {
                label_0D59:
                    var temp109 = memory[0x40:0x60];
                    return memory[temp109:temp109 + (var6 + var4) - temp109];
                } else {
                label_0D4A:
                    var temp110 = var10;
                    memory[temp110 + var8:temp110 + var8 + 0x20] = memory[temp110 + var9:temp110 + var9 + 0x20];
                    var10 = temp110 + 0x20;
                
                    if (var10 >= var7) { goto label_0D59; }
                    else { goto label_0D4A; }
                }
            } else if (var0 == 0xba7b52e0) {
                // Dispatch table entry for 0xba7b52e0 (unknown)
                var1 = 0x04e9;
                var2 = 0x04;
                var3 = msg.data.length - var2;
            
                if (var3 < 0x60) { revert(memory[0x00:0x00]); }
            
                
func_0D83(var2, var3);
                stop();
            } else if (var0 == 0xc9991176) {
                // Dispatch table entry for 
addAdministrator(address)
                var1 = 0x04e9;
                var2 = 0x04;
                var3 = msg.data.length - var2;
            
                if (var3 < 0x20) { revert(memory[0x00:0x00]); }
            
                
addAdministrator(var2, var3);
                stop();
            } else { revert(memory[0x00:0x00]); }
        } else if (0xe1560fd3 > var0) {
            if (0xd9169487 > var0) {
                if (var0 == 0xcc01053e) {
                    // Dispatch table entry for 
upgradeToV2()
                    var1 = 0x04e9;
                    
upgradeToV2();
                    stop();
                } else if (var0 == 0xce1b1d43) {
                    // Dispatch table entry for 
processor()
                    var1 = 0x0704;
                    var1 = 
processor();
                    goto label_0704;
                } else if (var0 == 0xd505accf) {
                    // Dispatch table entry for 
permit(address,address,uint256,uint256,uint8,bytes32,bytes32)
                    var1 = 0x04e9;
                    var2 = 0x04;
                    var3 = msg.data.length - var2;
                
                    if (var3 < 0xe0) { revert(memory[0x00:0x00]); }
                
                    
permit(var2, var3);
                    stop();
                } else if (var0 == 0xd73dd623) {
                    // Dispatch table entry for increaseApproval(address,uint256)
                    var1 = 0x04e9;
                    var2 = 0x04;
                    var3 = msg.data.length - var2;
                
                    if (var3 < 0x40) { revert(memory[0x00:0x00]); }
                
                    var temp111 = var2;
                    var2 = msg.data[temp111:temp111 + 0x20] & (0x01 << 0xa0) - 0x01;
                    var3 = msg.data[temp111 + 0x20:temp111 + 0x20 + 0x20];
                
                    if (storage[0x97] & (0x01 << 0xa0) - 0x01) {
                        var4 = 0x2521;
                        var5 = 0x3a72;
                        var5 = 
burn();
                        
func_3A72(var2, var3, var5);
                        goto label_2521;
                    } else {
                        var temp112 = memory[0x40:0x60];
                        memory[temp112:temp112 + 0x20] = 0x461bcd << 0xe5;
                        memory[temp112 + 0x04:temp112 + 0x04 + 0x20] = 0x20;
                        memory[temp112 + 0x24:temp112 + 0x24 + 0x20] = 0x04;
                        memory[temp112 + 0x44:temp112 + 0x44 + 0x20] = 0x50523031 << 0xe0;
                        var temp113 = memory[0x40:0x60];
                        revert(memory[temp113:temp113 + temp112 - temp113 + 0x64]);
                    }
                } else { revert(memory[0x00:0x00]); }
            } else if (var0 == 0xd9169487) {
                // Dispatch table entry for 
CANCEL_AUTHORIZATION_TYPEHASH()
                var1 = 0x0543;
                var2 = 
CANCEL_AUTHORIZATION_TYPEHASH();
                goto label_0543;
            } else if (var0 == 0xda2f030f) {
                // Dispatch table entry for 
isRealmAdministrator(address)
                var1 = 0x0489;
                var2 = 0x04;
                var3 = msg.data.length - var2;
            
                if (var3 < 0x20) { revert(memory[0x00:0x00]); }
            
                var2 = msg.data[var2:var2 + 0x20] & (0x01 << 0xa0) - 0x01;
                var3 = 0x00;
                var4 = 0x14f0;
                var5 = 0x99;
                var6 = var2;
                var4 = 
isRealmAdministrator(var5, var6);
                goto label_14F0;
            } else if (var0 == 0xdb18af6c) {
                // Dispatch table entry for 
rule(uint256)
                var1 = 0x0f39;
                var2 = 0x04;
                var3 = msg.data.length - var2;
            
                if (var3 < 0x20) { revert(memory[0x00:0x00]); }
            
                var1, var2 = 
rule(var2, var3);
                var temp114 = memory[0x40:0x60];
                memory[temp114:temp114 + 0x20] = var1;
                memory[temp114 + 0x20:temp114 + 0x20 + 0x20] = var2;
                var temp115 = memory[0x40:0x60];
                return memory[temp115:temp115 + temp114 - temp115 + 0x40];
            } else if (var0 == 0xdd62ed3e) {
                // Dispatch table entry for 
allowance(address,address)
                var1 = 0x0543;
                var2 = 0x04;
                var3 = msg.data.length - var2;
            
                if (var3 < 0x40) { revert(memory[0x00:0x00]); }
            
                var1 = 
allowance(var2, var3);
                goto label_0543;
            } else { revert(memory[0x00:0x00]); }
        } else if (0xeb9253c0 > var0) {
            if (var0 == 0xe1560fd3) {
                // Dispatch table entry for 
approveWithAuthorization(address,address,uint256,uint256,uint256,bytes32,uint8,bytes32,bytes32)
                var1 = 0x04e9;
                var2 = 0x04;
                var3 = msg.data.length - var2;
            
                if (var3 < 0x0120) { revert(memory[0x00:0x00]); }
            
                
approveWithAuthorization(var2, var3);
                stop();
            } else if (var0 == 0xe1a8eafd) {
                // Dispatch table entry for 
setProcessor(address)
                var1 = 0x04e9;
                var2 = 0x04;
                var3 = msg.data.length - var2;
            
                if (var3 < 0x20) { revert(memory[0x00:0x00]); }
            
                
setProcessor(var2, var3);
                stop();
            } else if (var0 == 0xe3ee160e) {
                // Dispatch table entry for 
transferWithAuthorization(address,address,uint256,uint256,uint256,bytes32,uint8,bytes32,bytes32)
                var1 = 0x04e9;
                var2 = 0x04;
                var3 = msg.data.length - var2;
            
                if (var3 < 0x0120) { revert(memory[0x00:0x00]); }
            
                
transferWithAuthorization(var2, var3);
                stop();
            } else if (var0 == 0xe46638e6) {
                // Dispatch table entry for 
canTransfer(address,address,uint256)
                var1 = 0x109a;
                var2 = 0x04;
                var3 = msg.data.length - var2;
            
                if (var3 < 0x60) { revert(memory[0x00:0x00]); }
            
                var1, var2, var3 = 
canTransfer(var2);
                var temp116 = memory[0x40:0x60];
                memory[temp116:temp116 + 0x20] = !!var1;
                memory[temp116 + 0x20:temp116 + 0x20 + 0x20] = var2;
                memory[temp116 + 0x40:temp116 + 0x40 + 0x20] = var3;
                var temp117 = memory[0x40:0x60];
                return memory[temp117:temp117 + temp116 - temp117 + 0x60];
            } else { revert(memory[0x00:0x00]); }
        } else if (var0 == 0xeb9253c0) {
            // Dispatch table entry for seize(address,uint256)
            var1 = 0x04e9;
            var2 = 0x04;
            var3 = msg.data.length - var2;
        
            if (var3 < 0x40) { revert(memory[0x00:0x00]); }
        
            var temp118 = var2;
            var2 = msg.data[temp118:temp118 + 0x20] & (0x01 << 0xa0) - 0x01;
            var3 = msg.data[temp118 + 0x20:temp118 + 0x20 + 0x20];
            var4 = 0x402b;
            var5 = 0x4026;
            var5 = 
burn();
        
        label_4368:
            var6 = 0x00;
            var7 = 0x14f0;
            var8 = 0xcf;
            var9 = var5;
            var7 = 
isRealmAdministrator(var8, var9);
            goto label_14F0;
        } else if (var0 == 0xf2fde38b) {
            // Dispatch table entry for 
transferOwnership(address)
            var1 = 0x04e9;
            var2 = 0x04;
            var3 = msg.data.length - var2;
        
            if (var3 < 0x20) { revert(memory[0x00:0x00]); }
        
            
transferOwnership(var2, var3);
            stop();
        } else if (var0 == 0xf65d6638) {
            // Dispatch table entry for 0xf65d6638 (unknown)
            var1 = 0x04e9;
            var2 = 0x04;
            var3 = msg.data.length - var2;
        
            if (var3 < 0xc0) { revert(memory[0x00:0x00]); }
        
            var temp119 = (0x01 << 0xa0) - 0x01;
            var temp120 = var2;
            var2 = temp119 & msg.data[temp120:temp120 + 0x20];
            var temp121 = var3;
            var3 = temp119 & msg.data[temp120 + 0x20:temp120 + 0x20 + 0x20];
            var5 = temp120;
            var4 = var5 + temp121;
            var6 = var5 + 0x60;
            var7 = msg.data[var5 + 0x40:var5 + 0x40 + 0x20];
        
            if (var7 > 0x01 << 0x20) { revert(memory[0x00:0x00]); }
        
            var temp122 = var5 + var7;
            var7 = temp122;
        
            if (var7 + 0x20 > var4) { revert(memory[0x00:0x00]); }
        
            var temp123 = var7;
            var temp124 = msg.data[temp123:temp123 + 0x20];
            var7 = temp124;
            var8 = var6;
            var6 = temp123 + 0x20;
        
            if ((var7 > 0x01 << 0x20) | (var6 + var7 > var4)) { revert(memory[0x00:0x00]); }
        
            var temp125 = var8;
            var temp126 = var7;
            var temp127 = memory[0x40:0x60];
            memory[0x40:0x60] = temp127 + (temp126 + 0x1f) / 0x20 * 0x20 + 0x20;
            memory[temp127:temp127 + 0x20] = temp126;
            var temp128 = temp127 + 0x20;
            memory[temp128:temp128 + temp126] = msg.data[var6:var6 + temp126];
            memory[temp128 + temp126:temp128 + temp126 + 0x20] = 0x00;
            var temp129 = var4;
            var4 = temp127;
            var temp130 = var5;
            var5 = temp129;
            var6 = temp130;
            var7 = temp125 + 0x20;
            var8 = msg.data[temp125:temp125 + 0x20];
        
            if (var8 > 0x01 << 0x20) { revert(memory[0x00:0x00]); }
        
            var temp131 = var6 + var8;
            var8 = temp131;
        
            if (var8 + 0x20 > var5) { revert(memory[0x00:0x00]); }
        
            var temp132 = var8;
            var temp133 = msg.data[temp132:temp132 + 0x20];
            var8 = temp133;
            var9 = var7;
            var7 = temp132 + 0x20;
        
            if ((var8 > 0x01 << 0x20) | (var7 + var8 > var5)) { revert(memory[0x00:0x00]); }
        
            var temp134 = var9;
            var temp135 = var8;
            var temp136 = memory[0x40:0x60];
            memory[0x40:0x60] = temp136 + (temp135 + 0x1f) / 0x20 * 0x20 + 0x20;
            memory[temp136:temp136 + 0x20] = temp135;
            var temp137 = temp136 + 0x20;
            memory[temp137:temp137 + temp135] = msg.data[var7:var7 + temp135];
            memory[temp137 + temp135:temp137 + temp135 + 0x20] = 0x00;
            var temp138 = var5;
            var5 = temp136;
            var temp139 = var6;
            var6 = msg.data[temp134:temp134 + 0x20] & 0xff;
            var7 = temp138;
            var8 = temp139;
            var9 = temp134 + 0x40;
            var10 = msg.data[temp134 + 0x20:temp134 + 0x20 + 0x20];
        
            if (var10 > 0x01 << 0x20) { revert(memory[0x00:0x00]); }
        
            var temp140 = var8 + var10;
            var10 = temp140;
        
            if (var10 + 0x20 > var7) { revert(memory[0x00:0x00]); }
        
            var temp141 = var10;
            var temp142 = msg.data[temp141:temp141 + 0x20];
            var10 = temp142;
            var temp143 = var9;
            var9 = temp141 + 0x20;
            var11 = temp143;
        
            if ((var10 > 0x01 << 0x20) | (var9 + var10 * 0x20 > var7)) { revert(memory[0x00:0x00]); }
        
            var temp144 = var10;
            var temp145 = memory[0x40:0x60];
            memory[0x40:0x60] = temp145 + temp144 * 0x20 + 0x20;
            memory[temp145:temp145 + 0x20] = temp144;
            var temp146 = temp145 + 0x20;
            var temp147 = temp144 * 0x20;
            memory[temp146:temp146 + temp147] = msg.data[var9:var9 + temp147];
            memory[temp146 + temp147:temp146 + temp147 + 0x20] = 0x00;
            var7 = temp145;
            var8 = storage[0x00] / 0x0100 & 0xff;
        
            if (var8) {
            label_42CB:
            
                if (var8) {
                    if (var8) {
                    label_4314:
                        var8 = !(storage[0x00] / 0x0100 & 0xff);
                    
                        if (!var8) {
                            var9 = 0x434d;
                            var10 = var2;
                            var11 = var3;
                            var12 = var4;
                            var var13 = var5;
                            var var14 = var6;
                            var var15 = var7;
                        
                        label_4D46:
                            var var16 = storage[0x00] / 0x0100 & 0xff;
                        
                            if (var16) {
                            label_4D5F:
                            
                                if (var16) {
                                    if (var16) {
                                    label_4DA8:
                                        var16 = !(storage[0x00] / 0x0100 & 0xff);
                                    
                                        if (!var16) {
                                            var var17 = 0x4ddd;
                                            var var18 = var10;
                                            var var19 = var11;
                                            goto label_20E3;
                                        } else {
                                            storage[0x00] = (((storage[0x00] & ~0xff00) | 0x0100) & ~0xff) | 0x01;
                                            var17 = 0x4ddd;
                                            var18 = var10;
                                            var19 = var11;
                                            goto label_20E3;
                                        }
                                    } else {
                                    label_4D72:
                                        var temp148 = memory[0x40:0x60];
                                        memory[temp148:temp148 + 0x20] = 0x461bcd << 0xe5;
                                        var temp149 = temp148 + 0x04;
                                        var temp150 = temp149 + 0x20;
                                        memory[temp149:temp149 + 0x20] = temp150 - temp149;
                                        memory[temp150:temp150 + 0x20] = 0x2e;
                                        var temp151 = temp150 + 0x20;
                                        memory[temp151:temp151 + 0x2e] = code[0x56fb:0x5729];
                                        var temp152 = memory[0x40:0x60];
                                        revert(memory[temp152:temp152 + (temp151 + 0x40) - temp152]);
                                    }
                                } else if (!(storage[0x00] & 0xff)) { goto label_4DA8; }
                                else { goto label_4D72; }
                            } else {
                                var16 = 0x4d5f;
                                var16 = 
func_48EF();
                                goto label_4D5F;
                            }
                        } else {
                            storage[0x00] = (((storage[0x00] & ~0xff00) | 0x0100) & ~0xff) | 0x01;
                            var9 = 0x434d;
                            var10 = var2;
                            var11 = var3;
                            var12 = var4;
                            var13 = var5;
                            var14 = var6;
                            var15 = var7;
                            goto label_4D46;
                        }
                    } else {
                    label_42DE:
                        var temp153 = memory[0x40:0x60];
                        memory[temp153:temp153 + 0x20] = 0x461bcd << 0xe5;
                        var temp154 = temp153 + 0x04;
                        var temp155 = temp154 + 0x20;
                        memory[temp154:temp154 + 0x20] = temp155 - temp154;
                        memory[temp155:temp155 + 0x20] = 0x2e;
                        var temp156 = temp155 + 0x20;
                        memory[temp156:temp156 + 0x2e] = code[0x56fb:0x5729];
                        var temp157 = memory[0x40:0x60];
                        revert(memory[temp157:temp157 + (temp156 + 0x40) - temp157]);
                    }
                } else if (!(storage[0x00] & 0xff)) { goto label_4314; }
                else { goto label_42DE; }
            } else {
                var8 = 0x42cb;
                var8 = 
func_48EF();
                goto label_42CB;
            }
        } else if (var0 == 0xfc700bd1) {
            // Dispatch table entry for isSeizer(address)
            var1 = 0x0489;
            var2 = 0x04;
            var3 = msg.data.length - var2;
        
            if (var3 < 0x20) { revert(memory[0x00:0x00]); }
        
            var2 = msg.data[var2:var2 + 0x20] & (0x01 << 0xa0) - 0x01;
            goto label_4368;
        } else if (var0 == 0xffa1ad74) {
            // Dispatch table entry for 
VERSION()
            var1 = 0x0543;
            var2 = 
VERSION();
            goto label_0543;
        } else { revert(memory[0x00:0x00]); }
    }
    
    function removeSupplier(var arg0, var arg1) {
        arg0 = msg.data[arg0:arg0 + 0x20] & (0x01 << 0xa0) - 0x01;
        arg1 = 0x1511;
        arg1 = 
burn();
        arg1 = arg1 & (0x01 << 0xa0) - 0x01;
        var var0 = 0x1522;
        var0 = 
owner();
        arg1 = var0 & (0x01 << 0xa0) - 0x01 == arg1;
    
        if (!arg1) {
            arg1 = 0x1542;
            var0 = 0x153d;
            var0 = 
burn();
            var1 = 0x00;
            var var2 = 0x14f0;
            var var3 = 0x98;
            var var4 = var0;
            var2 = 
isRealmAdministrator(var3, var4);
            arg1 = var2;
            // Error: Could not resolve jump destination!
        } else if (arg1) {
            arg1 = 0x158e;
            var0 = 0x0101;
            var var1 = arg0;
            
func_44A7(var0, var1);
            log(memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x00], [0x278a641d7aa9abcb166cd13a30fc6d7f21034d4c003ce509a84214e11faa77c0, stack[-1] & (0x01 << 0xa0) - 0x01]);
            return;
        } else {
            var temp0 = memory[0x40:0x60];
            memory[temp0:temp0 + 0x20] = 0x461bcd << 0xe5;
            memory[temp0 + 0x04:temp0 + 0x04 + 0x20] = 0x20;
            memory[temp0 + 0x24:temp0 + 0x24 + 0x20] = 0x04;
            memory[temp0 + 0x44:temp0 + 0x44 + 0x20] = 0x41443031 << 0xe0;
            var temp1 = memory[0x40:0x60];
            revert(memory[temp1:temp1 + temp0 - temp1 + 0x64]);
        }
    }
    
    function func_0501(var arg0, var arg1) returns (var arg0) {
        var temp0 = arg0;
        arg0 = msg.data[temp0:temp0 + 0x20] & (0x01 << 0xa0) - 0x01;
        arg1 = msg.data[temp0 + 0x20:temp0 + 0x20 + 0x20];
        memory[0x20:0x40] = 0x0107;
        memory[0x00:0x20] = arg0;
        memory[0x20:0x40] = keccak256(memory[0x00:0x40]);
        memory[0x00:0x20] = arg1;
        return storage[keccak256(memory[0x00:0x40])] & 0xff;
    }
    
    function bulkTransfer(var arg0, var arg1) {
        var temp0 = arg0;
        arg0 = temp0 + arg1;
        arg1 = temp0;
        var var0 = arg1 + 0x20;
        var var1 = msg.data[arg1:arg1 + 0x20];
    
        if (var1 > 0x01 << 0x20) { revert(memory[0x00:0x00]); }
    
        var temp1 = arg1 + var1;
        var1 = temp1;
    
        if (var1 + 0x20 > arg0) { revert(memory[0x00:0x00]); }
    
        var temp2 = var1;
        var temp3 = msg.data[temp2:temp2 + 0x20];
        var1 = temp3;
        var temp4 = var0;
        var0 = temp2 + 0x20;
        var var2 = temp4;
    
        if ((var1 > 0x01 << 0x20) | (var0 + var1 * 0x20 > arg0)) { revert(memory[0x00:0x00]); }
    
        var temp5 = var2;
        var temp6 = arg0;
        arg0 = var0;
        var temp7 = arg1;
        arg1 = var1;
        var1 = temp7;
        var0 = temp6;
        var2 = temp5 + 0x20;
        var var3 = msg.data[temp5:temp5 + 0x20];
    
        if (var3 > 0x01 << 0x20) { revert(memory[0x00:0x00]); }
    
        var temp8 = var1 + var3;
        var3 = temp8;
    
        if (var3 + 0x20 > var0) { revert(memory[0x00:0x00]); }
    
        var temp9 = var3;
        var temp10 = msg.data[temp9:temp9 + 0x20];
        var3 = temp10;
        var var4 = var2;
        var2 = temp9 + 0x20;
    
        if ((var3 > 0x01 << 0x20) | (var2 + var3 * 0x20 > var0)) { revert(memory[0x00:0x00]); }
    
        var0 = var2;
        var1 = var3;
    
        if (!(storage[0x97] & (0x01 << 0xa0) - 0x01)) {
            var temp13 = memory[0x40:0x60];
            memory[temp13:temp13 + 0x20] = 0x461bcd << 0xe5;
            memory[temp13 + 0x04:temp13 + 0x04 + 0x20] = 0x20;
            memory[temp13 + 0x24:temp13 + 0x24 + 0x20] = 0x04;
            memory[temp13 + 0x44:temp13 + 0x44 + 0x20] = 0x50523031 << 0xe0;
            var temp14 = memory[0x40:0x60];
            revert(memory[temp14:temp14 + temp13 - temp14 + 0x64]);
        } else if (var1 == arg1) {
            var2 = 0x00;
        
            if (var2 >= arg1) {
            label_16E2:
                return;
            } else {
            label_1699:
                var3 = 0x16d7;
                var4 = 0x16a3;
                var4 = 
burn();
                var var5;
                var3, var4, var5 = 
func_16A3(arg0, arg1, var0, var1, var2, var4);
                var2 = var2 + 0x01;
            
                if (var2 >= arg1) { goto label_16E2; }
                else { goto label_1699; }
            }
        } else {
            var temp11 = memory[0x40:0x60];
            memory[temp11:temp11 + 0x20] = 0x461bcd << 0xe5;
            memory[temp11 + 0x04:temp11 + 0x04 + 0x20] = 0x20;
            memory[temp11 + 0x24:temp11 + 0x24 + 0x20] = 0x04;
            memory[temp11 + 0x44:temp11 + 0x44 + 0x20] = 0x424b3031 << 0xe0;
            var temp12 = memory[0x40:0x60];
            revert(memory[temp12:temp12 + temp11 - temp12 + 0x64]);
        }
    }
    
    function addSupplier(var arg0, var arg1) {
        arg0 = msg.data[arg0:arg0 + 0x20] & (0x01 << 0xa0) - 0x01;
        arg1 = 0x16f1;
        arg1 = 
burn();
        arg1 = arg1 & (0x01 << 0xa0) - 0x01;
        var var0 = 0x1702;
        var0 = 
owner();
        arg1 = var0 & (0x01 << 0xa0) - 0x01 == arg1;
    
        if (!arg1) {
            arg1 = 0x171d;
            var0 = 0x153d;
            var0 = 
burn();
            var1 = 0x00;
            var var2 = 0x14f0;
            var var3 = 0x98;
            var var4 = var0;
            var2 = 
isRealmAdministrator(var3, var4);
            arg1 = var2;
            // Error: Could not resolve jump destination!
        } else if (arg1) {
            arg1 = 0x1769;
            var0 = 0x0101;
            var var1 = arg0;
            
func_45EB(var0, var1);
            log(memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x00], [0xa9f13e94f3f7dbf69ac8405e3aa6f43a6f162984687d099c7a5cd9b602552cc2, stack[-1] & (0x01 << 0xa0) - 0x01]);
            return;
        } else {
            var temp0 = memory[0x40:0x60];
            memory[temp0:temp0 + 0x20] = 0x461bcd << 0xe5;
            memory[temp0 + 0x04:temp0 + 0x04 + 0x20] = 0x20;
            memory[temp0 + 0x24:temp0 + 0x24 + 0x20] = 0x04;
            memory[temp0 + 0x44:temp0 + 0x44 + 0x20] = 0x41443031 << 0xe0;
            var temp1 = memory[0x40:0x60];
            revert(memory[temp1:temp1 + temp0 - temp1 + 0x64]);
        }
    }
    
    function removeSeizer(var arg0, var arg1) {
        arg0 = msg.data[arg0:arg0 + 0x20] & (0x01 << 0xa0) - 0x01;
        arg1 = 0x1870;
        arg1 = 
burn();
        arg1 = arg1 & (0x01 << 0xa0) - 0x01;
        var var0 = 0x1881;
        var0 = 
owner();
        arg1 = var0 & (0x01 << 0xa0) - 0x01 == arg1;
    
        if (!arg1) {
            arg1 = 0x189c;
            var0 = 0x153d;
            var0 = 
burn();
            var1 = 0x00;
            var var2 = 0x14f0;
            var var3 = 0x98;
            var var4 = var0;
            var2 = 
isRealmAdministrator(var3, var4);
            arg1 = var2;
            // Error: Could not resolve jump destination!
        } else if (arg1) {
            arg1 = 0x18e7;
            var0 = 0xcf;
            var var1 = arg0;
            
func_44A7(var0, var1);
            log(memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x00], [0xa7f68f710154f785d34ef4848d515daaf136408524b79a717c82015f9e71fd04, stack[-1] & (0x01 << 0xa0) - 0x01]);
            return;
        } else {
            var temp0 = memory[0x40:0x60];
            memory[temp0:temp0 + 0x20] = 0x461bcd << 0xe5;
            memory[temp0 + 0x04:temp0 + 0x04 + 0x20] = 0x20;
            memory[temp0 + 0x24:temp0 + 0x24 + 0x20] = 0x04;
            memory[temp0 + 0x44:temp0 + 0x44 + 0x20] = 0x41443031 << 0xe0;
            var temp1 = memory[0x40:0x60];
            revert(memory[temp1:temp1 + temp0 - temp1 + 0x64]);
        }
    }
    
    function decreaseApprovalWithAuthorization(var arg0, var arg1) {
        var temp0 = (0x01 << 0xa0) - 0x01;
        var temp1 = arg0;
        arg0 = temp0 & msg.data[temp1:temp1 + 0x20];
        arg1 = temp0 & msg.data[temp1 + 0x20:temp1 + 0x20 + 0x20];
        var var0 = msg.data[temp1 + 0x40:temp1 + 0x40 + 0x20];
        var var1 = msg.data[temp1 + 0x60:temp1 + 0x60 + 0x20];
        var var2 = msg.data[temp1 + 0x80:temp1 + 0x80 + 0x20];
        var var3 = msg.data[temp1 + 0xa0:temp1 + 0xa0 + 0x20];
        var var4 = msg.data[temp1 + 0xc0:temp1 + 0xc0 + 0x20] & 0xff;
        var var5 = msg.data[temp1 + 0xe0:temp1 + 0xe0 + 0x20];
        var var6 = msg.data[temp1 + 0x0100:temp1 + 0x0100 + 0x20];
    
        if (storage[0x97] & (0x01 << 0xa0) - 0x01) {
            var var7 = 0x1970;
            var var8 = arg0;
            var var9 = var3;
            var var10 = var1;
            var var11 = var2;
            
func_466C(var8, var9, var10, var11);
            var temp2 = memory[0x40:0x60];
            memory[temp2 + 0x20:temp2 + 0x20 + 0x20] = 0x604bdf0208a879f7d9fa63ff2f539804aaf6f7876eaa13d531bdc957f1c0284f;
            var temp3 = (0x01 << 0xa0) - 0x01;
            memory[temp2 + 0x40:temp2 + 0x40 + 0x20] = arg0 & temp3;
            memory[temp2 + 0x60:temp2 + 0x60 + 0x20] = arg1 & temp3;
            memory[temp2 + 0x80:temp2 + 0x80 + 0x20] = var0;
            memory[temp2 + 0xa0:temp2 + 0xa0 + 0x20] = var1;
            memory[temp2 + 0xc0:temp2 + 0xc0 + 0x20] = var2;
            memory[temp2 + 0xe0:temp2 + 0xe0 + 0x20] = var3;
            var temp4 = memory[0x40:0x60];
            memory[temp4:temp4 + 0x20] = temp2 - temp4 + 0xe0;
            memory[0x40:0x60] = temp2 + 0x0100;
            var7 = temp4;
            var8 = arg0 & temp3;
            var9 = 0x19f7;
            var10 = storage[0x0105];
            var11 = var4;
            var var12 = var5;
            var var13 = var6;
            var var14 = var7;
            var9 = 
func_46F6(var10, var11, var12, var13, var14);
        
            if (var9 & (0x01 << 0xa0) - 0x01 == var8) {
                var8 = 0x1a45;
                var9 = arg0;
                var10 = var3;
                
func_474D(var9, var10);
                var8 = 0x1a50;
                var9 = arg0;
                var10 = arg1;
                var11 = var0;
                
func_47A8(var9, var10, var11);
                return;
            } else {
                var temp5 = memory[0x40:0x60];
                memory[temp5:temp5 + 0x20] = 0x461bcd << 0xe5;
                memory[temp5 + 0x04:temp5 + 0x04 + 0x20] = 0x20;
                memory[temp5 + 0x24:temp5 + 0x24 + 0x20] = 0x04;
                memory[temp5 + 0x44:temp5 + 0x44 + 0x20] = 0x53493031 << 0xe0;
                var temp6 = memory[0x40:0x60];
                revert(memory[temp6:temp6 + temp5 - temp6 + 0x64]);
            }
        } else {
            var temp7 = memory[0x40:0x60];
            memory[temp7:temp7 + 0x20] = 0x461bcd << 0xe5;
            memory[temp7 + 0x04:temp7 + 0x04 + 0x20] = 0x20;
            memory[temp7 + 0x24:temp7 + 0x24 + 0x20] = 0x04;
            memory[temp7 + 0x44:temp7 + 0x44 + 0x20] = 0x50523031 << 0xe0;
            var temp8 = memory[0x40:0x60];
            revert(memory[temp8:temp8 + temp7 - temp8 + 0x64]);
        }
    }
    
    function transferFrom(var arg0, var arg1) returns (var r0) {
        var temp0 = (0x01 << 0xa0) - 0x01;
        var temp1 = arg0;
        arg0 = temp0 & msg.data[temp1:temp1 + 0x20];
        arg1 = temp0 & msg.data[temp1 + 0x20:temp1 + 0x20 + 0x20];
        var var0 = msg.data[temp1 + 0x40:temp1 + 0x40 + 0x20];
        var var1 = 0x00;
    
        if (storage[0x97] & (0x01 << 0xa0) - 0x01) {
            var var2 = storage[0x97] & (0x01 << 0xa0) - 0x01;
            var var3 = 0xdd62ed3e;
            var var4 = arg0;
            var var5 = 0x1abf;
            var5 = 
burn();
            var temp2 = memory[0x40:0x60];
            memory[temp2:temp2 + 0x20] = (var3 & 0xffffffff) << 0xe0;
            var temp3 = temp2 + 0x04;
            memory[temp3:temp3 + 0x20] = var4 & (0x01 << 0xa0) - 0x01 & (0x01 << 0xa0) - 0x01;
            var temp4 = temp3 + 0x20;
            memory[temp4:temp4 + 0x20] = var5 & (0x01 << 0xa0) - 0x01 & (0x01 << 0xa0) - 0x01;
            var4 = temp4 + 0x20;
            var5 = 0x20;
            var var6 = memory[0x40:0x60];
            var var7 = var4 - var6;
            var var8 = var6;
            var var9 = var2;
            var var10 = !address(var9).code.length;
        
            if (var10) { revert(memory[0x00:0x00]); }
        
            var temp5;
            temp5, memory[var6:var6 + var5] = address(var9).staticcall.gas(msg.gas)(memory[var8:var8 + var7]);
            var5 = !temp5;
        
            if (!var5) {
                var2 = memory[0x40:0x60];
                var3 = returndata.length;
            
                if (var3 < 0x20) { revert(memory[0x00:0x00]); }
            
                if (var0 <= memory[var2:var2 + 0x20]) {
                    var2 = 0x00;
                    var3 = var2;
                    var4 = 0x00;
                    var5 = 0x1b97;
                    var6 = arg0;
                    var7 = arg1;
                    var8 = var0;
                    var5, var6, var7 = 
func_450E(var6, var7, var8);
                    var2 = var5;
                    var3 = var6;
                    var4 = var7;
                    var5 = storage[0x97] & (0x01 << 0xa0) - 0x01;
                    var6 = 0xf019c267;
                    var7 = arg0;
                    var8 = 0x1bb9;
                    var8 = 
burn();
                    var temp6 = memory[0x40:0x60];
                    memory[temp6:temp6 + 0x20] = (var6 & 0xffffffff) << 0xe0;
                    var temp7 = temp6 + 0x04;
                    memory[temp7:temp7 + 0x20] = var7 & (0x01 << 0xa0) - 0x01 & (0x01 << 0xa0) - 0x01;
                    var temp8 = temp7 + 0x20;
                    memory[temp8:temp8 + 0x20] = var8 & (0x01 << 0xa0) - 0x01 & (0x01 << 0xa0) - 0x01;
                    var temp9 = temp8 + 0x20;
                    memory[temp9:temp9 + 0x20] = var4;
                    var7 = temp9 + 0x20;
                    var8 = 0x00;
                    var9 = memory[0x40:0x60];
                    var10 = var7 - var9;
                    var var11 = var9;
                    var var12 = 0x00;
                    var var13 = var5;
                    var var14 = !address(var13).code.length;
                
                    if (var14) { revert(memory[0x00:0x00]); }
                
                    var temp10;
                    temp10, memory[var9:var9 + var8] = address(var13).call.gas(msg.gas).value(var12)(memory[var11:var11 + var10]);
                    var8 = !temp10;
                
                    if (!var8) { return 0x01; }
                
                    var temp11 = returndata.length;
                    memory[0x00:0x00 + temp11] = returndata[0x00:0x00 + temp11];
                    revert(memory[0x00:0x00 + returndata.length]);
                } else {
                    var temp12 = memory[0x40:0x60];
                    memory[temp12:temp12 + 0x20] = 0x461bcd << 0xe5;
                    memory[temp12 + 0x04:temp12 + 0x04 + 0x20] = 0x20;
                    memory[temp12 + 0x24:temp12 + 0x24 + 0x20] = 0x04;
                    memory[temp12 + 0x44:temp12 + 0x44 + 0x20] = 0x414c3031 << 0xe0;
                    var temp13 = memory[0x40:0x60];
                    revert(memory[temp13:temp13 + temp12 - temp13 + 0x64]);
                }
            } else {
                var temp14 = returndata.length;
                memory[0x00:0x00 + temp14] = returndata[0x00:0x00 + temp14];
                revert(memory[0x00:0x00 + returndata.length]);
            }
        } else {
            var temp15 = memory[0x40:0x60];
            memory[temp15:temp15 + 0x20] = 0x461bcd << 0xe5;
            memory[temp15 + 0x04:temp15 + 0x04 + 0x20] = 0x20;
            memory[temp15 + 0x24:temp15 + 0x24 + 0x20] = 0x04;
            memory[temp15 + 0x44:temp15 + 0x44 + 0x20] = 0x50523031 << 0xe0;
            var temp16 = memory[0x40:0x60];
            revert(memory[temp16:temp16 + temp15 - temp16 + 0x64]);
        }
    }
    
    function addRealmAdministrator(var arg0, var arg1) {
        arg0 = msg.data[arg0:arg0 + 0x20] & (0x01 << 0xa0) - 0x01;
        arg1 = 0x1db7;
        arg1 = 
burn();
        arg1 = arg1 & (0x01 << 0xa0) - 0x01;
        var var0 = 0x1dc8;
        var0 = 
owner();
        arg1 = var0 & (0x01 << 0xa0) - 0x01 == arg1;
    
        if (!arg1) {
            arg1 = 0x1de3;
            var0 = 0x153d;
            var0 = 
burn();
            var1 = 0x00;
            var var2 = 0x14f0;
            var var3 = 0x98;
            var var4 = var0;
            var2 = 
isRealmAdministrator(var3, var4);
            arg1 = var2;
            // Error: Could not resolve jump destination!
        } else if (arg1) {
            arg1 = 0x1e2e;
            var0 = 0x99;
            var var1 = arg0;
            
func_45EB(var0, var1);
            log(memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x00], [0x34384dcb6ac9672707fe22d862bf7e9ccaead052d4e8c8e8ffffcdc94b98dfd2, stack[-1] & (0x01 << 0xa0) - 0x01]);
            return;
        } else {
            var temp0 = memory[0x40:0x60];
            memory[temp0:temp0 + 0x20] = 0x461bcd << 0xe5;
            memory[temp0 + 0x04:temp0 + 0x04 + 0x20] = 0x20;
            memory[temp0 + 0x24:temp0 + 0x24 + 0x20] = 0x04;
            memory[temp0 + 0x44:temp0 + 0x44 + 0x20] = 0x41443031 << 0xe0;
            var temp1 = memory[0x40:0x60];
            revert(memory[temp1:temp1 + temp0 - temp1 + 0x64]);
        }
    }
    
    function setPriceOracle(var arg0, var arg1) {
        arg0 = msg.data[arg0:arg0 + 0x20] & (0x01 << 0xa0) - 0x01;
        arg1 = 0x224e;
        arg1 = 
burn();
        arg1 = arg1 & (0x01 << 0xa0) - 0x01;
        var var0 = 0x225f;
        var0 = 
owner();
        arg1 = var0 & (0x01 << 0xa0) - 0x01 == arg1;
    
        if (!arg1) {
            arg1 = 0x227a;
            var0 = 0x153d;
            var0 = 
burn();
            var var1 = 0x00;
            var var2 = 0x14f0;
            var var3 = 0x98;
            var var4 = var0;
            var2 = 
isRealmAdministrator(var3, var4);
            arg1 = var2;
            // Error: Could not resolve jump destination!
        } else if (arg1) {
            var temp0 = arg0 & (0x01 << 0xa0) - 0x01;
            storage[0x9c] = temp0 | (storage[0x9c] & ~((0x01 << 0xa0) - 0x01));
            log(memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x00], [0xb36d86785c7d32b1ad714bb705e00e93eccc37b8cf47549043e61e10908ad251, stack[-1] & (0x01 << 0xa0) - 0x01]);
            return;
        } else {
            var temp1 = memory[0x40:0x60];
            memory[temp1:temp1 + 0x20] = 0x461bcd << 0xe5;
            memory[temp1 + 0x04:temp1 + 0x04 + 0x20] = 0x20;
            memory[temp1 + 0x24:temp1 + 0x24 + 0x20] = 0x04;
            memory[temp1 + 0x44:temp1 + 0x44 + 0x20] = 0x41443031 << 0xe0;
            var temp2 = memory[0x40:0x60];
            revert(memory[temp2:temp2 + temp1 - temp2 + 0x64]);
        }
    }
    
    function addSeizer(var arg0, var arg1) {
        arg0 = msg.data[arg0:arg0 + 0x20] & (0x01 << 0xa0) - 0x01;
        arg1 = 0x2306;
        arg1 = 
burn();
        arg1 = arg1 & (0x01 << 0xa0) - 0x01;
        var var0 = 0x2317;
        var0 = 
owner();
        arg1 = var0 & (0x01 << 0xa0) - 0x01 == arg1;
    
        if (!arg1) {
            arg1 = 0x2332;
            var0 = 0x153d;
            var0 = 
burn();
            var1 = 0x00;
            var var2 = 0x14f0;
            var var3 = 0x98;
            var var4 = var0;
            var2 = 
isRealmAdministrator(var3, var4);
            arg1 = var2;
            // Error: Could not resolve jump destination!
        } else if (arg1) {
            arg1 = 0x237d;
            var0 = 0xcf;
            var var1 = arg0;
            
func_45EB(var0, var1);
            log(memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x00], [0x8990e54f9b080279eec4654d02ab4bc37586d8b2a7c4553dba17ccb6a0aceca1, stack[-1] & (0x01 << 0xa0) - 0x01]);
            return;
        } else {
            var temp0 = memory[0x40:0x60];
            memory[temp0:temp0 + 0x20] = 0x461bcd << 0xe5;
            memory[temp0 + 0x04:temp0 + 0x04 + 0x20] = 0x20;
            memory[temp0 + 0x24:temp0 + 0x24 + 0x20] = 0x04;
            memory[temp0 + 0x44:temp0 + 0x44 + 0x20] = 0x41443031 << 0xe0;
            var temp1 = memory[0x40:0x60];
            revert(memory[temp1:temp1 + temp0 - temp1 + 0x64]);
        }
    }
    
    function cancelAuthorization(var arg0, var arg1) {
        var temp0 = arg0;
        arg0 = msg.data[temp0:temp0 + 0x20] & (0x01 << 0xa0) - 0x01;
        arg1 = msg.data[temp0 + 0x20:temp0 + 0x20 + 0x20];
        var var0 = msg.data[temp0 + 0x40:temp0 + 0x40 + 0x20] & 0xff;
        var var1 = msg.data[temp0 + 0x60:temp0 + 0x60 + 0x20];
        var var2 = msg.data[temp0 + 0x80:temp0 + 0x80 + 0x20];
        var var3 = 0x23be;
        var var4 = arg0;
        var var5 = arg1;
        
func_4A2F(var4, var5);
        var temp1 = memory[0x40:0x60];
        memory[temp1 + 0x20:temp1 + 0x20 + 0x20] = 0x158b0a9edf7a828aad02f63cd515c68ef2f50ba807396f6d12842833a1597429;
        memory[temp1 + 0x40:temp1 + 0x40 + 0x20] = arg0 & (0x01 << 0xa0) - 0x01;
        memory[temp1 + 0x60:temp1 + 0x60 + 0x20] = arg1;
        var temp2 = memory[0x40:0x60];
        memory[temp2:temp2 + 0x20] = temp1 - temp2 + 0x60;
        memory[0x40:0x60] = temp1 + 0x80;
        var3 = temp2;
        var4 = arg0 & (0x01 << 0xa0) - 0x01;
        var var6 = storage[0x0105];
        var5 = 0x2426;
        var var7 = var0;
        var var8 = var1;
        var var9 = var2;
        var var10 = var3;
        var5 = 
func_46F6(var6, var7, var8, var9, var10);
    
        if (var5 & (0x01 << 0xa0) - 0x01 == var4) {
            var temp3 = arg0 & (0x01 << 0xa0) - 0x01;
            memory[0x00:0x20] = temp3;
            memory[0x20:0x40] = 0x0107;
            var temp4 = keccak256(memory[0x00:0x40]);
            var temp5 = arg1;
            memory[0x00:0x20] = temp5;
            memory[0x20:0x40] = temp4;
            var temp6 = keccak256(memory[0x00:0x40]);
            storage[temp6] = (storage[temp6] & ~0xff) | 0x02;
            log(memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x00], [0x1cdd46ff242716cdaa72d159d339a485b3438398348d68f09d7c8c0a59353d81, stack[-6] & (0x01 << 0xa0) - 0x01, stack[-5]]);
            return;
        } else {
            var temp7 = memory[0x40:0x60];
            memory[temp7:temp7 + 0x20] = 0x461bcd << 0xe5;
            memory[temp7 + 0x04:temp7 + 0x04 + 0x20] = 0x20;
            memory[temp7 + 0x24:temp7 + 0x24 + 0x20] = 0x04;
            memory[temp7 + 0x44:temp7 + 0x44 + 0x20] = 0x53493031 << 0xe0;
            var temp8 = memory[0x40:0x60];
            revert(memory[temp8:temp8 + temp7 - temp8 + 0x64]);
        }
    }
    
    function removeAdministrator(var arg0, var arg1) {
        arg0 = msg.data[arg0:arg0 + 0x20] & (0x01 << 0xa0) - 0x01;
        arg1 = 0x252d;
        arg1 = 
burn();
        var temp0 = (0x01 << 0xa0) - 0x01;
    
        if (arg1 & temp0 == temp0 & storage[0x65]) {
            arg1 = 0x258e;
            var var0 = 0x98;
            var var1 = arg0;
            
func_44A7(var0, var1);
            log(memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x00], [0xd5c9a61a4ab4b84f78da506149b7b0d376843283a81eee2dbdc9a55f988ab643, stack[-1] & (0x01 << 0xa0) - 0x01]);
            return;
        } else {
            var temp1 = memory[0x40:0x60];
            memory[temp1:temp1 + 0x20] = 0x461bcd << 0xe5;
            memory[temp1 + 0x04:temp1 + 0x04 + 0x20] = 0x20;
            memory[temp1 + 0x24:temp1 + 0x24 + 0x20] = 0x20;
            var temp2 = memory[0x00:0x20];
            memory[0x00:0x20] = code[0x56b9:0x56d9];
            var temp3 = memory[0x00:0x20];
            memory[0x00:0x20] = temp2;
            memory[temp1 + 0x44:temp1 + 0x44 + 0x20] = temp3;
            var temp4 = memory[0x40:0x60];
            revert(memory[temp4:temp4 + temp1 - temp4 + 0x64]);
        }
    }
    
    function balanceOf(var arg0, var arg1) returns (var r0) {
        arg0 = msg.data[arg0:arg0 + 0x20] & (0x01 << 0xa0) - 0x01;
        arg1 = 0x00;
    
        if (storage[0x97] & (0x01 << 0xa0) - 0x01) {
            var temp0 = memory[0x40:0x60];
            memory[temp0:temp0 + 0x20] = 0x70a08231 << 0xe0;
            var temp1 = (0x01 << 0xa0) - 0x01;
            memory[temp0 + 0x04:temp0 + 0x04 + 0x20] = temp1 & arg0;
            var var0 = storage[0x97] & temp1;
            var var1 = 0x70a08231;
            var var2 = temp0 + 0x24;
            var var3 = 0x20;
            var var4 = memory[0x40:0x60];
            var var5 = temp0 - var4 + 0x24;
            var var6 = var4;
            var var7 = var0;
            var var8 = !address(var7).code.length;
        
            if (var8) { revert(memory[0x00:0x00]); }
        
            var temp2;
            temp2, memory[var4:var4 + var3] = address(var7).staticcall.gas(msg.gas)(memory[var6:var6 + var5]);
            var3 = !temp2;
        
            if (!var3) {
                var0 = memory[0x40:0x60];
                var1 = returndata.length;
            
                if (var1 >= 0x20) { return memory[var0:var0 + 0x20]; }
                else { revert(memory[0x00:0x00]); }
            } else {
                var temp3 = returndata.length;
                memory[0x00:0x00 + temp3] = returndata[0x00:0x00 + temp3];
                revert(memory[0x00:0x00 + returndata.length]);
            }
        } else {
            var temp4 = memory[0x40:0x60];
            memory[temp4:temp4 + 0x20] = 0x461bcd << 0xe5;
            memory[temp4 + 0x04:temp4 + 0x04 + 0x20] = 0x20;
            memory[temp4 + 0x24:temp4 + 0x24 + 0x20] = 0x04;
            memory[temp4 + 0x44:temp4 + 0x44 + 0x20] = 0x50523031 << 0xe0;
            var temp5 = memory[0x40:0x60];
            revert(memory[temp5:temp5 + temp4 - temp5 + 0x64]);
        }
    }
    
    function func_0A36(var arg0, var arg1) returns (var r0) {
        var temp0 = arg0;
        arg0 = msg.data[temp0:temp0 + 0x20];
        arg1 = temp0 + arg1;
        var var0 = temp0;
        var var1 = var0 + 0x40;
        var var2 = msg.data[var0 + 0x20:var0 + 0x20 + 0x20];
    
        if (var2 > 0x01 << 0x20) { revert(memory[0x00:0x00]); }
    
        var temp1 = var0 + var2;
        var2 = temp1;
    
        if (var2 + 0x20 > arg1) { revert(memory[0x00:0x00]); }
    
        var temp2 = var2;
        var temp3 = msg.data[temp2:temp2 + 0x20];
        var2 = temp3;
        var var3 = var1;
        var1 = temp2 + 0x20;
    
        if ((var2 > 0x01 << 0x20) | (var1 + var2 > arg1)) { revert(memory[0x00:0x00]); }
    
        arg1 = var1;
        var0 = var2;
        var1 = msg.data[var3:var3 + 0x20] & 0xff;
        var2 = 0x00;
    
        if (!(storage[0x97] & (0x01 << 0xa0) - 0x01)) {
            var temp48 = memory[0x40:0x60];
            memory[temp48:temp48 + 0x20] = 0x461bcd << 0xe5;
            memory[temp48 + 0x04:temp48 + 0x04 + 0x20] = 0x20;
            memory[temp48 + 0x24:temp48 + 0x24 + 0x20] = 0x04;
            memory[temp48 + 0x44:temp48 + 0x44 + 0x20] = 0x50523031 << 0xe0;
            var temp49 = memory[0x40:0x60];
            revert(memory[temp49:temp49 + temp48 - temp49 + 0x64]);
        } else if (storage[0x9c] & (0x01 << 0xa0) - 0x01) {
            var temp4 = memory[0x40:0x60];
            memory[temp4:temp4 + 0x20] = 0x313ce567 << 0xe0;
            var3 = arg0;
            var var4 = 0x00;
            var var5 = var4;
            var var6 = var5;
            var var7 = storage[0x97] & (0x01 << 0xa0) - 0x01;
            var var8 = 0x313ce567;
            var var9 = temp4 + 0x04;
            var var10 = 0x20;
            var var11 = memory[0x40:0x60];
            var var12 = temp4 - var11 + 0x04;
            var var13 = var11;
            var var14 = var7;
            var var15 = !address(var14).code.length;
        
            if (var15) { revert(memory[0x00:0x00]); }
        
            var temp5;
            temp5, memory[var11:var11 + var10] = address(var14).staticcall.gas(msg.gas)(memory[var13:var13 + var12]);
            var10 = !temp5;
        
            if (!var10) {
                var7 = memory[0x40:0x60];
                var8 = returndata.length;
            
                if (var8 < 0x20) { revert(memory[0x00:0x00]); }
            
                var temp6 = memory[var7:var7 + 0x20];
                var temp7 = memory[0x40:0x60];
                memory[temp7:temp7 + 0x20] = 0x95d89b41 << 0xe0;
                var6 = temp6;
                var temp8 = (0x01 << 0xa0) - 0x01;
                var7 = temp8 & storage[0x9c];
                var8 = 0x3d0f34da;
                var9 = storage[0x97] & temp8;
                var10 = 0x95d89b41;
                var11 = temp7 + 0x04;
                var12 = 0x00;
                var13 = memory[0x40:0x60];
                var14 = temp7 - var13 + 0x04;
                var15 = var13;
                var var16 = var9;
                var var17 = !address(var16).code.length;
            
                if (var17) { revert(memory[0x00:0x00]); }
            
                var temp9;
                temp9, memory[var13:var13 + var12] = address(var16).staticcall.gas(msg.gas)(memory[var15:var15 + var14]);
                var12 = !temp9;
            
                if (!var12) {
                    var temp10 = memory[0x40:0x60];
                    var9 = temp10;
                    var temp11 = returndata.length;
                    memory[var9:var9 + temp11] = returndata[0x00:0x00 + temp11];
                    var temp12 = returndata.length;
                    var10 = temp12;
                    memory[0x40:0x60] = var9 + (var10 + 0x1f & ~0x1f);
                
                    if (var10 < 0x20) { revert(memory[0x00:0x00]); }
                
                    var temp13 = var9;
                    var9 = memory[0x40:0x60];
                    var10 = temp13 + var10;
                    var11 = temp13;
                    var12 = var11;
                    var13 = memory[var12:var12 + 0x20];
                    var14 = var9;
                
                    if (var13 > 0x01 << 0x20) { revert(memory[0x00:0x00]); }
                
                    var temp14 = var11 + var13;
                    var13 = temp14;
                    var14 = var14;
                    var15 = var13 + 0x20;
                
                    if (var15 > var10) { revert(memory[0x00:0x00]); }
                
                    var temp15 = memory[var13:var13 + 0x20];
                    var16 = temp15;
                
                    if ((var10 < var16 + var15) | (var16 > 0x01 << 0x20)) { revert(memory[0x00:0x00]); }
                
                    var temp16 = var14;
                    memory[temp16:temp16 + 0x20] = var16;
                    var temp17 = var13;
                    var13 = temp16 + 0x20;
                    var15 = memory[temp17:temp17 + 0x20];
                    var14 = temp17 + 0x20;
                    var16 = var15;
                    var17 = var13;
                    var var18 = var14;
                    var var19 = 0x00;
                
                    if (var19 >= var16) {
                    label_2965:
                        var temp18 = var15;
                        var13 = temp18 + var13;
                        var14 = temp18 & 0x1f;
                    
                        if (!var14) {
                            memory[0x40:0x60] = var13;
                            var10 = arg1;
                            var11 = var0;
                            var temp19 = memory[0x40:0x60];
                            memory[temp19:temp19 + 0x20] = (var8 & 0xffffffff) << 0xe0;
                            var temp20 = temp19 + 0x04;
                            var12 = temp20;
                            var13 = var12;
                            var14 = var13 + 0x20;
                            var temp21 = var14 + 0x20;
                            memory[var13:var13 + 0x20] = temp21 - var13;
                            var temp22 = var9;
                            memory[temp21:temp21 + 0x20] = memory[temp22:temp22 + 0x20];
                            var15 = temp21 + 0x20;
                            var17 = memory[temp22:temp22 + 0x20];
                            var16 = temp22 + 0x20;
                            var18 = var17;
                            var19 = var15;
                            var var20 = var16;
                            var var21 = 0x00;
                        
                            if (var21 >= var18) {
                            label_29EB:
                                var temp23 = var17;
                                var15 = temp23 + var15;
                                var16 = temp23 & 0x1f;
                            
                                if (!var16) {
                                    var temp24 = var15;
                                    memory[var14:var14 + 0x20] = temp24 - var12;
                                    var temp25 = var11;
                                    memory[temp24:temp24 + 0x20] = temp25;
                                    var temp26 = temp24 + 0x20;
                                    memory[temp26:temp26 + temp25] = msg.data[var10:var10 + temp25];
                                    memory[temp26 + temp25:temp26 + temp25 + 0x20] = 0x00;
                                    var9 = temp26 + (temp25 + 0x1f & ~0x1f);
                                    var10 = 0x40;
                                    var11 = memory[var10:var10 + 0x20];
                                    var12 = var9 - var11;
                                    var13 = var11;
                                    var14 = var7;
                                    var15 = !address(var14).code.length;
                                
                                    if (var15) { revert(memory[0x00:0x00]); }
                                
                                label_2A5F:
                                    var temp27;
                                    temp27, memory[var11:var11 + var10] = address(var14).staticcall.gas(msg.gas)(memory[var13:var13 + var12]);
                                    var10 = !temp27;
                                
                                    if (!var10) {
                                        var7 = memory[0x40:0x60];
                                        var8 = returndata.length;
                                    
                                        if (var8 < 0x40) { revert(memory[0x00:0x00]); }
                                    
                                        var temp28 = var7;
                                        var4 = memory[temp28:temp28 + 0x20];
                                        var5 = memory[temp28 + 0x20:temp28 + 0x20 + 0x20];
                                    
                                        if (var5 & 0xff > var1 & 0xff) {
                                            var7 = 0x2abd;
                                            var8 = var4;
                                            var9 = 0x0a ** (var5 - var1 & 0xff);
                                            goto label_4A9D;
                                        } else if (var6 & 0xff <= var1 & 0xff) {
                                            var7 = 0x2b1e;
                                            var8 = 0x0a ** (var1 * 0x02 - var5 - var6 & 0xff);
                                            var9 = 0x2b12;
                                            var10 = var3;
                                            var11 = var4;
                                            var9 = 
func_4AE6(var10, var11);
                                            return 
func_2B12(var8, var9);
                                        } else {
                                            var7 = 0x2ae9;
                                            var8 = var3;
                                            var9 = 0x0a ** (var6 - var1 & 0xff);
                                        
                                        label_4A9D:
                                            var10 = 0x00;
                                            var11 = 0x4adf;
                                            var12 = var8;
                                            var13 = var9;
                                            var temp29 = memory[0x40:0x60];
                                            var14 = temp29;
                                            memory[0x40:0x60] = var14 + 0x40;
                                            memory[var14:var14 + 0x20] = 0x1a;
                                            memory[var14 + 0x20:var14 + 0x20 + 0x20] = 0x536166654d6174683a206469766973696f6e206279207a65726f000000000000;
                                            var11 = 
func_51D3(var12, var13, var14);
                                            var7 = var11;
                                            // Error: Could not resolve jump destination!
                                        }
                                    } else {
                                        var temp30 = returndata.length;
                                        memory[0x00:0x00 + temp30] = returndata[0x00:0x00 + temp30];
                                        revert(memory[0x00:0x00 + returndata.length]);
                                    }
                                } else {
                                    var temp31 = var16;
                                    var temp32 = var15 - temp31;
                                    memory[temp32:temp32 + 0x20] = ~(0x0100 ** (0x20 - temp31) - 0x01) & memory[temp32:temp32 + 0x20];
                                    var temp33 = temp32 + 0x20;
                                    memory[var14:var14 + 0x20] = temp33 - var12;
                                    var temp34 = var11;
                                    memory[temp33:temp33 + 0x20] = temp34;
                                    var temp35 = temp33 + 0x20;
                                    memory[temp35:temp35 + temp34] = msg.data[var10:var10 + temp34];
                                    memory[temp35 + temp34:temp35 + temp34 + 0x20] = 0x00;
                                    var9 = temp35 + (temp34 + 0x1f & ~0x1f);
                                    var10 = 0x40;
                                    var11 = memory[var10:var10 + 0x20];
                                    var12 = var9 - var11;
                                    var13 = var11;
                                    var14 = var7;
                                    var15 = !address(var14).code.length;
                                
                                    if (!var15) { goto label_2A5F; }
                                    else { revert(memory[0x00:0x00]); }
                                }
                            } else {
                            label_29DC:
                                var temp36 = var21;
                                memory[temp36 + var19:temp36 + var19 + 0x20] = memory[temp36 + var20:temp36 + var20 + 0x20];
                                var21 = temp36 + 0x20;
                            
                                if (var21 >= var18) { goto label_29EB; }
                                else { goto label_29DC; }
                            }
                        } else {
                            var temp37 = var14;
                            var temp38 = var13 - temp37;
                            memory[temp38:temp38 + 0x20] = ~(0x0100 ** (0x20 - temp37) - 0x01) & memory[temp38:temp38 + 0x20];
                            memory[0x40:0x60] = temp38 + 0x20;
                            var10 = arg1;
                            var11 = var0;
                            var temp39 = memory[0x40:0x60];
                            memory[temp39:temp39 + 0x20] = (var8 & 0xffffffff) << 0xe0;
                            var temp40 = temp39 + 0x04;
                            var12 = temp40;
                            var13 = var12;
                            var14 = var13 + 0x20;
                            var temp41 = var14 + 0x20;
                            memory[var13:var13 + 0x20] = temp41 - var13;
                            var temp42 = var9;
                            memory[temp41:temp41 + 0x20] = memory[temp42:temp42 + 0x20];
                            var15 = temp41 + 0x20;
                            var17 = memory[temp42:temp42 + 0x20];
                            var16 = temp42 + 0x20;
                            var18 = var17;
                            var19 = var15;
                            var20 = var16;
                            var21 = 0x00;
                        
                            if (var21 >= var18) { goto label_29EB; }
                            else { goto label_29DC; }
                        }
                    } else {
                    label_2956:
                        var temp43 = var19;
                        memory[temp43 + var17:temp43 + var17 + 0x20] = memory[temp43 + var18:temp43 + var18 + 0x20];
                        var19 = temp43 + 0x20;
                    
                        if (var19 >= var16) { goto label_2965; }
                        else { goto label_2956; }
                    }
                } else {
                    var temp44 = returndata.length;
                    memory[0x00:0x00 + temp44] = returndata[0x00:0x00 + temp44];
                    revert(memory[0x00:0x00 + returndata.length]);
                }
            } else {
                var temp45 = returndata.length;
                memory[0x00:0x00 + temp45] = returndata[0x00:0x00 + temp45];
                revert(memory[0x00:0x00 + returndata.length]);
            }
        } else {
            var temp46 = memory[0x40:0x60];
            memory[temp46:temp46 + 0x20] = 0x461bcd << 0xe5;
            memory[temp46 + 0x04:temp46 + 0x04 + 0x20] = 0x20;
            memory[temp46 + 0x24:temp46 + 0x24 + 0x20] = 0x04;
            memory[temp46 + 0x44:temp46 + 0x44 + 0x20] = 0x504f3033 << 0xe0;
            var temp47 = memory[0x40:0x60];
            revert(memory[temp47:temp47 + temp46 - temp47 + 0x64]);
        }
    }
    
    function nonces(var arg0, var arg1) returns (var arg0) {
        arg0 = msg.data[arg0:arg0 + 0x20] & (0x01 << 0xa0) - 0x01;
        memory[0x20:0x40] = 0x0106;
        memory[0x00:0x20] = arg0;
        return storage[keccak256(memory[0x00:0x40])];
    }
    
    function removeRealmAdministrator(var arg0, var arg1) {
        arg0 = msg.data[arg0:arg0 + 0x20] & (0x01 << 0xa0) - 0x01;
        arg1 = 0x2e7c;
        arg1 = 
burn();
        arg1 = arg1 & (0x01 << 0xa0) - 0x01;
        var var0 = 0x2e8d;
        var0 = 
owner();
        arg1 = var0 & (0x01 << 0xa0) - 0x01 == arg1;
    
        if (!arg1) {
            arg1 = 0x2ea8;
            var0 = 0x153d;
            var0 = 
burn();
            var1 = 0x00;
            var var2 = 0x14f0;
            var var3 = 0x98;
            var var4 = var0;
            var2 = 
isRealmAdministrator(var3, var4);
            arg1 = var2;
            // Error: Could not resolve jump destination!
        } else if (arg1) {
            arg1 = 0x2ef3;
            var0 = 0x99;
            var var1 = arg0;
            
func_44A7(var0, var1);
            log(memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x00], [0x8a9fdef46f258b6423e7eb8be61cbbb7375a5d65e932083b7b1267982fcd3520, stack[-1] & (0x01 << 0xa0) - 0x01]);
            return;
        } else {
            var temp0 = memory[0x40:0x60];
            memory[temp0:temp0 + 0x20] = 0x461bcd << 0xe5;
            memory[temp0 + 0x04:temp0 + 0x04 + 0x20] = 0x20;
            memory[temp0 + 0x24:temp0 + 0x24 + 0x20] = 0x04;
            memory[temp0 + 0x44:temp0 + 0x44 + 0x20] = 0x41443031 << 0xe0;
            var temp1 = memory[0x40:0x60];
            revert(memory[temp1:temp1 + temp0 - temp1 + 0x64]);
        }
    }
    
    function increaseApprovalWithAuthorization(var arg0, var arg1) {
        var temp0 = (0x01 << 0xa0) - 0x01;
        var temp1 = arg0;
        arg0 = temp0 & msg.data[temp1:temp1 + 0x20];
        arg1 = temp0 & msg.data[temp1 + 0x20:temp1 + 0x20 + 0x20];
        var var0 = msg.data[temp1 + 0x40:temp1 + 0x40 + 0x20];
        var var1 = msg.data[temp1 + 0x60:temp1 + 0x60 + 0x20];
        var var2 = msg.data[temp1 + 0x80:temp1 + 0x80 + 0x20];
        var var3 = msg.data[temp1 + 0xa0:temp1 + 0xa0 + 0x20];
        var var4 = msg.data[temp1 + 0xc0:temp1 + 0xc0 + 0x20] & 0xff;
        var var5 = msg.data[temp1 + 0xe0:temp1 + 0xe0 + 0x20];
        var var6 = msg.data[temp1 + 0x0100:temp1 + 0x0100 + 0x20];
    
        if (storage[0x97] & (0x01 << 0xa0) - 0x01) {
            var var7 = 0x30ff;
            var var8 = arg0;
            var var9 = var3;
            var var10 = var1;
            var var11 = var2;
            
func_466C(var8, var9, var10, var11);
            var temp2 = memory[0x40:0x60];
            memory[temp2 + 0x20:temp2 + 0x20 + 0x20] = 0x9a42d39fe98978ff30e5bb6104a6ce6f70ac074c10013f1bce9743e2dccce41b;
            var temp3 = (0x01 << 0xa0) - 0x01;
            memory[temp2 + 0x40:temp2 + 0x40 + 0x20] = arg0 & temp3;
            memory[temp2 + 0x60:temp2 + 0x60 + 0x20] = arg1 & temp3;
            memory[temp2 + 0x80:temp2 + 0x80 + 0x20] = var0;
            memory[temp2 + 0xa0:temp2 + 0xa0 + 0x20] = var1;
            memory[temp2 + 0xc0:temp2 + 0xc0 + 0x20] = var2;
            memory[temp2 + 0xe0:temp2 + 0xe0 + 0x20] = var3;
            var temp4 = memory[0x40:0x60];
            memory[temp4:temp4 + 0x20] = temp2 - temp4 + 0xe0;
            memory[0x40:0x60] = temp2 + 0x0100;
            var7 = temp4;
            var8 = arg0 & temp3;
            var9 = 0x3186;
            var10 = storage[0x0105];
            var11 = var4;
            var var12 = var5;
            var var13 = var6;
            var var14 = var7;
            var9 = 
func_46F6(var10, var11, var12, var13, var14);
        
            if (var9 & (0x01 << 0xa0) - 0x01 == var8) {
                var8 = 0x31d4;
                var9 = arg0;
                var10 = var3;
                
func_474D(var9, var10);
                var8 = 0x1a50;
                var9 = arg0;
                var10 = arg1;
                var11 = var0;
                
func_4B3F(var9, var10, var11);
                return;
            } else {
                var temp5 = memory[0x40:0x60];
                memory[temp5:temp5 + 0x20] = 0x461bcd << 0xe5;
                memory[temp5 + 0x04:temp5 + 0x04 + 0x20] = 0x20;
                memory[temp5 + 0x24:temp5 + 0x24 + 0x20] = 0x04;
                memory[temp5 + 0x44:temp5 + 0x44 + 0x20] = 0x53493031 << 0xe0;
                var temp6 = memory[0x40:0x60];
                revert(memory[temp6:temp6 + temp5 - temp6 + 0x64]);
            }
        } else {
            var temp7 = memory[0x40:0x60];
            memory[temp7:temp7 + 0x20] = 0x461bcd << 0xe5;
            memory[temp7 + 0x04:temp7 + 0x04 + 0x20] = 0x20;
            memory[temp7 + 0x24:temp7 + 0x24 + 0x20] = 0x04;
            memory[temp7 + 0x44:temp7 + 0x44 + 0x20] = 0x50523031 << 0xe0;
            var temp8 = memory[0x40:0x60];
            revert(memory[temp8:temp8 + temp7 - temp8 + 0x64]);
        }
    }
    
    function transfer(var arg0, var arg1) returns (var r0) {
        var temp0 = arg0;
        arg0 = msg.data[temp0:temp0 + 0x20] & (0x01 << 0xa0) - 0x01;
        arg1 = msg.data[temp0 + 0x20:temp0 + 0x20 + 0x20];
        var var0 = 0x00;
    
        if (storage[0x97] & (0x01 << 0xa0) - 0x01) {
            var var1 = 0x00;
            var var2 = var1;
            var var3 = 0x00;
            var var4 = 0x3263;
            var var5 = 0x325c;
            var5 = 
burn();
            var var6;
            var4, var5, var6 = 
func_325C(arg0, arg1, var5);
            return 0x01;
        } else {
            var temp1 = memory[0x40:0x60];
            memory[temp1:temp1 + 0x20] = 0x461bcd << 0xe5;
            memory[temp1 + 0x04:temp1 + 0x04 + 0x20] = 0x20;
            memory[temp1 + 0x24:temp1 + 0x24 + 0x20] = 0x04;
            memory[temp1 + 0x44:temp1 + 0x44 + 0x20] = 0x50523031 << 0xe0;
            var temp2 = memory[0x40:0x60];
            revert(memory[temp2:temp2 + temp1 - temp2 + 0x64]);
        }
    }
    
    function setRealm(var arg0, var arg1) {
        arg0 = msg.data[arg0:arg0 + 0x20] & (0x01 << 0xa0) - 0x01;
        arg1 = 0x3289;
        arg1 = 
burn();
        arg1 = arg1 & (0x01 << 0xa0) - 0x01;
        var var0 = 0x329a;
        var0 = 
owner();
        arg1 = var0 & (0x01 << 0xa0) - 0x01 == arg1;
    
        if (!arg1) {
            arg1 = 0x32b5;
            var0 = 0x153d;
            var0 = 
burn();
            var1 = 0x00;
            var2 = 0x14f0;
            var3 = 0x98;
            var4 = var0;
            var2 = 
isRealmAdministrator(var3, var4);
            arg1 = var2;
            // Error: Could not resolve jump destination!
        } else if (arg1) {
            arg1 = arg0;
            var0 = 0x32f8;
            var0 = 
burn();
            var0 = var0 & (0x01 << 0xa0) - 0x01;
            var var1 = arg1 & (0x01 << 0xa0) - 0x01;
            var var2 = 0x8da5cb5b;
            var temp0 = memory[0x40:0x60];
            memory[temp0:temp0 + 0x20] = (var2 & 0xffffffff) << 0xe0;
            var var3 = temp0 + 0x04;
            var var4 = 0x20;
            var var5 = memory[0x40:0x60];
            var var6 = var3 - var5;
            var var7 = var5;
            var var8 = var1;
            var var9 = !address(var8).code.length;
        
            if (var9) { revert(memory[0x00:0x00]); }
        
            var temp1;
            temp1, memory[var5:var5 + var4] = address(var8).staticcall.gas(msg.gas)(memory[var7:var7 + var6]);
            var4 = !temp1;
        
            if (!var4) {
                var1 = memory[0x40:0x60];
                var2 = returndata.length;
            
                if (var2 < 0x20) { revert(memory[0x00:0x00]); }
            
                var0 = memory[var1:var1 + 0x20] & (0x01 << 0xa0) - 0x01 == var0;
            
                if (var0) {
                label_3400:
                
                    if (var0) {
                        var temp2 = arg0 & (0x01 << 0xa0) - 0x01;
                        storage[0x9b] = temp2 | (storage[0x9b] & ~((0x01 << 0xa0) - 0x01));
                        var temp3 = memory[0x40:0x60];
                        memory[temp3:temp3 + 0x20] = temp2;
                        var temp4 = memory[0x40:0x60];
                        log(memory[temp4:temp4 + temp3 - temp4 + 0x20], [0x198af0cedad0e99479f8e29795c967775c9a824402a94819578621b53864c243]);
                        return;
                    } else {
                        var temp5 = memory[0x40:0x60];
                        memory[temp5:temp5 + 0x20] = 0x461bcd << 0xe5;
                        memory[temp5 + 0x04:temp5 + 0x04 + 0x20] = 0x20;
                        memory[temp5 + 0x24:temp5 + 0x24 + 0x20] = 0x04;
                        memory[temp5 + 0x44:temp5 + 0x44 + 0x20] = 0x4b493031 << 0xe0;
                        var temp6 = memory[0x40:0x60];
                        revert(memory[temp6:temp6 + temp5 - temp6 + 0x64]);
                    }
                } else {
                    var0 = arg1 & (0x01 << 0xa0) - 0x01;
                    var1 = 0xda2f030f;
                    var2 = 0x338d;
                    var2 = 
burn();
                    var temp7 = memory[0x40:0x60];
                    memory[temp7:temp7 + 0x20] = (var1 & 0xffffffff) << 0xe0;
                    var temp8 = temp7 + 0x04;
                    memory[temp8:temp8 + 0x20] = var2 & (0x01 << 0xa0) - 0x01 & (0x01 << 0xa0) - 0x01;
                    var2 = temp8 + 0x20;
                    var3 = 0x20;
                    var4 = memory[0x40:0x60];
                    var5 = var2 - var4;
                    var6 = var4;
                    var7 = var0;
                    var8 = !address(var7).code.length;
                
                    if (var8) { revert(memory[0x00:0x00]); }
                
                    var temp9;
                    temp9, memory[var4:var4 + var3] = address(var7).staticcall.gas(msg.gas)(memory[var6:var6 + var5]);
                    var3 = !temp9;
                
                    if (!var3) {
                        var0 = memory[0x40:0x60];
                        var1 = returndata.length;
                    
                        if (var1 < 0x20) { revert(memory[0x00:0x00]); }
                    
                        var0 = memory[var0:var0 + 0x20];
                        goto label_3400;
                    } else {
                        var temp10 = returndata.length;
                        memory[0x00:0x00 + temp10] = returndata[0x00:0x00 + temp10];
                        revert(memory[0x00:0x00 + returndata.length]);
                    }
                }
            } else {
                var temp11 = returndata.length;
                memory[0x00:0x00 + temp11] = returndata[0x00:0x00 + temp11];
                revert(memory[0x00:0x00 + returndata.length]);
            }
        } else {
            var temp12 = memory[0x40:0x60];
            memory[temp12:temp12 + 0x20] = 0x461bcd << 0xe5;
            memory[temp12 + 0x04:temp12 + 0x04 + 0x20] = 0x20;
            memory[temp12 + 0x24:temp12 + 0x24 + 0x20] = 0x04;
            memory[temp12 + 0x44:temp12 + 0x44 + 0x20] = 0x41443031 << 0xe0;
            var temp13 = memory[0x40:0x60];
            revert(memory[temp13:temp13 + temp12 - temp13 + 0x64]);
        }
    }
    
    function func_0D83(var arg0, var arg1) {
        var temp0 = arg0;
        arg0 = msg.data[temp0:temp0 + 0x20] & (0x01 << 0xa0) - 0x01;
        var var0 = temp0;
        arg1 = var0 + arg1;
        var var1 = var0 + 0x40;
        var var2 = msg.data[var0 + 0x20:var0 + 0x20 + 0x20];
    
        if (var2 > 0x01 << 0x20) { revert(memory[0x00:0x00]); }
    
        var temp1 = var0 + var2;
        var2 = temp1;
    
        if (var2 + 0x20 > arg1) { revert(memory[0x00:0x00]); }
    
        var temp2 = var2;
        var temp3 = msg.data[temp2:temp2 + 0x20];
        var2 = temp3;
        var temp4 = var1;
        var1 = temp2 + 0x20;
        var var3 = temp4;
    
        if ((var2 > 0x01 << 0x20) | (var1 + var2 * 0x20 > arg1)) { revert(memory[0x00:0x00]); }
    
        var temp5 = var3;
        var temp6 = arg1;
        arg1 = var1;
        var temp7 = var0;
        var0 = var2;
        var2 = temp7;
        var1 = temp6;
        var3 = temp5 + 0x20;
        var var4 = msg.data[temp5:temp5 + 0x20];
    
        if (var4 > 0x01 << 0x20) { revert(memory[0x00:0x00]); }
    
        var temp8 = var2 + var4;
        var4 = temp8;
    
        if (var4 + 0x20 > var1) { revert(memory[0x00:0x00]); }
    
        var temp9 = var4;
        var temp10 = msg.data[temp9:temp9 + 0x20];
        var4 = temp10;
        var var5 = var3;
        var3 = temp9 + 0x20;
    
        if ((var4 > 0x01 << 0x20) | (var3 + var4 * 0x20 > var1)) { revert(memory[0x00:0x00]); }
    
        var1 = var3;
        var2 = var4;
    
        if (!(storage[0x97] & (0x01 << 0xa0) - 0x01)) {
            var temp26 = memory[0x40:0x60];
            memory[temp26:temp26 + 0x20] = 0x461bcd << 0xe5;
            memory[temp26 + 0x04:temp26 + 0x04 + 0x20] = 0x20;
            memory[temp26 + 0x24:temp26 + 0x24 + 0x20] = 0x04;
            memory[temp26 + 0x44:temp26 + 0x44 + 0x20] = 0x50523031 << 0xe0;
            var temp27 = memory[0x40:0x60];
            revert(memory[temp27:temp27 + temp26 - temp27 + 0x64]);
        } else if (var2 == var0) {
            var3 = 0x00;
            var4 = var3;
            var5 = var4;
        
            if (var5 >= var0) {
            label_35AF:
                var5 = storage[0x97] & (0x01 << 0xa0) - 0x01;
                var var6 = 0xdd62ed3e;
                var var7 = arg0;
                var var8 = 0x35ca;
                var8 = 
burn();
                var temp11 = memory[0x40:0x60];
                memory[temp11:temp11 + 0x20] = (var6 & 0xffffffff) << 0xe0;
                var temp12 = temp11 + 0x04;
                memory[temp12:temp12 + 0x20] = var7 & (0x01 << 0xa0) - 0x01 & (0x01 << 0xa0) - 0x01;
                var temp13 = temp12 + 0x20;
                memory[temp13:temp13 + 0x20] = var8 & (0x01 << 0xa0) - 0x01 & (0x01 << 0xa0) - 0x01;
                var7 = temp13 + 0x20;
                var8 = 0x20;
                var var9 = memory[0x40:0x60];
                var var10 = var7 - var9;
                var var11 = var9;
                var var12 = var5;
                var var13 = !address(var12).code.length;
            
                if (var13) { revert(memory[0x00:0x00]); }
            
                var temp14;
                temp14, memory[var9:var9 + var8] = address(var12).staticcall.gas(msg.gas)(memory[var11:var11 + var10]);
                var8 = !temp14;
            
                if (!var8) {
                    var5 = memory[0x40:0x60];
                    var6 = returndata.length;
                
                    if (var6 < 0x20) { revert(memory[0x00:0x00]); }
                
                    if (var3 <= memory[var5:var5 + 0x20]) {
                        var5 = 0x00;
                    
                        if (var5 >= var0) {
                        label_36F6:
                            var5 = storage[0x97] & (0x01 << 0xa0) - 0x01;
                            var6 = 0xf019c267;
                            var7 = arg0;
                            var8 = 0x3711;
                            var8 = 
burn();
                            var temp15 = memory[0x40:0x60];
                            memory[temp15:temp15 + 0x20] = (var6 & 0xffffffff) << 0xe0;
                            var temp16 = temp15 + 0x04;
                            memory[temp16:temp16 + 0x20] = var7 & (0x01 << 0xa0) - 0x01 & (0x01 << 0xa0) - 0x01;
                            var temp17 = temp16 + 0x20;
                            memory[temp17:temp17 + 0x20] = var8 & (0x01 << 0xa0) - 0x01 & (0x01 << 0xa0) - 0x01;
                            var temp18 = temp17 + 0x20;
                            memory[temp18:temp18 + 0x20] = var4;
                            var7 = temp18 + 0x20;
                            var8 = 0x00;
                            var9 = memory[0x40:0x60];
                            var10 = var7 - var9;
                            var11 = var9;
                            var12 = 0x00;
                            var13 = var5;
                            var var14 = !address(var13).code.length;
                        
                            if (var14) { revert(memory[0x00:0x00]); }
                        
                            var temp19;
                            temp19, memory[var9:var9 + var8] = address(var13).call.gas(msg.gas).value(var12)(memory[var11:var11 + var10]);
                            var8 = !temp19;
                        
                            if (!var8) { return; }
                        
                            var temp20 = returndata.length;
                            memory[0x00:0x00 + temp20] = returndata[0x00:0x00 + temp20];
                            revert(memory[0x00:0x00 + returndata.length]);
                        } else {
                        label_369E:
                            var6 = 0x00;
                            var7 = var6;
                            var8 = 0x00;
                            var9 = 0x36ce;
                            var10 = arg0;
                            var11 = arg1;
                            var12 = var0;
                            var13 = var5;
                        
                            if (var13 >= var12) { assert(); }
                        
                            var9, var10, var11 = 
func_36B2(var1, var2, var5, var10, var11, var12, var13);
                            var6 = var9;
                            var7 = var10;
                            var8 = var11;
                            var9 = 0x36e5;
                            var10 = var4;
                            var11 = var8;
                            var9 = 
func_4B9C(var10, var11);
                            var4 = var9;
                            var5 = var5 + 0x01;
                        
                            if (var5 >= var0) { goto label_36F6; }
                            else { goto label_369E; }
                        }
                    } else {
                        var temp21 = memory[0x40:0x60];
                        memory[temp21:temp21 + 0x20] = 0x461bcd << 0xe5;
                        memory[temp21 + 0x04:temp21 + 0x04 + 0x20] = 0x20;
                        memory[temp21 + 0x24:temp21 + 0x24 + 0x20] = 0x04;
                        memory[temp21 + 0x44:temp21 + 0x44 + 0x20] = 0x414c3031 << 0xe0;
                        var temp22 = memory[0x40:0x60];
                        revert(memory[temp22:temp22 + temp21 - temp22 + 0x64]);
                    }
                } else {
                    var temp23 = returndata.length;
                    memory[0x00:0x00 + temp23] = returndata[0x00:0x00 + temp23];
                    revert(memory[0x00:0x00 + returndata.length]);
                }
            } else {
            label_3581:
                var6 = 0x35a5;
                var7 = var1;
                var8 = var2;
                var9 = var5;
            
                if (var9 >= var8) { assert(); }
            
                var6 = 
func_358F(var3, var7, var8, var9);
                var3 = var6;
                var5 = var5 + 0x01;
            
                if (var5 >= var0) { goto label_35AF; }
                else { goto label_3581; }
            }
        } else {
            var temp24 = memory[0x40:0x60];
            memory[temp24:temp24 + 0x20] = 0x461bcd << 0xe5;
            memory[temp24 + 0x04:temp24 + 0x04 + 0x20] = 0x20;
            memory[temp24 + 0x24:temp24 + 0x24 + 0x20] = 0x04;
            memory[temp24 + 0x44:temp24 + 0x44 + 0x20] = 0x424b3031 << 0xe0;
            var temp25 = memory[0x40:0x60];
            revert(memory[temp25:temp25 + temp24 - temp25 + 0x64]);
        }
    }
    
    function addAdministrator(var arg0, var arg1) {
        arg0 = msg.data[arg0:arg0 + 0x20] & (0x01 << 0xa0) - 0x01;
        arg1 = 0x37a3;
        arg1 = 
burn();
        var temp0 = (0x01 << 0xa0) - 0x01;
    
        if (arg1 & temp0 == temp0 & storage[0x65]) {
            arg1 = 0x3804;
            var var0 = 0x98;
            var var1 = arg0;
            
func_45EB(var0, var1);
            log(memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x00], [0xe78a1675a4b4d68d04fc70b93f9c37c5288e084d9b02d718103f7ad5e292b688, stack[-1] & (0x01 << 0xa0) - 0x01]);
            return;
        } else {
            var temp1 = memory[0x40:0x60];
            memory[temp1:temp1 + 0x20] = 0x461bcd << 0xe5;
            memory[temp1 + 0x04:temp1 + 0x04 + 0x20] = 0x20;
            memory[temp1 + 0x24:temp1 + 0x24 + 0x20] = 0x20;
            var temp2 = memory[0x00:0x20];
            memory[0x00:0x20] = code[0x56b9:0x56d9];
            var temp3 = memory[0x00:0x20];
            memory[0x00:0x20] = temp2;
            memory[temp1 + 0x44:temp1 + 0x44 + 0x20] = temp3;
            var temp4 = memory[0x40:0x60];
            revert(memory[temp4:temp4 + temp1 - temp4 + 0x64]);
        }
    }
    
    function permit(var arg0, var arg1) {
        var temp0 = (0x01 << 0xa0) - 0x01;
        var temp1 = arg0;
        arg0 = temp0 & msg.data[temp1:temp1 + 0x20];
        arg1 = temp0 & msg.data[temp1 + 0x20:temp1 + 0x20 + 0x20];
        var var0 = msg.data[temp1 + 0x40:temp1 + 0x40 + 0x20];
        var var1 = msg.data[temp1 + 0x60:temp1 + 0x60 + 0x20];
        var var2 = msg.data[temp1 + 0x80:temp1 + 0x80 + 0x20] & 0xff;
        var var3 = msg.data[temp1 + 0xa0:temp1 + 0xa0 + 0x20];
        var var4 = msg.data[temp1 + 0xc0:temp1 + 0xc0 + 0x20];
    
        if (!(storage[0x97] & (0x01 << 0xa0) - 0x01)) {
            var temp12 = memory[0x40:0x60];
            memory[temp12:temp12 + 0x20] = 0x461bcd << 0xe5;
            memory[temp12 + 0x04:temp12 + 0x04 + 0x20] = 0x20;
            memory[temp12 + 0x24:temp12 + 0x24 + 0x20] = 0x04;
            memory[temp12 + 0x44:temp12 + 0x44 + 0x20] = 0x50523031 << 0xe0;
            var temp13 = memory[0x40:0x60];
            revert(memory[temp13:temp13 + temp12 - temp13 + 0x64]);
        } else if (var1 >= block.timestamp) {
            var temp2 = (0x01 << 0xa0) - 0x01;
            var temp3 = arg0 & temp2;
            var var6 = temp3;
            memory[0x00:0x20] = var6;
            memory[0x20:0x40] = 0x0106;
            var temp4 = keccak256(memory[0x00:0x40]);
            var temp5 = storage[temp4];
            storage[temp4] = temp5 + 0x01;
            var temp6 = memory[0x40:0x60];
            memory[temp6 + 0x20:temp6 + 0x20 + 0x20] = 0x6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9;
            memory[temp6 + 0x40:temp6 + 0x40 + 0x20] = var6;
            memory[temp6 + 0x60:temp6 + 0x60 + 0x20] = arg1 & temp2;
            memory[temp6 + 0x80:temp6 + 0x80 + 0x20] = var0;
            memory[temp6 + 0xa0:temp6 + 0xa0 + 0x20] = temp5;
            memory[temp6 + 0xc0:temp6 + 0xc0 + 0x20] = var1;
            var temp7 = memory[0x40:0x60];
            memory[temp7:temp7 + 0x20] = temp6 - temp7 + 0xc0;
            var var5 = temp7;
            memory[0x40:0x60] = temp6 + 0xe0;
            var var7 = 0x39c8;
            var var8 = storage[0x0105];
            var var9 = var2;
            var var10 = var3;
            var var11 = var4;
            var var12 = var5;
            var7 = 
func_46F6(var8, var9, var10, var11, var12);
        
            if (var7 & (0x01 << 0xa0) - 0x01 == var6) {
                var6 = 0x3a17;
                var7 = arg0;
                var8 = arg1;
                var9 = var0;
                
func_4384(var7, var8, var9);
                return;
            } else {
                var temp8 = memory[0x40:0x60];
                memory[temp8:temp8 + 0x20] = 0x461bcd << 0xe5;
                memory[temp8 + 0x04:temp8 + 0x04 + 0x20] = 0x20;
                memory[temp8 + 0x24:temp8 + 0x24 + 0x20] = 0x04;
                memory[temp8 + 0x44:temp8 + 0x44 + 0x20] = 0x53493031 << 0xe0;
                var temp9 = memory[0x40:0x60];
                revert(memory[temp9:temp9 + temp8 - temp9 + 0x64]);
            }
        } else {
            var temp10 = memory[0x40:0x60];
            memory[temp10:temp10 + 0x20] = 0x461bcd << 0xe5;
            memory[temp10 + 0x04:temp10 + 0x04 + 0x20] = 0x20;
            memory[temp10 + 0x24:temp10 + 0x24 + 0x20] = 0x04;
            memory[temp10 + 0x44:temp10 + 0x44 + 0x20] = 0x45583031 << 0xe0;
            var temp11 = memory[0x40:0x60];
            revert(memory[temp11:temp11 + temp10 - temp11 + 0x64]);
        }
    }
    
    function rule(var arg0, var arg1) returns (var r0, var arg0) {
        arg0 = msg.data[arg0:arg0 + 0x20];
        arg1 = 0x00;
        var var0 = arg1;
    
        if (arg0 < storage[0x0102]) {
            var var1 = 0x0102;
            var var2 = arg0;
        
            if (var2 >= storage[var1]) { assert(); }
        
            memory[0x00:0x20] = var1;
            var1 = storage[keccak256(memory[0x00:0x20]) + var2];
            var2 = 0x0103;
            var var3 = arg0;
        
            if (var3 >= storage[var2]) { assert(); }
        
            memory[0x00:0x20] = var2;
            arg0 = storage[keccak256(memory[0x00:0x20]) + var3];
            r0 = var1;
            return r0, arg0;
        } else {
            var temp0 = memory[0x40:0x60];
            memory[temp0:temp0 + 0x20] = 0x461bcd << 0xe5;
            memory[temp0 + 0x04:temp0 + 0x04 + 0x20] = 0x20;
            memory[temp0 + 0x24:temp0 + 0x24 + 0x20] = 0x04;
            memory[temp0 + 0x44:temp0 + 0x44 + 0x20] = 0x52453031 << 0xe0;
            var temp1 = memory[0x40:0x60];
            revert(memory[temp1:temp1 + temp0 - temp1 + 0x64]);
        }
    }
    
    function allowance(var arg0, var arg1) returns (var r0) {
        var temp0 = (0x01 << 0xa0) - 0x01;
        var temp1 = arg0;
        arg0 = temp0 & msg.data[temp1:temp1 + 0x20];
        arg1 = msg.data[temp1 + 0x20:temp1 + 0x20 + 0x20] & temp0;
        var var0 = 0x00;
    
        if (storage[0x97] & (0x01 << 0xa0) - 0x01) {
            var temp2 = memory[0x40:0x60];
            memory[temp2:temp2 + 0x20] = 0x6eb1769f << 0xe1;
            var temp3 = (0x01 << 0xa0) - 0x01;
            memory[temp2 + 0x04:temp2 + 0x04 + 0x20] = temp3 & arg0;
            memory[temp2 + 0x24:temp2 + 0x24 + 0x20] = temp3 & arg1;
            var var1 = storage[0x97] & temp3;
            var var2 = 0xdd62ed3e;
            var var3 = temp2 + 0x44;
            var var4 = 0x20;
            var var5 = memory[0x40:0x60];
            var var6 = temp2 - var5 + 0x44;
            var var7 = var5;
            var var8 = var1;
            var var9 = !address(var8).code.length;
        
            if (var9) { revert(memory[0x00:0x00]); }
        
            var temp4;
            temp4, memory[var5:var5 + var4] = address(var8).staticcall.gas(msg.gas)(memory[var7:var7 + var6]);
            var4 = !temp4;
        
            if (!var4) {
                var1 = memory[0x40:0x60];
                var2 = returndata.length;
            
                if (var2 >= 0x20) { return memory[var1:var1 + 0x20]; }
                else { revert(memory[0x00:0x00]); }
            } else {
                var temp5 = returndata.length;
                memory[0x00:0x00 + temp5] = returndata[0x00:0x00 + temp5];
                revert(memory[0x00:0x00 + returndata.length]);
            }
        } else {
            var temp6 = memory[0x40:0x60];
            memory[temp6:temp6 + 0x20] = 0x461bcd << 0xe5;
            memory[temp6 + 0x04:temp6 + 0x04 + 0x20] = 0x20;
            memory[temp6 + 0x24:temp6 + 0x24 + 0x20] = 0x04;
            memory[temp6 + 0x44:temp6 + 0x44 + 0x20] = 0x50523031 << 0xe0;
            var temp7 = memory[0x40:0x60];
            revert(memory[temp7:temp7 + temp6 - temp7 + 0x64]);
        }
    }
    
    function approveWithAuthorization(var arg0, var arg1) {
        var temp0 = (0x01 << 0xa0) - 0x01;
        var temp1 = arg0;
        arg0 = temp0 & msg.data[temp1:temp1 + 0x20];
        arg1 = temp0 & msg.data[temp1 + 0x20:temp1 + 0x20 + 0x20];
        var var0 = msg.data[temp1 + 0x40:temp1 + 0x40 + 0x20];
        var var1 = msg.data[temp1 + 0x60:temp1 + 0x60 + 0x20];
        var var2 = msg.data[temp1 + 0x80:temp1 + 0x80 + 0x20];
        var var3 = msg.data[temp1 + 0xa0:temp1 + 0xa0 + 0x20];
        var var4 = msg.data[temp1 + 0xc0:temp1 + 0xc0 + 0x20] & 0xff;
        var var5 = msg.data[temp1 + 0xe0:temp1 + 0xe0 + 0x20];
        var var6 = msg.data[temp1 + 0x0100:temp1 + 0x0100 + 0x20];
    
        if (storage[0x97] & (0x01 << 0xa0) - 0x01) {
            var var7 = 0x3c53;
            var var8 = arg0;
            var var9 = var3;
            var var10 = var1;
            var var11 = var2;
            
func_466C(var8, var9, var10, var11);
            var temp2 = memory[0x40:0x60];
            memory[temp2 + 0x20:temp2 + 0x20 + 0x20] = 0x808c10407a796f3ef2c7ea38c0638ea9d2b8a1c63e3ca9e1f56ce84ae59df73c;
            var temp3 = (0x01 << 0xa0) - 0x01;
            memory[temp2 + 0x40:temp2 + 0x40 + 0x20] = arg0 & temp3;
            memory[temp2 + 0x60:temp2 + 0x60 + 0x20] = arg1 & temp3;
            memory[temp2 + 0x80:temp2 + 0x80 + 0x20] = var0;
            memory[temp2 + 0xa0:temp2 + 0xa0 + 0x20] = var1;
            memory[temp2 + 0xc0:temp2 + 0xc0 + 0x20] = var2;
            memory[temp2 + 0xe0:temp2 + 0xe0 + 0x20] = var3;
            var temp4 = memory[0x40:0x60];
            memory[temp4:temp4 + 0x20] = temp2 - temp4 + 0xe0;
            memory[0x40:0x60] = temp2 + 0x0100;
            var7 = temp4;
            var8 = arg0 & temp3;
            var9 = 0x3cda;
            var10 = storage[0x0105];
            var11 = var4;
            var var12 = var5;
            var var13 = var6;
            var var14 = var7;
            var9 = 
func_46F6(var10, var11, var12, var13, var14);
        
            if (var9 & (0x01 << 0xa0) - 0x01 == var8) {
                var8 = 0x3d28;
                var9 = arg0;
                var10 = var3;
                
func_474D(var9, var10);
                var8 = 0x1a50;
                var9 = arg0;
                var10 = arg1;
                var11 = var0;
                
func_4384(var9, var10, var11);
                return;
            } else {
                var temp5 = memory[0x40:0x60];
                memory[temp5:temp5 + 0x20] = 0x461bcd << 0xe5;
                memory[temp5 + 0x04:temp5 + 0x04 + 0x20] = 0x20;
                memory[temp5 + 0x24:temp5 + 0x24 + 0x20] = 0x04;
                memory[temp5 + 0x44:temp5 + 0x44 + 0x20] = 0x53493031 << 0xe0;
                var temp6 = memory[0x40:0x60];
                revert(memory[temp6:temp6 + temp5 - temp6 + 0x64]);
            }
        } else {
            var temp7 = memory[0x40:0x60];
            memory[temp7:temp7 + 0x20] = 0x461bcd << 0xe5;
            memory[temp7 + 0x04:temp7 + 0x04 + 0x20] = 0x20;
            memory[temp7 + 0x24:temp7 + 0x24 + 0x20] = 0x04;
            memory[temp7 + 0x44:temp7 + 0x44 + 0x20] = 0x50523031 << 0xe0;
            var temp8 = memory[0x40:0x60];
            revert(memory[temp8:temp8 + temp7 - temp8 + 0x64]);
        }
    }
    
    function setProcessor(var arg0, var arg1) {
        arg0 = msg.data[arg0:arg0 + 0x20] & (0x01 << 0xa0) - 0x01;
        arg1 = 0x3d3b;
        arg1 = 
burn();
        arg1 = arg1 & (0x01 << 0xa0) - 0x01;
        var var0 = 0x3d4c;
        var0 = 
owner();
        arg1 = var0 & (0x01 << 0xa0) - 0x01 == arg1;
    
        if (!arg1) {
            arg1 = 0x3d67;
            var0 = 0x153d;
            var0 = 
burn();
            var var1 = 0x00;
            var var2 = 0x14f0;
            var var3 = 0x98;
            var var4 = var0;
            var2 = 
isRealmAdministrator(var3, var4);
            arg1 = var2;
            // Error: Could not resolve jump destination!
        } else if (arg1) {
            var temp0 = arg0 & (0x01 << 0xa0) - 0x01;
            storage[0x97] = temp0 | (storage[0x97] & ~((0x01 << 0xa0) - 0x01));
            log(memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x00], [0x63e7655c5ec08f94bc8ad23d90d8b7b5b1eddd5bb793c6dbfc7e00ce8fcdac47, stack[-1] & (0x01 << 0xa0) - 0x01]);
            return;
        } else {
            var temp1 = memory[0x40:0x60];
            memory[temp1:temp1 + 0x20] = 0x461bcd << 0xe5;
            memory[temp1 + 0x04:temp1 + 0x04 + 0x20] = 0x20;
            memory[temp1 + 0x24:temp1 + 0x24 + 0x20] = 0x04;
            memory[temp1 + 0x44:temp1 + 0x44 + 0x20] = 0x41443031 << 0xe0;
            var temp2 = memory[0x40:0x60];
            revert(memory[temp2:temp2 + temp1 - temp2 + 0x64]);
        }
    }
    
    function transferWithAuthorization(var arg0, var arg1) {
        var temp0 = (0x01 << 0xa0) - 0x01;
        var temp1 = arg0;
        arg0 = temp0 & msg.data[temp1:temp1 + 0x20];
        arg1 = temp0 & msg.data[temp1 + 0x20:temp1 + 0x20 + 0x20];
        var var0 = msg.data[temp1 + 0x40:temp1 + 0x40 + 0x20];
        var var1 = msg.data[temp1 + 0x60:temp1 + 0x60 + 0x20];
        var var2 = msg.data[temp1 + 0x80:temp1 + 0x80 + 0x20];
        var var3 = msg.data[temp1 + 0xa0:temp1 + 0xa0 + 0x20];
        var var4 = msg.data[temp1 + 0xc0:temp1 + 0xc0 + 0x20] & 0xff;
        var var5 = msg.data[temp1 + 0xe0:temp1 + 0xe0 + 0x20];
        var var6 = msg.data[temp1 + 0x0100:temp1 + 0x0100 + 0x20];
    
        if (storage[0x97] & (0x01 << 0xa0) - 0x01) {
            var var7 = 0x3e3d;
            var var8 = arg0;
            var var9 = var3;
            var var10 = var1;
            var var11 = var2;
            
func_466C(var8, var9, var10, var11);
            var temp2 = memory[0x40:0x60];
            memory[temp2 + 0x20:temp2 + 0x20 + 0x20] = 0x7c7c6cdb67a18743f49ec6fa9b35f50d52ed05cbed4cc592e13b44501c1a2267;
            var temp3 = (0x01 << 0xa0) - 0x01;
            memory[temp2 + 0x40:temp2 + 0x40 + 0x20] = arg0 & temp3;
            memory[temp2 + 0x60:temp2 + 0x60 + 0x20] = arg1 & temp3;
            memory[temp2 + 0x80:temp2 + 0x80 + 0x20] = var0;
            memory[temp2 + 0xa0:temp2 + 0xa0 + 0x20] = var1;
            memory[temp2 + 0xc0:temp2 + 0xc0 + 0x20] = var2;
            memory[temp2 + 0xe0:temp2 + 0xe0 + 0x20] = var3;
            var temp4 = memory[0x40:0x60];
            memory[temp4:temp4 + 0x20] = temp2 - temp4 + 0xe0;
            memory[0x40:0x60] = temp2 + 0x0100;
            var7 = temp4;
            var8 = arg0 & temp3;
            var9 = 0x3ec4;
            var10 = storage[0x0105];
            var11 = var4;
            var var12 = var5;
            var var13 = var6;
            var var14 = var7;
            var9 = 
func_46F6(var10, var11, var12, var13, var14);
        
            if (var9 & (0x01 << 0xa0) - 0x01 == var8) {
                var8 = 0x3f12;
                var9 = arg0;
                var10 = var3;
                
func_474D(var9, var10);
                var8 = 0x3f1d;
                var9 = arg0;
                var10 = arg1;
                var11 = var0;
                var8, var9, var10 = 
func_450E(var9, var10, var11);
                return;
            } else {
                var temp5 = memory[0x40:0x60];
                memory[temp5:temp5 + 0x20] = 0x461bcd << 0xe5;
                memory[temp5 + 0x04:temp5 + 0x04 + 0x20] = 0x20;
                memory[temp5 + 0x24:temp5 + 0x24 + 0x20] = 0x04;
                memory[temp5 + 0x44:temp5 + 0x44 + 0x20] = 0x53493031 << 0xe0;
                var temp6 = memory[0x40:0x60];
                revert(memory[temp6:temp6 + temp5 - temp6 + 0x64]);
            }
        } else {
            var temp7 = memory[0x40:0x60];
            memory[temp7:temp7 + 0x20] = 0x461bcd << 0xe5;
            memory[temp7 + 0x04:temp7 + 0x04 + 0x20] = 0x20;
            memory[temp7 + 0x24:temp7 + 0x24 + 0x20] = 0x04;
            memory[temp7 + 0x44:temp7 + 0x44 + 0x20] = 0x50523031 << 0xe0;
            var temp8 = memory[0x40:0x60];
            revert(memory[temp8:temp8 + temp7 - temp8 + 0x64]);
        }
    }
    
    function canTransfer(var arg0) returns (var r0, var arg0, var r2) {
        var temp0 = (0x01 << 0xa0) - 0x01;
        var temp1 = arg0;
        arg0 = temp0 & msg.data[temp1:temp1 + 0x20];
        r2 = temp0 & msg.data[temp1 + 0x20:temp1 + 0x20 + 0x20];
        var var0 = msg.data[temp1 + 0x40:temp1 + 0x40 + 0x20];
        var var1 = 0x00;
        var var2 = var1;
        var var3 = var2;
    
        if (storage[0x97] & (0x01 << 0xa0) - 0x01) {
            var temp2 = memory[0x40:0x60];
            memory[temp2:temp2 + 0x20] = 0x72331c73 << 0xe1;
            var temp3 = (0x01 << 0xa0) - 0x01;
            memory[temp2 + 0x04:temp2 + 0x04 + 0x20] = temp3 & arg0;
            memory[temp2 + 0x24:temp2 + 0x24 + 0x20] = temp3 & r2;
            memory[temp2 + 0x44:temp2 + 0x44 + 0x20] = var0;
            var var4 = storage[0x97] & temp3;
            var var5 = 0xe46638e6;
            var var6 = temp2 + 0x64;
            var var7 = 0x60;
            var var8 = memory[0x40:0x60];
            var var9 = temp2 - var8 + 0x64;
            var var10 = var8;
            var var11 = var4;
            var var12 = !address(var11).code.length;
        
            if (var12) { revert(memory[0x00:0x00]); }
        
            var temp4;
            temp4, memory[var8:var8 + var7] = address(var11).staticcall.gas(msg.gas)(memory[var10:var10 + var9]);
            var7 = !temp4;
        
            if (!var7) {
                var4 = memory[0x40:0x60];
                var5 = returndata.length;
            
                if (var5 < 0x60) { revert(memory[0x00:0x00]); }
            
                var temp5 = var4;
                r0 = memory[temp5:temp5 + 0x20];
                arg0 = memory[temp5 + 0x20:temp5 + 0x20 + 0x20];
                r2 = memory[temp5 + 0x40:temp5 + 0x40 + 0x20];
                return r0, arg0, r2;
            } else {
                var temp6 = returndata.length;
                memory[0x00:0x00 + temp6] = returndata[0x00:0x00 + temp6];
                revert(memory[0x00:0x00 + returndata.length]);
            }
        } else {
            var temp7 = memory[0x40:0x60];
            memory[temp7:temp7 + 0x20] = 0x461bcd << 0xe5;
            memory[temp7 + 0x04:temp7 + 0x04 + 0x20] = 0x20;
            memory[temp7 + 0x24:temp7 + 0x24 + 0x20] = 0x04;
            memory[temp7 + 0x44:temp7 + 0x44 + 0x20] = 0x50523031 << 0xe0;
            var temp8 = memory[0x40:0x60];
            revert(memory[temp8:temp8 + temp7 - temp8 + 0x64]);
        }
    }
    
    function transferOwnership(var arg0, var arg1) {
        arg0 = msg.data[arg0:arg0 + 0x20] & (0x01 << 0xa0) - 0x01;
        arg1 = 0x41c1;
        arg1 = 
burn();
        var temp0 = (0x01 << 0xa0) - 0x01;
    
        if (arg1 & temp0 != temp0 & storage[0x65]) {
            var temp8 = memory[0x40:0x60];
            memory[temp8:temp8 + 0x20] = 0x461bcd << 0xe5;
            memory[temp8 + 0x04:temp8 + 0x04 + 0x20] = 0x20;
            memory[temp8 + 0x24:temp8 + 0x24 + 0x20] = 0x20;
            var temp9 = memory[0x00:0x20];
            memory[0x00:0x20] = code[0x56b9:0x56d9];
            var temp10 = memory[0x00:0x20];
            memory[0x00:0x20] = temp9;
            memory[temp8 + 0x44:temp8 + 0x44 + 0x20] = temp10;
            var temp11 = memory[0x40:0x60];
            revert(memory[temp11:temp11 + temp8 - temp11 + 0x64]);
        } else if (arg0 & (0x01 << 0xa0) - 0x01) {
            var temp1 = (0x01 << 0xa0) - 0x01;
            var temp2 = arg0;
            log(memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x00], [0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0, storage[0x65] & (0x01 << 0xa0) - 0x01, stack[-1] & (0x01 << 0xa0) - 0x01]);
            storage[0x65] = (temp2 & (0x01 << 0xa0) - 0x01) | (storage[0x65] & ~((0x01 << 0xa0) - 0x01));
            return;
        } else {
            var temp3 = memory[0x40:0x60];
            memory[temp3:temp3 + 0x20] = 0x461bcd << 0xe5;
            var temp4 = temp3 + 0x04;
            var temp5 = temp4 + 0x20;
            memory[temp4:temp4 + 0x20] = temp5 - temp4;
            memory[temp5:temp5 + 0x20] = 0x26;
            var temp6 = temp5 + 0x20;
            memory[temp6:temp6 + 0x26] = code[0x5651:0x5677];
            var temp7 = memory[0x40:0x60];
            revert(memory[temp7:temp7 + (temp6 + 0x40) - temp7]);
        }
    }
    
    function name() returns (var r0) {
        var var0 = 0x60;
    
        if (storage[0x97] & (0x01 << 0xa0) - 0x01) {
            var var1 = storage[0x97] & (0x01 << 0xa0) - 0x01 & (0x01 << 0xa0) - 0x01;
            var var2 = 0x06fdde03;
            var temp0 = memory[0x40:0x60];
            memory[temp0:temp0 + 0x20] = (var2 & 0xffffffff) << 0xe0;
            var var3 = temp0 + 0x04;
            var var4 = 0x00;
            var var5 = memory[0x40:0x60];
            var var6 = var3 - var5;
            var var7 = var5;
            var var8 = var1;
            var var9 = !address(var8).code.length;
        
            if (var9) { revert(memory[0x00:0x00]); }
        
            var temp1;
            temp1, memory[var5:var5 + var4] = address(var8).staticcall.gas(msg.gas)(memory[var7:var7 + var6]);
            var4 = !temp1;
        
            if (!var4) {
                var temp2 = memory[0x40:0x60];
                var1 = temp2;
                var temp3 = returndata.length;
                memory[var1:var1 + temp3] = returndata[0x00:0x00 + temp3];
                var temp4 = returndata.length;
                var2 = temp4;
                memory[0x40:0x60] = var1 + (var2 + 0x1f & ~0x1f);
            
                if (var2 < 0x20) { revert(memory[0x00:0x00]); }
            
                var temp5 = var1;
                var1 = memory[0x40:0x60];
                var2 = temp5 + var2;
                var3 = temp5;
                var4 = var3;
                var5 = memory[var4:var4 + 0x20];
                var6 = var1;
            
                if (var5 > 0x01 << 0x20) { revert(memory[0x00:0x00]); }
            
                var temp6 = var3 + var5;
                var5 = temp6;
                var6 = var6;
                var7 = var5 + 0x20;
            
                if (var7 > var2) { revert(memory[0x00:0x00]); }
            
                var temp7 = memory[var5:var5 + 0x20];
                var8 = temp7;
            
                if ((var2 < var8 + var7) | (var8 > 0x01 << 0x20)) { revert(memory[0x00:0x00]); }
            
                var temp8 = var6;
                memory[temp8:temp8 + 0x20] = var8;
                var temp9 = var5;
                var5 = temp8 + 0x20;
                var6 = temp9 + 0x20;
                var7 = memory[temp9:temp9 + 0x20];
                var8 = var7;
                var9 = var5;
                var var10 = var6;
                var var11 = 0x00;
            
                if (var11 >= var8) {
                label_1457:
                    var temp10 = var7;
                    var5 = temp10 + var5;
                    var6 = temp10 & 0x1f;
                
                    if (!var6) {
                        memory[0x40:0x60] = var5;
                        return var1;
                    } else {
                        var temp11 = var6;
                        var temp12 = var5 - temp11;
                        memory[temp12:temp12 + 0x20] = ~(0x0100 ** (0x20 - temp11) - 0x01) & memory[temp12:temp12 + 0x20];
                        memory[0x40:0x60] = temp12 + 0x20;
                        return var1;
                    }
                } else {
                label_1448:
                    var temp13 = var11;
                    memory[temp13 + var9:temp13 + var9 + 0x20] = memory[temp13 + var10:temp13 + var10 + 0x20];
                    var11 = temp13 + 0x20;
                
                    if (var11 >= var8) { goto label_1457; }
                    else { goto label_1448; }
                }
            } else {
                var temp14 = returndata.length;
                memory[0x00:0x00 + temp14] = returndata[0x00:0x00 + temp14];
                revert(memory[0x00:0x00 + returndata.length]);
            }
        } else {
            var temp15 = memory[0x40:0x60];
            memory[temp15:temp15 + 0x20] = 0x461bcd << 0xe5;
            memory[temp15 + 0x04:temp15 + 0x04 + 0x20] = 0x20;
            memory[temp15 + 0x24:temp15 + 0x24 + 0x20] = 0x04;
            memory[temp15 + 0x44:temp15 + 0x44 + 0x20] = 0x50523031 << 0xe0;
            var temp16 = memory[0x40:0x60];
            revert(memory[temp16:temp16 + temp15 - temp16 + 0x64]);
        }
    }
    
    function func_14E5(var arg0, var arg1, var arg2) {
        var var0 = arg0;
        var var1 = arg1;
        
func_4384(arg2, var0, var1);
        // Error: Could not resolve method call return address!
    }
    
    function APPROVE_WITH_AUTHORIZATION_TYPEHASH() returns (var r0) { return 0x808c10407a796f3ef2c7ea38c0638ea9d2b8a1c63e3ca9e1f56ce84ae59df73c; }
    
    function func_16A3(var arg0, var arg1, var arg2, var arg3, var arg4, var arg5) returns (var r0, var arg5, var r2) {
        r2 = arg0;
        var var1 = arg1;
        var var2 = arg4;
    
        if (var2 >= var1) { assert(); }
    
        r2 = msg.data[var2 * 0x20 + r2:var2 * 0x20 + r2 + 0x20] & (0x01 << 0xa0) - 0x01;
        var1 = arg2;
        var2 = arg3;
        var var3 = arg4;
    
        if (var3 >= var2) { assert(); }
    
        var1 = msg.data[var3 * 0x20 + var1:var3 * 0x20 + var1 + 0x20];
        r0, arg5, r2 = 
func_450E(arg5, r2, var1);
        // Error: Could not resolve method call return address!
    }
    
    function totalSupply() returns (var r0) {
        var var0 = 0x00;
    
        if (storage[0x97] & (0x01 << 0xa0) - 0x01) {
            var var1 = storage[0x97] & (0x01 << 0xa0) - 0x01 & (0x01 << 0xa0) - 0x01;
            var var2 = 0x18160ddd;
            var temp0 = memory[0x40:0x60];
            memory[temp0:temp0 + 0x20] = (var2 & 0xffffffff) << 0xe0;
            var var3 = temp0 + 0x04;
            var var4 = 0x20;
            var var5 = memory[0x40:0x60];
            var var6 = var3 - var5;
            var var7 = var5;
            var var8 = var1;
            var var9 = !address(var8).code.length;
        
            if (var9) { revert(memory[0x00:0x00]); }
        
            var temp1;
            temp1, memory[var5:var5 + var4] = address(var8).staticcall.gas(msg.gas)(memory[var7:var7 + var6]);
            var4 = !temp1;
        
            if (!var4) {
                var1 = memory[0x40:0x60];
                var2 = returndata.length;
            
                if (var2 >= 0x20) { return memory[var1:var1 + 0x20]; }
                else { revert(memory[0x00:0x00]); }
            } else {
                var temp2 = returndata.length;
                memory[0x00:0x00 + temp2] = returndata[0x00:0x00 + temp2];
                revert(memory[0x00:0x00 + returndata.length]);
            }
        } else {
            var temp3 = memory[0x40:0x60];
            memory[temp3:temp3 + 0x20] = 0x461bcd << 0xe5;
            memory[temp3 + 0x04:temp3 + 0x04 + 0x20] = 0x20;
            memory[temp3 + 0x24:temp3 + 0x24 + 0x20] = 0x04;
            memory[temp3 + 0x44:temp3 + 0x44 + 0x20] = 0x50523031 << 0xe0;
            var temp4 = memory[0x40:0x60];
            revert(memory[temp4:temp4 + temp3 - temp4 + 0x64]);
        }
    }
    
    function priceOracle() returns (var r0) { return storage[0x9c] & (0x01 << 0xa0) - 0x01; }
    
    function PERMIT_TYPEHASH() returns (var r0) { return 0x6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9; }
    
    function decimals() returns (var r0) {
        var var0 = 0x00;
    
        if (storage[0x97] & (0x01 << 0xa0) - 0x01) {
            var var1 = storage[0x97] & (0x01 << 0xa0) - 0x01 & (0x01 << 0xa0) - 0x01;
            var var2 = 0x313ce567;
            var temp0 = memory[0x40:0x60];
            memory[temp0:temp0 + 0x20] = (var2 & 0xffffffff) << 0xe0;
            var var3 = temp0 + 0x04;
            var var4 = 0x20;
            var var5 = memory[0x40:0x60];
            var var6 = var3 - var5;
            var var7 = var5;
            var var8 = var1;
            var var9 = !address(var8).code.length;
        
            if (var9) { revert(memory[0x00:0x00]); }
        
            var temp1;
            temp1, memory[var5:var5 + var4] = address(var8).staticcall.gas(msg.gas)(memory[var7:var7 + var6]);
            var4 = !temp1;
        
            if (!var4) {
                var1 = memory[0x40:0x60];
                var2 = returndata.length;
            
                if (var2 >= 0x20) { return memory[var1:var1 + 0x20]; }
                else { revert(memory[0x00:0x00]); }
            } else {
                var temp2 = returndata.length;
                memory[0x00:0x00 + temp2] = returndata[0x00:0x00 + temp2];
                revert(memory[0x00:0x00 + returndata.length]);
            }
        } else {
            var temp3 = memory[0x40:0x60];
            memory[temp3:temp3 + 0x20] = 0x461bcd << 0xe5;
            memory[temp3 + 0x04:temp3 + 0x04 + 0x20] = 0x20;
            memory[temp3 + 0x24:temp3 + 0x24 + 0x20] = 0x04;
            memory[temp3 + 0x44:temp3 + 0x44 + 0x20] = 0x50523031 << 0xe0;
            var temp4 = memory[0x40:0x60];
            revert(memory[temp4:temp4 + temp3 - temp4 + 0x64]);
        }
    }
    
    function contact() returns (var r0) {
        var temp0 = storage[0x0104];
        var temp1 = memory[0x40:0x60];
        var temp2 = (temp0 & !(temp0 & 0x01) * 0x0100 + ~0x00) / 0x02;
        memory[0x40:0x60] = temp1 + (temp2 + 0x1f) / 0x20 * 0x20 + 0x20;
        memory[temp1:temp1 + 0x20] = temp2;
        var var0 = 0x60;
        var var1 = temp1;
        var var3 = temp2;
        var var2 = 0x0104;
        var var4 = var1 + 0x20;
        var var5 = var2;
        var var6 = var3;
    
        if (!var6) {
        label_1D9E:
            return var1;
        } else if (0x1f < var6) {
            var temp3 = var4;
            var temp4 = temp3 + var6;
            var4 = temp4;
            memory[0x00:0x20] = var5;
            var temp5 = keccak256(memory[0x00:0x20]);
            memory[temp3:temp3 + 0x20] = storage[temp5];
            var5 = temp5 + 0x01;
            var6 = temp3 + 0x20;
        
            if (var4 <= var6) { goto label_1D95; }
        
        label_1D81:
            var temp6 = var5;
            var temp7 = var6;
            memory[temp7:temp7 + 0x20] = storage[temp6];
            var5 = temp6 + 0x01;
            var6 = temp7 + 0x20;
        
            if (var4 > var6) { goto label_1D81; }
        
        label_1D95:
            var temp8 = var4;
            var temp9 = temp8 + (var6 - temp8 & 0x1f);
            var6 = temp8;
            var4 = temp9;
            goto label_1D9E;
        } else {
            var temp10 = var4;
            memory[temp10:temp10 + 0x20] = storage[var5] / 0x0100 * 0x0100;
            var4 = temp10 + 0x20;
            var6 = var6;
            goto label_1D9E;
        }
    }
    
    function DOMAIN_SEPARATOR() returns (var r0) { return storage[0x0105]; }
    
    function rules() returns (var r0, var r1) {
        r1 = 0x60;
        var var1 = r1;
        var var2 = 0x0102;
        var var3 = 0x0103;
        var temp0 = storage[var2];
        var temp1 = memory[0x40:0x60];
        memory[0x40:0x60] = temp1 + temp0 * 0x20 + 0x20;
        var var4 = temp1;
        var var5 = var2;
        var var6 = temp0;
        memory[var4:var4 + 0x20] = var6;
        var var7 = var4 + 0x20;
        var var8 = var5;
        var var9 = storage[var8];
    
        if (!var9) {
        label_21E5:
            var2 = var4;
            var temp2 = var3;
            var temp3 = storage[temp2];
            var temp4 = memory[0x40:0x60];
            memory[0x40:0x60] = temp4 + temp3 * 0x20 + 0x20;
            var4 = temp4;
            var5 = temp2;
            var6 = temp3;
            memory[var4:var4 + 0x20] = var6;
            var7 = var4 + 0x20;
            var8 = var5;
            var9 = storage[var8];
        
            if (!var9) {
            label_2237:
                r1 = var4;
                r0 = var2;
                return r0, r1;
            } else {
                var temp5 = var7;
                var temp6 = temp5 + var9 * 0x20;
                var7 = temp6;
                memory[0x00:0x20] = var8;
                var temp7 = keccak256(memory[0x00:0x20]);
                memory[temp5:temp5 + 0x20] = storage[temp7];
                var9 = temp5 + 0x20;
                var8 = temp7 + 0x01;
            
                if (var7 <= var9) { goto label_2237; }
            
            label_2223:
                var temp8 = var8;
                var temp9 = var9;
                memory[temp9:temp9 + 0x20] = storage[temp8];
                var9 = temp9 + 0x20;
                var8 = temp8 + 0x01;
            
                if (var7 > var9) { goto label_2223; }
                else { goto label_2237; }
            }
        } else {
            var temp10 = var7;
            var temp11 = temp10 + var9 * 0x20;
            var7 = temp11;
            memory[0x00:0x20] = var8;
            var temp12 = keccak256(memory[0x00:0x20]);
            memory[temp10:temp10 + 0x20] = storage[temp12];
            var9 = temp10 + 0x20;
            var8 = temp12 + 0x01;
        
            if (var7 <= var9) { goto label_21E5; }
        
        label_21D1:
            var temp13 = var8;
            var temp14 = var9;
            memory[temp14:temp14 + 0x20] = storage[temp13];
            var9 = temp14 + 0x20;
            var8 = temp13 + 0x01;
        
            if (var7 > var9) { goto label_21D1; }
            else { goto label_21E5; }
        }
    }
    
    function func_251A(var arg0, var arg1, var arg2) {
        var var0 = arg0;
        var var1 = arg1;
        
func_47A8(arg2, var0, var1);
        // Error: Could not resolve method call return address!
    }
    
    function func_25C5() returns (var r0) { return 0x604bdf0208a879f7d9fa63ff2f539804aaf6f7876eaa13d531bdc957f1c0284f; }
    
    function renounceOwnership() {
        var var0 = 0x26b9;
        var0 = 
burn();
        var temp0 = (0x01 << 0xa0) - 0x01;
    
        if (var0 & temp0 == temp0 & storage[0x65]) {
            log(memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x00], [0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0, storage[0x65] & (0x01 << 0xa0) - 0x01, 0x00]);
            storage[0x65] = storage[0x65] & ~((0x01 << 0xa0) - 0x01);
            return;
        } else {
            var temp1 = memory[0x40:0x60];
            memory[temp1:temp1 + 0x20] = 0x461bcd << 0xe5;
            memory[temp1 + 0x04:temp1 + 0x04 + 0x20] = 0x20;
            memory[temp1 + 0x24:temp1 + 0x24 + 0x20] = 0x20;
            var temp2 = memory[0x00:0x20];
            memory[0x00:0x20] = code[0x56b9:0x56d9];
            var temp3 = memory[0x00:0x20];
            memory[0x00:0x20] = temp2;
            memory[temp1 + 0x44:temp1 + 0x44 + 0x20] = temp3;
            var temp4 = memory[0x40:0x60];
            revert(memory[temp4:temp4 + temp1 - temp4 + 0x64]);
        }
    }
    
    function func_2B12(var arg0, var arg1) returns (var r0) {
        var temp0 = arg0;
        arg0 = arg1;
        arg1 = temp0;
        r0 = 
func_4AE6(arg0, arg1);
        // Error: Could not resolve method call return address!
    }
    
    function owner() returns (var r0) { return storage[0x65] & (0x01 << 0xa0) - 0x01; }
    
    function symbol() returns (var r0) {
        var var0 = 0x60;
    
        if (storage[0x97] & (0x01 << 0xa0) - 0x01) {
            var var1 = storage[0x97] & (0x01 << 0xa0) - 0x01 & (0x01 << 0xa0) - 0x01;
            var var2 = 0x95d89b41;
            var temp0 = memory[0x40:0x60];
            memory[temp0:temp0 + 0x20] = (var2 & 0xffffffff) << 0xe0;
            var var3 = temp0 + 0x04;
            var var4 = 0x00;
            var var5 = memory[0x40:0x60];
            var var6 = var3 - var5;
            var var7 = var5;
            var var8 = var1;
            var var9 = !address(var8).code.length;
        
            if (var9) { revert(memory[0x00:0x00]); }
        
            var temp1;
            temp1, memory[var5:var5 + var4] = address(var8).staticcall.gas(msg.gas)(memory[var7:var7 + var6]);
            var4 = !temp1;
        
            if (!var4) {
                var temp2 = memory[0x40:0x60];
                var1 = temp2;
                var temp3 = returndata.length;
                memory[var1:var1 + temp3] = returndata[0x00:0x00 + temp3];
                var temp4 = returndata.length;
                var2 = temp4;
                memory[0x40:0x60] = var1 + (var2 + 0x1f & ~0x1f);
            
                if (var2 < 0x20) { revert(memory[0x00:0x00]); }
            
                var temp5 = var1;
                var1 = memory[0x40:0x60];
                var2 = temp5 + var2;
                var3 = temp5;
                var4 = var3;
                var5 = memory[var4:var4 + 0x20];
                var6 = var1;
            
                if (var5 > 0x01 << 0x20) { revert(memory[0x00:0x00]); }
            
                var temp6 = var3 + var5;
                var5 = temp6;
                var6 = var6;
                var7 = var5 + 0x20;
            
                if (var7 > var2) { revert(memory[0x00:0x00]); }
            
                var temp7 = memory[var5:var5 + 0x20];
                var8 = temp7;
            
                if ((var2 < var8 + var7) | (var8 > 0x01 << 0x20)) { revert(memory[0x00:0x00]); }
            
                var temp8 = var6;
                memory[temp8:temp8 + 0x20] = var8;
                var temp9 = var5;
                var5 = temp8 + 0x20;
                var6 = temp9 + 0x20;
                var7 = memory[temp9:temp9 + 0x20];
                var8 = var7;
                var9 = var5;
                var var10 = var6;
                var var11 = 0x00;
            
                if (var11 >= var8) {
                label_1457:
                    var temp10 = var7;
                    var5 = temp10 + var5;
                    var6 = temp10 & 0x1f;
                
                    if (!var6) {
                        memory[0x40:0x60] = var5;
                        return var1;
                    } else {
                        var temp11 = var6;
                        var temp12 = var5 - temp11;
                        memory[temp12:temp12 + 0x20] = ~(0x0100 ** (0x20 - temp11) - 0x01) & memory[temp12:temp12 + 0x20];
                        memory[0x40:0x60] = temp12 + 0x20;
                        return var1;
                    }
                } else {
                label_1448:
                    var temp13 = var11;
                    memory[temp13 + var9:temp13 + var9 + 0x20] = memory[temp13 + var10:temp13 + var10 + 0x20];
                    var11 = temp13 + 0x20;
                
                    if (var11 >= var8) { goto label_1457; }
                    else { goto label_1448; }
                }
            } else {
                var temp14 = returndata.length;
                memory[0x00:0x00 + temp14] = returndata[0x00:0x00 + temp14];
                revert(memory[0x00:0x00 + returndata.length]);
            }
        } else {
            var temp15 = memory[0x40:0x60];
            memory[temp15:temp15 + 0x20] = 0x461bcd << 0xe5;
            memory[temp15 + 0x04:temp15 + 0x04 + 0x20] = 0x20;
            memory[temp15 + 0x24:temp15 + 0x24 + 0x20] = 0x04;
            memory[temp15 + 0x44:temp15 + 0x44 + 0x20] = 0x50523031 << 0xe0;
            var temp16 = memory[0x40:0x60];
            revert(memory[temp16:temp16 + temp15 - temp16 + 0x64]);
        }
    }
    
    function func_2E50() returns (var r0) { return 0x9a42d39fe98978ff30e5bb6104a6ce6f70ac074c10013f1bce9743e2dccce41b; }
    
    function TRANSFER_WITH_AUTHORIZATION_TYPEHASH() returns (var r0) { return 0x7c7c6cdb67a18743f49ec6fa9b35f50d52ed05cbed4cc592e13b44501c1a2267; }
    
    function func_325C(var arg0, var arg1, var arg2) returns (var r0, var arg2, var r2) {
        r2 = arg0;
        var var1 = arg1;
        r0, arg2, r2 = 
func_450E(arg2, r2, var1);
        // Error: Could not resolve method call return address!
    }
    
    function realm() returns (var r0) { return storage[0x9b] & (0x01 << 0xa0) - 0x01; }
    
    function trustedIntermediaries() returns (var r0) {
        var var0 = 0x60;
        var temp0 = storage[0x9a];
        var temp1 = memory[0x40:0x60];
        memory[0x40:0x60] = temp1 + temp0 * 0x20 + 0x20;
        var var1 = temp1;
        var var2 = 0x9a;
        var var3 = temp0;
        memory[var1:var1 + 0x20] = var3;
        var var4 = var1 + 0x20;
        var var5 = var2;
        var var6 = storage[var5];
    
        if (!var6) { return var1; }
    
        var temp2 = var4;
        var temp3 = temp2 + var6 * 0x20;
        var4 = temp3;
        memory[0x00:0x20] = var5;
        var temp4 = keccak256(memory[0x00:0x20]);
        memory[temp2:temp2 + 0x20] = storage[temp4] & (0x01 << 0xa0) - 0x01;
        var5 = temp4 + 0x01;
        var6 = temp2 + 0x20;
    
        if (var4 <= var6) { goto label_34E7; }
    
    label_34C9:
        var temp5 = var5;
        var temp6 = var6;
        memory[temp6:temp6 + 0x20] = storage[temp5] & (0x01 << 0xa0) - 0x01;
        var5 = temp5 + 0x01;
        var6 = temp6 + 0x20;
    
        if (var4 > var6) { goto label_34C9; }
    
    label_34E7:
        return var1;
    }
    
    function func_358F(var arg0, var arg1, var arg2, var arg3) returns (var r0) {
        var temp0 = msg.data[arg3 * 0x20 + arg1:arg3 * 0x20 + arg1 + 0x20];
        arg1 = arg0;
        arg2 = temp0;
        r0 = 
func_4B9C(arg1, arg2);
        // Error: Could not resolve method call return address!
    }
    
    function func_36B2(var arg0, var arg1, var arg2, var arg3, var arg4, var arg5, var arg6) returns (var r0, var arg3, var arg4) {
        arg4 = msg.data[arg6 * 0x20 + arg4:arg6 * 0x20 + arg4 + 0x20] & (0x01 << 0xa0) - 0x01;
        arg5 = arg0;
        arg6 = arg1;
        var var0 = arg2;
    
        if (var0 >= arg6) { assert(); }
    
        arg5 = msg.data[var0 * 0x20 + arg5:var0 * 0x20 + arg5 + 0x20];
        r0, arg3, arg4 = 
func_450E(arg3, arg4, arg5);
        // Error: Could not resolve method call return address!
    }
    
    function upgradeToV2() {
        var var0 = 0x3843;
        var0 = 
burn();
        var temp0 = (0x01 << 0xa0) - 0x01;
    
        if (var0 & temp0 == temp0 & storage[0x65]) {
            var0 = 0x389b;
            
func_4BF6();
            return;
        } else {
            var temp1 = memory[0x40:0x60];
            memory[temp1:temp1 + 0x20] = 0x461bcd << 0xe5;
            memory[temp1 + 0x04:temp1 + 0x04 + 0x20] = 0x20;
            memory[temp1 + 0x24:temp1 + 0x24 + 0x20] = 0x20;
            var temp2 = memory[0x00:0x20];
            memory[0x00:0x20] = code[0x56b9:0x56d9];
            var temp3 = memory[0x00:0x20];
            memory[0x00:0x20] = temp2;
            memory[temp1 + 0x44:temp1 + 0x44 + 0x20] = temp3;
            var temp4 = memory[0x40:0x60];
            revert(memory[temp4:temp4 + temp1 - temp4 + 0x64]);
        }
    }
    
    function processor() returns (var r0) { return storage[0x97] & (0x01 << 0xa0) - 0x01; }
    
    function func_3A72(var arg0, var arg1, var arg2) {
        var var0 = arg0;
        var var1 = arg1;
        
func_4B3F(arg2, var0, var1);
        // Error: Could not resolve method call return address!
    }
    
    function CANCEL_AUTHORIZATION_TYPEHASH() returns (var r0) { return 0x158b0a9edf7a828aad02f63cd515c68ef2f50ba807396f6d12842833a1597429; }
    
    function VERSION() returns (var r0) { return 0x02; }
    
    function burn() returns (var r0) { return msg.sender; }
    
    function func_4384(var arg0, var arg1, var arg2) {
        var temp0 = memory[0x40:0x60];
        memory[temp0:temp0 + 0x20] = 0xe1f21c67 << 0xe0;
        var temp1 = (0x01 << 0xa0) - 0x01;
        memory[temp0 + 0x04:temp0 + 0x04 + 0x20] = temp1 & arg0;
        memory[temp0 + 0x24:temp0 + 0x24 + 0x20] = temp1 & arg1;
        memory[temp0 + 0x44:temp0 + 0x44 + 0x20] = arg2;
        var var0 = storage[0x97] & temp1;
        var var1 = 0xe1f21c67;
        var var2 = temp0 + 0x64;
        var var3 = 0x00;
        var var4 = memory[0x40:0x60];
        var var5 = temp0 - var4 + 0x64;
        var var6 = var4;
        var var7 = var3;
        var var8 = var0;
        var var9 = !address(var8).code.length;
    
        if (var9) { revert(memory[0x00:0x00]); }
    
        var temp2;
        temp2, memory[var4:var4 + var3] = address(var8).call.gas(msg.gas).value(var7)(memory[var6:var6 + var5]);
        var3 = !temp2;
    
        if (!var3) {
            var temp3 = memory[0x40:0x60];
            memory[temp3:temp3 + 0x20] = arg2;
            var temp4 = memory[0x40:0x60];
            var temp5 = (0x01 << 0xa0) - 0x01;
            log(memory[temp4:temp4 + temp3 - temp4 + 0x20], [0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925, stack[-7] & (0x01 << 0xa0) - 0x01, stack[-6] & (0x01 << 0xa0) - 0x01]);
            return;
        } else {
            var temp6 = returndata.length;
            memory[0x00:0x00 + temp6] = returndata[0x00:0x00 + temp6];
            revert(memory[0x00:0x00 + returndata.length]);
        }
    }
    
    function isRealmAdministrator(var arg0, var arg1) returns (var r0) {
        var var0 = 0x00;
    
        if (arg1 & (0x01 << 0xa0) - 0x01) {
            memory[0x00:0x20] = arg1 & (0x01 << 0xa0) - 0x01;
            memory[0x20:0x40] = arg0;
            return storage[keccak256(memory[0x00:0x40])] & 0xff;
        } else {
            var temp0 = memory[0x40:0x60];
            memory[temp0:temp0 + 0x20] = 0x461bcd << 0xe5;
            var temp1 = temp0 + 0x04;
            var temp2 = temp1 + 0x20;
            memory[temp1:temp1 + 0x20] = temp2 - temp1;
            memory[temp2:temp2 + 0x20] = 0x22;
            var temp3 = temp2 + 0x20;
            memory[temp3:temp3 + 0x22] = code[0x56d9:0x56fb];
            var temp4 = memory[0x40:0x60];
            revert(memory[temp4:temp4 + (temp3 + 0x40) - temp4]);
        }
    }
    
    function func_44A7(var arg0, var arg1) {
        var var0 = 0x44b1;
        var var1 = arg0;
        var var2 = arg1;
        var0 = 
isRealmAdministrator(var1, var2);
    
        if (var0) {
            memory[0x00:0x20] = arg1 & (0x01 << 0xa0) - 0x01;
            memory[0x20:0x40] = arg0;
            var temp0 = keccak256(memory[0x00:0x40]);
            storage[temp0] = storage[temp0] & ~0xff;
            return;
        } else {
            var temp1 = memory[0x40:0x60];
            memory[temp1:temp1 + 0x20] = 0x461bcd << 0xe5;
            var temp2 = temp1 + 0x04;
            var temp3 = temp2 + 0x20;
            memory[temp2:temp2 + 0x20] = temp3 - temp2;
            memory[temp3:temp3 + 0x20] = 0x21;
            var temp4 = temp3 + 0x20;
            memory[temp4:temp4 + 0x21] = code[0x5677:0x5698];
            var temp5 = memory[0x40:0x60];
            revert(memory[temp5:temp5 + (temp4 + 0x40) - temp5]);
        }
    }
    
    function func_450E(var arg0, var arg1, var arg2) returns (var r0, var arg0, var arg1) {
        var temp0 = memory[0x40:0x60];
        memory[temp0:temp0 + 0x20] = 0x23b872dd << 0xe0;
        var temp1 = (0x01 << 0xa0) - 0x01;
        memory[temp0 + 0x04:temp0 + 0x04 + 0x20] = temp1 & arg0;
        memory[temp0 + 0x24:temp0 + 0x24 + 0x20] = temp1 & arg1;
        memory[temp0 + 0x44:temp0 + 0x44 + 0x20] = arg2;
        var var0 = 0x00;
        var var1 = var0;
        var var2 = var1;
        var var3 = storage[0x97] & temp1;
        var var4 = 0x23b872dd;
        var var5 = temp0 + 0x64;
        var var6 = 0x60;
        var var7 = memory[0x40:0x60];
        var var8 = temp0 - var7 + 0x64;
        var var9 = var7;
        var var10 = var2;
        var var11 = var3;
        var var12 = !address(var11).code.length;
    
        if (var12) { revert(memory[0x00:0x00]); }
    
        var temp2;
        temp2, memory[var7:var7 + var6] = address(var11).call.gas(msg.gas).value(var10)(memory[var9:var9 + var8]);
        var6 = !temp2;
    
        if (!var6) {
            var3 = memory[0x40:0x60];
            var4 = returndata.length;
        
            if (var4 < 0x60) { revert(memory[0x00:0x00]); }
        
            var temp3 = var3;
            var temp4 = memory[temp3:temp3 + 0x20];
            var temp5 = memory[temp3 + 0x20:temp3 + 0x20 + 0x20];
            var temp6 = memory[temp3 + 0x40:temp3 + 0x40 + 0x20];
            var temp7 = memory[0x40:0x60];
            memory[temp7:temp7 + 0x20] = temp6;
            var temp8 = memory[0x40:0x60];
            var temp9 = (0x01 << 0xa0) - 0x01;
            var temp10 = memory[0x00:0x20];
            memory[0x00:0x20] = code[0x5729:0x5749];
            var temp11 = memory[0x00:0x20];
            memory[0x00:0x20] = temp10;
            log(memory[temp8:temp8 + temp7 - temp8 + 0x20], [memory[0x00:0x20], stack[-8] & (0x01 << 0xa0) - 0x01, memory[stack[-2] + 0x20:stack[-2] + 0x20 + 0x20] & (0x01 << 0xa0) - 0x01]);
            arg1 = temp6;
            arg0 = temp5;
            r0 = temp4;
            return r0, arg0, arg1;
        } else {
            var temp12 = returndata.length;
            memory[0x00:0x00 + temp12] = returndata[0x00:0x00 + temp12];
            revert(memory[0x00:0x00 + returndata.length]);
        }
    }
    
    function func_45EB(var arg0, var arg1) {
        var var0 = 0x45f5;
        var var1 = arg0;
        var var2 = arg1;
        var0 = 
isRealmAdministrator(var1, var2);
    
        if (!var0) {
            memory[0x00:0x20] = arg1 & (0x01 << 0xa0) - 0x01;
            memory[0x20:0x40] = arg0;
            var temp0 = keccak256(memory[0x00:0x40]);
            storage[temp0] = (storage[temp0] & ~0xff) | 0x01;
            return;
        } else {
            var temp1 = memory[0x40:0x60];
            memory[temp1:temp1 + 0x20] = 0x461bcd << 0xe5;
            memory[temp1 + 0x04:temp1 + 0x04 + 0x20] = 0x20;
            memory[temp1 + 0x24:temp1 + 0x24 + 0x20] = 0x1f;
            memory[temp1 + 0x44:temp1 + 0x44 + 0x20] = 0x526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500;
            var temp2 = memory[0x40:0x60];
            revert(memory[temp2:temp2 + temp1 - temp2 + 0x64]);
        }
    }
    
    function func_466C(var arg0, var arg1, var arg2, var arg3) {
        if (block.timestamp <= arg2) {
            var temp2 = memory[0x40:0x60];
            memory[temp2:temp2 + 0x20] = 0x461bcd << 0xe5;
            memory[temp2 + 0x04:temp2 + 0x04 + 0x20] = 0x20;
            memory[temp2 + 0x24:temp2 + 0x24 + 0x20] = 0x04;
            memory[temp2 + 0x44:temp2 + 0x44 + 0x20] = 0x22ac1819 << 0xe1;
            var temp3 = memory[0x40:0x60];
            revert(memory[temp3:temp3 + temp2 - temp3 + 0x64]);
        } else if (block.timestamp < arg3) {
            var var0 = 0x46f0;
            var var1 = arg0;
            var var2 = arg1;
            
func_4A2F(var1, var2);
            return;
        } else {
            var temp0 = memory[0x40:0x60];
            memory[temp0:temp0 + 0x20] = 0x461bcd << 0xe5;
            memory[temp0 + 0x04:temp0 + 0x04 + 0x20] = 0x20;
            memory[temp0 + 0x24:temp0 + 0x24 + 0x20] = 0x04;
            memory[temp0 + 0x44:temp0 + 0x44 + 0x20] = 0x45583031 << 0xe0;
            var temp1 = memory[0x40:0x60];
            revert(memory[temp1:temp1 + temp0 - temp1 + 0x64]);
        }
    }
    
    function func_46F6(var arg0, var arg1, var arg2, var arg3, var arg4) returns (var r0) {
        var temp0 = arg4;
        var temp1 = keccak256(memory[temp0 + 0x20:temp0 + 0x20 + memory[temp0:temp0 + 0x20]]);
        var temp2 = memory[0x40:0x60];
        memory[temp2 + 0x20:temp2 + 0x20 + 0x20] = 0x1901 << 0xf0;
        memory[temp2 + 0x22:temp2 + 0x22 + 0x20] = arg0;
        memory[temp2 + 0x42:temp2 + 0x42 + 0x20] = temp1;
        var temp3 = memory[0x40:0x60];
        memory[temp3:temp3 + 0x20] = temp2 - temp3 + 0x42;
        memory[0x40:0x60] = temp2 + 0x62;
        var var1 = keccak256(memory[temp3 + 0x20:temp3 + 0x20 + memory[temp3:temp3 + 0x20]]);
        var var0 = 0x00;
        var var2 = 0x4742;
        var var3 = var1;
        var var4 = arg1;
        var var5 = arg2;
        var var6 = arg3;
        return 
func_4FA3(var3, var4, var5, var6);
    }
    
    function func_474D(var arg0, var arg1) {
        var temp0 = arg0 & (0x01 << 0xa0) - 0x01;
        memory[0x00:0x20] = temp0;
        memory[0x20:0x40] = 0x0107;
        var temp1 = keccak256(memory[0x00:0x40]);
        var temp2 = arg1;
        memory[0x00:0x20] = temp2;
        memory[0x20:0x40] = temp1;
        var temp3 = keccak256(memory[0x00:0x40]);
        storage[temp3] = (storage[temp3] & ~0xff) | 0x01;
        log(memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x00], [0x98de503528ee59b575ef0c0a2576a82497bfc029a5685b209e9ec333479b10a5, stack[-2] & (0x01 << 0xa0) - 0x01, stack[-1]]);
    }
    
    function func_47A8(var arg0, var arg1, var arg2) {
        var temp0 = memory[0x40:0x60];
        memory[temp0:temp0 + 0x20] = 0xf019c267 << 0xe0;
        var temp1 = (0x01 << 0xa0) - 0x01;
        memory[temp0 + 0x04:temp0 + 0x04 + 0x20] = temp1 & arg0;
        memory[temp0 + 0x24:temp0 + 0x24 + 0x20] = temp1 & arg1;
        memory[temp0 + 0x44:temp0 + 0x44 + 0x20] = arg2;
        var var0 = storage[0x97] & temp1;
        var var1 = 0xf019c267;
        var var2 = temp0 + 0x64;
        var var3 = 0x00;
        var var4 = memory[0x40:0x60];
        var var5 = temp0 - var4 + 0x64;
        var var6 = var4;
        var var7 = var3;
        var var8 = var0;
        var var9 = !address(var8).code.length;
    
        if (var9) { revert(memory[0x00:0x00]); }
    
        var temp2;
        temp2, memory[var4:var4 + var3] = address(var8).call.gas(msg.gas).value(var7)(memory[var6:var6 + var5]);
        var3 = !temp2;
    
        if (!var3) {
            var temp3 = memory[0x40:0x60];
            memory[temp3:temp3 + 0x20] = 0x6eb1769f << 0xe1;
            var temp4 = (0x01 << 0xa0) - 0x01;
            memory[temp3 + 0x04:temp3 + 0x04 + 0x20] = temp4 & arg0;
            memory[temp3 + 0x24:temp3 + 0x24 + 0x20] = temp4 & arg1;
            var0 = 0x00;
            var1 = storage[0x97] & temp4;
            var2 = 0xdd62ed3e;
            var3 = temp3 + 0x44;
            var4 = 0x20;
            var5 = memory[0x40:0x60];
            var6 = temp3 - var5 + 0x44;
            var7 = var5;
            var8 = var1;
            var9 = !address(var8).code.length;
        
            if (var9) { revert(memory[0x00:0x00]); }
        
            var temp5;
            temp5, memory[var5:var5 + var4] = address(var8).staticcall.gas(msg.gas)(memory[var7:var7 + var6]);
            var4 = !temp5;
        
            if (!var4) {
                var1 = memory[0x40:0x60];
                var2 = returndata.length;
            
                if (var2 < 0x20) { revert(memory[0x00:0x00]); }
            
                var temp6 = memory[0x40:0x60];
                memory[temp6:temp6 + 0x20] = memory[var1:var1 + 0x20];
                var temp7 = memory[0x40:0x60];
                var temp8 = (0x01 << 0xa0) - 0x01;
                log(memory[temp7:temp7 + temp6 - temp7 + 0x20], [0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925, stack[-6] & (0x01 << 0xa0) - 0x01, stack[-5] & (0x01 << 0xa0) - 0x01]);
                return;
            } else {
                var temp9 = returndata.length;
                memory[0x00:0x00 + temp9] = returndata[0x00:0x00 + temp9];
                revert(memory[0x00:0x00 + returndata.length]);
            }
        } else {
            var temp10 = returndata.length;
            memory[0x00:0x00 + temp10] = returndata[0x00:0x00 + temp10];
            revert(memory[0x00:0x00 + returndata.length]);
        }
    }
    
    function func_48EF() returns (var r0) { return !address(address(this)).code.length; }
    
    function func_4A2F(var arg0, var arg1) {
        var var0 = 0x00;
        memory[var0:var0 + 0x20] = arg0 & (0x01 << 0xa0) - 0x01;
        memory[0x20:0x40] = 0x0107;
        var temp0 = keccak256(memory[var0:var0 + 0x40]);
        memory[var0:var0 + 0x20] = arg1;
        memory[0x20:0x40] = temp0;
        var var1 = storage[keccak256(memory[var0:var0 + 0x40])] & 0xff;
    
        if (var1 > 0x02) { assert(); }
    
        if (var1 == var0) { return; }
    
        var temp1 = memory[0x40:0x60];
        memory[temp1:temp1 + 0x20] = 0x461bcd << 0xe5;
        memory[temp1 + 0x04:temp1 + 0x04 + 0x20] = 0x20;
        memory[temp1 + 0x24:temp1 + 0x24 + 0x20] = 0x04;
        memory[temp1 + 0x44:temp1 + 0x44 + 0x20] = 0x45583033 << 0xe0;
        var temp2 = memory[0x40:0x60];
        revert(memory[temp2:temp2 + temp1 - temp2 + 0x64]);
    }
    
    function func_4AE6(var arg0, var arg1) returns (var r0) {
        var var0 = 0x00;
    
        if (!arg0) { return 0x00; }
    
        var var1 = arg1 * arg0;
        var var2 = arg1;
        var var3 = arg0;
        var var4 = var1;
    
        if (!var3) { assert(); }
    
        if (var4 / var3 == var2) { return var1; }
    
        var temp0 = memory[0x40:0x60];
        memory[temp0:temp0 + 0x20] = 0x461bcd << 0xe5;
        var temp1 = temp0 + 0x04;
        var temp2 = temp1 + 0x20;
        memory[temp1:temp1 + 0x20] = temp2 - temp1;
        memory[temp2:temp2 + 0x20] = 0x21;
        var temp3 = temp2 + 0x20;
        memory[temp3:temp3 + 0x21] = code[0x5698:0x56b9];
        var temp4 = memory[0x40:0x60];
        revert(memory[temp4:temp4 + (temp3 + 0x40) - temp4]);
    }
    
    function func_4B3F(var arg0, var arg1, var arg2) {
        var temp0 = memory[0x40:0x60];
        memory[temp0:temp0 + 0x20] = 0xbcdd6121 << 0xe0;
        var temp1 = (0x01 << 0xa0) - 0x01;
        memory[temp0 + 0x04:temp0 + 0x04 + 0x20] = temp1 & arg0;
        memory[temp0 + 0x24:temp0 + 0x24 + 0x20] = temp1 & arg1;
        memory[temp0 + 0x44:temp0 + 0x44 + 0x20] = arg2;
        var var0 = storage[0x97] & temp1;
        var var1 = 0xbcdd6121;
        var var2 = temp0 + 0x64;
        var var3 = 0x00;
        var var4 = memory[0x40:0x60];
        var var5 = temp0 - var4 + 0x64;
        var var6 = var4;
        var var7 = var3;
        var var8 = var0;
        var var9 = !address(var8).code.length;
    
        if (var9) { revert(memory[0x00:0x00]); }
    
        var temp2;
        temp2, memory[var4:var4 + var3] = address(var8).call.gas(msg.gas).value(var7)(memory[var6:var6 + var5]);
        var3 = !temp2;
    
        if (!var3) {
            var temp3 = memory[0x40:0x60];
            memory[temp3:temp3 + 0x20] = 0x6eb1769f << 0xe1;
            var temp4 = (0x01 << 0xa0) - 0x01;
            memory[temp3 + 0x04:temp3 + 0x04 + 0x20] = temp4 & arg0;
            memory[temp3 + 0x24:temp3 + 0x24 + 0x20] = temp4 & arg1;
            var0 = 0x00;
            var1 = storage[0x97] & temp4;
            var2 = 0xdd62ed3e;
            var3 = temp3 + 0x44;
            var4 = 0x20;
            var5 = memory[0x40:0x60];
            var6 = temp3 - var5 + 0x44;
            var7 = var5;
            var8 = var1;
            var9 = !address(var8).code.length;
        
            if (var9) { revert(memory[0x00:0x00]); }
        
            var temp5;
            temp5, memory[var5:var5 + var4] = address(var8).staticcall.gas(msg.gas)(memory[var7:var7 + var6]);
            var4 = !temp5;
        
            if (!var4) {
                var1 = memory[0x40:0x60];
                var2 = returndata.length;
            
                if (var2 < 0x20) { revert(memory[0x00:0x00]); }
            
                var temp6 = memory[0x40:0x60];
                memory[temp6:temp6 + 0x20] = memory[var1:var1 + 0x20];
                var temp7 = memory[0x40:0x60];
                var temp8 = (0x01 << 0xa0) - 0x01;
                log(memory[temp7:temp7 + temp6 - temp7 + 0x20], [0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925, stack[-6] & (0x01 << 0xa0) - 0x01, stack[-5] & (0x01 << 0xa0) - 0x01]);
                return;
            } else {
                var temp9 = returndata.length;
                memory[0x00:0x00 + temp9] = returndata[0x00:0x00 + temp9];
                revert(memory[0x00:0x00 + returndata.length]);
            }
        } else {
            var temp10 = returndata.length;
            memory[0x00:0x00 + temp10] = returndata[0x00:0x00 + temp10];
            revert(memory[0x00:0x00 + returndata.length]);
        }
    }
    
    function func_4B9C(var arg0, var arg1) returns (var r0) {
        var var0 = 0x00;
        var temp0 = arg0;
        var var1 = arg1 + temp0;
    
        if (var1 >= temp0) { return var1; }
    
        var temp1 = memory[0x40:0x60];
        memory[temp1:temp1 + 0x20] = 0x461bcd << 0xe5;
        memory[temp1 + 0x04:temp1 + 0x04 + 0x20] = 0x20;
        memory[temp1 + 0x24:temp1 + 0x24 + 0x20] = 0x1b;
        memory[temp1 + 0x44:temp1 + 0x44 + 0x20] = 0x536166654d6174683a206164646974696f6e206f766572666c6f770000000000;
        var temp2 = memory[0x40:0x60];
        revert(memory[temp2:temp2 + temp1 - temp2 + 0x64]);
    }
    
    function func_4BF6() {
        var temp0 = memory[0x40:0x60];
        memory[temp0:temp0 + 0x20] = 0x06fdde03 << 0xe0;
        var var0 = 0x4d40;
        var var1 = storage[0x97] & (0x01 << 0xa0) - 0x01;
        var var2 = 0x06fdde03;
        var var3 = temp0 + 0x04;
        var var4 = 0x00;
        var var5 = memory[0x40:0x60];
        var var6 = temp0 - var5 + 0x04;
        var var7 = var5;
        var var8 = var1;
        var var9 = !address(var8).code.length;
    
        if (var9) { revert(memory[0x00:0x00]); }
    
        var0 = 
func_4C3C(var1, var2, var3, var4, var5, var6, var7, var8, var9);
        storage[0x0105] = var0;
    }
    
    function func_4C3C(var arg0, var arg1, var arg2, var arg3, var arg4, var arg5, var arg6, var arg7, var arg8) returns (var r0) {
        var temp0;
        temp0, memory[arg4:arg4 + arg3] = address(arg7).staticcall.gas(msg.gas)(memory[arg6:arg6 + arg5]);
        arg3 = !temp0;
    
        if (!arg3) {
            var temp1 = memory[0x40:0x60];
            arg0 = temp1;
            var temp2 = returndata.length;
            memory[arg0:arg0 + temp2] = returndata[0x00:0x00 + temp2];
            var temp3 = returndata.length;
            arg1 = temp3;
            memory[0x40:0x60] = arg0 + (arg1 + 0x1f & ~0x1f);
        
            if (arg1 < 0x20) { revert(memory[0x00:0x00]); }
        
            var temp4 = arg0;
            arg0 = memory[0x40:0x60];
            arg1 = temp4 + arg1;
            arg2 = temp4;
            arg4 = memory[arg2:arg2 + 0x20];
            arg3 = arg2;
            arg5 = arg0;
        
            if (arg4 > 0x01 << 0x20) { revert(memory[0x00:0x00]); }
        
            var temp5 = arg2 + arg4;
            arg5 = arg5;
            arg4 = temp5;
            arg6 = arg4 + 0x20;
        
            if (arg6 > arg1) { revert(memory[0x00:0x00]); }
        
            var temp6 = memory[arg4:arg4 + 0x20];
            arg7 = temp6;
        
            if ((arg1 < arg7 + arg6) | (arg7 > 0x01 << 0x20)) { revert(memory[0x00:0x00]); }
        
            var temp7 = arg5;
            memory[temp7:temp7 + 0x20] = arg7;
            var temp8 = arg4;
            arg4 = temp7 + 0x20;
            arg5 = temp8 + 0x20;
            arg6 = memory[temp8:temp8 + 0x20];
            arg7 = arg6;
            arg8 = arg4;
            var var0 = arg5;
            var var1 = 0x00;
        
            if (var1 >= arg7) {
            label_4CF3:
                var temp9 = arg6;
                arg4 = temp9 + arg4;
                arg5 = temp9 & 0x1f;
            
                if (!arg5) {
                    var temp10 = arg4;
                    memory[0x40:0x60] = temp10 + 0x40;
                    memory[temp10:temp10 + 0x20] = 0x01;
                    memory[temp10 + 0x20:temp10 + 0x20 + 0x20] = 0x19 << 0xf9;
                    arg1 = temp10;
                
                label_5275:
                    var temp11 = arg0;
                    var temp12 = keccak256(memory[temp11 + 0x20:temp11 + 0x20 + memory[temp11:temp11 + 0x20]]);
                    var temp13 = arg1;
                    var temp14 = keccak256(memory[temp13 + 0x20:temp13 + 0x20 + memory[temp13:temp13 + 0x20]]);
                    var temp15 = memory[0x40:0x60];
                    memory[temp15 + 0x20:temp15 + 0x20 + 0x20] = 0x8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f;
                    memory[temp15 + 0x40:temp15 + 0x40 + 0x20] = temp12;
                    memory[temp15 + 0x60:temp15 + 0x60 + 0x20] = temp14;
                    memory[temp15 + 0x80:temp15 + 0x80 + 0x20] = CHAINID();
                    memory[temp15 + 0xa0:temp15 + 0xa0 + 0x20] = address(this);
                    var temp16 = memory[0x40:0x60];
                    memory[temp16:temp16 + 0x20] = temp15 - temp16 + 0xa0;
                    memory[0x40:0x60] = temp15 + 0xc0;
                    return keccak256(memory[temp16 + 0x20:temp16 + 0x20 + memory[temp16:temp16 + 0x20]]);
                } else {
                    var temp17 = arg5;
                    var temp18 = arg4 - temp17;
                    memory[temp18:temp18 + 0x20] = ~(0x0100 ** (0x20 - temp17) - 0x01) & memory[temp18:temp18 + 0x20];
                    var temp19 = temp18 + 0x20;
                    memory[0x40:0x60] = temp19 + 0x40;
                    memory[temp19:temp19 + 0x20] = 0x01;
                    memory[temp19 + 0x20:temp19 + 0x20 + 0x20] = 0x19 << 0xf9;
                    arg1 = temp19;
                    goto label_5275;
                }
            } else {
            label_4CE4:
                var temp20 = var1;
                memory[temp20 + arg8:temp20 + arg8 + 0x20] = memory[temp20 + var0:temp20 + var0 + 0x20];
                var1 = temp20 + 0x20;
            
                if (var1 >= arg7) { goto label_4CF3; }
                else { goto label_4CE4; }
            }
        } else {
            var temp21 = returndata.length;
            memory[0x00:0x00 + temp21] = returndata[0x00:0x00 + temp21];
            revert(memory[0x00:0x00 + returndata.length]);
        }
    }
    
    function func_4FA3(var arg0, var arg1, var arg2, var arg3) returns (var r0) {
        var var0 = 0x00;
    
        if (arg3 <= 0x7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0) {
            var var1 = arg1 & 0xff != 0x1b;
        
            if (!var1) {
                if (!var1) {
                label_5058:
                    var temp0 = memory[0x40:0x60];
                    memory[temp0:temp0 + 0x20] = 0x00;
                    var temp1 = temp0 + 0x20;
                    memory[0x40:0x60] = temp1;
                    memory[temp1:temp1 + 0x20] = arg0;
                    memory[temp0 + 0x40:temp0 + 0x40 + 0x20] = arg1 & 0xff;
                    memory[temp0 + 0x60:temp0 + 0x60 + 0x20] = arg2;
                    memory[temp0 + 0x80:temp0 + 0x80 + 0x20] = arg3;
                    var temp2 = memory[0x40:0x60];
                    var1 = 0x00;
                    var var2 = 0x01;
                    var var3 = temp0 + 0xa0;
                    var temp3;
                    temp3, memory[temp2 + ~0x1f:temp2 + ~0x1f + 0x20] = address(var2).staticcall.gas(msg.gas)(memory[temp2:temp2 + temp0 - temp2 + 0xa0]);
                    var var4 = !temp3;
                
                    if (!var4) {
                        var1 = memory[memory[0x40:0x60] + ~0x1f:memory[0x40:0x60] + ~0x1f + 0x20];
                    
                        if (var1 & (0x01 << 0xa0) - 0x01) { return var1; }
                    
                        var temp4 = memory[0x40:0x60];
                        memory[temp4:temp4 + 0x20] = 0x461bcd << 0xe5;
                        memory[temp4 + 0x04:temp4 + 0x04 + 0x20] = 0x20;
                        memory[temp4 + 0x24:temp4 + 0x24 + 0x20] = 0x1c;
                        memory[temp4 + 0x44:temp4 + 0x44 + 0x20] = 0x45435265636f7665723a20696e76616c6964207369676e617475726500000000;
                        var temp5 = memory[0x40:0x60];
                        revert(memory[temp5:temp5 + temp4 - temp5 + 0x64]);
                    } else {
                        var temp6 = returndata.length;
                        memory[0x00:0x00 + temp6] = returndata[0x00:0x00 + temp6];
                        revert(memory[0x00:0x00 + returndata.length]);
                    }
                } else {
                label_5022:
                    var temp7 = memory[0x40:0x60];
                    memory[temp7:temp7 + 0x20] = 0x461bcd << 0xe5;
                    var temp8 = temp7 + 0x04;
                    var temp9 = temp8 + 0x20;
                    memory[temp8:temp8 + 0x20] = temp9 - temp8;
                    memory[temp9:temp9 + 0x20] = 0x26;
                    var temp10 = temp9 + 0x20;
                    memory[temp10:temp10 + 0x26] = code[0x562b:0x5651];
                    var temp11 = memory[0x40:0x60];
                    revert(memory[temp11:temp11 + (temp10 + 0x40) - temp11]);
                }
            } else if (arg1 & 0xff == 0x1c) { goto label_5058; }
            else { goto label_5022; }
        } else {
            var temp12 = memory[0x40:0x60];
            memory[temp12:temp12 + 0x20] = 0x461bcd << 0xe5;
            var temp13 = temp12 + 0x04;
            var temp14 = temp13 + 0x20;
            memory[temp13:temp13 + 0x20] = temp14 - temp13;
            memory[temp14:temp14 + 0x20] = 0x26;
            var temp15 = temp14 + 0x20;
            memory[temp15:temp15 + 0x26] = code[0x5749:0x576f];
            var temp16 = memory[0x40:0x60];
            revert(memory[temp16:temp16 + (temp15 + 0x40) - temp16]);
        }
    }
    
    function func_51D3(var arg0, var arg1, var arg2) returns (var r0) {
        var var0 = 0x00;
        var var1 = arg2;
    
        if (arg1) {
            var1 = 0x00;
            var var2 = arg1;
            var var3 = arg0;
        
            if (var2) { return var3 / var2; }
            else { assert(); }
        } else {
            var temp0 = memory[0x40:0x60];
            memory[temp0:temp0 + 0x20] = 0x461bcd << 0xe5;
            var temp1 = temp0 + 0x04;
            var2 = temp1;
            var3 = var2;
            var temp2 = var3 + 0x20;
            memory[var3:var3 + 0x20] = temp2 - var3;
            var temp3 = var1;
            memory[temp2:temp2 + 0x20] = memory[temp3:temp3 + 0x20];
            var var4 = temp2 + 0x20;
            var var5 = temp3 + 0x20;
            var var6 = memory[temp3:temp3 + 0x20];
            var var7 = var6;
            var var8 = var4;
            var var9 = var5;
            var var10 = 0x00;
        
            if (var10 >= var7) {
            label_5224:
                var temp4 = var6;
                var4 = temp4 + var4;
                var5 = temp4 & 0x1f;
            
                if (!var5) {
                    var temp5 = memory[0x40:0x60];
                    revert(memory[temp5:temp5 + var4 - temp5]);
                } else {
                    var temp6 = var5;
                    var temp7 = var4 - temp6;
                    memory[temp7:temp7 + 0x20] = ~(0x0100 ** (0x20 - temp6) - 0x01) & memory[temp7:temp7 + 0x20];
                    var temp8 = memory[0x40:0x60];
                    revert(memory[temp8:temp8 + (temp7 + 0x20) - temp8]);
                }
            } else {
            label_5215:
                var temp9 = var10;
                memory[temp9 + var8:temp9 + var8 + 0x20] = memory[temp9 + var9:temp9 + var9 + 0x20];
                var10 = temp9 + 0x20;
            
                if (var10 >= var7) { goto label_5224; }
                else { goto label_5215; }
            }
        }
    }
    
    function func_52E7() {
        var var0 = storage[0x00] / 0x0100 & 0xff;
    
        if (var0) {
        label_5300:
        
            if (var0) {
                if (var0) {
                label_5349:
                    var0 = !(storage[0x00] / 0x0100 & 0xff);
                
                    if (var0) {
                        storage[0x00] = (((storage[0x00] & ~0xff00) | 0x0100) & ~0xff) | 0x01;
                    
                        if (!var0) { goto label_51D0; }
                    
                        storage[0x00] = storage[0x00] & ~0xff00;
                        return;
                    } else if (!var0) {
                    label_51D0:
                        return;
                    } else {
                        storage[0x00] = storage[0x00] & ~0xff00;
                        return;
                    }
                } else {
                label_5313:
                    var temp0 = memory[0x40:0x60];
                    memory[temp0:temp0 + 0x20] = 0x461bcd << 0xe5;
                    var temp1 = temp0 + 0x04;
                    var temp2 = temp1 + 0x20;
                    memory[temp1:temp1 + 0x20] = temp2 - temp1;
                    memory[temp2:temp2 + 0x20] = 0x2e;
                    var temp3 = temp2 + 0x20;
                    memory[temp3:temp3 + 0x2e] = code[0x56fb:0x5729];
                    var temp4 = memory[0x40:0x60];
                    revert(memory[temp4:temp4 + (temp3 + 0x40) - temp4]);
                }
            } else if (!(storage[0x00] & 0xff)) { goto label_5349; }
            else { goto label_5313; }
        } else {
            var0 = 0x5300;
            var0 = 
func_48EF();
            goto label_5300;
        }
    }
    
    function func_5387() {
        var var0 = storage[0x00] / 0x0100 & 0xff;
    
        if (var0) {
        label_53A0:
        
            if (var0) {
                if (var0) {
                label_53E9:
                    var0 = !(storage[0x00] / 0x0100 & 0xff);
                
                    if (!var0) {
                        var var1 = 0x00;
                        var var2 = 0x541e;
                        var2 = 
burn();
                    
                    label_541E:
                        var temp0 = var2 & (0x01 << 0xa0) - 0x01;
                        storage[0x65] = temp0 | (storage[0x65] & ~((0x01 << 0xa0) - 0x01));
                        log(memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x00], [0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0, 0x00, stack[-1] & (0x01 << 0xa0) - 0x01]);
                    
                        if (!var0) { return; }
                    
                        storage[0x00] = storage[0x00] & ~0xff00;
                        return;
                    } else {
                        storage[0x00] = (((storage[0x00] & ~0xff00) | 0x0100) & ~0xff) | 0x01;
                        var1 = 0x00;
                        var2 = 0x541e;
                        var2 = 
burn();
                        goto label_541E;
                    }
                } else {
                label_53B3:
                    var temp1 = memory[0x40:0x60];
                    memory[temp1:temp1 + 0x20] = 0x461bcd << 0xe5;
                    var temp2 = temp1 + 0x04;
                    var temp3 = temp2 + 0x20;
                    memory[temp2:temp2 + 0x20] = temp3 - temp2;
                    memory[temp3:temp3 + 0x20] = 0x2e;
                    var temp4 = temp3 + 0x20;
                    memory[temp4:temp4 + 0x2e] = code[0x56fb:0x5729];
                    var temp5 = memory[0x40:0x60];
                    revert(memory[temp5:temp5 + (temp4 + 0x40) - temp5]);
                }
            } else if (!(storage[0x00] & 0xff)) { goto label_53E9; }
            else { goto label_53B3; }
        } else {
            var0 = 0x53a0;
            var0 = 
func_48EF();
            goto label_53A0;
        }
    }
    
    function func_54DF(var arg0, var arg1) returns (var r0) { return arg0; }
    
    function func_55EC(var arg0, var arg1) returns (var r0) {
        var temp0 = arg0;
        arg0 = 0x148e;
        var temp1 = arg1;
        arg1 = temp0;
        var var0 = temp1;
    
        if (arg1 <= var0) {
            arg0 = 
func_54DF(arg1, var0);
        
        label_148E:
            return arg0;
        } else {
            arg0 = 
func_55FB(arg1, var0);
            goto label_148E;
        }
    }
    
    function func_55FB(var arg0, var arg1) returns (var r0) {
        var temp0 = arg1;
        storage[temp0] = storage[temp0] & ~((0x01 << 0xa0) - 0x01);
        arg1 = temp0 + 0x01;
    
        if (arg0 <= arg1) {
            r0 = 
func_54DF(arg0, arg1);
            // Error: Could not resolve method call return address!
        } else {
            r0 = 
func_55FB(arg0, arg1);
            // Error: Could not resolve method call return address!
        }
    }
    
    function func_5610(var arg0, var arg1) returns (var r0) {
        var temp0 = arg0;
        arg0 = 0x148e;
        var temp1 = arg1;
        arg1 = temp0;
        var var0 = temp1;
    
        if (arg1 <= var0) { return 
func_54DF(arg1, var0); }
    
    label_561F:
        var temp2 = var0;
        storage[temp2] = 0x00;
        var0 = temp2 + 0x01;
    
        if (arg1 > var0) { goto label_561F; }
    
        arg0 = 
func_54DF(arg1, var0);
        // Error: Could not resolve method call return address!
    }
}