Function at 0x100f1860
Capabilities:
Hash data using fnv

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x10149cf2
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x2b8
mov eax, dword [0x1030e040]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
mov dword [ebp - 0x27c], esi
mov dword [ebp - 0x18], esi
mov dword [ebp - 0x2c0], esi
mov dword [ebp - 0x270], 0
mov dword [esi], 0
mov dword [esi + 4], 0
mov dword [esi + 8], 0
mov dword [ebp - 4], 0
mov dword [esi + 0xc], 0
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 0
mov byte [ebp - 4], 1
xorps xmm0, xmm0
push dword [ebx + 0xc]
lea ecx, [ebp - 0x118]
mov dword [esi + 0x18], 0
push dword [ebx + 8]
mov dword [esi + 0x1c], 3
movlpd qword [ebp - 0x1c], xmm0
movups xmmword [ebp - 0x118], xmm0
mov dword [ebp - 0x108], 0
mov dword [ebp - 0x104], 0
call fcn.10012a80
mov byte [ebp - 4], 2
lea eax, [ebp - 0x100]
push 0xa0
push 0
push eax
call sub.VCRUNTIME140.dll_memset
lea eax, [ebp - 0xfc]
mov byte [ebp - 0x100], 0
add esp, 0xc
mov dword [ebp - 0x284], eax
mov dword [ebp - 0xfc], 0
mov dword [ebp - 0xf8], 0
mov dword [ebp - 0xf4], 0
mov byte [ebp - 4], 3
mov dword [ebp - 0xf0], 0
mov dword [ebp - 0xec], 0
mov dword [ebp - 0xe8], 0
mov byte [ebp - 4], 4
mov dword [ebp - 0xe4], 0
mov dword [ebp - 0xe0], 0
mov dword [ebp - 0xdc], 0
mov byte [ebp - 4], 5
mov dword [ebp - 0xd8], 0
mov dword [ebp - 0xd4], 0
mov dword [ebp - 0xd0], 0
mov byte [ebp - 4], 6
mov dword [ebp - 0xcc], 0
mov dword [ebp - 0xc8], 0
mov dword [ebp - 0xc4], 0
mov byte [ebp - 4], 7
mov dword [ebp - 0xc0], 0
mov dword [ebp - 0xbc], 0
mov dword [ebp - 0xb8], 0
mov byte [ebp - 4], 8
mov dword [ebp - 0xb4], 0
mov dword [ebp - 0xb0], 0
mov dword [ebp - 0xac], 0
mov byte [ebp - 4], 0xa
mov dword [ebp - 0xa8], 0
mov dword [ebp - 0xa4], 0
mov dword [ebp - 0xa0], 0
mov byte [ebp - 4], 0xb
mov dword [ebp - 0x9c], 0
mov dword [ebp - 0x98], 0
mov dword [ebp - 0x94], 0
mov byte [ebp - 4], 0xc
xorps xmm0, xmm0
movups xmmword [ebp - 0x90], xmm0
mov dword [ebp - 0x80], 0
mov dword [ebp - 0x7c], 0
mov dword [ebp - 0x80], 0
mov dword [ebp - 0x7c], 0xf
mov byte [ebp - 0x90], 0
mov byte [ebp - 4], 0xd
movups xmmword [ebp - 0x78], xmm0
mov dword [ebp - 0x68], 0
mov dword [ebp - 0x64], 0
mov dword [ebp - 0x68], 0
mov dword [ebp - 0x64], 0xf
mov byte [ebp - 0x78], 0
mov byte [ebp - 4], 0xf
lea ecx, [ebp - 0x2b8]
push 6
push str.simple
mov byte [ebp - 0x2bc], 1
movups xmmword [ebp - 0x2b8], xmm0
mov dword [ebp - 0x2a8], 0
mov dword [ebp - 0x2a4], 0
call fcn.10012a80
mov byte [ebp - 4], 0x10
xorps xmm0, xmm0
movups xmmword [ebp - 0x29c], xmm0
mov dword [ebp - 0x28c], 0
mov dword [ebp - 0x288], 0
mov byte [ebp - 0x2a0], 1
mov dword [ebp - 0x28c], 0
mov dword [ebp - 0x288], 0xf
mov byte [ebp - 0x29c], 0
mov byte [ebp - 4], 0x12
lea ecx, [ebp - 0x38]
push 0
push 0x10172e27
movups xmmword [ebp - 0x38], xmm0
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x24], 0
call fcn.10012a80
mov byte [ebp - 4], 0x13
lea eax, [ebp - 0x1a8]
push 0x44
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
lea eax, [ebp - 0x118]
lea ecx, [ebp - 0x1a8]
push 3
push eax
call fcn.100f32a0
mov byte [ebp - 4], 0x14
lea eax, [ebp - 0x160]
push 0x44
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
lea eax, [ebp - 0x38]
lea ecx, [ebp - 0x160]
push 3
push eax
call fcn.100f32a0
mov byte [ebp - 4], 0x15
lea eax, [ebp - 0x1a8]
push 1
push 0
push eax
lea ecx, [ebp - 0x268]
call dword [sym.imp.MSVCP140.dll_public:_void___thiscall_std::basic_istream_char__struct_std::char_traits_char__::constructor_class_std::basic_streambuf_char__struct_std::char_traits_char_____bool_]
mov byte [ebp - 4], 0x16
push 1
push 0
lea eax, [ebp - 0x160]
push eax
lea ecx, [ebp - 0x208]
call dword [sym.imp.MSVCP140.dll_public:_void___thiscall_std::basic_istream_char__struct_std::char_traits_char__::constructor_class_std::basic_streambuf_char__struct_std::char_traits_char_____bool_]
mov byte [ebp - 4], 0x17
mov dword [ebp - 0x1c], vtable.tinyobj::MaterialReader.0
mov byte [ebp - 4], 0x18
lea eax, [ebp - 0x208]
mov dword [ebp - 0x1c], vtable.tinyobj::MaterialStreamReader.0
mov dword [ebp - 0x18], eax
mov byte [ebp - 4], 0x19
lea eax, [ebp - 0x1c]
push dword [ebp - 0x2a0]
lea edx, [ebp - 0xa8]
push dword [ebp - 0x2bc]
lea ecx, [ebp - 0xfc]
push eax
lea eax, [ebp - 0x268]
push eax
lea eax, [ebp - 0x78]
push eax
lea eax, [ebp - 0x90]
push eax
lea eax, [ebp - 0x9c]
push eax
call fcn.100ee0e0
add esp, 0x1c
mov byte [ebp - 0x269], al
mov byte [ebp - 0x100], al
mov byte [ebp - 4], 0x17
mov dword [ebp - 0x1c], vtable.tinyobj::MaterialStreamReader.0
mov byte [ebp - 4], 0x17
mov dword [ebp - 0x1c], vtable.tinyobj::MaterialReader.0
mov byte [ebp - 4], 0x16
lea ecx, [ebp - 0x208]
call dword [sym.imp.MSVCP140.dll_public:_void___thiscall_std::basic_istream_char__struct_std::char_traits_char__::vbase_dtor_void_]
mov byte [ebp - 4], 0x15
lea ecx, [ebp - 0x268]
call dword [sym.imp.MSVCP140.dll_public:_void___thiscall_std::basic_istream_char__struct_std::char_traits_char__::vbase_dtor_void_]
mov byte [ebp - 4], 0x14
mov dword [ebp - method.std::basic_stringbuf_char__struct_std::char_traits_char___class_std::allocator_char__.virtual_0], vtable.std::basic_stringbuf_char__struct_std::char_traits_char___class_std::allocator_char__.0
mov byte [ebp - 4], 0x1b
lea ecx, [ebp - 0x160]
call fcn.100281b0
mov byte [ebp - 4], 0x14
lea ecx, [ebp - 0x160]
call dword [sym.imp.MSVCP140.dll_public_virtual:_void___thiscall_std::basic_streambuf_char__struct_std::char_traits_char__::destructor_void_]
mov byte [ebp - 4], 0x13
mov dword [ebp - method.std::basic_stringbuf_char__struct_std::char_traits_char___class_std::allocator_char__.virtual_0], vtable.std::basic_stringbuf_char__struct_std::char_traits_char___class_std::allocator_char__.0
mov byte [ebp - 4], 0x1c
lea ecx, [ebp - 0x1a8]
call fcn.100281b0
mov byte [ebp - 4], 0x13
lea ecx, [ebp - 0x1a8]
call dword [sym.imp.MSVCP140.dll_public_virtual:_void___thiscall_std::basic_streambuf_char__struct_std::char_traits_char__::destructor_void_]
mov byte [ebp - 4], 0x12
lea ecx, [ebp - 0x38]
call fcn.100126b0
mov byte [ebp - 4], 0x1d
lea ecx, [ebp - 0x29c]
call fcn.100126b0
mov byte [ebp - 4], 0xf
lea ecx, [ebp - 0x2b8]
call fcn.100126b0
cmp byte [ebp - 0x269], 0
jne 0x100f1e0a
cmp dword [ebp - 0x68], 0
je 0x100f1dd7
mov byte [ebp - 4], 0x1f
mov edi, dword [0x10317638]
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x18], 0
test edi, edi
je 0x100f1d73
lock inc dword [edi + 4]
mov edi, dword [0x10317638]
mov ecx, dword [0x10317634]
lea eax, [ebp - 0x78]
push eax
push 0x11
push str.TinyObjReader:_
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x270], 2
call fcn.10043870
mov eax, 2
mov dword [ebp - 0x270], eax
and eax, 0xfffffffd
mov dword [ebp - 0x270], eax
mov byte [ebp - 4], 0xf
test edi, edi
je 0x100f1dd7
or eax, 0xffffffff
lock xadd dword [edi + 4], eax
jne 0x100f1dd7
mov eax, dword [edi]
mov ecx, edi
call dword [eax]
or eax, 0xffffffff
lock xadd dword [edi + 8], eax
dec eax
jne 0x100f1dd7
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 4]
mov byte [ebp - 4], 0x23
lea ecx, [ebp - 0x78]
call fcn.100126b0
mov byte [ebp - 4], 0x22
lea ecx, [ebp - 0x90]
call fcn.100126b0
mov byte [ebp - 4], 0x21
lea ecx, [ebp - 0x9c]
call fcn.100f2fd0
mov byte [ebp - 4], 0x20
jmp 0x100f2221
cmp dword [ebp - 0x80], 0
je 0x100f1eb3
mov byte [ebp - 4], 0x25
mov eax, dword [0x10317638]
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x274], eax
test eax, eax
je 0x100f1e44
lock inc dword [eax + 4]
mov eax, dword [0x10317638]
mov dword [ebp - 0x274], eax
mov ecx, dword [0x10317634]
mov dword [ebp - 0x18], eax
lea eax, [ebp - 0x90]
push eax
push 0x11
push str.TinyObjReader:_
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 0x270], 1
call fcn.100f3ab0
mov eax, 1
mov dword [ebp - 0x270], eax
and eax, 0xfffffffe
mov dword [ebp - 0x270], eax
mov byte [ebp - 4], 0xf
mov ecx, dword [ebp - 0x274]
test ecx, ecx
je 0x100f1eb3
or eax, 0xffffffff
lock xadd dword [ecx + 4], eax
jne 0x100f1eb3
mov eax, dword [ecx]
call dword [eax]
mov ecx, dword [ebp - 0x274]
or eax, 0xffffffff
lock xadd dword [ecx + 8], eax
dec eax
jne 0x100f1eb3
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, dword [ebp - 0xf8]
mov eax, 0xaaaaaaab
sub ecx, dword [ebp - 0xfc]
sar ecx, 2
mul ecx
mov ecx, dword [esi + 0x14]
sub ecx, dword [esi + 0xc]
mov eax, edx
shr eax, 1
mov dword [ebp - 0x278], eax
mov dword [ebp - 0x20], eax
mov eax, 0x92492493
imul ecx
add edx, ecx
mov ecx, dword [ebp - 0x278]
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ecx, eax
jbe 0x100f1f11
cmp ecx, 0x9249249
ja 0x100f2273
lea eax, [ebp - 0x20]
push eax
lea ecx, [esi + 0xc]
call fcn.100f42b0
xorps xmm0, xmm0
mov dword [ebp - 0x278], 0
mov eax, dword [ebp - 0x278]
movups xmmword [ebp - 0x5c], xmm0
push 0x28
movups xmmword [ebp - 0x4c], xmm0
mov dword [ebp - 0x5c], eax
mov dword [ebp - 0x58], 0
mov dword [ebp - 0x54], 0
call fcn.1013cffa
add esp, 4
mov dword [eax], eax
mov dword [eax + 4], eax
mov dword [ebp - 0x58], eax
mov byte [ebp - 4], 0x26
mov dword [ebp - 0x50], 0
mov dword [ebp - 0x4c], 0
mov dword [ebp - 0x48], 0
mov byte [ebp - 4], 0x27
lea ecx, [ebp - 0x50]
push dword [ebp - 0x58]
mov dword [ebp - 0x44], 7
push 0x10
mov dword [ebp - 0x40], 8
mov dword [ebp - 0x5c], 0x3f800000
call fcn.1003e530
mov byte [ebp - 4], 0x29
mov eax, dword [ebp - 0xa4]
mov ecx, dword [ebp - 0xa8]
mov dword [ebp - 0x20], eax
cmp ecx, eax
je 0x100f21e7
add ecx, 0x18
mov edx, eax
mov dword [ebp - 0x278], ecx
mov eax, dword [ecx + 4]
mov ecx, dword [ecx]
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x280], ecx
cmp ecx, eax
je 0x100f21cd
nop word [eax + eax]
mov eax, dword [ecx]
xorps xmm0, xmm0
mov esi, dword [ebp - 0xc0]
movups xmmword [ebp - 0x3c], xmm0
mov dword [ebp - 0x24], 0
movq qword [ebp - 0x2c], xmm0
lea edx, [eax + eax*2]
mov eax, dword [ebp - 0xfc]
shl edx, 2
mov dword [ebp - 0x274], edx
movss xmm0, dword [eax + edx]
movss xmm1, dword [eax + edx + 4]
movss xmm2, dword [eax + edx + 8]
mov eax, dword [ecx + 4]
movss dword [ebp - 0x3c], xmm0
movss dword [ebp - 0x38], xmm1
movss dword [ebp - 0x34], xmm2
lea ecx, [eax + eax*2]
mov eax, dword [ebp - 0xe4]
movss xmm0, dword [eax + ecx*4]
movss xmm1, dword [eax + ecx*4 + 4]
movss xmm2, dword [eax + ecx*4 + 8]
movss dword [ebp - 0x30], xmm0
movss dword [ebp - 0x2c], xmm1
movss dword [ebp - 0x28], xmm2
movss xmm0, dword [esi + edx]
mulss xmm0, dword [0x102f3abc]
call fcn.1013e3a0
mov edi, eax
mov eax, dword [ebp - 0x274]
or edi, 0xffffff00
shl edi, 8
movss xmm0, dword [esi + eax + 4]
mulss xmm0, dword [0x102f3abc]
call fcn.1013e3a0
movzx eax, al
or edi, eax
mov eax, dword [ebp - 0x274]
shl edi, 8
mov dword [ebp - 0x284], edi
movss xmm0, dword [esi + eax + 8]
mulss xmm0, dword [0x102f3abc]
call fcn.1013e3a0
movzx eax, al
mov edx, edi
or edx, eax
movzx eax, dl
xor eax, 0x811c9dc5
mov dword [ebp - 0x24], edx
imul ecx, eax, 0x1000193
mov eax, edx
shr eax, 8
movzx eax, al
xor ecx, eax
mov eax, edx
shr eax, 0x10
imul ecx, ecx, 0x1000193
movzx eax, al
shr edx, 0x18
xor ecx, eax
imul eax, ecx, 0x1000193
xor eax, edx
imul edi, eax, 0x1000193
lea eax, [ebp - 0x30]
push eax
call fcn.100f3960
mov esi, eax
lea eax, [ebp - 0x3c]
push eax
and esi, 0x7fffffff
call fcn.100f3960
shr eax, 1
lea ecx, [ebp - 0x5c]
xor esi, eax
lea eax, [edi + edi]
xor esi, eax
lea eax, [ebp - 0x3c]
push esi
push eax
lea eax, [ebp - 0x2c8]
push eax
call fcn.100f4e20
cmp dword [eax + 4], 0
jne 0x100f2185
mov edi, dword [ebp - 0x27c]
mov eax, 0x92492493
mov ecx, dword [edi + 0x10]
sub ecx, dword [edi + 0xc]
imul ecx
lea eax, [ebp - 0x3c]
add edx, ecx
lea ecx, [ebp - 0x5c]
sar edx, 4
mov esi, edx
shr esi, 0x1f
push eax
add esi, edx
call fcn.100f2c00
mov dword [eax], esi
mov ecx, dword [edi + 0x10]
cmp ecx, dword [edi + 0x14]
je 0x100f2178
movups xmm0, xmmword [ebp - 0x3c]
movups xmmword [ecx], xmm0
movq xmm0, qword [ebp - 0x2c]
movq qword [ecx + 0x10], xmm0
mov eax, dword [ebp - 0x24]
mov dword [ecx + 0x18], eax
add dword [edi + 0x10], 0x1c
jmp 0x100f2185
lea eax, [ebp - 0x3c]
push eax
push ecx
lea ecx, [edi + 0xc]
call fcn.100f6d10
lea eax, [ebp - 0x3c]
push eax
lea ecx, [ebp - 0x5c]
call fcn.100f2c00
mov esi, dword [ebp - 0x27c]
mov ecx, dword [esi + 4]
cmp ecx, dword [esi + 8]
je 0x100f21a9
mov eax, dword [eax]
mov dword [ecx], eax
add dword [esi + 4], 4
jmp 0x100f21b2
push eax
push ecx
mov ecx, esi
call fcn.100f6ee0
mov ecx, dword [ebp - 0x280]
add ecx, 0xc
mov dword [ebp - 0x280], ecx
cmp ecx, dword [ebp - 0x18]
jne 0x100f1fd0
mov edx, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x278]
add ecx, 0x78
mov dword [ebp - 0x278], ecx
lea eax, [ecx - 0x18]
cmp eax, edx
jne 0x100f1fb4
mov byte [ebp - 4], 0xf
lea ecx, [ebp - 0x5c]
call fcn.1003f320
mov byte [ebp - 4], 0x2e
lea ecx, [ebp - 0x78]
call fcn.100126b0
mov byte [ebp - 4], 0x2d
lea ecx, [ebp - 0x90]
call fcn.100126b0
mov byte [ebp - 4], 0x2c
lea ecx, [ebp - 0x9c]
call fcn.100f2fd0
mov byte [ebp - 4], 0x2b
lea ecx, [ebp - 0xa8]
call fcn.100f3090
mov byte [ebp - 4], 2
lea ecx, [ebp - 0xfc]
call fcn.100e99d0
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x118]
call fcn.100126b0
mov dword [ebp - 4], 0xffffffff
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.1013cfec
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret 8
call fcn.10003740
int3