Function at 0x418491
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10
movzx eax, word [ecx]
push ebx
push esi
push edi
movzx eax, byte [eax + 0x4a5750]
push edi
dec edx
add byte [ebx - 0x762dcc06], cl
jge 0x418497
inc edx
lea ecx, [ecx + eax*2]
call fcn.00418673
mov esi, eax
cmp esi, edi
jae case.0x41858c.119
push 0x77
pop ebx
movzx edi, word [esi]
xor edx, edx
push 0x10
pop ecx
cmp edi, 0x7d
je 0x454edb
add byte [ebx - 0x7bf08a01], al
sub dl, cl
add eax, dword [eax]
cmp edi, 0x75
je 0x454ef3
mov eax, 0x92
cmp di, ax
je 0x4550d9
inc eax
cmp di, ax
je 0x4550d9
mov eax, 0xa1
cmp di, ax
je 0x4550d9
add eax, 0xfffffff3
cmp di, ax
je 0x4550d9
lea eax, [ecx + 0x78]
cmp di, ax
je 0x4550c8
inc eax
cmp di, ax
je 0x4550c8
lea eax, [ecx + 0x7a]
cmp di, ax
je 0x4550c8
inc eax
cmp di, ax
je 0x4550c8
lea eax, [ecx + 0x73]
cmp di, ax
je 0x45506b
inc eax
cmp di, ax
je 0x45506b
lea eax, [ecx + 0x75]
cmp di, ax
je 0x45506b
inc eax
cmp di, ax
je 0x45506b
lea eax, [ecx + 0x71]
cmp di, ax
je 0x45506b
inc eax
cmp di, ax
je 0x45506b
lea eax, [ecx + 0x77]
cmp di, ax
je 0x45506b
lea eax, [edi - 6]
cmp eax, 0x95
ja case.0x41858c.23
movzx eax, byte [eax + 0x4185dd]
jmp dword [eax*4 + 0x4185b5]
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
lea ecx, [esi + 0x22]
movzx eax, word [ecx]
add eax, 0xffffff9e
cmp eax, 0xb
ja case.0x41858c.6
rcr byte [esi + 0x770bf883], 0xe9
jmp 0x454fc1
xor eax, eax
inc eax
jmp 0x418595
cld
dec dword [ebx + 0xc70845]
and eax, 0xe9830000
inc eax
xor eax, 0xb70ffffc
inc esi
add cl, byte [ebp + 0x39664634]
push ds
movzx eax, word [esi + 2]
lea esi, [esi + eax*2]
cmp word [esi], bx
cmp dword [esi], ebx
je 0x454eeb
jmp 0x454efb
mov esi, eax
movzx edi, word [esi]
jmp 0x455107
movzx eax, word [edx + 2]
lea edx, [edx + eax*2]
cmp word [edx], cx
je 0x454f56
cmp esi, ebx
jb 0x454f6e
cmp esi, edx
jbe 0x455104
mov ecx, dword [ebp + 0x10]
mov eax, ecx
test ecx, ecx
je 0x454f8a
cmp dword [eax + 4], ebx
je 0x454f82
mov eax, dword [eax]
push dword [ebp - 0x4a000a8b]
jne 0x455104
push dword [ebp + 0x17a850f]
add byte [eax], al
mov dword [ebp - 0x10], ecx
mov dword [ebp - 0xc], ebx
mov edx, dword [ebp - 4]
lea eax, [ebp - 0x10]
push eax
push dword [ebp + 0xc]
mov ecx, ebx
js 0x454f5a
dec ebx
mov ebp, ebp
xor al, 0xfc
call 0x6a5213b6
ja 0x454fa9
push dword [ebp + 0x155850f]
mov ch, 0xf
test dword [ebp + 1], edx
add dh, dh
movzx eax, word [ebx + 2]
inc ebx
add cl, byte [ebp + 0x6658431c]
cmp dword [ebx], eax
inc ebx
add cl, byte [ebp + 0x6658431c]
cmp dword [ebx], eax
je 0x454f90
jmp 0x4185a3
cld
dec dword [edi]
mov bh, 0x46
add cl, byte [ebp - 0x3174b9cc]
jmp case.0x41858c.119
add byte [esi + 0x39], ah
push ecx
add cl, byte [edi]
xchg dword [edx - 0x160003cb], edi
sbb dword [ecx], eax
add dh, dh
movzx eax, word [esi + 2]
cmp ax, cx
je 0x45500b
push 0xf
pop ecx
cmp ax, cx
jmp 0x455005
push 0xf
pop edx
cmp ax, dx
cmp eax, edx
cmp eax, edx
jne 0xc85107
add esi, 4
jmp 0xf6455107
add dh, dh
add dh, dh
movzx eax, word [esi + 4]
push 0x10
pop edx
cmp ax, dx
je 0x45500b
jmp 0x454fff
mov ax, word [esi + 4]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xd800
cmp ax, cx
cmp eax, ecx
cmp eax, ecx
jne 0xf6455107
add esi, 2
jmp 0xc85107
movsb byte es:[edi], byte [esi]
invalid
invalid
invalid
movsb byte es:[edi], byte [esi]
add byte [ebx + 0x87d8300], al
add byte [edi], cl
test byte [edx - 0x140a0000], bl
ror byte [edi], cl
mov bh, 0x46
add cl, byte [ebp - 0x7316b9cc]
add byte [eax], al
test byte [edi], 0xb7
inc esi
add ah, byte [esi - 1]
mov ch, 0xe8
test byte [edi], dh
xor eax, 0x87b9fffc
inc ebp
add al, 0x59
cmp di, cx
jne 0x45509e
add dh, dh
jmp 0x455041
lea eax, [esi + eax*2]
cmp word [eax], bx
jne 0x454ef9
mov edi, edx
test edi, edi
jne 0x4550bf
push dword [ebp + 0x10]
mov edx, dword [ebp - 4]
mov ecx, esi
push 0xc
push 0x8b4bbc78
fidiv dword [ebx]
cld
call 0x14550c9
add byte [ecx + eax + 0x47], dh
movzx eax, word [esi + 2]
lea esi, [esi + eax*2]
cmp word [esi], bx
push ds
je 0x4550a0
add edi, edi
je 0xe94185a3
jmp 0x454efb
movzx eax, word [esi + 2]
lea esi, [esi + eax*2]
cmp word [esi], bx
mov bh, 0x46
add cl, byte [ebp + 0x39664634]
push ds
je 0x4550d8
jmp 0x454efb
movzx eax, word [esi + 2]
lea esi, [esi + eax*2]
cmp word [esi], bx
je 0x4550f3
jmp 0x454efb
push 0x77
pop ebx
movzx eax, di
xor edx, edx
inc edx
movzx eax, byte [eax + 0x4a5750]
lea ecx, [esi + eax*2]
call fcn.00418683
mov esi, eax
cmp esi, dword [ebp - 4]
jae 0xe94185bf
jmp 0x4184c1