Function at 0x10010890
Capabilities:
Hash data with crc32

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x48
mov eax, dword [0x1004f00c]
xor eax, ebp
mov dword [ebp - 8], eax
mov dword [ebp - 0x2c], ecx
mov ecx, dword [ebp + 0xc]
or ecx, 2
mov dword [ebp - 0x14], edx
push ebx
mov ebx, dword [0x1004fc68]
push esi
mov esi, dword [ebp + 0x10]
and esi, 0x40000000
mov dword [ebp - 0x30], ebx
mov eax, dword [ebx + 0x3f8c]
mov esi, 0x1000041
cmove ecx, dword [ebp + 0xc]
mov dword [ebp - 0x28], eax
mov edx, ecx
mov eax, ecx
and edx, 0xfffffffb
and al, 0x10
push edi
cmove edx, ecx
mov eax, edx
mov ecx, edx
and ecx, 0xfffffff7
and al, 0x20
mov eax, 0x1000001
cmove ecx, edx
test cl, 0x70
mov dword [ebp - 0x10], ecx
cmove esi, eax
mov eax, dword [ebp - 0x28]
mov eax, dword [eax + 0xc]
and eax, 4
or esi, eax
or esi, dword [ebp + 0x10]
mov dword [ebp - 0x18], esi
test cl, 0xc
jne 0x10010918
or esi, 0x102
mov dword [ebp - 0x18], esi
test cl, cl
jns 0x10010a3e
movups xmm0, xmmword [ebx + 0x39bc]
lea eax, [ebp - 0x44]
mov dword [ebp - 0x44], 3
push eax
lea ecx, [ebx + 0x49c0]
movups xmmword [ebp - 0x40], xmm0
call fcn.10020ec0
cmp dword [ebx + 0x49bc], 3
je 0x10010958
movups xmm0, xmmword [ebx + 0x39fc]
movups xmmword [ebx + 0x39bc], xmm0
mov esi, dword [0x1004fc68]
lea eax, [ebp - 0x3c]
movss xmm0, dword [ebx + 0x38ec]
movss dword [ebp - 0x1c], xmm0
push eax
movss xmm0, dword [esi + 0x38d4]
lea ecx, [esi + 0x49cc]
mov dword [ebp - 0x3c], 7
movss dword [ebp - 0x38], xmm0
call fcn.10020e30
movss xmm0, dword [ebp - 0x1c]
lea eax, [ebp - 0x3c]
movss dword [esi + 0x38d4], xmm0
mov esi, dword [0x1004fc68]
movss xmm0, dword [ebx + 0x38f0]
movss dword [ebp - 0x1c], xmm0
push eax
movss xmm0, dword [esi + 0x38d8]
lea ecx, [esi + 0x49cc]
mov dword [ebp - 0x3c], 8
movss dword [ebp - 0x38], xmm0
call fcn.10020e30
movss xmm0, dword [ebp - 0x1c]
lea eax, [ebp - 0x24]
movss dword [esi + 0x38d8], xmm0
mov esi, dword [0x1004fc68]
push eax
mov dword [ebp - 0x24], 2
movss xmm0, dword [esi + 0x38b0]
lea ecx, [esi + 0x49cc]
movss xmm1, dword [esi + 0x38b4]
movss dword [ebp - 0x20], xmm0
movss dword [ebp - 0x1c], xmm1
call fcn.10020e30
mov ecx, dword [ebx + 0x38e8]
mov eax, dword [ebx + 0x38e4]
mov dword [esi + 0x38b4], ecx
mov ecx, dword [ebp - 0x10]
mov dword [esi + 0x38b0], eax
or ecx, 3
mov esi, dword [ebp - 0x18]
or esi, 4
mov dword [ebp - 0x10], ecx
mov dword [ebp - 0x18], esi
mov edi, dword [0x1004fc68]
or dword [ebx + 0x4954], 0x100
mov dword [ebx + 0x498c], ecx
mov edx, dword [edi + 0x3f8c]
cmp dword [edx + 0x198], 0
jne 0x10010a71
cmp dword [edi + 0x4ce0], 0
mov eax, 0x234
je 0x10010a76
mov eax, 0x204
movss xmm0, dword [edx + eax]
xorps xmm1, xmm1
movss xmm2, dword [edx + eax + 4]
mov eax, edx
subss xmm0, dword [eax + 0xf8]
subss xmm2, dword [eax + 0xfc]
test cl, 0x20
je 0x10010a9e
xorps xmm2, xmm2
test cl, 0x10
jne 0x10010aa6
movaps xmm1, xmm0
mov eax, dword [ebp + 8]
lea ecx, [ebp - 0x20]
push dword [eax + 4]
push dword [eax]
call fcn.10019260
mov eax, dword [ebp - 0x20]
add esp, 8
mov ecx, dword [ebp - 0x1c]
or dword [edi + 0x4954], 2
mov edx, dword [ebp - 0x2c]
mov dword [edi + 0x4974], eax
mov eax, dword [ebp - 0x28]
mov dword [edi + 0x4978], ecx
mov dword [edi + 0x495c], 1
mov ecx, dword [eax + 4]
mov eax, dword [ebp - 0x14]
push eax
lea eax, [ebp - 0x1c]
test edx, edx
je 0x10010b04
push edx
push ecx
push str._s__s__08X
push 0
push eax
call fcn.1000a2d0
add esp, 0x18
jmp 0x10010b15
push ecx
push str._s__08X
push 0
push eax
call fcn.1000a2d0
add esp, 0x14
test byte [ebp - 0x10], 1
movss xmm0, dword [ebx + 0x38d8]
movss dword [ebp - 0x2c], xmm0
jne 0x10010b32
mov dword [ebx + 0x38d8], 0
mov ecx, dword [ebp - 0x1c]
xor edx, edx
push esi
call fcn.10013820
movss xmm0, dword [ebp - 0x2c]
add esp, 4
test byte [ebp - 0x10], 0x80
mov byte [ebp - 9], al
movss dword [ebx + 0x38d8], xmm0
je 0x10010b6a
mov ecx, 3
call fcn.1000afc0
mov ecx, 1
call fcn.1000af70
mov edi, dword [ebx + 0x3f8c]
mov edx, dword [ebp - 0x14]
cmp word [edi + 0xbc], 1
mov dword [edi + 0x78], edx
jne 0x10010b95
mov ebx, dword [ebp - 0x28]
mov eax, dword [edi + 0x18]
mov ecx, dword [edi + 0x1c]
mov dword [ebx + 0xf8], eax
mov dword [ebx + 0xfc], ecx
mov esi, edx
mov al, 0x23
not esi
mov edx, 0x1004b321
mov ebx, esi
cmp al, 0x23
jne 0x10010bb0
cmp byte [edx], al
jne 0x10010bb0
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 + 0x10046760]
test al, al
jne 0x10010ba2
mov esi, dword [ebp - 0x30]
not ebx
cmp dword [esi + 0x3fdc], ebx
jne 0x10010bdf
xor edx, edx
xor ecx, ecx
call fcn.1000d120
mov eax, dword [ebp - 0x14]
cmp dword [esi + 0x4a50], eax
jne 0x10010c2d
test dword [ebp - 0x18], 0x800000
jne 0x10010c2d
cmp word [edi + 0x154], 0
jne 0x10010c06
cmp byte [edi + 0x15a], 0
je 0x10010c2d
xor edx, edx
mov ecx, edi
call fcn.10015e10
xor dl, dl
mov ecx, edi
call fcn.1001bae0
mov edx, edi
mov ecx, ebx
call fcn.1000d120
mov eax, dword [esi + 0x4a7c]
mov dword [esi + 0x4000], eax
mov ecx, dword [ebp - 8]
mov al, byte [ebp - 9]
xor ecx, ebp
pop edi
pop esi
pop ebx
call fcn.1004437c
mov esp, ebp
pop ebp
ret