Function at 0x1011c230
Capabilities:
Encrypt data using rc4 ksa

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x48
mov eax, dword [0x10206f54]
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.1004f340
cmp eax, 2
jne 0x1011c296
xor dl, dl
test bl, bl
je 0x1011c296
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 0x1011c280
cmp dword [edi + 0xb00], 0
je 0x1011c2f1
mov ecx, dword [edi + 0xc]
call fcn.1004f500
test eax, eax
je 0x1011c2cd
test bl, bl
je 0x1011c2c7
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 0x1011c2b7
mov byte [ebp - 0xc], 0
jmp 0x1011c2f1
mov dl, bl
test dl, dl
je 0x1011c2ee
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 0x1011c2e0
mov byte [ebp - 0xc], bl
cmp dword [edi + 0xb14], 0
movzx eax, word [edi + 0x28]
cdq
je 0x1011c339
mov bl, byte [ebp - 0xd]
push edx
push eax
movzx esi, bl
push 0
push esi
mov dword [ebp - 0x28], esi
call fcn.101a8d70
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 0x1011c365
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 0x1011c323
jmp 0x1011c365
xor ecx, ecx
mov dword [ebp - 0x28], 1
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x1c], edx
cmp byte [ebp - 0xd], cl
je 0x1011c365
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 0x1011c350
mov cl, byte [edi + 0xb36]
movups xmm0, xmmword [ebp - 0x38]
cmp cl, 8
jne 0x1011c39e
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.1014f320
add esp, 0x30
jmp 0x1011c3ee
cmp cl, 1
jne 0x1011c3a9
push 4
push 3
jmp 0x1011c3c6
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.1014f320
add esp, 0x38
mov esi, eax
test esi, esi
je 0x1011c400
mov ecx, dword [edi + 0xc]
call fcn.1004f4a0
cmp al, 1
jne 0x1011c413
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.101a8b60
mov esp, ebp
pop ebp
ret 0xc
push esi
call fcn.1014f320
add esp, 4
lea ecx, [ebp - 0x48]
push eax
call fcn.1014f320
push 0x101f5474
lea eax, [ebp - 0x48]
push eax
call sub.VCRUNTIME140.dll__CxxThrowException
int3