Function at 0x40de80
Capabilities:
Hash data with crc32

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x38
mov eax, dword [0x465040]
xor eax, ebp
mov dword [ebp - 4], eax
mov dword [ebp - 0x20], ecx
mov ecx, dword [ebp + 0xc]
or ecx, 2
mov dword [ebp - 0x14], edx
push ebx
mov ebx, dword [0x465538]
push esi
push edi
mov edi, dword [ebp + 0x10]
mov esi, 0x1000041
mov eax, dword [ebx + 0x4004]
test edi, 0x40000000
mov dword [ebp - 0x18], eax
mov eax, 0x1000001
cmove ecx, dword [ebp + 0xc]
mov edx, ecx
mov dword [ebp - 0x38], ebx
or edx, 0x100
test edi, edi
cmovns edx, ecx
mov ecx, edx
and ecx, 0xfffffffb
test dl, 0x10
cmove ecx, edx
mov edx, ecx
and edx, 0xfffffff7
test cl, 0x20
cmove edx, ecx
test dl, 0x70
mov dword [ebp - 0xc], edx
cmove esi, eax
mov eax, dword [ebp - 0x18]
mov eax, dword [eax + 0xc]
and eax, 4
or esi, eax
or esi, edi
mov dword [ebp - 0x10], esi
test dl, 0xc
jne 0x40df12
or esi, 0x102
mov dword [ebp - 0x10], esi
test dl, dl
jns 0x40e035
movups xmm0, xmmword [ebx + 0x39e8]
lea eax, [ebp - 0x34]
mov dword [ebp - 0x34], 3
push eax
lea ecx, [ebx + 0x4a60]
movups xmmword [ebp - 0x30], xmm0
call fcn.00420e80
cmp dword [ebx + 0x4a5c], 3
je 0x40df52
movups xmm0, xmmword [ebx + 0x3a28]
movups xmmword [ebx + 0x39e8], xmm0
mov esi, dword [0x465538]
lea eax, [ebp - 0x2c]
movss xmm0, dword [ebx + 0x390c]
movss dword [ebp - 0x1c], xmm0
push eax
movss xmm0, dword [esi + 0x38f4]
lea ecx, [esi + 0x4a6c]
mov dword [ebp - 0x2c], 7
movss dword [ebp - 0x28], xmm0
call fcn.00420d70
movss xmm0, dword [ebp - 0x1c]
lea eax, [ebp - 0x2c]
movss dword [esi + 0x38f4], xmm0
mov esi, dword [0x465538]
movss xmm0, dword [ebx + 0x3910]
movss dword [ebp - 0x1c], xmm0
push eax
movss xmm0, dword [esi + 0x38f8]
lea ecx, [esi + 0x4a6c]
mov dword [ebp - 0x2c], 8
movss dword [ebp - 0x28], xmm0
call fcn.00420d70
movss xmm0, dword [ebp - 0x1c]
lea eax, [ebp - 0x2c]
movss dword [esi + 0x38f8], xmm0
mov esi, dword [0x465538]
push eax
mov dword [ebp - 0x2c], 2
movss xmm0, dword [esi + 0x38d0]
lea ecx, [esi + 0x4a6c]
movss xmm1, dword [esi + 0x38d4]
movss dword [ebp - 0x28], xmm0
movss dword [ebp - 0x24], xmm1
call fcn.00420d70
mov eax, dword [ebx + 0x3904]
mov ecx, dword [ebx + 0x3908]
mov edx, dword [ebp - 0xc]
mov dword [esi + 0x38d0], eax
or edx, 3
mov dword [esi + 0x38d4], ecx
mov esi, dword [ebp - 0x10]
mov dword [ebp - 0xc], edx
or esi, 4
mov ecx, dword [0x465538]
or dword [ebx + 0x49f0], 0x100
mov dword [ebx + 0x4a28], edx
mov edi, dword [ecx + 0x4004]
cmp dword [edi + 0x1a0], 0
jne 0x40e068
cmp dword [ecx + 0x4d84], 0
mov eax, 0x23c
je 0x40e06d
mov eax, 0x20c
movss xmm5, dword [edi + eax]
xorps xmm1, xmm1
movss xmm6, dword [edi + eax + 4]
movss xmm7, dword [edi + 0x100]
subss xmm5, xmm7
subss xmm6, dword [edi + 0x104]
test dl, 0x20
je 0x40e097
xorps xmm6, xmm6
test dl, 0x10
je 0x40e09f
xorps xmm5, xmm5
mov eax, dword [ebp + 8]
xorps xmm4, xmm4
xorps xmm3, xmm3
movss xmm2, dword [eax]
comiss xmm1, xmm2
movss xmm0, dword [eax + 4]
ja 0x40e0bb
comiss xmm1, xmm0
jbe 0x40e0ee
cmp dword [edi + 0x1a0], 0
jne 0x40e0d2
cmp dword [ecx + 0x4d84], 0
mov eax, 0x23c
je 0x40e0d7
mov eax, 0x20c
movss xmm4, dword [eax + edi]
movss xmm3, dword [eax + edi + 4]
subss xmm4, xmm7
subss xmm3, dword [edi + 0x104]
movss xmm7, dword [0x461d90]
ucomiss xmm2, xmm1
lahf
test ah, 0x44
jp 0x40e104
movaps xmm2, xmm5
jmp 0x40e114
comiss xmm1, xmm2
jbe 0x40e114
addss xmm4, xmm2
movaps xmm2, xmm7
maxss xmm2, xmm4
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jp 0x40e122
movaps xmm0, xmm6
jmp 0x40e132
comiss xmm1, xmm0
jbe 0x40e132
addss xmm3, xmm0
movaps xmm0, xmm7
maxss xmm0, xmm3
mov eax, dword [ebp - 0x18]
or dword [ecx + 0x49f0], 2
mov edx, dword [ebp - 0x20]
movss dword [ecx + 0x4a10], xmm2
movss dword [ecx + 0x4a14], xmm0
mov dword [ecx + 0x49f8], 1
mov ecx, dword [eax + 4]
mov eax, dword [ebp - 0x14]
push eax
lea eax, [ebp - 0x10]
test edx, edx
je 0x40e17b
push edx
push ecx
push str._s__s__08X
push 0
push eax
call fcn.00405870
add esp, 0x18
jmp 0x40e18c
push ecx
push str._s__08X
push 0
push eax
call fcn.00405870
add esp, 0x14
test byte [ebp - 0xc], 1
movss xmm0, dword [ebx + 0x38f8]
movss dword [ebp - 0x20], xmm0
jne 0x40e1a9
mov dword [ebx + 0x38f8], 0
mov ecx, dword [ebp - 0x10]
xor edx, edx
push esi
call fcn.00411300
movss xmm0, dword [ebp - 0x20]
add esp, 4
test byte [ebp - 0xc], 0x80
mov byte [ebp - 5], al
movss dword [ebx + 0x38f8], xmm0
je 0x40e1e1
mov ecx, 3
call fcn.00407380
mov ecx, 1
call fcn.00407330
mov edi, dword [ebx + 0x4004]
mov edx, dword [ebp - 0x14]
cmp word [edi + 0xc8], 1
mov dword [edi + 0x80], edx
jne 0x40e20f
mov ebx, dword [ebp - 0x18]
mov eax, dword [edi + 0x18]
mov ecx, dword [edi + 0x1c]
mov dword [ebx + 0x100], eax
mov dword [ebx + 0x104], ecx
mov esi, edx
mov al, 0x23
not esi
mov edx, 0x45f409
mov ebx, esi
nop dword [eax]
cmp al, 0x23
jne 0x40e22e
cmp byte [edx], al
jne 0x40e22e
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 + 0x45a660]
test al, al
jne 0x40e220
mov esi, dword [ebp - 0x38]
not ebx
cmp dword [esi + 0x4060], ebx
jne 0x40e25d
xor edx, edx
xor ecx, ecx
call fcn.0040a390
mov eax, dword [ebp - 0x14]
cmp dword [esi + 0x4ae8], eax
jne 0x40e2ab
test dword [ebp - 0xc], 0x100
jne 0x40e2ab
cmp word [edi + 0x15c], 0
jne 0x40e284
cmp byte [edi + 0x162], 0
je 0x40e2ab
xor edx, edx
mov ecx, edi
call fcn.004140e0
xor dl, dl
mov ecx, edi
call fcn.0041a3e0
mov edx, edi
mov ecx, ebx
call fcn.0040a390
mov eax, dword [esi + 0x4b14]
mov dword [esi + 0x4084], eax
mov ecx, dword [ebp - 4]
mov al, byte [ebp - 5]
xor ecx, ebp
pop edi
pop esi
pop ebx
call fcn.00457551
mov esp, ebp
pop ebp
ret