Function at 0x589640
Capabilities:
Hash data with crc32

Disassembly:
mov ecx, dword [esp + 4]
push esi
mov esi, dword [esp + 0xc]
or eax, 0xffffffff
cmp esi, 0x10
jb 0x589903
mov dl, byte [ecx]
cmp dl, 0x61
jl 0x589669
cmp dl, 0x7a
jg 0x589669
movsx edx, dl
sub edx, 0x20
jmp 0x58966c
movsx edx, dl
xor edx, eax
and edx, 0xff
shr eax, 8
xor eax, dword [edx*4 + 0x6ec9b0]
mov dl, byte [ecx + 1]
cmp dl, 0x61
jl 0x589693
cmp dl, 0x7a
jg 0x589693
movsx edx, dl
sub edx, 0x20
jmp 0x589696
movsx edx, dl
xor edx, eax
and edx, 0xff
shr eax, 8
xor eax, dword [edx*4 + 0x6ec9b0]
mov dl, byte [ecx + 2]
cmp dl, 0x61
jl 0x5896bd
cmp dl, 0x7a
jg 0x5896bd
movsx edx, dl
sub edx, 0x20
jmp 0x5896c0
movsx edx, dl
xor edx, eax
and edx, 0xff
shr eax, 8
xor eax, dword [edx*4 + 0x6ec9b0]
mov dl, byte [ecx + 3]
cmp dl, 0x61
jl 0x5896e7
cmp dl, 0x7a
jg 0x5896e7
movsx edx, dl
sub edx, 0x20
jmp 0x5896ea
movsx edx, dl
xor edx, eax
and edx, 0xff
shr eax, 8
xor eax, dword [edx*4 + 0x6ec9b0]
mov dl, byte [ecx + 4]
cmp dl, 0x61
jl 0x589711
cmp dl, 0x7a
jg 0x589711
movsx edx, dl
sub edx, 0x20
jmp 0x589714
movsx edx, dl
xor edx, eax
and edx, 0xff
shr eax, 8
xor eax, dword [edx*4 + 0x6ec9b0]
mov dl, byte [ecx + 5]
cmp dl, 0x61
jl 0x58973b
cmp dl, 0x7a
jg 0x58973b
movsx edx, dl
sub edx, 0x20
jmp 0x58973e
movsx edx, dl
xor edx, eax
and edx, 0xff
shr eax, 8
xor eax, dword [edx*4 + 0x6ec9b0]
mov dl, byte [ecx + 6]
cmp dl, 0x61
jl 0x589765
cmp dl, 0x7a
jg 0x589765
movsx edx, dl
sub edx, 0x20
jmp 0x589768
movsx edx, dl
xor edx, eax
and edx, 0xff
shr eax, 8
xor eax, dword [edx*4 + 0x6ec9b0]
mov dl, byte [ecx + 7]
cmp dl, 0x61
jl 0x58978f
cmp dl, 0x7a
jg 0x58978f
movsx edx, dl
sub edx, 0x20
jmp 0x589792
movsx edx, dl
xor edx, eax
and edx, 0xff
shr eax, 8
xor eax, dword [edx*4 + 0x6ec9b0]
mov dl, byte [ecx + 8]
cmp dl, 0x61
jl 0x5897b9
cmp dl, 0x7a
jg 0x5897b9
movsx edx, dl
sub edx, 0x20
jmp 0x5897bc
movsx edx, dl
xor edx, eax
and edx, 0xff
shr eax, 8
xor eax, dword [edx*4 + 0x6ec9b0]
mov dl, byte [ecx + 9]
cmp dl, 0x61
jl 0x5897e3
cmp dl, 0x7a
jg 0x5897e3
movsx edx, dl
sub edx, 0x20
jmp 0x5897e6
movsx edx, dl
xor edx, eax
and edx, 0xff
shr eax, 8
xor eax, dword [edx*4 + 0x6ec9b0]
mov dl, byte [ecx + 0xa]
cmp dl, 0x61
jl 0x58980d
cmp dl, 0x7a
jg 0x58980d
movsx edx, dl
sub edx, 0x20
jmp 0x589810
movsx edx, dl
xor edx, eax
and edx, 0xff
shr eax, 8
xor eax, dword [edx*4 + 0x6ec9b0]
mov dl, byte [ecx + 0xb]
cmp dl, 0x61
jl 0x589837
cmp dl, 0x7a
jg 0x589837
movsx edx, dl
sub edx, 0x20
jmp 0x58983a
movsx edx, dl
xor edx, eax
and edx, 0xff
shr eax, 8
xor eax, dword [edx*4 + 0x6ec9b0]
mov dl, byte [ecx + 0xc]
cmp dl, 0x61
jl 0x589861
cmp dl, 0x7a
jg 0x589861
movsx edx, dl
sub edx, 0x20
jmp 0x589864
movsx edx, dl
xor edx, eax
and edx, 0xff
shr eax, 8
xor eax, dword [edx*4 + 0x6ec9b0]
mov dl, byte [ecx + 0xd]
cmp dl, 0x61
jl 0x58988b
cmp dl, 0x7a
jg 0x58988b
movsx edx, dl
sub edx, 0x20
jmp 0x58988e
movsx edx, dl
xor edx, eax
and edx, 0xff
shr eax, 8
xor eax, dword [edx*4 + 0x6ec9b0]
mov dl, byte [ecx + 0xe]
cmp dl, 0x61
jl 0x5898b5
cmp dl, 0x7a
jg 0x5898b5
movsx edx, dl
sub edx, 0x20
jmp 0x5898b8
movsx edx, dl
xor edx, eax
and edx, 0xff
shr eax, 8
xor eax, dword [edx*4 + 0x6ec9b0]
mov dl, byte [ecx + 0xf]
cmp dl, 0x61
jl 0x5898df
cmp dl, 0x7a
jg 0x5898df
movsx edx, dl
sub edx, 0x20
jmp 0x5898e2
movsx edx, dl
xor edx, eax
and edx, 0xff
shr eax, 8
xor eax, dword [edx*4 + 0x6ec9b0]
sub esi, 0x10
add ecx, 0x10
cmp esi, 0x10
jae 0x589655
test esi, esi
je 0x589936
mov dl, byte [ecx]
cmp dl, 0x61
jl 0x58991b
cmp dl, 0x7a
jg 0x58991b
movsx edx, dl
sub edx, 0x20
jmp 0x58991e
movsx edx, dl
xor edx, eax
and edx, 0xff
shr eax, 8
xor eax, dword [edx*4 + 0x6ec9b0]
inc ecx
sub esi, 1
jne 0x589907
not eax
pop esi
ret