Function at 0x10071636
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x6c
mov edi, ecx
lea eax, [ecx + edx*8 - 1]
lea esi, [edx + edx]
mov dword [esp + 8], edx
mov ebp, 7
sub edi, edx
movzx ebx, byte [edi + 8]
mov dword [esp + 0x50], edi
movzx edi, byte [edi + 6]
sub ebx, edi
movzx edi, byte [eax]
sub eax, esi
mov esi, edx
movzx eax, byte [eax]
neg esi
mov dword [esp + 0x20], ebx
mov dword [esp + 0x40], esi
mov esi, edx
not esi
mov dword [esp + 0x30], esi
lea esi, [edx + edx*4]
lea edx, [edx + edx*8]
sub edi, eax
mov dword [esp + 0x10], edi
lea edi, [esi + esi*2]
mov dword [esp + 0xc], edi
lea edi, [ecx + esi - 1]
lea esi, [ecx + edx - 1]
mov edx, 2
mov eax, dword [esp + 0x50]
movzx ebx, byte [eax + edx + 7]
movzx eax, byte [eax + ebp - 2]
sub ebx, eax
movzx eax, byte [esi]
add esi, dword [esp + 8]
imul ebx, edx
add dword [esp + 0x20], ebx
movzx ebx, byte [edi]
add edi, dword [esp + 0x40]
sub eax, ebx
imul eax, edx
inc edx
add dword [esp + 0x10], eax
dec ebp
jne 0x1007169b
mov eax, dword [esp + 0x20]
mov esi, dword [esp + 0x10]
mov ebx, dword [esp + 8]
cmp dword [esp + 0x80], 0
je 0x1007171f
mov edx, eax
sar eax, 0x1f
shr eax, 0x1e
add eax, edx
sar eax, 2
lea edx, [eax + eax*4]
mov eax, edx
sar eax, 0x1f
shr eax, 0x1c
add eax, edx
mov edx, esi
sar edx, 0x1f
sar eax, 4
shr edx, 0x1e
add edx, esi
sar edx, 2
lea edx, [edx + edx*4]
mov ebp, edx
sar ebp, 0x1f
shr ebp, 0x1c
add ebp, edx
sar ebp, 4
jmp 0x1007174d
cmp dword [esp + 0x84], 0
je 0x1007173f
mov ebp, eax
sar ebp, 2
add ebp, eax
mov eax, esi
sar eax, 2
sar ebp, 4
add eax, esi
sar eax, 4
jmp 0x1007174d
lea ebp, [eax + eax*4 + 0x20]
lea eax, [esi + esi*4 + 0x20]
sar ebp, 6
sar eax, 6
mov edx, dword [esp + 0xc]
mov esi, dword [esp + 0x30]
movdqa xmm1, xmmword [0x10191c50]
movzx edx, byte [ecx + edx - 1]
movzx esi, byte [ecx + esi + 0x10]
pshufd xmm2, xmm1, 0xf5
add esi, edx
lea edx, [eax + ebp]
lea edi, [edx*8]
shl esi, 4
sub edi, edx
lea edx, [ebp + ebp*2]
sub esi, edi
lea edi, [ebp*4]
movd xmm0, edi
mov edi, ebp
add esi, 0x10
pshufd xmm0, xmm0, 0
shl edi, 4
pmuludq xmm2, xmm0
pmuludq xmm0, xmm1
pshufd xmm2, xmm2, 0xe8
pshufd xmm0, xmm0, 0xe8
punpckldq xmm0, xmm2
movdqu xmmword [esp + 0x30], xmm0
movd xmm0, edi
lea edi, [ebp + ebp]
pshufd xmm3, xmm0, 0
movd xmm0, ebp
pshufd xmm5, xmm0, 0
movd xmm0, edi
mov edi, 0x10
movdqu xmmword [esp + 0x20], xmm3
pshufd xmm6, xmm0, 0
movd xmm0, edx
mov edx, ebx
movdqu xmmword [esp + 0x10], xmm5
pshufd xmm0, xmm0, 0
movdqu xmmword [esp + 0x50], xmm6
movdqu xmmword [esp + 0x40], xmm0
movdqa xmm0, xmmword [0x10187140]
movdqu xmm3, xmmword [esp + 0x30]
movd xmm1, esi
mov ebx, 0xfffffff0
pshufd xmm2, xmm1, 0
paddd xmm2, xmm3
movdqa xmm1, xmm2
movdqa xmm7, xmmword [0x101aebd0]
psrad xmm1, 5
movdqa xmm4, xmm1
movdqa xmm3, xmm1
pxor xmm4, xmm0
pcmpgtd xmm4, xmm7
pcmpeqd xmm7, xmm7
pxor xmm3, xmm7
movdqa xmm7, xmmword [0x101aebd0]
psrad xmm3, 0x1f
pand xmm3, xmm4
pandn xmm4, xmm1
por xmm4, xmm3
movdqa xmm3, xmm2
paddd xmm3, xmm5
psrad xmm3, 5
movdqa xmm1, xmm3
pxor xmm1, xmm0
pcmpgtd xmm1, xmm7
movdqa xmm5, xmm1
pandn xmm5, xmm3
pxor xmm3, xmmword [0x10191cd0]
psrad xmm3, 0x1f
pand xmm3, xmm1
movdqa xmm1, xmm2
paddd xmm1, xmm6
por xmm3, xmm5
psrad xmm1, 5
movdqa xmm5, xmm1
pxor xmm5, xmm0
pcmpgtd xmm5, xmm7
movdqa xmm6, xmm5
pandn xmm6, xmm1
pxor xmm1, xmmword [0x10191cd0]
psrad xmm1, 0x1f
pand xmm1, xmm5
movdqa xmm5, xmm2
por xmm1, xmm6
movdqu xmm6, xmmword [esp + 0x40]
paddd xmm5, xmm6
psrad xmm5, 5
movdqa xmm6, xmm5
pxor xmm6, xmm0
movdqa xmm0, xmmword [0x10187140]
pcmpgtd xmm6, xmm7
movdqa xmm7, xmm6
pandn xmm7, xmm5
pxor xmm5, xmmword [0x10191cd0]
psrad xmm5, 0x1f
pand xmm5, xmm6
movdqu xmm6, xmmword [esp + 0x50]
por xmm5, xmm7
movdqa xmm7, xmmword [0x10191c60]
pand xmm5, xmm7
pand xmm1, xmm7
pand xmm3, xmm7
pand xmm4, xmm7
packuswb xmm1, xmm5
pxor xmm5, xmm5
packuswb xmm4, xmm3
packuswb xmm1, xmm1
packuswb xmm4, xmm4
punpcklbw xmm1, xmm5
punpcklbw xmm4, xmmword [0x101874f0]
pshufd xmm5, xmm1, 0xd7
pshufd xmm1, xmm1, 0x28
pshuflw xmm5, xmm5, 0x24
pshuflw xmm1, xmm1, 0x84
pshufhw xmm5, xmm5, 0xd4
pshufhw xmm1, xmm1, 0x74
packuswb xmm1, xmm5
movdqa xmm5, xmmword [0x101aebe0]
pshufd xmm3, xmm4, 0x28
pshuflw xmm3, xmm3, 0xe8
pshufhw xmm3, xmm3, 0xe7
pandn xmm5, xmm1
pshufd xmm1, xmm4, 0xd7
movdqa xmm4, xmmword [0x101aebe0]
pshuflw xmm1, xmm1, 0xe2
pshufhw xmm1, xmm1, 0xed
packuswb xmm3, xmm1
movdqu xmm1, xmmword [esp + 0x20]
pand xmm3, xmm4
por xmm3, xmm5
movdqu xmm5, xmmword [esp + 0x10]
movdqu xmmword [ecx + ebx + 0x10], xmm3
add ebx, 0x10
paddd xmm2, xmm1
jne 0x1007181e
add esi, eax
add ecx, edx
cmp edi, 1
lea edi, [edi - 1]
ja 0x10071806
add esp, 0x6c
pop esi
pop edi
pop ebx
pop ebp
ret