Function at 0x40c9a0
Capabilities:
Hash data with crc32

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x18
mov eax, dword [0x44b030]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
mov esi, dword [0x44b6d0]
push edi
mov edi, ecx
mov dword [ebp - 0x14], edx
mov ebx, dword [esi + 0x3f88]
or dword [esi + 0x490c], 0x100
mov dword [esi + 0x4944], 1
mov ecx, dword [ebx + 0x198]
test ecx, ecx
jne 0x40c9ef
mov eax, 0x230
cmp dword [esi + 0x4c6c], ecx
je 0x40c9f4
mov eax, 0x200
movss xmm6, dword [ebx + eax]
xorps xmm4, xmm4
movss xmm7, dword [ebx + eax + 4]
xorps xmm3, xmm3
mov eax, ebx
xorps xmm2, xmm2
subss xmm7, dword [eax + 0xfc]
subss xmm6, dword [eax + 0xf8]
mov eax, dword [ebp + 8]
movss xmm1, dword [eax]
comiss xmm4, xmm1
movss xmm0, dword [eax + 4]
ja 0x40ca30
comiss xmm4, xmm0
jbe 0x40ca51
test ecx, ecx
jne 0x40ca41
mov eax, 0x230
cmp dword [esi + 0x4c6c], ecx
je 0x40ca46
mov eax, 0x200
movss xmm3, dword [ebx + eax]
movss xmm2, dword [ebx + eax + 4]
movss xmm5, dword [0x448580]
ucomiss xmm1, xmm4
lahf
test ah, 0x44
jp 0x40ca75
movaps xmm1, xmm6
mov ecx, ebx
ucomiss xmm0, xmm4
lahf
test ah, 0x44
jp 0x40ca92
movaps xmm0, xmm7
jmp 0x40caab
comiss xmm4, xmm1
jbe 0x40ca65
mov ecx, ebx
subss xmm3, dword [ecx + 0xf8]
addss xmm1, xmm3
comiss xmm5, xmm1
jb 0x40ca67
movaps xmm1, xmm5
jmp 0x40ca67
comiss xmm4, xmm0
jbe 0x40caab
subss xmm2, dword [ecx + 0xfc]
addss xmm0, xmm2
comiss xmm5, xmm0
jb 0x40caab
movaps xmm0, xmm5
or dword [esi + 0x490c], 2
movss dword [esi + 0x492c], xmm1
movss dword [esi + 0x4930], xmm0
mov dword [esi + 0x4914], 1
mov eax, dword [ebx + 4]
push edx
test edi, edi
je 0x40caeb
push edi
push eax
push str._s__s__08X
lea eax, [ebp - 0x10]
push 0
push eax
call fcn.004067e0
add esp, 0x18
jmp 0x40caff
push eax
push str._s__08X
lea eax, [ebp - 0x10]
push 0
push eax
call fcn.004067e0
add esp, 0x14
movss xmm0, dword [esi + 0x38d8]
xor edx, edx
mov ecx, dword [ebp - 0x10]
push 0x1000107
movss dword [ebp - 0xc], xmm0
call fcn.0040f730
mov edi, dword [esi + 0x3f88]
add esp, 4
movss xmm0, dword [ebp - 0xc]
movss dword [esi + 0x38d8], xmm0
mov byte [ebp - 5], al
cmp word [edi + 0xbc], 1
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0xc], edi
mov dword [edi + 0x78], eax
jne 0x40cb59
mov ecx, dword [edi + 0x18]
mov edx, dword [edi + 0x1c]
mov dword [ebx + 0xf8], ecx
mov dword [ebx + 0xfc], edx
mov edi, eax
mov edx, 0x4426e1
not edi
mov al, 0x23
mov ebx, edi
cmp al, 0x23
jne 0x40cb74
cmp byte [edx], al
jne 0x40cb74
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 + 0x443540]
test al, al
jne 0x40cb66
mov edi, dword [ebp - 0xc]
not ebx
cmp dword [esi + 0x3fd8], ebx
jne 0x40cba3
xor edx, edx
xor ecx, ecx
call fcn.00409620
mov eax, dword [ebp - 0x14]
cmp dword [esi + 0x49fc], eax
jne 0x40cbe8
cmp word [edi + 0x154], 0
jne 0x40cbc1
cmp byte [edi + 0x15a], 0
je 0x40cbe8
xor edx, edx
mov ecx, edi
call fcn.004122e0
xor dl, dl
mov ecx, edi
call fcn.004173c0
mov edx, edi
mov ecx, ebx
call fcn.00409620
mov eax, dword [esi + 0x4a20]
mov dword [esi + 0x3ff8], eax
mov ecx, dword [ebp - 4]
mov al, byte [ebp - 5]
xor ecx, ebp
pop edi
pop esi
pop ebx
call fcn.0043f92b
mov esp, ebp
pop ebp
ret