Function at 0x42bc70
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x30
push ebx
mov ebx, ecx
mov ecx, 0xff
push esi
push edi
mov dword [ebp - 4], ebx
mov ax, word [ebx + 0x36]
xor ax, word [ebx + 0x34]
xor ax, word [ebx + 0x38]
xor ax, cx
jne 0x42bf3f
cmp dword [ebx + 0x5c], 0
je 0x42bf3f
mov eax, dword [ebx + 0x54]
mov eax, dword [eax + 0xe0ac]
cmp dword [ebx + 0x50], eax
je 0x42bcbf
mov ecx, ebx
call fcn.0042a830
test eax, eax
je 0x42bf3f
mov edi, dword [ebp + 8]
xor edx, edx
mov ebx, dword [ebx + 0x18]
mov ecx, dword [edi + 4]
mov eax, ecx
div ebx
lea esi, [ebx - 1]
sub ecx, edx
xor edx, edx
mov dword [ebp - 0x1c], ecx
mov dword [edi + 4], ecx
mov ecx, dword [edi + 0xc]
mov eax, ecx
div ebx
mov ebx, dword [edi]
mov eax, ebx
sub ecx, edx
xor edx, edx
add esi, ecx
mov ecx, dword [ebp - 4]
mov dword [ebp + 8], esi
mov dword [edi + 0xc], esi
mov esi, dword [ebp - 4]
div dword [ecx + 0x18]
mov ecx, dword [edi + 8]
mov eax, ecx
sub ebx, edx
xor edx, edx
div dword [esi + 0x18]
mov dword [edi], ebx
sub ecx, edx
mov edx, esi
mov eax, dword [edx + 0x18]
xor edx, edx
dec eax
add ecx, eax
mov eax, dword [ebp - 0x1c]
mov dword [edi + 8], ecx
mov edi, dword [esi + 0x18]
div edi
xor edx, edx
mov dword [ebp - 0x20], eax
mov eax, dword [ebp + 8]
div edi
xor edx, edx
mov dword [ebp - 0x14], eax
mov eax, ebx
div edi
xor edx, edx
mov dword [ebp - 0x24], eax
mov eax, ecx
div edi
mov edi, esi
mov dword [ebp - 0xc], eax
movzx eax, byte [edi + 0x30]
mov esi, dword [edi + 4]
mov ecx, esi
imul ecx, dword [ebp - 0x1c]
mov dword [ebp + 8], eax
imul eax, ebx
mov ebx, dword [ebp - 0x24]
cdq
and edx, 7
add eax, edx
sar eax, 3
add eax, ecx
mov ecx, dword [ebp + 8]
add eax, dword [edi + 0x50]
mov dword [ebp - 0x10], eax
mov eax, ecx
imul eax, ebx
cdq
and edx, 7
add eax, edx
mov edx, dword [ebp - 0x20]
imul esi, edx
sar eax, 3
add eax, esi
add eax, dword [edi + 0x1c]
mov dword [ebp - 0x1c], eax
shr ecx, 3
mov eax, dword [ebp - 0x14]
mov dword [ebp + 8], ecx
cmp edx, eax
jge 0x42bf34
mov esi, dword [ebp - 0xc]
sub esi, ebx
sub eax, edx
mov edx, dword [ebp - 0x10]
mov dword [ebp - 0xc], esi
mov dword [ebp - 0x14], eax
test esi, esi
jle 0x42bf17
lea eax, [edx + 1]
xor esi, esi
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0xc]
mov dword [ebp - 8], esi
mov dword [ebp - 0x24], eax
xor edi, edi
xor ebx, ebx
xor edx, edx
mov dword [ebp - 0x30], edi
xor eax, eax
cmp ecx, 2
jb 0x42be18
dec ecx
xor esi, esi
mov dword [ebp - 0x2c], ecx
mov edi, eax
mov ecx, dword [ebp - 8]
add ecx, dword [ebp - 0x28]
mov dword [ebp - 0x20], ecx
movzx edx, byte [ecx + eax - 1]
mov ecx, esi
shl edx, cl
mov ecx, dword [ebp - 0x20]
add ebx, edx
movzx edx, byte [ecx + eax]
lea ecx, [esi + 8]
shl edx, cl
add eax, 2
mov ecx, dword [ebp - 0x20]
add edi, edx
add esi, 0x10
cmp eax, dword [ebp - 0x2c]
jb 0x42bde2
mov ecx, dword [ebp + 8]
mov esi, dword [ebp - 8]
mov dword [ebp - 0x18], edi
mov edi, dword [ebp - 0x30]
mov edx, dword [ebp - 0x18]
cmp eax, ecx
jae 0x42be2f
lea ecx, [esi + eax]
mov esi, dword [ebp - 0x10]
movzx edi, byte [ecx + esi]
lea ecx, [eax*8]
shl edi, cl
lea eax, [edx + ebx]
mov ebx, dword [ebp - 4]
add edi, eax
mov esi, edi
mov edx, edi
movzx ecx, byte [ebx + 0x3b]
movzx eax, word [ebx + 0x36]
shr esi, cl
movzx ecx, byte [ebx + 0x3a]
and esi, eax
movzx eax, word [ebx + 0x34]
shr edx, cl
movzx ecx, byte [ebx + 0x3c]
and edx, eax
shr edi, cl
movzx ecx, word [ebx + 0x38]
imul eax, edx, 0xb
and edi, ecx
shl esi, 4
lea ecx, [edi + edi*4]
add eax, esi
add eax, ecx
cdq
and edx, 0x1f
add eax, edx
sar eax, 5
cmp eax, 0x20
jg 0x42be81
mov edi, 0x101010
jmp 0x42bed5
cmp eax, 0x40
jg 0x42be8d
mov edi, 0x303030
jmp 0x42bed5
cmp eax, 0x60
jg 0x42be99
mov edi, 0x505050
jmp 0x42bed5
cmp eax, 0x80
jg 0x42bea7
mov edi, 0x707070
jmp 0x42bed5
cmp eax, 0xa0
jg 0x42beb5
mov edi, 0x909090
jmp 0x42bed5
cmp eax, 0xc0
jg 0x42bec3
mov edi, 0xb0b0b0
jmp 0x42bed5
cmp eax, 0xe0
mov edi, 0xf0f0f0
mov eax, 0xd0d0d0
cmovle edi, eax
mov ebx, dword [ebp + 8]
xor esi, esi
test ebx, ebx
je 0x42befa
xor ecx, ecx
mov eax, dword [ebp - 8]
mov edx, edi
mov ebx, dword [ebp - 0x1c]
add eax, esi
shr edx, cl
inc esi
add ecx, 8
mov byte [eax + ebx], dl
mov ebx, dword [ebp + 8]
cmp esi, ebx
jb 0x42bee0
mov esi, dword [ebp - 8]
mov ecx, dword [ebp + 8]
add esi, ebx
dec dword [ebp - 0x24]
mov dword [ebp - 8], esi
jne 0x42bdc1
mov edi, dword [ebp - 4]
mov edx, dword [ebp - 0x10]
mov esi, dword [ebp - 0xc]
mov ecx, dword [edi + 4]
mov eax, dword [edi + 0x18]
add dword [ebp - 0x1c], ecx
imul eax, ecx
mov ecx, dword [ebp + 8]
add edx, eax
dec dword [ebp - 0x14]
mov dword [ebp - 0x10], edx
jne 0x42bda8
mov al, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
pop edi
pop esi
xor al, al
pop ebx
mov esp, ebp
pop ebp
ret 4