Function at 0x4c7c70
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x20
mov esi, dword [esp + 0x34]
mov dword [esp], ecx
test esi, esi
js 0x4c824d
movzx ecx, word [edx + 2]
xor eax, eax
mov edi, 0x8a
mov ebx, 4
mov dword [esp + 4], 0xffffffff
mov dword [esp + 0x14], edx
test cx, cx
mov dword [esp + 8], ecx
mov ecx, 7
sete al
cmove ecx, edi
xor ebp, ebp
sub ebx, eax
xor eax, eax
jmp 0x4c7cd0
add ebx, 3
jmp 0x4c81f4
add ebx, 7
jmp 0x4c81f4
movzx edi, word [edx + ebp*4 + 6]
mov dword [esp + 0xc], eax
inc eax
cmp eax, ecx
jge 0x4c7ce8
cmp dword [esp + 8], edi
je 0x4c823e
cmp eax, ebx
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x18], edi
jge 0x4c7dc0
mov eax, dword [esp]
mov esi, dword [esp + 8]
not dword [esp + 0xc]
mov ecx, dword [eax + 0x170c]
nop dword [eax]
movzx ebp, word [eax + esi*4 + 0xacc]
movzx edx, word [eax + esi*4 + 0xace]
mov edi, 0x10
mov ebx, ebp
sub edi, edx
shl ebx, cl
or bx, word [eax + 0x1708]
cmp ecx, edi
mov word [eax + 0x1708], bx
jle 0x4c7da0
mov edi, dword [eax + 0x14]
mov esi, dword [esp]
mov ecx, dword [eax + 8]
lea eax, [edi + 1]
mov dword [esi + 0x14], eax
mov esi, dword [esp]
mov byte [ecx + edi], bl
mov eax, dword [esp]
mov ecx, dword [esp]
mov edi, dword [esi + 0x14]
movzx eax, byte [eax + 0x1709]
mov ecx, dword [ecx + 8]
mov esi, dword [esp]
lea ebx, [edi + 1]
mov dword [esi + 0x14], ebx
mov byte [ecx + edi], al
mov eax, dword [esp]
mov esi, dword [esp + 8]
mov cl, 0x10
mov ebx, dword [eax + 0x170c]
sub cl, bl
shr ebp, cl
lea ecx, [edx + ebx - 0x10]
mov word [eax + 0x1708], bp
jmp 0x4c7da2
add ecx, edx
inc dword [esp + 0xc]
mov dword [eax + 0x170c], ecx
jne 0x4c7d10
jmp 0x4c81fe
mov ecx, dword [esp + 8]
test ecx, ecx
je 0x4c7de6
cmp ecx, dword [esp + 4]
jne 0x4c7e93
mov ecx, dword [esp]
mov dword [esp + 0xc], eax
mov ebx, dword [ecx + 0x170c]
mov eax, ecx
jmp 0x4c7fe5
cmp eax, 0xa
jg 0x4c7f35
mov esi, dword [esp]
mov eax, 0x10
movzx ecx, word [esi + 0xb12]
mov ebx, dword [esi + 0x170c]
movzx edx, word [esi + 0xb10]
mov dword [esp + 4], ecx
sub eax, ecx
mov ecx, ebx
mov dword [esp + 0x10], edx
shl edx, cl
or dx, word [esi + 0x1708]
cmp ebx, eax
mov eax, esi
mov esi, dword [esp + 4]
mov word [eax + 0x1708], dx
jle 0x4c80f9
mov ecx, dword [esp]
mov eax, dword [esp]
mov ebx, dword [esp]
mov ecx, dword [ecx + 0x14]
mov eax, dword [eax + 8]
lea edi, [ecx + 1]
mov dword [ebx + 0x14], edi
mov byte [eax + ecx], dl
mov edx, dword [esp]
mov eax, dword [esp]
mov ecx, dword [esp]
mov ebx, dword [esp]
mov edx, dword [edx + 0x14]
mov al, byte [eax + 0x1709]
mov ecx, dword [ecx + 8]
lea edi, [edx + 1]
mov dword [ebx + 0x14], edi
mov byte [ecx + edx], al
mov eax, dword [esp]
mov edi, dword [esp + 0x10]
mov cl, 0x10
mov edx, dword [eax + 0x170c]
sub cl, dl
lea ebx, [esi + edx - 0x10]
shr edi, cl
mov word [eax + 0x1708], di
mov edx, edi
jmp 0x4c80fb
mov esi, dword [esp]
mov eax, 0x10
movzx edx, word [esi + ecx*4 + 0xace]
mov ebx, dword [esi + 0x170c]
mov dword [esp + 4], edx
sub eax, edx
movzx edx, word [esi + ecx*4 + 0xacc]
mov ecx, ebx
mov dword [esp + 0x10], edx
shl edx, cl
or dx, word [esi + 0x1708]
cmp ebx, eax
mov word [esi + 0x1708], dx
jle 0x4c7fd9
mov ecx, dword [esp]
mov eax, dword [esp]
mov ebx, dword [esp]
mov esi, dword [esp + 0x10]
mov ecx, dword [ecx + 0x14]
mov eax, dword [eax + 8]
lea edi, [ecx + 1]
mov dword [ebx + 0x14], edi
mov byte [eax + ecx], dl
mov edx, dword [esp]
mov eax, dword [esp]
mov ecx, dword [esp]
mov ebx, dword [esp]
mov edx, dword [edx + 0x14]
mov al, byte [eax + 0x1709]
mov ecx, dword [ecx + 8]
lea edi, [edx + 1]
mov dword [ebx + 0x14], edi
mov byte [ecx + edx], al
mov eax, dword [esp]
mov cl, 0x10
mov edx, dword [eax + 0x170c]
sub cl, dl
shr esi, cl
mov word [eax + 0x1708], si
mov esi, dword [esp + 4]
lea ebx, [esi + edx - 0x10]
jmp 0x4c7fdf
mov esi, dword [esp]
mov eax, 0x10
movzx ecx, word [esi + 0xb16]
mov ebx, dword [esi + 0x170c]
movzx edx, word [esi + 0xb14]
mov dword [esp + 4], ecx
sub eax, ecx
mov ecx, ebx
mov dword [esp + 0x10], edx
shl edx, cl
or dx, word [esi + 0x1708]
cmp ebx, eax
mov eax, esi
mov esi, dword [esp + 4]
mov word [eax + 0x1708], dx
jle 0x4c8173
mov ecx, dword [esp]
mov eax, dword [esp]
mov ebx, dword [esp]
mov ecx, dword [ecx + 0x14]
mov eax, dword [eax + 8]
lea edi, [ecx + 1]
mov dword [ebx + 0x14], edi
mov byte [eax + ecx], dl
mov edx, dword [esp]
mov eax, dword [esp]
mov ecx, dword [esp]
mov ebx, dword [esp]
mov edx, dword [edx + 0x14]
mov al, byte [eax + 0x1709]
mov ecx, dword [ecx + 8]
lea edi, [edx + 1]
mov dword [ebx + 0x14], edi
mov byte [ecx + edx], al
mov eax, dword [esp]
mov edi, dword [esp + 0x10]
mov cl, 0x10
mov edx, dword [eax + 0x170c]
sub cl, dl
lea ebx, [esi + edx - 0x10]
shr edi, cl
mov word [eax + 0x1708], di
mov edx, edi
jmp 0x4c8175
add ebx, dword [esp + 4]
mov eax, esi
mov dword [eax + 0x170c], ebx
mov ecx, dword [esp]
movzx esi, word [eax + 0xb0e]
mov edi, dword [esp]
mov eax, 0x10
movzx edx, word [ecx + 0xb0c]
mov ecx, ebx
sub eax, esi
mov dword [esp + 4], edx
shl edx, cl
or dx, word [edi + 0x1708]
cmp ebx, eax
mov eax, dword [esp]
mov word [eax + 0x1708], dx
jle 0x4c8078
mov ecx, dword [esp]
mov eax, dword [esp]
mov ebx, dword [esp]
mov ecx, dword [ecx + 0x14]
mov eax, dword [eax + 8]
lea edi, [ecx + 1]
mov dword [ebx + 0x14], edi
mov byte [eax + ecx], dl
mov edx, dword [esp]
mov eax, dword [esp]
mov ecx, dword [esp]
mov ebx, dword [esp]
mov edx, dword [edx + 0x14]
mov al, byte [eax + 0x1709]
mov ecx, dword [ecx + 8]
lea edi, [edx + 1]
mov dword [ebx + 0x14], edi
mov byte [ecx + edx], al
mov eax, dword [esp]
mov edi, dword [esp + 4]
mov cl, 0x10
mov edx, dword [eax + 0x170c]
sub cl, dl
lea ebx, [esi + edx - 0x10]
shr edi, cl
mov word [eax + 0x1708], di
mov edx, edi
jmp 0x4c807a
add ebx, esi
mov dword [eax + 0x170c], ebx
mov eax, dword [esp + 0xc]
mov ecx, ebx
add eax, 0xfffd
movzx esi, ax
mov eax, esi
shl eax, cl
or edx, eax
mov eax, dword [esp]
cmp ebx, 0xf
mov word [eax + 0x1708], dx
jl 0x4c80f1
mov ecx, dword [esp]
mov eax, dword [esp]
mov ebx, dword [esp]
mov ecx, dword [ecx + 0x14]
mov eax, dword [eax + 8]
lea edi, [ecx + 1]
mov dword [ebx + 0x14], edi
mov byte [eax + ecx], dl
mov edx, dword [esp]
mov eax, dword [esp]
mov ecx, dword [esp]
mov ebx, dword [esp]
mov edx, dword [edx + 0x14]
mov al, byte [eax + 0x1709]
mov ecx, dword [ecx + 8]
lea edi, [edx + 1]
mov dword [ebx + 0x14], edi
mov byte [ecx + edx], al
mov eax, dword [esp]
mov cl, 0x10
mov ebx, dword [eax + 0x170c]
sub cl, bl
add ebx, 0xfffffff2
jmp 0x4c81eb
add ebx, 2
jmp 0x4c81f4
add ebx, esi
mov dword [eax + 0x170c], ebx
mov eax, dword [esp + 0xc]
mov ecx, ebx
add eax, 0xfffe
movzx esi, ax
mov eax, esi
shl eax, cl
or edx, eax
mov eax, dword [esp]
cmp ebx, 0xe
mov word [eax + 0x1708], dx
jl 0x4c7cbc
mov ecx, dword [esp]
mov eax, dword [esp]
mov ebx, dword [esp]
mov ecx, dword [ecx + 0x14]
mov eax, dword [eax + 8]
lea edi, [ecx + 1]
mov dword [ebx + 0x14], edi
mov byte [eax + ecx], dl
mov edx, dword [esp]
mov eax, dword [esp]
mov ecx, dword [esp]
mov ebx, dword [esp]
mov edx, dword [edx + 0x14]
mov al, byte [eax + 0x1709]
mov ecx, dword [ecx + 8]
lea edi, [edx + 1]
mov dword [ebx + 0x14], edi
mov byte [ecx + edx], al
mov eax, dword [esp]
mov cl, 0x10
mov ebx, dword [eax + 0x170c]
sub cl, bl
add ebx, 0xfffffff3
jmp 0x4c81eb
add ebx, esi
mov dword [eax + 0x170c], ebx
mov eax, dword [esp + 0xc]
mov ecx, ebx
add eax, 0xfff6
movzx esi, ax
mov eax, esi
shl eax, cl
or edx, eax
mov eax, dword [esp]
cmp ebx, 0xa
mov word [eax + 0x1708], dx
jl 0x4c7cc4
mov ecx, dword [esp]
mov eax, dword [esp]
mov ebx, dword [esp]
mov ecx, dword [ecx + 0x14]
mov eax, dword [eax + 8]
lea edi, [ecx + 1]
mov dword [ebx + 0x14], edi
mov byte [eax + ecx], dl
mov edx, dword [esp]
mov eax, dword [esp]
mov ecx, dword [esp]
mov ebx, dword [esp]
mov edx, dword [edx + 0x14]
mov al, byte [eax + 0x1709]
mov ecx, dword [ecx + 8]
lea edi, [edx + 1]
mov dword [ebx + 0x14], edi
mov byte [ecx + edx], al
mov eax, dword [esp]
mov cl, 0x10
mov ebx, dword [eax + 0x170c]
sub cl, bl
add ebx, 0xfffffff7
shr esi, cl
mov word [eax + 0x1708], si
mov esi, dword [esp + 8]
mov dword [eax + 0x170c], ebx
mov ebp, dword [esp + 0x18]
xor edx, edx
mov edi, esi
mov ebx, 4
mov dword [esp + 4], edi
cmp esi, ebp
mov esi, 0x8a
mov edi, ebp
sete dl
mov ecx, edx
xor ecx, 7
test bp, bp
mov ebp, dword [esp + 0x1c]
sete al
cmove ecx, esi
mov esi, dword [esp + 0x34]
or al, dl
mov edx, dword [esp + 0x14]
movzx eax, al
sub ebx, eax
xor eax, eax
cmp ebp, esi
lea ebp, [ebp + 1]
mov dword [esp + 8], edi
jne 0x4c7cd0
add esp, 0x20
pop esi
pop edi
pop ebx
pop ebp
ret