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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x134
push ebx
push esi
push 0xf
xor ebx, ebx
mov dword [ebp - 0x1c], ecx
pop ecx
mov dword [ebp - 0x2c], 0x40
mov eax, ebx
mov dword [ebp - 0x28], 0x2e
mov dword [ebp - 0x24], 0xffffffa0
sub ecx, dword [ebp + eax*4 - 0x2c]
inc eax
cmp eax, 3
jl 0x10013f86
push edi
mov esi, str.GrShaderCache
mov dword [ebp - 0x34], ecx
lea edi, [ebp - 0x2c]
mov dword [ebp - 0x14], 0xaca53880
mov dword [ebp - 0x10], 0x9ec9ac6c
mov eax, ebx
mov byte [ebp - 0xc], 0x90
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
mov byte [ebp + eax - 0x134], al
inc eax
cmp eax, 0x100
jb 0x10013fb5
mov esi, dword [0x1002bd8c]
mov edi, ebx
xor edx, edx
mov dword [ebp - 8], 0xd
mov eax, edi
mov cl, byte [ebp + edi - 0x134]
div dword [ebp - 8]
mov byte [ebp - 1], cl
movzx ecx, cl
movzx eax, byte [ebp + edx - 0x2c]
add eax, ebx
add ecx, eax
movzx ebx, cl
mov ecx, str.build_variant:
mov al, byte [ebp + ebx - 0x134]
mov byte [ebp + edi - 0x134], al
mov al, 0x62
sub al, 0x30
cmp al, 9
ja 0x10014017
inc ecx
mov al, byte [ecx]
test al, al
jne 0x10014008
jmp 0x1001401d
imul esi, esi, 0x3ec41a7b
add esi, 0x6ed93517
call fcn.10013b3e
mov al, byte [ebp - 1]
inc edi
mov byte [ebp + ebx - 0x134], al
cmp edi, 0x100
jb 0x10013fcc
xor ebx, ebx
add esi, 0xa3b4e267
mov dword [ebp - 0x30], esi
mov edi, ebx
mov dword [ebp - 8], ebx
mov esi, ebx
lea eax, [esi + 1]
movzx esi, al
mov eax, dword [ebp - 8]
mov cl, byte [ebp + esi - 0x134]
movzx edx, cl
add eax, edx
movzx eax, al
mov dword [ebp - 8], eax
mov al, byte [ebp + eax - 0x134]
mov byte [ebp + esi - 0x134], al
mov eax, dword [ebp - 8]
mov byte [ebp + eax - 0x134], cl
movzx eax, byte [ebp + esi - 0x134]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x134]
xor al, byte [ebp + edi - 0x14]
mov byte [ebp + edi - 0x28], al
inc edi
cmp edi, 9
jb 0x1001404d
mov esi, dword [ebp - 0x30]
mov eax, ebx
push 7
pop edi
push 3
mov byte [ebp - 0x1f], bl
mov dword [ebp - 0x14], 0x40
mov dword [ebp - 0x10], 0x38
mov dword [ebp - 0xc], 0xffffff81
pop ecx
add edi, dword [ebp + eax*4 - 0x14]
inc eax
cmp eax, ecx
jl 0x100140c5
mov dword [ebp - 0x14], ecx
and esi, 0xf153fdf6
push 0x28
mov ecx, ebx
mov dword [ebp - 0x18], 0xb
mov dword [ebp - 0x10], 0x1e
mov dword [ebp - 0xc], 0xffffffac
pop ebx
mov edx, str.About_to_use_license_from_registry.
mov al, 0x41
sub al, 0x30
cmp al, 9
ja 0x10014107
inc edx
mov al, byte [edx]
test al, al
jne 0x100140f8
jmp 0x1001410d
or esi, 0x17839ce1
add ebx, dword [ebp + ecx*4 - 0x18]
and esi, 0x66ee5979
imul esi, esi, 0x160b9ff1
inc ecx
cmp ecx, 4
jl 0x100140f1
push dword [ebp - 0x1c]
mov dword [0x1002bd8c], esi
push edi
call fcn.10013f52
mov ecx, dword [ebp - 0x34]
lea edx, [ebp - 0x28]
push eax
call fcn.1001d36b
call eax
mov esi, eax
push 0
cmp esi, ebx
pop ebx
pop edi
je 0x1001417a
mov edx, ebx
mov dword [ebp - 0x14], 0x5d
mov dword [ebp - 0x10], 0x62
mov ecx, ebx
mov dword [ebp - 0xc], 0xffffff41
sub edx, dword [ebp + ecx*4 - 0x14]
inc ecx
cmp ecx, 3
jl 0x10014163
push dword [ebp - 0x1c]
push edx
push esi
call fcn.10014466
add esp, 0xc
cmp byte [str.got_no_private_key], 0
je 0x10014195
inc ebx
cmp ebx, 0x30c
jg 0x100141ba
cmp byte [ebx + str.got_no_private_key], 0
jne 0x10014183
mov edx, dword [0x1002bd8c]
add edx, 0x37a84368
and edx, 0x63d1fb73
mov ecx, edx
mov dword [0x1002bd8c], edx
call fcn.100138a0
mov eax, esi
pop esi
pop ebx
leave
ret
mov edx, dword [0x1002bd8c]
and edx, 0xe67210f1
jmp 0x1001419b