Function at 0x6c91b4
Capabilities:
Encrypt data using rc4 ksa

Disassembly:
push 0x4c
mov eax, 0x7b93b4
call fcn.00645f63
mov dword [ebp - 0x24], ecx
mov ebx, dword [ebp + 8]
mov ecx, ebx
call fcn.006c50ca
test al, al
je 0x6c951a
mov ecx, ebx
call fcn.006c49bc
mov ecx, ebx
mov dword [ebp - 0x14], eax
call fcn.006c4f63
mov esi, eax
mov ecx, ebx
mov dword [ebp - 0x18], esi
call fcn.006b608f
mov byte [ebp - 0xd], al
test al, al
je 0x6c9203
cmp dword [ebp + 0x10], 1
je 0x6c951a
push 0x18
pop edi
push 0x20
pop ecx
test al, al
cmovne edi, ecx
cmp dword [ebp + 0x10], 0xffffffff
mov ecx, dword [ebp - 0x24]
cmovne edi, dword [ebp + 0x10]
push edi
push dword [ebp - 0x14]
mov dword [ebp - 0x40], edi
push esi
call fcn.006c9524
test al, al
je 0x6c951a
xor ebx, ebx
lea ecx, [ebp - 0x28]
push ebx
call fcn.00689c5b
mov dword [ebp - 4], ebx
cmp edi, 1
jne 0x6c933a
lea ecx, [ebp - 0x48]
call fcn.006b4ab4
push 2
lea eax, [ebp - 0x34]
mov byte [ebp - 4], 1
push eax
push 2
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp - 0x48]
push eax
push dword [ebp + 8]
call fcn.00712d28
add esp, 0x18
test al, al
je 0x6c937f
push dword [ebp - 0x30]
lea ecx, [ebp - 0x20]
call fcn.00689c5b
push dword [ebp - 0x34]
lea ecx, [ebp - 0x28]
call fcn.006c9c3f
push ebx
lea ecx, [ebp - 0x1c]
call fcn.006b47f9
lea ecx, [ebp - 0x1c]
call fcn.006c855f
mov ecx, eax
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x3c], ecx
push dword [eax]
push ecx
lea ecx, [ebp - 0x50]
call fcn.0069fb30
lea ecx, [ebp - 0x20]
mov byte [ebp - 4], 4
mov dword [ebp + 0x10], ebx
call fcn.006c855f
mov edx, eax
lea eax, [ebp - 0x57]
mov dword [ebp - 0x38], edx
mov dword [ebp - 0x2c], eax
lea ecx, [eax - 1]
push ecx
push eax
lea ecx, [eax + 1]
push ecx
push dword [ebp + 0x10]
mov ecx, edx
call fcn.006c2531
test al, al
je 0x6c9363
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp + 0x10]
mov edx, dword [ebp - 0x38]
inc ecx
mov dword [ebp + 0x10], ecx
mov byte [eax + 2], bl
add eax, 4
mov dword [ebp - 0x2c], eax
cmp ecx, 2
jb 0x6c92c8
lea eax, [ebp - 0x58]
push eax
push 2
push ebx
push dword [ebp - 0x3c]
call dword [sym.imp.GDI32.dll_SetDIBColorTable]
cmp eax, 2
jne 0x6c9363
lea ecx, [ebp - 0x50]
call fcn.0069fd69
lea ecx, [ebp - 0x1c]
call fcn.006b4cd4
lea ecx, [ebp - 0x20]
mov byte [ebp - 4], 1
call fcn.006c8e0a
lea ecx, [ebp - 0x48]
mov byte [ebp - 4], bl
call fcn.00734aee
imul eax, esi, 3
mov ecx, esi
cmp edi, 1
push edi
push esi
cmovne ecx, eax
mov dword [ebp - 0x2c], ecx
call fcn.006b5ca4
mov dword [ebp - 0x38], eax
pop ecx
pop ecx
cmp edi, 1
je 0x6c938f
mov ecx, dword [ebp + 8]
call fcn.006c4953
jmp 0x6c9397
lea ecx, [ebp - 0x50]
call fcn.0069fd69
lea ecx, [ebp - 0x1c]
call fcn.006b4cd4
lea ecx, [ebp - 0x20]
mov byte [ebp - 4], 1
call fcn.006c8e0a
lea ecx, [ebp - 0x48]
mov byte [ebp - 4], bl
call fcn.00734aee
jmp 0x6c950e
lea ecx, [ebp - 0x28]
call fcn.006c855f
mov esi, dword [ebp - 0x14]
mov edx, dword [ebp - 0x2c]
dec esi
mov edi, esi
imul edi, edx
add edi, eax
cmp byte [ebp - 0xd], 0
je 0x6c93c5
mov ecx, dword [ebp + 8]
call fcn.006c48dd
mov edx, dword [ebp - 0x2c]
mov ecx, eax
mov eax, dword [ebp - 0x18]
imul esi, eax
add ecx, esi
mov dword [ebp + 0x10], ecx
jmp 0x6c93cd
mov eax, dword [ebp - 0x18]
mov ecx, ebx
mov dword [ebp + 0x10], ebx
cmp dword [ebp - 0x14], 0
mov esi, dword [ebp - 0x24]
mov esi, dword [esi + 4]
mov dword [ebp + 8], esi
jle 0x6c950c
add edx, edx
mov dword [ebp - 0x2c], 0xff
mov dword [ebp - 0x3c], edx
mov edx, esi
mov esi, edx
test ecx, ecx
je 0x6c9493
mov edx, dword [ebp + 0xc]
sub edx, ebx
je 0x6c9437
dec edx
jne 0x6c94e5
test eax, eax
jle 0x6c94e5
mov edx, eax
mov al, byte [edi + 2]
mov byte [esi], al
lea esi, [esi + 4]
mov al, byte [edi + 1]
mov byte [esi - 3], al
mov al, byte [edi]
add edi, 3
mov byte [esi - 2], al
mov al, byte [ecx]
inc ecx
mov byte [esi - 1], al
dec edx
jne 0x6c9410
mov dword [ebp + 0x10], ecx
jmp 0x6c94e5
test eax, eax
jle 0x6c94e5
mov dword [ebp - 0x24], eax
mov bl, byte [ecx]
inc ecx
movzx eax, byte [edi + 2]
mov dword [ebp + 0x10], ecx
movzx ecx, bl
imul eax, ecx
add eax, 0x7f
cdq
idiv dword [ebp - 0x2c]
mov byte [esi], al
lea esi, [esi + 4]
movzx eax, byte [edi + 1]
imul eax, ecx
add eax, 0x7f
cdq
idiv dword [ebp - 0x2c]
mov byte [esi - 3], al
movzx eax, byte [edi]
add edi, 3
imul eax, ecx
mov ecx, 0xff
add eax, 0x7f
cdq
idiv ecx
dec dword [ebp - 0x24]
mov ecx, dword [ebp + 0x10]
mov byte [esi - 2], al
mov byte [esi - 1], bl
jne 0x6c9442
jmp 0x6c94e0
cmp dword [ebp - 0x40], 1
je 0x6c94ba
test eax, eax
jle 0x6c94e8
mov edx, eax
mov al, byte [edi + 2]
mov byte [esi], al
lea esi, [esi + 3]
mov al, byte [edi + 1]
mov byte [esi - 2], al
mov al, byte [edi]
add edi, 3
mov byte [esi - 1], al
dec edx
jne 0x6c949f
jmp 0x6c94e5
mov esi, ebx
test eax, eax
jle 0x6c94e8
mov ebx, dword [ebp - 0x18]
cmp byte [edi], 0
setne al
movzx eax, al
push eax
push esi
push edx
call fcn.006c99bf
mov edx, dword [ebp + 8]
add esp, 0xc
inc edi
inc esi
cmp esi, ebx
jl 0x6c94c3
mov ecx, dword [ebp + 0x10]
xor ebx, ebx
mov edx, dword [ebp + 8]
sub edi, dword [ebp - 0x3c]
test ecx, ecx
je 0x6c94fa
mov eax, dword [ebp - 0x18]
neg eax
lea ecx, [ecx + eax*2]
mov dword [ebp + 0x10], ecx
add edx, dword [ebp - 0x38]
dec dword [ebp - 0x14]
mov eax, dword [ebp - 0x18]
mov dword [ebp + 8], edx
jne 0x6c93ee
mov bl, 1
lea ecx, [ebp - 0x28]
call fcn.006966a2
mov al, bl
jmp 0x6c951c
xor al, al
call fcn.00645f31
ret 0xc