// File: /workspace/github_c_makefile_star2_O1/wjmelements[P]evm/src/disassemble.c
// Function: disassembleNextOp
void disassembleNextOp(const char **iter) {
    disassembleWaste(iter);
    op_t op = hexString16ToUint8(*iter);
    *iter += 2;
    if (op >= PUSH1 && op <= PUSH32) {
        pc++;
        disassemblePush(op, iter);
        return;
    }
    statement_t op_statement;
    if (op == JUMPDEST) {
        pcs_append(&jumpdests, pc);
        op_statement = labelForPc(pc);
    } else {
        size_t bufLen = 15;
        char *str = calloc(bufLen, 1);
        char *end = stpncpy(str, opString[op], bufLen);
        size_t strLen = end - str;
        op_statement = (statement_t){
            strLen,
            str,
            bufLen
        };
    }
    int argc = argCount[op];
    if (argc && argc <= stack.num_statements) {
        statement_append(&op_statement, '(');
        while (argc--) {
            statement_t arg = statement_stack_pop(&stack);
            for (size_t i = 0; i < arg.num_schars; i++) {
                statement_append(&op_statement,arg.schars[i]);
            }
            free(arg.schars);
            if (argc) {
                statement_append(&op_statement,',');
            }
        }
        statement_append(&op_statement, ')');
    }
    statement_stack_append(&stack, op_statement);
    if (retCount[op] != 1) {
        for (size_t i = 0; i < stack.num_statements; i++) {
            puts(stack.statements[i].schars);
            free(stack.statements[i].schars);
        }
        stack.num_statements = 0;
    }
    pc++;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x28, %rsp
movq %rdi, %rbx
callq 0x11553
movq (%rbx), %r14
movzbl (%r14), %ecx
leal -0x30(%rcx), %r12d
cmpb $0xa, %r12b
jb 0x10e34
leal -0x61(%rcx), %eax
cmpb $0x5, %al
ja 0x10e23
addb $-0x57, %cl
jmp 0x10e31
leal -0x41(%rcx), %eax
cmpb $0x5, %al
ja 0x11510
addb $-0x37, %cl
movl %ecx, %r12d
movzbl 0x1(%r14), %ecx
leal -0x30(%rcx), %eax
cmpb $0xa, %al
jb 0x10e5c
leal -0x61(%rcx), %eax
cmpb $0x5, %al
ja 0x10e4c
addb $-0x57, %cl
jmp 0x10e5a
leal -0x41(%rcx), %eax
cmpb $0x5, %al
ja 0x11532
addb $-0x37, %cl
movl %ecx, %eax
shlb $0x4, %r12b
addb %al, %r12b
addq $0x2, (%rbx)
cmpb $0x60, %r12b
jl 0x10f6c
movl 0x2050bd8(%rip), %r13d  # 0x2061a50
leal 0x1(%r13), %eax
movl %eax, 0x2050bce(%rip)   # 0x2061a50
addb $-0x5f, %r12b
cmpb $0x3, %r12b
ja 0x1102e
testb %r12b, %r12b
je 0x1144e
movq 0x8158(%rip), %r13      # 0x18ff8
leaq 0x1304(%rip), %r15      # 0x121ab
xorl %r14d, %r14d
movq %rbx, %rdi
callq 0x11553
shlq $0x4, %r14
movq (%rbx), %rax
cmpb $0x0, (%rax)
je 0x10eed
leaq 0x1(%rax), %rcx
movq %rcx, (%rbx)
movzbl (%rax), %ecx
leal -0x30(%rcx), %eax
cmpb $0xa, %al
jb 0x10ee7
leal -0x61(%rcx), %eax
cmpb $0x5, %al
ja 0x10edb
addb $-0x57, %cl
jmp 0x10ee5
leal -0x41(%rcx), %eax
cmpb $0x5, %al
ja 0x10f44
addb $-0x37, %cl
movl %ecx, %eax
movzbl %al, %eax
addq %rax, %r14
movq %rbx, %rdi
callq 0x11553
shlq $0x4, %r14
movq (%rbx), %rax
cmpb $0x0, (%rax)
je 0x10f30
leaq 0x1(%rax), %rcx
movq %rcx, (%rbx)
movzbl (%rax), %ecx
leal -0x30(%rcx), %eax
cmpb $0xa, %al
jb 0x10f2a
leal -0x61(%rcx), %eax
cmpb $0x5, %al
ja 0x10f1e
addb $-0x57, %cl
jmp 0x10f28
leal -0x41(%rcx), %eax
cmpb $0x5, %al
ja 0x10f58
addb $-0x37, %cl
movl %ecx, %eax
movzbl %al, %eax
addq %rax, %r14
incl 0x2050b1a(%rip)         # 0x2061a50
decb %r12b
jne 0x10eaa
jmp 0x11451
movq (%r13), %rdi
movq %r15, %rsi
movl %ecx, %edx
xorl %eax, %eax
callq 0x31d0
movb $-0x1, %al
jmp 0x10ee7
movq (%r13), %rdi
movq %r15, %rsi
movl %ecx, %edx
xorl %eax, %eax
callq 0x31d0
movb $-0x1, %al
jmp 0x10f2a
movzbl %r12b, %ebx
cmpb $0x5b, %r12b
jne 0x1113c
movq %rbx, %r12
movl 0x2050acd(%rip), %ebp   # 0x2061a50
movq 0x2050ade(%rip), %rbx   # 0x2061a68
cmpq %rbx, 0x2050ac7(%rip)   # 0x2061a58
jb 0x10fd3
leaq (%rbx,%rbx), %rdi
movq %rdi, 0x2050aca(%rip)   # 0x2061a68
movl $0x4, %esi
callq 0x31b0
movq %rax, %r14
movq 0x2050aae(%rip), %r15   # 0x2061a60
shlq $0x2, %rbx
movq %rax, %rdi
movq %r15, %rsi
movq %rbx, %rdx
callq 0x31f0
movq %r15, %rdi
callq 0x3040
movq %r14, 0x2050a8d(%rip)   # 0x2061a60
movq 0x2050a86(%rip), %rax   # 0x2061a60
movq 0x2050a77(%rip), %rcx   # 0x2061a58
leaq 0x1(%rcx), %rdx
movq %rdx, 0x2050a6c(%rip)   # 0x2061a58
movl %ebp, (%rax,%rcx,4)
movl $0x8, %eax
movq %rax, 0x8(%rsp)
movl $0x8, %edi
movl $0x1, %esi
callq 0x31b0
leaq 0x3474(%rip), %rdx      # 0x14483
movl $0x8, %esi
movq %rax, %r15
movq %rax, %rdi
movl %ebp, %ecx
xorl %eax, %eax
callq 0x3110
movslq %eax, %rbp
movq %r12, %rbx
jmp 0x11179
leal (%r12,%r12), %eax
addb $0x2, %al
movzbl %al, %edi
movl $0x1, %esi
movq %rdi, 0x8(%rsp)
callq 0x31b0
movq %rax, %r15
movw $0x7830, (%rax)         # imm = 0x7830
addl $0x2, %r13d
movb $0x2, %bpl
movq %rbx, %rdi
callq 0x11553
movq (%rbx), %rax
movb $0x30, %r14b
cmpb $0x0, (%rax)
movb $0x30, %cl
je 0x11073
leaq 0x1(%rax), %rcx
movq %rcx, (%rbx)
movb (%rax), %cl
movzbl %bpl, %eax
movb %cl, (%r15,%rax)
movq %rbx, %rdi
callq 0x11553
movq (%rbx), %rax
cmpb $0x0, (%rax)
je 0x11095
leaq 0x1(%rax), %rcx
movq %rcx, (%rbx)
movb (%rax), %r14b
leal 0x1(%rbp), %eax
movzbl %al, %eax
movb %r14b, (%r15,%rax)
addb $0x2, %bpl
movl %r13d, 0x20509a6(%rip)  # 0x2061a50
leal 0x1(%r13), %eax
movl %eax, %r13d
decb %r12b
jne 0x11055
movq 0x20509c3(%rip), %r14   # 0x2061a80
cmpq %r14, 0x20509ac(%rip)   # 0x2061a70
jb 0x11107
leaq (%r14,%r14), %rdi
movq %rdi, 0x20509af(%rip)   # 0x2061a80
movl $0x18, %esi
callq 0x31b0
movq %rax, %rbx
movq 0x2050993(%rip), %r12   # 0x2061a78
shlq $0x3, %r14
leaq (%r14,%r14,2), %rdx
movq %rax, %rdi
movq %r12, %rsi
callq 0x31f0
movq %r12, %rdi
callq 0x3040
movq %rbx, 0x2050971(%rip)   # 0x2061a78
movq 0x205096a(%rip), %rax   # 0x2061a78
movq 0x205095b(%rip), %rcx   # 0x2061a70
leaq 0x1(%rcx), %rdx
movq %rdx, 0x2050950(%rip)   # 0x2061a70
leaq (%rcx,%rcx,2), %rcx
movq 0x8(%rsp), %rdx
movq %rdx, (%rax,%rcx,8)
movq %r15, 0x8(%rax,%rcx,8)
movq %rdx, 0x10(%rax,%rcx,8)
jmp 0x11501
movl $0xf, %eax
movq %rax, 0x8(%rsp)
movl $0xf, %edi
movl $0x1, %esi
callq 0x31b0
movq %rax, %r14
leaq 0x8091(%rip), %rax      # 0x191f0
movq (%rax,%rbx,8), %rsi
movl $0xf, %edx
movq %r14, %rdi
callq 0x3220
movq %rax, %rbp
movq %r14, %r15
subq %r14, %rbp
leaq 0x1d60(%rip), %rax      # 0x12ee0
movzbl (%rax,%rbx), %eax
testq %rax, %rax
je 0x11362
cmpq %rax, 0x20508dc(%rip)   # 0x2061a70
jb 0x11362
movq %rax, 0x10(%rsp)
movq 0x8(%rsp), %r13
cmpq %r13, %rbp
movq %rbx, 0x18(%rsp)
jae 0x111b6
movq %r15, %rbx
movq %r13, %r15
jmp 0x111e7
leal (,%r13,2), %r12d
movl $0x1, %esi
movq %r12, %rdi
callq 0x31b0
movq %rax, %rbx
movq %rax, %rdi
movq %r15, %rsi
movq %r13, %rdx
callq 0x31f0
movq %r15, %rdi
callq 0x3040
movq %r12, %r15
movb $0x28, (%rbx,%rbp)
incq %rbp
movq 0x10(%rsp), %r13
testl %r13d, %r13d
je 0x11301
movq %r13, 0x10(%rsp)
movq 0x2050870(%rip), %rax   # 0x2061a78
movq 0x2050861(%rip), %rcx   # 0x2061a70
decq %rcx
movq %rcx, 0x2050857(%rip)   # 0x2061a70
leaq (%rcx,%rcx,2), %rcx
movq (%rax,%rcx,8), %r12
movq 0x8(%rax,%rcx,8), %r13
movq %r13, 0x20(%rsp)
testq %r12, %r12
je 0x1128f
movb (%r13), %r14b
cmpq %r15, %rbp
jb 0x11280
movq %rbp, 0x8(%rsp)
leaq (%r15,%r15), %rbp
movl $0x1, %esi
movq %rbp, %rdi
callq 0x31b0
movq %r15, %rdx
movq %rax, %r15
movabsq $0x7fffffffffffffff, %rax # imm = 0x7FFFFFFFFFFFFFFF
andq %rax, %rdx
movq %r15, %rdi
movq %rbx, %rsi
callq 0x31f0
movq %rbx, %rdi
callq 0x3040
movq %r15, %rbx
movq %rbp, %r15
movq 0x8(%rsp), %rbp
movb %r14b, (%rbx,%rbp)
incq %rbp
incq %r13
decq %r12
jne 0x11230
movq 0x10(%rsp), %r13
decl %r13d
movq 0x20(%rsp), %rdi
callq 0x3040
testl %r13d, %r13d
je 0x111f3
cmpq %r15, %rbp
jb 0x112f5
movq %rbx, %r14
leaq (%r15,%r15), %rbx
movl $0x1, %esi
movq %rbx, %rdi
callq 0x31b0
movq %rbp, %r12
movq %rax, %rbp
movabsq $0x7fffffffffffffff, %rax # imm = 0x7FFFFFFFFFFFFFFF
andq %rax, %r15
movq %rbp, %rdi
movq %r14, %rsi
movq %r15, %rdx
callq 0x31f0
movq %r14, %rdi
callq 0x3040
movq %rbx, %r15
movq %rbp, %rbx
movq %r12, %rbp
movb $0x2c, (%rbx,%rbp)
incq %rbp
jmp 0x111f3
movq %rbx, %r14
movq %rbp, %r12
cmpq %r15, %rbp
jae 0x11313
movq %r15, 0x8(%rsp)
jmp 0x1134f
leaq (%r15,%r15), %rbx
movl $0x1, %esi
movq %rbx, %rdi
callq 0x31b0
movq %rax, %rbp
movabsq $0x7fffffffffffffff, %rdx # imm = 0x7FFFFFFFFFFFFFFF
andq %r15, %rdx
movq %rax, %rdi
movq %r14, %rsi
callq 0x31f0
movq %r14, %rdi
callq 0x3040
movq %rbp, %r14
movq %rbx, 0x8(%rsp)
movq 0x18(%rsp), %rbx
movq %r14, %r15
movq %r12, %rbp
movb $0x29, (%r14,%r12)
incq %rbp
movq 0x2050717(%rip), %r14   # 0x2061a80
cmpq %r14, 0x2050700(%rip)   # 0x2061a70
jb 0x113b9
leaq (%r14,%r14), %rdi
movq %rdi, 0x2050703(%rip)   # 0x2061a80
movl $0x18, %esi
callq 0x31b0
movq %rbx, %r13
movq %rax, %rbx
movq 0x20506e4(%rip), %r12   # 0x2061a78
shlq $0x3, %r14
leaq (%r14,%r14,2), %rdx
movq %rax, %rdi
movq %r12, %rsi
callq 0x31f0
movq %r12, %rdi
callq 0x3040
movq %rbx, 0x20506c2(%rip)   # 0x2061a78
movq %r13, %rbx
movq 0x20506b8(%rip), %rax   # 0x2061a78
movq 0x20506a9(%rip), %rcx   # 0x2061a70
leaq 0x1(%rcx), %rdx
movq %rdx, 0x205069e(%rip)   # 0x2061a70
leaq (%rcx,%rcx,2), %rcx
movq %rbp, (%rax,%rcx,8)
movq %r15, 0x8(%rax,%rcx,8)
movq 0x8(%rsp), %rdx
movq %rdx, 0x10(%rax,%rcx,8)
leaq 0x1bf0(%rip), %rax      # 0x12fe0
cmpb $0x1, (%rax,%rbx)
je 0x11443
cmpq $0x0, 0x2050672(%rip)   # 0x2061a70
je 0x11438
movl $0x8, %ebx
xorl %r14d, %r14d
movq 0x2050669(%rip), %rax   # 0x2061a78
movq (%rax,%rbx), %rdi
callq 0x30a0
movq 0x2050659(%rip), %rax   # 0x2061a78
movq (%rax,%rbx), %rdi
callq 0x3040
incq %r14
addq $0x18, %rbx
cmpq 0x205063a(%rip), %r14   # 0x2061a70
jb 0x11408
movq $0x0, 0x205062d(%rip) # 0x2061a70
incl 0x2050607(%rip)         # 0x2061a50
jmp 0x11501
xorl %r14d, %r14d
movl $0x14, %edi
movl $0x1, %esi
callq 0x31b0
movq %rax, %rbx
leaq 0x1606(%rip), %rdx      # 0x12a70
movl $0x14, %esi
movq %rax, %rdi
movq %r14, %rcx
xorl %eax, %eax
callq 0x3110
movl %eax, %ebp
movq 0x20505fb(%rip), %r12   # 0x2061a80
cmpq %r12, 0x20505e4(%rip)   # 0x2061a70
jb 0x114cf
leaq (%r12,%r12), %rdi
movq %rdi, 0x20505e7(%rip)   # 0x2061a80
movl $0x18, %esi
callq 0x31b0
movq %rax, %r14
movq 0x20505cb(%rip), %r15   # 0x2061a78
shlq $0x3, %r12
leaq (%r12,%r12,2), %rdx
movq %rax, %rdi
movq %r15, %rsi
callq 0x31f0
movq %r15, %rdi
callq 0x3040
movq %r14, 0x20505a9(%rip)   # 0x2061a78
movslq %ebp, %rax
movq 0x205059f(%rip), %rcx   # 0x2061a78
movq 0x2050590(%rip), %rdx   # 0x2061a70
leaq 0x1(%rdx), %rsi
movq %rsi, 0x2050585(%rip)   # 0x2061a70
leaq (%rdx,%rdx,2), %rdx
movq %rax, (%rcx,%rdx,8)
movq %rbx, 0x8(%rcx,%rdx,8)
movq $0x14, 0x10(%rcx,%rdx,8)
addq $0x28, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq 0x7ae1(%rip), %rax      # 0x18ff8
movq (%rax), %rdi
leaq 0xc8a(%rip), %rsi       # 0x121ab
movl %ecx, %edx
xorl %eax, %eax
callq 0x31d0
movb $-0x1, %r12b
jmp 0x10e34
movq 0x7abf(%rip), %rax      # 0x18ff8
movq (%rax), %rdi
leaq 0xc68(%rip), %rsi       # 0x121ab
movl %ecx, %edx
xorl %eax, %eax
callq 0x31d0
movb $-0x1, %al
jmp 0x10e5c