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

Disassembly:
push ebx
push edi
push esi
mov ecx, dword [esp + 0x14]
test ecx, ecx
je 0x101314ac
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x10]
not ebx
test edx, edx
je 0x10131282
nop
nop
nop
mov eax, ecx
and eax, 3
je 0x10131282
movzx eax, byte [ecx]
inc ecx
movzx esi, bl
xor esi, eax
shr ebx, 8
xor ebx, dword [esi*4 + 0x1013ca40]
cmp edx, 1
lea edx, [edx - 1]
jne 0x10131260
cmp edx, 0x20
jb 0x1013142e
nop
nop
nop
nop
nop
xor ebx, dword [ecx]
movzx esi, bl
movzx eax, bh
mov eax, dword [eax*4 + 0x1013d240]
xor eax, dword [esi*4 + 0x1013d640]
mov esi, ebx
shr esi, 0xe
and esi, 0x3fc
xor eax, dword [esi + 0x1013ce40]
shr ebx, 0x18
xor eax, dword [ebx*4 + 0x1013ca40]
xor eax, dword [ecx + 4]
movzx esi, al
movzx edi, ah
mov ebx, dword [edi*4 + 0x1013d240]
xor ebx, dword [esi*4 + 0x1013d640]
mov esi, eax
shr esi, 0xe
and esi, 0x3fc
xor ebx, dword [esi + 0x1013ce40]
shr eax, 0x18
xor ebx, dword [eax*4 + 0x1013ca40]
xor ebx, dword [ecx + 8]
movzx esi, bl
movzx eax, bh
mov eax, dword [eax*4 + 0x1013d240]
xor eax, dword [esi*4 + 0x1013d640]
mov esi, ebx
shr esi, 0xe
and esi, 0x3fc
xor eax, dword [esi + 0x1013ce40]
shr ebx, 0x18
xor eax, dword [ebx*4 + 0x1013ca40]
xor eax, dword [ecx + 0xc]
movzx esi, al
movzx edi, ah
mov ebx, dword [edi*4 + 0x1013d240]
xor ebx, dword [esi*4 + 0x1013d640]
mov esi, eax
shr esi, 0xe
and esi, 0x3fc
xor ebx, dword [esi + 0x1013ce40]
shr eax, 0x18
xor ebx, dword [eax*4 + 0x1013ca40]
xor ebx, dword [ecx + 0x10]
movzx esi, bl
movzx eax, bh
mov eax, dword [eax*4 + 0x1013d240]
xor eax, dword [esi*4 + 0x1013d640]
mov esi, ebx
shr esi, 0xe
and esi, 0x3fc
xor eax, dword [esi + 0x1013ce40]
shr ebx, 0x18
xor eax, dword [ebx*4 + 0x1013ca40]
xor eax, dword [ecx + 0x14]
movzx esi, al
movzx edi, ah
mov ebx, dword [edi*4 + 0x1013d240]
xor ebx, dword [esi*4 + 0x1013d640]
mov esi, eax
shr esi, 0xe
and esi, 0x3fc
xor ebx, dword [esi + 0x1013ce40]
shr eax, 0x18
xor ebx, dword [eax*4 + 0x1013ca40]
xor ebx, dword [ecx + 0x18]
movzx esi, bl
movzx eax, bh
mov eax, dword [eax*4 + 0x1013d240]
xor eax, dword [esi*4 + 0x1013d640]
mov esi, ebx
shr esi, 0xe
and esi, 0x3fc
xor eax, dword [esi + 0x1013ce40]
shr ebx, 0x18
xor eax, dword [ebx*4 + 0x1013ca40]
xor eax, dword [ecx + 0x1c]
add ecx, 0x20
movzx esi, al
movzx edi, ah
mov ebx, dword [edi*4 + 0x1013d240]
xor ebx, dword [esi*4 + 0x1013d640]
mov esi, eax
shr esi, 0xe
and esi, 0x3fc
xor ebx, dword [esi + 0x1013ce40]
shr eax, 0x18
xor ebx, dword [eax*4 + 0x1013ca40]
add edx, 0xffffffe0
cmp edx, 0x1f
ja 0x10131290
cmp edx, 4
jb 0x101314b2
nop
nop
nop
nop
nop
nop
nop
nop
nop
xor ebx, dword [ecx]
add ecx, 4
movzx esi, bl
movzx eax, bh
mov eax, dword [eax*4 + 0x1013d240]
xor eax, dword [esi*4 + 0x1013d640]
mov esi, ebx
shr esi, 0xe
and esi, 0x3fc
xor eax, dword [esi + 0x1013ce40]
shr ebx, 0x18
xor eax, dword [ebx*4 + 0x1013ca40]
add edx, 0xfffffffc
cmp edx, 3
mov ebx, eax
ja 0x10131440
test edx, edx
je 0x101314a6
nop
nop
nop
nop
nop
nop
movzx esi, byte [ecx]
inc ecx
movzx edi, al
xor edi, esi
shr eax, 8
xor eax, dword [edi*4 + 0x1013ca40]
dec edx
jne 0x10131490
not eax
pop esi
pop edi
pop ebx
ret
xor eax, eax
pop esi
pop edi
pop ebx
ret
mov eax, ebx
test edx, edx
jne 0x10131490
jmp 0x101314a6
jmp 0x10131240