Function at 0x1002be20
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 [0x103b0024]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
mov esi, dword [0x103ca828]
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 0x1002c52d
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 0x1002c52d
comiss xmm1, xmm2
jae 0x1002c52d
movss xmm4, dword [0x103a2784]
mov ecx, dword [ebx + 8]
movaps xmm5, xmm4
cmp ecx, 1
jne 0x1002beee
movss xmm6, dword [esi + 0x37d8]
movss xmm7, dword [esi + 0x3bc4]
addss xmm6, xmm6
movaps xmm0, xmm6
addss xmm0, xmm7
comiss xmm0, xmm2
jbe 0x1002beee
movaps xmm0, xmm2
subss xmm0, xmm7
divss xmm0, xmm6
comiss xmm1, xmm0
ja 0x1002c52d
minss xmm5, xmm0
comiss xmm1, xmm5
jae 0x1002c52d
movss xmm6, dword [0x103a2744]
movups xmm0, xmmword [eax]
comiss xmm5, xmm4
movss xmm4, dword [0x103a27c8]
subss xmm2, xmm4
movss xmm7, dword [0x103a27e8]
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 0x1002bf31
xorps xmm2, xmm2
jmp 0x1002bf38
movaps xmm2, xmm7
minss xmm2, xmm0
movss xmm5, dword [0x103a2e10]
subss xmm3, xmm4
xorps xmm2, xmm5
mulss xmm3, xmm6
cvttss2si eax, xmm3
movd xmm0, eax
cvtdq2ps xmm0, xmm0
comiss xmm1, xmm0
ja 0x1002bf62
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 0x1002bfa7
subss xmm0, xmm3
jmp 0x1002bfae
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 0x1002bfd3
jg 0x1002bfc9
cmp edi, ecx
jb 0x1002bfd3
mov ecx, edi
mov dword [ebp - 0x44], edi
mov dword [ebp - 0xc], eax
jmp 0x1002bfdb
mov dword [ebp - 0x44], ecx
mov eax, edx
mov dword [ebp - 0xc], edx
test eax, eax
jl 0x1002bfe6
jg 0x1002bff4
cmp ecx, 1
jae 0x1002bff4
mov dword [ebp - 0x44], 1
mov dword [ebp - 0xc], 0
mov ecx, dword [ebx + 0x10]
call fcn.10124a70
mov edx, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x44]
cvtsd2ss xmm0, xmm0
movss dword [ebp - 0x40], xmm0
call fcn.10124a70
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 0x1002c044
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.100153a0
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.1002a7e0
mov eax, dword [ebx + 0x1c]
add esp, 0x14
sub edi, dword [ebx + 0x10]
sbb eax, dword [ebx + 0x14]
test eax, eax
jg 0x1002c09a
jl 0x1002c093
cmp edi, 1
ja 0x1002c09a
mov edi, 1
xor eax, eax
mov edx, eax
mov ecx, edi
call fcn.10124a70
mov eax, dword [ebp - 0x54]
cvtsd2ss xmm0, xmm0
mov edx, dword [eax + 4]
mov ecx, dword [eax]
movss dword [ebp - 0x50], xmm0
call fcn.10124a70
movss xmm7, dword [ebp - 0x50]
xorps xmm2, xmm2
cvtsd2ss xmm0, xmm0
movss xmm5, dword [0x103a2784]
divss xmm0, xmm7
comiss xmm2, xmm0
jbe 0x1002c0db
xorps xmm1, xmm1
jmp 0x1002c0e2
movaps xmm1, xmm5
minss xmm1, xmm0
cmp byte [ebp - 5], 0
movss xmm0, dword [ebp - 0x4c]
movaps xmm3, xmm0
mov edi, dword [0x103ca828]
subss xmm3, dword [ebp - 0xc]
movss dword [ebp - 0x58], xmm3
mulss xmm3, xmm1
divss xmm3, xmm0
movss dword [ebp - 0x44], xmm3
je 0x1002c279
cmp byte [ebp - 0x39], 0
je 0x1002c279
movss xmm6, dword [ebp - 0x40]
comiss xmm5, xmm6
jbe 0x1002c279
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 0x1002c149
xorps xmm4, xmm4
jmp 0x1002c150
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 0x1002c185
cmp dword [edi + 0x3e60], eax
je 0x1002c185
mov dword [edi + 0x3e6c], 0
mov dword [edi + 0x3e68], 0
cmp byte [esi + 0x3e7c], 0
mov byte [ebp - 0x39], 0
je 0x1002c1d9
comiss xmm3, xmm4
ja 0x1002c1cb
movaps xmm0, xmm3
addss xmm0, xmm6
comiss xmm4, xmm0
ja 0x1002c1cb
movaps xmm1, xmm4
mov byte [ebp - 0x39], 0
subss xmm1, xmm3
movaps xmm0, xmm6
movss xmm3, dword [0x103a2744]
mulss xmm0, xmm3
subss xmm1, xmm0
movss dword [esi + 0x59a0], xmm1
jmp 0x1002c1e1
mov byte [ebp - 0x39], 1
mov dword [esi + 0x59a0], 0
movss xmm3, dword [0x103a2744]
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 0x1002c20e
xorps xmm5, xmm5
jmp 0x1002c212
minss xmm5, xmm4
movaps xmm0, xmm7
mulss xmm0, xmm5
call fcn.10124900
mov ecx, dword [ebp - 0x54]
mov dword [ecx], eax
mov dword [ecx + 4], edx
mov ecx, eax
call fcn.10124a70
cvtsd2ss xmm0, xmm0
xorps xmm2, xmm2
divss xmm0, dword [ebp - 0x50]
comiss xmm2, xmm0
ja 0x1002c24a
movss xmm2, dword [0x103a2784]
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 0x1002c279
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 0x1002c2bd
or edi, 0xffffffff
nop dword [eax + eax]
cmp al, 0x23
jne 0x1002c29e
cmp byte [esi], al
jne 0x1002c29e
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 + 0x10195ca0]
test al, al
jne 0x1002c290
mov edi, dword [0x103ca828]
movss xmm2, dword [edi + 0x18]
lea ecx, [ebp - 0x18]
not edx
push edx
call fcn.100025c0
cmp byte [ebp - 5], 0
je 0x1002c2dd
movss xmm1, dword [0x103a27e8]
jmp 0x1002c2e5
movss xmm1, dword [0x103a2934]
movss xmm0, dword [ebp - 0x14]
xorps xmm7, xmm7
mulss xmm0, dword [0x103a27f8]
mov eax, dword [ebp - 0x18]
mulss xmm0, xmm1
addss xmm0, dword [eax + 0x14]
comiss xmm7, xmm0
jbe 0x1002c30b
xorps xmm1, xmm1
jmp 0x1002c317
movss xmm1, dword [0x103a2784]
minss xmm1, xmm0
movss dword [ebp - 0x40], xmm1
mov ecx, 0x35
movss dword [eax + 0x14], xmm1
movss xmm1, dword [0x103a2784]
call fcn.10006760
mov edx, eax
movss xmm1, dword [0x103a26f0]
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 + 0x103a2da0]
cvtpd2ps xmm3, xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
mulss xmm3, xmm1
addsd xmm0, qword [eax*8 + 0x103a2da0]
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 + 0x103a2da0]
cvtpd2ps xmm5, xmm0
mulss xmm5, xmm1
jne 0x1002c3df
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 0x1002c416
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 [0x103a2728]
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 [0x103a2784]
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 [0x103a2784]
movss dword [ebp - 0x64], xmm0
movss xmm0, dword [eax + 0x3810]
movss dword [esp], xmm0
call fcn.10005110
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.10021820
mov al, byte [ebp - 5]
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.101238be
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.101238be
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret