Function at 0x10061740
Capabilities:
Hash data with crc32

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1c
push ebx
push esi
mov esi, dword [0x1015d8a4]
xor eax, eax
push edi
mov dword [ebp - 0x10], eax
mov byte [ebp - 0xc], al
call fcn.1005d870
mov dword [ebp - 8], eax
test eax, eax
je 0x10061771
mov dword [esi + 0x4944], 0
xor eax, eax
jmp 0x10061777
mov eax, dword [esi + 0x4944]
cmp dword [esi + 0x4948], 0
je 0x100617c0
test eax, eax
jne 0x100617c0
movss xmm0, dword [esi + 0x18]
mulss xmm0, dword [0x1013d8fc]
movss xmm1, dword [esi + 0x4954]
subss xmm1, xmm0
xorps xmm0, xmm0
comiss xmm0, dword [esi + 0x496c]
maxss xmm1, xmm0
movss dword [esi + 0x4954], xmm1
jb 0x100617c0
comiss xmm0, xmm1
jb 0x100617c0
mov dword [esi + 0x4948], eax
or ebx, 0xffffffff
mov edx, 0x1013ba3d
mov al, 0x23
or edi, 0xffffffff
nop dword [eax]
cmp al, 0x23
jne 0x100617de
cmp byte [edx], al
jne 0x100617de
cmp byte [edx + 1], al
cmove ebx, edi
movzx ecx, bl
movzx eax, al
xor ecx, eax
shr ebx, 8
mov al, byte [edx]
inc edx
xor ebx, dword [ecx*4 + 0x10135a50]
test al, al
jne 0x100617d0
mov eax, dword [esi + 8]
not ebx
mov edi, dword [0x1015d8a4]
test al, 2
je 0x10061810
test byte [esi + 0xc], 1
mov byte [ebp - 3], 1
jne 0x10061814
mov byte [ebp - 3], 0
and eax, 0xffffff01
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 8]
test eax, eax
jne 0x1006184f
mov ecx, dword [esi + 0x493c]
test ecx, ecx
je 0x1006184f
push 0x1001
mov edx, ebx
call fcn.1005c930
mov edi, dword [0x1015d8a4]
add esp, 4
test al, al
je 0x1006184c
mov byte [ebp - 1], 1
jmp 0x10061857
mov eax, dword [ebp - 8]
mov byte [ebp - 1], 0
test eax, eax
jne 0x10061880
mov ecx, dword [esi + 0x4940]
test ecx, ecx
je 0x10061880
push 0x1001
mov edx, ebx
call fcn.1005c930
mov edi, dword [0x1015d8a4]
add esp, 4
test al, al
je 0x10061880
mov byte [ebp - 2], 1
jmp 0x1006188a
cmp dword [ebp - 8], 0
mov byte [ebp - 2], 0
jne 0x100618bd
cmp byte [ebp - 3], 0
je 0x100618bd
cmp dword [esi + 0x4944], 0
jne 0x100618bd
push 0
xor edx, edx
mov ecx, 0x26b
call fcn.1005aaa0
add esp, 4
test al, al
je 0x100618bd
mov al, byte [ebp - 1]
mov cl, byte [ebp - 2]
mov byte [ebp - 3], 1
mov dl, byte [ebp - 3]
jmp 0x100618e0
xor dl, dl
cmp dword [ebp - 8], 0
mov byte [ebp - 3], dl
jne 0x100618ec
cmp dword [esi + 0x4944], 0
mov cl, byte [ebp - 2]
mov al, byte [ebp - 1]
mov byte [ebp - 3], dl
mov byte [ebp - 2], cl
mov byte [ebp - 1], al
jne 0x100618ec
test al, al
jne 0x100618e8
test cl, cl
je 0x100618ec
mov al, 1
jmp 0x100618ee
xor al, al
mov byte [ebp - 4], al
test dl, dl
jne 0x100618fd
test al, al
je 0x100619b5
mov eax, dword [esi + 0x47d8]
test eax, eax
jne 0x10061928
mov ecx, dword [esi + 0x3e1c]
mov edx, 0x80000001
push 0xffffffffffffffff
dec ecx
call fcn.10061630
add esp, 4
test eax, eax
je 0x100619b5
mov dl, byte [ebp - 3]
mov eax, dword [eax + 0x300]
mov dword [esi + 0x4948], eax
mov dword [esi + 0x4944], eax
movzx eax, byte [ebp - 4]
xor eax, 1
mov dword [esi + 0x4954], 0
add eax, 2
mov dword [esi + 0x4950], 0
cmp byte [ebp - 1], 0
mov dword [esi + 0x4964], 0
mov dword [esi + 0x4968], 0
mov dword [esi + 0x495c], 0
mov dword [esi + 0x4960], 0
mov byte [esi + 0x4958], dl
mov dword [esi + 0x4808], eax
jne 0x10061998
cmp byte [ebp - 2], 0
je 0x100619b5
push ecx
mov ecx, dword [esi + 0x4940]
mov edx, ebx
or ecx, dword [esi + 0x493c]
and ecx, 0xf800
call fcn.1005c810
add esp, 4
movss xmm0, dword [esi + 0x18]
addss xmm0, dword [esi + 0x4950]
mov eax, dword [esi + 0x4944]
movss xmm7, dword [0x1013d730]
movss xmm2, dword [0x1013d928]
movss xmm6, dword [0x1013d7f0]
movss dword [esi + 0x4950], xmm0
test eax, eax
je 0x10061b1e
cmp dword [esi + 0x4808], 3
jne 0x10061a9a
subss xmm0, xmm7
xorps xmm1, xmm1
mulss xmm0, xmm2
comiss xmm1, xmm0
jbe 0x10061a12
xorps xmm0, xmm0
jmp 0x10061a16
minss xmm0, xmm6
movss xmm5, dword [esi + 0x4954]
xor edx, edx
maxss xmm5, xmm0
mov ecx, 0x273
push 1
movss dword [esi + 0x4954], xmm5
call fcn.1005aaa0
add esp, 4
xor edx, edx
mov ecx, 0x274
mov bl, al
push 1
call fcn.1005aaa0
movzx ecx, al
add esp, 4
mov eax, dword [esi + 0x4944]
movzx edx, bl
sub edx, ecx
je 0x10061a78
mov ecx, edx
call fcn.100616a0
mov eax, dword [esi + 0x4944]
movaps xmm5, xmm6
mov dword [esi + 0x4954], 0x3f800000
cmp byte [edi + 0x348c], 0
je 0x10061aee
cmp byte [edi + 0x43ec], 0
jne 0x10061aee
movss xmm2, dword [0x1013d928]
test eax, eax
je 0x10061b1e
cmp dword [esi + 0x4808], 2
xorps xmm5, xmm5
jne 0x10061b21
mov eax, dword [esi + 0x493c]
mov edx, 0xf800
movss xmm1, dword [esi + 0x4950]
test eax, eax
mov ecx, edx
subss xmm1, xmm7
cmovne ecx, eax
mov eax, dword [esi + 0x4940]
test eax, eax
cmovne edx, eax
and edx, ecx
mulss xmm1, xmm2
mov ecx, edx
and ecx, 0xf800
comiss xmm5, xmm1
jbe 0x10061c09
xorps xmm1, xmm1
jmp 0x10061c0d
comiss xmm6, xmm5
seta al
and byte [esi + 0x4958], al
je 0x10061b0b
cmp dword [esi + 0x47d8], 0
je 0x10061b14
mov byte [ebp - 0xc], 1
jmp 0x10061b14
mov eax, dword [esi + 0x4944]
mov dword [ebp - 0x10], eax
mov dword [esi + 0x4944], 0
xorps xmm5, xmm5
cmp byte [ebp - 0x14], 0
je 0x10061b4e
push 0
or edx, 0xffffffff
mov ecx, 0x4000
call fcn.1005aaa0
add esp, 4
test al, al
je 0x10061b4e
mov byte [esi + 0x4958], 1
mov dword [esi + 0x4808], 2
mov bl, byte [esi + 0x4958]
test bl, bl
je 0x10061cf1
cmp dword [esi + 0x4808], 2
jne 0x10061cf1
cmp dword [esi + 0x3770], 0
jg 0x10061ba6
cmp byte [esi + 0xdd4], 0
jne 0x10061ba6
cmp byte [esi + 0xdd5], 0
jne 0x10061ba6
cmp byte [esi + 0xdd7], 0
jne 0x10061ba6
mov edx, 0x4000
mov ecx, edi
call fcn.1004df60
lea eax, [eax + eax*2]
cmp dword [edi + eax*4 + 0x26e0], 0xffffffff
je 0x10061baf
mov byte [esi + 0x4958], 0
xor bl, bl
call fcn.1005ab90
test al, al
je 0x10061ca5
test bl, bl
je 0x10061ca5
cmp dword [esi + 0x3ea4], 0
je 0x10061bda
cmp byte [esi + 0x3eb1], 0
je 0x10061ca5
lea eax, [esi + 0x36a0]
test eax, eax
jne 0x10061bea
lea eax, [edi + 0xdb8]
movss xmm0, dword [eax]
movss xmm1, dword [0x1013db1c]
comiss xmm0, xmm1
movss xmm2, dword [eax + 4]
jb 0x10061c67
comiss xmm2, xmm1
jb 0x10061c67
mov cl, 1
jmp 0x10061c69
minss xmm1, xmm6
movss xmm0, dword [esi + 0x4954]
mov al, byte [ebp - 1]
maxss xmm0, xmm1
movss dword [esi + 0x4954], xmm0
test al, al
jne 0x10061c50
cmp byte [ebp - 2], al
jne 0x10061c50
mov eax, dword [esi + 0xdd8]
and eax, edx
and eax, 0xf800
cmp eax, ecx
je 0x10061b21
mov eax, dword [esi + 0x4944]
mov dword [ebp - 0x10], eax
jmp 0x10061b21
movzx ecx, al
xor ecx, 1
lea ecx, [ecx*2 - 1]
call fcn.100616a0
jmp 0x10061b21
xor cl, cl
lea eax, [esi + 0xdb8]
test eax, eax
jne 0x10061c79
lea eax, [edi + 0xdb8]
movss xmm0, dword [eax]
comiss xmm0, xmm1
movss xmm2, dword [eax + 4]
jb 0x10061c90
comiss xmm2, xmm1
jb 0x10061c90
mov al, 1
jmp 0x10061c92
xor al, al
mov edx, dword [ebp - 0xc]
cmp al, cl
movzx edx, dl
mov eax, 1
cmove edx, eax
mov dword [ebp - 0xc], edx
mov edx, 0x4000
mov ecx, edi
call fcn.1004df60
cmp eax, 0x1ff
ja 0x10061cc5
mov ecx, dword [edi + eax*4 + 0xb8]
cmp ecx, 0xffffffff
cmovne eax, ecx
add eax, eax
cmp byte [edi + eax*8 + 0xddc], 0
je 0x10061cea
mov edx, 0x4000
mov ecx, edi
call fcn.1004df60
lea eax, [eax + eax*2]
cmp byte [edi + eax*4 + 0x26e8], 0
je 0x10061cf1
mov byte [esi + 0x4958], 0
mov eax, dword [esi + 0x4944]
test eax, eax
je 0x10061e4d
test byte [eax + 0xc], 4
jne 0x10061e4d
mov eax, dword [esi + 0x4808]
cmp eax, 2
jne 0x10061d43
cmp byte [esi + 0xdd5], 0
jne 0x10061e4d
movss xmm1, dword [edi + 0x2e28]
movss xmm2, dword [edi + 0x2e08]
subss xmm1, dword [edi + 0x2e18]
subss xmm2, dword [edi + 0x2df8]
jmp 0x10061d6e
xorps xmm2, xmm2
xorps xmm1, xmm1
cmp eax, 3
jne 0x10061d6e
movss xmm1, dword [edi + 0x35a8]
movss xmm2, dword [edi + 0x3588]
subss xmm1, dword [edi + 0x3598]
subss xmm2, dword [edi + 0x3578]
ucomiss xmm2, xmm5
lahf
test ah, 0x44
jp 0x10061d84
ucomiss xmm1, xmm5
lahf
test ah, 0x44
jnp 0x10061e4d
movss xmm0, dword [esi + 0x40]
xorps xmm6, xmm6
minss xmm0, dword [esi + 0x3c]
xorps xmm4, xmm4
mulss xmm0, dword [esi + 0x18]
mov byte [esi + 0x4813], 1
mulss xmm0, dword [0x1013da3c]
mulss xmm2, xmm0
mulss xmm1, xmm0
addss xmm2, dword [esi + 0x495c]
addss xmm1, dword [esi + 0x4960]
cvttss2si eax, xmm2
movss dword [esi + 0x495c], xmm2
movss dword [esi + 0x4960], xmm1
cvtsi2ss xmm6, eax
cvttss2si eax, xmm1
ucomiss xmm6, xmm5
cvtsi2ss xmm4, eax
lahf
test ah, 0x44
jp 0x10061df2
ucomiss xmm4, xmm5
lahf
test ah, 0x44
jnp 0x10061e4d
mov eax, dword [esi + 0x4944]
lea edx, [ebp - 0x18]
movaps xmm0, xmm6
push 1
mov ecx, dword [eax + 0x300]
addss xmm0, dword [ecx + 0x14]
movss dword [ebp - 0x18], xmm0
movaps xmm0, xmm4
addss xmm0, dword [ecx + 0x18]
movss dword [ebp - 0x14], xmm0
call fcn.1005a170
movss xmm0, dword [esi + 0x495c]
add esp, 4
subss xmm0, xmm6
movss dword [esi + 0x495c], xmm0
movss xmm0, dword [esi + 0x4960]
subss xmm0, xmm4
movss dword [esi + 0x4960], xmm0
mov ebx, dword [ebp - 0x10]
test ebx, ebx
je 0x10061ecf
mov eax, dword [esi + 0x47d8]
test eax, eax
je 0x10061e66
cmp ebx, dword [eax + 0x300]
je 0x10061ec5
xor edx, edx
xor ecx, ecx
call fcn.100518b0
mov eax, dword [0x1015d8a4]
xor dl, dl
mov ecx, ebx
mov word [eax + 0x4811], 1
mov byte [eax + 0x4813], 1
call fcn.1005daf0
mov edx, 1
mov ecx, ebx
call fcn.10059ab0
mov edi, dword [esi + 0x47d8]
cmp dword [edi + 0x314], 0
jne 0x10061eb1
xor dl, dl
mov ecx, edi
call fcn.1005f6c0
cmp word [edi + 0x14e], 2
jne 0x10061ec5
mov dword [esi + 0x480c], 1
mov dword [esi + 0x4944], 0
cmp byte [ebp - 0xc], 0
je 0x10061f93
cmp dword [esi + 0x47d8], 0
je 0x10061f93
xor edx, edx
xor ecx, ecx
call fcn.100518b0
mov edi, dword [esi + 0x47d8]
cmp dword [edi + 0x2f8], 0
lea ecx, [edi + 0x2f8]
je 0x10061f2d
test byte [edi + 0x14c], 2
jne 0x10061f2d
mov eax, dword [edi + 0xc]
and eax, 0x15000000
cmp eax, 0x1000000
jne 0x10061f2d
mov edi, dword [ecx]
cmp dword [edi + 0x2f8], 0
lea ecx, [edi + 0x2f8]
jne 0x10061f04
mov ebx, dword [esi + 0x47d8]
cmp edi, ebx
je 0x10061f46
xor edx, edx
mov ecx, edi
call fcn.10059ab0
mov dword [edi + 0x310], ebx
mov eax, dword [esi + 0x47d8]
test byte [eax + 0x14c], 2
je 0x10061f60
mov ecx, dword [esi + 0x480c]
xor ecx, 1
jmp 0x10061f62
xor ecx, ecx
cmp ecx, dword [esi + 0x480c]
je 0x10061f93
cmp ecx, 1
jne 0x10061f79
mov dword [eax + 0x318], 0
call fcn.1005f620
mov eax, dword [0x1015d8a4]
mov word [eax + 0x4811], 1
mov byte [eax + 0x4813], 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret