Function at 0x10049b40
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 0x10104755
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x60
mov eax, dword [0x10167080]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
movups xmm0, xmmword [ebx + 8]
lea ecx, [ebp - 0x44]
movups xmmword [ebp - 0x60], xmm0
movq xmm0, qword [ebx + 0x18]
movq qword [ebp - 0x50], xmm0
mov esi, dword [ebp - 0x50]
mov edx, esi
call fcn.1001bb80
mov dword [ebp - 4], 0
movzx eax, byte [ebp - 0x50]
xor eax, 0x811c9dc5
mov dword [ebp - 0x48], esi
imul ecx, eax, 0x1000193
mov eax, esi
shr eax, 8
movzx eax, al
xor ecx, eax
mov eax, esi
shr eax, 0x10
imul ecx, ecx, 0x1000193
movzx eax, al
shr esi, 0x18
xor ecx, eax
imul eax, ecx, 0x1000193
lea ecx, [edi + 0x588]
xor eax, esi
imul eax, eax, 0x1000193
push eax
lea eax, [ebp - 0x48]
push eax
lea eax, [ebp - 0x68]
push eax
call fcn.1004c410
mov eax, dword [eax + 4]
test eax, eax
jne 0x10049c04
mov eax, dword [edi + 0x58c]
mov dword [edi + 0xf8], eax
cmp eax, dword [edi + 0x58c]
je 0x10049c31
add eax, 0xc
lea ecx, [ebp - 0x44]
cmp ecx, eax
je 0x10049c31
cmp dword [eax + 0x14], 0xf
mov ecx, dword [eax + 0x10]
jbe 0x10049c27
mov eax, dword [eax]
push ecx
push eax
lea ecx, [ebp - 0x44]
call fcn.10008ad0
mov esi, dword [ebp - 0x4c]
lea ecx, [ebp - 0x2c]
mov edx, esi
call fcn.1001bb80
mov byte [ebp - 4], 1
movzx eax, byte [ebp - 0x4c]
xor eax, 0x811c9dc5
mov dword [ebp - 0x48], esi
imul ecx, eax, 0x1000193
mov eax, esi
shr eax, 8
movzx eax, al
xor ecx, eax
mov eax, esi
shr eax, 0x10
imul ecx, ecx, 0x1000193
movzx eax, al
shr esi, 0x18
xor ecx, eax
imul eax, ecx, 0x1000193
lea ecx, [edi + 0x5a8]
xor eax, esi
imul eax, eax, 0x1000193
push eax
lea eax, [ebp - 0x48]
push eax
lea eax, [ebp - 0x68]
push eax
call fcn.1004c410
mov eax, dword [eax + 4]
test eax, eax
jne 0x10049ca0
mov eax, dword [edi + 0x5ac]
mov dword [edi + 0xf8], eax
cmp eax, dword [edi + 0x5ac]
je 0x10049ccd
add eax, 0xc
lea ecx, [ebp - 0x2c]
cmp ecx, eax
je 0x10049ccd
cmp dword [eax + 0x14], 0xf
mov ecx, dword [eax + 0x10]
jbe 0x10049cc3
mov eax, dword [eax]
push ecx
push eax
lea ecx, [ebp - 0x2c]
call fcn.10008ad0
cmp dword [edi + 0x3c], 0xf
lea edx, [edi + 0x28]
mov eax, dword [edx + 0x10]
jbe 0x10049cdb
mov edx, dword [edx]
push eax
lea ecx, [edi + 0x48]
call fcn.100355b0
add esp, 4
mov edx, str.rect
mov ecx, eax
call fcn.1001b890
mov esi, eax
mov ecx, dword [esi]
mov edx, dword [ecx + 4]
mov ecx, dword [edx + esi + 0x14]
and ecx, 0xfffffe7f
or ecx, 0x40
mov dword [edx + esi + 0x14], ecx
mov eax, dword [edi + 0x40]
sub eax, 4
cdq
push edx
push eax
lea eax, [ebp - 0x70]
push eax
call fcn.100d87f5
add esp, 0xc
mov edx, eax
mov ecx, esi
call fcn.1004b950
mov ecx, dword [0x1016f368]
mov ecx, dword [ecx + 4]
mov dl, byte [ecx + 0x1016f3a8]
mov byte [ecx + 0x1016f3a8], 0x20
mov ecx, eax
call fcn.1004b980
movss xmm1, dword [ebp - 0x60]
mov ecx, eax
call fcn.100241f0
mov edx, 0x1013f078
mov ecx, eax
call fcn.1001b890
movss xmm1, dword [ebp - 0x5c]
mov ecx, eax
call fcn.100241f0
mov edx, 0x1013f078
mov ecx, eax
call fcn.1001b890
movss xmm1, dword [ebp - 0x58]
mov ecx, eax
call fcn.100241f0
mov edx, 0x1013f078
mov ecx, eax
call fcn.1001b890
movss xmm1, dword [ebp - 0x54]
mov ecx, eax
call fcn.100241f0
mov edx, 0x1013f078
mov ecx, eax
call fcn.1001b890
cmp dword [ebp - 0x30], 0xf
lea edx, [ebp - 0x44]
push dword [ebp - 0x34]
cmova edx, dword [ebp - 0x44]
mov ecx, eax
call fcn.100355b0
add esp, 4
mov edx, 0x1013f078
mov ecx, eax
call fcn.1001b890
cmp dword [ebp - 0x18], 0xf
lea edx, [ebp - 0x2c]
push dword [ebp - 0x1c]
cmova edx, dword [ebp - 0x2c]
mov ecx, eax
call fcn.100355b0
add esp, 4
mov edx, 0x1013e1ac
mov ecx, eax
call fcn.1001b890
mov ecx, dword [ebp - 0x18]
cmp ecx, 0xf
jbe 0x10049e1e
mov edx, dword [ebp - 0x2c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10049e14
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10049e80
push ecx
push edx
call fcn.100d91c2
add esp, 8
mov ecx, dword [ebp - 0x30]
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x18], 0xf
mov byte [ebp - 0x2c], 0
cmp ecx, 0xf
jbe 0x10049e60
mov edx, dword [ebp - 0x44]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10049e56
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10049e80
push ecx
push edx
call fcn.100d91c2
add esp, 8
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.100d8e9a
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret 0x18
call fcn.100de11f
int3