// File: /workspace/github_c_makefile_star2_O1/BernardTatin[P]s7sh/s7.c
// Function: gc
static int64_t gc(s7_scheme *sc)
#endif
        {
            s7_cell **old_free_heap_top;
#if (!MS_WINDOWS)
            struct timeval start_time;
            struct timezone z0;
#endif

            /* mark all live objects (the symbol table is in permanent memory, not the heap) */

#if (!MS_WINDOWS)
            if (show_gc_stats(sc))
                gettimeofday(&start_time, &z0);
            /* this is apparently deprecated in favor of clock_gettime -- what compile-time switch to use here?
             *   _POSIX_TIMERS, or perhaps use CLOCK_REALTIME, but clock_gettime requires -lrt -- no thanks.
             */
#endif
            mark_rootlet(sc);
            mark_owlet(sc);

            gc_mark(sc->code);
            if (sc->args) gc_mark(sc->args);
            mark_let(sc->envir);
            mark_current_code(sc); /* probably redundant if with_history */

            mark_stack_1(sc->stack, s7_stack_top(sc));
            gc_mark(sc->u);
            gc_mark(sc->v);
            gc_mark(sc->w);
            gc_mark(sc->x);
            gc_mark(sc->y);
            gc_mark(sc->z);
            gc_mark(sc->value);

            gc_mark(sc->temp1);
            gc_mark(sc->temp2);
            gc_mark(sc->temp3);
            gc_mark(sc->temp4);
            gc_mark(sc->temp5);
            gc_mark(sc->temp6);
            gc_mark(sc->temp7);
            gc_mark(sc->temp8);
            gc_mark(sc->temp9);
            gc_mark(sc->temp10);

            set_mark(sc->input_port);
            mark_input_port_stack(sc);
            set_mark(sc->output_port);
            set_mark(sc->error_port);
            gc_mark(sc->stacktrace_defaults);
            gc_mark(sc->autoload_table);
            gc_mark(sc->default_rng);

            /* permanent lists that might escape and therefore need GC protection */
            mark_pair(sc->temp_cell_1);
            mark_pair(sc->temp_cell_2);
            gc_mark(car(sc->t1_1));
            gc_mark(car(sc->t2_1)); gc_mark(car(sc->t2_2));
            gc_mark(car(sc->t3_1)); gc_mark(car(sc->t3_2)); gc_mark(car(sc->t3_3)); gc_mark(car(sc->t4_1));
            gc_mark(car(sc->plist_1));
            gc_mark(car(sc->clist_1));
            gc_mark(car(sc->plist_2)); gc_mark(cadr(sc->plist_2));
            gc_mark(car(sc->qlist_2)); gc_mark(cadr(sc->qlist_2));
            gc_mark(car(sc->qlist_3)); gc_mark(cadr(sc->qlist_3)); gc_mark(caddr(sc->qlist_3));
            gc_mark(car(sc->u1_1));

            {
                s7_pointer p;
                for (p = sc->wrong_type_arg_info; is_pair(p); p = cdr(p)) gc_mark(car(p));
                for (p = sc->simple_wrong_type_arg_info; is_pair(p); p = cdr(p)) gc_mark(car(p));
                for (p = sc->out_of_range_info; is_pair(p); p = cdr(p)) gc_mark(car(p));
                for (p = sc->simple_out_of_range_info; is_pair(p); p = cdr(p)) gc_mark(car(p));
                gc_mark(car(sc->elist_1));
                gc_mark(car(sc->elist_2));
                gc_mark(cadr(sc->elist_2));
                for (p = sc->plist_3; is_pair(p); p = cdr(p)) gc_mark(car(p));
                for (p = sc->elist_3; is_pair(p); p = cdr(p)) gc_mark(car(p));
                for (p = sc->elist_4; is_pair(p); p = cdr(p)) gc_mark(car(p));
                for (p = sc->elist_5; is_pair(p); p = cdr(p)) gc_mark(car(p));
            }

            {
                s7_int i;
                s7_pointer p;
                for (i = 1; i < NUM_SAFE_LISTS; i++)
                    if ((is_pair(sc->safe_lists[i])) &&
                            (list_is_in_use(sc->safe_lists[i])))
                        for (p = sc->safe_lists[i]; is_pair(p); p = cdr(p))
                            gc_mark(car(p));

                for (i = 0; i < sc->setters_loc; i++)
                    gc_mark(cdr(sc->setters[i]));

                for (i = 0; i < sc->num_fdats; i++)
                    if (sc->fdats[i])
                        gc_mark(sc->fdats[i]->curly_arg);

                if (sc->rec_stack)
                {
                    just_mark(sc->rec_stack);
                    for (i = 0; i < sc->rec_loc; i++)
                        gc_mark(vector_element(sc->rec_stack, i));
                }
            }
            mark_vector(sc->protected_objects);
            mark_vector(sc->protected_setters);
            set_mark(sc->protected_setter_symbols);

            /* now protect recent allocations using the free_heap cells above the current free_heap_top (if any).
             * cells above sc->free_heap_top might be malloc'd garbage (after heap reallocation), so we keep track of
             *   where the last actually freed cells were after the previous GC call.  We're trying to
             *   GC protect the previous GC_TEMPS_SIZE allocated pointers so that the caller doesn't have
             *   to gc-protect every temporary cell.
             * There's one remaining possible problem.  s7_remove_from_heap frees cells outside
             *   the GC and might push free_heap_top beyond its previous_free_heap_top, then
             *   an immediate explicit gc call might not see those temp cells.
             */
            {
                s7_pointer *tmps, *tmps_top;

                tmps = sc->free_heap_top;
                tmps_top = tmps + GC_TEMPS_SIZE;
                if (tmps_top > sc->previous_free_heap_top)
                    tmps_top = sc->previous_free_heap_top;

                while (tmps < tmps_top)
                    gc_mark(*tmps++);
            }
            mark_op_stack(sc);
            mark_permanent_objects(sc);
            mark_lamlets(sc);

            /* free up all unmarked objects */
            old_free_heap_top = sc->free_heap_top;

            {
                s7_pointer *fp, *tp, *heap_top;
                fp = sc->free_heap_top;

                tp = sc->heap;
                heap_top = (s7_pointer *)(sc->heap + sc->heap_size);

#if S7_DEBUGGING
#define gc_call(P, Tp)							\
                p = (*tp++);							\
                if (is_marked(T_Any(p)))						\
                clear_mark(p);							\
                else								\
                {									\
                    if (!is_free_and_clear(p))					\
                    {								\
                        p->debugger_bits = 0; p->opt1_func = NULL; p->opt2_func = NULL; p->opt3_func = NULL; p->gc_func = func; p->gc_line = line; \
                        if (has_odd_bits(p))					\
                        {char *s; fprintf(stderr, "odd bits: %s\n", s = describe_type_bits(sc, p)); free(s);} \
                        clear_type(p);						\
                        (*fp++) = p;						\
                    }}
#else
#define gc_call(P, Tp) p = (*tp++); if (is_marked(p)) clear_mark(p); else {if (!is_free_and_clear(p)) {clear_type(p); (*fp++) = p;}}
#endif

                while (tp < heap_top)          /* != here or ^ makes no difference */
                {
                    s7_pointer p;
                    LOOP_8(gc_call(p, tp));
                    LOOP_8(gc_call(p, tp));
                    LOOP_8(gc_call(p, tp));
                    LOOP_8(gc_call(p, tp));
                }

                sc->free_heap_top = fp;
                sweep(sc);
            }

            unmark_permanent_objects(sc);
            sc->gc_freed = (int64_t)(sc->free_heap_top - old_free_heap_top);

            if (show_gc_stats(sc))
            {
#if (!MS_WINDOWS)
                struct timeval t0;
                double secs;
                gettimeofday(&t0, &z0);
                secs = (t0.tv_sec - start_time.tv_sec) +  0.000001 * (t0.tv_usec - start_time.tv_usec);
#if S7_DEBUGGING
                s7_warn(sc, 256, "%s[%d]: gc freed %" print_s7_int "/%" print_s7_int " (free: %" print_pointer "), time: %f\n",
                        func, line, sc->gc_freed, sc->heap_size, (intptr_t)(sc->free_heap_top - sc->free_heap), secs);
#else
                s7_warn(sc, 256, "gc freed %" print_s7_int "/%" print_s7_int " (free: %" print_pointer "), time: %f\n",
                        sc->gc_freed, sc->heap_size, (intptr_t)(sc->free_heap_top - sc->free_heap), secs);
#endif
#else
                s7_warn(sc, 128, "gc freed %" print_s7_int "/%" print_s7_int "\n", sc->gc_freed, sc->heap_size);
#endif
            }
            sc->previous_free_heap_top = sc->free_heap_top;

            return(sc->gc_freed);
        }

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x38, %rsp
movq %rdi, %rbx
testb $0x1, 0x21c(%rdi)
je 0x930df
leaq 0x18(%rsp), %rdi
leaq 0x10(%rsp), %rsi
callq 0x9240
movabsq $0x7fffffffffffffff, %rdx # imm = 0x7FFFFFFFFFFFFFFF
movq 0x150(%rbx), %rcx
movq 0x160(%rbx), %rax
movq 0x10(%rcx), %r15
leaq 0x1(%rdx), %r14
orq %r14, (%rcx)
testq %rax, %rax
jle 0x93130
leaq (%r15,%rax,8), %r12
leaq 0xbb65e(%rip), %r13     # 0x14e770
movq (%r15), %rax
movq 0x10(%rax), %rdi
cmpq $0x0, (%rdi)
js 0x93127
movzbl (%rdi), %eax
callq *(%r13,%rax,8)
addq $0x8, %r15
cmpq %r12, %r15
jb 0x93112
movq 0x1a0(%rbx), %r15
orq %r14, (%r15)
movq 0x10(%r15), %rdi
cmpq $0x0, (%rdi)
js 0x93151
movzbl (%rdi), %eax
leaq 0xbb622(%rip), %rcx     # 0x14e770
callq *(%rcx,%rax,8)
testb $0x4, 0x2(%r15)
je 0x9316f
movq 0x28(%r15), %rdi
cmpq $0x0, (%rdi)
js 0x9316f
movzbl (%rdi), %eax
leaq 0xbb604(%rip), %rcx     # 0x14e770
callq *(%rcx,%rax,8)
testb $0x20, 0x3(%r15)
je 0x9318d
movq 0x20(%r15), %rdi
cmpq $0x0, (%rdi)
js 0x9318d
movzbl (%rdi), %eax
leaq 0xbb5e6(%rip), %rcx     # 0x14e770
callq *(%rcx,%rax,8)
movq 0x8(%r15), %rax
orq %r14, (%rax)
movq 0x120(%rbx), %rax
movq 0x1a8(%rbx), %rcx
movq %rax, 0x10(%rcx)
movq 0x1a8(%rbx), %r15
orq %r14, (%r15)
movq 0x10(%r15), %rdi
cmpq $0x0, (%rdi)
js 0x931c7
movzbl (%rdi), %eax
leaq 0xbb5ac(%rip), %rcx     # 0x14e770
callq *(%rcx,%rax,8)
testb $0x4, 0x2(%r15)
je 0x931e5
movq 0x28(%r15), %rdi
cmpq $0x0, (%rdi)
js 0x931e5
movzbl (%rdi), %eax
leaq 0xbb58e(%rip), %rcx     # 0x14e770
callq *(%rcx,%rax,8)
testb $0x20, 0x3(%r15)
je 0x93203
movq 0x20(%r15), %rdi
cmpq $0x0, (%rdi)
js 0x93203
movzbl (%rdi), %eax
leaq 0xbb570(%rip), %rcx     # 0x14e770
callq *(%rcx,%rax,8)
movq 0x8(%r15), %rax
orq %r14, (%rax)
movq 0x1b0(%rbx), %r15
orq %r14, (%r15)
movq 0x10(%r15), %rdi
cmpq $0x0, (%rdi)
js 0x9322b
movzbl (%rdi), %eax
leaq 0xbb548(%rip), %rcx     # 0x14e770
callq *(%rcx,%rax,8)
testb $0x4, 0x2(%r15)
je 0x93249
movq 0x28(%r15), %rdi
cmpq $0x0, (%rdi)
js 0x93249
movzbl (%rdi), %eax
leaq 0xbb52a(%rip), %rcx     # 0x14e770
callq *(%rcx,%rax,8)
testb $0x20, 0x3(%r15)
je 0x93267
movq 0x20(%r15), %rdi
cmpq $0x0, (%rdi)
js 0x93267
movzbl (%rdi), %eax
leaq 0xbb50c(%rip), %rcx     # 0x14e770
callq *(%rcx,%rax,8)
movq 0x8(%r15), %rax
orq %r14, (%rax)
movq 0x1b8(%rbx), %r15
orq %r14, (%r15)
movq 0x10(%r15), %rdi
cmpq $0x0, (%rdi)
js 0x9328f
movzbl (%rdi), %eax
leaq 0xbb4e4(%rip), %rcx     # 0x14e770
callq *(%rcx,%rax,8)
testb $0x4, 0x2(%r15)
je 0x932ad
movq 0x28(%r15), %rdi
cmpq $0x0, (%rdi)
js 0x932ad
movzbl (%rdi), %eax
leaq 0xbb4c6(%rip), %rcx     # 0x14e770
callq *(%rcx,%rax,8)
testb $0x20, 0x3(%r15)
je 0x932cb
movq 0x20(%r15), %rdi
cmpq $0x0, (%rdi)
js 0x932cb
movzbl (%rdi), %eax
leaq 0xbb4a8(%rip), %rcx     # 0x14e770
callq *(%rcx,%rax,8)
movq 0x8(%r15), %rax
orq %r14, (%rax)
movq 0x1c0(%rbx), %r15
orq %r14, (%r15)
movq 0x10(%r15), %rdi
cmpq $0x0, (%rdi)
js 0x932f3
movzbl (%rdi), %eax
leaq 0xbb480(%rip), %rcx     # 0x14e770
callq *(%rcx,%rax,8)
testb $0x4, 0x2(%r15)
je 0x93311
movq 0x28(%r15), %rdi
cmpq $0x0, (%rdi)
js 0x93311
movzbl (%rdi), %eax
leaq 0xbb462(%rip), %rcx     # 0x14e770
callq *(%rcx,%rax,8)
testb $0x20, 0x3(%r15)
je 0x9332f
movq 0x20(%r15), %rdi
cmpq $0x0, (%rdi)
js 0x9332f
movzbl (%rdi), %eax
leaq 0xbb444(%rip), %rcx     # 0x14e770
callq *(%rcx,%rax,8)
movq 0x8(%r15), %rax
orq %r14, (%rax)
movq 0x198(%rbx), %rax
orq %r14, (%rax)
movq 0x198(%rbx), %rax
movq 0x10(%rax), %rdi
callq 0x94d53
movq (%rbx), %rdi
cmpq $0x0, (%rdi)
js 0x93366
movzbl (%rdi), %eax
leaq 0xbb40d(%rip), %rcx     # 0x14e770
callq *(%rcx,%rax,8)
movq 0x10(%rbx), %rdi
testq %rdi, %rdi
je 0x93382
cmpq $0x0, (%rdi)
js 0x93382
movzbl (%rdi), %eax
leaq 0xbb3f1(%rip), %rcx     # 0x14e770
callq *(%rcx,%rax,8)
movq 0x8(%rbx), %rdi
callq 0x94d53
movq 0x28(%rbx), %rdi
cmpq $0x0, (%rdi)
js 0x933a2
movzbl (%rdi), %eax
leaq 0xbb3d1(%rip), %rcx     # 0x14e770
callq *(%rcx,%rax,8)
movq 0x38(%rbx), %rdi
movq 0x50(%rbx), %rsi
subq 0x48(%rbx), %rsi
sarq $0x3, %rsi
callq 0x94ed3
movq 0x4c8(%rbx), %rdi
cmpq $0x0, (%rdi)
js 0x933d1
movzbl (%rdi), %eax
leaq 0xbb3a2(%rip), %rcx     # 0x14e770
callq *(%rcx,%rax,8)
movq 0x4d0(%rbx), %rdi
cmpq $0x0, (%rdi)
js 0x933eb
movzbl (%rdi), %eax
leaq 0xbb388(%rip), %rcx     # 0x14e770
callq *(%rcx,%rax,8)
movq 0x4d8(%rbx), %rdi
cmpq $0x0, (%rdi)
js 0x93405
movzbl (%rdi), %eax
leaq 0xbb36e(%rip), %rcx     # 0x14e770
callq *(%rcx,%rax,8)
movq 0x4e0(%rbx), %rdi
cmpq $0x0, (%rdi)
js 0x9341f
movzbl (%rdi), %eax
leaq 0xbb354(%rip), %rcx     # 0x14e770
callq *(%rcx,%rax,8)
movq 0x4e8(%rbx), %rdi
cmpq $0x0, (%rdi)
js 0x93439
movzbl (%rdi), %eax
leaq 0xbb33a(%rip), %rcx     # 0x14e770
callq *(%rcx,%rax,8)
movq 0x4f0(%rbx), %rdi
cmpq $0x0, (%rdi)
js 0x93453
movzbl (%rdi), %eax
leaq 0xbb320(%rip), %rcx     # 0x14e770
callq *(%rcx,%rax,8)
movq 0x20(%rbx), %rdi
cmpq $0x0, (%rdi)
js 0x9346a
movzbl (%rdi), %eax
leaq 0xbb309(%rip), %rcx     # 0x14e770
callq *(%rcx,%rax,8)
movq 0x4f8(%rbx), %rdi
cmpq $0x0, (%rdi)
js 0x93484
movzbl (%rdi), %eax
leaq 0xbb2ef(%rip), %rcx     # 0x14e770
callq *(%rcx,%rax,8)
movq 0x500(%rbx), %rdi
cmpq $0x0, (%rdi)
js 0x9349e
movzbl (%rdi), %eax
leaq 0xbb2d5(%rip), %rcx     # 0x14e770
callq *(%rcx,%rax,8)
movq 0x508(%rbx), %rdi
cmpq $0x0, (%rdi)
js 0x934b8
movzbl (%rdi), %eax
leaq 0xbb2bb(%rip), %rcx     # 0x14e770
callq *(%rcx,%rax,8)
movq 0x510(%rbx), %rdi
cmpq $0x0, (%rdi)
js 0x934d2
movzbl (%rdi), %eax
leaq 0xbb2a1(%rip), %rcx     # 0x14e770
callq *(%rcx,%rax,8)
movq 0x518(%rbx), %rdi
cmpq $0x0, (%rdi)
js 0x934ec
movzbl (%rdi), %eax
leaq 0xbb287(%rip), %rcx     # 0x14e770
callq *(%rcx,%rax,8)
movq 0x520(%rbx), %rdi
cmpq $0x0, (%rdi)
js 0x93506
movzbl (%rdi), %eax
leaq 0xbb26d(%rip), %rcx     # 0x14e770
callq *(%rcx,%rax,8)
movq 0x528(%rbx), %rdi
cmpq $0x0, (%rdi)
js 0x93520
movzbl (%rdi), %eax
leaq 0xbb253(%rip), %rcx     # 0x14e770
callq *(%rcx,%rax,8)
movq 0x530(%rbx), %rdi
cmpq $0x0, (%rdi)
js 0x9353a
movzbl (%rdi), %eax
leaq 0xbb239(%rip), %rcx     # 0x14e770
callq *(%rcx,%rax,8)
movq 0x538(%rbx), %rdi
cmpq $0x0, (%rdi)
js 0x93554
movzbl (%rdi), %eax
leaq 0xbb21f(%rip), %rcx     # 0x14e770
callq *(%rcx,%rax,8)
movq 0x540(%rbx), %rdi
cmpq $0x0, (%rdi)
js 0x9356e
movzbl (%rdi), %eax
leaq 0xbb205(%rip), %rcx     # 0x14e770
callq *(%rcx,%rax,8)
movq 0x170(%rbx), %rax
orq %r14, (%rax)
movl 0x184(%rbx), %eax
testq %rax, %rax
je 0x935af
movq 0x178(%rbx), %r15
leaq (%r15,%rax,8), %r12
leaq 0xbb1db(%rip), %r13     # 0x14e770
movq (%r15), %rdi
cmpq $0x0, (%rdi)
js 0x935a6
movzbl (%rdi), %eax
callq *(%r13,%rax,8)
addq $0x8, %r15
cmpq %r12, %r15
jb 0x93595
movq 0x188(%rbx), %rax
orq %r14, (%rax)
movq 0x190(%rbx), %rax
orq %r14, (%rax)
movq 0x2e0(%rbx), %rdi
cmpq $0x0, (%rdi)
js 0x935dd
movzbl (%rdi), %eax
leaq 0xbb196(%rip), %rcx     # 0x14e770
callq *(%rcx,%rax,8)
movq 0x2140(%rbx), %rdi
cmpq $0x0, (%rdi)
js 0x935f7
movzbl (%rdi), %eax
leaq 0xbb17c(%rip), %rcx     # 0x14e770
callq *(%rcx,%rax,8)
movq 0xaa0(%rbx), %rdi
cmpq $0x0, (%rdi)
js 0x93611
movzbl (%rdi), %eax
leaq 0xbb162(%rip), %rcx     # 0x14e770
callq *(%rcx,%rax,8)
movq 0x550(%rbx), %rdi
callq 0x94f36
movq 0x558(%rbx), %rdi
callq 0x94f36
movq 0x568(%rbx), %rax
movq 0x8(%rax), %rdi
cmpq $0x0, (%rdi)
js 0x93647
movzbl (%rdi), %eax
leaq 0xbb12c(%rip), %rcx     # 0x14e770
callq *(%rcx,%rax,8)
movq 0x570(%rbx), %rax
movq 0x8(%rax), %rdi
cmpq $0x0, (%rdi)
js 0x93665
movzbl (%rdi), %eax
leaq 0xbb10e(%rip), %rcx     # 0x14e770
callq *(%rcx,%rax,8)
movq 0x578(%rbx), %rax
movq 0x8(%rax), %rdi
cmpq $0x0, (%rdi)
js 0x93683
movzbl (%rdi), %eax
leaq 0xbb0f0(%rip), %rcx     # 0x14e770
callq *(%rcx,%rax,8)
movq 0x580(%rbx), %rax
movq 0x8(%rax), %rdi
cmpq $0x0, (%rdi)
js 0x936a1
movzbl (%rdi), %eax
leaq 0xbb0d2(%rip), %rcx     # 0x14e770
callq *(%rcx,%rax,8)
movq 0x588(%rbx), %rax
movq 0x8(%rax), %rdi
cmpq $0x0, (%rdi)
js 0x936bf
movzbl (%rdi), %eax
leaq 0xbb0b4(%rip), %rcx     # 0x14e770
callq *(%rcx,%rax,8)
movq 0x590(%rbx), %rax
movq 0x8(%rax), %rdi
cmpq $0x0, (%rdi)
js 0x936dd
movzbl (%rdi), %eax
leaq 0xbb096(%rip), %rcx     # 0x14e770
callq *(%rcx,%rax,8)
movq 0x5a8(%rbx), %rax
movq 0x8(%rax), %rdi
cmpq $0x0, (%rdi)
js 0x936fb
movzbl (%rdi), %eax
leaq 0xbb078(%rip), %rcx     # 0x14e770
callq *(%rcx,%rax,8)
movq 0x700(%rbx), %rax
movq 0x8(%rax), %rdi
cmpq $0x0, (%rdi)
js 0x93719
movzbl (%rdi), %eax
leaq 0xbb05a(%rip), %rcx     # 0x14e770
callq *(%rcx,%rax,8)
movq 0x730(%rbx), %rax
movq 0x8(%rax), %rdi
cmpq $0x0, (%rdi)
js 0x93737
movzbl (%rdi), %eax
leaq 0xbb03c(%rip), %rcx     # 0x14e770
callq *(%rcx,%rax,8)
movq 0x708(%rbx), %rax
movq 0x8(%rax), %rdi
cmpq $0x0, (%rdi)
js 0x93755
movzbl (%rdi), %eax
leaq 0xbb01e(%rip), %rcx     # 0x14e770
callq *(%rcx,%rax,8)
movq 0x708(%rbx), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rdi
cmpq $0x0, (%rdi)
js 0x93777
movzbl (%rdi), %eax
leaq 0xbaffc(%rip), %rcx     # 0x14e770
callq *(%rcx,%rax,8)
movq 0x720(%rbx), %rax
movq 0x8(%rax), %rdi
cmpq $0x0, (%rdi)
js 0x93795
movzbl (%rdi), %eax
leaq 0xbafde(%rip), %rcx     # 0x14e770
callq *(%rcx,%rax,8)
movq 0x720(%rbx), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rdi
cmpq $0x0, (%rdi)
js 0x937b7
movzbl (%rdi), %eax
leaq 0xbafbc(%rip), %rcx     # 0x14e770
callq *(%rcx,%rax,8)
movq 0x728(%rbx), %rax
movq 0x8(%rax), %rdi
cmpq $0x0, (%rdi)
js 0x937d5
movzbl (%rdi), %eax
leaq 0xbaf9e(%rip), %rcx     # 0x14e770
callq *(%rcx,%rax,8)
movq 0x728(%rbx), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rdi
cmpq $0x0, (%rdi)
js 0x937f7
movzbl (%rdi), %eax
leaq 0xbaf7c(%rip), %rcx     # 0x14e770
callq *(%rcx,%rax,8)
movq 0x728(%rbx), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rdi
cmpq $0x0, (%rdi)
js 0x9381d
movzbl (%rdi), %eax
leaq 0xbaf56(%rip), %rcx     # 0x14e770
callq *(%rcx,%rax,8)
movq 0x560(%rbx), %rax
movq 0x8(%rax), %rdi
cmpq $0x0, (%rdi)
js 0x9383b
movzbl (%rdi), %eax
leaq 0xbaf38(%rip), %rcx     # 0x14e770
callq *(%rcx,%rax,8)
movq 0x1ee0(%rbx), %r15
cmpb $0x1, (%r15)
jne 0x9386a
leaq 0xbaf21(%rip), %r12     # 0x14e770
movq 0x8(%r15), %rdi
cmpq $0x0, (%rdi)
js 0x93860
movzbl (%rdi), %eax
callq *(%r12,%rax,8)
movq 0x10(%r15), %r15
cmpb $0x1, (%r15)
je 0x9384f
movq 0x1ef0(%rbx), %r15
cmpb $0x1, (%r15)
jne 0x93899
leaq 0xbaef2(%rip), %r12     # 0x14e770
movq 0x8(%r15), %rdi
cmpq $0x0, (%rdi)
js 0x9388f
movzbl (%rdi), %eax
callq *(%r12,%rax,8)
movq 0x10(%r15), %r15
cmpb $0x1, (%r15)
je 0x9387e
movq 0x1ee8(%rbx), %r15
cmpb $0x1, (%r15)
jne 0x938c8
leaq 0xbaec3(%rip), %r12     # 0x14e770
movq 0x8(%r15), %rdi
cmpq $0x0, (%rdi)
js 0x938be
movzbl (%rdi), %eax
callq *(%r12,%rax,8)
movq 0x10(%r15), %r15
cmpb $0x1, (%r15)
je 0x938ad
movq 0x1ef8(%rbx), %r15
cmpb $0x1, (%r15)
jne 0x938f7
leaq 0xbae94(%rip), %r12     # 0x14e770
movq 0x8(%r15), %rdi
cmpq $0x0, (%rdi)
js 0x938ed
movzbl (%rdi), %eax
callq *(%r12,%rax,8)
movq 0x10(%r15), %r15
cmpb $0x1, (%r15)
je 0x938dc
movq 0x6d8(%rbx), %rax
movq 0x8(%rax), %rdi
cmpq $0x0, (%rdi)
js 0x93915
movzbl (%rdi), %eax
leaq 0xbae5e(%rip), %rcx     # 0x14e770
callq *(%rcx,%rax,8)
movq 0x6e0(%rbx), %rax
movq 0x8(%rax), %rdi
cmpq $0x0, (%rdi)
js 0x93933
movzbl (%rdi), %eax
leaq 0xbae40(%rip), %rcx     # 0x14e770
callq *(%rcx,%rax,8)
movq 0x6e0(%rbx), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rdi
cmpq $0x0, (%rdi)
js 0x93955
movzbl (%rdi), %eax
leaq 0xbae1e(%rip), %rcx     # 0x14e770
callq *(%rcx,%rax,8)
movq 0x718(%rbx), %r15
cmpb $0x1, (%r15)
jne 0x93984
leaq 0xbae07(%rip), %r12     # 0x14e770
movq 0x8(%r15), %rdi
cmpq $0x0, (%rdi)
js 0x9397a
movzbl (%rdi), %eax
callq *(%r12,%rax,8)
movq 0x10(%r15), %r15
cmpb $0x1, (%r15)
je 0x93969
movq 0x6e8(%rbx), %r15
cmpb $0x1, (%r15)
jne 0x939b3
leaq 0xbadd8(%rip), %r12     # 0x14e770
movq 0x8(%r15), %rdi
cmpq $0x0, (%rdi)
js 0x939a9
movzbl (%rdi), %eax
callq *(%r12,%rax,8)
movq 0x10(%r15), %r15
cmpb $0x1, (%r15)
je 0x93998
movq 0x6f0(%rbx), %r15
cmpb $0x1, (%r15)
jne 0x939e2
leaq 0xbada9(%rip), %r12     # 0x14e770
movq 0x8(%r15), %rdi
cmpq $0x0, (%rdi)
js 0x939d8
movzbl (%rdi), %eax
callq *(%r12,%rax,8)
movq 0x10(%r15), %r15
cmpb $0x1, (%r15)
je 0x939c7
movq 0x6f8(%rbx), %r15
cmpb $0x1, (%r15)
jne 0x93a11
leaq 0xbad7a(%rip), %r12     # 0x14e770
movq 0x8(%r15), %rdi
cmpq $0x0, (%rdi)
js 0x93a07
movzbl (%rdi), %eax
callq *(%r12,%rax,8)
movq 0x10(%r15), %r15
cmpb $0x1, (%r15)
je 0x939f6
movl $0x1, %r15d
leaq 0xbad52(%rip), %r12     # 0x14e770
movq 0x1f38(%rbx,%r15,8), %r13
cmpb $0x1, (%r13)
jne 0x93a34
testb $0x4, 0x1(%r13)
jne 0x93a3f
incq %r15
cmpq $0x40, %r15
jne 0x93a1e
jmp 0x93a5d
cmpb $0x1, (%r13)
jne 0x93a34
movq 0x8(%r13), %rdi
cmpq $0x0, (%rdi)
js 0x93a57
movzbl (%rdi), %eax
callq *(%r12,%rax,8)
movq 0x10(%r13), %r13
jmp 0x93a3f
cmpq $0x0, 0x7c0(%rbx)
jle 0x93a92
xorl %r15d, %r15d
movq 0x7b0(%rbx), %rax
movq (%rax,%r15,8), %rax
movq 0x10(%rax), %rdi
cmpq $0x0, (%rdi)
js 0x93a86
movzbl (%rdi), %eax
callq *(%r12,%rax,8)
incq %r15
cmpq 0x7c0(%rbx), %r15
jl 0x93a6a
cmpl $0x0, 0x6d0(%rbx)
jle 0x93ace
xorl %r15d, %r15d
movq 0x6c8(%rbx), %rax
movq (%rax,%r15,8), %rax
testq %rax, %rax
je 0x93abf
movq 0x30(%rax), %rdi
cmpq $0x0, (%rdi)
js 0x93abf
movzbl (%rdi), %eax
callq *(%r12,%rax,8)
incq %r15
movslq 0x6d0(%rbx), %rax
cmpq %rax, %r15
jl 0x93a9e
movq 0x2e8(%rbx), %rax
testq %rax, %rax
je 0x93b12
orq %r14, (%rax)
cmpq $0x0, 0x2d0(%rbx)
jle 0x93b12
xorl %r15d, %r15d
movq 0x2e8(%rbx), %rax
movq 0x10(%rax), %rax
movq (%rax,%r15,8), %rdi
cmpq $0x0, (%rdi)
js 0x93b06
movzbl (%rdi), %eax
callq *(%r12,%rax,8)
incq %r15
cmpq 0x2d0(%rbx), %r15
jl 0x93aea
movq 0xd0(%rbx), %rdi
callq 0x94f8e
movq 0xd8(%rbx), %rdi
callq 0x94f8e
movq 0xe0(%rbx), %rax
orq %r14, (%rax)
movq 0x90(%rbx), %r14
movq 0xa0(%rbx), %rax
leaq 0x800(%r14), %r15
cmpq %rax, %r15
cmovaq %rax, %r15
cmpq %r15, %r14
jae 0x93b6b
movq (%r14), %rdi
cmpq $0x0, (%rdi)
js 0x93b65
movzbl (%rdi), %eax
callq *(%r12,%rax,8)
addq $0x8, %r14
jmp 0x93b50
movq 0x60(%rbx), %r14
movq 0x68(%rbx), %r15
cmpq %r15, %r14
jae 0x93b8e
movq (%r14), %rdi
cmpq $0x0, (%rdi)
js 0x93b88
movzbl (%rdi), %eax
callq *(%r12,%rax,8)
addq $0x8, %r14
jmp 0x93b73
movq 0xc0(%rbx), %r14
testq %r14, %r14
je 0x93bb0
movq (%r14), %rdi
cmpq $0x0, (%rdi)
js 0x93baa
movzbl (%rdi), %eax
callq *(%r12,%rax,8)
movq 0x8(%r14), %r14
jmp 0x93b95
movq 0xc8(%rbx), %r14
testq %r14, %r14
je 0x93bd2
movq (%r14), %rdi
cmpq $0x0, (%rdi)
js 0x93bcc
movzbl (%rdi), %eax
callq *(%r12,%rax,8)
movq 0x8(%r14), %r14
jmp 0x93bb7
movq 0x7a8(%rbx), %r14
cmpq $0x0, 0x10(%r14)
jle 0x93c4a
xorl %r15d, %r15d
movq (%r14), %rax
movq (%rax,%r15,8), %rax
cmpq $0x0, (%rax)
je 0x93c41
movq 0x28(%rax), %rdi
cmpb $0x1c, (%rdi)
jne 0x93c34
cmpq $0x0, (%rdi)
js 0x93c34
testb $0x1, 0x6(%rdi)
je 0x93c34
movq 0x8(%rdi), %rax
movq 0x10(%rax), %rax
cmpb $0x28, (%rax)
jne 0x93c30
movq 0x18(%rax), %rax
movq 0x8(%rax), %rax
testq %rax, %rax
je 0x93c30
movq 0x120(%rbx), %rcx
movq %rcx, 0x10(%rax)
movq 0x18(%rax), %rax
jmp 0x93c1a
andb $-0x2, 0x6(%rdi)
cmpq $0x0, (%rdi)
js 0x93c41
movzbl (%rdi), %eax
callq *(%r12,%rax,8)
incq %r15
cmpq 0x10(%r14), %r15
jl 0x93be3
movq 0x90(%rbx), %r9
movq 0xa8(%rbx), %rdx
movq %r9, %rax
testq %rdx, %rdx
movabsq $0x7fffffffffffffff, %r8 # imm = 0x7FFFFFFFFFFFFFFF
jle 0x9413b
movq 0x80(%rbx), %rcx
leaq (%rcx,%rdx,8), %rdx
movq %r9, %rax
movq (%rcx), %rsi
movq (%rsi), %rdi
testq %rdi, %rdi
js 0x93c99
je 0x93c9f
movq $0x0, (%rsi)
movq %rsi, (%rax)
addq $0x8, %rax
jmp 0x93c9f
andq %r8, %rdi
movq %rdi, (%rsi)
movq 0x8(%rcx), %rsi
movq (%rsi), %rdi
testq %rdi, %rdi
js 0x93cbd
je 0x93cc3
movq $0x0, (%rsi)
movq %rsi, (%rax)
addq $0x8, %rax
jmp 0x93cc3
andq %r8, %rdi
movq %rdi, (%rsi)
movq 0x10(%rcx), %rsi
movq (%rsi), %rdi
testq %rdi, %rdi
js 0x93ce1
je 0x93ce7
movq $0x0, (%rsi)
movq %rsi, (%rax)
addq $0x8, %rax
jmp 0x93ce7
andq %r8, %rdi
movq %rdi, (%rsi)
movq 0x18(%rcx), %rsi
movq (%rsi), %rdi
testq %rdi, %rdi
js 0x93d05
je 0x93d0b
movq $0x0, (%rsi)
movq %rsi, (%rax)
addq $0x8, %rax
jmp 0x93d0b
andq %r8, %rdi
movq %rdi, (%rsi)
movq 0x20(%rcx), %rsi
movq (%rsi), %rdi
testq %rdi, %rdi
js 0x93d29
je 0x93d2f
movq $0x0, (%rsi)
movq %rsi, (%rax)
addq $0x8, %rax
jmp 0x93d2f
andq %r8, %rdi
movq %rdi, (%rsi)
movq 0x28(%rcx), %rsi
movq (%rsi), %rdi
testq %rdi, %rdi
js 0x93d4d
je 0x93d53
movq $0x0, (%rsi)
movq %rsi, (%rax)
addq $0x8, %rax
jmp 0x93d53
andq %r8, %rdi
movq %rdi, (%rsi)
movq 0x30(%rcx), %rsi
movq (%rsi), %rdi
testq %rdi, %rdi
js 0x93d71
je 0x93d77
movq $0x0, (%rsi)
movq %rsi, (%rax)
addq $0x8, %rax
jmp 0x93d77
andq %r8, %rdi
movq %rdi, (%rsi)
movq 0x38(%rcx), %rsi
movq (%rsi), %rdi
testq %rdi, %rdi
js 0x93d95
je 0x93d9b
movq $0x0, (%rsi)
movq %rsi, (%rax)
addq $0x8, %rax
jmp 0x93d9b
andq %r8, %rdi
movq %rdi, (%rsi)
movq 0x40(%rcx), %rsi
movq (%rsi), %rdi
testq %rdi, %rdi
js 0x93db9
je 0x93dbf
movq $0x0, (%rsi)
movq %rsi, (%rax)
addq $0x8, %rax
jmp 0x93dbf
andq %r8, %rdi
movq %rdi, (%rsi)
movq 0x48(%rcx), %rsi
movq (%rsi), %rdi
testq %rdi, %rdi
js 0x93ddd
je 0x93de3
movq $0x0, (%rsi)
movq %rsi, (%rax)
addq $0x8, %rax
jmp 0x93de3
andq %r8, %rdi
movq %rdi, (%rsi)
movq 0x50(%rcx), %rsi
movq (%rsi), %rdi
testq %rdi, %rdi
js 0x93e01
je 0x93e07
movq $0x0, (%rsi)
movq %rsi, (%rax)
addq $0x8, %rax
jmp 0x93e07
andq %r8, %rdi
movq %rdi, (%rsi)
movq 0x58(%rcx), %rsi
movq (%rsi), %rdi
testq %rdi, %rdi
js 0x93e25
je 0x93e2b
movq $0x0, (%rsi)
movq %rsi, (%rax)
addq $0x8, %rax
jmp 0x93e2b
andq %r8, %rdi
movq %rdi, (%rsi)
movq 0x60(%rcx), %rsi
movq (%rsi), %rdi
testq %rdi, %rdi
js 0x93e49
je 0x93e4f
movq $0x0, (%rsi)
movq %rsi, (%rax)
addq $0x8, %rax
jmp 0x93e4f
andq %r8, %rdi
movq %rdi, (%rsi)
movq 0x68(%rcx), %rsi
movq (%rsi), %rdi
testq %rdi, %rdi
js 0x93e6d
je 0x93e73
movq $0x0, (%rsi)
movq %rsi, (%rax)
addq $0x8, %rax
jmp 0x93e73
andq %r8, %rdi
movq %rdi, (%rsi)
movq 0x70(%rcx), %rsi
movq (%rsi), %rdi
testq %rdi, %rdi
js 0x93e91
je 0x93e97
movq $0x0, (%rsi)
movq %rsi, (%rax)
addq $0x8, %rax
jmp 0x93e97
andq %r8, %rdi
movq %rdi, (%rsi)
movq 0x78(%rcx), %rsi
movq (%rsi), %rdi
testq %rdi, %rdi
js 0x93eb5
je 0x93ebb
movq $0x0, (%rsi)
movq %rsi, (%rax)
addq $0x8, %rax
jmp 0x93ebb
andq %r8, %rdi
movq %rdi, (%rsi)
movq 0x80(%rcx), %rsi
movq (%rsi), %rdi
testq %rdi, %rdi
js 0x93edc
je 0x93ee2
movq $0x0, (%rsi)
movq %rsi, (%rax)
addq $0x8, %rax
jmp 0x93ee2
andq %r8, %rdi
movq %rdi, (%rsi)
movq 0x88(%rcx), %rsi
movq (%rsi), %rdi
testq %rdi, %rdi
js 0x93f03
je 0x93f09
movq $0x0, (%rsi)
movq %rsi, (%rax)
addq $0x8, %rax
jmp 0x93f09
andq %r8, %rdi
movq %rdi, (%rsi)
movq 0x90(%rcx), %rsi
movq (%rsi), %rdi
testq %rdi, %rdi
js 0x93f2a
je 0x93f30
movq $0x0, (%rsi)
movq %rsi, (%rax)
addq $0x8, %rax
jmp 0x93f30
andq %r8, %rdi
movq %rdi, (%rsi)
movq 0x98(%rcx), %rsi
movq (%rsi), %rdi
testq %rdi, %rdi
js 0x93f51
je 0x93f57
movq $0x0, (%rsi)
movq %rsi, (%rax)
addq $0x8, %rax
jmp 0x93f57
andq %r8, %rdi
movq %rdi, (%rsi)
movq 0xa0(%rcx), %rsi
movq (%rsi), %rdi
testq %rdi, %rdi
js 0x93f78
je 0x93f7e
movq $0x0, (%rsi)
movq %rsi, (%rax)
addq $0x8, %rax
jmp 0x93f7e
andq %r8, %rdi
movq %rdi, (%rsi)
movq 0xa8(%rcx), %rsi
movq (%rsi), %rdi
testq %rdi, %rdi
js 0x93f9f
je 0x93fa5
movq $0x0, (%rsi)
movq %rsi, (%rax)
addq $0x8, %rax
jmp 0x93fa5
andq %r8, %rdi
movq %rdi, (%rsi)
movq 0xb0(%rcx), %rsi
movq (%rsi), %rdi
testq %rdi, %rdi
js 0x93fc6
je 0x93fcc
movq $0x0, (%rsi)
movq %rsi, (%rax)
addq $0x8, %rax
jmp 0x93fcc
andq %r8, %rdi
movq %rdi, (%rsi)
movq 0xb8(%rcx), %rsi
movq (%rsi), %rdi
testq %rdi, %rdi
js 0x93fed
je 0x93ff3
movq $0x0, (%rsi)
movq %rsi, (%rax)
addq $0x8, %rax
jmp 0x93ff3
andq %r8, %rdi
movq %rdi, (%rsi)
movq 0xc0(%rcx), %rsi
movq (%rsi), %rdi
testq %rdi, %rdi
js 0x94014
je 0x9401a
movq $0x0, (%rsi)
movq %rsi, (%rax)
addq $0x8, %rax
jmp 0x9401a
andq %r8, %rdi
movq %rdi, (%rsi)
movq 0xc8(%rcx), %rsi
movq (%rsi), %rdi
testq %rdi, %rdi
js 0x9403b
je 0x94041
movq $0x0, (%rsi)
movq %rsi, (%rax)
addq $0x8, %rax
jmp 0x94041
andq %r8, %rdi
movq %rdi, (%rsi)
movq 0xd0(%rcx), %rsi
movq (%rsi), %rdi
testq %rdi, %rdi
js 0x94062
je 0x94068
movq $0x0, (%rsi)
movq %rsi, (%rax)
addq $0x8, %rax
jmp 0x94068
andq %r8, %rdi
movq %rdi, (%rsi)
movq 0xd8(%rcx), %rsi
movq (%rsi), %rdi
testq %rdi, %rdi
js 0x94089
je 0x9408f
movq $0x0, (%rsi)
movq %rsi, (%rax)
addq $0x8, %rax
jmp 0x9408f
andq %r8, %rdi
movq %rdi, (%rsi)
movq 0xe0(%rcx), %rsi
movq (%rsi), %rdi
testq %rdi, %rdi
js 0x940b0
je 0x940b6
movq $0x0, (%rsi)
movq %rsi, (%rax)
addq $0x8, %rax
jmp 0x940b6
andq %r8, %rdi
movq %rdi, (%rsi)
movq 0xe8(%rcx), %rsi
movq (%rsi), %rdi
testq %rdi, %rdi
js 0x940d7
je 0x940dd
movq $0x0, (%rsi)
movq %rsi, (%rax)
addq $0x8, %rax
jmp 0x940dd
andq %r8, %rdi
movq %rdi, (%rsi)
movq 0xf0(%rcx), %rsi
movq (%rsi), %rdi
testq %rdi, %rdi
js 0x940fe
je 0x94104
movq $0x0, (%rsi)
movq %rsi, (%rax)
addq $0x8, %rax
jmp 0x94104
andq %r8, %rdi
movq %rdi, (%rsi)
movq 0xf8(%rcx), %rsi
movq (%rsi), %rdi
testq %rdi, %rdi
js 0x94125
je 0x9412b
movq $0x0, (%rsi)
movq %rsi, (%rax)
addq $0x8, %rax
jmp 0x9412b
andq %r8, %rdi
movq %rdi, (%rsi)
addq $0x100, %rcx            # imm = 0x100
cmpq %rdx, %rcx
jb 0x93c7c
movq %r9, 0x8(%rsp)
movq %rax, 0x90(%rbx)
movq 0x738(%rbx), %r14
cmpq $0x0, 0x10(%r14)
jle 0x941d2
xorl %r15d, %r15d
xorl %r12d, %r12d
movq (%r14), %rcx
movq (%rcx,%r12,8), %rax
cmpq $0x0, (%rax)
je 0x94171
movq %rax, (%rcx,%r15,8)
incq %r15
jmp 0x941c5
movq 0x20(%rax), %r13
movslq 0x8(%r13), %rax
cmpq $0x11, %rax
jne 0x941b1
movq (%r13), %rdi
testq %rdi, %rdi
je 0x94195
callq 0x9050
movq $0x0, (%r13)
movl $0x0, 0x8(%r13)
movq 0x838(%rbx), %rax
movq %rax, 0x18(%r13)
movq %r13, 0x838(%rbx)
jmp 0x941c5
movq 0x838(%rbx,%rax,8), %rcx
movq %rcx, 0x18(%r13)
movq %r13, 0x838(%rbx,%rax,8)
incq %r12
cmpq 0x10(%r14), %r12
jl 0x9415b
movq %r15, 0x10(%r14)
movq 0x778(%rbx), %r14
cmpq $0x0, 0x10(%r14)
jle 0x942c7
xorl %r15d, %r15d
movabsq $-0x7fecfd2d94c4151b, %r12 # imm = 0x801302D26B3BEAE5
xorl %r13d, %r13d
movq (%r14), %rax
movq (%rax,%r13,8), %rsi
cmpq $0x0, (%rsi)
je 0x9420d
movq %rsi, (%rax,%r15,8)
incq %r15
jmp 0x942b6
movq 0x8(%rsi), %rax
movq 0x18(%rax), %rcx
movq %rcx, %rax
mulq %r12
shrq $0xe, %rdx
imull $0x7fed, %edx, %eax     # imm = 0x7FED
subl %eax, %ecx
movq 0x148(%rbx), %rax
movq 0x10(%rax), %rdx
movq (%rdx,%rcx,8), %rax
cmpq %rsi, 0x8(%rax)
je 0x94254
movq %rax, %rcx
movq 0x10(%rax), %rax
cmpb $0x1, (%rax)
jne 0x9425f
cmpq %rsi, 0x8(%rax)
jne 0x9423c
addq $0x10, %rcx
jmp 0x94258
leaq (%rdx,%rcx,8), %rcx
movq 0x10(%rax), %rax
movq %rax, (%rcx)
movq 0x8(%rsi), %rax
movq 0x28(%rax), %rbp
movslq 0x8(%rbp), %rax
cmpq $0x11, %rax
jne 0x942a2
movq (%rbp), %rdi
testq %rdi, %rdi
je 0x94287
callq 0x9050
movq $0x0, (%rbp)
movl $0x0, 0x8(%rbp)
movq 0x838(%rbx), %rax
movq %rax, 0x18(%rbp)
movq %rbp, 0x838(%rbx)
jmp 0x942b6
movq 0x838(%rbx,%rax,8), %rcx
movq %rcx, 0x18(%rbp)
movq %rbp, 0x838(%rbx,%rax,8)
incq %r13
cmpq 0x10(%r14), %r13
jl 0x941f4
movq %r15, 0x10(%r14)
cmpq $0x0, 0x10(%r14)
jne 0x942dc
leaq -0x1a03(%rip), %rax     # 0x928d2
movq %rax, 0xba4e4(%rip)     # 0x14e7c0
movq 0x780(%rbx), %r14
cmpq $0x0, 0x10(%r14)
jle 0x9431c
xorl %r15d, %r15d
xorl %r12d, %r12d
movq (%r14), %rcx
movq (%rcx,%r12,8), %rax
cmpq $0x0, (%rax)
je 0x94306
movq %rax, (%rcx,%r15,8)
incq %r15
jmp 0x9430f
movq 0x20(%rax), %rdi
callq 0x9050
incq %r12
cmpq 0x10(%r14), %r12
jl 0x942f0
movq %r15, 0x10(%r14)
movq 0x768(%rbx), %r14
cmpq $0x0, 0x10(%r14)
jle 0x94369
xorl %r15d, %r15d
xorl %r12d, %r12d
movq (%r14), %rcx
movq (%rcx,%r12,8), %rax
cmpq $0x0, (%rax)
je 0x94346
movq %rax, (%rcx,%r15,8)
incq %r15
jmp 0x9435c
movq 0x8d8(%rbx), %rcx
movq 0x8(%rax), %rdx
movq 0x10(%rax), %rdi
movq (%rcx,%rdx,8), %rax
callq *0x28(%rax)
incq %r12
cmpq 0x10(%r14), %r12
jl 0x94330
movq %r15, 0x10(%r14)
movq 0x788(%rbx), %r14
cmpq $0x0, 0x10(%r14)
jle 0x943fc
xorl %r15d, %r15d
xorl %r12d, %r12d
movq (%r14), %rcx
movq (%rcx,%r12,8), %rax
cmpq $0x0, (%rax)
je 0x94397
movq %rax, (%rcx,%r15,8)
incq %r15
jmp 0x943ef
movq 0x8(%rax), %rax
movq 0x18(%rax), %r13
movslq 0x8(%r13), %rax
cmpq $0x11, %rax
jne 0x943db
movq (%r13), %rdi
testq %rdi, %rdi
je 0x943bf
callq 0x9050
movq $0x0, (%r13)
movl $0x0, 0x8(%r13)
movq 0x838(%rbx), %rax
movq %rax, 0x18(%r13)
movq %r13, 0x838(%rbx)
jmp 0x943ef
movq 0x838(%rbx,%rax,8), %rcx
movq %rcx, 0x18(%r13)
movq %r13, 0x838(%rbx,%rax,8)
incq %r12
cmpq 0x10(%r14), %r12
jl 0x94381
movq %r15, 0x10(%r14)
movq 0x740(%rbx), %r14
cmpq $0x0, 0x10(%r14)
jle 0x94487
xorl %r15d, %r15d
xorl %r12d, %r12d
movq (%r14), %rcx
movq (%rcx,%r12,8), %rax
cmpq $0x0, (%rax)
je 0x94426
movq %rax, (%rcx,%r15,8)
incq %r15
jmp 0x9447a
movq 0x18(%rax), %r13
movslq 0x8(%r13), %rax
cmpq $0x11, %rax
jne 0x94466
movq (%r13), %rdi
testq %rdi, %rdi
je 0x9444a
callq 0x9050
movq $0x0, (%r13)
movl $0x0, 0x8(%r13)
movq 0x838(%rbx), %rax
movq %rax, 0x18(%r13)
movq %r13, 0x838(%rbx)
jmp 0x9447a
movq 0x838(%rbx,%rax,8), %rcx
movq %rcx, 0x18(%r13)
movq %r13, 0x838(%rbx,%rax,8)
incq %r12
cmpq 0x10(%r14), %r12
jl 0x94410
movq %r15, 0x10(%r14)
movq 0x790(%rbx), %r14
cmpq $0x0, 0x10(%r14)
jle 0x945a0
leaq 0x838(%rbx), %rdx
xorl %r15d, %r15d
xorl %r13d, %r13d
movq %rdx, (%rsp)
movq (%r14), %rax
movq (%rax,%r13,8), %rbp
cmpq $0x0, (%rbp)
je 0x944c4
movq %rbp, (%rax,%r15,8)
incq %r15
jmp 0x9458f
movq 0x18(%rbp), %rax
movq 0x20(%rax), %r12
testq %r12, %r12
je 0x94543
cmpq 0x470(%rbx), %r12
je 0x94543
cmpb $0x1, 0xc(%r12)
jne 0x944f5
movq 0x10(%rbp), %rdi
callq 0x9050
movq (%rsp), %rdx
movb $0x0, 0xc(%r12)
movslq 0x8(%r12), %rax
cmpq $0x11, %rax
jne 0x94528
movq (%r12), %rdi
testq %rdi, %rdi
je 0x9451a
callq 0x9050
movq (%rsp), %rdx
movq $0x0, (%r12)
movl $0x0, 0x8(%r12)
movq %rdx, %rax
jmp 0x9452c
leaq (%rdx,%rax,8), %rax
movq (%rax), %rcx
movq %rcx, 0x18(%r12)
movq %r12, (%rax)
movq 0x18(%rbp), %rax
movq $0x0, 0x20(%rax)
movq 0x18(%rbp), %r12
movslq 0x8(%r12), %rax
cmpq $0x11, %rax
jne 0x94582
movq (%r12), %rdi
testq %rdi, %rdi
je 0x9456c
callq 0x9050
movq (%rsp), %rdx
movq $0x0, (%r12)
movl $0x0, 0x8(%r12)
movq (%rdx), %rax
movq %rax, 0x18(%r12)
movq %r12, (%rdx)
jmp 0x9458f
movq (%rdx,%rax,8), %rcx
movq %rcx, 0x18(%r12)
movq %r12, (%rdx,%rax,8)
incq %r13
cmpq 0x10(%r14), %r13
jl 0x944aa
movq %r15, 0x10(%r14)
movq 0x770(%rbx), %r14
cmpq $0x0, 0x10(%r14)
jle 0x9477f
xorl %r13d, %r13d
leaq 0xbe6b4(%rip), %rbp     # 0x152c70
xorl %r12d, %r12d
movq (%r14), %rax
movq (%rax,%r12,8), %rax
movq (%rax), %rcx
testq %rcx, %rcx
je 0x945f1
btl $0x1b, %ecx
jae 0x945e2
movq 0x28(%rax), %rcx
cmpl $0x0, 0xc(%rcx)
je 0x946cd
movq (%r14), %rcx
movq %rax, (%rcx,%r13,8)
incq %r13
jmp 0x946bb
movq 0x28(%rax), %rcx
cmpq $0x0, 0x18(%rcx)
jle 0x94669
movq 0x8(%rax), %rcx
testq %rcx, %rcx
js 0x94669
movq 0x10(%rax), %rdx
xorl %esi, %esi
movq (%rdx,%rsi,8), %rdi
testq %rdi, %rdi
je 0x94632
movq 0x18(%rdi), %r8
movq 0x838(%rbx), %r9
movq %r9, 0x18(%rdi)
movq %rdi, 0x838(%rbx)
movq %r8, %rdi
testq %r8, %r8
jne 0x94614
movq %rsi, %rdi
orq $0x1, %rdi
movq (%rdx,%rdi,8), %rdi
testq %rdi, %rdi
je 0x94660
movq 0x18(%rdi), %r8
movq 0x838(%rbx), %r9
movq %r9, 0x18(%rdi)
movq %rdi, 0x838(%rbx)
movq %r8, %rdi
testq %r8, %r8
jne 0x94642
addq $0x2, %rsi
cmpq %rcx, %rsi
jle 0x9460b
movq 0x28(%rax), %r15
movslq 0x8(%r15), %rax
cmpq $0x11, %rax
jne 0x946a7
movq (%r15), %rdi
testq %rdi, %rdi
je 0x9468b
callq 0x9050
movq $0x0, (%r15)
movl $0x0, 0x8(%r15)
movq 0x838(%rbx), %rax
movq %rax, 0x18(%r15)
movq %r15, 0x838(%rbx)
jmp 0x946bb
movq 0x838(%rbx,%rax,8), %rcx
movq %rcx, 0x18(%r15)
movq %r15, 0x838(%rbx,%rax,8)
incq %r12
cmpq 0x10(%r14), %r12
jl 0x945bf
jmp 0x9477b
cmpq $0x0, 0x18(%rcx)
jle 0x945e2
movq 0x8(%rax), %rcx
testq %rcx, %rcx
js 0x945e2
movq 0x10(%rax), %rdx
xorl %esi, %esi
movq (%rdx,%rsi,8), %rdi
testq %rdi, %rdi
je 0x9474c
leaq (%rdx,%rsi,8), %r8
movq %rdi, %r10
movq (%r10), %r11
movq 0x18(%r10), %r9
cmpq $0x0, (%r11)
je 0x9470d
movq %r10, %rdi
jmp 0x94744
leaq 0x18(%rdi), %r11
cmpq (%r8), %r10
cmoveq %r8, %r11
cmoveq %r9, %rdi
movq %r9, (%r11)
movq 0x838(%rbx), %r11
movq %r11, 0x18(%r10)
movq %r10, 0x838(%rbx)
movq 0x28(%rax), %r10
decq 0x18(%r10)
movq 0x28(%rax), %r10
cmpq $0x0, 0x18(%r10)
je 0x9475d
movq %r9, %r10
testq %r9, %r9
jne 0x946fb
leaq 0x1(%rsi), %rdi
cmpq %rcx, %rsi
movq %rdi, %rsi
jne 0x946eb
jmp 0x945e2
cmpq %rbp, 0x20(%rax)
jne 0x945e2
leaq -0x5531a(%rip), %rcx    # 0x3f454
movq %rcx, 0x18(%rax)
andb $-0x21, 0x3(%rax)
jmp 0x945e2
movq %r13, 0x10(%r14)
movq 0x7a0(%rbx), %rax
cmpq $0x0, 0x10(%rax)
jle 0x947d8
xorl %ecx, %ecx
xorl %edx, %edx
movq (%rax), %rdi
movq (%rdi,%rdx,8), %rsi
cmpq $0x0, (%rsi)
je 0x947a7
movq %rsi, (%rdi,%rcx,8)
incq %rcx
jmp 0x947cb
movzwl 0x6(%rsi), %edi
testb $0x4, %dil
je 0x947cb
andl $0xfffb, %edi           # imm = 0xFFFB
movw %di, 0x6(%rsi)
movq 0x8(%rsi), %rsi
cmpb $0x1b, (%rsi)
jne 0x947cb
movq 0x28(%rsi), %rsi
decl 0xc(%rsi)
incq %rdx
cmpq 0x10(%rax), %rdx
jl 0x94791
movq %rcx, 0x10(%rax)
movq 0x748(%rbx), %r12
cmpq $0x0, 0x10(%r12)
jle 0x94970
leaq 0x838(%rbx), %rax
movq %rax, (%rsp)
xorl %r13d, %r13d
xorl %r15d, %r15d
movq (%r12), %rax
movq (%rax,%r15,8), %r14
cmpq $0x0, (%r14)
je 0x94816
movq %r14, (%rax,%r13,8)
incq %r13
jmp 0x9495d
movq 0x8(%r14), %rax
cmpb $0x0, 0x2(%rax)
jne 0x948a5
movl 0x4(%rax), %ecx
cmpl $0x1, %ecx
je 0x9484c
testl %ecx, %ecx
jne 0x948a5
movq 0x8(%rax), %rdi
testq %rdi, %rdi
je 0x948a5
callq 0x9180
movq 0x8(%r14), %rax
movq $0x0, 0x8(%rax)
jmp 0x948a5
cmpb $0x1, 0x1(%rax)
jne 0x948a5
movq 0x28(%rax), %rax
cmpq %rax, 0xf0(%rbx)
jle 0x9489d
movq 0xd0(%rbx), %rcx
movq 0x140(%rbx), %rdx
movq 0x10(%rcx), %rsi
cmpq %rdx, (%rsi,%rax,8)
je 0x94895
movq 0xe8(%rbx), %rsi
movq 0x108(%rbx), %rdi
leaq 0x1(%rdi), %r8
movq %r8, 0x108(%rbx)
movq %rax, 0x8(%rsi,%rdi,8)
movq 0x10(%rcx), %rcx
movq %rdx, (%rcx,%rax,8)
movq 0x8(%r14), %rax
movb $0x0, 0x1(%rax)
movq 0x8(%r14), %rax
cmpb $0x1, (%rax)
jne 0x948b9
movq %rbx, %rdi
movq %r14, %rsi
callq 0x95065
movq 0x8(%r14), %rax
cmpq $0x0, 0x10(%rax)
je 0x94913
movq 0x18(%rax), %rbp
movslq 0x8(%rbp), %rax
cmpq $0x11, %rax
jne 0x948f5
movq (%rbp), %rdi
testq %rdi, %rdi
je 0x948e8
callq 0x9050
movq $0x0, (%rbp)
movl $0x0, 0x8(%rbp)
movq (%rsp), %rax
jmp 0x948fd
movq (%rsp), %rcx
leaq (%rcx,%rax,8), %rax
movq (%rax), %rcx
movq %rcx, 0x18(%rbp)
movq %rbp, (%rax)
movq 0x8(%r14), %rax
movq $0x0, 0x10(%rax)
movq 0x28(%r14), %r14
movslq 0x8(%r14), %rax
cmpq $0x11, %rax
jne 0x9494d
movq (%r14), %rdi
testq %rdi, %rdi
je 0x94935
callq 0x9050
movq $0x0, (%r14)
movl $0x0, 0x8(%r14)
movq (%rsp), %rcx
movq (%rcx), %rax
movq %rax, 0x18(%r14)
movq %r14, (%rcx)
jmp 0x9495d
movq (%rsp), %rdx
movq (%rdx,%rax,8), %rcx
movq %rcx, 0x18(%r14)
movq %r14, (%rdx,%rax,8)
incq %r15
cmpq 0x10(%r12), %r15
jl 0x947fc
movq %r13, 0x10(%r12)
movq 0x758(%rbx), %r14
cmpq $0x0, 0x10(%r14)
jle 0x94a63
xorl %r15d, %r15d
xorl %r12d, %r12d
movq (%r14), %rcx
movq (%rcx,%r12,8), %rax
cmpq $0x0, (%rax)
je 0x949a1
movq %rax, (%rcx,%r15,8)
incq %r15
jmp 0x94a52
movq 0x8(%rax), %rcx
cmpb $0x1, 0x1(%rcx)
jne 0x949fe
movq 0x28(%rcx), %rcx
cmpq %rcx, 0xf0(%rbx)
jle 0x949f6
movq 0xd0(%rbx), %rdx
movq 0x140(%rbx), %rsi
movq 0x10(%rdx), %rdi
cmpq %rsi, (%rdi,%rcx,8)
je 0x949ee
movq 0xe8(%rbx), %rdi
movq 0x108(%rbx), %r8
leaq 0x1(%r8), %r9
movq %r9, 0x108(%rbx)
movq %rcx, 0x8(%rdi,%r8,8)
movq 0x10(%rdx), %rdx
movq %rsi, (%rdx,%rcx,8)
movq 0x8(%rax), %rcx
movb $0x0, 0x1(%rcx)
movq 0x28(%rax), %r13
movslq 0x8(%r13), %rax
cmpq $0x11, %rax
jne 0x94a3e
movq (%r13), %rdi
testq %rdi, %rdi
je 0x94a22
callq 0x9050
movq $0x0, (%r13)
movl $0x0, 0x8(%r13)
movq 0x838(%rbx), %rax
movq %rax, 0x18(%r13)
movq %r13, 0x838(%rbx)
jmp 0x94a52
movq 0x838(%rbx,%rax,8), %rcx
movq %rcx, 0x18(%r13)
movq %r13, 0x838(%rbx,%rax,8)
incq %r12
cmpq 0x10(%r14), %r12
jl 0x94988
movq %r15, 0x10(%r14)
movq 0x750(%rbx), %r15
cmpq $0x0, 0x10(%r15)
jle 0x94b69
leaq 0x838(%rbx), %rax
movq %rax, (%rsp)
xorl %r12d, %r12d
xorl %ebp, %ebp
movq (%r15), %rax
movq (%rax,%rbp,8), %r14
cmpq $0x0, (%r14)
je 0x94a9e
movq %r14, (%rax,%r12,8)
incq %r12
jmp 0x94b58
movq 0x8(%r14), %rax
movq 0x48(%rax), %rax
movq %rbx, %rdi
movq %r14, %rsi
callq *0x48(%rax)
movq 0x28(%r14), %r13
movslq 0x8(%r13), %rax
cmpq $0x11, %rax
jne 0x94ae1
movq (%r13), %rdi
testq %rdi, %rdi
je 0x94ad3
callq 0x9050
movq $0x0, (%r13)
movl $0x0, 0x8(%r13)
movq (%rsp), %rax
jmp 0x94ae9
movq (%rsp), %rcx
leaq (%rcx,%rax,8), %rax
movq (%rax), %rcx
movq %rcx, 0x18(%r13)
movq %r13, (%rax)
movq 0x8(%r14), %rax
cmpb $0x1, (%rax)
jne 0x94b58
movq 0x38(%rax), %r13
testq %r13, %r13
je 0x94b51
movslq 0x8(%r13), %rax
cmpq $0x11, %rax
jne 0x94b33
movq (%r13), %rdi
testq %rdi, %rdi
je 0x94b25
callq 0x9050
movq $0x0, (%r13)
movl $0x0, 0x8(%r13)
movq (%rsp), %rax
jmp 0x94b3b
movq (%rsp), %rcx
leaq (%rcx,%rax,8), %rax
movq (%rax), %rcx
movq %rcx, 0x18(%r13)
movq %r13, (%rax)
movq 0x8(%r14), %rax
movq $0x0, 0x38(%rax)
movq 0x8(%r14), %rax
movb $0x0, (%rax)
incq %rbp
cmpq 0x10(%r15), %rbp
jl 0x94a85
movq %r12, 0x10(%r15)
movq 0x760(%rbx), %rax
cmpq $0x0, 0x10(%rax)
movabsq $0x7fffffffffffffff, %r9 # imm = 0x7FFFFFFFFFFFFFFF
movq 0x8(%rsp), %r10
jle 0x94bcb
xorl %ecx, %ecx
xorl %edx, %edx
movq (%rax), %rdi
movq (%rdi,%rdx,8), %rsi
cmpq $0x0, (%rsi)
je 0x94ba0
movq %rsi, (%rdi,%rcx,8)
incq %rcx
jmp 0x94bbe
movq $0x0, 0x18(%rsi)
movq 0x8(%rsi), %rsi
movq 0x838(%rbx), %rdi
movq %rdi, 0x18(%rsi)
movq %rsi, 0x838(%rbx)
incq %rdx
cmpq 0x10(%rax), %rdx
jl 0x94b8a
movq %rcx, 0x10(%rax)
movq 0x7a8(%rbx), %rax
movq 0x10(%rax), %rcx
testq %rcx, %rcx
jle 0x94bff
xorl %edx, %edx
xorl %esi, %esi
movq (%rax), %rdi
movq (%rdi,%rsi,8), %r8
cmpq $0x0, (%r8)
je 0x94bf3
movq %r8, (%rdi,%rdx,8)
incq %rdx
incq %rsi
cmpq %rsi, %rcx
jne 0x94bdf
movq %rdx, 0x10(%rax)
movq 0x798(%rbx), %rax
cmpq $0x0, 0x10(%rax)
jle 0x94c72
xorl %ecx, %ecx
xorl %edx, %edx
movq (%rax), %rsi
movq (%rsi,%rdx,8), %rsi
cmpq $0x0, (%rsi)
je 0x94c65
movq 0x20(%rsi), %rdi
cmpq $0x0, (%rdi)
jne 0x94c33
movq 0x120(%rbx), %rdi
movq %rdi, 0x20(%rsi)
movq 0x28(%rsi), %rdi
cmpq $0x0, (%rdi)
jne 0x94c48
movq 0x120(%rbx), %rdi
movq %rdi, 0x28(%rsi)
movq 0x120(%rbx), %rdi
cmpq %rdi, 0x20(%rsi)
jne 0x94c5b
cmpq %rdi, 0x28(%rsi)
je 0x94c65
movq (%rax), %rdi
movq %rsi, (%rdi,%rcx,8)
incq %rcx
incq %rdx
cmpq 0x10(%rax), %rdx
jl 0x94c11
movq %rcx, 0x10(%rax)
movq 0xc0(%rbx), %rax
testq %rax, %rax
je 0x94c8a
movq (%rax), %rcx
andq %r9, (%rcx)
movq 0x8(%rax), %rax
jmp 0x94c79
movq 0xc8(%rbx), %rax
testq %rax, %rax
je 0x94ca2
movq (%rax), %rcx
andq %r9, (%rcx)
movq 0x8(%rax), %rax
jmp 0x94c91
movq 0x90(%rbx), %rax
subq %r10, %rax
sarq $0x3, %rax
movq %rax, 0xb0(%rbx)
testb $0x1, 0x21c(%rbx)
je 0x94d2f
leaq 0x28(%rsp), %r14
leaq 0x10(%rsp), %rsi
movq %r14, %rdi
callq 0x9240
movq (%r14), %rax
movq 0x8(%r14), %rcx
subq 0x18(%rsp), %rax
cvtsi2sd %rax, %xmm1
subq 0x20(%rsp), %rcx
cvtsi2sd %rcx, %xmm0
mulsd 0x7a383(%rip), %xmm0    # 0x10f078
addsd %xmm1, %xmm0
movq 0xb0(%rbx), %rcx
movq 0x90(%rbx), %r9
movq 0xa8(%rbx), %r8
subq 0x88(%rbx), %r9
sarq $0x3, %r9
leaq 0x8a7b5(%rip), %rdx     # 0x11f4d5
movl $0x100, %esi            # imm = 0x100
movq %rbx, %rdi
movb $0x1, %al
callq 0xfc3d
movq 0x90(%rbx), %rcx
movq 0xb0(%rbx), %rax
movq %rcx, 0xa0(%rbx)
addq $0x38, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq