Function at 0x42a1c0
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push ebp
push edi
push esi
push ebx
mov ebx, eax
sub esp, 0x13c
mov eax, dword [esp + 0x150]
mov dword [esp + 0x18], edx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x30], eax
cmp ebx, edx
jae 0x42a2c6
mov ebp, 1
lea esi, [esi]
lea eax, [ebx + 1]
mov dword [esp + 0x14], eax
movzx eax, byte [ebx]
lea ecx, [eax - 3]
mov edx, eax
cmp cl, 0xee
ja case.0x42a20b.1
movzx ecx, cl
jmp dword [ecx*4 + 0x4ca8cc]
mov esi, dword [esp + 0x14]
xor edi, edi
xor ecx, ecx
movzx ebx, byte [esi]
add esi, 1
mov edx, ebx
and edx, 0x7f
shl edx, cl
add ecx, 7
or edi, edx
test bl, bl
js 0x42a220
mov dword [esp + 0x14], esi
cmp ecx, 0x1f
ja 0x42a24f
and ebx, 0x40
je 0x42a24f
mov edx, 1
shl edx, cl
neg edx
or edi, edx
sub eax, 0x70
cmp eax, 0x11
jg 0x4baa0e
mov ebx, dword [esp + 0x1c]
mov esi, dword [ebx + eax*4]
test byte [ebx + 0x63], 0x40
je 0x42a26f
cmp byte [ebx + eax + 0x6c], 0
jne 0x42a27e
cmp byte [eax + 0xa515d4], 4
jne 0x4baa0e
mov esi, dword [esi]
add esi, edi
mov ebx, dword [esp + 0x14]
mov edi, ebp
jmp 0x42a2a0
mov esi, dword [ebx + 1]
mov edi, ebp
add ebx, 5
lea esi, [esi]
nop
cmp edi, 0x3f
jg 0x4baa0e
mov dword [esp + edi*4 + 0x30], esi
lea ebp, [edi + 1]
cmp dword [esp + 0x18], ebx
ja 0x42a1f0
test ebp, ebp
je 0x4baa0e
mov eax, dword [esp + ebp*4 + 0x2c]
add esp, 0x13c
pop ebx
pop esi
pop edi
pop ebp
ret
mov esi, dword [ebx + 1]
mov edi, ebp
add ebx, 9
jmp 0x42a2a0
sub eax, 0x50
cmp eax, 0x11
jg 0x4baa0e
mov edi, dword [esp + 0x1c]
mov esi, dword [edi + eax*4]
test byte [edi + 0x63], 0x40
je 0x42a300
cmp byte [edi + eax + 0x6c], 0
jne 0x42a30f
cmp byte [eax + 0xa515d4], 4
jne 0x4baa0e
mov esi, dword [esi]
mov ebx, dword [esp + 0x14]
mov edi, ebp
jmp 0x42a2a0
mov ebx, dword [esp + 0x14]
lea esi, [eax - 0x30]
mov edi, ebp
jmp 0x42a2a0
cmp ebp, 1
jle 0x4baa0e
lea edi, [ebp - 2]
sub edx, 0x1a
mov ecx, dword [esp + ebp*4 + 0x2c]
mov esi, dword [esp + edi*4 + 0x30]
cmp dl, 0x14
ja case.0x42a20b.1
movzx edx, dl
jmp dword [edx*4 + 0x4cac88]
test ebp, ebp
je 0x4baa0e
lea edi, [ebp - 1]
mov esi, dword [esp + edi*4 + 0x30]
cmp al, 0x23
ja 0x42a511
sub edx, 6
cmp dl, 0x1d
ja case.0x42a20b.1
movzx edx, dl
jmp dword [edx*4 + 0x4cacdc]
xor eax, eax
xor ecx, ecx
add dword [esp + 0x14], 1
mov ebx, dword [esp + 0x14]
movzx ebx, byte [ebx - 1]
mov edx, ebx
and edx, 0x7f
shl edx, cl
add ecx, 7
or eax, edx
test bl, bl
js 0x42a391
mov ebx, dword [esp + 0x14]
add esi, eax
jmp 0x42a2a0
movzx esi, byte [ebx + 1]
mov edx, dword [esp + 0x1c]
mov edi, ebp
mov eax, esi
call fcn.00429110
lea ecx, [ebx + 2]
mov edx, eax
lea eax, [esp + 0x2c]
mov dword [esp], eax
mov eax, esi
call fcn.00428fd0
mov esi, dword [esp + 0x2c]
mov ebx, eax
jmp 0x42a2a0
cmp ebp, 2
jle 0x4baa0e
lea ecx, [ebp - 1]
lea edx, [ebp - 2]
lea eax, [ebp - 3]
mov ebx, dword [esp + ecx*4 + 0x30]
mov edi, dword [esp + edx*4 + 0x30]
mov esi, dword [esp + eax*4 + 0x30]
mov dword [esp + ecx*4 + 0x30], edi
mov dword [esp + edx*4 + 0x30], esi
mov dword [esp + eax*4 + 0x30], ebx
mov ebx, dword [esp + 0x14]
jmp 0x42a2b0
cmp ebp, 1
jle 0x4baa0e
lea edx, [ebp - 1]
lea eax, [ebp - 2]
mov ebx, dword [esp + eax*4 + 0x30]
mov ecx, dword [esp + edx*4 + 0x30]
mov dword [esp + edx*4 + 0x30], ebx
mov ebx, dword [esp + 0x14]
mov dword [esp + eax*4 + 0x30], ecx
jmp 0x42a2b0
movzx ecx, byte [ebx + 1]
lea eax, [ebp - 1]
lea edx, [ebx + 2]
cmp ecx, eax
jge 0x4baa0e
sub eax, ecx
mov edi, ebp
mov ebx, edx
mov esi, dword [esp + eax*4 + 0x30]
jmp 0x42a2a0
cmp ebp, 1
jle 0x4baa0e
mov esi, dword [esp + ebp*4 + 0x28]
mov ebx, dword [esp + 0x14]
mov edi, ebp
jmp 0x42a2a0
movsx esi, byte [ebx + 1]
mov edi, ebp
add ebx, 2
jmp 0x42a2a0
movzx esi, byte [ebx + 1]
mov edi, ebp
add ebx, 2
jmp 0x42a2a0
movsx eax, word [ebx + 1]
lea ebx, [ebx + eax + 3]
jmp 0x42a2b0
test ebp, ebp
je 0x4baa0e
sub ebp, 1
lea eax, [ebx + 3]
mov edx, dword [esp + ebp*4 + 0x30]
test edx, edx
je 0x42a540
movsx ebx, word [ebx + 1]
add ebx, eax
jmp 0x42a2b0
test ebp, ebp
je 0x4baa0e
mov ebx, dword [esp + 0x14]
sub ebp, 1
jmp 0x42a2b0
test ebp, ebp
je 0x4baa0e
mov esi, dword [esp + ebp*4 + 0x2c]
mov ebx, dword [esp + 0x14]
mov edi, ebp
jmp 0x42a2a0
movsx esi, word [ebx + 1]
mov edi, ebp
add ebx, 3
jmp 0x42a2a0
movzx esi, word [ebx + 1]
mov edi, ebp
add ebx, 3
jmp 0x42a2a0
cmp al, 0x94
jne 0x42a7e6
movzx eax, byte [ebx + 1]
lea edx, [ebx + 2]
cmp al, 4
je 0x42a7c6
ja 0x42a7dd
cmp al, 1
jne 0x42a7cf
movzx esi, byte [esi]
mov ebx, edx
jmp 0x42a2a0
mov ebx, eax
jmp 0x42a2b0
mov ebx, dword [esp + 0x14]
not esi
jmp 0x42a2a0
mov esi, dword [esi]
mov ebx, dword [esp + 0x14]
jmp 0x42a2a0
mov eax, esi
mov ebx, dword [esp + 0x14]
sar eax, 0x1f
xor esi, eax
sub esi, eax
jmp 0x42a2a0
mov ebx, dword [esp + 0x14]
neg esi
jmp 0x42a2a0
mov ebx, dword [esp + 0x14]
xor edi, edi
xor ecx, ecx
lea esi, [esi]
movzx edx, byte [ebx]
add ebx, 1
mov eax, edx
and eax, 0x7f
shl eax, cl
add ecx, 7
or edi, eax
test dl, dl
js 0x42a588
xor esi, esi
xor ecx, ecx
lea esi, [esi]
movzx eax, byte [ebx]
add ebx, 1
mov edx, eax
and edx, 0x7f
shl edx, cl
add ecx, 7
or esi, edx
test al, al
js 0x42a5a8
cmp ecx, 0x1f
ja 0x42a5d2
test al, 0x40
je 0x42a5d2
mov eax, 1
shl eax, cl
neg eax
or esi, eax
cmp edi, 0x11
jg 0x4baa0e
mov ecx, dword [esp + 0x1c]
mov eax, dword [ecx + edi*4]
test byte [ecx + 0x63], 0x40
je 0x42a5ef
cmp byte [ecx + edi + 0x6c], 0
jne 0x42a5fe
cmp byte [edi + 0xa515d4], 4
jne 0x4baa0e
mov eax, dword [eax]
add esi, eax
mov edi, ebp
jmp 0x42a2a0
mov ebx, dword [esp + 0x14]
xor esi, esi
xor ecx, ecx
nop
movzx edx, byte [ebx]
add ebx, 1
mov eax, edx
and eax, 0x7f
shl eax, cl
add ecx, 7
or esi, eax
test dl, dl
js 0x42a610
mov edi, ebp
cmp ecx, 0x1f
ja 0x42a2a0
and edx, 0x40
je 0x42a2a0
mov eax, 1
shl eax, cl
neg eax
or esi, eax
jmp 0x42a2a0
mov ebx, dword [esp + 0x14]
jmp 0x42a2b0
mov ebx, dword [esp + 0x14]
xor edi, edi
xor ecx, ecx
lea esi, [esi]
nop
movzx edx, byte [ebx]
add ebx, 1
mov eax, edx
and eax, 0x7f
shl eax, cl
add ecx, 7
or edi, eax
test dl, dl
js 0x42a660
cmp edi, 0x11
jg 0x4baa0e
mov eax, dword [esp + 0x1c]
mov esi, dword [eax + edi*4]
test byte [eax + 0x63], 0x40
je 0x42a693
cmp byte [eax + edi + 0x6c], 0
jne 0x42a6a2
cmp byte [edi + 0xa515d4], 4
jne 0x4baa0e
mov esi, dword [esi]
mov edi, ebp
jmp 0x42a2a0
mov ebx, dword [esp + 0x14]
xor esi, esi
xor ecx, ecx
lea esi, [esi]
movzx edx, byte [ebx]
add ebx, 1
mov eax, edx
and eax, 0x7f
shl eax, cl
add ecx, 7
or esi, eax
test dl, dl
js 0x42a6b8
mov edi, ebp
jmp 0x42a2a0
mov ebx, dword [esp + 0x14]
shl esi, cl
jmp 0x42a2a0
mov ebx, dword [esp + 0x14]
shr esi, cl
jmp 0x42a2a0
mov ebx, dword [esp + 0x14]
sar esi, cl
jmp 0x42a2a0
mov ebx, dword [esp + 0x14]
xor esi, ecx
jmp 0x42a2a0
xor eax, eax
cmp esi, ecx
mov ebx, dword [esp + 0x14]
sete al
mov esi, eax
jmp 0x42a2a0
xor eax, eax
cmp esi, ecx
mov ebx, dword [esp + 0x14]
setge al
mov esi, eax
jmp 0x42a2a0
xor eax, eax
cmp esi, ecx
mov ebx, dword [esp + 0x14]
setg al
mov esi, eax
jmp 0x42a2a0
xor eax, eax
cmp esi, ecx
mov ebx, dword [esp + 0x14]
setle al
mov esi, eax
jmp 0x42a2a0
mov eax, esi
xor edx, edx
mov ebx, dword [esp + 0x14]
div ecx
mov esi, edx
jmp 0x42a2a0
imul esi, ecx
mov ebx, dword [esp + 0x14]
jmp 0x42a2a0
mov ebx, dword [esp + 0x14]
or esi, ecx
jmp 0x42a2a0
xor eax, eax
cmp esi, ecx
mov ebx, dword [esp + 0x14]
setne al
mov esi, eax
jmp 0x42a2a0
mov ebx, dword [esp + 0x14]
and esi, ecx
jmp 0x42a2a0
mov ebx, dword [esp + 0x14]
add esi, ecx
jmp 0x42a2a0
mov eax, esi
mov ebx, dword [esp + 0x14]
cdq
idiv ecx
mov esi, eax
jmp 0x42a2a0
mov ebx, dword [esp + 0x14]
sub esi, ecx
jmp 0x42a2a0
xor eax, eax
cmp esi, ecx
mov ebx, dword [esp + 0x14]
setl al
mov esi, eax
jmp 0x42a2a0
mov esi, dword [esi]
mov ebx, edx
jmp 0x42a2a0
cmp al, 2
jne 0x42a7eb
movzx esi, word [esi]
mov ebx, edx
jmp 0x42a2a0
cmp al, 8
je 0x42a7c6
jmp case.0x42a20b.1
jmp case.0x42a20b.1
jmp case.0x42a20b.1