Function at 0x415740
Capabilities:
Hash data with crc32

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x42d8b8
mov eax, dword fs:[0]
push eax
sub esp, 8
push ebx
push esi
push edi
mov eax, dword [0x43b050]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp + 8]
lea ebx, [ecx + 1]
mov dword [eax], 0
mov al, byte [ebx]
test al, al
je 0x4158e8
cmp al, 0x23
jne 0x4158e8
mov al, byte [ecx + 2]
lea edx, [ecx + 2]
test al, al
je 0x4158e8
xor ebx, ebx
lea edi, [ebx + 1]
cmp al, 0x78
jne 0x415833
cmp byte [ecx + 3], bl
lea eax, [ecx + 3]
jne 0x4157c0
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 0x3b
push eax
call fcn.0041d080
add esp, 8
test eax, eax
je 0x4157ac
cmp byte [eax], bl
je 0x4157ac
mov ecx, eax
sub ecx, dword [ebp + 8]
dec eax
mov dword [ebp - 0x10], ecx
mov cl, byte [eax]
cmp cl, 0x78
je 0x41588b
cmp cl, 0x30
jl 0x4157f9
cmp cl, 0x39
jg 0x4157f9
movsx ecx, cl
sub ecx, 0x30
jmp 0x415820
cmp cl, 0x61
jl 0x415810
cmp cl, 0x66
jg 0x415810
movsx edx, cl
sub edx, 0x57
imul edx, edi
add ebx, edx
jmp 0x415825
cmp cl, 0x41
jl 0x4157ac
cmp cl, 0x46
jg 0x4157ac
movsx ecx, cl
sub ecx, 0x37
imul ecx, edi
add ebx, ecx
mov cl, byte [eax - 1]
dec eax
shl edi, 4
cmp cl, 0x78
jne 0x4157e7
jmp 0x41588b
push 0x3b
push edx
call fcn.0041d080
add esp, 8
test eax, eax
je 0x4157ac
cmp byte [eax], bl
je 0x4157ac
mov ecx, eax
sub ecx, dword [ebp + 8]
dec eax
mov dword [ebp - 0x10], ecx
mov cl, byte [eax]
cmp cl, 0x23
je 0x41588b
mov edi, edi
cmp cl, 0x30
jl 0x4157ac
cmp cl, 0x39
jg 0x4157ac
movsx edx, cl
mov cl, byte [eax - 1]
sub edx, 0x30
imul edx, edi
dec eax
lea edi, [edi + edi*4]
add ebx, edx
add edi, edi
cmp cl, 0x23
jne 0x415860
cmp dword [ebp + 0x14], 1
jne 0x4158be
mov eax, dword [ebp + 0xc]
mov esi, dword [ebp + 0x10]
push eax
mov ecx, ebx
call fcn.004152d0
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp + 8]
add esp, 4
lea eax, [eax + ecx + 1]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp + 0xc]
mov edx, dword [ebp + 0x10]
mov eax, dword [ebp - 0x10]
mov byte [ecx], bl
mov ecx, dword [ebp + 8]
mov dword [edx], 1
lea eax, [eax + ecx + 1]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
xor esi, esi
mov edi, 0x43c2c4
jmp 0x4158f4
mov ecx, dword [ebp + 8]
mov edx, dword [edi + 4]
mov eax, dword [edi]
push edx
push ecx
push eax
call fcn.0041cfb0
add esp, 0xc
test eax, eax
je 0x415932
add edi, 0xc
inc esi
cmp edi, 0x43c300
jl 0x4158f1
mov edx, dword [ebp + 8]
mov al, byte [edx]
mov ecx, dword [ebp + 0xc]
mov byte [ecx], al
mov eax, ebx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov edx, dword [ebp + 0xc]
lea eax, [esi + esi*2]
add eax, eax
mov cl, byte [eax + eax + 0x43c2cc]
add eax, eax
mov byte [edx], cl
mov ecx, dword [ebp + 0x10]
mov eax, dword [eax + 0x43c2c8]
add eax, dword [ebp + 8]
mov dword [ecx], 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret