Function at 0x1008a10c
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1001d4ce
mov eax, dword fs:[0]
push eax
sub esp, 0xbc
mov eax, dword [0x1002520c]
xor eax, ebp
mov dword [ebp - 0x14], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
cmp dword [0x100253f8], 8
mov eax, 0x100253e4
mov ecx, 0x10025bbc
cmovae eax, dword [0x100253e4]
push eax
call fcn.1008b8cc
test eax, eax
js 0x1008b136
cmp dword [0x10025254], 0x10
lea eax, [ebp - 0x7c]
push eax
lea eax, [ebp - 0x6c]
mov dword [ebp - 0x7c], str.Main
mov edi, 0x10025240
mov dword [ebp - 0x78], 0
cmovae edi, dword [0x10025240]
mov ecx, 0x10025bcc
push eax
mov dword [ebp - 0x74], 0
call fcn.1008d1ac
mov esi, dword [ebp - 0x64]
lea eax, [ebp - 0x7c]
push eax
push esi
call fcn.1008d25c
mov edx, dword [0x10025bcc]
test al, al
cmovne edx, esi
cmp edx, dword [0x10025bcc]
je 0x1008a1e7
lea esi, [edx + 0x1c]
mov dword [ebp - 0x6c], str.GameName
lea eax, [ebp - 0x6c]
mov dword [ebp - 0x68], 0
push eax
mov ecx, esi
mov dword [ebp - 0x64], 0
call fcn.1008cd7c
cmp eax, dword [esi]
je 0x1008a1e7
mov edi, dword [eax + 0x1c]
mov ecx, edi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x1008a1ec
sub ecx, edx
push ecx
push edi
mov ecx, 0x10025240
call fcn.1008b4dc
xorps xmm0, xmm0
mov dword [ebp - 0x1c], 0
movups xmmword [ebp - 0x2c], xmm0
mov dword [ebp - 0x18], 0xf
mov byte [ebp - 0x2c], 0
mov dword [ebp - 4], 0
lea eax, [ebp - 0x7c]
cmp dword [0x1002526c], 0x10
mov edi, 0x10025258
push eax
cmovae edi, dword [0x10025258]
lea eax, [ebp - 0x6c]
push eax
mov ecx, 0x10025bcc
mov dword [ebp - 0x7c], str.Main
mov dword [ebp - 0x78], 0
mov dword [ebp - 0x74], 0
call fcn.1008d1ac
mov esi, dword [ebp - 0x64]
lea eax, [ebp - 0x7c]
push eax
push esi
call fcn.1008d25c
mov edx, dword [0x10025bcc]
test al, al
cmovne edx, esi
cmp edx, dword [0x10025bcc]
je 0x1008a2a5
lea esi, [edx + 0x1c]
mov dword [ebp - 0x6c], str.RealAppId
lea eax, [ebp - 0x6c]
mov dword [ebp - 0x68], 0
push eax
mov ecx, esi
mov dword [ebp - 0x64], 0
call fcn.1008cd7c
cmp eax, dword [esi]
je 0x1008a2a5
mov edi, dword [eax + 0x1c]
mov ecx, edi
lea edx, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x1008a2ac
sub ecx, edx
push ecx
push edi
lea ecx, [ebp - 0x2c]
call fcn.1008b4dc
cmp dword [ebp - 0x18], 0x10
lea ecx, [ebp - 0x2c]
mov esi, dword [ebp - 0x1c]
mov edx, esi
cmovae ecx, dword [ebp - 0x2c]
push 1
push 0x10020690
call fcn.1008ce6c
add esp, 8
test al, al
jne 0x1008b10c
test esi, esi
je 0x1008b10c
mov byte [ebp - 4], 1
call dword [0x10020208]
cmp dword [ebp - 0x18], 0x10
lea esi, [ebp - 0x2c]
mov edi, eax
lea eax, [ebp - 0x60]
cmovae esi, dword [ebp - 0x2c]
push 0xa
push eax
push esi
mov dword [edi], 0
call dword [0x100201a4]
add esp, 0xc
cmp esi, dword [ebp - 0x60]
jne 0x1008a32b
push str.invalid_stoi_argument
call dword [0x10020138]
cmp dword [edi], 0x22
jne 0x1008a33b
push str.stoi_argument_out_of_range
call dword [0x1002013c]
mov dword [ebp - 4], 0
lea eax, [ebp - 0x2c]
cmp dword [ebp - 0x18], 0x10
mov ecx, 0x10025258
push dword [ebp - 0x1c]
cmovae eax, dword [ebp - 0x2c]
push eax
call fcn.1008b4dc
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0x18]
cmp ecx, 0x10
jb 0x1008a398
mov edx, dword [ebp - 0x2c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1008a38e
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x1008a38e
call dword [0x100201dc]
push ecx
push edx
call fcn.1009dd32
add esp, 8
xorps xmm0, xmm0
mov dword [ebp - 0x34], 0
movups xmmword [ebp - 0x44], xmm0
mov dword [ebp - 0x30], 0xf
mov byte [ebp - 0x44], 0
mov dword [ebp - 4], 3
lea eax, [ebp - 0x7c]
cmp dword [0x10025284], 0x10
mov edi, 0x10025270
push eax
cmovae edi, dword [0x10025270]
lea eax, [ebp - 0x6c]
push eax
mov ecx, 0x10025bcc
mov dword [ebp - 0x7c], str.Main
mov dword [ebp - 0x78], 0
mov dword [ebp - 0x74], 0
call fcn.1008d1ac
mov esi, dword [ebp - 0x64]
lea eax, [ebp - 0x7c]
push eax
push esi
call fcn.1008d25c
mov edx, dword [0x10025bcc]
test al, al
cmovne edx, esi
cmp edx, dword [0x10025bcc]
je 0x1008a43c
lea esi, [edx + 0x1c]
mov dword [ebp - 0x6c], str.FakeAppId
lea eax, [ebp - 0x6c]
mov dword [ebp - 0x68], 0
push eax
mov ecx, esi
mov dword [ebp - 0x64], 0
call fcn.1008cd7c
cmp eax, dword [esi]
je 0x1008a43c
mov edi, dword [eax + 0x1c]
mov ecx, edi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x1008a441
sub ecx, edx
push ecx
push edi
lea ecx, [ebp - 0x44]
call fcn.1008b4dc
cmp dword [ebp - 0x30], 0x10
lea ecx, [ebp - 0x44]
mov esi, dword [ebp - 0x34]
mov edx, esi
cmovae ecx, dword [ebp - 0x44]
push 1
push 0x10020690
call fcn.1008ce6c
add esp, 8
test al, al
jne 0x1008b1eb
test esi, esi
je 0x1008b1eb
mov byte [ebp - 4], 4
call dword [0x10020208]
cmp dword [ebp - 0x30], 0x10
lea esi, [ebp - 0x44]
mov edi, eax
lea eax, [ebp - 0x60]
cmovae esi, dword [ebp - 0x44]
push 0xa
push eax
push esi
mov dword [edi], 0
call dword [0x100201a4]
add esp, 0xc
cmp esi, dword [ebp - 0x60]
jne 0x1008a4c0
push str.invalid_stoi_argument
call dword [0x10020138]
cmp dword [edi], 0x22
jne 0x1008a4d0
push str.stoi_argument_out_of_range
call dword [0x1002013c]
mov dword [ebp - 4], 3
lea eax, [ebp - 0x44]
cmp dword [ebp - 0x30], 0x10
mov ecx, 0x10025270
push dword [ebp - 0x34]
cmovae eax, dword [ebp - 0x44]
push eax
call fcn.1008b4dc
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0x30]
cmp ecx, 0x10
jb 0x1008a52d
mov edx, dword [ebp - 0x44]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1008a523
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x1008a523
call dword [0x100201dc]
push ecx
push edx
call fcn.1009dd32
add esp, 8
xorps xmm0, xmm0
mov dword [ebp - 0x4c], 0
movups xmmword [ebp - 0x5c], xmm0
mov dword [ebp - 0x48], 0xf
mov byte [ebp - 0x5c], 0
mov dword [ebp - 4], 6
lea eax, [ebp - 0x7c]
cmp dword [0x1002529c], 0x10
mov edi, 0x10025288
push eax
cmovae edi, dword [0x10025288]
lea eax, [ebp - 0x6c]
push eax
mov ecx, 0x10025bcc
mov dword [ebp - 0x7c], str.Main
mov dword [ebp - 0x78], 0
mov dword [ebp - 0x74], 0
call fcn.1008d1ac
mov esi, dword [ebp - 0x64]
lea eax, [ebp - 0x7c]
push eax
push esi
call fcn.1008d25c
mov edx, dword [0x10025bcc]
test al, al
cmovne edx, esi
cmp edx, dword [0x10025bcc]
je 0x1008a5d1
lea esi, [edx + 0x1c]
mov dword [ebp - 0x6c], str.Language
lea eax, [ebp - 0x6c]
mov dword [ebp - 0x68], 0
push eax
mov ecx, esi
mov dword [ebp - 0x64], 0
call fcn.1008cd7c
cmp eax, dword [esi]
je 0x1008a5d1
mov edi, dword [eax + 0x1c]
mov ecx, edi
lea edx, [ecx + 1]
nop word [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x1008a5dc
sub ecx, edx
push ecx
push edi
lea ecx, [ebp - 0x5c]
call fcn.1008b4dc
cmp dword [ebp - 0x48], 0x10
lea ecx, [ebp - 0x5c]
mov edi, dword [ebp - 0x4c]
cmovae ecx, dword [ebp - 0x5c]
cmp edi, 1
jne 0x1008a662
mov esi, edi
mov edx, 0x10020690
sub esi, 4
jb 0x1008a61f
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x1008a624
add ecx, 4
add edx, 4
sub esi, 4
jae 0x1008a60e
cmp esi, 0xfffffffc
je 0x1008a658
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x1008a651
cmp esi, 0xfffffffd
je 0x1008a658
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x1008a651
cmp esi, 0xfffffffe
je 0x1008a658
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x1008a651
cmp esi, 0xffffffff
je 0x1008a658
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x1008a658
sbb eax, eax
or eax, 1
jmp 0x1008a65a
xor eax, eax
test eax, eax
je 0x1008b1c1
test edi, edi
je 0x1008b1c1
mov byte [ebp - 0x60], 0
xor esi, esi
mov edi, dword [esi + 0x100208f0]
mov edx, edi
lea ecx, [edx + 1]
nop
mov al, byte [edx]
inc edx
test al, al
jne 0x1008a67c
sub edx, ecx
cmp dword [ebp - 0x48], 0x10
push edx
push edi
mov edi, dword [ebp - 0x4c]
lea ecx, [ebp - 0x5c]
cmovae ecx, dword [ebp - 0x5c]
mov edx, edi
call fcn.1008ce6c
mov ecx, dword [ebp - 0x60]
add esp, 8
test al, al
movzx ecx, cl
mov eax, 1
cmovne ecx, eax
add esi, 4
mov dword [ebp - 0x60], ecx
cmp esi, 0x78
jb 0x1008a670
test cl, cl
je 0x1008b19d
cmp dword [ebp - 0x48], 0x10
lea eax, [ebp - 0x5c]
push edi
cmovae eax, dword [ebp - 0x5c]
mov ecx, 0x10025288
push eax
call fcn.1008b4dc
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0x48]
cmp ecx, 0x10
jb 0x1008a716
mov edx, dword [ebp - 0x5c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1008a70c
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x1008a70c
call dword [0x100201dc]
push ecx
push edx
call fcn.1009dd32
add esp, 8
push ecx
push dword [0x100252a0]
mov ecx, 0x10025bbc
push str.BuildId
push str.Main
call fcn.1008b9dc
push ecx
mov dword [0x100252a0], eax
mov ecx, 0x10025bbc
movzx eax, byte [0x100252a4]
push eax
push str.Overlay
push str.Misc
call fcn.1008bb0c
push ecx
mov byte [0x100252a4], al
mov ecx, 0x10025bbc
movzx eax, byte [0x100252a5]
push eax
push str.UnlockAllDLC
push str.Misc
call fcn.1008bb0c
push ecx
mov byte [0x100252a5], al
mov ecx, 0x10025bbc
movzx eax, byte [0x100252a6]
push eax
push str.Apps
push str.Interfaces
call fcn.1008bb0c
push ecx
mov byte [0x100252a6], al
mov ecx, 0x10025bbc
movzx eax, byte [0x100252a7]
push eax
push str.User
push str.Interfaces
call fcn.1008bb0c
push ecx
mov byte [0x100252a7], al
mov ecx, 0x10025bbc
movzx eax, byte [0x100252a8]
push eax
push str.Stats
push str.Interfaces
call fcn.1008bb0c
push ecx
mov byte [0x100252a8], al
mov ecx, 0x10025bbc
movzx eax, byte [0x100252a9]
push eax
push str.Storage
push str.Interfaces
call fcn.1008bb0c
push ecx
mov byte [0x100252a9], al
mov ecx, 0x10025bbc
movzx eax, byte [0x100252aa]
push eax
push str.Utils
push str.Interfaces
call fcn.1008bb0c
mov byte [0x100252aa], al
lea eax, [ebp - 0xb4]
push ecx
push eax
mov ecx, 0x100252c3
call fcn.1008b62c
mov dword [ebp - 4], 7
lea edi, [ebp - 0xb4]
cmp dword [ebp - 0xa0], 0x10
mov eax, dword [str.sDR_mj_]
mov dword [ebp - 0x78], eax
mov ax, word [0x100208bc]
mov word [ebp - 0x74], ax
mov al, byte [0x100208be]
mov byte [ebp - 0x72], al
jb 0x1008a86c
mov edi, dword [ebp - 0xb4]
xor edx, edx
mov dword [ebp - 0x60], edx
mov eax, 0x51eb851f
mul edx
shr edx, 4
movsx eax, dl
mov edx, dword [ebp - 0x60]
mov cl, dl
imul eax, eax, 0x32
sub cl, al
add cl, 0x35
xor byte [ebp + edx - 0x78], cl
inc edx
mov dword [ebp - 0x60], edx
cmp edx, 7
jl 0x1008a871
lea eax, [ebp - 0x6c]
mov dword [ebp - 0x6c], str.Paths
push eax
lea eax, [ebp - 0xc0]
mov dword [ebp - 0x68], 0
push eax
mov ecx, 0x10025bcc
mov dword [ebp - 0x64], 0
call fcn.1008d1ac
mov esi, dword [ebp - 0xb8]
lea eax, [ebp - 0x6c]
push eax
push esi
call fcn.1008d25c
mov edx, dword [0x10025bcc]
test al, al
cmovne edx, esi
cmp edx, dword [0x10025bcc]
je 0x1008a90e
lea eax, [ebp - 0x78]
mov dword [ebp - 0x68], 0
mov dword [ebp - 0x6c], eax
lea esi, [edx + 0x1c]
lea eax, [ebp - 0x6c]
mov dword [ebp - 0x64], 0
push eax
mov ecx, esi
call fcn.1008cd7c
cmp eax, dword [esi]
je 0x1008a90e
mov edi, dword [eax + 0x1c]
sub esp, 0x18
mov ecx, edi
mov edx, esp
xorps xmm0, xmm0
lea esi, [ecx + 1]
movups xmmword [edx], xmm0
mov dword [edx + 0x10], 0
mov dword [edx + 0x14], 0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x1008a92c
sub ecx, esi
push ecx
push edi
mov ecx, edx
call fcn.1008c02c
lea ecx, [ebp - 0x9c]
call fcn.10089e7c
mov esi, eax
add esp, 0x18
cmp esi, 0x100252c3
je 0x1008a9da
mov edx, dword [0x100252d7]
cmp edx, 8
jb 0x1008a99a
mov ecx, dword [0x100252c3]
lea edx, [edx*2 + 2]
cmp edx, 0x1000
jb 0x1008a990
mov edi, dword [ecx - 4]
add edx, 0x23
sub ecx, edi
lea eax, [ecx - 4]
cmp eax, 0x1f
ja 0x1008aa66
mov ecx, edi
push edx
push ecx
call fcn.1009dd32
add esp, 8
mov dword [0x100252d3], 0
xor eax, eax
mov dword [0x100252d7], 7
mov word [0x100252c3], ax
movups xmm0, xmmword [esi]
movups xmmword [0x100252c3], xmm0
movq xmm0, qword [esi + 0x10]
movq qword [0x100252d3], xmm0
mov dword [esi + 0x10], eax
mov dword [esi + 0x14], 7
mov word [esi], ax
mov ecx, dword [ebp - 0x88]
cmp ecx, 8
jb 0x1008aa16
mov edx, dword [ebp - 0x9c]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x1008aa0c
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1008aa66
push ecx
push edx
call fcn.1009dd32
add esp, 8
xor eax, eax
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0xa0]
mov dword [ebp - 0x8c], 0
mov dword [ebp - 0x88], 7
mov word [ebp - 0x9c], ax
cmp ecx, 0x10
jb 0x1008aa76
mov edx, dword [ebp - 0xb4]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1008aa6c
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x1008aa6c
call dword [0x100201dc]
push ecx
push edx
call fcn.1009dd32
add esp, 8
push ecx
lea eax, [ebp - 0x9c]
mov ecx, 0x100252db
push eax
call fcn.1008b62c
mov dword [ebp - 4], 8
lea eax, [ebp - 0x6c]
cmp dword [ebp - 0x88], 0x10
lea edi, [ebp - 0x9c]
push eax
cmovae edi, dword [ebp - 0x9c]
lea eax, [ebp - 0xc0]
push eax
mov ecx, 0x10025bcc
mov dword [ebp - 0x6c], str.Paths
mov dword [ebp - 0x68], 0
mov dword [ebp - 0x64], 0
call fcn.1008d1ac
mov esi, dword [ebp - 0xb8]
lea eax, [ebp - 0x6c]
push eax
push esi
call fcn.1008d25c
mov edx, dword [0x10025bcc]
test al, al
cmovne edx, esi
cmp edx, dword [0x10025bcc]
je 0x1008ab1a
lea esi, [edx + 0x1c]
mov dword [ebp - 0x6c], str.UserData
lea eax, [ebp - 0x6c]
mov dword [ebp - 0x68], 0
push eax
mov ecx, esi
mov dword [ebp - 0x64], 0
call fcn.1008cd7c
cmp eax, dword [esi]
je 0x1008ab1a
mov edi, dword [eax + 0x1c]
sub esp, 0x18
mov ecx, edi
mov edx, esp
xorps xmm0, xmm0
lea esi, [ecx + 1]
movups xmmword [edx], xmm0
mov dword [edx + 0x10], 0
mov dword [edx + 0x14], 0
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x1008ab3c
sub ecx, esi
push ecx
push edi
mov ecx, edx
call fcn.1008c02c
lea ecx, [ebp - 0xb4]
call fcn.10089e7c
mov esi, eax
add esp, 0x18
cmp esi, 0x100252db
je 0x1008abea
mov edx, dword [0x100252ef]
cmp edx, 8
jb 0x1008abaa
mov ecx, dword [0x100252db]
lea edx, [edx*2 + 2]
cmp edx, 0x1000
jb 0x1008aba0
mov edi, dword [ecx - 4]
add edx, 0x23
sub ecx, edi
lea eax, [ecx - 4]
cmp eax, 0x1f
ja 0x1008ac76
mov ecx, edi
push edx
push ecx
call fcn.1009dd32
add esp, 8
mov dword [0x100252eb], 0
xor eax, eax
mov dword [0x100252ef], 7
mov word [0x100252db], ax
movups xmm0, xmmword [esi]
movups xmmword [0x100252db], xmm0
movq xmm0, qword [esi + 0x10]
movq qword [0x100252eb], xmm0
mov dword [esi + 0x10], eax
mov dword [esi + 0x14], 7
mov word [esi], ax
mov ecx, dword [ebp - 0xa0]
cmp ecx, 8
jb 0x1008ac26
mov edx, dword [ebp - 0xb4]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x1008ac1c
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1008ac76
push ecx
push edx
call fcn.1009dd32
add esp, 8
xor eax, eax
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0x88]
mov dword [ebp - 0xa4], 0
mov dword [ebp - 0xa0], 7
mov word [ebp - 0xb4], ax
cmp ecx, 0x10
jb 0x1008ac86
mov edx, dword [ebp - 0x9c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1008ac7c
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x1008ac7c
call dword [0x100201dc]
push ecx
push edx
call fcn.1009dd32
add esp, 8
push ecx
lea eax, [ebp - 0x9c]
mov ecx, 0x100252f3
push eax
call fcn.1008b62c
mov dword [ebp - 4], 9
lea edi, [ebp - 0x9c]
cmp dword [ebp - 0x88], 0x10
mov eax, dword [0x100208b0]
movq xmm0, qword [str.fBRYTRDy_K_A]
mov dword [ebp - 0x74], eax
mov al, byte [0x100208b4]
movq qword [ebp - 0x7c], xmm0
mov byte [ebp - 0x70], al
jb 0x1008acd1
mov edi, dword [ebp - 0x9c]
xor edx, edx
cmp dword [0x10025a5c], 2
mov dword [ebp - 0x60], edx
jl 0x1008adec
movaps xmm2, xmmword [0x10021370]
mov eax, 4
movaps xmm3, xmmword [0x10021430]
movaps xmm1, xmm2
punpckldq xmm1, xmm2
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
mov edx, 8
pmuldq xmm0, xmm3
pmuldq xmm1, xmm3
shufps xmm1, xmm0, 0xdd
movd xmm4, eax
mov eax, 0x1f
psrad xmm1, xmm4
mov dword [ebp - 0x60], edx
movaps xmm0, xmm1
movd xmm5, eax
psrld xmm0, xmm5
paddd xmm0, xmm1
pmulld xmm0, xmmword [0x10021390]
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 [str.fBRYTRDy_K_A]
packuswb xmm1, xmm1
paddb xmm1, xmmword [str.555555555555555566666666666666669999999999999999]
pxor xmm1, xmm0
movaps xmm0, xmm2
movd dword [ebp - 0x7c], 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 [0x10021390]
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x100213d0]
movd xmm0, dword [ebp - 0x78]
packuswb xmm1, xmm1
paddb xmm1, xmmword [str.555555555555555566666666666666669999999999999999]
pxor xmm1, xmm0
movd dword [ebp - 0x78], xmm1
nop dword [eax + eax]
mov eax, 0x51eb851f
imul edx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [ebp - 0x60]
movsx eax, al
mov cl, dl
imul eax, eax, 0x32
sub cl, al
add cl, 0x35
xor byte [ebp + edx - 0x7c], cl
inc edx
mov dword [ebp - 0x60], edx
cmp edx, 0xd
jl 0x1008adec
lea eax, [ebp - 0x6c]
mov dword [ebp - 0x6c], str.Paths
push eax
lea eax, [ebp - 0xc0]
mov dword [ebp - 0x68], 0
push eax
mov ecx, 0x10025bcc
mov dword [ebp - 0x64], 0
call fcn.1008d1ac
mov esi, dword [ebp - 0xb8]
lea eax, [ebp - 0x6c]
push eax
push esi
call fcn.1008d25c
mov edx, dword [0x10025bcc]
test al, al
cmovne edx, esi
cmp edx, dword [0x10025bcc]
je 0x1008ae90
lea eax, [ebp - 0x7c]
mov dword [ebp - 0x68], 0
mov dword [ebp - 0x6c], eax
lea esi, [edx + 0x1c]
lea eax, [ebp - 0x6c]
mov dword [ebp - 0x64], 0
push eax
mov ecx, esi
call fcn.1008cd7c
cmp eax, dword [esi]
je 0x1008ae90
mov edi, dword [eax + 0x1c]
sub esp, 0x18
mov ecx, edi
mov edx, esp
xorps xmm0, xmm0
lea esi, [ecx + 1]
movups xmmword [edx], xmm0
mov dword [edx + 0x10], 0
mov dword [edx + 0x14], 0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x1008aeae
sub ecx, esi
push ecx
push edi
mov ecx, edx
call fcn.1008c02c
lea ecx, [ebp - 0xb4]
call fcn.10089e7c
mov esi, eax
add esp, 0x18
cmp esi, 0x100252f3
je 0x1008af5c
mov edx, dword [0x10025307]
cmp edx, 8
jb 0x1008af1c
mov ecx, dword [0x100252f3]
lea edx, [edx*2 + 2]
cmp edx, 0x1000
jb 0x1008af12
mov edi, dword [ecx - 4]
add edx, 0x23
sub ecx, edi
lea eax, [ecx - 4]
cmp eax, 0x1f
ja 0x1008afe8
mov ecx, edi
push edx
push ecx
call fcn.1009dd32
add esp, 8
mov dword [0x10025303], 0
xor eax, eax
mov dword [0x10025307], 7
mov word [0x100252f3], ax
movups xmm0, xmmword [esi]
movups xmmword [0x100252f3], xmm0
movq xmm0, qword [esi + 0x10]
movq qword [0x10025303], xmm0
mov dword [esi + 0x10], eax
mov dword [esi + 0x14], 7
mov word [esi], ax
mov ecx, dword [ebp - 0xa0]
cmp ecx, 8
jb 0x1008af98
mov edx, dword [ebp - 0xb4]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x1008af8e
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1008afe8
push ecx
push edx
call fcn.1009dd32
add esp, 8
xor eax, eax
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0x88]
mov dword [ebp - 0xa4], 0
mov dword [ebp - 0xa0], 7
mov word [ebp - 0xb4], ax
cmp ecx, 0x10
jb 0x1008aff8
mov edx, dword [ebp - 0x9c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1008afee
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x1008afee
call dword [0x100201dc]
push ecx
push edx
call fcn.1009dd32
add esp, 8
mov eax, dword [str.sDR_mj_]
xor edx, edx
mov dword [ebp - 0x78], eax
mov ax, word [0x100208bc]
mov word [ebp - 0x74], ax
mov al, byte [0x100208be]
mov byte [ebp - 0x72], al
mov dword [ebp - 0x60], edx
nop dword [eax + eax]
mov eax, 0x51eb851f
mul edx
shr edx, 4
movsx eax, dl
mov edx, dword [ebp - 0x60]
mov cl, dl
imul eax, eax, 0x32
sub cl, al
add cl, 0x35
xor byte [ebp + edx - 0x78], cl
inc edx
mov dword [ebp - 0x60], edx
cmp edx, 7
jl 0x1008b01c
cmp dword [0x100252bf], 0x10
lea eax, [ebp - 0x78]
mov dword [ebp - 0x6c], eax
mov edi, 0x100252ab
cmovae edi, dword [0x100252ab]
lea eax, [ebp - 0x6c]
push eax
lea eax, [ebp - 0xc0]
mov dword [ebp - 0x68], 0
push eax
mov ecx, 0x10025bcc
mov dword [ebp - 0x64], 0
call fcn.1008d1ac
mov esi, dword [ebp - 0xb8]
lea eax, [ebp - 0x6c]
push eax
push esi
call fcn.1008d25c
mov edx, dword [0x10025bcc]
test al, al
cmovne edx, esi
cmp edx, dword [0x10025bcc]
je 0x1008b0cc
lea esi, [edx + 0x1c]
mov dword [ebp - 0x6c], 0x10020854
lea eax, [ebp - 0x6c]
mov dword [ebp - 0x68], 0
push eax
mov ecx, esi
mov dword [ebp - 0x64], 0
call fcn.1008cd7c
cmp eax, dword [esi]
je 0x1008b0cc
mov edi, dword [eax + 0x1c]
mov edx, edi
lea esi, [edx + 1]
mov al, byte [edx]
inc edx
test al, al
jne 0x1008b0d1
sub edx, esi
mov ecx, 0x100252ab
push edx
push edi
call fcn.1008b4dc
mov ecx, 0x10025bbc
call fcn.1008b76c
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.1009d7c7
mov esp, ebp
pop ebp
ret
push str.RealAppId
push dword [0x10025b7c]
call fcn.1009093c
add esp, 8
mov byte [ebp - 0x83], al
lea eax, [ebp - 0x83]
push 0x10023530
push eax
call fcn.1009e867
push dword [0x10025b78]
call fcn.1009093c
add esp, 4
mov byte [ebp - 0x7d], al
lea eax, [ebp - 0x7d]
push 0x10023530
push eax
call fcn.1009e867
push str.RealAppId
push dword [0x10025b7c]
call fcn.1009093c
add esp, 8
mov byte [ebp - 0x7e], al
lea eax, [ebp - 0x7e]
push 0x10023530
push eax
call fcn.1009e867
push str.FakeAppId
push dword [0x10025b7c]
call fcn.1009093c
add esp, 8
mov byte [ebp - 0x7f], al
lea eax, [ebp - 0x7f]
push 0x10023530
push eax
call fcn.1009e867
push str.Language
push dword [0x10025b7c]
call fcn.1009093c
add esp, 8
mov byte [ebp - 0x80], al
lea eax, [ebp - 0x80]
push 0x10023530
push eax
call fcn.1009e867
push str.Language
push dword [0x10025b7c]
call fcn.1009093c
add esp, 8
mov byte [ebp - 0x81], al
lea eax, [ebp - 0x81]
push 0x10023530
push eax
call fcn.1009e867
push str.FakeAppId
push dword [0x10025b7c]
call fcn.1009093c
add esp, 8
mov byte [ebp - 0x82], al
lea eax, [ebp - 0x82]
push 0x10023530
push eax
call fcn.1009e867
int3