Function at 0x1008e6dc
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x24
mov eax, dword [0x1002520c]
xor eax, esp
mov dword [esp + 0x20], eax
mov eax, dword [ebp + 0xc]
push ebx
push esi
push edi
mov edi, dword [ebp + 8]
cmp eax, 1
jne 0x1008ec18
push edi
call dword [0x10020078]
push 0x104
call fcn.1009de81
push 0x104
mov esi, eax
push 0
push esi
call fcn.1009e861
add esp, 0x10
push 0x104
push esi
push edi
call dword [0x10020080]
push eax
call dword [0x10020074]
mov eax, str.UnityCrashHandler32.exe
mov cl, byte [esi]
cmp cl, byte [eax]
jne 0x1008e75e
test cl, cl
je 0x1008e75a
mov cl, byte [esi + 1]
cmp cl, byte [eax + 1]
jne 0x1008e75e
add esi, 2
add eax, 2
test cl, cl
jne 0x1008e73e
xor eax, eax
jmp 0x1008e763
sbb eax, eax
or eax, 1
test eax, eax
je 0x1008ec21
movq xmm0, qword [0x100209a0]
xor ebx, ebx
mov al, byte [0x100209a8]
movq qword [esp + 0x20], xmm0
mov byte [esp + 0x28], al
nop dword [eax + eax]
mov eax, 0x2f684bdb
mov cl, bl
mul ebx
mov eax, ebx
sub eax, edx
shr eax, 1
add eax, edx
shr eax, 5
movsx eax, al
imul eax, eax, 0x36
sub cl, al
add cl, 0x35
xor byte [esp + ebx + 0x20], cl
inc ebx
cmp ebx, 9
jl 0x1008e78c
lea ecx, [esp + 0x20]
mov dword [0x10025b68], 1
lea edx, [ecx + 1]
nop word [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x1008e7cc
sub ecx, edx
lea eax, [esp + 0x20]
push ecx
push eax
push 0x10025b38
call fcn.1009e9cb
push 0x1002064f
push 0
call dword [0x100201bc]
push str.Russia
push eax
call dword [0x10020194]
add esp, 0x1c
test eax, eax
je 0x1008e87f
mov dword [0x10025b6c], 0x10020ae0
mov esi, 0x10020e90
mov dword [0x10025b64], 0x10020b54
mov dword [0x10025b5c], 0x10020b9c
mov dword [0x10025b34], 0x10020bf8
mov dword [0x10025b74], 0x10020c44
mov dword [0x10025b30], 0x10020c80
mov dword [0x10025b58], 0x10020cc0
mov dword [0x10025b80], 0x10020d20
mov dword [0x10025b7c], 0x10020d98
mov dword [0x10025b78], 0x10020df8
mov dword [0x10025b2c], 0x10020e24
call fcn.1009069c
jmp 0x1008e8f7
mov dword [0x10025b6c], str.Failed_write_to_registry._Restart_the_game_with_administrator_rights
mov esi, str.The_game_with_this_FakeAppId_is_blocked_for_family_viewing._Please_exit_the_family_view
mov dword [0x10025b64], 0x10020b34
mov dword [0x10025b5c], 0x10020b7c
mov dword [0x10025b34], 0x10020bbc
mov dword [0x10025b74], 0x10020c28
mov dword [0x10025b30], 0x10020c68
mov dword [0x10025b58], 0x10020ca4
mov dword [0x10025b80], 0x10020ce8
mov dword [0x10025b7c], 0x10020d54
mov dword [0x10025b78], 0x10020ddc
mov dword [0x10025b2c], 0x10020e14
call fcn.1009047c
mov dword [0x10025b60], eax
mov dword [0x10025b28], esi
call fcn.1009269c
call fcn.1008a10c
call fcn.1009269c
lea edx, [esp + 0x20]
mov dword [esp + 0x20], 0
mov ecx, 0x1002536c
mov dword [esp + 0x24], 0x1002522c
call fcn.100921cc
cmp dword [esp + 0x20], 0
lea edx, [esp + 0x20]
jne 0x1008ec3a
mov ecx, 0x10025324
mov dword [esp + 0x20], 0
mov dword [esp + 0x24], 0x1002522c
call fcn.100921cc
cmp dword [esp + 0x20], 0
lea edx, [esp + 0x20]
jne 0x1008ec49
mov ecx, 0x100253b4
mov dword [esp + 0x20], 0
mov dword [esp + 0x24], 0x1002522c
call fcn.100921cc
cmp dword [esp + 0x20], 0
lea edx, [esp + 0x20]
jne 0x1008ec58
mov ecx, 0x1002533c
mov dword [esp + 0x20], 0
mov dword [esp + 0x24], 0x1002522c
call fcn.100921cc
cmp dword [esp + 0x20], 0
jne 0x1008ec67
mov ax, word [0x1002099c]
xor ebx, ebx
movq xmm0, qword [str.sDR_mjdsOY_]
mov word [esp + 0x28], ax
mov al, byte [0x1002099e]
movq qword [esp + 0x20], xmm0
mov byte [esp + 0x2a], al
nop dword [eax]
mov eax, 0x2f684bdb
mov cl, bl
mul ebx
mov eax, ebx
sub eax, edx
shr eax, 1
add eax, edx
shr eax, 5
movsx eax, al
imul eax, eax, 0x36
sub cl, al
add cl, 0x35
xor byte [esp + ebx + 0x20], cl
inc ebx
cmp ebx, 0xb
jl 0x1008e9dc
mov eax, dword [0x100209d0]
xor ebx, ebx
cmp dword [0x10025a5c], 2
movq xmm0, qword [0x100209c8]
mov dword [esp + 0x18], eax
mov ax, word [0x100209d4]
mov word [esp + 0x1c], ax
mov al, byte [0x100209d6]
movq qword [esp + 0x10], xmm0
mov byte [esp + 0x1e], al
jl 0x1008eb43
movaps xmm2, xmmword [0x10021370]
mov eax, 4
movaps xmm3, xmmword [0x10021420]
movaps xmm1, xmm2
punpckldq xmm1, xmm2
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
mov ebx, 8
pmuldq xmm0, xmm3
pmuldq xmm1, xmm3
shufps xmm1, xmm0, 0xdd
movd xmm4, eax
mov eax, 0x1f
psrad xmm1, xmm4
movaps xmm0, xmm1
movd xmm5, eax
psrld xmm0, xmm5
paddd xmm0, xmm1
pmulld xmm0, xmmword [0x100213b0]
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
movaps xmm2, xmmword [0x10021380]
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x100213d0]
movd xmm0, dword [0x100209c8]
packuswb xmm1, xmm1
paddb xmm1, xmmword [str.555555555555555566666666666666669999999999999999]
pxor xmm1, xmm0
movaps xmm0, xmm2
movd dword [esp + 0x10], xmm1
movaps xmm1, xmm2
punpckldq xmm1, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm3
pmuldq xmm1, xmm3
shufps xmm1, xmm0, 0xdd
psrad xmm1, xmm4
movaps xmm0, xmm1
psrld xmm0, xmm5
paddd xmm0, xmm1
pmulld xmm0, xmmword [0x100213b0]
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x100213d0]
movd xmm0, dword [esp + 0x14]
packuswb xmm1, xmm1
paddb xmm1, xmmword [str.555555555555555566666666666666669999999999999999]
pxor xmm1, xmm0
movd dword [esp + 0x14], xmm1
mov eax, 0x4bda12f7
mov cl, bl
imul ebx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
movsx eax, al
imul eax, eax, 0x36
sub cl, al
add cl, 0x35
xor byte [esp + ebx + 0x10], cl
inc ebx
cmp ebx, 0xf
jl 0x1008eb43
lea eax, [esp + 0x10]
mov dword [0x10025b88], eax
lea eax, [esp + 0x20]
push 0x104
mov dword [0x10025b84], eax
call fcn.1009de81
push 0x104
mov esi, eax
push 0
push esi
call fcn.1009e861
add esp, 0x10
push 0x104
push esi
push edi
call dword [0x10020080]
push eax
call dword [0x10020074]
mov eax, dword [0x10025b88]
mov cl, byte [esi]
cmp cl, byte [eax]
jne 0x1008ebd2
test cl, cl
je 0x1008ebce
mov cl, byte [esi + 1]
cmp cl, byte [eax + 1]
jne 0x1008ebd2
add esi, 2
add eax, 2
test cl, cl
jne 0x1008ebb2
xor eax, eax
jmp 0x1008ebd7
sbb eax, eax
or eax, 1
test eax, eax
jne 0x1008ec7a
push dword [0x10025b84]
mov esi, dword [0x10020020]
push edi
call esi
test eax, eax
je 0x1008ec9b
push dword [0x10025b84]
push edi
call esi
call eax
push dword [0x10025b84]
mov dword [0x1002523c], 0x1000d800
push edi
call esi
call eax
jmp 0x1008ec21
test eax, eax
jne 0x1008ec21
mov dword [0x10025b18], eax
mov ecx, dword [esp + 0x2c]
mov eax, 1
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.1009d7c7
mov esp, ebp
pop ebp
ret 0xc
push 0x1002536c
mov ecx, str.create_directories
call fcn.1009206c
push 0x10025324
mov ecx, str.create_directories
call fcn.1009206c
push 0x100253b4
mov ecx, str.create_directories
call fcn.1009206c
push 0x1002533c
lea edx, [esp + 0x24]
mov ecx, str.create_directories
call fcn.1009206c
push dword [0x10025b60]
call fcn.1009093c
add esp, 4
mov byte [esp + 0xf], al
lea eax, [esp + 0xf]
push 0x10023530
push eax
call fcn.1009e867
push dword [0x10025b60]
call fcn.1009093c
add esp, 4
mov byte [esp + 0xf], al
lea eax, [esp + 0xf]
push 0x10023530
push eax
call fcn.1009e867
int3