Function at 0x101a9590
Capabilities:
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x14
mov edi, edx
mov esi, ecx
mov ebx, dword [ebp + 0x18]
mov eax, dword [ebp + 0x1c]
or eax, dword [ebp + 0x14]
or eax, ebx
js 0x101a95ec
mov edx, dword [ebp + 8]
cmp dword [ebp + 0xc], 0x8d41
jne 0x101a9603
mov ecx, dword [esi + 0x1370]
push edx
call fcn.10076790
mov ecx, dword [eax + 0x6c]
sub ecx, dword [ebp + 0x14]
cmp ecx, dword [ebp + 0x20]
jl 0x101a95dd
mov ecx, dword [eax + 0x70]
sub ecx, ebx
mov al, 1
cmp ecx, dword [ebp + 0x24]
jge 0x101a9774
add esi, 0x1d04
mov ecx, esi
push str.The_specified_dimensions_are_outside_of_the_bounds_of_the_texture.
jmp 0x101a95f9
add esi, 0x1d04
mov ecx, esi
push str.Negative_offset.
push 0x501
jmp 0x101a976c
mov ecx, dword [esi + 0x136c]
cmp dword [ecx + 0x2c], edx
mov dword [ebp - 0x14], edi
mov dword [ebp - 0x10], esi
jbe 0x101a9627
mov eax, dword [ecx + 0x30]
mov eax, dword [eax + edx*4]
xor ebx, ebx
cmp eax, 0xffffffff
cmovne ebx, eax
jmp 0x101a96d1
mov esi, edx
shr esi, 0x10
mov eax, edx
shr eax, 8
mov ebx, 0xff
mov edi, edx
and edi, ebx
and eax, ebx
and esi, ebx
mov ebx, edx
shr ebx, 0x18
mov dword [ebp - 0x18], edi
xor edi, 0x811c9dc5
imul edi, edi, 0x1000193
xor edi, eax
imul edi, edi, 0x1000193
xor edi, esi
imul edi, edi, 0x1000193
xor edi, ebx
imul ebx, edi, 0x1000193
and ebx, dword [ecx + 0x4c]
mov edi, dword [ecx + 0x38]
mov ecx, dword [ecx + 0x40]
mov dword [ebp - 0x20], ecx
mov ecx, dword [ecx + ebx*8 + 4]
cmp ecx, edi
je 0x101a96a3
and edx, 0xff000000
shl esi, 0x10
or esi, edx
shl eax, 8
or eax, esi
add eax, dword [ebp - 0x18]
cmp eax, dword [ecx + 8]
mov dword [ebp - 0x1c], edi
jne 0x101a96ad
mov edi, dword [ebp - 0x14]
mov esi, dword [ebp - 0x10]
xor ebx, ebx
jmp 0x101a96c9
mov edi, dword [ebp - 0x14]
mov esi, dword [ebp - 0x10]
xor ebx, ebx
jmp 0x101a96d1
add ebx, ebx
mov edx, dword [ebp - 0x20]
mov edx, dword [edx + ebx*4]
mov edi, dword [ebp - 0x14]
mov esi, dword [ebp - 0x10]
xor ebx, ebx
cmp ecx, edx
je 0x101a96d1
mov ecx, dword [ecx + 4]
cmp eax, dword [ecx + 8]
jne 0x101a96bd
cmp ecx, dword [ebp - 0x1c]
je 0x101a96d1
mov ebx, dword [ecx + 0xc]
mov ecx, ebx
push 0
push esi
call fcn.100917d0
test al, al
je 0x101a975a
mov eax, dword [ebp + 0xc]
cmp eax, 0x8513
mov edi, 0x8515
cmovne edi, eax
push edi
call fcn.1021a610
add esp, 4
movzx eax, al
mov ecx, ebx
push dword [ebp + 0x10]
push eax
call fcn.1008e3d0
mov esi, eax
push edi
call fcn.1021a610
add esp, 4
movzx eax, al
mov dword [ebp - 0x18], ebx
mov ecx, ebx
mov ebx, dword [ebp + 0x10]
push ebx
push eax
call fcn.1008e410
sub esi, dword [ebp + 0x14]
cmp esi, dword [ebp + 0x20]
jl 0x101a977c
sub eax, dword [ebp + 0x18]
cmp eax, dword [ebp + 0x24]
jl 0x101a977c
mov esi, dword [ebp + 0x28]
push edi
call fcn.1021a610
add esp, 4
movzx eax, al
mov ecx, dword [ebp - 0x18]
push ebx
push eax
call fcn.1008e4d0
xor ecx, ecx
inc ecx
test eax, eax
cmovne ecx, eax
mov dword [esi], ecx
mov al, 1
jmp 0x101a9774
add esi, 0x1d04
mov ecx, esi
push str.The_texture_is_not_complete.
push 0x502
push edi
call fcn.1001a2a0
xor eax, eax
add esp, 0x14
pop esi
pop edi
pop ebx
pop ebp
ret
mov ecx, dword [ebp - 0x10]
add ecx, 0x1d04
push str.The_specified_dimensions_are_outside_of_the_bounds_of_the_texture.
push 0x501
push dword [ebp - 0x14]
jmp 0x101a976d