Function at 0x484a30
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x48
push esi
push edi
push 0x20
mov edi, ecx
call dword [sym.imp.d3d9.dll_Direct3DCreate9]
mov esi, eax
mov dword [0x56e378], esi
test esi, esi
je 0x484c7f
push 0x38
push 0
push 0x56e4b0
call fcn.004f0ad0
add esp, 0xc
mov dword [0x56e4d0], 1
mov dword [0x56e4c8], 1
mov dword [0x56e4b8], 0x15
mov dword [0x56e4e4], 0
mov eax, dword [esi]
push 0x56e2ac
push 0x56e4b0
push 0x40
push edi
push 1
push 0
push esi
call dword [eax + 0x40]
test eax, eax
je 0x484c87
cmp eax, 0x8876086a
jg 0x484bc4
je 0x484b72
cmp eax, 0x8876017c
je 0x484b20
cmp eax, 0x88760868
jne 0x484bcb
movaps xmm0, xmmword [0x551b10]
xor ecx, ecx
movups xmmword [ebp - 0x24], xmm0
mov word [ebp - 4], 0x7b31
movaps xmm0, xmmword [0x5515d0]
movups xmmword [ebp - 0x14], xmm0
mov byte [ebp - 2], 0
nop
mov al, byte [ebp - 0x24]
xor byte [ebp + ecx - 0x23], al
inc ecx
cmp ecx, 0x21
jb 0x484af0
push 0x30
push str.D3DERR_DEVICELOST
lea eax, [ebp - 0x23]
mov byte [ebp - 2], 0
push eax
push dword [0x56e488]
call dword [sym.imp.USER32.dll_MessageBoxA]
xor al, al
pop edi
pop esi
mov esp, ebp
pop ebp
ret
movaps xmm0, xmmword [0x551520]
xor ecx, ecx
movups xmmword [ebp - 0x24], xmm0
mov word [ebp - 4], 0x2963
movaps xmm0, xmmword [0x551a20]
movups xmmword [ebp - 0x14], xmm0
mov byte [ebp - 2], 0
mov al, byte [ebp - 0x24]
xor byte [ebp + ecx - 0x23], al
inc ecx
cmp ecx, 0x21
jb 0x484b42
push 0x30
push str.D3DERR_OUTOFVIDEOMEMORY
lea eax, [ebp - 0x23]
mov byte [ebp - 2], 0
push eax
push dword [0x56e488]
call dword [sym.imp.USER32.dll_MessageBoxA]
xor al, al
pop edi
pop esi
mov esp, ebp
pop ebp
ret
movaps xmm0, xmmword [0x551a50]
xor ecx, ecx
movups xmmword [ebp - 0x24], xmm0
mov word [ebp - 4], 0x672d
movaps xmm0, xmmword [0x5515a0]
movups xmmword [ebp - 0x14], xmm0
mov byte [ebp - 2], 0
mov al, byte [ebp - 0x24]
xor byte [ebp + ecx - 0x23], al
inc ecx
cmp ecx, 0x21
jb 0x484b94
push 0x30
push str.D3DERR_NOTAVAILABLE
lea eax, [ebp - 0x23]
mov byte [ebp - 2], 0
push eax
push dword [0x56e488]
call dword [sym.imp.USER32.dll_MessageBoxA]
xor al, al
pop edi
pop esi
mov esp, ebp
pop ebp
ret
cmp eax, 0x8876086c
je 0x484c35
mov edx, eax
lea ecx, [ebp - 0x1c]
call fcn.0047dfd0
mov edx, eax
cmp dword [edx + 0x14], 0x10
jb 0x484bdf
mov edx, dword [edx]
movaps xmm0, xmmword [str._fKPGAVz]
xor ecx, ecx
movups xmmword [ebp - 0x48], xmm0
mov word [ebp - 0x28], 0xc46
movaps xmm0, xmmword [0x551950]
movups xmmword [ebp - 0x38], xmm0
mov byte [ebp - 0x26], 0
mov al, byte [ebp - 0x48]
xor byte [ebp + ecx - 0x47], al
inc ecx
cmp ecx, 0x21
jb 0x484c01
push 0x30
push edx
lea eax, [ebp - 0x47]
mov byte [ebp - 0x26], 0
push eax
push dword [0x56e488]
call dword [sym.imp.USER32.dll_MessageBoxA]
lea ecx, [ebp - 0x1c]
call fcn.004484e0
xor al, al
pop edi
pop esi
mov esp, ebp
pop ebp
ret
movaps xmm0, xmmword [0x551610]
xor ecx, ecx
movups xmmword [ebp - 0x48], xmm0
mov word [ebp - 0x28], 0x3d77
movaps xmm0, xmmword [0x551b40]
movups xmmword [ebp - 0x38], xmm0
mov byte [ebp - 0x26], 0
mov al, byte [ebp - 0x48]
xor byte [ebp + ecx - 0x47], al
inc ecx
cmp ecx, 0x21
jb 0x484c57
push 0x30
push str.D3DERR_INVALIDCALL
lea eax, [ebp - 0x47]
mov byte [ebp - 0x26], 0
push eax
push dword [0x56e488]
call dword [sym.imp.USER32.dll_MessageBoxA]
xor al, al
pop edi
pop esi
mov esp, ebp
pop ebp
ret
pop edi
mov al, 1
pop esi
mov esp, ebp
pop ebp
ret