Function at 0x101262d0
Capabilities:
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
and esp, 0xffffffc0
sub esp, 0x74
mov eax, dword [0x10444724]
xor eax, esp
mov dword [esp + 0x70], eax
mov eax, dword [ebp + 0x14]
mov edx, dword [ebp + 0x18]
push ebx
mov ebx, dword [ebp + 0x1c]
push esi
push edi
mov edi, dword [ebp + 0x10]
mov dword [esp + 0x30], eax
mov eax, dword [ebp + 8]
mov dword [esp + 0x3c], ecx
mov ecx, dword [edi]
mov dword [esp + 0x24], eax
mov eax, dword [ebp + 0xc]
mov dword [esp + 0x20], eax
cmp byte [ecx + 4], 0
mov eax, dword [ecx + 8]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x40], ebx
mov esi, dword [eax]
je 0x1012639a
mov ecx, dword [esp + 0x3c]
push dword [esp + 0x24]
mov eax, dword [esi]
push dword [ecx + 0x8c]
lea ecx, [esp + 0x34]
push ecx
mov ecx, esi
call dword [eax + 0x20]
cmp dword [esp + 0x2c], 0
je 0x10126396
mov eax, dword [esp + 0x1c]
mov byte [eax], 1
lea eax, [esp + 0x2c]
push eax
push edi
push dword [esp + 0x28]
call fcn.10127470
mov ecx, dword [esp + 0x38]
add esp, 0xc
test al, al
jne 0x10126385
mov byte [ebx], 1
test ecx, ecx
je case.0x101265d2.60
mov eax, dword [ecx]
push 1
call dword [eax]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x70]
xor ecx, esp
call fcn.1037e005
mov esp, ebp
pop ebp
ret 0x18
mov eax, dword [edi]
mov eax, dword [eax + 8]
mov esi, dword [eax]
test ecx, ecx
je 0x10126396
mov eax, dword [ecx]
push 1
call dword [eax]
mov edx, dword [esp + 0x1c]
mov eax, dword [esi + 8]
cmp eax, 0x11
ja case.0x101265d2.60
movzx eax, byte [eax + 0x10126b0c]
jmp dword [eax*4 + 0x10126af8]
mov eax, dword [esi + 0x14]
mov ebx, dword [esi + 0x10]
mov dword [esp + 0x34], ebx
cmp eax, 1
je case.0x101265d2.60
cmp eax, 3
je case.0x101265d2.60
cmp dword [ebx + 0x64], 2
jne case.0x101265d2.60
mov ecx, dword [esp + 0x24]
lea eax, [esp + 0x28]
push eax
mov dword [esp + 0x2c], ebx
call fcn.1011f4d0
cmp dword [eax], 0
jne case.0x101265d2.60
mov edx, dword [esp + 0x30]
movzx eax, bl
xor eax, 0x811c9dc5
imul ecx, eax, 0x1000193
mov eax, ebx
shr eax, 8
mov edi, dword [edx + 0x18]
movzx eax, al
xor ecx, eax
mov eax, ebx
imul ecx, ecx, 0x1000193
shr eax, 0x10
movzx eax, al
xor ecx, eax
mov eax, ebx
imul ecx, ecx, 0x1000193
shr eax, 0x18
xor ecx, eax
imul eax, ecx, 0x1000193
and edi, eax
mov eax, dword [edx + 0xc]
mov edx, dword [edx + 4]
mov eax, dword [eax + edi*8]
mov ecx, eax
mov dword [esp + 0x28], eax
cmp eax, edx
jne 0x10126450
mov eax, edx
jmp 0x10126461
mov ebx, dword [esp + 0x30]
mov eax, dword [ebx + 0xc]
mov ebx, dword [esp + 0x34]
mov eax, dword [eax + edi*8 + 4]
mov eax, dword [eax]
cmp ecx, eax
je 0x1012647b
cmp dword [ecx + 8], ebx
je 0x10126472
mov ecx, dword [ecx]
mov eax, dword [esp + 0x28]
jmp 0x10126448
mov eax, dword [esp + 0x30]
mov edx, dword [eax + 4]
jmp 0x10126481
mov eax, dword [esp + 0x30]
mov ecx, edx
cmp ecx, edx
jne case.0x101265d2.60
push dword [esp + 0x40]
lea ecx, [esp + 0x2c]
mov dword [esp + 0x2c], ebx
push ecx
lea ecx, [esp + 0x48]
push ecx
mov ecx, eax
call fcn.10119360
mov ecx, dword [esp + 0x3c]
push dword [ebx + 0x10]
push dword [ebx + 0xc]
mov eax, dword [ecx]
lea ecx, [esp + 0x54]
mov edi, dword [eax + 4]
call fcn.1011d660
lea eax, [esp + 0x4c]
push eax
lea eax, [esp + 0x68]
push 0x10398750
push eax
call fcn.10117a40
mov esi, dword [esi + 4]
sub esp, 0xc
mov edx, esp
mov ecx, eax
push str._has_not_been_assigned
push edx
call fcn.10117ac0
mov ecx, dword [esp + 0x54]
push esi
call edi
lea ecx, [esp + 0x64]
call fcn.10082ab0
lea ecx, [esp + 0x4c]
call fcn.10082ab0
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x70]
xor ecx, esp
call fcn.1037e005
mov esp, ebp
pop ebp
ret 0x18
mov eax, dword [esi + 0x10]
cmp dword [eax + 8], 1
jne case.0x101265d2.60
cmp byte [eax + 0x10], 0
mov edi, dword [edi]
push ecx
je 0x10126536
mov eax, dword [esi + 0x14]
mov ecx, esp
mov dword [esi + 0x14], 0
mov dword [ecx], eax
jmp 0x10126544
mov eax, dword [esi + 0x18]
mov edx, esp
mov dword [esi + 0x18], 0
mov dword [edx], eax
mov ecx, edi
call fcn.10126250
mov eax, dword [esp + 0x1c]
mov byte [eax], 1
mov byte [ebx], 1
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x70]
xor ecx, esp
call fcn.1037e005
mov esp, ebp
pop ebp
ret 0x18
mov eax, dword [esi + 0x14]
cmp eax, 0x4a
je 0x1012657b
cmp eax, 0x50
jle 0x1012658e
cmp eax, 0x5d
jg 0x1012658e
push dword [esi + 0x10]
call fcn.10124f00
add esp, 4
test al, al
jne 0x1012673a
mov edx, dword [esi + 0x10]
mov eax, dword [edx + 0xc]
mov eax, dword [eax + 0x2c]
cmp eax, 8
je 0x101265a5
cmp eax, 0xb
jne case.0x101265d2.60
mov ecx, dword [esi + 0x18]
mov eax, dword [ecx + 0xc]
mov eax, dword [eax + 0x2c]
cmp eax, 8
je 0x101265bc
cmp eax, 0xb
jne case.0x101265d2.60
mov eax, dword [esi + 0x14]
add eax, 0xffffffc8
cmp eax, 0x1c
ja case.0x101265d2.60
movzx eax, byte [eax + 0x10126b3c]
jmp dword [eax*4 + 0x10126b20]
movsd xmm0, qword [0x103878b0]
sub esp, 8
movsd qword [esp], xmm0
push edx
call fcn.10124e20
mov ecx, dword [esi + 0x10]
add esp, 0xc
test al, al
je 0x1012663d
mov eax, dword [ecx + 0xc]
cmp dword [eax + 0x2c], 0xb
jne 0x1012673a
mov eax, dword [esi + 0x18]
mov eax, dword [eax + 0xc]
cmp dword [eax + 0x2c], 8
jne 0x1012673a
mov eax, dword [esp + 0x1c]
push ebx
push eax
push edi
push dword [esp + 0x2c]
call fcn.101275e0
add esp, 0x10
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x70]
xor ecx, esp
call fcn.1037e005
mov esp, ebp
pop ebp
ret 0x18
sub esp, 8
xorps xmm0, xmm0
movsd qword [esp], xmm0
push ecx
call fcn.10124e20
add esp, 0xc
test al, al
je 0x101266b9
mov eax, dword [esi + 0x10]
mov eax, dword [eax + 0xc]
cmp dword [eax + 0x2c], 8
jne 0x1012667e
mov ecx, dword [esi + 0x18]
mov eax, dword [ecx + 0xc]
cmp dword [eax + 0x2c], 0xb
jne 0x1012667e
mov eax, dword [ecx]
push 0
mov eax, dword [eax + 0x1c]
call eax
test al, al
je 0x10126829
mov ecx, dword [esi + 0x18]
push 0
mov eax, dword [ecx]
mov eax, dword [eax + 0x1c]
call eax
test al, al
jne case.0x101265d2.60
mov eax, dword [esp + 0x1c]
push ebx
push eax
push edi
push dword [esp + 0x2c]
call fcn.10122230
add esp, 0x10
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x70]
xor ecx, esp
call fcn.1037e005
mov esp, ebp
pop ebp
ret 0x18
movsd xmm0, qword [0x103878b0]
sub esp, 8
movsd qword [esp], xmm0
push dword [esi + 0x18]
call fcn.10124e20
add esp, 0xc
test al, al
je 0x101266e3
mov eax, dword [esi + 0x10]
mov eax, dword [eax + 0xc]
jmp 0x1012680f
sub esp, 8
xorps xmm0, xmm0
movsd qword [esp], xmm0
push dword [esi + 0x18]
call fcn.10124e20
add esp, 0xc
test al, al
je case.0x101265d2.60
mov ecx, dword [esi + 0x10]
mov eax, dword [ecx + 0xc]
cmp dword [eax + 0x2c], 0xb
jne 0x10126726
mov eax, dword [esi + 0x18]
mov eax, dword [eax + 0xc]
cmp dword [eax + 0x2c], 8
jne 0x10126726
mov eax, dword [ecx]
push 0
mov eax, dword [eax + 0x1c]
call eax
test al, al
je 0x10126791
mov ecx, dword [esi + 0x10]
push 0
mov eax, dword [ecx]
mov eax, dword [eax + 0x1c]
call eax
test al, al
jne case.0x101265d2.60
mov eax, dword [esp + 0x1c]
push ebx
push eax
push edi
push dword [esp + 0x2c]
call fcn.10122190
add esp, 0x10
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x70]
xor ecx, esp
call fcn.1037e005
mov esp, ebp
pop ebp
ret 0x18
sub esp, 8
xorps xmm0, xmm0
movsd qword [esp], xmm0
push edx
call fcn.10124e20
add esp, 0xc
test al, al
je 0x101267b8
mov eax, dword [esi + 0x10]
mov eax, dword [eax + 0xc]
cmp dword [eax + 0x2c], 0xb
jne 0x1012673a
mov eax, dword [esi + 0x18]
mov eax, dword [eax + 0xc]
cmp dword [eax + 0x2c], 8
jne 0x1012673a
mov eax, dword [esp + 0x1c]
push ebx
push eax
push edi
push dword [esp + 0x2c]
call fcn.101275e0
add esp, 0x10
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x70]
xor ecx, esp
call fcn.1037e005
mov esp, ebp
pop ebp
ret 0x18
sub esp, 8
xorps xmm0, xmm0
movsd qword [esp], xmm0
push dword [esi + 0x18]
call fcn.10124e20
add esp, 0xc
test al, al
je case.0x101265d2.60
mov eax, dword [esi + 0x10]
mov eax, dword [eax + 0xc]
jmp 0x1012680f
sub esp, 8
xorps xmm0, xmm0
movsd qword [esp], xmm0
push ecx
jmp 0x101267c6
movsd xmm0, qword [0x103878b0]
sub esp, 8
movsd qword [esp], xmm0
push ecx
call fcn.10124e20
mov ecx, dword [esi + 0x10]
add esp, 0xc
test al, al
je 0x10126850
mov eax, dword [ecx + 0xc]
cmp dword [eax + 0x2c], 8
jne 0x10126692
mov eax, dword [esi + 0x18]
mov eax, dword [eax + 0xc]
cmp dword [eax + 0x2c], 0xb
jne 0x10126692
mov eax, dword [esp + 0x1c]
push ebx
push eax
push edi
push dword [esp + 0x2c]
call fcn.101275b0
add esp, 0x10
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x70]
xor ecx, esp
call fcn.1037e005
mov esp, ebp
pop ebp
ret 0x18
sub esp, 8
xorps xmm0, xmm0
movsd qword [esp], xmm0
push ecx
call fcn.10124e20
add esp, 0xc
test al, al
je case.0x101265d2.60
mov eax, dword [esi + 0x10]
mov eax, dword [eax + 0xc]
cmp dword [eax + 0x2c], 8
jne 0x1012667e
mov ecx, dword [esi + 0x18]
mov eax, dword [ecx + 0xc]
cmp dword [eax + 0x2c], 0xb
jne 0x1012667e
mov eax, dword [ecx]
push 0
mov eax, dword [eax + 0x1c]
call eax
test al, al
jne 0x1012667e
jmp 0x10126829
xorps xmm0, xmm0
jmp 0x101268ac
movsd xmm0, qword [0x103878b0]
sub esp, 8
movsd qword [esp], xmm0
push ecx
call fcn.10124e20
add esp, 0xc
test al, al
je case.0x101265d2.60
push dword [esi + 0x10]
call fcn.10120e40
mov eax, dword [esp + 0x20]
push ebx
push eax
push edi
push dword [esp + 0x30]
call fcn.10122230
add esp, 0x14
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x70]
xor ecx, esp
call fcn.1037e005
mov esp, ebp
pop ebp
ret 0x18
mov eax, dword [esi + 0x18]
mov ecx, dword [esi + 0x14]
mov dword [esp + 0x38], eax
sub eax, ecx
sar eax, 2
mov dword [esp + 0x28], eax
lea eax, [esi + 0x10]
mov esi, dword [esp + 0x28]
mov dword [esp + 0x24], eax
mov eax, dword [eax]
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], ecx
mov eax, dword [eax + 0xc]
cmp esi, dword [eax + 0x48]
jne 0x1012696d
xor eax, eax
test esi, esi
jle 0x1012693a
nop word [eax + eax]
cmp dword [ecx + eax*4], eax
jne 0x1012696d
inc eax
cmp eax, esi
jl 0x10126930
push dword [esp + 0x24]
mov byte [edx], 1
push edi
push dword [esp + 0x28]
call fcn.10127470
add esp, 0xc
test al, al
jne case.0x101265d2.60
mov byte [ebx], 1
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x70]
xor ecx, esp
call fcn.1037e005
mov esp, ebp
pop ebp
ret 0x18
mov eax, dword [esp + 0x30]
cmp dword [eax + 8], 0xf
jne case.0x101265d2.60
mov edx, dword [esp + 0x38]
xor eax, eax
mov dword [esp + 0x2c], eax
xor esi, esi
mov dword [esp + 0x4c], eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x50], eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x54], eax
mov eax, edx
sub eax, ecx
add eax, 3
shr eax, 2
cmp ecx, edx
cmova eax, esi
mov dword [esp + 0x48], eax
test eax, eax
je 0x10126a0a
mov ebx, dword [esp + 0x30]
mov ecx, dword [ecx]
mov dword [esp + 0x38], ecx
cmp ecx, 0xfffffffe
je 0x101269ce
cmp ecx, 0xffffffff
je 0x101269ce
mov eax, dword [ebx + 0x14]
lea eax, [eax + ecx*4]
jmp 0x101269d2
lea eax, [esp + 0x38]
push eax
lea ecx, [esp + 0x50]
call fcn.1008d9c0
mov ecx, dword [esp + 0x34]
inc esi
add ecx, 4
mov dword [esp + 0x34], ecx
cmp esi, dword [esp + 0x48]
jne 0x101269b6
mov eax, dword [esp + 0x54]
mov ebx, dword [esp + 0x40]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x50]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x1c]
push 0x20
mov byte [eax], 1
call fcn.1037dfb9
add esp, 4
mov dword [esp + 0x40], eax
test eax, eax
je 0x10126aab
mov eax, dword [esp + 0x30]
lea edx, [esp + 0x34]
push edx
mov dword [esp + 0x50], 0
mov dword [esp + 0x54], 0
mov ecx, dword [eax + 0x10]
mov eax, dword [esp + 0x40]
mov dword [esp + 0x58], 0
mov esi, dword [eax + 0x98]
mov eax, dword [ecx]
call dword [eax + 0x34]
mov eax, dword [esp + 0x24]
sub eax, dword [esp + 0x2c]
sar eax, 2
push eax
push dword [esp + 0x38]
push esi
call fcn.10124820
mov esi, dword [esp + 0x4c]
add esp, 0xc
mov ecx, dword [esp + 0x34]
mov edx, dword [ecx + 4]
mov dword [esi + 0xc], eax
mov eax, dword [esp + 0x2c]
mov dword [esi + 4], edx
mov dword [esi + 8], 0xf
mov dword [esi], 0x1039860c
mov dword [esi + 0x10], ecx
mov dword [esi + 0x14], eax
mov eax, dword [esp + 0x24]
mov dword [esi + 0x18], eax
mov eax, dword [esp + 0x28]
mov dword [esi + 0x1c], eax
jmp 0x10126aad
xor esi, esi
lea eax, [esp + 0x24]
mov dword [esp + 0x24], esi
push eax
push edi
push dword [esp + 0x28]
call fcn.10127470
mov ecx, dword [esp + 0x30]
add esp, 0xc
test al, al
jne 0x10126ace
mov byte [ebx], 1
test ecx, ecx
je 0x10126ad8
mov eax, dword [ecx]
push 1
call dword [eax]
lea ecx, [esp + 0x4c]
call fcn.100f6a40
mov ecx, dword [esp + 0x7c]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.1037e005
mov esp, ebp
pop ebp
ret 0x18