Function at 0x100b97d0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
mov eax, dword [ebp + 0x14]
xor edx, edx
sub eax, dword [ebp + 0x10]
push ebx
push esi
push edi
mov edi, dword [ebp + 0x18]
lea ecx, [eax - 1]
mov dword [ebp - 4], 0
mov dword [ebp - 8], edx
mov dword [ebp + 0x14], eax
mov dword [ebp - 0xc], ecx
xor esi, esi
xor ebx, ebx
test edi, edi
jle 0x100b982e
nop
mov eax, dword [ebp + 0xc]
mov eax, dword [eax + ebx*4]
cdq
xor eax, edx
sub eax, edx
cmp eax, esi
mov edx, eax
mov eax, ebx
cmovle eax, dword [ebp - 4]
cmovle edx, esi
inc ebx
mov dword [ebp - 4], eax
mov esi, edx
cmp ebx, edi
jl 0x100b9800
mov ecx, dword [ebp - 0xc]
mov edx, dword [ebp - 8]
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0x14]
cmp eax, 1
mov eax, esi
jne 0x100b983e
sar eax, 1
and esi, 1
add eax, esi
jmp 0x100b9843
sar eax, cl
inc eax
sar eax, 1
mov ebx, dword [ebp + 0xc]
cmp eax, 0x7fff
jle 0x100b9894
mov ecx, dword [ebp - 4]
mov edx, 0x27ffe
cmp eax, edx
cmovl edx, eax
inc ecx
imul ecx, edx
mov eax, 0x7fff
sub eax, edx
shl eax, 0xe
cdq
sar ecx, 2
idiv ecx
add eax, 0xffbe
push eax
push edi
push ebx
call fcn.100b9730
mov edx, dword [ebp - 8]
add esp, 0xc
mov eax, dword [ebp + 0x14]
inc edx
mov dword [ebp - 8], edx
lea ecx, [eax - 1]
cmp edx, 0xa
jl 0x100b97f7
cmp edx, 0xa
jne 0x100b9937
xor edx, edx
test edi, edi
jle 0x100b9a79
cmp dword [ebp + 0x14], 1
mov esi, dword [ebp + 8]
jne 0x100b98f3
mov ecx, dword [ebx + edx*4]
mov eax, ecx
sar eax, 1
and ecx, 1
add eax, ecx
cmp eax, 0x7fff
jle 0x100b98ca
mov eax, 0x7fff
jmp 0x100b98d7
cmp eax, 0xffff8000
mov ecx, 0xffff8000
cmovl eax, ecx
mov ecx, dword [ebp + 0x14]
movzx eax, ax
mov word [esi + edx*2], ax
cwde
shl eax, cl
mov dword [ebx + edx*4], eax
inc edx
cmp edx, edi
jl 0x100b98b0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
xor edx, edx
mov eax, dword [ebx + edx*4]
mov ecx, dword [ebp - 0xc]
sar eax, cl
inc eax
sar eax, 1
cmp eax, 0x7fff
jle 0x100b990e
mov eax, 0x7fff
jmp 0x100b991b
cmp eax, 0xffff8000
mov ecx, 0xffff8000
cmovl eax, ecx
mov ecx, dword [ebp + 0x14]
movzx eax, ax
mov word [esi + edx*2], ax
cwde
shl eax, cl
mov dword [ebx + edx*4], eax
inc edx
cmp edx, edi
jl 0x100b98f5
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
xor edx, edx
test edi, edi
jle 0x100b9a79
cmp edi, 0x10
jb 0x100b9a3b
cmp dword [ebp + 0x14], 1
jne 0x100b9a60
mov esi, dword [ebp + 8]
lea eax, [edi - 1]
lea eax, [ebx + eax*4]
lea ecx, [edi - 1]
lea ecx, [esi + ecx*2]
cmp esi, eax
ja 0x100b996f
cmp ecx, ebx
jae 0x100b9a44
movaps xmm2, xmmword [0x100f1300]
lea ecx, [esi + 0x10]
mov eax, edi
and eax, 0xfffffff0
mov dword [ebp - 8], eax
lea eax, [ebx + 0x20]
movups xmm1, xmmword [eax - 0x20]
lea eax, [eax + 0x40]
add edx, 0x10
movaps xmm0, xmm2
lea ecx, [ecx + 0x20]
andps xmm0, xmm1
psrad xmm1, 1
paddd xmm0, xmm1
pshufhw xmm0, xmm0, 0xd8
pshuflw xmm0, xmm0, 0xd8
pshufd xmm0, xmm0, 0xd8
movq qword [ecx - 0x30], xmm0
movaps xmm0, xmm2
movups xmm1, xmmword [eax - 0x50]
andps xmm0, xmm1
psrad xmm1, 1
paddd xmm0, xmm1
pshufhw xmm0, xmm0, 0xd8
pshuflw xmm0, xmm0, 0xd8
pshufd xmm0, xmm0, 0xd8
movq qword [ecx - 0x28], xmm0
movaps xmm0, xmm2
movups xmm1, xmmword [eax - 0x40]
andps xmm0, xmm1
psrad xmm1, 1
paddd xmm0, xmm1
pshufhw xmm0, xmm0, 0xd8
pshuflw xmm0, xmm0, 0xd8
pshufd xmm0, xmm0, 0xd8
movq qword [ecx - 0x20], xmm0
movaps xmm0, xmm2
movups xmm1, xmmword [eax - 0x30]
andps xmm0, xmm1
psrad xmm1, 1
paddd xmm0, xmm1
pshufhw xmm0, xmm0, 0xd8
pshuflw xmm0, xmm0, 0xd8
pshufd xmm0, xmm0, 0xd8
movq qword [ecx - 0x18], xmm0
cmp edx, dword [ebp - 8]
jl 0x100b9984
mov dword [ebp - 8], edx
cmp edx, edi
jge 0x100b9a79
jmp 0x100b9a3e
mov esi, dword [ebp + 8]
cmp dword [ebp + 0x14], 1
jne 0x100b9a60
mov ecx, dword [ebx + edx*4]
mov eax, ecx
sar eax, 1
and ecx, 1
add eax, ecx
mov word [esi + edx*2], ax
inc edx
cmp edx, edi
jl 0x100b9a44
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov esi, dword [ebp + 8]
xor edx, edx
mov ecx, dword [ebp - 0xc]
mov eax, dword [ebx + edx*4]
sar eax, cl
inc eax
sar eax, 1
mov word [esi + edx*2], ax
inc edx
cmp edx, edi
jl 0x100b9a68
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret