Function at 0x10150a64
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x68
mov eax, dword [0x10081240]
xor eax, esp
mov dword [esp + 0x64], eax
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 8]
mov dword [esp + 0x4c], ecx
push esi
push edi
cmp eax, 1
jne 0x101511ad
push ecx
call dword [0x1007208c]
push 0x104
call fcn.10192d77
push 0x104
mov esi, eax
push 0
push esi
call fcn.101937f6
add esp, 0x10
push 0x104
push esi
push 0
call dword [0x10072094]
push eax
call dword [0x10072088]
mov eax, str.UnityCrashHandler32.exe
mov cl, byte [esi]
cmp cl, byte [eax]
jne 0x10150aea
test cl, cl
je 0x10150ae6
mov cl, byte [esi + 1]
cmp cl, byte [eax + 1]
jne 0x10150aea
add esi, 2
add eax, 2
test cl, cl
jne 0x10150aca
xor eax, eax
jmp 0x10150aef
sbb eax, eax
or eax, 1
test eax, eax
je 0x101511c3
movq xmm0, qword [str.bFVUXp_9]
xor edx, edx
mov al, byte [0x1007b354]
movq qword [esp + 0x5c], xmm0
mov byte [esp + 0x64], al
mov dword [esp + 0xc], edx
mov eax, 0x51eb851f
mul edx
shr edx, 4
movsx eax, dl
mov edx, dword [esp + 0xc]
mov cl, dl
imul eax, eax, 0x32
sub cl, al
add cl, 0x31
xor byte [esp + edx + 0x5c], cl
inc edx
mov dword [esp + 0xc], edx
cmp edx, 9
jl 0x10150b14
lea ecx, [esp + 0x5c]
mov dword [0x10084174], 2
lea edx, [ecx + 1]
nop word [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10150b54
sub ecx, edx
lea eax, [esp + 0x5c]
push ecx
push eax
push 0x10084154
call fcn.101937fc
push 0x55
call fcn.10192d77
add esp, 0x10
mov esi, eax
push 0x55
push esi
push 0x1001
push 0x400
call dword [0x10072024]
push str.Russia
push esi
call dword [0x10072188]
add esp, 8
test eax, eax
je 0x10150c05
mov dword [0x10084178], 0x1007b3e8
mov dword [0x10084140], 0x1007b478
mov dword [0x10084180], 0x1007b4c4
mov dword [0x10084150], 0x1007b500
mov dword [0x10084144], 0x1007b540
mov dword [0x10084148], 0x1007b5a0
mov dword [0x10084138], 0x1007b618
mov dword [0x10084134], 0x1007b678
mov dword [0x1008414c], 0x1007b6a4
call fcn.10153164
mov eax, 0x1007b710
jmp 0x10150c69
mov dword [0x10084178], str.Failed_write_to_registry._Restart_the_game_with_administrator_rights
mov dword [0x10084140], 0x1007b43c
mov dword [0x10084180], 0x1007b4a8
mov dword [0x10084150], 0x1007b4e8
mov dword [0x10084144], 0x1007b524
mov dword [0x10084148], 0x1007b568
mov dword [0x10084138], 0x1007b5d4
mov dword [0x10084134], 0x1007b65c
mov dword [0x1008414c], 0x1007b694
call fcn.10152f64
mov eax, str.The_game_with_this_FakeAppId_is_blocked_for_family_viewing._Please_exit_the_family_view
mov dword [0x1008413c], eax
call fcn.10159604
call fcn.1014c784
call fcn.10159604
lea edx, [esp + 0x5c]
mov dword [esp + 0x5c], 0
mov ecx, 0x10081408
mov dword [esp + 0x60], 0x100812ac
call fcn.10159144
cmp dword [esp + 0x5c], 0
lea edx, [esp + 0x5c]
jne 0x101511db
mov ecx, 0x100813c0
mov dword [esp + 0x5c], 0
mov dword [esp + 0x60], 0x100812ac
call fcn.10159144
cmp dword [esp + 0x5c], 0
lea edx, [esp + 0x5c]
jne 0x101511ea
mov ecx, 0x10081480
mov dword [esp + 0x5c], 0
mov dword [esp + 0x60], 0x100812ac
call fcn.10159144
cmp dword [esp + 0x5c], 0
lea edx, [esp + 0x5c]
jne 0x101511f9
mov ecx, 0x100813d8
mov dword [esp + 0x5c], 0
mov dword [esp + 0x60], 0x100812ac
call fcn.10159144
cmp dword [esp + 0x5c], 0
lea edx, [esp + 0x5c]
jne 0x10151208
mov ecx, 0x10081450
mov dword [esp + 0x5c], 0
mov dword [esp + 0x60], 0x100812ac
call fcn.10159144
cmp dword [esp + 0x5c], 0
jne 0x10151217
push 0x104
call fcn.10192d77
push 0x104
mov esi, eax
push 0
push esi
call fcn.101937f6
movups xmm0, xmmword [str.YFGD]
mov ax, word [0x1007b33c]
add esp, 0x10
cmp dword [0x10081344], 0xf
mov edi, 0x10081330
movups xmmword [esp + 0x20], xmm0
mov word [esp + 0x38], ax
movq xmm0, qword [0x1007b334]
mov al, byte [0x1007b33e]
movq qword [esp + 0x30], xmm0
mov byte [esp + 0x3a], al
jbe 0x10150da8
mov edi, dword [0x10081330]
xor edx, edx
cmp dword [0x10083f18], 2
mov dword [esp + 0xc], edx
jl 0x10150ee4
movaps xmm0, xmmword [str.111111111111111122222222222222225555555555555555]
lea eax, [edx + 4]
movaps xmm4, xmmword [0x1007be10]
movaps xmm3, xmmword [0x1007bee0]
movaps xmm5, xmmword [0x1007be30]
movaps xmmword [esp + 0x10], xmm0
mov ecx, dword [esp + 0x10]
nop
movd xmm0, edx
add edx, 8
pshufd xmm2, xmm0, 0
paddd xmm2, xmm4
movaps xmm1, xmm2
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
punpckldq xmm1, xmm2
pmuldq xmm0, xmm3
pmuldq xmm1, xmm3
shufps xmm1, xmm0, 0xdd
psrad xmm1, 4
movaps xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmm5
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
andps xmm1, xmmword [0x1007be70]
packuswb xmm1, xmm1
movd xmm0, ecx
paddb xmm1, xmm0
movd xmm0, dword [esp + eax + 0x1c]
xorps xmm1, xmm0
movd xmm0, eax
pshufd xmm2, xmm0, 0
movd dword [esp + eax + 0x1c], xmm1
paddd xmm2, xmm4
movaps xmm1, xmm2
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
punpckldq xmm1, xmm2
pmuldq xmm0, xmm3
pmuldq xmm1, xmm3
shufps xmm1, xmm0, 0xdd
psrad xmm1, 4
movaps xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmm5
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
andps xmm1, xmmword [0x1007be70]
packuswb xmm1, xmm1
movd xmm0, ecx
paddb xmm1, xmm0
movd xmm0, dword [esp + eax + 0x20]
xorps xmm1, xmm0
movd dword [esp + eax + 0x20], xmm1
add eax, 8
cmp eax, 0x1c
jl 0x10150de4
mov dword [esp + 0xc], edx
cmp edx, 0x1b
jge 0x10150f14
mov eax, 0x51eb851f
imul edx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [esp + 0xc]
movsx eax, al
mov cl, dl
imul eax, eax, 0x32
sub cl, al
add cl, 0x31
xor byte [esp + edx + 0x20], cl
inc edx
mov dword [esp + 0xc], edx
cmp edx, 0x1b
jl 0x10150ee4
push edi
lea eax, [esp + 0x24]
push eax
push 0x104
push esi
call fcn.10150a24
mov eax, 0x10034600
mov ecx, 0x100349e0
add eax, 3
add ecx, 3
mov dword [0x100841c4], eax
add esp, 0x10
mov eax, 0x100345d0
mov dword [0x100841c8], ecx
add eax, 3
mov dword [0x100841bc], eax
mov eax, 0x10034550
add eax, 3
mov dword [0x100841c0], eax
mov eax, 0x10034990
add eax, 3
xor edx, edx
mov dword [0x100841cc], eax
lea eax, [ecx - 3]
mov dword [esp + 0x58], eax
mov eax, dword [str.w_VQaf7]
mov dword [esp + 0x5c], eax
mov ax, word [0x1007b024]
mov word [esp + 0x60], ax
mov al, byte [0x1007b026]
mov byte [esp + 0x62], al
mov dword [esp + 0xc], edx
mov eax, 0x51eb851f
mul edx
shr edx, 4
movsx eax, dl
mov edx, dword [esp + 0xc]
mov cl, dl
imul eax, eax, 0x32
sub cl, al
add cl, 0x31
xor byte [esp + edx + 0x5c], cl
inc edx
mov dword [esp + 0xc], edx
cmp edx, 7
jl 0x10150f94
mov ax, word [0x1007b348]
xor edx, edx
movq xmm0, qword [str.w_VQafhwK__]
mov word [esp + 0x50], ax
mov al, byte [0x1007b34a]
movq qword [esp + 0x48], xmm0
mov byte [esp + 0x52], al
mov dword [esp + 0xc], edx
mov eax, 0x51eb851f
mul edx
shr edx, 4
movsx eax, dl
mov edx, dword [esp + 0xc]
mov cl, dl
imul eax, eax, 0x32
sub cl, al
add cl, 0x31
xor byte [esp + edx + 0x48], cl
inc edx
mov dword [esp + 0xc], edx
cmp edx, 0xb
jl 0x10150fe5
mov eax, dword [0x1007b360]
xor edx, edx
cmp dword [0x10083f18], 2
movq xmm0, qword [str.bFVUXp__n_b]
mov dword [esp + 0x18], eax
mov ax, word [0x1007b364]
mov word [esp + 0x1c], ax
mov al, byte [0x1007b366]
movq qword [esp + 0x10], xmm0
mov byte [esp + 0x1e], al
mov dword [esp + 0xc], edx
jl 0x10151147
movaps xmm2, xmmword [0x1007be10]
mov edx, 8
movaps xmm4, xmmword [0x1007bee0]
movaps xmm1, xmm2
punpckldq xmm1, xmm2
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm4
pmuldq xmm1, xmm4
shufps xmm1, xmm0, 0xdd
psrad xmm1, 4
mov eax, dword [str.111111111111111122222222222222225555555555555555]
movaps xmm0, xmm1
mov dword [esp + 0xc], edx
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmmword [0x1007be30]
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
movaps xmm2, xmmword [0x1007be20]
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
andps xmm1, xmmword [0x1007be70]
packuswb xmm1, xmm1
movd xmm0, eax
paddb xmm1, xmm0
movd xmm0, dword [str.bFVUXp__n_b]
xorps xmm1, xmm0
movaps xmm0, xmm2
movd dword [esp + 0x10], xmm1
movaps xmm1, xmm2
punpckhdq xmm0, xmm2
punpckldq xmm1, xmm2
pmuldq xmm0, xmm4
pmuldq xmm1, xmm4
shufps xmm1, xmm0, 0xdd
psrad xmm1, 4
movaps xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmmword [0x1007be30]
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
andps xmm1, xmmword [0x1007be70]
packuswb xmm1, xmm1
movd xmm0, eax
paddb xmm1, xmm0
movd xmm0, dword [esp + 0x14]
xorps xmm1, xmm0
movd dword [esp + 0x14], xmm1
mov eax, 0x51eb851f
imul edx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [esp + 0xc]
movsx eax, al
mov cl, dl
imul eax, eax, 0x32
sub cl, al
add cl, 0x31
xor byte [esp + edx + 0x10], cl
inc edx
mov dword [esp + 0xc], edx
cmp edx, 0xf
jl 0x10151147
mov edi, dword [esp + 0x54]
lea eax, [esp + 0x5c]
push eax
lea eax, [esp + 0x4c]
push eax
lea eax, [esp + 0x18]
push eax
push edi
call dword [esp + 0x68]
push esi
lea eax, [esp + 0x7f]
mov dword [esp + 0x7c], 0x1007b320
push eax
mov eax, dword [0x100841cc]
push edi
add eax, 0xfffffffd
call eax
add esp, 0x1c
jmp 0x101511c3
test eax, eax
jne 0x101511c3
cmp dword [0x10084100], eax
je 0x101511be
mov dword [0x10084100], eax
call fcn.10154034
mov ecx, dword [esp + 0x6c]
mov eax, 1
pop edi
pop esi
xor ecx, esp
call fcn.101927e4
mov esp, ebp
pop ebp
ret 0xc
push 0x10081408
mov ecx, str.create_directories
call fcn.10158f64
push 0x100813c0
mov ecx, str.create_directories
call fcn.10158f64
push 0x10081480
mov ecx, str.create_directories
call fcn.10158f64
push 0x100813d8
mov ecx, str.create_directories
call fcn.10158f64
push 0x10081450
lea edx, [esp + 0x60]
mov ecx, str.create_directories
call fcn.10158f64
int3