Function at 0x408922
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10
movzx eax, word [ecx]
push ebx
movzx eax, byte [eax + 0x49e560]
push esi
push edi
mov edi, edx
cli
xor edx, edx
lea ecx, [ecx + eax*2]
inc edx
mov dword [ebp - 4], edi
call fcn.00408b14
mov esi, eax
cmp esi, edi
jae case.0x408a2d.119
push 0x77
pop ebx
movzx edi, word [esi]
push 0x10
xor edx, edx
pop ecx
cmp edi, 0x7d
je 0x4825ee
cmp edi, 0x75
je 0x482606
mov eax, 0x92
cmp di, ax
je 0x4827f2
inc eax
cmp di, ax
je 0x4827f2
mov eax, 0xa1
cmp di, ax
je 0x4827f2
add eax, 0xfffffff3
cmp di, ax
je 0x4827f2
lea eax, [ecx + 0x78]
cmp di, ax
je 0x4827e1
inc eax
cmp di, ax
je 0x4827e1
lea eax, [ecx + 0x7a]
cmp di, ax
je 0x4827e1
inc eax
cmp di, ax
je 0x4827e1
lea eax, [ecx + 0x73]
cmp di, ax
je 0x482784
inc eax
cmp di, ax
je 0x482784
lea eax, [ecx + 0x75]
cmp di, ax
inc ecx
jne 0x408a4a
cmp edi, eax
je 0x482784
inc eax
cmp di, ax
je 0x482784
lea eax, [ecx + 0x71]
cmp di, ax
je 0x482784
inc eax
cmp di, ax
je 0x482784
lea eax, [ecx + 0x77]
cmp di, ax
je 0x482784
lea eax, [edi - 6]
cmp eax, 0x95
ja case.0x408a2d.23
movzx eax, byte [eax + 0x408a7e]
jmp dword [eax*4 + 0x408a56]
add byte [ebx], dh
rcr byte [edi + 0x5e], 0x5b
xor eax, eax
pop edi
pop esi
pop ebx
leave
ret
lea ecx, [esi + 0x22]
movzx eax, word [ecx]
add eax, 0xffffff9e
cmp eax, 0xb
ja case.0x408a2d.6
jmp 0x408a33
jmp 0x4826da
mov word [edi + eax + 0x40c03300], ds
xor eax, eax
inc eax
jmp 0x408a36
jecxz 0x4089e1
dec ecx
add byte [edx + ecx*4], dh
inc eax
add byte [edx], ch
daa
dec eax
add byte [edi + 0x48], ch
add bh, dh
dec eax
mul dword [esi]
dec eax
add byte [edi], bl
dec eax
add byte [ebx], bh
mov al, byte [eax]
int3
sti
out 0x59, al
push es
dec esp
and al, 0xc
invalid
or byte [ebx - 0x3516fb3f], al
push eax
clc
dec dword [ebx + 0xc70c45]
adc al, 0
add byte [eax], al
jmp fcn.004825a7
movzx eax, word [esi + 2]
lea esi, [esi + eax*2]
cmp word [esi], bx
je 0x482602
jmp 0x482612
mov esi, eax
movzx edi, word [esi]
jmp 0x1472824
lea eax, [ebp - 0xc]
push eax
push edx
test ebx, ebx
or byte [ebx - 0x347403ab], cl
call fcn.00408936
add esp, 0xc
push 0x77
test eax, eax
jne 0x6482823
movzx eax, word [ebx + 2]
lea ebx, [ebx + eax*2]
pop eax
cmp word [ebx], ax
inc ebx
add cl, byte [ebp + 0x6658431c]
cmp dword [ebx], eax
jne 0x408a48
dec dword [ebx - 0x3414f3ab]
movzx eax, word [esi + 2]
lea esi, [esi + eax*2]
mov ecx, esi
jmp 0x408a52
mov edx, dword [ebp + 0xc]
jmp 0x4826ab
test dword [esi], esi
sub byte [eax], cl
cmp word [ecx + 2], dx
ja 0x408a48
jmp 0x6482824
push 0xf
pop edx
cmp ax, dx
jne 0x462824
add esi, 4
jmp 0x482824
add al, 0xe9
hlt
mov ax, word [esi + 4]
mov ecx, 0xfffc00
and ax, cx
mov ecx, 0xffd800
fdivr st(7)
add byte [esi + 0x3b], ah
ror dword [edi], 0x85
lodsb al, byte [esi]
add dh, bh
invalid
fdivr st(7)
add byte [esi + 0x3b], ah
ror dword [edi], 0x85
lodsb al, byte [esi]
add dh, bh
inc dword [ebx - 0x5b16fd3a]
add esi, 2
jmp 0x4e2824
cmp dword [ebp + 8], 0
je 0x482824
jmp 0x48275e
movzx eax, word [esi + 2]
lea esi, [esi + eax*2]
jmp 0x6482824
movzx eax, word [esi + 2]
test word [eax], cx
je 0x408a62
add esi, 2
jmp 0x4e2824
je 0x482824
jmp 0x48275e
mov ecx, 0xfffe87
cmp di, cx
jne 0x4827bb
lea eax, [esi + eax*2]
cmp word [eax], bx
jne 0x482610
mov edi, edx
test edi, edi
jne 0x4827dc
push edx
test ebx, ebx
or al, 0x8b
push ebp
cld
test ebx, ebx
or byte [ebx + 0x6164e8ce], cl
clc
inc dword [ebx - 0x3f7af33c]
je 0x4827da
inc edi
xor edx, edx
movzx eax, word [esi + 2]
lea esi, [esi + eax*2]
xor al, 0x46
cmp word [esi], bx
je 0x4827bd
test edi, edi
je 0x408a48
jmp 0x482612
invalid
movzx eax, word [esi + 2]
lea esi, [esi + eax*2]
cmp word [esi], bx
je case.0x408a2d.23
jmp 0x482612
movzx eax, di
xor edx, edx
movzx eax, byte [eax + 0x49e560]
inc edx
lea ecx, [esi + eax*2]
call 0xe7408b28
mov esi, eax
cmp esi, dword [ebp - 4]
jae 0x408a62
jmp 0x408966