Function at 0x101a9980
Capabilities:
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x28
mov ecx, dword [ebp + 0x44]
mov edi, dword [ebp + 0xc]
mov eax, dword [0x1038000c]
xor eax, ebp
mov dword [ebp - 0x10], eax
mov eax, ecx
or eax, dword [ebp + 0x40]
or eax, dword [ebp + 0x48]
mov ebx, dword [ebp + 8]
js 0x101a9ab6
mov esi, dword [ebp + 0x14]
mov ecx, ebx
mov edx, edi
push esi
push dword [ebp + 0x10]
call fcn.101a9310
add esp, 8
test al, al
je 0x101a9ace
mov ecx, ebx
mov edx, edi
push dword [ebp + 0x2c]
push dword [ebp + 0x28]
call fcn.101a9310
add esp, 8
test al, al
je 0x101a9ace
mov ecx, ebx
mov edx, edi
push dword [ebp + 0x18]
push esi
call fcn.101a94d0
add esp, 8
test al, al
je 0x101a9ace
mov ecx, ebx
mov edx, edi
push dword [ebp + 0x30]
mov eax, dword [ebp + 0x2c]
push eax
call fcn.101a94d0
add esp, 8
test al, al
je 0x101a9ace
mov ecx, ebx
mov edx, edi
push dword [ebp + 0x18]
push esi
push dword [ebp + 0x10]
call fcn.101a97a0
add esp, 0xc
mov dword [ebp - 0x1c], eax
mov ecx, ebx
mov edx, edi
push dword [ebp + 0x30]
push dword [ebp + 0x2c]
push dword [ebp + 0x28]
call fcn.101a97a0
add esp, 0xc
mov ebx, eax
xor eax, eax
inc eax
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x1c]
cmp dword [eax], 0
je 0x101a9ae4
cmp dword [ebx], 0
je 0x101a9ae4
lea eax, [ebp - 0x14]
mov ecx, dword [ebp + 8]
mov edx, dword [ebp + 0xc]
push eax
mov edi, dword [ebp + 0x44]
push edi
push dword [ebp + 0x40]
push dword [ebp + 0x24]
push dword [ebp + 0x20]
push dword [ebp + 0x1c]
push dword [ebp + 0x18]
push esi
push dword [ebp + 0x10]
call fcn.101a9590
add esp, 0x24
test al, al
je 0x101a9ace
mov esi, dword [ebp - 0x1c]
mov cl, byte [esi + 0x34]
mov dword [ebp - 0x20], ebx
mov ch, byte [ebx + 0x34]
test cl, cl
je 0x101a9afc
test ch, ch
jne 0x101a9afc
mov eax, dword [ebp + 0x40]
xor edx, edx
div dword [esi + 0x38]
mov ecx, edi
mov ebx, eax
mov eax, edi
xor edx, edx
div dword [esi + 0x3c]
mov edx, dword [ebp + 0xc]
jmp 0x101a9b21
add ebx, 0x1d04
mov ecx, ebx
push str.Negative_size.
push 0x501
push edi
call fcn.1001a2a0
xor ebx, ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.10212780
mov eax, ebx
add esp, 0x28
pop esi
pop edi
pop ebx
pop ebp
ret
mov ecx, dword [ebp + 8]
add ecx, 0x1d04
push str.Texture_level_does_not_exist.
push 0x501
push dword [ebp + 0xc]
jmp 0x101a9ac9
mov eax, edi
mov esi, dword [ebp + 0x40]
mov ebx, esi
test cl, cl
mov edx, dword [ebp + 0xc]
jne 0x101a9b21
mov eax, edi
mov ebx, esi
test ch, ch
je 0x101a9b21
mov eax, dword [ebp - 0x20]
mov ebx, dword [eax + 0x38]
imul ebx, esi
mov eax, dword [eax + 0x3c]
imul eax, edi
lea edi, [ebp - 0x18]
mov ecx, dword [ebp + 8]
push edi
mov edi, eax
push eax
mov dword [ebp - 0x34], ebx
push ebx
push dword [ebp + 0x3c]
push dword [ebp + 0x38]
push dword [ebp + 0x34]
push dword [ebp + 0x30]
push dword [ebp + 0x2c]
mov esi, dword [ebp + 0x28]
push esi
call fcn.101a9590
add esp, 0x24
test al, al
je 0x101a9ace
mov dword [ebp - 0x30], edi
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x136c]
cmp dword [ecx + 0x2c], esi
jbe 0x101a9b75
mov eax, dword [ecx + 0x30]
mov eax, dword [eax + esi*4]
xor edi, edi
cmp eax, 0xffffffff
cmovne edi, eax
mov esi, dword [ebp - 0x1c]
jmp 0x101a9c16
mov edi, esi
shr edi, 0x10
mov eax, esi
shr eax, 8
mov edx, 0xff
mov ebx, esi
and ebx, edx
and eax, edx
and edi, edx
mov edx, esi
shr edx, 0x18
mov dword [ebp - 0x2c], ebx
xor ebx, 0x811c9dc5
imul ebx, ebx, 0x1000193
xor ebx, eax
imul ebx, ebx, 0x1000193
xor ebx, edi
imul ebx, ebx, 0x1000193
xor ebx, edx
imul edx, ebx, 0x1000193
and edx, dword [ecx + 0x4c]
mov ebx, dword [ecx + 0x38]
mov ecx, dword [ecx + 0x40]
mov dword [ebp - 0x24], ecx
mov ecx, dword [ecx + edx*8 + 4]
mov dword [ebp - 0x28], ebx
cmp ecx, ebx
je 0x101a9bee
and esi, 0xff000000
shl edi, 0x10
or edi, esi
shl eax, 8
or eax, edi
add eax, dword [ebp - 0x2c]
cmp eax, dword [ecx + 8]
jne 0x101a9bf5
mov esi, dword [ebp - 0x1c]
xor edi, edi
jmp 0x101a9c0e
mov esi, dword [ebp - 0x1c]
xor edi, edi
jmp 0x101a9c16
add edx, edx
mov esi, dword [ebp - 0x24]
mov edx, dword [esi + edx*4]
mov esi, dword [ebp - 0x1c]
xor edi, edi
cmp ecx, edx
je 0x101a9c16
mov ecx, dword [ecx + 4]
cmp eax, dword [ecx + 8]
jne 0x101a9c02
cmp ecx, dword [ebp - 0x28]
je 0x101a9c16
mov edi, dword [ecx + 0xc]
push dword [ebp + 0x2c]
call fcn.1021a610
add esp, 4
cmp al, 0x10
jne 0x101a9c29
xor ebx, ebx
jmp 0x101a9c5c
movzx eax, al
mov ecx, edi
push dword [ebp + 0x30]
push eax
call fcn.1008e390
mov ecx, dword [ebp + 0x38]
or ecx, dword [ebp + 0x34]
xor ebx, ebx
or ecx, dword [ebp + 0x3c]
jne 0x101a9c5c
mov ecx, dword [ebp + 0x40]
cmp dword [eax], ecx
jne 0x101a9c5c
mov ecx, dword [ebp + 0x44]
cmp dword [eax + 4], ecx
jne 0x101a9c5c
mov ecx, dword [ebp + 0x48]
cmp dword [eax + 8], ecx
sete bl
mov cl, byte [esi + 0x34]
test cl, cl
je 0x101a9c7f
test bl, bl
jne 0x101a9c7f
mov eax, dword [ebp + 0x40]
xor edx, edx
div dword [esi + 0x38]
test edx, edx
jne 0x101a9cd1
mov eax, dword [ebp + 0x44]
xor edx, edx
div dword [esi + 0x3c]
test edx, edx
jne 0x101a9cd1
mov edx, dword [ebp - 0x20]
mov ch, byte [edx + 0x34]
test ch, ch
sete al
or al, bl
mov ebx, edx
je 0x101a9cb9
mov eax, dword [esi]
mov edx, dword [ebx]
cmp eax, edx
jne 0x101a9ce4
mov eax, dword [ebp - 0x14]
mov bl, 1
cmp eax, dword [ebp - 0x18]
je 0x101a9ad0
mov ecx, dword [ebp + 8]
add ecx, 0x1d04
push str.Samples_must_not_be_greater_than_maximum_supported_value_for_the_format.
jmp 0x101a9d79
mov eax, dword [ebp - 0x34]
xor edx, edx
div dword [ebx + 0x38]
test edx, edx
jne 0x101a9cd1
mov eax, dword [ebp - 0x30]
xor edx, edx
div dword [ebx + 0x3c]
test edx, edx
je 0x101a9c90
mov ecx, dword [ebp + 8]
add ecx, 0x1d04
push str.Invalid_region_for_compressed_texture_format.
jmp 0x101a9af2
cmp cl, ch
jne 0x101a9d17
test cl, cl
je 0x101a9d5f
cmp eax, 0x8e8e
jg 0x101a9da9
lea ecx, [eax - 0x8dbb]
cmp ecx, 3
ja case.default.0x101a9d06
jmp dword [ecx*4 + 0x102ffda8]
cmp edx, 0x8dbc
je 0x101a9c98
jmp case.0x101a9d32.37822
test cl, cl
mov ecx, edx
cmove ecx, eax
cmove eax, edx
cmp eax, 0x93af
jle 0x101a9d83
add eax, 0xffff6c50
cmp eax, 0x39
ja case.0x101a9d32.37822
jmp dword [eax*4 + 0x102ffcc0]
cmp ecx, 0x8814
je 0x101a9c98
cmp ecx, 0x8d70
je 0x101a9c98
cmp ecx, 0x8d82
je 0x101a9c98
jmp case.0x101a9d32.37822
mov eax, dword [esi + 0x2c]
cmp eax, dword [ebx + 0x2c]
je 0x101a9c98
mov ecx, dword [ebp + 8]
add ecx, 0x1d04
push str.Texture_formats_are_not_compatible
push 0x502
jmp 0x101a9af7
cmp eax, 0x8dbc
jle 0x101a9dc9
lea edx, [eax - 0x9270]
cmp edx, 9
ja 0x101a9e35
mov eax, 0xf3
bt eax, edx
jb 0x101a9e69
jmp case.0x101a9d32.37808
lea ecx, [eax - 0x9270]
cmp ecx, 3
ja case.default.0x101a9db4
jmp dword [ecx*4 + 0x102ffdb8]
cmp edx, 0x9271
je 0x101a9c98
jmp case.0x101a9d32.37822
cmp eax, 0x8c4b
jle 0x101a9e4b
lea edx, [eax - 0x8c4c]
cmp edx, 2
jb 0x101a9e69
lea edx, [eax - 0x8c4e]
cmp edx, 2
jb case.0x101a9d32.37808
add eax, 0xffff7245
cmp eax, 2
jb 0x101a9e69
jmp case.0x101a9d32.37822
cmp eax, 0x8e8e
jne 0x101a9f22
cmp edx, 0x8e8f
je 0x101a9c98
jmp case.0x101a9d32.37822
cmp eax, 0x8e8f
jne 0x101a9f22
cmp edx, 0x8e8e
je 0x101a9c98
jmp case.0x101a9d32.37822
lea edx, [eax - 0x8e8c]
cmp edx, 4
jb case.0x101a9d32.37808
add eax, 0xffff7243
jmp 0x101a9e5b
lea edx, [eax - 0x83f0]
cmp edx, 2
jb 0x101a9e69
add eax, 0xffff7c0e
cmp eax, 2
jb case.0x101a9d32.37808
jmp case.0x101a9d32.37822
cmp ecx, 0x8819
jg 0x101a9e93
add ecx, 0xffff7dd0
cmp ecx, 0xc
ja case.0x101a9d32.37822
mov eax, 0x1801
bt eax, ecx
jb 0x101a9c98
jmp case.0x101a9d32.37822
cmp ecx, 0x881a
je 0x101a9c98
cmp ecx, 0x8d76
je 0x101a9c98
cmp ecx, 0x8d88
je 0x101a9c98
jmp case.0x101a9d32.37822
cmp edx, 0x8dbb
je 0x101a9c98
jmp case.0x101a9d32.37822
cmp edx, 0x8dbe
je 0x101a9c98
jmp case.0x101a9d32.37822
cmp edx, 0x8dbd
je 0x101a9c98
jmp case.0x101a9d32.37822
cmp edx, 0x9270
je 0x101a9c98
jmp case.0x101a9d32.37822
cmp edx, 0x9273
je 0x101a9c98
jmp case.0x101a9d32.37822
cmp edx, 0x9272
je 0x101a9c98
jmp case.0x101a9d32.37822
mov ecx, dword [ebp - 0x1c]
mov ecx, dword [ecx + 0x58]
mov esi, dword [ebp - 0x20]
cmp ecx, dword [esi + 0x58]
je case.0x101a9d32.37822
cmp ecx, 0x2601
mov ecx, edx
cmove ecx, eax
cmove eax, edx
cmp ecx, 0x9275
jle 0x101a9f6c
lea edx, [ecx - 0x93b0]
cmp edx, 0x19
ja case.default.0x101a9f55
jmp dword [edx*4 + 0x102ffdd8]
cmp eax, 0x93d0
je 0x101a9c98
jmp case.0x101a9d32.37822
lea edx, [ecx - 0x83f0]
cmp edx, 3
ja case.default.0x101a9f77
jmp dword [edx*4 + 0x102ffdc8]
cmp eax, 0x8c4c
je 0x101a9c98
jmp case.0x101a9d32.37822
cmp ecx, 0x8e8c
je 0x101aa00a
cmp ecx, 0x9274
jne case.0x101a9d32.37822
cmp eax, 0x9275
je 0x101a9c98
jmp case.0x101a9d32.37822
cmp ecx, 0x9276
je 0x101aa18a
cmp ecx, 0x9278
jne case.0x101a9d32.37822
cmp eax, 0x9279
je 0x101a9c98
jmp case.0x101a9d32.37822
cmp eax, 0x8c4d
je 0x101a9c98
jmp case.0x101a9d32.37822
cmp eax, 0x8c4e
je 0x101a9c98
jmp case.0x101a9d32.37822
cmp eax, 0x8c4f
je 0x101a9c98
jmp case.0x101a9d32.37822
cmp eax, 0x8e8d
je 0x101a9c98
jmp case.0x101a9d32.37822
cmp eax, 0x93d1
je 0x101a9c98
jmp case.0x101a9d32.37822
cmp eax, 0x93d2
je 0x101a9c98
jmp case.0x101a9d32.37822
cmp eax, 0x93d3
je 0x101a9c98
jmp case.0x101a9d32.37822
cmp eax, 0x93d4
je 0x101a9c98
jmp case.0x101a9d32.37822
cmp eax, 0x93d5
je 0x101a9c98
jmp case.0x101a9d32.37822
cmp eax, 0x93d6
je 0x101a9c98
jmp case.0x101a9d32.37822
cmp eax, 0x93d7
je 0x101a9c98
jmp case.0x101a9d32.37822
cmp eax, 0x93d8
je 0x101a9c98
jmp case.0x101a9d32.37822
cmp eax, 0x93d9
je 0x101a9c98
jmp case.0x101a9d32.37822
cmp eax, 0x93da
je 0x101a9c98
jmp case.0x101a9d32.37822
cmp eax, 0x93db
je 0x101a9c98
jmp case.0x101a9d32.37822
cmp eax, 0x93dc
je 0x101a9c98
jmp case.0x101a9d32.37822
cmp eax, 0x93dd
je 0x101a9c98
jmp case.0x101a9d32.37822
cmp eax, 0x93e0
je 0x101a9c98
jmp case.0x101a9d32.37822
cmp eax, 0x93e1
je 0x101a9c98
jmp case.0x101a9d32.37822
cmp eax, 0x93e2
je 0x101a9c98
jmp case.0x101a9d32.37822
cmp eax, 0x93e3
je 0x101a9c98
jmp case.0x101a9d32.37822
cmp eax, 0x93e4
je 0x101a9c98
jmp case.0x101a9d32.37822
cmp eax, 0x93e5
je 0x101a9c98
jmp case.0x101a9d32.37822
cmp eax, 0x93e6
je 0x101a9c98
jmp case.0x101a9d32.37822
cmp eax, 0x93e7
je 0x101a9c98
jmp case.0x101a9d32.37822
cmp eax, 0x93e8
je 0x101a9c98
jmp case.0x101a9d32.37822
cmp eax, 0x93e9
je 0x101a9c98
jmp case.0x101a9d32.37822
cmp eax, 0x9277
je 0x101a9c98
jmp case.0x101a9d32.37822