LLM4Binary/decompile-bench-makefile huggingface dataset:
// File: /workspace/github_c_makefile_star2_O0/stetre[P]moonassimp/src/material.c
// Function: Texture_op
static int Texture_op(lua_State *L)
    {
    int val;
    material_t *material = checkmaterial(L, 1);
    unsigned int type = checktexturetype(L, 2);
    unsigned int index = checkindex(L, 3);
    if(aiGetMaterialIntegerArray(material, _AI_MATKEY_TEXOP_BASE, type, index, &val, NULL) 
        != AI_SUCCESS) return 0;
    pushtextureop(L, val);
    return 1;
    }

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x18(%rsp)
movq 0x18(%rsp), %rdi
movl $0x1, %esi
leaq 0xa4e6(%rip), %rdx      # 0x16e90
callq 0x6700
movq %rax, 0x8(%rsp)
movq 0x18(%rsp), %rdi
movl $0x2, %esi
callq 0x6760
movl %eax, 0x4(%rsp)
movq 0x18(%rsp), %rdi
movl $0x3, %esi
callq 0x6320
movl %eax, (%rsp)
movq 0x8(%rsp), %rdi
movl 0x4(%rsp), %edx
movl (%rsp), %ecx
leaq 0xa705(%rip), %rsi      # 0x170f1
leaq 0x14(%rsp), %r8
xorl %eax, %eax
movl %eax, %r9d
callq 0x6290
cmpl $0x0, %eax
je 0xca0a
movl $0x0, 0x24(%rsp)
jmp 0xca20
movq 0x18(%rsp), %rdi
movl 0x14(%rsp), %esi
callq 0x6370
movl $0x1, 0x24(%rsp)
movl 0x24(%rsp), %eax
addq $0x28, %rsp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/stetre[P]moonassimp/src/material.c
// Function: Texture_mapping
static int Texture_mapping(lua_State *L)
    {
    int val;
    material_t *material = checkmaterial(L, 1);
    unsigned int type = checktexturetype(L, 2);
    unsigned int index = checkindex(L, 3);
    if(aiGetMaterialIntegerArray(material, _AI_MATKEY_MAPPING_BASE, type, index, &val, NULL) 
        != AI_SUCCESS) return 0;
    pushtexturemapping(L, val);
    return 1;
    }

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x18(%rsp)
movq 0x18(%rsp), %rdi
movl $0x1, %esi
leaq 0xa446(%rip), %rdx      # 0x16e90
callq 0x6700
movq %rax, 0x8(%rsp)
movq 0x18(%rsp), %rdi
movl $0x2, %esi
callq 0x6760
movl %eax, 0x4(%rsp)
movq 0x18(%rsp), %rdi
movl $0x3, %esi
callq 0x6320
movl %eax, (%rsp)
movq 0x8(%rsp), %rdi
movl 0x4(%rsp), %edx
movl (%rsp), %ecx
leaq 0xa66d(%rip), %rsi      # 0x170f9
leaq 0x14(%rsp), %r8
xorl %eax, %eax
movl %eax, %r9d
callq 0x6290
cmpl $0x0, %eax
je 0xcaaa
movl $0x0, 0x24(%rsp)
jmp 0xcac0
movq 0x18(%rsp), %rdi
movl 0x14(%rsp), %esi
callq 0x6940
movl $0x1, 0x24(%rsp)
movl 0x24(%rsp), %eax
addq $0x28, %rsp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/stetre[P]moonassimp/src/material.c
// Function: Texture_blend
static int Texture_blend(lua_State *L)
    {
    material_t *material = checkmaterial(L, 1);
    unsigned int type = checktexturetype(L, 2);
    unsigned int index = checkindex(L, 3);
    return GetFloat(L, material, _AI_MATKEY_TEXBLEND_BASE, type, index);
    }

// Assembly:
subq $0x18, %rsp
movq %rdi, 0x10(%rsp)
movq 0x10(%rsp), %rdi
movl $0x1, %esi
leaq 0xa3a6(%rip), %rdx      # 0x16e90
callq 0x6700
movq %rax, 0x8(%rsp)
movq 0x10(%rsp), %rdi
movl $0x2, %esi
callq 0x6760
movl %eax, 0x4(%rsp)
movq 0x10(%rsp), %rdi
movl $0x3, %esi
callq 0x6320
movl %eax, (%rsp)
movq 0x10(%rsp), %rdi
movq 0x8(%rsp), %rsi
movl 0x4(%rsp), %ecx
movl (%rsp), %r8d
leaq 0xa5d4(%rip), %rdx      # 0x17106
callq 0xda30
addq $0x18, %rsp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/stetre[P]moonassimp/src/material.c
// Function: Texture_mapmode
static int Texture_mapmode(lua_State *L)
    {
    int val;
    material_t *material = checkmaterial(L, 1);
    unsigned int type = checktexturetype(L, 2);
    unsigned int index = checkindex(L, 3);
    if(aiGetMaterialIntegerArray(material, _AI_MATKEY_MAPPINGMODE_U_BASE, type, index, &val, NULL) 
        != AI_SUCCESS) lua_pushnil(L); else pushtexturemapmode(L, val);
    if(aiGetMaterialIntegerArray(material, _AI_MATKEY_MAPPINGMODE_V_BASE, type, index, &val, NULL) 
        != AI_SUCCESS) lua_pushnil(L); else pushtexturemapmode(L, val);
    return 2;
    }

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x20(%rsp)
movq 0x20(%rsp), %rdi
movl $0x1, %esi
leaq 0xa336(%rip), %rdx      # 0x16e90
callq 0x6700
movq %rax, 0x10(%rsp)
movq 0x20(%rsp), %rdi
movl $0x2, %esi
callq 0x6760
movl %eax, 0xc(%rsp)
movq 0x20(%rsp), %rdi
movl $0x3, %esi
callq 0x6320
movl %eax, 0x8(%rsp)
movq 0x10(%rsp), %rdi
movl 0xc(%rsp), %edx
movl 0x8(%rsp), %ecx
leaq 0xa573(%rip), %rsi      # 0x17111
leaq 0x1c(%rsp), %r8
xorl %eax, %eax
movl %eax, %r9d
callq 0x6290
cmpl $0x0, %eax
je 0xcbbe
movq 0x20(%rsp), %rdi
callq 0x6810
jmp 0xcbcc
movq 0x20(%rsp), %rdi
movl 0x1c(%rsp), %esi
callq 0x66c0
movq 0x10(%rsp), %rdi
movl 0xc(%rsp), %edx
movl 0x8(%rsp), %ecx
leaq 0xa53f(%rip), %rsi      # 0x1711f
leaq 0x1c(%rsp), %r8
xorl %eax, %eax
movl %eax, %r9d
callq 0x6290
cmpl $0x0, %eax
je 0xcc00
movq 0x20(%rsp), %rdi
callq 0x6810
jmp 0xcc0e
movq 0x20(%rsp), %rdi
movl 0x1c(%rsp), %esi
callq 0x66c0
movl $0x2, %eax
addq $0x28, %rsp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/stetre[P]moonassimp/src/material.c
// Function: Texture_axis
static int Texture_axis(lua_State *L)
    {
    vector3_t vec;
    material_t *material = checkmaterial(L, 1);
    unsigned int type = checktexturetype(L, 2);
    unsigned int index = checkindex(L, 3);
    unsigned int max = sizeof(vector3_t);
    if(AI_SUCCESS != 
        aiGetMaterialFloatArray(material, _AI_MATKEY_TEXMAP_AXIS_BASE, type, index,
        (float*)&vec, &max) || sizeof(vector3_t) != max) return 0;
    return pushvector3(L, &vec, 0);
    }

// Assembly:
subq $0x38, %rsp
movq %rdi, 0x28(%rsp)
movq 0x28(%rsp), %rdi
movl $0x1, %esi
leaq 0xa256(%rip), %rdx      # 0x16e90
callq 0x6700
movq %rax, 0x10(%rsp)
movq 0x28(%rsp), %rdi
movl $0x2, %esi
callq 0x6760
movl %eax, 0xc(%rsp)
movq 0x28(%rsp), %rdi
movl $0x3, %esi
callq 0x6320
movl %eax, 0x8(%rsp)
movl $0xc, 0x4(%rsp)
movq 0x10(%rsp), %rdi
movl 0xc(%rsp), %edx
movl 0x8(%rsp), %ecx
leaq 0xa4a7(%rip), %rsi      # 0x1712d
leaq 0x1c(%rsp), %r8
leaq 0x4(%rsp), %r9
callq 0x67d0
movl %eax, %ecx
xorl %eax, %eax
cmpl %ecx, %eax
jne 0xccad
movl 0x4(%rsp), %eax
movl %eax, %ecx
movl $0xc, %eax
cmpq %rcx, %rax
je 0xccb7
movl $0x0, 0x34(%rsp)
jmp 0xcccc
movq 0x28(%rsp), %rdi
leaq 0x1c(%rsp), %rsi
xorl %edx, %edx
callq 0x6610
movl %eax, 0x34(%rsp)
movl 0x34(%rsp), %eax
addq $0x38, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/stetre[P]moonassimp/src/material.c
// Function: Texture_uvtranslation
static int Texture_uvtranslation(lua_State *L)
    {
    struct aiUVTransform trafo;
    material_t *material = checkmaterial(L, 1);
    unsigned int type = checktexturetype(L, 2);
    unsigned int index = checkindex(L, 3);
    unsigned int max = sizeof(struct aiUVTransform);
    if(AI_SUCCESS != 
        aiGetMaterialFloatArray(material, _AI_MATKEY_UVTRANSFORM_BASE, type, index,
        (float*)&trafo, &max) || sizeof(struct aiUVTransform) != max) return 0;
    return pushvector2(L, &(trafo.mTranslation), 0);
    }

// Assembly:
subq $0x48, %rsp
movq %rdi, 0x38(%rsp)
movq 0x38(%rsp), %rdi
movl $0x1, %esi
leaq 0xa196(%rip), %rdx      # 0x16e90
callq 0x6700
movq %rax, 0x18(%rsp)
movq 0x38(%rsp), %rdi
movl $0x2, %esi
callq 0x6760
movl %eax, 0x14(%rsp)
movq 0x38(%rsp), %rdi
movl $0x3, %esi
callq 0x6320
movl %eax, 0x10(%rsp)
movl $0x14, 0xc(%rsp)
movq 0x18(%rsp), %rdi
movl 0x14(%rsp), %edx
movl 0x10(%rsp), %ecx
leaq 0xa3f4(%rip), %rsi      # 0x1713a
leaq 0x24(%rsp), %r8
leaq 0xc(%rsp), %r9
callq 0x67d0
movl %eax, %ecx
xorl %eax, %eax
cmpl %ecx, %eax
jne 0xcd6d
movl 0xc(%rsp), %eax
movl %eax, %ecx
movl $0x14, %eax
cmpq %rcx, %rax
je 0xcd77
movl $0x0, 0x44(%rsp)
jmp 0xcd8c
movq 0x38(%rsp), %rdi
leaq 0x24(%rsp), %rsi
xorl %edx, %edx
callq 0x6170
movl %eax, 0x44(%rsp)
movl 0x44(%rsp), %eax
addq $0x48, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/stetre[P]moonassimp/src/material.c
// Function: Texture_uvscaling
static int Texture_uvscaling(lua_State *L)
    {
    struct aiUVTransform trafo;
    material_t *material = checkmaterial(L, 1);
    unsigned int type = checktexturetype(L, 2);
    unsigned int index = checkindex(L, 3);
    unsigned int max = sizeof(struct aiUVTransform);
    if(AI_SUCCESS != 
        aiGetMaterialFloatArray(material, _AI_MATKEY_UVTRANSFORM_BASE, type, index,
        (float*)&trafo, &max) || sizeof(struct aiUVTransform) != max) return 0;
    return pushvector2(L, &(trafo.mScaling), 0);
    }

// Assembly:
subq $0x48, %rsp
movq %rdi, 0x38(%rsp)
movq 0x38(%rsp), %rdi
movl $0x1, %esi
leaq 0xa0d6(%rip), %rdx      # 0x16e90
callq 0x6700
movq %rax, 0x18(%rsp)
movq 0x38(%rsp), %rdi
movl $0x2, %esi
callq 0x6760
movl %eax, 0x14(%rsp)
movq 0x38(%rsp), %rdi
movl $0x3, %esi
callq 0x6320
movl %eax, 0x10(%rsp)
movl $0x14, 0xc(%rsp)
movq 0x18(%rsp), %rdi
movl 0x14(%rsp), %edx
movl 0x10(%rsp), %ecx
leaq 0xa334(%rip), %rsi      # 0x1713a
leaq 0x24(%rsp), %r8
leaq 0xc(%rsp), %r9
callq 0x67d0
movl %eax, %ecx
xorl %eax, %eax
cmpl %ecx, %eax
jne 0xce2d
movl 0xc(%rsp), %eax
movl %eax, %ecx
movl $0x14, %eax
cmpq %rcx, %rax
je 0xce37
movl $0x0, 0x44(%rsp)
jmp 0xce50
movq 0x38(%rsp), %rdi
leaq 0x24(%rsp), %rsi
addq $0x8, %rsi
xorl %edx, %edx
callq 0x6170
movl %eax, 0x44(%rsp)
movl 0x44(%rsp), %eax
addq $0x48, %rsp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/stetre[P]moonassimp/src/material.c
// Function: Texture_uvrotation
static int Texture_uvrotation(lua_State *L)
    {
    struct aiUVTransform trafo;
    material_t *material = checkmaterial(L, 1);
    unsigned int type = checktexturetype(L, 2);
    unsigned int index = checkindex(L, 3);
    unsigned int max = sizeof(struct aiUVTransform);
    if(AI_SUCCESS != 
        aiGetMaterialFloatArray(material, _AI_MATKEY_UVTRANSFORM_BASE, type, index,
        (float*)&trafo, &max) || sizeof(struct aiUVTransform) != max) return 0;
    lua_pushnumber(L, trafo.mRotation);
    return 1;
    }

// Assembly:
subq $0x48, %rsp
movq %rdi, 0x38(%rsp)
movq 0x38(%rsp), %rdi
movl $0x1, %esi
leaq 0xa016(%rip), %rdx      # 0x16e90
callq 0x6700
movq %rax, 0x18(%rsp)
movq 0x38(%rsp), %rdi
movl $0x2, %esi
callq 0x6760
movl %eax, 0x14(%rsp)
movq 0x38(%rsp), %rdi
movl $0x3, %esi
callq 0x6320
movl %eax, 0x10(%rsp)
movl $0x14, 0xc(%rsp)
movq 0x18(%rsp), %rdi
movl 0x14(%rsp), %edx
movl 0x10(%rsp), %ecx
leaq 0xa274(%rip), %rsi      # 0x1713a
leaq 0x24(%rsp), %r8
leaq 0xc(%rsp), %r9
callq 0x67d0
movl %eax, %ecx
xorl %eax, %eax
cmpl %ecx, %eax
jne 0xceed
movl 0xc(%rsp), %eax
movl %eax, %ecx
movl $0x14, %eax
cmpq %rcx, %rax
je 0xcef7
movl $0x0, 0x44(%rsp)
jmp 0xcf13
movq 0x38(%rsp), %rdi
movss 0x34(%rsp), %xmm0
cvtss2sd %xmm0, %xmm0
callq 0x6500
movl $0x1, 0x44(%rsp)
movl 0x44(%rsp), %eax
addq $0x48, %rsp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/stetre[P]moonassimp/src/material.c
// Function: Texture_flags
static int Texture_flags(lua_State *L)
    {
    int val;
    material_t *material = checkmaterial(L, 1);
    unsigned int type = checktexturetype(L, 2);
    unsigned int index = checkindex(L, 3);
    if(aiGetMaterialIntegerArray(material, _AI_MATKEY_TEXFLAGS_BASE, type, index, &val, NULL) 
        != AI_SUCCESS) val = 0;
    return pushtextureflags(L, val, 1);
    }

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x20(%rsp)
movq 0x20(%rsp), %rdi
movl $0x1, %esi
leaq 0x9f56(%rip), %rdx      # 0x16e90
callq 0x6700
movq %rax, 0x10(%rsp)
movq 0x20(%rsp), %rdi
movl $0x2, %esi
callq 0x6760
movl %eax, 0xc(%rsp)
movq 0x20(%rsp), %rdi
movl $0x3, %esi
callq 0x6320
movl %eax, 0x8(%rsp)
movq 0x10(%rsp), %rdi
movl 0xc(%rsp), %edx
movl 0x8(%rsp), %ecx
leaq 0xa1c9(%rip), %rsi      # 0x17147
leaq 0x1c(%rsp), %r8
xorl %eax, %eax
movl %eax, %r9d
callq 0x6290
cmpl $0x0, %eax
je 0xcf9a
movl $0x0, 0x1c(%rsp)
movq 0x20(%rsp), %rdi
movl 0x1c(%rsp), %esi
movl $0x1, %edx
callq 0x6200
addq $0x28, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/stetre[P]moonassimp/src/material.c
// Function: GetString
static int GetString(lua_State *L, material_t *material, const char* pKey, unsigned int type, unsigned int index)
    {
    aistring_t s;
    if(!material) material = checkmaterial(L, 1);
    s.data[0]='\0';
    s.length = 0;
    if(aiGetMaterialString(material, pKey, type, index, &s) != AI_SUCCESS) return 0;
    lua_pushlstring(L, s.data, s.length);
    return 1;
    }

// Assembly:
subq $0x438, %rsp            # imm = 0x438
movq %rdi, 0x428(%rsp)
movq %rsi, 0x420(%rsp)
movq %rdx, 0x418(%rsp)
movl %ecx, 0x414(%rsp)
movl %r8d, 0x410(%rsp)
cmpq $0x0, 0x420(%rsp)
jne 0xd91a
movq 0x428(%rsp), %rdi
movl $0x1, %esi
leaq 0x9583(%rip), %rdx      # 0x16e90
callq 0x6700
movq %rax, 0x420(%rsp)
movb $0x0, 0x10(%rsp)
movl $0x0, 0xc(%rsp)
movq 0x420(%rsp), %rdi
movq 0x418(%rsp), %rsi
movl 0x414(%rsp), %edx
movl 0x410(%rsp), %ecx
leaq 0xc(%rsp), %r8
callq 0x6460
cmpl $0x0, %eax
je 0xd961
movl $0x0, 0x434(%rsp)
jmp 0xd988
movq 0x428(%rsp), %rdi
leaq 0xc(%rsp), %rsi
addq $0x4, %rsi
movl 0xc(%rsp), %eax
movl %eax, %edx
callq 0x6680
movl $0x1, 0x434(%rsp)
movl 0x434(%rsp), %eax
addq $0x438, %rsp            # imm = 0x438
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/stetre[P]moonassimp/src/material.c
// Function: GetBoolean
static int GetBoolean(lua_State *L, material_t *material, const char* pKey, unsigned int type, unsigned int index)
    {
    int val;
    if(!material) material = checkmaterial(L, 1);
    if(aiGetMaterialIntegerArray(material, pKey, type, index, &val, NULL) != AI_SUCCESS) return 0;
    lua_pushboolean(L, val);
    return 1;
    }

// Assembly:
subq $0x38, %rsp
movq %rdi, 0x28(%rsp)
movq %rsi, 0x20(%rsp)
movq %rdx, 0x18(%rsp)
movl %ecx, 0x14(%rsp)
movl %r8d, 0x10(%rsp)
cmpq $0x0, 0x20(%rsp)
jne 0xd9df
movq 0x28(%rsp), %rdi
movl $0x1, %esi
leaq 0x94bb(%rip), %rdx      # 0x16e90
callq 0x6700
movq %rax, 0x20(%rsp)
movq 0x20(%rsp), %rdi
movq 0x18(%rsp), %rsi
movl 0x14(%rsp), %edx
movl 0x10(%rsp), %ecx
leaq 0xc(%rsp), %r8
xorl %eax, %eax
movl %eax, %r9d
callq 0x6290
cmpl $0x0, %eax
je 0xda0f
movl $0x0, 0x34(%rsp)
jmp 0xda25
movq 0x28(%rsp), %rdi
movl 0xc(%rsp), %esi
callq 0x6540
movl $0x1, 0x34(%rsp)
movl 0x34(%rsp), %eax
addq $0x38, %rsp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/stetre[P]moonassimp/src/material.c
// Function: GetFloat
static int GetFloat(lua_State *L, material_t *material, const char* pKey, unsigned int type, unsigned int index)
    {
    float val;
    if(!material) material = checkmaterial(L, 1);
    if(aiGetMaterialFloatArray(material, pKey, type, index, &val, NULL) != AI_SUCCESS) return 0;
    lua_pushnumber(L, val);
    return 1;
    }

// Assembly:
subq $0x38, %rsp
movq %rdi, 0x28(%rsp)
movq %rsi, 0x20(%rsp)
movq %rdx, 0x18(%rsp)
movl %ecx, 0x14(%rsp)
movl %r8d, 0x10(%rsp)
cmpq $0x0, 0x20(%rsp)
jne 0xda6f
movq 0x28(%rsp), %rdi
movl $0x1, %esi
leaq 0x942b(%rip), %rdx      # 0x16e90
callq 0x6700
movq %rax, 0x20(%rsp)
movq 0x20(%rsp), %rdi
movq 0x18(%rsp), %rsi
movl 0x14(%rsp), %edx
movl 0x10(%rsp), %ecx
leaq 0xc(%rsp), %r8
xorl %eax, %eax
movl %eax, %r9d
callq 0x67d0
cmpl $0x0, %eax
je 0xda9f
movl $0x0, 0x34(%rsp)
jmp 0xdabb
movq 0x28(%rsp), %rdi
movss 0xc(%rsp), %xmm0
cvtss2sd %xmm0, %xmm0
callq 0x6500
movl $0x1, 0x34(%rsp)
movl 0x34(%rsp), %eax
addq $0x38, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/stetre[P]moonassimp/src/mesh.c
// Function: moonassimp_freemesh
int freemesh(lua_State *L, mesh_t *mesh)
    {
    unsigned int i;
    if(mesh->mFaces != NULL && mesh->mNumFaces > 0)
        {
        for(i = 0; i < mesh->mNumFaces; i++)
            freeface(L, &(mesh->mFaces[i]));
        TRACE_DELETE_N(i, "faces");
        }
    if(mesh->mBones != NULL && mesh->mNumBones > 0)
        {
        for(i = 0; i < mesh->mNumBones; i++)
            freebone(L, mesh->mBones[i]);
        TRACE_DELETE_N(i, "bones");
        }
    if(mesh->mAnimMeshes != NULL && mesh->mNumAnimMeshes > 0)
        {
        for(i = 0; i < mesh->mNumAnimMeshes; i++)
            freeanimmesh(L, mesh->mAnimMeshes[i]);
        TRACE_DELETE_N(i, "animmeshes");
        }
    TRACE_DELETE(mesh, "mesh");
    freeuserdata(L, mesh);
    return 0;
    }

// Assembly:
subq $0x18, %rsp
movq %rdi, 0x10(%rsp)
movq %rsi, 0x8(%rsp)
movq 0x8(%rsp), %rax
cmpq $0x0, 0xd0(%rax)
je 0xe1f2
movq 0x8(%rsp), %rax
cmpl $0x0, 0x8(%rax)
jbe 0xe1f2
movl $0x0, 0x4(%rsp)
movl 0x4(%rsp), %eax
movq 0x8(%rsp), %rcx
cmpl 0x8(%rcx), %eax
jae 0xe1dc
movq 0x10(%rsp), %rdi
movq 0x8(%rsp), %rax
movq 0xd0(%rax), %rsi
movl 0x4(%rsp), %eax
shlq $0x4, %rax
addq %rax, %rsi
callq 0x69b0
movl 0x4(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x4(%rsp)
jmp 0xe1a0
jmp 0xe1de
movl 0x4(%rsp), %esi
leaq 0x9001(%rip), %rdi      # 0x171ea
movb $0x0, %al
callq 0x6720
jmp 0xe1f2
movq 0x8(%rsp), %rax
cmpq $0x0, 0xe0(%rax)
je 0xe269
movq 0x8(%rsp), %rax
cmpl $0x0, 0xd8(%rax)
jbe 0xe269
movl $0x0, 0x4(%rsp)
movl 0x4(%rsp), %eax
movq 0x8(%rsp), %rcx
cmpl 0xd8(%rcx), %eax
jae 0xe253
movq 0x10(%rsp), %rdi
movq 0x8(%rsp), %rax
movq 0xe0(%rax), %rax
movl 0x4(%rsp), %ecx
movq (%rax,%rcx,8), %rsi
callq 0x67e0
movl 0x4(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x4(%rsp)
jmp 0xe217
jmp 0xe255
movl 0x4(%rsp), %esi
leaq 0x8f9b(%rip), %rdi      # 0x171fb
movb $0x0, %al
callq 0x6720
jmp 0xe269
movq 0x8(%rsp), %rax
cmpq $0x0, 0x4f8(%rax)
je 0xe2e0
movq 0x8(%rsp), %rax
cmpl $0x0, 0x4f0(%rax)
jbe 0xe2e0
movl $0x0, 0x4(%rsp)
movl 0x4(%rsp), %eax
movq 0x8(%rsp), %rcx
cmpl 0x4f0(%rcx), %eax
jae 0xe2ca
movq 0x10(%rsp), %rdi
movq 0x8(%rsp), %rax
movq 0x4f8(%rax), %rax
movl 0x4(%rsp), %ecx
movq (%rax,%rcx,8), %rsi
callq 0x6530
movl 0x4(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x4(%rsp)
jmp 0xe28e
jmp 0xe2cc
movl 0x4(%rsp), %esi
leaq 0x8f35(%rip), %rdi      # 0x1720c
movb $0x0, %al
callq 0x6720
jmp 0xe2e0
jmp 0xe2e2
movq 0x8(%rsp), %rsi
leaq 0x8f34(%rip), %rdi      # 0x17222
movb $0x0, %al
callq 0x6720
movq 0x10(%rsp), %rdi
movq 0x8(%rsp), %rsi
callq 0x6400
xorl %eax, %eax
addq $0x18, %rsp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/stetre[P]moonassimp/src/mesh.c
// Function: Name
static int Name(lua_State *L)
    {
    mesh_t *mesh = checkmesh(L, 1);
    if(mesh->mName.length == 0)
        return 0;
    lua_pushstring(L, mesh->mName.data);
    return 1;
    }

// Assembly:
subq $0x18, %rsp
movq %rdi, 0x8(%rsp)
movq 0x8(%rsp), %rdi
movl $0x1, %esi
leaq 0x8e70(%rip), %rdx      # 0x171da
callq 0x6700
movq %rax, (%rsp)
movq (%rsp), %rax
cmpl $0x0, 0xec(%rax)
jne 0xe38a
movl $0x0, 0x14(%rsp)
jmp 0xe3ab
movq 0x8(%rsp), %rdi
movq (%rsp), %rsi
addq $0xec, %rsi
addq $0x4, %rsi
callq 0x6930
movl $0x1, 0x14(%rsp)
movl 0x14(%rsp), %eax
addq $0x18, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/stetre[P]moonassimp/src/mesh.c
// Function: HasTangents
static int HasTangents(lua_State *L) /* and bitangents */
    {
    mesh_t *mesh = checkmesh(L, 1);
    lua_pushboolean(L, mesh->mTangents != NULL && mesh->mBitangents != NULL &&
                        mesh->mNumVertices > 0);
    return 1;
    }

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x20(%rsp)
movq 0x20(%rsp), %rdi
movl $0x1, %esi
leaq 0x8c90(%rip), %rdx      # 0x171da
callq 0x6700
movq %rax, 0x18(%rsp)
movq 0x20(%rsp), %rax
movq %rax, 0x8(%rsp)
movq 0x18(%rsp), %rcx
xorl %eax, %eax
cmpq $0x0, 0x20(%rcx)
movb %al, 0x17(%rsp)
je 0xe592
movq 0x18(%rsp), %rcx
xorl %eax, %eax
cmpq $0x0, 0x28(%rcx)
movb %al, 0x17(%rsp)
je 0xe592
movq 0x18(%rsp), %rax
cmpl $0x0, 0x4(%rax)
seta %al
movb %al, 0x17(%rsp)
movq 0x8(%rsp), %rdi
movb 0x17(%rsp), %al
andb $0x1, %al
movzbl %al, %esi
callq 0x6540
movl $0x1, %eax
addq $0x28, %rsp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/stetre[P]moonassimp/src/mesh.c
// Function: HasColors
static int HasColors(lua_State *L)
    {
    mesh_t *mesh = checkmesh(L, 1);
    unsigned int i = checkindex(L, 2);
    if( i >= AI_MAX_NUMBER_OF_COLOR_SETS)
        lua_pushboolean(L, 0);
    else
        lua_pushboolean(L, mesh->mColors[i] != NULL && mesh->mNumVertices > 0);
    return 1;
    }

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x20(%rsp)
movq 0x20(%rsp), %rdi
movl $0x1, %esi
leaq 0x8c10(%rip), %rdx      # 0x171da
callq 0x6700
movq %rax, 0x18(%rsp)
movq 0x20(%rsp), %rdi
movl $0x2, %esi
callq 0x6320
movl %eax, 0x14(%rsp)
cmpl $0x8, 0x14(%rsp)
jb 0xe5fc
movq 0x20(%rsp), %rdi
xorl %esi, %esi
callq 0x6540
jmp 0xe642
movq 0x20(%rsp), %rax
movq %rax, 0x8(%rsp)
movq 0x18(%rsp), %rcx
movl 0x14(%rsp), %eax
movl %eax, %edx
xorl %eax, %eax
cmpq $0x0, 0x30(%rcx,%rdx,8)
movb %al, 0x13(%rsp)
je 0xe62f
movq 0x18(%rsp), %rax
cmpl $0x0, 0x4(%rax)
seta %al
movb %al, 0x13(%rsp)
movq 0x8(%rsp), %rdi
movb 0x13(%rsp), %al
andb $0x1, %al
movzbl %al, %esi
callq 0x6540
movl $0x1, %eax
addq $0x28, %rsp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/stetre[P]moonassimp/src/mesh.c
// Function: HasTextureCoords
static int HasTextureCoords(lua_State *L)
    {
    mesh_t *mesh = checkmesh(L, 1);
    unsigned int i = checkindex(L, 2);
    if( i >= AI_MAX_NUMBER_OF_TEXTURECOORDS)
        lua_pushboolean(L, 0);
    else
        lua_pushboolean(L, mesh->mTextureCoords[i] != NULL && mesh->mNumVertices > 0);
    return 1;
    }

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x20(%rsp)
movq 0x20(%rsp), %rdi
movl $0x1, %esi
leaq 0x8b70(%rip), %rdx      # 0x171da
callq 0x6700
movq %rax, 0x18(%rsp)
movq 0x20(%rsp), %rdi
movl $0x2, %esi
callq 0x6320
movl %eax, 0x14(%rsp)
cmpl $0x8, 0x14(%rsp)
jb 0xe69c
movq 0x20(%rsp), %rdi
xorl %esi, %esi
callq 0x6540
jmp 0xe6e2
movq 0x20(%rsp), %rax
movq %rax, 0x8(%rsp)
movq 0x18(%rsp), %rcx
movl 0x14(%rsp), %eax
movl %eax, %edx
xorl %eax, %eax
cmpq $0x0, 0x70(%rcx,%rdx,8)
movb %al, 0x13(%rsp)
je 0xe6cf
movq 0x18(%rsp), %rax
cmpl $0x0, 0x4(%rax)
seta %al
movb %al, 0x13(%rsp)
movq 0x8(%rsp), %rdi
movb 0x13(%rsp), %al
andb $0x1, %al
movzbl %al, %esi
callq 0x6540
movl $0x1, %eax
addq $0x28, %rsp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/stetre[P]moonassimp/src/mesh.c
// Function: NumTextureCoordsChannels
static int NumTextureCoordsChannels(lua_State *L)
    {
    unsigned int n = 0;
    mesh_t *mesh = checkmesh(L, 1);
    while (n < AI_MAX_NUMBER_OF_TEXTURECOORDS && mesh->mTextureCoords[n]) ++n;
    lua_pushinteger(L, n);
    return 1;
    }

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x20(%rsp)
movl $0x0, 0x1c(%rsp)
movq 0x20(%rsp), %rdi
movl $0x1, %esi
leaq 0x8868(%rip), %rdx      # 0x171da
callq 0x6700
movq %rax, 0x10(%rsp)
xorl %eax, %eax
cmpl $0x8, 0x1c(%rsp)
movb %al, 0xf(%rsp)
jae 0xe99f
movq 0x10(%rsp), %rax
movl 0x1c(%rsp), %ecx
cmpq $0x0, 0x70(%rax,%rcx,8)
setne %al
movb %al, 0xf(%rsp)
movb 0xf(%rsp), %al
testb $0x1, %al
jne 0xe9a9
jmp 0xe9b6
movl 0x1c(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x1c(%rsp)
jmp 0xe97c
movq 0x20(%rsp), %rdi
movl 0x1c(%rsp), %eax
movl %eax, %esi
callq 0x6310
movl $0x1, %eax
addq $0x28, %rsp
retq
// File: /workspace/github_c_makefile_star2_O0/stetre[P]moonassimp/src/mesh.c
// Function: NumTextureCoordsComponents
static int NumTextureCoordsComponents(lua_State *L)
    {
    mesh_t *mesh = checkmesh(L, 1);
    unsigned int chan = checkindex(L, 2);
    if( chan >= AI_MAX_NUMBER_OF_TEXTURECOORDS || mesh->mTextureCoords[chan] == NULL)
        return luaL_argerror(L, 2, "out of range");
    lua_pushinteger(L, mesh->mNumUVComponents[chan]);
    return 1;
    }

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x18(%rsp)
movq 0x18(%rsp), %rdi
movl $0x1, %esi
leaq 0x87f0(%rip), %rdx      # 0x171da
callq 0x6700
movq %rax, 0x10(%rsp)
movq 0x18(%rsp), %rdi
movl $0x2, %esi
callq 0x6320
movl %eax, 0xc(%rsp)
cmpl $0x8, 0xc(%rsp)
jae 0xea1f
movq 0x10(%rsp), %rax
movl 0xc(%rsp), %ecx
cmpq $0x0, 0x70(%rax,%rcx,8)
jne 0xea3b
movq 0x18(%rsp), %rdi
movl $0x2, %esi
leaq 0x7779(%rip), %rdx      # 0x161a9
callq 0x61c0
movl %eax, 0x24(%rsp)
jmp 0xea5f
movq 0x18(%rsp), %rdi
movq 0x10(%rsp), %rax
movl 0xc(%rsp), %ecx
movl 0xb0(%rax,%rcx,4), %eax
movl %eax, %esi
callq 0x6310
movl $0x1, 0x24(%rsp)
movl 0x24(%rsp), %eax
addq $0x28, %rsp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/stetre[P]moonassimp/src/mesh.c
// Function: NumColorChannels
static int NumColorChannels(lua_State *L)
    {
    unsigned int n = 0;
    mesh_t *mesh = checkmesh(L, 1);
    while (n < AI_MAX_NUMBER_OF_COLOR_SETS && mesh->mColors[n]) ++n;
    lua_pushinteger(L, n);
    return 1;
    }

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x20(%rsp)
movl $0x0, 0x1c(%rsp)
movq 0x20(%rsp), %rdi
movl $0x1, %esi
leaq 0x8748(%rip), %rdx      # 0x171da
callq 0x6700
movq %rax, 0x10(%rsp)
xorl %eax, %eax
cmpl $0x8, 0x1c(%rsp)
movb %al, 0xf(%rsp)
jae 0xeabf
movq 0x10(%rsp), %rax
movl 0x1c(%rsp), %ecx
cmpq $0x0, 0x30(%rax,%rcx,8)
setne %al
movb %al, 0xf(%rsp)
movb 0xf(%rsp), %al
testb $0x1, %al
jne 0xeac9
jmp 0xead6
movl 0x1c(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x1c(%rsp)
jmp 0xea9c
movq 0x20(%rsp), %rdi
movl 0x1c(%rsp), %eax
movl %eax, %esi
callq 0x6310
movl $0x1, %eax
addq $0x28, %rsp
retq
// File: /workspace/github_c_makefile_star2_O0/stetre[P]moonassimp/src/mesh.c
// Function: Color
static int Color(lua_State *L)
    {
    mesh_t *mesh = checkmesh(L, 1);
    unsigned int chan = checkindex(L, 2);
    unsigned int i = checkindex(L, 3);
    if( chan >= AI_MAX_NUMBER_OF_COLOR_SETS || mesh->mColors[chan] == NULL)
        return luaL_argerror(L, 2, "out of range");
    if( i >= mesh->mNumVertices)
        return luaL_argerror(L, 3, "out of range");
    return pushcolor4(L, &(mesh->mColors[chan][i]), 0);
    }

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x18(%rsp)
movq 0x18(%rsp), %rdi
movl $0x1, %esi
leaq 0x8150(%rip), %rdx      # 0x171da
callq 0x6700
movq %rax, 0x10(%rsp)
movq 0x18(%rsp), %rdi
movl $0x2, %esi
callq 0x6320
movl %eax, 0xc(%rsp)
movq 0x18(%rsp), %rdi
movl $0x3, %esi
callq 0x6320
movl %eax, 0x8(%rsp)
cmpl $0x8, 0xc(%rsp)
jae 0xf0d2
movq 0x10(%rsp), %rax
movl 0xc(%rsp), %ecx
cmpq $0x0, 0x30(%rax,%rcx,8)
jne 0xf0ee
movq 0x18(%rsp), %rdi
movl $0x2, %esi
leaq 0x70c6(%rip), %rdx      # 0x161a9
callq 0x61c0
movl %eax, 0x24(%rsp)
jmp 0xf141
movl 0x8(%rsp), %eax
movq 0x10(%rsp), %rcx
cmpl 0x4(%rcx), %eax
jb 0xf118
movq 0x18(%rsp), %rdi
movl $0x3, %esi
leaq 0x709c(%rip), %rdx      # 0x161a9
callq 0x61c0
movl %eax, 0x24(%rsp)
jmp 0xf141
movq 0x18(%rsp), %rdi
movq 0x10(%rsp), %rax
movl 0xc(%rsp), %ecx
movq 0x30(%rax,%rcx,8), %rsi
movl 0x8(%rsp), %eax
shlq $0x4, %rax
addq %rax, %rsi
xorl %edx, %edx
callq 0x62d0
movl %eax, 0x24(%rsp)
movl 0x24(%rsp), %eax
addq $0x28, %rsp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/stetre[P]moonassimp/src/mesh.c
// Function: AllColors
static int AllColors(lua_State *L)
    {
    mesh_t *mesh = checkmesh(L, 1);
    unsigned int chan;
    unsigned int i;
    lua_newtable(L);
    for(chan = 0; chan < AI_MAX_NUMBER_OF_COLOR_SETS; chan++)
        {
        if(mesh->mColors[chan] == NULL) break;
        lua_newtable(L);
        for(i=0; i < mesh->mNumVertices; i++)
            {
            pushcolor4(L, &(mesh->mColors[chan][i]), 1);
            lua_rawseti(L, -2, i+1);
            }
        lua_rawseti(L, -2, chan+1);
        }
    return 1;
    }

// Assembly:
subq $0x18, %rsp
movq %rdi, 0x10(%rsp)
movq 0x10(%rsp), %rdi
movl $0x1, %esi
leaq 0x8070(%rip), %rdx      # 0x171da
callq 0x6700
movq %rax, 0x8(%rsp)
movq 0x10(%rsp), %rdi
xorl %edx, %edx
movl %edx, %esi
callq 0x6250
movl $0x0, 0x4(%rsp)
cmpl $0x8, 0x4(%rsp)
jae 0xf242
movq 0x8(%rsp), %rax
movl 0x4(%rsp), %ecx
cmpq $0x0, 0x30(%rax,%rcx,8)
jne 0xf1ab
jmp 0xf242
movq 0x10(%rsp), %rdi
xorl %edx, %edx
movl %edx, %esi
callq 0x6250
movl $0x0, (%rsp)
movl (%rsp), %eax
movq 0x8(%rsp), %rcx
cmpl 0x4(%rcx), %eax
jae 0xf218
movq 0x10(%rsp), %rdi
movq 0x8(%rsp), %rax
movl 0x4(%rsp), %ecx
movq 0x30(%rax,%rcx,8), %rsi
movl (%rsp), %eax
shlq $0x4, %rax
addq %rax, %rsi
movl $0x1, %edx
callq 0x62d0
movq 0x10(%rsp), %rdi
movl (%rsp), %eax
addl $0x1, %eax
movl %eax, %eax
movl %eax, %edx
movl $0xfffffffe, %esi       # imm = 0xFFFFFFFE
callq 0x6470
movl (%rsp), %eax
addl $0x1, %eax
movl %eax, (%rsp)
jmp 0xf1c0
movq 0x10(%rsp), %rdi
movl 0x4(%rsp), %eax
addl $0x1, %eax
movl %eax, %eax
movl %eax, %edx
movl $0xfffffffe, %esi       # imm = 0xFFFFFFFE
callq 0x6470
movl 0x4(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x4(%rsp)
jmp 0xf18a
movl $0x1, %eax
addq $0x18, %rsp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/stetre[P]moonassimp/src/mesh.c
// Function: TextureCoords
static int TextureCoords(lua_State *L)
    {
    vector3_t *coords;
    vector2_t vec2;
    unsigned int ncomp;
    mesh_t *mesh = checkmesh(L, 1);
    unsigned int chan = checkindex(L, 2);
    unsigned int i = checkindex(L, 3);
    if( chan >= AI_MAX_NUMBER_OF_TEXTURECOORDS || mesh->mTextureCoords[chan] == NULL)
        return luaL_argerror(L, 2, "out of range");
    if( i >= mesh->mNumVertices)
        return luaL_argerror(L, 3, "out of range");
    ncomp = mesh->mNumUVComponents[chan]; /* no. of components */
    coords =  &(mesh->mTextureCoords[chan][i]);
    if(ncomp == 3)
        return pushvector3(L, coords, 0);
    if(ncomp == 2)
        {
        vec2.x = coords->x;
        vec2.y = coords->y;
        return pushvector2(L, &vec2, 0);
        }
    if(ncomp == 1)
        {
        lua_pushnumber(L, coords->x);
        return 1;
        }
    return unexpected(L); /* 4 components are currently not supported */
    }

// Assembly:
subq $0x38, %rsp
movq %rdi, 0x28(%rsp)
movq 0x28(%rsp), %rdi
movl $0x1, %esi
leaq 0x7f70(%rip), %rdx      # 0x171da
callq 0x6700
movq %rax, 0x8(%rsp)
movq 0x28(%rsp), %rdi
movl $0x2, %esi
callq 0x6320
movl %eax, 0x4(%rsp)
movq 0x28(%rsp), %rdi
movl $0x3, %esi
callq 0x6320
movl %eax, (%rsp)
cmpl $0x8, 0x4(%rsp)
jae 0xf2b1
movq 0x8(%rsp), %rax
movl 0x4(%rsp), %ecx
cmpq $0x0, 0x70(%rax,%rcx,8)
jne 0xf2d0
movq 0x28(%rsp), %rdi
movl $0x2, %esi
leaq 0x6ee7(%rip), %rdx      # 0x161a9
callq 0x61c0
movl %eax, 0x34(%rsp)
jmp 0xf3d6
movl (%rsp), %eax
movq 0x8(%rsp), %rcx
cmpl 0x4(%rcx), %eax
jb 0xf2fc
movq 0x28(%rsp), %rdi
movl $0x3, %esi
leaq 0x6ebb(%rip), %rdx      # 0x161a9
callq 0x61c0
movl %eax, 0x34(%rsp)
jmp 0xf3d6
movq 0x8(%rsp), %rax
movl 0x4(%rsp), %ecx
movl 0xb0(%rax,%rcx,4), %eax
movl %eax, 0x14(%rsp)
movq 0x8(%rsp), %rax
movl 0x4(%rsp), %ecx
movq 0x70(%rax,%rcx,8), %rax
movl (%rsp), %ecx
imulq $0xc, %rcx, %rcx
addq %rcx, %rax
movq %rax, 0x20(%rsp)
cmpl $0x3, 0x14(%rsp)
jne 0xf34e
movq 0x28(%rsp), %rdi
movq 0x20(%rsp), %rsi
xorl %edx, %edx
callq 0x6610
movl %eax, 0x34(%rsp)
jmp 0xf3d6
cmpl $0x2, 0x14(%rsp)
jne 0xf38b
movq 0x20(%rsp), %rax
movss (%rax), %xmm0
movss %xmm0, 0x18(%rsp)
movq 0x20(%rsp), %rax
movss 0x4(%rax), %xmm0
movss %xmm0, 0x1c(%rsp)
movq 0x28(%rsp), %rdi
leaq 0x18(%rsp), %rsi
xorl %edx, %edx
callq 0x6170
movl %eax, 0x34(%rsp)
jmp 0xf3d6
cmpl $0x1, 0x14(%rsp)
jne 0xf3b3
movq 0x28(%rsp), %rdi
movq 0x20(%rsp), %rax
movss (%rax), %xmm0
cvtss2sd %xmm0, %xmm0
callq 0x6500
movl $0x1, 0x34(%rsp)
jmp 0xf3d6
movq 0x28(%rsp), %rdi
leaq 0x6df7(%rip), %rsi      # 0x161b6
leaq 0x6e0e(%rip), %rdx      # 0x161d4
movl $0x12c, %ecx            # imm = 0x12C
movb $0x0, %al
callq 0x67b0
movl %eax, 0x34(%rsp)
movl 0x34(%rsp), %eax
addq $0x38, %rsp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/stetre[P]moonassimp/src/mesh.c
// Function: Material
static int Material(lua_State *L)
    {
#define scene ud->scene
    mesh_t *mesh = checkmesh(L, 1);
    ud_t *ud = userdata(mesh);
    if(mesh->mMaterialIndex >= scene->mNumMaterials)
        return unexpected(L);   
    pushmaterial(L, scene->mMaterials[mesh->mMaterialIndex]);
    return 1;
#undef scene
    }

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x18(%rsp)
movq 0x18(%rsp), %rdi
movl $0x1, %esi
leaq 0x7be0(%rip), %rdx      # 0x171da
callq 0x6700
movq %rax, 0x10(%rsp)
movq 0x10(%rsp), %rdi
callq 0x6780
movq %rax, 0x8(%rsp)
movq 0x10(%rsp), %rax
movl 0xe8(%rax), %eax
movq 0x8(%rsp), %rcx
movq 0x10(%rcx), %rcx
cmpl 0x20(%rcx), %eax
jb 0xf651
movq 0x18(%rsp), %rdi
leaq 0x6b7e(%rip), %rsi      # 0x161b6
leaq 0x6b95(%rip), %rdx      # 0x161d4
movl $0x8c, %ecx
movb $0x0, %al
callq 0x67b0
movl %eax, 0x24(%rsp)
jmp 0xf67f
movq 0x18(%rsp), %rdi
movq 0x8(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x28(%rax), %rax
movq 0x10(%rsp), %rcx
movl 0xe8(%rcx), %ecx
movq (%rax,%rcx,8), %rsi
callq 0x6390
movl $0x1, 0x24(%rsp)
movl 0x24(%rsp), %eax
addq $0x28, %rsp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/stetre[P]moonassimp/src/mesh.c
// Function: Face
static int Face(lua_State *L)
    {
    mesh_t *mesh = checkmesh(L, 1);
    unsigned int i = checkindex(L, 2);
    if(mesh->mFaces == NULL || mesh->mNumFaces == 0 || i >= mesh->mNumFaces)
        return luaL_argerror(L, 2, "out of range");
    return pushface(L, &(mesh->mFaces[i]));
    }

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x18(%rsp)
movq 0x18(%rsp), %rdi
movl $0x1, %esi
leaq 0x7b30(%rip), %rdx      # 0x171da
callq 0x6700
movq %rax, 0x10(%rsp)
movq 0x18(%rsp), %rdi
movl $0x2, %esi
callq 0x6320
movl %eax, 0xc(%rsp)
movq 0x10(%rsp), %rax
cmpq $0x0, 0xd0(%rax)
je 0xf6ef
movq 0x10(%rsp), %rax
cmpl $0x0, 0x8(%rax)
je 0xf6ef
movl 0xc(%rsp), %eax
movq 0x10(%rsp), %rcx
cmpl 0x8(%rcx), %eax
jb 0xf70b
movq 0x18(%rsp), %rdi
movl $0x2, %esi
leaq 0x6aa9(%rip), %rdx      # 0x161a9
callq 0x61c0
movl %eax, 0x24(%rsp)
jmp 0xf730
movq 0x18(%rsp), %rdi
movq 0x10(%rsp), %rax
movq 0xd0(%rax), %rsi
movl 0xc(%rsp), %eax
shlq $0x4, %rax
addq %rax, %rsi
callq 0x6390
movl %eax, 0x24(%rsp)
movl 0x24(%rsp), %eax
addq $0x28, %rsp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/stetre[P]moonassimp/src/mesh.c
// Function: AllIndices
static int AllIndices(lua_State *L)
    {
    mesh_t *mesh = checkmesh(L, 1);
    int zero_based = optboolean(L, 2, 0);
    unsigned int i;

    lua_newtable(L);
    if(mesh->mFaces == NULL || mesh->mNumFaces == 0)
        return 1;
    for(i = 0; i < mesh->mNumFaces; i++)
        {
        pushfaceindices(L, &(mesh->mFaces[i]), zero_based);
        lua_rawseti(L, -2, i+1);
        }
    return 1;
    }

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x18(%rsp)
movq 0x18(%rsp), %rdi
movl $0x1, %esi
leaq 0x7a80(%rip), %rdx      # 0x171da
callq 0x6700
movq %rax, 0x10(%rsp)
movq 0x18(%rsp), %rdi
movl $0x2, %esi
xorl %edx, %edx
callq 0x60b0
movl %eax, 0xc(%rsp)
movq 0x18(%rsp), %rdi
xorl %edx, %edx
movl %edx, %esi
callq 0x6250
movq 0x10(%rsp), %rax
cmpq $0x0, 0xd0(%rax)
je 0xf7a1
movq 0x10(%rsp), %rax
cmpl $0x0, 0x8(%rax)
jne 0xf7ab
movl $0x1, 0x24(%rsp)
jmp 0xf815
movl $0x0, 0x8(%rsp)
movl 0x8(%rsp), %eax
movq 0x10(%rsp), %rcx
cmpl 0x8(%rcx), %eax
jae 0xf80d
movq 0x18(%rsp), %rdi
movq 0x10(%rsp), %rax
movq 0xd0(%rax), %rsi
movl 0x8(%rsp), %eax
shlq $0x4, %rax
addq %rax, %rsi
movl 0xc(%rsp), %edx
callq 0x62a0
movq 0x18(%rsp), %rdi
movl 0x8(%rsp), %eax
addl $0x1, %eax
movl %eax, %eax
movl %eax, %edx
movl $0xfffffffe, %esi       # imm = 0xFFFFFFFE
callq 0x6470
movl 0x8(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x8(%rsp)
jmp 0xf7b3
movl $0x1, 0x24(%rsp)
movl 0x24(%rsp), %eax
addq $0x28, %rsp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/stetre[P]moonassimp/src/mesh.c
// Function: Bone
static int Bone(lua_State *L)
    {
    mesh_t *mesh = checkmesh(L, 1);
    unsigned int i = checkindex(L, 2);
    if(mesh->mBones == NULL || mesh->mNumBones == 0 || i >= mesh->mNumBones)
        return luaL_argerror(L, 2, "out of range");
    return pushbone(L, mesh->mBones[i]);
    }

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x18(%rsp)
movq 0x18(%rsp), %rdi
movl $0x1, %esi
leaq 0x79a0(%rip), %rdx      # 0x171da
callq 0x6700
movq %rax, 0x10(%rsp)
movq 0x18(%rsp), %rdi
movl $0x2, %esi
callq 0x6320
movl %eax, 0xc(%rsp)
movq 0x10(%rsp), %rax
cmpq $0x0, 0xe0(%rax)
je 0xf885
movq 0x10(%rsp), %rax
cmpl $0x0, 0xd8(%rax)
je 0xf885
movl 0xc(%rsp), %eax
movq 0x10(%rsp), %rcx
cmpl 0xd8(%rcx), %eax
jb 0xf8a1
movq 0x18(%rsp), %rdi
movl $0x2, %esi
leaq 0x6913(%rip), %rdx      # 0x161a9
callq 0x61c0
movl %eax, 0x24(%rsp)
jmp 0xf8c3
movq 0x18(%rsp), %rdi
movq 0x10(%rsp), %rax
movq 0xe0(%rax), %rax
movl 0xc(%rsp), %ecx
movq (%rax,%rcx,8), %rsi
callq 0x6390
movl %eax, 0x24(%rsp)
movl 0x24(%rsp), %eax
addq $0x28, %rsp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/stetre[P]moonassimp/src/mesh.c
// Function: AnimMesh
static int AnimMesh(lua_State *L)
    {
    mesh_t *mesh = checkmesh(L, 1);
    unsigned int i = checkindex(L, 2);
    if(mesh->mAnimMeshes == NULL || mesh->mNumAnimMeshes == 0 || i >= mesh->mNumAnimMeshes)
        return luaL_argerror(L, 2, "out of range");
    return pushanimmesh(L, mesh->mAnimMeshes[i]);
    }

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x18(%rsp)
movq 0x18(%rsp), %rdi
movl $0x1, %esi
leaq 0x78f0(%rip), %rdx      # 0x171da
callq 0x6700
movq %rax, 0x10(%rsp)
movq 0x18(%rsp), %rdi
movl $0x2, %esi
callq 0x6320
movl %eax, 0xc(%rsp)
movq 0x10(%rsp), %rax
cmpq $0x0, 0x4f8(%rax)
je 0xf935
movq 0x10(%rsp), %rax
cmpl $0x0, 0x4f0(%rax)
je 0xf935
movl 0xc(%rsp), %eax
movq 0x10(%rsp), %rcx
cmpl 0x4f0(%rcx), %eax
jb 0xf951
movq 0x18(%rsp), %rdi
movl $0x2, %esi
leaq 0x6863(%rip), %rdx      # 0x161a9
callq 0x61c0
movl %eax, 0x24(%rsp)
jmp 0xf973
movq 0x18(%rsp), %rdi
movq 0x10(%rsp), %rax
movq 0x4f8(%rax), %rax
movl 0xc(%rsp), %ecx
movq (%rax,%rcx,8), %rsi
callq 0x6390
movl %eax, 0x24(%rsp)
movl 0x24(%rsp), %eax
addq $0x28, %rsp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/stetre[P]moonassimp/src/mesh.c
// Function: Faces
static int Faces(lua_State *L)
    {
    unsigned int i;
    mesh_t *mesh = checkmesh(L, 1);
    lua_newtable(L);
    if(mesh->mFaces == NULL || mesh->mNumFaces == 0) return 1;
    for(i = 0; i < mesh->mNumFaces; i++)
        {
        pushface(L, &(mesh->mFaces[i]));
        lua_rawseti(L, -2, i+1);
        }
    return 1;
    }

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x18(%rsp)
movq 0x18(%rsp), %rdi
movl $0x1, %esi
leaq 0x7840(%rip), %rdx      # 0x171da
callq 0x6700
movq %rax, 0x8(%rsp)
movq 0x18(%rsp), %rdi
xorl %edx, %edx
movl %edx, %esi
callq 0x6250
movq 0x8(%rsp), %rax
cmpq $0x0, 0xd0(%rax)
je 0xf9cc
movq 0x8(%rsp), %rax
cmpl $0x0, 0x8(%rax)
jne 0xf9d6
movl $0x1, 0x24(%rsp)
jmp 0xfa3c
movl $0x0, 0x14(%rsp)
movl 0x14(%rsp), %eax
movq 0x8(%rsp), %rcx
cmpl 0x8(%rcx), %eax
jae 0xfa34
movq 0x18(%rsp), %rdi
movq 0x8(%rsp), %rax
movq 0xd0(%rax), %rsi
movl 0x14(%rsp), %eax
shlq $0x4, %rax
addq %rax, %rsi
callq 0x6390
movq 0x18(%rsp), %rdi
movl 0x14(%rsp), %eax
addl $0x1, %eax
movl %eax, %eax
movl %eax, %edx
movl $0xfffffffe, %esi       # imm = 0xFFFFFFFE
callq 0x6470
movl 0x14(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x14(%rsp)
jmp 0xf9de
movl $0x1, 0x24(%rsp)
movl 0x24(%rsp), %eax
addq $0x28, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/stetre[P]moonassimp/src/mesh.c
// Function: Bones
static int Bones(lua_State *L)
    {
    unsigned int i;
    mesh_t *mesh = checkmesh(L, 1);
    lua_newtable(L);
    if(mesh->mBones == NULL || mesh->mNumBones == 0) return 1;
    for(i = 0; i < mesh->mNumBones; i++)
        {
        pushbone(L, mesh->mBones[i]);
        lua_rawseti(L, -2, i+1);
        }
    return 1;
    }

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x18(%rsp)
movq 0x18(%rsp), %rdi
movl $0x1, %esi
leaq 0x7770(%rip), %rdx      # 0x171da
callq 0x6700
movq %rax, 0x8(%rsp)
movq 0x18(%rsp), %rdi
xorl %edx, %edx
movl %edx, %esi
callq 0x6250
movq 0x8(%rsp), %rax
cmpq $0x0, 0xe0(%rax)
je 0xfa9f
movq 0x8(%rsp), %rax
cmpl $0x0, 0xd8(%rax)
jne 0xfaa9
movl $0x1, 0x24(%rsp)
jmp 0xfb0f
movl $0x0, 0x14(%rsp)
movl 0x14(%rsp), %eax
movq 0x8(%rsp), %rcx
cmpl 0xd8(%rcx), %eax
jae 0xfb07
movq 0x18(%rsp), %rdi
movq 0x8(%rsp), %rax
movq 0xe0(%rax), %rax
movl 0x14(%rsp), %ecx
movq (%rax,%rcx,8), %rsi
callq 0x6390
movq 0x18(%rsp), %rdi
movl 0x14(%rsp), %eax
addl $0x1, %eax
movl %eax, %eax
movl %eax, %edx
movl $0xfffffffe, %esi       # imm = 0xFFFFFFFE
callq 0x6470
movl 0x14(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x14(%rsp)
jmp 0xfab1
movl $0x1, 0x24(%rsp)
movl 0x24(%rsp), %eax
addq $0x28, %rsp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/stetre[P]moonassimp/src/mesh.c
// Function: AnimMeshes
static int AnimMeshes(lua_State *L)
    {
    unsigned int i;
    mesh_t *mesh = checkmesh(L, 1);
    lua_newtable(L);
    if(mesh->mAnimMeshes == NULL || mesh->mNumAnimMeshes == 0) return 1;
    for(i = 0; i < mesh->mNumAnimMeshes; i++)
        {
        pushanimmesh(L, mesh->mAnimMeshes[i]);
        lua_rawseti(L, -2, i+1);
        }
    return 1;
    }

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x18(%rsp)
movq 0x18(%rsp), %rdi
movl $0x1, %esi
leaq 0x76a0(%rip), %rdx      # 0x171da
callq 0x6700
movq %rax, 0x8(%rsp)
movq 0x18(%rsp), %rdi
xorl %edx, %edx
movl %edx, %esi
callq 0x6250
movq 0x8(%rsp), %rax
cmpq $0x0, 0x4f8(%rax)
je 0xfb6f
movq 0x8(%rsp), %rax
cmpl $0x0, 0x4f0(%rax)
jne 0xfb79
movl $0x1, 0x24(%rsp)
jmp 0xfbdf
movl $0x0, 0x14(%rsp)
movl 0x14(%rsp), %eax
movq 0x8(%rsp), %rcx
cmpl 0x4f0(%rcx), %eax
jae 0xfbd7
movq 0x18(%rsp), %rdi
movq 0x8(%rsp), %rax
movq 0x4f8(%rax), %rax
movl 0x14(%rsp), %ecx
movq (%rax,%rcx,8), %rsi
callq 0x6390
movq 0x18(%rsp), %rdi
movl 0x14(%rsp), %eax
addl $0x1, %eax
movl %eax, %eax
movl %eax, %edx
movl $0xfffffffe, %esi       # imm = 0xFFFFFFFE
callq 0x6470
movl 0x14(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x14(%rsp)
jmp 0xfb81
movl $0x1, 0x24(%rsp)
movl 0x24(%rsp), %eax
addq $0x28, %rsp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/stetre[P]moonassimp/src/meshanim.c
// Function: moonassimp_newmeshanim
int newmeshanim(lua_State *L, scene_t *scene, animation_t *animation, meshanim_t *meshanim)
    {
    ud_t *ud;
//  TRACE_CREATE(meshanim, "meshanim");
    ud = newuserdata(L, (void*)meshanim, MESHANIM_MT);
    ud->scene = scene;
    ud->animation = animation;
    return 1;   
    }

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x20(%rsp)
movq %rsi, 0x18(%rsp)
movq %rdx, 0x10(%rsp)
movq %rcx, 0x8(%rsp)
movq 0x20(%rsp), %rdi
movq 0x8(%rsp), %rsi
leaq 0x7757(%rip), %rdx      # 0x17370
callq 0x68d0
movq %rax, (%rsp)
movq 0x18(%rsp), %rcx
movq (%rsp), %rax
movq %rcx, 0x10(%rax)
movq 0x10(%rsp), %rcx
movq (%rsp), %rax
movq %rcx, 0x28(%rax)
movl $0x1, %eax
addq $0x28, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/stetre[P]moonassimp/src/meshanim.c
// Function: Name
static int Name(lua_State *L)
    {
    meshanim_t *meshanim = checkmeshanim(L, 1);
    if(meshanim->mName.length == 0)
        return 0;
    lua_pushstring(L, meshanim->mName.data);
    return 1;
    }

// Assembly:
subq $0x18, %rsp
movq %rdi, 0x8(%rsp)
movq 0x8(%rsp), %rdi
movl $0x1, %esi
leaq 0x7696(%rip), %rdx      # 0x17370
callq 0x6700
movq %rax, (%rsp)
movq (%rsp), %rax
cmpl $0x0, (%rax)
jne 0xfcf6
movl $0x0, 0x14(%rsp)
jmp 0xfd10
movq 0x8(%rsp), %rdi
movq (%rsp), %rsi
addq $0x4, %rsi
callq 0x6930
movl $0x1, 0x14(%rsp)
movl 0x14(%rsp), %eax
addq $0x18, %rsp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/stetre[P]moonassimp/src/meshanim.c
// Function: Keys
static int Keys(lua_State *L)
/* { key1, key2, ... }
 *
 * key1 = { time = 123.456, value = index }
 */
    {
    unsigned int i;
    meshanim_t *meshanim = checkmeshanim(L, 1);
    lua_newtable(L);
    for(i = 0; i < meshanim->mNumKeys; i++)
        {
#define key meshanim->mKeys[i]
        lua_newtable(L);
        lua_pushnumber(L, key.mTime);
        lua_setfield(L, -2, "time");
        pushindex(L, key.mValue);
        lua_setfield(L, -2, "value");
        lua_rawseti(L, -2, i+1);
#undef key
        }
    return 1;
    }

// Assembly:
subq $0x18, %rsp
movq %rdi, 0x10(%rsp)
movq 0x10(%rsp), %rdi
movl $0x1, %esi
leaq 0x75e6(%rip), %rdx      # 0x17370
callq 0x6700
movq %rax, (%rsp)
movq 0x10(%rsp), %rdi
xorl %edx, %edx
movl %edx, %esi
callq 0x6250
movl $0x0, 0xc(%rsp)
movl 0xc(%rsp), %eax
movq (%rsp), %rcx
cmpl 0x404(%rcx), %eax
jae 0xfe68
movq 0x10(%rsp), %rdi
xorl %edx, %edx
movl %edx, %esi
callq 0x6250
movq 0x10(%rsp), %rdi
movq (%rsp), %rax
movq 0x408(%rax), %rax
movl 0xc(%rsp), %ecx
shlq $0x4, %rcx
addq %rcx, %rax
movsd (%rax), %xmm0
callq 0x6500
movq 0x10(%rsp), %rdi
movl $0xfffffffe, %esi       # imm = 0xFFFFFFFE
leaq 0x7597(%rip), %rdx      # 0x17397
callq 0x62e0
movq 0x10(%rsp), %rdi
movq (%rsp), %rax
movq 0x408(%rax), %rax
movl 0xc(%rsp), %ecx
shlq $0x4, %rcx
addq %rcx, %rax
movl 0x8(%rax), %esi
callq 0x64e0
movq 0x10(%rsp), %rdi
movl $0xfffffffe, %esi       # imm = 0xFFFFFFFE
leaq 0x7563(%rip), %rdx      # 0x1739c
callq 0x62e0
movq 0x10(%rsp), %rdi
movl 0xc(%rsp), %eax
addl $0x1, %eax
movl %eax, %eax
movl %eax, %edx
movl $0xfffffffe, %esi       # imm = 0xFFFFFFFE
callq 0x6470
movl 0xc(%rsp), %eax
addl $0x1, %eax
movl %eax, 0xc(%rsp)
jmp 0xfda9
movl $0x1, %eax
addq $0x18, %rsp
retq
nopw %cs:(%rax,%rax)
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/stetre[P]moonassimp/src/node.c
// Function: moonassimp_newnode
int newnode(lua_State *L, scene_t *scene, node_t *node)
/* recursively creates the userdata for the node and its children */
    {
    ud_t *ud;
    unsigned int i;
    TRACE_CREATE(node, "node");
    for(i = 0; i < node->mNumChildren; i++)
        {
        newnode(L, scene, node->mChildren[i]);
        lua_pop(L, 1);
        }
    ud = newuserdata(L, (void*)node, NODE_MT);
    ud->scene = scene;
    return 1;   
    }

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x20(%rsp)
movq %rsi, 0x18(%rsp)
movq %rdx, 0x10(%rsp)
movq 0x10(%rsp), %rsi
leaq 0x7531(%rip), %rdi      # 0x173d0
movb $0x0, %al
callq 0x6720
movl $0x0, 0x4(%rsp)
movl 0x4(%rsp), %eax
movq 0x10(%rsp), %rcx
cmpl 0x450(%rcx), %eax
jae 0xfefe
movq 0x20(%rsp), %rdi
movq 0x18(%rsp), %rsi
movq 0x10(%rsp), %rax
movq 0x458(%rax), %rax
movl 0x4(%rsp), %ecx
movq (%rax,%rcx,8), %rdx
callq 0x6480
movq 0x20(%rsp), %rdi
movl $0xfffffffe, %esi       # imm = 0xFFFFFFFE
callq 0x60c0
movl 0x4(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x4(%rsp)
jmp 0xfeae
movq 0x20(%rsp), %rdi
movq 0x10(%rsp), %rsi
leaq 0x74d3(%rip), %rdx      # 0x173e2
callq 0x68d0
movq %rax, 0x8(%rsp)
movq 0x18(%rsp), %rcx
movq 0x8(%rsp), %rax
movq %rcx, 0x10(%rax)
movl $0x1, %eax
addq $0x28, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/stetre[P]moonassimp/src/node.c
// Function: moonassimp_freenode
int freenode(lua_State *L, node_t *node)
/* recursively deletes the userdata for the node and its children */
    {
    unsigned int i;
    for(i = 0; i < node->mNumChildren; i++)
        freenode(L, node->mChildren[i]);
    TRACE_DELETE(node, "node");
    freeuserdata(L, node);
    return 0;
    }

// Assembly:
subq $0x18, %rsp
movq %rdi, 0x10(%rsp)
movq %rsi, 0x8(%rsp)
movl $0x0, 0x4(%rsp)
movl 0x4(%rsp), %eax
movq 0x8(%rsp), %rcx
cmpl 0x450(%rcx), %eax
jae 0xff92
movq 0x10(%rsp), %rdi
movq 0x8(%rsp), %rax
movq 0x458(%rax), %rax
movl 0x4(%rsp), %ecx
movq (%rax,%rcx,8), %rsi
callq 0x63c0
movl 0x4(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x4(%rsp)
jmp 0xff56
jmp 0xff94
movq 0x8(%rsp), %rsi
leaq 0x7452(%rip), %rdi      # 0x173f2
movb $0x0, %al
callq 0x6720
movq 0x10(%rsp), %rdi
movq 0x8(%rsp), %rsi
callq 0x6400
xorl %eax, %eax
addq $0x18, %rsp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/stetre[P]moonassimp/src/node.c
// Function: Name
static int Name(lua_State *L)
    {
    node_t *node = checknode(L, 1);
    if(node->mName.length == 0)
        return 0;
    lua_pushstring(L, node->mName.data);
    return 1;
    }

// Assembly:
subq $0x18, %rsp
movq %rdi, 0x8(%rsp)
movq 0x8(%rsp), %rdi
movl $0x1, %esi
leaq 0x73c8(%rip), %rdx      # 0x173e2
callq 0x6700
movq %rax, (%rsp)
movq (%rsp), %rax
cmpl $0x0, (%rax)
jne 0x10036
movl $0x0, 0x14(%rsp)
jmp 0x10050
movq 0x8(%rsp), %rdi
movq (%rsp), %rsi
addq $0x4, %rsi
callq 0x6930
movl $0x1, 0x14(%rsp)
movl 0x14(%rsp), %eax
addq $0x18, %rsp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/stetre[P]moonassimp/src/node.c
// Function: Parent
static int Parent(lua_State *L)
    {
    node_t *node = checknode(L, 1);
    if(node->mParent == NULL)
        return 0; /* root */
    pushnode(L, node->mParent);
    return 1;
    }

// Assembly:
subq $0x18, %rsp
movq %rdi, 0x8(%rsp)
movq 0x8(%rsp), %rdi
movl $0x1, %esi
leaq 0x72c8(%rip), %rdx      # 0x173e2
callq 0x6700
movq %rax, (%rsp)
movq (%rsp), %rax
cmpq $0x0, 0x448(%rax)
jne 0x1013b
movl $0x0, 0x14(%rsp)
jmp 0x10158
movq 0x8(%rsp), %rdi
movq (%rsp), %rax
movq 0x448(%rax), %rsi
callq 0x6390
movl $0x1, 0x14(%rsp)
movl 0x14(%rsp), %eax
addq $0x18, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/stetre[P]moonassimp/src/node.c
// Function: Child
static int Child(lua_State *L)
    { 
    node_t *node = checknode(L, 1);
    unsigned int i = checkindex(L, 2);
    if(i >= node->mNumChildren)
        return luaL_argerror(L, 2, "out of range");
    return pushnode(L, node->mChildren[i]);
    }

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x18(%rsp)
movq 0x18(%rsp), %rdi
movl $0x1, %esi
leaq 0x7258(%rip), %rdx      # 0x173e2
callq 0x6700
movq %rax, 0x10(%rsp)
movq 0x18(%rsp), %rdi
movl $0x2, %esi
callq 0x6320
movl %eax, 0xc(%rsp)
movl 0xc(%rsp), %eax
movq 0x10(%rsp), %rcx
cmpl 0x450(%rcx), %eax
jb 0x101d4
movq 0x18(%rsp), %rdi
movl $0x2, %esi
leaq 0x5fe0(%rip), %rdx      # 0x161a9
callq 0x61c0
movl %eax, 0x24(%rsp)
jmp 0x101f6
movq 0x18(%rsp), %rdi
movq 0x10(%rsp), %rax
movq 0x458(%rax), %rax
movl 0xc(%rsp), %ecx
movq (%rax,%rcx,8), %rsi
callq 0x6390
movl %eax, 0x24(%rsp)
movl 0x24(%rsp), %eax
addq $0x28, %rsp
retq
nop