Function at 0x101bce50
Capabilities:
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x18
mov ecx, dword [ebp + 0x10]
mov esi, dword [ebp + 8]
mov edx, dword [esi + 0x136c]
cmp dword [edx + 0x2c], ecx
jbe 0x101bce7e
mov eax, dword [edx + 0x30]
mov edi, dword [eax + ecx*4]
cmp edi, 0xffffffff
jne 0x101bcf3c
jmp 0x101bcf86
mov ebx, ecx
shr ebx, 0x10
mov eax, ecx
shr eax, 8
mov esi, 0xff
mov edi, ecx
and edi, esi
and eax, esi
and ebx, esi
mov esi, ecx
shr esi, 0x18
mov dword [ebp - 0x14], edi
xor edi, 0x811c9dc5
imul edi, edi, 0x1000193
xor edi, eax
imul edi, edi, 0x1000193
xor edi, ebx
imul edi, edi, 0x1000193
xor edi, esi
imul esi, edi, 0x1000193
and esi, dword [edx + 0x4c]
mov edi, dword [edx + 0x38]
mov edx, dword [edx + 0x40]
mov dword [ebp - 0x10], edx
mov edx, dword [edx + esi*8 + 4]
cmp edx, edi
je 0x101bcefd
mov dword [ebp - 0x1c], edi
and ecx, 0xff000000
shl ebx, 0x10
or ebx, ecx
shl eax, 8
or eax, ebx
add eax, dword [ebp - 0x14]
cmp eax, dword [edx + 8]
jne 0x101bcf0d
mov edi, dword [ebp + 0xc]
mov esi, dword [ebp + 8]
mov ebx, str.Source_texture_is_not_a_valid_texture_object.
jmp 0x101bcf30
mov edi, dword [ebp + 0xc]
mov esi, dword [ebp + 8]
mov ebx, str.Source_texture_is_not_a_valid_texture_object.
jmp 0x101bd0cc
add esi, esi
mov ecx, dword [ebp - 0x10]
mov ecx, dword [ecx + esi*4]
mov edi, dword [ebp + 0xc]
mov esi, dword [ebp + 8]
mov ebx, str.Source_texture_is_not_a_valid_texture_object.
cmp edx, ecx
je 0x101bd0cc
mov edx, dword [edx + 4]
cmp eax, dword [edx + 8]
jne 0x101bcf20
cmp edx, dword [ebp - 0x1c]
je 0x101bd0cc
mov edi, dword [edx + 0xc]
test edi, edi
je 0x101bcf86
mov ebx, dword [ebp + 0x1c]
movzx eax, byte [edi + 0x6c]
push eax
call fcn.10219ef0
add esp, 4
movzx eax, al
mov dword [ebp - 0x14], edi
mov ecx, edi
push dword [ebp + 0x14]
mov dword [ebp - 0x1c], eax
push eax
call fcn.1008e490
mov ecx, dword [esi + 0x136c]
cmp dword [ecx + 0x2c], ebx
jbe 0x101bcf93
mov ecx, dword [ecx + 0x30]
mov ebx, dword [ecx + ebx*4]
cmp ebx, 0xffffffff
mov edi, dword [ebp + 0xc]
jne 0x101bd04f
jmp 0x101bd0c7
mov ebx, str.Source_texture_is_not_a_valid_texture_object.
mov edi, dword [ebp + 0xc]
jmp 0x101bd0cc
mov dword [ebp - 0x10], eax
mov esi, ebx
shr esi, 0x10
mov eax, ebx
shr eax, 8
mov edx, 0xff
mov edi, ebx
and edi, edx
and eax, edx
and esi, edx
mov edx, ebx
shr edx, 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, edx
imul edx, edi, 0x1000193
and edx, dword [ecx + 0x4c]
mov edi, dword [ecx + 0x38]
mov ecx, dword [ecx + 0x40]
mov dword [ebp - 0x24], ecx
mov ecx, dword [ecx + edx*8 + 4]
cmp ecx, edi
je 0x101bd015
mov dword [ebp - 0x20], edi
and ebx, 0xff000000
shl esi, 0x10
or esi, ebx
shl eax, 8
or eax, esi
add eax, dword [ebp - 0x18]
cmp eax, dword [ecx + 8]
mov edi, dword [ebp + 0xc]
jne 0x101bd020
mov esi, dword [ebp + 8]
mov ebx, str.Destination_texture_is_not_a_valid_texture_object.
jmp 0x101bd040
mov edi, dword [ebp + 0xc]
mov esi, dword [ebp + 8]
jmp 0x101bd0c7
add edx, edx
mov esi, dword [ebp - 0x24]
mov edx, dword [esi + edx*4]
mov esi, dword [ebp + 8]
mov ebx, str.Destination_texture_is_not_a_valid_texture_object.
cmp ecx, edx
je 0x101bd0cc
mov ecx, dword [ecx + 4]
cmp eax, dword [ecx + 8]
jne 0x101bd030
cmp ecx, dword [ebp - 0x20]
je 0x101bd0cc
mov ebx, dword [ecx + 0xc]
mov eax, dword [ebp - 0x10]
test ebx, ebx
je 0x101bd0c7
mov cl, byte [ebp + 0x18]
movzx edx, cl
mov dword [ebp - 0x18], edx
mov ecx, ebx
push dword [ebp + 0x20]
push edx
mov dword [ebp - 0x10], eax
call fcn.1008e490
mov eax, dword [eax]
mov ecx, esi
mov edx, dword [ebp - 0x10]
mov esi, dword [edx]
mov edx, edi
mov edi, dword [ebp - 0x18]
push edi
push dword [eax]
push dword [esi]
push dword [ebp - 0x14]
call fcn.101bcc70
add esp, 0x10
test al, al
je 0x101bd0e0
mov dword [ebp - 0x10], ebx
mov esi, dword [ebp + 0x38]
mov ebx, dword [ebp + 0x34]
mov edi, dword [ebp + 0x30]
mov eax, ebx
or eax, edi
or eax, esi
js 0x101bd0ea
mov eax, dword [ebp + 0x40]
mov ecx, dword [ebp + 0x3c]
or eax, ecx
or eax, dword [ebp + 0x44]
js 0x101bd0f1
add edi, ecx
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp + 0x14]
push eax
push dword [ebp - 0x1c]
call fcn.1008e3d0
cmp edi, eax
jbe 0x101bd0fe
mov edi, dword [ebp + 0xc]
jmp 0x101bd116
mov ebx, str.Destination_texture_is_not_a_valid_texture_object.
add esi, 0x1d04
mov ecx, esi
push ebx
push 0x501
push edi
call fcn.1001a2a0
xor eax, eax
add esp, 0x18
pop esi
pop edi
pop ebx
pop ebp
ret
mov ebx, str.x__y__or_z_cannot_be_negative.
jmp 0x101bd0f6
mov ebx, str.Cannot_have_negative_height__width__or_depth.
mov edi, dword [ebp + 0xc]
mov esi, dword [ebp + 8]
jmp 0x101bd0cc
add ebx, dword [ebp + 0x40]
mov ecx, dword [ebp - 0x14]
push dword [ebp + 0x14]
push dword [ebp - 0x1c]
call fcn.1008e410
cmp ebx, eax
mov edi, dword [ebp + 0xc]
jbe 0x101bd120
mov esi, dword [ebp + 8]
mov ebx, str.The_specified_dimensions_are_outside_of_the_bounds_of_the_texture.
jmp 0x101bd0cc
add esi, dword [ebp + 0x44]
mov ecx, dword [ebp - 0x14]
push dword [ebp + 0x14]
push dword [ebp - 0x1c]
call fcn.1008e450
cmp esi, eax
mov esi, dword [ebp + 8]
mov ebx, str.The_specified_dimensions_are_outside_of_the_bounds_of_the_texture.
ja 0x101bd0cc
push dword [ebp - 0x18]
call fcn.10219ed0
add esp, 4
mov ebx, str.Invalid_destination_texture_type.
mov ecx, dword [ebp - 0x10]
cmp al, byte [ecx + 0x6c]
jne 0x101bd0cc
mov ecx, dword [ebp + 0x28]
mov eax, dword [ebp + 0x24]
or ecx, eax
or ecx, dword [ebp + 0x2c]
js 0x101bd1cf
mov esi, dword [ebp + 0x3c]
add esi, eax
mov ecx, dword [ebp - 0x10]
mov eax, dword [ebp + 0x20]
push eax
mov edi, dword [ebp - 0x18]
push edi
call fcn.1008e3d0
mov ebx, str.Destination_texture_too_small.
cmp esi, eax
ja 0x101bd0f6
mov esi, dword [ebp + 0x40]
add esi, dword [ebp + 0x28]
mov ecx, dword [ebp - 0x10]
mov eax, dword [ebp + 0x20]
push eax
push edi
call fcn.1008e410
cmp esi, eax
mov eax, dword [ebp + 0x20]
ja 0x101bd0f6
mov edx, edi
mov edi, dword [ebp + 0x44]
add edi, dword [ebp + 0x2c]
mov ecx, dword [ebp - 0x10]
push eax
push edx
call fcn.1008e450
mov ecx, eax
mov al, 1
cmp edi, ecx
mov edi, dword [ebp + 0xc]
mov esi, dword [ebp + 8]
ja 0x101bd0cc
jmp 0x101bd0e2
mov ebx, str.Negative_offset.
jmp 0x101bd0cc