Function at 0x10013820
Capabilities:
Hash data with crc32

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x28
mov dword [ebp - 0x10], ecx
mov ecx, dword [ebp + 0xc]
or ecx, 2
mov dword [ebp - 4], edx
push ebx
mov ebx, dword [0x100a93e8]
push esi
push edi
mov edi, dword [ebp + 0x10]
mov esi, 0x1000041
mov eax, dword [ebx + 0x3f8c]
test edi, 0x40000000
mov dword [ebp - 0xc], eax
mov eax, 0x1000001
cmove ecx, dword [ebp + 0xc]
mov edx, ecx
mov dword [ebp - 0x14], ebx
and edx, 0xfffffffb
test cl, 0x10
cmove edx, ecx
mov ecx, edx
and ecx, 0xfffffff7
test dl, 0x20
cmove ecx, edx
test cl, 0x70
mov dword [ebp + 0x10], ecx
cmove esi, eax
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + 0xc]
and eax, 4
or esi, eax
or esi, edi
mov dword [ebp - 8], esi
test cl, 0xc
jne 0x1001389b
or esi, 0x102
mov dword [ebp - 8], esi
test cl, cl
jns 0x100139c1
movups xmm0, xmmword [ebx + 0x39bc]
lea eax, [ebp - 0x28]
mov dword [ebp - 0x28], 3
push eax
lea ecx, [ebx + 0x49c0]
movups xmmword [ebp - 0x24], xmm0
call fcn.10025670
cmp dword [ebx + 0x49bc], 3
je 0x100138db
movups xmm0, xmmword [ebx + 0x39fc]
movups xmmword [ebx + 0x39bc], xmm0
mov esi, dword [0x100a93e8]
lea eax, [ebp - 0x20]
movss xmm0, dword [ebx + 0x38ec]
movss dword [ebp + 0xc], xmm0
push eax
movss xmm0, dword [esi + 0x38d4]
lea ecx, [esi + 0x49cc]
mov dword [ebp - 0x20], 7
movss dword [ebp - 0x1c], xmm0
call fcn.10025560
movss xmm0, dword [ebp + 0xc]
lea eax, [ebp - 0x20]
movss dword [esi + 0x38d4], xmm0
mov esi, dword [0x100a93e8]
movss xmm0, dword [ebx + 0x38f0]
movss dword [ebp + 0xc], xmm0
push eax
movss xmm0, dword [esi + 0x38d8]
lea ecx, [esi + 0x49cc]
mov dword [ebp - 0x20], 8
movss dword [ebp - 0x1c], xmm0
call fcn.10025560
movss xmm0, dword [ebp + 0xc]
lea eax, [ebp - 0x20]
movss dword [esi + 0x38d8], xmm0
mov esi, dword [0x100a93e8]
push eax
mov dword [ebp - 0x20], 2
movss xmm0, dword [esi + 0x38b0]
lea ecx, [esi + 0x49cc]
movss xmm1, dword [esi + 0x38b4]
movss dword [ebp - 0x1c], xmm0
movss dword [ebp - 0x18], xmm1
call fcn.10025560
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 - 8]
or esi, 4
mov dword [ebp + 0x10], ecx
mov dword [ebp - 8], esi
or dword [ebx + 0x4954], 0x100
mov dword [ebx + 0x498c], ecx
mov ecx, dword [0x100a93e8]
mov edi, dword [ecx + 0x3f8c]
mov edx, edi
cmp dword [edx + 0x198], 0
jne 0x100139f6
cmp dword [ecx + 0x4ce0], 0
mov eax, 0x234
je 0x100139fb
mov eax, 0x204
movss xmm6, dword [edx + eax]
xorps xmm1, xmm1
movss xmm7, dword [edx + eax + 4]
mov eax, dword [ebp + 0x10]
subss xmm6, dword [edi + 0xf8]
subss xmm7, dword [edi + 0xfc]
test al, 0x20
je 0x10013a23
xorps xmm7, xmm7
test al, 0x10
je 0x10013a2a
xorps xmm6, xmm6
mov eax, dword [ebp + 8]
xorps xmm4, xmm4
xorps xmm3, xmm3
movss xmm2, dword [eax]
comiss xmm1, xmm2
movss xmm0, dword [eax + 4]
ja 0x10013a46
comiss xmm1, xmm0
jbe 0x10013a6d
cmp dword [edx + 0x198], 0
jne 0x10013a5d
cmp dword [ecx + 0x4ce0], 0
mov eax, 0x234
je 0x10013a62
mov eax, 0x204
movss xmm4, dword [edx + eax]
movss xmm3, dword [edx + eax + 4]
movss xmm5, dword [0x100a22f4]
ucomiss xmm2, xmm1
lahf
test ah, 0x44
jp 0x10013a83
movaps xmm2, xmm6
jmp 0x10013a9c
comiss xmm1, xmm2
jbe 0x10013a9c
subss xmm4, dword [edi + 0xf8]
addss xmm2, xmm4
comiss xmm5, xmm2
jb 0x10013a9c
movaps xmm2, xmm5
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jp 0x10013aaa
movaps xmm0, xmm7
jmp 0x10013ac3
comiss xmm1, xmm0
jbe 0x10013ac3
subss xmm3, dword [edi + 0xfc]
addss xmm0, xmm3
comiss xmm5, xmm0
jb 0x10013ac3
movaps xmm0, xmm5
mov eax, dword [ebp - 0xc]
or dword [ecx + 0x4954], 2
mov edx, dword [ebp - 0x10]
movss dword [ecx + 0x4974], xmm2
movss dword [ecx + 0x4978], xmm0
mov dword [ecx + 0x495c], 1
mov ecx, dword [ebp - 4]
mov eax, dword [eax + 4]
push ecx
test edx, edx
je 0x10013b0c
push edx
push eax
push str._s__s__08X
lea eax, [ebp + 0xc]
push 0
push eax
call fcn.1000b9d0
add esp, 0x18
jmp 0x10013b20
push eax
push str._s__08X
lea eax, [ebp + 0xc]
push 0
push eax
call fcn.1000b9d0
add esp, 0x14
test byte [ebp + 0x10], 1
movss xmm0, dword [ebx + 0x38d8]
movss dword [ebp + 8], xmm0
jne 0x10013b3d
mov dword [ebx + 0x38d8], 0
mov ecx, dword [ebp + 0xc]
xor edx, edx
push esi
call fcn.10016f30
movss xmm0, dword [ebp + 8]
add esp, 4
test byte [ebp + 0x10], 0x80
mov byte [ebp + 0xf], al
movss dword [ebx + 0x38d8], xmm0
je 0x10013b9e
mov ecx, 3
call fcn.1000d2e0
mov esi, dword [0x100a93e8]
mov eax, dword [esi + 0x49c0]
cmp eax, 1
jl 0x10013b9e
mov ecx, dword [esi + 0x49c8]
lea edx, [eax + eax*4]
mov eax, dword [ecx + edx*4 - 0x14]
movups xmm0, xmmword [ecx + edx*4 - 0x10]
add eax, eax
movups xmmword [esi + eax*8 + 0x398c], xmm0
dec dword [esi + 0x49c0]
mov edi, dword [ebx + 0x3f8c]
mov edx, dword [ebp - 4]
cmp word [edi + 0xbc], 1
mov dword [edi + 0x78], edx
jne 0x10013bc9
mov ebx, dword [ebp - 0xc]
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, 0x100985b9
mov ebx, esi
cmp al, 0x23
jne 0x10013be4
cmp byte [edx], al
jne 0x10013be4
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 + 0x100995b0]
test al, al
jne 0x10013bd6
mov esi, dword [ebp - 0x14]
not ebx
cmp dword [esi + 0x3fdc], ebx
jne 0x10013c13
xor edx, edx
xor ecx, ecx
call fcn.10010190
mov ecx, dword [ebp - 4]
cmp dword [esi + 0x4a50], ecx
jne 0x10013c61
test dword [ebp - 8], 0x800000
jne 0x10013c61
cmp word [edi + 0x154], 0
jne 0x10013c3a
cmp byte [edi + 0x15a], 0
je 0x10013c61
xor edx, edx
mov ecx, edi
call fcn.100199f0
xor dl, dl
mov ecx, edi
call fcn.1001fa00
mov edx, edi
mov ecx, ebx
call fcn.10010190
mov eax, dword [esi + 0x4a7c]
mov dword [esi + 0x4000], eax
mov al, byte [ebp + 0xf]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret