Function at 0x51e350
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 0x51e613
mov dl, byte [ecx]
cmp dl, 0x61
jl 0x51e379
cmp dl, 0x7a
jg 0x51e379
movsx edx, dl
sub edx, 0x20
jmp 0x51e37c
movsx edx, dl
xor edx, eax
and edx, 0xff
shr eax, 8
xor eax, dword [edx*4 + 0x662ff0]
mov dl, byte [ecx + 1]
cmp dl, 0x61
jl 0x51e3a3
cmp dl, 0x7a
jg 0x51e3a3
movsx edx, dl
sub edx, 0x20
jmp 0x51e3a6
movsx edx, dl
xor edx, eax
and edx, 0xff
shr eax, 8
xor eax, dword [edx*4 + 0x662ff0]
mov dl, byte [ecx + 2]
cmp dl, 0x61
jl 0x51e3cd
cmp dl, 0x7a
jg 0x51e3cd
movsx edx, dl
sub edx, 0x20
jmp 0x51e3d0
movsx edx, dl
xor edx, eax
and edx, 0xff
shr eax, 8
xor eax, dword [edx*4 + 0x662ff0]
mov dl, byte [ecx + 3]
cmp dl, 0x61
jl 0x51e3f7
cmp dl, 0x7a
jg 0x51e3f7
movsx edx, dl
sub edx, 0x20
jmp 0x51e3fa
movsx edx, dl
xor edx, eax
and edx, 0xff
shr eax, 8
xor eax, dword [edx*4 + 0x662ff0]
mov dl, byte [ecx + 4]
cmp dl, 0x61
jl 0x51e421
cmp dl, 0x7a
jg 0x51e421
movsx edx, dl
sub edx, 0x20
jmp 0x51e424
movsx edx, dl
xor edx, eax
and edx, 0xff
shr eax, 8
xor eax, dword [edx*4 + 0x662ff0]
mov dl, byte [ecx + 5]
cmp dl, 0x61
jl 0x51e44b
cmp dl, 0x7a
jg 0x51e44b
movsx edx, dl
sub edx, 0x20
jmp 0x51e44e
movsx edx, dl
xor edx, eax
and edx, 0xff
shr eax, 8
xor eax, dword [edx*4 + 0x662ff0]
mov dl, byte [ecx + 6]
cmp dl, 0x61
jl 0x51e475
cmp dl, 0x7a
jg 0x51e475
movsx edx, dl
sub edx, 0x20
jmp 0x51e478
movsx edx, dl
xor edx, eax
and edx, 0xff
shr eax, 8
xor eax, dword [edx*4 + 0x662ff0]
mov dl, byte [ecx + 7]
cmp dl, 0x61
jl 0x51e49f
cmp dl, 0x7a
jg 0x51e49f
movsx edx, dl
sub edx, 0x20
jmp 0x51e4a2
movsx edx, dl
xor edx, eax
and edx, 0xff
shr eax, 8
xor eax, dword [edx*4 + 0x662ff0]
mov dl, byte [ecx + 8]
cmp dl, 0x61
jl 0x51e4c9
cmp dl, 0x7a
jg 0x51e4c9
movsx edx, dl
sub edx, 0x20
jmp 0x51e4cc
movsx edx, dl
xor edx, eax
and edx, 0xff
shr eax, 8
xor eax, dword [edx*4 + 0x662ff0]
mov dl, byte [ecx + 9]
cmp dl, 0x61
jl 0x51e4f3
cmp dl, 0x7a
jg 0x51e4f3
movsx edx, dl
sub edx, 0x20
jmp 0x51e4f6
movsx edx, dl
xor edx, eax
and edx, 0xff
shr eax, 8
xor eax, dword [edx*4 + 0x662ff0]
mov dl, byte [ecx + 0xa]
cmp dl, 0x61
jl 0x51e51d
cmp dl, 0x7a
jg 0x51e51d
movsx edx, dl
sub edx, 0x20
jmp 0x51e520
movsx edx, dl
xor edx, eax
and edx, 0xff
shr eax, 8
xor eax, dword [edx*4 + 0x662ff0]
mov dl, byte [ecx + 0xb]
cmp dl, 0x61
jl 0x51e547
cmp dl, 0x7a
jg 0x51e547
movsx edx, dl
sub edx, 0x20
jmp 0x51e54a
movsx edx, dl
xor edx, eax
and edx, 0xff
shr eax, 8
xor eax, dword [edx*4 + 0x662ff0]
mov dl, byte [ecx + 0xc]
cmp dl, 0x61
jl 0x51e571
cmp dl, 0x7a
jg 0x51e571
movsx edx, dl
sub edx, 0x20
jmp 0x51e574
movsx edx, dl
xor edx, eax
and edx, 0xff
shr eax, 8
xor eax, dword [edx*4 + 0x662ff0]
mov dl, byte [ecx + 0xd]
cmp dl, 0x61
jl 0x51e59b
cmp dl, 0x7a
jg 0x51e59b
movsx edx, dl
sub edx, 0x20
jmp 0x51e59e
movsx edx, dl
xor edx, eax
and edx, 0xff
shr eax, 8
xor eax, dword [edx*4 + 0x662ff0]
mov dl, byte [ecx + 0xe]
cmp dl, 0x61
jl 0x51e5c5
cmp dl, 0x7a
jg 0x51e5c5
movsx edx, dl
sub edx, 0x20
jmp 0x51e5c8
movsx edx, dl
xor edx, eax
and edx, 0xff
shr eax, 8
xor eax, dword [edx*4 + 0x662ff0]
mov dl, byte [ecx + 0xf]
cmp dl, 0x61
jl 0x51e5ef
cmp dl, 0x7a
jg 0x51e5ef
movsx edx, dl
sub edx, 0x20
jmp 0x51e5f2
movsx edx, dl
xor edx, eax
and edx, 0xff
shr eax, 8
xor eax, dword [edx*4 + 0x662ff0]
sub esi, 0x10
add ecx, 0x10
cmp esi, 0x10
jae 0x51e365
test esi, esi
je 0x51e646
mov dl, byte [ecx]
cmp dl, 0x61
jl 0x51e62b
cmp dl, 0x7a
jg 0x51e62b
movsx edx, dl
sub edx, 0x20
jmp 0x51e62e
movsx edx, dl
xor edx, eax
and edx, 0xff
shr eax, 8
xor eax, dword [edx*4 + 0x662ff0]
inc ecx
sub esi, 1
jne 0x51e617
not eax
pop esi
ret