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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
push esi
push edi
push ebx
sub esp, 0x44
mov edx, dword [0x104c5878]
xor edx, esp
mov dword [esp + 0xc], edx
mov edx, dword [ebp + 8]
and edx, 0xf
mov ecx, edx
neg ecx
mov eax, dword [ebp + 0xc]
mov ebx, dword [ebp + 0x10]
not ebx
lea esi, [ecx + 0x20]
cmp eax, esi
jge 0x10100688
xor esi, esi
jmp 0x1010096b
vmovups xmm1, xmmword [0x10446290]
mov edi, 0xffffffff
vmovups xmmword [esp + 0x20], xmm1
vmovups xmm2, xmmword [0x104462a0]
vmovups xmmword [esp + 0x30], xmm2
vmovups xmm3, xmmword [0x10446280]
vmovd xmm6, edi
vmovdqu xmm0, xmmword [0x104466c0]
vmovdqu xmm5, xmmword [0x104466d0]
vmovdqu xmm7, xmmword [0x104466f0]
vmovups xmmword [esp + 0x10], xmm3
mov dword [esp], ecx
lea ecx, [esp + 0x10]
mov edi, dword [ebp + 8]
mov dword [esp + 8], esi
sub edi, edx
mov esi, ecx
sub esi, edx
vmovdqu xmm4, xmmword [edi]
vmovdqu xmm2, xmmword [edi + 0x10]
vpand xmm1, xmm4, xmmword [esi + 0x20]
mov dword [edx + ecx], ebx
lea edx, [eax - 0x20]
mov esi, dword [esp + 8]
vpxor xmm4, xmm1, xmmword [ecx]
vpxor xmm2, xmm2, xmmword [esp + 0x20]
mov ecx, dword [esp]
mov dword [esp + 4], edx
cmp esi, edx
jg 0x101007f5
mov ebx, dword [ebp + 8]
cdq
vmovdqu xmm3, xmmword [esi + ebx]
vmovdqu xmm1, xmmword [esi + ebx + 0x10]
lea esi, [ecx + 0x40]
mov ebx, eax
sub ebx, esi
mov dword [esp], esi
sbb edx, 0
jns 0x1010073c
add ebx, 0x3f
adc edx, 0
shrd ebx, edx, 6
lea edx, [eax - 0x40]
cmp esi, edx
jg 0x101007cd
mov esi, dword [ebp + 8]
xor edx, edx
mov edi, dword [esp]
lea ecx, [esi + ecx + 0x40]
nop word [eax + eax]
vpclmulqdq xmm5, xmm4, xmm0, 0
mov esi, edx
vpclmulqdq xmm4, xmm4, xmm0, 0x11
inc edx
vpxor xmm4, xmm5, xmm4
vpclmulqdq xmm5, xmm2, xmm0, 0
vpclmulqdq xmm2, xmm2, xmm0, 0x11
shl esi, 6
vpxor xmm2, xmm5, xmm2
vpclmulqdq xmm5, xmm3, xmm0, 0
vpclmulqdq xmm3, xmm3, xmm0, 0x11
vpxor xmm3, xmm5, xmm3
vpclmulqdq xmm5, xmm1, xmm0, 0
vpclmulqdq xmm1, xmm1, xmm0, 0x11
vpxor xmm1, xmm5, xmm1
vpxor xmm4, xmm4, xmmword [ecx + esi]
vpxor xmm2, xmm2, xmmword [ecx + esi + 0x10]
vpxor xmm3, xmm3, xmmword [ecx + esi + 0x20]
vpxor xmm1, xmm1, xmmword [ecx + esi + 0x30]
lea esi, [edi + esi + 0x40]
cmp edx, ebx
jb 0x10100760
vmovdqu xmm5, xmmword [0x104466d0]
vpclmulqdq xmm0, xmm4, xmm5, 0
vpclmulqdq xmm4, xmm4, xmm5, 0x11
vpxor xmm4, xmm0, xmm4
vpxor xmm4, xmm4, xmm3
vpclmulqdq xmm3, xmm2, xmm5, 0
vpclmulqdq xmm2, xmm2, xmm5, 0x11
vpxor xmm0, xmm3, xmm2
vpxor xmm2, xmm0, xmm1
cmp esi, dword [esp + 4]
jg 0x1010082c
mov edx, dword [ebp + 8]
vpclmulqdq xmm0, xmm4, xmm5, 0
vpclmulqdq xmm4, xmm4, xmm5, 0x11
vpclmulqdq xmm3, xmm2, xmm5, 0
vpxor xmm1, xmm0, xmm4
vpclmulqdq xmm2, xmm2, xmm5, 0x11
vpxor xmm5, xmm3, xmm2
vpxor xmm4, xmm1, xmmword [esi + edx]
vpxor xmm2, xmm5, xmmword [esi + edx + 0x10]
add esi, 0x20
vmovdqu xmm0, xmmword [0x104466e0]
lea edx, [eax - 0x10]
vpclmulqdq xmm1, xmm4, xmm0, 0
vpclmulqdq xmm3, xmm4, xmm0, 0x11
vpxor xmm4, xmm1, xmm3
vpxor xmm0, xmm4, xmm2
cmp esi, edx
jg 0x10100872
vmovdqu xmm1, xmmword [0x104466e0]
mov edx, dword [ebp + 8]
vpclmulqdq xmm2, xmm0, xmm1, 0
vpclmulqdq xmm0, xmm0, xmm1, 0x11
vpxor xmm3, xmm2, xmm0
vpxor xmm0, xmm3, xmmword [esi + edx]
add esi, 0x10
vpand xmm1, xmm0, xmm6
lea edx, [eax - 8]
vpclmulqdq xmm2, xmm1, xmm7, 0
vpsrldq xmm3, xmm0, 8
vpsrlq xmm0, xmm0, 0x20
vpclmulqdq xmm5, xmm0, xmm7, 0x10
vpxor xmm4, xmm2, xmm3
vpxor xmm2, xmm4, xmm5
cmp esi, edx
jg 0x101008c3
mov edx, dword [ebp + 8]
vpand xmm1, xmm2, xmm6
vpsrlq xmm2, xmm2, 0x20
vpclmulqdq xmm3, xmm1, xmm7, 0
vpclmulqdq xmm4, xmm2, xmm7, 0x10
vmovq xmm0, qword [esi + edx]
vpxor xmm5, xmm3, xmm4
vpxor xmm2, xmm5, xmm0
add esi, 8
vmovd edx, xmm2
vpsrlq xmm0, xmm2, 0x20
vmovd ecx, xmm0
movzx ebx, dl
mov edi, edx
shr edi, 8
mov ebx, dword [ebx*4 + 0x104462c0]
xor edi, ebx
and edi, 0xff
shr ebx, 8
xor ebx, dword [edi*4 + 0x104462c0]
mov edi, edx
shr edi, 0x10
xor edi, ebx
and edi, 0xff
shr ebx, 8
shr edx, 0x18
xor ebx, dword [edi*4 + 0x104462c0]
mov edi, ecx
xor edx, ebx
movzx edx, dl
shr ebx, 8
xor ebx, dword [edx*4 + 0x104462c0]
mov edx, ecx
xor edi, ebx
and edi, 0xff
shr ebx, 8
shr edx, 8
xor ebx, dword [edi*4 + 0x104462c0]
mov edi, ecx
xor edx, ebx
movzx edx, dl
shr ebx, 8
shr edi, 0x10
shr ecx, 0x18
xor ebx, dword [edx*4 + 0x104462c0]
xor edi, ebx
and edi, 0xff
shr ebx, 8
xor ebx, dword [edi*4 + 0x104462c0]
xor ecx, ebx
movzx ecx, cl
shr ebx, 8
xor ebx, dword [ecx*4 + 0x104462c0]
cmp esi, eax
jge 0x101009e1
sub eax, esi
mov ecx, eax
shr ecx, 0x1f
add ecx, eax
sar ecx, 1
test ecx, ecx
jbe 0x101009fa
mov edx, dword [ebp + 8]
xor edi, edi
mov dword [esp + 8], esi
add edx, esi
movzx esi, byte [edx + edi*2]
xor esi, ebx
and esi, 0xff
shr ebx, 8
xor ebx, dword [esi*4 + 0x104462c0]
movzx esi, byte [edx + edi*2 + 1]
inc edi
xor esi, ebx
and esi, 0xff
shr ebx, 8
xor ebx, dword [esi*4 + 0x104462c0]
cmp edi, ecx
jb 0x10100989
mov esi, dword [esp + 8]
lea ecx, [edi + edi + 1]
cmp ecx, eax
ja 0x101009e1
mov eax, dword [ebp + 8]
lea edx, [eax + esi]
movzx ecx, byte [ecx + edx - 1]
xor ecx, ebx
movzx ecx, cl
shr ebx, 8
xor ebx, dword [ecx*4 + 0x104462c0]
mov ecx, dword [esp + 0xc]
not ebx
xor ecx, esp
call fcn.103b6385
mov eax, ebx
add esp, 0x44
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, 1
jmp 0x101009c3