Function at 0x1002c000
Capabilities:
Hash data with crc32

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
sub esp, 0x70
mov eax, dword [0x103b0040]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
mov esi, dword [0x103ca868]
mov eax, ecx
mov ecx, dword [ebx + 0xc]
mov dword [ebp - 0x54], ecx
push edi
mov ecx, dword [esi + 0x3e38]
mov dword [ebp - 0x48], edx
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x60], esi
cmp byte [ecx + 0x93], 0
mov dword [ebp - 0x5c], ecx
jne 0x1002c70d
movss xmm3, dword [eax + 8]
xorps xmm1, xmm1
subss xmm3, dword [eax]
movss xmm2, dword [eax + 0xc]
subss xmm2, dword [eax + 4]
comiss xmm1, xmm3
jae 0x1002c70d
comiss xmm1, xmm2
jae 0x1002c70d
movss xmm4, dword [0x103a39e4]
mov ecx, dword [ebx + 8]
movaps xmm5, xmm4
cmp ecx, 1
jne 0x1002c0ce
movss xmm6, dword [esi + 0x37d8]
movss xmm7, dword [esi + 0x3bc4]
addss xmm6, xmm6
movaps xmm0, xmm6
addss xmm0, xmm7
comiss xmm0, xmm2
jbe 0x1002c0ce
movaps xmm0, xmm2
subss xmm0, xmm7
divss xmm0, xmm6
comiss xmm1, xmm0
ja 0x1002c70d
minss xmm5, xmm0
comiss xmm1, xmm5
jae 0x1002c70d
movss xmm6, dword [0x103a39a4]
movups xmm0, xmmword [eax]
comiss xmm5, xmm4
movss xmm4, dword [0x103a3a28]
subss xmm2, xmm4
movss xmm7, dword [0x103a3a48]
movups xmmword [ebp - 0x38], xmm0
setae byte [ebp - 0x39]
mulss xmm2, xmm6
cvttss2si eax, xmm2
movd xmm0, eax
cvtdq2ps xmm0, xmm0
comiss xmm1, xmm0
jbe 0x1002c111
xorps xmm2, xmm2
jmp 0x1002c118
movaps xmm2, xmm7
minss xmm2, xmm0
movss xmm5, dword [0x103a3e00]
subss xmm3, xmm4
xorps xmm2, xmm5
mulss xmm3, xmm6
cvttss2si eax, xmm3
movd xmm0, eax
cvtdq2ps xmm0, xmm0
comiss xmm1, xmm0
ja 0x1002c142
movaps xmm1, xmm7
minss xmm1, xmm0
movss xmm3, dword [ebp - 0x38]
xorps xmm1, xmm5
movss xmm0, dword [ebp - 0x30]
subss xmm3, xmm1
movss xmm4, dword [ebp - 0x34]
addss xmm0, xmm1
movss xmm1, dword [ebp - 0x2c]
subss xmm4, xmm2
addss xmm1, xmm2
movss dword [ebp - 0x38], xmm3
movss dword [ebp - 0x30], xmm0
movss dword [ebp - 0x34], xmm4
movss dword [ebp - 0x2c], xmm1
test ecx, ecx
jne 0x1002c187
subss xmm0, xmm3
jmp 0x1002c18e
movaps xmm0, xmm1
subss xmm0, xmm4
mov eax, dword [ebx + 0x1c]
mov edx, dword [ebx + 0x14]
mov edi, dword [ebx + 0x18]
mov ecx, dword [ebx + 0x10]
movss dword [ebp - 0x4c], xmm0
cmp eax, edx
jl 0x1002c1b3
jg 0x1002c1a9
cmp edi, ecx
jb 0x1002c1b3
mov ecx, edi
mov dword [ebp - 0x44], edi
mov dword [ebp - 0xc], eax
jmp 0x1002c1bb
mov dword [ebp - 0x44], ecx
mov eax, edx
mov dword [ebp - 0xc], edx
test eax, eax
jl 0x1002c1c6
jg 0x1002c1d4
cmp ecx, 1
jae 0x1002c1d4
mov dword [ebp - 0x44], 1
mov dword [ebp - 0xc], 0
mov ecx, dword [ebx + 0x10]
call fcn.10125050
mov edx, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x44]
cvtsd2ss xmm0, xmm0
movss dword [ebp - 0x40], xmm0
call fcn.10125050
movss xmm1, dword [ebp - 0x40]
cvtsd2ss xmm0, xmm0
movss xmm2, dword [esi + 0x3814]
divss xmm1, xmm0
movss xmm0, dword [ebp - 0x4c]
mulss xmm1, xmm0
movss dword [ebp - 0xc], xmm2
comiss xmm2, xmm1
ja 0x1002c224
movaps xmm2, xmm0
minss xmm2, xmm1
movss dword [ebp - 0xc], xmm2
divss xmm2, xmm0
mov edx, dword [ebp - 0x48]
mov ecx, dword [ebp - 0x50]
push 8
push 0
mov byte [ebp - 5], 0
mov byte [ebp - 0xd], 0
movss dword [ebp - 0x40], xmm2
call fcn.100151a0
mov edx, dword [ebp - 0x48]
lea eax, [ebp - 5]
push 0x40000
push eax
lea eax, [ebp - 0xd]
push eax
lea ecx, [ebp - 0x38]
call fcn.1002a9d0
mov eax, dword [ebx + 0x1c]
add esp, 0x14
sub edi, dword [ebx + 0x10]
sbb eax, dword [ebx + 0x14]
test eax, eax
jg 0x1002c27a
jl 0x1002c273
cmp edi, 1
ja 0x1002c27a
mov edi, 1
xor eax, eax
mov edx, eax
mov ecx, edi
call fcn.10125050
mov eax, dword [ebp - 0x54]
cvtsd2ss xmm0, xmm0
mov edx, dword [eax + 4]
mov ecx, dword [eax]
movss dword [ebp - 0x50], xmm0
call fcn.10125050
movss xmm7, dword [ebp - 0x50]
xorps xmm2, xmm2
cvtsd2ss xmm0, xmm0
movss xmm5, dword [0x103a39e4]
divss xmm0, xmm7
comiss xmm2, xmm0
jbe 0x1002c2bb
xorps xmm1, xmm1
jmp 0x1002c2c2
movaps xmm1, xmm5
minss xmm1, xmm0
cmp byte [ebp - 5], 0
movss xmm0, dword [ebp - 0x4c]
movaps xmm3, xmm0
mov edi, dword [0x103ca868]
subss xmm3, dword [ebp - 0xc]
movss dword [ebp - 0x58], xmm3
mulss xmm3, xmm1
divss xmm3, xmm0
movss dword [ebp - 0x44], xmm3
je 0x1002c459
cmp byte [ebp - 0x39], 0
je 0x1002c459
movss xmm6, dword [ebp - 0x40]
comiss xmm5, xmm6
jbe 0x1002c459
mov eax, dword [ebx + 8]
movss xmm1, dword [esi + eax*4 + 0xdb8]
subss xmm1, dword [ebp + eax*4 - 0x38]
divss xmm1, xmm0
comiss xmm2, xmm1
jbe 0x1002c329
xorps xmm4, xmm4
jmp 0x1002c330
movaps xmm4, xmm5
minss xmm4, xmm1
mov eax, dword [ebp - 0x48]
movss dword [ebp - 0x40], xmm4
mov dword [edi + 0x3e5c], eax
mov byte [edi + 0x3e64], 0
test eax, eax
je 0x1002c365
cmp dword [edi + 0x3e60], eax
je 0x1002c365
mov dword [edi + 0x3e6c], 0
mov dword [edi + 0x3e68], 0
cmp byte [esi + 0x3e7c], 0
mov byte [ebp - 0x39], 0
je 0x1002c3b9
comiss xmm3, xmm4
ja 0x1002c3ab
movaps xmm0, xmm3
addss xmm0, xmm6
comiss xmm4, xmm0
ja 0x1002c3ab
movaps xmm1, xmm4
mov byte [ebp - 0x39], 0
subss xmm1, xmm3
movaps xmm0, xmm6
movss xmm3, dword [0x103a39a4]
mulss xmm0, xmm3
subss xmm1, xmm0
movss dword [esi + 0x59a0], xmm1
jmp 0x1002c3c1
mov byte [ebp - 0x39], 1
mov dword [esi + 0x59a0], 0
movss xmm3, dword [0x103a39a4]
subss xmm4, dword [esi + 0x59a0]
movaps xmm0, xmm6
mulss xmm0, xmm3
subss xmm4, xmm0
movss dword [ebp - 0x48], xmm0
movaps xmm0, xmm5
subss xmm0, xmm6
divss xmm4, xmm0
comiss xmm2, xmm4
jbe 0x1002c3ee
xorps xmm5, xmm5
jmp 0x1002c3f2
minss xmm5, xmm4
movaps xmm0, xmm7
mulss xmm0, xmm5
call fcn.10124ee0
mov ecx, dword [ebp - 0x54]
mov dword [ecx], eax
mov dword [ecx + 4], edx
mov ecx, eax
call fcn.10125050
cvtsd2ss xmm0, xmm0
xorps xmm2, xmm2
divss xmm0, dword [ebp - 0x50]
comiss xmm2, xmm0
ja 0x1002c42a
movss xmm2, dword [0x103a39e4]
minss xmm2, xmm0
cmp byte [ebp - 0x39], 0
movss xmm3, dword [ebp - 0x58]
mulss xmm3, xmm2
divss xmm3, dword [ebp - 0x4c]
movss dword [ebp - 0x44], xmm3
je 0x1002c459
movss xmm0, dword [ebp - 0x40]
subss xmm0, xmm3
subss xmm0, dword [ebp - 0x48]
movss dword [esi + 0x59a0], xmm0
mov esi, dword [ebp - 0x5c]
or edx, 0xffffffff
mov esi, dword [esi]
mov al, byte [esi]
inc esi
test al, al
je 0x1002c49d
or edi, 0xffffffff
nop dword [eax + eax]
cmp al, 0x23
jne 0x1002c47e
cmp byte [esi], al
jne 0x1002c47e
cmp byte [esi + 1], al
cmove edx, edi
movzx ecx, dl
movzx eax, al
xor ecx, eax
shr edx, 8
mov al, byte [esi]
inc esi
xor edx, dword [ecx*4 + 0x10196330]
test al, al
jne 0x1002c470
mov edi, dword [0x103ca868]
movss xmm2, dword [edi + 0x18]
lea ecx, [ebp - 0x18]
not edx
push edx
call fcn.10002510
cmp byte [ebp - 5], 0
je 0x1002c4bd
movss xmm1, dword [0x103a3a48]
jmp 0x1002c4c5
movss xmm1, dword [0x103a3b84]
movss xmm0, dword [ebp - 0x14]
xorps xmm7, xmm7
mulss xmm0, dword [0x103a3a58]
mov eax, dword [ebp - 0x18]
mulss xmm0, xmm1
addss xmm0, dword [eax + 0x14]
comiss xmm7, xmm0
jbe 0x1002c4eb
xorps xmm1, xmm1
jmp 0x1002c4f7
movss xmm1, dword [0x103a39e4]
minss xmm1, xmm0
movss dword [ebp - 0x40], xmm1
mov ecx, 0x35
movss dword [eax + 0x14], xmm1
movss xmm1, dword [0x103a39e4]
call fcn.10006650
mov edx, eax
movss xmm1, dword [0x103a3950]
movzx ecx, dl
shr eax, 8
movzx eax, al
shr edx, 0x10
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
shr ecx, 0x1f
addsd xmm0, qword [ecx*8 + 0x103a3d90]
cvtpd2ps xmm3, xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
mulss xmm3, xmm1
addsd xmm0, qword [eax*8 + 0x103a3d90]
movzx eax, dl
cvtpd2ps xmm4, xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
cmp dword [ebx + 8], 0
mulss xmm4, xmm1
addsd xmm0, qword [eax*8 + 0x103a3d90]
cvtpd2ps xmm5, xmm0
mulss xmm5, xmm1
jne 0x1002c5bf
movss xmm1, dword [ebp - 0x30]
subss xmm1, dword [ebp - 0x38]
movss xmm0, dword [ebp - 0x34]
movss dword [ebp - 0x24], xmm0
movss xmm0, dword [ebp - 0x2c]
movss dword [ebp - 0x1c], xmm0
mulss xmm1, dword [ebp - 0x44]
addss xmm1, dword [ebp - 0x38]
movss dword [ebp - 0x28], xmm1
addss xmm1, dword [ebp - 0xc]
movss dword [ebp - 0x20], xmm1
jmp 0x1002c5f6
movss xmm1, dword [ebp - 0x2c]
subss xmm1, dword [ebp - 0x34]
movss xmm0, dword [ebp - 0x38]
movss dword [ebp - 0x28], xmm0
movss xmm0, dword [ebp - 0x30]
movss dword [ebp - 0x20], xmm0
mulss xmm1, dword [ebp - 0x44]
addss xmm1, dword [ebp - 0x34]
movss dword [ebp - 0x24], xmm1
addss xmm1, dword [ebp - 0xc]
movss dword [ebp - 0x1c], xmm1
movss xmm2, dword [ebp - 0x40]
lea eax, [ebp - 0xc]
movss xmm0, dword [0x103a3988]
lea edi, [ebp - 0x58]
comiss xmm7, xmm2
lea esi, [ebp - 0x40]
mov dword [ebp - 0x48], 0x3f800000
lea edx, [ebp - 0x50]
mov dword [ebp - 0x54], 0
lea ecx, [ebp - 0x54]
mov dword [ebp - 0x44], 0x3f800000
mov dword [ebp - 0x50], 0
mov dword [ebp - 0x4c], 0x3f800000
mov dword [ebp - 0x40], 0
mov dword [ebp - 0x14], 0x3f800000
subss xmm3, xmm0
movss dword [ebp - 0xc], xmm2
subss xmm4, xmm0
mov dword [ebp - 0x58], 0
cmovbe ecx, eax
subss xmm5, xmm0
cmovbe edi, eax
cmovbe esi, eax
cmovbe edx, eax
lea eax, [ebp - 0x48]
comiss xmm2, dword [0x103a39e4]
push 0
push ecx
cmovbe eax, ecx
lea ecx, [ebp - 0x70]
mulss xmm3, dword [eax]
lea eax, [ebp - 0x44]
cmovbe eax, edx
addss xmm3, xmm0
mulss xmm4, dword [eax]
lea eax, [ebp - 0x4c]
cmovbe eax, esi
addss xmm4, xmm0
movss dword [ebp - 0x70], xmm3
mulss xmm5, dword [eax]
lea eax, [ebp - 0x14]
cmovbe eax, edi
addss xmm5, xmm0
movss dword [ebp - 0x6c], xmm4
movss xmm0, dword [eax]
mov eax, dword [ebp - 0x60]
mulss xmm0, xmm7
movss dword [ebp - 0x68], xmm5
addss xmm0, dword [0x103a39e4]
movss dword [ebp - 0x64], xmm0
movss xmm0, dword [eax + 0x3810]
movss dword [esp], xmm0
call fcn.10005080
push eax
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp - 0x28]
push eax
mov eax, dword [ebp - 0x5c]
mov ecx, dword [eax + 0x248]
call fcn.100219c0
mov al, byte [ebp - 5]
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.10123fc5
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
mov ecx, dword [ebp - 4]
xor al, al
pop edi
xor ecx, ebp
pop esi
call fcn.10123fc5
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret