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

Disassembly:
mov eax, dword [esp + 8]
sub esp, 0x60
push esi
mov esi, dword [eax + 0x34]
test esi, esi
je 0x10108b25
mov eax, dword [esi]
cmp dword [eax + 0x14], 0x10
mov ecx, dword [eax + 0x10]
jb 0x10108aec
mov eax, dword [eax]
push 0
push 0x10177368
push ecx
push eax
call fcn.1001c310
add esp, 0x10
push esi
mov esi, dword [esp + 0x6c]
push esi
test al, al
jne 0x10108b16
call fcn.101081f0
add esp, 8
mov eax, esi
pop esi
add esp, 0x60
ret
call fcn.100fea00
add esp, 8
mov eax, esi
pop esi
add esp, 0x60
ret
push ebx
mov bl, byte [eax + 0x28]
cmp bl, 1
jbe 0x10108bfb
cmp byte [eax + 0x29], 1
jbe 0x10108bfb
movzx eax, byte [eax + 0x29]
push eax
lea eax, [esp + 0x3c]
push eax
call fcn.100dd0c0
movzx ecx, bl
mov esi, eax
push ecx
lea eax, [esp + 0x5c]
push eax
call fcn.100dd0c0
add esp, 0x10
mov ecx, eax
push 5
push 0x1019f460
push 0
call fcn.1003c870
mov dword [esp + 8], 0
lea ecx, [esp + 8]
mov dword [esp + 0x18], 0
mov dword [esp + 0x1c], 0
movups xmm0, xmmword [eax]
push 1
push 0x1019f79c
movups xmmword [esp + 0x10], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [esp + 0x20], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
call fcn.100e47b0
mov ecx, dword [esp + 0x6c]
push esi
movups xmm0, xmmword [eax]
movups xmmword [esp + 0x24], xmm0
movq xmm0, qword [eax + 0x10]
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
lea eax, [esp + 0x24]
push eax
push dword [esp + 0x78]
movq qword [esp + 0x3c], xmm0
call fcn.100dd1a0
mov eax, dword [esp + 0x6c]
pop ebx
pop esi
add esp, 0x60
ret
mov eax, dword [eax]
cmp eax, 0x1c
ja case.0x10108c0d.5
movzx eax, byte [eax + 0x10109028]
jmp dword [eax*4 + 0x10109008]
movzx eax, bl
dec eax
cmp eax, 3
ja case.default.0x10108c21
jmp dword [eax*4 + 0x10109048]
mov esi, dword [esp + 0x6c]
push 5
push 0x1019f460
push esi
mov dword [esi], 0
mov dword [esi + 0x10], 5
mov dword [esi + 0x14], 0xf
call sub.VCRUNTIME140.dll_memmove
add esp, 0xc
mov byte [esi + 5], 0
mov eax, esi
pop ebx
pop esi
add esp, 0x60
ret
mov esi, dword [esp + 0x6c]
push 6
push str.float2
push esi
mov dword [esi], 0
mov dword [esi + 0x10], 6
mov dword [esi + 0x14], 0xf
call sub.VCRUNTIME140.dll_memmove
add esp, 0xc
mov byte [esi + 6], 0
mov eax, esi
pop ebx
pop esi
add esp, 0x60
ret
mov esi, dword [esp + 0x6c]
push 6
push str.float3
push esi
mov dword [esi], 0
mov dword [esi + 0x10], 6
mov dword [esi + 0x14], 0xf
call sub.VCRUNTIME140.dll_memmove
add esp, 0xc
mov byte [esi + 6], 0
mov eax, esi
pop ebx
pop esi
add esp, 0x60
ret
mov esi, dword [esp + 0x6c]
push 6
push str.float4
push esi
mov dword [esi], 0
mov dword [esi + 0x10], 6
mov dword [esi + 0x14], 0xf
call sub.VCRUNTIME140.dll_memmove
add esp, 0xc
mov byte [esi + 6], 0
mov eax, esi
pop ebx
pop esi
add esp, 0x60
ret
movzx eax, bl
dec eax
cmp eax, 3
ja case.default.0x10108d05
jmp dword [eax*4 + 0x10109058]
mov esi, dword [esp + 0x6c]
push 3
push 0x101a07d8
push esi
mov dword [esi], 0
mov dword [esi + 0x10], 3
mov dword [esi + 0x14], 0xf
call sub.VCRUNTIME140.dll_memmove
add esp, 0xc
mov byte [esi + 3], 0
mov eax, esi
pop ebx
pop esi
add esp, 0x60
ret
mov eax, dword [esp + 0x6c]
pop ebx
pop esi
mov dword [eax + 0x10], 4
mov dword [eax + 0x14], 0xf
mov dword [eax], 0x32746e69
mov byte [eax + 4], 0
add esp, 0x60
ret
mov eax, dword [esp + 0x6c]
pop ebx
pop esi
mov dword [eax + 0x10], 4
mov dword [eax + 0x14], 0xf
mov dword [eax], 0x33746e69
mov byte [eax + 4], 0
add esp, 0x60
ret
mov eax, dword [esp + 0x6c]
pop ebx
pop esi
mov dword [eax + 0x10], 4
mov dword [eax + 0x14], 0xf
mov dword [eax], 0x34746e69
mov byte [eax + 4], 0
add esp, 0x60
ret
movzx eax, bl
dec eax
cmp eax, 3
ja case.default.0x10108db3
jmp dword [eax*4 + 0x10109068]
mov eax, dword [esp + 0x6c]
pop ebx
pop esi
mov dword [eax + 0x10], 4
mov dword [eax + 0x14], 0xf
mov dword [eax], 0x746e6975
mov byte [eax + 4], 0
add esp, 0x60
ret
mov esi, dword [esp + 0x6c]
push 5
push str.uint2
push esi
mov dword [esi], 0
mov dword [esi + 0x10], 5
mov dword [esi + 0x14], 0xf
call sub.VCRUNTIME140.dll_memmove
add esp, 0xc
mov byte [esi + 5], 0
mov eax, esi
pop ebx
pop esi
add esp, 0x60
ret
mov esi, dword [esp + 0x6c]
push 5
push str.uint3
push esi
mov dword [esi], 0
mov dword [esi + 0x10], 5
mov dword [esi + 0x14], 0xf
call sub.VCRUNTIME140.dll_memmove
add esp, 0xc
mov byte [esi + 5], 0
mov eax, esi
pop ebx
pop esi
add esp, 0x60
ret
mov esi, dword [esp + 0x6c]
push 5
push str.uint4
push esi
mov dword [esi], 0
mov dword [esi + 0x10], 5
mov dword [esi + 0x14], 0xf
call sub.VCRUNTIME140.dll_memmove
add esp, 0xc
mov byte [esi + 5], 0
mov eax, esi
pop ebx
pop esi
add esp, 0x60
ret
movzx eax, bl
dec eax
cmp eax, 3
ja case.0x10108c0d.0
jmp dword [eax*4 + 0x10109078]
mov eax, dword [esp + 0x6c]
pop ebx
pop esi
mov dword [eax + 0x10], 4
mov dword [eax + 0x14], 0xf
mov dword [eax], 0x6c6f6f62
mov byte [eax + 4], 0
add esp, 0x60
ret
mov esi, dword [esp + 0x6c]
push 5
push str.bool2
push esi
mov dword [esi], 0
mov dword [esi + 0x10], 5
mov dword [esi + 0x14], 0xf
call sub.VCRUNTIME140.dll_memmove
add esp, 0xc
mov byte [esi + 5], 0
mov eax, esi
pop ebx
pop esi
add esp, 0x60
ret
mov esi, dword [esp + 0x6c]
push 5
push str.bool3
push esi
mov dword [esi], 0
mov dword [esi + 0x10], 5
mov dword [esi + 0x14], 0xf
call sub.VCRUNTIME140.dll_memmove
add esp, 0xc
mov byte [esi + 5], 0
mov eax, esi
pop ebx
pop esi
add esp, 0x60
ret
mov esi, dword [esp + 0x6c]
push 5
push str.bool4
push esi
mov dword [esi], 0
mov dword [esi + 0x10], 5
mov dword [esi + 0x14], 0xf
call sub.VCRUNTIME140.dll_memmove
add esp, 0xc
mov byte [esi + 5], 0
mov eax, esi
pop ebx
pop esi
add esp, 0x60
ret
mov eax, dword [esp + 0x6c]
pop ebx
pop esi
mov dword [eax + 0x10], 4
mov dword [eax + 0x14], 0xf
mov dword [eax], 0x64696f76
mov byte [eax + 4], 0
add esp, 0x60
ret
mov esi, dword [esp + 0x6c]
push 9
push str.sampler2D
push esi
mov dword [esi], 0
mov dword [esi + 0x10], 9
mov dword [esi + 0x14], 0xf
call sub.VCRUNTIME140.dll_memmove
add esp, 0xc
mov byte [esi + 9], 0
mov eax, esi
pop ebx
pop esi
add esp, 0x60
ret
mov esi, dword [esp + 0x6c]
push 0xb
push str.samplerCUBE
push esi
mov dword [esi], 0
mov dword [esi + 0x10], 0xb
mov dword [esi + 0x14], 0xf
call sub.VCRUNTIME140.dll_memmove
add esp, 0xc
mov byte [esi + 0xb], 0
mov eax, esi
pop ebx
pop esi
add esp, 0x60
ret
mov esi, dword [esp + 0x6c]
push 0xe
push str._unknown_type_
push esi
mov dword [esi], 0
mov dword [esi + 0x10], 0xe
mov dword [esi + 0x14], 0xf
call sub.VCRUNTIME140.dll_memmove
add esp, 0xc
mov byte [esi + 0xe], 0
mov eax, esi
pop ebx
pop esi
add esp, 0x60
ret