Function at 0x40bbb0
Capabilities:
Hash data with crc32

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x18
mov eax, dword [0x449040]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
mov esi, dword [0x449430]
mov dword [ebp - 0xc], ecx
push edi
mov dword [ebp - 0x14], edx
mov ecx, dword [esi + 0x49d0]
mov ebx, dword [esi + 0x3fec]
or ecx, 0x100
mov dword [esi + 0x49d0], ecx
mov dword [esi + 0x4a08], 1
mov edi, dword [ebx + 0x1a0]
test edi, edi
jne 0x40bc08
mov eax, 0x23c
cmp dword [esi + 0x4d64], edi
je 0x40bc0d
mov eax, 0x20c
movss xmm6, dword [ebx + eax]
xorps xmm2, xmm2
movss xmm7, dword [ebx + eax + 4]
xorps xmm4, xmm4
mov eax, dword [ebp + 8]
xorps xmm3, xmm3
movss xmm5, dword [ebx + 0x100]
subss xmm7, dword [ebx + 0x104]
subss xmm6, xmm5
movss xmm1, dword [eax]
comiss xmm2, xmm1
movss xmm0, dword [eax + 4]
ja 0x40bc4b
comiss xmm2, xmm0
jbe 0x40bc78
test edi, edi
jne 0x40bc5c
mov eax, 0x23c
cmp dword [esi + 0x4d64], edi
je 0x40bc61
mov eax, 0x20c
movss xmm4, dword [ebx + eax]
movss xmm3, dword [ebx + eax + 4]
subss xmm4, xmm5
subss xmm3, dword [ebx + 0x104]
movss xmm5, dword [0x447050]
ucomiss xmm1, xmm2
lahf
test ah, 0x44
jp 0x40bc8e
movaps xmm1, xmm6
jmp 0x40bc9e
comiss xmm2, xmm1
jbe 0x40bc9e
addss xmm4, xmm1
movaps xmm1, xmm5
maxss xmm1, xmm4
ucomiss xmm0, xmm2
lahf
test ah, 0x44
jp 0x40bcac
movaps xmm0, xmm7
jmp 0x40bcbc
comiss xmm2, xmm0
jbe 0x40bcbc
addss xmm3, xmm0
movaps xmm0, xmm5
maxss xmm0, xmm3
or ecx, 2
movss dword [esi + 0x49f0], xmm1
mov dword [esi + 0x49d0], ecx
mov ecx, dword [ebp - 0xc]
movss dword [esi + 0x49f4], xmm0
mov dword [esi + 0x49d8], 1
mov eax, dword [ebx + 4]
push edx
test ecx, ecx
je 0x40bd01
push ecx
push eax
push str._s__s__08X
lea eax, [ebp - 0xc]
push 0
push eax
call fcn.00403de0
add esp, 0x18
jmp 0x40bd15
push eax
push str._s__08X
lea eax, [ebp - 0xc]
push 0
push eax
call fcn.00403de0
add esp, 0x14
movss xmm0, dword [esi + 0x38e0]
xor edx, edx
mov ecx, dword [ebp - 0xc]
push 0x1000107
movss dword [ebp - 0x10], xmm0
call fcn.0040edc0
mov edi, dword [esi + 0x3fec]
add esp, 4
movss xmm0, dword [ebp - 0x10]
movss dword [esi + 0x38e0], xmm0
mov byte [ebp - 5], al
cmp word [edi + 0xc8], 1
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x10], edi
mov dword [edi + 0x80], eax
jne 0x40bd72
mov ecx, dword [edi + 0x18]
mov edx, dword [edi + 0x1c]
mov dword [ebx + 0x100], ecx
mov dword [ebx + 0x104], edx
mov edi, eax
mov edx, 0x441651
not edi
mov al, 0x23
mov ebx, edi
nop
cmp al, 0x23
jne 0x40bd8e
cmp byte [edx], al
jne 0x40bd8e
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 + 0x4426a0]
test al, al
jne 0x40bd80
mov edi, dword [ebp - 0x10]
not ebx
cmp dword [esi + 0x4040], ebx
jne 0x40bdbd
xor edx, edx
xor ecx, ecx
call fcn.004084b0
mov eax, dword [ebp - 0x14]
cmp dword [esi + 0x4ac8], eax
jne 0x40be02
cmp word [edi + 0x15c], 0
jne 0x40bddb
cmp byte [edi + 0x162], 0
je 0x40be02
xor edx, edx
mov ecx, edi
call fcn.00411b00
xor dl, dl
mov ecx, edi
call fcn.00417940
mov edx, edi
mov ecx, ebx
call fcn.004084b0
mov eax, dword [esi + 0x4af4]
mov dword [esi + 0x4064], eax
mov ecx, dword [ebp - 4]
mov al, byte [ebp - 5]
xor ecx, ebp
pop edi
pop esi
pop ebx
call fcn.0043f179
mov esp, ebp
pop ebp
ret