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

Disassembly:
sub esp, 0x2b0
mov edx, dword [esp + 0x2bc]
push ebx
push ebp
push esi
push edi
mov dword [esp + 0x14], edx
xor eax, eax
mov cl, byte [eax + 0x5ff490]
mov bl, byte [eax + 0x5ff090]
xor cl, bl
add cl, dl
mov byte [esp + eax + 0xc0], cl
inc eax
cmp eax, 0xff
jb 0x428657
mov ecx, edx
xor eax, eax
shr ecx, 8
mov bl, byte [eax + 0x5ff190]
not bl
xor bl, byte [eax + 0x5ff590]
add bl, cl
mov byte [esp + eax + 0x1c0], bl
inc eax
cmp eax, 0x100
jb 0x42867d
mov esi, 0x5ff690
mov ebp, 0x5ff113
shr edx, 0x10
mov dword [esp + 0x18], esi
xor eax, eax
mov edi, ebp
sub esi, 0x5ff690
mov cl, byte [esi + eax + 0x5ff690]
mov bl, byte [edi]
xor cl, bl
lea ebx, [esi + eax]
sub cl, dl
inc eax
add edi, 9
cmp eax, 0x2d
mov byte [esp + ebx + 0x64], cl
jl 0x4286b7
mov esi, dword [esp + 0x18]
add ebp, 3
add esi, 0x2d
cmp ebp, 0x5ff119
mov dword [esp + 0x18], esi
jl 0x4286ad
mov ecx, dword [esp + 0x2cc]
mov esi, 0x5ff6ec
shr ecx, 0x18
mov dword [esp + 0x18], esi
mov ebp, 0x5ff14f
xor eax, eax
mov edi, ebp
sub esi, 0x5ff6ec
mov dl, byte [esi + eax + 0x5ff6ec]
mov bl, byte [edi]
xor dl, bl
lea ebx, [esi + eax]
sub dl, cl
inc eax
add edi, 3
cmp eax, 0x1a
mov byte [esp + ebx + 0x30], dl
jl 0x42870c
mov esi, dword [esp + 0x18]
add ebp, 7
add esi, 0x1a
cmp ebp, 0x5ff15d
mov dword [esp + 0x18], esi
jl 0x428702
mov edi, dword [esp + 0x2c4]
mov edx, dword [esp + 0x2c8]
lea ecx, [esp + 0x4a]
lea ebp, [esp + 0x30]
lea eax, [edi + 1]
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x18], eax
xor ecx, ecx
lea eax, [edi + edx - 2]
mov dword [esp + 0x28], ecx
mov dword [esp + 0x2c], eax
mov al, byte [edi]
xor bl, bl
test al, al
mov byte [esp + 0x12], 0
mov byte [esp + 0x23], 0
mov byte [esp + 0x13], 0
mov byte [esp + 0x24], al
je 0x428808
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x1c]
mov ebx, dword [0x85ac70]
and edx, 0xff
movzx ax, byte [eax]
movzx si, byte [esp + edx + 0x1c0]
and ecx, 3
add eax, esi
xor edx, edx
and eax, 0xffff
mov dl, byte [ecx + ebx]
mov ebx, 0xff
xor eax, edx
xor edx, edx
div ebx
mov eax, dword [0x85ac6c]
mov ax, word [eax + ecx*2]
mov bl, byte [esp + edx + 0xc0]
movzx dx, byte [ebp]
add ax, dx
add eax, esi
lea ecx, [eax + eax*4]
lea eax, [eax + ecx*2]
cmp ax, 0xff
jb 0x4287ef
add eax, 0xff01
and eax, 0xffff
xor edx, edx
mov ecx, 0xff
div ecx
mov dl, byte [esp + edx + 0xc0]
mov byte [esp + 0x13], dl
mov eax, dword [esp + 0x18]
mov al, byte [eax]
test al, al
mov byte [esp + 0x24], al
je 0x42887e
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x1c]
and ecx, 0xff
movzx ax, byte [edx]
movzx si, byte [esp + ecx + 0x1c0]
add eax, esi
cmp ax, 0xff
jb 0x42883e
add eax, 0xff01
and eax, 0xffff
xor edx, edx
mov ecx, 0xff
div ecx
movzx cx, byte [ebp]
add ecx, esi
mov eax, ecx
shl eax, 4
add eax, ecx
mov ecx, 0xff
and eax, 0xffff
mov dl, byte [esp + edx + 0xc0]
mov byte [esp + 0x23], dl
xor edx, edx
div ecx
mov dl, byte [esp + edx + 0xc0]
mov byte [esp + 0x12], dl
mov eax, dword [esp + 0x1c]
lea ecx, [esp + 0x4a]
inc eax
mov dword [esp + 0x1c], eax
sub eax, ecx
cmp eax, 0x1a
jl 0x42889a
lea edx, [esp + 0x4a]
mov dword [esp + 0x1c], edx
inc ebp
lea ecx, [esp + 0x30]
mov eax, ebp
sub eax, ecx
cmp eax, 0x1a
jl 0x4288ac
lea ebp, [esp + 0x30]
mov cl, byte [esp + 0x16]
mov dl, byte [esp + 0x23]
mov al, byte [esp + 0x17]
xor cl, bl
mov bl, byte [esp + 0x14]
mov byte [esp + 0x16], cl
mov cl, byte [esp + 0x12]
xor al, dl
mov dl, byte [esp + 0x15]
mov byte [esp + 0x17], al
mov al, byte [esp + 0x13]
xor dl, cl
mov ecx, dword [esp + 0x2c]
add edi, 2
xor bl, al
cmp edi, ecx
mov byte [esp + 0x14], bl
mov byte [esp + 0x15], dl
jae 0x428904
lea eax, [edi + 1]
cmp eax, ecx
mov dword [esp + 0x18], eax
jae 0x428904
mov ecx, dword [esp + 0x28]
inc ecx
mov dword [esp + 0x28], ecx
jmp 0x42876e
mov edi, dword [esp + 0x2c4]
lea edx, [esp + 0x64]
lea ebp, [esp + 0x91]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x18], ebp
mov dword [esp + 0x28], 0
mov al, byte [edi]
xor cl, cl
xor bl, bl
mov byte [esp + 0x24], al
test al, al
mov byte [esp + 0x13], bl
mov byte [esp + 0x12], bl
je 0x4289ae
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x1c]
and eax, 0xff
movzx si, byte [esp + eax + 0x1c0]
movzx ax, byte [edx]
add eax, esi
cmp ax, 0xff
jb 0x428963
add eax, 0xff01
and eax, 0xffff
xor edx, edx
mov ebp, 0xff
div ebp
mov ebp, dword [esp + 0x18]
mov al, byte [esp + edx + 0xc0]
mov byte [esp + 0x12], al
movzx ax, byte [ebp]
add eax, esi
cmp ax, 0xff
jb 0x428992
add eax, 0xff01
lea eax, [eax + eax*4]
xor edx, edx
and eax, 0xffff
mov esi, 0xff
div esi
mov dl, byte [esp + edx + 0xc0]
mov byte [esp + 0x13], dl
mov al, byte [edi + 1]
test al, al
mov byte [esp + 0x24], al
je 0x428a49
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x1c]
and eax, 0xff
movzx si, byte [esp + eax + 0x1c0]
movzx ax, byte [ecx]
add eax, esi
cmp ax, 0xff
jb 0x4289e4
add eax, 0xff01
and eax, 0xffff
xor edx, edx
mov ecx, 0xff
div ecx
movzx cx, byte [ebp]
add ecx, esi
cmp cx, 0xff
mov bl, byte [esp + edx + 0xc0]
jb 0x428a0d
add ecx, 0xff01
mov eax, dword [esp + 0x28]
mov edx, dword [0x85ac70]
mov esi, dword [0x85ac6c]
and eax, 3
movzx dx, byte [eax + edx]
mov ax, word [esi + eax*2]
add ax, dx
xor edx, edx
add eax, ecx
lea ecx, [eax + eax*8]
lea eax, [eax + ecx*2]
mov ecx, 0xff
and eax, 0xffff
div ecx
mov cl, byte [esp + edx + 0xc0]
mov eax, dword [esp + 0x1c]
lea edx, [esp + 0x64]
inc eax
mov dword [esp + 0x1c], eax
sub eax, edx
cmp eax, 0x2d
jl 0x428a65
lea eax, [esp + 0x64]
mov dword [esp + 0x1c], eax
inc ebp
lea eax, [esp + 0x91]
mov edx, ebp
mov dword [esp + 0x18], ebp
sub edx, eax
cmp edx, 0x2d
jl 0x428a85
lea ebp, [esp + 0x91]
mov dword [esp + 0x18], ebp
mov dl, byte [esp + 0x12]
mov al, byte [esp + 0x16]
xor al, dl
mov dl, byte [esp + 0x14]
mov byte [esp + 0x16], al
mov al, byte [esp + 0x17]
xor al, bl
mov bl, byte [esp + 0x15]
mov byte [esp + 0x17], al
mov al, byte [esp + 0x13]
xor dl, al
mov eax, dword [esp + 0x2c]
add edi, 2
xor bl, cl
cmp edi, eax
mov byte [esp + 0x14], dl
mov byte [esp + 0x15], bl
jae 0x428ad0
lea ecx, [edi + 1]
cmp ecx, eax
jae 0x428ad0
inc dword [esp + 0x28]
jmp 0x428926
mov eax, dword [esp + 0x14]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x2b0
ret