Function at 0x101d19d0
Capabilities:
Encrypt data using rc4 ksa

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x48
mov eax, dword [0x102f8be4]
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.1010ee90
cmp eax, 2
jne 0x101d1a36
xor dl, dl
test bl, bl
je 0x101d1a36
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 0x101d1a20
cmp dword [edi + 0xb00], 0
je 0x101d1a91
mov ecx, dword [edi + 0xc]
call fcn.1010f050
test eax, eax
je 0x101d1a6d
test bl, bl
je 0x101d1a67
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 0x101d1a57
mov byte [ebp - 0xc], 0
jmp 0x101d1a91
mov dl, bl
test dl, dl
je 0x101d1a8e
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 0x101d1a80
mov byte [ebp - 0xc], bl
cmp dword [edi + 0xb14], 0
movzx eax, word [edi + 0x28]
cdq
je 0x101d1ad9
mov bl, byte [ebp - 0xd]
push edx
push eax
movzx esi, bl
push 0
push esi
mov dword [ebp - 0x28], esi
call fcn.1025da70
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 0x101d1b05
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 0x101d1ac3
jmp 0x101d1b05
xor ecx, ecx
mov dword [ebp - 0x28], 1
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x1c], edx
cmp byte [ebp - 0xd], cl
je 0x101d1b05
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 0x101d1af0
mov cl, byte [edi + 0xb36]
movups xmm0, xmmword [ebp - 0x38]
cmp cl, 8
jne 0x101d1b3e
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.100589c0
add esp, 0x30
jmp 0x101d1b8e
cmp cl, 1
jne 0x101d1b49
push 4
push 3
jmp 0x101d1b66
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.100589c0
add esp, 0x38
mov esi, eax
test esi, esi
je 0x101d1ba0
mov ecx, dword [edi + 0xc]
call fcn.1010eff0
cmp al, 1
jne 0x101d1bb3
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.1025d860
mov esp, ebp
pop ebp
ret 0xc
push esi
call fcn.100589c0
add esp, 4
lea ecx, [ebp - 0x48]
push eax
call fcn.100589c0
push 0x102e6fb4
lea eax, [ebp - 0x48]
push eax
call sub.VCRUNTIME140.dll__CxxThrowException
int3