Function at 0x4b909f
Capabilities:
Encode data using xor
Hash data with crc32

Disassembly:
push ebp
xor eax, eax
mov ebp, esp
push edi
push esi
push ebx
sub esp, 8
mov ecx, dword [ebp + 0xc]
test ecx, ecx
je 0x4b9320
mov eax, dword [ebp + 8]
not eax
cmp dword [ebp + 0x10], 0
je 0x4b931e
test cl, 3
je 0x4b90e0
mov bl, byte [ecx]
inc ecx
dec dword [ebp + 0x10]
xor ebx, eax
shr eax, 8
movzx ebx, bl
xor eax, dword [ebx*4 + 0x52a9e0]
jmp 0x4b90ba
mov edi, dword [ebp + 0x10]
mov esi, ecx
add edi, ecx
mov dword [ebp - 0x10], edi
mov edx, dword [ebp - 0x10]
sub edx, esi
cmp edx, 0x1f
jbe 0x4b928f
xor eax, dword [esi]
mov edx, eax
movzx ebx, al
shr edx, 0x10
mov ebx, dword [ebx*4 + 0x52b5e0]
movzx edi, dl
mov edx, eax
movzx eax, ah
shr edx, 0x18
xor ebx, dword [edx*4 + 0x52a9e0]
xor ebx, dword [esi + 4]
xor ebx, dword [eax*4 + 0x52b1e0]
xor ebx, dword [edi*4 + 0x52ade0]
mov edx, ebx
shr ebx, 0x10
mov edi, edx
movzx ebx, bl
movzx eax, dl
movzx edx, dh
shr edi, 0x18
mov eax, dword [eax*4 + 0x52b5e0]
xor eax, dword [edi*4 + 0x52a9e0]
xor eax, dword [esi + 8]
xor eax, dword [edx*4 + 0x52b1e0]
xor eax, dword [ebx*4 + 0x52ade0]
mov ebx, eax
mov edi, eax
movzx edx, al
movzx eax, ah
shr ebx, 0x10
shr edi, 0x18
mov edx, dword [edx*4 + 0x52b5e0]
movzx ebx, bl
xor edx, dword [edi*4 + 0x52a9e0]
xor edx, dword [esi + 0xc]
xor edx, dword [eax*4 + 0x52b1e0]
xor edx, dword [ebx*4 + 0x52ade0]
mov ebx, edx
mov edi, edx
movzx eax, dl
movzx edx, dh
shr ebx, 0x10
shr edi, 0x18
mov eax, dword [eax*4 + 0x52b5e0]
movzx ebx, bl
xor eax, dword [edi*4 + 0x52a9e0]
xor eax, dword [esi + 0x10]
xor eax, dword [edx*4 + 0x52b1e0]
xor eax, dword [ebx*4 + 0x52ade0]
mov ebx, eax
mov edi, eax
movzx edx, al
movzx eax, ah
shr ebx, 0x10
shr edi, 0x18
mov edx, dword [edx*4 + 0x52b5e0]
movzx ebx, bl
xor edx, dword [edi*4 + 0x52a9e0]
xor edx, dword [esi + 0x14]
xor edx, dword [eax*4 + 0x52b1e0]
xor edx, dword [ebx*4 + 0x52ade0]
mov ebx, edx
mov edi, edx
movzx eax, dl
movzx edx, dh
shr ebx, 0x10
shr edi, 0x18
mov eax, dword [eax*4 + 0x52b5e0]
add esi, 0x20
movzx ebx, bl
xor eax, dword [edi*4 + 0x52a9e0]
xor eax, dword [esi - 8]
xor eax, dword [edx*4 + 0x52b1e0]
xor eax, dword [ebx*4 + 0x52ade0]
mov edx, eax
mov edi, eax
movzx ebx, al
movzx eax, ah
shr edx, 0x10
shr edi, 0x18
mov ebx, dword [ebx*4 + 0x52b5e0]
movzx edx, dl
xor ebx, dword [edi*4 + 0x52a9e0]
xor ebx, dword [esi - 4]
xor ebx, dword [eax*4 + 0x52b1e0]
xor ebx, dword [edx*4 + 0x52ade0]
mov eax, ebx
mov edx, ebx
shr eax, 0x10
shr edx, 0x18
movzx edi, al
movzx eax, bl
movzx ebx, bh
mov eax, dword [eax*4 + 0x52b5e0]
xor eax, dword [edx*4 + 0x52a9e0]
xor eax, dword [ebx*4 + 0x52b1e0]
xor eax, dword [edi*4 + 0x52ade0]
jmp 0x4b90ea
mov ebx, dword [ebp + 0x10]
mov edx, dword [ebp + 0x10]
shr ebx, 5
and edx, 0xffffffe0
add ecx, edx
imul ebx, ebx, 0xffffffe0
add ebx, dword [ebp + 0x10]
lea edi, [ecx + ebx]
mov esi, ecx
mov dword [ebp - 0x10], edi
mov edx, dword [ebp - 0x10]
sub edx, esi
cmp edx, 3
jbe 0x4b92f3
xor eax, dword [esi]
add esi, 4
mov edx, eax
shr edx, 0x10
movzx edi, dl
movzx edx, al
mov dword [ebp - 0x14], edi
mov edi, eax
mov edx, dword [edx*4 + 0x52b5e0]
movzx eax, ah
shr edi, 0x18
xor edx, dword [edi*4 + 0x52a9e0]
mov edi, dword [ebp - 0x14]
xor edx, dword [eax*4 + 0x52b1e0]
mov eax, edx
xor eax, dword [edi*4 + 0x52ade0]
jmp 0x4b92ab
mov edx, ebx
mov esi, ebx
shr edx, 2
and esi, 0xfffffffc
imul edx, edx, 0xfffffffc
add ecx, esi
add ebx, edx
je 0x4b931e
add ebx, ecx
mov dl, byte [ecx]
inc ecx
xor edx, eax
shr eax, 8
movzx esi, dl
xor eax, dword [esi*4 + 0x52a9e0]
cmp ebx, ecx
jne 0x4b9308
not eax
pop edx
pop ecx
pop ebx
pop esi
pop edi
pop ebp
ret