Function at 0x420d04
Capabilities:
Hash data with crc32

Disassembly:
push ebp
mov ebp, esp
mov eax, dword [ebp + 8]
sub esp, 0x28
push ebx
push esi
push edi
mov edi, edx
not edi
mov esi, 0xff
cmp eax, 8
jb 0x420e36
shr eax, 3
mov dword [ebp - 0x18], eax
movzx edx, byte [ecx]
xor edx, edi
and edx, esi
mov eax, edi
shr eax, 8
xor eax, dword [edx*4 + 0x45dc80]
movzx edx, byte [ecx + 1]
xor edx, eax
and edx, esi
shr eax, 8
xor eax, dword [edx*4 + 0x45dc80]
movzx edx, byte [ecx + 2]
xor edx, eax
and edx, esi
shr eax, 8
xor eax, dword [edx*4 + 0x45dc80]
movzx edx, byte [ecx + 3]
xor edx, eax
and edx, esi
shr eax, 8
xor eax, dword [edx*4 + 0x45dc80]
movzx edx, byte [ecx + 4]
xor edx, eax
and edx, esi
shr eax, 8
xor eax, dword [edx*4 + 0x45dc80]
movzx edx, byte [ecx + 5]
xor edx, eax
and edx, esi
shr eax, 8
xor eax, dword [edx*4 + 0x45dc80]
movzx edx, byte [ecx + 6]
xor edx, eax
and edx, esi
shr eax, 8
xor eax, dword [edx*4 + 0x45dc80]
movzx edx, byte [ecx + 7]
xor edx, eax
and edx, esi
shr eax, 8
xor eax, dword [edx*4 + 0x45dc80]
mov dword [ebp - 0x20], 0x61
mov dword [ebp - 0x10], 0x10
sub dword [ebp + 8], 8
mov dword [ebp - 0xc], 0x50
mov dword [ebp - 0x10], 0x21
mov dword [ebp - 0x14], 0xc
mov dword [ebp - 8], 0xd
mov edi, eax
mov eax, dword [ebp - 0xc]
push 0x13
pop edx
sub edx, eax
mov eax, dword [ebp - 0x10]
sub edx, eax
add edx, dword [ebp - 0x20]
add ecx, 8
mov dword [ebp - 0x14], edx
mov eax, dword [ebp - 0x10]
sub eax, 0x4d
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 0x10]
cmp eax, edx
jl 0x420e2d
mov eax, dword [ebp - 8]
cdq
push 0xe
pop ebx
idiv ebx
add eax, dword [ebp - 0xc]
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 0x14]
imul eax, edx
mov dword [ebp - 0xc], eax
dec dword [ebp - 0x18]
jne 0x420d28
mov dword [ebp - 8], 0x48
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 8]
imul eax, edx
push 0x4f
pop edx
sub edx, eax
add edx, dword [ebp - 8]
push 0x57
add edx, dword [ebp - 8]
pop ebx
mov dword [ebp - 8], edx
mov eax, dword [ebp - 8]
cdq
idiv ebx
push 0x42
mov ebx, eax
mov eax, dword [ebp - 8]
imul ebx, eax
mov eax, dword [ebp - 8]
cdq
and edx, 0xf
add eax, edx
mov edx, dword [ebp - 8]
sar eax, 4
sub eax, ebx
sub eax, edx
mov edx, dword [ebp - 8]
lea eax, [eax + edx - 0x14]
add eax, dword [ebp - 8]
mov dword [ebp - 8], eax
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 8]
sub eax, edx
mov dword [ebp - 8], eax
add dword [ebp - 8], 0xffffffa1
mov eax, dword [ebp - 8]
add eax, dword [ebp - 8]
pop edx
mov dword [ebp - 8], eax
mov eax, dword [ebp - 8]
sub edx, eax
mov eax, dword [ebp - 8]
sub edx, eax
add edx, dword [ebp - 8]
add edx, dword [ebp - 8]
mov dword [ebp - 8], edx
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 8]
imul eax, edx
add eax, dword [ebp - 8]
mov edx, dword [ebp - 8]
mov ebx, dword [ebp - 8]
imul eax, eax, 0x41
imul edx, ebx
mov ebx, dword [ebp - 8]
imul edx, ebx
imul edx, edx, 0x47
add eax, edx
mov edx, dword [ebp - 8]
imul edx, edx, 0x2f
sub eax, edx
cmp dword [ebp + 8], 0
mov edx, dword [ebp - 8]
lea eax, [eax + edx - 0x18]
mov dword [ebp - 8], eax
je 0x420f64
movzx eax, byte [ecx]
xor eax, edi
and eax, esi
shr edi, 8
xor edi, dword [eax*4 + 0x45dc80]
mov dword [ebp - 0x18], 0x16
mov dword [ebp - 0xc], 0x2b
mov dword [ebp - 8], 0x50
mov dword [ebp - 0x10], 0x59
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 0xc]
imul eax, edx
mov dword [ebp - 8], eax
mov eax, dword [ebp - 0x18]
mov edx, dword [ebp - 8]
imul eax, eax, 0x3f
sub edx, eax
add edx, dword [ebp - 0x10]
inc ecx
mov dword [ebp - 8], edx
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 0xc]
cmp eax, edx
je 0x420f5f
mov eax, dword [ebp - 0xc]
mov edx, dword [ebp - 0xc]
imul eax, edx
mov edx, dword [ebp - 0x18]
imul edx, edx, 0x14
sub edx, eax
mov eax, dword [ebp - 0x10]
sub edx, eax
add edx, dword [ebp - 0xc]
mov dword [ebp - 0x10], edx
dec dword [ebp + 8]
jne 0x420eee
fld qword [0x4778f0]
mov eax, edi
fst qword [ebp - 0x24]
pop edi
fld qword [ebp - 0x24]
pop esi
fmul qword [ebp - 0x24]
not eax
pop ebx
fsub qword [0x4778e8]
fadd qword [ebp - 0x24]
fadd qword [ebp - 0x24]
fstp qword [ebp - 0x24]
fld qword [ebp - 0x24]
fsub qword [ebp - 0x24]
fadd qword [0x477878]
fadd qword [ebp - 0x24]
fstp qword [ebp - 0x24]
fld qword [ebp - 0x24]
fmul qword [0x4778e0]
fsub qword [ebp - 0x24]
fadd qword [0x4778d8]
fld qword [ebp - 0x24]
fmul qword [0x4778d0]
fdiv qword [0x477888]
faddp st(1)
fsub qword [ebp - 0x24]
fld qword [ebp - 0x24]
fmul qword [0x4778c8]
faddp st(1)
fstp qword [ebp - 0x24]
fld qword [ebp - 0x24]
fadd qword [ebp - 0x24]
fstp qword [ebp - 0x24]
fdivr qword [ebp - 0x24]
fld qword [ebp - 0x24]
fmul qword [ebp - 0x24]
fsubp st(1)
fadd qword [0x4778c0]
fstp qword [ebp - 0x24]
fld qword [ebp - 0x24]
fmul qword [ebp - 0x24]
fld qword [ebp - 0x24]
fsub qword [ebp - 0x24]
faddp st(1)
fadd qword [ebp - 0x24]
fstp qword [ebp - 0x24]
leave
ret