Function at 0x6c202ae4
Capabilities:
Encrypt data using rc4 ksa

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x3c
mov dword [esp + 0x28], eax
mov ebp, edx
mov dword [esp + 0x18], ecx
mov ebx, ecx
imul ebx, edx
shl ebx, 2
mov dword [esp], ebx
call sub.msvcrt.dll_malloc
mov dword [esp + 0x20], eax
test eax, eax
je 0x6c202d42
mov edi, eax
mov esi, dword [esp + 0x28]
mov ecx, ebx
rep movsb byte es:[edi], byte [esi]
mov eax, dword [esp + 0x18]
test eax, eax
jle 0x6c202d36
lea eax, [ebp*4]
mov dword [esp + 0x1c], eax
mov ebx, dword [esp + 0x20]
mov dword [esp + 0x14], 0
fldz
fstp dword [esp + 0x10]
fld1
mov eax, dword [esp + 0x28]
sub eax, ebx
mov dword [esp + 0x24], eax
inc dword [esp + 0x14]
mov eax, dword [esp + 0x14]
cdq
idiv dword [esp + 0x18]
imul edx, dword [esp + 0x1c]
mov edi, dword [esp + 0x20]
add edi, edx
mov esi, dword [esp + 0x24]
add esi, ebx
test ebp, ebp
jle 0x6c202c81
xor ecx, ecx
movzx eax, byte [ebx + ecx*4 + 1]
fld dword [0x6c36731c]
push eax
fimul dword [esp]
movzx eax, byte [ebx + ecx*4]
fld dword [0x6c367320]
fld st(0)
mov dword [esp], eax
fimul dword [esp]
faddp st(2)
movzx eax, byte [ebx + ecx*4 + 2]
fld dword [0x6c367324]
fld st(0)
mov dword [esp], eax
fimul dword [esp]
faddp st(3)
fld dword [0x6c367304]
fmul st(3), st(0)
fxch st(3)
fcomi st(4)
fxch st(4)
fcmovb st(0), st(4)
fld dword [esp + 0x14]
fcomi st(5)
fcmovb st(0), st(5)
fstp dword [esp + 0x14]
inc ecx
mov eax, ecx
cdq
idiv ebp
shl edx, 2
movzx eax, byte [edi + ecx*4 - 3]
fld dword [0x6c36731c]
fld st(0)
mov dword [esp], eax
fimul dword [esp]
movzx eax, byte [edi + ecx*4 - 4]
fld st(4)
mov dword [esp], eax
fimul dword [esp]
faddp st(1)
movzx eax, byte [edi + ecx*4 - 2]
fld st(3)
mov dword [esp], eax
fimul dword [esp]
faddp st(1)
fmul st(5)
fld1
fsub st(7)
fxch st(2)
movzx eax, byte [ebx + edx + 1]
mov dword [esp], eax
fimul dword [esp]
fxch st(4)
movzx eax, byte [ebx + edx + 2]
mov dword [esp], eax
fimul dword [esp]
faddp st(4)
fxch st(4)
movzx eax, byte [ebx + edx]
mov dword [esp], eax
fimul dword [esp]
pop eax
faddp st(3)
fxch st(2)
fmulp st(4)
fxch st(1)
faddp st(3)
fld dword [0x6c367328]
fmul st(3), st(0)
fxch st(3)
fisttp word [esp + 0x2e]
fxch st(1)
mov ax, word [esp + 0x2e]
mov byte [esi + ecx*4 - 4], al
fsubrp st(3)
fld1
faddp st(3)
fxch st(2)
fmulp st(1)
fisttp word [esp + 0x2e]
mov ax, word [esp + 0x2e]
mov byte [esi + ecx*4 - 3], al
mov byte [esi + ecx*4 - 2], 0xff
mov byte [esi + ecx*4 - 1], 0
cmp ecx, ebp
jne 0x6c202b78
add ebx, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
cmp dword [esp + 0x14], eax
jne 0x6c202b50
fld dword [esp + 0x10]
fsub st(1)
fld dword [0x6c36732c]
fcompi st(1)
ja 0x6c202d4a
fdivr dword [0x6c367318]
lea eax, [ebp*4]
mov dword [esp + 0x10], eax
mov edx, dword [esp + 0x20]
xor esi, esi
mov edi, dword [esp + 0x28]
sub edi, edx
fld dword [0x6c36731c]
nop
lea ebx, [edi + edx]
test ebp, ebp
jle 0x6c202d25
xor eax, eax
lea esi, [esi]
movzx ecx, byte [edx + eax*4 + 1]
fld st(0)
push ecx
fimul dword [esp]
movzx ecx, byte [edx + eax*4]
fld dword [0x6c367320]
mov dword [esp], ecx
fimul dword [esp]
faddp st(1)
movzx ecx, byte [edx + eax*4 + 2]
fld dword [0x6c367324]
mov dword [esp], ecx
fimul dword [esp]
pop ecx
faddp st(1)
fmul dword [0x6c367304]
fsub st(3)
fmul st(2)
fisttp word [esp + 0x2e]
mov cx, word [esp + 0x2e]
mov byte [ebx + eax*4 + 2], cl
inc eax
cmp eax, ebp
jne 0x6c202cd8
inc esi
add edx, dword [esp + 0x10]
cmp esi, dword [esp + 0x18]
jne 0x6c202ccc
fstp st(0)
fstp st(0)
fstp st(0)
mov eax, dword [esp + 0x20]
mov dword [esp], eax
call sub.msvcrt.dll_free
add esp, 0x3c
pop ebx
pop esi
pop edi
pop ebp
ret
fstp st(0)
fstp st(0)
mov ebx, dword [esp + 0x18]
test ebx, ebx
jle 0x6c202d36
fld dword [0x6c367318]
fldz
fxch st(1)
jmp 0x6c202cad