// File: /workspace/github_cpp_makefile_star2_O2/cjxgm[P]libgpp/src/libgpp.cpp
// Function: (anonymous namespace)::do_arithm_eval(char*, int, int, int*)
int do_arithm_eval(char *buf, int pos1, int pos2, int *result) {
        int spl1, spl2, result1, result2, l;
        char c, *p;

        while ((pos1 < pos2) && is_white(buf[pos1]))
            pos1++;
        while ((pos1 < pos2) && is_white(buf[pos2 - 1]))
            pos2--;
        if (pos1 == pos2)
            return 0;

        // look for C operators starting with lowest precedence

        if (splice_infix(buf, pos1, pos2, "||", &spl1, &spl2)) {
            if (!do_arithm_eval(buf, pos1, spl1, &result1)
                    || !do_arithm_eval(buf, spl2, pos2, &result2))
                return 0;
            *result = result1 || result2;
            return 1;
        }

        if (splice_infix(buf, pos1, pos2, "&&", &spl1, &spl2)) {
            if (!do_arithm_eval(buf, pos1, spl1, &result1)
                    || !do_arithm_eval(buf, spl2, pos2, &result2))
                return 0;
            *result = result1 && result2;
            return 1;
        }

        if (splice_infix(buf, pos1, pos2, "|", &spl1, &spl2)) {
            if (!do_arithm_eval(buf, pos1, spl1, &result1)
                    || !do_arithm_eval(buf, spl2, pos2, &result2))
                return 0;
            *result = result1 | result2;
            return 1;
        }

        if (splice_infix(buf, pos1, pos2, "^", &spl1, &spl2)) {
            if (!do_arithm_eval(buf, pos1, spl1, &result1)
                    || !do_arithm_eval(buf, spl2, pos2, &result2))
                return 0;
            *result = result1 ^ result2;
            return 1;
        }

        if (splice_infix(buf, pos1, pos2, "&", &spl1, &spl2)) {
            if (!do_arithm_eval(buf, pos1, spl1, &result1)
                    || !do_arithm_eval(buf, spl2, pos2, &result2))
                return 0;
            *result = result1 & result2;
            return 1;
        }

        if (splice_infix(buf, pos1, pos2, "!=", &spl1, &spl2)) {
            if (!do_arithm_eval(buf, pos1, spl1, &result1)
                    || !do_arithm_eval(buf, spl2, pos2, &result2)) {
                // revert to string comparison
                while ((pos1 < spl1) && is_white(buf[spl1 - 1]))
                    spl1--;
                while ((pos2 > spl2) && is_white(buf[spl2]))
                    spl2++;
                if (spl1 - pos1 != pos2 - spl2)
                    *result = 1;
                else
                    *result = (strncmp(buf + pos1, buf + spl2, spl1 - pos1) != 0);
            } else
                *result = (result1 != result2);
            return 1;
        }

        if (splice_infix(buf, pos1, pos2, "==", &spl1, &spl2)) {
            if (!do_arithm_eval(buf, pos1, spl1, &result1)
                    || !do_arithm_eval(buf, spl2, pos2, &result2)) {
                // revert to string comparison
                while ((pos1 < spl1) && is_white(buf[spl1 - 1]))
                    spl1--;
                while ((pos2 > spl2) && is_white(buf[spl2]))
                    spl2++;
                if (spl1 - pos1 != pos2 - spl2)
                    *result = 0;
                else
                    *result = (strncmp(buf + pos1, buf + spl2, spl1 - pos1) == 0);
            } else
                *result = (result1 == result2);
            return 1;
        }

        if (splice_infix(buf, pos1, pos2, "=~", &spl1, &spl2)) {
            bug("globbing not allowed");
        }

        if (splice_infix(buf, pos1, pos2, ">=", &spl1, &spl2)) {
            if (!do_arithm_eval(buf, pos1, spl1, &result1)
                    || !do_arithm_eval(buf, spl2, pos2, &result2)) {
                // revert to string comparison
                while ((pos1 < spl1) && is_white(buf[spl1 - 1]))
                    spl1--;
                while ((pos2 > spl2) && is_white(buf[spl2]))
                    spl2++;
                l = spl1 - pos1;
                if (l > pos2 - spl2)
                    l = pos2 - spl2;
                result1 = strncmp(buf + pos1, buf + spl2, l);
                *result = (result1 > 0)
                        || ((result1 == 0) && (spl1 - pos1 >= pos2 - spl2));
            } else
                *result = (result1 >= result2);
            return 1;
        }

        if (splice_infix(buf, pos1, pos2, ">", &spl1, &spl2)) {
            if (!do_arithm_eval(buf, pos1, spl1, &result1)
                    || !do_arithm_eval(buf, spl2, pos2, &result2)) {
                // revert to string comparison
                while ((pos1 < spl1) && is_white(buf[spl1 - 1]))
                    spl1--;
                while ((pos2 > spl2) && is_white(buf[spl2]))
                    spl2++;
                l = spl1 - pos1;
                if (l > pos2 - spl2)
                    l = pos2 - spl2;
                result1 = strncmp(buf + pos1, buf + spl2, l);
                *result = (result1 > 0)
                        || ((result1 == 0) && (spl1 - pos1 > pos2 - spl2));
            } else
                *result = (result1 > result2);
            return 1;
        }

        if (splice_infix(buf, pos1, pos2, "<=", &spl1, &spl2)) {
            if (!do_arithm_eval(buf, pos1, spl1, &result1)
                    || !do_arithm_eval(buf, spl2, pos2, &result2)) {
                // revert to string comparison
                while ((pos1 < spl1) && is_white(buf[spl1 - 1]))
                    spl1--;
                while ((pos2 > spl2) && is_white(buf[spl2]))
                    spl2++;
                l = spl1 - pos1;
                if (l > pos2 - spl2)
                    l = pos2 - spl2;
                result1 = strncmp(buf + pos1, buf + spl2, l);
                *result = (result1 < 0)
                        || ((result1 == 0) && (spl1 - pos1 <= pos2 - spl2));
            } else
                *result = (result1 <= result2);
            return 1;
        }

        if (splice_infix(buf, pos1, pos2, "<", &spl1, &spl2)) {
            if (!do_arithm_eval(buf, pos1, spl1, &result1)
                    || !do_arithm_eval(buf, spl2, pos2, &result2)) {
                // revert to string comparison
                while ((pos1 < spl1) && is_white(buf[spl1 - 1]))
                    spl1--;
                while ((pos2 > spl2) && is_white(buf[spl2]))
                    spl2++;
                l = spl1 - pos1;
                if (l > pos2 - spl2)
                    l = pos2 - spl2;
                result1 = strncmp(buf + pos1, buf + spl2, l);
                *result = (result1 < 0)
                        || ((result1 == 0) && (spl1 - pos1 < pos2 - spl2));
            } else
                *result = (result1 < result2);
            return 1;
        }

        if (splice_infix(buf, pos1, pos2, "+", &spl1, &spl2)) {
            if (!do_arithm_eval(buf, pos1, spl1, &result1)
                    || !do_arithm_eval(buf, spl2, pos2, &result2))
                return 0;
            *result = result1 + result2;
            return 1;
        }

        if (splice_infix(buf, pos1, pos2, "-", &spl1, &spl2))
            if (spl1 != pos1) {
                if (!do_arithm_eval(buf, pos1, spl1, &result1)
                        || !do_arithm_eval(buf, spl2, pos2, &result2))
                    return 0;
                *result = result1 - result2;
                return 1;
            }

        if (splice_infix(buf, pos1, pos2, "*", &spl1, &spl2)) {
            if (!do_arithm_eval(buf, pos1, spl1, &result1)
                    || !do_arithm_eval(buf, spl2, pos2, &result2))
                return 0;
            *result = result1 * result2;
            return 1;
        }

        if (splice_infix(buf, pos1, pos2, "/", &spl1, &spl2)) {
            if (!do_arithm_eval(buf, pos1, spl1, &result1)
                    || !do_arithm_eval(buf, spl2, pos2, &result2))
                return 0;
            if (result2 == 0)
                bug("division by zero in expression");
            *result = result1 / result2;
            return 1;
        }

        if (splice_infix(buf, pos1, pos2, "%", &spl1, &spl2)) {
            if (!do_arithm_eval(buf, pos1, spl1, &result1)
                    || !do_arithm_eval(buf, spl2, pos2, &result2))
                return 0;
            if (result2 == 0)
                bug("division by zero in expression");
            *result = result1 % result2;
            return 1;
        }

        if (buf[pos1] == '~') {
            if (!do_arithm_eval(buf, pos1 + 1, pos2, &result1))
                return 0;
            *result = ~result1;
            return 1;
        }

        if (buf[pos1] == '!') {
            if (!do_arithm_eval(buf, pos1 + 1, pos2, &result1))
                return 0;
            *result = !result1;
            return 1;
        }

        if (buf[pos1] == '-') {
            if (!do_arithm_eval(buf, pos1 + 1, pos2, &result1))
                return 0;
            *result = -result1;
            return 1;
        }

        // add the length() builtin to measure the length of the macro expansion
        if (strncmp(buf + pos1, "length(", strlen("length(")) == 0) {
            if (buf[pos2 - 1] != ')')
                return 0;
            *result = pos2 - pos1 - strlen("length()");
            return 1;
        }

        if (buf[pos1] == '(') {
            if (buf[pos2 - 1] != ')')
                return 0;
            return do_arithm_eval(buf, pos1 + 1, pos2 - 1, result);
        }

        c = buf[pos2];
        buf[pos2] = 0;
        *result = (int) strtol(buf + pos1, &p, 0);
        buf[pos2] = c;
        return (p == buf + pos2);
    }

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x28, %rsp
movl %edx, %r13d
movq %rdi, %r14
movslq %esi, %rsi
movslq %edx, %rax
cmpl %esi, %eax
movl %esi, %r15d
cmovgl %edx, %r15d
movabsq $0x100000600, %rbx      # imm = 0x100000600
cmpq %rax, %rsi
jge 0x6759
movzbl (%r14,%rsi), %edx
cmpq $0x20, %rdx
ja 0x6756
btq %rdx, %rbx
jae 0x6756
incq %rsi
jmp 0x673b
movl %esi, %r15d
movslq %r15d, %r12
cmpl %r13d, %r12d
cmovll %r15d, %r13d
cmpq %r12, %rax
jle 0x6782
movzbl -0x1(%r14,%rax), %edx
cmpq $0x20, %rdx
ja 0x677f
btq %rdx, %rbx
jae 0x677f
decq %rax
jmp 0x6763
movl %eax, %r13d
xorl %eax, %eax
movl %r13d, %ebp
subl %r15d, %ebp
je 0x726f
movq %rcx, 0x20(%rsp)
leaq 0x2329(%rip), %rcx      # 0x8ac5
leaq 0x10(%rsp), %r8
leaq 0xc(%rsp), %r9
movq %r14, %rdi
movl %r15d, %esi
movl %r13d, %edx
callq 0x73e7
testl %eax, %eax
je 0x680e
movl 0x10(%rsp), %edx
leaq 0x18(%rsp), %rcx
movq %r14, %rdi
movl %r15d, %esi
callq 0x670e
testl %eax, %eax
je 0x726d
movl 0xc(%rsp), %esi
leaq 0x14(%rsp), %rcx
movq %r14, %rdi
movl %r13d, %edx
callq 0x670e
testl %eax, %eax
movl $0x0, %eax
je 0x726f
movl 0x14(%rsp), %eax
xorl %ecx, %ecx
orl 0x18(%rsp), %eax
setne %cl
movq 0x20(%rsp), %rax
movl %ecx, (%rax)
jmp 0x69ce
leaq 0x22b3(%rip), %rcx      # 0x8ac8
leaq 0x10(%rsp), %r8
leaq 0xc(%rsp), %r9
movq %r14, %rdi
movl %r15d, %esi
movl %r13d, %edx
callq 0x73e7
testl %eax, %eax
je 0x6888
movl 0x10(%rsp), %edx
leaq 0x18(%rsp), %rcx
movq %r14, %rdi
movl %r15d, %esi
callq 0x670e
testl %eax, %eax
je 0x726d
movl 0xc(%rsp), %esi
leaq 0x14(%rsp), %rcx
movq %r14, %rdi
movl %r13d, %edx
callq 0x670e
testl %eax, %eax
movl $0x0, %eax
je 0x726f
cmpl $0x0, 0x18(%rsp)
setne %al
cmpl $0x0, 0x14(%rsp)
setne %cl
andb %al, %cl
movzbl %cl, %eax
jmp 0x69c7
leaq 0x1b8c(%rip), %rcx      # 0x841b
leaq 0x10(%rsp), %r8
leaq 0xc(%rsp), %r9
movq %r14, %rdi
movl %r15d, %esi
movl %r13d, %edx
callq 0x73e7
testl %eax, %eax
je 0x68f5
movl 0x10(%rsp), %edx
leaq 0x18(%rsp), %rcx
movq %r14, %rdi
movl %r15d, %esi
callq 0x670e
testl %eax, %eax
je 0x726d
movl 0xc(%rsp), %esi
leaq 0x14(%rsp), %rcx
movq %r14, %rdi
movl %r13d, %edx
callq 0x670e
testl %eax, %eax
movl $0x0, %eax
je 0x726f
movl 0x14(%rsp), %eax
orl 0x18(%rsp), %eax
jmp 0x69c7
leaq 0x21cf(%rip), %rcx      # 0x8acb
leaq 0x10(%rsp), %r8
leaq 0xc(%rsp), %r9
movq %r14, %rdi
movl %r15d, %esi
movl %r13d, %edx
callq 0x73e7
testl %eax, %eax
je 0x695f
movl 0x10(%rsp), %edx
leaq 0x18(%rsp), %rcx
movq %r14, %rdi
movl %r15d, %esi
callq 0x670e
testl %eax, %eax
je 0x726d
movl 0xc(%rsp), %esi
leaq 0x14(%rsp), %rcx
movq %r14, %rdi
movl %r13d, %edx
callq 0x670e
testl %eax, %eax
movl $0x0, %eax
je 0x726f
movl 0x14(%rsp), %eax
xorl 0x18(%rsp), %eax
jmp 0x69c7
leaq 0x2163(%rip), %rcx      # 0x8ac9
leaq 0x10(%rsp), %r8
leaq 0xc(%rsp), %r9
movq %r14, %rdi
movl %r15d, %esi
movl %r13d, %edx
callq 0x73e7
testl %eax, %eax
je 0x69d6
movl 0x10(%rsp), %edx
leaq 0x18(%rsp), %rcx
movq %r14, %rdi
movl %r15d, %esi
callq 0x670e
testl %eax, %eax
je 0x726d
movl 0xc(%rsp), %esi
leaq 0x14(%rsp), %rcx
movq %r14, %rdi
movl %r13d, %edx
callq 0x670e
testl %eax, %eax
movl $0x0, %eax
je 0x726f
movl 0x14(%rsp), %eax
andl 0x18(%rsp), %eax
movq 0x20(%rsp), %rcx
movl %eax, (%rcx)
pushq $0x1
popq %rax
jmp 0x726f
leaq 0x20f0(%rip), %rcx      # 0x8acd
leaq 0x10(%rsp), %r8
leaq 0xc(%rsp), %r9
movq %r14, %rdi
movl %r15d, %esi
movl %r13d, %edx
callq 0x73e7
testl %eax, %eax
je 0x6a6c
movl 0x10(%rsp), %ebp
leaq 0x18(%rsp), %rcx
movq %r14, %rdi
movl %r15d, %esi
movl %ebp, %edx
callq 0x670e
testl %eax, %eax
je 0x6a3a
movl 0xc(%rsp), %esi
leaq 0x14(%rsp), %rcx
movq %r14, %rdi
movl %r13d, %edx
callq 0x670e
testl %eax, %eax
je 0x6a3a
movl 0x18(%rsp), %eax
xorl %ecx, %ecx
cmpl 0x14(%rsp), %eax
jmp 0x67ff
movslq %ebp, %rax
cmpl %ebp, %r15d
cmovll %r15d, %ebp
cmpq %r12, %rax
jle 0x6b98
movzbl -0x1(%r14,%rax), %ecx
cmpq $0x20, %rcx
ja 0x6b96
btq %rcx, %rbx
jae 0x6b96
decq %rax
jmp 0x6a44
leaq 0x205d(%rip), %rcx      # 0x8ad0
leaq 0x10(%rsp), %r8
leaq 0xc(%rsp), %r9
movq %r14, %rdi
movl %r15d, %esi
movl %r13d, %edx
callq 0x73e7
testl %eax, %eax
je 0x6b02
movl 0x10(%rsp), %ebp
leaq 0x18(%rsp), %rcx
movq %r14, %rdi
movl %r15d, %esi
movl %ebp, %edx
callq 0x670e
testl %eax, %eax
je 0x6ad0
movl 0xc(%rsp), %esi
leaq 0x14(%rsp), %rcx
movq %r14, %rdi
movl %r13d, %edx
callq 0x670e
testl %eax, %eax
je 0x6ad0
movl 0x18(%rsp), %eax
xorl %ecx, %ecx
cmpl 0x14(%rsp), %eax
jmp 0x6cf0
movslq %ebp, %rax
cmpl %ebp, %r15d
cmovll %r15d, %ebp
cmpq %r12, %rax
jle 0x6c9f
movzbl -0x1(%r14,%rax), %ecx
cmpq $0x20, %rcx
ja 0x6c9d
btq %rcx, %rbx
jae 0x6c9d
decq %rax
jmp 0x6ada
leaq 0x1fca(%rip), %rcx      # 0x8ad3
leaq 0x10(%rsp), %r8
leaq 0xc(%rsp), %r9
movq %r14, %rdi
movl %r15d, %esi
movl %r13d, %edx
callq 0x73e7
testl %eax, %eax
jne 0x73cf
leaq 0x1fbb(%rip), %rcx      # 0x8aeb
leaq 0x10(%rsp), %r8
leaq 0xc(%rsp), %r9
movq %r14, %rdi
movl %r15d, %esi
movl %r13d, %edx
callq 0x73e7
testl %eax, %eax
je 0x6c30
movl 0x10(%rsp), %ebp
leaq 0x18(%rsp), %rcx
movq %r14, %rdi
movl %r15d, %esi
movl %ebp, %edx
callq 0x670e
testl %eax, %eax
je 0x6bfe
movl 0xc(%rsp), %esi
leaq 0x14(%rsp), %rcx
movq %r14, %rdi
movl %r13d, %edx
callq 0x670e
testl %eax, %eax
je 0x6bfe
movl 0x18(%rsp), %eax
cmpl 0x14(%rsp), %eax
setge %cl
jmp 0x6880
movl %eax, %ebp
movslq 0xc(%rsp), %rcx
movslq %r13d, %rdx
cmpl %ecx, %r13d
movl %ecx, %eax
cmovgl %r13d, %eax
cmpq %rdx, %rcx
jge 0x6bc6
movzbl (%r14,%rcx), %esi
cmpq $0x20, %rsi
ja 0x6bc4
btq %rsi, %rbx
jae 0x6bc4
incq %rcx
jmp 0x6ba9
movl %ecx, %eax
subl %r15d, %ebp
subl %eax, %r13d
cmpl %r13d, %ebp
jne 0x6bee
addq %r14, %r12
movslq %eax, %rsi
addq %r14, %rsi
movslq %ebp, %rdx
movq %r12, %rdi
callq 0x2090
xorl %ecx, %ecx
testl %eax, %eax
jmp 0x67ff
movq 0x20(%rsp), %rax
movl $0x1, (%rax)
jmp 0x69ce
movslq %ebp, %rax
cmpl %ebp, %r15d
cmovll %r15d, %ebp
cmpq %r12, %rax
jle 0x6da6
movzbl -0x1(%r14,%rax), %ecx
cmpq $0x20, %rcx
ja 0x6da4
btq %rcx, %rbx
jae 0x6da4
decq %rax
jmp 0x6c08
leaq 0x1eb7(%rip), %rcx      # 0x8aee
leaq 0x10(%rsp), %r8
leaq 0xc(%rsp), %r9
movq %r14, %rdi
movl %r15d, %esi
movl %r13d, %edx
callq 0x73e7
testl %eax, %eax
je 0x6d37
movl 0x10(%rsp), %ebp
leaq 0x18(%rsp), %rcx
movq %r14, %rdi
movl %r15d, %esi
movl %ebp, %edx
callq 0x670e
testl %eax, %eax
je 0x6d05
movl 0xc(%rsp), %esi
leaq 0x14(%rsp), %rcx
movq %r14, %rdi
movl %r13d, %edx
callq 0x670e
testl %eax, %eax
je 0x6d05
movl 0x18(%rsp), %eax
cmpl 0x14(%rsp), %eax
setg %cl
jmp 0x6880
movl %eax, %ebp
movslq 0xc(%rsp), %rcx
movslq %r13d, %rdx
cmpl %ecx, %r13d
movl %ecx, %eax
cmovgl %r13d, %eax
cmpq %rdx, %rcx
jge 0x6ccd
movzbl (%r14,%rcx), %esi
cmpq $0x20, %rsi
ja 0x6ccb
btq %rsi, %rbx
jae 0x6ccb
incq %rcx
jmp 0x6cb0
movl %ecx, %eax
subl %r15d, %ebp
subl %eax, %r13d
cmpl %r13d, %ebp
jne 0x6cf8
addq %r14, %r12
movslq %eax, %rsi
addq %r14, %rsi
movslq %ebp, %rdx
movq %r12, %rdi
callq 0x2090
xorl %ecx, %ecx
testl %eax, %eax
sete %cl
jmp 0x6802
movq 0x20(%rsp), %rax
andl $0x0, (%rax)
jmp 0x69ce
movslq %ebp, %rax
cmpl %ebp, %r15d
cmovll %r15d, %ebp
cmpq %r12, %rax
jle 0x6eb0
movzbl -0x1(%r14,%rax), %ecx
cmpq $0x20, %rcx
ja 0x6eae
btq %rcx, %rbx
jae 0x6eae
decq %rax
jmp 0x6d0f
leaq 0x1db2(%rip), %rcx      # 0x8af0
leaq 0x10(%rsp), %r8
leaq 0xc(%rsp), %r9
movq %r14, %rdi
movl %r15d, %esi
movl %r13d, %edx
callq 0x73e7
testl %eax, %eax
je 0x6e41
movl 0x10(%rsp), %ebp
leaq 0x18(%rsp), %rcx
movq %r14, %rdi
movl %r15d, %esi
movl %ebp, %edx
callq 0x670e
testl %eax, %eax
je 0x6e0f
movl 0xc(%rsp), %esi
leaq 0x14(%rsp), %rcx
movq %r14, %rdi
movl %r13d, %edx
callq 0x670e
testl %eax, %eax
je 0x6e0f
movl 0x18(%rsp), %eax
cmpl 0x14(%rsp), %eax
setle %cl
jmp 0x6880
movl %eax, %ebp
movslq 0xc(%rsp), %rcx
movslq %r13d, %rdx
cmpl %ecx, %r13d
movl %ecx, %eax
cmovgl %r13d, %eax
cmpq %rdx, %rcx
jge 0x6dd4
movzbl (%r14,%rcx), %esi
cmpq $0x20, %rsi
ja 0x6dd2
btq %rsi, %rbx
jae 0x6dd2
incq %rcx
jmp 0x6db7
movl %ecx, %eax
subl %r15d, %ebp
subl %eax, %r13d
cmpl %r13d, %ebp
movl %r13d, %ecx
cmovll %ebp, %ecx
addq %r14, %r12
movslq %eax, %rsi
addq %r14, %rsi
movslq %ecx, %rdx
movq %r12, %rdi
callq 0x2090
movb $0x1, %cl
testl %eax, %eax
jg 0x6880
sete %al
cmpl %r13d, %ebp
setge %cl
jmp 0x687e
movslq %ebp, %rax
cmpl %ebp, %r15d
cmovll %r15d, %ebp
cmpq %r12, %rax
jle 0x6fc2
movzbl -0x1(%r14,%rax), %ecx
cmpq $0x20, %rcx
ja 0x6fc0
btq %rcx, %rbx
jae 0x6fc0
decq %rax
jmp 0x6e19
leaq 0x1cab(%rip), %rcx      # 0x8af3
leaq 0x10(%rsp), %r8
leaq 0xc(%rsp), %r9
movq %r14, %rdi
movl %r15d, %esi
movl %r13d, %edx
callq 0x73e7
testl %eax, %eax
je 0x6f4f
movl 0x10(%rsp), %ebp
leaq 0x18(%rsp), %rcx
movq %r14, %rdi
movl %r15d, %esi
movl %ebp, %edx
callq 0x670e
testl %eax, %eax
je 0x6f1d
movl 0xc(%rsp), %esi
leaq 0x14(%rsp), %rcx
movq %r14, %rdi
movl %r13d, %edx
callq 0x670e
testl %eax, %eax
je 0x6f1d
movl 0x18(%rsp), %eax
cmpl 0x14(%rsp), %eax
setl %cl
jmp 0x6880
movl %eax, %ebp
movslq 0xc(%rsp), %rcx
movslq %r13d, %rdx
cmpl %ecx, %r13d
movl %ecx, %eax
cmovgl %r13d, %eax
cmpq %rdx, %rcx
jge 0x6ede
movzbl (%r14,%rcx), %esi
cmpq $0x20, %rsi
ja 0x6edc
btq %rsi, %rbx
jae 0x6edc
incq %rcx
jmp 0x6ec1
movl %ecx, %eax
subl %r15d, %ebp
subl %eax, %r13d
cmpl %r13d, %ebp
movl %r13d, %ecx
cmovll %ebp, %ecx
addq %r14, %r12
movslq %eax, %rsi
addq %r14, %rsi
movslq %ecx, %rdx
movq %r12, %rdi
callq 0x2090
movb $0x1, %cl
testl %eax, %eax
jg 0x6880
cmpl %r13d, %ebp
setg %dl
testl %eax, %eax
sete %cl
andb %dl, %cl
jmp 0x6880
movslq %ebp, %rax
cmpl %ebp, %r15d
cmovll %r15d, %ebp
cmpq %r12, %rax
jle 0x70cf
movzbl -0x1(%r14,%rax), %ecx
cmpq $0x20, %rcx
ja 0x70cd
btq %rcx, %rbx
jae 0x70cd
decq %rax
jmp 0x6f27
leaq 0x1b9f(%rip), %rcx      # 0x8af5
leaq 0x10(%rsp), %r8
leaq 0xc(%rsp), %r9
movq %r14, %rdi
movl %r15d, %esi
movl %r13d, %edx
callq 0x73e7
testl %eax, %eax
je 0x702b
movl 0x10(%rsp), %edx
leaq 0x18(%rsp), %rcx
movq %r14, %rdi
movl %r15d, %esi
callq 0x670e
testl %eax, %eax
je 0x726d
movl 0xc(%rsp), %esi
leaq 0x14(%rsp), %rcx
movq %r14, %rdi
movl %r13d, %edx
callq 0x670e
testl %eax, %eax
movl $0x0, %eax
je 0x726f
movl 0x14(%rsp), %eax
addl 0x18(%rsp), %eax
jmp 0x69c7
movl %eax, %ebp
movslq 0xc(%rsp), %rcx
movslq %r13d, %rdx
cmpl %ecx, %r13d
movl %ecx, %eax
cmovgl %r13d, %eax
cmpq %rdx, %rcx
jge 0x6ff0
movzbl (%r14,%rcx), %esi
cmpq $0x20, %rsi
ja 0x6fee
btq %rsi, %rbx
jae 0x6fee
incq %rcx
jmp 0x6fd3
movl %ecx, %eax
subl %r15d, %ebp
subl %eax, %r13d
cmpl %r13d, %ebp
movl %r13d, %ecx
cmovll %ebp, %ecx
addq %r14, %r12
movslq %eax, %rsi
addq %r14, %rsi
movslq %ecx, %rdx
movq %r12, %rdi
callq 0x2090
movb $0x1, %cl
testl %eax, %eax
js 0x6880
sete %al
cmpl %r13d, %ebp
setle %cl
jmp 0x687e
leaq 0x1ac5(%rip), %rcx      # 0x8af7
leaq 0x10(%rsp), %r8
leaq 0xc(%rsp), %r9
movq %r14, %rdi
movl %r15d, %esi
movl %r13d, %edx
callq 0x73e7
testl %eax, %eax
je 0x705b
movl 0x10(%rsp), %edx
cmpl %r15d, %edx
jne 0x7138
leaq 0x13cb(%rip), %rcx      # 0x842d
leaq 0x10(%rsp), %r8
leaq 0xc(%rsp), %r9
movq %r14, %rdi
movl %r15d, %esi
movl %r13d, %edx
callq 0x73e7
testl %eax, %eax
je 0x717e
movl 0x10(%rsp), %edx
leaq 0x18(%rsp), %rcx
movq %r14, %rdi
movl %r15d, %esi
callq 0x670e
testl %eax, %eax
je 0x726d
movl 0xc(%rsp), %esi
leaq 0x14(%rsp), %rcx
movq %r14, %rdi
movl %r13d, %edx
callq 0x670e
testl %eax, %eax
movl $0x0, %eax
je 0x726f
movl 0x14(%rsp), %eax
imull 0x18(%rsp), %eax
jmp 0x69c7
movl %eax, %ebp
movslq 0xc(%rsp), %rcx
movslq %r13d, %rdx
cmpl %ecx, %r13d
movl %ecx, %eax
cmovgl %r13d, %eax
cmpq %rdx, %rcx
jge 0x70fd
movzbl (%r14,%rcx), %esi
cmpq $0x20, %rsi
ja 0x70fb
btq %rsi, %rbx
jae 0x70fb
incq %rcx
jmp 0x70e0
movl %ecx, %eax
subl %r15d, %ebp
subl %eax, %r13d
cmpl %r13d, %ebp
movl %r13d, %ecx
cmovll %ebp, %ecx
addq %r14, %r12
movslq %eax, %rsi
addq %r14, %rsi
movslq %ecx, %rdx
movq %r12, %rdi
callq 0x2090
movb $0x1, %cl
testl %eax, %eax
js 0x6880
sete %al
cmpl %r13d, %ebp
setl %cl
jmp 0x687e
leaq 0x18(%rsp), %rcx
movq %r14, %rdi
movl %r15d, %esi
callq 0x670e
testl %eax, %eax
je 0x726d
movl 0xc(%rsp), %esi
leaq 0x14(%rsp), %rcx
movq %r14, %rdi
movl %r13d, %edx
callq 0x670e
testl %eax, %eax
movl $0x0, %eax
je 0x726f
movl 0x18(%rsp), %eax
subl 0x14(%rsp), %eax
jmp 0x69c7
leaq 0x12ab(%rip), %rcx      # 0x8430
leaq 0x10(%rsp), %r8
leaq 0xc(%rsp), %r9
movq %r14, %rdi
movl %r15d, %esi
movl %r13d, %edx
callq 0x73e7
testl %eax, %eax
je 0x71f6
movl 0x10(%rsp), %edx
leaq 0x18(%rsp), %rcx
movq %r14, %rdi
movl %r15d, %esi
callq 0x670e
testl %eax, %eax
je 0x726d
movl 0xc(%rsp), %esi
leaq 0x14(%rsp), %rcx
movq %r14, %rdi
movl %r13d, %edx
callq 0x670e
testl %eax, %eax
movl $0x0, %eax
je 0x726f
movl 0x14(%rsp), %ecx
testl %ecx, %ecx
je 0x73db
movl 0x18(%rsp), %eax
cltd
idivl %ecx
jmp 0x69c7
leaq 0x191b(%rip), %rcx      # 0x8b18
leaq 0x10(%rsp), %r8
leaq 0xc(%rsp), %r9
movq %r14, %rdi
movl %r15d, %esi
movl %r13d, %edx
callq 0x73e7
testl %eax, %eax
je 0x727e
movl 0x10(%rsp), %edx
leaq 0x18(%rsp), %rcx
movq %r14, %rdi
movl %r15d, %esi
callq 0x670e
testl %eax, %eax
je 0x726d
movl 0xc(%rsp), %esi
leaq 0x14(%rsp), %rcx
movq %r14, %rdi
movl %r13d, %edx
callq 0x670e
testl %eax, %eax
movl $0x0, %eax
je 0x726f
movl 0x14(%rsp), %ecx
testl %ecx, %ecx
je 0x73db
movl 0x18(%rsp), %eax
cltd
idivl %ecx
movq 0x20(%rsp), %rax
movl %edx, (%rax)
jmp 0x69ce
xorl %eax, %eax
addq $0x28, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movzbl (%r14,%r12), %ebx
cmpl $0x21, %ebx
je 0x72c0
cmpl $0x2d, %ebx
je 0x72ee
cmpl $0x7e, %ebx
jne 0x731c
incl %r15d
leaq 0x18(%rsp), %rcx
movq %r14, %rdi
movl %r15d, %esi
movl %r13d, %edx
callq 0x670e
testl %eax, %eax
movl $0x0, %eax
je 0x726f
movl 0x18(%rsp), %eax
notl %eax
jmp 0x69c7
incl %r15d
leaq 0x18(%rsp), %rcx
movq %r14, %rdi
movl %r15d, %esi
movl %r13d, %edx
callq 0x670e
testl %eax, %eax
movl $0x0, %eax
je 0x726f
xorl %eax, %eax
cmpl $0x0, 0x18(%rsp)
sete %al
jmp 0x69c7
incl %r15d
leaq 0x18(%rsp), %rcx
movq %r14, %rdi
movl %r15d, %esi
movl %r13d, %edx
callq 0x670e
testl %eax, %eax
movl $0x0, %eax
je 0x726f
xorl %eax, %eax
subl 0x18(%rsp), %eax
jmp 0x69c7
addq %r14, %r12
leaq 0x17f4(%rip), %rsi      # 0x8b1a
pushq $0x7
popq %rdx
movq %r12, %rdi
callq 0x2090
testl %eax, %eax
je 0x7372
cmpb $0x28, %bl
jne 0x7395
movslq %r13d, %rdx
cmpb $0x29, -0x1(%r14,%rdx)
movl $0x0, %eax
jne 0x726f
decq %rdx
incl %r15d
movq %r14, %rdi
movl %r15d, %esi
movq 0x20(%rsp), %rcx
addq $0x28, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x670e
movslq %r13d, %rax
cmpb $0x29, -0x1(%r14,%rax)
movl $0x0, %eax
jne 0x726f
addl $-0x8, %ebp
movq 0x20(%rsp), %rax
movl %ebp, (%rax)
jmp 0x69ce
movslq %r13d, %rbx
leaq (%r14,%rbx), %r13
movb (%r14,%rbx), %bpl
movb $0x0, (%r14,%rbx)
leaq 0x18(%rsp), %r15
movq %r12, %rdi
movq %r15, %rsi
xorl %edx, %edx
callq 0x21b0
movq 0x20(%rsp), %rcx
movl %eax, (%rcx)
movb %bpl, (%r14,%rbx)
xorl %eax, %eax
cmpq %r13, (%r15)
sete %al
jmp 0x726f
leaq 0x1700(%rip), %rdi      # 0x8ad6
callq 0x2d13
leaq 0x1717(%rip), %rdi      # 0x8af9
callq 0x2d13