Function at 0x41c642
Capabilities:
Encrypt data using rc4 prga

Disassembly:
invalid
mov cl, 0x89
push ebp
lodsb al, byte [esi]
inc ebp
cld
push ebx
push eax
add byte [edi], cl
test byte [eax], bl
aas
add al, 0
mov ecx, dword [ebp - 8]
lea eax, [ebp - 0x20]
push 0xffffffffffffffff
push eax
or byte [ebp - 4], al
inc esi
push eax
push ebx
mov al, byte [0x22e8fc75]
and byte [eax], al
mov byte [0x880fd7e8], al
rol dword [edx], 0xca
add ecx, dword [ebx - 0x3483f38b]
loopne 0x40cc76
invalid
inc edi
loopne 0x40cbdd
into
push eax
call fcn.004100ee
mov eax, dword [ebx + 4]
mov ecx, dword [ebp - 4]
inc edx
add al, 0x88
inc ebp
cld
push ebx
push eax
add byte [edi], cl
test dword [ebp + 0x42], esi
add al, 0
cmp dword [eax], 0xf
jne 0x450ee3
test dword [edx + eax*2 + 4], ebp
add bh, bh
jne 0x40cc72
push dword [ebp - 8]
lea eax, [ebp - 0x20]
push 0xffffffffffffffff
push eax
inc ecx
or byte [ebp - 4], al
push eax
mov dword [ebp - 4], ecx
inc edx
into
push ebx
call 0xa240ec4e
call 0x5dc8dc6c
add byte [eax], al
add byte [ebp + 0xee8b04d], cl
dec dword [ecx - 0x1fb872bb]
push eax
lea ecx, [ebp - 0x50]
call fcn.004100ee
mov ecx, dword [ebx + 4]
inc edx
inc ebp
cld
inc edx
add al, 0x81
inc ebp
cld
push ebx
push eax
add byte [edi], cl
test bl, dh
aas
add al, 0
lea eax, [eax]
shr al, 0xe6
add byte [eax], al
add byte [esi + 0xe50001], bh
mov dword [ebp - 0x34], esi
mov dword [ebp - 0x40], esi
call dword [ebp + 0xc]
mov ecx, dword [edx + 0xc]
cmp ecx, 1
jne 0x450ced
mov al, cl
add al, 0x14
dec ebp
test byte [eax], cl
inc eax
add al, 0
mov al, 1
add al, 0x14
dec ebp
test byte [esi], cl
inc eax
add al, 0
mov al, 1
add al, 0x14
dec ebp
test byte [eax + eax*2], dl
add al, 0
mov ecx, dword [ebp - 0x44]
cmp ecx, 1
sete al
add al, 0x14
dec ebp
test dword [esp + esi*8], edx
test eax, eax
cmp ecx, 2
je 0x450d36
add al, 0x14
dec ebp
test dword [ebx], eax
add al, byte [eax]
mov byte [0x854d1404], al
hlt
out dx, eax
dec esp
add byte [ebp], ch
add dword [eax], 0xffffffc7
add eax, 0x4cefc8
mov eax, dword [0xc783006d]
add eax, 0x4cefcc
add ebp, dword [ebp]
and dword [esi - 0x39], 5
shr bh, 1
dec esp
add byte [ebp], ch
push 0x10ec56ff
movzx eax, word [ecx]
push ebx
push esi
push edi
movzx eax, byte [eax + 0x184c2140]
mov edi, edx
xor edx, edx
mov dword [ebp - 4], edi
inc edx
lea ecx, [ecx + eax*2]
call 0xa241c943
mov esi, eax
cmp esi, edi
jae 0xaf679a
push 0x77
pop ebx
movzx edi, word [esi]
mov edx, esi
push 0x10
pop ecx
cmp edi, 0x7d
je 0x45ba57
cmp edi, 0x75
je 0x45ba6d
mov eax, 0x830092
cmp di, ax
je 0x45bc62
inc eax
cmp di, ax
je 0x45bc62
mov eax, 0x8300a1
cmp di, ax
je 0x45bc62
add eax, 0xfffffff3
cmp di, ax
je 0x45bc62
lea eax, [ecx + 0x78]
cmp di, ax
je 0x45bc4e
inc eax
cmp di, ax
je 0x45bc4e
lea eax, [ecx + 0x7a]
cmp di, ax
je 0x45bc4e
inc eax
cmp di, ax
je 0x45bc4e
lea eax, [ecx + 0x73]
cmp di, ax
je 0x45bbe7
inc eax
cmp di, ax
je 0x45bbe7
lea eax, [ecx + 0x75]
cmp di, ax
je 0x45bbe7
inc eax
cmp di, ax
je 0x45bbe7
lea eax, [ecx + 0x71]
cmp di, ax
je 0x45bbe7
inc eax
cmp di, ax
je 0x45bbe7
lea eax, [ecx + 0x77]
cmp di, ax
je 0x4545bbe7
push esi
rol byte [0xff83b66], 0x84
movsb byte es:[edi], byte [esi]
hlt
add byte [ebp - 0x72af1fbb], cl
dec ebp
shr al, 0x14
mov al, byte [0x758bfffb]
int3
or ch, al
and dword [eax - 0x2b16fffd], 0xffffffbf
sti
add al, ch
repne cmpsb byte [esi], byte es:[edi]
sti
invalid
fdiv dword [edx + 0x4c]
add byte [edx], ch
push 0x405500a9
push 0xa0acc08
or cl, byte [edx]
call 0x89d25f9a
jmp 0xd12db580
push 2
pop eax
mov word [edx], ax
add edx, eax
mov word [edx], si
add edx, eax
mov word [edx], di
jmp 0x45ba79
inc eax
mov word [edx], ax
push 2
pop eax
add edx, eax
mov word [edx], si
add edx, eax
mov dword [ebx], edx
jmp 0x1441c63a
cmp edi, dword [esi + 0x66]
cmp eax, ecx
jne 0x45befa
add esi, 2
jmp 0x45bfae
test edi, edi
jne 0x45bc5d
push dword [ebp + 0x10]
mov edx, dword [ebp - 4]
and al, 0x18
jmp 0x416310
invalid
movzx eax, word [esi + 2]
lea esi, [esi + eax*2]
xor al, 0x46
movzx eax, word [esi]
cmp ax, bx
je 0x45bc3e
mov ecx, edi
call 0xfc50d305
adc ecx, dword [edi]
mov bh, 0xf8
jmp 0x45bcae
movzx eax, di
xor edx, edx
inc edx
movzx eax, byte [eax + 0x4c2140]
lea ecx, [esi + eax*2]
call fcn.0040c96e
jmp 0x40cc06
ror byte [edi], 1
mov bh, 0xf1
movzx esi, cx
mov dword [ebp - 0x1c], esi
mov esi, dword [ebp - 0xc]
cmp cx, word [ebp - 4]
ja 0x45bfeb
cmp eax, 0xccccccb
jg 0xe8b52a98
mov edi, dword [ebp - 0x10]
imul ecx, eax, 0xa
mov eax, dword [ebp - 0x1c]
movzx edx, word [eax - 0x7d]
rcl al, 3
ror dword [ebp + 0x4d89024f], 0xf0
movzx ecx, word [ecx]
mov dword [ebp - 0x14], eax
cmp cx, dx
jae 0x45bfaf
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 0x14]
cmp ecx, 8
jl 0x74cec1ec
cmp ecx, dword [ebp + 0xc]
jle 0x7e80c1ec
mov edi, dword [ebp - 0x18]
movzx esi, word [edi]
cmp esi, 0x38
jae 0x40cc50
mov edi, dword [ebp - 0x24]
sub esi, edx
inc eax
mov dword [ebp - 8], eax
movzx eax, word [edi + 2]
mov edx, eax
add eax, 0xffffffd0
cmp ax, 7
ja 0x40cc50
mov eax, edx
add edi, 2
add eax, 0xffffffd0
lea esi, [eax + ebp*8]
mov eax, dword [ebp - 8]
cmp eax, 2
jl 0x45c017
jmp 0x1441cc50