// File: /workspace/github_cpp_makefile_star2_O1/Fohlen[P]cubescript-standalone/command.cpp
// Function: compileword(vector<unsigned int>&, char const*&, int, char*&, int&)
static bool compileword(vector<uint> &code, const char *&p, int wordtype, char *&word, int &wordlen)
{
    skipcomments(p);
    switch(*p)
    {
        case '\"': word = cutstring(p, wordlen); break;
        case '$': compilelookup(code, p, wordtype); return true;
        case '(':
            p++;
            code.add(CODE_ENTER);
            compilestatements(code, p, VAL_ANY, ')');
            code.add(CODE_EXIT|(wordtype < VAL_ANY ? wordtype<<CODE_RET : 0));
            switch(wordtype)
            {
                case VAL_CODE: code.add(CODE_COMPILE); break;
                case VAL_IDENT: code.add(CODE_IDENTU); break;
            }
            return true;        
        case '[':
            p++;
            compileblock(code, p, wordtype);
            return true;
        default: word = cutword(p, wordlen); break;
    }
    return word!=NULL;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x48, %rsp
movq %r8, -0x50(%rbp)
movq %rcx, -0x68(%rbp)
movl %edx, -0x5c(%rbp)
movq %rsi, %r14
movq %rdi, -0x40(%rbp)
movq (%rsi), %r12
leaq 0x7882(%rip), %rsi      # 0x17095
movq %r12, %rdi
callq 0x2070
leaq (%r12,%rax), %r15
movq %r15, (%r14)
cmpb $0x2f, (%r12,%rax)
jne 0xf86a
leaq 0x72a9(%rip), %r12      # 0x16ad9
leaq 0x785e(%rip), %r13      # 0x17095
cmpb $0x2f, 0x1(%r15)
jne 0xf86a
movq %r15, %rdi
movq %r12, %rsi
callq 0x2030
movq %rax, %rbx
addq %r15, %rbx
movq %rbx, (%r14)
movq %rbx, %rdi
movq %r13, %rsi
callq 0x2070
leaq (%rbx,%rax), %r15
movq %r15, (%r14)
cmpb $0x2f, (%rax,%rbx)
je 0xf837
movq (%r14), %rbx
movzbl (%rbx), %eax
cmpl $0x27, %eax
jg 0xf89e
cmpl $0x22, %eax
je 0xfe83
cmpl $0x24, %eax
jne 0xfe72
movq -0x40(%rbp), %rdi
movq %r14, %rsi
movl -0x5c(%rbp), %edx
callq 0x1039e
movb $0x1, %r15b
jmp 0x1011f
cmpl $0x28, %eax
je 0xfee2
cmpl $0x5b, %eax
jne 0xfe72
incq %rbx
movq %rbx, (%r14)
movl $0x1, %r13d
movq %rbx, -0x68(%rbp)
movq %rbx, -0x50(%rbp)
xorl %r12d, %r12d
movq (%r14), %rbx
movq %rbx, %rdi
leaq 0x7208(%rip), %rsi      # 0x16adc
callq 0x2030
leaq (%rbx,%rax), %r15
incq %r15
movq %r15, (%r14)
movzbl -0x1(%r15), %ecx
cmpl $0x3f, %ecx
jg 0xf928
testl %ecx, %ecx
je 0xf9cb
cmpl $0x22, %ecx
je 0xf9f2
cmpl $0x2f, %ecx
jne 0xfe00
cmpb $0x2f, (%r15)
jne 0xfe00
movq %r15, %rdi
leaq 0x71be(%rip), %rsi      # 0x16ad9
callq 0x2030
addq %r15, %rax
jmp 0xfa09
cmpl $0x5d, %ecx
je 0xf9ea
cmpl $0x5b, %ecx
je 0xfa11
cmpl $0x40, %ecx
jne 0xfe00
movq (%r14), %rcx
cmpb $0x40, (%rcx)
jne 0xf95d
incq %rcx
movq %rcx, (%r14)
cmpb $0x40, (%rcx)
leaq 0x1(%rcx), %rcx
je 0xf94e
decq %rcx
addq %rax, %rbx
subl %ebx, %ecx
movl $0x3, %eax
cmpl %ecx, %r13d
jg 0xfe02
jge 0xf984
movq -0x68(%rbp), %rdi
leaq 0x7728(%rip), %rsi      # 0x170a5
xorl %eax, %eax
callq 0x1021b
testl %r12d, %r12d
jne 0xf99d
movl $0x3, -0x30(%rbp)
movq -0x40(%rbp), %rdi
leaq -0x30(%rbp), %rsi
callq 0x12c34
cmpl $0x18, %r12d
jl 0xfa19
shll $0x8, %r12d
orl $0xd5, %r12d
movl %r12d, -0x30(%rbp)
movq -0x40(%rbp), %r15
movq %r15, %rdi
leaq -0x30(%rbp), %rsi
callq 0x12c34
movl $0x1, -0x34(%rbp)
jmp 0xfa21
movq -0x68(%rbp), %rdi
leaq 0x76c3(%rip), %rsi      # 0x17099
xorl %eax, %eax
callq 0x1021b
decq (%r14)
movl $0x5, %eax
jmp 0xfe02
decl %r13d
jmp 0xfe00
movq %r15, %rdi
callq 0x4f5c
movq %rax, (%r14)
cmpb $0x22, (%rax)
jne 0xfe00
incq %rax
movq %rax, (%r14)
jmp 0xfe00
incl %r13d
jmp 0xfe00
movl %r12d, -0x34(%rbp)
movq -0x40(%rbp), %r15
movq %r15, %rdi
movq -0x50(%rbp), %rsi
movq %rbx, %rdx
movl $0x1, %ecx
callq 0x10ce2
movq (%r14), %rbx
movzbl (%rbx), %eax
cmpl $0x22, %eax
je 0xfbe6
cmpl $0x28, %eax
je 0xfb28
cmpl $0x5b, %eax
jne 0xfc3e
movq $0x0, -0x30(%rbp)
movl $0x0, -0x60(%rbp)
movq -0x40(%rbp), %rdi
movq %r14, %rsi
movl $0x3, %edx
leaq -0x30(%rbp), %rcx
leaq -0x60(%rbp), %r8
callq 0xf7e6
testb %al, %al
je 0xfd13
movl %eax, %ebx
movq -0x30(%rbp), %rcx
testq %rcx, %rcx
je 0xfafe
movslq -0x60(%rbp), %r12
movl %r12d, %eax
shll $0x8, %eax
orl $0x7, %eax
movl %eax, -0x44(%rbp)
movq %rcx, -0x58(%rbp)
movq -0x40(%rbp), %r15
movq %r15, %rdi
leaq -0x44(%rbp), %rsi
callq 0x12c34
movl %r12d, %edx
sarl $0x2, %edx
movq %r15, %rdi
movq -0x58(%rbp), %r15
movq %r15, %rsi
callq 0x12cf0
movl %r12d, %edx
andl $0x3, %edx
movl $0x0, -0x44(%rbp)
addq %r15, %r12
subq %rdx, %r12
leaq -0x44(%rbp), %rdi
movq %r12, %rsi
callq 0x2130
movq -0x40(%rbp), %rdi
leaq -0x44(%rbp), %rsi
callq 0x12c34
movq %r15, %rdi
callq 0x152d7
movl $0x1, %r12d
testb %bl, %bl
movl -0x34(%rbp), %ebx
je 0xfdeb
movl $0xe1, -0x30(%rbp)
movq -0x40(%rbp), %rdi
leaq -0x30(%rbp), %rsi
callq 0x12c34
jmp 0xfde5
movq $0x0, -0x30(%rbp)
movl $0x0, -0x60(%rbp)
movq -0x40(%rbp), %rdi
movq %r14, %rsi
movl $0x3, %edx
leaq -0x30(%rbp), %rcx
leaq -0x60(%rbp), %r8
callq 0xf7e6
testb %al, %al
je 0xfd13
movl %eax, %ebx
movq -0x30(%rbp), %rcx
testq %rcx, %rcx
je 0xfbd0
movslq -0x60(%rbp), %r12
movl %r12d, %eax
shll $0x8, %eax
orl $0x7, %eax
movl %eax, -0x44(%rbp)
movq %rcx, -0x58(%rbp)
movq -0x40(%rbp), %r15
movq %r15, %rdi
leaq -0x44(%rbp), %rsi
callq 0x12c34
movl %r12d, %edx
sarl $0x2, %edx
movq %r15, %rdi
movq -0x58(%rbp), %r15
movq %r15, %rsi
callq 0x12cf0
movl %r12d, %edx
andl $0x3, %edx
movl $0x0, -0x44(%rbp)
addq %r15, %r12
subq %rdx, %r12
leaq -0x44(%rbp), %rdi
movq %r12, %rsi
callq 0x2130
movq -0x40(%rbp), %rdi
leaq -0x44(%rbp), %rsi
callq 0x12c34
movq %r15, %rdi
callq 0x152d7
movl $0x1, %r12d
testb %bl, %bl
movl -0x34(%rbp), %ebx
jne 0xfde5
jmp 0xfdeb
incq %rbx
movq %rbx, (%r14)
movq %rbx, %rdi
callq 0x4f5c
movq %rax, %r15
movq %rax, %rdi
subq %rbx, %rdi
incq %rdi
callq 0x152b1
movq %rax, -0x58(%rbp)
movq %rax, %rdi
movq %rbx, %rsi
movq %r15, %rdx
callq 0x4f95
movl %eax, %r12d
cltq
movq -0x58(%rbp), %rdx
movq %rdx, %rcx
movb $0x0, (%rdx,%rax)
movq %r15, (%r14)
cmpb $0x22, (%r15)
jne 0xfc36
incq %r15
movq %r15, (%r14)
movq %rcx, %r15
jmp 0xfcd9
movq (%r14), %r12
movzbl (%r12), %eax
cmpq $0x5f, %rax
je 0xfc5a
leaq 0x74bd(%rip), %rcx      # 0x17110
movb (%rcx,%rax), %al
andb $0xc, %al
je 0xfc7f
incq %r12
movq %r12, (%r14)
movzbl (%r12), %eax
incq %r12
cmpq $0x5f, %rax
je 0xfc5d
leaq 0x749b(%rip), %rcx      # 0x17110
movb (%rcx,%rax), %al
andb $0xc, %al
jne 0xfc5d
decq %r12
subq %rbx, %r12
testl %r12d, %r12d
je 0xfcd1
movslq %r12d, %rdi
incq %rdi
movq %rdi, -0x70(%rbp)
callq 0x152b1
movq %rax, -0x58(%rbp)
movq %rbx, %rdi
callq 0x2080
movq %rax, %r15
incq %r15
movq -0x70(%rbp), %rax
cmpq %rax, %r15
cmovaeq %rax, %r15
movq -0x58(%rbp), %rdi
movq %rbx, %rsi
movq %r15, %rdx
callq 0x2130
movq -0x58(%rbp), %rax
movb $0x0, -0x1(%rax,%r15)
movq %rax, %r15
jmp 0xfcd4
xorl %r15d, %r15d
testl %r12d, %r12d
je 0xfd13
movq %r15, %rdi
movl $0x20, %esi
callq 0x3e2e
testq %rax, %rax
je 0xfd21
movl (%rax), %ecx
cmpq $0x4, %rcx
ja 0xfd21
leaq 0x6bf2(%rip), %rdx      # 0x168ec
movslq (%rdx,%rcx,4), %rcx
addq %rdx, %rcx
jmpq *%rcx
movl 0x3c(%rax), %eax
shll $0x8, %eax
orl $0xda, %eax
jmp 0xfdc5
movl $0x1, %r12d
movl -0x34(%rbp), %ebx
jmp 0xfdeb
movl %r12d, %eax
shll $0x8, %eax
orl $0x7, %eax
movl %eax, -0x30(%rbp)
movq %r15, -0x58(%rbp)
movq -0x40(%rbp), %r15
movq %r15, %rdi
leaq -0x30(%rbp), %rsi
callq 0x12c34
movslq %r12d, %rbx
movl %ebx, %edx
sarl $0x2, %edx
movq %r15, %rdi
movq -0x58(%rbp), %rsi
callq 0x12cf0
movl %ebx, %edx
andl $0x3, %edx
movl $0x0, -0x30(%rbp)
addq -0x58(%rbp), %rbx
subq %rdx, %rbx
leaq -0x30(%rbp), %r12
movq %r12, %rdi
movq %rbx, %rsi
callq 0x2130
movq %r15, %rdi
movq %r12, %rsi
callq 0x12c34
movl $0xe1, -0x30(%rbp)
movq %r15, %rdi
movq -0x58(%rbp), %r15
movq %r12, %rsi
jmp 0xfdd0
movl 0x3c(%rax), %eax
shll $0x8, %eax
orl $0xd8, %eax
jmp 0xfdc5
movl 0x3c(%rax), %eax
shll $0x8, %eax
orl $0xde, %eax
jmp 0xfdc5
movl 0x3c(%rax), %eax
xorl %ecx, %ecx
cmpl $0x19, %eax
setl %cl
shll $0x8, %eax
leal (%rax,%rcx,2), %eax
addl $0xe0, %eax
movl %eax, -0x30(%rbp)
movq -0x40(%rbp), %rdi
leaq -0x30(%rbp), %rsi
callq 0x12c34
movl -0x34(%rbp), %ebx
testq %r15, %r15
je 0xfde5
movq %r15, %rdi
callq 0x152d7
movl $0x2, %r12d
addl %ebx, %r12d
je 0xfdf9
movq (%r14), %rax
movq %rax, -0x50(%rbp)
jmp 0xfe00
movq -0x40(%rbp), %rax
decl 0xc(%rax)
xorl %eax, %eax
cmpl $0x3, %eax
je 0xfe0b
testl %eax, %eax
jne 0xfe19
testl %r13d, %r13d
jne 0xf8c7
movl $0x2, %eax
movb $0x1, %r15b
cmpl $0x5, %eax
je 0xfe2a
cmpl $0x2, %eax
jne 0x1011f
movq (%r14), %rdx
decq %rdx
movq %rdx, %rsi
subq -0x50(%rbp), %rsi
jbe 0xff5b
testl %r12d, %r12d
movq -0x40(%rbp), %r13
movl -0x5c(%rbp), %ebx
je 0x10006
xorl %ecx, %ecx
testl %r12d, %r12d
setg %cl
movq %r13, %rdi
movq -0x50(%rbp), %rsi
callq 0x10ce2
xorl %eax, %eax
cmpl $0x2, %r12d
setge %al
addl %eax, %r12d
jmp 0xff62
movq %r14, %rdi
movq -0x50(%rbp), %rsi
callq 0x1088e
movq %rax, %r12
jmp 0xfecf
incq %rbx
movq %rbx, (%r14)
movq %rbx, %rdi
callq 0x4f5c
movq %rax, %r15
movq %rax, %rdi
subq %rbx, %rdi
incq %rdi
callq 0x152b1
movq %rax, %r12
movq %rax, %rdi
movq %rbx, %rsi
movq %r15, %rdx
callq 0x4f95
movq -0x50(%rbp), %rcx
movl %eax, (%rcx)
cltq
movb $0x0, (%r12,%rax)
movq %r15, (%r14)
cmpb $0x22, (%r15)
jne 0xfecf
incq %r15
movq %r15, (%r14)
movq -0x68(%rbp), %rax
movq %r12, (%rax)
testq %r12, %r12
setne %r15b
jmp 0x1011f
incq %rbx
movq %rbx, (%r14)
leaq -0x30(%rbp), %rbx
movl $0x3, (%rbx)
movq -0x40(%rbp), %r12
movq %r12, %rdi
movq %rbx, %rsi
callq 0x12c34
movq %r12, %rdi
movq %r14, %rsi
movl $0x29, %edx
callq 0xdc02
movl -0x5c(%rbp), %edx
movl %edx, %eax
shll $0x6, %eax
orl $0x4, %eax
cmpl $0x4, %edx
movl $0x4, %ecx
cmovll %eax, %ecx
movl %ecx, (%rbx)
movl %edx, %ebx
leaq -0x30(%rbp), %rsi
movq %r12, %rdi
callq 0x12c34
movb $0x1, %r15b
cmpl $0x7, %ebx
je 0xfff4
cmpl $0x5, %ebx
jne 0x1011f
leaq -0x30(%rbp), %rsi
movl $0xa, (%rsi)
jmp 0xfffe
movq -0x40(%rbp), %r13
movl -0x5c(%rbp), %ebx
testl %r12d, %r12d
je 0xffb1
movl %ebx, %eax
shll $0x6, %eax
cmpl $0x4, %ebx
movl $0xc0, %r13d
cmovll %eax, %r13d
movl %r12d, %eax
shll $0x8, %eax
orl %r13d, %eax
orl $0x16, %eax
leaq -0x30(%rbp), %rbx
movl %eax, (%rbx)
movq -0x40(%rbp), %rdi
movq %rbx, %rsi
callq 0x12c34
orl $0x4, %r13d
movl %r13d, (%rbx)
movl -0x5c(%rbp), %ebx
movq -0x40(%rbp), %r13
leaq -0x30(%rbp), %rsi
movq %r13, %rdi
callq 0x12c34
cmpl $0x7, %ebx
ja 0x1008b
movl %ebx, %eax
leaq 0x693d(%rip), %rcx      # 0x16900
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
testl %r12d, %r12d
jne 0x1011f
movq (%r14), %rax
decq %rax
cmpq -0x50(%rbp), %rax
ja 0x1011f
leaq -0x30(%rbp), %rsi
movl $0xc6, (%rsi)
jmp 0x10117
leaq -0x30(%rbp), %rsi
movl $0xe, (%rsi)
movq %r12, %rdi
jmp 0x1011a
cmpl $0x7, %ebx
je 0x10131
cmpl $0x5, %ebx
jne 0xfe4d
movq -0x50(%rbp), %rax
movq %rax, (%r14)
movslq 0xc(%r13), %r12
leaq -0x30(%rbp), %rbx
movl $0x9, (%rbx)
movq %r13, %rdi
movq %rbx, %rsi
callq 0x12c34
movl %r12d, %eax
shll $0x8, %eax
addl $0x201, %eax            # imm = 0x201
movl %eax, (%rbx)
movq %r13, %rdi
movq %rbx, %rsi
callq 0x12c34
movq %r13, %rdi
movq %r14, %rsi
movl $0x5d, %edx
callq 0xdc02
movl $0x4, (%rbx)
leaq -0x30(%rbp), %rsi
movq %r13, %rdi
callq 0x12c34
movl %r12d, %eax
notl %eax
addl 0xc(%r13), %eax
shll $0x8, %eax
movq (%r13), %rcx
orl %eax, (%rcx,%r12,4)
jmp 0x1011f
testl %r12d, %r12d
jne 0x1011f
movq (%r14), %rax
decq %rax
cmpq -0x50(%rbp), %rax
jbe 0x10157
shll $0x6, %ebx
orl $0xb, %ebx
leaq -0x30(%rbp), %rsi
movl %ebx, (%rsi)
jmp 0x10117
testl %r12d, %r12d
jne 0x10101
movq (%r14), %rax
decq %rax
cmpq -0x50(%rbp), %rax
ja 0x10101
movq %r13, %rdi
callq 0x10167
jmp 0x1011f
testl %r12d, %r12d
jne 0x1010d
movq (%r14), %rax
decq %rax
cmpq -0x50(%rbp), %rax
ja 0x1010d
movq 0xe5ab(%rip), %rax      # 0x1e690
movl 0x3c(%rax), %eax
xorl %ecx, %ecx
cmpl $0x19, %eax
setl %cl
shll $0x8, %eax
leal (%rax,%rcx,2), %eax
addl $0xd, %eax
leaq -0x30(%rbp), %rsi
movl %eax, (%rsi)
jmp 0x10117
leaq -0x30(%rbp), %rsi
movl $0xa, (%rsi)
jmp 0x10117
leaq -0x30(%rbp), %rsi
movl $0xe, (%rsi)
movq %r13, %rdi
callq 0x12c34
movl %r15d, %eax
addq $0x48, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq -0x50(%rbp), %rdi
callq 0x127e3
movq %rax, %rbx
movq %r13, %rdi
movq %rax, %rsi
callq 0x101ce
testq %rbx, %rbx
je 0x1011f
movq %rbx, %rdi
callq 0x152d7
jmp 0x1011f
movq %r13, %rdi
movl %ebx, %esi
xorl %edx, %edx
xorl %ecx, %ecx
callq 0x109d3
jmp 0x1011f