Function at 0x61f910
Capabilities:
Encrypt data using rc4 ksa

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffff4
push ebx
push esi
push edi
mov dword [ebp - 4], ecx
mov ebx, edx
mov edi, eax
mov esi, dword [ebp + 8]
cmp byte [0x71b494], 0
je 0x61f98d
test esi, esi
je 0x61f98d
cmp dword [esi + 0x464], 0
je 0x61f98d
mov eax, esi
call fcn.00618afc
call fcn.00644264
test al, al
je 0x61f98d
mov eax, esi
call fcn.00618b24
call fcn.00644264
test al, al
je 0x61f98d
xor eax, eax
mov al, byte [ebp + 0x10]
push eax
push 0
push 0
push edi
mov eax, dword [ebp - 4]
push eax
mov eax, dword [ebp + 0xc]
push eax
mov eax, esi
call fcn.00618b24
push eax
mov eax, esi
call fcn.00618afc
xor ecx, ecx
mov cl, bl
pop edx
call fcn.00644358
test al, al
jne case.0x61f99a.5
xor eax, eax
mov al, bl
cmp eax, 7
ja case.0x61f99a.5
jmp dword [eax*4 + 0x61f9a1]
mov al, byte [ebp + 0x10]
dec al
jne case.0x61f99a.5
mov ecx, dword [ebp + 0xc]
mov edx, edi
mov eax, dword [ebp - 4]
call fcn.005fd938
jmp case.0x61f99a.5
mov al, byte [ebp + 0x10]
dec al
jne case.0x61f99a.5
mov eax, edi
mov ebx, dword [ebp - 4]
mov esi, dword [ebp + 0xc]
dec esi
test esi, esi
jl case.0x61f99a.5
inc esi
movzx edx, word [eax]
shr edx, 8
mov byte [ebx + 2], dl
movzx edx, word [eax + 2]
shr edx, 8
mov byte [ebx + 1], dl
movzx edx, word [eax + 4]
shr edx, 8
mov byte [ebx], dl
add ebx, 3
add eax, 6
dec esi
jne 0x61f9fb
jmp case.0x61f99a.5
mov al, byte [ebp + 0x10]
dec al
jne case.0x61f99a.5
mov eax, edi
mov ebx, dword [ebp - 4]
mov esi, dword [ebp + 0xc]
dec esi
test esi, esi
jl case.0x61f99a.5
inc esi
mov dl, byte [eax]
and dl, 0xff
mov byte [ebx + 2], dl
mov dl, byte [eax + 2]
and dl, 0xff
mov byte [ebx + 1], dl
mov dl, byte [eax + 4]
and dl, 0xff
mov byte [ebx], dl
add ebx, 3
add eax, 6
dec esi
jne 0x61fa42
jmp case.0x61f99a.5
mov al, byte [ebp + 0x10]
dec al
je 0x61fb53
dec al
je 0x61fa85
sub al, 2
je 0x61fab6
dec al
je 0x61faf5
jmp case.0x61f99a.5
mov ebx, edi
mov edi, dword [ebp - 4]
mov esi, dword [ebp + 0xc]
dec esi
test esi, esi
jl case.0x61f99a.5
inc esi
mov al, byte [ebx + 2]
shl eax, 0x10
mov ax, word [ebx]
push eax
call fcn.0061f888
mov dword [edi], eax
add ebx, 3
add edi, 4
dec esi
jne 0x61fa97
jmp case.0x61f99a.5
mov ebx, edi
mov edi, dword [ebp - 4]
mov esi, dword [ebp + 0xc]
dec esi
test esi, esi
jl case.0x61f99a.5
inc esi
mov al, byte [ebx + 2]
shl eax, 0x10
mov ax, word [ebx]
push eax
lea eax, [ebp - 0xc]
call fcn.006361d8
mov ax, word [ebp - 0xc]
mov word [edi], ax
mov al, byte [ebp - 0xa]
mov byte [edi + 2], al
add ebx, 3
add edi, 3
dec esi
jne 0x61fac8
jmp case.0x61f99a.5
mov ebx, edi
mov eax, dword [ebp - 4]
mov dword [ebp - 8], eax
mov esi, dword [ebp + 0xc]
dec esi
test esi, esi
jl case.0x61f99a.5
inc esi
mov ecx, ebx
xor eax, eax
mov al, byte [ecx + 2]
mov edx, dword [0x715af8]
imul dword [edx]
xor edx, edx
mov dl, byte [ecx + 1]
mov edi, dword [0x715a20]
imul edx, dword [edi]
add eax, edx
xor edx, edx
mov dl, byte [ecx]
mov ecx, dword [0x715618]
imul edx, dword [ecx]
add eax, edx
mov ecx, 0x64
cdq
idiv ecx
mov edx, dword [ebp - 8]
mov byte [edx], al
add ebx, 3
inc dword [ebp - 8]
dec esi
jne 0x61fb0a
jmp case.0x61f99a.5
mov ecx, dword [ebp + 0xc]
lea ecx, [ecx + ecx*2]
mov edx, edi
mov eax, dword [ebp - 4]
call fcn.00408894
jmp case.0x61f99a.5
mov al, byte [ebp + 0x10]
dec al
jne case.0x61f99a.5
mov ebx, dword [ebp - 4]
mov esi, dword [ebp + 0xc]
dec esi
test esi, esi
jl case.0x61f99a.5
inc esi
lea edx, [ebp - 0xc]
mov eax, dword [edi]
call fcn.0061f830
mov ax, word [ebp - 0xc]
mov word [ebx], ax
mov al, byte [ebp - 0xa]
mov byte [ebx + 2], al
add ebx, 3
add edi, 4
dec esi
jne 0x61fb83
jmp case.0x61f99a.5
mov al, byte [ebp + 0x10]
dec al
jne case.0x61f99a.5
mov ebx, dword [ebp - 4]
mov esi, dword [ebp + 0xc]
dec esi
test esi, esi
jl case.0x61f99a.5
inc esi
mov eax, edi
mov dl, 0xff
sub dl, byte [eax]
mov byte [eax], dl
mov dl, 0xff
sub dl, byte [eax + 1]
mov byte [eax + 1], dl
mov dl, 0xff
sub dl, byte [eax + 2]
mov byte [eax + 2], dl
mov dl, 0xff
sub dl, byte [eax + 3]
mov byte [eax + 3], dl
lea edx, [ebp - 0xc]
mov eax, dword [edi]
call fcn.0061f830
mov ax, word [ebp - 0xc]
mov word [ebx], ax
mov al, byte [ebp - 0xa]
mov byte [ebx + 2], al
add ebx, 3
add edi, 4
add edi, 2
dec esi
jne 0x61fbc3
jmp case.0x61f99a.5
mov al, byte [ebp + 0x10]
dec al
jne case.0x61f99a.5
mov ebx, dword [ebp - 4]
mov esi, dword [ebp + 0xc]
dec esi
test esi, esi
jl case.0x61f99a.5
inc esi
mov al, byte [edi + 2]
shl eax, 0x10
mov ax, word [edi]
push eax
lea eax, [ebp - 0xc]
call fcn.0063664c
mov ax, word [ebp - 0xc]
mov word [ebx], ax
mov al, byte [ebp - 0xa]
mov byte [ebx + 2], al
add edi, 3
add ebx, 3
dec esi
jne 0x61fc1b
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc