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

Disassembly:
sub esp, 0x2b4
push ebx
mov ebx, dword [esp + 0x2c4]
mov eax, ebx
push ebp
not eax
push esi
mov dword [esp + 0x10], eax
push edi
xor eax, eax
mov cl, byte [eax + 0x637883]
mov dl, byte [eax + 0x5ff490]
xor cl, dl
add cl, bl
mov byte [esp + eax + 0xc4], cl
inc eax
cmp eax, 0xff
jb 0x50440b
mov edx, ebx
xor ecx, ecx
shr edx, 8
mov al, byte [ecx + 0x6378ff]
not al
xor al, byte [ecx + 0x5ff590]
add al, dl
cmp ecx, 0xff
mov byte [esp + ecx + 0x1c4], al
jge 0x504469
mov bl, byte [esp + ecx + 0xc4]
not bl
xor bl, al
mov byte [esp + ecx + 0x1c4], bl
mov ebx, dword [esp + 0x2d0]
inc ecx
cmp ecx, 0x100
jb 0x504431
mov ecx, ebx
mov esi, 0x5ff690
shr ecx, 0x10
mov dword [esp + 0x18], esi
mov ebp, 0x6378ff
xor eax, eax
mov edi, ebp
sub esi, 0x5ff690
mov dl, byte [esi + eax + 0x5ff690]
mov bl, byte [edi]
xor dl, bl
lea ebx, [esi + eax]
sub dl, cl
inc eax
add edi, 7
cmp eax, 0x2d
mov byte [esp + ebx + 0x68], dl
jl 0x50448f
mov esi, dword [esp + 0x18]
add ebp, 5
add esi, 0x2d
cmp ebp, 0x637909
mov dword [esp + 0x18], esi
jl 0x504485
mov eax, dword [esp + 0x2d0]
mov esi, 0x5ff6ec
shr eax, 0x18
mov dword [esp + 0x28], eax
lea ebp, [esp + 0x68]
mov dword [esp + 0x18], esi
mov ecx, 0x6378f5
xor eax, eax
mov edi, ecx
sub esi, 0x5ff6ec
mov dl, byte [esi + eax + 0x5ff6ec]
mov bl, byte [edi]
xor dl, bl
mov bl, byte [esp + 0x28]
sub dl, bl
mov bl, byte [eax + ebp]
not bl
xor dl, bl
lea ebx, [esi + eax]
inc eax
add edi, 7
cmp eax, 0x1a
mov byte [esp + ebx + 0x34], dl
jl 0x5044ec
mov esi, dword [esp + 0x18]
add ecx, 0xb
add esi, 0x1a
add ebp, 0x2d
cmp ecx, 0x63790b
mov dword [esp + 0x18], esi
jl 0x5044e2
mov edi, dword [esp + 0x2c8]
mov edx, dword [esp + 0x2cc]
lea ecx, [esp + 0x4e]
lea ebp, [esp + 0x34]
lea eax, [edi + 1]
xor esi, esi
mov dword [esp + 0x30], eax
lea eax, [edi + edx - 2]
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x18], ebp
mov dword [esp + 0x24], esi
mov dword [esp + 0x28], eax
mov al, byte [edi]
xor cl, cl
xor bl, bl
mov byte [esp + 0x13], 0
test al, al
mov byte [esp + 0x12], 0
mov byte [esp + 0x2c], al
je 0x504619
mov ecx, dword [esp + 0x2c]
and ecx, 0xff
and esi, 0x800000ff
jns 0x504596
dec esi
or esi, 0xffffff00
inc esi
lea edx, [ecx + ecx*4]
mov ebx, dword [0x85ac70]
and edx, 0xff
movzx cx, byte [esp + ecx + 0x1c4]
movzx ax, byte [esp + edx + 0x1c4]
mov edx, dword [esp + 0x1c]
movzx dx, byte [edx]
add eax, edx
xor edx, edx
mov dl, byte [esi + ebx]
and eax, 0xffff
xor eax, edx
xor edx, edx
mov ebx, 0xff
lea eax, [eax + eax*2]
div ebx
mov bl, byte [esp + edx + 0xc4]
mov edx, dword [0x85ac6c]
not bl
mov ax, word [edx + esi*2]
add ax, cx
movzx cx, byte [ebp]
add eax, ecx
lea edx, [eax + eax*4]
lea eax, [eax + edx*2]
xor edx, edx
and eax, 0xffff
lea ecx, [eax + eax*4]
lea eax, [eax + ecx*2]
mov ecx, 0xff
div ecx
mov cl, byte [esp + edx + 0xc4]
not cl
mov edx, dword [esp + 0x30]
mov al, byte [edx]
test al, al
mov byte [esp + 0x2c], al
je 0x5046bc
mov esi, dword [esp + 0x2c]
and esi, 0xff
lea eax, [esi + esi]
and eax, 0xff
movzx dx, byte [esp + eax + 0x1c4]
mov eax, dword [esp + 0x1c]
movzx ax, byte [eax]
add edx, eax
lea eax, [edx + edx*2]
shl eax, 3
sub eax, edx
cmp ax, 0xff
jb 0x504663
add eax, 0xff01
and eax, 0xffff
xor edx, edx
add eax, 7
mov ebp, 0xff
div ebp
mov eax, esi
shl eax, 4
add eax, esi
mov esi, 0xff
and eax, ebp
mov ebp, dword [esp + 0x18]
mov dl, byte [esp + edx + 0xc4]
mov byte [esp + 0x12], dl
movzx dx, byte [esp + eax + 0x1c4]
movzx ax, byte [ebp]
add edx, eax
mov eax, edx
shl eax, 4
add eax, edx
xor edx, edx
and eax, 0xffff
div esi
mov dl, byte [esp + edx + 0xc4]
mov byte [esp + 0x13], dl
mov eax, dword [esp + 0x1c]
lea edx, [esp + 0x4e]
inc eax
mov dword [esp + 0x1c], eax
sub eax, edx
cmp eax, 0x1a
jl 0x5046d8
lea eax, [esp + 0x4e]
mov dword [esp + 0x1c], eax
inc ebp
lea eax, [esp + 0x34]
mov edx, ebp
mov dword [esp + 0x18], ebp
sub edx, eax
cmp edx, 0x1a
jl 0x5046f2
lea ebp, [esp + 0x34]
mov dword [esp + 0x18], ebp
mov dl, byte [esp + 0x16]
mov al, byte [esp + 0x17]
xor dl, bl
mov bl, byte [esp + 0x14]
mov byte [esp + 0x16], dl
mov dl, byte [esp + 0x12]
xor al, dl
mov dl, byte [esp + 0x15]
mov byte [esp + 0x17], al
mov al, byte [esp + 0x13]
xor bl, cl
mov ecx, dword [esp + 0x28]
add edi, 2
xor dl, al
cmp edi, ecx
mov byte [esp + 0x14], bl
mov byte [esp + 0x15], dl
jae 0x504746
lea eax, [edi + 1]
cmp eax, ecx
mov dword [esp + 0x30], eax
jae 0x504746
mov esi, dword [esp + 0x24]
inc esi
mov dword [esp + 0x24], esi
jmp 0x504560
mov edi, dword [esp + 0x2c8]
lea ecx, [esp + 0x68]
mov dword [esp + 0x1c], ecx
lea ebp, [esp + 0x95]
mov dword [esp + 0x24], 0
mov al, byte [edi]
xor bl, bl
test al, al
mov byte [esp + 0x12], bl
mov byte [esp + 0x23], bl
mov byte [esp + 0x13], bl
mov byte [esp + 0x18], al
je 0x5047f6
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
and edx, 0xff
movzx cx, byte [eax]
movzx si, byte [esp + edx + 0x1c4]
add ecx, esi
lea eax, [ecx*8]
sub eax, ecx
cmp ax, 0xff
jb 0x5047ad
add eax, 0xff01
and eax, 0xffff
xor edx, edx
mov ecx, 0xff
div ecx
movzx ax, byte [ebp]
add eax, esi
mov dl, byte [esp + edx + 0xc4]
cmp ax, cx
mov byte [esp + 0x13], dl
jb 0x5047d7
add eax, 0xff01
lea eax, [eax + eax*4]
xor edx, edx
and eax, 0xffff
mov ecx, 0xff
add eax, 0x11
div ecx
mov dl, byte [esp + edx + 0xc4]
mov byte [esp + 0x23], dl
mov al, byte [edi + 1]
test al, al
mov byte [esp + 0x18], al
je 0x5048a0
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
and eax, 0xff
movzx si, byte [esp + eax + 0x1c4]
movzx ax, byte [ecx]
add eax, esi
cmp ax, 0xff
jb 0x50482c
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 dl, byte [esp + edx + 0xc4]
mov byte [esp + 0x12], dl
jb 0x504859
add ecx, 0xff01
mov eax, dword [esp + 0x24]
and eax, 0x800000ff
jns 0x50486b
dec eax
or eax, 0xffffff00
inc eax
mov edx, dword [0x85ac70]
mov esi, dword [0x85ac6c]
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 bl, byte [esp + edx + 0xc4]
mov eax, dword [esp + 0x1c]
lea edx, [esp + 0x68]
inc eax
mov dword [esp + 0x1c], eax
sub eax, edx
cmp eax, 0x2d
jl 0x5048bc
lea eax, [esp + 0x68]
mov dword [esp + 0x1c], eax
inc ebp
lea edx, [esp + 0x95]
mov ecx, ebp
sub ecx, edx
cmp ecx, 0x2d
jl 0x5048d4
lea ebp, [esp + 0x95]
mov al, byte [esp + 0x13]
mov cl, byte [esp + 0x16]
mov dl, byte [esp + 0x17]
xor cl, al
mov al, byte [esp + 0x15]
mov byte [esp + 0x16], cl
mov cl, byte [esp + 0x12]
xor al, bl
xor dl, cl
mov cl, byte [esp + 0x14]
mov byte [esp + 0x17], dl
mov dl, byte [esp + 0x23]
mov byte [esp + 0x15], al
mov eax, dword [esp + 0x28]
add edi, 2
xor cl, dl
cmp edi, eax
mov byte [esp + 0x14], cl
jae 0x504923
lea ecx, [edi + 1]
cmp ecx, eax
jae 0x504923
inc dword [esp + 0x24]
jmp 0x504764
mov eax, dword [esp + 0x14]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x2b4
ret