Function at 0x101a90d0
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push ebp
mov ebp, esp
and esp, 0xffffffe0
sub esp, 0x298
mov eax, dword [0x10a78b80]
xor eax, esp
mov dword [esp + 0x294], eax
mov eax, dword [ebp + 8]
xor edx, edx
cmp dword [ebp + 0x1c], 0xc
vmovdqu ymm7, ymmword [0x10842d60]
mov ecx, dword [ebp + 0x18]
push esi
mov esi, dword [ebp + 0x10]
mov dword [esp + 0x30], eax
mov eax, dword [ebp + 0xc]
mov dword [esp + 0x38], eax
movsx eax, word [esi + 0x2e]
vmovd xmm0, eax
push edi
vpbroadcastw ymm5, xmm0
lea eax, [esp + 0x180]
jge 0x101a9292
vmovdqu ymm6, ymmword [0x10842d20]
mov dword [esp + 0x28], ecx
mov dword [esp + 0x2c], edx
mov dword [esp + 0x30], eax
nop dword [eax]
mov eax, ecx
sar eax, 6
mov dword [esp + 0x24], eax
cmp eax, 0x17
jge 0x101a9262
vmovdqu ymm4, ymmword [esi + eax*2]
movzx ecx, ax
lea edi, [ecx + 4]
mov dword [esp + 0x38], edi
lea esi, [ecx + 3]
mov edi, eax
lea edx, [ecx + 2]
movzx eax, di
inc ecx
mov edi, dword [esp + 0x38]
vmovd xmm0, eax
vpinsrw xmm0, xmm0, ecx, 1
vpinsrw xmm0, xmm0, edx, 2
mov edx, dword [esp + 0x24]
vpinsrw xmm0, xmm0, esi, 3
vpinsrw xmm0, xmm0, edi, 4
movzx ecx, dx
mov esi, dword [ebp + 0x10]
mov edi, dword [esp + 0x30]
lea eax, [ecx + 5]
vpinsrw xmm0, xmm0, eax, 5
lea eax, [ecx + 6]
vpinsrw xmm0, xmm0, eax, 6
lea eax, [ecx + 7]
vpinsrw xmm1, xmm0, eax, 7
lea eax, [ecx + 8]
movzx eax, ax
vmovd xmm0, eax
lea eax, [ecx + 9]
vpinsrw xmm0, xmm0, eax, 1
lea eax, [ecx + 0xa]
vpinsrw xmm0, xmm0, eax, 2
lea eax, [ecx + 0xb]
vpinsrw xmm0, xmm0, eax, 3
lea eax, [ecx + 0xc]
vpinsrw xmm0, xmm0, eax, 4
lea eax, [ecx + 0xd]
vpinsrw xmm0, xmm0, eax, 5
lea eax, [ecx + 0xe]
vpinsrw xmm0, xmm0, eax, 6
lea eax, [ecx + 0xf]
mov ecx, dword [esp + 0x28]
vpinsrw xmm0, xmm0, eax, 7
vinsertf128 ymm0, ymm1, xmm0, 1
vpcmpgtw ymm3, ymm7, ymm0
mov eax, ecx
add ecx, dword [ebp + 0x18]
vpsllw ymm0, ymm4, 5
vpaddw ymm2, ymm0, ymm6
and eax, 0x3f
mov dword [esp + 0x28], ecx
cwde
vmovd xmm0, eax
vpbroadcastw ymm0, xmm0
vpsrlw ymm1, ymm0, 1
vmovdqu ymm0, ymmword [esi + edx*2 + 2]
mov edx, dword [esp + 0x2c]
vpsubw ymm0, ymm0, ymm4
vpmullw ymm0, ymm0, ymm1
vpaddw ymm0, ymm0, ymm2
vpsrlw ymm0, ymm0, 5
vpblendvb ymm0, ymm5, ymm0, ymm3
inc edx
vmovdqu ymmword [edi], ymm0
add edi, 0x20
mov dword [esp + 0x2c], edx
mov dword [esp + 0x30], edi
cmp edx, 8
jl 0x101a9140
jmp 0x101a943d
mov eax, edx
lea ecx, [esp + 0x180]
shl eax, 5
add eax, ecx
mov ecx, 8
sub ecx, edx
nop word [eax + eax]
lea eax, [eax + 0x20]
vmovdqu ymmword [eax - 0x20], ymm5
sub ecx, 1
jne 0x101a9280
jmp 0x101a943d
vmovdqu ymm4, ymmword [0x10842cc0]
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x28], edx
mov dword [esp + 0x24], eax
mov eax, ecx
sar eax, 6
cmp eax, 0x17
jge 0x101a941b
vpmovzxwd ymm2, xmmword [esi + eax*2]
and ecx, 0x3f
vmovd xmm0, ecx
vpbroadcastd ymm0, xmm0
vpsrld ymm3, ymm0, 1
vpslld ymm0, ymm2, 5
vpaddd ymm1, ymm0, ymm4
vpmovzxwd ymm0, xmmword [esi + eax*2 + 2]
vpsubd ymm0, ymm0, ymm2
vpmulld ymm0, ymm0, ymm3
vpaddd ymm0, ymm0, ymm1
vpsrld ymm1, ymm0, 5
mov ecx, 0x17
sub ecx, eax
vextracti128 xmm0, ymm1, 1
vpackusdw ymm6, ymm1, ymm0
cmp ecx, 8
jle 0x101a9340
vpmovzxwd ymm2, xmmword [esi + eax*2 + 0x10]
vpslld ymm0, ymm2, 5
vpaddd ymm1, ymm0, ymm4
vpmovzxwd ymm0, xmmword [esi + eax*2 + 0x12]
vpsubd ymm0, ymm0, ymm2
vpmulld ymm0, ymm0, ymm3
vpaddd ymm0, ymm0, ymm1
vpsrld ymm1, ymm0, 5
vextracti128 xmm0, ymm1, 1
vpackusdw ymm0, ymm1, ymm0
vmovdqu ymmword [esp + 0x60], ymm0
jmp 0x101a9346
vmovdqu ymmword [esp + 0x60], ymm5
movzx ecx, ax
mov dword [esp + 0x30], ecx
mov eax, ecx
movzx eax, ax
vmovd xmm0, eax
lea esi, [ecx + 3]
lea edx, [ecx + 2]
lea edi, [ecx + 4]
inc ecx
vpinsrw xmm0, xmm0, ecx, 1
mov ecx, dword [esp + 0x30]
vpinsrw xmm0, xmm0, edx, 2
vpinsrw xmm0, xmm0, esi, 3
vpinsrw xmm0, xmm0, edi, 4
lea eax, [ecx + 5]
mov esi, dword [esp + 0x24]
vpinsrw xmm0, xmm0, eax, 5
lea eax, [ecx + 6]
mov edx, dword [esp + 0x28]
vpinsrw xmm0, xmm0, eax, 6
lea eax, [ecx + 7]
inc edx
vpinsrw xmm1, xmm0, eax, 7
lea eax, [ecx + 8]
mov dword [esp + 0x28], edx
movzx eax, ax
vmovd xmm0, eax
lea eax, [ecx + 9]
vpinsrw xmm0, xmm0, eax, 1
lea eax, [ecx + 0xa]
vpinsrw xmm0, xmm0, eax, 2
lea eax, [ecx + 0xb]
vpinsrw xmm0, xmm0, eax, 3
lea eax, [ecx + 0xc]
vpinsrw xmm0, xmm0, eax, 4
lea eax, [ecx + 0xd]
vpinsrw xmm0, xmm0, eax, 5
lea eax, [ecx + 0xe]
vpinsrw xmm0, xmm0, eax, 6
lea eax, [ecx + 0xf]
mov ecx, dword [esp + 0x2c]
add ecx, dword [ebp + 0x18]
vpinsrw xmm0, xmm0, eax, 7
vinsertf128 ymm0, ymm1, xmm0, 1
vpcmpgtw ymm1, ymm7, ymm0
vinserti128 ymm0, ymm6, xmmword [esp + 0x60], 1
vpblendvb ymm0, ymm5, ymm0, ymm1
vmovdqu ymmword [esi], ymm0
add esi, 0x20
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x24], esi
mov esi, dword [ebp + 0x10]
cmp edx, 8
jl 0x101a92a6
jmp 0x101a943d
mov eax, edx
lea ecx, [esp + 0x180]
shl eax, 5
add eax, ecx
mov ecx, 8
sub ecx, edx
lea eax, [eax + 0x20]
vmovdqu ymmword [eax - 0x20], ymm5
sub ecx, 1
jne 0x101a9430
lea eax, [esp + 0x80]
push eax
lea eax, [esp + 0x184]
push eax
vzeroupper
call fcn.101aaad0
mov eax, dword [esp + 0x44]
lea ecx, [esp + 0x88]
mov edx, dword [esp + 0x3c]
add esp, 8
mov edi, 8
lea esi, [eax + eax]
nop
vmovdqu ymm0, ymmword [ecx]
vmovdqu xmmword [edx], xmm0
add edx, esi
lea ecx, [ecx + 0x20]
sub edi, 1
jne 0x101a9470
shl eax, 4
lea ecx, [esp + 0x80]
add eax, dword [esp + 0x34]
lea edx, [edi + 8]
nop dword [eax]
nop word [eax + eax]
vmovdqu ymm0, ymmword [ecx]
vextracti128 xmm0, ymm0, 1
vmovdqu xmmword [eax], xmm0
add eax, esi
lea ecx, [ecx + 0x20]
sub edx, 1
jne 0x101a94a0
vzeroupper
mov ecx, dword [esp + 0x29c]
pop edi
pop esi
xor ecx, esp
call fcn.105116c0
mov esp, ebp
pop ebp
ret