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

Disassembly:
sub esp, 8
push ebx
push ebp
mov al, 1
push esi
push edi
xor ecx, ecx
mov byte [esp + 0x10], al
mov edx, dword [esp + 0x10]
mov bl, al
and edx, 0xff
mov byte [ecx + 0x4666c8], al
mov byte [edx + 0x4665c8], cl
mov dl, al
and dl, 0x80
neg dl
sbb dl, dl
and edx, 0x1b
shl bl, 1
xor dl, bl
xor al, dl
inc ecx
cmp ecx, 0x100
mov byte [esp + 0x10], al
jb 0x415a4f
mov al, 1
mov byte [0x4665c9], 0
mov byte [esp + 0x10], al
mov ecx, 0x4663a0
mov edx, dword [esp + 0x10]
and edx, 0xff
mov dword [ecx], edx
mov dl, al
and dl, 0x80
neg dl
sbb dl, dl
add ecx, 4
and edx, 0x1b
shl al, 1
xor al, dl
cmp ecx, 0x4663c8
mov byte [esp + 0x10], al
jb 0x415a98
xor ebx, ebx
test ebx, ebx
je 0x415adc
xor eax, eax
mov ecx, 0x4667c7
mov al, byte [ebx + 0x4665c8]
sub ecx, eax
mov dl, byte [ecx]
jmp 0x415ade
xor dl, dl
mov al, dl
mov cl, dl
shr al, 7
shl cl, 1
or al, cl
mov cl, al
xor dl, al
shr cl, 7
shl al, 1
or cl, al
mov al, cl
xor dl, cl
shr al, 7
shl cl, 1
or al, cl
mov cl, al
xor dl, al
shr cl, 7
shl al, 1
or cl, al
xor cl, dl
xor cl, 0x63
mov byte [esp + 0x10], cl
mov byte [ebx + 0x4664c8], cl
mov edx, dword [esp + 0x10]
and edx, 0xff
mov byte [edx + 0x4663c8], bl
inc ebx
cmp ebx, 0x100
jb 0x415ac5
xor esi, esi
mov bl, byte [esi + 0x4664c8]
mov byte [esp + 0x10], bl
mov edi, dword [esp + 0x10]
and edi, 0xff
mov eax, edi
mov ecx, edi
rol eax, 8
mov edx, edi
mov dword [esi*4 + 0x4633a0], edi
rol ecx, 0x10
mov dword [esi*4 + 0x4637a0], eax
mov dword [esi*4 + 0x463ba0], ecx
rol edx, 0x18
test bl, bl
mov dword [esi*4 + 0x463fa0], edx
je 0x415b9b
xor eax, eax
xor ecx, ecx
mov al, byte [edi + 0x4665c8]
mov cl, byte [0x4665ca]
add eax, ecx
mov ecx, 0xff
cdq
idiv ecx
xor ecx, ecx
mov cl, byte [edx + 0x4666c8]
jmp 0x415b9d
xor ecx, ecx
test bl, bl
je 0x415bc5
xor eax, eax
xor edx, edx
mov al, byte [edi + 0x4665c8]
mov dl, byte [0x4665cb]
add eax, edx
mov ebx, 0xff
cdq
idiv ebx
xor eax, eax
mov al, byte [edx + 0x4666c8]
jmp 0x415bc7
xor eax, eax
shl eax, 8
or eax, edi
shl eax, 8
or eax, edi
shl eax, 8
or eax, ecx
mov ecx, eax
mov dword [esi*4 + 0x4653a0], eax
rol ecx, 8
mov dword [esi*4 + 0x4657a0], ecx
mov cl, byte [esi + 0x4663c8]
mov edx, eax
mov byte [esp + 0x10], cl
mov edi, dword [esp + 0x10]
rol edx, 0x10
rol eax, 0x18
mov dword [esi*4 + 0x465ba0], edx
and edi, 0xff
mov dword [esi*4 + 0x465fa0], eax
mov eax, edi
rol eax, 8
mov dword [esi*4 + 0x4623a0], edi
mov dword [esi*4 + 0x4627a0], eax
mov edx, edi
mov eax, edi
rol edx, 0x10
rol eax, 0x18
mov dword [esi*4 + 0x462ba0], edx
mov dword [esi*4 + 0x462fa0], eax
test cl, cl
je 0x415c6a
xor eax, eax
xor edx, edx
mov al, byte [edi + 0x4665c8]
mov dl, byte [0x4665d6]
add eax, edx
mov ebx, 0xff
cdq
idiv ebx
xor eax, eax
mov al, byte [edx + 0x4666c8]
mov dword [esp + 0x14], eax
jmp 0x415c72
mov dword [esp + 0x14], 0
test cl, cl
je 0x415c9c
xor eax, eax
xor edx, edx
mov al, byte [edi + 0x4665c8]
mov dl, byte [0x4665d1]
add eax, edx
mov ebx, 0xff
cdq
idiv ebx
xor eax, eax
mov al, byte [edx + 0x4666c8]
mov ebp, eax
jmp 0x415c9e
xor ebp, ebp
test cl, cl
je 0x415cc6
xor eax, eax
xor edx, edx
mov al, byte [edi + 0x4665c8]
mov dl, byte [0x4665d5]
add eax, edx
mov ebx, 0xff
cdq
idiv ebx
xor ebx, ebx
mov bl, byte [edx + 0x4666c8]
jmp 0x415cc8
xor ebx, ebx
test cl, cl
je 0x415cf0
xor eax, eax
xor ecx, ecx
mov al, byte [edi + 0x4665c8]
mov cl, byte [0x4665d3]
add eax, ecx
mov ecx, 0xff
cdq
idiv ecx
xor eax, eax
mov al, byte [edx + 0x4666c8]
jmp 0x415cf2
xor eax, eax
shl eax, 8
or eax, ebx
shl eax, 8
or eax, ebp
mov ebp, dword [esp + 0x14]
shl eax, 8
or eax, ebp
mov edx, eax
mov ecx, eax
rol edx, 8
mov dword [esi*4 + 0x4643a0], eax
mov dword [esi*4 + 0x4647a0], edx
rol ecx, 0x10
rol eax, 0x18
mov dword [esi*4 + 0x464ba0], ecx
mov dword [esi*4 + 0x464fa0], eax
inc esi
cmp esi, 0x100
jb 0x415b34
pop edi
pop esi
pop ebp
mov dword [0x4667c8], 1
pop ebx
add esp, 8
ret