Function at 0x101115d0
Capabilities:
Encrypt data using rc4 ksa

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x48
mov eax, dword [0x101f9834]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
mov edi, ecx
mov dword [ebp - 0xc], 0x3020100
mov byte [ebp - 8], 4
mov cl, byte [edi + 0x2c]
mov al, cl
mov byte [ebp - 0xd], cl
dec al
mov byte [ebp - 0x18], cl
cmp dword [edi + 0xb00], 0
movzx ebx, al
movzx eax, cl
mov ecx, dword [edi + 0xc]
cmove ebx, eax
call fcn.1004e8e0
cmp eax, 2
jne 0x10111636
xor dl, dl
test bl, bl
je 0x10111636
movzx eax, dl
lea ecx, [ebp - 0xc]
add ecx, eax
inc dl
mov al, bl
sub al, byte [ecx]
dec al
mov byte [ecx], al
cmp dl, bl
jb 0x10111620
cmp dword [edi + 0xb00], 0
je 0x10111691
mov ecx, dword [edi + 0xc]
call fcn.1004eaa0
test eax, eax
je 0x1011166d
test bl, bl
je 0x10111667
movzx eax, bl
lea ecx, [ebp - 0xc]
add ecx, eax
mov al, byte [ecx - 1]
lea ecx, [ecx - 1]
inc al
mov byte [ecx + 1], al
add bl, 0xff
jne 0x10111657
mov byte [ebp - 0xc], 0
jmp 0x10111691
mov dl, bl
test dl, dl
je 0x1011168e
movzx eax, dl
lea ecx, [ebp - 0xc]
add ecx, eax
nop dword [eax + eax]
mov al, byte [ecx - 1]
lea ecx, [ecx - 1]
mov byte [ecx + 1], al
add dl, 0xff
jne 0x10111680
mov byte [ebp - 0xc], bl
cmp dword [edi + 0xb14], 0
movzx eax, word [edi + 0x28]
cdq
je 0x101116d9
mov bl, byte [ebp - 0xd]
push edx
push eax
movzx esi, bl
push 0
push esi
mov dword [ebp - 0x28], esi
call fcn.1019d680
mov dword [ebp - 0x20], eax
xor ecx, ecx
mov eax, dword [ebp + 8]
mov dword [ebp - 0x1c], edx
mov edx, dword [eax]
test bl, bl
je 0x10111705
movzx eax, byte [ebp + ecx - 0xc]
add eax, edx
mov dword [ebp + ecx*4 - 0x38], eax
inc ecx
movzx eax, byte [ebp - 0x18]
cmp ecx, eax
jl 0x101116c3
jmp 0x10111705
xor ecx, ecx
mov dword [ebp - 0x28], 1
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x1c], edx
cmp byte [ebp - 0xd], cl
je 0x10111705
mov edx, dword [ebp + 8]
movzx eax, byte [ebp + ecx - 0xc]
mov eax, dword [edx + eax*4]
mov dword [ebp + ecx*4 - 0x38], eax
inc ecx
movzx eax, byte [ebp - 0x18]
cmp ecx, eax
jl 0x101116f0
mov cl, byte [edi + 0xb36]
movups xmm0, xmmword [ebp - 0x38]
cmp cl, 8
jne 0x1011173e
sub esp, 0x28
mov eax, esp
push dword [edi + 0x30]
movups xmmword [eax], xmm0
movups xmm0, xmmword [ebp - 0x28]
push dword [edi + 0x24]
movups xmmword [eax + 0x10], xmm0
movq xmm0, qword [ebp - 0x18]
movq qword [eax + 0x20], xmm0
call fcn.100e6320
add esp, 0x30
jmp 0x1011178e
cmp cl, 1
jne 0x10111749
push 4
push 3
jmp 0x10111766
movzx eax, byte [edi + 0xb37]
xor edx, edx
movzx ecx, cl
imul eax, ecx
movzx ecx, byte [edi + 0xb38]
div ecx
movzx eax, ax
push eax
push eax
sub esp, 0x28
mov eax, esp
push dword [edi + 0x30]
movups xmmword [eax], xmm0
movups xmm0, xmmword [ebp - 0x28]
push dword [edi + 0x24]
movups xmmword [eax + 0x10], xmm0
movq xmm0, qword [ebp - 0x18]
movq qword [eax + 0x20], xmm0
call fcn.100e6320
add esp, 0x38
mov esi, eax
test esi, esi
je 0x101117a0
mov ecx, dword [edi + 0xc]
call fcn.1004ea40
cmp al, 1
jne 0x101117b3
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.1019d470
mov esp, ebp
pop ebp
ret 0xc
push esi
call fcn.100e6320
add esp, 4
lea ecx, [ebp - 0x48]
push eax
call fcn.100e6320
push 0x101e82e4
lea eax, [ebp - 0x48]
push eax
call sub.VCRUNTIME140.dll__CxxThrowException
int3