Function at 0x1003c560
Capabilities:
Hash data with crc32

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
sub esp, 0x50
push esi
push edi
mov edi, dword [0x10092c50]
mov dword [ebp - 0x28], edi
mov eax, dword [edi + 0x3e60]
mov byte [eax + 0xac], 1
mov eax, dword [edi + 0x3e60]
mov ecx, dword [edi + 0x4714]
mov dword [edi + 0x4714], 0
mov dword [ebp - 0x14], eax
cmp byte [eax + 0xaf], 0
mov dword [ebp - 0x30], ecx
jne 0x1003c9eb
push ecx
push 0x10085124
mov ecx, eax
call fcn.1000b910
mov esi, eax
mov ecx, 0x10085124
mov eax, dword [0x10092c50]
mov edx, ecx
mov dword [ebp - 0x1c], esi
movss xmm0, dword [eax + 0x37c8]
movss xmm2, dword [eax + 0x3bcc]
addss xmm0, xmm0
addss xmm0, xmm2
movss dword [ebp - 8], xmm0
cmp edx, 0xffffffff
jae 0x1003c61b
nop word [eax + eax]
mov dl, byte [ecx]
test dl, dl
je 0x1003c616
cmp dl, 0x23
jne 0x1003c610
cmp byte [ecx + 1], dl
je 0x1003c616
inc ecx
cmp ecx, 0xffffffff
jb 0x1003c600
mov eax, dword [0x10092c50]
xorps xmm3, xmm3
cmp ecx, 0x10085124
jne 0x1003c62b
xorps xmm6, xmm6
jmp 0x1003c677
movss xmm3, dword [0x100884ac]
push 0
push ecx
push 0x10085124
push ecx
lea ecx, [ebp - 0x10]
mov dword [esp], 0xbf800000
push ecx
mov ecx, dword [eax + 0x3bc8]
call fcn.10035270
movss xmm0, dword [ebp - 0x10]
xorps xmm3, xmm3
addss xmm0, dword [0x100883e0]
movss xmm2, dword [ebp - 0xc]
cvttss2si eax, xmm0
movss xmm0, dword [ebp - 8]
movd xmm6, eax
cvtdq2ps xmm6, xmm6
comiss xmm6, xmm3
mov eax, dword [ebp - 0x14]
movss xmm4, dword [eax + 0xf0]
movss xmm7, dword [edi + 0x37c8]
movaps xmm1, xmm4
movss xmm5, dword [eax + 0xf4]
addss xmm1, xmm0
movaps xmm0, xmm7
movss dword [ebp - 0x24], xmm6
addss xmm0, xmm7
movss dword [ebp - 0x40], xmm4
movss dword [ebp - 0x3c], xmm5
movss dword [ebp - 0x38], xmm1
addss xmm0, xmm2
addss xmm0, xmm5
movss dword [ebp - 0x34], xmm0
jbe 0x1003c6d3
movaps xmm2, xmm6
addss xmm2, dword [edi + 0x37dc]
jmp 0x1003c6d6
xorps xmm2, xmm2
addss xmm1, xmm2
movss dword [ebp - 0x50], xmm4
addss xmm0, xmm3
movss dword [ebp - 0x4c], xmm5
lea ecx, [ebp - 0x10]
movss dword [ebp - 0x48], xmm1
subss xmm1, xmm4
movss dword [ebp - 0x44], xmm0
subss xmm0, xmm5
movss dword [ebp - 0x10], xmm1
movaps xmm1, xmm7
movss dword [ebp - 0xc], xmm0
call fcn.10018c10
lea eax, [ebp - 0x40]
mov edx, esi
push 0
push eax
lea ecx, [ebp - 0x50]
call fcn.10018dc0
add esp, 8
test al, al
je 0x1003c9eb
push 0
lea eax, [ebp - 2]
mov edx, esi
push eax
lea eax, [ebp - 3]
push eax
lea ecx, [ebp - 0x40]
call fcn.1003aa60
mov edi, esi
mov byte [ebp - 2], al
not edi
add esp, 0xc
mov edx, edi
mov esi, 0x100871a1
mov al, 0x23
cmp al, 0x23
jne 0x1003c75f
cmp byte [esi], al
jne 0x1003c75f
cmp byte [esi + 1], al
cmove edx, edi
movzx ecx, dl
movzx eax, al
xor ecx, eax
shr edx, 8
mov al, byte [esi]
inc esi
xor edx, dword [ecx*4 + 0x100809c0]
test al, al
jne 0x1003c751
not edx
mov dword [ebp - 0xc], edx
xor edx, edx
mov esi, dword [ebp - 0xc]
mov ecx, esi
call fcn.1001a140
cmp byte [ebp - 2], 0
mov edi, dword [ebp - 0x28]
mov byte [ebp - 1], al
je 0x1003c7ce
test al, al
jne 0x1003c7ce
mov ecx, esi
call fcn.1001a280
mov edx, dword [ebp - 0x1c]
lea ecx, [ebp - 0x40]
push 1
mov byte [ebp - 1], 1
call fcn.1000a580
movss xmm0, dword [ebp - 0x38]
add esp, 4
subss xmm0, dword [ebp - 8]
movss xmm1, dword [ebp - 0x40]
maxss xmm1, xmm0
movss dword [ebp - 0xc], xmm1
jmp 0x1003c807
movss xmm0, dword [ebp - 0x38]
lea ecx, [ebp - 0x40]
subss xmm0, dword [ebp - 8]
movss xmm1, dword [ebp - 0x40]
mov edx, dword [ebp - 0x1c]
push 1
maxss xmm1, xmm0
movss dword [ebp - 0xc], xmm1
call fcn.1000a580
add esp, 4
cmp byte [ebp - 1], 0
jne 0x1003c807
cmp byte [ebp - 3], 0
mov edx, 0x15
je 0x1003c80c
mov edx, 0x16
movss xmm1, dword [0x100883e8]
xor ecx, ecx
call fcn.10009760
movss xmm0, dword [ebp - 0xc]
mov ecx, 0xf0
movss xmm1, dword [0x100883e8]
movss dword [ebp - 0x20], xmm0
movss xmm0, dword [ebp - 0x3c]
movss dword [ebp - 0x1c], xmm0
movss xmm0, dword [ebp - 8]
comiss xmm0, xmm0
mov dword [ebp - 0x28], eax
mov eax, 0xa0
movss xmm0, dword [edi + 0x37cc]
cmovae eax, ecx
push eax
push ecx
mov ecx, edx
movss dword [esp], xmm0
call fcn.10009760
mov ecx, dword [ebp - 0x14]
push eax
lea eax, [ebp - 0x38]
push eax
mov ecx, dword [ecx + 0x264]
lea eax, [ebp - 0x20]
push eax
call fcn.100304e0
movss xmm2, dword [ebp - 0xc]
movss xmm1, dword [ebp - 0x38]
movaps xmm0, xmm2
addss xmm0, dword [ebp - 8]
subss xmm0, dword [edi + 0x37c4]
comiss xmm1, xmm0
jb 0x1003c961
mov eax, dword [ebp - 0x14]
movss xmm7, dword [edi + 0x37c8]
push dword [ebp - 0x28]
movaps xmm6, xmm7
mov ecx, dword [eax + 0x264]
addss xmm6, xmm2
addss xmm7, dword [ebp - 0x3c]
mov eax, dword [ecx + 0x2c]
movss xmm0, dword [eax + 0xc]
lea eax, [ebp - 0x20]
movaps xmm5, xmm0
mulss xmm0, dword [0x100883b0]
push eax
mulss xmm5, dword [0x100883a8]
lea eax, [ebp - 0x18]
push eax
addss xmm6, xmm0
addss xmm7, xmm0
xorps xmm0, xmm0
movaps xmm1, xmm5
lea eax, [ebp - 0x10]
mulss xmm1, dword [0x100883d8]
movaps xmm3, xmm5
push eax
mulss xmm3, xmm0
movaps xmm4, xmm5
mulss xmm4, dword [0x100883cc]
movaps xmm0, xmm6
addss xmm0, xmm1
movaps xmm2, xmm5
mulss xmm2, dword [0x100884b8]
movaps xmm1, xmm7
mulss xmm5, dword [0x100884b4]
addss xmm7, xmm4
movss dword [ebp - 0x20], xmm0
movaps xmm0, xmm6
addss xmm0, xmm2
addss xmm1, xmm5
addss xmm6, xmm3
movss dword [ebp - 0xc], xmm7
movss dword [ebp - 0x18], xmm0
movss dword [ebp - 0x1c], xmm1
movss dword [ebp - 0x14], xmm1
movss dword [ebp - 0x10], xmm6
call fcn.10030650
push dword [ebp - 0x34]
movss xmm0, dword [edi + 0x37cc]
push dword [ebp - 0x38]
push dword [ebp - 0x3c]
push dword [ebp - 0x40]
call fcn.1000a490
movss xmm1, dword [ebp - 0x24]
xorps xmm0, xmm0
add esp, 0x10
comiss xmm1, xmm0
jbe 0x1003c9c5
movss xmm0, dword [ebp - 0x38]
xor edx, edx
addss xmm0, dword [edi + 0x37dc]
push 1
mov ecx, 0x10085124
movss dword [ebp - 0x2c], xmm0
movss xmm0, dword [ebp - 0x3c]
addss xmm0, dword [edi + 0x37c8]
movss dword [ebp - 0x28], xmm0
push dword [ebp - 0x28]
push dword [ebp - 0x2c]
call fcn.10009a80
add esp, 0xc
cmp byte [ebp - 1], 0
je 0x1003c9eb
mov eax, dword [ebp - 0x30]
lea edx, [ebp - 0x40]
push ecx
mov ecx, esi
mov dword [edi + 0x4714], eax
call fcn.1003ca00
add esp, 4
pop edi
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
pop edi
xor al, al
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret