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

Disassembly:
push ecx
and byte [0xd807a3], 0
push ebx
push ebp
push esi
push edi
push 1
xor ecx, ecx
pop eax
mov edx, eax
and dl, 0x80
neg dl
sbb dl, dl
mov bl, al
shl bl, 1
mov byte [ecx + 0xd8069c], al
mov byte [eax + 0xd8079c], cl
movzx esi, bl
and edx, 0x1b
movzx edx, dl
xor edx, esi
movzx eax, al
xor eax, edx
inc ecx
cmp ecx, 0x100
jb 0x431b8a
and byte [0xd8079d], 0
push 1
pop eax
mov ecx, 0xd80474
mov edx, eax
and dl, 0x80
neg dl
sbb dl, dl
mov dword [ecx], eax
shl al, 1
movzx eax, al
add ecx, 4
and edx, 0x1b
movzx edx, dl
xor eax, edx
cmp ecx, 0xd8049c
jb 0x431bcb
xor ebx, ebx
test ebx, ebx
je 0x431c07
movzx eax, byte [ebx + 0xd8079c]
mov ecx, 0xd8079b
sub ecx, eax
movzx eax, byte [ecx]
jmp 0x431c09
xor eax, eax
xor edx, edx
mov dl, al
mov cl, dl
shl cl, 1
movzx ecx, cl
mov eax, edx
shr eax, 7
movzx eax, al
or eax, ecx
xor edx, eax
mov ecx, eax
shr ecx, 7
shl al, 1
movzx ecx, cl
movzx eax, al
or ecx, eax
xor edx, ecx
mov eax, ecx
shl cl, 1
shr eax, 7
movzx ecx, cl
movzx eax, al
or eax, ecx
xor edx, eax
mov ecx, eax
shr ecx, 7
shl al, 1
movzx ecx, cl
movzx eax, al
or ecx, eax
xor ecx, edx
xor ecx, 0x63
mov byte [ebx + 0xd8059c], cl
mov byte [ecx + 0xd8049c], bl
inc ebx
cmp ebx, 0x100
jb 0x431bf0
xor ebx, ebx
movzx edi, byte [ebx + 0xd8059c]
mov esi, ebx
push 8
shl esi, 2
push edi
mov dword [esi + 0xd7d474], edi
call fcn.00be1d0b
push 0x10
push edi
mov dword [esi + 0xd7d874], eax
call fcn.00be1d0b
push 0x18
push edi
mov dword [esi + 0xd7dc74], eax
call fcn.00be1d0b
add esp, 0x18
test edi, edi
mov dword [esi + 0xd7e074], eax
je 0x431cd1
movzx ecx, byte [0xd8079e]
movzx eax, byte [edi + 0xd8079c]
add eax, ecx
cdq
mov ecx, 0xff
idiv ecx
movzx ecx, byte [edx + 0xd8069c]
jmp 0x431cd3
xor ecx, ecx
test edi, edi
je 0x431cf8
movzx edx, byte [0xd8079f]
movzx eax, byte [edi + 0xd8079c]
add eax, edx
cdq
mov ebp, 0xff
idiv ebp
movzx eax, byte [edx + 0xd8069c]
jmp 0x431cfa
xor eax, eax
shl eax, 8
or eax, edi
shl eax, 8
or eax, edi
shl eax, 8
or eax, ecx
mov edi, eax
push 8
push edi
mov dword [esi + 0xd7f474], edi
call fcn.00be1d0b
push 0x10
push edi
mov dword [esi + 0xd7f874], eax
call fcn.00be1d0b
push 0x18
push edi
mov dword [esi + 0xd7fc74], eax
call fcn.00be1d0b
movzx edi, byte [ebx + 0xd8049c]
push 8
push edi
mov dword [esi + 0xd80074], eax
mov dword [esi + 0xd7c474], edi
call fcn.00be1d0b
push 0x10
push edi
mov dword [esi + 0xd7c874], eax
call fcn.00be1d0b
push 0x18
push edi
mov dword [esi + 0xd7cc74], eax
call fcn.00be1d0b
xor ebp, ebp
add esp, 0x30
cmp edi, ebp
mov dword [esi + 0xd7d074], eax
je 0x431da0
movzx ecx, byte [0xd807aa]
movzx eax, byte [edi + 0xd8079c]
add eax, ecx
cdq
mov ecx, 0xff
idiv ecx
movzx eax, byte [edx + 0xd8069c]
mov dword [esp + 0x10], eax
jmp 0x431da4
mov dword [esp + 0x10], ebp
cmp edi, ebp
je 0x431dc7
movzx ecx, byte [0xd807a5]
movzx eax, byte [edi + 0xd8079c]
add eax, ecx
cdq
mov ecx, 0xff
idiv ecx
movzx ebp, byte [edx + 0xd8069c]
test edi, edi
je 0x431dec
movzx ecx, byte [0xd807a9]
movzx eax, byte [edi + 0xd8079c]
add eax, ecx
cdq
mov ecx, 0xff
idiv ecx
movzx ecx, byte [edx + 0xd8069c]
jmp 0x431dee
xor ecx, ecx
test edi, edi
je 0x431e13
movzx eax, byte [edi + 0xd8079c]
movzx edx, byte [0xd807a7]
add eax, edx
cdq
mov edi, 0xff
idiv edi
movzx eax, byte [edx + 0xd8069c]
jmp 0x431e15
xor eax, eax
shl eax, 8
or eax, ecx
shl eax, 8
or eax, ebp
shl eax, 8
or eax, dword [esp + 0x10]
push 8
mov edi, eax
push edi
mov dword [esi + 0xd7e474], edi
call fcn.00be1d0b
push 0x10
push edi
mov dword [esi + 0xd7e874], eax
call fcn.00be1d0b
push 0x18
push edi
mov dword [esi + 0xd7ec74], eax
call fcn.00be1d0b
add esp, 0x18
inc ebx
cmp ebx, 0x100
mov dword [esi + 0xd7f074], eax
jb 0x431c6d
pop edi
pop esi
pop ebp
mov byte [0xd8089c], 1
pop ebx
pop ecx
ret