// File: /workspace/github_c_makefile_star2_O1/lecram[P]congif/term.c
// Function: parse
void
parse(Term *term, uint8_t byte)
{
    int es;

    /* Bad suffix for a unicode sequence, dump it and interpret this byte normally. */
    if (term->state == S_UNI && (byte < 0x80 || byte >= 0xC0)) {
        addchar(term, 0xFFFD);
        RESET_STATE(term);
    }
    if (byte != 0x1B && byte < 0x20 && !(term->mode & M_DISPCTRL)) {
        ctrlchar(term, byte);
    } else {
        switch (term->state) {
        case S_ANY:
            switch (byte) {
            case 0x1B:
                term->state = S_ESC;
                break;
            case 0x9B:
                term->state = S_CSI;
                break;
            default:
                switch (CHARSET(term)) {
                case CS_BMP:
                    if (byte < 0x80) {
                        /* single-byte UTF-8, i.e. ASCII */
                        addchar(term, byte);
                    } else if (byte >= 0xC0) {
                        term->unilen = CHARLEN(byte);
                        PARCAT(term, byte);
                        term->state = S_UNI;
                    } else
                        addchar(term, 0xFFFD);
                    break;
                case CS_ISO:
                    addchar(term, byte);
                    break;
                case CS_VTG:
                    addchar(term, cs_vtg[byte]);
                    break;
                case CS_437:
                    addchar(term, cs_437[byte]);
                    break;
                }
            }
            break;
        case S_OSCESC: case S_STRESC:
            if (byte == '\\') {
                /* do_osc_etc() */
                if (term->state == S_OSCESC)
                    logfmt("NYI: Operating System Sequence\n");
            }
            RESET_STATE(term);
            term->state = S_ESC;
            /*FALLTHROUGH*/
        case S_ESC:
            es = 1;
            if (!term->parlen) {
                if (byte == 0x5B) {
                    term->state = S_CSI;
                    es = 0;
                } else if (byte == 0x5D) {
                    term->state = S_OSC;
                    es = 0;
                } else if (byte == 'P' || /* DCS */
                           byte == '_' || /* APC */
                           byte == '^' || /* PM */
                           byte == 'X'    /* SOS */
                        ) {
                    term->state = S_STR; /* A string to eat */
                    es = 0;
                }
            }
            if (es) {
                if (byte >= 0x20 && byte < 0x30) {
                    PARCAT(term, byte);
                } else {
                    escseq(term, byte);
                    RESET_STATE(term);
                }
            }
            break;
        case S_CSI:
            if (byte < 0x40 || byte >= 0x7F) {
                PARCAT(term, byte);
            } else {
                ctrlseq(term, byte);
                RESET_STATE(term);
            }
            break;
        case S_OSC: case S_STR:
            /* TODO: set/reset palette entries */
            /* Currently this just eats the string */
            if (byte == 0x1B) {
                if (term->state == S_OSC)
                    term->state = S_OSCESC;
                else
                    term->state = S_STRESC;
            } else if (byte == 13 || byte == 10)
                RESET_STATE(term);   /* CR or LF assume something broke */
            else if (byte == 7) {
                /* do_osc_etc() */
                if (term->state == S_OSC)
                    logfmt("NYI: Operating System Sequence\n");
                RESET_STATE(term);
            } else {
                if (term->parlen < MAX_PARTIAL-3)
                    PARCAT(term, byte);
                else
                    term->state = S_STR;

                if (term->partial[0] == 'P' && term->parlen == 8) {
                    if (do_linux_osc(term))
                        RESET_STATE(term);
                } else if (term->partial[0] == 'R' && term->parlen == 1) {
                    if (do_linux_osc(term))
                        RESET_STATE(term);
                }
            }
            break;
        case S_UNI:
            PARCAT(term, byte);
            if (term->parlen == term->unilen) {
                addchar(term, char_code(term));
                RESET_STATE(term);
            }
            break;
        }
    }
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x58, %rsp
movl %esi, %r14d
movq %rdi, %rbx
cmpb $-0x40, %r14b
jl 0x1881
cmpl $0x7, 0x60(%rbx)
jne 0x1881
movq %rbx, %rdi
movl $0xfffd, %esi           # imm = 0xFFFD
callq 0x27a5
movq $0x0, 0x60(%rbx)
cmpb $0x1b, %r14b
sete %al
cmpb $0x20, %r14b
setae %cl
orb %al, %cl
jne 0x18df
testb $0x1, 0x18(%rbx)
jne 0x18df
movzbl %r14b, %eax
addl $-0x8, %eax
cmpl $0x7, %eax
ja 0x2638
leaq 0x3a9c(%rip), %rcx      # 0x534c
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movl 0x4(%rbx), %eax
cmpl %eax, 0xc(%rbx)
jl 0x18c6
decl %eax
movl %eax, 0xc(%rbx)
movl 0x8(%rbx), %eax
cmpl 0x14(%rbx), %eax
jne 0x1af8
movq %rbx, %rdi
callq 0x2a29
jmp 0x1afd
movl 0x60(%rbx), %eax
cmpq $0x7, %rax
ja 0x2638
leaq 0x371d(%rip), %rcx      # 0x5010
movslq (%rcx,%rax,4), %rdx
addq %rcx, %rdx
jmpq *%rdx
movzbl %r14b, %ecx
cmpl $0xc, %ecx
jg 0x1a41
cmpl $0x7, %ecx
je 0x1b3f
cmpl $0xa, %ecx
je 0x2630
jmp 0x1b1f
cmpb $0x5c, %r14b
setne %cl
cmpl $0x4, %eax
setne %al
orb %cl, %al
jne 0x193f
leaq 0x3ed0(%rip), %rdi      # 0x5808
xorl %eax, %eax
callq 0x2877
movq $0x1, 0x60(%rbx)
movslq 0x64(%rbx), %rax
testq %rax, %rax
je 0x1972
movl %r14d, %ecx
andb $-0x10, %cl
cmpb $0x20, %cl
je 0x19ae
testl %eax, %eax
je 0x1b54
movzbl %r14b, %ebp
movb 0x6c(%rbx), %al
movl %eax, %r14d
jmp 0x1b56
movzbl %r14b, %edx
leal -0x58(%rdx), %ecx
cmpl $0x7, %ecx
ja 0x1ce7
leaq 0x392f(%rip), %rdx      # 0x52b8
movslq (%rdx,%rcx,4), %rcx
addq %rdx, %rcx
jmpq *%rcx
movl $0x5, 0x60(%rbx)
jmp 0x2638
leal -0x7f(%r14), %eax
cmpb $-0x40, %al
ja 0x1a68
movslq 0x64(%rbx), %rax
leal 0x1(%rax), %ecx
movl %ecx, 0x64(%rbx)
movb %r14b, 0x6c(%rbx,%rax)
jmp 0x2638
movslq 0x64(%rbx), %rax
leal 0x1(%rax), %ecx
movl %ecx, 0x64(%rbx)
movb %r14b, 0x6c(%rbx,%rax)
movl 0x64(%rbx), %eax
cmpl 0x68(%rbx), %eax
jne 0x2638
movb $0x8, %cl
subb %al, %cl
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
shll %cl, %edx
movzbl 0x6c(%rbx), %ecx
notl %edx
andl %ecx, %edx
cmpl $0x2, %eax
jl 0x1a0e
decq %rax
xorl %ecx, %ecx
movzwl %dx, %esi
shll $0x6, %esi
movzbl 0x6d(%rbx,%rcx), %edx
andl $0x3f, %edx
orl %esi, %edx
incq %rcx
cmpq %rcx, %rax
jne 0x19f6
movzwl %dx, %esi
movq %rbx, %rdi
callq 0x27a5
jmp 0x2630
cmpb $-0x65, %r14b
je 0x1b13
movzbl %r14b, %esi
cmpl $0x1b, %esi
jne 0x1c5d
movl $0x1, 0x60(%rbx)
jmp 0x2638
cmpl $0xd, %ecx
je 0x2630
cmpl $0x1b, %ecx
jne 0x1b1f
cmpl $0x3, %eax
jne 0x1d3b
movl $0x4, 0x60(%rbx)
jmp 0x2638
movl 0x8(%rbx), %esi
movl 0xc(%rbx), %edx
movq %rbx, %rdi
callq 0x2ab2
testl %eax, %eax
je 0x2630
leaq 0x6c(%rbx), %rdi
movslq 0x64(%rbx), %rax
movb $0x0, 0x6c(%rbx,%rax)
leaq 0x6d(%rbx), %rax
xorl %r15d, %r15d
cmpb $0x3f, 0x6c(%rbx)
sete %r15b
cmoveq %rax, %rdi
cmpb $0x0, 0x6c(%rbx,%r15)
je 0x1d72
xorl %r13d, %r13d
leaq 0x8(%rsp), %r12
cmpb $0x0, (%rdi)
je 0x1d82
movq %r12, %rsi
movl $0xa, %edx
callq 0x1140
movl %eax, 0x10(%rsp,%r13,4)
movq 0x8(%rsp), %rax
cmpb $0x0, (%rax)
je 0x1adf
incq %rax
movq %rax, 0x8(%rsp)
incq %r13
movq 0x8(%rsp), %rdi
cmpq $0x10, %r13
jne 0x1ab2
movl $0x10, %r13d
jmp 0x1d98
incl %eax
movl %eax, 0x8(%rbx)
testb $0x4, 0x18(%rbx)
je 0x2638
movl $0x0, 0xc(%rbx)
jmp 0x2638
movl $0x2, 0x60(%rbx)
jmp 0x2638
movslq 0x64(%rbx), %rax
cmpq $0xfc, %rax
jg 0x1cf5
leal 0x1(%rax), %ecx
movl %ecx, 0x64(%rbx)
movb %r14b, 0x6c(%rbx,%rax)
jmp 0x1cfc
cmpl $0x3, %eax
jne 0x2630
leaq 0x3cb9(%rip), %rdi      # 0x5808
jmp 0x2629
xorl %ebp, %ebp
movzbl %r14b, %esi
cmpl $0x43, %esi
jg 0x1bc1
leal -0x23(%rsi), %eax
cmpl $0x6, %eax
jbe 0x1c90
leal -0x37(%rsi), %eax
cmpl $0x7, %eax
ja 0x1f53
leaq 0x3776(%rip), %rcx      # 0x52f4
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movl 0x4(%rbx), %eax
cmpl %eax, 0xc(%rbx)
jl 0x1b94
decl %eax
movl %eax, 0xc(%rbx)
movq 0x8(%rbx), %rax
movq %rax, 0x44(%rbx)
movzwl 0x18(%rbx), %eax
andl $0x40, %eax
movl %eax, 0x4c(%rbx)
movzwl 0x1a(%rbx), %eax
movw %ax, 0x50(%rbx)
movl 0x30(%rbx), %eax
movl %eax, 0x54(%rbx)
movq 0x34(%rbx), %rax
movq %rax, 0x58(%rbx)
jmp 0x2630
leal -0x44(%rsi), %eax
cmpl $0x9, %eax
ja 0x1d53
leaq 0x3740(%rip), %rcx      # 0x5314
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movl 0x4(%rbx), %eax
cmpl %eax, 0xc(%rbx)
jl 0x1bea
decl %eax
movl %eax, 0xc(%rbx)
movl 0x8(%rbx), %eax
cmpl 0x14(%rbx), %eax
jne 0x1eb6
movq %rbx, %rdi
callq 0x2a29
jmp 0x2630
movl $0x0, 0x38(%rbx)
jmp 0x2638
movl 0x4(%rbx), %eax
cmpl %eax, 0xc(%rbx)
jl 0x1c1c
decl %eax
movl %eax, 0xc(%rbx)
movl 0xc(%rbx), %eax
testl %eax, %eax
jne 0x1c47
jmp 0x2638
movl 0xc(%rbx), %ecx
movl %ecx, %eax
andl $-0x8, %eax
addl $0x8, %eax
movl %eax, 0xc(%rbx)
cmpl $-0x8, %ecx
jl 0x1c44
cmpl 0x4(%rbx), %eax
jl 0x2638
movl 0x4(%rbx), %eax
decl %eax
movl %eax, 0xc(%rbx)
jmp 0x2638
movl $0x1, 0x38(%rbx)
jmp 0x2638
movslq 0x38(%rbx), %rax
movl 0x30(%rbx,%rax,4), %eax
cmpq $0x3, %rax
ja 0x2638
leaq 0x36c6(%rip), %rcx      # 0x533c
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
testb %r14b, %r14b
js 0x1fae
movq %rbx, %rdi
jmp 0x1f40
leaq 0x3641(%rip), %rcx      # 0x52d8
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
cmpl $0x38, %ebp
jne 0x1f84
cmpl $0x0, (%rbx)
jle 0x2630
xorl %eax, %eax
cmpl $0x0, 0x4(%rbx)
jle 0x1cd7
xorl %ecx, %ecx
movq 0x20(%rbx), %rdx
movq (%rdx,%rax,8), %rdx
movl $0x70000045, (%rdx,%rcx,4) # imm = 0x70000045
incq %rcx
movslq 0x4(%rbx), %rdx
cmpq %rdx, %rcx
jl 0x1cbc
incq %rax
movslq (%rbx), %rcx
cmpq %rcx, %rax
jl 0x1cb4
jmp 0x2630
cmpl $0x50, %edx
jne 0x1950
jmp 0x1992
movl $0x5, 0x60(%rbx)
movzbl 0x6c(%rbx), %eax
cmpl $0x52, %eax
je 0x1d1c
cmpl $0x50, %eax
jne 0x2638
cmpl $0x8, 0x64(%rbx)
je 0x1d26
cmpb $0x52, %al
jne 0x2638
cmpl $0x1, 0x64(%rbx)
jne 0x2638
movq %rbx, %rdi
callq 0x291d
testl %eax, %eax
jne 0x2630
jmp 0x2638
movl $0x6, 0x60(%rbx)
jmp 0x2638
movl $0x3, 0x60(%rbx)
jmp 0x2638
cmpl $0x5a, %esi
je 0x2630
cmpl $0x63, %esi
jne 0x1f53
movq %rbx, %rdi
callq 0x1761
jmp 0x2630
movl $0x0, 0x10(%rsp)
movl $0x1, %r13d
jmp 0x1d98
cmpb $0x3b, -0x1(%rdi)
jne 0x1d98
movl $0x0, 0x10(%rsp,%r13,4)
leal 0x1(%r13), %eax
movl %eax, %r13d
testl %r13d, %r13d
movl 0x10(%rsp), %eax
movl %eax, %edx
cmovel %r13d, %edx
cmpl $0x1, %edx
movl %edx, %r12d
adcl $0x0, %r12d
movzbl %r14b, %esi
leal -0x40(%rsi), %ecx
cmpl $0x35, %ecx
ja 0x245b
leaq 0x326a(%rip), %rdi      # 0x5030
movslq (%rdi,%rcx,4), %rcx
addq %rdi, %rcx
jmpq *%rcx
movl 0x4(%rbx), %eax
cmpl %eax, 0xc(%rbx)
jl 0x1ddc
decl %eax
movl %eax, 0xc(%rbx)
addl 0x8(%rbx), %r12d
movl %r12d, 0x8(%rbx)
jns 0x2505
jmp 0x250e
cmpl $0x4a, %ebp
jg 0x1f66
cmpl $0x30, %ebp
je 0x209e
cmpl $0x42, %ebp
je 0x20b8
jmp 0x2630
leaq 0x3a54(%rip), %rdi      # 0x586a
xorl %eax, %eax
callq 0x2877
cmpl $0x47, %ebp
je 0x1e34
cmpl $0x40, %ebp
je 0x2077
cmpl $0x38, %ebp
jne 0x2630
andb $-0x11, 0x19(%rbx)
cmpl $0x1, 0x30(%rbx)
jne 0x1e45
movl $0x0, 0x30(%rbx)
cmpl $0x1, 0x34(%rbx)
jne 0x2630
movl $0x0, 0x34(%rbx)
jmp 0x2630
movl 0x8(%rbx), %eax
cmpl 0x10(%rbx), %eax
jne 0x2510
movq %rbx, %rdi
callq 0x2ae7
jmp 0x2630
cmpl $0x4a, %ebp
jg 0x1f90
cmpl $0x30, %ebp
je 0x20c9
cmpl $0x42, %ebp
je 0x20e3
jmp 0x2630
movl 0x4(%rbx), %eax
cmpl %eax, 0xc(%rbx)
jl 0x1ea1
decl %eax
movl %eax, 0xc(%rbx)
movl 0x8(%rbx), %eax
cmpl 0x14(%rbx), %eax
jne 0x1eb6
movq %rbx, %rdi
callq 0x2a29
jmp 0x26b8
incl %eax
jmp 0x2512
leaq 0x398b(%rip), %rdi      # 0x584f
jmp 0x2629
leaq 0x3a0a(%rip), %rdi      # 0x58da
jmp 0x2629
movl 0x4(%rbx), %eax
cmpl %eax, 0xc(%rbx)
jl 0x1ee2
decl %eax
movl %eax, 0xc(%rbx)
movq 0x44(%rbx), %rax
movq %rax, 0x8(%rbx)
xorl %eax, %eax
cmpl $0x0, 0x4c(%rbx)
setne %al
movl 0x18(%rbx), %ecx
andl $-0x41, %ecx
shll $0x6, %eax
orl %ecx, %eax
movw %ax, 0x18(%rbx)
movzwl 0x50(%rbx), %eax
movw %ax, 0x1a(%rbx)
movl 0x54(%rbx), %eax
movl %eax, 0x30(%rbx)
movq 0x58(%rbx), %rax
movq %rax, 0x34(%rbx)
jmp 0x2630
leaq 0x39d4(%rip), %rdi      # 0x58f8
jmp 0x2629
leaq 0x3460(%rip), %rax      # 0x5390
jmp 0x1f39
leaq 0x3657(%rip), %rax      # 0x5590
movzwl (%rax,%rsi,2), %esi
movq %rbx, %rdi
addq $0x58, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x27a5
leaq 0x39bc(%rip), %rdi      # 0x5916
xorl %eax, %eax
callq 0x2877
jmp 0x2630
cmpl $0x4b, %ebp
je 0x20aa
cmpl $0x55, %ebp
jne 0x2630
movl $0x3, 0x34(%rbx)
jmp 0x2630
leaq 0x390f(%rip), %rdi      # 0x589a
jmp 0x2629
cmpl $0x4b, %ebp
je 0x20d5
cmpl $0x55, %ebp
jne 0x2630
movl $0x3, 0x30(%rbx)
jmp 0x2630
cmpb $-0x40, %r14b
jb 0x20f4
cmpb $-0x10, %r14b
movl $0x4, %eax
sbbl $0x0, %eax
cmpb $-0x20, %r14b
movl $0x2, %ecx
cmovael %eax, %ecx
movl %ecx, 0x68(%rbx)
movslq 0x64(%rbx), %rax
leal 0x1(%rax), %ecx
movl %ecx, 0x64(%rbx)
movb %r14b, 0x6c(%rbx,%rax)
movl $0x7, 0x60(%rbx)
jmp 0x2638
leal -0x1(%r12), %eax
movl %eax, 0xc(%rbx)
testl %r12d, %r12d
jle 0x2692
cmpl 0x4(%rbx), %r12d
jle 0x2630
jmp 0x2692
movl 0x4(%rbx), %eax
cmpl %eax, 0xc(%rbx)
jl 0x201c
leal -0x1(%rax), %ecx
movl %ecx, 0xc(%rbx)
addl 0xc(%rbx), %r12d
movl %r12d, 0xc(%rbx)
setns %cl
cmpl %eax, %r12d
setl %dl
testb %dl, %cl
jne 0x2630
decl %eax
movl %eax, 0xc(%rbx)
jmp 0x2630
cmpl $0x1, %r13d
je 0x2647
cmpl $0x2, %r13d
jne 0x2660
cmpl $0x2, %eax
movl $0x1, %ecx
cmovll %ecx, %eax
decl %eax
movl %eax, 0x8(%rbx)
movl 0x14(%rsp), %eax
cmpl $0x2, %eax
cmovgel %eax, %ecx
decl %ecx
movl %ecx, 0xc(%rbx)
jmp 0x2668
orb $0x10, 0x19(%rbx)
cmpl $0x0, 0x30(%rbx)
jne 0x2088
movl $0x1, 0x30(%rbx)
cmpl $0x0, 0x34(%rbx)
jne 0x2630
movl $0x1, 0x34(%rbx)
jmp 0x2630
movl $0x2, 0x34(%rbx)
jmp 0x2630
leaq 0x380e(%rip), %rdi      # 0x58bf
xorl %eax, %eax
callq 0x2877
movl 0x18(%rbx), %eax
shrl $0xc, %eax
andl $0x1, %eax
movl %eax, 0x34(%rbx)
jmp 0x2630
movl $0x2, 0x30(%rbx)
jmp 0x2630
leaq 0x37e3(%rip), %rdi      # 0x58bf
xorl %eax, %eax
callq 0x2877
movl 0x18(%rbx), %eax
shrl $0xc, %eax
andl $0x1, %eax
movl %eax, 0x30(%rbx)
jmp 0x2630
movq %rbx, %rdi
movl $0xfffd, %esi           # imm = 0xFFFD
jmp 0x1f40
movl 0x4(%rbx), %eax
cmpl %eax, 0xc(%rbx)
jl 0x210e
decl %eax
movl %eax, 0xc(%rbx)
movl 0x8(%rbx), %eax
movl 0x10(%rbx), %ebp
cmpl %ebp, %eax
jl 0x2630
cmpl 0x14(%rbx), %eax
jg 0x2630
movl %eax, 0x10(%rbx)
testl %r12d, %r12d
jle 0x257d
movq %rbx, %rdi
callq 0x2a29
decl %r12d
jne 0x2131
jmp 0x257d
movl 0x4(%rbx), %eax
cmpl %eax, 0xc(%rbx)
jl 0x2150
decl %eax
movl %eax, 0xc(%rbx)
decl %r12d
movl %r12d, 0x8(%rbx)
jmp 0x2630
testl %r13d, %r13d
jle 0x2630
leaq 0x386f(%rip), %r14      # 0x59db
leaq 0x2f95(%rip), %r15      # 0x5108
xorl %ebp, %ebp
movl %ebp, %ecx
movl 0x10(%rsp,%rcx,4), %esi
cmpq $0x6b, %rsi
ja 0x22e8
movslq (%r15,%rsi,4), %rax
addq %r15, %rax
jmpq *%rax
movb 0x1b(%rbx), %al
andb $0xf, %al
shlb $0x4, %sil
orb %al, %sil
addb $0x20, %sil
jmp 0x21ba
movb 0x1b(%rbx), %al
andb $-0x10, %al
leal -0x28(%rsi), %ecx
jmp 0x21c8
movb 0x1b(%rbx), %al
andb $0xf, %al
shlb $0x4, %sil
orb %al, %sil
addb $-0x20, %sil
movb %sil, 0x1b(%rbx)
jmp 0x21cd
movb 0x1b(%rbx), %al
andb $-0x10, %al
leal -0x5c(%rsi), %ecx
orb %al, %cl
movb %cl, 0x1b(%rbx)
movl %ebp, %eax
incl %eax
movl %eax, %ebp
cmpl %r13d, %eax
jl 0x2175
jmp 0x2630
orb $0x8, 0x1a(%rbx)
jmp 0x21cd
movslq 0x38(%rbx), %rax
movl $0x3, 0x30(%rbx,%rax,4)
orb $0x1, 0x18(%rbx)
jmp 0x21cd
andb $-0x10, 0x1b(%rbx)
jmp 0x21cd
movslq %ebp, %rax
movl 0x14(%rsp,%rax,4), %edx
cmpl $0x2, %edx
je 0x22f7
movl %r13d, %eax
cmpl $0x5, %edx
jne 0x21cf
addl $0x2, %ebp
movl 0x18(%rsp,%rcx,4), %edi
callq 0x2cc2
jmp 0x230b
andb $-0x4, 0x1a(%rbx)
jmp 0x21cd
orb $0x10, 0x1a(%rbx)
jmp 0x21cd
orb $0x20, 0x1a(%rbx)
jmp 0x21cd
movzwl 0x18(%rbx), %eax
movl %eax, %ecx
shrl $0xc, %ecx
andl $0x1, %ecx
movl $0x0, 0x38(%rbx)
movl %ecx, 0x30(%rbx)
andl $-0x2, %eax
movw %ax, 0x18(%rbx)
jmp 0x21cd
orb $0x1, 0x1a(%rbx)
jmp 0x21cd
orb $0x40, 0x1a(%rbx)
jmp 0x21cd
movw $0x7000, 0x1a(%rbx)     # imm = 0x7000
jmp 0x21cd
andb $-0x9, 0x1a(%rbx)
jmp 0x21cd
andb $-0x11, 0x1a(%rbx)
jmp 0x21cd
orb $0x4, 0x1a(%rbx)
jmp 0x21cd
orb $0x2, 0x1a(%rbx)
jmp 0x21cd
andb $-0x21, 0x1a(%rbx)
jmp 0x21cd
andb $-0x5, 0x1a(%rbx)
jmp 0x21cd
movb 0x1b(%rbx), %al
andb $0xf, %al
orb $0x70, %al
movb %al, 0x1b(%rbx)
jmp 0x21cd
movslq %ebp, %rax
movl 0x14(%rsp,%rax,4), %edx
cmpl $0x2, %edx
je 0x2318
movl %r13d, %eax
cmpl $0x5, %edx
jne 0x21cf
movb 0x1b(%rbx), %r12b
andb $-0x10, %r12b
addl $0x2, %ebp
movl 0x18(%rsp,%rcx,4), %edi
callq 0x2cc2
jmp 0x2334
movq %r14, %rdi
xorl %eax, %eax
callq 0x2877
jmp 0x21cd
movl 0x18(%rsp,%rax,4), %edi
movl 0x1c(%rsp,%rax,4), %esi
addl $0x4, %ebp
movl 0x20(%rsp,%rcx,4), %edx
callq 0x2dbd
movb 0x1b(%rbx), %cl
andb $0xf, %cl
shlb $0x4, %al
orb %cl, %al
jmp 0x2337
movb 0x1b(%rbx), %r12b
andb $-0x10, %r12b
movl 0x18(%rsp,%rax,4), %edi
movl 0x1c(%rsp,%rax,4), %esi
addl $0x4, %ebp
movl 0x20(%rsp,%rcx,4), %edx
callq 0x2dbd
orb %r12b, %al
movb %al, 0x1b(%rbx)
jmp 0x21cd
movl 0x8(%rbx), %eax
subl %r12d, %eax
movl %eax, 0x8(%rbx)
movl $0x0, 0xc(%rbx)
jns 0x24ad
jmp 0x24b5
testl %r13d, %r13d
jle 0x2630
movl %r13d, %r14d
xorl %r12d, %r12d
movl 0x10(%rsp,%r12,4), %edx
movq %rbx, %rdi
movl %r15d, %esi
movl $0x1, %ecx
callq 0x2b6c
incq %r12
cmpq %r12, %r14
jne 0x2369
jmp 0x2630
movq 0x8(%rbx), %rax
movq %rax, 0x3c(%rbx)
jmp 0x2630
movl 0x4(%rbx), %eax
cmpl %eax, 0xc(%rbx)
jl 0x23a5
decl %eax
movl %eax, 0xc(%rbx)
leaq 0x3580(%rip), %rdi      # 0x592c
jmp 0x2629
leaq 0x3593(%rip), %rdi      # 0x594b
jmp 0x2629
movslq 0x4(%rbx), %rcx
cmpl %ecx, 0xc(%rbx)
jl 0x23cc
leal -0x1(%rcx), %eax
movl %eax, 0xc(%rbx)
movq 0x20(%rbx), %rax
movslq 0x8(%rbx), %rdx
movq (%rax,%rdx,8), %rax
movzwl -0x2(%rax,%rcx,4), %eax
movslq 0xc(%rbx), %rdx
subl %r12d, %ecx
cmpl %ecx, %edx
jge 0x241a
movslq %r12d, %rsi
leaq (,%rsi,4), %rdi
movq 0x20(%rbx), %rcx
movslq 0x8(%rbx), %r8
movq (%rcx,%r8,8), %rcx
leaq (%rcx,%rdx,4), %r8
movl (%rdi,%r8), %r8d
movl %r8d, (%rcx,%rdx,4)
incq %rdx
movslq 0x4(%rbx), %rcx
subq %rsi, %rcx
cmpq %rcx, %rdx
jl 0x23f3
cmpl 0x4(%rbx), %ecx
jge 0x2630
movslq %ecx, %rcx
movq 0x20(%rbx), %rdx
movslq 0x8(%rbx), %rsi
movq (%rdx,%rsi,8), %rdx
movw $0x20, (%rdx,%rcx,4)
movw %ax, 0x2(%rdx,%rcx,4)
incq %rcx
movslq 0x4(%rbx), %rdx
cmpq %rdx, %rcx
jl 0x2426
jmp 0x2630
movq 0x3c(%rbx), %rax
movq %rax, 0x8(%rbx)
jmp 0x2630
leaq 0x3529(%rip), %rdi      # 0x598b
jmp 0x1f5a
testl %r13d, %r13d
jle 0x2630
movl %r13d, %r14d
xorl %r12d, %r12d
movl 0x10(%rsp,%r12,4), %edx
movq %rbx, %rdi
movl %r15d, %esi
xorl %ecx, %ecx
callq 0x2b6c
incq %r12
cmpq %r12, %r14
jne 0x2476
jmp 0x2630
movl 0x4(%rbx), %eax
cmpl %eax, 0xc(%rbx)
jl 0x24a2
decl %eax
movl %eax, 0xc(%rbx)
movl 0x8(%rbx), %eax
subl %r12d, %eax
movl %eax, 0x8(%rbx)
js 0x24b5
cmpl (%rbx), %eax
jl 0x2630
movl $0x0, 0x8(%rbx)
jmp 0x2630
movl 0x4(%rbx), %esi
cmpl %esi, 0xc(%rbx)
jl 0x24cf
leal -0x1(%rsi), %eax
movl %eax, 0xc(%rbx)
xorl %edi, %edi
cmpl $0x1, %edx
je 0x26c4
movl (%rbx), %ecx
decl %ecx
leal -0x1(%rsi), %eax
testl %edx, %edx
jne 0x26ca
movl 0x8(%rbx), %edx
movl 0xc(%rbx), %edi
jmp 0x26cc
addl 0x8(%rbx), %r12d
movl %r12d, 0x8(%rbx)
movl $0x0, 0xc(%rbx)
js 0x250e
cmpl (%rbx), %r12d
jl 0x2630
movl (%rbx), %eax
decl %eax
movl %eax, 0x8(%rbx)
jmp 0x2630
movl 0x4(%rbx), %eax
cmpl %eax, 0xc(%rbx)
jl 0x2528
leal -0x1(%rax), %ecx
movl %ecx, 0xc(%rbx)
movl 0xc(%rbx), %ecx
subl %r12d, %ecx
xorl %edx, %edx
cmpl %eax, %ecx
movl $0x0, %eax
cmovll %ecx, %eax
testl %ecx, %ecx
cmovsl %edx, %eax
jmp 0x2697
movl 0x4(%rbx), %eax
cmpl %eax, 0xc(%rbx)
jl 0x2551
decl %eax
movl %eax, 0xc(%rbx)
movl 0x8(%rbx), %eax
movl 0x10(%rbx), %ebp
cmpl %ebp, %eax
jl 0x2630
cmpl 0x14(%rbx), %eax
jg 0x2630
movl %eax, 0x10(%rbx)
testl %r12d, %r12d
jle 0x257d
movq %rbx, %rdi
callq 0x2ae7
decl %r12d
jne 0x2570
movl %ebp, 0x10(%rbx)
jmp 0x2630
movl 0x4(%rbx), %eax
cmpl %eax, 0xc(%rbx)
jl 0x2593
leal -0x1(%rax), %ecx
movl %ecx, 0xc(%rbx)
xorl %ecx, %ecx
cmpl $0x1, %edx
je 0x276c
decl %eax
testl %edx, %edx
jne 0x276f
movl 0xc(%rbx), %ecx
jmp 0x276f
movl 0x4(%rbx), %eax
cmpl %eax, 0xc(%rbx)
jl 0x25bd
decl %eax
movl %eax, 0xc(%rbx)
testl %r12d, %r12d
jle 0x2630
movl %edx, %eax
cmpq $0x1, %rax
adcq $0x0, %rax
xorl %ecx, %ecx
movq 0x20(%rbx), %rdx
movslq 0x8(%rbx), %rsi
movq (%rdx,%rsi,8), %rdx
movslq 0xc(%rbx), %rsi
addq %rcx, %rsi
movzwl 0x1a(%rbx), %edi
movw $0x20, (%rdx,%rsi,4)
movw %di, 0x2(%rdx,%rsi,4)
incq %rcx
cmpl %ecx, %eax
jne 0x25ce
jmp 0x2630
cmpl $0x2, %r13d
jne 0x269c
cmpl $0x2, %eax
movl $0x1, %ecx
cmovll %ecx, %eax
decl %eax
movl %eax, 0x10(%rbx)
movl 0x14(%rsp), %eax
cmpl $0x2, %eax
cmovgel %eax, %ecx
jmp 0x26a5
leaq 0x3341(%rip), %rdi      # 0x596a
xorl %eax, %eax
callq 0x2877
movq $0x0, 0x60(%rbx)
addq $0x58, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
cmpl $0x2, %eax
movl $0x1, %ecx
cmovgel %eax, %ecx
decl %ecx
movl %ecx, 0x8(%rbx)
movl $0x0, 0xc(%rbx)
jmp 0x2668
movq $0x0, 0x8(%rbx)
testb $0x40, 0x18(%rbx)
je 0x2674
movl 0x10(%rbx), %eax
addl %eax, 0x8(%rbx)
movl 0x8(%rbx), %eax
testl %eax, %eax
js 0x267f
cmpl (%rbx), %eax
jl 0x2686
movl (%rbx), %eax
decl %eax
movl %eax, 0x8(%rbx)
movl 0xc(%rbx), %eax
testl %eax, %eax
js 0x2692
cmpl 0x4(%rbx), %eax
jl 0x2630
movl 0x4(%rbx), %eax
decl %eax
movl %eax, 0xc(%rbx)
jmp 0x2630
movl $0x0, 0x10(%rbx)
movl (%rbx), %ecx
decl %ecx
movl %ecx, 0x14(%rbx)
xorl %eax, %eax
testb $0x40, 0x18(%rbx)
je 0x26b5
movl 0x10(%rbx), %eax
movl %eax, 0x8(%rbx)
movl $0x0, 0xc(%rbx)
jmp 0x2630
movl 0x8(%rbx), %ecx
movl 0xc(%rbx), %eax
xorl %edx, %edx
cmpl %esi, %edi
jge 0x26fc
movslq %edx, %rsi
movslq %edi, %rdi
movq 0x20(%rbx), %r8
movq (%r8,%rsi,8), %r8
movzwl 0x1a(%rbx), %r9d
movw $0x20, (%r8,%rdi,4)
movw %r9w, 0x2(%r8,%rdi,4)
incq %rdi
movslq 0x4(%rbx), %r8
cmpq %r8, %rdi
jl 0x26d6
incl %edx
cmpl %ecx, %edx
jge 0x2739
movslq %edx, %rdx
cmpl $0x0, 0x4(%rbx)
jle 0x2732
xorl %esi, %esi
movq 0x20(%rbx), %rdi
movq (%rdi,%rdx,8), %rdi
movzwl 0x1a(%rbx), %r8d
movw $0x20, (%rdi,%rsi,4)
movw %r8w, 0x2(%rdi,%rsi,4)
incq %rsi
movslq 0x4(%rbx), %rdi
cmpq %rdi, %rsi
jl 0x270d
incq %rdx
cmpl %edx, %ecx
jne 0x2705
testl %eax, %eax
js 0x2630
movslq %ecx, %rcx
incl %eax
xorl %edx, %edx
movq 0x20(%rbx), %rsi
movq (%rsi,%rcx,8), %rsi
movzwl 0x1a(%rbx), %edi
movw $0x20, (%rsi,%rdx,4)
movw %di, 0x2(%rsi,%rdx,4)
incq %rdx
cmpq %rdx, %rax
jne 0x2748
jmp 0x2630
movl 0xc(%rbx), %eax
cmpl %eax, %ecx
jg 0x2630
movslq %ecx, %rdx
subl %ecx, %eax
incl %eax
movq 0x20(%rbx), %rcx
movslq 0x8(%rbx), %rsi
movq (%rcx,%rsi,8), %rcx
movzwl 0x1a(%rbx), %esi
movw $0x20, (%rcx,%rdx,4)
movw %si, 0x2(%rcx,%rdx,4)
incq %rdx
decl %eax
jne 0x277e
jmp 0x2630