Function at 0x41bdc0
Capabilities:
Hash data with crc32

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x2c
mov eax, dword [0x44c00c]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
mov esi, dword [0x44c448]
xor eax, eax
push edi
mov dword [ebp - 0x1c], esi
mov dword [ebp - 0x20], eax
mov edx, dword [esi + 0x4aa0]
sub edx, 1
mov byte [ebp - 0x18], al
js 0x41be1b
mov eax, dword [esi + 0x4aa8]
lea ecx, [edx + edx*4]
lea eax, [eax + ecx*8]
add eax, 4
nop
mov edi, dword [eax]
test edi, edi
je 0x41be13
test dword [edi + 0xc], 0x8000000
jne 0x41bf00
sub eax, 0x28
sub edx, 1
jns 0x41be00
mov eax, dword [esi + 0x4c9c]
xor edi, edi
cmp dword [esi + 0x4ca0], 0
je 0x41be6c
test eax, eax
jne 0x41be6c
movss xmm0, dword [esi + 0x18]
mulss xmm0, dword [0x4499e8]
movss xmm1, dword [esi + 0x4cac]
subss xmm1, xmm0
xorps xmm0, xmm0
comiss xmm0, dword [esi + 0x4cc8]
maxss xmm1, xmm0
movss dword [esi + 0x4cac], xmm1
jb 0x41be6c
comiss xmm0, xmm1
jb 0x41be6c
mov dword [esi + 0x4ca0], eax
or ebx, 0xffffffff
mov al, 0x23
mov edx, 0x4447dd
or esi, 0xffffffff
nop dword [eax]
cmp al, 0x23
jne 0x41be8e
cmp byte [edx], al
jne 0x41be8e
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 + 0x444d48]
test al, al
jne 0x41be80
mov esi, dword [ebp - 0x1c]
not ebx
mov eax, dword [esi + 8]
test al, 2
je 0x41bebd
test byte [esi + 0xc], 1
mov byte [ebp - 0xe], 1
jne 0x41bec1
mov byte [ebp - 0xe], 0
and eax, 0xffffff01
mov dword [ebp - 0x24], eax
test edi, edi
jne 0x41bf6c
mov ecx, dword [esi + 0x4c94]
mov dword [ebp - 8], ecx
test ecx, ecx
je 0x41bf6c
mov edx, ebx
mov dword [ebp - 0x14], edx
test ebx, ebx
je 0x41bef0
cmp ebx, 0xffffffff
jne 0x41bf11
mov eax, dword [0x44c448]
mov edx, dword [eax + 0x4954]
mov dword [ebp - 0x14], edx
jmp 0x41bf16
mov dword [esi + 0x4c9c], 0
xor eax, eax
jmp 0x41be23
mov eax, dword [0x44c448]
test dword [eax + 0x4958], 0x400
je 0x41bf28
mov byte [ebp - 0xd], 0
jmp 0x41bf79
push edx
mov edx, 0x2001
call fcn.004148d0
add esp, 4
test al, al
je 0x41bf6c
push dword [ebp - 0x14]
mov ecx, dword [ebp - 8]
mov edx, 0x2021
call fcn.004168c0
add esp, 4
test al, al
je 0x41bf6c
mov edx, dword [ebp - 0x14]
push ecx
mov ecx, dword [ebp - 8]
and ecx, 0xf000
call fcn.00416820
add esp, 4
mov byte [ebp - 0xd], 1
jmp 0x41bf74
mov byte [ebp - 0xd], 0
test edi, edi
jne 0x41bfed
mov eax, dword [0x44c448]
mov ecx, dword [esi + 0x4c98]
mov dword [ebp - 8], ecx
test ecx, ecx
je 0x41bfed
mov dword [ebp - 0x14], ebx
mov edx, ebx
test ebx, ebx
je 0x41bf94
cmp ebx, 0xffffffff
jne 0x41bf9d
mov edx, dword [eax + 0x4954]
mov dword [ebp - 0x14], edx
test dword [eax + 0x4958], 0x400
jne 0x41bfed
push edx
mov edx, 0x2001
call fcn.004148d0
add esp, 4
test al, al
je 0x41bfed
push dword [ebp - 0x14]
mov ecx, dword [ebp - 8]
mov edx, 0x2021
call fcn.004168c0
add esp, 4
test al, al
je 0x41bfed
mov edx, dword [ebp - 0x14]
push ecx
mov ecx, dword [ebp - 8]
and ecx, 0xf000
call fcn.00416820
add esp, 4
mov byte [ebp - 0xf], 1
jmp 0x41bff5
mov byte [ebp - 0xf], 0
test edi, edi
jne 0x41c025
cmp byte [ebp - 0xe], 0
je 0x41c025
cmp dword [esi + 0x4c9c], 0
jne 0x41c025
push 0
xor edx, edx
mov ecx, 0x279
call fcn.00414ba0
add esp, 4
test al, al
je 0x41c025
mov cl, 1
xor eax, eax
mov byte [ebp - 0xe], cl
mov dword [ebp - 0x14], eax
jmp 0x41c03b
mov eax, dword [esi + 0x4c9c]
xor cl, cl
mov byte [ebp - 0xe], cl
mov dword [ebp - 0x14], eax
test edi, edi
jne 0x41c04b
test eax, eax
jne 0x41c04b
cmp byte [ebp - 0xd], 0
jne 0x41c047
cmp byte [ebp - 0xf], 0
je 0x41c04b
mov al, 1
jmp 0x41c04d
xor al, al
mov byte [ebp - 0x10], al
test cl, cl
jne 0x41c05c
test al, al
je 0x41c123
mov eax, dword [esi + 0x4ad0]
test eax, eax
jne 0x41c087
mov ecx, dword [esi + 0x3fc4]
mov edx, 0x80000001
push 0xffffffffffffffff
dec ecx
call fcn.0041bcb0
mov edi, dword [ebp - 0x14]
add esp, 4
test eax, eax
je 0x41c126
mov edi, dword [eax + 0x314]
mov dword [esi + 0x4cc0], 0
mov eax, dword [esi + 0x4cc0]
mov dword [esi + 0x4cb8], eax
mov al, byte [ebp - 0xe]
mov byte [esi + 0x4cb0], al
movzx eax, byte [ebp - 0x10]
xor eax, 1
mov dword [esi + 0x4cc4], 0
mov ecx, dword [esi + 0x4cc4]
add eax, 2
cmp byte [ebp - 0xd], 0
mov dword [esi + 0x4ca0], edi
mov dword [esi + 0x4c9c], edi
mov dword [esi + 0x4cac], 0
mov dword [esi + 0x4ca8], 0
mov dword [esi + 0x4cbc], ecx
mov dword [esi + 0x4b0c], eax
jne 0x41c0fe
cmp byte [ebp - 0xf], 0
je 0x41c126
push ecx
mov ecx, dword [esi + 0x4c98]
mov edx, ebx
or ecx, dword [esi + 0x4c94]
and ecx, 0xf000
call fcn.00416820
mov edi, dword [esi + 0x4c9c]
add esp, 4
jmp 0x41c126
mov edi, dword [ebp - 0x14]
movss xmm0, dword [esi + 0x4ca8]
mov eax, 1
addss xmm0, dword [esi + 0x18]
movss dword [esi + 0x4ca8], xmm0
test edi, edi
je 0x41c2a4
cmp dword [esi + 0x4b0c], 3
movss xmm1, dword [0x449928]
movss xmm2, dword [0x449914]
movss xmm6, dword [0x44998c]
jne 0x41c220
subss xmm0, xmm1
xorps xmm1, xmm1
divss xmm0, xmm2
comiss xmm1, xmm0
ja 0x41c184
movaps xmm1, xmm6
minss xmm1, xmm0
movss xmm7, dword [esi + 0x4cac]
mov edx, eax
maxss xmm7, xmm1
mov ecx, 0x281
push 0
movss dword [esi + 0x4cac], xmm7
call fcn.00414ba0
add esp, 4
mov edx, 1
mov ecx, 0x282
mov bl, al
push 0
call fcn.00414ba0
movzx ecx, al
add esp, 4
movzx eax, bl
sub eax, ecx
je 0x41c1e3
mov ecx, eax
call fcn.0041bd20
mov edi, dword [esi + 0x4c9c]
movaps xmm7, xmm6
mov dword [esi + 0x4cac], 0x3f800000
mov ecx, dword [0x44c448]
mov edx, 0x279
call fcn.004142d0
cmp byte [eax], 0
je 0x41c274
xor edx, edx
mov ecx, 0x279
call fcn.00416790
test al, al
je 0x41c274
test edi, edi
je 0x41c2a4
movss xmm1, dword [0x449928]
movss xmm2, dword [0x449914]
cmp dword [esi + 0x4b0c], 2
xorps xmm7, xmm7
jne 0x41c2a7
movss xmm0, dword [esi + 0x4ca8]
mov edx, 0xf000
mov eax, dword [esi + 0x4c94]
subss xmm0, xmm1
test eax, eax
mov ecx, edx
cmovne ecx, eax
mov eax, dword [esi + 0x4c98]
test eax, eax
divss xmm0, xmm2
cmovne edx, eax
and edx, ecx
mov ecx, edx
and ecx, 0xf000
comiss xmm7, xmm0
jbe 0x41c3cc
xorps xmm6, xmm6
jmp 0x41c3d0
comiss xmm6, xmm7
seta al
and byte [esi + 0x4cb0], al
je 0x41c291
cmp dword [esi + 0x4ad0], 0
je 0x41c29a
mov byte [ebp - 0x18], 1
jmp 0x41c29a
mov eax, dword [esi + 0x4c9c]
mov dword [ebp - 0x20], eax
mov dword [esi + 0x4c9c], 0
xorps xmm7, xmm7
mov eax, dword [ebp - 0x24]
lea edi, [ebp - 0xc]
mov dword [ebp - 0xc], 0x211
mov dword [ebp - 8], 0x215
nop dword [eax + eax]
test al, al
je 0x41c2df
mov ebx, dword [edi]
xor edx, edx
push 0xffffffffffffffff
mov ecx, ebx
call fcn.00414ba0
add esp, 4
test al, al
jne 0x41c42a
mov eax, dword [ebp - 0x24]
add edi, 4
lea ecx, [ebp - 4]
cmp edi, ecx
jne 0x41c2c0
xor al, al
cmp byte [esi + 0x4cb0], al
je 0x41c54c
cmp dword [esi + 0x4b0c], 2
jne 0x41c54c
cmp dword [esi + 0x2b48], 0
jg 0x41c460
cmp byte [esi + 0xc8], 0
jne 0x41c460
cmp byte [esi + 0xc9], 0
jne 0x41c460
cmp byte [esi + 0xcb], 0
jne 0x41c460
test al, al
jne 0x41c356
movsd xmm0, qword [esi + 0x40a8]
ucomisd xmm0, qword [esi + 0x3f68]
lahf
test ah, 0x44
jnp 0x41c460
mov edx, dword [esi + 0x4cb4]
cmp edx, 0x200
jl 0x41c36c
cmp edx, 0x29a
jl 0x41c390
cmp edx, 0x1000
je 0x41c390
cmp edx, 0x2000
je 0x41c390
cmp edx, 0x4000
je 0x41c390
cmp edx, 0x8000
jne 0x41c447
mov ebx, dword [0x44c448]
cmp byte [ebx + 0x494c], 0
je 0x41c3b7
cmp dword [ebx + 0x4058], 0xffffffff
je 0x41c3b7
lea eax, [edx - 0x200]
cmp eax, 0x76
jbe 0x41c466
mov ecx, ebx
call fcn.00405bb0
cmp dword [eax], 0xffffffff
jne 0x41c466
jmp 0x41c44d
minss xmm6, xmm0
movss xmm0, dword [esi + 0x4cac]
mov al, byte [ebp - 0xd]
maxss xmm0, xmm6
movss dword [esi + 0x4cac], xmm0
test al, al
jne 0x41c413
cmp byte [ebp - 0xf], al
jne 0x41c413
mov eax, dword [esi + 0xcc]
and eax, edx
and eax, 0xf000
cmp eax, ecx
je 0x41c2a7
mov eax, dword [esi + 0x4c9c]
mov dword [ebp - 0x20], eax
jmp 0x41c2a7
movzx ecx, al
xor ecx, 1
lea ecx, [ecx*2 - 1]
call fcn.0041bd20
jmp 0x41c2a7
mov al, 1
mov dword [esi + 0x4cb4], ebx
mov byte [esi + 0x4cb0], al
mov dword [esi + 0x4b0c], 2
jmp 0x41c2f7
mov ebx, dword [0x44c448]
mov edx, 0x4000
mov ecx, ebx
call fcn.00405bb0
cmp dword [eax], 0xffffffff
je 0x41c46d
jmp 0x41c466
mov ebx, dword [0x44c448]
mov byte [esi + 0x4cb0], 0
mov edi, dword [esi + 0x4cb4]
mov ecx, ebx
mov edx, edi
call fcn.004142d0
comiss xmm7, dword [eax + 8]
ja 0x41c528
cmp byte [eax], 0
jne 0x41c528
xor edx, edx
mov ecx, edi
call fcn.00416790
test al, al
je 0x41c528
cmp byte [esi + 0x4cb0], 0
je 0x41c528
cmp dword [esi + 0x4058], 0
je 0x41c4bb
cmp byte [esi + 0x4065], 0
je 0x41c528
lea eax, [esi + 0xac]
test eax, eax
jne 0x41c4cb
lea eax, [ebx + 0xac]
movss xmm0, dword [eax]
movss xmm1, dword [0x449a70]
comiss xmm0, xmm1
movss xmm2, dword [eax + 4]
jb 0x41c4ea
comiss xmm2, xmm1
jb 0x41c4ea
mov cl, 1
jmp 0x41c4ec
xor cl, cl
lea eax, [esi + 0x2a74]
test eax, eax
jne 0x41c4fc
lea eax, [ebx + 0xac]
movss xmm0, dword [eax]
comiss xmm0, xmm1
movss xmm2, dword [eax + 4]
jb 0x41c513
comiss xmm2, xmm1
jb 0x41c513
mov al, 1
jmp 0x41c515
xor al, al
mov edx, dword [ebp - 0x18]
cmp cl, al
movzx edx, dl
mov eax, 1
cmove edx, eax
mov dword [ebp - 0x18], edx
mov edx, edi
mov ecx, ebx
call fcn.004142d0
cmp byte [eax], 0
je 0x41c543
xor edx, edx
mov ecx, edi
call fcn.00416790
test al, al
jne 0x41c552
mov byte [esi + 0x4cb0], 0
jmp 0x41c552
mov ebx, dword [0x44c448]
mov eax, dword [esi + 0x4c9c]
test eax, eax
je 0x41c6e5
test byte [eax + 0xc], 4
jne 0x41c6e5
mov eax, dword [esi + 0x4b0c]
cmp eax, 2
jne 0x41c5ad
cmp byte [esi + 0xc9], 0
jne 0x41c6e5
mov edx, 0x203
mov ecx, ebx
call fcn.004142d0
mov edx, 0x201
mov edi, eax
call fcn.004142d0
mov edx, 0x202
mov esi, eax
call fcn.004142d0
mov edx, 0x204
jmp 0x41c5df
cmp eax, 3
jne 0x41c6e5
mov edx, 0x289
mov ecx, ebx
call fcn.004142d0
mov edx, 0x287
mov edi, eax
call fcn.004142d0
mov edx, 0x288
mov esi, eax
call fcn.004142d0
mov edx, 0x28a
movss xmm2, dword [eax + 0xc]
mov ecx, ebx
subss xmm2, dword [esi + 0xc]
call fcn.004142d0
ucomiss xmm2, xmm7
movss xmm3, dword [eax + 0xc]
subss xmm3, dword [edi + 0xc]
lahf
test ah, 0x44
jp 0x41c610
ucomiss xmm3, xmm7
lahf
test ah, 0x44
jnp 0x41c6e2
mov esi, dword [ebp - 0x1c]
movss xmm1, dword [esi + 0x3c]
movss xmm0, dword [esi + 0x18]
minss xmm1, dword [esi + 0x40]
mulss xmm0, dword [0x449a24]
mov byte [esi + 0x4b1b], 1
mulss xmm1, xmm0
mulss xmm2, xmm1
mulss xmm3, xmm1
addss xmm2, dword [esi + 0x4cb8]
addss xmm3, dword [esi + 0x4cbc]
cvttss2si eax, xmm2
movss dword [esi + 0x4cb8], xmm2
movss dword [esi + 0x4cbc], xmm3
movd xmm5, eax
cvtdq2ps xmm5, xmm5
cvttss2si eax, xmm3
ucomiss xmm5, xmm7
movd xmm4, eax
cvtdq2ps xmm4, xmm4
lahf
test ah, 0x44
jp 0x41c685
ucomiss xmm4, xmm7
lahf
test ah, 0x44
jnp 0x41c6e5
mov eax, dword [esi + 0x4c9c]
lea edx, [ebp - 0x28]
movaps xmm0, xmm5
push 1
mov ecx, dword [eax + 0x314]
addss xmm0, dword [ecx + 0x18]
movss dword [ebp - 0x28], xmm0
movaps xmm0, xmm4
addss xmm0, dword [ecx + 0x1c]
movss dword [ebp - 0x24], xmm0
call fcn.00413b30
movss xmm0, dword [esi + 0x4cb8]
add esp, 4
subss xmm0, xmm5
movss dword [esi + 0x4cb8], xmm0
movss xmm0, dword [esi + 0x4cbc]
subss xmm0, xmm4
movss dword [esi + 0x4cbc], xmm0
jmp 0x41c6e5
mov esi, dword [ebp - 0x1c]
mov ebx, dword [ebp - 0x20]
test ebx, ebx
je 0x41c767
mov eax, dword [esi + 0x4ad0]
test eax, eax
je 0x41c6fe
cmp ebx, dword [eax + 0x314]
je 0x41c75d
xor edx, edx
xor ecx, ecx
call fcn.0040a0c0
mov eax, dword [0x44c448]
xor dl, dl
mov ecx, ebx
mov word [eax + 0x4b19], 1
mov byte [eax + 0x4b1b], 1
call fcn.00417e30
mov edx, 1
mov ecx, ebx
call fcn.004135d0
mov edi, dword [esi + 0x4ad0]
cmp dword [edi + 0x32c], 0
jne 0x41c749
xor dl, dl
mov ecx, edi
call fcn.004196c0
cmp word [edi + 0x15e], 2
jne 0x41c75d
mov dword [esi + 0x4adc], 1
mov dword [esi + 0x4c9c], 0
cmp byte [ebp - 0x18], 0
je 0x41c827
cmp dword [esi + 0x4ad0], 0
je 0x41c827
xor edx, edx
xor ecx, ecx
call fcn.0040a0c0
mov ebx, dword [esi + 0x4ad0]
mov edi, ebx
cmp dword [edi + 0x30c], 0
lea ecx, [edi + 0x30c]
je 0x41c7c9
nop
test byte [edi + 0x15c], 2
jne 0x41c7c9
mov eax, dword [edi + 0xc]
and eax, 0x15000000
cmp eax, 0x1000000
jne 0x41c7c9
mov edi, dword [ecx]
cmp dword [edi + 0x30c], 0
lea ecx, [edi + 0x30c]
jne 0x41c7a0
cmp edi, ebx
je 0x41c7e2
xor edx, edx
mov ecx, edi
call fcn.004135d0
mov dword [edi + 0x328], ebx
mov ebx, dword [esi + 0x4ad0]
test byte [ebx + 0x15c], 2
mov eax, dword [esi + 0x4adc]
je 0x41c7f8
mov ecx, eax
xor ecx, 1
jmp 0x41c7fa
xor ecx, ecx
cmp ecx, eax
je 0x41c827
cmp ecx, 1
jne 0x41c80d
mov dword [ebx + 0x330], 0
call fcn.00419590
mov eax, dword [0x44c448]
mov word [eax + 0x4b19], 1
mov byte [eax + 0x4b1b], 1
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00441be2
mov esp, ebp
pop ebp
ret