Function at 0x101a59a0
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push ebp
mov ebp, esp
and esp, 0xffffffe0
sub esp, 0x498
mov eax, dword [0x10a78b80]
xor eax, esp
mov dword [esp + 0x494], eax
mov eax, dword [ebp + 8]
xor edx, edx
cmp dword [ebp + 0x1c], 0xc
vmovdqu ymm7, ymmword [0x10842d80]
mov ecx, dword [ebp + 0x18]
push esi
mov esi, dword [ebp + 0x10]
mov dword [esp + 0x38], eax
mov eax, dword [ebp + 0xc]
mov dword [esp + 0x34], eax
movsx eax, word [esi + 0x3e]
vmovd xmm0, eax
push edi
vpbroadcastw ymm5, xmm0
lea eax, [esp + 0x80]
jge 0x101a5b62
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, 0x1f
jge 0x101a5b32
vmovdqu ymm4, ymmword [esi + eax*2]
movzx ecx, ax
lea edi, [ecx + 4]
mov dword [esp + 0x34], edi
lea esi, [ecx + 3]
mov edi, eax
lea edx, [ecx + 2]
movzx eax, di
inc ecx
mov edi, dword [esp + 0x34]
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, 0x10
jl 0x101a5a10
jmp 0x101a5d0d
mov eax, edx
lea ecx, [esp + 0x80]
shl eax, 5
add eax, ecx
mov ecx, 0x10
sub ecx, edx
nop word [eax + eax]
lea eax, [eax + 0x20]
vmovdqu ymmword [eax - 0x20], ymm5
sub ecx, 1
jne 0x101a5b50
jmp 0x101a5d0d
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, 0x1f
jge 0x101a5ceb
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, 0x1f
sub ecx, eax
vextracti128 xmm0, ymm1, 1
vpackusdw ymm6, ymm1, ymm0
cmp ecx, 8
jle 0x101a5c10
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 0x101a5c16
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, 0x10
jl 0x101a5b76
jmp 0x101a5d0d
mov eax, edx
lea ecx, [esp + 0x80]
shl eax, 5
add eax, ecx
mov ecx, 0x10
sub ecx, edx
lea eax, [eax + 0x20]
vmovdqu ymmword [eax - 0x20], ymm5
sub ecx, 1
jne 0x101a5d00
lea eax, [esp + 0x280]
push eax
lea eax, [esp + 0x84]
push eax
vzeroupper
call fcn.101aa610
mov edx, dword [esp + 0x40]
lea eax, [esp + 0x288]
mov esi, dword [esp + 0x44]
add esp, 8
add edx, edx
mov ecx, 0x10
nop
vmovdqu ymm0, ymmword [eax]
vmovdqu ymmword [esi], ymm0
add esi, edx
lea eax, [eax + 0x20]
sub ecx, 1
jne 0x101a5d40
vzeroupper
mov ecx, dword [esp + 0x49c]
pop edi
pop esi
xor ecx, esp
call fcn.105116c0
mov esp, ebp
pop ebp
ret