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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14
push ebx
push esi
push edi
mov edi, dword [ebp + 0xc]
mov esi, ecx
mov dword [ebp - 0x14], edi
shr edi, 1
xor edx, edx
mov dword [ebp - 0x10], esi
xor eax, eax
lea ebx, [ebx]
mov byte [esi + eax + 0x2c], al
inc eax
cmp eax, 0x100
jl 0x1001d6b0
mov ecx, dword [ebp + 8]
mov eax, edi
shr eax, 1
mov dword [ebp - 4], edx
mov dword [ebp - 8], eax
mov dword [ebp - 0xc], edx
lea esp, [esp]
mov eax, dword [ebp - 4]
movsx eax, byte [eax + ecx]
add eax, 0x13
imul eax, edx
xor edx, edx
mov ebx, 0xfb
div ebx
mov eax, dword [ebp - 8]
movsx eax, byte [eax + ecx]
add eax, dword [ebp - 0xc]
and eax, 0xff
movzx ebx, byte [esi + edx + 0x2c]
mov byte [ebp + 0xf], bl
movzx ebx, byte [esi + eax + 0x2c]
mov byte [esi + edx + 0x2c], bl
mov dl, byte [ebp + 0xf]
mov byte [esi + eax + 0x2c], dl
cmp edi, 1
jbe 0x1001d72d
mov eax, dword [ebp - 4]
inc eax
xor edx, edx
div edi
mov eax, dword [ebp - 8]
inc eax
lea ebx, [edi - 1]
mov dword [ebp - 4], edx
xor edx, edx
div ebx
mov dword [ebp - 8], edx
jmp 0x1001d735
xor eax, eax
mov dword [ebp - 4], eax
mov dword [ebp - 8], eax
mov eax, dword [ebp - 4]
movsx eax, byte [eax + ecx]
mov edx, dword [ebp - 0xc]
add eax, 0x13
inc edx
imul eax, edx
xor edx, edx
mov ebx, 0xfb
div ebx
mov eax, dword [ebp - 8]
movsx eax, byte [eax + ecx]
mov ebx, dword [ebp - 0xc]
lea eax, [eax + ebx + 1]
and eax, 0xff
movzx ebx, byte [esi + edx + 0x2c]
mov byte [ebp + 0xf], bl
movzx ebx, byte [esi + eax + 0x2c]
mov byte [esi + edx + 0x2c], bl
mov dl, byte [ebp + 0xf]
mov byte [esi + eax + 0x2c], dl
cmp edi, 1
jbe 0x1001d79a
mov eax, dword [ebp - 4]
inc eax
xor edx, edx
div edi
mov eax, dword [ebp - 8]
inc eax
lea ebx, [edi - 1]
mov dword [ebp - 4], edx
xor edx, edx
div ebx
mov dword [ebp - 8], edx
jmp 0x1001d7a2
xor eax, eax
mov dword [ebp - 4], eax
mov dword [ebp - 8], eax
mov eax, dword [ebp - 4]
movsx eax, byte [eax + ecx]
mov edx, dword [ebp - 0xc]
add eax, 0x13
add edx, 2
imul eax, edx
xor edx, edx
mov ebx, 0xfb
div ebx
mov eax, dword [ebp - 8]
movsx eax, byte [eax + ecx]
mov ebx, dword [ebp - 0xc]
lea eax, [eax + ebx + 2]
and eax, 0xff
movzx ebx, byte [esi + edx + 0x2c]
mov byte [ebp + 0xf], bl
movzx ebx, byte [esi + eax + 0x2c]
mov byte [esi + edx + 0x2c], bl
mov dl, byte [ebp + 0xf]
mov byte [esi + eax + 0x2c], dl
cmp edi, 1
jbe 0x1001d809
mov eax, dword [ebp - 4]
inc eax
xor edx, edx
div edi
mov eax, dword [ebp - 8]
inc eax
lea ebx, [edi - 1]
mov dword [ebp - 4], edx
xor edx, edx
div ebx
mov dword [ebp - 8], edx
jmp 0x1001d811
xor eax, eax
mov dword [ebp - 4], eax
mov dword [ebp - 8], eax
mov eax, dword [ebp - 4]
movsx eax, byte [eax + ecx]
mov edx, dword [ebp - 0xc]
add eax, 0x13
add edx, 3
imul eax, edx
xor edx, edx
mov ebx, 0xfb
div ebx
mov eax, dword [ebp - 8]
movsx eax, byte [eax + ecx]
mov ebx, dword [ebp - 0xc]
lea eax, [eax + ebx + 3]
and eax, 0xff
movzx ebx, byte [esi + edx + 0x2c]
mov byte [ebp + 0xf], bl
movzx ebx, byte [esi + eax + 0x2c]
mov byte [esi + edx + 0x2c], bl
mov dl, byte [ebp + 0xf]
mov byte [esi + eax + 0x2c], dl
cmp edi, 1
jbe 0x1001d878
mov eax, dword [ebp - 4]
inc eax
xor edx, edx
div edi
mov eax, dword [ebp - 8]
inc eax
lea ebx, [edi - 1]
mov dword [ebp - 4], edx
xor edx, edx
div ebx
mov dword [ebp - 8], edx
jmp 0x1001d880
xor eax, eax
mov dword [ebp - 4], eax
mov dword [ebp - 8], eax
mov eax, dword [ebp - 4]
movsx eax, byte [eax + ecx]
mov edx, dword [ebp - 0xc]
add eax, 0x13
add edx, 4
imul eax, edx
xor edx, edx
mov ebx, 0xfb
div ebx
mov eax, dword [ebp - 8]
movsx eax, byte [eax + ecx]
mov ebx, dword [ebp - 0xc]
lea eax, [eax + ebx + 4]
and eax, 0xff
movzx ebx, byte [esi + edx + 0x2c]
mov byte [ebp + 0xf], bl
movzx ebx, byte [esi + eax + 0x2c]
mov byte [esi + edx + 0x2c], bl
mov dl, byte [ebp + 0xf]
mov byte [esi + eax + 0x2c], dl
cmp edi, 1
jbe 0x1001d8e7
mov eax, dword [ebp - 4]
inc eax
xor edx, edx
div edi
mov eax, dword [ebp - 8]
inc eax
lea ebx, [edi - 1]
mov dword [ebp - 4], edx
xor edx, edx
div ebx
mov dword [ebp - 8], edx
jmp 0x1001d8ef
xor eax, eax
mov dword [ebp - 4], eax
mov dword [ebp - 8], eax
mov eax, dword [ebp - 4]
movsx eax, byte [eax + ecx]
mov edx, dword [ebp - 0xc]
add eax, 0x13
add edx, 5
imul eax, edx
xor edx, edx
mov ebx, 0xfb
div ebx
mov eax, dword [ebp - 8]
movsx eax, byte [eax + ecx]
mov ebx, dword [ebp - 0xc]
lea eax, [eax + ebx + 5]
and eax, 0xff
movzx ebx, byte [esi + edx + 0x2c]
mov byte [ebp + 0xf], bl
movzx ebx, byte [esi + eax + 0x2c]
mov byte [esi + edx + 0x2c], bl
mov dl, byte [ebp + 0xf]
mov byte [esi + eax + 0x2c], dl
cmp edi, 1
jbe 0x1001d956
mov eax, dword [ebp - 4]
inc eax
xor edx, edx
div edi
mov eax, dword [ebp - 8]
inc eax
lea ebx, [edi - 1]
mov dword [ebp - 4], edx
xor edx, edx
div ebx
mov dword [ebp - 8], edx
jmp 0x1001d95e
xor eax, eax
mov dword [ebp - 4], eax
mov dword [ebp - 8], eax
mov edx, dword [ebp - 0xc]
add edx, 6
mov dword [ebp - 0xc], edx
cmp edx, 0x300
jl 0x1001d6d0
xor eax, eax
jmp 0x1001d980
movzx edx, byte [esi + eax + 0x2c]
mov byte [edx + esi + 0x12c], al
inc eax
cmp eax, 0x100
jl 0x1001d980
mov eax, dword [ebp - 0x14]
sub eax, edi
add ecx, edi
mov edi, eax
xor ebx, ebx
nop
mov eax, ebx
xor edx, edx
div edi
inc ebx
mov al, byte [edx + ecx]
mov byte [esi + ebx + 0x22b], al
cmp ebx, 0x100
jl 0x1001d9a0
movsx ebx, byte [ecx]
mov edx, edi
shr edx, 1
movsx eax, byte [edx + ecx]
shr edi, 2
movsx ecx, byte [edi + ecx]
mov dword [ebp - 0xc], eax
mov dword [ebp - 4], 3
jmp 0x1001d9e0
add esi, 0x22d
mov dword [ebp - 8], 0x33
lea ecx, [ecx]
mov edi, dword [ebp - 0xc]
lea eax, [ebx + 1]
imul eax, eax, 0x23b
mov dword [ebp + 8], eax
movzx eax, byte [esi - 1]
inc edi
imul edi, edi, 0x241
lea edx, [edi + 9]
imul eax, edx
xor edx, edx
mov ebx, 0x41b
div ebx
inc ecx
imul ecx, ecx, 0x257
mov eax, 0x19453809
inc edi
imul edi, edi, 0x241
mov ebx, edx
mul ecx
mov eax, ecx
sub eax, edx
shr eax, 1
add eax, edx
shr eax, 7
mov dl, 0x17
imul dl
add al, cl
shr ebx, 2
xor bl, al
mov eax, 0x891ac73b
mul dword [ebp + 8]
shr edx, 7
mov al, dl
shl dl, 4
add dl, al
mov eax, dword [ebp + 8]
add dl, al
inc eax
imul eax, eax, 0x23b
xor bl, dl
xor byte [esi], bl
movzx edx, byte [esi]
mov dword [ebp + 8], eax
lea eax, [edi + 9]
imul eax, edx
xor edx, edx
mov ebx, 0x41b
div ebx
inc ecx
imul ecx, ecx, 0x257
mov eax, 0x19453809
inc edi
imul edi, edi, 0x241
mov ebx, edx
mul ecx
mov eax, ecx
sub eax, edx
shr eax, 1
add eax, edx
shr eax, 7
mov dl, 0x17
imul dl
add al, cl
shr ebx, 2
xor bl, al
mov eax, 0x891ac73b
mul dword [ebp + 8]
shr edx, 7
mov al, dl
shl dl, 4
add dl, al
mov eax, dword [ebp + 8]
add dl, al
inc eax
imul eax, eax, 0x23b
xor bl, dl
xor byte [esi + 1], bl
inc ecx
mov dword [ebp + 8], eax
imul ecx, ecx, 0x257
lea eax, [edi + 9]
movzx edx, byte [esi + 1]
imul eax, edx
xor edx, edx
mov ebx, 0x41b
div ebx
mov eax, 0x19453809
inc edi
imul edi, edi, 0x241
mov ebx, edx
mul ecx
mov eax, ecx
sub eax, edx
shr eax, 1
add eax, edx
shr eax, 7
mov dl, 0x17
imul dl
add al, cl
shr ebx, 2
xor bl, al
mov eax, 0x891ac73b
mul dword [ebp + 8]
shr edx, 7
mov al, dl
shl dl, 4
add dl, al
mov eax, dword [ebp + 8]
add dl, al
inc eax
imul eax, eax, 0x23b
mov dword [ebp + 8], eax
xor bl, dl
xor byte [esi + 2], bl
movzx edx, byte [esi + 2]
lea eax, [edi + 9]
imul eax, edx
xor edx, edx
mov ebx, 0x41b
div ebx
inc ecx
imul ecx, ecx, 0x257
mov eax, 0x19453809
mov ebx, edx
mul ecx
mov eax, ecx
sub eax, edx
shr eax, 1
add eax, edx
shr eax, 7
mov dl, 0x17
imul dl
add al, cl
shr ebx, 2
xor bl, al
mov eax, 0x891ac73b
mul dword [ebp + 8]
shr edx, 7
mov al, dl
shl dl, 4
add dl, al
mov eax, dword [ebp + 8]
add dl, al
inc eax
imul eax, eax, 0x23b
mov dword [ebp + 8], eax
lea eax, [edi + 1]
imul eax, eax, 0x241
xor bl, dl
xor byte [esi + 3], bl
movzx edx, byte [esi + 3]
mov dword [ebp - 0xc], eax
add eax, 9
imul eax, edx
xor edx, edx
mov edi, 0x41b
div edi
inc ecx
imul ecx, ecx, 0x257
mov eax, edx
shr eax, 2
mov dword [ebp + 0xc], eax
mov eax, 0x19453809
mul ecx
mov edi, edx
mov eax, ecx
sub eax, edi
shr eax, 1
add eax, edi
shr eax, 7
mov dl, 0x17
imul dl
mov edx, dword [ebp + 0xc]
mov ebx, dword [ebp + 8]
add al, cl
xor dl, al
mov byte [ebp + 0xf], dl
mov eax, 0x891ac73b
mul dword [ebp + 8]
shr edx, 7
mov al, dl
shl dl, 4
add dl, al
mov al, byte [ebp + 0xf]
add dl, bl
xor al, dl
xor byte [esi + 4], al
add esi, 5
dec dword [ebp - 8]
jne 0x1001d9f0
mov eax, 0x828cbfbf
mul ecx
shr edx, 7
mov al, dl
add dl, dl
add dl, dl
add al, dl
add al, cl
mov esi, dword [ebp - 0x10]
mov byte [ebp + 0xf], al
mov eax, 0x891ac73b
mul ebx
shr edx, 7
mov al, dl
shl dl, 4
add dl, al
mov al, byte [ebp + 0xf]
add dl, bl
xor al, dl
xor byte [esi + 0x22c], al
mov eax, 1
sub dword [ebp - 4], eax
jne 0x1001d9e0
pop edi
mov ecx, esi
pop esi
mov byte [ecx + 0x32e], al
pop ebx
mov esp, ebp
pop ebp
ret 8