Function at 0x40cf70
Capabilities:
Hash data with crc32

Disassembly:
push ebp
mov ebp, esp
sub esp, 8
push ebx
push esi
mov esi, dword [0x4dca24]
mov ebx, edx
push edi
mov edx, ecx
mov dword [ebp - 8], ebx
mov dword [ebp - 4], edx
mov edi, dword [esi + 0x3f88]
mov ecx, edi
mov eax, dword [edi + 0xc]
and eax, 4
or eax, 0x1000103
or dword [ebp + 0x10], eax
cmp dword [edi + 0x190], 0
jne 0x40cfb6
cmp dword [esi + 0x4c6c], 0
mov eax, 0x228
je 0x40cfbb
mov eax, 0x1f8
movss xmm3, dword [eax + edi]
xorps xmm5, xmm5
movss xmm4, dword [eax + edi + 4]
subss xmm3, dword [ecx + 0xf0]
subss xmm4, dword [ecx + 0xf4]
mov ecx, dword [ebp + 8]
movss xmm2, dword [0x4d57c0]
cvttss2si eax, dword [ecx]
movd xmm1, eax
cvttss2si eax, dword [ecx + 4]
cvtdq2ps xmm1, xmm1
movd xmm0, eax
comiss xmm5, xmm1
cvtdq2ps xmm0, xmm0
jb 0x40d00c
addss xmm1, xmm3
comiss xmm1, xmm2
jae 0x40d00c
movaps xmm1, xmm2
comiss xmm5, xmm0
jb 0x40d01d
addss xmm0, xmm4
comiss xmm0, xmm2
jae 0x40d01d
movaps xmm0, xmm2
or dword [esi + 0x490c], 2
movss dword [esi + 0x492c], xmm1
movss dword [esi + 0x4930], xmm0
mov dword [esi + 0x4914], 1
test edx, edx
je 0x40d086
cmp dword [edi + 0xe4], 0
jg 0x40d066
push 0x747
push 0x4b2350
push str.Size___0
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__wassert]
mov edx, dword [ebp - 4]
add esp, 0xc
mov ecx, dword [edi + 0xe4]
mov eax, dword [edi + 0xec]
mov eax, dword [eax + ecx*4 - 4]
cmp eax, dword [edi + 8]
jne 0x40d086
push edx
push dword [edi + 4]
push 0x4b3e74
jmp 0x40d0ab
mov eax, dword [edi + 4]
push ebx
test edx, edx
je 0x40d0a5
push edx
push eax
push str._s__s__08X
lea eax, [ebp + 8]
push 0
push eax
call fcn.00403e50
add esp, 0x18
jmp 0x40d0b9
push eax
push str._s__08X
lea eax, [ebp + 8]
push 0
push eax
call fcn.00403e50
add esp, 0x14
cmp byte [ebp + 0xc], 0
movss xmm0, dword [esi + 0x38d8]
movss dword [ebp - 4], xmm0
jne 0x40d0d6
mov dword [esi + 0x38d8], 0
push dword [ebp + 0x10]
mov ecx, dword [ebp + 8]
xor edx, edx
call fcn.00410080
movss xmm0, dword [ebp - 4]
add esp, 4
mov byte [ebp + 0xf], al
mov eax, dword [esi + 0x3f88]
movss dword [esi + 0x38d8], xmm0
mov dword [ebp + 8], eax
cmp word [eax + 0xb6], 1
mov dword [eax + 0x74], ebx
jne 0x40d11e
mov ecx, dword [eax + 0x14]
mov edx, dword [eax + 0x18]
mov dword [edi + 0xf0], ecx
mov dword [edi + 0xf4], edx
mov edi, ebx
mov al, 0x23
not edi
mov edx, 0x4b3e91
mov ebx, edi
nop dword [eax + eax]
cmp al, 0x23
jne 0x40d13e
cmp byte [edx], al
jne 0x40d13e
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 + 0x4ba660]
test al, al
jne 0x40d130
not ebx
cmp dword [esi + 0x3fd4], ebx
jne 0x40d16a
xor edx, edx
xor ecx, ecx
call fcn.00409560
mov eax, dword [ebp - 8]
cmp dword [esi + 0x49f8], eax
jne 0x40d1bb
test dword [ebp + 0x10], 0x800000
jne 0x40d1bb
mov edi, dword [ebp + 8]
cmp word [edi + 0x14c], 0
jne 0x40d194
cmp byte [edi + 0x152], 0
je 0x40d1bb
xor edx, edx
mov ecx, edi
call fcn.00413130
xor dl, dl
mov ecx, edi
call fcn.0041b510
mov edx, edi
mov ecx, ebx
call fcn.00409560
mov eax, dword [esi + 0x4a1c]
mov dword [esi + 0x3ff4], eax
mov al, byte [ebp + 0xf]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret