// File: /workspace/github_c_makefile_star2_O0/stetre[P]moonnuklear/src/./nuklear/nuklear.h
// Function: nk_font_atlas_bake
NK_API const void*
nk_font_atlas_bake(struct nk_font_atlas *atlas, int *width, int *height,
    enum nk_font_atlas_format fmt)
{
    int i = 0;
    void *tmp = 0;
    nk_size tmp_size, img_size;
    struct nk_font *font_iter;
    struct nk_font_baker *baker;

    NK_ASSERT(atlas);
    NK_ASSERT(atlas->temporary.alloc);
    NK_ASSERT(atlas->temporary.free);
    NK_ASSERT(atlas->permanent.alloc);
    NK_ASSERT(atlas->permanent.free);

    NK_ASSERT(width);
    NK_ASSERT(height);
    if (!atlas || !width || !height ||
        !atlas->temporary.alloc || !atlas->temporary.free ||
        !atlas->permanent.alloc || !atlas->permanent.free)
        return 0;

#ifdef NK_INCLUDE_DEFAULT_FONT
    /* no font added so just use default font */
    if (!atlas->font_num)
        atlas->default_font = nk_font_atlas_add_default(atlas, 13.0f, 0);
#endif
    NK_ASSERT(atlas->font_num);
    if (!atlas->font_num) return 0;

    /* allocate temporary baker memory required for the baking process */
    nk_font_baker_memory(&tmp_size, &atlas->glyph_count, atlas->config, atlas->font_num);
    tmp = atlas->temporary.alloc(atlas->temporary.userdata,0, tmp_size);
    NK_ASSERT(tmp);
    if (!tmp) goto failed;
    NK_MEMSET(tmp,0,tmp_size);

    /* allocate glyph memory for all fonts */
    baker = nk_font_baker(tmp, atlas->glyph_count, atlas->font_num, &atlas->temporary);
    atlas->glyphs = (struct nk_font_glyph*)atlas->permanent.alloc(
        atlas->permanent.userdata,0, sizeof(struct nk_font_glyph)*(nk_size)atlas->glyph_count);
    NK_ASSERT(atlas->glyphs);
    if (!atlas->glyphs)
        goto failed;

    /* pack all glyphs into a tight fit space */
    atlas->custom.w = (NK_CURSOR_DATA_W*2)+1;
    atlas->custom.h = NK_CURSOR_DATA_H + 1;
    if (!nk_font_bake_pack(baker, &img_size, width, height, &atlas->custom,
        atlas->config, atlas->font_num, &atlas->temporary))
        goto failed;

    /* allocate memory for the baked image font atlas */
    atlas->pixel = atlas->temporary.alloc(atlas->temporary.userdata,0, img_size);
    NK_ASSERT(atlas->pixel);
    if (!atlas->pixel)
        goto failed;

    /* bake glyphs and custom white pixel into image */
    nk_font_bake(baker, atlas->pixel, *width, *height,
        atlas->glyphs, atlas->glyph_count, atlas->config, atlas->font_num);
    nk_font_bake_custom_data(atlas->pixel, *width, *height, atlas->custom,
            nk_custom_cursor_data, NK_CURSOR_DATA_W, NK_CURSOR_DATA_H, '.', 'X');

    if (fmt == NK_FONT_ATLAS_RGBA32) {
        /* convert alpha8 image into rgba32 image */
        void *img_rgba = atlas->temporary.alloc(atlas->temporary.userdata,0,
                            (nk_size)(*width * *height * 4));
        NK_ASSERT(img_rgba);
        if (!img_rgba) goto failed;
        nk_font_bake_convert(img_rgba, *width, *height, atlas->pixel);
        atlas->temporary.free(atlas->temporary.userdata, atlas->pixel);
        atlas->pixel = img_rgba;
    }
    atlas->tex_width = *width;
    atlas->tex_height = *height;

    /* initialize each font */
    for (font_iter = atlas->fonts; font_iter; font_iter = font_iter->next) {
        struct nk_font *font = font_iter;
        struct nk_font_config *config = font->config;
        nk_font_init(font, config->size, config->fallback_glyph, atlas->glyphs,
            config->font, nk_handle_ptr(0));
    }

    /* initialize each cursor */
    {NK_STORAGE const struct nk_vec2 nk_cursor_data[NK_CURSOR_COUNT][3] = {
        /* Pos      Size        Offset */
        {{ 0, 3},   {12,19},    { 0, 0}},
        {{13, 0},   { 7,16},    { 4, 8}},
        {{31, 0},   {23,23},    {11,11}},
        {{21, 0},   { 9, 23},   { 5,11}},
        {{55,18},   {23, 9},    {11, 5}},
        {{73, 0},   {17,17},    { 9, 9}},
        {{55, 0},   {17,17},    { 9, 9}}
    };
    for (i = 0; i < NK_CURSOR_COUNT; ++i) {
        struct nk_cursor *cursor = &atlas->cursors[i];
        cursor->img.w = (unsigned short)*width;
        cursor->img.h = (unsigned short)*height;
        cursor->img.region[0] = (unsigned short)(atlas->custom.x + nk_cursor_data[i][0].x);
        cursor->img.region[1] = (unsigned short)(atlas->custom.y + nk_cursor_data[i][0].y);
        cursor->img.region[2] = (unsigned short)nk_cursor_data[i][1].x;
        cursor->img.region[3] = (unsigned short)nk_cursor_data[i][1].y;
        cursor->size = nk_cursor_data[i][1];
        cursor->offset = nk_cursor_data[i][2];
    }}
    /* free temporary memory */
    atlas->temporary.free(atlas->temporary.userdata, tmp);
    return atlas->pixel;

failed:
    /* error so cleanup all memory */
    if (tmp) atlas->temporary.free(atlas->temporary.userdata, tmp);
    if (atlas->glyphs) {
        atlas->permanent.free(atlas->permanent.userdata, atlas->glyphs);
        atlas->glyphs = 0;
    }
    if (atlas->pixel) {
        atlas->temporary.free(atlas->temporary.userdata, atlas->pixel);
        atlas->pixel = 0;
    }
    return 0;
}

// Assembly:
subq $0xb8, %rsp
movq %rdi, 0xa8(%rsp)
movq %rsi, 0xa0(%rsp)
movq %rdx, 0x98(%rsp)
movl %ecx, 0x94(%rsp)
movl $0x0, 0x90(%rsp)
movq $0x0, 0x88(%rsp)
cmpq $0x0, 0xa8(%rsp)
jne 0x490cb
movq 0x7bf51(%rip), %rax     # 0xc4ff0
movq (%rax), %rdi
leaq 0x682f7(%rip), %rsi     # 0xb13a0
leaq 0x6830e(%rip), %rdx     # 0xb13be
movl $0x4520, %ecx           # imm = 0x4520
movb $0x0, %al
callq 0x13ec0
movq 0x7bf2d(%rip), %rax     # 0xc4ff0
movq (%rax), %rdi
callq 0x149a0
jmp 0x490cd
jmp 0x490cf
movq 0xa8(%rsp), %rax
cmpq $0x0, 0x30(%rax)
jne 0x49111
movq 0x7bf0b(%rip), %rax     # 0xc4ff0
movq (%rax), %rdi
leaq 0x682b1(%rip), %rsi     # 0xb13a0
leaq 0x682c8(%rip), %rdx     # 0xb13be
movl $0x4521, %ecx           # imm = 0x4521
movb $0x0, %al
callq 0x13ec0
movq 0x7bee7(%rip), %rax     # 0xc4ff0
movq (%rax), %rdi
callq 0x149a0
jmp 0x49113
jmp 0x49115
movq 0xa8(%rsp), %rax
cmpq $0x0, 0x38(%rax)
jne 0x49157
movq 0x7bec5(%rip), %rax     # 0xc4ff0
movq (%rax), %rdi
leaq 0x6826b(%rip), %rsi     # 0xb13a0
leaq 0x68282(%rip), %rdx     # 0xb13be
movl $0x4522, %ecx           # imm = 0x4522
movb $0x0, %al
callq 0x13ec0
movq 0x7bea1(%rip), %rax     # 0xc4ff0
movq (%rax), %rdi
callq 0x149a0
jmp 0x49159
jmp 0x4915b
movq 0xa8(%rsp), %rax
cmpq $0x0, 0x18(%rax)
jne 0x4919d
movq 0x7be7f(%rip), %rax     # 0xc4ff0
movq (%rax), %rdi
leaq 0x68225(%rip), %rsi     # 0xb13a0
leaq 0x6823c(%rip), %rdx     # 0xb13be
movl $0x4523, %ecx           # imm = 0x4523
movb $0x0, %al
callq 0x13ec0
movq 0x7be5b(%rip), %rax     # 0xc4ff0
movq (%rax), %rdi
callq 0x149a0
jmp 0x4919f
jmp 0x491a1
movq 0xa8(%rsp), %rax
cmpq $0x0, 0x20(%rax)
jne 0x491e3
movq 0x7be39(%rip), %rax     # 0xc4ff0
movq (%rax), %rdi
leaq 0x681df(%rip), %rsi     # 0xb13a0
leaq 0x681f6(%rip), %rdx     # 0xb13be
movl $0x4524, %ecx           # imm = 0x4524
movb $0x0, %al
callq 0x13ec0
movq 0x7be15(%rip), %rax     # 0xc4ff0
movq (%rax), %rdi
callq 0x149a0
jmp 0x491e5
jmp 0x491e7
cmpq $0x0, 0xa0(%rsp)
jne 0x49225
movq 0x7bdf7(%rip), %rax     # 0xc4ff0
movq (%rax), %rdi
leaq 0x6819d(%rip), %rsi     # 0xb13a0
leaq 0x681b4(%rip), %rdx     # 0xb13be
movl $0x4526, %ecx           # imm = 0x4526
movb $0x0, %al
callq 0x13ec0
movq 0x7bdd3(%rip), %rax     # 0xc4ff0
movq (%rax), %rdi
callq 0x149a0
jmp 0x49227
jmp 0x49229
cmpq $0x0, 0x98(%rsp)
jne 0x49267
movq 0x7bdb5(%rip), %rax     # 0xc4ff0
movq (%rax), %rdi
leaq 0x6815b(%rip), %rsi     # 0xb13a0
leaq 0x68172(%rip), %rdx     # 0xb13be
movl $0x4527, %ecx           # imm = 0x4527
movb $0x0, %al
callq 0x13ec0
movq 0x7bd91(%rip), %rax     # 0xc4ff0
movq (%rax), %rdi
callq 0x149a0
jmp 0x49269
cmpq $0x0, 0xa8(%rsp)
je 0x492c6
cmpq $0x0, 0xa0(%rsp)
je 0x492c6
cmpq $0x0, 0x98(%rsp)
je 0x492c6
movq 0xa8(%rsp), %rax
cmpq $0x0, 0x30(%rax)
je 0x492c6
movq 0xa8(%rsp), %rax
cmpq $0x0, 0x38(%rax)
je 0x492c6
movq 0xa8(%rsp), %rax
cmpq $0x0, 0x18(%rax)
je 0x492c6
movq 0xa8(%rsp), %rax
cmpq $0x0, 0x20(%rax)
jne 0x492d7
movq $0x0, 0xb0(%rsp)
jmp 0x49b3e
movq 0xa8(%rsp), %rax
cmpl $0x0, 0x188(%rax)
jne 0x49313
movq 0xa8(%rsp), %rdi
movss 0x64260(%rip), %xmm0    # 0xad558
xorl %eax, %eax
movl %eax, %esi
callq 0x13fa0
movq %rax, %rcx
movq 0xa8(%rsp), %rax
movq %rcx, 0x170(%rax)
jmp 0x49315
movq 0xa8(%rsp), %rax
cmpl $0x0, 0x188(%rax)
jne 0x49359
movq 0x7bcc3(%rip), %rax     # 0xc4ff0
movq (%rax), %rdi
leaq 0x68069(%rip), %rsi     # 0xb13a0
leaq 0x68080(%rip), %rdx     # 0xb13be
movl $0x4532, %ecx           # imm = 0x4532
movb $0x0, %al
callq 0x13ec0
movq 0x7bc9f(%rip), %rax     # 0xc4ff0
movq (%rax), %rdi
callq 0x149a0
jmp 0x4935b
movq 0xa8(%rsp), %rax
cmpl $0x0, 0x188(%rax)
jne 0x4937d
movq $0x0, 0xb0(%rsp)
jmp 0x49b3e
movq 0xa8(%rsp), %rsi
addq $0x160, %rsi            # imm = 0x160
movq 0xa8(%rsp), %rax
movq 0x180(%rax), %rdx
movq 0xa8(%rsp), %rax
movl 0x188(%rax), %ecx
leaq 0x80(%rsp), %rdi
callq 0x49b50
movq 0xa8(%rsp), %rax
movq 0x30(%rax), %rax
movq 0xa8(%rsp), %rcx
movq 0x80(%rsp), %rdx
movq 0x28(%rcx), %rdi
xorl %ecx, %ecx
movl %ecx, %esi
callq *%rax
movq %rax, 0x88(%rsp)
cmpq $0x0, 0x88(%rsp)
jne 0x49422
movq 0x7bbfa(%rip), %rax     # 0xc4ff0
movq (%rax), %rdi
leaq 0x67fa0(%rip), %rsi     # 0xb13a0
leaq 0x67fb7(%rip), %rdx     # 0xb13be
movl $0x4538, %ecx           # imm = 0x4538
movb $0x0, %al
callq 0x13ec0
movq 0x7bbd6(%rip), %rax     # 0xc4ff0
movq (%rax), %rdi
callq 0x149a0
jmp 0x49424
cmpq $0x0, 0x88(%rsp)
jne 0x49434
jmp 0x49a75
movq 0x88(%rsp), %rdi
movq 0x80(%rsp), %rdx
xorl %esi, %esi
callq 0x49d50
movq 0x88(%rsp), %rdi
movq 0xa8(%rsp), %rax
movl 0x160(%rax), %esi
movq 0xa8(%rsp), %rax
movl 0x188(%rax), %edx
movq 0xa8(%rsp), %rcx
addq $0x28, %rcx
callq 0x49ee0
movq %rax, 0x68(%rsp)
movq 0xa8(%rsp), %rax
movq 0x18(%rax), %rax
movq 0xa8(%rsp), %rcx
movq 0xa8(%rsp), %rdx
movslq 0x160(%rdx), %rdx
imulq $0x30, %rdx, %rdx
movq 0x10(%rcx), %rdi
xorl %ecx, %ecx
movl %ecx, %esi
callq *%rax
movq %rax, %rcx
movq 0xa8(%rsp), %rax
movq %rcx, 0x168(%rax)
movq 0xa8(%rsp), %rax
cmpq $0x0, 0x168(%rax)
jne 0x4950d
movq 0x7bb0f(%rip), %rax     # 0xc4ff0
movq (%rax), %rdi
leaq 0x67eb5(%rip), %rsi     # 0xb13a0
leaq 0x67ecc(%rip), %rdx     # 0xb13be
movl $0x4540, %ecx           # imm = 0x4540
movb $0x0, %al
callq 0x13ec0
movq 0x7baeb(%rip), %rax     # 0xc4ff0
movq (%rax), %rdi
callq 0x149a0
jmp 0x4950f
movq 0xa8(%rsp), %rax
cmpq $0x0, 0x168(%rax)
jne 0x49526
jmp 0x49a75
movq 0xa8(%rsp), %rax
movw $0xb5, 0x44(%rax)
movq 0xa8(%rsp), %rax
movw $0x1c, 0x46(%rax)
movq 0x68(%rsp), %rdi
movq 0xa0(%rsp), %rdx
movq 0x98(%rsp), %rcx
movq 0xa8(%rsp), %r8
addq $0x40, %r8
movq 0xa8(%rsp), %rax
movq 0x180(%rax), %r9
movq 0xa8(%rsp), %rax
movl 0x188(%rax), %r10d
movq 0xa8(%rsp), %rax
addq $0x28, %rax
leaq 0x78(%rsp), %rsi
movl %r10d, (%rsp)
movq %rax, 0x8(%rsp)
callq 0x49fe0
cmpl $0x0, %eax
jne 0x495aa
jmp 0x49a75
movq 0xa8(%rsp), %rax
movq 0x30(%rax), %rax
movq 0xa8(%rsp), %rcx
movq 0x78(%rsp), %rdx
movq 0x28(%rcx), %rdi
xorl %ecx, %ecx
movl %ecx, %esi
callq *%rax
movq %rax, %rcx
movq 0xa8(%rsp), %rax
movq %rcx, (%rax)
movq 0xa8(%rsp), %rax
cmpq $0x0, (%rax)
jne 0x4961c
movq 0x7ba00(%rip), %rax     # 0xc4ff0
movq (%rax), %rdi
leaq 0x67da6(%rip), %rsi     # 0xb13a0
leaq 0x67dbd(%rip), %rdx     # 0xb13be
movl $0x454d, %ecx           # imm = 0x454D
movb $0x0, %al
callq 0x13ec0
movq 0x7b9dc(%rip), %rax     # 0xc4ff0
movq (%rax), %rdi
callq 0x149a0
jmp 0x4961e
movq 0xa8(%rsp), %rax
cmpq $0x0, (%rax)
jne 0x49631
jmp 0x49a75
movq 0x68(%rsp), %rdi
movq 0xa8(%rsp), %rax
movq (%rax), %rsi
movq 0xa0(%rsp), %rax
movl (%rax), %edx
movq 0x98(%rsp), %rax
movl (%rax), %ecx
movq 0xa8(%rsp), %rax
movq 0x168(%rax), %r8
movq 0xa8(%rsp), %rax
movl 0x160(%rax), %r9d
movq 0xa8(%rsp), %rax
movq 0x180(%rax), %r10
movq 0xa8(%rsp), %rax
movl 0x188(%rax), %eax
movq %r10, (%rsp)
movl %eax, 0x8(%rsp)
callq 0x4ab10
movq 0xa8(%rsp), %rax
movq (%rax), %rdi
movq 0xa0(%rsp), %rax
movl (%rax), %esi
movq 0x98(%rsp), %rax
movl (%rax), %edx
movq 0xa8(%rsp), %rax
movq 0x40(%rax), %rcx
leaq 0x67131(%rip), %r8      # 0xb0800
movl $0x5a, %r9d
movl $0x1b, (%rsp)
movl $0x2e, 0x8(%rsp)
movl $0x58, 0x10(%rsp)
callq 0x4b470
cmpl $0x1, 0x94(%rsp)
jne 0x497e5
movq 0xa8(%rsp), %rax
movq 0x30(%rax), %rax
movq 0xa8(%rsp), %rcx
movq 0xa0(%rsp), %rdx
movl (%rdx), %edx
movq 0x98(%rsp), %rsi
imull (%rsi), %edx
shll $0x2, %edx
movslq %edx, %rdx
movq 0x28(%rcx), %rdi
xorl %ecx, %ecx
movl %ecx, %esi
callq *%rax
movq %rax, 0x60(%rsp)
cmpq $0x0, 0x60(%rsp)
jne 0x49778
movq 0x7b8a4(%rip), %rax     # 0xc4ff0
movq (%rax), %rdi
leaq 0x67c4a(%rip), %rsi     # 0xb13a0
leaq 0x67c61(%rip), %rdx     # 0xb13be
movl $0x455b, %ecx           # imm = 0x455B
movb $0x0, %al
callq 0x13ec0
movq 0x7b880(%rip), %rax     # 0xc4ff0
movq (%rax), %rdi
callq 0x149a0
jmp 0x4977a
cmpq $0x0, 0x60(%rsp)
jne 0x49787
jmp 0x49a75
movq 0x60(%rsp), %rdi
movq 0xa0(%rsp), %rax
movl (%rax), %esi
movq 0x98(%rsp), %rax
movl (%rax), %edx
movq 0xa8(%rsp), %rax
movq (%rax), %rcx
callq 0x4b6d0
movq 0xa8(%rsp), %rax
movq 0x38(%rax), %rax
movq 0xa8(%rsp), %rcx
movq 0xa8(%rsp), %rdx
movq (%rdx), %rsi
movq 0x28(%rcx), %rdi
callq *%rax
movq 0x60(%rsp), %rcx
movq 0xa8(%rsp), %rax
movq %rcx, (%rax)
movq 0xa0(%rsp), %rax
movl (%rax), %ecx
movq 0xa8(%rsp), %rax
movl %ecx, 0x8(%rax)
movq 0x98(%rsp), %rax
movl (%rax), %ecx
movq 0xa8(%rsp), %rax
movl %ecx, 0xc(%rax)
movq 0xa8(%rsp), %rax
movq 0x178(%rax), %rax
movq %rax, 0x70(%rsp)
cmpq $0x0, 0x70(%rsp)
je 0x498d2
movq 0x70(%rsp), %rax
movq %rax, 0x58(%rsp)
movq 0x58(%rsp), %rax
movq 0x78(%rax), %rax
movq %rax, 0x50(%rsp)
movq 0x58(%rsp), %rax
movq %rax, 0x20(%rsp)
movq 0x50(%rsp), %rax
movss 0x20(%rax), %xmm0
movss %xmm0, 0x28(%rsp)
movq 0x50(%rsp), %rax
movl 0x40(%rax), %eax
movl %eax, 0x2c(%rsp)
movq 0xa8(%rsp), %rax
movq 0x168(%rax), %rax
movq %rax, 0x30(%rsp)
movq 0x50(%rsp), %rax
movq 0x38(%rax), %rax
movq %rax, 0x38(%rsp)
xorl %eax, %eax
movl %eax, %edi
callq 0x13370
movq 0x20(%rsp), %rdi
movss 0x28(%rsp), %xmm0
movl 0x2c(%rsp), %esi
movq 0x30(%rsp), %rdx
movq 0x38(%rsp), %rcx
movq %rax, 0x48(%rsp)
movq 0x48(%rsp), %r8
callq 0x4b870
movq 0x70(%rsp), %rax
movq (%rax), %rax
movq %rax, 0x70(%rsp)
jmp 0x49823
movl $0x0, 0x90(%rsp)
cmpl $0x7, 0x90(%rsp)
jge 0x49a3b
movq 0xa8(%rsp), %rax
movslq 0x90(%rsp), %rcx
leaq (%rcx,%rcx,4), %rcx
leaq 0x48(%rax,%rcx,8), %rax
movq %rax, 0x40(%rsp)
movq 0xa0(%rsp), %rax
movw (%rax), %cx
movq 0x40(%rsp), %rax
movw %cx, 0x8(%rax)
movq 0x98(%rsp), %rax
movw (%rax), %cx
movq 0x40(%rsp), %rax
movw %cx, 0xa(%rax)
movq 0xa8(%rsp), %rax
movswl 0x40(%rax), %eax
cvtsi2ss %eax, %xmm0
movslq 0x90(%rsp), %rax
leaq (%rax,%rax,2), %rcx
leaq 0x6782c(%rip), %rax     # 0xb1180
movss (%rax,%rcx,8), %xmm1
addss %xmm1, %xmm0
cvttss2si %xmm0, %ecx
movw %cx, %dx
movq 0x40(%rsp), %rcx
movw %dx, 0xc(%rcx)
movq 0xa8(%rsp), %rcx
movswl 0x42(%rcx), %ecx
cvtsi2ss %ecx, %xmm0
movslq 0x90(%rsp), %rcx
leaq (%rcx,%rcx,2), %rcx
movss 0x4(%rax,%rcx,8), %xmm1
addss %xmm1, %xmm0
cvttss2si %xmm0, %ecx
movw %cx, %dx
movq 0x40(%rsp), %rcx
movw %dx, 0xe(%rcx)
movslq 0x90(%rsp), %rcx
leaq (%rcx,%rcx,2), %rcx
cvttss2si 0x8(%rax,%rcx,8), %ecx
movw %cx, %dx
movq 0x40(%rsp), %rcx
movw %dx, 0x10(%rcx)
movslq 0x90(%rsp), %rcx
leaq (%rcx,%rcx,2), %rcx
cvttss2si 0xc(%rax,%rcx,8), %eax
movw %ax, %cx
movq 0x40(%rsp), %rax
movw %cx, 0x12(%rax)
movq 0x40(%rsp), %rax
movslq 0x90(%rsp), %rdx
leaq 0x6778d(%rip), %rcx     # 0xb1180
imulq $0x18, %rdx, %rdx
addq %rdx, %rcx
movq 0x8(%rcx), %rcx
movq %rcx, 0x18(%rax)
movq 0x40(%rsp), %rax
movslq 0x90(%rsp), %rdx
leaq 0x6776a(%rip), %rcx     # 0xb1180
imulq $0x18, %rdx, %rdx
addq %rdx, %rcx
movq 0x10(%rcx), %rcx
movq %rcx, 0x20(%rax)
movl 0x90(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x90(%rsp)
jmp 0x498dd
movq 0xa8(%rsp), %rax
movq 0x38(%rax), %rax
movq 0xa8(%rsp), %rcx
movq 0x88(%rsp), %rsi
movq 0x28(%rcx), %rdi
callq *%rax
movq 0xa8(%rsp), %rax
movq (%rax), %rax
movq %rax, 0xb0(%rsp)
jmp 0x49b3e
cmpq $0x0, 0x88(%rsp)
je 0x49aa2
movq 0xa8(%rsp), %rax
movq 0x38(%rax), %rax
movq 0xa8(%rsp), %rcx
movq 0x88(%rsp), %rsi
movq 0x28(%rcx), %rdi
callq *%rax
movq 0xa8(%rsp), %rax
cmpq $0x0, 0x168(%rax)
je 0x49af0
movq 0xa8(%rsp), %rax
movq 0x20(%rax), %rax
movq 0xa8(%rsp), %rcx
movq 0xa8(%rsp), %rdx
movq 0x168(%rdx), %rsi
movq 0x10(%rcx), %rdi
callq *%rax
movq 0xa8(%rsp), %rax
movq $0x0, 0x168(%rax)
movq 0xa8(%rsp), %rax
cmpq $0x0, (%rax)
je 0x49b32
movq 0xa8(%rsp), %rax
movq 0x38(%rax), %rax
movq 0xa8(%rsp), %rcx
movq 0xa8(%rsp), %rdx
movq (%rdx), %rsi
movq 0x28(%rcx), %rdi
callq *%rax
movq 0xa8(%rsp), %rax
movq $0x0, (%rax)
movq $0x0, 0xb0(%rsp)
movq 0xb0(%rsp), %rax
addq $0xb8, %rsp
retq
nop