Function at 0x102382d0
Capabilities:
Encode data using xor

Disassembly:
movzx eax, byte [esp + 8]
sub esp, 0x1c
push ebx
push ebp
push esi
push edi
sub eax, 0
je 0x100c4764
sub eax, 1
jne 0x100c48de
mov eax, dword [esp + 0x40]
mov edi, dword [esp + 0x30]
mov ecx, dword [esp + 0x48]
lea esi, [eax + eax]
mov eax, dword [esp + 0x38]
mov dword [esp + 0x10], esi
lea ebx, [eax + eax]
mov eax, dword [esp + 0x50]
mov dword [esp + 0x34], ebx
cmp eax, 8
jne 0x100c46a6
mov dword [esp + 0x18], ecx
test ecx, ecx
jle 0x100c48de
mov eax, dword [esp + 0x3c]
add eax, eax
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x44]
mov edx, dword [esp + 0x14]
add eax, eax
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x4c]
xor ebp, ebp
test eax, eax
jle 0x100c4685
mov dword [esp + 0x1c], ebx
sub ebx, esi
mov dword [esp + 0x20], esi
movzx ecx, word [esi]
lea esi, [esi + 2]
movzx eax, word [esi + ebx - 2]
sub eax, ecx
mov ecx, 0x40
cdq
xor eax, edx
sub eax, edx
cdq
and edx, 0xf
add eax, edx
sar eax, 4
add eax, 0x26
mov edx, eax
sar edx, 0x1f
not edx
and edx, eax
movzx eax, dl
cmp edx, ecx
cmovb ecx, eax
mov al, 0x40
sub al, cl
mov byte [edi + ebp], al
inc ebp
mov eax, dword [esp + 0x4c]
cmp ebp, eax
jl 0x100c4631
mov esi, dword [esp + 0x10]
mov ebx, dword [esp + 0x34]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
add esi, dword [esp + 0x24]
add ebx, edx
add edi, eax
mov dword [esp + 0x34], ebx
sub ecx, 1
mov dword [esp + 0x10], esi
mov dword [esp + 0x18], ecx
jne 0x100c4621
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1c
ret
add eax, 0xfffffff8
mov dword [esp + 0x14], ecx
mov dword [esp + 0x1c], eax
test ecx, ecx
jle 0x100c48de
mov eax, dword [esp + 0x3c]
add eax, eax
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x44]
mov edx, dword [esp + 0x18]
add eax, eax
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x4c]
xor ebp, ebp
test eax, eax
jle 0x100c473f
mov dword [esp + 0x24], ebx
sub ebx, esi
mov dword [esp + 0x20], esi
movzx ecx, word [esi]
lea esi, [esi + 2]
movzx eax, word [esi + ebx - 2]
sub eax, ecx
mov ecx, dword [esp + 0x1c]
cdq
xor eax, edx
sub eax, edx
sar eax, cl
mov ecx, 0x40
cdq
and edx, 0xf
add eax, edx
sar eax, 4
add eax, 0x26
mov edx, eax
sar edx, 0x1f
not edx
and edx, eax
movzx eax, dl
cmp edx, ecx
cmovb ecx, eax
mov al, 0x40
sub al, cl
mov byte [edi + ebp], al
inc ebp
mov eax, dword [esp + 0x4c]
cmp ebp, eax
jl 0x100c46e5
mov esi, dword [esp + 0x10]
mov ebx, dword [esp + 0x34]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
add esi, dword [esp + 0x28]
add ebx, edx
add edi, eax
mov dword [esp + 0x34], ebx
sub ecx, 1
mov dword [esp + 0x10], esi
mov dword [esp + 0x14], ecx
jne 0x100c46d5
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1c
ret
mov eax, dword [esp + 0x38]
mov esi, dword [esp + 0x40]
mov edx, dword [esp + 0x48]
add esi, esi
mov edi, dword [esp + 0x30]
lea ecx, [eax + eax]
mov dword [esp + 0x10], esi
mov eax, dword [esp + 0x50]
mov dword [esp + 0x34], ecx
mov dword [esp + 0x18], edx
cmp eax, 8
jne 0x100c4832
test edx, edx
jle 0x100c48de
mov eax, dword [esp + 0x3c]
add eax, eax
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x44]
add eax, eax
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x4c]
xor ebx, ebx
test eax, eax
jle 0x100c480f
sub ecx, esi
mov ebp, esi
mov dword [esp + 0x28], ecx
mov esi, ecx
movzx ecx, word [ebp]
lea ebp, [ebp + 2]
movzx eax, word [esi + ebp - 2]
sub eax, ecx
mov ecx, 0x40
cdq
xor eax, edx
sub eax, edx
cdq
and edx, 0xf
add eax, edx
sar eax, 4
add eax, 0x26
mov edx, eax
sar edx, 0x1f
not edx
and edx, eax
cmp edx, ecx
movzx eax, dl
cmovb ecx, eax
mov eax, dword [esp + 0x4c]
mov byte [edi + ebx], cl
inc ebx
cmp ebx, eax
jl 0x100c47c2
mov esi, dword [esp + 0x10]
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x18]
add ecx, dword [esp + 0x24]
add edi, eax
add esi, dword [esp + 0x20]
sub edx, 1
mov dword [esp + 0x34], ecx
mov dword [esp + 0x10], esi
mov dword [esp + 0x18], edx
jne 0x100c47b2
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1c
ret
add eax, 0xfffffff8
mov dword [esp + 0x24], eax
test edx, edx
jle 0x100c48de
mov eax, dword [esp + 0x3c]
add eax, eax
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x44]
add eax, eax
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x4c]
nop dword [eax]
xor ebx, ebx
test eax, eax
jle 0x100c48c3
sub ecx, esi
mov ebp, esi
mov dword [esp + 0x28], ecx
mov esi, ecx
movzx ecx, word [ebp]
lea ebp, [ebp + 2]
movzx eax, word [esi + ebp - 2]
sub eax, ecx
mov ecx, dword [esp + 0x24]
cdq
xor eax, edx
sub eax, edx
sar eax, cl
mov ecx, 0x40
cdq
and edx, 0xf
add eax, edx
sar eax, 4
add eax, 0x26
mov edx, eax
sar edx, 0x1f
not edx
and edx, eax
cmp edx, ecx
movzx eax, dl
cmovb ecx, eax
mov eax, dword [esp + 0x4c]
mov byte [edi + ebx], cl
inc ebx
cmp ebx, eax
jl 0x100c4870
mov esi, dword [esp + 0x10]
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x18]
add ecx, dword [esp + 0x20]
add edi, eax
add esi, dword [esp + 0x1c]
sub edx, 1
mov dword [esp + 0x34], ecx
mov dword [esp + 0x10], esi
mov dword [esp + 0x18], edx
jne 0x100c4860
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1c
ret
mov edx, dword [esp + 0x20]
sub esp, 0x20
mov ecx, dword [esp + 0x28]
cmp edx, 8
jge 0x102382f0
add esp, 0x20
mov dword [esp + 0x20], edx
mov dword [esp + 8], ecx
jmp 0x100c45b0
mov eax, dword [esp + 0x2c]
xorps xmm5, xmm5
movaps xmm4, xmmword [0x10829ff0]
movaps xmm6, xmmword [0x108ddbd0]
push esi
lea esi, [eax + eax]
mov eax, dword [esp + 0x38]
push edi
mov edi, dword [esp + 0x4c]
add eax, eax
mov dword [esp + 0x24], esi
mov dword [esp + 0x20], eax
cmp edi, 8
jne 0x10238463
cmp dword [esp + 0x44], 0
jle 0x102385bd
cmp cl, 1
mov ecx, dword [esp + 0x38]
jne 0x102383d8
add ecx, ecx
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x40]
add ecx, ecx
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x1c], ecx
mov edx, dword [esp + 0x48]
xor ecx, ecx
sub esi, eax
mov edi, eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x18], esi
nop word [eax + eax]
movups xmm0, xmmword [edi]
lea edi, [edi + 0x10]
movups xmm1, xmmword [esi + edi - 0x10]
movaps xmm2, xmm5
movaps xmm3, xmm4
psubw xmm1, xmm0
pabsw xmm0, xmm1
psraw xmm0, 4
paddw xmm0, xmm6
pmaxsw xmm2, xmm0
pminsw xmm2, xmm4
psubw xmm3, xmm2
packuswb xmm3, xmm3
movq qword [ecx + eax], xmm3
add ecx, 8
cmp ecx, edx
jl 0x10238370
mov esi, dword [esp + 0x24]
mov eax, dword [esp + 0x20]
add esi, dword [esp + 0x14]
add eax, dword [esp + 0x10]
add dword [esp + 0x1c], edx
sub dword [esp + 0x44], 1
mov dword [esp + 0x24], esi
mov dword [esp + 0x20], eax
jne 0x10238355
pop edi
pop esi
add esp, 0x20
ret
add ecx, ecx
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x40]
add ecx, ecx
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x1c], ecx
mov edx, dword [esp + 0x48]
xor ecx, ecx
sub esi, eax
mov edi, eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x10], esi
movups xmm0, xmmword [edi]
lea edi, [edi + 0x10]
movups xmm1, xmmword [edi + esi - 0x10]
movaps xmm2, xmm5
psubw xmm1, xmm0
pabsw xmm0, xmm1
psraw xmm0, 4
paddw xmm0, xmm6
pmaxsw xmm2, xmm0
pminsw xmm2, xmm4
packuswb xmm2, xmm2
movq qword [ecx + eax], xmm2
add ecx, 8
cmp ecx, edx
jl 0x10238402
mov esi, dword [esp + 0x24]
mov eax, dword [esp + 0x20]
add esi, dword [esp + 0x14]
add eax, dword [esp + 0x18]
add dword [esp + 0x1c], edx
sub dword [esp + 0x44], 1
mov dword [esp + 0x24], esi
mov dword [esp + 0x20], eax
jne 0x102383f0
pop edi
pop esi
add esp, 0x20
ret
lea ecx, [edi - 4]
mov dword [esp + 0xc], 0
mov edi, dword [esp + 0x44]
mov dword [esp + 8], ecx
movq xmm7, qword [esp + 8]
punpcklqdq xmm7, xmm7
test edi, edi
jle 0x102385bd
mov ecx, dword [esp + 0x38]
add ecx, ecx
cmp byte [esp + 0x30], 1
jne 0x1023853b
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x40]
add ecx, ecx
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x1c], ecx
nop
mov edx, dword [esp + 0x48]
xor ecx, ecx
sub esi, eax
mov dword [esp + 0x10], eax
mov edi, eax
mov dword [esp + 0x14], esi
mov eax, dword [esp + 0x1c]
nop word [eax + eax]
movups xmm0, xmmword [edi]
lea edi, [edi + 0x10]
movups xmm1, xmmword [edi + esi - 0x10]
movaps xmm2, xmm5
movaps xmm3, xmm4
psubw xmm1, xmm0
pabsw xmm0, xmm1
psraw xmm0, xmm7
paddw xmm0, xmm6
pmaxsw xmm2, xmm0
pminsw xmm2, xmm4
psubw xmm3, xmm2
packuswb xmm3, xmm3
movq qword [ecx + eax], xmm3
add ecx, 8
cmp ecx, edx
jl 0x102384d0
mov esi, dword [esp + 0x24]
mov eax, dword [esp + 0x20]
add esi, dword [esp + 0x18]
add eax, dword [esp + 0xc]
add dword [esp + 0x1c], edx
sub dword [esp + 0x44], 1
mov dword [esp + 0x24], esi
mov dword [esp + 0x20], eax
jne 0x102384b0
pop edi
pop esi
add esp, 0x20
ret
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x40]
add ecx, ecx
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x1c], ecx
mov edx, dword [esp + 0x48]
xor ecx, ecx
sub esi, eax
mov edi, eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0xc], esi
movups xmm0, xmmword [edi]
lea edi, [edi + 0x10]
movups xmm1, xmmword [edi + esi - 0x10]
movaps xmm2, xmm5
psubw xmm1, xmm0
pabsw xmm0, xmm1
psraw xmm0, xmm7
paddw xmm0, xmm6
pmaxsw xmm2, xmm0
pminsw xmm2, xmm4
packuswb xmm2, xmm2
movq qword [ecx + eax], xmm2
add ecx, 8
cmp ecx, edx
jl 0x10238563
mov esi, dword [esp + 0x24]
mov eax, dword [esp + 0x20]
add esi, dword [esp + 0x10]
add eax, dword [esp + 0x14]
add dword [esp + 0x1c], edx
sub dword [esp + 0x44], 1
mov dword [esp + 0x24], esi
mov dword [esp + 0x20], eax
jne 0x10238551
pop edi
pop esi
add esp, 0x20
ret