Function at 0x412b70
Capabilities:
Hash data with crc32

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x18
mov ecx, dword [ebp + 0x14]
mov edx, ecx
push ebx
push esi
push edi
mov edi, dword [0x693740]
and edx, 0xfffffffb
mov esi, 0x1000041
mov eax, dword [edi + 0x1248]
mov dword [ebp - 4], eax
mov eax, ecx
and al, 0x10
cmove edx, ecx
mov eax, edx
mov ebx, edx
and ebx, 0xfffffff7
and al, 0x20
mov eax, 0x1000001
cmove ebx, edx
test bl, 0x70
cmove esi, eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc]
and eax, 4
or esi, eax
or esi, dword [ebp + 0x18]
mov dword [ebp + 0x18], esi
test bl, 0xc
jne 0x412bd2
or esi, 0x102
mov dword [ebp + 0x18], esi
test bl, bl
jns 0x412cac
movups xmm0, xmmword [edi + 0xc7c]
lea eax, [ebp - 0x18]
mov dword [ebp - 0x18], 3
push eax
lea ecx, [edi + 0x1c34]
movups xmmword [ebp - 0x14], xmm0
call fcn.00427f70
movups xmm0, xmmword [edi + 0xcbc]
lea eax, [ebp - 0x10]
mov dword [ebp - 0x10], 7
push eax
movups xmmword [edi + 0xc7c], xmm0
mov esi, dword [0x693740]
movss xmm0, dword [edi + 0xbac]
movss dword [ebp + 0x14], xmm0
movss xmm0, dword [esi + 0xb94]
lea ecx, [esi + 0x1c40]
movss dword [ebp - 0xc], xmm0
call fcn.00428150
movss xmm0, dword [ebp + 0x14]
lea eax, [ebp - 0x10]
movss dword [esi + 0xb94], xmm0
mov esi, dword [0x693740]
movss xmm0, dword [edi + 0xbb0]
movss dword [ebp + 0x14], xmm0
push eax
movss xmm0, dword [esi + 0xb98]
lea ecx, [esi + 0x1c40]
mov dword [ebp - 0x10], 8
movss dword [ebp - 0xc], xmm0
call fcn.00428150
movss xmm0, dword [ebp + 0x14]
lea eax, [edi + 0xba4]
push eax
push 2
movss dword [esi + 0xb98], xmm0
call fcn.0041ff00
mov esi, dword [ebp + 0x18]
add esp, 8
or ebx, 3
or esi, 4
mov dword [ebp + 0x18], esi
or dword [edi + 0x1bcc], 0x100
mov dword [edi + 0x1c04], ebx
mov ecx, dword [0x693740]
mov edx, dword [ecx + 0x1248]
cmp dword [edx + 0x198], 0
jne 0x412cdf
cmp dword [ecx + 0x1f2c], 0
mov eax, 0x230
je 0x412ce4
mov eax, 0x200
movss xmm6, dword [edx + eax]
xorps xmm1, xmm1
movss xmm7, dword [edx + eax + 4]
mov eax, edx
subss xmm6, dword [eax + 0xf8]
subss xmm7, dword [eax + 0xfc]
test bl, 0x20
je 0x412d0c
xorps xmm7, xmm7
test bl, 0x10
je 0x412d14
xorps xmm6, xmm6
mov eax, dword [ebp + 0x10]
xorps xmm4, xmm4
xorps xmm3, xmm3
movss xmm2, dword [eax]
comiss xmm1, xmm2
movss xmm0, dword [eax + 4]
ja 0x412d30
comiss xmm1, xmm0
jbe 0x412d57
cmp dword [edx + 0x198], 0
jne 0x412d47
cmp dword [ecx + 0x1f2c], 0
mov eax, 0x230
je 0x412d4c
mov eax, 0x200
movss xmm4, dword [edx + eax]
movss xmm3, dword [edx + eax + 4]
movss xmm5, dword [0x5472fc]
ucomiss xmm2, xmm1
lahf
test ah, 0x44
jp 0x412d6d
movaps xmm2, xmm6
jmp 0x412d86
comiss xmm1, xmm2
jbe 0x412d86
subss xmm4, dword [edx + 0xf8]
addss xmm2, xmm4
comiss xmm5, xmm2
jb 0x412d86
movaps xmm2, xmm5
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jp 0x412d94
movaps xmm0, xmm7
jmp 0x412dad
comiss xmm1, xmm0
jbe 0x412dad
subss xmm3, dword [edx + 0xfc]
addss xmm0, xmm3
comiss xmm5, xmm0
jb 0x412dad
movaps xmm0, xmm5
mov eax, dword [ebp - 4]
or dword [ecx + 0x1bcc], 2
mov edx, dword [ebp + 8]
movss dword [ecx + 0x1bec], xmm2
movss dword [ecx + 0x1bf0], xmm0
mov dword [ecx + 0x1bd4], 1
mov ecx, dword [eax + 4]
mov eax, dword [ebp + 0xc]
push eax
lea eax, [ebp + 0x14]
test edx, edx
je 0x412df6
push edx
push ecx
push str._s__s__08X
push 0
push eax
call fcn.00417910
add esp, 0x18
jmp 0x412e07
push ecx
push str._s__08X
push 0
push eax
call fcn.00417910
add esp, 0x14
movss xmm0, dword [edi + 0xb98]
movss dword [ebp + 0x10], xmm0
test bl, 1
jne 0x412e23
mov dword [edi + 0xb98], 0
push esi
push 0
push dword [ebp + 0x14]
call fcn.004104e0
movss xmm0, dword [ebp + 0x10]
add esp, 0xc
mov byte [ebp + 0x17], al
movss dword [edi + 0xb98], xmm0
test bl, bl
jns 0x412e56
push 3
call fcn.0041f9d0
push 1
call fcn.0041f970
add esp, 8
mov esi, dword [edi + 0x1248]
mov edx, dword [ebp + 0xc]
mov dword [ebp + 0x10], esi
cmp word [esi + 0xbc], 1
mov dword [esi + 0x78], edx
jne 0x412e84
mov ebx, dword [ebp - 4]
mov eax, dword [esi + 0x18]
mov ecx, dword [esi + 0x1c]
mov dword [ebx + 0xf8], eax
mov dword [ebx + 0xfc], ecx
mov esi, edx
mov al, 0x23
not esi
mov edx, 0x546c3d
mov ebx, esi
cmp al, 0x23
jne 0x412e9f
cmp byte [edx], al
jne 0x412e9f
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 + 0x546268]
test al, al
jne 0x412e91
mov esi, dword [ebp + 0x10]
not ebx
cmp dword [edi + 0x1298], ebx
jne 0x412ed1
push 0
push 0
call fcn.00422eb0
add esp, 8
mov eax, dword [ebp + 0xc]
cmp dword [edi + 0x1cbc], eax
jne 0x412f1e
test dword [ebp + 0x18], 0x800000
jne 0x412f1e
cmp word [esi + 0x154], 0
jne 0x412ef8
cmp byte [esi + 0x15a], 0
je 0x412f1e
push 0
push esi
call fcn.004164f0
push 0
push esi
call fcn.0041ac10
push esi
push ebx
call fcn.00422eb0
mov eax, dword [edi + 0x1ce0]
add esp, 0x18
mov dword [edi + 0x12b8], eax
mov al, byte [ebp + 0x17]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret