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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x198
push esi
mov esi, dword [0x100263dc]
push edi
push 4
mov dword [ebp - 0x68], ecx
add esi, 0x58452817
pop edi
call fcn.100067de
push 0x19
pop ecx
mov dword [ebp - 0x18], 0x4f
xor eax, eax
mov dword [ebp - 0x14], ecx
mov dword [ebp - 0x10], 0x394
add edi, dword [ebp + eax*4 - 0x18]
inc eax
cmp eax, 3
jl 0x10007120
mov dword [ebp - 0x18], 0x1d
xorps xmm2, xmm2
mov dword [ebp - 0x14], 0x52
mov dword [ebp - 0x10], 0x147
mov dword [ebp - 0x1c], 0x42
movups xmm1, xmmword [ebp - 0x1c]
push 0xf
mov dword [ebp - 0x60], edi
movaps xmm0, xmm1
mov dword [ebp - 0x18], 0x27
psrldq xmm0, 8
paddd xmm1, xmm0
mov dword [ebp - 0x14], 0x20
movups xmm0, xmm1
mov dword [ebp - 0x10], 0xffffffaa
psrldq xmm0, 4
paddd xmm1, xmm0
movd eax, xmm1
pop edx
add eax, 8
mov dword [ebp - 0x5c], eax
xor eax, eax
add edx, dword [ebp + eax*4 - 0x18]
inc eax
cmp eax, 3
jl 0x1000718c
mov dword [ebp - 0x64], edx
mov dword [ebp - 0x4c], ecx
mov dword [ebp - 0x14], 0x5c
mov dword [ebp - 0x10], 0xffffff8b
mov edi, esi
and edi, 0x26702945
and dword [ebp - 0x20], 0
lea eax, [edi - 0x20969298]
mov dword [ebp - 0x24], eax
mov eax, str.Update_available.You_do_not_have_the_latest_version_of_CCleaner
mov edx, 0x194b
mov ecx, eax
movzx eax, byte [str.Update_available.You_do_not_have_the_latest_version_of_CCleaner]
jmp 0x100071e2
add edx, eax
inc ecx
cmp edx, 0x2399
ja 0x100071e8
movzx eax, byte [ecx]
test eax, eax
jne 0x100071d4
jmp 0x100071f0
mov esi, edi
or esi, 0x221c0eea
add esi, 0x1650b531
lea edx, [edi + 0x105f5005]
mov ecx, str.Update_available.You_do_not_have_the_latest_version_of_CCleaner
mov dword [0x10026348], esi
call fcn.10006b87
push 0x31
mov edx, 0xef4
mov eax, str.172800000
pop ecx
add edx, ecx
inc eax
cmp edx, 0x1bef
ja 0x1000722d
movsx ecx, byte [eax]
test ecx, ecx
jne 0x10007219
jmp 0x10007243
call fcn.10006bf8
mov eax, edi
and eax, 0x5342e86f
mov dword [0x100263dc], eax
call fcn.1000695c
or esi, 0x365e9cdd
call fcn.100066f6
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x4c]
add eax, dword [ebp + ecx*4 - 0x14]
inc ecx
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x20], ecx
cmp ecx, 2
jl 0x100071bf
mov esi, str._RegEditX_
mov dword [ebp - 0x48], 0x621c224b
lea edi, [ebp - 0x18]
mov byte [ebp - 0x44], 0x1b
push 0x19
pop ecx
movsd dword es:[edi], dword [esi]
mov byte [ebp - 0x43], cl
mov dword [ebp - 0x42], 0x9894c85f
mov dword [ebp - 0x3e], 0x422f6106
movsd dword es:[edi], dword [esi]
mov dword [ebp - 0x3a], 0xcf889dd1
mov dword [ebp - 0x36], 0x714adf7b
mov dword [ebp - 0x32], 0x6a2e38d1
movsw word es:[edi], word [esi]
mov dword [ebp - 0x2e], 0xb386e7e4
mov word [ebp - 0x2a], 0xc103
movsb byte es:[edi], byte [esi]
xor edi, edi
xor eax, eax
mov byte [ebp + eax - 0x198], al
inc eax
cmp eax, 0x100
jb 0x100072ba
xor esi, esi
mov dword [ebp - 0x28], 0xa
xor edx, edx
mov cl, byte [ebp + esi - 0x198]
mov eax, esi
mov byte [ebp - 5], cl
div dword [ebp - 0x28]
movzx ecx, cl
movzx eax, byte [ebp + edx - 0x18]
add eax, edi
add ecx, eax
movzx edi, cl
mov al, byte [ebp + edi - 0x198]
mov byte [ebp + esi - 0x198], al
inc esi
mov al, byte [ebp - 5]
mov byte [ebp + edi - 0x198], al
cmp esi, 0x100
jb 0x100072d2
and dword [ebp - 0xc], 0
xor ecx, ecx
xor edi, edi
lea eax, [ecx + 1]
movzx edx, al
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0x20], edx
mov cl, byte [ebp + edx - 0x198]
movzx esi, cl
add eax, esi
movzx eax, al
mov dword [ebp - 0xc], eax
mov al, byte [ebp + eax - 0x198]
mov byte [ebp + edx - 0x198], al
mov eax, dword [ebp - 0xc]
mov byte [ebp + eax - 0x198], cl
mov eax, dword [ebp - 0x24]
xor eax, 0x2c3158a1
mov dword [ebp - 0x24], eax
mov dword [0x10026358], eax
push ecx
call fcn.1000697b
mov eax, dword [ebp - 0x24]
xor eax, 0x30038051
and eax, 0xf9d390d1
pop ecx
mov ecx, dword [ebp - 0x20]
mov dword [ebp - 0x24], eax
movzx eax, byte [ebp + ecx - 0x198]
add eax, esi
movzx eax, al
mov al, byte [ebp + eax - 0x198]
xor al, byte [ebp + edi - 0x48]
mov byte [ebp + edi - 0x98], al
inc edi
cmp edi, 0x20
jb 0x1000731b
mov byte [ebp - 0x78], 0
mov esi, dword [0x10026358]
lea eax, [esi + 0x51c945ea]
mov dword [0x100263dc], eax
xor ecx, ecx
lea edi, [esi + 0x73c7f894]
mov dword [ebp - 0x20], ecx
xor eax, eax
inc eax
cmp eax, 0x687
jl 0x100073d9
cmp byte [eax + str.172800000], 0
jne 0x100073c6
jmp 0x100073ed
call fcn.10006ac6
mov ecx, dword [ebp - 0x20]
imul esi, esi, 0xafa25bde
mov dword [0x10026358], esi
mov eax, esi
or eax, 0x3bfc3a14
inc ecx
mov dword [0x100263dc], eax
mov dword [ebp - 0x20], ecx
cmp ecx, 0x100
jb 0x100073c4
push 0x40
mov eax, edi
pop edx
or eax, 0x22287b1e
mov dword [ebp - 0x20], edx
imul esi, eax, 0x1900940
mov dword [0x10026358], esi
imul ecx, edi, 0x2f3ef902
and dword [ebp - 4], 0
mov dword [ebp - 0x1c], 0x57
mov dword [ebp - 0x18], 0x2e
mov dword [ebp - 0x14], edx
mov dword [ebp - 0x10], 0xfffffefb
xor eax, eax
cmp byte [str.Update_available.You_do_not_have_the_latest_version_of_CCleaner], al
je 0x10007469
inc eax
cmp eax, 0x80f
je 0x1000745d
cmp byte [eax + str.Update_available.You_do_not_have_the_latest_version_of_CCleaner], 0
jne 0x1000744a
jmp 0x10007469
lea esi, [edi - 0x1a8c06f2]
mov dword [0x10026358], esi
mov edi, esi
xor edi, 0xea75ec94
mov al, byte [str.Update_available.You_do_not_have_the_latest_version_of_CCleaner]
or ecx, 0xd2fc7b5e
mov edx, str.Update_available.You_do_not_have_the_latest_version_of_CCleaner
jmp 0x1000748c
sub al, 0x30
cmp al, 9
ja 0x10007492
inc edx
mov al, byte [edx]
test al, al
jne 0x10007483
jmp 0x1000749a
mov ecx, esi
xor ecx, 0x58c9b00a
mov edx, dword [ebp - 4]
and edi, 0x653a8ce9
mov eax, dword [ebp - 0x20]
add eax, dword [ebp + edx*4 - 0x1c]
inc edx
mov dword [ebp - 0x20], eax
mov dword [ebp - 4], edx
cmp edx, 4
jl 0x10007440
and dword [ebp - 4], 0
mov dword [ebp - 0x14], 0x11
mov dword [ebp - 0x10], 0x3e5
xor eax, eax
cmp byte [str.Update_available.You_do_not_have_the_latest_version_of_CCleaner], al
je 0x100074f0
inc eax
cmp eax, 0x35f
jl 0x100074e5
cmp byte [eax + str.Update_available.You_do_not_have_the_latest_version_of_CCleaner], 0
jne 0x100074d2
jmp 0x100074f0
call fcn.10006dec
or edi, 0xe01ec12d
sub edi, 0x39e3bb8a
call fcn.10006f61
mov ecx, dword [ebp - 4]
and esi, 0x4408896
mov eax, dword [ebp - 0x28]
or esi, 0xdaaa6701
mov dword [0x10026358], esi
add eax, dword [ebp + ecx*4 - 0x14]
inc ecx
mov dword [ebp - 0x28], eax
mov dword [ebp - 4], ecx
cmp ecx, 2
jl 0x100074c8
mov dl, byte [str.Update_available.You_do_not_have_the_latest_version_of_CCleaner]
mov ecx, 0x34f
movzx eax, dl
test dl, dl
je 0x1000755e
mov edi, str.Update_available.You_do_not_have_the_latest_version_of_CCleaner
add ecx, eax
inc edi
cmp ecx, 0x1a44
ja 0x1000754e
movzx eax, byte [edi]
test eax, eax
jne 0x1000753a
jmp 0x1000755e
call fcn.10006889
call fcn.10006c7f
mov dl, byte [str.Update_available.You_do_not_have_the_latest_version_of_CCleaner]
mov dword [ebp - 0x1c], 0x54
mov dword [ebp - 0x18], 0x26
mov dword [ebp - 0x14], 0x61
mov dword [ebp - 0x10], 0x11c
movups xmm1, xmmword [ebp - 0x1c]
mov dword [ebp - 0x14], 0x2b
mov dword [ebp - 0x10], 0xffffff16
paddd xmm1, xmm2
mov dword [ebp - 0x1c], 0x41
movaps xmm0, xmm1
mov dword [ebp - 0x18], 0x32
psrldq xmm0, 8
paddd xmm1, xmm0
movups xmm0, xmm1
psrldq xmm0, 4
paddd xmm1, xmm0
movd eax, xmm1
movups xmm1, xmmword [ebp - 0x1c]
push 0x19
add eax, 9
mov dword [ebp - 0x14], 0x5f
paddd xmm1, xmm2
mov dword [ebp - 0x6c], eax
movaps xmm0, xmm1
mov dword [ebp - 0x10], 0xffffff89
psrldq xmm0, 8
paddd xmm1, xmm0
movups xmm0, xmm1
psrldq xmm0, 4
paddd xmm1, xmm0
movd eax, xmm1
pop ecx
add eax, 0x4c
mov dword [ebp - 0x70], eax
xor eax, eax
add esi, 0xfc76400
mov dword [ebp - 0xc], esi
add ecx, dword [ebp + eax*4 - 0x14]
inc eax
cmp eax, 2
jl 0x10007606
mov dword [ebp - 0x74], ecx
lea edi, [ebp - 0x40]
push 5
pop ecx
mov esi, str.erh_onaccountchanged
mov dword [ebp - 0x14], 0x9f45e6dc
rep movsd dword es:[edi], dword [esi]
xor eax, eax
mov byte [ebp - 0x10], 0x10
movsb byte es:[edi], byte [esi]
test dl, dl
je 0x10007647
inc eax
cmp eax, 0x10cc
jl 0x100077ea
cmp byte [eax + str.Update_available.You_do_not_have_the_latest_version_of_CCleaner], 0
jne 0x10007632
mov eax, dword [ebp - 0xc]
imul esi, eax, 0xda72f154
and dword [ebp - 0xc], 0
and dword [ebp - 4], 0
call fcn.10006ce1
mov eax, dword [ebp - 4]
imul esi, esi, 0x2fb9f3e2
mov byte [ebp + eax - 0x198], al
inc eax
mov dword [ebp - 4], eax
mov dword [0x10026348], esi
cmp eax, 0x100
jb 0x10007658
mov eax, esi
mov dword [ebp - 0x50], esi
xor eax, 0xd8e52bc5
xor edi, edi
mov dword [ebp - 0x24], eax
imul eax, esi, 0xe294185c
mov dword [ebp - 0x58], eax
xor edx, edx
mov dword [ebp - 4], 0x14
mov eax, edi
mov cl, byte [ebp + edi - 0x198]
div dword [ebp - 4]
mov byte [ebp - 5], cl
movzx ecx, cl
movzx eax, byte [ebp + edx - 0x40]
add eax, dword [ebp - 0xc]
add ecx, eax
movzx eax, cl
mov dword [ebp - 0xc], eax
mov edx, dword [ebp - 0x58]
mov ecx, str.172800000
call fcn.10006b87
mov ecx, dword [ebp - 0xc]
mov al, byte [ebp + ecx - 0x198]
mov byte [ebp + edi - 0x198], al
inc edi
mov al, byte [ebp - 5]
mov byte [ebp + ecx - 0x198], al
cmp edi, 0x100
jb 0x10007696
and dword [ebp - 0xc], 0
xor eax, eax
mov esi, dword [ebp - 0x24]
xor edi, edi
inc eax
imul esi, esi, 0x28debac8
movzx eax, al
mov dword [ebp - 4], eax
mov cl, byte [ebp + eax - 0x198]
mov eax, dword [ebp - 0xc]
movzx edx, cl
add eax, edx
mov dword [ebp - 0x24], esi
mov esi, dword [ebp - 4]
movzx eax, al
mov dword [ebp - 0xc], eax
mov al, byte [ebp + eax - 0x198]
mov byte [ebp + esi - 0x198], al
mov eax, dword [ebp - 0xc]
mov byte [ebp + eax - 0x198], cl
mov eax, esi
mov esi, dword [ebp - 0x24]
movzx eax, byte [ebp + eax - 0x198]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x198]
xor al, byte [ebp + edi - 0x14]
mov byte [ebp + edi - 0x58], al
inc edi
mov eax, dword [ebp - 4]
cmp edi, 5
jb 0x100076fd
mov esi, dword [ebp - 0x50]
mov dword [ebp - 0x1c], 0x37
or esi, 0xcca4d17e
mov dword [ebp - 0x18], 0x62
mov dword [ebp - 0x14], 3
mov dword [ebp - 0x10], 0xd10
movups xmm0, xmmword [ebp - 0x1c]
lea eax, [esi + 0x15dd7a7e]
mov byte [ebp - 0x53], 0
mov dword [0x10026358], eax
psubd xmm2, xmm0
mov dword [0x100263dc], esi
movaps xmm0, xmm2
psrldq xmm0, 8
paddd xmm2, xmm0
movups xmm0, xmm2
psrldq xmm0, 4
paddd xmm2, xmm0
movd eax, xmm2
add eax, 0xf0a
mov dword [ebp - 0x50], eax
call fcn.1001ab08
call fcn.10005017
test eax, eax
je 0x100077fb
and dword [0x100263dc], 0xc7d8826c
jmp 0x100078c8
call fcn.10006e4e
imul eax, dword [ebp - 0xc], 0x27f1aedd
jmp 0x1000764a
mov ecx, dword [ebp - 0x5c]
mov eax, dword [0x10026348]
imul ecx, dword [ebp - 0x60]
or eax, 0xf7e730be
mov dword [0x10026358], eax
call fcn.10012764
mov edi, eax
call fcn.100020df
test eax, eax
jne 0x100078c8
call fcn.100042ce
test eax, eax
jne 0x100078c8
cmp edi, dword [ebp - 0x64]
je 0x100078c8
call fcn.10004810
test eax, eax
jne 0x100078c8
mov ecx, dword [ebp - 0x68]
mov edx, edi
call fcn.1000b5c9
mov esi, eax
mov dword [ebp - 4], esi
call fcn.10001c9d
test eax, eax
jne 0x100078c8
mov ecx, esi
call fcn.10012764
mov ecx, dword [ebp - 0x4c]
mov esi, eax
cmp esi, ecx
je 0x100078c8
mov edx, dword [ebp - 4]
lea eax, [ebp - 0x98]
push esi
push ecx
push eax
mov ecx, edi
call fcn.10017129
mov eax, dword [ebp - 0x6c]
imul eax, dword [ebp - 0x28]
push eax
push dword [ebp - 0x20]
push edi
call fcn.10012bc8
mov ecx, edi
call fcn.100129d7
mov ecx, esi
call fcn.10014599
push dword [ebp - 4]
push dword [ebp - 0x70]
push esi
call fcn.10012bc8
add esp, 0x24
mov ecx, esi
call fcn.100129d7
push dword [ebp - 0x50]
mov ecx, dword [ebp - 0x74]
lea edx, [ebp - 0x58]
call fcn.1001ab39
call eax
pop edi
pop esi
leave
ret