Function at 0x100adfc0
Capabilities:
Hash data with crc32

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x64
push ebx
push esi
push edi
mov edi, dword [0x10213d84]
mov esi, ecx
mov dword [esp + 0x38], edx
mov dword [esp + 0x48], esi
mov eax, dword [edi + 0x1bac]
mov byte [eax + 0xac], 1
mov eax, dword [edi + 0x1bac]
mov ecx, dword [edi + 0x1c74]
mov dword [edi + 0x1c74], 0
mov dword [esp + 0x20], eax
cmp byte [eax + 0xaf], 0
mov dword [esp + 0x4c], ecx
jne 0x100ae72b
mov ecx, dword [eax + 0xe4]
xor edx, edx
mov eax, dword [eax + 0xec]
push dword [eax + ecx*4 - 4]
mov ecx, esi
call fcn.1008d720
mov ebx, eax
add esp, 4
mov dword [esp + 0x30], ebx
cmp dword [edi + 0x1be0], ebx
jne 0x100ae044
mov dword [edi + 0x1be4], ebx
cmp dword [edi + 0x1c1c], ebx
jne 0x100ae053
mov byte [edi + 0x1c20], 1
movss xmm0, dword [edi + 0x1564]
mov ecx, esi
addss xmm0, xmm0
addss xmm0, dword [edi + 0x1940]
movss dword [esp + 0x28], xmm0
cmp esi, 0xffffffff
jae 0x100ae08a
mov dl, byte [ecx]
test dl, dl
je 0x100ae08a
cmp dl, 0x23
jne 0x100ae084
cmp byte [ecx + 1], dl
je 0x100ae08a
inc ecx
cmp ecx, 0xffffffff
jb 0x100ae074
movss xmm3, dword [edi + 0x1940]
cmp esi, ecx
jne 0x100ae09b
xorps xmm7, xmm7
jmp 0x100ae0d8
push ecx
push ecx
push esi
push ecx
mov ecx, dword [edi + 0x193c]
lea eax, [esp + 0x50]
mov dword [esp], 0xbf800000
movaps xmm2, xmm3
push eax
call fcn.100a6eb0
movss xmm0, dword [esp + 0x40]
addss xmm0, dword [0x10209288]
movss xmm3, dword [esp + 0x44]
cvttss2si eax, xmm0
movd xmm7, eax
cvtdq2ps xmm7, xmm7
test byte [edi + 0x1c34], 1
xorps xmm0, xmm0
mov eax, dword [edi + 0x1bac]
movss dword [esp + 0x3c], xmm7
je 0x100ae0fa
movss xmm2, dword [edi + 0x1c38]
jmp 0x100ae102
movss xmm2, dword [eax + 0x1c0]
comiss xmm0, xmm2
jbe 0x100ae13d
cmp dword [eax + 0x1a4], 0
movss xmm1, dword [eax + 0x258]
jne 0x100ae121
cmp dword [edi + 0x1f18], 0
je 0x100ae129
movss xmm1, dword [eax + 0x228]
subss xmm1, dword [eax + 0xf0]
addss xmm2, xmm1
maxss xmm2, dword [0x10209290]
comiss xmm7, xmm0
mov eax, dword [esp + 0x20]
movss xmm4, dword [eax + 0xf0]
movss xmm6, dword [edi + 0x1564]
cvttss2si esi, xmm2
movss xmm5, dword [eax + 0xf4]
movaps xmm2, xmm4
addss xmm4, dword [0x10209384]
mov dword [esp + 0x1c], esi
movss dword [esp + 0x54], xmm5
movd xmm1, esi
cvtdq2ps xmm1, xmm1
movss dword [esp + 0x50], xmm4
addss xmm2, xmm1
movaps xmm1, xmm6
addss xmm1, xmm6
movss dword [esp + 0x58], xmm2
addss xmm1, xmm3
addss xmm1, xmm5
movss dword [esp + 0x5c], xmm1
jbe 0x100ae1ae
movaps xmm0, xmm7
addss xmm0, dword [edi + 0x1578]
addss xmm2, xmm0
movss dword [esp + 0x6c], xmm1
subss xmm1, xmm5
movss dword [esp + 0x60], xmm4
lea ecx, [esp + 0x40]
movss dword [esp + 0x64], xmm5
movss dword [esp + 0x68], xmm2
subss xmm2, xmm4
movss dword [esp + 0x44], xmm1
movaps xmm1, xmm6
movss dword [esp + 0x40], xmm2
call fcn.1009a220
lea eax, [esp + 0x50]
mov edx, ebx
push 0
push eax
lea ecx, [esp + 0x68]
call fcn.1009a3a0
add esp, 8
test al, al
je 0x100ae72b
push 0
lea eax, [esp + 0x1f]
mov edx, ebx
push eax
lea eax, [esp + 0x22]
push eax
lea ecx, [esp + 0x5c]
call fcn.100ab280
mov esi, ebx
mov byte [esp + 0x27], al
not esi
add esp, 0xc
mov ebx, esi
mov edx, 0x101feba1
mov al, 0x23
cmp al, 0x23
jne 0x100ae240
cmp byte [edx], al
jne 0x100ae240
cmp byte [edx + 1], al
cmove ebx, esi
movzx ecx, bl
movzx eax, al
xor ecx, eax
shr ebx, 8
mov al, byte [edx]
inc edx
xor ebx, dword [ecx*4 + 0x101d9180]
test al, al
jne 0x100ae232
mov edx, dword [0x10213d84]
not ebx
mov esi, dword [esp + 0x1c]
mov eax, dword [edx + 0x1d2c]
cmp dword [edx + 0x1d20], eax
jle 0x100ae285
lea ecx, [eax + eax*8]
mov eax, dword [edx + 0x1d28]
cmp dword [eax + ecx*4], ebx
jne 0x100ae285
mov cl, 1
jmp 0x100ae287
xor cl, cl
cmp byte [esp + 0x1b], 0
mov byte [esp + 0x19], cl
jne 0x100ae29e
mov eax, dword [esp + 0x30]
cmp dword [edi + 0x1d50], eax
jne 0x100ae2b6
test cl, cl
jne 0x100ae2b6
xor edx, edx
mov ecx, ebx
call fcn.1009bc60
mov edx, dword [0x10213d84]
mov byte [esp + 0x19], 1
cmp byte [esp + 0x1a], 0
lea ecx, [edx + 0x1528]
movss xmm5, dword [0x10209290]
mov eax, 0x134
mov edx, 0x144
xorps xmm0, xmm0
cmovne eax, edx
movups xmm1, xmmword [eax + ecx]
comiss xmm0, xmm1
movaps xmm2, xmm1
movaps xmmword [esp + 0x60], xmm1
shufps xmm2, xmm1, 0xff
mulss xmm2, dword [ecx]
jbe 0x100ae2f7
xorps xmm1, xmm1
jmp 0x100ae2fb
minss xmm1, xmm5
movss xmm3, dword [0x102094ac]
movss xmm4, dword [0x1020922c]
mulss xmm1, xmm3
addss xmm1, xmm4
cvttss2si ecx, xmm1
movss xmm1, dword [esp + 0x64]
comiss xmm0, xmm1
jbe 0x100ae327
xorps xmm1, xmm1
jmp 0x100ae32b
minss xmm1, xmm5
mulss xmm1, xmm3
addss xmm1, xmm4
cvttss2si eax, xmm1
movss xmm1, dword [esp + 0x68]
shl eax, 8
or ecx, eax
comiss xmm0, xmm1
jbe 0x100ae34c
xorps xmm1, xmm1
jmp 0x100ae350
minss xmm1, xmm5
mulss xmm1, xmm3
addss xmm1, xmm4
cvttss2si eax, xmm1
shl eax, 0x10
or ecx, eax
comiss xmm0, xmm2
mov dword [esp + 0x40], ecx
jbe 0x100ae372
movss dword [esp + 0x60], xmm0
jmp 0x100ae37b
minss xmm2, xmm5
movups xmmword [esp + 0x60], xmm2
movss xmm0, dword [esp + 0x58]
lea ecx, [esp + 0x50]
subss xmm0, dword [esp + 0x28]
mov edx, dword [esp + 0x30]
push 1
maxss xmm0, dword [esp + 0x54]
movss dword [esp + 0x20], xmm0
call fcn.1008f2a0
movss xmm0, dword [esp + 0x20]
add esp, 4
movss dword [esp + 0x30], xmm0
movss xmm0, dword [esp + 0x5c]
movss dword [esp + 0x34], xmm0
movss xmm0, dword [edi + 0x1568]
push 0x50
push ecx
movss dword [esp], xmm0
movups xmm0, xmmword [esp + 0x68]
mov ecx, dword [esp + 0x28]
mulss xmm0, dword [0x102094ac]
mov ecx, dword [ecx + 0x294]
addss xmm0, dword [0x1020922c]
cvttss2si eax, xmm0
shl eax, 0x18
or eax, dword [esp + 0x48]
push eax
lea eax, [esp + 0x3c]
push eax
lea eax, [esp + 0x60]
push eax
call fcn.100a4b00
cmp byte [esp + 0x19], 0
jne 0x100ae41a
cmp byte [esp + 0x1a], 0
mov ecx, 0x214
je 0x100ae41f
mov ecx, 0x224
mov eax, dword [0x10213d84]
xorps xmm0, xmm0
movss xmm5, dword [0x10209290]
movups xmm1, xmmword [ecx + eax + 0x1528]
comiss xmm0, xmm1
movaps xmm2, xmm1
movaps xmmword [esp + 0x60], xmm1
shufps xmm2, xmm1, 0xff
mulss xmm2, dword [eax + 0x1528]
jbe 0x100ae455
xorps xmm1, xmm1
jmp 0x100ae459
minss xmm1, xmm5
movss xmm3, dword [0x102094ac]
movss xmm4, dword [0x1020922c]
mulss xmm1, xmm3
addss xmm1, xmm4
cvttss2si ecx, xmm1
movss xmm1, dword [esp + 0x64]
comiss xmm0, xmm1
jbe 0x100ae485
xorps xmm1, xmm1
jmp 0x100ae489
minss xmm1, xmm5
mulss xmm1, xmm3
addss xmm1, xmm4
cvttss2si eax, xmm1
movss xmm1, dword [esp + 0x68]
shl eax, 8
or ecx, eax
comiss xmm0, xmm1
jbe 0x100ae4aa
xorps xmm1, xmm1
jmp 0x100ae4ae
minss xmm1, xmm5
mulss xmm1, xmm3
addss xmm1, xmm4
cvttss2si eax, xmm1
shl eax, 0x10
or ecx, eax
comiss xmm0, xmm2
jbe 0x100ae4c9
xorps xmm2, xmm2
jmp 0x100ae4cd
minss xmm2, xmm5
movss xmm0, dword [esp + 0x1c]
mov eax, 0xa0
movd xmm1, esi
movss dword [esp + 0x40], xmm0
movss xmm0, dword [esp + 0x54]
cvtdq2ps xmm1, xmm1
lea edx, [eax + 0x50]
movss dword [esp + 0x44], xmm0
movss xmm0, dword [esp + 0x28]
comiss xmm0, xmm1
movss xmm0, dword [edi + 0x1568]
mulss xmm2, xmm3
cmovae eax, edx
push eax
push ecx
addss xmm2, xmm4
movss dword [esp], xmm0
cvttss2si eax, xmm2
shl eax, 0x18
or eax, ecx
push eax
lea eax, [esp + 0x64]
push eax
lea eax, [esp + 0x50]
push eax
mov eax, dword [esp + 0x34]
mov ecx, dword [eax + 0x294]
call fcn.100a4b00
movss xmm1, dword [esp + 0x1c]
movss xmm2, dword [esp + 0x58]
movaps xmm0, xmm1
addss xmm0, dword [esp + 0x28]
subss xmm0, dword [edi + 0x1560]
comiss xmm2, xmm0
jb 0x100ae59e
movss xmm0, dword [edi + 0x1564]
xor eax, eax
cmp byte [esp + 0x19], al
movaps xmm2, xmm0
addss xmm2, xmm1
movss xmm1, dword [esp + 0x54]
addss xmm1, xmm0
sete al
add eax, 2
movss dword [esp + 0x40], xmm2
movss dword [esp + 0x44], xmm1
push dword [esp + 0x44]
push dword [esp + 0x44]
push eax
call fcn.100a7660
add esp, 0xc
push dword [esp + 0x5c]
movss xmm0, dword [edi + 0x1568]
push dword [esp + 0x5c]
push dword [esp + 0x5c]
push dword [esp + 0x5c]
call fcn.1008ef30
mov edx, dword [esp + 0x48]
add esp, 0x10
test edx, edx
je 0x100ae6b6
cmp byte [edi + 0x2f64], 0
mov ecx, dword [0x10213d84]
mov dword [esp + 0x30], ecx
je 0x100ae5f1
mov dword [ecx + 0x2f7c], 0x101feb8c
mov dword [ecx + 0x2f80], 0x101febb0
movss xmm0, dword [esp + 0x1c]
mov esi, edx
movss xmm1, dword [esp + 0x54]
movss dword [esp + 0x20], xmm0
movss xmm0, dword [esp + 0x5c]
movss dword [esp + 0x24], xmm0
movss xmm0, dword [esp + 0x50]
mov dword [esp + 0x28], 0
mov dword [esp + 0x2c], 0
addss xmm0, dword [edi + 0x1560]
movss dword [esp + 0x40], xmm0
movaps xmm0, xmm1
addss xmm0, dword [edi + 0x1564]
movss dword [esp + 0x44], xmm0
cmp edx, 0xffffffff
jae 0x100ae66a
nop dword [eax + eax]
mov cl, byte [esi]
test cl, cl
je 0x100ae666
cmp cl, 0x23
jne 0x100ae660
cmp byte [esi + 1], cl
je 0x100ae666
inc esi
cmp esi, 0xffffffff
jb 0x100ae650
mov ecx, dword [esp + 0x30]
mov eax, esi
sub eax, edx
je 0x100ae6bc
mov ecx, dword [ecx + 0x1bac]
lea eax, [esp + 0x28]
push 0
push eax
push 0
mov ecx, dword [ecx + 0x294]
lea eax, [esp + 0x2c]
push esi
push edx
push eax
lea edx, [esp + 0x58]
call fcn.1008e760
mov eax, dword [esp + 0x48]
add esp, 0x18
cmp byte [eax + 0x2f64], 0
je 0x100ae6b6
mov edx, dword [esp + 0x38]
lea ecx, [esp + 0x40]
push esi
call fcn.1009fdd0
add esp, 4
movss xmm1, dword [esp + 0x54]
movss xmm2, dword [esp + 0x3c]
xorps xmm0, xmm0
comiss xmm2, xmm0
jbe 0x100ae704
addss xmm1, dword [edi + 0x1564]
movss xmm0, dword [esp + 0x58]
xor edx, edx
addss xmm0, dword [edi + 0x1578]
mov ecx, dword [esp + 0x48]
movss dword [esp + 0x44], xmm1
push dword [esp + 0x44]
movss dword [esp + 0x44], xmm0
push dword [esp + 0x44]
push 1
call fcn.1008e3e0
add esp, 0xc
cmp byte [esp + 0x19], 0
je 0x100ae72b
mov eax, dword [esp + 0x4c]
lea edx, [esp + 0x50]
push ecx
mov ecx, ebx
mov dword [edi + 0x1c74], eax
call fcn.100ae740
add esp, 4
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
pop edi
pop esi
xor al, al
pop ebx
mov esp, ebp
pop ebp
ret