Function at 0x2e3c95890
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0xd8
movsxd rax, r8d
mov qword [rsp + 0x120], rcx
mov rdi, rdx
mov r14, r9
lea rax, [rax + rax*4]
lea rax, [rdx + rax*4]
cmp dword [rax], 1
jne 0x2e3c95b48
mov eax, dword [rax + 0xc]
lea r15d, [r8 + 1]
mov dword [rsp + 0x34], eax
test eax, eax
jle 0x2e3c95b4e
xor ebp, ebp
jmp 0x2e3c95982
add rcx, r14
mov r8d, 4
lea rdx, [0x2e3ed99b0]
call sub.msvcrt.dll_strncmp
test eax, eax
jne 0x2e3c95c00
lea rsi, [rdi + rbx + 0x14]
cmp dword [rsi], 3
jne 0x2e3c95b48
mov rax, qword [rsp + 0x140]
cmp qword [rax], 0
jne 0x2e3c95b48
mov ebx, dword [rsi + 8]
mov rax, qword [rsp + 0x120]
sub ebx, dword [rsi + 4]
lea edx, [rbx + 1]
mov rcx, qword [rax + 0x20]
movsxd rdx, edx
call qword [rax + 0x10]
mov rcx, rax
test rax, rax
je 0x2e3c96167
movsxd rdx, dword [rsi + 4]
movsxd rbx, ebx
add r15d, 2
mov r8, rbx
add rdx, r14
call sub.msvcrt.dll_strncpy
mov byte [rax + rbx], 0
mov rcx, rax
mov rax, qword [rsp + 0x140]
mov qword [rax], rcx
test r15d, r15d
js 0x2e3c95b4e
add ebp, 1
cmp dword [rsp + 0x34], ebp
je 0x2e3c95b4e
movsxd rax, r15d
lea rbx, [rax + rax*4]
shl rbx, 2
lea r13, [rdi + rbx]
cmp dword [r13], 3
jne 0x2e3c95b48
mov ecx, dword [r13 + 0xc]
test ecx, ecx
je 0x2e3c95b48
movsxd rcx, dword [r13 + 4]
mov eax, dword [r13 + 8]
lea r12d, [r15 + 1]
sub eax, ecx
cmp eax, 4
je 0x2e3c958e0
cmp eax, 6
jne 0x2e3c95a48
lea rsi, [r14 + rcx]
mov r8d, 6
lea rdx, str.buffer
mov rcx, rsi
call sub.msvcrt.dll_strncmp
test eax, eax
jne 0x2e3c95c50
lea rax, [rdi + rbx + 0x14]
cmp dword [rax], 4
jne 0x2e3c960da
movsxd rdx, dword [rax + 4]
mov ebx, dword [rax + 8]
mov eax, 0x7f
lea rcx, [rsp + 0x50]
sub ebx, edx
cmp ebx, eax
cmova ebx, eax
add rdx, r14
mov r8d, ebx
movsxd rbx, ebx
call sub.msvcrt.dll_strncpy
mov byte [rsp + rbx + 0x50], 0
mov rcx, rax
call sub.msvcrt.dll_atoi
cdqe
add rax, 1
mov rsi, qword [rsp + 0x140]
add r15d, 2
mov qword [rsi + 8], rax
jmp 0x2e3c9596c
cmp eax, 0xa
jne 0x2e3c95c00
lea rsi, [r14 + rcx]
mov r8d, 0xa
lea rdx, str.byteOffset
mov rcx, rsi
call sub.msvcrt.dll_strncmp
test eax, eax
jne 0x2e3c95ad0
lea rcx, [rdi + rbx + 0x14]
mov rax, 0xffffffffffffffff
cmp dword [rcx], 4
jne 0x2e3c95ab2
movsxd rdx, dword [rcx + 4]
mov ebx, dword [rcx + 8]
mov eax, 0x7f
lea rcx, [rsp + 0x50]
sub ebx, edx
cmp ebx, eax
cmova ebx, eax
add rdx, r14
mov r8d, ebx
movsxd rbx, ebx
call sub.msvcrt.dll_strncpy
mov byte [rsp + rbx + 0x50], 0
mov rcx, rax
call fcn.2e3e48320
mov rsi, qword [rsp + 0x140]
add r15d, 2
mov qword [rsi + 0x10], rax
jmp 0x2e3c9596c
mov r8d, 0xa
lea rdx, str.byteLength
mov rcx, rsi
call sub.msvcrt.dll_strncmp
test eax, eax
jne 0x2e3c95b68
lea rdx, [rdi + rbx + 0x14]
mov rax, 0xffffffffffffffff
cmp dword [rdx], 4
jne 0x2e3c95b2e
movsxd rax, dword [rdx + 4]
mov ebx, dword [rdx + 8]
mov edx, 0x7f
lea rcx, [rsp + 0x50]
sub ebx, eax
cmp ebx, edx
cmova ebx, edx
lea rdx, [r14 + rax]
mov r8d, ebx
movsxd rbx, ebx
call sub.msvcrt.dll_strncpy
mov byte [rsp + rbx + 0x50], 0
mov rcx, rax
call fcn.2e3e48320
mov rsi, qword [rsp + 0x140]
add r15d, 2
mov qword [rsi + 0x18], rax
jmp 0x2e3c9596c
mov r15d, 0xffffffff
mov eax, r15d
add rsp, 0xd8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov r8d, 0xa
lea rdx, str.byteStride
mov rcx, rsi
call sub.msvcrt.dll_strncmp
test eax, eax
jne 0x2e3c95c00
lea rdx, [rdi + rbx + 0x14]
mov rax, 0xffffffffffffffff
cmp dword [rdx], 4
je 0x2e3c95bb0
mov rsi, qword [rsp + 0x140]
add r15d, 2
mov qword [rsi + 0x20], rax
jmp 0x2e3c9596c
movsxd rax, dword [rdx + 4]
mov ebx, dword [rdx + 8]
mov edx, 0x7f
lea rcx, [rsp + 0x50]
sub ebx, eax
cmp ebx, edx
cmova ebx, edx
lea rdx, [r14 + rax]
add r15d, 2
mov r8d, ebx
movsxd rbx, ebx
call sub.msvcrt.dll_strncpy
mov byte [rsp + rbx + 0x50], 0
mov rcx, rax
call fcn.2e3e48320
mov rsi, qword [rsp + 0x140]
mov qword [rsi + 0x20], rax
jmp 0x2e3c9596c
lea r8, [0x2e3ed99e2]
mov rdx, r14
mov rcx, r13
call fcn.2e3c92f00
test eax, eax
jne 0x2e3c95ca0
lea rax, [rdi + rbx + 0x14]
mov rsi, qword [rsp + 0x140]
mov rcx, rdi
movsxd rdx, dword [rax + 4]
mov qword [rsi + 0x70], rdx
movsxd rax, dword [rax + 8]
mov edx, r12d
mov qword [rsi + 0x78], rax
call fcn.2e3c91ef0
mov r15d, eax
jmp 0x2e3c9596c
mov r8d, 6
lea rdx, [0x2e3ed9a25]
mov rcx, rsi
call sub.msvcrt.dll_strncmp
test eax, eax
jne 0x2e3c95c00
mov rdx, r14
lea rcx, [rdi + rbx + 0x14]
call fcn.2e3c92f70
mov edx, 2
cmp eax, 0x8892
je 0x2e3c95c8c
xor edx, edx
cmp eax, 0x8893
sete dl
mov rax, qword [rsp + 0x140]
add r15d, 2
mov dword [rax + 0x28], edx
jmp 0x2e3c9596c
lea r8, str.extensions
mov rdx, r14
mov rcx, r13
call fcn.2e3c92f00
mov dword [rsp + 0x3c], eax
test eax, eax
je 0x2e3c95ccd
mov edx, r12d
mov rcx, rdi
call fcn.2e3c91ef0
mov r15d, eax
jmp 0x2e3c9596c
lea rax, [rdi + rbx + 0x14]
cmp dword [rax], 1
jne 0x2e3c95b48
mov rsi, qword [rsp + 0x140]
cmp qword [rsi + 0x88], 0
jne 0x2e3c95b48
movsxd r8, dword [rax + 0xc]
mov rax, qword [rsp + 0x140]
mov edx, 0x10
mov rcx, qword [rsp + 0x120]
mov qword [rax + 0x80], 0
mov rsi, r8
mov dword [rsp + 0x48], r8d
call fcn.2e3c8c360
mov rbx, qword [rsp + 0x140]
mov qword [rbx + 0x88], rax
test rax, rax
je 0x2e3c96167
add r15d, 2
test esi, esi
jle 0x2e3c9596c
mov dword [rsp + 0x4c], ebp
mov r13d, r15d
mov rsi, rbx
movsxd rax, r13d
lea rbp, [rax + rax*4]
shl rbp, 2
lea rax, [rdi + rbp]
cmp dword [rax], 3
jne 0x2e3c95b48
mov edx, dword [rax + 0xc]
test edx, edx
je 0x2e3c95b48
movsxd rdx, dword [rax + 4]
mov eax, dword [rax + 8]
sub eax, edx
cmp eax, 0x17
jne 0x2e3c95f20
lea rcx, [r14 + rdx]
mov r8d, 0x17
lea rdx, str.EXT_meshopt_compression
call sub.msvcrt.dll_strncmp
mov ebx, eax
test eax, eax
jne 0x2e3c95f20
lea rax, [rdi + rbp + 0x14]
mov dword [rsi + 0x38], 1
cmp dword [rax], 1
jne 0x2e3c95b48
mov ebp, dword [rax + 0xc]
add r13d, 2
test ebp, ebp
jle 0x2e3c95f5b
mov dword [rsp + 0x38], ebp
mov ebp, r13d
jmp 0x2e3c95e5e
add rcx, r14
mov r8d, 6
lea rdx, str.buffer
call sub.msvcrt.dll_strncmp
test eax, eax
jne 0x2e3c95ff8
lea rdx, [rdi + r13 + 0x14]
cmp dword [rdx], 4
jne 0x2e3c96172
movsxd rax, dword [rdx + 4]
mov r12d, dword [rdx + 8]
mov edx, 0x7f
lea rcx, [rsp + 0x50]
sub r12d, eax
cmp r12d, edx
cmova r12d, edx
lea rdx, [r14 + rax]
mov r8d, r12d
movsxd r12, r12d
call sub.msvcrt.dll_strncpy
mov byte [rsp + r12 + 0x50], 0
mov rcx, rax
call sub.msvcrt.dll_atoi
cdqe
add rax, 1
mov qword [rsi + 0x40], rax
add ebp, 2
test ebp, ebp
js 0x2e3c9613c
add ebx, 1
cmp dword [rsp + 0x38], ebx
je 0x2e3c96144
movsxd rax, ebp
lea r13, [rax + rax*4]
shl r13, 2
lea r15, [rdi + r13]
cmp dword [r15], 3
jne 0x2e3c95b48
mov eax, dword [r15 + 0xc]
test eax, eax
je 0x2e3c95b48
movsxd rcx, dword [r15 + 4]
mov eax, dword [r15 + 8]
lea r12d, [rbp + 1]
sub eax, ecx
cmp eax, 6
je 0x2e3c95dd8
cmp eax, 0xa
jne 0x2e3c95ff8
add rcx, r14
mov r8d, 0xa
lea rdx, str.byteOffset
mov qword [rsp + 0x40], rcx
call sub.msvcrt.dll_strncmp
mov rcx, qword [rsp + 0x40]
test eax, eax
jne 0x2e3c95f88
lea rdx, [rdi + r13 + 0x14]
mov rax, 0xffffffffffffffff
cmp dword [rdx], 4
jne 0x2e3c95f14
movsxd rax, dword [rdx + 4]
mov r12d, dword [rdx + 8]
mov edx, 0x7f
lea rcx, [rsp + 0x50]
sub r12d, eax
cmp r12d, edx
cmova r12d, edx
lea rdx, [r14 + rax]
mov r8d, r12d
movsxd r12, r12d
call sub.msvcrt.dll_strncpy
mov byte [rsp + r12 + 0x50], 0
mov rcx, rax
call fcn.2e3e48320
mov qword [rsi + 0x48], rax
add ebp, 2
jmp 0x2e3c95e49
mov rax, qword [rsi + 0x80]
mov rcx, qword [rsp + 0x120]
mov r8d, r13d
mov r9, r14
lea rdx, [rax + 1]
shl rax, 4
add rax, qword [rsi + 0x88]
mov qword [rsi + 0x80], rdx
mov rdx, rdi
mov qword [rsp + 0x20], rax
call fcn.2e3c931b0
mov r13d, eax
test r13d, r13d
js 0x2e3c96206
add dword [rsp + 0x3c], 1
mov eax, dword [rsp + 0x3c]
cmp dword [rsp + 0x48], eax
jne 0x2e3c95d50
mov ebp, dword [rsp + 0x4c]
mov r15d, r13d
jmp 0x2e3c95975
mov r8d, 0xa
lea rdx, str.byteLength
call sub.msvcrt.dll_strncmp
test eax, eax
jne 0x2e3c95ff8
lea rdx, [rdi + r13 + 0x14]
mov rax, 0xffffffffffffffff
cmp dword [rdx], 4
jne 0x2e3c95fe8
movsxd rax, dword [rdx + 4]
mov r12d, dword [rdx + 8]
mov edx, 0x7f
lea rcx, [rsp + 0x50]
sub r12d, eax
cmp r12d, edx
cmova r12d, edx
lea rdx, [r14 + rax]
mov r8d, r12d
movsxd r12, r12d
call sub.msvcrt.dll_strncpy
mov byte [rsp + r12 + 0x50], 0
mov rcx, rax
call fcn.2e3e48320
mov qword [rsi + 0x50], rax
add ebp, 2
jmp 0x2e3c95e49
lea r8, str.byteStride
mov rdx, r14
mov rcx, r15
call fcn.2e3c92f00
test eax, eax
jne 0x2e3c96068
lea rdx, [rdi + r13 + 0x14]
mov rax, 0xffffffffffffffff
cmp dword [rdx], 4
jne 0x2e3c96058
movsxd rax, dword [rdx + 4]
mov r12d, dword [rdx + 8]
mov edx, 0x7f
lea rcx, [rsp + 0x50]
sub r12d, eax
cmp r12d, edx
cmova r12d, edx
lea rdx, [r14 + rax]
mov r8d, r12d
movsxd r12, r12d
call sub.msvcrt.dll_strncpy
mov byte [rsp + r12 + 0x50], 0
mov rcx, rax
call fcn.2e3e48320
mov qword [rsi + 0x58], rax
add ebp, 2
jmp 0x2e3c95e49
lea r8, str.count
mov rdx, r14
mov rcx, r15
call fcn.2e3c92f00
test eax, eax
je 0x2e3c96121
lea r8, str.mode
mov rdx, r14
mov rcx, r15
call fcn.2e3c92f00
test eax, eax
jne 0x2e3c960e1
lea r12, [rdi + r13 + 0x14]
lea r8, str.ATTRIBUTES
mov rdx, r14
mov rcx, r12
call fcn.2e3c92f00
test eax, eax
je 0x2e3c9615e
lea r8, str.TRIANGLES
mov rdx, r14
mov rcx, r12
call fcn.2e3c92f00
test eax, eax
jne 0x2e3c96198
mov dword [rsi + 0x68], 2
jmp 0x2e3c96119
xor eax, eax
jmp 0x2e3c95a30
lea r8, str.filter
mov rdx, r14
mov rcx, r15
call fcn.2e3c92f00
test eax, eax
jne 0x2e3c9614c
lea r12, [rdi + r13 + 0x14]
lea r8, str.NONE
mov rdx, r14
mov rcx, r12
call fcn.2e3c92f00
test eax, eax
jne 0x2e3c96179
mov dword [rsi + 0x6c], 0
add ebp, 2
jmp 0x2e3c95e49
lea rcx, [rdi + r13 + 0x14]
mov rdx, r14
add ebp, 2
call fcn.2e3c92f70
cdqe
mov qword [rsi + 0x60], rax
jmp 0x2e3c95e49
mov r15d, ebp
jmp 0x2e3c95b4e
mov r13d, ebp
jmp 0x2e3c95f64
mov edx, r12d
mov rcx, rdi
call fcn.2e3c91ef0
mov ebp, eax
jmp 0x2e3c95e49
mov dword [rsi + 0x68], 1
jmp 0x2e3c96119
mov r15d, 0xfffffffe
jmp 0x2e3c95b4e
xor eax, eax
jmp 0x2e3c95e42
lea r8, str.OCTAHEDRAL
mov rdx, r14
mov rcx, r12
call fcn.2e3c92f00
test eax, eax
jne 0x2e3c961be
mov dword [rsi + 0x6c], 1
jmp 0x2e3c96119
lea r8, str.INDICES
mov rdx, r14
mov rcx, r12
call fcn.2e3c92f00
test eax, eax
jne 0x2e3c96119
mov dword [rsi + 0x68], 3
jmp 0x2e3c96119
lea r8, str.QUATERNION
mov rdx, r14
mov rcx, r12
call fcn.2e3c92f00
test eax, eax
jne 0x2e3c961e0
mov dword [rsi + 0x6c], 2
jmp 0x2e3c96119
lea r8, str.EXPONENTIAL
mov rdx, r14
mov rcx, r12
call fcn.2e3c92f00
test eax, eax
jne 0x2e3c96119
mov dword [rsi + 0x6c], 3
jmp 0x2e3c96119
mov r15d, r13d
jmp 0x2e3c95b4e