// File: cjxgm[P]libgpp/src/libgpp.cpp
// Function: (anonymous namespace)::Preprocessor::process_mode_command(int, int, int, int)
void process_mode_command(int p1start, int p1end, int p2start, int p2end) {
            Specs *P;
            char *s, *p;
            char const* opt;
            int nargs, check_is_delim;
            char const* args[10]; // can't have more than 10 arguments

            whiteout(&p1start, &p1end);
            if ((p1start == p1end) || (identifier_end(p1start) != p1end))
                bug("invalid #mode syntax");
            if (p2start < 0)
                s = my_strdup("");
            else
                s = process_text(C->buf + p2start, p2end - p2start, FLAG_META);

            // argument parsing
            p = s;
            opt = nullptr;
            while (is_white(*p))
                p++;
            if ((*p != '"') && (*p != 0)) {
                opt = p;
                while ((*p != 0) && !is_white(*p))
                    p++;
                if (*p != 0) {
                    *(p++) = 0;
                    while (is_white(*p))
                        p++;
                }
            }
            nargs = 0;
            check_is_delim = !id_equal(C->buf + p1start, p1end - p1start, "charset");
            while (*p != 0) {
                if (nargs == 10)
                    bug("too many arguments in #mode command");
                if (*(p++) != '"')
                    bug("syntax error in #mode command (missing \" or trailing data)");
                args[nargs++] = p;
                p = str_nl(p, check_is_delim);
                while (is_white(*p))
                    p++;
            }

            if (id_equal(C->buf + p1start, p1end - p1start, "quote")) {
                if (opt || (nargs > 1))
                    bug("syntax error in #mode quote command");
                if (nargs == 0)
                    args[0] = "";
                S->stack_next->user.quotechar = args[0][0];
            } else if (id_equal(C->buf + p1start, p1end - p1start, "comment")) {
                if ((nargs < 2) || (nargs > 4))
                    bug("syntax error in #mode comment command");
                if (!opt)
                    opt = "ccc";
                if (nargs < 3)
                    args[2] = "";
                if (nargs < 4)
                    args[3] = "";
                add_comment(S->stack_next, opt, my_strdup(args[0]), my_strdup(args[1]),
                        args[2][0], args[3][0]);
            } else if (id_equal(C->buf + p1start, p1end - p1start, "string")) {
                if ((nargs < 2) || (nargs > 4))
                    bug("syntax error in #mode string command");
                if (!opt)
                    opt = "sss";
                if (nargs < 3)
                    args[2] = "";
                if (nargs < 4)
                    args[3] = "";
                add_comment(S->stack_next, opt, my_strdup(args[0]), my_strdup(args[1]),
                        args[2][0], args[3][0]);
            } else if (id_equal(C->buf + p1start, p1end - p1start, "save")
                    || id_equal(C->buf + p1start, p1end - p1start, "push")) {
                if ((opt != nullptr )||nargs)
                    bug("too many arguments to #mode save");
                P = clone_specs(S->stack_next);
                P->stack_next = S->stack_next;
                S->stack_next = P;
            } else if (id_equal(C->buf + p1start, p1end - p1start, "restore")
                    || id_equal(C->buf + p1start, p1end - p1start, "pop")) {
                if ((opt != nullptr )||nargs)
                    bug("too many arguments to #mode restore");
                P = S->stack_next->stack_next;
                if (P == nullptr )
                    bug("#mode restore without #mode save");
                free_comments(S->stack_next);
                free(S->stack_next);
                S->stack_next = P;
            } else if (id_equal(C->buf + p1start, p1end - p1start, "standard")) {
                bug("#mode standard not allowed");
            } else if (id_equal(C->buf + p1start, p1end - p1start, "user")) {
                if ((opt != nullptr )||(nargs!=9))bug("#mode user requires 9 arguments");
                S->stack_next->user.macro_start=my_strdup(args[0]);
                S->stack_next->user.macro_end=my_strdup(args[1]);
                S->stack_next->user.macro_arg_start=my_strdup(args[2]);
                S->stack_next->user.macro_arg_sep=my_strdup(args[3]);
                S->stack_next->user.macro_arg_end=my_strdup(args[4]);
                S->stack_next->user.stackchar=my_strdup(args[5]);
                S->stack_next->user.unstackchar=my_strdup(args[6]);
                S->stack_next->user.macro_arg_ref=my_strdup(args[7]);
                S->stack_next->user.quotechar=args[8][0];
            }
            else if (id_equal(C->buf+p1start,p1end-p1start,"meta")) {
                if ((opt!=nullptr)&&!nargs&&!strcmp(opt,"user"))
                S->stack_next->meta=S->stack_next->user;
                else {
                    if ((opt!=nullptr)||(nargs!=7)) bug("#mode meta requires 7 arguments");
                    S->stack_next->meta.macro_start=my_strdup(args[0]);
                    S->stack_next->meta.macro_end=my_strdup(args[1]);
                    S->stack_next->meta.macro_arg_start=my_strdup(args[2]);
                    S->stack_next->meta.macro_arg_sep=my_strdup(args[3]);
                    S->stack_next->meta.macro_arg_end=my_strdup(args[4]);
                    S->stack_next->meta.stackchar=my_strdup(args[5]);
                    S->stack_next->meta.unstackchar=my_strdup(args[6]);
                }
            }
            else if (id_equal(C->buf+p1start,p1end-p1start,"preservelf")) {
                bug("#mode preservelf not allowed");
            }
            else if (id_equal(C->buf+p1start,p1end-p1start,"nocomment")
                    ||id_equal(C->buf+p1start,p1end-p1start,"nostring")) {
                if ((opt!=nullptr)||(nargs>1))
                bug("syntax error in #mode nocomment/nostring");
                if (nargs==0) free_comments(S->stack_next);
                else delete_comment(S->stack_next,my_strdup(args[0]));
            }
            else if (id_equal(C->buf+p1start,p1end-p1start,"charset")) {
                if ((opt==nullptr)||(nargs!=1)) bug("syntax error in #mode charset");
                if (!my_strcasecmp(opt,"op"))
                S->stack_next->op_set=make_charset_subset((unsigned char *)args[0]);
                else if (!my_strcasecmp(opt,"par"))
                S->stack_next->ext_op_set=make_charset_subset((unsigned char *)args[0]);
                else if (!my_strcasecmp(opt,"id"))
                S->stack_next->id_set=make_charset_subset((unsigned char *)args[0]);
                else bug("unknown charset subset name in #mode charset");
            }
            else bug("unrecognized #mode command");

            free(s);
        }

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xe0, %rsp
movq %rdi, -0x8(%rbp)
movl %esi, -0xc(%rbp)
movl %edx, -0x10(%rbp)
movl %ecx, -0x14(%rbp)
movl %r8d, -0x18(%rbp)
movq -0x8(%rbp), %rdi
movq %rdi, -0x98(%rbp)
leaq -0xc(%rbp), %rsi
leaq -0x10(%rbp), %rdx
callq 0x7710
movl -0xc(%rbp), %eax
cmpl -0x10(%rbp), %eax
je 0x8190
movq -0x98(%rbp), %rdi
movl -0xc(%rbp), %esi
callq 0x6db0
cmpl -0x10(%rbp), %eax
je 0x819c
leaq 0x3bbc(%rip), %rdi      # 0xbd53
callq 0x35e0
cmpl $0x0, -0x14(%rbp)
jge 0x81b4
leaq 0x3480(%rip), %rdi      # 0xb629
callq 0x34e0
movq %rax, -0x28(%rbp)
jmp 0x81da
movq -0x98(%rbp), %rdi
movq 0x20(%rdi), %rax
movq (%rax), %rsi
movslq -0x14(%rbp), %rax
addq %rax, %rsi
movl -0x18(%rbp), %edx
subl -0x14(%rbp), %edx
xorl %ecx, %ecx
callq 0x40f0
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rax
movq %rax, -0x30(%rbp)
movq $0x0, -0x38(%rbp)
movq -0x30(%rbp), %rax
movsbl (%rax), %edi
callq 0x9370
cmpl $0x0, %eax
je 0x8209
movq -0x30(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x30(%rbp)
jmp 0x81ea
movq -0x30(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x22, %eax
je 0x82ba
movq -0x30(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x0, %eax
je 0x82ba
movq -0x30(%rbp), %rax
movq %rax, -0x38(%rbp)
movq -0x30(%rbp), %rax
movsbl (%rax), %ecx
xorl %eax, %eax
cmpl $0x0, %ecx
movb %al, -0x99(%rbp)
je 0x825f
movq -0x30(%rbp), %rax
movsbl (%rax), %edi
callq 0x9370
cmpl $0x0, %eax
setne %al
xorb $-0x1, %al
movb %al, -0x99(%rbp)
movb -0x99(%rbp), %al
testb $0x1, %al
jne 0x826b
jmp 0x8279
movq -0x30(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x30(%rbp)
jmp 0x8231
movq -0x30(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x0, %eax
je 0x82b8
movq -0x30(%rbp), %rax
movq %rax, %rcx
addq $0x1, %rcx
movq %rcx, -0x30(%rbp)
movb $0x0, (%rax)
movq -0x30(%rbp), %rax
movsbl (%rax), %edi
callq 0x9370
cmpl $0x0, %eax
je 0x82b6
movq -0x30(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x30(%rbp)
jmp 0x8297
jmp 0x82b8
jmp 0x82ba
movq -0x98(%rbp), %rax
movl $0x0, -0x3c(%rbp)
movq 0x20(%rax), %rax
movq (%rax), %rdi
movslq -0xc(%rbp), %rax
addq %rax, %rdi
movl -0x10(%rbp), %esi
subl -0xc(%rbp), %esi
leaq 0x3cdb(%rip), %rdx      # 0xbfbe
callq 0x7030
cmpl $0x0, %eax
setne %al
xorb $-0x1, %al
andb $0x1, %al
movzbl %al, %eax
movl %eax, -0x40(%rbp)
movq -0x30(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x0, %eax
je 0x838a
cmpl $0xa, -0x3c(%rbp)
jne 0x831a
leaq 0x3a53(%rip), %rdi      # 0xbd68
callq 0x35e0
movq -0x30(%rbp), %rax
movq %rax, %rcx
addq $0x1, %rcx
movq %rcx, -0x30(%rbp)
movsbl (%rax), %eax
cmpl $0x22, %eax
je 0x833d
leaq 0x3a54(%rip), %rdi      # 0xbd8c
callq 0x35e0
movq -0x30(%rbp), %rcx
movl -0x3c(%rbp), %eax
movl %eax, %edx
addl $0x1, %edx
movl %edx, -0x3c(%rbp)
cltq
movq %rcx, -0x90(%rbp,%rax,8)
movq -0x30(%rbp), %rdi
movl -0x40(%rbp), %esi
callq 0xa5c0
movq %rax, -0x30(%rbp)
movq -0x30(%rbp), %rax
movsbl (%rax), %edi
callq 0x9370
cmpl $0x0, %eax
je 0x8385
movq -0x30(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x30(%rbp)
jmp 0x8366
jmp 0x82f8
movq -0x98(%rbp), %rax
movq 0x20(%rax), %rax
movq (%rax), %rdi
movslq -0xc(%rbp), %rax
addq %rax, %rdi
movl -0x10(%rbp), %esi
subl -0xc(%rbp), %esi
leaq 0x3a1b(%rip), %rdx      # 0xbdc7
callq 0x7030
cmpl $0x0, %eax
je 0x8405
cmpq $0x0, -0x38(%rbp)
jne 0x83c3
cmpl $0x1, -0x3c(%rbp)
jle 0x83cf
leaq 0x3a03(%rip), %rdi      # 0xbdcd
callq 0x35e0
cmpl $0x0, -0x3c(%rbp)
jne 0x83e3
leaq 0x324d(%rip), %rax      # 0xb629
movq %rax, -0x90(%rbp)
movq -0x98(%rbp), %rax
movq -0x90(%rbp), %rcx
movb (%rcx), %cl
movq (%rax), %rax
movq 0x98(%rax), %rax
movb %cl, 0x30(%rax)
jmp 0x8d00
movq -0x98(%rbp), %rax
movq 0x20(%rax), %rax
movq (%rax), %rdi
movslq -0xc(%rbp), %rax
addq %rax, %rdi
movl -0x10(%rbp), %esi
subl -0xc(%rbp), %esi
leaq 0x3b1c(%rip), %rdx      # 0xbf43
callq 0x7030
cmpl $0x0, %eax
je 0x84f8
cmpl $0x2, -0x3c(%rbp)
jl 0x8441
cmpl $0x4, -0x3c(%rbp)
jle 0x844d
leaq 0x39a9(%rip), %rdi      # 0xbdf1
callq 0x35e0
cmpq $0x0, -0x38(%rbp)
jne 0x845f
leaq 0x31b1(%rip), %rax      # 0xb60c
movq %rax, -0x38(%rbp)
cmpl $0x3, -0x3c(%rbp)
jge 0x8470
leaq 0x31bd(%rip), %rax      # 0xb629
movq %rax, -0x80(%rbp)
cmpl $0x4, -0x3c(%rbp)
jge 0x8481
leaq 0x31ac(%rip), %rax      # 0xb629
movq %rax, -0x78(%rbp)
movq -0x98(%rbp), %rax
movq (%rax), %rax
movq 0x98(%rax), %rax
movq %rax, -0xb8(%rbp)
movq -0x38(%rbp), %rax
movq %rax, -0xb0(%rbp)
movq -0x90(%rbp), %rdi
callq 0x34e0
movq %rax, -0xa8(%rbp)
movq -0x88(%rbp), %rdi
callq 0x34e0
movq -0xb8(%rbp), %rdi
movq -0xb0(%rbp), %rsi
movq -0xa8(%rbp), %rdx
movq %rax, %rcx
movq -0x80(%rbp), %rax
movb (%rax), %r8b
movq -0x78(%rbp), %rax
movsbl %r8b, %r8d
movsbl (%rax), %r9d
callq 0x3320
jmp 0x8cfe
movq -0x98(%rbp), %rax
movq 0x20(%rax), %rax
movq (%rax), %rdi
movslq -0xc(%rbp), %rax
addq %rax, %rdi
movl -0x10(%rbp), %esi
subl -0xc(%rbp), %esi
leaq 0x3230(%rip), %rdx      # 0xb74a
callq 0x7030
cmpl $0x0, %eax
je 0x85eb
cmpl $0x2, -0x3c(%rbp)
jl 0x8534
cmpl $0x4, -0x3c(%rbp)
jle 0x8540
leaq 0x38dc(%rip), %rdi      # 0xbe17
callq 0x35e0
cmpq $0x0, -0x38(%rbp)
jne 0x8552
leaq 0x30ce(%rip), %rax      # 0xb61c
movq %rax, -0x38(%rbp)
cmpl $0x3, -0x3c(%rbp)
jge 0x8563
leaq 0x30ca(%rip), %rax      # 0xb629
movq %rax, -0x80(%rbp)
cmpl $0x4, -0x3c(%rbp)
jge 0x8574
leaq 0x30b9(%rip), %rax      # 0xb629
movq %rax, -0x78(%rbp)
movq -0x98(%rbp), %rax
movq (%rax), %rax
movq 0x98(%rax), %rax
movq %rax, -0xd0(%rbp)
movq -0x38(%rbp), %rax
movq %rax, -0xc8(%rbp)
movq -0x90(%rbp), %rdi
callq 0x34e0
movq %rax, -0xc0(%rbp)
movq -0x88(%rbp), %rdi
callq 0x34e0
movq -0xd0(%rbp), %rdi
movq -0xc8(%rbp), %rsi
movq -0xc0(%rbp), %rdx
movq %rax, %rcx
movq -0x80(%rbp), %rax
movb (%rax), %r8b
movq -0x78(%rbp), %rax
movsbl %r8b, %r8d
movsbl (%rax), %r9d
callq 0x3320
jmp 0x8cfc
movq -0x98(%rbp), %rax
movq 0x20(%rax), %rax
movq (%rax), %rdi
movslq -0xc(%rbp), %rax
addq %rax, %rdi
movl -0x10(%rbp), %esi
subl -0xc(%rbp), %esi
leaq 0x3850(%rip), %rdx      # 0xbe5d
callq 0x7030
cmpl $0x0, %eax
jne 0x8643
movq -0x98(%rbp), %rax
movq 0x20(%rax), %rax
movq (%rax), %rdi
movslq -0xc(%rbp), %rax
addq %rax, %rdi
movl -0x10(%rbp), %esi
subl -0xc(%rbp), %esi
leaq 0x3803(%rip), %rdx      # 0xbe3c
callq 0x7030
cmpl $0x0, %eax
je 0x86a8
cmpq $0x0, -0x38(%rbp)
jne 0x8650
cmpl $0x0, -0x3c(%rbp)
je 0x865c
leaq 0x37ea(%rip), %rdi      # 0xbe41
callq 0x35e0
movq -0x98(%rbp), %rax
movq (%rax), %rax
movq 0x98(%rax), %rdi
callq 0x8d80
movq %rax, %rcx
movq -0x98(%rbp), %rax
movq %rcx, -0x20(%rbp)
movq (%rax), %rcx
movq 0x98(%rcx), %rdx
movq -0x20(%rbp), %rcx
movq %rdx, 0x98(%rcx)
movq -0x20(%rbp), %rcx
movq (%rax), %rax
movq %rcx, 0x98(%rax)
jmp 0x8cfa
movq -0x98(%rbp), %rax
movq 0x20(%rax), %rax
movq (%rax), %rdi
movslq -0xc(%rbp), %rax
addq %rax, %rdi
movl -0x10(%rbp), %esi
subl -0xc(%rbp), %esi
leaq 0x37b8(%rip), %rdx      # 0xbe82
callq 0x7030
cmpl $0x0, %eax
jne 0x8704
movq -0x98(%rbp), %rax
movq 0x20(%rax), %rax
movq (%rax), %rdi
movslq -0xc(%rbp), %rax
addq %rax, %rdi
movl -0x10(%rbp), %esi
subl -0xc(%rbp), %esi
leaq 0x376c(%rip), %rdx      # 0xbe62
callq 0x7030
cmpl $0x0, %eax
je 0x8792
cmpq $0x0, -0x38(%rbp)
jne 0x8711
cmpl $0x0, -0x3c(%rbp)
je 0x871d
leaq 0x374e(%rip), %rdi      # 0xbe66
callq 0x35e0
movq -0x98(%rbp), %rax
movq (%rax), %rax
movq 0x98(%rax), %rax
movq 0x98(%rax), %rax
movq %rax, -0x20(%rbp)
cmpq $0x0, -0x20(%rbp)
jne 0x874c
leaq 0x3743(%rip), %rdi      # 0xbe8a
callq 0x35e0
movq -0x98(%rbp), %rax
movq (%rax), %rax
movq 0x98(%rax), %rdi
callq 0x93c0
movq -0x98(%rbp), %rax
movq (%rax), %rax
movq 0x98(%rax), %rdi
callq 0x2170
movq -0x98(%rbp), %rax
movq -0x20(%rbp), %rcx
movq (%rax), %rax
movq %rcx, 0x98(%rax)
jmp 0x8cf8
movq -0x98(%rbp), %rax
movq 0x20(%rax), %rax
movq (%rax), %rdi
movslq -0xc(%rbp), %rax
addq %rax, %rdi
movl -0x10(%rbp), %esi
subl -0xc(%rbp), %esi
leaq 0x36f7(%rip), %rdx      # 0xbeab
callq 0x7030
cmpl $0x0, %eax
je 0x87ca
leaq 0x36ef(%rip), %rdi      # 0xbeb4
callq 0x35e0
movq -0x98(%rbp), %rax
movq 0x20(%rax), %rax
movq (%rax), %rdi
movslq -0xc(%rbp), %rax
addq %rax, %rdi
movl -0x10(%rbp), %esi
subl -0xc(%rbp), %esi
leaq 0x36e3(%rip), %rdx      # 0xbecf
callq 0x7030
cmpl $0x0, %eax
je 0x8938
cmpq $0x0, -0x38(%rbp)
jne 0x8807
cmpl $0x9, -0x3c(%rbp)
je 0x8813
leaq 0x36c6(%rip), %rdi      # 0xbed4
callq 0x35e0
movq -0x90(%rbp), %rdi
callq 0x34e0
movq %rax, %rcx
movq -0x98(%rbp), %rax
movq (%rax), %rax
movq 0x98(%rax), %rax
movq %rcx, (%rax)
movq -0x88(%rbp), %rdi
callq 0x34e0
movq %rax, %rcx
movq -0x98(%rbp), %rax
movq (%rax), %rax
movq 0x98(%rax), %rax
movq %rcx, 0x8(%rax)
movq -0x80(%rbp), %rdi
callq 0x34e0
movq %rax, %rcx
movq -0x98(%rbp), %rax
movq (%rax), %rax
movq 0x98(%rax), %rax
movq %rcx, 0x10(%rax)
movq -0x78(%rbp), %rdi
callq 0x34e0
movq %rax, %rcx
movq -0x98(%rbp), %rax
movq (%rax), %rax
movq 0x98(%rax), %rax
movq %rcx, 0x18(%rax)
movq -0x70(%rbp), %rdi
callq 0x34e0
movq %rax, %rcx
movq -0x98(%rbp), %rax
movq (%rax), %rax
movq 0x98(%rax), %rax
movq %rcx, 0x20(%rax)
movq -0x68(%rbp), %rdi
callq 0x34e0
movq %rax, %rcx
movq -0x98(%rbp), %rax
movq (%rax), %rax
movq 0x98(%rax), %rax
movq %rcx, 0x38(%rax)
movq -0x60(%rbp), %rdi
callq 0x34e0
movq %rax, %rcx
movq -0x98(%rbp), %rax
movq (%rax), %rax
movq 0x98(%rax), %rax
movq %rcx, 0x40(%rax)
movq -0x58(%rbp), %rdi
callq 0x34e0
movq %rax, %rdx
movq -0x98(%rbp), %rax
movq (%rax), %rcx
movq 0x98(%rcx), %rcx
movq %rdx, 0x28(%rcx)
movq -0x50(%rbp), %rcx
movb (%rcx), %cl
movq (%rax), %rax
movq 0x98(%rax), %rax
movb %cl, 0x30(%rax)
jmp 0x8cf4
movq -0x98(%rbp), %rax
movq 0x20(%rax), %rax
movq (%rax), %rdi
movslq -0xc(%rbp), %rax
addq %rax, %rdi
movl -0x10(%rbp), %esi
subl -0xc(%rbp), %esi
leaq 0x359a(%rip), %rdx      # 0xbef4
callq 0x7030
cmpl $0x0, %eax
je 0x8ac9
cmpq $0x0, -0x38(%rbp)
je 0x89b8
cmpl $0x0, -0x3c(%rbp)
jne 0x89b8
movq -0x38(%rbp), %rdi
leaq 0x354f(%rip), %rsi      # 0xbecf
callq 0x21f0
cmpl $0x0, %eax
jne 0x89b8
movq -0x98(%rbp), %rax
movq (%rax), %rcx
movq 0x98(%rcx), %rsi
movq (%rax), %rax
movq 0x98(%rax), %rdi
addq $0x48, %rdi
movl $0x48, %edx
callq 0x2100
jmp 0x8ac4
cmpq $0x0, -0x38(%rbp)
jne 0x89c5
cmpl $0x7, -0x3c(%rbp)
je 0x89d1
leaq 0x352d(%rip), %rdi      # 0xbef9
callq 0x35e0
movq -0x90(%rbp), %rdi
callq 0x34e0
movq %rax, %rcx
movq -0x98(%rbp), %rax
movq (%rax), %rax
movq 0x98(%rax), %rax
movq %rcx, 0x48(%rax)
movq -0x88(%rbp), %rdi
callq 0x34e0
movq %rax, %rcx
movq -0x98(%rbp), %rax
movq (%rax), %rax
movq 0x98(%rax), %rax
movq %rcx, 0x50(%rax)
movq -0x80(%rbp), %rdi
callq 0x34e0
movq %rax, %rcx
movq -0x98(%rbp), %rax
movq (%rax), %rax
movq 0x98(%rax), %rax
movq %rcx, 0x58(%rax)
movq -0x78(%rbp), %rdi
callq 0x34e0
movq %rax, %rcx
movq -0x98(%rbp), %rax
movq (%rax), %rax
movq 0x98(%rax), %rax
movq %rcx, 0x60(%rax)
movq -0x70(%rbp), %rdi
callq 0x34e0
movq %rax, %rcx
movq -0x98(%rbp), %rax
movq (%rax), %rax
movq 0x98(%rax), %rax
movq %rcx, 0x68(%rax)
movq -0x68(%rbp), %rdi
callq 0x34e0
movq %rax, %rcx
movq -0x98(%rbp), %rax
movq (%rax), %rax
movq 0x98(%rax), %rax
movq %rcx, 0x80(%rax)
movq -0x60(%rbp), %rdi
callq 0x34e0
movq %rax, %rcx
movq -0x98(%rbp), %rax
movq (%rax), %rax
movq 0x98(%rax), %rax
movq %rcx, 0x88(%rax)
jmp 0x8cf2
movq -0x98(%rbp), %rax
movq 0x20(%rax), %rax
movq (%rax), %rdi
movslq -0xc(%rbp), %rax
addq %rax, %rdi
movl -0x10(%rbp), %esi
subl -0xc(%rbp), %esi
leaq 0x342e(%rip), %rdx      # 0xbf19
callq 0x7030
cmpl $0x0, %eax
je 0x8b01
leaq 0x3428(%rip), %rdi      # 0xbf24
callq 0x35e0
movq -0x98(%rbp), %rax
movq 0x20(%rax), %rax
movq (%rax), %rdi
movslq -0xc(%rbp), %rax
addq %rax, %rdi
movl -0x10(%rbp), %esi
subl -0xc(%rbp), %esi
leaq 0x341e(%rip), %rdx      # 0xbf41
callq 0x7030
cmpl $0x0, %eax
jne 0x8b59
movq -0x98(%rbp), %rax
movq 0x20(%rax), %rax
movq (%rax), %rdi
movslq -0xc(%rbp), %rax
addq %rax, %rdi
movl -0x10(%rbp), %esi
subl -0xc(%rbp), %esi
leaq 0x341c(%rip), %rdx      # 0xbf6b
callq 0x7030
cmpl $0x0, %eax
je 0x8bc8
cmpq $0x0, -0x38(%rbp)
jne 0x8b66
cmpl $0x1, -0x3c(%rbp)
jle 0x8b72
leaq 0x33de(%rip), %rdi      # 0xbf4b
callq 0x35e0
cmpl $0x0, -0x3c(%rbp)
jne 0x8b90
movq -0x98(%rbp), %rax
movq (%rax), %rax
movq 0x98(%rax), %rdi
callq 0x93c0
jmp 0x8bc3
movq -0x98(%rbp), %rax
movq (%rax), %rax
movq 0x98(%rax), %rax
movq %rax, -0xd8(%rbp)
movq -0x90(%rbp), %rdi
callq 0x34e0
movq -0xd8(%rbp), %rdi
movq %rax, %rsi
callq 0x7100
jmp 0x8cee
movq -0x98(%rbp), %rax
movq 0x20(%rax), %rax
movq (%rax), %rdi
movslq -0xc(%rbp), %rax
addq %rax, %rdi
movl -0x10(%rbp), %esi
subl -0xc(%rbp), %esi
leaq 0x33d4(%rip), %rdx      # 0xbfbe
callq 0x7030
cmpl $0x0, %eax
je 0x8ce0
cmpq $0x0, -0x38(%rbp)
je 0x8c05
cmpl $0x1, -0x3c(%rbp)
je 0x8c11
leaq 0x3368(%rip), %rdi      # 0xbf74
callq 0x35e0
movq -0x38(%rbp), %rdi
leaq 0x3247(%rip), %rsi      # 0xbe63
callq 0xa7f0
cmpl $0x0, %eax
jne 0x8c52
movq -0x90(%rbp), %rdi
callq 0x30d0
movq %rax, %rcx
movq -0x98(%rbp), %rax
movq (%rax), %rax
movq 0x98(%rax), %rax
movq %rcx, 0xa0(%rax)
jmp 0x8cde
movq -0x38(%rbp), %rdi
leaq 0x3335(%rip), %rsi      # 0xbf92
callq 0xa7f0
cmpl $0x0, %eax
jne 0x8c90
movq -0x90(%rbp), %rdi
callq 0x30d0
movq %rax, %rcx
movq -0x98(%rbp), %rax
movq (%rax), %rax
movq 0x98(%rax), %rax
movq %rcx, 0xa8(%rax)
jmp 0x8cdc
movq -0x38(%rbp), %rdi
leaq 0x32fb(%rip), %rsi      # 0xbf96
callq 0xa7f0
cmpl $0x0, %eax
jne 0x8cce
movq -0x90(%rbp), %rdi
callq 0x30d0
movq %rax, %rcx
movq -0x98(%rbp), %rax
movq (%rax), %rax
movq 0x98(%rax), %rax
movq %rcx, 0xb0(%rax)
jmp 0x8cda
leaq 0x32c4(%rip), %rdi      # 0xbf99
callq 0x35e0
jmp 0x8cdc
jmp 0x8cde
jmp 0x8cec
leaq 0x32df(%rip), %rdi      # 0xbfc6
callq 0x35e0
jmp 0x8cee
jmp 0x8cf0
jmp 0x8cf2
jmp 0x8cf4
jmp 0x8cf6
jmp 0x8cf8
jmp 0x8cfa
jmp 0x8cfc
jmp 0x8cfe
jmp 0x8d00
movq -0x28(%rbp), %rdi
callq 0x2170
addq $0xe0, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)