Function at 0x8ec500
Capabilities:
Hash data with crc32

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x30
mov eax, dword [0x9440c0]
xor eax, ebp
mov dword [ebp - 4], eax
mov edx, dword [ebp + 0x14]
or edx, 2
test dword [ebp + 0x18], 0x40000000
push ebx
cmove edx, dword [ebp + 0x14]
mov ecx, edx
and ecx, 0xfffffffb
test dl, 0x10
push esi
cmove ecx, edx
mov edx, 0x1000041
mov ebx, ecx
and ebx, 0xfffffff7
test cl, 0x20
push edi
mov edi, dword [0x94544c]
cmove ebx, ecx
test bl, 0x70
mov dword [ebp - 0x14], ebx
mov eax, dword [edi + 0x3f8c]
mov dword [ebp - 0x18], eax
mov eax, 0x1000001
cmove edx, eax
mov eax, dword [ebp - 0x18]
mov eax, dword [eax + 0xc]
and eax, 4
or edx, eax
or edx, dword [ebp + 0x18]
mov dword [ebp - 0x10], edx
test bl, 0xc
jne 0x8ec57b
or edx, 0x102
mov dword [ebp - 0x10], edx
test bl, bl
jns 0x8ec663
movups xmm0, xmmword [edi + 0x39bc]
lea eax, [ebp - 0x30]
mov dword [ebp - 0x30], 3
push eax
lea ecx, [edi + 0x49c0]
movups xmmword [ebp - 0x2c], xmm0
call fcn.00900780
cmp dword [edi + 0x49bc], 3
je 0x8ec5bb
movups xmm0, xmmword [edi + 0x39fc]
movups xmmword [edi + 0x39bc], xmm0
mov esi, dword [0x94544c]
lea eax, [ebp - 0x28]
movss xmm0, dword [edi + 0x38ec]
movss dword [ebp - 0xc], xmm0
push eax
movss xmm0, dword [esi + 0x38d4]
lea ecx, [esi + 0x49cc]
mov dword [ebp - 0x28], 7
movss dword [ebp - 0x24], xmm0
call fcn.00900a30
movss xmm0, dword [ebp - 0xc]
lea eax, [ebp - 0x28]
movss dword [esi + 0x38d4], xmm0
mov esi, dword [0x94544c]
movss xmm0, dword [edi + 0x38f0]
movss dword [ebp - 0xc], xmm0
push eax
movss xmm0, dword [esi + 0x38d8]
lea ecx, [esi + 0x49cc]
mov dword [ebp - 0x28], 8
movss dword [ebp - 0x24], xmm0
call fcn.00900a30
movss xmm0, dword [ebp - 0xc]
lea eax, [edi + 0x38e4]
push eax
push 2
movss dword [esi + 0x38d8], xmm0
call fcn.008f8e40
mov esi, dword [ebp - 0x10]
or ebx, 3
add esp, 8
mov dword [ebp - 0x14], ebx
or esi, 4
mov dword [ebp - 0x10], esi
jmp 0x8ec666
mov esi, dword [ebp - 0x10]
or dword [edi + 0x4954], 0x100
mov dword [edi + 0x498c], ebx
mov ecx, dword [0x94544c]
mov edx, dword [ecx + 0x3f8c]
cmp dword [edx + 0x198], 0
jne 0x8ec699
cmp dword [ecx + 0x4ce0], 0
mov eax, 0x234
je 0x8ec69e
mov eax, 0x204
movss xmm6, dword [edx + eax]
xorps xmm1, xmm1
movss xmm7, dword [edx + eax + 4]
mov eax, edx
subss xmm6, dword [eax + 0xf8]
subss xmm7, dword [eax + 0xfc]
test bl, 0x20
je 0x8ec6c6
xorps xmm7, xmm7
test bl, 0x10
je 0x8ec6ce
xorps xmm6, xmm6
mov eax, dword [ebp + 0x10]
xorps xmm4, xmm4
xorps xmm3, xmm3
movss xmm2, dword [eax]
comiss xmm1, xmm2
movss xmm0, dword [eax + 4]
ja 0x8ec6ea
comiss xmm1, xmm0
jbe 0x8ec711
cmp dword [edx + 0x198], 0
jne 0x8ec701
cmp dword [ecx + 0x4ce0], 0
mov eax, 0x234
je 0x8ec706
mov eax, 0x204
movss xmm4, dword [edx + eax]
movss xmm3, dword [edx + eax + 4]
movss xmm5, dword [0x935e68]
ucomiss xmm2, xmm1
lahf
test ah, 0x44
jp 0x8ec727
movaps xmm2, xmm6
jmp 0x8ec740
comiss xmm1, xmm2
jbe 0x8ec740
subss xmm4, dword [edx + 0xf8]
addss xmm2, xmm4
comiss xmm5, xmm2
jb 0x8ec740
movaps xmm2, xmm5
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jp 0x8ec74e
movaps xmm0, xmm7
jmp 0x8ec767
comiss xmm1, xmm0
jbe 0x8ec767
subss xmm3, dword [edx + 0xfc]
addss xmm0, xmm3
comiss xmm5, xmm0
jb 0x8ec767
movaps xmm0, xmm5
or dword [ecx + 0x4954], 2
mov eax, dword [ebp - 0x18]
mov ebx, dword [ebp + 0xc]
movss dword [ecx + 0x4974], xmm2
movss dword [ecx + 0x4978], xmm0
mov dword [ecx + 0x495c], 1
mov ecx, dword [ebp + 8]
mov eax, dword [eax + 4]
push ebx
test ecx, ecx
je 0x8ec7b0
push ecx
push eax
push str._s__s__08X
lea eax, [ebp - 0xc]
push 0
push eax
call fcn.008f14e0
add esp, 0x18
jmp 0x8ec7c4
push eax
push str._s__08X
lea eax, [ebp - 0xc]
push 0
push eax
call fcn.008f14e0
add esp, 0x14
test byte [ebp - 0x14], 1
movss xmm0, dword [edi + 0x38d8]
movss dword [ebp - 0x1c], xmm0
jne 0x8ec7e1
mov dword [edi + 0x38d8], 0
push esi
push 0
push dword [ebp - 0xc]
call fcn.008ea160
movss xmm0, dword [ebp - 0x1c]
add esp, 0xc
test byte [ebp - 0x14], 0x80
mov byte [ebp - 5], al
movss dword [edi + 0x38d8], xmm0
je 0x8ec816
push 3
call fcn.008f8bc0
push 1
call fcn.008f8b60
add esp, 8
mov esi, dword [edi + 0x3f8c]
mov dword [ebp - 0x1c], esi
cmp word [esi + 0xbc], 1
mov dword [esi + 0x78], ebx
jne 0x8ec841
mov edx, dword [ebp - 0x18]
mov eax, dword [esi + 0x18]
mov ecx, dword [esi + 0x1c]
mov dword [edx + 0xf8], eax
mov dword [edx + 0xfc], ecx
mov esi, ebx
mov al, 0x23
not esi
mov edx, 0x9350e9
mov ebx, esi
nop
cmp al, 0x23
jne 0x8ec85e
cmp byte [edx], al
jne 0x8ec85e
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 + 0x9344e0]
test al, al
jne 0x8ec850
mov esi, dword [ebp - 0x1c]
not ebx
cmp dword [edi + 0x3fdc], ebx
jne 0x8ec890
push 0
push 0
call fcn.008fb450
add esp, 8
mov eax, dword [ebp + 0xc]
cmp dword [edi + 0x4a50], eax
jne 0x8ec8dd
test dword [ebp - 0x10], 0x800000
jne 0x8ec8dd
cmp word [esi + 0x154], 0
jne 0x8ec8b7
cmp byte [esi + 0x15a], 0
je 0x8ec8dd
push 0
push esi
call fcn.008f0200
push 0
push esi
call fcn.008f3e10
push esi
push ebx
call fcn.008fb450
mov eax, dword [edi + 0x4a7c]
add esp, 0x18
mov dword [edi + 0x4000], eax
mov ecx, dword [ebp - 4]
mov al, byte [ebp - 5]
xor ecx, ebp
pop edi
pop esi
pop ebx
call fcn.009305aa
mov esp, ebp
pop ebp
ret