// File: /workspace/github_c_makefile_star2_O1/wjmelements[P]evm/src/ops.c
// Function: parseOp
op_t parseOp(const char *start, const char **endOut) {
    switch (*(uint32_t *)start) {
        case 'RDDA': *endOut = start + 7; return ADDRESS;
        case 'MDDA': *endOut = start + 6; return ADDMOD;
        case 'ALAB': *endOut = start + 7; return BALANCE;
        case 'COLB': *endOut = start + 9; return BLOCKHASH;
        case 'ETYB': *endOut = start + 4; return BYTE;
        case 'HTUA': *endOut = start + 4;
            switch (*(uint8_t *)(start + 4)) {
                case 'C': *endOut += 4; return AUTHCALL;
            }
            return AUTH;
        case 'LLAC':
            switch (*(uint16_t *)(start += 4)) {
                case 'OC': *endOut = start + 4; return CALLCODE;
                case 'AD':
                    *endOut = start + 8;
                    switch (*(uint32_t *)(start += 4)) {
                        case 'DAOL': return CALLDATALOAD;
                        case 'YPOC': return CALLDATACOPY;
                        case 'EZIS': return CALLDATASIZE;
                    }
                case 'RE': *endOut = start + 2; return CALLER;
                case 'AV': *endOut = start + 5; return CALLVALUE;
            }
            *endOut = start;
            return CALL;
        case 'IAHC':
            *endOut = start + 7;
            return CHAINID;
        case 'EDOC':
            switch (*(uint32_t *)(start += 4)) {
                case 'EZIS': *endOut = start + 4; return CODESIZE;
                case 'YPOC': *endOut = start + 4; return CODECOPY;
            }
        case 'NIOC': *endOut = start + 8; return COINBASE;
        case 'AERC': 
            start += 5;
            if ('2E' == *(uint16_t *)start) {
                *endOut = start + 2;
                return CREATE2;
            } else {
                *endOut = start + 1;
                return CREATE;
            }
        case 'ELED': *endOut = start + 12; return DELEGATECALL;
        case 'FFID': *endOut = start + 10; return DIFFICULTY;
        case '1PUD': 
            *endOut = start + 5;
            switch (*(uint8_t *)(start += 4)) {
                case '0': return DUP10;
                case '1': return DUP11;
                case '2': return DUP12;
                case '3': return DUP13;
                case '4': return DUP14;
                case '5': return DUP15;
                case '6': return DUP16;
            }
            *endOut = start; return DUP1;
        case '2PUD': *endOut = start + 4; return DUP2;
        case '3PUD': *endOut = start + 4; return DUP3;
        case '4PUD': *endOut = start + 4; return DUP4;
        case '5PUD': *endOut = start + 4; return DUP5;
        case '6PUD': *endOut = start + 4; return DUP6;
        case '7PUD': *endOut = start + 4; return DUP7;
        case '8PUD': *endOut = start + 4; return DUP8;
        case '9PUD': *endOut = start + 4; return DUP9;
        case 'PAWS': 
            *endOut = start + 5;
            switch (*(uint8_t *)(start += 4)) {
                case '2': return SWAP2;
                case '3': return SWAP3;
                case '4': return SWAP4;
                case '5': return SWAP5;
                case '6': return SWAP6;
                case '7': return SWAP7;
                case '8': return SWAP8;
                case '9': return SWAP9;
                case '1': 
                    *endOut = start + 2;
                    switch (*(uint8_t *)(start += 1)) {
                        case '0': return SWAP10;
                        case '1': return SWAP11;
                        case '2': return SWAP12;
                        case '3': return SWAP13;
                        case '4': return SWAP14;
                        case '5': return SWAP15;
                        case '6': return SWAP16;
                    }
                    *endOut = start;
                    return SWAP1;
            }
        case 'CTXE': 
            switch (*(uint32_t *)(start += 4)) {
                case 'CEDO': *endOut = start + 7; return EXTCODECOPY;
                case 'HEDO': *endOut = start + 7; return EXTCODEHASH;
                case 'SEDO': *endOut = start + 7; return EXTCODESIZE;
            }
        case 'ESAB':
            *endOut = start + 7;
            return BASEFEE;
        case 'ESSA':
            *endOut = start + 11;
            return (op_t)hexString16ToUint8(start + 9);
        case 'LSAG': *endOut = start + 8; return GASLIMIT;
        case 'PSAG': *endOut = start + 8; return GASPRICE;
        case 'AVNI': *endOut = start + 7; return INVALID;
        case 'EZSI': *endOut = start + 6; return ISZERO;
        case 'PMUJ':
            switch (*(uint8_t *)(start + 4)) {
                case 'D': *endOut = start + 8; return JUMPDEST;
                case 'I': *endOut = start + 5; return JUMPI;
            }
            *endOut = start + 4;
            return JUMP;
        case '0GOL': *endOut = start + 4; return LOG0;
        case '1GOL': *endOut = start + 4; return LOG1;
        case '2GOL': *endOut = start + 4; return LOG2;
        case '3GOL': *endOut = start + 4; return LOG3;
        case '4GOL': *endOut = start + 4; return LOG4;
        case 'AOLM': *endOut = start + 5; return MLOAD;
        case 'ZISM': *endOut = start + 5; return MSIZE;
        case 'POCM': *endOut = start + 5; return MCOPY;
        case 'AOLT': *endOut = start + 5; return TLOAD;
        case 'OTST': *endOut = start + 6; return TSTORE;
        case 'OTSM':
            switch (*(uint8_t *)(start + 6)) {
                case '8': *endOut = start + 7; return MSTORE8;
            }
            *endOut = start + 6;
            return MSTORE;
        case 'MLUM': *endOut = start + 6; return MULMOD;
        case 'BMUN': *endOut = start + 6; return NUMBER;
        case 'GIRO': *endOut = start + 6; return ORIGIN;
        case 'HSUP':
            *endOut = start + 5;
            switch (*(uint8_t *)(start + 4)) {
                case '2':
                    *endOut = start + 6;
                    switch (*(uint8_t *)(start + 5)) {
                        case '0': return PUSH20;
                        case '1': return PUSH21;
                        case '2': return PUSH22;
                        case '3': return PUSH23;
                        case '4': return PUSH24;
                        case '5': return PUSH25;
                        case '6': return PUSH26;
                        case '7': return PUSH27;
                        case '8': return PUSH28;
                        case '9': return PUSH29;
                    }
                    *endOut = start + 5;
                    return PUSH2;
                case '3':
                    *endOut = start + 6;
                    switch (*(uint8_t *)(start + 5)) {
                        case '0': return PUSH30;
                        case '1': return PUSH31;
                        case '2': return PUSH32;
                    }
                    *endOut = start + 5;
                    return PUSH3;
                case '0': return PUSH0;
                case '4': return PUSH4;
                case '5': return PUSH5;
                case '6': return PUSH6;
                case '7': return PUSH7;
                case '8': return PUSH8;
                case '9': return PUSH9;
                case '1':
                    *endOut = start + 6;
                    switch (*(uint8_t *)(start + 5)) {
                        case '0': return PUSH10;
                        case '1': return PUSH11;
                        case '2': return PUSH12;
                        case '3': return PUSH13;
                        case '4': return PUSH14;
                        case '5': return PUSH15;
                        case '6': return PUSH16;
                        case '7': return PUSH17;
                        case '8': return PUSH18;
                        case '9': return PUSH19;
                    }
                    *endOut = start + 5;
                    return PUSH1;
            }
        case 'UTER':
            *endOut = start + 14;
            switch (*(uint32_t *)(start + 8)) {
                case 'ISAT': return RETURNDATASIZE;
                case 'OCAT': return RETURNDATACOPY;
            }
            *endOut = start + 6;
            return RETURN;
        case 'EVER': *endOut = start + 6; return REVERT;
        case 'FLES':
            switch (*(uint32_t *)(start + 4)) {
                case 'ALAB': *endOut = start + 11; return SELFBALANCE;
                case 'TSED': *endOut = start + 12; return SELFDESTRUCT;
            }
        case 'NGIS': *endOut = start + 10; return SIGNEXTEND;
        case 'VIDS': *endOut = start + 4; return SDIV;
        case '3AHS': *endOut = start + 4; return SHA3;
        case 'AOLS': *endOut = start + 5; return SLOAD;
        case 'OTSS': *endOut = start + 6; return SSTORE;
        case 'TATS': *endOut = start + 10; return STATICCALL;
        case 'DOMS': *endOut = start + 4; return SMOD;
        case 'POTS': *endOut = start + 4; return STOP;
        case 'EMIT': *endOut = start + 9; return TIMESTAMP;
    }
    *endOut = start + 3;
    switch ((*(uint32_t *)start) & 0x00ffffff) {
        case 'DDA': return ADD;
        case 'DNA': return AND;
        case 'VID': return DIV;
        case 'PXE': return EXP;
        case 'BUS': return SUB;
        case 'ROX': return XOR;
        case 'SAG': return GAS;
        case 'DOM': return MOD;
        case 'LHS': return SHL;
        case 'RAS': return SAR;
        case 'RHS': return SHR;
        case 'LUM': return MUL;
        case 'TON': return NOT;
        case 'POP': return POP;
        case 'TGS': return SGT;
        case 'TLS': return SLT;
    }
    *endOut = start + 2;
    switch (*(uint16_t *)start) {
        case 'QE': return EQ;
        case 'TG': return GT;
        case 'TL': return LT;
        case 'RO': return OR;
        case 'CP': return PC;
    }
    fputs("Unknown op: ", stderr);
    fputs(start, stderr);
    fputc('\n', stderr);
    return STOP;
}

// Assembly:
movl (%rdi), %ecx
cmpl $0x45535340, %ecx       # imm = 0x45535340
jg 0xbea0
cmpl $0x39505543, %ecx       # imm = 0x39505543
jle 0xbef2
cmpl $0x424d554d, %ecx       # imm = 0x424D554D
jle 0xbf7e
cmpl $0x45444f42, %ecx       # imm = 0x45444F42
jg 0xc066
cmpl $0x43545844, %ecx       # imm = 0x43545844
jg 0xc2ea
cmpl $0x424d554e, %ecx       # imm = 0x424D554E
je 0xc508
cmpl $0x434f4c42, %ecx       # imm = 0x434F4C42
jne 0xc567
addq $0x9, %rdi
movq %rdi, (%rsi)
movb $0x40, %al
retq
cmpl $0x4e474952, %ecx       # imm = 0x4E474952
jle 0xbf38
cmpl $0x504f434c, %ecx       # imm = 0x504F434C
jle 0xbfb8
cmpl $0x54415452, %ecx       # imm = 0x54415452
jg 0xc094
cmpl $0x50534146, %ecx       # imm = 0x50534146
jg 0xc30c
cmpl $0x504f434d, %ecx       # imm = 0x504F434D
je 0xc512
cmpl $0x504f5453, %ecx       # imm = 0x504F5453
jne 0xc567
addq $0x4, %rdi
movq %rdi, (%rsi)
xorl %eax, %eax
retq
cmpl $0x33505543, %ecx       # imm = 0x33505543
jg 0xbff2
cmpl $0x32474f4b, %ecx       # imm = 0x32474F4B
jle 0xc141
cmpl $0x33414852, %ecx       # imm = 0x33414852
jg 0xc262
cmpl $0x32474f4c, %ecx       # imm = 0x32474F4C
je 0xc3cb
cmpl $0x32505544, %ecx       # imm = 0x32505544
jne 0xc567
addq $0x4, %rdi
movq %rdi, (%rsi)
movb $-0x7f, %al
retq
cmpl $0x4853554f, %ecx       # imm = 0x4853554F
jg 0xc02c
cmpl $0x455a5348, %ecx       # imm = 0x455A5348
jle 0xc17e
cmpl $0x464c4552, %ecx       # imm = 0x464C4552
jg 0xc284
cmpl $0x455a5349, %ecx       # imm = 0x455A5349
je 0xc3d5
cmpl $0x46464944, %ecx       # imm = 0x46464944
jne 0xc567
addq $0xa, %rdi
movq %rdi, (%rsi)
movb $0x44, %al
retq
cmpl $0x414f4c4c, %ecx       # imm = 0x414F4C4C
jle 0xc0db
cmpl $0x414f4c53, %ecx       # imm = 0x414F4C53
jg 0xc208
cmpl $0x414f4c4d, %ecx       # imm = 0x414F4C4D
je 0xc36d
cmpl $0x414f4c53, %ecx       # imm = 0x414F4C53
jne 0xc567
addq $0x5, %rdi
movq %rdi, (%rsi)
movb $0x54, %al
retq
cmpl $0x4f545352, %ecx       # imm = 0x4F545352
jle 0xc109
cmpl $0x50415752, %ecx       # imm = 0x50415752
jg 0xc22a
cmpl $0x4f545353, %ecx       # imm = 0x4F545353
je 0xc377
cmpl $0x4f545354, %ecx       # imm = 0x4F545354
jne 0xc567
addq $0x6, %rdi
movq %rdi, (%rsi)
movb $0x5d, %al
retq
cmpl $0x35505543, %ecx       # imm = 0x35505543
jle 0xc1ac
cmpl $0x37505543, %ecx       # imm = 0x37505543
jg 0xc2a6
cmpl $0x35505544, %ecx       # imm = 0x35505544
je 0xc3df
cmpl $0x36505544, %ecx       # imm = 0x36505544
jne 0xc567
addq $0x4, %rdi
movq %rdi, (%rsi)
movb $-0x7b, %al
retq
cmpl $0x4c4c4142, %ecx       # imm = 0x4C4C4142
jle 0xc1da
cmpl $0x4d444440, %ecx       # imm = 0x4D444440
jg 0xc2c8
cmpl $0x4c4c4143, %ecx       # imm = 0x4C4C4143
je 0xc3e9
cmpl $0x4c534147, %ecx       # imm = 0x4C534147
jne 0xc567
addq $0x8, %rdi
movq %rdi, (%rsi)
movb $0x45, %al
retq
cmpl $0x454d4953, %ecx       # imm = 0x454D4953
jg 0xc32e
cmpl $0x45444f43, %ecx       # imm = 0x45444F43
je 0xc51c
cmpl $0x454c4544, %ecx       # imm = 0x454C4544
jne 0xc567
addq $0xc, %rdi
movq %rdi, (%rsi)
movb $-0xc, %al
retq
cmpl $0x56494452, %ecx       # imm = 0x56494452
jg 0xc34b
cmpl $0x54415453, %ecx       # imm = 0x54415453
je 0xc53f
cmpl $0x55544552, %ecx       # imm = 0x55544552
jne 0xc567
leaq 0xe(%rdi), %rax
movq %rax, (%rsi)
movl 0x8(%rdi), %eax
cmpl $0x49534154, %eax       # imm = 0x49534154
je 0xc624
cmpl $0x4f434154, %eax       # imm = 0x4F434154
jne 0xc627
movb $0x3e, %al
retq
cmpl $0x39505544, %ecx       # imm = 0x39505544
je 0xc45f
cmpl $0x41455243, %ecx       # imm = 0x41455243
je 0xc4b7
cmpl $0x414c4142, %ecx       # imm = 0x414C4142
jne 0xc567
addq $0x7, %rdi
movq %rdi, (%rsi)
movb $0x31, %al
retq
cmpl $0x4e474953, %ecx       # imm = 0x4E474953
je 0xc441
cmpl $0x4e494f43, %ecx       # imm = 0x4E494F43
je 0xc65d
cmpl $0x4f54534d, %ecx       # imm = 0x4F54534D
jne 0xc567
cmpb $0x38, 0x6(%rdi)
jne 0xc5b3
addq $0x7, %rdi
movq %rdi, (%rsi)
movb $0x53, %al
retq
cmpl $0x30474f4c, %ecx       # imm = 0x30474F4C
je 0xc469
cmpl $0x31474f4c, %ecx       # imm = 0x31474F4C
je 0xc4cd
cmpl $0x31505544, %ecx       # imm = 0x31505544
jne 0xc567
leaq 0x5(%rdi), %rax
movq %rax, (%rsi)
movb 0x4(%rdi), %al
leal -0x30(%rax), %ecx
cmpb $0x7, %cl
jae 0xc5bd
addb $0x59, %al
retq
cmpl $0x45535341, %ecx       # imm = 0x45535341
je 0xc473
cmpl $0x45545942, %ecx       # imm = 0x45545942
je 0xc4d7
cmpl $0x45564552, %ecx       # imm = 0x45564552
jne 0xc567
addq $0x6, %rdi
movq %rdi, (%rsi)
movb $-0x3, %al
retq
cmpl $0x33505544, %ecx       # imm = 0x33505544
je 0xc483
cmpl $0x34474f4c, %ecx       # imm = 0x34474F4C
je 0xc4e1
cmpl $0x34505544, %ecx       # imm = 0x34505544
jne 0xc567
addq $0x4, %rdi
movq %rdi, (%rsi)
movb $-0x7d, %al
retq
cmpl $0x48535550, %ecx       # imm = 0x48535550
je 0xc48d
cmpl $0x48545541, %ecx       # imm = 0x48545541
je 0xc4eb
cmpl $0x49414843, %ecx       # imm = 0x49414843
jne 0xc567
addq $0x7, %rdi
movq %rdi, (%rsi)
movb $0x46, %al
retq
cmpl $0x414f4c54, %ecx       # imm = 0x414F4C54
je 0xc381
cmpl $0x41564e49, %ecx       # imm = 0x41564E49
jne 0xc567
addq $0x7, %rdi
movq %rdi, (%rsi)
movb $-0x2, %al
retq
cmpl $0x50415753, %ecx       # imm = 0x50415753
je 0xc38b
cmpl $0x504d554a, %ecx       # imm = 0x504D554A
jne 0xc567
movzbl 0x4(%rdi), %eax
cmpl $0x49, %eax
je 0xc631
cmpl $0x44, %eax
jne 0xc64f
addq $0x8, %rdi
movq %rdi, (%rsi)
movb $0x5b, %al
retq
cmpl $0x33414853, %ecx       # imm = 0x33414853
je 0xc418
cmpl $0x33474f4c, %ecx       # imm = 0x33474F4C
jne 0xc567
addq $0x4, %rdi
movq %rdi, (%rsi)
movb $-0x5d, %al
retq
cmpl $0x464c4553, %ecx       # imm = 0x464C4553
je 0xc422
cmpl $0x4749524f, %ecx       # imm = 0x4749524F
jne 0xc567
addq $0x6, %rdi
movq %rdi, (%rsi)
movb $0x32, %al
retq
cmpl $0x37505544, %ecx       # imm = 0x37505544
je 0xc44b
cmpl $0x38505544, %ecx       # imm = 0x38505544
jne 0xc567
addq $0x4, %rdi
movq %rdi, (%rsi)
movb $-0x79, %al
retq
cmpl $0x4d444441, %ecx       # imm = 0x4D444441
je 0xc455
cmpl $0x4d4c554d, %ecx       # imm = 0x4D4C554D
jne 0xc567
addq $0x6, %rdi
movq %rdi, (%rsi)
movb $0x9, %al
retq
cmpl $0x43545845, %ecx       # imm = 0x43545845
je 0xc78b
cmpl $0x444f4d53, %ecx       # imm = 0x444F4D53
jne 0xc567
addq $0x4, %rdi
movq %rdi, (%rsi)
movb $0x7, %al
retq
cmpl $0x50534147, %ecx       # imm = 0x50534147
je 0xc549
cmpl $0x52444441, %ecx       # imm = 0x52444441
jne 0xc567
addq $0x7, %rdi
movq %rdi, (%rsi)
movb $0x30, %al
retq
cmpl $0x454d4954, %ecx       # imm = 0x454D4954
je 0xc553
cmpl $0x45534142, %ecx       # imm = 0x45534142
je 0xc7c5
jmp 0xc567
cmpl $0x56494453, %ecx       # imm = 0x56494453
je 0xc55d
cmpl $0x5a49534d, %ecx       # imm = 0x5A49534D
jne 0xc567
addq $0x5, %rdi
movq %rdi, (%rsi)
movb $0x59, %al
retq
addq $0x5, %rdi
movq %rdi, (%rsi)
movb $0x51, %al
retq
addq $0x6, %rdi
movq %rdi, (%rsi)
movb $0x55, %al
retq
addq $0x5, %rdi
movq %rdi, (%rsi)
movb $0x5c, %al
retq
leaq 0x5(%rdi), %rcx
movq %rcx, (%rsi)
movzbl 0x4(%rdi), %eax
addl $-0x31, %eax
cmpl $0x8, %eax
ja 0xc787
leaq 0x88bf(%rip), %rdx      # 0x14c68
movslq (%rdx,%rax,4), %rax
addq %rdx, %rax
jmpq *%rax
leaq 0x6(%rdi), %rax
movq %rax, (%rsi)
movb 0x5(%rdi), %al
leal -0x30(%rax), %edx
cmpb $0x7, %dl
jae 0xc869
addb $0x69, %al
retq
addq $0x4, %rdi
movq %rdi, (%rsi)
movb $-0x5e, %al
retq
addq $0x6, %rdi
movq %rdi, (%rsi)
movb $0x15, %al
retq
addq $0x4, %rdi
movq %rdi, (%rsi)
movb $-0x7c, %al
retq
movzwl 0x4(%rdi), %eax
cmpl $0x4f42, %eax           # imm = 0x4F42
jg 0xc5c7
cmpl $0x4144, %eax           # imm = 0x4144
je 0xc6bf
cmpl $0x4156, %eax           # imm = 0x4156
jne 0xc6b5
addq $0x9, %rdi
movq %rdi, (%rsi)
movb $0x34, %al
retq
addq $0x4, %rdi
movq %rdi, (%rsi)
movb $0x20, %al
retq
movl 0x4(%rdi), %eax
cmpl $0x54534544, %eax       # imm = 0x54534544
je 0xc63b
cmpl $0x414c4142, %eax       # imm = 0x414C4142
jne 0xc441
addq $0xb, %rdi
movq %rdi, (%rsi)
movb $0x47, %al
retq
addq $0xa, %rdi
movq %rdi, (%rsi)
movb $0xb, %al
retq
addq $0x4, %rdi
movq %rdi, (%rsi)
movb $-0x7a, %al
retq
addq $0x6, %rdi
movq %rdi, (%rsi)
movb $0x8, %al
retq
addq $0x4, %rdi
movq %rdi, (%rsi)
movb $-0x78, %al
retq
addq $0x4, %rdi
movq %rdi, (%rsi)
movb $-0x60, %al
retq
leaq 0xb(%rdi), %rax
movq %rax, (%rsi)
addq $0x9, %rdi
jmp 0xc8b3
addq $0x4, %rdi
movq %rdi, (%rsi)
movb $-0x7e, %al
retq
leaq 0x5(%rdi), %rcx
movq %rcx, (%rsi)
movzbl 0x4(%rdi), %eax
addl $-0x30, %eax
cmpl $0x9, %eax
ja 0xc0b8
leaq 0x8795(%rip), %rdx      # 0x14c40
movslq (%rdx,%rax,4), %rax
addq %rdx, %rax
jmpq *%rax
movb $0x5f, %al
retq
cmpw $0x3245, 0x5(%rdi)      # imm = 0x3245
jne 0xc5e7
addq $0x7, %rdi
movq %rdi, (%rsi)
movb $-0xb, %al
retq
addq $0x4, %rdi
movq %rdi, (%rsi)
movb $-0x5f, %al
retq
addq $0x4, %rdi
movq %rdi, (%rsi)
movb $0x1a, %al
retq
addq $0x4, %rdi
movq %rdi, (%rsi)
movb $-0x5c, %al
retq
leaq 0x4(%rdi), %rax
movq %rax, (%rsi)
movb $-0xa, %al
cmpb $0x43, 0x4(%rdi)
jne 0xc44a
addq $0x8, %rdi
movq %rdi, (%rsi)
movb $-0x9, %al
retq
addq $0x6, %rdi
movq %rdi, (%rsi)
movb $0x43, %al
retq
addq $0x5, %rdi
movq %rdi, (%rsi)
movb $0x5e, %al
retq
movl 0x4(%rdi), %eax
cmpl $0x59504f43, %eax       # imm = 0x59504F43
je 0xc645
cmpl $0x455a4953, %eax       # imm = 0x455A4953
jne 0xc659
addq $0x8, %rdi
movq %rdi, (%rsi)
movb $0x38, %al
retq
addq $0xa, %rdi
movq %rdi, (%rsi)
movb $-0x6, %al
retq
addq $0x8, %rdi
movq %rdi, (%rsi)
movb $0x3a, %al
retq
addq $0x9, %rdi
movq %rdi, (%rsi)
movb $0x42, %al
retq
addq $0x4, %rdi
movq %rdi, (%rsi)
movb $0x5, %al
retq
leaq 0x3(%rdi), %rax
movq %rax, (%rsi)
andl $0xffffff, %ecx         # imm = 0xFFFFFF
cmpl $0x524152, %ecx         # imm = 0x524152
jg 0xc5f1
cmpl $0x4c4852, %ecx         # imm = 0x4C4852
jg 0xc667
cmpl $0x444e40, %ecx         # imm = 0x444E40
jg 0xc703
cmpl $0x425553, %ecx         # imm = 0x425553
je 0xc824
movb $0x1, %al
cmpl $0x444441, %ecx         # imm = 0x444441
je 0xc44a
jmp 0xc83c
addq $0x6, %rdi
movq %rdi, (%rsi)
movb $0x52, %al
retq
addq $0x4, %rdi
movq %rdi, (%rsi)
movb $-0x80, %al
retq
cmpl $0x5245, %eax           # imm = 0x5245
je 0xc6f1
cmpl $0x4f43, %eax           # imm = 0x4F43
jne 0xc6b5
addq $0x8, %rdi
movq %rdi, (%rsi)
movb $-0xe, %al
retq
addq $0x6, %rdi
movq %rdi, (%rsi)
movb $-0x10, %al
retq
cmpl $0x544752, %ecx         # imm = 0x544752
jg 0xc68e
cmpl $0x524f57, %ecx         # imm = 0x524F57
jg 0xc71e
cmpl $0x524153, %ecx         # imm = 0x524153
je 0xc827
cmpl $0x524853, %ecx         # imm = 0x524853
jne 0xc83c
movb $0x1c, %al
retq
movb $0x3d, %al
retq
addq $0x6, %rdi
movq %rdi, (%rsi)
movb $-0xd, %al
retq
addq $0x5, %rdi
movq %rdi, (%rsi)
movb $0x57, %al
retq
addq $0xc, %rdi
movq %rdi, (%rsi)
movb $-0x1, %al
retq
addq $0x8, %rdi
movq %rdi, (%rsi)
movb $0x39, %al
retq
addq $0x4, %rdi
movq %rdi, (%rsi)
movb $0x56, %al
retq
addq $0x4, %rdi
addq $0x8, %rdi
movq %rdi, (%rsi)
movb $0x41, %al
retq
cmpl $0x504f4f, %ecx         # imm = 0x504F4F
jg 0xc739
cmpl $0x4c4853, %ecx         # imm = 0x4C4853
je 0xc82a
cmpl $0x4c554d, %ecx         # imm = 0x4C554D
jne 0xc83c
movb $0x2, %al
retq
cmpl $0x544f4d, %ecx         # imm = 0x544F4D
jg 0xc754
cmpl $0x544753, %ecx         # imm = 0x544753
je 0xc82d
cmpl $0x544c53, %ecx         # imm = 0x544C53
jne 0xc83c
movb $0x12, %al
retq
addq $0x4, %rdi
movq %rdi, (%rsi)
movb $-0xf, %al
retq
leaq 0xc(%rdi), %rax
movq %rax, (%rsi)
movl 0x8(%rdi), %ecx
cmpl $0x44414f4c, %ecx       # imm = 0x44414F4C
je 0xc872
cmpl $0x455a4953, %ecx       # imm = 0x455A4953
je 0xc86f
movl $0x8, %eax
cmpl $0x59504f43, %ecx       # imm = 0x59504F43
jne 0xc6f6
movb $0x37, %al
retq
movl $0x4, %eax
addq %rdi, %rax
addq $0x2, %rax
movq %rax, (%rsi)
movb $0x33, %al
retq
cmpl $0x444e41, %ecx         # imm = 0x444E41
je 0xc830
cmpl $0x444f4d, %ecx         # imm = 0x444F4D
jne 0xc83c
movb $0x6, %al
retq
cmpl $0x524f58, %ecx         # imm = 0x524F58
je 0xc833
cmpl $0x534147, %ecx         # imm = 0x534147
jne 0xc83c
movb $0x5a, %al
retq
cmpl $0x504f50, %ecx         # imm = 0x504F50
je 0xc836
cmpl $0x505845, %ecx         # imm = 0x505845
jne 0xc83c
movb $0xa, %al
retq
cmpl $0x544f4e, %ecx         # imm = 0x544F4E
je 0xc839
cmpl $0x564944, %ecx         # imm = 0x564944
jne 0xc83c
movb $0x4, %al
retq
movb $-0x6c, %al
retq
movb $-0x6e, %al
retq
movb $-0x6d, %al
retq
movb $-0x69, %al
retq
movb $-0x6f, %al
retq
movb $-0x6b, %al
retq
movb $-0x6a, %al
retq
movb $-0x68, %al
retq
addq $0x4, %rdi
movl 0x4(%rdi), %eax
cmpl $0x5345444f, %eax       # imm = 0x5345444F
je 0xc7b7
cmpl $0x4845444f, %eax       # imm = 0x4845444F
je 0xc7ad
cmpl $0x4345444f, %eax       # imm = 0x4345444F
jne 0xc7c1
addq $0xb, %rdi
movq %rdi, (%rsi)
movb $0x3c, %al
retq
addq $0xb, %rdi
movq %rdi, (%rsi)
movb $0x3f, %al
retq
addq $0xb, %rdi
movq %rdi, (%rsi)
movb $0x3b, %al
retq
addq $0x4, %rdi
addq $0x7, %rdi
movq %rdi, (%rsi)
movb $0x48, %al
retq
movb $0x63, %al
retq
movb $0x68, %al
retq
leaq 0x6(%rdi), %rax
movq %rax, (%rsi)
movb 0x5(%rdi), %al
leal -0x30(%rax), %edx
cmpb $0xa, %dl
jae 0xc875
addb $0x43, %al
retq
leaq 0x6(%rdi), %rax
movq %rax, (%rsi)
movb 0x5(%rdi), %al
leal -0x30(%rax), %edx
cmpb $0x3, %dl
jae 0xc87b
addb $0x4d, %al
retq
movb $0x66, %al
retq
leaq 0x6(%rdi), %rax
movq %rax, (%rsi)
movb 0x5(%rdi), %al
leal -0x30(%rax), %edx
cmpb $0xa, %dl
jae 0xc881
addb $0x39, %al
retq
movb $0x64, %al
retq
movb $0x65, %al
retq
movb $0x67, %al
retq
movb $0x3, %al
retq
movb $0x1d, %al
retq
movb $0x1b, %al
retq
movb $0x13, %al
retq
movb $0x16, %al
retq
movb $0x18, %al
retq
movb $0x50, %al
retq
movb $0x19, %al
retq
leaq 0x2(%rdi), %rax
movq %rax, (%rsi)
movzwl (%rdi), %ecx
cmpl $0x524e, %ecx           # imm = 0x524E
jle 0xc887
cmpl $0x524f, %ecx           # imm = 0x524F
je 0xc8aa
cmpl $0x544c, %ecx           # imm = 0x544C
je 0xc8b0
cmpl $0x5447, %ecx           # imm = 0x5447
jne 0xc89d
movb $0x11, %al
retq
movq %rcx, (%rsi)
movb $-0x70, %al
retq
movb $0x36, %al
retq
movb $0x35, %al
retq
movq %rcx, (%rsi)
movb $0x61, %al
retq
movq %rcx, (%rsi)
movb $0x62, %al
retq
movq %rcx, (%rsi)
movb $0x60, %al
retq
cmpl $0x4350, %ecx           # imm = 0x4350
je 0xc8ad
movb $0x14, %al
cmpl $0x5145, %ecx           # imm = 0x5145
je 0xc44a
pushq %rax
callq 0x2090
xorl %eax, %eax
addq $0x8, %rsp
retq
movb $0x17, %al
retq
movb $0x58, %al
retq
movb $0x10, %al
retq