Function at 0x4527e0
Capabilities:
Encode data using xor
Encrypt data using rc4 ksa

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xb4
mov eax, dword [0x4f0100]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0xc]
push ebx
mov dword [ebp - 0xb4], eax
xor bl, bl
mov eax, dword [ebp + 0x10]
push esi
mov esi, ecx
mov dword [ebp - 0xb0], eax
xor eax, eax
mov byte [ebp - 0x8d], bl
mov word [ebp - 0x8c], ax
mov byte [ebp - 0x8a], al
mov al, byte [esi + 5]
mov bh, byte [esi + 2]
mov byte [ebp - 0x8f], al
mov al, byte [esi + 0xc]
mov byte [ebp - 0x8e], al
mov eax, dword [ebp + 0x18]
push edi
cmp byte [eax], bl
jne 0x452883
movzx ecx, byte [esi + 0xb]
mov eax, 0xaaaaaaab
mul ecx
xor cl, cl
mov eax, edx
shr eax, 1
mov dword [ebp - 0x98], eax
test al, al
je 0x4528bf
xor edi, edi
mov dword [ebp - 0x94], 0xf
mov eax, edi
xor edx, edx
div dword [ebp - 0x94]
inc edi
xor bl, byte [edx + esi]
ror bl, 3
xor bl, cl
inc cl
cmp cl, byte [ebp - 0x98]
jb 0x452864
jmp 0x4528b9
mov ch, byte [esi + 8]
xor cl, cl
shr ch, 2
test ch, ch
je 0x4528bf
xor edi, edi
mov dword [ebp - 0x94], 0xf
nop dword [eax + eax]
mov eax, edi
xor edx, edx
div dword [ebp - 0x94]
inc edi
xor bl, byte [edx + esi]
ror bl, 2
xor bl, cl
inc cl
cmp cl, ch
jb 0x4528a0
mov byte [ebp - 0x8d], bl
movzx ecx, byte [ebp - 0x8f]
movzx eax, bh
imul ecx, eax
movzx eax, byte [ebp - 0x8e]
movzx esi, bl
mov dword [ebp - 0xa0], esi
add ecx, esi
add eax, ecx
push eax
call fcn.0048bd1c
add esp, 4
call fcn.0048bcfb
mov ecx, eax
and ecx, 0x800000ff
jns 0x452900
dec ecx
or ecx, 0xffffff00
inc ecx
mov eax, esi
mov esi, 3
cdq
idiv esi
xor esi, esi
mov byte [ebp + edx - 0x8c], cl
call fcn.0048bcfb
movzx ebx, ax
call fcn.0048bcfb
xor al, byte [ebp - 0x8c]
mov byte [esi + 0x4f43b0], al
mov eax, ebx
sar eax, 8
xor al, byte [ebp - 0x8b]
mov byte [esi + 0x4f44b0], al
mov al, byte [ebp - 0x8a]
xor al, bl
mov byte [esi + 0x4f45b0], al
inc esi
cmp esi, 0x100
jb 0x452913
mov edi, dword [ebp + 8]
test edi, edi
je 0x45299c
mov bl, byte [ebp - 0x8d]
xor esi, esi
call fcn.0048bcfb
movzx ecx, ax
mov eax, ecx
sar eax, 8
xor al, byte [esi + 0x4f43b0]
xor al, byte [edi + 2]
xor al, bl
mov byte [esi + 0x4f43b0], al
mov al, byte [edi]
xor al, byte [esi + 0x4f44b0]
xor al, cl
xor al, bl
mov byte [esi + 0x4f44b0], al
inc esi
cmp esi, 0x80
jb 0x452963
mov eax, dword [ebp + 0x18]
cmp byte [eax], 0
je 0x452bd5
push 0x80
lea eax, [ebp - 0x88]
push 0
push eax
call fcn.0047d590
mov ebx, dword [ebp + 0x1c]
add esp, 0xc
mov esi, ebx
lea ecx, [esi + 1]
mov al, byte [esi]
inc esi
test al, al
jne 0x4529c6
sub esi, ecx
xor edi, edi
mov eax, edi
xor edx, edx
div esi
mov cl, byte [edx + ebx]
add cl, al
mov byte [ebp + edi - 0x88], cl
inc edi
cmp edi, 0x80
jb 0x4529d1
xor ecx, ecx
mov dword [ebp - 0xa4], 7
mov dword [ebp - 0x98], ecx
mov edx, 0x4f43b0
mov dword [ebp - 0xa8], 0x7b
nop dword [eax]
mov eax, dword [ebp - 0xa0]
xor edi, edi
mov dword [ebp - 0x8c], eax
mov dword [ebp - 0x9c], edx
mov eax, edi
xor bh, bh
and eax, 0x7f
mov ah, byte [ebp + eax - 0x88]
mov byte [ebp - 0x8d], ah
lea eax, [edi + ecx]
movzx esi, byte [ebp - 0x8d]
mov dword [ebp - 0xac], eax
and eax, 0x7f
mov cl, byte [ebp + eax - 0x88]
mov al, byte [edx]
mov bl, al
mov byte [ebp - 0x8e], al
movzx edx, cl
mov eax, esi
shl eax, 8
or eax, edx
mov dword [ebp - 0x94], edx
xor edx, edx
xor bl, byte [ebp - 0x8d]
div dword [ebp - 0xa4]
mov byte [ebp - 0x8f], cl
mov cl, bl
movzx eax, dl
lea edx, [eax - 1]
cmp edx, 5
ja case.default.0x452a91
jmp dword [edx*4 + 0x452be8]
mov eax, dword [ebp - 0x94]
xor edx, edx
mov ecx, 0xb
div ecx
movzx ecx, byte [ebp - 0x8e]
test edx, edx
movzx eax, bl
cmovne ecx, eax
jmp case.default.0x452a91
xor edx, edx
mov ecx, 0x1d
mov eax, esi
div ecx
mov al, bl
not al
test edx, edx
movzx ecx, al
movzx eax, bl
cmovne ecx, eax
jmp case.default.0x452a91
add eax, edi
xor edx, edx
mov ecx, 0x25
div ecx
mov al, bl
xor al, byte [ebp - 0x8f]
test edx, edx
movzx ecx, al
movzx eax, bl
cmovne ecx, eax
jmp case.default.0x452a91
mov eax, dword [ebp - 0x94]
xor edx, edx
add eax, esi
mov ecx, 0x61
div ecx
mov al, bl
add al, byte [ebp - 0x8d]
test edx, edx
movzx ecx, al
movzx eax, bl
cmovne ecx, eax
jmp case.default.0x452a91
imul eax, edi
xor edx, edx
div dword [ebp - 0xa8]
test edx, edx
jne case.default.0x452a91
mov cl, byte [ebp - 0x8c]
xor cl, bl
jmp case.default.0x452a91
cmp byte [ebp - 0x8d], 0xff
jne case.default.0x452a91
cmp byte [ebp - 0x8f], 0
jne case.default.0x452a91
xor cl, cl
mov bh, 1
mov eax, esi
xor edx, edx
mov esi, 5
div esi
mov eax, dword [ebp - 0xac]
lea esi, [edx + 1]
xor edx, edx
div esi
test edx, edx
jne 0x452b70
xor cl, byte [ebp - 0x8c]
jmp 0x452b78
test bh, bh
je 0x452b78
not bl
mov cl, bl
mov edx, dword [ebp - 0x9c]
inc edi
mov byte [edx], cl
inc edx
mov ecx, dword [ebp - 0x98]
add dword [ebp - 0x8c], ecx
mov dword [ebp - 0x9c], edx
cmp edi, 0x100
jb 0x452a24
inc ecx
mov dword [ebp - 0x98], ecx
cmp ecx, 3
jb 0x452a10
mov edx, dword [ebp - 0xb4]
lea eax, [ebp - 0x8e]
push eax
push dword [ebp + 0x14]
mov byte [ebp - 0x8e], 1
push dword [ebp - 0xb0]
call fcn.004526e0
add esp, 0xc
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0047b4e2
mov esp, ebp
pop ebp
ret