Function at 0x419de0
Capabilities:
Encrypt data using rc4 prga

Disassembly:
jl 0x419e02
mov eax, dword [ebx + ecx*4 + 0x3c]
mov edi, dword [esi + 4]
add al, 1
add bh, bh
adc byte [edi], cl
scasd eax, dword es:[edi]
jl 0x419e16
and al, 3
std
dec eax
test ecx, ecx
je 0x419ed3
lea ebx, [eax + 1]
mov edi, dword [ebx]
pop esp
inc eax
cmp ebx, dword [eax + eax*2 - 0x75]
push ss
mov edx, dword [esi]
xor ecx, ecx
sar edx, 0x10
add eax, 8
mov cl, byte [edx + edi]
and al, 0x8b
dec esp
sub byte [ebx + 0x4c898a0c], cl
mov edi, dword [esi]
and al, 0x8b
mov ecx, dword [edx + ecx*4]
mov dword [ebx + ecx*4 + 0x3c], ecx
and al, 0x8b
dec esp
movzx bp, dh
movzx dx, dl
add word [eax - 4], dx
xor dx, dx
mov dl, ch
mov word [eax - 2], bp
movzx cx, byte [ebx - 0x5af76b4]
add byte [eax], al
add byte [eax], bl
mov word [eax - 8], cx
mov ebp, dword [esi]
add ebp, edx
dec ebx
mov dword [esi], ebp
jne 0x419e05
test byte [ecx + eax], al
add byte [eax], al
mov ecx, dword [esp + 0x3c]
mov eax, ecx
dec ecx
shr dword [edx + 0x74], 0x73
mov eax, edi
inc esp
push esp
and al, 0x7c
mov ecx, dword [esp + ecx*2 + 0x71]
add dword [eax + esi*2], esp
add eax, dword [eax - 0x75]
push eax
call 0xfb02b74e
adc byte [edi], cl
scasd eax, dword es:[edi]
add al, byte [eax]
and al, 0x3b
invalid
test byte [ecx + eax], al
add byte [eax], al
test ebx, ebx
jne 0x419ee6
cmp edx, dword [ebx + ecx*4 - 0xa]
ror dword [ebx - 0x7aa9dbac], 0xc0
push edi
jne 0x83819f76
rcl byte [edi + 0xf], 0x85
mov byte [eax], al
inc eax
and dword [esp + edx*2], 0x24
cmp byte [ebx], bh
invalid
and al, 0x54
and al, 0x38
cmp eax, esi
jl 0x419f16
mov eax, dword [ebx + ecx*4 + 0x3c]
mov esi, dword [edx + 4]
add al, 1
add dh, bh
adc byte [edi], cl
scasd eax, dword es:[edi]
je 0x419f2a
and al, 3
cmc
dec eax
test ecx, ecx
je 0x24b5a012
add byte [edi + edx + 0x18], bh
inc eax
add ecx, 0x40
lea ebx, [eax + 1]
mov ebp, dword [edx]
xor eax, eax
sar ebp, 0x10
add ecx, 8
mov ax, word [esi + ebp*2]
outsb dx, byte [esi]
mov word [ecx - 2], 0x4cff
add al, ch
shr ebp, 0xa
and ebp, 0x1f
mov bp, word [ebp*4 - 0x7c378f08]
pop ax
imul edi, esp, 0xedc1e800
add eax, 0x831fe583
loopne 0x419f6f
mov bp, word [ebp*4 - 0x7c378f08]
pop ax
imul edi, edx, 0x85048b66
clc
jo 0x419f2b
and dword [esi - 0x77], 0x41
clc
mov ebp, dword [edx]
add ebp, edi
dec ebx
mov dword [edx], ebp
jne 0x419f1d
test byte [ecx + eax], al
add byte [eax], al
mov esi, dword [ebp + 0xa]
cmp al, 0x8b
enter 0x4c48, 1
je 0x8381a012
and al, 0x70
add edi, dword [eax]
cmp esi, dword [esp + 0x18]
add byte [eax], al
inc eax
and al, 0
add byte [eax], al
inc eax
inc eax
mov esp, eax
add al, 0x3c
mov eax, dword [ecx + 4]
mov ebx, dword [ecx]
sar eax, 0x10
imul eax, edi
cmp eax, esi
jl 0x419fc9
push esp
ret 0xc108
popfd
clc
jo 0x419f95
and dword [esi - 0x77], 0x5a
cld
mov ebx, eax
shr ebx, 5
and ebx, 0x1f
and eax, 0x1f
mov bx, word [ebx*4 - 0x7c378f08]
mov word [edx - 6], bx
mov ax, word [eax*4 - 0x7c378f08]
mov word [edx + 0x44], ax
and al, 0x4c
add dword [esp + edx*2], ebx
pop ecx
add al, 0x8b
sub dword [ebx], eax
fmul dword [ebx + 0x33c0a75]
out dx, al
dec eax
mov dword [ecx], ebp
mov dword [ecx + 4], ebx
mov esp, eax
add al, 0x3c
jne 0x419f9a
test byte [ecx + eax], al
add byte [eax], al
test ebx, ebx
jne 0x41a025
cmp edx, dword [esp - 0x75]
test cl, 0x8b
push esp
and al, 0x56
test eax, eax
push edi
jne 0x41a09d
mov esi, dword [esp + 0x38]
cmp edx, dword [esp + edi*2 + 0x20]
mov eax, dword [ebx + ecx*4 + 0x3c]
mov edi, dword [esi + 4]
add bh, bh
adc byte [edi], cl
scasd eax, dword es:[edi]
jl 0x41a064
add al, 0
call dword [eax]
imul edi, dword [esp + 0x24]
add edi, edx
and al, 3
cli
shr dword [edx + 0xf], 0x84
enter 0x4000, 0xffffffffffffff83
and al, 0x54
and al, 0x18
inc eax
add ecx, 0x40
lea ebp, [eax]
add al, byte [esi]
add ecx, 8
sar eax, 0x5c
mov eax, dword [edi + eax*4]
mov ebx, eax
shr ebx, 0x18
movzx bx, bl
sbb byte [esi + 0xf], ah
mov dh, 0xdb
sub byte [ecx - 2], bl
mov ebx, eax
shr ebx, 0x10
movzx bx, bl
mov word [ecx - 4], bx
mov ebx, eax
shr ebx, 8
movzx bx, bl
movzx ax, al
and byte [edx + 0x59], ch
cli
mov word [ecx - 8], ax
mov ebx, dword [esi]
add ebx, edx
dec ebp
mov dword [esi], ebx
jne 0x41a055
test byte [ecx + eax], al
add byte [eax], al
mov ecx, dword [esp + 0x3c]
test ecx, ecx
je 0x41a113
mov eax, edi
inc esp
push esp
and al, 0xc6
jl 0x41a038
push esp
and al, 0x10
inc eax
lea edi, [ecx]
mov ecx, ebp
call 0xfa02fd92
adc byte [edi], cl
scasd eax, dword es:[edi]
mov dword [esp + 0x24], eax
pop esp
and al, 0x20
add esi, 8
sar edx, 0x10
add ebx, ecx
mov ecx, dword [ebx + edx*4]
mov edx, ecx
shr edx, 0x18
movzx dx, dl
mov word [esi - 2], dx
mov edx, ecx
shr edx, 0x10
movzx dx, dl
mov word [esi - 4], dx
mov edx, ecx
shr edx, 8
movzx dx, dl
movzx cx, byte [ebx - 0x5a976b4]
add byte [eax], al
add byte [esi], bl
sub byte [esi - 8], cl
mov ecx, dword [eax]
test byte [eax + 4], bl
add ecx, ebp
add ebx, edx
dec edi
mov dword [eax], ecx
mov dword [eax + 4], ebx
jne 0x41a0b3
test byte [ecx + eax], al
add byte [eax], al
test ebx, ebx
jne 0x41a126
cmp edx, dword [ecx + eax*4 - 0x14]
xor byte [eax], cl
je 0x41a148
test dword [eax], eax
mov ebp, dword [esp - 0x7a93f7c0]
inc esp
and al, 0x54
mov dword [eax + 8], 0xcd8b856c
shl ecx, 0x10
mov eax, dword [esi]
mov dword [ebx + ecx*4 + 0xc], ecx
mov dword [ebp + edx*4 + 0x18], edi
push edi
mov edx, dword [eax + 0xa75db20]
lea eax, [ebx + ecx*4 + 0x10]
shl edx, 0x8b
add dword [eax], eax
add byte [ecx + 0x74], bl
and al, 0x8b
adc byte [eax - 0x73], dl
push esi
push eax
push ecx
push edx
call fcn.0041c06e
inc eax
sahf
mov al, byte [0x24834000]
mov esi, 0x247404a4
mov al, byte [esi + 0x30]
add al, byte [eax]
or al, 0xc1
jecxz 0x41a18a
invalid
shl edi, 0x10
test al, 1
add eax, 0x896a2444
jl 0x41a1aa
and byte [edi], cl
test byte [ecx], bl
add al, byte [eax]
add cl, al
inc esi
adc al, 0x8b
inc esp
mov ebp, dword [ebx + ecx*4]
dec eax
or al, 0x8b
push eax
adc byte [edx + 0x4c893246], cl
mov esi, dword [esp + eax*4]
ror byte [ecx + 0x74304489], 0x10
mov ecx, dword [ebx - 0x3574cbac]
dec ecx
dec eax
mov dword [esp + eax*2 + 0x30], ecx
pop eax
mov eax, dword [esp + esi - 0x75]
xchg esp, eax
and al, 0x44
or byte [ebp + eax*4 - 0x75], ch
test byte [esp + ecx*2], ah
or byte [ebp + eax*4 + 0x2b], ch
lds ecx, [ebx - 0x74a374b4]
mov edx, 0xf54008c
mov ebx, dword [edx + 0xfc80090]
imul edi, eax
imul ebx, eax
mov esp, dword [eax + edx]
mov al, byte [ebx]
stc
add ebx, esi
inc ebp
pop eax
invalid
mov edx, dword [esp + esi - 0x75]
retf 0x4849