Function at 0x4180ff
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x11c
mov dword [ebp - 0x11c], edx
mov dword [ebp - 0x118], ecx
cmp dword [ebp - 0x11c], 0
je 0x418123
cmp dword [ebp + 8], 1
jg 0x41812a
xor al, al
jmp 0x4182f5
mov byte [ebp - 0xe], 0
cmp dword [ebp + 0x14], 0
jne 0x41813f
lea eax, [ebp - 0x110]
mov dword [ebp - 4], eax
jmp 0x418145
mov eax, dword [ebp + 0x14]
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
movzx eax, byte [eax + 0x102]
test eax, eax
jne 0x418211
and dword [ebp - 8], 0
jmp 0x418164
mov eax, dword [ebp - 8]
inc eax
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0x100
jge 0x41817b
mov eax, dword [ebp - 4]
add eax, dword [ebp - 8]
mov cl, byte [ebp - 8]
mov byte [eax + 2], cl
jmp 0x41815d
mov eax, dword [ebp - 4]
mov byte [eax], 0
mov eax, dword [ebp - 4]
mov byte [eax + 1], 0
and dword [ebp - 8], 0
jmp 0x418195
mov eax, dword [ebp - 8]
inc eax
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0x100
jge 0x418207
mov eax, dword [ebp - 4]
movzx eax, byte [eax]
mov ecx, dword [ebp + 0xc]
movzx eax, byte [ecx + eax]
mov ecx, dword [ebp - 4]
add ecx, dword [ebp - 8]
movzx ecx, byte [ecx + 2]
add eax, ecx
mov ecx, dword [ebp - 4]
movzx ecx, byte [ecx + 1]
add eax, ecx
and eax, 0x800000ff
jns 0x4181ce
dec eax
or eax, 0xffffff00
inc eax
mov ecx, dword [ebp - 4]
mov byte [ecx + 1], al
mov eax, dword [ebp - 4]
movzx eax, byte [eax + 1]
mov ecx, dword [ebp - 4]
lea eax, [ecx + eax + 2]
push eax
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 4]
lea eax, [ecx + eax + 2]
push eax
call fcn.0040101d
pop ecx
pop ecx
mov eax, dword [ebp - 4]
movzx eax, byte [eax]
inc eax
cdq
idiv dword [ebp + 0x10]
mov eax, dword [ebp - 4]
mov byte [eax], dl
jmp 0x41818e
mov eax, dword [ebp - 4]
mov byte [eax + 0x102], 1
and dword [ebp - 8], 0
jmp 0x41821e
mov eax, dword [ebp - 8]
inc eax
mov dword [ebp - 8], eax
mov eax, dword [ebp - 8]
cmp eax, dword [ebp + 8]
jge 0x4182f3
mov eax, dword [ebp - 4]
movzx eax, byte [eax]
inc eax
and eax, 0x800000ff
jns 0x41823f
dec eax
or eax, 0xffffff00
inc eax
mov ecx, dword [ebp - 4]
mov byte [ecx], al
mov eax, dword [ebp - 4]
movzx eax, byte [eax]
mov ecx, dword [ebp - 4]
movzx eax, byte [ecx + eax + 2]
mov ecx, dword [ebp - 4]
movzx ecx, byte [ecx + 1]
add eax, ecx
and eax, 0x800000ff
jns 0x418269
dec eax
or eax, 0xffffff00
inc eax
mov ecx, dword [ebp - 4]
mov byte [ecx + 1], al
mov eax, dword [ebp - 4]
movzx eax, byte [eax + 1]
mov ecx, dword [ebp - 4]
lea eax, [ecx + eax + 2]
push eax
mov eax, dword [ebp - 4]
movzx eax, byte [eax]
mov ecx, dword [ebp - 4]
lea eax, [ecx + eax + 2]
push eax
call fcn.0040101d
pop ecx
pop ecx
mov eax, dword [ebp - 4]
movzx eax, byte [eax]
mov ecx, dword [ebp - 4]
movzx eax, byte [ecx + eax + 2]
mov ecx, dword [ebp - 4]
movzx ecx, byte [ecx + 1]
mov edx, dword [ebp - 4]
movzx ecx, byte [edx + ecx + 2]
add eax, ecx
and eax, 0x800000ff
jns 0x4182c0
dec eax
or eax, 0xffffff00
inc eax
mov byte [ebp - 0x111], al
movzx eax, byte [ebp - 0x111]
mov ecx, dword [ebp - 4]
movzx eax, byte [ecx + eax + 2]
mov ecx, dword [ebp - 0x11c]
add ecx, dword [ebp - 8]
movzx ecx, byte [ecx]
xor ecx, eax
mov eax, dword [ebp - 0x11c]
add eax, dword [ebp - 8]
mov byte [eax], cl
jmp 0x418217
mov al, 1
leave
ret 0x10