Function at 0x1001ad50
Capabilities:
Hash data with crc32

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1c
push ebx
push esi
push edi
mov ecx, 0x102b78aa
call fcn.10124b2c
mov ebx, dword [0x101e88b0]
xor edi, edi
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0xc], edi
mov byte [ebp - 8], 0
call fcn.10014a90
test eax, eax
sete byte [ebp - 3]
test eax, eax
je 0x1001ad8e
mov dword [ebx + 0x4914], edi
xor eax, eax
jmp 0x1001ad94
mov eax, dword [ebx + 0x4914]
cmp dword [ebx + 0x4918], edi
je 0x1001addc
test eax, eax
jne 0x1001addc
movss xmm0, dword [ebx + 0x18]
mulss xmm0, dword [0x10168aec]
movss xmm1, dword [ebx + 0x4924]
subss xmm1, xmm0
xorps xmm0, xmm0
comiss xmm0, dword [ebx + 0x493c]
maxss xmm1, xmm0
movss dword [ebx + 0x4924], xmm1
jb 0x1001addc
comiss xmm0, xmm1
jb 0x1001addc
mov dword [ebx + 0x4918], edi
or edx, 0xffffffff
mov esi, 0x10168875
mov al, 0x23
or edi, 0xffffffff
nop dword [eax]
cmp al, 0x23
jne 0x1001adfe
cmp byte [esi], al
jne 0x1001adfe
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 + 0x101672d0]
test al, al
jne 0x1001adf0
mov eax, dword [ebx + 8]
not edx
mov dword [ebp - 0x10], edx
mov edi, 0
test al, 2
je 0x1001ae32
test byte [ebx + 0xc], 1
mov byte [ebp - 4], 1
jne 0x1001ae36
mov byte [ebp - 4], 0
mov cl, byte [ebp - 3]
and eax, 0xffffff01
mov dword [ebp - 0x18], eax
test cl, cl
je 0x1001ae6b
mov eax, dword [ebx + 0x490c]
test eax, eax
je 0x1001ae6b
push 0x1001
push edx
push eax
call fcn.100214f0
add esp, 0xc
test al, al
je 0x1001ae68
mov byte [ebp - 1], 1
jmp 0x1001ae73
mov cl, byte [ebp - 3]
mov byte [ebp - 1], 0
test cl, cl
je 0x1001ae99
mov eax, dword [ebx + 0x4910]
mov esi, dword [ebp - 0x10]
test eax, eax
je 0x1001ae9c
push 0x1001
push esi
push eax
call fcn.100214f0
add esp, 0xc
test al, al
je 0x1001ae9c
mov byte [ebp - 2], 1
jmp 0x1001aea6
mov esi, dword [ebp - 0x10]
cmp byte [ebp - 3], 0
mov byte [ebp - 2], 0
je 0x1001aed0
cmp byte [ebp - 4], 0
je 0x1001aed0
cmp dword [ebx + 0x4914], edi
jne 0x1001aed0
push 0
push 0
push 0x26b
call fcn.10016f20
add esp, 0xc
test al, al
je 0x1001aed0
mov cl, 1
mov byte [ebp - 4], cl
jmp 0x1001aeda
xor cl, cl
mov byte [ebp - 4], cl
cmp byte [ebp - 3], cl
je 0x1001aef2
cmp dword [ebx + 0x4914], edi
jne 0x1001aef2
cmp byte [ebp - 1], 0
jne 0x1001aeee
cmp byte [ebp - 2], 0
je 0x1001aef2
mov al, 1
jmp 0x1001aef4
xor al, al
mov byte [ebp - 3], al
test cl, cl
jne 0x1001af03
test al, al
je 0x1001afa0
mov eax, dword [ebx + 0x47c0]
test eax, eax
jne 0x1001af2b
mov eax, dword [ebx + 0x3e04]
push 0xffffffffffffffff
dec eax
push 0x80000001
push eax
call fcn.100137b0
add esp, 0xc
test eax, eax
je 0x1001afa0
mov cl, byte [ebp - 4]
mov eax, dword [eax + 0x300]
mov dword [ebx + 0x4918], eax
mov dword [ebx + 0x4914], eax
movzx eax, byte [ebp - 3]
xor eax, 1
mov dword [ebx + 0x4924], edi
add eax, 2
mov dword [ebx + 0x4920], edi
cmp byte [ebp - 1], 0
mov dword [ebx + 0x4934], edi
mov dword [ebx + 0x4938], edi
mov dword [ebx + 0x492c], edi
mov dword [ebx + 0x4930], edi
mov byte [ebx + 0x4928], cl
mov dword [ebx + 0x47f0], eax
jne 0x1001af83
cmp byte [ebp - 2], 0
je 0x1001afa0
mov eax, dword [ebx + 0x4910]
or eax, dword [ebx + 0x490c]
push 0
and eax, 0xf800
push esi
push eax
call fcn.10020b70
add esp, 0xc
movss xmm1, dword [ebx + 0x4920]
addss xmm1, dword [ebx + 0x18]
movss xmm2, dword [0x10168a78]
movss xmm3, dword [0x10168af8]
movss dword [ebx + 0x4920], xmm1
cmp dword [ebx + 0x4914], edi
je 0x1001b0d5
cmp dword [ebx + 0x47f0], 3
jne 0x1001b0d5
subss xmm1, xmm2
xorps xmm0, xmm0
mulss xmm1, xmm3
comiss xmm0, xmm1
jbe 0x1001aff3
xorps xmm1, xmm1
jmp 0x1001affb
minss xmm1, dword [0x10167210]
movss xmm0, dword [ebx + 0x4924]
maxss xmm0, xmm1
push 1
push 0
push 0x273
movss dword [ebx + 0x4924], xmm0
call fcn.10016f20
push 1
push 0
push 0x274
mov bl, al
call fcn.10016f20
movzx ecx, al
add esp, 0x18
movzx eax, bl
sub eax, ecx
je 0x1001b052
push eax
call fcn.1001b5e0
mov ebx, dword [ebp - 0x14]
add esp, 4
mov dword [ebx + 0x4924], 0x3f800000
jmp 0x1001b055
mov ebx, dword [ebp - 0x14]
mov eax, dword [0x101e88b0]
cmp byte [eax + 0x3490], 0
je 0x1001b06c
cmp byte [eax + 0x43d4], 0
je 0x1001b0c5
movss xmm0, dword [0x10167210]
comiss xmm0, dword [ebx + 0x4924]
seta al
and byte [ebx + 0x4928], al
je 0x1001b094
cmp dword [ebx + 0x47c0], edi
je 0x1001b0a9
mov byte [ebp - 8], 1
jmp 0x1001b0a9
mov al, byte [ebp - 2]
mov edi, dword [ebx + 0x4914]
mov byte [ebp - 2], al
mov al, byte [ebp - 1]
mov dword [ebp - 0xc], edi
mov byte [ebp - 1], al
movss xmm2, dword [0x10168a78]
movss xmm3, dword [0x10168af8]
mov dword [ebx + 0x4914], 0
jmp 0x1001b0dd
movss xmm2, dword [0x10168a78]
movss xmm3, dword [0x10168af8]
movss xmm0, dword [0x10167210]
mov esi, dword [ebx + 0x4914]
test esi, esi
je 0x1001b18e
cmp dword [ebx + 0x47f0], 2
jne 0x1001b18e
mov eax, dword [ebx + 0x490c]
mov edx, 0xf800
movss xmm1, dword [ebx + 0x4920]
test eax, eax
mov ecx, edx
subss xmm1, xmm2
cmovne ecx, eax
xorps xmm2, xmm2
mov eax, dword [ebx + 0x4910]
test eax, eax
cmovne edx, eax
and edx, ecx
mulss xmm1, xmm3
mov ecx, edx
and ecx, 0xf800
comiss xmm2, xmm1
jbe 0x1001b13c
xorps xmm1, xmm1
jmp 0x1001b140
minss xmm1, xmm0
movss xmm0, dword [ebx + 0x4924]
mov al, byte [ebp - 1]
maxss xmm0, xmm1
movss dword [ebx + 0x4924], xmm0
test al, al
jne 0x1001b178
cmp byte [ebp - 2], al
jne 0x1001b178
mov eax, dword [ebx + 0xddc]
and eax, edx
and eax, 0xf800
cmp eax, ecx
je 0x1001b191
mov edi, esi
mov dword [ebp - 0xc], edi
jmp 0x1001b191
movzx eax, al
xor eax, 1
lea eax, [eax*2 - 1]
push eax
call fcn.1001b5e0
add esp, 4
xorps xmm2, xmm2
cmp byte [ebp - 0x18], 0
je 0x1001b1d6
mov ecx, dword [0x101e88b0]
cmp byte [ecx + 0x3680], 0
je 0x1001b1d6
movss xmm0, dword [ecx + 0x3684]
comiss xmm2, xmm0
ja 0x1001b1d6
ucomiss xmm0, xmm2
lahf
test ah, 0x44
jp 0x1001b1d6
cmp dword [ecx + 0x4540], 0xffffffff
jne 0x1001b1d6
mov byte [ebx + 0x4928], 1
mov dword [ebx + 0x47f0], 2
cmp byte [ebx + 0x4928], 0
je 0x1001b2f1
cmp dword [ebx + 0x47f0], 2
jne 0x1001b2f1
cmp dword [ebx + 0x3778], 0
jg 0x1001b222
cmp byte [ebx + 0xdd8], 0
jne 0x1001b222
cmp byte [ebx + 0xdd9], 0
jne 0x1001b222
cmp byte [ebx + 0xddb], 0
jne 0x1001b222
mov eax, dword [0x101e88b0]
cmp dword [eax + 0x4540], 0xffffffff
je 0x1001b229
mov byte [ebx + 0x4928], 0
push 0x4000
call fcn.10017030
mov ecx, dword [0x101e88b0]
add esp, 4
test al, al
je 0x1001b2d8
cmp byte [ebx + 0x4928], 0
je 0x1001b2d8
cmp dword [ebx + 0x3e8c], 0
je 0x1001b263
cmp byte [ebx + 0x3e99], 0
je 0x1001b2d8
lea eax, [ebx + 0x36a4]
test eax, eax
jne 0x1001b273
lea eax, [ecx + 0xdc0]
movss xmm0, dword [eax]
movss xmm1, dword [0x10168b30]
comiss xmm0, xmm1
movss xmm2, dword [eax + 4]
jb 0x1001b292
comiss xmm2, xmm1
jb 0x1001b292
mov dl, 1
jmp 0x1001b294
xor dl, dl
lea eax, [ebx + 0xdc0]
test eax, eax
jne 0x1001b2a4
lea eax, [ecx + 0xdc0]
movss xmm0, dword [eax]
comiss xmm0, xmm1
movss xmm2, dword [eax + 4]
jb 0x1001b2bb
comiss xmm2, xmm1
jb 0x1001b2bb
mov al, 1
jmp 0x1001b2bd
xor al, al
mov ebx, dword [ebp - 8]
cmp al, dl
movzx ebx, bl
mov esi, 1
mov eax, ebx
mov dword [ebp - 8], ebx
mov ebx, dword [ebp - 0x14]
cmove eax, esi
mov dword [ebp - 8], eax
cmp byte [ecx + 0x3680], 0
je 0x1001b2ea
cmp byte [ecx + 0x4548], 0
je 0x1001b2f1
mov byte [ebx + 0x4928], 0
mov eax, dword [ebx + 0x4914]
test eax, eax
je 0x1001b46e
test byte [eax + 0xc], 4
jne 0x1001b46e
cmp dword [ebx + 0x47f0], 2
xorps xmm2, xmm2
xorps xmm3, xmm3
jne 0x1001b34a
cmp byte [ebx + 0xdd9], 0
jne 0x1001b34a
push 0x204
push 0x203
push 0x202
lea eax, [ebp - 0x1c]
push 0x201
push eax
call fcn.10014240
add esp, 0x14
movss xmm2, dword [eax]
movss xmm3, dword [eax + 4]
cmp dword [ebx + 0x47f0], 3
jne 0x1001b37c
push 0x27c
push 0x27b
push 0x27a
lea eax, [ebp - 0x1c]
push 0x279
push eax
call fcn.10014240
add esp, 0x14
movss xmm2, dword [eax]
movss xmm3, dword [eax + 4]
xorps xmm1, xmm1
ucomiss xmm2, xmm1
lahf
test ah, 0x44
jp 0x1001b395
ucomiss xmm3, xmm1
lahf
test ah, 0x44
jnp 0x1001b46e
movss xmm0, dword [ebx + 0x5c]
minss xmm0, dword [ebx + 0x58]
mulss xmm0, dword [ebx + 0x18]
mov byte [ebx + 0x47fb], 1
mulss xmm0, dword [0x10168b18]
mulss xmm2, xmm0
mulss xmm3, xmm0
xorps xmm0, xmm0
addss xmm2, dword [ebx + 0x492c]
addss xmm3, dword [ebx + 0x4930]
cvttss2si esi, xmm2
movss dword [ebx + 0x492c], xmm2
xorps xmm2, xmm2
cvttss2si edi, xmm3
cvtsi2ss xmm0, esi
movss dword [ebx + 0x4930], xmm3
ucomiss xmm0, xmm1
cvtsi2ss xmm2, edi
lahf
test ah, 0x44
jp 0x1001b403
ucomiss xmm2, xmm1
lahf
test ah, 0x44
jnp 0x1001b46b
mov eax, dword [ebx + 0x4914]
lea ecx, [ebp - 0x1c]
push 1
push ecx
mov eax, dword [eax + 0x300]
push eax
addss xmm0, dword [eax + 0x14]
movss dword [ebp - 0x1c], xmm0
movaps xmm0, xmm2
addss xmm0, dword [eax + 0x18]
movss dword [ebp - 0x18], xmm0
call fcn.10021290
movss xmm0, dword [ebx + 0x492c]
add esp, 0xc
movd xmm1, esi
cvtdq2ps xmm1, xmm1
subss xmm0, xmm1
movd xmm1, edi
cvtdq2ps xmm1, xmm1
movss dword [ebx + 0x492c], xmm0
movss xmm0, dword [ebx + 0x4930]
subss xmm0, xmm1
movss dword [ebx + 0x4930], xmm0
mov edi, dword [ebp - 0xc]
test edi, edi
je 0x1001b500
mov eax, dword [ebx + 0x47c0]
test eax, eax
je 0x1001b488
cmp edi, dword [eax + 0x300]
je 0x1001b4f6
push 0
push 0
call fcn.100202b0
mov eax, dword [0x101e88b0]
add esp, 8
mov word [eax + 0x47f9], 1
mov byte [eax + 0x47fb], 1
mov eax, dword [edi + 0x310]
test eax, eax
je 0x1001b4bd
cmp byte [eax + 0xab], 0
cmovne edi, eax
push 0
push edi
call fcn.10011290
push edi
call fcn.10013950
add esp, 0xc
cmp dword [edi + 0x314], 0
jne 0x1001b4e2
push 0
push edi
call fcn.10018570
add esp, 8
cmp word [edi + 0x14e], 2
jne 0x1001b4f6
mov dword [ebx + 0x47f4], 1
mov dword [ebx + 0x4914], 0
cmp byte [ebp - 8], 0
je 0x1001b5cd
cmp dword [ebx + 0x47c0], 0
je 0x1001b5cd
push 0
push 0
call fcn.100202b0
mov edi, dword [ebx + 0x47c0]
add esp, 8
mov esi, edi
cmp dword [esi + 0x2f8], 0
lea ecx, [esi + 0x2f8]
je 0x1001b57c
nop word [eax + eax]
test byte [esi + 0x14c], 2
jne 0x1001b569
mov eax, dword [esi + 0xc]
and eax, 0x15000000
cmp eax, 0x1000000
jne 0x1001b569
mov esi, dword [ecx]
cmp dword [esi + 0x2f8], 0
lea ecx, [esi + 0x2f8]
jne 0x1001b540
cmp esi, edi
je 0x1001b57c
push esi
call fcn.10013950
add esp, 4
mov dword [esi + 0x310], edi
mov ecx, dword [ebx + 0x47c0]
test byte [ecx + 0x14c], 2
je 0x1001b596
mov eax, dword [ebx + 0x47f4]
xor eax, 1
jmp 0x1001b598
xor eax, eax
cmp eax, dword [ebx + 0x47f4]
je 0x1001b5cd
cmp eax, 1
jne 0x1001b5af
mov dword [ecx + 0x318], 0
push eax
call fcn.10018fd0
mov eax, dword [0x101e88b0]
add esp, 4
mov word [eax + 0x47f9], 1
mov byte [eax + 0x47fb], 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret