Function at 0x4ee590
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 + 0x654bf3]
mov dl, byte [eax + 0x5e8620]
xor cl, dl
add cl, bl
mov byte [esp + eax + 0xc4], cl
inc eax
cmp eax, 0xff
jb 0x4ee5ab
mov edx, ebx
xor ecx, ecx
shr edx, 8
mov al, byte [ecx + 0x654c6f]
not al
xor al, byte [ecx + 0x5e8720]
add al, dl
cmp ecx, 0xff
mov byte [esp + ecx + 0x1c4], al
jge 0x4ee609
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 0x4ee5d1
mov ecx, ebx
mov esi, 0x5e8820
shr ecx, 0x10
mov dword [esp + 0x18], esi
mov ebp, 0x654c6f
xor eax, eax
mov edi, ebp
sub esi, 0x5e8820
mov dl, byte [esi + eax + 0x5e8820]
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 0x4ee62f
mov esi, dword [esp + 0x18]
add ebp, 5
add esi, 0x2d
cmp ebp, 0x654c79
mov dword [esp + 0x18], esi
jl 0x4ee625
mov eax, dword [esp + 0x2d0]
mov esi, 0x5e887c
shr eax, 0x18
mov dword [esp + 0x28], eax
lea ebp, [esp + 0x68]
mov dword [esp + 0x18], esi
mov ecx, 0x654c65
xor eax, eax
mov edi, ecx
sub esi, 0x5e887c
mov dl, byte [esi + eax + 0x5e887c]
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 0x4ee68c
mov esi, dword [esp + 0x18]
add ecx, 0xb
add esi, 0x1a
add ebp, 0x2d
cmp ecx, 0x654c7b
mov dword [esp + 0x18], esi
jl 0x4ee682
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 0x4ee7b9
mov ecx, dword [esp + 0x2c]
and ecx, 0xff
and esi, 0x800000ff
jns 0x4ee736
dec esi
or esi, 0xffffff00
inc esi
lea edx, [ecx + ecx*4]
mov ebx, dword [0x7f2fb4]
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 [0x7f2fb0]
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 0x4ee85c
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 0x4ee803
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 0x4ee878
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 0x4ee892
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 0x4ee8e6
lea eax, [edi + 1]
cmp eax, ecx
mov dword [esp + 0x30], eax
jae 0x4ee8e6
mov esi, dword [esp + 0x24]
inc esi
mov dword [esp + 0x24], esi
jmp 0x4ee700
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 0x4ee996
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 0x4ee94d
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 0x4ee977
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 0x4eea40
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 0x4ee9cc
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 0x4ee9f9
add ecx, 0xff01
mov eax, dword [esp + 0x24]
and eax, 0x800000ff
jns 0x4eea0b
dec eax
or eax, 0xffffff00
inc eax
mov edx, dword [0x7f2fb4]
mov esi, dword [0x7f2fb0]
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 0x4eea5c
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 0x4eea74
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 0x4eeac3
lea ecx, [edi + 1]
cmp ecx, eax
jae 0x4eeac3
inc dword [esp + 0x24]
jmp 0x4ee904
mov eax, dword [esp + 0x14]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x2b4
ret