Function at 0x100306e0
Capabilities:
Encode data using xor
Encrypt data using rc4 ksa
Encrypt data using rc6
Hash data with crc32

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x40
mov eax, dword [0x103c4120]
xor eax, ebp
mov dword [ebp - 4], eax
mov edx, dword [ebp + 0xc]
xorps xmm1, xmm1
push ebx
mov ebx, dword [ebp + 8]
push esi
mov dword [edx + 0x2000], 0xd3a3b879
mov dword [edx + 0x2004], 0x3f6d12f7
mov dword [edx + 0x2008], 0x7515a235
mov dword [edx + 0x200c], 0xa4e7f123
movdqu xmm2, xmmword [ebx]
push edi
movdqu xmm0, xmmword [ebx + 0x10]
mov dword [ebp - 0x30], ebx
paddb xmm2, xmm1
mov dword [ebp - 0x28], edx
paddb xmm0, xmm1
paddb xmm2, xmm0
movdqa xmm0, xmm2
psrldq xmm0, 8
paddb xmm2, xmm0
movdqa xmm0, xmm2
psrldq xmm0, 4
paddb xmm2, xmm0
movdqa xmm0, xmm2
psrldq xmm0, 2
paddb xmm2, xmm0
movdqa xmm0, xmm2
psrldq xmm0, 1
paddb xmm2, xmm0
movd eax, xmm2
and eax, 0xffffff1f
xor esi, esi
mov dword [ebp - 0x38], eax
mov ecx, esi
mov eax, esi
and ecx, 1
shr eax, 1
neg ecx
and ecx, 0xedb88320
xor ecx, eax
mov eax, ecx
shr ecx, 1
and eax, 1
neg eax
and eax, 0xedb88320
xor eax, ecx
mov ecx, eax
shr eax, 1
and ecx, 1
neg ecx
and ecx, 0xedb88320
xor ecx, eax
mov eax, ecx
shr ecx, 1
and eax, 1
neg eax
and eax, 0xedb88320
xor eax, ecx
mov ecx, eax
shr eax, 1
and ecx, 1
neg ecx
and ecx, 0xedb88320
xor ecx, eax
mov eax, ecx
shr ecx, 1
and eax, 1
neg eax
and eax, 0xedb88320
xor eax, ecx
mov ecx, eax
shr eax, 1
and ecx, 1
neg ecx
and ecx, 0xedb88320
xor ecx, eax
mov eax, ecx
shr ecx, 1
and eax, 1
neg eax
and eax, 0xedb88320
xor eax, ecx
mov dword [edx + esi*4], eax
inc esi
cmp esi, 0x100
jb 0x10030781
mov esi, edx
mov edi, 0x1c0
mov edi, edi
mov ecx, dword [esi]
lea esi, [esi + 0x10]
movzx eax, cl
shr ecx, 8
xor ecx, dword [edx + eax*4]
mov dword [esi + 0x3f0], ecx
mov ecx, dword [esi - 0xc]
movzx eax, cl
shr ecx, 8
xor ecx, dword [edx + eax*4]
mov dword [esi + 0x3f4], ecx
mov ecx, dword [esi - 8]
movzx eax, cl
shr ecx, 8
xor ecx, dword [edx + eax*4]
mov dword [esi + 0x3f8], ecx
mov ecx, dword [esi - 4]
movzx eax, cl
shr ecx, 8
xor ecx, dword [edx + eax*4]
mov dword [esi + 0x3fc], ecx
dec edi
jne 0x10030820
lea edi, [edx + 0x2010]
mov ecx, 0x40
mov esi, 0x101e1920
rep movsd dword es:[edi], dword [esi]
xor ecx, ecx
inc ebx
mov dword [ebp - 0x40], ecx
mov dword [ebp - 0x2c], ebx
jmp 0x10030890
xor esi, esi
mov dword [ebp - 0x3c], esi
jmp 0x100308a0
movzx eax, byte [ebx + esi - 1]
sub eax, ecx
and eax, 0xff
movzx edi, byte [edx + eax*4]
movzx eax, byte [ebx + esi]
mov ebx, 1
add eax, ecx
and eax, 0xff
movzx ecx, byte [edx + eax*4]
mov eax, edi
and eax, 0xff
mov dword [ebp - 0x34], ecx
cmp eax, ecx
je 0x10030910
lea ecx, [ebx + edi]
inc edi
add esi, ecx
lea ebx, [ebx + 1]
mov cl, byte [edx + eax + 0x2010]
and esi, 0xff
add esi, edx
add edx, eax
mov al, byte [esi + 0x2010]
mov byte [edx + 0x2010], al
mov eax, edi
mov edx, dword [ebp - 0x28]
and eax, 0xff
mov byte [esi + 0x2010], cl
mov esi, dword [ebp - 0x3c]
cmp eax, dword [ebp - 0x34]
jne 0x100308d2
mov ecx, dword [ebp - 0x40]
add esi, 2
mov ebx, dword [ebp - 0x2c]
mov dword [ebp - 0x3c], esi
cmp esi, 0x10
jb 0x100308a0
inc ecx
mov dword [ebp - 0x40], ecx
cmp ecx, 0x100
jb 0x10030890
mov ebx, dword [ebp - 0x30]
mov esi, 0xfff1
mov eax, dword [edx + 0x2000]
mov edi, dword [ebp - 0x2c]
mov dword [ebp - 0x2c], 8
movzx ecx, byte [ebx]
and ecx, 0x1f
rol eax, cl
mov dword [edx + 0x2000], eax
movzx ecx, byte [edi]
mov eax, dword [edx + 0x2004]
and ecx, 0x1f
rol eax, cl
mov dword [edx + 0x2004], eax
movzx ecx, byte [ebx + 0x1f]
mov eax, dword [edx + 0x2008]
and ecx, 0x1f
ror eax, cl
mov dword [edx + 0x2008], eax
movzx ecx, byte [ebx + 0x1e]
mov eax, dword [edx + 0x200c]
and ecx, 0x1f
ror eax, cl
mov ecx, 1
mov dword [edx + 0x200c], eax
xor ebx, ebx
movzx eax, byte [edi - 1]
lea edi, [edi + 4]
add eax, ecx
xor edx, edx
div esi
mov ecx, edx
xor edx, edx
lea eax, [ebx + ecx]
mov ebx, 0xfff1
div ebx
movzx eax, byte [edi - 4]
add eax, ecx
mov esi, edx
xor edx, edx
div ebx
mov ecx, edx
xor edx, edx
lea eax, [esi + ecx]
div ebx
movzx eax, byte [edi - 3]
mov esi, edx
add eax, ecx
xor edx, edx
div ebx
mov ecx, edx
xor edx, edx
lea eax, [esi + ecx]
div ebx
movzx eax, byte [edi - 2]
mov esi, edx
add eax, ecx
xor edx, edx
div ebx
mov ecx, edx
xor edx, edx
lea eax, [esi + ecx]
mov esi, 0xfff1
div ebx
dec dword [ebp - 0x2c]
mov ebx, edx
jne 0x100309a0
mov esi, dword [ebp - 0x28]
shl ebx, 0x10
lea eax, [esi + 0x2110]
or ebx, ecx
lea edi, [eax + 1]
mov dword [eax], ebx
mov ebx, 3
sub ebx, eax
movzx eax, byte [edi + 2]
lea edi, [edi + 4]
mov dl, byte [edi - 5]
mov cl, byte [edi - 4]
mov byte [edi - 5], al
movzx eax, byte [edi - 3]
mov byte [edi - 4], al
lea eax, [ebx + edi]
mov byte [edi - 3], cl
mov byte [edi - 2], dl
cmp eax, 4
jbe 0x10030a20
mov eax, dword [ebp - 0x38]
lea ecx, [esi + 0x2115]
mov byte [esi + 0x2114], al
mov edx, 1
movzx eax, al
inc ax
mov dword [esi + 0x221d], ecx
add ax, ax
movzx edi, ax
mov eax, dword [ebp - 0x30]
mov ebx, edi
mov dword [ebp - 0x34], ebx
movdqu xmm0, xmmword [eax]
movdqu xmmword [ebp - 0x24], xmm0
movdqu xmm0, xmmword [eax + 0x10]
mov dword [ecx], 0xb7e15163
movdqu xmmword [ebp - 0x14], xmm0
cmp ebx, edx
jbe 0x10030aa8
nop
mov eax, dword [esi + 0x221d]
lea ecx, [eax + edx*4]
inc edx
mov eax, dword [ecx - 4]
sub eax, 0x61c88647
mov dword [ecx], eax
cmp edx, ebx
jb 0x10030a90
mov ecx, 8
mov eax, edi
cmp edi, ecx
cmova ecx, eax
xor ebx, ebx
mov ax, cx
xor edx, edx
add cx, cx
xor edi, edi
add ax, cx
xor ecx, ecx
movzx eax, ax
mov dword [ebp - 0x30], ecx
mov dword [ebp - 0x38], ecx
cmp cx, ax
jae 0x10030b1b
mov dword [ebp - 0x28], eax
jmp 0x10030ae0
mov eax, dword [esi + 0x221d]
add edi, ecx
add edi, dword [eax + edx*4]
rol edi, 3
mov dword [eax + edx*4], edi
add ecx, edi
mov eax, dword [ebp + ebx*4 - 0x24]
and ecx, 0x1f
add eax, dword [ebp - 0x30]
add eax, edi
rol eax, cl
mov ecx, eax
lea eax, [edx + 1]
mov dword [ebp + ebx*4 - 0x24], ecx
xor edx, edx
div dword [ebp - 0x34]
inc ebx
mov dword [ebp - 0x30], ecx
and ebx, 7
dec dword [ebp - 0x28]
jne 0x10030ae0
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.101c6a5b
mov esp, ebp
pop ebp
ret